commit 64291f7db5bd8150a74ad2036f1037e6a0428df2 Author: Linus Torvalds Date: Sun Aug 30 11:34:09 2015 -0700 Linux 4.2 Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9751a9e449da2a7749d89968039d532c615beeaa Author: Javi Merino Date: Tue Aug 25 19:22:35 2015 +0100 thermal: power_allocator: allocate with kcalloc what you free with kfree Commit cf736ea6f902 ("thermal: power_allocator: do not use devm* interfaces") forgot to change a devm_kcalloc() to just kcalloc(), but it's corresponding devm_kfree() was changed to kfree(). Allocate with kcalloc() to match the kfree(). Fixes: cf736ea6f902 ("thermal: power_allocator: do not use devm* interfaces") Cc: Dmitry Torokhov Cc: Eduardo Valentin Cc: Zhang Rui Signed-off-by: Javi Merino Signed-off-by: Linus Torvalds drivers/thermal/power_allocator.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 5e7fec290e41462af28626f8089d08cd4c4aaeab Merge: b29083c 7a7184b Author: Linus Torvalds Date: Fri Aug 28 12:02:51 2015 -0700 Merge branch 'for-4.2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata Pull libata fixlet from Tejun Heo: "Simple blacklist entry addition" * 'for-4.2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata: Add factory recertified Crucial M500s to blacklist commit b29083c5e52481e8ce6ce0007590f7a1f405018b Merge: 4941b8f c7cd0ef Author: Linus Torvalds Date: Fri Aug 28 11:42:00 2015 -0700 Merge tag 'sound-fix-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound Pull sound fixes from Takashi Iwai: "Here are stable fixes that have been gathered since rc8: fixes for HD-audio widget power control regressions since 4.1, a NULL fix for HD-audio HDMI, a noise fix for Conexant codecs and a quirk addition for USB-Audio DSD" * tag 'sound-fix-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: ALSA: hda - Fix path power activation ALSA: hda - Check all inputs for is_active_nid_for_any() ALSA: hda: fix possible NULL dereference ALSA: hda - Shutdown CX20722 on reboot/free to avoid spurious noises ALSA: usb: Add native DSD support for Gustard DAC-X20U commit 4941b8f0c2b9d88e8a6dacebf8b7faf603b98368 Merge: e001d70 4d9aac3 Author: Linus Torvalds Date: Thu Aug 27 17:59:17 2015 -0700 Merge tag 'powerpc-4.2-4' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux Pull powerpc fixes from Michael Ellerman: "Fix MSI/MSI-X on pseries from Guilherme" * tag 'powerpc-4.2-4' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: powerpc/PCI: Disable MSI/MSI-X interrupts at PCI probe time in OF case PCI: Make pci_msi_setup_pci_dev() non-static for use by arch code commit e001d7084a687c7a25b02bee47548a1df10d6e0b Merge: 5c98bcc f648f80 Author: Linus Torvalds Date: Thu Aug 27 17:52:38 2015 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Pull networking fixes from David Miller: "Some straggler bug fixes here: 1) Netlink_sendmsg() doesn't check iterator type properly in mmap case, from Ken-ichirou MATSUZAWA. 2) Don't sleep in atomic context in bcmgenet driver, from Florian Fainelli. 3) The pfkey_broadcast() code patch can't actually ever use anything other than GFP_ATOMIC. And the cases that right now pass GFP_KERNEL or similar will currently trigger an RCU splat. Just use GFP_ATOMIC unconditionally. From David Ahern. 4) Fix FD bit timings handling in pcan_usb driver, from Marc Kleine-Budde. 5) Cache dst leaked in ip6_gre tunnel removal, fix from Huaibin Wang. 6) Traversal into drivers/net/ethernet/renesas should be triggered by CONFIG_NET_VENDOR_RENESAS, not a particular driver's config option. From Kazuya Mizuguchi. 7) Fix regression in handling of igmp_join errors in vxlan, from Marcelo Ricardo Leitner. 8) Make phy_{read,write}_mmd_indirect() properly take the mdio_lock mutex when programming the registers. From Russell King. 9) Fix non-forced handling in u32_destroy(), from WANG Cong. 10) Test the EVENT_NO_RUNTIME_PM flag before it is cleared in usbnet_stop(), from Eugene Shatokhin. 11) In sfc driver, don't fetch statistics firmware isn't capable of, from Bert Kenward. 12) Verify ASCONF address parameter location in SCTP, from Xin Long" * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: sctp: donot reset the overall_error_count in SHUTDOWN_RECEIVE state sctp: asconf's process should verify address parameter is in the beginning sfc: only use vadaptor stats if firmware is capable net: phy: fixed: propagate fixed link values to struct usbnet: Get EVENT_NO_RUNTIME_PM bit before it is cleared drivers: net: xgene: fix: Oops in linkwatch_fire_event cls_u32: complete the check for non-forced case in u32_destroy() net: fec: use reinit_completion() in mdio accessor functions net: phy: add locking to phy_read_mmd_indirect()/phy_write_mmd_indirect() vxlan: re-ignore EADDRINUSE from igmp_join net: compile renesas directory if NET_VENDOR_RENESAS is configured ip6_gre: release cached dst on tunnel removal phylib: Make PHYs children of their MDIO bus, not the bus' parent. can: pcan_usb: don't provide CAN FD bittimings by non-FD adapters net: Fix RCU splat in af_key net: bcmgenet: fix uncleaned dma flags net: bcmgenet: Avoid sleeping in bcmgenet_timeout netlink: mmap: fix tx type check commit 5c98bcce6497c55947f1fc22e51b41849d9ad3fe Merge: 9580381 402bae5 Author: Linus Torvalds Date: Thu Aug 27 17:46:06 2015 -0700 Merge branch 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm Pull nvdimm fixlet from Dan Williams: "This is a libnvdimm ABI fixup. I pushed back on this change quite hard given the late date, that it appears to be purely cosmetic, sysfs is not necessarily meant to be a user friendly UI, and the kernel interprets the reversed polarity of the ACPI_NFIT_MEM_ARMED flag correctly. When this flag is set, the energy source of an NVDIMM is not armed and any new writes to the DIMM may not be preserved. However, Bob Moore warned me that it is important to get these things named correctly wherever they appear otherwise we run the risk of a less than cautious firmware engineer implementing the polarity the wrong way. Once a mistake like that escapes into production platforms the flag becomes useless and we need to move to a new bit position. Bob has agreed to take a change through ACPICA to rename ACPI_NFIT_MEM_ARMED to ACPI_NFIT_MEM_NOT_ARMED, and the patch below from Toshi brings the sysfs representation of these flags in line with their respective polarities. Please pull for 4.2 as this is the first kernel to expose the ACPI NFIT sysfs representation, and this is likely a kernel that firmware developers will be using for checking out their NVDIMM enabling" * 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm: nfit: Clarify memory device state flags strings commit f648f807f61e64d247d26611e34cc97e4ed03401 Author: lucien Date: Thu Aug 27 04:52:20 2015 +0800 sctp: donot reset the overall_error_count in SHUTDOWN_RECEIVE state Commit f8d960524328 ("sctp: Enforce retransmission limit during shutdown") fixed a problem with excessive retransmissions in the SHUTDOWN_PENDING by not resetting the association overall_error_count. This allowed the association to better enforce assoc.max_retrans limit. However, the same issue still exists when the association is in SHUTDOWN_RECEIVED state. In this state, HB-ACKs will continue to reset the overall_error_count for the association would extend the lifetime of association unnecessarily. This patch solves this by resetting the overall_error_count whenever the current state is small then SCTP_STATE_SHUTDOWN_PENDING. As a small side-effect, we end up also handling SCTP_STATE_SHUTDOWN_ACK_SENT and SCTP_STATE_SHUTDOWN_SENT states, but they are not really impacted because we disable Heartbeats in those states. Fixes: Commit f8d960524328 ("sctp: Enforce retransmission limit during shutdown") Signed-off-by: Xin Long Acked-by: Marcelo Ricardo Leitner Acked-by: Vlad Yasevich Signed-off-by: David S. Miller net/sctp/sm_sideeffect.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ce7b4ccc4f62775f4167495a06fbee0025f87175 Author: lucien Date: Thu Aug 27 16:26:34 2015 +0800 sctp: asconf's process should verify address parameter is in the beginning in sctp_process_asconf(), we get address parameter from the beginning of the addip params. but we never check if it's really there. if the addr param is not there, it still can pass sctp_verify_asconf(), then to be handled by sctp_process_asconf(), it will not be safe. so add a code in sctp_verify_asconf() to check the address parameter is in the beginning, or return false to send abort. note that this can also detect multiple address parameters, and reject it. Signed-off-by: Xin Long Signed-off-by: Marcelo Ricardo Leitner Acked-by: Vlad Yasevich Signed-off-by: David S. Miller net/sctp/sm_make_chunk.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 402bae597ec68b84498432f5a0069f28bfb807d6 Author: Toshi Kani Date: Wed Aug 26 10:20:23 2015 -0600 nfit: Clarify memory device state flags strings ACPI 6.0 NFIT Memory Device State Flags in Table 5-129 defines NVDIMM status as follows. These bits indicate multiple info, such as failures, pending event, and capability. Bit [0] set to 1 to indicate that the previous SAVE to the Memory Device failed. Bit [1] set to 1 to indicate that the last RESTORE from the Memory Device failed. Bit [2] set to 1 to indicate that platform flush of data to Memory Device failed. As a result, the restored data content may be inconsistent even if SAVE and RESTORE do not indicate failure. Bit [3] set to 1 to indicate that the Memory Device is observed to be not armed prior to OSPM hand off. A Memory Device is considered armed if it is able to accept persistent writes. Bit [4] set to 1 to indicate that the Memory Device observed SMART and health events prior to OSPM handoff. /sys/bus/nd/devices/nmemX/nfit/flags shows this flags info. The output strings associated with the bits are "save", "restore", "smart", etc., which can be confusing as they may be interpreted as positive status, i.e. save succeeded. Change also the dev_info() message in acpi_nfit_register_dimms() to be consistent with the sysfs flags strings. Reported-by: Robert Elliott Signed-off-by: Toshi Kani [ross: rename 'not_arm' to 'not_armed'] Cc: Ross Zwisler [djbw: defer adding bit5, HEALTH_ENABLED, for now] Signed-off-by: Dan Williams drivers/acpi/nfit.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit fbe4307e9ffd9b9c9d4631a37c8f16080da8df85 Author: Bert Kenward Date: Wed Aug 26 16:39:03 2015 +0100 sfc: only use vadaptor stats if firmware is capable Some of the stats handling code differs based on SR-IOV support, and SRIOV support is only available if full-featured firmware is used. Do not use vadaptor stats if firmware mode is not set to full-featured. Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10.c | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) commit 4b195360914583899070835a08ceb06ac7b848d6 Author: Madalin Bucur Date: Wed Aug 26 17:58:47 2015 +0300 net: phy: fixed: propagate fixed link values to struct The fixed link values parsed from the device tree are stored in the struct fixed_phy member status. The struct phy_device members speed, duplex were not updated. Signed-off-by: Madalin Bucur Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/phy/fixed_phy.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 95803812cfb3ece8ee1bb3747611ead48300fca2 Merge: f9ed72d 126c69a Author: Linus Torvalds Date: Thu Aug 27 11:12:41 2015 -0700 Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux Pull amr64 kvm fix from Will Deacon: "We've uncovered a nasty bug in the arm64 KVM code which allows a badly behaved 32-bit guest to bring down the host. The fix is simple (it's what I believe we call a "brown paper bag" bug) and I don't think it makes sense to sit on this, particularly as Russell ended up triggering this rather than just somebody noticing a potential problem by inspection. Usually arm64 KVM changes would go via Paolo's tree, but he's on holiday at the moment and the deal is that anything urgent gets shuffled via the arch trees, so here it is. Summary: Fix arm64 KVM issue when injecting an abort into a 32-bit guest, which would lead to an illegal exception return at EL2 and a subsequent host crash" * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: arm64: KVM: Fix host crash when injecting a fault into a 32bit guest commit 126c69a0bd0e441bf6766a5d9bf20de011be9f68 Author: Marc Zyngier Date: Thu Aug 27 16:10:01 2015 +0100 arm64: KVM: Fix host crash when injecting a fault into a 32bit guest When injecting a fault into a misbehaving 32bit guest, it seems rather idiotic to also inject a 64bit fault that is only going to corrupt the guest state. This leads to a situation where we perform an illegal exception return at EL2 causing the host to crash instead of killing the guest. Just fix the stupid bug that has been there from day 1. Cc: Reported-by: Russell King Tested-by: Russell King Signed-off-by: Marc Zyngier Signed-off-by: Will Deacon arch/arm64/kvm/inject_fault.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit f9ed72dde34e3d5253e206e4bc3edbc6373015d6 Merge: f5db4b3 74c9c91 Author: Linus Torvalds Date: Wed Aug 26 11:08:47 2015 -0700 Merge branch 'for-linus' of git://git.kernel.dk/linux-block Pull block fixes from Jens Axboe: "Two fixes in this pull request: - The writeback regression fix from Tejun, which has been weeks in the making. This fixes a case where we would sometimes not issue writeback when we should have. - An older fix for a memory corruption issue in mtip32xx. It was deferred since we wanted a better fix for this (driver should not have to handle that case), but given the timing, it's better to put the simple fix in for 4.2 release" * 'for-linus' of git://git.kernel.dk/linux-block: mtip32x: fix regression introduced by blk-mq per-hctx flush writeback: sync_inodes_sb() must write out I_DIRTY_TIME inodes and always call wait_sb_inodes() commit 7a7184b01aa9deb86df661c6f7cbcf69a95b728c Author: Guillermo A. Amaral Date: Tue Aug 25 23:29:13 2015 -0700 Add factory recertified Crucial M500s to blacklist The Crucial M500 is known to have issues with queued TRIM commands, the factory recertified SSDs use a different model number naming convention which causes them to get ignored by the blacklist. The new naming convention boils down to: s/Crucial_/FC/ Signed-off-by: Guillermo A. Amaral Signed-off-by: Tejun Heo Cc: stable@vger.kernel.org drivers/ata/libata-core.c | 2 ++ 1 file changed, 2 insertions(+) commit 4d9aac397a5d8f4ee26a4178b5e4a5c474a3a76a Author: Guilherme G. Piccoli Date: Mon Aug 24 22:42:47 2015 +1000 powerpc/PCI: Disable MSI/MSI-X interrupts at PCI probe time in OF case Since commit 1851617cd2da ("PCI/MSI: Disable MSI at enumeration even if kernel doesn't support MSI"), the setup of dev->msi_cap/msix_cap and the disable of MSI/MSI-X interrupts isn't being done at PCI probe time, as the logic responsible for this was moved in the aforementioned commit from pci_device_add() to pci_setup_device(). The latter function is not reachable on PowerPC pseries platform during Open Firmware PCI probing time. This exhibits as drivers not being able to enable MSI, eg: bnx2x 0000:01:00.0: no msix capability found This patch calls pci_msi_setup_pci_dev() explicitly to disable MSI/MSI-X during PCI probe time on pSeries platform. Fixes: 1851617cd2da ("PCI/MSI: Disable MSI at enumeration even if kernel doesn't support MSI") [mpe: Flesh out change log and clarify comment] Signed-off-by: Guilherme G. Piccoli Signed-off-by: Michael Ellerman arch/powerpc/kernel/pci_of_scan.c | 3 +++ 1 file changed, 3 insertions(+) commit 22b6839b914bbe5d94de11bbb83931952090719c Author: Guilherme G. Piccoli Date: Mon Aug 24 22:42:46 2015 +1000 PCI: Make pci_msi_setup_pci_dev() non-static for use by arch code Commit 1851617cd2da ("PCI/MSI: Disable MSI at enumeration even if kernel doesn't support MSI") changed the location of the code that initialises dev->msi_cap/msix_cap and then disables MSI/MSI-X interrupts at PCI probe time in devices that have this flag set. It moved the code from pci_msi_init_pci_dev() to a new function named pci_msi_setup_pci_dev(), called by pci_setup_device(). The pseries PCI probing code does not call pci_setup_device(), so since the aforementioned commit the function pci_msi_setup_pci_dev() is not called and MSI/MSI-X interrupts are left enabled. Additionally because dev->msi_cap/msix_cap are not initialised no driver can ever enable MSI/MSI-X. To fix this, the pseries PCI probe should manually call pci_msi_setup_pci_dev(), so this patch makes it non-static. Fixes: 1851617cd2da ("PCI/MSI: Disable MSI at enumeration even if kernel doesn't support MSI") [mpe: Update change log to mention dev->msi_cap/msix_cap] Signed-off-by: Guilherme G. Piccoli Signed-off-by: Michael Ellerman drivers/pci/probe.c | 2 +- include/linux/pci.h | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) commit f50791ac1aca1ac1b0370d62397b43e9f831421a Author: Eugene Shatokhin Date: Mon Aug 24 23:13:42 2015 +0300 usbnet: Get EVENT_NO_RUNTIME_PM bit before it is cleared It is needed to check EVENT_NO_RUNTIME_PM bit of dev->flags in usbnet_stop(), but its value should be read before it is cleared when dev->flags is set to 0. The problem was spotted and the fix was provided by Oliver Neukum . Signed-off-by: Eugene Shatokhin Acked-by: Oliver Neukum Signed-off-by: David S. Miller drivers/net/usb/usbnet.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit f5db4b31b31504a1058339bc00488bf56ad1f0aa Merge: f045fd7 e308fd3 Author: Linus Torvalds Date: Tue Aug 25 18:18:22 2015 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security Pull LSM regression fix from James Morris. * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: LSM: restore certain default error codes commit f045fd755fe9ba2b15265cd237d6ae5d924689d3 Merge: b1713b1 de4a196 Author: Linus Torvalds Date: Tue Aug 25 17:26:00 2015 -0700 Merge branch 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm Pull nvdimm fix from Dan Williams: "A single fix for status register read size in the nd_blk driver. The effect of getting the width of this register read wrong is that all I/O fails when the read returns non-zero. Given the availability of ACPI 6 NFIT enabled platforms, this could reasonably wait to come in during the 4.3 merge window with a tag for 4.2-stable. Otherwise, this makes the 4.2 kernel fully functional with devices that conform to the mmio-block-apertures defined in the ACPI 6 NFIT (NVDIMM Firmware Interface Table)" * 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm: nfit, nd_blk: BLK status register is only 32 bits commit ccc02ddb1bb7c0c1cac695db18f7533296b51ecc Author: Iyappan Subramanian Date: Tue Aug 25 15:03:03 2015 -0700 drivers: net: xgene: fix: Oops in linkwatch_fire_event [ 1065.801569] Internal error: Oops: 96000006 [#1] SMP ... [ 1065.866655] Hardware name: AppliedMicro Mustang/Mustang, BIOS 1.1.0 Apr 22 2015 [ 1065.873937] Workqueue: events_power_efficient phy_state_machine [ 1065.879837] task: fffffe01de105e80 ti: fffffe00bcf18000 task.ti: fffffe00bcf18000 [ 1065.887288] PC is at linkwatch_fire_event+0xac/0xc0 [ 1065.892141] LR is at linkwatch_fire_event+0xa0/0xc0 [ 1065.896995] pc : [] lr : [] pstate: 200001c5 [ 1065.904356] sp : fffffe00bcf1bd00 ... [ 1066.196813] Call Trace: [ 1066.199248] [] linkwatch_fire_event+0xac/0xc0 [ 1066.205140] [] netif_carrier_off+0x54/0x64 [ 1066.210773] [] phy_state_machine+0x120/0x3bc [ 1066.216578] [] process_one_work+0x15c/0x3a8 [ 1066.222296] [] worker_thread+0x134/0x470 [ 1066.227757] [] kthread+0xe0/0xf8 [ 1066.232525] Code: 97f65ee9 f9420660 d538d082 8b000042 (885f7c40) The fix is to call phy_disconnect() from xgene_enet_mdio_remove, which in turn call cancel_delayed_work_sync(). Signed-off-by: Iyappan Subramanian Signed-off-by: David S. Miller drivers/net/ethernet/apm/xgene/xgene_enet_hw.c | 3 +++ drivers/net/ethernet/apm/xgene/xgene_enet_main.c | 5 +++-- 2 files changed, 6 insertions(+), 2 deletions(-) commit a6c1aea044e490da3e59124ec55991fe316818d5 Author: WANG Cong Date: Tue Aug 25 16:38:12 2015 -0700 cls_u32: complete the check for non-forced case in u32_destroy() In commit 1e052be69d04 ("net_sched: destroy proto tp when all filters are gone") I added a check in u32_destroy() to see if all real filters are gone for each tp, however, that is only done for root_ht, same is needed for others. This can be reproduced by the following tc commands: tc filter add dev eth0 parent 1:0 prio 5 handle 15: protocol ip u32 divisor 256 tc filter add dev eth0 protocol ip parent 1: prio 5 handle 15:2:2 u32 ht 15:2: match ip src 10.0.0.2 flowid 1:10 tc filter add dev eth0 protocol ip parent 1: prio 5 handle 15:2:3 u32 ht 15:2: match ip src 10.0.0.3 flowid 1:10 Fixes: 1e052be69d04 ("net_sched: destroy proto tp when all filters are gone") Reported-by: Akshat Kakkar Cc: Jamal Hadi Salim Signed-off-by: Cong Wang Signed-off-by: Cong Wang Signed-off-by: David S. Miller net/sched/cls_u32.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit e308fd3bb2e469c4939d3f4bd22b468de3ed04ae Author: Jan Beulich Date: Mon Aug 24 06:22:25 2015 -0600 LSM: restore certain default error codes While in most cases commit b1d9e6b064 ("LSM: Switch to lists of hooks") retained previous error returns, in three cases it altered them without any explanation in the commit message. Restore all of them - in the security_old_inode_init_security() case this led to reiserfs using uninitialized data, sooner or later crashing the system (the only other user of this function - ocfs2 - was unaffected afaict, since it passes pre-initialized structures). Signed-off-by: Jan Beulich Signed-off-by: Casey Schaufler Signed-off-by: James Morris security/security.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit de4a196c02a2a2631b516d90da6e8d052ccb07e8 Author: Ross Zwisler Date: Thu Aug 20 16:27:38 2015 -0600 nfit, nd_blk: BLK status register is only 32 bits Only read 32 bits for the BLK status register in read_blk_stat(). The format and size of this register is defined in the "NVDIMM Driver Writer's guide": http://pmem.io/documents/NVDIMM_Driver_Writers_Guide.pdf Signed-off-by: Ross Zwisler Reported-by: Nicholas Moulin Tested-by: Nicholas Moulin Reviewed-by: Jeff Moyer Signed-off-by: Dan Williams drivers/acpi/nfit.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit aac27c7a0d76683f7f4bdf41cec174db2819f635 Author: Russell King Date: Tue Aug 25 09:49:53 2015 +0100 net: fec: use reinit_completion() in mdio accessor functions Rather than re-initialising the entire completion on every mdio access, use reinit_completion() which only resets the completion count. This avoids possible reinitialisation of the contained spinlock and waitqueue while they may be in use (eg, mid-completion.) Such an event could occur if there's a long delay in interrupt handling causing the mdio accessor to time out, then a second access comes in while the interrupt handler on a different CPU has called complete(). Another scenario where this has been observed is while locking has been missing at the phy layer, allowing concurrent attempts to access the MDIO bus. Signed-off-by: Russell King Signed-off-by: David S. Miller drivers/net/ethernet/freescale/fec_main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 05a7f582be961824d62a7f4a817f3783148b5f8a Author: Russell King Date: Tue Aug 25 09:49:47 2015 +0100 net: phy: add locking to phy_read_mmd_indirect()/phy_write_mmd_indirect() The phy layer is missing locking for the above two functions - it has been observed that two threads (userspace and the phy worker thread) can race, entering the bus ->write or ->read functions simultaneously. This causes the FEC driver to initialise a completion while another thread is waiting on it or while the interrupt is calling complete() on it, which causes spinlock unlock-without-lock, spinlock lockups, and completion timeouts. Fixes: a59a4d192 ("phy: add the EEE support and the way to access to the MMD registers.") Fixes: 0c1d77dfb ("net: libphy: Add phy specific function to access mmd phy registers") Signed-off-by: Russell King Acked-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/phy/phy.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) commit bef0057b7ba881d5ae67eec876df7a26fe672a59 Author: Marcelo Ricardo Leitner Date: Tue Aug 25 20:22:35 2015 -0300 vxlan: re-ignore EADDRINUSE from igmp_join Before 56ef9c909b40[1] it used to ignore all errors from igmp_join(). That commit enhanced that and made it error out whatever error happened with igmp_join(), but that's not good because when using multicast groups vxlan will try to join it multiple times if the socket is reused and then the 2nd and further attempts will fail with EADDRINUSE. As we don't track to which groups the socket is already subscribed, it's okay to just ignore that error. Fixes: 56ef9c909b40 ("vxlan: Move socket initialization to within rtnl scope") Reported-by: John Nielsen Signed-off-by: Marcelo Ricardo Leitner Signed-off-by: David S. Miller drivers/net/vxlan.c | 2 ++ 1 file changed, 2 insertions(+) commit e732cdd416cb85fdba6919af2e271c64c08bb26d Merge: 83bc805 06b23f7 Author: David S. Miller Date: Tue Aug 25 16:12:45 2015 -0700 Merge tag 'linux-can-fixes-for-4.2-20150825' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can Marc Kleine-Budde says: ==================== this is the updated pull request of one patch by me for the peak_usb driver. It fixes the driver, so that non FD adapters don't provide CAN FD bittimings. ==================== Signed-off-by: David S. Miller commit 83bc805bff89854e4c81c67633a52ce1015b1502 Author: Kazuya Mizuguchi Date: Tue Aug 25 18:03:20 2015 +1000 net: compile renesas directory if NET_VENDOR_RENESAS is configured Currently the renesas ethernet driver directory is compiled if SH_ETH is configured rather than NET_VENDOR_RENESAS. Although incorrect that was quite harmless as until recently as SH_ETH configured the only driver in the renesas directory. However, as of c156633f1353 ("Renesas Ethernet AVB driver proper") the renesas directory includes another driver, configured by RAVB, and it makes little sense for it to have a hidden dependency on SH_ETH. Signed-off-by: Kazuya Mizuguchi [horms: rewrote changelog] Signed-off-by: Simon Horman Signed-off-by: David S. Miller drivers/net/ethernet/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d4257295ba1b389c693b79de857a96e4b7cd8ac0 Author: huaibin Wang Date: Tue Aug 25 16:20:34 2015 +0200 ip6_gre: release cached dst on tunnel removal When a tunnel is deleted, the cached dst entry should be released. This problem may prevent the removal of a netns (seen with a x-netns IPv6 gre tunnel): unregister_netdevice: waiting for lo to become free. Usage count = 3 CC: Dmitry Kozlov Fixes: c12b395a4664 ("gre: Support GRE over IPv6") Signed-off-by: huaibin Wang Signed-off-by: Nicolas Dichtel Signed-off-by: David S. Miller net/ipv6/ip6_gre.c | 1 + 1 file changed, 1 insertion(+) commit 74c9c9134bf8d8a6d5c5683f60262eed3d6fb5ac Author: Jeff Moyer Date: Wed Jul 29 10:22:50 2015 -0400 mtip32x: fix regression introduced by blk-mq per-hctx flush Hi, After commit f70ced091707 (blk-mq: support per-distpatch_queue flush machinery), the mtip32xx driver may oops upon module load due to walking off the end of an array in mtip_init_cmd. On initialization of the flush_rq, init_request is called with request_index >= the maximum queue depth the driver supports. For mtip32xx, this value is used to index into an array. What this means is that the driver will walk off the end of the array, and either oops or cause random memory corruption. The problem is easily reproduced by doing modprobe/rmmod of the mtip32xx driver in a loop. I can typically reproduce the problem in about 30 seconds. Now, in the case of mtip32xx, it actually doesn't support flush/fua, so I think we can simply return without doing anything. In addition, no other mq-enabled driver does anything with the request_index passed into init_request(), so no other driver is affected. However, I'm not really sure what is expected of drivers. Ming, what did you envision drivers would do when initializing the flush requests? Signed-off-by: Jeff Moyer Signed-off-by: Jens Axboe drivers/block/mtip32xx/mtip32xx.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 006a0973ed020a81fe1f24b511ce9feb53f70e44 Author: Tejun Heo Date: Tue Aug 25 14:11:52 2015 -0400 writeback: sync_inodes_sb() must write out I_DIRTY_TIME inodes and always call wait_sb_inodes() e79729123f63 ("writeback: don't issue wb_writeback_work if clean") updated writeback path to avoid kicking writeback work items if there are no inodes to be written out; unfortunately, the avoidance logic was too aggressive and broke sync_inodes_sb(). * sync_inodes_sb() must write out I_DIRTY_TIME inodes but I_DIRTY_TIME inodes dont't contribute to bdi/wb_has_dirty_io() tests and were being skipped over. * inodes are taken off wb->b_dirty/io/more_io lists after writeback starts on them. sync_inodes_sb() skipping wait_sb_inodes() when bdi_has_dirty_io() breaks it by making it return while writebacks are in-flight. This patch fixes the breakages by * Removing bdi_has_dirty_io() shortcut from bdi_split_work_to_wbs(). The callers are already testing the condition. * Removing bdi_has_dirty_io() shortcut from sync_inodes_sb() so that it always calls into bdi_split_work_to_wbs() and wait_sb_inodes(). * Making bdi_split_work_to_wbs() consider the b_dirty_time list for WB_SYNC_ALL writebacks. Kudos to Eryu, Dave and Jan for tracking down the issue. Signed-off-by: Tejun Heo Fixes: e79729123f63 ("writeback: don't issue wb_writeback_work if clean") Link: http://lkml.kernel.org/g/20150812101204.GE17933@dhcp-13-216.nay.redhat.com Reported-and-bisected-by: Eryu Guan Cc: Dave Chinner Cc: Jan Kara Cc: Ted Ts'o Signed-off-by: Jens Axboe fs/fs-writeback.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) commit 8b63ec1837fa4c1ea604b278d201454eb3b85066 Author: David Daney Date: Fri Aug 21 16:16:03 2015 -0700 phylib: Make PHYs children of their MDIO bus, not the bus' parent. commit 18ee49ddb0d2 ("phylib: rename mii_bus::dev to mii_bus::parent") changed the parent of PHY devices from the bus to the bus parent. Then, commit 4dea547fef1b ("phylib: rework to prepare for OF registration of PHYs") moved the code into phy_device.c At this point, it is somewhat unclear why the change was seen as necessary. But, when we look at the device model tree in /sys/devices, it is clearly incorrect. The PHYs should be children of their MDIO bus. Change the PHY's parent device to be the MDIO bus device. Cc: Lennert Buytenhek Cc: Grant Likely Signed-off-by: David Daney Acked-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/phy/phy_device.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b1713b135fb1ae4d52531a55f0687f985bffe271 Merge: 883985f a57e456 Author: Linus Torvalds Date: Tue Aug 25 09:01:05 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 fix for a APIC regression introduced in 4.0 which went undetected until now. I screwed up the x2apic cleanup in a subtle way. The screwup is only visible on systems which have x2apic preenabled in the BIOS and need to disable it during boot" * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/apic: Fix fallout from x2apic cleanup commit 06b23f7fbbf26a025fd68395c7586949db586b47 Author: Marc Kleine-Budde Date: Thu Aug 6 09:48:34 2015 +0200 can: pcan_usb: don't provide CAN FD bittimings by non-FD adapters The CAN FD data bittiming constants are provided via netlink only when there are valid CAN FD constants available in priv->data_bittiming_const. Due to the indirection of pointer assignments in the peak_usb driver the priv->data_bittiming_const never becomes NULL - not even for non-FD adapters. The data_bittiming_const points to zero'ed data which leads to this result when running 'ip -details link show can0': 35: can0: mtu 16 qdisc noop state DOWN mode DEFAULT group default qlen 10 link/can promiscuity 0 can state STOPPED restart-ms 0 pcan_usb: tseg1 1..16 tseg2 1..8 sjw 1..4 brp 1..64 brp-inc 1 : dtseg1 0..0 dtseg2 0..0 dsjw 1..0 dbrp 0..0 dbrp-inc 0 <== BROKEN! clock 8000000 This patch changes the struct peak_usb_adapter::bittiming_const and struct peak_usb_adapter::data_bittiming_const to pointers to fix the assignemnt problems. Cc: linux-stable # >= 4.0 Reported-by: Oliver Hartkopp Tested-by: Oliver Hartkopp Signed-off-by: Marc Kleine-Budde drivers/net/can/usb/peak_usb/pcan_usb.c | 24 +++---- drivers/net/can/usb/peak_usb/pcan_usb_core.c | 4 +- drivers/net/can/usb/peak_usb/pcan_usb_core.h | 4 +- drivers/net/can/usb/peak_usb/pcan_usb_fd.c | 96 +++++++++++++++------------- drivers/net/can/usb/peak_usb/pcan_usb_pro.c | 24 +++---- 5 files changed, 82 insertions(+), 70 deletions(-) commit c7cd0ef66aade29e37ee08821a0e195ee776c6e6 Author: Takashi Iwai Date: Mon Aug 24 10:52:06 2015 +0200 ALSA: hda - Fix path power activation The widget power-saving code tries to turn up/down the power of each widget in the I/O paths that are modified at each jack plug/unplug. The recent report revealed that the power activation leaves some widgets unpowered after plugging. This is because snd_hda_activate_path() turns on path->active flag at the end of the function while the path power management is done before that. Then it's regarded as if nothing is active, and the driver turns off the power. The fix is simply to set the flag at the beginning of the function, before trying to power up. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=102521 Cc: [v4.1+] Signed-off-by: Takashi Iwai sound/pci/hda/hda_generic.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit 9d2b48f7304aafaefbf0794a556ab4e307929d24 Author: Takashi Iwai Date: Mon Aug 24 10:45:27 2015 +0200 ALSA: hda - Check all inputs for is_active_nid_for_any() The is_active_nid_for_any() function in the generic parser is supposed to check all connections from/to the given widget, but the current code checks only the first input connection (index = 0). This patch corrects the code to check all inputs by passing -1 to index argument. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=102521 Cc: [v4.1+] Signed-off-by: Takashi Iwai sound/pci/hda/hda_generic.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 883985f61246ff7457325da454886bf71e40058c Author: J. Bruce Fields Date: Mon Aug 24 16:44:40 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 Signed-off-by: Linus Torvalds MAINTAINERS | 1 + 1 file changed, 1 insertion(+) commit ba51b6be38c122f7dab40965b4397aaf6188a464 Author: David Ahern Date: Mon Aug 24 15:17:17 2015 -0600 net: Fix RCU splat in af_key Hit the following splat testing VRF change for ipsec: [ 113.475692] =============================== [ 113.476194] [ INFO: suspicious RCU usage. ] [ 113.476667] 4.2.0-rc6-1+deb7u2+clUNRELEASED #3.2.65-1+deb7u2+clUNRELEASED Not tainted [ 113.477545] ------------------------------- [ 113.478013] /work/monster-14/dsa/kernel.git/include/linux/rcupdate.h:568 Illegal context switch in RCU read-side critical section! [ 113.479288] [ 113.479288] other info that might help us debug this: [ 113.479288] [ 113.480207] [ 113.480207] rcu_scheduler_active = 1, debug_locks = 1 [ 113.480931] 2 locks held by setkey/6829: [ 113.481371] #0: (&net->xfrm.xfrm_cfg_mutex){+.+.+.}, at: [] pfkey_sendmsg+0xfb/0x213 [ 113.482509] #1: (rcu_read_lock){......}, at: [] rcu_read_lock+0x0/0x6e [ 113.483509] [ 113.483509] stack backtrace: [ 113.484041] CPU: 0 PID: 6829 Comm: setkey Not tainted 4.2.0-rc6-1+deb7u2+clUNRELEASED #3.2.65-1+deb7u2+clUNRELEASED [ 113.485422] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.7.5.1-0-g8936dbb-20141113_115728-nilsson.home.kraxel.org 04/01/2014 [ 113.486845] 0000000000000001 ffff88001d4c7a98 ffffffff81518af2 ffffffff81086962 [ 113.487732] ffff88001d538480 ffff88001d4c7ac8 ffffffff8107ae75 ffffffff8180a154 [ 113.488628] 0000000000000b30 0000000000000000 00000000000000d0 ffff88001d4c7ad8 [ 113.489525] Call Trace: [ 113.489813] [] dump_stack+0x4c/0x65 [ 113.490389] [] ? console_unlock+0x3d6/0x405 [ 113.491039] [] lockdep_rcu_suspicious+0xfa/0x103 [ 113.491735] [] rcu_preempt_sleep_check+0x45/0x47 [ 113.492442] [] ___might_sleep+0x19/0x1c8 [ 113.493077] [] __might_sleep+0x6c/0x82 [ 113.493681] [] cache_alloc_debugcheck_before.isra.50+0x1d/0x24 [ 113.494508] [] kmem_cache_alloc+0x31/0x18f [ 113.495149] [] skb_clone+0x64/0x80 [ 113.495712] [] pfkey_broadcast_one+0x3d/0xff [ 113.496380] [] pfkey_broadcast+0xb5/0x11e [ 113.497024] [] pfkey_register+0x191/0x1b1 [ 113.497653] [] pfkey_process+0x162/0x17e [ 113.498274] [] pfkey_sendmsg+0x109/0x213 In pfkey_sendmsg the net mutex is taken and then pfkey_broadcast takes the RCU lock. Since pfkey_broadcast takes the RCU lock the allocation argument is pointless since GFP_ATOMIC must be used between the rcu_read_{,un}lock. The one call outside of rcu can be done with GFP_KERNEL. Fixes: 7f6b9dbd5afbd ("af_key: locking change") Signed-off-by: David Ahern Acked-by: Eric Dumazet Signed-off-by: David S. Miller net/key/af_key.c | 46 +++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 23 deletions(-) commit c7e69ae6b4ff49edf50180c0a32f3dd9d7967e31 Author: Markus Osterhoff Date: Mon Aug 24 14:11:39 2015 +0200 ALSA: hda: fix possible NULL dereference After a for-loop was replaced by list_for_each_entry, see Commit bbbc7e8502c9 ("ALSA: hda - Allocate hda_pcm objects dynamically"), Commit 751e2216899c ("ALSA: hda: fix possible null dereference"), a possible NULL pointer dereference has been introduced; this patch adds the NULL check on pcm->pcm, while leaving a potentially superfluous check on pcm itself untouched. Signed-off-by: Markus Osterhoff Cc: #v4.1+ Signed-off-by: Takashi Iwai sound/pci/hda/hda_codec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b6df7d61c8776a882dd47ba4714d1445dd7ef2d9 Author: Jaedon Shin Date: Fri Aug 21 10:08:26 2015 +0900 net: bcmgenet: fix uncleaned dma flags Clean the dma flags of multiq ring buffer int the interface stop process. This patch fixes that the genet is not running while the interface is re-enabled. $ ifup eth0 - running after booting $ ifdown eth0 $ ifup eth0 - not running and occur tx_timeout The bcmgenet_dma_disable() in bcmgenet_open() do clean ring16 dma flag only. If the genet has multiq, the dma register is not cleaned. and bcmgenet_init_dma() is not done correctly. in case GENET_V2(tx_queues=4), tdma_ctrl has 0x1e after running bcmgenet_dma_disable(). Signed-off-by: Jaedon Shin Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/genet/bcmgenet.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit eed635699abaacebc9b19a2f9de9ddc688c390c2 Author: Florian Fainelli Date: Thu Aug 20 18:04:22 2015 -0700 net: bcmgenet: Avoid sleeping in bcmgenet_timeout bcmgenet_timeout() executes in atomic context, yet we will invoke napi_disable() which does sleep. Looking back at the changes, disabling TX napi and re-enabling it is completely useless, since we reclaim all TX buffers and re-enable interrupts, and wake up the TX queues. Fixes: 13ea657806cf ("net: bcmgenet: improve TX timeout") Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/genet/bcmgenet.c | 4 ---- 1 file changed, 4 deletions(-) commit c13dcf9f2d6f5f06ef1bf79ec456df614c5e058b Author: Linus Torvalds Date: Sun Aug 23 20:52:59 2015 -0700 Linux 4.2-rc8 Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d683477020be2036d6c2d7d2cd3ffac4f2acbd6c Merge: eb63b34 49718f0 Author: Linus Torvalds Date: Sun Aug 23 20:46:22 2015 -0700 Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi Pull SCSI fixes from James Bottomley: "A couple of major (hang and deadlock) fixes with fortunately fairly rare triggering conditions. The PM oops is only really triggered by people using enclosure services (rare) and the fnic driver is mostly used in enterprise environments" * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: SCSI: Fix NULL pointer dereference in runtime PM fnic: Use the local variable instead of I/O flag to acquire io_req_lock in fnic_queuecommand() to avoid deadloack commit c953e23936f902c7719166327e3113639105c981 Author: Ken-ichirou MATSUZAWA Date: Thu Aug 20 12:43:53 2015 +0900 netlink: mmap: fix tx type check I can't send netlink message via mmaped netlink socket since commit: a8866ff6a5bce7d0ec465a63bc482a85c09b0d39 netlink: make the check for "send from tx_ring" deterministic msg->msg_iter.type is set to WRITE (1) at SYSCALL_DEFINE6(sendto, ... import_single_range(WRITE, ... iov_iter_init(1, WRITE, ... call path, so that we need to check the type by iter_is_iovec() to accept the WRITE. Signed-off-by: Ken-ichirou MATSUZAWA Signed-off-by: David S. Miller net/netlink/af_netlink.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit eb63b34bdfbdd70a734c2a90d89117c5c6c605c2 Merge: c4c53ba 72ccc89 Author: Linus Torvalds Date: Sun Aug 23 07:23:09 2015 -0700 Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus Pull MIPS bug fixes from Ralf Baechle: "Two more fixes for 4.2. One fixes a build issue with the LLVM assembler - LLVM assembler macro names are case sensitive, GNU as macro names are insensitive; the other corrects a license string (GPL v2, not GPLv2) such that the module loader will recognice the license correctly" * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: FIRMWARE: bcm47xx_nvram: Fix module license. MIPS: Fix LLVM build issue. commit c4c53bad4095aec461ed2488534ce6c7e672228a Merge: b7dec83 999b8b8 Author: Linus Torvalds Date: Sat Aug 22 20:22:11 2015 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs Pull 9p regression fix from Al Viro: "Fix for breakage introduced when switching p9_client_{read,write}() to struct iov_iter * (went into 4.1)" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: 9p: ensure err is initialized to 0 in p9_client_read/write commit 999b8b88c6060adf7a9b7907740ae86ace65291e Author: Vincent Bernat Date: Sat Aug 15 15:49:13 2015 +0200 9p: ensure err is initialized to 0 in p9_client_read/write Some use of those functions were providing unitialized values to those functions. Notably, when reading 0 bytes from an empty file on a 9P filesystem, the return code of read() was not 0. 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; } Cc: stable@vger.kernel.org # v4.1 Signed-off-by: Vincent Bernat Signed-off-by: Al Viro net/9p/client.c | 2 ++ 1 file changed, 2 insertions(+) commit b7dec838b5f3610c9e800249b1da10468580cd11 Merge: d0b89bd 3939f33 Author: Linus Torvalds Date: Sat Aug 22 15:48:04 2015 -0700 Merge branch 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm Pull ARM fixes from Russell King: "Another couple of small ARM fixes. A patch from Masahiro Yamada who noticed that "make -jN all zImage" would end up generating bad images where N > 1, and a patch from Nicolas to fix the Marvell CPU user access optimisation code when page faults are disabled" * 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm: ARM: 8418/1: add boot image dependencies to not generate invalid images ARM: 8414/1: __copy_to_user_memcpy: fix mmap semaphore usage commit d0b89bd54895da70b0655a404d1bd150888c42e5 Merge: c3a0651 827409b Author: Linus Torvalds Date: Sat Aug 22 08:15:36 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: "Various low level fixes: fix more fallout from the FPU rework and the asm entry code rework, plus an MSI rework fix, and an idle-tracing fix" * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/fpu/math-emu: Fix crash in fork() x86/fpu/math-emu: Fix math-emu boot crash x86/idle: Restore trace_cpu_idle to mwait_idle() calls x86/irq: Build correct vector mapping for multiple MSI interrupts Revert "sched/x86_64: Don't save flags on context switch" commit c3a0651422ec84ebd25647c7002664bf7248ccc6 Merge: 84f3fe4 1966764 Author: Linus Torvalds Date: Sat Aug 22 08:06:28 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: a 'perf record' deadlock fix plus debuggability fixes" * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: perf top: Show backtrace when handling a SIGSEGV on --stdio mode perf tools: Fix buildid processing perf tools: Make fork event processing more resilient perf tools: Avoid deadlock when map_groups are broken commit a57e456a7b28431b55e407e5ab78ebd5b378d19e Author: Thomas Gleixner Date: Sat Aug 22 16:41:17 2015 +0200 x86/apic: Fix fallout from x2apic cleanup In the recent x2apic cleanup I got two things really wrong: 1) The safety check in __disable_x2apic which allows the function to be called unconditionally is backwards. The check is there to prevent access to the apic MSR in case that the machine has no apic. Though right now it returns if the machine has an apic and therefor the disabling of x2apic is never invoked. 2) x2apic_disable() sets x2apic_mode to 0 after registering the local apic. That's wrong, because register_lapic_address() checks x2apic mode and therefor takes the wrong code path. This results in boot failures on machines with x2apic preenabled by BIOS and can also lead to an fatal MSR access on machines without apic. The solutions are simple: 1) Correct the sanity check for apic availability 2) Clear x2apic_mode _before_ calling register_lapic_address() Fixes: 659006bf3ae3 'x86/x2apic: Split enable and setup function' Reported-and-tested-by: Javier Monteagudo Signed-off-by: Thomas Gleixner Link: https://bugzilla.redhat.com/show_bug.cgi?id=1224764 Cc: stable@vger.kernel.org # 4.0+ Cc: Laura Abbott Cc: Jiang Liu Cc: Joerg Roedel Cc: Tony Luck Cc: Borislav Petkov arch/x86/kernel/apic/apic.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 84f3fe460838df2ecd80bf9ed943a1b557e81354 Merge: f8a89fc 8200fe4 Author: Linus Torvalds Date: Sat Aug 22 07:45:36 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: "A series of small fixlets for a regression visible on OMAP devices caused by the conversion of the OMAP interrupt chips to hierarchical interrupt domains. Mostly one liners on the driver side plus a small helper function in the core to avoid open coded mess in the drivers" * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: irqchip/crossbar: Restore set_wake functionality irqchip/crossbar: Restore the mask on suspend behaviour ARM: OMAP: wakeupgen: Restore the irq_set_type() mechanism irqchip/crossbar: Restore the irq_set_type() mechanism genirq: Introduce irq_chip_set_type_parent() helper genirq: Don't return ENOSYS in irq_chip_retrigger_hierarchy commit f8a89fc05a81d8cae63890e8d52489de8e700fee Merge: e525293 be3b0f9 Author: Linus Torvalds Date: Sat Aug 22 07:37:41 2015 -0700 Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull timer fixes from Thomas Gleixner: "Two minimalistic fixes for 4.2 regressions: - Eric fixed a thinko in the timer_list base switching code caused by the overhaul of the timer wheel. It can cause a cpu to see the wrong base for a timer while we move the timer around. - Guenter fixed a regression for IMX if booted w/o device tree, where the timer interrupt is not initialized and therefor the machine fails to boot" * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: clocksource/imx: Fix boot with non-DT systems timer: Write timer->flags atomically commit 827409b2f5b58573ae3774fe6bd2d6daeb335878 Author: Ingo Molnar Date: Wed May 27 12:22:29 2015 +0200 x86/fpu/math-emu: Fix crash in fork() During later stages of math-emu bootup the following crash triggers: math_emulate: 0060:c100d0a8 Kernel panic - not syncing: Math emulation needed in kernel CPU: 0 PID: 1511 Comm: login Not tainted 4.2.0-rc7+ #1012 [...] Call Trace: [] dump_stack+0x41/0x52 [] panic+0x77/0x189 [] ? math_error+0x140/0x140 [] math_emulate+0xba7/0xbd0 [] ? fpu__copy+0x138/0x1c0 [] ? __alloc_pages_nodemask+0x12c/0x870 [] ? proc_clear_tty+0x40/0x70 [] ? session_clear_tty+0x1e/0x30 [] ? math_error+0x140/0x140 [] do_device_not_available+0x45/0x70 [] ? fpu__copy+0x138/0x1c0 [] error_code+0x5a/0x60 [] ? math_error+0x140/0x140 [] ? fpu__copy+0x138/0x1c0 [] arch_dup_task_struct+0x25/0x30 [] copy_process.part.51+0xea/0x1480 [] ? dput+0x175/0x200 [] ? no_tty+0x30/0x30 [] ? do_vfs_ioctl+0x322/0x540 [] _do_fork+0xca/0x340 [] ? SyS_rt_sigaction+0x66/0x90 [] SyS_clone+0x27/0x30 [] sysenter_do_call+0x12/0x12 The reason is the incorrect assumption in fpu_copy(), that FNSAVE can be executed from math-emu kernels as well. Don't try to copy the registers, the soft state will be copied by fork anyway, so the child task inherits the parent task's soft math state. With this fix applied math-emu kernels boot up fine on modern hardware and the 'no387 nofxsr' boot options. Cc: Andy Lutomirski Cc: Bobby Powers Cc: Borislav Petkov Cc: Brian Gerst Cc: Dave Hansen Cc: Denys Vlasenko Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Quentin Casasnovas Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5fc960380ea44ba529c78b558b6cd4250e5e1958 Author: Ingo Molnar Date: Sat Aug 22 09:52:06 2015 +0200 x86/fpu/math-emu: Fix math-emu boot crash On a math-emu bootup the following crash occurs: Initializing CPU#0 ------------[ cut here ]------------ kernel BUG at arch/x86/kernel/traps.c:779! invalid opcode: 0000 [#1] SMP [...] EIP is at do_device_not_available+0xe/0x70 [...] Call Trace: [] error_code+0x5a/0x60 [] ? math_error+0x140/0x140 [] ? fpu__init_cpu+0x59/0xa0 [] cpu_init+0x202/0x330 [] ? __native_set_fixmap+0x1f/0x30 [] trap_init+0x305/0x346 [] start_kernel+0x1a5/0x35d [] i386_start_kernel+0x82/0x86 The reason is that in the following commit: b1276c48e91b ("x86/fpu: Initialize fpregs in fpu__init_cpu_generic()") I failed to consider math-emu's limitation that it cannot execute the FNINIT instruction in kernel mode. The long term fix might be to allow math-emu to execute (certain) kernel mode FPU instructions, but for now apply the safe (albeit somewhat ugly) fix: initialize the emulation state explicitly without trapping out to the FPU emulator. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Dave Hansen Cc: Denys Vlasenko Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Quentin Casasnovas Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/init.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit e525293d97b93a04038e7dc15cee3e9075c32dbd Author: Christoph Hellwig Date: Fri Aug 21 14:11:54 2015 -0700 Add hch to .get_maintainer.ignore While the idea behind get_maintainer seems highly useful it's unfortunately way to trigger happy to grab people that once had a few commits to files. For someone like me who does a lot of tree-wide API work that leads to an incredible amount of Cc spam. Signed-off-by: Christoph Hellwig Cc: Joe Perches Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds .get_maintainer.ignore | 1 + 1 file changed, 1 insertion(+) commit 2f064f3485cd29633ad1b3cfb00cc519509a3d72 Author: Michal Hocko Date: Fri Aug 21 14:11:51 2015 -0700 mm: make page pfmemalloc check more robust Commit c48a11c7ad26 ("netvm: propagate page->pfmemalloc to skb") added checks for page->pfmemalloc to __skb_fill_page_desc(): if (page->pfmemalloc && !page->mapping) skb->pfmemalloc = true; It assumes page->mapping == NULL implies that page->pfmemalloc can be trusted. However, __delete_from_page_cache() can set set page->mapping to NULL and leave page->index value alone. Due to being in union, a non-zero page->index will be interpreted as true page->pfmemalloc. So the assumption is invalid if the networking code can see such a page. And it seems it can. We have encountered this with a NFS over loopback setup when such a page is attached to a new skbuf. There is no copying going on in this case so the page confuses __skb_fill_page_desc which interprets the index as pfmemalloc flag and the network stack drops packets that have been allocated using the reserves unless they are to be queued on sockets handling the swapping which is the case here and that leads to hangs when the nfs client waits for a response from the server which has been dropped and thus never arrive. The struct page is already heavily packed so rather than finding another hole to put it in, let's do a trick instead. We can reuse the index again but define it to an impossible value (-1UL). This is the page index so it should never see the value that large. Replace all direct users of page->pfmemalloc by page_is_pfmemalloc which will hide this nastiness from unspoiled eyes. The information will get lost if somebody wants to use page->index obviously but that was the case before and the original code expected that the information should be persisted somewhere else if that is really needed (e.g. what SLAB and SLUB do). [akpm@linux-foundation.org: fix blooper in slub] Fixes: c48a11c7ad26 ("netvm: propagate page->pfmemalloc to skb") Signed-off-by: Michal Hocko Debugged-by: Vlastimil Babka Debugged-by: Jiri Bohac Cc: Eric Dumazet Cc: David Miller Acked-by: Mel Gorman Cc: [3.6+] Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/net/ethernet/intel/fm10k/fm10k_main.c | 2 +- drivers/net/ethernet/intel/igb/igb_main.c | 2 +- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 2 +- drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 2 +- include/linux/mm.h | 28 +++++++++++++++++++++++ include/linux/mm_types.h | 9 -------- include/linux/skbuff.h | 14 ++++-------- mm/page_alloc.c | 9 +++++--- mm/slab.c | 4 ++-- mm/slub.c | 2 +- net/core/skbuff.c | 2 +- 11 files changed, 47 insertions(+), 29 deletions(-) commit e45fc85a2f371f388ff3804271375a1aedbe3744 Merge: 00f7641 45ea2a5 Author: Linus Torvalds Date: Fri Aug 21 11:18:10 2015 -0700 Merge tag 'pci-v4.2-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci Pull PCI fixes from Bjorn Helgaas: "These are fixes for ASPM-related NULL pointer dereference crashes on Sparc and PowerPC and 64-bit PCI address-related HPMC crashes on PA-RISC. These are both caused by things we merged in the v4.2 merge window. Details: Resource management - Don't use 64-bit bus addresses on PA-RISC Miscellaneous - Tolerate hierarchies with no Root Port" * tag 'pci-v4.2-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: PCI: Don't use 64-bit bus addresses on PA-RISC PCI: Tolerate hierarchies with no Root Port commit 00f76410461fe7abdd2e579ca21e4818f7be0843 Merge: 7e08117 02387b5 Author: Linus Torvalds Date: Fri Aug 21 11:03:06 2015 -0700 Merge tag 'media/v4.2-3' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media Pull media fixes from Mauro Carvalho Chehab: - a regression fix at the videobuf2 core driver - fix error handling at mantis probing code - revert the IR encode patches, as the API is not mature enough. So, better to postpone the changes to a latter Kernel - fix Kconfig breakages on some randconfig scenarios. * tag 'media/v4.2-3' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: [media] mantis: Fix error handling in mantis_dma_init() Revert "[media] rc: rc-ir-raw: Add scancode encoder callback" Revert "[media] rc: rc-ir-raw: Add Manchester encoder (phase encoder) helper" Revert "[media] rc: ir-rc5-decoder: Add encode capability" Revert "[media] rc: ir-rc6-decoder: Add encode capability" Revert "[media] rc: rc-core: Add support for encode_wakeup drivers" Revert "[media] rc: rc-loopback: Add loopback of filter scancodes" Revert "[media] rc: nuvoton-cir: Add support for writing wakeup samples via sysfs filter callback" [media] vb2: Fix compilation breakage when !CONFIG_BUG [media] vb2: Only requeue buffers immediately once streaming is started [media] media/pci/cobalt: fix Kconfig and build when SND is not enabled [media] media/dvb: fix ts2020.c Kconfig and build commit 7e08117de6ee17ae6c8f2983999a98cb95eb9bc2 Merge: dc9c12f 1ae5ddb Author: Linus Torvalds Date: Fri Aug 21 10:54:53 2015 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input Pull input layer fix from Dmitry Torokhov: "A small fixup to gpio_keys_polled driver" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: Input: gpio_keys_polled - request GPIO pin as input. commit dc9c12f46fcf01d42756a73c681f18a99e7223b6 Merge: 0bad909 7f98ca4 Author: Linus Torvalds Date: Fri Aug 21 10:46:56 2015 -0700 Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux Pull drm fixes from Dave Airlie: "A bunch of i915 fixes, one revert a VBT fix that was a bit premature, and some braswell feature removal that the hw actually didn't support. One radeon race fix at boot, and one hlcdc build fix, one fix from Russell that fixes build as well with new audio features. This is hopefully all I have until -next" * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: drm/radeon: fix hotplug race at startup drm/edid: add function to help find SADs drm/i915: Avoid TP3 on CHV drm/i915: remove HBR2 from chv supported list Revert "drm/i915: Add eDP intermediate frequencies for CHV" Revert "drm/i915: Allow parsing of variable size child device entries from VBT" drm/atmel-hlcdc: Compile suspend/resume for PM_SLEEP only drm/i915: Flag the execlists context object as dirty after every use commit 7f98ca454ad373fc1b76be804fa7138ff68c1d27 Author: Dave Airlie Date: Thu Aug 20 10:13:55 2015 +1000 drm/radeon: fix hotplug race at startup We apparantly get a hotplug irq before we've initialised modesetting, [drm] Loading R100 Microcode BUG: unable to handle kernel NULL pointer dereference at (null) IP: [] __mutex_lock_slowpath+0x23/0x91 *pde = 00000000 Oops: 0002 [#1] Modules linked in: radeon(+) drm_kms_helper ttm drm i2c_algo_bit backlight pcspkr psmouse evdev sr_mod input_leds led_class cdrom sg parport_pc parport floppy intel_agp intel_gtt lpc_ich acpi_cpufreq processor button mfd_core agpgart uhci_hcd ehci_hcd rng_core snd_intel8x0 snd_ac97_codec ac97_bus snd_pcm usbcore usb_common i2c_i801 i2c_core snd_timer snd soundcore thermal_sys CPU: 0 PID: 15 Comm: kworker/0:1 Not tainted 4.2.0-rc7-00015-gbf67402 #111 Hardware name: MicroLink /D850MV , BIOS MV85010A.86A.0067.P24.0304081124 04/08/2003 Workqueue: events radeon_hotplug_work_func [radeon] task: f6ca5900 ti: f6d3e000 task.ti: f6d3e000 EIP: 0060:[] EFLAGS: 00010282 CPU: 0 EIP is at __mutex_lock_slowpath+0x23/0x91 EAX: 00000000 EBX: f5e900fc ECX: 00000000 EDX: fffffffe ESI: f6ca5900 EDI: f5e90100 EBP: f5e90000 ESP: f6d3ff0c DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068 CR0: 8005003b CR2: 00000000 CR3: 36f61000 CR4: 000006d0 Stack: f5e90100 00000000 c103c4c1 f6d2a5a0 f5e900fc f6df394c c125f162 f8b0faca f6d2a5a0 c138ca00 f6df394c f7395600 c1034741 00d40000 00000000 f6d2a5a0 c138ca00 f6d2a5b8 c138ca10 c1034b58 00000001 f6d40000 f6ca5900 f6d0c940 Call Trace: [] ? dequeue_task_fair+0xa4/0xb7 [] ? mutex_lock+0x9/0xa [] ? radeon_hotplug_work_func+0x17/0x57 [radeon] [] ? process_one_work+0xfc/0x194 [] ? worker_thread+0x18d/0x218 [] ? rescuer_thread+0x1d5/0x1d5 [] ? kthread+0x7b/0x80 [] ? ret_from_kernel_thread+0x20/0x30 [] ? init_completion+0x18/0x18 Code: 42 08 e8 8e a6 dd ff c3 57 56 53 83 ec 0c 8b 35 48 f7 37 c1 8b 10 4a 74 1a 89 c3 8d 78 04 8b 40 08 89 63 Reported-and-Tested-by: Meelis Roos Signed-off-by: Dave Airlie drivers/gpu/drm/radeon/radeon_irq_kms.c | 5 +++++ 1 file changed, 5 insertions(+) commit f6b28e4ded45bb91bc4cd115d55e35badedfce5f Author: David Henningsson Date: Fri Aug 21 09:42:35 2015 +0200 ALSA: hda - Shutdown CX20722 on reboot/free to avoid spurious noises On shutdown/reboot of CX20722, first shut down all EAPDs, then shut down the afg node to D3. Failure to do so can lead to spurious noises from the internal speaker directly after reboot (and before the codec is reinitialized again, i e in BIOS setup or GRUB menus). BugLink: https://bugs.launchpad.net/bugs/1487345 Signed-off-by: David Henningsson Cc: Signed-off-by: Takashi Iwai sound/pci/hda/patch_conexant.c | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) commit 9544f8b6e2ee9ed02d2322ff018837b185f51d45 Author: Jurgen Kramer Date: Fri Aug 21 09:48:35 2015 +0200 ALSA: usb: Add native DSD support for Gustard DAC-X20U This patch adds native DSD support for the Gustard DAC-X20U. Signed-off-by: Jurgen Kramer Cc: Signed-off-by: Takashi Iwai sound/usb/quirks.c | 1 + 1 file changed, 1 insertion(+) commit bef7d1961c81f2b68c9af2dc12f7956b110f73a7 Merge: 1c73d3b ed63baa Author: Dave Airlie Date: Fri Aug 21 10:44:03 2015 +1000 Merge tag 'drm-intel-fixes-2015-08-20' of git://anongit.freedesktop.org/drm-intel into drm-fixes Revert of a VBT parsing commit that should've been queued for drm-next, not v4.2. The revert unbreaks Braswell among other things. Also on Braswell removal of DP HBR2/TP3 and intermediate eDP frequency support. The code was optimistically added based on incorrect documentation; the platform does not support them. These are cc: stable. Finally a gpu state fix from Chris, also cc: stable. * tag 'drm-intel-fixes-2015-08-20' of git://anongit.freedesktop.org/drm-intel: drm/i915: Avoid TP3 on CHV drm/i915: remove HBR2 from chv supported list Revert "drm/i915: Add eDP intermediate frequencies for CHV" Revert "drm/i915: Allow parsing of variable size child device entries from VBT" drm/i915: Flag the execlists context object as dirty after every use commit 0bad90985d39e69ca035fdd70bcc743812641d18 Merge: 28e55d0 b8a1171 Author: Linus Torvalds Date: Thu Aug 20 17:06:11 2015 -0700 Merge tag 'pm+acpi-4.2-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm Pull power management and ACPI fixes from Rafael Wysocki: "These fix a recent regression in the ACPI backlight code and a memory leak in the Exynos cpufreq driver. Specifics: - Fix a recently introduced issue in the ACPI backlight code which causes lockdep to complain about a circular lock dependency during initialization (Hans de Goede). - Fix a possible memory during initialization in the Exynos cpufreq driver (Shailendra Verma)" * tag 'pm+acpi-4.2-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: cpufreq: exynos: Fix for memory leak in case SoC name does not match ACPI / video: Fix circular lock dependency issue in the video-detect code commit b8a1171f71c62cdd049fbc452a095173d32ee5fd Merge: 2c6625c 7231ed1 62c3f2f Author: Rafael J. Wysocki Date: Fri Aug 21 00:19:29 2015 +0200 Merge branches 'acpi-video' and 'cpufreq-fixes' * acpi-video: ACPI / video: Fix circular lock dependency issue in the video-detect code * cpufreq-fixes: cpufreq: exynos: Fix for memory leak in case SoC name does not match commit 45ea2a5fed6dacb9bb0558d8b21eacc1c45d5bb4 Author: Bjorn Helgaas Date: Thu Aug 20 00:08:15 2015 -0500 PCI: Don't use 64-bit bus addresses on PA-RISC Meelis and Helge reported that 3a9ad0b4fdcd ("PCI: Add pci_bus_addr_t") caused HPMCs on A500 and hangs on rp5470. PA-RISC does not set ARCH_DMA_ADDR_T_64BIT, even for 64-bit kernels, so prior to 3a9ad0b4fdcd, we always used 32-bit PCI addresses. After 3a9ad0b4fdcd, we do use 64-bit PCI addresses in 64-bit kernels, and apparently there's some PA-RISC problem related to them. Fixes: 3a9ad0b4fdcd ("PCI: Add pci_bus_addr_t") Link: http://lkml.kernel.org/r/alpine.LRH.2.11.1507260929000.30065@math.ut.ee Reported-by: Meelis Roos Reported-by: Helge Deller Tested-by: Helge Deller Based-on-idea-by: Yinghai Lu Signed-off-by: Bjorn Helgaas Acked-by: Yinghai Lu CC: stable@vger.kernel.org # v3.19+ drivers/pci/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e43d0189ac02415fe4487f79fc35e8f147e9ea0d Author: Jisheng Zhang Date: Thu Aug 20 12:54:39 2015 +0800 x86/idle: Restore trace_cpu_idle to mwait_idle() calls Commit b253149b843f ("sched/idle/x86: Restore mwait_idle() to fix boot hangs, to improve power savings and to improve performance") restores mwait_idle(), but the trace_cpu_idle related calls are missing. This causes powertop on my old desktop powered by Intel Core2 E6550 to report zero wakeups and zero events. Add them back to restore the proper behaviour. Fixes: b253149b843f ("sched/idle/x86: Restore mwait_idle() to ...") Signed-off-by: Jisheng Zhang Cc: Cc: stable@vger.kernel.org # 4.1 Link: http://lkml.kernel.org/r/1440046479-4262-1-git-send-email-jszhang@marvell.com Signed-off-by: Thomas Gleixner arch/x86/kernel/process.c | 2 ++ 1 file changed, 2 insertions(+) commit 28e55d072312f8b418b58ab379ac0a8667ddbfce Merge: 3d3e66b fd7dec2 Author: Linus Torvalds Date: Thu Aug 20 12:32:28 2015 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Pull networking fixes from David Miller: 1) Out of bounds array access in 802.11 minstrel code, from Adrien Schildknecht. 2) Don't use skb_get() in IGMP/MLD code paths, as this makes pskb_may_pull() BUG. From Linus Luessing. 3) Fix off by one in ipv4 route dumping code, from Andy Whitcroft. 4) Fix deadlock in reqsk_queue_unlink(), from Eric Dumazet. 5) Fix ppp device deregistration wrt. netns deletion, from Guillaume Nault. 6) Fix deadlock when creating per-cpu ipv6 routes, from Martin KaFai Lau. 7) Fix memory leak in batman-adv code, from Sven Eckelmann. * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: batman-adv: Fix memory leak on tt add with invalid vlan net: phy: fix semicolon.cocci warnings net: qmi_wwan: add HP lt4111 LTE/EV-DO/HSPA+ Gobi 4G Module be2net: avoid vxlan offloading on multichannel configs ipv6: Fix a potential deadlock when creating pcpu rt ipv6: Add rt6_make_pcpu_route() ipv6: Remove un-used argument from ip6_dst_alloc() net: phy: workaround for buggy cable detection by LAN8700 after cable plugging net: ethernet: micrel: fix an error code ppp: fix device unregistration upon netns deletion net: phy: fix PHY_RUNNING in phy_state_machine Revert "net: limit tcp/udp rmem/wmem to SOCK_{RCV,SND}BUF_MIN" inet: fix potential deadlock in reqsk_queue_unlink() gianfar: Restore link state settings after MAC reset ipv4: off-by-one in continuation handling in /proc/net/route net: fix wrong skb_get() usage / crash in IGMP/MLD parsing code mac80211: fix invalid read in minstrel_sort_best_tp_rates() commit 3d3e66ba2ced6c5ba7d960f106ba2d3a4444c4ab Merge: a971dbc 87ffd2b Author: Linus Torvalds Date: Thu Aug 20 12:21:26 2015 -0700 Merge tag 'for-linus-4.2-rc7-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip Pull xen build fix from David Vrabel: "Fix i386 build with an (uncommon) configuration" * tag 'for-linus-4.2-rc7-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip: x86/xen: make CONFIG_XEN depend on CONFIG_X86_LOCAL_APIC commit a971dbcab969be63ca5737821c8cbd6cc26ff9ad Merge: 3243f50 e24b6c0 Author: Linus Torvalds Date: Thu Aug 20 12:08:38 2015 -0700 Merge tag 'sound-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound Pull sound fixes from Takashi Iwai: "Here are a small collecton of sound fix patches. The most significant one is the disablement of newly introduced topology API. Its ABI couldn't be stabilized enough, so we decided to delay for 4.3 in the end. Other than that, all oneliner fixes: a USB-audio runtime PM fix and a couple of HD-audio quirks" * tag 'sound-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: ALSA: hda - Add dock support for Thinkpad W541 (17aa:2211) ALSA: usb-audio: Fix runtime PM unbalance ASoC: topology: Disable use from userspace ASoC: topology: Add Kconfig option for topology ALSA: hda - Fix the white noise on Dell laptop commit 1ae5ddb6f8837558928a1a694c7b8af7f09fdd21 Author: Vincent Pelletier Date: Thu Aug 20 12:00:19 2015 -0700 Input: gpio_keys_polled - request GPIO pin as input. GPIOF_IN flag was lost in: Commit 633a21d80b4a("input: gpio_keys_polled: Add support for GPIO descriptors"). Without this flag, legacy code path (for non-descriptor GPIO declarations) would configure GPIO as output (0 meaning GPIOF_DIR_OUT | GPIOF_INIT_LOW). Cc: stable@vger.kernel.org Signed-off-by: Vincent Pelletier Reviewed-by: Mika Westerberg Signed-off-by: Dmitry Torokhov drivers/input/keyboard/gpio_keys_polled.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3243f50b0c564a1b492defebe7218d26a2b811c9 Merge: 3bd8f7d 0f69a38 Author: Linus Torvalds Date: Thu Aug 20 11:39:11 2015 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending Pull SCSI target fixes from Nicholas Bellinger: "This contains a v4.2-rc specific RCU module unload regression bug-fix, a long-standing iscsi-target bug-fix for duplicate target_xfer_tags during NOP processing from Alexei, and two more small REPORT_LUNs emulation related patches to make Solaris FC host LUN scanning happy from Roland. There is also one patch not included that allows target-core to limit the number of fabric driver SGLs per I/O request using residuals, that is currently required as a work-around for FC hosts which don't honor EVPD block-limits settings. At this point, it will most likely become for-next material" * git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: target: Fix handling of small allocation lengths in REPORT LUNS target: REPORT LUNS should return LUN 0 even for dynamic ACLs target/iscsi: Fix double free of a TUR followed by a solicited NOPOUT target: Perform RCU callback barrier before backend/fabric unload commit 3bd8f7d87dd12a97f0215f0d1a4afdd20ba49854 Merge: 1b647a1 1afb9c5 Author: Linus Torvalds Date: Thu Aug 20 11:32:33 2015 -0700 Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal Pull thermal fixes from Eduardo Valentin: "Last minute fixes on the thermal-soc tree. There is a fix of a long lasting bug in cpu cooling device, thanks for RMK for being pushing this" * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal: thermal/cpu_cooling: update policy limits if clipped_freq < policy->max thermal/cpu_cooling: rename max_freq as clipped_freq in notifier thermal/cpu_cooling: rename cpufreq_val as clipped_freq thermal/cpu_cooling: convert 'switch' block to 'if' block in notifier thermal/cpu_cooling: quit early after updating policy thermal/cpu_cooling: No need to initialize max_freq to 0 thermal: cpu_cooling: fix lockdep problems in cpu_cooling thermal: power_allocator: do not use devm* interfaces commit be3b0f9babc0b29931b75f7048d81f966473ce13 Author: Guenter Roeck Date: Thu Aug 20 03:27:21 2015 -0700 clocksource/imx: Fix boot with non-DT systems Commit 6dd747825b20 ("ARM: imx: move timer resources into a structure") moved initialization parameters into a data structure, but neglected to set the irq field in that data structure for non-DT boots. This causes the system to hang if a non-DT boot is attempted. Fixes: 6dd747825b20 ("ARM: imx: move timer resources into a structure") Signed-off-by: Guenter Roeck Cc: Shawn Guo Cc: Daniel Lezcano Link: http://lkml.kernel.org/r/1440066441-13930-1-git-send-email-linux@roeck-us.net Signed-off-by: Thomas Gleixner drivers/clocksource/timer-imx-gpt.c | 1 + 1 file changed, 1 insertion(+) commit 87ffd2b9bb74061c120f450e4d0f3409bb603ae0 Author: David Vrabel Date: Thu Aug 20 11:33:41 2015 +0100 x86/xen: make CONFIG_XEN depend on CONFIG_X86_LOCAL_APIC Since commit feb44f1f7a4ac299d1ab1c3606860e70b9b89d69 (x86/xen: Provide a "Xen PV" APIC driver to support >255 VCPUs) Xen guests need a full APIC driver and thus should depend on X86_LOCAL_APIC. This fixes an i386 build failure with !SMP && !CONFIG_X86_UP_APIC by disabling Xen support in this configuration. Users needing Xen support in a non-SMP i386 kernel will need to enable CONFIG_X86_UP_APIC. Signed-off-by: David Vrabel Cc: arch/x86/xen/Kconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 196676497f2507966f99abef63bede6a8550f8b3 Merge: 1b647a1 09f4d78 Author: Ingo Molnar Date: Thu Aug 20 11:47:14 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 buildid processing done at the end of a 'perf record' session, a problem that happened in workloads involving lots of small short-lived processes. That code was not asking the perf_session layer to order the events. Make the code more robust to handle some of the problems with such out-of-order events and fix 'perf record' to ask for ordered events on systems where we have perf_event_attr.sample_id_all. (Adrian Hunter) - Show backtrace when handling a SIGSEGV in 'perf top --stdio' (Arnaldo Carvalho de Melo) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit 1c73d3b10e6976919ce3caa5110e05e04326a7ec Author: Russell King Date: Sat Mar 28 18:13:52 2015 +0000 drm/edid: add function to help find SADs Add a function to find the start of the SADs in the ELD. This complements the helper to retrieve the SAD count. [airlied: this fixes a build problem with the alsa eld helper which required this]. Signed-off-by: Russell King Signed-off-by: Dave Airlie include/drm/drm_edid.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) commit 82bd279d0b2ed538cd932978ffd7ec33587313f2 Merge: 1b647a1 dbb3df2 Author: Dave Airlie Date: Thu Aug 20 09:40:06 2015 +1000 Merge branch 'drm-atmel-hlcdc-fixes' of https://github.com/bbrezillon/linux-at91 into drm-fixes single atmel hlcdc fix. * 'drm-atmel-hlcdc-fixes' of https://github.com/bbrezillon/linux-at91: drm/atmel-hlcdc: Compile suspend/resume for PM_SLEEP only commit 8200fe4347870d4ad6475048bcdf3e7c106c5268 Author: Grygorii Strashko Date: Fri Aug 14 15:20:30 2015 +0300 irqchip/crossbar: Restore set_wake functionality The TI crossbar irqchip doesn't provides any facility to configure the wakeup sources, but the conversion to hierarchical irqdomains set the irq_set_wake callback to irq_chip_set_wake_parent. The parent chip (OMAP wakeupgen) has no irq_set_wake function either so the call will fail with -ENOSYS. As a result the irq_set_wake() call in the resume path will trigger an 'Unbalanced wake disable' warning. Before the conversion the GIC irqchip was the top level irqchip and correctly flagged with IRQCHIP_SKIP_SET_WAKE. Restore the correct behaviour by removing the irq_set_type callback from the crossbar irqchip and set the IRQCHIP_SKIP_SET_WAKE flag which lets the irq_set_irq_wake() call from the driver succeed. [ tglx: Massaged changelog ] Fixes: 783d31863fb8 ('irqchip: crossbar: Convert dra7 crossbar...') Signed-off-by: Grygorii Strashko Cc: Sudeep Holla Cc: Cc: Cc: Cc: Cc: Cc: Cc: Cc: stable@vger.kernel.org # 4.1 Link: http://lkml.kernel.org/r/1439554830-19502-7-git-send-email-grygorii.strashko@ti.com Signed-off-by: Thomas Gleixner drivers/irqchip/irq-crossbar.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 4fd8f47e7e5b64a74b60f23c2e08ba8234d659d1 Author: Grygorii Strashko Date: Fri Aug 14 15:20:29 2015 +0300 irqchip/crossbar: Restore the mask on suspend behaviour The ARM GIC requires that all interrupts which are not used as a wakeup source have to be masked during suspend. The conversion of the crossbar irqchip to hierarchical irq domains failed to mark the crossbar irqchip with the IRQCHIP_MASK_ON_SUSPEND flag and therefor broke the suspend requirement of the GIC. Before the conversion the flags were visible because the GIC was the top level irqchip. After the conversion the crossbar irqchip is the top level irq chip whose flags are evaluated in suspend_device_irq(). As the flag is not set the masking of the non-wakeup irqs is not invoked which breaks suspend. Add the IRQCHIP_MASK_ON_SUSPEND flag to the crossbar irqchip, so the GIC interrupts get masked properly. [ tglx: Massaged changelog ] Fixes: 783d31863fb8 ('irqchip: crossbar: Convert dra7 crossbar...') Signed-off-by: Grygorii Strashko Cc: Sudeep Holla Cc: Cc: Cc: Cc: Cc: Cc: Cc: Cc: stable@vger.kernel.org # 4.1 Link: http://lkml.kernel.org/r/1439554830-19502-6-git-send-email-grygorii.strashko@ti.com Signed-off-by: Thomas Gleixner drivers/irqchip/irq-crossbar.c | 1 + 1 file changed, 1 insertion(+) commit 63059a272398ef5dc1bd7065a036e8b6e82d1af7 Author: Grygorii Strashko Date: Fri Aug 14 15:20:28 2015 +0300 ARM: OMAP: wakeupgen: Restore the irq_set_type() mechanism The conversion of the wakeupgen irqchip to hierarchical irq domains failed to provide a mechanism to properly set the trigger type of an interrupt. The wakeupgen irq chip itself has no mechanism and therefor no irq_set_type() callback. The code before the conversion relayed the trigger configuration directly to the underlying GIC. Restore the correct behaviour by setting the wakeupgen irq_set_type callback to irq_chip_set_type_parent(). This propagates the set_trigger() call to the underlying GIC irqchip. [ tglx: Massaged changelog ] Fixes: 7136d457f365 ('ARM: omap: convert wakeupgen to stacked domains') Signed-off-by: Grygorii Strashko Acked-by: Tony Lindgren Cc: Sudeep Holla Cc: Cc: Cc: Cc: Cc: Cc: Cc: stable@vger.kernel.org # 4.1 Link: http://lkml.kernel.org/r/1439554830-19502-5-git-send-email-grygorii.strashko@ti.com Signed-off-by: Thomas Gleixner arch/arm/mach-omap2/omap-wakeupgen.c | 1 + 1 file changed, 1 insertion(+) commit e269ec42328783e51be08c191aa935dba56141fc Author: Grygorii Strashko Date: Fri Aug 14 15:20:27 2015 +0300 irqchip/crossbar: Restore the irq_set_type() mechanism The conversion of the crossbar irqchip to hierarchical irq domains failed to provide a mechanism to properly set the trigger type of an interrupt. The crossbar irq chip itself has no mechanism and therefor no irq_set_type() callback. The code before the conversion relayed the trigger configuration directly to the underlying GIC. Restore the correct behaviour by setting the crossbar irq_set_type callback to irq_chip_set_type_parent(). This propagates the set_trigger() call to the underlying GIC irqchip. [ tglx: Massaged changelog ] Fixes: 783d31863fb8 ('irqchip: crossbar: Convert dra7 crossbar...') Signed-off-by: Grygorii Strashko Cc: Sudeep Holla Cc: Cc: Cc: Cc: Cc: Cc: Cc: Cc: stable@vger.kernel.org # 4.1 Link: http://lkml.kernel.org/r/1439554830-19502-4-git-send-email-grygorii.strashko@ti.com Signed-off-by: Thomas Gleixner drivers/irqchip/irq-crossbar.c | 1 + 1 file changed, 1 insertion(+) commit b7560de198222994374c1340a389f12d5efb244a Author: Grygorii Strashko Date: Fri Aug 14 15:20:26 2015 +0300 genirq: Introduce irq_chip_set_type_parent() helper This helper is required for irq chips which do not implement a irq_set_type callback and need to call down the irq domain hierarchy for the actual trigger type change. This helper is required to fix further wreckage caused by the conversion of TI OMAP to hierarchical irq domains and therefor tagged for stable. [ tglx: Massaged changelog ] Signed-off-by: Grygorii Strashko Cc: Sudeep Holla Cc: Cc: Cc: Cc: Cc: Cc: Cc: Cc: stable@vger.kernel.org # 4.1 Link: http://lkml.kernel.org/r/1439554830-19502-3-git-send-email-grygorii.strashko@ti.com Signed-off-by: Thomas Gleixner include/linux/irq.h | 1 + kernel/irq/chip.c | 17 +++++++++++++++++ 2 files changed, 18 insertions(+) commit 6d4affea7d5aa5ca5ff4c3e5fbf3ee16801cc527 Author: Grygorii Strashko Date: Fri Aug 14 15:20:25 2015 +0300 genirq: Don't return ENOSYS in irq_chip_retrigger_hierarchy irq_chip_retrigger_hierarchy() returns -ENOSYS if it was not able to find at least one .irq_retrigger() callback implemented in the IRQ domain hierarchy. That's wrong, because check_irq_resend() expects a 0 return value from the callback in case that the hardware assisted resend was not possible. If the return value is non zero the core code assumes hardware resend success and the software resend is not invoked. This results in lost interrupts on platforms where none of the parent irq chips in the hierarchy implements the retrigger callback. This is observable on TI OMAP, where the hierarchy is: ARM GIC <- OMAP wakeupgen <- TI Crossbar Return 0 instead so the software resend mechanism gets invoked. [ tglx: Massaged changelog ] Fixes: 85f08c17de26 ('genirq: Introduce helper functions...') Signed-off-by: Grygorii Strashko Reviewed-by: Marc Zyngier Reviewed-by: Jiang Liu Cc: Sudeep Holla Cc: Cc: Cc: Cc: Cc: Cc: Cc: stable@vger.kernel.org # 4.1 Link: http://lkml.kernel.org/r/1439554830-19502-2-git-send-email-grygorii.strashko@ti.com Signed-off-by: Thomas Gleixner kernel/irq/chip.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b35b1df5e6c213b0b0322e6c231b7111efe4a390 Author: Yijing Wang Date: Mon Aug 17 18:47:58 2015 +0800 PCI: Tolerate hierarchies with no Root Port We should not assume any particular hardware topology. Commit d0751b98dfa3 ("PCI: Add dev->has_secondary_link to track downstream PCIe links") relied on the assumption that every PCIe hierarchy is rooted at a Root Port. But we can't rely on any assumption about what hardware we will find; we just have to deal with the world as it is. On some platforms, PCIe devices (endpoints, switch upstream ports, etc.) appear directly on the root bus, and there is no Root Port in the PCI bus hierarchy. For example, Meelis observed these top-level devices on a Sparc V245: 0000:02:00.0 PCI bridge to [bus 03-0d] Switch Upstream Port 0001:02:00.0 PCI bridge to [bus 03] PCIe to PCI/PCI-X Bridge These devices *look* like they have links going upstream, but there really are no upstream devices. In set_pcie_port_type(), we used the parent device to figure out which side of a switch port has a link, so if the parent device did not exist, we dereferenced a NULL parent pointer. Check whether the parent device exists before dereferencing it. Meelis observed this oops on Sparc V245 and T2000. Ben Herrenschmidt says this is also possible on IBM PowerVM guests on PowerPC. [bhelgaas: changelog, comment] Link: http://lkml.kernel.org/r/alpine.LRH.2.20.1508122118210.18637@math.ut.ee Reported-by: Meelis Roos Tested-by: Meelis Roos Signed-off-by: Yijing Wang Signed-off-by: Bjorn Helgaas Acked-by: David S. Miller drivers/pci/probe.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 09f4d78ab0af0973e1a49c10eb7bf977c68cc3aa Author: Arnaldo Carvalho de Melo Date: Wed Aug 19 15:16:08 2015 -0300 perf top: Show backtrace when handling a SIGSEGV on --stdio mode It was just freezing instead of informing about the SEGV, fix it and also print a backtrace, just like in the TUI mode and in 'perf trace'. Tested by provoking a NULL deref when pressing 'z': 0.31% libc-2.20.so [.] malloc_consolidate 0.31% ld-2.20.so [.] _dl_relocate_object 0.28% cc1 [.] ht_lookup 0.28% cc1 [.] ira_init_register_move_cost perf: Segmentation fault Obtained 7 stack frames. perf(dump_stack+0x32) [0x4d69f2] perf(sighandler_dump_stack+0x29) [0x4d6a89] /lib64/libc.so.6(+0x34960) [0x7f5064333960] perf() [0x438790] /lib64/libpthread.so.0(+0x752a) [0x7f50663dd52a] /lib64/libc.so.6(clone+0x6d) [0x7f50643ff22d] # Reported-by: Linus Torvalds 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-pewrpzqd29rgmhu2wkk7fhww@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-top.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit cca8482c0651cea97aade58cc22109ce9fffbfa2 Author: Adrian Hunter Date: Wed Aug 19 17:29:21 2015 +0300 perf tools: Fix buildid processing After recording, 'perf record' post-processes the data to determine which buildids are needed. That processing must process the data in time order, if possible, because otherwise dependent events, like forks and mmaps, will not make sense. Signed-off-by: Adrian Hunter Tested-by: Jiri Olsa Cc: Linus Torvalds Link: http://lkml.kernel.org/r/1439994561-27436-4-git-send-email-adrian.hunter@intel.com [ Moved the sample_id_add to after trying to open the events, use pr_warning ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-record.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 5cb73340d92a716fd2776700742c3558206ae298 Author: Adrian Hunter Date: Wed Aug 19 17:29:20 2015 +0300 perf tools: Make fork event processing more resilient When processing a fork event, the tools lookup the parent thread by its tid. In a couple of cases, it is possible for that thread to have the wrong pid. That can happen if the data is being processed out of order, or if the (fork) event that would have removed the erroneous thread was lost. Assume the latter case, print a dump message, remove the erroneous thread, create a new one with the correct pid, and keep going. Reported-by: Arnaldo Carvalho de Melo Signed-off-by: Adrian Hunter Tested-by: Jiri Olsa Cc: Linus Torvalds Link: http://lkml.kernel.org/r/1439994561-27436-3-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/machine.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) commit 0d7e7acc47133e82911e24758178815cfee309e9 Author: Adrian Hunter Date: Wed Aug 19 17:29:19 2015 +0300 perf tools: Avoid deadlock when map_groups are broken Attempting to clone map groups onto themselves will deadlock. It only happens because of other bugs, but the code should protect itself anyway. Reported-by: Linus Torvalds Signed-off-by: Adrian Hunter Tested-by: Jiri Olsa Link: http://lkml.kernel.org/r/1439994561-27436-2-git-send-email-adrian.hunter@intel.com [ Use pr_debug() instead of dump_fprintf() ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/thread.c | 6 ++++++ 1 file changed, 6 insertions(+) commit e24b6c03a17b20fb6473b3679f7423fae5731d05 Merge: 59a51a6 8c90503 Author: Takashi Iwai Date: Wed Aug 19 18:31:54 2015 +0200 Merge tag 'asoc-v4.2-disable-topology' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus ASoC: Disable topology support for v4.2 The topology code merged in the v4.2 merge window introduced a new ABI which was believed to be suitable for use but subsequently additional work by the developers of this feature have revealed some problems that need to be addressed. In order to allow this to be done without having to support the initial ABI add Kconfig to disable the build and also add some #error statements to the UAPI header so users can't use them. commit 72ccc89e38031183323f8e715503d7e61fcff2ab Author: Axel Lin Date: Wed Aug 19 10:32:23 2015 +0800 FIRMWARE: bcm47xx_nvram: Fix module license. Signed-off-by: Axel Lin Cc: Hauke Mehrtens Cc: Rafał Miłecki Cc: Paul Walmsley Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/11020/ Signed-off-by: Ralf Baechle drivers/firmware/broadcom/bcm47xx_nvram.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 59a51a6b4b94ed6a11279b78a547e22d4b194c70 Author: Rick Sherman Date: Tue Aug 18 21:04:30 2015 -0500 ALSA: hda - Add dock support for Thinkpad W541 (17aa:2211) Tested with W541 and Ultra Dock 170w Signed-off-by: Rick Sherman Signed-off-by: Takashi Iwai sound/pci/hda/patch_realtek.c | 1 + 1 file changed, 1 insertion(+) commit 9003ebb13f61e8c78a641e0dda7775183ada0625 Author: Takashi Iwai Date: Wed Aug 19 07:20:14 2015 +0200 ALSA: usb-audio: Fix runtime PM unbalance The fix for deadlock in PM in commit [1ee23fe07ee8: ALSA: usb-audio: Fix deadlocks at resuming] introduced a new check of in_pm flag. However, the brainless patch author evaluated it in a wrong way (logical AND instead of logical OR), thus usb_autopm_get_interface() is wrongly called at probing, leading to unbalance of runtime PM refcount. This patch fixes it by correcting the logic. Reported-by: Hans Yang Fixes: 1ee23fe07ee8 ('ALSA: usb-audio: Fix deadlocks at resuming') Cc: [v3.15+] Signed-off-by: Takashi Iwai sound/usb/card.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 02387b5f25bdba668c7fe2618697bae24f973667 Author: Fabio Estevam Date: Mon Aug 10 14:11:41 2015 -0300 [media] mantis: Fix error handling in mantis_dma_init() Current code assigns 0 to variable 'err', which makes mantis_dma_init() to return success even if mantis_alloc_buffers() fails. Fix it by checking the return value from mantis_alloc_buffers() and propagating it in the case of error. Reported-by: RUC_Soft_Sec Signed-off-by: Fabio Estevam Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/mantis/mantis_dma.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 72c5b7b24f3800bf8b1b1c78511c6da09d33c590 Author: David Härdeman Date: Mon Jul 20 16:17:01 2015 -0300 Revert "[media] rc: rc-ir-raw: Add scancode encoder callback" This reverts commit 9869da5bacc5c9b865a183bd36c04be76cdd325d. The current code is not mature enough, the API should allow a single protocol to be specified. Also, the current code contains heuristics that will depend on module load order. Signed-off-by: David Härdeman Acked-by: Antti Seppälä Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/rc-core-priv.h | 2 -- drivers/media/rc/rc-ir-raw.c | 37 ------------------------------------- include/media/rc-core.h | 3 --- 3 files changed, 42 deletions(-) commit 86f216640ed58718553e826dc8d4ee419ad2a6b4 Author: David Härdeman Date: Mon Jul 20 16:16:56 2015 -0300 Revert "[media] rc: rc-ir-raw: Add Manchester encoder (phase encoder) helper" This reverts commit 1d971d927efa2e10194c96ed0475b6d6054342d8. The current code is not mature enough, the API should allow a single protocol to be specified. Also, the current code contains heuristics that will depend on module load order. Signed-off-by: David Härdeman Acked-by: Antti Seppälä Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/rc-core-priv.h | 33 ---------------- drivers/media/rc/rc-ir-raw.c | 85 ----------------------------------------- 2 files changed, 118 deletions(-) commit e49b361d4f73cee46e35319c3b7265f414689052 Author: David Härdeman Date: Mon Jul 20 16:16:51 2015 -0300 Revert "[media] rc: ir-rc5-decoder: Add encode capability" This reverts commit a0466f15b4654cf1ac9e387d7c1a401eff494b4f. The current code is not mature enough, the API should allow a single protocol to be specified. Also, the current code contains heuristics that will depend on module load order. Signed-off-by: David Härdeman Acked-by: Antti Seppälä Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/ir-rc5-decoder.c | 116 -------------------------------------- 1 file changed, 116 deletions(-) commit 70e7112e7d22ac5077ede777917cb057c1950ed7 Author: David Härdeman Date: Mon Jul 20 16:16:46 2015 -0300 Revert "[media] rc: ir-rc6-decoder: Add encode capability" This reverts commit cf257e288ad3a134d4bb809c542a3ae6c87ddfa3. The current code is not mature enough, the API should allow a single protocol to be specified. Also, the current code contains heuristics that will depend on module load order. Signed-off-by: David Härdeman Acked-by: Antti Seppälä Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/ir-rc6-decoder.c | 122 -------------------------------------- 1 file changed, 122 deletions(-) commit 3a03b86fdc1634e81d77f84e987c5a15426eff3d Author: David Härdeman Date: Mon Jul 20 16:16:41 2015 -0300 Revert "[media] rc: rc-core: Add support for encode_wakeup drivers" This reverts commit 0d830b2d1295fee82546d57185da5a6604f11ae2. The current code is not mature enough, the API should allow a single protocol to be specified. Also, the current code contains heuristics that will depend on module load order. Signed-off-by: David Härdeman Acked-by: Antti Seppälä Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/rc-core-priv.h | 1 - drivers/media/rc/rc-ir-raw.c | 17 ----------------- drivers/media/rc/rc-main.c | 7 +------ include/media/rc-core.h | 3 --- 4 files changed, 1 insertion(+), 27 deletions(-) commit 8abfebdb00fa8f2acb3923386e3cb1570d2c1d8e Author: David Härdeman Date: Mon Jul 20 16:16:36 2015 -0300 Revert "[media] rc: rc-loopback: Add loopback of filter scancodes" This reverts commit 2e4ebde269236da2a41183522127715b6d9d80ce. The current code is not mature enough, the API should allow a single protocol to be specified. Also, the current code contains heuristics that will depend on module load order. Signed-off-by: David Härdeman Acked-by: Antti Seppälä Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/rc-loopback.c | 36 ------------------------------------ 1 file changed, 36 deletions(-) commit 23f28f2adcf608170c9062b1f490c4f0dcc995e3 Author: David Härdeman Date: Mon Jul 20 16:16:31 2015 -0300 Revert "[media] rc: nuvoton-cir: Add support for writing wakeup samples via sysfs filter callback" This reverts commit da7ee60b03bd66bb10974d7444aa444de6391312. The current code is not mature enough, the API should allow a single protocol to be specified. Also, the current code contains heuristics that will depend on module load order. Signed-off-by: David Härdeman Acked-by: Antti Seppälä Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/nuvoton-cir.c | 127 ----------------------------------------- drivers/media/rc/nuvoton-cir.h | 1 - include/media/rc-core.h | 1 - 3 files changed, 129 deletions(-) commit ed63baaf849e91c84ac3e042b1fd6a0af07c16f3 Author: Thulasimani,Sivakumar Date: Tue Aug 18 15:30:37 2015 +0530 drm/i915: Avoid TP3 on CHV This patch removes TP3 support on CHV since there is no support for HBR2 on this platform. v2: rename the function to indicate it checks source rates (Jani) v3: update comment to indicate TP3 dependency on HBR2 supported hardware (Jani) Cc: stable@vger.kernel.org # v4.1+ Reviewed-by: Ville Syrjälä Signed-off-by: Sivakumar Thulasimani [Jani: fixed a couple of checkpatch warnings.] Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_dp.c | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) commit 5e86dfe39f54ab13fd8079ac3d6cb100318909a3 Author: Thulasimani,Sivakumar Date: Tue Aug 18 11:07:57 2015 +0530 drm/i915: remove HBR2 from chv supported list This patch removes 5.4Gbps from supported link rate for CHV since it is not supported in it. v2: change the ordering for better readability (Ville) Cc: stable@vger.kernel.org # v4.1+ Reviewed-by: Ville Syrjälä Signed-off-by: Sivakumar Thulasimani Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_dp.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 33747cc5ec036036ae3088d02982d3571c7d8500 Author: Thulasimani,Sivakumar Date: Tue Aug 18 11:07:56 2015 +0530 Revert "drm/i915: Add eDP intermediate frequencies for CHV" This reverts commit fe51bfb95c996733150c44d21e1c9f4b6322a326. Author: Ville Syrjälä Date: Thu Mar 12 17:10:38 2015 +0200 CHV does not support intermediate frequencies so reverting the patch that added it in the first place Cc: stable@vger.kernel.org # v4.1+ Reviewed-by: Ville Syrjälä Signed-off-by: Sivakumar Thulasimani Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_dp.c | 6 ------ 1 file changed, 6 deletions(-) commit b5be5b7fff25f806625c801832eded5ceedc70e9 Merge: 527f0a9 512255a Author: Ingo Molnar Date: Wed Aug 19 09:05:15 2015 +0200 Merge branch 'x86/asm/urgent' to pick up an entry code fix Signed-off-by: Ingo Molnar commit bf1a5fd2eccf20b19941b8461ce9c90899054bd5 Author: Jani Nikula Date: Tue Aug 18 12:33:36 2015 +0300 Revert "drm/i915: Allow parsing of variable size child device entries from VBT" This reverts commit 047fe6e6db9161e69271f56daaafdaf2add023b1 Author: David Weinehall Date: Tue Aug 4 16:55:52 2015 +0300 drm/i915: Allow parsing of variable size child device entries from VBT That commit is not valid for v4.2, however it will be valid for v4.3. It was simply queued too early. The referenced regressing commit is just fine until the size of struct common_child_dev_config changes, and that won't happen until v4.3. Indeed, the expected size checks here rely on the increased size of the struct, breaking new platforms. Fixes: 047fe6e6db91 ("drm/i915: Allow parsing of variable size child device entries from VBT") Cc: Daniel Vetter Cc: David Weinehall Cc: Ville Syrjälä Reviewed-by: Ville Syrjälä Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_bios.c | 27 ++++----------------------- 1 file changed, 4 insertions(+), 23 deletions(-) commit 0f69a38737538c8a265f75d26996818f98c899e4 Author: Roland Dreier Date: Thu Aug 13 21:59:19 2015 -0700 target: Fix handling of small allocation lengths in REPORT LUNS REPORT LUNS should not fail just because the allocation length is less than 16. The relevant section of SPC-4 is: 4.2.5.6 Allocation length The ALLOCATION LENGTH field specifies the maximum number of bytes or blocks that an application client has allocated in the Data-In Buffer. The ALLOCATION LENGTH field specifies bytes unless a different requirement is stated in the command definition. An allocation length of zero specifies that no data shall be transferred. This condition shall not be considered an error. So we should just truncate our response rather than return an error. Signed-off-by: Roland Dreier Signed-off-by: Spencer Baugh Signed-off-by: Nicholas Bellinger drivers/target/target_core_spc.c | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) commit fd7dec25a18f495e50d2040398fd263836ff3b28 Author: Sven Eckelmann Date: Tue Aug 18 13:37:01 2015 +0200 batman-adv: Fix memory leak on tt add with invalid vlan The object tt_local is allocated with kmalloc and not initialized when the function batadv_tt_local_add checks for the vlan. But this function can only cleanup the object when the (not yet initialized) reference counter of the object is 1. This is unlikely and thus the object would leak when the vlan could not be found. Instead the uninitialized object tt_local has to be freed manually and the pointer has to set to NULL to avoid calling the function which would try to decrement the reference counter of the not existing object. CID: 1316518 Fixes: 354136bcc3c4 ("batman-adv: fix kernel crash due to missing NULL checks") Signed-off-by: Sven Eckelmann Signed-off-by: David S. Miller net/batman-adv/translation-table.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 1b647a166f07dcf08709c8606470f4b17a4aa11d Merge: f4566ed 05aa1a7 Author: Linus Torvalds Date: Tue Aug 18 12:17:36 2015 -0700 Merge tag 'dmaengine-fix-4.2-rc8' of git://git.infradead.org/users/vkoul/slave-dma Pull dmaengine fix from Vinod Koul: "We recently found issue with dma_request_slave_channel() API causing privatecnt value to go bad. This is fixed by balancing the privatecnt" * tag 'dmaengine-fix-4.2-rc8' of git://git.infradead.org/users/vkoul/slave-dma: dmaengine: fix balance of privatecnt inc/dec operations commit 8c90503bf246bebb48caa5590d41df755ba08550 Author: Mark Brown Date: Mon Aug 17 22:59:25 2015 -0700 ASoC: topology: Disable use from userspace Since the topology API is still in sufficient flux for changes to be identified disable the use of the userspace ABI by adding #error statements to the code, ensuring that nobody relies on the headers as currently defined. It is expected that this change will be reverted for v4.3. Signed-off-by: Mark Brown include/uapi/sound/asoc.h | 6 ++++++ 1 file changed, 6 insertions(+) commit 527f0a91e91cd55ec79fce80451b0ad5d5e6a21a Author: Jiang Liu Date: Tue Aug 18 23:20:20 2015 +0800 x86/irq: Build correct vector mapping for multiple MSI interrupts Alex Deucher, Mark Rustad and Alexander Holler reported a regression with the latest v4.2-rc4 kernel, which breaks some SATA controllers. With multi-MSI capable SATA controllers, only the first port works, all other ports time out when executing SATA commands. This happens because the first argument to assign_irq_vector_policy() is always the base linux irq number of the multi MSI interrupt block, so all subsequent vector assignments operate on the base linux irq number, so all MSI irqs are handled as the first irq number. Therefor the other MSI irqs of a device are never set up correctly and never fire. Add the loop iterator to the base irq number so all vectors are assigned correctly. Fixes: b5dc8e6c21e7 "x86/irq: Use hierarchical irqdomain to manage CPU interrupt vectors" Reported-and-tested-by: Alex Deucher Reported-and-tested-by: Mark Rustad Reported-and-tested-by: Alexander Holler Signed-off-by: Jiang Liu Cc: Tony Luck Link: http://lkml.kernel.org/r/1439911228-9880-1-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/kernel/apic/vector.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 49718f0fb8c9af192b33d8af3a2826db04025371 Author: Alan Stern Date: Mon Aug 17 11:02:42 2015 -0400 SCSI: Fix NULL pointer dereference in runtime PM The routines in scsi_rpm.c assume that if a runtime-PM callback is invoked for a SCSI device, it can only mean that the device's driver has asked the block layer to handle the runtime power management (by calling blk_pm_runtime_init(), which among other things sets q->dev). However, this assumption turns out to be wrong for things like the ses driver. Normally ses devices are not allowed to do runtime PM, but userspace can override this setting. If this happens, the kernel gets a NULL pointer dereference when blk_post_runtime_resume() tries to use the uninitialized q->dev pointer. This patch fixes the problem by calling the block layer's runtime-PM routines only if the device's driver really does have a runtime-PM callback routine. Since ses doesn't define any such callbacks, the crash won't occur. This fixes Bugzilla #101371. Signed-off-by: Alan Stern Reported-by: Stanisław Pitucha Reported-by: Ilan Cohen Tested-by: Ilan Cohen Reviewed-by: Johannes Thumshirn Cc: stable@vger.kernel.org Signed-off-by: James Bottomley drivers/scsi/scsi_pm.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) commit db196935d9562abec4510f48d887bc1f1e054fcf Author: Hiral Shah Date: Tue Jul 14 07:08:57 2015 -0700 fnic: Use the local variable instead of I/O flag to acquire io_req_lock in fnic_queuecommand() to avoid deadloack We added changes in fnic driver patch 1.6.0.16 to acquire io_req_lock in fnic_queuecommand() before issuing I/O so that io completion is serialized. But when releasing the lock we check for the I/O flag and this could be modified if IO abort occurs before I/O completion. In this case we wont release the lock and causes deadlock in some scenerios. Using the local variable to check the IO lock status will resolve the problem. Fixes: 41df7b02db82cf6c14f094757bac3830d10a827f Signed-off-by: Hiral Shah Signed-off-by: Sesidhar Baddela Signed-off-by: Anil Chintalapati Reviewed-by: Martin K. Petersen Cc: stable@vger.kernel.org Signed-off-by: James Bottomley drivers/scsi/fnic/fnic.h | 2 +- drivers/scsi/fnic/fnic_scsi.c | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) commit f4566ed08d34ba299412d0bb1a6909ec9af0ed35 Merge: bf67402 7945dc58 Author: Linus Torvalds Date: Tue Aug 18 07:55:05 2015 -0700 Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux Pull drm fixes from Dave Airlie: "These came in late last week, I wanted to look over the mst one before forwarding, but it seems good. Just three i915 and one MST fix" * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: drm/i915: Commit planes on each crtc separately. drm/i915: calculate primary visibility changes instead of calling from set_config drm/i915: Only dither on 6bpc panels drm/dp/mst: Remove port after removing connector. commit d0023a1448abdcc892b8bca631e74bb1888efd02 Author: Eric Dumazet Date: Mon Aug 17 10:18:48 2015 -0700 timer: Write timer->flags atomically lock_timer_base() cannot prevent the following : CPU1 ( in __mod_timer() timer->flags |= TIMER_MIGRATING; spin_unlock(&base->lock); base = new_base; spin_lock(&base->lock); // The next line clears TIMER_MIGRATING timer->flags &= ~TIMER_BASEMASK; CPU2 (in lock_timer_base()) see timer base is cpu0 base spin_lock_irqsave(&base->lock, *flags); if (timer->flags == tf) return base; // oops, wrong base timer->flags |= base->cpu // too late We must write timer->flags in one go, otherwise we can fool other cpus. Fixes: bc7a34b8b9eb ("timer: Reduce timer migration overhead if disabled") Signed-off-by: Eric Dumazet Cc: Jon Christopherson Cc: David Miller Cc: xen-devel@lists.xen.org Cc: david.vrabel@citrix.com Cc: Sander Eikelenboom Link: http://lkml.kernel.org/r/1439831928.32680.11.camel@edumazet-glaptop2.roam.corp.google.com Signed-off-by: Thomas Gleixner Cc: Thomas Gleixner kernel/time/timer.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 3939f3345050b1ace675675c47d99fd7b606d9e3 Author: Masahiro Yamada Date: Mon Aug 17 04:03:33 2015 +0100 ARM: 8418/1: add boot image dependencies to not generate invalid images U-Boot is often used to boot the kernel on ARM boards, but uImage is not built by "make all", so we are often inclined to do "make all uImage" to generate DTBs, modules and uImage in a single command, but we should notice a pitfall behind it. In fact, "make all uImage" could generate an invalid uImage if it is run with the parallel option (-j). You can reproduce this problem with the following procedure: [1] First, build "all" and "uImage" separately. You will get a valid uImage $ git clean -f -x -d $ export CROSS_COMPILE= $ make -s -j8 ARCH=arm multi_v7_defconfig $ make -s -j8 ARCH=arm all $ make -j8 ARCH=arm UIMAGE_LOADADDR=0x80208000 uImage CHK include/config/kernel.release CHK include/generated/uapi/linux/version.h CHK include/generated/utsrelease.h make[1]: `include/generated/mach-types.h' is up to date. CHK include/generated/timeconst.h CHK include/generated/bounds.h CHK include/generated/asm-offsets.h CALL scripts/checksyscalls.sh CHK include/generated/compile.h Kernel: arch/arm/boot/Image is ready Kernel: arch/arm/boot/zImage is ready UIMAGE arch/arm/boot/uImage Image Name: Linux-4.2.0-rc5-00156-gdd2384a-d Created: Sat Aug 8 23:21:35 2015 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 6138648 Bytes = 5994.77 kB = 5.85 MB Load Address: 80208000 Entry Point: 80208000 Image arch/arm/boot/uImage is ready $ ls -l arch/arm/boot/*Image -rwxrwxr-x 1 masahiro masahiro 13766656 Aug 8 23:20 arch/arm/boot/Image -rw-rw-r-- 1 masahiro masahiro 6138712 Aug 8 23:21 arch/arm/boot/uImage -rwxrwxr-x 1 masahiro masahiro 6138648 Aug 8 23:20 arch/arm/boot/zImage [2] Update some source file(s) $ touch init/main.c [3] Then, re-build "all" and "uImage" simultaneously. You will get an invalid uImage at random. $ make -j8 ARCH=arm UIMAGE_LOADADDR=0x80208000 all uImage CHK include/config/kernel.release CHK include/generated/uapi/linux/version.h CHK include/generated/utsrelease.h make[1]: `include/generated/mach-types.h' is up to date. CHK include/generated/timeconst.h CHK include/generated/bounds.h CHK include/generated/asm-offsets.h CALL scripts/checksyscalls.sh CC init/main.o CHK include/generated/compile.h LD init/built-in.o LINK vmlinux LD vmlinux.o MODPOST vmlinux.o GEN .version CHK include/generated/compile.h UPD include/generated/compile.h CC init/version.o LD init/built-in.o KSYM .tmp_kallsyms1.o KSYM .tmp_kallsyms2.o LD vmlinux SORTEX vmlinux SYSMAP System.map OBJCOPY arch/arm/boot/Image Building modules, stage 2. Kernel: arch/arm/boot/Image is ready GZIP arch/arm/boot/compressed/piggy.gzip AS arch/arm/boot/compressed/piggy.gzip.o Kernel: arch/arm/boot/Image is ready LD arch/arm/boot/compressed/vmlinux GZIP arch/arm/boot/compressed/piggy.gzip OBJCOPY arch/arm/boot/zImage Kernel: arch/arm/boot/zImage is ready UIMAGE arch/arm/boot/uImage Image Name: Linux-4.2.0-rc5-00156-gdd2384a-d Created: Sat Aug 8 23:23:14 2015 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 26472 Bytes = 25.85 kB = 0.03 MB Load Address: 80208000 Entry Point: 80208000 Image arch/arm/boot/uImage is ready MODPOST 192 modules AS arch/arm/boot/compressed/piggy.gzip.o LD arch/arm/boot/compressed/vmlinux OBJCOPY arch/arm/boot/zImage Kernel: arch/arm/boot/zImage is ready $ ls -l arch/arm/boot/*Image -rwxrwxr-x 1 masahiro masahiro 13766656 Aug 8 23:23 arch/arm/boot/Image -rw-rw-r-- 1 masahiro masahiro 26536 Aug 8 23:23 arch/arm/boot/uImage -rwxrwxr-x 1 masahiro masahiro 6138648 Aug 8 23:23 arch/arm/boot/zImage Please notice the uImage is extremely small when this issue is encountered. Besides, "Kernel: arch/arm/boot/zImage is ready" is displayed twice, before and after the uImage log. The root cause of this is the race condition between zImage and uImage. Actually, uImage depends on zImage, but the dependency between the two is only described in arch/arm/boot/Makefile. Because arch/arm/boot/Makefile is not included from the top-level Makefile, it cannot know the dependency between zImage and uImage. Consequently, when we run make with the parallel option, Kbuild updates vmlinux first, and then two different threads descends into the arch/arm/boot/Makefile almost at the same time, one for updating zImage and the other for uImage. While one thread is re-generating zImage, the other also tries to update zImage before creating uImage on top of that. zImage is overwritten by the slower thread and then uImage is created based on the half-written zImage. This is the reason why "Kernel: arch/arm/boot/zImage is ready" is displayed twice, and a broken uImage is created. The same problem could happen on bootpImage. This commit adds dependencies among Image, zImage, uImage, and bootpImage to arch/arm/Makefile, which is included from the top-level Makefile. Signed-off-by: Masahiro Yamada Signed-off-by: Russell King arch/arm/Makefile | 3 +++ 1 file changed, 3 insertions(+) commit 0f64b247e63ac8c214efa6725366b42563ab138c Author: Nicolas Pitre Date: Wed Aug 12 16:45:02 2015 +0100 ARM: 8414/1: __copy_to_user_memcpy: fix mmap semaphore usage The mmap semaphore should not be taken when page faults are disabled. Since pagefault_disable() no longer disables preemption, we now need to use faulthandler_disabled() in place of in_atomic(). Signed-off-by: Nicolas Pitre Tested-by: Mark Salter Signed-off-by: Russell King arch/arm/lib/uaccess_with_memcpy.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 158d3b2ad18ca4570c9929b9b31d298d86fa2c02 Author: Ralf Baechle Date: Tue Aug 18 11:25:50 2015 +0200 MIPS: Fix LLVM build issue. Matthew Fortune reports: The genex.S file appears to mix the case of a macro between its definition and use. A cut down example of this is below. The macro __build_clear_none has lower case 'build' but ends up being instantiated with upper case BUILD. Can this be fixed on master. It has been picked up by the LLVM integrated assembler which is currently case sensitive. We are likely to fix the assembler as well but the code is currently inconsistent in the kernel. .macro __build_clear_none .endm .macro __BUILD_HANDLER exception handler clear verbose ext .align 5 .globl handle_\exception; .align 2; .type handle_\exception, @function; .ent handle_\exception, 0; handle_\exception: .frame $29, 184, $29 .set noat .globl handle_\exception\ext; .type handle_\exception\ext, @function; handle_\exception\ext: __BUILD_clear_\clear .endm .macro BUILD_HANDLER exception handler clear verbose __BUILD_HANDLER \exception \handler \clear \verbose _int .endm BUILD_HANDLER ftlb ftlb none silent Signed-off-by: Ralf Baechle Reported-by: Matthew Fortune arch/mips/kernel/genex.S | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit dbb3df2d58754e4df58620e60370d166c2cb6744 Author: Thierry Reding Date: Fri Aug 14 13:58:20 2015 +0200 drm/atmel-hlcdc: Compile suspend/resume for PM_SLEEP only If PM is enabled but PM_SLEEP is disabled, the suspend/resume functions are still unused and produce a compiler warning. Signed-off-by: Thierry Reding Signed-off-by: Boris Brezillon Cc: # 4.1+ drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 512255a2ad2c832ca7d4de9f31245f73781922d0 Author: Andy Lutomirski Date: Mon Aug 17 12:22:50 2015 -0700 Revert "sched/x86_64: Don't save flags on context switch" This reverts commit: 2c7577a75837 ("sched/x86_64: Don't save flags on context switch") It was a nice speedup. It's also not quite correct: SYSENTER enables interrupts too early. We can re-add this optimization once the SYSENTER code is beaten into shape, which should happen in 4.3 or 4.4. Signed-off-by: Andy Lutomirski Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: stable@vger.kernel.org # v3.19 Link: http://lkml.kernel.org/r/85f56651f59f76624e80785a8fd3bdfdd089a818.1439838962.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/include/asm/switch_to.h | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) commit 78b50f39142612d01073595d33e7cc48f03a5a2f Author: Mark Brown Date: Sat Aug 15 08:24:20 2015 -0700 ASoC: topology: Add Kconfig option for topology Allow the topology code to be compiled out so that users who don't need topology don't need to havve the code compiled in, saving them some memory. Some more configuration could be added to remove some of the hooks into the core data structures but that is probably best done with some refactoring to use functions to do the updates of the data structures rather than ifdefing in the code as we'd need to do at the minute. Suggested-by: Takashi Iwai Signed-off-by: Mark Brown include/sound/soc-topology.h | 12 ++++++++++++ sound/soc/Kconfig | 3 +++ sound/soc/Makefile | 3 +++ 3 files changed, 18 insertions(+) commit bf6740281ed599f98ba13eb3f017ca83deb6277f Merge: 4e7fca0 3661df1 Author: Linus Torvalds Date: Mon Aug 17 16:26:30 2015 -0700 Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma Pull rdma bugfix from Doug Ledford: "Bugfix in iw_cxgb4" * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma: iw_cxgb4: gracefully handle unknown CQE status errors commit 4e7fca0d0afdfa6be0f429f9a2649b3cf92197e7 Merge: e9ab22d f9114d3 Author: Linus Torvalds Date: Mon Aug 17 16:20:45 2015 -0700 Merge branch 'for-4.2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata Pull libata fixes from Tejun Heo: "Three minor device-specific fixes and revert of NCQ autosense added during this -rc1. It turned out that NCQ autosense as currently implemented interferes with the usual error handling behavior. It will be revisited in the near future" * 'for-4.2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata: ata: ahci_brcmstb: Fix misuse of IS_ENABLED sata_sx4: Check return code from pdc20621_i2c_read() Revert "libata: Implement NCQ autosense" Revert "libata: Implement support for sense data reporting" Revert "libata-eh: Set 'information' field for autosense" ata: ahci_brcmstb: Fix warnings with CONFIG_PM_SLEEP=n commit e9ab22d292aa168ed8d4cb45353a626a3d6f1522 Merge: a36304b 24ee3cf Author: Linus Torvalds Date: Mon Aug 17 16:15:26 2015 -0700 Merge branch 'for-4.2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup Pull cgroup fix from Tejun Heo: "A fix for a subtle bug introduced back during 3.17 cycle which interferes with setting configurations under specific conditions" * 'for-4.2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup: cpuset: use trialcs->mems_allowed as a temp variable commit ff94c742dfeea3110f1e1d27399d728f8494d29e Author: kbuild test robot Date: Tue Aug 18 06:31:42 2015 +0800 net: phy: fix semicolon.cocci warnings drivers/net/phy/smsc.c:127:3-4: Unneeded semicolon Remove unneeded semicolon. Generated by: scripts/coccinelle/misc/semicolon.cocci CC: Igor Plyatov Signed-off-by: Fengguang Wu Signed-off-by: David S. Miller drivers/net/phy/smsc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a8079092c1bbf9aec3756b35256c7816b8845af7 Author: David Ward Date: Sat Aug 15 20:12:30 2015 -0400 net: qmi_wwan: add HP lt4111 LTE/EV-DO/HSPA+ Gobi 4G Module This is an HP-branded Sierra Wireless EM7355: https://bugzilla.redhat.com/show_bug.cgi?id=1223646#c2 Signed-off-by: David Ward Signed-off-by: David S. Miller drivers/net/usb/qmi_wwan.c | 1 + 1 file changed, 1 insertion(+) commit af19e68683ba9c29e778d0f8be5be61a0ebb4166 Author: Ivan Vecera Date: Fri Aug 14 22:30:01 2015 +0200 be2net: avoid vxlan offloading on multichannel configs VxLAN offloading is not functional if the NIC is running in multichannel mode (UMC, FLEX-10, VNIC...). Enabling this additionally kills whole connectivity through the NIC and the device needs to be down and up to restore it. The firmware should take care about it and does not allow the conversion of interface to tunnel type (be_cmd_manage_iface) or should support VxLAN offloading if multichannel config is enabled. I have tested this on the latest available firmware (10.6.144.21). Result: [root@sm-04 ~]# ip link set enp5s0f0 up[root@sm-04 ~]# ip addr add 172.30.10.50/24 dev enp5s0f0 [root@sm-04 ~]# ping -c 3 172.30.10.254PING 172.30.10.254 (172.30.10.254) 56(84) bytes of data. 64 bytes from 172.30.10.254: icmp_seq=1 ttl=64 time=0.317 ms 64 bytes from 172.30.10.254: icmp_seq=2 ttl=64 time=0.187 ms 64 bytes from 172.30.10.254: icmp_seq=3 ttl=64 time=0.188 ms --- 172.30.10.254 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2000ms rtt min/avg/max/mdev = 0.187/0.230/0.317/0.063 ms [root@sm-04 ~]# ip link add link enp5s0f0 vxlan10 type vxlan id 10 remote 172.30.10.60 dstport 4789 [root@sm-04 ~]# ip link set vxlan10 up [ 7900.442811] be2net 0000:05:00.0: Enabled VxLAN offloads for UDP port 4789 [ 7900.455722] be2net 0000:05:00.1: Enabled VxLAN offloads for UDP port 4789 [ 7900.468635] be2net 0000:05:00.2: Enabled VxLAN offloads for UDP port 4789 [ 7900.481553] be2net 0000:05:00.3: Enabled VxLAN offloads for UDP port 4789 [root@sm-04 ~]# ping -c 3 172.30.10.254 PING 172.30.10.254 (172.30.10.254) 56(84) bytes of data. --- 172.30.10.254 ping statistics --- 3 packets transmitted, 0 received, 100% packet loss, time 1999ms [root@sm-04 ~]# ip link set vxlan10 down [ 7959.434093] be2net 0000:05:00.0: Disabled VxLAN offloads for UDP port 4789 [ 7959.444792] be2net 0000:05:00.1: Disabled VxLAN offloads for UDP port 4789 [ 7959.455592] be2net 0000:05:00.2: Disabled VxLAN offloads for UDP port 4789 [ 7959.466416] be2net 0000:05:00.3: Disabled VxLAN offloads for UDP port 4789 [root@sm-04 ~]# ip link del vxlan10 [root@sm-04 ~]# ping -c 3 172.30.10.254 PING 172.30.10.254 (172.30.10.254) 56(84) bytes of data. --- 172.30.10.254 ping statistics --- 3 packets transmitted, 0 received, 100% packet loss, time 1999ms [root@sm-04 ~]# ip link set enp5s0f0 down [root@sm-04 ~]# ip link set enp5s0f0 up [ 8071.019003] be2net 0000:05:00.0 enp5s0f0: Link is Up [root@sm-04 ~]# ping -c 3 172.30.10.254 PING 172.30.10.254 (172.30.10.254) 56(84) bytes of data. 64 bytes from 172.30.10.254: icmp_seq=1 ttl=64 time=0.318 ms 64 bytes from 172.30.10.254: icmp_seq=2 ttl=64 time=0.196 ms 64 bytes from 172.30.10.254: icmp_seq=3 ttl=64 time=0.194 ms --- 172.30.10.254 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2000ms rtt min/avg/max/mdev = 0.194/0.236/0.318/0.057 ms Cc: Sathya Perla Cc: Ajit Khaparde Cc: Padmanabh Ratnakar Cc: Sriharsha Basavapatna Signed-off-by: Ivan Vecera Acked-by: Ajit Khaparde Signed-off-by: David S. Miller drivers/net/ethernet/emulex/benet/be_main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1f979b117b17978b70f20bd981f0791012b1cddf Merge: 776829d 9c7370a Author: David S. Miller Date: Mon Aug 17 14:28:04 2015 -0700 Merge branch 'ipv6_percpu_rt_deadlock' Martin KaFai Lau says: ==================== ipv6: Fix a potential deadlock when creating pcpu rt v1 -> v2: A minor change in the commit message of patch 2. This patch series fixes a potential deadlock when creating a pcpu rt. It happens when dst_alloc() decided to run gc. Something like this: read_lock(&table->tb6_lock); ip6_rt_pcpu_alloc() => dst_alloc() => ip6_dst_gc() => write_lock(&table->tb6_lock); /* oops */ Patch 1 and 2 are some prep works. Patch 3 is the fix. Original report: https://bugzilla.kernel.org/show_bug.cgi?id=102291 ==================== Signed-off-by: David S. Miller commit 9c7370a166b4e157137bfbfe2ad296d57147547c Author: Martin KaFai Lau Date: Fri Aug 14 11:05:54 2015 -0700 ipv6: Fix a potential deadlock when creating pcpu rt rt6_make_pcpu_route() is called under read_lock(&table->tb6_lock). rt6_make_pcpu_route() calls ip6_rt_pcpu_alloc(rt) which then calls dst_alloc(). dst_alloc() _may_ call ip6_dst_gc() which takes the write_lock(&tabl->tb6_lock). A visualized version: read_lock(&table->tb6_lock); rt6_make_pcpu_route(); => ip6_rt_pcpu_alloc(); => dst_alloc(); => ip6_dst_gc(); => write_lock(&table->tb6_lock); /* oops */ The fix is to do a read_unlock first before calling ip6_rt_pcpu_alloc(). A reported stack: [141625.537638] INFO: rcu_sched self-detected stall on CPU { 27} (t=60000 jiffies g=4159086 c=4159085 q=2139) [141625.547469] Task dump for CPU 27: [141625.550881] mtr R running task 0 22121 22081 0x00000008 [141625.558069] 0000000000000000 ffff88103f363d98 ffffffff8106e488 000000000000001b [141625.565641] ffffffff81684900 ffff88103f363db8 ffffffff810702b0 0000000008000000 [141625.573220] ffffffff81684900 ffff88103f363de8 ffffffff8108df9f ffff88103f375a00 [141625.580803] Call Trace: [141625.583345] [] sched_show_task+0xc1/0xc6 [141625.589650] [] dump_cpu_task+0x35/0x39 [141625.595144] [] rcu_dump_cpu_stacks+0x6a/0x8c [141625.601320] [] rcu_check_callbacks+0x1f6/0x5d4 [141625.607669] [] update_process_times+0x2a/0x4f [141625.613925] [] tick_sched_handle+0x32/0x3e [141625.619923] [] tick_sched_timer+0x35/0x5c [141625.625830] [] __hrtimer_run_queues+0x8f/0x18d [141625.632171] [] hrtimer_interrupt+0xa0/0x166 [141625.638258] [] local_apic_timer_interrupt+0x4e/0x52 [141625.645036] [] smp_apic_timer_interrupt+0x39/0x4a [141625.651643] [] apic_timer_interrupt+0x68/0x70 [141625.657895] [] ? dst_destroy+0x7c/0xb5 [141625.664188] [] ? fib6_flush_trees+0x20/0x20 [141625.670272] [] ? queue_write_lock_slowpath+0x60/0x6f [141625.677140] [] _raw_write_lock_bh+0x23/0x25 [141625.683218] [] __fib6_clean_all+0x40/0x82 [141625.689124] [] ? fib6_flush_trees+0x20/0x20 [141625.695207] [] fib6_clean_all+0xe/0x10 [141625.700854] [] fib6_run_gc+0x79/0xc8 [141625.706329] [] ip6_dst_gc+0x85/0xf9 [141625.711718] [] dst_alloc+0x55/0x159 [141625.717105] [] __ip6_dst_alloc.isra.32+0x19/0x63 [141625.723620] [] ip6_pol_route+0x36a/0x3e8 [141625.729441] [] ip6_pol_route_output+0x11/0x13 [141625.735700] [] fib6_rule_action+0xa7/0x1bf [141625.741698] [] ? ip6_pol_route_input+0x17/0x17 [141625.748043] [] fib_rules_lookup+0xb5/0x12a [141625.754050] [] ? poll_select_copy_remaining+0xf9/0xf9 [141625.761002] [] fib6_rule_lookup+0x37/0x5c [141625.766914] [] ? ip6_pol_route_input+0x17/0x17 [141625.773260] [] ip6_route_output+0x7a/0x82 [141625.779177] [] ip6_dst_lookup_tail+0x53/0x112 [141625.785437] [] ip6_dst_lookup_flow+0x2a/0x6b [141625.791604] [] rawv6_sendmsg+0x407/0x9b6 [141625.797423] [] ? do_ipv6_setsockopt.isra.8+0xd87/0xde2 [141625.804464] [] inet_sendmsg+0x57/0x8e [141625.810028] [] sock_sendmsg+0x2e/0x3c [141625.815588] [] SyS_sendto+0xfe/0x143 [141625.821063] [] ? rawv6_setsockopt+0x5e/0x67 [141625.827146] [] ? sock_common_setsockopt+0xf/0x11 [141625.833660] [] ? SyS_setsockopt+0x81/0xa2 [141625.839565] [] entry_SYSCALL_64_fastpath+0x12/0x6a Fixes: d52d3997f843 ("pv6: Create percpu rt6_info") Signed-off-by: Martin KaFai Lau CC: Hannes Frederic Sowa Reported-by: Steinar H. Gunderson Signed-off-by: David S. Miller net/ipv6/ip6_fib.c | 2 ++ net/ipv6/route.c | 44 +++++++++++++++++++++++++++++++++----------- 2 files changed, 35 insertions(+), 11 deletions(-) commit a73e4195636c17f310b8530643a576f42b82385f Author: Martin KaFai Lau Date: Fri Aug 14 11:05:53 2015 -0700 ipv6: Add rt6_make_pcpu_route() It is a prep work for fixing a potential deadlock when creating a pcpu rt. The current rt6_get_pcpu_route() will also create a pcpu rt if one does not exist. This patch moves the pcpu rt creation logic into another function, rt6_make_pcpu_route(). Signed-off-by: Martin KaFai Lau CC: Hannes Frederic Sowa Signed-off-by: David S. Miller net/ipv6/route.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) commit ad706862890171e02df1d7391b05599fb676ec18 Author: Martin KaFai Lau Date: Fri Aug 14 11:05:52 2015 -0700 ipv6: Remove un-used argument from ip6_dst_alloc() After 4b32b5ad31a6 ("ipv6: Stop rt6_info from using inet_peer's metrics"), ip6_dst_alloc() does not need the 'table' argument. This patch cleans it up. Signed-off-by: Martin KaFai Lau CC: Hannes Frederic Sowa Signed-off-by: David S. Miller net/ipv6/route.c | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) commit 776829de90c5972895db398993ddfa9417ff8b01 Author: Igor Plyatov Date: Fri Aug 14 20:11:02 2015 +0300 net: phy: workaround for buggy cable detection by LAN8700 after cable plugging * Due to HW bug, LAN8700 sometimes does not detect presence of energy in the Ethernet cable in Energy Detect Power-Down mode (e.g while EDPWRDOWN bit is set, the ENERGYON bit does not asserted sometimes). This is a common bug of LAN87xx family of PHY chips. * The lan87xx_read_status() was improved to acquire ENERGYON bit. Its previous algorythm still not reliable on 100 % and sometimes skip cable plugging. Signed-off-by: Igor Plyatov Signed-off-by: David S. Miller drivers/net/phy/smsc.c | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) commit a27cc68b9bb25f16b37f9800e977927a2275e7e6 Merge: 2902bc6 f5eeb5f Author: David S. Miller Date: Mon Aug 17 14:03:10 2015 -0700 Merge tag 'mac80211-for-davem-2015-08-14' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211 Johannes Berg says: ==================== We have a single bugfix for an invalid memory read. ==================== Signed-off-by: David S. Miller commit 2902bc66fa7a6d959e033e5358fd836e2839b5db Author: Dan Carpenter Date: Fri Aug 14 11:54:59 2015 +0300 net: ethernet: micrel: fix an error code The dma_mapping_error() function returns true or false. We should return -ENOMEM if it there is a dma mapping error. Signed-off-by: Dan Carpenter Signed-off-by: David S. Miller drivers/net/ethernet/micrel/ks8842.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 8cb775bc0a34dc596837e7da03fd22c747be618b Author: Guillaume Nault Date: Fri Aug 14 10:42:56 2015 +0200 ppp: fix device unregistration upon netns deletion PPP devices may get automatically unregistered when their network namespace is getting removed. This happens if the ppp control plane daemon (e.g. pppd) exits while it is the last user of this namespace. This leads to several races: * ppp_exit_net() may destroy the per namespace idr (pn->units_idr) before all file descriptors were released. Successive ppp_release() calls may then cleanup PPP devices with ppp_shutdown_interface() and try to use the already destroyed idr. * Automatic device unregistration may also happen before the ppp_release() call for that device gets executed. Once called on the file owning the device, ppp_release() will then clean it up and try to unregister it a second time. To fix these issues, operations defined in ppp_shutdown_interface() are moved to the PPP device's ndo_uninit() callback. This allows PPP devices to be properly cleaned up by unregister_netdev() and friends. So checking for ppp->owner is now an accurate test to decide if a PPP device should be unregistered. Setting ppp->owner is done in ppp_create_interface(), before device registration, in order to avoid unprotected modification of this field. Finally, ppp_exit_net() now starts by unregistering all remaining PPP devices to ensure that none will get unregistered after the call to idr_destroy(). Signed-off-by: Guillaume Nault Signed-off-by: David S. Miller drivers/net/ppp/ppp_generic.c | 78 +++++++++++++++++++++++-------------------- 1 file changed, 42 insertions(+), 36 deletions(-) commit 11e122cbe90ea5079622fb57bdf2dffe8cf68e57 Author: Shaohui Xie Date: Fri Aug 14 12:23:40 2015 +0800 net: phy: fix PHY_RUNNING in phy_state_machine Currently, if phy state is PHY_RUNNING, we always register a CHANGE when phy works in polling or interrupt ignored, this will make the adjust_link being called even the phy link did Not changed. checking the phy link to make sure the link did changed before we register a CHANGE, if link did not changed, we do nothing. Signed-off-by: Shaohui Xie Signed-off-by: David S. Miller drivers/net/phy/phy.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) commit 5d37852bf7d48e5afb5238a658cc167e7b78b381 Author: Calvin Owens Date: Thu Aug 13 14:21:34 2015 -0700 Revert "net: limit tcp/udp rmem/wmem to SOCK_{RCV,SND}BUF_MIN" Commit 8133534c760d4083 ("net: limit tcp/udp rmem/wmem to SOCK_{RCV,SND}BUF_MIN") modified four sysctls to enforce that the values written to them are not less than SOCK_MIN_{RCV,SND}BUF. That change causes 4096 to no longer be accepted as a valid value for 'min' in tcp_wmem and udp_wmem_min. 4096 has been the default for both of those sysctls for a long time, and unfortunately seems to be an extremely popular setting. This change breaks a large number of sysctl configurations at Facebook. That commit referred to b1cb59cf2efe7971 ("net: sysctl_net_core: check SNDBUF and RCVBUF for min length"), which choose to use the SOCK_MIN constants as the lower limits to avoid nasty bugs. But AFAICS, a limit of SOCK_MIN_SNDBUF isn't necessary to do that: the BUG_ON cited in the commit message seems to have happened because unix_stream_sendmsg() expects a minimum of a full page (ie SK_MEM_QUANTUM) and the math broke, not because it had less than SOCK_MIN_SNDBUF allocated. This particular issue doesn't seem to affect TCP however: using a setting of "1 1 1" for tcp_{r,w}mem works, although it's obviously suboptimal. SK_MEM_QUANTUM would be a nice minimum, but it's 64K on some archs, so there would still be breakage. Since a value of one doesn't seem to cause any problems, we can drop the minimum 8133534c added to fix this. This reverts commit 8133534c760d4083f79d2cde42c636ccc0b2792e. Fixes: 8133534c760d4083 ("net: limit tcp/udp rmem/wmem to SOCK_MIN...") Cc: Eric Dumazet Cc: Sorin Dumitru Signed-off-by: Calvin Owens Acked-by: Eric Dumazet Signed-off-by: David S. Miller net/ipv4/sysctl_net_ipv4.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) commit 05aa1a77dcf1b9f9c4fedf09a0a53e15d6b21738 Author: Robert Baldyga Date: Fri Aug 7 12:26:47 2015 +0200 dmaengine: fix balance of privatecnt inc/dec operations This patch increments privatecnt value and set DMA_PRIVATE in device caps in dma_request_slave_channel() function. This is needed to keep privatecnt increment/decrement balance. As function dma_release_channel() decrements privatecnt counter, we need to increment it when channel is requested. Otherwise privatecnt drops into negatives after few dma_release_channel() calls. Reported-by: Krzysztof Kozlowski Signed-off-by: Robert Baldyga Signed-off-by: Vinod Koul drivers/dma/dmaengine.c | 4 ++++ 1 file changed, 4 insertions(+) commit a36304b9e154ccaff67b1d1d0ece6ad6380e3648 Merge: 2c6625c b310c17 Author: Linus Torvalds Date: Mon Aug 17 07:57:46 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: - a regression caused by the conversion of IPsec ESP to the new AEAD interface: ESN with authencesn no longer works because it relied on the AD input SG list having a specific layout which is no longer the case. In linux-next authencesn is fixed properly and no longer assumes anything about the SG list format. While for this release a minimal fix is applied to authencesn so that it works with the new linear layout. - fix memory corruption caused by bogus index in the caam hash code. - fix powerpc nx SHA hashing which could cause module load failures if module signature verification is enabled" * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: crypto: caam - fix memory corruption in ahash_final_ctx crypto: nx - respect sg limit bounds when building sg lists for SHA crypto: authencesn - Fix breakage with new ESP code commit 903ecd0bb970438c3a60c2c33ec9032d6443bf67 Author: Chris Wilson Date: Fri Aug 14 12:59:19 2015 +0100 drm/i915: Flag the execlists context object as dirty after every use Everytime we use the logical context with execlists it becomes dirty (as the hardware will write the new register values afterwards, as well as the GPU state that will be used). We need to then flag the context as dirty everytime since after a swap-out/swap-in cycle the dirty flag will be cleared, and a further swap-out cycle will then loose the most recent GPU state. Signed-off-by: Chris Wilson Cc: stable@vger.kernel.org Reviewed-by: Daniel Vetter Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_lrc.c | 2 ++ 1 file changed, 2 insertions(+) commit 2c6625cd545bdd66acff14f3394865d43920a5c7 Author: Linus Torvalds Date: Sun Aug 16 16:34:13 2015 -0700 Linux 4.2-rc7 Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8916e0b03ec35026008742cdf4d4ed8daf60afb5 Merge: 0f405bf 0214951 Author: Linus Torvalds Date: Sun Aug 16 15:44:33 2015 -0700 Merge tag 'armsoc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Pull ARM SoC fixes from Olof Johansson: "A smallish batch of fixes, a little more than expected this late, but all fixes are contained to their platforms and seem reasonably low risk: - a somewhat large SMP fix for ux500 that still seemed warranted to include here - OMAP DT fixes for pbias regulator specification that broke due to some DT reshuffling - PCIe IRQ routing bugfix for i.MX - networking fixes for keystone - runtime PM for OMAP GPMC - a couple of error path bug fixes for exynos" * tag 'armsoc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: ARM: dts: keystone: Fix the mdio bindings by moving it to soc specific file ARM: dts: keystone: fix the clock node for mdio memory: omap-gpmc: Don't try to save uninitialized GPMC context ARM: imx6: correct i.MX6 PCIe interrupt routing ARM: ux500: add an SMP enablement type and move cpu nodes ARM: dts: dra7: Fix broken pbias device creation ARM: dts: OMAP5: Fix broken pbias device creation ARM: dts: OMAP4: Fix broken pbias device creation ARM: dts: omap243x: Fix broken pbias device creation ARM: EXYNOS: fix double of_node_put() on error path ARM: EXYNOS: Fix potentian kfree() of ro memory commit 0f405bf75ffcf2abe64fb735facd4ef7b89df27f Merge: 0156547 9f16143 Author: Linus Torvalds Date: Sun Aug 16 15:39:31 2015 -0700 Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus Pull MIPS bugfix from Ralf Baechle: "Only a single MIPS fix - the math when invoking syscall_trace_enter was wrong" * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: MIPS: Fix seccomp syscall argument for MIPS64 commit 01565479e99882e873e4dd2f6f067b7cba3acf8f Merge: 8ed1f0e 12e244f Author: Linus Torvalds Date: Sun Aug 16 15:11:25 2015 -0700 Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Merge x86 fixes from Ingo Molnar: "Two followup fixes related to the previous LDT fix" Also applied a further FPU emulation fix from Andy Lutomirski to the branch before actually merging it. * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip x86/ldt: Further fix FPU emulation x86/ldt: Correct FPU emulation access to LDT x86/ldt: Correct LDT access in single stepping logic commit 12e244f4b550498bbaf654a52f93633f7dde2dc7 Author: Andy Lutomirski Date: Fri Aug 14 15:02:55 2015 -0700 x86/ldt: Further fix FPU emulation The previous fix confused a selector with a segment prefix. Fix it. Compile-tested only. Cc: stable@vger.kernel.org Cc: Juergen Gross Reported-by: Linus Torvalds Fixes: 4809146b86c3 ("x86/ldt: Correct FPU emulation access to LDT") Signed-off-by: Andy Lutomirski Signed-off-by: Linus Torvalds arch/x86/math-emu/get_address.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8ed1f0e22f49ef42e63875fd2529389a32ff3566 Author: Jann Horn Date: Sun Aug 16 20:27:01 2015 +0200 fs/fuse: fix ioctl type confusion fuse_dev_ioctl() performed fuse_get_dev() on a user-supplied fd, leading to a type confusion issue. Fix it by checking file->f_op. Signed-off-by: Jann Horn Acked-by: Miklos Szeredi Signed-off-by: Linus Torvalds fs/fuse/dev.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit 02149517acbbf5cf0d1819024977963093168106 Merge: 659181a 85ad3de Author: Olof Johansson Date: Sun Aug 16 21:29:57 2015 +0200 Merge tag 'keystone-dts-late-fixes-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/ssantosh/linux-keystone into fixes ARM: Couple of Keysyone MDIO DTS fixes for 4.2-rc6+ These are necessary to get the NIC card working on all Keystone EVMs. Couple of boards are broken without these two fixes. * tag 'keystone-dts-late-fixes-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/ssantosh/linux-keystone: ARM: dts: keystone: Fix the mdio bindings by moving it to soc specific file ARM: dts: keystone: fix the clock node for mdio Signed-off-by: Olof Johansson commit 9f161439e4104b641a7bfb9b89581d801159fec8 Author: Markos Chandras Date: Thu Aug 13 08:47:59 2015 +0100 MIPS: Fix seccomp syscall argument for MIPS64 Commit 4c21b8fd8f14 ("MIPS: seccomp: Handle indirect system calls (o32)") fixed indirect system calls on O32 but it also introduced a bug for MIPS64 where it erroneously modified the v0 (syscall) register with the assumption that the sycall offset hasn't been taken into consideration. This breaks seccomp on MIPS64 n64 and n32 ABIs. We fix this by replacing the addition with a move instruction. Fixes: 4c21b8fd8f14 ("MIPS: seccomp: Handle indirect system calls (o32)") Cc: # 3.15+ Reviewed-by: James Hogan Signed-off-by: Markos Chandras Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10951/ Signed-off-by: Ralf Baechle arch/mips/kernel/scall64-64.S | 2 +- arch/mips/kernel/scall64-n32.S | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 1efdb5f0a9243ca8f3460a5ce1b407b06a021f02 Merge: 45e38cf 4f258a4 Author: Linus Torvalds Date: Sat Aug 15 13:54:53 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 has two libfc fixes for bugs causing rare crashes, one iscsi fix for a potential hang on shutdown, and a fix for an I/O blocksize issue which caused a regression" * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: sd: Fix maximum I/O size for BLOCK_PC requests libfc: Fix fc_fcp_cleanup_each_cmd() libfc: Fix fc_exch_recv_req() error path libiscsi: Fix host busy blocking during connection teardown commit 7945dc5885c51d05d9368fd0066755adca73f009 Merge: 3acceca 4772ff0 Author: Dave Airlie Date: Sat Aug 15 14:52:12 2015 +1000 Merge tag 'topic/drm-fixes-2015-08-14' of git://anongit.freedesktop.org/drm-intel into drm-next single MST fixes from Maarten. * tag 'topic/drm-fixes-2015-08-14' of git://anongit.freedesktop.org/drm-intel: drm/dp/mst: Remove port after removing connector. commit 3acceca904b7f0b860cb21942dea24fac459b700 Merge: 45e38cf d2944cf Author: Dave Airlie Date: Sat Aug 15 14:51:31 2015 +1000 Merge tag 'drm-intel-fixes-2015-08-14' of git://anongit.freedesktop.org/drm-intel into drm-next three display fixes for Intel. * tag 'drm-intel-fixes-2015-08-14' of git://anongit.freedesktop.org/drm-intel: drm/i915: Commit planes on each crtc separately. drm/i915: calculate primary visibility changes instead of calling from set_config drm/i915: Only dither on 6bpc panels commit 1afb9c539daebc2c8a7b33d0e0b8fc9f74671b02 Author: Viresh Kumar Date: Thu Jul 30 12:40:35 2015 +0530 thermal/cpu_cooling: update policy limits if clipped_freq < policy->max policy->max is the maximum allowed frequency defined by user and clipped_freq is the maximum that thermal constraints allow. If clipped_freq is lower than policy->max, then we need to readjust policy->max. But, if clipped_freq is greater than policy->max, we don't need to do anything. We used to call cpufreq_verify_within_limits() in this case, but it doesn't change anything in this case. Lets skip this unnecessary call and write a comment that explains this. Signed-off-by: Viresh Kumar Signed-off-by: Eduardo Valentin drivers/thermal/cpu_cooling.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) commit abcbcc25cb3edfc3c9af210a88c9386e353191fe Author: Viresh Kumar Date: Thu Jul 30 12:40:34 2015 +0530 thermal/cpu_cooling: rename max_freq as clipped_freq in notifier That's what it is for, lets name it properly. Signed-off-by: Viresh Kumar Signed-off-by: Eduardo Valentin drivers/thermal/cpu_cooling.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 59f0d21883f39d27f14408d4ca211dce80658963 Author: Viresh Kumar Date: Thu Jul 30 12:40:33 2015 +0530 thermal/cpu_cooling: rename cpufreq_val as clipped_freq That's what it is for, lets name it properly. Signed-off-by: Viresh Kumar Signed-off-by: Eduardo Valentin drivers/thermal/cpu_cooling.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit a24af233a1fd09002cabc05d6da248cc5656a2e1 Author: Viresh Kumar Date: Thu Jul 30 12:40:32 2015 +0530 thermal/cpu_cooling: convert 'switch' block to 'if' block in notifier We just need to take care of single event here and there is no need to increase indentation level of most of the code (which causes lines longer that 80 columns to break). Kill the switch block. Signed-off-by: Viresh Kumar Signed-off-by: Eduardo Valentin drivers/thermal/cpu_cooling.c | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) commit 166529c9b6f91b97d771e2e7ebf748aadb239b44 Author: Viresh Kumar Date: Thu Jul 30 12:40:31 2015 +0530 thermal/cpu_cooling: quit early after updating policy If a valid cpufreq_dev is found for policy->cpu, we should update the policy and quit the for loop. There is no need to keep traversing the list of cpufreq_dev's. Signed-off-by: Viresh Kumar Signed-off-by: Eduardo Valentin drivers/thermal/cpu_cooling.c | 1 + 1 file changed, 1 insertion(+) commit 76fd38ce21de506a3867768fac42729eb6d7dedf Author: Viresh Kumar Date: Thu Jul 30 12:40:30 2015 +0530 thermal/cpu_cooling: No need to initialize max_freq to 0 Its always set before getting used, don't initialize it. Signed-off-by: Viresh Kumar Signed-off-by: Eduardo Valentin drivers/thermal/cpu_cooling.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 02373d7c69b4270bbab930f8a81b0721be794347 Author: Russell King Date: Wed Aug 12 15:22:16 2015 +0530 thermal: cpu_cooling: fix lockdep problems in cpu_cooling A recent change to the cpu_cooling code introduced a AB-BA deadlock scenario between the cpufreq_policy_notifier_list rwsem and the cooling_cpufreq_lock. This is caused by cooling_cpufreq_lock being held before the registration/removal of the notifier block (an operation which takes the rwsem), and the notifier code itself which takes the locks in the reverse order: ====================================================== [ INFO: possible circular locking dependency detected ] 3.18.0+ #1453 Not tainted ------------------------------------------------------- rc.local/770 is trying to acquire lock: (cooling_cpufreq_lock){+.+.+.}, at: [] cpufreq_thermal_notifier+0x34/0xfc but task is already holding lock: ((cpufreq_policy_notifier_list).rwsem){++++.+}, at: [] __blocking_notifier_call_chain+0x34/0x68 which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #1 ((cpufreq_policy_notifier_list).rwsem){++++.+}: [] down_write+0x44/0x9c [] blocking_notifier_chain_register+0x28/0xd8 [] cpufreq_register_notifier+0x68/0x90 [] __cpufreq_cooling_register.part.1+0x120/0x180 [] __cpufreq_cooling_register+0x98/0xa4 [] cpufreq_cooling_register+0x18/0x1c [] imx_thermal_probe+0x1c0/0x470 [imx_thermal] [] platform_drv_probe+0x50/0xac [] driver_probe_device+0x114/0x234 [] __driver_attach+0x9c/0xa0 [] bus_for_each_dev+0x5c/0x90 [] driver_attach+0x24/0x28 [] bus_add_driver+0xe0/0x1d8 [] driver_register+0x80/0xfc [] __platform_driver_register+0x50/0x64 [] 0xbf007018 [] do_one_initcall+0x88/0x1d8 [] load_module+0x1768/0x1ef8 [] SyS_init_module+0xe0/0xf4 [] ret_fast_syscall+0x0/0x48 -> #0 (cooling_cpufreq_lock){+.+.+.}: [] lock_acquire+0xb0/0x124 [] mutex_lock_nested+0x5c/0x3d8 [] cpufreq_thermal_notifier+0x34/0xfc [] notifier_call_chain+0x4c/0x8c [] __blocking_notifier_call_chain+0x50/0x68 [] blocking_notifier_call_chain+0x20/0x28 [] cpufreq_set_policy+0x7c/0x1d0 [] store_scaling_governor+0x74/0x9c [] store+0x90/0xc0 [] sysfs_kf_write+0x54/0x58 [] kernfs_fop_write+0xdc/0x190 [] vfs_write+0xac/0x1b4 [] SyS_write+0x44/0x90 [] ret_fast_syscall+0x0/0x48 other info that might help us debug this: Possible unsafe locking scenario: CPU0 CPU1 ---- ---- lock((cpufreq_policy_notifier_list).rwsem); lock(cooling_cpufreq_lock); lock((cpufreq_policy_notifier_list).rwsem); lock(cooling_cpufreq_lock); *** DEADLOCK *** 7 locks held by rc.local/770: #0: (sb_writers#6){.+.+.+}, at: [] vfs_write+0x18c/0x1b4 #1: (&of->mutex){+.+.+.}, at: [] kernfs_fop_write+0xa0/0x190 #2: (s_active#52){.+.+.+}, at: [] kernfs_fop_write+0xa8/0x190 #3: (cpu_hotplug.lock){++++++}, at: [] get_online_cpus+0x34/0x90 #4: (cpufreq_rwsem){.+.+.+}, at: [] store+0x58/0xc0 #5: (&policy->rwsem){+.+.+.}, at: [] store+0x70/0xc0 #6: ((cpufreq_policy_notifier_list).rwsem){++++.+}, at: [] __blocking_notifier_call_chain+0x34/0x68 stack backtrace: CPU: 0 PID: 770 Comm: rc.local Not tainted 3.18.0+ #1453 Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree) Backtrace: [] (dump_backtrace) from [] (show_stack+0x18/0x1c) r6:c0b85a80 r5:c0b75630 r4:00000000 r3:00000000 [] (show_stack) from [] (dump_stack+0x7c/0x98) [] (dump_stack) from [] (print_circular_bug+0x28c/0x2d8) r4:c0b85a80 r3:d0071d40 [] (print_circular_bug) from [] (__lock_acquire+0x1acc/0x1bb0) r10:c0b50660 r8:c09e6d80 r7:d0071d40 r6:c11d0f0c r5:00000007 r4:d0072240 [] (__lock_acquire) from [] (lock_acquire+0xb0/0x124) r10:00000000 r9:c04abfc4 r8:00000000 r7:00000000 r6:00000000 r5:c0a06f0c r4:00000000 [] (lock_acquire) from [] (mutex_lock_nested+0x5c/0x3d8) r10:ec853800 r9:c0a06ed4 r8:d0071d40 r7:c0a06ed4 r6:c11d0f0c r5:00000000 r4:c04abfc4 [] (mutex_lock_nested) from [] (cpufreq_thermal_notifier+0x34/0xfc) r10:ec853800 r9:ec85380c r8:d00d7d3c r7:c0a06ed4 r6:d00d7d3c r5:00000000 r4:fffffffe [] (cpufreq_thermal_notifier) from [] (notifier_call_chain+0x4c/0x8c) r7:00000000 r6:00000000 r5:00000000 r4:fffffffe [] (notifier_call_chain) from [] (__blocking_notifier_call_chain+0x50/0x68) r8:c0a072a4 r7:00000000 r6:d00d7d3c r5:ffffffff r4:c0a06fc8 r3:ffffffff [] (__blocking_notifier_call_chain) from [] (blocking_notifier_call_chain+0x20/0x28) r7:ec98b540 r6:c13ebc80 r5:ed76e600 r4:d00d7d3c [] (blocking_notifier_call_chain) from [] (cpufreq_set_policy+0x7c/0x1d0) [] (cpufreq_set_policy) from [] (store_scaling_governor+0x74/0x9c) r7:ec98b540 r6:0000000c r5:ec98b540 r4:ed76e600 [] (store_scaling_governor) from [] (store+0x90/0xc0) r6:0000000c r5:ed76e6d4 r4:ed76e600 [] (store) from [] (sysfs_kf_write+0x54/0x58) r8:0000000c r7:d00d7f78 r6:ec98b540 r5:0000000c r4:ec853800 r3:0000000c [] (sysfs_kf_write) from [] (kernfs_fop_write+0xdc/0x190) r6:ec98b540 r5:00000000 r4:00000000 r3:c0175330 [] (kernfs_fop_write) from [] (vfs_write+0xac/0x1b4) r10:0162aa70 r9:d00d6000 r8:0000000c r7:d00d7f78 r6:0162aa70 r5:0000000c r4:eccde500 [] (vfs_write) from [] (SyS_write+0x44/0x90) r10:0162aa70 r8:0000000c r7:eccde500 r6:eccde500 r5:00000000 r4:00000000 [] (SyS_write) from [] (ret_fast_syscall+0x0/0x48) r10:00000000 r8:c000edc4 r7:00000004 r6:000216cc r5:0000000c r4:0162aa70 Solve this by moving to finer grained locking - use one mutex to protect the cpufreq_dev_list as a whole, and a separate lock to ensure correct ordering of cpufreq notifier registration and removal. cooling_list_lock is taken within cooling_cpufreq_lock on (un)registration to preserve the behavior of the code, i.e. to atomically add/remove to the list and (un)register the notifier. Fixes: 2dcd851fe4b4 ("thermal: cpu_cooling: Update always cpufreq policy with Reviewed-by: Viresh Kumar Signed-off-by: Russell King Signed-off-by: Viresh Kumar Signed-off-by: Eduardo Valentin drivers/thermal/cpu_cooling.c | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) commit 45e38cff4fce8d6871b5fa5e734e4dc9814d6056 Merge: 8394a1b d7add05 Author: Linus Torvalds Date: Fri Aug 14 17:27:52 2015 -0700 Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm Pull KVM fixes from Paolo Bonzini: "Just two very small & simple patches" * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: KVM: x86: Use adjustment in guest cycles when handling MSR_IA32_TSC_ADJUST KVM: x86: zero IDT limit on entry to SMM commit 8394a1b7151c54c6be66551a0ca1041b398029b6 Merge: fbd9163 7f11c47 Author: Linus Torvalds Date: Fri Aug 14 17:05:26 2015 -0700 Merge branch 'akpm' (patches from Andrew) Merge fixes from Andrew Morton: "11 fixes" * emailed patches from Andrew Morton : Update maintainers for DRM STI driver mm: cma: mark cma_bitmap_maxno() inline in header zram: fix pool name truncation memory-hotplug: fix wrong edge when hot add a new node .mailmap: Andrey Ryabinin has moved ipc/sem.c: update/correct memory barriers mm/hwpoison: fix panic due to split huge zero page ipc,sem: remove uneeded sem_undo_list lock usage in exit_sem() ipc,sem: fix use after free on IPC_RMID after a task using same semaphore set exits mm/hwpoison: fix fail isolate hugetlbfs page w/ refcount held mm/hwpoison: fix page refcount of unknown non LRU page commit fbd9163f1c89f9591c03981bdb2d1de7f6e27c11 Merge: 3670901 b93028c Author: Linus Torvalds Date: Fri Aug 14 16:10:04 2015 -0700 Merge tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux Pull clock fix from Stephen Boyd: "A one-liner for a regression found in the PXA clock driver" * tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: clk: pxa: pxa3xx: fix CKEN register access commit 7f11c47605cbe7cb76fd2f8607f452d4afe919f5 Author: Benjamin Gaignard Date: Fri Aug 14 15:35:24 2015 -0700 Update maintainers for DRM STI driver Add Vincent Abriou and myself as maintainers. Signed-off-by: Benjamin Gaignard Cc: Vincent Abriou Cc: Dave Airlie Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds MAINTAINERS | 9 +++++++++ 1 file changed, 9 insertions(+) commit f21838e056ebc499f5d6ca4cb734e82cf9c275a5 Author: Gregory Fong Date: Fri Aug 14 15:35:21 2015 -0700 mm: cma: mark cma_bitmap_maxno() inline in header cma_bitmap_maxno() was marked as static and not static inline, which can cause warnings about this function not being used if this file is included in a file that does not call that function, and violates the conventions used elsewhere. The two options are to move the function implementation back to mm/cma.c or make it inline here, and it's simple enough for the latter to make sense. Signed-off-by: Gregory Fong Cc: Joonsoo Kim Cc: Sasha Levin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/cma.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4ce321f574a97f3453bca5a4117610b43dabd3ee Author: Sergey Senozhatsky Date: Fri Aug 14 15:35:19 2015 -0700 zram: fix pool name truncation zram_meta_alloc() constructs a pool name for zs_create_pool() call as snprintf(pool_name, sizeof(pool_name), "zram%d", device_id); However, it defines pool name buffer to be only 8 bytes long (minus trailing zero), which means that we can have only 1000 pool names: zram0 -- zram999. With CONFIG_ZSMALLOC_STAT enabled an attempt to create a device zram1000 can fail if device zram100 already exists, because snprintf() will truncate new pool name to zram100 and pass it debugfs_create_dir(), causing: debugfs dir creation failed zram: Error creating memory pool ... and so on. Fix it by passing zram->disk->disk_name to zram_meta_alloc() instead of divice_id. We construct zram%d name earlier and keep it as a ->disk_name, no need to snprintf() it again. Signed-off-by: Sergey Senozhatsky Cc: Minchan Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/block/zram/zram_drv.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit f9126ab9241f66562debf69c2c9d8fee32ddcc53 Author: Xishi Qiu Date: Fri Aug 14 15:35:16 2015 -0700 memory-hotplug: fix wrong edge when hot add a new node When we add a new node, the edge of memory may be wrong. e.g. system has 4 nodes, and node3 is movable, node3 mem:[24G-32G], 1. hotremove the node3, 2. then hotadd node3 with a part of memory, mem:[26G-30G], 3. call hotadd_new_pgdat() free_area_init_node() get_pfn_range_for_nid() 4. it will return wrong start_pfn and end_pfn, because we have not update the memblock. This patch also fixes a BUG_ON during hot-addition, please see http://marc.info/?l=linux-kernel&m=142961156129456&w=2 Signed-off-by: Xishi Qiu Cc: Yasuaki Ishimatsu Cc: Kamezawa Hiroyuki Cc: Taku Izumi Cc: Tang Chen Cc: Gu Zheng Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memory_hotplug.c | 3 +++ mm/page_alloc.c | 8 ++++++++ 2 files changed, 11 insertions(+) commit 2baf9e8948530f2c6af36f0e3d9a26e0315900e6 Author: Andrey Ryabinin Date: Fri Aug 14 15:35:13 2015 -0700 .mailmap: Andrey Ryabinin has moved Update my email address. Signed-off-by: Andrey Ryabinin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds .mailmap | 1 + mm/kasan/kasan.c | 2 +- mm/kasan/report.c | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) commit 3ed1f8a99d70ea1cd1508910eb107d0edcae5009 Author: Manfred Spraul Date: Fri Aug 14 15:35:10 2015 -0700 ipc/sem.c: update/correct memory barriers sem_lock() did not properly pair memory barriers: !spin_is_locked() and spin_unlock_wait() are both only control barriers. The code needs an acquire barrier, otherwise the cpu might perform read operations before the lock test. As no primitive exists inside and since it seems noone wants another primitive, the code creates a local primitive within ipc/sem.c. With regards to -stable: The change of sem_wait_array() is a bugfix, the change to sem_lock() is a nop (just a preprocessor redefinition to improve the readability). The bugfix is necessary for all kernels that use sem_wait_array() (i.e.: starting from 3.10). Signed-off-by: Manfred Spraul Reported-by: Oleg Nesterov Acked-by: Peter Zijlstra (Intel) Cc: "Paul E. McKenney" Cc: Kirill Tkhai Cc: Ingo Molnar Cc: Josh Poimboeuf Cc: Davidlohr Bueso Cc: [3.10+] Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ipc/sem.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) commit 7f6bf39bbdd1dcccd103ba7dce8496a8e72e7df4 Author: Wanpeng Li Date: Fri Aug 14 15:35:08 2015 -0700 mm/hwpoison: fix panic due to split huge zero page Bug: ------------[ cut here ]------------ kernel BUG at mm/huge_memory.c:1957! invalid opcode: 0000 [#1] SMP Modules linked in: snd_hda_codec_hdmi i915 rpcsec_gss_krb5 snd_hda_codec_realtek snd_hda_codec_generic nfsv4 dns_re CPU: 2 PID: 2576 Comm: test_huge Not tainted 4.2.0-rc5-mm1+ #27 Hardware name: Dell Inc. OptiPlex 7020/0F5C5X, BIOS A03 01/08/2015 task: ffff880204e3d600 ti: ffff8800db16c000 task.ti: ffff8800db16c000 RIP: split_huge_page_to_list+0xdb/0x120 Call Trace: memory_failure+0x32e/0x7c0 madvise_hwpoison+0x8b/0x160 SyS_madvise+0x40/0x240 ? do_page_fault+0x37/0x90 entry_SYSCALL_64_fastpath+0x12/0x71 Code: ff f0 41 ff 4c 24 30 74 0d 31 c0 48 83 c4 08 5b 41 5c 41 5d c9 c3 4c 89 e7 e8 e2 58 fd ff 48 83 c4 08 31 c0 RIP split_huge_page_to_list+0xdb/0x120 RSP ---[ end trace aee7ce0df8e44076 ]--- Testcase: #define _GNU_SOURCE #include #include #include #include #include #include #include #include #define MB 1024*1024 int main(void) { char *mem; posix_memalign((void **)&mem, 2 * MB, 200 * MB); madvise(mem, 200 * MB, MADV_HWPOISON); free(mem); return 0; } Huge zero page is allocated if page fault w/o FAULT_FLAG_WRITE flag. The get_user_pages_fast() which called in madvise_hwpoison() will get huge zero page if the page is not allocated before. Huge zero page is a tranparent huge page, however, it is not an anonymous page. memory_failure will split the huge zero page and trigger BUG_ON(is_huge_zero_page(page)); After commit 98ed2b0052e6 ("mm/memory-failure: give up error handling for non-tail-refcounted thp"), memory_failure will not catch non anon thp from madvise_hwpoison path and this bug occur. Fix it by catching non anon thp in memory_failure in order to not split huge zero page in madvise_hwpoison path. After this patch: Injecting memory failure for page 0x202800 at 0x7fd8ae800000 MCE: 0x202800: non anonymous thp [...] [akpm@linux-foundation.org: remove second split, per Wanpeng] Signed-off-by: Wanpeng Li Acked-by: Naoya Horiguchi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memory-failure.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit a97955844807e327df11aa33869009d14d6b7de0 Author: Herton R. Krzesinski Date: Fri Aug 14 15:35:05 2015 -0700 ipc,sem: remove uneeded sem_undo_list lock usage in exit_sem() After we acquire the sma->sem_perm lock in exit_sem(), we are protected against a racing IPC_RMID operation. Also at that point, we are the last user of sem_undo_list. Therefore it isn't required that we acquire or use ulp->lock. Signed-off-by: Herton R. Krzesinski Acked-by: Manfred Spraul Cc: Davidlohr Bueso Cc: Rafael Aquini CC: Aristeu Rozanski Cc: David Jeffery Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ipc/sem.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 602b8593d2b4138c10e922eeaafe306f6b51817b Author: Herton R. Krzesinski Date: Fri Aug 14 15:35:02 2015 -0700 ipc,sem: fix use after free on IPC_RMID after a task using same semaphore set exits The current semaphore code allows a potential use after free: in exit_sem we may free the task's sem_undo_list while there is still another task looping through the same semaphore set and cleaning the sem_undo list at freeary function (the task called IPC_RMID for the same semaphore set). For example, with a test program [1] running which keeps forking a lot of processes (which then do a semop call with SEM_UNDO flag), and with the parent right after removing the semaphore set with IPC_RMID, and a kernel built with CONFIG_SLAB, CONFIG_SLAB_DEBUG and CONFIG_DEBUG_SPINLOCK, you can easily see something like the following in the kernel log: Slab corruption (Not tainted): kmalloc-64 start=ffff88003b45c1c0, len=64 000: 6b 6b 6b 6b 6b 6b 6b 6b 00 6b 6b 6b 6b 6b 6b 6b kkkkkkkk.kkkkkkk 010: ff ff ff ff 6b 6b 6b 6b ff ff ff ff ff ff ff ff ....kkkk........ Prev obj: start=ffff88003b45c180, len=64 000: 00 00 00 00 ad 4e ad de ff ff ff ff 5a 5a 5a 5a .....N......ZZZZ 010: ff ff ff ff ff ff ff ff c0 fb 01 37 00 88 ff ff ...........7.... Next obj: start=ffff88003b45c200, len=64 000: 00 00 00 00 ad 4e ad de ff ff ff ff 5a 5a 5a 5a .....N......ZZZZ 010: ff ff ff ff ff ff ff ff 68 29 a7 3c 00 88 ff ff ........h).<.... BUG: spinlock wrong CPU on CPU#2, test/18028 general protection fault: 0000 [#1] SMP Modules linked in: 8021q mrp garp stp llc nf_conntrack_ipv4 nf_defrag_ipv4 ip6t_REJECT nf_reject_ipv6 nf_conntrack_ipv6 nf_defrag_ipv6 xt_state nf_conntrack ip6table_filter ip6_tables binfmt_misc ppdev input_leds joydev parport_pc parport floppy serio_raw virtio_balloon virtio_rng virtio_console virtio_net iosf_mbi crct10dif_pclmul crc32_pclmul ghash_clmulni_intel pcspkr qxl ttm drm_kms_helper drm snd_hda_codec_generic i2c_piix4 snd_hda_intel snd_hda_codec snd_hda_core snd_hwdep snd_seq snd_seq_device snd_pcm snd_timer snd soundcore crc32c_intel virtio_pci virtio_ring virtio pata_acpi ata_generic [last unloaded: speedstep_lib] CPU: 2 PID: 18028 Comm: test Not tainted 4.2.0-rc5+ #1 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.8.1-20150318_183358- 04/01/2014 RIP: spin_dump+0x53/0xc0 Call Trace: spin_bug+0x30/0x40 do_raw_spin_unlock+0x71/0xa0 _raw_spin_unlock+0xe/0x10 freeary+0x82/0x2a0 ? _raw_spin_lock+0xe/0x10 semctl_down.clone.0+0xce/0x160 ? __do_page_fault+0x19a/0x430 ? __audit_syscall_entry+0xa8/0x100 SyS_semctl+0x236/0x2c0 ? syscall_trace_leave+0xde/0x130 entry_SYSCALL_64_fastpath+0x12/0x71 Code: 8b 80 88 03 00 00 48 8d 88 60 05 00 00 48 c7 c7 a0 2c a4 81 31 c0 65 8b 15 eb 40 f3 7e e8 08 31 68 00 4d 85 e4 44 8b 4b 08 74 5e <45> 8b 84 24 88 03 00 00 49 8d 8c 24 60 05 00 00 8b 53 04 48 89 RIP [] spin_dump+0x53/0xc0 RSP ---[ end trace 783ebb76612867a0 ]--- NMI watchdog: BUG: soft lockup - CPU#3 stuck for 22s! [test:18053] Modules linked in: 8021q mrp garp stp llc nf_conntrack_ipv4 nf_defrag_ipv4 ip6t_REJECT nf_reject_ipv6 nf_conntrack_ipv6 nf_defrag_ipv6 xt_state nf_conntrack ip6table_filter ip6_tables binfmt_misc ppdev input_leds joydev parport_pc parport floppy serio_raw virtio_balloon virtio_rng virtio_console virtio_net iosf_mbi crct10dif_pclmul crc32_pclmul ghash_clmulni_intel pcspkr qxl ttm drm_kms_helper drm snd_hda_codec_generic i2c_piix4 snd_hda_intel snd_hda_codec snd_hda_core snd_hwdep snd_seq snd_seq_device snd_pcm snd_timer snd soundcore crc32c_intel virtio_pci virtio_ring virtio pata_acpi ata_generic [last unloaded: speedstep_lib] CPU: 3 PID: 18053 Comm: test Tainted: G D 4.2.0-rc5+ #1 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.8.1-20150318_183358- 04/01/2014 RIP: native_read_tsc+0x0/0x20 Call Trace: ? delay_tsc+0x40/0x70 __delay+0xf/0x20 do_raw_spin_lock+0x96/0x140 _raw_spin_lock+0xe/0x10 sem_lock_and_putref+0x11/0x70 SYSC_semtimedop+0x7bf/0x960 ? handle_mm_fault+0xbf6/0x1880 ? dequeue_task_fair+0x79/0x4a0 ? __do_page_fault+0x19a/0x430 ? kfree_debugcheck+0x16/0x40 ? __do_page_fault+0x19a/0x430 ? __audit_syscall_entry+0xa8/0x100 ? do_audit_syscall_entry+0x66/0x70 ? syscall_trace_enter_phase1+0x139/0x160 SyS_semtimedop+0xe/0x10 SyS_semop+0x10/0x20 entry_SYSCALL_64_fastpath+0x12/0x71 Code: 47 10 83 e8 01 85 c0 89 47 10 75 08 65 48 89 3d 1f 74 ff 7e c9 c3 0f 1f 44 00 00 55 48 89 e5 e8 87 17 04 00 66 90 c9 c3 0f 1f 00 <55> 48 89 e5 0f 31 89 c1 48 89 d0 48 c1 e0 20 89 c9 48 09 c8 c9 Kernel panic - not syncing: softlockup: hung tasks I wasn't able to trigger any badness on a recent kernel without the proper config debugs enabled, however I have softlockup reports on some kernel versions, in the semaphore code, which are similar as above (the scenario is seen on some servers running IBM DB2 which uses semaphore syscalls). The patch here fixes the race against freeary, by acquiring or waiting on the sem_undo_list lock as necessary (exit_sem can race with freeary, while freeary sets un->semid to -1 and removes the same sem_undo from list_proc or when it removes the last sem_undo). After the patch I'm unable to reproduce the problem using the test case [1]. [1] Test case used below: #include #include #include #include #include #include #include #include #include #define NSEM 1 #define NSET 5 int sid[NSET]; void thread() { struct sembuf op; int s; uid_t pid = getuid(); s = rand() % NSET; op.sem_num = pid % NSEM; op.sem_op = 1; op.sem_flg = SEM_UNDO; semop(sid[s], &op, 1); exit(EXIT_SUCCESS); } void create_set() { int i, j; pid_t p; union { int val; struct semid_ds *buf; unsigned short int *array; struct seminfo *__buf; } un; /* Create and initialize semaphore set */ for (i = 0; i < NSET; i++) { sid[i] = semget(IPC_PRIVATE , NSEM, 0644 | IPC_CREAT); if (sid[i] < 0) { perror("semget"); exit(EXIT_FAILURE); } } un.val = 0; for (i = 0; i < NSET; i++) { for (j = 0; j < NSEM; j++) { if (semctl(sid[i], j, SETVAL, un) < 0) perror("semctl"); } } /* Launch threads that operate on semaphore set */ for (i = 0; i < NSEM * NSET * NSET; i++) { p = fork(); if (p < 0) perror("fork"); if (p == 0) thread(); } /* Free semaphore set */ for (i = 0; i < NSET; i++) { if (semctl(sid[i], NSEM, IPC_RMID)) perror("IPC_RMID"); } /* Wait for forked processes to exit */ while (wait(NULL)) { if (errno == ECHILD) break; }; } int main(int argc, char **argv) { pid_t p; srand(time(NULL)); while (1) { p = fork(); if (p < 0) { perror("fork"); exit(EXIT_FAILURE); } if (p == 0) { create_set(); goto end; } /* Wait for forked processes to exit */ while (wait(NULL)) { if (errno == ECHILD) break; }; } end: return 0; } [akpm@linux-foundation.org: use normal comment layout] Signed-off-by: Herton R. Krzesinski Acked-by: Manfred Spraul Cc: Davidlohr Bueso Cc: Rafael Aquini CC: Aristeu Rozanski Cc: David Jeffery Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ipc/sem.c | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) commit 036138080a4376e5f3e5d0cca8ac99084c5cf06e Author: Wanpeng Li Date: Fri Aug 14 15:34:59 2015 -0700 mm/hwpoison: fix fail isolate hugetlbfs page w/ refcount held Hugetlbfs pages will get a refcount in get_any_page() or madvise_hwpoison() if soft offlining through madvise. The refcount which is held by the soft offline path should be released if we fail to isolate hugetlbfs pages. Fix it by reducing the refcount for both isolation success and failure. Signed-off-by: Wanpeng Li Acked-by: Naoya Horiguchi Cc: [3.9+] Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memory-failure.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) commit 4f32be677b124a49459e2603321c7a5605ceb9f8 Author: Wanpeng Li Date: Fri Aug 14 15:34:56 2015 -0700 mm/hwpoison: fix page refcount of unknown non LRU page After trying to drain pages from pagevec/pageset, we try to get reference count of the page again, however, the reference count of the page is not reduced if the page is still not on LRU list. Fix it by adding the put_page() to drop the page reference which is from __get_any_page(). Signed-off-by: Wanpeng Li Acked-by: Naoya Horiguchi Cc: [3.9+] Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memory-failure.c | 2 ++ 1 file changed, 2 insertions(+) commit 3670901f73e889538a1b8283e8d6eb9962aab410 Merge: b25c6ce 54d46b7 Author: Linus Torvalds Date: Fri Aug 14 11:06:43 2015 -0700 Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull timer fix from Ingo Molnar: "A single clocksource driver suspend/resume fix" * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: clockevents/drivers/sh_cmt: Only perform clocksource suspend/resume if enabled commit b25c6cee55c720e5e8502aa37104409aacd16ad3 Merge: 5e5013c d7a702f Author: Linus Torvalds Date: Fri Aug 14 10:57:16 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: "Misc fixes: PMU driver corner cases, tooling fixes, and an 'AUX' (Intel PT) race related core fix" * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: perf/x86/intel/cqm: Do not access cpu_data() from CPU_UP_PREPARE handler perf/x86/intel: Fix memory leak on hot-plug allocation fail perf: Fix PERF_EVENT_IOC_PERIOD migration race perf: Fix double-free of the AUX buffer perf: Fix fasync handling on inherited events perf tools: Fix test build error when bindir contains double slash perf stat: Fix transaction lenght metrics perf: Fix running time accounting commit 5e5013c6b5150b8009d980d72495a55b79bf5134 Merge: c679765 cba77f0 Author: Linus Torvalds Date: Fri Aug 14 10:45:23 2015 -0700 Merge branch 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull locking fix from Ingo Molnar: "A single fix for a locking self-test crash" * 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: locking/pvqspinlock: Fix kernel panic in locking-selftest commit c679765416705db4788902d74ca8d5edcd4cb816 Merge: 7ddab73 d211d87 Author: Linus Torvalds Date: Fri Aug 14 10:39:32 2015 -0700 Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux Pull drm fixes from Dave Airlie: "Back from holidays, found these in the cracks: one nouveau revert, one vmwgfx locking fix and a bunch of exynos fixes" * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: Revert "drm/nouveau/fifo/gk104: kick channels when deactivating them" drm/vmwgfx: Fix execbuf locking issues drm/exynos/fimc: fix runtime pm support drm/exynos/mixer: always update INT_EN cache drm/exynos/mixer: correct vsync configuration sequence drm/exynos/mixer: fix interrupt clearing drm/exynos/hdmi: fix edid memory leak drm/exynos: gsc: fix wrong bitwise operation for swap detection commit 62c3f2fddd438d6d8d0a3cbb195637b74c3654eb Author: Shailendra Verma Date: Tue Aug 4 16:45:16 2015 +0900 cpufreq: exynos: Fix for memory leak in case SoC name does not match During probe free the memory allocated to "exynos_info" in case of unknown SoC type. Signed-off-by: Shailendra Verma Acked-by: Viresh Kumar Acked-by: Lukasz Majewski [k.kozlowski: Rebased the patch around if(of_machine_is_compatible)] Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim Signed-off-by: Rafael J. Wysocki drivers/cpufreq/exynos-cpufreq.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 7231ed1a813e0a9d249bbbe58e66ca058aee83e1 Author: Hans de Goede Date: Thu Aug 13 18:53:37 2015 +0200 ACPI / video: Fix circular lock dependency issue in the video-detect code Before this commit, the following would happen: a) acpi_video_get_backlight_type() gets called b) acpi_video_get_backlight_type() calls acpi_video_init_backlight_type() c) acpi_video_init_backlight_type() locks its function static init_mutex d) acpi_video_init_backlight_type() calls backlight_register_notifier() e) backlight_register_notifier() takes its notifier-chain lock And when the backlight notifier chain gets called we've: 1) blocking_notifier_call_chain() gets called 2) blocking_notifier_call_chain() takes the notifier-chain lock 3) blocking_notifier_call_chain() calls acpi_video_backlight_notify() 4) acpi_video_backlight_notify() calls acpi_video_get_backlight_type() 5) acpi_video_get_backlight_type() calls acpi_video_init_backlight_type() 6) acpi_video_init_backlight_type() locks its function static init_mutex So in the first call sequence we have: a) init_mutex gets locked b) notifier-chain gets locked and in the second call sequence we have: 1) notifier-chain gets locked 2) init_mutex gets locked And we've a circular locking dependency. This specific locking dependency is fixable without using the big hammer otherwise known as a workqueue, but further analysis shows a similar problem with the backlight notifier chain lock vs register_count_mutex from drivers/acpi/acpi_video.c, and fixing that becomes problematic. So this commit simply fixes this with the big hammer, performance wise this is a non issue as we expect the work to get scheduled exactly zero or one times during normal system use. Fixes: 93a291dfaf9c (ACPI / video: Move backlight notifier to video_detect.c) Signed-off-by: Hans de Goede Reported-and-tested-by: Sedat Dilek Signed-off-by: Rafael J. Wysocki drivers/acpi/video_detect.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) commit 83fccfc3940c4a2db90fd7e7079f5b465cd8c6af Author: Eric Dumazet Date: Thu Aug 13 15:44:51 2015 -0700 inet: fix potential deadlock in reqsk_queue_unlink() When replacing del_timer() with del_timer_sync(), I introduced a deadlock condition : reqsk_queue_unlink() is called from inet_csk_reqsk_queue_drop() inet_csk_reqsk_queue_drop() can be called from many contexts, one being the timer handler itself (reqsk_timer_handler()). In this case, del_timer_sync() loops forever. Simple fix is to test if timer is pending. Fixes: 2235f2ac75fd ("inet: fix races with reqsk timers") Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller net/ipv4/inet_connection_sock.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cf736ea6f902c26e03895dc7f5ccbc55cdc68e6e Author: Dmitry Torokhov Date: Tue Aug 4 09:33:40 2015 -0700 thermal: power_allocator: do not use devm* interfaces The code in question is called outside of standard driver probe()/remove() callbacks and thus will not benefit from use of devm* infrastructure. Signed-off-by: Dmitry Torokhov Signed-off-by: Eduardo Valentin drivers/thermal/power_allocator.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 2a4eebf0c485d8e90bdd2e33e75c4b3b1e1673ac Author: Claudiu Manoil Date: Thu Aug 13 16:50:37 2015 +0300 gianfar: Restore link state settings after MAC reset There are some MAC registers that need to be kept in sync with the link state parameters, see adjust_link(). However, after a MAC soft reset default values for these registers are assumed. In some cases (excepting if down/ if up for example) adjust_link() does not see that these values were reset to default because the priv->old* link parameters were left unchanged. So, reset the priv->old* link params as well during a MAC reset to let adjust_link() restore the MAC link settings to the actual link state values. Fixes following case, for example: Setting link to 100M, changing MTU (implies MAC reset), link state remains unchanged to 100M but MAC registers were reset to default (1G) breaking the connectivity w/ the PHY. Closing and re-opening the interface would restore the MAC link parameters to the correct values. Signed-off-by: Claudiu Manoil Signed-off-by: David S. Miller drivers/net/ethernet/freescale/gianfar.c | 5 +++++ 1 file changed, 5 insertions(+) commit 25b97c016b26039982daaa2c11d83979f93b71ab Author: Andy Whitcroft Date: Thu Aug 13 20:49:01 2015 +0100 ipv4: off-by-one in continuation handling in /proc/net/route When generating /proc/net/route we emit a header followed by a line for each route. When a short read is performed we will restart this process based on the open file descriptor. When calculating the start point we fail to take into account that the 0th entry is the header. This leads us to skip the first entry when doing a continuation read. This can be easily seen with the comparison below: while read l; do echo "$l"; done A cat /proc/net/route >B diff -bu A B | grep '^[+-]' On my example machine I have approximatly 10KB of route output. There we see the very first non-title element is lost in the while read case, and an entry around the 8K mark in the cat case: +wlan0 00000000 02021EAC 0003 0 0 400 00000000 0 0 0 -tun1 00C0AC0A 00000000 0001 0 0 950 00C0FFFF 0 0 0 Fix up the off-by-one when reaquiring position on continuation. Fixes: 8be33e955cb9 ("fib_trie: Fib walk rcu should take a tnode and key instead of a trie and a leaf") BugLink: http://bugs.launchpad.net/bugs/1483440 Acked-by: Alexander Duyck Signed-off-by: Andy Whitcroft Signed-off-by: David S. Miller net/ipv4/fib_trie.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a516993f0ac1694673412eb2d16a091eafa77d2a Author: Linus Lüssing Date: Thu Aug 13 05:54:07 2015 +0200 net: fix wrong skb_get() usage / crash in IGMP/MLD parsing code The recent refactoring of the IGMP and MLD parsing code into ipv6_mc_check_mld() / ip_mc_check_igmp() introduced a potential crash / BUG() invocation for bridges: I wrongly assumed that skb_get() could be used as a simple reference counter for an skb which is not the case. skb_get() bears additional semantics, a user count. This leads to a BUG() invocation in pskb_expand_head() / kernel panic if pskb_may_pull() is called on an skb with a user count greater than one - unfortunately the refactoring did just that. Fixing this by removing the skb_get() call and changing the API: The caller of ipv6_mc_check_mld() / ip_mc_check_igmp() now needs to additionally check whether the returned skb_trimmed is a clone. Fixes: 9afd85c9e455 ("net: Export IGMP/MLD message validation code") Reported-by: Brenden Blanco Signed-off-by: Linus Lüssing Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller net/bridge/br_multicast.c | 4 ++-- net/core/skbuff.c | 37 ++++++++++++++++++------------------- net/ipv4/igmp.c | 33 ++++++++++++++++++--------------- net/ipv6/mcast_snoop.c | 33 ++++++++++++++++++--------------- 4 files changed, 56 insertions(+), 51 deletions(-) commit d211d87e14d0c1b28a60cb6b512d162634ca6a99 Author: Alexandre Courbot Date: Wed Aug 12 13:17:38 2015 +0900 Revert "drm/nouveau/fifo/gk104: kick channels when deactivating them" This reverts commit 1addc1264852 This commit seems to cause crashes in gk104_fifo_intr_runlist() by returning 0xbad0da00 when register 0x2a00 is read. Since this commit was intended for GM20B which is not completely supported yet, let's revert it for the time being. Reported-by: Eric Biggers Signed-off-by: Alexandre Courbot Tested-by: Afzal Mohammed Signed-off-by: Dave Airlie drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c | 29 +++++++----------------- 1 file changed, 8 insertions(+), 21 deletions(-) commit 3e04e2fe6d87807d27521ad6ebb9e7919d628f25 Author: Thomas Hellstrom Date: Tue Aug 11 22:31:17 2015 -0700 drm/vmwgfx: Fix execbuf locking issues This addresses two issues that cause problems with viewperf maya-03 in situation with memory pressure. The first issue causes attempts to unreserve buffers if batched reservation fails due to, for example, a signal pending. While previously the ttm_eu api was resistant against this type of error, it is no longer and the lockdep code will complain about attempting to unreserve buffers that are not reserved. The issue is resolved by avoid calling ttm_eu_backoff_reservation in the buffer reserve error path. The second issue is that the binding_mutex may be held when user-space fence objects are created and hence during memory reclaims. This may cause recursive attempts to grab the binding mutex. The issue is resolved by not holding the binding mutex across fence creation and submission. Signed-off-by: Thomas Hellstrom Reviewed-by: Sinclair Yeh Cc: Signed-off-by: Dave Airlie drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 3c6d45b4178dab250ca2e4ad936e20d5c16939cd Merge: 5b3e2e1 9992349 Author: Dave Airlie Date: Fri Aug 14 09:47:07 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 fixes memory leak and some issues related to mixer and gscaler driver issues. * 'exynos-drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos: drm/exynos/fimc: fix runtime pm support drm/exynos/mixer: always update INT_EN cache drm/exynos/mixer: correct vsync configuration sequence drm/exynos/mixer: fix interrupt clearing drm/exynos/hdmi: fix edid memory leak drm/exynos: gsc: fix wrong bitwise operation for swap detection commit 7ddab73346a1277b90fd6a4d044bc948f9cc9ad8 Merge: cd88ec2 09edea4 Author: Linus Torvalds Date: Thu Aug 13 16:34:56 2015 -0700 Merge branch 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm Pull ARM fixes from Russell King: "Another few small ARM fixes, mostly addressing some VDSO issues" * 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm: ARM: 8410/1: VDSO: fix coarse clock monotonicity regression ARM: 8409/1: Mark ret_fast_syscall as a function ARM: 8408/1: Fix the secondary_startup function in Big Endian case ARM: 8405/1: VDSO: fix regression with toolchains lacking ld.bfd executable commit cd88ec2317015f9ae94fa55149bc6f61e1a460e9 Author: Linus Torvalds Date: Thu Aug 13 16:19:44 2015 -0700 x86: fix error handling for 32-bit compat out-of-range system call numbers Commit 3f5159a9221f ("x86/asm/entry/32: Update -ENOSYS handling to match the 64-bit logic") broke the ENOSYS handling for the 32-bit compat case. The proper error return value was never loaded into %rax, except if things just happened to go through the audit paths, which ended up reloading the return value. This moves the loading or %rax into the normal system call path, just to make sure the error case triggers it. It's kind of sad, since it adds a useless instruction to reload the register to the fast path, but it's not like that single load from the stack is going to be noticeable. Reported-by: David Drysdale Tested-by: Kees Cook Acked-by: Andy Lutomirski Cc: Denys Vlasenko Cc: Ingo Molnar Signed-off-by: Linus Torvalds arch/x86/entry/entry_64_compat.S | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 5b3e2e14eaa2a98232a4f292341fb88438685734 Merge: ebcbf16 34dd051 Author: Linus Torvalds Date: Thu Aug 13 13:52:46 2015 -0700 Merge tag 'dm-4.2-fixes-5' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm Pull device mapper fixes from Mike Snitzer: - two stable fixes for corruption seen in a snapshot of thinp metadata; metadata snapshots aren't widely used but help provide a consistent view of the metadata associated with an active thin-pool. - a dm-cache fix for the 4.2 "default" policy switch from "mq" to "smq" * tag 'dm-4.2-fixes-5' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm: dm cache policy smq: move 'dm-cache-default' module alias to SMQ dm btree: add ref counting ops for the leaves of top level btrees dm thin metadata: delete btrees when releasing metadata snapshot commit ebcbf1664cda2bb504a3c5c1ced114daf4ddf54b Merge: 6b476e1 e162b21 Author: Linus Torvalds Date: Thu Aug 13 13:44:32 2015 -0700 Merge branch 'for-linus' of git://git.kernel.dk/linux-block Pull xen block driver fixes from Jens Axboe: "A few small bug fixes for xen-blk{front,back} that have been sitting over my vacation" * 'for-linus' of git://git.kernel.dk/linux-block: xen-blkback: replace work_pending with work_busy in purge_persistent_gnt() xen-blkfront: don't add indirect pages to list when !feature_persistent xen-blkfront: introduce blkfront_gather_backend_features() commit 6b476e114061599a6ab8d5464a5e16989cb98653 Merge: ed596cd c22fe51 Author: Linus Torvalds Date: Thu Aug 13 13:36:22 2015 -0700 Merge tag 'for-linus-4.2-rc6-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip Pull xen bug fixes from David Vrabel: - revert a fix from 4.2-rc5 that was causing lots of WARNING spam. - fix a memory leak affecting backends in HVM guests. - fix PV domU hang with certain configurations. * tag 'for-linus-4.2-rc6-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip: xen/xenbus: Don't leak memory when unmapping the ring on HVM backend Revert "xen/events/fifo: Handle linked events when closing a port" x86/xen: build "Xen PV" APIC driver for domU as well commit ed596cde9425509ec6ce88e19f03e9b13b6f518b Author: Linus Torvalds Date: Thu Aug 13 08:25:20 2015 -0700 Revert x86 sigcontext cleanups This reverts commits 9a036b93a344 ("x86/signal/64: Remove 'fs' and 'gs' from sigcontext") and c6f2062935c8 ("x86/signal/64: Fix SS handling for signals delivered to 64-bit programs"). They were cleanups, but they break dosemu by changing the signal return behavior (and removing 'fs' and 'gs' from the sigcontext struct - while not actually changing any behavior - causes build problems). Reported-and-tested-by: Stas Sergeev Acked-by: Andy Lutomirski Cc: Ingo Molnar Cc: stable@vger.kernel.org Signed-off-by: Linus Torvalds arch/x86/include/asm/sigcontext.h | 6 +++--- arch/x86/include/uapi/asm/sigcontext.h | 21 +++------------------ arch/x86/kernel/signal.c | 26 +++++++++++--------------- 3 files changed, 17 insertions(+), 36 deletions(-) commit 26b552e0a85ba7e74d384a9624d83118d38071f7 Merge: 2331d30 e6d0069 Author: Linus Torvalds Date: Thu Aug 13 10:46:39 2015 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Pull networking fixes from David Miller: 1) Workaround hw bug when acquiring PCI bos ownership of iwlwifi devices, from Emmanuel Grumbach. 2) Falling back to vmalloc in conntrack should not emit a warning, from Pablo Neira Ayuso. 3) Fix NULL deref when rtlwifi driver is used as an AP, from Luis Felipe Dominguez Vega. 4) Rocker doesn't free netdev on device removal, from Ido Schimmel. 5) UDP multicast early sock demux has route handling races, from Eric Dumazet. 6) Fix L4 checksum handling in openvswitch, from Glenn Griffin. 7) Fix use-after-free in skb_set_peeked, from Herbert Xu. 8) Don't advertize NETIF_F_FRAGLIST in virtio_net driver, this can lead to fraglists longer than the driver can support. From Jason Wang. 9) Fix mlx5 on non-4k-pagesize systems, from Carol L Soto. 10) Fix interrupt storm in bna driver, from Ivan Vecera. 11) Don't propagate -EBUSY from netlink_insert(), from Daniel Borkmann. 12) Fix inet request sock leak, from Eric Dumazet. 13) Fix TX interrupt masking and marking in TX descriptors of fs_enet driver, from LEROY Christophe. 14) Get rid of rule optimizer in gianfar driver, it's buggy and unlikely to get fixed any time soon. From Jakub Kicinski * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (61 commits) cosa: missing error code on failure in probe() gianfar: remove faulty filer optimizer gianfar: correct list membership accounting gianfar: correct filer table writing bonding: Gratuitous ARP gets dropped when first slave added net: dsa: Do not override PHY interface if already configured net: fs_enet: mask interrupts for TX partial frames. net: fs_enet: explicitly remove I flag on TX partial frames inet: fix possible request socket leak inet: fix races with reqsk timers mkiss: Fix error handling in mkiss_open() bnx2x: Free NVRAM lock at end of each page bnx2x: Prevent null pointer dereference on SKB release cxgb4: missing curly braces in t4_setup_debugfs() net-timestamp: Update skb_complete_tx_timestamp comment ipv6: don't reject link-local nexthop on other interface netlink: make sure -EBUSY won't escape from netlink_insert bna: fix interrupts storm caused by erroneous packets net: mvpp2: replace TX coalescing interrupts with hrtimer net: mvpp2: enable proper per-CPU TX buffers unmapping ... commit 2331d30dc8c121c0f350a27fda9e9154b8d3c178 Merge: 30065bf 5c16179 Author: Linus Torvalds Date: Thu Aug 13 10:22:11 2015 -0700 Merge tag 'edac_fix_for_4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp Pull EDAC fix from Borislav Petkov: "A ppc4xx_edac fix for accessing ->csrows properly. This driver was missed during the conversion a couple of years ago" * tag 'edac_fix_for_4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp: EDAC, ppc4xx: Access mci->csrows array elements properly commit 85ad3deea4525504355560649be7a41348111a60 Author: Murali Karicheri Date: Sun Aug 9 20:06:27 2015 -0700 ARM: dts: keystone: Fix the mdio bindings by moving it to soc specific file Currently mdio bindings are defined in keystone.dtsi and this results in incorrect unit address for the node on K2E and K2L SoCs. Fix this by moving them to SoC specific DTS file. Signed-off-by: Murali Karicheri Signed-off-by: Santosh Shilimkar arch/arm/boot/dts/k2e.dtsi | 15 +++++++++++---- arch/arm/boot/dts/k2hk.dtsi | 11 +++++++++++ arch/arm/boot/dts/k2l.dtsi | 16 +++++++++++----- arch/arm/boot/dts/keystone.dtsi | 11 ----------- 4 files changed, 33 insertions(+), 20 deletions(-) commit e61eee7cf8e3f000b6514e18afc74fb8d1525f6d Author: Murali Karicheri Date: Sun Aug 9 20:06:27 2015 -0700 ARM: dts: keystone: fix the clock node for mdio Currently the MDIO clock is pointing to clkpa instead of clkcpgmac. MDIO is part of the ethss and the clock should be clkcpgmac. Signed-off-by: Murali Karicheri Signed-off-by: Santosh Shilimkar arch/arm/boot/dts/keystone.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 659181aedd902c080e871ba9f91bc1a714f7829d Merge: db55350 e984a179 Author: Olof Johansson Date: Thu Aug 13 14:27:12 2015 +0200 Merge tag 'omap-for-v4.2/fixes-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes Fix a NULL pointer exception for omap GPMC bus code if probe fails. * tag 'omap-for-v4.2/fixes-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: memory: omap-gpmc: Don't try to save uninitialized GPMC context Signed-off-by: Olof Johansson commit f5eeb5fa191fd7b634cbc4883ac58f3b2184dbc5 Author: Adrien Schildknecht Date: Tue Jul 28 10:30:16 2015 +0200 mac80211: fix invalid read in minstrel_sort_best_tp_rates() At the last iteration of the loop, j may equal zero and thus tp_list[j - 1] causes an invalid read. Change the logic of the loop so that j - 1 is always >= 0. Cc: stable@vger.kernel.org Signed-off-by: Adrien Schildknecht Signed-off-by: Johannes Berg net/mac80211/rc80211_minstrel.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit db553505991b0bac5d036757dcef65228951f09b Merge: 07616f0 1a9fa19 Author: Olof Johansson Date: Thu Aug 13 12:24:55 2015 +0200 Merge tag 'imx-fixes-4.2-3' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into fixes The i.MX fixes for 4.2, 3rd round: - Fix i.MX6 PCIe interrupt routing which gets missed from stacked IRQ domain conversion. The PCIe wakeup support is currently broken because of this. * tag 'imx-fixes-4.2-3' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: ARM: imx6: correct i.MX6 PCIe interrupt routing Signed-off-by: Olof Johansson commit 07616f013b933a129b9e3be7779b63c85e26c399 Merge: e2e927c 3e9f798 Author: Olof Johansson Date: Thu Aug 13 12:18:45 2015 +0200 Merge tag 'samsung-mach-fixes-4.2' of https://github.com/krzk/linux into fixes Two fixes for bugs in Exynos power domain error exit path: 1. kfree() of read-only memory (name of power domain returned by kstrdup_const()), 2. Doubled of_node_put() leading to invalid ref count for OF node. * tag 'samsung-mach-fixes-4.2' of https://github.com/krzk/linux: ARM: EXYNOS: fix double of_node_put() on error path ARM: EXYNOS: Fix potentian kfree() of ro memory Signed-off-by: Olof Johansson commit d2944cf21305c754fa8b2d6c1eea05ad5dad7944 Author: Maarten Lankhorst Date: Tue Aug 11 12:31:11 2015 +0200 drm/i915: Commit planes on each crtc separately. This patch is based on the upstream commit 5ac1c4bcf073ad and amended for v4.2 to make sure it works as intended. Repeated calls to begin_crtc_commit can cause warnings like this: [ 169.127746] BUG: sleeping function called from invalid context at kernel/locking/mutex.c:616 [ 169.127835] in_atomic(): 0, irqs_disabled(): 1, pid: 1947, name: kms_flip [ 169.127840] 3 locks held by kms_flip/1947: [ 169.127843] #0: (&dev->mode_config.mutex){+.+.+.}, at: [] __drm_modeset_lock_all+0x9c/0x130 [ 169.127860] #1: (crtc_ww_class_acquire){+.+.+.}, at: [] __drm_modeset_lock_all+0xad/0x130 [ 169.127870] #2: (crtc_ww_class_mutex){+.+.+.}, at: [] drm_modeset_lock+0x38/0x110 [ 169.127879] irq event stamp: 665690 [ 169.127882] hardirqs last enabled at (665689): [] _raw_spin_unlock_irqrestore+0x55/0x70 [ 169.127889] hardirqs last disabled at (665690): [] intel_pipe_update_start+0x113/0x5c0 [i915] [ 169.127936] softirqs last enabled at (665470): [] __do_softirq+0x236/0x650 [ 169.127942] softirqs last disabled at (665465): [] irq_exit+0xc5/0xd0 [ 169.127951] CPU: 1 PID: 1947 Comm: kms_flip Not tainted 4.1.0-rc4-patser+ #4039 [ 169.127954] Hardware name: LENOVO 2349AV8/2349AV8, BIOS G1ETA5WW (2.65 ) 04/15/2014 [ 169.127957] ffff8800c49036f0 ffff8800cde5fa28 ffffffff817f6907 0000000080000001 [ 169.127964] 0000000000000000 ffff8800cde5fa58 ffffffff810aebed 0000000000000046 [ 169.127970] ffffffff81c5d518 0000000000000268 0000000000000000 ffff8800cde5fa88 [ 169.127981] Call Trace: [ 169.127992] [] dump_stack+0x4f/0x7b [ 169.128001] [] ___might_sleep+0x16d/0x270 [ 169.128008] [] __might_sleep+0x48/0x90 [ 169.128017] [] mutex_lock_nested+0x29/0x410 [ 169.128073] [] ? vgpu_write64+0x220/0x220 [i915] [ 169.128138] [] ? ironlake_update_primary_plane+0x2ff/0x410 [i915] [ 169.128198] [] intel_frontbuffer_flush+0x25/0x70 [i915] [ 169.128253] [] intel_finish_crtc_commit+0x4c/0x180 [i915] [ 169.128279] [] drm_atomic_helper_commit_planes+0x12c/0x240 [drm_kms_helper] [ 169.128338] [] __intel_set_mode+0x684/0x830 [i915] [ 169.128378] [] intel_crtc_set_config+0x49a/0x620 [i915] [ 169.128385] [] ? mutex_unlock+0x9/0x10 [ 169.128391] [] drm_mode_set_config_internal+0x69/0x120 [ 169.128398] [] ? might_fault+0x57/0xb0 [ 169.128403] [] drm_mode_setcrtc+0x253/0x620 [ 169.128409] [] drm_ioctl+0x1a0/0x6a0 [ 169.128415] [] ? get_parent_ip+0x11/0x50 [ 169.128424] [] do_vfs_ioctl+0x2f8/0x530 [ 169.128429] [] ? trace_hardirqs_on+0xd/0x10 [ 169.128435] [] ? selinux_file_ioctl+0x56/0x100 [ 169.128439] [] SyS_ioctl+0x81/0xa0 [ 169.128445] [] system_call_fastpath+0x12/0x6f Solve it by using the newly introduced drm_atomic_helper_commit_planes_on_crtc. The problem here was that the drm_atomic_helper_commit_planes() helper we were using was basically designed to do begin_crtc_commit(crtc #1) begin_crtc_commit(crtc #2) ... commit all planes finish_crtc_commit(crtc #1) finish_crtc_commit(crtc #2) The problem here is that since our hardware relies on vblank evasion, our CRTC 'begin' function waits until we're out of the danger zone in which register writes might wind up straddling the vblank, then disables interrupts; our 'finish' function re-enables interrupts after the registers have been written. The expectation is that the operations between 'begin' and 'end' must be performed without sleeping (since interrupts are disabled) and should happen as quickly as possible. By clumping all of the 'begin' calls together, we introducing a couple problems: * Subsequent 'begin' invocations might sleep (which is illegal) * The first 'begin' ensured that we were far enough from the vblank that we could write our registers safely and ensure they all fell within the same frame. Adding extra delay waiting for subsequent CRTC's wasn't accounted for and could put us back into the 'danger zone' for CRTC #1. This commit solves the problem by using a new helper that allows an order of operations like: for each crtc { begin_crtc_commit(crtc) // sleep (maybe), then disable interrupts commit planes for this specific CRTC end_crtc_commit(crtc) // reenable interrupts } so that sleeps will only be performed while interrupts are enabled and we can be sure that registers for a CRTC will be written immediately once we know we're in the safe zone. The crtc->config->base.crtc update may seem unrelated, but the helper will use it to obtain the crtc for the state. Without the update it will dereference NULL and crash. Changes since v1: - Use Matt Roper's commit message. Signed-off-by: Maarten Lankhorst Reviewed-by: Matt Roper References: https://bugs.freedesktop.org/show_bug.cgi?id=90398 Reviewed-by: Ander Conselvan de Oliveira Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_atomic.c | 45 +++++++----------------------------- drivers/gpu/drm/i915/intel_display.c | 11 +++++---- 2 files changed, 14 insertions(+), 42 deletions(-) commit f0fdc55db0c6f761f89c6e0c675af2dbd4e7aab4 Author: Maarten Lankhorst Date: Tue Aug 11 12:31:10 2015 +0200 drm/i915: calculate primary visibility changes instead of calling from set_config This should be much cleaner, with the same effects. (cherry picked for v4.2 from commit fb9d6cf8c29bfcb0b3c602f7ded87f128d730382) Signed-off-by: Maarten Lankhorst Reviewed-by: Matt Roper References: https://bugs.freedesktop.org/show_bug.cgi?id=90398 Reviewed-by: Ander Conselvan de Oliveira Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 46 ++++++------------------------------ 1 file changed, 7 insertions(+), 39 deletions(-) commit e8fa4270536de2e5e8205fb2b90bb26afc471729 Author: Daniel Vetter Date: Wed Aug 12 11:43:34 2015 +0200 drm/i915: Only dither on 6bpc panels In commit d328c9d78d64ca11e744fe227096990430a88477 Author: Daniel Vetter Date: Fri Apr 10 16:22:37 2015 +0200 drm/i915: Select starting pipe bpp irrespective or the primary plane we started to select the pipe bpp from sink capabilities and not from the primary framebuffer - that one might change (and we don't want to incur a modeset) and sprites might contain higher bpp content too. We also selected dithering on a 8 bpc screen displaying a 24bpp rgb primary, because pipe_bpp is 24 for such a typical 8 bpc sink, but since the commit mentioned above, base_bpp is always the absolute maximum supported by the hardware, e.g., 36 bpp on my Ironlake chip. Iow. the only way to not get dithering would have been to connect a deep color 12 bpc display, so pipe_bpp == 36 == base_bpp. Hence only enable dithering on 6bpc screens where we difinitely and always want it. Cc: Mario Kleiner Reported-by: Mario Kleiner Signed-off-by: Daniel Vetter Reviewed-and-tested-by: Mario Kleiner Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit b310c178e6d897f82abb9da3af1cd7c02b09f592 Author: Horia Geant? Date: Tue Aug 11 20:19:20 2015 +0300 crypto: caam - fix memory corruption in ahash_final_ctx When doing pointer operation for accessing the HW S/G table, a value representing number of entries (and not number of bytes) must be used. Cc: # 3.6+ Fixes: 045e36780f115 ("crypto: caam - ahash hmac support") Signed-off-by: Horia Geant? Signed-off-by: Herbert Xu drivers/crypto/caam/caamhash.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 7ccb0a9917a511de1d5f92980f26885484d9a914 Author: Woodrow Shen Date: Thu Aug 13 11:20:40 2015 +0800 ALSA: hda - Fix the white noise on Dell laptop Dell laptop causes the white noise by login screen and headphone, and the fixup function ALC292_FIXUP_DISABLE_AAMIX can eliminate this noise. Codec: Realtek ALC3235 Vendor Id: 0x10ec0293 Subsystem Id: 0x102806db Cc: BugLink: https://bugs.launchpad.net/bugs/1484334 Signed-off-by: Woodrow Shen Signed-off-by: Takashi Iwai sound/pci/hda/patch_realtek.c | 1 + 1 file changed, 1 insertion(+) commit 5c16179b550b9fd8114637a56b153c9768ea06a5 Author: Michael Walle Date: Tue Jul 21 11:00:53 2015 +0200 EDAC, ppc4xx: Access mci->csrows array elements properly The commit de3910eb79ac ("edac: change the mem allocation scheme to make Documentation/kobject.txt happy") changed the memory allocation for the csrows member. But ppc4xx_edac was forgotten in the patch. Fix it. Signed-off-by: Michael Walle Cc: Cc: linux-edac Cc: Mauro Carvalho Chehab Link: http://lkml.kernel.org/r/1437469253-8611-1-git-send-email-michael@walle.cc Signed-off-by: Borislav Petkov drivers/edac/ppc4xx_edac.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e6d006938c9bda7ffd22af9d3e1257fd75941fb7 Author: Dan Carpenter Date: Thu Aug 13 00:08:01 2015 +0300 cosa: missing error code on failure in probe() If register_hdlc_device() fails, the current code returns 0 but we should return an error code instead. Signed-off-by: Dan Carpenter Signed-off-by: David S. Miller drivers/net/wan/cosa.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit e941ba8650338ed78e4cfbadca4eda6668a7fe56 Merge: b02e3e9 1f2b729 Author: David S. Miller Date: Wed Aug 12 14:47:06 2015 -0700 Merge branch 'gianfar-fixes' Jakub Kicinski says: ==================== gianfar: filer changes respinning with examples as requested. ==================== Signed-off-by: David S. Miller commit 1f2b72933422dfdaa80b59dc3a4c37eef25c4297 Author: Jakub Kicinski Date: Wed Aug 12 02:41:57 2015 +0200 gianfar: remove faulty filer optimizer Current filer rule optimization is broken in several ways: (1) Can perform reads/writes beyond end of allocated tables. (gianfar_ethtool.c:1326). (2) It breaks badly for rules with more than 2 specifiers (e.g. matching ip, port, tos). Example: # ethtool -N eth2 flow-type udp4 dst-ip 10.0.0.1 dst-port 1 tos 1 action 1 Added rule with ID 254 # ethtool -N eth2 flow-type udp4 dst-ip 10.0.0.2 dst-port 2 tos 2 action 9 Added rule with ID 253 # ethtool -N eth2 flow-type udp4 dst-ip 10.0.0.3 dst-port 3 tos 3 action 17 Added rule with ID 252 # ./filer_decode /sys/kernel/debug/gfar1/filer_raw 00: MASK == 00000210 AND Q:00 ctrl:00000080 prop:00000210 01: FPR == 00000210 AND CLE Q:00 ctrl:00000281 prop:00000210 02: MASK == ffffffff AND Q:00 ctrl:00000080 prop:ffffffff 03: DPT == 00000003 AND Q:00 ctrl:0000008e prop:00000003 04: TOS == 00000003 AND Q:00 ctrl:0000008a prop:00000003 05: DIA == 0a000003 AND Q:11 ctrl:0000448c prop:0a000003 06: DPT == 00000002 AND Q:00 ctrl:0000008e prop:00000002 07: TOS == 00000002 AND Q:00 ctrl:0000008a prop:00000002 08: DIA == 0a000002 AND Q:09 ctrl:0000248c prop:0a000002 09: DIA == 0a000001 AND Q:00 ctrl:0000008c prop:0a000001 0a: DPT == 00000001 AND Q:00 ctrl:0000008e prop:00000001 0b: TOS == 00000001 CLE Q:01 ctrl:0000060a prop:00000001 ff: MASK >= 00000000 Q:00 ctrl:00000020 prop:00000000 (Entire cluster gets AND-ed together). (3) We observed that the masking rules it generates do not play well with clustering on P2020. Only first rule of the cluster would ever fire. Given that optimizer relies heavily on masking this is very hard to fix. Example: # ethtool -N eth2 flow-type udp4 dst-ip 10.0.0.1 dst-port 1 action 1 Added rule with ID 254 # ethtool -N eth2 flow-type udp4 dst-ip 10.0.0.2 dst-port 2 action 9 Added rule with ID 253 # ethtool -N eth2 flow-type udp4 dst-ip 10.0.0.3 dst-port 3 action 17 Added rule with ID 252 # ./filer_decode /sys/kernel/debug/gfar1/filer_raw 00: MASK == 00000210 AND Q:00 ctrl:00000080 prop:00000210 01: FPR == 00000210 AND CLE Q:00 ctrl:00000281 prop:00000210 02: MASK == ffffffff AND Q:00 ctrl:00000080 prop:ffffffff 03: DPT == 00000003 AND Q:00 ctrl:0000008e prop:00000003 04: DIA == 0a000003 Q:11 ctrl:0000440c prop:0a000003 05: DPT == 00000002 AND Q:00 ctrl:0000008e prop:00000002 06: DIA == 0a000002 Q:09 ctrl:0000240c prop:0a000002 07: DIA == 0a000001 AND Q:00 ctrl:0000008c prop:0a000001 08: DPT == 00000001 CLE Q:01 ctrl:0000060e prop:00000001 ff: MASK >= 00000000 Q:00 ctrl:00000020 prop:00000000 Which looks correct according to the spec but only the first (eth id 252)/last added rule for 10.0.0.3 will ever trigger. As if filer did not treat the AND CLE as cluster start but also kept AND-ing the rules. We found no errata covering this. The fact that nobody noticed (2) or (3) makes me think that this feature is not very widely used and we should just remove it. Reported-by: Aleksander Dutkowski Signed-off-by: Jakub Kicinski Acked-by: Claudiu Manoil Signed-off-by: David S. Miller drivers/net/ethernet/freescale/gianfar_ethtool.c | 337 ----------------------- 1 file changed, 337 deletions(-) commit b5c8c8906e425f71efb83291c3837e4b78b769ea Author: Jakub Kicinski Date: Wed Aug 12 02:41:56 2015 +0200 gianfar: correct list membership accounting At a cost of one line let's make sure .count is correct when calling gfar_process_filer_changes(). Signed-off-by: Jakub Kicinski Signed-off-by: David S. Miller drivers/net/ethernet/freescale/gianfar_ethtool.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit a898fe040f62a32b90e26dc1f1b5973608054b29 Author: Jakub Kicinski Date: Wed Aug 12 02:41:55 2015 +0200 gianfar: correct filer table writing MAX_FILER_IDX is the last usable index. Using less-than will already guarantee that one entry for catch-all rule will be left, no need to subtract 1 here. Signed-off-by: Jakub Kicinski Signed-off-by: David S. Miller drivers/net/ethernet/freescale/gianfar_ethtool.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit b02e3e948de6c11fded1821d89012e24d953da12 Author: Venkat Venkatsubra Date: Tue Aug 11 07:57:23 2015 -0700 bonding: Gratuitous ARP gets dropped when first slave added When the first slave is added (such as during bootup) the first gratuitous ARP gets dropped. We don't see this drop during a failover. The packet gets dropped in qdisc (noop_enqueue). The fix is to delay the sending of gratuitous ARPs till the bond dev's carrier is present. It can also be worked around by setting num_grat_arp to more than 1. Signed-off-by: Venkat Venkatsubra Signed-off-by: David S. Miller drivers/net/bonding/bond_main.c | 1 + 1 file changed, 1 insertion(+) commit 211c504a444710b1d8ce3431ac19f2578602ca27 Author: Florian Fainelli Date: Sat Aug 8 12:58:57 2015 -0700 net: dsa: Do not override PHY interface if already configured In case we need to divert reads/writes using the slave MII bus, we may have already fetched a valid PHY interface property from Device Tree, and that mode is used by the PHY driver to make configuration decisions. If we could not fetch the "phy-mode" property, we will assign p->phy_interface to PHY_INTERFACE_MODE_NA, such that we can actually check for that condition as to whether or not we should override the interface value. Fixes: 19334920eaf7 ("net: dsa: Set valid phy interface type") Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller net/dsa/slave.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 4f258a46346c03fa0bbb6199ffaf4e1f9f599660 Author: Martin K. Petersen Date: Tue Jun 23 12:13:59 2015 -0400 sd: Fix maximum I/O size for BLOCK_PC requests Commit bcdb247c6b6a ("sd: Limit transfer length") clamped the maximum size of an I/O request to the MAXIMUM TRANSFER LENGTH field in the BLOCK LIMITS VPD. This had the unfortunate effect of also limiting the maximum size of non-filesystem requests sent to the device through sg/bsg. Avoid using blk_queue_max_hw_sectors() and set the max_sectors queue limit directly. Also update the comment in blk_limits_max_hw_sectors() to clarify that max_hw_sectors defines the limit for the I/O controller only. Signed-off-by: Martin K. Petersen Reported-by: Brian King Tested-by: Brian King Cc: stable@vger.kernel.org # 3.17+ Signed-off-by: James Bottomley block/blk-settings.c | 4 ++-- drivers/scsi/sd.c | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) commit 30065bfda900a844d9c88bc4d5d298025a4fef5e Merge: 04da002 878854a Author: Linus Torvalds Date: Wed Aug 12 11:25:01 2015 -0700 Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux Pull arm64 fix from Catalin Marinas: "Fix coarse clock monotonicity (VDSO timestamp off by one jiffy compared to the syscall one)" * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: arm64: VDSO: fix coarse clock monotonicity regression commit 8f2777f53e3d5ad8ef2a176a4463a5c8e1a16431 Author: Bart Van Assche Date: Fri Jun 5 14:20:51 2015 -0700 libfc: Fix fc_fcp_cleanup_each_cmd() Since fc_fcp_cleanup_cmd() can sleep this function must not be called while holding a spinlock. This patch avoids that fc_fcp_cleanup_each_cmd() triggers the following bug: BUG: scheduling while atomic: sg_reset/1512/0x00000202 1 lock held by sg_reset/1512: #0: (&(&fsp->scsi_pkt_lock)->rlock){+.-...}, at: [] fc_fcp_cleanup_each_cmd.isra.21+0xa5/0x150 [libfc] Preemption disabled at:[] fc_fcp_cleanup_each_cmd.isra.21+0xa5/0x150 [libfc] Call Trace: [] dump_stack+0x4f/0x7b [] __schedule_bug+0x6c/0xd0 [] __schedule+0x71a/0xa10 [] schedule+0x32/0x80 [] fc_seq_set_resp+0xac/0x100 [libfc] [] fc_exch_done+0x41/0x60 [libfc] [] fc_fcp_cleanup_each_cmd.isra.21+0xcf/0x150 [libfc] [] fc_eh_device_reset+0x1c3/0x270 [libfc] [] scsi_try_bus_device_reset+0x29/0x60 [] scsi_ioctl_reset+0x258/0x2d0 [] scsi_ioctl+0x150/0x440 [] sd_ioctl+0xad/0x120 [] blkdev_ioctl+0x1b6/0x810 [] block_ioctl+0x38/0x40 [] do_vfs_ioctl+0x2f8/0x530 [] SyS_ioctl+0x81/0xa0 [] system_call_fastpath+0x16/0x7a Signed-off-by: Bart Van Assche Cc: stable Signed-off-by: Vasu Dev Signed-off-by: James Bottomley drivers/scsi/libfc/fc_fcp.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) commit f6979adeaab578f8ca14fdd32b06ddee0d9d3314 Author: Bart Van Assche Date: Fri Jun 5 14:20:46 2015 -0700 libfc: Fix fc_exch_recv_req() error path Due to patch "libfc: Do not invoke the response handler after fc_exch_done()" (commit ID 7030fd62) the lport_recv() call in fc_exch_recv_req() is passed a dangling pointer. Avoid this by moving the fc_frame_free() call from fc_invoke_resp() to its callers. This patch fixes the following crash: general protection fault: 0000 [#3] PREEMPT SMP RIP: fc_lport_recv_req+0x72/0x280 [libfc] Call Trace: fc_exch_recv+0x642/0xde0 [libfc] fcoe_percpu_receive_thread+0x46a/0x5ed [fcoe] kthread+0x10a/0x120 ret_from_fork+0x42/0x70 Signed-off-by: Bart Van Assche Cc: stable Signed-off-by: Vasu Dev Signed-off-by: James Bottomley drivers/scsi/libfc/fc_exch.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 04da002d98852b38083beb9725967609945a8747 Merge: cec45d9 e037239 Author: Linus Torvalds Date: Wed Aug 12 11:13:54 2015 -0700 Merge branch 'drm-fixes-4.2' of git://people.freedesktop.org/~agd5f/linux Pull amd drm fixes from Alex Deucher: "Dave is on vacation at the moment, so please pull these radeon and amdgpu fixes directly. Just a few minor things for 4.2: - add a new radeon pci id - fix a power management regression in amdgpu - fix HEVC command buffer validation in amdgpu" * 'drm-fixes-4.2' of git://people.freedesktop.org/~agd5f/linux: drm/radeon: add new OLAND pci id Revert "drm/amdgpu: Configure doorbell to maximum slots" drm/amdgpu: add context buffer size check for HEVC commit 660d0831d1494a6837b2f810d08b5be092c1f31d Author: John Soni Jose Date: Wed Jun 24 06:41:58 2015 +0530 libiscsi: Fix host busy blocking during connection teardown In case of hw iscsi offload, an host can have N-number of active connections. There can be IO's running on some connections which make host->host_busy always TRUE. Now if logout from a connection is tried then the code gets into an infinite loop as host->host_busy is always TRUE. iscsi_conn_teardown(....) { ......... /* * Block until all in-progress commands for this connection * time out or fail. */ for (;;) { spin_lock_irqsave(session->host->host_lock, flags); if (!atomic_read(&session->host->host_busy)) { /* OK for ERL == 0 */ spin_unlock_irqrestore(session->host->host_lock, flags); break; } spin_unlock_irqrestore(session->host->host_lock, flags); msleep_interruptible(500); iscsi_conn_printk(KERN_INFO, conn, "iscsi conn_destroy(): " "host_busy %d host_failed %d\n", atomic_read(&session->host->host_busy), session->host->host_failed); ................ ............... } } This is not an issue with software-iscsi/iser as each cxn is a separate host. Fix: Acquiring eh_mutex in iscsi_conn_teardown() before setting session->state = ISCSI_STATE_TERMINATE. Signed-off-by: John Soni Jose Reviewed-by: Mike Christie Reviewed-by: Chris Leech Cc: stable@vger.kernel.org Signed-off-by: James Bottomley drivers/scsi/libiscsi.c | 25 ++----------------------- 1 file changed, 2 insertions(+), 23 deletions(-) commit e037239e5e7b61007763984aa35a8329596d8c88 Author: Alex Deucher Date: Mon Aug 10 15:28:49 2015 -0400 drm/radeon: add new OLAND pci id Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org include/drm/drm_pciids.h | 1 + 1 file changed, 1 insertion(+) commit b8826b0cbf47ecfc9fdefdbf8c7bbb308e117005 Author: Alex Deucher Date: Mon Aug 10 11:08:31 2015 -0400 Revert "drm/amdgpu: Configure doorbell to maximum slots" This reverts commit 78ad5cdd21f0d614983fc397338944e797ec70b9. This commit breaks dpm and suspend/resume on CZ. drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8c8bac59dda0c41c7dd289d443ac42b7b72d31b0 Author: Boyuan Zhang Date: Wed Aug 5 14:03:48 2015 -0400 drm/amdgpu: add context buffer size check for HEVC Signed-off-by: Boyuan Zhang Reviewed-by: Christian König drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) commit cec45d901ef4a8529b319436fdaf391955a39c7a Merge: 58ccab9 8ef9724 Author: Linus Torvalds Date: Wed Aug 12 09:06:39 2015 -0700 Merge tag 'regmap-fix-v4.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap Pull regmap fix from Mark Brown: "regmap: Fix handling of present bits on rbtree cache block resize When expanding a cache block we use krealloc() to resize the register present bitmap without initialising the newly allocated data (the original code was written for kzalloc()). Add an appropraite memset() to fix that" * tag 'regmap-fix-v4.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap: regmap: regcache-rbtree: Clean new present bits on present bitmap resize commit 34dd051741572859bc1fef525c5ddbc127158b52 Author: Yi Zhang Date: Wed Aug 12 19:22:43 2015 +0800 dm cache policy smq: move 'dm-cache-default' module alias to SMQ When creating dm-cache with the default policy, it will call request_module("dm-cache-default") to register the default policy. But the "dm-cache-default" alias was left referring to the MQ policy. Fix this by moving the module alias to SMQ. Fixes: bccab6a0 (dm cache: switch the "default" cache replacement policy from mq to smq) Signed-off-by: Yi Zhang Signed-off-by: Mike Snitzer drivers/md/dm-cache-policy-mq.c | 2 -- drivers/md/dm-cache-policy-smq.c | 2 ++ 2 files changed, 2 insertions(+), 2 deletions(-) commit b0dc3c8bc157c60b1d470163882be8c13e1950af Author: Joe Thornber Date: Wed Aug 12 15:12:09 2015 +0100 dm btree: add ref counting ops for the leaves of top level btrees When using nested btrees, the top leaves of the top levels contain block addresses for the root of the next tree down. If we shadow a shared leaf node the leaf values (sub tree roots) should be incremented accordingly. This is only an issue if there is metadata sharing in the top levels. Which only occurs if metadata snapshots are being used (as is possible with dm-thinp). And could result in a block from the thinp metadata snap being reused early, thus corrupting the thinp metadata snap. Signed-off-by: Joe Thornber Signed-off-by: Mike Snitzer Cc: stable@vger.kernel.org drivers/md/persistent-data/dm-btree-internal.h | 6 +++++ drivers/md/persistent-data/dm-btree-remove.c | 16 +++++------ drivers/md/persistent-data/dm-btree-spine.c | 37 ++++++++++++++++++++++++++ drivers/md/persistent-data/dm-btree.c | 7 +---- 4 files changed, 50 insertions(+), 16 deletions(-) commit 7f518ad0a212e2a6fd68630e176af1de395070a7 Author: Joe Thornber Date: Wed Aug 12 15:10:21 2015 +0100 dm thin metadata: delete btrees when releasing metadata snapshot The device details and mapping trees were just being decremented before. Now btree_del() is called to do a deep delete. Signed-off-by: Joe Thornber Signed-off-by: Mike Snitzer Cc: stable@vger.kernel.org drivers/md/dm-thin-metadata.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit d7a702f0b1033cf402fef65bd6395072738f0844 Author: Matt Fleming Date: Thu Aug 6 13:12:43 2015 +0100 perf/x86/intel/cqm: Do not access cpu_data() from CPU_UP_PREPARE handler Tony reports that booting his 144-cpu machine with maxcpus=10 triggers the following WARN_ON(): [ 21.045727] WARNING: CPU: 8 PID: 647 at arch/x86/kernel/cpu/perf_event_intel_cqm.c:1267 intel_cqm_cpu_prepare+0x75/0x90() [ 21.045744] CPU: 8 PID: 647 Comm: systemd-udevd Not tainted 4.2.0-rc4 #1 [ 21.045745] Hardware name: Intel Corporation BRICKLAND/BRICKLAND, BIOS BRHSXSD1.86B.0066.R00.1506021730 06/02/2015 [ 21.045747] 0000000000000000 0000000082771b09 ffff880856333ba8 ffffffff81669b67 [ 21.045748] 0000000000000000 0000000000000000 ffff880856333be8 ffffffff8107b02a [ 21.045750] ffff88085b789800 ffff88085f68a020 ffffffff819e2470 000000000000000a [ 21.045750] Call Trace: [ 21.045757] [] dump_stack+0x45/0x57 [ 21.045759] [] warn_slowpath_common+0x8a/0xc0 [ 21.045761] [] warn_slowpath_null+0x1a/0x20 [ 21.045762] [] intel_cqm_cpu_prepare+0x75/0x90 [ 21.045764] [] intel_cqm_cpu_notifier+0x42/0x160 [ 21.045767] [] notifier_call_chain+0x4d/0x80 [ 21.045769] [] __raw_notifier_call_chain+0xe/0x10 [ 21.045770] [] _cpu_up+0xe8/0x190 [ 21.045771] [] cpu_up+0x7a/0xa0 [ 21.045774] [] cpu_subsys_online+0x40/0x90 [ 21.045777] [] device_online+0x67/0x90 [ 21.045778] [] online_store+0x8a/0xa0 [ 21.045782] [] dev_attr_store+0x18/0x30 [ 21.045785] [] sysfs_kf_write+0x3a/0x50 [ 21.045786] [] kernfs_fop_write+0x120/0x170 [ 21.045789] [] __vfs_write+0x37/0x100 [ 21.045791] [] ? __sb_start_write+0x58/0x110 [ 21.045795] [] ? security_file_permission+0x3d/0xc0 [ 21.045796] [] vfs_write+0xa9/0x190 [ 21.045797] [] SyS_write+0x55/0xc0 [ 21.045800] [] ? do_page_fault+0x30/0x80 [ 21.045804] [] entry_SYSCALL_64_fastpath+0x12/0x71 [ 21.045805] ---[ end trace fe228b836d8af405 ]--- The root cause is that CPU_UP_PREPARE is completely the wrong notifier action from which to access cpu_data(), because smp_store_cpu_info() won't have been executed by the target CPU at that point, which in turn means that ->x86_cache_max_rmid and ->x86_cache_occ_scale haven't been filled out. Instead let's invoke our handler from CPU_STARTING and rename it appropriately. Reported-by: Tony Luck Signed-off-by: Matt Fleming Signed-off-by: Peter Zijlstra (Intel) Cc: Ashok Raj Cc: Kanaka Juvva Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Vikas Shivappa Link: http://lkml.kernel.org/r/1438863163-14083-1-git-send-email-matt@codeblueprint.co.uk Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel_cqm.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit dbc72b7a0c673ff00fdeb21d3a26064e2185baf4 Author: Peter Zijlstra Date: Mon Aug 10 14:17:34 2015 +0200 perf/x86/intel: Fix memory leak on hot-plug allocation fail We fail to free the shared_regs allocation if the constraint_list allocation fails. Cure this and be more consistent in NULL-ing the pointers after free. Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel.c | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) commit c7999c6f3fed9e383d3131474588f282ae6d56b9 Author: Peter Zijlstra Date: Tue Aug 4 19:22:49 2015 +0200 perf: Fix PERF_EVENT_IOC_PERIOD migration race I ran the perf fuzzer, which triggered some WARN()s which are due to trying to stop/restart an event on the wrong CPU. Use the normal IPI pattern to ensure we run the code on the correct CPU. Signed-off-by: Peter Zijlstra (Intel) Cc: Vince Weaver Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Fixes: bad7192b842c ("perf: Fix PERF_EVENT_IOC_PERIOD to force-reset the period") Signed-off-by: Ingo Molnar kernel/events/core.c | 75 ++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 55 insertions(+), 20 deletions(-) commit ee9397a6fb9bc4e52677f5e33eed4abee0f515e6 Author: Ben Hutchings Date: Mon Jul 27 00:31:08 2015 +0100 perf: Fix double-free of the AUX buffer If rb->aux_refcount is decremented to zero before rb->refcount, __rb_free_aux() may be called twice resulting in a double free of rb->aux_pages. Fix this by adding a check to __rb_free_aux(). Signed-off-by: Ben Hutchings Signed-off-by: Peter Zijlstra (Intel) Cc: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: stable@vger.kernel.org Fixes: 57ffc5ca679f ("perf: Fix AUX buffer refcounting") Link: http://lkml.kernel.org/r/1437953468.12842.17.camel@decadent.org.uk Signed-off-by: Ingo Molnar kernel/events/ring_buffer.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit e984a1791ac6a7c944911207e8a9c344763f0003 Author: Tomeu Vizoso Date: Wed Aug 5 14:24:15 2015 +0200 memory: omap-gpmc: Don't try to save uninitialized GPMC context If for some reason the GPMC device hasn't been probed yet, gpmc_base is going to be NULL. Because there's no context yet to be saved, just turn these functions into no-ops until that device gets probed. Unable to handle kernel NULL pointer dereference at virtual address 00000010 pgd = c0204000 [00000010] *pgd=00000000 Internal error: Oops: 5 [#1] SMP ARM Modules linked in: CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.2.0-rc5-next-20150804-05947-g23f38fe8eda9 #1 Hardware name: Generic OMAP3-GP (Flattened Device Tree) task: c0e623e8 ti: c0e5c000 task.ti: c0e5c000 PC is at omap3_gpmc_save_context+0x8/0xc4 LR is at omap_sram_idle+0x154/0x23c pc : [] lr : [] psr: 60000193 sp : c0e5df40 ip : c0f92a80 fp : c0999eb0 r10: c0e57364 r9 : c0e66f14 r8 : 00000003 r7 : 00000000 r6 : 00000003 r5 : 00000000 r4 : c0f5f174 r3 : c0fa4fe8 r2 : 00000000 r1 : 00000000 r0 : fa200280 Flags: nZCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment kernel Control: 10c5387d Table: 80204019 DAC: 00000015 Process swapper/0 (pid: 0, stack limit = 0xc0e5c220) Stack: (0xc0e5df40 to 0xc0e5e000) df40: 00000000 c0e66ef8 c0f5f1a4 00000000 00000003 c02333a4 c3813822 00000000 df60: 00000000 c0e5a5c8 cfb8a5d0 c07f0c44 0e4f1d7e 00000000 00000000 00000000 df80: c3813822 00000000 cfb8a5d0 c0e5e4e4 cfb8a5d0 c0e66f14 c0e5a5c8 c0e5e54c dfa0: c0e5e544 c0e57364 c0999eb0 c0277758 000000fa c0f5d000 00000000 c0d61c18 dfc0: ffffffff ffffffff 00000000 c0d61674 00000000 c0df7a48 00000000 c0f5d5d4 dfe0: c0e5e4c0 c0df7a44 c0e634f8 80204059 00000000 8020807c 00000000 00000000 [] (omap3_gpmc_save_context) from [] (omap_sram_idle+0x154/0x23c) [] (omap_sram_idle) from [] (omap3_enter_idle_bm+0xec/0x1a8) [] (omap3_enter_idle_bm) from [] (cpuidle_enter_state+0xbc/0x284) [] (cpuidle_enter_state) from [] (cpu_startup_entry+0x174/0x24c) [] (cpu_startup_entry) from [] (start_kernel+0x358/0x3c0) [] (start_kernel) from [<8020807c>] (0x8020807c) Code: c0ccace8 c0ccacc0 e59f30b4 e5932000 (e5921010) Signed-off-by: Tomeu Vizoso Suggested-by: Javier Martinez Canillas Reviewed-by: Javier Martinez Canillas Acked-by: Roger Quadros [tony@atomide.com: updated description as suggested by Javier] Signed-off-by: Tony Lindgren drivers/memory/omap-gpmc.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 58ccab91342c1cc1fe08da9b198ac5d763706c2e Merge: edf15b4 c0ddc8c Author: Linus Torvalds Date: Tue Aug 11 15:13:41 2015 -0700 Merge tag 'localmodconfig-v4.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-kconfig Pull localmodconfig fix from Steven Rostedt: "Leonidas Spyropoulos found that modules like nouveau were being unselected by make localmodconfig even though their configs were set and the module was loaded and visible by lsmod. The reason for this was because streamline-config.pl only looks at Makefiles, and not Kbuild files. As these modules use Kbuild for their names, they too need to be checked by localmodconfig. This was fixed by Richard Weinberger" * tag 'localmodconfig-v4.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-kconfig: localmodconfig: Use Kbuild files too commit c0ddc8c745b7f89c50385fd7aa03c78dc543fa7a Author: Richard Weinberger Date: Mon Jul 27 00:06:55 2015 +0200 localmodconfig: Use Kbuild files too In kbuild it is allowed to define objects in files named "Makefile" and "Kbuild". Currently localmodconfig reads objects only from "Makefile"s and misses modules like nouveau. Link: http://lkml.kernel.org/r/1437948415-16290-1-git-send-email-richard@nod.at Cc: stable@vger.kernel.org Reported-and-tested-by: Leonidas Spyropoulos Signed-off-by: Richard Weinberger Signed-off-by: Steven Rostedt scripts/kconfig/streamline_config.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 28eaad7504d2ca1c833299ebf5148671638732f9 Merge: c68875f cb92205 Author: David S. Miller Date: Tue Aug 11 14:16:07 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-08-11 Here's an important regression fix for the 4.2-rc series that ensures user space isn't given invalid LTK values. The bug essentially prevents the encryption of subsequent LE connections, i.e. makes it impossible to pair devices over LE. Let me know if there are any issues pulling. Thanks. ==================== Signed-off-by: David S. Miller commit c68875fa82a8ab2f45a32aa8adab059f3cb1ed01 Author: LEROY Christophe Date: Tue Aug 11 12:11:03 2015 +0200 net: fs_enet: mask interrupts for TX partial frames. We are not interested in interrupts for partially transmitted frames. Unlike SCC and FCC, the FEC doesn't handle the I bit in buffer descriptors, instead it defines two interrupt bits, TXB and TXF. We have to mask TXB in order to only get interrupts once the frame is fully transmitted. Signed-off-by: Christophe Leroy Signed-off-by: David S. Miller drivers/net/ethernet/freescale/fs_enet/mac-fec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8961822c46cc363c239503f998a6d24bbeb346d5 Author: LEROY Christophe Date: Tue Aug 11 12:11:00 2015 +0200 net: fs_enet: explicitly remove I flag on TX partial frames We are not interested in interrupts for partially transmitted frames, we have to clear BD_ENET_TX_INTR explicitly otherwise it may remain from a previously used descriptor. Signed-off-by: Christophe Leroy Signed-off-by: David S. Miller drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit edf15b4d4b01b565cb5f4fd2e2d08940b9f92e2f Merge: 7a834ba 2a17d7e Author: Linus Torvalds Date: Tue Aug 11 10:23:59 2015 -0700 Merge tag 'fbdev-fixes-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux Pull fbdev fixes from Tomi Valkeinen: - fix display regression on Versatile boards - fix OF node refcount bugs on omapdss - fix WARN about clock prepare on pxa3xx_gcu - fix mem leak in videomode helpers - fix fbconsole related boot problem on sun7i-a20-olinuxino-micro * tag 'fbdev-fixes-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux: fbcon: unconditionally initialize cursor blink interval video: Fix possible leak in of_get_videomode() video: fbdev: pxa3xx_gcu: prepare the clocks OMAPDSS: Fix omap_dss_find_output_by_port_node() port refcount decrement OMAPDSS: Fix node refcount leak in omapdss_of_get_next_port() fbdev: select versatile helpers for the integrator commit d3392f41f6d3cd0a034bd0aca47fabea2b47218e Author: Jan Stancek Date: Sat Aug 8 08:47:28 2015 +0200 crypto: nx - respect sg limit bounds when building sg lists for SHA Commit 000851119e80 changed sha256/512 update functions to pass more data to nx_build_sg_list(), which ends with sg list overflows and usually with update functions failing for data larger than max_sg_len * NX_PAGE_SIZE. This happens because: - both "total" and "to_process" are updated, which leads to "to_process" getting overflowed for some data lengths For example: In first iteration "total" is 50, and let's assume "to_process" is 30 due to sg limits. At the end of first iteration "total" is set to 20. At start of 2nd iteration "to_process" overflows on: to_process = total - to_process; - "in_sg" is not reset to nx_ctx->in_sg after each iteration - nx_build_sg_list() is hitting overflow because the amount of data passed to it would require more than sgmax elements - as consequence of previous item, data stored in overflowed sg list may no longer be aligned to SHA*_BLOCK_SIZE This patch changes sha256/512 update functions so that "to_process" respects sg limits and never tries to pass more data to nx_build_sg_list() to avoid overflows. "to_process" is calculated as minimum of "total" and sg limits at start of every iteration. Fixes: 000851119e80 ("crypto: nx - Fix SHA concurrence issue and sg limit bounds") Signed-off-by: Jan Stancek Cc: stable@vger.kernel.org Cc: Leonidas Da Silva Barbosa Cc: Marcelo Henrique Cerri Cc: Fionnuala Gunter Cc: "David S. Miller" Signed-off-by: Herbert Xu drivers/crypto/nx/nx-sha256.c | 27 ++++++++++++++++----------- drivers/crypto/nx/nx-sha512.c | 28 ++++++++++++++++------------ 2 files changed, 32 insertions(+), 23 deletions(-) commit e2e927c8238a84454d0f841a2adf14d4adb1e845 Merge: bf64dd2 cd45567 Author: Olof Johansson Date: Tue Aug 11 15:22:10 2015 +0200 Merge tag 'omap-for-v4.2/fixes-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes Few trivial omap MMC regression fixes for card voltages where the syscon areas for PBIAS regulator were missing "simple-bus" that prevents probing of the children in the mapped region. This probably was not noticed earlier as the bootloader has already configured the regulator for the card in the slot. * tag 'omap-for-v4.2/fixes-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: dts: dra7: Fix broken pbias device creation ARM: dts: OMAP5: Fix broken pbias device creation ARM: dts: OMAP4: Fix broken pbias device creation ARM: dts: omap243x: Fix broken pbias device creation Signed-off-by: Olof Johansson commit 09edea4f8fdeb4e292b80d493296070f5ec64e6e Author: Nathan Lynch Date: Mon Aug 10 17:36:06 2015 +0100 ARM: 8410/1: VDSO: fix coarse clock monotonicity regression Since 906c55579a63 ("timekeeping: Copy the shadow-timekeeper over the real timekeeper last") it has become possible on ARM to: - Obtain a CLOCK_MONOTONIC_COARSE or CLOCK_REALTIME_COARSE timestamp via syscall. - Subsequently obtain a timestamp for the same clock ID via VDSO which predates the first timestamp (by one jiffy). This is because ARM's update_vsyscall is deriving the coarse time using the __current_kernel_time interface, when it should really be using the timekeeper object provided to it by the timekeeping core. It happened to work before only because __current_kernel_time would access the same timekeeper object which had been passed to update_vsyscall. This is no longer the case. Cc: stable@vger.kernel.org Fixes: 906c55579a63 ("timekeeping: Copy the shadow-timekeeper over the real timekeeper last") Signed-off-by: Nathan Lynch Acked-by: Will Deacon Signed-off-by: Russell King arch/arm/kernel/vdso.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit c22fe519e7e2b94ad173e0ea3b89c1a7d8be8d00 Author: Julien Grall Date: Mon Aug 10 19:10:38 2015 +0100 xen/xenbus: Don't leak memory when unmapping the ring on HVM backend The commit ccc9d90a9a8b5c4ad7e9708ec41f75ff9e98d61d "xenbus_client: Extend interface to support multi-page ring" removes the call to free_xenballooned_pages() in xenbus_unmap_ring_vfree_hvm(), leaking a page for every shared ring. Only with backends running in HVM domains were affected. Signed-off-by: Julien Grall Cc: Reviewed-by: Boris Ostrovsky Reviewed-by: Wei Liu Signed-off-by: David Vrabel drivers/xen/xenbus/xenbus_client.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit ad6cd7bafcd2c812ba4200d5938e07304f1e2fcd Author: David Vrabel Date: Mon Aug 10 18:11:06 2015 +0100 Revert "xen/events/fifo: Handle linked events when closing a port" This reverts commit fcdf31a7c162de0c93a2bee51df4688ab0a348f8. This was causing a WARNING whenever a PIRQ was closed since shutdown_pirq() is called with irqs disabled. Signed-off-by: David Vrabel Cc: drivers/xen/events/events_base.c | 10 ++++---- drivers/xen/events/events_fifo.c | 45 ++++-------------------------------- drivers/xen/events/events_internal.h | 7 ------ 3 files changed, 9 insertions(+), 53 deletions(-) commit 4772ff03df8094fd99d28de5fcf5df3a3e9c68bb Author: Maarten Lankhorst Date: Tue Aug 11 09:54:29 2015 +0200 drm/dp/mst: Remove port after removing connector. The port is removed synchronously, but the connector delayed. This causes a use after free which can cause a kernel BUG with slug_debug=FPZU. This is fixed by freeing the port after the connector. This fixes a regression introduced with 6b8eeca65b18ae77e175cc2b6571731f0ee413bf "drm/dp/mst: close deadlock in connector destruction." Cc: stable@vger.kernel.org Cc: Dave Airlie Signed-off-by: Maarten Lankhorst Reviewed-by: Daniel Vetter Signed-off-by: Jani Nikula drivers/gpu/drm/drm_dp_mst_topology.c | 19 +++++++++++++------ include/drm/drm_crtc.h | 2 -- 2 files changed, 13 insertions(+), 8 deletions(-) commit 9992349a54823c511acc438364dceda7abe4ac98 Author: Marek Szyprowski Date: Thu Apr 9 10:46:00 2015 +0200 drm/exynos/fimc: fix runtime pm support Once pm_runtime_set_active() gets called, the kernel assumes that given device has already enabled runtime pm and will call pm_runtime_suspend() without matching pm_runtime_resume(). In case of DRM FIMC IPP driver, this will result in calling clk_disable() without respective call to clk_enable(). This patch removes call to pm_runtime_set_active() to ensure that pm_runtime_suspend/resume calls will match. Signed-off-by: Marek Szyprowski Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_fimc.c | 1 - 1 file changed, 1 deletion(-) commit 2c5f70ef58171943c0d9a89590b2bf9ee437ec48 Author: Andrzej Hajda Date: Thu Jul 9 08:25:41 2015 +0200 drm/exynos/mixer: always update INT_EN cache INT_EN cache field was updated only by mixer_enable_vblank. The patch adds update also by mixer_disable_vblank function. Signed-off-by: Andrzej Hajda Reviewed-by: Joonyoung Shim Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_mixer.c | 5 +++++ 1 file changed, 5 insertions(+) commit 4f98f9446f0ec9bc7d1e9274a74e58b04ae48ead Author: Andrzej Hajda Date: Thu Jul 9 08:25:40 2015 +0200 drm/exynos/mixer: correct vsync configuration sequence Specification advises to clear vsync indicator before configuring vsync. Signed-off-by: Andrzej Hajda Reviewed-by: Joonyoung Shim Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_mixer.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 9859e203713a190f79959681836da34606d0d5bd Author: Andrzej Hajda Date: Thu Jul 9 10:07:53 2015 +0200 drm/exynos/mixer: fix interrupt clearing The driver used incorrect flags to clear interrupt status. The patch fixes it. Signed-off-by: Andrzej Hajda Reviewed-by: Joonyoung Shim Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_mixer.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit e6e771dc05b07be1e2b6ced3fa764b30bdda517d Author: Andrzej Hajda Date: Thu Jul 9 08:25:38 2015 +0200 drm/exynos/hdmi: fix edid memory leak edid returned by drm_get_edid should be freed. The patch fixes it. Signed-off-by: Andrzej Hajda Reviewed-by: Joonyoung Shim Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_hdmi.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit f2d016011c04fc36580a3efeeee9217fd80298f8 Author: Hyungwon Hwang Date: Wed Jul 1 19:09:24 2015 +0900 drm/exynos: gsc: fix wrong bitwise operation for swap detection The bits for rotation are not used as exclusively. So GSC_IN_ROT_270 can not be used for swap detection. The definition of it is same with GSC_IN_ROT_MASK. It is enough to check GSC_IN_ROT_90 bit is set or not to check whether width / height size swapping is needed. Signed-off-by: Hyungwon Hwang Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_gsc.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 3257d8b12f954c462d29de6201664a846328a522 Author: Eric Dumazet Date: Mon Aug 10 15:07:34 2015 -0700 inet: fix possible request socket leak In commit b357a364c57c9 ("inet: fix possible panic in reqsk_queue_unlink()"), I missed fact that tcp_check_req() can return the listener socket in one case, and that we must release the request socket refcount or we leak it. Tested: Following packetdrill test template shows the issue 0 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 2920 +0 > S. 0:0(0) ack 1 +.002 < . 1:1(0) ack 21 win 2920 +0 > R 21:21(0) Fixes: b357a364c57c9 ("inet: fix possible panic in reqsk_queue_unlink()") Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller net/ipv4/tcp_ipv4.c | 2 +- net/ipv6/tcp_ipv6.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 2235f2ac75fd2501c251b0b699a9632e80239a6d Author: Eric Dumazet Date: Mon Aug 10 09:09:13 2015 -0700 inet: fix races with reqsk timers reqsk_queue_destroy() and reqsk_queue_unlink() should use del_timer_sync() instead of del_timer() before calling reqsk_put(), otherwise we could free a req still used by another cpu. But before doing so, reqsk_queue_destroy() must release syn_wait_lock spinlock or risk a dead lock, as reqsk_timer_handler() might need to take this same spinlock from reqsk_queue_unlink() (called from inet_csk_reqsk_queue_drop()) Fixes: fa76ce7328b2 ("inet: get rid of central tcp/dccp listener timer") Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller net/core/request_sock.c | 8 +++++++- net/ipv4/inet_connection_sock.c | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) commit 9d332d92a95c9c67abe08b5f7cba64d8fc1e3c76 Author: Fabio Estevam Date: Mon Aug 10 14:22:43 2015 -0300 mkiss: Fix error handling in mkiss_open() If register_netdev() fails we are not propagating the error and we return success because ax_open() succeeded previously. Fix this by checking the return value of ax_open() and register_netdev() and propagate the error in case of failure. Reported-by: RUC_Soft_Sec Signed-off-by: Fabio Estevam Signed-off-by: David S. Miller drivers/net/hamradio/mkiss.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 182554570a3f01457202206ac784b488cd190f75 Merge: 875a74b 3c16241 Author: David S. Miller Date: Mon Aug 10 21:03:25 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 five Netfilter fixes for your net tree, they are: 1) Silence a warning on falling back to vmalloc(). Since 88eab472ec21, we can easily hit this warning message, that gets users confused. So let's get rid of it. 2) Recently when porting the template object allocation on top of kmalloc to fix the netns dependencies between x_tables and conntrack, the error checks where left unchanged. Remove IS_ERR() and check for NULL instead. Patch from Dan Carpenter. 3) Don't ignore gfp_flags in the new nf_ct_tmpl_alloc() function, from Joe Stringer. 4) Fix a crash due to NULL pointer dereference in ip6t_SYNPROXY, patch from Phil Sutter. 5) The sequence number of the Syn+ack that is sent from SYNPROXY to clients is not adjusted through our NAT infrastructure, as a result the client may ignore this TCP packet and TCP flow hangs until the client probes us. Also from Phil Sutter. ==================== Signed-off-by: David S. Miller commit 7a834ba5e26e9e4afabf3cce9ca8cd1c6c3dce50 Merge: 2b9bea0 0be0171 Author: Linus Torvalds Date: Mon Aug 10 15:16:48 2015 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid Pull HID fixes from Jiri Kosina: - fix for bounds limit calculation in uclogic driver, by Dan Carpenter - fix for use-after-free during device removal, by Krzysztof Kozlowski - fix for userspace regression (that became apparent only with shiny new libinput, so it's not that bad, but I still consider it 4.2 material), in wacom driver, by Jason Gerecke * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: HID: wacom: Report correct device resolution when using the wireless adapater HID: hid-input: Fix accessing freed memory during device disconnect HID: uclogic: fix limit in uclogic_tablet_enable() commit 0be017120b80f0fe3da9a8239f989a27e54828f2 Author: Jason Gerecke Date: Wed Aug 5 15:44:53 2015 -0700 HID: wacom: Report correct device resolution when using the wireless adapater The 'wacom_wireless_work' function does not recalculate the tablet's resolution, causing the value contained in the 'features' struct to always be reported to userspace. This value is valid only for the pen interface, meaning that the value will be incorrect for the touchpad (if present). This in particular causes problems for libinput which relies on the reported resolution being correct. This patch adds the necessary calls to recalculate the resolution for each interface. This requires a little bit of code shuffling since both the 'wacom_set_default_phy' and 'wacom_calculate_res' are declared below their new first point of use in 'wacom_wireless_work'. Signed-off-by: Jason Gerecke Signed-off-by: Jiri Kosina drivers/hid/wacom_sys.c | 70 ++++++++++++++++++++++++++----------------------- 1 file changed, 37 insertions(+), 33 deletions(-) commit 875a74b6d6910fc754ec569388f078865f65e088 Merge: 21a4476 0ea853d Author: David S. Miller Date: Mon Aug 10 14:31:59 2015 -0700 Merge branch 'bnx2x-fixes' Yuval Mintz says: ==================== bnx2x: small fixes This adds 2 small fixes, one to error flows during memory release and the other to flash writes via ethtool API. ==================== Signed-off-by: David S. Miller commit 0ea853dfa93371e651d8b7b27fd2344e973a86ed Author: Yuval Mintz Date: Mon Aug 10 12:49:36 2015 +0300 bnx2x: Free NVRAM lock at end of each page Writing each 4Kb page into flash might take up-to ~100 miliseconds, during which time management firmware cannot acces the nvram for its own uses. Firmware upgrade utility use the ethtool API to burn new flash images for the device via the ethtool API, doing so by writing several page-worth of data on each command. Such action might create problems for the management firmware, as the nvram might not be accessible for a long time. This patch changes the write implementation, releasing the nvram lock on the completion of each page, allowing the management firmware time to claim it and perform its own required actions. Signed-off-by: Yuval Mintz Signed-off-by: Ariel Elior Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit e1615903eb6b5e599396d4b3d8e3e96f6d432a6e Author: Yuval Mintz Date: Mon Aug 10 12:49:35 2015 +0300 bnx2x: Prevent null pointer dereference on SKB release On error flows its possible to free an SKB even if it was not allocated. Signed-off-by: Yuval Mintz Signed-off-by: Ariel Elior Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 21a447637d28eb824a1163c1fc5f41ffa4b28e33 Author: Dan Carpenter Date: Sat Aug 8 22:15:25 2015 +0300 cxgb4: missing curly braces in t4_setup_debugfs() There were missing curly braces so it means we call add_debugfs_mem() unintentionally. Fixes: 3ccc6cf74d8c ('cxgb4: Adds support for T6 adapter') Signed-off-by: Dan Carpenter Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 7a76a021cd5a292be875fbc616daf03eab1e6996 Author: Benjamin Poirier Date: Fri Aug 7 09:32:21 2015 -0700 net-timestamp: Update skb_complete_tx_timestamp comment After "62bccb8 net-timestamp: Make the clone operation stand-alone from phy timestamping" the hwtstamps parameter of skb_complete_tx_timestamp() may no longer be NULL. Signed-off-by: Benjamin Poirier Cc: Alexander Duyck Signed-off-by: David S. Miller include/linux/skbuff.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 330567b71d8716704b189454553c2696e1eceb6c Author: Florian Westphal Date: Fri Aug 7 10:54:28 2015 +0200 ipv6: don't reject link-local nexthop on other interface 48ed7b26faa7 ("ipv6: reject locally assigned nexthop addresses") is too strict; it rejects following corner-case: ip -6 route add default via fe80::1:2:3 dev eth1 [ where fe80::1:2:3 is assigned to a local interface, but not eth1 ] Fix this by restricting search to given device if nh is linklocal. Joint work with Hannes Frederic Sowa. Fixes: 48ed7b26faa7 ("ipv6: reject locally assigned nexthop addresses") Signed-off-by: Hannes Frederic Sowa Signed-off-by: Florian Westphal Signed-off-by: David S. Miller net/ipv6/route.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 4e7c1330689e27556de407d3fdadc65ffff5eb12 Author: Daniel Borkmann Date: Fri Aug 7 00:26:41 2015 +0200 netlink: make sure -EBUSY won't escape from netlink_insert Linus reports the following deadlock on rtnl_mutex; triggered only once so far (extract): [12236.694209] NetworkManager D 0000000000013b80 0 1047 1 0x00000000 [12236.694218] ffff88003f902640 0000000000000000 ffffffff815d15a9 0000000000000018 [12236.694224] ffff880119538000 ffff88003f902640 ffffffff81a8ff84 00000000ffffffff [12236.694230] ffffffff81a8ff88 ffff880119c47f00 ffffffff815d133a ffffffff81a8ff80 [12236.694235] Call Trace: [12236.694250] [] ? schedule_preempt_disabled+0x9/0x10 [12236.694257] [] ? schedule+0x2a/0x70 [12236.694263] [] ? schedule_preempt_disabled+0x9/0x10 [12236.694271] [] ? __mutex_lock_slowpath+0x7f/0xf0 [12236.694280] [] ? mutex_lock+0x16/0x30 [12236.694291] [] ? rtnetlink_rcv+0x10/0x30 [12236.694299] [] ? netlink_unicast+0xfb/0x180 [12236.694309] [] ? rtnl_getlink+0x113/0x190 [12236.694319] [] ? rtnetlink_rcv_msg+0x7a/0x210 [12236.694331] [] ? sock_has_perm+0x5c/0x70 [12236.694339] [] ? rtnetlink_rcv+0x30/0x30 [12236.694346] [] ? netlink_rcv_skb+0x9c/0xc0 [12236.694354] [] ? rtnetlink_rcv+0x1f/0x30 [12236.694360] [] ? netlink_unicast+0xfb/0x180 [12236.694367] [] ? netlink_sendmsg+0x484/0x5d0 [12236.694376] [] ? __wake_up+0x2f/0x50 [12236.694387] [] ? sock_sendmsg+0x33/0x40 [12236.694396] [] ? ___sys_sendmsg+0x22e/0x240 [12236.694405] [] ? ___sys_recvmsg+0x135/0x1a0 [12236.694415] [] ? eventfd_write+0x82/0x210 [12236.694423] [] ? fsnotify+0x32e/0x4c0 [12236.694429] [] ? wake_up_q+0x60/0x60 [12236.694434] [] ? __sys_sendmsg+0x39/0x70 [12236.694440] [] ? entry_SYSCALL_64_fastpath+0x12/0x6a It seems so far plausible that the recursive call into rtnetlink_rcv() looks suspicious. One way, where this could trigger is that the senders NETLINK_CB(skb).portid was wrongly 0 (which is rtnetlink socket), so the rtnl_getlink() request's answer would be sent to the kernel instead to the actual user process, thus grabbing rtnl_mutex() twice. One theory would be that netlink_autobind() triggered via netlink_sendmsg() internally overwrites the -EBUSY error to 0, but where it is wrongly originating from __netlink_insert() instead. That would reset the socket's portid to 0, which is then filled into NETLINK_CB(skb).portid later on. As commit d470e3b483dc ("[NETLINK]: Fix two socket hashing bugs.") also puts it, -EBUSY should not be propagated from netlink_insert(). It looks like it's very unlikely to reproduce. We need to trigger the rhashtable_insert_rehash() handler under a situation where rehashing currently occurs (one /rare/ way would be to hit ht->elasticity limits while not filled enough to expand the hashtable, but that would rather require a specifically crafted bind() sequence with knowledge about destination slots, seems unlikely). It probably makes sense to guard __netlink_insert() in any case and remap that error. It was suggested that EOVERFLOW might be better than an already overloaded ENOMEM. Reference: http://thread.gmane.org/gmane.linux.network/372676 Reported-by: Linus Torvalds Signed-off-by: Daniel Borkmann Acked-by: Herbert Xu Acked-by: Thomas Graf Signed-off-by: David S. Miller net/netlink/af_netlink.c | 5 +++++ 1 file changed, 5 insertions(+) commit ade4dc3e616e33c80d7e62855fe1b6f9895bc7c3 Author: Ivan Vecera Date: Thu Aug 6 22:48:23 2015 +0200 bna: fix interrupts storm caused by erroneous packets The commit "e29aa33 bna: Enable Multi Buffer RX" moved packets counter increment from the beginning of the NAPI processing loop after the check for erroneous packets so they are never accounted. This counter is used to inform firmware about number of processed completions (packets). As these packets are never acked the firmware fires IRQs for them again and again. Fixes: e29aa33 ("bna: Enable Multi Buffer RX") Signed-off-by: Ivan Vecera Acked-by: Rasesh Mody Signed-off-by: David S. Miller drivers/net/ethernet/brocade/bna/bnad.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ea70858423c5163ecea8749d8bb517220eac667b Merge: fe1e187 edc660f Author: David S. Miller Date: Mon Aug 10 10:57:01 2015 -0700 Merge branch 'mvpp2-fixes' Marcin Wojtas says: ==================== Fixes for the network driver of Marvell Armada 375 SoC This is a set of three patches that fix long-lasting problems implemented in the initial support for the Armada 375 network controller. Due to an inappropriate concept of handling the per-CPU sent packets' processing on TX path the driver numerous problems occured, such as RCU stalls. Those have been fixed, of which details you can find in the commit logs. The patches were intensively tested on top of v4.2-rc5. I'm looking forward to any comments or remarks. ==================== Signed-off-by: David S. Miller commit edc660fa09e2295b6ee2d2bf742c2a72dfeb18d2 Author: Marcin Wojtas Date: Thu Aug 6 19:00:30 2015 +0200 net: mvpp2: replace TX coalescing interrupts with hrtimer The PP2 controller is capable of per-CPU TX processing, which means there are per-CPU banked register sets and queues. Current version of the driver supports TX packet coalescing - once on given CPU sent packets amount reaches a threshold value, an IRQ occurs. However, there is a single interrupt line responsible for CPU0/1 TX and RX events (the latter is not per-CPU, the hardware does not support RSS). When the top-half executes the interrupt cause is not known. This is why in NAPI poll function, along with RX processing, IRQ cause register on both CPU's is accessed in order to determine on which of them the TX coalescing threshold might have been reached. Thus the egress processing and releasing the buffers is able to take place on the corresponding CPU. Hitherto approach lead to an illegal usage of on_each_cpu function in softirq context. The problem is solved by resigning from TX coalescing interrupts and separating egress finalization from NAPI processing. For that purpose a method of using hrtimer is introduced. In main transmit function (mvpp2_tx) buffers are released once a software coalescing threshold is reached. In case not all the data is processed a timer is set on this CPU - in its interrupt context a tasklet is scheduled in which all queues are processed. At once only one timer per-CPU can be running, which is controlled by a dedicated flag. This commit removes TX processing from NAPI polling function, disables hardware coalescing and enables hrtimer with tasklet, using new per-CPU port structure (mvpp2_port_pcpu). Signed-off-by: Marcin Wojtas Signed-off-by: David S. Miller drivers/net/ethernet/marvell/mvpp2.c | 177 +++++++++++++++++++++++++---------- 1 file changed, 130 insertions(+), 47 deletions(-) commit 71ce391dfb7843f4d31abcd7287967a00cb1b8a1 Author: Marcin Wojtas Date: Thu Aug 6 19:00:29 2015 +0200 net: mvpp2: enable proper per-CPU TX buffers unmapping mvpp2 driver allows usage of per-CPU TX processing. Once the packets are prepared independetly on each CPU, the hardware enqueues the descriptors in common TX queue. After they are sent, the buffers and associated sk_buffs should be released on the corresponding CPU. This is why a special index is maintained in order to point to the right data to be released after transmission takes place. Each per-CPU TX queue comprise an array of sent sk_buffs, freed in mvpp2_txq_bufs_free function. However, the index was used there also for obtaining a descriptor (and therefore a buffer to be DMA-unmapped) from common TX queue, which was wrong, because it was not referring to the current CPU. This commit enables proper unmapping of sent data buffers by indexing them in per-CPU queues using a dedicated array for keeping their physical addresses. Signed-off-by: Marcin Wojtas Signed-off-by: David S. Miller drivers/net/ethernet/marvell/mvpp2.c | 52 +++++++++++++++++++++++++----------- 1 file changed, 37 insertions(+), 15 deletions(-) commit d53793c5d6eb0cfe4175d9c315a30d65adf3478b Author: Marcin Wojtas Date: Thu Aug 6 19:00:28 2015 +0200 net: mvpp2: remove excessive spinlocks from driver initialization Using spinlocks protection during one-time driver initialization is not necessary. Moreover it resulted in invalid GFP_KERNEL allocation under the lock. This commit removes redundant spinlocks from buffer manager part of mvpp2 initialization. Signed-off-by: Marcin Wojtas Reported-by: Alexandre Fournier Signed-off-by: David S. Miller drivers/net/ethernet/marvell/mvpp2.c | 15 --------------- 1 file changed, 15 deletions(-) commit 2b9bea035a488774b176f14f53160442e8906ad8 Merge: 016a9f5 fb9caee Author: Linus Torvalds Date: Mon Aug 10 10:48:11 2015 -0700 Merge tag 'mfd-fixes-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd Pull MFD fixes from Lee Jones: - fix dependency issues on ChromeOS platforms - fix runtime PM issues on Arizona - fix IRQ/suspend race on Arizona * tag 'mfd-fixes-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: mfd: Remove MFD_CROS_EC_SPI depends on OF platform/chrome: Don't make CHROME_PLATFORMS depends on X86 || ARM mfd: arizona: Fix initialisation of the PM runtime mfd: arizona: Fix race between runtime suspend and IRQs commit 016a9f50e28086f70007729017142dedc84e53d1 Merge: a3ca013 e15f940 Author: Linus Torvalds Date: Mon Aug 10 10:38:42 2015 -0700 Merge tag 'ntb-4.2-rc7' of git://github.com/jonmason/ntb Pull NTB bugfixes from Jon Mason: "NTB bug fixes to address transport receive issues, stats, link negotiation issues, and string formatting" * tag 'ntb-4.2-rc7' of git://github.com/jonmason/ntb: ntb: avoid format string in dev_set_name NTB: Fix dereference before check NTB: Fix zero size or integer overflow in ntb_set_mw NTB: Schedule to receive on QP link up NTB: Fix oops in debugfs when transport is half-up NTB: ntb_netdev not covering all receive errors NTB: Fix transport stats for multiple devices NTB: Fix ntb_transport out-of-order RX update commit a3ca013d8824e9bcf9cd62111058e882be9b334c Merge: f7644cb aa65fa3 Author: Linus Torvalds Date: Mon Aug 10 10:04:47 2015 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs Pull RCU pathwalk fix from Al Viro: "Another racy use of nd->path.dentry in RCU mode" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: may_follow_link() should use nd->inode commit 24ee3cf89bef04e8bc23788aca4e029a3f0f06d9 Author: Alban Crequy Date: Thu Aug 6 16:21:05 2015 +0200 cpuset: use trialcs->mems_allowed as a temp variable The comment says it's using trialcs->mems_allowed as a temp variable but it didn't match the code. Change the code to match the comment. This fixes an issue when writing in cpuset.mems when a sub-directory exists: we need to write several times for the information to persist: | root@alban:/sys/fs/cgroup/cpuset# mkdir footest9 | root@alban:/sys/fs/cgroup/cpuset# cd footest9 | root@alban:/sys/fs/cgroup/cpuset/footest9# mkdir aa | root@alban:/sys/fs/cgroup/cpuset/footest9# cat cpuset.mems | | root@alban:/sys/fs/cgroup/cpuset/footest9# echo 0 > cpuset.mems | root@alban:/sys/fs/cgroup/cpuset/footest9# cat cpuset.mems | | root@alban:/sys/fs/cgroup/cpuset/footest9# echo 0 > cpuset.mems | root@alban:/sys/fs/cgroup/cpuset/footest9# cat cpuset.mems | 0 | root@alban:/sys/fs/cgroup/cpuset/footest9# cat aa/cpuset.mems | | root@alban:/sys/fs/cgroup/cpuset/footest9# echo 0 > aa/cpuset.mems | root@alban:/sys/fs/cgroup/cpuset/footest9# cat aa/cpuset.mems | 0 | root@alban:/sys/fs/cgroup/cpuset/footest9# This should help to fix the following issue in Docker: https://github.com/opencontainers/runc/issues/133 In some conditions, a Docker container needs to be started twice in order to work. Signed-off-by: Alban Crequy Tested-by: Iago López Galeiras Cc: # 3.17+ Acked-by: Li Zefan Signed-off-by: Tejun Heo kernel/cpuset.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 443c0d7ed9d3815b3425ca12d65337d52b9a0c34 Author: Herbert Xu Date: Fri Aug 7 16:00:04 2015 +0800 crypto: authencesn - Fix breakage with new ESP code The ESP code has been updated to generate a completely linear AD SG list. This unfortunately broke authencesn which expects the AD to be divided into at least three parts. This patch fixes it to cope with the new format. Later we will fix it properly to accept arbitrary input and not rely on the input being linear as part of the AEAD conversion. Fixes: 7021b2e1cddd ("esp4: Switch to new AEAD interface") Signed-off-by: Herbert Xu crypto/authencesn.c | 44 ++++++++++++-------------------------------- 1 file changed, 12 insertions(+), 32 deletions(-) commit 878854a374620a3f5e8c0a3c418e82a429bc2cff Author: Nathan Lynch Date: Fri Aug 7 21:03:23 2015 -0500 arm64: VDSO: fix coarse clock monotonicity regression Since 906c55579a63 ("timekeeping: Copy the shadow-timekeeper over the real timekeeper last") it has become possible on arm64 to: - Obtain a CLOCK_MONOTONIC_COARSE or CLOCK_REALTIME_COARSE timestamp via syscall. - Subsequently obtain a timestamp for the same clock ID via VDSO which predates the first timestamp (by one jiffy). This is because arm64's update_vsyscall is deriving the coarse time using the __current_kernel_time interface, when it should really be using the timekeeper object provided to it by the timekeeping core. It happened to work before only because __current_kernel_time would access the same timekeeper object which had been passed to update_vsyscall. This is no longer the case. Signed-off-by: Nathan Lynch Acked-by: Will Deacon Signed-off-by: Catalin Marinas arch/arm64/kernel/vdso.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit fc5fee86bdd3d720e2d1d324e4fae0c35845fa63 Author: Jason A. Donenfeld Date: Mon Aug 10 15:40:27 2015 +0200 x86/xen: build "Xen PV" APIC driver for domU as well It turns out that a PV domU also requires the "Xen PV" APIC driver. Otherwise, the flat driver is used and we get stuck in busy loops that never exit, such as in this stack trace: (gdb) target remote localhost:9999 Remote debugging using localhost:9999 __xapic_wait_icr_idle () at ./arch/x86/include/asm/ipi.h:56 56 while (native_apic_mem_read(APIC_ICR) & APIC_ICR_BUSY) (gdb) bt #0 __xapic_wait_icr_idle () at ./arch/x86/include/asm/ipi.h:56 #1 __default_send_IPI_shortcut (shortcut=, dest=, vector=) at ./arch/x86/include/asm/ipi.h:75 #2 apic_send_IPI_self (vector=246) at arch/x86/kernel/apic/probe_64.c:54 #3 0xffffffff81011336 in arch_irq_work_raise () at arch/x86/kernel/irq_work.c:47 #4 0xffffffff8114990c in irq_work_queue (work=0xffff88000fc0e400) at kernel/irq_work.c:100 #5 0xffffffff8110c29d in wake_up_klogd () at kernel/printk/printk.c:2633 #6 0xffffffff8110ca60 in vprintk_emit (facility=0, level=, dict=0x0 , dictlen=, fmt=, args=) at kernel/printk/printk.c:1778 #7 0xffffffff816010c8 in printk (fmt=) at kernel/printk/printk.c:1868 #8 0xffffffffc00013ea in ?? () #9 0x0000000000000000 in ?? () Mailing-list-thread: https://lkml.org/lkml/2015/8/4/755 Signed-off-by: Jason A. Donenfeld Cc: Signed-off-by: David Vrabel arch/x86/xen/Makefile | 4 ++-- arch/x86/xen/xen-ops.h | 6 ++---- 2 files changed, 4 insertions(+), 6 deletions(-) commit 2a17d7e80f1df44d6b94c3696d5eda44fe6638a8 Author: Scot Doyle Date: Tue Aug 4 12:33:32 2015 +0000 fbcon: unconditionally initialize cursor blink interval A sun7i-a20-olinuxino-micro fails to boot when kernel parameter vt.global_cursor_default=0. The value is copied to vc->vc_deccm causing the initialization of ops->cur_blink_jiffies to be skipped. Unconditionally initialize it. Reported-and-tested-by: Jonathan Liu Signed-off-by: Scot Doyle Acked-by: Pavel Machek Signed-off-by: Tomi Valkeinen drivers/video/console/fbcon.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 37b617f9be527b1f1181e3ff23df4cdbe3e6441f Author: Christian Engelmayer Date: Sat Jul 11 19:46:11 2015 +0200 video: Fix possible leak in of_get_videomode() In case videomode_from_timings() fails in function of_get_videomode(), the allocated display timing data is not freed in the exit path. Make sure that display_timings_release() is called in any case. Detected by Coverity CID 1309681. Signed-off-by: Christian Engelmayer Signed-off-by: Tomi Valkeinen drivers/video/of_videomode.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 3c16241c445303a90529565e7437e1f240acfef2 Author: Phil Sutter Date: Tue Jul 28 00:53:26 2015 +0200 netfilter: SYNPROXY: fix sending window update to client Upon receipt of SYNACK from the server, ipt_SYNPROXY first sends back an ACK to finish the server handshake, then calls nf_ct_seqadj_init() to initiate sequence number adjustment of forwarded packets to the client and finally sends a window update to the client to unblock it's TX queue. Since synproxy_send_client_ack() does not set synproxy_send_tcp()'s nfct parameter, no sequence number adjustment happens and the client receives the window update with incorrect sequence number. Depending on client TCP implementation, this leads to a significant delay (until a window probe is being sent). Signed-off-by: Phil Sutter Signed-off-by: Pablo Neira Ayuso net/ipv4/netfilter/ipt_SYNPROXY.c | 3 ++- net/ipv6/netfilter/ip6t_SYNPROXY.c | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) commit 96fffb4f23f124f297d51dedc9cf51d19eb88ee1 Author: Phil Sutter Date: Sun Aug 9 13:14:15 2015 +0200 netfilter: ip6t_SYNPROXY: fix NULL pointer dereference This happens when networking namespaces are enabled. Suggested-by: Patrick McHardy Signed-off-by: Phil Sutter Acked-by: Patrick McHardy Signed-off-by: Pablo Neira Ayuso net/ipv6/netfilter/ip6t_SYNPROXY.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) commit 2fa3dc4ea7c1cdf4eed288de9a6cc5d3a8befddd Author: Laurent Pinchart Date: Sun Jul 12 20:08:34 2015 -0300 [media] vb2: Fix compilation breakage when !CONFIG_BUG Commit 77a3c6fd90c9 ("[media] vb2: Don't WARN when v4l2_buffer.bytesused is 0 for multiplanar buffers") uses the __WARN() macro which isn't defined when CONFIG_BUG isn't set. This introduces a compilation breakage. Fix it by using WARN_ON() instead. The commit was also broken in that it merged v1 of the patch while a new v2 version had been submitted, reviewed and acked. Fix it by incorporating the changes from v1 to v2. Fixes: 77a3c6fd90c9 ("[media] vb2: Don't WARN when v4l2_buffer.bytesused is 0 for multiplanar buffers") Signed-off-by: Laurent Pinchart Acked-by: Larry Finger Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/videobuf2-core.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 9e6e35edb330619fbfa3457eff1d15d3672c833a Author: Robert Jarzmik Date: Mon Aug 3 22:15:34 2015 +0200 video: fbdev: pxa3xx_gcu: prepare the clocks The clocks need to be prepared before being enabled. Without it a warning appears in the drivers probe path : WARNING: CPU: 0 PID: 1 at drivers/clk/clk.c:707 clk_core_enable+0x84/0xa0() Modules linked in: CPU: 0 PID: 1 Comm: swapper Not tainted 4.2.0-rc3-cm-x300+ #804 Hardware name: CM-X300 module [] (unwind_backtrace) from [] (show_stack+0x10/0x14) [] (show_stack) from [] (warn_slowpath_common+0x7c/0xb4) [] (warn_slowpath_common) from [] (warn_slowpath_null+0x1c/0x24) [] (warn_slowpath_null) from [] (clk_core_enable+0x84/0xa0) [] (clk_core_enable) from [] (clk_enable+0x20/0x34) [] (clk_enable) from [] (pxa3xx_gcu_probe+0x148/0x338) [] (pxa3xx_gcu_probe) from [] (platform_drv_probe+0x30/0x94) Signed-off-by: Robert Jarzmik Signed-off-by: Tomi Valkeinen drivers/video/fbdev/pxa3xx-gcu.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6266f4b19d341c531d447d689fb44609daa06c79 Author: Jyri Sarha Date: Fri Aug 7 14:04:30 2015 +0300 OMAPDSS: Fix omap_dss_find_output_by_port_node() port refcount decrement Fix omap_dss_find_output_by_port_node() port parameter refcount decrementation. The only user of dss_of_port_get_parent_device() function is omap_dss_find_output_by_port_node() and it assumes the refcount of the port parameter is not decremented by the call. Signed-off-by: Jyri Sarha Signed-off-by: Tomi Valkeinen drivers/video/fbdev/omap2/dss/dss-of.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2b55cb3b04684f131a01faf2eb8e4d822d293f24 Author: Jyri Sarha Date: Fri Aug 7 14:04:29 2015 +0300 OMAPDSS: Fix node refcount leak in omapdss_of_get_next_port() Fix node refcount leak in omapdss_of_get_next_port(). Signed-off-by: Jyri Sarha Signed-off-by: Tomi Valkeinen drivers/video/fbdev/omap2/dss/dss-of.c | 2 ++ 1 file changed, 2 insertions(+) commit 2701fa0864ecb9e49d47a4aa1c02f172ab79639a Author: Linus Walleij Date: Tue Jul 28 15:31:12 2015 +0200 fbdev: select versatile helpers for the integrator Commit 11c32d7b6274cb0f554943d65bd4a126c4a86dcd "video: move Versatile CLCD helpers" missed the fact that the Integrator/CP is also using the helper, and as a result the platform got only stubs and no graphics. Add this as a default selection to Kconfig so we have graphics again. Fixes: 11c32d7b6274 (video: move Versatile CLCD helpers) Signed-off-by: Linus Walleij Signed-off-by: Tomi Valkeinen drivers/video/fbdev/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e15f940908e474da03349cb55a107fe89310a02c Author: Kees Cook Date: Fri Jul 24 16:35:59 2015 -0700 ntb: avoid format string in dev_set_name Avoid any chance of format string expansion when calling dev_set_name. Signed-off-by: Kees Cook Signed-off-by: Jon Mason drivers/ntb/ntb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 30a4bb1e5a9d7e283af6e29da09362104b67d7aa Author: Allen Hubbe Date: Mon Jul 13 08:07:14 2015 -0400 NTB: Fix dereference before check Remove early dereference of a pointer that is checked later in the code. Reported-by: Dan Carpenter Signed-off-by: Allen Hubbe Signed-off-by: Jon Mason drivers/ntb/ntb_transport.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 8c9edf63e75f036b42afb4502deb20bbfb5004b4 Author: Allen Hubbe Date: Mon Jul 13 08:07:13 2015 -0400 NTB: Fix zero size or integer overflow in ntb_set_mw A plain 32 bit integer will overflow for values over 4GiB. Change the plain integer size to the appropriate size type in ntb_set_mw. Change the type of the size parameter and two local variables used for size. Even if there is no overflow, a size of zero is invalid here. Reported-by: Juyoung Jung Signed-off-by: Allen Hubbe Signed-off-by: Jon Mason drivers/ntb/ntb_transport.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 8b5a22d8f18496f5921ccb92554a7051cbfd9b0c Author: Allen Hubbe Date: Mon Jul 13 08:07:12 2015 -0400 NTB: Schedule to receive on QP link up Schedule to receive on QP link up, to make sure that the doorbell is properly cleared for interrupts. Signed-off-by: Allen Hubbe Signed-off-by: Jon Mason drivers/ntb/ntb_transport.c | 2 ++ 1 file changed, 2 insertions(+) commit 260bee9451b4f0f5f9845c5b3024f0bfb8de8f22 Author: Dave Jiang Date: Mon Jul 13 08:07:11 2015 -0400 NTB: Fix oops in debugfs when transport is half-up When the remote side is not up, we do not have all the context for the transport, and that causes NULL ptr access. Have the debugfs reads check to see if transport is up before we make access. Signed-off-by: Dave Jiang Signed-off-by: Jon Mason drivers/ntb/ntb_transport.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit da4eb27a2c2efd034bdd645650114b82c479329c Author: Dave Jiang Date: Mon Jul 13 08:07:10 2015 -0400 NTB: ntb_netdev not covering all receive errors ntb_netdev is allowing the link to come up even when -ENOMEM is returned from ntb_transport_rx_enqueue. Fix to cover all possible errors. Signed-off-by: Dave Jiang Signed-off-by: Jon Mason drivers/net/ntb_netdev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c8650fd03d320e9c39f44435a583933cacea5259 Author: Dave Jiang Date: Mon Jul 13 08:07:09 2015 -0400 NTB: Fix transport stats for multiple devices Currently the debugfs does not have files for all NTB transport queue pairs. When there are multiple NTBs present in a system, the QP names of the last transport clobber the names of previously added transport QPs. Only the last added QPs can be observed via debugfs. Create a directory per NTB transport to associate the QPs with that transport. Name the directory the same as the PCI device. Signed-off-by: Dave Jiang Signed-off-by: Jon Mason drivers/ntb/ntb_transport.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit da2e5ae56164b86823c1bff5b4d28430ca4a7108 Author: Allen Hubbe Date: Mon Jul 13 08:07:08 2015 -0400 NTB: Fix ntb_transport out-of-order RX update It was possible for a synchronous update of the RX index in the error case to get ahead of the asynchronous RX index update in the normal case. Change the RX processing to preserve an RX completion order. There were two error cases. First, if a buffer is not present to receive data, there would be no queue entry to preserve the RX completion order. Instead of dropping the RX frame, leave the RX frame in the ring. Schedule RX processing when RX entries are enqueued, in case there are RX frames waiting in the ring to be received. Second, if a buffer is too small to receive data, drop the frame in the ring, mark the RX entry as done, and indicate the error in the RX entry length. Check for a negative length in the receive callback in ntb_netdev, and count occurrences as rx_length_errors. Signed-off-by: Allen Hubbe Signed-off-by: Jon Mason drivers/net/ntb_netdev.c | 7 ++ drivers/ntb/ntb_transport.c | 169 ++++++++++++++++++++++++++------------------ 2 files changed, 107 insertions(+), 69 deletions(-) commit f7644cbfcdf03528f0f450f3940c4985b2291f49 Author: Linus Torvalds Date: Sun Aug 9 15:54:30 2015 -0400 Linux 4.2-rc6 Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a230e95cc66a5a27e53459187ffcedb65b2782c3 Merge: 3fbdc37 6b30c73 Author: Linus Torvalds Date: Sun Aug 9 09:38:42 2015 +0200 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input Pull input subsystem fixes from Dmitry Torokhov: "Just small ALPS and Elan touchpads, and other driver fixups" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: Input: elantech - add special check for fw_version 0x470f01 touchpad Input: twl4030-vibra - fix ERROR: Bad of_node_put() warning Input: alps - only Dell laptops have separate button bits for v2 dualpoint sticks Input: axp20x-pek - add module alias Input: turbografx - fix potential out of bound access commit 3fbdc379567aef1c43b4be110179b541d68afdf6 Merge: af0b315 46011e6 Author: Linus Torvalds Date: Sun Aug 9 05:59:21 2015 +0300 Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus Pull MIPS fixes from Ralf Baechle: "Another round of MIPS fixes for 4.2. No area does particularly stand out but we have a two unpleasant ones: - Kernel ptes are marked with a global bit which allows the kernel to share kernel TLB entries between all processes. For this to work both entries of an adjacent even/odd pte pair need to have the global bit set. There has been a subtle race in setting the other entry's global bit since ~ 2000 but it take particularly pathological workloads that essentially do mostly vmalloc/vfree to trigger this. This pull request fixes the 64-bit case but leaves the case of 32 bit CPUs with 64 bit ptes unsolved for now. The unfixed cases affect hardware that is not available in the field yet. - Instruction emulation requires loading instructions from user space but the current fast but simplistic approach will fail on pages that are PROT_EXEC but !PROT_READ. For this reason we temporarily do not permit this permission and will map pages with PROT_EXEC | PROT_READ. The remainder of this pull request is more or less across the field and the short log explains them well" * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: MIPS: Make set_pte() SMP safe. MIPS: Replace add and sub instructions in relocate_kernel.S with addiu MIPS: Flush RPS on kernel entry with EVA Revert "MIPS: BCM63xx: Provide a plat_post_dma_flush hook" MIPS: BMIPS: Delete unused Kconfig symbol MIPS: Export get_c0_perfcount_int() MIPS: show_stack: Fix stack trace with EVA MIPS: do_mcheck: Fix kernel code dump with EVA MIPS: SMP: Don't increment irq_count multiple times for call function IPIs MIPS: Partially disable RIXI support. MIPS: Handle page faults of executable but unreadable pages correctly. MIPS: Malta: Don't reinitialise RTC MIPS: unaligned: Fix build error on big endian R6 kernels MIPS: Fix sched_getaffinity with MT FPAFF enabled MIPS: Fix build with CONFIG_OF=y for non OF-enabled targets CPUFREQ: Loongson2: Fix broken build due to incorrect include. commit af0b3152bbfebd3f8291fd61988c12ece4f60f57 Merge: bae1577 c05f942 Author: Linus Torvalds Date: Sun Aug 9 05:56:31 2015 +0300 Merge branch 'for-linus-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs Pull btrfs fix from Chris Mason: "We have a btrfs quota regression fix. I merged this one on Thursday and have run it through tests against current master. Normally I wouldn't have sent this while you were finalizing rc6, but I'm feeding mosquitoes in the adirondacks next week, so I wanted to get this one out before leaving. I'll leave longer tests running and check on things during the week, but I don't expect any problems" * 'for-linus-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: btrfs: qgroup: Fix a regression in qgroup reserved space. commit bae1577e3df471f6752e4b15380d6c67e8e17e8f Merge: dd2384a 8bf93f2 Author: Linus Torvalds Date: Sun Aug 9 05:54:27 2015 +0300 Merge branch 'for-rc' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux Pull thermal management fixes from Zhang Rui: "Specifics: - fix an error that "weight_attr" sysfs attribute is not removed while unbinding. From: Viresh Kumar. - fix power allocator governor tracing to return the real request. From Javi Merino. - remove redundant owner assignment of hisi platform thermal driver. From Krzysztof Kozlowski. - a couple of small fixes of Exynos thermal driver. From Krzysztof Kozlowski and Chanwoo Choi" * 'for-rc' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux: thermal: Drop owner assignment from platform_driver thermal: exynos: Remove unused code related to platform_data on probe() thermal: exynos: Add the dependency of CONFIG_THERMAL_OF instead of CONFIG_OF thermal: exynos: Disable the regulator on probe failure thermal: power_allocator: trace the real requested power thermal: remove dangling 'weight_attr' device file commit 54d46b7fbcbd00fe4b20a27208e5909facc714e3 Author: Geert Uytterhoeven Date: Thu Aug 6 17:32:06 2015 +0200 clockevents/drivers/sh_cmt: Only perform clocksource suspend/resume if enabled Currently the sh_cmt clocksource timer is disabled or enabled unconditionally on clocksource suspend resp. resume, even if a better clocksource is present (e.g. arch_sys_counter) and the sh_cmt clocksource is not enabled. As sh_cmt is a syscore device when its timer is enabled, this may lead to a genpd.prepared_count imbalance in the presence of PM Domains, which may cause a lock-up during reboot after s2ram. During suspend: - pm_genpd_prepare() is called for all non-syscore devices (incl. sh_cmt), increasing genpd.prepared_count for each device, - clocksource.suspend() is called for all clocksource devices, - sh_cmt_clocksource_suspend() calls sh_cmt_stop(), which is a no-op as the clocksource was not enabled. During resume: - clocksource.resume() is called for all clocksource devices, - sh_cmt_clocksource_resume() calls sh_cmt_start(), which enables the clocksource timer, and turns sh_cmt into a syscore device, - pm_genpd_complete() is called for all non-syscore devices (excl. sh_cmt now!), decreasing genpd.prepared_count for each device but sh_cmt. Now genpd.prepared_count of the PM Domain containing sh_cmt is still 1 instead of zero. On subsequent suspend/resume cycles, sh_cmt is still a syscore device, hence it's skipped for pm_genpd_{prepare,complete}(), keeping the imbalance of genpd.prepared_count at 1. During reboot: - platform_drv_shutdown() is called for any platform device that has a driver with a .shutdown() method (only rcar-dmac on R-Car Gen2), - platform_drv_shutdown() calls dev_pm_domain_detach(), which calls genpd_dev_pm_detach(), - genpd_dev_pm_detach() keeps calling pm_genpd_remove_device() until it doesn't return -EAGAIN[*], - If the device is part of the same PM Domain as sh_cmt, pm_genpd_remove_device() always fails with -EAGAIN due to genpd.prepared_count > 0. - Infinite loop in genpd_dev_pm_detach()[*]. [*] Commit 93af5e9354432828 ("PM / Domains: Avoid infinite loops in attach/detach code") already limited the number of loop iterations, avoiding the lock-up. To fix this, only disable or enable the clocksource timer on clocksource suspend resp. resume if the clocksource was enabled. This was tested on r8a7791/koelsch with the CPG Clock Domain: - using arch_sys_counter as the clocksource, which is the default, and which showed the problem, - using sh_cmt as a clocksource ("echo ffca0000.timer > \ /sys/devices/system/clocksource/clocksource0/current_clocksource"), which behaves the same as before. Signed-off-by: Geert Uytterhoeven Signed-off-by: Daniel Lezcano Acked-by: Laurent Pinchart Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1438875126-12596-2-git-send-email-daniel.lezcano@linaro.org Signed-off-by: Ingo Molnar drivers/clocksource/sh_cmt.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 4809146b86c3d41ce588fdb767d021e2a80600dd Author: Juergen Gross Date: Thu Aug 6 19:54:34 2015 +0200 x86/ldt: Correct FPU emulation access to LDT Commit 37868fe113ff ("x86/ldt: Make modify_ldt synchronous") introduced a new struct ldt_struct anchored at mm->context.ldt. Adapt the x86 fpu emulation code to use that new structure. Signed-off-by: Juergen Gross Reviewed-by: Andy Lutomirski Cc: # On top of: 37868fe113ff: x86/ldt: Make modify_ldt synchronous Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: billm@melbpc.org.au Link: http://lkml.kernel.org/r/1438883674-1240-1-git-send-email-jgross@suse.com Signed-off-by: Ingo Molnar arch/x86/math-emu/fpu_entry.c | 3 +-- arch/x86/math-emu/fpu_system.h | 21 ++++++++++++++++++--- arch/x86/math-emu/get_address.c | 3 +-- 3 files changed, 20 insertions(+), 7 deletions(-) commit 136d9d83c07c5e30ac49fc83b27e8c4842f108fc Author: Juergen Gross Date: Thu Aug 6 10:04:38 2015 +0200 x86/ldt: Correct LDT access in single stepping logic Commit 37868fe113ff ("x86/ldt: Make modify_ldt synchronous") introduced a new struct ldt_struct anchored at mm->context.ldt. convert_ip_to_linear() was changed to reflect this, but indexing into the ldt has to be changed as the pointer is no longer void *. Signed-off-by: Juergen Gross Reviewed-by: Andy Lutomirski Cc: # On top of: 37868fe113ff: x86/ldt: Make modify_ldt synchronous Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: bp@suse.de Link: http://lkml.kernel.org/r/1438848278-12906-1-git-send-email-jgross@suse.com Signed-off-by: Ingo Molnar arch/x86/kernel/step.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit dd2384a75d1c046faf068a6352732a204814b86d Merge: b3b98a5 1097163 Author: Linus Torvalds Date: Sat Aug 8 04:38:00 2015 +0300 Merge tag 'arc-v4.2-rc6-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc Pull ARC fixes from Vineet Gupta: "Here's a late pull request for accumulated ARC fixes which came out of extended testing of the new ARCv2 port with LTP etc. llock/scond livelock workaround has been reviewed by PeterZ. The changes look a lot but I've crafted them into finer grained patches for better tracking later. I have some more fixes (ARC Futex backend) ready to go but those will have to wait for tglx to return from vacation. Summary: - Enable a reduced config of HS38 (w/o div-rem, ll64...) - Add software workaround for LLOCK/SCOND livelock - Fallout of a recent pt_regs update" * tag 'arc-v4.2-rc6-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc: ARCv2: spinlock/rwlock/atomics: reduce 1 instruction in exponential backoff ARC: Make pt_regs regs unsigned ARCv2: spinlock/rwlock: Reset retry delay when starting a new spin-wait cycle ARCv2: spinlock/rwlock/atomics: Delayed retry of failed SCOND with exponential backoff ARC: LLOCK/SCOND based rwlock ARC: LLOCK/SCOND based spin_lock ARC: refactor atomic inline asm operands with symbolic names Revert "ARCv2: STAR 9000837815 workaround hardware exclusive transactions livelock" ARCv2: [axs103_smp] Reduce clk for Quad FPGA configs ARCv2: Fix the peripheral address space detection ARCv2: allow selection of page size for MMUv4 ARCv2: lib: memset: Don't assume 64-bit load/stores ARCv2: lib: memcpy: Missing PREFETCHW ARCv2: add knob for DIV_REV in Kconfig ARC/time: Migrate to new 'set-state' interface commit b3b98a551de18c7983e63ade9490fe52b9bbee6f Merge: 39171c8 df4198b Author: Linus Torvalds Date: Sat Aug 8 04:36:40 2015 +0300 Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost Pull virtio fix from Michael Tsirkin: "A last minute fix for the new virtio input driver. It seems pretty obvious, and the problem it's fixing would be quite hard to debug" * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost: virtio-input: reset device and detach unused during remove commit 39171c86f1c47320de51796d58eb7a5533135a4a Merge: f094301 aa0cd28 Author: Linus Torvalds Date: Sat Aug 8 04:35:14 2015 +0300 Merge tag 'dm-4.2-fixes-4' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm Pull device mapper fixes from Mike Snitzer: - stable fix for a dm_merge_bvec() regression on 32 bit Fedora systems. - fix for a 4.2 DM thinp discard regression due to inability to properly delete a range of blocks in a data mapping btree. * tag 'dm-4.2-fixes-4' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm: dm btree remove: fix bug in remove_one() dm: fix dm_merge_bvec regression on 32 bit systems commit f0943013068599fcbe29bf534f439ef2b6f09003 Merge: ea8dc1a 6ac7ada Author: Linus Torvalds Date: Sat Aug 8 04:33:35 2015 +0300 Merge tag 'sound-4.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound Pull sound fixes from Takashi Iwai: "The only bulk changes in this request is ABI updates for ASoC topology API. It's a new API that was introduced in 4.2, and we'd like to avoid ABI change after the release, so it's taken now. As there is no real in-tree user for this API, it should be fairly safe. Other than that, the usual small fixes are found in various drivers: ASoC cs4265, rt5645, intel-sst, firewire, oxygen and HD-audio" * tag 'sound-4.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: ASoC: topology: Add private data type and bump ABI version to 3 ASoC: topology: Add ops support to byte controls UAPI ASoC: topology: Update TLV support so we can support more TLV types ASoC: topology: add private data to manifest ASoC: topology: Add subsequence in topology ALSA: hda - one Dell machine needs the headphone white noise fixup ALSA: fireworks/firewire-lib: add support for recent firmware quirk Revert "ALSA: fireworks: add support for AudioFire2 quirk" ASoC: topology: fix typo in soc_tplg_kcontrol_bind_io() ALSA: HDA: Dont check return for snd_hdac_chip_readl ALSA: HDA: Fix stream assignment for host in decoupled mode ASoC: rt5645: Fix lost pin setting for DMIC1 ALSA: oxygen: Fix logical-not-parentheses warning ASoC: Intel: sst_byt: fix initialize 'NULL device *' issue ASoC: Intel: haswell: fix initialize 'NULL device *' issue ASoC: cs4265: Fix setting dai format for Left/Right Justified commit ea8dc1abeb09b401bdaea39cfb9850c80f8ef3ef Merge: d5a8ab4 de66b38 Author: Linus Torvalds Date: Sat Aug 8 04:30:37 2015 +0300 Merge tag 'hwmon-for-linus-v4.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging Pull hwmon fixes from Guenter Roeck: - Export module alias information in g762 and nct7904 to support auto-loading. - Blacklist Dell Studio XPS 8100 in dell-smm to fix fan control problems. * tag 'hwmon-for-linus-v4.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: hwmon: (g762) Export OF module alias information hwmon: (nct7904) Export I2C module alias information hwmon: (dell-smm) Blacklist Dell Studio XPS 8100 commit d5a8ab400bf15d673f1791e250f08699a4d9f8bd Merge: 9f21a8b 0a1b6f6 Author: Linus Torvalds Date: Sat Aug 8 04:27:51 2015 +0300 Merge tag 'usb-4.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb Pull USB fixes from Greg KH: "Here are some USB and PHY fixes for 4.2-rc6 that resolve some reported issues. All of these have been in the linux-next tree for a while, full details on the patches are in the shortlog below" * tag 'usb-4.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: ARM: dts: dra7: Add syscon-pllreset syscon to SATA PHY drivers/usb: Delete XHCI command timer if necessary xhci: fix off by one error in TRB DMA address boundary check usb: udc: core: add device_del() call to error pathway phy: ti-pipe3: i783 workaround for SATA lockup after dpll unlock/relock phy-sun4i-usb: Add missing EXPORT_SYMBOL_GPL for sun4i_usb_phy_set_squelch_detect USB: sierra: add 1199:68AB device ID usb: gadget: f_printer: actually limit the number of instances usb: gadget: f_hid: actually limit the number of instances usb: gadget: f_uac2: fix calculation of uac2->p_interval usb: gadget: bdc: fix a driver crash on disconnect usb: chipidea: ehci_init_driver is intended to call one time USB: qcserial: Add support for Dell Wireless 5809e 4G Modem USB: qcserial/option: make AT URCs work for Sierra Wireless MC7305/MC7355 commit 9f21a8bdaa0ec47730675ddac962c1415dd1451d Merge: 83c2768 fb1de5a Author: Linus Torvalds Date: Sat Aug 8 04:26:31 2015 +0300 Merge tag 'staging-4.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging Pull staging driver fixes from Greg KH: "Here are three bugfixes for some staging driver issues that have been reported. All have been in the linux-next tree for a while" * tag 'staging-4.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: staging: lustre: Include unaligned.h instead of access_ok.h staging: vt6655: vnt_bss_info_changed check conf->beacon_rate is not NULL staging: comedi: das1800: add missing break in switch commit 83c2768b73b830bbb2f145d81d4704a11b741024 Merge: 981dae7 eaf7e98 Author: Linus Torvalds Date: Sat Aug 8 04:25:10 2015 +0300 Merge tag 'char-misc-4.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc Pull char/misc fixes from Greg KH: "Here are some extcon fixes for 4.2-rc6 that resolve some reported problems. All have been in linux-next for a while" * tag 'char-misc-4.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: extcon: Fix extcon_cable_get_state() from getting old state after notification extcon: Fix hang and extcon_get/set_cable_state(). extcon: palmas: Fix NULL pointer error commit 981dae742bc67ccd078bab0affdfb5eb78fc5697 Merge: 49d7c65 209e4dbc Author: Linus Torvalds Date: Sat Aug 8 04:18:14 2015 +0300 Merge tag 'drm-intel-fixes-2015-08-07' of git://anongit.freedesktop.org/drm-intel Pull drm fixes from Daniel Vetter: "One i915 regression fix and a drm core one since Dave's not around, both introduced in 4.2 so not cc: stable. The fix for the warning Ted reported isn't in here yet since he didn't yet supply a tested-by and I can't repro this one myself (it's in fixup code that needs firmware doing something i915 wouldn't do)" * tag 'drm-intel-fixes-2015-08-07' of git://anongit.freedesktop.org/drm-intel: drm/vblank: Use u32 consistently for vblank counters drm/i915: Allow parsing of variable size child device entries from VBT commit b93028c9af807b9474789e6aba34a6135b6cb708 Author: Robert Jarzmik Date: Tue Aug 4 08:21:33 2015 +0200 clk: pxa: pxa3xx: fix CKEN register access Clocks 0 to 31 are on CKENA, and not CKENB. The clock register names were inadequately inverted. As a consequence, all clock operations were happening on CKENB, because almost all but 2 clocks are on CKENA. As the clocks were activated by the bootloader in the former tests, it escaped the testing that the wrong clock gate was manipulated. The error was revealed by changing the pxa3xx-nand driver to a module, where upon unloading, the wrong clock was disabled in CKENB. Fixes: 9bbb8a338fb2 ("clk: pxa: add pxa3xx clock driver") Signed-off-by: Robert Jarzmik Signed-off-by: Stephen Boyd drivers/clk/pxa/clk-pxa3xx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fe1e1876d8f6d8d4b45e3940e6dd43cd3b18d958 Author: Carol L Soto Date: Wed Aug 5 11:05:32 2015 -0500 net/mlx5_core: Set log_uar_page_sz for non 4K page size architecture failed to configure the page size for architectures with page size different than 4K. Fixes: 938fe83 ("net/mlx5_core: New device capabilities handling") Signed-off-by: Carol L Soto Acked-by: Amir Vadai Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/main.c | 2 ++ 1 file changed, 2 insertions(+) commit 95a428f3be450350773fff3a5aabfd4de1a59fc7 Merge: d1163e91 27a4d5e Author: David S. Miller Date: Fri Aug 7 15:51:10 2015 -0700 Merge tag 'batman-adv-fix-for-davem' of git://git.open-mesh.org/linux-merge Antonio Quartulli says: ==================== Included changes: - prevent DAT from replying on behalf of local clients and confuse L2 bridges - fix crash on double list removal of TT objects (tt_local_entry) - fix crash due to missing NULL checks - initialize bw values for new GWs objects to prevent memory leak ==================== Signed-off-by: David S. Miller commit 6b30c73e9f37183ad60c7f7050acf8e8edf91e9c Author: Duson Lin Date: Fri Aug 7 14:37:24 2015 -0700 Input: elantech - add special check for fw_version 0x470f01 touchpad It is no need to check the packet[0] for sanity check when doing elantech_packet_check_v4() function for fw_version = 0x470f01 touchpad. Signed-off by: Duson Lin Reviewed-by: Ulrik De Bie Signed-off-by: Dmitry Torokhov drivers/input/mouse/elantech.c | 22 ++++++++++++++++++++-- drivers/input/mouse/elantech.h | 1 + 2 files changed, 21 insertions(+), 2 deletions(-) commit e83dd3770021910293edea6fb2dc2fa306b1bf34 Author: Drew Richardson Date: Thu Aug 6 18:50:27 2015 +0100 ARM: 8409/1: Mark ret_fast_syscall as a function ret_fast_syscall runs when user space makes a syscall. However it needs to be marked as such so the ELF information is correct. Before it was: 101: 8000f300 0 NOTYPE LOCAL DEFAULT 2 ret_fast_syscall But with this change it correctly shows as: 101: 8000f300 96 FUNC LOCAL DEFAULT 2 ret_fast_syscall I see this function when using perf to unwind call stacks from kernel space to user space. Without this change I would need to add some special case logic when using the vmlinux ELF information. Signed-off-by: Drew Richardson Acked-by: Nicolas Pitre Signed-off-by: Russell King arch/arm/kernel/entry-common.S | 1 + 1 file changed, 1 insertion(+) commit 998ef5d81c74c752d74c7925bc370909b84adb9d Author: Gregory CLEMENT Date: Thu Aug 6 15:07:04 2015 +0100 ARM: 8408/1: Fix the secondary_startup function in Big Endian case Since the commit "b2c3e38a5471 ARM: redo TTBR setup code for LPAE", the setup code had been reworked. As a result the secondary CPUs failed to come online in Big Endian. As explained by Russell, the new code expected the value in r4/r5 to be the least significant 32bits in r4 and the most significant 32bits in r5. However, in the secondary code, we load this using ldrd, which on BE reverses that. This patch swap r4/r5 after the ldrd. It is done using the xor instructions in order to not use a temporary register. Signed-off-by: Gregory CLEMENT Signed-off-by: Russell King arch/arm/kernel/head.S | 3 +++ 1 file changed, 3 insertions(+) commit d1163e91ce1efab514468085924de3b7afa1b0ca Merge: 48900cb 649886a Author: David S. Miller Date: Fri Aug 7 11:53:06 2015 -0700 Merge branch 'be2net-fixes' Sathya Perla says: ==================== be2net: patch set This patch set contains 2 driver fixes to a Lancer HW issue and a fix to a double free bug. Pls apply to the "net" tree. Thanks! Patch 1 now enables filters only after creating RXQs. This is done as HW issues were observed on Lancer adapters if filters (flags, mac addrs etc) are enabled *before* creating RXQs. This patch changes the driver design by enabling filters in be_open() -- instead of be_setup() -- after RXQs are created and buffers posted. Patch 2 fixes an RX stall issue that was seen on Lancer adapters when RXQs are destroyed while they are in an "out of buffer" state. This patch fixes this issue by posting 64 buffers to each RXQ before destroying them in the close path. This is done after ensuring that no more new packets are selected for transfer to the RXQs by disabling interface filters. Patch 3 protects eqo->affinity_mask variable from being freed twice and resulting in a crash. It's now freed only when EQs haven't yet been destroyed. ==================== Signed-off-by: David S. Miller commit 649886a36b5f023811321819eceaa8ba66444e3b Author: Kalesh AP Date: Wed Aug 5 03:27:50 2015 -0400 be2net: protect eqo->affinity_mask from getting freed twice There are paths in the driver such as an unrecoverable error (UE) detection followed by a driver unload wherein be_clear() is invoked twice. Individual data structures are reset so that they are not cleaned/freed twice. This patch does the same for eqo->affinity_mask. It is freed only if EQs haven't yet been destroyed. This fixes a possible crash when affinity_mask is freed twice. Signed-off-by: Kalesh AP Signed-off-by: Sathya Perla Signed-off-by: David S. Miller drivers/net/ethernet/emulex/benet/be_main.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) commit 99b44304f205a826501721d41928e87b0b9cf3b3 Author: Kalesh AP Date: Wed Aug 5 03:27:49 2015 -0400 be2net: post buffers before destroying RXQs in Lancer An RX stall issue was seen on Lancer adapters, when RXQs are destroyed while they are in an "out of buffer" state. This patch fixes this issue by posting 64 buffers to each RXQ before destroying them in the close path. This is done after ensuring that no more new packets are selected for transfer to the RXQs by disabling interface filters. Signed-off-by: Kalesh AP Signed-off-by: Sathya Perla Signed-off-by: David S. Miller drivers/net/ethernet/emulex/benet/be_main.c | 42 ++++++++++++++++++++--------- 1 file changed, 30 insertions(+), 12 deletions(-) commit bcc84140a62c04f522eacceb793e6eef92965c84 Author: Kalesh AP Date: Wed Aug 5 03:27:48 2015 -0400 be2net: enable IFACE filters only after creating RXQs HW issues were observed on Lancer adapters if IFACE filters (flags, mac addrs etc) are enabled *before* creating RXQs. This patch changes the driver design by enabling filters in be_open() -- instead of be_setup() -- after RXQs are created and buffers posted. Two new wrapper functions, be_enable_if_filters() and be_disable_if_filters() are introduced to enable/disable IFACE filters in be_open()/be_close() respectively. In be_setup() the IFACE is now created only with the RSS flag. Signed-off-by: Kalesh AP Signed-off-by: Sathya Perla Signed-off-by: David S. Miller drivers/net/ethernet/emulex/benet/be_cmds.h | 5 ++ drivers/net/ethernet/emulex/benet/be_main.c | 127 ++++++++++++++++++---------- 2 files changed, 85 insertions(+), 47 deletions(-) commit aa0cd28d057fd4cb686fbdd2475a6a3f609dd581 Author: Joe Thornber Date: Fri Aug 7 16:33:01 2015 +0100 dm btree remove: fix bug in remove_one() remove_one() was not incrementing the key for the beginning of the range, so not all entries were being removed. This resulted in discards that were not unmapping all blocks. Fixes: 4ec331c3ea ("dm btree: add dm_btree_remove_leaves()") Signed-off-by: Joe Thornber Signed-off-by: Mike Snitzer drivers/md/persistent-data/dm-btree-remove.c | 1 + 1 file changed, 1 insertion(+) commit 209e4dbc8dcdb2b1839f18fd1cf07ec7bedadf4d Author: Daniel Vetter Date: Fri Aug 7 12:31:17 2015 +0200 drm/vblank: Use u32 consistently for vblank counters In commit 99264a61dfcda41d86d0960cf2d4c0fc2758a773 Author: Daniel Vetter Date: Wed Apr 15 19:34:43 2015 +0200 drm/vblank: Fixup and document timestamp update/read barriers I've switched vblank->count from atomic_t to unsigned long and accidentally created an integer comparison bug in drm_vblank_count_and_time since vblanke->count might overflow the u32 local copy and hence the retry loop never succeed. Fix this by consistently using u32. Cc: Michel Dänzer Reported-by: Michel Dänzer Reviewed-by: Thierry Reding Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_irq.c | 2 +- include/drm/drmP.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 6ac7ada210a8d23a56fbf18b6e1e00528844565c Merge: 73851b3 d00a9e0 Author: Takashi Iwai Date: Fri Aug 7 13:53:41 2015 +0200 Merge tag 'asoc-fix-v4.2-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus ASoC: Fixes for v4.2 There are a couple of small driver specific fixes here but the overwhelming bulk of these changes are fixes to the topology ABI that has been newly introduced in v4.2. Once this makes it into a release we will have to firm this up but for now getting enhancements in before they've made it into a release is the most expedient thing. commit d7add05458084a5e3d65925764a02ca9c8202c1e Author: Haozhong Zhang Date: Fri Aug 7 11:24:32 2015 +0800 KVM: x86: Use adjustment in guest cycles when handling MSR_IA32_TSC_ADJUST When kvm_set_msr_common() handles a guest's write to MSR_IA32_TSC_ADJUST, it will calcuate an adjustment based on the data written by guest and then use it to adjust TSC offset by calling a call-back adjust_tsc_offset(). The 3rd parameter of adjust_tsc_offset() indicates whether the adjustment is in host TSC cycles or in guest TSC cycles. If SVM TSC scaling is enabled, adjust_tsc_offset() [i.e. svm_adjust_tsc_offset()] will first scale the adjustment; otherwise, it will just use the unscaled one. As the MSR write here comes from the guest, the adjustment is in guest TSC cycles. However, the current kvm_set_msr_common() uses it as a value in host TSC cycles (by using true as the 3rd parameter of adjust_tsc_offset()), which can result in an incorrect adjustment of TSC offset if SVM TSC scaling is enabled. This patch fixes this problem. Signed-off-by: Haozhong Zhang Cc: stable@vger.linux.org Signed-off-by: Paolo Bonzini arch/x86/kvm/x86.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 18c3626e3d5dfa8b90e2dc6dbc30064c0e1c97ad Author: Paolo Bonzini Date: Fri Aug 7 12:27:54 2015 +0200 KVM: x86: zero IDT limit on entry to SMM The recent BlackHat 2015 presentation "The Memory Sinkhole" mentions that the IDT limit is zeroed on entry to SMM. This is not documented, and must have changed some time after 2010 (see http://www.ssi.gouv.fr/uploads/IMG/pdf/IT_Defense_2010_final.pdf). KVM was not doing it, but the fix is easy. Signed-off-by: Paolo Bonzini arch/x86/kvm/x86.c | 5 +++++ 1 file changed, 5 insertions(+) commit 10971638701dedadb58c88ce4d31c9375b224ed6 Author: Vineet Gupta Date: Fri Aug 7 13:01:39 2015 +0530 ARCv2: spinlock/rwlock/atomics: reduce 1 instruction in exponential backoff The increment of delay counter was 2 instructions: Arithmatic Shfit Left (ASL) + set to 1 on overflow This can be done in 1 using ROtate Left (ROL) Suggested-by: Nigel Topham Cc: Peter Zijlstra (Intel) Cc: linux-kernel@vger.kernel.org Signed-off-by: Vineet Gupta arch/arc/include/asm/atomic.h | 3 +-- arch/arc/include/asm/spinlock.h | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) commit 48900cb6af4282fa0fb6ff4d72a81aa3dadb5c39 Author: Jason Wang Date: Wed Aug 5 10:34:04 2015 +0800 virtio-net: drop NETIF_F_FRAGLIST virtio declares support for NETIF_F_FRAGLIST, but assumes that there are at most MAX_SKB_FRAGS + 2 fragments which isn't always true with a fraglist. A longer fraglist in the skb will make the call to skb_to_sgvec overflow the sg array, leading to memory corruption. Drop NETIF_F_FRAGLIST so we only get what we can handle. Cc: Michael S. Tsirkin Signed-off-by: Jason Wang Acked-by: Michael S. Tsirkin Signed-off-by: David S. Miller drivers/net/virtio_net.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 4f7eb70f7be1099236670f36b2f1f90a63e29699 Author: Mathieu Olivari Date: Tue Aug 4 17:25:02 2015 -0700 stmmac: dwmac-ipq806x: fix static checker warning The patch b1c17215d718: "stmmac: add ipq806x glue layer", leads to the following static checker warning: .../stmmac/dwmac-ipq806x.c:314 ipq806x_gmac_probe() warn: double left shift '1 << (1 << gmac->id)' The NSS_COMMON_CLK_SRC_CTRL_OFFSET macro is used once as an offset, and once as a mask, which is a bug indeed. We'll fix it by defining the offset as the real offset value and computing the mask from it when required. Tested on IPQ806x ref designs AP148 & DB149. Reported-by: Dan Carpenter Signed-off-by: Mathieu Olivari Signed-off-by: David S. Miller drivers/net/ethernet/stmicro/stmmac/dwmac-ipq806x.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 866b8b18e380f810ba96e21d25843b841271bb07 Author: WingMan Kwok Date: Tue Aug 4 16:56:53 2015 -0400 net: netcp: fix unused interface rx buffer size configuration Prior to this patch, rx buffer size for each rx queue of an interface is configurable through dts bindings. But for an interface, the first rx queue's rx buffer size is always the usual MTU size (plus usual overhead) and page size for the remaining rx queues (if they are enabled by specifying a non-zero rx queue depth dts binding of the corresponding interface). This patch removes the rx buffer size configuration capability. Signed-off-by: WingMan Kwok Acked-by: Murali Karicheri Signed-off-by: David S. Miller drivers/net/ethernet/ti/netcp.h | 1 - drivers/net/ethernet/ti/netcp_core.c | 35 +++++++++++++---------------------- 2 files changed, 13 insertions(+), 23 deletions(-) commit 22f54bf932a0eed73134b696b238db4bdcff5cd4 Author: Ian Campbell Date: Tue Aug 4 20:25:55 2015 +0100 net: thunderx: remove effective "default y" from Kconfig if ARCH_THUNDER=y As well as for kernels built only for ThunderX ARCH_THUNDERX is also enabled for kernels which support multiple platforms (such as distro kernels). Thus "default ARCH_THUNDER" is inappropriate. I believe default m is equally frowned upon, so remove the line completely rather than "default m if ARCH_THUNDER". Signed-off-by: Ian Campbell Cc: Sunil Goutham Cc: Robert Richter Cc: Derek Chickles Cc: Satanand Burla Cc: Felix Manlunas Cc: Raghu Vatsavayi Cc: Arnd Bergmann Cc: linux-arm-kernel@lists.infradead.org Cc: netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: David S. Miller drivers/net/ethernet/cavium/Kconfig | 3 --- 1 file changed, 3 deletions(-) commit 7ebc482202fd54e7cf718619e869f4320b8e3bb6 Author: Ivan Vecera Date: Tue Aug 4 22:11:43 2015 +0200 r8169: enforce RX_MULTI_EN on rtl8168ep/8111ep chips Enforcing this flag in RxConfig for the mentioned chips fixes netdev watchdog issues prepended with AMD IOMMU message(s) like: AMD-Vi: Event logged [IO_PAGE_FAULT device=01:00.0 domain=0x001d address=0x0000000000003000 flags=0x0050] Note that this flag is also set in Realtek's own driver for these chips. Signed-off-by: Ivan Vecera Tested-by: Alexander Lindqvist Acked-by: Francois Romieu Signed-off-by: David S. Miller drivers/net/ethernet/realtek/r8169.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 786c2077ec8e9eab37a88fc14aac4309a8061e18 Author: Nikolay Aleksandrov Date: Tue Aug 4 19:06:33 2015 +0200 bridge: netlink: account for the IFLA_BRPORT_PROXYARP_WIFI attribute size and policy The attribute size wasn't accounted for in the get_slave_size() callback (br_port_get_slave_size) when it was introduced, so fix it now. Also add a policy entry for it in br_port_policy. Signed-off-by: Nikolay Aleksandrov Fixes: 842a9ae08a25 ("bridge: Extend Proxy ARP design to allow optional rules for Wi-Fi") Signed-off-by: David S. Miller net/bridge/br_netlink.c | 2 ++ 1 file changed, 2 insertions(+) commit 355b9f9df1f0311f20087350aee8ad96eedca8a9 Author: Nikolay Aleksandrov Date: Tue Aug 4 19:06:32 2015 +0200 bridge: netlink: account for the IFLA_BRPORT_PROXYARP attribute size and policy The attribute size wasn't accounted for in the get_slave_size() callback (br_port_get_slave_size) when it was introduced, so fix it now. Also add a policy entry for it in br_port_policy. Signed-off-by: Nikolay Aleksandrov Fixes: 958501163ddd ("bridge: Add support for IEEE 802.11 Proxy ARP") Signed-off-by: David S. Miller net/bridge/br_netlink.c | 2 ++ 1 file changed, 2 insertions(+) commit 50e18af16f41ca3d91940b292cab4aa1d0363f6f Merge: 7ba8bd7 741e3b9 Author: David S. Miller Date: Thu Aug 6 23:53:34 2015 -0700 Merge tag 'wireless-drivers-for-davem-2015-08-04' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers Kalle Valo says: ==================== iwlwifi: * a fix for the stuck TFD queue mechanism - it was producing noisy false alarms * a fix for the NIC prepare flow that prevented the driver from being able to access the device on certain systems * a fix for the scan prority handling which allows the regular scan to run even if a scheduled scan is already running rsi: * fix firmware load DMA regression b43: * fix extpa_gain check for 2GHz rtlwifi: * fix NULL dereference when PCI driver used as an AP * add missing module parameter declaration for rtl8723be_mod_params.msi_support ==================== Signed-off-by: David S. Miller commit 7ba8bd75ddc6b041b5716dbb29e49df3e9cc2928 Author: Oleg Nesterov Date: Tue Aug 4 18:33:34 2015 +0200 net: pktgen: don't abuse current->state in pktgen_thread_worker() Commit 1fbe4b46caca "net: pktgen: kill the Wait for kthread_stop code in pktgen_thread_worker()" removed (in particular) the final __set_current_state(TASK_RUNNING) and I didn't notice the previous set_current_state(TASK_INTERRUPTIBLE). This triggers the warning in __might_sleep() after return. Afaics, we can simply remove both set_current_state()'s, and we could do this a long ago right after ef87979c273a2 "pktgen: better scheduler friendliness" which changed pktgen_thread_worker() to use wait_event_interruptible_timeout(). Reported-by: Huang Ying Signed-off-by: Oleg Nesterov Signed-off-by: David S. Miller net/core/pktgen.c | 3 --- 1 file changed, 3 deletions(-) commit 57b229063ae6dc65036209018dc7f4290cc026bb Author: Ross Lagerwall Date: Tue Aug 4 15:40:59 2015 +0100 xen/netback: Wake dealloc thread after completing zerocopy work Waking the dealloc thread before decrementing inflight_packets is racy because it means the thread may go to sleep before inflight_packets is decremented. If kthread_stop() has already been called, the dealloc thread may wait forever with nothing to wake it. Instead, wake the thread only after decrementing inflight_packets. Signed-off-by: Ross Lagerwall Signed-off-by: David S. Miller drivers/net/xen-netback/interface.c | 6 ++++++ drivers/net/xen-netback/netback.c | 1 - 2 files changed, 6 insertions(+), 1 deletion(-) commit a0a2a6602496a45ae838a96db8b8173794b5d398 Author: Herbert Xu Date: Tue Aug 4 15:42:47 2015 +0800 net: Fix skb_set_peeked use-after-free bug The commit 738ac1ebb96d02e0d23bc320302a6ea94c612dec ("net: Clone skb before setting peeked flag") introduced a use-after-free bug in skb_recv_datagram. This is because skb_set_peeked may create a new skb and free the existing one. As it stands the caller will continue to use the old freed skb. This patch fixes it by making skb_set_peeked return the new skb (or the old one if unchanged). Fixes: 738ac1ebb96d ("net: Clone skb before setting peeked flag") Reported-by: Brenden Blanco Signed-off-by: Herbert Xu Tested-by: Brenden Blanco Reviewed-by: Konstantin Khlebnikov Signed-off-by: David S. Miller net/core/datagram.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) commit 49d7c6559bf2ab4f1d56be131ab9571a51fc71bd Merge: 8664b90 4492215 Author: Linus Torvalds Date: Fri Aug 7 05:28:24 2015 +0300 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc Pull sparc fix from David Miller: "FPU register corruption bug fix" * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc: sparc64: Fix userspace FPU register corruptions. commit 8664b90baedb0f9aa6bea5bfbdfeae0d5883d28e Merge: a58997e a50fcb5 Author: Linus Torvalds Date: Fri Aug 7 05:20:40 2015 +0300 Merge branch 'akpm' (patches from Andrew) Merge fixes from Andrew Morton: "21 fixes" * emailed patches from Andrew Morton : (21 commits) writeback: fix initial dirty limit mm/memory-failure: set PageHWPoison before migrate_pages() mm: check __PG_HWPOISON separately from PAGE_FLAGS_CHECK_AT_* mm/memory-failure: give up error handling for non-tail-refcounted thp mm/memory-failure: fix race in counting num_poisoned_pages mm/memory-failure: unlock_page before put_page ipc: use private shmem or hugetlbfs inodes for shm segments. mm: initialize hotplugged pages as reserved ocfs2: fix shift left overflow kthread: export kthread functions fsnotify: fix oops in fsnotify_clear_marks_by_group_flags() lib/iommu-common.c: do not use 0xffffffffffffffffl for computing align_mask mm/slub: allow merging when SLAB_DEBUG_FREE is set signalfd: fix information leak in signalfd_copyinfo signal: fix information leak in copy_siginfo_to_user signal: fix information leak in copy_siginfo_from_user32 ocfs2: fix BUG in ocfs2_downconvert_thread_do_work() fs, file table: reinit files_stat.max_files after deferred memory initialisation mm, meminit: replace rwsem with completion mm, meminit: allow early_pfn_to_nid to be used during runtime ... commit 44922150d87cef616fd183220d43d8fde4d41390 Author: David S. Miller Date: Thu Aug 6 19:13:25 2015 -0700 sparc64: Fix userspace FPU register corruptions. If we have a series of events from userpsace, with %fprs=FPRS_FEF, like follows: ETRAP ETRAP VIS_ENTRY(fprs=0x4) VIS_EXIT RTRAP (kernel FPU restore with fpu_saved=0x4) RTRAP We will not restore the user registers that were clobbered by the FPU using kernel code in the inner-most trap. Traps allocate FPU save slots in the thread struct, and FPU using sequences save the "dirty" FPU registers only. This works at the initial trap level because all of the registers get recorded into the top-level FPU save area, and we'll return to userspace with the FPU disabled so that any FPU use by the user will take an FPU disabled trap wherein we'll load the registers back up properly. But this is not how trap returns from kernel to kernel operate. The simplest fix for this bug is to always save all FPU register state for anything other than the top-most FPU save area. Getting rid of the optimized inner-slot FPU saving code ends up making VISEntryHalf degenerate into plain VISEntry. Longer term we need to do something smarter to reinstate the partial save optimizations. Perhaps the fundament error is having trap entry and exit allocate FPU save slots and restore register state. Instead, the VISEntry et al. calls should be doing that work. This bug is about two decades old. Reported-by: James Y Knight Signed-off-by: David S. Miller arch/sparc/include/asm/visasm.h | 16 +++------- arch/sparc/lib/NG4memcpy.S | 5 ++- arch/sparc/lib/VISsave.S | 67 ++--------------------------------------- arch/sparc/lib/ksyms.c | 4 --- 4 files changed, 11 insertions(+), 81 deletions(-) commit 14d2b7c1a96ef37eb571599c73d4a1a606b964d6 Author: Lucas Stach Date: Mon Aug 3 17:50:11 2015 +0200 net: fec: fix initial runtime PM refcount The clocks are initially active and thus the device is marked active. This still keeps the PM refcount at 0, the pm_runtime_put_autosuspend() call at the end of probe then leaves us with an invalid refcount of -1, which in turn leads to the device staying in suspended state even though netdev open had been called. Fix this by initializing the refcount to be coherent with the initial device status. Fixes: 8fff755e9f8 (net: fec: Ensure clocks are enabled while using mdio bus) Signed-off-by: Lucas Stach Tested-by: Uwe Kleine-König Signed-off-by: David S. Miller drivers/net/ethernet/freescale/fec_main.c | 1 + 1 file changed, 1 insertion(+) commit a58997e1a6287068be2d923f5fde6102e7e08f56 Merge: ebc90be 595fd01 Author: Linus Torvalds Date: Fri Aug 7 04:51:14 2015 +0300 Merge branch 'drm-fixes-4.2' of git://people.freedesktop.org/~agd5f/linux Pull amdgpu fixes from Alex Deucher: "Just a few amdgpu fixes to make sure we report the proper firmware information and number of render buffers to userspace and a typo in a debugging function" [ Pulling directly from Alex since Dave Airlie is on vacation - Linus ] * 'drm-fixes-4.2' of git://people.freedesktop.org/~agd5f/linux: drm/amdgpu: set fw_version and feature_version for smu fw loading drm/amdgpu: add feature version for SDMA ucode drm/amdgpu: add feature version for RLC and MEC v2 drm/amdgpu: increment queue when iterating on this variable. drm/amdgpu: fix rb setting for CZ commit ebc90be6b9ccbdaccd93feaabef78b1c92870be2 Merge: 4469942 4a6ca1a Author: Linus Torvalds Date: Fri Aug 7 04:48:46 2015 +0300 Merge branch 'drm-tda998x-fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm Pull TDA998x i2c driver fixes from Russell King: "This fixes the double-checksumming of the AVI infoframe which was resulting in the checksum always being zero. It went unnoticed as none of my HDMI devices had a problem with this" [ Pulling directly from rmk since Dave Airlie is on vacation - Linus ] * 'drm-tda998x-fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm: drm/i2c: tda998x: fix bad checksum of the HDMI AVI infoframe commit a50fcb512d9539b5179b1e523641420339086995 Author: Rabin Vincent Date: Thu Aug 6 15:47:14 2015 -0700 writeback: fix initial dirty limit The initial value of global_wb_domain.dirty_limit set by writeback_set_ratelimit() is zeroed out by the memset in wb_domain_init(). Signed-off-by: Rabin Vincent Acked-by: Tejun Heo Cc: Jens Axboe Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/page-writeback.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 4491f7126063ef51081f5662bd4fcae31621a333 Author: Naoya Horiguchi Date: Thu Aug 6 15:47:11 2015 -0700 mm/memory-failure: set PageHWPoison before migrate_pages() Now page freeing code doesn't consider PageHWPoison as a bad page, so by setting it before completing the page containment, we can prevent the error page from being reused just after successful page migration. I added TTU_IGNORE_HWPOISON for try_to_unmap() to make sure that the page table entry is transformed into migration entry, not to hwpoison entry. Signed-off-by: Naoya Horiguchi Cc: Andi Kleen Cc: Dean Nelson Cc: Tony Luck Cc: "Kirill A. Shutemov" Cc: Hugh Dickins Cc: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memory-failure.c | 7 ++++--- mm/migrate.c | 3 ++- 2 files changed, 6 insertions(+), 4 deletions(-) commit f4c18e6f7b5bbb5b528b3334115806b0d76f50f9 Author: Naoya Horiguchi Date: Thu Aug 6 15:47:08 2015 -0700 mm: check __PG_HWPOISON separately from PAGE_FLAGS_CHECK_AT_* The race condition addressed in commit add05cecef80 ("mm: soft-offline: don't free target page in successful page migration") was not closed completely, because that can happen not only for soft-offline, but also for hard-offline. Consider that a slab page is about to be freed into buddy pool, and then an uncorrected memory error hits the page just after entering __free_one_page(), then VM_BUG_ON_PAGE(page->flags & PAGE_FLAGS_CHECK_AT_PREP) is triggered, despite the fact that it's not necessary because the data on the affected page is not consumed. To solve it, this patch drops __PG_HWPOISON from page flag checks at allocation/free time. I think it's justified because __PG_HWPOISON flags is defined to prevent the page from being reused, and setting it outside the page's alloc-free cycle is a designed behavior (not a bug.) For recent months, I was annoyed about BUG_ON when soft-offlined page remains on lru cache list for a while, which is avoided by calling put_page() instead of putback_lru_page() in page migration's success path. This means that this patch reverts a major change from commit add05cecef80 about the new refcounting rule of soft-offlined pages, so "reuse window" revives. This will be closed by a subsequent patch. Signed-off-by: Naoya Horiguchi Cc: Andi Kleen Cc: Dean Nelson Cc: Tony Luck Cc: "Kirill A. Shutemov" Cc: Hugh Dickins Cc: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/page-flags.h | 10 +++++++--- mm/huge_memory.c | 7 +------ mm/migrate.c | 5 ++++- mm/page_alloc.c | 4 ++++ 4 files changed, 16 insertions(+), 10 deletions(-) commit 98ed2b0052e68420f1bad6c81e3f2600d25023e7 Author: Naoya Horiguchi Date: Thu Aug 6 15:47:04 2015 -0700 mm/memory-failure: give up error handling for non-tail-refcounted thp "non anonymous thp" case is still racy with freeing thp, which causes panic due to put_page() for refcount-0 page. It seems that closing up this race might be hard (and/or not worth doing,) so let's give up the error handling for this case. Signed-off-by: Naoya Horiguchi Cc: Andi Kleen Cc: Dean Nelson Cc: Tony Luck Cc: "Kirill A. Shutemov" Cc: Hugh Dickins Cc: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memory-failure.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) commit a209ef09af0dc921311d0cc4a1d4f926321d91b8 Author: Naoya Horiguchi Date: Thu Aug 6 15:47:01 2015 -0700 mm/memory-failure: fix race in counting num_poisoned_pages When memory_failure() is called on a page which are just freed after page migration from soft offlining, the counter num_poisoned_pages is raised twi= ce. So let's fix it with using TestSetPageHWPoison. Signed-off-by: Naoya Horiguchi Cc: Andi Kleen Cc: Dean Nelson Cc: Tony Luck Cc: "Kirill A. Shutemov" Cc: Hugh Dickins Cc: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memory-failure.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a09233f3e1b77dbf50851660533e008056553a2a Author: Naoya Horiguchi Date: Thu Aug 6 15:46:58 2015 -0700 mm/memory-failure: unlock_page before put_page Recently I addressed a few of hwpoison race problems and the patches are merged on v4.2-rc1. It made progress, but unfortunately some problems still remain due to less coverage of my testing. So I'm trying to fix or avoid them in this series. One point I'm expecting to discuss is that patch 4/5 changes the page flag set to be checked on free time. In current behavior, __PG_HWPOISON is not supposed to be set when the page is freed. I think that there is no strong reason for this behavior, and it causes a problem hard to fix only in error handler side (because __PG_HWPOISON could be set at arbitrary timing.) So I suggest to change it. With this patchset, hwpoison stress testing in official mce-test testsuite (which previously failed) passes. This patch (of 5): In "just unpoisoned" path, we do put_page and then unlock_page, which is a wrong order and causes "freeing locked page" bug. So let's fix it. Signed-off-by: Naoya Horiguchi Cc: Andi Kleen Cc: Dean Nelson Cc: Tony Luck Cc: "Kirill A. Shutemov" Cc: Hugh Dickins Acked-by: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memory-failure.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e1832f2923ec92d0e590e496c8890675457f8568 Author: Stephen Smalley Date: Thu Aug 6 15:46:55 2015 -0700 ipc: use private shmem or hugetlbfs inodes for shm segments. The shm implementation internally uses shmem or hugetlbfs inodes for shm segments. As these inodes are never directly exposed to userspace and only accessed through the shm operations which are already hooked by security modules, mark the inodes with the S_PRIVATE flag so that inode security initialization and permission checking is skipped. This was motivated by the following lockdep warning: ====================================================== [ INFO: possible circular locking dependency detected ] 4.2.0-0.rc3.git0.1.fc24.x86_64+debug #1 Tainted: G W ------------------------------------------------------- httpd/1597 is trying to acquire lock: (&ids->rwsem){+++++.}, at: shm_close+0x34/0x130 but task is already holding lock: (&mm->mmap_sem){++++++}, at: SyS_shmdt+0x4b/0x180 which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #3 (&mm->mmap_sem){++++++}: lock_acquire+0xc7/0x270 __might_fault+0x7a/0xa0 filldir+0x9e/0x130 xfs_dir2_block_getdents.isra.12+0x198/0x1c0 [xfs] xfs_readdir+0x1b4/0x330 [xfs] xfs_file_readdir+0x2b/0x30 [xfs] iterate_dir+0x97/0x130 SyS_getdents+0x91/0x120 entry_SYSCALL_64_fastpath+0x12/0x76 -> #2 (&xfs_dir_ilock_class){++++.+}: lock_acquire+0xc7/0x270 down_read_nested+0x57/0xa0 xfs_ilock+0x167/0x350 [xfs] xfs_ilock_attr_map_shared+0x38/0x50 [xfs] xfs_attr_get+0xbd/0x190 [xfs] xfs_xattr_get+0x3d/0x70 [xfs] generic_getxattr+0x4f/0x70 inode_doinit_with_dentry+0x162/0x670 sb_finish_set_opts+0xd9/0x230 selinux_set_mnt_opts+0x35c/0x660 superblock_doinit+0x77/0xf0 delayed_superblock_init+0x10/0x20 iterate_supers+0xb3/0x110 selinux_complete_init+0x2f/0x40 security_load_policy+0x103/0x600 sel_write_load+0xc1/0x750 __vfs_write+0x37/0x100 vfs_write+0xa9/0x1a0 SyS_write+0x58/0xd0 entry_SYSCALL_64_fastpath+0x12/0x76 ... Signed-off-by: Stephen Smalley Reported-by: Morten Stevens Acked-by: Hugh Dickins Acked-by: Paul Moore Cc: Manfred Spraul Cc: Davidlohr Bueso Cc: Prarit Bhargava Cc: Eric Paris Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/hugetlbfs/inode.c | 2 ++ ipc/shm.c | 2 +- mm/shmem.c | 4 ++-- 3 files changed, 5 insertions(+), 3 deletions(-) commit e298ff75f133f2524bb6a9a305b17c5f6ff1a6b2 Author: Mel Gorman Date: Thu Aug 6 15:46:51 2015 -0700 mm: initialize hotplugged pages as reserved Commit 92923ca3aace ("mm: meminit: only set page reserved in the memblock region") broke memory hotplug which expects the memmap for newly added sections to be reserved until onlined by online_pages_range(). This patch marks hotplugged pages as reserved when adding new zones. Signed-off-by: Mel Gorman Reported-by: David Vrabel Tested-by: David Vrabel Cc: Nathan Zimmer Cc: Robin Holt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memory_hotplug.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit 32e5a2a2be6b085febaac36efff495ad65a55e6c Author: Joseph Qi Date: Thu Aug 6 15:46:48 2015 -0700 ocfs2: fix shift left overflow When using a large volume, for example 9T volume with 2T already used, frequent creation of small files with O_DIRECT when the IO is not cluster aligned may clear sectors in the wrong place. This will cause filesystem corruption. This is because p_cpos is a u32. When calculating the corresponding sector it should be converted to u64 first, otherwise it may overflow. Signed-off-by: Joseph Qi Cc: Mark Fasheh Cc: Joel Becker Cc: [4.0+] Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/aops.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 18896451eaeee497ef5c397d76902c6376a8787d Author: David Kershner Date: Thu Aug 6 15:46:45 2015 -0700 kthread: export kthread functions The s-Par visornic driver, currently in staging, processes a queue being serviced by the an s-Par service partition. We can get a message that something has happened with the Service Partition, when that happens, we must not access the channel until we get a message that the service partition is back again. The visornic driver has a thread for processing the channel, when we get the message, we need to be able to park the thread and then resume it when the problem clears. We can do this with kthread_park and unpark but they are not exported from the kernel, this patch exports the needed functions. Signed-off-by: David Kershner Acked-by: Ingo Molnar Acked-by: Neil Horman Acked-by: Thomas Gleixner Cc: Richard Weinberger Cc: Tejun Heo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds kernel/kthread.c | 4 ++++ 1 file changed, 4 insertions(+) commit 8f2f3eb59dff4ec538de55f2e0592fec85966aab Author: Jan Kara Date: Thu Aug 6 15:46:42 2015 -0700 fsnotify: fix oops in fsnotify_clear_marks_by_group_flags() fsnotify_clear_marks_by_group_flags() can race with fsnotify_destroy_marks() so that when fsnotify_destroy_mark_locked() drops mark_mutex, a mark from the list iterated by fsnotify_clear_marks_by_group_flags() can be freed and thus the next entry pointer we have cached may become stale and we dereference free memory. Fix the problem by first moving marks to free to a special private list and then always free the first entry in the special list. This method is safe even when entries from the list can disappear once we drop the lock. Signed-off-by: Jan Kara Reported-by: Ashish Sangwan Reviewed-by: Ashish Sangwan Cc: Lino Sanfilippo Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/notify/mark.c | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) commit 447f6a95a9c80da7faaec3e66e656eab8f262640 Author: Sowmini Varadhan Date: Thu Aug 6 15:46:39 2015 -0700 lib/iommu-common.c: do not use 0xffffffffffffffffl for computing align_mask Using a 64 bit constant generates "warning: integer constant is too large for 'long' type" on 32 bit platforms. Instead use ~0ul and BITS_PER_LONG. Detected by Andrew Morton on ARMD. Signed-off-by: Sowmini Varadhan Cc: Benjamin Herrenschmidt Cc: David S. Miller Cc: Guenter Roeck Cc: Rasmus Villemoes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/iommu-common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3e810ae2db76ccde770fd8e5a0de6408ea36e211 Author: Konstantin Khlebnikov Date: Thu Aug 6 15:46:36 2015 -0700 mm/slub: allow merging when SLAB_DEBUG_FREE is set This patch fixes creation of new kmem-caches after enabling sanity_checks for existing mergeable kmem-caches in runtime: before that patch creation fails because unique name in sysfs already taken by existing kmem-cache. Unlike other debug options this doesn't change object layout and could be enabled and disabled at any time. 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/slab_common.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 3ead7c52bdb0ab44f4bb1feed505a8323cc12ba7 Author: Amanieu d'Antras Date: Thu Aug 6 15:46:33 2015 -0700 signalfd: fix information leak in signalfd_copyinfo This function may copy the si_addr_lsb field to user mode when it hasn't been initialized, which can leak kernel stack data to user mode. Just checking the value of si_code is insufficient because the same si_code value is shared between multiple signals. This is solved by checking the value of si_signo in addition to si_code. Signed-off-by: Amanieu d'Antras Cc: Oleg Nesterov Cc: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/signalfd.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 26135022f85105ad725cda103fa069e29e83bd16 Author: Amanieu d'Antras Date: Thu Aug 6 15:46:29 2015 -0700 signal: fix information leak in copy_siginfo_to_user This function may copy the si_addr_lsb, si_lower and si_upper fields to user mode when they haven't been initialized, which can leak kernel stack data to user mode. Just checking the value of si_code is insufficient because the same si_code value is shared between multiple signals. This is solved by checking the value of si_signo in addition to si_code. Signed-off-by: Amanieu d'Antras Cc: Oleg Nesterov Cc: Ingo Molnar Cc: Russell King Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/arm64/kernel/signal32.c | 3 ++- kernel/signal.c | 9 ++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) commit 3c00cb5e68dc719f2fc73a33b1b230aadfcb1309 Author: Amanieu d'Antras Date: Thu Aug 6 15:46:26 2015 -0700 signal: fix information leak in copy_siginfo_from_user32 This function can leak kernel stack data when the user siginfo_t has a positive si_code value. The top 16 bits of si_code descibe which fields in the siginfo_t union are active, but they are treated inconsistently between copy_siginfo_from_user32, copy_siginfo_to_user32 and copy_siginfo_to_user. copy_siginfo_from_user32 is called from rt_sigqueueinfo and rt_tgsigqueueinfo in which the user has full control overthe top 16 bits of si_code. This fixes the following information leaks: x86: 8 bytes leaked when sending a signal from a 32-bit process to itself. This leak grows to 16 bytes if the process uses x32. (si_code = __SI_CHLD) x86: 100 bytes leaked when sending a signal from a 32-bit process to a 64-bit process. (si_code = -1) sparc: 4 bytes leaked when sending a signal from a 32-bit process to a 64-bit process. (si_code = any) parsic and s390 have similar bugs, but they are not vulnerable because rt_[tg]sigqueueinfo have checks that prevent sending a positive si_code to a different process. These bugs are also fixed for consistency. Signed-off-by: Amanieu d'Antras Cc: Oleg Nesterov Cc: Ingo Molnar Cc: Russell King Cc: Ralf Baechle Cc: Benjamin Herrenschmidt Cc: Chris Metcalf Cc: Paul Mackerras Cc: Michael Ellerman Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/arm64/kernel/signal32.c | 2 -- arch/mips/kernel/signal32.c | 2 -- arch/powerpc/kernel/signal_32.c | 2 -- arch/tile/kernel/compat_signal.c | 2 -- kernel/signal.c | 4 ++-- 5 files changed, 2 insertions(+), 10 deletions(-) commit 209f7512d007980fd111a74a064d70a3656079cf Author: Joseph Qi Date: Thu Aug 6 15:46:23 2015 -0700 ocfs2: fix BUG in ocfs2_downconvert_thread_do_work() The "BUG_ON(list_empty(&osb->blocked_lock_list))" in ocfs2_downconvert_thread_do_work can be triggered in the following case: ocfs2dc has firstly saved osb->blocked_lock_count to local varibale processed, and then processes the dentry lockres. During the dentry put, it calls iput and then deletes rw, inode and open lockres from blocked list in ocfs2_mark_lockres_freeing. And this causes the variable `processed' to not reflect the number of blocked lockres to be processed, which triggers the BUG. Signed-off-by: Joseph Qi Cc: Mark Fasheh Cc: Joel Becker Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/dlmglue.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit 4248b0da460839e30eaaad78992b9a1dd3e63e21 Author: Mel Gorman Date: Thu Aug 6 15:46:20 2015 -0700 fs, file table: reinit files_stat.max_files after deferred memory initialisation Dave Hansen reported the following; My laptop has been behaving strangely with 4.2-rc2. Once I log in to my X session, I start getting all kinds of strange errors from applications and see this in my dmesg: VFS: file-max limit 8192 reached The problem is that the file-max is calculated before memory is fully initialised and miscalculates how much memory the kernel is using. This patch recalculates file-max after deferred memory initialisation. Note that using memory hotplug infrastructure would not have avoided this problem as the value is not recalculated after memory hot-add. 4.1: files_stat.max_files = 6582781 4.2-rc2: files_stat.max_files = 8192 4.2-rc2 patched: files_stat.max_files = 6562467 Small differences with the patch applied and 4.1 but not enough to matter. Signed-off-by: Mel Gorman Reported-by: Dave Hansen Cc: Nicolai Stange Cc: Dave Hansen Cc: Alex Ng Cc: Fengguang Wu Cc: Peter Zijlstra (Intel) Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/dcache.c | 13 +++---------- fs/file_table.c | 24 +++++++++++++++--------- include/linux/fs.h | 5 +++-- init/main.c | 2 +- mm/page_alloc.c | 3 +++ 5 files changed, 25 insertions(+), 22 deletions(-) commit d3cd131d935ab3bab700491edbbd7cad4040ce50 Author: Nicolai Stange Date: Thu Aug 6 15:46:16 2015 -0700 mm, meminit: replace rwsem with completion Commit 0e1cc95b4cc7 ("mm: meminit: finish initialisation of struct pages before basic setup") introduced a rwsem to signal completion of the initialization workers. Lockdep complains about possible recursive locking: ============================================= [ INFO: possible recursive locking detected ] 4.1.0-12802-g1dc51b8 #3 Not tainted --------------------------------------------- swapper/0/1 is trying to acquire lock: (pgdat_init_rwsem){++++.+}, at: [] page_alloc_init_late+0xc7/0xe6 but task is already holding lock: (pgdat_init_rwsem){++++.+}, at: [] page_alloc_init_late+0x3e/0xe6 Replace the rwsem by a completion together with an atomic "outstanding work counter". [peterz@infradead.org: Barrier removal on the grounds of being pointless] [mgorman@suse.de: Applied review feedback] Signed-off-by: Nicolai Stange Signed-off-by: Mel Gorman Acked-by: Peter Zijlstra (Intel) Cc: Dave Hansen Cc: Alex Ng Cc: Fengguang Wu Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/page_alloc.c | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) commit 7ace99170789bc53cbb7e9e352d7a3851208fbcf Author: Mel Gorman Date: Thu Aug 6 15:46:13 2015 -0700 mm, meminit: allow early_pfn_to_nid to be used during runtime early_pfn_to_nid() historically was inherently not SMP safe but only used during boot which is inherently single threaded or during hotplug which is protected by a giant mutex. With deferred memory initialisation there was a thread-safe version introduced and the early_pfn_to_nid would trigger a BUG_ON if used unsafely. Memory hotplug hit that check. This patch makes early_pfn_to_nid introduces a lock to make it safe to use during hotplug. Signed-off-by: Mel Gorman Reported-by: Alex Ng Tested-by: Alex Ng Acked-by: Peter Zijlstra (Intel) Cc: Nicolai Stange Cc: Dave Hansen Cc: Fengguang Wu Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/page_alloc.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit de54b9ac253787c366bbfb28d901a31954eb3511 Author: Marcus Gelderie Date: Thu Aug 6 15:46:10 2015 -0700 ipc: modify message queue accounting to not take kernel data structures into account A while back, the message queue implementation in the kernel was improved to use btrees to speed up retrieval of messages, in commit d6629859b36d ("ipc/mqueue: improve performance of send/recv"). That patch introducing the improved kernel handling of message queues (using btrees) has, as a by-product, changed the meaning of the QSIZE field in the pseudo-file created for the queue. Before, this field reflected the size of the user-data in the queue. Since, it also takes kernel data structures into account. For example, if 13 bytes of user data are in the queue, on my machine the file reports a size of 61 bytes. There was some discussion on this topic before (for example https://lkml.org/lkml/2014/10/1/115). Commenting on a th lkml, Michael Kerrisk gave the following background (https://lkml.org/lkml/2015/6/16/74): The pseudofiles in the mqueue filesystem (usually mounted at /dev/mqueue) expose fields with metadata describing a message queue. One of these fields, QSIZE, as originally implemented, showed the total number of bytes of user data in all messages in the message queue, and this feature was documented from the beginning in the mq_overview(7) page. In 3.5, some other (useful) work happened to break the user-space API in a couple of places, including the value exposed via QSIZE, which now includes a measure of kernel overhead bytes for the queue, a figure that renders QSIZE useless for its original purpose, since there's no way to deduce the number of overhead bytes consumed by the implementation. (The other user-space breakage was subsequently fixed.) This patch removes the accounting of kernel data structures in the queue. Reporting the size of these data-structures in the QSIZE field was a breaking change (see Michael's comment above). Without the QSIZE field reporting the total size of user-data in the queue, there is no way to deduce this number. It should be noted that the resource limit RLIMIT_MSGQUEUE is counted against the worst-case size of the queue (in both the old and the new implementation). Therefore, the kernel overhead accounting in QSIZE is not necessary to help the user understand the limitations RLIMIT imposes on the processes. Signed-off-by: Marcus Gelderie Acked-by: Doug Ledford Acked-by: Michael Kerrisk Acked-by: Davidlohr Bueso Cc: David Howells Cc: Alexander Viro Cc: John Duffy Cc: Arto Bendiken Cc: Manfred Spraul Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ipc/mqueue.c | 5 ----- 1 file changed, 5 deletions(-) commit c05f9429e12da7c7de2649ef8c8c16bf8c12061f Author: Qu Wenruo Date: Mon Aug 3 14:44:29 2015 +0800 btrfs: qgroup: Fix a regression in qgroup reserved space. During the change to new btrfs extent-oriented qgroup implement, due to it doesn't use the old __qgroup_excl_accounting() for exclusive extent, it didn't free the reserved bytes. The bug will cause limit function go crazy as the reserved space is never freed, increasing limit will have no effect and still cause EQOUT. The fix is easy, just free reserved bytes for newly created exclusive extent as what it does before. Reported-by: Tsutomu Itoh Signed-off-by: Yang Dongsheng Signed-off-by: Qu Wenruo Signed-off-by: Chris Mason fs/btrfs/qgroup.c | 5 +++++ 1 file changed, 5 insertions(+) commit f9114d357858c1429dcde022706db7443918f49f Author: Axel Lin Date: Thu Aug 6 12:28:18 2015 +0800 ata: ahci_brcmstb: Fix misuse of IS_ENABLED While IS_ENABLED() is perfectly fine for CONFIG_* symbols, it is not for other symbols such as __BIG_ENDIAN that is provided directly by the compiler. Switch to use CONFIG_CPU_BIG_ENDIAN instead of __BIG_ENDIAN. Signed-off-by: Axel Lin Acked-by: Florian Fainelli Signed-off-by: Tejun Heo Cc: stable@vger.kernel.org drivers/ata/ahci_brcmstb.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit bb44e154e25125bef31fa956785e90fccd24610b Author: Tomer Barletz Date: Mon Aug 3 12:18:13 2015 -0700 sata_sx4: Check return code from pdc20621_i2c_read() The variable spd0 might be used uninitialized when pdc20621_i2c_read() fails. This also generates a compilation warning with gcc 5.1. tj: use pr_err() Signed-off-by: Tomer Barletz Signed-off-by: Tejun Heo drivers/ata/sata_sx4.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) commit 047fe6e6db9161e69271f56daaafdaf2add023b1 Author: David Weinehall Date: Tue Aug 4 16:55:52 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 managable. This fixes a regression introduced in commit 90e4f1592bb6e82f6690f0e05a8aadcf04d7bce7 Author: Ville Syrjälä Date: Wed Mar 25 18:45:58 2015 +0200 drm/i915: Fix the VBT child device parsing for BSW since we're hitting a DRM_ERROR on older platforms with this. v2: Stricter size checks Signed-off-by: David Weinehall [danvet: Fixup format string.] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_bios.c | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) commit cb92205bad2e4dd630b884142dd707b72504c200 Author: Jakub Pawlowski Date: Wed Aug 5 23:16:29 2015 +0200 Bluetooth: fix MGMT_EV_NEW_LONG_TERM_KEY event This patch fixes how MGMT_EV_NEW_LONG_TERM_KEY event is build. Right now val vield is filled with only 1 byte, instead of whole value. This bug was introduced in commit 1fc62c526a57 ("Bluetooth: Fix exposing full value of shortened LTKs") Before that patch, if you paired with device using bluetoothd using simple pairing, and then restarted bluetoothd, you would be able to re-connect, but device would fail to establish encryption and would terminate connection. After this patch connecting after bluetoothd restart works fine. Signed-off-by: Jakub Pawlowski Signed-off-by: Marcel Holtmann net/bluetooth/mgmt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d00a9e02178401433fc386e69c936f2039f07b57 Merge: 78be55a bffc449 45f503d c7bcf87 Author: Mark Brown Date: Thu Aug 6 12:39:07 2015 +0100 Merge remote-tracking branches 'asoc/fix/cs4265', 'asoc/fix/intel' and 'asoc/fix/topology' into asoc-linus commit 78be55af0d6092dd7ec19c0c7b2f381383af1a95 Merge: 74d3329 a094935 Author: Mark Brown Date: Thu Aug 6 12:39:07 2015 +0100 Merge remote-tracking branch 'asoc/fix/rt5645' into asoc-linus commit c7bcf8777a539e64dafc7417c00047aee6eb8909 Author: Liam Girdwood Date: Wed Aug 5 14:41:15 2015 +0100 ASoC: topology: Add private data type and bump ABI version to 3 Add ID for standalone private data object types and bump ABI version to 3 in order to userpsace features. Signed-off-by: Liam Girdwood Signed-off-by: Mark Brown include/uapi/sound/asoc.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit cb88498b36ab01cbe3a0d95cd097e4afdff4c6fd Author: Mengdong Lin Date: Wed Aug 5 14:41:14 2015 +0100 ASoC: topology: Add ops support to byte controls UAPI Add UAPI support for setting byte control ops. Rename the ops structure to be more generic so it can be sued by other objects too. Signed-off-by: Mengdong Lin Signed-off-by: Liam Girdwood Signed-off-by: Mark Brown include/uapi/sound/asoc.h | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 28a87eebcad40101b1b273cbd4f2a02c104f9367 Author: Mengdong Lin Date: Wed Aug 5 14:41:13 2015 +0100 ASoC: topology: Update TLV support so we can support more TLV types Currently the TLV topology structure is targeted at only supporting the DB scale data. This patch extends support for the other TLV types so they can be easily added at a later stage. TLV structure is moved to common topology control header since it's a common field for controls and can be processed in a general way. Users must set a proper access flag for a control since it's used to decide if the TLV field is valid and if a TLV callback is needed. Removed the following fields from topology TLV struct: - size/count: type can decide the size. - numid: not needed to initialize TLV for kcontrol. - data: replaced by the type specific struct. Added TLV structure to generic control header and removed TLV structure from mixer control. Signed-off-by: Mengdong Lin Signed-off-by: Liam Girdwood Signed-off-by: Mark Brown include/uapi/sound/asoc.h | 19 +++++++++++----- sound/soc/soc-topology.c | 58 +++++++++++++++++++++++++++++++++-------------- 2 files changed, 54 insertions(+), 23 deletions(-) commit 113adf21cf1ed49b57098c1d0d6b38ffbe9ea1e6 Merge: c387995 996034b Author: Mark Brown Date: Thu Aug 6 12:34:41 2015 +0100 Merge tag 'asoc-fix-v4.2-rc3' into asoc-fix-topology ASoC: Fixes for v4.2 A lot of small fixes here, a few to the core: - Fix for binding DAPM stream widgets on devices with prefixes assigned to them - Minor fixes for the newly added topology interfaces - Locking and memory leak fixes for DAPM - Driver specific fixes commit c3879956957b8de9fd6cbad604e668fd00c6506c Author: Vinod Koul Date: Mon Jun 29 17:36:46 2015 +0100 ASoC: topology: add private data to manifest The topology file manifest should include a private data field. This allows vendors to specify vendor data in the manifest, like timestamps, hashes, additional information for removing platform configuration out of drivers and making these configurable per platform Signed-off-by: Vinod Koul Signed-off-by: Mark Brown include/uapi/sound/asoc.h | 1 + 1 file changed, 1 insertion(+) commit 6dc6db790a67d28e46abefc44ca1a3bd438b2920 Author: Subhransu S. Prusty Date: Mon Jun 29 17:36:44 2015 +0100 ASoC: topology: Add subsequence in topology Some widgets may need sorting within, So add this support in topology. Signed-off-by: Subhransu S. Prusty Signed-off-by: Mark Brown include/uapi/sound/asoc.h | 1 + sound/soc/soc-topology.c | 1 + 2 files changed, 2 insertions(+) commit 1a9fa190956f45c1e58c4d8bfa5ac051691ea590 Author: Lucas Stach Date: Wed Aug 5 18:54:37 2015 +0200 ARM: imx6: correct i.MX6 PCIe interrupt routing The PCIe interrupts are also routed through the GPC. This has been missed from the conversion to stacked IRQ domains as the PCIe controller uses an explicit interrupt map and thus doesn't inherit the SoC global interrupt parent. Signed-off-by: Lucas Stach Cc: # 4.1 Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6qdl.dtsi | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit bf64dd262eaaece2ff560e86fabf94c6725f3b5c Author: Linus Walleij Date: Mon Aug 3 09:26:41 2015 +0200 ARM: ux500: add an SMP enablement type and move cpu nodes The "cpus" node cannot be inside the "soc" node, while this works for the CoreSight blocks, the early boot code will look for "cpus" directly under the root node, so this is a hard convention. So move the CPU nodes. Augment the "reg" property to match what is actually in the hardware: 0x300 and 0x301 respectively. Then add an SMP enablement type to be used by the SMP init code, "ste,dbx500-smp". Signed-off-by: Linus Walleij Signed-off-by: Olof Johansson Documentation/devicetree/bindings/arm/cpus.txt | 1 + arch/arm/boot/dts/ste-dbx5x0.dtsi | 53 +++++++++++++------------- 2 files changed, 28 insertions(+), 26 deletions(-) commit df4198b1e0c4a7d1adde1e5c2ceb67ac10b391bb Author: Jason Wang Date: Thu Aug 6 13:54:21 2015 +0800 virtio-input: reset device and detach unused during remove Spec requires a device reset during cleanup, so do it and avoid warn in virtio core. And detach unused buffers to avoid memory leak. Signed-off-by: Jason Wang Signed-off-by: Michael S. Tsirkin drivers/virtio/virtio_input.c | 4 ++++ 1 file changed, 4 insertions(+) commit 595fd013f795daeed0c7ddda02d8e0c51d8ce76c Author: Jammy Zhou Date: Tue Aug 4 11:44:19 2015 +0800 drm/amdgpu: set fw_version and feature_version for smu fw loading The fw_version and feature_verion should be set correctly when the firmwares are loaded by SMU on Tonga/Carrzio/Iceland Signed-off-by: Jammy Zhou Reviewed-by: Christian König drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 37 ++++++++++++++++++++-------------- drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c | 7 ++++--- drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 7 ++++--- 3 files changed, 30 insertions(+), 21 deletions(-) commit cfa2104fbcb87ab0abbdaba608087df1e24fe195 Author: Jammy Zhou Date: Tue Aug 4 10:50:47 2015 +0800 drm/amdgpu: add feature version for SDMA ucode Signed-off-by: Jammy Zhou Reviewed-by: Christian König drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 + drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 2 +- drivers/gpu/drm/amd/amdgpu/cik_sdma.c | 1 + drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c | 1 + drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 1 + 5 files changed, 5 insertions(+), 1 deletion(-) commit 351643d7dd8a48b1053aac5fe3a1aebac614c301 Author: Jammy Zhou Date: Tue Aug 4 10:43:50 2015 +0800 drm/amdgpu: add feature version for RLC and MEC v2 Expose feature version to user space for RLC/MEC/MEC2 ucode as well v2: fix coding style Signed-off-by: Jammy Zhou Reviewed-by: Christian König drivers/gpu/drm/amd/amdgpu/amdgpu.h | 3 +++ drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 11 ++++++----- drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 6 ++++++ drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 6 ++++++ 4 files changed, 21 insertions(+), 5 deletions(-) commit 0fd64291031d3587753b8adc53123b277855c777 Author: Nicolas Iooss Date: Sat Aug 1 21:55:38 2015 +0800 drm/amdgpu: increment queue when iterating on this variable. gfx_v7_0_print_status contains a for loop on variable queue which does not update this variable between each iteration. This is bug is reported by clang while building allmodconfig LLVMLinux on x86_64: drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c:5126:19: error: variable 'queue' used in loop condition not modified in loop body [-Werror,-Wloop-analysis] for (queue = 0; queue < 8; i++) { ^~~~~ Fix this by incrementing variable queue instead of i in this loop. Signed-off-by: Nicolas Iooss Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a0e2f50bdb588d91a553f2f6bd56be7bedc94b1a Author: Alex Deucher Date: Wed Jul 8 22:23:38 2015 -0400 drm/amdgpu: fix rb setting for CZ Always set num_rbs to 2 for CZ. The 1 RB parts are often harvest configs. The will get sorted out in mesa when we program PA_SC_RASTER_CONFIG[_1]. Acked-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit e661d0a04462dd98667f8947141bd8defab5b34a Author: Marek Belisko Date: Wed Jul 29 14:02:19 2015 -0700 Input: twl4030-vibra - fix ERROR: Bad of_node_put() warning Fix following: [ 8.862274] ERROR: Bad of_node_put() on /ocp/i2c@48070000/twl@48/audio [ 8.869293] CPU: 0 PID: 1003 Comm: modprobe Not tainted 4.2.0-rc2-letux+ #1175 [ 8.876922] Hardware name: Generic OMAP36xx (Flattened Device Tree) [ 8.883514] [] (unwind_backtrace) from [] (show_stack+0x10/0x14) [ 8.891693] [] (show_stack) from [] (dump_stack+0x78/0x94) [ 8.899322] [] (dump_stack) from [] (kobject_release+0x68/0x7c) [ 8.907409] [] (kobject_release) from [] (twl4030_vibra_probe+0x74/0x188 [twl4030_vibra]) [ 8.917877] [] (twl4030_vibra_probe [twl4030_vibra]) from [] (platform_drv_probe+0x48/0x90) [ 8.928497] [] (platform_drv_probe) from [] (really_probe+0xd4/0x238) [ 8.937103] [] (really_probe) from [] (driver_probe_device+0x30/0x48) [ 8.945678] [] (driver_probe_device) from [] (__driver_attach+0x68/0x8c) [ 8.954589] [] (__driver_attach) from [] (bus_for_each_dev+0x50/0x84) [ 8.963226] [] (bus_for_each_dev) from [] (bus_add_driver+0xcc/0x1e4) [ 8.971832] [] (bus_add_driver) from [] (driver_register+0x9c/0xe0) [ 8.980255] [] (driver_register) from [] (do_one_initcall+0x100/0x1b8) [ 8.988983] [] (do_one_initcall) from [] (do_init_module+0x58/0x1c0) [ 8.997497] [] (do_init_module) from [] (SyS_init_module+0x54/0x64) [ 9.005950] [] (SyS_init_module) from [] (ret_fast_syscall+0x0/0x54) [ 9.015838] input: twl4030:vibrator as /devices/platform/68000000.ocp/48070000.i2c/i2c-0/0-0048/48070000.i2c:twl@48:audio/input/input2 node passed to of_find_node_by_name is put inside that function and new node is returned if found. Free returned node not already freed node. Signed-off-by: Marek Belisko Signed-off-by: Dmitry Torokhov drivers/input/misc/twl4030-vibra.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 0a1b6f63198f6e51d12c8d8c4ed4e7d759b3b73d Merge: ffe5adc 257d5d9 Author: Greg Kroah-Hartman Date: Wed Aug 5 10:12:23 2015 -0700 Merge tag 'phy-for-4.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/kishon/linux-phy into usb-linus Kishon writes: phy: for 4.2-rc6 *) Fix compiler error when sun4i usb phy driver is built as module *) Fix SATA Lockup issue in dra7 SoC Signed-off-by: Kishon Vijay Abraham I commit 4469942bbbe5ebf845e04971d8c74e9b6178f9fa Merge: 4e6b6ee fc1a812 Author: Linus Torvalds Date: Wed Aug 5 18:50:38 2015 +0300 Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm Pull KVM fixes from Paolo Bonzini: "Just two very small & simple patches" * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: KVM: MTRR: Use default type for non-MTRR-covered gfn before WARN_ON KVM: s390: Fix hang VCPU hang/loop regression commit de66b380977eb9daa925aeb21756a9b00f700e45 Author: Javier Martinez Canillas Date: Thu Jul 30 18:18:43 2015 +0200 hwmon: (g762) Export OF module alias information The I2C core always reports the MODALIAS uevent as "i2c: Signed-off-by: Guenter Roeck drivers/hwmon/g762.c | 1 + 1 file changed, 1 insertion(+) commit 1252be9ce0ab4f622b8692b648894d09c0df71ce Author: Javier Martinez Canillas Date: Thu Jul 30 18:18:39 2015 +0200 hwmon: (nct7904) Export I2C module alias information The I2C core always reports the MODALIAS uevent as "i2c: Cc: stable@vger.kernel.org # v4.1+ Signed-off-by: Guenter Roeck drivers/hwmon/nct7904.c | 1 + 1 file changed, 1 insertion(+) commit a4b45b25f18d1e798965efec429ba5fc01b9f0b6 Author: Pali Rohár Date: Thu Jul 30 20:41:57 2015 +0200 hwmon: (dell-smm) Blacklist Dell Studio XPS 8100 CPU fan speed going up and down on Dell Studio XPS 8100 for unknown reasons. Without further debugging on the affected machine, it is not possible to find the problem. Link: https://bugzilla.kernel.org/show_bug.cgi?id=100121 Signed-off-by: Pali Rohár Tested-by: Jan C Peters Cc: stable@vger.kernel.org # v4.0+, will need backport [groeck: cleaned up description, comments] Signed-off-by: Guenter Roeck drivers/hwmon/dell-smm-hwmon.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) commit 73851b36fe73819f8c201971e913324d4846a7ea Author: Hui Wang Date: Wed Aug 5 18:03:34 2015 +0800 ALSA: hda - one Dell machine needs the headphone white noise fixup The fixup ALC292_FIXUP_DISABLE_AAMIX can fix the white noise of the headphone on this Dell machine. Cc: Signed-off-by: Hui Wang Signed-off-by: Takashi Iwai sound/pci/hda/patch_realtek.c | 1 + 1 file changed, 1 insertion(+) commit cd4556733b30cc363adc7b1cea3bffa7e2dd0c7c Author: Kishon Vijay Abraham I Date: Mon Jul 27 17:46:41 2015 +0530 ARM: dts: dra7: Fix broken pbias device creation commit ("ARM: dts: dra7: add minimal l4 bus layout with control module support") moved pbias_regulator dt node from being a child node of ocp to be the child node of scm_conf. After this device for pbias_regulator is not created. Fix it by adding "simple-bus" compatible property to scm_conf dt node. Fixes: d919501feffa ("ARM: dts: dra7: add minimal l4 bus layout with control module support") Cc: # v4.1 Suggested-by: Tero Kristo Signed-off-by: Kishon Vijay Abraham I Tested-by: Grygorii Strashko Signed-off-by: Tony Lindgren arch/arm/boot/dts/dra7.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 70caac3f25291cf715cf8f2d8c7db46f6cbefe7c Author: Kishon Vijay Abraham I Date: Mon Jul 27 17:46:40 2015 +0530 ARM: dts: OMAP5: Fix broken pbias device creation commit ("ARM: dts: omap5: 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 omap5_padconf_global. After this device for pbias_regulator is not created. Fix it by adding "simple-bus" compatible property to omap5_padconf_global dt node. Fixes: ed8509edddeb ("ARM: dts: omap5: add minimal l4 bus layout with control module support") Cc: # v4.1 Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Tony Lindgren arch/arm/boot/dts/omap5.dtsi | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 89a898df87e114952191ab0e061aa18e3c617880 Author: Kishon Vijay Abraham I Date: Mon Jul 27 17:46:39 2015 +0530 ARM: dts: OMAP4: Fix broken pbias device creation commit <7415b0b4c645> ("ARM: dts: omap4: 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 omap4_padconf_global. After this device for pbias_regulator is not created. Fix it by adding "simple-bus" compatible property to omap4_padconf_global dt node. Fixes: 7415b0b4c645 ("ARM: dts: omap4: add minimal l4 bus layout with control module support") Cc: # v4.1 Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Tony Lindgren arch/arm/boot/dts/omap4.dtsi | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 4317c8c9121e4685561422ac267b292df8e80806 Author: Kishon Vijay Abraham I Date: Mon Jul 27 17:46:38 2015 +0530 ARM: dts: omap243x: Fix broken pbias device creation commit <72b10ac00eb1> ("ARM: dts: omap24xx: 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 scm_conf. After this device for pbias_regulator is not created. Fix it by adding "simple-bus" compatible property to scm_conf dt node. Fixes: 72b10ac00eb1 ("ARM: dts: omap24xx: add minimal l4 bus layout with control module support") Cc: # v4.1 Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Tony Lindgren arch/arm/boot/dts/omap2430.dtsi | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit fc1a8126bf8095b10f5a79893f2d2b19227f88f2 Author: Alex Williamson Date: Tue Aug 4 10:58:26 2015 -0600 KVM: MTRR: Use default type for non-MTRR-covered gfn before WARN_ON The patch was munged on commit to re-order these tests resulting in excessive warnings when trying to do device assignment. Return to original ordering: https://lkml.org/lkml/2015/7/15/769 Fixes: 3e5d2fdceda1 ("KVM: MTRR: simplify kvm_mtrr_get_guest_memory_type") Signed-off-by: Alex Williamson Reviewed-by: Xiao Guangrong Signed-off-by: Paolo Bonzini arch/x86/kvm/mtrr.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 4a6ca1a2c2530af4611024476ba7005bf0336dfe Author: Jean-Francois Moine Date: Fri Jul 17 13:07:35 2015 +0200 drm/i2c: tda998x: fix bad checksum of the HDMI AVI infoframe The commit 8c7a075da9f7980cc95ffcd7e6621d4a87f20f40 "drm/i2c: tda998x: use drm_hdmi_avi_infoframe_from_display_mode()" also uses hdmi_avi_infoframe_pack() to create the AVI infoframe. This function sets the checksum of the frame and this breaks the second calculation of the checksum done in tda998x_write_if(). Fixes: 8c7a075da9f7980c ("drm/i2c: tda998x: use drm_hdmi_avi_infoframe_from_display_mode()") Signed-off-by: Jean-Francois Moine Signed-off-by: Russell King drivers/gpu/drm/i2c/tda998x_drv.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 46011e6ea39235e4aca656673c500eac81a07a17 Author: David Daney Date: Mon Aug 3 17:48:43 2015 -0700 MIPS: Make set_pte() SMP safe. On MIPS the GLOBAL bit of the PTE must have the same value in any aligned pair of PTEs. These pairs of PTEs are referred to as "buddies". In a SMP system is is possible for two CPUs to be calling set_pte() on adjacent PTEs at the same time. There is a race between setting the PTE and a different CPU setting the GLOBAL bit in its buddy PTE. This race can be observed when multiple CPUs are executing vmap()/vfree() at the same time. Make setting the buddy PTE's GLOBAL bit an atomic operation to close the race condition. The case of CONFIG_64BIT_PHYS_ADDR && CONFIG_CPU_MIPS32 is *not* handled. Signed-off-by: David Daney Cc: Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10835/ Signed-off-by: Ralf Baechle arch/mips/include/asm/pgtable.h | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) commit 4e6b6ee253ce58aa156d7f1448d1038679b26783 Merge: 9e91edc 49895bc Author: Linus Torvalds Date: Wed Aug 5 11:02:42 2015 +0200 Merge tag 'md/4.2-rc5-fixes' of git://neil.brown.name/md Pull md fixes from Neil Brown: "Three more fixes for md in 4.2 Mostly corner-case stuff. One of these patches is for a CVE: CVE-2015-5697 I'm not convinced it is serious (data leak from CAP_SYS_ADMIN ioctl) but as people seem to want to back-port it, I've included a minimal version here. The remainder of that patch from Benjamin is code-cleanup and will arrive in the 4.3 merge window" * tag 'md/4.2-rc5-fixes' of git://neil.brown.name/md: md/raid5: don't let shrink_slab shrink too far. md: use kzalloc() when bitmap is disabled md/raid1: extend spinlock to protect raid1_end_read_request against inconsistencies commit 9e91edcd1b8b7f12c6484a0b17fb45774354e0b6 Merge: ecf5fc6 8fcd461 Author: Linus Torvalds Date: Wed Aug 5 10:59:59 2015 +0200 Merge branch 'for-4.2' of git://linux-nfs.org/~bfields/linux Pull nfsd fixes from Bruce Fields. * 'for-4.2' of git://linux-nfs.org/~bfields/linux: nfsd: do nfs4_check_fh in nfs4_check_file instead of nfs4_check_olstateid nfsd: Fix a file leak on nfsd4_layout_setlease failure nfsd: Drop BUG_ON and ignore SECLABEL on absent filesystem commit f58e5aa7b873b8a4376b816993d4b0e903befcba Author: Joe Stringer Date: Tue Aug 4 18:34:00 2015 -0700 netfilter: conntrack: Use flags in nf_ct_tmpl_alloc() The flags were ignored for this function when it was introduced. Also fix the style problem in kzalloc. Fixes: 0838aa7fc (netfilter: fix netns dependencies with conntrack templates) Signed-off-by: Joe Stringer Signed-off-by: Pablo Neira Ayuso net/netfilter/nf_conntrack_core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit ecf5fc6e9654cd7a268c782a523f072b2f1959f9 Author: Michal Hocko Date: Tue Aug 4 14:36:58 2015 -0700 mm, vmscan: Do not wait for page writeback for GFP_NOFS allocations Nikolay has reported a hang when a memcg reclaim got stuck with the following backtrace: PID: 18308 TASK: ffff883d7c9b0a30 CPU: 1 COMMAND: "rsync" #0 __schedule at ffffffff815ab152 #1 schedule at ffffffff815ab76e #2 schedule_timeout at ffffffff815ae5e5 #3 io_schedule_timeout at ffffffff815aad6a #4 bit_wait_io at ffffffff815abfc6 #5 __wait_on_bit at ffffffff815abda5 #6 wait_on_page_bit at ffffffff8111fd4f #7 shrink_page_list at ffffffff81135445 #8 shrink_inactive_list at ffffffff81135845 #9 shrink_lruvec at ffffffff81135ead #10 shrink_zone at ffffffff811360c3 #11 shrink_zones at ffffffff81136eff #12 do_try_to_free_pages at ffffffff8113712f #13 try_to_free_mem_cgroup_pages at ffffffff811372be #14 try_charge at ffffffff81189423 #15 mem_cgroup_try_charge at ffffffff8118c6f5 #16 __add_to_page_cache_locked at ffffffff8112137d #17 add_to_page_cache_lru at ffffffff81121618 #18 pagecache_get_page at ffffffff8112170b #19 grow_dev_page at ffffffff811c8297 #20 __getblk_slow at ffffffff811c91d6 #21 __getblk_gfp at ffffffff811c92c1 #22 ext4_ext_grow_indepth at ffffffff8124565c #23 ext4_ext_create_new_leaf at ffffffff81246ca8 #24 ext4_ext_insert_extent at ffffffff81246f09 #25 ext4_ext_map_blocks at ffffffff8124a848 #26 ext4_map_blocks at ffffffff8121a5b7 #27 mpage_map_one_extent at ffffffff8121b1fa #28 mpage_map_and_submit_extent at ffffffff8121f07b #29 ext4_writepages at ffffffff8121f6d5 #30 do_writepages at ffffffff8112c490 #31 __filemap_fdatawrite_range at ffffffff81120199 #32 filemap_flush at ffffffff8112041c #33 ext4_alloc_da_blocks at ffffffff81219da1 #34 ext4_rename at ffffffff81229b91 #35 ext4_rename2 at ffffffff81229e32 #36 vfs_rename at ffffffff811a08a5 #37 SYSC_renameat2 at ffffffff811a3ffc #38 sys_renameat2 at ffffffff811a408e #39 sys_rename at ffffffff8119e51e #40 system_call_fastpath at ffffffff815afa89 Dave Chinner has properly pointed out that this is a deadlock in the reclaim code because ext4 doesn't submit pages which are marked by PG_writeback right away. The heuristic was introduced by commit e62e384e9da8 ("memcg: prevent OOM with too many dirty pages") and it was applied only when may_enter_fs was specified. The code has been changed by c3b94f44fcb0 ("memcg: further prevent OOM with too many dirty pages") which has removed the __GFP_FS restriction with a reasoning that we do not get into the fs code. But this is not sufficient apparently because the fs doesn't necessarily submit pages marked PG_writeback for IO right away. ext4_bio_write_page calls io_submit_add_bh but that doesn't necessarily submit the bio. Instead it tries to map more pages into the bio and mpage_map_one_extent might trigger memcg charge which might end up waiting on a page which is marked PG_writeback but hasn't been submitted yet so we would end up waiting for something that never finishes. Fix this issue by replacing __GFP_IO by may_enter_fs check (for case 2) before we go to wait on the writeback. The page fault path, which is the only path that triggers memcg oom killer since 3.12, shouldn't require GFP_NOFS and so we shouldn't reintroduce the premature OOM killer issue which was originally addressed by the heuristic. As per David Chinner the xfs is doing similar thing since 2.6.15 already so ext4 is not the only affected filesystem. Moreover he notes: : For example: IO completion might require unwritten extent conversion : which executes filesystem transactions and GFP_NOFS allocations. The : writeback flag on the pages can not be cleared until unwritten : extent conversion completes. Hence memory reclaim cannot wait on : page writeback to complete in GFP_NOFS context because it is not : safe to do so, memcg reclaim or otherwise. Cc: stable@vger.kernel.org # 3.9+ [tytso@mit.edu: corrected the control flow] Fixes: c3b94f44fcb0 ("memcg: further prevent OOM with too many dirty pages") Reported-by: Nikolay Borisov Signed-off-by: Michal Hocko Signed-off-by: Hugh Dickins Signed-off-by: Linus Torvalds mm/vmscan.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) commit 87ce62802f7a3553234ebf1ae7cd52c8bf272fb9 Author: Vineet Gupta Date: Wed Aug 5 11:12:00 2015 +0530 ARC: Make pt_regs regs unsigned KGDB fails to build after f51e2f191112 ("ARC: make sure instruction_pointer() returns unsigned value") The hack to force one specific reg to unsigned backfired. There's no reason to keep the regs signed after all. | CC arch/arc/kernel/kgdb.o |../arch/arc/kernel/kgdb.c: In function 'kgdb_trap': | ../arch/arc/kernel/kgdb.c:180:29: error: lvalue required as left operand of assignment | instruction_pointer(regs) -= BREAK_INSTR_SIZE; Reported-by: Yuriy Kolerov Fixes: f51e2f191112 ("ARC: make sure instruction_pointer() returns unsigned value") Cc: Alexey Brodkin Signed-off-by: Vineet Gupta arch/arc/include/asm/ptrace.h | 54 +++++++++++++++++++------------------- arch/arc/include/uapi/asm/ptrace.h | 20 +++++++------- 2 files changed, 37 insertions(+), 37 deletions(-) commit 18f5ed365d3f188a91149d528c853000330a4a58 Author: Takashi Sakamoto Date: Wed Aug 5 09:21:05 2015 +0900 ALSA: fireworks/firewire-lib: add support for recent firmware quirk Fireworks uses TSB43CB43(IceLynx-Micro) as its IEC 61883-1/6 interface. This chip includes ARM7 core, and loads and runs program. The firmware is stored in on-board memory and loaded every powering-on from it. Echo Audio ships several versions of firmwares for each model. These firmwares have each quirk and the quirk changes a sequence of packets. As long as I investigated, AudioFire2/AudioFire4/AudioFirePre8 have a quirk to transfer a first packet with 0x02 in its dbc field. This causes ALSA Fireworks driver to detect discontinuity. In this case, firmware version 5.7.0, 5.7.3 and 5.8.0 are used. Payload CIP CIP quadlets header1 header2 02 00050002 90ffffff <- 42 0005000a 90013000 42 00050012 90014400 42 0005001a 90015800 02 0005001a 90ffffff 42 00050022 90019000 42 0005002a 9001a400 42 00050032 9001b800 02 00050032 90ffffff 42 0005003a 9001d000 42 00050042 9001e400 42 0005004a 9001f800 02 0005004a 90ffffff (AudioFire2 with firmware version 5.7.) $ dmesg snd-fireworks fw1.0: Detect discontinuity of CIP: 00 02 These models, AudioFire8 (since Jul 2009 ) and Gibson Robot Interface Pack series uses the same ARM binary as their firmware. Thus, this quirk may be observed among them. This commit adds a new member for AMDTP structure. This member represents the value of dbc field in a first AMDTP packet. Drivers can set it with a preferred value according to model's quirk. Tested-by: Johannes Oertei Signed-off-by: Takashi Sakamoto Cc: Signed-off-by: Takashi Iwai sound/firewire/amdtp.c | 5 +++-- sound/firewire/amdtp.h | 2 ++ sound/firewire/fireworks/fireworks.c | 8 ++++++++ sound/firewire/fireworks/fireworks.h | 1 + sound/firewire/fireworks/fireworks_stream.c | 9 +++++++++ 5 files changed, 23 insertions(+), 2 deletions(-) commit c85523d1d97cc86aadc388221aa83ae9bc1e7cca Author: Takashi Sakamoto Date: Wed Aug 5 09:21:04 2015 +0900 Revert "ALSA: fireworks: add support for AudioFire2 quirk" This reverts commit 9c6893e0be38b6ca9a56a854226e51dee0a16a5a. The fix is superseded by the next commit as a better implementation for supporting AudioFire2/AudioFire4/AudioFirePre8 quirks. Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai sound/firewire/fireworks/fireworks.c | 2 -- sound/firewire/fireworks/fireworks.h | 1 - sound/firewire/fireworks/fireworks_stream.c | 3 --- 3 files changed, 6 deletions(-) commit fb1de5a4c825a389f054cc3803e06116d2fbdc7e Author: Guenter Roeck Date: Sat Aug 1 07:01:24 2015 -0700 staging: lustre: Include unaligned.h instead of access_ok.h Including access_ok.h causes the ia64:allmodconfig build (and maybe others) to fail with include/linux/unaligned/le_struct.h:6:19: error: redefinition of 'get_unaligned_le16' include/linux/unaligned/access_ok.h:7:19: note: previous definition of 'get_unaligned_le16' was here include/linux/unaligned/le_struct.h:26:20: error: redefinition of 'put_unaligned_le32' include/linux/unaligned/access_ok.h:42:20: note: previous definition of 'put_unaligned_le32' was here include/linux/unaligned/le_struct.h:31:20: error: redefinition of 'put_unaligned_le64' include/linux/unaligned/access_ok.h:47:20: note: previous definition of 'put_unaligned_le64' was here Include unaligned.h instead and leave it up to the architecture to decide how to implement unaligned accesses. Fixes: 8c4f136497315 ("Staging: lustre: Use put_unaligned_le64") Cc: Vaishali Thakkar Signed-off-by: Guenter Roeck Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/obdclass/debug.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit aa65fa35ba6b589a12a6025739c2d935dd743b5a Author: Al Viro Date: Tue Aug 4 23:23:50 2015 -0400 may_follow_link() should use nd->inode Now that we can get there in RCU mode, we shouldn't play with nd->path.dentry->d_inode - it's not guaranteed to be stable. Use nd->inode instead. Reported-by: Hugh Dickins Signed-off-by: Al Viro fs/namei.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 27a4d5efd417b6ef3190e9af357715532d4617a3 Author: Simon Wunderlich Date: Wed Jun 24 14:50:19 2015 +0200 batman-adv: initialize up/down values when adding a gateway Without this initialization, gateways which actually announce up/down bandwidth of 0/0 could be added. If these nodes get purged via _batadv_purge_orig() later, the gw_node structure does not get removed since batadv_gw_node_delete() updates the gw_node with up/down bandwidth of 0/0, and the updating function then discards the change and does not free gw_node. This results in leaking the gw_node structures, which references other structures: gw_node -> orig_node -> orig_node_ifinfo -> hardif. When removing the interface later, the open reference on the hardif may cause hangs with the infamous "unregister_netdevice: waiting for mesh1 to become free. Usage count = 1" message. 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 insertions(+) commit ef72706a0543d0c3a5ab29bd6378fdfb368118d9 Author: Marek Lindner Date: Wed Jun 17 20:01:36 2015 +0800 batman-adv: protect tt_local_entry from concurrent delete events The tt_local_entry deletion performed in batadv_tt_local_remove() was neither protecting against simultaneous deletes nor checking whether the element was still part of the list before calling hlist_del_rcu(). Replacing the hlist_del_rcu() call with batadv_hash_remove() provides adequate protection via hash spinlocks as well as an is-element-still-in-hash check to avoid 'blind' hash removal. Fixes: 068ee6e204e1 ("batman-adv: roaming handling mechanism redesign") Reported-by: alfonsname@web.de Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/translation-table.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit 354136bcc3c4f40a2813bba8f57ca5267d812d15 Author: Marek Lindner Date: Tue Jun 9 21:24:36 2015 +0800 batman-adv: fix kernel crash due to missing NULL checks batadv_softif_vlan_get() may return NULL which has to be verified by the caller. Fixes: 35df3b298fc8 ("batman-adv: fix TT VLAN inconsistency on VLAN re-add") Reported-by: Ryan Thompson Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/soft-interface.c | 3 +++ net/batman-adv/translation-table.c | 18 ++++++++++++++---- 2 files changed, 17 insertions(+), 4 deletions(-) commit f202a666e933f3c7557126d63833a6a3b577ac15 Author: Antonio Quartulli Date: Tue Jun 16 21:06:24 2015 +0200 batman-adv: avoid DAT to mess up LAN state When a node running DAT receives an ARP request from the LAN for the first time, it is likely that this node will request the ARP entry through the distributed ARP table (DAT) in the mesh. Once a DAT reply is received the asking node must check if the MAC address for which the IP address has been asked is local. If it is, the node must drop the ARP reply bceause the client should have replied on its own locally. Forwarding this reply means fooling any L2 bridge (e.g. Ethernet switches) lying between the batman-adv node and the LAN. This happens because the L2 bridge will think that the client sending the ARP reply lies somewhere in the mesh, while this node is sitting in the same LAN. Reported-by: Simon Wunderlich Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/distributed-arp-table.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) commit 6c84461c0cb0db3f4f56695ac9944451b34bf431 Merge: 50d091b c9ddbac Author: Linus Torvalds Date: Tue Aug 4 09:27:19 2015 -0700 Merge tag 'pci-v4.2-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci Pull PCI fix from Bjorn Helgaas: "This is a trivial fix for a change that broke user program compilation (QEMU in this case)" * tag 'pci-v4.2-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: PCI: Restore PCI_MSIX_FLAGS_BIRMASK definition commit 50d091b6bfb95dbfcaaf0f116b40fdcad83b2ee4 Merge: 1ddc6dd 6ea76f3 Author: Linus Torvalds Date: Tue Aug 4 08:51:06 2015 -0700 Merge tag 'topic/mst-fixes-2015-08-04' of git://anongit.freedesktop.org/drm-intel Pull drm mst fixes from Daniel Vetter: "Special pull request for mst fixes since most of the patches touch code outside of i915 proper. DRM parts have also been reviewed by Thierry (nvidia) since Dave's enjoying vacations" * tag 'topic/mst-fixes-2015-08-04' of git://anongit.freedesktop.org/drm-intel: drm/atomic-helpers: Make encoder picking more robust drm/dp-mst: Remove debug WARN_ON drm/i915: Fixup dp mst encoder selection drm/atomic-helper: Add an atomice best_encoder callback commit 1ddc6dd855f01977e9e1795037fca1c8be028d24 Merge: ed8bbba fcdf31a Author: Linus Torvalds Date: Tue Aug 4 08:49:08 2015 -0700 Merge tag 'for-linus-4.2-rc5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip Pull xen bug fixes from David Vrabel: - don't lose interrupts when offlining CPUs - fix gntdev oops during unmap - drop the balloon lock occasionally to allow domain create/destroy * tag 'for-linus-4.2-rc5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip: xen/events/fifo: Handle linked events when closing a port xen: release lock occasionally during ballooning xen/gntdevt: Fix race condition in gntdev_release() commit 5406898354ebfb11f49b955fb5e49a62786a542f Author: Mengdong Lin Date: Tue Aug 4 15:47:35 2015 +0100 ASoC: topology: fix typo in soc_tplg_kcontrol_bind_io() Signed-off-by: Mengdong Lin Signed-off-by: Liam Girdwood Signed-off-by: Mark Brown sound/soc/soc-topology.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 257d5d9a9f19ee6c6801589c74791d5422c374e9 Author: Roger Quadros Date: Fri Jul 17 16:47:23 2015 +0300 ARM: dts: dra7: Add syscon-pllreset syscon to SATA PHY This register is required to be passed to the SATA PHY driver to workaround errata i783 (SATA Lockup After SATA DPLL Unlock/Relock). Signed-off-by: Roger Quadros Acked-by: Tony Lindgren Signed-off-by: Kishon Vijay Abraham I arch/arm/boot/dts/dra7.dtsi | 1 + 1 file changed, 1 insertion(+) commit fcdf31a7c162de0c93a2bee51df4688ab0a348f8 Author: Ross Lagerwall Date: Fri Jul 31 14:30:42 2015 +0100 xen/events/fifo: Handle linked events when closing a port An event channel bound to a CPU that was offlined may still be linked on that CPU's queue. If this event channel is closed and reused, subsequent events will be lost because the event channel is never unlinked and thus cannot be linked onto the correct queue. When a channel is closed and the event is still linked into a queue, ensure that it is unlinked before completing. If the CPU to which the event channel bound is online, spin until the event is handled by that CPU. If that CPU is offline, it can't handle the event, so clear the event queue during the close, dropping the events. This fixes the missing interrupts (and subsequent disk stalls etc.) when offlining a CPU. Signed-off-by: Ross Lagerwall Cc: Signed-off-by: David Vrabel drivers/xen/events/events_base.c | 10 ++++---- drivers/xen/events/events_fifo.c | 45 ++++++++++++++++++++++++++++++++---- drivers/xen/events/events_internal.h | 7 ++++++ 3 files changed, 53 insertions(+), 9 deletions(-) commit ed8bbba0f617aca2c219a236019012784b22cf1f Merge: c2f3ba7 3d1450d Author: Linus Torvalds Date: Tue Aug 4 06:57:32 2015 -0700 Merge branch 'rc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild Pull kbuild fixes from Michal Marek: "Two fixes for kbuild: - The new ARCH_{CPP,A,C}FLAGS variables are reset before including the arch Makefile - Fix calling make modules_install twice when module compression is enabled" * 'rc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild: Makefile: Force gzip and xz on module install kbuild: Do not pick up ARCH_{CPP,A,C}FLAGS from the environment commit 0621809e37936e7c2b3eac9165cf2aad7f9189eb Author: Krzysztof Kozlowski Date: Mon Aug 3 14:57:30 2015 +0900 HID: hid-input: Fix accessing freed memory during device disconnect During unbinding the driver was dereferencing a pointer to memory already freed by power_supply_unregister(). Driver was freeing its internal description of battery through pointers stored in power_supply structure. However, because the core owns the power supply instance, after calling power_supply_unregister() this memory is freed and the driver cannot access these members. Fix this by storing the pointer to internal description of battery in a local variable before calling power_supply_unregister(), so the pointer remains valid. Signed-off-by: Krzysztof Kozlowski Reported-by: H.J. Lu Fixes: 297d716f6260 ("power_supply: Change ownership from driver to core") Cc: Reviewed-by: Dmitry Torokhov Signed-off-by: Jiri Kosina drivers/hid/hid-input.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 6ea76f3cade4734e73e3da842005820558b8b828 Author: Daniel Vetter Date: Mon Aug 3 17:24:11 2015 +0200 drm/atomic-helpers: Make encoder picking more robust We've had a few issues with atomic where subtle bugs in the encoder picking logic lead to accidental self-stealing of the encoder, resulting in a NULL connector_state->crtc in update_connector_routing and subsequent. Linus applied some duct-tape for an mst regression in commit 27667f4744fc5a0f3e50910e78740bac5670d18b Author: Linus Torvalds Date: Wed Jul 29 22:18:16 2015 -0700 i915: temporary fix for DP MST docking station NULL pointer dereference But that was incomplete (the code will still oops when debuggin is enabled) and mangled the state even further. So instead WARN and bail out as the more future-proof option. Cc: Theodore Ts'o Cc: Linus Torvalds Reviewed-by: Thierry Reding Reviewed-by: Ander Conselvan de Oliveira Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_atomic_helper.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit 42639ba554655c280ae6cb72df0522b1201f2961 Author: Daniel Vetter Date: Mon Aug 3 17:24:10 2015 +0200 drm/dp-mst: Remove debug WARN_ON Apparently been in there since forever and fairly easy to hit when hotplugging really fast. I can do that since my mst hub has a manual button to flick the hpd line for reprobing. The resulting WARNING spam isn't pretty. Cc: Dave Airlie Cc: stable@vger.kernel.org Reviewed-by: Thierry Reding Reviewed-by: Ander Conselvan de Oliveira Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_dp_mst_topology.c | 1 - 1 file changed, 1 deletion(-) commit 459485ad3513bce12a3773f801e4647445062d9e Author: Daniel Vetter Date: Mon Aug 3 17:24:09 2015 +0200 drm/i915: Fixup dp mst encoder selection In commit 8c7b5ccb729870e606321b3703e2c2e698c49a95 Author: Ander Conselvan de Oliveira Date: Tue Apr 21 17:13:19 2015 +0300 drm/i915: Use atomic helpers for computing changed flags we've switched over to the atomic version to compute the crtc->encoder->connector routing from the i915 variant. That one relies upon the ->best_encoder callback, but the i915-private version relied upon intel_find_encoder. Which didn't matter except for dp mst, where the encoder depends upon the selected crtc. Fix this functional bug by implemented a correct atomic-state based encoder selector for dp mst. Note that we can't get rid of the legacy best_encoder callback since the fbdev emulation uses that still. That means it's incorrect there still, but that's been the case ever since i915 dp mst support was merged so not a regression. Best to fix that by converting fbdev over to atomic too. Cc: Chris Wilson Cc: Linus Torvalds Cc: Theodore Ts'o Reviewed-by: Ander Conselvan de Oliveira Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_dp_mst.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 3b8a684bd6cbc13dfd21ca41814c304e9f27ec7f Author: Daniel Vetter Date: Mon Aug 3 17:24:08 2015 +0200 drm/atomic-helper: Add an atomice best_encoder callback With legacy helpers all the routing was already set up when calling best_encoder and so could be inspected. But with atomic it's staged, hence we need a new atomic compliant callback for drivers which need to inspect the requested state and can't just decided the best encoder statically. This is needed to fix up i915 dp mst where we need to pick the right encoder depending upon the requested CRTC for the connector. v2: Don't forget to amend the kerneldoc Cc: Chris Wilson Cc: Linus Torvalds Cc: Theodore Ts'o Acked-by: Thierry Reding Reviewed-by: Ander Conselvan de Oliveira Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_atomic_helper.c | 7 ++++++- include/drm/drm_crtc_helper.h | 3 +++ 2 files changed, 9 insertions(+), 1 deletion(-) commit fed66e2cdd4f127a43fd11b8d92a99bdd429528c Author: Peter Zijlstra Date: Thu Jun 11 10:32:01 2015 +0200 perf: Fix fasync handling on inherited events Vince reported that the fasync signal stuff doesn't work proper for inherited events. So fix that. Installing fasync allocates memory and sets filp->f_flags |= FASYNC, which upon the demise of the file descriptor ensures the allocation is freed and state is updated. Now for perf, we can have the events stick around for a while after the original FD is dead because of references from child events. So we cannot copy the fasync pointer around. We can however consistently use the parent's fasync, as that will be updated. Reported-and-Tested-by: Vince Weaver Signed-off-by: Peter Zijlstra (Intel) Cc: Cc: Arnaldo Carvalho deMelo Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: eranian@google.com Link: http://lkml.kernel.org/r/1434011521.1495.71.camel@twins Signed-off-by: Ingo Molnar kernel/events/core.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit 2475b22526d70234ecfe4a1ff88aed69badefba9 Author: Ross Lagerwall Date: Mon Aug 3 15:38:03 2015 +0100 xen-netback: Allocate fraglist early to avoid complex rollback Determine if a fraglist is needed in the tx path, and allocate it if necessary before setting up the copy and map operations. Otherwise, undoing the copy and map operations is tricky. This fixes a use-after-free: if allocating the fraglist failed, the copy and map operations that had been set up were still executed, writing over the data area of a freed skb. Signed-off-by: Ross Lagerwall Signed-off-by: David S. Miller drivers/net/xen-netback/netback.c | 61 +++++++++++++++++++++------------------ 1 file changed, 33 insertions(+), 28 deletions(-) commit 10e2eb878f3ca07ac2f05fa5ca5e6c4c9174a27a Author: Eric Dumazet Date: Sat Aug 1 12:14:33 2015 +0200 udp: fix dst races with multicast early demux Multicast dst are not cached. They carry DST_NOCACHE. As mentioned in commit f8864972126899 ("ipv4: fix dst race in sk_dst_get()"), these dst need special care before caching them into a socket. Caching them is allowed only if their refcnt was not 0, ie we must use atomic_inc_not_zero() Also, we must use READ_ONCE() to fetch sk->sk_rx_dst, as mentioned in commit d0c294c53a771 ("tcp: prevent fetching dst twice in early demux code") Fixes: 421b3885bf6d ("udp: ipv4: Add udp early demux") Tested-by: Gregory Hoggarth Signed-off-by: Eric Dumazet Reported-by: Gregory Hoggarth Reported-by: Alex Gartrell Cc: Michal Kubeček Signed-off-by: David S. Miller net/ipv4/udp.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) commit 5d942ce63c8fd98794a8ba9af559925c8432a052 Author: Jeeja KP Date: Tue Aug 4 09:28:39 2015 +0530 ALSA: HDA: Dont check return for snd_hdac_chip_readl The snd_hdac_chip_readl return can never be less than zeros, so no point in checking for the return value This fixes following static checker warnings in snd_hdac_ext_bus_parse_capabilities sound/hda/ext/hdac_ext_controller.c:47 snd_hdac_ext_bus_parse_capabilities() warn: unsigned 'offset' is never less than zero. sound/hda/ext/hdac_ext_controller.c:54 snd_hdac_ext_bus_parse_capabilities() warn: unsigned 'cur_cap' is never less than zero. Signed-off-by: Jeeja KP Reported-by: Dan Carpenter Signed-off-by: Vinod Koul Signed-off-by: Takashi Iwai sound/hda/ext/hdac_ext_controller.c | 6 ------ 1 file changed, 6 deletions(-) commit 9b06dc939489152b583131f49929ed1c6ae83740 Author: Jeeja KP Date: Tue Aug 4 09:28:38 2015 +0530 ALSA: HDA: Fix stream assignment for host in decoupled mode This fixes issue in assigning host stream in case of decoupled mode. The check to verify if the stream is already in use was wrong so fix that Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Takashi Iwai sound/hda/ext/hdac_ext_stream.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b89aa12c177477e34caa722818536fb5d0bffd76 Author: Vineet Gupta Date: Tue Jul 21 18:46:53 2015 +0300 ARCv2: spinlock/rwlock: Reset retry delay when starting a new spin-wait cycle The previous commit for delayed retry of SCOND needs some fine tuning for spin locks. The backoff from delayed retry in conjunction with spin looping of lock itself can potentially cause the delay counter to reach high values. So to provide fairness to any lock operation, after a lock "seems" available (i.e. just before first SCOND try0, reset the delay counter back to starting value of 1 Essentially reset delay to 1 for a new spin-wait-loop-acquire cycle. Acked-by: Peter Zijlstra (Intel) Signed-off-by: Vineet Gupta arch/arc/include/asm/spinlock.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit e78fdfef84be13a5c2b8276e12203cdf24778596 Author: Vineet Gupta Date: Tue Jul 14 19:50:18 2015 +0530 ARCv2: spinlock/rwlock/atomics: Delayed retry of failed SCOND with exponential backoff This is to workaround the llock/scond livelock HS38x4 could get into a LLOCK/SCOND livelock in case of multiple overlapping coherency transactions in the SCU. The exclusive line state keeps rotating among contenting cores leading to a never ending cycle. So break the cycle by deferring the retry of failed exclusive access (SCOND). The actual delay needed is function of number of contending cores as well as the unrelated coherency traffic from other cores. To keep the code simple, start off with small delay of 1 which would suffice most cases and in case of contention double the delay. Eventually the delay is sufficient such that the coherency pipeline is drained, thus a subsequent exclusive access would succeed. Link: http://lkml.kernel.org/r/1438612568-28265-1-git-send-email-vgupta@synopsys.com Acked-by: Peter Zijlstra (Intel) Signed-off-by: Vineet Gupta arch/arc/Kconfig | 5 + arch/arc/include/asm/atomic.h | 49 ++++++- arch/arc/include/asm/spinlock.h | 293 ++++++++++++++++++++++++++++++++++++++++ arch/arc/kernel/setup.c | 4 + 4 files changed, 347 insertions(+), 4 deletions(-) commit 69cbe630f54ec02efe47fdb9e257e617161da370 Author: Vineet Gupta Date: Thu Jul 16 10:31:45 2015 +0530 ARC: LLOCK/SCOND based rwlock With LLOCK/SCOND, the rwlock counter can be atomically updated w/o need for a guarding spin lock. This in turn elides the EXchange instruction based spinning which causes the cacheline transition to exclusive state and concurrent spinning across cores would cause the line to keep bouncing around. LLOCK/SCOND based implementation is superior as spinning on LLOCK keeps the cacheline in shared state. Acked-by: Peter Zijlstra (Intel) Signed-off-by: Vineet Gupta arch/arc/include/asm/spinlock.h | 174 ++++++++++++++++++++++++++++++++-- arch/arc/include/asm/spinlock_types.h | 2 + 2 files changed, 166 insertions(+), 10 deletions(-) commit ae7eae9e031206bde8645d038c76ad89e7d3fbcb Author: Vineet Gupta Date: Tue Jul 14 17:55:05 2015 +0530 ARC: LLOCK/SCOND based spin_lock Current spin_lock uses EXchange instruction to implement the atomic test and set of lock location (reads orig value and ST 1). This however forces the cacheline into exclusive state (because of the ST) and concurrent loops in multiple cores will bounce the line around between cores. Instead, use LLOCK/SCOND to implement the atomic test and set which is better as line is in shared state while lock is spinning on LLOCK The real motivation of this change however is to make way for future changes in atomics to implement delayed retry (with backoff). Initial experiment with delayed retry in atomics combined with orig EX based spinlock was a total disaster (broke even LMBench) as struct sock has a cache line sharing an atomic_t and spinlock. The tight spinning on lock, caused the atomic retry to keep backing off such that it would never finish. Acked-by: Peter Zijlstra (Intel) Signed-off-by: Vineet Gupta arch/arc/include/asm/spinlock.h | 76 +++++++++++++++++++++++++++++++++++++---- 1 file changed, 69 insertions(+), 7 deletions(-) commit 8ac0665fb6ff125efc4df08772317f7311a95ce5 Author: Vineet Gupta Date: Tue Jul 21 12:05:42 2015 +0300 ARC: refactor atomic inline asm operands with symbolic names This reduces the diff in forth-coming patches and also helps understand better the incremental changes to inline asm. Acked-by: Peter Zijlstra (Intel) Signed-off-by: Vineet Gupta arch/arc/include/asm/atomic.h | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) commit f5959cb0c34c5c7f9f387e5d8fe1ec831ccb42ac Author: Vineet Gupta Date: Wed Jul 29 19:20:58 2015 +0530 Revert "ARCv2: STAR 9000837815 workaround hardware exclusive transactions livelock" Extended testing of quad core configuration revealed that this fix was insufficient. Specifically LTP open posix shm_op/23-1 would cause the hardware livelock in llock/scond loop in update_cpu_load_active() So remove this and make way for a proper workaround This reverts commit a5c8b52abe677977883655166796f167ef1e0084. Signed-off-by: Vineet Gupta arch/arc/include/asm/atomic.h | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) commit 6de7abfbad1c6a45893a47a17c2ac91b551aa90d Author: Vineet Gupta Date: Mon Aug 3 18:27:56 2015 +0530 ARCv2: [axs103_smp] Reduce clk for Quad FPGA configs Signed-off-by: Vineet Gupta arch/arc/plat-axs10x/axs10x.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit bd4aaf8f9b85d6b2df3231fd62b219ebb75d3568 Author: Mike Snitzer Date: Mon Aug 3 09:54:58 2015 -0400 dm: fix dm_merge_bvec regression on 32 bit systems A DM regression on 32 bit systems was reported against v4.2-rc3 here: https://lkml.org/lkml/2015/7/29/401 Fix this by reverting both commit 1c220c69 ("dm: fix casting bug in dm_merge_bvec()") and 148e51ba ("dm: improve documentation and code clarity in dm_merge_bvec"). This combined revert is done to eliminate the possibility of a partial revert in stable@ kernels. In hindsight the correct fix, at the time 1c220c69 was applied to fix the regression that 148e51ba introduced, should've been to simply revert 148e51ba. Reported-by: Josh Boyer Tested-by: Adam Williamson Acked-by: Joe Thornber Signed-off-by: Mike Snitzer Cc: stable@vger.kernel.org # 3.19+ drivers/md/dm.c | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) commit 1f17124006b65482d9084c01e252b59dbca8db8f Author: Malcolm Priestley Date: Sun Aug 2 12:34:46 2015 +0100 staging: vt6655: vnt_bss_info_changed check conf->beacon_rate is not NULL conf->beacon_rate can be NULL on association. So check conf->beacon_rate BSS_CHANGED_BEACON_INFO needs to flagged in changed as the beacon_rate will appear later. Signed-off-by: Malcolm Priestley Cc: # v3.19+ Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6655/device_main.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 2fc09962e24ace45154d0c16024f1eb15700f3e8 Author: Jia-Ju Bai Date: Mon Aug 3 11:18:12 2015 +0800 3c59x: Fix resource leaks in vortex_open When vortex_up is failed, the skb buffers allocated by __netdev_alloc_skb in vortex_open are not released, which may cause resource leaks. This bug has been submitted before. This patch modifies the error handling code to fix it. Signed-off-by: Jia-Ju Bai Signed-off-by: David S. Miller drivers/net/ethernet/3com/3c59x.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) commit 468b732b6f76b138c0926eadf38ac88467dcd271 Author: Dan Carpenter Date: Sat Aug 1 15:33:26 2015 +0300 rds: fix an integer overflow test in rds_info_getsockopt() "len" is a signed integer. We check that len is not negative, so it goes from zero to INT_MAX. PAGE_SIZE is unsigned long so the comparison is type promoted to unsigned long. ULONG_MAX - 4095 is a higher than INT_MAX so the condition can never be true. I don't know if this is harmful but it seems safe to limit "len" to INT_MAX - 4095. Fixes: a8c879a7ee98 ('RDS: Info and stats') Signed-off-by: Dan Carpenter Signed-off-by: David S. Miller net/rds/info.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c2f3ba745d1c2013811cac6308c4abf9527c478e Merge: 7e88447 e331146 Author: Linus Torvalds Date: Mon Aug 3 14:51:30 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: "A refcounting bugfix for the i2c-core, bugfixes for the generic bus recovery algorithm and for its omap-user, making binary file attributes for EEPROMs behave POSIX compliant, and a small typo fix while we are here" * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: i2c: fix leaked device refcount on of_find_i2c_* error path i2c: Fix typo in i2c-bfin-twi.c i2c: omap: fix bus recovery setup i2c: core: only use set_scl for bus recovery after calling prepare_recovery misc: eeprom: at24: clean up at24_bin_write() i2c: slave eeprom: clean up sysfs bin attribute read()/write() commit ffe5adcb7661d94e952d6b5ed7f493cb4ef0c7bc Author: Gavin Shan Date: Mon Aug 3 16:07:49 2015 +0300 drivers/usb: Delete XHCI command timer if necessary When xhci_mem_cleanup() is called, it's possible that the command timer isn't initialized and scheduled. For those cases, to delete the command timer causes soft-lockup as below stack dump shows. The patch avoids deleting the command timer if it's not scheduled with the help of timer_pending(). NMI watchdog: BUG: soft lockup - CPU#40 stuck for 23s! [kworker/40:1:8140] : NIP [c000000000150b30] lock_timer_base.isra.34+0x90/0xa0 LR [c000000000150c24] try_to_del_timer_sync+0x34/0xa0 Call Trace: [c000000f67c975e0] [c0000000015b84f8] mon_ops+0x0/0x8 (unreliable) [c000000f67c97620] [c000000000150c24] try_to_del_timer_sync+0x34/0xa0 [c000000f67c97660] [c000000000150cf0] del_timer_sync+0x60/0x80 [c000000f67c97690] [c00000000070ac0c] xhci_mem_cleanup+0x5c/0x5e0 [c000000f67c97740] [c00000000070c2e8] xhci_mem_init+0x1158/0x13b0 [c000000f67c97860] [c000000000700978] xhci_init+0x88/0x110 [c000000f67c978e0] [c000000000701644] xhci_gen_setup+0x2b4/0x590 [c000000f67c97970] [c0000000006d4410] xhci_pci_setup+0x40/0x190 [c000000f67c979f0] [c0000000006b1af8] usb_add_hcd+0x418/0xba0 [c000000f67c97ab0] [c0000000006cb15c] usb_hcd_pci_probe+0x1dc/0x5c0 [c000000f67c97b50] [c0000000006d3ba4] xhci_pci_probe+0x64/0x1f0 [c000000f67c97ba0] [c0000000004fe9ac] local_pci_probe+0x6c/0x130 [c000000f67c97c30] [c0000000000e5ce8] work_for_cpu_fn+0x38/0x60 [c000000f67c97c60] [c0000000000eacb8] process_one_work+0x198/0x470 [c000000f67c97cf0] [c0000000000eb6ac] worker_thread+0x37c/0x5a0 [c000000f67c97d80] [c0000000000f2730] kthread+0x110/0x130 [c000000f67c97e30] [c000000000009660] ret_from_kernel_thread+0x5c/0x7c Cc: Reported-by: Priya M. A Signed-off-by: Gavin Shan Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman drivers/usb/host/xhci-mem.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 7895086afde2a05fa24a0e410d8e6b75ca7c8fdd Author: Mathias Nyman Date: Mon Aug 3 16:07:48 2015 +0300 xhci: fix off by one error in TRB DMA address boundary check We need to check that a TRB is part of the current segment before calculating its DMA address. Previously a ring segment didn't use a full memory page, and every new ring segment got a new memory page, so the off by one error in checking the upper bound was never seen. Now that we use a full memory page, 256 TRBs (4096 bytes), the off by one didn't catch the case when a TRB was the first element of the next segment. This is triggered if the virtual memory pages for a ring segment are next to each in increasing order where the ring buffer wraps around and causes errors like: [ 106.398223] xhci_hcd 0000:00:14.0: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 0 comp_code 1 [ 106.398230] xhci_hcd 0000:00:14.0: Looking for event-dma fffd3000 trb-start fffd4fd0 trb-end fffd5000 seg-start fffd4000 seg-end fffd4ff0 The trb-end address is one outside the end-seg address. Cc: Tested-by: Arkadiusz Miśkiewicz Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman drivers/usb/host/xhci-ring.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0f79fd807a248d80211f9c5a5317ab9de21a9d59 Merge: e34d572 c93e64e Author: Greg Kroah-Hartman Date: Mon Aug 3 14:35:13 2015 -0700 Merge tag 'fixes-for-v4.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-linus Felipe writes: usb: fixes for v4.2-rc6 Just one major fix which has been pending since January. Somehow it fell through the cracks, but here it is. Basically, this fixes a bug in udc-core when gadget registration fails. Signed-off-by: Felipe Balbi commit 636dba8e12d797357b2063981476390f11262c08 Author: WANG Cong Date: Thu Jul 30 17:12:20 2015 -0700 act_mirred: avoid calling tcf_hash_release() when binding When we share an action within a filter, the bind refcnt should increase, therefore we should not call tcf_hash_release(). Cc: Jamal Hadi Salim Cc: Daniel Borkmann Signed-off-by: Cong Wang Signed-off-by: Cong Wang Signed-off-by: David S. Miller net/sched/act_mirred.c | 2 ++ 1 file changed, 2 insertions(+) commit 073e570d7c2caae9910a993d56f340be4548a4a8 Author: Hans de Goede Date: Mon Aug 3 14:06:24 2015 -0700 Input: alps - only Dell laptops have separate button bits for v2 dualpoint sticks It turns out that only Dell laptops have the separate button bits for v2 dualpoint sticks and that commit 92bac83dd79e ("Input: alps - non interleaved V2 dualpoint has separate stick button bits") causes regressions on Toshiba laptops. This commit adds a check for Dell laptops to the code for handling these extra button bits, fixing this regression. This patch has been tested on a Dell Latitude D620 to make sure that it does not reintroduce the original problem. Reported-and-tested-by: Douglas Christman Cc: stable@vger.kernel.org Signed-off-by: Hans de Goede Signed-off-by: Dmitry Torokhov Documentation/input/alps.txt | 6 ++++-- drivers/input/mouse/alps.c | 8 ++++++-- 2 files changed, 10 insertions(+), 4 deletions(-) commit b6e26546cc08e870da5413a3fcccc100eb2192c6 Author: Chen-Yu Tsai Date: Mon Aug 3 13:29:29 2015 -0700 Input: axp20x-pek - add module alias Add a proper module alias so the driver can be autoloaded when the parent axp20x mfd driver registers its cells. Signed-off-by: Chen-Yu Tsai Acked-by: Carlo Caione Signed-off-by: Dmitry Torokhov drivers/input/misc/axp20x-pek.c | 1 + 1 file changed, 1 insertion(+) commit c20bc5502d151ca731ebc672b95aa77e2bf32c8c Author: Dmitry Torokhov Date: Thu Jul 30 11:01:13 2015 -0700 Input: turbografx - fix potential out of bound access Patch 17dd3f0f7aa7: "[PATCH] drivers/input/joystick: convert to dynamic input_dev allocation" from Sep 15, 2005, leads to the following static checker warning: drivers/input/joystick/turbografx.c:235 tgfx_probe() error: buffer overflow 'tgfx_buttons' 5 <= 5 drivers/input/joystick/turbografx.c 195 for (i = 0; i < n_devs; i++) { 196 if (n_buttons[i] < 1) 197 continue; 198 199 if (n_buttons[i] > 6) { ^^^^^^^^^^^^^^^^ Possibly off by one. >= 6. Let's change the upper value to ARRAY_SIZE(tgfx_buttons) to ensure we do not reach past the end of the array. Reported-by: Dan Carpenter Reviewed-by: Dan Carpenter Signed-off-by: Dmitry Torokhov drivers/input/joystick/turbografx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3576fd794b38306e196498ac54bb3b21c32e1ae4 Author: Glenn Griffin Date: Mon Aug 3 09:56:54 2015 -0700 openvswitch: Fix L4 checksum handling when dealing with IP fragments openvswitch modifies the L4 checksum of a packet when modifying the ip address. When an IP packet is fragmented only the first fragment contains an L4 header and checksum. Prior to this change openvswitch would modify all fragments, modifying application data in non-first fragments, causing checksum failures in the reassembled packet. Signed-off-by: Glenn Griffin Acked-by: Pravin B Shelar Signed-off-by: David S. Miller net/openvswitch/actions.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) commit 7e884479bf5041fc511b06a173cdcdf41984071c Merge: 665aadc 2761713 Author: Linus Torvalds Date: Mon Aug 3 11:09:07 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: "There are two critical regression fixes for CephFS from Zheng, and an RBD completion fix for layered images from Ilya" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: rbd: fix copyup completion race ceph: always re-send cap flushes when MDS recovers ceph: fix ceph_encode_locks_to_buffer() commit 665aadc1d69e6f98c01194531fa558224545ce22 Merge: abeb4f5 5413fcdb Author: Linus Torvalds Date: Mon Aug 3 11:00:53 2015 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security Pull security layer fix from James Morris: "Yama initialization fix" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: Adding YAMA hooks also when YAMA is not stacked. commit abeb4f572d1c4e3c996a427c19e52601dee044e8 Merge: 5b2a0ee 17fb874 Author: Linus Torvalds Date: Mon Aug 3 10:53:58 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: - a bogus BUG_ON in ixp4xx that can be triggered by a dst buffer that is an SG list. - the error handling in hwrngd may cause a crash in case of an error. - fix a race condition in qat registration when multiple devices are present" * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: hwrng: core - correct error check of kthread_run call crypto: ixp4xx - Remove bogus BUG_ON on scattered dst buffer crypto: qat - Fix invalid synchronization between register/unregister sym algs commit 5b2a0eeea755f54748da805206cc0680acfbb427 Merge: 74d3329 fe0d34d Author: Linus Torvalds Date: Mon Aug 3 10:25:32 2015 -0700 Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux Pull module fix from Rusty Russell: "Single overzealous locking assertion fix" * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux: module: weaken locking assertion for oops path. commit a094935e4ebdf5c22c45b8aeeb2d88e9e8c53dbf Author: Bard Liao Date: Mon Aug 3 12:17:39 2015 +0800 ASoC: rt5645: Fix lost pin setting for DMIC1 I2S2_DAC pin can be used for I2S or GPIO. We should set it as GPIO if we use GPIO5 as DMIC1 data pin. Signed-off-by: Bard Liao Signed-off-by: Mark Brown sound/soc/codecs/rt5645.c | 2 ++ sound/soc/codecs/rt5645.h | 4 ++++ 2 files changed, 6 insertions(+) commit 74a80d67b8316eb3fbeb73dafc060a5a0a708587 Author: Tejun Heo Date: Mon Aug 3 11:46:39 2015 -0400 Revert "libata: Implement NCQ autosense" This reverts commit 42b966fbf35da9c87f08d98f9b8978edf9e717cf. As implemented, ACS-4 sense reporting for ATA devices bypasses error diagnosis and handling in libata degrading EH behavior significantly. Revert the related changes for now. Signed-off-by: Tejun Heo Cc: Hannes Reinecke Cc: stable@vger.kernel.org #v4.1+ drivers/ata/libata-eh.c | 18 ------------------ drivers/ata/libata-scsi.c | 9 ++------- drivers/ata/libata.h | 1 - include/linux/ata.h | 2 -- 4 files changed, 2 insertions(+), 28 deletions(-) commit 84ded2f8e7dda336fc2fb3570726ceb3b3b3590f Author: Tejun Heo Date: Mon Aug 3 11:45:34 2015 -0400 Revert "libata: Implement support for sense data reporting" This reverts commit fe7173c206de63fc28475ee6ae42ff95c05692de. As implemented, ACS-4 sense reporting for ATA devices bypasses error diagnosis and handling in libata degrading EH behavior significantly. Revert the related changes for now. ATA_ID_COMMAND_SET_3/4 constants are not reverted as they're used by later changes. Signed-off-by: Tejun Heo Cc: Hannes Reinecke Cc: stable@vger.kernel.org #v4.1+ drivers/ata/libata-core.c | 20 +---------- drivers/ata/libata-eh.c | 86 ++--------------------------------------------- include/linux/ata.h | 16 --------- 3 files changed, 4 insertions(+), 118 deletions(-) commit fe16d4f202c59a560533a223bc6375739ee30944 Author: Tejun Heo Date: Mon Aug 3 11:41:33 2015 -0400 Revert "libata-eh: Set 'information' field for autosense" This reverts commit a1524f226a02aa6edebd90ae0752e97cfd78b159. As implemented, ACS-4 sense reporting for ATA devices bypasses error diagnosis and handling in libata degrading EH behavior significantly. Revert the related changes for now. Signed-off-by: Tejun Heo Cc: Hannes Reinecke Cc: stable@vger.kernel.org #v4.1+ drivers/ata/libata-core.c | 4 ++-- drivers/ata/libata-eh.c | 3 --- drivers/ata/libata-scsi.c | 12 ------------ drivers/ata/libata.h | 5 +---- drivers/scsi/scsi_error.c | 31 ------------------------------- include/scsi/scsi_eh.h | 1 - 6 files changed, 3 insertions(+), 53 deletions(-) commit 5413fcdbe9e7ca32ce3f00fd5251dfa560b7484b Author: Salvatore Mesoraca Date: Mon Aug 3 12:40:51 2015 +0200 Adding YAMA hooks also when YAMA is not stacked. Without this patch YAMA will not work at all if it is chosen as the primary LSM instead of being "stacked". Signed-off-by: Salvatore Mesoraca Acked-by: Kees Cook Signed-off-by: James Morris security/yama/yama_lsm.c | 1 + 1 file changed, 1 insertion(+) commit 8bf93f2476cede84e6d7e7de5da9a55aeb196f9e Merge: 6b5e38d 3c19d23 Author: Zhang Rui Date: Mon Aug 3 23:11:25 2015 +0800 Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal into for-rc commit 6b5e38dccd2c72b62c57681861ba3594117d993e Author: Krzysztof Kozlowski Date: Fri Jul 10 15:35:00 2015 +0900 thermal: 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: Zhang Rui drivers/thermal/hisi_thermal.c | 1 - 1 file changed, 1 deletion(-) commit c93e64e91248becd0edb8f01723dff9da890e2ab Author: Alan Stern Date: Fri Jan 16 11:32:51 2015 -0500 usb: udc: core: add device_del() call to error pathway This patch fixes a bug in the error pathway of usb_add_gadget_udc_release() in udc-core.c. If the udc registration fails, the gadget registration is not fully undone; there's a put_device(&gadget->dev) call but no device_del(). CC: Acked-by: Peter Chen Signed-off-by: Alan Stern Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/udc-core.c | 1 + 1 file changed, 1 insertion(+) commit e13c42ecbe580509451e021ba2586871e5b47640 Author: Vineet Gupta Date: Mon Aug 3 15:37:24 2015 +0530 ARCv2: Fix the peripheral address space detection With HS 2.1 release, the peripheral space register no longer contains the uncached space specifics, causing the kernel to panic early on. So read the newer NON VOLATILE AUX register to get that info. Signed-off-by: Vineet Gupta arch/arc/include/asm/arcregs.h | 7 +++---- arch/arc/kernel/setup.c | 8 +++++++- 2 files changed, 10 insertions(+), 5 deletions(-) commit a4504755e7dc8d43ed2a934397032691cd03adf7 Author: James Cowgill Date: Wed Jun 17 17:12:50 2015 +0100 MIPS: Replace add and sub instructions in relocate_kernel.S with addiu Fixes the assembler errors generated when compiling a MIPS R6 kernel with CONFIG_KEXEC on, by replacing the offending add and sub instructions with addiu instructions. Build errors: arch/mips/kernel/relocate_kernel.S: Assembler messages: arch/mips/kernel/relocate_kernel.S:27: Error: invalid operands `dadd $16,$16,8' arch/mips/kernel/relocate_kernel.S:64: Error: invalid operands `dadd $20,$20,8' arch/mips/kernel/relocate_kernel.S:65: Error: invalid operands `dadd $18,$18,8' arch/mips/kernel/relocate_kernel.S:66: Error: invalid operands `dsub $22,$22,1' scripts/Makefile.build:294: recipe for target 'arch/mips/kernel/relocate_kernel.o' failed Signed-off-by: James Cowgill Cc: # 4.0+ Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10558/ Signed-off-by: Ralf Baechle arch/mips/kernel/relocate_kernel.S | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 3aff47c062b944a5e1f9af56a37a23f5295628fc Author: James Hogan Date: Fri Jul 31 16:29:38 2015 +0100 MIPS: Flush RPS on kernel entry with EVA When EVA is enabled, flush the Return Prediction Stack (RPS) present on some MIPS cores on entry to the kernel from user mode. This is important specifically for interAptiv with EVA enabled, otherwise kernel mode RPS mispredicts may trigger speculative fetches of user return addresses, which may be sensitive in the kernel address space due to EVA's overlapping user/kernel address spaces. Signed-off-by: James Hogan Cc: Ralf Baechle Cc: Markos Chandras Cc: Leonid Yegoshin Cc: linux-mips@linux-mips.org Cc: # 3.15.x- Patchwork: https://patchwork.linux-mips.org/patch/10812/ Signed-off-by: Ralf Baechle arch/mips/include/asm/stackframe.h | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) commit 741e3b9902d11585e18bfc7f8d47e913616bb070 Author: Larry Finger Date: Sun Aug 2 13:24:13 2015 -0500 rtlwifi: rtl8723be: Add module parameter for MSI interrupts The driver code allows for the disabling of MSI interrupts; however the module_parm line was missed and the option fails to show with modinfo. Signed-off-by: Larry Finger Cc: Stable [3.15+] Signed-off-by: Kalle Valo drivers/net/wireless/rtlwifi/rtl8723be/sw.c | 1 + 1 file changed, 1 insertion(+) commit 247bfb65d731350093f5d1a0a8b3d65e49c17baa Author: Florian Fainelli Date: Tue Jul 28 19:24:24 2015 -0700 Revert "MIPS: BCM63xx: Provide a plat_post_dma_flush hook" This reverts commit 3cf29543413207d3ab1c3f62a88c09bb46f2264e ("MIPS: BCM63xx: Provide a plat_post_dma_flush hook") since this commit was found to prevent BCM6358 (early BMIPS4350 cores) and some BCM6368 (BMIPS4380 cores) from booting reliably. Alvaro was able to track this down to an issue specifically located to devices that use the second thread (TP1) when booting. Since BCM63xx did not have a need for plat_post_dma_flush() hook before, let's just keep things the way they were. Reported-by: Álvaro Fernández Rojas Reported-by: Jonas Gorski Signed-off-by: Florian Fainelli Cc: stable@vger.kernel.org Cc: Kevin Cernekee Cc: Nicolas Schichan Cc: linux-mips@linux-mips.org Cc: blogic@openwrt.org Cc: noltari@gmail.com Cc: jogo@openwrt.org Cc: Florian Fainelli Cc: stable@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/10804/ Signed-off-by: Ralf Baechle arch/mips/include/asm/mach-bcm63xx/dma-coherence.h | 10 ---------- 1 file changed, 10 deletions(-) commit 8ec7cfce3762299ae289c384e281b2f4010ae231 Author: Tomer Barletz Date: Sun Aug 2 02:08:57 2015 -0700 ALSA: oxygen: Fix logical-not-parentheses warning This fixes the following warning, that is seen with gcc 5.1: warning: logical not is only applied to the left hand side of comparison [-Wlogical-not-parentheses]. Signed-off-by: Tomer Barletz Signed-off-by: Takashi Iwai sound/pci/oxygen/oxygen_mixer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3592bb08fb2da21157bc2837c4c9a951b84d0c7a Author: Kevin Cernekee Date: Tue Apr 28 10:52:50 2015 -0700 MIPS: BMIPS: Delete unused Kconfig symbol This was left over from an earlier iteration of the BMIPS irqchip changes. It doesn't actually have an effect, so let's nuke it. Reported-by: Valentin Rothberg Signed-off-by: Kevin Cernekee Acked-by: Florian Fainelli Cc: stable@vger.kernel.org # v4.1+ Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/9910/ Signed-off-by: Ralf Baechle arch/mips/Kconfig | 1 - 1 file changed, 1 deletion(-) commit 0cb0985f57783c2f3c6c8ffe7e7665e80c56bd92 Author: Felix Fietkau Date: Thu Jul 23 18:59:52 2015 +0200 MIPS: Export get_c0_perfcount_int() get_c0_perfcount_int is tested from oprofile code. If oprofile is compiled as module, get_c0_perfcount_int needs to be exported, otherwise it cannot be resolved. Fixes: a669efc4a3b4 ("MIPS: Add hook to get C0 performance counter interrupt") Cc: stable@vger.kernel.org # v3.19+ Signed-off-by: Felix Fietkau Cc: linux-mips@linux-mips.org Cc: abrestic@chromium.org Patchwork: https://patchwork.linux-mips.org/patch/10763/ Signed-off-by: Ralf Baechle arch/mips/ath79/setup.c | 1 + arch/mips/lantiq/irq.c | 1 + arch/mips/mti-malta/malta-time.c | 1 + arch/mips/mti-sead3/sead3-time.c | 1 + arch/mips/pistachio/time.c | 1 + arch/mips/ralink/irq.c | 1 + 6 files changed, 6 insertions(+) commit 1e77863a51698c4319587df34171bd823691a66a Author: James Hogan Date: Mon Jul 27 13:50:22 2015 +0100 MIPS: show_stack: Fix stack trace with EVA The show_stack() function deals exclusively with kernel contexts, but if it gets called in user context with EVA enabled, show_stacktrace() will attempt to access the stack using EVA accesses, which will either read other user mapped data, or more likely cause an exception which will be handled by __get_user(). This is easily reproduced using SysRq t to show all task states, which results in the following stack dump output: Stack : (Bad stack address) Fix by setting the current user access mode to kernel around the call to show_stacktrace(). This causes __get_user() to use normal loads to read the kernel stack. Now we get the correct output, like this: Stack : 00000000 80168960 00000000 004a0000 00000000 00000000 8060016c 1f3abd0c 1f172cd8 8056f09c 7ff1e450 8014fc3c 00000001 806dd0b0 0000001d 00000002 1f17c6a0 1f17c804 1f17c6a0 8066f6e0 00000000 0000000a 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0110e800 1f3abd6c 1f17c6a0 ... Signed-off-by: James Hogan Cc: Markos Chandras Cc: Leonid Yegoshin Cc: linux-mips@linux-mips.org Cc: # 3.15+ Patchwork: https://patchwork.linux-mips.org/patch/10778/ Signed-off-by: Ralf Baechle arch/mips/kernel/traps.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 55c723e181ccec30fb5c672397fe69ec35967d97 Author: James Hogan Date: Mon Jul 27 13:50:21 2015 +0100 MIPS: do_mcheck: Fix kernel code dump with EVA If a machine check exception is raised in kernel mode, user context, with EVA enabled, then the do_mcheck handler will attempt to read the code around the EPC using EVA load instructions, i.e. as if the reads were from user mode. This will either read random user data if the process has anything mapped at the same address, or it will cause an exception which is handled by __get_user, resulting in this output: Code: (Bad address in epc) Fix by setting the current user access mode to kernel if the saved register context indicates the exception was taken in kernel mode. This causes __get_user to use normal loads to read the kernel code. Signed-off-by: James Hogan Cc: Markos Chandras Cc: Leonid Yegoshin Cc: linux-mips@linux-mips.org Cc: # 3.15+ Patchwork: https://patchwork.linux-mips.org/patch/10777/ Signed-off-by: Ralf Baechle arch/mips/kernel/traps.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 4ace6139bf23ab4f152ba4207fc10b76cc01d2a5 Author: Alex Smith Date: Fri Jul 24 16:57:49 2015 +0100 MIPS: SMP: Don't increment irq_count multiple times for call function IPIs The majority of SMP platforms handle their IPIs through do_IRQ() which calls irq_{enter/exit}(). When a call function IPI is received, smp_call_function_interrupt() is called which also calls irq_{enter,exit}(), meaning irq_count is raised twice. When tick broadcasting is used (which is implemented via a call function IPI), this incorrectly causes all CPU idle time on the core receiving broadcast ticks to be accounted as time spent servicing IRQs, as account_process_tick() will account as such if irq_count is greater than 1. This results in 100% CPU usage being reported on a core which receives its ticks via broadcast. This patch removes the SMP smp_call_function_interrupt() wrapper which calls irq_{enter,exit}(). Platforms which handle their IPIs through do_IRQ() now call generic_smp_call_function_interrupt() directly to avoid incrementing irq_count a second time. Platforms which don't (loongson, sgi-ip27, sibyte) call generic_smp_call_function_interrupt() wrapped in irq_{enter,exit}(). Signed-off-by: Alex Smith Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10770/ Signed-off-by: Ralf Baechle arch/mips/cavium-octeon/smp.c | 2 +- arch/mips/include/asm/smp.h | 2 -- arch/mips/kernel/smp-bmips.c | 4 ++-- arch/mips/kernel/smp.c | 10 ---------- arch/mips/lantiq/irq.c | 2 +- arch/mips/loongson64/loongson-3/smp.c | 7 +++++-- arch/mips/mti-malta/malta-int.c | 2 +- arch/mips/netlogic/common/smp.c | 2 +- arch/mips/paravirt/paravirt-smp.c | 2 +- arch/mips/pmcs-msp71xx/msp_smp.c | 2 +- arch/mips/sgi-ip27/ip27-irq.c | 8 ++++++-- arch/mips/sibyte/bcm1480/smp.c | 9 +++++---- arch/mips/sibyte/sb1250/smp.c | 7 +++++-- drivers/irqchip/irq-mips-gic.c | 2 +- 14 files changed, 30 insertions(+), 31 deletions(-) commit 55fdcb2d56b6edc027657fde9da0c4f224d32303 Author: Ralf Baechle Date: Thu Jul 23 11:10:59 2015 +0200 MIPS: Partially disable RIXI support. Execution of break instruction, trap instructions, emulation of unaligned loads or floating point instructions - anything that tries to read the instruction's opcode from userspace - needs read access to a page. RIXI (Read Inhibit / Execute Inhibit) support however allows the creation of pags that are executable but not readable. On such a mapping the attempted load of the opcode by the kernel is going to cause an endless loop of page faults. The quick workaround for this is to disable the combinations that the kernel currently isn't able to handle which are executable mappings. Signed-off-by: Ralf Baechle arch/mips/mm/cache.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit e070dab73523bcbf2409ba8b5c342d53bccc0959 Author: Ralf Baechle Date: Thu Jul 23 11:10:38 2015 +0200 MIPS: Handle page faults of executable but unreadable pages correctly. Without this we end taking execeptions in an endless loop hanging the thread. Signed-off-by: Ralf Baechle arch/mips/mm/fault.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 106eccb4d20f35ebc58ff2286c170d9e79c5ff68 Author: James Hogan Date: Fri Jul 17 15:54:41 2015 +0100 MIPS: Malta: Don't reinitialise RTC On Malta, since commit a87ea88d8f6c ("MIPS: Malta: initialise the RTC at boot"), the RTC is reinitialised and forced into binary coded decimal (BCD) mode during init, even if the bootloader has already initialised it, and may even have already put it into binary mode (as YAMON does). This corrupts the current time, can result in the RTC seconds being an invalid BCD (e.g. 0x1a..0x1f) for up to 6 seconds, as well as confusing YAMON for a while after reset, enough for it to report timeouts when attempting to load from TFTP (it actually uses the RTC in that code). Therefore only initialise the RTC to the extent that is necessary so that Linux avoids interfering with the bootloader setup, while also allowing it to estimate the CPU frequency without hanging, without a bootloader necessarily having done anything with the RTC (for example when the kernel is loaded via EJTAG). The divider control is configured for a 32KHZ reference clock if necessary, and the SET bit of the RTC_CONTROL register is cleared if necessary without changing any other bits (this bit will be set when coming out of reset if the battery has been disconnected). Fixes: a87ea88d8f6c ("MIPS: Malta: initialise the RTC at boot") Signed-off-by: James Hogan Reviewed-by: Paul Burton Cc: Ralf Baechle Cc: Maciej W. Rozycki Cc: linux-mips@linux-mips.org Cc: # 3.14+ Patchwork: https://patchwork.linux-mips.org/patch/10739/ Signed-off-by: Ralf Baechle arch/mips/mti-malta/malta-time.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) commit 531a6d599f4304156236ebdd531aaa80be61868d Author: James Cowgill Date: Tue Jun 23 12:02:00 2015 +0100 MIPS: unaligned: Fix build error on big endian R6 kernels Commit eeb538950367 ("MIPS: unaligned: Prevent EVA instructions on kernel unaligned accesses") renamed the Load* and Store* defines in unaligned.c to _Load* and _Store* as part of its fix. One define was missed out which causes big endian R6 kernels to fail to build. arch/mips/kernel/unaligned.c:880:35: error: implicit declaration of function '_StoreDW' #define StoreDW(addr, value, res) _StoreDW(addr, value, res) ^ Signed-off-by: James Cowgill Fixes: eeb538950367 ("MIPS: unaligned: Prevent EVA instructions on kernel unaligned accesses") Cc: Markos Chandras Cc: # 4.0+ Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10575/ Signed-off-by: Ralf Baechle arch/mips/kernel/unaligned.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1d62d737555e1378eb62a8bba26644f7d97139d2 Author: Felix Fietkau Date: Sun Jul 19 00:38:41 2015 +0200 MIPS: Fix sched_getaffinity with MT FPAFF enabled p->thread.user_cpus_allowed is zero-initialized and is only filled on the first sched_setaffinity call. To avoid adding overhead in the task initialization codepath, simply OR the returned mask in sched_getaffinity with p->cpus_allowed. Cc: stable@vger.kernel.org Signed-off-by: Felix Fietkau Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10740/ Signed-off-by: Ralf Baechle arch/mips/kernel/mips-mt-fpaff.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit d3557d96163d7d8250549a438232c5dd62d96959 Author: Jonas Gorski Date: Sun Jul 19 14:42:49 2015 +0200 MIPS: Fix build with CONFIG_OF=y for non OF-enabled targets Commit 01306aeadd75 ("MIPS: prepare for user enabling of CONFIG_OF") changed the guards in asm/prom.h from CONFIG_OF to CONFIG_USE_OF, but missed the actual function declarations in kernel/prom.c, which have additional dependencies. Fixes the following build error: CC arch/mips/kernel/prom.o arch/mips/kernel/prom.c: In function '__dt_setup_arch': arch/mips/kernel/prom.c:54:2: error: implicit declaration of function 'early_init_dt_scan' [-Werror=implicit-function-declaration] if (!early_init_dt_scan(bph)) ^ Fixes: 01306aeadd75 ("MIPS: prepare for user enabling of CONFIG_OF") Signed-off-by: Jonas Gorski Acked-by: Rob Herring Cc: linux-mips@linux-mips.org Cc: devicetree@vger.kernel.org Cc: Grant Likely Patchwork: https://patchwork.linux-mips.org/patch/10741/ Signed-off-by: Ralf Baechle arch/mips/kernel/prom.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9b2b6f7f357d9a2473017295bb26ff907e149d34 Author: Ralf Baechle Date: Sun Jul 19 23:27:50 2015 +0200 CPUFREQ: Loongson2: Fix broken build due to incorrect include. 71eeedcf51544831ae356a773814401143ed32d4 (MIPS: Lemote 2F: Fix build caused by recent mass rename.) only fixed one instance of this issue in arch/mips but missed a 2nd one in drivers/cpufreq/loongson2_cpufreq.c. [ralf@linux-mips.org: dropped the one segment for the already fixed instance and changed the other avoiding an include without a / because that's generally is a bad idea.] Signed-off-by: Ralf Baechle Acked-by: Viresh Kumar Patchwork: https://patchwork.linux-mips.org/patch/10659/ drivers/cpufreq/loongson2_cpufreq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 49895bcc7e566ba455eb2996607d6fbd3447ce16 Author: NeilBrown Date: Mon Aug 3 17:09:57 2015 +1000 md/raid5: don't let shrink_slab shrink too far. I have a report of drop_one_stripe() called from raid5_cache_scan() apparently finding ->max_nr_stripes == 0. This should not be allowed. So add a test to keep max_nr_stripes above min_nr_stripes. Also use a 'mask' rather than a 'mod' in drop_one_stripe to ensure 'hash' is valid even if max_nr_stripes does reach zero. Fixes: edbe83ab4c27 ("md/raid5: allow the stripe_cache to grow and shrink.") Cc: stable@vger.kernel.org (4.1 - please release with 2d5b569b665) Reported-by: Tomas Papan Signed-off-by: NeilBrown drivers/md/raid5.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 9c395170a559d3b23dad100b01fc4a89d661c698 Author: Roland Dreier Date: Fri Jul 24 12:11:46 2015 -0700 target: REPORT LUNS should return LUN 0 even for dynamic ACLs If an initiator doesn't have any real LUNs assigned, we should report LUN 0 and a LUN list length of 1. Some versions of Solaris at least go beserk if we report a LUN list length of 0. Signed-off-by: Roland Dreier Cc: # v3.1+ Signed-off-by: Nicholas Bellinger drivers/target/target_core_spc.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) commit b6878d9e03043695dbf3fa1caa6dfc09db225b16 Author: Benjamin Randazzo Date: Sat Jul 25 16:36:50 2015 +0200 md: use kzalloc() when bitmap is disabled In drivers/md/md.c get_bitmap_file() uses kmalloc() for creating a mdu_bitmap_file_t called "file". 5769 file = kmalloc(sizeof(*file), GFP_NOIO); 5770 if (!file) 5771 return -ENOMEM; This structure is copied to user space at the end of the function. 5786 if (err == 0 && 5787 copy_to_user(arg, file, sizeof(*file))) 5788 err = -EFAULT But if bitmap is disabled only the first byte of "file" is initialized with zero, so it's possible to read some bytes (up to 4095) of kernel space memory from user space. This is an information leak. 5775 /* bitmap disabled, zero the first byte and copy out */ 5776 if (!mddev->bitmap_info.file) 5777 file->pathname[0] = '\0'; Signed-off-by: Benjamin Randazzo Signed-off-by: NeilBrown drivers/md/md.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3c19d237dd8148926e49259e495ee41dddd1f09c Author: Chanwoo Choi Date: Thu Jul 2 15:40:01 2015 +0900 thermal: exynos: Remove unused code related to platform_data on probe() This patch removes the unused code related to struct exynos_tmu_platform_data because exynos_tmu_probe() don't handle the struct exynos_tmu_platform_data *pdata. Test HW: Exynos4412 - Trats2 board Cc: Zhang Rui Cc: Eduardo Valentin Cc: Lukasz Majewski Signed-off-by: Chanwoo Choi Signed-off-by: Lukasz Majewski Tested-by: Lukasz Majewski Signed-off-by: Eduardo Valentin drivers/thermal/samsung/exynos_tmu.c | 3 --- 1 file changed, 3 deletions(-) commit f87e6bd3f7401ee3c04248d8ea2dc32883a1f8fb Author: Chanwoo Choi Date: Thu Jul 2 15:40:00 2015 +0900 thermal: exynos: Add the dependency of CONFIG_THERMAL_OF instead of CONFIG_OF The exynos thermal driver use the of_thermal_*() API to parse the basic data for thermal management from devicetree file. So, if CONFIG_EXYNOS_THERMAL is selected without CONFIG_THERMAL_OF, kernel can build it without any problem. But, exynos thermal driver is not working with following error log. This patch add the dependency of CONFIG_THERMAL_OF instead of CONFIG_OF. [ 1.458644] get_th_reg: Cannot get trip points from of-thermal.c! [ 1.459096] get_th_reg: Cannot get trip points from of-thermal.c! [ 1.465211] exynos4412_tmu_initialize: No CRITICAL trip point defined at of-thermal.c! Cc: Zhang Rui Cc: Eduardo Valentin Cc: Lukasz Majewski Signed-off-by: Chanwoo Choi Signed-off-by: Lukasz Majewski Signed-off-by: Eduardo Valentin drivers/thermal/samsung/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5f09a5cbd14ae16e93866040fa44d930ff885650 Author: Krzysztof Kozlowski Date: Mon Jun 8 10:35:49 2015 +0900 thermal: exynos: Disable the regulator on probe failure During probe the regulator (if present) was enabled but not disabled in case of failure. So an unsuccessful probe lead to enabling the regulator which was actually not needed because the device was not enabled. Additionally each deferred probe lead to increase of regulator enable count so it would not be effectively disabled during removal of the device. Test HW: Exynos4412 - Trats2 board Signed-off-by: Krzysztof Kozlowski Fixes: 498d22f616f6 ("thermal: exynos: Support for TMU regulator defined at device tree") Cc: Reviewed-by: Javier Martinez Canillas Signed-off-by: Lukasz Majewski Tested-by: Lukasz Majewski Signed-off-by: Eduardo Valentin drivers/thermal/samsung/exynos_tmu.c | 2 ++ 1 file changed, 2 insertions(+) commit d5f831090191fa26a539e12456af64547ab11dde Author: Javi Merino Date: Fri Jul 3 10:24:33 2015 +0100 thermal: power_allocator: trace the real requested power The power allocator governor uses ftrace to output a bunch of internal data for debugging and tuning. Currently, the requested power it outputs is the "weighted" requested power, that is, what each cooling device has requested multiplied by the cooling device weight. It is more useful to trace the real request, without any weight being applied. This commit only affects the data traced, there is no functional change. Cc: Zhang Rui Cc: Eduardo Valentin Signed-off-by: Javi Merino Signed-off-by: Eduardo Valentin drivers/thermal/power_allocator.c | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) commit 528464eaa46ae1bd319882e4dd3495802e55b8c4 Author: Viresh Kumar Date: Thu Jul 23 14:32:32 2015 +0530 thermal: remove dangling 'weight_attr' device file This file isn't getting removed while we unbind a device from thermal zone. And this causes following messages when the device is registered again: WARNING: CPU: 0 PID: 2228 at /home/viresh/linux/fs/sysfs/dir.c:31 sysfs_warn_dup+0x60/0x70() sysfs: cannot create duplicate filename '/devices/virtual/thermal/thermal_zone0/cdev0_weight' Modules linked in: cpufreq_dt(+) [last unloaded: cpufreq_dt] CPU: 0 PID: 2228 Comm: insmod Not tainted 4.2.0-rc3-00059-g44fffd9473eb #272 Hardware name: SAMSUNG EXYNOS (Flattened Device Tree) [] (unwind_backtrace) from [] (show_stack+0x10/0x14) [] (show_stack) from [] (dump_stack+0x84/0xc4) [] (dump_stack) from [] (warn_slowpath_common+0x80/0xb0) [] (warn_slowpath_common) from [] (warn_slowpath_fmt+0x30/0x40) [] (warn_slowpath_fmt) from [] (sysfs_warn_dup+0x60/0x70) [] (sysfs_warn_dup) from [] (sysfs_add_file_mode_ns+0x13c/0x190) [] (sysfs_add_file_mode_ns) from [] (sysfs_create_file_ns+0x3c/0x48) [] (sysfs_create_file_ns) from [] (thermal_zone_bind_cooling_device+0x260/0x358) [] (thermal_zone_bind_cooling_device) from [] (of_thermal_bind+0x88/0xb4) [] (of_thermal_bind) from [] (__thermal_cooling_device_register+0x17c/0x2e0) [] (__thermal_cooling_device_register) from [] (__cpufreq_cooling_register+0x3a0/0x51c) [] (__cpufreq_cooling_register) from [] (cpufreq_ready+0x44/0x88 [cpufreq_dt]) [] (cpufreq_ready [cpufreq_dt]) from [] (cpufreq_add_dev+0x4a0/0x7dc) [] (cpufreq_add_dev) from [] (subsys_interface_register+0x94/0xd8) [] (subsys_interface_register) from [] (cpufreq_register_driver+0x10c/0x1f0) [] (cpufreq_register_driver) from [] (dt_cpufreq_probe+0x60/0x8c [cpufreq_dt]) [] (dt_cpufreq_probe [cpufreq_dt]) from [] (platform_drv_probe+0x44/0xa4) [] (platform_drv_probe) from [] (driver_probe_device+0x174/0x2b4) [] (driver_probe_device) from [] (__driver_attach+0x8c/0x90) [] (__driver_attach) from [] (bus_for_each_dev+0x68/0x9c) [] (bus_for_each_dev) from [] (bus_add_driver+0x19c/0x214) [] (bus_add_driver) from [] (driver_register+0x78/0xf8) [] (driver_register) from [] (do_one_initcall+0x8c/0x1d4) [] (do_one_initcall) from [] (do_init_module+0x5c/0x1b8) [] (do_init_module) from [] (load_module+0xd34/0xed8) [] (load_module) from [] (SyS_init_module+0xd0/0x120) [] (SyS_init_module) from [] (ret_fast_syscall+0x0/0x3c) ---[ end trace 3be0e7b7dc6e3c4f ]--- Fixes: db91651311c8 ("thermal: export weight to sysfs") Acked-by: Javi Merino Signed-off-by: Viresh Kumar Signed-off-by: Eduardo Valentin drivers/thermal/thermal_core.c | 1 + 1 file changed, 1 insertion(+) commit 423f04d63cf421ea436bcc5be02543d549ce4b28 Author: NeilBrown Date: Mon Jul 27 11:48:52 2015 +1000 md/raid1: extend spinlock to protect raid1_end_read_request against inconsistencies raid1_end_read_request() assumes that the In_sync bits are consistent with the ->degaded count. raid1_spare_active updates the In_sync bit before the ->degraded count and so exposes an inconsistency, as does error() So extend the spinlock in raid1_spare_active() and error() to hide those inconsistencies. This should probably be part of Commit: 34cab6f42003 ("md/raid1: fix test for 'was read error from last working device'.") as it addresses the same issue. It fixes the same bug and should go to -stable for same reasons. Fixes: 76073054c95b ("md/raid1: clean up read_balance.") Cc: stable@vger.kernel.org (v3.0+) Signed-off-by: NeilBrown drivers/md/raid1.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit 74d33293e467df61de1b1d8b2fbe29e550dec33b Author: Linus Torvalds Date: Sun Aug 2 18:34:55 2015 -0700 Linux 4.2-rc5 Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d08c31812e5ce5867ff0fe1da68d6c375984a597 Merge: 27667f4 b8d65e9 Author: Linus Torvalds Date: Sun Aug 2 18:07:36 2015 -0700 Merge tag 'powerpc-4.2-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux Pull powerpc fixes from Michael Ellerman: - TCE table memory calculation fix from Alexey - Build fix for ans-lcd from Luis - Unbalanced IRQ warning fix from Alistair * tag 'powerpc-4.2-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: powerpc/eeh-powernv: Fix unbalanced IRQ warning macintosh/ans-lcd: fix build failure after module_init/exit relocation powerpc/powernv/ioda2: Fix calculation for memory allocated for TCE table commit 3d0e0af40672a0bf16ca0f0591165535138c1f30 Author: Eric Dumazet Date: Fri Jul 31 17:53:39 2015 -0700 fq_codel: explicitly reset flows in ->reset() Alex reported the following crash when using fq_codel with htb: crash> bt PID: 630839 TASK: ffff8823c990d280 CPU: 14 COMMAND: "tc" [... snip ...] #8 [ffff8820ceec17a0] page_fault at ffffffff8160a8c2 [exception RIP: htb_qlen_notify+24] RIP: ffffffffa0841718 RSP: ffff8820ceec1858 RFLAGS: 00010282 RAX: 0000000000000000 RBX: 0000000000000000 RCX: ffff88241747b400 RDX: ffff88241747b408 RSI: 0000000000000000 RDI: ffff8811fb27d000 RBP: ffff8820ceec1868 R8: ffff88120cdeff24 R9: ffff88120cdeff30 R10: 0000000000000bd4 R11: ffffffffa0840919 R12: ffffffffa0843340 R13: 0000000000000000 R14: 0000000000000001 R15: ffff8808dae5c2e8 ORIG_RAX: ffffffffffffffff CS: 0010 SS: 0018 #9 [...] qdisc_tree_decrease_qlen at ffffffff81565375 #10 [...] fq_codel_dequeue at ffffffffa084e0a0 [sch_fq_codel] #11 [...] fq_codel_reset at ffffffffa084e2f8 [sch_fq_codel] #12 [...] qdisc_destroy at ffffffff81560d2d #13 [...] htb_destroy_class at ffffffffa08408f8 [sch_htb] #14 [...] htb_put at ffffffffa084095c [sch_htb] #15 [...] tc_ctl_tclass at ffffffff815645a3 #16 [...] rtnetlink_rcv_msg at ffffffff81552cb0 [... snip ...] As Jamal pointed out, there is actually no need to call dequeue to purge the queued skb's in reset, data structures can be just reset explicitly. Therefore, we reset everything except config's and stats, so that we would have a fresh start after device flipping. Fixes: 4b549a2ef4be ("fq_codel: Fair Queue Codel AQM") Reported-by: Alex Gartrell Cc: Alex Gartrell Cc: Jamal Hadi Salim Signed-off-by: Eric Dumazet [xiyou.wangcong@gmail.com: added codel_vars_init() and qdisc_qstats_backlog_dec()] Signed-off-by: Cong Wang Signed-off-by: David S. Miller net/sched/sch_fq_codel.c | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) commit 1ebd47efa4e17391dfac8caa349c6a8d35f996d1 Author: Ido Schimmel Date: Sun Aug 2 19:29:16 2015 +0200 rocker: free netdevice during netdevice removal When removing a port's netdevice in 'rocker_remove_ports', we should also free the allocated 'net_device' structure. Do that by calling 'free_netdev' after unregistering it. Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Fixes: 4b8ac9660af ("rocker: introduce rocker switch driver") Acked-by: Scott Feldman Signed-off-by: David S. Miller drivers/net/ethernet/rocker/rocker.c | 1 + 1 file changed, 1 insertion(+) commit 27667f4744fc5a0f3e50910e78740bac5670d18b Author: Linus Torvalds Date: Wed Jul 29 22:18:16 2015 -0700 i915: temporary fix for DP MST docking station NULL pointer dereference Ted Ts'o reports that his Lenovo T540p ThinkPad crashes at boot if attached to the docking station. This is a regression that he was able to bisect to commit 8c7b5ccb7298: "drm/i915: Use atomic helpers for computing changed flags:" The reason seems to be the new call to drm_atomic_helper_check_modeset() added to intel_modeset_compute_config(), which in turn calls update_connector_routing(), and somehow ends up picking a NULL crtc for the connector state, causing the subsequent drm_crtc_index() to OOPS. Daniel Vetter says that the fundamental issue seems to be confusion in the encoder selection, and this isn't the right fix, but while he chases down the proper fix, this at least avoids the NULL pointer dereference and makes Ted's docking station work again. Reported-bisected-and-tested-by: Theodore Ts'o Cc: Daniel Vetter Cc: Mani Nikula Cc: Dave Airlie Signed-off-by: Linus Torvalds drivers/gpu/drm/drm_atomic_helper.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit d4edea40389d6646c760aa166103caa1f32298ed Merge: 30c7b56 0c958ec Author: Linus Torvalds Date: Sun Aug 2 09:36:21 2015 -0700 Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi Pull SCSI fixes from James Bottomley: "A set of three fixes for the ipr driver and one fairly major one for memory leaks in the mq path of SCSI" * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: scsi: fix memory leak with scsi-mq ipr: Fix invalid array indexing for HRRQ ipr: Fix incorrect trace indexing ipr: Fix locking for unit attention handling commit 30c7b56d63fc717bd0aa74da6e3cf354f2ed3b3e Merge: 0118360 c1bfa98 Author: Linus Torvalds Date: Sun Aug 2 09:12:46 2015 -0700 Merge tag 'armsoc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Pull ARM SoC fixes from Olof Johansson: "Things are calming down nicely here w.r.t. fixes. This batch includes two week's worth since I missed to send before -rc4. Nothing particularly scary to point out, smaller fixes here and there. Shortlog describes it pretty well" * tag 'armsoc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: ARM: dts: keystone: fix dt bindings to use post div register for mainpll ARM: nomadik: disable UART0 on Nomadik boards ARM: dts: i.MX35: Fix can support. ARM: OMAP2+: hwmod: Fix _wait_target_ready() for hwmods without sysc ARM: dts: add CPU OPP and regulator supply property for exynos4210 ARM: dts: Update video-phy node with syscon phandle for exynos3250 ARM: DRA7: hwmod: fix gpmc hwmod commit 01183609ab61d11f1c310d42552a97be3051cc0f Merge: 3f6d9e0 97242f9 Author: Linus Torvalds Date: Sat Aug 1 17:42:14 2015 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs Pull VFS fix from Al Viro: "Spurious ENOTDIR fix" This should fix the problems reported by Dominique Martinet and Hugh Dickins. * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: link_path_walk(): be careful when failing with ENOTDIR commit 97242f99a013950af63effa0732f8ef7db4e31ec Author: Al Viro Date: Sat Aug 1 19:59:28 2015 -0400 link_path_walk(): be careful when failing with ENOTDIR In RCU mode we might end up with dentry evicted just we check that it's a directory. In such case we should return ECHILD rather than ENOTDIR, so that pathwalk would be retries in non-RCU mode. Breakage had been introduced in commit b18825a - prior to that we were looking at nd->inode, which had been fetched before verifying that ->d_seq was still valid. That form of check would only be satisfied if at some point the pathname prefix would indeed have resolved to a non-directory. The fix consists of checking ->d_seq after we'd run into a non-directory dentry, and failing with ECHILD in case of mismatch. Note that all branches since 3.12 have that problem... Signed-off-by: Al Viro fs/namei.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 3f6d9e0896b325c95e5155ee8e7bcb47443ad413 Merge: 3270c8e 8c8fe97 Author: Linus Torvalds Date: Sat Aug 1 12:47:04 2015 -0700 Merge tag 'dmaengine-fix-4.2-rc5' of git://git.infradead.org/users/vkoul/slave-dma Pull dmaengine fixes from Vinod Koul: "We had a regression due to reuse of descriptor so we have reverted that. The rest are driver fixes: - at_hdmac and at_xdmac for residue, trannfer width, and channel config - pl330 final fix for dma fails and overflow issue - xgene resouce map fix - mv_xor big endian op fix" * tag 'dmaengine-fix-4.2-rc5' of git://git.infradead.org/users/vkoul/slave-dma: Revert "dmaengine: virt-dma: don't always free descriptor upon completion" dmaengine: mv_xor: fix big endian operation in register mode dmaengine: xgene-dma: Fix the resource map to handle overlapping dmaengine: at_xdmac: fix transfer data width in at_xdmac_prep_slave_sg() dmaengine: at_hdmac: fix residue computation dmaengine: at_xdmac: fix bug about channel configuration dmaengine: pl330: Really fix choppy sound because of wrong residue calculation dmaengine: pl330: Fix overflow when reporting residue in memcpy commit 3270c8eacc81f000e2f5f03e36f80d6617e2f5c4 Merge: 51d2e09 b09dec2 Author: Linus Torvalds Date: Sat Aug 1 09:47:11 2015 -0700 Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull irq fixlets from Thomas Gleixner: "Just two updates to the maintainers file" * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: MAINTAINERS: Appoint Jiang and Marc as irqdomain maintainers MAINTAINERS: Appoint Marc Zyngier as irqchips co-maintainer commit 51d2e09b942892b9072ae5544f29b176c484f226 Merge: 7c764ce 37868fe Author: Linus Torvalds Date: Sat Aug 1 09:16:33 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: "Fallout from the recent NMI fixes: make x86 LDT handling more robust. Also some EFI fixes" * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/ldt: Make modify_ldt synchronous x86/xen: Probe target addresses in set_aliased_prot() before the hypercall x86/irq: Use the caller provided polarity setting in mp_check_pin_attr() efi: Check for NULL efi kernel parameters x86/efi: Use all 64 bit of efi_memmap in setup_e820() commit c934b3612747bde6c81cf10c2bbde956c6690aec Author: Roger Quadros Date: Fri Jul 17 16:47:22 2015 +0300 phy: ti-pipe3: i783 workaround for SATA lockup after dpll unlock/relock SATA_PLL_SOFT_RESET bit of CTRL_CORE_SMA_SW_0 must be toggled between a SATA DPLL unlock and re-lock to prevent SATA lockup. Introduce a new DT parameter 'syscon-pllreset' to provide the syscon regmap access to this register which sits in the control module. If the register is not provided we fallback to the old behaviour i.e. SATA DPLL refclk will not be disabled and we prevent SoC low power states. Signed-off-by: Roger Quadros Signed-off-by: Kishon Vijay Abraham I Documentation/devicetree/bindings/phy/ti-phy.txt | 16 +++++++ drivers/phy/phy-ti-pipe3.c | 61 +++++++++++++++++++++--- 2 files changed, 71 insertions(+), 6 deletions(-) commit 7167bf8b7f3f19eeea4602ccc39f26a26a636d8e Author: Hans de Goede Date: Fri Jul 31 10:01:40 2015 +0200 phy-sun4i-usb: Add missing EXPORT_SYMBOL_GPL for sun4i_usb_phy_set_squelch_detect sun4i_usb_phy_set_squelch_detect is used by other code, which may be built as a module, so it should be exported. Signed-off-by: Hans de Goede Signed-off-by: Kishon Vijay Abraham I drivers/phy/phy-sun4i-usb.c | 1 + 1 file changed, 1 insertion(+) commit e3311469734093724b10c2a81c1193197db03b78 Author: Vladimir Zapolskiy Date: Mon Jul 27 17:30:48 2015 +0300 i2c: fix leaked device refcount on of_find_i2c_* error path If of_find_i2c_device_by_node() or of_find_i2c_adapter_by_node() find a device by node, but its type does not match, a reference to that device is still held. This change fixes the problem. Signed-off-by: Vladimir Zapolskiy Signed-off-by: Wolfram Sang drivers/i2c/i2c-core.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) commit eaf7e98d43c16a827c72016ab3e452d74ac2591c Merge: cbfe8fa f7a8981 Author: Greg Kroah-Hartman Date: Fri Jul 31 17:20:52 2015 -0700 Merge tag 'extcon-fixes-for-4.2-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/chanwoo/extcon into char-misc-linus Chanwoo writes: Update extcon for v4.2-rc5 This patchset fix the following two issue: - Fix hang issue when using the extcon_[get|set]_cable_state() because these functions use the cable index instead of cable id. - Fix NULL pointer error of extcon-palmas.c by removing unneeded kfree() call. commit 7c764cec3703583247c4ab837c652975a3d41f4b Merge: acea568 ea11154 Author: Linus Torvalds Date: Fri Jul 31 17:10:56 2015 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Pull networking fixes from David Miller: 1) Must teardown SR-IOV before unregistering netdev in igb driver, from Alex Williamson. 2) Fix ipv6 route unreachable crash in IPVS, from Alex Gartrell. 3) Default route selection in ipv4 should take the prefix length, table ID, and TOS into account, from Julian Anastasov. 4) sch_plug must have a reset method in order to purge all buffered packets when the qdisc is reset, likewise for sch_choke, from WANG Cong. 5) Fix deadlock and races in slave_changelink/br_setport in bridging. From Nikolay Aleksandrov. 6) mlx4 bug fixes (wrong index in port even propagation to VFs, overzealous BUG_ON assertion, etc.) from Ido Shamay, Jack Morgenstein, and Or Gerlitz. 7) Turn off klog message about SCTP userspace interface compat that makes no sense at all, from Daniel Borkmann. 8) Fix unbounded restarts of inet frag eviction process, causing NMI watchdog soft lockup messages, from Florian Westphal. 9) Suspend/resume fixes for r8152 from Hayes Wang. 10) Fix busy loop when MSG_WAITALL|MSG_PEEK is used in TCP recv, from Sabrina Dubroca. 11) Fix performance regression when removing a lot of routes from the ipv4 routing tables, from Alexander Duyck. 12) Fix device leak in AF_PACKET, from Lars Westerhoff. 13) AF_PACKET also has a header length comparison bug due to signedness, from Alexander Drozdov. 14) Fix bug in EBPF tail call generation on x86, from Daniel Borkmann. 15) Memory leaks, TSO stats, watchdog timeout and other fixes to thunderx driver from Sunil Goutham and Thanneeru Srinivasulu. 16) act_bpf can leak memory when replacing programs, from Daniel Borkmann. 17) WOL packet fixes in gianfar driver, from Claudiu Manoil. * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (79 commits) stmmac: fix missing MODULE_LICENSE in stmmac_platform gianfar: Enable device wakeup when appropriate gianfar: Fix suspend/resume for wol magic packet gianfar: Fix warning when CONFIG_PM off act_pedit: check binding before calling tcf_hash_release() net: sk_clone_lock() should only do get_net() if the parent is not a kernel socket net: sched: fix refcount imbalance in actions r8152: reset device when tx timeout r8152: add pre_reset and post_reset qlcnic: Fix corruption while copying act_bpf: fix memory leaks when replacing bpf programs net: thunderx: Fix for crash while BGX teardown net: thunderx: Add PCI driver shutdown routine net: thunderx: Fix crash when changing rss with mutliple traffic flows net: thunderx: Set watchdog timeout value net: thunderx: Wakeup TXQ only if CQE_TX are processed net: thunderx: Suppress alloc_pages() failure warnings net: thunderx: Fix TSO packet statistic net: thunderx: Fix memory leak when changing queue count net: thunderx: Fix RQ_DROP miscalculation ... commit acea568fa9eaeffbf949d15b2f7c9c346e16aae3 Merge: c6fd4fc 00d80e3 Author: Linus Torvalds Date: Fri Jul 31 17:05:37 2015 -0700 Merge branch 'for-linus-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs Pull btrfs fixes from Chris Mason: "Filipe fixed up a hard to trigger ENOSPC regression from our merge window pull, and we have a few other smaller fixes" * 'for-linus-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: Btrfs: fix quick exhaustion of the system array in the superblock btrfs: its btrfs_err() instead of btrfs_error() btrfs: Avoid NULL pointer dereference of free_extent_buffer when read_tree_block() fail btrfs: Fix lockdep warning of btrfs_run_delayed_iputs() commit c6fd4fc708306b7d7187c324ea0a889eda411ebb Merge: 5e49e0b 649ccd0 Author: Linus Torvalds Date: Fri Jul 31 17:00:25 2015 -0700 Merge tag 'sound-4.2-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound Pull sound fixes from Takashi Iwai: "This became a relative big update as it includes the collected ASoC fixes. There are a few fixes in ASoC core side, mostly for DAPM and the new topology API. The rest are various ASoC driver-specific fixes, as well as the usual HD-audio and USB-audio quirks" * tag 'sound-4.2-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (29 commits) ALSA: hda - Fix MacBook Pro 5,2 quirk ALSA: hda - Fix race between PM ops and HDA init/probe ALSA: usb-audio: add dB range mapping for some devices ALSA: hda - Apply a fixup to Dell Vostro 5480 ALSA: hda - Add pin quirk for the headset mic jack detection on Dell laptop ALSA: hda - Apply fixup for another Toshiba Satellite S50D ALSA: fireworks: add support for AudioFire2 quirk ALSA: hda - Fix the headset mic that will not work on Dell desktop machine ALSA: hda - fix cs4210_spdif_automute() ASoC: pcm1681: Fix setting de-emphasis sampling rate selection ASoC: ssm4567: Keep TDM_BCLKS in ssm4567_set_dai_fmt ASoC: sgtl5000: Fix up define for SGTL5000_SMALL_POP ASoC: dapm: Don't add prefix to widget stream name ASoC: rt5645: Check if codec is initialized in workqueue handler ASoC: Intel: Get correct usage_count value to load firmware ASoC: topology: Fix to add dapm mixer info ASoC: zx: spdif: Fix devm_ioremap_resource return value check ASoC: zx: i2s: Fix devm_ioremap_resource return value check ASoC: mediatek: Use platform_of_node for machine drivers ASoC: Free card DAPM context on snd_soc_instantiate_card() error path ... commit 40c3ef9d2f14cce91dbd6ae9c9ccf6210d8c5df7 Author: H Hartley Sweeten Date: Mon Jul 27 10:27:21 2015 -0700 staging: comedi: das1800: add missing break in switch Commit 06ad6bd8 "staging: comedi: das1800: cleanup das1800_probe()" Accidently removed the 'break' statement for case 0x8 of the switch. Add it back. Reported-by: coverity (CID 1309550) Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/das1800.c | 1 + 1 file changed, 1 insertion(+) commit ea111545843e657504193e4f726e1116b96b8141 Author: Joachim Eastwood Date: Fri Jul 31 19:13:22 2015 +0200 stmmac: fix missing MODULE_LICENSE in stmmac_platform Commit 50649ab14982 ("stmmac: drop driver from stmmac platform code") was a bit overzealous in removing code and dropped the MODULE_* macro's that are still needed since stmmac_platform can be a module. Fix this by putting the macro's remvoed in 50649ab14982 back. This fixes the following errors when used as a module: stmmac_platform: module license 'unspecified' taints kernel. Disabling lock debugging due to kernel taint stmmac_platform: Unknown symbol devm_kmalloc (err 0) stmmac_platform: Unknown symbol stmmac_suspend (err 0) stmmac_platform: Unknown symbol platform_get_irq_byname (err 0) stmmac_platform: Unknown symbol stmmac_dvr_remove (err 0) stmmac_platform: Unknown symbol platform_get_resource (err 0) stmmac_platform: Unknown symbol of_get_phy_mode (err 0) stmmac_platform: Unknown symbol of_property_read_u32_array (err 0) stmmac_platform: Unknown symbol of_alias_get_id (err 0) stmmac_platform: Unknown symbol stmmac_resume (err 0) stmmac_platform: Unknown symbol stmmac_dvr_probe (err 0) Fixes: 50649ab14982 ("stmmac: drop driver from stmmac platform code") Reported-by: Igor Gnatenko Signed-off-by: Joachim Eastwood Signed-off-by: David S. Miller drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c | 4 ++++ 1 file changed, 4 insertions(+) commit ef1f4364f62f0b9cee25a56e7af3915b41eea0a4 Merge: 5175f71 b0734b6 Author: David S. Miller Date: Fri Jul 31 15:41:50 2015 -0700 Merge branch 'gianfar-wol-fixes' Claudiu Manoil says: ==================== gianfar: wol magic packet fixes These changes were already validated as part of FSL SDK. Patch 2 fixes occasional wake-on magic packet failures during traffic, probably due to incorrect traffic stop/ device halt sequence and incorrect usage of txlock. ==================== Signed-off-by: David S. Miller commit b0734b6dc895258b74c6e7a441cb47b6b0ba3465 Author: Claudiu Manoil Date: Fri Jul 31 18:38:33 2015 +0300 gianfar: Enable device wakeup when appropriate The wol_en flag is 0 by default anyway, and we have the following inconsistency: a MAGIC packet wol capable eth interface is registered as a wake-up source but unable to wake-up the system as wol_en is 0 (wake-on flag set to 'd'). Calling set_wakeup_enable() at netdev open is just redundant because wol_en is 0 by default. Let only ethtool call set_wakeup_enable() for now. The bflock is obviously obsoleted, its utility has been corroded over time. The bitfield flags used today in gianfar are accessed only on the init/ config path, with no real possibility of concurrency - nothing that would justify smth. like bflock. Signed-off-by: Claudiu Manoil Signed-off-by: David S. Miller drivers/net/ethernet/freescale/gianfar.c | 8 ++------ drivers/net/ethernet/freescale/gianfar.h | 3 --- drivers/net/ethernet/freescale/gianfar_ethtool.c | 5 +---- 3 files changed, 3 insertions(+), 13 deletions(-) commit 614b42426cc3483e8d5bc68a158c2dd47dc831d0 Author: Claudiu Manoil Date: Fri Jul 31 18:38:32 2015 +0300 gianfar: Fix suspend/resume for wol magic packet If we disable NAPI in the first place we can mask the device's interrupts (and halt it) without fearing that imask may be concurrently accessed from interrupt context, so there's no need to do local_irq_save() around gfar_halt_nodisable(). lock_rx_qs()/unlock_tx_qs() are just obsoleted and potentially buggy routines. The txlock is currently used in the driver only to manage TX congestion, it has nothing to do with halting the device. With these changes, the TX processing is stopped before gfar_halt(). Compact gfar_halt() is used instead of gfar_halt_nodisable(), as it disables Rx/TX DMA h/w blocks and the Rx/TX h/w queues. gfar_start() re-enables all these blocks on resume. Enabling the magic-packet mode remains the same, note that the RX block is re-enabled just before entering sleep mode. Add IRQF_NO_SUSPEND flag for the error interrupt line, to signal that the interrupt line must remain active during sleep in order to wake the system by magic packet (MAG) reception interrupt. (On some systems the MAG interrupt did trigger w/o this flag as well, but on others it didn't.) Without these fixes, when suspended during fair Tx traffic the interface occasionally failed to be woken up by magic packet. Signed-off-by: Claudiu Manoil Signed-off-by: David S. Miller drivers/net/ethernet/freescale/gianfar.c | 98 ++++++++++---------------------- 1 file changed, 30 insertions(+), 68 deletions(-) commit 8486830549189b109bfd40e8d38c6dd8b8f476db Author: Claudiu Manoil Date: Fri Jul 31 18:38:31 2015 +0300 gianfar: Fix warning when CONFIG_PM off CC drivers/net/ethernet/freescale/gianfar.o drivers/net/ethernet/freescale/gianfar.c:568:13: warning: 'lock_tx_qs' defined but not used [-Wunused-function] static void lock_tx_qs(struct gfar_private *priv) ^ drivers/net/ethernet/freescale/gianfar.c:576:13: warning: 'unlock_tx_qs' defined but not used [-Wunused-function] static void unlock_tx_qs(struct gfar_private *priv) ^ Reported-by: Scott Wood Signed-off-by: Claudiu Manoil Signed-off-by: David S. Miller drivers/net/ethernet/freescale/gianfar.c | 2 ++ 1 file changed, 2 insertions(+) commit 5175f7106cc55a1bcf97bf7d5ba0900017ebcef8 Author: WANG Cong Date: Thu Jul 30 17:12:21 2015 -0700 act_pedit: check binding before calling tcf_hash_release() When we share an action within a filter, the bind refcnt should increase, therefore we should not call tcf_hash_release(). Fixes: 1a29321ed045 ("net_sched: act: Dont increment refcnt on replace") Cc: Jamal Hadi Salim Cc: Daniel Borkmann Signed-off-by: Cong Wang Signed-off-by: Cong Wang Acked-by: Daniel Borkmann Signed-off-by: David S. Miller net/sched/act_pedit.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 8fcd461db7c09337b6d2e22d25eb411123f379e3 Author: Jeff Layton Date: Thu Jul 30 06:57:46 2015 -0400 nfsd: do nfs4_check_fh in nfs4_check_file instead of nfs4_check_olstateid Currently, preprocess_stateid_op calls nfs4_check_olstateid which verifies that the open stateid corresponds to the current filehandle in the call by calling nfs4_check_fh. If the stateid is a NFS4_DELEG_STID however, then no such check is done. This could cause incorrect enforcement of permissions, because the nfsd_permission() call in nfs4_check_file uses current the current filehandle, but any subsequent IO operation will use the file descriptor in the stateid. Move the call to nfs4_check_fh into nfs4_check_file instead so that it can be done for all stateid types. Signed-off-by: Jeff Layton Cc: stable@vger.kernel.org [bfields: moved fh check to avoid NULL deref in special stateid case] Signed-off-by: J. Bruce Fields fs/nfsd/nfs4state.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit c1bfa985ded82cacdfc6403e78f329c44e35534a Author: Murali Karicheri Date: Fri May 29 12:04:13 2015 -0400 ARM: dts: keystone: fix dt bindings to use post div register for mainpll All of the keystone devices have a separate register to hold post divider value for main pll clock. Currently the fixed-postdiv value used for k2hk/l/e SoCs works by sheer luck as u-boot happens to use a value of 2 for this. Now that we have fixed this in the pll clock driver change the dt bindings for the same. Signed-off-by: Murali Karicheri Acked-by: Santosh Shilimkar Signed-off-by: Olof Johansson arch/arm/boot/dts/k2e-clocks.dtsi | 5 ++--- arch/arm/boot/dts/k2hk-clocks.dtsi | 5 ++--- arch/arm/boot/dts/k2l-clocks.dtsi | 5 ++--- 3 files changed, 6 insertions(+), 9 deletions(-) commit 5e49e0beb6a56c459b330b4c010edffbffe209be Merge: 23ff9e1 1c1cc45 Author: Linus Torvalds Date: Fri Jul 31 12:34:10 2015 -0700 Merge tag 'iommu-fixes-v4.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu Pull IOMMU fixes from Joerg Roedel: "These fixes are all for the AMD IOMMU driver: - A regression with HSA caused by the conversion of the driver to default domains. The fixes make sure that an HSA device can still be attached to an IOMMUv2 domain and that these domains also allow non-IOMMUv2 capable devices. - Fix iommu=pt mode which did not work because the dma_ops where set to nommu_ops, which breaks devices that can only do 32bit DMA. - Fix an issue with non-PCI devices not working, because there are no dma_ops for them. This issue was discovered recently as new AMD x86 platforms have non-PCI devices too" * tag 'iommu-fixes-v4.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: iommu/amd: Allow non-ATS devices in IOMMUv2 domains iommu/amd: Set global dma_ops if swiotlb is disabled iommu/amd: Use swiotlb in passthrough mode iommu/amd: Allow non-IOMMUv2 devices in IOMMUv2 domains iommu/amd: Use iommu core for passthrough mode iommu/amd: Use iommu_attach_group() commit 23ff9e19febc816363f0a71fe4d1e5c863c07f9f Merge: fd56d1d 5eb3e5a Author: Linus Torvalds Date: Fri Jul 31 12:11:01 2015 -0700 Merge tag 'drm-intel-fixes-2015-07-31' of git://anongit.freedesktop.org/drm-intel Pull drm intel fixes from Daniel Vetter: "I delayed my -fixes pull a bit hoping that I could include a fix for the dp mst stuff but looks a bit more nasty than that. So just 3 other regression fixes, one 4.2 other two cc: stable" * tag 'drm-intel-fixes-2015-07-31' of git://anongit.freedesktop.org/drm-intel: drm/i915: Declare the swizzling unknown for L-shaped configurations drm/i915: Mark PIN_USER binding as GLOBAL_BIND without the aliasing ppgtt drm/i915: Replace WARN inside I915_READ64_2x32 with retry loop commit fd56d1d66afce096f643faedfe1505488bdf1edd Merge: 8400935 bdce3e7 Author: Linus Torvalds Date: Fri Jul 31 12:05:02 2015 -0700 Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux Pull drm fixes from Dave Airlie: "This has a bunch of nouveau fixes, as Ben has been hibernating and has lots of small fixes for lots of bugs across nouveau. Radeon has one major fix for hdmi/dp audio regression that is larger than Alex would like, but seems to fix up a fair few bugs, along with some misc fixes. And a few msm fixes, one of which is also a bit large. But nothing in here seems insane or crazy for this stage, just more than I'd like" * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: (33 commits) drm/msm/mdp5: release SMB (shared memory blocks) in various cases drm/msm: change to uninterruptible wait in atomic commit drm/msm: mdp4: Fix drm_framebuffer dereference crash drm/msm: fix msm_gem_prime_get_sg_table() drm/amdgpu: add new parameter to seperate map and unmap drm/amdgpu: hdp_flush is not needed for inside IB drm/amdgpu: different emit_ib for gfx and compute drm/amdgpu: information leak in amdgpu_info_ioctl() drm/amdgpu: clean up init sequence for failures drm/radeon/combios: add some validation of lvds values drm/radeon: rework audio modeset to handle non-audio hdmi features drm/radeon: rework audio detect (v4) drm/amdgpu: Drop drm/ prefix for including drm.h in amdgpu_drm.h drm/radeon: Drop drm/ prefix for including drm.h in radeon_drm.h drm/nouveau/nouveau/ttm: fix tiled system memory with Maxwell drm/nouveau/kms/nv50-: guard against enabling cursor on disabled heads drm/nouveau/fbcon/g80: reduce PUSH_SPACE alloc, fire ring on accel init drm/nouveau/fbcon/gf100-: reduce RING_SPACE allocation drm/nouveau/fbcon/nv11-: correctly account for ring space usage drm/nouveau/bios: add proper support for opcode 0x59 ... commit 3473f26592c1c365d376aee29433d7db75f14d1e Author: Nathan Lynch Date: Fri Jul 17 21:40:28 2015 +0100 ARM: 8405/1: VDSO: fix regression with toolchains lacking ld.bfd executable The Sourcery CodeBench Lite 2014.05 toolchain (gcc 4.8.3, binutils 2.24.51) has a GCC which implements -fuse-ld, and it doesn't include the gold linker, but it lacks an ld.bfd executable in its installation. This means that passing -fuse-ld=bfd fails with: VDSO arch/arm/vdso/vdso.so.raw collect2: fatal error: cannot find 'ld' Arguably this is a deficiency in the toolchain, but I suspect it's commonly used enough that it's worth accommodating: just use cc-ldoption (to cause a link attempt) instead of cc-option to test whether we can use -fuse-ld. So -fuse-ld=bfd won't be used with this toolchain, but the build will rightly succeed, just as it does for toolchains which don't implement -fuse-ld (and don't use gold as the default linker). Note: this will change the failure mode for a corner case I was trying to handle in d2b30cd4b722, where the toolchain defaults to the gold linker and the BFD linker is not found in PATH, from: VDSO arch/arm/vdso/vdso.so.raw collect2: fatal error: cannot find 'ld' i.e. the BFD linker is not found, to: OBJCOPY arch/arm/vdso/vdso.so BFD: arch/arm/vdso/vdso.so: Not enough room for program headers, try linking with -N that is, we fail to prevent gold from being used as the linker, and it produces an object that objcopy can't digest. Reported-by: Baruch Siach Tested-by: Baruch Siach Tested-by: Raphaël Poggi Fixes: d2b30cd4b722 ("ARM: 8384/1: VDSO: force use of BFD linker") Cc: stable@vger.kernel.org Signed-off-by: Nathan Lynch Signed-off-by: Russell King arch/arm/vdso/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8c8fe97b2b8a216523e2faf1ccca66ddab634e3e Author: Jun Nie Date: Fri Jul 10 20:02:49 2015 +0800 Revert "dmaengine: virt-dma: don't always free descriptor upon completion" This reverts commit b9855f03d560d351e95301b9de0bc3cad3b31fe9. The patch break existing DMA usage case. For example, audio SOC dmaengine never release channel and cause virt-dma to cache too much memory in descriptor to exhaust system memory. Signed-off-by: Vinod Koul drivers/dma/virt-dma.c | 19 ++++++------------- drivers/dma/virt-dma.h | 13 +------------ 2 files changed, 7 insertions(+), 25 deletions(-) commit 0ec9ebc706fbd394bc233d87ac7aaad1c4f3ab54 Author: Thomas Petazzoni Date: Wed Jul 8 16:28:14 2015 +0200 dmaengine: mv_xor: fix big endian operation in register mode Commit 6f166312c6ea2 ("dmaengine: mv_xor: add support for a38x command in descriptor mode") introduced the support for a feature that appeared in Armada 38x: specifying the operation to be performed in a per-descriptor basis rather than globally per channel. However, when doing so, it changed the function mv_chan_set_mode() to use: if (IS_ENABLED(__BIG_ENDIAN)) instead of: #if defined(__BIG_ENDIAN) While IS_ENABLED() is perfectly fine for CONFIG_* symbols, it is not for other symbols such as __BIG_ENDIAN that is provided directly by the compiler. Consequently, the commit broke support for big-endian, as the XOR_DESCRIPTOR_SWAP flag was not set in the XOR channel configuration register. The primarily visible effect was some nasty warnings and failures appearing during the self-test of the XOR unit: [ 1.197368] mv_xor d0060900.xor: error on chan 0. intr cause 0x00000082 [ 1.197393] mv_xor d0060900.xor: config 0x00008440 [ 1.197410] mv_xor d0060900.xor: activation 0x00000000 [ 1.197427] mv_xor d0060900.xor: intr cause 0x00000082 [ 1.197443] mv_xor d0060900.xor: intr mask 0x000003f7 [ 1.197460] mv_xor d0060900.xor: error cause 0x00000000 [ 1.197477] mv_xor d0060900.xor: error addr 0x00000000 [ 1.197491] ------------[ cut here ]------------ [ 1.197513] WARNING: CPU: 0 PID: 1 at ../drivers/dma/mv_xor.c:664 mv_xor_interrupt_handler+0x14c/0x170() See also: http://storage.kernelci.org/next/next-20150617/arm-mvebu_v7_defconfig+CONFIG_CPU_BIG_ENDIAN=y/lab-khilman/boot-armada-xp-openblocks-ax3-4.txt Signed-off-by: Thomas Petazzoni Fixes: 6f166312c6ea2 ("dmaengine: mv_xor: add support for a38x command in descriptor mode") Reviewed-by: Maxime Ripard Signed-off-by: Vinod Koul drivers/dma/mv_xor.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit cda8e937191c100025168ba3e22ab316c7298007 Author: Rameshwar Prasad Sahu Date: Tue Jul 7 15:34:25 2015 +0530 dmaengine: xgene-dma: Fix the resource map to handle overlapping There is an overlap in dma ring cmd csr region due to sharing of ethernet ring cmd csr region. This patch fix the resource overlapping by mapping the entire dma ring cmd csr region. Signed-off-by: Rameshwar Prasad Sahu Signed-off-by: Vinod Koul Documentation/devicetree/bindings/dma/apm-xgene-dma.txt | 2 +- arch/arm64/boot/dts/apm/apm-storm.dtsi | 2 +- drivers/dma/xgene-dma.c | 3 +++ 3 files changed, 5 insertions(+), 2 deletions(-) commit 1c8a38b1268aebc1a903b21b11575077e02d2cf7 Author: Cyrille Pitchen Date: Tue Jun 30 14:36:57 2015 +0200 dmaengine: at_xdmac: fix transfer data width in at_xdmac_prep_slave_sg() This patch adds the missing update of the transfer data width in at_xdmac_prep_slave_sg(). Indeed, for each item in the scatter-gather list, we check whether the transfer length is aligned with the data width provided by dmaengine_slave_config(). If so, we directly use this data width for the current part of the transfer we are preparing. Otherwise, the data width is reduced to 8 bits (1 byte). Of course, the actual number of register accesses must also be updated to match the new data width. So one chunk was missing in the original patch (see Fixes tag below): the number of register accesses was correctly set to (len >> fixed_dwidth) in mbr_ubc but the real data width was not updated in mbr_cfg. Since mbr_cfg may change for each part of the scatter-gather transfer this also explains why the original patch used the Descriptor View 2 instead of the Descriptor View 1. Let's take the example of a DMA transfer to write 8bit data into an Atmel USART with FIFOs. When FIFOs are enabled in the USART, its Transmit Holding Register (THR) works in multidata mode, that is to say that up to 4 8bit data can be written into the THR in a single 32bit access and it is still possible to write only one data with a 8bit access. To take advantage of this new feature, the DMA driver was modified to allow multiple dwidths when doing slave transfers. For instance, when the total length is 22 bytes, the USART driver splits the transfer into 2 parts: First part: 20 bytes transferred through 5 32bit writes into THR Second part: 2 bytes transferred though 2 8bit writes into THR For the second part, the data width was first set to 4_BYTES by the USART driver thanks to dmaengine_slave_config() then at_xdmac_prep_slave_sg() reduces this data width to 1_BYTE because the 2 byte length is not aligned with the original 4_BYTES data width. Since the data width is modified, the actual number of writes into THR must be set accordingly. Signed-off-by: Cyrille Pitchen Fixes: 6d3a7d9e3ada ("dmaengine: at_xdmac: allow muliple dwidths when doing slave transfers") Cc: stable@vger.kernel.org #4.0 and later Acked-by: Nicolas Ferre Acked-by: Ludovic Desroches Signed-off-by: Vinod Koul drivers/dma/at_xdmac.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 93dce3a6434f632dbd684ec1d9c3dc66a14e27e1 Author: Cyrille Pitchen Date: Thu Jun 18 13:25:41 2015 +0200 dmaengine: at_hdmac: fix residue computation As claimed by the programmer datasheet and confirmed by the IP designer, the Block Transfer Size (BTSIZE) bitfield of the Channel x Control A Register (CTRLAx) always refers to a number of Source Width (SRC_WIDTH) transfers. Both the SRC_WIDTH and BTSIZE bitfields can be extacted from the CTRLAx register to compute the DMA residue. So the 'tx_width' field is useless and can be removed from the struct at_desc. Before this patch, atc_prep_slave_sg() was not consistent: BTSIZE was correctly initialized according to the SRC_WIDTH but 'tx_width' was always set to reg_width, which was incorrect for MEM_TO_DEV transfers. It led to bad DMA residue when 'tx_width' != SRC_WIDTH. Also the 'tx_width' field was mostly set only in the first and last descriptors. Depending on the kind of DMA transfer, this field remained uninitialized for intermediate descriptors. The accurate DMA residue was computed only when the currently processed descriptor was the first or the last of the chain. This algorithm was a little bit odd. An accurate DMA residue can always be computed using the SRC_WIDTH and BTSIZE bitfields in the CTRLAx register. Finally, the test to check whether the currently processed descriptor is the last of the chain was wrong: for cyclic transfer, last_desc->lli.dscr is NOT equal to zero, since set_desc_eol() is never called, but logically equal to first_desc->txd.phys. This bug has a side effect on the drivers/tty/serial/atmel_serial.c driver, which uses cyclic DMA transfer to receive data. Since the DMA residue was wrong each time the DMA transfer reaches the second (and last) period of the transfer, no more data were received by the USART driver till the cyclic DMA transfer loops back to the first period. Signed-off-by: Cyrille Pitchen Acked-by: Torsten Fleischer Tested-by: Jirí Prchal Acked-by: Nicolas Ferre Signed-off-by: Vinod Koul drivers/dma/at_hdmac.c | 132 +++++++++++++++++++++++++++++--------------- drivers/dma/at_hdmac_regs.h | 3 +- 2 files changed, 88 insertions(+), 47 deletions(-) commit 20cadcb4df3eebd82410eab4aa91d5b083e16cd1 Author: Ludovic Desroches Date: Wed Jun 17 16:22:26 2015 +0200 dmaengine: at_xdmac: fix bug about channel configuration When using descriptor view 2 or higher, we don't write the configuration into AT_XDMAC_CC register because this configuration will be fetch from the descriptor. Unfortunately, the PROT bit is not updated with this method, we have to do it manually before enabling the channel. Signed-off-by: Ludovic Desroches Signed-off-by: Vinod Koul drivers/dma/at_xdmac.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) commit 1c1cc454aa694a89572689515fdaaf27b8c9f42a Author: Joerg Roedel Date: Thu Jul 30 11:24:45 2015 +0200 iommu/amd: Allow non-ATS devices in IOMMUv2 domains With the grouping of multi-function devices a non-ATS capable device might also end up in the same domain as an IOMMUv2 capable device. So handle this situation gracefully and don't consider it a bug anymore. Tested-by: Oded Gabbay Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit e952849a02524a247967bf7105f36fbb13cd00c2 Author: Masanari Iida Date: Tue Jul 28 20:11:23 2015 +0900 i2c: Fix typo in i2c-bfin-twi.c This patch fix some typos found in a printk message and MODULE_DESCRIPTION. Signed-off-by: Masanari Iida Acked-by: Sonic Zhang Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-bfin-twi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 828e66c0edf97bcb79b59b1ddd803a50629b3937 Author: Jan Luebbe Date: Wed Jul 8 16:35:27 2015 +0200 i2c: omap: fix bus recovery setup At least on the AM335x, enabling OMAP_I2C_SYSTEST_ST_EN is not enough to allow direct access to the SCL and SDA pins. In addition to ST_EN, we need to set the TMODE to 0b11 (Loop back & SDA/SCL IO mode select). Also, as the reset values of SCL_O and SDA_O are 0 (which means "drive low level"), we need to set them to 1 (which means "high-impedance") to avoid unwanted changes on the pins. As a precaution, reset all these bits to their default values after recovery is complete. Signed-off-by: Jan Luebbe Tested-by: Alexander Sverdlin Reviewed-by: Grygorii Strashko Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-omap.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 8b06260836ab47abbb5ea49d889660a0ed8adf90 Author: Jan Luebbe Date: Wed Jul 8 16:35:06 2015 +0200 i2c: core: only use set_scl for bus recovery after calling prepare_recovery Using set_scl may be ineffective before calling the driver specific prepare_recovery callback, which might change into a test mode. So instead of setting SCL in i2c_generic_scl_recovery, move it to i2c_generic_recovery (after the optional prepare_recovery). Signed-off-by: Jan Luebbe Acked-by: Alexander Sverdlin Tested-by: Alexander Sverdlin Signed-off-by: Wolfram Sang drivers/i2c/i2c-core.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit d12c0aaf3780c5b26b4ea9e795252381f586c063 Author: Vladimir Zapolskiy Date: Mon Jul 27 00:18:51 2015 +0300 misc: eeprom: at24: clean up at24_bin_write() The change removes redundant sysfs binary file boundary check, since this task is already done on caller side in fs/sysfs/file.c Signed-off-by: Vladimir Zapolskiy Signed-off-by: Wolfram Sang drivers/misc/eeprom/at24.c | 3 --- 1 file changed, 3 deletions(-) commit 1f023297f7f77d434ecc221018d2e181eac0ae36 Author: Vladimir Zapolskiy Date: Mon Jul 27 00:16:31 2015 +0300 i2c: slave eeprom: clean up sysfs bin attribute read()/write() The change removes redundant sysfs binary file boundary checks, since this task is already done on caller side in fs/sysfs/file.c Note, on file size overflow read() now returns 0, and this is a correct and expected EOF notification according to POSIX. Signed-off-by: Vladimir Zapolskiy Signed-off-by: Wolfram Sang drivers/i2c/i2c-slave-eeprom.c | 6 ------ 1 file changed, 6 deletions(-) commit 2761713d35e370fd640b5781109f753066b746c4 Author: Ilya Dryomov Date: Thu Jul 16 17:36:11 2015 +0300 rbd: fix copyup completion race For write/discard obj_requests that involved a copyup method call, the opcode of the first op is CEPH_OSD_OP_CALL and the ->callback is rbd_img_obj_copyup_callback(). The latter frees copyup pages, sets ->xferred and delegates to rbd_img_obj_callback(), the "normal" image object callback, for reporting to block layer and putting refs. rbd_osd_req_callback() however treats CEPH_OSD_OP_CALL as a trivial op, which means obj_request is marked done in rbd_osd_trivial_callback(), *before* ->callback is invoked and rbd_img_obj_copyup_callback() has a chance to run. Marking obj_request done essentially means giving rbd_img_obj_callback() a license to end it at any moment, so if another obj_request from the same img_request is being completed concurrently, rbd_img_obj_end_request() may very well be called on such prematurally marked done request: handle_reply() rbd_osd_req_callback() rbd_osd_trivial_callback() rbd_obj_request_complete() rbd_img_obj_copyup_callback() rbd_img_obj_callback() handle_reply() rbd_osd_req_callback() rbd_osd_trivial_callback() for_each_obj_request(obj_request->img_request) { rbd_img_obj_end_request(obj_request-1/2) rbd_img_obj_end_request(obj_request-2/2) <-- } Calling rbd_img_obj_end_request() on such a request leads to trouble, in particular because its ->xfferred is 0. We report 0 to the block layer with blk_update_request(), get back 1 for "this request has more data in flight" and then trip on rbd_assert(more ^ (which == img_request->obj_request_count)); with rhs (which == ...) being 1 because rbd_img_obj_end_request() has been called for both requests and lhs (more) being 1 because we haven't got a chance to set ->xfferred in rbd_img_obj_copyup_callback() yet. To fix this, leverage that rbd wants to call class methods in only two cases: one is a generic method call wrapper (obj_request is standalone) and the other is a copyup (obj_request is part of an img_request). So make a dedicated handler for CEPH_OSD_OP_CALL and directly invoke rbd_img_obj_copyup_callback() from it if obj_request is part of an img_request, similar to how CEPH_OSD_OP_READ handler invokes rbd_img_obj_request_read_callback(). Since rbd_img_obj_copyup_callback() is now being called from the OSD request callback (only), it is renamed to rbd_osd_copyup_callback(). Cc: Alex Elder Cc: stable@vger.kernel.org # 3.10+, needs backporting for < 3.18 Signed-off-by: Ilya Dryomov Reviewed-by: Alex Elder drivers/block/rbd.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) commit fc927cd32feca2acefd90a4ac317fa4f0a2e5955 Author: Yan, Zheng Date: Mon Jul 20 09:50:58 2015 +0800 ceph: always re-send cap flushes when MDS recovers commit e548e9b93d3e565e42b938a99804114565be1f81 makes the kclient only re-send cap flush once during MDS failover. If the kclient sends a cap flush after MDS enters reconnect stage but before MDS recovers. The kclient will skip re-sending the same cap flush when MDS recovers. This causes problem for newly created inode. The MDS handles cap flushes before replaying unsafe requests, so it's possible that MDS find corresponding inode is missing when handling cap flush. The fix is reverting to old behaviour: always re-send when MDS recovers Signed-off-by: Yan, Zheng Signed-off-by: Ilya Dryomov fs/ceph/caps.c | 22 +++++----------------- fs/ceph/super.h | 1 - 2 files changed, 5 insertions(+), 18 deletions(-) commit f6762cb2ca48e9052b5233c338fa254fa58d8981 Author: Yan, Zheng Date: Tue Jul 7 16:18:46 2015 +0800 ceph: fix ceph_encode_locks_to_buffer() posix locks should be in ctx->flc_posix list Signed-off-by: Yan, Zheng Signed-off-by: Ilya Dryomov fs/ceph/locks.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 37868fe113ff2ba814b3b4eb12df214df555f8dc Author: Andy Lutomirski Date: Thu Jul 30 14:31:32 2015 -0700 x86/ldt: Make modify_ldt synchronous modify_ldt() has questionable locking and does not synchronize threads. Improve it: redesign the locking and synchronize all threads' LDTs using an IPI on all modifications. This will dramatically slow down modify_ldt in multithreaded programs, but there shouldn't be any multithreaded programs that care about modify_ldt's performance in the first place. This fixes some fallout from the CVE-2015-5157 fixes. Signed-off-by: Andy Lutomirski Reviewed-by: Borislav Petkov Cc: Andrew Cooper Cc: Andy Lutomirski Cc: Boris Ostrovsky Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Jan Beulich Cc: Konrad Rzeszutek Wilk Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Sasha Levin Cc: Steven Rostedt Cc: Thomas Gleixner Cc: security@kernel.org Cc: Cc: xen-devel Link: http://lkml.kernel.org/r/4c6978476782160600471bd865b318db34c7b628.1438291540.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/include/asm/desc.h | 15 --- arch/x86/include/asm/mmu.h | 3 +- arch/x86/include/asm/mmu_context.h | 54 +++++++- arch/x86/kernel/cpu/common.c | 4 +- arch/x86/kernel/cpu/perf_event.c | 12 +- arch/x86/kernel/ldt.c | 262 ++++++++++++++++++++----------------- arch/x86/kernel/process_64.c | 4 +- arch/x86/kernel/step.c | 6 +- arch/x86/power/cpu.c | 3 +- 9 files changed, 210 insertions(+), 153 deletions(-) commit aa1acff356bbedfd03b544051f5b371746735d89 Author: Andy Lutomirski Date: Thu Jul 30 14:31:31 2015 -0700 x86/xen: Probe target addresses in set_aliased_prot() before the hypercall The update_va_mapping hypercall can fail if the VA isn't present in the guest's page tables. Under certain loads, this can result in an OOPS when the target address is in unpopulated vmap space. While we're at it, add comments to help explain what's going on. This isn't a great long-term fix. This code should probably be changed to use something like set_memory_ro. Signed-off-by: Andy Lutomirski Cc: Andrew Cooper Cc: Andy Lutomirski Cc: Boris Ostrovsky Cc: Borislav Petkov Cc: Brian Gerst Cc: David Vrabel Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Jan Beulich Cc: Konrad Rzeszutek Wilk Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Sasha Levin Cc: Steven Rostedt Cc: Thomas Gleixner Cc: security@kernel.org Cc: Cc: xen-devel Link: http://lkml.kernel.org/r/0b0e55b995cda11e7829f140b833ef932fcabe3a.1438291540.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/xen/enlighten.c | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit 5542b2aa9eea3f2bb922029c8cc4b4346c4f6b1c Merge: 00a2916 0927bee Author: Ingo Molnar Date: Fri Jul 31 09:56:48 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 'perf stat' transaction length metrics. (Andi Kleen) - Fix test build error when bindir contains double slash. (Pawel Moll) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit 1adb9123f96a2553b5b373aff1eb6ae939d31d5c Merge: 646c4b7 9115c75 Author: Ingo Molnar Date: Fri Jul 31 09:55:26 2015 +0200 Merge tag 'efi-urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/mfleming/efi into x86/urgent Pull EFI fixes from Matt Fleming: * Fix an EFI boot issue preventing a Parallels virtual machine from booting because the upper 32-bits of the EFI memmap pointer were being discarded in setup_e820(). (Dmitry Skorodumov) * Validate that the "efi" kernel parameter gets used with an argument, otherwise we will oops. (Ricardo Neri) Signed-off-by: Ingo Molnar commit 7c62940165e9ae4004ce4e6b5117330bab94df68 Author: Luis Felipe Dominguez Vega Date: Wed Jul 29 21:11:20 2015 -0500 rtlwifi: Fix NULL dereference when PCI driver used as an AP In commit 33511b157bbcebaef853cc1811992b664a2e5862 ("rtlwifi: add support to send beacon frame"), the mechanism for sending beacons was established. That patch works correctly for rtl8192cu, but there is a possibility of getting the following warnings in the PCI drivers: WARNING: CPU: 1 PID: 2439 at net/mac80211/driver-ops.h:12 ieee80211_bss_info_change_notify+0x179/0x1d0 [mac80211]() wlp5s0: Failed check-sdata-in-driver check, flags: 0x0 The warning is followed by a NULL pointer dereference as follows: BUG: unable to handle kernel NULL pointer dereference at 0000000000000006 IP: [] rtl_get_tcb_desc+0x5e/0x760 [rtlwifi] This problem was reported at http://thread.gmane.org/gmane.linux.kernel.wireless.general/138645, but no solution was found at that time. The problem was also reported at https://bugzilla.kernel.org/show_bug.cgi?id=9744 and this solution was developed and tested there. The USB driver works with a NULL final argument in the adapter_tx() callback; however, the PCI drivers need a struct rtl_tcb_desc in that position. Fixes: 33511b157bbc ("rtlwifi: add support to send beacon frame.") Signed-off-by: Luis Felipe Dominguez Vega Signed-off-by: Larry Finger Cc: Stable [3.19+] Signed-off-by: Kalle Valo drivers/net/wireless/rtlwifi/core.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 098697dbad9070249eb07a0241c4001aa367bb89 Author: Hauke Mehrtens Date: Wed Jul 29 23:36:30 2015 +0200 b43: fix extpa_gain check for 2GHz On the 2GHz and and on the 5GHZ band only the extpa_gain setting from the 5GHz band was checked. this patch makes it check the property from the correct band. Signed-off-by: Hauke Mehrtens Signed-off-by: Kalle Valo drivers/net/wireless/b43/tables_nphy.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5d5cd85ff441534a52f23f821d0a7c644d3b6cce Author: Mike Looijmans Date: Tue Jul 28 07:51:01 2015 +0200 rsi: Fix failure to load firmware after memory leak fix and fix the leak Fixes commit eae79b4f3e82 ("rsi: fix memory leak in rsi_load_ta_instructions()") which stopped the driver from functioning. Firmware data has been allocated using vmalloc(), resulting in memory that cannot be used for DMA. Hence the firmware was first copied to a buffer allocated with kmalloc() in the original code. This patch reverts the commit and only calls "kfree()" to release the buffer after sending the data. This fixes the memory leak without breaking the driver. Add a comment to the kmemdup() calls to explain why this is done, and abort if memory allocation fails. Tested on a Topic Miami-Florida board which contains the rsi SDIO chip. Also added the same kfree() call to the USB glue driver. This was not tested on actual hardware though, as I only have the SDIO version. Fixes: eae79b4f3e82 ("rsi: fix memory leak in rsi_load_ta_instructions()") Signed-off-by: Mike Looijmans Cc: stable@vger.kernel.org Signed-off-by: Kalle Valo drivers/net/wireless/rsi/rsi_91x_sdio_ops.c | 8 +++++++- drivers/net/wireless/rsi/rsi_91x_usb_ops.c | 4 ++++ 2 files changed, 11 insertions(+), 1 deletion(-) commit f7c0af824711a88b47debbe295f17be6c0556539 Merge: df2cd45 aecdc63 Author: Kalle Valo Date: Fri Jul 31 09:20:12 2015 +0300 Merge tag 'iwlwifi-for-kalle-2015-07-30' of https://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-fixes * a fix for the stuck TFD queue mechanism - it was producing noisy false alarms. * a fix for the NIC prepare flow that prevented the driver from being able to access the device on certain systems. * a fix for the scan prority handling which allows the regular scan to run even if a scheduled scan is already running. commit f7a898117aebf3d52370fe637f4d7aff7a237afc Author: Roger Quadros Date: Mon Jul 6 17:46:58 2015 +0300 extcon: Fix extcon_cable_get_state() from getting old state after notification Currently the extcon code notifiers the interested listeners before it updates the extcon state with the new state. This will cause the listeners that use extcon_cable_get_state() to get the stale state and loose the new state. Fix this by first changing the extcon state variable and then notifying listeners. Signed-off-by: Roger Quadros Tested-by: Ivan T. Ivanov Signed-off-by: Chanwoo Choi drivers/extcon/extcon.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) commit 9547308bda296b6f69876c840a0291fcfbeddbb8 Author: Alexei Potashnik Date: Tue Jul 21 15:07:56 2015 -0700 target/iscsi: Fix double free of a TUR followed by a solicited NOPOUT Make sure all non-READ SCSI commands get targ_xfer_tag initialized to 0xffffffff, not just WRITEs. Double-free of a TUR cmd object occurs under the following scenario: 1. TUR received (targ_xfer_tag is uninitialized and left at 0) 2. TUR status sent 3. First unsolicited NOPIN is sent to initiator (gets targ_xfer_tag of 0) 4. NOPOUT for NOPIN (with TTT=0) arrives - its ExpStatSN acks TUR status, TUR is queued for removal - LIO tries to find NOPIN with TTT=0, but finds the same TUR instead, TUR is queued for removal for the 2nd time (Drop unbalanced conditional bracket usage - nab) Signed-off-by: Alexei Potashnik Signed-off-by: Spencer Baugh Cc: # v3.1+ Signed-off-by: Nicholas Bellinger drivers/target/iscsi/iscsi_target.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 9450918293b3c35f11883231a53da1aed2c78403 Author: Nicholas Bellinger Date: Wed Jul 29 22:27:13 2015 -0700 target: Perform RCU callback barrier before backend/fabric unload This patch addresses a v4.2-rc1 regression where backend driver module unload happening immediately after TBO->free_device() does internal call_rcu(), will currently result in IRQ context rcu_process_callbacks() use-after-free paging OOPsen. It adds the missing rcu_barrier() in target_backend_unregister() to perform an explicit RCU barrier waiting for all RCU callbacks to complete before releasing target_backend_ops memory, and allowing TBO->module exit to proceed. Also, do the same for fabric drivers in target_unregister_template() to ensure se_deve_entry->rcu_head -> kfree_rcu() callbacks have completed, before allowing target_core_fabric_ops->owner module exit to proceed. Acked-by: Paul E. McKenney Cc: Christoph Hellwig Cc: Hannes Reinecke Cc: Sagi Grimberg Signed-off-by: Nicholas Bellinger drivers/target/target_core_configfs.c | 9 ++++++++- drivers/target/target_core_hba.c | 10 +++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) commit 8400935737bf02d97da281bdcd139a421624b6ba Merge: dbe0811 df150ed1 Author: Linus Torvalds Date: Thu Jul 30 20:36:49 2015 -0700 Merge tag 'xfs-for-linus-4.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs Pull xfs fixes from Dave Chinner: "There are a couple of recently found, long standing remote attribute corruption fixes caused by log recovery getting confused after a crash, and the new DAX code in XFS (merged in 4.2-rc1) needs to actually use the DAX fault path on read faults. Summary: - remote attribute log recovery corruption fixes - DAX page faults need to use direct mappings, not a page cache mapping" * tag 'xfs-for-linus-4.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs: xfs: remote attributes need to be considered data xfs: remote attribute headers contain an invalid LSN xfs: call dax_fault on read page faults for DAX commit 3e9f798784b30293012682021d5a0352f78658b8 Author: Vladimir Zapolskiy Date: Fri Jul 31 03:09:50 2015 +0300 ARM: EXYNOS: fix double of_node_put() on error path The change removes the second of_node_put(), if for_each_compatible_node() body execution is not terminated. This prevents from object refcounter overflow over zero in OF_DYNAMIC build. Signed-off-by: Vladimir Zapolskiy Signed-off-by: Krzysztof Kozlowski arch/arm/mach-exynos/pm_domains.c | 1 - 1 file changed, 1 deletion(-) commit 27bbd23fe8e66edfff4c0e92eb9eb39c37856831 Author: Vladimir Zapolskiy Date: Fri Jul 31 03:09:49 2015 +0300 ARM: EXYNOS: Fix potentian kfree() of ro memory The change fixes a bug introduced by 2be2a3ff42a5, memory allocated by kstrdup_const() must be always deallocated with kfree_const(), otherwise there is a risk of kfree'ing ro memory in power domain error exit path. Signed-off-by: Vladimir Zapolskiy Cc: Fixes: 2be2a3ff42a5 ("ARM: EXYNOS: register power domain driver from core_initcall") Signed-off-by: Krzysztof Kozlowski arch/arm/mach-exynos/pm_domains.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit be052cc87745e01846fb036eb81567c784439078 Author: Roger Quadros Date: Tue Jul 7 16:06:15 2015 +0300 extcon: Fix hang and extcon_get/set_cable_state(). Users of find_cable_index_by_name() will cause a kernel hang as the while loop counter is never incremented and end condition is never reached. extcon_get_cable_state() and extcon_set_cable_state() are broken because they use cable index instead of cable id. This causes the first cable state (cable.0) to be always invalid in sysfs or extcon_get_cable_state() users. Introduce a new function find_cable_id_by_name() that fixes both of the above issues. Fixes: commit 73b6ecdb93e8 ("extcon: Redefine the unique id of supported external connectors without 'enum extcon' type") Cc: Greg Kroah-Hartman Signed-off-by: Roger Quadros Tested-by: Ivan T. Ivanov [cw00.choi: Fix minor coding style] Signed-off-by: Chanwoo Choi drivers/extcon/extcon.c | 46 ++++++++++++++++++++++++++++++++++------------ 1 file changed, 34 insertions(+), 12 deletions(-) commit 8a68173691f036613e3d4e6bf8dc129d4a7bf383 Author: Sowmini Varadhan Date: Thu Jul 30 15:50:36 2015 +0200 net: sk_clone_lock() should only do get_net() if the parent is not a kernel socket The newsk returned by sk_clone_lock should hold a get_net() reference if, and only if, the parent is not a kernel socket (making this similar to sk_alloc()). E.g,. for the SYN_RECV path, tcp_v4_syn_recv_sock->..inet_csk_clone_lock sets up the syn_recv newsk from sk_clone_lock. When the parent (listen) socket is a kernel socket (defined in sk_alloc() as having sk_net_refcnt == 0), then the newsk should also have a 0 sk_net_refcnt and should not hold a get_net() reference. Fixes: 26abe14379f8 ("net: Modify sk_alloc to not reference count the netns of kernel sockets.") Acked-by: Eric Dumazet Cc: Eric W. Biederman Signed-off-by: Sowmini Varadhan Signed-off-by: David S. Miller net/core/sock.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 28e6b67f0b292f557468c139085303b15f1a678f Author: Daniel Borkmann Date: Wed Jul 29 23:35:25 2015 +0200 net: sched: fix refcount imbalance in actions Since commit 55334a5db5cd ("net_sched: act: refuse to remove bound action outside"), we end up with a wrong reference count for a tc action. Test case 1: FOO="1,6 0 0 4294967295," BAR="1,6 0 0 4294967294," tc filter add dev foo parent 1: bpf bytecode "$FOO" flowid 1:1 \ action bpf bytecode "$FOO" tc actions show action bpf action order 0: bpf bytecode '1,6 0 0 4294967295' default-action pipe index 1 ref 1 bind 1 tc actions replace action bpf bytecode "$BAR" index 1 tc actions show action bpf action order 0: bpf bytecode '1,6 0 0 4294967294' default-action pipe index 1 ref 2 bind 1 tc actions replace action bpf bytecode "$FOO" index 1 tc actions show action bpf action order 0: bpf bytecode '1,6 0 0 4294967295' default-action pipe index 1 ref 3 bind 1 Test case 2: FOO="1,6 0 0 4294967295," tc filter add dev foo parent 1: bpf bytecode "$FOO" flowid 1:1 action ok tc actions show action gact action order 0: gact action pass random type none pass val 0 index 1 ref 1 bind 1 tc actions add action drop index 1 RTNETLINK answers: File exists [...] tc actions show action gact action order 0: gact action pass random type none pass val 0 index 1 ref 2 bind 1 tc actions add action drop index 1 RTNETLINK answers: File exists [...] tc actions show action gact action order 0: gact action pass random type none pass val 0 index 1 ref 3 bind 1 What happens is that in tcf_hash_check(), we check tcf_common for a given index and increase tcfc_refcnt and conditionally tcfc_bindcnt when we've found an existing action. Now there are the following cases: 1) We do a late binding of an action. In that case, we leave the tcfc_refcnt/tcfc_bindcnt increased and are done with the ->init() handler. This is correctly handeled. 2) We replace the given action, or we try to add one without replacing and find out that the action at a specific index already exists (thus, we go out with error in that case). In case of 2), we have to undo the reference count increase from tcf_hash_check() in the tcf_hash_check() function. Currently, we fail to do so because of the 'tcfc_bindcnt > 0' check which bails out early with an -EPERM error. Now, while commit 55334a5db5cd prevents 'tc actions del action ...' on an already classifier-bound action to drop the reference count (which could then become negative, wrap around etc), this restriction only accounts for invocations outside a specific action's ->init() handler. One possible solution would be to add a flag thus we possibly trigger the -EPERM ony in situations where it is indeed relevant. After the patch, above test cases have correct reference count again. Fixes: 55334a5db5cd ("net_sched: act: refuse to remove bound action outside") Signed-off-by: Daniel Borkmann Reviewed-by: Cong Wang Signed-off-by: David S. Miller include/net/act_api.h | 8 +++++++- net/sched/act_api.c | 11 ++++++----- 2 files changed, 13 insertions(+), 6 deletions(-) commit 990c9b347245ef0d5df1c70659df68e7e9ba6a72 Merge: 15f1bb1 37608f3 Author: David S. Miller Date: Thu Jul 30 14:03:46 2015 -0700 Merge branch 'r8152-fixes' Hayes Wang says: ==================== r8152: device reset v3: For patch #2, remove cancel_delayed_work(). v2: For patch #1, remove usb_autopm_get_interface(), usb_autopm_put_interface(), and the checking of intf->condition. For patch #2, replace the original method with usb_queue_reset_device() to reset the device. v1: Although the driver works normally, we find the device may get all 0xff data when transmitting packets on certain platforms. It would break the device and no packet could be transmitted. The reset is necessary to recover the hw for this situation. ==================== Signed-off-by: David S. Miller commit 37608f3e57dda037a230afb7dc8da9a63f100e06 Author: hayeswang Date: Wed Jul 29 20:39:09 2015 +0800 r8152: reset device when tx timeout The device reset is necessary if the hw becomes abnormal and stops transmitting packets. Signed-off-by: Hayes Wang Signed-off-by: David S. Miller drivers/net/usb/r8152.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit e501139a515018f913761d3bf4239313c87e721c Author: hayeswang Date: Wed Jul 29 20:39:08 2015 +0800 r8152: add pre_reset and post_reset Add rtl8152_pre_reset() and rtl8152_post_reset() which are used when calling usb_reset_device(). The two functions could reduce the time of reset when calling usb_reset_device() after probe(). Signed-off-by: Hayes Wang Signed-off-by: David S. Miller drivers/net/usb/r8152.c | 54 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) commit 649ccd08534ee26deb2e5b08509800d0e95167f5 Author: Takashi Iwai Date: Thu Jul 30 22:30:29 2015 +0200 ALSA: hda - Fix MacBook Pro 5,2 quirk MacBook Pro 5,2 with ALC889 codec had already a fixup entry, but this seems not working correctly, a fix for pin NID 0x15 is needed in addition. It's equivalent with the fixup for MacBook Air 1,1, so use this instead. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=102131 Reported-and-tested-by: Jeffery Miller Cc: Signed-off-by: Takashi Iwai sound/pci/hda/patch_realtek.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b09dec2c77dc0ef0bb43ade1628ab4b390e74c6d Author: Thomas Gleixner Date: Thu Jul 30 12:40:55 2015 +0200 MAINTAINERS: Appoint Jiang and Marc as irqdomain maintainers Ben was pretty surprised that he is still listed as the maintainer and he has no objections against transferring the duty to those who rumaged in and revamped that code in the recent past. Add kernel/irq/msi.c to the affected files as it's part of the shiny new hierarchical irqdomain machinery. Signed-off-by: Thomas Gleixner Acked-by: Benjamin Herrenschmidt Cc: Jiang Liu Cc: Marc Zyngier Cc: Grant Likely MAINTAINERS | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 54d9ffc416022cf82649fe5665875d8962dfac41 Author: Thomas Gleixner Date: Thu Jul 30 12:38:06 2015 +0200 MAINTAINERS: Appoint Marc Zyngier as irqchips co-maintainer Signed-off-by: Thomas Gleixner Acked-by: Jason Cooper Cc: Marc Zyngier MAINTAINERS | 1 + 1 file changed, 1 insertion(+) commit 646c4b75494747887f936513b669bb8a2d794459 Author: Jiang Liu Date: Thu Jul 30 15:51:32 2015 +0800 x86/irq: Use the caller provided polarity setting in mp_check_pin_attr() Commit d32932d02e18 ("x86/irq: Convert IOAPIC to use hierarchical irqdomain interfaces") introduced a regression which causes malfunction of interrupt lines. The reason is that the conversion of mp_check_pin_attr() missed to update the polarity selection of the interrupt pin with the caller provided setting and instead uses a stale attribute value. That in turn results in chosing the wrong interrupt flow handler. Use the caller supplied setting to configure the pin correctly which also choses the correct interrupt flow handler. This restores the original behaviour and on the affected machine/driver (Surface Pro 3, i2c controller) all IOAPIC IRQ configuration are identical to v4.1. Fixes: d32932d02e18 ("x86/irq: Convert IOAPIC to use hierarchical irqdomain interfaces") Reported-and-tested-by: Matt Fleming Reported-and-tested-by: Chen Yu Signed-off-by: Jiang Liu Cc: Tony Luck Cc: Chen Yu Cc: Yinghai Lu Link: http://lkml.kernel.org/r/1438242695-23531-1-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/kernel/apic/io_apic.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit aecdc63d87891c75e60906973c7b7c9cd58403d6 Author: Emmanuel Grumbach Date: Wed Jul 29 23:06:41 2015 +0300 iwlwifi: pcie: fix stuck queue detection for sleeping clients The stuck queue detection mechanism allows to detect queues that are stuck. For sleeping clients, a queue may rightfully be stuck: if a poor client implementation stays asleep for more than 10s, then we don't want to trigger recovery flows because of that client. In order to cope with this, I added a mechanism that monitors the state of the client: when a client goes to sleep, the timer of his queues is frozen. When he wakes up, the timer is reset to the right value so that if a client was awake for more than 10s and the queues are stuck, only then, the recovery flow will kick in. This is valid only on non-shared queues: A-MPDU queues. There was a bug in case we Tx to a sleeping client that has an empty A-MPDU queue: the timer was armed to now + 10s. This is bad, but pretty harmless. The problem is that when the client wakes up, the timer is modified to be now + remainder. But remainder is 0 since the queue was empty when that client went to sleep... Fix this by checking the state of the client before playing with the timer when we add a packet to an empty queue. Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/pcie/tx.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) commit dbe08116b87cdc2217f11a78b5b70e29068b7efd Merge: 0a55205 3213afb Author: Linus Torvalds Date: Thu Jul 30 11:03:04 2015 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input Pull input fixes from Dmitry Torokhov: "The main change is support for keyboards and touchpads found in 2015 editions of Macbooks" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: Revert "Input: zforce - don't overwrite the stack" Input: bcm5974 - add support for the 2015 Macbook Pro HID: apple: Add support for the 2015 Macbook Pro Input: bcm5974 - prepare for a new trackpad generation Input: synaptics - dump ext10 capabilities as well commit 0c958ecc69c277b25f38f72bc6d18ab145e8167c Author: Tony Battersby Date: Thu Jul 16 11:40:41 2015 -0400 scsi: fix memory leak with scsi-mq Fix a memory leak with scsi-mq triggered by commands with large data transfer length. __sg_alloc_table() sets both table->nents and table->orig_nents to the same value. When the scatterlist is DMA-mapped, table->nents is overwritten with the (possibly smaller) size of the DMA-mapped scatterlist, while table->orig_nents retains the original size of the allocated scatterlist. scsi_free_sgtable() should therefore check orig_nents instead of nents, and all code that initializes sdb->table without calling __sg_alloc_table() should set both nents and orig_nents. Fixes: d285203cf647 ("scsi: add support for a blk-mq based I/O path.") Cc: # 3.17+ Signed-off-by: Tony Battersby Reviewed-by: Christoph Hellwig Reviewed-by: Ewan D. Milne Signed-off-by: James Bottomley drivers/scsi/scsi_error.c | 2 +- drivers/scsi/scsi_lib.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) commit 3f1c0581310d5d94bd72740231507e763a6252a4 Author: Brian King Date: Tue Jul 14 11:41:33 2015 -0500 ipr: Fix invalid array indexing for HRRQ Fixes another signed / unsigned array indexing bug in the ipr driver. Currently, when hrrq_index wraps, it becomes a negative number. We do the modulo, but still have a negative number, so we end up indexing backwards in the array. Given where the hrrq array is located in memory, we probably won't actually reference memory we don't own, but nonetheless ipr is still looking at data within struct ipr_ioa_cfg and interpreting it as struct ipr_hrr_queue data, so bad things could certainly happen. Each ipr adapter has anywhere from 1 to 16 HRRQs. By default, we use 2 on new adapters. Let's take an example: Assume ioa_cfg->hrrq_index=0x7fffffffe and ioa_cfg->hrrq_num=4: The atomic_add_return will then return -1. We mod this with 3 and get -2, add one and get -1 for an array index. On adapters which support more than a single HRRQ, we dedicate HRRQ to adapter initialization and error interrupts so that we can optimize the other queues for fast path I/O. So all normal I/O uses HRRQ 1-15. So we want to spread the I/O requests across those HRRQs. With the default module parameter settings, this bug won't hit, only when someone sets the ipr.number_of_msix parameter to a value larger than 3 is when bad things start to happen. Cc: Tested-by: Wen Xiong Reviewed-by: Wen Xiong Reviewed-by: Gabriel Krisman Bertazi Signed-off-by: Brian King Reviewed-by: Martin K. Petersen Signed-off-by: James Bottomley drivers/scsi/ipr.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) commit bb7c54339e6a10ecce5c4961adf5e75b3cf0af30 Author: Brian King Date: Tue Jul 14 11:41:31 2015 -0500 ipr: Fix incorrect trace indexing When ipr's internal driver trace was changed to an atomic, a signed/unsigned bug slipped in which results in us indexing backwards in our memory buffer writing on memory that does not belong to us. This patch fixes this by removing the modulo and instead just mask off the low bits. Cc: Tested-by: Wen Xiong Reviewed-by: Wen Xiong Reviewed-by: Gabriel Krisman Bertazi Signed-off-by: Brian King Reviewed-by: Martin K. Petersen Signed-off-by: James Bottomley drivers/scsi/ipr.c | 5 +++-- drivers/scsi/ipr.h | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) commit 36b8e180e1e929e00b351c3b72aab3147fc14116 Author: Brian King Date: Tue Jul 14 11:41:29 2015 -0500 ipr: Fix locking for unit attention handling Make sure we have the host lock held when calling scsi_report_bus_reset. Fixes a crash seen as the __devices list in the scsi host was changing as we were iterating through it. Cc: Reviewed-by: Wen Xiong Reviewed-by: Gabriel Krisman Bertazi Signed-off-by: Brian King Reviewed-by: Martin K. Petersen Signed-off-by: James Bottomley drivers/scsi/ipr.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) commit 9115c7589b11349a1c3099758b4bded579ff69e0 Author: Ricardo Neri Date: Wed Jul 15 19:36:03 2015 -0700 efi: Check for NULL efi kernel parameters Even though it is documented how to specifiy efi parameters, it is possible to cause a kernel panic due to a dereference of a NULL pointer when parsing such parameters if "efi" alone is given: PANIC: early exception 0e rip 10:ffffffff812fb361 error 0 cr2 0 [ 0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 4.2.0-rc1+ #450 [ 0.000000] ffffffff81fe20a9 ffffffff81e03d50 ffffffff8184bb0f 00000000000003f8 [ 0.000000] 0000000000000000 ffffffff81e03e08 ffffffff81f371a1 64656c62616e6520 [ 0.000000] 0000000000000069 000000000000005f 0000000000000000 0000000000000000 [ 0.000000] Call Trace: [ 0.000000] [] dump_stack+0x45/0x57 [ 0.000000] [] early_idt_handler_common+0x81/0xae [ 0.000000] [] ? parse_option_str+0x11/0x90 [ 0.000000] [] arch_parse_efi_cmdline+0x15/0x42 [ 0.000000] [] do_early_param+0x50/0x8a [ 0.000000] [] parse_args+0x1e3/0x400 [ 0.000000] [] parse_early_options+0x24/0x28 [ 0.000000] [] ? loglevel+0x31/0x31 [ 0.000000] [] parse_early_param+0x31/0x3d [ 0.000000] [] setup_arch+0x2de/0xc08 [ 0.000000] [] ? vprintk_default+0x1a/0x20 [ 0.000000] [] start_kernel+0x90/0x423 [ 0.000000] [] x86_64_start_reservations+0x2a/0x2c [ 0.000000] [] x86_64_start_kernel+0xeb/0xef [ 0.000000] RIP 0xffffffff81ba2efc This panic is not reproducible with "efi=" as this will result in a non-NULL zero-length string. Thus, verify that the pointer to the parameter string is not NULL. This is consistent with other parameter-parsing functions which check for NULL pointers. Signed-off-by: Ricardo Neri Cc: Dave Young Cc: Signed-off-by: Matt Fleming arch/x86/platform/efi/efi.c | 5 +++++ drivers/firmware/efi/efi.c | 5 +++++ 2 files changed, 10 insertions(+) commit 7cc03e48965453b5df1cce5062c826189b04b960 Author: Dmitry Skorodumov Date: Tue Jul 28 18:38:32 2015 +0400 x86/efi: Use all 64 bit of efi_memmap in setup_e820() The efi_info structure stores low 32 bits of memory map in efi_memmap and high 32 bits in efi_memmap_hi. While constructing pointer in the setup_e820(), need to take into account all 64 bit of the pointer. It is because on 64bit machine the function efi_get_memory_map() may return full 64bit pointer and before the patch that pointer was truncated. The issue is triggered on Parallles virtual machine and fixed with this patch. Signed-off-by: Dmitry Skorodumov Cc: Denis V. Lunev Cc: Signed-off-by: Matt Fleming arch/x86/boot/compressed/eboot.c | 4 ++++ 1 file changed, 4 insertions(+) commit e34d572a92687e628054ac51d5587848ddb67ab5 Merge: 84b6b02 7447223 Author: Greg Kroah-Hartman Date: Thu Jul 30 09:55:17 2015 -0700 Merge tag 'usb-serial-4.2-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial into usb-linus Johan writes: USB-serial fixes for v4.2-rc5 Here's a fix for some Sierra Wireless modems and a couple of new device ids. Signed-off-by: Johan Hovold commit 0a552051a467a544135448905cf42e6e78d1a6c0 Merge: d41a83b 9200bc4 Author: Linus Torvalds Date: Thu Jul 30 08:04:19 2015 -0700 Merge tag 'hwmon-for-linus-v4.2-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging Pull hwmon fixes from Guenter Roeck: "Two patches headed for -stable. nct7802: Fix integer overflow seen when writing voltage limits nct7904: Rename pwm attributes to match hwmon ABI" * tag 'hwmon-for-linus-v4.2-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: hwmon: (nct7802) Fix integer overflow seen when writing voltage limits hwmon: (nct7904) Rename pwm attributes to match hwmon ABI commit 5eb3e5a5e11d14f9deb2a4b83555443b69ab9940 Author: Chris Wilson Date: Sun Jun 28 09:19:26 2015 +0100 drm/i915: Declare the swizzling unknown for L-shaped configurations The old style of memory interleaving swizzled upto the end of the first even bank of memory, and then used the remainder as unswizzled on the unpaired bank - i.e. swizzling is not constant for all memory. This causes problems when we try to migrate memory and so the kernel prevents migration at all when we detect L-shaped inconsistent swizzling. However, this issue also extends to userspace who try to manually detile into memory as the swizzling for an individual page is unknown (it depends on its physical address only known to the kernel), userspace cannot correctly swizzle. Note that this is a new attempt for the previously merged one, reverted in commit d82c0ba6e306f079407f07003e53c262d683397b Author: Daniel Vetter Date: Tue Jul 14 12:29:27 2015 +0200 Revert "drm/i915: Declare the swizzling unknown for L-shaped configurations" This is cc: stable since we need it to fix up troubles with wc cpu mmaps that userspace recently started to use widely. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91105 Signed-off-by: Chris Wilson Cc: Daniel Vetter Cc: stable@vger.kernel.org [danvet: Add note about previous (failed attempt).] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_tiling.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit d0e30adc42d979e4adc36b6c112b57337423b70c Author: Chris Wilson Date: Wed Jul 29 20:02:48 2015 +0100 drm/i915: Mark PIN_USER binding as GLOBAL_BIND without the aliasing ppgtt If the device does not support the aliasing ppgtt, we must translate user bind requests (PIN_USER) from LOCAL_BIND to a GLOBAL_BIND. However, since this is device specific we cannot do this conveniently in the upper layers and so must manage the vma->bound flags in the backend. Partial revert of commit 75d04a3773ecee617847de963ae4195d6aa74c28 [4.2-rc1] Author: Mika Kuoppala Date: Tue Apr 28 17:56:17 2015 +0300 drm/i915/gtt: Allocate va range only if vma is not bound Note this was spotted by Daniel originally, but we dropped the ball in getting the fix in before the bug going wild. Sorry all. Reported-by: Vincent Legoll vincent.legoll@gmail.com Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91133 References: https://bugs.freedesktop.org/show_bug.cgi?id=90224 Signed-off-by: Chris Wilson Cc: Michel Thierry Cc: Daniel Vetter Cc: Mika Kuoppala Cc: Jani Nikula Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 1a727c63612fc582370cf3dc01239d3d239743b5 Author: Dan Carpenter Date: Tue Jul 28 01:42:28 2015 +0300 netfilter: nf_conntrack: checking for IS_ERR() instead of NULL We recently changed this from nf_conntrack_alloc() to nf_ct_tmpl_alloc() so the error handling needs to changed to check for NULL instead of IS_ERR(). Fixes: 0838aa7fcfcd ('netfilter: fix netns dependencies with conntrack templates') Signed-off-by: Dan Carpenter Signed-off-by: Pablo Neira Ayuso net/netfilter/nf_synproxy_core.c | 4 +--- net/netfilter/xt_CT.c | 5 +++-- 2 files changed, 4 insertions(+), 5 deletions(-) commit 7307f70c6d525aa050d3027035215fb5473aa1bb Merge: 956325b 586b7cc Author: Paolo Bonzini Date: Thu Jul 30 13:30:03 2015 +0200 Merge tag 'kvm-s390-master-20150730' of git://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux into kvm-master KVM: s390: bugfix for kvm/master (4.2) Here is a bugfix for a regression that was introduced after 4.1 with the commit commit 785dbef407d8 ("KVM: s390: optimize round trip time in request handling"). After lots of cpu hotplugs in the guest (online/offline) sometimes a guest CPU did loop within host KVM code. Reason was that PROG_REQUEST was set in the sie control block, but no request was pending. This made commit 785dbef407d8 the suspect and changing that area to always reset PROG_REQUEST did indeed fix the problem. Special thanks to David Hildenbrand, who helped understanding the exact sequence that led to the problem. commit 586b7ccdb7143b6a9b975d2c6ad52b6ca5c162b9 Author: Christian Borntraeger Date: Tue Jul 28 15:03:05 2015 +0200 KVM: s390: Fix hang VCPU hang/loop regression commit 785dbef407d8 ("KVM: s390: optimize round trip time in request handling") introduced a regression. This regression was seen with CPU hotplug in the guest and switching between 1 or 2 CPUs. This will set/reset the IBS control via synced request. Whenever we make a synced request, we first set the vcpu->requests bit and then block the vcpu. The handler, on the other hand, unblocks itself, processes vcpu->requests (by clearing them) and unblocks itself once again. Now, if the requester sleeps between setting of vcpu->requests and blocking, the handler will clear the vcpu->requests bit and try to unblock itself (although no bit is set). When the requester wakes up, it blocks the VCPU and we have a blocked VCPU without requests. Solution is to always unset the block bit. Signed-off-by: Christian Borntraeger Reviewed-by: David Hildenbrand Fixes: 785dbef407d8 ("KVM: s390: optimize round trip time in request handling") arch/s390/kvm/kvm-s390.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit f0ad462189cc898aa0ef8ced849533ee03392bcc Author: Pablo Neira Ayuso Date: Thu Jul 23 13:06:10 2015 +0200 netfilter: nf_conntrack: silence warning on falling back to vmalloc() Since 88eab472ec21 ("netfilter: conntrack: adjust nf_conntrack_buckets default value"), the hashtable can easily hit this warning. We got reports from users that are getting this message in a quite spamming fashion, so better silence this. Signed-off-by: Pablo Neira Ayuso Acked-by: Florian Westphal net/netfilter/nf_conntrack_core.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit b8d65e9662b1ffb3b52a65fd11b0b968022dc6a1 Author: Alistair Popple Date: Thu Jul 30 16:53:54 2015 +1000 powerpc/eeh-powernv: Fix unbalanced IRQ warning pnv_eeh_next_error() re-enables the eeh opal event interrupt but it gets called from a loop if there are more outstanding events to process, resulting in a warning due to enabling an already enabled interrupt. Instead the interrupt should only be re-enabled once the last outstanding event has been processed. Tested-by: Daniel Axtens Reported-by: Daniel Axtens Signed-off-by: Alistair Popple Acked-by: Gavin Shan Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/eeh-powernv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 52717828356b643a1650fca845b4af488a954cca Author: Joerg Roedel Date: Tue Jul 28 16:58:51 2015 +0200 iommu/amd: Set global dma_ops if swiotlb is disabled Some AMD systems also have non-PCI devices which can do DMA. Those can't be handled by the AMD IOMMU, as the hardware can only handle PCI. These devices would end up with no dma_ops, as neither the per-device nor the global dma_ops will get set. SWIOTLB provides global dma_ops when it is active, so make sure there are global dma_ops too when swiotlb is disabled. Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 323023245771589c53869396e3297c703d347852 Author: Joerg Roedel Date: Tue Jul 28 16:58:50 2015 +0200 iommu/amd: Use swiotlb in passthrough mode In passthrough mode (iommu=pt) all devices are identity mapped. If a device does not support 64bit DMA it might still need remapping. Make sure swiotlb is initialized to provide this remapping. Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit 02ca20212f0dde5c90be8de19cc159726b5561aa Author: Joerg Roedel Date: Tue Jul 28 16:58:49 2015 +0200 iommu/amd: Allow non-IOMMUv2 devices in IOMMUv2 domains Since devices with IOMMUv2 functionality might be in the same group as devices without it, allow those devices in IOMMUv2 domains too. Otherwise attaching the group with the IOMMUv2 device to the domain will fail. Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) commit 1e6a7b04c033fe76ec7fe746ef6a3b22ab9502b2 Author: Joerg Roedel Date: Tue Jul 28 16:58:48 2015 +0200 iommu/amd: Use iommu core for passthrough mode Remove the AMD IOMMU driver implementation for passthrough mode and rely on the new iommu core features for that. Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu.c | 58 ++---------------------------------------- drivers/iommu/amd_iommu_init.c | 10 +------- 2 files changed, 3 insertions(+), 65 deletions(-) commit 55c99a4dc50fb749076592e8c66c235ca0124360 Author: Joerg Roedel Date: Tue Jul 28 16:58:47 2015 +0200 iommu/amd: Use iommu_attach_group() Since the conversion to default domains the iommu_attach_device function only works for devices with their own group. But this isn't always true for current IOMMUv2 capable devices, so use iommu_attach_group instead. Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu_v2.c | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) commit 15f1bb1f1e067be7088ed43ef23d59629bd24348 Author: Shahed Shaikh Date: Wed Jul 29 07:55:35 2015 -0400 qlcnic: Fix corruption while copying Use proper typecasting while performing byte-by-byte copy Signed-off-by: Shahed Shaikh Signed-off-by: David S. Miller drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f4eaed28c7834fc049c754f63e6988bbd73778d9 Author: Daniel Borkmann Date: Wed Jul 29 18:40:56 2015 +0200 act_bpf: fix memory leaks when replacing bpf programs We currently trigger multiple memory leaks when replacing bpf actions, besides others: comm "tc", pid 1909, jiffies 4294851310 (age 1602.796s) hex dump (first 32 bytes): 01 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 ................ 18 b0 98 6d 00 88 ff ff 00 00 00 00 00 00 00 00 ...m............ backtrace: [] kmemleak_alloc+0x4e/0xb0 [] __vmalloc_node_range+0x1bd/0x2c0 [] __vmalloc+0x4a/0x50 [] bpf_prog_alloc+0x3a/0xa0 [] bpf_prog_create+0x44/0xa0 [] tcf_bpf_init+0x28b/0x3c0 [act_bpf] [] tcf_action_init_1+0x191/0x1b0 [] tcf_action_init+0x82/0xf0 [] tcf_exts_validate+0xb2/0xc0 [] cls_bpf_modify_existing+0x98/0x340 [cls_bpf] [] cls_bpf_change+0x1a6/0x274 [cls_bpf] [] tc_ctl_tfilter+0x335/0x910 [] rtnetlink_rcv_msg+0x95/0x240 [] netlink_rcv_skb+0xaf/0xc0 [] rtnetlink_rcv+0x2e/0x40 [] netlink_unicast+0xef/0x1b0 Issue is that the old content from tcf_bpf is allocated and needs to be released when we replace it. We seem to do that since the beginning of act_bpf on the filter and insns, later on the name as well. Example test case, after patch: # FOO="1,6 0 0 4294967295," # BAR="1,6 0 0 4294967294," # tc actions add action bpf bytecode "$FOO" index 2 # tc actions show action bpf action order 0: bpf bytecode '1,6 0 0 4294967295' default-action pipe index 2 ref 1 bind 0 # tc actions replace action bpf bytecode "$BAR" index 2 # tc actions show action bpf action order 0: bpf bytecode '1,6 0 0 4294967294' default-action pipe index 2 ref 1 bind 0 # tc actions replace action bpf bytecode "$FOO" index 2 # tc actions show action bpf action order 0: bpf bytecode '1,6 0 0 4294967295' default-action pipe index 2 ref 1 bind 0 # tc actions del action bpf index 2 [...] # echo "scan" > /sys/kernel/debug/kmemleak # cat /sys/kernel/debug/kmemleak | grep "comm \"tc\"" | wc -l 0 Fixes: d23b8ad8ab23 ("tc: add BPF based action") Signed-off-by: Daniel Borkmann Signed-off-by: David S. Miller net/sched/act_bpf.c | 53 +++++++++++++++++++++++++++++++++++------------------ 1 file changed, 35 insertions(+), 18 deletions(-) commit f68b1231c453e97c8f687bf15565d41c548b003e Merge: c8507fb 60f83c8 Author: David S. Miller Date: Wed Jul 29 23:52:32 2015 -0700 Merge branch 'thunderx-fixes' Aleksey Makarov says: ==================== net: thunderx: Misc fixes Miscellaneous fixes for the ThunderX VNIC driver All the patches can be applied individually. It's ok to drop some if the maintainer feels uncomfortable with applying for 4.2. ==================== Signed-off-by: David S. Miller commit 60f83c898776c363ef8ebb66f14cbc748c1df1e8 Author: Thanneeru Srinivasulu Date: Wed Jul 29 16:49:46 2015 +0300 net: thunderx: Fix for crash while BGX teardown Cortina phy does not have kernel driver and we don't attach device with phy layer for intefaces like XFI, XLAUI etc, Hence check for interface type before calling disconnect. Signed-off-by: Thanneeru Srinivasulu Signed-off-by: Aleksey Makarov Signed-off-by: David S. Miller drivers/net/ethernet/cavium/thunder/thunder_bgx.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 4adf4351145e65dd98407299496ef00d82430b48 Author: Sunil Goutham Date: Wed Jul 29 16:49:45 2015 +0300 net: thunderx: Add PCI driver shutdown routine Signed-off-by: Sunil Goutham Signed-off-by: Aleksey Makarov Signed-off-by: David S. Miller drivers/net/ethernet/cavium/thunder/nicvf_main.c | 6 ++++++ 1 file changed, 6 insertions(+) commit b49087dd0fa27d61b55f7c77d0b857e3b5055161 Author: Sunil Goutham Date: Wed Jul 29 16:49:44 2015 +0300 net: thunderx: Fix crash when changing rss with mutliple traffic flows This fixes a crash when changing rss with multiple traffic flows. While interface teardown, disable tx queues after all NAPI threads are done. If done otherwise tx queues might be woken up inside NAPI if any CQE_TX are processed. Signed-off-by: Sunil Goutham Signed-off-by: Aleksey Makarov Signed-off-by: David S. Miller drivers/net/ethernet/cavium/thunder/nicvf_main.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 3d7a8aaad8720edb301d40d4a9d7fa906c76ba34 Author: Sunil Goutham Date: Wed Jul 29 16:49:43 2015 +0300 net: thunderx: Set watchdog timeout value If a txq (SQ) remains in stopped state after this timeout its considered as stuck and interface is reinited. Signed-off-by: Sunil Goutham Signed-off-by: Aleksey Makarov Signed-off-by: David S. Miller drivers/net/ethernet/cavium/thunder/nic.h | 9 +++++++++ drivers/net/ethernet/cavium/thunder/nicvf_main.c | 1 + 2 files changed, 10 insertions(+) commit 74840b83bd59ee51c591714470c6629ac18f424a Author: Sunil Goutham Date: Wed Jul 29 16:49:42 2015 +0300 net: thunderx: Wakeup TXQ only if CQE_TX are processed Previously TXQ is wakedup whenever napi is executed and irrespective of if any CQE_TX are processed or not. Added 'txq_stop' and 'txq_wake' counters to aid in debugging if there are any future issues. Signed-off-by: Sunil Goutham Signed-off-by: Aleksey Makarov Signed-off-by: David S. Miller drivers/net/ethernet/cavium/thunder/nic.h | 3 +- .../net/ethernet/cavium/thunder/nicvf_ethtool.c | 3 +- drivers/net/ethernet/cavium/thunder/nicvf_main.c | 40 +++++++++++++++------- 3 files changed, 31 insertions(+), 15 deletions(-) commit f8ce9666fa63da7e5afd9ff6e3221f86555621f3 Author: Sunil Goutham Date: Wed Jul 29 16:49:41 2015 +0300 net: thunderx: Suppress alloc_pages() failure warnings Suppressing standard alloc_pages() warnings. Some kernel configs limit alloc size and the network driver may fail. Do not drop a kernel warning in this case, instead just drop a oneliner that the network driver could not be loaded since the buffer could not be allocated. Signed-off-by: Sunil Goutham Signed-off-by: Aleksey Makarov Signed-off-by: David S. Miller drivers/net/ethernet/cavium/thunder/nicvf_queues.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 2cb468e01e6fdad3d8a00da6cda71094e0e05676 Author: Sunil Goutham Date: Wed Jul 29 16:49:40 2015 +0300 net: thunderx: Fix TSO packet statistic Fixing TSO packages not being counted. Signed-off-by: Sunil Goutham Signed-off-by: Aleksey Makarov Signed-off-by: David S. Miller drivers/net/ethernet/cavium/thunder/nicvf_queues.c | 1 + 1 file changed, 1 insertion(+) commit c62cd3c45198c212f85f53bfc254dd83f01b0fbc Author: Sunil Goutham Date: Wed Jul 29 16:49:39 2015 +0300 net: thunderx: Fix memory leak when changing queue count Fix for memory leak when changing queue/channel count via ethtool Signed-off-by: Sunil Goutham Signed-off-by: Aleksey Makarov Signed-off-by: David S. Miller .../net/ethernet/cavium/thunder/nicvf_ethtool.c | 23 +++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) commit 32c1b965f41639081af84cd3f320a81d9c30a06e Author: Sunil Goutham Date: Wed Jul 29 16:49:38 2015 +0300 net: thunderx: Fix RQ_DROP miscalculation With earlier configured value sufficient number of CQEs are not being reserved for transmitted packets. Hence under heavy incoming traffic load, receive notifications will take away most of the CQ thus transmit notifications will be lost resulting in tx skbs not being freed. Finally SQ will be full and it will be stopped, watchdog timer will kick in. After this fix receive notifications will not take morethan half of CQ reserving the rest for transmit notifications. Also changed CQ & SQ sizes from 16k to 4k. This is also due to the receive notifications taking first half of CQ under heavy load and time taken by NAPI to clear transmit notifications will increase with higher queue sizes. Again results in SQ being stopped. Signed-off-by: Sunil Goutham Signed-off-by: Aleksey Makarov Signed-off-by: David S. Miller drivers/net/ethernet/cavium/thunder/nicvf_queues.h | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) commit 143ceb0b8a1570d1f899900bf05df19ecd673a18 Author: Sunil Goutham Date: Wed Jul 29 16:49:37 2015 +0300 net: thunderx: Fix memory leak while tearing down interface Fixed 'tso_hdrs' memory not being freed properly. Also fixed SQ skbuff maintenance issues. Signed-off-by: Sunil Goutham Signed-off-by: Aleksey Makarov Signed-off-by: David S. Miller drivers/net/ethernet/cavium/thunder/nicvf_main.c | 1 + drivers/net/ethernet/cavium/thunder/nicvf_queues.c | 8 +++++--- 2 files changed, 6 insertions(+), 3 deletions(-) commit 4b561c17d91e9311639dd856255de0987f7ed9b2 Author: Sunil Goutham Date: Wed Jul 29 16:49:36 2015 +0300 net: thunderx: Fix data integrity issues with LDWB Switching back to LDD transactions from LDWB. While transmitting packets out with LDWB transactions data integrity issues are seen very frequently. hence switching back to LDD. 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/nicvf_queues.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c8507fb235bea3314a02a67ddda0d4e6cf01fa78 Author: Eric Dumazet Date: Wed Jul 29 12:01:41 2015 +0200 ipv6: flush nd cache on IFF_NOARP change This patch is the IPv6 equivalent of commit 6c8b4e3ff81b ("arp: flush arp cache on IFF_NOARP change") Without it, we keep buggy neighbours in the cache, with destination MAC address equal to our own MAC address. Tested: tcpdump -i eth0 -s 0 ip6 -n -e & ip link set dev eth0 arp off ping6 remote // sends buggy frames ip link set dev eth0 arp on ping6 remote // should work once kernel is patched Signed-off-by: Eric Dumazet Reported-by: Mario Fanelli Signed-off-by: David S. Miller net/ipv6/ndisc.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 9200bc4c28cd8992eb5379345abd6b4f0c93df16 Author: Guenter Roeck Date: Sat Jul 4 13:23:42 2015 -0700 hwmon: (nct7802) Fix integer overflow seen when writing voltage limits Writing a large value into a voltage limit attribute can result in an overflow due to an auto-conversion from unsigned long to unsigned int. Cc: Constantine Shulyupin Reviewed-by: Jean Delvare Cc: stable@vger.kernel.org # v4.1+ Signed-off-by: Guenter Roeck drivers/hwmon/nct7802.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0d6aaffc3a6db642e0a165ba4d17d6d7bbaf5201 Author: Guenter Roeck Date: Mon Jul 27 10:21:46 2015 -0700 hwmon: (nct7904) Rename pwm attributes to match hwmon ABI pwm attributes have well defined names, which should be used. Cc: Vadim V. Vlasov Cc: stable@vger.kernel.org #v4.1+ Signed-off-by: Guenter Roeck Documentation/hwmon/nct7904 | 4 ++-- drivers/hwmon/nct7904.c | 57 +++++++++++++++++++++++---------------------- 2 files changed, 31 insertions(+), 30 deletions(-) commit bdce3e7c729907e303396690b2b23b972c6717be Merge: d698291 b4cba04 Author: Dave Airlie Date: Thu Jul 30 12:41:44 2015 +1000 Merge branch 'msm-fixes-4.2' of git://people.freedesktop.org/~robclark/linux into drm-fixes Fix for nasty crash on mdp4 in disable path, fix for dma-buf export, smb leak on mdp5 which could result in intermittent modeset fails, and don't let interrupted system call disturb atomic commit once we are past the point of no return. * 'msm-fixes-4.2' of git://people.freedesktop.org/~robclark/linux: drm/msm/mdp5: release SMB (shared memory blocks) in various cases drm/msm: change to uninterruptible wait in atomic commit drm/msm: mdp4: Fix drm_framebuffer dereference crash drm/msm: fix msm_gem_prime_get_sg_table() commit d698291cd4fe5cf0da31da672ad0030cd47a0323 Merge: 520e8bf 194a336 Author: Dave Airlie Date: Thu Jul 30 12:40:27 2015 +1000 Merge branch 'drm-fixes-4.2' of git://people.freedesktop.org/~agd5f/linux into drm-fixes Radeon and amdgpu fixes for 4.2. The audio fix ended up being more invasive than I would have liked, but this should finally fix up the last of the regressions since DP audio support was added. * 'drm-fixes-4.2' of git://people.freedesktop.org/~agd5f/linux: drm/amdgpu: add new parameter to seperate map and unmap drm/amdgpu: hdp_flush is not needed for inside IB drm/amdgpu: different emit_ib for gfx and compute drm/amdgpu: information leak in amdgpu_info_ioctl() drm/amdgpu: clean up init sequence for failures drm/radeon/combios: add some validation of lvds values drm/radeon: rework audio modeset to handle non-audio hdmi features drm/radeon: rework audio detect (v4) drm/amdgpu: Drop drm/ prefix for including drm.h in amdgpu_drm.h drm/radeon: Drop drm/ prefix for including drm.h in radeon_drm.h commit b2428f94f4f79cc6045e538ed3e8329b16711712 Merge: 2482abb 31a184b Author: David S. Miller Date: Wed Jul 29 18:37:41 2015 -0700 Merge branch 'netcp-fixes' Murali Karicheri says: ==================== net: netcp: bug fixes for dynamic module support This series fixes few bugs to allow keystone netcp modules to be dynamically loaded and removed. Currently it allows following sequence multiple times insmod cpsw_ale.ko insmod davinci_mdio.ko insmod keystone_netcp.ko insmod keystone_netcp_ethss.ko ifup eth0 ifup eth1 ping ping ifdown eth1 ifdown eth0 rmmod keystone_netcp_ethss.ko rmmod keystone_netcp.ko rmmod davinci_mdio.ko rmmod cpsw_ale.ko ==================== Signed-off-by: David S. Miller commit 31a184b7acbc06d894c562ef884a94d6d78d0236 Author: Karicheri, Muralidharan Date: Tue Jul 28 18:20:14 2015 -0400 net: netcp: ethss: cleanup gbe_probe() and gbe_remove() functions This patch clean up error handle code to use goto label properly. In some cases, the code unnecessarily use goto instead of just returning the error code. Code also make explicit calls to devm_* APIs on error which is not necessary. In the gbe_remove() also it makes similar calls which is also unnecessary. Also fix few checkpatch warnings Signed-off-by: Murali Karicheri Signed-off-by: David S. Miller drivers/net/ethernet/ti/netcp_core.c | 1 - drivers/net/ethernet/ti/netcp_ethss.c | 44 ++++++++++++++--------------------- 2 files changed, 17 insertions(+), 28 deletions(-) commit c20afae75c32ec69eccc4ee432fa27d426e85a83 Author: Karicheri, Muralidharan Date: Tue Jul 28 18:20:13 2015 -0400 net: netcp: ethss: fix up incorrect use of list api The code seems to assume a null is returned when the list is empty from first_sec_slave() to break the loop which is incorrect. Fix the code by using list_empty(). Signed-off-by: Murali Karicheri Signed-off-by: David S. Miller drivers/net/ethernet/ti/netcp_ethss.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 01a030996e1e2c268a4a484e2cbd3722b705414d Author: Karicheri, Muralidharan Date: Tue Jul 28 18:20:12 2015 -0400 net: netcp: fix cleanup interface list in netcp_remove() Currently if user do rmmod keystone_netcp.ko following warning is seen :- [ 59.035891] ------------[ cut here ]------------ [ 59.040535] WARNING: CPU: 2 PID: 1619 at drivers/net/ethernet/ti/ netcp_core.c:2127 netcp_remove) This is because the interface list is not cleaned up in netcp_remove. This patch fixes this. Also fix some checkpatch related warnings. Signed-off-by: Murali Karicheri Signed-off-by: David S. Miller drivers/net/ethernet/ti/netcp_core.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) commit d41a83ba4bdcbe9d0a29cee4acb8dda7aa19b6d6 Merge: d0db3a3 d29809b Author: Linus Torvalds Date: Wed Jul 29 18:14:48 2015 -0700 Merge tag 'pm+acpi-4.2-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm Pull power management and ACPI fixes from Rafael Wysocki: "These fix three regressions, two recent ones (cpufreq core and ACPI device power management) and one introduced during the 4.1 cycle (intel_pstate). Specifics: - Fix a recently introduced issue in the cpufreq core causing it to attempt to create duplicate symbolic links to the policy directory in sysfs for CPUs that are offline when the cpufreq driver is being registered (Rafael J Wysocki) - Fix a recently introduced problem in the ACPI device power management core code causing it to store an incorrect value in the device object's power.state field in some cases which in turn leads to attempts to turn power resources off while they should still be on going forward (Mika Westerberg) - Fix an intel_pstate driver issue introduced during the 4.1 cycle which leads to kernel panics on boot on Knights Landing chips due to incomplete support for them in that driver (Lukasz Anaczkowski)" * tag 'pm+acpi-4.2-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: cpufreq: Avoid attempts to create duplicate symbolic links ACPI / PM: Use target_state to set the device power state intel_pstate: Add get_scaling cpu_defaults param to Knights Landing commit d0db3a397d067a6c542a1a02da004b7921b4570b Merge: 86ea07c 795e633 Author: Linus Torvalds Date: Wed Jul 29 18:08:48 2015 -0700 Merge tag 'dm-4.2-fixes-3' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm Pull device mapper fixes from Mike Snitzer: - fix DM thinp to consistently return -ENOSPC when out of data space - fix a logic bug in the DM cache smq policy's creation error path - revert a DM cache 4.2-rc3 change that reduced writeback efficiency - fix a hang on DM cache device destruction due to improper prealloc_used accounting introduced in 4.2-rc3 - update URL for dm-crypt wiki page * tag 'dm-4.2-fixes-3' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm: dm cache: fix device destroy hang due to improper prealloc_used accounting Revert "dm cache: do not wake_worker() in free_migration()" dm crypt: update wiki page URL dm cache policy smq: fix alloc_bitset check that always evaluates as false dm thin: return -ENOSPC when erroring retry list due to out of data space commit 2482abb93ebf7bfbf85965ca907f0058ff968c59 Author: Daniel Borkmann Date: Tue Jul 28 15:26:36 2015 +0200 ebpf, x86: fix general protection fault when tail call is invoked With eBPF JIT compiler enabled on x86_64, I was able to reliably trigger the following general protection fault out of an eBPF program with a simple tail call, f.e. tracex5 (or a stripped down version of it): [ 927.097918] general protection fault: 0000 [#1] SMP DEBUG_PAGEALLOC [...] [ 927.100870] task: ffff8801f228b780 ti: ffff880016a64000 task.ti: ffff880016a64000 [ 927.102096] RIP: 0010:[] [] 0xffffffffa002440d [ 927.103390] RSP: 0018:ffff880016a67a68 EFLAGS: 00010006 [ 927.104683] RAX: 5a5a5a5a5a5a5a5a RBX: 0000000000000000 RCX: 0000000000000001 [ 927.105921] RDX: 0000000000000000 RSI: ffff88014e438000 RDI: ffff880016a67e00 [ 927.107137] RBP: ffff880016a67c90 R08: 0000000000000000 R09: 0000000000000001 [ 927.108351] R10: 0000000000000000 R11: 0000000000000000 R12: ffff880016a67e00 [ 927.109567] R13: 0000000000000000 R14: ffff88026500e460 R15: ffff880220a81520 [ 927.110787] FS: 00007fe7d5c1f740(0000) GS:ffff880265000000(0000) knlGS:0000000000000000 [ 927.112021] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 927.113255] CR2: 0000003e7bbb91a0 CR3: 000000006e04b000 CR4: 00000000001407e0 [ 927.114500] Stack: [ 927.115737] ffffc90008cdb000 ffff880016a67e00 ffff88026500e460 ffff880220a81520 [ 927.117005] 0000000100000000 000000000000001b ffff880016a67aa8 ffffffff8106c548 [ 927.118276] 00007ffcdaf22e58 0000000000000000 0000000000000000 ffff880016a67ff0 [ 927.119543] Call Trace: [ 927.120797] [] ? lookup_address+0x28/0x30 [ 927.122058] [] ? __module_text_address+0x16/0x70 [ 927.123314] [] ? is_ftrace_trampoline+0x3e/0x70 [ 927.124562] [] ? __kernel_text_address+0x5f/0x80 [ 927.125806] [] ? print_context_stack+0x7f/0xf0 [ 927.127033] [] ? __lock_acquire+0x572/0x2050 [ 927.128254] [] ? __lock_acquire+0x572/0x2050 [ 927.129461] [] ? trace_call_bpf+0x3a/0x140 [ 927.130654] [] trace_call_bpf+0x8a/0x140 [ 927.131837] [] ? trace_call_bpf+0x3a/0x140 [ 927.133015] [] kprobe_perf_func+0x28/0x220 [ 927.134195] [] kprobe_dispatcher+0x38/0x60 [ 927.135367] [] ? seccomp_phase1+0x1/0x230 [ 927.136523] [] kprobe_ftrace_handler+0xf0/0x150 [ 927.137666] [] ? seccomp_phase1+0x5/0x230 [ 927.138802] [] ftrace_ops_recurs_func+0x5c/0xb0 [ 927.139934] [] 0xffffffffa022b0d5 [ 927.141066] [] ? seccomp_phase1+0x1/0x230 [ 927.142199] [] seccomp_phase1+0x5/0x230 [ 927.143323] [] syscall_trace_enter_phase1+0xc4/0x150 [ 927.144450] [] ? seccomp_phase1+0x5/0x230 [ 927.145572] [] ? syscall_trace_enter_phase1+0xc4/0x150 [ 927.146666] [] tracesys+0xd/0x44 [ 927.147723] Code: 48 8b 46 10 48 39 d0 76 2c 8b 85 fc fd ff ff 83 f8 20 77 21 83 c0 01 89 85 fc fd ff ff 48 8d 44 d6 80 48 8b 00 48 83 f8 00 74 0a <48> 8b 40 20 48 83 c0 33 ff e0 48 89 d8 48 8b 9d d8 fd ff ff 4c [ 927.150046] RIP [] 0xffffffffa002440d The code section with the instructions that traps points into the eBPF JIT image of the root program (the one invoking the tail call instruction). Using bpf_jit_disasm -o on the eBPF root program image: [...] 4e: mov -0x204(%rbp),%eax 8b 85 fc fd ff ff 54: cmp $0x20,%eax <--- if (tail_call_cnt > MAX_TAIL_CALL_CNT) 83 f8 20 57: ja 0x000000000000007a 77 21 59: add $0x1,%eax <--- tail_call_cnt++ 83 c0 01 5c: mov %eax,-0x204(%rbp) 89 85 fc fd ff ff 62: lea -0x80(%rsi,%rdx,8),%rax <--- prog = array->prog[index] 48 8d 44 d6 80 67: mov (%rax),%rax 48 8b 00 6a: cmp $0x0,%rax <--- check for NULL 48 83 f8 00 6e: je 0x000000000000007a 74 0a 70: mov 0x20(%rax),%rax <--- GPF triggered here! fetch of bpf_func 48 8b 40 20 [ matches <48> 8b 40 20 ... from above ] 74: add $0x33,%rax <--- prologue skip of new prog 48 83 c0 33 78: jmpq *%rax <--- jump to new prog insns ff e0 [...] The problem is that rax has 5a5a5a5a5a5a5a5a, which suggests a tail call jump to map slot 0 is pointing to a poisoned page. The issue is the following: lea instruction has a wrong offset, i.e. it should be ... lea 0x80(%rsi,%rdx,8),%rax ... but it actually seems to be ... lea -0x80(%rsi,%rdx,8),%rax ... where 0x80 is offsetof(struct bpf_array, prog), thus the offset needs to be positive instead of negative. Disassembling the interpreter, we btw similarly do: [...] c88: lea 0x80(%rax,%rdx,8),%rax <--- prog = array->prog[index] 48 8d 84 d0 80 00 00 00 c90: add $0x1,%r13d 41 83 c5 01 c94: mov (%rax),%rax 48 8b 00 [...] Now the other interesting fact is that this panic triggers only when things like CONFIG_LOCKDEP are being used. In that case offsetof(struct bpf_array, prog) starts at offset 0x80 and in non-CONFIG_LOCKDEP case at offset 0x50. Reason is that the work_struct inside struct bpf_map grows by 48 bytes in my case due to the lockdep_map member (which also has CONFIG_LOCK_STAT enabled members). Changing the emitter to always use the 4 byte displacement in the lea instruction fixes the panic on my side. It increases the tail call instruction emission by 3 more byte, but it should cover us from various combinations (and perhaps other future increases on related structures). After patch, disassembly: [...] 9e: lea 0x80(%rsi,%rdx,8),%rax <--- CONFIG_LOCKDEP/CONFIG_LOCK_STAT 48 8d 84 d6 80 00 00 00 a6: mov (%rax),%rax 48 8b 00 [...] [...] 9e: lea 0x50(%rsi,%rdx,8),%rax <--- No CONFIG_LOCKDEP 48 8d 84 d6 50 00 00 00 a6: mov (%rax),%rax 48 8b 00 [...] Fixes: b52f00e6a715 ("x86: bpf_jit: implement bpf_tail_call() helper") Signed-off-by: Daniel Borkmann Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller arch/x86/net/bpf_jit_comp.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 7ae90a4f96486e3e20274afa1b8329802f5e1981 Author: Nikolay Aleksandrov Date: Tue Jul 28 13:10:44 2015 +0200 bridge: mdb: fix delmdb state in the notification Since mdb states were introduced when deleting an entry the state was left as it was set in the delete request from the user which leads to the following output when doing a monitor (for example): $ bridge mdb add dev br0 port eth3 grp 239.0.0.1 permanent (monitor) dev br0 port eth3 grp 239.0.0.1 permanent $ bridge mdb del dev br0 port eth3 grp 239.0.0.1 permanent (monitor) dev br0 port eth3 grp 239.0.0.1 temp ^^^ Note the "temp" state in the delete notification which is wrong since the entry was permanent, the state in a delete is always reported as "temp" regardless of the real state of the entry. After this patch: $ bridge mdb add dev br0 port eth3 grp 239.0.0.1 permanent (monitor) dev br0 port eth3 grp 239.0.0.1 permanent $ bridge mdb del dev br0 port eth3 grp 239.0.0.1 permanent (monitor) dev br0 port eth3 grp 239.0.0.1 permanent There's one important note to make here that the state is actually not matched when doing a delete, so one can delete a permanent entry by stating "temp" in the end of the command, I've chosen this fix in order not to break user-space tools which rely on this (incorrect) behaviour. So to give an example after this patch and using the wrong state: $ bridge mdb add dev br0 port eth3 grp 239.0.0.1 permanent (monitor) dev br0 port eth3 grp 239.0.0.1 permanent $ bridge mdb del dev br0 port eth3 grp 239.0.0.1 temp (monitor) dev br0 port eth3 grp 239.0.0.1 permanent Note the state of the entry that got deleted is correct in the notification. Signed-off-by: Nikolay Aleksandrov Fixes: ccb1c31a7a87 ("bridge: add flags to distinguish permanent mdb entires") Signed-off-by: David S. Miller net/bridge/br_mdb.c | 1 + 1 file changed, 1 insertion(+) commit 544586f742b43c6fd5fcb74c794d33b2ef189e64 Author: Satish Ashok Date: Tue Jul 28 03:28:27 2015 -0700 bridge: mcast: give fast leave precedence over multicast router and querier When fast leave is configured on a bridge port and an IGMP leave is received for a group, the group is not deleted immediately if there is a router detected or if multicast querier is configured. Ideally the group should be deleted immediately when fast leave is configured. Signed-off-by: Satish Ashok Signed-off-by: David S. Miller net/bridge/br_multicast.c | 50 ++++++++++++++++++++++++----------------------- 1 file changed, 26 insertions(+), 24 deletions(-) commit b4cba04f05ed6b9b2278547295ecc5c40180e612 Author: Wentao Xu Date: Fri Jun 19 14:03:42 2015 -0400 drm/msm/mdp5: release SMB (shared memory blocks) in various cases Release all blocks after the pipe is disabled, even when vsync didn't happen in some error cases. Allow requesting SMB multiple times before configuring to hardware, by releasing blocks not programmed to hardware yet for shrinking case. This fixes a potential leak of shared memory pool blocks. Signed-off-by: Wentao Xu Tested-by: Archit Taneja Signed-off-by: Rob Clark drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c | 13 +++++ drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.h | 2 + drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c | 33 +++++------- drivers/gpu/drm/msm/mdp/mdp5/mdp5_smp.c | 87 ++++++++++++++++++++++++++----- drivers/gpu/drm/msm/mdp/mdp5/mdp5_smp.h | 1 + 5 files changed, 104 insertions(+), 32 deletions(-) commit 99fc1bc48f352185f1711795f0829bbf503c0712 Author: Wentao Xu Date: Mon Jun 22 11:53:42 2015 -0400 drm/msm: change to uninterruptible wait in atomic commit The atomic commit cannot easily undo and return an error once the state is swapped. Change to uninterruptible wait, and ignore the timeout error. Signed-off-by: Wentao Xu Signed-off-by: Rob Clark drivers/gpu/drm/msm/msm_atomic.c | 8 ++------ drivers/gpu/drm/msm/msm_drv.c | 13 +++++++++---- drivers/gpu/drm/msm/msm_drv.h | 4 ++-- drivers/gpu/drm/msm/msm_gem.c | 2 +- 4 files changed, 14 insertions(+), 13 deletions(-) commit a1c3e3e01ee301de6a13e696ef8775f40ca339ac Author: Archit Taneja Date: Fri Jun 26 15:49:43 2015 +0530 drm/msm: mdp4: Fix drm_framebuffer dereference crash mdp4_get_frame_format() can dereference a drm_framebuffer when it's NULL. Call it in mdp4_plane_mode_set only when we know fb is non-NULL. Signed-off-by: Archit Taneja Signed-off-by: Rob Clark drivers/gpu/drm/msm/mdp/mdp4/mdp4_plane.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit ac45146733b03a1c8e3a6a33720bdc42804cc09b Author: Rob Clark Date: Thu Jul 23 13:44:56 2015 -0400 drm/msm: fix msm_gem_prime_get_sg_table() We need to return a new sgt, since the caller takes ownership of it. Reported-by: Stanimir Varbanov Signed-off-by: Rob Clark drivers/gpu/drm/msm/msm_gem_prime.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 194a33643b1161fe7a054fa9bf43875ae0f6e1e8 Author: monk.liu Date: Wed Jul 22 13:29:28 2015 +0800 drm/amdgpu: add new parameter to seperate map and unmap Signed-off-by: monk.liu Reviewed-by: Christian König drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit e722b71a540362eebdbae060430dc5b06b990c38 Author: monk.liu Date: Fri Jul 17 17:10:09 2015 +0800 drm/amdgpu: hdp_flush is not needed for inside IB hdp flush is not needed for IBs that dispatched from kernel inside because there is no video memory host access Signed-off-by: monk.liu Reviewed-by: Christian König drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 93323131d66db68802e646204c0562cddc81a651 Author: monk.liu Date: Wed Jul 15 17:21:45 2015 +0800 drm/amdgpu: different emit_ib for gfx and compute compute ring didn't use const engine byfar, so ignore CE things in compute routine Signed-off-by: monk.liu Reviewed-by: Christian König drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 46 ++++++++++++++++++++++++++-------- drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 47 +++++++++++++++++++++++++++-------- 2 files changed, 71 insertions(+), 22 deletions(-) commit c193fa91b9182465a4a01665ad4096a6cdb4db2d Author: Dan Carpenter Date: Tue Jul 28 18:51:29 2015 +0300 drm/amdgpu: information leak in amdgpu_info_ioctl() We recently changed the drm_amdgpu_info_device struct so now there is a 4 byte hole at the end. We need to initialize it so we don't disclose secret information from the stack. Fixes: fa92754e9c47 ('drm/amdgpu: add VCE harvesting instance query') Signed-off-by: Dan Carpenter Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8faf0e08d5a78ae5f1752b1d69f97ed70afa625f Author: Alex Deucher Date: Tue Jul 28 11:50:31 2015 -0400 drm/amdgpu: clean up init sequence for failures If we fail during device init, record what state each block is in so that we can tear down clearly. Fixes various problems on device init failure. Reviewed-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu.h | 8 ++++++- drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 38 +++++++++++++++++------------- drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 4 ++-- 3 files changed, 31 insertions(+), 19 deletions(-) commit 0a90a0cff9f429f886f423967ae053150dce9259 Author: Alex Deucher Date: Mon Jul 27 19:24:31 2015 -0400 drm/radeon/combios: add some validation of lvds values Fixes a broken hsync start value uncovered by: abc0b1447d4974963548777a5ba4a4457c82c426 (drm: Perform basic sanity checks on probed modes) The driver handled the bad hsync start elsewhere, but the above commit prevented it from getting added. bug: https://bugs.freedesktop.org/show_bug.cgi?id=91401 Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/radeon/radeon_combios.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 7726e72b3d6879ee5fc743a230eb6f5afa12844b Author: Alex Deucher Date: Fri Jul 24 00:42:02 2015 -0400 drm/radeon: rework audio modeset to handle non-audio hdmi features Need to setup the deep color and avi packets regardless of audio setup. Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/atombios_encoders.c | 3 +- drivers/gpu/drm/radeon/radeon_audio.c | 65 ++++++++++++++++++------------ 2 files changed, 40 insertions(+), 28 deletions(-) commit d0ea397e22f9ad0113c1dbdaab14eded050472eb Author: Alex Deucher Date: Thu Jul 23 10:01:09 2015 -0400 drm/radeon: rework audio detect (v4) 1. Always assign audio function pointers even if the display does not support audio. We need to properly disable the audio stream when when using a non-audio capable monitor. Fixes purple line on some hdmi monitors. 2. Check if a pin is in use by another encoder before disabling it. v2: make sure we've fetched the edid before checking audio and look up the encoder before calling audio_detect since connector->encoder may not be assigned yet. Separate pin and afmt. They are allocated at different times and have no dependency on eachother. v3: fix connector fetching in encoder functions v4: fix missed dig->pin check in dce6_afmt_write_latency_fields bugs: https://bugzilla.kernel.org/show_bug.cgi?id=93701 https://bugzilla.redhat.com/show_bug.cgi?id=1236337 https://bugs.freedesktop.org/show_bug.cgi?id=91041 Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/radeon/dce6_afmt.c | 62 ++++++------- drivers/gpu/drm/radeon/radeon_audio.c | 143 ++++++++++++----------------- drivers/gpu/drm/radeon/radeon_audio.h | 3 +- drivers/gpu/drm/radeon/radeon_connectors.c | 18 +++- drivers/gpu/drm/radeon/radeon_mode.h | 2 +- 5 files changed, 105 insertions(+), 123 deletions(-) commit b3fcf36aeef3aeb890d9413c2066048ec7fda7e5 Author: Michel Dänzer Date: Wed Jul 22 17:29:01 2015 +0900 drm/amdgpu: Drop drm/ prefix for including drm.h in amdgpu_drm.h This allows amdgpu_drm.h to be reused verbatim in libdrm. Reviewed-by: Alex Deucher Reviewed-by: Christian König Signed-off-by: Michel Dänzer include/uapi/drm/amdgpu_drm.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e13af53e7d5a8cea8992d9b61fac69bd0ed8d845 Author: Michel Dänzer Date: Wed Jul 22 17:29:00 2015 +0900 drm/radeon: Drop drm/ prefix for including drm.h in radeon_drm.h This allows radeon_drm.h to be reused verbatim in libdrm. Reviewed-by: Christian König Signed-off-by: Michel Dänzer include/uapi/drm/radeon_drm.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit df356d5e81b04dd51dd9f23f2bce7d73dd929899 Author: Toshiaki Makita Date: Tue Jul 28 19:05:37 2015 +0900 bridge: Fix network header pointer for vlan tagged packets There are several devices that can receive vlan tagged packets with CHECKSUM_PARTIAL like tap, possibly veth and xennet. When (multiple) vlan tagged packets with CHECKSUM_PARTIAL are forwarded by bridge to a device with the IP_CSUM feature, they end up with checksum error because before entering bridge, the network header is set to ETH_HLEN (not including vlan header length) in __netif_receive_skb_core(), get_rps_cpu(), or drivers' rx functions, and nobody fixes the pointer later. Since the network header is exepected to be ETH_HLEN in flow-dissection and hash-calculation in RPS in rx path, and since the header pointer fix is needed only in tx path, set the appropriate network header on forwarding packets. Signed-off-by: Toshiaki Makita Signed-off-by: David S. Miller net/bridge/br_forward.c | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) commit 795e633a2dc6cbbeac68bc7f6006082150d38bb7 Author: Mike Snitzer Date: Wed Jul 29 13:48:23 2015 -0400 dm cache: fix device destroy hang due to improper prealloc_used accounting Commit 665022d72f9 ("dm cache: avoid calls to prealloc_free_structs() if possible") introduced a regression that caused the removal of a DM cache device to hang in cache_postsuspend()'s call to wait_for_migrations() with the following stack trace: [] schedule+0x37/0x80 [] cache_postsuspend+0xbb/0x470 [dm_cache] [] ? prepare_to_wait_event+0xf0/0xf0 [] dm_table_postsuspend_targets+0x47/0x60 [dm_mod] [] __dm_destroy+0x215/0x250 [dm_mod] [] dm_destroy+0x13/0x20 [dm_mod] [] dev_remove+0x10d/0x170 [dm_mod] [] ? dev_suspend+0x240/0x240 [dm_mod] [] ctl_ioctl+0x255/0x4d0 [dm_mod] [] ? SYSC_semtimedop+0x280/0xe10 [] dm_ctl_ioctl+0x13/0x20 [dm_mod] [] do_vfs_ioctl+0x2d2/0x4b0 [] ? __audit_syscall_entry+0xaf/0x100 [] ? do_audit_syscall_entry+0x66/0x70 [] SyS_ioctl+0x79/0x90 [] ? syscall_trace_leave+0xb8/0x110 [] entry_SYSCALL_64_fastpath+0x12/0x71 Fix this by accounting for the call to prealloc_data_structs() immediately _before_ the call as opposed to after. This is needed because it is possible to break out of the control loop after the call to prealloc_data_structs() but before prealloc_used was set to true. Signed-off-by: Mike Snitzer drivers/md/dm-cache-target.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 3508e6590d4729ac07f01f7ae2256c2f9dc738b8 Author: Mike Snitzer Date: Wed Jul 29 14:11:28 2015 -0400 Revert "dm cache: do not wake_worker() in free_migration()" This reverts commit 386cb7cdeeef97e0bf082a8d6bbfc07a2ccce07b. Taking the wake_worker() out of free_migration() will slow writeback dramatically, and hence adaptability. Say we have 10k blocks that need writing back, but are only able to issue 5 concurrently due to the migration bandwidth: it's imperative that we wake_worker() immediately after migration completion; waiting for the next 1 second wake up (via do_waker) means it'll take a long time to write that all back. Reported-by: Joe Thornber Signed-off-by: Mike Snitzer drivers/md/dm-cache-target.c | 1 + 1 file changed, 1 insertion(+) commit 342e84490574cbb2a9c5b1d0886a112ad2bcf4d7 Author: U. Artie Eoff Date: Tue Jul 28 13:29:56 2015 -0700 ALSA: hda - Fix race between PM ops and HDA init/probe PM ops could be triggered before HDA is done initializing and cause PM to set HDA controller to D3Hot. This can result in "CORB reset timeout#2, CORBRP = 65535" and "no codecs initialized". Additionally, PM ops can be triggered before azx_probe_continue finishes (async probe). This can result in a NULL deref kernel crash. To fix this, avoid PM ops if !chip->running. Signed-off-by: U. Artie Eoff Signed-off-by: Takashi Iwai sound/pci/hda/hda_intel.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 86ea07ca846a7c352f39dd0b7d81f15f403c7db8 Merge: d9065f4 0b991f5 Author: Linus Torvalds Date: Wed Jul 29 10:23:14 2015 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux Pull s390 fixes from Martin Schwidefsky: "Two bug fixes: - fix a crash on pre-z10 hardware due to cache-info - fix an issue with classic BPF programs in the eBPF JIT" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: s390/cachinfo: add missing facility check to init_cache_level() s390/bpf: clear correct BPF accumulator register commit d9065f44be579a1dcf572be717ba8b1ce342ebd6 Merge: 733db57 4bc94d5 Author: Linus Torvalds Date: Wed Jul 29 10:17:55 2015 -0700 Merge tag 'vfio-v4.2-rc5' of git://github.com/awilliam/linux-vfio Pull VFIO fix from Alex Williamson: "Fix a lockdep reported deadlock in device open error path" * tag 'vfio-v4.2-rc5' of git://github.com/awilliam/linux-vfio: vfio: Fix lockdep issue commit 733db573a6451681b60e7372d2862de09d6eb04e Merge: 956325b c4cfdd8 Author: Linus Torvalds Date: Wed Jul 29 09:54:40 2015 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending Pull SCSI target fixes from Nicholas Bellinger: "This series is larger than what I'd normally be conformable with sending for a -rc5 PULL request.. However, the bulk of the series is localized to qla2xxx target specific fixes that address a number of real-world correctness issues, that have been outstanding on the list for ~6 weeks now. They where submitted + verified + acked by the HW LLD vendor, contributed by a major production customer of the code, and are marked for v3.18.y stable code. That said, I don't see a good reason to wait another month to get these fixes into mainline. Beyond the qla2xx specific fixes, this series also includes: - bugfix for a long standing use-after-free in iscsi-target during TPG shutdown + demo-mode sessions. - bugfix for a >= v4.0 regression OOPs in iscsi-target during a iscsi_start_kthreads() failure. - bugfix for a >= v4.0 regression hang in iscsi-target for iser explicit session/connection logout. - bugfix for a iser-target bug where a early CMA REJECTED status during login triggers a NULL pointer dereference OOPs. - bugfixes for a handful of v4.2-rc1 specific regressions related to the larger set of recent backend configfs attribute changes. A big thanks to QLogic + Pure Storage for the qla2xxx target bugfixes" * git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: (28 commits) Documentation/target: Fix tcm_mod_builder.py build breakage iser-target: Fix REJECT CM event use-after-free OOPs iscsi-target: Fix iser explicit logout TX kthread leak iscsi-target: Fix iscsit_start_kthreads failure OOPs iscsi-target: Fix use-after-free during TPG session shutdown qla2xxx: terminate exchange when command is aborted by LIO qla2xxx: drop cmds/tmrs arrived while session is being deleted qla2xxx: disable scsi_transport_fc registration in target mode qla2xxx: added sess generations to detect RSCN update races qla2xxx: Abort stale cmds on qla_tgt_wq when plogi arrives qla2xxx: delay plogi/prli ack until existing sessions are deleted qla2xxx: cleanup cmd in qla workqueue before processing TMR qla2xxx: kill sessions/log out initiator on RSCN and port down events qla2xxx: fix command initialization in target mode. qla2xxx: Remove msleep in qlt_send_term_exchange qla2xxx: adjust debug flags qla2xxx: release request queue reservation. qla2xxx: Add flush after updating ATIOQ consumer index. qla2xxx: Enable target mode for ISP27XX qla2xxx: Fix hardware lock/unlock issue causing kernel panic. ... commit 8ef9724bf9718af81cfc5132253372f79c71b7e2 Author: Guenter Roeck Date: Sun Jul 26 21:34:50 2015 -0700 regmap: regcache-rbtree: Clean new present bits on present bitmap resize When inserting a new register into a block, the present bit map size is increased using krealloc. krealloc does not clear the additionally allocated memory, leaving it filled with random values. Result is that some registers are considered cached even though this is not the case. Fix the problem by clearing the additionally allocated memory. Also, if the bitmap size does not increase, do not reallocate the bitmap at all to reduce overhead. Fixes: 3f4ff561bc88 ("regmap: rbtree: Make cache_present bitmap per node") Signed-off-by: Guenter Roeck Signed-off-by: Mark Brown Cc: stable@vger.kernel.org drivers/base/regmap/regcache-rbtree.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) commit 45f503df1ba445359b94e1758c5e4f2c3460c8e4 Author: Jie Yang Date: Tue Jul 28 16:01:06 2015 +0800 ASoC: Intel: sst_byt: fix initialize 'NULL device *' issue Add initialization for sst_byt.dev at init stage, which fix the 'NULL device *' warning issues. Signed-off-by: Jie Yang Signed-off-by: Mark Brown sound/soc/intel/baytrail/sst-baytrail-ipc.c | 2 ++ 1 file changed, 2 insertions(+) commit 4b563ea317c2262987f0675abf15066614f536a1 Author: Jie Yang Date: Tue Jul 28 16:01:05 2015 +0800 ASoC: Intel: haswell: fix initialize 'NULL device *' issue Add initialization for sst_hsw.dev at init stage, which fix the 'NULL device *' warning issues. Signed-off-by: Jie Yang Signed-off-by: Mark Brown sound/soc/intel/haswell/sst-haswell-ipc.c | 2 ++ 1 file changed, 2 insertions(+) commit d29809b8eb12d291d7b507fdaaa5e44707641685 Merge: 559ed40 71b6544 Author: Rafael J. Wysocki Date: Wed Jul 29 15:19:39 2015 +0200 Merge branches 'pm-cpufreq' and 'acpi-pm' * pm-cpufreq: cpufreq: Avoid attempts to create duplicate symbolic links intel_pstate: Add get_scaling cpu_defaults param to Knights Landing * acpi-pm: ACPI / PM: Use target_state to set the device power state commit 4a8e70f5d0d80675fc17b9ba1e62db8ca6b91775 Author: Dan Carpenter Date: Wed Jul 29 13:16:06 2015 +0300 HID: uclogic: fix limit in uclogic_tablet_enable() The limit should be ARRAY_SIZE(params) (5 elements) here instead of sizeof(params) (20 bytes). Fixes: 08177f40bd00 ('HID: uclogic: merge hid-huion driver in hid-uclogic') Signed-off-by: Dan Carpenter Reviewed-by: Nikolai Kondrashov Signed-off-by: Jiri Kosina drivers/hid/hid-uclogic.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e350f8045f642dfc4c28a81c57d2103e1f7ceead Author: Chanwoo Choi Date: Thu Jun 11 20:19:25 2015 +0900 extcon: palmas: Fix NULL pointer error This patch fixes NULL pointer error by removing the unneeded kfree() call of edev->name because extcon-palmas no longer allocate the memory for edev->name. Fixes: d71aadda19f8 ("extcon: Remove the optional name of extcon device") Signed-off-by: Chanwoo Choi Reviewed-by: Krzysztof Kozlowski drivers/extcon/extcon-palmas.c | 13 ------------- 1 file changed, 13 deletions(-) commit ee0a227b7ac6e75f28e10269f81c7ec6eb600952 Author: Chris Wilson Date: Wed Jul 15 09:50:42 2015 +0100 drm/i915: Replace WARN inside I915_READ64_2x32 with retry loop Since we may conceivably encounter situations where the upper part of the 64bit register changes between reads, for example when a timestamp counter overflows, change the WARN into a retry loop. Signed-off-by: Chris Wilson Cc: Michał Winiarski Cc: stable@vger.kernel.org Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) commit 2d1cb7f658fb9c3ba8f9dab8aca297d4dfdec835 Author: Yao-Wen Mao Date: Wed Jul 29 15:13:54 2015 +0800 ALSA: usb-audio: add dB range mapping for some devices Add the correct dB ranges of Bose Companion 5 and Drangonfly DAC 1.2. Signed-off-by: Yao-Wen Mao Cc: Signed-off-by: Takashi Iwai sound/usb/mixer_maps.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) commit 520e8bfc35066d4344adf13081e59bfde30aa36d Merge: eb8bb77 eb48b12 Author: Dave Airlie Date: Wed Jul 29 17:21:38 2015 +1000 Merge branch 'linux-4.2' of git://anongit.freedesktop.org/git/nouveau/linux-2.6 into drm-fixes Two more nouveau fixes. * 'linux-4.2' of git://anongit.freedesktop.org/git/nouveau/linux-2.6: drm/nouveau/nouveau/ttm: fix tiled system memory with Maxwell drm/nouveau/kms/nv50-: guard against enabling cursor on disabled heads commit dbd46ab412b8fb395f2b0ff6f6a7eec9df311550 Author: Alexander Drozdov Date: Tue Jul 28 13:57:01 2015 +0300 packet: tpacket_snd(): fix signed/unsigned comparison tpacket_fill_skb() can return a negative value (-errno) which is stored in tp_len variable. In that case the following condition will be (but shouldn't be) true: tp_len > dev->mtu + dev->hard_header_len as dev->mtu and dev->hard_header_len are both unsigned. That may lead to just returning an incorrect EMSGSIZE errno to the user. Fixes: 52f1454f629fa ("packet: allow to transmit +4 byte in TX_RING slot for VLAN case") Signed-off-by: Alexander Drozdov Acked-by: Daniel Borkmann Signed-off-by: David S. Miller net/packet/af_packet.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 3a05d12f46cb95a6a685114819363a56e6170996 Author: Takashi Iwai Date: Wed Jul 29 09:04:52 2015 +0200 ALSA: hda - Apply a fixup to Dell Vostro 5480 Dell Vostro 5480 (1028:069a) needs the very same quirk used for Vostro 5470 model to make bass speakers properly working. Reported-and-tested-by: Paulo Roberto de Oliveira Castro Cc: Signed-off-by: Takashi Iwai sound/pci/hda/patch_realtek.c | 1 + 1 file changed, 1 insertion(+) commit 11c91ef98f37cd743098de26160fffd7f9bd40e1 Author: Eric Dumazet Date: Mon Jul 27 11:33:50 2015 +0200 arp: filter NOARP neighbours for SIOCGARP When arp is off on a device, and ioctl(SIOCGARP) is queried, a buggy answer is given with MAC address of the device, instead of the mac address of the destination/gateway. We filter out NUD_NOARP neighbours for /proc/net/arp, we must do the same for SIOCGARP ioctl. Tested: lpaa23:~# ./arp 10.246.7.190 MAC=00:01:e8:22:cb:1d // correct answer lpaa23:~# ip link set dev eth0 arp off lpaa23:~# cat /proc/net/arp # check arp table is now 'empty' IP address HW type Flags HW address Mask Device lpaa23:~# ./arp 10.246.7.190 MAC=00:1a:11:c3:0d:7f // buggy answer before patch (this is eth0 mac) After patch : lpaa23:~# ip link set dev eth0 arp off lpaa23:~# ./arp 10.246.7.190 ioctl(SIOCGARP) failed: No such device or address Signed-off-by: Eric Dumazet Reported-by: Vytautas Valancius Cc: Willem de Bruijn Signed-off-by: David S. Miller net/ipv4/arp.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) commit 865b804244f228e80fb62abe464296399253cce8 Author: David Ward Date: Sun Jul 26 12:18:58 2015 -0400 net/ipv4: suppress NETDEV_UP notification on address lifetime update This notification causes the FIB to be updated, which is not needed because the address already exists, and more importantly it may undo intentional changes that were made to the FIB after the address was originally added. (As a point of comparison, when an address becomes deprecated because its preferred lifetime expired, a notification on this chain is not generated.) The motivation for this commit is fixing an incompatibility between DHCP clients which set and update the address lifetime according to the lease, and a commercial VPN client which replaces kernel routes in a way that outbound traffic is sent only through the tunnel (and disconnects if any further route changes are detected via netlink). Signed-off-by: David Ward Signed-off-by: David S. Miller net/ipv4/devinet.c | 1 - 1 file changed, 1 deletion(-) commit 76b91c32dd86f624b5df038dcb68cddd5a18d355 Author: Nikolay Aleksandrov Date: Thu Jul 23 11:01:05 2015 -0700 bridge: stp: when using userspace stp stop kernel hello and hold timers These should be handled only by the respective STP which is in control. They become problematic for devices with limited resources with many ports because the hold_timer is per port and fires each second and the hello timer fires each 2 seconds even though it's global. While in user-space STP mode these timers are completely unnecessary so it's better to keep them off. Also ensure that when the bridge is up these timers are started only when running with kernel STP. Signed-off-by: Satish Ashok Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller net/bridge/br_stp.c | 5 +++-- net/bridge/br_stp_if.c | 13 ++++++++++++- net/bridge/br_stp_timer.c | 4 +++- 3 files changed, 18 insertions(+), 4 deletions(-) commit df150ed102baa0e78c06e08e975dfb47147dd677 Author: Dave Chinner Date: Wed Jul 29 11:48:02 2015 +1000 xfs: remote attributes need to be considered data We don't log remote attribute contents, and instead write them synchronously before we commit the block allocation and attribute tree update transaction. As a result we are writing to the allocated space before the allcoation has been made permanent. As a result, we cannot consider this allocation to be a metadata allocation. Metadata allocation can take blocks from the free list and so reuse them before the transaction that freed the block is committed to disk. This behaviour is perfectly fine for journalled metadata changes as log recovery will ensure the free operation is replayed before the overwrite, but for remote attribute writes this is not the case. Hence we have to consider the remote attribute blocks to contain data and allocate accordingly. We do this by dropping the XFS_BMAPI_METADATA flag from the block allocation. This means the allocation will not use blocks that are on the busy list without first ensuring that the freeing transaction has been committed to disk and the blocks removed from the busy list. This ensures we will never overwrite a freed block without first ensuring that it is really free. cc: Signed-off-by: Dave Chinner Reviewed-by: Brian Foster Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_attr_remote.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) commit e3c32ee9e3e747fec01eb38e6610a9157d44c3ea Author: Dave Chinner Date: Wed Jul 29 11:48:01 2015 +1000 xfs: remote attribute headers contain an invalid LSN In recent testing, a system that crashed failed log recovery on restart with a bad symlink buffer magic number: XFS (vda): Starting recovery (logdev: internal) XFS (vda): Bad symlink block magic! XFS: Assertion failed: 0, file: fs/xfs/xfs_log_recover.c, line: 2060 On examination of the log via xfs_logprint, none of the symlink buffers in the log had a bad magic number, nor were any other types of buffer log format headers mis-identified as symlink buffers. Tracing was used to find the buffer the kernel was tripping over, and xfs_db identified it's contents as: 000: 5841524d 00000000 00000346 64d82b48 8983e692 d71e4680 a5f49e2c b317576e 020: 00000000 00602038 00000000 006034ce d0020000 00000000 4d4d4d4d 4d4d4d4d 040: 4d4d4d4d 4d4d4d4d 4d4d4d4d 4d4d4d4d 4d4d4d4d 4d4d4d4d 4d4d4d4d 4d4d4d4d 060: 4d4d4d4d 4d4d4d4d 4d4d4d4d 4d4d4d4d 4d4d4d4d 4d4d4d4d 4d4d4d4d 4d4d4d4d ..... This is a remote attribute buffer, which are notable in that they are not logged but are instead written synchronously by the remote attribute code so that they exist on disk before the attribute transactions are committed to the journal. The above remote attribute block has an invalid LSN in it - cycle 0xd002000, block 0 - which means when log recovery comes along to determine if the transaction that writes to the underlying block should be replayed, it sees a block that has a future LSN and so does not replay the buffer data in the transaction. Instead, it validates the buffer magic number and attaches the buffer verifier to it. It is this buffer magic number check that is failing in the above assert, indicating that we skipped replay due to the LSN of the underlying buffer. The problem here is that the remote attribute buffers cannot have a valid LSN placed into them, because the transaction that contains the attribute tree pointer changes and the block allocation that the attribute data is being written to hasn't yet been committed. Hence the LSN field in the attribute block is completely unwritten, thereby leaving the underlying contents of the block in the LSN field. It could have any value, and hence a future overwrite of the block by log recovery may or may not work correctly. Fix this by always writing an invalid LSN to the remote attribute block, as any buffer in log recovery that needs to write over the remote attribute should occur. We are protected from having old data written over the attribute by the fact that freeing the block before the remote attribute is written will result in the buffer being marked stale in the log and so all changes prior to the buffer stale transaction will be cancelled by log recovery. Hence it is safe to ignore the LSN in the case or synchronously written, unlogged metadata such as remote attribute blocks, and to ensure we do that correctly, we need to write an invalid LSN to all remote attribute blocks to trigger immediate recovery of metadata that is written over the top. As a further protection for filesystems that may already have remote attribute blocks with bad LSNs on disk, change the log recovery code to always trigger immediate recovery of metadata over remote attribute blocks. cc: Signed-off-by: Dave Chinner Reviewed-by: Brian Foster Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_attr_remote.c | 29 +++++++++++++++++++++++------ fs/xfs/xfs_log_recover.c | 11 ++++++++--- 2 files changed, 31 insertions(+), 9 deletions(-) commit b2442c5a7fe92cca08437070c8a45a7aa0d1703e Author: Dave Chinner Date: Wed Jul 29 11:48:00 2015 +1000 xfs: call dax_fault on read page faults for DAX When modifying the patch series to handle the XFS MMAP_LOCK nesting of page faults, I botched the conversion of the read page fault path, and so it is only every calling through the page cache. Re-add the necessary __dax_fault() call for such files. Because the get_blocks callback on read faults may not set up the mapping buffer correctly to allow unwritten extent completion to be run, we need to allow callers of __dax_fault() to pass a null complete_unwritten() callback. The DAX code always zeros the unwritten page when it is read faulted so there are no stale data exposure issues with not doing the conversion. The only downside will be the potential for increased CPU overhead on repeated read faults of the same page. If this proves to be a problem, then the filesystem needs to fix it's get_block callback and provide a convert_unwritten() callback to the read fault path. Signed-off-by: Dave Chinner Reviewed-by: Matthew Wilcox Reviewed-by: Brian Foster Signed-off-by: Dave Chinner fs/dax.c | 14 ++++++++++++-- fs/xfs/xfs_file.c | 21 +++++++++++++++------ 2 files changed, 27 insertions(+), 8 deletions(-) commit 956325bd55bb020e574129c443a2c2c66a8316e7 Merge: d4ec1f181 b8f5595 Author: Linus Torvalds Date: Tue Jul 28 14:20:16 2015 -0700 Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma Pull rdma fixes from Doug Ledford: - two minor bug fixes - relicense ocrdma driver to dual license, GPL or BSD * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma: RDMA/ocrdma: update ocrdma module license string RDMA/ocrdma: update ocrdma license to dual-license IB/ipoib: Fix CONFIG_INFINIBAND_IPOIB_CM RDMA/cxgb3: fail get_dma_mr on 64 bit arches commit d4ec1f181f962f1cce3a61928d16e439e83882d1 Merge: d61be4b ca4da5d Author: Linus Torvalds Date: Tue Jul 28 14:18:10 2015 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security Pull key fix from James Morris. Fix memory leak. * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: KEYS: ensure we free the assoc array edit if edit is valid commit fe0d34d242fa1e0dec059e774d146a705420bc9a Author: Rusty Russell Date: Wed Jul 29 05:52:14 2015 +0930 module: weaken locking assertion for oops path. We don't actually hold the module_mutex when calling find_module_all from module_kallsyms_lookup_name: that's because it's used by the oops code and we don't want to deadlock. However, access to the list read-only is safe if preempt is disabled, so we can weaken the assertion. Keep a strong version for external callers though. Fixes: 0be964be0d45 ("module: Sanitize RCU usage and locking") Reported-by: He Kuang Cc: stable@kernel.org Acked-by: Peter Zijlstra (Intel) Signed-off-by: Rusty Russell kernel/module.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit d61be4b3f2684b6d76ef8c1d28ecdeb9bb20fa8f Merge: 67eb890 f91b1fe Author: Linus Torvalds Date: Tue Jul 28 11:26:13 2015 -0700 Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux Pull arm64 fix from Catalin Marinas: "Fix buffer overflow when UTF-16 UEFI vendor string is copied from the system table into a char array with a size of 100 bytes" * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: arm64/efi: map the entire UEFI vendor string before reading it commit 8b34fe593ec6392aaef74c244fe2c091f424dee8 Author: Florian Fainelli Date: Tue Jul 14 13:03:33 2015 -0700 ata: ahci_brcmstb: Fix warnings with CONFIG_PM_SLEEP=n When CONFIG_PM_SLEEP is disabled, brcm_ahci_{suspend,resume} are not used, which causes such a build warning to occur: CC drivers/ata/ahci_brcmstb.o drivers/ata/ahci_brcmstb.c:212:12: warning: 'brcm_ahci_suspend' defined but not used [-Wunused-function] static int brcm_ahci_suspend(struct device *dev) ^ drivers/ata/ahci_brcmstb.c:224:12: warning: 'brcm_ahci_resume' defined but not used [-Wunused-function] static int brcm_ahci_resume(struct device *dev) ^ LD drivers/ata/built-in.o Fixes: 766a2d979632 ("ata: add Broadcom AHCI SATA3 driver for STB chips") Signed-off-by: Florian Fainelli Acked-by: Brian Norris Signed-off-by: Tejun Heo drivers/ata/ahci_brcmstb.c | 2 ++ 1 file changed, 2 insertions(+) commit 67eb890e5e132b56d9af7adf407e7c2a6ed248dc Merge: 02ff371 5c02a42 Author: Linus Torvalds Date: Tue Jul 28 10:29:23 2015 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/egtvedt/linux-avr32 Pull AVR32 fix from Hans-Christian Egtvedt. * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/egtvedt/linux-avr32: avr32: handle NULL as a valid clock object commit 3213afb8bf5cf8d8c68a2c2376bf1dda52afae5d Author: Dmitry Torokhov Date: Tue Jul 28 10:25:03 2015 -0700 Revert "Input: zforce - don't overwrite the stack" This reverts commit 7d01cd261c76f95913c81554a751968a1d282d3a because with given FRAME_MAXSIZE of 257 the check will never trigger and it causes warnings from GCC (with -Wtype-limits). Also the check was incorrect as it was not accounting for the already read 2 bytes of data stored in the buffer. drivers/input/touchscreen/zforce_ts.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 02ff371afd92db14c9b5c9d09e2592dbb9ffae1a Merge: 90c8acc 599ad5a Author: Linus Torvalds Date: Tue Jul 28 10:24:37 2015 -0700 Merge tag 'devicetree-fixes-for-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux Pull devicetree fixes from Rob Herring: "A handful of DT related fixes for 4.2-rc" * tag 'devicetree-fixes-for-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: of: Drop owner assignment from platform and i2c driver DEVICETREE: Misc fix for the AR7100 SPI controller binding of: constify drv arg of of_driver_match_device stub of: add HAS_IOMEM depends to OF_ADDRESS commit 90c8acceac05f1e1416367419be9108dbdbe11c9 Merge: 30b4f0f 1e09947 Author: Linus Torvalds Date: Tue Jul 28 10:20:00 2015 -0700 Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost Pull vhost fixes from Michael Tsirkin: "Two bugfixes only here" * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost: vhost: fix error handling for memory region alloc vhost: actually track log eventfd file commit 30b4f0faf47febe478e29dbbffd17bc35b350f22 Merge: d8132e0 fee50f3 Author: Linus Torvalds Date: Tue Jul 28 10:09:53 2015 -0700 Merge tag 'linux-kselftest-4.2-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest Pull kselftest fix from Shuah Khan. * tag 'linux-kselftest-4.2-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest: selftests/futex: Fix futex_cmp_requeue_pi() error handling commit d8132e08d25a47e2d5156aa2268cd1cd9b0d6c0d Merge: 2ee6b00 a49c269 Author: Linus Torvalds Date: Tue Jul 28 09:37:44 2015 -0700 Merge tag 'nfs-for-4.2-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs Pull NFS client bugfixes from Trond Myklebust: "Highlights include: Stable patches: - Fix a situation where the client uses the wrong (zero) stateid. - Fix a memory leak in nfs_do_recoalesce Bugfixes: - Plug a memory leak when ->prepare_layoutcommit fails - Fix an Oops in the NFSv4 open code - Fix a backchannel deadlock - Fix a livelock in sunrpc when sendmsg fails due to low memory availability - Don't revalidate the mapping if both size and change attr are up to date - Ensure we don't miss a file extension when doing pNFS - Several fixes to handle NFSv4.1 sequence operation status bits correctly - Several pNFS layout return bugfixes" * tag 'nfs-for-4.2-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (28 commits) nfs: Fix an oops caused by using other thread's stack space in ASYNC mode nfs: plug memory leak when ->prepare_layoutcommit fails SUNRPC: Report TCP errors to the caller sunrpc: translate -EAGAIN to -ENOBUFS when socket is writable. NFSv4.2: handle NFS-specific llseek errors NFS: Don't clear desc->pg_moreio in nfs_do_recoalesce() NFS: Fix a memory leak in nfs_do_recoalesce NFS: nfs_mark_for_revalidate should always set NFS_INO_REVAL_PAGECACHE NFS: Remove the "NFS_CAP_CHANGE_ATTR" capability NFS: Set NFS_INO_REVAL_PAGECACHE if the change attribute is uninitialised NFS: Don't revalidate the mapping if both size and change attr are up to date NFSv4/pnfs: Ensure we don't miss a file extension NFSv4: We must set NFS_OPEN_STATE flag in nfs_resync_open_stateid_locked SUNRPC: xprt_complete_bc_request must also decrement the free slot count SUNRPC: Fix a backchannel deadlock pNFS: Don't throw out valid layout segments pNFS: pnfs_roc_drain() fix a race with open pNFS: Fix races between return-on-close and layoutreturn. pNFS: pnfs_roc_drain should return 'true' when sleeping pNFS: Layoutreturn must invalidate all existing layout segments. ... commit 2ee6b00070242bb03be185fbae3bb7ac203aded2 Merge: cbfe8fa 6282adb Author: Linus Torvalds Date: Tue Jul 28 09:36:30 2015 -0700 Merge tag 'for-f2fs-v4.2-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs Pull f2fs fixes from Jaegeuk Kim. * tag 'for-f2fs-v4.2-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: f2fs: call set_page_dirty to attach i_wb for cgroup f2fs: handle error cases in move_encrypted_block commit 0927beeca5f9d1a7978f8da9c9d28647859816d3 Author: Pawel Moll Date: Tue Jul 28 15:10:13 2015 +0100 perf tools: Fix test build error when bindir contains double slash When building with a prefix ending with a slash, for example: $ make prefix=/usr/local/ one of the perf tests fail to compile due to BUILD_STR macro mishandling bindir_SQ string containing with two slashes: -DBINDIR="BUILD_STR(/usr/local//bin)" with the following error: CC tests/attr.o tests/attr.c: In function ‘test__attr’: tests/attr.c:168:50: error: expected ‘)’ before ‘;’ token snprintf(path_perf, PATH_MAX, "%s/perf", BINDIR); ^ tests/attr.c:176:1: error: expected ‘;’ before ‘}’ token } ^ tests/attr.c:176:1: error: control reaches end of non-void function [-Werror=return-type] } ^ cc1: all warnings being treated as errors This patch works around the problem by "cleaning" the bindir string using make's abspath function. Signed-off-by: Pawel Moll Acked-by: Jiri Olsa Cc: Adrian Hunter Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1438092613-21014-1-git-send-email-pawel.moll@arm.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/config/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3661df179bfbd1bb21cf2c782d3c5c084ebe3cf4 Author: Hariprasad S Date: Mon Jul 27 14:08:14 2015 +0530 iw_cxgb4: gracefully handle unknown CQE status errors c4iw_poll_cq_on() shouldn't fail the poll operation just because the CQE status is unknown. Rather, it should map this to the "fatal error" status and log the anomaly. Signed-off-by: Steve Wise Signed-off-by: Hariprasad Shenai Signed-off-by: Doug Ledford drivers/infiniband/hw/cxgb4/cq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 559ed40752dc63e68f9b9ad301b20e6a3fe5cf21 Author: Rafael J. Wysocki Date: Sun Jul 26 02:07:47 2015 +0200 cpufreq: Avoid attempts to create duplicate symbolic links After commit 87549141d516 (cpufreq: Stop migrating sysfs files on hotplug) there is a problem with CPUs that share cpufreq policy objects with other CPUs and are initially offline. Say CPU1 shares a policy with CPU0 which is online and is registered first. As part of the registration process, cpufreq_add_dev() is called for it. It creates the policy object and a symbolic link to it from the CPU1's sysfs directory. If CPU1 is registered subsequently and it is offline at that time, cpufreq_add_dev() will attempt to create a symbolic link to the policy object for it, but that link is present already, so a warning about that will be triggered. To avoid that warning, make cpufreq use an additional CPU mask containing related CPUs that are actually present for each policy object. That mask is initialized when the policy object is populated after its creation (for the first online CPU using it) and it includes CPUs from the "policy CPUs" mask returned by the cpufreq driver's ->init() callback that are physically present at that time. Symbolic links to the policy are created only for the CPUs in that mask. If cpufreq_add_dev() is invoked for an offline CPU, it checks the new mask and only creates the symlink if the CPU was not in it (the CPU is added to the mask at the same time). In turn, cpufreq_remove_dev() drops the given CPU from the new mask, removes its symlink to the policy object and returns, unless it is the CPU owning the policy object. In that case, the policy object is moved to a new CPU's sysfs directory or deleted if the CPU being removed was the last user of the policy. While at it, notice that cpufreq_remove_dev() can't fail, because its return value is ignored, so make it ignore return values from __cpufreq_remove_dev_prepare() and __cpufreq_remove_dev_finish() and prevent these functions from aborting on errors returned by __cpufreq_governor(). Also drop the now unused sif argument from them. Fixes: 87549141d516 (cpufreq: Stop migrating sysfs files on hotplug) Signed-off-by: Rafael J. Wysocki Reported-and-tested-by: Russell King Acked-by: Viresh Kumar drivers/cpufreq/cpufreq.c | 108 +++++++++++++++++++++++----------------------- include/linux/cpufreq.h | 1 + 2 files changed, 56 insertions(+), 53 deletions(-) commit 5497628576a3c5f3dbab224fa5a5d027f43d8b50 Author: Andi Kleen Date: Mon Jul 27 16:24:51 2015 -0700 perf stat: Fix transaction lenght metrics The transaction length metrics in perf stat -T broke recently. It would not match the metric correctly and always print K/sec. This was caused by a incorrect update of the cycles_in_tx statistics. Update the correct variable. Also the check for zero division was reversed, which resulted in K/sec being printed for no transactions. Fix this also up. Signed-off-by: Andi Kleen Acked-by: Jiri Olsa Link: http://lkml.kernel.org/r/1438039491-22091-1-git-send-email-andi@firstfloor.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/stat-shadow.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit 71b65445f0ed04c2afe3660f829779fddb2890c1 Author: Mika Westerberg Date: Tue Jul 28 13:51:21 2015 +0300 ACPI / PM: Use target_state to set the device power state Commit 20dacb71ad28 ("ACPI / PM: Rework device power management to follow ACPI 6") changed the device power management to use D3hot if the device in question does not have _PR3 method even if D3cold was requested by the caller. However, if the device has _PR3 device->power.state is also set to D3hot instead of D3Cold after power resources have been turned off because device->power.state will be assigned from "state" instead of "target_state". Next time the device is transitioned to D0, acpi_power_transition() will find that the current power state of the device is D3hot instead of D3cold which causes it to power down all resources required for the current (wrong) state D3hot. Below is a simplified ASL example of a real touch panel device which triggers the problem: Scope (TPL1) { Name (_PR0, Package (1) { \_SB.PCI0.I2C1.PXTC }) Name (_PR3, Package (1) { \_SB.PCI0.I2C1.PXTC }) ... } In both D0 and D3hot the same power resource is required. However, when acpi_power_transition() turns off power resources required for D3hot (as the device is transitioned to D0) it powers down PXTC which then makes the device to lose its power. Fix this by assigning "target_state" to the device power state instead of "state" that is always D3hot even for devices with valid _PR3. Fixes: 20dacb71ad28 (ACPI / PM: Rework device power management to follow ACPI 6) Signed-off-by: Mika Westerberg Signed-off-by: Rafael J. Wysocki drivers/acpi/device_pm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a49c269111a5b3c1fd2a98f36fa27423b94549f8 Author: Kinglong Mee Date: Mon Jul 27 15:31:38 2015 +0800 nfs: Fix an oops caused by using other thread's stack space in ASYNC mode An oops caused by using other thread's stack space in sunrpc ASYNC sending thread. [ 9839.007187] ------------[ cut here ]------------ [ 9839.007923] kernel BUG at fs/nfs/nfs4xdr.c:910! [ 9839.008069] invalid opcode: 0000 [#1] SMP [ 9839.008069] Modules linked in: blocklayoutdriver rpcsec_gss_krb5 nfsv4 dns_resolver nfs fscache snd_hda_codec_generic snd_hda_intel snd_hda_controller snd_hda_codec snd_hwdep snd_seq snd_seq_device snd_pcm joydev iosf_mbi crct10dif_pclmul snd_timer crc32_pclmul crc32c_intel ghash_clmulni_intel snd soundcore ppdev pvpanic parport_pc i2c_piix4 serio_raw virtio_balloon parport acpi_cpufreq nfsd nfs_acl lockd grace auth_rpcgss sunrpc qxl drm_kms_helper virtio_net virtio_console virtio_blk ttm drm virtio_pci virtio_ring virtio ata_generic pata_acpi [ 9839.008069] CPU: 0 PID: 308 Comm: kworker/0:1H Not tainted 4.0.0-0.rc4.git1.3.fc23.x86_64 #1 [ 9839.008069] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 [ 9839.008069] Workqueue: rpciod rpc_async_schedule [sunrpc] [ 9839.008069] task: ffff8800d8b4d8e0 ti: ffff880036678000 task.ti: ffff880036678000 [ 9839.008069] RIP: 0010:[] [] reserve_space.part.73+0x9/0x10 [nfsv4] [ 9839.008069] RSP: 0018:ffff88003667ba58 EFLAGS: 00010246 [ 9839.008069] RAX: 0000000000000000 RBX: 000000001fc15e18 RCX: ffff8800c0193800 [ 9839.008069] RDX: ffff8800e4ae3f24 RSI: 000000001fc15e2c RDI: ffff88003667bcd0 [ 9839.008069] RBP: ffff88003667ba58 R08: ffff8800d9173008 R09: 0000000000000003 [ 9839.008069] R10: ffff88003667bcd0 R11: 000000000000000c R12: 0000000000010000 [ 9839.008069] R13: ffff8800d9173350 R14: 0000000000000000 R15: ffff8800c0067b98 [ 9839.008069] FS: 0000000000000000(0000) GS:ffff88011fc00000(0000) knlGS:0000000000000000 [ 9839.008069] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 9839.008069] CR2: 00007f988c9c8bb0 CR3: 00000000d99b6000 CR4: 00000000000407f0 [ 9839.008069] Stack: [ 9839.008069] ffff88003667bbc8 ffffffffa03412c5 00000000c6c55680 ffff880000000003 [ 9839.008069] 0000000000000088 00000010c6c55680 0001000000000002 ffffffff816e87e9 [ 9839.008069] 0000000000000000 00000000477290e2 ffff88003667bab8 ffffffff81327ba3 [ 9839.008069] Call Trace: [ 9839.008069] [] encode_attrs+0x435/0x530 [nfsv4] [ 9839.008069] [] ? inet_sendmsg+0x69/0xb0 [ 9839.008069] [] ? selinux_socket_sendmsg+0x23/0x30 [ 9839.008069] [] ? do_sock_sendmsg+0x9f/0xc0 [ 9839.008069] [] ? kernel_sendmsg+0x58/0x70 [ 9839.008069] [] ? xdr_reserve_space+0x20/0x170 [sunrpc] [ 9839.008069] [] ? xdr_reserve_space+0x20/0x170 [sunrpc] [ 9839.008069] [] ? nfs4_xdr_enc_open_noattr+0x130/0x130 [nfsv4] [ 9839.008069] [] encode_open+0x2d5/0x340 [nfsv4] [ 9839.008069] [] ? nfs4_xdr_enc_open_noattr+0x130/0x130 [nfsv4] [ 9839.008069] [] ? xdr_encode_opaque+0x19/0x20 [sunrpc] [ 9839.008069] [] ? encode_string+0x2b/0x40 [nfsv4] [ 9839.008069] [] nfs4_xdr_enc_open+0xb3/0x140 [nfsv4] [ 9839.008069] [] rpcauth_wrap_req+0xac/0xf0 [sunrpc] [ 9839.008069] [] call_transmit+0x18b/0x2d0 [sunrpc] [ 9839.008069] [] ? call_decode+0x860/0x860 [sunrpc] [ 9839.008069] [] ? call_decode+0x860/0x860 [sunrpc] [ 9839.008069] [] __rpc_execute+0x90/0x460 [sunrpc] [ 9839.008069] [] rpc_async_schedule+0x15/0x20 [sunrpc] [ 9839.008069] [] process_one_work+0x1bb/0x410 [ 9839.008069] [] worker_thread+0x53/0x470 [ 9839.008069] [] ? process_one_work+0x410/0x410 [ 9839.008069] [] ? process_one_work+0x410/0x410 [ 9839.008069] [] kthread+0xd8/0xf0 [ 9839.008069] [] ? kthread_worker_fn+0x180/0x180 [ 9839.008069] [] ret_from_fork+0x58/0x90 [ 9839.008069] [] ? kthread_worker_fn+0x180/0x180 [ 9839.008069] Code: 00 00 48 c7 c7 21 fa 37 a0 e8 94 1c d6 e0 c6 05 d2 17 05 00 01 8b 03 eb d7 66 0f 1f 84 00 00 00 00 00 66 66 66 66 90 55 48 89 e5 <0f> 0b 0f 1f 44 00 00 66 66 66 66 90 55 48 89 e5 41 54 53 89 f3 [ 9839.008069] RIP [] reserve_space.part.73+0x9/0x10 [nfsv4] [ 9839.008069] RSP [ 9839.071114] ---[ end trace cc14c03adb522e94 ]--- Signed-off-by: Kinglong Mee Signed-off-by: Trond Myklebust fs/nfs/internal.h | 21 +++++++++++++++++++++ fs/nfs/nfs4proc.c | 10 +++++++++- 2 files changed, 30 insertions(+), 1 deletion(-) commit 3471648a7569512e10f154cdfe5076c341a5c099 Author: Jeff Layton Date: Fri Jul 10 15:58:42 2015 -0400 nfs: plug memory leak when ->prepare_layoutcommit fails "data" is currently leaked when the prepare_layoutcommit operation returns an error. Put the cred before taking the spinlock in that case, take the lock and then goto out_unlock which will drop the lock and then free "data". Signed-off-by: Jeff Layton Signed-off-by: Trond Myklebust fs/nfs/pnfs.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit a7dae1551b55eff5308e5aa0e0149e57533ecb50 Merge: a153790 e053f96 Author: Olof Johansson Date: Tue Jul 28 12:32:24 2015 +0200 Merge tag 'imx-fixes-4.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into fixes The i.MX fixes for 4.2, 2nd round: - Add the required second clock for i.MX35 FlexCAN in device tree, so that the device can be probed by kernel successfully. * tag 'imx-fixes-4.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: ARM: dts: i.MX35: Fix can support. Signed-off-by: Olof Johansson commit dc9f69b907f3853952d3ffb7918d05a662146712 Author: Avraham Stern Date: Tue Jul 7 16:53:42 2015 +0300 iwlwifi: mvm: Fix regular scan priority The code checks the total number of iterations to differentiate between regular scan and scheduled scan. However, regular scan has a total of one iteration, not zero. As a result, regular scan will have lower priority than it should have, and in case scheduled scan is already running when regular scan is requested, regular scan will be delayed until scheduled scan is aborted. Fix that by checking for total iterations number of one as an identifier for regular scan. Fixes: 133c8259f885 ("iwlwifi: mvm: rename generic_scan_cmd functions to dwell") Signed-off-by: Avraham Stern Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/scan.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c9fdec9f3970eeaa1b176422f46167f5f5158804 Author: Emmanuel Grumbach Date: Mon Jul 20 12:14:39 2015 +0300 iwlwifi: pcie: fix prepare card flow When the card is not owned by the PCIe bus, we need to acquire ownership first. This flow is implemented in iwl_pcie_prepare_card_hw. Because of a hardware bug, we need to disable link power management before we can request ownership otherwise the other user of the device won't get notified that we are requesting the device which will prevent us from acquire ownership. Same holds for the down flow where we need to make sure that any other potential user is notified that the driver is going down. CC: [4.1] Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/pcie/trans.c | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) commit 74472233233f577eaa0ca6d6e17d9017b6e53150 Author: Dirk Behme Date: Mon Jul 27 08:56:05 2015 +0200 USB: sierra: add 1199:68AB device ID Add support for the Sierra Wireless AR8550 device with USB descriptor 0x1199, 0x68AB. It is common with MC879x modules 1199:683c/683d which also are composite devices with 7 interfaces (0..6) and also MDM62xx based as the AR8550. The major difference are only the interface attributes 02/02/01 on interfaces 3 and 4 on the AR8550. They are vendor specific ff/ff/ff on MC879x modules. lsusb reports: Bus 001 Device 004: ID 1199:68ab Sierra Wireless, Inc. Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x1199 Sierra Wireless, Inc. idProduct 0x68ab bcdDevice 0.06 iManufacturer 3 Sierra Wireless, Incorporated iProduct 2 AR8550 iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 198 bNumInterfaces 7 bConfigurationValue 1 iConfiguration 1 Sierra Configuration bmAttributes 0xe0 Self Powered Remote Wakeup MaxPower 0mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 255 Vendor Specific Subclass bInterfaceProtocol 255 Vendor Specific Protocol iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 32 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x01 EP 1 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 32 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 255 Vendor Specific Subclass bInterfaceProtocol 255 Vendor Specific Protocol iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 32 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 32 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 255 Vendor Specific Subclass bInterfaceProtocol 255 Vendor Specific Protocol iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 32 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x03 EP 3 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 32 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 3 bAlternateSetting 0 bNumEndpoints 3 bInterfaceClass 2 Communications bInterfaceSubClass 2 Abstract (modem) bInterfaceProtocol 1 AT-commands (v.25ter) iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x84 EP 4 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 5 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x85 EP 5 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 32 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x04 EP 4 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 32 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 4 bAlternateSetting 0 bNumEndpoints 3 bInterfaceClass 2 Communications bInterfaceSubClass 2 Abstract (modem) bInterfaceProtocol 1 AT-commands (v.25ter) iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x86 EP 6 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 5 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x87 EP 7 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 32 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x05 EP 5 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 32 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 5 bAlternateSetting 0 bNumEndpoints 3 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 255 Vendor Specific Subclass bInterfaceProtocol 255 Vendor Specific Protocol iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x88 EP 8 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 5 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x89 EP 9 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 32 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x06 EP 6 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 32 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 6 bAlternateSetting 0 bNumEndpoints 3 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 255 Vendor Specific Subclass bInterfaceProtocol 255 Vendor Specific Protocol iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x8a EP 10 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 5 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x8b EP 11 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 32 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x07 EP 7 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 32 Device Qualifier (for other device speed): bLength 10 bDescriptorType 6 bcdUSB 2.00 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 bNumConfigurations 1 Device Status: 0x0001 Self Powered Signed-off-by: Dirk Behme Cc: Lars Melin Cc: stable Signed-off-by: Johan Hovold drivers/usb/serial/sierra.c | 1 + 1 file changed, 1 insertion(+) commit eb48b12ee5e05dd3ea473d008873f5228a63eb7a Author: Alexandre Courbot Date: Thu Jul 9 17:15:14 2015 +0900 drm/nouveau/nouveau/ttm: fix tiled system memory with Maxwell Add Maxwell to the switch statement that sets node->memtype, otherwise all tiling information is ignored for buffers in system memory. While we are at it, make that switch statement explicitly complain the next time we meet a non-handled card family. Signed-off-by: Alexandre Courbot Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nouveau_ttm.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 697bb728d9e2367020aa0c5af7363809d7658e43 Author: Ben Skeggs Date: Tue Jul 28 17:20:57 2015 +1000 drm/nouveau/kms/nv50-: guard against enabling cursor on disabled heads Userspace has started doing this, which upsets the display class hw error checking in various unpleasant ways. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nv50_display.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 17fb874dee093139923af8ed36061faa92cc8e79 Author: Martin Schwidefsky Date: Fri Jul 24 13:13:30 2015 +0200 hwrng: core - correct error check of kthread_run call The kthread_run() function can return two different error values but the hwrng core only checks for -ENOMEM. If the other error value -EINTR is returned it is assigned to hwrng_fill and later used on a kthread_stop() call which naturally crashes. Cc: stable@vger.kernel.org Signed-off-by: Martin Schwidefsky Signed-off-by: Herbert Xu drivers/char/hw_random/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0b991f5cdcd6201e5401f83ca3a672343c3bfc49 Author: Heiko Carstens Date: Mon Jul 27 09:53:49 2015 +0200 s390/cachinfo: add missing facility check to init_cache_level() Stephen Powell reported the following crash on a z890 machine: Kernel BUG at 00000000001219d0 [verbose debug info unavailable] illegal operation: 0001 ilc:3 [#1] SMP Krnl PSW : 0704e00180000000 00000000001219d0 (init_cache_level+0x38/0xe0) R:0 T:1 IO:1 EX:1 Key:0 M:1 W:0 P:0 AS:3 CC:2 PM:0 EA:3 Krnl Code: 00000000001219c2: a7840056 brc 8,121a6e 00000000001219c6: a7190000 lghi %r1,0 #00000000001219ca: eb101000004c ecag %r1,%r0,0(%r1) >00000000001219d0: a7390000 lghi %r3,0 00000000001219d4: e310f0a00024 stg %r1,160(%r15) 00000000001219da: a7080000 lhi %r0,0 00000000001219de: a7b9f000 lghi %r11,-4096 00000000001219e2: c0a0002899d9 larl %r10,634d94 Call Trace: [<0000000000478ee2>] detect_cache_attributes+0x2a/0x2b8 [<000000000097c9b0>] cacheinfo_sysfs_init+0x60/0xc8 [<00000000001001c0>] do_one_initcall+0x98/0x1c8 [<000000000094fdc2>] kernel_init_freeable+0x212/0x2d8 [<000000000062352e>] kernel_init+0x26/0x118 [<000000000062fd2e>] kernel_thread_starter+0x6/0xc The illegal operation was executed because of a missing facility check, which should have made sure that the ECAG execution would only be executed on machines which have the general-instructions-extension facility installed. Reported-and-tested-by: Stephen Powell Cc: stable@vger.kernel.org # v4.0+ Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky arch/s390/kernel/cache.c | 2 ++ 1 file changed, 2 insertions(+) commit ca4da5dd1f99fe9c59f1709fb43e818b18ad20e0 Author: Colin Ian King Date: Mon Jul 27 15:23:43 2015 +0100 KEYS: ensure we free the assoc array edit if edit is valid __key_link_end is not freeing the associated array edit structure and this leads to a 512 byte memory leak each time an identical existing key is added with add_key(). The reason the add_key() system call returns okay is that key_create_or_update() calls __key_link_begin() before checking to see whether it can update a key directly rather than adding/replacing - which it turns out it can. Thus __key_link() is not called through __key_instantiate_and_link() and __key_link_end() must cancel the edit. CVE-2015-1333 Signed-off-by: Colin Ian King Signed-off-by: David Howells Signed-off-by: James Morris security/keys/keyring.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit eb8bb7774e6b433038632db5e9aafbf318edc6c1 Merge: cbfe8fa b7eea2d Author: Dave Airlie Date: Tue Jul 28 12:38:30 2015 +1000 Merge branch 'linux-4.2' of git://anongit.freedesktop.org/git/nouveau/linux-2.6 into drm-fixes Various minor fixes all over the place, nothing too scary. * 'linux-4.2' of git://anongit.freedesktop.org/git/nouveau/linux-2.6: drm/nouveau/fbcon/g80: reduce PUSH_SPACE alloc, fire ring on accel init drm/nouveau/fbcon/gf100-: reduce RING_SPACE allocation drm/nouveau/fbcon/nv11-: correctly account for ring space usage drm/nouveau/bios: add proper support for opcode 0x59 drm/nouveau/bios: add 0x59 and 0x5a opcodes drm/nouveau/disp: Use NULL for pointers drm/nouveau/pm: fix a potential race condition when creating an engine context drm/nouveau/pm: prevent freeing the wrong engine context drm/nouveau/gr/gf100: wait for GR idle after GO_IDLE bundle drm/nouveau/gr/gf100: wait on bottom half of FE's pipeline drm/nouveau/fifo/gk104: kick channels when deactivating them drm/nouveau/ibus/gk20a: increase SM wait timeout drm/nouveau/platform: fix compile error if !CONFIG_IOMMU drm/nouveau: Do not leak client objects drm/nouveau/clk/gt215: u32->s32 for difference in req. and set clock drm/nouveau/drm/nv04-nv40/instmem: protect access to priv->heap by mutex drm/nouveau: hold mutex when calling nouveau_abi16_fini() commit d58069265c9d15c04c9e3832cd1d9dffe9d4d5f6 Author: John Horan Date: Fri Jul 24 14:45:33 2015 -0700 Input: bcm5974 - add support for the 2015 Macbook Pro Add support for the MacBookPro12,1 model. This patch needs to be applied together with the accompanied HID patch, as usual. Tested-by: John Horan Tested-by: Jochen Radmacher Tested-by: Yang Hongyang Tested-by: Yen-Chin, Lee Tested-by: George Hilios Tested-by: Janez Urevc Signed-off-by: Henrik Rydberg Signed-off-by: Dmitry Torokhov drivers/input/mouse/bcm5974.c | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) commit a4a2c54560f2c57b88ba0283f141b44f594c2337 Author: Henrik Rydberg Date: Fri Jul 24 14:45:05 2015 -0700 HID: apple: Add support for the 2015 Macbook Pro This patch adds keyboard support for MacbookPro12,1 as WELLSPRING9 (0x0272, 0x0273, 0x0274). The touchpad is handled in a separate bcm5974 patch, as usual. Tested-by: John Horan Tested-by: Jochen Radmacher Tested-by: Yang Hongyang Tested-by: Yen-Chin, Lee Tested-by: George Hilios Tested-by: Janez Urevc Signed-off-by: Henrik Rydberg Acked-by: Jiri Kosina Signed-off-by: Dmitry Torokhov drivers/hid/hid-apple.c | 6 ++++++ drivers/hid/hid-core.c | 6 ++++++ drivers/hid/hid-ids.h | 3 +++ 3 files changed, 15 insertions(+) commit efbd34702fb1cb66e08606a623a8a76f86b300f9 Author: Henrik Rydberg Date: Fri Jul 24 14:44:37 2015 -0700 Input: bcm5974 - prepare for a new trackpad generation With the advent of the Macbook Pro 12, we see a new generation of trackpads, capable of force sensoring and haptic feedback. This patch prepares for the new device by adding configuration data for the code paths that would otherwise look different. Tested-by: John Horan Tested-by: Jochen Radmacher Tested-by: Yang Hongyang Tested-by: Yen-Chin, Lee Tested-by: George Hilios Tested-by: Janez Urevc Signed-off-by: Henrik Rydberg Signed-off-by: Dmitry Torokhov drivers/input/mouse/bcm5974.c | 132 ++++++++++++++++++++++++++---------------- 1 file changed, 81 insertions(+), 51 deletions(-) commit ab80ee3895a76f1beba35847911d89833fbb68ab Author: Jiri Kosina Date: Fri Jul 24 14:33:21 2015 -0700 Input: synaptics - dump ext10 capabilities as well Make extended capabilities obtained through $10 query also available in touchpad identification. Signed-off-by: Jiri Kosina Reviewed-by: Benjamin Tissoires Signed-off-by: Dmitry Torokhov drivers/input/mouse/synaptics.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 158cd4af8dedbda0d612d448c724c715d0dda649 Author: Lars Westerhoff Date: Tue Jul 28 01:32:21 2015 +0300 packet: missing dev_put() in packet_do_bind() When binding a PF_PACKET socket, the use count of the bound interface is always increased with dev_hold in dev_get_by_{index,name}. However, when rebound with the same protocol and device as in the previous bind the use count of the interface was not decreased. Ultimately, this caused the deletion of the interface to fail with the following message: unregister_netdevice: waiting for dummy0 to become free. Usage count = 1 This patch moves the dev_put out of the conditional part that was only executed when either the protocol or device changed on a bind. Fixes: 902fefb82ef7 ('packet: improve socket create/bind latency in some cases') Signed-off-by: Lars Westerhoff Signed-off-by: Dan Carpenter Reviewed-by: Daniel Borkmann Signed-off-by: David S. Miller net/packet/af_packet.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit f580dd042823294b5b548e0f8bf1ba7a4b114fa5 Author: Trond Myklebust Date: Sat Jul 11 17:48:52 2015 +0200 SUNRPC: Report TCP errors to the caller Signed-off-by: Trond Myklebust net/sunrpc/xprtsock.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) commit c5c62f1bb0e1fc94ab77ec01e92ccab5cb249742 Author: Ivan Vecera Date: Thu Jul 23 16:37:43 2015 +0200 macvtap: fix network header pointer for VLAN tagged pkts Network header is set with offset ETH_HLEN but it is not true for VLAN (multiple-)tagged and results in checksum issues in lower devices. v2: leave skb->protocol untouched (thx Vlad), comment added v3: moved after skb_probe_transport_header() call (thx Toshiaki) Signed-off-by: Ivan Vecera Signed-off-by: David S. Miller drivers/net/macvtap.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 1513069edcf8dd86cfd8d5daef482b97d6b93df6 Author: Alexander Duyck Date: Mon Jul 27 13:08:06 2015 -0700 fib_trie: Drop unnecessary calls to leaf_pull_suffix It was reported that update_suffix was taking a long time on systems where a large number of leaves were attached to a single node. As it turns out fib_table_flush was calling update_suffix for each leaf that didn't have all of the aliases stripped from it. As a result, on this large node removing one leaf would result in us calling update_suffix for every other leaf on the node. The fix is to just remove the calls to leaf_pull_suffix since they are redundant as we already have a call in resize that will go through and update the suffix length for the node before we exit out of fib_table_flush or fib_table_flush_external. Reported-by: David Ahern Signed-off-by: Alexander Duyck Tested-by: David Ahern Signed-off-by: David S. Miller net/ipv4/fib_trie.c | 4 ---- 1 file changed, 4 deletions(-) commit 7a6e0706c09b121d4656b055d9b0494320246f4f Author: David S. Miller Date: Mon Jul 27 14:24:48 2015 -0700 macb: Fix build with macro'ized readl/writel. If an architecture defines readl/writel using CPP macros, we get the following kinds of build failure: > > > drivers/net/ethernet/cadence/macb.c:164:1: error: macro "writel" > > > passed 3 arguments, but takes just 2 > macb_or_gem_writel(bp, SA1B, bottom); > ^ Rename the methods so that this doesn't happen. Signed-off-by: David S. Miller drivers/net/ethernet/cadence/macb.c | 14 +++++++------- drivers/net/ethernet/cadence/macb.h | 16 ++++++++-------- 2 files changed, 15 insertions(+), 15 deletions(-) commit 84b6b023cb332be67b808096aece039b6fec408c Merge: a14aad0 4248bd7 Author: Greg Kroah-Hartman Date: Mon Jul 27 13:35:51 2015 -0700 Merge tag 'fixes-for-v4.2-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-linus Felipe writes: usb: fixes for v4.2-rc5 BCD driver now reads correct register to fetch HW dequeue pointer address. f_uac2 got a fix for bInterval calculation. Both f_hid and f_printer can now correctly limit number of instances when used through configfs. Signed-off-by: Felipe Balbi commit a14aad05c684e8c8c7b095b87de342bb97577ce4 Merge: cbfe8fa 2f01a33 Author: Greg Kroah-Hartman Date: Mon Jul 27 11:35:18 2015 -0700 Merge tag 'usb-ci-v4.2-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/usb into usb-linus Peter writes: It is a bug fix that using ehci_init_driver at wrong place, the correct place should be at ci core driver's module_init, and only be called one time. commit e162b219ae6a64be353f254bd4ba1c9627c67749 Merge: cbfe8fa 53bc7dc Author: Jens Axboe Date: Mon Jul 27 11:58:41 2015 -0600 Merge branch 'stable/for-jens-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen into for-linus Konrad writes: "There are three bugs that have been found in the xen-blkfront (and backend). Two of them have the stable tree CC-ed. They have been found where an guest is migrating to a host that is missing 'feature-persistent' support (from one that has it enabled). We end up hitting an BUG() in the driver code." commit f91b1feada0b6f0a4d33648155b3ded2c4e0707e Author: Ard Biesheuvel Date: Sun Jul 26 14:59:00 2015 +0200 arm64/efi: map the entire UEFI vendor string before reading it At boot, the UTF-16 UEFI vendor string is copied from the system table into a char array with a size of 100 bytes. However, this size of 100 bytes is also used for memremapping() the source, which may not be sufficient if the vendor string exceeds 50 UTF-16 characters, and the placement of the vendor string inside a 4 KB page happens to leave the end unmapped. So use the correct '100 * sizeof(efi_char16_t)' for the size of the mapping. Signed-off-by: Ard Biesheuvel Fixes: f84d02755f5a ("arm64: add EFI runtime services") Cc: # 3.16+ Signed-off-by: Catalin Marinas arch/arm64/kernel/efi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 4248bd7d3e2c7c87ff695d812018b8c22b5a5ab1 Author: Andrzej Pietrasiewicz Date: Fri Jul 24 09:48:41 2015 +0200 usb: gadget: f_printer: actually limit the number of instances There is a predefined maximum number of printer instances, currently 4. A chrdev region is allocated accordingly, but with configfs the user can create as many printer function directories as they like. To make the number of printer instances consistent with the number of allocated minors, the limit is enforced at directory creation time. Signed-off-by: Andrzej Pietrasiewicz Signed-off-by: Felipe Balbi drivers/usb/gadget/function/f_printer.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit 774cf72f8ad971031428f8057d2947c8780a7b8c Author: Andrzej Pietrasiewicz Date: Fri Jul 24 09:48:40 2015 +0200 usb: gadget: f_hid: actually limit the number of instances There is a predefined maximum number of hid instances, currently 4. A chrdev region is allocated accordingly, but with configfs the user can create as many hid function directories as they like. To make the number of hid instances consistent with the number of allocated minors, the limit is enforced at directory creation time. Signed-off-by: Andrzej Pietrasiewicz Signed-off-by: Felipe Balbi drivers/usb/gadget/function/f_hid.c | 4 ++++ 1 file changed, 4 insertions(+) commit c41b7767673cb76adeb2b5fde220209f717ea13c Author: Peter Chen Date: Mon Jul 27 14:51:47 2015 +0800 usb: gadget: f_uac2: fix calculation of uac2->p_interval The p_interval should be less if the 'bInterval' at the descriptor is larger, eg, if 'bInterval' is 5 for HS, the p_interval should be 8000 / 16 = 500. It fixes the patch 9bb87f168931 ("usb: gadget: f_uac2: send reasonably sized packets") Cc: # v3.18+ Fixes: 9bb87f168931 ("usb: gadget: f_uac2: send reasonably sized packets") Acked-by: Daniel Mack Signed-off-by: Peter Chen Signed-off-by: Felipe Balbi drivers/usb/gadget/function/f_uac2.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 743c69e7c089ba1bea1b207c5829dd079a4e98f9 Author: NeilBrown Date: Mon Jul 27 10:55:35 2015 +1000 sunrpc: translate -EAGAIN to -ENOBUFS when socket is writable. The networking layer does not reliably report the distinction between a non-block write failing because: 1/ the queue is too full already and 2/ a memory allocation attempt failed. The distinction is important because in the first case it is appropriate to retry as soon as the socket reports that it is writable, and in the second case a small delay is required as the socket will most likely report as writable but kmalloc could still fail. sk_stream_wait_memory() exhibits this distinction nicely, setting 'vm_wait' if a small wait is needed. However in the non-blocking case it always returns -EAGAIN no matter the cause of the failure. This -EAGAIN call get all the way to sunrpc. The sunrpc layer expects EAGAIN to indicate the first cause, and ENOBUFS to indicate the second. Various documentation suggests that this is not unreasonable, but does not guarantee the desired error codes. The result of getting -EAGAIN when -ENOBUFS is expected is that the send is tried again in a tight loop and soft lockups are reported. so: add tests after calls to xs_sendpages() to translate -EAGAIN into -ENOBUFS if the socket is writable. This cannot happen inside xs_sendpages() as the test for "is socket writable" is different between TCP and UDP. With this change, the tight loop retrying xs_sendpages() becomes a loop which only retries every 250ms, and so will not trigger a soft-lockup warning. It is possible that the write did fail because the queue was too full and by the time xs_sendpages() completed, the queue was writable again. In this case an extra 250ms delay is inserted that isn't really needed. This circumstance suggests a degree of congestion so a delay is not necessarily a bad thing, and it can only cause a single 250ms delay, not a series of them. Signed-off-by: NeilBrown Signed-off-by: Trond Myklebust net/sunrpc/xprtsock.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit bdcc2cd14e4e86f1fb19c78e191a1b8da3d6dea0 Author: J. Bruce Fields Date: Thu Jul 23 11:08:43 2015 -0400 NFSv4.2: handle NFS-specific llseek errors Handle NFS-specific llseek errors instead of letting them leak out to userspace. Reported-by: Benjamin Coddington Signed-off-by: J. Bruce Fields Signed-off-by: Trond Myklebust fs/nfs/nfs42proc.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) commit 02c3b4c75994888e58a6e6e8176640cde9822597 Author: Al Cooper Date: Fri Jul 24 16:09:36 2015 -0400 usb: gadget: bdc: fix a driver crash on disconnect ep_dequeue() in bdc_ep.c was capturing the hw dequeue pointer incorrectly by reading the wrong register for the upper 32 bits. Signed-off-by: Al Cooper Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/bdc/bdc_ep.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1e0994730f772580ff98754eb5595190cdf371ef Author: Igor Mammedov Date: Wed Jul 15 16:48:50 2015 +0200 vhost: fix error handling for memory region alloc callers of vhost_kvzalloc() expect the same behaviour on allocation error as from kmalloc/vmalloc i.e. NULL return value. So just return vzmalloc() returned value instead of returning ERR_PTR(-ENOMEM) Fixes: 4de7255f7d2be5 ("vhost: extend memory regions allocation to vmalloc") Spotted-by: Dan Carpenter Suggested-by: Julia Lawall Signed-off-by: Igor Mammedov Signed-off-by: Michael S. Tsirkin drivers/vhost/vhost.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 7932c0bd7740f4cd2aa168d3ce0199e7af7d72d5 Author: Marc-André Lureau Date: Fri Jul 17 15:32:03 2015 +0200 vhost: actually track log eventfd file While reviewing vhost log code, I found out that log_file is never set. Note: I haven't tested the change (QEMU doesn't use LOG_FD yet). Cc: stable@vger.kernel.org Signed-off-by: Marc-André Lureau Signed-off-by: Michael S. Tsirkin drivers/vhost/vhost.c | 1 + 1 file changed, 1 insertion(+) commit d4c30454db732d5a377abfc309c7a629f3bbaeb0 Author: Trond Myklebust Date: Fri Jul 24 12:31:33 2015 -0400 NFS: Don't clear desc->pg_moreio in nfs_do_recoalesce() Recoalescing does not affect whether or not we've already sent off I/O, and doing so means that we end up sending a bunch of synchronous for cases where we actually need to be using unstable writes. Signed-off-by: Trond Myklebust fs/nfs/pagelist.c | 2 -- 1 file changed, 2 deletions(-) commit 03d5eb65b53889fe98a5ecddfe205c16e3093190 Author: Trond Myklebust Date: Mon Jul 27 10:23:19 2015 -0400 NFS: Fix a memory leak in nfs_do_recoalesce If the function exits early, then we must put those requests that were not processed back onto the &mirror->pg_list so they can be cleaned up by nfs_pgio_error(). Fixes: a7d42ddb30997 ("nfs: add mirroring support to pgio layer") Cc: stable@vger.kernel.org # v4.0+ Signed-off-by: Trond Myklebust fs/nfs/pagelist.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 599ad5ac9a59587a46f6540a8e2ab79dff811f7d Author: Krzysztof Kozlowski Date: Fri Jul 10 15:26:12 2015 +0900 of: Drop owner assignment from platform and i2c driver platform_driver and i2c_driver do not need to set an owner because core will set it. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Rob Herring drivers/of/unittest.c | 3 --- 1 file changed, 3 deletions(-) commit 3b6e644e6540405fd3582e0a90412fccbddd0e45 Author: Alban Bedel Date: Fri Jul 3 10:14:57 2015 +0200 DEVICETREE: Misc fix for the AR7100 SPI controller binding Fix the clocks property documentation and use lower case for hex values in the example. Signed-off-by: Alban Bedel Signed-off-by: Rob Herring Documentation/devicetree/bindings/spi/spi-ath79.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 35068ce8cbf1749ef1a4b9b1493af83b8488c37b Author: Tomeu Vizoso Date: Wed Jul 1 09:10:43 2015 +0200 of: constify drv arg of of_driver_match_device stub With this change the stub has the same signature as the actual function, preventing this compiler warning when building without CONFIG_OF: drivers/base/property.c: In function 'fwnode_driver_match_device': >> drivers/base/property.c:608:38: warning: passing argument 2 of 'of_driver_match_device' discards 'const' qualifier from pointer target type return of_driver_match_device(dev, drv); ^ In file included from drivers/base/property.c:18:0: include/linux/of_device.h:61:19: note: expected 'struct device_driver *' but argument is of type 'const struct device_driver *' static inline int of_driver_match_device(struct device *dev, ^ Signed-off-by: Tomeu Vizoso Signed-off-by: Rob Herring include/linux/of_device.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 39da809e86274abbd9010365906045e02da3944a Author: Rob Herring Date: Sun Jul 5 10:18:41 2015 -0500 of: add HAS_IOMEM depends to OF_ADDRESS On UML builds, of_address.c fails to compile: ../drivers/of/address.c:873:2: error: implicit declaration of function ‘ioremap’ [-Werror=implicit-function-declaration] This is due to CONFIG_OF now being user selectable. Add a dependency on HAS_IOMEM to OF_ADDRESS in order to fix this. Signed-off-by: Rob Herring Cc: Grant Likely drivers/of/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6ed443c07f1e7f819983422b16598facb152250d Author: Baruch Siach Date: Sun Jul 5 09:55:44 2015 +0300 dm crypt: update wiki page URL Cryptsetup moved to gitlab. This is a leftover from commit e44f23b32dc7 (dm crypt: update URLs to new cryptsetup project page, 2015-04-05). Signed-off-by: Baruch Siach Signed-off-by: Mike Snitzer drivers/md/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 134bf30c06f057d6b8d90132e8f8b3cd2be79572 Author: Colin Ian King Date: Thu Jul 23 16:47:59 2015 +0100 dm cache policy smq: fix alloc_bitset check that always evaluates as false static analysis by cppcheck has found a check on alloc_bitset that always evaluates as false and hence never finds an allocation failure: [drivers/md/dm-cache-policy-smq.c:1689]: (warning) Logical conjunction always evaluates to false: !EXPR && EXPR. Fix this by removing the incorrect mq->cache_hit_bits check Signed-off-by: Colin Ian King Signed-off-by: Mike Snitzer drivers/md/dm-cache-policy-smq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 00a2916f7f82c348a2a94dbb572874173bc308a3 Author: Peter Zijlstra Date: Mon Jul 27 10:35:07 2015 +0200 perf: Fix running time accounting A recent fix to the shadow timestamp inadvertly broke the running time accounting. We must not update the running timestamp if we fail to schedule the event, the event will not have ran. This can (and did) result in negative total runtime because the stopped timestamp was before the running timestamp (we 'started' but never stopped the event -- because it never really started we didn't have to stop it either). Reported-and-Tested-by: Vince Weaver Fixes: 72f669c0086f ("perf: Update shadow timestamp before add event") Signed-off-by: Peter Zijlstra (Intel) Cc: stable@vger.kernel.org # 4.1 Cc: Shaohua Li Signed-off-by: Thomas Gleixner kernel/events/core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5ce000b297a1c1bb126a14b02acb40318b88a903 Author: Woodrow Shen Date: Mon Jul 27 18:34:31 2015 +0800 ALSA: hda - Add pin quirk for the headset mic jack detection on Dell laptop The new Dell laptop with codec 256 can't detect headset mic when headset was inserted on the machine. From alsa-info, we check init_pin_configs and need to define the new register value for pin 0x1d & 0x1e because the original macro ALC256_STANDARD_PINS can't match pin definition. Also, the macro ALC256_STANDARD_PINS is simplified by removing them. This makes headset mic works on laptop. Codec: Realtek ALC256 Vendor Id: 0x10ec0256 Subsystem Id: 0x102806f2 BugLink: https://bugs.launchpad.net/bugs/1478497 Signed-off-by: Woodrow Shen Signed-off-by: Takashi Iwai sound/pci/hda/patch_realtek.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) commit b7eea2d7e67cd4b65f42c00624277dae780f7009 Author: Ilia Mirkin Date: Mon Jun 29 20:49:48 2015 -0400 drm/nouveau/fbcon/g80: reduce PUSH_SPACE alloc, fire ring on accel init Only 58 words get written to the ring, not 59. Also, normalize the accel init wrt nvc0 and nv04 fbcon impls by firing the ring at accel init time rather than waiting until "later". Signed-off-by: Ilia Mirkin Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nv50_fbcon.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 4fd26cb1e4049c7a630d86d52864a5722c7453ac Author: Ilia Mirkin Date: Mon Jun 29 20:43:46 2015 -0400 drm/nouveau/fbcon/gf100-: reduce RING_SPACE allocation We only emit 58 words to the ring, not 60. Signed-off-by: Ilia Mirkin Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvc0_fbcon.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d108142c0840ce389cd9898aa76943b3fb430b83 Author: Ilia Mirkin Date: Mon Jun 29 04:07:20 2015 -0400 drm/nouveau/fbcon/nv11-: correctly account for ring space usage The RING_SPACE macro accounts how much space is used up so it's important to ask it for the right amount. Incorrect accounting of this can cause page faults down the line as writes are attempted outside of the ring. Signed-off-by: Ilia Mirkin Cc: stable@vger.kernel.org Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nv04_fbcon.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d31b11d85814ff669cfeb93c0f85b9d659a85ef8 Author: Ilia Mirkin Date: Fri Jun 19 01:19:40 2015 -0400 drm/nouveau/bios: add proper support for opcode 0x59 More analysis shows that this is identical to 0x79 except that it loads the frequency indirectly from elsewhere in the VBIOS. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91025 Signed-off-by: Ilia Mirkin Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/bios/init.c | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) commit 360ccb8436ce83b9c25f969cee7b1b607899063b Author: Ilia Mirkin Date: Thu Jun 18 23:59:06 2015 -0400 drm/nouveau/bios: add 0x59 and 0x5a opcodes Opcode 0x5a is a register write for data looked up from another part of the VBIOS image. 0x59 is a more complex opcode, but we may as well recognize it. These occur on a single known instance of Riva TNT2 hardware. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91025 Signed-off-by: Ilia Mirkin Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/bios/init.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) commit 1196bcf92142ad6f022df01ab8120aefa908eaea Author: Thierry Reding Date: Mon Jul 21 14:02:58 2014 +0200 drm/nouveau/disp: Use NULL for pointers The return type of exec_lookup() is struct nvkm_output *, so it should return NULL rather than 0. Signed-off-by: Thierry Reding Reviewed-by: Emil Velikov Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/disp/gf110.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 305c1959ea60ddcae5142a20c50db849a40c2a35 Author: Samuel Pitoiset Date: Sun Jun 7 22:40:12 2015 +0200 drm/nouveau/pm: fix a potential race condition when creating an engine context There is always the possiblity that the ppm->context pointer would get partially updated and accidentally would equal ctx. This would allow two contexts to co-exist, which is not acceptable. Moving the test to the critical section takes care of this problem. Signed-off-by: Samuel Pitoiset Signed-off-by: Martin Peres Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/pm/base.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 3693d544056b822f7f2454da5acb7eda9471b902 Author: Samuel Pitoiset Date: Sun Jun 7 22:40:11 2015 +0200 drm/nouveau/pm: prevent freeing the wrong engine context This fixes a crash when multiple PM engine contexts are created. Signed-off-by: Samuel Pitoiset Reviewed-by: Martin Peres Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/pm/base.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 4a8cf4513dd4279d342eb41abdb9db65285732b3 Author: Alexandre Courbot Date: Mon Apr 27 17:25:11 2015 +0900 drm/nouveau/gr/gf100: wait for GR idle after GO_IDLE bundle After submitting a GO_IDLE bundle, one must wait for GR to effectively be idle before submitting the next bundle. Failure to do so may result in undefined behavior in some rare cases. Signed-off-by: Alexandre Courbot Reported-by: Kary Jin Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c | 37 ++++++++++++++++++++++++++ drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.h | 1 + 2 files changed, 38 insertions(+) commit 19bf09cecfec1891069f1d5353a0298debd98713 Author: Alexandre Courbot Date: Wed Apr 29 23:04:23 2015 +0900 drm/nouveau/gr/gf100: wait on bottom half of FE's pipeline When emitting the ICMD bundle, wait on the bottom half (bit 3 of the GR_STATUS register) instead of upper half (bit 2) to make sure methods are effectively emitted. Signed-off-by: Alexandre Courbot Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1addc12648521d15ef33c1a88d0354850190dfa7 Author: Alexandre Courbot Date: Thu Apr 16 11:33:32 2015 +0900 drm/nouveau/fifo/gk104: kick channels when deactivating them Kicking channels is part of their deactivation process. Maxwell chips are particularly sensitive to this, and can start fetching the previous pushbuffer of a recycled channel if this is not done. While we are at it, improve the channel preemption code to only wait for bit 20 of 0x002634 to turn to 0, as it is the bit indicating a preempt is pending. Signed-off-by: Alexandre Courbot Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c | 29 +++++++++++++++++------- 1 file changed, 21 insertions(+), 8 deletions(-) commit 9c56be4cf3d6db5a20c3b6483bd4cdc21c15cf4f Author: Alexandre Courbot Date: Tue Apr 28 16:17:07 2015 +0900 drm/nouveau/ibus/gk20a: increase SM wait timeout Increase clock timeout for SYS, FPB and GPC in order to avoid operation failure at high gpcclk rate. Signed-off-by: Alexandre Courbot Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/ibus/gk20a.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit a67e14b0b6e35355411a4f2b05f8d087a196dac9 Author: Alexandre Courbot Date: Wed Apr 8 18:08:13 2015 +0900 drm/nouveau/platform: fix compile error if !CONFIG_IOMMU The lack of IOMMU API support can make nouveau_platform_probe_iommu() fail to compile because struct iommu_ops is then empty. Fix this by skipping IOMMU probe in that case - lack of IOMMU on platform devices is sub-optimal, but is not an error. Signed-off-by: Alexandre Courbot Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nouveau_platform.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit f5654d9555b470d05be9d6d26cfb8fb79239ac3e Author: Thierry Reding Date: Thu Oct 16 11:54:54 2014 +0200 drm/nouveau: Do not leak client objects The memory allocated for a nouveau_cli object in nouveau_cli_create() is never freed. Free the memory in nouveau_cli_destroy() to plug this leak. kmemleak recorded this after running a couple of nouveau test programs. Note that kmemleak points at drm_open_helper() because for some reason it thinks that skipping the first two stack frames is a good idea. Signed-off-by: Thierry Reding Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nouveau_drm.c | 1 + 1 file changed, 1 insertion(+) commit 9694554691d26226f84fa1d6f500b7e7c9288510 Author: Roy Spliet Date: Sat May 23 10:37:42 2015 +0200 drm/nouveau/clk/gt215: u32->s32 for difference in req. and set clock This difference can of course be negative too... Signed-off-by: Roy Spliet Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/clk/gt215.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 7512223b1ece29a5968ed8b67ccb891d21b7834b Author: Kamil Dudka Date: Wed Jul 15 22:57:43 2015 +0200 drm/nouveau/drm/nv04-nv40/instmem: protect access to priv->heap by mutex This fixes the list_del corruption reported at . Signed-off-by: Kamil Dudka drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv04.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit ac8c79304280da6ef05c348a9da03ab04898b994 Author: Kamil Dudka Date: Wed Jul 15 17:18:15 2015 +0200 drm/nouveau: hold mutex when calling nouveau_abi16_fini() This was the only access to cli->abi16 without holding the mutex. Signed-off-by: Kamil Dudka drivers/gpu/drm/nouveau/nouveau_drm.c | 2 ++ 1 file changed, 2 insertions(+) commit 8fff755e9f8d0f70a595e79f248695ce6aef5cc3 Author: Andrew Lunn Date: Sat Jul 25 22:38:02 2015 +0200 net: fec: Ensure clocks are enabled while using mdio bus When a switch is attached to the mdio bus, the mdio bus can be used while the interface is not open. If the IPG clock is not enabled, MDIO reads/writes will simply time out. Add support for runtime PM to control this clock. Enable/disable this clock using runtime PM, with open()/close() and mdio read()/write() function triggering runtime PM operations. Since PM is optional, the IPG clock is enabled at probe and is no longer modified by fec_enet_clk_enable(), thus if PM is not enabled in the kernel, it is guaranteed the clock is running when MDIO operations are performed. Signed-off-by: Andrew Lunn Signed-off-by: Lucas Stach Cc: tyler.baker@linaro.org Cc: fabio.estevam@freescale.com Cc: shawn.guo@linaro.org Tested-by: Fabio Estevam Tested-by: Tyler Baker Signed-off-by: David S. Miller drivers/net/ethernet/freescale/fec_main.c | 89 ++++++++++++++++++++++++++----- 1 file changed, 76 insertions(+), 13 deletions(-) commit b9d9c9efc292dd0ffe172780f915ed74eba3556c Author: Takashi Iwai Date: Mon Jul 27 10:13:37 2015 +0200 ALSA: hda - Apply fixup for another Toshiba Satellite S50D Toshiba Satellite S50D has another model with a different PCI SSID (1179:fa93) while the previous fixup was for 1179:fa91. Adjust the fixup entry with SND_PCI_QUIRK_MASK() to match with both devices. Reported-by: Tim Sample Cc: Signed-off-by: Takashi Iwai sound/pci/hda/patch_sigmatel.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 7025e88a79d64aa4ba58fd03d630a78b12cce6ae Author: WingMan Kwok Date: Fri Jul 24 15:02:29 2015 -0400 net: netcp: Fixes SGMII reset on network interface shutdown This patch asserts SGMII RTRESET, i.e. resetting the SGMII Tx/Rx logic, during network interface shutdown to avoid having the hardware wedge when shutting down with high incoming traffic rates. This is cleared (brought out of RTRESET) when the interface is brought back up. Signed-off-by: WingMan Kwok Signed-off-by: David S. Miller drivers/net/ethernet/ti/netcp.h | 1 + drivers/net/ethernet/ti/netcp_ethss.c | 18 ++++++++++++++++++ drivers/net/ethernet/ti/netcp_sgmii.c | 30 ++++++++++++++++++++++++++++-- 3 files changed, 47 insertions(+), 2 deletions(-) commit 9c6893e0be38b6ca9a56a854226e51dee0a16a5a Author: Takashi Sakamoto Date: Sun Jul 26 16:10:09 2015 +0900 ALSA: fireworks: add support for AudioFire2 quirk Fireworks uses TSB43CB43(IceLynx-Micro) as its IEC 61883-1/6 interface. This chip includes ARM7 core, and loads and runs program. The firmware is stored in on-board memory and loaded every powering-on. Echo Audio ships several versions of firmwares for each model. These firmwares have each quirk and the quirk changes a sequence of packets. AudioFire2 has a quirk to transfer a first packet with non-zero in its dbc field. This causes ALSA Fireworks driver to detect discontinuity. As long as I investigated, firmware 5.7, 5.7.6 and 5.8 have this quirk. This commit adds a support for the quirk to handle AudioFire2 packets. For safe, CIP_SKIP_INIT_DBC_CHECK is applied to all versions of AudioFire2's firmwares. 02 00050002 90ffffff <- 42 0005000a 90013000 42 00050012 90014400 42 0005001a 90015800 02 0005001a 90ffffff 42 00050022 90019000 42 0005002a 9001a400 42 00050032 9001b800 02 00050032 90ffffff 42 0005003a 9001d000 42 00050042 9001e400 42 0005004a 9001f800 02 0005004a 90ffffff Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai sound/firewire/fireworks/fireworks.c | 2 ++ sound/firewire/fireworks/fireworks.h | 1 + sound/firewire/fireworks/fireworks_stream.c | 3 +++ 3 files changed, 6 insertions(+) commit 54109da31f0bec407b419cebfb19c7d9f2a6e56a Merge: dfbafc9 e018a0c Author: David S. Miller Date: Mon Jul 27 01:10:30 2015 -0700 Merge branch 'macb-fixes' Andy Shevchenko says: ==================== net/macb: fix for AVR32 and clean up It seems no one had tested recently the driver on AVR32 platforms such as ATNGW100. This series bring it back to work. ==================== Signed-off-by: David S. Miller commit e018a0cce3d849bc73e72686c571420adc40bad2 Author: Andy Shevchenko Date: Fri Jul 24 21:24:04 2015 +0300 net/macb: convert to kernel doc This patch coverts struct description to the kernel doc format. There is no functional change. Signed-off-by: Andy Shevchenko Signed-off-by: David S. Miller include/linux/platform_data/macb.h | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) commit 94b295edc2c678212376a8aca9308cf6ee430b89 Author: Andy Shevchenko Date: Fri Jul 24 21:24:03 2015 +0300 net/macb: replace macb_count_tx_descriptors() by DIV_ROUND_UP() macb_count_tx_descriptors() repeats the generic macro DIV_ROUND_UP(). The patch does a replacement. There is no functional change. Signed-off-by: Andy Shevchenko Signed-off-by: David S. Miller drivers/net/ethernet/cadence/macb.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) commit 8bcbf82f31a94f8e4f939ac57478d808263c3890 Author: Andy Shevchenko Date: Fri Jul 24 21:24:02 2015 +0300 net/macb: suppress compiler warnings This patch fixes the following warnings: drivers/net/ethernet/cadence/macb.c: In function ‘macb_handle_link_change’: drivers/net/ethernet/cadence/macb.c:266: warning: comparison between signed and unsigned drivers/net/ethernet/cadence/macb.c:267: warning: comparison between signed and unsigned drivers/net/ethernet/cadence/macb.c:291: warning: comparison between signed and unsigned drivers/net/ethernet/cadence/macb.c: In function ‘gem_update_stats’: drivers/net/ethernet/cadence/macb.c:1908: warning: comparison between signed and unsigned drivers/net/ethernet/cadence/macb.c: In function ‘gem_get_ethtool_strings’: drivers/net/ethernet/cadence/macb.c:1988: warning: comparison between signed and unsigned Signed-off-by: Andy Shevchenko Signed-off-by: David S. Miller drivers/net/ethernet/cadence/macb.c | 5 ++--- drivers/net/ethernet/cadence/macb.h | 6 +++--- 2 files changed, 5 insertions(+), 6 deletions(-) commit a35919e174350d3e236ea5f179177396e87b6894 Author: Andy Shevchenko Date: Fri Jul 24 21:24:01 2015 +0300 net/macb: use dev_*() when netdev is not yet registered To avoid messages like macb macb.0 (unnamed net_device) (uninitialized): Cadence caps 0x00000000 macb macb.0 (unnamed net_device) (uninitialized): invalid hw address, using random let's use dev_*() macros. Signed-off-by: Andy Shevchenko Signed-off-by: David S. Miller drivers/net/ethernet/cadence/macb.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit f36dbe6a285e0628e67b7bd9d3b08599184d7d2c Author: Andy Shevchenko Date: Fri Jul 24 21:24:00 2015 +0300 net/macb: check if macb_config present The commit 98b5a0f4a228 introduces jumbo frame support, but also it assumes that macb_config present which is not always true. The configuration without macb_config fails to boot. Unable to handle kernel NULL pointer dereference at virtual address 00000010 ptbr = 90350000 pgd = 00000000 Oops: Kernel access of bad area, sig: 11 [#1] FRAME_POINTER chip: 0x01f:0x1e82 rev 2 Modules linked in: CPU: 0 PID: 1 Comm: swapper Not tainted 4.2.0-rc3-next-20150723+ #13 task: 91c26000 ti: 91c28000 task.ti: 91c28000 PC is at macb_probe+0x140/0x61c Fixes: 98b5a0f4a228 (net: macb: Add support for jumbo frames) Signed-off-by: Andy Shevchenko Signed-off-by: David S. Miller drivers/net/ethernet/cadence/macb.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit f2ce8a9e48385f444389e75cfe293637c3eb5410 Author: Andy Shevchenko Date: Fri Jul 24 21:23:59 2015 +0300 net/macb: improve big endian CPU support The commit a50dad355a53 (net: macb: Add big endian CPU support) converted I/O accessors to readl_relaxed() and writel_relaxed() and consequentially broke MACB driver on AVR32 platforms such as ATNGW100. This patch improves I/O access by checking endiannes first and use the corresponding methods. Fixes: a50dad355a53 (net: macb: Add big endian CPU support) Signed-off-by: Andy Shevchenko Signed-off-by: David S. Miller drivers/net/ethernet/cadence/macb.c | 103 ++++++++++++++++++++++++++---------- drivers/net/ethernet/cadence/macb.h | 28 ++++------ 2 files changed, 87 insertions(+), 44 deletions(-) commit dfbafc995304ebb9a9b03f65083e6e9cea143b20 Author: Sabrina Dubroca Date: Fri Jul 24 18:19:25 2015 +0200 tcp: fix recv with flags MSG_WAITALL | MSG_PEEK Currently, tcp_recvmsg enters a busy loop in sk_wait_data if called with flags = MSG_WAITALL | MSG_PEEK. sk_wait_data waits for sk_receive_queue not empty, but in this case, the receive queue is not empty, but does not contain any skb that we can use. Add a "last skb seen on receive queue" argument to sk_wait_data, so that it sleeps until the receive queue has new skbs. Link: https://bugzilla.kernel.org/show_bug.cgi?id=99461 Link: https://sourceware.org/bugzilla/show_bug.cgi?id=18493 Link: https://bugzilla.redhat.com/show_bug.cgi?id=1205258 Reported-by: Enrico Scholz Reported-by: Dan Searle Signed-off-by: Sabrina Dubroca Acked-by: Eric Dumazet Signed-off-by: David S. Miller include/net/sock.h | 2 +- net/core/sock.c | 5 +++-- net/dccp/proto.c | 2 +- net/ipv4/tcp.c | 11 +++++++---- net/llc/af_llc.c | 4 ++-- 5 files changed, 14 insertions(+), 10 deletions(-) commit 3d3af8859284f982ad62980b3787f05259f1dd10 Merge: 03de104 41cec84 Author: David S. Miller Date: Mon Jul 27 00:56:39 2015 -0700 Merge branch 'r8152-fixes' Hayes Wang says: ==================== r8152: issues fix v2: Replace patch #2 with "r8152: fix wakeup settings". v1: These patches are used to fix issues. ==================== Signed-off-by: David S. Miller commit 41cec84cf2858b59121a1cec5e9b09fc1bf1d882 Author: hayeswang Date: Fri Jul 24 13:54:25 2015 +0800 r8152: don't enable napi before rx ready Adjust napi_disable() and napi_enable() to avoid r8152_poll() start working before rx ready. Otherwise, it may have race condition for rx_agg. Signed-off-by: Hayes Wang Signed-off-by: David S. Miller drivers/net/usb/r8152.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 7daed8dc2a4b48c5a7ea5b3243d01837ec1aed0a Author: hayeswang Date: Fri Jul 24 13:54:24 2015 +0800 r8152: fix wakeup settings Avoid the driver to enable WOL if the device doesn't support it. Signed-off-by: Hayes Wang Signed-off-by: David S. Miller drivers/net/usb/r8152.c | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) commit b214396fb5890af58ff04b42deba7de5a2686338 Author: hayeswang Date: Fri Jul 24 13:54:23 2015 +0800 r8152: fix the issue about U1/U2 - Disable U1/U2 during initialization. - Disable lpm when linking is on, and enable it when linking is off. - Disable U1/U2 when enabling runtime suspend. It is possible to let hw stop working, if the U1/U2 request occurs during some situations. The patch is used to avoid it. Signed-off-by: Hayes Wang Signed-off-by: David S. Miller drivers/net/usb/r8152.c | 94 ++++++++++++++++++++++++++++--------------------- 1 file changed, 54 insertions(+), 40 deletions(-) commit 5c02a4206538da12c040b51778d310df84c6bf6c Author: Andy Shevchenko Date: Fri Jul 24 13:49:48 2015 +0300 avr32: handle NULL as a valid clock object Since NULL is used as valid clock object on optional clocks we have to handle this case in avr32 implementation as well. Fixes: e1824dfe0d8e (net: macb: Adjust tx_clk when link speed changes) Signed-off-by: Andy Shevchenko Acked-by: Hans-Christian Egtvedt arch/avr32/mach-at32ap/clock.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) commit 30342fe65e511007672437741158d493472f427f Author: Michael Holzheu Date: Thu Jul 23 19:26:15 2015 +0200 s390/bpf: clear correct BPF accumulator register Currently we assumed the following BPF to eBPF register mapping: - BPF_REG_A -> BPF_REG_7 - BPF_REG_X -> BPF_REG_8 Unfortunately this mapping is wrong. The correct mapping is: - BPF_REG_A -> BPF_REG_0 - BPF_REG_X -> BPF_REG_7 So clear the correct registers and use the BPF_REG_A and BPF_REG_X macros instead of BPF_REG_0/7. Fixes: 054623105728 ("s390/bpf: Add s390x eBPF JIT compiler backend") Cc: stable@vger.kernel.org # 4.0+ Signed-off-by: Michael Holzheu Signed-off-by: Martin Schwidefsky arch/s390/net/bpf_jit_comp.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 03de104f7b62b4cebd8a3d33cef82d48ff28144c Merge: 32cba57 25ba265 Author: David S. Miller Date: Sun Jul 26 21:53:08 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-07-23 Here's another one-patch pull request for 4.2 which targets a potential NULL pointer dereference in the LE Security Manager code that can be triggered by using older user space tools. The issue has been there since 4.0 so there's the appropriate "Cc: stable" in place. Let me know if there are any issues pulling. Thanks. ==================== Signed-off-by: David S. Miller commit 32cba57ba74be58589aeb4cb6496183e46a5e3e5 Author: Lucas Stach Date: Thu Jul 23 16:06:20 2015 +0200 net: fec: introduce fec_ptp_stop and use in probe fail path This function frees resources and cancels delayed work item that have been initialized in fec_ptp_init(). Use this to do proper error handling if something goes wrong in probe function after fec_ptp_init has been called. Signed-off-by: Lucas Stach Acked-by: Fugang Duan Signed-off-by: David S. Miller drivers/net/ethernet/freescale/fec.h | 1 + drivers/net/ethernet/freescale/fec_main.c | 5 ++--- drivers/net/ethernet/freescale/fec_ptp.c | 10 ++++++++++ 3 files changed, 13 insertions(+), 3 deletions(-) commit c0a1a0a698bb0f90ec4719de34f37715abfad8a5 Author: Lucas Stach Date: Thu Jul 23 16:06:19 2015 +0200 net: fec: use managed DMA API functions to allocate BD ring So it gets freed when the device is going away. This fixes a DMA memory leak on driver probe() fail and driver remove(). Signed-off-by: Lucas Stach Signed-off-by: David S. Miller drivers/net/ethernet/freescale/fec_main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 42288830494cd51873ca745a7a229023df061226 Author: Jiri Pirko Date: Thu Jul 23 12:20:37 2015 +0200 niu: don't count tx error twice in case of headroom realloc fails Fixes: a3138df9 ("[NIU]: Add Sun Neptune ethernet driver.") Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/sun/niu.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 64b892ad2326348a5b8314167590d240e3bcc69e Merge: 81296fc caaecdd Author: David S. Miller Date: Sun Jul 26 21:00:15 2015 -0700 Merge branch 'inet-frag-fixes' Florian Westphal says: ==================== inet: ip defrag bug fixes Johan Schuijt and Frank Schreuder reported crash and softlockup after the inet workqueue eviction change: general protection fault: 0000 [#1] SMP CPU: 0 PID: 4 Comm: kworker/0:0 Not tainted 3.18.18-transip-1.5 #1 Workqueue: events inet_frag_worker task: ffff880224935130 ti: ffff880224938000 task.ti: ffff880224938000 RIP: 0010:[] [] inet_evict_bucket+0xfc/0x160 RSP: 0018:ffff88022493bd58 EFLAGS: 00010286 RAX: ffff88021f4f3e80 RBX: dead000000100100 RCX: 000000000000006b RDX: 000000000000006c RSI: ffff88021f4f3e80 RDI: dead0000001000a8 RBP: 0000000000000002 R08: ffff880222273900 R09: ffff880036e49200 R10: ffff8800c6e86500 R11: ffff880036f45500 R12: ffffffff81a87100 R13: ffff88022493bd70 R14: 0000000000000000 R15: ffff8800c9b26280 [..] Call Trace: [] ? inet_frag_worker+0x60/0x210 [] ? process_one_work+0x142/0x3b0 [] ? worker_thread+0x114/0x440 [..] A second issue results in softlockup since the evictor may restart the eviction loop for a (potentially) unlimited number of times while local softirqs are disabled. Frank reports that test system remained stable for 14 hours of testing (before, crash occured within half an hour in their setup). ==================== Signed-off-by: David S. Miller commit caaecdd3d3f8ec0ea9906c54b1dd8ec8316d26b9 Author: Nikolay Aleksandrov Date: Thu Jul 23 12:05:40 2015 +0200 inet: frags: remove INET_FRAG_EVICTED and use list_evictor for the test We can simply remove the INET_FRAG_EVICTED flag to avoid all the flags race conditions with the evictor and use a participation test for the evictor list, when we're at that point (after inet_frag_kill) in the timer there're 2 possible cases: 1. The evictor added the entry to its evictor list while the timer was waiting for the chainlock or 2. The timer unchained the entry and the evictor won't see it In both cases we should be able to see list_evictor correctly due to the sync on the chainlock. Joint work with Florian Westphal. Tested-by: Frank Schreuder Signed-off-by: Nikolay Aleksandrov Signed-off-by: Florian Westphal Signed-off-by: David S. Miller include/net/inet_frag.h | 7 +++++-- net/ipv4/inet_fragment.c | 1 - net/ipv4/ip_fragment.c | 2 +- net/ipv6/reassembly.c | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) commit 5719b296fb81502d0dbbb4e87b3235e5bdcdfc6b Author: Florian Westphal Date: Thu Jul 23 12:05:39 2015 +0200 inet: frag: don't wait for timer deletion when evicting Frank reports 'NMI watchdog: BUG: soft lockup' errors when load is high. Instead of (potentially) unbounded restarts of the eviction process, just skip to the next entry. One caveat is that, when a netns is exiting, a timer may still be running by the time inet_evict_bucket returns. We use the frag memory accounting to wait for outstanding timers, so that when we free the percpu counter we can be sure no running timer will trip over it. Reported-and-tested-by: Frank Schreuder Signed-off-by: Florian Westphal Signed-off-by: David S. Miller net/ipv4/inet_fragment.c | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) commit 0e60d245a0be7fdbb723607f1d6621007916b252 Author: Florian Westphal Date: Thu Jul 23 12:05:38 2015 +0200 inet: frag: change *_frag_mem_limit functions to take netns_frags as argument Followup patch will call it after inet_frag_queue was freed, so q->net doesn't work anymore (but netf = q->net; free(q); mem_limit(netf) would). Tested-by: Frank Schreuder Signed-off-by: Florian Westphal Signed-off-by: David S. Miller include/net/inet_frag.h | 8 ++++---- net/ieee802154/6lowpan/reassembly.c | 6 +++--- net/ipv4/inet_fragment.c | 4 ++-- net/ipv4/ip_fragment.c | 10 +++++----- net/ipv6/netfilter/nf_conntrack_reasm.c | 6 +++--- net/ipv6/reassembly.c | 6 +++--- 6 files changed, 20 insertions(+), 20 deletions(-) commit d1fe19444d82e399e38c1594c71b850eca8e9de0 Author: Florian Westphal Date: Thu Jul 23 12:05:37 2015 +0200 inet: frag: don't re-use chainlist for evictor commit 65ba1f1ec0eff ("inet: frags: fix a race between inet_evict_bucket and inet_frag_kill") describes the bug, but the fix doesn't work reliably. Problem is that ->flags member can be set on other cpu without chainlock being held by that task, i.e. the RMW-Cycle can clear INET_FRAG_EVICTED bit after we put the element on the evictor private list. We can crash when walking the 'private' evictor list since an element can be deleted from list underneath the evictor. Join work with Nikolay Alexandrov. Fixes: b13d3cbfb8e8 ("inet: frag: move eviction of queues to work queue") Reported-by: Johan Schuijt Tested-by: Frank Schreuder Signed-off-by: Nikolay Alexandrov Signed-off-by: Florian Westphal Signed-off-by: David S. Miller include/net/inet_frag.h | 2 ++ net/ipv4/inet_fragment.c | 8 +++----- 2 files changed, 5 insertions(+), 5 deletions(-) commit 69cefc273f942bd7bb347a02e8b5b738d5f6e6f3 Author: Lukasz Anaczkowski Date: Tue Jul 21 10:41:13 2015 +0200 intel_pstate: Add get_scaling cpu_defaults param to Knights Landing Scaling for Knights Landing is same as the default scaling (100000). When Knigts Landing support was added to the pstate driver, this parameter was omitted resulting in a kernel panic during boot. Fixes: b34ef932d79a (intel_pstate: Knights Landing support) Reported-by: Yasuaki Ishimatsu Signed-off-by: Dasaratharaman Chandramouli Signed-off-by: Lukasz Anaczkowski Acked-by: Kristen Carlson Accardi Cc: 4.1+ # 4.1+ Signed-off-by: Rafael J. Wysocki drivers/cpufreq/intel_pstate.c | 1 + 1 file changed, 1 insertion(+) commit 81296fc67319d96ea6f7f43a07494394e1236a19 Author: Daniel Borkmann Date: Wed Jul 22 16:31:49 2015 +0200 net: sctp: stop spamming klog with rfc6458, 5.3.2. deprecation warnings Back then when we added support for SCTP_SNDINFO/SCTP_RCVINFO from RFC6458 5.3.4/5.3.5, we decided to add a deprecation warning for the (as per RFC deprecated) SCTP_SNDRCV via commit bbbea41d5e53 ("net: sctp: deprecate rfc6458, 5.3.2. SCTP_SNDRCV support"), see [1]. Imho, it was not a good idea, and we should just revert that message for a couple of reasons: 1) It's uapi and therefore set in stone forever. 2) To be able to run on older and newer kernels, an SCTP application would need to probe for both, SCTP_SNDRCV, but also SCTP_SNDINFO/ SCTP_RCVINFO support, so that on older kernels, it can make use of SCTP_SNDRCV, and on newer kernels SCTP_SNDINFO/SCTP_RCVINFO. In my (limited) experience, a lot of SCTP appliances are migrating to newer kernels only ve(ee)ry slowly. 3) Some people don't have the chance to change their applications, f.e. due to proprietary legacy stuff. So, they'll hit this warning in fast path and are stuck with older kernels. But i.e. due to point 1) I really fail to see the benefit of a warning. So just revert that for now, the issue was reported up Jamal. [1] http://thread.gmane.org/gmane.linux.network/321960/ Reported-by: Jamal Hadi Salim Signed-off-by: Daniel Borkmann Cc: Michael Tuexen Acked-by: Jamal Hadi Salim Signed-off-by: David S. Miller net/sctp/socket.c | 6 ------ 1 file changed, 6 deletions(-) commit 10e59ee3b1b912502ec8850725f365e4ec20065d Merge: 963ad94 62e4c9b Author: David S. Miller Date: Sun Jul 26 16:29:26 2015 -0700 Merge branch 'mlx4-fixes' Or Gerlitz says: ==================== mlx4 driver fixes, July 22nd 2015 Just few mlx4 fixes.. the fix related to propagating port state changes to VF should go to -stable of >= 3.11, all the rest just to 4.2-rc ==================== Signed-off-by: David S. Miller commit 62e4c9b4fd3f8fd7d51951f0f10e3f27c58d4037 Author: Ido Shamay Date: Wed Jul 22 16:53:49 2015 +0300 net/mlx4_en: Remove BUG_ON assert when checking if ring is full In mlx4_en_is_ring_empty we check if ring surpassed its size. Since the prod and cons indicators are u32, there might be a state where prod wrapped around and cons, making this assert false, although no actual bug exists (other code segment can cope with this state). Signed-off-by: Ido Shamay Signed-off-by: Eugenia Emantayev Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/en_rx.c | 1 - 1 file changed, 1 deletion(-) commit 9f5b031770b9108b57881c83dffc02cd90ec3961 Author: Jack Morgenstein Date: Wed Jul 22 16:53:48 2015 +0300 net/mlx4_core: Relieve cpu load average on the port sending flow When a port is not attached, the FW requires a longer than usual time to execute the SENSE_PORT command. In the command flow, the wait_for_completion_timeout call used in mlx4_cmd_wait puts the kernel thread into the uninterruptible state during this time. This, in turn, due to the computation method, causes the CPU load average to increase. Fix this by using wait_for_completion_interruptible_timeout() for the SENSE_PORT command, which puts the thread in the interruptible state. In this state, the thread does not contribute to the CPU load average. Treat the interrupted case as if the SENSE_PORT command returned port_type = NONE. Fix suggested by Gideon Naim and Bart Van Assche . Signed-off-by: Jack Morgenstein Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/cmd.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) commit 1c1bf34951e8d17941bf708d1901c47e81b15d55 Author: Jack Morgenstein Date: Wed Jul 22 16:53:47 2015 +0300 net/mlx4_core: Fix wrong index in propagating port change event to VFs The port-change event processing in procedure mlx4_eq_int() uses "slave" as the vf_oper array index. Since the value of "slave" is the PF function index, the result is that the PF link state is used for deciding to propagate the event for all the VFs. The VF link state should be used, so the VF function index should be used here. Fixes: 948e306d7d64 ('net/mlx4: Add VF link state support') Signed-off-by: Jack Morgenstein Signed-off-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, 2 insertions(+), 2 deletions(-) commit 178d23e3cd4811ebe702d60ac31e8bee389a5847 Author: Or Gerlitz Date: Wed Jul 22 16:53:46 2015 +0300 net/mlx4_core: Use sink counter for the VF default as fallback Some old PF drivers don't let VFs allocate counters, in that case, use the sink counter so the VF can load and operate properly. Fixes: 6de5f7f6a1fa ('net/mlx4_core: Allocate default counter per port') Reported-by: Sebastian Ott Signed-off-by: Or Gerlitz Signed-off-by: Eran Ben Elisha Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/main.c | 5 +++++ 1 file changed, 5 insertions(+) commit 963ad94853000ab100f5ff19eea80095660d41b4 Author: Nikolay Aleksandrov Date: Wed Jul 22 13:03:40 2015 +0200 bridge: netlink: fix slave_changelink/br_setport race conditions Since slave_changelink support was added there have been a few race conditions when using br_setport() since some of the port functions it uses require the bridge lock. It is very easy to trigger a lockup due to some internal spin_lock() usage without bh disabled, also it's possible to get the bridge into an inconsistent state. Signed-off-by: Nikolay Aleksandrov Fixes: 3ac636b8591c ("bridge: implement rtnl_link_ops->slave_changelink") Reviewed-by: Jiri Pirko Signed-off-by: David S. Miller net/bridge/br_netlink.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit 0a927c2f02a2437a57679527e42ab7cbfa14efb1 Author: Mike Snitzer Date: Tue Jul 21 13:20:46 2015 -0400 dm thin: return -ENOSPC when erroring retry list due to out of data space Otherwise -EIO would be returned when -ENOSPC should be used consistently. Signed-off-by: Mike Snitzer drivers/md/dm-thin.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) commit a153790a788392e75d37262a9c5960d1d91ddb7e Author: Linus Walleij Date: Sat Jul 25 11:22:03 2015 +0200 ARM: nomadik: disable UART0 on Nomadik boards The UART0 is not used on these boards, yet active and blocking other use. Fix this by disabling UART0 and setting port aliases to maintain port enumeration to userspace. Signed-off-by: Linus Walleij Signed-off-by: Olof Johansson arch/arm/boot/dts/ste-nomadik-nhk15.dts | 1 + arch/arm/boot/dts/ste-nomadik-s8815.dts | 4 ++++ arch/arm/boot/dts/ste-nomadik-stn8815.dtsi | 1 + 3 files changed, 6 insertions(+) commit cbfe8fa6cd672011c755c3cd85c9ffd4e2d10a6f Author: Linus Torvalds Date: Sun Jul 26 12:26:21 2015 -0700 Linux 4.2-rc4 Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ee5d35e7816ac53efbaebbfa6e8d5938f1c99691 Merge: 82567c8 9a258af Author: Olof Johansson Date: Sun Jul 26 20:52:03 2015 +0200 Merge tag 'for-v4.2-rc/omap-fixes-a' of git://git.kernel.org/pub/scm/linux/kernel/git/pjw/omap-pending into fixes Merge "ARM: OMAP2+: hwmod fixes for v4.2-rc" from Paul Walmsley: ARM: OMAP2+: hwmod fixes for v4.2-rc Two fixes against v4.2-rc1. The first, for DRA7xx platforms, corrects some incorrect GPMC hardware description data. The second one will ensure that the hwmod code will wait for any module with CPU-accessible registers to become ready before attempting to access it. Basic build, boot, and PM test logs are available here: http://www.pwsan.com/omap/testlogs/omap-hwmod-a-for-v4.2-rc/20150723065408/ Note that I do not have a DRA7xx or AM43xx board, and therefore cannot test on those platforms. * tag 'for-v4.2-rc/omap-fixes-a' of git://git.kernel.org/pub/scm/linux/kernel/git/pjw/omap-pending: ARM: OMAP2+: hwmod: Fix _wait_target_ready() for hwmods without sysc ARM: DRA7: hwmod: fix gpmc hwmod Signed-off-by: Olof Johansson commit 2579d019ad591043634b02d038cadcabb5eb21f8 Merge: 2800348 2c534c0 Author: Linus Torvalds Date: Sun Jul 26 11:46:32 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 Gleixner: "A single fix for the intel cqm perf facility to prevent IPIs from interrupt context" * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: perf/x86/intel/cqm: Return cached counter value from IRQ context commit 2800348613953b5892c196e4bfab2ae5783a519e Merge: 26ae19a 1a4e879 Author: Linus Torvalds Date: Sun Jul 26 11:14:04 2015 -0700 Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 fixes from Thomas Gleixner: "This update contains: - the manual revert of the SYSCALL32 changes which caused a regression - a fix for the MPX vma handling - three fixes for the ioremap 'is ram' checks. - PAT warning fixes - a trivial fix for the size calculation of TLB tracepoints - handle old EFI structures gracefully This also contains a PAT fix from Jan plus a revert thereof. Toshi explained why the code is correct" * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/mm/pat: Revert 'Adjust default caching mode translation tables' x86/asm/entry/32: Revert 'Do not use R9 in SYSCALL32' commit x86/mm: Fix newly introduced printk format warnings mm: Fix bugs in region_is_ram() x86/mm: Remove region_is_ram() call from ioremap x86/mm: Move warning from __ioremap_check_ram() to the call site x86/mm/pat, drivers/media/ivtv: Move the PAT warning and replace WARN() with pr_warn() x86/mm/pat, drivers/infiniband/ipath: Replace WARN() with pr_warn() x86/mm/pat: Adjust default caching mode translation tables x86/fpu: Disable dependent CPU features on "noxsave" x86/mpx: Do not set ->vm_ops on MPX VMAs x86/mm: Add parenthesis for TLB tracepoint size calculation efi: Handle memory error structures produced based on old versions of standard commit 1a4e8795711f474b31ff6eac37f3efd304ed8a93 Author: Thomas Gleixner Date: Sun Jul 26 10:27:37 2015 +0200 x86/mm/pat: Revert 'Adjust default caching mode translation tables' Toshi explains: "No, the default values need to be set to the fallback types, i.e. minimal supported mode. For WC and WT, UC is the fallback type. When PAT is disabled, pat_init() does update the tables below to enable WT per the default BIOS setup. However, when PAT is enabled, but CPU has PAT -errata, WT falls back to UC per the default values." Revert: ca1fec58bc6a 'x86/mm/pat: Adjust default caching mode translation tables' Requested-by: Toshi Kani Cc: Jan Beulich Link: http://lkml.kernel.org/r/1437577776.3214.252.camel@hp.com Signed-off-by: Thomas Gleixner arch/x86/mm/init.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 2c534c0da0a68418693e10ce1c4146e085f39518 Author: Matt Fleming Date: Tue Jul 21 15:55:09 2015 +0100 perf/x86/intel/cqm: Return cached counter value from IRQ context Peter reported the following potential crash which I was able to reproduce with his test program, [ 148.765788] ------------[ cut here ]------------ [ 148.765796] WARNING: CPU: 34 PID: 2840 at kernel/smp.c:417 smp_call_function_many+0xb6/0x260() [ 148.765797] Modules linked in: [ 148.765800] CPU: 34 PID: 2840 Comm: perf Not tainted 4.2.0-rc1+ #4 [ 148.765803] ffffffff81cdc398 ffff88085f105950 ffffffff818bdfd5 0000000000000007 [ 148.765805] 0000000000000000 ffff88085f105990 ffffffff810e413a 0000000000000000 [ 148.765807] ffffffff82301080 0000000000000022 ffffffff8107f640 ffffffff8107f640 [ 148.765809] Call Trace: [ 148.765810] [] dump_stack+0x45/0x57 [ 148.765818] [] warn_slowpath_common+0x8a/0xc0 [ 148.765822] [] ? intel_cqm_stable+0x60/0x60 [ 148.765824] [] ? intel_cqm_stable+0x60/0x60 [ 148.765825] [] warn_slowpath_null+0x1a/0x20 [ 148.765827] [] smp_call_function_many+0xb6/0x260 [ 148.765829] [] ? intel_cqm_stable+0x60/0x60 [ 148.765831] [] on_each_cpu_mask+0x28/0x60 [ 148.765832] [] intel_cqm_event_count+0x7f/0xe0 [ 148.765836] [] perf_output_read+0x2a5/0x400 [ 148.765839] [] perf_output_sample+0x31a/0x590 [ 148.765840] [] ? perf_prepare_sample+0x26d/0x380 [ 148.765841] [] perf_event_output+0x47/0x60 [ 148.765843] [] __perf_event_overflow+0x215/0x240 [ 148.765844] [] perf_event_overflow+0x14/0x20 [ 148.765847] [] intel_pmu_handle_irq+0x1d4/0x440 [ 148.765849] [] ? __perf_event_task_sched_in+0x36/0xa0 [ 148.765853] [] ? vunmap_page_range+0x19d/0x2f0 [ 148.765854] [] ? unmap_kernel_range_noflush+0x11/0x20 [ 148.765859] [] ? ghes_copy_tofrom_phys+0x11e/0x2a0 [ 148.765863] [] ? native_apic_msr_write+0x2b/0x30 [ 148.765865] [] ? x2apic_send_IPI_self+0x1d/0x20 [ 148.765869] [] ? arch_irq_work_raise+0x35/0x40 [ 148.765872] [] ? irq_work_queue+0x66/0x80 [ 148.765875] [] perf_event_nmi_handler+0x26/0x40 [ 148.765877] [] nmi_handle+0x79/0x100 [ 148.765879] [] default_do_nmi+0x42/0x100 [ 148.765880] [] do_nmi+0x83/0xb0 [ 148.765884] [] end_repeat_nmi+0x1e/0x2e [ 148.765886] [] ? __perf_event_task_sched_in+0x36/0xa0 [ 148.765888] [] ? __perf_event_task_sched_in+0x36/0xa0 [ 148.765890] [] ? __perf_event_task_sched_in+0x36/0xa0 [ 148.765891] <> [] finish_task_switch+0x156/0x210 [ 148.765898] [] __schedule+0x341/0x920 [ 148.765899] [] schedule+0x37/0x80 [ 148.765903] [] ? do_page_fault+0x2f/0x80 [ 148.765905] [] schedule_user+0x1a/0x50 [ 148.765907] [] retint_careful+0x14/0x32 [ 148.765908] ---[ end trace e33ff2be78e14901 ]--- The CQM task events are not safe to be called from within interrupt context because they require performing an IPI to read the counter value on all sockets. And performing IPIs from within IRQ context is a "no-no". Make do with the last read counter value currently event in event->count when we're invoked in this context. Reported-by: Peter Zijlstra Signed-off-by: Matt Fleming Cc: Thomas Gleixner Cc: Vikas Shivappa Cc: Kanaka Juvva Cc: Will Auld Cc: Link: http://lkml.kernel.org/r/1437490509-15373-1-git-send-email-matt@codeblueprint.co.uk Signed-off-by: Thomas Gleixner arch/x86/kernel/cpu/perf_event_intel_cqm.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 26ae19a3883c9d595e9100fd10b856a7cf1a949a Merge: 82b35f3 1209544 Author: Linus Torvalds Date: Sat Jul 25 20:11:12 2015 -0700 Merge tag 'usb-4.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb Pull USB fixes from Greg KH: "Here's a few USB and PHY fixes for 4.2-rc4. Nothing major, the shortlog has the full details. All of these have been in linux-next successfully" * tag 'usb-4.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (21 commits) USB: OHCI: fix bad #define in ohci-tmio.c cdc-acm: Destroy acm_minors IDR on module exit usb-storage: Add ignore-device quirk for gm12u320 based usb mini projectors usb-storage: ignore ZTE MF 823 card reader in mode 0x1225 USB: OHCI: Fix race between ED unlink and URB submission usb: core: lpm: set lpm_capable for root hub device xhci: do not report PLC when link is in internal resume state xhci: prevent bus_suspend if SS port resuming in phase 1 xhci: report U3 when link is in resume state xhci: Calculate old endpoints correctly on device reset usb: xhci: Bugfix for NULL pointer deference in xhci_endpoint_init() function xhci: Workaround to get D3 working in Intel xHCI xhci: call BIOS workaround to enable runtime suspend on Intel Braswell usb: dwc3: Reset the transfer resource index on SET_INTERFACE usb: gadget: udc: core: Fix argument of dma_map_single for IOMMU usb: gadget: mv_udc_core: fix phy_regs I/O memory leak usb: ulpi: ulpi_init should be executed in subsys_initcall phy: berlin-usb: fix divider for BG2 phy: berlin-usb: fix divider for BG2CD phy/pxa: add HAS_IOMEM dependency ... commit 82b35f376c71fbd60f5ea0ce27b3c835fa50ed6d Merge: b0de415 61e86cc Author: Linus Torvalds Date: Sat Jul 25 20:05:07 2015 -0700 Merge tag 'tty-4.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty Pull tty/serial driver fixes from Greg KH: "Here are a number of small serial and tty fixes for reported issues. All have been in linux-next successfully" * tag 'tty-4.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: tty: vt: Fix !TASK_RUNNING diagnostic warning from paste_selection() serial: core: Fix crashes while echoing when closing m32r: Add ioreadXX/iowriteXX big-endian mmio accessors Revert "serial: imx: initialized DMA w/o HW flow enabled" sc16is7xx: fix FIFO address of secondary UART sc16is7xx: fix Kconfig dependencies serial: etraxfs-uart: Fix release etraxfs_uart_ports tty/vt: Fix the memory leak in visual_init serial: amba-pl011: Fix devm_ioremap_resource return value check n_tty: signal and flush atomically commit b0de415aa7469606ddf618caf3e2fdc94fa28733 Merge: e433b65 00243b1 Author: Linus Torvalds Date: Sat Jul 25 20:03:10 2015 -0700 Merge tag 'staging-4.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging Pull staging driver fixes from Greg KH: "Here are a number of iio and staging driver fixes for reported issues for 4.2-rc4. All have been in linux-next for a while with no problems" * tag 'staging-4.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (34 commits) iio:light:stk3310: make endianness independent of host iio:light:stk3310: move device register to end of probe iio: mma8452: use iio event type IIO_EV_TYPE_MAG iio: mcp320x: Fix NULL pointer dereference iio: adc: vf610: fix the adc register read fail issue iio: mlx96014: Replace offset sign iio: magnetometer: mmc35240: fix SET/RESET sequence iio: magnetometer: mmc35240: Fix SET/RESET mask iio: magnetometer: mmc35240: Fix crash in pm suspend iio:magnetometer:bmc150_magn: output intended variable iio:magnetometer:bmc150_magn: add regmap dependency staging: vt6656: check ieee80211_bss_conf bssid not NULL staging: vt6655: check ieee80211_bss_conf bssid not NULL iio: tmp006: Check channel info on write iio: sx9500: Add missing init in sx9500_buffer_pre{en,dis}able() iio:light:ltr501: fix regmap dependency iio:light:ltr501: fix variable in ltr501_init iio: sx9500: fix bug in compensation code iio: sx9500: rework error handling of raw readings iio: magnetometer: mmc35240: fix available sampling frequencies ... commit e433b6560dd4e83a4241b702c2890bbf2eac64e7 Merge: 763e326 4e5a74f Author: Linus Torvalds Date: Sat Jul 25 19:50:59 2015 -0700 Merge tag 'char-misc-4.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc Pull char/misc driver fixes from Greg KH: "Here are some char and misc driver fixes for reported issues. One parport patch is reverted as it was incorrect, thanks to testing by the 0-day bot" * tag 'char-misc-4.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: parport: Revert "parport: fix memory leak" mei: prevent unloading mei hw modules while the device is opened. misc: mic: scif bug fix for vmalloc_to_page crash parport: fix freeing freed memory parport: fix memory leak parport: fix error handling commit 4e5a74f1db8d6bea48306126fd445e2720f07a95 Author: Sudip Mukherjee Date: Sat Jul 25 13:19:40 2015 +0530 parport: Revert "parport: fix memory leak" This reverts commit 23c405912b88 ("parport: fix memory leak") par_dev->state was already being removed in parport_unregister_device(). Reported-by: Ying Huang Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/parport/share.c | 1 - 1 file changed, 1 deletion(-) commit 763e326c8bcded22460fb25def2ed0e2459dcc8d Merge: 4520083 e3eea14 Author: Linus Torvalds Date: Sat Jul 25 11:42:54 2015 -0700 Merge tag 'trace-v4.2-rc2-fix3' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace Pull ftrace fix from Steven Rostedt: "Back in 3.16 the ftrace code was redesigned and cleaned up to remove the double iteration list (one for registered ftrace ops, and one for registered "global" ops), to just use one list. That simplified the code but also broke the function tracing filtering on pid. This updates the code to handle the filtering again with the new logic" * tag 'trace-v4.2-rc2-fix3' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: ftrace: Fix breakage of set_ftrace_pid commit 4520083852a60cbdb9adc235b94c8f36c177427d Merge: aca105a 8ca2435 Author: Linus Torvalds Date: Sat Jul 25 11:36:12 2015 -0700 Merge branch 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/nvdimm Pull libnvdimm fix from Dan Williams: "A minor fix for the libnvdimm subsystem. This is not critical. The problem can be worked around in userspace by putting the namespace temporarily into raw mode (ndctl_namespace_set_raw_mode() from libndctl), but that is awkward for management utilities. * 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/nvdimm: libnvdimm: fix namespace seed creation commit aca105a697bf08208909225a66198277e51b4f65 Merge: 32fd3d4 e6030cb Author: Linus Torvalds Date: Sat Jul 25 11:24:58 2015 -0700 Merge tag 'md/4.2-fixes' of git://neil.brown.name/md Pull md fixes from Neil Brown: "Some md fixes for 4.2 Several are tagged for -stable. A few aren't because they are not very, serious or because they are in the 'experimental' cluster code" * tag 'md/4.2-fixes' of git://neil.brown.name/md: md/raid5: clear R5_NeedReplace when no longer needed. Fix read-balancing during node failure md-cluster: fix bitmap sub-offset in bitmap_read_sb md: Return error if request_module fails and returns positive value md: Skip cluster setup in case of error while reading bitmap md/raid1: fix test for 'was read error from last working device'. md: Skip cluster setup for dm-raid md: flush ->event_work before stopping array. md/raid10: always set reshape_safe when initializing reshape_position. md/raid5: avoid races when changing cache size. commit 32fd3d4ac93261616564fbb544738b260f89bc7e Merge: 33b4017 5f867db Author: Linus Torvalds Date: Sat Jul 25 11:19:38 2015 -0700 Merge tag 'for-linus-20150724' of git://git.infradead.org/linux-mtd Pull MTD fixes from Brian Norris: "Two trivial updates. I meant to send these much earlier, but I've been preoccupied. - Add MAINTAINERS entry for diskonchip g3 driver - Fix an overlooked conflict in bitfield value assignments The latter update is a bit overdue, but there's no reason to wait any longer" * tag 'for-linus-20150724' of git://git.infradead.org/linux-mtd: mtd: nand: Fix NAND_USE_BOUNCE_BUFFER flag conflict MAINTAINERS: mtd: docg3: add docg3 maintainer commit 8ca243536d21ae2d08f61b1c5af4ac3d4bb697e4 Author: Dan Williams Date: Fri Jul 24 23:42:34 2015 -0400 libnvdimm: fix namespace seed creation A new BLK namespace "seed" device is created whenever the current seed is successfully probed. However, if that namespace is assigned to a BTT it may never directly experience a successful probe as it is a subordinate device to a BTT configuration. The effect of the current code is that no new namespaces can be instantiated, after the seed namespace, to consume available BLK DPA capacity. Fix this by treating a successful BTT probe event as a successful probe event for the backing namespace. Reported-by: Nicholas Moulin Signed-off-by: Dan Williams drivers/nvdimm/region_devs.c | 5 +++++ 1 file changed, 5 insertions(+) commit 6282adbf932c226f76e1b83e074448c79976fe75 Author: Jaegeuk Kim Date: Sat Jul 25 00:29:17 2015 -0700 f2fs: call set_page_dirty to attach i_wb for cgroup The cgroup attaches inode->i_wb via mark_inode_dirty and when set_page_writeback is called, __inc_wb_stat() updates i_wb's stat. So, we need to explicitly call set_page_dirty->__mark_inode_dirty in prior to any writebacking pages. This patch should resolve the following kernel panic reported by Andreas Reis. https://bugzilla.kernel.org/show_bug.cgi?id=101801 --- Comment #2 from Andreas Reis --- BUG: unable to handle kernel NULL pointer dereference at 00000000000000a8 IP: [] __percpu_counter_add+0x1a/0x90 PGD 2951ff067 PUD 2df43f067 PMD 0 Oops: 0000 [#1] PREEMPT SMP Modules linked in: CPU: 7 PID: 10356 Comm: gcc Tainted: G W 4.2.0-1-cu #1 Hardware name: Gigabyte Technology Co., Ltd. G1.Sniper M5/G1.Sniper M5, BIOS T01 02/03/2015 task: ffff880295044f80 ti: ffff880295140000 task.ti: ffff880295140000 RIP: 0010:[] [] __percpu_counter_add+0x1a/0x90 RSP: 0018:ffff880295143ac8 EFLAGS: 00010082 RAX: 0000000000000003 RBX: ffffea000a526d40 RCX: 0000000000000001 RDX: 0000000000000020 RSI: 0000000000000001 RDI: 0000000000000088 RBP: ffff880295143ae8 R08: 0000000000000000 R09: ffff88008f69bb30 R10: 00000000fffffffa R11: 0000000000000000 R12: 0000000000000088 R13: 0000000000000001 R14: ffff88041d099000 R15: ffff880084a205d0 FS: 00007f8549374700(0000) GS:ffff88042f3c0000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00000000000000a8 CR3: 000000033e1d5000 CR4: 00000000001406e0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Stack: 0000000000000000 ffffea000a526d40 ffff880084a20738 ffff880084a20750 ffff880295143b48 ffffffff811cc91e ffff880000000000 0000000000000296 0000000000000000 ffff880417090198 0000000000000000 ffffea000a526d40 Call Trace: [] __test_set_page_writeback+0xde/0x1d0 [] do_write_data_page+0xe7/0x3a0 [] gc_data_segment+0x5aa/0x640 [] do_garbage_collect+0x138/0x150 [] f2fs_gc+0x1be/0x3e0 [] f2fs_balance_fs+0x81/0x90 [] f2fs_unlink+0x47/0x1d0 [] vfs_unlink+0x109/0x1b0 [] do_unlinkat+0x287/0x2c0 [] SyS_unlink+0x16/0x20 [] entry_SYSCALL_64_fastpath+0x12/0x71 Code: 41 5e 5d c3 0f 1f 00 66 2e 0f 1f 84 00 00 00 00 00 55 48 89 e5 41 55 49 89 f5 41 54 49 89 fc 53 48 83 ec 08 65 ff 05 e6 d9 b6 7e <48> 8b 47 20 48 63 ca 65 8b 18 48 63 db 48 01 f3 48 39 cb 7d 0a RIP [] __percpu_counter_add+0x1a/0x90 RSP CR2: 00000000000000a8 ---[ end trace 5132449a58ed93a3 ]--- note: gcc[10356] exited with preempt_count 2 Signed-off-by: Jaegeuk Kim fs/f2fs/data.c | 2 -- fs/f2fs/file.c | 7 ++++--- fs/f2fs/gc.c | 7 ++++++- fs/f2fs/inline.c | 2 ++ fs/f2fs/segment.c | 1 + 5 files changed, 13 insertions(+), 6 deletions(-) commit 548aedac5128e4bb256bab5c8e1db88e626697fc Author: Jaegeuk Kim Date: Mon Jul 13 17:44:14 2015 -0700 f2fs: handle error cases in move_encrypted_block This patch fixes some missing error handlers. Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/gc.c | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) commit 485164381c1d663d3be1c9d2c600be0fb80a68ad Merge: cc9f4da 4b31814 Author: David S. Miller Date: Sat Jul 25 00:18:10 2015 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf Pablo Neira Ayuso says: ==================== Netfilter/IPVS fixes for net The following patchset contains ten Netfilter/IPVS fixes, they are: 1) Address refcount leak when creating an expectation from the ctnetlink interface. 2) Fix bug splat in the IDLETIMER target related to sysfs, from Dmitry Torokhov. 3) Resolve panic for unreachable route in IPVS with locally generated traffic in the output path, from Alex Gartrell. 4) Fix wrong source address in rare cases for tunneled traffic in IPVS, from Julian Anastasov. 5) Fix crash if scheduler is changed via ipvsadm -E, again from Julian. 6) Make sure skb->sk is unset for forwarded traffic through IPVS, again from Alex Gartrell. 7) Fix crash with IPVS sync protocol v0 and FTP, from Julian. 8) Reset sender cpu for forwarded traffic in IPVS, also from Julian. 9) Allocate template conntracks through kmalloc() to resolve netns dependency problems with the conntrack kmem_cache. 10) Fix zones with expectations that clash using the same tuple, from Joe Stringer. ==================== Signed-off-by: David S. Miller commit cc9f4daa638e660f7a910b8094122561470ac331 Author: Konstantin Khlebnikov Date: Wed Jul 22 12:23:20 2015 +0300 cgroup: net_cls: fix false-positive "suspicious RCU usage" In dev_queue_xmit() net_cls protected with rcu-bh. [ 270.730026] =============================== [ 270.730029] [ INFO: suspicious RCU usage. ] [ 270.730033] 4.2.0-rc3+ #2 Not tainted [ 270.730036] ------------------------------- [ 270.730040] include/linux/cgroup.h:353 suspicious rcu_dereference_check() usage! [ 270.730041] other info that might help us debug this: [ 270.730043] rcu_scheduler_active = 1, debug_locks = 1 [ 270.730045] 2 locks held by dhclient/748: [ 270.730046] #0: (rcu_read_lock_bh){......}, at: [] __dev_queue_xmit+0x50/0x960 [ 270.730085] #1: (&qdisc_tx_lock){+.....}, at: [] __dev_queue_xmit+0x240/0x960 [ 270.730090] stack backtrace: [ 270.730096] CPU: 0 PID: 748 Comm: dhclient Not tainted 4.2.0-rc3+ #2 [ 270.730098] Hardware name: OpenStack Foundation OpenStack Nova, BIOS Bochs 01/01/2011 [ 270.730100] 0000000000000001 ffff8800bafeba58 ffffffff817ad487 0000000000000007 [ 270.730103] ffff880232a0a780 ffff8800bafeba88 ffffffff810ca4f2 ffff88022fb23e00 [ 270.730105] ffff880232a0a780 ffff8800bafebb68 ffff8800bafebb68 ffff8800bafebaa8 [ 270.730108] Call Trace: [ 270.730121] [] dump_stack+0x4c/0x65 [ 270.730148] [] lockdep_rcu_suspicious+0xe2/0x120 [ 270.730153] [] task_cls_state+0x92/0xa0 [ 270.730158] [] cls_cgroup_classify+0x4f/0x120 [cls_cgroup] [ 270.730164] [] tc_classify_compat+0x74/0xc0 [ 270.730166] [] tc_classify+0x33/0x90 [ 270.730170] [] htb_enqueue+0xaa/0x4a0 [sch_htb] [ 270.730172] [] __dev_queue_xmit+0x306/0x960 [ 270.730174] [] ? __dev_queue_xmit+0x50/0x960 [ 270.730176] [] dev_queue_xmit_sk+0x13/0x20 [ 270.730185] [] dev_queue_xmit+0x10/0x20 [ 270.730187] [] packet_snd.isra.62+0x54c/0x760 [ 270.730190] [] packet_sendmsg+0x2f5/0x3f0 [ 270.730203] [] ? sock_def_readable+0x5/0x190 [ 270.730210] [] ? _raw_spin_unlock+0x2b/0x40 [ 270.730216] [] ? unix_dgram_sendmsg+0x5cc/0x640 [ 270.730219] [] sock_sendmsg+0x47/0x50 [ 270.730221] [] sock_write_iter+0x7f/0xd0 [ 270.730232] [] __vfs_write+0xa7/0xf0 [ 270.730234] [] vfs_write+0xb8/0x190 [ 270.730236] [] SyS_write+0x52/0xb0 [ 270.730239] [] entry_SYSCALL_64_fastpath+0x12/0x76 Signed-off-by: Konstantin Khlebnikov Signed-off-by: David S. Miller net/core/netclassid_cgroup.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit e9c28e16a0b7071c88a206ad8ce0c73f6605bba7 Author: Woodrow Shen Date: Sat Jul 25 10:36:16 2015 +0800 ALSA: hda - Fix the headset mic that will not work on Dell desktop machine When the headset was plugged in the Dell desktop, the mic of headset can't be detected and workable. According to the alsa-info, we found the differece between alsa and init_pin_configs on the machine, so we need to add the pin configs to make headset work. Codec: Realtek ALC3234 Vendor Id: 0x10ec0255 Subsystem Id: 0x102806bb BugLink: https://bugs.launchpad.net/bugs/1477900 Signed-off-by: Woodrow Shen Signed-off-by: Takashi Iwai sound/pci/hda/patch_realtek.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) commit 44008f0896ae205b02b0882dbf807f0de149efc4 Author: Dan Carpenter Date: Sat Jul 25 03:03:38 2015 +0300 ALSA: hda - fix cs4210_spdif_automute() Smatch complains that we have nested checks for "spdif_present". It turns out the current behavior isn't correct, we should remove the first check and keep the second. Fixes: 1077a024812d ('ALSA: hda - Use generic parser for Cirrus codec driver') Signed-off-by: Dan Carpenter Signed-off-by: Takashi Iwai sound/pci/hda/patch_cirrus.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 77e62da6e60c7772971f813f588d372a7f1a4167 Author: WANG Cong Date: Tue Jul 21 16:52:43 2015 -0700 sch_choke: drop all packets in queue during reset Signed-off-by: Cong Wang Signed-off-by: David S. Miller net/sched/sch_choke.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit fe6bea7f1f3a09fc06d835446d34d3b3b6a543fb Author: WANG Cong Date: Tue Jul 21 16:31:53 2015 -0700 sch_plug: purge buffered packets during reset Otherwise the skbuff related structures are not correctly refcount'ed. Cc: Jamal Hadi Salim Signed-off-by: Cong Wang Signed-off-by: David S. Miller net/sched/sch_plug.c | 1 + 1 file changed, 1 insertion(+) commit c42a6e8b2907d68844bb750f839982ba2556c970 Merge: c5dfd65 2392deb Author: David S. Miller Date: Fri Jul 24 22:46:23 2015 -0700 Merge branch 'fib_select_default-fixes' Julian Anastasov says: ==================== ipv4: fib_select_default changes This patchset contains 2 changes for the alternative routes, one to add tb_id/fa_slen check needed after the recent fib_trie optimizations for fib aliases and the second change attempts to support alternative routes with TOS requirement. Sorry that I don't have access to the original report from Hagen Paul Pfeifer. I hope he will see this change. The second change adds fa_default field to the fib aliases (which can be many) and if the feature to filter the alternative routes by TOS is not worth it, this second patch can be scrapped. ==================== Signed-off-by: David S. Miller commit 2392debc2be721a7d5b907cbcbc0ebb858dead01 Author: Julian Anastasov Date: Wed Jul 22 10:43:23 2015 +0300 ipv4: consider TOS in fib_select_default fib_select_default considers alternative routes only when res->fi is for the first alias in res->fa_head. In the common case this can happen only when the initial lookup matches the first alias with highest TOS value. This prevents the alternative routes to require specific TOS. This patch solves the problem as follows: - routes that require specific TOS should be returned by fib_select_default only when TOS matches, as already done in fib_table_lookup. This rule implies that depending on the TOS we can have many different lists of alternative gateways and we have to keep the last used gateway (fa_default) in first alias for the TOS instead of using single tb_default value. - as the aliases are ordered by many keys (TOS desc, fib_priority asc), we restrict the possible results to routes with matching TOS and lowest metric (fib_priority) and routes that match any TOS, again with lowest metric. For example, packet with TOS 8 can not use gw3 (not lowest metric), gw4 (different TOS) and gw6 (not lowest metric), all other gateways can be used: tos 8 via gw1 metric 2 <--- res->fa_head and res->fi tos 8 via gw2 metric 2 tos 8 via gw3 metric 3 tos 4 via gw4 tos 0 via gw5 tos 0 via gw6 metric 1 Reported-by: Hagen Paul Pfeifer Signed-off-by: Julian Anastasov Signed-off-by: David S. Miller include/net/ip_fib.h | 3 +-- net/ipv4/fib_lookup.h | 1 + net/ipv4/fib_semantics.c | 36 +++++++++++++++++++++++++----------- net/ipv4/fib_trie.c | 3 ++- net/ipv4/route.c | 2 +- 5 files changed, 30 insertions(+), 15 deletions(-) commit 18a912e9a832dcfc7db9e055c7e41701ff5f9e69 Author: Julian Anastasov Date: Wed Jul 22 10:43:22 2015 +0300 ipv4: fib_select_default should match the prefix fib_trie starting from 4.1 can link fib aliases from different prefixes in same list. Make sure the alternative gateways are in same table and for same prefix (0) by checking tb_id and fa_slen. Fixes: 79e5ad2ceb00 ("fib_trie: Remove leaf_info") Signed-off-by: Julian Anastasov Signed-off-by: David S. Miller net/ipv4/fib_semantics.c | 5 +++++ 1 file changed, 5 insertions(+) commit e053f96b1a00022b4e2c7ceb7ac0229646626507 Author: Denis Carikli Date: Thu Jul 23 10:31:12 2015 +0200 ARM: dts: i.MX35: Fix can support. Since commit 3d42a379b6fa5b46058e3302b1802b29f64865bb ("can: flexcan: add 2nd clock to support imx53 and newer") the can driver requires a dt nodes to have a second clock. Add them to imx35 to fix probing the flex can driver on the respective platforms. Signed-off-by: Denis Carikli Cc: Signed-off-by: Shawn Guo arch/arm/boot/dts/imx35.dtsi | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit c4cfdd81c8fde84e2c75bc90533c7e1276937d3a Author: Sebastian Herbszt Date: Mon Jul 20 00:16:01 2015 +0200 Documentation/target: Fix tcm_mod_builder.py build breakage Fix build breakage and set the protocol identifier based on the parameter. Fixes: 9ac8928e6a3e ("target: simplify the target template registration API") Fixes: e4aae5af810e ("target: change core_tpg_register prototype") Signed-off-by: Sebastian Herbszt Reviewed-by: Christoph Hellwig Signed-off-by: Nicholas Bellinger Documentation/target/tcm_mod_builder.py | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) commit 33b40178cb3bd75294d1a758b3f509a0d38682ab Merge: 9fbf075 f3f5da6 Author: Linus Torvalds Date: Fri Jul 24 17:00:04 2015 -0700 Merge branch 'for-linus' of git://git.kernel.dk/linux-block Pull block fixes from Jens Axboe: "Four smaller fixes for the current series. This contains: - A fix for clones of discard bio's, that can cause data corruption. From Martin. - A fix for null_blk, where in certain queue modes it could access a request after it had been freed. From Mike Krinkin. - An error handling leak fix for blkcg, from Tejun. - Also from Tejun, export of the functions that a file system needs to implement cgroup writeback support" * 'for-linus' of git://git.kernel.dk/linux-block: block: Do a full clone when splitting discard bios block: export bio_associate_*() and wbc_account_io() blkcg: fix gendisk reference leak in blkg_conf_prep() null_blk: fix use-after-free problem commit 9fbf075c96fe09719f857c5abcf7b3138f5e0855 Merge: 1e63dca 9051bd3 Author: Linus Torvalds Date: Fri Jul 24 16:54:59 2015 -0700 Merge branch 'for-4.2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata Pull libata fixes from Tejun Heo: "A couple important fixes. - A block layer change which removed restriction on max transfer size led to silent data corruption on some devices. A new quirk is added to restore the old size limit for the reported device. If it gets reported on more devices, we might have to consider restoring the restriction for ATA devices by default. - There finally is a SSD which is confirmed to cause data corruption on TRIM regardless of which flavor is used. A new quirk is added and the device is blacklisted - Other device-specific workarounds" * 'for-4.2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata: libata: Do not blacklist M510DC libata: increase the timeout when setting transfer mode libata: add ATA_HORKAGE_MAX_SEC_1024 to revert back to previous max_sectors limit libata: force disable trim for SuperSSpeed S238 libata: add ATA_HORKAGE_NOTRIM libata: add ATA_HORKAGE_BROKEN_FPDMA_AA quirk for HP 250GB SATA disk VB0250EAVER ata: pmp: add quirk for Marvell 4140 SATA PMP commit 1e63dca76a7458aeea7b2f7ecf93d8a9fe8d57b1 Merge: a52bd79 9cd7604 Author: Linus Torvalds Date: Fri Jul 24 16:43:16 2015 -0700 Merge tag 'mmc-4.2-rc3' of git://git.linaro.org/people/ulf.hansson/mmc Pull MMC fixes from Ulf Hansson: "Here are some mmc fixes intended for v4.2 rc4. Note, most of the changes are for the sdhci-esdhc-imx controller, which also required us to modify some related DTS files. Those changes have been acked by the SoC maintainer. MMC core: - Fix a reference inbalance issue for power_ro_lock_show() sysfs handler MMC host: - omap_hsmmc: Fix IRQ errorhandling for CD, DTO, and CRC - sdhci: Prevent a kernel panic while using DMA - mtk-sd: Let it depend on HAS_DMA to prevent build errors - sdhci-esdhc: Make 8BIT bus work - sdhci-esdhc-imx: Fix some regressions for DT based platforms - sdhci-pxav3: Fix a regression for DT based platforms" * tag 'mmc-4.2-rc3' of git://git.linaro.org/people/ulf.hansson/mmc: mmc: sdhci-pxav3: fix platform_data is not initialized dts: mmc: fsl-imx-esdhc: remove fsl,cd-controller support mmc: sdhci-esdhc-imx: clear f_max in boarddata mmc: sdhci-esdhc-imx: remove duplicated dts parsing mmc: sdhci: make max-frequency property in device tree work mmc: sdhci-esdhc-imx: move all non dt probe code into one function mmc: sdhci-esdhc-imx: fix cd regression for dt platform dts: imx7: fix sd card gpio polarity specified in device tree dts: imx25: fix sd card gpio polarity specified in device tree dts: imx6: fix sd card gpio polarity specified in device tree dts: imx53: fix sd card gpio polarity specified in device tree dts: imx51: fix sd card gpio polarity specified in device tree mmc: sdhci-esdhc: Make 8BIT bus work mmc: block: Add missing mmc_blk_put() in power_ro_lock_show() mmc: MMC_MTK should depend on HAS_DMA mmc: sdhci check parameters before call dma_free_coherent mmc: omap_hsmmc: Handle BADA, DEB and CEB interrupts mmc: omap_hsmmc: Fix DTO and DCRC handling commit a52bd79e3ef683808e129c7627e8878ea0309459 Merge: afdf0b9 8b5a359 Author: Linus Torvalds Date: Fri Jul 24 16:33:11 2015 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input Pull input fixes from Dmitry Torokhov: "A fix for the warnings/oops when handling HID devices with "unnamed" LEDs and couple of other driver fixups"" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: Input: goodix - fix touch coordinates on WinBook TW100 and TW700 Input: LEDs - skip unnamed LEDs Input: usbtouchscreen - avoid unresponsive TSC-30 touch screen Input: elantech - force resolution of 31 u/mm Input: zforce - don't overwrite the stack commit ce9a9fc20a78ad1e5222fae3a83d105f2d2fb9b9 Author: Nicholas Bellinger Date: Fri Jul 24 02:29:55 2015 +0000 iser-target: Fix REJECT CM event use-after-free OOPs This patch fixes a bug in iser-target code where the REJECT CM event handler code currently performs a isert_put_conn() for the final isert_conn->kref put, while iscsi_np process context is still blocked in isert_get_login_rx(). Once isert_get_login_rx() is awoking due to login timeout, iscsi_np process context will attempt to invoke iscsi_target_login_sess_out() to cleanup iscsi_conn as expected, and calls isert_wait_conn() + isert_free_conn() which triggers the use-after-free OOPs. To address this bug, move the kref_get_unless_zero() call from isert_connected_handler() into isert_connect_request() immediately preceeding isert_rdma_accept() to ensure the CM handler cleanup paths and isert_free_conn() are always operating with two refs. Cc: Sagi Grimberg Cc: # v3.10+ Signed-off-by: Nicholas Bellinger drivers/infiniband/ulp/isert/ib_isert.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) commit 007d038bdf95ccfe2491d0078be54040d110fd06 Author: Nicholas Bellinger Date: Thu Jul 23 22:30:31 2015 +0000 iscsi-target: Fix iser explicit logout TX kthread leak This patch fixes a regression introduced with the following commit in v4.0-rc1 code, where an explicit iser-target logout would result in ->tx_thread_active being incorrectly cleared by the logout post handler, and subsequent TX kthread leak: commit 88dcd2dab5c23b1c9cfc396246d8f476c872f0ca Author: Nicholas Bellinger Date: Thu Feb 26 22:19:15 2015 -0800 iscsi-target: Convert iscsi_thread_set usage to kthread.h To address this bug, change iscsit_logout_post_handler_closesession() and iscsit_logout_post_handler_samecid() to only cmpxchg() on ->tx_thread_active for traditional iscsi/tcp connections. This is required because iscsi/tcp connections are invoking logout post handler logic directly from TX kthread context, while iser connections are invoking logout post handler logic from a seperate workqueue context. Cc: Sagi Grimberg Cc: # v3.10+ Signed-off-by: Nicholas Bellinger drivers/target/iscsi/iscsi_target.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) commit e54198657b65625085834847ab6271087323ffea Author: Nicholas Bellinger Date: Wed Jul 22 23:14:19 2015 -0700 iscsi-target: Fix iscsit_start_kthreads failure OOPs This patch fixes a regression introduced with the following commit in v4.0-rc1 code, where a iscsit_start_kthreads() failure triggers a NULL pointer dereference OOPs: commit 88dcd2dab5c23b1c9cfc396246d8f476c872f0ca Author: Nicholas Bellinger Date: Thu Feb 26 22:19:15 2015 -0800 iscsi-target: Convert iscsi_thread_set usage to kthread.h To address this bug, move iscsit_start_kthreads() immediately preceeding the transmit of last login response, before signaling a successful transition into full-feature-phase within existing iscsi_target_do_tx_login_io() logic. This ensures that no target-side resource allocation failures can occur after the final login response has been successfully sent. Also, it adds a iscsi_conn->rx_login_comp to allow the RX thread to sleep to prevent other socket related failures until the final iscsi_post_login_handler() call is able to complete. Cc: Sagi Grimberg Cc: # v3.10+ Signed-off-by: Nicholas Bellinger drivers/target/iscsi/iscsi_target.c | 18 ++++++++++--- drivers/target/iscsi/iscsi_target_login.c | 45 ++++++++++++------------------- drivers/target/iscsi/iscsi_target_login.h | 3 ++- drivers/target/iscsi/iscsi_target_nego.c | 34 ++++++++++++++++++++++- include/target/iscsi/iscsi_target_core.h | 1 + 5 files changed, 68 insertions(+), 33 deletions(-) commit 417c20a9bdd1e876384127cf096d8ae8b559066c Author: Nicholas Bellinger Date: Wed Jul 22 00:24:09 2015 -0700 iscsi-target: Fix use-after-free during TPG session shutdown This patch fixes a use-after-free bug in iscsit_release_sessions_for_tpg() where se_portal_group->session_lock was incorrectly released/re-acquired while walking the active se_portal_group->tpg_sess_list. The can result in a NULL pointer dereference when iscsit_close_session() shutdown happens in the normal path asynchronously to this code, causing a bogus dereference of an already freed list entry to occur. To address this bug, walk the session list checking for the same state as before, but move entries to a local list to avoid dropping the lock while walking the active list. As before, signal using iscsi_session->session_restatement=1 for those list entries to be released locally by iscsit_free_session() code. Reported-by: Sunilkumar Nadumuttlu Cc: Sunilkumar Nadumuttlu Cc: # v3.1+ Signed-off-by: Nicholas Bellinger drivers/target/iscsi/iscsi_target.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 7359df25a53386dd33c223672bbd12cb49d0ce4f Author: Alexei Potashnik Date: Tue Jul 14 16:00:49 2015 -0400 qla2xxx: terminate exchange when command is aborted by LIO The newly introduced aborted_task TFO callback has to terminate exchange with QLogic driver, since command is being deleted and no status will be queued to the driver at a later point. This patch also moves the burden of releasing one cmd refcount to the aborted_task handler. Changed iSCSI aborted_task logic to satisfy the above requirement. Cc: # v3.18+ Signed-off-by: Alexei Potashnik Acked-by: Quinn Tran Signed-off-by: Himanshu Madhani Signed-off-by: Nicholas Bellinger drivers/scsi/qla2xxx/qla_target.c | 35 ++++++++++++++++++----------------- drivers/scsi/qla2xxx/qla_target.h | 9 +-------- drivers/scsi/qla2xxx/tcm_qla2xxx.c | 11 +---------- 3 files changed, 20 insertions(+), 35 deletions(-) commit e52a8b45b9c782937f74b701f8c656d4e5619eb5 Author: Alexei Potashnik Date: Tue Jul 14 16:00:48 2015 -0400 qla2xxx: drop cmds/tmrs arrived while session is being deleted If a new initiator (different WWN) shows up on the same fcport, old initiator's session is scheduled for deletion. But there is a small window between it being marked with QLA_SESS_DELETION_IN_PROGRESS and qlt_unret_sess getting called when new session's commands will keep finding old session in the fcport map. This patch drops cmds/tmrs if they find session in the progress of being deleted. Cc: # v3.18+ Signed-off-by: Alexei Potashnik Acked-by: Quinn Tran Signed-off-by: Himanshu Madhani Signed-off-by: Nicholas Bellinger drivers/scsi/qla2xxx/qla_target.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) commit d20ed91bb60ca54c42e3326251287ec51ed225a1 Author: Alexei Potashnik Date: Tue Jul 14 16:00:47 2015 -0400 qla2xxx: disable scsi_transport_fc registration in target mode There are multiple reasons for disabling this: 1. It provides no functional benefit. We pretty much only get a few more sysfs entries for each port, but all that information is already available from /sys/kernel/debug/target/qla-session-X 2. It already only works in private-loop mode. By disabling we'll be getting more uniform behavior with fabric mode. 3. It creates complications for the new PLOGI handling mechanism: scsi_transport_fc port deletion timer could race with new session from initiator and cause logout after successful login. Cc: # v3.18+ Signed-off-by: Alexei Potashnik Signed-off-by: Himanshu Madhani Signed-off-by: Nicholas Bellinger drivers/scsi/qla2xxx/qla_init.c | 14 +++++++++++--- drivers/scsi/qla2xxx/qla_os.c | 3 ++- 2 files changed, 13 insertions(+), 4 deletions(-) commit df673274fa4896f25f0bf348d2a3535d74b4cbec Author: Alexei Potashnik Date: Tue Jul 14 16:00:46 2015 -0400 qla2xxx: added sess generations to detect RSCN update races RSCN processing in qla2xxx driver can run in parallel with ELS/IO processing. As such the decision to remove disappeared fc port's session could be stale, because a new login sequence has occurred since and created a brand new session. Previous mechanism of dealing with this by delaying deletion request was prone to erroneous deletions if the event that was supposed to cancel the deletion never arrived or has been delayed in processing. New mechanism relies on a time-like generation counter to serialize RSCN updates relative to ELS/IO updates. Cc: # v3.18+ Signed-off-by: Alexei Potashnik Signed-off-by: Himanshu Madhani Signed-off-by: Nicholas Bellinger drivers/scsi/qla2xxx/qla_dbg.c | 2 +- drivers/scsi/qla2xxx/qla_def.h | 5 ++++ drivers/scsi/qla2xxx/qla_init.c | 32 +++++++++++++-------- drivers/scsi/qla2xxx/qla_os.c | 5 +++- drivers/scsi/qla2xxx/qla_target.c | 60 ++++++++++++++++++++++++++++++++------- drivers/scsi/qla2xxx/qla_target.h | 5 +++- 6 files changed, 83 insertions(+), 26 deletions(-) commit daddf5cf9b5c68b81b2bb7133f1dd0fda4552d0b Author: Alexei Potashnik Date: Tue Jul 14 16:00:45 2015 -0400 qla2xxx: Abort stale cmds on qla_tgt_wq when plogi arrives cancel any commands from initiator's s_id that are still waiting on qla_tgt_wq when PLOGI arrives. Cc: # v3.18+ Signed-off-by: Alexei Potashnik Acked-by: Quinn Tran Signed-off-by: Himanshu Madhani Signed-off-by: Nicholas Bellinger drivers/scsi/qla2xxx/qla_target.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) commit a6ca88780dd66b0700d89419abd17b6b4bb49483 Author: Alexei Potashnik Date: Tue Jul 14 16:00:44 2015 -0400 qla2xxx: delay plogi/prli ack until existing sessions are deleted - keep qla_tgt_sess object on the session list until it's freed - modify use of sess->deleted flag to differentiate delayed session deletion that can be cancelled from irreversible one: QLA_SESS_DELETION_PENDING vs QLA_SESS_DELETION_IN_PROGRESS - during IN_PROGRESS deletion all newly arrived commands and TMRs will be rejected, existing commands and TMRs will be terminated when given by the core to the fabric or simply dropped if session logout has already happened (logout terminates all existing exchanges) - new PLOGI will initiate deletion of the following sessions (unless deletion is already IN_PROGRESS): - with the same port_name (with logout) - different port_name, different loop_id but the same port_id (with logout) - different port_name, different port_id, but the same loop_id (without logout) - additionally each new PLOGI will store imm notify iocb in the same port_name session being deleted. When deletion process completes this iocb will be acked. Only the most recent PLOGI iocb is stored. The older ones will be terminated when replaced. - new PRLI will initiate deletion of the following sessions (unless deletion is already IN_PROGRESS): - different port_name, different port_id, but the same loop_id (without logout) Cc: # v3.18+ Signed-off-by: Alexei Potashnik Acked-by: Quinn Tran Signed-off-by: Himanshu Madhani Signed-off-by: Nicholas Bellinger drivers/scsi/qla2xxx/qla_dbg.c | 6 +- drivers/scsi/qla2xxx/qla_def.h | 2 + drivers/scsi/qla2xxx/qla_init.c | 7 +- drivers/scsi/qla2xxx/qla_iocb.c | 3 + drivers/scsi/qla2xxx/qla_target.c | 438 +++++++++++++++++++++++++++++++++++-- drivers/scsi/qla2xxx/qla_target.h | 43 +++- drivers/scsi/qla2xxx/tcm_qla2xxx.c | 4 + 7 files changed, 481 insertions(+), 22 deletions(-) commit 8b2f5ff3d05c2c48b722c3cc67b8226f1601042b Author: Swapnil Nagle Date: Tue Jul 14 16:00:43 2015 -0400 qla2xxx: cleanup cmd in qla workqueue before processing TMR Since cmds go into qla_tgt_wq and TMRs don't, it's possible that TMR like TASK_ABORT can be queued over the cmd for which it was meant. To avoid this race, use a per-port list to keep track of cmds that are enqueued to qla_tgt_wq but not yet processed. When a TMR arrives, iterate through this list and remove any cmds that match the TMR. This patch supports TASK_ABORT and LUN_RESET. Cc: # v3.18+ Signed-off-by: Swapnil Nagle Signed-off-by: Alexei Potashnik Acked-by: Quinn Tran Signed-off-by: Himanshu Madhani Signed-off-by: Nicholas Bellinger drivers/scsi/qla2xxx/qla_dbg.c | 2 +- drivers/scsi/qla2xxx/qla_def.h | 5 ++ drivers/scsi/qla2xxx/qla_os.c | 3 + drivers/scsi/qla2xxx/qla_target.c | 123 +++++++++++++++++++++++++++++++++++-- drivers/scsi/qla2xxx/qla_target.h | 12 ++++ drivers/scsi/qla2xxx/tcm_qla2xxx.c | 8 +-- 6 files changed, 140 insertions(+), 13 deletions(-) commit b2032fd567326ad0b2d443bb6d96d2580ec670a5 Author: Roland Dreier Date: Tue Jul 14 16:00:42 2015 -0400 qla2xxx: kill sessions/log out initiator on RSCN and port down events To fix some issues talking to ESX, this patch modifies the qla2xxx driver so that it never logs into remote ports. This has the side effect of getting rid of the "rports" entirely, which means we never log out of initiators and never tear down sessions when an initiator goes away. This is mostly OK, except that we can run into trouble if we have initiator A assigned FC address X:Y:Z by the fabric talking to us, and then initiator A goes away. Some time (could be a long time) later, initiator B comes along and also gets FC address X:Y:Z (which is available again, because initiator A is gone). If initiator B starts talking to us, then we'll still have the session for initiator A, and since we look up incoming IO based on the FC address X:Y:Z, initiator B will end up using ACLs for initiator A. Fix this by: 1. Handling RSCN events somewhat differently; instead of completely skipping the processing of fcports, we look through the list, and if an fcport disappears, we tell the target code the tear down the session and tell the HBA FW to release the N_Port handle. 2. Handling "port down" events by flushing all of our sessions. The firmware was already releasing the N_Port handle but we want the target code to drop all the sessions too. Cc: # v3.18+ Signed-off-by: Roland Dreier Signed-off-by: Alexei Potashnik Acked-by: Quinn Tran Signed-off-by: Himanshu Madhani Signed-off-by: Nicholas Bellinger drivers/scsi/qla2xxx/qla_dbg.c | 2 +- drivers/scsi/qla2xxx/qla_init.c | 137 ++++++++++++++++++++++++++++++-------- drivers/scsi/qla2xxx/qla_target.c | 9 +-- 3 files changed, 117 insertions(+), 31 deletions(-) commit 9fce12540cb9f91e7f1f539a80b70f0b388bdae0 Author: Kanoj Sarcar Date: Wed Jun 10 11:05:23 2015 -0400 qla2xxx: fix command initialization in target mode. Cc: # v3.18+ Signed-off-by: Kanoj Sarcar Signed-off-by: Himanshu Madhani Reviewed-by: Nicholas Bellinger Signed-off-by: Nicholas Bellinger drivers/scsi/qla2xxx/qla_target.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 6bc85dd595a5438b50ec085668e53ef26058bb90 Author: Himanshu Madhani Date: Wed Jun 10 11:05:22 2015 -0400 qla2xxx: Remove msleep in qlt_send_term_exchange Remove unnecessary msleep from qlt_send_term_exchange as it adds latency of 250 msec while sending terminate exchange to an aborted task. Cc: # v3.18+ Signed-off-by: Himanshu Madhani Signed-off-by: Giridhar Malavali Reviewed-by: Nicholas Bellinger Signed-off-by: Nicholas Bellinger drivers/scsi/qla2xxx/qla_target.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) commit e5fdee875f7918b37f7c3fce3025197d8f214a27 Author: Quinn Tran Date: Wed Jun 10 11:05:21 2015 -0400 qla2xxx: adjust debug flags Adjust debug flag to match debug comment. Signed-off-by: Quinn Tran Signed-off-by: Himanshu Madhani Reviewed-by: Nicholas Bellinger Signed-off-by: Nicholas Bellinger drivers/scsi/qla2xxx/qla_target.c | 7 ++++--- drivers/scsi/qla2xxx/qla_target.h | 3 +++ drivers/scsi/qla2xxx/tcm_qla2xxx.c | 3 +-- 3 files changed, 8 insertions(+), 5 deletions(-) commit 810e30bc4658e9c069577bde52394a5af872803c Author: Quinn Tran Date: Wed Jun 10 11:05:20 2015 -0400 qla2xxx: release request queue reservation. Request IOCB queue element(s) is reserved during good path IO. Under error condition such as unable to allocate IOCB handle condition, the IOCB count that was reserved is not released. Cc: # v3.18+ Signed-off-by: Quinn Tran Signed-off-by: Himanshu Madhani Reviewed-by: Nicholas Bellinger Signed-off-by: Nicholas Bellinger drivers/scsi/qla2xxx/qla_target.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit 3761f3e8704878b1d3db9751f5c6db6fc918032f Author: Quinn Tran Date: Wed Jun 10 11:05:19 2015 -0400 qla2xxx: Add flush after updating ATIOQ consumer index. After updating the consumer index of ATIO Q, a read is required to flush the write to the adapter register. Signed-off-by: Quinn Tran Signed-off-by: Himanshu Madhani Reviewed-by: Nicholas Bellinger Signed-off-by: Nicholas Bellinger drivers/scsi/qla2xxx/qla_target.c | 1 + 1 file changed, 1 insertion(+) commit b20f02e1418d8a5617b81464c612de09aa55e552 Author: Himanshu Madhani Date: Wed Jun 10 11:05:18 2015 -0400 qla2xxx: Enable target mode for ISP27XX Signed-off-by: Himanshu Madhani Signed-off-by: Giridhar Malavali Reviewed-by: Nicholas Bellinger Signed-off-by: Nicholas Bellinger drivers/scsi/qla2xxx/qla_attr.c | 2 +- drivers/scsi/qla2xxx/qla_def.h | 8 ++++---- drivers/scsi/qla2xxx/qla_init.c | 4 ++-- drivers/scsi/qla2xxx/qla_mbx.c | 7 ++++--- drivers/scsi/qla2xxx/qla_os.c | 1 + drivers/scsi/qla2xxx/qla_sup.c | 2 +- drivers/scsi/qla2xxx/qla_target.c | 2 +- 7 files changed, 14 insertions(+), 12 deletions(-) commit ba9f6f64a0ff6b7ecaed72144c179061f8eca378 Author: Saurav Kashyap Date: Wed Jun 10 11:05:17 2015 -0400 qla2xxx: Fix hardware lock/unlock issue causing kernel panic. [ Upstream commit ef86cb2059a14b4024c7320999ee58e938873032 ] This patch fixes a kernel panic for qla2xxx Target core Module driver introduced by a fix in the qla2xxx initiator code. Commit ef86cb2 ("qla2xxx: Mark port lost when we receive an RSCN for it.") introduced the regression for qla2xxx Target driver. Stack trace will have following signature --- --- [ffff88081faa3cc8] _raw_spin_lock_irqsave at ffffffff815b1f03 [ffff88081faa3cd0] qlt_fc_port_deleted at ffffffffa096ccd0 [qla2xxx] [ffff88081faa3d20] qla2x00_schedule_rport_del at ffffffffa0913831[qla2xxx] [ffff88081faa3d50] qla2x00_mark_device_lost at ffffffffa09159c5[qla2xxx] [ffff88081faa3db0] qla2x00_async_event at ffffffffa0938d59 [qla2xxx] [ffff88081faa3e30] qla24xx_msix_default at ffffffffa093a326 [qla2xxx] [ffff88081faa3e90] handle_irq_event_percpu at ffffffff810a7b8d [ffff88081faa3ee0] handle_irq_event at ffffffff810a7d32 [ffff88081faa3f10] handle_edge_irq at ffffffff810ab6b9 [ffff88081faa3f30] handle_irq at ffffffff8100619c [ffff88081faa3f70] do_IRQ at ffffffff815b4b1c --- --- Cc: # v3.18+ Signed-off-by: Saurav Kashyap Signed-off-by: Himanshu Madhani Reviewed-by: Nicholas Bellinger Signed-off-by: Nicholas Bellinger drivers/scsi/qla2xxx/qla_init.c | 4 ++++ drivers/scsi/qla2xxx/qla_target.c | 6 ------ 2 files changed, 4 insertions(+), 6 deletions(-) commit 4bc94d5dc95d3a2159d821b39277477e69507f67 Author: Alex Williamson Date: Fri Jul 24 15:14:04 2015 -0600 vfio: Fix lockdep issue When we open a device file descriptor, we currently have the following: vfio_group_get_device_fd() mutex_lock(&group->device_lock); open() ... if (ret) release() If we hit that error case, we call the backend driver release path, which for vfio-pci looks like this: vfio_pci_release() vfio_pci_disable() vfio_pci_try_bus_reset() vfio_pci_get_devs() vfio_device_get_from_dev() vfio_group_get_device() mutex_lock(&group->device_lock); Whoops, we've stumbled back onto group.device_lock and created a deadlock. There's a low likelihood of ever seeing this play out, but obviously it needs to be fixed. To do that we can use a reference to the vfio_device for vfio_group_get_device_fd() rather than holding the lock. There was a loop in this function, theoretically allowing multiple devices with the same name, but in practice we don't expect such a thing to happen and the code is already aborting from the loop with break on any sort of error rather than continuing and only parsing the first match anyway, so the loop was effectively unused already. Signed-off-by: Alex Williamson Fixes: 20f300175a1e ("vfio/pci: Fix racy vfio_device_get_from_dev() call") Reported-by: Joerg Roedel Tested-by: Joerg Roedel drivers/vfio/vfio.c | 91 +++++++++++++++++++++++++++++++---------------------- 1 file changed, 54 insertions(+), 37 deletions(-) commit afdf0b91bdf04bc66ee64e1ac44f0979c55749b1 Merge: 365c83c 4c7d83e Author: Linus Torvalds Date: Fri Jul 24 13:14:06 2015 -0700 Merge tag 'regulator-fix-v4.2-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator Pull regulator fixes from Mark Brown: "As well as some driver specific fixes there's several fixes here for the core support for regulators supplying other regulators fixing both an issue with ACPI support (which had never been tested before) and some error handling and device removal issues that Javier noticed" * tag 'regulator-fix-v4.2-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: regulator: core: Fix memory leak in regulator_resolve_supply() regulator: core: Increase refcount for regulator supply's module regulator: core: Handle full constraints systems when resolving supplies regulator: 88pm800: fix LDO vsel_mask value regulator: max8973: Fix up control flag option for bias control regulator: s2mps11: Fix GPIO suspend enable shift wrapping bug commit 365c83c3f56e5c7b161c041a487170f9a4840523 Merge: 5b7f00a 0c38ec7 Author: Linus Torvalds Date: Fri Jul 24 13:13:28 2015 -0700 Merge tag 'spi-fix-v4.2-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi Pull spi fixes from Mark Brown: "A small collection of pretty much unremarkable driver specific fixes here plus the addition of a new device ID to spidev which requires no other code changes" * tag 'spi-fix-v4.2-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: spi: imx: Fix small DMA transfers spi: zynq: missing break statement spi: SPI_ZYNQMP_GQSPI should depend on HAS_DMA spi: spidev: add compatible value for LTC2488 spi: img-spfi: fix support for speeds up to 1/4th input clock commit 5b7f00a5967a3fdd8654ba6926930e672710ef63 Merge: 874bf9e cba5997 Author: Linus Torvalds Date: Fri Jul 24 12:50:19 2015 -0700 Merge tag 'sound-4.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound Pull sound fixes from Takashi Iwai: "This has been a calm week again: one minor lockdep fix for PCM core, and the most of the rest are HD-audio quirks and fixups for various chips and machines" * tag 'sound-4.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: ALSA: hda - Add headset mic pin quirk for a Dell device ALSA: hda - remove one pin from ALC292_STANDARD_PINS ALSA: hda - Add new GPU codec ID 0x10de007d to snd-hda ALSA: hda: add new AMD PCI IDs with proper driver caps ALSA: hda - Fix Skylake codec timeout ALSA: hda - Add headset mic support for Acer Aspire V5-573G ALSA: sparc: Add missing kfree in error path ALSA: pcm: Fix lockdep warning with nonatomic PCM ops commit 874bf9ee69cdebc1e734a391d6b2fa3e08c9ff87 Merge: 077b205 6debce6 Author: Linus Torvalds Date: Fri Jul 24 12:44:24 2015 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid Pull HID fixes from Jiri Kosina: - kernel crash fixes for multitouch and wacom drivers, by Brent Adam and Dan Carpenter - cp2112 data packet race condition corruption fix, by Antonio Borneo - a few new device IDs for wacom and microsoft drivers * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: HID: cp2112: fix to force single data-report reply HID: wacom: Enable pad device for older Bamboo Touch tablets HID: multitouch: Fix fields from pen report ID being interpreted for multitouch HID: microsoft: Add quirk for MS Surface Type/Touch cover HID: wacom: NULL dereferences on error in probe() commit 077b20537cdd4983cf180b3a3230157f08f16928 Merge: b497500 02bbc4d Author: Linus Torvalds Date: Fri Jul 24 12:37:29 2015 -0700 Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux Pull drm fixes from Dave Airlie: "Aome amdgpu, one i915, one ttm and one hlcdc, nothing too scary. All seems fine for about this time" * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: drm/ttm: recognize ARM64 arch in ioprot handler drm/amdgpu/cz/dpm: properly report UVD and VCE clock levels drm/amdgpu/cz: implement voltage validation properly drm/amdgpu: add VCE harvesting instance query drm/amdgpu: implement VCE 3.0 harvesting support (v4) drm/amdgpu/dce10: Re-set VBLANK interrupt state when enabling a CRTC drm/amdgpu/dce11: Re-set VBLANK interrupt state when enabling a CRTC drm: Stop resetting connector state to unknown drm/i915: Use two 32bit reads for select 64bit REG_READ ioctls drm: atmel-hlcdc: fix vblank initial state commit b497500069394c5612a4372536353832d64df37b Merge: c624406 3f81d24 Author: Linus Torvalds Date: Fri Jul 24 12:31:30 2015 -0700 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 freeing the initramfs memory" * 'stable' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile: tile: use free_bootmem_late() for initrd commit c624406fe6275f7fe6e3bf7ea4ddda60637fd3ab Merge: 45b4b78 0da029e Author: Linus Torvalds Date: Fri Jul 24 12:23:06 2015 -0700 Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm Pull KVM fixes from Paolo Bonzini: "Everything related to the new quirks and memory type features: - small improvements to the quirks API - extending one of the quirks from just AMD to Intel as well, because 4.2 can show the same problem with problematic firmware on Intel too" * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: KVM: x86: rename quirk constants to KVM_X86_QUIRK_* KVM: vmx: obey KVM_QUIRK_CD_NW_CLEARED KVM: x86: introduce kvm_check_has_quirk KVM: MTRR: simplify kvm_mtrr_get_guest_memory_type KVM: MTRR: fix memory type handling if MTRR is completely disabled commit 43cbf02e7ad51007af38f39c5b2abdc7a5d7f5aa Merge: cba5997 996034b Author: Takashi Iwai Date: Fri Jul 24 20:08:13 2015 +0200 Merge tag 'asoc-fix-v4.2-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus ASoC: Fixes for v4.2 A lot of small fixes here, a few to the core: - Fix for binding DAPM stream widgets on devices with prefixes assigned to them - Minor fixes for the newly added topology interfaces - Locking and memory leak fixes for DAPM - Driver specific fixes commit e3eea1404f5ff7a2ceb7b5e7ba412a6fd94f2935 Author: Steven Rostedt (Red Hat) Date: Fri Jul 24 10:38:12 2015 -0400 ftrace: Fix breakage of set_ftrace_pid Commit 4104d326b670 ("ftrace: Remove global function list and call function directly") simplified the ftrace code by removing the global_ops list with a new design. But this cleanup also broke the filtering of PIDs that are added to the set_ftrace_pid file. Add back the proper hooks to have pid filtering working once again. Cc: stable@vger.kernel.org # 3.16+ Reported-by: Matt Fleming Reported-by: Richard Weinberger Tested-by: Matt Fleming Signed-off-by: Steven Rostedt include/linux/ftrace.h | 3 +++ kernel/trace/ftrace.c | 52 +++++++++++++++++++++++++++++++++----------------- 2 files changed, 37 insertions(+), 18 deletions(-) commit bffc4496886683fac86d31e5d0cf9a22f8044e3d Author: Axel Lin Date: Sun Jul 19 12:09:16 2015 +0800 ASoC: cs4265: Fix setting dai format for Left/Right Justified The settings in current code does not match the datasheet, fix it. DAC Control - Address 03h DAC Digital Interface Format (Bits 5:4) DAC_DIF1 DAC_DIF0 Description 0 0 Left Justified, up to 24-bit data (default) 0 1 I²S, up to 24-bit data 1 0 Right-Justified, 16-bit Data 1 1 Right-Justified, 24-bit Data Transmitter Control 2 - Address 12h Transmitter Digital Interface Format (Bits 7:6) Tx_DIF1 Tx_DIF0 Description Format Figure 0 0 Left Justified, up to 24-bit data (default) 0 1 I²S, up to 24-bit data 1 0 Right-Justified, 16-bit Data 1 1 Right-Justified, 24-bit Data Signed-off-by: Axel Lin Signed-off-by: Mark Brown sound/soc/codecs/cs4265.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 8b5a359c5b3e631f17eeb1dcb930474000d33d49 Author: Bastien Nocera Date: Fri Jul 24 09:08:53 2015 -0700 Input: goodix - fix touch coordinates on WinBook TW100 and TW700 The touchscreen on the WinBook TW100 and TW700 don't match the default display, with 0,0 touches being reported when touching at the bottom right of the screen. 1280,800 0,800 +-------------+ | | | | | | +-------------+ 1280,0 0,0 It's unfortunately impossible to detect this problem with data from the DSDT, or other auxiliary metadata, so fallback to quirking this specific model of tablet instead. Signed-off-by: Bastien Nocera Reviewed-by: Benjamin Tissoires Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/goodix.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) commit b38ebd1d4b6656582b8c16358bb88d059d28b794 Author: Dmitry Torokhov Date: Wed Jul 22 14:56:39 2015 -0700 Input: LEDs - skip unnamed LEDs Devices may declare more LEDs than what is known to input-leds (HID does this for some devices). Instead of showing ugly warnings on connect and, even worse, oopsing on disconnect, let's simply ignore LEDs that are not known to us. Reported-and-tested-by: Vlastimil Babka Signed-off-by: Dmitry Torokhov drivers/input/input-leds.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) commit b8f5595eb96c9fce1c907d13e89581e5061edf2e Author: Devesh Sharma Date: Fri Jul 24 05:04:00 2015 +0530 RDMA/ocrdma: update ocrdma module license string Change module_license from "GPL" to "Dual BSD/GPL" Cc: Tejun Heo Cc: Duan Jiong Cc: Roland Dreier Cc: Jes Sorensen Cc: Sasha Levin Cc: Dan Carpenter Cc: Prarit Bhargava Cc: Colin Ian King Cc: Wei Yongjun Cc: Moni Shoua Cc: Rasmus Villemoes Cc: Li RongQing Cc: Devendra Naga Signed-off-by: Devesh Sharma Signed-off-by: Doug Ledford drivers/infiniband/hw/ocrdma/ocrdma_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 71ee67306ecbdfc0c94ed93c77ff99d29e961d69 Author: Devesh Sharma Date: Fri Jul 24 05:03:59 2015 +0530 RDMA/ocrdma: update ocrdma license to dual-license Change of license from GPLv2 to dual-license (GPLv2 and BSD 2-Clause) All contributors were contacted off-list and permission to make this change was received. The complete list of contributors are Cc:ed here. Cc: Tejun Heo Cc: Duan Jiong Cc: Roland Dreier Cc: Jes Sorensen Cc: Sasha Levin Cc: Dan Carpenter Cc: Prarit Bhargava Cc: Colin Ian King Cc: Wei Yongjun Cc: Moni Shoua Cc: Rasmus Villemoes Cc: Li RongQing Cc: Devendra Naga Signed-off-by: Devesh Sharma Signed-off-by: Doug Ledford drivers/infiniband/hw/ocrdma/ocrdma.h | 53 ++++++++++++++++++----------- drivers/infiniband/hw/ocrdma/ocrdma_abi.h | 53 ++++++++++++++++++----------- drivers/infiniband/hw/ocrdma/ocrdma_ah.c | 53 ++++++++++++++++++----------- drivers/infiniband/hw/ocrdma/ocrdma_ah.h | 53 ++++++++++++++++++----------- drivers/infiniband/hw/ocrdma/ocrdma_hw.c | 53 ++++++++++++++++++----------- drivers/infiniband/hw/ocrdma/ocrdma_hw.h | 53 ++++++++++++++++++----------- drivers/infiniband/hw/ocrdma/ocrdma_main.c | 53 ++++++++++++++++++----------- drivers/infiniband/hw/ocrdma/ocrdma_sli.h | 53 ++++++++++++++++++----------- drivers/infiniband/hw/ocrdma/ocrdma_stats.c | 53 ++++++++++++++++++----------- drivers/infiniband/hw/ocrdma/ocrdma_stats.h | 53 ++++++++++++++++++----------- drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 53 ++++++++++++++++++----------- drivers/infiniband/hw/ocrdma/ocrdma_verbs.h | 53 ++++++++++++++++++----------- 12 files changed, 408 insertions(+), 228 deletions(-) commit efc1eedbf63a194b3b576fc25776f3f1fa55a4d4 Author: Jason Gunthorpe Date: Wed Jul 22 14:30:03 2015 -0600 IB/ipoib: Fix CONFIG_INFINIBAND_IPOIB_CM If the above is turned off then ipoib_cm_dev_init unconditionally returns ENOSYS, and the newly added error handling in 0b3957 prevents ipoib from coming up at all: kernel: mlx4_0: ipoib_transport_dev_init failed kernel: mlx4_0: failed to initialize port 1 (ret = -12) Fixes: 0b39578bcde4 (IB/ipoib: Use dedicated workqueues per interface) Signed-off-by: Jason Gunthorpe Signed-off-by: Doug Ledford drivers/infiniband/ulp/ipoib/ipoib_verbs.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 49fa63d8c2f95b636cc31a7164aeac0309dfa3c9 Author: Steve Wise Date: Wed Jul 22 14:14:17 2015 -0500 RDMA/cxgb3: fail get_dma_mr on 64 bit arches T3 HW only supports 32 bit MRs. If the system uses 64 bit memory addresses, then a registered 32 bit MR will wrap and write to the wrong memory when used with addresses > 4GB. To prevent this, simply fail to allocate an MR on 64 bit machines (other means of registering memory are still available and software can still work, we just don't allow this means of memory registration). Signed-off-by: Steve Wise Signed-off-by: Doug Ledford drivers/infiniband/hw/cxgb3/iwch_provider.c | 4 ++++ 1 file changed, 4 insertions(+) commit 0c38ec716cdc0397f5225047c33a3144da93f5d8 Merge: 52721d9 861a481 f6ee9b5 6a806a2 6fec919 Author: Mark Brown Date: Fri Jul 24 16:19:50 2015 +0100 Merge remote-tracking branches 'spi/fix/gqspi', 'spi/fix/imx', 'spi/fix/mg-spfi' and 'spi/fix/spidev' into spi-linus commit 4c7d83e8a8106d90d4eff971c8d070f718ac4f9c Merge: 7055a31 322dfa6 127e106 32c848e 36a1f1b Author: Mark Brown Date: Fri Jul 24 16:19:25 2015 +0100 Merge remote-tracking branches 'regulator/fix/88pm800', 'regulator/fix/max8973', 'regulator/fix/s2mps11' and 'regulator/fix/supply' into regulator-linus commit 7055a3145402bb3296cd98895da68462778f8b18 Merge: 52721d9 9f7e25e Author: Mark Brown Date: Fri Jul 24 16:19:25 2015 +0100 Merge remote-tracking branch 'regulator/fix/core' into regulator-linus commit 996034b117b467709dec7811ef134063934fa626 Merge: c8a075a b101acf 2c57d478 2dfbe9a Author: Mark Brown Date: Fri Jul 24 16:18:22 2015 +0100 Merge remote-tracking branches 'asoc/fix/sgtl5000', 'asoc/fix/topology' and 'asoc/fix/zx' into asoc-linus commit c8a075ab1ecdbbe7dc883925cee44c54b535cd8d Merge: 5c851ba ebac95a 412efa7 56e7366 94319ba Author: Mark Brown Date: Fri Jul 24 16:18:20 2015 +0100 Merge remote-tracking branches 'asoc/fix/fsl-ssi', 'asoc/fix/intel', 'asoc/fix/intel-kconfig' and 'asoc/fix/mediatek' into asoc-linus commit 5c851ba4d5d23baff8766a2f176d7feaaae3b694 Merge: 51126f6 a6c2a32 Author: Mark Brown Date: Fri Jul 24 16:18:19 2015 +0100 Merge remote-tracking branch 'asoc/fix/ssm4567' into asoc-linus commit 51126f60491ab1a4952e2a2e93579c9b1deee9d2 Merge: 66874cc f2a5ded Author: Mark Brown Date: Fri Jul 24 16:18:19 2015 +0100 Merge remote-tracking branch 'asoc/fix/rt5645' into asoc-linus commit 66874cc145cbbea3a236e30b15c8f8378708aa31 Merge: 61710a6 fa8173a Author: Mark Brown Date: Fri Jul 24 16:18:18 2015 +0100 Merge remote-tracking branch 'asoc/fix/pcm1681' into asoc-linus commit 61710a655fa60a7b3e0fd4731bc8403df647b7a3 Merge: 52721d9 a798c24 Author: Mark Brown Date: Fri Jul 24 16:18:18 2015 +0100 Merge remote-tracking branch 'asoc/fix/dapm' into asoc-linus commit f6ee9b582d2db652497b73c1f117591dfb6d3a90 Author: Sascha Hauer Date: Fri Jul 24 15:01:08 2015 +0200 spi: imx: Fix small DMA transfers DMA transfers must be greater than the watermark level size. spi_imx->rx_wml and spi_imx->tx_wml contain the watermark level in 32bit words whereas struct spi_transfer contains the transfer len in bytes. Fix the check if DMA is possible for a transfer accordingly. This fixes transfers with sizes between 33 and 128 bytes for which previously was claimed that DMA is possible. Fixes: f62caccd12c17e4 (spi: spi-imx: add DMA support) Signed-off-by: Sascha Hauer Cc: stable@vger.kernel.org Signed-off-by: Mark Brown drivers/spi/spi-imx.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit c0c3322e98029e752526d906d9e3a680ed213c03 Author: Denys Vlasenko Date: Fri Jul 24 14:16:43 2015 +0200 x86/asm/entry/32: Revert 'Do not use R9 in SYSCALL32' commit This change reverts most of commit 53e9accf0f 'Do not use R9 in SYSCALL32'. I don't yet understand how, but code in that commit sometimes fails to preserve EBP. See https://bugzilla.kernel.org/show_bug.cgi?id=101061 "Problems while executing 32-bit code on AMD64" Reported-and-tested-by: Krzysztof A. Sobiecki Signed-off-by: Denys Vlasenko Cc: Linus Torvalds Cc: Steven Rostedt Cc: Borislav Petkov Cc: Andy Lutomirski Cc: Oleg Nesterov Cc: Frederic Weisbecker Cc: Alexei Starovoitov Cc: Will Drewry Cc: Kees Cook CC: x86@kernel.org Link: http://lkml.kernel.org/r/1437740203-11552-1-git-send-email-dvlasenk@redhat.com Signed-off-by: Thomas Gleixner arch/x86/entry/entry_64_compat.S | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) commit 8a0a5da6d9cbf1b142115ff6e6b253a82633c3d9 Author: Thomas Gleixner Date: Fri Jul 24 16:13:43 2015 +0200 x86/mm: Fix newly introduced printk format warnings Signed-off-by: Thomas Gleixner arch/x86/mm/ioremap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 53bc7dc004fecf39e0ba70f2f8d120a1444315d3 Author: Bob Liu Date: Wed Jul 22 14:40:10 2015 +0800 xen-blkback: replace work_pending with work_busy in purge_persistent_gnt() The BUG_ON() in purge_persistent_gnt() will be triggered when previous purge work haven't finished. There is a work_pending() before this BUG_ON, but it doesn't account if the work is still currently running. CC: stable@vger.kernel.org Acked-by: Roger Pau Monné Signed-off-by: Bob Liu Signed-off-by: Konrad Rzeszutek Wilk drivers/block/xen-blkback/blkback.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 7b0767502b5db11cb1f0daef2d01f6d71b1192dc Author: Bob Liu Date: Wed Jul 22 14:40:09 2015 +0800 xen-blkfront: don't add indirect pages to list when !feature_persistent We should consider info->feature_persistent when adding indirect page to list info->indirect_pages, else the BUG_ON() in blkif_free() would be triggered. When we are using persistent grants the indirect_pages list should always be empty because blkfront has pre-allocated enough persistent pages to fill all requests on the ring. CC: stable@vger.kernel.org Acked-by: Roger Pau Monné Signed-off-by: Bob Liu Signed-off-by: Konrad Rzeszutek Wilk drivers/block/xen-blkfront.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit d50babbe300eedf33ea5b00a12c5df3a05bd96c7 Author: Bob Liu Date: Wed Jul 22 14:40:08 2015 +0800 xen-blkfront: introduce blkfront_gather_backend_features() There is a bug when migrate from !feature-persistent host to feature-persistent host, because domU still thinks new host/backend doesn't support persistent. Dmesg like: backed has not unmapped grant: 839 backed has not unmapped grant: 773 backed has not unmapped grant: 773 backed has not unmapped grant: 773 backed has not unmapped grant: 839 The fix is to recheck feature-persistent of new backend in blkif_recover(). See: https://lkml.org/lkml/2015/5/25/469 As Roger suggested, we can split the part of blkfront_connect that checks for optional features, like persistent grants, indirect descriptors and flush/barrier features to a separate function and call it from both blkfront_connect and blkif_recover Acked-by: Roger Pau Monné Signed-off-by: Bob Liu Signed-off-by: Konrad Rzeszutek Wilk drivers/block/xen-blkfront.c | 122 ++++++++++++++++++++++++------------------- 1 file changed, 68 insertions(+), 54 deletions(-) commit fa8173a3ef0570affde7da352de202190b3786c2 Author: Axel Lin Date: Thu Jul 23 23:22:26 2015 +0800 ASoC: pcm1681: Fix setting de-emphasis sampling rate selection The de-emphasis sampling rate selection is controlled by BIT[3:4] of PCM1681_DEEMPH_CONTROL register. Do proper left shift to set it. Signed-off-by: Axel Lin Acked-by: Marek Belisko Signed-off-by: Mark Brown Cc: stable@vger.kernel.org sound/soc/codecs/pcm1681.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9cd76049f0d90ae241f5ad80e311489824527000 Author: Jingju Hou Date: Thu Jul 23 17:56:23 2015 +0800 mmc: sdhci-pxav3: fix platform_data is not initialized pdev->dev.platform_data is not initialized if match is true in function sdhci_pxav3_probe. Just local variable pdata is assigned the return value from function pxav3_get_mmc_pdata(). static int sdhci_pxav3_probe(struct platform_device *pdev) { struct sdhci_pxa_platdata *pdata = pdev->dev.platform_data; ... if (match) { ret = mmc_of_parse(host->mmc); if (ret) goto err_of_parse; sdhci_get_of_property(pdev); pdata = pxav3_get_mmc_pdata(dev); } ... } Signed-off-by: Jingju Hou Fixes: b650352dd3df("mmc: sdhci-pxa: Add device tree support") Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-pxav3.c | 1 + 1 file changed, 1 insertion(+) commit cae13e792f8f863a60cee2cfdbe704ea84cf2a07 Author: Dong Aisheng Date: Wed Jul 22 20:53:10 2015 +0800 dts: mmc: fsl-imx-esdhc: remove fsl,cd-controller support It's not supported by driver anymore after using runtime pm and there's no user of it, so delete it now. Signed-off-by: Dong Aisheng Reviewed-by: Johan Derycke Signed-off-by: Ulf Hansson Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.txt | 2 -- 1 file changed, 2 deletions(-) commit a3bd4f989f532694337dd30538b635d5213ab86a Author: Dong Aisheng Date: Wed Jul 22 20:53:09 2015 +0800 mmc: sdhci-esdhc-imx: clear f_max in boarddata After commit 8d86e4fcccf6 ("mmc: sdhci-esdhc-imx: Call mmc_of_parse()"), it's not used anymore. Signed-off-by: Dong Aisheng Reviewed-by: Johan Derycke Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-esdhc-imx.c | 7 +------ include/linux/platform_data/mmc-esdhc-imx.h | 1 - 2 files changed, 1 insertion(+), 7 deletions(-) commit 2e05d66b6b6cbe6018c8dcc15a379d913efdea83 Author: Dong Aisheng Date: Wed Jul 22 20:53:08 2015 +0800 mmc: sdhci-esdhc-imx: remove duplicated dts parsing After commit 8d86e4fcccf6 ("mmc: sdhci-esdhc-imx: Call mmc_of_parse()"), we do not need those duplicated parsing anymore. Note: fsl,cd-controller is also deleted due to the driver does not support controller card detection anymore after switch to runtime pm. And there's no user of it right now in device tree. wp-gpios is kept because we're still support fsl,wp-controller, so we need a way to check if it's gpio wp or controller wp. Signed-off-by: Dong Aisheng Reviewed-by: Johan Derycke Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-esdhc-imx.c | 14 -------------- 1 file changed, 14 deletions(-) commit 5924175755a0ed902d91f2f2660e914032fa63e5 Author: Dong Aisheng Date: Wed Jul 22 20:53:07 2015 +0800 mmc: sdhci: make max-frequency property in device tree work Device tree provides option to specify the max freqency with property "max-frequency" in dts and common parse function mmc_of_parse() will parse it and use this value to set host->f_max to tell the MMC core the maxinum frequency the host works. However, current sdhci driver will finally overwrite this value with host->max_clk regardless of the max-frequency property. This patch makes sure not overwrite the max-frequency set from device tree and do basic sanity check. Signed-off-by: Dong Aisheng Reviewed-by: Johan Derycke Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit 91fa4252878afccc9e75edd84f31047899ddd1b7 Author: Dong Aisheng Date: Wed Jul 22 20:53:06 2015 +0800 mmc: sdhci-esdhc-imx: move all non dt probe code into one function This is an incremental fix of commit e62bd351b("mmc: sdhci-esdhc-imx: Do not break platform data boards"). After commit 8d86e4fcccf6 ("mmc: sdhci-esdhc-imx: Call mmc_of_parse()"), we do not need to run the check of boarddata->wp_type/cd_type/max_bus_width again for dt platform since those are already handled by mmc_of_parse(). Current code only exclude the checking of wp_type for dt platform which does not make sense. This patch moves all non dt probe code into one function. Besides, since we only support SD3.0/eMMC HS200 for dt platform, the support_vsel checking and ultra high speed pinctrl state are also merged into sdhci_esdhc_imx_probe_dt. Then we have two separately probe function for dt and non dt type. This can make the driver probe more clearly. Signed-off-by: Dong Aisheng Reviewed-by: Johan Derycke Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-esdhc-imx.c | 179 +++++++++++++++++++------------------ 1 file changed, 94 insertions(+), 85 deletions(-) commit 4800e87a2ee886c1972deb73f057d1a6541edb36 Author: Dong Aisheng Date: Wed Jul 22 20:53:05 2015 +0800 mmc: sdhci-esdhc-imx: fix cd regression for dt platform Current card detect probe process is that when driver finds a valid ESDHC_CD_GPIO, it will clear the quirk SDHCI_QUIRK_BROKEN_CARD_DETECTION which is set by default for all esdhc/usdhc controllers. Then host driver will know there's a valid card detect function. Commit 8d86e4fcccf6 ("mmc: sdhci-esdhc-imx: Call mmc_of_parse()") breaks GPIO CD function for dt platform that it will return directly when find ESDHC_CD_GPIO for dt platform which result in the later wrongly to keep SDHCI_QUIRK_BROKEN_CARD_DETECTION for all dt platforms. Then MMC_CAP_NEEDS_POLL will be used instead even there's a valid GPIO card detect. This patch adds back this function and follows the original approach to clear the quirk if find an valid CD GPIO for dt platforms. Fixes: 8d86e4fcccf6 ("mmc: sdhci-esdhc-imx: Call mmc_of_parse()") Signed-off-by: Dong Aisheng Reviewed-by: Johan Derycke Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-esdhc-imx.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit 1cd55947f2bfdb99a2a741d65c7463d106ef9132 Author: Dong Aisheng Date: Wed Jul 22 20:53:04 2015 +0800 dts: imx7: fix sd card gpio polarity specified in device tree cd-gpios polarity should be changed to GPIO_ACTIVE_LOW and wp-gpios should be changed to GPIO_ACTIVE_HIGH. Otherwise, the SD may not work properly due to wrong polarity inversion specified in DT after switch to common parsing function mmc_of_parse(). Signed-off-by: Dong Aisheng Acked-by: Shawn Guo Signed-off-by: Ulf Hansson arch/arm/boot/dts/imx7d-sdb.dts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit cf75eb15be2bdd054a76aeef6458beaa4a6ab770 Author: Dong Aisheng Date: Wed Jul 22 20:53:03 2015 +0800 dts: imx25: fix sd card gpio polarity specified in device tree cd-gpios polarity should be changed to GPIO_ACTIVE_LOW and wp-gpios should be changed to GPIO_ACTIVE_HIGH. Otherwise, the SD may not work properly due to wrong polarity inversion specified in DT after switch to common parsing function mmc_of_parse(). Signed-off-by: Dong Aisheng Acked-by: Shawn Guo Signed-off-by: Ulf Hansson arch/arm/boot/dts/imx25-pdk.dts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 89c1a8cf63f8c69dfddb6e377c04df8b25ab1c88 Author: Dong Aisheng Date: Wed Jul 22 20:53:02 2015 +0800 dts: imx6: fix sd card gpio polarity specified in device tree cd-gpios polarity should be changed to GPIO_ACTIVE_LOW and wp-gpios should be changed to GPIO_ACTIVE_HIGH. Otherwise, the SD may not work properly due to wrong polarity inversion specified in DT after switch to common parsing function mmc_of_parse(). Signed-off-by: Dong Aisheng Acked-by: Shawn Guo Signed-off-by: Ulf Hansson arch/arm/boot/dts/imx6dl-riotboard.dts | 8 ++++---- arch/arm/boot/dts/imx6q-arm2.dts | 5 +++-- arch/arm/boot/dts/imx6q-gk802.dts | 3 ++- arch/arm/boot/dts/imx6q-tbs2910.dts | 4 ++-- arch/arm/boot/dts/imx6qdl-aristainetos.dtsi | 4 ++-- arch/arm/boot/dts/imx6qdl-aristainetos2.dtsi | 4 ++-- arch/arm/boot/dts/imx6qdl-cubox-i.dtsi | 2 +- arch/arm/boot/dts/imx6qdl-dfi-fs700-m60.dtsi | 4 +++- arch/arm/boot/dts/imx6qdl-gw52xx.dtsi | 2 +- arch/arm/boot/dts/imx6qdl-gw53xx.dtsi | 2 +- arch/arm/boot/dts/imx6qdl-gw54xx.dtsi | 2 +- arch/arm/boot/dts/imx6qdl-hummingboard.dtsi | 2 +- arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi | 4 ++-- arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi | 8 ++++---- arch/arm/boot/dts/imx6qdl-rex.dtsi | 4 ++-- arch/arm/boot/dts/imx6qdl-sabreauto.dtsi | 4 ++-- arch/arm/boot/dts/imx6qdl-sabrelite.dtsi | 6 +++--- arch/arm/boot/dts/imx6qdl-sabresd.dtsi | 8 ++++---- arch/arm/boot/dts/imx6qdl-tx6.dtsi | 4 ++-- arch/arm/boot/dts/imx6qdl-wandboard.dtsi | 6 ++++-- arch/arm/boot/dts/imx6sl-evk.dts | 10 +++++----- arch/arm/boot/dts/imx6sx-sabreauto.dts | 4 ++-- arch/arm/boot/dts/imx6sx-sdb.dtsi | 4 ++-- 23 files changed, 55 insertions(+), 49 deletions(-) commit 94d76946859b4bcfa0da373357f14feda2af0622 Author: Dong Aisheng Date: Wed Jul 22 20:53:01 2015 +0800 dts: imx53: fix sd card gpio polarity specified in device tree cd-gpios polarity should be changed to GPIO_ACTIVE_LOW and wp-gpios should be changed to GPIO_ACTIVE_HIGH. Otherwise, the SD may not work properly due to wrong polarity inversion specified in DT after switch to common parsing function mmc_of_parse(). Signed-off-by: Dong Aisheng Acked-by: Shawn Guo Signed-off-by: Ulf Hansson arch/arm/boot/dts/imx53-ard.dts | 4 ++-- arch/arm/boot/dts/imx53-m53evk.dts | 4 ++-- arch/arm/boot/dts/imx53-qsb-common.dtsi | 4 ++-- arch/arm/boot/dts/imx53-smd.dts | 4 ++-- arch/arm/boot/dts/imx53-tqma53.dtsi | 4 ++-- arch/arm/boot/dts/imx53-tx53.dtsi | 4 ++-- arch/arm/boot/dts/imx53-voipac-bsb.dts | 4 ++-- 7 files changed, 14 insertions(+), 14 deletions(-) commit aca45c0e95dad1c4ba4d38da192756b0e10cbbbd Author: Dong Aisheng Date: Wed Jul 22 20:53:00 2015 +0800 dts: imx51: fix sd card gpio polarity specified in device tree cd-gpios polarity should be changed to GPIO_ACTIVE_LOW and wp-gpios should be changed to GPIO_ACTIVE_HIGH. Otherwise, the SD may not work properly due to wrong polarity inversion specified in DT after switch to common parsing function mmc_of_parse(). Signed-off-by: Dong Aisheng Acked-by: Shawn Guo Signed-off-by: Ulf Hansson arch/arm/boot/dts/imx51-apf51dev.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8e91125ff3f57f15c6568e2a6d32743b3f7815e4 Author: Joakim Tjernlund Date: Wed Jul 22 16:44:26 2015 +0200 mmc: sdhci-esdhc: Make 8BIT bus work Support for 8BIT bus with was added some time ago to sdhci-esdhc but then missed to remove the 8BIT from the reserved bit mask which made 8BIT non functional. Fixes: 66b50a00992d ("mmc: esdhc: Add support for 8-bit bus width and..") Signed-off-by: Joakim Tjernlund Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-esdhc.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9098f84cced870f54d8c410dd2444cfa61467fa0 Author: Tomas Winkler Date: Thu Jul 16 15:50:45 2015 +0200 mmc: block: Add missing mmc_blk_put() in power_ro_lock_show() Enclosing mmc_blk_put() is missing in power_ro_lock_show() sysfs handler, let's add it. Fixes: add710eaa886 ("mmc: boot partition ro lock support") Signed-off-by: Tomas Winkler Signed-off-by: Ulf Hansson drivers/mmc/card/block.c | 2 ++ 1 file changed, 2 insertions(+) commit c2b22fff7186f8a6bd6dbfe960ad00421ba82a52 Author: Geert Uytterhoeven Date: Fri Jun 26 14:09:26 2015 +0200 mmc: MMC_MTK should depend on HAS_DMA If NO_DMA=y: ERROR: "dma_alloc_coherent" [drivers/mmc/host/mtk-sd.ko] undefined! ERROR: "dma_unmap_sg" [drivers/mmc/host/mtk-sd.ko] undefined! ERROR: "dma_map_sg" [drivers/mmc/host/mtk-sd.ko] undefined! ERROR: "dma_free_coherent" [drivers/mmc/host/mtk-sd.ko] undefined! Add a dependency on HAS_DMA to fix this. Signed-off-by: Geert Uytterhoeven Signed-off-by: Ulf Hansson drivers/mmc/host/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 7ac020366b0a436d726408841160b5dc32c19214 Author: Peng Fan Date: Mon Jun 22 11:41:23 2015 +0800 mmc: sdhci check parameters before call dma_free_coherent We should not call dma_free_coherent if host->adma_table is NULL, otherwise may trigger panic. Fixes: d1e49f77d7c7 ("mmc: sdhci: convert ADMA descriptors to a...") Signed-off-by: Peng Fan Acked-by: Adrian Hunter Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 5027cd1e323d2f8136abb32ac7c8e1e1a94eac05 Author: Vignesh R Date: Tue Jun 16 16:07:18 2015 +0530 mmc: omap_hsmmc: Handle BADA, DEB and CEB interrupts Sometimes BADA, DEB or CEB error interrupts occur when sd card is unplugged during data transfer. These interrupts are currently ignored by the interrupt handler. But, this results in card not being recognised on subsequent insertion. This is because mmcqd is waiting forever for the data transfer(for which error occurred) to complete. Fix this, by reporting BADA, DEB, CEB errors to mmc-core as -EILSEQ, so that the core can do appropriate handling. Signed-off-by: Vignesh R Tested-by: Andreas Fenkart Signed-off-by: Ulf Hansson drivers/mmc/host/omap_hsmmc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 408806f740497c5d71f9c305b3d6aad260ff186d Author: Kishon Vijay Abraham I Date: Tue Jun 16 16:07:17 2015 +0530 mmc: omap_hsmmc: Fix DTO and DCRC handling DTO/DCRC errors were not being informed to the mmc core since commit ae4bf788ee9b ("mmc: omap_hsmmc: consolidate error report handling of HSMMC IRQ"). This commit made sure 'end_trans' is never set on DTO/DCRC errors. This is because after this commit 'host->data' is checked after it has been cleared to NULL by omap_hsmmc_dma_cleanup(). Because 'end_trans' is never set, omap_hsmmc_xfer_done() is never invoked making core layer not to be aware of DTO/DCRC errors. Because of this any command invoked after DTO/DCRC error leads to a hang. Fix this by checking for 'host->data' before it is actually cleared. Fixes: ae4bf788ee9b ("mmc: omap_hsmmc: consolidate error report handling of HSMMC IRQ") CC: stable@vger.kernel.org Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Vignesh R Tested-by: Andreas Fenkart Signed-off-by: Ulf Hansson drivers/mmc/host/omap_hsmmc.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit fb9caeedafe61599371d057696bff3baef01f455 Author: Javier Martinez Canillas Date: Thu Jun 25 02:20:44 2015 +0200 mfd: Remove MFD_CROS_EC_SPI depends on OF The ChromeOS EC SPI transport driver has a dependency on OF because it uses some OF helpers from the header. But there isn't a need for an explicit dependency since the header has stub functions if CONFIG_OF is not defined. Also, MFD_CROS_EC_SPI already depends on MFD_CROS_EC which in turn has a dependency on OF so in practice can't be selected without CONFIG_OF. Signed-off-by: Javier Martinez Canillas Signed-off-by: Lee Jones drivers/mfd/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d12bbcd3ea4402704d13f687601dc5af1361a548 Author: Javier Martinez Canillas Date: Thu Jun 25 02:20:42 2015 +0200 platform/chrome: Don't make CHROME_PLATFORMS depends on X86 || ARM The Chrome platform support depends on X86 || ARM because there are only Chromebooks using those architectures. But only some drivers depend on a given architecture, and the ones that do already have a dependency on their specific Kconfig symbol entries. An option is to also make CHROME_PLATFORMS depends on || COMPILE_TEST but is more future proof to remove the dependency and let the drivers be built in all architectures if possible to have more build coverage. Acked-by: Olof Johansson Signed-off-by: Javier Martinez Canillas Signed-off-by: Lee Jones drivers/platform/chrome/Kconfig | 1 - 1 file changed, 1 deletion(-) commit 72e43164fd472f6c2659c8313b87da962322dbcf Author: Charles Keepax Date: Sun Jun 14 15:41:50 2015 +0100 mfd: arizona: Fix initialisation of the PM runtime The PM runtime core by default assumes a chip is suspended when runtime PM is enabled. Currently the arizona driver enables runtime PM when the chip is fully active and then disables the DCVDD regulator at the end of arizona_dev_init. This however has several problems, firstly the if we reach the end of arizona_dev_init, we did not properly follow all the proceedures for shutting down the chip, and most notably we never marked the chip as cache only so any writes occurring between then and the next PM runtime resume will be lost. Secondly, if we are already resumed when we reach the end of dev_init, then at best we get unbalanced regulator enable/disables at work we lose DCVDD whilst we need it. Additionally, since the commit 4f0216409f7c ("mfd: arizona: Add better support for system suspend"), the PM runtime operations may disable/enable the IRQ, so the IRQs must now be enabled before we call any PM operations. This patch adds a call to pm_runtime_set_active to inform the PM core that the device is starting up active and moves the PM enabling to around the IRQ initialisation to avoid any PM callbacks happening until the IRQs are initialised. Cc: stable@vger.kernel.org # v3.5+ Signed-off-by: Charles Keepax Signed-off-by: Lee Jones drivers/mfd/arizona-core.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) commit 111509294b9efafe0353423c8180e03db810bdb5 Author: Charles Keepax Date: Sun Jun 14 15:41:49 2015 +0100 mfd: arizona: Fix race between runtime suspend and IRQs The function arizona_irq_thread (the threaded handler for the arizona IRQs) calls pm_runtime_get_sync at the start to ensure that the chip is active as we handle the IRQ. If the chip is part way through a runtime suspend when an IRQ arrives the PM core will wait for the suspend to complete, before resuming. However, since commit 4f0216409f7c ("mfd: arizona: Add better support for system suspend") the runtime suspend function may call disable_irq, if the chip is going to fully power off, which will try to wait for any outstanding IRQs to complete. This results in deadlock as the IRQ thread is waiting for the PM operation to complete and the PM thread is waiting for the IRQ to complete. To avoid this situation we use disable_irq_nosync, which allows the suspending thread to finish the suspend without waiting for the IRQ to complete. This is safe because if an IRQ is being processed it can only be blocked at the pm_runtime_get_sync at the start of the handler otherwise it wouldn't be possible to suspend. Signed-off-by: Charles Keepax Signed-off-by: Lee Jones drivers/mfd/arizona-core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c20910264c367a5dfbf6c09e8ec2ff0c5c52857a Author: David Disseldorp Date: Sun Jul 12 18:49:18 2015 +0200 target/configfs: handle match_int() errors As a follow up to ce31c1b0dc4038a1dec64585d892adb73d9c45f4 - there are still a few LIO match_int() calls that don't check the return value. Propagate errors rather than using the potentially uninitialised result. Signed-off-by: David Disseldorp Signed-off-by: Nicholas Bellinger drivers/target/target_core_configfs.c | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) commit 9105bfc038ca5a506404ce37cd3c0e85f76351e3 Author: Andy Grover Date: Thu Jul 9 09:56:48 2015 -0700 target: Do not return 0 from aptpl and alua configfs store functions Here are some more instances where we are returning 0 from a configfs store function, the unintended result of which is likely infinite retries from userspace. Signed-off-by: Andy Grover Signed-off-by: Nicholas Bellinger drivers/target/target_core_configfs.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit bc1a7d6aff763ea29db6319185327f86b0fe93b6 Author: Andy Grover Date: Thu Jul 9 09:56:47 2015 -0700 target: Indicate success if writing 0 to pi_prot_type See https://bugzilla.redhat.com/show_bug.cgi?id=1240687 Returning 0 from a configfs store function results in infinite retries. Reported-by: Yanko Kaneti Signed-off-by: Andy Grover Signed-off-by: Nicholas Bellinger drivers/target/target_core_configfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fd4e1393c414275d28577a2242f4e424cf80a605 Author: Nicholas Mc Guire Date: Mon Jul 6 18:04:40 2015 +0200 tcm_qla2xxx: pass timeout as HZ independent value API compliance scanning with coccinelle flagged: ./drivers/scsi/qla2xxx/tcm_qla2xxx.c:407:2-29: WARNING: timeout is HZ dependent This was introduced in 'commit 75f8c1f693ee ("[SCSI] tcm_qla2xxx: Add >= 24xx series fabric module for target-core")'. wait_for_completion_timeout() expects a timeout in jiffies so the numeric constant makes the effective timeout HZ dependent. Resolved by converting it to CONST * HZ. Signed-off-by: Nicholas Mc Guire Acked-by: Nilesh Javali Signed-off-by: Nicholas Bellinger drivers/scsi/qla2xxx/tcm_qla2xxx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 02bbc4dc6874df0e865aa0977f0046c5c1afd498 Merge: b37b425 8c4b4b0 Author: Dave Airlie Date: Fri Jul 24 14:27:44 2015 +1000 Merge tag 'drm-atmel-hlcdc/fixes-for-4.2' of https://github.com/bbrezillon/linux-at91 into drm-fixes single hlcdc fix. * tag 'drm-atmel-hlcdc/fixes-for-4.2' of https://github.com/bbrezillon/linux-at91: drm: atmel-hlcdc: fix vblank initial state commit e6030cb06c40e4ab4e8c712f13f494a09638ed2c Author: NeilBrown Date: Fri Jul 17 13:26:23 2015 +1000 md/raid5: clear R5_NeedReplace when no longer needed. This flag is currently never cleared, which can in rare cases trigger a warn-on if it is still set but the block isn't InSync. So clear it when it isn't need, which includes if the replacement device has failed. Signed-off-by: NeilBrown drivers/md/raid5.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 90382ed9afeafd42ef193f0eadc6b2a252d6c24d Author: Goldwyn Rodrigues Date: Wed Jun 24 09:30:32 2015 -0500 Fix read-balancing during node failure During a node failure, We need to suspend read balancing so that the reads are directed to the first device and stale data is not read. Suspending writes is not required because these would be recorded and synced eventually. A new flag MD_CLUSTER_SUSPEND_READ_BALANCING is set in recover_prep(). area_resyncing() will respond true for the entire devices if this flag is set and the request type is READ. The flag is cleared in recover_done(). Signed-off-by: Goldwyn Rodrigues Reported-By: David Teigland Signed-off-by: NeilBrown drivers/md/md-cluster.c | 12 +++++++++++- drivers/md/md-cluster.h | 2 +- drivers/md/raid1.c | 7 ++++--- 3 files changed, 16 insertions(+), 5 deletions(-) commit 33e38ac6887d975fe2635c7fcaefb6d5495cb2e1 Author: Goldwyn Rodrigues Date: Wed Jul 1 12:19:56 2015 +1000 md-cluster: fix bitmap sub-offset in bitmap_read_sb bitmap_read_sb is modifying mddev->bitmap_info.offset. This works for the first bitmap read. However, when multiple bitmaps need to be opened by the same node, it ends up corrupting the offset. Fix it by using a local variable. Also, bitmap_read_sb is not required in bitmap_copy_from_slot since it is called in bitmap_create. Remove bitmap_read_sb(). Signed-off-by: Goldwyn Rodrigues Signed-off-by: NeilBrown drivers/md/bitmap.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) commit b0c26a79d6993b280931f8e2b406ca4b220bb58f Author: Goldwyn Rodrigues Date: Wed Jul 22 12:09:15 2015 -0500 md: Return error if request_module fails and returns positive value request_module() can return 256 (process exited) in some cases, which is not as specified in the documentation before the request_module() definition. Convert the error to -ENOENT. The positive error number results in bitmap_create() returning a value that is meant to be an error but doesn't look like one, so it is dereferenced as a point and causes a crash. (not needed for stable as this is "experimental" code) Fixes: edb39c9deda8 ("Introduce md_cluster_operations to handle cluster functions") Signed-off-By: Goldwyn Rodrigues Signed-off-by: NeilBrown drivers/md/md.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f7357273198adc86fe11c2a7be8a0816f44103bb Author: Goldwyn Rodrigues Date: Wed Jul 22 12:09:16 2015 -0500 md: Skip cluster setup in case of error while reading bitmap If the bitmap read fails, the error code set is -EINVAL. However, we don't check for errors and go ahead with cluster_setup. Skip the cluster setup in case of error. Signed-off-by: Goldwyn Rodrigues Signed-off-by: NeilBrown drivers/md/bitmap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 34cab6f42003cb06f48f86a86652984dec338ae9 Author: NeilBrown Date: Fri Jul 24 09:22:16 2015 +1000 md/raid1: fix test for 'was read error from last working device'. When we get a read error from the last working device, we don't try to repair it, and don't fail the device. We simple report a read error to the caller. However the current test for 'is this the last working device' is wrong. When there is only one fully working device, it assumes that a non-faulty device is that device. However a spare which is rebuilding would be non-faulty but so not the only working device. So change the test from "!Faulty" to "In_sync". If ->degraded says there is only one fully working device and this device is in_sync, this must be the one. This bug has existed since we allowed read_balance to read from a recovering spare in v3.0 Reported-and-tested-by: Alexander Lyakas Fixes: 76073054c95b ("md/raid1: clean up read_balance.") Cc: stable@vger.kernel.org (v3.0+) Signed-off-by: NeilBrown drivers/md/raid1.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b37b425f2e51d1e716836bdd14fb344c38606a3d Merge: 4db9a82 5677d67 Author: Dave Airlie Date: Fri Jul 24 11:52:35 2015 +1000 Merge tag 'topic/drm-fixes-2015-07-23' of git://anongit.freedesktop.org/drm-intel into drm-fixes Regression fix for systemd getting confused about unknown connector state after resume. Just stop setting the state to unknown, turned out to be a silly idea anyway. What drivers imo really should do (and i915 still does that) is forcing a full reprobe on resume to make sure connector changes while suspended are caught. Most drivers seem to get this wrong. Otoh it took us years to get fixes merged where some probe races resulted in eating uevents, I guess userspace expectations for reliable hpd are just really low :( * tag 'topic/drm-fixes-2015-07-23' of git://anongit.freedesktop.org/drm-intel: drm: Stop resetting connector state to unknown commit 4db9a82f1efa18304e51d68ef056b045050b9153 Merge: 762043a 648a9bc Author: Dave Airlie Date: Fri Jul 24 11:52:09 2015 +1000 Merge tag 'drm-intel-fixes-2015-07-23' of git://anongit.freedesktop.org/drm-intel into drm-fixes arb_timer kernel side fix from Chris. * tag 'drm-intel-fixes-2015-07-23' of git://anongit.freedesktop.org/drm-intel: drm/i915: Use two 32bit reads for select 64bit REG_READ ioctls commit 762043aa77ad6de79236f3a9e6281f84e4fe9788 Merge: f135b97 acc6a1a Author: Dave Airlie Date: Fri Jul 24 11:51:18 2015 +1000 Merge branch 'drm-fixes-4.2' of git://people.freedesktop.org/~agd5f/linux into drm-fixes Some amdgpu fixes. * 'drm-fixes-4.2' of git://people.freedesktop.org/~agd5f/linux: drm/amdgpu/cz/dpm: properly report UVD and VCE clock levels drm/amdgpu/cz: implement voltage validation properly drm/amdgpu: add VCE harvesting instance query drm/amdgpu: implement VCE 3.0 harvesting support (v4) drm/amdgpu/dce10: Re-set VBLANK interrupt state when enabling a CRTC drm/amdgpu/dce11: Re-set VBLANK interrupt state when enabling a CRTC commit f135b978c2dab3d439eacb8353d3c0aac6af072a Author: Alexandre Courbot Date: Wed Jul 1 17:32:29 2015 +0900 drm/ttm: recognize ARM64 arch in ioprot handler Return proper pgprot for ARM64. This is required for objects like Nouveau fences to be mapped with expected coherency. Signed-off-by: Alexandre Courbot Signed-off-by: Dave Airlie drivers/gpu/drm/ttm/ttm_bo_util.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 61e86cc90af49cecef9c54ccea1f572fbcb695ac Author: Peter Hurley Date: Sun Jul 12 20:47:35 2015 -0400 tty: vt: Fix !TASK_RUNNING diagnostic warning from paste_selection() Pasting text with gpm on a VC produced warning [1]. Reset task state to TASK_RUNNING in the paste_selection() loop, if the loop did not sleep. [1] WARNING: CPU: 6 PID: 1960 at /home/peter/src/kernels/mainline/kernel/sched/core.c:7286 __might_sleep+0x7f/0x90() do not call blocking ops when !TASK_RUNNING; state=1 set at [] paste_selection+0x9e/0x1a0 Modules linked in: btrfs xor raid6_pq ufs qnx4 hfsplus hfs minix ntfs msdos jfs xfs libcrc32c ..... CPU: 6 PID: 1960 Comm: gpm Not tainted 4.1.0-rc7+tty-xeon+debug #rc7+tty Hardware name: Dell Inc. Precision WorkStation T5400 /0RW203, BIOS A11 04/30/2012 ffffffff81c9c0a0 ffff8802b0fd3ac8 ffffffff8185778a 0000000000000001 ffff8802b0fd3b18 ffff8802b0fd3b08 ffffffff8108039a ffffffff82ae8510 ffffffff81c9ce00 0000000000000015 0000000000000000 0000000000000000 Call Trace: [] dump_stack+0x4f/0x7b [] warn_slowpath_common+0x8a/0xc0 [] warn_slowpath_fmt+0x46/0x50 [] ? __lock_acquire+0xe2d/0x13a0 [] ? paste_selection+0x9e/0x1a0 [] ? paste_selection+0x9e/0x1a0 [] __might_sleep+0x7f/0x90 [] down_read+0x2a/0xa0 [] ? sched_clock_cpu+0xb8/0xe0 [] n_tty_receive_buf_common+0x4c/0xba0 [] ? mark_held_locks+0x75/0xa0 [] ? _raw_spin_unlock_irqrestore+0x65/0x80 [] ? get_parent_ip+0x11/0x50 [] n_tty_receive_buf2+0x14/0x20 [] paste_selection+0x157/0x1a0 [] ? wake_up_state+0x20/0x20 [] tioclinux+0xb8/0x2c0 [] vt_ioctl+0xaee/0x11a0 [] ? sched_clock_local+0x25/0x90 [] ? vtime_account_user+0x91/0xa0 [] tty_ioctl+0x20c/0xe20 [] ? vtime_account_user+0x91/0xa0 [] ? get_parent_ip+0x11/0x50 [] ? preempt_count_sub+0x49/0x50 [] ? context_tracking_exit+0x5c/0x290 [] ? context_tracking_exit+0x5c/0x290 [] do_vfs_ioctl+0x318/0x570 [] ? trace_hardirqs_on+0xd/0x10 [] ? trace_hardirqs_on_caller+0x115/0x1e0 [] ? __fget_light+0x6c/0xa0 [] SyS_ioctl+0x81/0xa0 [] system_call_fastpath+0x16/0x7a Signed-off-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/vt/selection.c | 1 + 1 file changed, 1 insertion(+) commit e144c58cad6667876173dd76977e9e6557e34941 Author: Peter Hurley Date: Sun Jul 12 21:05:26 2015 -0400 serial: core: Fix crashes while echoing when closing While closing, new rx data may be received after the input buffers have been flushed but before stop_rx() halts receiving [1]. The new data might not be processed by flush_to_ldisc() until after uart_shutdown() and normal input processing is re-enabled (ie., tty->closing = 0). The race is outlined below: CPU 0 | CPU 1 | uart_close() | tty_port_close_start() | tty->closing = 1 | tty_ldisc_flush() | | => IRQ | while (LSR & data ready) | uart_insert_char() | tty_flip_buffer_push() | <= EOI stop_rx() | . uart_shutdown() | . free xmit.buf | . tty_port_tty_set(NULL) | . tty->closing = 0 | . | flush_to_ldisc() | n_tty_receive_buf_common() | __receive_buf() | ... | commit_echoes() | uart_flush_chars() | __uart_start() | ** OOPS on port.tty deref ** tty_ldisc_flush() | Input processing must be prevented from echoing (tty->closing = 1) until _after_ the input buffers have been flushed again at the end of uart_close(). [1] In fact, some input may actually be buffered _after_ stop_rx() since the rx interrupt may have already triggered but not yet been handled when stop_rx() disables rx interrupts. Fixes: 2e758910832d ("serial: core: Flush ldisc after dropping port mutex in uart_close()") Reported-by: Robert Elliott Signed-off-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/serial_core.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 7525a9901b5ee3c84933ad069e41506c37404ddc Author: Peter Hurley Date: Wed Jul 8 23:10:06 2015 -0400 m32r: Add ioreadXX/iowriteXX big-endian mmio accessors commit c627f2ceb692 ("serial: 8250: Add support for big-endian MMIO accesses") added support for 32-bit big-endian mmio to the 8250 driver. Support for ioreadXXbe/iowriteXXbe io accessors was missing from m32r arch, which caused build errors. Add trivial macro mmio accessors. Reported-by: Fengguang Wu Cc: Kevin Cernekee Signed-off-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman arch/m32r/include/asm/io.h | 5 +++++ 1 file changed, 5 insertions(+) commit 907eda32a36fcdb979bdb91ea097abb3dd2c23c9 Author: David Jander Date: Fri Jun 26 08:11:30 2015 +0200 Revert "serial: imx: initialized DMA w/o HW flow enabled" This reverts commit 068500e08dc87ea9a453cc4a500cf3ab28d0f936. According to some tests, SDMA support is broken at least for i.MX6 without HW flow control. Different forms of data-corruption appear either with the ROM firmware for the SDMA controller as well as when loading Freescale provided SDMA firmware versions 1.1 or 3.1. Signed-off-by: David Jander Cc: stable Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/imx.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) commit dec273ecc1169ade46999bb0feca3814915f5c11 Author: Bo Svangård Date: Sat Jun 13 13:40:20 2015 +0200 sc16is7xx: fix FIFO address of secondary UART Calls to regmap_raw_read/write needed register rewrite in a similar way as function calls to regmap_read/write already had. This enables reading/writing the serial datastream to the device. Signed-off-by: Bo Svangård Signed-off-by: Jakub Kicinski Signed-off-by: Jon Ringle Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/sc16is7xx.c | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) commit 32aa6339d9c5156de5d881b103e0e360934d6a74 Author: Jakub Kicinski Date: Wed Jul 1 14:19:52 2015 +0200 sc16is7xx: fix Kconfig dependencies When I2C=m and SPI=y or-ing them will produce =y while what we need is the lower bound, i.e. =m. Fortunately SPI is a boolean so we need to handle only one special case. Reported-by: kbuild test robot Signed-off-by: Jakub Kicinski Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d8c2c0d89205a3538c5fd77dc9d4767ee6bebc70 Author: Axel Lin Date: Sun Jun 28 09:45:08 2015 +0800 serial: etraxfs-uart: Fix release etraxfs_uart_ports In probe, we use dev_id as array index of etraxfs_uart_ports and store the index in port->line. So etraxfs_uart_ports[port->line] should be released when unload the module. Signed-off-by: Axel Lin Acked-by: Niklas Cassel Acked-by: Jesper Nilsson Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/etraxfs-uart.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f3f5da624e0a891c34d8cd513c57f1d9b0c7dadc Author: Martin K. Petersen Date: Wed Jul 22 07:57:12 2015 -0400 block: Do a full clone when splitting discard bios This fixes a data corruption bug when using discard on top of MD linear, raid0 and raid10 personalities. Commit 20d0189b1012 "block: Introduce new bio_split()" permits sharing the bio_vec between the two resulting bios. That is fine for read/write requests where the bio_vec is immutable. For discards, however, we need to be able to attach a payload and update the bio_vec so the page can get mapped to a scatterlist entry. Therefore the bio_vec can not be shared when splitting discards and we must do a full clone. Signed-off-by: Martin K. Petersen Reported-by: Seunguk Shin Tested-by: Seunguk Shin Cc: Seunguk Shin Cc: Jens Axboe Cc: Kent Overstreet Cc: # v3.14+ Reviewed-by: Christoph Hellwig Signed-off-by: Jens Axboe block/bio.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) commit 08b33249d89700ba555d4ab5cc88714192b8ee46 Author: Dongxing Zhang Date: Wed Jun 10 15:21:10 2015 +0800 tty/vt: Fix the memory leak in visual_init If vc->vc_uni_pagedir_loc is not NULL, its refcount needs to be decreased before vc_uni_pagedir_loc is re-assigned. unreferenced object 0xffff88002cdd13b0 (size 512): comm "setfont", pid 503, jiffies 4294896503 (age 722.828s) hex dump (first 32 bytes): 40 92 61 2b 00 88 ff ff 00 00 00 00 00 00 00 00 @.a+............ 00 00 00 00 00 00 00 00 a0 ad 61 2b 00 88 ff ff ..........a+.... backtrace: [] kmemleak_alloc+0x4e/0xb0 [] kmem_cache_alloc_trace+0x1c8/0x240 [] con_do_clear_unimap.isra.2+0x83/0xe0 [] con_clear_unimap+0x22/0x40 [] vt_ioctl+0xeb8/0x1170 [] tty_ioctl+0x208/0xca0 [] do_vfs_ioctl+0x2f8/0x510 [] SyS_ioctl+0x81/0xa0 [] system_call_fastpath+0x16/0x75 [] 0xffffffffffffffff unreferenced object 0xffff88002b619240 (size 256): comm "setfont", pid 503, jiffies 4294896503 (age 722.828s) hex dump (first 32 bytes): 90 bc 84 d5 00 88 ff ff 58 85 84 d5 00 88 ff ff ........X....... 88 ac 84 d5 00 88 ff ff e0 b1 84 d5 00 88 ff ff ................ backtrace: [] kmemleak_alloc+0x4e/0xb0 [] kmem_cache_alloc_trace+0x1c8/0x240 [] con_insert_unipair+0x86/0x170 [] con_set_unimap+0x1b7/0x280 [] vt_ioctl+0xe65/0x1170 [] tty_ioctl+0x208/0xca0 [] do_vfs_ioctl+0x2f8/0x510 [] SyS_ioctl+0x81/0xa0 [] system_call_fastpath+0x16/0x75 [] 0xffffffffffffffff Signed-off-by: Dongxing Zhang Signed-off-by: Xiaoming Wang Reviewed-by: Peter Hurley Tested-by: Konstantin Khlebnikov Signed-off-by: Greg Kroah-Hartman drivers/tty/vt/vt.c | 2 ++ 1 file changed, 2 insertions(+) commit 97a60eac33f663d2150ee1b3c69253d87ba53dff Author: Krzysztof Kozlowski Date: Thu Jul 9 22:21:41 2015 +0900 serial: amba-pl011: Fix devm_ioremap_resource return value check Value returned by devm_ioremap_resource() was checked for non-NULL but devm_ioremap_resource() returns IOMEM_ERR_PTR, not NULL. In case of error this could lead to dereference of ERR_PTR. Signed-off-by: Krzysztof Kozlowski Cc: Fixes: 3873e2d7f63a ("drivers: PL011: refactor pl011_probe()") Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/amba-pl011.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 3b19e032295647b7be2aa3be62510db4aaeda759 Author: Peter Hurley Date: Sat Jun 27 09:21:32 2015 -0400 n_tty: signal and flush atomically When handling signalling char, claim the termios write lock before signalling waiting readers and writers to prevent further i/o before flushing the echo and output buffers. This prevents a userspace signal handler which may output from racing the terminal flush. Reference: Bugzilla #99351 ("Output truncated in ssh session after...") Fixes: commit d2b6f44779d3 ("n_tty: Fix signal handling flushes") Reported-by: Filipe Brandenburger Signed-off-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/n_tty.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) commit 968491709e5b1aaf429428814fff3d932fa90b60 Author: Bernhard Bender Date: Thu Jul 23 13:58:08 2015 -0700 Input: usbtouchscreen - avoid unresponsive TSC-30 touch screen This patch fixes a problem in the usbtouchscreen driver for DMC TSC-30 touch screen. Due to a missing delay between the RESET and SET_RATE commands, the touch screen may become unresponsive during system startup or driver loading. According to the DMC documentation, a delay is needed after the RESET command to allow the chip to complete its internal initialization. As this delay is not guaranteed, we had a system where the touch screen occasionally did not send any touch data. There was no other indication of the problem. The patch fixes the problem by adding a 150ms delay between the RESET and SET_RATE commands. Cc: stable@vger.kernel.org Suggested-by: Jakob Mustafa Signed-off-by: Bernhard Bender Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/usbtouchscreen.c | 3 +++ 1 file changed, 3 insertions(+) commit 00243b1d180b7de3cf38a69948ea46aa0308f8c8 Merge: 52721d9 423ad0c Author: Greg Kroah-Hartman Date: Thu Jul 23 13:32:05 2015 -0700 Merge tag 'iio-fixes-for-4.2c' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into staging-linus Jonathan writes: 3rd round of IIO fixes for the 4.2 cycle. * bmc150_magn - add missing regmap dependency and ensure on a wrong chip case report hte chip id rather than a previous return value. * mmc35240 - Fill a null pointer derefrence and wrong SET / RESET logic that results in North and South being swapped. * mlx96014 - correct the offset value reported to userspace (wrong sign) * vf610 - Prevent non aligned register reading. * mcp320x - Another null pointer deference bug. * mma8452 - change threshold type from THRESH to MAG to reflect the fact that the sign of the signal is not known when the event is signaled. * stk3310 - move device registert to end of probe to avoid race conditions when coming up, check for invalid client->irq values and make it work for both endian types of host. commit 45b4b782e8489bcf45a4331ee32f0f3037c5c3aa Merge: d1a343a fe78fcc Author: Linus Torvalds Date: Thu Jul 23 13:16:21 2015 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace Pull namespace fixes from Eric Biederman: "While reading through the code of detach_mounts I realized the code was slightly off. Testing it revealed two buggy corner cases that can send the code of detach_mounts into an infinite loop. Fixing the code to do the right thing removes the possibility of these user triggered infinite loops in the code" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace: mnt: In detach_mounts detach the appropriate unmounted mount mnt: Clarify and correct the disconnect logic in umount_tree commit d1a343a0231ea34db16ab6773809f2874bcabcf8 Merge: b681268 c9ce42f Author: Linus Torvalds Date: Thu Jul 23 13:07:04 2015 -0700 Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost Pull virtio/vhost fixes from Michael Tsirkin: "Bugfixes and documentation fixes. Igor's patch that allows users to tweak memory table size is borderline, but it does fix known crashes, so I merged it" * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost: vhost: add max_mem_regions module parameter vhost: extend memory regions allocation to vmalloc 9p/trans_virtio: reset virtio device on remove virtio/s390: rename drivers/s390/kvm -> drivers/s390/virtio MAINTAINERS: separate section for s390 virtio drivers virtio: define virtio_pci_cfg_cap in header. virtio: Fix typecast of pointer in vring_init() virtio scsi: fix unused variable warning vhost: use binary search instead of linear in find_region() virtio_net: document VIRTIO_NET_CTRL_GUEST_OFFLOADS commit 5aa2a96b34073fb775917fbc7d5578a04164b9f7 Author: Tejun Heo Date: Thu Jul 23 14:27:09 2015 -0400 block: export bio_associate_*() and wbc_account_io() bio_associate_blkcg(), bio_associate_current() and wbc_account_io() are used to implement cgroup writeback support for filesystems and thus need to be exported. Export them. Signed-off-by: Tejun Heo Reported-by: Stephen Rothwell Signed-off-by: Jens Axboe block/bio.c | 2 ++ fs/fs-writeback.c | 1 + 2 files changed, 3 insertions(+) commit b681268cb25f6242ea56efe6ea4b6467a92e2bac Merge: c5dfd65 46ebb7a Author: Linus Torvalds Date: Thu Jul 23 12:25:44 2015 -0700 Merge tag 'iommu-fixes-v4.2-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu Pull iommu fixes from Joerg Roedel: "The fixes include: - a couple of fixes for the new ARM-SMMUv3 driver to fix issues found on the first real implementation of that hardware. - a patch for the Intel VT-d driver to fix a domain-id leak" * tag 'iommu-fixes-v4.2-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: iommu/vt-d: Fix VM domain ID leak iommu/arm-smmu: Skip the execution of CMD_PREFETCH_CONFIG iommu/arm-smmu: Enlarge STRTAB_L1_SZ_SHIFT to support larger sidsize iommu/arm-smmu: Fix the values of ARM64_TCR_{I,O}RGN0_SHIFT iommu/arm-smmu: Fix LOG2SIZE setting for 2-level stream tables iommu/arm-smmu: Fix the index calculation of strtab commit acc6a1a69b79fad70c4794a925dbfffa9fd6b21b Author: Alex Deucher Date: Wed Jul 22 12:03:50 2015 -0400 drm/amdgpu/cz/dpm: properly report UVD and VCE clock levels VCE, UVD DPM work similarly to SCLK DPM. Report the current clock levels for UVD and VCE via debugfs. Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/cz_dpm.c | 61 +++++++++++++++++++++++++++---------- 1 file changed, 45 insertions(+), 16 deletions(-) commit f2d52cd4db08db06200176cfebead9778878d4fc Author: Alex Deucher Date: Tue Jul 14 16:16:29 2015 -0400 drm/amdgpu/cz: implement voltage validation properly CZ uses a different set of registers compared to previous asics and supports separate NB and GFX planes. Reviewed-by: Jammy Zhou Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/cz_dpm.c | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) commit 3f81d2447b37ac697b3c600039f2c6b628c06e21 Author: Chris Metcalf Date: Thu Jul 23 14:11:09 2015 -0400 tile: use free_bootmem_late() for initrd We were previously using free_bootmem() and just getting lucky that nothing too bad happened. Signed-off-by: Chris Metcalf Cc: stable@vger.kernel.org arch/tile/kernel/setup.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fe78fcc85a2046c51f1535710996860557eeec20 Author: Eric W. Biederman Date: Fri Jul 17 14:54:27 2015 -0500 mnt: In detach_mounts detach the appropriate unmounted mount The handling of in detach_mounts of unmounted but connected mounts is buggy and can lead to an infinite loop. Correct the handling of unmounted mounts in detach_mount. When the mountpoint of an unmounted but connected mount is connected to a dentry, and that dentry is deleted we need to disconnect that mount from the parent mount and the deleted dentry. Nothing changes for the unmounted and connected children. They can be safely ignored. Cc: stable@vger.kernel.org Fixes: ce07d891a0891d3c0d0c2d73d577490486b809e1 mnt: Honor MNT_LOCKED when detaching mounts Signed-off-by: "Eric W. Biederman" fs/namespace.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit fa92754e9c47cf3e5607c0865f4cf59d090cda37 Author: Leo Liu Date: Mon Jul 13 12:46:23 2015 -0400 drm/amdgpu: add VCE harvesting instance query Signed-off-by: Leo Liu Reviewed-by: Alex Deucher Reviewed-by: Christian König drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 1 + include/uapi/drm/amdgpu_drm.h | 2 ++ 2 files changed, 3 insertions(+) commit 6a585777c832f45c05d1aa8a4872b2b292a908c2 Author: Alex Deucher Date: Fri Jul 10 14:16:24 2015 -0400 drm/amdgpu: implement VCE 3.0 harvesting support (v4) For boards with bad VCE blocks, only configure the working block. v2: use the harvest info for pipe setup v3: fix mask check as noted by Leo v4: add dGPU support Reviewed-by: Christian König (v2) Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu.h | 4 +++ drivers/gpu/drm/amd/amdgpu/vce_v3_0.c | 48 +++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) commit 5e6775abb5ce7ada76fa17c67857576176d0b60f Author: Michel Dänzer Date: Fri Jul 17 11:20:18 2015 +0900 drm/amdgpu/dce10: Re-set VBLANK interrupt state when enabling a CRTC This doesn't seem strictly necessary with Tonga right now, but that might change with future power management enhancements. Reviewed-by: Alex Deucher Signed-off-by: Michel Dänzer drivers/gpu/drm/amd/amdgpu/dce_v10_0.c | 4 ++++ 1 file changed, 4 insertions(+) commit d84b272a12a6aa96897372449e47e57f72f2730f Author: Michel Dänzer Date: Thu Jul 16 10:45:10 2015 +0900 drm/amdgpu/dce11: Re-set VBLANK interrupt state when enabling a CRTC Something (ATOM BIOS?) seems to be clobbering the LB_INTERRUPT_MASK register while the CRTC is off, which caused e.g. glxgears or gnome-shell to hang after a modeset. Reviewed-and-Tested-by: Alex Deucher Tested-by: Sonny Jiang Signed-off-by: Michel Dänzer drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | 4 ++++ 1 file changed, 4 insertions(+) commit 25ba265390c09b0a2b2f3fd9ba82e37248b7a371 Author: Johan Hedberg Date: Mon Jul 20 20:31:25 2015 +0300 Bluetooth: Fix NULL pointer dereference in smp_conn_security The l2cap_conn->smp pointer may be NULL for various valid reasons where SMP has failed to initialize properly. One such scenario is when crypto support is missing, another when the adapter has been powered on through a legacy method. The smp_conn_security() function should have the appropriate check for this situation to avoid NULL pointer dereferences. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann Cc: stable@vger.kernel.org # 4.0+ net/bluetooth/smp.c | 4 ++++ 1 file changed, 4 insertions(+) commit 9a258afa928b45e6dd2efcac46ccf7eea705d35a Author: Roger Quadros Date: Thu Jul 16 16:16:44 2015 +0300 ARM: OMAP2+: hwmod: Fix _wait_target_ready() for hwmods without sysc For hwmods without sysc, _init_mpu_rt_base(oh) won't be called and so _find_mpu_rt_port(oh) will return NULL thus preventing ready state check on those modules after the module is enabled. This can potentially cause a bus access error if the module is accessed before the module is ready. Fix this by unconditionally calling _init_mpu_rt_base() during hwmod _init(). Do ioremap only if we need SYSC access. Eventhough _wait_target_ready() check doesn't really need MPU RT port but just the PRCM registers, we still mandate that the hwmod must have an MPU RT port if ready state check needs to be done. Else it would mean that the module is not accessible by MPU so there is no point in waiting for target to be ready. e.g. this fixes the below DCAN bus access error on AM437x-gp-evm. [ 16.672978] ------------[ cut here ]------------ [ 16.677885] WARNING: CPU: 0 PID: 1580 at drivers/bus/omap_l3_noc.c:147 l3_interrupt_handler+0x234/0x35c() [ 16.687946] 44000000.ocp:L3 Custom Error: MASTER M2 (64-bit) TARGET L4_PER_0 (Read): Data Access in User mode during Functional access [ 16.700654] Modules linked in: xhci_hcd btwilink ti_vpfe dwc3 videobuf2_core ov2659 bluetooth v4l2_common videodev ti_am335x_adc kfifo_buf industrialio c_can_platform videobuf2_dma_contig media snd_soc_tlv320aic3x pixcir_i2c_ts c_can dc [ 16.731144] CPU: 0 PID: 1580 Comm: rpc.statd Not tainted 3.14.26-02561-gf733aa036398 #180 [ 16.739747] Backtrace: [ 16.742336] [] (dump_backtrace) from [] (show_stack+0x18/0x1c) [ 16.750285] r6:00000093 r5:00000009 r4:eab5b8a8 r3:00000000 [ 16.756252] [] (show_stack) from [] (dump_stack+0x20/0x28) [ 16.763870] [] (dump_stack) from [] (warn_slowpath_common+0x6c/0x8c) [ 16.772408] [] (warn_slowpath_common) from [] (warn_slowpath_fmt+0x38/0x40) [ 16.781550] r8:c05d1f90 r7:c0730844 r6:c0730448 r5:80080003 r4:ed0cd210 [ 16.788626] [] (warn_slowpath_fmt) from [] (l3_interrupt_handler+0x234/0x35c) [ 16.797968] r3:ed0cd480 r2:c0730508 [ 16.801747] [] (l3_interrupt_handler) from [] (handle_irq_event_percpu+0x54/0x1bc) [ 16.811533] r10:ed005600 r9:c084855b r8:0000002a r7:00000000 r6:00000000 r5:0000002a [ 16.819780] r4:ed0e6d80 [ 16.822453] [] (handle_irq_event_percpu) from [] (handle_irq_event+0x30/0x40) [ 16.831789] r10:eb2b6938 r9:eb2b6960 r8:bf011420 r7:fa240100 r6:00000000 r5:0000002a [ 16.840052] r4:ed005600 [ 16.842744] [] (handle_irq_event) from [] (handle_fasteoi_irq+0x74/0x128) [ 16.851702] r4:ed005600 r3:00000000 [ 16.855479] [] (handle_fasteoi_irq) from [] (generic_handle_irq+0x28/0x38) [ 16.864523] r4:0000002a r3:c0066164 [ 16.868294] [] (generic_handle_irq) from [] (handle_IRQ+0x38/0x8c) [ 16.876612] r4:c081c640 r3:00000202 [ 16.880380] [] (handle_IRQ) from [] (gic_handle_irq+0x30/0x5c) [ 16.888328] r6:eab5ba38 r5:c0804460 r4:fa24010c r3:00000100 [ 16.894303] [] (gic_handle_irq) from [] (__irq_svc+0x40/0x50) [ 16.902193] Exception stack(0xeab5ba38 to 0xeab5ba80) [ 16.907499] ba20: 00000000 00000006 [ 16.916108] ba40: fa1d0000 fa1d0008 ed3d3000 eab5bab4 ed3d3460 c0842af4 bf011420 eb2b6960 [ 16.924716] ba60: eb2b6938 eab5ba8c eab5ba90 eab5ba80 bf035220 bf07702c 600f0013 ffffffff [ 16.933317] r7:eab5ba6c r6:ffffffff r5:600f0013 r4:bf07702c [ 16.939317] [] (c_can_plat_read_reg_aligned_to_16bit [c_can_platform]) from [] (c_can_get_berr_counter+0x38/0x64 [c_can]) [ 16.952696] [] (c_can_get_berr_counter [c_can]) from [] (can_fill_info+0x124/0x15c [can_dev]) [ 16.963480] r5:ec8c9740 r4:ed3d3000 [ 16.967253] [] (can_fill_info [can_dev]) from [] (rtnl_fill_ifinfo+0x58c/0x8fc) [ 16.976749] r6:ec8c9740 r5:ed3d3000 r4:eb2b6780 [ 16.981613] [] (rtnl_fill_ifinfo) from [] (rtnl_dump_ifinfo+0xf0/0x1dc) [ 16.990401] r10:ec8c9740 r9:00000000 r8:00000000 r7:00000000 r6:ebd4d1b4 r5:ed3d3000 [ 16.998671] r4:00000000 [ 17.001342] [] (rtnl_dump_ifinfo) from [] (netlink_dump+0xa8/0x1e0) [ 17.009772] r10:00000000 r9:00000000 r8:c0503318 r7:ebf3e6c0 r6:ebd4d1b4 r5:ec8c9740 [ 17.018050] r4:ebd4d000 [ 17.020714] [] (netlink_dump) from [] (__netlink_dump_start+0x104/0x154) [ 17.029591] r6:eab5bd34 r5:ec8c9980 r4:ebd4d000 [ 17.034454] [] (__netlink_dump_start) from [] (rtnetlink_rcv_msg+0x110/0x1f4) [ 17.043778] r7:00000000 r6:ec8c9980 r5:00000f40 r4:ebf3e6c0 [ 17.049743] [] (rtnetlink_rcv_msg) from [] (netlink_rcv_skb+0xb4/0xc8) [ 17.058449] r8:eab5bdac r7:ec8c9980 r6:c05054f4 r5:ec8c9980 r4:ebf3e6c0 [ 17.065534] [] (netlink_rcv_skb) from [] (rtnetlink_rcv+0x24/0x2c) [ 17.073854] r6:ebd4d000 r5:00000014 r4:ec8c9980 r3:c0504110 [ 17.079846] [] (rtnetlink_rcv) from [] (netlink_unicast+0x180/0x1ec) [ 17.088363] r4:ed0c6800 r3:c0504110 [ 17.092113] [] (netlink_unicast) from [] (netlink_sendmsg+0x2ac/0x380) [ 17.100813] r10:00000000 r8:00000008 r7:ec8c9980 r6:ebd4d000 r5:eab5be70 r4:eab5bee4 [ 17.109083] [] (netlink_sendmsg) from [] (sock_sendmsg+0x90/0xb0) [ 17.117305] r10:00000000 r9:eab5a000 r8:becdda3c r7:0000000c r6:ea978400 r5:eab5be70 [ 17.125563] r4:c05103c4 [ 17.128225] [] (sock_sendmsg) from [] (SyS_sendto+0xb8/0xdc) [ 17.136001] r6:becdda5c r5:00000014 r4:ecd37040 [ 17.140876] [] (SyS_sendto) from [] (ret_fast_syscall+0x0/0x30) [ 17.148923] r10:00000000 r8:c000e804 r7:00000122 r6:becdda5c r5:0000000c r4:becdda5c [ 17.157169] ---[ end trace 2b71e15b38f58bad ]--- Fixes: 6423d6df1440 ("ARM: OMAP2+: hwmod: check for module address space during init") Signed-off-by: Roger Quadros Signed-off-by: Paul Walmsley Cc: arch/arm/mach-omap2/omap_hwmod.c | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) commit 46ebb7af7b93792de65e124e1ab8b89a108a41f2 Author: Alex Williamson Date: Tue Jul 14 14:48:53 2015 -0600 iommu/vt-d: Fix VM domain ID leak This continues the attempt to fix commit fb170fb4c548 ("iommu/vt-d: Introduce helper functions to make code symmetric for readability"). The previous attempt in commit 71684406905f ("iommu/vt-d: Detach domain *only* from attached iommus") overlooked the fact that dmar_domain.iommu_bmp gets cleared for VM domains when devices are detached: intel_iommu_detach_device domain_remove_one_dev_info domain_detach_iommu The domain is detached from the iommu, but the iommu is still attached to the domain, for whatever reason. Thus when we get to domain_exit(), we can't rely on iommu_bmp for VM domains to find the active iommus, we must check them all. Without that, the corresponding bit in intel_iommu.domain_ids doesn't get cleared and repeated VM domain creation and destruction will run out of domain IDs. Meanwhile we still can't call iommu_detach_domain() on arbitrary non-VM domains or we risk clearing in-use domain IDs, as 71684406905f attempted to address. It's tempting to modify iommu_detach_domain() to test the domain iommu_bmp, but the call ordering from domain_remove_one_dev_info() prevents it being able to work as fb170fb4c548 seems to have intended. Caching of unused VM domains on the iommu object seems to be the root of the problem, but this code is far too fragile for that kind of rework to be proposed for stable, so we simply revert this chunk to its state prior to fb170fb4c548. Fixes: fb170fb4c548 ("iommu/vt-d: Introduce helper functions to make code symmetric for readability") Fixes: 71684406905f ("iommu/vt-d: Detach domain *only* from attached iommus") Signed-off-by: Alex Williamson Cc: Jiang Liu Cc: stable@vger.kernel.org # v3.17+ Signed-off-by: Joerg Roedel drivers/iommu/intel-iommu.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit f898c522f0e9ac9f3177d0762b76e2ab2d2cf9c0 Author: Herbert Xu Date: Wed Jul 22 18:05:35 2015 +0800 crypto: ixp4xx - Remove bogus BUG_ON on scattered dst buffer This patch removes a bogus BUG_ON in the ablkcipher path that triggers when the destination buffer is different from the source buffer and is scattered. Cc: stable@vger.kernel.org Signed-off-by: Herbert Xu drivers/crypto/ixp4xx_crypto.c | 1 - 1 file changed, 1 deletion(-) commit 6f043b50da8e03bdcc5703fd37ea45bc6892432f Author: Tadeusz Struk Date: Tue Jul 21 22:07:47 2015 -0700 crypto: qat - Fix invalid synchronization between register/unregister sym algs The synchronization method used atomic was bogus. Use a proper synchronization with mutex. Cc: stable@vger.kernel.org Signed-off-by: Tadeusz Struk Signed-off-by: Herbert Xu drivers/crypto/qat/qat_common/qat_algs.c | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) commit 120d200a86273d1840d091959dca65617cd9eff2 Author: Luis Henriques Date: Fri Jul 17 14:20:31 2015 +0100 macintosh/ans-lcd: fix build failure after module_init/exit relocation After commit 0fd972a7d91d ("module: relocate module_init from init.h to module.h") ans-lcd module fails to build with: drivers/macintosh/ans-lcd.c:201:1: warning: data definition has no type or storage class [enabled by default] module_init(anslcd_init); ^ drivers/macintosh/ans-lcd.c:201:1: error: type defaults to 'int' in declaration of 'module_init' [-Werror=implicit-int] drivers/macintosh/ans-lcd.c:201:1: warning: parameter names (without types) in function declaration [enabled by default] drivers/macintosh/ans-lcd.c:202:1: warning: data definition has no type or storage class [enabled by default] module_exit(anslcd_exit); ^ drivers/macintosh/ans-lcd.c:202:1: error: type defaults to 'int' in declaration of 'module_exit' [-Werror=implicit-int] drivers/macintosh/ans-lcd.c:202:1: warning: parameter names (without types) in function declaration [enabled by default] drivers/macintosh/ans-lcd.c:155:1: warning: 'anslcd_init' defined but not used [-Wunused-function] anslcd_init(void) ^ drivers/macintosh/ans-lcd.c:195:1: warning: 'anslcd_exit' defined but not used [-Wunused-function] anslcd_exit(void) ^ This commit fixes it by replacing linux/init.h by linux/module.h. Fixes: 0fd972a7d91d ("module: relocate module_init from init.h to module.h") Signed-off-by: Luis Henriques Acked-by: Paul Gortmaker Signed-off-by: Michael Ellerman drivers/macintosh/ans-lcd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3ba3a73e9f204ce7904cae7d14be399b467c4fef Author: Alexey Kardashevskiy Date: Mon Jul 20 20:45:51 2015 +1000 powerpc/powernv/ioda2: Fix calculation for memory allocated for TCE table The existing code stores the amount of memory allocated for a TCE table. At the moment it uses @offset which is a virtual offset in the TCE table which is only correct for a one level tables and it does not include memory allocated for intermediate levels. When multilevel TCE table is requested, WARN_ON in tce_iommu_create_table() prints a warning. This adds an additional counter to pnv_pci_ioda2_table_do_alloc_pages() to count actually allocated memory. Signed-off-by: Alexey Kardashevskiy Reviewed-by: David Gibson Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/pci-ioda.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit 450ed0db011d200a691591a75fdbcd7cae1a9b4a Author: Alexey Brodkin Date: Thu Jul 16 21:45:17 2015 +0300 ARCv2: allow selection of page size for MMUv4 MMUv4 also supports the configurable page size as MMUv3. Signed-off-by: Alexey Brodkin Signed-off-by: Vineet Gupta arch/arc/Kconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 0da029ed7ee5fdf49a2a0e14160c3e9999be9292 Author: Paolo Bonzini Date: Thu Jul 23 08:24:42 2015 +0200 KVM: x86: rename quirk constants to KVM_X86_QUIRK_* Make them clearly architecture-dependent; the capability is valid for all architectures, but the argument is not. Signed-off-by: Paolo Bonzini arch/x86/include/uapi/asm/kvm.h | 4 ++-- arch/x86/kvm/lapic.c | 2 +- arch/x86/kvm/svm.c | 2 +- arch/x86/kvm/vmx.c | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) commit fb279950ba02e3210a16b11ecfa8871f3ee0ca49 Author: Xiao Guangrong Date: Thu Jul 16 03:25:56 2015 +0800 KVM: vmx: obey KVM_QUIRK_CD_NW_CLEARED OVMF depends on WB to boot fast, because it only clears caches after it has set up MTRRs---which is too late. Let's do writeback if CR0.CD is set to make it happy, similar to what SVM is already doing. Signed-off-by: Xiao Guangrong Tested-by: Alex Williamson Signed-off-by: Paolo Bonzini arch/x86/kvm/vmx.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 41dbc6bcd9722bba8f09256655d060af30c63d34 Author: Paolo Bonzini Date: Thu Jul 23 08:22:45 2015 +0200 KVM: x86: introduce kvm_check_has_quirk The logic of the disabled_quirks field usually results in a double negation. Wrap it in a simple function that checks the bit and negates it. Based on a patch from Xiao Guangrong. Signed-off-by: Paolo Bonzini arch/x86/kvm/lapic.c | 2 +- arch/x86/kvm/svm.c | 2 +- arch/x86/kvm/x86.h | 5 +++++ 3 files changed, 7 insertions(+), 2 deletions(-) commit 3e5d2fdceda172554e681b68c853bf5d08205bbf Author: Xiao Guangrong Date: Thu Jul 16 03:25:55 2015 +0800 KVM: MTRR: simplify kvm_mtrr_get_guest_memory_type kvm_mtrr_get_guest_memory_type never returns -1 which is implied in the current code since if @type = -1 (means no MTRR contains the range), iter.partial_map must be true Simplify the code to indicate this fact Signed-off-by: Xiao Guangrong Tested-by: Alex Williamson Signed-off-by: Paolo Bonzini arch/x86/kvm/mtrr.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) commit 10dc331ff5e7e4668c0f0c95b1a873aba9b70826 Author: Xiao Guangrong Date: Thu Jul 16 03:25:54 2015 +0800 KVM: MTRR: fix memory type handling if MTRR is completely disabled Currently code uses default memory type if MTRR is fully disabled, fix it by using UC instead. Signed-off-by: Xiao Guangrong Tested-by: Alex Williamson Signed-off-by: Paolo Bonzini arch/x86/kvm/mtrr.c | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) commit 154322f47376fed6ab1e4b350aa45fffa15a61aa Author: Tomas Winkler Date: Thu Jun 18 11:41:03 2015 +0300 mei: prevent unloading mei hw modules while the device is opened. chrdev_open() increases reference counter on cdev->owner. Instead of assigning the owner to mei subsystem, the owner has to be set to the underlaying HW module (mei_me or mei_txe), so once the device is opened the HW module cannot be unloaded. Cc: #3.17+ Signed-off-by: Tomas Winkler Signed-off-by: Alexander Usyskin Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a63444375f08a18a6b2286351606f08d6e9fa63d Author: Sudeep Dutt Date: Wed Jul 22 11:50:10 2015 -0700 misc: mic: scif bug fix for vmalloc_to_page crash v4.2-rc1 enabled huge page support for ioremap(..). Calling vmalloc_to_page after v4.2-rc1 results in the crash shown below on the host upon booting X100 coprocessors: BUG: unable to handle kernel paging request at ffffc47c00000000 IP: [] vmalloc_to_page+0x6c/0xb0 This patch fixes this crash by obtaining the fake struct page pointer which is required to be passed into dma_map_sg(..) by calling pfn_to_page(..) instead of vmalloc_to_page(..). Link: https://lkml.org/lkml/2015/7/18/110 Reviewed-by: Nikhil Rao Suggested-by: Toshi Kani Signed-off-by: Ashutosh Dixit Signed-off-by: Sudeep Dutt Signed-off-by: Greg Kroah-Hartman drivers/misc/mic/scif/scif_nodeqp.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) commit 68d35c7b3b1aa686e3039eb2626bf5e3ea8dbe81 Author: Sudip Mukherjee Date: Mon Jun 15 20:05:51 2015 +0530 parport: fix freeing freed memory After the reference count becomes 0 when put_device() is called, it will execute the release callback where we are freeing all the allocated memory associated with the device. So if we just continue on the error path then we are again freeing devname and trying to dereference par_dev which has already been free-ed in the release callback. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/parport/share.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 23c405912b881e3ca516554efde852c2ad550b31 Author: Sudip Mukherjee Date: Mon Jun 15 20:05:50 2015 +0530 parport: fix memory leak After the reference count becomes 0 when put_device() is called, it will execute the release callback where we are freeing all the allocated memory associated with the device. We missed freeing par_dev->state. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/parport/share.c | 1 + 1 file changed, 1 insertion(+) commit cabea695875e3a07313c205a9753c7416126dfa2 Author: Sudip Mukherjee Date: Mon Jun 15 20:05:49 2015 +0530 parport: fix error handling After registering the device if exclusive access fails for any reason then we need to unregister the device to remove all references. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/parport/share.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit f2d0a123bcf16d1a9cf7942ddc98e0ef77862c2b Author: Eric W. Biederman Date: Fri Jul 17 14:15:30 2015 -0500 mnt: Clarify and correct the disconnect logic in umount_tree rmdir mntpoint will result in an infinite loop when there is a mount locked on the mountpoint in another mount namespace. This is because the logic to test to see if a mount should be disconnected in umount_tree is buggy. Move the logic to decide if a mount should remain connected to it's mountpoint into it's own function disconnect_mount so that clarity of expression instead of terseness of expression becomes a virtue. When the conditions where it is invalid to leave a mount connected are first ruled out, the logic for deciding if a mount should be disconnected becomes much clearer and simpler. Fixes: e0c9c0afd2fc958ffa34b697972721d81df8a56f mnt: Update detach_mounts to leave mounts connected Fixes: ce07d891a0891d3c0d0c2d73d577490486b809e1 mnt: Honor MNT_LOCKED when detaching mounts Cc: stable@vger.kernel.org Signed-off-by: "Eric W. Biederman" fs/namespace.c | 35 +++++++++++++++++++++++++++++++---- fs/pnode.h | 2 -- 2 files changed, 31 insertions(+), 6 deletions(-) commit 00d80e342c0f4f1990ab69f594ee1e2348e51dd9 Author: Filipe Manana Date: Mon Jul 20 14:56:20 2015 +0100 Btrfs: fix quick exhaustion of the system array in the superblock Omar reported that after commit 4fbcdf669454 ("Btrfs: fix -ENOSPC when finishing block group creation"), introduced in 4.2-rc1, the following test was failing due to exhaustion of the system array in the superblock: #!/bin/bash truncate -s 100T big.img mkfs.btrfs big.img mount -o loop big.img /mnt/loop num=5 sz=10T for ((i = 0; i < $num; i++)); do echo fallocate $i $sz fallocate -l $sz /mnt/loop/testfile$i done btrfs filesystem sync /mnt/loop for ((i = 0; i < $num; i++)); do echo rm $i rm /mnt/loop/testfile$i btrfs filesystem sync /mnt/loop done umount /mnt/loop This made btrfs_add_system_chunk() fail with -EFBIG due to excessive allocation of system block groups. This happened because the test creates a large number of data block groups per transaction and when committing the transaction we start the writeout of the block group caches for all the new new (dirty) block groups, which results in pre-allocating space for each block group's free space cache using the same transaction handle. That in turn often leads to creation of more block groups, and all get attached to the new_bgs list of the same transaction handle to the point of getting a list with over 1500 elements, and creation of new block groups leads to the need of reserving space in the chunk block reserve and often creating a new system block group too. So that made us quickly exhaust the chunk block reserve/system space info, because as of the commit mentioned before, we do reserve space for each new block group in the chunk block reserve, unlike before where we would not and would at most allocate one new system block group and therefore would only ensure that there was enough space in the system space info to allocate 1 new block group even if we ended up allocating thousands of new block groups using the same transaction handle. That worked most of the time because the computed required space at check_system_chunk() is very pessimistic (assumes a chunk tree height of BTRFS_MAX_LEVEL/8 and that all nodes/leafs in a path will be COWed and split) and since the updates to the chunk tree all happen at btrfs_create_pending_block_groups it is unlikely that a path needs to be COWed more than once (unless writepages() for the btree inode is called by mm in between) and that compensated for the need of creating any new nodes/leads in the chunk tree. So fix this by ensuring we don't accumulate a too large list of new block groups in a transaction's handles new_bgs list, inserting/updating the chunk tree for all accumulated new block groups and releasing the unused space from the chunk block reserve whenever the list becomes sufficiently large. This is a generic solution even though the problem currently can only happen when starting the writeout of the free space caches for all dirty block groups (btrfs_start_dirty_block_groups()). Reported-by: Omar Sandoval Signed-off-by: Filipe Manana Tested-by: Omar Sandoval Signed-off-by: Chris Mason fs/btrfs/extent-tree.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit 3e303ea60db3f0222c25a13f39a7cca7bf860df0 Author: Anand Jain Date: Fri Jul 17 23:45:23 2015 +0800 btrfs: its btrfs_err() instead of btrfs_error() sorry I indented to use btrfs_err() and I have no idea how btrfs_error() got there. infact I was thinking about these kind of oversights since these two func are too closely named. Signed-off-by: Anand Jain Reviewed-by: Liu Bo Reviewed-by: David Sterba Signed-off-by: Chris Mason fs/btrfs/dev-replace.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 95ab1f64908795a2edd6b847eca94a0c63a44be4 Author: Zhao Lei Date: Wed Jul 15 21:02:09 2015 +0800 btrfs: Avoid NULL pointer dereference of free_extent_buffer when read_tree_block() fail When read_tree_block() failed, we can see following dmesg: [ 134.371389] BUG: unable to handle kernel NULL pointer dereference at 0000000000000063 [ 134.372236] IP: [] free_extent_buffer+0x21/0x90 [ 134.372236] PGD 0 [ 134.372236] Oops: 0000 [#1] SMP [ 134.372236] Modules linked in: [ 134.372236] CPU: 0 PID: 2289 Comm: mount Not tainted 4.2.0-rc1_HEAD_c65b99f046843d2455aa231747b5a07a999a9f3d_+ #115 [ 134.372236] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.7.5.1-0-g8936dbb-20141113_115728-nilsson.home.kraxel.org 04/01/2014 [ 134.372236] task: ffff88003b6e1a00 ti: ffff880011e60000 task.ti: ffff880011e60000 [ 134.372236] RIP: 0010:[] [] free_extent_buffer+0x21/0x90 ... [ 134.372236] Call Trace: [ 134.372236] [] free_root_extent_buffers+0x91/0xb0 [ 134.372236] [] free_root_pointers+0x17d/0x190 [ 134.372236] [] open_ctree+0x1ca0/0x25b0 [ 134.372236] [] ? disk_name+0x97/0xb0 [ 134.372236] [] btrfs_mount+0x8fa/0xab0 ... Reason: read_tree_block() changed to return error number on fail, and this value(not NULL) is set to tree_root->node, then subsequent code will run to: free_root_pointers() ->free_root_extent_buffers() ->free_extent_buffer() ->atomic_read((extent_buffer *)(-E_XXX)->refs); and trigger above error. Fix: Set tree_root->node to NULL on fail to make error_handle code happy. Signed-off-by: Zhao Lei Signed-off-by: Chris Mason fs/btrfs/disk-io.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 8a7330130470e173832385861c1aa6e37a4e50d2 Author: Zhao Lei Date: Wed Jul 15 11:48:14 2015 +0800 btrfs: Fix lockdep warning of btrfs_run_delayed_iputs() Liu Bo reported a lockdep warning of delayed_iput_sem in xfstests generic/241: [ 2061.345955] ============================================= [ 2061.346027] [ INFO: possible recursive locking detected ] [ 2061.346027] 4.1.0+ #268 Tainted: G W [ 2061.346027] --------------------------------------------- [ 2061.346027] btrfs-cleaner/3045 is trying to acquire lock: [ 2061.346027] (&fs_info->delayed_iput_sem){++++..}, at: [] btrfs_run_delayed_iputs+0x6b/0x100 [ 2061.346027] but task is already holding lock: [ 2061.346027] (&fs_info->delayed_iput_sem){++++..}, at: [] btrfs_run_delayed_iputs+0x6b/0x100 [ 2061.346027] other info that might help us debug this: [ 2061.346027] Possible unsafe locking scenario: [ 2061.346027] CPU0 [ 2061.346027] ---- [ 2061.346027] lock(&fs_info->delayed_iput_sem); [ 2061.346027] lock(&fs_info->delayed_iput_sem); [ 2061.346027] *** DEADLOCK *** It is rarely happened, about 1/400 in my test env. The reason is recursion of btrfs_run_delayed_iputs(): cleaner_kthread -> btrfs_run_delayed_iputs() *1 -> get delayed_iput_sem lock *2 -> iput() -> ... -> btrfs_commit_transaction() -> btrfs_run_delayed_iputs() *1 -> get delayed_iput_sem lock (dead lock) *2 *1: recursion of btrfs_run_delayed_iputs() *2: warning of lockdep about delayed_iput_sem When fs is in high stress, new iputs may added into fs_info->delayed_iputs list when btrfs_run_delayed_iputs() is running, which cause second btrfs_run_delayed_iputs() run into down_read(&fs_info->delayed_iput_sem) again, and cause above lockdep warning. Actually, it will not cause real problem because both locks are read lock, but to avoid lockdep warning, we can do a fix. Fix: Don't do btrfs_run_delayed_iputs() in btrfs_commit_transaction() for cleaner_kthread thread to break above recursion path. cleaner_kthread is calling btrfs_run_delayed_iputs() explicitly in code, and don't need to call btrfs_run_delayed_iputs() again in btrfs_commit_transaction(), it also give us a bonus to avoid stack overflow. Test: No above lockdep warning after patch in 1200 generic/241 tests. Reported-by: Liu Bo Signed-off-by: Zhao Lei Reviewed-by: Liu Bo Signed-off-by: Chris Mason fs/btrfs/transaction.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit d3b178adb3a3adf54ecf77758138b654c3ee7f09 Author: Goldwyn Rodrigues Date: Wed Jul 22 12:09:17 2015 -0500 md: Skip cluster setup for dm-raid There is a bug that the bitmap superblock isn't initialised properly for dm-raid, so a new field can have garbage in new fields. (dm-raid does initialisation in the kernel - md initialised the superblock in mdadm). This means that for dm-raid we cannot currently trust the new ->nodes field. So: - use __GFP_ZERO to initialise the superblock properly for all new arrays - initialise all fields in bitmap_info in bitmap_new_disk_sb - ignore ->nodes for dm arrays (yes, this is a hack) This bug exposes dm-raid to bug in the (still experimental) md-cluster code, so it is suitable for -stable. It does cause crashes. References: https://bugzilla.kernel.org/show_bug.cgi?id=100491 Cc: stable@vger.kernel.org (v4.1) Signed-off-By: Goldwyn Rodrigues Signed-off-by: NeilBrown drivers/md/bitmap.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) commit 5f6c2d2b7dbb541c1e922538c49fa04c494ae3d7 Author: Tejun Heo Date: Wed Jul 22 18:05:53 2015 -0400 blkcg: fix gendisk reference leak in blkg_conf_prep() When a blkcg configuration is targeted to a partition rather than a whole device, blkg_conf_prep fails with -EINVAL; unfortunately, it forgets to put the gendisk ref in that case. Fix it. Signed-off-by: Tejun Heo Cc: stable@vger.kernel.org Signed-off-by: Jens Axboe block/blk-cgroup.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 1209544d8a2a6084f58625ca66f5cd77580df53f Author: Alan Stern Date: Wed Jul 8 12:14:56 2015 -0400 USB: OHCI: fix bad #define in ohci-tmio.c An incorrect definition of CCR_PM_USBPW3 in ohci-tmio.c is a perennial source of invalid diagnoses from static scanners, such as in . This patch fixes the definition. Signed-off-by: Alan Stern Reported-by: David Binderman CC: Dmitry Eremin-Solenikov Signed-off-by: Greg Kroah-Hartman drivers/usb/host/ohci-tmio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 91b725600d8f27d759d211e36dda6182c6f93ec6 Author: Johannes Thumshirn Date: Wed Jul 8 17:25:42 2015 +0200 cdc-acm: Destroy acm_minors IDR on module exit Destroy acm_minors IDR on module exit, reclaiming the allocated memory. This was detected by the following semantic patch (written by Luis Rodriguez ) @ defines_module_init @ declarer name module_init, module_exit; declarer name DEFINE_IDR; identifier init; @@ module_init(init); @ defines_module_exit @ identifier exit; @@ module_exit(exit); @ declares_idr depends on defines_module_init && defines_module_exit @ identifier idr; @@ DEFINE_IDR(idr); @ on_exit_calls_destroy depends on declares_idr && defines_module_exit @ identifier declares_idr.idr, defines_module_exit.exit; @@ exit(void) { ... idr_destroy(&idr); ... } @ missing_module_idr_destroy depends on declares_idr && defines_module_exit && !on_exit_calls_destroy @ identifier declares_idr.idr, defines_module_exit.exit; @@ exit(void) { ... +idr_destroy(&idr); } Signed-off-by: Johannes Thumshirn Acked-by: Oliver Neukum Acked-by: Johan Hovold Signed-off-by: Greg Kroah-Hartman drivers/usb/class/cdc-acm.c | 1 + 1 file changed, 1 insertion(+) commit 2d64f31bdfbb2ea66cbd4271c079f11808c79c28 Author: Hans de Goede Date: Wed Jul 8 14:03:41 2015 +0200 usb-storage: Add ignore-device quirk for gm12u320 based usb mini projectors Grain-media GM12U320 based devices are mini video projectors using USB for both power and video data transport. Their usb-storage interface is a virtual windows driver CD. The gm12u320 kms driver needs these interfaces to talk to the device and export it as framebuffer & kms dri device nodes, so make sure that the usb-storage driver does not bind to it. Signed-off-by: Hans de Goede Signed-off-by: Greg Kroah-Hartman drivers/usb/storage/unusual_devs.h | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 5fb2c782f451a4fb9c19c076e2c442839faf0f76 Author: Oliver Neukum Date: Mon Jul 6 13:12:32 2015 +0200 usb-storage: ignore ZTE MF 823 card reader in mode 0x1225 This device automatically switches itself to another mode (0x1405) unless the specific access pattern of Windows is followed in its initial mode. That makes a dirty unmount of the internal storage devices inevitable if they are mounted. So the card reader of such a device should be ignored, lest an unclean removal become inevitable. This replaces an earlier patch that ignored all LUNs of this device. That patch was overly broad. Signed-off-by: Oliver Neukum CC: stable@vger.kernel.org Reviewed-by: Lars Melin Signed-off-by: Greg Kroah-Hartman drivers/usb/storage/unusual_devs.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 7d8021c967648accd1b78e5e1ddaad655cd2c61f Author: Alan Stern Date: Tue Jun 30 11:25:54 2015 -0400 USB: OHCI: Fix race between ED unlink and URB submission This patch fixes a bug introduced by commit 977dcfdc6031 ("USB: OHCI: don't lose track of EDs when a controller dies"). The commit changed ed_state from ED_UNLINK to ED_IDLE too early, before finish_urb() had been called. The user-visible consequence is that the driver occasionally crashes or locks up when an URB is submitted while another URB for the same endpoint is being unlinked. This patch moves the ED state change later, to the right place. The drawback is that now we may unnecessarily execute some instructions multiple times when a controller dies. Since controllers dying is an exceptional occurrence, a little wasted time won't matter. Signed-off-by: Alan Stern Reported-by: Heiko Przybyl Tested-by: Heiko Przybyl Fixes: 977dcfdc60311e7aa571cabf6f39c36dde13339e CC: Signed-off-by: Greg Kroah-Hartman drivers/usb/host/ohci-q.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) commit 2d2a316765d956bc5cb6bb367b2ec52ca59ab8e9 Author: Lu Baolu Date: Tue Jun 16 09:08:26 2015 +0800 usb: core: lpm: set lpm_capable for root hub device Commit 25cd2882e2fc ("usb/xhci: Change how we indicate a host supports Link PM.") removed the code to set lpm_capable for USB 3.0 super-speed root hub. The intention of that change was to avoid touching usb core internal field, a.k.a. lpm_capable, and let usb core to set it by checking U1 and U2 exit latency values in the descriptor. Usb core checks and sets lpm_capable in hub_port_init(). Unfortunately, root hub is a special usb device as it has no parent. Hub_port_init() will never be called for a root hub device. That means lpm_capable will by no means be set for the root hub. As the result, lpm isn't functional at all in Linux kernel. This patch add the code to check and set lpm_capable when registering a root hub device. It could be back-ported to kernels as old as v3.15, that contains the Commit 25cd2882e2fc ("usb/xhci: Change how we indicate a host supports Link PM."). Cc: stable@vger.kernel.org # 3.15 Reported-by: Kevin Strasser Signed-off-by: Lu Baolu Acked-by: Alan Stern Signed-off-by: Greg Kroah-Hartman drivers/usb/core/hcd.c | 7 +++++-- drivers/usb/core/hub.c | 2 +- drivers/usb/core/usb.h | 1 + 3 files changed, 7 insertions(+), 3 deletions(-) commit c5dfd654d0ec0a28fe81e7bd4d4fd984a9855e09 Merge: 5a5ca73 d8b4891 Author: Linus Torvalds Date: Wed Jul 22 14:45:25 2015 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Pull networking fixes from David Miller: 1) Don't use shared bluetooth antenna in iwlwifi driver for management frames, from Emmanuel Grumbach. 2) Fix device ID check in ath9k driver, from Felix Fietkau. 3) Off by one in xen-netback BUG checks, from Dan Carpenter. 4) Fix IFLA_VF_PORT netlink attribute validation, from Daniel Borkmann. 5) Fix races in setting peeked bit flag in SKBs during datagram receive. If it's shared we have to clone it otherwise the value can easily be corrupted. Fix from Herbert Xu. 6) Revert fec clock handling change, causes regressions. From Fabio Estevam. 7) Fix use after free in fq_codel and sfq packet schedulers, from WANG Cong. 8) ipvlan bug fixes (memory leaks, missing rcu_dereference_bh, etc.) from WANG Cong and Konstantin Khlebnikov. 9) Memory leak in act_bpf packet action, from Alexei Starovoitov. 10) ARM bpf JIT bug fixes from Nicolas Schichan. 11) Fix backwards compat of ANY_LAYOUT in virtio_net driver, from Michael S Tsirkin. 12) Destruction of bond with different ARP header types not handled correctly, fix from Nikolay Aleksandrov. 13) Revert GRO receive support in ipv6 SIT tunnel driver, causes regressions because the GRO packets created cannot be processed properly on the GSO side if we forward the frame. From Herbert Xu. 14) TCCR update race and other fixes to ravb driver from Sergei Shtylyov. 15) Fix SKB leaks in caif_queue_rcv_skb(), from Eric Dumazet. 16) Fix panics on packet scheduler filter replace, from Daniel Borkmann. 17) Make sure AF_PACKET sees properly IP headers in defragmented frames (via PACKET_FANOUT_FLAG_DEFRAG option), from Edward Hyunkoo Jee. 18) AF_NETLINK cannot hold mutex in RCU callback, fix from Florian Westphal. * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (84 commits) ravb: fix ring memory allocation net: phy: dp83867: Fix warning check for setting the internal delay openvswitch: allocate nr_node_ids flow_stats instead of num_possible_nodes netlink: don't hold mutex in rcu callback when releasing mmapd ring ARM: net: fix vlan access instructions in ARM JIT. ARM: net: handle negative offsets in BPF JIT. ARM: net: fix condition for load_order > 0 when translating load instructions. tcp: suppress a division by zero warning drivers: net: cpsw: remove tx event processing in rx napi poll inet: frags: fix defragmented packet's IP header for af_packet net: mvneta: fix refilling for Rx DMA buffers stmmac: fix setting of driver data in stmmac_dvr_probe sched: cls_flow: fix panic on filter replace sched: cls_flower: fix panic on filter replace sched: cls_bpf: fix panic on filter replace net/mdio: fix mdio_bus_match for c45 PHY net: ratelimit warnings about dst entry refcount underflow or overflow caif: fix leaks and race in caif_queue_rcv_skb() qmi_wwan: add the second QMI/network interface for Sierra Wireless MC7305/MC7355 ravb: fix race updating TCCR ... commit 7021deae9735871c67ac0cc1c6ab0bdf634b665e Merge: aca3a04 dcb54fc Author: Greg Kroah-Hartman Date: Wed Jul 22 14:22:24 2015 -0700 Merge tag 'phy-for-4.2-rc' of git://git.kernel.org/pub/scm/linux/kernel/git/kishon/linux-phy into usb-linus Kishon writes: phy: for 4.2-rc *) Fix PIPE3 PM so that all its users (PCIe, SATA, USB) can idle and resume *) Fix a compiler error in pxa *) Fix pll divider values in berlin-usb phy driver Signed-off-by: Kishon Vijay Abraham I commit aca3a0489ac019b58cf32794d5362bb284cb9b94 Author: Zhuang Jin Can Date: Tue Jul 21 17:20:31 2015 +0300 xhci: do not report PLC when link is in internal resume state Port link change with port in resume state should not be reported to usbcore, as this is an internal state to be handled by xhci driver. Reporting PLC to usbcore may cause usbcore clearing PLC first and port change event irq won't be generated. Cc: Signed-off-by: Zhuang Jin Can Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman drivers/usb/host/xhci-hub.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit fac4271d1126c45ceaceb7f4a336317b771eb121 Author: Zhuang Jin Can Date: Tue Jul 21 17:20:30 2015 +0300 xhci: prevent bus_suspend if SS port resuming in phase 1 When the link is just waken, it's in Resume state, and driver sets PLS to U0. This refers to Phase 1. Phase 2 refers to when the link has completed the transition from Resume state to U0. With the fix of xhci: report U3 when link is in resume state, it also exposes an issue that usb3 roothub and controller can suspend right after phase 1, and this causes a hard hang in controller. To fix the issue, we need to prevent usb3 bus suspend if any port is resuming in phase 1. [merge separate USB2 and USB3 port resume checking to one -Mathias] Cc: Signed-off-by: Zhuang Jin Can Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman drivers/usb/host/xhci-hub.c | 6 +++--- drivers/usb/host/xhci-ring.c | 3 +++ drivers/usb/host/xhci.h | 1 + 3 files changed, 7 insertions(+), 3 deletions(-) commit 243292a2ad3dc365849b820a64868927168894ac Author: Zhuang Jin Can Date: Tue Jul 21 17:20:29 2015 +0300 xhci: report U3 when link is in resume state xhci_hub_report_usb3_link_state() returns pls as U0 when the link is in resume state, and this causes usb core to think the link is in U0 while actually it's in resume state. When usb core transfers control request on the link, it fails with TRB error as the link is not ready for transfer. To fix the issue, report U3 when the link is in resume state, thus usb core knows the link it's not ready for transfer. Cc: Signed-off-by: Zhuang Jin Can Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman drivers/usb/host/xhci-hub.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 326124a027abc9a7f43f72dc94f6f0f7a55b02b3 Author: Brian Campbell Date: Tue Jul 21 17:20:28 2015 +0300 xhci: Calculate old endpoints correctly on device reset When resetting a device the number of active TTs may need to be corrected by xhci_update_tt_active_eps, but the number of old active endpoints supplied to it was always zero, so the number of TTs and the bandwidth reserved for them was not updated, and could rise unnecessarily. This affected systems using Intel's Patherpoint chipset, which rely on software bandwidth checking. For example, a Lenovo X230 would lose the ability to use ports on the docking station after enough suspend/resume cycles because the bandwidth calculated would rise with every cycle when a suitable device is attached. The correct number of active endpoints is calculated in the same way as in xhci_reserve_bandwidth. Cc: Signed-off-by: Brian Campbell Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman drivers/usb/host/xhci.c | 3 +++ 1 file changed, 3 insertions(+) commit 3496810663922617d4b706ef2780c279252ddd6a Author: AMAN DEEP Date: Tue Jul 21 17:20:27 2015 +0300 usb: xhci: Bugfix for NULL pointer deference in xhci_endpoint_init() function virt_dev->num_cached_rings counts on freed ring and is not updated correctly. In xhci_free_or_cache_endpoint_ring() function, the free ring is added into cache and then num_rings_cache is incremented as below: virt_dev->ring_cache[rings_cached] = virt_dev->eps[ep_index].ring; virt_dev->num_rings_cached++; here, free ring pointer is added to a current index and then index is incremented. So current index always points to empty location in the ring cache. For getting available free ring, current index should be decremented first and then corresponding ring buffer value should be taken from ring cache. But In function xhci_endpoint_init(), the num_rings_cached index is accessed before decrement. virt_dev->eps[ep_index].new_ring = virt_dev->ring_cache[virt_dev->num_rings_cached]; virt_dev->ring_cache[virt_dev->num_rings_cached] = NULL; virt_dev->num_rings_cached--; This is bug in manipulating the index of ring cache. And it should be as below: virt_dev->num_rings_cached--; virt_dev->eps[ep_index].new_ring = virt_dev->ring_cache[virt_dev->num_rings_cached]; virt_dev->ring_cache[virt_dev->num_rings_cached] = NULL; Cc: Signed-off-by: Aman Deep Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman drivers/usb/host/xhci-mem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit abce329c27b315cfc01be1a305ee976ee13ed4cf Author: Rajmohan Mani Date: Tue Jul 21 17:20:26 2015 +0300 xhci: Workaround to get D3 working in Intel xHCI The xHCI in Intel CherryView / Braswell Platform requires a driver workaround to get xHCI D3 working. Without this workaround, xHCI might not enter D3. Workaround is to configure SSIC PORT as "unused" before D3 entry and "used" after D3 exit. This is done through a vendor specific register (PORT2_SSIC_CONFIG_REG2 at offset 0x883c), in xhci suspend / resume callbacks. Verified xHCI D3 works fine in CherryView / Braswell platform. Signed-off-by: Rajmohan Mani Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman drivers/usb/host/xhci-pci.c | 40 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 37 insertions(+), 3 deletions(-) commit c3c5819a350952439c3198aa46581f9e4c46557f Author: Mathias Nyman Date: Tue Jul 21 17:20:25 2015 +0300 xhci: call BIOS workaround to enable runtime suspend on Intel Braswell Intel xhci hw that require XHCI_PME_STUCK quirk have as default disabled xhci from going to D3 state in runtime suspend. Driver needs to verify it can deal with the hw by calling an ACPI _DSM method to get D3 enabled. Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman drivers/usb/host/xhci-pci.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit 115c48d7a5351abeadd0c8a3dc87eca3d66a6475 Author: Trond Myklebust Date: Sun Jul 5 12:36:34 2015 -0400 NFS: nfs_mark_for_revalidate should always set NFS_INO_REVAL_PAGECACHE I'm not aware of any existing bugs around this, but the expectation is that nfs_mark_for_revalidate() should always force a revalidation of the cached metadata. Signed-off-by: Trond Myklebust include/linux/nfs_fs.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit cd812599796f500b042f5464b6665755eca21137 Author: Trond Myklebust Date: Sun Jul 5 11:12:07 2015 -0400 NFS: Remove the "NFS_CAP_CHANGE_ATTR" capability Setting the change attribute has been mandatory for all NFS versions, since commit 3a1556e8662c ("NFSv2/v3: Simulate the change attribute"). We should therefore not have anything be conditional on it being set/unset. Signed-off-by: Trond Myklebust fs/nfs/client.c | 2 +- fs/nfs/inode.c | 4 ++-- fs/nfs/nfs4proc.c | 3 --- include/linux/nfs_fs_sb.h | 2 +- 4 files changed, 4 insertions(+), 7 deletions(-) commit 5c675d6420511e035c150e420ab26d0306bbb736 Author: Trond Myklebust Date: Sun Jul 5 16:07:04 2015 -0400 NFS: Set NFS_INO_REVAL_PAGECACHE if the change attribute is uninitialised We can't allow caching of data until the change attribute has been initialised correctly. Signed-off-by: Trond Myklebust fs/nfs/inode.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 85a23cee3f2c928475f31777ead5a71340a12fc3 Author: Trond Myklebust Date: Sun Jul 5 11:02:53 2015 -0400 NFS: Don't revalidate the mapping if both size and change attr are up to date If we've ensured that the size and the change attribute are both correct, then there is no point in marking those attributes as needing revalidation again. Only do so if we know the size is incorrect and was not updated. Fixes: f2467b6f64da ("NFS: Clear NFS_INO_REVAL_PAGECACHE when...") Signed-off-by: Trond Myklebust fs/nfs/inode.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 2b83d3de4c18af49800e0b26ae013db4fcf43a4a Author: Trond Myklebust Date: Sun Jul 5 20:06:38 2015 -0400 NFSv4/pnfs: Ensure we don't miss a file extension pNFS writes don't return attributes, however that doesn't mean that we should ignore the fact that they may be extending the file. This patch ensures that if a write is seen to extend the file, then we always set an attribute barrier, and update the cached file size. Signed-off-by: Trond Myklebust fs/nfs/write.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) commit 3c38cbe2ade88240fabb585b408f779ad3b9a31b Author: Trond Myklebust Date: Wed Jul 22 13:46:13 2015 -0400 NFSv4: We must set NFS_OPEN_STATE flag in nfs_resync_open_stateid_locked Otherwise, nfs4_select_rw_stateid() will always return the zero stateid instead of the correct open stateid. Fixes: f95549cf24660 ("NFSv4: More CLOSE/OPEN races") Cc: stable@vger.kernel.org # 4.0+ Signed-off-by: Trond Myklebust fs/nfs/nfs4proc.c | 3 +++ 1 file changed, 3 insertions(+) commit 1980bd4d829a87ccd21b949f8a11ff1b426f5b0b Author: Trond Myklebust Date: Wed Jul 22 17:05:32 2015 -0400 SUNRPC: xprt_complete_bc_request must also decrement the free slot count Calling xprt_complete_bc_request() effectively causes the slot to be allocated, so it needs to decrement the backchannel free slot count as well. Fixes: 0d2a970d0ae5 ("SUNRPC: Fix a backchannel race") Signed-off-by: Trond Myklebust net/sunrpc/backchannel_rqst.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 68514471ceceac63c7fa9ad684d882f41be5b2d8 Author: Trond Myklebust Date: Wed Jul 22 16:31:17 2015 -0400 SUNRPC: Fix a backchannel deadlock xprt_alloc_bc_request() cannot call xprt_free_bc_request() without deadlocking, since it already holds the xprt->bc_pa_lock. Reported-by: Chuck Lever Fixes: 0d2a970d0ae55 ("SUNRPC: Fix a backchannel race") Signed-off-by: Trond Myklebust net/sunrpc/backchannel_rqst.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 21974061cfb3c4b0b1a83447fb5e7cdcd06e56dc Author: Mike Krinkin Date: Sun Jul 19 09:53:17 2015 +0300 null_blk: fix use-after-free problem end_cmd finishes request associated with nullb_cmd struct, so we should save pointer to request_queue in a local variable before calling end_cmd. The problem was causes general protection fault with slab poisoning enabled. Fixes: 8b70f45e2eb2 ("null_blk: restart request processing on completion handler") Tested-by: Akinobu Mita Signed-off-by: Mike Krinkin Signed-off-by: Jens Axboe drivers/block/null_blk.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit ed877b130dded73fbc6474ae935fce6d18c1a646 Merge: 52721d9 aebda61 Author: Greg Kroah-Hartman Date: Wed Jul 22 09:41:15 2015 -0700 Merge tag 'fixes-for-v4.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-linus Felipe writes: usb: fixes for v4.2-rc4 Only four fixes this time so I'll describe them all. We have an iomen resource leak fix in mv_udc_core. This bug exists since v3.3. Renesas got a fix for how they use dma_map_single() with IOMMU. The new ulpi bus got an ordering fix, so drivers don't try to probe ahead of the bus. And finally, we have a fix for a really old regression with dwc3, one which could only be exposed by a recent patch from Subbaraya. Basically, we were startving the controller of transfer resources. Signed-off-by: Felipe Balbi commit 5a5ca73ac0a73c876b62858f0753a25ee430e370 Merge: d725e66 3bc38fc Author: Linus Torvalds Date: Wed Jul 22 08:52:42 2015 -0700 Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux Pull ARM64 fixes from Catalin Marinas: - arm64 build fix following the move of the thread_struct to the end of task_struct and the asm offsets becoming too large for the AArch64 ISA - preparatory patch for moving irq_data struct members (applied now to reduce dependency for the next merging window) * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: ARM64/irq: Use access helper irq_data_get_affinity_mask() arm64: switch_to: calculate cpu context pointer using separate register commit 3d1450d54a4fc277fc4598acf2335f74b66b08fc Author: Jason A. Donenfeld Date: Tue Jul 7 20:26:07 2015 +0200 Makefile: Force gzip and xz on module install Running `make modules_install` ordinarily will overwrite existing modules. This is the desired behavior, and is how pretty much every other `make install` target works. However, if CONFIG_MODULE_COMPRESS is enabled, modules are passed through gzip and xz which then do the file writing. Both gzip and xz will error out if the file already exists, unless -f is passed. This patch adds -f so that the behavior is uniform. Signed-off-by: Jason A. Donenfeld Signed-off-by: Michal Marek Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6dd3f13e4239a8c2b1e60687d7321bc0df614f33 Author: Michal Marek Date: Thu Jul 16 18:23:53 2015 +0200 kbuild: Do not pick up ARCH_{CPP,A,C}FLAGS from the environment Initialize the ARCH_* overrides before including the arch Makefile, to avoid picking up the values from the environment. The variables can still be overriden on the make command line, but this won't happen by accident. Signed-off-by: Michal Marek Makefile | 5 +++++ 1 file changed, 5 insertions(+) commit 8c38de992be9aed0b34c4fab8f972c83d3b00dc4 Author: Toshi Kani Date: Thu Jul 16 17:23:16 2015 -0600 mm: Fix bugs in region_is_ram() region_is_ram() looks up the iomem_resource table to check if a target range is in RAM. However, it always returns with -1 due to invalid range checks. It always breaks the loop at the first entry of the table. Another issue is that it compares p->flags and flags, but it always fails. flags is declared as int, which makes it as a negative value with IORESOURCE_BUSY (0x80000000) set while p->flags is unsigned long. Fix the range check and flags so that region_is_ram() works as advertised. Signed-off-by: Toshi Kani Reviewed-by: Dan Williams Cc: Mike Travis Cc: Luis R. Rodriguez Cc: Andrew Morton Cc: Roland Dreier Cc: linux-mm@kvack.org Link: http://lkml.kernel.org/r/1437088996-28511-4-git-send-email-toshi.kani@hp.com Signed-off-by: Thomas Gleixner kernel/resource.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 9a58eebe1ace609bedf8c5a65e70a097459f5696 Author: Toshi Kani Date: Thu Jul 16 17:23:15 2015 -0600 x86/mm: Remove region_is_ram() call from ioremap __ioremap_caller() calls region_is_ram() to walk through the iomem_resource table to check if a target range is in RAM, which was added to improve the lookup performance over page_is_ram() (commit 906e36c5c717 "x86: use optimized ioresource lookup in ioremap function"). page_is_ram() was no longer used when this change was added, though. __ioremap_caller() then calls walk_system_ram_range(), which had replaced page_is_ram() to improve the lookup performance (commit c81c8a1eeede "x86, ioremap: Speed up check for RAM pages"). Since both checks walk through the same iomem_resource table for the same purpose, there is no need to call both functions. Aside of that walk_system_ram_range() is the only useful check at the moment because region_is_ram() always returns -1 due to an implementation bug. That bug in region_is_ram() cannot be fixed without breaking existing ioremap callers, which rely on the subtle difference of walk_system_ram_range() versus non page aligned ranges. Once these offending callers are fixed we can use region_is_ram() and remove walk_system_ram_range(). [ tglx: Massaged changelog ] Signed-off-by: Toshi Kani Reviewed-by: Dan Williams Cc: Roland Dreier Cc: Mike Travis Cc: Luis R. Rodriguez Cc: H. Peter Anvin Cc: Ingo Molnar Cc: Borislav Petkov Cc: linux-mm@kvack.org Link: http://lkml.kernel.org/r/1437088996-28511-3-git-send-email-toshi.kani@hp.com Signed-off-by: Thomas Gleixner arch/x86/mm/ioremap.c | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) commit 1c9cf9b211030a454a84cbc1cb15b82d9aa49011 Author: Toshi Kani Date: Thu Jul 16 17:23:14 2015 -0600 x86/mm: Move warning from __ioremap_check_ram() to the call site __ioremap_check_ram() has a WARN_ONCE() which is emitted when the given pfn range is not RAM. The warning is bogus in two aspects: - it never triggers since walk_system_ram_range() only calls __ioremap_check_ram() for RAM ranges. - the warning message is wrong as it says: "ioremap on RAM' after it established that the pfn range is not RAM. Move the WARN_ONCE() to __ioremap_caller(), and update the message to include the address range so we get an actual warning when something tries to ioremap system RAM. [ tglx: Massaged changelog ] Signed-off-by: Toshi Kani Reviewed-by: Dan Williams Cc: Roland Dreier Cc: Luis R. Rodriguez Cc: H. Peter Anvin Cc: Ingo Molnar Cc: Borislav Petkov Cc: linux-mm@kvack.org Link: http://lkml.kernel.org/r/1437088996-28511-2-git-send-email-toshi.kani@hp.com Signed-off-by: Thomas Gleixner arch/x86/mm/ioremap.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 4b31814d20cbe5cd4ccf18089751e77a04afe4f2 Author: Joe Stringer Date: Tue Jul 21 21:37:31 2015 -0700 netfilter: nf_conntrack: Support expectations in different zones When zones were originally introduced, the expectation functions were all extended to perform lookup using the zone. However, insertion was not modified to check the zone. This means that two expectations which are intended to apply for different connections that have the same tuple but exist in different zones cannot both be tracked. Fixes: 5d0aa2ccd4 (netfilter: nf_conntrack: add support for "conntrack zones") Signed-off-by: Joe Stringer Signed-off-by: Pablo Neira Ayuso net/netfilter/nf_conntrack_expect.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit aebda618718157a69c0dc0adb978d69bc2b8723c Author: John Youn Date: Mon Sep 17 00:00:00 2001 -0700 usb: dwc3: Reset the transfer resource index on SET_INTERFACE This fixes an issue introduced in commit b23c843992b6 (usb: dwc3: gadget: fix DEPSTARTCFG for non-EP0 EPs) that made sure we would only use DEPSTARTCFG once per SetConfig. The trick is that we should use one DEPSTARTCFG per SetConfig *OR* SetInterface. SetInterface was completely missed from the original patch. This problem became aparent after commit 76e838c9f776 (usb: dwc3: gadget: return error if command sent to DEPCMD register fails) added checking of the return status of device endpoint commands. 'Set Endpoint Transfer Resource' command was caught failing occasionally. This is because the Transfer Resource Index was not getting reset during a SET_INTERFACE request. Finally, to fix the issue, was we have to do is make sure that our start_config_issued flag gets reset whenever we receive a SetInterface request. To verify the problem (and its fix), all we have to do is run test 9 from testusb with 'testusb -t 9 -s 2048 -a -c 5000'. Tested-by: Huang Rui Tested-by: Subbaraya Sundeep Bhatta Fixes: b23c843992b6 (usb: dwc3: gadget: fix DEPSTARTCFG for non-EP0 EPs) Cc: # v3.2+ Signed-off-by: John Youn Signed-off-by: Felipe Balbi drivers/usb/dwc3/ep0.c | 4 ++++ 1 file changed, 4 insertions(+) commit 5677d67ae3949f09f57357241b88222d49b8c782 Author: Daniel Vetter Date: Thu Jul 16 16:47:50 2015 +0200 drm: Stop resetting connector state to unknown It's causing piles of issues since we've stopped forcing full detect cycles in the sysfs interfaces with commit c484f02d0f02fbbfc6decc945a69aae011041a27 Author: Chris Wilson Date: Fri Mar 6 12:36:42 2015 +0000 drm: Lighten sysfs connector 'status' The original justification for this was that the hpd handlers could use the unknown state as a hint to force a full detection. But current i915 code isn't doing that any more, and no one else really uses reset on resume. So instead just keep the old state around. References: http://article.gmane.org/gmane.comp.freedesktop.xorg.drivers.intel/62584 Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=100641 Cc: Rui Matos Cc: Julien Wajsberg Cc: kuddel.mail@gmx.de Cc: Lennart Poettering Cc: stable@vger.kernel.org Acked-by: Rob Clark Tested-by: Rui Tiago Cação Matos Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_crtc.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 3bc38fc110c642c0a455a5214465bb4d62805a75 Author: Jiang Liu Date: Mon Jul 13 20:30:04 2015 +0000 ARM64/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 Reviewed-by: Hanjun Guo Cc: linux-arm-kernel@lists.infradead.org Signed-off-by: Thomas Gleixner Signed-off-by: Catalin Marinas arch/arm64/kernel/irq.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c0d3fce5e192c6b45a9d8e06aecfcec546f73884 Author: Will Deacon Date: Mon Jul 20 15:14:53 2015 +0100 arm64: switch_to: calculate cpu context pointer using separate register Commit 0c8c0f03e3a2 ("x86/fpu, sched: Dynamically allocate 'struct fpu'") moved the thread_struct to the bottom of task_struct. As a result, the offset is now too large to be used in an immediate add on arm64 with some kernel configs: arch/arm64/kernel/entry.S: Assembler messages: arch/arm64/kernel/entry.S:588: Error: immediate out of range arch/arm64/kernel/entry.S:597: Error: immediate out of range This patch calculates the offset using an additional register instead of an immediate offset. Fixes: 0c8c0f03e3a2 ("x86/fpu, sched: Dynamically allocate 'struct fpu'") Cc: Dave Hansen Cc: Olof Johansson Cc: Ingo Molnar Signed-off-by: Will Deacon Tested-by: Guenter Roeck Signed-off-by: Catalin Marinas arch/arm64/kernel/entry.S | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit a6c2a32ac83567f15e9af3dcbc73148ce68b2ced Author: Ben Zhang Date: Tue Jul 21 14:46:26 2015 -0700 ASoC: ssm4567: Keep TDM_BCLKS in ssm4567_set_dai_fmt The regmap_write in ssm4567_set_dai_fmt accidentally clears the TDM_BCLKS field which was set earlier by ssm4567_set_tdm_slot. This patch fixes it by using regmap_update_bits with proper mask. Signed-off-by: Ben Zhang Acked-by: Lars-Peter Clausen Acked-by: Anatol Pomozov Signed-off-by: Mark Brown Cc: stable@vger.kernel.org sound/soc/codecs/ssm4567.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit b101acfabc9377469af3abfb7cb63112da367284 Author: Axel Lin Date: Wed Jul 22 11:27:45 2015 +0800 ASoC: sgtl5000: Fix up define for SGTL5000_SMALL_POP Currently, below code actually does not update any bit because SGTL5000_SMALL_POP is 0. snd_soc_update_bits(codec, SGTL5000_CHIP_REF_CTRL, SGTL5000_SMALL_POP, 1); The SGTL5000_SMALL_POP should be BIT(0) rather than 0, fix it. Signed-off-by: Axel Lin Acked-By: Alexander Stein Signed-off-by: Mark Brown sound/soc/codecs/sgtl5000.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cba59972a1191a0c1647a52fe745eed7a4b34b38 Author: David Henningsson Date: Wed Jul 22 10:00:25 2015 +0200 ALSA: hda - Add headset mic pin quirk for a Dell device Without this patch, the headset mic will not work on this machine. BugLink: https://bugs.launchpad.net/bugs/1476987 Signed-off-by: David Henningsson Cc: Signed-off-by: Takashi Iwai sound/pci/hda/patch_realtek.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 21e9d017b88ea0baa367ef0b6516d794fa23e85e Author: Hui Wang Date: Wed Jul 22 10:33:34 2015 +0800 ALSA: hda - remove one pin from ALC292_STANDARD_PINS One more Dell laptop with alc293 codec needs ALC293_FIXUP_DELL1_MIC_NO_PRESENCE, but the pin 0x1e does not match the corresponding one in the ALC292_STANDARD_PINS. To use this macro for this machine, we need to remove pin 0x1e from it. BugLink: https://bugs.launchpad.net/bugs/1476888 Cc: Signed-off-by: Hui Wang Signed-off-by: Takashi Iwai sound/pci/hda/patch_realtek.c | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) commit d8b48911fd249bc1a3431a9515619403c96d6af3 Author: Sergei Shtylyov Date: Wed Jul 22 01:31:59 2015 +0300 ravb: fix ring memory allocation The driver is written as if it can adapt to a low memory situation allocating less RX skbs and TX aligned buffers than the respective RX/TX ring sizes. In reality though the driver would malfunction in this case. Stop being overly smart and just fail in such situation -- this is achieved by moving the memory allocation from ravb_ring_format() to ravb_ring_init(). We leave dma_map_single() calls in place but make their failure non-fatal by marking the corresponding RX descriptors with zero data size which should prevent DMA to an invalid addresses. Signed-off-by: Sergei Shtylyov Signed-off-by: David S. Miller drivers/net/ethernet/renesas/ravb_main.c | 59 ++++++++++++++++++-------------- 1 file changed, 34 insertions(+), 25 deletions(-) commit a46fa260f6f5e8f80a725b28e4aee5a04d1bd79e Author: Dan Murphy Date: Tue Jul 21 12:06:45 2015 -0500 net: phy: dp83867: Fix warning check for setting the internal delay Fix warning: logical ‘or’ of collectively exhaustive tests is always true Change the internal delay check from an 'or' condition to an 'and' condition. Reported-by: David Binderman Signed-off-by: Dan Murphy Acked-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/phy/dp83867.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bac541e46319c2dc6ff9fd5ad6df59cd38686bdb Author: Chris J Arges Date: Tue Jul 21 12:36:33 2015 -0500 openvswitch: allocate nr_node_ids flow_stats instead of num_possible_nodes Some architectures like POWER can have a NUMA node_possible_map that contains sparse entries. This causes memory corruption with openvswitch since it allocates flow_cache with a multiple of num_possible_nodes() and assumes the node variable returned by for_each_node will index into flow->stats[node]. Use nr_node_ids to allocate a maximal sparse array instead of num_possible_nodes(). The crash was noticed after 3af229f2 was applied as it changed the node_possible_map to match node_online_map on boot. Fixes: 3af229f2071f5b5cb31664be6109561fbe19c861 Signed-off-by: Chris J Arges Acked-by: Pravin B Shelar Acked-by: Nishanth Aravamudan Signed-off-by: David S. Miller net/openvswitch/flow_table.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0470eb99b4721586ccac954faac3fa4472da0845 Author: Florian Westphal Date: Tue Jul 21 16:33:50 2015 +0200 netlink: don't hold mutex in rcu callback when releasing mmapd ring Kirill A. Shutemov says: This simple test-case trigers few locking asserts in kernel: int main(int argc, char **argv) { unsigned int block_size = 16 * 4096; struct nl_mmap_req req = { .nm_block_size = block_size, .nm_block_nr = 64, .nm_frame_size = 16384, .nm_frame_nr = 64 * block_size / 16384, }; unsigned int ring_size; int fd; fd = socket(AF_NETLINK, SOCK_RAW, NETLINK_GENERIC); if (setsockopt(fd, SOL_NETLINK, NETLINK_RX_RING, &req, sizeof(req)) < 0) exit(1); if (setsockopt(fd, SOL_NETLINK, NETLINK_TX_RING, &req, sizeof(req)) < 0) exit(1); ring_size = req.nm_block_nr * req.nm_block_size; mmap(NULL, 2 * ring_size, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0); return 0; } +++ exited with 0 +++ BUG: sleeping function called from invalid context at /home/kas/git/public/linux-mm/kernel/locking/mutex.c:616 in_atomic(): 1, irqs_disabled(): 0, pid: 1, name: init 3 locks held by init/1: #0: (reboot_mutex){+.+...}, at: [] SyS_reboot+0xa9/0x220 #1: ((reboot_notifier_list).rwsem){.+.+..}, at: [] __blocking_notifier_call_chain+0x39/0x70 #2: (rcu_callback){......}, at: [] rcu_do_batch.isra.49+0x160/0x10c0 Preemption disabled at:[] __delay+0xf/0x20 CPU: 1 PID: 1 Comm: init Not tainted 4.1.0-00009-gbddf4c4818e0 #253 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS Debian-1.8.2-1 04/01/2014 ffff88017b3d8000 ffff88027bc03c38 ffffffff81929ceb 0000000000000102 0000000000000000 ffff88027bc03c68 ffffffff81085a9d 0000000000000002 ffffffff81ca2a20 0000000000000268 0000000000000000 ffff88027bc03c98 Call Trace: [] dump_stack+0x4f/0x7b [] ___might_sleep+0x16d/0x270 [] __might_sleep+0x4d/0x90 [] mutex_lock_nested+0x2f/0x430 [] ? _raw_spin_unlock_irqrestore+0x5d/0x80 [] ? __this_cpu_preempt_check+0x13/0x20 [] netlink_set_ring+0x1ed/0x350 [] ? netlink_undo_bind+0x70/0x70 [] netlink_sock_destruct+0x80/0x150 [] __sk_free+0x1d/0x160 [] sk_free+0x19/0x20 [..] Cong Wang says: We can't hold mutex lock in a rcu callback, [..] Thomas Graf says: The socket should be dead at this point. It might be simpler to add a netlink_release_ring() function which doesn't require locking at all. Reported-by: "Kirill A. Shutemov" Diagnosed-by: Cong Wang Suggested-by: Thomas Graf Signed-off-by: Florian Westphal Signed-off-by: David S. Miller net/netlink/af_netlink.c | 79 ++++++++++++++++++++++++++++-------------------- 1 file changed, 47 insertions(+), 32 deletions(-) commit 7c8cbacab1d5768f070fde86d4d552c2e1984431 Merge: 89e478a c18fe54 Author: David S. Miller Date: Tue Jul 21 22:19:55 2015 -0700 Merge branch 'arm-bpf-fixes' Nicolas Schichan says: ==================== BPF JIT fixes for ARM These patches are fixing bugs in the ARM JIT and should probably find their way to a stable kernel. All 60 test_bpf tests in Linux 4.1 release are now passing OK (was 54 out of 60 before). ==================== Signed-off-by: David S. Miller commit c18fe54b3f8d7daa6a43270f82676d6a563582a4 Author: Nicolas Schichan Date: Tue Jul 21 14:14:14 2015 +0200 ARM: net: fix vlan access instructions in ARM JIT. This makes BPF_ANC | SKF_AD_VLAN_TAG and BPF_ANC | SKF_AD_VLAN_TAG_PRESENT have the same behaviour as the in kernel VM and makes the test_bpf LD_VLAN_TAG and LD_VLAN_TAG_PRESENT tests pass. Signed-off-by: Nicolas Schichan Signed-off-by: David S. Miller arch/arm/net/bpf_jit_32.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 6d715e301e950e3314d590bdbabf0c26e4fed94b Author: Nicolas Schichan Date: Tue Jul 21 14:14:13 2015 +0200 ARM: net: handle negative offsets in BPF JIT. Previously, the JIT would reject negative offsets known during code generation and mishandle negative offsets provided at runtime. Fix that by calling bpf_internal_load_pointer_neg_helper() appropriately in the jit_get_skb_{b,h,w} slow path helpers and by forcing the execution flow to the slow path helpers when the offset is negative. Signed-off-by: Nicolas Schichan Signed-off-by: David S. Miller arch/arm/net/bpf_jit_32.c | 47 ++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 38 insertions(+), 9 deletions(-) commit 7aed35cb65348fc8b9ce0c2394ff675e5fc750da Author: Nicolas Schichan Date: Tue Jul 21 14:14:12 2015 +0200 ARM: net: fix condition for load_order > 0 when translating load instructions. To check whether the load should take the fast path or not, the code would check that (r_skb_hlen - load_order) is greater than the offset of the access using an "Unsigned higher or same" condition. For halfword accesses and an skb length of 1 at offset 0, that test is valid, as we end up comparing 0xffffffff(-1) and 0, so the fast path is taken and the filter allows the load to wrongly succeed. A similar issue exists for word loads at offset 0 and an skb length of less than 4. Fix that by using the condition "Signed greater than or equal" condition for the fast path code for load orders greater than 0. Signed-off-by: Nicolas Schichan Signed-off-by: David S. Miller arch/arm/net/bpf_jit_32.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 89e478a2aa58af2548b7f316e4d5b6bcc9eade5b Author: Eric Dumazet Date: Wed Jul 22 07:02:00 2015 +0200 tcp: suppress a division by zero warning Andrew Morton reported following warning on one ARM build with gcc-4.4 : net/ipv4/inet_hashtables.c: In function 'inet_ehash_locks_alloc': net/ipv4/inet_hashtables.c:617: warning: division by zero Even guarded with a test on sizeof(spinlock_t), compiler does not like current construct on a !CONFIG_SMP build. Remove the warning by using a temporary variable. Fixes: 095dc8e0c368 ("tcp: fix/cleanup inet_ehash_locks_alloc()") Reported-by: Andrew Morton Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller net/ipv4/inet_hashtables.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit ee5d004fd0591536a061451eba2b187092e9127c Author: NeilBrown Date: Wed Jul 22 10:20:07 2015 +1000 md: flush ->event_work before stopping array. The 'event_work' worker used by dm-raid may still be running when the array is stopped. This can result in an oops. So flush the workqueue on which it is run after detaching and before destroying the device. Reported-by: Heinz Mauelshagen Signed-off-by: NeilBrown Cc: stable@vger.kernel.org (2.6.38+ please delay 2 weeks after -final release) Fixes: 9d09e663d550 ("dm: raid456 basic support") drivers/md/md.c | 2 ++ 1 file changed, 2 insertions(+) commit 299b0685e31c9f3dcc2d58ee3beca761a40b44b3 Author: NeilBrown Date: Mon Jul 6 17:37:49 2015 +1000 md/raid10: always set reshape_safe when initializing reshape_position. 'reshape_position' tracks where in the reshape we have reached. 'reshape_safe' tracks where in the reshape we have safely recorded in the metadata. These are compared to determine when to update the metadata. So it is important that reshape_safe is initialised properly. Currently it isn't. When starting a reshape from the beginning it usually has the correct value by luck. But when reducing the number of devices in a RAID10, it has the wrong value and this leads to the metadata not being updated correctly. This can lead to corruption if the reshape is not allowed to complete. This patch is suitable for any -stable kernel which supports RAID10 reshape, which is 3.5 and later. Fixes: 3ea7daa5d7fd ("md/raid10: add reshape support") Cc: stable@vger.kernel.org (v3.5+ please wait for -final to be out for 2 weeks) Signed-off-by: NeilBrown drivers/md/raid10.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 2d5b569b665ea6d0b15c52529ff06300de81a7ce Author: NeilBrown Date: Mon Jul 6 12:49:23 2015 +1000 md/raid5: avoid races when changing cache size. Cache size can grow or shrink due to various pressures at any time. So when we resize the cache as part of a 'grow' operation (i.e. change the size to allow more devices) we need to blocks that automatic growing/shrinking. So introduce a mutex. auto grow/shrink uses mutex_trylock() and just doesn't bother if there is a blockage. Resizing the whole cache holds the mutex to ensure that the correct number of new stripes is allocated. This bug can result in some stripes not being freed when an array is stopped. This leads to the kmem_cache not being freed and a subsequent array can try to use the same kmem_cache and get confused. Fixes: edbe83ab4c27 ("md/raid5: allow the stripe_cache to grow and shrink.") Cc: stable@vger.kernel.org (4.1 - please delay until 2 weeks after release of 4.2) Signed-off-by: NeilBrown drivers/md/raid5.c | 31 +++++++++++++++++++++++++------ drivers/md/raid5.h | 3 ++- 2 files changed, 27 insertions(+), 7 deletions(-) commit 2f01a33bd26545c16fea7592697f7f15c416402b Author: Peter Chen Date: Tue Jul 21 09:51:29 2015 +0800 usb: chipidea: ehci_init_driver is intended to call one time The ehci_init_driver is used to initialize hcd APIs for each ehci controller driver, it is designed to be called only one time and before driver register is called. The current design will cause ehci_init_driver is called multiple times at probe process, it will cause hc_driver's initialization affect current running hcd. We run out NULL pointer dereference problem when one hcd is started by module_init, and the other is started by otg thread at SMP platform. The reason for this problem is ehci_init_driver will do memory copy for current uniform hc_driver, and this memory copy will do memset (as 0) first, so when the first hcd is running usb_add_hcd, and the second hcd may clear the uniform hc_driver's space (at ehci_init_driver), then the first hcd will meet NULL pointer at the same time. See below two logs: LOG_1: ci_hdrc ci_hdrc.0: EHCI Host Controller ci_hdrc ci_hdrc.0: new USB bus registered, assigned bus number 1 ci_hdrc ci_hdrc.1: doesn't support gadget Unable to handle kernel NULL pointer dereference at virtual address 00000014 pgd = 80004000 [00000014] *pgd=00000000 Internal error: Oops: 805 [#1] PREEMPT SMP ARM Modules linked in: CPU: 0 PID: 108 Comm: kworker/u8:2 Not tainted 3.14.38-222193-g24b2734-dirty #25 Workqueue: ci_otg ci_otg_work task: d839ec00 ti: d8400000 task.ti: d8400000 PC is at ehci_run+0x4c/0x284 LR is at _raw_spin_unlock_irqrestore+0x28/0x54 pc : [<8041f9a0>] lr : [<8070ea84>] psr: 60000113 sp : d8401e30 ip : 00000000 fp : d8004400 r10: 00000001 r9 : 00000001 r8 : 00000000 r7 : 00000000 r6 : d8419940 r5 : 80dd24c0 r4 : d8419800 r3 : 8001d060 r2 : 00000000 r1 : 00000001 r0 : 00000000 Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel Control: 10c53c7d Table: 1000404a DAC: 00000015 Process kworker/u8:2 (pid: 108, stack limit = 0xd8400238) Stack: (0xd8401e30 to 0xd8402000) 1e20: d87523c0 d8401e48 66667562 d8419800 1e40: 00000000 00000000 d8419800 00000000 00000000 00000000 d84198b0 8040fcdc 1e60: 00000000 80dd320c d8477610 d8419c00 d803d010 d8419800 00000000 00000000 1e80: d8004400 00000000 d8400008 80431494 80431374 d803d100 d803d010 d803d1ac 1ea0: 00000000 80432428 804323d4 d803d100 00000001 80435eb8 80e0d0bc d803d100 1ec0: 00000006 80436458 00000000 d803d100 80e92ec8 80436f44 d803d010 d803d100 1ee0: d83fde00 8043292c d8752710 d803d1f4 d803d010 8042ddfc 8042ddb8 d83f3b00 1f00: d803d1f4 80042b60 00000000 00000003 00000001 00000001 80054598 d83f3b00 1f20: d8004400 d83f3b18 d8004414 d8400000 80e3957b 00000089 d8004400 80043814 1f40: d839ec00 00000000 d83fcd80 d83f3b00 800436e4 00000000 00000000 00000000 1f60: 00000000 80048f34 00000000 00000000 00000000 d83f3b00 00000000 00000000 1f80: d8401f80 d8401f80 00000000 00000000 d8401f90 d8401f90 d8401fac d83fcd80 1fa0: 80048e68 00000000 00000000 8000e538 00000000 00000000 00000000 00000000 1fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 1fe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000 [<8041f9a0>] (ehci_run) from [<8040fcdc>] (usb_add_hcd+0x248/0x6e8) [<8040fcdc>] (usb_add_hcd) from [<80431494>] (host_start+0x120/0x2e4) [<80431494>] (host_start) from [<80432428>] (ci_otg_start_host+0x54/0xbc) [<80432428>] (ci_otg_start_host) from [<80435eb8>] (otg_set_protocol+0xa4/0xd0) [<80435eb8>] (otg_set_protocol) from [<80436458>] (otg_set_state+0x574/0xc58) [<80436458>] (otg_set_state) from [<80436f44>] (otg_statemachine+0x408/0x46c) [<80436f44>] (otg_statemachine) from [<8043292c>] (ci_otg_fsm_work+0x3c/0x190) [<8043292c>] (ci_otg_fsm_work) from [<8042ddfc>] (ci_otg_work+0x44/0x1c4) [<8042ddfc>] (ci_otg_work) from [<80042b60>] (process_one_work+0xf4/0x35c) [<80042b60>] (process_one_work) from [<80043814>] (worker_thread+0x130/0x3bc) [<80043814>] (worker_thread) from [<80048f34>] (kthread+0xcc/0xe4) [<80048f34>] (kthread) from [<8000e538>] (ret_from_fork+0x14/0x3c) Code: e5953018 e3530000 0a000000 e12fff33 (e5878014) LOG_2: ci_hdrc ci_hdrc.0: EHCI Host Controller ci_hdrc ci_hdrc.0: new USB bus registered, assigned bus number 1 ci_hdrc ci_hdrc.1: doesn't support gadget Unable to handle kernel NULL pointer dereference at virtual address 00000000 pgd = 80004000 [00000000] *pgd=00000000 In Online 00:00ternal e Offline rror: Oops: 80000005 [#1] PREEMPT SMP ARM Modules linked in: CPU: 0 PID: 108 Comm: kworker/u8:2 Not tainted 3.14.38-02007-g24b2734-dirty #127 Workque Online 00:00ue: ci_o Offline tg ci_otg_work Online 00:00task: d8 Offline 39ec00 ti: d83ea000 task.ti: d83ea000 PC is at 0x0 LR is at usb_add_hcd+0x248/0x6e8 pc : [<00000000>] lr : [<8040f644>] psr: 60000113 sp : d83ebe60 ip : 00000000 fp : d8004400 r10: 00000001 r9 : 00000001 r8 : d85fd4b0 r7 : 00000000 r6 : 00000000 r5 : 00000000 r4 : d85fd400 r3 : 00000000 r2 : d85fd4f4 r1 : 80410178 r0 : d85fd400 Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel Control: 10c53c7d Table: 1000404a DAC: 00000015 Process kworker/u8:2 (pid: 108, stack limit = 0xd83ea238) Stack: (0xd83ebe60 to 0xd83ec000) be60: 00000000 80dd920c d8654e10 d85fd800 d803e010 d85fd400 00000000 00000000 be80: d8004400 00000000 d83ea008 80430e34 80430d14 d803e100 d803e010 d803e1ac bea0: 00000000 80431dc8 80431d74 d803e100 00000001 80435858 80e130bc d803e100 bec0: 00000006 80435df8 00000000 d803e100 80e98ec8 804368e4 d803e010 d803e100 bee0: d86e8100 804322cc d86cf050 d803e1f4 d803e010 8042d79c 8042d758 d83cf900 bf00: d803e1f4 80042b78 00000000 00000003 00000001 00000001 800545e8 d83cf900 bf20: d8004400 d83cf918 d8004414 d83ea000 80e3f57b 00000089 d8004400 8004382c bf40: d839ec00 00000000 d8393780 d83cf900 800436fc 00000000 00000000 00000000 bf60: 00000000 80048f50 80e019f4 00000000 0000264c d83cf900 00000000 00000000 bf80: d83ebf80 d83ebf80 00000000 00000000 d83ebf90 d83ebf90 d83ebfac d8393780 bfa0: 80048e84 00000000 00000000 8000e538 00000000 00000000 00000000 00000000 bfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 bfe0: 00000000 00000000 00000000 00000000 00000013 00000000 ee66e85d 133ebd03 [<804 Online 00:000f644>] Offline (usb_add_hcd) from [<80430e34>] (host_start+0x120/0x2e4) [<80430e34>] (host_start) from [<80431dc8>] (ci_otg_start_host+0x54/0xbc) [<80431dc8>] (ci_otg_start_host) from [<80435858>] (otg_set_protocol+0xa4/0xd0) [<80435858>] (otg_set_protocol) from [<80435df8>] (otg_set_state+0x574/0xc58) [<80435df8>] (otg_set_state) from [<804368e4>] (otg_statemachine+0x408/0x46c) [<804368e4>] (otg_statemachine) from [<804322cc>] (ci_otg_fsm_work+0x3c/0x190) [<804322cc>] (ci_otg_fsm_work) from [<8042d79c>] (ci_otg_work+0x44/0x1c4) [<8042d79c>] (ci_otg_work) from [<80042b78>] (process_one_work+0xf4/0x35c) [<80042b78>] (process_one_work) from [<8004382c>] (worker_thread+0x130/0x3bc) [<8004382c>] (worker_thread) from [<80048f50>] (kthread+0xcc/0xe4) [<80048f50>] (kthread) from [<8000e538>] (ret_from_fork+0x14/0x3c) Code: bad PC value Cc: Jun Li Cc: Cc: Alan Stern Acked-by: Alan Stern Signed-off-by: Peter Chen drivers/usb/chipidea/core.c | 13 ++++++++++++- drivers/usb/chipidea/host.c | 7 +++++-- drivers/usb/chipidea/host.h | 6 ++++++ 3 files changed, 23 insertions(+), 3 deletions(-) commit d725e66c06ab440032f49ef17e960896d0ec6d49 Author: Linus Torvalds Date: Tue Jul 21 16:06:53 2015 -0700 Revert "fsnotify: fix oops in fsnotify_clear_marks_by_group_flags()" This reverts commit a2673b6e040663bf16a552f8619e6bde9f4b9acf. Kinglong Mee reports a memory leak with that patch, and Jan Kara confirms: "Thanks for report! You are right that my patch introduces a race between fsnotify kthread and fsnotify_destroy_group() which can result in leaking inotify event on group destruction. I haven't yet decided whether the right fix is not to queue events for dying notification group (as that is pointless anyway) or whether we should just fix the original problem differently... Whenever I look at fsnotify code mark handling I get lost in the maze of locks, lists, and subtle differences between how different notification systems handle notification marks :( I'll think about it over night" and after thinking about it, Jan says: "OK, I have looked into the code some more and I found another relatively simple way of fixing the original oops. It will be IMHO better than trying to fixup this issue which has more potential for breakage. I'll ask Linus to revert the fsnotify fix he already merged and send a new fix" Reported-by: Kinglong Mee Requested-by: Jan Kara Cc: Andrew Morton Signed-off-by: Linus Torvalds fs/notify/mark.c | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) commit 0bccece59212466703590b1eee6924ab878545ff Merge: 1e353cd df2cd45 Author: David S. Miller Date: Tue Jul 21 16:06:39 2015 -0700 Merge tag 'wireless-drivers-for-davem-2015-07-20' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers Kalle Valo says: ==================== ath9k: * fix device ID check for AR956x iwlwifi: * bug fixes specific for 8000 series * fix a crash in time events * fix a crash in PCIe transport * fix BT Coex code that prevented association on certain devices (3160). * revert the new RBD allocation model because it introduced a bug when running on weak VM setups. * new device IDs ==================== Signed-off-by: David S. Miller commit 71ebd1af094db1c72d69505a27dfecea99c2cb0b Merge: 8426fb3 681ccdc Author: Linus Torvalds Date: Tue Jul 21 15:27:27 2015 -0700 Merge tag 'pinctrl-v4.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl Pull pin control fixes from Linus Walleij: "Here are some overly ripe pin control fixes for the v4.2 series. They got delayed because of various crap commits and having to clean and rinse the patch stack a few times. Now they are however looking good. - some dead defines dropped from the Samsung driver, was targeted for -rc2 but got delayed - drop the strict mode from abx500, this was too strict - fix the R-Car sparse IRQs code to work as intended - fix the IRQ code for the pinctrl-single GPIO backend to not enforce threaded IRQs - clear the latched events/IRQs for the Broadcom BCM2835 driver - fix up debugfs for the Freescale imx1 driver - fix a typo bug in the Schmitt Trigger setup in the LPC18xx driver" * tag 'pinctrl-v4.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: pinctrl: lpc18xx: fix schmitt trigger setup Subject: pinctrl: imx1-core: Fix debug output in .pin_config_set callback pinctrl: bcm2835: Clear the event latch register when disabling interrupts pinctrl: single: ensure pcs irq will not be forced threaded sh-pfc: fix sparse GPIOs for R-Car SoCs pinctrl: abx500: remove strict mode pinctrl: samsung: Remove old unused defines commit 8426fb302c964894af15b5052241cf0bf45047bf Merge: 1ad474d 70f19f5 Author: Linus Torvalds Date: Tue Jul 21 15:18:06 2015 -0700 Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs Pull UDF fix from Jan Kara: "A fix for UDF corruption when certain disk-format feature is enabled" * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs: udf: Don't corrupt unalloc spacetable when writing it commit 1ad474de9349870f085b61c90bc80022702a78cc Merge: 9d634c4 d6726c8 Author: Linus Torvalds Date: Tue Jul 21 14:42:40 2015 -0700 Merge tag 'trace-v4.2-rc2-fix2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace Pull tracing sample code fix from Steven Rostedt: "He Kuang noticed that the sample code using the trace_event helper function __get_dynamic_array_len() is broken. This only changes the sample code, and I'm pushing this now instead of later because I don't want others using the broken code as an example when using it for real" * tag 'trace-v4.2-rc2-fix2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: tracing: Fix sample output of dynamic arrays commit 82567c85d5b0b96e3c2724fb878a65a7867614df Merge: 3eae03d 300bde7 Author: Olof Johansson Date: Tue Jul 21 14:05:48 2015 -0700 Merge tag 'samsung-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into fixes Merge "Samsung fixes for v4.2" from Kukjin Kim: From Krzysztof Kozlowski: 1. Fix exynos3250 MIPI DSI display and MIPI CSIS-2 camera sensorx after adding support for PMU regmap in exynos-video-mipi driver (issue introduced in v4.0). 2. Bring back cpufreq for exynos4210 after incomplete switch to cpufreq-dt driver in 4.2 merge window. The necessary DT changes for exynos4210 cpufreq was not applied to the same tree as rest of patchset because of multiple conflicts between clk and arm-soc trees. Unfortunately without the change the exynos4210 boards loose cpufreq feature. * tag 'samsung-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung: ARM: dts: add CPU OPP and regulator supply property for exynos4210 ARM: dts: Update video-phy node with syscon phandle for exynos3250 Signed-off-by: Olof Johansson commit 1e353cddcf81fbb79dd637cab9a22c837e94c205 Author: Mugunthan V N Date: Tue Jul 21 16:00:42 2015 +0530 drivers: net: cpsw: remove tx event processing in rx napi poll With commit c03abd84634d ("net: ethernet: cpsw: don't requests IRQs we don't use") common isr and napi are separated into separate tx isr and rx isr/napi, but still in rx napi tx events are handled. So removing the tx event handling in rx napi. Signed-off-by: Mugunthan V N Signed-off-by: David S. Miller drivers/net/ethernet/ti/cpsw.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit 0848f6428ba3a2e42db124d41ac6f548655735bf Author: Edward Hyunkoo Jee Date: Tue Jul 21 09:43:59 2015 +0200 inet: frags: fix defragmented packet's IP header for af_packet When ip_frag_queue() computes positions, it assumes that the passed sk_buff does not contain L2 headers. However, when PACKET_FANOUT_FLAG_DEFRAG is used, IP reassembly functions can be called on outgoing packets that contain L2 headers. Also, IPv4 checksum is not corrected after reassembly. Fixes: 7736d33f4262 ("packet: Add pre-defragmentation support for ipv4 fanouts.") Signed-off-by: Edward Hyunkoo Jee Signed-off-by: Eric Dumazet Cc: Willem de Bruijn Cc: Jerry Chu Signed-off-by: David S. Miller net/ipv4/ip_fragment.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit a798c24a69b64f09e2d323ac8155a36373e5d5fd Author: Lars-Peter Clausen Date: Tue Jul 21 11:51:35 2015 +0200 ASoC: dapm: Don't add prefix to widget stream name Commit fdb6eb0a1287 ("ASoC: dapm: Modify widget stream name according to prefix") fixed the case where a DAPM route between a DAI widget and a DAC/ADC/AIF widget with a matching stream name was not created when the DAPM context was using a prefix. Unfortunately the patch introduced a few issues on its own like leaking the dynamically allocated stream name memory and also not checking whether the allocation succeeded in the first place. It is also incomplete in that it still does not handle the case where stream name of the widget is a substring of the stream name of the DAI, which is explicitly allowed and works fine if no DAPM prefix is used. Revert the commit and take a slightly different approach to solving the issue. Instead of comparing the widget's stream name to the name of the DAI widget compare it to the stream name of the DAI widget. The stream name of the DAI widget is identical to the name of the DAI widget except that it wont have the DAPM prefix added. So this approach behaves identical regardless to whether the DAPM context uses a prefix or not. We don't have to worry about potentially matching with a widget with the same stream name, but from a different DAPM context with a different prefix, since the code already makes sure that both the DAI widget and the matched widget are from the same DAPM context. Fixes: fdb6eb0a1287 ("ASoC: dapm: Modify widget stream name according to prefix") Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown Cc: stable@vger.kernel.org sound/soc/soc-dapm.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) commit 648a9bc5308d952f2c80772301b339f73026f013 Author: Chris Wilson Date: Thu Jul 16 12:37:56 2015 +0100 drm/i915: Use two 32bit reads for select 64bit REG_READ ioctls Since the hardware sometimes mysteriously totally flummoxes the 64bit read of a 64bit register when read using a single instruction, split the read into two instructions. Since the read here is of automatically incrementing timestamp counters, we also have to be very careful in order to make sure that it does not increment between the two instructions. However, since userspace tried to workaround this issue and so enshrined this ABI for a broken hardware read and in the process neglected that the read only fails in some environments, we have to introduce a new uABI flag for userspace to request the 2x32 bit accurate read of the timestamp. v2: Fix alignment check and include details of the workaround for userspace. Reported-by: Karol Herbst Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91317 Testcase: igt/gem_reg_read Signed-off-by: Chris Wilson Cc: Michał Winiarski Cc: stable@vger.kernel.org Tested-by: Michał Winiarski Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_uncore.c | 26 +++++++++++++++++++------- include/uapi/drm/i915_drm.h | 8 ++++++++ 2 files changed, 27 insertions(+), 7 deletions(-) commit cba77f03f2c7b6cc0b0a44a3c679e0abade7da62 Author: Waiman Long Date: Sat Jul 11 21:19:19 2015 -0400 locking/pvqspinlock: Fix kernel panic in locking-selftest Enabling locking-selftest in a VM guest may cause the following kernel panic: kernel BUG at .../kernel/locking/qspinlock_paravirt.h:137! This is due to the fact that the pvqspinlock unlock function is expecting either a _Q_LOCKED_VAL or _Q_SLOW_VAL in the lock byte. This patch prevents that bug report by ignoring it when debug_locks_silent is set. Otherwise, a warning will be printed if it contains an unexpected value. With this patch applied, the kernel locking-selftest completed without any noise. Tested-by: Masami Hiramatsu Signed-off-by: Waiman Long Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1436663959-53092-1-git-send-email-Waiman.Long@hp.com Signed-off-by: Ingo Molnar kernel/locking/qspinlock_paravirt.h | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit cd369c2239dd08c273c0fafbbea44e3e0c509ebd Merge: f5530d5 4c62360 Author: Ingo Molnar Date: Tue Jul 21 09:52:51 2015 +0200 Merge tag 'efi-urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/mfleming/efi into x86/urgent Pull an EFI fix from Matt Fleming: - Fix a bug in the Common Platform Error Record (CPER) driver that caused old UEFI spec (< 2.3) versions of the memory error record structure to be declared invalid. (Tony Luck) Signed-off-by: Ingo Molnar commit f5530d5af835ffa82a0607f5f1977d63ac02551f Author: Luis R. Rodriguez Date: Fri Jul 17 14:07:25 2015 -0700 x86/mm/pat, drivers/media/ivtv: Move the PAT warning and replace WARN() with pr_warn() On built-in kernels this warning will always splat, even if no ivtvfb hardware is present, as this is part of the module init: if (WARN(pat_enabled(), "ivtvfb needs PAT disabled, boot with nopat kernel parameter\n")) { Fix that by shifting the PAT requirement check out under the code that does the "quasi-probe" for the device. This device driver relies on an existing driver to find its own devices, it looks for that device driver and its own found devices, then uses driver_for_each_device() to try to see if it can probe each of those devices as a frambuffer device with ivtvfb_init_card(). We tuck the PAT requiremenet check then on the ivtvfb_init_card() call making the check at least require an ivtv device present before complaining. Reported-by: Fengguang Wu [0-day test robot] Signed-off-by: Luis R. Rodriguez Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: andy@silverblocksystems.net Cc: benh@kernel.crashing.org Cc: bp@suse.de Cc: dan.j.williams@intel.com Cc: dledford@redhat.com Cc: jkosina@suse.cz Cc: julia.lawall@lip6.fr Cc: luto@amacapital.net Cc: mchehab@osg.samsung.com Link: http://lkml.kernel.org/r/1437167245-28273-3-git-send-email-mcgrof@do-not-panic.com Signed-off-by: Ingo Molnar drivers/media/pci/ivtv/ivtvfb.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) commit fd0a1b8607ef311a2c800dd54c9a4a3583756ea6 Author: Luis R. Rodriguez Date: Fri Jul 17 14:07:24 2015 -0700 x86/mm/pat, drivers/infiniband/ipath: Replace WARN() with pr_warn() WARN() may confuse users, fix that. ipath_init_one() is part the device's probe so this would only be triggered if a corresponding device was found. Signed-off-by: Luis R. Rodriguez Acked-by: Doug Ledford Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: andy@silverblocksystems.net Cc: benh@kernel.crashing.org Cc: bp@suse.de Cc: dan.j.williams@intel.com Cc: jkosina@suse.cz Cc: julia.lawall@lip6.fr Cc: luto@amacapital.net Cc: mchehab@osg.samsung.com Link: http://lkml.kernel.org/r/1437167245-28273-2-git-send-email-mcgrof@do-not-panic.com Signed-off-by: Ingo Molnar drivers/infiniband/hw/ipath/ipath_driver.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 6c3d91193d829bf58a35a10650415b05a736ca6c Author: Aaron Plattner Date: Mon Jul 20 17:14:14 2015 -0700 ALSA: hda - Add new GPU codec ID 0x10de007d to snd-hda Vendor ID 0x10de007d is used by a yet-to-be-named GPU chip. This chip also has the 2-ch audio swapping bug, so patch_nvhdmi is appropriate here. Signed-off-by: Aaron Plattner Cc: Signed-off-by: Takashi Iwai sound/pci/hda/patch_hdmi.c | 2 ++ 1 file changed, 2 insertions(+) commit a84e32894191cfcbffa54180d78d7d4654d56c20 Author: Simon Guinot Date: Sun Jul 19 13:00:53 2015 +0200 net: mvneta: fix refilling for Rx DMA buffers With the actual code, if a memory allocation error happens while refilling a Rx descriptor, then the original Rx buffer is both passed to the networking stack (in a SKB) and let in the Rx ring. This leads to various kernel oops and crashes. As a fix, this patch moves Rx descriptor refilling ahead of building SKB with the associated Rx buffer. In case of a memory allocation failure, data is dropped and the original DMA buffer is put back into the Rx ring. Signed-off-by: Simon Guinot Fixes: c5aff18204da ("net: mvneta: driver for Marvell Armada 370/XP network unit") Cc: # v3.8+ Tested-by: Yoann Sculo Signed-off-by: David S. Miller drivers/net/ethernet/marvell/mvneta.c | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) commit a7a6268590bdc6760df52570a1df41654e3096ba Author: Joachim Eastwood Date: Fri Jul 17 23:48:17 2015 +0200 stmmac: fix setting of driver data in stmmac_dvr_probe Commit 803f8fc46274b ("stmmac: move driver data setting into stmmac_dvr_probe") mistakenly set priv and not priv->dev as driver data. This meant that the remove, resume and suspend callbacks that fetched and tried to use this data would most likely explode. Fix the issue by using the correct variable. Fixes: 803f8fc46274b ("stmmac: move driver data setting into stmmac_dvr_probe") Signed-off-by: Joachim Eastwood Signed-off-by: David S. Miller drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 053c26f3f9201d04c75f991fec1bcee68d9e2821 Merge: 27dfead 32b2f4b Author: David S. Miller Date: Tue Jul 21 00:25:03 2015 -0700 Merge branch 'sch_panic' Daniel Borkmann says: ==================== Couple of classifier fixes This fixes a couple of panics in the form of (analogous for cls_flow{,er}): [ 912.759276] BUG: unable to handle kernel NULL pointer dereference at (null) [ 912.759373] IP: [] cls_bpf_change+0x23d/0x268 [cls_bpf] [ 912.759441] PGD 8783c067 PUD 5f684067 PMD 0 [ 912.759491] Oops: 0002 [#1] SMP DEBUG_PAGEALLOC [ 912.759543] Modules linked in: cls_bpf(E) act_gact [...] [ 912.772734] CPU: 3 PID: 10489 Comm: tc Tainted: G W E 4.2.0-rc2+ #73 [ 912.775004] Hardware name: Apple Inc. MacBookAir5,1/Mac-66F35F19FE2A0D05, BIOS MBA51.88Z.00EF.B02.1211271028 11/27/2012 [ 912.777327] task: ffff88025eaa8000 ti: ffff88005f734000 task.ti: ffff88005f734000 [ 912.779662] RIP: 0010:[] [] cls_bpf_change+0x23d/0x268 [cls_bpf] [ 912.781991] RSP: 0018:ffff88005f7379c8 EFLAGS: 00010286 [ 912.784183] RAX: ffff880201d64e48 RBX: 0000000000000000 RCX: ffff880201d64e40 [ 912.786402] RDX: 0000000000000000 RSI: ffffffffa09d51c0 RDI: ffffffffa09d51a6 [ 912.788625] RBP: ffff88005f737a68 R08: 0000000000000000 R09: 0000000000000000 [ 912.790854] R10: 0000000000000001 R11: 0000000000000001 R12: ffff880078ab5a80 [ 912.793082] R13: ffff880232b31570 R14: ffff88005f737ae0 R15: ffff8801e215d1d0 [ 912.795181] FS: 00007f3c0c80d740(0000) GS:ffff880265400000(0000) knlGS:0000000000000000 [ 912.797281] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 912.799402] CR2: 0000000000000000 CR3: 000000005460f000 CR4: 00000000001407e0 [ 912.799403] Stack: [ 912.799407] ffffffff00000000 ffff88023ea18000 000000005f737a08 0000000000000000 [ 912.799415] ffffffff81f06140 ffff880201d64e40 0000000000000000 ffff88023ea1804c [ 912.799418] 0000000000000000 ffff88023ea18044 ffff88023ea18030 ffff88023ea18038 [ 912.799418] Call Trace: [ 912.799437] [] tc_ctl_tfilter+0x335/0x910 [ 912.799443] [] ? security_capable+0x48/0x60 [ 912.799448] [] rtnetlink_rcv_msg+0x95/0x240 [ 912.799454] [] ? trace_hardirqs_on+0xd/0x10 [ 912.799456] [] ? rtnetlink_rcv+0x1f/0x40 [ 912.799459] [] ? rtnetlink_rcv+0x1f/0x40 [ 912.799461] [] ? rtnetlink_rcv+0x40/0x40 [ 912.799464] [] netlink_rcv_skb+0xaf/0xc0 [ 912.799467] [] rtnetlink_rcv+0x2e/0x40 [ 912.799469] [] netlink_unicast+0xef/0x1b0 [ 912.799471] [] netlink_sendmsg+0x3f0/0x620 [ 912.799476] [] sock_sendmsg+0x38/0x50 [ 912.799479] [] ___sys_sendmsg+0x288/0x290 [ 912.799482] [] ? __lock_acquire+0x572/0x2050 [ 912.799488] [] ? native_sched_clock+0x2b/0x90 [ 912.799493] [] ? __audit_syscall_entry+0xaf/0x100 [ 912.799497] [] ? __audit_syscall_entry+0xaf/0x100 [ 912.799501] [] ? current_kernel_time+0x69/0xd0 [ 912.799505] [] ? __fget_light+0x66/0x90 [ 912.799508] [] __sys_sendmsg+0x42/0x80 [ 912.799510] [] SyS_sendmsg+0x12/0x20 [ 912.799515] [] entry_SYSCALL_64_fastpath+0x12/0x76 [ 912.799540] Code: 4d 88 49 8b 57 08 48 89 51 08 49 8b 57 10 48 89 c8 48 83 c0 08 48 89 51 10 48 8b 51 10 48 c7 c6 c0 51 9d a0 48 c7 c7 a6 51 9d a0 <48> 89 02 48 8b 51 08 48 89 42 08 48 b8 00 02 20 00 00 00 ad de [ 912.799544] RIP [] cls_bpf_change+0x23d/0x268 [cls_bpf] [ 912.799544] RSP [ 912.799545] CR2: 0000000000000000 [ 912.807380] ---[ end trace a6440067cfdc7c29 ]--- I've split them into 3 patches, so they can be backported easier when needed. ==================== Signed-off-by: David S. Miller commit 32b2f4b196b37695fdb42b31afcbc15399d6ef91 Author: Daniel Borkmann Date: Fri Jul 17 22:38:45 2015 +0200 sched: cls_flow: fix panic on filter replace The following test case causes a NULL pointer dereference in cls_flow: tc filter add dev foo parent 1: handle 0x1 flow hash keys dst action ok tc filter replace dev foo parent 1: pref 49152 handle 0x1 \ flow hash keys mark action drop To be more precise, actually two different panics are fixed, the first occurs because tcf_exts_init() is not called on the newly allocated filter when we do a replace. And the second panic uncovered after that happens since the arguments of list_replace_rcu() are swapped, the old element needs to be the first argument and the new element the second. Fixes: 70da9f0bf999 ("net: sched: cls_flow use RCU") Signed-off-by: Daniel Borkmann Acked-by: John Fastabend Signed-off-by: David S. Miller net/sched/cls_flow.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit ff3532f2655b79058fec035ca54fced69a483084 Author: Daniel Borkmann Date: Fri Jul 17 22:38:44 2015 +0200 sched: cls_flower: fix panic on filter replace The following test case causes a NULL pointer dereference in cls_flower: tc filter add dev foo parent 1: flower eth_type ipv4 action ok flowid 1:1 tc filter replace dev foo parent 1: pref 49152 handle 0x1 \ flower eth_type ipv6 action ok flowid 1:1 The problem is that commit 77b9900ef53a ("tc: introduce Flower classifier") accidentally swapped the arguments of list_replace_rcu(), the old element needs to be the first argument and the new element the second. Fixes: 77b9900ef53a ("tc: introduce Flower classifier") Signed-off-by: Daniel Borkmann Acked-by: Jiri Pirko Signed-off-by: David S. Miller net/sched/cls_flower.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f6bfc46da6292b630ba389592123f0dd02066172 Author: Daniel Borkmann Date: Fri Jul 17 22:38:43 2015 +0200 sched: cls_bpf: fix panic on filter replace The following test case causes a NULL pointer dereference in cls_bpf: FOO="1,6 0 0 4294967295," tc filter add dev foo parent 1: bpf bytecode "$FOO" flowid 1:1 action ok tc filter replace dev foo parent 1: pref 49152 handle 0x1 \ bpf bytecode "$FOO" flowid 1:1 action drop The problem is that commit 1f947bf151e9 ("net: sched: rcu'ify cls_bpf") accidentally swapped the arguments of list_replace_rcu(), the old element needs to be the first argument and the new element the second. Fixes: 1f947bf151e9 ("net: sched: rcu'ify cls_bpf") Signed-off-by: Daniel Borkmann Acked-by: John Fastabend Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller net/sched/cls_bpf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 27dfead164451971f2c3778857b43690e7afaa8b Merge: e0536cd 923b352 Author: David S. Miller Date: Tue Jul 21 00:17:53 2015 -0700 Merge tag 'mac80211-for-davem-2015-07-17' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211 Johannes Berg says: ==================== Some fixes for the current cycle: 1. Arik introduced an rtnl-locked regulatory API to be able to differentiate between place do/don't have the RTNL; this fixes missing locking in some of the code paths 2. Two small mesh bugfixes from Bob, one to avoid treating a certain malformed over-the-air frame and one to avoid sending a garbage field over the air. 3. A fix for powersave during WoWLAN suspend from Krishna Chaitanya. 4. A fix for a powersave vs. aggregation teardown race, from Michal. 5. Thomas reduced the loglevel of CRDA messages to avoid spamming the kernel log with mostly irrelevant information. 6. Tom fixed a dangling debugfs directory pointer that could cause crashes if subsequent addition of the same interface to debugfs failed for some reason. 7. A fix from myself for a list corruption issue in mac80211 during combined interface shutdown/removal - shut down interfaces first and only then remove them to avoid that. ==================== Signed-off-by: David S. Miller commit e0536cd910d5bc98300d7830f1d9317df9ab8afa Author: Shaohui Xie Date: Fri Jul 17 18:07:19 2015 +0800 net/mdio: fix mdio_bus_match for c45 PHY We store c45 PHY's id information in c45_ids, so it should be used to check the matching between PHY driver and PHY device for c45 PHY. Signed-off-by: Shaohui Xie Signed-off-by: David S. Miller drivers/net/phy/mdio_bus.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) commit 8bf4ada2e21378816b28205427ee6b0e1ca4c5f1 Author: Konstantin Khlebnikov Date: Fri Jul 17 14:01:11 2015 +0300 net: ratelimit warnings about dst entry refcount underflow or overflow Kernel generates a lot of warnings when dst entry reference counter overflows and becomes negative. That bug was seen several times at machines with outdated 3.10.y kernels. Most like it's already fixed in upstream. Anyway that flood completely kills machine and makes further debugging impossible. Signed-off-by: Konstantin Khlebnikov Signed-off-by: David S. Miller net/core/dst.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit b8a23e8d8e31abeda2f6cfa36a772414b2a86ffc Author: Eric Dumazet Date: Fri Jul 17 10:19:23 2015 +0200 caif: fix leaks and race in caif_queue_rcv_skb() 1) If sk_filter() is applied, skb was leaked (not freed) 2) Testing SOCK_DEAD twice is racy : packet could be freed while already queued. 3) Remove obsolete comment about caching skb->len Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller net/caif/caif_socket.c | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) commit ca1fec58bc6a90be96a59b4769e951156846c6ca Author: Jan Beulich Date: Mon Jul 20 08:46:14 2015 +0100 x86/mm/pat: Adjust default caching mode translation tables Make WT really mean WT (rather than UC). I can't see why commit 9cd25aac1f ("x86/mm/pat: Emulate PAT when it is disabled") didn't make this to match its changes to pat_init(). Signed-off-by: Jan Beulich Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Toshi Kani Link: http://lkml.kernel.org/r/55ACC3660200007800092E62@mail.emea.novell.com Signed-off-by: Ingo Molnar arch/x86/mm/init.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 5bc016f1abaa1c5ac0e3af23aa79faec4634a074 Author: Jan Beulich Date: Mon Jul 20 08:49:01 2015 +0100 x86/fpu: Disable dependent CPU features on "noxsave" Complete the set of dependent features that need disabling at once: XSAVEC, AVX-512 and all currently known to the kernel extensions to it, as well as MPX need to be disabled too. Signed-off-by: Jan Beulich Cc: Dave Hansen Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/55ACC40D0200007800092E6C@mail.emea.novell.com Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/init.c | 6 ++++++ 1 file changed, 6 insertions(+) commit a89652769470d12cd484ee3d3f7bde0742be8d96 Author: Kirill A. Shutemov Date: Mon Jul 20 14:29:58 2015 -0700 x86/mpx: Do not set ->vm_ops on MPX VMAs MPX setups private anonymous mapping, but uses vma->vm_ops too. This can confuse core VM, as it relies on vm->vm_ops to distinguish file VMAs from anonymous. As result we will get SIGBUS, because handle_pte_fault() thinks it's file VMA without vm_ops->fault and it doesn't know how to handle the situation properly. Let's fix that by not setting ->vm_ops. We don't really need ->vm_ops here: MPX VMA can be detected with VM_MPX flag. And vma_merge() will not merge MPX VMA with non-MPX VMA, because ->vm_flags won't match. The only thing left is name of VMA. I'm not sure if it's part of ABI, or we can just drop it. The patch keep it by providing arch_vma_name() on x86. Signed-off-by: Kirill A. Shutemov Signed-off-by: Dave Hansen Cc: # Fixes: 6b7339f4 (mm: avoid setting up anonymous pages into file mapping) Cc: Andy Lutomirski Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: dave@sr71.net Link: http://lkml.kernel.org/r/20150720212958.305CC3E9@viggo.jf.intel.com Signed-off-by: Ingo Molnar arch/x86/mm/mmap.c | 7 +++++++ arch/x86/mm/mpx.c | 24 +++--------------------- 2 files changed, 10 insertions(+), 21 deletions(-) commit bbc03778b9954a2ec93baed63718e4df0192f130 Author: Dave Hansen Date: Mon Jul 20 16:01:53 2015 -0700 x86/mm: Add parenthesis for TLB tracepoint size calculation flush_tlb_info->flush_start/end are both normal virtual addresses. When calculating 'nr_pages' (only used for the tracepoint), I neglected to put parenthesis in. Thanks to David Koufaty for pointing this out. Signed-off-by: Dave Hansen Cc: Andrew Morton Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: dave@sr71.net Cc: Link: http://lkml.kernel.org/r/20150720230153.9E834081@viggo.jf.intel.com Signed-off-by: Ingo Molnar arch/x86/mm/tlb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e3426ca7bc2957ee072f61360c2b81b4adb629ad Author: Reinhard Speyerer Date: Thu Jul 16 23:28:14 2015 +0200 qmi_wwan: add the second QMI/network interface for Sierra Wireless MC7305/MC7355 Sierra Wireless MC7305/MC7355 with USB ID 1199:9041 also provide a second QMI/network interface like the MC73xx with USB ID 1199:68c0 on USB interface #10 when used in the appropriate USB configuration. Add the corresponding QMI_FIXED_INTF entry to the qmi_wwan driver. Please note that the second QMI/network interface is not working for early MC73xx firmware versions like 01.08.x as the device does not respond to QMI messages on the second /dev/cdc-wdm port. Signed-off-by: Reinhard Speyerer Signed-off-by: David S. Miller drivers/net/usb/qmi_wwan.c | 1 + 1 file changed, 1 insertion(+) commit 06613e38f1f2b098d46e9549756c0d5c040f2ef8 Author: Sergei Shtylyov Date: Fri Jul 17 00:28:38 2015 +0300 ravb: fix race updating TCCR The TCCR.TSRQn bit may get clearead after TCCR gets read, so that TCCR write would get skipped. We don't need to check this bit before setting. Signed-off-by: Sergei Shtylyov Signed-off-by: David S. Miller drivers/net/ethernet/renesas/ravb_main.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 194ac06e39238685abc0eeb436efa82e6571b90f Author: Karicheri, Muralidharan Date: Thu Jul 16 15:32:14 2015 -0400 net: netcp: fix improper initialization in netcp_ndo_open() The keystone qmss will raise interrupt when packet arrive at the receive queue. Only control available to avoid interrupt from happening is to keep the free descriptor queue (FDQ) empty in the receive side. So the filling of descriptors into the FDQ has to happen after request_irq() call is made as part of knav_queue_enable_notify(). So move the function netcp_rxpool_refill() after this call. 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 300bde79f3d86b1af6fcde7b7b2439ecffccbff4 Author: Thomas Abraham Date: Fri Apr 3 18:43:47 2015 +0200 ARM: dts: add CPU OPP and regulator supply property for exynos4210 For Exynos4210 platforms, add CPU operating points and CPU regulator supply properties for migrating from Exynos specific cpufreq driver to using generic cpufreq driver. Cc: Doug Anderson Cc: Andreas Faerber Cc: Sachin Kamat Cc: Andreas Farber Cc: Javier Martinez Canillas Signed-off-by: Thomas Abraham [b.zolnierkie: removed exynos5250 and exynos5420 support for now] Signed-off-by: Bartlomiej Zolnierkiewicz [k.kozlowski: Rebased, moved cpu nodes to alphabetical position] Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos4210-origen.dts | 4 ++++ arch/arm/boot/dts/exynos4210-trats.dts | 4 ++++ arch/arm/boot/dts/exynos4210-universal_c210.dts | 4 ++++ arch/arm/boot/dts/exynos4210.dtsi | 12 ++++++++++++ 4 files changed, 24 insertions(+) commit 1342ff45bd4a43d4ef058aa419399437461f3c88 Author: Beata Michalska Date: Mon Jun 15 10:12:46 2015 +0200 ARM: dts: Update video-phy node with syscon phandle for exynos3250 As a follow-up to recent changes to Exynos mipi video phy driver, introducing support for PMU regmap in commit e4b3d38088df ("phy: exynos-video-mipi: Fix regression by adding support for PMU regmap") add a syscon phandle to video-phy node to bring back to life both MIPI DSI display and MIPI CSIS-2 camera sensor on Exynos3250. Signed-off-by: Beata Michalska Reviewed-by: Javier Martinez Canillas Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos3250.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a951bc1e6ba58f11df5ed5ddc41311e10f5fd20b Author: dingtianhong Date: Thu Jul 16 16:30:02 2015 +0800 bonding: correct the MAC address for "follow" fail_over_mac policy The "follow" fail_over_mac policy is useful for multiport devices that either become confused or incur a performance penalty when multiple ports are programmed with the same MAC address, but the same MAC address still may happened by this steps for this policy: 1) echo +eth0 > /sys/class/net/bond0/bonding/slaves bond0 has the same mac address with eth0, it is MAC1. 2) echo +eth1 > /sys/class/net/bond0/bonding/slaves eth1 is backup, eth1 has MAC2. 3) ifconfig eth0 down eth1 became active slave, bond will swap MAC for eth0 and eth1, so eth1 has MAC1, and eth0 has MAC2. 4) ifconfig eth1 down there is no active slave, and eth1 still has MAC1, eth2 has MAC2. 5) ifconfig eth0 up the eth0 became active slave again, the bond set eth0 to MAC1. Something wrong here, then if you set eth1 up, the eth0 and eth1 will have the same MAC address, it will break this policy for ACTIVE_BACKUP mode. This patch will fix this problem by finding the old active slave and swap them MAC address before change active slave. Signed-off-by: Ding Tianhong Tested-by: Nikolay Aleksandrov Signed-off-by: David S. Miller drivers/net/bonding/bond_main.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit 686c953ea98800ee4e90e5e5b970e2151ec0a8e8 Merge: fdbf5b0 69da3f2 Author: David S. Miller Date: Mon Jul 20 20:25:59 2015 -0700 Merge tag 'linux-can-fixes-for-4.2-20150716' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can Marc Kleine-Budde says: ==================== pull-request: can 2015-07-16 this is a pull request of 2 patches by Stefan Agner. He fixes the resume operation in the mcp251x driver. ==================== Signed-off-by: David S. Miller commit fee50f3c8427aacabfb603229bf0a9056c3f2638 Author: Darren Hart Date: Mon Jul 20 15:48:37 2015 -0700 selftests/futex: Fix futex_cmp_requeue_pi() error handling An earlier (pre-kernel-integration) refactoring of this code mistakenly replaced the error condition, <, with a >. Use < to detect an error as opposed to a successful requeue or signal race. Reported-by: David Binderman Cc: Shuah Khan Signed-off-by: Darren Hart Signed-off-by: Shuah Khan .../selftests/futex/functional/futex_requeue_pi_signal_restart.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fdbf5b097bbd9693a86c0b8bfdd071a9a2117cfc Author: Herbert Xu Date: Mon Jul 20 17:55:38 2015 +0800 Revert "sit: Add gro callbacks to sit_offload" This patch reverts 19424e052fb44da2f00d1a868cbb51f3e9f4bbb5 ("sit: Add gro callbacks to sit_offload") because it generates packets that cannot be handled even by our own GSO. Reported-by: Wolfgang Walter Signed-off-by: Herbert Xu Signed-off-by: David S. Miller net/ipv6/ip6_offload.c | 2 -- 1 file changed, 2 deletions(-) commit b8c6cd1d316f3b01ae578d8e29179f6396c0eaa2 Author: Florian Fainelli Date: Wed Jul 15 16:09:32 2015 -0700 net: dsa: bcm_sf2: do not use indirect reads and writes for 7445E0 7445E0 contains an ECO which disconnected the internal SF2 pseudo-PHY which was known to conflict with the external pseudo-PHY of BCM53125 switches. This motivated the need to utilize the internal SF2 MDIO controller via indirect register reads/writes to control external Broadcom switches due to this address conflict (both responded at address 30d). For 7445E0, the internal pseudo-PHY of the SF2 switch got disconnected, and as a consequence this prevents the internal SF2 MDIO bus controller from reading data (reads back everything as 0) since the MDI line is tied low. Fix this by making the indirect register reads and writes conditional to 7445D0, on 7445E0 we can utilize the SWITCH_MDIO controller (backed by mdio-unimac and not the DSA created slave MII bus). We utilize of_machine_is_compatible() here since this is the only way for use to differentiate between these two chips in a way that does not violate layers or becomes (too) vendor-specific. Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/dsa/bcm_sf2.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) commit 7d5cd2ce5292b45e555de776cb9e72975a07460d Author: Nikolay Aleksandrov Date: Wed Jul 15 22:57:01 2015 +0200 bonding: correctly handle bonding type change on enslave failure If the bond is enslaving a device with different type it will be setup by it, but if after being setup the enslave fails the bond doesn't switch back its type and also keeps pointers to foreign structures that can be long gone. Thus revert back any type changes if the enslave failed and the bond had to change its type. Example: Before patch: $ echo lo > bond0/bonding/slaves -bash: echo: write error: Cannot assign requested address $ ip l sh bond0 20: bond0: mtu 1500 qdisc noop state DOWN mode DEFAULT group default link/loopback 16:54:78:34:bd:41 brd 00:00:00:00:00:00 $ echo +eth1 > bond0/bonding/slaves $ ip l sh bond0 20: bond0: mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/ether 52:54:00:3f:47:69 brd ff:ff:ff:ff:ff:ff (notice the MASTER flag is gone) After patch: $ echo lo > bond0/bonding/slaves -bash: echo: write error: Cannot assign requested address $ ip l sh bond0 21: bond0: mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/ether 6e:66:94:f6:07:fc brd ff:ff:ff:ff:ff:ff $ echo +eth1 > bond0/bonding/slaves $ ip l sh bond0 21: bond0: mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/ether 52:54:00:3f:47:69 brd ff:ff:ff:ff:ff:ff Signed-off-by: Nikolay Aleksandrov Fixes: e36b9d16c6a6 ("bonding: clean muticast addresses when device changes type") Signed-off-by: David S. Miller drivers/net/bonding/bond_main.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) commit 8c4b4b0d19880354864f7720ee5e4e7ab11859d2 Author: Boris Brezillon Date: Thu Jul 16 20:55:34 2015 +0200 drm: atmel-hlcdc: fix vblank initial state drm_vblank_on() now warns on nested use or if vblank is not properly initialized. This patch fixes Atmel HLCDC vblank initial state. Signed-off-by: Boris Brezillon Reported-by: Sylvain Rochet drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c | 1 + drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | 12 ++++++------ 2 files changed, 7 insertions(+), 6 deletions(-) commit 06f6d1094aa0992432b1e2a0920b0ee86ccd83bf Author: Nikolay Aleksandrov Date: Wed Jul 15 21:52:51 2015 +0200 bonding: fix destruction of bond with devices different from arphrd_ether When the bonding is being unloaded and the netdevice notifier is unregistered it executes NETDEV_UNREGISTER for each device which should remove the bond's proc entry but if the device enslaved is not of ARPHRD_ETHER type and is in front of the bonding, it may execute bond_release_and_destroy() first which would release the last slave and destroy the bond device leaving the proc entry and thus we will get the following error (with dynamic debug on for bond_netdev_event to see the events order): [ 908.963051] eql: event: 9 [ 908.963052] eql: IFF_SLAVE [ 908.963054] eql: event: 2 [ 908.963056] eql: IFF_SLAVE [ 908.963058] eql: event: 6 [ 908.963059] eql: IFF_SLAVE [ 908.963110] bond0: Releasing active interface eql [ 908.976168] bond0: Destroying bond bond0 [ 908.976266] bond0 (unregistering): Released all slaves [ 908.984097] ------------[ cut here ]------------ [ 908.984107] WARNING: CPU: 0 PID: 1787 at fs/proc/generic.c:575 remove_proc_entry+0x112/0x160() [ 908.984110] remove_proc_entry: removing non-empty directory 'net/bonding', leaking at least 'bond0' [ 908.984111] Modules linked in: bonding(-) eql(O) 9p nfsd auth_rpcgss oid_registry nfs_acl nfs lockd grace fscache sunrpc crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel ppdev qxl drm_kms_helper snd_hda_codec_generic aesni_intel ttm aes_x86_64 glue_helper pcspkr lrw gf128mul ablk_helper cryptd snd_hda_intel virtio_console snd_hda_codec psmouse serio_raw snd_hwdep snd_hda_core 9pnet_virtio 9pnet evdev joydev drm virtio_balloon snd_pcm snd_timer snd soundcore i2c_piix4 i2c_core pvpanic acpi_cpufreq parport_pc parport processor thermal_sys button autofs4 ext4 crc16 mbcache jbd2 hid_generic usbhid hid sg sr_mod cdrom ata_generic virtio_blk virtio_net floppy ata_piix e1000 libata ehci_pci virtio_pci scsi_mod uhci_hcd ehci_hcd virtio_ring virtio usbcore usb_common [last unloaded: bonding] [ 908.984168] CPU: 0 PID: 1787 Comm: rmmod Tainted: G W O 4.2.0-rc2+ #8 [ 908.984170] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 [ 908.984172] 0000000000000000 ffffffff81732d41 ffffffff81525b34 ffff8800358dfda8 [ 908.984175] ffffffff8106c521 ffff88003595af78 ffff88003595af40 ffff88003e3a4280 [ 908.984178] ffffffffa058d040 0000000000000000 ffffffff8106c59a ffffffff8172ebd0 [ 908.984181] Call Trace: [ 908.984188] [] ? dump_stack+0x40/0x50 [ 908.984193] [] ? warn_slowpath_common+0x81/0xb0 [ 908.984196] [] ? warn_slowpath_fmt+0x4a/0x50 [ 908.984199] [] ? remove_proc_entry+0x112/0x160 [ 908.984205] [] ? bond_destroy_proc_dir+0x26/0x30 [bonding] [ 908.984208] [] ? bond_net_exit+0x8e/0xa0 [bonding] [ 908.984217] [] ? ops_exit_list.isra.4+0x37/0x70 [ 908.984225] [] ? unregister_pernet_operations+0x8d/0xd0 [ 908.984228] [] ? unregister_pernet_subsys+0x1d/0x30 [ 908.984232] [] ? bonding_exit+0x23/0xdba [bonding] [ 908.984236] [] ? SyS_delete_module+0x18a/0x250 [ 908.984241] [] ? task_work_run+0x89/0xc0 [ 908.984244] [] ? entry_SYSCALL_64_fastpath+0x16/0x75 [ 908.984247] ---[ end trace 7c006ed4abbef24b ]--- Thus remove the proc entry manually if bond_release_and_destroy() is used. Because of the checks in bond_remove_proc_entry() it's not a problem for a bond device to change namespaces (the bug fixed by the Fixes commit) but since commit f9399814927ad ("bonding: Don't allow bond devices to change network namespaces.") that can't happen anyway. Reported-by: Carol Soto Signed-off-by: Nikolay Aleksandrov Fixes: a64d49c3dd50 ("bonding: Manage /proc/net/bonding/ entries from the netdev events") Tested-by: Carol L Soto Signed-off-by: David S. Miller drivers/net/bonding/bond_main.c | 1 + 1 file changed, 1 insertion(+) commit 40a7166044a6fce3dbcaa8b5c89845980c218c98 Author: Vivien Didelot Date: Wed Jul 15 10:07:07 2015 -0400 net: dsa: mv88e6xxx: fix fid_mask when leaving bridge The mv88e6xxx_priv_state structure contains an fid_mask, where 1 means the FID is free to use, 0 means the FID is in use. This patch fixes the bit clear in mv88e6xxx_leave_bridge() when assigning a new FID to a port. Example scenario: I have 7 ports, port 5 is CPU, port 6 is unused (no PHY). After setting the ports 0, 1 and 2 in bridge br0, and ports 3 and 4 in bridge br1, I have the following fid_mask: 0b111110010110 (0xf96). Indeed, br0 uses FID 0, and br1 uses FID 3. After setting nomaster for port 0, I get the wrong fid_mask: 0b10 (0x2). With this patch we correctly get 0b111110010100 (0xf94), meaning port 0 uses FID 1, br0 uses FID 0, and br1 uses FID 3. Signed-off-by: Vivien Didelot Reviewed-by: Guenter Roeck Signed-off-by: David S. Miller drivers/net/dsa/mv88e6xxx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 75993300d008f418ee2569a632185fc1d7d50674 Author: Michael S. Tsirkin Date: Wed Jul 15 15:26:19 2015 +0300 virtio_net: don't require ANY_LAYOUT with VERSION_1 ANY_LAYOUT is a compatibility feature. It's implied for VERSION_1 devices, and non-transitional devices might not offer it. Change code to behave accordingly. Signed-off-by: Michael S. Tsirkin Reviewed-by: Paolo Bonzini Reviewed-by: Stefan Hajnoczi Signed-off-by: David S. Miller drivers/net/virtio_net.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 9d634c410b07be7bf637ea03362d3ff132088fe3 Merge: d7f430d 3827ec3 Author: Linus Torvalds Date: Mon Jul 20 12:18:40 2015 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux Pull s390 fix from Martin Schwidefsky: "Fast path fix for the thread_struct breakage" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: s390: adapt entry.S to the move of thread_struct commit d7f430d450d333cbb404e232fb1c74f31f8c6356 Merge: 52721d9 09adcdf Author: Linus Torvalds Date: Mon Jul 20 12:17:55 2015 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/egtvedt/linux-avr32 Pull AVR32 update from Hans-Christian Egtvedt. * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/egtvedt/linux-avr32: AVR32/time: Migrate to new 'set-state' interface commit 1ca4b88e7de23f6f86d2009101fe42d5b9dbf3de Author: Kinglong Mee Date: Thu Jul 9 17:38:26 2015 +0800 nfsd: Fix a file leak on nfsd4_layout_setlease failure If nfsd4_layout_setlease fails, nfsd will not put ls->ls_file. Fix commit c5c707f96f "nfsd: implement pNFS layout recalls". Signed-off-by: Kinglong Mee Signed-off-by: J. Bruce Fields fs/nfsd/nfs4layouts.c | 1 + 1 file changed, 1 insertion(+) commit c2227a39a078473115910512aa0f8d53bd915e60 Author: Kinglong Mee Date: Tue Jul 7 10:16:37 2015 +0800 nfsd: Drop BUG_ON and ignore SECLABEL on absent filesystem On an absent filesystem (one served by another server), we need to be able to handle requests for certain attributest (like fs_locations, so the client can find out which server does have the filesystem), but others we can't. We forgot to take that into account when adding another attribute bitmask work for the SECURITY_LABEL attribute. There an export entry with the "refer" option can result in: [ 88.414272] kernel BUG at fs/nfsd/nfs4xdr.c:2249! [ 88.414828] invalid opcode: 0000 [#1] SMP [ 88.415368] Modules linked in: rpcsec_gss_krb5 nfsv4 dns_resolver nfs fscache nfsd xfs libcrc32c iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi iosf_mbi ppdev btrfs coretemp crct10dif_pclmul crc32_pclmul crc32c_intel xor ghash_clmulni_intel raid6_pq vmw_balloon parport_pc parport i2c_piix4 shpchp vmw_vmci acpi_cpufreq auth_rpcgss nfs_acl lockd grace sunrpc vmwgfx drm_kms_helper ttm drm mptspi mptscsih serio_raw mptbase e1000 scsi_transport_spi ata_generic pata_acpi [last unloaded: nfsd] [ 88.417827] CPU: 0 PID: 2116 Comm: nfsd Not tainted 4.0.7-300.fc22.x86_64 #1 [ 88.418448] Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 05/20/2014 [ 88.419093] task: ffff880079146d50 ti: ffff8800785d8000 task.ti: ffff8800785d8000 [ 88.419729] RIP: 0010:[] [] nfsd4_encode_fattr+0x820/0x1f00 [nfsd] [ 88.420376] RSP: 0000:ffff8800785db998 EFLAGS: 00010206 [ 88.421027] RAX: 0000000000000001 RBX: 000000000018091a RCX: ffff88006668b980 [ 88.421676] RDX: 00000000fffef7fc RSI: 0000000000000000 RDI: ffff880078d05000 [ 88.422315] RBP: ffff8800785dbb58 R08: ffff880078d043f8 R09: ffff880078d4a000 [ 88.422968] R10: 0000000000010000 R11: 0000000000000002 R12: 0000000000b0a23a [ 88.423612] R13: ffff880078d05000 R14: ffff880078683100 R15: ffff88006668b980 [ 88.424295] FS: 0000000000000000(0000) GS:ffff88007c600000(0000) knlGS:0000000000000000 [ 88.424944] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 88.425597] CR2: 00007f40bc370f90 CR3: 0000000035af5000 CR4: 00000000001407f0 [ 88.426285] Stack: [ 88.426921] ffff8800785dbaa8 ffffffffa049e4af ffff8800785dba08 ffffffff813298f0 [ 88.427585] ffff880078683300 ffff8800769b0de8 0000089d00000001 0000000087f805e0 [ 88.428228] ffff880000000000 ffff880079434a00 0000000000000000 ffff88006668b980 [ 88.428877] Call Trace: [ 88.429527] [] ? exp_get_by_name+0x7f/0xb0 [nfsd] [ 88.430168] [] ? inode_doinit_with_dentry+0x210/0x6a0 [ 88.430807] [] ? d_lookup+0x2e/0x60 [ 88.431449] [] ? dput+0x33/0x230 [ 88.432097] [] ? mntput+0x24/0x40 [ 88.432719] [] ? path_put+0x22/0x30 [ 88.433340] [] ? nfsd_cross_mnt+0xb7/0x1c0 [nfsd] [ 88.433954] [] nfsd4_encode_dirent+0x1b0/0x3d0 [nfsd] [ 88.434601] [] ? nfsd4_encode_getattr+0x40/0x40 [nfsd] [ 88.435172] [] nfsd_readdir+0x1c1/0x2a0 [nfsd] [ 88.435710] [] ? nfsd_direct_splice_actor+0x20/0x20 [nfsd] [ 88.436447] [] nfsd4_encode_readdir+0x120/0x220 [nfsd] [ 88.437011] [] nfsd4_encode_operation+0x7d/0x190 [nfsd] [ 88.437566] [] nfsd4_proc_compound+0x24d/0x6f0 [nfsd] [ 88.438157] [] nfsd_dispatch+0xc3/0x220 [nfsd] [ 88.438680] [] svc_process_common+0x43b/0x690 [sunrpc] [ 88.439192] [] svc_process+0x103/0x1b0 [sunrpc] [ 88.439694] [] nfsd+0x117/0x190 [nfsd] [ 88.440194] [] ? nfsd_destroy+0x90/0x90 [nfsd] [ 88.440697] [] kthread+0xd8/0xf0 [ 88.441260] [] ? kthread_worker_fn+0x180/0x180 [ 88.441762] [] ret_from_fork+0x58/0x90 [ 88.442322] [] ? kthread_worker_fn+0x180/0x180 [ 88.442879] Code: 0f 84 93 05 00 00 83 f8 ea c7 85 a0 fe ff ff 00 00 27 30 0f 84 ba fe ff ff 85 c0 0f 85 a5 fe ff ff e9 e3 f9 ff ff 0f 1f 44 00 00 <0f> 0b 66 0f 1f 44 00 00 be 04 00 00 00 4c 89 ef 4c 89 8d 68 fe [ 88.444052] RIP [] nfsd4_encode_fattr+0x820/0x1f00 [nfsd] [ 88.444658] RSP [ 88.445232] ---[ end trace 6cb9d0487d94a29f ]--- Signed-off-by: Kinglong Mee Cc: stable@vger.kernel.org Signed-off-by: J. Bruce Fields fs/nfsd/nfs4xdr.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit 7ace8fc8219e4cbbfd5b4790390d9a01a2541cdf Author: Yoshihiro Shimoda Date: Mon Jul 13 18:10:05 2015 +0900 usb: gadget: udc: core: Fix argument of dma_map_single for IOMMU The dma_map_single and dma_unmap_single should set "gadget->dev.parent" instead of "&gadget->dev" in the first argument because the parent has a udc controller's device pointer. Otherwise, iommu functions are not called in ARM environment. Signed-off-by: Yoshihiro Shimoda Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/udc-core.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) commit 53e20f2eb161fbe9eea28b54dccc870cec94eca2 Author: Alexey Khoroshilov Date: Sun Jul 19 23:13:28 2015 +0700 usb: gadget: mv_udc_core: fix phy_regs I/O memory leak There was an omission in transition to devm_xxx resource handling. iounmap(udc->phy_regs) were removed, but ioremap() was left without devm_. Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Alexey Khoroshilov Fixes: 3517c31a8ece6 ("usb: gadget: mv_udc: use devm_xxx for probe") Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/mv_udc_core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4696b8874d7de39850931888bc9f2aa12d29fb46 Author: Lu Baolu Date: Thu Jun 4 20:44:14 2015 +0800 usb: ulpi: ulpi_init should be executed in subsys_initcall Phy drivers and the ulpi interface providers depend on the registration of the ulpi bus. Ulpi registers the bus in module_init(). This could cause unnecessary bus users' probe delays. i.e. unnecessary -EPROBE_DEFER happening on ulpi_drivers in case they're registered before ulpi bus itself. Reported-by: Zhuo Qiuxu Signed-off-by: Lu Baolu Acked-by: Heikki Krogerus Signed-off-by: Felipe Balbi drivers/usb/common/ulpi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 262137bca7cfbe690f8e904822b68f720998324a Author: Vineet Gupta Date: Mon Jul 20 12:05:03 2015 +0300 ARCv2: lib: memset: Don't assume 64-bit load/stores There are configurations which may not have LDD/STD Signed-off-by: Claudiu Zissulescu Signed-off-by: Alexey Brodkin Signed-off-by: Vineet Gupta arch/arc/lib/memset-archs.S | 43 ++++++++++++++++++++++++++++++++++++------- 1 file changed, 36 insertions(+), 7 deletions(-) commit 21481f2cfef9a79d3676916ef9424b1a7794776c Author: Vineet Gupta Date: Mon Jul 20 17:19:17 2015 +0300 ARCv2: lib: memcpy: Missing PREFETCHW Signed-off-by: Vineet Gupta arch/arc/lib/memcpy-archs.S | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5022813ddb28b7679e8285812d52aaeb7e1e7657 Author: Maruthi Srinivas Bayyavarapu Date: Mon Jul 20 19:56:18 2015 +0530 ALSA: hda: add new AMD PCI IDs with proper driver caps Fixes audio problems on newer asics Signed-off-by: Maruthi Bayyavarapu Cc: stable@vger.kernel.org Signed-off-by: Takashi Iwai sound/pci/hda/hda_intel.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit b64f48dcda47ac74c890a8e18a62173f62039643 Merge: 0838aa7 e3895c0 Author: Pablo Neira Ayuso Date: Mon Jul 20 15:00:28 2015 +0200 Merge tag 'ipvs-fixes-for-v4.2' of https://git.kernel.org/pub/scm/linux/kernel/git/horms/ipvs Simon Horman says: ==================== IPVS Fixes for v4.2 please consider this fix for v4.2. For reasons that are not clear to me it is a bumper crop. It seems to me that they are all relevant to stable. Please let me know if you need my help to get the fixes into stable. * ipvs: fix ipv6 route unreach panic This problem appears to be present since IPv6 support was added to IPVS in v2.6.28. * ipvs: skb_orphan in case of forwarding This appears to resolve a problem resulting from a side effect of 41063e9dd119 ("ipv4: Early TCP socket demux.") which was included in v3.6. * ipvs: do not use random local source address for tunnels This appears to resolve a problem introduced by 026ace060dfe ("ipvs: optimize dst usage for real server") in v3.10. * ipvs: fix crash if scheduler is changed This appears to resolve a problem introduced by ceec4c381681 ("ipvs: convert services to rcu") in v3.10. Julian has provided backports of the fix: * [PATCHv2 3.10.81] ipvs: fix crash if scheduler is changed http://www.spinics.net/lists/lvs-devel/msg04008.html * [PATCHv2 3.12.44,3.14.45,3.18.16,4.0.6] ipvs: fix crash if scheduler is changed http://www.spinics.net/lists/lvs-devel/msg04007.html Please let me know how you would like to handle guiding these backports into stable. * ipvs: fix crash with sync protocol v0 and FTP This appears to resolve a problem introduced by 749c42b620a9 ("ipvs: reduce sync rate with time thresholds") in v3.5 ==================== Signed-off-by: Pablo Neira Ayuso commit 0838aa7fcfcd875caa7bcc5dab0c3fd40444553d Author: Pablo Neira Ayuso Date: Mon Jul 13 15:11:48 2015 +0200 netfilter: fix netns dependencies with conntrack templates Quoting Daniel Borkmann: "When adding connection tracking template rules to a netns, f.e. to configure netfilter zones, the kernel will endlessly busy-loop as soon as we try to delete the given netns in case there's at least one template present, which is problematic i.e. if there is such bravery that the priviledged user inside the netns is assumed untrusted. Minimal example: ip netns add foo ip netns exec foo iptables -t raw -A PREROUTING -d 1.2.3.4 -j CT --zone 1 ip netns del foo What happens is that when nf_ct_iterate_cleanup() is being called from nf_conntrack_cleanup_net_list() for a provided netns, we always end up with a net->ct.count > 0 and thus jump back to i_see_dead_people. We don't get a soft-lockup as we still have a schedule() point, but the serving CPU spins on 100% from that point onwards. Since templates are normally allocated with nf_conntrack_alloc(), we also bump net->ct.count. The issue why they are not yet nf_ct_put() is because the per netns .exit() handler from x_tables (which would eventually invoke xt_CT's xt_ct_tg_destroy() that drops reference on info->ct) is called in the dependency chain at a *later* point in time than the per netns .exit() handler for the connection tracker. This is clearly a chicken'n'egg problem: after the connection tracker .exit() handler, we've teared down all the connection tracking infrastructure already, so rightfully, xt_ct_tg_destroy() cannot be invoked at a later point in time during the netns cleanup, as that would lead to a use-after-free. At the same time, we cannot make x_tables depend on the connection tracker module, so that the xt_ct_tg_destroy() would be invoked earlier in the cleanup chain." Daniel confirms this has to do with the order in which modules are loaded or having compiled nf_conntrack as modules while x_tables built-in. So we have no guarantees regarding the order in which netns callbacks are executed. Fix this by allocating the templates through kmalloc() from the respective SYNPROXY and CT targets, so they don't depend on the conntrack kmem cache. Then, release then via nf_ct_tmpl_free() from destroy_conntrack(). This branch is marked as unlikely since conntrack templates are rarely allocated and only from the configuration plane path. Note that templates are not kept in any list to avoid further dependencies with nf_conntrack anymore, thus, the tmpl larval list is removed. Reported-by: Daniel Borkmann Signed-off-by: Pablo Neira Ayuso Tested-by: Daniel Borkmann include/net/netfilter/nf_conntrack.h | 2 +- include/net/netns/conntrack.h | 1 - net/netfilter/nf_conntrack_core.c | 67 +++++++++++++++++++++++------------- net/netfilter/nf_synproxy_core.c | 7 ++-- net/netfilter/xt_CT.c | 8 ++--- 5 files changed, 51 insertions(+), 34 deletions(-) commit 929423fa83e5b75e94101b280738b9a5a376a0e1 Author: Juergen Gross Date: Mon Jul 20 13:49:39 2015 +0200 xen: release lock occasionally during ballooning When dom0 is being ballooned balloon_process() will hold the balloon mutex until it is finished. This will block e.g. creation of new domains as the device backends for the new domain need some autoballooned pages for the ring buffers. Avoid this by releasing the balloon mutex from time to time during ballooning. Adjust the comment above balloon_process() regarding multiple instances of balloon_process(). Instead of open coding it, just use cond_resched(). Signed-off-by: Juergen Gross Signed-off-by: David Vrabel drivers/xen/balloon.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) commit 6da3700c98cdc8360f55c5510915efae1d66deea Author: Pieter Hollants Date: Mon Jul 20 11:56:17 2015 +0200 USB: qcserial: Add support for Dell Wireless 5809e 4G Modem Added the USB IDs 0x413c:0x81b1 for the "Dell Wireless 5809e Gobi(TM) 4G LTE Mobile Broadband Card", a Dell-branded Sierra Wireless EM7305 LTE card in M.2 form factor, used eg. in Dell's Latitude E7540 Notebook series. "lsusb -v" output for this device: Bus 002 Device 003: ID 413c:81b1 Dell Computer Corp. Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x413c Dell Computer Corp. idProduct 0x81b1 bcdDevice 0.06 iManufacturer 1 Sierra Wireless, Incorporated iProduct 2 Dell Wireless 5809e Gobi™ 4G LTE Mobile Broadband Card iSerial 3 bNumConfigurations 2 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 204 bNumInterfaces 4 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xe0 Self Powered Remote Wakeup MaxPower 500mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 255 Vendor Specific Subclass bInterfaceProtocol 255 Vendor Specific Protocol iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x01 EP 1 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 0 bNumEndpoints 3 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 0 ** UNRECOGNIZED: 05 24 00 10 01 ** UNRECOGNIZED: 05 24 01 00 00 ** UNRECOGNIZED: 04 24 02 02 ** UNRECOGNIZED: 05 24 06 00 00 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x000c 1x 12 bytes bInterval 9 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 3 bAlternateSetting 0 bNumEndpoints 3 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 0 ** UNRECOGNIZED: 05 24 00 10 01 ** UNRECOGNIZED: 05 24 01 00 00 ** UNRECOGNIZED: 04 24 02 02 ** UNRECOGNIZED: 05 24 06 00 00 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x85 EP 5 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x000c 1x 12 bytes bInterval 9 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x84 EP 4 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x03 EP 3 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 8 bAlternateSetting 0 bNumEndpoints 3 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 255 Vendor Specific Subclass bInterfaceProtocol 255 Vendor Specific Protocol iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x87 EP 7 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x000a 1x 10 bytes bInterval 9 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x86 EP 6 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x04 EP 4 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 ** UNRECOGNIZED: 2c ff 42 49 53 54 00 01 07 f5 40 f6 00 00 00 00 01 f7 c4 09 02 f8 c4 09 03 f9 88 13 04 fa 10 27 05 fb 10 27 06 fc c4 09 07 fd c4 09 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 95 bNumInterfaces 2 bConfigurationValue 2 iConfiguration 0 bmAttributes 0xe0 Self Powered Remote Wakeup MaxPower 500mA Interface Association: bLength 8 bDescriptorType 11 bFirstInterface 12 bInterfaceCount 2 bFunctionClass 2 Communications bFunctionSubClass 14 bFunctionProtocol 0 iFunction 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 12 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 2 Communications bInterfaceSubClass 14 bInterfaceProtocol 0 iInterface 0 CDC Header: bcdCDC 1.10 CDC Union: bMasterInterface 12 bSlaveInterface 13 CDC MBIM: bcdMBIMVersion 1.00 wMaxControlMessage 4096 bNumberFilters 32 bMaxFilterSize 128 wMaxSegmentSize 1500 bmNetworkCapabilities 0x20 8-byte ntb input size CDC MBIM Extended: bcdMBIMExtendedVersion 1.00 bMaxOutstandingCommandMessages 64 wMTU 1500 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 9 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 13 bAlternateSetting 0 bNumEndpoints 0 bInterfaceClass 10 CDC Data bInterfaceSubClass 0 bInterfaceProtocol 2 iInterface 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 13 bAlternateSetting 1 bNumEndpoints 2 bInterfaceClass 10 CDC Data bInterfaceSubClass 0 bInterfaceProtocol 2 iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x01 EP 1 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Device Qualifier (for other device speed): bLength 10 bDescriptorType 6 bcdUSB 2.00 bDeviceClass 0 bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 bNumConfigurations 2 Device Status: 0x0000 (Bus Powered) Signed-off-by: Pieter Hollants Cc: stable Signed-off-by: Johan Hovold drivers/usb/serial/qcserial.c | 1 + 1 file changed, 1 insertion(+) commit 3827ec3d8fd51aef8352b0282b14f0f3ab615930 Author: Martin Schwidefsky Date: Mon Jul 20 10:01:46 2015 +0200 s390: adapt entry.S to the move of thread_struct git commit 0c8c0f03e3a292e031596484275c14cf39c0ab7a "x86/fpu, sched: Dynamically allocate 'struct fpu'" moved the thread_struct to the end of the task_struct. This causes some of the offsets used in entry.S to overflow their instruction operand field. To fix this use aghi to create a dedicated pointer for the thread_struct. Signed-off-by: Martin Schwidefsky arch/s390/kernel/asm-offsets.c | 15 +++++++-------- arch/s390/kernel/entry.S | 13 +++++++++---- arch/s390/kernel/traps.c | 4 ++-- 3 files changed, 18 insertions(+), 14 deletions(-) commit d05a76ab4d9ece9bd987a8c29e3f384ec9f7b211 Author: Alexey Brodkin Date: Thu Jul 16 21:45:38 2015 +0300 ARCv2: add knob for DIV_REV in Kconfig Being highly configurable core ARC HS among other features might be configured with or without DIV_REM_OPTION (hardware divider). That option when enabled adds following instructions: div, divu, rem, remu. By default ARC HS38 has this option enabled. So we add here possibility to disable usage of hardware divider by compiler. Signed-off-by: Alexey Brodkin Signed-off-by: Vineet Gupta arch/arc/Kconfig | 4 ++++ arch/arc/Makefile | 10 +++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) commit aeec6cdad6cda5fdf26f937c0d15f101539d8185 Author: Viresh Kumar Date: Thu Jul 16 16:56:14 2015 +0530 ARC/time: Migrate to new 'set-state' interface Migrate arc 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: Vineet Gupta Signed-off-by: Viresh Kumar Signed-off-by: Vineet Gupta arch/arc/kernel/time.c | 40 +++++++++++++++------------------------- 1 file changed, 15 insertions(+), 25 deletions(-) commit 09adcdf212d777ace8bb31bed8ca5c1dbd56bd0f Author: Viresh Kumar Date: Thu Jul 16 16:56:15 2015 +0530 AVR32/time: Migrate to new 'set-state' interface Migrate avr32 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 want to call cpu_idle_poll_ctrl() in shutdown only if we were in oneshot or resume state earlier. Create another variable to save this information and check that in shutdown callback. Cc: Haavard Skinnemoen Cc: Hans-Christian Egtvedt Signed-off-by: Viresh Kumar Acked-by: Hans-Christian Egtvedt arch/avr32/kernel/time.c | 65 ++++++++++++++++++++++++------------------------ 1 file changed, 33 insertions(+), 32 deletions(-) commit 653cdc13a340ad1cef29f1bab0d05d0771fa1d57 Author: Reinhard Speyerer Date: Tue Jul 14 22:55:06 2015 +0200 USB: qcserial/option: make AT URCs work for Sierra Wireless MC7305/MC7355 Tests with a Sierra Wireless MC7355 have shown that 1199:9041 devices also require the option_send_setup() code to be used on the USB interface for the AT port to make unsolicited response codes work correctly. Move these devices from the qcserial driver to the option driver like it has been done for the 1199:68c0 devices in commit d80c0d14183516f184a5ac88e11008ee4c7d2a2e ("USB: qcserial/option: make AT URCs work for Sierra Wireless MC73xx"). Signed-off-by: Reinhard Speyerer Cc: stable Signed-off-by: Johan Hovold drivers/usb/serial/option.c | 2 ++ drivers/usb/serial/qcserial.c | 1 - 2 files changed, 2 insertions(+), 1 deletion(-) commit 681ccdcc756f17f847beba5ac4cd3d03e0949489 Author: Joachim Eastwood Date: Wed Jul 15 00:25:26 2015 +0200 pinctrl: lpc18xx: fix schmitt trigger setup The param_val variable is what determines if schmitt trigger is enabled on a pin or not. A typo here mean that schmitt trigger was always enabled for standard and i2c pins. Signed-off-by: Joachim Eastwood Signed-off-by: Linus Walleij drivers/pinctrl/pinctrl-lpc18xx.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 9571b25df1dbf4db17191b54f59734e8b77fd591 Author: Uwe Kleine-König Date: Fri Jul 17 09:38:43 2015 +0200 Subject: pinctrl: imx1-core: Fix debug output in .pin_config_set callback imx1_pinconf_set assumes that the array of pins in struct imx1_pinctrl_soc_info can be indexed by pin id to get the pinctrl_pin_desc for a pin. This used to be correct up to commit 607af165c047 which removed some entries from the array and so made it wrong to access the array by pin id. The result of this bug is a wrong pin name in the output for small pin ids and an oops for the bigger ones. This patch is the result of a discussion that includes patches by Markus Pargmann and Chris Ruehl. Fixes: 607af165c047 ("pinctrl: i.MX27: Remove nonexistent pad definitions") Cc: stable@vger.kernel.org Reported-by: Chris Ruehl Signed-off-by: Uwe Kleine-König Reviewed-by: Markus Pargmann Signed-off-by: Linus Walleij drivers/pinctrl/freescale/pinctrl-imx1-core.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 714b1dd8f72e39ef4bc0f38f7f341bb1d57d98bf Author: Jonathan Bell Date: Tue Jun 30 12:35:39 2015 +0100 pinctrl: bcm2835: Clear the event latch register when disabling interrupts It's possible to hit a race condition if interrupts are generated on a GPIO pin when the IRQ line in question is being disabled. If the interrupt is freed, bcm2835_gpio_irq_disable() is called which disables the event generation sources (edge, level). If an event occurred between the last disabling of hard IRQs and the write to the event source registers, a bit would be set in the GPIO event detect register (GPEDSn) which goes unacknowledged by bcm2835_gpio_irq_handler() so Linux complains loudly. There is no per-GPIO mask register, so when disabling GPIO interrupts write 1 to the relevant bit in GPEDSn to clear out any stale events. Signed-off-by: Jonathan Bell Acked-by: Stephen Warren Signed-off-by: Linus Walleij drivers/pinctrl/bcm/pinctrl-bcm2835.c | 2 ++ 1 file changed, 2 insertions(+) commit c10372e615b8f790d30cbfcf59e43908ca42bf1a Author: Grygorii Strashko Date: Mon Jul 6 18:13:37 2015 +0300 pinctrl: single: ensure pcs irq will not be forced threaded The PSC IRQ is requested using request_irq() API and as result it can be forced to be threaded IRQ in RT-Kernel if PCS_QUIRK_HAS_SHARED_IRQ is enabled for pinctrl domain. As result, following 'possible irq lock inversion dependency' report can be seen: ========================================================= [ INFO: possible irq lock inversion dependency detected ] 3.14.43-rt42-00360-g96ff499-dirty #24 Not tainted --------------------------------------------------------- irq/369-pinctrl/927 just changed the state of lock: (&pcs->lock){+.....}, at: [] pcs_irq_handle+0x48/0x9c but this lock was taken by another, HARDIRQ-safe lock in the past: (&irq_desc_lock_class){-.....} and interrupts could create inverse lock ordering between them. other info that might help us debug this: Possible interrupt unsafe locking scenario: CPU0 CPU1 ---- ---- lock(&pcs->lock); local_irq_disable(); lock(&irq_desc_lock_class); lock(&pcs->lock); lock(&irq_desc_lock_class); *** DEADLOCK *** no locks held by irq/369-pinctrl/927. the shortest dependencies between 2nd lock and 1st lock: -> (&irq_desc_lock_class){-.....} ops: 58724 { IN-HARDIRQ-W at: [] lock_acquire+0x9c/0x158 [] _raw_spin_lock+0x48/0x58 [] handle_fasteoi_irq+0x24/0x15c [] generic_handle_irq+0x3c/0x4c [] handle_IRQ+0x50/0xa0 [] gic_handle_irq+0x3c/0x6c [] __irq_svc+0x44/0x8c [] arch_cpu_idle+0x40/0x4c [] cpu_startup_entry+0x270/0x2e0 [] rest_init+0xd4/0xe4 [] start_kernel+0x3d0/0x3dc [<80008084>] 0x80008084 INITIAL USE at: [] lock_acquire+0x9c/0x158 [] _raw_spin_lock_irqsave+0x54/0x68 [] __irq_get_desc_lock+0x64/0xa4 [] irq_set_chip+0x30/0x78 [] irq_set_chip_and_handler_name+0x24/0x3c [] gic_irq_domain_map+0x48/0xb4 [] irq_domain_associate+0x84/0x1d4 [] irq_create_mapping+0x80/0x11c [] irq_create_of_mapping+0x80/0x120 [] irq_of_parse_and_map+0x34/0x3c [] omap_dm_timer_init_one+0x90/0x30c [] omap5_realtime_timer_init+0x8c/0x48c [] time_init+0x28/0x38 [] start_kernel+0x240/0x3dc [<80008084>] 0x80008084 } ... key at: [] irq_desc_lock_class+0x0/0x8 ... acquired at: [] _raw_spin_lock+0x48/0x58 [] pcs_irq_unmask+0x58/0xa0 [] irq_enable+0x38/0x48 [] irq_startup+0x78/0x7c [] __setup_irq+0x4a8/0x4f4 [] request_threaded_irq+0xb8/0x138 [] omap_8250_startup+0x4c/0x148 [] serial8250_startup+0x24/0x30 [] uart_startup.part.9+0x5c/0x1b4 [] uart_open+0xf4/0x16c [] tty_open+0x170/0x61c [] chrdev_open+0xbc/0x1b4 [] do_dentry_open+0x1e8/0x2bc [] finish_open+0x44/0x5c [] do_last.isra.47+0x710/0xca0 [] path_openat+0xc4/0x640 [] do_filp_open+0x3c/0x98 [] do_sys_open+0x114/0x1d8 [] SyS_open+0x28/0x2c [] kernel_init_freeable+0x168/0x1e4 [] kernel_init+0x1c/0xf8 [] ret_from_fork+0x14/0x20 -> (&pcs->lock){+.....} ops: 65 { HARDIRQ-ON-W at: [] lock_acquire+0x9c/0x158 [] _raw_spin_lock+0x48/0x58 [] pcs_irq_handle+0x48/0x9c [] pcs_irq_handler+0x1c/0x28 [] irq_forced_thread_fn+0x30/0x74 [] irq_thread+0x158/0x1c4 [] kthread+0xd4/0xe8 [] ret_from_fork+0x14/0x20 INITIAL USE at: [] lock_acquire+0x9c/0x158 [] _raw_spin_lock_irqsave+0x54/0x68 [] pcs_enable+0x7c/0xe8 [] pinmux_enable_setting+0x178/0x220 [] pinctrl_select_state+0x110/0x194 [] pinctrl_bind_pins+0x7c/0x108 [] driver_probe_device+0x70/0x254 [] __driver_attach+0x9c/0xa0 [] bus_for_each_dev+0x78/0xac [] driver_attach+0x2c/0x30 [] bus_add_driver+0x15c/0x204 [] driver_register+0x88/0x108 [] __platform_driver_register+0x64/0x6c [] omap_hsmmc_driver_init+0x1c/0x20 [] do_one_initcall+0x110/0x170 [] kernel_init_freeable+0x140/0x1e4 [] kernel_init+0x1c/0xf8 [] ret_from_fork+0x14/0x20 } ... key at: [] __key.18572+0x0/0x8 ... acquired at: [] mark_lock+0x388/0x76c [] __lock_acquire+0x6d0/0x1f98 [] lock_acquire+0x9c/0x158 [] _raw_spin_lock+0x48/0x58 [] pcs_irq_handle+0x48/0x9c [] pcs_irq_handler+0x1c/0x28 [] irq_forced_thread_fn+0x30/0x74 [] irq_thread+0x158/0x1c4 [] kthread+0xd4/0xe8 [] ret_from_fork+0x14/0x20 stack backtrace: CPU: 1 PID: 927 Comm: irq/369-pinctrl Not tainted 3.14.43-rt42-00360-g96ff499-dirty #24 [] (unwind_backtrace) from [] (show_stack+0x20/0x24) [] (show_stack) from [] (dump_stack+0x84/0xd0) [] (dump_stack) from [] (print_irq_inversion_bug+0x1d0/0x21c) [] (print_irq_inversion_bug) from [] (check_usage_backwards+0xb4/0x11c) [] (check_usage_backwards) from [] (mark_lock+0x388/0x76c) [] (mark_lock) from [] (__lock_acquire+0x6d0/0x1f98) [] (__lock_acquire) from [] (lock_acquire+0x9c/0x158) [] (lock_acquire) from [] (_raw_spin_lock+0x48/0x58) [] (_raw_spin_lock) from [] (pcs_irq_handle+0x48/0x9c) [] (pcs_irq_handle) from [] (pcs_irq_handler+0x1c/0x28) [] (pcs_irq_handler) from [] (irq_forced_thread_fn+0x30/0x74) [] (irq_forced_thread_fn) from [] (irq_thread+0x158/0x1c4) [] (irq_thread) from [] (kthread+0xd4/0xe8) [] (kthread) from [] (ret_from_fork+0x14/0x20) To fix it use IRQF_NO_THREAD to ensure that pcs irq will not be forced threaded. Cc: Tony Lindgren Cc: Sebastian Andrzej Siewior Signed-off-by: Grygorii Strashko Acked-by: Tony Lindgren Signed-off-by: Linus Walleij drivers/pinctrl/pinctrl-single.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 61bb3aef92a4d102382f399eafccd5c72be6fdf2 Author: Sergei Shtylyov Date: Fri Jun 26 01:40:56 2015 +0300 sh-pfc: fix sparse GPIOs for R-Car SoCs The PFC driver causes the kernel to hang on the R-Car gen2 SoC based boards when the CPU_ALL_PORT() macro is fixed to reflect the reality, i.e. when the GPIO space becomes actually sparse. This happens because the _GP_GPIO() macro includes an indexed initializer which causes the "holes" (array entries filled with all 0s) between the groups of the existing GPIOs; and the driver can't cope with that. There seems to be no reason to use the indexed initializer, so we can remove the index specifier and so avoid the "holes". Signed-off-by: Sergei Shtylyov Acked-by: Laurent Pinchart Tested-by: Geert Uytterhoeven Signed-off-by: Linus Walleij drivers/pinctrl/sh-pfc/sh_pfc.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 27aa2e3a3c99d3319de12ada0d292e33f5831e60 Author: Linus Walleij Date: Wed Jul 8 15:12:06 2015 +0200 pinctrl: abx500: remove strict mode Commit a21763a0b1e5a5ab8310f581886d04beadc16616 "pinctrl: nomadik: activate strict mux mode" put all Nomadik pin controllers to strict mode. This was not good on the Snowball platform: the muxing of GPIOs to different pins is done with hogs in the DTS file, and then these GPIOs are used by offset, relying on hogs to mux the pins. Since that means the pin controller "owns" the pins and at the same time we have a GPIO user, this pin controller is by definition not strict. Signed-off-by: Linus Walleij drivers/pinctrl/nomadik/pinctrl-abx500.c | 1 - 1 file changed, 1 deletion(-) commit 033ea349a7cd1aa15357cd6575de35188fc85b9a Author: David Henningsson Date: Thu Jul 16 10:39:24 2015 +0200 ALSA: hda - Fix Skylake codec timeout When the controller is powered up but the HDMI codec is powered down on Skylake, the power well is turned off. When the codec is then powered up again, we need to poke the codec a little extra to make sure it wakes up. Otherwise we'll get sad "no response from codec" messages and broken audio. This also changes azx_runtime_resume to actually call snd_hdac_set_codec_wakeup for Skylake (before STATETS read). (Otherwise it would only have been called for Haswell and Broadwell, which both do not need it, so this probably was not the author's intention.) Signed-off-by: David Henningsson Reviewed-by: Libin Yang Signed-off-by: Takashi Iwai sound/hda/hdac_i915.c | 5 ++++- sound/pci/hda/hda_intel.c | 18 ++++++++++-------- 2 files changed, 14 insertions(+), 9 deletions(-) commit 52721d9d3334c1cb1f76219a161084094ec634dc Author: Linus Torvalds Date: Sun Jul 19 14:45:02 2015 -0700 Linux 4.2-rc3 Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fdbd55fdde3155a53ee90a60cdc0a4c7ac4f236b Merge: 8bff839 1278dd6 Author: Linus Torvalds Date: Sun Jul 19 14:18:00 2015 -0700 Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi Pull SCSI fixes from James Bottomley: "Two fairly simple fixes: one is a change that causes us to have a very low queue depth leading to performance issues and the other is a null deref occasionally in tapes thanks to use after put" * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: scsi: fix host max depth checking for the 'queue_depth' sysfs interface st: null pointer dereference panic caused by use after kref_put by st_open commit 8bff839927f45731d7d6c6a9a5411670866db122 Merge: ff72bf7 fcc53b5 Author: Linus Torvalds Date: Sun Jul 19 14:12:22 2015 -0700 Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus Pull MIPS fixes from Ralf Baechle: "Another round of MIPS fixes for 4.2. Things are looking quite decent at this stage but the recent work on the FPU support took its toll: - fix an incorrect overly restrictive ifdef - select O32 64-bit FP support for O32 binary compatibility - remove workarounds for Sibyte SB1250 Pass1 parts. There are rare fixing the workarounds is not worth the effort. - patch up an outdated and now incorrect comment" * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: MIPS: fpu.h: Allow 64-bit FPU on a 64-bit MIPS R6 CPU MIPS: SB1: Remove support for Pass 1 parts. MIPS: Require O32 FP64 support for MIPS64 with O32 compat MIPS: asm-offset.c: Patch up various comments refering to the old filename. commit ff72bf7adc8e3d158d49d2b7c193f04ce2031689 Merge: 10b97f3 4c4ac9a Author: Linus Torvalds Date: Sun Jul 19 13:46:24 2015 -0700 Merge branch 'parisc-4.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux Pull parisc fix from Helge Deller: "A memory leak fix from Christophe Jaillet which was introduced with kernel 4.0 and which leads to kernel crashes on parisc after 1-3 days" * 'parisc-4.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux: parisc: mm: Fix a memory leak related to pmd not attached to the pgd commit 10b97f38a9439eb911c7ec577b375674c743ca78 Merge: 9d37e66 3eae03d Author: Linus Torvalds Date: Sun Jul 19 13:37:44 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: "By far most of the fixes here are updates to DTS files to deal with some mostly minor bugs. There's also a fix to deal with non-PM kernel configs on i.MX, a regression fix for ethernet on PXA platforms and a dependency fix for OMAP" * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: ARM: keystone: dts: rename pcie nodes to help override status ARM: keystone: dts: fix dt bindings for PCIe ARM: pxa: fix dm9000 platform data regression ARM: dts: Correct audio input route & set mic bias for am335x-pepper ARM: OMAP2+: Add HAVE_ARM_SCU for AM43XX MAINTAINERS: digicolor: add dts files ARM: ux500: fix MMC/SD card regression ARM: ux500: define serial port aliases ARM: dts: OMAP5: Add #iommu-cells property to IOMMUs ARM: dts: OMAP4: Add #iommu-cells property to IOMMUs ARM: dts: Fix frequency scaling on Gumstix Pepper ARM: dts: configure regulators for Gumstix Pepper ARM: dts: omap3: overo: Update LCD panel names ARM: dts: cros-ec-keyboard: Add support for some Japanese keys ARM: imx6: gpc: always enable PU domain if CONFIG_PM is not set ARM: dts: imx53-qsb: fix TVE entry ARM: dts: mx23: fix iio-hwmon support ARM: dts: imx27: Adjust the GPT compatible string ARM: socfpga: dts: Fix entries order ARM: socfpga: dts: Fix adxl34x formating and compatible string commit 0420694dddeb9e269a1ab2129a0119a5cea294a4 Author: Mateusz Sylwestrzak Date: Sun Jul 19 17:38:56 2015 +0200 ALSA: hda - Add headset mic support for Acer Aspire V5-573G Acer Aspire V5 with the ALC282 codec is given the wrong value for the 0x19 PIN by the laptop's BIOS. Overriding it with the correct value adds support for the headset microphone which would not otherwise be visible in the system. The fix is based on commit 7819717b1134 with a similar quirk for Acer Aspire with the ALC269 codec. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=96201 Cc: Signed-off-by: Mateusz Sylwestrzak Signed-off-by: Takashi Iwai sound/pci/hda/patch_realtek.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 423ad0c405d87868bd1ab19e8b503e6a41c86caf Author: Hartmut Knaack Date: Thu Jul 9 23:51:30 2015 +0200 iio:light:stk3310: make endianness independent of host Data is stored in the device in be16 format. Make use of be16_to_cpu and cpu_to_be16 to have correct endianness on any host architecture. Signed-off-by: Hartmut Knaack Reviewed-by: Tiberiu Breana Signed-off-by: Jonathan Cameron drivers/iio/light/stk3310.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 037e966f2d63896129220112644f32962af6d115 Author: Hartmut Knaack Date: Thu Jul 9 23:51:29 2015 +0200 iio:light:stk3310: move device register to end of probe iio_device_register should be the last operation during probe. Therefor move up interrupt setup code and while at it, change the check for invalid values of client->irq to be smaller than zero. Fixes: 3dd477acbdd1 ("iio: light: Add threshold interrupt support for STK3310") As the device_register makes the userspace interfaces of the device available it is possible for requests to come in before the probe sequence has finished. This can lead to unhandled interrupts and similar. Signed-off-by: Hartmut Knaack Reviewed-by: Tiberiu Breana Signed-off-by: Jonathan Cameron drivers/iio/light/stk3310.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit c5d0db0690ff0a963dc082e7645268c466bf9a84 Author: Martin Kepplinger Date: Sun Jul 5 19:50:18 2015 +0200 iio: mma8452: use iio event type IIO_EV_TYPE_MAG IIO_EV_TYPE_THRESH in rising direction describes an event where the threshold is crossed in rising direction, positive or negative values being possible. This is not the case here. Since the threshold is no signed value and only the magnitude is compared, IIO_EV_TYPE_MAG is what describes the behaviour of these devices, see the sysfs-bus-iio ABI Documentation. Signed-off-by: Martin Kepplinger Signed-off-by: Christoph Muellner Cc: Signed-off-by: Jonathan Cameron drivers/iio/accel/mma8452.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 41be6a0d5aa3c4fcb472f3d44251683b085b00a3 Author: Manfred Schlaegl Date: Fri Jul 10 22:55:30 2015 +0200 iio: mcp320x: Fix NULL pointer dereference On reading in_voltage_scale of we got an NULL pointer dereference Oops. The reason for this is, that mcp320x_read_raw tries to access chip_info->resolution from struct mcp320x, but chip_info is never set. chip_info was never set since the driver was added, but there was no acute problem, because it was not referenced. The acute problem exists since b12206e917ac34bec41b9ff93d37d8bd53a2b3bc iio: adc: mcp320x. Add support for more ADCs This patch fixes the issue by setting chip_info in mcp320x_probe. Signed-off-by: Manfred Schlaegl Reviewed-by: Michael Welling Signed-off-by: Jonathan Cameron drivers/iio/adc/mcp320x.c | 2 ++ 1 file changed, 2 insertions(+) commit bf604a4c44a91cc2ceb60d4643a091b6b32cc999 Author: Fugang Duan Date: Thu Jul 16 14:49:09 2015 +0800 iio: adc: vf610: fix the adc register read fail issue Read the register only when the adc register address is 4 byte aligned. (rather than the other way around). Signed-off-by: Haibo Chen Signed-off-by: Fugang Duan Cc: Signed-off-by: Jonathan Cameron drivers/iio/adc/vf610_adc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c68a67b7adeec240bd79780635dc0ce74d0cb61a Author: Crt Mori Date: Sun Jul 5 20:03:53 2015 +0200 iio: mlx96014: Replace offset sign Changed the offset to negative as usual equation is: (raw + offset)*scale and in this case offset should be negative (as we deduct 273.15 Kelvin to get temperature in Celsius). Signed-off-by: Crt Mori Acked-by: Peter Meerwald Signed-off-by: Jonathan Cameron drivers/iio/temperature/mlx90614.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 354c879dbd9393ac411049f968474f2bf6c2a495 Author: Viorel Suman Date: Tue Jul 14 17:56:54 2015 +0300 iio: magnetometer: mmc35240: fix SET/RESET sequence The RESET operation invoked in the last instance will align in the natural way all 3 axis and the chip top view. Without this, north and south are swapped. Signed-off-by: Viorel Suman Signed-off-by: Daniel Baluta Signed-off-by: Jonathan Cameron drivers/iio/magnetometer/mmc35240.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 3ceaa2c207ccf6933affc8358c0a04beb93e9aa7 Author: Daniel Baluta Date: Tue Jul 14 17:56:53 2015 +0300 iio: magnetometer: mmc35240: Fix SET/RESET mask This fixes setting the SET/RESET bit in the REG_CTRL0 register. Signed-off-by: Daniel Baluta Signed-off-by: Jonathan Cameron drivers/iio/magnetometer/mmc35240.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 8b14821a5c45e3472082c60723ca54cf2fe9c2f3 Author: Daniel Baluta Date: Tue Jul 14 17:56:52 2015 +0300 iio: magnetometer: mmc35240: Fix crash in pm suspend We must set i2c client private data at probe in order to correctly retrieve it in pm suspend/resume, preventing the following crash: [ 321.790582] PM: Syncing filesystems ... done. [ 322.364440] PM: Preparing system for mem sleep [ 322.400047] PM: Entering mem sleep [ 322.462178] BUG: unable to handle kernel NULL pointer dereference at 0000036c [ 322.469119] IP: [<80e0b3d2>] mmc35240_suspend+0x12/0x30 [ 322.474291] *pdpt = 000000002fd6f001 *pde = 0000000000000000 [ 322.479967] Oops: 0000 1 PREEMPT SMP [ 322.496516] task: a86d0df0 ti: a8766000 task.ti: a8766000 [ 322.570744] Call Trace: [ 322.573217] [<80c0d2d1>] pm_generic_suspend+0x21/0x30 [ 322.578284] [<80d042ab>] i2c_device_pm_suspend+0x1b/0x30 Signed-off-by: Daniel Baluta Signed-off-by: Jonathan Cameron drivers/iio/magnetometer/mmc35240.c | 1 + 1 file changed, 1 insertion(+) commit 6a14925ef22bf6e9e3f5209db50708210d5ee451 Author: Hartmut Knaack Date: Fri Jul 17 10:52:26 2015 +0200 iio:magnetometer:bmc150_magn: output intended variable According to the debug/error string, the content of chip_id is supposed to be output, rather than the return value of the previous operation. Fixes: c91746a2361d ("iio: magn: Add support for BMC150 magnetometer") Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron drivers/iio/magnetometer/bmc150_magn.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 2e187a028496ffde88c9441a5dbb4e2cd58abb98 Author: Hartmut Knaack Date: Fri Jul 17 10:52:24 2015 +0200 iio:magnetometer:bmc150_magn: add regmap dependency bmc150_magn makes use of REGMAP_I2C, so select it to build always without errors. Fixes: c91746a2361d ("iio: magn: Add support for BMC150 magnetometer") Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron drivers/iio/magnetometer/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 7eb7ee30559c9c88ca23fa3b95bd06629669d0a8 Author: Malcolm Priestley Date: Thu Jul 9 17:03:57 2015 +0100 staging: vt6656: check ieee80211_bss_conf bssid not NULL Sometimes bssid can go null on failed association. Signed-off-by: Malcolm Priestley Cc: # v3.17+ Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6656/main_usb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 42e0bb4db0ee3727de8ec1e5e0eb5f2dd686be00 Author: Malcolm Priestley Date: Thu Jul 9 17:01:24 2015 +0100 staging: vt6655: check ieee80211_bss_conf bssid not NULL Sometimes bssid can go null on failed association. Signed-off-by: Malcolm Priestley Cc: # v3.19+ Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6655/device_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f451957dafe712ab2cd4b7ca8ba9197798115fbe Author: Peter Meerwald Date: Sun Jun 21 23:50:21 2015 +0200 iio: tmp006: Check channel info on write only SAMP_FREQ is writable Will lead to SAMP_FREQ being written by any attempt to write to the other exported attributes and hence a rather unexpected result! Signed-off-by: Peter Meerwald Cc: Signed-off-by: Jonathan Cameron drivers/iio/temperature/tmp006.c | 3 +++ 1 file changed, 3 insertions(+) commit 06b00f99ca8a0ec79f5d428dfb128abd14162c57 Author: Geert Uytterhoeven Date: Mon Jun 29 09:14:33 2015 +0200 iio: sx9500: Add missing init in sx9500_buffer_pre{en,dis}able() drivers/iio/proximity/sx9500.c: In function ‘sx9500_buffer_preenable’: drivers/iio/proximity/sx9500.c:682: warning: ‘ret’ may be used uninitialized in this function drivers/iio/proximity/sx9500.c: In function ‘sx9500_buffer_predisable’: drivers/iio/proximity/sx9500.c:706: warning: ‘ret’ may be used uninitialized in this function If active_scan_mask is empty, it will loop once more over all channels, doing nothing. Signed-off-by: Geert Uytterhoeven Reviewed-by: Vlad Dogaru Signed-off-by: Jonathan Cameron drivers/iio/proximity/sx9500.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c42b9e13f98239ec77acf7c4a20003e1cdd9bace Author: Hartmut Knaack Date: Sun Jun 28 12:31:52 2015 +0200 iio:light:ltr501: fix regmap dependency The use of regmap in commit 2f2c96338afc requires REGMAP_I2C to be selected, in order to meet all dependencies. Fixes: 2f2c96338afc ("iio: ltr501: Add regmap support.") Signed-off-by: Hartmut Knaack Acked-by: Daniel Baluta Signed-off-by: Jonathan Cameron drivers/iio/light/Kconfig | 1 + 1 file changed, 1 insertion(+) commit fe5adb917431aafe1324a2455634ed59147df807 Author: Hartmut Knaack Date: Sun Jun 28 12:31:53 2015 +0200 iio:light:ltr501: fix variable in ltr501_init When filling data->als_contr, the register content read into status needs to be used, instead of the return status value of regmap_read. Fixes: 8592a7eefa540 ("iio: ltr501: Add support for ltr559 chip") Signed-off-by: Hartmut Knaack Acked-by: Daniel Baluta Signed-off-by: Jonathan Cameron drivers/iio/light/ltr501.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0d1462de0b24fd09284411a3753f24a3d7c67577 Author: Vlad Dogaru Date: Tue Jun 30 14:20:59 2015 +0300 iio: sx9500: fix bug in compensation code The initial compensation was mistakingly toggling an extra bit in the control register. Fix this and make sure it's less likely to happen by introducing an additional macro. Reported-by: Hartmut Knaack Signed-off-by: Vlad Dogaru Acked-by: Hartmut Knaack Signed-off-by: Jonathan Cameron drivers/iio/proximity/sx9500.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 498adaeb898c4eff190d598799bd9b0d607ce051 Author: Vlad Dogaru Date: Tue Jun 30 14:20:58 2015 +0300 iio: sx9500: rework error handling of raw readings Fix error handling so that we can power the chip down even if a raw read fails. Reported-by: Hartmut Knaack Signed-off-by: Vlad Dogaru Acked-by: Hartmut Knaack Signed-off-by: Jonathan Cameron drivers/iio/proximity/sx9500.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) commit c99389ad3d80eeef0d0980a17e07f41822bda687 Author: Teodora Baluta Date: Mon Jun 29 15:44:50 2015 +0300 iio: magnetometer: mmc35240: fix available sampling frequencies Fix the sampling frequencies according to the datasheet (page 8). The datasheet specifies the following available frequencies for continuous mode: 1.5 Hz, 13 Hz, 25 Hz, and 50 Hz. Also fix comments about the ODR to comply with datasheet. Signed-off-by: Teodora Baluta Signed-off-by: Jonathan Cameron drivers/iio/magnetometer/mmc35240.c | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) commit 53c8eccb710fbe10ad5ad1e056486f953c4cba18 Author: Hartmut Knaack Date: Sat Jul 4 17:56:57 2015 +0200 iio:light:stk3310: Fix REGMAP_I2C dependency The stk3310 driver makes use of regmap_i2c, so this dependency needs to be reflected in Kconfig. Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron drivers/iio/light/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 0f16fc8bb38156c842f6976ddbdf4f266e893a1b Author: Tiberiu Breana Date: Wed Jul 1 15:32:00 2015 +0300 iio: light: STK3310: un-invert proximity values In accordance with the recent proximity ABI changes, STK3310's proximity readings should be un-inversed in order to return low values for far-away objects and high values for close ones. As consequences of this change, iio event directions have been switched and maximum proximity sensor reference values have also been adjusted in accordance with the real readings. Signed-off-by: Tiberiu Breana Acked-by: Hartmut Knaack Signed-off-by: Jonathan Cameron drivers/iio/light/stk3310.c | 53 +++++++++++++++------------------------------ 1 file changed, 17 insertions(+), 36 deletions(-) commit 5646e856db1e3e2b260c6ba732524e5a886770d5 Author: Hartmut Knaack Date: Sun Jun 21 12:15:50 2015 +0200 iio:adc:cc10001_adc: fix Kconfig dependency The Cosmic Circuits 10001 ADC driver depends on HAS_IOMEM, HAVE_CLK and REGULATOR together, not just any of these. Signed-off-by: Hartmut Knaack Cc: Signed-off-by: Jonathan Cameron drivers/iio/adc/Kconfig | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 40f34b0c75c2a633ba647afec41947d8dd3bc920 Author: Peter Meerwald Date: Sun Jun 14 23:09:35 2015 +0200 iio: light: tcs3414: Fix bug preventing to set integration time the millisecond values in tcs3414_times should be checked against val2, not val, which is always zero. Signed-off-by: Peter Meerwald Reported-by: Stephan Kleisinger Cc: Signed-off-by: Jonathan Cameron drivers/iio/light/tcs3414.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c13c9da6d86fa9cb6449deb6c71b18ffcf32ae53 Author: Hartmut Knaack Date: Mon Jun 15 23:48:24 2015 +0200 iio:accel:bmc150-accel: fix counting direction In bmc150_accel_unregister_triggers() triggers should be unregistered in reverse order of registration. Trigger registration starts with number 0, counting up. In consequence, trigger number needs to be count down here. Signed-off-by: Hartmut Knaack Reviewed-by: Octavian Purdila Cc: Signed-off-by: Jonathan Cameron drivers/iio/accel/bmc150-accel.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bd7bd0cc3a60e082b17a4f64ce76831aa1c6dffe Author: Hartmut Knaack Date: Thu Jun 18 00:31:59 2015 +0200 iio:light:cm3323: clear bitmask before set When setting the bits for integration time, the appropriate bitmask needs to be cleared first. Signed-off-by: Hartmut Knaack Cc: Signed-off-by: Jonathan Cameron drivers/iio/light/cm3323.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 815983e9afcb21552e1b9d77e3755d394cbf5249 Author: Jan Leupold Date: Wed Jun 17 18:21:36 2015 +0200 iio: adc: at91_adc: allow to use full range of startup time The DT-Property "atmel,adc-startup-time" is stored in an u8 for a microsecond value. When trying to increase the value of STARTUP in Register AT91_ADC_MR some higher values can't be reached. Change the type in function parameter and private structure field from u8 to u32. Signed-off-by: Jan Leupold [nicolas.ferre@atmel.com: change commit message, increase u16 to u32 for startup time] Signed-off-by: Nicolas Ferre Acked-by: Alexandre Belloni Cc: Signed-off-by: Jonathan Cameron drivers/iio/adc/at91_adc.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 09f4dcc9443c4731b6669066bd1bc4312ef17bcc Author: JM Friedt Date: Fri Jun 19 14:48:06 2015 +0200 iio: DAC: ad5624r_spi: fix bit shift of output data value The value sent on the SPI bus is shifted by an erroneous number of bits. The shift value was already computed in the iio_chan_spec structure and hence subtracting this argument to 16 yields an erroneous data position in the SPI stream. Signed-off-by: JM Friedt Acked-by: Lars-Peter Clausen Cc: Signed-off-by: Jonathan Cameron drivers/iio/dac/ad5624r_spi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 86d24f04f9a0a7bad8e1719e5aa464eb5779e678 Author: Daniel Baluta Date: Thu Jun 11 18:49:34 2015 +0300 iio: proximity: sx9500: Fix proximity value Because of the ABI confusion proximity value exposed by SX9500 was inverted. Signed-off-by: Daniel Baluta Reviewed-by: Vlad Dogaru Cc: Signed-off-by: Jonathan Cameron drivers/iio/proximity/sx9500.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 63fc444967591c3849438aa0f21d5de96a928311 Author: Daniel Baluta Date: Thu Jun 11 18:49:33 2015 +0300 iio: ABI: Clarify proximity output value Current description for proximity measurement is ambiguous. While the first part says that proximity is measured by observing reflectivity, the second part incorrectly infers that reported values should behave like a distance. This is because of AS3935 lightning sensor which uses the proximity API, while not being a true proximity sensor. Note this is marked for stable as it accompanies a fix in ABI usage to the sx9500 driver which would otherwise appear to be correct. Fixes: 614e8842ddf ("iio: ABI: add clarification for proximity") Signed-off-by: Daniel Baluta Cc: Signed-off-by: Jonathan Cameron Documentation/ABI/testing/sysfs-bus-iio | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 2acbe15f8ae539809ef8169a65a8d859cf932530 Author: Adriana Reus Date: Fri Jun 12 18:10:23 2015 +0300 iio: inv-mpu: Specify the expected format/precision for write channels The gyroscope needs IIO_VAL_INT_PLUS_NANO for the scale channel and unless specified write returns MICRO by default. This needs to be properly specified so that write operations into scale have the expected behaviour. Signed-off-by: Adriana Reus Cc: Signed-off-by: Jonathan Cameron drivers/iio/imu/inv_mpu6050/inv_mpu_core.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit b220da654d268c79f420fbfac6a35eb420b9cc4b Author: Fabio Estevam Date: Sun May 24 17:39:04 2015 -0300 iio: twl4030-madc: Pass the IRQF_ONESHOT flag Since commit 1c6c69525b40 ("genirq: Reject bogus threaded irq requests") threaded IRQs without a primary handler need to be requested with IRQF_ONESHOT, otherwise the request will fail. So pass the IRQF_ONESHOT flag in this case. The semantic patch that makes this change is available in scripts/coccinelle/misc/irqf_oneshot.cocci. Signed-off-by: Fabio Estevam Cc: Signed-off-by: Jonathan Cameron drivers/iio/adc/twl4030-madc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit c11e28f959a6e700d19a952e078cb368c2e781a4 Author: Heiko Stuebner Date: Mon May 25 22:36:58 2015 +0200 iio: adc: rockchip_saradc: add missing MODULE_* data The module-data is currently missing. This includes the license-information which makes the driver taint the kernel and miss symbols when compiled as module. Fixes: 44d6f2ef94f9 ("iio: adc: add driver for Rockchip saradc") Signed-off-by: Heiko Stuebner Cc: Signed-off-by: Jonathan Cameron drivers/iio/adc/rockchip_saradc.c | 4 ++++ 1 file changed, 4 insertions(+) commit 88cc7b4eee1e7b9bca1a64dae5adaa044cf72312 Author: Srinivas Pandruvada Date: Mon Jun 1 16:36:27 2015 -0700 hid-sensor: Fix suspend/resume delay By default all the sensors are runtime suspended state (lowest power state). During Linux suspend process, all the run time suspended devices are resumed and then suspended. This caused all sensors to power up and introduced delay in suspend time, when we introduced runtime PM for HID sensors. The opposite process happens during resume process. To fix this, we do powerup process of the sensors only when the request is issued from user (raw or tiggerred). In this way when runtime, resume calls for powerup it will simply return as this will not match user requested state. Note this is a regression fix as the increase in suspend / resume times can be substantial (report of 8 seconds on Len's laptop!) Signed-off-by: Srinivas Pandruvada Tested-by: Len Brown Cc: Signed-off-by: Jonathan Cameron drivers/iio/common/hid-sensors/hid-sensor-trigger.c | 11 ++++++++++- include/linux/hid-sensor-hub.h | 1 + 2 files changed, 11 insertions(+), 1 deletion(-) commit fcc53b5f6c38acbf5d311ffc3e0da517491c6f7b Author: Markos Chandras Date: Thu Jul 16 15:30:04 2015 +0100 MIPS: fpu.h: Allow 64-bit FPU on a 64-bit MIPS R6 CPU Commit 6134d94923d0 ("MIPS: asm: fpu: Allow 64-bit FPU on MIPS32 R6") added support for 64-bit FPU on a 32-bit MIPS R6 processor but it missed the 64-bit CPU case leading to FPU failures when requesting FR=1 mode (which is always the case for MIPS R6 userland) when running a 32-bit kernel on a 64-bit CPU. We also fix the MIPS R2 case. Signed-off-by: Markos Chandras Fixes: 6134d94923d0 ("MIPS: asm: fpu: Allow 64-bit FPU on MIPS32 R6") Reviewed-by: Paul Burton Cc: # 4.0+ Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10734/ Signed-off-by: Ralf Baechle arch/mips/include/asm/fpu.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4c4ac9a48ac512c6b5a6cca06cfad2ad96e8caaa Author: Christophe Jaillet Date: Mon Jul 13 11:32:43 2015 +0200 parisc: mm: Fix a memory leak related to pmd not attached to the pgd Commit 0e0da48dee8d ("parisc: mm: don't count preallocated pmds") introduced a memory leak. After this commit, the 'return' statement in pmd_free is executed in all cases. Even for pmd that are not attached to the pgd. So 'free_pages' can never be called anymore, leading to a memory leak. Signed-off-by: Christophe JAILLET Acked-by: Kirill A. Shutemov Acked-by: Mikulas Patocka Acked-by: Helge Deller Cc: stable@vger.kernel.org # v4.0+ Signed-off-by: Helge Deller arch/parisc/include/asm/pgalloc.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 3eae03daa538303e0d28f56412c6c51f6452e493 Merge: 47295aa a927ef8 Author: Olof Johansson Date: Sat Jul 18 21:06:10 2015 -0700 Merge tag 'pxa-fixes-v4.2-rc2' of https://github.com/rjarzmik/linux into fixesD Merge "pxa fixes for v4.2" from Robert Jarzmik: ARM: pxa: fixes for v4.2-rc2 This single fix reenables ethernet cards for several pxa boards, broken by regulator addition to dm9000 driver. * tag 'pxa-fixes-v4.2-rc2' of https://github.com/rjarzmik/linux: ARM: pxa: fix dm9000 platform data regression commit 9d37e6679dfddbb5fa605fb2d7ff448f7cd6d038 Merge: 0e1dbcc 0871b72 Author: Linus Torvalds Date: Sat Jul 18 11:03:48 2015 -0700 Merge branch 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm Pull ARM fixes from Russell King: "A small set of ARM fixes for -rc3, most of them not far off one-liners, with the exception of fixing the V7 cache invalidation for incoming SMP processors which was causing problems for SoCFPGA devices" * 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm: ARM: fix __virt_to_idmap build error on !MMU ARM: invalidate L1 before enabling coherency ARM: 8404/1: dma-mapping: fix off-by-one error in bitmap size check ARM: 8402/1: perf: Don't use of_node after putting it ARM: 8400/1: use virt_to_idmap to get phys_reset address commit 0e1dbccd8f60c1c83d86d693bb87363b7de2319c Merge: dae57fb 5aaeb5c Author: Linus Torvalds Date: Sat Jul 18 10:49:57 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: "Two families of fixes: - Fix an FPU context related boot crash on newer x86 hardware with larger context sizes than what most people test. To fix this without ugly kludges or extensive reverts we had to touch core task allocator, to allow x86 to determine the task size dynamically, at boot time. I've tested it on a number of x86 platforms, and I cross-built it to a handful of architectures: (warns) (warns) testing x86-64: -git: pass ( 0), -tip: pass ( 0) testing x86-32: -git: pass ( 0), -tip: pass ( 0) testing arm: -git: pass ( 1359), -tip: pass ( 1359) testing cris: -git: pass ( 1031), -tip: pass ( 1031) testing m32r: -git: pass ( 1135), -tip: pass ( 1135) testing m68k: -git: pass ( 1471), -tip: pass ( 1471) testing mips: -git: pass ( 1162), -tip: pass ( 1162) testing mn10300: -git: pass ( 1058), -tip: pass ( 1058) testing parisc: -git: pass ( 1846), -tip: pass ( 1846) testing sparc: -git: pass ( 1185), -tip: pass ( 1185) ... so I hope the cross-arch impact 'none', as intended. (by Dave Hansen) - Fix various NMI handling related bugs unearthed by the big asm code rewrite and generally make the NMI code more robust and more maintainable while at it. These changes are a bit late in the cycle, I hope they are still acceptable. (by Andy Lutomirski)" * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/fpu, sched: Introduce CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT and use it on x86 x86/fpu, sched: Dynamically allocate 'struct fpu' x86/entry/64, x86/nmi/64: Add CONFIG_DEBUG_ENTRY NMI testing code x86/nmi/64: Make the "NMI executing" variable more consistent x86/nmi/64: Minor asm simplification x86/nmi/64: Use DF to avoid userspace RSP confusing nested NMI detection x86/nmi/64: Reorder nested NMI checks x86/nmi/64: Improve nested NMI comments x86/nmi/64: Switch stacks on userspace NMI entry x86/nmi/64: Remove asm code that saves CR2 x86/nmi: Enable nested do_nmi() handling for 64-bit kernels commit dae57fb64ef636a225d3e6c0ddbbc8e32674dd81 Merge: d65b78f 0f44705 Author: Linus Torvalds Date: Sat Jul 18 10:49:11 2015 -0700 Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull timer fix from Ingo Molnar: "Fix for a misplaced export that can cause build failures in certain (rare) Kconfig situations" * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: tick: Move the export of tick_broadcast_oneshot_control to the proper place commit d65b78f5d85b0988b6541f52dadc553f15f51949 Merge: f79a17b d49db34 Author: Linus Torvalds Date: Sat Jul 18 10:47:44 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: "A oneliner rq throttling fix" * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: sched/fair: Test list head instead of list entry in throttle_cfs_rq() commit f79a17bf268cc043eecffb65033b2e58fc037eef Merge: 59ee762 a6acd6a Author: Linus Torvalds Date: Sat Jul 18 10:44:21 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, plus a static key fix fixing /sys/devices/cpu/rdpmc" * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: perf tools: Really allow to specify custom CC, AR or LD perf auxtrace: Fix misplaced check for HAVE_SYNC_COMPARE_AND_SWAP_SUPPORT perf hists browser: Take the --comm, --dsos, etc filters into account perf symbols: Store if there is a filter in place x86, perf: Fix static_key bug in load_mm_cr4() tools: Copy lib/hweight.c from the kernel sources perf tools: Fix the detached tarball wrt rbtree copy perf thread_map: Fix the sizeof() calculation for map entries tools lib: Improve clean target perf stat: Fix shadow declaration of close perf tools: Fix lockup using 32-bit compat vdso commit 59ee762156f5c6c7238ca3abe5762690aa65808b Merge: 3a26a5b 591e5be Author: Linus Torvalds Date: Sat Jul 18 10:27:12 2015 -0700 Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull irq fixes from Ingo Molnar: "Misc irq fixes: - two driver fixes - a Xen regression fix - a nested irq thread crash fix" * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: irqchip/gicv3-its: Fix mapping of LPIs to collections genirq: Prevent resend to interrupts marked IRQ_NESTED_THREAD genirq: Revert sparse irq locking around __cpu_up() and move it to x86 for now gpio/davinci: Fix race in installing chained irq handler commit 3a26a5b1513cddfc018c8e264979bc6e28f8ec1f Merge: 8be5701 5a09e6c Author: Linus Torvalds Date: Sat Jul 18 10:01:04 2015 -0700 Merge branch 'akpm' (patches from Andrew) Merge fixes from Andrew Morton: "25 fixes" * emailed patches from Andrew Morton : (25 commits) lib/decompress: set the compressor name to NULL on error mm/cma_debug: correct size input to bitmap function mm/cma_debug: fix debugging alloc/free interface mm/page_owner: set correct gfp_mask on page_owner mm/page_owner: fix possible access violation fsnotify: fix oops in fsnotify_clear_marks_by_group_flags() /proc/$PID/cmdline: fixup empty ARGV case dma-debug: skip debug_dma_assert_idle() when disabled hexdump: fix for non-aligned buffers checkpatch: fix long line messages about patch context mm: clean up per architecture MM hook header files MAINTAINERS: uclinux-h8-devel is moderated for non-subscribers mailmap: update Sudeep Holla's email id Update Viresh Kumar's email address mm, meminit: suppress unused memory variable warning configfs: fix kernel infoleak through user-controlled format string include, lib: add __printf attributes to several function prototypes s390/hugetlb: add hugepages_supported define mm: hugetlb: allow hugepages_supported to be architecture specific revert "s390/mm: make hugepages_supported a boot time decision" ... commit 8be5701342790eb42c67f4f8609e203d6a461a4a Merge: dfe91c9 ed95876 Author: Linus Torvalds Date: Fri Jul 17 21:46:57 2015 -0700 Merge branch 'for-linus-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs Pull btrfs fixes from Chris Mason: "These are all from Filipe, and cover a few problems we've had reported on the list recently (along with ones he found on his own)" * 'for-linus-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: Btrfs: fix file corruption after cloning inline extents Btrfs: fix order by which delayed references are run Btrfs: fix list transaction->pending_ordered corruption Btrfs: fix memory leak in the extent_same ioctl Btrfs: fix shrinking truncate when the no_holes feature is enabled commit dfe91c9766578f2ec24ebf53b7fd07e288f170d1 Merge: 3f8476f d80238b Author: Linus Torvalds Date: Fri Jul 17 21:24:31 2015 -0700 Merge tag 'rtc-v4.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux Pull rtc fixes from Alexandre Belloni: "A few fixes for the RTC susbsystem for 4.2. The mt6397 driver was introduce in 4.2 so it is worth fixing before the final release. I though the compilation warning for armada38x was fixed by akpm in commit f98b733e93e0 ("rtc-armada38x.c: remove unused local `flags'") but he actually missed some occurrences of the variables. Since I received 4 patches for that, I think we can include it now. Summary: - fix mt6397 wakealarm creation - remove a compilation warning for armada38x that was forgotten" * tag 'rtc-v4.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux: rtc: armada38x: Remove unused variable from armada38x_rtc_set_time() rtc: mt6397: enable wakeup before registering rtc device commit 3f8476fe892c58c0583f98f17e98fd67c3fec466 Merge: eb25437 665022d Author: Linus Torvalds Date: Fri Jul 17 20:53:57 2015 -0700 Merge tag 'dm-4.2-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm Pull device mapper fixes from Mike Snitzer: - revert a request-based DM core change that caused IO latency to increase and adversely impact both throughput and system load - fix for a use after free bug in DM core's device cleanup - a couple DM btree removal fixes (used by dm-thinp) - a DM thinp fix for order-5 allocation failure - a DM thinp fix to not degrade to read-only metadata mode when in out-of-data-space mode for longer than the 'no_space_timeout' - fix a long-standing oversight in both dm-thinp and dm-cache by now exporting 'needs_check' in status if it was set in metadata - fix an embarrassing dm-cache busy-loop that caused worker threads to eat cpu even if no IO was actively being issued to the cache device * tag 'dm-4.2-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm: dm cache: avoid calls to prealloc_free_structs() if possible dm cache: avoid preallocation if no work in writeback_some_dirty_blocks() dm cache: do not wake_worker() in free_migration() dm cache: display 'needs_check' in status if it is set dm thin: display 'needs_check' in status if it is set dm thin: stay in out-of-data-space mode once no_space_timeout expires dm: fix use after free crash due to incorrect cleanup sequence Revert "dm: only run the queue on completion if congested or no requests pending" dm btree: silence lockdep lock inversion in dm_btree_del() dm thin: allocate the cell_sort_array dynamically dm btree remove: fix bug in redistribute3 commit 5aaeb5c01c5b6c0be7b7aadbf3ace9f3a4458c3d Author: Ingo Molnar Date: Fri Jul 17 12:28:12 2015 +0200 x86/fpu, sched: Introduce CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT and use it on x86 Don't burden architectures without dynamic task_struct sizing with the overhead of dynamic sizing. Also optimize the x86 code a bit by caching task_struct_size. Acked-and-Tested-by: Dave Hansen Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Dave Hansen Cc: Denys Vlasenko Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1437128892-9831-3-git-send-email-mingo@kernel.org Signed-off-by: Ingo Molnar arch/Kconfig | 4 ++++ arch/x86/Kconfig | 1 + arch/x86/kernel/fpu/init.c | 17 +++++++++-------- arch/x86/kernel/process.c | 2 +- fs/proc/kcore.c | 4 ++-- include/linux/sched.h | 6 +++++- kernel/fork.c | 11 +++++------ 7 files changed, 27 insertions(+), 18 deletions(-) commit 0c8c0f03e3a292e031596484275c14cf39c0ab7a Author: Dave Hansen Date: Fri Jul 17 12:28:11 2015 +0200 x86/fpu, sched: Dynamically allocate 'struct fpu' The FPU rewrite removed the dynamic allocations of 'struct fpu'. But, this potentially wastes massive amounts of memory (2k per task on systems that do not have AVX-512 for instance). Instead of having a separate slab, this patch just appends the space that we need to the 'task_struct' which we dynamically allocate already. This saves from doing an extra slab allocation at fork(). The only real downside here is that we have to stick everything and the end of the task_struct. But, I think the BUILD_BUG_ON()s I stuck in there should keep that from being too fragile. Signed-off-by: Dave Hansen Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Dave Hansen Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1437128892-9831-2-git-send-email-mingo@kernel.org Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/types.h | 72 +++++++++++++++++++++------------------- arch/x86/include/asm/processor.h | 10 ++++-- arch/x86/kernel/fpu/init.c | 39 ++++++++++++++++++++++ arch/x86/kernel/process.c | 2 +- fs/proc/kcore.c | 4 +-- include/linux/sched.h | 12 +++++-- kernel/fork.c | 8 ++++- 7 files changed, 104 insertions(+), 43 deletions(-) commit 5a09e6ce90e1bf26f0915e7e31329402766ffead Author: Aneesh Kumar K.V Date: Fri Jul 17 16:24:26 2015 -0700 lib/decompress: set the compressor name to NULL on error Without this we end up using the previous name of the compressor in the loop in unpack_rootfs. For example we get errors like "compression method gzip not configured" even when we have CONFIG_DECOMPRESS_GZIP enabled. Signed-off-by: Aneesh Kumar K.V Cc: "H. Peter Anvin" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/decompress.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit d56e84b4064d65285161d6bfa04382e1cdd4e49c Author: Joonsoo Kim Date: Fri Jul 17 16:24:23 2015 -0700 mm/cma_debug: correct size input to bitmap function In CMA, 1 bit in bitmap means 1 << order_per_bits pages so size of bitmap is cma->count >> order_per_bits rather than just cma->count. This patch fixes it. Signed-off-by: Joonsoo Kim Acked-by: Michal Nazarewicz Cc: Sasha Levin Cc: Stefan Strogin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/cma_debug.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 2292c0b1c4a24da54e29b3cf0645b4a4d9c3f2c7 Author: Joonsoo Kim Date: Fri Jul 17 16:24:20 2015 -0700 mm/cma_debug: fix debugging alloc/free interface CMA has alloc/free interface for debugging. It is intended that alloc/free occurs in specific CMA region, but, currently, alloc/free interface is on root dir due to the bug so we can't select CMA region where alloc/free happens. This patch fixes this problem by making alloc/free interface per CMA region. Signed-off-by: Joonsoo Kim Acked-by: Michal Nazarewicz Cc: Sasha Levin Cc: Stefan Strogin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/cma_debug.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e2cfc91120fa01e3458167054af993fb83d7d0ec Author: Joonsoo Kim Date: Fri Jul 17 16:24:18 2015 -0700 mm/page_owner: set correct gfp_mask on page_owner Currently, we set wrong gfp_mask to page_owner info in case of isolated freepage by compaction and split page. It causes incorrect mixed pageblock report that we can get from '/proc/pagetypeinfo'. This metric is really useful to measure fragmentation effect so should be accurate. This patch fixes it by setting correct information. Without this patch, after kernel build workload is finished, number of mixed pageblock is 112 among roughly 210 movable pageblocks. But, with this fix, output shows that mixed pageblock is just 57. Signed-off-by: Joonsoo Kim Cc: Mel Gorman Cc: Vlastimil Babka Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/page_owner.h | 13 +++++++++++++ mm/page_alloc.c | 8 +++++--- mm/page_owner.c | 7 +++++++ 3 files changed, 25 insertions(+), 3 deletions(-) commit f3a14ced32513d103a3ed0ce89c4e713fac01461 Author: Joonsoo Kim Date: Fri Jul 17 16:24:15 2015 -0700 mm/page_owner: fix possible access violation When I tested my new patches, I found that page pointer which is used for setting page_owner information is changed. This is because page pointer is used to set new migratetype in loop. After this work, page pointer could be out of bound. If this wrong pointer is used for page_owner, access violation happens. Below is error message that I got. BUG: unable to handle kernel paging request at 0000000000b00018 IP: [] save_stack_address+0x30/0x40 PGD 1af2d067 PUD 166e0067 PMD 0 Oops: 0002 [#1] SMP ...snip... Call Trace: print_context_stack+0xcf/0x100 dump_trace+0x15f/0x320 save_stack_trace+0x2f/0x50 __set_page_owner+0x46/0x70 __isolate_free_page+0x1f7/0x210 split_free_page+0x21/0xb0 isolate_freepages_block+0x1e2/0x410 compaction_alloc+0x22d/0x2d0 migrate_pages+0x289/0x8b0 compact_zone+0x409/0x880 compact_zone_order+0x6d/0x90 try_to_compact_pages+0x110/0x210 __alloc_pages_direct_compact+0x3d/0xe6 __alloc_pages_nodemask+0x6cd/0x9a0 alloc_pages_current+0x91/0x100 runtest_store+0x296/0xa50 simple_attr_write+0xbd/0xe0 __vfs_write+0x28/0xf0 vfs_write+0xa9/0x1b0 SyS_write+0x46/0xb0 system_call_fastpath+0x16/0x75 This patch fixes this error by moving up set_page_owner(). Signed-off-by: Joonsoo Kim Cc: Mel Gorman Cc: Vlastimil Babka Acked-by: Minchan Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/page_alloc.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit a2673b6e040663bf16a552f8619e6bde9f4b9acf Author: Jan Kara Date: Fri Jul 17 16:24:12 2015 -0700 fsnotify: fix oops in fsnotify_clear_marks_by_group_flags() fsnotify_clear_marks_by_group_flags() can race with fsnotify_destroy_marks() so when fsnotify_destroy_mark_locked() drops mark_mutex, a mark from the list iterated by fsnotify_clear_marks_by_group_flags() can be freed and we dereference free memory in the loop there. Fix the problem by keeping mark_mutex held in fsnotify_destroy_mark_locked(). The reason why we drop that mutex is that we need to call a ->freeing_mark() callback which may acquire mark_mutex again. To avoid this and similar lock inversion issues, we move the call to ->freeing_mark() callback to the kthread destroying the mark. Signed-off-by: Jan Kara Reported-by: Ashish Sangwan Suggested-by: Lino Sanfilippo Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/notify/mark.c | 34 ++++++++++++++-------------------- 1 file changed, 14 insertions(+), 20 deletions(-) commit 3581d458c39bc5e58ceeeaf51796625bc978d2eb Author: Alexey Dobriyan Date: Fri Jul 17 16:24:09 2015 -0700 /proc/$PID/cmdline: fixup empty ARGV case /proc/*/cmdline code checks if it should look at ENVP area by checking last byte of ARGV area: rv = access_remote_vm(mm, arg_end - 1, &c, 1, 0); if (rv <= 0) goto out_free_page; If ARGV is somehow made empty (by doing execve(..., NULL, ...) or manually setting ->arg_start and ->arg_end to equal values), the decision will be based on byte which doesn't even belong to ARGV/ENVP. So, quickly check if ARGV area is empty and report 0 to match previous behaviour. Signed-off-by: Alexey Dobriyan Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/proc/base.c | 5 +++++ 1 file changed, 5 insertions(+) commit c9d120b0b2b5069cb2ae62f8eac0cef31c8544be Author: Haggai Eran Date: Fri Jul 17 16:24:06 2015 -0700 dma-debug: skip debug_dma_assert_idle() when disabled If dma-debug is disabled due to a memory error, DMA unmaps do not affect the dma_active_cacheline radix tree anymore, and debug_dma_assert_idle() can print false warnings. Disable debug_dma_assert_idle() when dma_debug_disabled() is true. Signed-off-by: Haggai Eran Fixes: 0abdd7a81b7e ("dma-debug: introduce debug_dma_assert_idle()") Cc: Dan Williams Cc: Joerg Roedel Cc: Vinod Koul Cc: Russell King Cc: James Bottomley Cc: Florian Fainelli Cc: Sebastian Ott Cc: Jiri Kosina Cc: Horia Geanta Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/dma-debug.c | 3 +++ 1 file changed, 3 insertions(+) commit 0f70fe605fad0f3215818ba79fc12617c0ec7f90 Author: Horacio Mijail Anton Quiles Date: Fri Jul 17 16:24:04 2015 -0700 hexdump: fix for non-aligned buffers A hexdump with a buf not aligned to the groupsize causes non-naturally-aligned memory accesses. This was causing a kernel panic on the processor BlackFin BF527, when such an unaligned buffer was fed by the function ubifs_scanned_corruption in fs/ubifs/scan.c . To fix this, change accesses to the contents of the buffer so they go through get_unaligned(). This change should be harmless to unaligned- access-capable architectures, and any performance hit should be anyway dwarfed by the snprintf() processing time. Signed-off-by: Horacio Mijail Antón Quiles Cc: Andy Shevchenko Cc: David Howells Cc: Vivek Goyal Cc: Joe Perches Acked-by: Geert Uytterhoeven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/hexdump.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit b4749e96a4a872c2496602566f205547c4e3c950 Author: Joe Perches Date: Fri Jul 17 16:24:01 2015 -0700 checkpatch: fix long line messages about patch context Changes in ("checkpatch: categorize some long line length checks") now erroneously reports long line defects in patch context. Fix it. Signed-off-by: Joe Perches Reported-by: Dan Carpenter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/checkpatch.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f2abeef9fd6f03ebf417539ed099828a56733098 Author: Laurent Dufour Date: Fri Jul 17 16:23:58 2015 -0700 mm: clean up per architecture MM hook header files Commit 2ae416b142b6 ("mm: new mm hook framework") introduced an empty header file (mm-arch-hooks.h) for every architecture, even those which doesn't need to define mm hooks. As suggested by Geert Uytterhoeven, this could be cleaned through the use of a generic header file included via each per architecture asm/include/Kbuild file. The PowerPC architecture is not impacted here since this architecture has to defined the arch_remap MM hook. Signed-off-by: Laurent Dufour Suggested-by: Geert Uytterhoeven Acked-by: Geert Uytterhoeven Acked-by: Vineet Gupta Cc: Oleg Nesterov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/alpha/include/asm/Kbuild | 1 + arch/alpha/include/asm/mm-arch-hooks.h | 15 --------------- arch/arc/include/asm/Kbuild | 1 + arch/arc/include/asm/mm-arch-hooks.h | 15 --------------- arch/arm/include/asm/Kbuild | 1 + arch/arm/include/asm/mm-arch-hooks.h | 15 --------------- arch/arm64/include/asm/Kbuild | 1 + arch/arm64/include/asm/mm-arch-hooks.h | 15 --------------- arch/avr32/include/asm/Kbuild | 1 + arch/avr32/include/asm/mm-arch-hooks.h | 15 --------------- arch/blackfin/include/asm/Kbuild | 1 + arch/blackfin/include/asm/mm-arch-hooks.h | 15 --------------- arch/c6x/include/asm/Kbuild | 1 + arch/c6x/include/asm/mm-arch-hooks.h | 15 --------------- arch/cris/include/asm/Kbuild | 1 + arch/cris/include/asm/mm-arch-hooks.h | 15 --------------- arch/frv/include/asm/Kbuild | 1 + arch/frv/include/asm/mm-arch-hooks.h | 15 --------------- arch/h8300/include/asm/Kbuild | 1 + arch/hexagon/include/asm/Kbuild | 1 + arch/hexagon/include/asm/mm-arch-hooks.h | 15 --------------- arch/ia64/include/asm/Kbuild | 1 + arch/ia64/include/asm/mm-arch-hooks.h | 15 --------------- arch/m32r/include/asm/Kbuild | 1 + arch/m32r/include/asm/mm-arch-hooks.h | 15 --------------- arch/m68k/include/asm/Kbuild | 1 + arch/m68k/include/asm/mm-arch-hooks.h | 15 --------------- arch/metag/include/asm/Kbuild | 1 + arch/metag/include/asm/mm-arch-hooks.h | 15 --------------- arch/microblaze/include/asm/Kbuild | 1 + arch/microblaze/include/asm/mm-arch-hooks.h | 15 --------------- arch/mips/include/asm/Kbuild | 1 + arch/mips/include/asm/mm-arch-hooks.h | 15 --------------- arch/mn10300/include/asm/Kbuild | 1 + arch/mn10300/include/asm/mm-arch-hooks.h | 15 --------------- arch/nios2/include/asm/Kbuild | 1 + arch/nios2/include/asm/mm-arch-hooks.h | 15 --------------- arch/openrisc/include/asm/Kbuild | 1 + arch/openrisc/include/asm/mm-arch-hooks.h | 15 --------------- arch/parisc/include/asm/Kbuild | 1 + arch/parisc/include/asm/mm-arch-hooks.h | 15 --------------- arch/s390/include/asm/Kbuild | 1 + arch/s390/include/asm/mm-arch-hooks.h | 15 --------------- arch/score/include/asm/Kbuild | 1 + arch/score/include/asm/mm-arch-hooks.h | 15 --------------- arch/sh/include/asm/Kbuild | 1 + arch/sh/include/asm/mm-arch-hooks.h | 15 --------------- arch/sparc/include/asm/Kbuild | 1 + arch/sparc/include/asm/mm-arch-hooks.h | 15 --------------- arch/tile/include/asm/Kbuild | 1 + arch/tile/include/asm/mm-arch-hooks.h | 15 --------------- arch/um/include/asm/Kbuild | 1 + arch/um/include/asm/mm-arch-hooks.h | 15 --------------- arch/unicore32/include/asm/Kbuild | 1 + arch/unicore32/include/asm/mm-arch-hooks.h | 15 --------------- arch/x86/include/asm/Kbuild | 1 + arch/x86/include/asm/mm-arch-hooks.h | 15 --------------- arch/xtensa/include/asm/Kbuild | 1 + arch/xtensa/include/asm/mm-arch-hooks.h | 15 --------------- include/asm-generic/mm-arch-hooks.h | 16 ++++++++++++++++ 60 files changed, 46 insertions(+), 435 deletions(-) commit b992c7689a4d2f76109b6a544acbdc7cee937546 Author: Geert Uytterhoeven Date: Fri Jul 17 16:23:55 2015 -0700 MAINTAINERS: uclinux-h8-devel is moderated for non-subscribers Signed-off-by: Geert Uytterhoeven Cc: Yoshinori Sato Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds MAINTAINERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5248e3a9b441f655b275fbaeebd34854b9aa3ec2 Author: Sudeep Holla Date: Fri Jul 17 16:23:53 2015 -0700 mailmap: update Sudeep Holla's email id Since the get_maintainer script still reports my old email id based on few old commits, update mailmap to report new/updated address. It also helps to fix email address for 'git shortlog' Signed-off-by: Sudeep Holla Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds .mailmap | 1 + 1 file changed, 1 insertion(+) commit da89947b47a3a355f33a75d7672892c147ed880d Author: Viresh Kumar Date: Fri Jul 17 16:23:50 2015 -0700 Update Viresh Kumar's email address Switch to my kernel.org alias instead of a badly named gmail address, which I rarely use. Signed-off-by: Viresh Kumar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds .mailmap | 4 +++- Documentation/arm/SPEAr/overview.txt | 2 +- MAINTAINERS | 12 ++++++------ arch/arm/boot/dts/spear1310-evb.dts | 2 +- arch/arm/boot/dts/spear1310.dtsi | 2 +- arch/arm/boot/dts/spear1340-evb.dts | 2 +- arch/arm/boot/dts/spear1340.dtsi | 2 +- arch/arm/boot/dts/spear13xx.dtsi | 2 +- arch/arm/boot/dts/spear300-evb.dts | 2 +- arch/arm/boot/dts/spear300.dtsi | 2 +- arch/arm/boot/dts/spear310-evb.dts | 2 +- arch/arm/boot/dts/spear310.dtsi | 2 +- arch/arm/boot/dts/spear320-evb.dts | 2 +- arch/arm/boot/dts/spear320.dtsi | 2 +- arch/arm/boot/dts/spear3xx.dtsi | 2 +- arch/arm/mach-spear/generic.h | 2 +- arch/arm/mach-spear/include/mach/irqs.h | 2 +- arch/arm/mach-spear/include/mach/misc_regs.h | 2 +- arch/arm/mach-spear/include/mach/spear.h | 2 +- arch/arm/mach-spear/include/mach/uncompress.h | 2 +- arch/arm/mach-spear/pl080.c | 2 +- arch/arm/mach-spear/pl080.h | 2 +- arch/arm/mach-spear/restart.c | 2 +- arch/arm/mach-spear/spear1310.c | 2 +- arch/arm/mach-spear/spear1340.c | 2 +- arch/arm/mach-spear/spear13xx.c | 2 +- arch/arm/mach-spear/spear300.c | 2 +- arch/arm/mach-spear/spear310.c | 2 +- arch/arm/mach-spear/spear320.c | 2 +- arch/arm/mach-spear/spear3xx.c | 2 +- drivers/ata/pata_arasan_cf.c | 4 ++-- drivers/clk/spear/clk-aux-synth.c | 2 +- drivers/clk/spear/clk-frac-synth.c | 2 +- drivers/clk/spear/clk-gpt-synth.c | 2 +- drivers/clk/spear/clk-vco-pll.c | 2 +- drivers/clk/spear/clk.c | 2 +- drivers/clk/spear/clk.h | 2 +- drivers/clk/spear/spear1310_clock.c | 2 +- drivers/clk/spear/spear1340_clock.c | 2 +- drivers/clk/spear/spear3xx_clock.c | 2 +- drivers/clk/spear/spear6xx_clock.c | 2 +- drivers/dma/dw/core.c | 2 +- drivers/irqchip/spear-shirq.c | 2 +- drivers/mfd/stmpe-i2c.c | 2 +- drivers/mfd/stmpe-spi.c | 4 ++-- drivers/mmc/host/sdhci-spear.c | 4 ++-- drivers/pinctrl/spear/pinctrl-spear.c | 2 +- drivers/pinctrl/spear/pinctrl-spear.h | 2 +- drivers/pinctrl/spear/pinctrl-spear1310.c | 4 ++-- drivers/pinctrl/spear/pinctrl-spear1340.c | 4 ++-- drivers/pinctrl/spear/pinctrl-spear300.c | 4 ++-- drivers/pinctrl/spear/pinctrl-spear310.c | 4 ++-- drivers/pinctrl/spear/pinctrl-spear320.c | 4 ++-- drivers/pinctrl/spear/pinctrl-spear3xx.c | 2 +- drivers/pinctrl/spear/pinctrl-spear3xx.h | 2 +- drivers/watchdog/sp805_wdt.c | 4 ++-- include/linux/amba/sp810.h | 2 +- include/linux/pata_arasan_cf_data.h | 2 +- 58 files changed, 74 insertions(+), 72 deletions(-) commit ae026b2aa19350f3c863df2dce7e0511dd78ff49 Author: Mel Gorman Date: Fri Jul 17 16:23:48 2015 -0700 mm, meminit: suppress unused memory variable warning The kbuild test robot reported the following tree: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 14a6f1989dae9445d4532941bdd6bbad84f4c8da commit: 3b242c66ccbd60cf47ab0e8992119d9617548c23 x86: mm: enable deferred struct page initialisation on x86-64 date: 3 days ago config: x86_64-randconfig-x006-201527 (attached as .config) reproduce: git checkout 3b242c66ccbd60cf47ab0e8992119d9617548c23 # save the attached .config to linux build tree make ARCH=x86_64 All warnings (new ones prefixed by >>): mm/page_alloc.c: In function 'early_page_uninitialised': >> mm/page_alloc.c:247:6: warning: unused variable 'nid' [-Wunused-variable] int nid = early_pfn_to_nid(pfn); It's due to the NODE_DATA macro ignoring the nid parameter on !NUMA configurations. This patch avoids the warning by not declaring nid. Signed-off-by: Mel Gorman Reported-by: Wu Fengguang Cc: "Kirill A. Shutemov" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/page_alloc.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 3958b79266b14729edd61daf9dfb84de45f4ec6d Author: Nicolas Iooss Date: Fri Jul 17 16:23:45 2015 -0700 configfs: fix kernel infoleak through user-controlled format string Some modules call config_item_init_type_name() and config_group_init_type_name() with parameter "name" directly controlled by userspace. These two functions call config_item_set_name() with this name used as a format string, which can be used to leak information such as content of the stack to userspace. For example, make_netconsole_target() in netconsole module calls config_item_init_type_name() with the name of a newly-created directory. This means that the following commands give some unexpected output, with configfs mounted in /sys/kernel/config/ and on a system with a configured eth0 ethernet interface: # modprobe netconsole # mkdir /sys/kernel/config/netconsole/target_%lx # echo eth0 > /sys/kernel/config/netconsole/target_%lx/dev_name # echo 1 > /sys/kernel/config/netconsole/target_%lx/enabled # echo eth0 > /sys/kernel/config/netconsole/target_%lx/dev_name # dmesg |tail -n1 [ 142.697668] netconsole: target (target_ffffffffc0ae8080) is enabled, disable to update parameters The directory name is correct but %lx has been interpreted in the internal item name, displayed here in the error message used by store_dev_name() in drivers/net/netconsole.c. To fix this, update every caller of config_item_set_name to use "%s" when operating on untrusted input. This issue was found using -Wformat-security gcc flag, once a __printf attribute has been added to config_item_set_name(). Signed-off-by: Nicolas Iooss Acked-by: Greg Kroah-Hartman Acked-by: Felipe Balbi Acked-by: Joel Becker Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/usb/gadget/configfs.c | 2 +- fs/configfs/item.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit 8db1486065141e619e4855b84e350ef32064f7e1 Author: Nicolas Iooss Date: Fri Jul 17 16:23:42 2015 -0700 include, lib: add __printf attributes to several function prototypes Using __printf attributes helps to detect several format string issues at compile time (even though -Wformat-security is currently disabled in Makefile). For example it can detect when formatting a pointer as a number, like the issue fixed in commit a3fa71c40f18 ("wl18xx: show rx_frames_per_rates as an array as it really is"), or when the arguments do not match the format string, c.f. for example commit 5ce1aca81435 ("reiserfs: fix __RASSERT format string"). To prevent similar bugs in the future, add a __printf attribute to every function prototype which needs one in include/linux/ and lib/. These functions were mostly found by using gcc's -Wsuggest-attribute=format flag. Signed-off-by: Nicolas Iooss Cc: Greg Kroah-Hartman Cc: Felipe Balbi Cc: Joel Becker Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/clkdev.h | 7 ++++--- include/linux/compat.h | 2 +- include/linux/configfs.h | 3 ++- include/linux/cpu.h | 7 ++++--- include/linux/dcache.h | 3 ++- include/linux/device.h | 15 +++++++-------- include/linux/iommu.h | 2 +- include/linux/kernel.h | 9 +++++---- include/linux/kobject.h | 5 +++-- include/linux/mmiotrace.h | 2 +- include/linux/printk.h | 6 +++--- lib/kobject.c | 5 +++-- 12 files changed, 36 insertions(+), 30 deletions(-) commit 7f9be77555bb2e52de84e9dddf7b4eb20cc6e171 Author: Dominik Dingel Date: Fri Jul 17 16:23:39 2015 -0700 s390/hugetlb: add hugepages_supported define On s390 we only can enable hugepages if the underlying hardware/hypervisor also does support this. Common code now would assume this to be signaled by setting HPAGE_SHIFT to 0. But on s390, where we only support one hugepage size, there is a link between HPAGE_SHIFT and pageblock_order. So instead of setting HPAGE_SHIFT to 0, we will implement the check for the hardware capability. Signed-off-by: Dominik Dingel Acked-by: Martin Schwidefsky Cc: Heiko Carstens Cc: Christian Borntraeger Cc: Michael Holzheu Cc: Gerald Schaefer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/s390/include/asm/hugetlb.h | 1 + 1 file changed, 1 insertion(+) commit 2531c8cf56a640cd7d17057df8484e570716a450 Author: Dominik Dingel Date: Fri Jul 17 16:23:37 2015 -0700 mm: hugetlb: allow hugepages_supported to be architecture specific s390 has a constant hugepage size, by setting HPAGE_SHIFT we also change e.g. the pageblock_order, which should be independent in respect to hugepage support. With this patch every architecture is free to define how to check for hugepage support. Signed-off-by: Dominik Dingel Acked-by: Martin Schwidefsky Cc: Heiko Carstens Cc: Christian Borntraeger Cc: Michael Holzheu Cc: Gerald Schaefer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/hugetlb.h | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) commit 41318bfe2af5a4bc3c3a2f904b0cd3679f952c75 Author: Dominik Dingel Date: Fri Jul 17 16:23:34 2015 -0700 revert "s390/mm: make hugepages_supported a boot time decision" Heiko noticed that the current check for hugepage support on s390 is a little bit too harsh as systems which do not support will crash. The reason is that pageblock_order can now get negative when we set HPAGE_SHIFT to 0. To avoid all this and to avoid opening another can of worms with enabling HUGETLB_PAGE_SIZE_VARIABLE I think it would be best to simply allow architectures to define their own hugepages_supported(). Revert bea41197ead3 ("s390/mm: make hugepages_supported a boot time decision") in preparation. Signed-off-by: Dominik Dingel Acked-by: Martin Schwidefsky Cc: Heiko Carstens Cc: Christian Borntraeger Cc: Michael Holzheu Cc: Gerald Schaefer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/s390/include/asm/page.h | 8 ++++---- arch/s390/kernel/setup.c | 2 -- arch/s390/mm/pgtable.c | 2 -- 3 files changed, 4 insertions(+), 8 deletions(-) commit ad4f99e888192e53d463cab75075e88e65ad7d50 Author: Dominik Dingel Date: Fri Jul 17 16:23:31 2015 -0700 revert "s390/mm: change HPAGE_SHIFT type to int" Heiko noticed that the current check for hugepage support on s390 is a little bit too harsh as systems which do not support will crash. The reason is that pageblock_order can now get negative when we set HPAGE_SHIFT to 0. To avoid all this and to avoid opening another can of worms with enabling HUGETLB_PAGE_SIZE_VARIABLE I think it would be best to simply allow architectures to define their own hugepages_supported(). This patch (of 4): revert commit cf54e2fce51c ("s390/mm: change HPAGE_SHIFT type to int") in preparation. Signed-off-by: Dominik Dingel Acked-by: Martin Schwidefsky Cc: Heiko Carstens Cc: Christian Borntraeger Cc: Michael Holzheu Cc: Gerald Schaefer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/s390/include/asm/page.h | 2 +- arch/s390/mm/pgtable.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 04ea1e91f85615318ea91ce8ab50cb6a01ee4005 Author: Andrew Morton Date: Fri Jul 17 16:23:28 2015 -0700 openrisc: fix CONFIG_UID16 setting openrisc-allnoconfig: kernel/uid16.c: In function 'SYSC_setgroups16': kernel/uid16.c:184:2: error: implicit declaration of function 'groups_alloc' kernel/uid16.c:184:13: warning: assignment makes pointer from integer without a cast openrisc shouldn't be setting CONFIG_UID16 when CONFIG_MULTIUSER=n. Fixes: 2813893f8b197a1 ("kernel: conditionally support non-root users, groups and capabilities") Reported-by: Fengguang Wu Cc: Iulia Manda Cc: Josh Triplett Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/openrisc/Kconfig | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit fbd7dc744a52ba736f06e112edc31ed9381697d8 Author: Michal Hocko Date: Fri Jul 17 16:23:26 2015 -0700 MAINTAINERS: change mhocko's email address to kernel.org I am moving from mhocko@suse.cz to mhocko@kernel.org for kernel related stuff. Signed-off-by: Michal Hocko Cc: Johannes Weiner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds MAINTAINERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit db5d5b3665291836d31b5a7fe0a2a80079b82554 Author: Iago López Galeiras Date: Fri Jul 17 16:23:23 2015 -0700 fs, proc: add help for CONFIG_PROC_CHILDREN The purpose of the option was documented in Documentation/filesystems/proc.txt but the help text was missing. Add small help text that also points to the documentation. Signed-off-by: Iago López Galeiras Reviewed-by: Jean Delvare Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/proc/Kconfig | 6 ++++++ 1 file changed, 6 insertions(+) commit d8130624b06e6c686e04ee19861e54bff8955ad9 Author: Jiri Slaby Date: Fri Jul 17 16:23:20 2015 -0700 MAINTAINERS: switch to suse.com many-in-one (fwd) Since suse.{de,cz} is deprecated to use (but will still work for some time), switch to suse.com which is now to be used instead. Signed-off-by: Jiri Slaby Acked-by: Alexander Graf Acked-by: David Sterba Acked-by: Hannes Reinecke Acked-by: Jan Kara Acked-by: Jean Delvare Acked-by: Jiri Kosina Acked-by: Michal Marek Acked-by: NeilBrown Acked-by: Oliver Neukum Acked-by: Takashi Iwai Acked-by: Thomas Renninger Acked-by: Tomas Cech Acked-by: Vojtech Pavlik Signed-off-by: Jiri Kosina Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds MAINTAINERS | 92 ++++++++++++++++++++++++++++++------------------------------- 1 file changed, 46 insertions(+), 46 deletions(-) commit d80238bbcad33218c8d34662f144dfb146c2d57b Author: Fabio Estevam Date: Sat Jul 4 15:27:34 2015 -0300 rtc: armada38x: Remove unused variable from armada38x_rtc_set_time() Remove the 'flags' variable in order to fix the following warning: drivers/rtc/rtc-armada38x.c:91:22: warning: unused variable 'flags' [-Wunused-variable] Signed-off-by: Fabio Estevam Signed-off-by: Alexandre Belloni drivers/rtc/rtc-armada38x.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit baeca4495f53bd0c51c24e5467ef1a7ba5e17f6d Author: Wei-Ning Huang Date: Thu Jul 2 16:36:56 2015 +0800 rtc: mt6397: enable wakeup before registering rtc device rtc_sysfs_add_device checks if device can wakeup before creating the wakealarm file in sysfs. Thus the driver must set wakeup capability before registering the rtc device. Signed-off-by: Wei-Ning Huang Acked-by: Eddie Huang Signed-off-by: Alexandre Belloni drivers/rtc/rtc-mt6397.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 25e5eaf19962bd48788371e4f516bdd89ce248bc Author: Christophe JAILLET Date: Fri Jul 17 20:33:21 2015 +0200 ALSA: sparc: Add missing kfree in error path If 'of_ioremap' fails, then 'amd' should be freed, otherwise, there is a memory leak. Signed-off-by: Christophe JAILLET Signed-off-by: Takashi Iwai sound/sparc/amd7930.c | 1 + 1 file changed, 1 insertion(+) commit eb254374a30cc53f976f2302f2198813a3b687ea Merge: 2b3eb6e d309509 Author: Linus Torvalds Date: Fri Jul 17 11:30:59 2015 -0700 Merge tag 'staging-4.2-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging Pull staging and IIO driver fixes from Greg KH: "Here's some staging and IIO driver fixes for 4.2-rc3. Nothing major, the majority are IIO issues that were reported, with a few other minor staging driver fixes. All have been in linux-next for a while with no reported issues" * tag 'staging-4.2-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (25 commits) staging: vt6656: check ieee80211_bss_conf bssid not NULL staging: vt6655: check ieee80211_bss_conf bssid not NULL staging:lustre: remove irq.h from socklnd.h staging: make board support depend on OF_IRQ and CLKDEV_LOOKUP iio: tmp006: Check channel info on write iio: sx9500: Add missing init in sx9500_buffer_pre{en,dis}able() iio:light:ltr501: fix regmap dependency iio:light:ltr501: fix variable in ltr501_init iio: sx9500: fix bug in compensation code iio: sx9500: rework error handling of raw readings iio: magnetometer: mmc35240: fix available sampling frequencies iio:light:stk3310: Fix REGMAP_I2C dependency iio: light: STK3310: un-invert proximity values iio:adc:cc10001_adc: fix Kconfig dependency iio: light: tcs3414: Fix bug preventing to set integration time iio:accel:bmc150-accel: fix counting direction iio:light:cm3323: clear bitmask before set iio: adc: at91_adc: allow to use full range of startup time iio: DAC: ad5624r_spi: fix bit shift of output data value iio: proximity: sx9500: Fix proximity value ... commit 2b3eb6e33723a0d2ce2b2a56dda8a793460d66cc Merge: 1ea2a01c 51f007e Author: Linus Torvalds Date: Fri Jul 17 11:24:31 2015 -0700 Merge tag 'usb-4.2-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb Pull USB driver fixes from Greg KH: "Here's some USB driver fixes for 4.2-rc3. The ususal number of gadget driver fixes are in here, along with some new device ids and a build fix for the mn10300 arch which required some symbols to be renamed in the mos7720 driver. All have been in linux-next for a while with no reported issues" * tag 'usb-4.2-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: USB: serial: Destroy serial_minors IDR on module exit usb: gadget: f_midi: fix error recovery path usb: phy: mxs: suspend to RAM causes NULL pointer dereference usb: gadget: udc: fix free_irq() after request_irq() failed usb: gadget: composite: Fix NULL pointer dereference usb: gadget: f_fs: do not set cancel function on synchronous {read,write} usb: f_mass_storage: limit number of reported LUNs usb: dwc3: core: avoid NULL pointer dereference usb: dwc2: embed storage for reg backup in struct dwc2_hsotg usb: dwc2: host: allocate qtd before atomic enqueue usb: dwc2: host: allocate qh before atomic enqueue usb: musb: host: rely on port_mode to call musb_start() USB: cp210x: add ID for Aruba Networks controllers USB: mos7720: rename registers USB: option: add 2020:4000 ID commit d6726c8145290bef950ae2538ea6ae1d96a1944b Author: Steven Rostedt (Red Hat) Date: Fri Jul 17 14:03:26 2015 -0400 tracing: Fix sample output of dynamic arrays He Kuang noticed that the trace event samples for arrays was broken: "The output result of trace_foo_bar event in traceevent samples is wrong. This problem can be reproduced as following: (Build kernel with SAMPLE_TRACE_EVENTS=m) $ insmod trace-events-sample.ko $ echo 1 > /sys/kernel/debug/tracing/events/sample-trace/foo_bar/enable $ cat /sys/kernel/debug/tracing/trace event-sample-980 [000] .... 43.649559: foo_bar: foo hello 21 0x15 BIT1|BIT3|0x10 {0x1,0x6f6f6e53,0xff007970,0xffffffff} Snoopy ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The array length is not right, should be {0x1}. (ffffffff,ffffffff) event-sample-980 [000] .... 44.653827: foo_bar: foo hello 22 0x16 BIT2|BIT3|0x10 {0x1,0x2,0x646e6147,0x666c61,0xffffffff,0xffffffff,0x750aeffe,0x7} ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The array length is not right, should be {0x1,0x2}. Gandalf (ffffffff,ffffffff)" This was caused by an update to have __print_array()'s second parameter be the count of items in the array and not the size of the array. As there is already users of __print_array(), it can not change. But the sample code can and we can also improve on the documentation about __print_array() and __get_dynamic_array_len(). Link: http://lkml.kernel.org/r/1436839171-31527-2-git-send-email-hekuang@huawei.com Fixes: ac01ce1410fc2 ("tracing: Make ftrace_print_array_seq compute buf_len") Reported-by: He Kuang Signed-off-by: Steven Rostedt samples/trace_events/trace-events-sample.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 1ea2a01c1db326f5b594ac086255ed2d9387603b Merge: 9bca4df 98973f2 Author: Linus Torvalds Date: Fri Jul 17 10:54:30 2015 -0700 Merge tag 'sound-4.2-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound Pull sound fixes from Takashi Iwai: "There are two small fixes for HD-audio and USB LINE6, and the rest are a few new quirks and device ID addition that are good enough to get into 4.2" * tag 'sound-4.2-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: ALSA: hda/realtek: Enable HP amp and mute LED on HP Folio 9480m [v3] ALSA: line6: Fix -EBUSY error during active monitoring ALSA: hda - Fix a wrong busy check in alt PCM open ALSA: hda - add codec ID for Broxton display audio codec ALSA: usb-audio: Add MIDI support for Steinberg MI2/MI4 commit 9bca4df258735087f37568feaca694913f1b5a5f Merge: e05bf4f fdd5040 Author: Linus Torvalds Date: Fri Jul 17 10:40:45 2015 -0700 Merge tag 'gpio-v4.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio Pull GPIO fixes from Linus Walleij: "This is a first set of GPIO fixes for the v4.2 series, all hitting individual drivers and nothing else (except for a documentation oneliner. I intended to send a request earlier but life intervened)" * tag 'gpio-v4.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: gpio: pca953x: fix nested irqs rescheduling gpio: omap: prevent module from being unloaded while in use gpio: max732x: Add missing dev reference to gpiochip gpio/xilinx: Use correct address when setting initial values. gpio: zynq: Fix problem with unbalanced pm_runtime_enable gpio: omap: add missed spin_unlock_irqrestore in omap_gpio_irq_type gpio: brcmstb: fix null ptr dereference in driver remove gpio: Remove double "base" in comment commit 47295aa4380dc990c38f86ec67fea425dcfd64c6 Merge: e0ea136 8b4769c Author: Olof Johansson Date: Fri Jul 17 10:10:22 2015 -0700 Merge tag 'keystone-dts-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/ssantosh/linux-keystone into fixes Merge "ARM: Couple of dts fixes for v4.2-rcx" from Santosh Shilimkar: Couple of DTS fixes 4.2-rcx for Keystone EVMs: K2E EVM boot hangs because of missing serdes driver which is needed to bring up PCIe on K2E. These couple of fixes makes the PCIE disabled on common default and let the specific board DTS to enable it. * tag 'keystone-dts-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/ssantosh/linux-keystone: ARM: keystone: dts: rename pcie nodes to help override status ARM: keystone: dts: fix dt bindings for PCIe Signed-off-by: Olof Johansson commit e05bf4f366ca6dfa9f05e4b3744967953865abba Merge: 21bdb58 e930888 Author: Linus Torvalds Date: Fri Jul 17 10:05:00 2015 -0700 Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux Pull drm fixes from Dave Airlie: "Fixes all over the place. The rockchip and imx fixes I missed while on holidays, so I've queued them now which makes this a bit bigger. The rest is misc amdgpu, radeon, i915 and armada. I think the most important thing is the ioctl fix, we dropped the avoid compat ball, so we get to add a compat wrapper. There is also an i915 revert to avoid a regression with existing userspace" * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: (43 commits) drm/ttm: improve uncached page deallocation. drm/ttm: fix uncached page deallocation to properly fill page pool v3. drm/amdgpu/dce8: Re-set VBLANK interrupt state when enabling a CRTC drm/radeon/ci: silence a harmless PCC warning drm/amdgpu/cz: silence some dpm debug output drm/amdgpu/cz: store the forced dpm level drm/amdgpu/cz: unforce dpm levels before forcing to low/high drm/amdgpu: remove bogus check in gfx8 rb setup drm/amdgpu: set proper index/data pair for smc regs on CZ (v2) drm/amdgpu: disable the IP module if early_init returns -ENOENT (v2) drm/amdgpu: stop context leak in the error path drm/amdgpu: validate the context id in the dependencies drm/radeon: fix user ptr race condition drm/radeon: Don't flush the GART TLB if rdev->gart.ptr == NULL drm/radeon: add a dpm quirk for Sapphire Radeon R9 270X 2GB GDDR5 drm/armada: avoid saving the adjusted mode to crtc->mode drm/armada: fix overlay when partially off-screen drm/armada: convert overlay to use drm_plane_helper_check_update() drm/armada: fix gem object free after failed prime import drm/armada: fix incorrect overlay plane cleanup ... commit 0871b7248113ebfccbfabcd3fd1f867a2bc681f4 Author: Russell King Date: Fri Jul 17 10:33:04 2015 +0100 ARM: fix __virt_to_idmap build error on !MMU Fengguang Wu reports that building ARM with !MMU results in the following build error: arch/arm/kernel/built-in.o: In function `__soft_restart': >> :(.text+0x1624): undefined reference to `arch_virt_to_idmap' Fix this by adding an appropriate IS_ENABLED(CONFIG_MMU) into the __virt_to_idmap() inline function. Signed-off-by: Russell King arch/arm/include/asm/memory.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bac51ad9d14f6baed3730ef53bedc1eb2238563a Author: Russell King Date: Thu Jul 9 00:30:24 2015 +0100 ARM: invalidate L1 before enabling coherency We must invalidate the L1 cache before enabling coherency, otherwise secondary CPUs can inject invalid cache lines into the coherent CPU cluster, which could then be migrated to other CPUs. This fixes a recent regression with SoCFPGA randomly failing to boot. Fixes: 02b4e2756e01 ("ARM: v7 setup function should invalidate L1 cache") Signed-off-by: Russell King arch/arm/mm/proc-v7.S | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) commit 462859aa7bbe1ac83ec4377a0a06fe60778f3f27 Author: Marek Szyprowski Date: Wed Jul 8 13:21:55 2015 +0100 ARM: 8404/1: dma-mapping: fix off-by-one error in bitmap size check nr_bitmaps member of mapping structure stores the number of already allocated bitmaps and it is interpreted as loop iterator (it starts from 0 not from 1), so a comparison against number of possible bitmap extensions should include this fact. This patch fixes this by changing the extension failure condition. This issue has been introduced by commit 4d852ef8c2544ce21ae41414099a7504c61164a0 ("arm: dma-mapping: Add support to extend DMA IOMMU mappings"). Reported-by: Hyungwon Hwang Signed-off-by: Marek Szyprowski Reviewed-by: Hyungwon Hwang Cc: stable@vger.kernel.org # v3.15+ Signed-off-by: Russell King arch/arm/mm/dma-mapping.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8e0c34b0d268f10d84cb3f79f59c140d545a553a Author: Stephen Boyd Date: Tue Jul 7 18:17:05 2015 +0100 ARM: 8402/1: perf: Don't use of_node after putting it It's possible, albeit unlikely, that using the of_node here will reference freed memory. Call of_node_put() after printing the name to be safe. Signed-off-by: Stephen Boyd Signed-off-by: Will Deacon Signed-off-by: Russell King arch/arm/kernel/perf_event.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit df9de3c4295afa45d9c58c3d9039098af5765a21 Author: Vitaly Andrianov Date: Mon Jul 6 16:43:18 2015 +0100 ARM: 8400/1: use virt_to_idmap to get phys_reset address This patch is to get correct physical address of the reset function for PAE systems, which use aliased physical memory for booting. See the "ARM: mm: Introduce virt_to_idmap() with an arch hook" for details. Signed-off-by: Vitaly Andrianov Signed-off-by: Russell King arch/arm/kernel/reboot.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 67756e3191c90e7c0b94b8b2fb63de255b6cd337 Author: Takashi Iwai Date: Fri Jul 17 15:22:33 2015 +0200 ALSA: pcm: Fix lockdep warning with nonatomic PCM ops With the nonatomic PCM ops, the system may spew lockdep warnings like: ============================================= [ INFO: possible recursive locking detected ] 4.2.0-rc1-jeejaval3 #12 Not tainted --------------------------------------------- aplay/4029 is trying to acquire lock: (snd_pcm_link_rwsem){.+.+.+}, at: [] snd_pcm_stream_lock+0x43/0x60 but task is already holding lock: (snd_pcm_link_rwsem){.+.+.+}, at: [] snd_pcm_action_nonatomic+0x29/0x80 other info that might help us debug this: Possible unsafe locking scenario: CPU0 ---- lock(snd_pcm_link_rwsem); lock(snd_pcm_link_rwsem); Although this is false-positive as the rwsem is taken always as read-only for these code paths, it's certainly annoying to see this at any occasion. A simple fix is to use down_read_nested() in snd_pcm_stream_lock() that can be called inside another lock. Reported-by: Vinod Koul Reported-by: Jeeja Kp Tested-by: Jeeja Kp Cc: Signed-off-by: Takashi Iwai sound/core/pcm_native.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 923b352f19d9ea971ae2536eab55f5fc9e95fedf Author: Arik Nemtsov Date: Wed Jul 8 15:41:44 2015 +0300 cfg80211: use RTNL locked reg_can_beacon for IR-relaxation The RTNL is required to check for IR-relaxation conditions that allow more channels to beacon. Export an RTNL locked version of reg_can_beacon and use it where possible in AP/STA interface type flows, where IR-relaxation may be applicable. Fixes: 06f207fc5418 ("cfg80211: change GO_CONCURRENT to IR_CONCURRENT for STA") Signed-off-by: Arik Nemtsov Signed-off-by: Emmanuel Grumbach Signed-off-by: Johannes Berg include/net/cfg80211.h | 17 +++++++++++++++++ net/mac80211/tdls.c | 6 +++--- net/wireless/chan.c | 45 ++++++++++++++++++++++++++++++++++----------- net/wireless/nl80211.c | 14 ++++++++------ net/wireless/reg.c | 2 +- net/wireless/trace.h | 11 +++++++---- 6 files changed, 70 insertions(+), 25 deletions(-) commit b3e7de873df77c1fa0bc2cfaf3eaff757b80e773 Author: Bob Copeland Date: Tue Jul 14 08:31:56 2015 -0400 mac80211: add missing length check for confirm frames Although mesh_rx_plink_frame() already checks that frames have enough bytes for the action code plus another two bytes for capability/reason code, it doesn't take into account that confirm frames also have an additional two-byte aid. As a result, a corrupt frame could cause a subsequent subtraction to wrap around to ill effect. Add another check for this case. Signed-off-by: Bob Copeland Signed-off-by: Johannes Berg net/mac80211/mesh_plink.c | 3 +++ 1 file changed, 3 insertions(+) commit 2ea752cd2ce066c5d8c1807b5310ef329885cecb Author: Bob Copeland Date: Tue Jul 14 08:31:55 2015 -0400 mac80211: correct aid location in peering frames According to 802.11-2012 8.5.16.3.2 AID comes directly after the capability bytes in mesh peering confirm frames. The existing code, however, was adding a 2 byte offset to this location, resulting in garbage data going out over the air. Remove the offset to fix it. Signed-off-by: Bob Copeland Signed-off-by: Johannes Berg net/mac80211/mesh_plink.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 042ab5fc7a80b934032fcc673a125feb36645b33 Author: Thomas Petazzoni Date: Thu Jul 9 15:35:15 2015 +0200 wireless: regulatory: reduce log level of CRDA related messages With a basic Linux userspace, the messages "Calling CRDA to update world regulatory domain" appears 10 times after boot every second or so, followed by a final "Exceeded CRDA call max attempts. Not calling CRDA". For those of us not having the corresponding userspace parts, having those messages repeatedly displayed at boot time is a bit annoying, so this commit reduces their log level to pr_debug(). Signed-off-by: Thomas Petazzoni Signed-off-by: Johannes Berg net/wireless/reg.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit a6acd6a41168dc304738e84c8360cda9a6b86887 Merge: 65ea03e 3c71ba3 Author: Ingo Molnar Date: Fri Jul 17 14:17:19 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 misplaced check for HAVE_SYNC_COMPARE_AND_SWAP_SUPPORT in the auxtrace code, which made 'perf record' fail straight away in some architectures, even when auxtrace wasn't involved. (Adrian Hunter) - Really allow to specify custom CC, AR or LD (Alexey Brodkin) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit 6d058c5643e16779ae4c001d2e893c140940e48f Author: Sakari Ailus Date: Fri Jul 3 04:37:07 2015 -0300 [media] vb2: Only requeue buffers immediately once streaming is started Buffers can be returned back to videobuf2 in driver's streamon handler. In this case vb2_buffer_done() with buffer state VB2_BUF_STATE_QUEUED will cause the driver's buf_queue vb2 operation to be called, queueing the same buffer again only to be returned to videobuf2 using vb2_buffer_done() and so on. Add a new buffer state VB2_BUF_STATE_REQUEUEING which, when used as the state argument to vb2_buffer_done(), will result in buffers queued to the driver. Using VB2_BUF_STATE_QUEUED will leave the buffer to videobuf2, as it was before "[media] vb2: allow requeuing buffers while streaming". Fixes: ce0eff016f72 ("[media] vb2: allow requeuing buffers while streaming") [mchehab@osg.samsung.com: fix warning: enumeration value 'VB2_BUF_STATE_REQUEUEING' not handled in switch] Signed-off-by: Sakari Ailus Acked-by: Hans Verkuil Cc: stable@vger.kernel.org # for v4.1 Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/cobalt/cobalt-irq.c | 2 +- drivers/media/v4l2-core/videobuf2-core.c | 26 ++++++++++++++++++-------- include/media/videobuf2-core.h | 2 ++ 3 files changed, 21 insertions(+), 9 deletions(-) commit f2a5ded38592e5936a099ea6535ad5d3addcbc9d Author: Nicolas Boichat Date: Fri Jul 17 10:36:57 2015 +0800 ASoC: rt5645: Check if codec is initialized in workqueue handler This fixes kernel panic on boot, if rt5645->codec is NULL when rt5645_jack_detect_work is first called. rt5645_jack_detect_work needs rt5645->codec to be initialized to setup dapm pins. Also, reporting jack events is useless, as the jacks cannot be set before the codec is ready. Since we manually call the interrupt handler in rt5645_set_jack_detect, the initial jack state will be reported correctly, and dapm pins will be setup at that time. Signed-off-by: Nicolas Boichat Signed-off-by: Mark Brown sound/soc/codecs/rt5645.c | 3 +++ 1 file changed, 3 insertions(+) commit a97439aa1aec10387797b4abae3cf117de1c90d7 Author: Andy Lutomirski Date: Wed Jul 15 10:29:41 2015 -0700 x86/entry/64, x86/nmi/64: Add CONFIG_DEBUG_ENTRY NMI testing code It turns out to be rather tedious to test the NMI nesting code. Make it easier: add a new CONFIG_DEBUG_ENTRY option that causes the NMI handler to pre-emptively unmask NMIs. With this option set, errors in the repeat_nmi logic or failures to detect that we're in a nested NMI will result in quick panics under perf (especially if multiple counters are running at high frequency) instead of requiring an unusual workload that generates page faults or breakpoints inside NMIs. I called it CONFIG_DEBUG_ENTRY instead of CONFIG_DEBUG_NMI_ENTRY because I want to add new non-NMI checks elsewhere in the entry code in the future, and I'd rather not add too many new config options or add this option and then immediately rename it. Signed-off-by: Andy Lutomirski Reviewed-by: Steven Rostedt Cc: Borislav Petkov Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/Kconfig.debug | 12 ++++++++++++ arch/x86/entry/entry_64.S | 15 +++++++++++++++ 2 files changed, 27 insertions(+) commit 36f1a77b3aa57c5c2eb1ae2d67d07c4350a78345 Author: Andy Lutomirski Date: Wed Jul 15 10:29:40 2015 -0700 x86/nmi/64: Make the "NMI executing" variable more consistent Currently, "NMI executing" is one the first time an outermost NMI hits repeat_nmi and zero thereafter. Change it to be zero each time for consistency. This is intended to help NMI handling fail harder if it's buggy. Signed-off-by: Andy Lutomirski Reviewed-by: Steven Rostedt Cc: Borislav Petkov Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/entry/entry_64.S | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit 23a781e987f05029c4a99a5c145be3efa6eda9f3 Author: Andy Lutomirski Date: Wed Jul 15 10:29:39 2015 -0700 x86/nmi/64: Minor asm simplification Replace LEA; MOV with an equivalent SUB. This saves one instruction. Signed-off-by: Andy Lutomirski Reviewed-by: Steven Rostedt Cc: Borislav Petkov Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/entry/entry_64.S | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 810bc075f78ff2c221536eb3008eac6a492dba2d Author: Andy Lutomirski Date: Wed Jul 15 10:29:38 2015 -0700 x86/nmi/64: Use DF to avoid userspace RSP confusing nested NMI detection We have a tricky bug in the nested NMI code: if we see RSP pointing to the NMI stack on NMI entry from kernel mode, we assume that we are executing a nested NMI. This isn't quite true. A malicious userspace program can point RSP at the NMI stack, issue SYSCALL, and arrange for an NMI to happen while RSP is still pointing at the NMI stack. Fix it with a sneaky trick. Set DF in the region of code that the RSP check is intended to detect. IRET will clear DF atomically. ( Note: other than paravirt, there's little need for all this complexity. We could check RIP instead of RSP. ) Signed-off-by: Andy Lutomirski Reviewed-by: Steven Rostedt Cc: Borislav Petkov Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: stable@vger.kernel.org Signed-off-by: Ingo Molnar arch/x86/entry/entry_64.S | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) commit a27507ca2d796cfa8d907de31ad730359c8a6d06 Author: Andy Lutomirski Date: Wed Jul 15 10:29:37 2015 -0700 x86/nmi/64: Reorder nested NMI checks Check the repeat_nmi .. end_repeat_nmi special case first. The next patch will rework the RSP check and, as a side effect, the RSP check will no longer detect repeat_nmi .. end_repeat_nmi, so we'll need this ordering of the checks. Note: this is more subtle than it appears. The check for repeat_nmi .. end_repeat_nmi jumps straight out of the NMI code instead of adjusting the "iret" frame to force a repeat. This is necessary, because the code between repeat_nmi and end_repeat_nmi sets "NMI executing" and then writes to the "iret" frame itself. If a nested NMI comes in and modifies the "iret" frame while repeat_nmi is also modifying it, we'll end up with garbage. The old code got this right, as does the new code, but the new code is a bit more explicit. If we were to move the check right after the "NMI executing" check, then we'd get it wrong and have random crashes. ( Because the "NMI executing" check would jump to the code that would modify the "iret" frame without checking if the interrupted NMI was currently modifying it. ) Signed-off-by: Andy Lutomirski Reviewed-by: Steven Rostedt Cc: Borislav Petkov Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: stable@vger.kernel.org Signed-off-by: Ingo Molnar arch/x86/entry/entry_64.S | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) commit 0b22930ebad563ae97ff3f8d7b9f12060b4c6e6b Author: Andy Lutomirski Date: Wed Jul 15 10:29:36 2015 -0700 x86/nmi/64: Improve nested NMI comments I found the nested NMI documentation to be difficult to follow. Improve the comments. Signed-off-by: Andy Lutomirski Reviewed-by: Steven Rostedt Cc: Borislav Petkov Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: stable@vger.kernel.org Signed-off-by: Ingo Molnar arch/x86/entry/entry_64.S | 158 +++++++++++++++++++++++++++------------------- arch/x86/kernel/nmi.c | 4 +- 2 files changed, 94 insertions(+), 68 deletions(-) commit 9b6e6a8334d56354853f9c255d1395c2ba570e0a Author: Andy Lutomirski Date: Wed Jul 15 10:29:35 2015 -0700 x86/nmi/64: Switch stacks on userspace NMI entry Returning to userspace is tricky: IRET can fail, and ESPFIX can rearrange the stack prior to IRET. The NMI nesting fixup relies on a precise stack layout and atomic IRET. Rather than trying to teach the NMI nesting fixup to handle ESPFIX and failed IRET, punt: run NMIs that came from user mode on the normal kernel stack. This will make some nested NMIs visible to C code, but the C code is okay with that. As a side effect, this should speed up perf: it eliminates an RDMSR when NMIs come from user mode. Signed-off-by: Andy Lutomirski Reviewed-by: Steven Rostedt Reviewed-by: Borislav Petkov Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: stable@vger.kernel.org Signed-off-by: Ingo Molnar arch/x86/entry/entry_64.S | 62 ++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 58 insertions(+), 4 deletions(-) commit 0e181bb58143cb4a2e8f01c281b0816cd0e4798e Author: Andy Lutomirski Date: Wed Jul 15 10:29:34 2015 -0700 x86/nmi/64: Remove asm code that saves CR2 Now that do_nmi saves CR2, we don't need to save it in asm. Signed-off-by: Andy Lutomirski Reviewed-by: Steven Rostedt Acked-by: Borislav Petkov Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: stable@vger.kernel.org Signed-off-by: Ingo Molnar arch/x86/entry/entry_64.S | 17 ----------------- 1 file changed, 17 deletions(-) commit 9d05041679904b12c12421cbcf9cb5f4860a8d7b Author: Andy Lutomirski Date: Wed Jul 15 10:29:33 2015 -0700 x86/nmi: Enable nested do_nmi() handling for 64-bit kernels 32-bit kernels handle nested NMIs in C. Enable the exact same handling on 64-bit kernels as well. This isn't currently necessary, but it will become necessary once the asm code starts allowing limited nesting. Signed-off-by: Andy Lutomirski Reviewed-by: Steven Rostedt Cc: Borislav Petkov Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: stable@vger.kernel.org Signed-off-by: Ingo Molnar arch/x86/kernel/nmi.c | 123 +++++++++++++++++++++----------------------------- 1 file changed, 52 insertions(+), 71 deletions(-) commit 591e5bec13f15feb13fc445b6c9c59954711c4ac Author: Marc Zyngier Date: Fri Jul 17 10:46:42 2015 +0100 irqchip/gicv3-its: Fix mapping of LPIs to collections The GICv3 ITS architecture allows a given [DevID, EventID] pair to be translated to a [LPI, Collection] pair, where DevID is the device writing the MSI, EventID is the payload being written, LPI is the actual interrupt number, and Collection is roughly equivalent to a target CPU. Each LPI can be mapped to a separate collection, but the ITS driver insists on maintaining the collection on a device basis, instead of doing it on a per interrupt basis. This is obviously flawed, and this patch fixes it by adding a per interrupt index that indicates which collection number is in use. Reported-by: Ian Campbell Signed-off-by: Marc Zyngier Cc: Cc: Jason Cooper Cc: stable@vger.kernel.org # 4.1, 4.0 Link: http://lkml.kernel.org/r/1437126402-11677-1-git-send-email-marc.zyngier@arm.com Signed-off-by: Thomas Gleixner drivers/irqchip/irq-gic-v3-its.c | 111 ++++++++++++++++++++++++++------------- 1 file changed, 75 insertions(+), 36 deletions(-) commit 75a06189fc508a2acf470b0b12710362ffb2c4b1 Author: Thomas Gleixner Date: Thu Jul 16 14:10:17 2015 +0200 genirq: Prevent resend to interrupts marked IRQ_NESTED_THREAD The resend mechanism happily calls the interrupt handler of interrupts which are marked IRQ_NESTED_THREAD from softirq context. This can result in crashes because the interrupt handler is not the proper way to invoke the device handlers. They must be invoked via handle_nested_irq. Prevent the resend even if the interrupt has no valid parent irq set. Its better to have a lost interrupt than a crashing machine. Reported-by: Uwe Kleine-König Signed-off-by: Thomas Gleixner Cc: stable@vger.kernel.org kernel/irq/resend.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) commit d8d9008cfb919db48d95f96b05e81f84b3774318 Author: Johannes Berg Date: Wed Jul 8 15:41:50 2015 +0300 mac80211: shut down interfaces before destroying interface list If the hardware is unregistered while interfaces are up, mac80211 will unregister all interfaces, which in turns causes mac80211 to be called again to remove them all from the driver and eventually shut down the hardware. During this shutdown, however, it's currently already unsafe to iterate the list of interfaces atomically, as the list is manipulated in an unsafe manner. This puts an undue burden on the driver - it must stop all its activities before calling ieee80211_unregister_hw(), while in the normal stop path it can do all cleanup in the stop method. If, for example, it's using the iteration during RX for some reason, it would have to stop RX before unregistering to avoid crashes. Fix this problem by closing all interfaces before unregistering them. This will cause the driver stop to have completed before we manipulate the interface list, and after the driver is stopped *and* has called ieee80211_unregister_hw() it really musn't be iterating any more as the memory will be freed as well. Signed-off-by: Johannes Berg net/mac80211/iface.c | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) commit 541b6ed7cee1ec7c8f525f51a0ff097776111aeb Author: Chaitanya T K Date: Wed Jun 10 19:12:31 2015 +0530 mac80211: wowlan: enable powersave if suspend while ps-polling If for any reason we're in the middle of PS-polling or awake after TX due to dynamic powersave while going to suspend, go back to save power. This might cause a response frame to get lost, but since we can't really wait for it while going to suspend that's still better than not enabling powersave which would cause higher power usage during (and possibly even after) suspend. Note that this really only affects the very few drivers that use the powersave implementation in mac80211. Signed-off-by: Chaitanya T K [rewrite misleading commit log] Signed-off-by: Johannes Berg net/mac80211/pm.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit e9de01907e3d1957591113daa3857c0bf01067ef Author: Michal Kazior Date: Thu Jul 2 09:59:56 2015 +0200 mac80211: don't clear all tx flags when requeing When acting as AP and a PS-Poll frame is received associated station is marked as one in a Service Period. This state is kept until Tx status for released frame is reported. While a station is in Service Period PS-Poll frames are ignored. However if PS-Poll was received during A-MPDU teardown it was possible to have the to-be released frame re-queued back to pending queue. In such case the frame was stripped of 2 important flags: (a) IEEE80211_TX_CTL_NO_PS_BUFFER (b) IEEE80211_TX_STATUS_EOSP Stripping of (a) led to the frame that was to be released to be queued back to ps_tx_buf queue. If station remained to use only PS-Poll frames the re-queued frame (and new ones) was never actually transmitted because mac80211 would ignore subsequent PS-Poll frames due to station being in Service Period. There was nothing left to clear the Service Period bit (no xmit -> no tx status -> no SP end), i.e. the AP would have the station stuck in Service Period. Beacon TIM would repeatedly prompt station to poll for frames but it would get none. Once (a) is not stripped (b) becomes important because it's the main condition to clear the Service Period bit of the station when Tx status for the released frame is reported back. This problem was observed with ath9k acting as P2P GO in some testing scenarios but isn't limited to it. AP operation with mac80211 based Tx A-MPDU control combined with clients using PS-Poll frames is subject to this race. Signed-off-by: Michal Kazior Signed-off-by: Johannes Berg net/mac80211/tx.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 4479004e6409087d1b4986881dc98c6c15dffb28 Author: Tom Hughes Date: Mon Jun 29 19:41:49 2015 +0100 mac80211: clear subdir_stations when removing debugfs If we don't do this, and we then fail to recreate the debugfs directory during a mode change, then we will fail later trying to add stations to this now bogus directory: BUG: unable to handle kernel NULL pointer dereference at 0000006c IP: [] mutex_lock+0x12/0x30 Call Trace: [] start_creating+0x44/0xc0 [] debugfs_create_dir+0x13/0xf0 [] ieee80211_sta_debugfs_add+0x6e/0x490 [mac80211] Cc: stable@kernel.org Signed-off-by: Tom Hughes Signed-off-by: Johannes Berg net/mac80211/debugfs_netdev.c | 1 + 1 file changed, 1 insertion(+) commit df2cd4586f177acf9493dee079fc7d18268c5f54 Merge: 7865598 be88a1a Author: Kalle Valo Date: Fri Jul 17 11:19:08 2015 +0300 Merge tag 'iwlwifi-for-kalle-2015-06-12' of https://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-fixes * bug fixes specific for 8000 series * fix a crash in time events * fix a crash in PCIe transport * fix BT Coex code that prevented association on certain devices (3160). * revert the new RBD allocation model because it introduced a bug when running on weak VM setups. * a new device IDs commit e9308884878942c618a42cab122df80fbf458dc9 Author: Jérôme Glisse Date: Thu Jul 9 14:19:30 2015 -0400 drm/ttm: improve uncached page deallocation. Calls to set_memory_wb() incure heavy TLB flush and IPI cost. To minimize those wait until pool grow beyond batch size before draining the pool. Signed-off-by: Jérôme Glisse Reviewed-by: Mario Kleiner Reviewed-and-Tested-by: Michel Dänzer Reviewed-by: Konrad Rzeszutek Wilk Cc: Thomas Hellstrom Reviewed-by: Alex Deucher Signed-off-by: Dave Airlie drivers/gpu/drm/ttm/ttm_page_alloc_dma.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit ef2b731759b9ae6380c9728b60ce92cf32683e94 Author: Jérôme Glisse Date: Thu Jul 9 14:19:29 2015 -0400 drm/ttm: fix uncached page deallocation to properly fill page pool v3. Current code never allowed the page pool to actualy fill in anyway. This fix it, so that we only start freeing page from the pool when we go over the pool size. Changed since v1: - Move the page batching optimization to its separate patch. Changed since v2: - Do not remove code part of the batching optimization with this patch. - Better commit message. Signed-off-by: Jérôme Glisse Reviewed-by: Mario Kleiner Reviewed-and-Tested-by: Michel Dänzer Reviewed-by: Konrad Rzeszutek Wilk Cc: Thomas Hellstrom Reviewed-by: Alex Deucher Signed-off-by: Dave Airlie drivers/gpu/drm/ttm/ttm_page_alloc_dma.c | 1 - 1 file changed, 1 deletion(-) commit 5cde07abcbc57b3430b044cb2cf028d97d7a7254 Author: Krzysztof Kozlowski Date: Mon Jun 15 13:54:29 2015 +0900 pinctrl: samsung: Remove old unused defines Since 9a2c1c3b91aa ("pinctrl: samsung: Allow grouping multiple pinmux/pinconf nodes") the defines for GPIO group and function names are not used anywhere in the driver. Signed-off-by: Krzysztof Kozlowski Inspired-by: Dan Carpenter Signed-off-by: Linus Walleij drivers/pinctrl/samsung/pinctrl-samsung.c | 5 ----- 1 file changed, 5 deletions(-) commit e2370f07cf703c0920c99bc24de3d152262738f0 Author: Sergei Shtylyov Date: Wed Jul 15 00:56:52 2015 +0300 ravb: do not invalidate cache for RX buffer twice First, dma_sync_single_for_cpu() shouldn't have been called in the first place (it's a streaming DMA API), dma_unmap_single() should have been called instead. Second, dma_unmap_single() call after handing the buffer to napi_gro_receive() makes little sense. Moreover desc->dptr might not be valid at this point. Signed-off-by: Sergei Shtylyov Signed-off-by: David S. Miller drivers/net/ethernet/renesas/ravb_main.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) commit 21bdb584af8cca7c6df3c44cba268be050a234eb Merge: 3e87ee0 17ffc8b Author: Linus Torvalds Date: Thu Jul 16 21:10:53 2015 -0700 Merge tag 'pm+acpi-4.2-rc3' 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 bugs in the cpufreq core (including one recent regression), fix a 4.0 PCI regression related to the ACPI resources management and quieten an RCU-related lockdep complaint about a tracepoint in the suspend-to-idle code. Specifics: - Fix a recently introduced issue in the cpufreq policy object reinitialization that leads to CPU offline/online breakage (Viresh Kumar) - Make it possible to access frequency tables of offline CPUs which is needed by thermal management code among other things (Viresh Kumar) - Fix an ACPI resource management regression introduced during the 4.0 cycle that may cause incorrect resource validation results to appear in 32-bit x86 kernels due to silent truncation of 64-bit values to 32-bit (Jiang Liu) - Fix up an RCU-related lockdep complaint about suspicious RCU usage in idle caused by using a suspend tracepoint in the core suspend- to-idle code (Rafael J Wysocki)" * tag 'pm+acpi-4.2-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: ACPI / PCI: Fix regressions caused by resource_size_t overflow with 32-bit kernel cpufreq: Allow freq_table to be obtained for offline CPUs cpufreq: Initialize the governor again while restoring policy suspend-to-idle: Prevent RCU from complaining about tick_freeze() commit 3e87ee06d0d6b759471a487ceb8a48ecc5dee1f8 Merge: f85c712 8642d7f Author: Linus Torvalds Date: Thu Jul 16 20:57:25 2015 -0700 Merge tag 'platform-drivers-x86-v4.2-3' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86 Pull x86 platform driver fixes from Darren Hart: "Fix SMBIOS call handling and hwswitch state coherency in the dell-laptop driver. Cleanups for intel_*_ipc drivers. Details: dell-laptop: - Do not cache hwswitch state - Check return value of each SMBIOS call - Clear buffer before each SMBIOS call intel_scu_ipc: - Move local memory initialization out of a mutex intel_pmc_ipc: - Update kerneldoc formatting - Fix compiler casting warnings" * tag 'platform-drivers-x86-v4.2-3' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86: intel_scu_ipc: move local memory initialization out of a mutex intel_pmc_ipc: Update kerneldoc formatting dell-laptop: Do not cache hwswitch state dell-laptop: Check return value of each SMBIOS call dell-laptop: Clear buffer before each SMBIOS call intel_pmc_ipc: Fix compiler casting warnings commit f85c712429ca43ca21daa35f8a47bcaffdb3d5a1 Merge: 761ab76 67592f6 Author: Linus Torvalds Date: Thu Jul 16 20:49:09 2015 -0700 Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu Pull m68knommu/coldfire fixes from Greg Ungerer: "Contains build fixes and updates for the ColdFire defconfigs. Specifically there is a couple of fixes that address problems building allnoconfig. Also fix for enabling PCI bus on the M54xx family of ColdFire" * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu: m68k: enable PCI support for m5475evb defconfig m68k: fix io functions for ColdFire/MMU/PCI case m68knommu: update defconfig for ColdFire m5475evb m68knommu: update defconfig for ColdFire m5407c3 m68knommu: update defconfig for ColdFire m5307c3 m68knommu: update defconfig for ColdFire m5275evb m68knommu: update defconfig for ColdFire m5272c3 m68knommu: update defconfig for ColdFire m5249evb m68knommu: update defconfig for m5208evb m68knommu: make ColdFire SoC selection a choice m68knommu: improve the clock configuration defaults m68knommu: force setting of CONFIG_CLOCK_FREQ for ColdFire commit 665022d72f9b5762f21b5ea02fa0503d04802849 Author: Mike Snitzer Date: Thu Jul 16 21:48:55 2015 -0400 dm cache: avoid calls to prealloc_free_structs() if possible If no work was performed then prealloc_data_structs() wasn't ever called so there isn't any need to call prealloc_free_structs(). Signed-off-by: Mike Snitzer drivers/md/dm-cache-target.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) commit e782eff591bca2d96bac30ab5d1cfa4ccd3b0f86 Author: Mike Snitzer Date: Thu Jul 16 21:26:10 2015 -0400 dm cache: avoid preallocation if no work in writeback_some_dirty_blocks() Refactor writeback_some_dirty_blocks() to avoid prealloc_data_structs() if the policy doesn't have any dirty blocks ready for writeback. Signed-off-by: Mike Snitzer drivers/md/dm-cache-target.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) commit 386cb7cdeeef97e0bf082a8d6bbfc07a2ccce07b Author: Mike Snitzer Date: Thu Jul 16 21:16:31 2015 -0400 dm cache: do not wake_worker() in free_migration() All methods that queue work call wake_worker() as you'd expect. E.g. cell_defer, defer_bio, quiesce_migration (which is called by writeback, promote, demote_then_promote, invalidate, discard, etc). Signed-off-by: Mike Snitzer drivers/md/dm-cache-target.c | 1 - 1 file changed, 1 deletion(-) commit aaab3bbab8bf847fb390dd7033e7d049fd9c7325 Merge: e1e50e1 0915da7 Author: Dave Airlie Date: Fri Jul 17 10:25:02 2015 +1000 Merge branch 'drm-rockchip-2015-07-13' of https://github.com/markyzq/kernel-drm-rockchip into drm-fixes misc rockchip fixes. * 'drm-rockchip-2015-07-13' of https://github.com/markyzq/kernel-drm-rockchip: drm/rockchip: vop: remove hardware cursor window drm/rockchip: vop: switch cursor plane to window 3 drm/rockchip: Drop owner assignment from platform_driver drm/rockchip: use drm_gem_mmap helpers drm/rockchip: only call drm_fb_helper_hotplug_event if fb_helper present drm/rockchip: Add BGR formats to VOP commit e1e50e1e1e2d0e515527f0f10b1c495100e582d1 Merge: 8f6644c c03e9a3 Author: Dave Airlie Date: Fri Jul 17 10:24:34 2015 +1000 Merge tag 'imx-drm-fixes-2015-07-14' of git://git.pengutronix.de/git/pza/linux into drm-fixes imx-drm: fixes for parallel-display, imx-tve, and ipu-common These patches fix the parallel-display driver to use the standard OF graph bindings for connecting a drm_panel via device tree instead of an undocumented, driver specific device tree property, take care to disable all IPU interrupts before setting up the irq chip to fix a kexec lockup, and fix VGA output on i.MX53-QSB boards by correcting the media bus format set by the imx-tve driver. * tag 'imx-drm-fixes-2015-07-14' of git://git.pengutronix.de/git/pza/linux: drm/imx: tve: fix media bus format for VGA output GPU: ipu: fix lockup caused by pending chained interrupts drm/imx: parallel-display: fix drm_panel support commit 8f6644ca9737d118d80bffacc9ae940e713959c4 Merge: 61f2669 c62ff6b Author: Dave Airlie Date: Fri Jul 17 10:06:04 2015 +1000 Merge branch 'drm-armada-fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm into drm-fixes A range of fixes for the Armada DRM driver: - A missing wakeup could result in overlay frames being delayed, causing video playback to hiccup. - Avoid unmapping a dma-buf attachment which was never mapped - Fix the overlay when partially off the screen by switching to the drm_plane_helper_check_update() helper and using the calculated coordinates to set the start address. - Remove an incorrect assignment to crtc->mode - which should be the unadjusted mode. - Fix a missing call to drm_plane_cleanup() in the overlay code. * 'drm-armada-fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm: drm/armada: avoid saving the adjusted mode to crtc->mode drm/armada: fix overlay when partially off-screen drm/armada: convert overlay to use drm_plane_helper_check_update() drm/armada: fix gem object free after failed prime import drm/armada: fix incorrect overlay plane cleanup drm/armada: fix missing overlay wake-up commit 61f2669fced308719d133df1f46a2aa514be47a1 Merge: 3755398 ccfb8b2 Author: Dave Airlie Date: Fri Jul 17 09:57:16 2015 +1000 Merge tag 'drm-intel-fixes-2015-07-15' of git://anongit.freedesktop.org/drm-intel into drm-fixes Next batch of i915 fixes. Note that the compat32 patch here needs the drm core one to be actually useful, I'll send you that one with a separate drm-fixes pull request. One revert because a fix in -rc2 did break existing userspace. * tag 'drm-intel-fixes-2015-07-15' of git://anongit.freedesktop.org/drm-intel: drm/i915: Do not call intel_crtc_disable if the crtc is already disabled. Revert "drm/i915: Declare the swizzling unknown for L-shaped configurations" drm/i915: Forward all core DRM ioctls to core compat handling drm/i915: fix oops in primary_check_plane drm/i915: remove unused has_dma_mapping flag drm/i915: Fix missing return warning for !CONFIG_DEBUGFS drm/i915: avoid leaking DMA mappings drm/i915: Snapshot seqno of most recently submitted request. drm/i915: Store device pointer in contexts for late tracepoint usafe commit 375539832c8cde73fd12762cb7fd223c31b30de0 Merge: 90438ac c631d5f Author: Dave Airlie Date: Fri Jul 17 09:56:00 2015 +1000 Merge tag 'topic/drm-fixes-2015-07-16' of git://anongit.freedesktop.org/drm-intel into drm-fixes Ok next attempt at drm-fixes pull. Big thing really is just the compat32 one for addfb2.1. * tag 'topic/drm-fixes-2015-07-16' of git://anongit.freedesktop.org/drm-intel: drm: Provide compat ioctl for addfb2.1 Documentation: drm: Fix tablulation in KMS properties table drm: add a check for x/y in drm_mode_setcrtc drm/rockchip: use drm_gem_mmap helpers commit 90438ac8134d9c5eff815e15d1ddfbc065bd8ead Merge: 3aa2050 1002d71 Author: Dave Airlie Date: Fri Jul 17 09:39:23 2015 +1000 Merge branch 'drm-fixes-4.2' of git://people.freedesktop.org/~agd5f/linux into drm-fixes More radeon and amdgpu fixes for 4.2. Mostly amdgpu bug fixes. * 'drm-fixes-4.2' of git://people.freedesktop.org/~agd5f/linux: drm/amdgpu/dce8: Re-set VBLANK interrupt state when enabling a CRTC drm/radeon/ci: silence a harmless PCC warning drm/amdgpu/cz: silence some dpm debug output drm/amdgpu/cz: store the forced dpm level drm/amdgpu/cz: unforce dpm levels before forcing to low/high drm/amdgpu: remove bogus check in gfx8 rb setup drm/amdgpu: set proper index/data pair for smc regs on CZ (v2) drm/amdgpu: disable the IP module if early_init returns -ENOENT (v2) drm/amdgpu: stop context leak in the error path drm/amdgpu: validate the context id in the dependencies drm/radeon: fix user ptr race condition drm/radeon: Don't flush the GART TLB if rdev->gart.ptr == NULL drm/radeon: add a dpm quirk for Sapphire Radeon R9 270X 2GB GDDR5 commit 761ab7664b30ed907f55da7f6966d4537f36d9ff Merge: f76d94d e56f698 Author: Linus Torvalds Date: Thu Jul 16 16:38:08 2015 -0700 Merge branch 'for-linus' of git://git.kernel.dk/linux-block Pull block fixes from Jens Axboe: "A collection of fixes from the last few weeks that should go into the current series. This contains: - Various fixes for the per-blkcg policy data, fixing regressions since 4.1. From Arianna and Tejun - Code cleanup for bcache closure macros from me. Really just flushing this out, it's been sitting in another branch for months - FIELD_SIZEOF cleanup from Maninder Singh - bio integrity oops fix from Mike - Timeout regression fix for blk-mq from Ming Lei" * 'for-linus' of git://git.kernel.dk/linux-block: blk-mq: set default timeout as 30 seconds NVMe: Reread partitions on metadata formats bcache: don't embed 'return' statements in closure macros blkcg: fix blkcg_policy_data allocation bug blkcg: implement all_blkcgs list blkcg: blkcg_css_alloc() should grab blkcg_pol_mutex while iterating blkcg_policy[] blkcg: allow blkcg_pol_mutex to be grabbed from cgroup [file] methods block/blk-cgroup.c: free per-blkcg data when freeing the blkcg block: use FIELD_SIZEOF to calculate size of a field bio integrity: do not assume bio_integrity_pool exists if bioset exists commit f76d94def5605fbec1de61218e91fe1002fd322f Merge: 3aa2050 2645695 Author: Linus Torvalds Date: Thu Jul 16 16:28:28 2015 -0700 Merge tag 'jfs-4.2' of git://github.com/kleikamp/linux-shaggy Pull jfs fixes from David Kleikamp: "A couple trivial fixes and an error path fix" * tag 'jfs-4.2' of git://github.com/kleikamp/linux-shaggy: jfs: clean up jfs_rename and fix out of order unlock jfs: fix indentation on if statement jfs: removed a prohibited space after opening parenthesis commit 8b4769cc535adf9dd4ae5d82725ca1de254f007c Author: Murali Karicheri Date: Thu Jul 16 18:13:03 2015 -0400 ARM: keystone: dts: rename pcie nodes to help override status Now that PCIe DT binding is disabled in SoC specific DTS, we need a way to override it in a board specific DTS. So rename the PCIe nodes accordingly. Signed-off-by: Murali Karicheri Signed-off-by: Santosh Shilimkar arch/arm/boot/dts/k2e.dtsi | 2 +- arch/arm/boot/dts/keystone.dtsi | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 9dd4f28f361df401f738927963af015134f23a1c Author: Murali Karicheri Date: Thu Jul 16 18:12:57 2015 -0400 ARM: keystone: dts: fix dt bindings for PCIe Currently PCIe DT bindings are broken. PCIe driver can't function without having a SerDes driver that provide the phy configuration. On K2E EVM, this causes problem since the EVM has Marvell SATA controller present and with default values in the SerDes register, it seems to pass the PCIe link check, but causes issues since the configuration is not correct. The manifestation is that when EVM is booted with NFS rootfs, the boot hangs. We shouldn't enable PCIe on this EVM since to work, SerDes driver has to be present as well. So by default, the PCIe DT binding should be disabled in SoC specific DTS. It can be enabled in the board specific DTS when the SerDes device driver is also present. So fix the status of PCIe DT bindings in the SoC specific DTS to "disabled". To enable PCIe, the status should be set to "ok" in the EVM DTS file when SerDes driver support becomes available in the upstream tree. Signed-off-by: Murali Karicheri Signed-off-by: Santosh Shilimkar arch/arm/boot/dts/k2e.dtsi | 1 + arch/arm/boot/dts/keystone.dtsi | 1 + 2 files changed, 2 insertions(+) commit 17ffc8b083ac299ff798419d1887b7cdcd4ae4d2 Merge: bc0195a ae0afb4 5a31d59 1fb01ca Author: Rafael J. Wysocki Date: Thu Jul 16 23:47:19 2015 +0200 Merge branches 'pm-cpuidle', 'pm-cpufreq' and 'acpi-resources' * pm-cpuidle: suspend-to-idle: Prevent RCU from complaining about tick_freeze() * pm-cpufreq: cpufreq: Allow freq_table to be obtained for offline CPUs cpufreq: Initialize the governor again while restoring policy * acpi-resources: ACPI / PCI: Fix regressions caused by resource_size_t overflow with 32-bit kernel commit a927ef895e288e79f1bfed221f27d7bfa37e907f Author: Robert Jarzmik Date: Sat Jul 11 21:33:06 2015 +0200 ARM: pxa: fix dm9000 platform data regression Since dm9000 driver added support for a vcc regulator, platform data based platforms have their ethernet broken, as the regulator claiming returns -EPROBE_DEFER and prevents dm9000 loading. This patch fixes this for all pxa boards using dm9000, by using the specific regulator_has_full_constraints() function. This was discovered and tested on the cm-x300 board. Fixes: 7994fe55a4a2 ("dm9000: Add regulator and reset support to dm9000") Signed-off-by: Robert Jarzmik Acked-by: Igor Grinberg arch/arm/mach-pxa/capc7117.c | 3 +++ arch/arm/mach-pxa/cm-x2xx.c | 3 +++ arch/arm/mach-pxa/cm-x300.c | 2 ++ arch/arm/mach-pxa/colibri-pxa270.c | 3 +++ arch/arm/mach-pxa/em-x270.c | 2 ++ arch/arm/mach-pxa/icontrol.c | 3 +++ arch/arm/mach-pxa/trizeps4.c | 3 +++ arch/arm/mach-pxa/vpac270.c | 3 +++ arch/arm/mach-pxa/zeus.c | 2 ++ 9 files changed, 24 insertions(+) commit 36a1f1b6ddc6d1442424e29548e790633ca39c7b Author: Javier Martinez Canillas Date: Wed Jul 15 16:10:29 2015 +0200 regulator: core: Fix memory leak in regulator_resolve_supply() The regulator_resolve_supply() function calls set_supply() which in turn calls create_regulator() to allocate a supply regulator. If an error occurs after set_supply() succeeded, the allocated regulator has to be freed before propagating the error code. Signed-off-by: Javier Martinez Canillas Signed-off-by: Mark Brown drivers/regulator/core.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit e2c09ae7a74d94222187edbe8f5cf1fa9364efcd Author: Javier Martinez Canillas Date: Wed Jul 15 16:10:28 2015 +0200 regulator: core: Increase refcount for regulator supply's module When a regulator is unregistered with regulator_unregister(), a call to regulator_put() is made for its input supply if there is one. This does a module_put() to decrement the refcount of the module that owns the supply but there isn't a corresponding try_module_get() in set_supply() to make the calls balanced. Signed-off-by: Javier Martinez Canillas Signed-off-by: Mark Brown drivers/regulator/core.c | 3 +++ 1 file changed, 3 insertions(+) commit d98399e688f8c4f42f4270c2dfe1293f69247c5b Author: Peter Hutterer Date: Thu Jul 16 10:38:15 2015 -0700 Input: elantech - force resolution of 31 u/mm All Elantech touchpads pre-v4 with dynamic resolution queries have a fixed resolution of 800dpi -> 31.49 units/mm. Set this statically, so userspace does not have to guess. Signed-off-by: Peter Hutterer Reviewed-by: Hans de Goede Reviewed-by: David Herrmann Signed-off-by: Dmitry Torokhov drivers/input/mouse/elantech.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) commit 7d01cd261c76f95913c81554a751968a1d282d3a Author: Oleksij Rempel Date: Mon Jul 13 09:54:42 2015 -0700 Input: zforce - don't overwrite the stack If we get a corrupted packet with PAYLOAD_LENGTH > FRAME_MAXSIZE, we will silently overwrite the stack. Cc: stable@vger.kernel.org Signed-off-by: Oleksij Rempel Signed-off-by: Dirk Behme Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/zforce_ts.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1002d71841d52b2390c82c2bc18922ac21fbd090 Author: Michel Dänzer Date: Thu Jul 9 18:24:24 2015 +0900 drm/amdgpu/dce8: Re-set VBLANK interrupt state when enabling a CRTC Something (ATOM BIOS?) seems to be clobbering the LB_INTERRUPT_MASK register while the CRTC is off, which caused e.g. glxgears or gnome-shell to hang after a modeset. Signed-off-by: Michel Dänzer Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/dce_v8_0.c | 4 ++++ 1 file changed, 4 insertions(+) commit bda5e3e97ffe80c5a793383df5681d3581d46ac8 Author: Alex Deucher Date: Thu Jul 16 10:17:09 2015 -0400 drm/radeon/ci: silence a harmless PCC warning This has been a source of confusion. Make it debug only. Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/radeon/ci_dpm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1a45e8a11b3df30800618e57ecb0fb41b3a98ff1 Author: Alex Deucher Date: Tue Jul 14 17:37:48 2015 -0400 drm/amdgpu/cz: silence some dpm debug output Reviewed-by: Jammy Zhou Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/cz_dpm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 58829aa67da95d03bcca7605d2556361a1785a08 Author: Alex Deucher Date: Tue Jul 14 12:29:00 2015 -0400 drm/amdgpu/cz: store the forced dpm level So the selected forced level shows up properly in sysfs. Reviewed-by: Jammy Zhou Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/cz_dpm.c | 2 ++ 1 file changed, 2 insertions(+) commit 85cfe096552b7792032105dbcedeab019ac4c26e Author: Alex Deucher Date: Tue Jul 14 12:26:41 2015 -0400 drm/amdgpu/cz: unforce dpm levels before forcing to low/high This is necessary to properly reset the min/max limits before clamping them otherwise we may get improper clamping depending on what what was the last forced level. Reviewed-by: Jammy Zhou Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/cz_dpm.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 4f2d3ad6863ad5bc361c704511cd8888723085e8 Author: Alex Deucher Date: Fri Jul 10 17:05:31 2015 -0400 drm/amdgpu: remove bogus check in gfx8 rb setup Always respect the harvest configuration as is. Acked-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 7b92cdbfe2a8c73fb7516fb8fa20e1efe5b91939 Author: Alex Deucher Date: Fri Jul 10 16:21:10 2015 -0400 drm/amdgpu: set proper index/data pair for smc regs on CZ (v2) v2: squash in later fix Reviewed-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/vi.c | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) commit 974e6b641f1428ee14486da277a92bdf9bd04a78 Author: Alex Deucher Date: Fri Jul 10 13:59:44 2015 -0400 drm/amdgpu: disable the IP module if early_init returns -ENOENT (v2) If we run into a part with a harvest configuration where the entire IP block is unusable, just disable the IP block. v2: fix logic as noted by Christian Reviewed-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit 5c2327beed49efa3198b8468e78b1182eb0b764b Author: Christian König Date: Tue Jul 7 17:27:03 2015 +0200 drm/amdgpu: stop context leak in the error path Signed-off-by: Christian König Reviewed-by: Alex Deucher Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 76a1ea618f01b2bf5a325832d1c273c039c4ea81 Author: Christian König Date: Mon Jul 6 19:42:10 2015 +0200 drm/amdgpu: validate the context id in the dependencies Just to make sure userspace don't send nonsense to the kernel. Signed-off-by: Christian König Reviewed-by: Alex Deucher Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit 12f1384da650bdb835fff63e66fe815ea882fc0e Author: Christian König Date: Tue Jul 14 15:58:30 2015 +0200 drm/radeon: fix user ptr race condition Port of amdgpu patch 9298e52f8b51d1e4acd68f502832f3a97f8cf892. Signed-off-by: Christian König CC: stable@vger.kernel.org Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/radeon_gem.c | 1 + drivers/gpu/drm/radeon/radeon_object.c | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) commit 233709d2cd6bbaaeda0aeb8d11f6ca7f98563b39 Author: Michel Dänzer Date: Fri Jul 3 10:02:27 2015 +0900 drm/radeon: Don't flush the GART TLB if rdev->gart.ptr == NULL This can be the case when the GPU is powered off, e.g. via vgaswitcheroo or runpm. When the GPU is powered up again, radeon_gart_table_vram_pin flushes the TLB after setting rdev->gart.ptr to non-NULL. Fixes panic on powering off R7xx GPUs. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=61529 Reviewed-by: Christian König Signed-off-by: Michel Dänzer Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/radeon/radeon_gart.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 5dfc71bc44d91d1620505c064fa22b0b3db58a9d Author: Alex Deucher Date: Thu Jul 9 21:08:17 2015 -0400 drm/radeon: add a dpm quirk for Sapphire Radeon R9 270X 2GB GDDR5 bug: https://bugs.freedesktop.org/show_bug.cgi?id=76490 Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/radeon/si_dpm.c | 1 + 1 file changed, 1 insertion(+) commit 9051bd393cf25e76dfb45409792719a854661500 Author: Martin K. Petersen Date: Wed Jul 15 21:03:23 2015 -0400 libata: Do not blacklist M510DC A new Micron drive was just announced, once again recycling the first part of the model string. Add an underscore to the M510/M550 pattern to avoid picking up the new DC drive. Signed-off-by: Martin K. Petersen Cc: Signed-off-by: Tejun Heo drivers/ata/libata-core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e56f698bd0720e17f10f39e8b0b5b446ad0ab22c Author: Ming Lei Date: Thu Jul 16 19:53:22 2015 +0800 blk-mq: set default timeout as 30 seconds It is reasonable to set default timeout of request as 30 seconds instead of 30000 ticks, which may be 300 seconds if HZ is 100, for example, some arm64 based systems may choose 100 HZ. Signed-off-by: Ming Lei Fixes: c76cbbcf4044 ("blk-mq: put blk_queue_rq_timeout together in blk_mq_init_queue()" Signed-off-by: Jens Axboe block/blk-mq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 255eac20054e90ac7a52b3e179b61de1168a8fe6 Author: Mike Snitzer Date: Wed Jul 15 11:42:59 2015 -0400 dm cache: display 'needs_check' in status if it is set There is currently no way to see that the needs_check flag has been set in the metadata. Display 'needs_check' in the cache status if it is set in the cache metadata. Also, update cache documentation. Signed-off-by: Mike Snitzer Documentation/device-mapper/cache.txt | 6 ++++++ drivers/md/dm-cache-target.c | 9 +++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) commit e4c78e210daea17f82f12037005df225e22189b9 Author: Mike Snitzer Date: Wed Jul 15 11:40:24 2015 -0400 dm thin: display 'needs_check' in status if it is set There is currently no way to see that the needs_check flag has been set in the metadata. Display 'needs_check' in the thin-pool status if it is set in the thinp metadata. Also, update thinp documentation. Signed-off-by: Mike Snitzer Documentation/device-mapper/thin-provisioning.txt | 9 ++++++++- drivers/md/dm-thin.c | 10 ++++++++-- 2 files changed, 16 insertions(+), 3 deletions(-) commit bcc696fac11fe13e59dda5aaec6322a25b7c9a3a Author: Mike Snitzer Date: Wed Jul 15 16:52:04 2015 -0400 dm thin: stay in out-of-data-space mode once no_space_timeout expires This fixes an issue where running out of data space would cause the thin-pool's metadata to become read-only. There was no reason to make metadata read-only -- calling set_pool_mode() with PM_READ_ONLY was a misguided way to error all queued and future write IOs. We can accomplish the same by degrading from PM_OUT_OF_DATA_SPACE to PM_OUT_OF_DATA_SPACE with error_if_no_space enabled. Otherwise, the use of PM_READ_ONLY could cause a race where commit() was started before the PM_READ_ONLY transition but dm_pool_commit_metadata() would go on to fail because the block manager had transitioned to read-only. The return of -EPERM from dm_pool_commit_metadata(), due to attempting to commit while in read-only mode, caused the thin-pool to set 'needs_check' because a metadata_operation_failed(). This needless cascade of failures makes life for users more difficult than needed. Reported-by: Vivek Goyal Signed-off-by: Mike Snitzer drivers/md/dm-thin.c | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) commit 1278dd6809b11dc298e19d81ac0916275f7318c1 Author: Jens Axboe Date: Mon Jul 13 08:24:39 2015 -0600 scsi: fix host max depth checking for the 'queue_depth' sysfs interface Commit 1e6f2416044c0 changed the scsi sysfs 'queue_depth' code to rejects depths higher than the scsi host template setting. But lots of hosts set this to 1, and update the settings in the scsi host when the controller/devices probing happens. This breaks (at least) mpt2sas and mpt3sas runtime setting of queue depth, returning EINVAL for all settings but '1'. And once it's set to 1, there's no way to go back up. Cc: stable@vger.kernel.org Fixes: 1e6f2416044c0 "scsi: don't allow setting of queue_depth bigger than can_queue" Signed-off-by: Jens Axboe Reviewed-by: Martin K. Petersen Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/scsi_sysfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fdd50409c8b9ce4cdd757ce10bf2e39e9c172de6 Author: Grygorii Strashko Date: Tue Jul 7 17:34:49 2015 +0300 gpio: pca953x: fix nested irqs rescheduling pca953x interrupt controller functionality is implemented using nested threaded IRQs which require parent_irq to be configured properly otherwise below warning can be seen if IRQ core will try re-schedule nested IRQ: ------------[ cut here ]------------ WARNING: CPU: 1 PID: 12 at kernel/irq/manage.c:696 irq_nested_primary_handler+0x30/0x38() Primary handler called for nested irq 301 Modules linked in: uinput ipv6 smsc95xx usbnet mii imx2_wdt etnaviv(C) matrix_keypad matrix_keymap ar1021_i2c CPU: 1 PID: 12 Comm: ksoftirqd/1 Tainted: G WC 4.1.1 #9 Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree) Backtrace: [] (dump_backtrace) from [] (show_stack+0x20/0x24) [] (show_stack) from [] (dump_stack+0x70/0xc0) [] (dump_stack) from [] (warn_slowpath_common+0x88/0xc0) [] (warn_slowpath_common) from [] (warn_slowpath_fmt+0x40/0x48) [] (warn_slowpath_fmt) from [] (irq_nested_primary_handler+0x30/0x38) [] (irq_nested_primary_handler) from [] (handle_irq_event_percpu+0x70/0x2d0) [] (handle_irq_event_percpu) from [] (handle_irq_event+0x4c/0x6c) [] (handle_irq_event) from [] (handle_simple_irq+0xa4/0xc8) [] (handle_simple_irq) from [] (resend_irqs+0x50/0x7c) [] (resend_irqs) from [] (tasklet_action+0x94/0x140) [] (tasklet_action) from [] (__do_softirq+0xa0/0x3c8) [] (__do_softirq) from [] (run_ksoftirqd+0x38/0x54) [] (run_ksoftirqd) from [] (smpboot_thread_fn+0x1f8/0x2f0) [] (smpboot_thread_fn) from [] (kthread+0xe8/0x104) [] (kthread) from [] (ret_from_fork+0x14/0x2c) ---[ end trace 96052cda48865769 ]--- The issue was reported and described in details by Lothar Waßmann and Christian Gmeiner in https://lkml.org/lkml/2014/9/9/123. Fix it by adding missed call of gpiochip_set_chained_irqchip() so GPIO IRQ chip helpers will set parent_irq for nested IRQs properly. Reported-by: Lothar Waßmann Tested-by: Christian Gmeiner Signed-off-by: Grygorii Strashko Signed-off-by: Linus Walleij drivers/gpio/gpio-pca953x.c | 4 ++++ 1 file changed, 4 insertions(+) commit e7ac6c6666bec0a354758a1298d3231e4a635362 Author: Seymour, Shane M Date: Thu Jul 2 12:01:10 2015 +0000 st: null pointer dereference panic caused by use after kref_put by st_open Two SLES11 SP3 servers encountered similar crashes simultaneously following some kind of SAN/tape target issue: ... qla2xxx [0000:81:00.0]-801c:3: Abort command issued nexus=3:0:2 -- 1 2002. qla2xxx [0000:81:00.0]-801c:3: Abort command issued nexus=3:0:2 -- 1 2002. qla2xxx [0000:81:00.0]-8009:3: DEVICE RESET ISSUED nexus=3:0:2 cmd=ffff882f89c2c7c0. qla2xxx [0000:81:00.0]-800c:3: do_reset failed for cmd=ffff882f89c2c7c0. qla2xxx [0000:81:00.0]-800f:3: DEVICE RESET FAILED: Task management failed nexus=3:0:2 cmd=ffff882f89c2c7c0. qla2xxx [0000:81:00.0]-8009:3: TARGET RESET ISSUED nexus=3:0:2 cmd=ffff882f89c2c7c0. qla2xxx [0000:81:00.0]-800c:3: do_reset failed for cmd=ffff882f89c2c7c0. qla2xxx [0000:81:00.0]-800f:3: TARGET RESET FAILED: Task management failed nexus=3:0:2 cmd=ffff882f89c2c7c0. qla2xxx [0000:81:00.0]-8012:3: BUS RESET ISSUED nexus=3:0:2. qla2xxx [0000:81:00.0]-802b:3: BUS RESET SUCCEEDED nexus=3:0:2. qla2xxx [0000:81:00.0]-505f:3: Link is operational (8 Gbps). qla2xxx [0000:81:00.0]-8018:3: ADAPTER RESET ISSUED nexus=3:0:2. qla2xxx [0000:81:00.0]-00af:3: Performing ISP error recovery - ha=ffff88bf04d18000. rport-3:0-0: blocked FC remote port time out: removing target and saving binding qla2xxx [0000:81:00.0]-505f:3: Link is operational (8 Gbps). qla2xxx [0000:81:00.0]-8017:3: ADAPTER RESET SUCCEEDED nexus=3:0:2. rport-2:0-0: blocked FC remote port time out: removing target and saving binding sg_rq_end_io: device detached BUG: unable to handle kernel NULL pointer dereference at 00000000000002a8 IP: [] __pm_runtime_idle+0x28/0x90 PGD 7e6586f067 PUD 7e5af06067 PMD 0 [1739975.390354] Oops: 0002 [#1] SMP CPU 0 ... Supported: No, Proprietary modules are loaded [1739975.390463] Pid: 27965, comm: ABCD Tainted: PF X 3.0.101-0.29-default #1 HP ProLiant DL580 Gen8 RIP: 0010:[] [] __pm_runtime_idle+0x28/0x90 RSP: 0018:ffff8839dc1e7c68 EFLAGS: 00010202 RAX: 0000000000000000 RBX: ffff883f0592fc00 RCX: 0000000000000090 RDX: 0000000000000000 RSI: 0000000000000004 RDI: 0000000000000138 RBP: 0000000000000138 R08: 0000000000000010 R09: ffffffff81bd39d0 R10: 00000000000009c0 R11: ffffffff81025790 R12: 0000000000000001 R13: ffff883022212b80 R14: 0000000000000004 R15: ffff883022212b80 FS: 00007f8e54560720(0000) GS:ffff88407f800000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b CR2: 00000000000002a8 CR3: 0000007e6ced6000 CR4: 00000000001407f0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400 Process ABCD (pid: 27965, threadinfo ffff8839dc1e6000, task ffff883592e0c640) Stack: ffff883f0592fc00 00000000fffffffa 0000000000000001 ffff883022212b80 ffff883eff772400 ffffffffa03fa309 0000000000000000 0000000000000000 ffffffffa04003a0 ffff883f063196c0 ffff887f0379a930 ffffffff8115ea1e Call Trace: [] st_open+0x129/0x240 [st] [] chrdev_open+0x13e/0x200 [] __dentry_open+0x198/0x310 [] do_last+0x1f4/0x800 [] path_openat+0xd9/0x420 [] do_filp_open+0x4c/0xc0 [] do_sys_open+0x17f/0x250 [] system_call_fastpath+0x16/0x1b [<00007f8e4f617fd0>] 0x7f8e4f617fcf Code: eb d3 90 48 83 ec 28 40 f6 c6 04 48 89 6c 24 08 4c 89 74 24 20 48 89 fd 48 89 1c 24 4c 89 64 24 10 41 89 f6 4c 89 6c 24 18 74 11 ff 8f 70 01 00 00 0f 94 c0 45 31 ed 84 c0 74 2b 4c 8d a5 a0 RIP [] __pm_runtime_idle+0x28/0x90 RSP CR2: 00000000000002a8 Analysis reveals the cause of the crash to be due to STp->device being NULL. The pointer was NULLed via scsi_tape_put(STp) when it calls scsi_tape_release(). In st_open() we jump to err_out after scsi_block_when_processing_errors() completes and returns the device as offline (sdev_state was SDEV_DEL): 1180 /* Open the device. Needs to take the BKL only because of incrementing the SCSI host 1181 module count. */ 1182 static int st_open(struct inode *inode, struct file *filp) 1183 { 1184 int i, retval = (-EIO); 1185 int resumed = 0; 1186 struct scsi_tape *STp; 1187 struct st_partstat *STps; 1188 int dev = TAPE_NR(inode); 1189 char *name; ... 1217 if (scsi_autopm_get_device(STp->device) < 0) { 1218 retval = -EIO; 1219 goto err_out; 1220 } 1221 resumed = 1; 1222 if (!scsi_block_when_processing_errors(STp->device)) { 1223 retval = (-ENXIO); 1224 goto err_out; 1225 } ... 1264 err_out: 1265 normalize_buffer(STp->buffer); 1266 spin_lock(&st_use_lock); 1267 STp->in_use = 0; 1268 spin_unlock(&st_use_lock); 1269 scsi_tape_put(STp); <-- STp->device = 0 after this 1270 if (resumed) 1271 scsi_autopm_put_device(STp->device); 1272 return retval; The ref count for the struct scsi_tape had already been reduced to 1 when the .remove method of the st module had been called. The kref_put() in scsi_tape_put() caused scsi_tape_release() to be called: 0266 static void scsi_tape_put(struct scsi_tape *STp) 0267 { 0268 struct scsi_device *sdev = STp->device; 0269 0270 mutex_lock(&st_ref_mutex); 0271 kref_put(&STp->kref, scsi_tape_release); <-- calls this 0272 scsi_device_put(sdev); 0273 mutex_unlock(&st_ref_mutex); 0274 } In scsi_tape_release() the struct scsi_device in the struct scsi_tape gets set to NULL: 4273 static void scsi_tape_release(struct kref *kref) 4274 { 4275 struct scsi_tape *tpnt = to_scsi_tape(kref); 4276 struct gendisk *disk = tpnt->disk; 4277 4278 tpnt->device = NULL; <<<---- where the dev is nulled 4279 4280 if (tpnt->buffer) { 4281 normalize_buffer(tpnt->buffer); 4282 kfree(tpnt->buffer->reserved_pages); 4283 kfree(tpnt->buffer); 4284 } 4285 4286 disk->private_data = NULL; 4287 put_disk(disk); 4288 kfree(tpnt); 4289 return; 4290 } Although the problem was reported on SLES11.3 the problem appears in linux-next as well. The crash is fixed by reordering the code so we no longer access the struct scsi_tape after the kref_put() is done on it in st_open(). Signed-off-by: Shane Seymour Signed-off-by: Darren Lavender Reviewed-by: Johannes Thumshirn Acked-by: Kai Mäkisara Cc: stable@vger.kernel.org Signed-off-by: James Bottomley drivers/scsi/st.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c23837ce73a0cb84ab046a6c0aace30fdd1e26f0 Author: Grygorii Strashko Date: Thu Jun 25 18:13:33 2015 +0300 gpio: omap: prevent module from being unloaded while in use OMAP GPIO driver allowed to be built as loadable module, but it doesn't set owner field in GPIO chip structure. As result, module_get/put() API is not working and it's possible to unload OMAP driver while in use: omap_gpio 48051000.gpio: REMOVING GPIOCHIP WITH GPIOS STILL REQUESTED Hence, add missing configuration. Cc: Tony Lindgren Fixes: cac089f9026e ('gpio: omap: Allow building as a loadable module') Signed-off-by: Grygorii Strashko Acked-by: Alexandre Courbot Signed-off-by: Linus Walleij drivers/gpio/gpio-omap.c | 1 + 1 file changed, 1 insertion(+) commit 34ab54edbef902f31842b428dce9530f3283847c Author: Marek Vasut Date: Tue Jun 30 20:04:18 2015 +0200 gpio: max732x: Add missing dev reference to gpiochip In case the gpiochip doesn't have the .dev field set, as is the case in here, it is not possible to reference this device in DT as a GPIO controller. A good example of this problem is that gpio-leds can not be used when connected to this chip, the gpio-leds driver bails out with -EPROBE_DEFER. Fix this problem by setting the .dev field of the gpio_chip to the parent i2c device. Signed-off-by: Marek Vasut Cc: Alexandre Courbot Cc: Linus Walleij Cc: Mans Rullgard Cc: Olaf Mandel Cc: Semen Protsenko Signed-off-by: Linus Walleij drivers/gpio/gpio-max732x.c | 1 + 1 file changed, 1 insertion(+) commit 5b2c9121ef7cf9745f0c1df10544fd0ba6a6a38c Author: Raphaël Teysseyre Date: Wed Jun 24 09:19:45 2015 +0200 gpio/xilinx: Use correct address when setting initial values. xgpio_save_regs() is used in this driver to setup the initial values of the registers in the hardware. The relevant registers at that time are: 0x0 -> channel 0 data (32 bits, one for each GPIO on this channel). 0x4 -> channel 0 tri, controls in/out status for each GPIO of this channel. 0x8 -> channel 1 data 0xC -> channel 1 tri gpio-xilinx.c defines these: XGPIO_DATA_OFFSET (0x0) XGPIO_TRI_OFFSET (0x4) XGPIO_CHANNEL_OFFSET 0x8 Before this patch, the "data" register value of channel 1 was written at 0x4 intead of 0x8 (overwriting the channel 0 "tri" register), and the "tri" register value for channel 1 was written at 0x8 instead of 0xC. Signed-off-by: Raphaël Teysseyre Reviewed-by: Michal Simek Reviewed-by: Alexandre Courbot Signed-off-by: Linus Walleij drivers/gpio/gpio-xilinx.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6b956af0807a88c79d53e0cb2a3170a2b03e3230 Author: Michal Simek Date: Thu Jun 25 10:29:19 2015 +0200 gpio: zynq: Fix problem with unbalanced pm_runtime_enable Add missing pm_runtime_disabled to remove(). Error log: root@zynqmp:~# modprobe gpio_zynq root@zynqmp:~# lsmod Not tainted gpio_zynq 7086 0 - Live 0xffffffbffc00a000 root@zynqmp:~# rmmod gpio_zynq root@zynqmp:~# lsmod Not tainted root@zynqmp:~# modprobe gpio_zynq [ 246.924438] zynq-gpio ff0a0000.gpio: Unbalanced pm_runtime_enable! root@zynqmp:~# rmmod gpio_zynq root@zynqmp:~# lsmod Not tainted Signed-off-by: Michal Simek Reviewed-by: Alexandre Courbot Signed-off-by: Linus Walleij drivers/gpio/gpio-zynq.c | 1 + 1 file changed, 1 insertion(+) commit 98973f2f083a5ec580da8bbb685e6baa93613546 Author: Keith Packard Date: Wed Jul 15 12:14:39 2015 -0700 ALSA: hda/realtek: Enable HP amp and mute LED on HP Folio 9480m [v3] This laptop needs GPIO4 pulled high to enable the headphone amplifier, and has a mute LED on GPIO3. I modelled the patch on the existing GPIO4 code which pulls the line low for the same purpose; this time, the HP amp line is pulled high. v2: Disable the headphone amplifier when no headphone is connected. Don't disable power savings to preserve the LED state. v3: Remove headset-specific hooks and code; this is just a headphone. Signed-off-by: Keith Packard Signed-off-by: Takashi Iwai sound/pci/hda/patch_realtek.c | 55 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) commit 977bd8a94c40851a843e9186b9eb823bdfa5ace2 Author: Grygorii Strashko Date: Wed Jun 24 17:54:17 2015 +0300 gpio: omap: add missed spin_unlock_irqrestore in omap_gpio_irq_type Add missed spin_unlock_irqrestore in omap_gpio_irq_type when omap_set_gpio_triggering() is failed. It fixes static checker warning: drivers/gpio/gpio-omap.c:523 omap_gpio_irq_type() warn: inconsistent returns 'spin_lock:&bank->lock'. This fixes commit: 1562e4618ded ('gpio: omap: fix error handling in omap_gpio_irq_type') Reported-by: Javier Martinez Canillas Signed-off-by: Grygorii Strashko Signed-off-by: Linus Walleij drivers/gpio/gpio-omap.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 69da3f2ac528642acbd06ed14564ac1b9a918394 Author: Stefan Agner Date: Mon May 18 18:33:28 2015 +0200 can: mcp251x: get regulators optionally The regulators power and transceiver are optional. If those are not present, the pointer (or error pointer) is correctly handled by the driver, hence we can use devm_regulator_get_optional safely, which avoids regulators getting created. Signed-off-by: Stefan Agner Signed-off-by: Marc Kleine-Budde drivers/net/can/spi/mcp251x.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 25b401c1816ae64bcc5dcb1d39ab41812522a0ce Author: Stefan Agner Date: Mon May 18 18:33:27 2015 +0200 can: mcp251x: fix resume when device is down If a valid power regulator or a dummy regulator is used (which happens to be the case when no regulator is specified), restart_work is queued no matter whether the device was running or not at suspend time. Since work queues get initialized in the ndo_open callback, resuming leads to a NULL pointer exception. Reverse exactly the steps executed at suspend time: - Enable the power regulator in any case - Enable the transceiver regulator if the device was running, even in case we have a power regulator - Queue restart_work only in case the device was running Fixes: bf66f3736a94 ("can: mcp251x: Move to threaded interrupts instead of workqueues.") Signed-off-by: Stefan Agner Cc: linux-stable Signed-off-by: Marc Kleine-Budde drivers/net/can/spi/mcp251x.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) commit 15afb10df4a3f1bd781373ffd968e70cc4b21a42 Merge: ddf06c1 7bee8b0 Author: David S. Miller Date: Wed Jul 15 21:59:23 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-07-15 Here's a regression fix for Broadcom Bluetooth adapters found at least in certain Apple laptops. The issue was introduced in 4.1 so there's the appropriate "Cc: stable" entry for it. ==================== Signed-off-by: David S. Miller commit ddf06c1e569a64a44c4c750ae45b2604f19e45f0 Author: Alexei Starovoitov Date: Tue Jul 14 12:15:19 2015 -0700 tc: act_bpf: fix memory leak prog->bpf_ops is populated when act_bpf is used with classic BPF and prog->bpf_name is optionally used with extended BPF. Fix memory leak when act_bpf is released. Fixes: d23b8ad8ab23 ("tc: add BPF based action") Fixes: a8cb5f556b56 ("act_bpf: add initial eBPF support for actions") Acked-by: Daniel Borkmann Signed-off-by: Alexei Starovoitov Signed-off-by: David S. Miller net/sched/act_bpf.c | 3 +++ 1 file changed, 3 insertions(+) commit c0afd9ce4d6a646fb6433536f95a418bb348fab1 Author: WANG Cong Date: Tue Jul 14 11:21:58 2015 -0700 fq_codel: fix return value of fq_codel_drop() The ->drop() is supposed to return the number of bytes it dropped, however fq_codel_drop() returns the index of the flow where it drops a packet from. Fix this by introducing a helper to wrap fq_codel_drop(). Cc: Eric Dumazet Signed-off-by: Cong Wang Signed-off-by: Cong Wang Acked-by: Eric Dumazet Signed-off-by: David S. Miller net/sched/sch_fq_codel.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit e8d092aafd9e68c04d7b468e95ff7a617998a796 Author: WANG Cong Date: Tue Jul 14 11:21:57 2015 -0700 net_sched: fix a use-after-free in sfq Fixes: 25331d6ce42b ("net: sched: implement qstat helper routines") Cc: John Fastabend Signed-off-by: Cong Wang Signed-off-by: Cong Wang Signed-off-by: David S. Miller net/sched/sch_sfq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 51f65e3c0d1ba3450372ac519e1bceb04c19133c Merge: 20b953e 23a5a49 Author: David S. Miller Date: Wed Jul 15 21:33:40 2015 -0700 Merge branch 'ipvlan' Konstantin Khlebnikov says: ==================== ipvlan: cleanups and fixes v1: http://comments.gmane.org/gmane.linux.network/363346 v2: http://comments.gmane.org/gmane.linux.network/369086 v3 has reduced set of patches from "ipvlan: fix ipv6 autoconfiguration". Here just cleanups and patch which ignores ipv6 notifications from RA. ==================== Signed-off-by: David S. Miller commit 23a5a49c83dd8a7201a42e96d24238bde3547c11 Author: Konstantin Khlebnikov Date: Tue Jul 14 16:35:55 2015 +0300 ipvlan: ignore addresses from ipv6 autoconfiguration Inet6addr notifier is atomic and runs in bh context without RTNL when ipv6 receives router advertisement packet and performs autoconfiguration. Proper fix still in discussion. Let's at least plug the bug. v1: http://lkml.kernel.org/r/20150514135618.14062.1969.stgit@buzz v2: http://lkml.kernel.org/r/20150703125840.24121.91556.stgit@buzz Signed-off-by: Konstantin Khlebnikov Signed-off-by: David S. Miller drivers/net/ipvlan/ipvlan_main.c | 4 ++++ 1 file changed, 4 insertions(+) commit 0fba37a3af03a7e74bf9e75473729adb98da49c3 Author: WANG Cong Date: Tue Jul 14 16:35:54 2015 +0300 ipvlan: use rcu_deference_bh() in ipvlan_queue_xmit() In tx path rcu_read_lock_bh() is held, so we need rcu_deference_bh(). This fixes the following warning: =============================== [ INFO: suspicious RCU usage. ] 4.1.0-rc1+ #1007 Not tainted ------------------------------- drivers/net/ipvlan/ipvlan.h:106 suspicious rcu_dereference_check() usage! other info that might help us debug this: rcu_scheduler_active = 1, debug_locks = 0 1 lock held by dhclient/1076: #0: (rcu_read_lock_bh){......}, at: [] rcu_lock_acquire+0x0/0x26 stack backtrace: CPU: 2 PID: 1076 Comm: dhclient Not tainted 4.1.0-rc1+ #1007 Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 0000000000000001 ffff8800d381bac8 ffffffff81a4154f 000000003c1a3c19 ffff8800d4d0a690 ffff8800d381baf8 ffffffff810b849f ffff880117d41148 ffff880117d40000 ffff880117d40068 0000000000000156 ffff8800d381bb18 Call Trace: [] dump_stack+0x4c/0x65 [] lockdep_rcu_suspicious+0x107/0x110 [] ipvlan_port_get_rcu+0x47/0x4e [] ipvlan_queue_xmit+0x35/0x450 [] ? rcu_read_unlock+0x3e/0x5f [] ? local_clock+0x19/0x22 [] ? __lock_is_held+0x39/0x52 [] ipvlan_start_xmit+0x1b/0x44 [] dev_hard_start_xmit+0x2ae/0x467 [] __dev_queue_xmit+0x50a/0x60c [] dev_queue_xmit_sk+0x13/0x15 [] dev_queue_xmit+0x10/0x12 [] packet_sendmsg+0xb6b/0xbdf [] ? mark_lock+0x2e/0x226 [] ? sched_clock_cpu+0x9e/0xb7 [] sock_sendmsg_nosec+0x12/0x1d [] sock_sendmsg+0x29/0x2e [] sock_write_iter+0x70/0x91 [] __vfs_write+0x7e/0xa7 [] vfs_write+0x92/0xe8 [] SyS_write+0x47/0x7e [] system_call_fastpath+0x12/0x6f Fixes: 2ad7bf363841 ("ipvlan: Initial check-in of the IPVLAN driver.") Cc: Mahesh Bandewar Signed-off-by: Cong Wang Acked-by: Mahesh Bandewar Acked-by: Konstantin Khlebnikov Signed-off-by: David S. Miller drivers/net/ipvlan/ipvlan.h | 5 +++++ drivers/net/ipvlan/ipvlan_core.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) commit 6640e673c6f3dbaace085ca2686a8a343dc23a71 Author: Konstantin Khlebnikov Date: Tue Jul 14 16:35:53 2015 +0300 ipvlan: unhash addresses without synchronize_rcu All structures used in traffic forwarding are rcu-protected: ipvl_addr, ipvl_dev and ipvl_port. Thus we can unhash addresses without synchronization. We'll anyway hash it back into the same bucket: in worst case lockless lookup will scan hash once again. Signed-off-by: Konstantin Khlebnikov Signed-off-by: David S. Miller drivers/net/ipvlan/ipvlan.h | 2 +- drivers/net/ipvlan/ipvlan_core.c | 4 +--- drivers/net/ipvlan/ipvlan_main.c | 8 ++++---- 3 files changed, 6 insertions(+), 8 deletions(-) commit 6a725497318545aae246232ed05a8df9cffb0a02 Author: Konstantin Khlebnikov Date: Tue Jul 14 16:35:51 2015 +0300 ipvlan: plug memory leak in ipvlan_link_delete Add missing kfree_rcu(addr, rcu); Signed-off-by: Konstantin Khlebnikov Signed-off-by: David S. Miller drivers/net/ipvlan/ipvlan_main.c | 1 + 1 file changed, 1 insertion(+) commit 515866f8185b92fb18a782408c53839f003c7669 Author: Konstantin Khlebnikov Date: Tue Jul 14 16:35:50 2015 +0300 ipvlan: remove counters of ipv4 and ipv6 addresses They are unused after commit f631c44bbe15 ("ipvlan: Always set broadcast bit in multicast filter"). Signed-off-by: Konstantin Khlebnikov Signed-off-by: David S. Miller drivers/net/ipvlan/ipvlan.h | 2 -- drivers/net/ipvlan/ipvlan_main.c | 33 ++++++++++++--------------------- 2 files changed, 12 insertions(+), 23 deletions(-) commit 3aa20508a6fe386c2a893027ef4c4ef78ee4eac2 Merge: 9090fdb 91ef5cc Author: Linus Torvalds Date: Wed Jul 15 18:38:24 2015 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security Pull TPM bugfixes from James Morris. * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: tpm, tpm_crb: fail when TPM2 ACPI table contents look corrupted tpm: Fix initialization of the cdev commit 20b953edf9cfbba6b7c8cfbd33a30f95f6878f7b Merge: 03645a1 1c0ee04 Author: David S. Miller Date: Wed Jul 15 17:27:13 2015 -0700 Merge tag 'linux-can-fixes-for-4.2-20150715' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can Marc Kleine-Budde says: ==================== pull-request: can 2015-07-15 this is a pull request of 12 patches by me. This series fixes the use of the skb after netif_receive_skb() / netif_rx() which exists in several drivers. ==================== Signed-off-by: David S. Miller commit 03645a11a570d52e70631838cb786eb4253eb463 Author: Eric Dumazet Date: Tue Jul 14 08:10:22 2015 +0200 ipv6: lock socket in ip6_datagram_connect() ip6_datagram_connect() is doing a lot of socket changes without socket being locked. This looks wrong, at least for udp_lib_rehash() which could corrupt lists because of concurrent udp_sk(sk)->udp_portaddr_hash accesses. Signed-off-by: Eric Dumazet Acked-by: Herbert Xu Signed-off-by: David S. Miller include/net/ip.h | 1 + net/ipv4/datagram.c | 16 ++++++++++++---- net/ipv6/datagram.c | 20 +++++++++++++++----- 3 files changed, 28 insertions(+), 9 deletions(-) commit 14e4cec80cd05ad585c537db56a705ab61fbaff9 Merge: 052cbda 62c13ba Author: David S. Miller Date: Wed Jul 15 17:24:45 2015 -0700 Merge branch 'isdn-gigaset-fixes' Tilman Schmidt says: ==================== Fix long-standing regression in ser_gigaset ISDN driver This series fixes a serious regression in the Gigaset M101 driver introduced in kernel release 3.10 and removes some unneeded code. Please also queue up patch 1 of the series for inclusion in the stable/longterm releases 3.10 and later. ==================== Signed-off-by: David S. Miller commit 62c13bad39211387afd4354e8e127a535d13e70d Author: Tilman Schmidt Date: Tue Jul 14 00:37:13 2015 +0200 isdn/gigaset: drop unused ldisc methods The line discipline read and write methods are optional so the dummy methods in ser_gigaset are unnecessary and can be removed. Signed-off-by: Tilman Schmidt Signed-off-by: David S. Miller drivers/isdn/gigaset/ser-gigaset.c | 24 ------------------------ 1 file changed, 24 deletions(-) commit fd98e9419d8d622a4de91f76b306af6aa627aa9c Author: Tilman Schmidt Date: Tue Jul 14 00:37:13 2015 +0200 isdn/gigaset: reset tty->receive_room when attaching ser_gigaset Commit 79901317ce80 ("n_tty: Don't flush buffer when closing ldisc"), first merged in kernel release 3.10, caused the following regression in the Gigaset M101 driver: Before that commit, when closing the N_TTY line discipline in preparation to switching to N_GIGASET_M101, receive_room would be reset to a non-zero value by the call to n_tty_flush_buffer() in n_tty's close method. With the removal of that call, receive_room might be left at zero, blocking data reception on the serial line. The present patch fixes that regression by setting receive_room to an appropriate value in the ldisc open method. Fixes: 79901317ce80 ("n_tty: Don't flush buffer when closing ldisc") Signed-off-by: Tilman Schmidt Signed-off-by: David S. Miller drivers/isdn/gigaset/ser-gigaset.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit 052cbda41fdc243a8d40cce7ab3a6327b4b2887e Author: WANG Cong Date: Mon Jul 13 12:30:07 2015 -0700 fq_codel: fix a use-after-free Fixes: 25331d6ce42b ("net: sched: implement qstat helper routines") Cc: John Fastabend Signed-off-by: Cong Wang Signed-off-by: Cong Wang Acked-by: Eric Dumazet Signed-off-by: David S. Miller net/sched/sch_fq_codel.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f82b681a511f4d61069e9586a9cf97bdef371ef3 Author: Yuchung Cheng Date: Mon Jul 13 12:10:20 2015 -0700 tcp: don't use F-RTO on non-recurring timeouts Currently F-RTO may repeatedly send new data packets on non-recurring timeouts in CA_Loss mode. This is a bug because F-RTO (RFC5682) should only be used on either new recovery or recurring timeouts. This exacerbates the recovery progress during frequent timeout & repair, because we prioritize sending new data packets instead of repairing the holes when the bandwidth is already scarce. Fix it by correcting the test of a new recovery episode. Signed-off-by: Yuchung Cheng Signed-off-by: Neal Cardwell Signed-off-by: David S. Miller net/ipv4/tcp_input.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 5ebc784625ea68a9570d1f70557e7932988cd1b4 Author: Nikolay Aleksandrov Date: Mon Jul 13 06:36:19 2015 -0700 bridge: mdb: fix double add notification Since the mdb add/del code was introduced there have been 2 br_mdb_notify calls when doing br_mdb_add() resulting in 2 notifications on each add. Example: Command: bridge mdb add dev br0 port eth1 grp 239.0.0.1 permanent Before patch: root@debian:~# bridge monitor all [MDB]dev br0 port eth1 grp 239.0.0.1 permanent [MDB]dev br0 port eth1 grp 239.0.0.1 permanent After patch: root@debian:~# bridge monitor all [MDB]dev br0 port eth1 grp 239.0.0.1 permanent Signed-off-by: Nikolay Aleksandrov Fixes: cfd567543590 ("bridge: add support of adding and deleting mdb entries") Signed-off-by: David S. Miller net/bridge/br_mdb.c | 1 - 1 file changed, 1 deletion(-) commit bc8c20acaea154efc558f5f4122ed65d396f6156 Author: Satish Ashok Date: Mon Jul 13 05:28:37 2015 -0700 bridge: multicast: treat igmpv3 report with INCLUDE and no sources as a leave A report with INCLUDE/Change_to_include and empty source list should be treated as a leave, specified by RFC 3376, section 3.1: "If the requested filter mode is INCLUDE *and* the requested source list is empty, then the entry corresponding to the requested interface and multicast address is deleted if present. If no such entry is present, the request is ignored." Signed-off-by: Satish Ashok Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller net/bridge/br_multicast.c | 37 ++++++++++++++++++++++++++++++------- 1 file changed, 30 insertions(+), 7 deletions(-) commit 9090fdb9c95a68a44129d1392f7bd675aec8b0c2 Merge: 16ff49a d8b2ba7 Author: Linus Torvalds Date: Wed Jul 15 17:03:03 2015 -0700 Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma Pull rdma fixes from Doug Ledford: "Mainly fix-ups for the various 4.2 items" * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma: (24 commits) IB/core: Destroy ocrdma_dev_id IDR on module exit IB/core: Destroy multcast_idr on module exit IB/mlx4: Optimize do_slave_init IB/mlx4: Fix memory leak in do_slave_init IB/mlx4: Optimize freeing of items on error unwind IB/mlx4: Fix use of flow-counters for process_mad IB/ipath: Convert use of __constant_ to IB/ipoib: Set MTU to max allowed by mode when mode changes IB/ipoib: Scatter-Gather support in connected mode IB/ucm: Fix bitmap wrap when devnum > IB_UCM_MAX_DEVICES IB/ipoib: Prevent lockdep warning in __ipoib_ib_dev_flush IB/ucma: Fix lockdep warning in ucma_lock_files rds: rds_ib_device.refcount overflow RDMA/nes: Fix for incorrect recording of the MAC address RDMA/nes: Fix for resolving the neigh RDMA/core: Fixes for port mapper client registration IB/IPoIB: Fix bad error flow in ipoib_add_port() IB/mlx4: Do not attemp to report HCA clock offset on VFs IB/cm: Do not queue work to a device that's going away IB/srp: Avoid using uninitialized variable ... commit 89c22d8c3b278212eef6a8cc66b570bc840a6f5a Author: Herbert Xu Date: Mon Jul 13 20:01:42 2015 +0800 net: Fix skb csum races when peeking When we calculate the checksum on the recv path, we store the result in the skb as an optimisation in case we need the checksum again down the line. This is in fact bogus for the MSG_PEEK case as this is done without any locking. So multiple threads can peek and then store the result to the same skb, potentially resulting in bogus skb states. This patch fixes this by only storing the result if the skb is not shared. This preserves the optimisations for the few cases where it can be done safely due to locking or other reasons, e.g., SIOCINQ. Signed-off-by: Herbert Xu Acked-by: Eric Dumazet Signed-off-by: David S. Miller net/core/datagram.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) commit c9805b9986ed88b7df1b14ea7d538d83f2149cf5 Author: Fabio Estevam Date: Mon Jul 13 08:13:52 2015 -0300 Revert "net: fec: Ensure clocks are enabled while using mdio bus" This reverts commit 6c3e921b18edca290099adfddde8a50236bf2d80. commit 6c3e921b18ed ("net: fec: Ensure clocks are enabled while using mdio bus") prevents the kernel to boot on mx6 boards, so let's revert it. Reported-by: Tyler Baker Signed-off-by: Fabio Estevam Signed-off-by: David S. Miller drivers/net/ethernet/freescale/fec_main.c | 88 +++++-------------------------- 1 file changed, 13 insertions(+), 75 deletions(-) commit da278622bf04f8ddb14519a2b8214e108ef26101 Author: Richard Stearn Date: Mon Jul 13 11:38:24 2015 +0200 NET: AX.25: Stop heartbeat timer on disconnect. This may result in a kernel panic. The bug has always existed but somehow we've run out of luck now and it bites. Signed-off-by: Richard Stearn Cc: stable@vger.kernel.org # all branches Signed-off-by: Ralf Baechle Signed-off-by: David S. Miller net/ax25/ax25_subr.c | 1 + 1 file changed, 1 insertion(+) commit 738ac1ebb96d02e0d23bc320302a6ea94c612dec Author: Herbert Xu Date: Mon Jul 13 16:04:13 2015 +0800 net: Clone skb before setting peeked flag Shared skbs must not be modified and this is crucial for broadcast and/or multicast paths where we use it as an optimisation to avoid unnecessary cloning. The function skb_recv_datagram breaks this rule by setting peeked without cloning the skb first. This causes funky races which leads to double-free. This patch fixes this by cloning the skb and replacing the skb in the list when setting skb->peeked. Fixes: a59322be07c9 ("[UDP]: Only increment counter on first peek/recv") Reported-by: Konstantin Khlebnikov Signed-off-by: Herbert Xu Signed-off-by: David S. Miller net/core/datagram.c | 41 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 38 insertions(+), 3 deletions(-) commit 035d210f928ce083435b4fd351a26d126c02c927 Author: Daniel Borkmann Date: Mon Jul 13 00:06:02 2015 +0200 rtnetlink: reject non-IFLA_VF_PORT attributes inside IFLA_VF_PORTS Similarly as in commit 4f7d2cdfdde7 ("rtnetlink: verify IFLA_VF_INFO attributes before passing them to driver"), we have a double nesting of netlink attributes, i.e. IFLA_VF_PORTS only contains IFLA_VF_PORT that is nested itself. While IFLA_VF_PORTS is a verified attribute from ifla_policy[], we only check if the IFLA_VF_PORTS container has IFLA_VF_PORT attributes and then pass the attribute's content itself via nla_parse_nested(). It would be more correct to reject inner types other than IFLA_VF_PORT instead of continuing parsing and also similarly as in commit 4f7d2cdfdde7, to check for a minimum of NLA_HDRLEN. Signed-off-by: Daniel Borkmann Cc: Roopa Prabhu Cc: Scott Feldman Cc: Jason Gunthorpe Acked-by: Roopa Prabhu Signed-off-by: David S. Miller net/core/rtnetlink.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit 91a57731eed05714609855b1d72e6118b6b3ec6f Author: Roger Quadros Date: Wed Jul 8 17:34:43 2015 +0300 ARM: DRA7: hwmod: fix gpmc hwmod GPMC smart idle is not really broken but it does not support smart idle with wakeup. Fixes: 556708fe8718 ("ARM: OMAP: DRA7: hwmod: Make gpmc software supervised as the smart idle is broken") Signed-off-by: Roger Quadros Reviewed-by: Paul Walmsley Signed-off-by: Paul Walmsley arch/arm/mach-omap2/omap_hwmod_7xx_data.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 2252607d327d5219a6331b50e6ec266d56402be0 Author: Gregory Fong Date: Wed Jun 17 18:00:40 2015 -0700 gpio: brcmstb: fix null ptr dereference in driver remove If a failure occurs during probe, brcmstb_gpio_remove() is called. In remove, we call platform_get_drvdata(), but at the time of failure in the probe the driver data hadn't yet been set which leads to a NULL ptr dereference in the remove's list_for_each. Call platform_set_drvdata() and set up list head right after allocating the priv struct to both avoid the null pointer dereference that could occur today. To guard against potential future changes, check for null pointer in remove. Reported-by: Tim Ross Signed-off-by: Gregory Fong Signed-off-by: Linus Walleij drivers/gpio/gpio-brcmstb.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) commit 30bb6fb39e5c08b9db5bc592d6cbc9a5fc5e67a4 Author: Geert Uytterhoeven Date: Mon Jun 15 13:31:33 2015 +0200 gpio: Remove double "base" in comment Signed-off-by: Geert Uytterhoeven Signed-off-by: Linus Walleij include/linux/gpio/driver.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7bee607472aa2e5a36dfe143e5a625be06125f53 Author: Keith Busch Date: Tue Jul 14 11:57:48 2015 -0600 NVMe: Reread partitions on metadata formats This patch has the driver automatically reread partitions if a namespace has a separate metadata format. Previously revalidating a disk was sufficient to get the correct capacity set on such formatted drives, but partitions that may exist would not have been surfaced. Reported-by: Paul Grabinar Signed-off-by: Keith Busch Cc: Matthew Wilcox Tested-by: Paul Grabinar Signed-off-by: Jens Axboe drivers/block/nvme-core.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) commit 16ff49a08bac27f3f4799e4169f0d72a2ea66c2e Merge: df14a68 ee296d7 Author: Linus Torvalds Date: Wed Jul 15 13:35:23 2015 -0700 Merge tag 'locks-v4.2-1' of git://git.samba.org/jlayton/linux Pull file locking updates from Jeff Layton: "I had thought that I was going to get away without a pull request this cycle. There was a NFSv4 file locking problem that cropped up that I tried to fix in the NFSv4 code alone, but that fix has turned out to be problematic. These patches fix this in the correct way. Note that this touches some NFSv4 code as well. Ordinarily I'd wait for Trond to ACK this, but he's on holiday right now and the bug is rather nasty. So I suggest we merge this and if he raises issues with it we can sort it out when he gets back" Acked-by: Bruce Fields Acked-by: Dan Williams [ +1 to this series fixing a 100% reproducible slab corruption + general protection fault in my nfs-root test environment. - Dan ] Acked-by: Anna Schumaker * tag 'locks-v4.2-1' of git://git.samba.org/jlayton/linux: locks: inline posix_lock_file_wait and flock_lock_file_wait nfs4: have do_vfs_lock take an inode pointer locks: new helpers - flock_lock_inode_wait and posix_lock_inode_wait locks: have flock_lock_file take an inode pointer instead of a filp Revert "nfs: take extra reference to fl->fl_file when running a LOCKU operation" commit df14a68d633c362b6aae57947d5c57fac0393a1e Merge: bec33cd ee4100d Author: Linus Torvalds Date: Wed Jul 15 13:30:12 2015 -0700 Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm Pull KVM fixes from Paolo Bonzini: - Fix FPU refactoring ("kvm: x86: fix load xsave feature warning") - Fix eager FPU mode (Cc stable) - AMD bits of MTRR virtualization * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: kvm: x86: fix load xsave feature warning KVM: x86: apply guest MTRR virtualization on host reserved pages KVM: SVM: Sync g_pat with guest-written PAT value KVM: SVM: use NPT page attributes KVM: count number of assigned devices KVM: VMX: fix vmwrite to invalid VMCS KVM: x86: reintroduce kvm_is_mmio_pfn x86: hyperv: add CPUID bit for crash handlers commit bec33cd2ebddde3be3123a672d0fbb77e9657d65 Merge: 9c69481 624b71e Author: Linus Torvalds Date: Wed Jul 15 13:17:31 2015 -0700 Merge tag 'arc-v4.2-rc3-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc Pull ARC fixes from Vineet Gupta: - Makefile changes (top-level+ARC) reinstates -O3 builds (regression since 3.16) - IDU intc related fixes, IRQ affinity - patch to make bitops safer for ARC - perf fix from Alexey to remove signed PC braino - Futex backend gets llock/scond support * tag 'arc-v4.2-rc3-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc: ARCv2: support HS38 releases ARC: make sure instruction_pointer() returns unsigned value ARC: slightly refactor macros for boot logging ARC: Add llock/scond to futex backend arc:irqchip: prepare for drivers/irqchip/irqchip.h removal ARC: Make ARC bitops "safer" (add anti-optimization) ARCv2: [axs103] bump CPU frequency from 75 to 90 MHZ ARCv2: intc: IDU: Fix potential race in installing a chained IRQ handler ARCv2: intc: IDU: support irq affinity ARC: fix unused var wanring ARC: Don't memzero twice in dma_alloc_coherent for __GFP_ZERO ARC: Override toplevel default -O2 with -O3 kbuild: Allow arch Makefiles to override {cpp,ld,c}flags ARCv2: guard SLC DMA ops with spinlock ARC: Kconfig: better way to disable ARC_HAS_LLSC for ARC_CPU_750D commit 9c69481ed0b4e6e525e6d8d4d3d83b612397e67d Merge: 97d6e2b cad49cf Author: Linus Torvalds Date: Wed Jul 15 13:12:44 2015 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux Pull s390 fixes from Martin Schwidefsky: "One improvement for the zcrypt driver, the quality attribute for the hwrng device has been missing. Without it the kernel entropy seeding will not happen automatically. And six bug fixes, the most important one is the fix for the vector register corruption due to machine checks" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: s390/nmi: fix vector register corruption s390/process: fix sfpc inline assembly s390/dasd: fix kernel panic when alias is set offline s390/sclp: clear upper register halves in _sclp_print_early s390/oprofile: fix compile error s390/sclp: fix compile error s390/zcrypt: enable s390 hwrng to seed kernel entropy commit 26456955719b79cc4a011b18221aa68f599f6b6c Author: Dave Kleikamp Date: Wed Jul 15 12:52:47 2015 -0500 jfs: clean up jfs_rename and fix out of order unlock The end of jfs_rename(), which is also used by the error paths, included a call to IWRITE_UNLOCK(new_ip) after labels out1, out2 and out3. If we come in through these labels, IWRITE_LOCK() has not been called yet. In moving that call to the correct spot, I also moved some exceptional truncate code earlier as well, since the early error paths don't need to deal with it, and I renamed out4: to out_tx: so a future patch by Jan Kara doesn't need to deal with renumbering or confusing out-of-order labels. Signed-off-by: Dave Kleikamp fs/jfs/namei.c | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) commit 97d6e2b636c6e07b99965f3db9f20950d7de2ecc Merge: 7558009 0fd972a Author: Linus Torvalds Date: Wed Jul 15 11:16:35 2015 -0700 Merge tag 'module-final-v4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux Pull final init.h/module.h code relocation from Paul Gortmaker: "With the release of 4.2-rc2 done, we should not be seeing any new code added that gets upset by this small code move, and we've banked yet another complete week of testing with this move in place on top of 4.2-rc1 via linux-next to ensure that remained true. Given that, I'd like to put it in now so that people formulating new work for 4.3-rc1 will be exposed to the ever so slightly stricter (but sensible) requirements wrt. whether they are needing init.h vs. module.h macros, even if they are not using linux-next. The diffstat of the move is slightly asymmetrical due to needing to leave behind a couple #ifdef in the old location and add the same ones to the new location, but other than that, it is a 1:1 move, complete with the module_init/exit trailing semicolon that we can't fix. That is, until/unless someone does a tree-wide sed fix of all the approximately 800 currently in tree users relying on it" * tag 'module-final-v4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux: module: relocate module_init from init.h to module.h commit 7558009751a591c3be148b2569b37efb951828d8 Merge: f760b87 6224beb Author: Linus Torvalds Date: Wed Jul 15 11:14:10 2015 -0700 Merge tag 'trace-v4.2-rc1-fix' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace Pull tracing fix from Steven Rostedt: "Fengguang Wu discovered a crash that happened to be because of the branch tracer (traces unlikely and likely branches) when enabled with certain debug options. What happened was that various debug options like lockdep and DEBUG_PREEMPT can cause parts of the branch tracer to recurse outside its recursion protection. In fact, part of its recursion protection used these features that caused the lockup. This cleans up the code a little and makes the recursion protection a bit more robust" * tag 'trace-v4.2-rc1-fix' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: tracing: Have branch tracer use recursive field of task struct commit 412efa73dcd3bd03c1838c91e094533a95529039 Author: Shilpa Sreeramalu Date: Wed Jul 15 07:58:09 2015 -0700 ASoC: Intel: Get correct usage_count value to load firmware The usage_count variable was read before it was set to the correct value, due to which the firmware load was failing. Because of this IPC messages sent to the firmware were timing out causing a delay of about 1 second while playing audio from the internal speakers. With this patch the usage_count is read after the function call pm_runtime_get_sync which will increment the usage_count variable and the firmware load is successful and all the IPC messages are processed correctly. Signed-off-by: Shilpa Sreeramalu Signed-off-by: Fang, Yang A Signed-off-by: Mark Brown Cc: stable@vger.kernel.org sound/soc/intel/atom/sst/sst_drv_interface.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit d531be2ca2f27cca5f041b6a140504999144a617 Author: Mikulas Patocka Date: Wed Jul 8 13:06:12 2015 -0400 libata: increase the timeout when setting transfer mode I have a ST4000DM000 disk. If Linux is booted while the disk is spun down, the command that sets transfer mode causes the disk to spin up. The spin-up takes longer than the default 5s timeout, so the command fails and timeout is reported. Fix this by increasing the timeout to 15s, which is enough for the disk to spin up. Signed-off-by: Mikulas Patocka Cc: stable@vger.kernel.org Signed-off-by: Tejun Heo drivers/ata/libata-core.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit af34d637637eabaf49406eb35c948cd51ba262a6 Author: David Milburn Date: Mon Jul 13 11:48:23 2015 -0500 libata: add ATA_HORKAGE_MAX_SEC_1024 to revert back to previous max_sectors limit Since no longer limiting max_sectors to BLK_DEF_MAX_SECTORS (commit 34b48db66e08), data corruption may occur on ST380013AS drive configured on 82801JI (ICH10 Family) SATA controller. This patch will allow the driver to limit max_sectors as before # cat /sys/block/sdb/queue/max_sectors_kb 512 I was able to double the max_sectors_kb value up to 16384 on linux-4.2.0-rc2 before seeing corruption, but seems safer to use previous limit. Without this patch max_sectors_kb will be 32767. tj: Minor comment update. Reported-by: Jeff Moyer Signed-off-by: David Milburn Signed-off-by: Tejun Heo Cc: stable@vger.kernel.org # v3.19 and later Fixes: 34b48db66e08 ("block: remove artifical max_hw_sectors cap") drivers/ata/libata-core.c | 10 ++++++++++ include/linux/ata.h | 1 + include/linux/libata.h | 2 +- 3 files changed, 12 insertions(+), 1 deletion(-) commit c62ff6b3c7325c34d649a5fc3253445af1fd3ba8 Author: Russell King Date: Sat Jun 27 16:21:46 2015 +0100 drm/armada: avoid saving the adjusted mode to crtc->mode We're not supposed to store the adjusted mode into crtc->mode. We don't use it anyway, so we can safely remove this. Signed-off-by: Russell King drivers/gpu/drm/armada/armada_crtc.c | 2 -- 1 file changed, 2 deletions(-) commit 73068ce3b5d85780466ecab1bf2459dbd660c1c8 Author: Russell King Date: Mon Jun 15 10:18:02 2015 +0100 drm/armada: fix overlay when partially off-screen Fix the start address calculation when overlay is partially off screen. fb->bits_per_pixel is not set for YUV formats, and is always zero, which led to the first component always starting at zero. Use drm_format_plane_cpp() instead. This also revealed a problem in that YUYV formats toggle the U/V data for odd pixel start address offsets. We try to rectify that by toggling the U/V swap, which for the most part works, but seemingly introduces a flicker for one scan frame of swapped U/V. However, these changes result in an overall improvement. Signed-off-by: Russell King drivers/gpu/drm/armada/armada_overlay.c | 42 ++++++++++++++++++++++----------- 1 file changed, 28 insertions(+), 14 deletions(-) commit 98fb74f4ecb8a70c75d7cfcfec17432cb0db2f5d Author: Russell King Date: Mon Jun 15 10:17:57 2015 +0100 drm/armada: convert overlay to use drm_plane_helper_check_update() Use drm_plane_helper_check_update() rather than our own code to validate and limit the size of the displayed image. As we are able to support scaling, permit the full scaling ability. Signed-off-by: Russell King drivers/gpu/drm/armada/armada_overlay.c | 67 +++++++++++++++++++-------------- 1 file changed, 39 insertions(+), 28 deletions(-) commit 0481c8c47f5e858bfc020a825fd178004c14702d Author: Russell King Date: Mon Jun 15 10:14:51 2015 +0100 drm/armada: fix gem object free after failed prime import Fix the gem object freeing after a partial import of a dma buffer, eg, one which has been imported, but not mapped. This was provoking a warning from the dma_buf code. Signed-off-by: Russell King drivers/gpu/drm/armada/armada_gem.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 41dbb2dba20ab951033d71de79d1f9863c8d1c34 Author: Russell King Date: Mon Jun 15 10:13:30 2015 +0100 drm/armada: fix incorrect overlay plane cleanup The Armada overlay plane wasn't being properly cleaned up as it was missing a call to drm_plane_cleanup(). It also wasn't freeing the right type of pointer (although we were still freeing the right pointer value.) Signed-off-by: Russell King drivers/gpu/drm/armada/armada_overlay.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 070f3f6baef5c749e8b11be0455fc90113dfdde8 Author: Russell King Date: Mon Jun 15 10:13:29 2015 +0100 drm/armada: fix missing overlay wake-up Nothing was waking up the overlay plane wait queue, so we were fully reliant on the HZ/25 wait timing out to make progress. Fix the lack of wake-up. We were also mis-handling the wait_event_timeout() return value - this returns an unsigned integer of the remaining time, or zero on timeout and the condition evaluated false. Checking this for less than zero is not sane. Signed-off-by: Russell King drivers/gpu/drm/armada/armada_overlay.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit cda57b1b05cf7b8b99ab4b732bea0b05b6c015cc Author: Arne Fitzenreiter Date: Wed Jul 15 13:54:37 2015 +0200 libata: force disable trim for SuperSSpeed S238 This device loses blocks, often the partition table area, on trim. Disable TRIM. http://pcengines.ch/msata16a.htm Signed-off-by: Arne Fitzenreiter Signed-off-by: Tejun Heo Cc: stable@vger.kernel.org drivers/ata/libata-core.c | 3 +++ 1 file changed, 3 insertions(+) commit 71d126fd28de2d4d9b7b2088dbccd7ca62fad6e0 Author: Arne Fitzenreiter Date: Wed Jul 15 13:54:36 2015 +0200 libata: add ATA_HORKAGE_NOTRIM Some devices lose data on TRIM whether queued or not. This patch adds a horkage to disable TRIM. tj: Collapsed unnecessary if() nesting. Signed-off-by: Arne Fitzenreiter Signed-off-by: Tejun Heo Cc: stable@vger.kernel.org drivers/ata/libata-scsi.c | 3 ++- drivers/ata/libata-transport.c | 2 ++ include/linux/libata.h | 2 ++ 3 files changed, 6 insertions(+), 1 deletion(-) commit 3c71ba3f80bbd476bbfb2a008da9b676031cbd32 Author: Alexey Brodkin Date: Tue Jul 14 12:05:20 2015 +0300 perf tools: Really allow to specify custom CC, AR or LD Commit 5ef7bbb09f7b ("perf tools: Allow to specify custom linker command") was meant to enable usage non $(CROSS_COMPILE)ld linker during perf building. But implementation didn't take into account the fact that LD is a pre-defined variable in GNU Make. I.e. it is always defined. Which means there's no point to check "LD ?= ..." because it will never succeed. And so LD will be either that explicitly passed to make like this: ------->8------- make LD=path_to_my_ld ... ------->8------- or default value, which is host's "ld". Latter leads to failure of cross-linkage because instead of cross linker "$(CROSS_COMPILE)ld" host's "ld" is used. Fortunately there's a way to do correct substitution of $(CROSS_COMPILE)ld with user defined LD on command-line. As a reference was used implementation in "tools/lib/traceevent/Makefile". Build tested for x86_64 and ARC. Thanks Jiri for this hint. Signed-off-by: Alexey Brodkin Fixes: 5ef7bbb09f7b ("perf tools: Allow to specify custom linker command") Cc: Aaro Koskinen Cc: Jiri Olsa Cc: Paul Mackerras Cc: Peter Zijlstra Cc: Vineet Gupta Cc: Vineet Gupta Cc: linux-arch@vger.kernel.org Link: http://lkml.kernel.org/r/1436864720-26316-1-git-send-email-abrodkin@synopsys.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Makefile.perf | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) commit a7fde09a78a8ae40b81cfb5096c3cefef6c078c9 Author: Adrian Hunter Date: Tue Jul 14 15:32:41 2015 +0300 perf auxtrace: Fix misplaced check for HAVE_SYNC_COMPARE_AND_SWAP_SUPPORT Move the checking for HAVE_SYNC_COMPARE_AND_SWAP_SUPPORT for AUX area mmaps until after checking if such mmaps are used anyway. Reported-by: Alexey Brodkin Signed-off-by: Adrian Hunter Tested-by: Alexey Brodkin Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Vineet Gupta Cc: linux-arch@vger.kernel.org Link: http://lkml.kernel.org/r/55A5023C.7020907@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/auxtrace.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit dcb54fcb3483862e993abdae99cec22fb3ae4099 Author: Thomas Hebb Date: Thu Jul 2 01:04:26 2015 -0400 phy: berlin-usb: fix divider for BG2 The USB PLL divider set by the marvell,berlin2-usb-phy compatible is not correct for BG2. We couldn't change it before because BG2Q incorrectly used the same compatible string. Now that BG2Q's compatible is fixed, change BG2's divider to the correct value. Signed-off-by: Thomas Hebb Tested-by: Antoine Tenart Signed-off-by: Kishon Vijay Abraham I drivers/phy/phy-berlin-usb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 96696a9df935d15fd2e89603454c20a692ec232a Author: Thomas Hebb Date: Thu Jul 2 01:04:18 2015 -0400 phy: berlin-usb: fix divider for BG2CD The marvell,berlin2cd-usb-phy compatible incorrectly sets the PLL divider to BG2's value instead of BG2CD/BG2Q's. Change it to the right value. Signed-off-by: Thomas Hebb Cc: stable@vger.kernel.org Signed-off-by: Kishon Vijay Abraham I drivers/phy/phy-berlin-usb.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1c4b1d1da3d88ec3871459683d0e64fedbce0b16 Author: Sebastian Ott Date: Mon Jun 29 16:57:08 2015 +0200 phy/pxa: add HAS_IOMEM dependency Fix this compile error: drivers/built-in.o: In function 'mv_usb2_phy_probe': phy-pxa-28nm-usb2.c:(.text+0x25ec): undefined reference to 'devm_ioremap_resource' drivers/built-in.o: In function 'mv_hsic_phy_probe': phy-pxa-28nm-hsic.c:(.text+0x3084): undefined reference to 'devm_ioremap_resource' Signed-off-by: Sebastian Ott Signed-off-by: Kishon Vijay Abraham I drivers/phy/Kconfig | 2 ++ 1 file changed, 2 insertions(+) commit 0a0830feb2adce8c7234b8c166a32fe9e7616788 Author: Roger Quadros Date: Tue Jun 2 12:10:40 2015 +0300 phy: ti-pipe3: fix suspend Relying on PM-ops for shutting down PHY clocks was a bad idea since the users (e.g. PCIe/SATA) might not have been suspended by then. The main culprit for not shutting down the clocks was the stray pm_runtime_get() call in probe. Fix the whole thing in the right way by getting rid of that pm_runtime_get() call from probe and removing all PM-ops. It is the sole responsibility of the PHY user to properly turn OFF and de-initialize the PHY as part of its suspend routine. As PHY core serializes init/exit we don't need to use a spinlock in this driver. So get rid of it. Signed-off-by: Roger Quadros Signed-off-by: Sekhar Nori Signed-off-by: Kishon Vijay Abraham I drivers/phy/phy-ti-pipe3.c | 172 +++++++++++---------------------------------- 1 file changed, 41 insertions(+), 131 deletions(-) commit 4c62360d7562a20c996836d163259c87d9378120 Author: Luck, Tony Date: Tue Jun 30 15:57:51 2015 -0700 efi: Handle memory error structures produced based on old versions of standard The memory error record structure includes as its first field a bitmask of which subsequent fields are valid. The allows new fields to be added to the structure while keeping compatibility with older software that parses these records. This mechanism was used between versions 2.2 and 2.3 to add four new fields, growing the size of the structure from 73 bytes to 80. But Linux just added all the new fields so this test: if (gdata->error_data_length >= sizeof(*mem_err)) cper_print_mem(newpfx, mem_err); else goto err_section_too_small; now make Linux complain about old format records being too short. Add a definition for the old format of the structure and use that for the minimum size check. Pass the actual size to cper_print_mem() so it can sanity check the validation_bits field to ensure that if a BIOS using the old format sets bits as if it were new, we won't access fields beyond the end of the structure. Signed-off-by: Tony Luck Cc: Signed-off-by: Matt Fleming drivers/firmware/efi/cper.c | 15 ++++++++++++--- include/linux/cper.h | 22 +++++++++++++++++++++- 2 files changed, 33 insertions(+), 4 deletions(-) commit 91ef5ccd54a2f22b2593bb6e8c97fc26c74b7f30 Merge: f760b87 b371616 Author: James Morris Date: Wed Jul 15 21:46:59 2015 +1000 Merge tag 'tpm-fixes-for-4.2-rc2' of https://github.com/PeterHuewe/linux-tpmdd into for-linus commit 65ea03e31e5ab47f784b1a701419264af97d3205 Merge: a833581 9c0fa8d Author: Ingo Molnar Date: Wed Jul 15 13:31:21 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 'perf report' and 'perf top' handling of the '--dsos DSO-LIST', '--comms COMM-LIST' and '--symbols SYM-LIST' command line options, that were segfaulting due to not considering those lists as filters in the hists browser TUI code. (Arnaldo Carvalho de Melo) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit 9f7e25edb1575a6d2363dc003f9cc09d840657e2 Author: Mark Brown Date: Tue Jul 14 11:17:26 2015 +0100 regulator: core: Handle full constraints systems when resolving supplies When resolving device supplies if we fail to look up the regulator we substitute in the dummy supply instead if the system has fully specified constraints. When resolving supplies for regulators we do not have the equivalent code and instead just directly use the regulator_dev_lookup() result causing spurious failures. This does not affect DT systems since we are able to detect missing mappings directly as part of regulator_dev_lookup() and so have appropriate handling in the DT specific code. Reported-by: Christian Hartmann Signed-off-by: Mark Brown drivers/regulator/core.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit e0ea136525d1270166a999b20d8c916b5936c6ca Merge: e1749a7 9908ac3 Author: Olof Johansson Date: Wed Jul 15 07:02:33 2015 -0400 Merge tag 'omap-for-v4.2/fixes-rc2-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes Fixes for omaps, all dts changes except for one: - Fix up LCD panel name for overo boards - Three fixes for pepper board for regulators, freqeuncy scaling and audio input. Note that there is still one issue being worked on for booting with multi_v7_defconfig - Add missing #iommu-cells for omap4 and 5 - Add missing HAVE_ARM_SCU for am43xx * tag 'omap-for-v4.2/fixes-rc2-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: (210 commits) ARM: dts: Correct audio input route & set mic bias for am335x-pepper ARM: OMAP2+: Add HAVE_ARM_SCU for AM43XX ARM: dts: OMAP5: Add #iommu-cells property to IOMMUs ARM: dts: OMAP4: Add #iommu-cells property to IOMMUs ARM: dts: Fix frequency scaling on Gumstix Pepper ARM: dts: configure regulators for Gumstix Pepper ARM: dts: omap3: overo: Update LCD panel names + Linux 4.2-rc2 Signed-off-by: Olof Johansson commit 9908ac3daa3da2d236b5406b95d0865ddb8b29c4 Author: Adam YH Lee Date: Tue Jul 14 11:17:24 2015 -0700 ARM: dts: Correct audio input route & set mic bias for am335x-pepper Audio-in was incorrectly routed to Line In. It should be Mic3L as per schematic. Using mic-bias voltage at 2.0v (<0x1>) does not work for some reason. There is no voltage seen on micbias (R127). Mic-bias voltage of 2.5v (<0x2>) works. I see voltage of 2.475v across GND and micbias. With these changes, I can record audio with a pair of proliferate TRRS earbuds. Signed-off-by: Adam YH Lee Acked-by: Ash Charles Signed-off-by: Tony Lindgren arch/arm/boot/dts/am335x-pepper.dts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit f87d089d4469d05f565c8ce350b6631b14c4fff8 Author: Dave Gerlach Date: Fri Jul 10 16:05:48 2015 -0500 ARM: OMAP2+: Add HAVE_ARM_SCU for AM43XX CONFIG_HAVE_ARM_SCU only gets selected if CONFIG_SMP is selected in an OMAP system, however AM43XX needs this option regardless of CONFIG_SMP and also for an AM43XX only build as it is important for controlling power in the SoC. Without this we cannot suspend the CPU for SoC suspend or cpuidle. The ARM Cortex A9 needs SCU CPU Power Status bits to be set to off mode in order for the PRCM to transition the MPU to low power modes. Signed-off-by: Dave Gerlach Signed-off-by: Tony Lindgren arch/arm/mach-omap2/Kconfig | 1 + 1 file changed, 1 insertion(+) commit c631d5f90e7ee246536c72f80ade86e9ef4d2f13 Author: Tvrtko Ursulin Date: Tue Jul 14 11:13:08 2015 +0100 drm: Provide compat ioctl for addfb2.1 Frame buffer modifiers extensions provided in; commit e3eb3250d84ef97b766312345774367b6a310db8 Author: Rob Clark Date: Thu Feb 5 14:41:52 2015 +0000 drm: add support for tiled/compressed/etc modifier in addfb2 Missed the structure packing/alignment problem where 64-bit members were added after the odd number of 32-bit ones. This makes the compiler produce structures of different sizes under 32- and 64-bit x86 targets and makes the ioctl need explicit compat handling. v2: Removed the typedef. (Daniel Vetter) Signed-off-by: Tvrtko Ursulin Reviewed-by: Daniel Vetter Cc: dri-devel@lists.freedesktop.org Cc: Rob Clark Cc: Daniel Stone Cc: Daniel Vetter Cc: stable@vger.kernel.org [danvet: Squash in compile fix from Mika.] Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_ioc32.c | 60 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) commit e1749a757236564127e932703d3ed442d910e6d2 Merge: cde137a d438462 Author: Olof Johansson Date: Wed Jul 15 05:29:22 2015 -0400 Merge tag 'imx-fixes-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into fixes Merge "ARM: imx: fixes for 4.2" from Shawn Guo: The i.MX fixes for 4.2: - Correct compatible string for i.MX27 GPT which actually shares the same programming model as i.MX21 GPT rather than i.MX1 one. - Add missing #io-channel-cells property for i.MX23 LRADC device, which is required for the device to be an IIO provider. - Correct HSYNC/VSYNC pins and add ddc-i2c-bus property for TVE device on imx53-qsb to work properly. - Always enable PU domain if CONFIG_PM is not set. This fixes a couple of failure scenarios which will hang the system if one of the devices in the PU domain is accessed. * tag 'imx-fixes-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: ARM: imx6: gpc: always enable PU domain if CONFIG_PM is not set ARM: dts: imx53-qsb: fix TVE entry ARM: dts: mx23: fix iio-hwmon support ARM: dts: imx27: Adjust the GPT compatible string Signed-off-by: Olof Johansson commit ce0d3c0a6fb1422101498ef378c0851dabbbf67f Author: Thomas Gleixner Date: Tue Jul 14 22:03:57 2015 +0200 genirq: Revert sparse irq locking around __cpu_up() and move it to x86 for now Boris reported that the sparse_irq protection around __cpu_up() in the generic code causes a regression on Xen. Xen allocates interrupts and some more in the xen_cpu_up() function, so it deadlocks on the sparse_irq_lock. There is no simple fix for this and we really should have the protection for all architectures, but for now the only solution is to move it to x86 where actual wreckage due to the lack of protection has been observed. Reported-and-tested-by: Boris Ostrovsky Fixes: a89941816726 'hotplug: Prevent alloc/free of irq descriptors during cpu up/down' Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra Cc: xiao jin Cc: Joerg Roedel Cc: Borislav Petkov Cc: Yanmin Zhang Cc: xen-devel arch/x86/kernel/smpboot.c | 11 +++++++++++ kernel/cpu.c | 9 --------- 2 files changed, 11 insertions(+), 9 deletions(-) commit 1c0ee046957648106b415df79038e4e62b144c19 Author: Marc Kleine-Budde Date: Sat Jul 11 21:16:08 2015 +0200 can: pcan_usb: don't touch skb after netif_rx() There is no guarantee that the skb is in the same state after calling net_receive_skb() or netif_rx(). It might be freed or reused. Not really harmful as its a read access, except you turn on the proper debugging options which catch a use after free. Cc: Stephane Grosjean Signed-off-by: Marc Kleine-Budde drivers/net/can/usb/peak_usb/pcan_usb.c | 7 +++---- drivers/net/can/usb/peak_usb/pcan_usb_pro.c | 4 ++-- 2 files changed, 5 insertions(+), 6 deletions(-) commit 9b721a4cefcbdedadbe72b5ec405046c139cf8ad Author: Marc Kleine-Budde Date: Sat Jul 11 21:16:08 2015 +0200 can: usb_8dev: don't touch skb after netif_rx() There is no guarantee that the skb is in the same state after calling net_receive_skb() or netif_rx(). It might be freed or reused. Not really harmful as its a read access, except you turn on the proper debugging options which catch a use after free. Cc: Bernd Krumboeck Signed-off-by: Marc Kleine-Budde drivers/net/can/usb/usb_8dev.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 43c021e8d6844c4b0f5cc9eda10d232e7b87a456 Author: Marc Kleine-Budde Date: Sat Jul 11 21:16:08 2015 +0200 can: ems_usb: don't touch skb after netif_rx() There is no guarantee that the skb is in the same state after calling net_receive_skb() or netif_rx(). It might be freed or reused. Not really harmful as its a read access, except you turn on the proper debugging options which catch a use after free. Cc: Gerhard Uttenthaler Signed-off-by: Marc Kleine-Budde drivers/net/can/usb/ems_usb.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 296decb6931fca0bbc0bfb26865837d52e287599 Author: Marc Kleine-Budde Date: Sat Jul 11 21:16:08 2015 +0200 can: esd_usb2: don't touch skb after netif_rx() There is no guarantee that the skb is in the same state after calling net_receive_skb() or netif_rx(). It might be freed or reused. Not really harmful as its a read access, except you turn on the proper debugging options which catch a use after free. Cc: Thomas Körper Signed-off-by: Marc Kleine-Budde drivers/net/can/usb/esd_usb2.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 889dd06e107d816fe63ff65e5dd3466949878439 Author: Marc Kleine-Budde Date: Sat Jul 11 21:16:08 2015 +0200 can: sja1000: don't touch skb after netif_rx() There is no guarantee that the skb is in the same state after calling net_receive_skb() or netif_rx(). It might be freed or reused. Not really harmful as its a read access, except you turn on the proper debugging options which catch a use after free. Cc: Wolfgang Grandegger Cc: Oliver Hartkopp Signed-off-by: Marc Kleine-Budde drivers/net/can/sja1000/sja1000.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit ef934e89f5e68535c447789b74de42cf389e55de Author: Marc Kleine-Budde Date: Sat Jul 11 21:16:08 2015 +0200 can: cc770: don't touch skb after netif_rx() There is no guarantee that the skb is in the same state after calling net_receive_skb() or netif_rx(). It might be freed or reused. Not really harmful as its a read access, except you turn on the proper debugging options which catch a use after free. Cc: Wolfgang Grandegger Signed-off-by: Marc Kleine-Budde drivers/net/can/cc770/cc770.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 05c4456538e9551b8ac47762b21127bf9cf6cc8e Author: Marc Kleine-Budde Date: Sat Jul 11 21:16:08 2015 +0200 can: ti_heccn: don't touch skb after netif_rx() There is no guarantee that the skb is in the same state after calling net_receive_skb() or netif_rx(). It might be freed or reused. Not really harmful as its a read access, except you turn on the proper debugging options which catch a use after free. Cc: Anant Gole Signed-off-by: Marc Kleine-Budde drivers/net/can/ti_hecc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a2e78cf7a3f562edca4230b188c8832b6214eccd Author: Marc Kleine-Budde Date: Sat Jul 11 21:16:08 2015 +0200 can: slcan: don't touch skb after netif_rx_ni() There is no guarantee that the skb is in the same state after calling net_receive_skb() or netif_rx(). It might be freed or reused. Not really harmful as its a read access, except you turn on the proper debugging options which catch a use after free. Cc: Oliver Hartkopp Signed-off-by: Marc Kleine-Budde drivers/net/can/slcan.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 83537b6fd6c3752bcb578d2bd46312d1e2c4a73a Author: Marc Kleine-Budde Date: Sat Jul 11 21:16:08 2015 +0200 can: grcan: don't touch skb after netif_rx() There is no guarantee that the skb is in the same state after calling net_receive_skb() or netif_rx(). It might be freed or reused. Not really harmful as its a read access, except you turn on the proper debugging options which catch a use after free. Cc: Andreas Larsson Signed-off-by: Marc Kleine-Budde drivers/net/can/grcan.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 20926d79244de4e9c698ae429fdc1e7e5832b081 Author: Marc Kleine-Budde Date: Sat Jul 11 21:16:08 2015 +0200 can: bfin_can: don't touch skb after netif_rx() There is no guarantee that the skb is in the same state after calling net_receive_skb() or netif_rx(). It might be freed or reused. Not really harmful as its a read access, except you turn on the proper debugging options which catch a use after free. Cc: Aaron Wu Signed-off-by: Marc Kleine-Budde drivers/net/can/bfin_can.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit a18ec1b6c72eb87fe00e8e09c3a3f3cfbec3435b Author: Marc Kleine-Budde Date: Fri May 8 11:30:29 2015 +0200 can: flexcan: don't touch skb after netif_receive_skb() There is no guarantee that the skb is in the same state after calling net_receive_skb() or netif_rx(). It might be freed or reused. Not really harmful as its a read access, except you turn on the proper debugging options which catch a use after free. Signed-off-by: Marc Kleine-Budde drivers/net/can/flexcan.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 6ae3673debfbf2cfa1972b6d00b974d0e10ad3c6 Author: Marc Kleine-Budde Date: Sat Jul 11 21:03:07 2015 +0200 can: at91_can: don't touch skb after netif_receive_skb()/netif_rx() There is no guarantee that the skb is in the same state after calling net_receive_skb() or netif_rx(). It might be freed or reused. Not really harmful as its a read access, except you turn on the proper debugging options which catch a use after free. Signed-off-by: Marc Kleine-Budde drivers/net/can/at91_can.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit d309509f84725f99326cc73d3b00aae096b374ae Author: Malcolm Priestley Date: Thu Jul 9 17:03:57 2015 +0100 staging: vt6656: check ieee80211_bss_conf bssid not NULL Sometimes bssid can go null on failed association. Signed-off-by: Malcolm Priestley Cc: # v3.17+ Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6656/main_usb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8e8e9198920ddfa920191069ae02eba75d39e653 Author: Malcolm Priestley Date: Thu Jul 9 17:01:24 2015 +0100 staging: vt6655: check ieee80211_bss_conf bssid not NULL Sometimes bssid can go null on failed association. Signed-off-by: Malcolm Priestley Cc: # v3.19+ Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6655/device_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c9ddbac9c89110f77cb0fa07e634aaf1194899aa Author: Michael S. Tsirkin Date: Tue Jul 14 18:27:46 2015 -0500 PCI: Restore PCI_MSIX_FLAGS_BIRMASK definition 09a2c73ddfc7 ("PCI: Remove unused PCI_MSIX_FLAGS_BIRMASK definition") removed PCI_MSIX_FLAGS_BIRMASK from an exported header because it was unused in the kernel. But that breaks user programs that were using it (QEMU in particular). Restore the PCI_MSIX_FLAGS_BIRMASK definition. [bhelgaas: changelog] Signed-off-by: Michael S. Tsirkin Signed-off-by: Bjorn Helgaas CC: stable@vger.kernel.org # v3.13+ include/uapi/linux/pci_regs.h | 1 + 1 file changed, 1 insertion(+) commit 50c2e4dd6749725338621fff456b26d3a592259f Author: Dan Carpenter Date: Sun Jul 12 01:20:55 2015 +0300 net/xen-netback: off by one in BUG_ON() condition The > should be >=. I also added spaces around the '-' operations so the code is a little more consistent and matches the condition better. Fixes: f53c3fe8dad7 ('xen-netback: Introduce TX grant mapping') Signed-off-by: Dan Carpenter Signed-off-by: David S. Miller drivers/net/xen-netback/netback.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 08c85d2a599d967ede38a847f5594447b6100642 Author: Aleksei Mamlin Date: Wed Jul 1 13:48:30 2015 +0300 libata: add ATA_HORKAGE_BROKEN_FPDMA_AA quirk for HP 250GB SATA disk VB0250EAVER Enabling AA on HP 250GB SATA disk VB0250EAVER causes errors: [ 3.788362] ata3.00: failed to enable AA (error_mask=0x1) [ 3.789243] ata3.00: failed to enable AA (error_mask=0x1) Add the ATA_HORKAGE_BROKEN_FPDMA_AA for this specific harddisk. tj: Collected FPDMA_AA entries and updated comment. Signed-off-by: Aleksei Mamlin Signed-off-by: Tejun Heo Cc: stable@vger.kernel.org drivers/ata/libata-core.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 945b47441d83d2392ac9f984e0267ad521f24268 Author: Lior Amsalem Date: Tue Jun 30 16:09:49 2015 +0200 ata: pmp: add quirk for Marvell 4140 SATA PMP This commit adds the necessary quirk to make the Marvell 4140 SATA PMP work properly. This PMP doesn't like SRST on port number 4 (the host port) so this commit marks this port as not supporting SRST. Signed-off-by: Lior Amsalem Reviewed-by: Nadav Haklai Signed-off-by: Thomas Petazzoni Signed-off-by: Tejun Heo Cc: stable@vger.kernel.org drivers/ata/libata-pmp.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 7bee8b08c428b63aa4a3765bb907602e36355378 Author: Chris Mason Date: Tue Jul 14 16:25:30 2015 -0400 Bluetooth: btbcm: allow btbcm_read_verbose_config to fail on Apple Commit 1c8ba6d013 moved around the setup code for broadcomm chips, and also added btbcm_read_verbose_config() to read extra information about the hardware. It's returning errors on some macbooks: Bluetooth: hci0: BCM: Read verbose config info failed (-16) Which makes us error out of the setup function. Since this probe isn't critical to operate the chip, this patch just changes things to carry on when it fails. Signed-off-by: Chris Mason Signed-off-by: Marcel Holtmann Cc: stable@vger.kernel.org # v4.1 drivers/bluetooth/btbcm.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit dd0bc75ee3ec4ef694c2d0483b6ffeed17141435 Author: Ralf Baechle Date: Tue Jul 14 21:41:12 2015 +0200 MIPS: SB1: Remove support for Pass 1 parts. Pass 1 parts had a number of significant erratas and were only available in small numbers and under NDA. Full support also required the use of a special toolchain that kept branches properly aligned. These workarounds were never upstreamed and the only toolchain known to have them is Montavista's GCC 3.0-based toolchain which completly obsoleted if not useless these days. So now that automated testing has tripped over the user of the -msb1-pass1-workarounds option, rather than fixing it remove support for pass 1 parts. Probably nobody will notice. I seem to own the last know pass 1 board and I haven't noticed another one in the wild in the past decade, at least. Signed-off-by: Ralf Baechle arch/mips/Kconfig | 5 ----- arch/mips/Makefile | 7 ------- arch/mips/include/asm/mach-sibyte/war.h | 3 +-- arch/mips/sibyte/Kconfig | 5 ----- arch/mips/sibyte/common/bus_watcher.c | 5 +---- arch/mips/sibyte/sb1250/setup.c | 2 -- drivers/net/ethernet/broadcom/sb1250-mac.c | 9 --------- 7 files changed, 2 insertions(+), 34 deletions(-) commit 8642d7f8364d9fa84a83629129e78402c169c54a Author: Christophe JAILLET Date: Mon Jul 13 16:44:54 2015 +0200 intel_scu_ipc: move local memory initialization out of a mutex '{ }' and memset will both reset the cbuf buffer. Only once is enough and this can be done outside fo the mutex. Signed-off-by: Christophe JAILLET Signed-off-by: Darren Hart drivers/platform/x86/intel_scu_ipc.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit d8b2ba7c5928173fe1c12bd2545f5ed85d1c3c7a Author: Johannes Thumshirn Date: Wed Jul 8 17:23:00 2015 +0200 IB/core: Destroy ocrdma_dev_id IDR on module exit Destroy ocrdma_dev_id IDR on module exit, reclaiming the allocated memory. This was detected by the following semantic patch (written by Luis Rodriguez ) @ defines_module_init @ declarer name module_init, module_exit; declarer name DEFINE_IDR; identifier init; @@ module_init(init); @ defines_module_exit @ identifier exit; @@ module_exit(exit); @ declares_idr depends on defines_module_init && defines_module_exit @ identifier idr; @@ DEFINE_IDR(idr); @ on_exit_calls_destroy depends on declares_idr && defines_module_exit @ identifier declares_idr.idr, defines_module_exit.exit; @@ exit(void) { ... idr_destroy(&idr); ... } @ missing_module_idr_destroy depends on declares_idr && defines_module_exit && !on_exit_calls_destroy @ identifier declares_idr.idr, defines_module_exit.exit; @@ exit(void) { ... +idr_destroy(&idr); } Signed-off-by: Johannes Thumshirn Signed-off-by: Doug Ledford drivers/infiniband/hw/ocrdma/ocrdma_main.c | 1 + 1 file changed, 1 insertion(+) commit 45d254206f141f560e76319191f912d0a3d27bd3 Author: Johannes Thumshirn Date: Wed Jul 8 17:21:15 2015 +0200 IB/core: Destroy multcast_idr on module exit Destroy multcast_idr on module exit, reclaiming the allocated memory. This was detected by the following semantic patch (written by Luis Rodriguez ) @ defines_module_init @ declarer name module_init, module_exit; declarer name DEFINE_IDR; identifier init; @@ module_init(init); @ defines_module_exit @ identifier exit; @@ module_exit(exit); @ declares_idr depends on defines_module_init && defines_module_exit @ identifier idr; @@ DEFINE_IDR(idr); @ on_exit_calls_destroy depends on declares_idr && defines_module_exit @ identifier declares_idr.idr, defines_module_exit.exit; @@ exit(void) { ... idr_destroy(&idr); ... } @ missing_module_idr_destroy depends on declares_idr && defines_module_exit && !on_exit_calls_destroy @ identifier declares_idr.idr, defines_module_exit.exit; @@ exit(void) { ... +idr_destroy(&idr); } Signed-off-by: Johannes Thumshirn Signed-off-by: Doug Ledford drivers/infiniband/core/ucma.c | 1 + 1 file changed, 1 insertion(+) commit d9a047aeffcef5755952d18f2901d8777d84019d Author: Doug Ledford Date: Thu Jul 9 10:21:08 2015 -0400 IB/mlx4: Optimize do_slave_init There is little chance our memory allocation will fail, so we can combine initializing the work structs with allocating them instead of looping through all of them once to allocate and again to initialize. Then when we need to actually find out if our device is up or in the process of going down, have all of our work structs batched up, take the spin_lock once and only once, and do all of the batch under the one spin_lock invocation instead of incurring all of the locked memory cycles we would otherwise incur to take/release the spin_lock over and over again. Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx4/main.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) commit 9bbf282da87294e1bda0ccb4e351bfdf5fc076cd Author: Doug Ledford Date: Thu Jul 9 10:16:12 2015 -0400 IB/mlx4: Fix memory leak in do_slave_init We create a number of work structs to be queued up to a workqueue, and on completion of the workqueue handler, the workqueue handler frees the allocated memory. If, however, we don't queue the work struct because the device is going down, then we need to free the memory ourselves. Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx4/main.c | 2 ++ 1 file changed, 2 insertions(+) commit a39a98ff4cc8b514fe6fa551f6ed59cd60e07da2 Author: Maninder Singh Date: Wed Jul 8 09:43:35 2015 +0530 IB/mlx4: Optimize freeing of items on error unwind On failure, we loop through all possible pointers and test them before calling kfree. But really, why even attempt to free items we didn't allocate when we can easily loop through exactly and only the devices for which the original memory allocation succeeded and free just those. Signed-off-by: Maninder Singh Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx4/main.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit 43bfb9729ea88d46e3f4d3ad7b17106c7b071fcb Author: Or Gerlitz Date: Thu Jun 25 17:45:38 2015 +0300 IB/mlx4: Fix use of flow-counters for process_mad For IB links, reading HCA flow counters through iboe_process_mad() should be used when mlx4_ib_process_mad() is invoked only for VFs PMA queries and exactly nothing else. Fixes: 7193a141eb74 ('IB/mlx4: Set VF to read from QP counters') Reported-by: Linus Torvalds Signed-off-by: Or Gerlitz Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx4/mad.c | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) commit cb1ff431c3dd904cda37d6d07d4a3ea29840d621 Author: Vaishali Thakkar Date: Tue Jun 16 17:13:05 2015 +0530 IB/ipath: Convert use of __constant_ to In little endian cases, the macros be16_to_cpu and cpu_to_be64 unfolds to __swab{16,64} which provides special case for constants. In big endian cases, __constant_be16_to_cpu and be16_to_cpu expand directly to the same expression. The same applies for __constant_cpu_to_be64 and cpu_to_be64. So, replace __constant_be16_to_cpu with be16_to_cpu and __constant_cpu_to_be64 with cpu_to_be64, with the goal of getting rid of the definition of __constant_be16_to_cpu and __constant_cpu_to_be64 completely. Signed-off-by: Vaishali Thakkar Signed-off-by: Doug Ledford drivers/infiniband/hw/ipath/ipath_verbs.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit edcd2a7474ba3b47e54c3c9a300287342de74766 Author: Erez Shitrit Date: Sun Jun 7 13:36:11 2015 +0300 IB/ipoib: Set MTU to max allowed by mode when mode changes When switching between modes (datagram / connected) change the MTU accordingly. datagram mode up to 4K, connected mode up to (64K - 0x10). Signed-off-by: ELi Cohen Signed-off-by: Erez Shitrit Signed-off-by: Doug Ledford drivers/infiniband/ulp/ipoib/ipoib_main.c | 1 + 1 file changed, 1 insertion(+) commit c42687784b9a6b9733fee701ed236a5fe088fac4 Author: Yuval Shaia Date: Sun Jul 12 01:24:09 2015 -0700 IB/ipoib: Scatter-Gather support in connected mode By default, IPoIB-CM driver uses 64k MTU. Larger MTU gives better performance. This MTU plus overhead puts the memory allocation for IP based packets at 32 4k pages (order 5), which have to be contiguous. When the system memory under pressure, it was observed that allocating 128k contiguous physical memory is difficult and causes serious errors (such as system becomes unusable). This enhancement resolve the issue by removing the physically contiguous memory requirement using Scatter/Gather feature that exists in Linux stack. With this fix Scatter-Gather will be supported also in connected mode. This change reverts some of the change made in commit e112373fd6aa ("IPoIB/cm: Reduce connected mode TX object size"). The ability to use SG in IPoIB CM is possible because the coupling between NETIF_F_SG and NETIF_F_CSUM was removed in commit ec5f06156423 ("net: Kill link between CSUM and SG features.") Signed-off-by: Yuval Shaia Acked-by: Christian Marie Signed-off-by: Doug Ledford drivers/infiniband/ulp/ipoib/ipoib.h | 29 ++++++++++++++++++++++++- drivers/infiniband/ulp/ipoib/ipoib_cm.c | 33 ++++++++++++---------------- drivers/infiniband/ulp/ipoib/ipoib_ib.c | 36 ++++++++++--------------------- drivers/infiniband/ulp/ipoib/ipoib_main.c | 2 +- 4 files changed, 54 insertions(+), 46 deletions(-) commit 59d40dd92ca00df317ad44fa44c27fe38c58e477 Author: Carol L Soto Date: Thu Jun 11 11:06:41 2015 -0500 IB/ucm: Fix bitmap wrap when devnum > IB_UCM_MAX_DEVICES ib_ucm_release_dev clears the wrong bit if devnum is greater than IB_UCM_MAX_DEVICES. Signed-off-by: Carol L Soto Signed-off-by: Doug Ledford drivers/infiniband/core/ucm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 8b7cce0dae956b329d09099f8739821936cf7c0f Author: Haggai Eran Date: Tue Jul 7 17:45:13 2015 +0300 IB/ipoib: Prevent lockdep warning in __ipoib_ib_dev_flush __ipoib_ib_dev_flush calls itself recursively on child devices, and lockdep complains about locking vlan_rwsem twice (see below). Use down_read_nested instead of down_read to prevent the warning. ============================================= [ INFO: possible recursive locking detected ] 4.1.0-rc4+ #36 Tainted: G O --------------------------------------------- kworker/u20:2/261 is trying to acquire lock: (&priv->vlan_rwsem){.+.+..}, at: [] __ipoib_ib_dev_flush+0x3a/0x2b0 [ib_ipoib] but task is already holding lock: (&priv->vlan_rwsem){.+.+..}, at: [] __ipoib_ib_dev_flush+0x3a/0x2b0 [ib_ipoib] other info that might help us debug this: Possible unsafe locking scenario: CPU0 ---- lock(&priv->vlan_rwsem); lock(&priv->vlan_rwsem); *** DEADLOCK *** May be due to missing lock nesting notation 3 locks held by kworker/u20:2/261: #0: ("%s""ipoib_flush"){.+.+..}, at: [] process_one_work+0x15c/0x760 #1: ((&priv->flush_heavy)){+.+...}, at: [] process_one_work+0x15c/0x760 #2: (&priv->vlan_rwsem){.+.+..}, at: [] __ipoib_ib_dev_flush+0x3a/0x2b0 [ib_ipoib] stack backtrace: CPU: 3 PID: 261 Comm: kworker/u20:2 Tainted: G O 4.1.0-rc4+ #36 Hardware name: Red Hat KVM, BIOS 0.5.1 01/01/2007 Workqueue: ipoib_flush ipoib_ib_dev_flush_heavy [ib_ipoib] ffff8801c6c54790 ffff8801c9927af8 ffffffff81665238 0000000000000001 ffffffff825b5b30 ffff8801c9927bd8 ffffffff810bba51 ffff880100000000 ffffffff00000001 ffff880100000001 ffff8801c6c55428 ffff8801c6c54790 Call Trace: [] dump_stack+0x4f/0x6f [] __lock_acquire+0x741/0x1820 [] lock_acquire+0xc8/0x240 [] ? __ipoib_ib_dev_flush+0x3a/0x2b0 [ib_ipoib] [] down_read+0x4c/0x70 [] ? __ipoib_ib_dev_flush+0x3a/0x2b0 [ib_ipoib] [] __ipoib_ib_dev_flush+0x3a/0x2b0 [ib_ipoib] [] __ipoib_ib_dev_flush+0x5a/0x2b0 [ib_ipoib] [] ipoib_ib_dev_flush_heavy+0x1a/0x20 [ib_ipoib] [] process_one_work+0x201/0x760 [] ? process_one_work+0x15c/0x760 [] worker_thread+0x120/0x4d0 [] ? process_one_work+0x760/0x760 [] ? process_one_work+0x760/0x760 [] kthread+0xfe/0x120 [] ? __init_kthread_worker+0x70/0x70 [] ret_from_fork+0x42/0x70 [] ? __init_kthread_worker+0x70/0x70 Signed-off-by: Haggai Eran Signed-off-by: Doug Ledford drivers/infiniband/ulp/ipoib/ipoib_ib.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) commit 31b57b87fddf547bf3e98306b41bc82e111396fa Author: Haggai Eran Date: Tue Jul 7 17:45:12 2015 +0300 IB/ucma: Fix lockdep warning in ucma_lock_files The ucma_lock_files() locks the mut mutex on two files, e.g. for migrating an ID. Use mutex_lock_nested() to prevent the warning below. ============================================= [ INFO: possible recursive locking detected ] 4.1.0-rc6-hmm+ #40 Tainted: G O --------------------------------------------- pingpong_rpc_se/10260 is trying to acquire lock: (&file->mut){+.+.+.}, at: [] ucma_migrate_id+0xc5/0x248 [rdma_ucm] but task is already holding lock: (&file->mut){+.+.+.}, at: [] ucma_migrate_id+0xbb/0x248 [rdma_ucm] other info that might help us debug this: Possible unsafe locking scenario: CPU0 ---- lock(&file->mut); lock(&file->mut); *** DEADLOCK *** May be due to missing lock nesting notation 1 lock held by pingpong_rpc_se/10260: #0: (&file->mut){+.+.+.}, at: [] ucma_migrate_id+0xbb/0x248 [rdma_ucm] stack backtrace: CPU: 0 PID: 10260 Comm: pingpong_rpc_se Tainted: G O 4.1.0-rc6-hmm+ #40 Hardware name: Red Hat KVM, BIOS 0.5.1 01/01/2007 ffff8801f85b63d0 ffff880195677b58 ffffffff81668f49 0000000000000001 ffffffff825cbbe0 ffff880195677c38 ffffffff810bb991 ffff880100000000 ffff880100000000 ffff880100000001 ffff8801f85b7010 ffffffff8121bee9 Call Trace: [] dump_stack+0x4f/0x6e [] __lock_acquire+0x741/0x1820 [] ? dput+0x29/0x320 [] lock_acquire+0xc8/0x240 [] ? ucma_migrate_id+0xc5/0x248 [rdma_ucm] [] ? mutex_lock_nested+0x291/0x3e0 [] mutex_lock_nested+0x65/0x3e0 [] ? ucma_migrate_id+0xc5/0x248 [rdma_ucm] [] ? trace_hardirqs_on+0xd/0x10 [] ? mutex_unlock+0xe/0x10 [] ucma_migrate_id+0xc5/0x248 [rdma_ucm] [] ucma_write+0xa4/0xb0 [rdma_ucm] [] __vfs_write+0x34/0x100 [] ? __audit_syscall_entry+0xac/0x110 [] ? current_kernel_time+0xc5/0xe0 [] ? security_file_permission+0x23/0x90 [] ? rw_verify_area+0x5d/0xe0 [] vfs_write+0xab/0x120 [] SyS_write+0x59/0xd0 [] ? __audit_syscall_entry+0xac/0x110 [] system_call_fastpath+0x12/0x76 Signed-off-by: Haggai Eran Signed-off-by: Doug Ledford drivers/infiniband/core/ucma.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 4fabb59449aa44a585b3603ffdadd4c5f4d0c033 Author: Wengang Wang Date: Mon Jul 6 14:35:11 2015 +0800 rds: rds_ib_device.refcount overflow Fixes: 3e0249f9c05c ("RDS/IB: add refcount tracking to struct rds_ib_device") There lacks a dropping on rds_ib_device.refcount in case rds_ib_alloc_fmr failed(mr pool running out). this lead to the refcount overflow. A complain in line 117(see following) is seen. From vmcore: s_ib_rdma_mr_pool_depleted is 2147485544 and rds_ibdev->refcount is -2147475448. That is the evidence the mr pool is used up. so rds_ib_alloc_fmr is very likely to return ERR_PTR(-EAGAIN). 115 void rds_ib_dev_put(struct rds_ib_device *rds_ibdev) 116 { 117 BUG_ON(atomic_read(&rds_ibdev->refcount) <= 0); 118 if (atomic_dec_and_test(&rds_ibdev->refcount)) 119 queue_work(rds_wq, &rds_ibdev->free_work); 120 } fix is to drop refcount when rds_ib_alloc_fmr failed. Signed-off-by: Wengang Wang Reviewed-by: Haggai Eran Signed-off-by: Doug Ledford net/rds/ib_rdma.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 0a691272509d59ea0adbaa0c420ca0a71c9d0419 Author: Tatyana Nikolova Date: Thu Jul 2 12:52:29 2015 -0500 RDMA/nes: Fix for incorrect recording of the MAC address Fix for incorrect recording of the MAC address Signed-off-by: Tatyana Nikolova Signed-off-by: Doug Ledford drivers/infiniband/hw/nes/nes_hw.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 165d68228906f2866a52069ef1176ab70fa9e216 Author: Tatyana Nikolova Date: Thu Jul 2 12:49:40 2015 -0500 RDMA/nes: Fix for resolving the neigh Neighbor resolution doesn't work without this fix Signed-off-by: Tatyana Nikolova Signed-off-by: Doug Ledford drivers/infiniband/hw/nes/nes_cm.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit a7f2f24cd716d7f1119d46929f41a8436f9c252f Author: Tatyana Nikolova Date: Thu Jul 2 12:47:44 2015 -0500 RDMA/core: Fixes for port mapper client registration Fixes to allow clients to make remove mapping requests, after they have provided the user space service with the mapping information, they are using when the service is restarted. 1) Adding IWPM_REG_VALID, IWPM_REG_INCOMPL and IWPM_REG_UNDEF registration types for the port mapper clients and functions to set/check the registration type. 2) If the port mapper user space service is not available to register the client, then its registration stays IWPM_REG_UNDEF and the registration isn't checked until the service becomes available (no mappings are possible, if the user space service isn't running). 3) After the service is restarted, the user space port mapper pid is set to valid and the client registration is set to IWPM_REG_INCOMPL to allow the client to make remove mapping requests. Signed-off-by: Tatyana Nikolova Reviewed-by: Steve Wise Tested-by: Steve Wise Signed-off-by: Doug Ledford drivers/infiniband/core/iwpm_msg.c | 33 ++++++++++++++++----------------- drivers/infiniband/core/iwpm_util.c | 12 ++++++++++-- drivers/infiniband/core/iwpm_util.h | 28 ++++++++++++++++++++++------ 3 files changed, 48 insertions(+), 25 deletions(-) commit 58e9cc90cda7bc732856a2ad3210328fbc4f6ca2 Author: Amir Vadai Date: Wed Jul 1 14:31:01 2015 +0300 IB/IPoIB: Fix bad error flow in ipoib_add_port() Error values of ib_query_port() and ib_query_device() weren't propagated correctly. Because of that, ipoib_add_port() could return NULL value, which escaped the IS_ERR() check in ipoib_add_one() and we crashed. Signed-off-by: Amir Vadai Signed-off-by: Or Gerlitz Reviewed-by: Ira Weiny Signed-off-by: Doug Ledford drivers/infiniband/ulp/ipoib/ipoib_main.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 8a7ff14dcb40bade309cd2ad04c746bb1d169c4e Author: Matan Barak Date: Wed Jul 1 14:31:02 2015 +0300 IB/mlx4: Do not attemp to report HCA clock offset on VFs mlx4 VFs can provide CQE raw time-stamping services, but they don't have the hca core clock mapped to their PCI bars. As such, we should not attempt to query and report the clock offset to user space for VFs. Doing so causes query_device over VFs to fail with -ENOSUPP. Fixes: 4b664c4355b2 ('IB/mlx4: Add support for CQ time-stamping') Signed-off-by: Matan Barak Signed-off-by: Or Gerlitz Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx4/main.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit be4b499323bf7291b491c6df51baae62f45b8404 Author: Erez Shitrit Date: Thu Jun 25 17:13:22 2015 +0300 IB/cm: Do not queue work to a device that's going away Whenever ib_cm gets remove_one call, like when there is a hot-unplug event, the driver should mark itself as going_down and confirm that no new works are going to be queued for that device. so, the order of the actions are: 1. mark the going_down bit. 2. flush the wq. 3. [make sure no new works for that device.] 4. unregister mad agent. otherwise, works that are already queued can be scheduled after the mad agent was freed. Signed-off-by: Erez Shitrit Signed-off-by: Doug Ledford drivers/infiniband/core/cm.c | 61 +++++++++++++++++++++++++++++++++++++++----- 1 file changed, 55 insertions(+), 6 deletions(-) commit 3fdf70acec13efc7ecf254f5a364df06348bfd2c Author: Sagi Grimberg Date: Thu Jun 25 13:34:15 2015 +0300 IB/srp: Avoid using uninitialized variable We might return res which is not initialized. Also reduce code duplication by exporting srp_parse_tmo so srp_tmo_set can reuse it. Detected by Coverity. Signed-off-by: Sagi Grimberg Signed-off-by: Jenny Falkovich Reviewed-by: Bart Van Assche Signed-off-by: Doug Ledford drivers/infiniband/ulp/srp/ib_srp.c | 11 ++++------- drivers/scsi/scsi_transport_srp.c | 3 ++- include/scsi/scsi_transport_srp.h | 1 + 3 files changed, 7 insertions(+), 8 deletions(-) commit b356c1c1f90a347b6f67d9272dda7ecf47e0b46c Author: Vaishali Thakkar Date: Wed Jun 24 10:12:13 2015 +0530 IB/srpt: Convert use of __constant_cpu_to_beXX to cpu_to_beXX In little endian cases, the macro cpu_to_be{16,32,64} unfolds to __swab{16,32,64} which provides special case for constants. In big endian cases, __constant_cpu_to_be{16,32,64} and cpu_to_be{16,32,64} expand directly to the same expression. So, replace __constant_cpu_to_be{16,32,64} with cpu_to_be{16,32,64} with the goal of getting rid of the definitions of __constant_cpu_to_be{16,32,64} completely. The Coccinelle semantic patch that performs this transformation is as follows: @@expression x;@@ ( - __constant_cpu_to_be16(x) + cpu_to_be16(x) | - __constant_cpu_to_be32(x) + cpu_to_be32(x) | - __constant_cpu_to_be64(x) + cpu_to_be64(x) ) Signed-off-by: Vaishali Thakkar Reviewed-by: Bart Van Assche Signed-off-by: Doug Ledford drivers/infiniband/ulp/srpt/ib_srpt.c | 71 +++++++++++++++++------------------ 1 file changed, 35 insertions(+), 36 deletions(-) commit 3b8ab700af0a5c5e59c833f8a88f94b97499f5e5 Author: Ira Weiny Date: Thu Jun 25 09:52:50 2015 -0400 IB/mad: Remove improper use of BUG_ON We recently added BUG_ON's which were inappropriate for a condition which should never happen. Change these to be WARN_ON_ONCE as a debugging aid. Fixes: 4cd7c9479aff ('IB/mad: Add support for additional MAD info to/from drivers') Signed-off-by: Ira Weiny Signed-off-by: Doug Ledford drivers/infiniband/hw/ehca/ehca_sqp.c | 5 +++-- drivers/infiniband/hw/ipath/ipath_mad.c | 5 +++-- drivers/infiniband/hw/mlx4/mad.c | 5 +++-- drivers/infiniband/hw/mlx5/mad.c | 5 +++-- drivers/infiniband/hw/mthca/mthca_mad.c | 5 +++-- drivers/infiniband/hw/ocrdma/ocrdma_ah.c | 5 +++-- drivers/infiniband/hw/qib/qib_mad.c | 5 +++-- 7 files changed, 21 insertions(+), 14 deletions(-) commit cd4cd565e049c6e734a12754d91d1142c25f6a64 Author: Ira Weiny Date: Thu Jun 25 12:04:49 2015 -0400 IB/mad: Fix compare between big endian and cpu endian The define OPA_LID_PERMISSIVE is big endian and was compared to the cpu endian variable opa_drslid. Problem caught by 0-day build infrastructure. Fixes: 8e4349d13f33 (IB/mad: Add final OPA MAD processing) Signed-off-by: Ira Weiny Reviewed-by: Mike Marciniszyn Reviewed-by: John, Jubin Signed-off-by: Doug Ledford drivers/infiniband/core/mad.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4139032b4860c06ff3a7687041f06535fed901ed Author: Hal Rosenstock Date: Mon Jun 29 09:57:00 2015 -0400 IB: Add rdma_cap_ib_switch helper and use where appropriate Persuant to Liran's comments on node_type on linux-rdma mailing list: In an effort to reform the RDMA core and ULPs to minimize use of node_type in struct ib_device, an additional bit is added to struct ib_device for is_switch (IB switch). This is needed to be initialized by any IB switch device driver. This is a NEW requirement on such device drivers which are all "out of tree". In addition, an ib_switch helper was added to ib_verbs.h based on the is_switch device bit rather than node_type (although those should be consistent). The RDMA core (MAD, SMI, agent, sa_query, multicast, sysfs) as well as (IPoIB and SRP) ULPs are updated where appropriate to use this new helper. In some cases, the helper is now used under the covers of using rdma_[start end]_port rather than the open coding previously used. Reviewed-by: Sean Hefty Reviewed-By: Jason Gunthorpe Reviewed-by: Ira Weiny Tested-by: Ira Weiny Signed-off-by: Hal Rosenstock Signed-off-by: Doug Ledford drivers/infiniband/core/agent.c | 4 +-- drivers/infiniband/core/mad.c | 45 +++++++++++-------------------- drivers/infiniband/core/multicast.c | 8 ++---- drivers/infiniband/core/opa_smi.h | 4 +-- drivers/infiniband/core/sa_query.c | 8 ++---- drivers/infiniband/core/smi.c | 37 +++++++++++++------------ drivers/infiniband/core/smi.h | 4 +-- drivers/infiniband/core/sysfs.c | 2 +- drivers/infiniband/ulp/ipoib/ipoib_main.c | 12 ++------- drivers/infiniband/ulp/srp/ib_srp.c | 12 ++------- include/rdma/ib_verbs.h | 20 +++++++++++--- 11 files changed, 66 insertions(+), 90 deletions(-) commit ed958762644b404654a6f5d23e869f496fe127c6 Author: Filipe Manana Date: Tue Jul 14 16:09:39 2015 +0100 Btrfs: fix file corruption after cloning inline extents Using the clone ioctl (or extent_same ioctl, which calls the same extent cloning function as well) we end up allowing copy an inline extent from the source file into a non-zero offset of the destination file. This is something not expected and that the btrfs code is not prepared to deal with - all inline extents must be at a file offset equals to 0. For example, the following excerpt of a test case for fstests triggers a crash/BUG_ON() on a write operation after an inline extent is cloned into a non-zero offset: _scratch_mkfs >>$seqres.full 2>&1 _scratch_mount # Create our test files. File foo has the same 2K of data at offset 4K # as file bar has at its offset 0. $XFS_IO_PROG -f -s -c "pwrite -S 0xaa 0 4K" \ -c "pwrite -S 0xbb 4k 2K" \ -c "pwrite -S 0xcc 8K 4K" \ $SCRATCH_MNT/foo | _filter_xfs_io # File bar consists of a single inline extent (2K size). $XFS_IO_PROG -f -s -c "pwrite -S 0xbb 0 2K" \ $SCRATCH_MNT/bar | _filter_xfs_io # Now call the clone ioctl to clone the extent of file bar into file # foo at its offset 4K. This made file foo have an inline extent at # offset 4K, something which the btrfs code can not deal with in future # IO operations because all inline extents are supposed to start at an # offset of 0, resulting in all sorts of chaos. # So here we validate that clone ioctl returns an EOPNOTSUPP, which is # what it returns for other cases dealing with inlined extents. $CLONER_PROG -s 0 -d $((4 * 1024)) -l $((2 * 1024)) \ $SCRATCH_MNT/bar $SCRATCH_MNT/foo # Because of the inline extent at offset 4K, the following write made # the kernel crash with a BUG_ON(). $XFS_IO_PROG -c "pwrite -S 0xdd 6K 2K" $SCRATCH_MNT/foo | _filter_xfs_io status=0 exit The stack trace of the BUG_ON() triggered by the last write is: [152154.035903] ------------[ cut here ]------------ [152154.036424] kernel BUG at mm/page-writeback.c:2286! [152154.036424] invalid opcode: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC [152154.036424] Modules linked in: btrfs dm_flakey dm_mod crc32c_generic xor raid6_pq nfsd auth_rpcgss oid_registry nfs_acl nfs lockd grace fscache sunrpc loop fuse parport_pc acpi_cpu$ [152154.036424] CPU: 2 PID: 17873 Comm: xfs_io Tainted: G W 4.1.0-rc6-btrfs-next-11+ #2 [152154.036424] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.8.1-0-g4adadbd-20150316_085822-nilsson.home.kraxel.org 04/01/2014 [152154.036424] task: ffff880429f70990 ti: ffff880429efc000 task.ti: ffff880429efc000 [152154.036424] RIP: 0010:[] [] clear_page_dirty_for_io+0x1e/0x90 [152154.036424] RSP: 0018:ffff880429effc68 EFLAGS: 00010246 [152154.036424] RAX: 0200000000000806 RBX: ffffea0006a6d8f0 RCX: 0000000000000001 [152154.036424] RDX: 0000000000000000 RSI: ffffffff81155d1b RDI: ffffea0006a6d8f0 [152154.036424] RBP: ffff880429effc78 R08: ffff8801ce389fe0 R09: 0000000000000001 [152154.036424] R10: 0000000000002000 R11: ffffffffffffffff R12: ffff8800200dce68 [152154.036424] R13: 0000000000000000 R14: ffff8800200dcc88 R15: ffff8803d5736d80 [152154.036424] FS: 00007fbf119f6700(0000) GS:ffff88043d280000(0000) knlGS:0000000000000000 [152154.036424] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [152154.036424] CR2: 0000000001bdc000 CR3: 00000003aa555000 CR4: 00000000000006e0 [152154.036424] Stack: [152154.036424] ffff8803d5736d80 0000000000000001 ffff880429effcd8 ffffffffa04e97c1 [152154.036424] ffff880429effd68 ffff880429effd60 0000000000000001 ffff8800200dc9c8 [152154.036424] 0000000000000001 ffff8800200dcc88 0000000000000000 0000000000001000 [152154.036424] Call Trace: [152154.036424] [] lock_and_cleanup_extent_if_need+0x147/0x18d [btrfs] [152154.036424] [] __btrfs_buffered_write+0x245/0x4c8 [btrfs] [152154.036424] [] ? btrfs_file_write_iter+0x150/0x3e0 [btrfs] [152154.036424] [] ? btrfs_file_write_iter+0x15f/0x3e0 [btrfs] [152154.036424] [] btrfs_file_write_iter+0x2cc/0x3e0 [btrfs] [152154.036424] [] __vfs_write+0x7c/0xa5 [152154.036424] [] vfs_write+0xa0/0xe4 [152154.036424] [] SyS_pwrite64+0x64/0x82 [152154.036424] [] system_call_fastpath+0x12/0x6f [152154.036424] Code: 48 89 c7 e8 0f ff ff ff 5b 41 5c 5d c3 0f 1f 44 00 00 55 48 89 e5 41 54 53 48 89 fb e8 ae ef 00 00 49 89 c4 48 8b 03 a8 01 75 02 <0f> 0b 4d 85 e4 74 59 49 8b 3c 2$ [152154.036424] RIP [] clear_page_dirty_for_io+0x1e/0x90 [152154.036424] RSP [152154.242621] ---[ end trace e3d3376b23a57041 ]--- Fix this by returning the error EOPNOTSUPP if an attempt to copy an inline extent into a non-zero offset happens, just like what is done for other scenarios that would require copying/splitting inline extents, which were introduced by the following commits: 00fdf13a2e9f ("Btrfs: fix a crash of clone with inline extents's split") 3f9e3df8da3c ("btrfs: replace error code from btrfs_drop_extents") Cc: stable@vger.kernel.org Signed-off-by: Filipe Manana fs/btrfs/ioctl.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit 4e9d324d4288b082497c30bc55b8ad13acc7cf01 Author: Paul Burton Date: Fri Jul 10 16:00:24 2015 +0100 MIPS: Require O32 FP64 support for MIPS64 with O32 compat MIPS32r6 code requires FP64 (ie. FR=1) support. Building a kernel with support for MIPS32r6 binaries but without support for O32 with FP64 is therefore a problem which can lead to incorrectly executed userland. CONFIG_MIPS_O32_FP64_SUPPORT is already selected when the kernel is configured for MIPS32r6, but not when the kernel is configured for MIPS64r6 with O32 compat support. Select CONFIG_MIPS_O32_FP64_SUPPORT in such configurations to prevent building kernels which execute MIPS32r6 userland incorrectly. Signed-off-by: Paul Burton Cc: Markos Chandras Cc: # v4.0- Cc: linux-mips@linux-mips.org Cc: Matthew Fortune Cc: stable@vger.kernel.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/10674/ Signed-off-by: Ralf Baechle arch/mips/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 5f7e63107f5e3a11e74d511cf63ad7dbf4a8fa56 Author: Ralf Baechle Date: Tue Jul 14 16:04:42 2015 +0200 MIPS: asm-offset.c: Patch up various comments refering to the old filename. arch/mips/tools/offset.c was renamed to arch/mips/kernel/asm-offsets.c for v2.6.14. Signed-off-by: Ralf Baechle arch/mips/include/uapi/asm/sigcontext.h | 4 ++-- arch/mips/kernel/asm-offsets.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit 4d0e677523a999e1dec28e55cc314c47ba09ca12 Author: Takashi Iwai Date: Tue Jul 14 15:19:37 2015 +0200 ALSA: line6: Fix -EBUSY error during active monitoring When a monitor stream is active, the next PCM stream access results in EBUSY error because of the check in line6_stream_start(). Fix this by just skipping the submission of pending URBs when the stream is already running instead. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=101431 Cc: # v4.0+ Signed-off-by: Takashi Iwai sound/usb/line6/pcm.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) commit ccfb8b2ed4d4e12c3c35de3db5fbbbaa11277736 Author: Maarten Lankhorst Date: Tue Jul 14 13:00:39 2015 +0200 drm/i915: Do not call intel_crtc_disable if the crtc is already disabled. When resuming with dpms off, the following warn can happen: [ 118.334082] ------------[ cut here ]------------ [ 118.334105] WARNING: CPU: 2 PID: 2274 at drivers/gpu/drm/i915/intel_display.c:6319 __intel_set_mode+0xae5/0xb90 [i915]() [ 118.334106] WARN_ON(!crtc->state->enable) [ 118.334137] Modules linked in: i915 [ 118.334139] CPU: 2 PID: 2274 Comm: kworker/u16:117 Not tainted 4.2.0-rc2-fixes+ #4148 [ 118.334140] Hardware name: LENOVO 2349AV8/2349AV8, BIOS G1ETA5WW (2.65 ) 04/15/2014 [ 118.334144] Workqueue: events_unbound async_run_entry_fn [ 118.334147] ffffffffc017eef0 ffff8800ada93998 ffffffff817aa62a 0000000080000001 [ 118.334149] ffff8800ada939e8 ffff8800ada939d8 ffffffff810807e1 ffff8800ada939c8 [ 118.334151] ffff8800cea3b3d8 0000000000000000 ffff8800ad86b008 ffff880117705668 [ 118.334151] Call Trace: [ 118.334155] [] dump_stack+0x4f/0x7b [ 118.334157] [] warn_slowpath_common+0x81/0xc0 [ 118.334158] [] warn_slowpath_fmt+0x41/0x50 [ 118.334173] [] __intel_set_mode+0xae5/0xb90 [i915] [ 118.334188] [] ? intel_modeset_compute_config+0x52/0xb40 [i915] [ 118.334191] [] ? drm_atomic_set_fb_for_plane+0x63/0x80 [ 118.334205] [] intel_set_mode+0x29/0x60 [i915] [ 118.334219] [] intel_crtc_restore_mode+0x13a/0x1f0 [i915] [ 118.334232] [] ? gen6_write16+0x250/0x250 [i915] [ 118.334246] [] intel_modeset_setup_hw_state+0x89c/0xcd0 [i915] [ 118.334248] [] ? pci_pm_thaw+0x90/0x90 [ 118.334255] [] i915_drm_resume+0xcb/0x160 [i915] [ 118.334262] [] i915_pm_resume+0x22/0x30 [i915] [ 118.334263] [] pci_pm_resume+0x63/0xa0 [ 118.334266] [] dpm_run_callback+0x70/0x420 [ 118.334267] [] device_resume+0x9d/0x1c0 [ 118.334269] [] ? initcall_debug_start+0x60/0x60 [ 118.334270] [] async_resume+0x1c/0x50 [ 118.334271] [] async_run_entry_fn+0x34/0xd0 [ 118.334273] [] process_one_work+0x1dd/0x7e0 [ 118.334275] [] ? process_one_work+0x14a/0x7e0 [ 118.334276] [] worker_thread+0x49/0x450 [ 118.334278] [] ? process_one_work+0x7e0/0x7e0 [ 118.334280] [] kthread+0xf9/0x110 [ 118.334282] [] ? insert_kthread_work+0x90/0x90 [ 118.334284] [] ret_from_fork+0x3f/0x70 [ 118.334286] [] ? insert_kthread_work+0x90/0x90 [ 118.334287] ---[ end trace 01f2cf6371b82d7a ]--- This warn is harmless, and can be fixed by not calling intel_crtc_disable when the crtc is already disabled. Reported-and-Tested-by: Jörg Otte Signed-off-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit d82c0ba6e306f079407f07003e53c262d683397b Author: Daniel Vetter Date: Tue Jul 14 12:29:27 2015 +0200 Revert "drm/i915: Declare the swizzling unknown for L-shaped configurations" This reverts commit 19ee835cdb0b5a8eb11a68f25a51b8039d564488. It breaks existing old userspace which doesn't handle UNKNOWN swizzling correct. Yes UNKNOWN was a thing back in 2009 and probably still is on some other platforms, but it still pretty clearly broke the testers machine. If we want this we need to extend the ioctl with new paramters that only new userspace looks at. Cc: Harald Arnesen Cc: Chris Wilson Reported-by: Harald Arnesen Cc: stable@vger.kernel.org Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_tiling.c | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) commit 0f44705175347ec96935d60b765b5d14ecc763bb Author: Thomas Gleixner Date: Tue Jul 14 12:01:04 2015 +0200 tick: Move the export of tick_broadcast_oneshot_control to the proper place tick_broadcast_oneshot_control got moved from tick-broadcast to tick-common, but the export stayed in the old place. Fix it up. Fixes: f32dd1170511 'tick/broadcast: Make idle check independent from mode and config' Reported-by: Ingo Molnar Signed-off-by: Thomas Gleixner kernel/time/tick-broadcast.c | 1 - kernel/time/tick-common.c | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) commit cde137aa86f22a471a0fcf53cf634cf2207fa9e7 Author: Baruch Siach Date: Mon Jul 6 14:41:46 2015 +0300 MAINTAINERS: digicolor: add dts files The 'digicolor' regexp doesn't cover the dts files. Add a glob pattern for them. Signed-off-by: Baruch Siach Signed-off-by: Olof Johansson MAINTAINERS | 1 + 1 file changed, 1 insertion(+) commit a549608f5c8423eb25115785ad465c5a57cbe0de Merge: 1d8aca9 93abc72 Author: Olof Johansson Date: Tue Jul 14 11:16:55 2015 +0200 Merge tag 'socfpga_fixes_for_v4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux into fixes Merge "SoCFPGA fixes for v4.2-rc1" from Dinh Nguyen: SoCFPGA fixes against v4.2-rc1 - Update compatible "adxl345x" compatible string - Alphabetize the DTS nodes for the C5 sockit board file * tag 'socfpga_fixes_for_v4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux: ARM: socfpga: dts: Fix entries order ARM: socfpga: dts: Fix adxl34x formating and compatible string commit 1d8aca9df612f5751892fb2642d72536f2f48fd0 Author: Linus Walleij Date: Wed Jul 8 15:15:22 2015 +0200 ARM: ux500: fix MMC/SD card regression Ux500 is regressing due to commit a21763a0b1e5a5ab8310f581886d04beadc16616 "pinctrl: nomadik: activate strict mux mode" which disallows Nomadik GPIO 5 to be muxed in as a level shifter voltage select pin, as it is currently described as being used for RX on UART1. The behaviour is correct, instead the hardware config has been incorrecly specified: UART1 is indeed unused on HREFv60plus and Snowball and that is why HREFv60plus can use the pins it would normally occupy as the voltage select line for the MMC/SD levelshifter (Snowball uses it for I2C4). The reason UART1 was anyway enabled on these platforms was probably to secure the port enumeration to userspace. This can be solved by using aliases (done in a separate patch) so we can now deactivate UART1 and let MMC/SD use it properly on HREFv60plus. We explicitly activate it only for the older HREFprev60 board. To complete, we set up the pin configuration for these pins properly in the sdi0 node. Cc: Ulf Hansson Signed-off-by: Linus Walleij Signed-off-by: Olof Johansson arch/arm/boot/dts/ste-href.dtsi | 2 +- arch/arm/boot/dts/ste-hrefprev60.dtsi | 5 +++++ arch/arm/boot/dts/ste-hrefv60plus.dtsi | 25 +++++++++++++++++++++++-- arch/arm/boot/dts/ste-snowball.dts | 18 ++++++++++++++++-- 4 files changed, 45 insertions(+), 5 deletions(-) commit 109978dea44e8416524e69f0e8888810fdf6e72c Author: Linus Walleij Date: Fri Jul 10 11:32:15 2015 +0200 ARM: ux500: define serial port aliases This enumerates the PL011 serial ports on the Ux500. This is necessary to do if we want to remove one of the serial ports, since userspace depends on console to be present on ttyAMA2 and we must not break userspace. Cc: Ulf Hansson Signed-off-by: Linus Walleij Signed-off-by: Olof Johansson arch/arm/boot/dts/ste-ccu8540.dts | 7 +++++++ arch/arm/boot/dts/ste-ccu9540.dts | 7 +++++++ arch/arm/boot/dts/ste-dbx5x0.dtsi | 6 +++--- arch/arm/boot/dts/ste-hrefprev60-stuib.dts | 7 +++++++ arch/arm/boot/dts/ste-hrefprev60-tvk.dts | 7 +++++++ arch/arm/boot/dts/ste-hrefv60plus-stuib.dts | 7 +++++++ arch/arm/boot/dts/ste-hrefv60plus-tvk.dts | 7 +++++++ arch/arm/boot/dts/ste-snowball.dts | 7 +++++++ 8 files changed, 52 insertions(+), 3 deletions(-) commit 2c57d478018551f2a0983293413f2f198e49ec23 Author: Jeeja KP Date: Tue Jul 14 13:10:47 2015 +0530 ASoC: topology: Fix to add dapm mixer info Mixer control for widgets can't be created if the info is NULL. So assign the correct info for this. Signed-off-by: Jeeja KP Signed-off-by: Subhransu S. Prusty Acked-by: Liam Girdwood Signed-off-by: Mark Brown sound/soc/soc-topology.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ac7e7ab1c3243b10b41653cc8d8536088d83b152 Author: Tvrtko Ursulin Date: Mon Jul 13 16:51:39 2015 +0100 drm/i915: Forward all core DRM ioctls to core compat handling Previously only core DRM ioctls under the DRM_COMMAND_BASE were being forwarded, but the drm.h header suggests (and reality confirms) ones after (and including) DRM_COMMAND_END should be forwarded as well. We need this to correctly forward the compat ioctl for the botched-up addfb2.1 extension. Signed-off-by: Tvrtko Ursulin Cc: Daniel Vetter Cc: stable@vger.kernel.org # 4.1+ [danvet: Explain why this is suddenly needed and add cc: stable.] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_ioc32.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e3895c0334d0ef46e80f22eaf2a52401ff6d5a67 Author: Julian Anastasov Date: Thu Jul 9 11:15:27 2015 +0300 ipvs: call skb_sender_cpu_clear Reset XPS's sender_cpu on forwarding. Signed-off-by: Julian Anastasov Fixes: 2bd82484bb4c ("xps: fix xps for stacked devices") Signed-off-by: Simon Horman net/netfilter/ipvs/ip_vs_xmit.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 56184858d1fc95c46723436b455cb7261cd8be6f Author: Julian Anastasov Date: Wed Jul 8 08:31:33 2015 +0300 ipvs: fix crash with sync protocol v0 and FTP Fix crash in 3.5+ if FTP is used after switching sync_version to 0. Fixes: 749c42b620a9 ("ipvs: reduce sync rate with time thresholds") Signed-off-by: Julian Anastasov Signed-off-by: Simon Horman net/netfilter/ipvs/ip_vs_sync.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 71563f3414e917c62acd8e0fb0edf8ed6af63e4b Author: Alex Gartrell Date: Sun Jul 5 14:28:26 2015 -0700 ipvs: skb_orphan in case of forwarding It is possible that we bind against a local socket in early_demux when we are actually going to want to forward it. In this case, the socket serves no purpose and only serves to confuse things (particularly functions which implicitly expect sk_fullsock to be true, like ip_local_out). Additionally, skb_set_owner_w is totally broken for non full-socks. Signed-off-by: Alex Gartrell Fixes: 41063e9dd119 ("ipv4: Early TCP socket demux.") Acked-by: Julian Anastasov Signed-off-by: Simon Horman net/netfilter/ipvs/ip_vs_xmit.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) commit 05f00505a89acd21f5d0d20f5797dfbc4cf85243 Author: Julian Anastasov Date: Mon Jun 29 21:51:40 2015 +0300 ipvs: fix crash if scheduler is changed I overlooked the svc->sched_data usage from schedulers when the services were converted to RCU in 3.10. Now the rare ipvsadm -E command can change the scheduler but due to the reverse order of ip_vs_bind_scheduler and ip_vs_unbind_scheduler we provide new sched_data to the old scheduler resulting in a crash. To fix it without changing the scheduler methods we have to use synchronize_rcu() only for the editing case. It means all svc->scheduler readers should expect a NULL value. To avoid breakage for the service listing and ipvsadm -R we can use the "none" name to indicate that scheduler is not assigned, a state when we drop new connections. Reported-by: Alexander Vasiliev Fixes: ceec4c381681 ("ipvs: convert services to rcu") Signed-off-by: Julian Anastasov Signed-off-by: Simon Horman net/netfilter/ipvs/ip_vs_core.c | 16 +++++++-- net/netfilter/ipvs/ip_vs_ctl.c | 78 +++++++++++++++++++++++++--------------- net/netfilter/ipvs/ip_vs_sched.c | 12 +++---- 3 files changed, 69 insertions(+), 37 deletions(-) commit 4754957f04f5f368792a0eb7dab0ae89fb93dcfd Author: Julian Anastasov Date: Sat Jun 27 14:39:30 2015 +0300 ipvs: do not use random local source address for tunnels Michael Vallaly reports about wrong source address used in rare cases for tunneled traffic. Looks like __ip_vs_get_out_rt in 3.10+ is providing uninitialized dest_dst->dst_saddr.ip because ip_vs_dest_dst_alloc uses kmalloc. While we retry after seeing EINVAL from routing for data that does not look like valid local address, it still succeeded when this memory was previously used from other dests and with different local addresses. As result, we can use valid local address that is not suitable for our real server. Fix it by providing 0.0.0.0 every time our cache is refreshed. By this way we will get preferred source address from routing. Reported-by: Michael Vallaly Fixes: 026ace060dfe ("ipvs: optimize dst usage for real server") Signed-off-by: Julian Anastasov Signed-off-by: Simon Horman net/netfilter/ipvs/ip_vs_xmit.c | 1 - 1 file changed, 1 deletion(-) commit 326bf17ea5d4f8f17b54cbf167b8cb504c606ee9 Author: Alex Gartrell Date: Fri Jun 26 03:18:45 2015 -0700 ipvs: fix ipv6 route unreach panic Previously there was a trivial panic unshare -n /bin/bash <dev and use that for the purpose of the invocation. Signed-off-by: Alex Gartrell Acked-by: Julian Anastasov Signed-off-by: Simon Horman net/netfilter/ipvs/ip_vs_xmit.c | 7 +++++++ 1 file changed, 7 insertions(+) commit c1b5d0f624970020162b2054cc435712b8a0d422 Author: Suman Anna Date: Fri Jul 10 12:28:56 2015 -0500 ARM: dts: OMAP5: Add #iommu-cells property to IOMMUs Add missing #iommu-cells property to the DSP and IPU IOMMU nodes for OMAP5 platforms. This property is required as per the generic iommu binding. Signed-off-by: Suman Anna Signed-off-by: Tony Lindgren arch/arm/boot/dts/omap5.dtsi | 2 ++ 1 file changed, 2 insertions(+) commit 22e3bcc62e528a0dca7f4fafd71feeb9cdb8a95b Author: Suman Anna Date: Fri Jul 10 12:28:55 2015 -0500 ARM: dts: OMAP4: Add #iommu-cells property to IOMMUs Add missing #iommu-cells property to the DSP and IPU IOMMU nodes for OMAP4 platforms. This property is required as per the generic iommu binding. Signed-off-by: Suman Anna Signed-off-by: Tony Lindgren arch/arm/boot/dts/omap4.dtsi | 2 ++ 1 file changed, 2 insertions(+) commit 693f4f4c969dff9fa80e186e9077c74056f71829 Author: Arun Bharadwaj Date: Thu Jun 4 11:08:19 2015 -0700 ARM: dts: Fix frequency scaling on Gumstix Pepper The device tree for Gumstix Pepper has DCDC2 and DCDC3 correctly labelled but the upper limit values are wrong. The confusion is due to the hardware quirk where the DCDC2 and DCDC3 wires are flipped in Pepper. Signed-off-by: Arun Bharadwaj Tested-by: Ash Charles Signed-off-by: Tony Lindgren arch/arm/boot/dts/am335x-pepper.dts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5aed4ee7cc1f214173b3a029452fe4be7bf89541 Author: Adam YH Lee Date: Thu Jul 9 15:37:57 2015 -0700 ARM: dts: configure regulators for Gumstix Pepper Boot process is halting in midway because some of the necessary voltage regulators are deemed unused and subsequently powered off, leading to a completely unresponsive system. Most of the device nodes had correct voltage regulator attachments. Yet these nodes had to set stricter enforcement on them through 'regulator-boot-on' and 'regulator-always-on' to function correctly. The consumers of the regulators this commit affect are the followings: DCDC1: vdd_1v8 system supply, USB-PHY, and ADC DCDC2: Core domain DCDC3: MPU core domain LDO1: RTC LDO2: 3v3 IO domain LDO3: USB-PHY; not a boot-time requirement LDO4: LCD [16:23] All but LDO3 need to be always-on for the system to be functional. Additionally regulator-name properties have been added for the kernel to display the name from the schematic. This will improve diagnostics. Signed-off-by: Adam YH Lee Signed-off-by: Tony Lindgren arch/arm/boot/dts/am335x-pepper.dts | 9 +++++++++ 1 file changed, 9 insertions(+) commit 3c20b827b1803335aacdab63fb5ed0fd2f4c04ca Author: Adam YH Lee Date: Fri Jun 12 13:37:22 2015 -0700 ARM: dts: omap3: overo: Update LCD panel names For Gumstix Overo COMs, the u-boot bootloader typically passes an argument specifying the default display via the omapdss.def_disp parameter. When a default display is specified, DSS2 tries to match this name with either the device tree label (e.g. label=dvi) or, failing this, the device tree alias (e.g. label=display0). Update the panel names for the 'lcd43' and 'lcd35' displays in the device tree such that they match the names passed by u-boot. Signed-off-by: Ash Charles Signed-off-by: Tony Lindgren arch/arm/boot/dts/omap3-overo-common-lcd35.dtsi | 2 +- arch/arm/boot/dts/omap3-overo-common-lcd43.dtsi | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit b2b9dc60745a95cd69c09f1dc214293e3d65e905 Author: Chris Zhong Date: Tue May 5 10:07:37 2015 +0800 ARM: dts: cros-ec-keyboard: Add support for some Japanese keys Add support for 4 Japanese keys Signed-off-by: Chris Zhong Reviewed-by: Doug Anderson Signed-off-by: Olof Johansson arch/arm/boot/dts/cros-ec-keyboard.dtsi | 4 ++++ 1 file changed, 4 insertions(+) commit b371616b8537d6450ebca0819defbf53452bebf3 Author: Jarkko Sakkinen Date: Wed Jun 24 17:14:55 2015 +0300 tpm, tpm_crb: fail when TPM2 ACPI table contents look corrupted At least some versions of AMI BIOS have corrupted contents in the TPM2 ACPI table and namely the physical address of the control area is set to zero. This patch changes the driver to fail gracefully when we observe a zero address instead of continuing to ioremap. Cc: Signed-off-by: Jarkko Sakkinen Reviewed-by: Peter Huewe Signed-off-by: Peter Huewe drivers/char/tpm/tpm_crb.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit ba0ef85479c46a2ab354c2220bdb6152f7f4baf3 Author: Jason Gunthorpe Date: Tue Jun 30 13:15:31 2015 -0600 tpm: Fix initialization of the cdev When a cdev is contained in a dynamic structure the cdev parent kobj should be set to the kobj that controls the lifetime of the enclosing structure. In TPM's case this is the embedded struct device. Also, cdev_init 0's the whole structure, so all sets must be after, not before. This fixes module ref counting and cdev. Cc: Fixes: 313d21eeab92 ("tpm: device class for tpm") Signed-off-by: Jason Gunthorpe Reviewed-by: Dmitry Torokhov Reviewed-by: Jarkko Sakkinen Tested-by: Jarkko Sakkinen Signed-off-by: Peter Huewe drivers/char/tpm/tpm-chip.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 20483d04ae6f373858f3ca28cd7e26b66106d937 Author: Thomas Gleixner Date: Mon Jul 13 23:22:44 2015 +0200 gpio/davinci: Fix race in installing chained irq handler Fix a race where a pending interrupt could be received and the handler called before the handler's data has been setup, by converting to irq_set_chained_handler_and_data(). Search and conversion was done with coccinelle. Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Linus Walleij Cc: Alexandre Courbot drivers/gpio/gpio-davinci.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 8c5dfdbbebf5d8c2cef33e3aea1b450db69b1f65 Merge: a732cd4 8d05abf Author: Greg Kroah-Hartman Date: Mon Jul 13 14:19:22 2015 -0700 Merge tag 'iio-fixes-for-4.2b' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into staging-linus Jonathan writes: Second set of IIO fixes for the 4.2 cycle. Note these depend (mostly) on material in the recent merge window, hence their separation from set (a) as the fixes-togreg branch predated the merge window. I am running rather later with these than I would have liked hence the large set. * stk3310 fixes from Hartmut's review that came in post merge - fix direction of proximity inline with recent documentation clarification. - fix missing REGMAP_I2C dependency - rework the error handling for raw readings to fix an failure to power down in the event of a raw reading failing. - fix a bug in the compensation code which was toggling an extra bit in the register. * mmc35240 - reported samplign frequencies were wrong. * ltr501 fixes - fix a case of returning the return value of a regmap_read instead of the value read. - fix missing regmap dependency * sx9500 - fix missing default values for ret in a couple of places to handle the case of no enabled channels. * tmp006 - check that writes to info_mask elements are actually to writable ones. Otherwise, writing to any of them will change the sampling frequency. commit a732cd437be58500214e617fbbf8a0fdc32ce226 Merge: cbe4f44 b2b3c3d Author: Greg Kroah-Hartman Date: Mon Jul 13 14:18:07 2015 -0700 Merge tag 'iio-fixes-for-4.2a' 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.2 cycle. * Fix a regression in hid sensors suspend time as a result of adding runtime pm. The normal flow of waking up devices in order to go into suspend (given the devices are normally suspended when not reading) to a regression in suspend time on some laptops (reports of an additional 8 seconds). Fix this by checking to see if a user action resulting in the wake up, and make it a null operation if it didn't. Note that for hid sensors, there is nothing useful to be done when moving into a full suspend from a runtime suspend so they might as well be left alone. * rochip_saradc: fix some missing MODULE_* data including the licence so that the driver does not taint the kernel incorrectly and can build as a module. * twl4030 - mark irq as oneshot as it always should have been. * inv-mpu - write formats for attributes not specified, leading to miss interpretation of the gyro scale channel when written. * Proximity ABI clarification. This had snuck through as a mess. Some drivers thought proximity went in one direction, some the other. We went with the most common option, documented it and fixed up the drivers going the other way. Fix for sx9500 included in this set. * ad624r - fix a wrong shift in the output data. * at91_adc - remove a false limit on the value of the STARTUP register applied by too small a type for the device tree parameter. * cm3323 - clear the bits when setting the integration time (otherwise we can only ever set more bits in the relevant field). * bmc150-accel - multiple triggers are registered, but on error were not being unwound in the opposite order leading to removal of triggers that had not yet successfully been registered (count down instead of up when unwinding). * tcs3414 - ensure right part of val / val2 pair read so that the integration time is not always 0. * cc10001_adc - bug in kconfig dependency. Use of OR when AND was intended. commit bbf470202d697b7d57cc3febad578ec77fd7bded Author: Daniel Vetter Date: Mon Jul 13 08:22:22 2015 +0200 drm/i915: fix oops in primary_check_plane On Sun, Jul 12, 2015 at 09:52:51AM -0700, Linus Torvalds wrote: > On Sun, Jul 12, 2015 at 1:03 AM, Jörg Otte wrote: > > BUG: unable to handle kernel NULL pointer dereference at 0000000000000009 > > IP: [] 0xffffffffbd3447bb > > Ugh. Please enable KALLSYMS to get sane symbols. > > But yes, "crtc_state->base.active" is at offset 9 from "crtc_state", > so it's pretty clearly just that change frm > > - if (intel_crtc->active) { > + if (crtc_state->base.active) { > > and "crtc_state" is NULL. > > And the code very much knows that crtc_state can be NULL, since it's > initialized with > > crtc_state = state->base.state ? > intel_atomic_get_crtc_state(state->base.state, > intel_crtc) : NULL; > > Tssk. Daniel? Should I just revert that commit dec4f799d0a4 > ("drm/i915: Use crtc_state->active in primary check_plane func") for > now, or is there a better fix? Like just checking crtc_state for NULL? Indeed embarrassing. I've missed that we still have 1 caller left that's using the transitional helpers, and those don't fill out plane_state->state backpointers to the global atomic update since there is no global atomic update for transitional helpers. Below diff should fix this - we need to preferentially check crts_state->active and if that's not set intel_crtc->active should yield the right result for the one remaining caller (it's in the crtc_disable paths). This fixes a regression introduced in commit dec4f799d0a4c9edae20512fa60b0a36f3299ca2 Author: Daniel Vetter Date: Tue Jul 7 11:15:47 2015 +0200 drm/i915: Use crtc_state->active in primary check_plane func which was quickly reverted in commit 01e2d0627a9a6edb24c37db45db5ecb31e9de808 Author: Linus Torvalds Date: Sun Jul 12 15:00:20 2015 -0700 Revert "drm/i915: Use crtc_state->active in primary check_plane func" Cc: Linus Torvalds Cc: Jörg Otte Reported-and-tested-by: Jörg Otte Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5ec5b51639ec81031b655eaacf95d4f36b75e9b4 Author: Imre Deak Date: Wed Jul 8 19:18:59 2015 +0300 drm/i915: remove unused has_dma_mapping flag After the previous patch this flag will check always clear, as it's never set for shmem backed and userptr objects, so we can remove it. Signed-off-by: Imre Deak Reviewed-by: Chris Wilson [danvet: Yeah this isn't really fixes but it's a nice cleanup to clarify the code but not really worth the hassle of backmerging. So just add to -fixes, we're still early in -rc.] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 2 -- drivers/gpu/drm/i915/i915_gem.c | 3 --- drivers/gpu/drm/i915/i915_gem_dmabuf.c | 2 -- drivers/gpu/drm/i915/i915_gem_gtt.c | 9 ++------- drivers/gpu/drm/i915/i915_gem_stolen.c | 1 - 5 files changed, 2 insertions(+), 15 deletions(-) commit 101057fa40c17e8ecd0cdcf74664235de3b69c34 Author: Daniel Vetter Date: Mon Jul 13 09:23:19 2015 +0200 drm/i915: Fix missing return warning for !CONFIG_DEBUGFS This broken code was introduced in commit aa7471d228eb6dfddd0d201ea9746d6a2020972a Author: Jani Nikula Date: Wed Apr 1 11:15:21 2015 +0300 drm/i915: add i915 specific connector debugfs file for DPCD v2: Drop hunk that accidentally crept in. Cc: Jani Nikula Cc: Bob Paauwe Cc: François Valenduc Reported-by: François Valenduc Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit e227330223a7721b4284c3921651bd9ca8f3581a Author: Imre Deak Date: Thu Jul 9 12:59:05 2015 +0300 drm/i915: avoid leaking DMA mappings We have 3 types of DMA mappings for GEM objects: 1. physically contiguous for stolen and for objects needing contiguous memory 2. DMA-buf mappings imported via a DMA-buf attach operation 3. SG DMA mappings for shmem backed and userptr objects For 1. and 2. the lifetime of the DMA mapping matches the lifetime of the corresponding backing pages and so in practice we create/release the mapping in the object's get_pages/put_pages callback. For 3. the lifetime of the mapping matches that of any existing GPU binding of the object, so we'll create the mapping when the object is bound to the first vma and release the mapping when the object is unbound from its last vma. Since the object can be bound to multiple vmas, we can end up creating a new DMA mapping in the 3. case even if the object already had one. This is not allowed by the DMA API and can lead to leaked mapping data and IOMMU memory space starvation in certain cases. For example HW IOMMU drivers (intel_iommu) allocate a new range from their memory space whenever a mapping is created, silently overriding a pre-existing mapping. Fix this by moving the creation/removal of DMA mappings to the object's get_pages/put_pages callbacks. These callbacks already check for and do an early return in case of any nested calls. This way objects of the 3. case also become more like the other object types. I noticed this issue by enabling DMA debugging, which got disabled after a while due to its internal mapping tables getting full. It also reported errors in connection to random other drivers that did a DMA mapping for an address that was previously mapped by i915 but was never released. Besides these diagnostic messages and the memory space starvation problem for IOMMUs, I'm not aware of this causing a real issue. The fix is based on a patch from Chris. v2: - move the DMA mapping create/remove calls to the get_pages/put_pages callbacks instead of adding new callbacks for these (Chris) v3: - also fix the get_page cache logic on the userptr async path (Chris) Signed-off-by: Imre Deak Reviewed-by: Chris Wilson Cc: stable@vger.kernel.org Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem.c | 31 ++++++++++++++++--------------- drivers/gpu/drm/i915/i915_gem_userptr.c | 29 +++++++++++++++++++++++++++-- 2 files changed, 43 insertions(+), 17 deletions(-) commit 94f7bbe1509731bdef651d7fb235b2c31fb23be8 Author: Tomas Elf Date: Thu Jul 9 15:30:57 2015 +0100 drm/i915: Snapshot seqno of most recently submitted request. The hang checker needs to inspect whether or not the ring request list is empty as well as if the given engine has reached or passed the most recently submitted request. The problem with this is that the hang checker cannot grab the struct_mutex, which is required in order to safely inspect requests since requests might be deallocated during inspection. In the past we've had kernel panics due to this very unsynchronized access in the hang checker. One solution to this problem is to not inspect the requests directly since we're only interested in the seqno of the most recently submitted request - not the request itself. Instead the seqno of the most recently submitted request is stored separately, which the hang checker then inspects, circumventing the issue of synchronization from the hang checker entirely. This fixes a regression introduced in commit 44cdd6d219bc64f6810b8ed0023a4d4db9e0fe68 Author: John Harrison Date: Mon Nov 24 18:49:40 2014 +0000 drm/i915: Convert 'ring_idle()' to use requests not seqnos v2 (Chris Wilson): - Pass current engine seqno to ring_idle() from i915_hangcheck_elapsed() rather than compute it over again. - Remove extra whitespace. Issue: VIZ-5998 Signed-off-by: Tomas Elf Cc: stable@vger.kernel.org Reviewed-by: Chris Wilson [danvet: Add regressing commit citation provided by Chris.] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem.c | 1 + drivers/gpu/drm/i915/i915_irq.c | 13 +++---------- drivers/gpu/drm/i915/intel_ringbuffer.h | 7 +++++++ 3 files changed, 11 insertions(+), 10 deletions(-) commit 9ea4feecc39dbed60496fa181d70fdb9d73c7250 Author: Chris Wilson Date: Tue May 5 09:17:29 2015 +0100 drm/i915: Store device pointer in contexts for late tracepoint usafe [ 1572.417121] BUG: unable to handle kernel NULL pointer dereference at (null) [ 1572.421010] IP: [] ftrace_raw_event_i915_context+0x5d/0x70 [i915] [ 1572.424970] PGD 1766a3067 PUD 1767a2067 PMD 0 [ 1572.428892] Oops: 0000 [#1] SMP [ 1572.432787] Modules linked in: ipv6 dm_mod iTCO_wdt iTCO_vendor_support snd_hda_codec_realtek snd_hda_codec_generic snd_hda_intel snd_hda_controller snd_hda_codec snd_hda_core snd_hwdep snd_pcm snd_timer snd soundcore serio_raw pcspkr lpc_ich i2c_i801 mfd_core battery ac acpi_cpufreq i915 button video drm_kms_helper drm [ 1572.441720] CPU: 2 PID: 18853 Comm: kworker/u8:0 Not tainted 4.0.0_kcloud_3f0360_20150429+ #588 [ 1572.446298] Workqueue: i915 i915_gem_retire_work_handler [i915] [ 1572.450876] task: ffff880002f428f0 ti: ffff880035724000 task.ti: ffff880035724000 [ 1572.455557] RIP: 0010:[] [] ftrace_raw_event_i915_context+0x5d/0x70 [i915] [ 1572.460423] RSP: 0018:ffff880035727ce8 EFLAGS: 00010286 [ 1572.465262] RAX: ffff880073f1643c RBX: ffff880002da9058 RCX: ffff880073e5db40 [ 1572.470179] RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff880035727ce8 [ 1572.475107] RBP: ffff88007bb11a00 R08: 0000000000000000 R09: 0000000000000000 [ 1572.480034] R10: 0000000000362200 R11: 0000000000000008 R12: 0000000000000000 [ 1572.484952] R13: ffff880035727d78 R14: ffff880002dc1c98 R15: ffff880002dc1dc8 [ 1572.489886] FS: 0000000000000000(0000) GS:ffff88017fd00000(0000) knlGS:0000000000000000 [ 1572.494883] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b [ 1572.499859] CR2: 0000000000000000 CR3: 000000017572a000 CR4: 00000000001006e0 [ 1572.504842] Stack: [ 1572.509834] ffff88017b0090c0 ffff880073f16438 ffff880002da9058 ffff880073f1643c [ 1572.514904] 0000000000000246 ffff880100000000 ffff88007bb11a00 ffff880002ddeb10 [ 1572.519985] ffff8801759f79c0 ffffffffa0092ff0 0000000000000000 ffff88007bb11a00 [ 1572.525049] Call Trace: [ 1572.530093] [] ? i915_gem_context_free+0xa8/0xc1 [i915] [ 1572.535227] [] ? i915_gem_request_free+0x4e/0x50 [i915] [ 1572.540347] [] ? intel_execlists_retire_requests+0x14c/0x159 [i915] [ 1572.545500] [] ? i915_gem_retire_requests+0x9d/0xeb [i915] [ 1572.550664] [] ? i915_gem_retire_work_handler+0x4c/0x61 [i915] [ 1572.555825] [] ? process_one_work+0x1b2/0x31d [ 1572.560951] [] ? worker_thread+0x24d/0x339 [ 1572.566033] [] ? cancel_delayed_work_sync+0xa/0xa [ 1572.571140] [] ? kthread+0xce/0xd6 [ 1572.576191] [] ? kthread_create_on_node+0x162/0x162 [ 1572.581228] [] ? ret_from_fork+0x58/0x90 [ 1572.586259] [] ? kthread_create_on_node+0x162/0x162 [ 1572.591318] Code: de 48 89 e7 e8 09 4d 00 e1 48 85 c0 74 27 48 89 68 10 48 8b 55 38 48 89 e7 48 89 50 18 48 8b 55 10 48 8b 12 48 8b 12 48 8b 52 38 <8b> 12 89 50 08 e8 95 4d 00 e1 48 83 c4 30 5b 5d 41 5c c3 41 55 [ 1572.596981] RIP [] ftrace_raw_event_i915_context+0x5d/0x70 [i915] [ 1572.602464] RSP [ 1572.607911] CR2: 0000000000000000 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90112#c23 Signed-off-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 1 + drivers/gpu/drm/i915/i915_gem_context.c | 4 ++-- drivers/gpu/drm/i915/i915_trace.h | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) commit c9ce42f72fd0ba180fd35539829e4139dca31494 Author: Igor Mammedov Date: Thu Jul 2 15:08:11 2015 +0200 vhost: add max_mem_regions module parameter it became possible to use a bigger amount of memory slots, which is used by memory hotplug for registering hotplugged memory. However QEMU crashes if it's used with more than ~60 pc-dimm devices and vhost-net enabled since host kernel in module vhost-net refuses to accept more than 64 memory regions. Allow to tweak limit via max_mem_regions module paramemter with default value set to 64 slots. Signed-off-by: Igor Mammedov Signed-off-by: Michael S. Tsirkin drivers/vhost/vhost.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 4de7255f7d2be5e51664c6ac6011ffd6e5463571 Author: Igor Mammedov Date: Wed Jul 1 11:07:09 2015 +0200 vhost: extend memory regions allocation to vmalloc with large number of memory regions we could end up with high order allocations and kmalloc could fail if host is under memory pressure. Considering that memory regions array is used on hot path try harder to allocate using kmalloc and if it fails resort to vmalloc. It's still better than just failing vhost_set_memory() and causing guest crash due to it when a new memory hotplugged to guest. I'll still look at QEMU side solution to reduce amount of memory regions it feeds to vhost to make things even better, but it doesn't hurt for kernel to behave smarter and don't crash older QEMU's which could use large amount of memory regions. Signed-off-by: Igor Mammedov Signed-off-by: Michael S. Tsirkin drivers/vhost/vhost.c | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) commit 9c0fa8dd3d58de8b688fda758eea1719949c7f0a Author: Arnaldo Carvalho de Melo Date: Mon Jul 13 08:26:35 2015 -0300 perf hists browser: Take the --comm, --dsos, etc filters into account At some point: commit 2c86c7ca7606 Author: Namhyung Kim Date: Mon Mar 17 18:18:54 2014 -0300 perf report: Merge al->filtered with hist_entry->filtered We stopped dropping samples for things filtered via the --comms, --dsos, --symbols, etc, i.e. things marked as filtered in the symbol resolution routines (thread__find_addr_map(), perf_event__preprocess_sample(), etc). But then, in: commit 268397cb2a47 Author: Namhyung Kim Date: Tue Apr 22 14:49:31 2014 +0900 perf top/tui: Update nr_entries properly after a filter is applied We don't take into account entries that were filtered in perf_event__preprocess_sample() and friends, which leads to inconsistency in the browser seek routines, that expects the number of hist_entry->filtered entries to match what it thinks is the number of unfiltered, browsable entries. So, for instance, when we do: perf top --symbols ___non_existent_symbol___ the hist_browser__nr_entries() routine thinks there are no filters in place, uses the hists->nr_entries but all entries are filtered, leading to a segfault. Tested with: perf top --symbols malloc,free --percentage=relative Freezing, by pressing 'f', at any time and doing the math on the percentages ends up with 100%, ditto for: perf top --dsos libpthread-2.20.so,libxul.so --percentage=relative Both were segfaulting, all fixed now. More work needed to do away with checking if filters are in place, we should just use the nr_non_filtered_samples counter, no need to conditionally use it or hists.nr_filter, as what the browser does is just show unfiltered stuff. An audit of how it is being accounted is needed, this is the minimal fix. Reported-by: Michael Petlan Fixes: 268397cb2a47 ("perf top/tui: Update nr_entries properly after a filter is applied") 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-6w01d5q97qk0d64kuojme5in@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/ui/browsers/hists.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f760b87f8f12eb262f14603e65042996fe03720e Merge: 34bef46 cee9f6d Author: Linus Torvalds Date: Mon Jul 13 11:18:25 2015 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Pull networking fixes from David Miller: 1) Missing list head init in bluetooth hidp session creation, from Tedd Ho-Jeong An. 2) Don't leak SKB in bridge netfilter error paths, from Florian Westphal. 3) ipv6 netdevice private leak in netfilter bridging, fixed by Julien Grall. 4) Fix regression in IP over hamradio bpq encapsulation, from Ralf Baechle. 5) Fix race between rhashtable resize events and table walks, from Phil Sutter. 6) Missing validation of IFLA_VF_INFO netlink attributes, fix from Daniel Borkmann. 7) Missing security layer socket state initialization in tipc code, from Stephen Smalley. 8) Fix shared IRQ handling in boomerang 3c59x interrupt handler, from Denys Vlasenko. 9) Missing minor_idr destroy on module unload on macvtap driver, from Johannes Thumshirn. 10) Various pktgen kernel thread races, from Oleg Nesterov. 11) Fix races that can cause packets to be processed in the backlog even after a device attached to that SKB has been fully unregistered. From Julian Anastasov. 12) bcmgenet driver doesn't account packet drops vs. errors properly, fix from Petri Gynther. 13) Array index validation and off by one fix in DSA layer from Florian Fainelli * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (66 commits) can: replace timestamp as unique skb attribute ARM: dts: dra7x-evm: Prevent glitch on DCAN1 pinmux can: c_can: Fix default pinmux glitch at init can: rcar_can: unify error messages can: rcar_can: print request_irq() error code can: rcar_can: fix typo in error message can: rcar_can: print signed IRQ # can: rcar_can: fix IRQ check net: dsa: Fix off-by-one in switch address parsing net: dsa: Test array index before use net: switchdev: don't abort unsupported operations net: bcmgenet: fix accounting of packet drops vs errors cdc_ncm: update specs URL Doc: z8530book: Fix typo in API-z8530-sync-txdma-open.html net: inet_diag: always export IPV6_V6ONLY sockopt for listening sockets bridge: mdb: allow the user to delete mdb entry if there's a querier net: call rcu_read_lock early in process_backlog net: do not process device backlog during unregistration bridge: fix potential crash in __netdev_pick_tx() net: axienet: Fix devm_ioremap_resource return value check ... commit 34bef46e786ca6f884b8ed4be89e07b62f28ec3c Merge: bc0195a 030f4e9 Author: Linus Torvalds Date: Mon Jul 13 10:33:22 2015 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 Pull crypto fixes from Herbert Xu: "This fixes a duplicate dma_unmap_sg call in omap-des and reentrancy bugs in the powerpc nx driver which may cause bogus output or worse memory corruption" * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: crypto: nx - Fix reentrancy bugs crypto: omap-des - Fix unmapping of dma channels commit ea52bf8eda9832ad30e9f059c5ead8d44f882a53 Author: Pierre Morel Date: Thu Jul 9 14:58:26 2015 +0200 9p/trans_virtio: reset virtio device on remove On device shutdown/removal, virtio drivers need to trigger a reset on the device; if this is neglected, the virtio core will complain about non-zero device status. This patch resets the status when the 9p virtio driver is removed from the system by calling vdev->config->reset on the virtio_device to send a reset to the host virtio device. Signed-off-by: Pierre Morel Reviewed-by: Cornelia Huck Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin net/9p/trans_virtio.c | 1 + 1 file changed, 1 insertion(+) commit 484836ec2de24d9a7c6471f022b746d947698725 Author: Dmitry Torokhov Date: Thu Jul 9 17:15:01 2015 -0700 netfilter: IDLETIMER: fix lockdep warning Dynamically allocated sysfs attributes should be initialized with sysfs_attr_init() otherwise lockdep will be angry with us: [ 45.468653] BUG: key ffffffc030fad4e0 not in .data! [ 45.468655] ------------[ cut here ]------------ [ 45.468666] WARNING: CPU: 0 PID: 1176 at /mnt/host/source/src/third_party/kernel/v3.18/kernel/locking/lockdep.c:2991 lockdep_init_map+0x12c/0x490() [ 45.468672] DEBUG_LOCKS_WARN_ON(1) [ 45.468672] CPU: 0 PID: 1176 Comm: iptables Tainted: G U W 3.18.0 #43 [ 45.468674] Hardware name: XXX [ 45.468675] Call trace: [ 45.468680] [] dump_backtrace+0x0/0x10c [ 45.468683] [] show_stack+0x10/0x1c [ 45.468688] [] dump_stack+0x74/0x94 [ 45.468692] [] warn_slowpath_common+0x84/0xb0 [ 45.468694] [] warn_slowpath_fmt+0x4c/0x58 [ 45.468697] [] lockdep_init_map+0x128/0x490 [ 45.468701] [] __kernfs_create_file+0x80/0xe4 [ 45.468704] [] sysfs_add_file_mode_ns+0x104/0x170 [ 45.468706] [] sysfs_create_file_ns+0x58/0x64 [ 45.468711] [] idletimer_tg_checkentry+0x14c/0x324 [ 45.468714] [] xt_check_target+0x170/0x198 [ 45.468717] [] check_target+0x58/0x6c [ 45.468720] [] translate_table+0x30c/0x424 [ 45.468723] [] do_ipt_set_ctl+0x144/0x1d0 [ 45.468728] [] nf_setsockopt+0x50/0x60 [ 45.468732] [] ip_setsockopt+0x8c/0xb4 [ 45.468735] [] raw_setsockopt+0x10/0x50 [ 45.468739] [] sock_common_setsockopt+0x14/0x20 [ 45.468742] [] SyS_setsockopt+0x88/0xb8 [ 45.468744] ---[ end trace 41d156354d18c039 ]--- Signed-off-by: Dmitry Torokhov Signed-off-by: Pablo Neira Ayuso net/netfilter/xt_IDLETIMER.c | 1 + 1 file changed, 1 insertion(+) commit b06075a98d595b761881fb2d7b8a557ea2f8b7ac Author: Mikulas Patocka Date: Fri Jul 10 17:21:43 2015 -0400 dm: fix use after free crash due to incorrect cleanup sequence Linux 4.2-rc1 Commit 0f20972f7bf6 ("dm: factor out a common cleanup_mapped_device()") moved a common cleanup code to a separate function. Unfortunately, that commit incorrectly changed the order of cleanup, so that it destroys the mapped_device's srcu structure 'io_barrier' before destroying its workqueue. The function that is executed on the workqueue (dm_wq_work) uses the srcu structure, thus it may use it after being freed. That results in a crash in the LVM test suite's mirror-vgreduce-removemissing.sh test. Signed-off-by: Mikulas Patocka Fixes: 0f20972f7bf6 ("dm: factor out a common cleanup_mapped_device()") Signed-off-by: Mike Snitzer drivers/md/dm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 0bc2f2f7d080561cc484d2d0a162a9396bed3383 Author: Arnaldo Carvalho de Melo Date: Mon Jul 13 08:21:57 2015 -0300 perf symbols: Store if there is a filter in place When setting yup the symbols library we setup several filter lists, for dsos, comms, symbols, etc, and there is code that, if there are filters, do certain operations, like recalculate the number of non filtered histogram entries in the top/report TUI. But they were considering just the "Zoom" filters, when they need to take into account as well the above mentioned filters (perf top --comms, --dsos, etc). So store in symbol_conf.has_filter true if any of those filters is in place. 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-f5edfmhq69vfvs1kmikq1wep@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/symbol.c | 2 ++ tools/perf/util/symbol.h | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) commit 2dfbe9afcda3243dd309826cbbb8ae9e9f602006 Author: Krzysztof Kozlowski Date: Thu Jul 9 22:19:29 2015 +0900 ASoC: zx: spdif: Fix devm_ioremap_resource return value check Value returned by devm_ioremap_resource() was checked for non-NULL but devm_ioremap_resource() returns IOMEM_ERR_PTR, not NULL. In case of error this could lead to dereference of ERR_PTR. Signed-off-by: Krzysztof Kozlowski Reviewed-by: Jun Nie Signed-off-by: Mark Brown sound/soc/zte/zx296702-spdif.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a18da49ff3ec849c4584ae3abe2b83ff50705ace Author: Krzysztof Kozlowski Date: Thu Jul 9 22:19:28 2015 +0900 ASoC: zx: i2s: Fix devm_ioremap_resource return value check Value returned by devm_ioremap_resource() was checked for non-NULL but devm_ioremap_resource() returns IOMEM_ERR_PTR, not NULL. In case of error this could lead to dereference of ERR_PTR. Signed-off-by: Krzysztof Kozlowski Reviewed-by: Jun Nie Signed-off-by: Mark Brown sound/soc/zte/zx296702-i2s.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit ee296d7c5709440f8abd36b5b65c6b3e388538d9 Author: Jeff Layton Date: Sat Jul 11 06:43:03 2015 -0400 locks: inline posix_lock_file_wait and flock_lock_file_wait They just call file_inode and then the corresponding *_inode_file_wait function. Just make them static inlines instead. Signed-off-by: Jeff Layton fs/locks.c | 28 ---------------------------- include/linux/fs.h | 32 ++++++++++++++------------------ 2 files changed, 14 insertions(+), 46 deletions(-) commit 83bfff23e9ed19f37c4ef0bba84e75bd88e5cf21 Author: Jeff Layton Date: Sat Jul 11 06:43:03 2015 -0400 nfs4: have do_vfs_lock take an inode pointer Now that we have file locking helpers that can deal with an inode instead of a filp, we can change the NFSv4 locking code to use that instead. This should fix the case where we have a filp that is closed while flock or OFD locks are set on it, and the task is signaled so that it doesn't wait for the LOCKU reply to come in before the filp is freed. At that point we can end up with a use-after-free with the current code, which relies on dereferencing the fl_file in the lock request. Signed-off-by: Jeff Layton Reviewed-by: "J. Bruce Fields" Tested-by: "J. Bruce Fields" fs/nfs/nfs4proc.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 29d01b22eaa18d8b46091d3c98c6001c49f78e4a Author: Jeff Layton Date: Sat Jul 11 06:43:02 2015 -0400 locks: new helpers - flock_lock_inode_wait and posix_lock_inode_wait Allow callers to pass in an inode instead of a filp. Signed-off-by: Jeff Layton Reviewed-by: "J. Bruce Fields" Tested-by: "J. Bruce Fields" fs/locks.c | 50 ++++++++++++++++++++++++++++++++++++++------------ include/linux/fs.h | 14 ++++++++++++++ 2 files changed, 52 insertions(+), 12 deletions(-) commit bcd7f78d078ff6197715c1ed070c92aca57ec12c Author: Jeff Layton Date: Sat Jul 11 06:43:02 2015 -0400 locks: have flock_lock_file take an inode pointer instead of a filp ...and rename it to better describe how it works. In order to fix a use-after-free in NFS, we need to be able to remove locks from an inode after the filp associated with them may have already been freed. flock_lock_file already only dereferences the filp to get to the inode, so just change it so the callers do that. All of the callers already pass in a lock request that has the fl_file set properly, so we don't need to pass it in individually. With that change it now only dereferences the filp to get to the inode, so just push that out to the callers. Signed-off-by: Jeff Layton Reviewed-by: "J. Bruce Fields" Tested-by: "J. Bruce Fields" fs/locks.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit ed056764271e71004b3118619de1ebfefb2acf6b Author: Jeff Layton Date: Sat Jul 11 06:43:01 2015 -0400 Revert "nfs: take extra reference to fl->fl_file when running a LOCKU operation" This reverts commit db2efec0caba4f81a22d95a34da640b86c313c8e. William reported that he was seeing instability with this patch, which is likely due to the fact that it can cause the kernel to take a new reference to a filp after the last reference has already been put. Revert this patch for now, as we'll need to fix this in another way. Cc: stable@vger.kernel.org Reported-by: William Dauchy Signed-off-by: Jeff Layton Reviewed-by: "J. Bruce Fields" Tested-by: "J. Bruce Fields" fs/nfs/nfs4proc.c | 2 -- 1 file changed, 2 deletions(-) commit cad49cfc44a5160e3fa09b18e4e7f7cacd13f27d Author: Heiko Carstens Date: Tue Jul 7 08:40:49 2015 +0200 s390/nmi: fix vector register corruption If a machine check happens, the machine has the vector facility installed and the extended save area exists, the cpu will save vector register contents into the extended save area. This is regardless of control register 0 contents, which enables and disables the vector facility during runtime. On each machine check we should validate the vector registers. The current code however tries to validate the registers only if the running task is using vector registers in user space. However even the current code is broken and causes vector register corruption on machine checks, if user space uses them: the prefix area contains a pointer (absolute address) to the machine check extended save area. In order to save some space the save area was put into an unused area of the second prefix page. When validating vector register contents the code uses the absolute address of the extended save area, which is wrong. Due to prefixing the vector instructions will then access contents using absolute addresses instead of real addresses, where the machine stored the contents. If the above would work there is still the problem that register validition would only happen if user space uses vector registers. If kernel space uses them also, this may also lead to vector register content corruption: if the kernel makes use of vector instructions, but the current running user space context does not, the machine check handler will validate floating point registers instead of vector registers. Given the fact that writing to a floating point register may change the upper halve of the corresponding vector register, we also experience vector register corruption in this case. Fix all of these issues, and always validate vector registers on each machine check, if the machine has the vector facility installed and the extended save area is defined. Cc: # 4.1+ Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky arch/s390/include/asm/ctl_reg.h | 5 +++- arch/s390/kernel/nmi.c | 51 ++++++++++++++++++++++++----------------- 2 files changed, 34 insertions(+), 22 deletions(-) commit e47994dd44bcb4a77b4152bd0eada585934703c0 Author: Heiko Carstens Date: Mon Jul 6 15:02:37 2015 +0200 s390/process: fix sfpc inline assembly The sfpc inline assembly within execve_tail() may incorrectly set bits 28-31 of the sfpc instruction to a value which is not zero. These bits however are currently unused and therefore should be zero so we won't get surprised if these bits will be used in the future. Therefore remove the second operand from the inline assembly. Cc: Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky arch/s390/kernel/process.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f81a49d13b3014c2b7c424628779a8af93f25c04 Author: Stefan Haberland Date: Fri Jul 10 10:47:09 2015 +0200 s390/dasd: fix kernel panic when alias is set offline The dasd device driver selects which (alias or base) device is used for a given requests when the request is build. If the chosen alias device is set offline before the request gets queued to the device queue the starting function may use device structures that are already freed. This might lead to a hanging offline process or a kernel panic. Add a check to the starting function that returns the request to the upper layer if the device is already in offline processing. In addition to that prevent that an alias device that's already in offline processing gets chosen as start device. Reviewed-by: Sebastian Ott Reviewed-by: Peter Oberparleiter Signed-off-by: Stefan Haberland Signed-off-by: Martin Schwidefsky drivers/s390/block/dasd.c | 36 +++++++++++++++++++++++++++++------- drivers/s390/block/dasd_alias.c | 3 ++- 2 files changed, 31 insertions(+), 8 deletions(-) commit 624b71ee20acba269e348eb6bdd516d47b9d30fa Author: Vineet Gupta Date: Sun Jul 12 13:16:50 2015 +0530 ARCv2: support HS38 releases Signed-off-by: Vineet Gupta arch/arc/kernel/setup.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit f51e2f1911122879eefefa4c592dea8bf794b39c Author: Alexey Brodkin Date: Mon Jul 13 10:25:17 2015 +0300 ARC: make sure instruction_pointer() returns unsigned value Currently instruction_pointer() returns pt_regs->ret and so return value is of type "long", which implicitly stands for "signed long". While that's perfectly fine when dealing with 32-bit values if return value of instruction_pointer() gets assigned to 64-bit variable sign extension may happen. And at least in one real use-case it happens already. In perf_prepare_sample() return value of perf_instruction_pointer() (which is an alias to instruction_pointer() in case of ARC) is assigned to (struct perf_sample_data)->ip (which type is "u64"). And what we see if instuction pointer points to user-space application that in case of ARC lays below 0x8000_0000 "ip" gets set properly with leading 32 zeros. But if instruction pointer points to kernel address space that starts from 0x8000_0000 then "ip" is set with 32 leadig "f"-s. I.e. id instruction_pointer() returns 0x8100_0000, "ip" will be assigned with 0xffff_ffff__8100_0000. Which is obviously wrong. In particular that issuse broke output of perf, because perf was unable to associate addresses like 0xffff_ffff__8100_0000 with anything from /proc/kallsyms. That's what we used to see: ----------->8---------- 6.27% ls [unknown] [k] 0xffffffff8046c5cc 2.96% ls libuClibc-0.9.34-git.so [.] memcpy 2.25% ls libuClibc-0.9.34-git.so [.] memset 1.66% ls [unknown] [k] 0xffffffff80666536 1.54% ls libuClibc-0.9.34-git.so [.] 0x000224d6 1.18% ls libuClibc-0.9.34-git.so [.] 0x00022472 ----------->8---------- With that change perf output looks much better now: ----------->8---------- 8.21% ls [kernel.kallsyms] [k] memset 3.52% ls libuClibc-0.9.34-git.so [.] memcpy 2.11% ls libuClibc-0.9.34-git.so [.] malloc 1.88% ls libuClibc-0.9.34-git.so [.] memset 1.64% ls [kernel.kallsyms] [k] _raw_spin_unlock_irqrestore 1.41% ls [kernel.kallsyms] [k] __d_lookup_rcu ----------->8---------- Signed-off-by: Alexey Brodkin Cc: arc-linux-dev@synopsys.com Cc: stable@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Vineet Gupta arch/arc/include/asm/ptrace.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0915da7dd75f0f5f38dc9b82415417e7a2b40385 Author: yao mark Date: Thu Jul 2 15:07:31 2015 +0800 drm/rockchip: vop: remove hardware cursor window hardware cursor windows only have some fixed size, and not support width virtual, when move hardware cursor windows outside of left, the display would be wrong, so this window can't for cursor now. And Tag hardware cursor window as a overlay is wrong, will make userspace wrong behaviour. So just remove the hardware cursor window Signed-off-by: Mark Yao drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 11 ----------- 1 file changed, 11 deletions(-) commit d3cae7df5b44d5b4dd7bcaf3a73382c8c10de83b Author: yao mark Date: Fri Jun 26 18:07:28 2015 +0800 drm/rockchip: vop: switch cursor plane to window 3 Window 1 support scale and yuv format, it's waste use it for a cursor, use window 3 is enough. Signed-off-by: Mark Yao Reviewed-by: Tomasz Figa drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 43b6c9bda1bdf2db556e39e614f9f54da5de4eac Author: Krzysztof Kozlowski Date: Fri Jul 10 19:37:33 2015 +0900 drm/rockchip: 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 drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 1 - 1 file changed, 1 deletion(-) commit 8915bf2028534832d02e0345cc5a8c0a2bae0924 Author: Daniel Kurtz Date: Tue Jul 7 17:03:36 2015 +0800 drm/rockchip: use drm_gem_mmap helpers Rather than (incompletely [0]) re-implementing drm_gem_mmap() and drm_gem_mmap_obj() helpers, call them directly from the rockchip mmap routines. Once the core functions return successfully, the rockchip mmap routines can still use dma_mmap_attrs() to simply mmap the entire buffer. [0] Previously, we were performing the mmap() without first taking a reference on the underlying gem buffer. This could leak ptes if the gem object is destroyed while userspace is still holding the mapping. Signed-off-by: Daniel Kurtz Reviewed-by: Daniel Vetter Cc: stable@vger.kernel.org drivers/gpu/drm/rockchip/rockchip_drm_gem.c | 67 +++++++++++++++-------------- 1 file changed, 34 insertions(+), 33 deletions(-) commit 765c35bbd267e93eabe15a94534688ddaa0b9dc7 Author: Heiko Stübner Date: Tue Jun 2 16:41:45 2015 +0200 drm/rockchip: only call drm_fb_helper_hotplug_event if fb_helper present Add a check for the presence of fb_helper to rockchip_drm_output_poll_changed() to only call drm_fb_helper_hotplug_event if there is actually a fb_helper available. Without this check I see NULL pointer dereferences when the hdmi hotplug irq fires before the fb_helper got initialized. Signed-off-by: Heiko Stuebner drivers/gpu/drm/rockchip/rockchip_drm_fb.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 85a359f2538882ec2a02f2331ad56a2cae3bb014 Author: Tomasz Figa Date: Mon May 11 19:55:39 2015 +0900 drm/rockchip: Add BGR formats to VOP VOP can support BGR formats in all windows thanks to red/blue swap option provided in WINx_CTRL0 registers. This patch enables support for ABGR8888, XBGR8888, BGR888 and BGR565 formats by using this feature. Signed-off-by: Tomasz Figa drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 33 +++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) commit cee9f6d0186a586c8023bc91c8a4cf8a088855e5 Merge: 76b63da d3b58c4 Author: David S. Miller Date: Sun Jul 12 22:24:01 2015 -0700 Merge tag 'linux-can-fixes-for-4.2-20150712' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can Marc Kleine-Budde says: ==================== pull-request: can 2015-07-12 this is a pull request of 8 patchs for net/master. Sergei Shtylyov contributes 5 patches for the rcar_can driver, fixing the IRQ check and several info and error messages. There are two patches by J.D. Schroeder and Roger Quadros for the c_can driver and dra7x-evm device tree, which precent a glitch in the DCAN1 pinmux. Oliver Hartkopp provides a better approach to make the CAN skbs unique, the timestamp is replaced by a counter. ==================== Signed-off-by: David S. Miller commit 67592f699cb309559575b89d727d510ea076521c Author: Greg Ungerer Date: Wed Jul 8 17:02:08 2015 +1000 m68k: enable PCI support for m5475evb defconfig The ColdFire M5475 on the m5475evb board supports a PCI bus, lets enable it for the defconfig to get better build and test coverage. Signed-off-by: Greg Ungerer arch/m68k/configs/m5475evb_defconfig | 1 + 1 file changed, 1 insertion(+) commit 03aa29f80e371c75370e83eded7b551951385122 Author: Greg Ungerer Date: Wed Jul 8 16:54:13 2015 +1000 m68k: fix io functions for ColdFire/MMU/PCI case The inb/outb/... family of IO methods end up being multiply defined when building PCI support for the ColdFire. Compiling gives this: CC init/main.o In file included from ./arch/m68k/include/asm/io.h:4:0, from include/linux/bio.h:30, from include/linux/blkdev.h:18, from init/main.c:75: ./arch/m68k/include/asm/io_mm.h:420:0: warning: "inb" redefined ./arch/m68k/include/asm/io_mm.h:108:0: note: this is the location of the previous definition ... The ColdFire/PCI case defines its own IO access methods, so no others should be defined or used in this case. Conditionally disable other definitions that clash with it. Signed-off-by: Greg Ungerer arch/m68k/include/asm/io_mm.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 8700f09495dec922600836400d5e26a22f50bf19 Author: Greg Ungerer Date: Tue Jul 7 16:34:34 2015 +1000 m68knommu: update defconfig for ColdFire m5475evb No change to active configuration settings, updated to match current Kconfigs only. Signed-off-by: Greg Ungerer arch/m68k/configs/m5475evb_defconfig | 8 -------- 1 file changed, 8 deletions(-) commit fee539223f72c0f969711673fd1ddf613a522d6e Author: Greg Ungerer Date: Tue Jul 7 16:33:08 2015 +1000 m68knommu: update defconfig for ColdFire m5407c3 No change to active configuration settings, updated to match current Kconfigs only. Signed-off-by: Greg Ungerer arch/m68k/configs/m5407c3_defconfig | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) commit 59c024b742f4b9ef9be08baebabf15ca7e843b5d Author: Greg Ungerer Date: Tue Jul 7 16:31:56 2015 +1000 m68knommu: update defconfig for ColdFire m5307c3 No change to active configuration settings, updated to match current Kconfigs only. Signed-off-by: Greg Ungerer arch/m68k/configs/m5307c3_defconfig | 21 +++------------------ 1 file changed, 3 insertions(+), 18 deletions(-) commit 6845f6e10290877a820000c3647129837ef93c1b Author: Greg Ungerer Date: Tue Jul 7 16:31:30 2015 +1000 m68knommu: update defconfig for ColdFire m5275evb No change to active configuration settings, updated to match current Kconfigs only. Signed-off-by: Greg Ungerer arch/m68k/configs/m5275evb_defconfig | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-) commit 2e27f44383fb64db65eeeba6b25f9cc986284103 Author: Greg Ungerer Date: Tue Jul 7 16:30:58 2015 +1000 m68knommu: update defconfig for ColdFire m5272c3 No change to active configuration settings, updated to match current Kconfigs only. Signed-off-by: Greg Ungerer arch/m68k/configs/m5272c3_defconfig | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) commit 0f28b05a4b127dd786d589a44d49ed6ade9a66fe Author: Greg Ungerer Date: Tue Jul 7 16:29:17 2015 +1000 m68knommu: update defconfig for ColdFire m5249evb No change to active configuration settings, updated to match current Kconfigs only. Signed-off-by: Greg Ungerer arch/m68k/configs/m5249evb_defconfig | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) commit bfd302acc57ceed1b4d37926c8bbe3cb9d9f1098 Author: Greg Ungerer Date: Tue Jul 7 16:27:29 2015 +1000 m68knommu: update defconfig for m5208evb No change to active configuration settings, updated to match current Kconfigs only. Signed-off-by: Greg Ungerer arch/m68k/configs/m5208evb_defconfig | 22 +++------------------- 1 file changed, 3 insertions(+), 19 deletions(-) commit fa95a1dd0819c9041a873b10a6d83b5134964154 Author: Greg Ungerer Date: Tue Jul 7 15:44:02 2015 +1000 m68knommu: make ColdFire SoC selection a choice It would be nice if we could support multiple ColdFire SoC types in a single binary - but currently the code simply does not support it. Change the SoC selection config options to be a choice instead of individual selectable entries. This fixes problems with building allnoconfig, and means that a sane linux kernel is generated for a single ColdFire SoC type. Signed-off-by: Greg Ungerer Acked-by: Geert Uytterhoeven arch/m68k/Kconfig.cpu | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) commit 15c2ca4e98a3cd265b17db126e2e6b752f99014d Author: Greg Ungerer Date: Tue Jul 7 15:01:53 2015 +1000 m68knommu: improve the clock configuration defaults Create some intelligent default settings for each ColdFire SoC type in the configuration entry for CONFIG_CLOCK_FREQ. The ColdFire clock frequency is configurable at build time. There is a lot of variation in the frequency of operation on specific ColdFire based boards. But we can choose a default that matches the maximum frequency of clock operation for a particular ColdFire part. That is typically the most common clock setting. Signed-off-by: Greg Ungerer Acked-by: Geert Uytterhoeven arch/m68k/Kconfig.cpu | 8 ++++++++ 1 file changed, 8 insertions(+) commit d9ee489619744ee5ac246b8fb3dd65bb078d2f0a Author: Greg Ungerer Date: Tue Jul 7 14:21:21 2015 +1000 m68knommu: force setting of CONFIG_CLOCK_FREQ for ColdFire It is possible to disable the clock selection at configuration time, but for ColdFire targets we always expect a clock frequency to be selected. This results in the following compile time error: CC arch/m68k/kernel/asm-offsets.s In file included from ./arch/m68k/include/asm/timex.h:14:0, from include/linux/timex.h:65, from include/linux/sched.h:19, from arch/m68k/kernel/asm-offsets.c:14: ./arch/m68k/include/asm/coldfire.h:25:2: error: #error "Don't know what your ColdFire CPU clock frequency is??" Remove CONFIG_CLOCK_SELECT completely and always enable CONFIG_CLOCK_FREQ for ColdFire. Signed-off-by: Greg Ungerer Acked-by: Geert Uytterhoeven arch/m68k/Kconfig.cpu | 14 +------------- arch/m68k/include/asm/coldfire.h | 2 +- 2 files changed, 2 insertions(+), 14 deletions(-) commit bc0195aad0daa2ad5b0d76cce22b167bc3435590 Author: Linus Torvalds Date: Sun Jul 12 15:10:30 2015 -0700 Linux 4.2-rc2 Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 01e2d0627a9a6edb24c37db45db5ecb31e9de808 Author: Linus Torvalds Date: Sun Jul 12 15:00:20 2015 -0700 Revert "drm/i915: Use crtc_state->active in primary check_plane func" This reverts commit dec4f799d0a4c9edae20512fa60b0a36f3299ca2. Jörg Otte reports a NULL pointder dereference due to this commit, as 'crtc_state' very much can be NULL: crtc_state = state->base.state ? intel_atomic_get_crtc_state(state->base.state, intel_crtc) : NULL; So the change to test 'crtc_state->base.active' cannot possibly be correct as-is. There may be some other minimal fix (like just checking crtc_state for NULL), but I'm just reverting it now for the rc2 release, and people like Daniel Vetter who actually know this code will figure out what the right solution is in the longer term. Reported-and-bisected-by: Jörg Otte Cc: Ander Conselvan de Oliveira Cc: Jani Nikula Cc: Daniel Vetter CC: Maarten Lankhorst Signed-off-by: Linus Torvalds drivers/gpu/drm/i915/intel_display.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c83727a6565278dd330748daac046721284adfc2 Merge: 7fbb58a 75a6f82 Author: Linus Torvalds Date: Sun Jul 12 14:09:36 2015 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs Pull VFS fixes from Al Viro: "Fixes for this cycle regression in overlayfs and a couple of long-standing (== all the way back to 2.6.12, at least) bugs" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: freeing unlinked file indefinitely delayed fix a braino in ovl_d_select_inode() 9p: don't leave a half-initialized inode sitting around commit 7fbb58a06517443ff68f36f4f1867ba978eac5dd Merge: 1daa1cf 51d5367 Author: Linus Torvalds Date: Sun Jul 12 13:55:24 2015 -0700 Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus Pull MIPS fixes from Ralf Baechle: "A fair number of 4.2 fixes also because Markos opened the flood gates. - Patch up the math used calculate the location for the page bitmap. - The FDC (Not what you think, FDC stands for Fast Debug Channel) IRQ around was causing issues on non-Malta platforms, so move the code to a Malta specific location. - A spelling fix replicated through several files. - Fix to the emulation of an R2 instruction for R6 cores. - Fix the JR emulation for R6. - Further patching of mindless 64 bit issues. - Ensure the kernel won't crash on CPUs with L2 caches with >= 8 ways. - Use compat_sys_getsockopt for O32 ABI on 64 bit kernels. - Fix cache flushing for multithreaded cores. - A build fix" * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: MIPS: O32: Use compat_sys_getsockopt. MIPS: c-r4k: Extend way_string array MIPS: Pistachio: Support CDMM & Fast Debug Channel MIPS: Malta: Make GIC FDC IRQ workaround Malta specific MIPS: c-r4k: Fix cache flushing for MT cores Revert "MIPS: Kconfig: Disable SMP/CPS for 64-bit" MIPS: cps-vec: Use macros for various arithmetics and memory operations MIPS: kernel: cps-vec: Replace KSEG0 with CKSEG0 MIPS: kernel: cps-vec: Use ta0-ta3 pseudo-registers for 64-bit MIPS: kernel: cps-vec: Replace mips32r2 ISA level with mips64r2 MIPS: kernel: cps-vec: Replace 'la' macro with PTR_LA MIPS: kernel: smp-cps: Fix 64-bit compatibility errors due to pointer casting MIPS: Fix erroneous JR emulation for MIPS R6 MIPS: Fix branch emulation for BLTC and BGEC instructions MIPS: kernel: traps: Fix broken indentation MIPS: bootmem: Don't use memory holes for page bitmap MIPS: O32: Do not handle require 32 bytes from the stack to be readable. MIPS, CPUFREQ: Fix spelling of Institute. MIPS: Lemote 2F: Fix build caused by recent mass rename. commit d3b58c47d330de8c29898fe9746f7530408f8a59 Author: Oliver Hartkopp Date: Fri Jun 26 11:58:19 2015 +0200 can: replace timestamp as unique skb attribute Commit 514ac99c64b "can: fix multiple delivery of a single CAN frame for overlapping CAN filters" requires the skb->tstamp to be set to check for identical CAN skbs. Without timestamping to be required by user space applications this timestamp was not generated which lead to commit 36c01245eb8 "can: fix loss of CAN frames in raw_rcv" - which forces the timestamp to be set in all CAN related skbuffs by introducing several __net_timestamp() calls. This forces e.g. out of tree drivers which are not using alloc_can{,fd}_skb() to add __net_timestamp() after skbuff creation to prevent the frame loss fixed in mainline Linux. This patch removes the timestamp dependency and uses an atomic counter to create an unique identifier together with the skbuff pointer. Btw: the new skbcnt element introduced in struct can_skb_priv has to be initialized with zero in out-of-tree drivers which are not using alloc_can{,fd}_skb() too. Signed-off-by: Oliver Hartkopp Cc: linux-stable Signed-off-by: Marc Kleine-Budde drivers/net/can/dev.c | 7 ++----- drivers/net/can/slcan.c | 2 +- drivers/net/can/vcan.c | 3 --- include/linux/can/skb.h | 2 ++ net/can/af_can.c | 12 +++++++----- net/can/bcm.c | 2 ++ net/can/raw.c | 7 ++++--- 7 files changed, 18 insertions(+), 17 deletions(-) commit 2acb5c301edf39ab6d066687ce70da1166e4de9e Author: Roger Quadros Date: Tue Jul 7 17:27:57 2015 +0300 ARM: dts: dra7x-evm: Prevent glitch on DCAN1 pinmux Driver core sets "default" pinmux on on probe and CAN driver sets "sleep" pinmux during register. This causes a small window where the CAN pins are in "default" state with the DCAN module being disabled. Change the "default" state to be like sleep so this glitch is avoided. Add a new "active" state that is used by the driver when CAN is actually active. Signed-off-by: Roger Quadros Cc: linux-stable Signed-off-by: Marc Kleine-Budde arch/arm/boot/dts/dra7-evm.dts | 5 +++-- arch/arm/boot/dts/dra72-evm.dts | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) commit 033365191136c97f88c81b7bd0011414db28bb4e Author: J.D. Schroeder Date: Wed Jul 8 14:38:12 2015 +0300 can: c_can: Fix default pinmux glitch at init The previous change 3973c526ae9c (net: can: c_can: Disable pins when CAN interface is down) causes a slight glitch on the pinctrl settings when used. Since commit ab78029 (drivers/pinctrl: grab default handles from device core), the device core will automatically set the default pins. This causes the pins to be momentarily set to the default and then to the sleep state in register_c_can_dev(). By adding an optional "enable" state, boards can set the default pin state to be disabled and avoid the glitch when the switch from default to sleep first occurs. If the "enable" state is not available c_can_pinctrl_select_state() falls back to using the "default" pinctrl state. [Roger Q] - Forward port to v4.2 and use pinctrl_get_select(). Signed-off-by: J.D. Schroeder Signed-off-by: Roger Quadros Reviewed-by: Grygorii Strashko Cc: linux-stable Signed-off-by: Marc Kleine-Budde drivers/net/can/c_can/c_can.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit 585bc2ac4cc0e2398f5b128018247f51fa3e0e12 Author: Sergei Shtylyov Date: Sat Jun 20 03:51:34 2015 +0300 can: rcar_can: unify error messages All the error messages in the driver but the ones from devm_clk_get() failures use similar format. Make those two messages consitent with others. Signed-off-by: Sergei Shtylyov Signed-off-by: Marc Kleine-Budde drivers/net/can/rcar_can.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit ae185f19662565f5320e49247faab8752a977642 Author: Sergei Shtylyov Date: Sat Jun 20 03:50:35 2015 +0300 can: rcar_can: print request_irq() error code Also print the error code when the request_irq() call fails in rcar_can_open(), rewording the error message... Signed-off-by: Sergei Shtylyov Signed-off-by: Marc Kleine-Budde drivers/net/can/rcar_can.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 3255f68c132a8ed784b9fe1804ef4642a1d16b9a Author: Sergei Shtylyov Date: Sat Jun 20 03:34:55 2015 +0300 can: rcar_can: fix typo in error message Fix typo in the first error message printed by rcar_can_open(). Based on the original patch by Vladimir Barinov. Fixes: 862e2b6af941 ("can: rcar_can: support all input clocks") Reported-by: Vladimir Barinov Signed-off-by: Sergei Shtylyov Signed-off-by: Marc Kleine-Budde drivers/net/can/rcar_can.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit c1a4c87b06fa564d6e2760a12d4e5a09badc684b Author: Sergei Shtylyov Date: Sat Jun 20 03:33:53 2015 +0300 can: rcar_can: print signed IRQ # Printing IRQ # using "%x" and "%u" unsigned formats isn't quite correct as 'ndev->irq' is of type *int*, so the "%d" format needs to be used instead. While fixing this, beautify the dev_info() message in rcar_can_probe() a bit. Fixes: fd1159318e55 ("can: add Renesas R-Car CAN driver") Signed-off-by: Sergei Shtylyov Signed-off-by: Marc Kleine-Budde drivers/net/can/rcar_can.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5e63e6baa159fa8c787cf783dbf3d77fbea97331 Author: Sergei Shtylyov Date: Sat Jun 20 03:32:46 2015 +0300 can: rcar_can: fix IRQ check rcar_can_probe() regards 0 as a wrong IRQ #, despite platform_get_irq() that it calls returns negative error code in that case. This leads to the following being printed to the console when attempting to open the device: error requesting interrupt fffffffa because rcar_can_open() calls request_irq() with a negative IRQ #, and that function naturally fails with -EINVAL. Check for the negative error codes instead and propagate them upstream instead of just returning -ENODEV. Fixes: fd1159318e55 ("can: add Renesas R-Car CAN driver") Signed-off-by: Sergei Shtylyov Cc: linux-stable Signed-off-by: Marc Kleine-Budde drivers/net/can/rcar_can.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 1daa1cfb7ab3b9f9b4c7e7a3f136e4e0066b123c Merge: 7b73216 69711ca Author: Linus Torvalds Date: Sun Jul 12 10:02:38 2015 -0700 Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 fixes from Thomas Gleixner: - the high latency PIT detection fix, which slipped through the cracks for rc1 - a regression fix for the early printk mechanism - the x86 part to plug irq/vector related hotplug races - move the allocation of the espfix pages on cpu hotplug to non atomic context. The current code triggers a might_sleep() warning. - a series of KASAN fixes addressing boot crashes and usability - a trivial typo fix for Kconfig help text * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/kconfig: Fix typo in the CONFIG_CMDLINE_BOOL help text x86/irq: Retrieve irq data after locking irq_desc x86/irq: Use proper locking in check_irq_vectors_for_cpu_disable() x86/irq: Plug irq vector hotplug race x86/earlyprintk: Allow early_printk() to use console style parameters like '115200n8' x86/espfix: Init espfix on the boot CPU side x86/espfix: Add 'cpu' parameter to init_espfix_ap() x86/kasan: Move KASAN_SHADOW_OFFSET to the arch Kconfig x86/kasan: Add message about KASAN being initialized x86/kasan: Fix boot crash on AMD processors x86/kasan: Flush TLBs after switching CR3 x86/kasan: Fix KASAN shadow region page tables x86/init: Clear 'init_level4_pgt' earlier x86/tsc: Let high latency PIT fail fast in quick_pit_calibrate() commit be88a1ada9b97bb016196b7f4a1fc2fe2f798529 Author: Liad Kaufman Date: Wed Jul 1 17:28:34 2015 +0300 iwlwifi: nvm: remove mac address byte swapping in 8000 family This fixes the byte order copying in the MAO (Mac Override Section) section from the PNVM, as the byte swapping is not required anymore in the 8000 family. Due to the byte swapping, the driver was reporting an incorrect MAC adddress. CC: [4.1] Signed-off-by: Liad Kaufman Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/iwl-nvm-parse.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) commit 255ba06533f09875973d6b400f9c5b88065938df Author: Emmanuel Grumbach Date: Sat Jul 11 22:30:49 2015 +0300 Revert "iwlwifi: pcie: New RBD allocation model" This reverts commit 5f17570354f91275b0a37a4da33d29a2ab57d32e. This patch introduced a high latency in buffer allocation under extreme load. This latency caused a firmwre crash. The same scenario works fine with this patch reverted. Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/iwl-fh.h | 6 + drivers/net/wireless/iwlwifi/pcie/internal.h | 51 +--- drivers/net/wireless/iwlwifi/pcie/rx.c | 414 ++++++--------------------- 3 files changed, 97 insertions(+), 374 deletions(-) commit 8465fe6ac5cc054a7969e78e56aea40cd7808540 Author: Avraham Stern Date: Sun Jun 21 12:06:13 2015 +0300 iwlwifi: mvm: Add preemptive flag to scheulded scan Add preemptive flag to scheduled scan command flags. Without this flag, all scan requests after scheduled scan was started will be delayed until scheduled scan stops. As a result, P2P_FIND will be blocked while scheduled scan is active. This flag was omitted during refactoring. Signed-off-by: Avraham Stern Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/fw-api-scan.h | 3 ++- drivers/net/wireless/iwlwifi/mvm/scan.c | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) commit b8eee757077e2aced778cfad8c1d989e2deec584 Author: Oren Givon Date: Mon Jun 22 13:44:05 2015 +0300 iwlwifi: edit the 3165 series and 8000 series PCI IDs Add new 3165 devices support. Add one new 8000 series device support. Remove support for 0x0000, 0xC030 and 0xD030 sub-system IDs in the 8000 series. Signed-off-by: Oren Givon Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/pcie/drv.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 00fd233ac491708d1f64b7176be73c84a18a54a2 Author: Johannes Berg Date: Fri Jun 26 16:04:01 2015 +0200 iwlwifi: mvm: check time-event vif to avoid bad deletion The time event is initialized relatively late in interface (mvmvif) initialization, so it's possible to fail before that happens. As a consequence, the driver will crash if it ever tries to delete this time event in case initialization was unsuccessful. Avoid this by using the time event's vif pointer to indicate validity. The vif pointer is != NULL whenever the id is != TE_MAX, except for this special error case where the vif pointer will have the correct property (as the whole memory is cleared on allocation) whereas the id is 0, causing a crash in trying to delete the time event from the list. Signed-off-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/time-event.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f9e5554cd8ca1d1212ec922755b397a20f737923 Author: Emmanuel Grumbach Date: Thu Jun 4 11:09:47 2015 +0300 iwlwifi: pcie: prepare the device before accessing it For 8000 series, we need to access the device to know what firmware to load. Before we do so, we need to prepare the device otherwise we might not be able to access the hardware. Fixes: c278754a21e6 ("iwlwifi: mvm: support family 8000 B2/C steps") CC: [4.1] Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/pcie/trans.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 7b732169e9d1f0f6614a8e85a9e65a9d755b3d86 Merge: c4bc680 c4d029f Author: Linus Torvalds Date: Sun Jul 12 09:36:59 2015 -0700 Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull timer fixes from Thomas Gleixner: "This update from the timer departement contains: - A series of patches which address a shortcoming in the tick broadcast code. If the broadcast device is not available or an hrtimer emulated broadcast device, some of the original assumptions lead to boot failures. I rather plugged all of the corner cases instead of only addressing the issue reported, so the change got a little larger. Has been extensivly tested on x86 and arm. - Get rid of the last holdouts using do_posix_clock_monotonic_gettime() - A regression fix for the imx clocksource driver - An update to the new state callbacks mechanism for clockevents. This is required to simplify the conversion, which will take place in 4.3" * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: tick/broadcast: Prevent NULL pointer dereference time: Get rid of do_posix_clock_monotonic_gettime cris: Replace do_posix_clock_monotonic_gettime() tick/broadcast: Unbreak CONFIG_GENERIC_CLOCKEVENTS=n build tick/broadcast: Handle spurious interrupts gracefully tick/broadcast: Check for hrtimer broadcast active early tick/broadcast: Return busy when IPI is pending tick/broadcast: Return busy if periodic mode and hrtimer broadcast tick/broadcast: Move the check for periodic mode inside state handling tick/broadcast: Prevent deep idle if no broadcast device available tick/broadcast: Make idle check independent from mode and config tick/broadcast: Sanity check the shutdown of the local clock_event tick/broadcast: Prevent hrtimer recursion clockevents: Allow set-state callbacks to be optional clocksource/imx: Define clocksource for mx27 commit c4bc680cf7bcd257865dac97dd2debbc9dcffad4 Merge: 59c3cb5 a899418 Author: Linus Torvalds Date: Sun Jul 12 09:15:02 2015 -0700 Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull irq fix from Thomas Gleixner: "A single fix for a cpu hotplug race vs. interrupt descriptors: Prevent irq setup/teardown across the cpu starting/dying parts of cpu hotplug so that the starting/dying cpu has a stable view of the descriptor space. This has been an issue for all architectures in the cpu dying phase, where interrupts are migrated away from the dying cpu. In the starting phase its mostly a x86 issue vs the vector space update" * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: hotplug: Prevent alloc/free of irq descriptors during cpu up/down commit 75a6f82a0d10ef8f13cd8fe7212911a0252ab99e Author: Al Viro Date: Wed Jul 8 02:42:38 2015 +0100 freeing unlinked file indefinitely delayed Normally opening a file, unlinking it and then closing will have the inode freed upon close() (provided that it's not otherwise busy and has no remaining links, of course). However, there's one case where that does *not* happen. Namely, if you open it by fhandle with cold dcache, then unlink() and close(). In normal case you get d_delete() in unlink(2) notice that dentry is busy and unhash it; on the final dput() it will be forcibly evicted from dcache, triggering iput() and inode removal. In this case, though, we end up with *two* dentries - disconnected (created by open-by-fhandle) and regular one (used by unlink()). The latter will have its reference to inode dropped just fine, but the former will not - it's considered hashed (it is on the ->s_anon list), so it will stay around until the memory pressure will finally do it in. As the result, we have the final iput() delayed indefinitely. It's trivial to reproduce - void flush_dcache(void) { system("mount -o remount,rw /"); } static char buf[20 * 1024 * 1024]; main() { int fd; union { struct file_handle f; char buf[MAX_HANDLE_SZ]; } x; int m; x.f.handle_bytes = sizeof(x); chdir("/root"); mkdir("foo", 0700); fd = open("foo/bar", O_CREAT | O_RDWR, 0600); close(fd); name_to_handle_at(AT_FDCWD, "foo/bar", &x.f, &m, 0); flush_dcache(); fd = open_by_handle_at(AT_FDCWD, &x.f, O_RDWR); unlink("foo/bar"); write(fd, buf, sizeof(buf)); system("df ."); /* 20Mb eaten */ close(fd); system("df ."); /* should've freed those 20Mb */ flush_dcache(); system("df ."); /* should be the same as #2 */ } will spit out something like Filesystem 1K-blocks Used Available Use% Mounted on /dev/root 322023 303843 1131 100% / Filesystem 1K-blocks Used Available Use% Mounted on /dev/root 322023 303843 1131 100% / Filesystem 1K-blocks Used Available Use% Mounted on /dev/root 322023 283282 21692 93% / - inode gets freed only when dentry is finally evicted (here we trigger than by remount; normally it would've happened in response to memory pressure hell knows when). Cc: stable@vger.kernel.org # v2.6.38+; earlier ones need s/kill_it/unhash_it/ Acked-by: J. Bruce Fields Signed-off-by: Al Viro fs/dcache.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 9391dd00d13c853ab4f2a85435288ae2202e0e43 Author: Al Viro Date: Sun Jul 12 10:39:45 2015 -0400 fix a braino in ovl_d_select_inode() when opening a directory we want the overlayfs inode, not one from the topmost layer. Reported-By: Andrey Jr. Melnikov Tested-By: Andrey Jr. Melnikov Signed-off-by: Al Viro fs/overlayfs/inode.c | 3 +++ 1 file changed, 3 insertions(+) commit 0a73d0a204a4a04a1e110539c5a524ae51f91d6d Author: Al Viro Date: Sun Jul 12 10:34:29 2015 -0400 9p: don't leave a half-initialized inode sitting around Cc: stable@vger.kernel.org # all branches Signed-off-by: Al Viro fs/9p/vfs_inode.c | 3 +-- fs/9p/vfs_inode_dotl.c | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) commit 76b63da9666fb3fa786ff76a50d29abbe3d706b8 Merge: 2ee9401 c8cf89f Author: David S. Miller Date: Sat Jul 11 23:25:16 2015 -0700 Merge branch 'dsa-of-parsing-fixes' Florian Fainelli says: ==================== net: dsa: OF parsing fixes This patch series fixes two small parsing issues, the first one was reported by Dan, the second came after looking more closely at the code. ==================== Signed-off-by: David S. Miller commit c8cf89f73f3d9ecbdea479778f0ac714be79be33 Author: Florian Fainelli Date: Sat Jul 11 18:02:11 2015 -0700 net: dsa: Fix off-by-one in switch address parsing cd->sw_addr is used as a MDIO bus address, which cannot exceed PHY_MAX_ADDR (32), our check was off-by-one. Fixes: 5e95329b701c ("dsa: add device tree bindings to register DSA switches") Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller net/dsa/dsa.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8f5063e97f393d49611151d3cf7dcbeb41397f12 Author: Florian Fainelli Date: Sat Jul 11 18:02:10 2015 -0700 net: dsa: Test array index before use port_index is used an index into an array, and this information comes from Device Tree, make sure that port_index is not equal to the array size before using it. Move the check against port_index earlier in the loop. Fixes: 5e95329b701c: ("dsa: add device tree bindings to register DSA switches") Reported-by: Dan Carpenter Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller net/dsa/dsa.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 2ee94014d9bd3868b1c0d17405f96d63bec83f28 Author: Vivien Didelot Date: Fri Jul 10 19:48:58 2015 -0400 net: switchdev: don't abort unsupported operations There is no need to abort attribute setting or object addition, if the prepare phase returned operation not supported. Thus, abort these two transactions only if the error is not -EOPNOTSUPP. Signed-off-by: Vivien Didelot Acked-by: Jiri Pirko Acked-by: Scott Feldman Signed-off-by: David S. Miller net/switchdev/switchdev.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit c590032f9ab8d03aab235a7601db22a267c2d958 Author: Petri Gynther Date: Fri Jul 10 16:20:00 2015 -0700 net: bcmgenet: fix accounting of packet drops vs errors bcmgenet driver needs to separate packet drops from packet errors. When the driver has to drop a *good* packet, due to lack of buffers or replacement skbs, increment only dev->stats.[rx|tx]_dropped. When the driver encounters a bad Rx packet or Tx error, increment only dev->stats.[rx|tx]_errors + relevant detailed error counter. Signed-off-by: Petri Gynther Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/genet/bcmgenet.c | 4 ---- 1 file changed, 4 deletions(-) commit 22401ff17f993bda9acd14ac39213e6f9bb985d0 Author: Enrico Mioso Date: Sat Jul 11 17:30:01 2015 +0200 cdc_ncm: update specs URL Update referenced specs link to reflect actual file version and location. Signed-off-by: Enrico Mioso Signed-off-by: David S. Miller drivers/net/usb/cdc_ncm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 59c3cb553f5fc4ed6868eeaae6ffd8e1daf6d93e Merge: e492519 f0f2c07 Author: Linus Torvalds Date: Sat Jul 11 20:44:31 2015 -0700 Merge branch 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/nvdimm Pull libnvdimm fixes from Dan Williams: "1) Fixes for a handful of smatch reports (Thanks Dan C.!) and minor bug fixes (patches 1-6) 2) Correctness fixes to the BLK-mode nvdimm driver (patches 7-10). Granted these are slightly large for a -rc update. They have been out for review in one form or another since the end of May and were deferred from the merge window while we settled on the "PMEM API" for the PMEM-mode nvdimm driver (ie memremap_pmem, memcpy_to_pmem, and wmb_pmem). Now that those apis are merged we implement them in the BLK driver to guarantee that mmio aperture moves stay ordered with respect to incoming read/write requests, and that writes are flushed through those mmio-windows and platform-buffers to be persistent on media. These pass the sub-system unit tests with the updates to tools/testing/nvdimm, and have received a successful build-report from the kbuild robot (468 configs). With acks from Rafael for the touches to drivers/acpi/" * 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/nvdimm: nfit: add support for NVDIMM "latch" flag nfit: update block I/O path to use PMEM API tools/testing/nvdimm: add mock acpi_nfit_flush_address entries to nfit_test tools/testing/nvdimm: fix return code for unimplemented commands tools/testing/nvdimm: mock ioremap_wt pmem: add maintainer for include/linux/pmem.h nfit: fix smatch "use after null check" report nvdimm: Fix return value of nvdimm_bus_init() if class_create() fails libnvdimm: smatch cleanups in __nd_ioctl sparse: fix misplaced __pmem definition commit cffc3374e567ef42954f3c7070b3fa83f20f9684 Author: Filipe Manana Date: Thu Jul 9 13:13:44 2015 +0100 Btrfs: fix order by which delayed references are run When we have an extent that got N references removed and N new references added in the same transaction, we must run the insertion of the references first because otherwise the last removed reference will remove the extent item from the extent tree, resulting in a failure for the insertions. This is a regression introduced in the 4.2-rc1 release and this fix just brings back the behaviour of selecting reference additions before any reference removals. 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() { _cleanup_flakey rm -f $tmp.* } # get standard environment, filters and checks . ./common/rc . ./common/filter . ./common/dmflakey # real QA test starts here _need_to_be_root _supported_fs btrfs _supported_os Linux _require_scratch _require_dm_flakey _require_cloner _require_metadata_journaling $SCRATCH_DEV rm -f $seqres.full _scratch_mkfs >>$seqres.full 2>&1 _init_flakey _mount_flakey # Create prealloc extent covering range [160K, 620K[ $XFS_IO_PROG -f -c "falloc 160K 460K" $SCRATCH_MNT/foo # Now write to the last 80K of the prealloc extent plus 40K to the unallocated # space that immediately follows it. This creates a new extent of 40K that spans # the range [620K, 660K[. $XFS_IO_PROG -c "pwrite -S 0xaa 540K 120K" $SCRATCH_MNT/foo | _filter_xfs_io # At this point, there are now 2 back references to the prealloc extent in our # extent tree. Both are for our file offset 160K and one relates to a file # extent item with a data offset of 0 and a length of 380K, while the other # relates to a file extent item with a data offset of 380K and a length of 80K. # Make sure everything done so far is durably persisted (all back references are # in the extent tree, etc). sync # Now clone all extents of our file that cover the offset 160K up to its eof # (660K at this point) into itself at offset 2M. This leaves a hole in the file # covering the range [660K, 2M[. The prealloc extent will now be referenced by # the file twice, once for offset 160K and once for offset 2M. The 40K extent # that follows the prealloc extent will also be referenced twice by our file, # once for offset 620K and once for offset 2M + 460K. $CLONER_PROG -s $((160 * 1024)) -d $((2 * 1024 * 1024)) -l 0 $SCRATCH_MNT/foo \ $SCRATCH_MNT/foo # Now create one new extent in our file with a size of 100Kb. It will span the # range [3M, 3M + 100K[. It also will cause creation of a hole spanning the # range [2M + 460K, 3M[. Our new file size is 3M + 100K. $XFS_IO_PROG -c "pwrite -S 0xbb 3M 100K" $SCRATCH_MNT/foo | _filter_xfs_io # At this point, there are now (in memory) 4 back references to the prealloc # extent. # # Two of them are for file offset 160K, related to file extent items # matching the file offsets 160K and 540K respectively, with data offsets of # 0 and 380K respectively, and with lengths of 380K and 80K respectively. # # The other two references are for file offset 2M, related to file extent items # matching the file offsets 2M and 2M + 380K respectively, with data offsets of # 0 and 380K respectively, and with lengths of 389K and 80K respectively. # # The 40K extent has 2 back references, one for file offset 620K and the other # for file offset 2M + 460K. # # The 100K extent has a single back reference and it relates to file offset 3M. # Now clone our 100K extent into offset 600K. That offset covers the last 20K # of the prealloc extent, the whole 40K extent and 40K of the hole starting at # offset 660K. $CLONER_PROG -s $((3 * 1024 * 1024)) -d $((600 * 1024)) -l $((100 * 1024)) \ $SCRATCH_MNT/foo $SCRATCH_MNT/foo # At this point there's only one reference to the 40K extent, at file offset # 2M + 460K, we have 4 references for the prealloc extent (2 for file offset # 160K and 2 for file offset 2M) and 2 references for the 100K extent (1 for # file offset 3M and a new one for file offset 600K). # Now fsync our file to make all its new data and metadata updates are durably # persisted and present if a power failure/crash happens after a successful # fsync and before the next transaction commit. $XFS_IO_PROG -c "fsync" $SCRATCH_MNT/foo echo "File digest before power failure:" md5sum $SCRATCH_MNT/foo | _filter_scratch # Silently drop all writes and ummount to simulate a crash/power failure. _load_flakey_table $FLAKEY_DROP_WRITES _unmount_flakey # Allow writes again, mount to trigger log replay and validate file contents. # During log replay, the btrfs delayed references implementation used to run the # deletion of back references before the addition of new back references, which # made the addition fail as it didn't find the key in the extent tree that it # was looking for. The failure triggered by this test was related to the 40K # extent, which got 1 reference dropped and 1 reference added during the fsync # log replay - when running the delayed references at transaction commit time, # btrfs was applying the deletion before the insertion, resulting in a failure # of the insertion that ended up turning the fs into read-only mode. _load_flakey_table $FLAKEY_ALLOW_WRITES _mount_flakey echo "File digest after log replay:" md5sum $SCRATCH_MNT/foo | _filter_scratch _unmount_flakey status=0 exit This issue turned the filesystem into read-only mode (current transaction aborted) and produced the following traces: [ 8247.578385] ------------[ cut here ]------------ [ 8247.579947] WARNING: CPU: 0 PID: 11341 at fs/btrfs/extent-tree.c:1547 lookup_inline_extent_backref+0x17d/0x45d [btrfs]() (...) [ 8247.601697] Call Trace: [ 8247.602222] [] dump_stack+0x4f/0x7b [ 8247.604320] [] warn_slowpath_common+0xa1/0xbb [ 8247.605488] [] ? lookup_inline_extent_backref+0x17d/0x45d [btrfs] [ 8247.608226] [] lookup_inline_extent_backref+0x17d/0x45d [btrfs] [ 8247.617061] [] insert_inline_extent_backref+0x41/0xb2 [btrfs] [ 8247.621856] [] __btrfs_inc_extent_ref+0x8c/0x20a [btrfs] [ 8247.624366] [] __btrfs_run_delayed_refs+0xb0c/0xd49 [btrfs] [ 8247.626176] [] btrfs_run_delayed_refs+0x6d/0x1d4 [btrfs] [ 8247.627435] [] ? __cache_free+0x4a7/0x4b6 [ 8247.628531] [] btrfs_commit_transaction+0x4c/0xa20 [btrfs] (...) [ 8247.648430] ---[ end trace 2461e55f92c2ac2d ]--- [ 8247.727263] WARNING: CPU: 3 PID: 11341 at fs/btrfs/extent-tree.c:2771 btrfs_run_delayed_refs+0xa4/0x1d4 [btrfs]() [ 8247.728954] BTRFS: Transaction aborted (error -5) (...) [ 8247.760866] Call Trace: [ 8247.761534] [] dump_stack+0x4f/0x7b [ 8247.764271] [] warn_slowpath_common+0xa1/0xbb [ 8247.767582] [] ? btrfs_run_delayed_refs+0xa4/0x1d4 [btrfs] [ 8247.769373] [] warn_slowpath_fmt+0x46/0x48 [ 8247.770836] [] btrfs_run_delayed_refs+0xa4/0x1d4 [btrfs] [ 8247.772532] [] ? __cache_free+0x4a7/0x4b6 [ 8247.773664] [] btrfs_commit_transaction+0x4c/0xa20 [btrfs] [ 8247.775047] [] ? trace_hardirqs_on+0xd/0xf [ 8247.776176] [] ? kmem_cache_free+0x12b/0x189 [ 8247.777427] [] btrfs_recover_log_trees+0x2da/0x33d [btrfs] [ 8247.778575] [] ? replay_one_extent+0x4fc/0x4fc [btrfs] [ 8247.779838] [] open_ctree+0x1cc0/0x201a [btrfs] [ 8247.781020] [] ? register_shrinker+0x56/0x81 [ 8247.782285] [] btrfs_mount+0x5f0/0x734 [btrfs] (...) [ 8247.793394] ---[ end trace 2461e55f92c2ac2e ]--- [ 8247.794276] BTRFS: error (device dm-0) in btrfs_run_delayed_refs:2771: errno=-5 IO failure [ 8247.797335] BTRFS: error (device dm-0) in btrfs_replay_log:2375: errno=-5 IO failure (Failed to recover log tree) Fixes: c6fc24549960 ("btrfs: delayed-ref: Use list to replace the ref_root in ref_head.") Signed-off-by: Filipe Manana Acked-by: Qu Wenruo fs/btrfs/extent-tree.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit d3efe08400317888f559bbedf0e42cd31575d0ef Author: Filipe Manana Date: Fri Jul 3 20:30:34 2015 +0100 Btrfs: fix list transaction->pending_ordered corruption When we call btrfs_commit_transaction(), we splice the list "ordered" of our transaction handle into the transaction's "pending_ordered" list, but we don't re-initialize the "ordered" list of our transaction handle, this means it still points to the same elements it used to before the splice. Then we check if the current transaction's state is >= TRANS_STATE_COMMIT_START and if it is we end up calling btrfs_end_transaction() which simply splices again the "ordered" list of our handle into the transaction's "pending_ordered" list, leaving multiple pointers to the same ordered extents which results in list corruption when we are iterating, removing and freeing ordered extents at btrfs_wait_pending_ordered(), resulting in access to dangling pointers / use-after-free issues. Similarly, btrfs_end_transaction() can end up in some cases calling btrfs_commit_transaction(), and both did a list splice of the transaction handle's "ordered" list into the transaction's "pending_ordered" without re-initializing the handle's "ordered" list, resulting in exactly the same problem. This produces the following warning on a kernel with linked list debugging enabled: [109749.265416] ------------[ cut here ]------------ [109749.266410] WARNING: CPU: 7 PID: 324 at lib/list_debug.c:59 __list_del_entry+0x5a/0x98() [109749.267969] list_del corruption. prev->next should be ffff8800ba087e20, but was fffffff8c1f7c35d (...) [109749.287505] Call Trace: [109749.288135] [] dump_stack+0x4f/0x7b [109749.298080] [] ? console_unlock+0x356/0x3a2 [109749.331605] [] warn_slowpath_common+0xa1/0xbb [109749.334849] [] ? __list_del_entry+0x5a/0x98 [109749.337093] [] warn_slowpath_fmt+0x46/0x48 [109749.337847] [] __list_del_entry+0x5a/0x98 [109749.338678] [] btrfs_wait_pending_ordered+0x46/0xdb [btrfs] [109749.340145] [] ? __btrfs_run_delayed_items+0x149/0x163 [btrfs] [109749.348313] [] btrfs_commit_transaction+0x36b/0xa10 [btrfs] [109749.349745] [] ? trace_hardirqs_on+0xd/0xf [109749.350819] [] btrfs_sync_file+0x36f/0x3fc [btrfs] [109749.351976] [] vfs_fsync_range+0x8f/0x9e [109749.360341] [] vfs_fsync+0x1c/0x1e [109749.368828] [] do_fsync+0x34/0x4e [109749.369790] [] SyS_fsync+0x10/0x14 [109749.370925] [] system_call_fastpath+0x12/0x6f [109749.382274] ---[ end trace 48e0d07f7c03d95a ]--- On a non-debug kernel this leads to invalid memory accesses, causing a crash. Fix this by using list_splice_init() instead of list_splice() in btrfs_commit_transaction() and btrfs_end_transaction(). Cc: stable@vger.kernel.org Fixes: 50d9aa99bd35 ("Btrfs: make sure logged extents complete in the current transaction V3" Signed-off-by: Filipe Manana Reviewed-by: David Sterba fs/btrfs/transaction.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 497b4050e0eacd4c746dd396d14916b1e669849d Author: Filipe Manana Date: Fri Jul 3 08:36:11 2015 +0100 Btrfs: fix memory leak in the extent_same ioctl We were allocating memory with memdup_user() but we were never releasing that memory. This affected pretty much every call to the ioctl, whether it deduplicated extents or not. This issue was reported on IRC by Julian Taylor and on the mailing list by Marcel Ritter, credit goes to them for finding the issue. Reported-by: Julian Taylor Reported-by: Marcel Ritter Cc: stable@vger.kernel.org Signed-off-by: Filipe Manana Reviewed-by: Mark Fasheh fs/btrfs/ioctl.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit c1aa45759e90b4204ab8bce027a925fc7c87d00a Author: Filipe Manana Date: Sat Jun 20 18:20:09 2015 +0100 Btrfs: fix shrinking truncate when the no_holes feature is enabled If the no_holes feature is enabled, we attempt to shrink a file to a size that ends up in the middle of a hole and we don't have any file extent items in the fs/subvol tree that go beyond the new file size (or any ordered extents that will insert such file extent items), we end up not updating the inode's disk_i_size, we only update the inode's i_size. This means that after unmounting and mounting the filesystem, or after the inode is evicted and reloaded, its i_size ends up being incorrect (an inode's i_size is set to the disk_i_size field when an inode is loaded). This happens when btrfs_truncate_inode_items() doesn't find any file extent items to drop - in this case it never makes a call to btrfs_ordered_update_i_size() in order to update the inode's disk_i_size. Example reproducer: $ mkfs.btrfs -O no-holes -f /dev/sdd $ mount /dev/sdd /mnt # Create our test file with some data and durably persist it. $ xfs_io -f -c "pwrite -S 0xaa 0 128K" /mnt/foo $ sync # Append some data to the file, increasing its size, and leave a hole # between the old size and the start offset if the following write. So # our file gets a hole in the range [128Kb, 256Kb[. $ xfs_io -c "truncate 160K" /mnt/foo # We expect to see our file with a size of 160Kb, with the first 128Kb # of data all having the value 0xaa and the remaining 32Kb of data all # having the value 0x00. $ od -t x1 /mnt/foo 0000000 aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa * 0400000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 * 0500000 # Now cleanly unmount and mount again the filesystem. $ umount /mnt $ mount /dev/sdd /mnt # We expect to get the same result as before, a file with a size of # 160Kb, with the first 128Kb of data all having the value 0xaa and the # remaining 32Kb of data all having the value 0x00. $ od -t x1 /mnt/foo 0000000 aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa * 0400000 In the example above the file size/data do not match what they were before the remount. Fix this by always calling btrfs_ordered_update_i_size() with a size matching the size the file was truncated to if btrfs_truncate_inode_items() is not called for a log tree and no file extent items were dropped. This ensures the same behaviour as when the no_holes feature is not enabled. A test case for fstests follows soon. Signed-off-by: Filipe Manana fs/btrfs/inode.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit e49251988b10e8787baa5f3d8ffd154e003f0963 Merge: 8a7b8ff 4f001fd Author: Linus Torvalds Date: Sat Jul 11 11:24:15 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: "Mostly slight adjusments for new drivers, but also one core fix for which finally the dependencies are now available as well" * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: i2c: Mark instantiated device nodes with OF_POPULATE i2c: jz4780: Fix return value if probe fails i2c: xgene-slimpro: Fix missing mbox_free_channel call in probe error path i2c: I2C_MT65XX should depend on HAS_DMA commit 8a7b8ff41ddc811f3e06d0bf6892bc3e2b1764b7 Merge: 4322f02 dbf3c37 Author: Linus Torvalds Date: Sat Jul 11 11:16:04 2015 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input Pull input fixes from Dmitry Torokhov: "A fix (revert) for a recent regression in Synaptics driver and a fix for Elan i2c touchpad driver" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: Revert "Input: synaptics - allocate 3 slots to keep stability in image sensors" Input: elan_i2c - change the hover event from MT to ST commit 4322f028477d4c84f12fa9aa21809300855ff953 Merge: 9cb1680 56551da Author: Linus Torvalds Date: Sat Jul 11 11:08:21 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 small set of fixes for problems found by smatch in new drivers that we added this rc and a handful of driver fixes that came in during the merge window" * tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: drivers: clk: st: Incorrect register offset used for lock_status clk: mediatek: mt8173: Fix enabling of critical clocks drivers: clk: st: Fix mux bit-setting for Cortex A9 clocks drivers: clk: st: Add CLK_GET_RATE_NOCACHE flag to clocks drivers: clk: st: Fix flexgen lock init drivers: clk: st: Fix FSYN channel values drivers: clk: st: Remove unused code clk: qcom: Use parent rate when set rate to pixel RCG clock clk: at91: do not leak resources clk: stm32: Fix out-by-one error path in the index lookup clk: iproc: fix bit manipulation arithmetic clk: iproc: fix memory leak from clock name commit 9cb1680c20037e54f202956adabc446c499b9b1e Merge: 2278cb0 2d28b63 Author: Linus Torvalds Date: Sat Jul 11 11:02:51 2015 -0700 Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux Pull drm fixes from Dave Airlie: "A bunch of fixes for radeon, intel, omap and one amdkfd fix. Radeon fixes are all over, but it does fix some cursor corruption across suspend/resume. i915 should fix the second warn you were seeing, so let us know if not. omap is a bunch of small fixes" * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: (28 commits) drm/radeon: disable vce init on cayman (v2) drm/amdgpu: fix timeout calculation drm/radeon: check if BO_VA is set before adding it to the invalidation list drm/radeon: allways add the VM clear duplicate Revert "Revert "drm/radeon: dont switch vt on suspend"" drm/radeon: Fold radeon_set_cursor() into radeon_show_cursor() drm/radeon: unpin cursor BOs on suspend and pin them again on resume (v2) drm/radeon: Clean up reference counting and pinning of the cursor BOs drm/amdkfd: validate pdd where it acquired first Revert "drm/i915: Allocate context objects from stolen" drm/i915: Declare the swizzling unknown for L-shaped configurations drm/radeon: fix underflow in r600_cp_dispatch_texture() drm/radeon: default to 2048 MB GART size on SI+ drm/radeon: fix HDP flushing drm/radeon: use RCU query for GEM_BUSY syscall drm/amdgpu: Handle irqs only based on irq ring, not irq status regs. drm/radeon: Handle irqs only based on irq ring, not irq status regs. drm/i915: Use crtc_state->active in primary check_plane func drm/i915: Check crtc->active in intel_crtc_disable_planes drm/i915: Restore all GGTT VMAs on resume ... commit 2278cb0bb3a177d3a3ef0bd332916180cb2f2121 Merge: 31b7a57 3dbbbe0 Author: Linus Torvalds Date: Sat Jul 11 10:38:10 2015 -0700 Merge branch 'for-linus2' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security Pull selinux fixes from James Morris. * 'for-linus2' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: selinux: fix mprotect PROT_EXEC regression caused by mm change selinux: don't waste ebitmap space when importing NetLabel categories commit 31b7a57c9eb3d90c87b6c2b855720ec709d2f6be Merge: 84e3e9d 9689457 Author: Linus Torvalds Date: Sat Jul 11 10:26:34 2015 -0700 Merge branch 'for-linus-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs Pull btrfs fixes from Chris Mason: "This is an assortment of fixes. Most of the commits are from Filipe (fsync, the inode allocation cache and a few others). Mark kicked in a series fixing corners in the extent sharing ioctls, and everyone else fixed up on assorted other problems" * 'for-linus-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: Btrfs: fix wrong check for btrfs_force_chunk_alloc() Btrfs: fix warning of bytes_may_use Btrfs: fix hang when failing to submit bio of directIO Btrfs: fix a comment in inode.c:evict_inode_truncate_pages() Btrfs: fix memory corruption on failure to submit bio for direct IO btrfs: don't update mtime/ctime on deduped inodes btrfs: allow dedupe of same inode btrfs: fix deadlock with extent-same and readpage btrfs: pass unaligned length to btrfs_cmp_data() Btrfs: fix fsync after truncate when no_holes feature is enabled Btrfs: fix fsync xattr loss in the fast fsync path Btrfs: fix fsync data loss after append write Btrfs: fix crash on close_ctree() if cleaner starts new transaction Btrfs: fix race between caching kthread and returning inode to inode cache Btrfs: use kmem_cache_free when freeing entry in inode cache Btrfs: fix race between balance and unused block group deletion btrfs: add error handling for scrub_workers_get() btrfs: cleanup noused initialization of dev in btrfs_end_bio() btrfs: qgroup: allow user to clear the limitation on qgroup commit 84e3e9d04d5b5368a1c26f744a98c492052d0523 Merge: b9243b5 8dfbc0a Author: Linus Torvalds Date: Sat Jul 11 10:20:36 2015 -0700 Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Pull ARM SoC fixes from Kevin Hilman: "A fairly random colletion of fixes based on -rc1 for OMAP, sunxi and prima2 as well as a few arm64-specific DT fixes. This series also includes a late to support a new Allwinner (sunxi) SoC, but since it's rather simple and isolated to the platform-specific code, it's included it for this -rc" * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: arm64: dts: add device tree for ARM SMM-A53x2 on LogicTile Express 20MG arm: dts: vexpress: add missing CCI PMU device node to TC2 arm: dts: vexpress: describe all PMUs in TC2 dts GICv3: Add ITS entry to THUNDER dts arm64: dts: Add poweroff button device node for APM X-Gene platform ARM: dts: am4372.dtsi: disable rfbi ARM: dts: am57xx-beagle-x15: Provide supply for usb2_phy2 ARM: dts: am4372: Add emif node Revert "ARM: dts: am335x-boneblack: disable RTC-only sleep" ARM: sunxi: Enable simplefb in the defconfig ARM: Remove deprecated symbol from defconfig files ARM: sunxi: Add Machine support for A33 ARM: sunxi: Introduce Allwinner H3 support Documentation: sunxi: Update Allwinner SoC documentation ARM: prima2: move to use REGMAP APIs for rtciobrg ARM: dts: atlas7: add pinctrl and gpio descriptions ARM: OMAP2+: Remove unnessary return statement from the void function, omap2_show_dma_caps memory: omap-gpmc: Fix parsing of devices commit 7865598ec24ab4162d976d0bd75a9b2a2f58cd64 Author: Felix Fietkau Date: Sun Jun 21 19:47:46 2015 +0200 ath9k_hw: fix device ID check for AR956x Because of the missing return, the macVersion value was being overwritten with an invalid register read Signed-off-by: Felix Fietkau Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/hw.c | 1 + 1 file changed, 1 insertion(+) commit 77b5a08427e87514c33730afc18cd02c9475e2c3 Author: Jens Axboe Date: Fri Mar 6 08:37:46 2015 -0700 bcache: don't embed 'return' statements in closure macros This is horribly confusing, it breaks the flow of the code without it being apparent in the caller. Signed-off-by: Jens Axboe Acked-by: Christoph Hellwig drivers/md/bcache/closure.h | 3 --- drivers/md/bcache/io.c | 1 + drivers/md/bcache/journal.c | 2 ++ drivers/md/bcache/request.c | 14 +++++++++++--- 4 files changed, 14 insertions(+), 6 deletions(-) commit faa4a54f0be15b5d81b574fb5a40db24345d1a6c Author: Trond Myklebust Date: Thu Jul 9 18:24:07 2015 +0200 pNFS: Don't throw out valid layout segments It is OK for layout segments to remain hashed even if no-one holds any references to them, provided that the segments are still valid. Signed-off-by: Trond Myklebust fs/nfs/pnfs.c | 6 ++++++ 1 file changed, 6 insertions(+) commit bdc59cf233433ddd2cd671db02bd6b52323ce63d Author: Trond Myklebust Date: Thu Jul 9 23:54:09 2015 +0200 pNFS: pnfs_roc_drain() fix a race with open If a process reopens the file before we can send off the CLOSE/DELEGRETURN, then pnfs_roc_drain() may end up waiting for a new set of layout segments that are marked as return-on-close, but haven't yet been returned. Fix this by only waiting for those layout segments that were invalidated in pnfs_roc(). Signed-off-by: Trond Myklebust fs/nfs/pnfs.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) commit 7f27392cd4cbcadeeaff9eedebcaec8fae9aec8e Author: Trond Myklebust Date: Thu Jul 9 18:40:01 2015 +0200 pNFS: Fix races between return-on-close and layoutreturn. If one or more of the layout segments reports an error during I/O, then we may have to send a layoutreturn to report the error back to the NFS metadata server. This patch ensures that the return-on-close code can detect the outstanding layoutreturn, and not preempt it. Signed-off-by: Trond Myklebust fs/nfs/nfs4proc.c | 2 -- fs/nfs/pnfs.c | 63 ++++++++++++++++++++++++++++++------------------------- 2 files changed, 35 insertions(+), 30 deletions(-) commit df9cecc1a36d70ec09d34e83bad452064754fdc4 Author: Trond Myklebust Date: Thu Jul 9 23:38:11 2015 +0200 pNFS: pnfs_roc_drain should return 'true' when sleeping Also clean up the case where we don't find a return-on-close layout segment. Signed-off-by: Trond Myklebust fs/nfs/pnfs.c | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) commit c5d73716e95d510c0655272ce44f318932309cb1 Author: Trond Myklebust Date: Thu Jul 9 17:58:39 2015 +0200 pNFS: Layoutreturn must invalidate all existing layout segments. Signed-off-by: Trond Myklebust fs/nfs/nfs4proc.c | 3 +++ 1 file changed, 3 insertions(+) commit c4d029f2d43b39de7b9299e8b58102a442ba86f8 Author: Thomas Gleixner Date: Sat Jul 11 14:26:34 2015 +0200 tick/broadcast: Prevent NULL pointer dereference Dan reported that the recent changes to the broadcast code introduced a potential NULL dereference. Add the proper check. Fixes: e0454311903d "tick/broadcast: Sanity check the shutdown of the local clock_event" Reported-by: Dan Carpenter Signed-off-by: Thomas Gleixner kernel/time/tick-broadcast.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) commit 145c37084e3e6584b95f82361922965cc3af41bf Author: Masanari Iida Date: Fri Jul 10 21:20:28 2015 +0900 Doc: z8530book: Fix typo in API-z8530-sync-txdma-open.html This patch fix a spelling typo found in API-z8530-sync-txdma-open.html. It is because this file was generated from comment in source, I have to fix comment in source. Signed-off-by: Masanari Iida Signed-off-by: David S. Miller drivers/net/wan/z85230.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8220ea23243178c16b87fc3ccadf071647b64e04 Author: Phil Sutter Date: Fri Jul 10 11:39:57 2015 +0200 net: inet_diag: always export IPV6_V6ONLY sockopt for listening sockets Reconsidering my commit 20462155 "net: inet_diag: export IPV6_V6ONLY sockopt", I am not happy with the limitations it causes for socket analysing code in userspace. Exporting the value only if it is set makes it hard for userspace to decide whether the option is not set or the kernel does not support exporting the option at all. >From an auditor's perspective, the interesting question for listening AF_INET6 sockets is: "Does it NOT have IPV6_V6ONLY set?" Because it is the unexpected case. This patch allows to answer this question reliably. Signed-off-by: Phil Sutter Cc: Eric Dumazet Signed-off-by: David S. Miller net/ipv4/inet_diag.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 51ed7f3e7d33824820837ad784801973f147c51a Author: Satish Ashok Date: Thu Jul 9 04:12:45 2015 -0700 bridge: mdb: allow the user to delete mdb entry if there's a querier Until now when a querier was present static entries couldn't be deleted. Fix this and allow the user to manipulate the mdb with or without a querier. Signed-off-by: Satish Ashok Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller net/bridge/br_mdb.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) commit 7234e030194ccc27c48d3bde1ad66e1729c55a7d Merge: a7d35f9 2c17d27 Author: David S. Miller Date: Fri Jul 10 18:16:37 2015 -0700 Merge branch 'netdev_unregister_races' Julian Anastasov says: ==================== net: fixes for device unregistration Test script from Eric W. Biederman can catch a problem where packets from backlog are processed long after the last synchronize_net call. This can be reproduced after few tests if commit 381c759d9916 ("ipv4: Avoid crashing in ip_error") is reverted for the test. Incoming packets do not hold reference to device but even if they do, subsystems do not expect packets to fly during and after the NETDEV_UNREGISTER event. The first fix has the cost of netif_running check in fast path. The second fix calls rcu_read_lock while local IRQ is disabled, I hope this is not against the rules. ==================== Signed-off-by: David S. Miller commit 2c17d27c36dcce2b6bf689f41a46b9e909877c21 Author: Julian Anastasov Date: Thu Jul 9 09:59:10 2015 +0300 net: call rcu_read_lock early in process_backlog Incoming packet should be either in backlog queue or in RCU read-side section. Otherwise, the final sequence of flush_backlog() and synchronize_net() may miss packets that can run without device reference: CPU 1 CPU 2 skb->dev: no reference process_backlog:__skb_dequeue process_backlog:local_irq_enable on_each_cpu for flush_backlog => IPI(hardirq): flush_backlog - packet not found in backlog CPU delayed ... synchronize_net - no ongoing RCU read-side sections netdev_run_todo, rcu_barrier: no ongoing callbacks __netif_receive_skb_core:rcu_read_lock - too late free dev process packet for freed dev Fixes: 6e583ce5242f ("net: eliminate refcounting in backlog queue") Cc: Eric W. Biederman Cc: Stephen Hemminger Signed-off-by: Julian Anastasov Signed-off-by: David S. Miller net/core/dev.c | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) commit e9e4dd3267d0c5234c5c0f47440456b10875dec9 Author: Julian Anastasov Date: Thu Jul 9 09:59:09 2015 +0300 net: do not process device backlog during unregistration commit 381c759d9916 ("ipv4: Avoid crashing in ip_error") fixes a problem where processed packet comes from device with destroyed inetdev (dev->ip_ptr). This is not expected because inetdev_destroy is called in NETDEV_UNREGISTER phase and packets should not be processed after dev_close_many() and synchronize_net(). Above fix is still required because inetdev_destroy can be called for other reasons. But it shows the real problem: backlog can keep packets for long time and they do not hold reference to device. Such packets are then delivered to upper levels at the same time when device is unregistered. Calling flush_backlog after NETDEV_UNREGISTER_FINAL still accounts all packets from backlog but before that some packets continue to be delivered to upper levels long after the synchronize_net call which is supposed to wait the last ones. Also, as Eric pointed out, processed packets, mostly from other devices, can continue to add new packets to backlog. Fix the problem by moving flush_backlog early, after the device driver is stopped and before the synchronize_net() call. Then use netif_running check to make sure we do not add more packets to backlog. We have to do it in enqueue_to_backlog context when the local IRQ is disabled. As result, after the flush_backlog and synchronize_net sequence all packets should be accounted. Thanks to Eric W. Biederman for the test script and his valuable feedback! Reported-by: Vittorio Gambaletta Fixes: 6e583ce5242f ("net: eliminate refcounting in backlog queue") Cc: Eric W. Biederman Cc: Stephen Hemminger Signed-off-by: Julian Anastasov Signed-off-by: David S. Miller net/core/dev.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit b9243b5a5d2da4eb0a54950f4e2d6272863b48be Merge: 1604f87 01ab605 Author: Linus Torvalds Date: Fri Jul 10 16:54:37 2015 -0700 Merge branch 'parisc-4.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux Pull parisc fixes from Helge Deller: "We have one important patch from Dave Anglin and myself which fixes PTE/TLB race conditions which caused random segmentation faults on our debian buildd servers, and one patch from Alex Ivanov which speeds up the graphical text console on the STI framebuffer driver" * 'parisc-4.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux: parisc: Fix some PTE/TLB race conditions and optimize __flush_tlb_range based on timing results stifb: Implement hardware accelerated copyarea commit 3dbbbe0eb6e949409d215f660cfad782aa541a4b Merge: 1604f87 892e8ca Author: James Morris Date: Sat Jul 11 09:13:45 2015 +1000 Merge branch 'upstream' of git://git.infradead.org/users/pcmoore/selinux into for-linus2 commit 892e8cac99a71f6254f84fc662068d912e1943bf Author: Stephen Smalley Date: Fri Jul 10 09:40:59 2015 -0400 selinux: fix mprotect PROT_EXEC regression caused by mm change commit 66fc13039422ba7df2d01a8ee0873e4ef965b50b ("mm: shmem_zero_setup skip security check and lockdep conflict with XFS") caused a regression for SELinux by disabling any SELinux checking of mprotect PROT_EXEC on shared anonymous mappings. However, even before that regression, the checking on such mprotect PROT_EXEC calls was inconsistent with the checking on a mmap PROT_EXEC call for a shared anonymous mapping. On a mmap, the security hook is passed a NULL file and knows it is dealing with an anonymous mapping and therefore applies an execmem check and no file checks. On a mprotect, the security hook is passed a vma with a non-NULL vm_file (as this was set from the internally-created shmem file during mmap) and therefore applies the file-based execute check and no execmem check. Since the aforementioned commit now marks the shmem zero inode with the S_PRIVATE flag, the file checks are disabled and we have no checking at all on mprotect PROT_EXEC. Add a test to the mprotect hook logic for such private inodes, and apply an execmem check in that case. This makes the mmap and mprotect checking consistent for shared anonymous mappings, as well as for /dev/zero and ashmem. Cc: # 4.1.x Signed-off-by: Stephen Smalley Signed-off-by: Paul Moore security/selinux/hooks.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 1604f8719a2dba692c12d333104fcc92613003af Merge: 3cdeb9d ad2daa8 Author: Linus Torvalds Date: Fri Jul 10 12:49:56 2015 -0700 Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux Pull arm64 fixes and clean-up from Catalin Marinas: - ACPI fix when checking the validity of the GICC MADT subtable - handle debug exceptions in the el*_inv exception entries - remove pointless register assignment in two compat syscall wrappers - unnecessary include path - defconfig update * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: arm64: entry32: remove pointless register assignment arm64: entry: handle debug exceptions in el*_inv arm64: Keep the ARM64 Kconfig selects sorted ACPI / ARM64 : use the new BAD_MADT_GICC_ENTRY macro ACPI / ARM64: add BAD_MADT_GICC_ENTRY() macro arm64: defconfig: Add Ceva ahci to the defconfig arm64: remove another unnecessary libfdt include path commit 01ab60570427caa24b9debc369e452e86cd9beb4 Author: John David Anglin Date: Wed Jul 1 17:18:37 2015 -0400 parisc: Fix some PTE/TLB race conditions and optimize __flush_tlb_range based on timing results The increased use of pdtlb/pitlb instructions seemed to increase the frequency of random segmentation faults building packages. Further, we had a number of cases where TLB inserts would repeatedly fail and all forward progress would stop. The Haskell ghc package caused a lot of trouble in this area. The final indication of a race in pte handling was this syslog entry on sibaris (C8000): swap_free: Unused swap offset entry 00000004 BUG: Bad page map in process mysqld pte:00000100 pmd:019bbec5 addr:00000000ec464000 vm_flags:00100073 anon_vma:0000000221023828 mapping: (null) index:ec464 CPU: 1 PID: 9176 Comm: mysqld Not tainted 4.0.0-2-parisc64-smp #1 Debian 4.0.5-1 Backtrace: [<0000000040173eb0>] show_stack+0x20/0x38 [<0000000040444424>] dump_stack+0x9c/0x110 [<00000000402a0d38>] print_bad_pte+0x1a8/0x278 [<00000000402a28b8>] unmap_single_vma+0x3d8/0x770 [<00000000402a4090>] zap_page_range+0xf0/0x198 [<00000000402ba2a4>] SyS_madvise+0x404/0x8c0 Note that the pte value is 0 except for the accessed bit 0x100. This bit shouldn't be set without the present bit. It should be noted that the madvise system call is probably a trigger for many of the random segmentation faults. In looking at the kernel code, I found the following problems: 1) The pte_clear define didn't take TLB lock when clearing a pte. 2) We didn't test pte present bit inside lock in exception support. 3) The pte and tlb locks needed to merged in order to ensure consistency between page table and TLB. This also has the effect of serializing TLB broadcasts on SMP systems. The attached change implements the above and a few other tweaks to try to improve performance. Based on the timing code, TLB purges are very slow (e.g., ~ 209 cycles per page on rp3440). Thus, I think it beneficial to test the split_tlb variable to avoid duplicate purges. Probably, all PA 2.0 machines have combined TLBs. I dropped using __flush_tlb_range in flush_tlb_mm as I realized all applications and most threads have a stack size that is too large to make this useful. I added some comments to this effect. Since implementing 1 through 3, I haven't had any random segmentation faults on mx3210 (rp3440) in about one week of building code and running as a Debian buildd. Signed-off-by: John David Anglin Cc: stable@vger.kernel.org # v3.18+ Signed-off-by: Helge Deller arch/parisc/include/asm/pgtable.h | 55 +++++++++---- arch/parisc/include/asm/tlbflush.h | 53 ++++++------ arch/parisc/kernel/cache.c | 105 +++++++++++++++--------- arch/parisc/kernel/entry.S | 163 ++++++++++++++++++------------------- arch/parisc/kernel/traps.c | 4 - 5 files changed, 212 insertions(+), 168 deletions(-) commit cb908ed3495496b9973a2b9ed1a60f43933fdf01 Author: Alex Ivanov Date: Mon Jun 15 08:50:45 2015 +0300 stifb: Implement hardware accelerated copyarea This patch adds hardware assisted scrolling. The code is based upon the following investigation: https://parisc.wiki.kernel.org/index.php/NGLE#Blitter A simple 'time ls -la /usr/bin' test shows 1.6x speed increase over soft copy and 2.3x increase over FBINFO_READS_FAST (prefer soft copy over screen redraw) on Artist framebuffer. Signed-off-by: Alex Ivanov Signed-off-by: Helge Deller drivers/video/fbdev/stifb.c | 40 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) commit 51f007e1a1f11d5aaa189c1a5cfbae0e8793fe50 Merge: d4669bb d23f47d Author: Greg Kroah-Hartman Date: Fri Jul 10 12:35:14 2015 -0700 Merge tag 'usb-serial-4.2-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial into usb-linus Johan writes: USB-serial fixes for v4.2-rc2 Here's an idr memory-leak fix and a couple of new device ids. Included is also a build fix for mos7720 on the mn10300 architecture, which has a register with the same name as one of the driver defines. Signed-off-by: Johan Hovold commit 3cdeb9d15149a543f690ac9b2fccb128496dfb06 Merge: c4b5fd3 2c069a1 Author: Linus Torvalds Date: Fri Jul 10 12:16:59 2015 -0700 Merge tag 'powerpc-4.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux Pull powerpc fixes from Michael Ellerman: - opal-prd mmap fix from Vaidy - set kernel taint for MCEs from Daniel - alignment exception description from Anton - ppc4xx_hsta_msi build fix from Daniel - opal-elog interrupt fix from Alistair - core_idle_state race fix from Shreyas - hv-24x7 lockdep fix from Sukadev - multiple cxl fixes from Daniel, Ian, Mikey & Maninder - update MAINTAINERS to point at shared tree * tag 'powerpc-4.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: cxl: Check if afu is not null in cxl_slbia powerpc: Update MAINTAINERS to point at shared tree powerpc/perf/24x7: Fix lockdep warning cxl: Fix off by one error allowing subsequent mmap page to be accessed cxl: Fail mmap if requested mapping is larger than assigned problem state area cxl: Fix refcounting in kernel API powerpc/powernv: Fix race in updating core_idle_state powerpc/powernv: Fix opal-elog interrupt handler powerpc/ppc4xx_hsta_msi: Include ppc-pci.h to fix reference to hose_list powerpc: Add plain English description for alignment exception oopses cxl: Test the correct mmio space before unmapping powerpc: Set the correct kernel taint on machine check errors cxl/vphb.c: Use phb pointer after NULL check powerpc/powernv: Fix vma page prot flags in opal-prd driver commit f0f2c072cf530d5b8890be5051cc8b36b0c54cce Author: Ross Zwisler Date: Fri Jul 10 11:06:14 2015 -0600 nfit: add support for NVDIMM "latch" flag Add support in the NFIT BLK I/O path for the "latch" flag defined in the "Get Block NVDIMM Flags" _DSM function: http://pmem.io/documents/NVDIMM_DSM_Interface_Example.pdf This flag requires the driver to read back the command register after it is written in the block I/O path. This ensures that the hardware has fully processed the new command and moved the aperture appropriately. Signed-off-by: Ross Zwisler Acked-by: Rafael J. Wysocki Signed-off-by: Dan Williams drivers/acpi/nfit.c | 33 ++++++++++++++++++++++++++++++++- drivers/acpi/nfit.h | 5 +++++ 2 files changed, 37 insertions(+), 1 deletion(-) commit c2ad29540cb913bd9e526fae77c35c7fb45f24a3 Author: Ross Zwisler Date: Fri Jul 10 11:06:13 2015 -0600 nfit: update block I/O path to use PMEM API Update the nfit block I/O path to use the new PMEM API and to adhere to the read/write flows outlined in the "NVDIMM Block Window Driver Writer's Guide": http://pmem.io/documents/NVDIMM_Driver_Writers_Guide.pdf This includes adding support for targeted NVDIMM flushes called "flush hints" in the ACPI 6.0 specification: http://www.uefi.org/sites/default/files/resources/ACPI_6.0.pdf For performance and media durability the mapping for a BLK aperture is moved to a write-combining mapping which is consistent with memcpy_to_pmem() and wmb_blk(). Signed-off-by: Ross Zwisler Acked-by: Rafael J. Wysocki Signed-off-by: Dan Williams drivers/acpi/nfit.c | 97 +++++++++++++++++++++++++++++++++++++++++++++++------ drivers/acpi/nfit.h | 15 ++++++++- 2 files changed, 100 insertions(+), 12 deletions(-) commit 9d27a87ec9e1317d368b1e5e3f4808078baa8c4c Author: Dan Williams Date: Fri Jul 10 14:07:03 2015 -0400 tools/testing/nvdimm: add mock acpi_nfit_flush_address entries to nfit_test In preparation for fixing the BLK path to properly use "directed pcommit" enable the unit test infrastructure to emit mock "flush" tables. Writes to these flush addresses trigger a memory controller to flush its internal buffers to persistent media, similar to the x86 "pcommit" instruction. Signed-off-by: Dan Williams tools/testing/nvdimm/Kbuild | 2 ++ tools/testing/nvdimm/test/iomap.c | 21 ++++++++++++++++ tools/testing/nvdimm/test/nfit.c | 50 +++++++++++++++++++++++++++++++++++++-- 3 files changed, 71 insertions(+), 2 deletions(-) commit f7ec83684af020c961d7fab801f8e3ef7ce5de33 Author: Dan Williams Date: Fri Jul 10 11:06:12 2015 -0600 tools/testing/nvdimm: fix return code for unimplemented commands The implementation for the new "DIMM Flags" DSM relies on the -ENOTTY return code to indicate that the flags are unimplimented and to fall back to a safe default. As is the -ENXIO error code erroneoously indicates to fail enabling a BLK region. Signed-off-by: Dan Williams tools/testing/nvdimm/test/nfit.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b1b2e6235a44174151fa3bb22657f74972635618 Author: Dan Williams Date: Fri Jul 10 11:06:11 2015 -0600 tools/testing/nvdimm: mock ioremap_wt In the 4.2-rc1 merge the default_memremap_pmem() implementation switched from ioremap_nocache() to ioremap_wt(). Add it to the list of mocked routines to restore the ability to run the unit tests. Signed-off-by: Dan Williams tools/testing/nvdimm/Kbuild | 1 + tools/testing/nvdimm/test/iomap.c | 6 ++++++ 2 files changed, 7 insertions(+) commit b864bc17f1c326783f2388057e15d3e153125ab9 Author: Ross Zwisler Date: Fri Jul 10 11:06:10 2015 -0600 pmem: add maintainer for include/linux/pmem.h The file include/linux/pmem.h was recently created to hold the PMEM API, and is logically part of the PMEM driver. Add an entry for this file to MAINTAINERS. Signed-off-by: Ross Zwisler Signed-off-by: Dan Williams MAINTAINERS | 1 + 1 file changed, 1 insertion(+) commit dbf3c370862d73fcd2c74ca55e254bb02143238d Author: Dmitry Torokhov Date: Fri Jul 10 10:11:07 2015 -0700 Revert "Input: synaptics - allocate 3 slots to keep stability in image sensors" This reverts commit 63c4fda3c0bb841b1aad1298fc7fe94058fc79f8 as it causes issues with detecting 3-finger taps. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=100481 Cc: stable@vger.kernel.org Acked-by: Benjamin Tissoires drivers/input/mouse/synaptics.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ad2daa85bd50b7ff5c851b80a0b813bdc8d14f8e Author: Mark Rutland Date: Fri Jul 10 15:46:32 2015 +0100 arm64: entry32: remove pointless register assignment We currently set x27 in compat_sys_sigreturn_wrapper and compat_sys_rt_sigreturn_wrapper, similarly to what we do with r8/why on 32-bit ARM, in an attempt to prevent sigreturns from being restarted. However, on arm64 we have always used pt_regs::syscallno for syscall restarting (for both native and compat tasks), and x27 is never inspected again before being overwritten in kernel_exit. This patch removes the pointless register assignments. Signed-off-by: Mark Rutland Cc: Will Deacon Signed-off-by: Catalin Marinas arch/arm64/kernel/entry32.S | 2 -- 1 file changed, 2 deletions(-) commit 95dd8653de658143770cb0e55a58d2aab97c79d2 Author: Pablo Neira Ayuso Date: Thu Jul 9 22:56:00 2015 +0200 netfilter: ctnetlink: put back references to master ct and expect objects We have to put back the references to the master conntrack and the expectation that we just created, otherwise we'll leak them. Fixes: 0ef71ee1a5b9 ("netfilter: ctnetlink: refactor ctnetlink_create_expect") Reported-by: Tim Wiess Signed-off-by: Pablo Neira Ayuso net/netfilter/nf_conntrack_netlink.c | 5 ----- 1 file changed, 5 deletions(-) commit ee4100da1616d6d151f97862b87e8a4e43d14b4c Author: Wanpeng Li Date: Thu Jul 9 15:44:52 2015 +0800 kvm: x86: fix load xsave feature warning [ 68.196974] WARNING: CPU: 1 PID: 2140 at arch/x86/kvm/x86.c:3161 kvm_arch_vcpu_ioctl+0xe88/0x1340 [kvm]() [ 68.196975] Modules linked in: snd_hda_codec_hdmi i915 rfcomm bnep bluetooth i2c_algo_bit rfkill nfsd drm_kms_helper nfs_acl nfs drm lockd grace sunrpc fscache snd_hda_codec_realtek snd_hda_codec_generic snd_hda_intel snd_hda_codec snd_hda_core snd_hwdep snd_pcm snd_seq_dummy snd_seq_oss x86_pkg_temp_thermal snd_seq_midi kvm_intel snd_seq_midi_event snd_rawmidi kvm snd_seq ghash_clmulni_intel fuse snd_timer aesni_intel parport_pc ablk_helper snd_seq_device cryptd ppdev snd lp parport lrw dcdbas gf128mul i2c_core glue_helper lpc_ich video shpchp mfd_core soundcore serio_raw acpi_cpufreq ext4 mbcache jbd2 sd_mod crc32c_intel ahci libahci libata e1000e ptp pps_core [ 68.197005] CPU: 1 PID: 2140 Comm: qemu-system-x86 Not tainted 4.2.0-rc1+ #2 [ 68.197006] Hardware name: Dell Inc. OptiPlex 7020/0F5C5X, BIOS A03 01/08/2015 [ 68.197007] ffffffffa03b0657 ffff8800d984bca8 ffffffff815915a2 0000000000000000 [ 68.197009] 0000000000000000 ffff8800d984bce8 ffffffff81057c0a 00007ff6d0001000 [ 68.197010] 0000000000000002 ffff880211c1a000 0000000000000004 ffff8800ce0288c0 [ 68.197012] Call Trace: [ 68.197017] [] dump_stack+0x45/0x57 [ 68.197020] [] warn_slowpath_common+0x8a/0xc0 [ 68.197022] [] warn_slowpath_null+0x1a/0x20 [ 68.197029] [] kvm_arch_vcpu_ioctl+0xe88/0x1340 [kvm] [ 68.197035] [] ? kvm_arch_vcpu_load+0x4e/0x1c0 [kvm] [ 68.197040] [] kvm_vcpu_ioctl+0xc6/0x5c0 [kvm] [ 68.197043] [] ? perf_pmu_enable+0x22/0x30 [ 68.197044] [] ? perf_event_context_sched_in+0x7e/0xb0 [ 68.197048] [] do_vfs_ioctl+0x2c2/0x4a0 [ 68.197050] [] ? finish_task_switch+0x173/0x220 [ 68.197053] [] ? selinux_file_ioctl+0x4f/0xd0 [ 68.197055] [] ? security_file_ioctl+0x43/0x60 [ 68.197057] [] SyS_ioctl+0x79/0x90 [ 68.197060] [] entry_SYSCALL_64_fastpath+0x12/0x6a [ 68.197061] ---[ end trace 558a5ebf9445fc80 ]--- After commit (0c4109bec0 'x86/fpu/xstate: Fix up bad get_xsave_addr() assumptions'), there is no assumption an xsave bit is present in the hardware (pcntxt_mask) that it is always present in a given xsave buffer. An enabled state to be present on 'pcntxt_mask', but *not* in 'xstate_bv' could happen when the last 'xsave' did not request that this feature be saved (unlikely) or because the "init optimization" caused it to not be saved. This patch kill the assumption. Signed-off-by: Wanpeng Li Signed-off-by: Paolo Bonzini arch/x86/kvm/x86.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit fd717f11015f673487ffc826e59b2bad69d20fe5 Author: Paolo Bonzini Date: Tue Jul 7 14:38:13 2015 +0200 KVM: x86: apply guest MTRR virtualization on host reserved pages Currently guest MTRR is avoided if kvm_is_reserved_pfn returns true. However, the guest could prefer a different page type than UC for such pages. A good example is that pass-throughed VGA frame buffer is not always UC as host expected. This patch enables full use of virtual guest MTRRs. Suggested-by: Xiao Guangrong Tested-by: Joerg Roedel (on AMD) Signed-off-by: Paolo Bonzini arch/x86/kvm/svm.c | 7 ++----- arch/x86/kvm/vmx.c | 11 +++-------- 2 files changed, 5 insertions(+), 13 deletions(-) commit e098223b789b4a618dacd79e5e0dad4a9d5018d1 Author: Jan Kiszka Date: Mon Apr 20 19:25:31 2015 +0200 KVM: SVM: Sync g_pat with guest-written PAT value When hardware supports the g_pat VMCB field, we can use it for emulating the PAT configuration that the guest configures by writing to the corresponding MSR. Signed-off-by: Jan Kiszka Tested-by: Joerg Roedel Signed-off-by: Paolo Bonzini arch/x86/kvm/svm.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 3c2e7f7de3240216042b61073803b61b9b3cfb22 Author: Paolo Bonzini Date: Tue Jul 7 14:32:17 2015 +0200 KVM: SVM: use NPT page attributes Right now, NPT page attributes are not used, and the final page attribute depends solely on gPAT (which however is not synced correctly), the guest MTRRs and the guest page attributes. However, we can do better by mimicking what is done for VMX. In the absence of PCI passthrough, the guest PAT can be ignored and the page attributes can be just WB. If passthrough is being used, instead, keep respecting the guest PAT, and emulate the guest MTRRs through the PAT field of the nested page tables. The only snag is that WP memory cannot be emulated correctly, because Linux's default PAT setting only includes the other types. Tested-by: Joerg Roedel Signed-off-by: Paolo Bonzini arch/x86/kvm/svm.c | 101 ++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 96 insertions(+), 5 deletions(-) commit 5544eb9b81940647b8fad1f251b37cbe2819ce44 Author: Paolo Bonzini Date: Tue Jul 7 15:41:58 2015 +0200 KVM: count number of assigned devices If there are no assigned devices, the guest PAT are not providing any useful information and can be overridden to writeback; VMX always does this because it has the "IPAT" bit in its extended page table entries, but SVM does not have anything similar. Hook into VFIO and legacy device assignment so that they provide this information to KVM. Reviewed-by: Alex Williamson Tested-by: Joerg Roedel Signed-off-by: Paolo Bonzini arch/x86/include/asm/kvm_host.h | 2 ++ arch/x86/kvm/iommu.c | 2 ++ arch/x86/kvm/x86.c | 18 ++++++++++++++++++ include/linux/kvm_host.h | 18 ++++++++++++++++++ virt/kvm/vfio.c | 5 +++++ 5 files changed, 45 insertions(+) commit 370777daab3f024f1645177039955088e2e9ae73 Author: Radim Krčmář Date: Fri Jul 3 15:49:28 2015 +0200 KVM: VMX: fix vmwrite to invalid VMCS fpu_activate is called outside of vcpu_load(), which means it should not touch VMCS, but fpu_activate needs to. Avoid the call by moving it to a point where we know that the guest needs eager FPU and VMCS is loaded. This will get rid of the following trace vmwrite error: reg 6800 value 0 (err 1) [] dump_stack+0x19/0x1b [] vmwrite_error+0x2c/0x2e [kvm_intel] [] vmcs_writel+0x1f/0x30 [kvm_intel] [] vmx_fpu_activate.part.61+0x45/0xb0 [kvm_intel] [] vmx_fpu_activate+0x15/0x20 [kvm_intel] [] kvm_arch_vcpu_create+0x51/0x70 [kvm] [] kvm_vm_ioctl+0x1c1/0x760 [kvm] [] ? handle_mm_fault+0x49a/0xec0 [] do_vfs_ioctl+0x2e5/0x4c0 [] ? file_has_perm+0xae/0xc0 [] SyS_ioctl+0xa1/0xc0 [] system_call_fastpath+0x16/0x1b (Note: we also unconditionally activate FPU in vmx_vcpu_reset(), so the removed code added nothing.) Fixes: c447e76b4cab ("kvm/fpu: Enable eager restore kvm FPU for MPX") Cc: Reported-by: Vlastimil Holer Signed-off-by: Radim Krčmář Signed-off-by: Paolo Bonzini arch/x86/kvm/cpuid.c | 2 ++ arch/x86/kvm/x86.c | 5 ----- 2 files changed, 2 insertions(+), 5 deletions(-) commit d1fe9219551e914f26219afaca1063b280f25963 Author: Paolo Bonzini Date: Tue Jul 7 15:03:18 2015 +0200 KVM: x86: reintroduce kvm_is_mmio_pfn The call to get_mt_mask was really using kvm_is_reserved_pfn to detect an MMIO-backed page. In this case, we want "false" to be returned for the zero page. Reintroduce a separate kvm_is_mmio_pfn predicate for this use only. Signed-off-by: Paolo Bonzini arch/x86/kvm/mmu.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit 5d75a747596be046546eeb9d6ba39a3af851a1af Author: Paolo Bonzini Date: Tue Jul 7 12:17:36 2015 +0200 x86: hyperv: add CPUID bit for crash handlers Signed-off-by: Paolo Bonzini arch/x86/include/uapi/asm/hyperv.h | 2 ++ 1 file changed, 2 insertions(+) commit c03e9a3a9b54685c2f6c13fc137281d262442bb3 Author: Philipp Zabel Date: Fri Jun 19 11:18:17 2015 +0200 drm/imx: tve: fix media bus format for VGA output Commit a7c6e76feeb1 ("drm/imx: switch to use media bus formats") accidentally replaced IPU_PIX_FMT_GBR24 with MEDIA_BUS_FMT_YUV8_1X24 instead of the correct MEDIA_BUS_FMT_GBR888_1X24. This patch is needed to fix VGA output in i.MX53. Signed-off-by: Philipp Zabel drivers/gpu/drm/imx/imx-tve.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 510e6426d32baf46b6df929e6689ef65fcb58a2c Author: Russell King Date: Tue Jun 16 23:29:41 2015 +0100 GPU: ipu: fix lockup caused by pending chained interrupts Even with the oops fixed by a previous patch, the system still fails to kexec, due to a stuck chained interrupt locking the system. We must disable the child interrupts prior to setting up the irq chip to ensure we don't get stuck here. Signed-off-by: Russell King Signed-off-by: Philipp Zabel drivers/gpu/ipu-v3/ipu-common.c | 3 +++ 1 file changed, 3 insertions(+) commit 553a59fc8f5d51c3824c0b7d4ca61e780157defa Author: Philipp Zabel Date: Tue May 19 16:28:12 2015 +0200 drm/imx: parallel-display: fix drm_panel support The parallel-display driver used an undocumented, non-standard property "fsl,panel" to optionally associate with a drm_panel device. This patch fixes the driver to use the same OF graph bindings as the LDB driver instead: parallel-display { compatible = "fsl,imx-parallel-display"; ... port@1 { reg = <1>; parallel_out: endpoint { remote_endpoint = <&panel_in>; }; }; }; panel { ... port { panel_in: endpoint { remote-endpoint = <¶llel_out>; }; }; }; Signed-off-by: Philipp Zabel Tested-by: Gary Bisson .../devicetree/bindings/drm/imx/fsl-imx-drm.txt | 26 ++++++++++++++++++++-- drivers/gpu/drm/imx/parallel-display.c | 21 ++++++++++++----- 2 files changed, 39 insertions(+), 8 deletions(-) commit 51d53674c3fff11e9231e66ca8616c65deadfb6c Author: Ralf Baechle Date: Thu Jul 9 18:02:51 2015 +0200 MIPS: O32: Use compat_sys_getsockopt. We were using the native syscall and that results in subtle breakage. This is the same issue as fixed in 077d0e65618f27b2199d622e12ada6d8f3dbd862 (MIPS: N32: Use compat getsockopt syscall) but that commit did fix it only for N32. Signed-off-by: Ralf Baechle Link: https://bugzilla.kernel.org/show_bug.cgi?id=100291 arch/mips/kernel/scall64-o32.S | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1e18ac7aeaec357048172695b1fbb461205b166f Author: Paul Burton Date: Thu Jul 9 10:40:41 2015 +0100 MIPS: c-r4k: Extend way_string array The L2 cache in the I6400 core has 16 ways, so extend the way_string array to take such caches into account. [ralf@linux-mips.org: Other already supported CPUs are free to support more than 8 ways of cache as well.] Signed-off-by: Paul Burton Signed-off-by: Markos Chandras Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10640/ Signed-off-by: Ralf Baechle arch/mips/mm/c-r4k.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 6b5e741e9a834a8cf2d5b895319045ab17ad37fe Author: James Hogan Date: Fri Apr 17 10:44:16 2015 +0100 MIPS: Pistachio: Support CDMM & Fast Debug Channel Implement the mips_cdmm_phys_base() platform callback to provide a default Common Device Memory Map (CDMM) physical base address for the Pistachio SoC. This allows the CDMM in each VPE to be configured and probed for devices, such as the Fast Debug Channel (FDC). The physical address chosen is just below the default CPC address, which appears to also be unallocated. The FDC IRQ is also usable on Pistachio, and is routed through the GIC, so implement the get_c0_fdc_int() platform callback using gic_get_c0_fdc_int(), so the FDC driver doesn't have to fall back to polling. Signed-off-by: James Hogan Cc: Ralf Baechle Cc: Andrew Bresticker Cc: James Hartley Cc: linux-mips@linux-mips.org Reviewed-by: Andrew Bresticker Patchwork: http://patchwork.linux-mips.org/patch/9749/ Signed-off-by: Ralf Baechle arch/mips/pistachio/init.c | 8 +++++++- arch/mips/pistachio/time.c | 5 +++++ 2 files changed, 12 insertions(+), 1 deletion(-) commit 6249ecbbb75cd635025cc681fcf51fb8659edbab Author: James Hogan Date: Fri Apr 17 10:44:15 2015 +0100 MIPS: Malta: Make GIC FDC IRQ workaround Malta specific Wider testing reveals that the Fast Debug Channel (FDC) interrupt is routed through the GIC just fine on Pistachio SoC, even though it contains interAptiv cores. Clearly the FDC interrupt routing problems previously observed on interAptiv and proAptiv cores are specific to the Malta FPGA bitstreams. Move the workaround for interAptiv and proAptiv out of gic_get_c0_fdc_int() in the GIC irqchip driver into Malta's get_c0_fdc_int() platform callback, to allow the Pistachio SoC to use the FDC interrupt. Signed-off-by: James Hogan Cc: Ralf Baechle Cc: Andrew Bresticker Cc: Thomas Gleixner Cc: Jason Cooper Cc: linux-mips@linux-mips.org Reviewed-by: Andrew Bresticker Cc: James Hartley Patchwork: http://patchwork.linux-mips.org/patch/9748/ Signed-off-by: Ralf Baechle arch/mips/mti-malta/malta-time.c | 20 +++++++++++++------- drivers/irqchip/irq-mips-gic.c | 10 ---------- 2 files changed, 13 insertions(+), 17 deletions(-) commit cccf34e9411c41b0cbfb41980fe55fc8e7c98fd2 Author: Markos Chandras Date: Fri Jul 10 09:29:10 2015 +0100 MIPS: c-r4k: Fix cache flushing for MT cores MT_SMP is not the only SMP option for MT cores. The MT_SMP option allows more than one VPE per core to appear as a secondary CPU in the system. Because of how CM works, it propagates the address-based cache ops to the secondary cores but not the index-based ones. Because of that, the code does not use IPIs to flush the L1 caches on secondary cores because the CM would have done that already. However, the CM functionality is independent of the type of SMP kernel so even in non-MT kernels, IPIs are not necessary. As a result of which, we change the conditional to depend on the CM presence. Moreover, since VPEs on the same core share the same L1 caches, there is no need to send an IPI on all of them so we calculate a suitable cpumask with only one VPE per core. Signed-off-by: Markos Chandras Cc: # 3.15+ Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10654/ Signed-off-by: Ralf Baechle arch/mips/include/asm/smp.h | 1 + arch/mips/kernel/smp.c | 44 +++++++++++++++++++++++++++++++++++++++++++- arch/mips/mm/c-r4k.c | 14 +++++++++++--- 3 files changed, 55 insertions(+), 4 deletions(-) commit a833581e372a4adae2319d8dc379493edbc444e9 Author: Peter Zijlstra Date: Thu Jul 9 19:23:38 2015 +0200 x86, perf: Fix static_key bug in load_mm_cr4() Mikulas reported his K6-3 not booting. This is because the static_key API confusion struck and bit Andy, this wants to be static_key_false(). Reported-by: Mikulas Patocka Tested-by: Mikulas Patocka Signed-off-by: Peter Zijlstra (Intel) Cc: Cc: Andrea Arcangeli Cc: Andy Lutomirski Cc: Arnaldo Carvalho de Melo Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Kees Cook Cc: Linus Torvalds Cc: Paul Mackerras Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Valdis Kletnieks Cc: Vince Weaver Cc: hillf.zj Fixes: a66734297f78 ("perf/x86: Add /sys/devices/cpu/rdpmc=2 to allow rdpmc for all tasks") Link: http://lkml.kernel.org/r/20150709172338.GC19282@twins.programming.kicks-ass.net Signed-off-by: Ingo Molnar arch/x86/include/asm/mmu_context.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4756e1966c4e1c00a2c6e379cea0322429d1a29b Merge: c4b5fd3 0aefc35 Author: Ingo Molnar Date: Fri Jul 10 10:01:29 2015 +0200 Merge tag 'perf-urgent-for-mingo-2' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent Pull perf/urgent fixes from Arnaldo Carvalho de Melo: - Fix 'perf top -u username', where not enough memory per thread_map entry was being allocated nor was being initialized, causing a segfault (Arnaldo Carvalho de Melo) - Fix locking lockup using 32-bit compat vdso (Adrian Hunter) - Fix shadow declaration of 'close' with older build environments (Jiri Olsa) - Make the 'clean' target do a better job, removing some more temp files (Riku Voipio) - The python binding also has a MANIFEST like file where we list the files that need to be built and linked to form the resulting python shared object module file. And it has an entry for rbtree.c that still pointed to the one in the kernel sources, fix it by also removing one level of indirection so that it uses the tools/lib/rbtree.c copy. (Arnaldo Carvalho de Melo) - For the same reasons as for rbtree.c, copy the kernel lib/hweight.c file to tools/lib/, sanitizing it in the process to remove kernel specific stuff like EXPORT_SYMBOL() lines and the linux/export.h include reference, as that file doesn't exist anymore in tools/include/linux. (Arnaldo Carvalho de Melo) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit 2d28b633c3fa8f53b919a5de86eb1c8e78dde818 Merge: 59e7a16 743c167 Author: Dave Airlie Date: Fri Jul 10 15:59:35 2015 +1000 Merge tag 'omapdrm-4.2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux into drm-fixes omapdrm fixes for 4.2 Small fixes for omapdrm, including: * Fix packed 24 bit color formats * Ensure the planes are inside the crtc * Handle out-of-dma-memory error * tag 'omapdrm-4.2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux: drm/omap: replace ALIGN(PAGE_SIZE) by PAGE_ALIGN drm/omap: fix align_pitch() for 24 bits per pixel drm/omap: fix omap_gem_put_paddr() error handling drm/omap: fix omap_framebuffer_unpin() error handling drm/omap: increase DMM transaction timeout drm/omap: check that plane is inside crtc drm/omap: return error if dma_alloc_writecombine fails commit 59e7a16d60ffead64d1407bf8915b8b2078ba870 Merge: 008b3f1 5261392 Author: Dave Airlie Date: Fri Jul 10 15:58:43 2015 +1000 Merge tag 'drm-intel-fixes-2015-07-09' of git://anongit.freedesktop.org/drm-intel into drm-fixes Pile of fixes for either 4.2 issues or cc: stable. This should fix the 2nd kind of WARNING Linus's been seeing, please ask him to scream if that's not the case. * tag 'drm-intel-fixes-2015-07-09' of git://anongit.freedesktop.org/drm-intel: Revert "drm/i915: Allocate context objects from stolen" drm/i915: Declare the swizzling unknown for L-shaped configurations drm/i915: Use crtc_state->active in primary check_plane func drm/i915: Check crtc->active in intel_crtc_disable_planes drm/i915: Restore all GGTT VMAs on resume drm/i915/chv: fix HW readout of the port PLL fractional divider commit 008b3f1f1c3e79c0bff03ca3a0c2dff3d81213c8 Merge: 9d5715f a0f6744 Author: Dave Airlie Date: Fri Jul 10 15:56:19 2015 +1000 Merge tag 'drm-amdkfd-fixes-2015-07-09' of git://people.freedesktop.org/~gabbayo/linux into drm-fixes A single fix so far for 4.2: - checking a pointer is not null before using it * tag 'drm-amdkfd-fixes-2015-07-09' of git://people.freedesktop.org/~gabbayo/linux: drm/amdkfd: validate pdd where it acquired first commit 9d5715f9de2e72ee828c38eae44b08ee24b408ed Merge: c4b5fd3 355c822 Author: Dave Airlie Date: Fri Jul 10 15:55:48 2015 +1000 Merge branch 'drm-fixes-4.2' of git://people.freedesktop.org/~agd5f/linux into drm-fixes radeon and amdgpu fixes for 4.2. All over the place: - fix cursor corruption on resume and re-enable no VT switch on suspend - vblank fixes - fix gpuvm error messages - misc other fixes * 'drm-fixes-4.2' of git://people.freedesktop.org/~agd5f/linux: drm/radeon: disable vce init on cayman (v2) drm/amdgpu: fix timeout calculation drm/radeon: check if BO_VA is set before adding it to the invalidation list drm/radeon: allways add the VM clear duplicate Revert "Revert "drm/radeon: dont switch vt on suspend"" drm/radeon: Fold radeon_set_cursor() into radeon_show_cursor() drm/radeon: unpin cursor BOs on suspend and pin them again on resume (v2) drm/radeon: Clean up reference counting and pinning of the cursor BOs drm/radeon: fix underflow in r600_cp_dispatch_texture() drm/radeon: default to 2048 MB GART size on SI+ drm/radeon: fix HDP flushing drm/radeon: use RCU query for GEM_BUSY syscall drm/amdgpu: Handle irqs only based on irq ring, not irq status regs. drm/radeon: Handle irqs only based on irq ring, not irq status regs. commit a7d35f9d73e9ffa74a02304b817e579eec632f67 Author: Eric Dumazet Date: Thu Jul 9 18:56:07 2015 +0200 bridge: fix potential crash in __netdev_pick_tx() Commit c29390c6dfee ("xps: must clear sender_cpu before forwarding") fixed an issue in normal forward path, caused by sender_cpu & napi_id skb fields being an union. Bridge is another point where skb can be forwarded, so we need the same cure. Bug triggers if packet was received on a NIC using skb_mark_napi_id() Fixes: 2bd82484bb4c ("xps: fix xps for stacked devices") Signed-off-by: Eric Dumazet Reported-by: Bob Liu Tested-by: Bob Liu Signed-off-by: David S. Miller net/bridge/br_forward.c | 1 + 1 file changed, 1 insertion(+) commit fcc028c106e5750aa66dc43595b3f29f88801ff0 Author: Krzysztof Kozlowski Date: Thu Jul 9 22:21:20 2015 +0900 net: axienet: Fix devm_ioremap_resource return value check Value returned by devm_ioremap_resource() was checked for non-NULL but devm_ioremap_resource() returns IOMEM_ERR_PTR, not NULL. In case of error this could lead to dereference of ERR_PTR. Signed-off-by: Krzysztof Kozlowski Cc: Fixes: 46aa27df8853 ("net: axienet: Use devm_* calls") Reviewed-by: Sören Brinkmann Signed-off-by: David S. Miller drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 2c069a118fe1d80c47dca84e1561045fc7f3cc9e Author: Daniel Axtens Date: Fri Jul 10 09:04:25 2015 +1000 cxl: Check if afu is not null in cxl_slbia The pointer to an AFU in the adapter's list of AFUs can be null if we're in the process of removing AFUs. The afu_list_lock doesn't guard against this. Say we have 2 slices, and we're in the process of removing cxl. - We remove the AFUs in order (see cxl_remove). In cxl_remove_afu for AFU 0, we take the lock, set adapter->afu[0] = NULL, and release the lock. - Then we get an slbia. In cxl_slbia we take the lock, and set afu = adapter->afu[0], which is NULL. - Therefore our attempt to check afu->enabled will blow up. Therefore, check if afu is a null pointer before dereferencing it. Cc: stable@vger.kernel.org Signed-off-by: Daniel Axtens Acked-by: Michael Neuling Acked-by: Ian Munsie Signed-off-by: Michael Ellerman drivers/misc/cxl/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1fb01ca93a1348a1469b8777326cd7632483de77 Author: Jiang Liu Date: Wed Jul 8 15:26:39 2015 +0800 ACPI / PCI: Fix regressions caused by resource_size_t overflow with 32-bit kernel Zoltan Boszormenyi reported this regression: "There's a Realtek RTL8111/8168/8411 (PCI ID 10ec:8168, Subsystem ID 1565:230e) network chip on the mainboard. After the r8169 driver loaded the IRQs in the machine went berserk. Keyboard keypressed arrived with considerable latency and duplicated, so no real work was possible. The machine responded to the power button but didn't actually power down. It just stuck at the powering down message. I had to press the power button for 4 seconds to power it down. The computer is a POS machine with a big battery inside. Because of this, either ACPI or the Realtek chip kept the bad state and after rebooting, the network chip didn't even show up in lspci. Not even the PXE ROM announced itself during boot. I had to disconnect the battery to beat some sense back to the computer. The regression happens with 4.0.5, 4.1.0-rc8 and 4.1.0-final. 3.18.16 was good." The regression is caused by commit 593669c2ac0f (x86/PCI/ACPI: Use common ACPI resource interfaces to simplify implementation). Since commit 593669c2ac0f, x86 PCI ACPI host bridge driver validates ACPI resources by first converting an ACPI resource to a 'struct resource' structure and then applying checks against the converted resource structure. The 'start' and 'end' fields in 'struct resource' are defined to be type of resource_size_t, which may be 32 bits or 64 bits depending on CONFIG_PHYS_ADDR_T_64BIT. This may cause incorrect resource validation results with 32-bit kernels because 64-bit ACPI resource descriptors may get truncated when converting to 32-bit 'start' and 'end' fields in 'struct resource'. It eventually affects PCI resource allocation subsystem and makes some PCI devices and the system behave abnormally due to incorrect resource assignment. So enhance the ACPI resource parsing interfaces to ignore ACPI resource descriptors with address/offset above 4G when running in 32-bit mode. With the fix applied, the behavior of the machine was restored to how 3.18.16 worked, i.e. the memory range that is over 4GB is ignored again, and lspci -vvxxx shows that everything is at the same memory window as they were with 3.18.16. Reported-and-tested-by: Boszormenyi Zoltan Fixes: 593669c2ac0f (x86/PCI/ACPI: Use common ACPI resource interfaces to simplify implementation) Signed-off-by: Jiang Liu Cc: 4.0+ # 4.0+ Signed-off-by: Rafael J. Wysocki drivers/acpi/resource.c | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) commit 5a31d594a9732a2fa2eb83b0c4dcba75da2dff5d Author: Viresh Kumar Date: Fri Jul 10 01:43:27 2015 +0200 cpufreq: Allow freq_table to be obtained for offline CPUs Users of freq table may want to access it for any CPU from policy->related_cpus mask. One such user is cpu-cooling layer. It gets a list of 'clip_cpus' (equivalent to policy->related_cpus) during registration and tries to get freq_table for the first CPU of this mask. If the CPU, for which it tries to fetch freq_table, is offline, cpufreq_frequency_get_table() fails. This happens because it relies on cpufreq_cpu_get_raw() for its functioning which returns policy only for online CPUs. The fix is to access the policy data structure for the given CPU directly (which also returns a valid policy for offline CPUs), but the policy itself has to be active (meaning that at least one CPU using it is online) for the frequency table to be returned. Because we will be using 'cpufreq_cpu_data' now, which is internal to the cpufreq core, move cpufreq_frequency_get_table() to cpufreq.c. Reported-and-tested-by: Pi-Cheng Chen Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq.c | 9 +++++++++ drivers/cpufreq/freq_table.c | 9 --------- 2 files changed, 9 insertions(+), 9 deletions(-) commit 35afd02e30d6368073df604920c4ea7cddadf5d0 Author: Viresh Kumar Date: Fri Jul 10 01:36:27 2015 +0200 cpufreq: Initialize the governor again while restoring policy When all CPUs of a policy are hot-unplugged, we EXIT the governor but don't mark policy->governor as NULL. This was done in order to keep last used governor's information intact in sysfs, while the CPUs are offline. But we also need to clear policy->governor when restoring the policy. Because policy->governor still points to the last governor while policy is restored, following sequence of event happens: - cpufreq_init_policy() called while restoring policy - find_governor() matches last_governor string for present governors and returns last used governor's pointer, say ondemand. policy->governor already has the same address, unless the governor was removed in between. - cpufreq_set_policy() is called with both old/new policies governor set as ondemand. - Because governors matched, we skip governor initialization and return after calling __cpufreq_governor(CPUFREQ_GOV_LIMITS). Because the governor wasn't initialized for this policy, it returned -EBUSY. - cpufreq_init_policy() exits the policy on this error, but doesn't destroy it properly (should be fixed separately). - And so we enter a scenario where the policy isn't completely initialized but used. Fix this by setting policy->governor to NULL while restoring the policy. Reported-and-tested-by: Pi-Cheng Chen Reported-and-tested-by: "Jon Medhurst (Tixy)" Reported-and-tested-by: Steven Rostedt Fixes: 18bf3a124ef8 (cpufreq: Mark policy->governor = NULL for inactive policies) Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq.c | 1 + 1 file changed, 1 insertion(+) commit 8dfbc0ab3481bb50216c1609bfd1adb0547ef83f Merge: d024bae ae74530 Author: Kevin Hilman Date: Thu Jul 9 15:38:16 2015 -0700 Merge tag 'omap-for-v4.2/fixes-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes Merge "omap fixes against v4.2-rc1" from Tony Lindgren: Minor fixes for omaps against v4.2-rc1. Mostly just minor dts changes except for a GPMC fix to not use names for probing devices. Also a one liner clean-up to remove unecessary return from a void function. The summary for the changes being: - Fix probe for GPMC devices by reoving limitations based on device name - Remove unnecessary return from a void function - Revert beaglebone RTC sleep fix, we now have a better fix merged - Add am4372 EMIF node to fix a warning - Add am57xx-beagle-x15 power supply to fix USB2 if USB1 is disabled - Disable rfbi for am4372 as it does not have a driver * tag 'omap-for-v4.2/fixes-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: dts: am4372.dtsi: disable rfbi ARM: dts: am57xx-beagle-x15: Provide supply for usb2_phy2 ARM: dts: am4372: Add emif node Revert "ARM: dts: am335x-boneblack: disable RTC-only sleep" ARM: OMAP2+: Remove unnessary return statement from the void function, omap2_show_dma_caps memory: omap-gpmc: Fix parsing of devices commit d024bae2c45956bf76f375ee532305dbfb3a6ba4 Merge: 9ccd608 5738563 Author: Kevin Hilman Date: Thu Jul 9 15:08:44 2015 -0700 Merge tag 'sunxi-late-for-4.2' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux into fixes Merge "Allwinner late changes for 4.2" from Maxime Ripard: Allwinner late changes for 4.2 A bunch of defconfig changes, and some patches to make the Allwinner H3 and A33 boot properly. * tag 'sunxi-late-for-4.2' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux: ARM: sunxi: Enable simplefb in the defconfig ARM: Remove deprecated symbol from defconfig files ARM: sunxi: Add Machine support for A33 ARM: sunxi: Introduce Allwinner H3 support Documentation: sunxi: Update Allwinner SoC documentation commit fc5778ca3f3c57af53f0c6b6912970f6416a3a5f Merge: 4a0e3e9 1fbe4b46 Author: David S. Miller Date: Thu Jul 9 15:05:33 2015 -0700 Merge branch 'pktgen-races' Oleg Nesterov says: ==================== net: pktgen: fix race between pktgen_thread_worker() and kthread_stop() I am not familiar with this code and I have no idea how to test these changes, so 2/2 comes as a separate change. 1/2 looks like the obvious bugfix, and probably candidate for -stable. ==================== Signed-off-by: David S. Miller commit 1fbe4b46caca5b01b070af93d513031ffbcc480c Author: Oleg Nesterov Date: Wed Jul 8 21:42:13 2015 +0200 net: pktgen: kill the "Wait for kthread_stop" code in pktgen_thread_worker() pktgen_thread_worker() doesn't need to wait for kthread_stop(), it can simply exit. Just pktgen_create_thread() and pg_net_exit() should do get_task_struct()/put_task_struct(). kthread_stop(dead_thread) is fine. Signed-off-by: Oleg Nesterov Signed-off-by: David S. Miller net/core/pktgen.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) commit fecdf8be2d91e04b0a9a4f79ff06499a36f5d14f Author: Oleg Nesterov Date: Wed Jul 8 21:42:11 2015 +0200 net: pktgen: fix race between pktgen_thread_worker() and kthread_stop() pktgen_thread_worker() is obviously racy, kthread_stop() can come between the kthread_should_stop() check and set_current_state(). Signed-off-by: Oleg Nesterov Reported-by: Jan Stancek Reported-by: Marcelo Leitner Signed-off-by: David S. Miller net/core/pktgen.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 4a0e3e989d66bb7204b163d9cfaa7fa96d0f2023 Author: Enrico Mioso Date: Wed Jul 8 13:05:57 2015 +0200 cdc_ncm: Add support for moving NDP to end of NCM frame NCM specs are not actually mandating a specific position in the frame for the NDP (Network Datagram Pointer). However, some Huawei devices will ignore our aggregates if it is not placed after the datagrams it points to. Add support for doing just this, in a per-device configurable way. While at it, update NCM subdrivers, disabling this functionality in all of them, except in huawei_cdc_ncm where it is enabled instead. We aren't making any distinction between different Huawei NCM devices, based on what the vendor driver does. Standard NCM devices are left unaffected: if they are compliant, they should be always usable, still stay on the safe side. This change has been tested and working with a Huawei E3131 device (which works regardless of NDP position), a Huawei E3531 (also working both ways) and an E3372 (which mandates NDP to be after indexed datagrams). V1->V2: - corrected wrong NDP acronym definition - fixed possible NULL pointer dereference - patch cleanup V2->V3: - Properly account for the NDP size when writing new packets to SKB Signed-off-by: Enrico Mioso Signed-off-by: David S. Miller drivers/net/usb/cdc_mbim.c | 2 +- drivers/net/usb/cdc_ncm.c | 61 ++++++++++++++++++++++++++++++++++++---- drivers/net/usb/huawei_cdc_ncm.c | 7 +++-- include/linux/usb/cdc_ncm.h | 7 ++++- 4 files changed, 67 insertions(+), 10 deletions(-) commit 5a0266af10246c84a6c712f365788800c7e23fd4 Author: Mugunthan V N Date: Wed Jul 8 14:35:22 2015 +0530 drivers: net: cpsw: fix disabling of tx interrupt in rx isr In commit 'c03abd84634d ("net: ethernet: cpsw: don't requests IRQs we don't use")', common isr is split into tx and rx, but in rx isr tx interrupt is also disabledi in cpsw_disable_irq(). So tx interrupts are not handled during rx interrupts and rx napi completion and results in poor tx performance by 40Mbps. Fixing by disabling only rx interrupt in rx isr. Cc: Felipe Balbi Cc: # v4.0+ Signed-off-by: Mugunthan V N Signed-off-by: David S. Miller drivers/net/ethernet/ti/cpsw.c | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) commit adb3505086def6d3e37013ec6cf8313cc719cbb6 Author: Vaishali Thakkar Date: Wed Jul 8 10:49:30 2015 +0530 net: systemport: Use eth_hw_addr_random Use eth_hw_addr_random() instead of calling random_ether_addr(). Here, this change is setting addr_assign_type to NET_ADDR_RANDOM. The Coccinelle semantic patch that performs this transformation is as follows: @@ identifier a,b; @@ -random_ether_addr(a->b); +eth_hw_addr_random(a); Signed-off-by: Vaishali Thakkar Tested-by: Florian Fainelli Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bcmsysport.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ae0afb4f5d44d17a0fd135ae000e2acf12c53617 Author: Rafael J. Wysocki Date: Thu Jul 9 22:59:49 2015 +0200 suspend-to-idle: Prevent RCU from complaining about tick_freeze() Put tick_freeze() under RCU_NONIDLE() to prevent RCU from complaining about suspicious RCU usage in idle by trace_suspend_resume() called from there. While at it, fix a comment related to another usage of RCU_NONIDLE() in enter_freeze_proper(). Signed-off-by: Rafael J. Wysocki Reviewed-by: Paul E. McKenney drivers/cpuidle/cpuidle.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit 06b285bd11257bccc5a1b85a835507e33656aff2 Author: Tejun Heo Date: Thu Jul 9 16:39:50 2015 -0400 blkcg: fix blkcg_policy_data allocation bug e48453c386f3 ("block, cgroup: implement policy-specific per-blkcg data") updated per-blkcg policy data to be dynamically allocated. When a policy is registered, its policy data aren't created. Instead, when the policy is activated on a queue, the policy data are allocated if there are blkg's (blkcg_gq's) which are attached to a given blkcg. This is buggy. Consider the following scenario. 1. A blkcg is created. No blkg's attached yet. 2. The policy is registered. No policy data is allocated. 3. The policy is activated on a queue. As the above blkcg doesn't have any blkg's, it won't allocate the matching blkcg_policy_data. 4. An IO is issued from the blkcg and blkg is created and the blkcg still doesn't have the matching policy data allocated. With cfq-iosched, this leads to an oops. It also doesn't free policy data on policy unregistration assuming that freeing of all policy data on blkcg destruction should take care of it; however, this also is incorrect. 1. A blkcg has policy data. 2. The policy gets unregistered but the policy data remains. 3. Another policy gets registered on the same slot. 4. Later, the new policy tries to allocate policy data on the previous blkcg but the slot is already occupied and gets skipped. The policy ends up operating on the policy data of the previous policy. There's no reason to manage blkcg_policy_data lazily. The reason we do lazy allocation of blkg's is that the number of all possible blkg's is the product of cgroups and block devices which can reach a surprising level. blkcg_policy_data is contrained by the number of cgroups and shouldn't be a problem. This patch makes blkcg_policy_data to be allocated for all existing blkcg's on policy registration and freed on unregistration and removes blkcg_policy_data handling from policy [de]activation paths. This makes that blkcg_policy_data are created and removed with the policy they belong to and fixes the above described problems. Signed-off-by: Tejun Heo Fixes: e48453c386f3 ("block, cgroup: implement policy-specific per-blkcg data") Cc: Vivek Goyal Cc: Arianna Avanzini Signed-off-by: Jens Axboe block/blk-cgroup.c | 78 +++++++++++++++++++++++++--------------------- include/linux/blk-cgroup.h | 10 ++---- 2 files changed, 44 insertions(+), 44 deletions(-) commit 7876f930d0e78addc6bbdbba0d6c196a0788d545 Author: Tejun Heo Date: Thu Jul 9 16:39:49 2015 -0400 blkcg: implement all_blkcgs list Add all_blkcgs list goes through blkcg->all_blkcgs_node and is protected by blkcg_pol_mutex. This will be used to fix blkcg_policy_data allocation bug. Signed-off-by: Tejun Heo Cc: Vivek Goyal Cc: Arianna Avanzini Signed-off-by: Jens Axboe block/blk-cgroup.c | 17 ++++++++++++----- include/linux/blk-cgroup.h | 1 + 2 files changed, 13 insertions(+), 5 deletions(-) commit 144232b34258c1fc19729e077c6fb161e30da07b Author: Tejun Heo Date: Thu Jul 9 16:39:48 2015 -0400 blkcg: blkcg_css_alloc() should grab blkcg_pol_mutex while iterating blkcg_policy[] An entry in blkcg_policy[] is stable while there are non-bypassing in-flight IOs on a request_queue which has the policy activated. This is why most derefs of blkcg_policy[] don't need explicit locking; however, blkcg_css_alloc() isn't invoked from IO path and thus doesn't have this protection and may race policies being added and removed. Fix it by adding explicit blkcg_pol_mutex protection around blkcg_policy[] iteration in blkcg_css_alloc(). Signed-off-by: Tejun Heo Fixes: e48453c386f3 ("block, cgroup: implement policy-specific per-blkcg data") Cc: Vivek Goyal Cc: Arianna Avanzini Signed-off-by: Jens Axboe block/blk-cgroup.c | 4 ++++ 1 file changed, 4 insertions(+) commit 838f13bf4b6737d4aec508558e45f81798fc2677 Author: Tejun Heo Date: Thu Jul 9 16:39:47 2015 -0400 blkcg: allow blkcg_pol_mutex to be grabbed from cgroup [file] methods blkcg_pol_mutex primarily protects the blkcg_policy array. It also protects cgroup file type [un]registration during policy addition / removal. This puts blkcg_pol_mutex outside cgroup internal synchronization and in turn makes it impossible to grab from blkcg's cgroup methods as that leads to cyclic dependency. Another problematic dependency arising from this is through cgroup interface file deactivation. Removing a cftype requires removing all files of the type which in turn involves draining all on-going invocations of the file methods. This means that an interface file implementation can't grab blkcg_pol_mutex as draining can lead to AA deadlock. blkcg_reset_stats() is already in this situation. It currently trylocks blkcg_pol_mutex and then unwinds and retries the whole operation on failure, which is cumbersome at best. It has a lengthy comment explaining how cgroup internal synchronization is involved and expected to be updated but as explained above this doesn't need cgroup internal locking to deadlock. It's a self-contained AA deadlock. The described circular dependencies can be easily broken by moving cftype [un]registration out of blkcg_pol_mutex and protect them with an outer mutex. This patch introduces blkcg_pol_register_mutex which wraps entire policy [un]registration including cftype operations and shrinks blkcg_pol_mutex critical section. This also makes the trylock dancing in blkcg_reset_stats() unnecessary. Removed. This patch is necessary for the following blkcg_policy_data allocation bug fixes. Signed-off-by: Tejun Heo Cc: Vivek Goyal Cc: Arianna Avanzini Signed-off-by: Jens Axboe block/blk-cgroup.c | 40 +++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 19 deletions(-) commit c4b5fd3fb2058b650447372472ad24e2a989f9f6 Merge: 4c0a9f7 a28e4b2 Author: Linus Torvalds Date: Thu Jul 9 13:35:39 2015 -0700 Merge branch 'hpfs-patches' (patches from Mikulas Patocka) Merge hpfs updates from Mikulas Patocka. Mainly fstrim support, with some minor other cleanups. These were actually sent during the merge window, but I wanted to wait for the FSTRIM compat handling cleanup before applying them. Mikulas sent that earlier today. * emailed patches from Mikulas Patocka : hpfs: hpfs_error: Remove static buffer, use vsprintf extension %pV instead hpfs: kstrdup() out of memory handling hpfs: Remove unessary cast hpfs: add fstrim support commit a28e4b2b18ccb90df402da3f21e1a83c9d4f8ec1 Author: Joe Perches Date: Thu Mar 26 20:47:10 2015 -0700 hpfs: hpfs_error: Remove static buffer, use vsprintf extension %pV instead Removing unnecessary static buffers is good. Use the vsprintf %pV extension instead. Signed-off-by: Joe Perches Signed-off-by: Mikulas Patocka Cc: stable@vger.kernel.org # v2.6.36+ Signed-off-by: Linus Torvalds fs/hpfs/super.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit ce657611baf902f14ae559ce4e0787ead6712067 Author: Sanidhya Kashyap Date: Sat Mar 21 12:57:50 2015 -0400 hpfs: kstrdup() out of memory handling There is a possibility of nothing being allocated to the new_opts in case of memory pressure, therefore return ENOMEM for such case. Signed-off-by: Sanidhya Kashyap Signed-off-by: Mikulas Patocka Cc: stable@vger.kernel.org Signed-off-by: Linus Torvalds fs/hpfs/super.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit d7b04097c250e6322ba73d3b03337074afeeb314 Author: Firo Yang Date: Thu Apr 23 17:28:45 2015 +0800 hpfs: Remove unessary cast Avoid a pointless kmem_cache_alloc() return value cast in fs/hpfs/super.c::hpfs_alloc_inode() Signed-off-by: Firo Yang Signed-off-by: Mikulas Patocka Signed-off-by: Linus Torvalds fs/hpfs/super.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a27b5b97d6fe91f55058ad8ac28a8768700201ab Author: Mikulas Patocka Date: Sun Jun 28 15:16:57 2015 +0200 hpfs: add fstrim support This patch adds support for fstrim to the HPFS filesystem. Signed-off-by: Mikulas Patocka Signed-off-by: Linus Torvalds fs/hpfs/alloc.c | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ fs/hpfs/dir.c | 1 + fs/hpfs/file.c | 1 + fs/hpfs/hpfs_fn.h | 4 +++ fs/hpfs/super.c | 27 ++++++++++++++++ 5 files changed, 128 insertions(+) commit 4f001fd30145a6a8f72f9544c982cfd3dcb7c6df Author: Pantelis Antoniou Date: Sat Jan 24 09:16:29 2015 +0200 i2c: Mark instantiated device nodes with OF_POPULATE Mark (and unmark) device nodes with the POPULATE flag as appropriate. This is required to avoid multi probing when using I2C and device overlays containing a mux. This patch is also more careful with the release of the adapter device which caused a deadlock with muxes, and does not break the build on !OF since the node flag accessors are not defined then. Signed-off-by: Pantelis Antoniou Signed-off-by: Wolfram Sang drivers/i2c/i2c-core.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) commit eb8173e3d7b94664ecd3acf34942c9c9d6f6cb73 Author: Axel Lin Date: Tue Jun 30 11:41:58 2015 +0800 i2c: jz4780: Fix return value if probe fails Current code returns 0 if fails to read clock-frequency DT property, fix it. Also add checking return value of clk_prepare_enable and propagate return value of devm_request_irq. Signed-off-by: Axel Lin Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-jz4780.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) commit 4c0a9f7458dabf2b8cb9987c863e335480a22b67 Merge: 9abea2d 6e67b7a Author: Linus Torvalds Date: Thu Jul 9 13:13:11 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: "There is a fix for CephFS and RBD when used within containers/namespaces, and a fix for the address learning the client is supposed to do when initially talking to the Ceph cluster. There are also two patches updating MAINTAINERS. One breaks out the common Ceph code shared by fs/ceph and drivers/block/rbd.c into a separate entry with the appropriate maintainers listed. The second adds a second reference to the github tree where the Ceph client development takes place (before it is pushed to korg and then to you). The goal here is to move closer to a situation where Ilya Dryomov or one of the other maintainers can push things to you if I am unavailable. Ilya has done most of the work preparing branches for upstream recently; you should not be surprised to hear from him if I am trapped in some internet-less wasteland or hit by a bus or something. In the meantime, we'll work on getting him added to the kernel web of trust" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: MAINTAINERS: add secondary tree for ceph modules MAINTAINERS: update ceph entries libceph: treat sockaddr_storage with uninitialized family as blank libceph: enable ceph in a non-default network namespace commit 724948106ed236fc528c720ae12c79af7e2aea4e Author: Axel Lin Date: Tue Jun 30 11:08:46 2015 +0800 i2c: xgene-slimpro: Fix missing mbox_free_channel call in probe error path Free requested mailbox channel before return error. Signed-off-by: Axel Lin Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-xgene-slimpro.c | 1 + 1 file changed, 1 insertion(+) commit fc0a1f035cf15f704f4092da294963c57e94c1c0 Author: Geert Uytterhoeven Date: Fri Jun 26 14:12:10 2015 +0200 i2c: I2C_MT65XX should depend on HAS_DMA If NO_DMA=y: ERROR: "dma_unmap_single" [drivers/i2c/busses/i2c-mt65xx.ko] undefined! ERROR: "dma_mapping_error" [drivers/i2c/busses/i2c-mt65xx.ko] undefined! ERROR: "dma_map_single" [drivers/i2c/busses/i2c-mt65xx.ko] undefined! Add a dependency on HAS_DMA to fix this. Signed-off-by: Geert Uytterhoeven Signed-off-by: Wolfram Sang drivers/i2c/busses/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 0aefc3590afcc9ecbe173fc01fccbda0869d2f0a Author: Arnaldo Carvalho de Melo Date: Thu Jul 9 16:27:25 2015 -0300 tools: Copy lib/hweight.c from the kernel sources Instead of accessing it directly, as it uses EXPORT_SYMBOL, that has no meaning in tools/perf and because we removed the stubs for it, i.e. we removed the tools/include/linux/export.h file. This fixes the build for the detached tarball sources cases and removes one more source of entanglement with the kernel sources. 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-oyqx541o7apa2cskjhcxi6nx@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/lib/hweight.c | 62 ++++++++++++++++++++++++++++++++++++++ tools/perf/MANIFEST | 2 +- tools/perf/util/Build | 2 +- tools/perf/util/python-ext-sources | 2 +- 4 files changed, 65 insertions(+), 3 deletions(-) commit f3efe3a07e0060dc5d6c41644733e49c7bd50a5b Author: Arnaldo Carvalho de Melo Date: Thu Jul 9 16:23:57 2015 -0300 perf tools: Fix the detached tarball wrt rbtree copy The python binding build process was still looking at the kernel rbtree.c file, so, when doing a in-tree build it would work, but when creating a tarball using tools/perf/MANIFEST as the contents list and then trying to build the resulting detached sources, it failed. Fix it by removing one level of indirection from rbtree.c in the tools/perf/util/python-ext-sources file. 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-8u83c2k5guyhxdlkaaqis8k4@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/python-ext-sources | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 322dfa6402ec08da1ca182ac0061a1cf2c5c3101 Author: Yi Zhang Date: Thu Jul 9 18:11:31 2015 +0530 regulator: 88pm800: fix LDO vsel_mask value As per datasheet, Except LDO2, all other LDO's use bit [3:0] for VOUT select. Current code uses wrong mask value of 0x1f, So this patch fixes it to use 0xf. Signed-off-by: Yi Zhang [vaibhav.hiremath@linaro.org: Updated changelog with more detailed description] Signed-off-by: Vaibhav Hiremath Signed-off-by: Mark Brown drivers/regulator/88pm800.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9abea2d64ce93b6909de7f83a7f681f572369708 Author: Mikulas Patocka Date: Thu Jul 9 18:05:15 2015 +0200 ioctl_compat: handle FITRIM The FITRIM ioctl has the same arguments on 32-bit and 64-bit architectures, so we can add it to the list of compatible ioctls and drop it from compat_ioctl method of various filesystems. Signed-off-by: Mikulas Patocka Cc: Al Viro Cc: Ted Ts'o Signed-off-by: Linus Torvalds fs/compat_ioctl.c | 1 + fs/ecryptfs/file.c | 1 - fs/ext4/ioctl.c | 1 - fs/jfs/ioctl.c | 3 --- fs/nilfs2/ioctl.c | 1 - fs/ocfs2/ioctl.c | 1 - 6 files changed, 1 insertion(+), 7 deletions(-) commit 02941007f59ce015233d4c0f7047776960bf0c17 Author: qipeng.zha Date: Thu Jul 9 00:14:15 2015 +0800 intel_pmc_ipc: Update kerneldoc formatting Update kerneldoc formatting per Documentation/kernel-dec-nano-HOWTO.txt. Signed-off-by: qipeng.zha Signed-off-by: Darren Hart arch/x86/include/asm/intel_pmc_ipc.h | 27 ----------------- drivers/platform/x86/intel_pmc_ipc.c | 57 ++++++++++++++++++++++-------------- 2 files changed, 35 insertions(+), 49 deletions(-) commit 3324603524925c7727207027d1c15e597412d15e Author: Paul Moore Date: Thu Jul 9 14:20:36 2015 -0400 selinux: don't waste ebitmap space when importing NetLabel categories At present we don't create efficient ebitmaps when importing NetLabel category bitmaps. This can present a problem when comparing ebitmaps since ebitmap_cmp() is very strict about these things and considers these wasteful ebitmaps not equal when compared to their more efficient counterparts, even if their values are the same. This isn't likely to cause problems on 64-bit systems due to a bit of luck on how NetLabel/CIPSO works and the default ebitmap size, but it can be a problem on 32-bit systems. This patch fixes this problem by being a bit more intelligent when importing NetLabel category bitmaps by skipping over empty sections which should result in a nice, efficient ebitmap. Cc: stable@vger.kernel.org # 3.17 Signed-off-by: Paul Moore security/selinux/ss/ebitmap.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 6f957724b94cb19f5c1c97efd01dd4df8ced323c Author: Linus Torvalds Date: Thu Jul 9 11:20:01 2015 -0700 Fix firmware loader uevent buffer NULL pointer dereference The firmware class uevent function accessed the "fw_priv->buf" buffer without the proper locking and testing for NULL. This is an old bug (looks like it goes back to 2012 and commit 1244691c73b2: "firmware loader: introduce firmware_buf"), but for some reason it's triggering only now in 4.2-rc1. Shuah Khan is trying to bisect what it is that causes this to trigger more easily, but in the meantime let's just fix the bug since others are hitting it too (at least Ingo reports having seen it as well). Reported-and-tested-by: Shuah Khan Acked-by: Ming Lei Cc: Greg Kroah-Hartman Signed-off-by: Linus Torvalds drivers/base/firmware_class.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) commit 6b7339f4c31ad69c8e9c0b2859276e22cf72176d Author: Kirill A. Shutemov Date: Mon Jul 6 23:18:37 2015 +0300 mm: avoid setting up anonymous pages into file mapping Reading page fault handler code I've noticed that under right circumstances kernel would map anonymous pages into file mappings: if the VMA doesn't have vm_ops->fault() and the VMA wasn't fully populated on ->mmap(), kernel would handle page fault to not populated pte with do_anonymous_page(). Let's change page fault handler to use do_anonymous_page() only on anonymous VMA (->vm_ops == NULL) and make sure that the VMA is not shared. For file mappings without vm_ops->fault() or shred VMA without vm_ops, page fault on pte_none() entry would lead to SIGBUS. Signed-off-by: Kirill A. Shutemov Acked-by: Oleg Nesterov Cc: Andrew Morton Cc: Willy Tarreau Cc: stable@vger.kernel.org Signed-off-by: Linus Torvalds mm/memory.c | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) commit 6e67b7ae2157bdeb6b56381e530fc74bb68b6149 Author: Sage Weil Date: Thu Jul 9 11:47:37 2015 -0400 MAINTAINERS: add secondary tree for ceph modules The Ceph kernel code is primarily developed in the github tree, and only pushed to the korg tree before going to Linus. If Sage is unavailable and another maintainer needs to push something upstream, pull requests may originate from the github tree instead of Sage's korg tree. Signed-off-by: Sage Weil Signed-off-by: Ilya Dryomov MAINTAINERS | 3 +++ 1 file changed, 3 insertions(+) commit 398ecff5a562b7b69f77582f98a4b04d0de1f066 Author: Sage Weil Date: Thu Jul 9 11:46:14 2015 -0400 MAINTAINERS: update ceph entries - The Ceph common code is used by both fs/ceph and drivers/block/rbd. Add a separate maintainers entry. - Add Ilya as libceph maintainer and cephfs submaintainer. - Attribute Documentation/ABI/testing/sysfs-bus-rbd to rbd. - ceph-devel@vger.kernel.org should be L, not M in rbd entry. Signed-off-by: Sage Weil Signed-off-by: Ilya Dryomov MAINTAINERS | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) commit c44bd69c0c8cfadf0239437635b2933efb1f6c4c Author: Ilya Dryomov Date: Thu Jul 9 13:57:52 2015 +0300 libceph: treat sockaddr_storage with uninitialized family as blank addr_is_blank() should return true if family is neither AF_INET nor AF_INET6. This is what its counterpart entity_addr_t::is_blank_ip() is doing and it is the right thing to do: in process_banner() we check if our address is blank and if it is "learn" it from our peer. As it is, we never learn our address and always send out a blank one. This goes way back to ceph.git commit dd732cbfc1c9 ("use sockaddr_storage; and some ipv6 support groundwork") from 2009. While at at, do not open-code ipv6_addr_any() and use INADDR_ANY constant instead of 0. Signed-off-by: Ilya Dryomov Reviewed-by: Sage Weil net/ceph/messenger.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 757856d2b9568a701df9ea6a4be68effbb9d6f44 Author: Ilya Dryomov Date: Thu Jun 25 17:47:45 2015 +0300 libceph: enable ceph in a non-default network namespace Grab a reference on a network namespace of the 'rbd map' (in case of rbd) or 'mount' (in case of ceph) process and use that to open sockets instead of always using init_net and bailing if network namespace is anything but init_net. Be careful to not share struct ceph_client instances between different namespaces and don't add any code in the !CONFIG_NET_NS case. This is based on a patch from Hong Zhiguo . Signed-off-by: Ilya Dryomov Reviewed-by: Sage Weil include/linux/ceph/messenger.h | 3 +++ net/ceph/ceph_common.c | 16 ++++++++++------ net/ceph/messenger.c | 10 +++++++++- 3 files changed, 22 insertions(+), 7 deletions(-) commit 355c822847fa70fa1df6a7451b7ecf76116efcd2 Author: Alex Deucher Date: Wed Jul 8 12:58:20 2015 -0400 drm/radeon: disable vce init on cayman (v2) Cayman does not have vce. There were a few places in the shared cayman/TV code where we were trying to do vce stuff. v2: remove -ENOENT check Reviewed-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/ni.c | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) commit 0f11770417d849558c727ed20e1cd07444e15a00 Author: Christian König Date: Wed Jul 8 16:58:48 2015 +0200 drm/amdgpu: fix timeout calculation Signed-off-by: Christian König Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit dbedff05d163f8d1b4a97b91c57b939830fc235f Author: Christian König Date: Wed Jul 8 09:56:14 2015 +0200 drm/radeon: check if BO_VA is set before adding it to the invalidation list Otherwise we try to clear BO_VAs without an address. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=91141 Signed-off-by: Christian König Test-by: hadack@gmx.de Tested-by: Michel Dänzer Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/radeon_vm.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit eb99070b4ad105f8a516d99e95226180924eddc8 Author: Christian König Date: Wed Jul 8 09:56:13 2015 +0200 drm/radeon: allways add the VM clear duplicate We need to allways add the VM clear duplicate of the BO_VA, no matter what the old status was. Signed-off-by: Christian König Test-by: hadack@gmx.de Tested-by: Michel Dänzer Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/radeon_vm.c | 34 ++++++++++++++++------------------ 1 file changed, 16 insertions(+), 18 deletions(-) commit d57c0edfe00d3274b50f91ce3076ed0e82d28782 Author: Alex Deucher Date: Wed Jul 8 14:08:12 2015 -0400 Revert "Revert "drm/radeon: dont switch vt on suspend"" This reverts commit ac9134906b3f5c2b45dc80dab0fee792bd516d52. We've fixed the underlying problem with cursors, so re-enable this. drivers/gpu/drm/radeon/radeon_fb.c | 1 + 1 file changed, 1 insertion(+) commit 8991668ab4e26f985a8485719bce5d6d0623a644 Author: Michel Dänzer Date: Tue Jul 7 16:27:30 2015 +0900 drm/radeon: Fold radeon_set_cursor() into radeon_show_cursor() Reviewed-by: Grigori Goronzy Reviewed-by: Christian König Signed-off-by: Michel Dänzer Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/radeon_cursor.c | 49 +++++++++++++--------------------- 1 file changed, 19 insertions(+), 30 deletions(-) commit f3cbb17bcf676a2fc6aedebe9fbebd59e550c51a Author: Grigori Goronzy Date: Tue Jul 7 16:27:29 2015 +0900 drm/radeon: unpin cursor BOs on suspend and pin them again on resume (v2) Everything is evicted from VRAM before suspend, so we need to make sure all BOs are unpinned and re-pinned after resume. Fixes broken mouse cursor after resume introduced by commit b9729b17. [Michel Dänzer: Add pinning BOs on resume] v2: [Alex Deucher: merge cursor unpin into fb unpin loop] Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=100541 Cc: stable@vger.kernel.org Reviewed-by: Christian König (v1) Signed-off-by: Grigori Goronzy Signed-off-by: Michel Dänzer Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/radeon_device.c | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) commit cd404af0c930104462aa91344f07d002cf8248ed Author: Michel Dänzer Date: Tue Jul 7 16:27:28 2015 +0900 drm/radeon: Clean up reference counting and pinning of the cursor BOs Take a GEM reference for and pin the new cursor BO, unpin and drop the GEM reference for the old cursor BO in radeon_crtc_cursor_set2, and use radeon_crtc->cursor_addr in radeon_set_cursor. This fixes radeon_cursor_reset accidentally incrementing the cursor BO pin count, and cleans up the code a little. Cc: stable@vger.kernel.org Reviewed-by: Grigori Goronzy Reviewed-by: Christian König Signed-off-by: Michel Dänzer Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/radeon_cursor.c | 84 +++++++++++++++------------------- drivers/gpu/drm/radeon/radeon_mode.h | 1 - 2 files changed, 37 insertions(+), 48 deletions(-) commit 08ae217b8d44986062fe3648c5bb83816d5bc00f Author: Arnaldo Carvalho de Melo Date: Thu Jul 9 12:14:43 2015 -0300 perf thread_map: Fix the sizeof() calculation for map entries When we started adding extra stuff per array entry, growing the size of those entries to more than sizeof(pid_t), we had to convert those sizeof operations to the more robust sizeof(map->map[0]) idiom, that is future proof, i.e. if/when we add more stuff to those entries, that expression will produce the new per-entry size. And besides that, we need to zero out those extra fields, that sometimes may not get filled, like when we couldn't care less about the comms, since we don't need those, but since we will try freeing it at thread_map__delete(), we better fix it. That is why a thread_map__realloc() was provided. But that method wasn't used in thread_map__new_by_uid(), fix it. Reported-by: Ingo Molnar Fixes: 792402fd5c0a ("perf thrad_map: Add comm string into array") Fixes: 9d7e8c3a96e5 ("perf tools: Add thread_map__(alloc|realloc) helpers") 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-6a0swlm6m8lnu3wpjv284hkb@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/thread_map.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 70f19f5869c5accfd9f371c099f21c71516591b2 Author: Steven J. Magnani Date: Tue Jul 7 13:06:05 2015 -0500 udf: Don't corrupt unalloc spacetable when writing it For a UDF filesystem configured with an Unallocated Space Table, a filesystem operation that triggers an update to the table results in on-disk corruption that prevents remounting: udf_read_tagged: tag version 0x0000 != 0x0002 || 0x0003, block 274 For example: 1. Create a filesystem $ mkudffs --media-type=hd --blocksize=512 --lvid=BUGTEST \ --vid=BUGTEST --fsid=BUGTEST --space=unalloctable \ /dev/mmcblk0 2. Mount it # mount /dev/mmcblk0 /mnt 3. Create a file $ echo "No corruption, please" > /mnt/new.file 4. Umount # umount /mnt 5. Attempt remount # mount /dev/mmcblk0 /mnt This appears to be a longstanding bug caused by zero-initialization of the Unallocated Space Entry block buffer and only partial repopulation of required fields before writing to disk. Commit 0adfb339fd64 ("udf: Fix unalloc space handling in udf_update_inode") addressed one such field, but several others are required. Signed-off-by: Steven J. Magnani Signed-off-by: Jan Kara fs/udf/inode.c | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) commit b631788ab42ea4ba97dc30b3f47bad0edb0ddb4b Author: Vineet Gupta Date: Mon Jul 6 15:25:21 2015 +0530 ARC: slightly refactor macros for boot logging Signed-off-by: Vineet Gupta arch/arc/kernel/setup.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 9138d4138d8e1f0acf734d2fb3455108bf43380f Author: Vineet Gupta Date: Thu Jun 25 13:46:57 2015 +0530 ARC: Add llock/scond to futex backend Signed-off-by: Vineet Gupta arch/arc/include/asm/futex.h | 48 ++++++++++++++++++++++++++++++++++++++------ 1 file changed, 42 insertions(+), 6 deletions(-) commit 70d93d89416562c32adc9444a15677bdf25a72ab Author: Joël Porquet Date: Tue Jul 7 17:14:56 2015 -0400 arc:irqchip: prepare for drivers/irqchip/irqchip.h removal The IRQCHIP_DECLARE macro migrated to 'include/linux/irqchip.h'. See commit 91e20b5040c67c51aad88cf87db4305c5bd7f79d ("irqchip: Move IRQCHIP_DECLARE macro to include/linux/irqchip.h"). This patch removes the inclusions of private header 'drivers/irqchip/irqchip.h' and if necessary replaces them with inclusions of 'include/linux/irqchip.h'. Signed-off-by: Joel Porquet Signed-off-by: Vineet Gupta arch/arc/kernel/intc-arcv2.c | 1 - arch/arc/kernel/intc-compact.c | 1 - arch/arc/kernel/mcip.c | 1 - 3 files changed, 3 deletions(-) commit 80f420842ff42ad61f84584716d74ef635f13892 Author: Vineet Gupta Date: Fri Jul 3 11:26:22 2015 +0530 ARC: Make ARC bitops "safer" (add anti-optimization) ARCompact/ARCv2 ISA provide that any instructions which deals with bitpos/count operand ASL, LSL, BSET, BCLR, BMSK .... will only consider lower 5 bits. i.e. auto-clamp the pos to 0-31. ARC Linux bitops exploited this fact by NOT explicitly masking out upper bits for @nr operand in general, saving a bunch of AND/BMSK instructions in generated code around bitops. While this micro-optimization has worked well over years it is NOT safe as shifting a number with a value, greater than native size is "undefined" per "C" spec. So as it turns outm EZChip ran into this eventually, in their massive muti-core SMP build with 64 cpus. There was a test_bit() inside a loop from 63 to 0 and gcc was weirdly optimizing away the first iteration (so it was really adhering to standard by implementing undefined behaviour vs. removing all the iterations which were phony i.e. (1 << [63..32]) | for i = 63 to 0 | X = ( 1 << i ) | if X == 0 | continue So fix the code to do the explicit masking at the expense of generating additional instructions. Fortunately, this can be mitigated to a large extent as gcc has SHIFT_COUNT_TRUNCATED which allows combiner to fold masking into shift operation itself. It is currently not enabled in ARC gcc backend, but could be done after a bit of testing. Fixes STAR 9000866918 ("unsafe "undefined behavior" code in kernel") Reported-by: Noam Camus Cc: Signed-off-by: Vineet Gupta arch/arc/include/asm/bitops.h | 35 +++++++++-------------------------- 1 file changed, 9 insertions(+), 26 deletions(-) commit e2fc61f384c9224b55990a644bbcf68c25e20203 Author: Alexey Brodkin Date: Mon Jun 29 19:15:03 2015 +0300 ARCv2: [axs103] bump CPU frequency from 75 to 90 MHZ With up-to-date FPGA builds ARC cores are supposed to correctly operate even with 90 MHz clock (which is a target frequency for AXS103 release). Signed-off-by: Alexey Brodkin Cc: arc-linux-dev@synopsys.com arch/arc/boot/dts/axc003.dtsi | 2 +- arch/arc/boot/dts/axc003_idu.dtsi | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit a0f67441b06525a1e5fd713ba0d75af4e5d6b198 Author: Maninder Singh Date: Thu Jul 9 14:41:53 2015 +0530 drm/amdkfd: validate pdd where it acquired first Currently pdd is validate after dereferencing it, which is not correct, Thus validate pdd before its first use. Signed-off-by: Maninder Singh Signed-off-by: Oded Gabbay drivers/gpu/drm/amd/amdkfd/kfd_process.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit 1c885357da2d3cf62132e611c0beaf4cdf607dd9 Author: Markos Chandras Date: Wed Jul 1 09:31:14 2015 +0100 Revert "MIPS: Kconfig: Disable SMP/CPS for 64-bit" This reverts commit 6ca716f2e5571d25a3899c6c5c91ff72ea6d6f5e. SMP/CPS is now supported on 64bit cores. Cc: # 4.1 Reviewed-by: Paul Burton Signed-off-by: Markos Chandras Cc: linux-mips@linux-mips.org Cc: stable@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/10592/ Signed-off-by: Ralf Baechle arch/mips/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b677bc03d757c7d749527cccdd2afcf34ebeeb07 Author: Markos Chandras Date: Wed Jul 1 09:13:33 2015 +0100 MIPS: cps-vec: Use macros for various arithmetics and memory operations Replace lw/sw and various arithmetic instructions with macros so the code can work on 64-bit kernels as well. Cc: # 3.16+ Reviewed-by: Paul Burton Signed-off-by: Markos Chandras Cc: linux-mips@linux-mips.org Cc: stable@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/10591/ Signed-off-by: Ralf Baechle arch/mips/kernel/cps-vec.S | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) commit 717f14255a52ad445d6f0eca7d0f22f59d6ba1f8 Author: Markos Chandras Date: Wed Jul 1 09:13:32 2015 +0100 MIPS: kernel: cps-vec: Replace KSEG0 with CKSEG0 In preparation for 64-bit CPS support, we replace KSEG0 with CKSEG0 so 64-bit kernels can be supported. Cc: # 3.16+ Reviewed-by: Paul Burton Signed-off-by: Markos Chandras Cc: linux-mips@linux-mips.org Cc: stable@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/10590/ Signed-off-by: Ralf Baechle arch/mips/kernel/cps-vec.S | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 0586ac75cd0746a4d5c43372dabcea8739ae0176 Author: Markos Chandras Date: Wed Jul 1 09:13:31 2015 +0100 MIPS: kernel: cps-vec: Use ta0-ta3 pseudo-registers for 64-bit The cps-vec code assumes O32 ABI and uses t4-t7 in quite a few places. This breaks the build on 64-bit. As a result of which, use the pseudo-registers ta0-ta3 to make the code compatible with 64-bit. Cc: # 3.16+ Reviewed-by: Paul Burton Signed-off-by: Markos Chandras Cc: linux-mips@linux-mips.org Cc: stable@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/10589/ Signed-off-by: Ralf Baechle arch/mips/kernel/cps-vec.S | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) commit 977e043d5ea1270ce985e4c165724ff91dc3c3e2 Author: Markos Chandras Date: Wed Jul 1 09:13:30 2015 +0100 MIPS: kernel: cps-vec: Replace mips32r2 ISA level with mips64r2 mips32r2 is a subset of mips64r2, so we replace mips32r2 with mips64r2 in preparation for 64-bit CPS support. Cc: # 3.16+ Reviewed-by: Paul Burton Signed-off-by: Markos Chandras Cc: linux-mips@linux-mips.org Cc: stable@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/10588/ Signed-off-by: Ralf Baechle arch/mips/kernel/cps-vec.S | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 81a02e34ded906357deac7003fbb0d36b6cc503f Author: Markos Chandras Date: Wed Jul 1 09:13:29 2015 +0100 MIPS: kernel: cps-vec: Replace 'la' macro with PTR_LA The PTR_LA macro will pick the correct "la" or "dla" macro to load an address to a register. This gets rids of the following warnings (and others) when building a 64-bit CPS kernel: arch/mips/kernel/cps-vec.S:63: Warning: la used to load 64-bit address arch/mips/kernel/cps-vec.S:159: Warning: la used to load 64-bit address arch/mips/kernel/cps-vec.S:220: Warning: la used to load 64-bit address arch/mips/kernel/cps-vec.S:240: Warning: la used to load 64-bit address [...] Cc: # 3.16+ Reviewed-by: Paul Burton Signed-off-by: Markos Chandras Cc: linux-mips@linux-mips.org Cc: stable@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/10587/ Signed-off-by: Ralf Baechle arch/mips/kernel/cps-vec.S | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit fd5ed3066bb2f47814fe53cdc56d11a678551ae1 Author: Markos Chandras Date: Wed Jul 1 09:13:28 2015 +0100 MIPS: kernel: smp-cps: Fix 64-bit compatibility errors due to pointer casting Commit 1d8f1f5a780a ("MIPS: smp-cps: hotplug support") added hotplug support in the SMP/CPS implementation but it introduced a few build problems on 64-bit kernels due to pointer being casted to and from 'int' C types. We fix this problem by using 'unsigned long' instead which should match the size of the pointers in 32/64-bit kernels. Finally, we fix the comment since the CM base address is loaded to v1($3) instead of v0. Fixes the following build problems: arch/mips/kernel/smp-cps.c: In function 'wait_for_sibling_halt': arch/mips/kernel/smp-cps.c:366:17: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast] [...] arch/mips/kernel/smp-cps.c: In function 'cps_cpu_die': arch/mips/kernel/smp-cps.c:427:13: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] cc1: all warnings being treated as errors Fixes: 1d8f1f5a780a ("MIPS: smp-cps: hotplug support") Cc: # 3.16+ Reviewed-by: Paul Burton Signed-off-by: Markos Chandras Cc: linux-mips@linux-mips.org Cc: stable@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/10586/ Signed-off-by: Ralf Baechle arch/mips/kernel/smp-cps.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 143fefc8f315cd10e046e6860913c421c3385cb1 Author: Markos Chandras Date: Wed Jun 24 09:52:01 2015 +0100 MIPS: Fix erroneous JR emulation for MIPS R6 Commit 5f9f41c474befb4ebbc40b27f65bb7d649241581 ("MIPS: kernel: Prepare the JR instruction for emulation on MIPS R6") added support for emulating the JR instruction on MIPS R6 cores but that introduced a bug which could be triggered when hitting a JALR opcode because the code used the wrong field in the 'r_format' struct to determine the instruction opcode. This lead to crashes because an emulated JALR instruction was treated as a JR one when the R6 emulator was turned off. Fixes: 5f9f41c474be ("MIPS: kernel: Prepare the JR instruction for emulation on MIPS R6") Cc: # 4.0+ Signed-off-by: Markos Chandras Cc: linux-mips@linux-mips.org Cc: stable@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/10583/ Signed-off-by: Ralf Baechle arch/mips/math-emu/cp1emu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e9d92d223381f1f3be5d87322b576721d3b93612 Author: Markos Chandras Date: Wed Jun 24 09:52:00 2015 +0100 MIPS: Fix branch emulation for BLTC and BGEC instructions Commits f1b44067c19258b7614e3cd09dfe8d8e12ff5895 ("MIPS: Emulate the new MIPS R6 B{L,G}T{Z,}{AL,}C instructions") and commit a8ff66f52d3f17b5ae793955270675c197f73d6c ("MIPS: Emulate the new MIPS R6 B{L,G}E{Z,}{AL,}C instructions") added support for emulating various branch compact instructions. However, it missed the case for those which use the old BLEZL and BGTZL opcodes leading to random crashes when the R6 emulator is disabled. We fix this by ensuring that the 'rt' field is not zero which is always true for these branch compact instructions. Fixes: f1b44067c192 ("MIPS: Emulate the new MIPS R6 B{L,G}T{Z,}{AL,}C instructions") Fixes: a8ff66f52d3f ("MIPS: Emulate the new MIPS R6 B{L,G}E{Z,}{AL,}C instructions") Cc: # 4.0+ Signed-off-by: Markos Chandras Cc: linux-mips@linux-mips.org Cc: Markos Chandras Patchwork: https://patchwork.linux-mips.org/patch/10582/ Signed-off-by: Ralf Baechle arch/mips/kernel/branch.c | 4 ++-- arch/mips/math-emu/cp1emu.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit 761b4493bbb7b614387794f39e3969716e9e0215 Author: Markos Chandras Date: Wed Jun 24 09:29:20 2015 +0100 MIPS: kernel: traps: Fix broken indentation Fix broken indentation caused by the SMTC removal commit b633648c5ad3cfbda0b3daea50d2135d44899259 ("MIPS: MT: Remove SMTC support") Signed-off-by: Markos Chandras Fixes: b633648c5ad3c ("MIPS: MT: Remove SMTC support") Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10581/ Signed-off-by: Ralf Baechle arch/mips/kernel/traps.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit a6335fa11e08fc386740557b2a4c1b7ff34bc499 Author: Alexander Sverdlin Date: Thu Jul 2 17:16:01 2015 +0200 MIPS: bootmem: Don't use memory holes for page bitmap Commit f9a7febd leads to a fact that mapstart and therefore a page bitmap for bootmem allocator immediately follows initrd_end. This doesn't always work well on Octeon, where there are holes in PFN ranges (refer to 5b3b1688 and 4MB-aligned PFN allocation). Depending on the inird location it could happen, that mapstart would be in an area not allocated by plat_mem_setup() in arch/mips/cavium-octeon/setup.c, but in the alignment hole between initrd and the next PFN area. Later on this memory will be unconditionally made available to buddy allocator at the end of free_all_bootmem_core() (mm/bootmem.c). All of this results in Linux using the memory not designated for Linux in Octeon's plat_mem_setup(), which in turn means corruption of the memory used by another OS/baremetal code on the same SoC. It doesn't look to me as a problem of Octeon platform code, but rather as an inability of f9a7febd to deal correctly with the fragmented memory-mappings. Proposed fix moves the check for initrd address to the same calculation-loop in bootmem_init() (arch/mips/kernel/setup.c), which also accounts for kernel code location. This should result in mapstart located starting from the first PFN area after kernel code AND initrd. Signed-off-by: Alexander Sverdlin Cc: linux-mips@linux-mips.org Cc: David Daney Cc: Zubair Lutfullah Kakakhel Cc: Huacai Chen Cc: Andreas Herrmann Cc: Joe Perches Cc: Steven J. Hill Cc: Yusuf Khan Cc: Michael Kreuzer Cc: Aaro Koskinen Patchwork: https://patchwork.linux-mips.org/patch/10594/ Signed-off-by: Ralf Baechle arch/mips/kernel/setup.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) commit 1f6823faa8c563431a94e614d2b63ce16bb6f658 Author: Thomas Gleixner Date: Thu Jul 9 10:51:46 2015 +0200 time: Get rid of do_posix_clock_monotonic_gettime All users gone. Remove it before we get another one. Signed-off-by: Thomas Gleixner include/linux/timekeeping.h | 1 - 1 file changed, 1 deletion(-) commit 0ec62aaee919991d9e0e278f70776d560d95fc29 Author: Thomas Gleixner Date: Thu Jul 9 10:51:46 2015 +0200 cris: Replace do_posix_clock_monotonic_gettime() ktime_get_ts() is the proper interface today. Signed-off-by: Thomas Gleixner Cc: Jesper Nilsson arch/cris/arch-v32/drivers/sync_serial.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d23f47d4927fd2f61b3a754d83c7bcec215b5cfe Author: Johannes Thumshirn Date: Wed Jul 8 17:26:37 2015 +0200 USB: serial: Destroy serial_minors IDR on module exit Destroy serial_minors 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 Cc: stable # v3.11 Signed-off-by: Johan Hovold drivers/usb/serial/usb-serial.c | 1 + 1 file changed, 1 insertion(+) commit 94319ba10ecabc8f28129566d1f5793e3e7a0a79 Author: Koro Chen Date: Thu Jul 9 10:51:27 2015 +0800 ASoC: mediatek: Use platform_of_node for machine drivers This replaces the platform_name in snd_soc_dai_link by device tree node. Signed-off-by: Koro Chen Signed-off-by: Mark Brown .../devicetree/bindings/sound/mt8173-max98090.txt | 2 ++ .../bindings/sound/mt8173-rt5650-rt5676.txt | 2 ++ sound/soc/mediatek/mt8173-max98090.c | 17 +++++++++++++---- sound/soc/mediatek/mt8173-rt5650-rt5676.c | 19 +++++++++++++++---- 4 files changed, 32 insertions(+), 8 deletions(-) commit 52613921b31d8573a212a4b0854b390a18d9849c Author: Ville Syrjälä Date: Mon Jun 29 20:28:35 2015 +0300 Revert "drm/i915: Allocate context objects from stolen" Stolen gets trashed during hibernation, so storing contexts there is not a very good idea. On my IVB machines this leads to a totally dead GPU on resume. A reboot is required to resurrect it. So let's not store contexts where they will get trampled. This reverts commit 149c86e74fe44dcbac5e9f8d145c5fbc5dc21261. Cc: Chris Wilson Signed-off-by: Ville Syrjälä Acked-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_context.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 19ee835cdb0b5a8eb11a68f25a51b8039d564488 Author: Chris Wilson Date: Mon Jun 29 14:01:19 2015 +0100 drm/i915: Declare the swizzling unknown for L-shaped configurations The old style of memory interleaving swizzled upto the end of the first even bank of memory, and then used the remainder as unswizzled on the unpaired bank - i.e. swizzling is not constant for all memory. This causes problems when we try to migrate memory and so the kernel prevents migration at all when we detect L-shaped inconsistent swizzling. However, this issue also extends to userspace who try to manually detile into memory as the swizzling for an individual page is unknown (it depends on its physical address only known to the kernel), userspace cannot correctly swizzle objects. v2: Mark the global swizzling as unknown rather than adjust the value reported to userspace. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91105 Signed-off-by: Chris Wilson Cc: Daniel Vetter Cc: stable@vger.kernel.org Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_tiling.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit d5de1987853a7778bb048a9e52b3486eb9aceb17 Author: Johannes Thumshirn Date: Wed Jul 8 17:16:49 2015 +0200 macvtap: Destroy minor_idr on module_exit Destroy minor_idr on module_exit, reclaiming the allocated memory. This was detected by the following semantic patch (written by Luis Rodriguez ) @ defines_module_init @ declarer name module_init, module_exit; declarer name DEFINE_IDR; identifier init; @@ module_init(init); @ defines_module_exit @ identifier exit; @@ module_exit(exit); @ declares_idr depends on defines_module_init && defines_module_exit @ identifier idr; @@ DEFINE_IDR(idr); @ on_exit_calls_destroy depends on declares_idr && defines_module_exit @ identifier declares_idr.idr, defines_module_exit.exit; @@ exit(void) { ... idr_destroy(&idr); ... } @ missing_module_idr_destroy depends on declares_idr && defines_module_exit && !on_exit_calls_destroy @ identifier declares_idr.idr, defines_module_exit.exit; @@ exit(void) { ... +idr_destroy(&idr); } Signed-off-by: Johannes Thumshirn Signed-off-by: David S. Miller drivers/net/macvtap.c | 1 + 1 file changed, 1 insertion(+) commit ace15bbb39d7cdfa1f376badbc7e0633eed7d899 Merge: c936835 86e8971 Author: David S. Miller Date: Thu Jul 9 00:03:10 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 Netfilter fixes for your net tree. This batch mostly comes with patches to address fallout from the previous merge window cycle, they are: 1) Use entry->state.hook_list from nf_queue() instead of the global nf_hooks which is not valid when used from NFPROTO_NETDEV, this should cause no problems though since we have no userspace queueing for that family, but let's fix this now for the sake of correctness. Patch from Eric W. Biederman. 2) Fix compilation breakage in bridge netfilter if CONFIG_NF_DEFRAG_IPV4 is not set, from Bernhard Thaler. 3) Use percpu jumpstack in arptables too, now that there's a single copy of the rule blob we can't store the return address there anymore. Patch from Florian Westphal. 4) Fix a skb leak in the xmit path of bridge netfilter, problem there since 2.6.37 although it should be not possible to hit invalid traffic there, also from Florian. 5) Eric Leblond reports that when loading a large ruleset with many missing modules after a fresh boot, nf_tables can take long time commit it. Fix this by processing the full batch until the end, even on missing modules, then abort only once and restart processing. 6) Add bridge netfilter files to the MAINTAINER files. 7) Fix a net_device refcount leak in the new IPV6 bridge netfilter code, from Julien Grall. ==================== Signed-off-by: David S. Miller commit c936835c1ec6f871f32c9b87a7708700320075b3 Author: Peter Dunning Date: Wed Jul 8 10:05:10 2015 +0100 sfc: Report TX completions to BQL after all TX events in interrupt The limit for BQL is updated each time we call netdev_tx_completed_queue. Without this patch the BQL limit was updated for every TX event we see. The issue was that this only updated the limit to handle the data we complete in two events as the first event wouldn't show that enough traffic had been processed between them. This was OK when interrupt moderation was off but not when it was on as more data had to be completed in a single interrupt. The patch changes this so that we do report the completion to BQL only when all the TX events in the interrupt have been processed. Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/efx.c | 14 ++++++++++++++ drivers/net/ethernet/sfc/net_driver.h | 2 ++ drivers/net/ethernet/sfc/tx.c | 3 ++- 3 files changed, 18 insertions(+), 1 deletion(-) commit d065c3c17dae95832badf6329512dd057c905890 Author: Zheng Liu Date: Tue Jul 7 13:54:12 2015 -0700 drivers/net/usb: add device id for NVIDIA Tegra USB 3.0 Ethernet This device is sold as 'NVIDIA Tegra USB 3.0 Ethernet'. Chipset is RTL8153 and works with r8152. Signed-off-by: Zheng Liu Signed-off-by: David S. Miller drivers/net/usb/cdc_ether.c | 8 ++++++++ drivers/net/usb/r8152.c | 2 ++ 2 files changed, 10 insertions(+) commit 4eed4d8ff984abcb983ada5b3dbf56fce35f1068 Author: Denys Vlasenko Date: Tue Jul 7 20:48:55 2015 +0200 3c59x: Fix shared IRQ handling As its first order of business, boomerang_interrupt() checks whether the device really has any pending interrupts. If it does not, it does nothing and returns, but it still returns IRQ_HANDLED. This is wrong: interrupt was not handled, IRQ handlers of other devices sharing this IRQ line need to be called. vortex_interrupt() has it right: it returns IRQ_NONE in this case via IRQ_RETVAL(0). Do the same in boomerang_interrupt(). Signed-off-by: Denys Vlasenko CC: David S. Miller CC: linux-kernel@vger.kernel.org CC: netdev@vger.kernel.org Signed-off-by: David S. Miller drivers/net/ethernet/3com/3c59x.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 0769636cb5b95665ebadcd1a41c46f331f5a397d Author: Neil Horman Date: Tue Jul 7 14:02:18 2015 -0400 vmxnet3: prevent receive getting out of sequence on napi poll vmxnet3's current napi path is built to count every rx descriptor we recieve, and use that as a count of the napi budget. That means its possible to return from a napi poll halfway through recieving a fragmented packet accross multiple dma descriptors. If that happens, the next napi poll will start with the descriptor ring in an improper state (e.g. the first descriptor we look at may have the end-of-packet bit set), which will cause a BUG halt in the driver. Fix the issue by only counting whole received packets in the napi poll and returning that value, rather than the descriptor count. Tested by the reporter and myself, successfully Signed-off-by: Neil Horman CC: Shreyas Bhatewara CC: "David S. Miller" Acked-by: Andy Gospodarek Signed-off-by: David S. Miller drivers/net/vmxnet3/vmxnet3_drv.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 974d7af5fcc295dcf8315255142b2fe44fd74b0c Author: Andy Gospodarek Date: Tue Jul 7 13:56:57 2015 -0400 ipv4: add support for linkdown sysctl to netconf This kernel patch exports the value of the new ignore_routes_with_linkdown via netconf. v2: changes to notify userspace via netlink when sysctl values change and proposed for 'net' since this could be considered a bugfix Signed-off-by: Andy Gospodarek Suggested-by: Nicolas Dichtel Acked-by: Nicolas Dichtel Signed-off-by: David S. Miller include/uapi/linux/netconf.h | 1 + net/ipv4/devinet.c | 13 +++++++++++++ 2 files changed, 14 insertions(+) commit 883a2dfd6f13eca5aab30f0bcc9a6f1e2f983b1e Merge: 331c584 8076ca4 Author: Linus Torvalds Date: Wed Jul 8 17:34:51 2015 -0700 Merge tag 'pm+acpi-4.2-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm Pull power management and ACPI updates from Rafael Wysocki: "These are fixes on top of the previous PM+ACPI pull requests (including one fix for a 4.1 regression) and two commits adding _CLS-based device enumeration support to the ACPI core and the ATA subsystem that waited for the latest ACPICA changes to be merged. Specifics: - Fix for an ACPI resources management regression introduced during the 4.1 cycle (that unfortunately went into -stable) effectively reverting the bad commit along with the recent fixups on top of it and using an alternative approach to address the underlying issue (Rafael J Wysocki). - Fix for a memory leak and an incorrect return value in an error code path in the ACPI LPSS (Low-Power Subsystem) driver (Rafael J Wysocki). - Fix for a leftover dangling pointer in an error code path in the new wakeup IRQ support code (Rafael J Wysocki). - Fix to prevent infinite loops (due to errors in other places) from happening in the core generic PM domains support code (Geert Uytterhoeven). - Hibernation documentation update/clarification (Uwe Geuder). - Support for _CLS-based device enumeration in the ACPI core and in the ATA subsystem (Suravee Suthikulpanit)" * tag 'pm+acpi-4.2-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: PM / wakeirq: Avoid setting power.wakeirq too hastily ata: ahci_platform: Add ACPI _CLS matching ACPI / scan: Add support for ACPI _CLS device matching PM / hibernate: clarify resume documentation PM / Domains: Avoid infinite loops in attach/detach code ACPI / LPSS: Fix up acpi_lpss_create_device() ACPI / PNP: Reserve ACPI resources at the fs_initcall_sync stage commit 331c5841ddbb4cf3034ffc425a70f42acc5cdaff Merge: 9d993cc 673c2c3 Author: Linus Torvalds Date: Wed Jul 8 17:15:55 2015 -0700 Merge branch 'stable' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile Pull arch/tile fix from Chris Metcalf: "This fix eliminates a "section mismatch" warning caused by the new __ex_table checking code in modpost" * 'stable' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile: modpost: work correctly with tile coldtext sections commit 9d993ccb004f93b745d1557ab034928d995dad59 Merge: 45820c2 758556b Author: Linus Torvalds Date: Wed Jul 8 17:14:54 2015 -0700 Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux Pull module fix from Rusty Russell: "Single fix: missing rbtree removal in the module load failure path. Easy to trigger with bad params. Thanks to Peter Zijlstra and Arthur Marsh for going around on this one" * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux: module: Fix load_module() error path commit 671b53eec2edcbfac3e53d02cf3d0c6d9ecc07de Author: Shradha Shah Date: Wed Jul 8 10:12:45 2015 +0100 sfc: Ensure down_write(&filter_sem) and up_write() are matched before calling efx_net_open() This patch avoids the double up_write to filter_sem if efx_net_open() fails. Resolves: 2d432f20d27c1813a2746008e16dd6ce12a14dc1 Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10_sriov.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) commit f1158b74e54f2e2462ba5e2f45a118246d9d5b43 Author: Nikolay Aleksandrov Date: Tue Jul 7 15:55:56 2015 +0200 bridge: mdb: zero out the local br_ip variable before use Since commit b0e9a30dd669 ("bridge: Add vlan id to multicast groups") there's a check in br_ip_equal() for a matching vlan id, but the mdb functions were not modified to use (or at least zero it) so when an entry was added it would have a garbage vlan id (from the local br_ip variable in __br_mdb_add/del) and this would prevent it from being matched and also deleted. So zero out the whole local ip var to protect ourselves from future changes and also to fix the current bug, since there's no vlan id support in the mdb uapi - use always vlan id 0. Example before patch: root@debian:~# bridge mdb add dev br0 port eth1 grp 239.0.0.1 permanent root@debian:~# bridge mdb dev br0 port eth1 grp 239.0.0.1 permanent root@debian:~# bridge mdb del dev br0 port eth1 grp 239.0.0.1 permanent RTNETLINK answers: Invalid argument After patch: root@debian:~# bridge mdb add dev br0 port eth1 grp 239.0.0.1 permanent root@debian:~# bridge mdb dev br0 port eth1 grp 239.0.0.1 permanent root@debian:~# bridge mdb del dev br0 port eth1 grp 239.0.0.1 permanent root@debian:~# bridge mdb Signed-off-by: Nikolay Aleksandrov Fixes: b0e9a30dd669 ("bridge: Add vlan id to multicast groups") Signed-off-by: David S. Miller net/bridge/br_mdb.c | 2 ++ 1 file changed, 2 insertions(+) commit 1973db0df7c3bd69de2a1041d3364567287771d9 Author: Mugunthan V N Date: Tue Jul 7 18:30:39 2015 +0530 drivers: net: cpsw: fix crash while accessing second slave ethernet interface When cpsw's number of slave is set to 1 in device tree and while accessing second slave ndev and priv in cpsw_tx_interrupt(), there is a kernel crash. This is due to cpsw_get_slave_priv() not verifying number of slaves while retriving netdev priv and returns a invalid memory region. Fixing the issue by introducing number of slave check in cpsw_get_slave_priv() and cpsw_get_slave_ndev(). [ 15.879589] Unable to handle kernel paging request at virtual address 0f0e142c [ 15.888540] pgd = ed374000 [ 15.891359] [0f0e142c] *pgd=00000000 [ 15.895105] Internal error: Oops: 5 [#1] SMP ARM [ 15.899936] Modules linked in: [ 15.903139] CPU: 0 PID: 593 Comm: udhcpc Tainted: G W 4.1.0-12205-gfda8b18-dirty #10 [ 15.912386] Hardware name: Generic AM43 (Flattened Device Tree) [ 15.918557] task: ed2a2e00 ti: ed3fe000 task.ti: ed3fe000 [ 15.924187] PC is at cpsw_tx_interrupt+0x30/0x44 [ 15.929008] LR is at _raw_spin_unlock_irqrestore+0x40/0x44 [ 15.934726] pc : [] lr : [] psr: 20000193 [ 15.934726] sp : ed3ffc08 ip : ed2a2e40 fp : 00000000 [ 15.946685] r10: c0969ce8 r9 : c0969cfc r8 : 00000000 [ 15.952129] r7 : 000000c6 r6 : ee54ab00 r5 : ee169c64 r4 : ee534e00 [ 15.958932] r3 : 0f0e0d0c r2 : 00000000 r1 : ed3ffbc0 r0 : 00000001 [ 15.965735] Flags: nzCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment user [ 15.973261] Control: 10c5387d Table: ad374059 DAC: 00000015 [ 15.979246] Process udhcpc (pid: 593, stack limit = 0xed3fe218) [ 15.985414] Stack: (0xed3ffc08 to 0xed400000) [ 15.989954] fc00: ee54ab00 c009928c c0a9e648 60000193 000032e4 ee169c00 [ 15.998478] fc20: ee169c64 ee169c00 ee169c64 ee54ab00 00000001 00000001 ee67e268 ee008800 [ 16.006995] fc40: ee534800 c009946c ee169c00 ee169c64 c08bd660 c009c370 c009c2a4 000000c6 [ 16.015513] fc60: c08b75c4 c08b0854 00000000 c0098b3c 000000c6 c0098c50 ed3ffcb0 0000003a [ 16.024033] fc80: ed3ffcb0 fa24010c c08b7800 fa240100 ee7e9880 c00094c4 c05ef4e8 60000013 [ 16.032556] fca0: ffffffff ed3ffce4 ee7e9880 c05ef964 00000001 ed2a33d8 00000000 ed2a2e00 [ 16.041080] fcc0: 60000013 ee536bf8 60000013 ee51b800 ee7e9880 ee67e268 ee7e9880 ee534800 [ 16.049603] fce0: c0ad0768 ed3ffcf8 c008e910 c05ef4e8 60000013 ffffffff 00000001 00000001 [ 16.058121] fd00: ee536bf8 c0487a04 00000000 00000000 ee534800 00000000 00000156 c048c990 [ 16.066645] fd20: 00000000 00000000 c0969f40 00000000 00000000 c05000e8 00000001 00000000 [ 16.075167] fd40: 00000000 c051eefc 00000000 ee67e268 00000000 00000000 ee51b800 ed3ffd9c [ 16.083690] fd60: 00000000 ee67e200 ee51b800 ee7e9880 ee67e268 00000000 00000000 ee67e200 [ 16.092211] fd80: ee51b800 ee7e9880 ee67e268 ee534800 ee67e200 c051eedc ee67e268 00000010 [ 16.100727] fda0: 00000000 00000000 ee7e9880 ee534800 00000000 ee67e268 ee51b800 c05006fc [ 16.109247] fdc0: ee67e268 00000001 c0500488 00000156 ee7e9880 00000000 ed3fe000 fffffff4 [ 16.117771] fde0: ed3fff1c ee7e9880 ee534800 00000148 00000000 ed1f8340 00000000 00000000 [ 16.126289] fe00: 00000000 c05a9054 00000000 00000000 00000156 c0ab62a8 00000010 ed3e7000 [ 16.134812] fe20: 00000000 00000008 edcfb700 ed3fff1c c0fb5f94 ed2a2e00 c0fb5f64 000005d8 [ 16.143336] fe40: c0a9b3b8 00000000 ed3e7070 00000000 00000000 00000000 00009f40 00000000 [ 16.151858] fe60: 00000000 00020022 00110008 00000000 00000000 43004400 00000000 ffffffff [ 16.160374] fe80: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 [ 16.168898] fea0: edcfb700 bee5f380 00000014 00000000 ed3fe000 00000000 00004400 c04e2b64 [ 16.177415] fec0: 00000002 c04e3b00 ed3ffeec 00000001 0000011a 00000000 00000000 bee5f394 [ 16.185937] fee0: 00000148 ed3fff10 00000014 00000001 00000000 00000000 ed3ffee4 00000000 [ 16.194459] ff00: 00000000 00000000 00000000 c04e3664 00080011 00000002 06000000 ffffffff [ 16.202980] ff20: 0000ffff ffffffff 0000ffff c008dd54 ee5a6f08 ee636e80 c096972d c0089c14 [ 16.211499] ff40: 00000000 60000013 ee5a6f40 60000013 00000000 ee5a6f40 00000002 00000006 [ 16.220023] ff60: 00000000 edcfb700 00000001 ed2a2e00 c000f60c 00000001 0000011a c008ea34 [ 16.228540] ff80: 00000006 00000000 bee5f380 00000014 bee5f380 00000014 bee5f380 00000122 [ 16.237059] ffa0: c000f7c4 c000f5e0 bee5f380 00000014 00000006 bee5f394 00000148 00000000 [ 16.245581] ffc0: bee5f380 00000014 bee5f380 00000122 fffffd6e 00004300 00004800 00004400 [ 16.254104] ffe0: bee5f378 bee5f36c 000307ec b6f39044 40000010 00000006 ed36fa40 00000000 [ 16.262642] [] (cpsw_tx_interrupt) from [] (handle_irq_event_percpu+0x64/0x204) [ 16.272076] [] (handle_irq_event_percpu) from [] (handle_irq_event+0x40/0x64) [ 16.281330] [] (handle_irq_event) from [] (handle_fasteoi_irq+0xcc/0x1a8) [ 16.290220] [] (handle_fasteoi_irq) from [] (generic_handle_irq+0x20/0x30) [ 16.299197] [] (generic_handle_irq) from [] (__handle_domain_irq+0x64/0xdc) [ 16.308273] [] (__handle_domain_irq) from [] (gic_handle_irq+0x20/0x60) [ 16.316987] [] (gic_handle_irq) from [] (__irq_svc+0x44/0x5c) [ 16.324779] Exception stack(0xed3ffcb0 to 0xed3ffcf8) [ 16.330044] fca0: 00000001 ed2a33d8 00000000 ed2a2e00 [ 16.338567] fcc0: 60000013 ee536bf8 60000013 ee51b800 ee7e9880 ee67e268 ee7e9880 ee534800 [ 16.347090] fce0: c0ad0768 ed3ffcf8 c008e910 c05ef4e8 60000013 ffffffff [ 16.353987] [] (__irq_svc) from [] (_raw_spin_unlock_irqrestore+0x34/0x44) [ 16.362973] [] (_raw_spin_unlock_irqrestore) from [] (cpdma_check_free_tx_desc+0x60/0x6c) [ 16.373311] [] (cpdma_check_free_tx_desc) from [] (cpsw_ndo_start_xmit+0xb4/0x1ac) [ 16.383017] [] (cpsw_ndo_start_xmit) from [] (dev_hard_start_xmit+0x2a4/0x4c0) [ 16.392364] [] (dev_hard_start_xmit) from [] (sch_direct_xmit+0xf4/0x210) [ 16.401246] [] (sch_direct_xmit) from [] (__dev_queue_xmit+0x2ac/0x7bc) [ 16.409960] [] (__dev_queue_xmit) from [] (packet_sendmsg+0xc68/0xeb4) [ 16.418585] [] (packet_sendmsg) from [] (sock_sendmsg+0x14/0x24) [ 16.426663] [] (sock_sendmsg) from [] (SyS_sendto+0xb4/0xe0) [ 16.434377] [] (SyS_sendto) from [] (ret_fast_syscall+0x0/0x54) [ 16.442360] Code: e5943118 e593303c e3530000 0a000002 (e5930720) [ 16.448716] ---[ end trace a68159f094d85ba6 ]--- [ 16.453526] Kernel panic - not syncing: Fatal exception in interrupt [ 16.460149] ---[ end Kernel panic - not syncing: Fatal exception in interrupt Signed-off-by: Mugunthan V N Cc: # v3.8+ Signed-off-by: David S. Miller drivers/net/ethernet/ti/cpsw.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit fdd75ea8df370f206a8163786e7470c1277a5064 Author: Stephen Smalley Date: Tue Jul 7 09:43:45 2015 -0400 net/tipc: initialize security state for new connection socket Calling connect() with an AF_TIPC socket would trigger a series of error messages from SELinux along the lines of: SELinux: Invalid class 0 type=AVC msg=audit(1434126658.487:34500): avc: denied { } for pid=292 comm="kworker/u16:5" scontext=system_u:system_r:kernel_t:s0 tcontext=system_u:object_r:unlabeled_t:s0 tclass= permissive=0 This was due to a failure to initialize the security state of the new connection sock by the tipc code, leaving it with junk in the security class field and an unlabeled secid. Add a call to security_sk_clone() to inherit the security state from the parent socket. Reported-by: Tim Shearer Signed-off-by: Stephen Smalley Acked-by: Paul Moore Acked-by: Ying Xue Signed-off-by: David S. Miller net/tipc/socket.c | 1 + 1 file changed, 1 insertion(+) commit 4df48e8c0e9f210f54bcf975aa6c39cf67672781 Merge: b5a983f 535a617 Author: David S. Miller Date: Wed Jul 8 16:07:34 2015 -0700 Merge branch 'sfc-set-mac' Shradha Shah says: ==================== sfc: compat for lack of VADAPTOR_SET_MAC in adaptor_firmware <= 4.1.1.1023 This patch series resolves an incompatibility with legacy firmware due to the lack of MC_CMD_VADAPTOR_SET_MAC in adaptor_firmware <= 4.1.1.1023 Unless this patch series is applied there will be a compatibility issue between the driver and Solarflare adapters running older firmware. Tested with and without CONFIG_SFC_SRIOV ==================== Signed-off-by: David S. Miller commit 535a61777f44eebcb71f2a6866f95b17ee0f13c7 Author: Daniel Pieczko Date: Tue Jul 7 11:37:33 2015 +0100 sfc: suppress handled MCDI failures when changing the MAC address Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 7a186f4703de6f4b7feb5d09735b096145b8918c Author: Daniel Pieczko Date: Tue Jul 7 11:37:19 2015 +0100 sfc: add legacy method for changing a PF's MAC address Some versions of MCFW do not support the MC_CMD_VADAPTOR_SET_MAC command, and ENOSYS will be returned. If the PF created its own vport, the function's datapath must be stopped and the vport can be reconfigured to reflect the new MAC address. If the MCFW created the vport for the PF (which is the case when the nic_data->vport_mac is blank), nothing further needs to be done as the vport is not under the control of the PF. This only applies to PFs because the MCFW in question does not support VFs. Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10.c | 120 ++++++++++++++++++++++++++++++++++ drivers/net/ethernet/sfc/ef10_sriov.c | 42 ------------ drivers/net/ethernet/sfc/ef10_sriov.h | 6 ++ 3 files changed, 126 insertions(+), 42 deletions(-) commit 9e9f665a18008999e749bd41394efcbf5c37a726 Author: Daniel Pieczko Date: Tue Jul 7 11:37:00 2015 +0100 sfc: refactor code in efx_ef10_set_mac_address() Re-organize the structure of error handling to avoid having to duplicate the netif_err() around the ifdefs. The only change to the behaviour of the error-handling is that the PF's data structure to record VF details should only be updated if the original command succeeded. Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10.c | 45 ++++++++++++++++++----------------------- 1 file changed, 20 insertions(+), 25 deletions(-) commit b5a983f3141239b5b0b4a4e66efa31f8a26354b8 Author: Mazhar Rana Date: Tue Jul 7 15:04:50 2015 +0530 bonding: "primary_reselect" with "failure" is not working properly When "primary_reselect" is set to "failure", primary interface should not become active until current active slave is down. But if we set first member of bond device as a "primary" interface and "primary_reselect" is set to "failure" then whenever primary interface's link get back(up) it become active slave even if current active slave is still up. With this patch, "bond_find_best_slave" will not traverse members if primary interface is not candidate for failover/reselection and current active slave is still up. Signed-off-by: Mazhar Rana Signed-off-by: Jay Vosburgh Signed-off-by: Jay Vosburgh Signed-off-by: David S. Miller drivers/net/bonding/bond_main.c | 51 +++++++++++++++++++++++++++-------------- 1 file changed, 34 insertions(+), 17 deletions(-) commit fc24f2b2094366da8786f59f2606307e934cea17 Author: Timo Teräs Date: Tue Jul 7 08:34:13 2015 +0300 ip_tunnel: fix ipv4 pmtu check to honor inner ip header df Frag needed should be sent only if the inner header asked to not fragment. Currently fragmentation is broken if the tunnel has df set, but df was not asked in the original packet. The tunnel's df needs to be still checked to update internally the pmtu cache. Commit 23a3647bc4f93bac broke it, and this commit fixes the ipv4 df check back to the way it was. Fixes: 23a3647bc4f93bac ("ip_tunnels: Use skb-len to PMTU check.") Cc: Pravin B Shelar Signed-off-by: Timo Teräs Acked-by: Pravin B Shelar Signed-off-by: David S. Miller net/ipv4/ip_tunnel.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 4f7d2cdfdde71ffe962399b7020c674050329423 Author: Daniel Borkmann Date: Tue Jul 7 00:07:52 2015 +0200 rtnetlink: verify IFLA_VF_INFO attributes before passing them to driver Jason Gunthorpe reported that since commit c02db8c6290b ("rtnetlink: make SR-IOV VF interface symmetric"), we don't verify IFLA_VF_INFO attributes anymore with respect to their policy, that is, ifla_vfinfo_policy[]. Before, they were part of ifla_policy[], but they have been nested since placed under IFLA_VFINFO_LIST, that contains the attribute IFLA_VF_INFO, which is another nested attribute for the actual VF attributes such as IFLA_VF_MAC, IFLA_VF_VLAN, etc. Despite the policy being split out from ifla_policy[] in this commit, it's never applied anywhere. nla_for_each_nested() only does basic nla_ok() testing for struct nlattr, but it doesn't know about the data context and their requirements. Fix, on top of Jason's initial work, does 1) parsing of the attributes with the right policy, and 2) using the resulting parsed attribute table from 1) instead of the nla_for_each_nested() loop (just like we used to do when still part of ifla_policy[]). Reference: http://thread.gmane.org/gmane.linux.network/368913 Fixes: c02db8c6290b ("rtnetlink: make SR-IOV VF interface symmetric") Reported-by: Jason Gunthorpe Cc: Chris Wright Cc: Sucheta Chakraborty Cc: Greg Rose Cc: Jeff Kirsher Cc: Rony Efraim Cc: Vlad Zolotarov Cc: Nicolas Dichtel Cc: Thomas Graf Signed-off-by: Jason Gunthorpe Signed-off-by: Daniel Borkmann Acked-by: Vlad Zolotarov Signed-off-by: David S. Miller net/core/rtnetlink.c | 187 ++++++++++++++++++++++++++------------------------- 1 file changed, 96 insertions(+), 91 deletions(-) commit 6c3e921b18edca290099adfddde8a50236bf2d80 Author: Andrew Lunn Date: Mon Jul 6 20:34:55 2015 +0200 net: fec: Ensure clocks are enabled while using mdio bus When a switch is attached to the mdio bus, the mdio bus can be used while the interface is not open. If the IPG clock is not enabled, MDIO reads/writes will simply time out. Add support for runtime PM to control this clock. Enable/disable this clock using runtime PM, with open()/close() and mdio read()/write() function triggering runtime PM operations. Since PM is optional, the IPG clock is enabled at probe and is no longer modified by fec_enet_clk_enable(), thus if PM is not enabled in the kernel, it is guaranteed the clock is running when MDIO operations are performed. Signed-off-by: Andrew Lunn Acked-by: Fugang Duan Signed-off-by: David S. Miller drivers/net/ethernet/freescale/fec_main.c | 88 ++++++++++++++++++++++++++----- 1 file changed, 75 insertions(+), 13 deletions(-) commit cfbfd86bfde15020bccde377e11586ee5c8b701d Author: Lendacky, Thomas Date: Mon Jul 6 11:57:37 2015 -0500 amd-xgbe: Fix DMA API debug warning When running a kernel configured with CONFIG_DMA_API_DEBUG=y a warning is issued: DMA-API: device driver tries to sync DMA memory it has not allocated This warning is the result of mapping the full range of the Rx buffer pages allocated and then performing a dma_sync_single_for_cpu against a calculated DMA address. The proper thing to do is to use the dma_sync_single_range_for_cpu with a base DMA address and an offset. Reported-by: Kim Phillips Signed-off-by: Tom Lendacky Tested-by: Kim Phillips Signed-off-by: David S. Miller drivers/net/ethernet/amd/xgbe/xgbe-desc.c | 3 ++- drivers/net/ethernet/amd/xgbe/xgbe-dev.c | 11 +++++++---- drivers/net/ethernet/amd/xgbe/xgbe-drv.c | 17 +++++++++++------ drivers/net/ethernet/amd/xgbe/xgbe.h | 3 ++- 4 files changed, 22 insertions(+), 12 deletions(-) commit 673c2c34f684e9d4328459e426ab54d51a5865c5 Author: Chris Metcalf Date: Wed Jul 8 17:07:41 2015 -0400 modpost: work correctly with tile coldtext sections The tilegx and tilepro compilers use .coldtext for their unlikely executed text section name, so an __attribute__((cold)) function will (when compiled with higher optimization levels) land in the .coldtext section. Modify modpost to add .coldtext to the set of OTHER_TEXT_SECTIONS so we don't get warnings about referencing such a section in an __ex_table block, and then also modify arch/tile/lib/memcpy_user_64.c so that it uses plain ".coldtext" instead of ".coldtext.memcpy". The latter naming is a relic of an earlier use of -ffunction-sections, which we no longer use by default. Signed-off-by: Chris Metcalf Acked-by: Rusty Russell arch/tile/lib/memcpy_user_64.c | 4 ++-- scripts/mod/modpost.c | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) commit 95ec655bc465ccb2a3329d4aff9a45e3c8188db5 Author: Nicolas Dichtel Date: Mon Jul 6 17:25:10 2015 +0200 Revert "dev: set iflink to 0 for virtual interfaces" This reverts commit e1622baf54df8cc958bf29d71de5ad545ea7d93c. The side effect of this commit is to add a '@NONE' after each virtual interface name with a 'ip link'. It may break existing scripts. Reported-by: Olivier Hartkopp Signed-off-by: Nicolas Dichtel Tested-by: Oliver Hartkopp Signed-off-by: David S. Miller net/core/dev.c | 4 ---- 1 file changed, 4 deletions(-) commit d339727c2b1a10f25e6636670ab6e1841170e328 Author: Eric Dumazet Date: Mon Jul 6 17:13:26 2015 +0200 net: graceful exit from netif_alloc_netdev_queues() User space can crash kernel with ip link add ifb10 numtxqueues 100000 type ifb We must replace a BUG_ON() by proper test and return -EINVAL for crazy values. Fixes: 60877a32bce00 ("net: allow large number of tx queues") Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller net/core/dev.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 142b942a75cb10ede1b42bf85368d41449ab4e3b Author: Phil Sutter Date: Mon Jul 6 15:51:20 2015 +0200 rhashtable: fix for resize events during table walk If rhashtable_walk_next detects a resize operation in progress, it jumps to the new table and continues walking that one. But it misses to drop the reference to it's current item, leading it to continue traversing the new table's bucket in which the current item is sorted into, and after reaching that bucket's end continues traversing the new table's second bucket instead of the first one, thereby potentially missing items. This fixes the rhashtable runtime test for me. Bug probably introduced by Herbert Xu's patch eddee5ba ("rhashtable: Fix walker behaviour during rehash") although not explicitly tested. Fixes: eddee5ba ("rhashtable: Fix walker behaviour during rehash") Signed-off-by: Phil Sutter Acked-by: Herbert Xu Signed-off-by: David S. Miller lib/rhashtable.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit f7e2965db17dd3b60f05fad88e7afc79ea75b48f Author: Satish Ashok Date: Mon Jul 6 05:53:35 2015 -0700 bridge: mdb: start delete timer for temp static entries Start the delete timer when adding temp static entries so they can expire. Signed-off-by: Satish Ashok Signed-off-by: Nikolay Aleksandrov Fixes: ccb1c31a7a87 ("bridge: add flags to distinguish permanent mdb entires") Signed-off-by: David S. Miller net/bridge/br_mdb.c | 3 +++ 1 file changed, 3 insertions(+) commit 9ccd608070b6d4fd1a89fd76a84184fe401fb6a8 Author: Kristina Martsenko Date: Wed Jul 1 13:36:03 2015 +0100 arm64: dts: add device tree for ARM SMM-A53x2 on LogicTile Express 20MG Add a DTS file for the MP2 Cortex-A53 Soft Macrocell Model implemented on a LogicTile Express 20MG (V2F-1XV7) daughterboard. This is based on the version that's currently available from the ARM DTS repository [1]. [1] git://linux-arm.org/arm-dts.git Signed-off-by: Kristina Martsenko Acked-by: Sudeep Holla Signed-off-by: Kevin Hilman MAINTAINERS | 1 + arch/arm64/boot/dts/arm/Makefile | 1 + .../boot/dts/arm/vexpress-v2f-1xv7-ca53x2.dts | 191 +++++++++++++++++++++ 3 files changed, 193 insertions(+) commit 3adf7aaa76e720b52092e4bf8e14d8d231583af6 Author: Sudeep Holla Date: Wed Jul 1 13:36:02 2015 +0100 arm: dts: vexpress: add missing CCI PMU device node to TC2 The CCI device node was added to vexpress CA15_A7(i.e. TC2) much before the CCI PMU support and binding was added. This patch adds the missing PMU node so that CCI PMUs can be used on TC2. Cc: Liviu Dudau Cc: Lorenzo Pieralisi Acked-by: Punit Agrawal Signed-off-by: Sudeep Holla Signed-off-by: Kevin Hilman arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 4d44f2a0266cdcc1226c7d94431ab1d57d0f6d53 Author: Mark Rutland Date: Wed Jul 1 13:36:01 2015 +0100 arm: dts: vexpress: describe all PMUs in TC2 dts The dts for the CoreTile Express A15x2 A7x3 (TC2) only describes the PMUs of the Cortex-A15 CPUs, and not the Cortex-A7 CPUs. Now that we have a mechanism for describing disparate PMUs and their interrupts in device tree, this patch makes use of these to describe the PMUs for all CPUs in the system. For consistency, the existing A15 PMU interrupt-affinity property is reflowed across two lines. Signed-off-by: Mark Rutland Acked-by: Will Deacon Acked-by: Sudeep Holla Cc: Liviu Dudau Cc: Lorenzo Pieralisi Signed-off-by: Kevin Hilman arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) commit 758556bdc1c8a8dffea0ea9f9df891878cc2468c Author: Peter Zijlstra Date: Thu Jul 9 06:48:06 2015 +0930 module: Fix load_module() error path The load_module() error path frees a module but forgot to take it out of the mod_tree, leaving a dangling entry in the tree, causing havoc. Cc: Mathieu Desnoyers Reported-by: Arthur Marsh Tested-by: Arthur Marsh Fixes: 93c2e105f6bc ("module: Optimize __module_address() using a latched RB-tree") Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Rusty Russell kernel/module.c | 1 + 1 file changed, 1 insertion(+) commit efc5120b8259243fa945d0028450c0a7a5a4b9ef Author: Tirumalesh Chalamarla Date: Fri Jun 26 12:12:23 2015 -0700 GICv3: Add ITS entry to THUNDER dts The PCIe host controller uses MSIs provided by GICv3 ITS. Enable it on Thunder SoCs by adding an entry to DT. Signed-off-by: Tirumalesh Chalamarla Acked-by: Marc Zyngier Signed-off-by: Kevin Hilman arch/arm64/boot/dts/cavium/thunder-88xx.dtsi | 9 +++++++++ 1 file changed, 9 insertions(+) commit 8dfaf05682ebb9be8aaf29538f1acf89d885ef44 Merge: b649125 b199947 Author: Kevin Hilman Date: Wed Jul 8 14:20:12 2015 -0700 Merge tag 'sirf-iobrg2regmap-for-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/baohua/linux into fixes Merge "CSR SiRFSoC rtc iobrg move to regmap for 4.2" from Barry Song: move CSR rtc iobrg read/write API to be regmap this moves to general APIs, and all drivers will be changed based on it. * tag 'sirf-iobrg2regmap-for-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/baohua/linux: ARM: prima2: move to use REGMAP APIs for rtciobrg commit b649125350c0b327ae0ca0747196925904931a4d Merge: 3d8cc14 27b0d37 Author: Kevin Hilman Date: Wed Jul 8 14:18:45 2015 -0700 Merge tag 'atlas7-pinctrl-dts-for-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/baohua/linux into fixes Merge "CSR atlas7 pinctrl descriptions for 4.2" from Barry Song: add atlas7 pinctrl dts stuff add atlas7 pin groups and gpio/pin mapping descriptions * tag 'atlas7-pinctrl-dts-for-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/baohua/linux: ARM: dts: atlas7: add pinctrl and gpio descriptions commit 2210438b6aae9668cf89c272fef935b83aedf81d Author: Lars-Peter Clausen Date: Wed Jul 8 22:14:48 2015 +0200 ASoC: Free card DAPM context on snd_soc_instantiate_card() error path Make sure the to free the card DAPM context if snd_soc_instantiate_card() fails, otherwise the memory allocated for the DAPM widgets is leaked. Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/soc-core.c | 1 + 1 file changed, 1 insertion(+) commit e18077b6e5dfe26e9fbbdc1fd1085a1701c24bea Author: Lars-Peter Clausen Date: Wed Jul 8 21:59:59 2015 +0200 ASoC: dapm: Fix kcontrol widget name memory management The name field of the widget template is only used inside snd_soc_dapm_new_control_unlocked() which allocates a copy for the actual widget. This means we need to free the name allocated for the template in dapm_kcontrol_data_alloc() and not the name of the actual widget in dapm_kcontrol_free(). Otherwise we get a double free on the widget name and a memory leak on the template name. Fixes: 773da9b358bf ("ASoC: dapm: Append "Autodisable" to autodisable widget names") Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/soc-dapm.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) commit cfa520056407acaa29f3aa7aee10c929b371c7cf Author: Rob Herring Date: Sun Jul 5 12:16:27 2015 -0500 net: phy: add dependency on HAS_IOMEM to MDIO_BUS_MUX_MMIOREG On UML builds, mdio-mux-mmioreg.c fails to compile: drivers/net/phy/mdio-mux-mmioreg.c:50:3: error: implicit declaration of function ‘ioremap’ [-Werror=implicit-function-declaration] drivers/net/phy/mdio-mux-mmioreg.c:63:3: error: implicit declaration of function ‘iounmap’ [-Werror=implicit-function-declaration] This is due to CONFIG_OF now being user selectable. Add a dependency on HAS_IOMEM to fix this. Signed-off-by: Rob Herring Cc: Florian Fainelli Cc: David S. Miller Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/phy/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3d8cc14152a4b661580761049c7b9711efa60d82 Author: Y Vo Date: Fri Jun 26 15:01:47 2015 +0700 arm64: dts: Add poweroff button device node for APM X-Gene platform This patch adds poweroff button device node to support poweroff feature on APM X-Gene Mustang platform. Signed-off-by: Y Vo Signed-off-by: Kevin Hilman arch/arm64/boot/dts/apm/apm-mustang.dts | 10 ++++++++++ 1 file changed, 10 insertions(+) commit aa43c5ff737dac5dcfccd12d23abeefbdf0579c7 Author: Ralf Baechle Date: Sat Jul 4 11:22:30 2015 +0200 NET: hamradio: Fix IP over bpq encapsulation. Since 1d5da757da860a6916adbf68b09e868062b4b3b8 (ax25: Stop using magic neighbour cache operations.) any attempt to transmit IP packets over a bpqether device will result in a message like "Dead loop on virtual device bpq0, fix it urgently!" Fix suggested by Eric W. Biederman . Signed-off-by: Ralf Baechle Cc: # 4.1 Signed-off-by: David S. Miller drivers/net/hamradio/bpqether.c | 1 + 1 file changed, 1 insertion(+) commit 32f675bbc9be14a40d972820e190ac56341ce198 Author: Eric Dumazet Date: Thu Jul 2 15:57:19 2015 +0200 net_sched: gen_estimator: extend pps limit rate estimators are limited to 4 Mpps, which was fine years ago, but too small with current hardware generation. Lets use 2^5 scaling instead of 2^10 to get 128 Mpps new limit. On 64bit arch, use an "unsigned long" for temp storage and remove limit. (We do not expect 32bit arches to be able to reach this point) Tested: tc -s -d filter sh dev eth0 parent ffff: filter protocol ip pref 1 u32 filter protocol ip pref 1 u32 fh 800: ht divisor 1 filter protocol ip pref 1 u32 fh 800::800 order 2048 key ht 800 bkt 0 flowid 1:15 match 07000000/ff000000 at 12 action order 1: gact action drop random type none pass val 0 index 1 ref 1 bind 1 installed 166 sec Action statistics: Sent 39734251496 bytes 863788076 pkt (dropped 863788117, overlimits 0 requeues 0) rate 4067Mbit 11053596pps backlog 0b 0p requeues 0 Signed-off-by: Eric Dumazet Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller net/core/gen_estimator.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) commit c867b150de8514d8682978d8e8874c3940ae781b Author: Riku Voipio Date: Thu Jun 18 15:52:18 2015 +0300 tools lib: Improve clean target The clean targets miss some .cmd and .d files. Signed-off-by: Riku Voipio Cc: Peter Zijlstra Cc: linux-kbuild@vger.kernel.org Link: http://lkml.kernel.org/r/1434631938-12681-1-git-send-email-riku.voipio@linaro.org Signed-off-by: Arnaldo Carvalho de Melo tools/lib/api/Makefile | 2 +- tools/lib/traceevent/Makefile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 621739b00e16ca2d80411dc9b111cb15b91f3ba9 Author: Mike Snitzer Date: Wed Jul 8 16:08:24 2015 -0400 Revert "dm: only run the queue on completion if congested or no requests pending" This reverts commit 9a0e609e3fd8a95c96629b9fbde6b8c5b9a1456a. (Resolved a conflict during revert due to commit bfebd1cdb4 that came after) This revert is motivated by a couple failure reports on request-based DM multipath testbeds: 1) Netapp reported that their multipath fault injection test under heavy IO load can stall longer than 300 seconds. 2) IBM reported elevated lock contention in their testbed (likely due to increased back pressure due to IO not being dispatched as quickly): https://www.redhat.com/archives/dm-devel/2015-July/msg00057.html Signed-off-by: Mike Snitzer Cc: stable@vger.kernel.org # 4.1+ drivers/md/dm.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit 690edcfad0e570a9a2a42d9b98cd04efaf21489d Author: Trond Myklebust Date: Wed Jul 8 20:19:23 2015 +0200 NFSv4.2/flexfiles: Fix a typo in the flexfiles layoutstats code Signed-off-by: Trond Myklebust fs/nfs/flexfilelayout/flexfilelayout.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 56e7366e43ca676dd28f0e91240a579ad41e9b71 Author: Vinod Koul Date: Fri Jun 19 23:55:26 2015 +0530 ASoC: Intel: use CONFIG_SND_SOC for intel boards The Intel boards directory was under CONFIG_SND_SOC_INTEL_SST so the machines which don't need these were not allowed to be selected/compiled without enabling this symbol The machine should be allowed to selected by ASoC and then they should select rest of symbols required Reported-by: Michele Curti Signed-off-by: Vinod Koul Acked-by: Liam Girdwood Signed-off-by: Mark Brown sound/soc/intel/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1b42804d27b1c2623309950e9b203b11f4c67f4f Author: Mark Rutland Date: Tue Jul 7 18:00:49 2015 +0100 arm64: entry: handle debug exceptions in el*_inv Currently we enable debug exceptions before reading ESR_EL1 in both el0_inv and el1_inv. If a debug exception is taken before we read ESR_EL1, the value will have been corrupted. As el*_inv is typically fatal, an intervening debug exception results in misleading debug information being logged to the console, but is not otherwise harmful. As with the other entry paths, we can use the ESR_EL1 value stashed earlier in the exception entry (in x25 for el0_sync{,_compat}, and x1 for el1_sync), giving us better error reporting in this case. Signed-off-by: Mark Rutland Acked-by: Will Deacon Signed-off-by: Catalin Marinas arch/arm64/kernel/entry.S | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 866a92040392d844d151aa6a2ba15be2e6e5df4f Author: Dan Carpenter Date: Fri Jul 3 11:54:28 2015 +0300 drm/radeon: fix underflow in r600_cp_dispatch_texture() The "if (pass_size > buf->total)" can underflow so I have changed the type of size and pass_size to unsigned to avoid this problem. Reviewed-by: Christian König Signed-off-by: Dan Carpenter Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/r600_cp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5e3c4f907043a7fae1b48e86536dc7b9efa07e29 Author: Grigori Goronzy Date: Fri Jul 3 01:54:12 2015 +0200 drm/radeon: default to 2048 MB GART size on SI+ Newer ASICs have more VRAM on average and allocating more GART as well can have advantages. Also see commit edcd26e8. Ideally, we should scale GART size based on actual VRAM size, but that requires significant restructuring of initialization. v2: extract small helper, apply to error paths Reviewed-by: Christian König Signed-off-by: Grigori Goronzy Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/radeon_device.c | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) commit 54e03986133468e02cb01b76215e4d53a9cf6380 Author: Grigori Goronzy Date: Fri Jul 3 01:54:11 2015 +0200 drm/radeon: fix HDP flushing This was regressed by commit 39e7f6f8, although I don't know of any actual issues caused by it. The storage domain is read without TTM locking now, but the lock never helped to prevent any races. Reviewed-by: Christian König Cc: stable@vger.kernel.org Signed-off-by: Grigori Goronzy Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/radeon_gem.c | 1 + 1 file changed, 1 insertion(+) commit 828202a382a06eda74202d4888d01a1078c68922 Author: Grigori Goronzy Date: Fri Jul 3 01:54:10 2015 +0200 drm/radeon: use RCU query for GEM_BUSY syscall We don't need to call the (expensive) radeon_bo_wait, checking the fences via RCU is much faster. The reservation done by radeon_bo_wait does not save us from any race conditions. Reviewed-by: Christian König Signed-off-by: Grigori Goronzy Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/radeon_gem.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) commit bd833144a23dead304744dc748f5d72d7e92d315 Author: Mario Kleiner Date: Fri Jul 3 06:03:07 2015 +0200 drm/amdgpu: Handle irqs only based on irq ring, not irq status regs. This is a translation of the patch ... "drm/radeon: Handle irqs only based on irq ring, not irq status regs." ... for the vblank irq handling, to fix the same problem described in that patch on the new driver. Only compile tested due to lack of suitable hw. Reviewed-by: Christian König Signed-off-by: Mario Kleiner CC: Michel Dänzer CC: Alex Deucher Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/dce_v10_0.c | 22 ++++++++++++++-------- drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | 22 ++++++++++++++-------- drivers/gpu/drm/amd/amdgpu/dce_v8_0.c | 22 ++++++++++++++-------- 3 files changed, 42 insertions(+), 24 deletions(-) commit 07f18f0bb8d8d65badd8b4988b40d329fc0cc6dc Author: Mario Kleiner Date: Fri Jul 3 06:03:06 2015 +0200 drm/radeon: Handle irqs only based on irq ring, not irq status regs. Trying to resolve issues with missed vblanks and impossible values inside delivered kms pageflip completion events showed that radeon's irq handling sometimes doesn't handle valid irqs, but silently skips them. This was observed for vblank interrupts. Although those irqs have corresponding events queued in the gpu's irq ring at time of interrupt, and therefore the corresponding handling code gets triggered by these events, the handling code sometimes silently skipped processing the irq. The reason for those skips is that the handling code double-checks for each irq event if the corresponding irq status bits in the irq status registers are set. Sometimes those bits are not set at time of check for valid irqs, maybe due to some hardware race on some setups? The problem only seems to happen on some machine + card combos sometimes, e.g., never happened during my testing of different PC cards of the DCE-2/3/4 generation a year ago, but happens consistently now on two different Apple Mac cards (RV730, DCE-3, Apple iMac and Evergreen JUNIPER, DCE-4 in a Apple MacPro). It also doesn't happen at each interrupt but only occassionally every couple of hundred or thousand vblank interrupts. This results in XOrg warning messages like "[ 7084.472] (WW) RADEON(0): radeon_dri2_flip_event_handler: Pageflip completion event has impossible msc 420120 < target_msc 420121" as well as skipped frames and problems for applications that use kms pageflip events or vblank events, e.g., users of DRI2 and DRI3/Present, Waylands Weston compositor, etc. See also https://bugs.freedesktop.org/show_bug.cgi?id=85203 After some talking to Alex and Michel, we decided to fix this by turning the double-check for asserted irq status bits into a warning. Whenever a irq event is queued in the IH ring, always execute the corresponding interrupt handler. Still check the irq status bits, but only to log a DRM_DEBUG message on a mismatch. This fixed the problems reliably on both previously failing cards, RV-730 dual-head tested on both crtcs (pipes D1 and D2) and a triple-output Juniper HD-5770 card tested on all three available crtcs (D1/D2/D3). The r600 and evergreen irq handling is therefore tested, but the cik an si handling is only compile tested due to lack of hw. Reviewed-by: Christian König Signed-off-by: Mario Kleiner CC: Michel Dänzer CC: Alex Deucher CC: # v3.16+ Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/cik.c | 336 +++++++++++++++++-------------- drivers/gpu/drm/radeon/evergreen.c | 392 ++++++++++++++++++++----------------- drivers/gpu/drm/radeon/r600.c | 155 ++++++++------- drivers/gpu/drm/radeon/si.c | 336 +++++++++++++++++-------------- 4 files changed, 688 insertions(+), 531 deletions(-) commit 45820c294fe1b1a9df495d57f40585ef2d069a39 Author: Linus Torvalds Date: Wed Jul 8 09:33:38 2015 -0700 Fix broken audit tests for exec arg len The "fix" in commit 0b08c5e5944 ("audit: Fix check of return value of strnlen_user()") didn't fix anything, it broke things. As reported by Steven Rostedt: "Yes, strnlen_user() returns 0 on fault, but if you look at what len is set to, than you would notice that on fault len would be -1" because we just subtracted one from the return value. So testing against 0 doesn't test for a fault condition, it tests against a perfectly valid empty string. Also fix up the usual braindamage wrt using WARN_ON() inside a conditional - make it part of the conditional and remove the explicit unlikely() (which is already part of the WARN_ON*() logic, exactly so that you don't have to write unreadable code. Reported-and-tested-by: Steven Rostedt Cc: Jan Kara Cc: Paul Moore Signed-off-by: Linus Torvalds kernel/auditsc.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 5e92946c39ca6abc65e34775a93cc1d1a819c0e3 Author: Zhen Lei Date: Tue Jul 7 04:30:18 2015 +0100 iommu/arm-smmu: Skip the execution of CMD_PREFETCH_CONFIG Hisilicon SMMUv3 devices treat CMD_PREFETCH_CONFIG as a illegal command, execute it will trigger GERROR interrupt. Although the gerror code manage to turn the prefetch into a SYNC, and the system can continue to run normally, but it's ugly to print error information. Signed-off-by: Zhen Lei [will: extended binding documentation] Signed-off-by: Will Deacon .../devicetree/bindings/iommu/arm,smmu-v3.txt | 3 ++ drivers/iommu/arm-smmu-v3.c | 32 +++++++++++++++++++++- 2 files changed, 34 insertions(+), 1 deletion(-) commit e2f4c2330f08ba73d9a3c919a3d6ca33dce7d2c2 Author: Zhen Lei Date: Tue Jul 7 04:30:17 2015 +0100 iommu/arm-smmu: Enlarge STRTAB_L1_SZ_SHIFT to support larger sidsize Because we will choose the minimum value between STRTAB_L1_SZ_SHIFT and IDR1.SIDSIZE, so enlarge STRTAB_L1_SZ_SHIFT will not impact the platforms whose IDR1.SIDSIZE is smaller than old STRTAB_L1_SZ_SHIFT value. Signed-off-by: Zhen Lei Signed-off-by: Will Deacon drivers/iommu/arm-smmu-v3.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 5d58c6207c300340151931ad9c2cdea2d1685dc4 Author: Zhen Lei Date: Fri Jun 26 09:32:59 2015 +0100 iommu/arm-smmu: Fix the values of ARM64_TCR_{I,O}RGN0_SHIFT The arm64 CPU architecture defines TCR[8:11] as holding the inner and outer memory attributes for TTBR0. This patch fixes the ARM SMMUv3 driver to pack these bits into the context descriptor, rather than picking up the TTBR1 attributes as it currently does. Signed-off-by: Zhen Lei Signed-off-by: Will Deacon drivers/iommu/arm-smmu-v3.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit d2e88e7c081efb2c5a9e1adb2a065d373167af4b Author: Will Deacon Date: Tue Jun 30 10:02:28 2015 +0100 iommu/arm-smmu: Fix LOG2SIZE setting for 2-level stream tables STRTAB_BASE_CFG.LOG2SIZE should be set to log2(entries), where entries is the *total* number of entries in the stream table, not just the first level. This patch fixes the register setting, which was previously being set to the size of the l1 thanks to a multi-use "size" variable. Reported-by: Zhen Lei Tested-by: Zhen Lei Signed-off-by: Will Deacon drivers/iommu/arm-smmu-v3.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) commit 69146e7bfc38139a134c79a4ee6607c881891786 Author: Zhen Lei Date: Fri Jun 26 09:32:58 2015 +0100 iommu/arm-smmu: Fix the index calculation of strtab The element size of cfg->strtab is just one DWORD, so we should use a multiply operation instead of a shift when calculating the level 1 index. Signed-off-by: Zhen Lei Signed-off-by: Will Deacon drivers/iommu/arm-smmu-v3.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6224beb12e190ff11f3c7d4bf50cb2922878f600 Author: Steven Rostedt (Red Hat) Date: Tue Jul 7 15:05:03 2015 -0400 tracing: Have branch tracer use recursive field of task struct Fengguang Wu's tests triggered a bug in the branch tracer's start up test when CONFIG_DEBUG_PREEMPT set. This was because that config adds some debug logic in the per cpu field, which calls back into the branch tracer. The branch tracer has its own recursive checks, but uses a per cpu variable to implement it. If retrieving the per cpu variable calls back into the branch tracer, you can see how things will break. Instead of using a per cpu variable, use the trace_recursion field of the current task struct. Simply set a bit when entering the branch tracing and clear it when leaving. If the bit is set on entry, just don't do the tracing. There's also the case with lockdep, as the local_irq_save() called before the recursion can also trigger code that can call back into the function. Changing that to a raw_local_irq_save() will protect that as well. This prevents the recursion and the inevitable crash that follows. Link: http://lkml.kernel.org/r/20150630141803.GA28071@wfg-t540p.sh.intel.com Cc: stable@vger.kernel.org # 3.10+ Reported-by: Fengguang Wu Tested-by: Fengguang Wu Signed-off-by: Steven Rostedt kernel/trace/trace.h | 1 + kernel/trace/trace_branch.c | 17 ++++++++++------- 2 files changed, 11 insertions(+), 7 deletions(-) commit d438462c20a300139c2e5e65b96cadaa21b58d9a Author: Lucas Stach Date: Tue Jun 30 14:48:24 2015 +0200 ARM: imx6: gpc: always enable PU domain if CONFIG_PM is not set If CONFIG_PM is not set the PU power domain needs to be enabled always, otherwise there are two failure scenarios which will hang the system if one of the devices in the PU domain is accessed. 1. New DTs (4.1+) drop the "always-on" property from the PU regulator, so if it isn't properly enabled by the GPC code it will be disabled at the end of boot. 2. If the bootloader already disabled the PU domain the GPC explicitly needs to enable it again, even if the kernel doesn't do any power management. This is a bit hypothetical, as it requires to boot a mainline kernel on a downstream bootloader, as no mainline bootloader disables the PM domains. Cc: # 4.1 Signed-off-by: Lucas Stach Acked-by: Philipp Zabel Signed-off-by: Shawn Guo arch/arm/mach-imx/gpc.c | 27 ++++++--------------------- 1 file changed, 6 insertions(+), 21 deletions(-) commit de24264026463dd3f32f2c2e01c390f9d0651e37 Author: Philipp Zabel Date: Fri Jun 19 16:38:39 2015 +0200 ARM: dts: imx53-qsb: fix TVE entry Correct HSYNC/VSYNC pins and add ddc-i2c-bus property Signed-off-by: Philipp Zabel Signed-off-by: Shawn Guo arch/arm/boot/dts/imx53-qsb-common.dtsi | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit dec4f799d0a4c9edae20512fa60b0a36f3299ca2 Author: Daniel Vetter Date: Tue Jul 7 11:15:47 2015 +0200 drm/i915: Use crtc_state->active in primary check_plane func Since commit 8c7b5ccb729870e606321b3703e2c2e698c49a95 Author: Ander Conselvan de Oliveira Date: Tue Apr 21 17:13:19 2015 +0300 drm/i915: Use atomic helpers for computing changed flags we compute the plane state for a modeset before actually committing any changes, which means crtc->active won't be correct yet. Looking at future work in the modeset conversion targetting 4.3 the only places where crtc_state->active isn't accurate is when disabling other CRTCs than the one the modeset is for (when stealing connectors). Which isn't the case here. And that's also confirmed by an audit, we do unconditionally update crtc_state->active for the current pipe. We also don't need to update any other plane check functions since we only ever add the primary state to the modeset update right now. Cc: Ander Conselvan de Oliveira Cc: Maarten Lankhorst Cc: Jani Nikula Signed-off-by: Daniel Vetter Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 63fef06ada94172d7b4295fc205441bafd8f8fb3 Author: Daniel Vetter Date: Tue Jul 7 11:15:46 2015 +0200 drm/i915: Check crtc->active in intel_crtc_disable_planes This was lost in commit ce22dba92de22e951dee2ff89937a39754d2dd91 Author: Maarten Lankhorst Date: Tue Apr 21 17:12:56 2015 +0300 drm/i915: Move toggling planes out of crtc enable/disable. and we still need that crtc->active check since the overall modeset flow doesn't yet take dpms state into account properly. Fixes WARNING backtraces on at least bdw/hsw due to the ips disabling code being upset about being run on a switched-off pipe. We don't need a corresponding change on the enable side since with the old setCrtc semantics we always force-enable the pipe after a modeset. And the dpms function intel_crtc_control already checks for ->active. Reported-by: Linus Torvalds Cc: Linus Torvalds Cc: Maarten Lankhorst Cc: Ander Conselvan de Oliveira Signed-off-by: Daniel Vetter Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 3 +++ 1 file changed, 3 insertions(+) commit 5fc472a628edb8ad83016a063329e8b589a04060 Author: Jiri Olsa Date: Wed Jul 8 13:17:31 2015 +0200 perf stat: Fix shadow declaration of close Vinson reported shadow declaration of close introduced by the following commit: 106a94a0f8c2 perf stat: Introduce read_counters function Using close_counters name instead. Reported-by: Vinson Lee Signed-off-by: Jiri Olsa Cc: Jiri Olsa Cc: Peter Zijlstra Fixes: 106a94a0f8c2 ("perf stat: Introduce read_counters function") Link: http://lkml.kernel.org/r/20150708111731.GA3512@krava.redhat.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6debce6f4e787a8eb4cec94e7afa85fb4f40db27 Author: Antonio Borneo Date: Sun Jun 21 14:20:25 2015 +0800 HID: cp2112: fix to force single data-report reply Current implementation of cp2112_raw_event() only accepts one data report at a time. If last received data report is not fully handled yet, a new incoming data report will overwrite it. In such case we don't guaranteed to propagate the correct incoming data. The trivial fix implemented here forces a single report at a time by requesting in cp2112_read() no more than 61 byte of data, which is the payload size of a single data report. Cc: stable@vger.kernel.org Signed-off-by: Antonio Borneo Tested-by: Ellen Wang Signed-off-by: Jiri Kosina drivers/hid/hid-cp2112.c | 2 ++ 1 file changed, 2 insertions(+) commit 9633920e5ef65f81d30f2acd642d6d1c25cf7bc7 Author: Jason Gerecke Date: Wed Jul 1 13:01:00 2015 -0700 HID: wacom: Enable pad device for older Bamboo Touch tablets Commit 862cf55 ("HID: wacom: Introduce a new WACOM_DEVICETYPE_PAD device_type") neglected to set the WACOM_DEVICETYPE_PAD flag for older two-finger Bamboo Touch tablets. Not only does this result in the pad device not appearing when such a tablet is plugged in, but also causes a segfault when 'wacom_bpt_touch' tries to send pad events. This patch adds the flag to resolve these issues. Signed-off-by: Jason Gerecke Signed-off-by: Jiri Kosina drivers/hid/wacom_wac.c | 3 +++ 1 file changed, 3 insertions(+) commit a899418167264c7bac574b1a0f1b2c26c5b0995a Author: Thomas Gleixner Date: Sun Jul 5 17:12:30 2015 +0000 hotplug: Prevent alloc/free of irq descriptors during cpu up/down When a cpu goes up some architectures (e.g. x86) have to walk the irq space to set up the vector space for the cpu. While this needs extra protection at the architecture level we can avoid a few race conditions by preventing the concurrent allocation/free of irq descriptors and the associated data. When a cpu goes down it moves the interrupts which are targeted to this cpu away by reassigning the affinities. While this happens interrupts can be allocated and freed, which opens a can of race conditions in the code which reassignes the affinities because interrupt descriptors might be freed underneath. Example: CPU1 CPU2 cpu_up/down irq_desc = irq_to_desc(irq); remove_from_radix_tree(desc); raw_spin_lock(&desc->lock); free(desc); We could protect the irq descriptors with RCU, but that would require a full tree change of all accesses to interrupt descriptors. But fortunately these kind of race conditions are rather limited to a few things like cpu hotplug. The normal setup/teardown is very well serialized. So the simpler and obvious solution is: Prevent allocation and freeing of interrupt descriptors accross cpu hotplug. Signed-off-by: Thomas Gleixner Acked-by: Peter Zijlstra Cc: xiao jin Cc: Joerg Roedel Cc: Borislav Petkov Cc: Yanmin Zhang Link: http://lkml.kernel.org/r/20150705171102.063519515@linutronix.de include/linux/irqdesc.h | 7 ++++++- kernel/cpu.c | 22 +++++++++++++++++++++- kernel/irq/internals.h | 4 ---- 3 files changed, 27 insertions(+), 6 deletions(-) commit 1cc1cc92c4c4891abc48a777fb9fbc69077d5673 Author: Brent Adam Date: Fri Jun 19 10:53:35 2015 -0600 HID: multitouch: Fix fields from pen report ID being interpreted for multitouch Fields like HID_DG_CONTACTCOUNT are outside of the physical collection, but within the application collection and report ID. Make sure to catch those fields that are not part of the mt_report_id and return 0 so they can be processed with the pen. Otherwise, the wrong HID_DG_CONTACTCOUNT will be applied to cc_index and result in dereferencing a null pointer in mt_touch_report. Signed-off-by: Brent Adam Signed-off-by: Jiri Kosina drivers/hid/hid-multitouch.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 2c3d99845eb7b1e9f3d2863099bc5a25c8461d3f Author: Tvrtko Ursulin Date: Mon Jul 6 15:15:01 2015 +0100 drm/i915: Restore all GGTT VMAs on resume When rotated and partial views were added no one spotted the resume path which assumes only one GGTT VMA per object and hence is now skipping rebind of alternative views. Signed-off-by: Tvrtko Ursulin Cc: Daniel Vetter Cc: Chris Wilson Cc: Joonas Lahtinen Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) commit 69711ca19b06d1b33d8f21213b540b5d1c638dbf Author: Sébastien Hinderer Date: Wed Jul 8 00:02:01 2015 +0200 x86/kconfig: Fix typo in the CONFIG_CMDLINE_BOOL help text Signed-off-by: Sébastien Hinderer Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Samuel Thibault Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 86e8971800381c3a8d8d9327f83b1f97ccb04a4f Author: Julien Grall Date: Tue Jul 7 15:55:21 2015 +0100 netfilter: bridge: Use __in6_dev_get rather than in6_dev_get in br_validate_ipv6 The commit efb6de9b4ba0092b2c55f6a52d16294a8a698edd "netfilter: bridge: forward IPv6 fragmented packets" introduced a new function br_validate_ipv6 which take a reference on the inet6 device. Although, the reference is not released at the end. This will result to the impossibility to destroy any netdevice using ipv6 and bridge. It's possible to directly retrieve the inet6 device without taking a reference as all netfilter hooks are protected by rcu_read_lock via nf_hook_slow. Spotted while trying to destroy a Xen guest on the upstream Linux: "unregister_netdevice: waiting for vif1.0 to become free. Usage count = 1" Signed-off-by: Julien Grall Cc: Bernhard Thaler Cc: Pablo Neira Ayuso Cc: fw@strlen.de Cc: ian.campbell@citrix.com Cc: wei.liu2@citrix.com Cc: Bob Liu Acked-by: Stephen Hemminger Signed-off-by: Pablo Neira Ayuso net/bridge/br_netfilter_ipv6.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 91c269a0d3eadd63f7112411ee812fbc170dc488 Author: Pablo Neira Ayuso Date: Mon Jul 6 20:55:35 2015 +0200 MAINTAINER: add bridge netfilter So scripts/get_maintainer.pl shows the Netfilter mailing lists. Reported-by: Julien Grall Signed-off-by: Pablo Neira Ayuso MAINTAINERS | 1 + 1 file changed, 1 insertion(+) commit e8e94ed6285428ab780cd7b0df4622f71eceb39e Author: Stefan Wahren Date: Tue Jun 2 22:03:28 2015 +0000 ARM: dts: mx23: fix iio-hwmon support In order to get iio-hwmon support, the lradc must be declared as an iio provider. So fix this issue by adding the #io-channel-cells property. Signed-off-by: Stefan Wahren Fixes: bd798f9c7b30 ("ARM: dts: mxs: Add iio-hwmon to mx23 soc") Reviewed-by: Marek Vasut Reviewed-by: Alexandre Belloni Cc: Signed-off-by: Shawn Guo arch/arm/boot/dts/imx23.dtsi | 1 + 1 file changed, 1 insertion(+) commit afde13126085390aa55843ffefd5ced696e2c273 Author: Fabio Estevam Date: Sat Jun 27 17:51:13 2015 -0300 ARM: dts: imx27: Adjust the GPT compatible string include/soc/imx/timer.h describes well the different versions of the GPT block among the imx family: enum imx_gpt_type { GPT_TYPE_IMX1, /* i.MX1 */ GPT_TYPE_IMX21, /* i.MX21/27 */ GPT_TYPE_IMX31, /* i.MX31/35/25/37/51/6Q */ GPT_TYPE_IMX6DL, /* i.MX6DL/SX/SL */ }; So the proper compatible string for the MX27 case should be "fsl,imx21-gpt". Signed-off-by: Fabio Estevam Reviewed-by: Philippe Reynes Signed-off-by: Shawn Guo arch/arm/boot/dts/imx27.dtsi | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit d1f15e06b2af57228d11e33e06a172ff58f5bc1c Author: Takashi Iwai Date: Wed Jul 8 09:22:10 2015 +0200 ALSA: hda - Fix a wrong busy check in alt PCM open Currently, the alt PCM open callback returns -EBUSY when an independent HP is turned off, supposing that it conflicts with the main PCM. However, obviously, this check is wrong when the independent HP itself isn't enabled but the alt PCM was explicitly created via alc_dac_nid by a codec driver. Reported-and-tested-by: Kailang Yang Signed-off-by: Takashi Iwai sound/pci/hda/hda_generic.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 030f4e968741d65aea9cd5f7814d1164967801ef Author: Herbert Xu Date: Tue Jul 7 17:30:25 2015 +0800 crypto: nx - Fix reentrancy bugs This patch fixes a host of reentrancy bugs in the nx driver. The following algorithms are affected: * CCM * GCM * CTR * XCBC * SHA256 * SHA512 The crypto API allows a single transform to be used by multiple threads simultaneously. For example, IPsec will use a single tfm to process packets for a given SA. As packets may arrive on multiple CPUs that tfm must be reentrant. The nx driver does try to deal with this by using a spin lock. Unfortunately only the basic AES/CBC/ECB algorithms do this in the correct way. The symptom of these bugs may range from the generation of incorrect output to memory corruption. Cc: stable@vger.kernel.org Signed-off-by: Herbert Xu drivers/crypto/nx/nx-aes-ccm.c | 6 ++-- drivers/crypto/nx/nx-aes-ctr.c | 7 +++-- drivers/crypto/nx/nx-aes-gcm.c | 17 +++++----- drivers/crypto/nx/nx-aes-xcbc.c | 70 ++++++++++++++++++++++++++--------------- drivers/crypto/nx/nx-sha256.c | 43 ++++++++++++++----------- drivers/crypto/nx/nx-sha512.c | 44 +++++++++++++++----------- drivers/crypto/nx/nx.c | 3 ++ drivers/crypto/nx/nx.h | 14 +++++++-- 8 files changed, 125 insertions(+), 79 deletions(-) commit 9958084a5275ca2e8f55c5b18729307f2f0cb53b Author: Michael Ellerman Date: Tue Jul 7 19:16:23 2015 +1000 powerpc: Update MAINTAINERS to point at shared tree Now that we have a shared powerpc tree on kernel.org, point folks at that as the primary place to look for powerpc stuff. Signed-off-by: Michael Ellerman MAINTAINERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 442053e57a4fc58b719b6ceab60f29ef9cf4404c Author: Sukadev Bhattiprolu Date: Tue Jul 7 12:21:10 2015 -0400 powerpc/perf/24x7: Fix lockdep warning The sysfs attributes for the 24x7 counters are dynamically allocated. Initialize the attributes using sysfs_attr_init() to fix following warning which occurs when CONFIG_DEBUG_LOCK_VMALLOC=y. [ 0.346249] audit: initializing netlink subsys (disabled) [ 0.346284] audit: type=2000 audit(1436295254.340:1): initialized [ 0.346489] BUG: key c0000000efe90198 not in .data! [ 0.346491] DEBUG_LOCKS_WARN_ON(1) [ 0.346502] ------------[ cut here ]------------ [ 0.346504] WARNING: at ../kernel/locking/lockdep.c:3002 [ 0.346506] Modules linked in: Reported-by: Gustavo Luiz Duarte Signed-off-by: Sukadev Bhattiprolu Tested-by: Gustavo Luiz Duarte Signed-off-by: Michael Ellerman arch/powerpc/perf/hv-24x7.c | 2 ++ 1 file changed, 2 insertions(+) commit 10a5894f2dedd8a26b3132497445b314c0d952c4 Author: Ian Munsie Date: Tue Jul 7 15:45:45 2015 +1000 cxl: Fix off by one error allowing subsequent mmap page to be accessed It was discovered that if a process mmaped their problem state area they were able to access one page more than expected, potentially allowing them to access the problem state area of an unrelated process. This was due to a simple off by one error in the mmap fault handler introduced in 0712dc7e73e59d79bcead5d5520acf4e9e917e87 ("cxl: Fix issues when unmapping contexts"), which is fixed in this patch. Cc: stable@vger.kernel.org Fixes: 0712dc7e73e5 ("cxl: Fix issues when unmapping contexts") Signed-off-by: Ian Munsie Signed-off-by: Michael Ellerman drivers/misc/cxl/context.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5caaf5346892d1e7f0b8b7223062644f8538483f Author: Ian Munsie Date: Tue Jul 7 15:45:46 2015 +1000 cxl: Fail mmap if requested mapping is larger than assigned problem state area This patch makes the mmap call fail outright if the requested region is larger than the problem state area assigned to the context so the error is reported immediately rather than waiting for an attempt to access an address out of bounds. Although we never expect users to map more than the assigned problem state area and are not aware of anyone doing this (other than for testing), this does have the potential to break users if someone has used a larger range regardless. I'm submitting it for consideration, but if this change is not considered acceptable the previous patch is sufficient to prevent access out of bounds without breaking anyone. Signed-off-by: Ian Munsie Signed-off-by: Michael Ellerman drivers/misc/cxl/context.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit 7928eb0370d1133d0d8cd2f5ddfca19c309079d5 Author: Ralf Baechle Date: Wed Jul 8 04:49:10 2015 +0200 MIPS: O32: Do not handle require 32 bytes from the stack to be readable. Commit 46e12c07b3b9603c60fc1d421ff18618241cb081 (MIPS: O32 / 32-bit: Always copy 4 stack arguments.) change the O32 syscall handler to always load four arguments from the userspace stack even for syscalls that require fewer or no arguments to be copied. This removes a large table from kernel space and need to maintain it. It appeared that it was ok the implementation chosen requires 16 bytes of readable stack space above the user stack pointer. Turned out a few threading implementations munmap the user stack before the thread exits resulting in errors due to the unreadable stack. We now treat any failed load as a if the loaded value was zero and let the actual syscall deal with the situation. Signed-off-by: Ralf Baechle arch/mips/kernel/scall32-o32.S | 37 +++++++++++++++++++++++++++---------- arch/mips/kernel/scall64-o32.S | 33 +++++++++++++++++++++++++-------- 2 files changed, 52 insertions(+), 18 deletions(-) commit af3f2f740173f8b5c61dba46f900998c5984ccd9 Author: Emmanuel Grumbach Date: Thu Jun 4 09:51:11 2015 +0300 iwlwifi: pcie: don't panic if pcie transport alloc fails iwl_trans_pcie_alloc needs to return a non-zero value if it fails. Otherwise the iwl_drv_start will think that the allocation succeeded. Remove the duplication of err and ret variable and use ret which is the name we usually use in other places of the driver. Fixes: c278754a21e6 ("iwlwifi: mvm: support family 8000 B2/C steps") CC: [4.1] Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/pcie/trans.c | 44 +++++++++++++++---------------- 1 file changed, 22 insertions(+), 22 deletions(-) commit 66337b7c67f6237720ba13f6d41b9d8dbcb59cda Author: Dreyfuss, Haim Date: Thu Jun 4 11:45:33 2015 +0300 iwlwifi: pcie: Fix bug in NIC's PM registers access While cleanig the access to those hw-dependent registers, instead of using the product family type, wrong condition was added mistakenly and enabled 8000 family devices a forbidden access to HW registers, fix it. Fixes: 95411d0455cc ("iwlwifi: pcie: Control access to the NIC's PM registers via iwl_cfg") Signed-off-by: Dreyfuss, Haim Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/pcie/trans.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 56551da9255f20ffd3a9711728a1a3ad4b7100af Author: Pankaj Dev Date: Tue Jul 7 09:40:50 2015 +0200 drivers: clk: st: Incorrect register offset used for lock_status Incorrect register offset used for sthi407 clockgenC Signed-off-by: Pankaj Dev Signed-off-by: Gabriel Fernandez Fixes: 51306d56ba81 ("clk: st: STiH407: Support for clockgenC0") Signed-off-by: Stephen Boyd drivers/clk/st/clkgen-fsyn.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d6ac4ffc61ace6ed6f183e9fd7f207c0ddafb897 Merge: 4f27395 06be5ee Author: Linus Torvalds Date: Tue Jul 7 15:19:09 2015 -0700 Merge branch 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm Pull ARM updates from Russell King: "These are late by a week; they should have been merged during the merge window, but unfortunately, the ARM kernel build/boot farms were indicating random failures, and it wasn't clear whether the cause was something in these changes or something during the merge window. This is a set of merge window fixes with some documentation additions" * 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm: ARM: avoid unwanted GCC memset()/memcpy() optimisations for IO variants ARM: pgtable: document mapping types ARM: io: convert ioremap*() to functions ARM: io: fix ioremap_wt() implementation ARM: io: document ARM specific behaviour of ioremap*() implementations ARM: fix lockdep unannotated irqs-off warning ARM: 8397/1: fix vdsomunge not to depend on glibc specific error.h ARM: add helpful message when truncating physical memory ARM: add help text for HIGHPTE configuration entry ARM: fix DEBUG_SET_MODULE_RONX build dependencies ARM: 8396/1: use phys_addr_t in pfn_to_kaddr() ARM: 8394/1: update memblock limit after mapping lowmem ARM: 8393/1: smp: Fix suspicious RCU usage with ipi tracepoints commit 4f273959b850569253299987eee611927f048de7 Author: Tomas Winkler Date: Wed Jul 8 00:22:03 2015 +0300 mei: nfc: fix deadlock on shutdown/suspend path In function mei_nfc_host_exit mei_cl_remove_device cannot be called under the device mutex as device removing flow invokes the device driver remove handler that calls in turn to mei_cl_disable_device which naturally acquires the device mutex. Also remove mei_cl_bus_remove_devices which has the same issue, but is never executed as currently the only device on the mei client bus is NFC and a new device cannot be easily added till the bus revamp is completed. This fixes regression caused by commit be9b720a0ccb ("mei_phy: move all nfc logic from mei driver to nfc") Prior to this change the nfc driver remove handler called to no-op disable function while actual nfc device was disabled directly from the mei driver. Reported-by: Linus Torvalds Acked-by: Greg Kroah-Hartman Cc: Samuel Ortiz Signed-off-by: Tomas Winkler Signed-off-by: Linus Torvalds drivers/misc/mei/bus.c | 16 ---------------- drivers/misc/mei/init.c | 2 -- drivers/misc/mei/nfc.c | 3 ++- 3 files changed, 2 insertions(+), 19 deletions(-) commit d4669bb1427cca46dfb4a0f789febee56deab47e Merge: d770e55 b2e2c94 Author: Greg Kroah-Hartman Date: Tue Jul 7 14:45:22 2015 -0700 Merge tag 'fixes-for-v4.2-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-linus Felipe writes: usb: fixes for-v4.2-rc2 The first set of fixes for this -rc cycle. Most importantly we have a NULL pointer dereference fix on DWC3, a fix to a really old bug on musb_start() and another NULL pointer dereference fix on MXS phy driver. Signed-off-by: Felipe Balbi commit 8076ca480f40c51ab87d8301c830a817b900b4d1 Merge: d0aee67 2051e92 Author: Rafael J. Wysocki Date: Tue Jul 7 22:48:25 2015 +0200 Merge branch 'acpi-scan' * acpi-scan: ata: ahci_platform: Add ACPI _CLS matching ACPI / scan: Add support for ACPI _CLS device matching commit d0aee67fa19260d772b07f144cf6c93e63431f67 Merge: 3fc7aee 0294112 d3e13ff 93af5e9 b51f9b1 Author: Rafael J. Wysocki Date: Tue Jul 7 22:48:14 2015 +0200 Merge branches 'acpi-pnp', 'acpi-soc', 'pm-domains' and 'pm-sleep' * acpi-pnp: ACPI / PNP: Reserve ACPI resources at the fs_initcall_sync stage * acpi-soc: ACPI / LPSS: Fix up acpi_lpss_create_device() * pm-domains: PM / Domains: Avoid infinite loops in attach/detach code * pm-sleep: PM / hibernate: clarify resume documentation commit 3fc7aeeb08bfde59877e7f9a4eea3c5ebcae72be Merge: d770e55 6d3dab7 Author: Rafael J. Wysocki Date: Tue Jul 7 22:47:43 2015 +0200 Merge branch 'pm-wakeirq' * pm-wakeirq: PM / wakeirq: Avoid setting power.wakeirq too hastily commit d4acc1651588835b802a2049f4f3a2adcc1af750 Author: Graham Whaley Date: Tue Jul 7 19:13:37 2015 +0100 Documentation: drm: Fix tablulation in KMS properties table Commit 712a0dd91c4a ("Documentation/drm: Update rotation property") left an extra 'rowspan' for the row omap, which pushed the following qxl rows columns out to column 8 and broke the tabulation. Remove the errant rowspan. Signed-off-by: Graham Whaley Signed-off-by: Daniel Vetter Documentation/DocBook/drm.tmpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5f867db63473f32cce1b868e281ebd42a41f8fad Author: Scott Wood Date: Fri Jun 26 19:43:58 2015 -0500 mtd: nand: Fix NAND_USE_BOUNCE_BUFFER flag conflict Commit 66507c7bc8895f0da6b ("mtd: nand: Add support to use nand_base poi databuf as bounce buffer") added a flag NAND_USE_BOUNCE_BUFFER using the same bit value as the existing NAND_BUSWIDTH_AUTO. Cc: Kamal Dasu Fixes: 66507c7bc8895f0da6b ("mtd: nand: Add support to use nand_base poi databuf as bounce buffer") Signed-off-by: Scott Wood Signed-off-by: Brian Norris include/linux/mtd/nand.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 37b64a42067a04a22468c4e52c12af00d72e462b Author: Thomas Gleixner Date: Tue Jul 7 21:56:34 2015 +0200 tick/broadcast: Unbreak CONFIG_GENERIC_CLOCKEVENTS=n build Making tick_broadcast_oneshot_control() independent from CONFIG_GENERIC_CLOCKEVENTS_BROADCAST broke the build for CONFIG_GENERIC_CLOCKEVENTS=n because the function is not defined there. Provide a proper stub inline. Fixes: f32dd1170511 'tick/broadcast: Make idle check independent from mode and config' Reported-by: kbuild test robot Signed-off-by: Thomas Gleixner include/linux/tick.h | 7 +++++++ 1 file changed, 7 insertions(+) commit 0bb383a2d8f51e32ecc156f3f84067420ffe6d20 Author: Ralf Baechle Date: Tue Jul 7 20:56:04 2015 +0200 MIPS, CPUFREQ: Fix spelling of Institute. Signed-off-by: Ralf Baechle arch/mips/include/asm/mach-loongson64/mmzone.h | 2 +- arch/mips/loongson64/common/bonito-irq.c | 2 +- arch/mips/loongson64/common/cmdline.c | 2 +- arch/mips/loongson64/common/cs5536/cs5536_mfgpt.c | 2 +- arch/mips/loongson64/common/env.c | 2 +- arch/mips/loongson64/common/irq.c | 2 +- arch/mips/loongson64/common/setup.c | 2 +- arch/mips/loongson64/fuloong-2e/irq.c | 2 +- arch/mips/loongson64/lemote-2f/clock.c | 2 +- arch/mips/loongson64/loongson-3/numa.c | 2 +- drivers/cpufreq/loongson2_cpufreq.c | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) commit 71eeedcf51544831ae356a773814401143ed32d4 Author: Ralf Baechle Date: Tue Jul 7 20:49:03 2015 +0200 MIPS: Lemote 2F: Fix build caused by recent mass rename. CC arch/mips/loongson64/lemote-2f/clock.o /home/ralf/src/linux/linux-mips/arch/mips/loongson64/lemote-2f/clock.c:18:40: fatal error: asm/mach-loongson/loongson.h: No such file or directory #include ^ compilation terminated. Signed-off-by: Ralf Baechle arch/mips/loongson64/lemote-2f/clock.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 861a481c5ede75bf31bc118f1f7f6d1f420182b5 Author: Dan Carpenter Date: Wed Jun 24 17:31:33 2015 +0300 spi: zynq: missing break statement There is a missing break statement here so selecting both only selects upper. Fixes: dfe11a11d523 ('spi: Add support for Zynq Ultrascale+ MPSoC GQSPI controller') Signed-off-by: Dan Carpenter Acked-by: Michal Simek Signed-off-by: Mark Brown drivers/spi/spi-zynqmp-gqspi.c | 1 + 1 file changed, 1 insertion(+) commit 539c4b88146cc320aee18b08ebb43ab57d523dcc Author: duson Date: Tue Jul 7 10:25:39 2015 -0700 Input: elan_i2c - change the hover event from MT to ST The firmware only reports hover condition while the very first contact is approaching the surface; the hover is not reported for the subsequent contacts. Therefore we should not be using ABS_MT_DISTANCE to report hover but rather its single-touch counterpart ABS_DISTANCE. Signed-off-by: Duson Lin Signed-off-by: Dmitry Torokhov drivers/input/mouse/elan_i2c_core.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) commit c4288334818c81c946acb23d2319881f58c3d497 Author: Thomas Gleixner Date: Sun Jul 5 20:53:17 2015 +0000 tick/broadcast: Handle spurious interrupts gracefully Andriy reported that on a virtual machine the warning about negative expiry time in the clock events programming code triggered: hpet: hpet0 irq 40 for MSI hpet: hpet1 irq 41 for MSI Switching to clocksource hpet WARNING: at kernel/time/clockevents.c:239 [] clockevents_program_event+0xdb/0xf0 [] tick_handle_periodic_broadcast+0x41/0x50 [] timer_interrupt+0x15/0x20 When the second hpet is installed as a per cpu timer the broadcast event is not longer required and stopped, which sets the next_evt of the broadcast device to KTIME_MAX. If after that a spurious interrupt happens on the broadcast device, then the current code blindly handles it and tries to reprogram the broadcast device afterwards, which adds the period to next_evt. KTIME_MAX + period results in a negative expiry value causing the WARN_ON in the clockevents code to trigger. Add a proper check for the state of the broadcast device into the interrupt handler and return if the interrupt is spurious. [ Folded in pointer fix from Sudeep ] Reported-by: Andriy Gapon Signed-off-by: Thomas Gleixner Cc: Sudeep Holla Cc: Peter Zijlstra Cc: Preeti U Murthy Link: http://lkml.kernel.org/r/20150705205221.802094647@linutronix.de kernel/time/tick-broadcast.c | 7 +++++++ 1 file changed, 7 insertions(+) commit d5113e13a550bc9c2b53cc9944b8a06453c4a0a1 Author: Thomas Gleixner Date: Tue Jul 7 16:43:04 2015 +0200 tick/broadcast: Check for hrtimer broadcast active early If the current cpu is the one which has the hrtimer based broadcast queued then we better return busy immediately instead of going through loops and hoops to figure that out. [ Split out from a larger combo patch ] Tested-by: Sudeep Holla Signed-off-by: Thomas Gleixner Cc: Suzuki Poulose Cc: Lorenzo Pieralisi Cc: Catalin Marinas Cc: Rafael J. Wysocki Cc: Peter Zijlstra Cc: Preeti U Murthy Cc: Ingo Molnar Link: http://lkml.kernel.org/r/alpine.DEB.2.11.1507070929360.3916@nanos kernel/time/tick-broadcast.c | 36 ++++++++++++++++++++++++++---------- 1 file changed, 26 insertions(+), 10 deletions(-) commit 0cc5281aa592d0020868f6ccaed359b4ad7b2684 Author: Thomas Gleixner Date: Tue Jul 7 16:45:15 2015 +0200 tick/broadcast: Return busy when IPI is pending Tell the idle code not to go deep if the broadcast IPI is about to arrive. [ Split out from a larger combo patch ] Tested-by: Sudeep Holla Signed-off-by: Thomas Gleixner Cc: Suzuki Poulose Cc: Lorenzo Pieralisi Cc: Catalin Marinas Cc: Rafael J. Wysocki Cc: Peter Zijlstra Cc: Preeti U Murthy Cc: Ingo Molnar Link: http://lkml.kernel.org/r/alpine.DEB.2.11.1507070929360.3916@nanos kernel/time/tick-broadcast.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit d33257264b0267a8fd20f6717abbb484c9e21130 Author: Thomas Gleixner Date: Tue Jul 7 17:45:22 2015 +0200 tick/broadcast: Return busy if periodic mode and hrtimer broadcast If the system is in periodic mode and the broadcast device is hrtimer based, return busy as we have no proper handling for this. [ Split out from a larger combo patch ] Tested-by: Sudeep Holla Signed-off-by: Thomas Gleixner Cc: Suzuki Poulose Cc: Lorenzo Pieralisi Cc: Catalin Marinas Cc: Rafael J. Wysocki Cc: Peter Zijlstra Cc: Preeti U Murthy Cc: Ingo Molnar Link: http://lkml.kernel.org/r/alpine.DEB.2.11.1507070929360.3916@nanos kernel/time/tick-broadcast.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit e3ac79e087ffe8a1f953ed44a74acf7616cb0b25 Author: Thomas Gleixner Date: Tue Jul 7 16:38:11 2015 +0200 tick/broadcast: Move the check for periodic mode inside state handling We need to check more than the periodic mode for proper operation in all runtime combinations. To avoid code duplication move the check into the enter state handling. No functional change. [ Split out from a larger combo patch ] Reported-and-tested-by: Sudeep Holla Signed-off-by: Thomas Gleixner Cc: Suzuki Poulose Cc: Lorenzo Pieralisi Cc: Catalin Marinas Cc: Rafael J. Wysocki Cc: Peter Zijlstra Cc: Preeti U Murthy Cc: Ingo Molnar Link: http://lkml.kernel.org/r/alpine.DEB.2.11.1507070929360.3916@nanos kernel/time/tick-broadcast.c | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) commit b78f3f3c898c824bf56ab55cfa59fc72be49c349 Author: Thomas Gleixner Date: Tue Jul 7 16:34:32 2015 +0200 tick/broadcast: Prevent deep idle if no broadcast device available Add a check for a installed broadcast device to the oneshot control function and return busy if not. [ Split out from a larger combo patch ] Reported-and-tested-by: Sudeep Holla Signed-off-by: Thomas Gleixner Cc: Suzuki Poulose Cc: Lorenzo Pieralisi Cc: Catalin Marinas Cc: Rafael J. Wysocki Cc: Peter Zijlstra Cc: Preeti U Murthy Cc: Ingo Molnar Link: http://lkml.kernel.org/r/alpine.DEB.2.11.1507070929360.3916@nanos kernel/time/tick-broadcast.c | 7 +++++++ 1 file changed, 7 insertions(+) commit f32dd117051185da6e923b35491a44d7debeeea5 Author: Thomas Gleixner Date: Tue Jul 7 16:29:38 2015 +0200 tick/broadcast: Make idle check independent from mode and config Currently the broadcast busy check, which prevents the idle code from going into deep idle, works only in one shot mode. If NOHZ and HIGHRES are off (config or command line) there is no sanity check at all, so under certain conditions cpus are allowed to go into deep idle, where the local timer stops, and are not woken up again because there is no broadcast timer installed or a hrtimer based broadcast device is not evaluated. Move tick_broadcast_oneshot_control() into the common code and provide proper subfunctions for the various config combinations. The common check in tick_broadcast_oneshot_control() is for the C3STOP misfeature flag of the local clock event device. If its not set, idle can proceed. If set, further checks are necessary. Provide checks for the trivial cases: - If broadcast is disabled in the config, then return busy - If oneshot mode (NOHZ/HIGHES) is disabled in the config, return busy if the broadcast device is hrtimer based. - If oneshot mode is enabled in the config call the original tick_broadcast_oneshot_control() function. That function needs extra checks which will be implemented in seperate patches. [ Split out from a larger combo patch ] Reported-and-tested-by: Sudeep Holla Signed-off-by: Thomas Gleixner Cc: Suzuki Poulose Cc: Lorenzo Pieralisi Cc: Catalin Marinas Cc: Rafael J. Wysocki Cc: Peter Zijlstra Cc: Preeti U Murthy Cc: Ingo Molnar Link: http://lkml.kernel.org/r/alpine.DEB.2.11.1507070929360.3916@nanos include/linux/tick.h | 4 ---- kernel/time/tick-broadcast.c | 26 +++++++++++--------------- kernel/time/tick-common.c | 21 +++++++++++++++++++++ kernel/time/tick-sched.h | 10 ++++++++++ 4 files changed, 42 insertions(+), 19 deletions(-) commit e0454311903d3fd0f12a86c9e65d7b271c2bb05d Author: Thomas Gleixner Date: Tue Jul 7 14:07:27 2015 +0200 tick/broadcast: Sanity check the shutdown of the local clock_event The broadcast code shuts down the local clock event unconditionally even if no broadcast device is installed or if the broadcast device is hrtimer based. Add proper sanity checks. [ Split out from a larger combo patch ] Reported-and-tested-by: Sudeep Holla Signed-off-by: Thomas Gleixner Cc: Suzuki Poulose Cc: Lorenzo Pieralisi Cc: Catalin Marinas Cc: Rafael J. Wysocki Cc: Peter Zijlstra Cc: Preeti U Murthy Cc: Ingo Molnar Link: http://lkml.kernel.org/r/alpine.DEB.2.11.1507070929360.3916@nanos kernel/time/tick-broadcast.c | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) commit 8eb231261fdd20768db23863d00ef277de4b0543 Author: Thomas Gleixner Date: Tue Jul 7 14:11:00 2015 +0200 tick/broadcast: Prevent hrtimer recursion The hrtimer based broadcast vehicle can cause a hrtimer recursion which went unnoticed until we changed the hrtimer expiry code to keep track of the currently running timer. local_timer_interrupt() local_handler() hrtimer_interrupt() expire_hrtimers() broadcast_hrtimer() send_ipis() local_handler() hrtimer_interrupt() .... Solution is simple: Prevent the local handler call from the broadcast code when the broadcast 'device' is hrtimer based. [ Split out from a larger combo patch ] Tested-by: Sudeep Holla Signed-off-by: Thomas Gleixner Cc: Suzuki Poulose Cc: Lorenzo Pieralisi Cc: Catalin Marinas Cc: Rafael J. Wysocki Cc: Peter Zijlstra Cc: Preeti U Murthy Cc: Ingo Molnar Link: http://lkml.kernel.org/r/alpine.DEB.2.11.1507070929360.3916@nanos kernel/time/tick-broadcast.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) commit ef37566cf8d607844cee5a01597d828c8fd1a501 Author: Catalin Marinas Date: Tue Jul 7 17:15:39 2015 +0100 arm64: Keep the ARM64 Kconfig selects sorted Move EDAC_SUPPORT to the right place. Signed-off-by: Catalin Marinas arch/arm64/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6d545a632fbbce79492ba535b15ea0142aa3e80d Author: Adrian Hunter Date: Tue Jul 7 14:13:38 2015 +0300 perf tools: Fix lockup using 32-bit compat vdso The __machine__findnew_compat() function is called only from __machine__findnew_vdso_compat() which is called only from machine__findnew_vdso() which already holds machine->dsos.lock, so remove locking from __machine__findnew_compat(). This manifests itself tracing 32-bit programs with a 64-bit perf. Signed-off-by: Adrian Hunter Cc: David Ahern Cc: Jiri Olsa Cc: Namhyung Kim Link: http://lkml.kernel.org/r/1436267618-20521-1-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/vdso.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit 93abc72bc7901cfc61a2871da7a565c9fdb26108 Author: Walter Lozano Date: Fri Jun 26 02:25:58 2015 +0000 ARM: socfpga: dts: Fix entries order This patch reorders the nodes alphabetically Signed-off-by: Walter Lozano Signed-off-by: Dinh Nguyen arch/arm/boot/dts/socfpga_cyclone5_sockit.dts | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit 99e3e3ae332b6ca91d5c444ea7849f367f5e5a76 Author: Al Stone Date: Mon Jul 6 17:16:48 2015 -0600 ACPI / ARM64 : use the new BAD_MADT_GICC_ENTRY macro For those parts of the arm64 ACPI code that need to check GICC subtables in the MADT, use the new BAD_MADT_GICC_ENTRY macro instead of the previous BAD_MADT_ENTRY. The new macro takes into account differences in the size of the GICC subtable that the old macro did not; this caused failures even though the subtable entries are valid. Fixes: aeb823bbacc2 ("ACPICA: ACPI 6.0: Add changes for FADT table.") Signed-off-by: Al Stone Reviewed-by: Hanjun Guo Acked-by: Will Deacon Acked-by: "Rafael J. Wysocki" Signed-off-by: Catalin Marinas arch/arm64/kernel/smp.c | 2 +- drivers/irqchip/irq-gic.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit b6cfb277378ef831c0fa84bcff5049307294adc6 Author: Al Stone Date: Mon Jul 6 17:16:47 2015 -0600 ACPI / ARM64: add BAD_MADT_GICC_ENTRY() macro The BAD_MADT_ENTRY() macro is designed to work for all of the subtables of the MADT. In the ACPI 5.1 version of the spec, the struct for the GICC subtable (struct acpi_madt_generic_interrupt) is 76 bytes long; in ACPI 6.0, the struct is 80 bytes long. But, there is only one definition in ACPICA for this struct -- and that is the 6.0 version. Hence, when BAD_MADT_ENTRY() compares the struct size to the length in the GICC subtable, it fails if 5.1 structs are in use, and there are systems in the wild that have them. This patch adds the BAD_MADT_GICC_ENTRY() that checks the GICC subtable only, accounting for the difference in specification versions that are possible. The BAD_MADT_ENTRY() will continue to work as is for all other MADT subtables. This code is being added to an arm64 header file since that is currently the only architecture using the GICC subtable of the MADT. As a GIC is specific to ARM, it is also unlikely the subtable will be used elsewhere. Fixes: aeb823bbacc2 ("ACPICA: ACPI 6.0: Add changes for FADT table.") Signed-off-by: Al Stone Acked-by: Will Deacon Acked-by: "Rafael J. Wysocki" [catalin.marinas@arm.com: extra brackets around macro arguments] Signed-off-by: Catalin Marinas arch/arm64/include/asm/acpi.h | 8 ++++++++ 1 file changed, 8 insertions(+) commit c96af077016bc2e0e36a107e31910395fc677f57 Author: Walter Lozano Date: Fri Jun 26 02:25:57 2015 +0000 ARM: socfpga: dts: Fix adxl34x formating and compatible string This patch fixes the formating of DTS bindings for the adxl34x digital accelerometer, and updates the compatible string after the deprecation of "adxl345x" compatible string. Signed-off-by: Walter Lozano Acked-by: Steffen Trumtrar Signed-off-by: Dinh Nguyen arch/arm/boot/dts/socfpga_cyclone5_sockit.dts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit a322baad1003798312741b0cb97bd2c7511ccf61 Author: Arianna Avanzini Date: Tue Jul 7 03:08:15 2015 +0200 block/blk-cgroup.c: free per-blkcg data when freeing the blkcg Currently, per-blkcg data is freed each time a policy is deactivated, that is also upon scheduler switch. However, when switching from a scheduler implementing a policy which requires per-blkcg data to another one, that same policy might be active on other devices, and therefore those same per-blkcg data could be still in use. This commit lets per-blkcg data be freed when the blkcg is freed instead of on policy deactivation. Signed-off-by: Arianna Avanzini Reported-and-tested-by: Michael Kaminsky Fixes: e48453c3 ("block, cgroup: implement policy-specific per-blkcg data") Signed-off-by: Jens Axboe block/blk-cgroup.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 0762b23d23c1f23beab91a3af0fa89749b75f03c Author: Maninder Singh Date: Tue Jul 7 12:41:07 2015 +0530 block: use FIELD_SIZEOF to calculate size of a field use FIELD_SIZEOF instead of open coding Signed-off-by: Maninder Singh Signed-off-by: Jens Axboe block/blk-core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bb8bd38b9a1685334b73e8c62e128cbedb875867 Author: Mike Snitzer Date: Wed Jul 1 12:57:40 2015 -0400 bio integrity: do not assume bio_integrity_pool exists if bioset exists bio_integrity_alloc() and bio_integrity_free() assume that if a bio was allocated from a bioset that that bioset also had its bio_integrity_pool allocated using bioset_integrity_create(). This is a very bad assumption given that bioset_create() and bioset_integrity_create() are completely disjoint. Not all callers of bioset_create() have been trained to also call bioset_integrity_create() -- and they may not care to be. Fix this by falling back to kmalloc'ing 'struct bio_integrity_payload' rather than force all bioset consumers to (wastefully) preallocate a bio_integrity_pool that they very likely won't actually need (given the niche nature of the current block integrity support). Otherwise, a NULL pointer "Kernel BUG" with a trace like the following will be observed (as seen on s390x using zfcp storage) because dm-io doesn't use bioset_integrity_create() when creating its bioset: [ 791.643338] Call Trace: [ 791.643339] ([<00000003df98b848>] 0x3df98b848) [ 791.643341] [<00000000002c5de8>] bio_integrity_alloc+0x48/0xf8 [ 791.643348] [<00000000002c6486>] bio_integrity_prep+0xae/0x2f0 [ 791.643349] [<0000000000371e38>] blk_queue_bio+0x1c8/0x3d8 [ 791.643355] [<000000000036f8d0>] generic_make_request+0xc0/0x100 [ 791.643357] [<000000000036f9b2>] submit_bio+0xa2/0x198 [ 791.643406] [<000003ff801f9774>] dispatch_io+0x15c/0x3b0 [dm_mod] [ 791.643419] [<000003ff801f9b3e>] dm_io+0x176/0x2f0 [dm_mod] [ 791.643423] [<000003ff8074b28a>] do_reads+0x13a/0x1a8 [dm_mirror] [ 791.643425] [<000003ff8074b43a>] do_mirror+0x142/0x298 [dm_mirror] [ 791.643428] [<0000000000154fca>] process_one_work+0x18a/0x3f8 [ 791.643432] [<000000000015598a>] worker_thread+0x132/0x3b0 [ 791.643435] [<000000000015d49a>] kthread+0xd2/0xd8 [ 791.643438] [<00000000005bc0ca>] kernel_thread_starter+0x6/0xc [ 791.643446] [<00000000005bc0c4>] kernel_thread_starter+0x0/0xc Signed-off-by: Mike Snitzer Cc: stable@vger.kernel.org Signed-off-by: Jens Axboe block/bio-integrity.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 127e10624232c5d605cad840d21af3b842541719 Author: Laxman Dewangan Date: Wed Jul 1 18:31:42 2015 +0530 regulator: max8973: Fix up control flag option for bias control The control flag for the bias control is MAX8973_CONTROL_BIAS_ENABLE rather than MAX8973_BIAS_ENABLE which is macro for the bits in register. Fix this typo. Signed-off-by: Laxman Dewangan Signed-off-by: Mark Brown drivers/regulator/max8973-regulator.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ebac95a9208e6b5f134df8518df1bfd1b3fee354 Author: Juergen Borleis Date: Fri Jul 3 12:39:36 2015 +0200 ASoC: fsl-ssi: Fix bitclock calculation for master mode According to the datasheet 'pm', 'psr' and 'div2' should never be all 0. Since commit 541b03ad6cfe ("ASoC: fsl_ssi: Fix the incorrect limitation of the bit clock rate") this can happen, because for some bitclock rates 'pm' = 0 seems to be a valid choice but does not work due to hardware restrictions. This results into a bad hardware behaviour (slow audio for example). Feature tested on a i.MX25. Signed-off-by: Juergen Borleis Acked-by: Nicolin Chen Signed-off-by: Mark Brown sound/soc/fsl/fsl_ssi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2e1c75f4d3ecf127032f2511aba76927a8703c1d Author: Geert Uytterhoeven Date: Fri Jun 26 14:07:12 2015 +0200 spi: SPI_ZYNQMP_GQSPI should depend on HAS_DMA If NO_DMA=y: ERROR: "dma_unmap_single" [drivers/spi/spi-zynqmp-gqspi.ko] undefined! ERROR: "dma_mapping_error" [drivers/spi/spi-zynqmp-gqspi.ko] undefined! ERROR: "dma_map_single" [drivers/spi/spi-zynqmp-gqspi.ko] undefined! Add a dependency on HAS_DMA to fix this. Signed-off-by: Geert Uytterhoeven Acked-by: Ranjit Waghmode Signed-off-by: Mark Brown drivers/spi/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6fec919b61b66e7f92646a7bd6fada9850f5cedc Author: Jiri Prchal Date: Thu Jun 25 13:44:19 2015 +0200 spi: spidev: add compatible value for LTC2488 Since spidev is no more allowed to use in DT and is really loudly warned about it I'd like to add this compatible value. (Geert Uytterhoeven wrote: "Add the compatible value for your device to the spidev_dt_ids[] array in drivers/spi/spidev.c.") Signed-off-by: Mark Brown drivers/spi/spidev.c | 1 + 1 file changed, 1 insertion(+) commit 01447e9f04ba1c49a9534ae6a5a6f26c2bb05226 Author: Zhao Junwang Date: Tue Jul 7 17:08:35 2015 +0800 drm: add a check for x/y in drm_mode_setcrtc legacy setcrtc ioctl does take a 32 bit value which might indeed overflow the checks of crtc_req->x > INT_MAX and crtc_req->y > INT_MAX aren't needed any more with this v2: -polish the annotation according to Daniel's comment Cc: Daniel Vetter Signed-off-by: Zhao Junwang Cc: stable@vger.kernel.org Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_crtc.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 41315b793e13f884cda79389f0d5d44d027e57d1 Author: Daniel Kurtz Date: Tue Jul 7 17:03:36 2015 +0800 drm/rockchip: use drm_gem_mmap helpers Rather than (incompletely [0]) re-implementing drm_gem_mmap() and drm_gem_mmap_obj() helpers, call them directly from the rockchip mmap routines. Once the core functions return successfully, the rockchip mmap routines can still use dma_mmap_attrs() to simply mmap the entire buffer. [0] Previously, we were performing the mmap() without first taking a reference on the underlying gem buffer. This could leak ptes if the gem object is destroyed while userspace is still holding the mapping. Signed-off-by: Daniel Kurtz Reviewed-by: Daniel Vetter Cc: stable@vger.kernel.org Signed-off-by: Daniel Vetter drivers/gpu/drm/rockchip/rockchip_drm_gem.c | 67 +++++++++++++++-------------- 1 file changed, 34 insertions(+), 33 deletions(-) commit 06be5eefe1192eb8ce8d07497f67595b6bfe9741 Merge: 11b8b25 1bd4678 Author: Russell King Date: Tue Jul 7 12:35:33 2015 +0100 Merge branches 'fixes' and 'ioremap' into for-linus commit 1b568d934eec1c5c99565c41f6c8ca66e9743e96 Author: Cornelia Huck Date: Tue Jul 7 11:41:01 2015 +0200 virtio/s390: rename drivers/s390/kvm -> drivers/s390/virtio This more accurately reflects what these drivers actually do. Suggested-by: Paolo Bonzini Acked-by: Christian Borntraeger Signed-off-by: Cornelia Huck Signed-off-by: Michael S. Tsirkin MAINTAINERS | 2 +- drivers/s390/Makefile | 2 +- drivers/s390/kvm/Makefile | 9 - drivers/s390/kvm/kvm_virtio.c | 510 -------------- drivers/s390/kvm/virtio_ccw.c | 1380 -------------------------------------- drivers/s390/virtio/Makefile | 9 + drivers/s390/virtio/kvm_virtio.c | 510 ++++++++++++++ drivers/s390/virtio/virtio_ccw.c | 1380 ++++++++++++++++++++++++++++++++++++++ 8 files changed, 1901 insertions(+), 1901 deletions(-) commit f2dbda3b4fc2833f0a6240ac28b0e3a17f09893b Author: Cornelia Huck Date: Wed Jul 1 17:15:37 2015 +0200 MAINTAINERS: separate section for s390 virtio drivers The s390-specific virtio drivers have probably more to do with virtio than with kvm today; let's move them out into a separate section to reflect this and to be able to add relevant mailing lists. CC: Christian Borntraeger Signed-off-by: Cornelia Huck Signed-off-by: Michael S. Tsirkin MAINTAINERS | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit 3121bb023e2db4f00ed6678898c09e35ed4b5301 Author: Michael S. Tsirkin Date: Thu Jul 2 10:56:49 2015 +0200 virtio: define virtio_pci_cfg_cap in header. We already have VIRTIO_PCI_CAP_PCI_CFG, let's define the structure that goes with it. Signed-off-by: Michael S. Tsirkin include/uapi/linux/virtio_pci.h | 6 ++++++ 1 file changed, 6 insertions(+) commit d768f32aec8c0ebb8499ffca89cfed8f5f1a4432 Author: Thomas Huth Date: Thu Jul 2 09:21:22 2015 +0200 virtio: Fix typecast of pointer in vring_init() The virtio_ring.h header is used in userspace programs (ie. QEMU), too. Here we can not assume that sizeof(pointer) is the same as sizeof(long), e.g. when compiling for Windows, so the typecast in vring_init() should be done with (uintptr_t) instead of (unsigned long). Signed-off-by: Thomas Huth Signed-off-by: Michael S. Tsirkin include/uapi/linux/virtio_ring.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 908a5544cd29ed60114ed60bded6dbe8cdd56326 Author: Stephen Rothwell Date: Tue Jun 30 10:59:04 2015 +1000 virtio scsi: fix unused variable warning drivers/scsi/virtio_scsi.c: In function 'virtscsi_probe': drivers/scsi/virtio_scsi.c:952:11: warning: unused variable 'host_prot' [-Wunused-variable] int err, host_prot; ^ Signed-off-by: Stephen Rothwell Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin drivers/scsi/virtio_scsi.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 6d3dab7d84177f836b14961b4d252d0959d66768 Author: Rafael J. Wysocki Date: Tue Jul 7 13:08:39 2015 +0200 PM / wakeirq: Avoid setting power.wakeirq too hastily If dev_pm_attach_wake_irq() fails, the device's power.wakeirq field should not be set to point to the struct wake_irq passed to that function, as that object will be freed going forward. For this reason, make dev_pm_attach_wake_irq() first call device_wakeup_attach_irq() and only set the device's power.wakeirq field if that's successful. That requires device_wakeup_attach_irq() to be called under the device's power.lock lock, but since dev_pm_attach_wake_irq() is the only caller of it, the requisite changes are easy to make. Fixes: 4990d4fe327b (PM / Wakeirq: Add automated device wake IRQ handling) Reported-by: Felipe Balbi Tested-by: Tony Lindgren Signed-off-by: Rafael J. Wysocki drivers/base/power/wakeirq.c | 12 +++++------- drivers/base/power/wakeup.c | 31 ++++++++++--------------------- 2 files changed, 15 insertions(+), 28 deletions(-) commit 09cf92b784fae6109450c5d64f9908066d605249 Author: Thomas Gleixner Date: Sun Jul 5 17:12:35 2015 +0000 x86/irq: Retrieve irq data after locking irq_desc irq_data is protected by irq_desc->lock, so retrieving the irq chip from irq_data outside the lock is racy vs. an concurrent update. Move it into the lock held region. While at it add a comment why the vector walk does not require vector_lock. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra Cc: xiao jin Cc: Joerg Roedel Cc: Borislav Petkov Cc: Yanmin Zhang Link: http://lkml.kernel.org/r/20150705171102.331320612@linutronix.de arch/x86/kernel/irq.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit cbb24dc761d95fe39a7a122bb1b298e9604cae15 Author: Thomas Gleixner Date: Sun Jul 5 17:12:33 2015 +0000 x86/irq: Use proper locking in check_irq_vectors_for_cpu_disable() It's unsafe to examine fields in the irq descriptor w/o holding the descriptor lock. Add proper locking. While at it add a comment why the vector check can run lock less Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra Cc: xiao jin Cc: Joerg Roedel Cc: Borislav Petkov Cc: Yanmin Zhang Link: http://lkml.kernel.org/r/20150705171102.236544164@linutronix.de arch/x86/kernel/irq.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) commit 5a3f75e3f02836518ce49536e9c460ca8e1fa290 Author: Thomas Gleixner Date: Sun Jul 5 17:12:32 2015 +0000 x86/irq: Plug irq vector hotplug race Jin debugged a nasty cpu hotplug race which results in leaking a irq vector on the newly hotplugged cpu. cpu N cpu M native_cpu_up device_shutdown do_boot_cpu free_msi_irqs start_secondary arch_teardown_msi_irqs smp_callin default_teardown_msi_irqs setup_vector_irq arch_teardown_msi_irq __setup_vector_irq native_teardown_msi_irq lock(vector_lock) destroy_irq install vectors unlock(vector_lock) lock(vector_lock) ---> __clear_irq_vector unlock(vector_lock) lock(vector_lock) set_cpu_online unlock(vector_lock) This leaves the irq vector(s) which are torn down on CPU M stale in the vector array of CPU N, because CPU M does not see CPU N online yet. There is a similar issue with concurrent newly setup interrupts. The alloc/free protection of irq descriptors does not prevent the above race, because it merily prevents interrupt descriptors from going away or changing concurrently. Prevent this by moving the call to setup_vector_irq() into the vector_lock held region which protects set_cpu_online(): cpu N cpu M native_cpu_up device_shutdown do_boot_cpu free_msi_irqs start_secondary arch_teardown_msi_irqs smp_callin default_teardown_msi_irqs lock(vector_lock) arch_teardown_msi_irq setup_vector_irq() __setup_vector_irq native_teardown_msi_irq install vectors destroy_irq set_cpu_online unlock(vector_lock) lock(vector_lock) __clear_irq_vector unlock(vector_lock) So cpu M either sees the cpu N online before clearing the vector or cpu N installs the vectors after cpu M has cleared it. Reported-by: xiao jin Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra Cc: Joerg Roedel Cc: Borislav Petkov Cc: Yanmin Zhang Link: http://lkml.kernel.org/r/20150705171102.141898931@linutronix.de arch/x86/kernel/apic/vector.c | 10 ++-------- arch/x86/kernel/smpboot.c | 13 +++++-------- 2 files changed, 7 insertions(+), 16 deletions(-) commit 3f8dc44d88d3e86178eb9322c779c599f3745b21 Author: Michael Neuling Date: Tue Jul 7 11:01:17 2015 +1000 cxl: Fix refcounting in kernel API Currently the kernel API AFU dev refcounting is done on context start and stop. This patch moves this refcounting to context init and release, bringing it inline with how the userspace API does it. Without this we've seen the refcounting on the AFU get out of whack between the user and kernel API usage. This causes the AFU structures to be freed when they are actually still in use. This fixes some kref warnings we've been seeing and spurious ErrIVTE IRQs. Signed-off-by: Michael Neuling Acked-by: Ian Munsie Signed-off-by: Michael Ellerman drivers/misc/cxl/api.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) commit 7c4a976cd55972b68c75a978f171b6db5df4ce66 Author: Viresh Kumar Date: Tue Jul 7 10:14:35 2015 +0200 clockevents: Allow set-state callbacks to be optional Its mandatory for the drivers to provide set_state_{oneshot|periodic}() (only if related modes are supported) and set_state_shutdown() callbacks today, if they are implementing the new set-state interface. But this leads to unnecessary noop callbacks for drivers which don't want to implement them. Over that, it will lead to a full function call for nothing really useful. Lets make all set-state callbacks optional. Suggested-by: Daniel Lezcano Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano Link: http://lkml.kernel.org/r/1436256875-15562-1-git-send-email-daniel.lezcano@linaro.org Signed-off-by: Thomas Gleixner kernel/time/clockevents.c | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) commit 747d34e7313034768aac83d679db43cedc5ab778 Author: Philippe Reynes Date: Sat Jun 27 23:11:44 2015 +0200 clocksource/imx: Define clocksource for mx27 The rework of the imx clocksource driver missed to add an entry for imx27 which results in a boot failure on those machines. Add the proper CLOCKSOURCE_OF_DECLARE() entry for imx27 and map it to the imx21 init. Fixes: bef11c881ba5 'ARM: imx: initialize gpt device type for DT boot' Signed-off-by: Philippe Reynes Cc: linux-arm-kernel@lists.infradead.org Cc: daniel.lezcano@linaro.org Cc: fabio.estevam@freescale.com Cc: shawnguo@kernel.org Cc: kernel@pengutronix.de Link: http://lkml.kernel.org/r/1435439504-406-1-git-send-email-tremyfr@gmail.com Signed-off-by: Thomas Gleixner drivers/clocksource/timer-imx-gpt.c | 1 + 1 file changed, 1 insertion(+) commit f9c87a6f46d508eae0d9ae640be98d50f237f827 Author: Martin Schwidefsky Date: Mon Jul 6 17:58:19 2015 +0200 s390/sclp: clear upper register halves in _sclp_print_early If the kernel is compiled with gcc 5.1 and the XZ compression option the decompress_kernel function calls _sclp_print_early in 64-bit mode while the content of the upper register half of %r6 is non-zero. This causes a specification exception on the servc instruction in _sclp_servc. The _sclp_print_early function saves and restores the upper registers halves but it fails to clear them for the 31-bit code of the mini sclp driver. Cc: Signed-off-by: Martin Schwidefsky arch/s390/kernel/sclp.S | 4 ++++ 1 file changed, 4 insertions(+) commit 5dd90e5b91e0f5c925b12b132c7cd27538870256 Author: Krzysztof Kozlowski Date: Mon Jun 15 23:00:09 2015 +0900 dmaengine: pl330: Really fix choppy sound because of wrong residue calculation When pl330 driver was used during sound playback, after some time or after a number of plays the sound became choppy or totally noisy. For example on Odroid XU3 board the first four executions of aplay with small WAVE worked fine, but fifth was unrecognizable with errors: $ aplay /usr/share/sounds/alsa/Front_Right.wava underrun!!! (at least 0.095 ms long) Issue was caused by wrong residue reported by pl330 driver to pcm_dmaengine for its cyclic dma transfers. The pl330_tx_status(), residue reporting function, used a "last" flag in a descriptor to indicate that there is no more data to send. The pl330_tx_submit() iterated over descriptors trying to remove this flag from them and then mark last descriptor as "last". However when iterating it actually removed the flag not from descriptors but always from last of it (and then reset it). Thus effectively once some descriptor was marked as last, then it stayed like this forever causing residue to be reported too low. Signed-off-by: Krzysztof Kozlowski Fixes: aee4d1fac887 ("dmaengine: pl330: improve pl330_tx_status() function") Cc: Reported-by: gabriel@unseen.is Suggested-by: Marek Szyprowski Tested-by: Lars-Peter Clausen Signed-off-by: Vinod Koul drivers/dma/pl330.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ae128293d97404f491dc76f1843c7adacfec3441 Author: Krzysztof Kozlowski Date: Mon Jun 15 17:25:16 2015 +0900 dmaengine: pl330: Fix overflow when reporting residue in memcpy During memcpy operations the residue was always set to an u32 overflowed value. In pl330_tx_status() function number of currently transferred bytes was subtracted from internal "bytes_requested" field. However this "bytes_requested" was not initialized at start to length of memcpy buffer so transferred bytes were subtracted from 0 causing overflow. Signed-off-by: Krzysztof Kozlowski Cc: Fixes: aee4d1fac887 ("dmaengine: pl330: improve pl330_tx_status() function") Signed-off-by: Vinod Koul drivers/dma/pl330.c | 1 + 1 file changed, 1 insertion(+) commit cbe4f4434ded7f3e581b9f7db34a875d0246210e Author: James Simmons Date: Thu Jun 25 16:59:46 2015 -0400 staging:lustre: remove irq.h from socklnd.h The header socklnd.h includes irq.h which is not need and doesn't exist in the OpenSFS lustre branch. Having irq.h in socklnd.h does break the build on the m68k platform. So we can safely remove it. Signed-off-by: James Simmons Tested-by: Guenter Roeck Tested-by: by: Geert Uytterhoeven Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lnet/klnds/socklnd/socklnd.h | 1 - 1 file changed, 1 deletion(-) commit 5dacbfc934cab0778852b18dd5d67ecebfcf9a2e Author: Sagi Grimberg Date: Sat Jul 4 14:05:24 2015 +0300 target/rd: Set ramdisk as non rotational device Since a RAM backend device is not really a rotational device, we set it as is_nonrot=1 which will be forwarded in VPD page 0xb1 (block device characteristics) response. Signed-off-by: Sagi Grimberg Signed-off-by: Nicholas Bellinger drivers/target/target_core_rd.c | 1 + 1 file changed, 1 insertion(+) commit 3aa3c67b266fd6114c019bbac35de79aca02d520 Author: Nicholas Bellinger Date: Mon Jul 6 15:26:37 2015 -0700 target: Add extra TYPE_DISK + protection checks for INQUIRY SPT Cc: Sagi Grimberg Signed-off-by: Nicholas Bellinger drivers/target/target_core_spc.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 27e6772b0d492375621f496a114617bf9c17c8d2 Author: Sagi Grimberg Date: Mon Jun 29 18:32:03 2015 +0300 target/spc: Set SPT correctly in Extended INQUIRY Data VPD page LIO supports protection types 1,3 so setting a hard-coded SPT=3 is fine for now. Signed-off-by: Sagi Grimberg Signed-off-by: Nicholas Bellinger drivers/target/target_core_spc.c | 3 +++ 1 file changed, 3 insertions(+) commit b32aadc1a8ed84afbe924cd2ced31cd6a2e67074 Author: Shreyas B. Prabhu Date: Tue Jul 7 01:39:23 2015 +0530 powerpc/powernv: Fix race in updating core_idle_state core_idle_state is maintained for each core. It uses 0-7 bits to track whether a thread in the core has entered fastsleep or winkle. 8th bit is used as a lock bit. The lock bit is set in these 2 scenarios- - The thread is first in subcore to wakeup from sleep/winkle. - If its the last thread in the core about to enter sleep/winkle While the lock bit is set, if any other thread in the core wakes up, it loops until the lock bit is cleared before proceeding in the wakeup path. This helps prevent race conditions w.r.t fastsleep workaround and prevents threads from switching to process context before core/subcore resources are restored. But, in the path to sleep/winkle entry, we currently don't check for lock-bit. This exposes us to following race when running with subcore on- First thread in the subcorea Another thread in the same waking up core entering sleep/winkle lwarx r15,0,r14 ori r15,r15,PNV_CORE_IDLE_LOCK_BIT stwcx. r15,0,r14 [Code to restore subcore state] lwarx r15,0,r14 [clear thread bit] stwcx. r15,0,r14 andi. r15,r15,PNV_CORE_IDLE_THREAD_BITS stw r15,0(r14) Here, after the thread entering sleep clears its thread bit in core_idle_state, the value is overwritten by the thread waking up. In such cases when the core enters fastsleep, code mistakes an idle thread as running. Because of this, the first thread waking up from fastsleep which is supposed to resync timebase skips it. So we can end up having a core with stale timebase value. This patch fixes the above race by looping on the lock bit even while entering the idle states. Signed-off-by: Shreyas B. Prabhu Fixes: 7b54e9f213f76 'powernv/powerpc: Add winkle support for offline cpus' Cc: stable@vger.kernel.org # 3.19+ Signed-off-by: Michael Ellerman arch/powerpc/kernel/idle_power7.S | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) commit c7e9ad7da219cf3f8a7cc45eb1c02fdd91199e8d Merge: 1c4c715 ebf2d26 Author: Linus Torvalds Date: Mon Jul 6 17:07:56 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: - fix the perf build, by fixing the rbtree.c sharing bug between kernel and tools/perf by creating a local copy of rbtree.c (more will be done for v4.3) - fix an AUX buffer (Intel-PT support) refcounting bug - fix copy_from_user_nmi() return value" * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: perf/x86: Fix copy_from_user_nmi() return if range is not ok perf: Fix AUX buffer refcounting tools: Copy rbtree_augmented.h from the kernel tools: Move rbtree.h from tools/perf/ tools: Copy lib/rbtree.c to tools/lib/ perf tools: Copy rbtree.h from the kernel tools: Adopt {READ,WRITE_ONCE} from the kernel commit 9b353cc8f199e4bc78023e8300306b5a16b48e75 Author: Sagi Grimberg Date: Mon Jun 29 13:07:06 2015 +0300 target/pr: Fix possible uninitialized variable usage Triggered a compilation warning. Fixes: 2650d71e2 target: move transport ID handling to the core Signed-off-by: Sagi Grimberg Signed-off-by: Nicholas Bellinger drivers/target/target_core_pr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2051e9248688e4c36e4de2e93b88fa0d74e86261 Author: Suthikulpanit, Suravee Date: Tue Jul 7 01:55:21 2015 +0200 ata: ahci_platform: Add ACPI _CLS matching This patch adds ACPI supports for AHCI platform driver, which uses _CLS method to match the device. The following is an example of ASL structure in DSDT for a SATA controller, which contains _CLS package to be matched by the ahci_platform driver: Device (AHC0) // AHCI Controller { Name(_HID, "AMDI0600") Name (_CCA, 1) Name (_CLS, Package (3) { 0x01, // Base Class: Mass Storage 0x06, // Sub-Class: serial ATA 0x01, // Interface: AHCI }) Name (_CRS, ResourceTemplate () { Memory32Fixed (ReadWrite, 0xE0300000, 0x00010000) Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive,,,) { 387 } }) } Also, since ATA driver should not require PCI support for ATA_ACPI, this patch removes dependency in the driver/ata/Kconfig. Acked-by: Tejun Heo Acked-by: Mika Westerberg Reviewed-by: Hanjun Guo Signed-off-by: Suravee Suthikulpanit Signed-off-by: Rafael J. Wysocki drivers/ata/Kconfig | 2 +- drivers/ata/ahci_platform.c | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) commit 26095a01d359827eeccec5459c28ddd976183179 Author: Suthikulpanit, Suravee Date: Tue Jul 7 01:55:20 2015 +0200 ACPI / scan: Add support for ACPI _CLS device matching Device drivers typically use ACPI _HIDs/_CIDs listed in struct device_driver acpi_match_table to match devices. However, for generic drivers, we do not want to list _HID for all supported devices. Also, certain classes of devices do not have _CID (e.g. SATA, USB). Instead, we can leverage ACPI _CLS, which specifies PCI-defined class code (i.e. base-class, subclass and programming interface). This patch adds support for matching ACPI devices using the _CLS method. To support loadable module, current design uses _HID or _CID to match device's modalias. With the new way of matching with _CLS this would requires modification to the current ACPI modalias key to include _CLS. This patch appends PCI-defined class-code to the existing ACPI modalias as following. acpi::::..::: E.g: # cat /sys/devices/platform/AMDI0600:00/modalias acpi:AMDI0600:010601: where bb is th base-class code, ss is te sub-class code, and pp is the programming interface code Since there would not be _HID/_CID in the ACPI matching table of the driver, this patch adds a field to acpi_device_id to specify the matching _CLS. static const struct acpi_device_id ahci_acpi_match[] = { { ACPI_DEVICE_CLASS(PCI_CLASS_STORAGE_SATA_AHCI, 0xffffff) }, {}, }; In this case, the corresponded entry in modules.alias file would be: alias acpi*:010601:* ahci_platform Acked-by: Mika Westerberg Reviewed-by: Hanjun Guo Signed-off-by: Suravee Suthikulpanit Signed-off-by: Rafael J. Wysocki drivers/acpi/scan.c | 32 ++++++++++++++++++++++++++++++-- include/linux/acpi.h | 14 ++++++++++++++ include/linux/mod_devicetable.h | 2 ++ scripts/mod/devicetable-offsets.c | 2 ++ scripts/mod/file2alias.c | 32 ++++++++++++++++++++++++++++++-- 5 files changed, 78 insertions(+), 4 deletions(-) commit b51f9b103f58db2c5c0a20d6cee26c8bc255d3ae Author: Uwe Geuder Date: Mon Jun 29 23:35:05 2015 +0300 PM / hibernate: clarify resume documentation it was not the whole truth that kernel mode cannot be used with swap on LVM Signed-off-by: Uwe Geuder Acked-by: Pavel Machek Signed-off-by: Rafael J. Wysocki Documentation/power/swsusp.txt | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) commit 93af5e93544328285a6f65f7d47bbea8979b28fb Author: Geert Uytterhoeven Date: Fri Jun 26 11:14:14 2015 +0200 PM / Domains: Avoid infinite loops in attach/detach code If pm_genpd_{add,remove}_device() keeps on failing with -EAGAIN, we end up with an infinite loop in genpd_dev_pm_{at,de}tach(). This may happen due to a genpd.prepared_count imbalance. This is a bug elsewhere, but it will result in a system lock up, possibly during reboot of an otherwise functioning system. To avoid this, put a limit on the maximum number of loop iterations, using an exponential back-off mechanism. If the limit is reached, the operation will just fail. An error message is already printed. Signed-off-by: Geert Uytterhoeven Signed-off-by: Rafael J. Wysocki drivers/base/power/domain.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) commit 7b2a4635b84b4dbb07c93201a8c0aea82ed65e4f Author: Sascha Hauer Date: Tue Jun 30 10:58:44 2015 +0800 clk: mediatek: mt8173: Fix enabling of critical clocks On the MT8173 the clocks are provided by different units. To enable the critical clocks we must be sure that all parent clocks are already registered, otherwise the parents of the critical clocks end up being unused and get disabled later. To find a place where all parents are registered we try each time after we've registered some clocks if all known providers are present now and only then we enable the critical clocks Signed-off-by: Sascha Hauer Signed-off-by: James Liao [sboyd@codeaurora.org: Marked function and data __init] Signed-off-by: Stephen Boyd drivers/clk/mediatek/clk-mt8173.c | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) commit 22565ba0bf231eb4267b1d2ebad300d55b28a427 Author: Pali Rohár Date: Mon Jul 6 12:08:57 2015 +0200 dell-laptop: Do not cache hwswitch state The hwswitch state can be changed at runtime, so make sure dell-laptop always knows the current state. It can be modified by the userspace utility smbios-wireless-ctl. Signed-off-by: Pali Rohár Signed-off-by: Darren Hart drivers/platform/x86/dell-laptop.c | 85 +++++++++++++++++++++++++++----------- 1 file changed, 61 insertions(+), 24 deletions(-) commit 715d0cdd5a459908c2b2eb1cfa30d6f6d1d7d710 Author: Pali Rohár Date: Mon Jul 6 12:08:56 2015 +0200 dell-laptop: Check return value of each SMBIOS call Make sure that return value of each SMBIOS call is properly checked and do not continue processing output if the call failed. Signed-off-by: Pali Rohár Signed-off-by: Darren Hart drivers/platform/x86/dell-laptop.c | 83 ++++++++++++++++++++++++++------------ 1 file changed, 58 insertions(+), 25 deletions(-) commit ced53f6d12e497ba210a518e7e76178da987f932 Author: Pali Rohár Date: Mon Jul 6 12:08:55 2015 +0200 dell-laptop: Clear buffer before each SMBIOS call Make sure that before initializing SMBIOS call, the input buffer does not contain any garbage (e.g. values from previous SMBIOS call). This fixes problems with passing undefined/random parameters to SMBIOS functions. Signed-off-by: Pali Rohár Signed-off-by: Darren Hart drivers/platform/x86/dell-laptop.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit d3e13ff3c1aa2403d9a5f371baac088daeb8f56d Author: Rafael J. Wysocki Date: Tue Jul 7 00:31:47 2015 +0200 ACPI / LPSS: Fix up acpi_lpss_create_device() Fix a return value (which should be a negative error code) and a memory leak (the list allocated by acpi_dev_get_resources() needs to be freed on ioremap() errors too) in acpi_lpss_create_device() introduced by commit 4483d59e29fe 'ACPI / LPSS: check the result of ioremap()'. Fixes: 4483d59e29fe 'ACPI / LPSS: check the result of ioremap()' Reported-by: Dan Carpenter Cc: 4.0+ # 4.0+ Signed-off-by: Rafael J. Wysocki drivers/acpi/acpi_lpss.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 0294112ee3135fbd15eaa70015af8283642dd970 Author: Rafael J. Wysocki Date: Sat Jul 4 03:09:03 2015 +0200 ACPI / PNP: Reserve ACPI resources at the fs_initcall_sync stage This effectively reverts the following three commits: 7bc10388ccdd ACPI / resources: free memory on error in add_region_before() 0f1b414d1907 ACPI / PNP: Avoid conflicting resource reservations b9a5e5e18fbf ACPI / init: Fix the ordering of acpi_reserve_resources() (commit b9a5e5e18fbf introduced regressions some of which, but not all, were addressed by commit 0f1b414d1907 and commit 7bc10388ccdd was a fixup on top of the latter) and causes ACPI fixed hardware resources to be reserved at the fs_initcall_sync stage of system initialization. The story is as follows. First, a boot regression was reported due to an apparent resource reservation ordering change after a commit that shouldn't lead to such changes. Investigation led to the conclusion that the problem happened because acpi_reserve_resources() was executed at the device_initcall() stage of system initialization which wasn't strictly ordered with respect to driver initialization (and with respect to the initialization of the pcieport driver in particular), so a random change causing the device initcalls to be run in a different order might break things. The response to that was to attempt to run acpi_reserve_resources() as soon as we knew that ACPI would be in use (commit b9a5e5e18fbf). However, that turned out to be too early, because it caused resource reservations made by the PNP system driver to fail on at least one system and that failure was addressed by commit 0f1b414d1907. That fix still turned out to be insufficient, though, because calling acpi_reserve_resources() before the fs_initcall stage of system initialization caused a boot regression to happen on the eCAFE EC-800-H20G/S netbook. That meant that we only could call acpi_reserve_resources() at the fs_initcall initialization stage or later, but then we might just as well call it after the PNP initalization in which case commit 0f1b414d1907 wouldn't be necessary any more. For this reason, the changes made by commit 0f1b414d1907 are reverted (along with a memory leak fixup on top of that commit), the changes made by commit b9a5e5e18fbf that went too far are reverted too and acpi_reserve_resources() is changed into fs_initcall_sync, which will cause it to be executed after the PNP subsystem initialization (which is an fs_initcall) and before device initcalls (including the pcieport driver initialization) which should avoid the initial issue. Link: https://bugzilla.kernel.org/show_bug.cgi?id=100581 Link: http://marc.info/?t=143092384600002&r=1&w=2 Link: https://bugzilla.kernel.org/show_bug.cgi?id=99831 Link: http://marc.info/?t=143389402600001&r=1&w=2 Fixes: b9a5e5e18fbf "ACPI / init: Fix the ordering of acpi_reserve_resources()" Reported-by: Roland Dreier Cc: All applicable Signed-off-by: Rafael J. Wysocki drivers/acpi/osl.c | 12 +++- drivers/acpi/resource.c | 162 ------------------------------------------------ drivers/pnp/system.c | 35 +++-------- include/linux/acpi.h | 10 --- 4 files changed, 18 insertions(+), 201 deletions(-) commit 8bc76c8bf6e5d96985eb05afe1b94699d580eb68 Author: Fang, Yang A Date: Mon Jul 6 14:12:38 2015 -0700 ASoC: Intel: fix incorrect widget name We should use "HiFi Playback" and "HiFi Capture".it will fix below err cht-bsw-max98090: ASoC: no sink widget found for AIF1 Playback cht-bsw-max98090: ASoC: Failed to add route ssp2 Tx -> direct -> AIF1 Playback cht-bsw-max98090: ASoC: no source widget found for AIF1 Capture cht-bsw-max98090: ASoC: Failed to add route AIF1 Capture -> direct -> ssp2 Rx Signed-off-by: Fang, Yang A Signed-off-by: Mark Brown sound/soc/intel/boards/cht_bsw_max98090_ti.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 159eeea4cbc142bd5fd396a84cc63345455586a6 Author: Robert Jarzmik Date: Thu Jun 25 19:14:18 2015 +0200 MAINTAINERS: mtd: docg3: add docg3 maintainer Add myself as maintainer of the NAND based MSystems DiskOnChip G3 driver. Signed-off-by: Robert Jarzmik Signed-off-by: Brian Norris MAINTAINERS | 6 ++++++ 1 file changed, 6 insertions(+) commit e50b1e06b79e9d51efbff9627b4dd407184ef43f Author: Lars-Peter Clausen Date: Mon Jul 6 17:01:24 2015 +0200 ASoC: dapm: Lock during userspace access The DAPM lock must be held when accessing the DAPM graph status through sysfs or debugfs, otherwise concurrent changes to the graph can result in undefined behaviour. Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown Cc: stable@vger.kernel.org sound/soc/soc-dapm.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 3be6d8ce639d92e60d144fb99dd74a53fe3799bb Author: Gabriel Fernandez Date: Tue Jun 23 16:09:25 2015 +0200 drivers: clk: st: Fix mux bit-setting for Cortex A9 clocks This patch fixes the mux bit-setting for ClockgenA9. Signed-off-by: Gabriel Fernandez Fixes: 13e6f2da1ddf ("clk: st: STiH407: Support for A9 MUX Clocks") Signed-off-by: Stephen Boyd drivers/clk/st/clkgen-mux.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 18fee4538fe534c53fa95fe9eaa7f96586814e0a Author: Pankaj Dev Date: Tue Jun 23 16:09:24 2015 +0200 drivers: clk: st: Add CLK_GET_RATE_NOCACHE flag to clocks Add the CLK_GET_RATE_NOCACHE flag to all the clocks with recalc ops, so that they reflect Hw rate after CPS wake-up when a clk_get_rate() is called Signed-off-by: Pankaj Dev Signed-off-by: Gabriel Fernandez Signed-off-by: Stephen Boyd drivers/clk/st/clk-flexgen.c | 2 +- drivers/clk/st/clkgen-fsyn.c | 2 +- drivers/clk/st/clkgen-mux.c | 8 +++++--- drivers/clk/st/clkgen-pll.c | 2 +- 4 files changed, 8 insertions(+), 6 deletions(-) commit 0f4f2afd4402883a51ad27a1d9e046643bb1e3cb Author: Giuseppe Cavallaro Date: Tue Jun 23 16:09:23 2015 +0200 drivers: clk: st: Fix flexgen lock init While proving lock, the following warning happens and it is fixed after initializing lock in the setup function INFO: trying to register non-static key. the code is fine but needs lockdep annotation. turning off the locking correctness validator. CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.10.27-02861-g39df285-dirty #33 [] (unwind_backtrace+0x0/0xf4) from [] (show_stack+0x10/0x14) [] (show_stack+0x10/0x14) from [] (__lock_acquire+0x900/0xb14) [] (__lock_acquire+0x900/0xb14) from [] (lock_acquire+0x68/0x7c) [] (lock_acquire+0x68/0x7c) from [] (_raw_spin_lock_irqsave+0x48/0x5c) [] (_raw_spin_lock_irqsave+0x48/0x5c) from [] (clk_gate_endisable+0x28/0x88) [] (clk_gate_endisable+0x28/0x88) from [] (clk_gate_enable+0xc/0x14) [] (clk_gate_enable+0xc/0x14) from [] (flexgen_enable+0x28/0x40) [] (flexgen_enable+0x28/0x40) from [] (__clk_enable+0x5c/0x9c) [] (__clk_enable+0x5c/0x9c) from [] (clk_enable+0x18/0x2c) [] (clk_enable+0x18/0x2c) from [] (st_lpc_of_register+0xc0/0x248) [] (st_lpc_of_register+0xc0/0x248) from [] (clocksource_of_init+0x34/0x58) [] (clocksource_of_init+0x34/0x58) from [] (sti_timer_init+0x10/0x18) [] (sti_timer_init+0x10/0x18) from [] (time_init+0x20/0x30) [] (time_init+0x20/0x30) from [] (start_kernel+0x20c/0x2e8) [] (start_kernel+0x20c/0x2e8) from [<40008074>] (0x40008074) Signed-off-by: Giuseppe Cavallaro Signed-off-by: Gabriel Fernandez Fixes: b116517055b7 ("clk: st: STiH407: Support for Flexgen Clocks") Signed-off-by: Stephen Boyd drivers/clk/st/clk-flexgen.c | 2 ++ 1 file changed, 2 insertions(+) commit c4d339c69f91c20def1366c1db8af6ac7a3013a9 Author: Gabriel Fernandez Date: Tue Jun 23 16:09:22 2015 +0200 drivers: clk: st: Fix FSYN channel values This patch fixes the value for disabling the FSYN channel clock. The 'is_enabled' returned value is also fixed. Signed-off-by: Pankaj Dev Signed-off-by: Gabriel Fernandez Signed-off-by: Stephen Boyd drivers/clk/st/clkgen-fsyn.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c14bada8f71eef63d4465aa8e3a479104a06e7c7 Author: Gabriel Fernandez Date: Tue Jun 23 16:09:21 2015 +0200 drivers: clk: st: Remove unused code Remove this duplicated code due to a bad copy / paste. Signed-off-by: Gabriel Fernandez Signed-off-by: Stephen Boyd drivers/clk/st/clkgen-fsyn.c | 4 ---- 1 file changed, 4 deletions(-) commit 6d451367bfa16fc103604bacd258f534c65d1540 Author: Hai Li Date: Thu Jun 25 18:35:33 2015 -0400 clk: qcom: Use parent rate when set rate to pixel RCG clock Since the parent rate has been recalculated, pixel RCG clock should rely on it to find the correct M/N values during set_rate, instead of calling __clk_round_rate() to its parent again. Signed-off-by: Hai Li Tested-by: Archit Taneja Fixes: 99cbd064b059 ("clk: qcom: Support display RCG clocks") [sboyd@codeaurora.org: Silenced unused parent variable warning] Signed-off-by: Stephen Boyd drivers/clk/qcom/clk-rcg2.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit b78fb51b68884ba9b8541a2f1914e8b6d054474c Author: qipeng.zha Date: Tue Jul 7 00:04:45 2015 +0800 intel_pmc_ipc: Fix compiler casting warnings Avoid casting variables to different sizes due to different compilers and settings. Reported-by: Fengguang Wu Signed-off-by: qipeng.zha Signed-off-by: Darren Hart drivers/platform/x86/intel_pmc_ipc.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) commit b2e2c94b878be2500d4d42c1f52a2fa1fe7648b4 Author: Andrzej Pietrasiewicz Date: Fri Jul 3 14:02:29 2015 +0200 usb: gadget: f_midi: fix error recovery path In case kstrdup() fails the resources to release are midi->in_port[] and midi. No cards have been registered, so no need to unregister any. Signed-off-by: Andrzej Pietrasiewicz Signed-off-by: Felipe Balbi drivers/usb/gadget/function/f_midi.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 543aa4867d4a2dff5fc11e1b688197ee3bad7f89 Author: Stefan Wahren Date: Mon Jun 15 04:37:00 2015 +0000 usb: phy: mxs: suspend to RAM causes NULL pointer dereference Triggering suspend to RAM via sysfs on a i.MX28 causes a NULL pointer dereference. This patch avoids the oops in mxs_phy_get_vbus_status() by aborting since there is no syscon available. Signed-off-by: Stefan Wahren Fixes: efdbd3a5d6e ("usb: phy: mxs: do not set PWD.RXPWD1PT1 for low speed connection") CC: # 4.0 Acked-by: Peter Chen Signed-off-by: Felipe Balbi drivers/usb/phy/phy-mxs-usb.c | 3 +++ 1 file changed, 3 insertions(+) commit 2184fe636b4e310cba52251971cee82cb2407a68 Author: Takeshi Yoshimura Date: Sun Jun 14 16:09:23 2015 +0900 usb: gadget: udc: fix free_irq() after request_irq() failed My static checker detected the mistake. I fix this by changing "goto err_irq" to "goto err_req". The label err_irq is not used now so this patch also removes it. Signed-off-by: Takeshi Yoshimura Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/fotg210-udc.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit b4c21f0bdd2c0cd5d5be1bb56f0a28dae5041eed Author: Kishon Vijay Abraham I Date: Thu Jun 11 22:12:11 2015 +0530 usb: gadget: composite: Fix NULL pointer dereference commit f563d230903210acc ("usb: gadget: composite: add req_match method to usb_function") accesses cdev->config even before set config is invoked causing a NULL pointer dereferencing error while running Lecroy Mass Storage Compliance test. Fix it here by accessing cdev->config only if it is non NULL. Fixes: commit f563d230903210acc ("usb: gadget: composite: add req_match method to usb_function"). Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Felipe Balbi drivers/usb/gadget/composite.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit 4088acf1e845aba35f30fb91dee10649edbd0e84 Author: Rui Miguel Silva Date: Mon May 18 16:02:07 2015 +0100 usb: gadget: f_fs: do not set cancel function on synchronous {read,write} do not try to set cancel function in synchronous operations in ffs_epfile_{read,write}_iter. Cc: # v4.0+ Acked-by: Al Viro Signed-off-by: Rui Miguel Silva Signed-off-by: Felipe Balbi drivers/usb/gadget/function/f_fs.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 8515bac01a983d277148e4fcc5f235bf603de577 Author: Michal Nazarewicz Date: Fri Jun 19 23:56:34 2015 +0200 usb: f_mass_storage: limit number of reported LUNs Mass storage function created via configfs always reports eight LUNs to the hosts even if only one LUN has been configured. Adjust the number when the USB function is allocated based on LUNs that user has created. Cc: Tested-by: Gregory CLEMENT Signed-off-by: Michal Nazarewicz Signed-off-by: Felipe Balbi drivers/usb/gadget/function/f_mass_storage.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) commit 43cacb03aabe62158d8e5da876054c7d48fc9963 Author: Felipe Balbi Date: Wed Jul 1 22:03:09 2015 -0500 usb: dwc3: core: avoid NULL pointer dereference commit 3e10a2ce98d1 ("usb: dwc3: add hsphy_interface property") introduced a possible NULL pointer dereference because dwc->hsphy_interface can be NULL. In order to fix it, all we have to do is guard strncmp() against a NULL argument. Fixes: 3e10a2ce98d1 ("usb: dwc3: add hsphy_interface property") Tested-by: Murali Karicheri Signed-off-by: Felipe Balbi drivers/usb/dwc3/core.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit cc1e204cb092da8495fe2c24bdc4543c259d6b34 Author: Mian Yousaf Kaukab Date: Mon Jun 29 11:05:30 2015 +0200 usb: dwc2: embed storage for reg backup in struct dwc2_hsotg Register backup function can be called from atomic context. Instead of using atomic memory pool, embed backup storage space in struct dwc2_hsotg. Also add a valid flag in each struct as NULL pointer can't be used as the content validity check any more. Acked-by: John Youn Tested-by: Heiko Stuebner Tested-by: Doug Anderson Signed-off-by: Mian Yousaf Kaukab Signed-off-by: Felipe Balbi drivers/usb/dwc2/core.c | 55 ++++++++++++++----------------------------------- drivers/usb/dwc2/core.h | 9 +++++--- 2 files changed, 21 insertions(+), 43 deletions(-) commit b5a468a6aa1ca9176594cd603760d80fa1e8b15e Author: Mian Yousaf Kaukab Date: Mon Jun 29 11:05:29 2015 +0200 usb: dwc2: host: allocate qtd before atomic enqueue To avoid sleep while atomic bugs, allocate qtd before calling dwc2_hcd_urb_enqueue. No need to pass mem_flags to dwc2_hcd_urb_enqueue any more as no memory allocations are done in it. Acked-by: John Youn Tested-by: Heiko Stuebner Tested-by: Doug Anderson Signed-off-by: Mian Yousaf Kaukab Signed-off-by: Felipe Balbi drivers/usb/dwc2/hcd.c | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) commit b58e6ceef96f2fbcb1698b0a7c7df59fdea0aa32 Author: Mian Yousaf Kaukab Date: Mon Jun 29 11:05:28 2015 +0200 usb: dwc2: host: allocate qh before atomic enqueue To avoid sleep while atomic bugs, allocate qh before calling dwc2_hcd_urb_enqueue. qh pointer can be used directly now instead of passing ep->hcpriv as double pointer. Acked-by: John Youn Tested-by: Heiko Stuebner Tested-by: Doug Anderson Signed-off-by: Mian Yousaf Kaukab Signed-off-by: Felipe Balbi drivers/usb/dwc2/hcd.c | 31 ++++++++++++++++++++++++---- drivers/usb/dwc2/hcd.h | 5 ++++- drivers/usb/dwc2/hcd_queue.c | 49 +++++++++++--------------------------------- 3 files changed, 43 insertions(+), 42 deletions(-) commit be9d39881fc4fa39a64b6eed6bab5d9ee5125344 Author: Felipe Balbi Date: Tue Jun 2 13:03:36 2015 -0500 usb: musb: host: rely on port_mode to call musb_start() Currently, we're calling musb_start() twice for DRD ports in some situations. This has been observed to cause enumeration issues after suspend/resume cycles with AM335x. In order to fix the problem, we just have to fix the check on musb_has_gadget() so that it only returns true if current mode is Host and ignore the fact that we have or not a gadget driver loaded. Fixes: ae44df2e21b5 (usb: musb: call musb_start() only once in OTG mode) Cc: Sebastian Andrzej Siewior Cc: # v3.11+ Tested-by: Sekhar Nori Signed-off-by: Felipe Balbi drivers/usb/musb/musb_virthub.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 59b750006ae252b90aaab1fc6efcdb64976baa24 Author: Paul Gortmaker Date: Sat Jun 20 19:28:23 2015 -0400 staging: make board support depend on OF_IRQ and CLKDEV_LOOKUP Building allmodconfig for arch/cris currently fails with: drivers/built-in.o: In function `board_staging_register_clock': drivers/staging/board/board.c:131: undefined reference to `clk_add_alias' make: *** [vmlinux] Error 1 The clk_add_alias lives in drivers/clk/clkdev.c and that file is only compiled for CONFIG_CLKDEV_LOOKUP, so it would seem we need to add a dependency on that. Geert also reported seeing this in his build coverage: There seems to be another missing dependency on OF_IRQ: drivers/built-in.o: In function `board_staging_gic_fixup_resources': (.init.text+0x21c2): undefined reference to `irq_create_of_mapping' so we might as well fix that at the same time since it is on the same line. Cc: Magnus Damm Cc: Simon Horman Cc: Geert Uytterhoeven Acked-by: Geert Uytterhoeven Signed-off-by: Paul Gortmaker Signed-off-by: Chen Gang Cc: Stephen Rothwell Signed-off-by: Greg Kroah-Hartman drivers/staging/board/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3446af31b721d839c69f8fc70b8a434df6176a64 Author: Suneel Garapati Date: Mon Jun 29 07:02:08 2015 +0200 arm64: defconfig: Add Ceva ahci to the defconfig The Ceva ahci controller is available on the Xilinx Zynq UltraScale+ MPSoC. Signed-off-by: Suneel Garapati Signed-off-by: Michal Simek [catalin.marinas@arm.com: removed unnecessary defconfig changes] Signed-off-by: Catalin Marinas arch/arm64/configs/defconfig | 1 + 1 file changed, 1 insertion(+) commit 4b59246d9aeaac71f5f7a29459cd2abe32c527e6 Author: Ard Biesheuvel Date: Mon Jul 6 17:08:09 2015 +0200 arm64: remove another unnecessary libfdt include path Patch 63a4aea55670 ("of: clean-up unnecessary libfdt include paths") removed all explicit libfdt include paths, since those are no longer necessary after the latest dtc upgrade. However, this one snuck in during the same merge window. Remove it. Signed-off-by: Ard Biesheuvel Signed-off-by: Catalin Marinas arch/arm64/mm/Makefile | 2 -- 1 file changed, 2 deletions(-) commit 827a82ff399523a954253dfea401af748640f0f4 Author: Steven Rostedt Date: Mon Jul 6 10:14:34 2015 -0400 x86/earlyprintk: Allow early_printk() to use console style parameters like '115200n8' When I enable early_printk on a kernel, I cut and paste the console= input and add to earlyprintk parameter. But I notice recently that ktest has not been detecting triple faults. The way it detects it, is by seeing the kernel banner "Linux version .." with a different kernel version pop up. Then I noticed that early printk was no longer working on my console, which was why ktest was not seeing it. I bisected it down and it was added to 4.0 with this commit: ea9e9d802902 ("Specify PCI based UART for earlyprintk") because it converted the simple_strtoul() that converts the baud number into a kstrtoul(). The problem with this is, I had as my baud rate, 115200n8 (acceptable for console=ttyS0), but because of the "n8", the kstrtoul() doesn't parse the baud rate and returns an error, which sets the baud rate to the default 9600. This explains the garbage on my screen. Now, earlyprintk= kernel parameter does not say it accepts that format. Thus, one answer would simply be me changing my kernel parameters to remove the "n8" since it isn't parsed anyway. But I wonder if other people run into this, and it seems strange that the two consoles for serial accepts different input. I could also extend this to have earlyprintk do something with that "n8" or whatever it has and have it match the console parsing (which, BTW, still uses simple_strtoul(), as I guess it has to). This patch just makes my old kernel parameter parsing work like it use to. Although, simple_strtoull() is considered obsolete, it is the only standard string parsing function that parses a number that is attached to text. Ironically, commit ea9e9d802902 also added several calls to simple_strtoul()! Signed-off-by: Steven Rostedt Cc: Alan Cox Cc: Andy Lutomirski Cc: Andy Shevchenko Cc: Borislav Petkov Cc: Brian Gerst Cc: David Cohen Cc: Denys Vlasenko Cc: Greg Kroah-Hartman Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Stuart R. Anderson Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/20150706101434.5f6a351b@gandalf.local.home [ Cleaned it up a bit. ] Signed-off-by: Ingo Molnar arch/x86/kernel/early_printk.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 1c7518794a3647eb345d59ee52844e8a40405198 Author: Joe Thornber Date: Fri Jul 3 14:51:32 2015 +0100 dm btree: silence lockdep lock inversion in dm_btree_del() Allocate memory using GFP_NOIO when deleting a btree. dm_btree_del() can be called via an ioctl and we don't want to recurse into the FS or block layer. Signed-off-by: Joe Thornber Signed-off-by: Mike Snitzer Cc: stable@vger.kernel.org drivers/md/persistent-data/dm-btree.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 20d5e4a9cd453991e2590a4c25230a99b42dee0c Author: Zhu Guihua Date: Fri Jul 3 17:37:19 2015 +0800 x86/espfix: Init espfix on the boot CPU side As we alloc pages with GFP_KERNEL in init_espfix_ap() which is called before we enable local irqs, so the lockdep sub-system would (correctly) trigger a warning about the potentially blocking API. So we allocate them on the boot CPU side when the secondary CPU is brought up by the boot CPU, and hand them over to the secondary CPU. And we use alloc_pages_node() with the secondary CPU's node, to make sure the espfix stack is NUMA-local to the CPU that is going to use it. Signed-off-by: Zhu Guihua Cc: Cc: Cc: Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/c97add2670e9abebb90095369f0cfc172373ac94.1435824469.git.zhugh.fnst@cn.fujitsu.com Signed-off-by: Ingo Molnar arch/x86/kernel/espfix_64.c | 21 +++++++++++++-------- arch/x86/kernel/smpboot.c | 14 +++++++------- 2 files changed, 20 insertions(+), 15 deletions(-) commit 1db875631f8d5bbf497f67e47f254eece888d51d Author: Zhu Guihua Date: Fri Jul 3 17:37:18 2015 +0800 x86/espfix: Add 'cpu' parameter to init_espfix_ap() Add a CPU index parameter to init_espfix_ap(), so that the parameter could be propagated to the function for espfix page allocation. Signed-off-by: Zhu Guihua Cc: Cc: Cc: Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/cde3fcf1b3211f3f03feb1a995bce3fee850f0fc.1435824469.git.zhugh.fnst@cn.fujitsu.com Signed-off-by: Ingo Molnar arch/x86/include/asm/espfix.h | 2 +- arch/x86/kernel/espfix_64.c | 7 +++---- arch/x86/kernel/smpboot.c | 2 +- 3 files changed, 5 insertions(+), 6 deletions(-) commit d6f2d75a7ae06ffd793bb504c4f0d1665548cffc Author: Andrey Ryabinin Date: Thu Jul 2 12:09:38 2015 +0300 x86/kasan: Move KASAN_SHADOW_OFFSET to the arch Kconfig KASAN_SHADOW_OFFSET is purely arch specific setting, so it should be in arch's Kconfig file. Signed-off-by: Andrey Ryabinin Cc: Alexander Popov Cc: Alexander Potapenko Cc: Andrey Konovalov Cc: Borislav Petkov Cc: Dmitry Vyukov Cc: Linus Torvalds Cc: Paul Bolle Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1435828178-10975-7-git-send-email-a.ryabinin@samsung.com Signed-off-by: Ingo Molnar arch/x86/Kconfig | 5 +++++ lib/Kconfig.kasan | 4 ---- 2 files changed, 5 insertions(+), 4 deletions(-) commit 8515522949951d81fe2d06c0a3292f171f2b8ec4 Author: Andrey Ryabinin Date: Thu Jul 2 12:09:37 2015 +0300 x86/kasan: Add message about KASAN being initialized Print informational message to tell user that kernel runs with KASAN enabled. Add a "kasan: " prefix to all messages in kasan_init_64.c. Signed-off-by: Andrey Ryabinin Cc: Alexander Popov Cc: Alexander Potapenko Cc: Andrey Konovalov Cc: Borislav Petkov Cc: Dmitry Vyukov Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1435828178-10975-6-git-send-email-a.ryabinin@samsung.com Signed-off-by: Ingo Molnar arch/x86/mm/kasan_init_64.c | 3 +++ 1 file changed, 3 insertions(+) commit d4f86beacc21d538dc41e1fc75a22e084f547edf Author: Andrey Ryabinin Date: Thu Jul 2 12:09:36 2015 +0300 x86/kasan: Fix boot crash on AMD processors While populating zero shadow wrong bits in upper level page tables used. __PAGE_KERNEL_RO that was used for pgd/pud/pmd has _PAGE_BIT_GLOBAL set. Global bit is present only in the lowest level of the page translation hierarchy (ptes), and it should be zero in upper levels. This bug seems doesn't cause any troubles on Intel cpus, while on AMDs it cause kernel crash on boot. Use _KERNPG_TABLE bits for pgds/puds/pmds to fix this. Reported-by: Borislav Petkov Signed-off-by: Andrey Ryabinin Cc: # 4.0+ Cc: Alexander Popov Cc: Alexander Potapenko Cc: Andrey Konovalov Cc: Dmitry Vyukov Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1435828178-10975-5-git-send-email-a.ryabinin@samsung.com Signed-off-by: Ingo Molnar arch/x86/mm/kasan_init_64.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 241d2c54c62fa0939fc9a9512b48ac3434e90a89 Author: Andrey Ryabinin Date: Thu Jul 2 12:09:35 2015 +0300 x86/kasan: Flush TLBs after switching CR3 load_cr3() doesn't cause tlb_flush if PGE enabled. This may cause tons of false positive reports spamming the kernel to death. To fix this __flush_tlb_all() should be called explicitly after CR3 changed. Signed-off-by: Andrey Ryabinin Cc: # 4.0+ Cc: Alexander Popov Cc: Alexander Potapenko Cc: Andrey Konovalov Cc: Borislav Petkov Cc: Dmitry Vyukov Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1435828178-10975-4-git-send-email-a.ryabinin@samsung.com Signed-off-by: Ingo Molnar arch/x86/mm/kasan_init_64.c | 2 ++ 1 file changed, 2 insertions(+) commit 5d5aa3cfca5cf74cd928daf3674642e6004328d1 Author: Alexander Popov Date: Thu Jul 2 12:09:34 2015 +0300 x86/kasan: Fix KASAN shadow region page tables Currently KASAN shadow region page tables created without respect of physical offset (phys_base). This causes kernel halt when phys_base is not zero. So let's initialize KASAN shadow region page tables in kasan_early_init() using __pa_nodebug() which considers phys_base. This patch also separates x86_64_start_kernel() from KASAN low level details by moving kasan_map_early_shadow(init_level4_pgt) into kasan_early_init(). Remove the comment before clear_bss() which stopped bringing much profit to the code readability. Otherwise describing all the new order dependencies would be too verbose. Signed-off-by: Alexander Popov Signed-off-by: Andrey Ryabinin Cc: # 4.0+ Cc: Alexander Potapenko Cc: Andrey Konovalov Cc: Borislav Petkov Cc: Dmitry Vyukov Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1435828178-10975-3-git-send-email-a.ryabinin@samsung.com Signed-off-by: Ingo Molnar arch/x86/include/asm/kasan.h | 8 ++------ arch/x86/kernel/head64.c | 7 ++----- arch/x86/kernel/head_64.S | 29 ----------------------------- arch/x86/mm/kasan_init_64.c | 36 ++++++++++++++++++++++++++++++++++-- 4 files changed, 38 insertions(+), 42 deletions(-) commit d0f77d4d04b222a817925d33ba3589b190bfa863 Author: Andrey Ryabinin Date: Thu Jul 2 12:09:33 2015 +0300 x86/init: Clear 'init_level4_pgt' earlier Currently x86_64_start_kernel() has two KASAN related function calls. The first call maps shadow to early_level4_pgt, the second maps shadow to init_level4_pgt. If we move clear_page(init_level4_pgt) earlier, we could hide KASAN low level detail from generic x86_64 initialization code. The next patch will do it. Signed-off-by: Andrey Ryabinin Cc: # 4.0+ Cc: Alexander Popov Cc: Alexander Potapenko Cc: Andrey Konovalov Cc: Borislav Petkov Cc: Dmitry Vyukov Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1435828178-10975-2-git-send-email-a.ryabinin@samsung.com Signed-off-by: Ingo Molnar arch/x86/kernel/head64.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit ae745302c0a3e2b5b768690f631fc14db44467e7 Merge: e3abe25 22a5dc1 Author: Tony Lindgren Date: Mon Jul 6 05:33:17 2015 -0700 Merge branch 'fixes-rc1' into omap-for-v4.2/fixes commit 22a5dc10e3f8fb8370748ea19dc4e3e1620d8296 Author: Tomi Valkeinen Date: Tue Jun 30 15:04:54 2015 +0300 ARM: dts: am4372.dtsi: disable rfbi When DSS nodes were added to am4372.dtsi, the rfbi node was not marked as disabled. This should have been done, as the rule of thumb is to disable all DSS nodes that are not used, and especially rfbi, as we don't have a driver for rfbi. Signed-off-by: Tomi Valkeinen Signed-off-by: Tony Lindgren arch/arm/boot/dts/am4372.dtsi | 1 + 1 file changed, 1 insertion(+) commit 9ab402aed38b95d9ce453108622be0fc6f167568 Author: Roger Quadros Date: Wed Jun 17 17:52:43 2015 +0300 ARM: dts: am57xx-beagle-x15: Provide supply for usb2_phy2 Without this USB2 breaks if USB1 is disabled or USB1 initializes after USB2 e.g. due to deferred probing. Fixes: 5a0f93c6576a ("ARM: dts: Add am57xx-beagle-x15") Signed-off-by: Roger Quadros Cc: stable@vger.kernel.org (v3.19+) Signed-off-by: Tony Lindgren arch/arm/boot/dts/am57xx-beagle-x15.dts | 4 ++++ 1 file changed, 4 insertions(+) commit d49db342f0e276b354383b3281c5668b6b80f5c2 Author: Cong Wang Date: Wed Jun 24 12:41:47 2015 -0700 sched/fair: Test list head instead of list entry in throttle_cfs_rq() According to the comments, we need to test if this is the first throttled task, however, list_empty() tests on the entry cfs_rq->throttled_list, not the head, this is wrong. This is a bug because we don't re-init the list entry after removing it from the list, so list_empty() could return false even if the list is really empty. Signed-off-by: Cong Wang Signed-off-by: Cong Wang Signed-off-by: Peter Zijlstra (Intel) Reviewed-by: Ben Segall Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1435174907-432-1-git-send-email-xiyou.wangcong@gmail.com Signed-off-by: Ingo Molnar kernel/sched/fair.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fff75ee150104fdc29d86a75a5511482a981c27b Author: Dave Gerlach Date: Wed May 6 12:25:33 2015 -0500 ARM: dts: am4372: Add emif node Add node for TI AM4372 EMIF. Without this we get a warning with the recent commit fabbe6df (ARM: OMAP: AM43xx hwmod: Add data for am43xx emif hwmod). Signed-off-by: Dave Gerlach Tested-by: Felipe Balbi Acked-by: Felipe Balbi [tony@atomide.com: updated comments] Signed-off-by: Tony Lindgren Documentation/devicetree/bindings/memory-controllers/ti/emif.txt | 1 + arch/arm/boot/dts/am4372.dtsi | 6 ++++++ 2 files changed, 7 insertions(+) commit 5c250adb51ca318b67ac3a230a565dbe2ea9f0ef Author: Johan Hovold Date: Thu Jun 11 16:18:38 2015 +0200 Revert "ARM: dts: am335x-boneblack: disable RTC-only sleep" This reverts commit 3d76be5b933e2a66d85a2f7444e68e99e8a48ad4. The latest revision of Beaglebone Black does not support RTC-only mode. To avoid potential hardware damage, RTC-only mode was disabled by default by commit 7a6cb0abe1aa ("ARM: dts: am335x-boneblack: disable RTC-only sleep to avoid hardware damage"). Unfortunately, an incorrect fix had already been applied, which instead of just disabling RTC-only mode, prevents the Beaglebone from powering down at all. Revert this patch to fix the power-off regression. Signed-off-by: Johan Hovold Signed-off-by: Tony Lindgren arch/arm/boot/dts/am335x-boneblack.dts | 4 ++++ 1 file changed, 4 insertions(+) commit ebf2d2689de551d90965090bb991fc640a0c0d41 Author: Yann Droneaud Date: Mon Jun 22 21:38:43 2015 +0200 perf/x86: Fix copy_from_user_nmi() return if range is not ok Commit 0a196848ca36 ("perf: Fix arch_perf_out_copy_user default"), changes copy_from_user_nmi() to return the number of remaining bytes so that it behave like copy_from_user(). Unfortunately, when the range is outside of the process memory, the return value is still the number of byte copied, eg. 0, instead of the remaining bytes. As all users of copy_from_user_nmi() were modified as part of commit 0a196848ca36, the function should be fixed to return the total number of bytes if range is not correct. Signed-off-by: Yann Droneaud Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1435001923-30986-1-git-send-email-ydroneaud@opteya.com Signed-off-by: Ingo Molnar arch/x86/lib/usercopy.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 57ffc5ca679f499f4704fd9b6a372916f59930ee Author: Peter Zijlstra Date: Thu Jun 18 12:32:49 2015 +0200 perf: Fix AUX buffer refcounting Its currently possible to drop the last refcount to the aux buffer from NMI context, which results in the expected fireworks. The refcounting needs a bigger overhaul, but to cure the immediate problem, delay the freeing by using an irq_work. Reviewed-and-tested-by: Alexander Shishkin Reported-by: Vince Weaver Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/20150618103249.GK19282@twins.programming.kicks-ass.net Signed-off-by: Ingo Molnar kernel/events/core.c | 8 -------- kernel/events/internal.h | 10 ++++++++++ kernel/events/ring_buffer.c | 27 +++++++++++++++++++++++++-- 3 files changed, 35 insertions(+), 10 deletions(-) commit f98a7aa81eeeadcad25665c3501c236d531d4382 Author: Peter Sanford Date: Thu Jun 25 17:40:05 2015 -0700 USB: cp210x: add ID for Aruba Networks controllers Add the USB serial console device ID for Aruba Networks 7xxx series controllers which have a USB port for their serial console. Signed-off-by: Peter Sanford Cc: stable Signed-off-by: Johan Hovold drivers/usb/serial/cp210x.c | 1 + 1 file changed, 1 insertion(+) commit a8956a7b7232da5f4ce4a305c72a54cc5e4a8307 Author: Alistair Popple Date: Fri Jul 3 17:39:12 2015 +1000 powerpc/powernv: Fix opal-elog interrupt handler The conversion of opal events to a proper irqchip means that handlers are called until the relevant opal event has been cleared by processing it. Events that queue work should therefore use a threaded handler to mask the event until processing is complete. Signed-off-by: Alistair Popple Tested-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/opal-elog.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) commit aaf6fd5c75eb4aa734ec2062deab371633c3655f Author: Daniel Axtens Date: Mon Jul 6 09:40:34 2015 +1000 powerpc/ppc4xx_hsta_msi: Include ppc-pci.h to fix reference to hose_list An earlier commit referenced 'hose_list' in sysdev/ppc4xx_hsta_msi.c. hose_list is defined in ppc-pci.h, which was not included in that file. Include it, fixing the build for the akebono defconfig used by the kbuild test robot. Fixes: f2c800aaceb6 ("powerpc/ppc4xx_hsta_msi: Move MSI-related ops to pci_controller_ops") Reported-by: kbuild test robot Signed-off-by: Daniel Axtens Signed-off-by: Michael Ellerman arch/powerpc/sysdev/ppc4xx_hsta_msi.c | 1 + 1 file changed, 1 insertion(+) commit eab861a7a52208868637f47a92caa926ddadd9c7 Author: Anton Blanchard Date: Thu Jul 2 14:56:20 2015 +1000 powerpc: Add plain English description for alignment exception oopses If we take an alignment exception which we cannot fix, the oops currently prints: Unable to handle kernel paging request for unknown fault Lets print something more useful: Unable to handle kernel paging request for unaligned access at address 0xc0000000f77bba8f Signed-off-by: Anton Blanchard Signed-off-by: Michael Ellerman arch/powerpc/mm/fault.c | 4 ++++ 1 file changed, 4 insertions(+) commit 8c00d5c9d3e7452658dda55024485d52919ebfdd Author: Daniel Axtens Date: Thu Jul 2 15:55:21 2015 +1000 cxl: Test the correct mmio space before unmapping Before freeing p2n, test p2n, not p1n. Signed-off-by: Daniel Axtens Acked-by: Ian Munsie Signed-off-by: Michael Ellerman drivers/misc/cxl/pci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 27ea2c420cad57386c25668cb9a9f0f082635586 Author: Daniel Axtens Date: Mon Jun 15 13:25:19 2015 +1000 powerpc: Set the correct kernel taint on machine check errors. This means the 'M' flag will work properly when the kernel prints a backtrace. Signed-off-by: Daniel Axtens Signed-off-by: Michael Ellerman arch/powerpc/kernel/traps.c | 2 ++ 1 file changed, 2 insertions(+) commit 14f21189df33bc972455d6a0ed875aa68718d7fc Author: Maninder Singh Date: Mon Jun 29 16:05:11 2015 +0530 cxl/vphb.c: Use phb pointer after NULL check static Anlaysis detected below error:- (error) Possible null pointer dereference: phb So, Use phb after NULL check. Signed-off-by: Maninder Singh Acked-by: Ian Munsie Signed-off-by: Michael Ellerman drivers/misc/cxl/vphb.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit ee5729ece70b2dacd8fc6ed928f9f81ced9f380e Author: Sudip Mukherjee Date: Tue Jun 23 18:59:40 2015 +0530 USB: mos7720: rename registers Some of the register names defined here are matching with registers defined in other places. Like DCR is defined here and DCR is also a register in mn10300 architecture. So when we are building this with mn10300, build fails. To avoid we rename all the registers. Signed-off-by: Sudip Mukherjee Signed-off-by: Johan Hovold drivers/usb/serial/mos7720.c | 253 +++++++++++++++++++++++-------------------- 1 file changed, 138 insertions(+), 115 deletions(-) commit f6d7fb37f92622479ef6da604f27561f5045ba1e Author: Claudio Cappelli Date: Wed Jun 10 20:38:30 2015 +0200 USB: option: add 2020:4000 ID Add device Olivetti Olicard 300 (Network Connect: MT6225) - IDs 2020:4000. T: Bus=01 Lev=02 Prnt=04 Port=00 Cnt=01 Dev#= 10 Spd=480 MxCh= 0 D: Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs= 1 P: Vendor=2020 ProdID=4000 Rev=03.00 S: Manufacturer=Network Connect S: Product=MT6225 C: #Ifs= 7 Cfg#= 1 Atr=a0 MxPwr=500mA I: If#= 0 Alt= 0 #EPs= 1 Cls=02(commc) Sub=0e Prot=00 Driver=cdc_mbim I: If#= 1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim I: If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=02 Prot=01 Driver=option I: If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option I: If#= 4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option I: If#= 5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option I: If#= 6 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage Signed-off-by: Claudio Cappelli Suggested-by: Lars Melin Cc: stable [johan: amend commit message with devices info ] Signed-off-by: Johan Hovold drivers/usb/serial/option.c | 1 + 1 file changed, 1 insertion(+) commit 0d7b6b1182ef6f72be592688c8a22025a5b7b483 Author: Imre Deak Date: Thu Jul 2 14:29:58 2015 +0300 drm/i915/chv: fix HW readout of the port PLL fractional divider Ville noticed that the PLL HW readout code parsed the fractional divider value as if the fractional divider was always enabled. This may result in a port clock state check mismatch if the preceeding modeset disabled the fractional divider, but left a non-zero divider value in the register. Signed-off-by: Imre Deak Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit e828b23734bfebe30e95964302bbb801d02fddf6 Author: Libin Yang Date: Mon Jul 6 10:44:26 2015 +0800 ALSA: hda - add codec ID for Broxton display audio codec This patch adds codec ID (0x8086280a) and module alias for Broxton display codec. Signed-off-by: Libin Yang Signed-off-by: Takashi Iwai sound/pci/hda/patch_hdmi.c | 2 ++ 1 file changed, 2 insertions(+) commit acb33cc541d7a5495b16a133702d4c401ea4e294 Author: Vutla, Lokesh Date: Thu Jul 2 18:33:28 2015 +0530 crypto: omap-des - Fix unmapping of dma channels dma_unmap_sg() is being called twice after completing the task. Looks like this is a copy paste error when creating des driver. With this the following warn appears during boot: [ 4.210457] ------------[ cut here ]------------ [ 4.215114] WARNING: CPU: 0 PID: 0 at lib/dma-debug.c:1080 check_unmap+0x710/0x9a0() [ 4.222899] omap-des 480a5000.des: DMA-API: device driver tries to free DMA memory it has not allocated [device address=0x00000000ab2ce000] [size=8 bytes] [ 4.236785] Modules linked in: [ 4.239860] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.14.39-02999-g1bc045a-dirty #182 [ 4.247918] [] (unwind_backtrace) from [] (show_stack+0x10/0x14) [ 4.255710] [] (show_stack) from [] (dump_stack+0x84/0xb8) [ 4.262977] [] (dump_stack) from [] (warn_slowpath_common+0x68/0x8c) [ 4.271107] [] (warn_slowpath_common) from [] (warn_slowpath_fmt+0x30/0x40) [ 4.279854] [] (warn_slowpath_fmt) from [] (check_unmap+0x710/0x9a0) [ 4.287991] [] (check_unmap) from [] (debug_dma_unmap_sg+0x90/0x19c) [ 4.296128] [] (debug_dma_unmap_sg) from [] (omap_des_done_task+0x1cc/0x3e4) [ 4.304963] [] (omap_des_done_task) from [] (tasklet_action+0x84/0x124) [ 4.313370] [] (tasklet_action) from [] (__do_softirq+0xf0/0x20c) [ 4.321235] [] (__do_softirq) from [] (irq_exit+0x98/0xec) [ 4.328500] [] (irq_exit) from [] (handle_IRQ+0x50/0xb0) [ 4.335589] [] (handle_IRQ) from [] (gic_handle_irq+0x28/0x5c) Removing the duplicate call to dma_unmap_sg(). Cc: stable@vger.kernel.org Reported-by: Tomi Valkeinen Signed-off-by: Lokesh Vutla Signed-off-by: Herbert Xu drivers/crypto/omap-des.c | 3 --- 1 file changed, 3 deletions(-) commit 5aac644a9944bea93b4f05ced1883a902a2535f6 Author: Adrian Hunter Date: Wed Jun 3 10:39:46 2015 +0300 x86/tsc: Let high latency PIT fail fast in quick_pit_calibrate() If it takes longer than 12us to read the PIT counter lsb/msb, then the error margin will never fall below 500ppm within 50ms, and Fast TSC calibration will always fail. This patch detects when that will happen and fails fast. Note the failure message is not printed in that case because: 1. it will always happen on that class of hardware 2. the absence of the message is more informative than its presence Signed-off-by: Adrian Hunter Cc: Andy Lutomirski Cc: Linus Torvalds Cc: Len Brown Cc: Andi Kleen Link: http://lkml.kernel.org/r/556EB717.9070607@intel.com Signed-off-by: Thomas Gleixner arch/x86/kernel/tsc.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit d2d61ed55f8375a10ff606e83e2196880a775fb4 Merge: d770e55 307bc97 Author: Ingo Molnar Date: Mon Jul 6 09:24:41 2015 +0200 Merge branch 'perf/rbtree_copy' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent Pull rbtree build fix from Arnaldo Carvalho de Melo. Signed-off-by: Ingo Molnar commit 6b12ec177c410ef984d2b97717df77c9269eaeac Author: Vineet Gupta Date: Thu Jul 2 14:02:54 2015 +0530 ARCv2: intc: IDU: Fix potential race in installing a chained IRQ handler Signed-off-by: Vineet Gupta arch/arc/kernel/mcip.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 83ce3e6fcc16b4d36d40765618777b5a6a30d75b Author: Vineet Gupta Date: Tue Jun 30 13:37:28 2015 +0530 ARCv2: intc: IDU: support irq affinity With this nsim standlone / OSCI have working irq affinity - AXS103 still needs some work as IDU is not visible in intc hierarchy yet ! Signed-off-by: Vineet Gupta arch/arc/kernel/mcip.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) commit bccea41ec02301a439a26e43fa49521ae8da4352 Author: Vineet Gupta Date: Mon Jul 6 10:25:01 2015 +0530 ARC: fix unused var wanring Fixes: 9bf39ab2adaf ("vfs: add file_path() helper") Signed-off-by: Vineet Gupta arch/arc/kernel/troubleshoot.c | 1 - 1 file changed, 1 deletion(-) commit f718c2efff0b0460e5335607a1c6caf620847680 Author: Vineet Gupta Date: Fri Jul 3 10:40:43 2015 +0530 ARC: Don't memzero twice in dma_alloc_coherent for __GFP_ZERO alloc_pages_exact() get gfp flags and handle zero'ing already And while it, fix the case where ioremap fails: return rightaway. Signed-off-by: Vineet Gupta arch/arc/mm/dma.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 97709069214eb75312c14946803b9da4d3814203 Author: Vineet Gupta Date: Thu Jun 18 13:54:01 2015 +0530 ARC: Override toplevel default -O2 with -O3 ARC kernels have historically been built with -O3, despite top level Makefile defaulting to -O2. This was facilitated by implicitly ordering of arch makefile include AFTER top level assigned -O2. An upstream fix to top level a1c48bb160f ("Makefile: Fix unrecognized cross-compiler command line options") changed the ordering, making ARC -O3 defunct. Fix that by NOT relying on any ordering whatsoever and use the proper arch override facility now present in kbuild (ARCH_*FLAGS) Depends-on: ("kbuild: Allow arch Makefiles to override {cpp,ld,c}flags") Suggested-by: Michal Marek Cc: Geert Uytterhoeven Cc: stable@vger.kernel.org # 3.16+ Signed-off-by: Vineet Gupta arch/arc/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 61754c18752ffb78145671e94f053fb202fff041 Author: Michal Marek Date: Wed Jul 1 17:19:30 2015 +0200 kbuild: Allow arch Makefiles to override {cpp,ld,c}flags Since commit a1c48bb1 (Makefile: Fix unrecognized cross-compiler command line options), the arch Makefile is included earlier by the main Makefile, preventing the arc architecture to set its -O3 compiler option. Since there might be more use cases for an arch Makefile to fine-tune the options, add support for ARCH_CPPFLAGS, ARCH_AFLAGS and ARCH_CFLAGS variables that are appended to the respective kbuild variables. The user still has the final say via the KCPPFLAGS, KAFLAGS and KCFLAGS variables. Reported-by: Vineet Gupta Cc: stable@vger.kernel.org # 3.16+ Signed-off-by: Michal Marek Documentation/kbuild/makefiles.txt | 8 ++++++++ Makefile | 9 +++++---- 2 files changed, 13 insertions(+), 4 deletions(-) commit b607eddd7122595bbcf49c00192faf3e49b142d3 Author: Alexey Brodkin Date: Mon Jun 29 15:24:37 2015 +0300 ARCv2: guard SLC DMA ops with spinlock SLC maintenance ops need to be serialized by software as there is no inherent buffering / quequing of aux commands. It can silently ignore a new aux operation if previous one is still ongoing (SLC_CTRL_BUSY) So gaurd the SLC op using a spin lock The spin lock doesn't seem to be contended even in heavy workloads such as iperf. On FPGA @ 75 MHz. [1] Before this change: ============================================================ # iperf -c 10.42.0.1 ------------------------------------------------------------ Client connecting to 10.42.0.1, TCP port 5001 TCP window size: 43.8 KByte (default) ------------------------------------------------------------ [ 3] local 10.42.0.110 port 38935 connected with 10.42.0.1 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.0 sec 48.4 MBytes 40.6 Mbits/sec ============================================================ [2] After this change: ============================================================ # iperf -c 10.42.0.1 ------------------------------------------------------------ Client connecting to 10.42.0.1, TCP port 5001 TCP window size: 43.8 KByte (default) ------------------------------------------------------------ [ 3] local 10.42.0.243 port 60248 connected with 10.42.0.1 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.0 sec 47.5 MBytes 39.8 Mbits/sec # iperf -c 10.42.0.1 ------------------------------------------------------------ Client connecting to 10.42.0.1, TCP port 5001 TCP window size: 43.8 KByte (default) ------------------------------------------------------------ [ 3] local 10.42.0.243 port 60249 connected with 10.42.0.1 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.0 sec 54.9 MBytes 46.0 Mbits/sec ============================================================ Signed-off-by: Alexey Brodkin Cc: arc-linux-dev@synopsys.com Signed-off-by: Vineet Gupta arch/arc/mm/cache.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit 14a0abfc4ab0b49c7e48eca5c6b31288ea457dee Author: Vineet Gupta Date: Fri Jun 26 12:42:53 2015 +0530 ARC: Kconfig: better way to disable ARC_HAS_LLSC for ARC_CPU_750D Signed-off-by: Vineet Gupta arch/arc/Kconfig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 0fd972a7d91d6e15393c449492a04d94c0b89351 Author: Paul Gortmaker Date: Fri May 1 20:13:42 2015 -0400 module: relocate module_init from init.h to module.h Modular users will always be users of init functionality, but users of init functionality are not necessarily always modules. Hence any functionality like module_init and module_exit would be more at home in the module.h file. And module.h should explicitly include init.h to make the dependency clear. We've already done all the legwork needed to ensure that this move does not cause any build regressions due to implicit header file include assumptions about where module_init lives. Cc: Rusty Russell Acked-by: Rusty Russell Signed-off-by: Paul Gortmaker include/linux/init.h | 78 ---------------------------------------------- include/linux/module.h | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 84 insertions(+), 78 deletions(-) commit d8ea782b56d9d2c46a47b3231cfd16ecfb538c60 Author: Vaidyanathan Srinivasan Date: Mon Jun 29 10:47:55 2015 +0530 powerpc/powernv: Fix vma page prot flags in opal-prd driver opal-prd driver will mmap() firmware code/data area as private mapping to prd user space daemon. Write to this page will trigger COW faults. The new COW pages are normal kernel RAM pages accounted by the kernel and are not special. vma->vm_page_prot value will be used at page fault time for the new COW pages, while pgprot_t value passed in remap_pfn_range() is used for the initial page table entry. Hence: * Do not add _PAGE_SPECIAL in vma, but only for remap_pfn_range() * Also remap_pfn_range() will add the _PAGE_SPECIAL flag using pte_mkspecial() call, hence no need to specify in the driver This fix resolves the page accounting warning shown below: BUG: Bad rss-counter state mm:c0000007d34ac600 idx:1 val:19 The above warning is triggered since _PAGE_SPECIAL was incorrectly being set for the normal kernel COW pages. Signed-off-by: Vaidyanathan Srinivasan Acked-by: Jeremy Kerr Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/opal-prd.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit a822c83e47d97cdef38c4352e1ef62d9f46cfe98 Author: Joe Thornber Date: Fri Jul 3 10:22:42 2015 +0100 dm thin: allocate the cell_sort_array dynamically Given the pool's cell_sort_array holds 8192 pointers it triggers an order 5 allocation via kmalloc. This order 5 allocation is prone to failure as system memory gets more fragmented over time. Fix this by allocating the cell_sort_array using vmalloc. Signed-off-by: Joe Thornber Signed-off-by: Mike Snitzer Cc: stable@vger.kernel.org drivers/md/dm-thin.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) commit 307bc971959aaa2df44032e7f6b0bda1f7e26890 Author: Arnaldo Carvalho de Melo Date: Sun Jul 5 22:59:05 2015 -0300 tools: Copy rbtree_augmented.h from the kernel To complete the transitioning to not to share the same files with the kernel, also moving it from tools/perf/include/linux/ to tools/include/linux to make the whoke rbtree kit to other tools/ living codebases. 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-5bxyehixafckqm6ez25alnfo@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/include/linux/rbtree_augmented.h | 245 +++++++++++++++++++++++ tools/perf/MANIFEST | 2 +- tools/perf/util/include/linux/rbtree_augmented.h | 2 - 3 files changed, 246 insertions(+), 3 deletions(-) commit 03da23a34a039a74f550646e68d562655306e331 Author: Arnaldo Carvalho de Melo Date: Sun Jul 5 22:54:01 2015 -0300 tools: Move rbtree.h from tools/perf/ The previous step, copying the contents minus the rcupdate.h parts, was done as a minimal fix, now do the move from tools/perf/. 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-52fllxtsgmtke66pmv98mcma@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/include/linux/rbtree.h | 104 +++++++++++++++++++++++++++++++++ tools/perf/MANIFEST | 1 + tools/perf/util/include/linux/rbtree.h | 104 --------------------------------- 3 files changed, 105 insertions(+), 104 deletions(-) commit 3f735377bfd6567d80815a6242c147211963680a Author: Arnaldo Carvalho de Melo Date: Sun Jul 5 22:48:21 2015 -0300 tools: Copy lib/rbtree.c to tools/lib/ So that we can remove kernel specific stuff we've been stubbing out via a tools/include/linux/export.h that gets removed in this patch and to avoid breakages in the future like the one fixed recently where rcupdate.h started being used in rbtree.h. 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-rxuzfsozpb8hv1emwpx06rm6@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/include/linux/export.h | 10 - tools/lib/rbtree.c | 548 +++++++++++++++++++++++++++++++++++++++++++ tools/perf/MANIFEST | 2 +- tools/perf/util/Build | 2 +- 4 files changed, 550 insertions(+), 12 deletions(-) commit 1c4c7159ed2468f3ac4ce5a7f08d79663d381a93 Merge: d770e55 7444a07 Author: Linus Torvalds Date: Sun Jul 5 16:24:54 2015 -0700 Merge tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 Pull ext4 bugfixes from Ted Ts'o: "Bug fixes (all for stable kernels) for ext4: - address corner cases for indirect blocks->extent migration - fix reserved block accounting invalidate_page when page_size != block_size (i.e., ppc or 1k block size file systems) - fix deadlocks when a memcg is under heavy memory pressure - fix fencepost error in lazytime optimization" * tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: ext4: replace open coded nofail allocation in ext4_free_blocks() ext4: correctly migrate a file with a hole at the beginning ext4: be more strict when migrating to non-extent based file ext4: fix reservation release on invalidatepage for delalloc fs ext4: avoid deadlocks in the writeback path by using sb_getblk_gfp bufferhead: Add _gfp version for sb_getblk() ext4: fix fencepost error in lazytime optimization commit 4c7e309340ff85072e96f529582d159002c36734 Author: Dennis Yang Date: Fri Jun 26 15:25:48 2015 +0100 dm btree remove: fix bug in redistribute3 redistribute3() shares entries out across 3 nodes. Some entries were being moved the wrong way, breaking the ordering. This manifested as a BUG() in dm-btree-remove.c:shift() when entries were removed from the btree. For additional context see: https://www.redhat.com/archives/dm-devel/2015-May/msg00113.html Signed-off-by: Dennis Yang Signed-off-by: Joe Thornber Signed-off-by: Mike Snitzer Cc: stable@vger.kernel.org drivers/md/persistent-data/dm-btree-remove.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit be824167e33a8b747423c90f72479deb03255d54 Author: Trond Myklebust Date: Sun Jul 5 14:50:46 2015 -0400 NFSv4: Leases are renewed in sequence_done when we have sessions Ensure that the calls to renew_lease() in open_done() etc. only apply to session-less versions of NFSv4.x (i.e. NFSv4.0). Signed-off-by: Trond Myklebust fs/nfs/nfs4proc.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) commit b15c7cdde4991be5058f442c6d08d404d56f662c Author: Trond Myklebust Date: Sun Jul 5 15:01:36 2015 -0400 NFSv4.1: nfs41_sequence_done should handle sequence flag errors Instead of just kicking off lease recovery, we should look into the sequence flag errors and handle them. Signed-off-by: Trond Myklebust fs/nfs/nfs4proc.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit b13529059cf782f9b4e4ac0ca9d524bd922163da Author: Trond Myklebust Date: Sun Jul 5 15:26:58 2015 -0400 NFSv4.1: Handle SEQ4_STATUS_BACKCHANNEL_FAULT correctly RFC5661 states: The server has encountered an unrecoverable fault with the backchannel (e.g., it has lost track of the sequence ID for a slot in the backchannel). The client MUST stop sending more requests on the session's fore channel, wait for all outstanding requests to complete on the fore and back channel, and then destroy the session. Ensure we do so... Signed-off-by: Trond Myklebust fs/nfs/nfs4state.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 4099287feb5833c24b5a91e1fe55207cf7559350 Author: Trond Myklebust Date: Sun Jul 5 15:20:53 2015 -0400 NFSv4.1: Handle SEQ4_STATUS_RECALLABLE_STATE_REVOKED status bit correctly Try to handle this for now by invalidating all outstanding layouts for this server and then testing all the open+lock+delegation stateids. At some later stage, we may want to optimise by separating out the testing of delegation stateids only, and adding testing of layout stateids. Signed-off-by: Trond Myklebust fs/nfs/nfs4state.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 8b895ce652dc73bcf42a0c24acfc0708a06ea7c3 Author: Trond Myklebust Date: Sun Jul 5 15:12:06 2015 -0400 NFSv4.1: Handle SEQ4_STATUS_EXPIRED_SOME_STATE_REVOKED status bit correctly. If the server tells us that only some state has been revoked, then we need to run the full TEST_STATEID dog and pony show in order to discover which locks and delegations are still OK. Currently we blow away all state, which means that we lose all locks! Signed-off-by: Trond Myklebust fs/nfs/nfs4state.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) commit 4407f967441aa1adfc11f739e8e9ec0f38fa839f Author: Arnaldo Carvalho de Melo Date: Sun Jul 5 14:17:04 2015 -0300 perf tools: Copy rbtree.h from the kernel We were using the include/linux/rbtree.h directly from the kernel, which broke the build as soon as it started using rcupdate.h, to avoid dragging the rcu header files into tools/, for which there is no use so far, grab a copy of rbtree.h. This is the minimal fix, later patches will copy as well lib/rbtree.c and move rbtree.h into tools/include/, etc. 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-dfmuj0j63w4by7vhlh4hhn74@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/MANIFEST | 1 - tools/perf/util/include/linux/rbtree.h | 92 +++++++++++++++++++++++++++++++++- 2 files changed, 90 insertions(+), 3 deletions(-) commit 728abda6a6654ee7f4e903dc921c6307065e1644 Author: Arnaldo Carvalho de Melo Date: Sun Jul 5 14:12:42 2015 -0300 tools: Adopt {READ,WRITE_ONCE} from the kernel We need it to build rbtree.c after this cset: commit d72da4a4d973 Author: Peter Zijlstra Date: Wed May 27 11:09:36 2015 +0930 rbtree: Make lockless searches non-fatal Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-qlnzhezv5ddwst0w9fydju0y@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/include/linux/compiler.h | 58 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) commit d770e558e21961ad6cfdf0ff7df0eb5d7d4f0754 Author: Linus Torvalds Date: Sun Jul 5 11:01:52 2015 -0700 Linux 4.2-rc1 Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a585d2b738bfa26326b3f1f40f0f1eda0c067ccf Merge: 1dc51b8 0a8b835 Author: Linus Torvalds Date: Sun Jul 5 10:54:09 2015 -0700 Merge tag 'platform-drivers-x86-v4.2-2' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86 Pull late x86 platform driver updates from Darren Hart: "The following came in a bit later and I wanted them to bake in next a few more days before submitting, thus the second pull. A new intel_pmc_ipc driver, a symmetrical allocation and free fix in dell-laptop, a couple minor fixes, and some updated documentation in the dell-laptop comments. intel_pmc_ipc: - Add Intel Apollo Lake PMC IPC driver tc1100-wmi: - Delete an unnecessary check before the function call "kfree" dell-laptop: - Fix allocating & freeing SMI buffer page - Show info about WiGig and UWB in debugfs - Update information about wireless control" * tag 'platform-drivers-x86-v4.2-2' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86: intel_pmc_ipc: Add Intel Apollo Lake PMC IPC driver tc1100-wmi: Delete an unnecessary check before the function call "kfree" dell-laptop: Fix allocating & freeing SMI buffer page dell-laptop: Show info about WiGig and UWB in debugfs dell-laptop: Update information about wireless control commit 7444a072c387a93ebee7066e8aee776954ab0e41 Author: Michal Hocko Date: Sun Jul 5 12:33:44 2015 -0400 ext4: replace open coded nofail allocation in ext4_free_blocks() ext4_free_blocks is looping around the allocation request and mimics __GFP_NOFAIL behavior without any allocation fallback strategy. Let's remove the open coded loop and replace it with __GFP_NOFAIL. Without the flag the allocator has no way to find out never-fail requirement and cannot help in any way. Signed-off-by: Michal Hocko Signed-off-by: Theodore Ts'o Cc: stable@vger.kernel.org fs/ext4/mballoc.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) commit 5738563bf6f2f1631dc71a35293b135f90969a35 Author: Maxime Ripard Date: Mon Apr 20 21:48:40 2015 +0200 ARM: sunxi: Enable simplefb in the defconfig Now that we have simplefb support, we can enable it in our defconfig. Also enable the framebuffer console, so that we are sure that we actually get something displayed in any case. And while we're at it, enable the module support. Signed-off-by: Maxime Ripard arch/arm/configs/sunxi_defconfig | 5 +++++ 1 file changed, 5 insertions(+) commit 07d1f344159764bcd4e228e4a65e804dfe59dfe9 Author: Timo Sigurdsson Date: Mon Apr 6 22:57:22 2015 +0200 ARM: Remove deprecated symbol from defconfig files Commit b2b3a8b934e6 ("power/reset: Remove sun6i reboot driver") removed the sun6i reboot driver. But sunxi_defconfig and multi_v7_defconfig still contain the symbol CONFIG_POWER_RESET_SUN6I that was deprecated by that commit, so remove it. Signed-off-by: Timo Sigurdsson Signed-off-by: Maxime Ripard arch/arm/configs/multi_v7_defconfig | 1 - arch/arm/configs/sunxi_defconfig | 1 - 2 files changed, 2 deletions(-) commit 159870d2413c92622790e9cecbce95099bed539a Author: Vishnu Patekar Date: Sat May 30 16:55:01 2015 +0200 ARM: sunxi: Add Machine support for A33 Add machine support for the Allwinner A33 quad core cortex-a7 based SoC, which is similar to the A23 SoC. Signed-off-by: Vishnu Patekar Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard Tested-by: Chen-Yu Tsai Documentation/devicetree/bindings/arm/sunxi.txt | 1 + arch/arm/mach-sunxi/sunxi.c | 1 + drivers/clk/sunxi/clk-sunxi.c | 1 + 3 files changed, 3 insertions(+) commit 14a882df14a5ae859b245bc708ce3fce47a91594 Author: Jens Kuske Date: Fri May 15 18:38:55 2015 +0200 ARM: sunxi: Introduce Allwinner H3 support The Allwinner H3 is a quad-core Cortex-A7-based SoC. It is very similar to other sun8i family SoCs like the A23. Signed-off-by: Jens Kuske Signed-off-by: Maxime Ripard Documentation/devicetree/bindings/arm/sunxi.txt | 1 + arch/arm/mach-sunxi/Kconfig | 2 +- arch/arm/mach-sunxi/sunxi.c | 4 +++- 3 files changed, 5 insertions(+), 2 deletions(-) commit d90a45b1e005da3351de795d2ba6d52dc5a28837 Author: Jens Kuske Date: Fri May 15 18:38:51 2015 +0200 Documentation: sunxi: Update Allwinner SoC documentation There are some new Allwinner SoCs available, namely A33, A83T and H3. Update the documentation to mention those and the related documents. Signed-off-by: Jens Kuske Signed-off-by: Maxime Ripard Documentation/arm/sunxi/README | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) commit 8d05abfaeff52bdf66aba3a3a337dcdbdb4911bf Author: Peter Meerwald Date: Sun Jun 21 23:50:21 2015 +0200 iio: tmp006: Check channel info on write only SAMP_FREQ is writable Will lead to SAMP_FREQ being written by any attempt to write to the other exported attributes and hence a rather unexpected result! Signed-off-by: Peter Meerwald Cc: Signed-off-by: Jonathan Cameron drivers/iio/temperature/tmp006.c | 3 +++ 1 file changed, 3 insertions(+) commit 897993fecbb8e6292aaa4079815f0793dcf6de8b Author: Geert Uytterhoeven Date: Mon Jun 29 09:14:33 2015 +0200 iio: sx9500: Add missing init in sx9500_buffer_pre{en,dis}able() drivers/iio/proximity/sx9500.c: In function ‘sx9500_buffer_preenable’: drivers/iio/proximity/sx9500.c:682: warning: ‘ret’ may be used uninitialized in this function drivers/iio/proximity/sx9500.c: In function ‘sx9500_buffer_predisable’: drivers/iio/proximity/sx9500.c:706: warning: ‘ret’ may be used uninitialized in this function If active_scan_mask is empty, it will loop once more over all channels, doing nothing. Signed-off-by: Geert Uytterhoeven Reviewed-by: Vlad Dogaru Signed-off-by: Jonathan Cameron drivers/iio/proximity/sx9500.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5d9fc0f63f561e7fa4da0883a4d0bd8e6a8b5de6 Author: Hartmut Knaack Date: Sun Jun 28 12:31:52 2015 +0200 iio:light:ltr501: fix regmap dependency The use of regmap in commit 2f2c96338afc requires REGMAP_I2C to be selected, in order to meet all dependencies. Fixes: 2f2c96338afc ("iio: ltr501: Add regmap support.") Signed-off-by: Hartmut Knaack Acked-by: Daniel Baluta Signed-off-by: Jonathan Cameron drivers/iio/light/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 5919a0839bd65252f7306a0ee4879e697e00cab1 Author: Hartmut Knaack Date: Sun Jun 28 12:31:53 2015 +0200 iio:light:ltr501: fix variable in ltr501_init When filling data->als_contr, the register content read into status needs to be used, instead of the return status value of regmap_read. Fixes: 8592a7eefa540 ("iio: ltr501: Add support for ltr559 chip") Signed-off-by: Hartmut Knaack Acked-by: Daniel Baluta Signed-off-by: Jonathan Cameron drivers/iio/light/ltr501.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 68958bd5ca748beba1251937d6f6561e70e97c14 Author: Vlad Dogaru Date: Tue Jun 30 14:20:59 2015 +0300 iio: sx9500: fix bug in compensation code The initial compensation was mistakingly toggling an extra bit in the control register. Fix this and make sure it's less likely to happen by introducing an additional macro. Reported-by: Hartmut Knaack Signed-off-by: Vlad Dogaru Acked-by: Hartmut Knaack Signed-off-by: Jonathan Cameron drivers/iio/proximity/sx9500.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 657c7ff56f8e96d4de7146103f08f3316dd822df Author: Vlad Dogaru Date: Tue Jun 30 14:20:58 2015 +0300 iio: sx9500: rework error handling of raw readings Fix error handling so that we can power the chip down even if a raw read fails. Reported-by: Hartmut Knaack Signed-off-by: Vlad Dogaru Acked-by: Hartmut Knaack Signed-off-by: Jonathan Cameron drivers/iio/proximity/sx9500.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) commit 2616dfa1d3061b02c3cbce60bc1a59281eccae31 Author: Teodora Baluta Date: Mon Jun 29 15:44:50 2015 +0300 iio: magnetometer: mmc35240: fix available sampling frequencies Fix the sampling frequencies according to the datasheet (page 8). The datasheet specifies the following available frequencies for continuous mode: 1.5 Hz, 13 Hz, 25 Hz, and 50 Hz. Also fix comments about the ODR to comply with datasheet. Signed-off-by: Teodora Baluta Signed-off-by: Jonathan Cameron drivers/iio/magnetometer/mmc35240.c | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) commit 5d6e834ac440ce6736b08880503c107d9dc3f320 Author: Hartmut Knaack Date: Sat Jul 4 17:56:57 2015 +0200 iio:light:stk3310: Fix REGMAP_I2C dependency The stk3310 driver makes use of regmap_i2c, so this dependency needs to be reflected in Kconfig. Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron drivers/iio/light/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 0484edadfae3202ab165a2bff4936b80bcf1bebf Author: Tiberiu Breana Date: Wed Jul 1 15:32:00 2015 +0300 iio: light: STK3310: un-invert proximity values In accordance with the recent proximity ABI changes, STK3310's proximity readings should be un-inversed in order to return low values for far-away objects and high values for close ones. As consequences of this change, iio event directions have been switched and maximum proximity sensor reference values have also been adjusted in accordance with the real readings. Signed-off-by: Tiberiu Breana Acked-by: Hartmut Knaack Signed-off-by: Jonathan Cameron drivers/iio/light/stk3310.c | 53 +++++++++++++++------------------------------ 1 file changed, 17 insertions(+), 36 deletions(-) commit 1dc51b8288007753ad7cd7d08bb8fa930fc8bb10 Merge: 9b284cb 0f1db7d Author: Linus Torvalds Date: Sat Jul 4 19:36:06 2015 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs Pull more vfs updates from Al Viro: "Assorted VFS fixes and related cleanups (IMO the most interesting in that part are f_path-related things and Eric's descriptor-related stuff). UFS regression fixes (it got broken last cycle). 9P fixes. fs-cache series, DAX patches, Jan's file_remove_suid() work" [ I'd say this is much more than "fixes and related cleanups". The file_table locking rule change by Eric Dumazet is a rather big and fundamental update even if the patch isn't huge. - Linus ] * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (49 commits) 9p: cope with bogus responses from server in p9_client_{read,write} p9_client_write(): avoid double p9_free_req() 9p: forgetting to cancel request on interrupted zero-copy RPC dax: bdev_direct_access() may sleep block: Add support for DAX reads/writes to block devices dax: Use copy_from_iter_nocache dax: Add block size note to documentation fs/file.c: __fget() and dup2() atomicity rules fs/file.c: don't acquire files->file_lock in fd_install() fs:super:get_anon_bdev: fix race condition could cause dev exceed its upper limitation vfs: avoid creation of inode number 0 in get_next_ino namei: make set_root_rcu() return void make simple_positive() public ufs: use dir_pages instead of ufs_dir_pages() pagemap.h: move dir_pages() over there remove the pointless include of lglock.h fs: cleanup slight list_entry abuse xfs: Correctly lock inode when removing suid and file capabilities fs: Call security_ops->inode_killpriv on truncate fs: Provide function telling whether file_remove_privs() will do anything ... commit 9b284cbdb5de3b8871014f8290d1b540e5181c21 Author: Linus Torvalds Date: Sat Jul 4 19:11:33 2015 -0700 bluetooth: fix list handling Commit 835a6a2f8603 ("Bluetooth: Stop sabotaging list poisoning") thought that the code was sabotaging the list poisoning when NULL'ing out the list pointers and removed it. But what was going on was that the bluetooth code was using NULL pointers for the list as a way to mark it empty, and that commit just broke it (and replaced the test with NULL with a "list_empty()" test on a uninitialized list instead, breaking things even further). So fix it all up to use the regular and real list_empty() handling (which does not use NULL, but a pointer to itself), also making sure to initialize the list properly (the previous NULL case was initialized implicitly by the session being allocated with kzalloc()) This is a combination of patches by Marcel Holtmann and Tedd Ho-Jeong An. [ I would normally expect to get this through the bt tree, but I'm going to release -rc1, so I'm just committing this directly - Linus ] Reported-and-tested-by: Jörg Otte Cc: Alexey Dobriyan Original-by: Tedd Ho-Jeong An Original-by: Marcel Holtmann : Signed-off-by: Linus Torvalds net/bluetooth/hidp/core.c | 1 + net/bluetooth/l2cap_core.c | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) commit 5c755fe142b421d295e7dd64a9833c12abbfd28e Merge: 6d7c8e1 2ec1e9e Author: Linus Torvalds Date: Sat Jul 4 14:13:43 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: "It's been a busy development cycle for target-core in a number of different areas. The fabric API usage for se_node_acl allocation is now within target-core code, dropping the external API callers for all fabric drivers tree-wide. There is a new conversion to RCU hlists for se_node_acl and se_portal_group LUN mappings, that turns fast-past LUN lookup into a completely lockless code-path. It also removes the original hard-coded limitation of 256 LUNs per fabric endpoint. The configfs attributes for backends can now be shared between core and driver code, allowing existing drivers to use common code while still allowing flexibility for new backend provided attributes. The highlights include: - Merge sbc_verify_dif_* into common code (sagi) - Remove iscsi-target support for obsolete IFMarker/OFMarker (Christophe Vu-Brugier) - Add bidi support in target/user backend (ilias + vangelis + agover) - Move se_node_acl allocation into target-core code (hch) - Add crc_t10dif_update common helper (akinobu + mkp) - Handle target-core odd SGL mapping for data transfer memory (akinobu) - Move transport ID handling into target-core (hch) - Move task tag into struct se_cmd + support 64-bit tags (bart) - Convert se_node_acl->device_list[] to RCU hlist (nab + hch + paulmck) - Convert se_portal_group->tpg_lun_list[] to RCU hlist (nab + hch + paulmck) - Simplify target backend driver registration (hch) - Consolidate + simplify target backend attribute implementations (hch + nab) - Subsume se_port + t10_alua_tg_pt_gp_member into se_lun (hch) - Drop lun_sep_lock for se_lun->lun_se_dev RCU usage (hch + nab) - Drop unnecessary core_tpg_register TFO parameter (nab) - Use 64-bit LUNs tree-wide (hannes) - Drop left-over TARGET_MAX_LUNS_PER_TRANSPORT limit (hannes)" * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: (76 commits) target: Bump core version to v5.0 target: remove target_core_configfs.h target: remove unused TARGET_CORE_CONFIG_ROOT define target: consolidate version defines target: implement WRITE_SAME with UNMAP bit using ->execute_unmap target: simplify UNMAP handling target: replace se_cmd->execute_rw with a protocol_data field target/user: Fix inconsistent kmap_atomic/kunmap_atomic target: Send UA when changing LUN inventory target: Send UA upon LUN RESET tmr completion target: Send UA on ALUA target port group change target: Convert se_lun->lun_deve_lock to normal spinlock target: use 'se_dev_entry' when allocating UAs target: Remove 'ua_nacl' pointer from se_ua structure target_core_alua: Correct UA handling when switching states xen-scsiback: Fix compile warning for 64-bit LUN target: Remove TARGET_MAX_LUNS_PER_TRANSPORT target: use 64-bit LUNs target: Drop duplicate + unused se_dev_check_wce target: Drop unnecessary core_tpg_register TFO parameter ... commit 6d7c8e1b3a1fae91daaf1bec4df694239c7a430b Merge: 1b3618b bf44fe4 Author: Linus Torvalds Date: Sat Jul 4 14:07:47 2015 -0700 Merge tag 'ntb-4.2' of git://github.com/jonmason/ntb Pull NTB updates from Jon Mason: "This includes a pretty significant reworking of the NTB core code, but has already produced some significant performance improvements. An abstraction layer was added to allow the hardware and clients to be easily added. This required rewriting the NTB transport layer for this abstraction layer. This modification will allow future "high performance" NTB clients. In addition to this change, a number of performance modifications were added. These changes include NUMA enablement, using CPU memcpy instead of asyncdma, and modification of NTB layer MTU size" * tag 'ntb-4.2' of git://github.com/jonmason/ntb: (22 commits) NTB: Add split BAR output for debugfs stats NTB: Change WARN_ON_ONCE to pr_warn_once on unsafe NTB: Print driver name and version in module init NTB: Increase transport MTU to 64k from 16k NTB: Rename Intel code names to platform names NTB: Default to CPU memcpy for performance NTB: Improve performance with write combining NTB: Use NUMA memory in Intel driver NTB: Use NUMA memory and DMA chan in transport NTB: Rate limit ntb_qp_link_work NTB: Add tool test client NTB: Add ping pong test client NTB: Add parameters for Intel SNB B2B addresses NTB: Reset transport QP link stats on down NTB: Do not advance transport RX on link down NTB: Differentiate transport link down messages NTB: Check the device ID to set errata flags NTB: Enable link for Intel root port mode in probe NTB: Read peer info from local SPAD in transport NTB: Split ntb_hw_intel and ntb_transport drivers ... commit 0f1db7dee200127da4c07928189748918c312031 Author: Al Viro Date: Sat Jul 4 16:17:39 2015 -0400 9p: cope with bogus responses from server in p9_client_{read,write} if server claims to have written/read more than we'd told it to, warn and cap the claimed byte count to avoid advancing more than we are ready to. net/9p/client.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 67e808fbb0404a12d9b9830a44bbb48d447d8bc9 Author: Al Viro Date: Sat Jul 4 16:11:05 2015 -0400 p9_client_write(): avoid double p9_free_req() Braino in "9p: switch p9_client_write() to passing it struct iov_iter *"; if response is impossible to parse and we discard the request, get the out of the loop right there. Cc: stable@vger.kernel.org Signed-off-by: Al Viro net/9p/client.c | 1 + 1 file changed, 1 insertion(+) commit a84b69cb6e0a41e86bc593904faa6def3b957343 Author: Al Viro Date: Sat Jul 4 16:04:19 2015 -0400 9p: forgetting to cancel request on interrupted zero-copy RPC If we'd already sent a request and decide to abort it, we *must* issue TFLUSH properly and not just blindly reuse the tag, or we'll get seriously screwed when response eventually arrives and we confuse it for response to later request that had reused the same tag. Cc: stable@vger.kernel.org # v3.2 and later Signed-off-by: Al Viro net/9p/client.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 43c3dd08da890e458f670b4fc0630513fb405620 Author: Matthew Wilcox Date: Fri Jul 3 10:40:43 2015 -0400 dax: bdev_direct_access() may sleep The brd driver is the only in-tree driver that may sleep currently. After some discussion on linux-fsdevel, we decided that any driver may choose to sleep in its ->direct_access method. To ensure that all callers of bdev_direct_access() are prepared for this, add a call to might_sleep(). Signed-off-by: Matthew Wilcox Signed-off-by: Al Viro fs/block_dev.c | 6 ++++++ 1 file changed, 6 insertions(+) commit bbab37ddc20bae4709bca8745c128c4f46fe63c5 Author: Matthew Wilcox Date: Fri Jul 3 10:40:42 2015 -0400 block: Add support for DAX reads/writes to block devices If a block device supports the ->direct_access methods, bypass the normal DIO path and use DAX to go straight to memcpy() instead of allocating a DIO and a BIO. Includes support for the DIO_SKIP_DIO_COUNT flag in DAX, as is done in do_blockdev_direct_IO(). Signed-off-by: Matthew Wilcox Signed-off-by: Al Viro fs/block_dev.c | 4 ++++ fs/dax.c | 6 ++++-- 2 files changed, 8 insertions(+), 2 deletions(-) commit 872eb127e3a6cddcfca1410bb808d9b9bc773dc1 Author: Matthew Wilcox Date: Fri Jul 3 10:40:39 2015 -0400 dax: Use copy_from_iter_nocache When userspace does a write, there's no need for the written data to pollute the CPU cache. This matches the original XIP code. Signed-off-by: Matthew Wilcox Signed-off-by: Al Viro fs/dax.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 44f4c054cae646a9296da05cdfe7d6e786f73d46 Author: Matthew Wilcox Date: Fri Jul 3 10:40:38 2015 -0400 dax: Add block size note to documentation For block devices which are small enough, mkfs will default to creating a filesystem with block sizes smaller than page size. Signed-off-by: Matthew Wilcox Signed-off-by: Al Viro Documentation/filesystems/dax.txt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 1b3618b60a487fa219c5381a9c983a00c40e6477 Merge: 14a6f19 a88464a Author: Linus Torvalds Date: Sat Jul 4 11:29:59 2015 -0700 Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm Pull kvm fixes from Paolo Bonzini: "Except for the preempt notifiers fix, these are all small bugfixes that could have been waited for -rc2. Sending them now since I was taking care of Peter's patch anyway" * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: kvm: add hyper-v crash msrs values KVM: x86: remove data variable from kvm_get_msr_common KVM: s390: virtio-ccw: don't overwrite config space values KVM: x86: keep track of LVT0 changes under APICv KVM: x86: properly restore LVT0 KVM: x86: make vapics_in_nmi_mode atomic sched, preempt_notifier: separate notifier registration from static_key inc/dec commit bf44fe4671f97ee17d178e08c2d3b346188d062b Author: Dave Jiang Date: Thu Jun 18 05:17:30 2015 -0400 NTB: Add split BAR output for debugfs stats When split BAR is enabled, the driver needs to dump out the split BAR registers rather than the original 64bit BAR registers. Signed-off-by: Dave Jiang Signed-off-by: Jon Mason drivers/ntb/hw/intel/ntb_hw_intel.c | 83 ++++++++++++++++++++++++++++++------- 1 file changed, 68 insertions(+), 15 deletions(-) commit fd839bf88485878ec602dbb3146fd44769eb3784 Author: Dave Jiang Date: Mon Jun 15 08:22:30 2015 -0400 NTB: Change WARN_ON_ONCE to pr_warn_once on unsafe The unsafe doorbell and scratchpad access should display reason when WARN is called. Otherwise we get a stack dump without any explanation. Signed-off-by: Dave Jiang Signed-off-by: Jon Mason drivers/ntb/hw/intel/ntb_hw_intel.c | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) commit 7eb387813db6730a5793cd53077b4039d948d17f Author: Dave Jiang Date: Mon Jun 15 08:21:33 2015 -0400 NTB: Print driver name and version in module init Printouts driver name and version to indicate what is being loaded. Signed-off-by: Dave Jiang Signed-off-by: Jon Mason drivers/ntb/hw/intel/ntb_hw_intel.c | 4 ++++ drivers/ntb/ntb_transport.c | 2 ++ 2 files changed, 6 insertions(+) commit 9891417de8a816de60faea8a2ff7a04c4b3cf3a1 Author: Dave Jiang Date: Wed Jun 3 11:29:38 2015 -0400 NTB: Increase transport MTU to 64k from 16k Benchmarking showed a significant performance increase with the MTU size to 64k instead of 16k. Change the driver default to 64k. Signed-off-by: Dave Jiang Signed-off-by: Jon Mason drivers/ntb/ntb_transport.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2f887b9a44015a8146d52e40bef9e2b7bc6cd275 Author: Dave Jiang Date: Wed May 20 12:55:47 2015 -0400 NTB: Rename Intel code names to platform names Instead of using the platform code names, use the correct platform names to identify the respective Intel NTB hardware. Signed-off-by: Dave Jiang Signed-off-by: Jon Mason Documentation/ntb.txt | 20 +- drivers/ntb/hw/intel/ntb_hw_intel.c | 620 ++++++++++++++++++------------------ drivers/ntb/hw/intel/ntb_hw_intel.h | 290 ++++++++--------- 3 files changed, 465 insertions(+), 465 deletions(-) commit a41ef053f700618f5f55a1dd658908a71163400b Author: Dave Jiang Date: Tue May 19 16:52:04 2015 -0400 NTB: Default to CPU memcpy for performance Disable DMA usage by default, since the CPU provides much better performance with write combining. Provide a module parameter to enable DMA usage when offloading the memcpy is preferred. Signed-off-by: Dave Jiang Signed-off-by: Allen Hubbe Signed-off-by: Jon Mason drivers/ntb/ntb_transport.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) commit 06917f753547e6bba8a5d17f79971d1c071a70dd Author: Dave Jiang Date: Tue May 19 16:45:46 2015 -0400 NTB: Improve performance with write combining Changing the memory window BAR mappings to write combining significantly boosts the performance. We will also use memcpy that uses non-temporal store, which showed performance improvement when doing non-cached memcpys. Signed-off-by: Dave Jiang Signed-off-by: Jon Mason drivers/ntb/ntb_transport.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit 0e041fb5369975c183d22ffeb156ea0dae760088 Author: Allen Hubbe Date: Tue May 19 12:04:52 2015 -0400 NTB: Use NUMA memory in Intel driver Allocate memory for the NUMA node of the NTB device. Signed-off-by: Allen Hubbe Signed-off-by: Jon Mason drivers/ntb/hw/intel/ntb_hw_intel.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) commit 1199aa61264a74717bc747e7031673242bad5119 Author: Allen Hubbe Date: Mon May 18 06:20:47 2015 -0400 NTB: Use NUMA memory and DMA chan in transport Allocate memory and request the DMA channel for the same NUMA node as the NTB device. Signed-off-by: Allen Hubbe Signed-off-by: Jon Mason drivers/ntb/ntb_transport.c | 46 +++++++++++++++++++++++++++++++-------------- 1 file changed, 32 insertions(+), 14 deletions(-) commit 2876228941ac5dcab12854aa5a3462b3f2274b09 Author: Allen Hubbe Date: Mon May 11 10:08:26 2015 -0400 NTB: Rate limit ntb_qp_link_work When the ntb transport is connecting and waiting for the peer, the debug console receives lots of debug level messages about the remote qp link status being down. Rate limit those messages. Signed-off-by: Allen Hubbe Signed-off-by: Jon Mason drivers/ntb/ntb_transport.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 578b881ba9c4b253482903bf8fae438318f5629b Author: Allen Hubbe Date: Thu May 21 02:51:39 2015 -0400 NTB: Add tool test client This is a simple debugging driver that enables the doorbell and scratch pad registers to be read and written from the debugfs. This tool enables more complicated debugging to be scripted from user space. This driver may be used to test that your ntb hardware and drivers are functioning at a basic level. Signed-off-by: Allen Hubbe Signed-off-by: Jon Mason Documentation/ntb.txt | 32 +++ drivers/ntb/test/Kconfig | 11 + drivers/ntb/test/Makefile | 1 + drivers/ntb/test/ntb_tool.c | 556 ++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 600 insertions(+) commit 963de4739fb4f8fa8d5cd87969109a7d3282ed13 Author: Allen Hubbe Date: Wed Apr 15 11:12:41 2015 -0400 NTB: Add ping pong test client This is a simple ping pong driver that exercises the scratch pads and doorbells of the ntb hardware. This driver may be used to test that your ntb hardware and drivers are functioning at a basic level. Signed-off-by: Allen Hubbe Signed-off-by: Jon Mason Documentation/ntb.txt | 27 +++++ drivers/ntb/Kconfig | 2 + drivers/ntb/Makefile | 2 +- drivers/ntb/test/Kconfig | 8 ++ drivers/ntb/test/Makefile | 1 + drivers/ntb/test/ntb_pingpong.c | 250 ++++++++++++++++++++++++++++++++++++++++ 6 files changed, 289 insertions(+), 1 deletion(-) commit 42fefc86a680f975e2816cd86c4ba50069766ef6 Author: Allen Hubbe Date: Mon May 11 05:45:30 2015 -0400 NTB: Add parameters for Intel SNB B2B addresses Add module parameters for the addresses to be used in B2B topology. Signed-off-by: Allen Hubbe Signed-off-by: Jon Mason Documentation/ntb.txt | 10 +++++ drivers/ntb/hw/intel/ntb_hw_intel.c | 77 ++++++++++++++++++++++++++++--------- 2 files changed, 68 insertions(+), 19 deletions(-) commit 2849b5d70641db76f9b674d00c6d204892c51515 Author: Allen Hubbe Date: Tue May 12 08:09:15 2015 -0400 NTB: Reset transport QP link stats on down Reset the link stats when the link goes down. In particular, the TX and RX index and count must be reset, or else the TX side will be sending packets to the RX side where the RX side is not expecting them. Reset all the stats, to be consistent. Signed-off-by: Allen Hubbe Signed-off-by: Jon Mason drivers/ntb/ntb_transport.c | 36 ++++++++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 8 deletions(-) commit c0900b33d1c8c24246eaedb9553f078024c332fc Author: Allen Hubbe Date: Tue May 12 06:24:27 2015 -0400 NTB: Do not advance transport RX on link down On link down, don't advance RX index to the next entry. The next entry should never be valid after receiving the link down flag. Signed-off-by: Allen Hubbe Signed-off-by: Jon Mason drivers/ntb/ntb_transport.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit e22e0b9dcf78ee7a72561a6770c9ea554eb65096 Author: Allen Hubbe Date: Tue May 12 06:55:44 2015 -0400 NTB: Differentiate transport link down messages The same message "qp %d: Link Down\n" was printed at two locations in ntb_transport. Change the messages so they are distinct. Signed-off-by: Allen Hubbe Signed-off-by: Jon Mason drivers/ntb/ntb_transport.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit dd5d4d8edb6b40f75e5c8f0db65a4562bffc2e00 Author: Dave Jiang Date: Fri May 8 12:24:40 2015 -0400 NTB: Check the device ID to set errata flags Set errata flags for the specific device IDs to which they apply, instead of the whole Xeon hardware class. Signed-off-by: Dave Jiang Signed-off-by: Jon Mason drivers/ntb/hw/intel/ntb_hw_intel.c | 49 +++++++++++++++++++++++++++++++++---- 1 file changed, 44 insertions(+), 5 deletions(-) commit 5ae0beb6bcb781ba0439618a4883fdb243916f46 Author: Dave Jiang Date: Tue May 19 16:59:34 2015 -0400 NTB: Enable link for Intel root port mode in probe Link training should be enabled in the driver probe for root port mode. We should not have to wait for transport to be loaded for this to happen. Otherwise the ntb device will not show up on the transparent bridge side of the link. Signed-off-by: Dave Jiang Signed-off-by: Jon Mason drivers/ntb/hw/intel/ntb_hw_intel.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 0f69a7dff94d3e82ee51685f6a8fea7860b023b8 Author: Dave Jiang Date: Tue Jun 2 03:45:07 2015 -0400 NTB: Read peer info from local SPAD in transport The transport was writing and then reading the peer scratch pad, essentially reading what it just wrote instead of exchanging any information with the peer. The transport expects the peer values to be the same as the local values, so this issue was not obvious. Signed-off-by: Dave Jiang Signed-off-by: Jon Mason drivers/ntb/ntb_transport.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit e26a5843f7f5014ae4460030ca4de029a3ac35d3 Author: Allen Hubbe Date: Thu Apr 9 10:33:20 2015 -0400 NTB: Split ntb_hw_intel and ntb_transport drivers Change ntb_hw_intel to use the new NTB hardware abstraction layer. Split ntb_transport into its own driver. Change it to use the new NTB hardware abstraction layer. Signed-off-by: Allen Hubbe Signed-off-by: Jon Mason Documentation/ntb.txt | 26 + MAINTAINERS | 8 + drivers/net/ntb_netdev.c | 54 +- drivers/ntb/Kconfig | 37 +- drivers/ntb/Makefile | 6 +- drivers/ntb/hw/Kconfig | 1 + drivers/ntb/hw/Makefile | 1 + drivers/ntb/hw/intel/Kconfig | 7 + drivers/ntb/hw/intel/Makefile | 1 + drivers/ntb/hw/intel/ntb_hw_intel.c | 3075 +++++++++++++++++++---------------- drivers/ntb/hw/intel/ntb_hw_intel.h | 607 ++++--- drivers/ntb/ntb_transport.c | 936 ++++++----- include/linux/ntb_transport.h | 25 +- 13 files changed, 2589 insertions(+), 2195 deletions(-) commit a1bd3baeb2f18b2b3d0f98ce5fdaa725149b950b Author: Allen Hubbe Date: Thu Apr 9 10:33:20 2015 -0400 NTB: Add NTB hardware abstraction layer Abstract the NTB device behind a programming interface, so that it can support different hardware and client drivers. Signed-off-by: Allen Hubbe Signed-off-by: Jon Mason Documentation/ntb.txt | 32 ++ MAINTAINERS | 4 +- drivers/ntb/Makefile | 1 + drivers/ntb/ntb.c | 251 +++++++++++++ include/linux/ntb.h | 984 ++++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 1271 insertions(+), 1 deletion(-) commit 14a6f1989dae9445d4532941bdd6bbad84f4c8da Merge: b1be9ea 91e20b5 Author: Linus Torvalds Date: Sat Jul 4 09:22:51 2015 -0700 Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull irq update from Thomas Gleixner: "The last update for 4.2 is just moving a macro from a local header to the global one, so it can be used in architecture code as well. Cleanup of the now empty local header is 4.3 material" * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: irqchip: Move IRQCHIP_DECLARE macro to include/linux/irqchip.h commit b1be9ead135939136b87d73004891a6bac35bb43 Merge: 22a093b b96fecb Author: Linus Torvalds Date: Sat Jul 4 08:58:50 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: "Two FPU rewrite related fixes. This addresses all known x86 regressions at this stage. Also some other misc fixes" * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/fpu: Fix boot crash in the early FPU code x86/asm/entry/64: Update path names x86/fpu: Fix FPU related boot regression when CPUID masking BIOS feature is enabled x86/boot/setup: Clean up the e820_reserve_setup_data() code x86/kaslr: Fix typo in the KASLR_FLAG documentation commit 22a093b2fb52fb656658a32adc80c24ddc200ca4 Merge: c1776a1 397f237 Author: Linus Torvalds Date: Sat Jul 4 08:56:53 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: "Debug info and other statistics fixes and related enhancements" * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: sched/numa: Fix numa balancing stats in /proc/pid/sched sched/numa: Show numa_group ID in /proc/sched_debug task listings sched/debug: Move print_cfs_rq() declaration to kernel/sched/sched.h sched/stat: Expose /proc/pid/schedstat if CONFIG_SCHED_INFO=y sched/stat: Simplify the sched_info accounting dependency commit c1776a18e3b5a3559f3dff5df0ecce570abd3a9f Merge: 91cca0f b9df84f Author: Linus Torvalds Date: Sat Jul 4 08:17:29 2015 -0700 Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull perf updates from Ingo Molnar: "This tree includes an x86 PMU scheduling fix, but most changes are late breaking tooling fixes and updates: User visible fixes: - Create config.detected into OUTPUT directory, fixing parallel builds sharing the same source directory (Aaro Kiskinen) - Allow to specify custom linker command, fixing some MIPS64 builds. (Aaro Kiskinen) - Fix to show proper convergence stats in 'perf bench numa' (Srikar Dronamraju) User visible changes: - Validate syscall list passed via -e argument to 'perf trace'. (Arnaldo Carvalho de Melo) - Introduce 'perf stat --per-thread' (Jiri Olsa) - Check access permission for --kallsyms and --vmlinux (Li Zhang) - Move toggling event logic from 'perf top' and into hists browser, allowing freeze/unfreeze with event lists with more than one entry (Namhyung Kim) - Add missing newlines when dumping PERF_RECORD_FINISHED_ROUND and showing the Aggregated stats in 'perf report -D' (Adrian Hunter) Infrastructure fixes: - Add missing break for PERF_RECORD_ITRACE_START, which caused those events samples to be parsed as well as PERF_RECORD_LOST_SAMPLES. ITRACE_START only appears when Intel PT or BTS are present, so.. (Jiri Olsa) - Call the perf_session destructor when bailing out in the inject, kmem, report, kvm and mem tools (Taeung Song) Infrastructure changes: - Move stuff out of 'perf stat' and into the lib for further use (Jiri Olsa) - Reference count the cpu_map and thread_map classes (Jiri Olsa) - Set evsel->{cpus,threads} from the evlist, if not set, allowing the generalization of some 'perf stat' functions that previously were accessing private static evlist variable (Jiri Olsa) - Delete an unnecessary check before the calling free_event_desc() (Markus Elfring) - Allow auxtrace data alignment (Adrian Hunter) - Allow events with dot (Andi Kleen) - Fix failure to 'perf probe' events on arm (He Kuang) - Add testing for Makefile.perf (Jiri Olsa) - Add test for make install with prefix (Jiri Olsa) - Fix single target build dependency check (Jiri Olsa) - Access thread_map entries via accessors, prep patch to hold more info per entry, for ongoing 'perf stat --per-thread' work (Jiri Olsa) - Use __weak definition from compiler.h (Sukadev Bhattiprolu) - Split perf_pmu__new_alias() (Sukadev Bhattiprolu)" * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (54 commits) perf tools: Allow to specify custom linker command perf tools: Create config.detected into OUTPUT directory perf mem: Fill in the missing session freeing after an error occurs perf kvm: Fill in the missing session freeing after an error occurs perf report: Fill in the missing session freeing after an error occurs perf kmem: Fill in the missing session freeing after an error occurs perf inject: Fill in the missing session freeing after an error occurs perf tools: Add missing break for PERF_RECORD_ITRACE_START perf/x86: Fix 'active_events' imbalance perf symbols: Check access permission when reading symbol files perf stat: Introduce --per-thread option perf stat: Introduce print_counters function perf stat: Using init_stats instead of memset perf stat: Rename print_interval to process_interval perf stat: Remove perf_evsel__read_cb function perf stat: Move perf_stat initialization counter process code perf stat: Move zero_per_pkg into counter process code perf stat: Separate counters reading and processing perf stat: Introduce read_counters function perf stat: Introduce perf_evsel__read function ... commit 91cca0f0ffa3e485ad9d5b44744f23318c8f99ab Merge: ec0337e fb39f98 Author: Linus Torvalds Date: Sat Jul 4 08:16:41 2015 -0700 Merge branch 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull max log buf size increase from Ingo Molnar: "Ran into this limit recently, so increase it by an order of magnitude" * 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: printk: Increase maximum CONFIG_LOG_BUF_SHIFT from 21 to 25 commit ec0337e089b21d1d81e23d31807a9b02df11daac Merge: 5c65e7b a5cba18 Author: Linus Torvalds Date: Sat Jul 4 08:14:22 2015 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input Pull second round of input updates from Dmitry Torokhov: "A new driver for Weida wdt87xx touch controllers, and a bunch of fixups for other drivers" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: Input: wdt87xx_i2c - add a scaling factor for TOUCH_MAJOR event Input: wdt87xx_i2c - remove stray newline in diagnostic message Input: arc_ps2 - add HAS_IOMEM dependency Input: wdt87xx_i2c - fix format warning Input: improve parsing OF parameters for touchscreens Input: edt-ft5x06 - mark as direct input device Input: use for_each_set_bit() where appropriate Input: add a driver for wdt87xx touchscreen controller Input: axp20x-pek - fix reporting button state as inverted Input: xpad - re-send LED command on present event Input: xpad - set the LEDs properly on XBox Wireless controllers Input: imx_keypad - check for clk_prepare_enable() error commit b96fecbfa8c88b057e2bbf10021521c232bb3650 Author: Ingo Molnar Date: Sat Jul 4 09:58:19 2015 +0200 x86/fpu: Fix boot crash in the early FPU code Jan Kara and Thomas Gleixner reported boot crashes in the FPU code: general protection fault: 0000 [#1] SMP RIP: 0010:[] [] mxcsr_feature_mask_init+0x1c/0x40 2b:* 0f ae 85 00 fe ff ff fxsave -0x200(%rbp) and bisected it down to the following FPU commit: 91a8c2a5b43f ("x86/fpu: Clean up and fix MXCSR handling") The reason is that the on-stack FPU registers state variable, used by the FXSAVE instruction, did not have the required minimum alignment of 16 bytes, causing the general protection fault. This is most likely a GCC bug in older GCC versions, but the offending commit also added a bogus extra 32-byte alignment (which GCC ignored too). So fix this bug by making the variable static again, but also mark it __initdata this time, because fpu__init_system_mxcsr() is now an __init function. Reported-and-bisected-by: Jan Kara Reported-bisected-and-tested-by: Thomas Gleixner Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Dave Hansen Cc: Denys Vlasenko Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Jan Kara Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Quentin Casasnovas Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/20150704075819.GA9201@gmail.com Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/init.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 397f2378f136128623fc237746157aa2564d1082 Author: Srikar Dronamraju Date: Thu Jun 25 22:51:43 2015 +0530 sched/numa: Fix numa balancing stats in /proc/pid/sched Commit 44dba3d5d6a1 ("sched: Refactor task_struct to use numa_faults instead of numa_* pointers") modified the way tsk->numa_faults stats are accounted. However that commit never touched show_numa_stats() that is displayed in /proc/pid/sched and thus the numbers displayed in /proc/pid/sched don't match the actual numbers. Fix it by making sure that /proc/pid/sched reflects the task fault numbers. Also add group fault stats too. Also couple of more modifications are added here: 1. Format changes: - Previously we would list two entries per node, one for private and one for shared. Also the home node info was listed in each entry. - Now preferred node, total_faults and current node are displayed separately. - Now there is one entry per node, that lists private,shared task and group faults. 2. Unit changes: - p->numa_pages_migrated was getting reset after every read of /proc/pid/sched. It's more useful to have absolute numbers since differential migrations between two accesses can be more easily calculated. Signed-off-by: Srikar Dronamraju Acked-by: Rik van Riel Cc: Iulia Manda Cc: Linus Torvalds Cc: Mel Gorman Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1435252903-1081-4-git-send-email-srikar@linux.vnet.ibm.com Signed-off-by: Ingo Molnar kernel/sched/debug.c | 38 +++++++++++++++++--------------------- kernel/sched/fair.c | 22 +++++++++++++++++++++- kernel/sched/sched.h | 10 +++++++++- 3 files changed, 47 insertions(+), 23 deletions(-) commit e3d24d0a6048a826de5562d75dedb664d3a2a1b2 Author: Srikar Dronamraju Date: Thu Jun 25 22:51:42 2015 +0530 sched/numa: Show numa_group ID in /proc/sched_debug task listings Having the numa group ID in /proc/sched_debug helps to see how the numa groups have spread across the system. Signed-off-by: Srikar Dronamraju Acked-by: Rik van Riel Cc: Iulia Manda Cc: Linus Torvalds Cc: Mel Gorman Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1435252903-1081-3-git-send-email-srikar@linux.vnet.ibm.com Signed-off-by: Ingo Molnar kernel/sched/debug.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6b55c9654fccf69ae7ace23ca101dc37b903181b Author: Srikar Dronamraju Date: Thu Jun 25 22:51:41 2015 +0530 sched/debug: Move print_cfs_rq() declaration to kernel/sched/sched.h Currently print_cfs_rq() is declared in include/linux/sched.h. However it's not used outside kernel/sched. Hence move the declaration to kernel/sched/sched.h Also some functions are only available for CONFIG_SCHED_DEBUG=y. Hence move the declarations to within the #ifdef. Signed-off-by: Srikar Dronamraju Acked-by: Rik van Riel Cc: Iulia Manda Cc: Linus Torvalds Cc: Mel Gorman Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1435252903-1081-2-git-send-email-srikar@linux.vnet.ibm.com Signed-off-by: Ingo Molnar include/linux/sched.h | 2 -- kernel/sched/sched.h | 5 +++++ 2 files changed, 5 insertions(+), 2 deletions(-) commit 5968cecedd7a09f23e9fcb5f9fb4e893712f35ba Author: Naveen N. Rao Date: Tue Jun 30 14:36:03 2015 +0530 sched/stat: Expose /proc/pid/schedstat if CONFIG_SCHED_INFO=y Expand /proc/pid/schedstat output: - enable it on CONFIG_TASK_DELAY_ACCT=y && !CONFIG_SCHEDSTATS kernels. - dump all zeroes on kernels that are booted with the 'nodelayacct' option, which boot option disables delay accounting on CONFIG_TASK_DELAY_ACCT=y kernels. Signed-off-by: Naveen N. Rao Cc: Balbir Singh Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Srikar Dronamraju Cc: Thomas Gleixner Cc: a.p.zijlstra@chello.nl Cc: ricklind@us.ibm.com Link: http://lkml.kernel.org/r/5ccbef17d4bc841084ea6e6421d4e4a23b7b806f.1435654789.git.naveen.n.rao@linux.vnet.ibm.com Signed-off-by: Ingo Molnar fs/proc/base.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit f6db8347993256b58bd4746b0c4c5b935c32210d Author: Naveen N. Rao Date: Thu Jun 25 23:53:37 2015 +0530 sched/stat: Simplify the sched_info accounting dependency Both CONFIG_SCHEDSTATS=y and CONFIG_TASK_DELAY_ACCT=y track task sched_info, which results in ugly #if clauses. Simplify the code by introducing a synthethic CONFIG_SCHED_INFO switch, selected by both. Signed-off-by: Naveen N. Rao Cc: Balbir Singh Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Srikar Dronamraju Cc: Thomas Gleixner Cc: a.p.zijlstra@chello.nl Cc: ricklind@us.ibm.com Link: http://lkml.kernel.org/r/8d19eef800811a94b0f91bcbeb27430a884d7433.1435255405.git.naveen.n.rao@linux.vnet.ibm.com Signed-off-by: Ingo Molnar include/linux/sched.h | 6 +++--- init/Kconfig | 1 + kernel/sched/core.c | 2 +- kernel/sched/stats.h | 4 ++-- lib/Kconfig.debug | 5 +++++ 5 files changed, 12 insertions(+), 6 deletions(-) commit a5cba18c4de288335a975b5d57b68f6787330985 Merge: f7ebc4d d55d0b5 Author: Dmitry Torokhov Date: Fri Jul 3 23:56:31 2015 -0700 Merge branch 'next' into for-linus Prepare second round of input updates for 4.2 merge window. commit 8974fec7d72e3e02752fe0f27b4c3719c78d9a15 Author: Eryu Guan Date: Sat Jul 4 00:03:44 2015 -0400 ext4: correctly migrate a file with a hole at the beginning Currently ext4_ind_migrate() doesn't correctly handle a file which contains a hole at the beginning of the file. This caused the migration to be done incorrectly, and then if there is a subsequent following delayed allocation write to the "hole", this would reclaim the same data blocks again and results in fs corruption. # assmuing 4k block size ext4, with delalloc enabled # skip the first block and write to the second block xfs_io -fc "pwrite 4k 4k" -c "fsync" /mnt/ext4/testfile # converting to indirect-mapped file, which would move the data blocks # to the beginning of the file, but extent status cache still marks # that region as a hole chattr -e /mnt/ext4/testfile # delayed allocation writes to the "hole", reclaim the same data block # again, results in i_blocks corruption xfs_io -c "pwrite 0 4k" /mnt/ext4/testfile umount /mnt/ext4 e2fsck -nf /dev/sda6 ... Inode 53, i_blocks is 16, should be 8. Fix? no ... Signed-off-by: Eryu Guan Signed-off-by: Theodore Ts'o Cc: stable@vger.kernel.org fs/ext4/migrate.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit d6f123a9297496ad0b6335fe881504c4b5b2a5e5 Author: Eryu Guan Date: Fri Jul 3 23:56:50 2015 -0400 ext4: be more strict when migrating to non-extent based file Currently the check in ext4_ind_migrate() is not enough before doing the real conversion: a) delayed allocated extents could bypass the check on eh->eh_entries and eh->eh_depth This can be demonstrated by this script xfs_io -fc "pwrite 0 4k" -c "pwrite 8k 4k" /mnt/ext4/testfile chattr -e /mnt/ext4/testfile where testfile has two extents but still be converted to non-extent based file format. b) only extent length is checked but not the offset, which would result in data lose (delalloc) or fs corruption (nodelalloc), because non-extent based file only supports at most (12 + 2^10 + 2^20 + 2^30) blocks This can be demostrated by xfs_io -fc "pwrite 5T 4k" /mnt/ext4/testfile chattr -e /mnt/ext4/testfile sync If delalloc is enabled, dmesg prints EXT4-fs warning (device dm-4): ext4_block_to_path:105: block 1342177280 > max in inode 53 EXT4-fs (dm-4): Delayed block allocation failed for inode 53 at logical offset 1342177280 with max blocks 1 with error 5 EXT4-fs (dm-4): This should not happen!! Data will be lost If delalloc is disabled, e2fsck -nf shows corruption Inode 53, i_size is 5497558142976, should be 4096. Fix? no Fix the two issues by a) forcing all delayed allocation blocks to be allocated before checking eh->eh_depth and eh->eh_entries b) limiting the last logical block of the extent is within direct map Signed-off-by: Eryu Guan Signed-off-by: Theodore Ts'o Cc: stable@vger.kernel.org fs/ext4/migrate.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit 9705acd63b125dee8b15c705216d7186daea4625 Author: Lukas Czerner Date: Fri Jul 3 21:13:55 2015 -0400 ext4: fix reservation release on invalidatepage for delalloc fs On delalloc enabled file system on invalidatepage operation in ext4_da_page_release_reservation() we want to clear the delayed buffer and remove the extent covering the delayed buffer from the extent status tree. However currently there is a bug where on the systems with page size > block size we will always remove extents from the start of the page regardless where the actual delayed buffers are positioned in the page. This leads to the errors like this: EXT4-fs warning (device loop0): ext4_da_release_space:1225: ext4_da_release_space: ino 13, to_free 1 with only 0 reserved data blocks This however can cause data loss on writeback time if the file system is in ENOSPC condition because we're releasing reservation for someones else delayed buffer. Fix this by only removing extents that corresponds to the part of the page we want to invalidate. This problem is reproducible by the following fio receipt (however I was only able to reproduce it with fio-2.1 or older. [global] bs=8k iodepth=1024 iodepth_batch=60 randrepeat=1 size=1m directory=/mnt/test numjobs=20 [job1] ioengine=sync bs=1k direct=1 rw=randread filename=file1:file2 [job2] ioengine=libaio rw=randwrite direct=1 filename=file1:file2 [job3] bs=1k ioengine=posixaio rw=randwrite direct=1 filename=file1:file2 [job5] bs=1k ioengine=sync rw=randread filename=file1:file2 [job7] ioengine=libaio rw=randwrite filename=file1:file2 [job8] ioengine=posixaio rw=randwrite filename=file1:file2 [job10] ioengine=mmap rw=randwrite bs=1k filename=file1:file2 [job11] ioengine=mmap rw=randwrite direct=1 filename=file1:file2 Signed-off-by: Lukas Czerner Signed-off-by: Theodore Ts'o Reviewed-by: Jan Kara Cc: stable@vger.kernel.org fs/ext4/inode.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) commit 5c65e7be4cbb015e39759275746f31bb6fa74f77 Merge: 5fc8352 e24ff46 Author: Linus Torvalds Date: Fri Jul 3 16:09:29 2015 -0700 Merge tag 'topic/drm-fixes-2015-07-04' of git://anongit.freedesktop.org/drm-intel Pull drm EDID fix from Daniel Vetter: "Since Dave is enjoying vacation I figured I'll send you this drm core fix directly" * tag 'topic/drm-fixes-2015-07-04' of git://anongit.freedesktop.org/drm-intel: drm/crtc: Fix edid length computation commit 5fc835284d45a10a181b5c3f149a701e0391d1b2 Merge: 0cbee99 59a5b0f7 Author: Linus Torvalds Date: Fri Jul 3 16:02:25 2015 -0700 Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost Pull virtio/vhost cross endian support from Michael Tsirkin: "I have just queued some more bugfix patches today but none fix regressions and none are related to these ones, so it looks like a good time for a merge for -rc1. The motivation for this is support for legacy BE guests on the new LE hosts. There are two redeeming properties that made me merge this: - It's a trivial amount of code: since we wrap host/guest accesses anyway, almost all of it is well hidden from drivers. - Sane platforms would never set flags like VHOST_CROSS_ENDIAN_LEGACY, and when it's clear, there's zero overhead (as some point it was tested by compiling with and without the patches, got the same stripped binary). Maybe we could create a Kconfig symbol to enforce the second point: prevent people from enabling it eg on x86. I will look into this" * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost: virtio-pci: alloc only resources actually used. macvtap/tun: cross-endian support for little-endian hosts vhost: cross-endian support for legacy devices virtio: add explicit big-endian support to memory accessors vhost: introduce vhost_is_little_endian() helper vringh: introduce vringh_is_little_endian() helper macvtap: introduce macvtap_is_little_endian() helper tun: add tun_is_little_endian() helper virtio: introduce virtio_is_little_endian() helper commit e24ff467e12e1560de753313976c46e84fa6306a Author: Shixin Zeng Date: Fri Jul 3 08:46:50 2015 +0200 drm/crtc: Fix edid length computation The length of each EDID block is EDID_LENGTH, and number of blocks is (1 + edid->extensions) - we need to multiply not add them. This causes wrong EDID to be passed on, and is a regression introduced by d2ed34362a52 (drm: Introduce helper for replacing blob properties) Signed-off-by: Shixin Zeng Cc: Daniel Stone Cc: Maarten Lankhorst Reviewed-by: Daniel Stone [danvet: Add Cc: and fix commit summary.] Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_crtc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0cbee992696236227a7ea411e4b0fbf73b918b6a Merge: 2fee94b 93e3bce Author: Linus Torvalds Date: Fri Jul 3 15:20:57 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: "Long ago and far away when user namespaces where young it was realized that allowing fresh mounts of proc and sysfs with only user namespace permissions could violate the basic rule that only root gets to decide if proc or sysfs should be mounted at all. Some hacks were put in place to reduce the worst of the damage could be done, and the common sense rule was adopted that fresh mounts of proc and sysfs should allow no more than bind mounts of proc and sysfs. Unfortunately that rule has not been fully enforced. There are two kinds of gaps in that enforcement. Only filesystems mounted on empty directories of proc and sysfs should be ignored but the test for empty directories was insufficient. So in my tree directories on proc, sysctl and sysfs that will always be empty are created specially. Every other technique is imperfect as an ordinary directory can have entries added even after a readdir returns and shows that the directory is empty. Special creation of directories for mount points makes the code in the kernel a smidge clearer about it's purpose. I asked container developers from the various container projects to help test this and no holes were found in the set of mount points on proc and sysfs that are created specially. This set of changes also starts enforcing the mount flags of fresh mounts of proc and sysfs are consistent with the existing mount of proc and sysfs. I expected this to be the boring part of the work but unfortunately unprivileged userspace winds up mounting fresh copies of proc and sysfs with noexec and nosuid clear when root set those flags on the previous mount of proc and sysfs. So for now only the atime, read-only and nodev attributes which userspace happens to keep consistent are enforced. Dealing with the noexec and nosuid attributes remains for another time. This set of changes also addresses an issue with how open file descriptors from /proc//ns/* are displayed. Recently readlink of /proc//fd has been triggering a WARN_ON that has not been meaningful since it was added (as all of the code in the kernel was converted) and is not now actively wrong. There is also a short list of issues that have not been fixed yet that I will mention briefly. It is possible to rename a directory from below to above a bind mount. At which point any directory pointers below the renamed directory can be walked up to the root directory of the filesystem. With user namespaces enabled a bind mount of the bind mount can be created allowing the user to pick a directory whose children they can rename to outside of the bind mount. This is challenging to fix and doubly so because all obvious solutions must touch code that is in the performance part of pathname resolution. As mentioned above there is also a question of how to ensure that developers by accident or with purpose do not introduce exectuable files on sysfs and proc and in doing so introduce security regressions in the current userspace that will not be immediately obvious and as such are likely to require breaking userspace in painful ways once they are recognized" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace: vfs: Remove incorrect debugging WARN in prepend_path mnt: Update fs_fully_visible to test for permanently empty directories sysfs: Create mountpoints with sysfs_create_mount_point sysfs: Add support for permanently empty directories to serve as mount points. kernfs: Add support for always empty directories. proc: Allow creating permanently empty directories that serve as mount points sysctl: Allow creating permanently empty directories that serve as mountpoints. fs: Add helper functions for permanently empty directories. vfs: Ignore unlocked mounts in fs_fully_visible mnt: Modify fs_fully_visible to deal with locked ro nodev and atime mnt: Refactor the logic for mounting sysfs and proc in a user namespace commit 2fee94b74b45681a09b1dac54cb615e02b7b30d0 Merge: d033ed9 8de3dbd Author: Linus Torvalds Date: Fri Jul 3 14:57:50 2015 -0700 Merge tag 'remoteproc-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/ohad/remoteproc Pull remoteproc updates from Ohad Ben-Cohen: - remoteproc fixes/cleanups from Suman Anna - new remoteproc TI Wakeup M3 driver from Dave Gerlach - remoteproc core support for TI's Wakeup M3 driver from both Dave and Suman - tiny remoteproc build fix from myself * tag 'remoteproc-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/ohad/remoteproc: remoteproc: fix !CONFIG_OF build breakage remoteproc/wkup_m3: add a remoteproc driver for TI Wakeup M3 Documentation: dt: add bindings for TI Wakeup M3 processor remoteproc: add a rproc ops for performing address translation remoteproc: introduce rproc_get_by_phandle API remoteproc: fix various checkpatch warnings remoteproc/davinci: fix quoted split string checkpatch warning remoteproc/ste: add blank lines after declarations commit d033ed9eeafc3bf33ce2de286ea2fb2c63e1c183 Merge: 6361c84 bd5717a Author: Linus Torvalds Date: Fri Jul 3 14:52:25 2015 -0700 Merge tag 'hwspinlock-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/ohad/hwspinlock Pull hwspinlock updates from Ohad Ben-Cohen: - hwspinlock core DT support from Suman Anna - OMAP hwspinlock DT support from Suman Anna - QCOM hwspinlock DT support from Bjorn Andersson - a new CSR atlas7 hwspinlock driver from Wei Chen - CSR atlas7 hwspinlock DT binding document from Wei Chen - a tiny QCOM hwspinlock driver fix from Bjorn Andersson * tag 'hwspinlock-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/ohad/hwspinlock: hwspinlock: qcom: Correct msb in regmap_field DT: hwspinlock: add the CSR atlas7 hwspinlock bindings document hwspinlock: add a CSR atlas7 driver hwspinlock: qcom: Add support for Qualcomm HW Mutex block DT: hwspinlock: Add binding documentation for Qualcomm hwmutex hwspinlock/omap: add support for dt nodes Documentation: dt: add the omap hwspinlock bindings document hwspinlock/core: add device tree support Documentation: dt: add common bindings for hwspinlock commit 1bd46782d08b01b73df0085b51ea1021b19b44fd Author: Russell King Date: Fri Jul 3 15:22:54 2015 +0100 ARM: avoid unwanted GCC memset()/memcpy() optimisations for IO variants We don't want GCC optimising our memset_io(), memcpy_fromio() or memcpy_toio() variants, so we must not call one of the standard functions. Provide a separate name for our assembly memcpy() and memset() functions, and use that instead, thereby bypassing GCC's ability to optimise these operations. GCCs optimisation may introduce unaligned accesses which are invalid for device mappings. Signed-off-by: Russell King arch/arm/include/asm/io.h | 9 ++++++--- arch/arm/kernel/armksyms.c | 6 ++++++ arch/arm/lib/memcpy.S | 2 ++ arch/arm/lib/memset.S | 2 ++ 4 files changed, 16 insertions(+), 3 deletions(-) commit 6361c845ceab326a306412349fa6b125700b2cec Merge: 31351f7 f871d26 Author: Linus Torvalds Date: Fri Jul 3 12:28:30 2015 -0700 Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux Pull arm64 fixes (and cleanups) from Catalin Marinas: "Various arm64 fixes: - suspicious RCU usage warning - BPF (out of bounds array read and endianness conversion) - perf (of_node usage after of_node_put, cpu_pmu->plat_device assignment) - huge pmd/pud check for value 0 - rate-limiting should only take unhandled signals into account Clean-up: - incorrect use of pgprot_t type - unused header include - __init annotation to arm_cpuidle_init - pr_debug instead of pr_error for disabled GICC entries in ACPI/MADT" * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: arm64: Fix show_unhandled_signal_ratelimited usage ARM64 / SMP: Switch pr_err() to pr_debug() for disabled GICC entry arm64: cpuidle: add __init section marker to arm_cpuidle_init arm64: Don't report clear pmds and puds as huge arm64: perf: fix unassigned cpu_pmu->plat_device when probing PMU PPIs arm64: perf: Don't use of_node after putting it arm64: fix incorrect use of pgprot_t variable arm64/hw_breakpoint.c: remove unnecessary header arm64: bpf: fix endianness conversion bugs arm64: bpf: fix out-of-bounds read in bpf2a64_offset() ARM64: smp: Fix suspicious RCU usage with ipi tracepoints commit 31351f73ea37a5881fa24377ebc9e79487a77039 Merge: 9a3c284 a8955cc Author: Linus Torvalds Date: Fri Jul 3 12:22:49 2015 -0700 Merge tag 'nios2-v4.2' of git://git.rocketboards.org/linux-socfpga-next Pull nios2 update from Ley Foon Tan: "Check number of timer instances" * tag 'nios2-v4.2' of git://git.rocketboards.org/linux-socfpga-next: nios2: check number of timer instances commit 9a3c284a6dc894af066bbd6238a37996bb156c40 Merge: 1e512b0 ffe3df5 Author: Linus Torvalds Date: Fri Jul 3 12:14:21 2015 -0700 Merge branch 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging Pull more hwmon updates from Jean Delvare. * 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging: hwmon: (w83627ehf) Use swap() in w82627ehf_swap_tempreg() hwmon: Document which I2C addresses can be probed hwmon: (w83792d) Additional PWM outputs support commit 1e512b08da88dc2f28afb70406c5a6b2cd7531e4 Merge: 1c65ae6 758dd7f Author: Linus Torvalds Date: Fri Jul 3 12:12:16 2015 -0700 Merge branch 'for-linus' of git://git.kernel.dk/linux-block Pull block fixes from Jens Axboe: "Mainly sending this off now for the writeback fixes, since they fix a real regression introduced with the cgroup writeback changes. The NVMe fix could wait for next pull for this series, but it's simple enough that we might as well include it. This contains: - two cgroup writeback fixes from Tejun, fixing a user reported issue with luks crypt devices hanging when being closed. - NVMe error cleanup fix from Jon Derrick, fixing a case where we'd attempt to free an unregistered IRQ" * 'for-linus' of git://git.kernel.dk/linux-block: NVMe: Fix irq freeing when queue_request_irq fails writeback: don't drain bdi_writeback_congested on bdi destruction writeback: don't embed root bdi_writeback_congested in bdi_writeback commit 1c65ae63c061c8eb22c780d99ebcd4492743c04e Merge: b53343f 0438ec9 Author: Linus Torvalds Date: Fri Jul 3 12:11:17 2015 -0700 Merge tag 'fbdev-fixes-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux Pull fbdev fix from Tomi Valkeinen: "Fix display regression on TI AM4xxx boards" * tag 'fbdev-fixes-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux: OMAPDSS: fix probing if rfbi device is enabled commit b53343fc6c6f30ff5c6391d6f56d531afc2f4f7a Merge: 5a8011c 75a15a7 Author: Linus Torvalds Date: Fri Jul 3 12:10:12 2015 -0700 Merge tag 'edac_urgent_for_4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp Pull EDAC fix from Borislav Petkov: "A build fix for octeon_edac from Aaro Koskinen" * tag 'edac_urgent_for_4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp: EDAC, octeon: Fix broken build due to model helper renames commit 5a8011cb896ed9822ca9086cf9c4d4c5db16be64 Author: Stephen Rothwell Date: Fri Jul 3 13:49:37 2015 +1000 crypto: marvell/cesa - another fix up for of_get_named_gen_pool() rename Signed-off-by: Stephen Rothwell Signed-off-by: Linus Torvalds drivers/crypto/mv_cesa.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a88464a8b0ffb2f8dfb69d3ab982169578b50f22 Author: Andrey Smetanin Date: Thu Jul 2 19:07:46 2015 +0300 kvm: add hyper-v crash msrs values Added Hyper-V crash msrs values - HV_X64_MSR_CRASH*. Signed-off-by: Andrey Smetanin Signed-off-by: Denis V. Lunev Reviewed-by: Peter Hornyack CC: Paolo Bonzini CC: Gleb Natapov Signed-off-by: Paolo Bonzini arch/x86/include/uapi/asm/hyperv.h | 11 +++++++++++ 1 file changed, 11 insertions(+) commit b0996ae48285364710bce812e70ce67771ea6ef7 Author: Nicolas Iooss Date: Mon Jun 29 18:39:23 2015 +0800 KVM: x86: remove data variable from kvm_get_msr_common Commit 609e36d372ad ("KVM: x86: pass host_initiated to functions that read MSRs") modified kvm_get_msr_common function to use msr_info->data instead of data but missed one occurrence. Replace it and remove the unused local variable. Fixes: 609e36d372ad ("KVM: x86: pass host_initiated to functions that read MSRs") Signed-off-by: Nicolas Iooss Signed-off-by: Paolo Bonzini arch/x86/kvm/x86.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 431dae778aea4eed31bd12e5ee82edc571cd4d70 Author: Cornelia Huck Date: Mon Jun 29 16:44:01 2015 +0200 KVM: s390: virtio-ccw: don't overwrite config space values Eric noticed problems with vhost-scsi and virtio-ccw: vhost-scsi complained about overwriting values in the config space, which was triggered by a broken implementation of virtio-ccw's config get/set routines. It was probably sheer luck that we did not hit this before. When writing a value to the config space, the WRITE_CONF ccw will always write from the beginning of the config space up to and including the value to be set. If the config space up to the value has not yet been retrieved from the device, however, we'll end up overwriting values. Keep track of the known config space and update if needed to avoid this. Moreover, READ_CONF will only read the number of bytes it has been instructed to retrieve, so we must not copy more than that to the buffer, or we might overwrite trailing values. Reported-by: Eric Farman Signed-off-by: Cornelia Huck Reviewed-by: Eric Farman Tested-by: Eric Farman Signed-off-by: Christian Borntraeger Cc: stable@vger.kernel.org Signed-off-by: Paolo Bonzini drivers/s390/kvm/virtio_ccw.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) commit 59fd132340b3e37b83179d2fcb673980035edf62 Author: Radim Krčmář Date: Tue Jun 30 22:19:16 2015 +0200 KVM: x86: keep track of LVT0 changes under APICv Memory-mapped LVT0 register already contains the new value when APICv traps so we can't directly detect a change. Memorize a bit we are interested in to enable legacy NMI watchdog. Suggested-by: Yoshida Nobuo Signed-off-by: Radim Krčmář Signed-off-by: Paolo Bonzini arch/x86/kvm/lapic.c | 14 ++++++++------ arch/x86/kvm/lapic.h | 1 + 2 files changed, 9 insertions(+), 6 deletions(-) commit db1385624c686fe99fe2d1b61a36e1537b915d08 Author: Radim Krčmář Date: Tue Jun 30 22:19:17 2015 +0200 KVM: x86: properly restore LVT0 Legacy NMI watchdog didn't work after migration/resume, because vapics_in_nmi_mode was left at 0. Cc: stable@vger.kernel.org Signed-off-by: Radim Krčmář Signed-off-by: Paolo Bonzini arch/x86/kvm/lapic.c | 1 + 1 file changed, 1 insertion(+) commit 42720138b06301cc8a7ee8a495a6d021c4b6a9bc Author: Radim Krčmář Date: Wed Jul 1 15:31:49 2015 +0200 KVM: x86: make vapics_in_nmi_mode atomic Writes were a bit racy, but hard to turn into a bug at the same time. (Particularly because modern Linux doesn't use this feature anymore.) Signed-off-by: Radim Krčmář [Actually the next patch makes it much, much easier to trigger the race so I'm including this one for stable@ as well. - Paolo] Cc: stable@vger.kernel.org Signed-off-by: Paolo Bonzini arch/x86/include/asm/kvm_host.h | 2 +- arch/x86/kvm/i8254.c | 2 +- arch/x86/kvm/lapic.c | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) commit 2ecd9d29abb171d6e97a4f3eb29d7456a11401b7 Author: Peter Zijlstra Date: Fri Jul 3 18:53:58 2015 +0200 sched, preempt_notifier: separate notifier registration from static_key inc/dec Commit 1cde2930e154 ("sched/preempt: Add static_key() to preempt_notifiers") had two problems. First, the preempt-notifier API needs to sleep with the addition of the static_key, we do however need to hold off preemption while modifying the preempt notifier list, otherwise a preemption could observe an inconsistent list state. KVM correctly registers and unregisters preempt notifiers with preemption disabled, so the sleep caused dmesg splats. Second, KVM registers and unregisters preemption notifiers very often (in vcpu_load/vcpu_put). With a single uniprocessor guest the static key would move between 0 and 1 continuously, hitting the slow path on every userspace exit. To fix this, wrap the static_key inc/dec in a new API, and call it from KVM. Fixes: 1cde2930e154 ("sched/preempt: Add static_key() to preempt_notifiers") Reported-by: Pontus Fuchs Reported-by: Takashi Iwai Tested-by: Takashi Iwai Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Paolo Bonzini include/linux/preempt.h | 2 ++ kernel/sched/core.c | 17 +++++++++++++++-- virt/kvm/kvm_main.c | 3 +++ 3 files changed, 20 insertions(+), 2 deletions(-) commit fda8b18c515a5e2caf821887ceafb42c35094eaf Author: Hariprasad Shenai Date: Fri Jul 3 16:10:51 2015 +0530 cxgb4: Fix incorrect sequence numbers shown in devlog Part of commit 49aa284fe64c4c1 ("cxgb4: Add support for devlog") change introduced a real bug where the Device Log Sequence Numbers are no longer being converted from firmware Big-Endian to local CPU-Endian format. This patch moves all of the translation into the devlog_show() routine. The only endianness code now in devlog_open() is the small loop to find the earliest (lowest Sequence Number) Device Log entry in the circular buffer. Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c | 25 +++++++++++----------- 1 file changed, 13 insertions(+), 12 deletions(-) commit 4c938d22c88a9ddccc8c55a85e0430e9c62b1ac5 Author: Angga Date: Fri Jul 3 14:40:52 2015 +1200 ipv6: Make MLD packets to only be processed locally Before commit daad151263cf ("ipv6: Make ipv6_is_mld() inline and use it from ip6_mc_input().") MLD packets were only processed locally. After the change, a copy of MLD packet goes through ip6_mr_input, causing MRT6MSG_NOCACHE message to be generated to user space. Make MLD packet only processed locally. Fixes: daad151263cf ("ipv6: Make ipv6_is_mld() inline and use it from ip6_mc_input().") Signed-off-by: Hermin Anggawijaya Signed-off-by: David S. Miller net/ipv6/ip6_input.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 92b80eb33c52583b48ed289bd993579b87b52d9a Author: Markus Elfring Date: Thu Jul 2 18:38:12 2015 +0200 netlink: Delete an unnecessary check before the function call "module_put" The module_put() function tests whether its argument is NULL and then returns immediately. Thus the test around the call is not needed. This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring Signed-off-by: David S. Miller net/netlink/af_netlink.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f6e1c91666990d06ba37c76129495c724202144d Author: Markus Elfring Date: Thu Jul 2 17:58:21 2015 +0200 net-RDS: Delete an unnecessary check before the function call "module_put" The module_put() function tests whether its argument is NULL and then returns immediately. Thus the test around the call is not needed. This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring Signed-off-by: David S. Miller net/rds/transport.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 87775312a86bcf213e3b21f6f7c79e2e00d96f7b Author: Markus Elfring Date: Thu Jul 2 16:30:24 2015 +0200 net-ipv6: Delete an unnecessary check before the function call "free_percpu" The free_percpu() 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: David S. Miller net/ipv6/route.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 9ab79bb22cc77adcca5ebbadea6caec6a478f283 Author: Russell King Date: Wed Jul 1 15:23:10 2015 +0100 ARM: pgtable: document mapping types Signed-off-by: Russell King arch/arm/include/asm/pgtable-2level.h | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) commit 20a1080dff2f1be8933baa0d910c41882c7279ee Author: Russell King Date: Wed Jul 1 10:06:32 2015 +0100 ARM: io: convert ioremap*() to functions Convert the ioremap*() preprocessor macros to real functions, moving them out of line. This allows us to kill off __arm_ioremap(), and __arm_iounmap() helpers, and remove __arm_ioremap_pfn_caller() from global view. Signed-off-by: Russell King arch/arm/include/asm/io.h | 24 +++++++++++++----------- arch/arm/mm/ioremap.c | 33 +++++++++++++++++++++++---------- arch/arm/mm/nommu.c | 39 ++++++++++++++++++++++++++------------- 3 files changed, 62 insertions(+), 34 deletions(-) commit f871d26807078cf4cc0a64a97ee2c6bb513a4397 Author: Suzuki K. Poulose Date: Fri Jul 3 15:08:08 2015 +0100 arm64: Fix show_unhandled_signal_ratelimited usage Commit 86dca36e6ba introduced ratelimited usage for 'unhandled_signal' messages. The commit checks the ratelimit irrespective of whether the signal is handled or not, which is wrong and leads to false reports like the below in dmesg : __do_user_fault: 127 callbacks suppressed Do the ratelimit check only if the signal is unhandled. Fixes: 86dca36e6ba0 ("arm64: use private ratelimit state along with show_unhandled_signals") Cc: Vladimir Murzin Signed-off-by: Suzuki K. Poulose Signed-off-by: Catalin Marinas arch/arm64/kernel/traps.c | 2 +- arch/arm64/mm/fault.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 1e2c727f6c022778d4562147433ca4c0b101f0ad Author: Russell King Date: Wed Jul 1 10:17:55 2015 +0100 ARM: io: fix ioremap_wt() implementation ioremap_wt() was added by aliasing it to ioremap_nocache(), which is a device mapping. Device mappings do not allow unaligned accesses, but it appears that GCC is able to inline its own memcpy() implementation which may use such accesses. The only user of this is pmem, which uses memcpy() on the region. Therefore, this is unsafe. We must implement ioremap_wt() correctly for ARM, or not at all. This patch adds a more correct implementation by re-using ioremap_wc() to provide a normal-memory non-cacheable mapping. Signed-off-by: Russell King arch/arm/include/asm/io.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ac5e2f170f033e48cfcdc2c4f74b27083eabffa5 Author: Russell King Date: Wed Jul 1 10:02:39 2015 +0100 ARM: io: document ARM specific behaviour of ioremap*() implementations Add documentation of the ARM specific behaviour of the mappings setup by the ioremap() series of macros. Signed-off-by: Russell King arch/arm/include/asm/io.h | 42 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 39 insertions(+), 3 deletions(-) commit b5872f0c67edf3714dd46f04d73c3644f3addaf9 Author: Trond Myklebust Date: Fri Jul 3 09:32:23 2015 -0400 SUNRPC: Don't confuse ENOBUFS with a write_space issue ENOBUFS means that memory allocations are failing due to an actual low memory situation. It should not be confused with being out of socket buffer space. Handle the problem by just punting to the delay in call_status. Reported-by: Neil Brown Signed-off-by: Trond Myklebust net/sunrpc/xprtsock.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 93aa6c7bbc4124c8361c26a8b2c5c40afb185619 Author: Trond Myklebust Date: Fri Jul 3 09:28:09 2015 -0400 SUNRPC: Don't reencode message if transmission failed with ENOBUFS If we're running out of buffer memory when transmitting data, then we want to just delay for a moment, and then continue transmitting the remainder of the message. Signed-off-by: Trond Myklebust net/sunrpc/clnt.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit ffe3df535320acc337d69c60549d68ebfa863642 Author: Fabian Frederick Date: Fri Jul 3 14:39:06 2015 +0200 hwmon: (w83627ehf) Use swap() in w82627ehf_swap_tempreg() Use kernel.h macro definition. Thanks to Julia Lawall for Coccinelle scripting support. Signed-off-by: Fabian Frederick Signed-off-by: Jean Delvare drivers/hwmon/w83627ehf.c | 26 +++++--------------------- 1 file changed, 5 insertions(+), 21 deletions(-) commit 97607f9882a0e0d3553382a4c7996d3a37d08268 Author: Jean Delvare Date: Fri Jul 3 14:39:05 2015 +0200 hwmon: Document which I2C addresses can be probed Add an item to the checklist when submitting a new hwmon driver: only some I2C addresses can be probed, others should not for safety reasons. Signed-off-by: Jean Delvare Reviewed-by: Guenter Roeck Documentation/hwmon/submitting-patches | 7 +++++++ 1 file changed, 7 insertions(+) commit f617f7310cfdca5245a10629979d85682323f1a4 Author: Roger Lucas Date: Tue May 12 22:01:37 2015 +0100 hwmon: (w83792d) Additional PWM outputs support Add pwm[4-7] and the associated pwm[4-7]_mode attributes. Signed-off-by: Roger Lucas Signed-off-by: Jean Delvare Documentation/hwmon/w83792d | 18 +++++++++++++----- drivers/hwmon/w83792d.c | 27 ++++++++++++++++++++++----- 2 files changed, 35 insertions(+), 10 deletions(-) commit 11b8b25ce4f8acfd3b438683c0c9ade27756c6e8 Author: Russell King Date: Fri Jul 3 12:42:36 2015 +0100 ARM: fix lockdep unannotated irqs-off warning Wolfram Sang reported an unannotated irqs-off warning from lockdep: WARNING: CPU: 0 PID: 282 at kernel/locking/lockdep.c:3557 check_flags+0x84/0x1f4() DEBUG_LOCKS_WARN_ON(current->hardirqs_enabled) CPU: 0 PID: 282 Comm: rcS Tainted: G W 4.1.0-00002-g5b076054611833 #179 Hardware name: Generic Emma Mobile EV2 (Flattened Device Tree) Backtrace: [] (dump_backtrace) from [] (show_stack+0x18/0x1c) r6:c02dcc67 r5:00000009 r4:00000000 r3:00400000 [] (show_stack) from [] (dump_stack+0x20/0x28) [] (dump_stack) from [] (warn_slowpath_common+0x8c/0xb4) [] (warn_slowpath_common) from [] (warn_slowpath_fmt+0x38/0x40) r8:c780f470 r7:00000000 r6:00000000 r5:c03b0570 r4:c0b7ec04 [] (warn_slowpath_fmt) from [] (check_flags+0x84/0x1f4) r3:c02e13d8 r2:c02dceaa [] (check_flags) from [] (lock_acquire+0x4c/0xbc) r5:00000000 r4:60000193 [] (lock_acquire) from [] (_raw_spin_lock+0x34/0x44) r9:000a8d5c r8:00000001 r7:c7806000 r6:c780f460 r5:c03b06a0 r4:c780f460 [] (_raw_spin_lock) from [] (handle_fasteoi_irq+0x20/0x11c) r4:c780f400 [] (handle_fasteoi_irq) from [] (generic_handle_irq+0x28/0x38) r6:00000000 r5:c03b038c r4:00000012 r3:c005a8ac [] (generic_handle_irq) from [] (__handle_domain_irq+0x88/0xa8) r4:00000000 r3:00000026 [] (__handle_domain_irq) from [] (gic_handle_irq+0x40/0x58) r8:10c5347d r7:10c5347d r6:c35b1fb0 r5:c03a6304 r4:c8802000 r3:c35b1fb0 [] (gic_handle_irq) from [] (__irq_usr+0x48/0x60) Exception stack(0xc35b1fb0 to 0xc35b1ff8) 1fa0: 00000061 00000000 000ab736 00000066 1fc0: 00000061 000aa1f0 000a8d54 000a8d54 000a8d88 000a8d5c 000a8cc8 000a8d68 1fe0: 72727272 bef8a528 000398c0 00031334 20000010 ffffffff r6:ffffffff r5:20000010 r4:00031334 r3:00000061 ---[ end trace cb88537fdc8fa202 ]--- possible reason: unannotated irqs-off. irq event stamp: 769 hardirqs last enabled at (769): [] ret_fast_syscall+0x2c/0x54 hardirqs last disabled at (768): [] ret_fast_syscall+0xc/0x54 softirqs last enabled at (0): [] copy_process.part.65+0x2e8/0x11dc softirqs last disabled at (0): [< (null)>] (null) His kernel configuration had: CONFIG_PROVE_LOCKING=y CONFIG_TRACE_IRQFLAGS=y but no IRQSOFF_TRACER, which means entry from userspace can result in the kernel seeing IRQs off without being notified of that change of state. Change the IRQSOFF ifdef in the usr_entry macro to TRACE_IRQFLAGS instead. Tested-by: Wolfram Sang Signed-off-by: Russell King arch/arm/kernel/entry-armv.S | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f9058929f2acbb273ec83104ebeeab0593595e15 Author: Hanjun Guo Date: Fri Jul 3 15:29:06 2015 +0800 ARM64 / SMP: Switch pr_err() to pr_debug() for disabled GICC entry It is normal that firmware presents GICC entry or entries (processors) with disabled flag in ACPI MADT, taking a system of 16 cpus for example, ACPI firmware may present 8 ebabled first with another 8 cpus disabled in MADT, the disabled cpus can be hot-added later. Firmware may also present more cpus than the hardware actually has, but disabled the unused ones, and easily enable it when the hardware has such cpus to make the firmware code scalable. So that's not an error for disabled cpus in MADT, we can switch pr_err() to pr_debug() to make the boot a little quieter by default. Since hwid for disabled cpus often are invalid, and we check invalid hwid first in the code, for use case that hot add cpus later will be filtered out and will not be counted in possible cups, so move this check before the hwid one to prepare the code to count for disabeld cpus when cpu hot-plug is introduced. Signed-off-by: Hanjun Guo Reviewed-by: Al Stone Signed-off-by: Catalin Marinas arch/arm64/kernel/smp.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 13ee9fdba96577eb1583dcd7b15767ef623fae12 Author: Szabolcs Nagy Date: Wed Jul 1 23:08:10 2015 +0100 ARM: 8397/1: fix vdsomunge not to depend on glibc specific error.h If the host toolchain is not glibc based then the arm kernel build fails with arch/arm/vdso/vdsomunge.c:53:19: fatal error: error.h: No such file or directory error.h is a glibc only header (ie not available in musl, newlib and bsd libcs). Changed the error reporting to standard conforming code to avoid depending on specific C implementations. Signed-off-by: Szabolcs Nagy Acked-by: Will Deacon Fixes: 8512287a8165 ("ARM: 8330/1: add VDSO user-space code") Cc: stable@vger.kernel.org Signed-off-by: Nathan Lynch Signed-off-by: Russell King arch/arm/vdso/vdsomunge.c | 56 ++++++++++++++++++++++++++++------------------- 1 file changed, 33 insertions(+), 23 deletions(-) commit 9bdc771f2c29a11920f477fba05a58e23ee42554 Merge: 7df9ab8 ea7d521 Author: Linus Torvalds Date: Thu Jul 2 17:11:28 2015 -0700 Merge tag 'acpica-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm Pull ACPICA updates from Rafael Wysocki: "Additional ACPICA material for v4.2-rc1 This will update the ACPICA code in the kernel to upstream revision 20150619 (a bug-fix release mostly including stable-candidate fixes) and restore an earlier ACPICA commit that had to be reverted due to a regression introduced by it (the regression is addressed by blacklisting the only known system affected by it to date). The only new feature added by this update is the support for overriding objects in the ACPI namespace and a new ACPI table that can be used for that called the Override System Definition Table (OSDT). That should allow us to "patch" the ACPI namespace built from incomplete or incorrect ACPI System Definition tables (DSDT, SSDT) during system startup without the need to provide replacements for all of those tables in the future. Specifics: - Fix system resume problems related to 32-bit and 64-bit versions of the Firmware ACPI Control Structure (FACS) in the firmare (Lv Zheng) - Fix double initialization of the FACS (Lv Zheng) - Add _CLS object processing code to ACPICA (Suravee Suthikulpanit) - Add support for the (currently missing) new GIC version field in the Multiple APIC Description Table (MADT) (Hanjun Guo) - Add support for overriding objects in the ACPI namespace to ACPICA and OSDT support (Lv Zheng, Bob Moore, Zhang Rui) - Updates related to the TCPA and TPM2 ACPI tables (Bob Moore) - Restore the commit modifying _REV to always return "2" (as required by ACPI 6) and add a blacklisting mechanism for systems that may be affected by that change (Rafael J Wysocki) - Assorted fixes and cleanups (Bob Moore, Lv Zheng, Sascha Wildner)" * tag 'acpica-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (28 commits) Revert 'Revert "ACPICA: Permanently set _REV to the value '2'."' ACPI / init: Make it possible to override _REV ACPICA: Update version to 20150619 ACPICA: Comment update, no functional change ACPICA: Update TPM2 ACPI table ACPICA: Update definitions for the TCPA and TPM2 ACPI tables ACPICA: Split C library prototypes to new header ACPICA: De-macroize calls to standard C library functions ACPI / acpidump: Update acpidump manual ACPICA: acpidump: Convert the default behavior to dump from /sys/firmware/acpi/tables ACPICA: acpidump: Allow customized tables to be dumped without accessing /dev/mem ACPICA: Cleanup output for the ASL Debug object ACPICA: Update for acpi_install_table memory types ACPICA: Namespace: Change namespace override to avoid node deletion ACPICA: Namespace: Add support of OSDT table ACPICA: Namespace: Add support to allow overriding objects ACPICA: ACPI 6.0: Add values for MADT GIC version field ACPICA: Utilities: Add _CLS processing ACPICA: Add dragon_fly support to unix file mapping file ACPICA: EFI: Add EFI interface definitions to eliminate dependency of GNU EFI ... commit 7df9ab845ce5f473c84184873bf5be08bbe8fda5 Author: Linus Torvalds Date: Thu Jul 2 16:42:13 2015 -0700 make certificate list change message more useful It's a bug in our Makefile rules, make it show what the changing certificate list was, and make it a warning so that people actually see it. Signed-off-by: Linus Torvalds kernel/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ea7d521569a70418aa9f6309a1d1916709818b62 Author: Rafael J. Wysocki Date: Wed Jul 1 23:24:05 2015 +0200 Revert 'Revert "ACPICA: Permanently set _REV to the value '2'."' Revert commit ff284f37fc0e (Revert "ACPICA: Permanently set _REV to the value '2'.) as the regression introduced by commit b1ef29725865 reverted by it is now addressed via a blacklist entry. Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/utglobal.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) commit 18d78b64fddc11eb336f01e46ad3303a3f55d039 Author: Rafael J. Wysocki Date: Fri Jul 3 01:06:00 2015 +0200 ACPI / init: Make it possible to override _REV The platform firmware on some systems expects Linux to return "5" as the supported ACPI revision which makes it expose system configuration information in a special way. For example, based on what ACPI exports as the supported revision, Dell XPS 13 (2015) configures its audio device to either work in HDA mode or in I2S mode, where the former is supposed to be used on Linux until the latter is fully supported (in the kernel as well as in user space). Since ACPI 6 mandates that _REV should return "2" if ACPI 2 or later is supported by the OS, a subsequent change will make that happen, so make it possible to override that on systems where "5" is expected to be returned for Linux to work correctly one them (such as the Dell machine mentioned above). Original-by: Dominik Brodowski Signed-off-by: Rafael J. Wysocki Documentation/kernel-parameters.txt | 6 ++++++ drivers/acpi/Kconfig | 20 ++++++++++++++++++++ drivers/acpi/blacklist.c | 26 ++++++++++++++++++++++++++ drivers/acpi/internal.h | 1 + drivers/acpi/osl.c | 18 ++++++++++++++++++ 5 files changed, 71 insertions(+) commit e965b8ce4215ac2b22b23ffc8a8dfbae964b9496 Merge: a95cb3c 50ab9a6 Author: Linus Torvalds Date: Thu Jul 2 14:58:12 2015 -0700 Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild Pull kbuild updates from Michal Marek: "Just a few kbuild core commits this time: - kallsyms fix for CONFIG_XIP_KERNEL - bashisms in scripts/link-vmlinux.sh fixed - workaround to make DEBUG_INFO_REDUCED more useful yet still space efficient - clang is not wrongly detected when cross-compiling" * 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild: kbuild: include core debug info when DEBUG_INFO_REDUCED scripts: link-vmlinux: Don't pass page offset to kallsyms if XIP Kernel scripts: fix link-vmlinux.sh bash-ism Makefile: Fix detection of clang when cross-compiling commit a95cb3cd55c208372ca68d5e8a9923611fed7235 Merge: 19127af 4a47f1e Author: Linus Torvalds Date: Thu Jul 2 14:53:01 2015 -0700 Merge branch 'kconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild Pull kconfig updates from Michal Marek: - kconfig conditions can use usual less/greater than comparisons - kconfig warns about stray characters in Kconfig files - bogus expression simplification removed - some minor fixes * 'kconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild: kconfig: re-generate *.c_shipped files after previous change kconfig: allow use of relations other than (in)equality kconfig: don't silently ignore unhandled characters kconfig: Wrap long "make help" text lines scripts/kconfig/Makefile: Cosmetic fixes scripts/kconfig/Makefile: Fix spelling of Qt Kconfig: Remove bad inference rules expr_eliminate_dups2() commit 19127af9d81f0fcecc3e54fab64b7a7f2f91a92b Merge: 799b63a 347d7e4 Author: Linus Torvalds Date: Thu Jul 2 14:48:26 2015 -0700 Merge tag 'hwmon-for-linus-v4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging Pull hwmon fixes from Guenter Roeck: "Two patches headed for stable: - Fix broken output scaling in mcp3021 driver - Fix attribute visibility in nct7802 driver One regression: - Fix name attribute in dell-smm-hwmon driver" * tag 'hwmon-for-linus-v4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: hwmon: (mcp3021) Fix broken output scaling hwmon: (nct7802) fix visibility of temp3 hwmon: (dell-smm-hwmon) Use a valid name attribute commit 799b63a4b058c6a48dc6805daad81ba66002c48c Merge: d4113f2 43c518d Author: Linus Torvalds Date: Thu Jul 2 14:46:15 2015 -0700 Merge tag 'please-pull-put_kernel_page' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux Pull ia64 boot noise reduction fix from Tony Luck: "Remove some boot noise from a now-invalid check that pages are reserved" * tag 'please-pull-put_kernel_page' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux: [IA64] Drop debug test/printk that some special pages are marked reserved commit d4113f2f174aea83f0871cf5d050e0e08dfb9781 Merge: 8480772 ae41a0b Author: Linus Torvalds Date: Thu Jul 2 14:40:49 2015 -0700 Merge tag 'armsoc-late' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Pull ARM SoC late fixes and dependencies 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. Other than the fixes, the primary feature being added is the conversion of some OMAP drivers to the new generic wakeirq interface" * tag 'armsoc-late' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: ARM: multi_v7_defconfig: Enable BRCMNAND driver ARM: BCM: Do not select CONFIG_MTD_NAND_BRCMNAND ARM: at91/dt: update udc compatible strings ARM: at91/dt: trivial: fix USB udc compatible string arm64: dts: Add APM X-Gene standby GPIO controller DTS entries soc: qcom: spm: Fix idle on THUMB2 kernels ARM: dove: fix legacy dove IRQ numbers ARM: mvebu: fix suspend to RAM on big-endian configurations ARM: mvebu: adjust Armada XP DT spi muxing after pinctrl function rename serial: 8250_omap: Move wake-up interrupt to generic wakeirq serial: omap: Switch wake-up interrupt to generic wakeirq mmc: omap_hsmmc: Change wake-up interrupt to use generic wakeirq commit 848077270ddc128d5f01ea0821295d22a39ea5b6 Merge: c021bf1 479e9a9 Author: Linus Torvalds Date: Thu Jul 2 14:38:15 2015 -0700 Merge branch 'drm-next-4.2' of git://people.freedesktop.org/~agd5f/linux Pull radeon and amdgpu fixes from Alex Deucher: "First round of fixes for 4.2 for radeon and amdgpu. Stuff all over the place: - hibernation, suspend fixes for radeon and amdgpu - radeon audio fix - amdgpu ioctl optimzations and fixes - amdgpu VCE cs checker improvements - misc bug fixes" [ Dave on vacation, pulling directly ] * 'drm-next-4.2' of git://people.freedesktop.org/~agd5f/linux: (30 commits) drm/radeon: only check the sink type on DP connectors drm/amdgpu: add flag to delay VM updates drm/amdgpu: add optional dependencies to the CS IOCTL v2 drm/amdgpu: recreate fence from user seq gpu/drm/amdgpu: Fix build when CONFIG_DEBUG_FS is not set Revert "drm/radeon: dont switch vt on suspend" drm/amdgpu: disable enable_nb_ps_policy temporarily drm/amdgpu: correct define SMU_EnabledFeatureScoreboard_SclkDpmOn drm/amdgpu: allocate ip_block_enabled memory in common code drm/amdgpu: remove unnecessary check before kfree drm/amdgpu: use kzalloc for allocating one thing drm/radeon: fix adding all VAs to the freed list on remove v2 drm/amdgpu: add chunk id validity check drm/amdgpu: fix crash on invalid CS IOCTL drm/amdgpu: reset wptr at cp compute resume (v2) drm/amdgpu: check VCE feedback and bitstream index drm/amdgpu: make VCE handle check more strict drm/amdgpu: check VCE relocation buffer range drm/amdgpu: silence invalid error message drm/amdgpu: fix wrong type ... commit c021bf1e52d9bf6e3d432b2b4eb6396796d4a16d Merge: 0c76c6b ee46f3c7 Author: Linus Torvalds Date: Thu Jul 2 14:36:40 2015 -0700 Merge tag 'drm-intel-next-fixes-2015-07-02' of git://anongit.freedesktop.org/drm-intel Pull intel drm fixes from Jani Nikula: "Almost all of it is regression fixes all around, with cc: stable, and then there's Ander's fix for one of the warnings you reported. We're still working on the rest" [ Dave is on vacation, and Jani is heading out on vacation too ] * tag 'drm-intel-next-fixes-2015-07-02' of git://anongit.freedesktop.org/drm-intel: drm/i915: Clear pipe's pll hw state in hsw_dp_set_ddi_pll_sel() drm/i915: fix backlight after resume on 855gm agp/intel: Fix typo in needs_ilk_vtd_wa() drm/i915/ppgtt: Break loop in gen8_ppgtt_clear_range failure path drm/i915: Fix IPS related flicker commit 43c518d197e7758bc64e0485050de347797faab6 Author: Tony Luck Date: Thu Jul 2 12:12:53 2015 -0700 [IA64] Drop debug test/printk that some special pages are marked reserved In commit 92923ca3aace "mm: meminit: only set page reserved in the memblock region" we dropped setting the reserved bits for all pages. This results in some warnings on ia64: put_kernel_page: page at 0xe000000005588000 not in reserved memory put_kernel_page: page at 0xe000000005588000 not in reserved memory put_kernel_page: page at 0xe000000005580000 not in reserved memory put_kernel_page: page at 0xe000000005580000 not in reserved memory put_kernel_page: page at 0xe000000005580000 not in reserved memory put_kernel_page: page at 0xe000000005580000 not in reserved memory the two different pages match up with two objects from the loaded kernel that get mapped by arch/ia64/mm/init.c:setup_gate() a000000101588000 D __start_gate_section a000000101580000 D empty_zero_page In a discussion with Mel Gorman: http://lkml.kernel.org/r/20150526102219.GB13750%40suse.de he suggested that while the preferred approach might be to set the reserved bit for these pages, it would also be OK to just drop the test: "as it's a debugging check that is ia-64 specific" After hunting around a bit and failin to find a good place to mark these pages as reserved - I decided to just delete the test. Signed-off-by: Tony Luck arch/ia64/mm/init.c | 4 ---- 1 file changed, 4 deletions(-) commit 91e20b5040c67c51aad88cf87db4305c5bd7f79d Author: Joel Porquet Date: Thu Jul 2 15:32:00 2015 -0400 irqchip: Move IRQCHIP_DECLARE macro to include/linux/irqchip.h At the moment the IRQCHIP_DECLARE macro is only declared locally in drivers/irqchip/irqchip.h. It prevents from using it directly in arch/* directories whenever irqchip drivers only exist there, which happens in a few cases (e.g. arc, arm, microblaze and mips). This patch makes the macro to be globally defined, i.e. in include/linux/irqchip.h, and thus usable for arch-specific declarations of irqchip drivers. In this way, it is very similar to what clocksource does (ie CLOCKSOURCE_OF_DECLARE is defined in include/linux/clocksource.h). For now, this patch only moves the declaration of the macro IRQCHIP_DECLARE to the global header 'include/linux/irqchip.h' and make 'drivers/irqchip/irqchip.h' include 'include/linux/irqchip.h'. Later, other patches will get rid of 'drivers/irqchip/irqchip.h' and modify all the impacted irqchip drivers. Signed-off-by: Joel Porquet Cc: Jason Cooper Link: http://lkml.kernel.org/r/1435865565-14114-1-git-send-email-joel@porquet.org Signed-off-by: Thomas Gleixner drivers/irqchip/irqchip.h | 19 +------------------ include/linux/irqchip.h | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 18 deletions(-) commit 462e1ead9296a8452499fb10cf3b51903ffe24ac Author: Nikolay Aleksandrov Date: Thu Jul 2 05:48:17 2015 -0700 bridge: vlan: fix usage of vlan 0 and 4095 again Vlan ids 0 and 4095 were disallowed by commit: 8adff41c3d25 ("bridge: Don't use VID 0 and 4095 in vlan filtering") but then the check was removed when vlan ranges were introduced by: bdced7ef7838 ("bridge: support for multiple vlans and vlan ranges in setlink and dellink requests") So reintroduce the vlan range check. Before patch: [root@testvm ~]# bridge vlan add vid 0 dev eth0 master (succeeds) After Patch: [root@testvm ~]# bridge vlan add vid 0 dev eth0 master RTNETLINK answers: Invalid argument Signed-off-by: Nikolay Aleksandrov Fixes: bdced7ef7838 ("bridge: support for multiple vlans and vlan ranges in setlink and dellink requests") Acked-by: Toshiaki Makita Signed-off-by: David S. Miller net/bridge/br_netlink.c | 2 ++ 1 file changed, 2 insertions(+) commit c4555d16d9d24b4a376b87817d264e16f00d08d8 Merge: 25c14ef ab944c8 Author: David S. Miller Date: Thu Jul 2 12:17:11 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-07-02 A couple of regressions crept in because of a patch to use proper list APIs rather than manually reading & writing the next/prev pointers (commit 835a6a2f8603237a3e6cded5a6765090ecb06ea5). Turns out this was masking a few bugs: a missing INIT_LIST_HEAD() call and incorrectly using list_del() rather than list_del_init(). The two patches in this set fix these, and it'd be nice they could still make it to 4.2-rc1 to avoid new bug reports from users. Please let me know if there are any issues pulling. Thanks. ==================== Signed-off-by: David S. Miller commit 25c14ef86a0d5ec9320e833685c15bc96f504864 Author: Govindarajulu Varadarajan <_govind@gmx.com> Date: Wed Jul 1 14:21:57 2015 +0530 enic: fix issues in enic_poll In enic_poll, we clean tx and rx queues, when low latency busy socket polling is happening, enic_poll will only clean tx queue. After cleaning tx, it should return total budget for re-poll. There is a small window between vnic_intr_unmask() and enic_poll_unlock_napi(). In this window if an irq occurs and napi is scheduled on different cpu, it tries to acquire enic_poll_lock_napi() and fails. Unlock napi_poll before unmasking the interrupt. v2: Do not change tx wonk done behaviour. Consider only rx work done for completing napi. Signed-off-by: Govindarajulu Varadarajan <_govind@gmx.com> Signed-off-by: David S. Miller drivers/net/ethernet/cisco/enic/enic_main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 0c76c6ba246043bbc5c0f9620a0645ae78217421 Merge: 8688d95 5a60e87 Author: Linus Torvalds Date: Thu Jul 2 11:35:00 2015 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client Pull Ceph updates from Sage Weil: "We have a pile of bug fixes from Ilya, including a few patches that sync up the CRUSH code with the latest from userspace. There is also a long series from Zheng that fixes various issues with snapshots, inline data, and directory fsync, some simplification and improvement in the cap release code, and a rework of the caching of directory contents. To top it off there are a few small fixes and cleanups from Benoit and Hong" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: (40 commits) rbd: use GFP_NOIO in rbd_obj_request_create() crush: fix a bug in tree bucket decode libceph: Fix ceph_tcp_sendpage()'s more boolean usage libceph: Remove spurious kunmap() of the zero page rbd: queue_depth map option rbd: store rbd_options in rbd_device rbd: terminate rbd_opts_tokens with Opt_err ceph: fix ceph_writepages_start() rbd: bump queue_max_segments ceph: rework dcache readdir crush: sync up with userspace crush: fix crash from invalid 'take' argument ceph: switch some GFP_NOFS memory allocation to GFP_KERNEL ceph: pre-allocate data structure that tracks caps flushing ceph: re-send flushing caps (which are revoked) in reconnect stage ceph: send TID of the oldest pending caps flush to MDS ceph: track pending caps flushing globally ceph: track pending caps flushing accurately libceph: fix wrong name "Ceph filesystem for Linux" ceph: fix directory fsync ... commit 8688d9540cc6e17df4cba71615e27f04e0378fe6 Merge: 320cd41 b4839eb Author: Linus Torvalds Date: Thu Jul 2 11:32:23 2015 -0700 Merge tag 'nfs-for-4.2-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs Pull NFS client updates from Trond Myklebust: "Highlights include: Stable patches: - Fix a crash in the NFSv4 file locking code. - Fix an fsync() regression, where we were failing to retry I/O in some circumstances. - Fix an infinite loop in NFSv4.0 OPEN stateid recovery - Fix a memory leak when an attempted pnfs fails. - Fix a memory leak in the backchannel code - Large hostnames were not supported correctly in NFSv4.1 - Fix a pNFS/flexfiles bug that was impeding error reporting on I/O. - Fix a couple of credential issues in pNFS/flexfiles Bugfixes + cleanups: - Open flag sanity checks in the NFSv4 atomic open codepath - More NFSv4 delegation related bugfixes - Various NFSv4.1 backchannel bugfixes and cleanups - Fix the NFS swap socket code - Various cleanups of the NFSv4 SETCLIENTID and EXCHANGE_ID code - Fix a UDP transport deadlock issue Features: - More RDMA client transport improvements - NFSv4.2 LAYOUTSTATS functionality for pnfs flexfiles" * tag 'nfs-for-4.2-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (87 commits) nfs: Remove invalid tk_pid from debug message nfs: Remove invalid NFS_ATTR_FATTR_V4_REFERRAL checking in nfs4_get_rootfh nfs: Drop bad comment in nfs41_walk_client_list() nfs: Remove unneeded micro checking of CONFIG_PROC_FS nfs: Don't setting FILE_CREATED flags always nfs: Use remove_proc_subtree() instead remove_proc_entry() nfs: Remove unused argument in nfs_server_set_fsinfo() nfs: Fix a memory leak when meeting an unsupported state protect nfs: take extra reference to fl->fl_file when running a LOCKU operation NFSv4: When returning a delegation, don't reclaim an incompatible open mode. NFSv4.2: LAYOUTSTATS is optional to implement NFSv4.2: Fix up a decoding error in layoutstats pNFS/flexfiles: Fix the reset of struct pgio_header when resending pNFS/flexfiles: Turn off layoutcommit for servers that don't need it pnfs/flexfiles: protect ktime manipulation with mirror lock nfs: provide pnfs_report_layoutstat when NFS42 is disabled nfs: verify open flags before allowing open nfs: always update creds in mirror, even when we have an already connected ds nfs: fix potential credential leak in ff_layout_update_mirror_cred pnfs/flexfiles: report layoutstat regularly ... commit 320cd413faefe2d30f4ee9651efddec5141bc95b Merge: a7ba4bf cdb6727 Author: Linus Torvalds Date: Thu Jul 2 11:23:00 2015 -0700 Merge branch 'overlayfs-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs Pull overlayfs updates from Miklos Szeredi: "This relaxes the requirements on the lower layer filesystem: now ones that implement .d_revalidate, such as NFS, can be used. Upper layer filesystems still has the "no .d_revalidate" requirement. Also a bad interaction with jffs2 locking has been fixed" * 'overlayfs-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs: ovl: lookup whiteouts outside iterate_dir() ovl: allow distributed fs as lower layer ovl: don't traverse automount points commit a7ba4bf5e7ff6bfe83e41c748b77b49297c1b5d9 Merge: a611fb7 0a30f61 Author: Linus Torvalds Date: Thu Jul 2 11:21:26 2015 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse Pull fuse updates from Miklos Szeredi: "This is the start of improving fuse scalability. An input queue and a processing queue is split out from the monolithic fuse connection, each of those having their own spinlock. The end of the patchset adds the ability to clone a fuse connection. This means, that instead of having to read/write requests/answers on a single fuse device fd, the fuse daemon can have multiple distinct file descriptors open. Each of those can be used to receive requests and send answers, currently the only constraint is that a request must be answered on the same fd as it was read from. This can be extended further to allow binding a device clone to a specific CPU or NUMA node. Based on a patchset by Srinivas Eeda and Ashish Samant. Thanks to Ashish for the review of this series" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse: (40 commits) fuse: update MAINTAINERS entry fuse: separate pqueue for clones fuse: introduce per-instance fuse_dev structure fuse: device fd clone fuse: abort: no fc->lock needed for request ending fuse: no fc->lock for pqueue parts fuse: no fc->lock in request_end() fuse: cleanup request_end() fuse: request_end(): do once fuse: add req flag for private list fuse: pqueue locking fuse: abort: group pqueue accesses fuse: cleanup fuse_dev_do_read() fuse: move list_del_init() from request_end() into callers fuse: duplicate ->connected in pqueue fuse: separate out processing queue fuse: simplify request_wait() fuse: no fc->lock for iqueue parts fuse: allow interrupt queuing without fc->lock fuse: iqueue locking ... commit a611fb75d0517fce65f588cde94f80bb4052c6b2 Merge: 75462c8 32e805e Author: Linus Torvalds Date: Thu Jul 2 11:07:27 2015 -0700 Merge tag 'module-misc-v4.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux Pull init.h/module.h fragility fixes from Paul Gortmaker: "Fixup various init.h misuses that are fragile wrt code moving to module.h What started as a removal of no longer required include due to the earlier __cpuinit and __devinit removal led to the observation that some module specfic support was living in init.h itself, thus preventing the full removal from introducing compile regressions. This series includes a few final fixups needed prior to the relocation of the modular init code from to . These are things that weren't easily categorized into any of the other previous series categories already requested for pull. That said, each fixup branch (including this one) is independent and there are no ordering constraints. Only the final code relocation (which is NOT in this pull) requires that all my cleanup branches be merged first" * tag 'module-misc-v4.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux: tile: add init.h to usb.c to avoid compile failure arm: fix implicit #include in entry asm. x86: replace __init_or_module with __init in non-modular vsmp_64.c commit 75462c8a87ec229e6796df5075318d824df31ead Merge: 9d90f03 77459a0 Author: Linus Torvalds Date: Thu Jul 2 10:42:13 2015 -0700 Merge tag 'module-builtin_driver-v4.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux Pull module_platform_driver replacement from Paul Gortmaker: "Replace module_platform_driver with builtin_platform driver in non modules. We see an increasing number of non-modular drivers using modular_driver() type register functions. There are several downsides to letting this continue unchecked: - The code can appear modular to a reader of the code, and they won't know if the code really is modular without checking the Makefile and Kconfig to see if compilation is governed by a bool or tristate. - Coders of drivers may be tempted to code up an __exit function that is never used, just in order to satisfy the required three args of the modular registration function. - Non-modular code ends up including the which increases CPP overhead that they don't need. - It hinders us from performing better separation of the module init code and the generic init code. So here we introduce similar macros for builtin drivers. Then we convert builtin drivers (controlled by a bool Kconfig) by making the following type of mapping: module_platform_driver() ---> builtin_platform_driver() module_platform_driver_probe() ---> builtin_platform_driver_probe(). The set of drivers that are converted here are just the ones that showed up as relying on an implicit include of during a pending header cleanup. So we convert them here vs adding an include of to non-modular code to avoid compile fails. Additonal conversions can be done asynchronously at any time. Once again, an unused module_exit function that is removed here appears in the diffstat as an outlier wrt all the other changes" * tag 'module-builtin_driver-v4.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux: drivers/clk: convert sunxi/clk-mod0.c to use builtin_platform_driver drivers/power: Convert non-modular syscon-reboot to use builtin_platform_driver drivers/soc: Convert non-modular soc-realview to use builtin_platform_driver drivers/soc: Convert non-modular tegra/pmc to use builtin_platform_driver drivers/cpufreq: Convert non-modular s5pv210-cpufreq.c to use builtin_platform_driver drivers/cpuidle: Convert non-modular drivers to use builtin_platform_driver drivers/platform: Convert non-modular pdev_bus to use builtin_platform_driver platform_device: better support builtin boilerplate avoidance commit 9d90f035310654bff86ccbccd8ccc7e0e313216d Merge: 2d44070 5b00c1e Author: Linus Torvalds Date: Thu Jul 2 10:36:29 2015 -0700 Merge tag 'module_init-alternate_initcall-v4.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux Pull module_init replacement part two from Paul Gortmaker: "Replace module_init with appropriate alternate initcall in non modules. This series converts non-modular code that is using the module_init() call to hook itself into the system to instead use one of our alternate priority initcalls. Unlike the previous series that used device_initcall and hence was a runtime no-op, these commits change to one of the alternate initcalls, because (a) we have them and (b) it seems like the right thing to do. For example, it would seem logical to use arch_initcall for arch specific setup code and fs_initcall for filesystem setup code. This does mean however, that changes in the init ordering will be taking place, and so there is a small risk that some kind of implicit init ordering issue may lie uncovered. But I think it is still better to give these ones sensible priorities than to just assign them all to device_initcall in order to exactly preserve the old ordering. Thad said, we have already made similar changes in core kernel code in commit c96d6660dc65 ("kernel: audit/fix non-modular users of module_init in core code") without any regressions reported, so this type of change isn't without precedent. It has also got the same local testing and linux-next coverage as all the other pull requests that I'm sending for this merge window have got. Once again, there is an unused module_exit function removal that shows up as an outlier upon casual inspection of the diffstat" * tag 'module_init-alternate_initcall-v4.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux: x86: perf_event_intel_pt.c: use arch_initcall to hook in enabling x86: perf_event_intel_bts.c: use arch_initcall to hook in enabling mm/page_owner.c: use late_initcall to hook in enabling lib/list_sort: use late_initcall to hook in self tests arm: use subsys_initcall in non-modular pl320 IPC code powerpc: don't use module_init for non-modular core hugetlb code powerpc: use subsys_initcall for Freescale Local Bus x86: don't use module_init for non-modular core bootflag code netfilter: don't use module_init/exit in core IPV4 code fs/notify: don't use module_init for non-modular inotify_user code mm: replace module_init usages with subsys_initcall in nommu.c commit 2d4407079c604d70809ab424f79107770e28e80d Merge: 9d86b41 b0c6d93 Author: Linus Torvalds Date: Thu Jul 2 10:30:48 2015 -0700 Merge tag 'module_init-device_initcall-v4.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux Pull module_init replacement part one from Paul Gortmaker: "Replace module_init with equivalent device_initcall in non modules. This series of commits converts non-modular code that is using the module_init() call to hook itself into the system to instead use device_initcall(). The conversion is a runtime no-op, since module_init actually becomes __initcall in the non-modular case, and that in turn gets mapped onto device_initcall. A couple files show a larger negative diffstat, representing ones that had a module_exit function that we remove here vs previously relying on the linker to dispose of it. We make this conversion now, so that we can relocate module_init from init.h into module.h in the future. The files changed here are just limited to those that would otherwise have to add module.h to obviously non-modular code, in order to avoid a compile fail, as testing has shown" * tag 'module_init-device_initcall-v4.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux: MIPS: don't use module_init in non-modular cobalt/mtd.c file drivers/leds: don't use module_init in non-modular leds-cobalt-raq.c cris: don't use module_init for non-modular core eeprom.c code tty/metag_da: Avoid module_init/module_exit in non-modular code drivers/clk: don't use module_init in clk-nomadik.c which is non-modular xtensa: don't use module_init for non-modular core network.c code sh: don't use module_init in non-modular psw.c code mn10300: don't use module_init in non-modular flash.c code parisc64: don't use module_init for non-modular core perf code parisc: don't use module_init for non-modular core pdc_cons code cris: don't use module_init for non-modular core intmem.c code ia64: don't use module_init in non-modular sim/simscsi.c code ia64: don't use module_init for non-modular core kernel/mca.c code arm: don't use module_init in non-modular mach-vexpress/spc.c code powerpc: don't use module_init in non-modular 83xx suspend code powerpc: use device_initcall for registering rtc devices x86: don't use module_init in non-modular devicetree.c code x86: don't use module_init in non-modular intel_mid_vrtc.c commit 9d86b4128cdf791a3e7c21ac1cf4564a4fca36b6 Merge: 47f9241 7cac343 Author: Linus Torvalds Date: Thu Jul 2 10:25:22 2015 -0700 Merge tag 'module-implicit-v4.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux Pull implicit module.h fixes from Paul Gortmaker: "Fix up implicit users that will break later. The files changed here are simply modular source files that are implicitly relying on being present. We fix them up now, so that we can decouple some of the module related init code from the core init code in the future. The addition of the module.h include to several files here is also a no-op from a code generation point of view, else there would already be compile issues with these files today. There may be lots more implicit includes of in tree, but these are the ones that extensive build test coverage has shown that must be fixed in order to avoid build breakage fallout for the pending module.h <---> init.h code relocation we desire to complete" * tag 'module-implicit-v4.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux: frv: add module.h to mb93090-mb00/flash.c to avoid compile fail drivers/cpufreq: include for modular exynos-cpufreq.c code drivers/staging: include for modular android tegra_ion code crypto/asymmetric_keys: pkcs7_key_type needs module.h sh: mach-highlander/psw.c is tristate and should use module.h drivers/regulator: include for modular max77802 code drivers/pcmcia: include for modular xxs1500_ss code drivers/hsi: include for modular omap_ssi code drivers/gpu: include for modular rockchip code drivers/gpio: include for modular crystalcove code drivers/clk: include for clk-max77xxx modular code commit 47f92418c7916a71c985444100bfe68aed61e247 Merge: 4da3064 22c1587 Author: Linus Torvalds Date: Thu Jul 2 09:54:14 2015 -0700 Merge tag 'cpuinit-v4.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux Pull __cpuinit removal from Paul Gortmaker: "Remove __cpuinit macros and users. We removed the __cpuinit stuff in 3.11-rc1 with commit 22f0a2736774 ("init.h: remove __cpuinit sections from the kernel") but we left some no-op stubs as a courtesy to unmerged code. Here we get rid of the stubs as well, since (as can be seen in these changes) they are enabling use cases to sneak back in, primarily from older BSP code that has been living out of tree for some time prior to getting mainlined. So we get rid of these "new" users 1st and then get rid of the stubs. Obviously, getting rid of the stubs can't happen until all the users are gone, so I had to keep this together as a series, even though some of these commits since got picked up into maintainers trees as well. The nature of this change is such that it should have zero impact on the generated runtime. This is one of several independent cleanup branches aimed at enabling better organization in the init.h and module.h code. They have been getting coverage in the linux-next tree for the last month, in addition to my local testing, which also covers approximately a half dozen or more architectures" * tag 'cpuinit-v4.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux: init: delete the __cpuinit related stubs kernel/cpu.c: remove new instance of __cpuinit that crept back in sched/core: remove __cpuinit section tag that crept back in. mips/mm/tlbex: remove new instance of __cpuinit that crept back in mips/c-r4k: remove legacy __cpuinit section that crept in mips/bcm77xx: remove legacy __cpuinit sections that crept in mips/ath25: remove legacy __cpuinit section that crept in arm/mach-hisi: remove legacy __CPUINIT section that crept in arm/mach-rockchip: remove legacy __cpuinit section that crept in arm/mach-mvebu: remove legacy __cpuinit sections that crept in arm/mach-keystone: remove legacy __cpuinit sections that crept in commit c76a024e82bdb83a0f7d57e006f8e7f8ddf983e5 Author: David Dueck Date: Fri Jun 26 15:30:22 2015 +0200 clk: at91: do not leak resources Do not leak memory and free irqs in case of an error. Acked-by: Boris Brezillon Signed-off-by: David Dueck Signed-off-by: Stephen Boyd drivers/clk/at91/clk-h32mx.c | 4 +++- drivers/clk/at91/clk-main.c | 4 +++- drivers/clk/at91/clk-master.c | 8 ++++++-- drivers/clk/at91/clk-pll.c | 8 ++++++-- drivers/clk/at91/clk-system.c | 8 ++++++-- drivers/clk/at91/clk-utmi.c | 8 ++++++-- 6 files changed, 30 insertions(+), 10 deletions(-) commit 15ab38273d21a45487116ad4c428593427954848 Author: Daniel Thompson Date: Sun Jun 28 10:55:32 2015 +0100 clk: stm32: Fix out-by-one error path in the index lookup If stm32f4_rcc_lookup() is called with primary == 0 and secondary == 192 then it will read beyond the end of the table array due to an out-by-one error in the range check. In addition to the fixing the inequality we also modify the r.h.s. to make it even more explicit that we are comparing against the size of table in bits. Reported-by: Dan Carpenter Signed-off-by: Daniel Thompson Acked-by: Maxime Coquelin Fixes: 358bdf892f6b ("clk: stm32: Add clock driver for STM32F4[23]xxx devices") Signed-off-by: Stephen Boyd drivers/clk/clk-stm32f4.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 69916d96094e1e16567c5f25515a13ed2896c730 Author: Ray Jui Date: Mon Jun 29 14:30:10 2015 -0700 clk: iproc: fix bit manipulation arithmetic A 32-bit variable should be type casted to 64-bit before arithmetic operation and assigning it to a 64-bit variable Reported-by: Dan Carpenter Signed-off-by: Ray Jui Fixes: 5fe225c105fd ("clk: iproc: add initial common clock support") Signed-off-by: Stephen Boyd drivers/clk/bcm/clk-iproc-pll.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 45a481c2176f6acca2efb6477c6018b2c3e3c60f Author: Ray Jui Date: Mon Jun 29 14:30:09 2015 -0700 clk: iproc: fix memory leak from clock name of_property_read_string_index takes array of pointers and assign them to strings read from device tree property. No additional memory allocation is needed prior to calling of_property_read_string_index. In fact, since the array of pointers will be re-assigned to other strings, any memory that it points to prior to calling of_property_read_string_index will be leaked Reported-by: Dan Carpenter Signed-off-by: Ray Jui Fixes: 5fe225c105fd ("clk: iproc: add initial common clock support") Signed-off-by: Stephen Boyd drivers/clk/bcm/clk-iproc-asiu.c | 6 +----- drivers/clk/bcm/clk-iproc-pll.c | 8 +------- 2 files changed, 2 insertions(+), 12 deletions(-) commit ea389daa7fd91f2fed8b06c01d4460e861c27023 Author: Jisheng Zhang Date: Thu Jul 2 09:33:07 2015 +0800 arm64: cpuidle: add __init section marker to arm_cpuidle_init It is not needed after booting, this patch moves the arm_cpuidle_init() function to the __init section. Signed-off-by: Jisheng Zhang Reviewed-by: Krzysztof Kozlowski Signed-off-by: Catalin Marinas arch/arm64/kernel/cpuidle.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6742b9e310bcf511b876532846e5302b07b7fedc Author: Pablo Neira Ayuso Date: Wed Jul 1 16:14:25 2015 +0200 netfilter: nfnetlink: keep going batch handling on missing modules After a fresh boot with no modules in place at all and a large rulesets, the existing nfnetlink_rcv_batch() funcion can take long time to commit the ruleset due to the many abort path. This is specifically a problem for the existing client of this code, ie. nf_tables, since it results in several synchronize_rcu() call in a row. This patch changes the policy to keep full batch processing on missing modules errors so we abort only once. Reported-by: Eric Leblond Signed-off-by: Pablo Neira Ayuso net/netfilter/nfnetlink.c | 38 +++++++++++++++++++++++++------------- 1 file changed, 25 insertions(+), 13 deletions(-) commit dd302b59bde0149c20df7278c0d36c765e66afbd Author: Florian Westphal Date: Tue Jun 30 22:27:51 2015 +0200 netfilter: bridge: don't leak skb in error paths br_nf_dev_queue_xmit must free skb in its error path. NF_DROP is misleading -- its an okfn, not a netfilter hook. Fixes: 462fb2af9788a ("bridge : Sanitize skb before it enters the IP stack") Fixes: efb6de9b4ba00 ("netfilter: bridge: forward IPv6 fragmented packets") Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso net/bridge/br_netfilter_hooks.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 3bd229976f64bea64c60803f9fc8d9f0059ba2f2 Author: Florian Westphal Date: Tue Jun 30 22:21:00 2015 +0200 netfilter: arptables: use percpu jumpstack commit 482cfc318559 ("netfilter: xtables: avoid percpu ruleset duplication") Unlike ip and ip6tables, arp tables were never converted to use the percpu jump stack. It still uses the rule blob to store return address, which isn't safe anymore since we now share this blob among all processors. Because there is no TEE support for arptables, we don't need to cope with reentrancy, so we can use loocal variable to hold stack offset. Fixes: 482cfc318559 ("netfilter: xtables: avoid percpu ruleset duplication") Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso net/ipv4/netfilter/arp_tables.c | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) commit 758dd7fdffd60507624edce34fff122a63163b3f Author: Jon Derrick Date: Tue Jun 30 11:22:52 2015 -0600 NVMe: Fix irq freeing when queue_request_irq fails Fixes an issue when queue_reuest_irq fails in nvme_setup_io_queues. This patch initializes all vectors to -1 and resets the vector to -1 in the case of a failure in queue_request_irq. This avoids the free_irq in nvme_suspend_queue if the queue did not get an irq. Signed-off-by: Jon Derrick Signed-off-by: Jens Axboe drivers/block/nvme-core.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit a20135ffbc44545596f9b99c970de097fb497bdd Author: Tejun Heo Date: Wed Jul 1 20:53:37 2015 -0400 writeback: don't drain bdi_writeback_congested on bdi destruction 52ebea749aae ("writeback: make backing_dev_info host cgroup-specific bdi_writebacks") made bdi (backing_dev_info) host per-cgroup wb's (bdi_writeback's). As the congested state needs to be per-wb and referenced from blkcg side and multiple wbs, the patch made all non-root cong's (bdi_writeback_congested's) reference counted and indexed on bdi. When a bdi is destroyed, cgwb_bdi_destroy() tries to drain all non-root cong's; however, this can hang indefinitely because wb's can also be referenced from blkcg_gq's which are destroyed after bdi destruction is complete. This patch fixes the bug by updating bdi destruction to not wait for cong's to drain. A cong is unlinked from bdi->cgwb_congested_tree on bdi destuction regardless of its reference count as the bdi may go away any point after destruction. wb_congested_put() checks whether the cong is already unlinked on release. Signed-off-by: Tejun Heo Reported-by: Jon Christopherson Link: https://bugzilla.kernel.org/show_bug.cgi?id=100681 Fixes: 52ebea749aae ("writeback: make backing_dev_info host cgroup-specific bdi_writebacks") Tested-by: Jon Christopherson Signed-off-by: Jens Axboe mm/backing-dev.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) commit a13f35e8714009145e32ebe2bf25b84e1376e314 Author: Tejun Heo Date: Thu Jul 2 08:44:34 2015 -0600 writeback: don't embed root bdi_writeback_congested in bdi_writeback 52ebea749aae ("writeback: make backing_dev_info host cgroup-specific bdi_writebacks") made bdi (backing_dev_info) host per-cgroup wb's (bdi_writeback's). As the congested state needs to be per-wb and referenced from blkcg side and multiple wbs, the patch made all non-root cong's (bdi_writeback_congested's) reference counted and indexed on bdi. When a bdi is destroyed, cgwb_bdi_destroy() tries to drain all non-root cong's; however, this can hang indefinitely because wb's can also be referenced from blkcg_gq's which are destroyed after bdi destruction is complete. To fix the bug, bdi destruction will be updated to not wait for cong's to drain, which naturally means that cong's may outlive the associated bdi. This is fine for non-root cong's but is problematic for the root cong's which are embedded in their bdi's as they may end up getting dereferenced after the containing bdi's are freed. This patch makes root cong's behave the same as non-root cong's. They are no longer embedded in their bdi's but allocated separately during bdi initialization, indexed and reference counted the same way. * As cong handling is the same for all wb's, wb->congested initialization is moved into wb_init(). * When !CONFIG_CGROUP_WRITEBACK, there was no indexing or refcnting. bdi->wb_congested is now a pointer pointing to the root cong allocated during bdi init and minimal refcnting operations are implemented. * The above makes root wb init paths diverge depending on CONFIG_CGROUP_WRITEBACK. root wb init is moved to cgwb_bdi_init(). This patch in itself shouldn't cause any consequential behavior differences but prepares for the actual fix. Signed-off-by: Tejun Heo Reported-by: Jon Christopherson Link: https://bugzilla.kernel.org/show_bug.cgi?id=100681 Tested-by: Jon Christopherson Added include to backing-dev.h for kfree() definition. Signed-off-by: Jens Axboe include/linux/backing-dev-defs.h | 5 ++- include/linux/backing-dev.h | 6 ++- mm/backing-dev.c | 87 +++++++++++++++++++++------------------- 3 files changed, 54 insertions(+), 44 deletions(-) commit ec110bc7cc48d7806c9b65094e6afb19452d458f Author: Allen Hubbe Date: Thu May 7 06:45:21 2015 -0400 NTB: Move files in preparation for NTB abstraction This patch only moves files to their new locations, before applying the next two patches adding the NTB Abstraction layer. Splitting this patch from the next is intended make distinct which code is changed only due to moving the files, versus which are substantial code changes in adding the NTB Abstraction layer. Signed-off-by: Allen Hubbe Signed-off-by: Jon Mason drivers/net/Kconfig | 4 +- drivers/net/ntb_netdev.c | 6 +- drivers/ntb/Makefile | 4 +- drivers/ntb/hw/intel/ntb_hw_intel.c | 1894 ++++++++++++++++++++++++++++++++++ drivers/ntb/hw/intel/ntb_hw_intel.h | 385 +++++++ drivers/ntb/ntb_hw.c | 1895 ----------------------------------- drivers/ntb/ntb_hw.h | 256 ----- drivers/ntb/ntb_regs.h | 177 ---- drivers/ntb/ntb_transport.c | 14 +- include/linux/ntb.h | 88 -- include/linux/ntb_transport.h | 88 ++ 11 files changed, 2381 insertions(+), 2430 deletions(-) commit a1bc1b356a9d21bf29bc7c873718b5cacdf119b4 Author: Bernhard Thaler Date: Sat Jun 20 00:17:50 2015 +0200 netfilter: bridge: fix CONFIG_NF_DEFRAG_IPV4/6 related warnings/errors br_nf_ip_fragment() is not needed when neither CONFIG_NF_DEFRAG_IPV4 nor CONFIG_NF_DEFRAG_IPV6 is set. struct brnf_frag_data must be available if either CONFIG_NF_DEFRAG_IPV4 or CONFIG_NF_DEFRAG_IPV6 is set. Fixes: efb6de9b4ba0 ("netfilter: bridge: forward IPv6 fragmented packets") Reported-by: kbuild test robot Signed-off-by: Bernhard Thaler Signed-off-by: Pablo Neira Ayuso net/bridge/br_netfilter_hooks.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit f307170d6e591a48529425b1ed6ca835790995a9 Author: Eric W. Biederman Date: Fri Jun 19 17:23:37 2015 -0500 netfilter: nf_queue: Don't recompute the hook_list head If someone sends packets from one of the netdevice ingress hooks to the a userspace queue, and then userspace later accepts the packet, the netfilter code can enter an infinite loop as the list head will never be found. Pass in the saved list_head to avoid this. Signed-off-by: "Eric W. Biederman" Signed-off-by: Pablo Neira Ayuso net/netfilter/nf_queue.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 743c16719f671c206923d23dae4ac57edfd9483c Author: Fabian Frederick Date: Tue Jul 1 20:52:50 2014 +0200 drm/omap: replace ALIGN(PAGE_SIZE) by PAGE_ALIGN use mm.h definition Cc: David Airlie Cc: Tomi Valkeinen Cc: dri-devel@lists.freedesktop.org Signed-off-by: Fabian Frederick Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_fbdev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d642d3acd89454006fd6ca9cc4dd57f26959f9d1 Author: Tomi Valkeinen Date: Fri May 8 13:32:31 2015 +0300 drm/omap: fix align_pitch() for 24 bits per pixel align_pitch() uses ALIGN() to ensure the pitch is aligned to SGX's requirement of 8 pixels. However, ALIGN() expects the alignment value to be a power of two, which is not the case for 24 bits per pixels. Use roundup() instead, which works for all alignments. This fixes the error seen with 24 bits per pixel modes: "buffer pitch (2176 bytes) is not a multiple of pixel size (3 bytes)" Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_drv.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 393a949f51994a67e8e33b2f79c6f2020959a7e2 Author: Tomi Valkeinen Date: Tue Apr 28 14:01:36 2015 +0300 drm/omap: fix omap_gem_put_paddr() error handling If tiler_unpin() call in omap_gem_put_paddr() fails, omap_gem_put_paddr() will immediately stop processing and return an error. This patch remoes that error checking, and also removes omap_gem_put_paddr()'s return value, because: * The caller of omap_gem_put_paddr() can do nothing if an error happens, so it's pointless to return an error value * If tiler_unpin() fails, the GEM object will possibly be left in an undefined state, where the DMM mapping may have been removed, but the GEM object still thinks everything is as it should be, leading to crashes later. * There's no point in returning an error from a "free" call, as the caller can do nothing about it. So it's better to clean up as much as possible. Signed-off-by: Tomi Valkeinen Acked-by: Laurent Pinchart drivers/gpu/drm/omapdrm/omap_drv.h | 2 +- drivers/gpu/drm/omapdrm/omap_gem.c | 8 +++----- 2 files changed, 4 insertions(+), 6 deletions(-) commit 9c368506c96793f17934a61a0f06412afb7d2f8d Author: Tomi Valkeinen Date: Tue Apr 28 14:01:35 2015 +0300 drm/omap: fix omap_framebuffer_unpin() error handling omap_framebuffer_unpin() check the return value of omap_gem_put_paddr() and return immediately if omap_gem_put_paddr() fails. This patch removes the check for the return value, and also removes the return value of omap_framebuffer_unpin(), because: * Nothing checks the return value of omap_framebuffer_unpin(), and even something did check it, there's nothing the caller can do to handle the error. * If a omap_gem_put_paddr() fails, the framebuffer's other planes will be left unreleased. So it's better to call omap_gem_put_paddr() for all the planes, even if one would fail. Signed-off-by: Tomi Valkeinen Acked-by: Laurent Pinchart drivers/gpu/drm/omapdrm/omap_drv.h | 2 +- drivers/gpu/drm/omapdrm/omap_fb.c | 16 ++++------------ 2 files changed, 5 insertions(+), 13 deletions(-) commit 96cbd142310cc7281f94739b27d8e4c308d588c5 Author: Tomi Valkeinen Date: Tue Apr 28 14:01:32 2015 +0300 drm/omap: increase DMM transaction timeout The DMM driver uses a timeout of 1 ms to wait for DMM transaction to finish. While DMM should always finish the operation within that time, the timeout is rather strict. Small misbehavior of the system (e.g. an irq taking too long) could trigger the timeout. As the DMM is a critical piece of code for display memory management, let's increase the timeout to 100 ms so that we are less likely to fail a memory allocation in case of system misbehaviors. 100 ms is just a guess of a reasonably large timeout. The HW should accomplish the task in less than 1 ms. Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_dmm_tiler.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c423bc85097327fba71f9a831280d09b64bb62b6 Author: Tomi Valkeinen Date: Tue Jun 16 14:54:51 2015 +0300 drm/omap: check that plane is inside crtc DRM allows planes to be partially off-screen, but DSS hardware does not. This patch adds the necessary check to reject plane configs if the plane is not fully inside the crtc. Signed-off-by: Tomi Valkeinen Acked-by: Laurent Pinchart drivers/gpu/drm/omapdrm/omap_plane.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) commit 0438ec90b17963662ef619b71c77c5c135b07014 Author: Tomi Valkeinen Date: Tue Jun 30 12:23:45 2015 +0300 OMAPDSS: fix probing if rfbi device is enabled After the commit 736e60ddc215b85e73bbf7da26e1cde84cc9500f ("OMAPDSS: componentize omapdss") the dss core device will wait until all the subdevices have been successfully probed. However, we don't have a working driver for RFBI, so if RFBI device exists, omapdss will never get probed. All the .dtsi files set RFBI as disabled, except am4372.dtsi. This causes omapdss probe to not finish on AM4 devices. This patch makes omapdss driver skip adding rfbi device as a subcomponent, solving the issue. This should be reverted when we have a working RFBI driver. Signed-off-by: Tomi Valkeinen Reported-by: Felipe Balbi drivers/video/fbdev/omap2/dss/dss.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 9c3a473220dda073603a24e93d3015322bda950a Author: Vinod Koul Date: Mon Jun 29 17:36:45 2015 +0100 ASoC: topology: fix typos in topology header Signed-off-by: Vinod Koul Signed-off-by: Mark Brown include/uapi/sound/asoc.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 7084ffbff494669b06ceb457150c38887e26d2a3 Author: Liam Girdwood Date: Mon Jun 29 17:36:43 2015 +0100 ASoC: topology: Fix TLV size calculation. TLV size calculation was incorrectly calculated. Fix this according to include/sound/tlv.h Signed-off-by: Liam Girdwood Signed-off-by: Mark Brown sound/soc/soc-topology.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) commit 864d5bb957138d1ed9641a5eff7849a56ddadc16 Author: James C Boyd Date: Wed Jul 1 15:13:26 2015 -0500 x86/asm/entry/64: Update path names The paths mentioned in this file weren't updated through some file rename commits. Fix them to refer to the correct path. Signed-off-by: James C Boyd Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: corbet@lwn.net Cc: trivial@kernel.org Link: http://lkml.kernel.org/r/1435781606-3037-1-git-send-email-jcboyd.dev@gmail.com Signed-off-by: Ingo Molnar Documentation/x86/entry_64.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit b9df84fd7c05cc300d6d14f022b8a00773ebcf8c Merge: 93472af 5ef7bbb Author: Ingo Molnar Date: Thu Jul 2 10:48:16 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 fixes from Arnaldo Carvalho de Melo: Build fixes: - Create config.detected into OUTPUT directory, fixing parallel builds sharing the same source directory (Aaro Kiskinen) - Allow to specify custom linker command, fixing some MIPS64 builds. (Aaro Kiskinen) Infrastructure fixes: - Add missing break for PERF_RECORD_ITRACE_START, which caused those events samples to be parsed as well as PERF_RECORD_LOST_SAMPLES. ITRACE_START only appears when Intel PT or BTS are present, so (Jiri Olsa) - Call the perf_session destructor when bailing out in the inject, kmem, report, kvm and mem tools (Taeung Song) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit 75a15a7864c9e281c74a1670b10b69d1d7ff1c82 Author: Aaro Koskinen Date: Wed Jul 1 13:38:52 2015 +0300 EDAC, octeon: Fix broken build due to model helper renames Commit debe6a623d3c ("MIPS: OCTEON: Update octeon-model.h code for new SoCs.") renamed some SoC model helper functions, but forgot to update the EDAC drivers resulting in build failures. Fix that. Cc: stable@vger.kernel.org # v4.0+ Signed-off-by: Aaro Koskinen Acked-by: David Daney Cc: Mauro Carvalho Chehab Cc: Ralf Baechle Cc: linux-edac Cc: linux-mips@linux-mips.org Link: http://lkml.kernel.org/r/1435747132-10954-1-git-send-email-aaro.koskinen@nokia.com Signed-off-by: Borislav Petkov drivers/edac/octeon_edac-l2c.c | 2 +- drivers/edac/octeon_edac-lmc.c | 2 +- drivers/edac/octeon_edac-pc.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit c45653c341f5c8a0ce19c8f0ad4678640849cb86 Author: Nikolay Borisov Date: Thu Jul 2 01:34:07 2015 -0400 ext4: avoid deadlocks in the writeback path by using sb_getblk_gfp Switch ext4 to using sb_getblk_gfp with GFP_NOFS added to fix possible deadlocks in the page writeback path. Signed-off-by: Nikolay Borisov Signed-off-by: Theodore Ts'o Cc: stable@vger.kernel.org fs/ext4/extents.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit bd7ade3cd9b0850264306f5c2b79024a417b6396 Author: Nikolay Borisov Date: Thu Jul 2 01:32:44 2015 -0400 bufferhead: Add _gfp version for sb_getblk() sb_getblk() is used during ext4 (and possibly other FSes) writeback paths. Sometimes such path require allocating memory and guaranteeing that such allocation won't block. Currently, however, there is no way to provide user flags for sb_getblk which could lead to deadlocks. This patch implements a sb_getblk_gfp with the only difference it can accept user-provided GFP flags. Signed-off-by: Nikolay Borisov Signed-off-by: Theodore Ts'o Cc: stable@vger.kernel.org include/linux/buffer_head.h | 7 +++++++ 1 file changed, 7 insertions(+) commit 0f0ff9a9f3fa2ec6f427603fd521d5f3a0b076d1 Author: Theodore Ts'o Date: Wed Jul 1 23:37:46 2015 -0400 ext4: fix fencepost error in lazytime optimization Commit 8f4d8558391: "ext4: fix lazytime optimization" was not a complete fix. In the case where the inode number is a multiple of 16, and we could still end up updating an inode with dirty timestamps written to the wrong inode on disk. Oops. This can be easily reproduced by using generic/005 with a file system with metadata_csum and lazytime enabled. Signed-off-by: Theodore Ts'o Cc: stable@vger.kernel.org fs/ext4/inode.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 4da3064d1775810f10f7ddc1c34c3f1ff502a654 Merge: 93899e3 48a9b73 Author: Linus Torvalds Date: Wed Jul 1 19:40:18 2015 -0700 Merge tag 'devicetree-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/glikely/linux Pull devicetree updates from Grant Likely: "A whole lot of bug fixes. Nothing stands out here except the ability to enable CONFIG_OF on every architecture, and an import of a newer version of dtc" * tag 'devicetree-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/glikely/linux: (22 commits) of/irq: Rename "intc_desc" to "of_intc_desc" to fix OF on sh of/irq: Fix pSeries boot failure Documentation: DT: Fix a typo in the filename "lantiq,-pinumx.txt" of: define of_find_node_by_phandle for !CONFIG_OF of/address: use atomic allocation in pci_register_io_range() of: Add vendor prefix for Zodiac Inflight Innovations dt/fdt: add empty versions of early_init_dt_*_memory_arch of: clean-up unnecessary libfdt include paths of: make unittest select OF_EARLY_FLATTREE instead of depend on it of: make CONFIG_OF user selectable MIPS: prepare for user enabling of CONFIG_OF of/fdt: fix argument name and add comments of unflatten_dt_node() of: return NUMA_NO_NODE from fallback of_node_to_nid() tps6507x.txt: Remove executable permission of/overlay: Grammar s/an negative/a negative/ of/fdt: Make fdt blob input parameters of unflatten functions const of: add helper function to retrive match data of: Grammar s/property exist/property exists/ of: Move OF flags to be visible even when !CONFIG_OF scripts/dtc: Update to upstream version 9d3649bd3be245c9 ... commit 93899e39e86bfc021a190a9c26e8e516561f2756 Merge: 5f1201d b2102eb Author: Linus Torvalds Date: Wed Jul 1 19:33:16 2015 -0700 Merge git://www.linux-watchdog.org/linux-watchdog Pull watchdog updates from Wim Van Sebroeck: "This contains: - new driver for ST's LPC Watchdog - new driver for Conexant Digicolor CX92755 SoC - new driver for DA9062 watchdog - Addition of the watchdog registration deferral mechanism - several improvements on omap_wdt - several improvements and reboot-support for imgpdc_wdt - max63xx_wdt improvements - imx2_wdt improvements - dw_wdt improvements - and other small improvements and fixes" * git://www.linux-watchdog.org/linux-watchdog: (37 commits) watchdog: omap_wdt: early_enable module parameter watchdog: gpio_wdt: Add option for early registration watchdog: watchdog_core: Add watchdog registration deferral mechanism watchdog: max63xx: dynamically allocate device watchdog: imx2_wdt: Disable previously acquired clock on error path watchdog: imx2_wdt: Check for clk_prepare_enable() error watchdog: hpwdt: Add support for WDIOC_SETOPTIONS watchdog: docs: omap_wdt also understands nowayout watchdog: omap_wdt: implement get_timeleft watchdog: da9062: DA9062 watchdog driver watchdog: imx2_wdt: set watchdog parent device watchdog: mena21_wdt: Fix possible NULL pointer dereference watchdog: dw_wdt: keepalive the watchdog at write time watchdog: dw_wdt: No need for a spinlock watchdog: imx2_wdt: also set wdog->timeout to new_timeout watchdog: Allow compile test of GPIO consumers if !GPIOLIB watchdog: cadence: Add dependency on HAS_IOMEM watchdog: max63xx_wdt: Constify platform_device_id watchdog: MAX63XX_WATCHDOG does not depend on ARM watchdog: imgpdc: Add some documentation about the timeout ... commit 5f1201d515819e7cfaaac3f0a30ff7b556261386 Merge: 13d45f7 358bdf8 Author: Linus Torvalds Date: Wed Jul 1 19:22:00 2015 -0700 Merge tag 'clk-for-linus-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux Pull clock framework updates from Michael Turquette: "The changes to the common clock framework for 4.2 are dominated by new drivers and updates to existing ones, as usual. There are some fixes to the framework itself and several cleanups for sparse warnings, etc" * tag 'clk-for-linus-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: (135 commits) clk: stm32: Add clock driver for STM32F4[23]xxx devices dt-bindings: Document the STM32F4 clock bindings cpufreq: exynos: remove Exynos4210 specific cpufreq driver support ARM: Exynos: switch to using generic cpufreq driver for Exynos4210 clk: samsung: exynos4: add cpu clock configuration data and instantiate cpu clock clk: samsung: add infrastructure to register cpu clocks clk: add CLK_RECALC_NEW_RATES clock flag for Exynos cpu clock support doc: dt: add documentation for lpc1850-ccu clk driver clk: add lpc18xx ccu clk driver doc: dt: add documentation for lpc1850-cgu clk driver clk: add lpc18xx cgu clk driver clk: keystone: add support for post divider register for main pll clk: mvebu: flag the crypto clk as CLK_IGNORE_UNUSED clk: cygnus: remove Cygnus dummy clock binding clk: cygnus: add clock support for Broadcom Cygnus clk: Change bcm clocks build dependency clk: iproc: add initial common clock support clk: iproc: define Broadcom iProc clock binding MAINTAINERS: update email for Michael Turquette clk: meson: add some error handling in meson_clk_register_cpu() ... commit 13d45f79a2af84de9083310db58b309a61065208 Merge: 05fde26 b678932 Author: Linus Torvalds Date: Wed Jul 1 19:09:11 2015 -0700 Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds Pull LED subsystem updates from Bryan Wu: "In this cycle, we finished to merge patches for LED Flash class driver. Other than that we have some bug fixes and new drivers for LED controllers" * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds: (33 commits) leds:lp55xx: fix firmware loading error leds: fix max77693-led build errors leds: fix aat1290 build errors leds: aat1290: pass flags parameter to devm_gpiod_get leds: ktd2692: pass flags parameter to devm_gpiod_get drivers/leds: don't use module_init in non-modular leds-cobalt-raq.c leds: aat1290: add support for V4L2 Flash sub-device DT: aat1290: Document handling external strobe sources leds: max77693: add support for V4L2 Flash sub-device media: Add registration helpers for V4L2 flash sub-devices v4l: async: Add a pointer to of_node to struct v4l2_subdev, match it Documentation: leds: Add description of v4l2-flash sub-device leds: add BCM6358 LED driver leds: add DT binding for BCM6358 LED controller leds: fix brightness changing when software blinking is active Documentation: leds-lp5523: describe master fader attributes leds: lp5523: add master_fader support leds: leds-gpio: Allow compile test if !GPIOLIB leds: leds-gpio: Add missing #include gpiolib: Add missing dummies for the unified device properties interface ... commit 05fde26a943a9c55d8b498d97bb49d3d207e5069 Merge: 2d01eed 5ee7041 Author: Linus Torvalds Date: Wed Jul 1 18:55:34 2015 -0700 Merge tag 'platform-drivers-x86-v4.2-1' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86 Pull x86 platform driver updates from Darren Hart: "Fairly routine update for platform-drivers-x86. Mostly fixes and cleanups, with a significant refactoring of toshiba* drivers. Includes the addition of the dell-rbtn driver. Details: asus-wmi: - fan control dell*: - add Dell airplane mode switch driver ideapad-laptop: - platform rfkill fixes, and regression fix pvpanic: - handle missing _STA correctly toshiba*: - rafactor bluetooth support - haps documentation - driver cleanup other: - Use acpi_video_unregister_backlight instead of acpi_video_unregister in serveral drivers. - Orphan msi-wmi. * tag 'platform-drivers-x86-v4.2-1' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86: (24 commits) MAINTAINERS: Orphan x86 driver msi-wmi ideapad: fix software rfkill setting dell-laptop: Use dell-rbtn instead i8042 filter when possible dell-rbtn: Export notifier for other kernel modules dell-rbtn: Dell Airplane Mode Switch driver samsung-laptop: Use acpi_video_unregister_backlight instead of acpi_video_unregister asus-wmi: Use acpi_video_unregister_backlight instead of acpi_video_unregister apple_gmux: Use acpi_video_unregister_backlight instead of acpi_video_unregister pvpanic: handle missing _STA correctly ideapad_laptop: Lenovo G50-30 fix rfkill reports wireless blocked asus-wmi: add fan control Documentation/ABI: Add file describing the sysfs entries for toshiba_haps toshiba_haps: Make use of DEVICE_ATTR_{RW, WO} macros toshiba_haps: Replace sscanf with kstrtoint toshiba_acpi: Bump driver version to 0.22 toshiba_acpi: Remove TOS_FAILURE check from some functions toshiba_acpi: Comments cleanup toshiba_acpi: Rename hci_{read, write}1 functions toshiba_acpi: Remove no longer needed hci_{read, write}2 functions toshiba_bluetooth: Change BT status message to debug ... commit 2d01eedf1d14432f4db5388a49dc5596a8c5bd02 Merge: 6ac15ba abdd4a7 Author: Linus Torvalds Date: Wed Jul 1 17:47:51 2015 -0700 Merge branch 'akpm' (patches from Andrew) Merge third patchbomb from Andrew Morton: - the rest of MM - scripts/gdb updates - ipc/ updates - lib/ updates - MAINTAINERS updates - various other misc things * emailed patches from Andrew Morton : (67 commits) genalloc: rename of_get_named_gen_pool() to of_gen_pool_get() genalloc: rename dev_get_gen_pool() to gen_pool_get() x86: opt into HAVE_COPY_THREAD_TLS, for both 32-bit and 64-bit MAINTAINERS: add zpool MAINTAINERS: BCACHE: Kent Overstreet has changed email address MAINTAINERS: move Jens Osterkamp to CREDITS MAINTAINERS: remove unused nbd.h pattern MAINTAINERS: update brcm gpio filename pattern MAINTAINERS: update brcm dts pattern MAINTAINERS: update sound soc intel patterns MAINTAINERS: remove website for paride MAINTAINERS: update Emulex ocrdma email addresses bcache: use kvfree() in various places libcxgbi: use kvfree() in cxgbi_free_big_mem() target: use kvfree() in session alloc and free IB/ehca: use kvfree() in ipz_queue_{cd}tor() drm/nouveau/gem: use kvfree() in u_free() drm: use kvfree() in drm_free_large() cxgb4: use kvfree() in t4_free_mem() cxgb3: use kvfree() in cxgb_free_mem() ... commit 9689457b5b0a2b69874c421a489d3fb50ca76b7b Author: Shilong Wang Date: Sun Apr 12 14:35:20 2015 +0800 Btrfs: fix wrong check for btrfs_force_chunk_alloc() btrfs_force_chunk_alloc() return 1 for allocation chunk successfully. This problem exists since commit c87f08ca4. With this patch, we might fix some enospc problems for balances. Signed-off-by: Wang Shilong Reviewed-by: Filipe Manana Tested-by: Filipe Manana Signed-off-by: Chris Mason fs/btrfs/relocation.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ddba1bfc2369cd0566bcfdab47599834a32d1c19 Author: Liu Bo Date: Wed Jun 17 16:59:58 2015 +0800 Btrfs: fix warning of bytes_may_use While running generic/019, dmesg got several warnings from btrfs_free_reserved_data_space(). Test generic/019 produces some disk failures so sumbit dio will get errors, in which case, btrfs_direct_IO() goes to the error handling and free bytes_may_use, but the problem is that bytes_may_use has been free'd during get_block(). This adds a runtime flag to show if we've gone through get_block(), if so, don't do the cleanup work. Signed-off-by: Liu Bo Reviewed-by: Filipe Manana Tested-by: Filipe Manana Signed-off-by: Chris Mason fs/btrfs/btrfs_inode.h | 2 ++ fs/btrfs/inode.c | 16 +++++++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) commit ad9ee2053f3f2babebc09ebc4970daa66c56c7ee Author: Liu Bo Date: Wed Jun 17 16:59:57 2015 +0800 Btrfs: fix hang when failing to submit bio of directIO The hang is uncoverd by generic/019. btrfs_endio_direct_write() skips the "finish_ordered_fn" part when it hits an error, thus those added ordered extents will never get processed, which block processes that waiting for them via btrfs_start_ordered_extent(). This fixes the above, and meanwhile finish_ordered_fn will do the space accounting work. Signed-off-by: Liu Bo Reviewed-by: Filipe Manana Tested-by: Filipe Manana Signed-off-by: Chris Mason fs/btrfs/inode.c | 3 --- 1 file changed, 3 deletions(-) commit 9c6429d96daec64f6b5b10a1c6b02c7264541ea1 Author: Filipe Manana Date: Wed Jun 10 12:55:41 2015 +0100 Btrfs: fix a comment in inode.c:evict_inode_truncate_pages() The comment was not correct about the part where it says the endio callback of the bio might have not yet been called - update it to mention that by that time the endio callback execution might still be in progress only. Signed-off-by: Filipe Manana Reviewed-by: Liu Bo Signed-off-by: Chris Mason fs/btrfs/inode.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 61de718fceb6bc028dafe4d06a1f87a9e0998303 Author: Filipe Manana Date: Wed Jul 1 12:13:10 2015 +0100 Btrfs: fix memory corruption on failure to submit bio for direct IO If we fail to submit a bio for a direct IO request, we were grabbing the corresponding ordered extent and decrementing its reference count twice, once for our lookup reference and once for the ordered tree reference. This was a problem because it caused the ordered extent to be freed without removing it from the ordered tree and any lists it might be attached to, leaving dangling pointers to the ordered extent around. Example trace with CONFIG_DEBUG_PAGEALLOC=y: [161779.858707] BUG: unable to handle kernel paging request at 0000000087654330 [161779.859983] IP: [] rb_prev+0x22/0x3b [161779.860636] PGD 34d818067 PUD 0 [161779.860636] Oops: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC (...) [161779.860636] Call Trace: [161779.860636] [] __tree_search+0xd9/0xf9 [btrfs] [161779.860636] [] tree_search+0x42/0x63 [btrfs] [161779.860636] [] ? btrfs_lookup_ordered_range+0x2d/0xa5 [btrfs] [161779.860636] [] btrfs_lookup_ordered_range+0x38/0xa5 [btrfs] [161779.860636] [] btrfs_get_blocks_direct+0x11b/0x615 [btrfs] [161779.860636] [] do_blockdev_direct_IO+0x5ff/0xb43 [161779.860636] [] ? btrfs_page_exists_in_range+0x1ad/0x1ad [btrfs] [161779.860636] [] ? btrfs_get_extent_fiemap+0x1bc/0x1bc [btrfs] [161779.860636] [] __blockdev_direct_IO+0x32/0x34 [161779.860636] [] ? btrfs_get_extent_fiemap+0x1bc/0x1bc [btrfs] [161779.860636] [] btrfs_direct_IO+0x198/0x21f [btrfs] [161779.860636] [] ? btrfs_get_extent_fiemap+0x1bc/0x1bc [btrfs] [161779.860636] [] generic_file_direct_write+0xb3/0x128 [161779.860636] [] ? btrfs_file_write_iter+0x15f/0x3e0 [btrfs] [161779.860636] [] btrfs_file_write_iter+0x201/0x3e0 [btrfs] (...) We were also not freeing the btrfs_dio_private we allocated previously, which kmemleak reported with the following trace in its sysfs file: unreferenced object 0xffff8803f553bf80 (size 96): comm "xfs_io", pid 4501, jiffies 4295039588 (age 173.936s) hex dump (first 32 bytes): 88 6c 9b f5 02 88 ff ff 00 00 00 00 00 00 00 00 .l.............. 00 00 00 00 00 00 00 00 00 00 c4 00 00 00 00 00 ................ backtrace: [] create_object+0x172/0x29a [] kmemleak_alloc+0x25/0x41 [] kmemleak_alloc_recursive.constprop.40+0x16/0x18 [] kmem_cache_alloc_trace+0xfb/0x148 [] btrfs_submit_direct+0x65/0x16a [btrfs] [] dio_bio_submit+0x62/0x8f [] do_blockdev_direct_IO+0x97e/0xb43 [] __blockdev_direct_IO+0x32/0x34 [] btrfs_direct_IO+0x198/0x21f [btrfs] [] generic_file_direct_write+0xb3/0x128 [] btrfs_file_write_iter+0x201/0x3e0 [btrfs] [] __vfs_write+0x7c/0xa5 [] vfs_write+0xa0/0xe4 [] SyS_pwrite64+0x64/0x82 [] system_call_fastpath+0x12/0x6f [] 0xffffffffffffffff For read requests we weren't doing any cleanup either (none of the work done by btrfs_endio_direct_read()), so a failure submitting a bio for a read request would leave a range in the inode's io_tree locked forever, blocking any future operations (both reads and writes) against that range. So fix this by making sure we do the same cleanup that we do for the case where the bio submission succeeds. Signed-off-by: Filipe Manana Signed-off-by: Chris Mason fs/btrfs/inode.c | 65 +++++++++++++++++++++++++++++++++++-------------- fs/btrfs/ordered-data.c | 5 ++++ 2 files changed, 52 insertions(+), 18 deletions(-) commit 1c919a5e13702caffbe2d2c7c305f9d0d2925160 Author: Mark Fasheh Date: Tue Jun 30 14:42:08 2015 -0700 btrfs: don't update mtime/ctime on deduped inodes One issue users have reported is that dedupe changes mtime on files, resulting in tools like rsync thinking that their contents have changed when in fact the data is exactly the same. We also skip the ctime update as no user-visible metadata changes here and we want dedupe to be transparent to the user. Clone still wants time changes, so we special case this in the code. This was tested with the btrfs-extent-same tool. Signed-off-by: Mark Fasheh Signed-off-by: Chris Mason fs/btrfs/ioctl.c | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) commit 0efa9f48c7e6c15e75946dd2b1c82d3d19e13545 Author: Mark Fasheh Date: Tue Jun 30 14:42:07 2015 -0700 btrfs: allow dedupe of same inode clone() supports cloning within an inode so extent-same can do the same now. This patch fixes up the locking in extent-same to know about the single-inode case. In addition to that, we add a check for overlapping ranges, which clone does not allow. Signed-off-by: Mark Fasheh Reviewed-by: David Sterba Signed-off-by: Chris Mason fs/btrfs/ioctl.c | 76 ++++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 60 insertions(+), 16 deletions(-) commit f441460202cb787c49963bcc1f54cb48c52f7512 Author: Mark Fasheh Date: Tue Jun 30 14:42:05 2015 -0700 btrfs: fix deadlock with extent-same and readpage ->readpage() does page_lock() before extent_lock(), we do the opposite in extent-same. We want to reverse the order in btrfs_extent_same() but it's not quite straightforward since the page locks are taken inside btrfs_cmp_data(). So I split btrfs_cmp_data() into 3 parts with a small context structure that is passed between them. The first, btrfs_cmp_data_prepare() gathers up the pages needed (taking page lock as required) and puts them on our context structure. At this point, we are safe to lock the extent range. Afterwards, we use btrfs_cmp_data() to do the data compare as usual and btrfs_cmp_data_free() to clean up our context. Signed-off-by: Mark Fasheh Reviewed-by: David Sterba Signed-off-by: Chris Mason fs/btrfs/ioctl.c | 148 +++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 117 insertions(+), 31 deletions(-) commit 207910ddeeda38fd54544d94f8c8ca5a9632cc25 Author: Mark Fasheh Date: Tue Jun 30 14:42:04 2015 -0700 btrfs: pass unaligned length to btrfs_cmp_data() In the case that we dedupe the tail of a file, we might expand the dedupe len out to the end of our last block. We don't want to compare data past i_size however, so pass the original length to btrfs_cmp_data(). Signed-off-by: Mark Fasheh Reviewed-by: David Sterba Signed-off-by: Chris Mason fs/btrfs/ioctl.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit a89ca6f24ffe435edad57de02eaabd37a2c6bff6 Author: Filipe Manana Date: Thu Jun 25 04:17:46 2015 +0100 Btrfs: fix fsync after truncate when no_holes feature is enabled When we have the no_holes feature enabled, if a we truncate a file to a smaller size, truncate it again but to a size greater than or equals to its original size and fsync it, the log tree will not have any information about the hole covering the range [truncate_1_offset, new_file_size[. Which means if the fsync log is replayed, the file will remain with the state it had before both truncate operations. Without the no_holes feature this does not happen, since when the inode is logged (full sync flag is set) it will find in the fs/subvol tree a leaf with a generation matching the current transaction id that has an explicit extent item representing the hole. Fix this by adding an explicit extent item representing a hole between the last extent and the inode's i_size if we are doing a full sync. The issue is easy to reproduce with the following test case for fstests: . ./common/rc . ./common/filter . ./common/dmflakey _need_to_be_root _supported_fs generic _supported_os Linux _require_scratch _require_dm_flakey # This test was motivated by an issue found in btrfs when the btrfs # no-holes feature is enabled (introduced in kernel 3.14). So enable # the feature if the fs being tested is btrfs. if [ $FSTYP == "btrfs" ]; then _require_btrfs_fs_feature "no_holes" _require_btrfs_mkfs_feature "no-holes" MKFS_OPTIONS="$MKFS_OPTIONS -O no-holes" fi rm -f $seqres.full _scratch_mkfs >>$seqres.full 2>&1 _init_flakey _mount_flakey # Create our test files and make sure everything is durably persisted. $XFS_IO_PROG -f -c "pwrite -S 0xaa 0 64K" \ -c "pwrite -S 0xbb 64K 61K" \ $SCRATCH_MNT/foo | _filter_xfs_io $XFS_IO_PROG -f -c "pwrite -S 0xee 0 64K" \ -c "pwrite -S 0xff 64K 61K" \ $SCRATCH_MNT/bar | _filter_xfs_io sync # Now truncate our file foo to a smaller size (64Kb) and then truncate # it to the size it had before the shrinking truncate (125Kb). Then # fsync our file. If a power failure happens after the fsync, we expect # our file to have a size of 125Kb, with the first 64Kb of data having # the value 0xaa and the second 61Kb of data having the value 0x00. $XFS_IO_PROG -c "truncate 64K" \ -c "truncate 125K" \ -c "fsync" \ $SCRATCH_MNT/foo # Do something similar to our file bar, but the first truncation sets # the file size to 0 and the second truncation expands the size to the # double of what it was initially. $XFS_IO_PROG -c "truncate 0" \ -c "truncate 253K" \ -c "fsync" \ $SCRATCH_MNT/bar _load_flakey_table $FLAKEY_DROP_WRITES _unmount_flakey # Allow writes again, mount to trigger log replay and validate file # contents. _load_flakey_table $FLAKEY_ALLOW_WRITES _mount_flakey # We expect foo to have a size of 125Kb, the first 64Kb of data all # having the value 0xaa and the remaining 61Kb to be a hole (all bytes # with value 0x00). echo "File foo content after log replay:" od -t x1 $SCRATCH_MNT/foo # We expect bar to have a size of 253Kb and no extents (any byte read # from bar has the value 0x00). echo "File bar content after log replay:" od -t x1 $SCRATCH_MNT/bar status=0 exit The expected file contents in the golden output are: File foo content after log replay: 0000000 aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa * 0200000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 * 0372000 File bar content after log replay: 0000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 * 0772000 Without this fix, their contents are: File foo content after log replay: 0000000 aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa * 0200000 bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb * 0372000 File bar content after log replay: 0000000 ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee ee * 0200000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff * 0372000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 * 0772000 A test case submission for fstests follows soon. Signed-off-by: Filipe Manana Reviewed-by: Liu Bo Signed-off-by: Chris Mason fs/btrfs/tree-log.c | 108 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) commit 6ac15baacb6ecd87c66209627753b96ded3b4515 Merge: d5fb821 65f2606 Author: Linus Torvalds Date: Wed Jul 1 15:44:18 2015 -0700 Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull timer fixes from Thomas Gleixner: "This contains: - a build regression fix introduced by the timeconst move - a hotplug regression fix introduced by the timer wheel diet - a cpu hotplug bug fix for the exynos clocksource driver" * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: time: Remove development rules from Kbuild/Makefile timer: Fix hotplug regression clocksource: exynos_mct: Avoid blocking calls in the cpu hotplug notifier commit d5fb82137b6cd39e67c4321f4f5ce9b03d4d04e6 Merge: 8fff775 93b6eb7 Author: Linus Torvalds Date: Wed Jul 1 15:19:35 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: "This contains: - a series of fixes for interrupt drivers to prevent a potential race when installing a chained interrupt handler - a fix for cpumask pointer misuse - a fix for using the wrong interrupt number from struct irq_data - removal of unused code and outdated comments - a few new helper functions which allow us to cleanup the interrupt handling code further in 4.3 I decided against doing the cleanup at the end of this merge window and rather do the preparatory steps for 4.3, so we can run the final ABI change at the end of the 4.3 merge window with less risk" * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (26 commits) ARM/LPC32xx: Use irq not hwirq for __irq_set_handler_locked() genirq: Implement irq_set_handler_locked()/irq_set_chip_handler_name_locked() genirq: Introduce helper irq_desc_get_irq() genirq: Remove irq_node() genirq: Clean up outdated comments related to include/linux/irqdesc.h mn10300: Fix incorrect use of irq_data->affinity MIPS/ralink: Fix race in installing chained IRQ handler MIPS/pci: Fix race in installing chained IRQ handler MIPS/ath25: Fix race in installing chained IRQ handler MIPS/ath25: Fix race in installing chained IRQ handler m68k/psc: Fix race in installing chained IRQ handler avr32/at32ap: Fix race in installing chained IRQ handler sh/intc: Fix race in installing chained IRQ handler sh/intc: Fix potential race in installing chained IRQ handler pinctrl/sun4i: Fix race in installing chained IRQ handler pinctrl/samsung: Fix race in installing chained IRQ handler pinctrl/samsung: Fix race in installing chained IRQ handler pinctrl/exynos: Fix race in installing chained IRQ handler pinctrl/st: Fix race in installing chained IRQ handler pinctrl/adi2: Fix race in installing chained IRQ handler ... commit 8fff77551a9215a725650263e30fa105acca95ab Merge: 47ebed9 0fbafd0 Author: Linus Torvalds Date: Wed Jul 1 15:12:50 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 aesni setkey error and removes a couple of unnecessary NULL checks in the Intel qat driver" * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: crypto: aesni - fix failing setkey for rfc4106-gcm-aesni crypto: qat - Deletion of unnecessary checks before two function calls commit 47ebed96ff4ff0d9c39d0fea74ade65dbf9cc41c Merge: 44b061f b922622 Author: Linus Torvalds Date: Wed Jul 1 14:58:07 2015 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Pull networking fixes from David Miller: 1) mlx4 driver bug fixes (TX queue wakeups, csum complete indications) from Ido Shamay, Eran Ben Elisha, and Or Gerlitz. 2) Missing unlock in error path of PTP support in renesas driver, from Dan Carpenter. 3) Add Vitesse 8641 phy IDs to vitesse PHY driver, from Shaohui Xie. 4) Bnx2x driver bug fixes (linearization of encap packets, scratchpad parity error notifications, flow-control and speed settings) from Yuval Mintz, Manish Chopra, Shahed Shaikh, and Ariel Elior. 5) ipv6 extension header parsing in the igb chip has a HW errata, disable it. Frm Todd Fujinaka. 6) Fix PCI link state locking issue in e1000e driver, from Yanir Lubetkin. 7) Cure panics during MTU change in i40e, from Mitch Williams. 8) Don't leak promisc refs in DSA slave driver, from Gilad Ben-Yossef. 9) Add missing HAS_DMA dep to VIA Rhine driver, from Geery Uytterhoeven. 10) Make sure DMA map/unmap calls are symmetric in bnx2x driver, from Michal Schmidt. 11) Workaround for MDIO access problems in bcm7xxx devices, from FLorian Fainelli. 12) Fix races in SCTP protocol between OTTB responses and route removals, from Alexander Sverdlin. 13) Fix jumbo frame checksum issue with some mvneta devices, from Simon Guinot. * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (58 commits) sock_diag: don't broadcast kernel sockets net: mvneta: disable IP checksum with jumbo frames for Armada 370 ARM: mvebu: update Ethernet compatible string for Armada XP net: mvneta: introduce compatible string "marvell, armada-xp-neta" api: fix compatibility of linux/in.h with netinet/in.h net: icplus: fix typo in constant name sis900: Trivial: Fix typos in enums stmmac: Trivial: fix typo in constant name sctp: Fix race between OOTB responce and route removal net-Liquidio: Delete unnecessary checks before the function call "vfree" vmxnet3: Bump up driver version number amd-xgbe: Add the __GFP_NOWARN flag to Rx buffer allocation net: phy: mdio-bcm-unimac: workaround initial read failures for integrated PHYs net: bcmgenet: workaround initial read failures for integrated PHYs net: phy: bcm7xxx: workaround MDIO management controller initial read bnx2x: fix DMA API usage net: via: VIA_RHINE and VIA_VELOCITY should depend on HAS_DMA net/phy: tune get_phy_c45_ids to support more c45 phy bnx2x: fix lockdep splat net: fec: don't access RACC register when not available ... commit 44b061f77f70e21031444e3611dfddbb80b4defc Merge: f822dcc 7a5a566 Author: Linus Torvalds Date: Wed Jul 1 14:44:22 2015 -0700 Merge tag 'iommu-fixes-v4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu Pul IOMMU fixes from Joerg Roedel: "Four fixes have queued up to fix regressions introduced after v4.1: - Don't fail IOMMU driver initialization when the add_device call-back returns -ENODEV, as that just means that the device is not translated by the IOMMU. This is pretty common on ARM. - Two fixes for the ARM-SMMU driver for a wrong feature check and to remove a redundant NULL check. - A fix for the AMD IOMMU driver to fix a boot panic on systems where the BIOS requests Unity Mappings in the IVRS table" * tag 'iommu-fixes-v4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: iommu/amd: Introduce protection_domain_init() function iommu/arm-smmu: Delete an unnecessary check before the function call "free_io_pgtable_ops" iommu/arm-smmu: Fix broken ATOS check iommu: Ignore -ENODEV errors from add_device call-back commit f822dcc63f966fc79b11a8254fa0942b1aa8c71e Merge: ae6f246 0755e74 Author: Linus Torvalds Date: Wed Jul 1 14:39:32 2015 -0700 Merge tag 'sound-fix-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound Pull sound fixes from Takashi Iwai: "Here are a bunch of small fixes, mostly for HD-audio quirks, in addition to a few regression fixes and trivial cleanups" * tag 'sound-fix-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: ALSA: Fix uninintialized error return ALSA: hda: Delete an unnecessary check before the function call "snd_info_free_entry" ALSA: hda - Add a fixup for Dell E7450 ALSA: hda - Fix the dock headphone output on Fujitsu Lifebook E780 ALSA: hda - Add headset support to Acer Aspire V5 ALSA: hda - restore the MIC FIXUP for some Dell machines ALSA: jack: Fix endless loop at unique index detection ALSA: hda - set proper caps for newer AMD hda audio in KB/KV ALSA: hda - Disable widget power-save for VIA codecs ALSA: hda - Fix Dock Headphone on Thinkpad X250 seen as a Line Out commit ae6f2462e59d47d396996e330b6f4183e6c9fa98 Author: Christoph Lameter Date: Tue Jun 30 09:01:11 2015 -0500 Add __init attribute to new_kmalloc_cache Avoid the warning: WARNING: mm/built-in.o(.text.unlikely+0xc22): Section mismatch in reference from the function .new_kmalloc_cache() to the variable .init.rodata:kmalloc_info The function .new_kmalloc_cache() references the variable __initconst kmalloc_info. Signed-off-by: Christoph Lameter Reported-by: Stephen Rothwell Tested-by: Geert Uytterhoeven Signed-off-by: Linus Torvalds mm/slab_common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ce55d01e9b4daee5040777d023d52e6b42d3ad8f Author: Bob Moore Date: Wed Jul 1 14:45:45 2015 +0800 ACPICA: Update version to 20150619 ACPICA commit 2fcf4f4c95e6a4875f39a929f8f92ef50cc53bb5 ACPICA commit d7a940bb308d001b5d2b196174fee36c7daa61d6 Version 20150619. Link: https://github.com/acpica/acpica/commit/2fcf4f4c Link: https://github.com/acpica/acpica/commit/d7a940bb 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 3d2967b5b5b29a863227273639b84cfd39bba7f3 Author: gongzg Date: Wed Jul 1 14:45:38 2015 +0800 ACPICA: Comment update, no functional change ACPICA commit 1a8ec7b83d55c7b957247d685bd1c73f6a012f1e Remove redundant comment in nseval.c Link: https://github.com/acpica/acpica/commit/1a8ec7b8 Signed-off-by: gongzg Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/nseval.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 413d4a6defe0467cd22d97bfc5c274f8e3220124 Author: Bob Moore Date: Wed Jul 1 14:45:32 2015 +0800 ACPICA: Update TPM2 ACPI table ACPICA commit 254bf77e7ca01cb27e026fa5737f7df8dae03f2c - Add constans for the start_method. - Remove the control structure, not part of ACPI, not defined in the current TCG spec. Link: https://github.com/acpica/acpica/commit/254bf77e Reported-by: Jarkko Sakkinen Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki include/acpi/actbl2.h | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) commit 9005694e4043be76299916356723d5dc9c772ab0 Author: Bob Moore Date: Wed Jul 1 14:45:25 2015 +0800 ACPICA: Update definitions for the TCPA and TPM2 ACPI tables ACPICA commit 33140b4498666337dd33a00cf3c4797a53981a7b Changes for a new version of the 3rd party spec for these tables, the "TCG ACPI Specification", December 14, 2014. Also, moved the definition of TPM2 to actbl2.h, next to TCPA, since both should be together. Update the table compiler/disassembler code for the tables. However, the "Server" TCPA table is not supported at this time. Link: https://github.com/acpica/acpica/commit/33140b44 Reported-by: Jarkko Sakkinen Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki include/acpi/actbl2.h | 86 ++++++++++++++++++++++++++++++++++++++++++++++----- include/acpi/actbl3.h | 34 ++------------------ 2 files changed, 81 insertions(+), 39 deletions(-) commit 747ef1b1ce32b824a25ce1e70934b58733dfa6f9 Author: Bob Moore Date: Wed Jul 1 14:45:18 2015 +0800 ACPICA: Split C library prototypes to new header ACPICA commit f51bf8497889a94046820639537165bbd7ccdee6 Adds acclib.h This patch doesn't affect the Linux kernel. Link: https://github.com/acpica/acpica/commit/f51bf849 Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/accommon.h | 3 +++ drivers/acpi/acpica/acutils.h | 58 ------------------------------------------ 2 files changed, 3 insertions(+), 58 deletions(-) commit 4fa4616e279df89baeb36287bbee83ab272edaed Author: Bob Moore Date: Wed Jul 1 14:45:11 2015 +0800 ACPICA: De-macroize calls to standard C library functions ACPICA commit 3b1026e0bdd3c32eb6d5d313f3ba0b1fee7597b4 ACPICA commit 00f0dc83f5cfca53b27a3213ae0d7719b88c2d6b ACPICA commit 47d22a738d0e19fd241ffe4e3e9d4e198e4afc69 Across all of ACPICA. Replace C library macros such as ACPI_STRLEN with the standard names such as strlen. The original purpose for these macros is long since obsolete. Also cast various invocations as necessary. Bob Moore, Jung-uk Kim, Lv Zheng. Link: https://github.com/acpica/acpica/commit/3b1026e0 Link: https://github.com/acpica/acpica/commit/00f0dc83 Link: https://github.com/acpica/acpica/commit/47d22a73 Signed-off-by: Bob Moore Signed-off-by: Jung-uk Kim Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/acutils.h | 46 +++++++++---------- drivers/acpi/acpica/dsfield.c | 2 +- drivers/acpi/acpica/dsinit.c | 2 +- drivers/acpi/acpica/dsobject.c | 7 ++- drivers/acpi/acpica/dsutils.c | 4 +- drivers/acpi/acpica/evgpeinit.c | 2 +- drivers/acpi/acpica/exconfig.c | 2 +- drivers/acpi/acpica/exconvrt.c | 9 ++-- drivers/acpi/acpica/exfield.c | 2 +- drivers/acpi/acpica/exfldio.c | 52 +++++++++++----------- drivers/acpi/acpica/exmisc.c | 36 +++++++-------- drivers/acpi/acpica/exnames.c | 2 +- drivers/acpi/acpica/exoparg2.c | 4 +- drivers/acpi/acpica/exoparg3.c | 4 +- drivers/acpi/acpica/exregion.c | 9 ++-- drivers/acpi/acpica/exstorob.c | 18 ++++---- drivers/acpi/acpica/nsaccess.c | 6 +-- drivers/acpi/acpica/nsconvert.c | 10 ++--- drivers/acpi/acpica/nsdump.c | 2 +- drivers/acpi/acpica/nseval.c | 2 +- drivers/acpi/acpica/nsinit.c | 4 +- drivers/acpi/acpica/nsrepair2.c | 2 +- drivers/acpi/acpica/nsutils.c | 3 +- drivers/acpi/acpica/nsxfeval.c | 5 +-- drivers/acpi/acpica/nsxfname.c | 6 +-- drivers/acpi/acpica/psutils.c | 7 ++- drivers/acpi/acpica/rscreate.c | 6 +-- drivers/acpi/acpica/rsmisc.c | 8 ++-- drivers/acpi/acpica/rsutils.c | 11 +++-- drivers/acpi/acpica/rsxface.c | 8 ++-- drivers/acpi/acpica/tbdata.c | 8 ++-- drivers/acpi/acpica/tbfadt.c | 6 +-- drivers/acpi/acpica/tbfind.c | 21 +++++---- drivers/acpi/acpica/tbinstal.c | 7 ++- drivers/acpi/acpica/tbprint.c | 10 ++--- drivers/acpi/acpica/tbutils.c | 2 +- drivers/acpi/acpica/tbxface.c | 16 +++---- drivers/acpi/acpica/tbxfload.c | 4 +- drivers/acpi/acpica/utalloc.c | 6 +-- drivers/acpi/acpica/utbuffer.c | 4 +- drivers/acpi/acpica/utcache.c | 6 +-- drivers/acpi/acpica/utcopy.c | 42 ++++++++--------- drivers/acpi/acpica/utids.c | 9 ++-- drivers/acpi/acpica/utmisc.c | 6 +-- drivers/acpi/acpica/utosi.c | 9 ++-- drivers/acpi/acpica/utpredef.c | 4 +- drivers/acpi/acpica/utprint.c | 6 +-- drivers/acpi/acpica/utstring.c | 33 +++++++------- drivers/acpi/acpica/uttrack.c | 8 ++-- drivers/acpi/acpica/utxface.c | 8 ++-- include/acpi/actypes.h | 8 ++-- include/acpi/platform/acenv.h | 38 ---------------- tools/power/acpi/common/getopt.c | 4 +- .../acpi/os_specific/service_layers/oslinuxtbl.c | 6 +-- tools/power/acpi/tools/acpidump/apdump.c | 8 ++-- tools/power/acpi/tools/acpidump/apfiles.c | 12 ++--- 56 files changed, 260 insertions(+), 312 deletions(-) commit 63c43812ee99efe7903955bae8cd928e9582477a Author: Lv Zheng Date: Wed Jul 1 14:45:05 2015 +0800 ACPI / acpidump: Update acpidump manual This patch updates acpidump manual according to the recent changes. Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki tools/power/acpi/man/acpidump.8 | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) commit 4fb80c3769b707524b0f2f6843633c6bd2131afc Author: Lv Zheng Date: Wed Jul 1 14:44:58 2015 +0800 ACPICA: acpidump: Convert the default behavior to dump from /sys/firmware/acpi/tables ACPICA commit 04c3bd7e9d6aeb2b3edebe99c90dc271ae4e6353 In order to work without any additional option to dump tables when /dev/mem doesn't exist, this patch switches the default behavior of acpidump to dump from /sys/firmware/acpi/tables. Reported by Al Stone, Fixed by Lv Zheng. Link: https://github.com/acpica/acpica/commit/04c3bd7e Reported-by: Al Stone Signed-off-by: Lv Zheng Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki tools/power/acpi/tools/acpidump/acpidump.h | 2 +- tools/power/acpi/tools/acpidump/apmain.c | 15 ++++++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) commit 428394dfdfc4596110269873cf5a2e7d82b2422e Author: Lv Zheng Date: Wed Jul 1 14:44:52 2015 +0800 ACPICA: acpidump: Allow customized tables to be dumped without accessing /dev/mem ACPICA commit ab29013cfa2424140446aff196a70b211ab343a9 The /dev/mem can be configured out, in which case, acpidump should still work with "-c" option as tables can be found in /sys/firmware/acpi/tables. This patch allows acpidump to work without /dev/mem. This patch has been tested with "acpidump -c" and "acpidump -c -n FADT". And it worked as expected. Lv Zheng. Link: https://github.com/acpica/acpica/commit/ab29013c Reported-by: Al Stone Signed-off-by: Lv Zheng Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki .../acpi/os_specific/service_layers/oslinuxtbl.c | 89 +++++++++++----------- 1 file changed, 46 insertions(+), 43 deletions(-) commit fde175e385fc28c31a50be2608113689449a4b75 Author: Bob Moore Date: Wed Jul 1 14:44:44 2015 +0800 ACPICA: Cleanup output for the ASL Debug object ACPICA commit d4a53a396fe5d384425251b0257f8d125bbed617 Especially for use of the Index operator. For buffers and strings, only output the actual byte pointed to by the index. For packages, only print the package element decoded by the index. Link: https://github.com/acpica/acpica/commit/d4a53a39 Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/acobject.h | 1 + drivers/acpi/acpica/exdebug.c | 42 ++++++++++++++++++++++++++++++++++++++++-- drivers/acpi/acpica/exdump.c | 9 +++++---- drivers/acpi/acpica/exoparg2.c | 4 ++++ 4 files changed, 50 insertions(+), 6 deletions(-) commit dc00203b6c6fb1b0ce99f37118d9a3e7a6807d7b Author: Zhang Rui Date: Wed Jul 1 14:44:37 2015 +0800 ACPICA: Update for acpi_install_table memory types ACPICA commit 3f78b7fb3f98f35d62f532c1891deb748ad196c9 Physical/virtual address flags were reversed. Link: https://github.com/acpica/acpica/commit/3f78b7fb Signed-off-by: Zhang Rui Signed-off-by: Lv Zheng Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/tbxfload.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 8ea98655775e904ea406d74a887d0b2254651b5a Author: Bob Moore Date: Wed Jul 1 14:44:31 2015 +0800 ACPICA: Namespace: Change namespace override to avoid node deletion ACPICA commit c0ce529e1fbb8ec47d2522a3aa10f3ab77e16e41 There is no reference counting implemented for struct acpi_namespace_node, so it is currently not removable during runtime. This patch changes the namespace override code to keep the old struct acpi_namespace_node undeleted so that the override mechanism can happen during runtime. Bob Moore. Link: https://github.com/acpica/acpica/commit/c0ce529e Signed-off-by: Lv Zheng Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/nssearch.c | 23 +++++++++++++++++++---- include/acpi/acpixf.h | 5 +++++ 2 files changed, 24 insertions(+), 4 deletions(-) commit fe536995f2fe26fff111a9a06bf3f71e179c92cf Author: Bob Moore Date: Wed Jul 1 14:44:23 2015 +0800 ACPICA: Namespace: Add support of OSDT table ACPICA commit 27415c82fcecf467446f66d1007a0691cc5f3709 This patch adds OSDT (Override System Definition Table) support. When OSDT is loaded, conflict namespace objects will be overridden by the AML interpreter. Bob Moore, Lv Zheng. Link: https://github.com/acpica/acpica/commit/27415c82 Signed-off-by: Lv Zheng Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/nsparse.c | 7 +++++++ drivers/acpi/acpica/tbxfload.c | 6 +++++- drivers/acpi/acpica/utmisc.c | 3 ++- include/acpi/actbl.h | 1 + 4 files changed, 15 insertions(+), 2 deletions(-) commit 8f6f03610483962a9ebfaf38592909a3f0bcfa53 Author: Lv Zheng Date: Wed Jul 1 14:44:17 2015 +0800 ACPICA: Namespace: Add support to allow overriding objects ACPICA commit 6084e34e44565c6293f446c0202b5e59b055e351 This patch adds an "NamespaceOverride" flag in struct acpi_walk_state, and allows namespace objects to be overridden when this flag is set. Lv Zheng. Link: https://github.com/acpica/acpica/commit/6084e34e Signed-off-by: Lv Zheng Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/acnamesp.h | 1 + drivers/acpi/acpica/acstruct.h | 1 + drivers/acpi/acpica/dswload.c | 17 +++++++++++++---- drivers/acpi/acpica/nsaccess.c | 10 +++++++++- drivers/acpi/acpica/nssearch.c | 22 ++++++++++++++++++++-- 5 files changed, 44 insertions(+), 7 deletions(-) commit a8bd0f07eb594df51845d33f272fb1952fec1a6f Author: Hanjun Guo Date: Wed Jul 1 14:44:10 2015 +0800 ACPICA: ACPI 6.0: Add values for MADT GIC version field ACPICA commit 4b100dc43e8baee8c8b4891b23bc7ad03eba6a28 Support for the new version field in the generic distributor subtable. Hanjun Guo Link: https://github.com/acpica/acpica/commit/4b100dc4 Signed-off-by: Hanjun Guo Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki include/acpi/actbl1.h | 11 +++++++++++ 1 file changed, 11 insertions(+) commit f65358e5724890ef473d28762f6de0f3284b146e Author: Suravee Suthikulpanit Date: Wed Jul 1 14:44:04 2015 +0800 ACPICA: Utilities: Add _CLS processing ACPICA commit 9a2b638acb3a7215209432e070c6bd0312374229 ACPI Device object often contains a _CLS object to supply PCI-defined class code for the device. This patch introduces logic to process the _CLS object. Suravee Suthikulpanit, Lv Zheng. Link: https://github.com/acpica/acpica/commit/9a2b638a Acked-by: Mika Westerberg Reviewed-by: Hanjun Guo Signed-off-by: Suravee Suthikulpanit Signed-off-by: Lv Zheng Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/acinterp.h | 2 + drivers/acpi/acpica/acutils.h | 4 ++ drivers/acpi/acpica/exutils.c | 32 +++++++++++++++ drivers/acpi/acpica/nsxfname.c | 23 +++++++++-- drivers/acpi/acpica/utids.c | 91 +++++++++++++++++++++++++++++++++++++++++- include/acpi/acnames.h | 1 + include/acpi/actypes.h | 24 ++++++----- 7 files changed, 164 insertions(+), 13 deletions(-) commit cbc823405a48c93a6e98bb97ccdcb23ae034ab93 Author: Sascha Wildner Date: Wed Jul 1 14:43:57 2015 +0800 ACPICA: Add dragon_fly support to unix file mapping file ACPICA commit 795b215d6fd062386f0a1c23dff9ffa244683c4f ACPICA BZ 1130 This patch doesn't affect Linux kernel. Link: https://bugs.acpica.org/show_bug.cgi?id=1130 Link: https://github.com/acpica/acpica/commit/795b215d Signed-off-by: Sascha Wildner Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki tools/power/acpi/os_specific/service_layers/osunixmap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 07cf6ce595882c71cc5bd6c551820398b9e7f613 Author: Lv Zheng Date: Wed Jul 1 14:43:50 2015 +0800 ACPICA: EFI: Add EFI interface definitions to eliminate dependency of GNU EFI ACPICA commit 5d00e67a74542d030f0a55e7a947a020ef0d9693 This patch copies EFI interface definitions to the ACPICA code base so that the EFI utility support can be ported to other EFI implementation. Known issues: 1. MS Builds of uefi_call_wrapper() The uefi_call_wrapper() in GNU EFI is implemented in a the way to work around the ABI difference between Unix and MS. While I don't have environment to test the MS builds. In order to port the ACPICA utilities to other EFI implementation, all that need to be done is to impelement the 64-bit division support and the program entry point where the efi_main() is invoked. Code to impelement these is platform specific, and ACPICA currently choose to hide such platform specific code within the specific EFI impelementation. Lv Zheng. This patch doesn't affect Linux kernel. Link: https://github.com/acpica/acpica/commit/5d00e67a Signed-off-by: Lv Zheng Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki include/acpi/platform/acenvex.h | 6 ++++++ 1 file changed, 6 insertions(+) commit 7b09d8fdede65ea0ff4dc79654d10856f0aff0b8 Author: Lv Zheng Date: Wed Jul 1 14:43:43 2015 +0800 ACPICA: MSVC6: Fix build issue for variable argument macros ACPICA commit 72f5a358f28c5d154ed613c142c7dca03192c5ee This patch intoduces generic variable macro detection support and fixes build breakage issue with macros using __VA_ARGS__ feature defined in C99. This patch fixes this build issue. Lv Zheng. This patch doesn't affect Linux kernel. Link: https://github.com/acpica/acpica/commit/72f5a358 Signed-off-by: Lv Zheng Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki include/acpi/acoutput.h | 13 +++++++++++-- include/acpi/platform/acgcc.h | 4 ++++ 2 files changed, 15 insertions(+), 2 deletions(-) commit 0ea61381788a37d864f9841b0fe97d40f7058f3b Author: Lv Zheng Date: Wed Jul 1 14:43:34 2015 +0800 ACPICA: Tables: Enable default 64-bit FADT addresses favor ACPICA commit 4da56eeae0749dfe8491285c1e1fad48f6efafd8 The following commit temporarily disables correct 64-bit FADT addresses favor during the period the root cause of the bug is not fixed: Commit: 85dbd5801f62b66e2aa7826aaefcaebead44c8a6 ACPICA: Tables: Restore old behavor to favor 32-bit FADT addresses. With enough protections, this patch re-enables 64-bit FADT addresses by default. If regressions are reported against such change, this patch should be bisected and reverted. Note that 64-bit FACS favor and 64-bit firmware waking vector favor are excluded by this commit in order not to break OSPMs. Lv Zheng. Link: https://bugzilla.kernel.org/show_bug.cgi?id=74021 Link: https://github.com/acpica/acpica/commit/4da56eea Cc: 3.15.1+ # 3.15.1+ Reported-and-tested-by: Oswald Buddenhagen Signed-off-by: Lv Zheng Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki include/acpi/acpixf.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c04be18448355441a0c424362df65b6422e27bda Author: Lv Zheng Date: Wed Jul 1 14:43:26 2015 +0800 ACPICA: Tables: Fix an issue that FACS initialization is performed twice ACPICA commit 90f5332a15e9d9ba83831ca700b2b9f708274658 This patch adds a new FACS initialization flag for acpi_tb_initialize(). acpi_enable_subsystem() might be invoked several times in OS bootup process, and we don't want FACS initialization to be invoked twice. Lv Zheng. Link: https://github.com/acpica/acpica/commit/90f5332a Cc: All applicable # All applicable Signed-off-by: Lv Zheng Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/utxfinit.c | 10 ++++++---- include/acpi/actypes.h | 1 + 2 files changed, 7 insertions(+), 4 deletions(-) commit f06147f9fbf134c0258bd53aebeb4ed5efea5a25 Author: Lv Zheng Date: Wed Jul 1 14:43:18 2015 +0800 ACPICA: Hardware: Enable firmware waking vector for both 32-bit and 64-bit FACS ACPICA commit 368eb60778b27b6ae94d3658ddc902ca1342a963 ACPICA commit 70f62a80d65515e1285fdeeb50d94ee6f07df4bd ACPICA commit a04dbfa308a48ab0b2d10519c54a6c533c5c8949 ACPICA commit ebd544ed24c5a4faba11f265e228b7a821a729f5 The following commit is reported to have broken s2ram on some platforms: Commit: 0249ed2444d65d65fc3f3f64f398f1ad0b7e54cd ACPICA: Add option to favor 32-bit FADT addresses. The platform reports 2 FACS tables (which is not allowed by ACPI specification) and the new 32-bit address favor rule forces OSPMs to use the FACS table reported via FADT's X_FIRMWARE_CTRL field. The root cause of the reported bug might be one of the followings: 1. BIOS may favor the 64-bit firmware waking vector address when the version of the FACS is greater than 0 and Linux currently only supports resuming from the real mode, so the 64-bit firmware waking vector has never been set and might be invalid to BIOS while the commit enables higher version FACS. 2. BIOS may favor the FACS reported via the "FIRMWARE_CTRL" field in the FADT while the commit doesn't set the firmware waking vector address of the FACS reported by "FIRMWARE_CTRL", it only sets the firware waking vector address of the FACS reported by "X_FIRMWARE_CTRL". This patch excludes the cases that can trigger the bugs caused by the root cause 2. There is no handshaking mechanism can be used by OSPM to tell BIOS which FACS is currently used. Thus the FACS reported by "FIRMWARE_CTRL" may still be used by BIOS and the 0 value of the 32-bit firmware waking vector might trigger such failure. This patch enables the firmware waking vectors for both 32bit/64bit FACS tables in order to ensure we can exclude the cases that trigger the bugs caused by the root cause 2. The exclusion is split into 2 commits so that if it turns out not to be necessary, this single commit can be reverted without affecting the useful one. Lv Zheng, Bob Moore. Link: https://bugzilla.kernel.org/show_bug.cgi?id=74021 Link: https://github.com/acpica/acpica/commit/368eb607 Link: https://github.com/acpica/acpica/commit/70f62a80 Link: https://github.com/acpica/acpica/commit/a04dbfa3 Link: https://github.com/acpica/acpica/commit/ebd544ed Reported-and-tested-by: Oswald Buddenhagen 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 | 74 ++++++++++++++++++++++++++++++++++------- drivers/acpi/acpica/tbutils.c | 17 +++++----- 3 files changed, 73 insertions(+), 20 deletions(-) commit c04e1fb4396d27f18296db0f914760fa7fe8223a Author: Lv Zheng Date: Wed Jul 1 14:43:11 2015 +0800 ACPICA: Tables: Enable both 32-bit and 64-bit FACS ACPICA commit f7b86f35416e3d1f71c3d816ff5075ddd33ed486 The following commit is reported to have broken s2ram on some platforms: Commit: 0249ed2444d65d65fc3f3f64f398f1ad0b7e54cd ACPICA: Add option to favor 32-bit FADT addresses. The platform reports 2 FACS tables (which is not allowed by ACPI specification) and the new 32-bit address favor rule forces OSPMs to use the FACS table reported via FADT's X_FIRMWARE_CTRL field. The root cause of the reported bug might be one of the followings: 1. BIOS may favor the 64-bit firmware waking vector address when the version of the FACS is greater than 0 and Linux currently only supports resuming from the real mode, so the 64-bit firmware waking vector has never been set and might be invalid to BIOS while the commit enables higher version FACS. 2. BIOS may favor the FACS reported via the "FIRMWARE_CTRL" field in the FADT while the commit doesn't set the firmware waking vector address of the FACS reported by "FIRMWARE_CTRL", it only sets the firware waking vector address of the FACS reported by "X_FIRMWARE_CTRL". This patch excludes the cases that can trigger the bugs caused by the root cause 2. There is no handshaking mechanism can be used by OSPM to tell BIOS which FACS is currently used. Thus the FACS reported by "FIRMWARE_CTRL" may still be used by BIOS and the 0 value of the 32-bit firmware waking vector might trigger such failure. This patch tries to favor 32bit FACS address in another way where both the FACS reported by "FIRMWARE_CTRL" and the FACS reported by "X_FIRMWARE_CTRL" are loaded so that further commit can set firmware waking vector in the both tables to ensure we can exclude the cases that trigger the bugs caused by the root cause 2. The exclusion is split into 2 commits as this commit is also useful for dumping more ACPI tables, it won't get reverted when such exclusion is no longer necessary. Lv Zheng. Link: https://bugzilla.kernel.org/show_bug.cgi?id=74021 Link: https://github.com/acpica/acpica/commit/f7b86f35 Cc: 3.14.1+ # 3.14.1+ Reported-and-tested-by: Oswald Buddenhagen Signed-off-by: Lv Zheng Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/aclocal.h | 1 + drivers/acpi/acpica/tbfadt.c | 21 +++++++++++++-------- drivers/acpi/acpica/tbutils.c | 34 +++++++++++++++++++++++----------- drivers/acpi/acpica/tbxfload.c | 3 ++- include/acpi/acpixf.h | 9 +++++++++ 5 files changed, 48 insertions(+), 20 deletions(-) commit aca2a5d3a8fce1879627bc4ec9d180b74ae512e2 Author: Lv Zheng Date: Wed Jul 1 14:43:04 2015 +0800 ACPICA: Hardware: Enable 64-bit firmware waking vector for selected FACS ACPICA commit 7aa598d711644ab0de5f70ad88f1e2de253115e4 The following commit is reported to have broken s2ram on some platforms: Commit: 0249ed2444d65d65fc3f3f64f398f1ad0b7e54cd ACPICA: Add option to favor 32-bit FADT addresses. The platform reports 2 FACS tables (which is not allowed by ACPI specification) and the new 32-bit address favor rule forces OSPMs to use the FACS table reported via FADT's X_FIRMWARE_CTRL field. The root cause of the reported bug might be one of the followings: 1. BIOS may favor the 64-bit firmware waking vector address when the version of the FACS is greater than 0 and Linux currently only supports resuming from the real mode, so the 64-bit firmware waking vector has never been set and might be invalid to BIOS while the commit enables higher version FACS. 2. BIOS may favor the FACS reported via the "FIRMWARE_CTRL" field in the FADT while the commit doesn't set the firmware waking vector address of the FACS reported by "FIRMWARE_CTRL", it only sets the firware waking vector address of the FACS reported by "X_FIRMWARE_CTRL". This patch excludes the cases that can trigger the bugs caused by the root cause 1. ACPI specification says: A. 32-bit FACS address (FIRMWARE_CTRL field in FADT): Physical memory address of the FACS, where OSPM and firmware exchange control information. If the X_FIRMWARE_CTRL field contains a non zero value then this field must be zero. A zero value indicates that no FACS is specified by this field. B. 64-bit FACS address (X_FIRMWARE_CTRL field in FADT): 64bit physical memory address of the FACS. This field is used when the physical address of the FACS is above 4GB. If the FIRMWARE_CTRL field contains a non zero value then this field must be zero. A zero value indicates that no FACS is specified by this field. Thus the 32bit and 64bit firmware waking vector should indicate completely different resuming environment - real mode (1MB addressable) and non real mode (4GB+ addressable) and currently Linux only supports resuming from real mode. This patch enables 64-bit firmware waking vector for selected FACS via new acpi_set_firmware_waking_vectors() API so that it's up to OSPMs to determine which resuming mode should be used by BIOS and ACPICA changes won't trigger the bugs caused by the root cause 1. Lv Zheng. Link: https://bugzilla.kernel.org/show_bug.cgi?id=74021 Link: https://github.com/acpica/acpica/commit/7aa598d7 Reported-and-tested-by: Oswald Buddenhagen Signed-off-by: Lv Zheng Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/hwxfsleep.c | 71 ++++++++++++++++++++++++++++++----------- include/acpi/acpixf.h | 8 +++-- 2 files changed, 59 insertions(+), 20 deletions(-) commit 5c3950970b91df6a15db66ec4498bac9b12f4002 Merge: 7adf12b 132c242 Author: Linus Torvalds Date: Wed Jul 1 14:17:44 2015 -0700 Merge tag 'pm+acpi-4.2-rc1-2' 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 that didn't make it to the previous PM+ACPI pull request or are fixing issues introduced by it. Specifics: - Fix a recently added memory leak in an error path in the ACPI resources management code (Dan Carpenter) - Fix a build warning triggered by an ACPI video header function that should be static inline (Borislav Petkov) - Change names of helper function converting struct fwnode_handle pointers to either struct device_node or struct acpi_device pointers so they don't conflict with local variable names (Alexander Sverdlin) - Make the hibernate core re-enable nonboot CPUs on failures to disable them as expected (Vitaly Kuznetsov) - Increase the default timeout of the device suspend watchdog to prevent it from triggering too early on some systems (Takashi Iwai) - Prevent the cpuidle powernv driver from registering idle states with CPUIDLE_FLAG_TIMER_STOP set if CONFIG_TICK_ONESHOT is unset which leads to boot hangs (Preeti U Murthy)" * tag 'pm+acpi-4.2-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: tick/idle/powerpc: Do not register idle states with CPUIDLE_FLAG_TIMER_STOP set in periodic mode PM / sleep: Increase default DPM watchdog timeout to 60 PM / hibernate: re-enable nonboot cpus on disable_nonboot_cpus() failure ACPI / OF: Rename of_node() and acpi_node() to to_of_node() and to_acpi_node() ACPI / video: Inline acpi_video_set_dmi_backlight_type ACPI / resources: free memory on error in add_region_before() commit 347d7e45bd09ce09cbc30d5cea9de377eb22f55c Author: Stevens, Nick Date: Wed Jul 1 16:07:41 2015 +0000 hwmon: (mcp3021) Fix broken output scaling The mcp3021 scaling code is dividing the VDD (full-scale) value in millivolts by the A2D resolution to obtain the scaling factor. When VDD is 3300mV (the standard value) and the resolution is 12-bit (4096 divisions), the result is a scale factor of 3300/4096, which is always one. Effectively, the raw A2D reading is always being returned because no scaling is applied. This patch fixes the issue and simplifies the register-to-volts calculation, removing the unneeded "output_scale" struct member. Signed-off-by: Nick Stevens Cc: stable@vger.kernel.org # v3.10+ [Guenter Roeck: Dropped unnecessary value check] Signed-off-by: Guenter Roeck drivers/hwmon/mcp3021.c | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) commit 56172d81a9bc37a69b95dd627b8d48135c9c7b31 Author: Constantine Shulyupin Date: Fri Jun 26 17:47:44 2015 +0300 hwmon: (nct7802) fix visibility of temp3 Excerpt from datasheet: 7.2.32 Mode Selection Register RTD3_MD : 00=Closed , 01=Reserved , 10=Thermistor mode , 11=Voltage sense Show temp3 only in Thermistor mode Cc: stable@vger.kernel.org # v3.19+ Signed-off-by: Constantine Shulyupin Signed-off-by: Guenter Roeck drivers/hwmon/nct7802.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9026cae1c6d6c288dff0dc1d8350a949432819d8 Author: Gabriele Mazzotta Date: Sat Jun 27 15:22:05 2015 +0200 hwmon: (dell-smm-hwmon) Use a valid name attribute As per Documentation/hwmon/sysfs-interface, hwmon name attributes must not include '-', so replace 'dell-smm' with 'dell_smm'. Fixes: 039ae58503f3 ("hwmon: Allow to compile dell-smm-hwmon driver without /proc/i8k") Signed-off-by: Gabriele Mazzotta Acked-by: Pali Rohár Signed-off-by: Guenter Roeck drivers/hwmon/dell-smm-hwmon.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5ef7bbb09f7b91ef06524c72e1ab1fc48e0d6682 Author: Aaro Koskinen Date: Wed Jul 1 14:54:43 2015 +0300 perf tools: Allow to specify custom linker command Allow to specify custom linker command. This fixes MIPS64 builds for 64-bit userspace as it will allow to pass a linker using the correct linker flags for 64-bit ABI (by default GNU binutils ld will assume N32). Signed-off-by: Aaro Koskinen Acked-by: Jiri Olsa Cc: Paul Mackerras Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1435751683-18500-2-git-send-email-aaro.koskinen@nokia.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Makefile.perf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 642273795fa81da11290ffa90bce6ff242f2a7bb Author: Aaro Koskinen Date: Wed Jul 1 14:54:42 2015 +0300 perf tools: Create config.detected into OUTPUT directory Create config.detected into OUTPUT directory instead of source directory. This fixes parallel builds that share the same source directory. Signed-off-by: Aaro Koskinen Acked-by: Jiri Olsa Cc: Paul Mackerras Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1435751683-18500-1-git-send-email-aaro.koskinen@nokia.com Signed-off-by: Arnaldo Carvalho de Melo tools/build/Makefile.build | 2 +- tools/perf/Makefile.perf | 2 +- tools/perf/config/Makefile | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) commit 1df9fade87ea4831c024de9806f88427f9f33e62 Author: Taeung Song Date: Wed Jul 1 21:08:19 2015 +0900 perf mem: Fill in the missing session freeing after an error occurs When an error occurs an error value is just returned without freeing the session. So allocating and freeing session have to be matched as a pair even if an error occurs. Signed-off-by: Taeung Song Acked-by: Jiri Olsa Cc: Namhyung Kim Link: http://lkml.kernel.org/r/1435752499-11752-1-git-send-email-treeze.taeung@gmail.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-mem.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) commit 41b983609a1618e9fa70023d83232ed959056c8a Author: Taeung Song Date: Wed Jul 1 00:18:44 2015 +0900 perf kvm: Fill in the missing session freeing after an error occurs When an error occurs an error value is just returned without freeing the session. So allocating and freeing session have to be matched as a pair even if an error occurs. Signed-off-by: Taeung Song Cc: Jiri Olsa Cc: Namhyung Kim Link: http://lkml.kernel.org/r/1435677525-28055-1-git-send-email-treeze.taeung@gmail.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-kvm.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) commit 07a716fff25b826461baa2a07faa2df8c171f220 Author: Taeung Song Date: Tue Jun 30 17:15:24 2015 +0900 perf report: Fill in the missing session freeing after an error occurs When an error occurs an error value is just returned without freeing the session. So allocating and freeing session have to be matched as a pair even if an error occurs. Signed-off-by: Taeung Song Acked-by: Jiri Olsa Cc: Namhyung Kim Link: http://lkml.kernel.org/r/1435652124-22414-6-git-send-email-treeze.taeung@gmail.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-report.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 249ca1a86067e6a4198f7b2b7e19b505e2f41864 Author: Taeung Song Date: Tue Jun 30 17:15:21 2015 +0900 perf kmem: Fill in the missing session freeing after an error occurs When an error occurs an error value is just returned without freeing the session. So allocating and freeing session have to be matched as a pair even if an error occurs. Signed-off-by: Taeung Song Acked-by: Jiri Olsa Cc: Namhyung Kim Link: http://lkml.kernel.org/r/1435652124-22414-3-git-send-email-treeze.taeung@gmail.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-kmem.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 9fedfb0c5b05ae6c315de722a0548bb1f1328bf5 Author: Taeung Song Date: Tue Jun 30 17:15:20 2015 +0900 perf inject: Fill in the missing session freeing after an error occurs When an error occur an error value is just returned without freeing the session. So allocating and freeing session have to be matched as a pair even if an error occurs. Signed-off-by: Taeung Song Acked-by: Jiri Olsa Cc: Namhyung Kim Link: http://lkml.kernel.org/r/1435652124-22414-2-git-send-email-treeze.taeung@gmail.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-inject.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit ceb92913078e41e2305250754e0ea144fc3e9b28 Author: Jiri Olsa Date: Mon Jun 29 13:27:45 2015 +0200 perf tools: Add missing break for PERF_RECORD_ITRACE_START Missing switch break since introduction of new event: c4937a91ea56 perf tools: handle PERF_RECORD_LOST_SAMPLES Also removing unneeded break for PERF_RECORD_LOST_SAMPLES. Signed-off-by: Jiri Olsa Cc: Adrian Hunter Cc: David Ahern Cc: Kan Liang Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20150629112745.GA21507@krava.brq.redhat.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/machine.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit ae41a0b7ed7740009b9ec87c7dc05b23f01d361a Author: Florian Fainelli Date: Sat Jun 27 09:25:44 2015 -0700 ARM: multi_v7_defconfig: Enable BRCMNAND driver The Broadcom NAND driver is used by brcmstb, bcm63xx, bcm5301x and Cygnus/iProc under mach-bcm, this is enough critical mass to enable it. Signed-off-by: Florian Fainelli Signed-off-by: Kevin Hilman arch/arm/configs/multi_v7_defconfig | 1 + 1 file changed, 1 insertion(+) commit d80d942bcc8e1555a76774d20be9800cfef2d415 Author: Florian Fainelli Date: Sat Jun 27 09:25:43 2015 -0700 ARM: BCM: Do not select CONFIG_MTD_NAND_BRCMNAND This reverts 7dc95b40f599293aedf30432749ad25b51549041 ("ARM: BCM: Enable NAND support for iProc SoCs") since it creates an unmet dependency for MTD_NAND_BRCMNAND which depends on MTD and MTD_NAND, this results in the following build failure for brcmnand: LD init/built-in.o drivers/built-in.o: In function `brcmnand_remove': /home/fainelli/dev/linux/drivers/mtd/nand/brcmnand/brcmnand.c:2234: undefined reference to `nand_release' drivers/built-in.o: In function `brcmnand_init_cs': /home/fainelli/dev/linux/drivers/mtd/nand/brcmnand/brcmnand.c:1933: undefined reference to `nand_scan_ident' /home/fainelli/dev/linux/drivers/mtd/nand/brcmnand/brcmnand.c:1958: undefined reference to `nand_scan_tail' Makefile:931: recipe for target 'vmlinux' failed make: *** [vmlinux] Error 1 Instead, select this driver an all dependencies on the multi_v7_defconfig. Signed-off-by: Florian Fainelli Signed-off-by: Kevin Hilman arch/arm/mach-bcm/Kconfig | 1 - 1 file changed, 1 deletion(-) commit 375d610ff54e98e161abc7eba71bb80c2cf9a106 Merge: b72802c 5d6bed2 Author: Kevin Hilman Date: Wed Jul 1 13:01:03 2015 -0700 Merge tag 'mvebu-fixes-4.2-0' of git://git.infradead.org/linux-mvebu into next/late Merge "ARM: mvebu: fixes for v4.2" from Gregory Clement: mvebu fixes for 4.2 (part 0) Fix legacy dove IRQ numbers * tag 'mvebu-fixes-4.2-0' of git://git.infradead.org/linux-mvebu: ARM: dove: fix legacy dove IRQ numbers ARM: mvebu: fix suspend to RAM on big-endian configurations commit b72802c3117417ab696b0764d6e3cea369f578a6 Merge: 6540165 8c19a73 Author: Kevin Hilman Date: Wed Jul 1 12:53:49 2015 -0700 Merge tag 'mvebu-dt-4.2-3' of git://git.infradead.org/linux-mvebu into next/late Merge "ARM: mvebu: dt changes for v4.2" from Gregory Clement mvebu dt changes for v4.2 (part #3) Update Armada XP DT spi muxing after pinctrl function rename which was merged in the pinctrl subsystem for 4.2. Without it the spi muxing will be broken in 4.2-rc1 for Armada XP. * tag 'mvebu-dt-4.2-3' of git://git.infradead.org/linux-mvebu: ARM: mvebu: adjust Armada XP DT spi muxing after pinctrl function rename commit 6540165cf41655810ee67b78f01537af022a636a Author: Boris Brezillon Date: Wed Jun 17 10:59:05 2015 +0200 ARM: at91/dt: update udc compatible strings at91sam9g45, at91sam9x5 and sama5 SoCs should not use "atmel,at91sam9rl-udc" for their USB device compatible property since this compatible is attached to a specific hardware bug fix. Signed-off-by: Boris Brezillon Acked-by: Alexandre Belloni Tested-by: Bo Shen Acked-by: Nicolas Ferre Cc: #4.0+ Signed-off-by: Kevin Hilman arch/arm/boot/dts/at91sam9g45.dtsi | 2 +- arch/arm/boot/dts/at91sam9x5.dtsi | 2 +- arch/arm/boot/dts/sama5d3.dtsi | 2 +- arch/arm/boot/dts/sama5d4.dtsi | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) commit 50f0a44991516b5b9744ecb2c080c2ec6ad21b25 Author: Nicolas Ferre Date: Wed Jun 17 10:59:04 2015 +0200 ARM: at91/dt: trivial: fix USB udc compatible string To please checkpatch and the tiresome reader, add the "atmel," prefix to the USB udc compatible string. Signed-off-by: Nicolas Ferre Cc: #4.0+ Signed-off-by: Kevin Hilman Documentation/devicetree/bindings/usb/atmel-usb.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 5bab86243d949cf021b0f104faafc18f5d20283c Author: Randy Dunlap Date: Fri Jun 26 17:43:24 2015 -0300 [media] media/pci/cobalt: fix Kconfig and build when SND is not enabled Fix build errors in cobalt driver when CONFIG_SND is not enabled. Fixes these build errors: ERROR: "snd_pcm_period_elapsed" [drivers/media/pci/cobalt/cobalt.ko] undefined! ERROR: "_snd_pcm_stream_lock_irqsave" [drivers/media/pci/cobalt/cobalt.ko] undefined! ERROR: "snd_pcm_hw_constraint_integer" [drivers/media/pci/cobalt/cobalt.ko] undefined! ERROR: "snd_pcm_set_ops" [drivers/media/pci/cobalt/cobalt.ko] undefined! ERROR: "snd_pcm_stream_unlock_irqrestore" [drivers/media/pci/cobalt/cobalt.ko] undefined! ERROR: "snd_pcm_lib_ioctl" [drivers/media/pci/cobalt/cobalt.ko] undefined! ERROR: "snd_card_new" [drivers/media/pci/cobalt/cobalt.ko] undefined! ERROR: "snd_card_free" [drivers/media/pci/cobalt/cobalt.ko] undefined! ERROR: "snd_card_register" [drivers/media/pci/cobalt/cobalt.ko] undefined! ERROR: "snd_pcm_new" [drivers/media/pci/cobalt/cobalt.ko] undefined! Signed-off-by: Randy Dunlap Cc: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/cobalt/Kconfig | 1 + 1 file changed, 1 insertion(+) commit cdeb1755d7b965ad0d58cff4db1cf6de4ba3b2ba Author: Randy Dunlap Date: Fri Jun 26 16:28:13 2015 -0300 [media] media/dvb: fix ts2020.c Kconfig and build Fix kconfig warning that is caused by DVB_TS2020: warning: (DVB_TS2020 && SND_SOC_ADAU1761_I2C && SND_SOC_ADAU1781_I2C && SND_SOC_ADAU1977_I2C && SND_SOC_RT5677 && EXTCON_MAX14577 && EXTCON_MAX77693 && EXTCON_MAX77843) selects REGMAP_I2C which has unmet direct dependencies (I2C) This fixes many subsequent build errors. Signed-off-by: Randy Dunlap Cc: Konstantin Dimitrov Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 593aae214240d44bdb8ae3ebf38451812a92b9a6 Merge: ea21feb 63e63a1 Author: Kevin Hilman Date: Wed Jul 1 12:25:13 2015 -0700 Merge tag 'omap-for-v4.2/wakeirq-drivers-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/late Merge "omap generic wakeirq for v4.2 merge window" from Tony Lindgren: Omap driver changes for v4.2 to switch drivers over to Linux generic wake IRQ events for omap_hsmmc, 8250_omap and omap-serial drivers. The generic wake IRQs also fix issues that these drivers potentially have with IRQ re-entrancy at least for serial-omap. Note that because of dependencies and merge conflicts these are based on Rafael's pm-wakeirq and Greg's tty-next branches. * tag 'omap-for-v4.2/wakeirq-drivers-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: (148 commits) serial: 8250_omap: Move wake-up interrupt to generic wakeirq serial: omap: Switch wake-up interrupt to generic wakeirq tty: move linux/gsmmux.h to uapi doc: dt: add documentation for nxp,lpc1850-uart serial: 8250: add LPC18xx/43xx UART driver serial: 8250_uniphier: add UniPhier serial driver serial: 8250_dw: support ACPI platforms with integrated DMA engine serial: of_serial: check the return value of clk_prepare_enable() serial: of_serial: use devm_clk_get() instead of clk_get() serial: earlycon: Add support for big-endian MMIO accesses serial: sirf: use hrtimer for data rx serial: sirf: correct the fifo empty_bit serial: sirf: fix system hung on console log output serial: 8250: remove return statements from void function sc16is7xx: use kworker for RS-485 configuration sc16is7xx: use kworker to update ier bits sc16is7xx: use kworker for md_proc sc16is7xx: move RTS delay to workqueue sc16is7xx: use kthread_worker for tx_work and irq sc16is7xx: use LSR_TEMT_BIT in .tx_empty() ... commit ea21feb37e753213a093e1f77b2c05ce57997ccd Author: Y Vo Date: Tue Jun 16 16:49:44 2015 +0700 arm64: dts: Add APM X-Gene standby GPIO controller DTS entries Add standby domain gpio controller for APM X-Gene SoC platform. Signed-off-by: Y Vo Acked-by: Linus Walleij Signed-off-by: Kevin Hilman arch/arm64/boot/dts/apm/apm-storm.dtsi | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 498f09bce4dc0a2803df7fc25befbdb249074b85 Author: Stephen Boyd Date: Tue Jun 2 12:12:58 2015 -0700 soc: qcom: spm: Fix idle on THUMB2 kernels The ifc6410 firmware always enters the kernel in ARM state from deep idle. Use the cpu_resume_arm() wrapper instead of cpu_resume() to property switch into the THUMB2 state when we wake up from idle. This fixes a problem reported by Kevin Hilman on next-20150601 where the ifc6410 fails to boot a THUMB2 kernel because the platform's firmware always enters the kernel in ARM mode from deep idle states. Reported-by: Kevin Hilman Cc: Ard Biesheuvel Cc: Lina Iyer Signed-off-by: Stephen Boyd Signed-off-by: Kevin Hilman drivers/soc/qcom/spm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7adf12b87f45a77d364464018fb8e9e1ac875152 Merge: 02201e3 6684fa1 Author: Linus Torvalds Date: Wed Jul 1 11:53:46 2015 -0700 Merge tag 'for-linus-4.2-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip Pull xen updates from David Vrabel: "Xen features and cleanups for 4.2-rc0: - add "make xenconfig" to assist in generating configs for Xen guests - preparatory cleanups necessary for supporting 64 KiB pages in ARM guests - automatically use hvc0 as the default console in ARM guests" * tag 'for-linus-4.2-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip: block/xen-blkback: s/nr_pages/nr_segs/ block/xen-blkfront: Remove invalid comment block/xen-blkfront: Remove unused macro MAXIMUM_OUTSTANDING_BLOCK_REQS arm/xen: Drop duplicate define mfn_to_virt xen/grant-table: Remove unused macro SPP xen/xenbus: client: Fix call of virt_to_mfn in xenbus_grant_ring xen: Include xen/page.h rather than asm/xen/page.h kconfig: add xenconfig defconfig helper kconfig: clarify kvmconfig is for kvm xen/pcifront: Remove usage of struct timeval xen/tmem: use BUILD_BUG_ON() in favor of BUG_ON() hvc_xen: avoid uninitialized variable warning xenbus: avoid uninitialized variable warning xen/arm: allow console=hvc0 to be omitted for guests arm,arm64/xen: move Xen initialization earlier arm/xen: Correctly check if the event channel interrupt is present commit d55d0b56b9c3a0d94ca6cc1643063610c138dde9 Author: HungNien Chen Date: Wed Jul 1 10:06:49 2015 -0700 Input: wdt87xx_i2c - add a scaling factor for TOUCH_MAJOR event Get the scaling factor when it reads the sys params. The width value will multiple the factor and report the value in the TOUCH_MAJOR event. Signed-off-by: HungNien Chen Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/wdt87xx_i2c.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) commit 57ff96e0f08bb16c49f66250c9d90452dbbf1293 Author: Dmitry Torokhov Date: Tue Jun 30 11:28:43 2015 -0700 Input: wdt87xx_i2c - remove stray newline in diagnostic message There is no reason to have a newline between plat_id and xml_id1. Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/wdt87xx_i2c.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 02201e3f1b46aed7c6348f406b7b40de80ba6de3 Merge: 0890a26 20bdc2c Author: Linus Torvalds Date: Wed Jul 1 10:49:25 2015 -0700 Merge tag 'modules-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux Pull module updates from Rusty Russell: "Main excitement here is Peter Zijlstra's lockless rbtree optimization to speed module address lookup. He found some abusers of the module lock doing that too. A little bit of parameter work here too; including Dan Streetman's breaking up the big param mutex so writing a parameter can load another module (yeah, really). Unfortunately that broke the usual suspects, !CONFIG_MODULES and !CONFIG_SYSFS, so those fixes were appended too" * tag 'modules-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux: (26 commits) modules: only use mod->param_lock if CONFIG_MODULES param: fix module param locks when !CONFIG_SYSFS. rcu: merge fix for Convert ACCESS_ONCE() to READ_ONCE() and WRITE_ONCE() module: add per-module param_lock module: make perm const params: suppress unused variable error, warn once just in case code changes. modules: clarify CONFIG_MODULE_COMPRESS help, suggest 'N'. kernel/module.c: avoid ifdefs for sig_enforce declaration kernel/workqueue.c: remove ifdefs over wq_power_efficient kernel/params.c: export param_ops_bool_enable_only kernel/params.c: generalize bool_enable_only kernel/module.c: use generic module param operaters for sig_enforce kernel/params: constify struct kernel_param_ops uses sysfs: tightened sysfs permission checks module: Rework module_addr_{min,max} module: Use __module_address() for module_address_lookup() module: Make the mod_tree stuff conditional on PERF_EVENTS || TRACING module: Optimize __module_address() using a latched RB-tree rbtree: Implement generic latch_tree seqlock: Introduce raw_read_seqcount_latch() ... commit 0890a264794f33df540fbaf274699146903b4e6b Merge: 05a8256 40b8ad8 Author: Linus Torvalds Date: Wed Jul 1 09:24:26 2015 -0700 Merge tag 'arc-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc Pull ARC architecture updates from Vineet Gupta: - support for HS38 cores based on ARCv2 ISA ARCv2 is the next generation ISA from Synopsys and basis for the HS3{4,6,8} families of processors which retain the traditional ARC mantra of low power and configurability and are now more performant and feature rich. HS38x is a 10 stage pipeline core which supports MMU (with huge pages) and SMP (upto 4 cores) among other features. + www.synopsys.com/dw/ipdir.php?ds=arc-hs38-processor + http://news.synopsys.com/2014-10-14-New-DesignWare-ARC-HS38-Processor-Doubles-Performance-for-Embedded-Linux-Applications + http://www.embedded.com/electronics-news/4435975/Synopsys-ARC-HS38-core-gives-2X-boost-to-Linux-based-apps - support for ARC SDP (Software Development platform): Main Board + CPU Cards = AXS101: CPU Card with ARC700 in silicon @ 700 MHz = AXS103: CPU Card with HS38x in FPGA - refactoring of ARCompact port to accomodate new ARCv2 ISA - misc updates/cleanups * tag 'arc-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc: (72 commits) ARC: Fix build failures for ARCompact in linux-next after ARCv2 support ARCv2: Allow older gcc to cope with new regime of ARCv2/ARCompact support ARCv2: [vdk] dts files and defconfig for HS38 VDK ARCv2: [axs103] Support ARC SDP FPGA platform for HS38x cores ARC: [axs101] Prepare for AXS103 ARCv2: [nsim*hs*] Support simulation platforms for HS38x cores ARCv2: All bits in place, allow ARCv2 builds ARCv2: SLC: Handle explcit flush for DMA ops (w/o IO-coherency) ARCv2: STAR 9000837815 workaround hardware exclusive transactions livelock ARC: Reduce bitops lines of code using macros ARCv2: barriers arch: conditionally define smp_{mb,rmb,wmb} ARC: add smp barriers around atomics per Documentation/atomic_ops.txt ARC: add compiler barrier to LLSC based cmpxchg ARCv2: SMP: intc: IDU 2nd level intc for dynamic IRQ distribution ARCv2: SMP: clocksource: Enable Global Real Time counter ARCv2: SMP: ARConnect debug/robustness ARCv2: SMP: Support ARConnect (MCIP) for Inter-Core-Interrupts et al ARC: make plat_smp_ops weak to allow over-rides ARCv2: clocksource: Introduce 64bit local RTC counter ... commit 93e3bce6287e1fb3e60d3324ed08555b5bbafa89 Author: Eric W. Biederman Date: Sun May 24 09:25:00 2015 -0500 vfs: Remove incorrect debugging WARN in prepend_path The warning message in prepend_path is unclear and outdated. It was added as a warning that the mechanism for generating names of pseudo files had been removed from prepend_path and d_dname should be used instead. Unfortunately the warning reads like a general warning, making it unclear what to do with it. Remove the warning. The transition it was added to warn about is long over, and I added code several years ago which in rare cases causes the warning to fire on legitimate code, and the warning is now firing and scaring people for no good reason. Cc: stable@vger.kernel.org Reported-by: Ivan Delalande Reported-by: Omar Sandoval Fixes: f48cfddc6729e ("vfs: In d_path don't call d_dname on a mount point") Signed-off-by: "Eric W. Biederman" fs/dcache.c | 11 ----------- 1 file changed, 11 deletions(-) commit 7236c85e1be51a9e25ba0f6e087a66ca89605a49 Author: Eric W. Biederman Date: Wed May 13 20:51:09 2015 -0500 mnt: Update fs_fully_visible to test for permanently empty directories fs_fully_visible attempts to make fresh mounts of proc and sysfs give the mounter no more access to proc and sysfs than if they could have by creating a bind mount. One aspect of proc and sysfs that makes this particularly tricky is that there are other filesystems that typically mount on top of proc and sysfs. As those filesystems are mounted on empty directories in practice it is safe to ignore them. However testing to ensure filesystems are mounted on empty directories has not been something the in kernel data structures have supported so the current test for an empty directory which checks to see if nlink <= 2 is a bit lacking. proc and sysfs have recently been modified to use the new empty_dir infrastructure to create all of their dedicated mount points. Instead of testing for S_ISDIR(inode->i_mode) && i_nlink <= 2 to see if a directory is empty, test for is_empty_dir_inode(inode). That small change guaranteess mounts found on proc and sysfs really are safe to ignore, because the directories are not only empty but nothing can ever be added to them. This guarantees there is nothing to worry about when mounting proc and sysfs. Cc: stable@vger.kernel.org Signed-off-by: "Eric W. Biederman" fs/namespace.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit f9bb48825a6b5d02f4cabcc78967c75db903dcdc Author: Eric W. Biederman Date: Wed May 13 17:35:41 2015 -0500 sysfs: Create mountpoints with sysfs_create_mount_point This allows for better documentation in the code and it allows for a simpler and fully correct version of fs_fully_visible to be written. The mount points converted and their filesystems are: /sys/hypervisor/s390/ s390_hypfs /sys/kernel/config/ configfs /sys/kernel/debug/ debugfs /sys/firmware/efi/efivars/ efivarfs /sys/fs/fuse/connections/ fusectl /sys/fs/pstore/ pstore /sys/kernel/tracing/ tracefs /sys/fs/cgroup/ cgroup /sys/kernel/security/ securityfs /sys/fs/selinux/ selinuxfs /sys/fs/smackfs/ smackfs Cc: stable@vger.kernel.org Acked-by: Greg Kroah-Hartman Signed-off-by: "Eric W. Biederman" arch/s390/hypfs/inode.c | 12 ++++-------- drivers/firmware/efi/efi.c | 6 ++---- fs/configfs/mount.c | 10 ++++------ fs/debugfs/inode.c | 11 ++++------- fs/fuse/inode.c | 9 +++------ fs/pstore/inode.c | 12 ++++-------- fs/tracefs/inode.c | 6 ++---- kernel/cgroup.c | 10 ++++------ security/inode.c | 10 ++++------ security/selinux/selinuxfs.c | 11 +++++------ security/smack/smackfs.c | 8 ++++---- 11 files changed, 40 insertions(+), 65 deletions(-) commit 87d2846fcf88113fae2341da1ca9a71f0d916f2c Author: Eric W. Biederman Date: Wed May 13 16:31:40 2015 -0500 sysfs: Add support for permanently empty directories to serve as mount points. Add two functions sysfs_create_mount_point and sysfs_remove_mount_point that hang a permanently empty directory off of a kobject or remove a permanently emptpy directory hanging from a kobject. Export these new functions so modular filesystems can use them. Cc: stable@vger.kernel.org Acked-by: Greg Kroah-Hartman Signed-off-by: "Eric W. Biederman" fs/sysfs/dir.c | 34 ++++++++++++++++++++++++++++++++++ include/linux/sysfs.h | 15 +++++++++++++++ 2 files changed, 49 insertions(+) commit ea015218f2f7ace2dad9cedd21ed95bdba2886d7 Author: Eric W. Biederman Date: Wed May 13 16:09:29 2015 -0500 kernfs: Add support for always empty directories. Add a new function kernfs_create_empty_dir that can be used to create directory that can not be modified. Update the code to use make_empty_dir_inode when reporting a permanently empty directory to the vfs. Update the code to not allow adding to permanently empty directories. Cc: stable@vger.kernel.org Signed-off-by: "Eric W. Biederman" fs/kernfs/dir.c | 38 +++++++++++++++++++++++++++++++++++++- fs/kernfs/inode.c | 2 ++ include/linux/kernfs.h | 3 +++ 3 files changed, 42 insertions(+), 1 deletion(-) commit eb6d38d5427b3ad42f5268da0f1dd31bb0af1264 Author: Eric W. Biederman Date: Mon May 11 16:44:25 2015 -0500 proc: Allow creating permanently empty directories that serve as mount points Add a new function proc_create_mount_point that when used to creates a directory that can not be added to. Add a new function is_empty_pde to test if a function is a mount point. Update the code to use make_empty_dir_inode when reporting a permanently empty directory to the vfs. Update the code to not allow adding to permanently empty directories. Update /proc/openprom and /proc/fs/nfsd to be permanently empty directories. Cc: stable@vger.kernel.org Signed-off-by: "Eric W. Biederman" fs/proc/generic.c | 23 +++++++++++++++++++++++ fs/proc/inode.c | 4 ++++ fs/proc/internal.h | 6 ++++++ fs/proc/root.c | 4 ++-- 4 files changed, 35 insertions(+), 2 deletions(-) commit f9bd6733d3f11e24f3949becf277507d422ee1eb Author: Eric W. Biederman Date: Sat May 9 22:09:14 2015 -0500 sysctl: Allow creating permanently empty directories that serve as mountpoints. Add a magic sysctl table sysctl_mount_point that when used to create a directory forces that directory to be permanently empty. Update the code to use make_empty_dir_inode when accessing permanently empty directories. Update the code to not allow adding to permanently empty directories. Update /proc/sys/fs/binfmt_misc to be a permanently empty directory. Cc: stable@vger.kernel.org Signed-off-by: "Eric W. Biederman" fs/proc/proc_sysctl.c | 37 +++++++++++++++++++++++++++++++++++++ include/linux/sysctl.h | 3 +++ kernel/sysctl.c | 8 +------- 3 files changed, 41 insertions(+), 7 deletions(-) commit fbabfd0f4ee2e8847bf56edf481249ad1bb8c44d Author: Eric W. Biederman Date: Sat May 9 15:54:49 2015 -0500 fs: Add helper functions for permanently empty directories. To ensure it is safe to mount proc and sysfs I need to check if filesystems that are mounted on top of them are mounted on truly empty directories. Given that some directories can gain entries over time, knowing that a directory is empty right now is insufficient. Therefore add supporting infrastructure for permantently empty directories that proc and sysfs can use when they create mount points for filesystems and fs_fully_visible can use to test for permanently empty directories to ensure that nothing will be gained by mounting a fresh copy of proc or sysfs. Cc: stable@vger.kernel.org Signed-off-by: "Eric W. Biederman" fs/libfs.c | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ include/linux/fs.h | 2 ++ 2 files changed, 98 insertions(+) commit ceeb0e5d39fcdf4dca2c997bf225c7fc49200b37 Author: Eric W. Biederman Date: Wed Jan 7 08:10:09 2015 -0600 vfs: Ignore unlocked mounts in fs_fully_visible Limit the mounts fs_fully_visible considers to locked mounts. Unlocked can always be unmounted so considering them adds hassle but no security benefit. Cc: stable@vger.kernel.org Signed-off-by: "Eric W. Biederman" fs/namespace.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit b4839ebe21fc5d543b933d83644981ea73e9ba36 Author: Kinglong Mee Date: Wed Jul 1 12:00:13 2015 +0800 nfs: Remove invalid tk_pid from debug message Before rpc_run_task(), tk_pid is uninitiated as 0 always. Signed-off-by: Kinglong Mee Signed-off-by: Trond Myklebust fs/nfs/nfs4proc.c | 5 ++--- fs/nfs/pagelist.c | 3 +-- fs/nfs/write.c | 2 +- 3 files changed, 4 insertions(+), 6 deletions(-) commit d356a7d1e75003063fd5f499366b1043a0f79f6c Author: Kinglong Mee Date: Wed Jul 1 11:59:42 2015 +0800 nfs: Remove invalid NFS_ATTR_FATTR_V4_REFERRAL checking in nfs4_get_rootfh NFS_ATTR_FATTR_V4_REFERRAL is only set in nfs4_proc_lookup_common. Signed-off-by: Kinglong Mee Signed-off-by: Trond Myklebust fs/nfs/nfs4getroot.c | 7 ------- 1 file changed, 7 deletions(-) commit bc4da2a2bee2aaf5ed62b8bb676a15d010af0fc0 Author: Kinglong Mee Date: Wed Jul 1 11:59:04 2015 +0800 nfs: Drop bad comment in nfs41_walk_client_list() Commit 7b1f1fd184 "NFSv4/4.1: Fix bugs in nfs4[01]_walk_client_list" have change the logical of the list_for_each_entry(). Signed-off-by: Kinglong Mee Signed-off-by: Trond Myklebust fs/nfs/nfs4client.c | 1 - 1 file changed, 1 deletion(-) commit cd738ee985ccc1162e7ba2b4ecd41b6072a5befc Author: Kinglong Mee Date: Wed Jul 1 11:58:31 2015 +0800 nfs: Remove unneeded micro checking of CONFIG_PROC_FS Have checking CONFIG_PROC_FS in include/linux/sunrpc/stats.h. Signed-off-by: Kinglong Mee Signed-off-by: Trond Myklebust fs/nfs/inode.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) commit 2785110d2e5c5bad54c8364391e02e3dd21eccf3 Author: Kinglong Mee Date: Wed Jul 1 11:57:49 2015 +0800 nfs: Don't setting FILE_CREATED flags always Commit 5bc2afc2b5 "NFSv4: Honour the 'opened' parameter in the atomic_open() filesystem method" have support the opened arguments now. Also, Commit 03da633aa7 "atomic_open: take care of EEXIST in no-open case with O_CREAT|O_EXCL in fs/namei.c" have change vfs's logical. Signed-off-by: Kinglong Mee Signed-off-by: Trond Myklebust fs/nfs/dir.c | 3 --- 1 file changed, 3 deletions(-) commit 6a062a3687c20b80362b04e1ae7c9772d511977d Author: Kinglong Mee Date: Wed Jul 1 23:00:29 2015 +0800 nfs: Use remove_proc_subtree() instead remove_proc_entry() Thanks for Al Viro's comments of killing proc_fs_nfs completely. Signed-off-by: Kinglong Mee Signed-off-by: Trond Myklebust fs/nfs/client.c | 25 +++++++------------------ 1 file changed, 7 insertions(+), 18 deletions(-) commit 0689a86ae814f39af94a9736a0a5426dd82eb107 Author: Dominic Sacré Date: Tue Jun 30 17:41:33 2015 +0200 ALSA: usb-audio: Add MIDI support for Steinberg MI2/MI4 The Steinberg MI2 and MI4 interfaces are compatible with the USB class audio spec, but the MIDI part of the devices is reported as a vendor specific interface. This patch adds entries to quirks-table.h to recognize the MIDI endpoints. Audio functionality was already working and is unaffected by this change. Signed-off-by: Dominic Sacré Signed-off-by: Albert Huitsing Acked-by: Clemens Ladisch Cc: Signed-off-by: Takashi Iwai sound/usb/quirks-table.h | 68 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) commit 71f81e51ee0dc6d523a5229096c32eca2ab58bbb Author: Kinglong Mee Date: Wed Jul 1 11:55:50 2015 +0800 nfs: Remove unused argument in nfs_server_set_fsinfo() Commit e38eb6506f "NFS: set_pnfs_layoutdriver() from nfs4_proc_fsinfo()" have remove the using of mntfh from nfs_server_set_fsinfo(). Signed-off-by: Kinglong Mee Signed-off-by: Trond Myklebust fs/nfs/client.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 6b55970b0f8057a40f964d3dcfa4a687f675b5e2 Author: Kinglong Mee Date: Wed Jul 1 11:54:53 2015 +0800 nfs: Fix a memory leak when meeting an unsupported state protect Signed-off-by: Kinglong Mee Signed-off-by: Trond Myklebust fs/nfs/nfs4proc.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) commit db2efec0caba4f81a22d95a34da640b86c313c8e Author: Jeff Layton Date: Tue Jun 30 14:12:30 2015 -0400 nfs: take extra reference to fl->fl_file when running a LOCKU operation Jean reported another crash, similar to the one fixed by feaff8e5b2cf: BUG: unable to handle kernel NULL pointer dereference at 0000000000000148 IP: [] locks_get_lock_context+0xf/0xa0 PGD 0 Oops: 0000 [#1] SMP Modules linked in: nfsv3 nfs_layout_flexfiles rpcsec_gss_krb5 nfsv4 dns_resolver nfs fscache vmw_vsock_vmci_transport vsock cfg80211 rfkill coretemp crct10dif_pclmul ppdev vmw_balloon crc32_pclmul crc32c_intel ghash_clmulni_intel pcspkr vmxnet3 parport_pc i2c_piix4 microcode serio_raw parport nfsd floppy vmw_vmci acpi_cpufreq auth_rpcgss shpchp nfs_acl lockd grace sunrpc vmwgfx drm_kms_helper ttm drm mptspi scsi_transport_spi mptscsih ata_generic mptbase i2c_core pata_acpi CPU: 0 PID: 329 Comm: kworker/0:1H Not tainted 4.1.0-rc7+ #2 Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 07/30/2013 Workqueue: rpciod rpc_async_schedule [sunrpc] 30ec000 RIP: 0010:[] [] locks_get_lock_context+0xf/0xa0 RSP: 0018:ffff8802330efc08 EFLAGS: 00010296 RAX: ffff8802330efc58 RBX: ffff880097187c80 RCX: 0000000000000000 RDX: 0000000000000000 RSI: 0000000000000002 RDI: 0000000000000000 RBP: ffff8802330efc18 R08: ffff88023fc173d8 R09: 3038b7bf00000000 R10: 00002f1a02000000 R11: 3038b7bf00000000 R12: 0000000000000000 R13: 0000000000000000 R14: ffff8802337a2300 R15: 0000000000000020 FS: 0000000000000000(0000) GS:ffff88023fc00000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000148 CR3: 000000003680f000 CR4: 00000000001407f0 Stack: ffff880097187c80 ffff880097187cd8 ffff8802330efc98 ffffffff81250281 ffff8802330efc68 ffffffffa013e7df ffff8802330efc98 0000000000000246 ffff8801f6901c00 ffff880233d2b8d8 ffff8802330efc58 ffff8802330efc58 Call Trace: [] __posix_lock_file+0x31/0x5e0 [] ? rpc_wake_up_task_queue_locked.part.35+0xcf/0x240 [sunrpc] [] posix_lock_file_wait+0x3b/0xd0 [] ? nfs41_wake_and_assign_slot+0x32/0x40 [nfsv4] [] ? nfs41_sequence_done+0xd8/0x300 [nfsv4] [] do_vfs_lock+0x35/0x40 [nfsv4] [] nfs4_locku_done+0x81/0x120 [nfsv4] [] ? rpc_destroy_wait_queue+0x20/0x20 [sunrpc] [] ? rpc_destroy_wait_queue+0x20/0x20 [sunrpc] [] rpc_exit_task+0x2c/0x90 [sunrpc] [] ? call_refreshresult+0x170/0x170 [sunrpc] [] __rpc_execute+0x84/0x410 [sunrpc] [] rpc_async_schedule+0x15/0x20 [sunrpc] [] process_one_work+0x147/0x400 [] worker_thread+0x11b/0x460 [] ? rescuer_thread+0x2f0/0x2f0 [] kthread+0xc9/0xe0 [] ? perf_trace_xen_mmu_set_pmd+0xa0/0x160 [] ? kthread_create_on_node+0x170/0x170 [] ret_from_fork+0x42/0x70 [] ? kthread_create_on_node+0x170/0x170 Code: a5 81 e8 85 75 e4 ff c6 05 31 ee aa 00 01 eb 98 66 66 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 55 48 89 e5 41 54 49 89 fc 53 <48> 8b 9f 48 01 00 00 48 85 db 74 08 48 89 d8 5b 41 5c 5d c3 83 RIP [] locks_get_lock_context+0xf/0xa0 RSP CR2: 0000000000000148 ---[ end trace 64484f16250de7ef ]--- The problem is almost exactly the same as the one fixed by feaff8e5b2cf. We must take a reference to the struct file when running the LOCKU compound to prevent the final fput from running until the operation is complete. Reported-by: Jean Spector Signed-off-by: Jeff Layton Cc: stable@vger.kernel.org Signed-off-by: Trond Myklebust fs/nfs/nfs4proc.c | 2 ++ 1 file changed, 2 insertions(+) commit 0a30f612d6cfd936235b41b090dbe0119c9039d1 Author: Miklos Szeredi Date: Wed Jul 1 17:10:36 2015 +0200 fuse: update MAINTAINERS entry Signed-off-by: Miklos Szeredi MAINTAINERS | 2 ++ 1 file changed, 2 insertions(+) commit b2102eb36e7909c779e46f66595fda75aa219f4c Author: Lars Poeschel Date: Thu Jun 25 12:21:51 2015 +0200 watchdog: omap_wdt: early_enable module parameter Add a early_enable module parameter to the omap_wdt that starts the watchdog on module insertion. The default value is 0 which does not start the watchdog - which also does not change the behavior if the parameter is not given. Signed-off-by: Lars Poeschel Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck Documentation/watchdog/watchdog-parameters.txt | 1 + drivers/watchdog/omap_wdt.c | 8 ++++++++ 2 files changed, 9 insertions(+) commit c3696046beb3a4479715b48f67f6a8a3aef4b3bb Author: Miklos Szeredi Date: Wed Jul 1 16:26:09 2015 +0200 fuse: separate pqueue for clones Make each fuse device clone refer to a separate processing queue. The only constraint on userspace code is that the request answer must be written to the same device clone as it was read off. Signed-off-by: Miklos Szeredi fs/fuse/dev.c | 63 +++++++++++++++++++++++++++++++++----------------------- fs/fuse/fuse_i.h | 9 +++++--- fs/fuse/inode.c | 3 ++- 3 files changed, 45 insertions(+), 30 deletions(-) commit cc080e9e9be16ccf26135d366d7d2b65209f1d56 Author: Miklos Szeredi Date: Wed Jul 1 16:26:08 2015 +0200 fuse: introduce per-instance fuse_dev structure Allow fuse device clones to refer to be distinguished. This patch just adds the infrastructure by associating a separate "struct fuse_dev" with each clone. Signed-off-by: Miklos Szeredi Reviewed-by: Ashish Samant fs/fuse/cuse.c | 14 +++++++++--- fs/fuse/dev.c | 70 +++++++++++++++++++++++++++++++++----------------------- fs/fuse/fuse_i.h | 17 ++++++++++++++ fs/fuse/inode.c | 47 ++++++++++++++++++++++++++++++++++--- 4 files changed, 114 insertions(+), 34 deletions(-) commit 00c570f4ba43ae73b41fa0a2269c3b0ac20386ef Author: Miklos Szeredi Date: Wed Jul 1 16:26:08 2015 +0200 fuse: device fd clone Allow an open fuse device to be "cloned". Userspace can create a clone by: newfd = open("/dev/fuse", O_RDWR) ioctl(newfd, FUSE_DEV_IOC_CLONE, &oldfd); At this point newfd will refer to the same fuse connection as oldfd. Signed-off-by: Miklos Szeredi Reviewed-by: Ashish Samant Documentation/ioctl/ioctl-number.txt | 1 + fs/fuse/dev.c | 40 ++++++++++++++++++++++++++++++++++++ include/uapi/linux/fuse.h | 3 +++ 3 files changed, 44 insertions(+) commit ee314a870e402f4e63b8a651bc96c740ed69cb31 Author: Miklos Szeredi Date: Wed Jul 1 16:26:08 2015 +0200 fuse: abort: no fc->lock needed for request ending In fuse_abort_conn() when all requests are on private lists we no longer need fc->lock protection. Signed-off-by: Miklos Szeredi Reviewed-by: Ashish Samant fs/fuse/dev.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) commit 46c34a348b0ac74fc9646de8ef0c5b8b29f09da9 Author: Miklos Szeredi Date: Wed Jul 1 16:26:07 2015 +0200 fuse: no fc->lock for pqueue parts Remove fc->lock protection from processing queue members, now protected by fpq->lock. Signed-off-by: Miklos Szeredi Reviewed-by: Ashish Samant fs/fuse/dev.c | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) commit efe2800facb4505696e602ec4ed1fc947bf114dd Author: Miklos Szeredi Date: Wed Jul 1 16:26:07 2015 +0200 fuse: no fc->lock in request_end() No longer need to call request_end() with the connection lock held. We still protect the background counters and queue with fc->lock, so acquire it if necessary. Signed-off-by: Miklos Szeredi Reviewed-by: Ashish Samant fs/fuse/dev.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) commit 1e6881c36ebbfd47298c42fa82b544c4988933fa Author: Miklos Szeredi Date: Wed Jul 1 16:26:07 2015 +0200 fuse: cleanup request_end() Now that we atomically test having already done everything we no longer need other protection. Signed-off-by: Miklos Szeredi Reviewed-by: Ashish Samant fs/fuse/dev.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 365ae710df91edc97d24817e3271e01bffaaee32 Author: Miklos Szeredi Date: Wed Jul 1 16:26:06 2015 +0200 fuse: request_end(): do once When the connection is aborted it is possible that request_end() will be called twice. Use atomic test and set to do the actual ending only once. test_and_set_bit() also provides the necessary barrier semantics so no explicit smp_wmb() is necessary. Signed-off-by: Miklos Szeredi Reviewed-by: Ashish Samant fs/fuse/dev.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 77cd9d488b32d19be852ad4d310ef13701557d61 Author: Miklos Szeredi Date: Wed Jul 1 16:26:06 2015 +0200 fuse: add req flag for private list When an unlocked request is aborted, it is moved from fpq->io to a private list. Then, after unlocking fpq->lock, the private list is processed and the requests are finished off. To protect the private list, we need to mark the request with a flag, so if in the meantime the request is unlocked the list is not corrupted. Signed-off-by: Miklos Szeredi Reviewed-by: Ashish Samant fs/fuse/dev.c | 10 +++++++--- fs/fuse/fuse_i.h | 2 ++ 2 files changed, 9 insertions(+), 3 deletions(-) commit 45a91cb1a4fd9bb0e53c95e3dc9185dd5b5ba245 Author: Miklos Szeredi Date: Wed Jul 1 16:26:06 2015 +0200 fuse: pqueue locking Add a fpq->lock for protecting members of struct fuse_pqueue and FR_LOCKED request flag. Signed-off-by: Miklos Szeredi Reviewed-by: Ashish Samant fs/fuse/dev.c | 19 +++++++++++++++++-- fs/fuse/fuse_i.h | 3 +++ fs/fuse/inode.c | 1 + 3 files changed, 21 insertions(+), 2 deletions(-) commit 24b4d33d46e9c4c671a43f2640d80fe1159f488c Author: Miklos Szeredi Date: Wed Jul 1 16:26:05 2015 +0200 fuse: abort: group pqueue accesses Rearrange fuse_abort_conn() so that processing queue accesses are grouped together. Signed-off-by: Miklos Szeredi Reviewed-by: Ashish Samant fs/fuse/dev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 82cbdcd320852ca68c8d43e8aacce2c07e7c1d4e Author: Miklos Szeredi Date: Wed Jul 1 16:26:05 2015 +0200 fuse: cleanup fuse_dev_do_read() - locked list_add() + list_del_init() cancel out - common handling of case when request is ended here in the read phase Signed-off-by: Miklos Szeredi Reviewed-by: Ashish Samant fs/fuse/dev.c | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) commit f377cb799e4f667d743886ee025f9987cbb6cd12 Author: Miklos Szeredi Date: Wed Jul 1 16:26:04 2015 +0200 fuse: move list_del_init() from request_end() into callers Signed-off-by: Miklos Szeredi fs/fuse/dev.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit e96edd94d0887707fc41c5d21d5b488edcd31689 Author: Miklos Szeredi Date: Wed Jul 1 16:26:04 2015 +0200 fuse: duplicate ->connected in pqueue This will allow checking ->connected just with the processing queue lock. Signed-off-by: Miklos Szeredi Reviewed-by: Ashish Samant fs/fuse/dev.c | 7 ++++--- fs/fuse/fuse_i.h | 3 +++ fs/fuse/inode.c | 1 + 3 files changed, 8 insertions(+), 3 deletions(-) commit 3a2b5b9cd9610f789f5e5f91a010d9fa3ca78632 Author: Miklos Szeredi Date: Wed Jul 1 16:26:04 2015 +0200 fuse: separate out processing queue This is just two fields: fc->io and fc->processing. This patch just rearranges the fields, no functional change. Signed-off-by: Miklos Szeredi Reviewed-by: Ashish Samant fs/fuse/dev.c | 21 ++++++++++++--------- fs/fuse/fuse_i.h | 15 ++++++++++----- fs/fuse/inode.c | 10 ++++++++-- 3 files changed, 30 insertions(+), 16 deletions(-) commit 5250921bb0b25e7fc77ba732e569224410743a05 Author: Miklos Szeredi Date: Wed Jul 1 16:26:03 2015 +0200 fuse: simplify request_wait() wait_event_interruptible_exclusive_locked() will do everything request_wait() does, so replace it. Signed-off-by: Miklos Szeredi Reviewed-by: Ashish Samant fs/fuse/dev.c | 30 +++++------------------------- 1 file changed, 5 insertions(+), 25 deletions(-) commit fd22d62ed0c36e260ac3e13167bc073f28407c70 Author: Miklos Szeredi Date: Wed Jul 1 16:26:03 2015 +0200 fuse: no fc->lock for iqueue parts Remove fc->lock protection from input queue members, now protected by fiq->waitq.lock. Signed-off-by: Miklos Szeredi Reviewed-by: Ashish Samant fs/fuse/dev.c | 71 +++++++++++++++++------------------------------------------ 1 file changed, 20 insertions(+), 51 deletions(-) commit 8f7bb368dbdda76f5e98e05ee49ae2dc138fd42f Author: Miklos Szeredi Date: Wed Jul 1 16:26:03 2015 +0200 fuse: allow interrupt queuing without fc->lock Interrupt is only queued after the request has been sent to userspace. This is either done in request_wait_answer() or fuse_dev_do_read() depending on which state the request is in at the time of the interrupt. If it's not yet sent, then queuing the interrupt is postponed until the request is read. Otherwise (the request has already been read and is waiting for an answer) the interrupt is queued immedidately. We want to call queue_interrupt() without fc->lock protection, in which case there can be a race between the two functions: - neither of them queue the interrupt (thinking the other one has already done it). - both of them queue the interrupt The first one is prevented by adding memory barriers, the second is prevented by checking (under fiq->waitq.lock) if the interrupt has already been queued. Signed-off-by: Miklos Szeredi fs/fuse/dev.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit 4ce6081260ea4c1b5bfa8ecca5cbb93eea279ad4 Author: Miklos Szeredi Date: Wed Jul 1 16:26:02 2015 +0200 fuse: iqueue locking Use fiq->waitq.lock for protecting members of struct fuse_iqueue and FR_PENDING request flag, previously protected by fc->lock. Following patches will remove fc->lock protection from these members. Signed-off-by: Miklos Szeredi Reviewed-by: Ashish Samant fs/fuse/dev.c | 51 +++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 45 insertions(+), 6 deletions(-) commit ef759258869c63e8df9b886ebaf9451c4bbe6cea Author: Miklos Szeredi Date: Wed Jul 1 16:26:02 2015 +0200 fuse: dev read: split list_move Different lists will need different locks. Signed-off-by: Miklos Szeredi Reviewed-by: Ashish Samant fs/fuse/dev.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 8c91189a2a8f5e69457bea9f48350c48310cec5b Author: Miklos Szeredi Date: Wed Jul 1 16:26:02 2015 +0200 fuse: abort: group iqueue accesses Rearrange fuse_abort_conn() so that input queue accesses are grouped together. Signed-off-by: Miklos Szeredi Reviewed-by: Ashish Samant fs/fuse/dev.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) commit e16714d8756dc1237a66994e139b61feebcf707a Author: Miklos Szeredi Date: Wed Jul 1 16:26:01 2015 +0200 fuse: duplicate ->connected in iqueue This will allow checking ->connected just with the input queue lock. Signed-off-by: Miklos Szeredi Reviewed-by: Ashish Samant fs/fuse/cuse.c | 1 - fs/fuse/dev.c | 19 ++++++++++--------- fs/fuse/fuse_i.h | 3 +++ fs/fuse/inode.c | 3 ++- 4 files changed, 15 insertions(+), 11 deletions(-) commit f88996a93324483ff3ec027312bbacacf97a555b Author: Miklos Szeredi Date: Wed Jul 1 16:26:01 2015 +0200 fuse: separate out input queue The input queue contains normal requests (fc->pending), forgets (fc->forget_*) and interrupts (fc->interrupts). There's also fc->waitq and fc->fasync for waking up the readers of the fuse device when a request is available. The fc->reqctr is also moved to the input queue (assigned to the request when the request is added to the input queue. This patch just rearranges the fields, no functional change. Signed-off-by: Miklos Szeredi Reviewed-by: Ashish Samant fs/fuse/dev.c | 134 +++++++++++++++++++++++++++++++------------------------ fs/fuse/fuse_i.h | 47 ++++++++++--------- fs/fuse/inode.c | 14 ++++-- 3 files changed, 111 insertions(+), 84 deletions(-) commit 33e14b4dfdc477344efbcd9b4218f2b350f0f893 Author: Miklos Szeredi Date: Wed Jul 1 16:26:01 2015 +0200 fuse: req state use flags Use flags for representing the state in fuse_req. This is needed since req->list will be protected by different locks in different states, hence we'll want the state itself to be split into distinct bits, each protected with the relevant lock in that state. Signed-off-by: Miklos Szeredi fs/fuse/dev.c | 23 ++++++++++++++--------- fs/fuse/file.c | 2 +- fs/fuse/fuse_i.h | 17 ++++++----------- 3 files changed, 21 insertions(+), 21 deletions(-) commit 7a3b2c754749c73b4a255b2a1070c24dba589098 Author: Miklos Szeredi Date: Wed Jul 1 16:26:00 2015 +0200 fuse: simplify req states FUSE_REQ_INIT is actually the same state as FUSE_REQ_PENDING and FUSE_REQ_READING and FUSE_REQ_WRITING can be merged into a common FUSE_REQ_IO state. Signed-off-by: Miklos Szeredi Reviewed-by: Ashish Samant fs/fuse/dev.c | 5 ++--- fs/fuse/file.c | 3 +-- fs/fuse/fuse_i.h | 6 ++---- 3 files changed, 5 insertions(+), 9 deletions(-) commit c47752673acb130e5132db0e52363e15be260ca4 Author: Miklos Szeredi Date: Wed Jul 1 16:26:00 2015 +0200 fuse: don't hold lock over request_wait_answer() Only hold fc->lock over sections of request_wait_answer() that actually need it. If wait_event_interruptible() returns zero, it means that the request finished. Need to add memory barriers, though, to make sure that all relevant data in the request is synchronized. Signed-off-by: Miklos Szeredi fs/fuse/dev.c | 45 ++++++++++++++++++++------------------------- 1 file changed, 20 insertions(+), 25 deletions(-) commit 7d2e0a099c7685a7355c27a2c3dc76ea7cfc8283 Author: Miklos Szeredi Date: Wed Jul 1 16:26:00 2015 +0200 fuse: simplify unique ctr Since it's a 64bit counter, it's never gonna wrap around. Remove code dealing with that possibility. Signed-off-by: Miklos Szeredi Reviewed-by: Ashish Samant fs/fuse/dev.c | 7 +------ fs/fuse/inode.c | 1 - 2 files changed, 1 insertion(+), 7 deletions(-) commit 41f982747e8175a4eb5e8d1939bdbb10f435b7f6 Author: Miklos Szeredi Date: Wed Jul 1 16:25:59 2015 +0200 fuse: rework abort Splice fc->pending and fc->processing lists into a common kill list while holding fc->lock. By the time we release fc->lock, pending and processing lists are empty and the io list contains only locked requests. Signed-off-by: Miklos Szeredi Reviewed-by: Ashish Samant fs/fuse/dev.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) commit b716d425385ed392adc8e619020c1d77ae5ec1cb Author: Miklos Szeredi Date: Wed Jul 1 16:25:59 2015 +0200 fuse: fold helpers into abort Fold end_io_requests() and end_queued_requests() into fuse_abort_conn(). Signed-off-by: Miklos Szeredi Reviewed-by: Ashish Samant fs/fuse/dev.c | 93 ++++++++++++++++++++++++----------------------------------- 1 file changed, 38 insertions(+), 55 deletions(-) commit dc00809a53edd15369906b90407a2d5b976289f5 Author: Miklos Szeredi Date: Wed Jul 1 16:25:58 2015 +0200 fuse: use per req lock for lock/unlock_request() Reuse req->waitq.lock for protecting FR_ABORTED and FR_LOCKED flags. Signed-off-by: Miklos Szeredi Reviewed-by: Ashish Samant fs/fuse/dev.c | 42 ++++++++++++++++++++---------------------- fs/fuse/fuse_i.h | 4 ++++ 2 files changed, 24 insertions(+), 22 deletions(-) commit 825d6d3395e88a616e4c953984d77eeacbad4310 Author: Miklos Szeredi Date: Wed Jul 1 16:25:58 2015 +0200 fuse: req use bitops Finer grained locking will mean there's no single lock to protect modification of bitfileds in fuse_req. So move to using bitops. Can use the non-atomic variants for those which happen while the request definitely has only one reference. Signed-off-by: Miklos Szeredi Reviewed-by: Ashish Samant fs/fuse/dev.c | 71 ++++++++++++++++++++++++++++---------------------------- fs/fuse/file.c | 17 +++++++------- fs/fuse/fuse_i.h | 49 ++++++++++++++++++-------------------- fs/fuse/inode.c | 6 ++--- 4 files changed, 71 insertions(+), 72 deletions(-) commit 0d8e84b0432beb6d11a1c82deeb9dc1a7bee02c0 Author: Miklos Szeredi Date: Wed Jul 1 16:25:58 2015 +0200 fuse: simplify request abort - don't end the request while req->locked is true - make unlock_request() return an error if the connection was aborted Signed-off-by: Miklos Szeredi Reviewed-by: Ashish Samant fs/fuse/dev.c | 119 +++++++++++++++++++++++----------------------------------- 1 file changed, 46 insertions(+), 73 deletions(-) commit ccd0a0bd16ff01bb27bacbeb2e0e4983dc299502 Author: Miklos Szeredi Date: Wed Jul 1 16:25:57 2015 +0200 fuse: call fuse_abort_conn() in dev release fuse_abort_conn() does all the work done by fuse_dev_release() and more. "More" consists of: end_io_requests(fc); wake_up_all(&fc->waitq); kill_fasync(&fc->fasync, SIGIO, POLL_IN); All of which should be no-op (WARN_ON's added). Signed-off-by: Miklos Szeredi Reviewed-by: Ashish Samant fs/fuse/dev.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) commit f0139aa819dfc8e80f664bd08800fc48233cb94e Author: Miklos Szeredi Date: Wed Jul 1 16:25:57 2015 +0200 fuse: fold fuse_request_send_nowait() into single caller And the same with fuse_request_send_nowait_locked(). Signed-off-by: Miklos Szeredi Reviewed-by: Ashish Samant fs/fuse/dev.c | 32 ++++++++++---------------------- 1 file changed, 10 insertions(+), 22 deletions(-) commit de15522646b9822d82b613d84cfeb4482370db3d Author: Miklos Szeredi Date: Wed Jul 1 16:25:57 2015 +0200 fuse: check conn_error earlier fc->conn_error is set once in FUSE_INIT reply and never cleared. Check it in request allocation, there's no sense in doing all the preparation if sending will surely fail. Signed-off-by: Miklos Szeredi Reviewed-by: Ashish Samant fs/fuse/dev.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 5437f2417225dc89c785867f4790012668006abc Author: Miklos Szeredi Date: Wed Jul 1 16:25:56 2015 +0200 fuse: account as waiting before queuing for background Move accounting of fc->num_waiting to the point where the request actually starts waiting. This is earlier than the current queue_request() for background requests, since they might be waiting on the fc->bg_queue before being queued on fc->pending. Signed-off-by: Miklos Szeredi Reviewed-by: Ashish Samant fs/fuse/dev.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 73e0e738441b26a2dfc1ccdf1462cd1dc13c8cea Author: Miklos Szeredi Date: Wed Jul 1 16:25:56 2015 +0200 fuse: reset waiting Reset req->waiting in fuse_put_request(). This is needed for correct accounting in fc->num_waiting for reserved requests. Signed-off-by: Miklos Szeredi fs/fuse/dev.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 42dc6211c54aa93e6a483469d07bd06f91713af7 Author: Miklos Szeredi Date: Wed Jul 1 16:25:56 2015 +0200 fuse: fix background request if not connected request_end() expects fc->num_background and fc->active_background to have been incremented, which is not the case in fuse_request_send_nowait() failure path. So instead just call the ->end() callback (which is actually set by all callers). Signed-off-by: Miklos Szeredi Reviewed-by: Ashish Samant fs/fuse/dev.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 0ad0b3255a08020eaf50e34ef0d6df5bdf5e09ed Author: Miklos Szeredi Date: Wed Jul 1 16:25:55 2015 +0200 fuse: initialize fc->release before calling it fc->release is called from fuse_conn_put() which was used in the error cleanup before fc->release was initialized. [Jeremiah Mahler : assign fc->release after calling fuse_conn_init(fc) instead of before.] Signed-off-by: Miklos Szeredi Fixes: a325f9b92273 ("fuse: update fuse_conn_init() and separate out fuse_conn_kill()") Cc: #v2.6.31+ fs/fuse/inode.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fd28f5d439fca77348c129d5b73043a56f8a0296 Author: Christoffer Dall Date: Wed Jul 1 14:08:31 2015 +0200 arm64: Don't report clear pmds and puds as huge The current pmd_huge() and pud_huge() functions simply check if the table bit is not set and reports the entries as huge in that case. This is counter-intuitive as a clear pmd/pud cannot also be a huge pmd/pud, and it is inconsistent with at least arm and x86. To prevent others from making the same mistake as me in looking at code that calls these functions and to fix an issue with KVM on arm64 that causes memory corruption due to incorrect page reference counting resulting from this mistake, let's change the behavior. Signed-off-by: Christoffer Dall Reviewed-by: Steve Capper Acked-by: Marc Zyngier Fixes: 084bd29810a5 ("ARM64: mm: HugeTLB support.") Cc: # 3.11+ Signed-off-by: Catalin Marinas arch/arm64/mm/hugetlbpage.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit bd5717a4632cdecafe82d03de7dcb3b1876e2828 Author: Bjorn Andersson Date: Fri Jun 26 14:47:21 2015 -0700 hwspinlock: qcom: Correct msb in regmap_field msb of the regmap_field was mistakenly given the value 32, to set all bits in the regmap update mask; although incorrect this worked until 921cc294, where the mask calculation was corrected. Signed-off-by: Bjorn Andersson Signed-off-by: Ohad Ben-Cohen drivers/hwspinlock/qcom_hwspinlock.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fb39f98d14d2c92531e79bcda5a0b802e2aaf202 Author: Ingo Molnar Date: Wed Jul 1 10:19:11 2015 +0200 printk: Increase maximum CONFIG_LOG_BUF_SHIFT from 21 to 25 So I tried to some kernel debugging that produced a ton of kernel messages on a big box, and wanted to save them all: but CONFIG_LOG_BUF_SHIFT maxes out at 21 (2 MB). Increase it to 25 (32 MB). This does not affect any existing config or defaults. Cc: Linus Torvalds Cc: Andrew Morton Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar init/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bcfeacab45e6d419c6bafc0e57ea4b1125e23231 Author: Igor Mammedov Date: Tue Jun 16 18:33:35 2015 +0200 vhost: use binary search instead of linear in find_region() For default region layouts performance stays the same as linear search i.e. it takes around 210ns average for translate_desc() that inlines find_region(). But it scales better with larger amount of regions, 235ns BS vs 300ns LS with 55 memory regions and it will be about the same values when allowed number of slots is increased to 509 like it has been done in kvm. Signed-off-by: Igor Mammedov Signed-off-by: Michael S. Tsirkin drivers/vhost/vhost.c | 38 ++++++++++++++++++++++++++++---------- 1 file changed, 28 insertions(+), 10 deletions(-) commit 8b0a9d42301e45d501d751074a6f767fded680b1 Author: Michael S. Tsirkin Date: Mon Jun 29 11:16:25 2015 +0200 virtio_net: document VIRTIO_NET_CTRL_GUEST_OFFLOADS Document VIRTIO_NET_CTRL_GUEST_OFFLOADS and the relevant feature bits. Will allow ethtool control of the offloads down the road. Reported-by: Yan Vugenfirer Signed-off-by: Michael S. Tsirkin include/uapi/linux/virtio_net.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit 65f26062cd8f653dac11d3c00d326f7f57b5e098 Author: Thomas Gleixner Date: Wed Jul 1 09:57:35 2015 +0200 time: Remove development rules from Kbuild/Makefile time.o gets rebuilt unconditionally due to a leftover Makefile rule which was placed there for development purposes. Remove it along with the commented out always rule in the toplevel Kbuild file. Fixes: 0a227985d4a9 'time: Move timeconst.h into include/generated' Reported-by; Stephen Boyd Signed-off-by: Thomas Gleixner Cc: Nicholas Mc Guire Kbuild | 1 - kernel/time/Makefile | 2 -- 2 files changed, 3 deletions(-) commit a215c8fbde8600d133f122691d0f8c30de6dda02 Author: Sebastian Ott Date: Thu Jun 25 14:52:13 2015 +0200 s390/oprofile: fix compile error Fix these errors when compiling with CONFIG_OPROFILE=y and CONFIG_PERF_EVENTS=n: arch/s390/oprofile/init.c: In function ‘oprofile_hwsampler_start’: arch/s390/oprofile/init.c:93:2: error: implicit declaration of function 'perf_reserve_sampling' [-Werror=implicit-function-declaration] retval = perf_reserve_sampling(); ^ arch/s390/oprofile/init.c:99:3: error: implicit declaration of function 'perf_release_sampling' [-Werror=implicit-function-declaration] perf_release_sampling(); ^ Signed-off-by: Sebastian Ott Signed-off-by: Martin Schwidefsky arch/s390/include/asm/perf_event.h | 8 ++++++++ arch/s390/oprofile/init.c | 1 + 2 files changed, 9 insertions(+) commit a313bdc5310dd807655d3ca3eb2219cd65dfe45a Author: Sebastian Ott Date: Thu Jun 25 09:32:22 2015 +0200 s390/sclp: fix compile error Fix this error when compiling with CONFIG_SMP=n and CONFIG_DYNAMIC_DEBUG=y: drivers/s390/char/sclp_early.c: In function 'sclp_read_info_early': drivers/s390/char/sclp_early.c:87:19: error: 'EBUSY' undeclared (first use in this function) } while (rc == -EBUSY); ^ Signed-off-by: Sebastian Ott Signed-off-by: Martin Schwidefsky drivers/s390/char/sclp_early.c | 1 + 1 file changed, 1 insertion(+) commit db490cb9aeb77b392f4bdaad3ebe96ea1d5c7bfe Author: Ingo Tuchscherer Date: Tue Mar 17 16:02:20 2015 +0100 s390/zcrypt: enable s390 hwrng to seed kernel entropy Set the 'quality' property in the zcrypt rng device structure to enable the zcrypt hwrng device to take part in the kernel entropy seeding process. A module parameter named hwrng_seed will be introduced to disable the participation. By default this parameter is set to 1 (enabled). Signed-off-by: Ingo Tuchscherer Signed-off-by: Harald Freudenberger Signed-off-by: Martin Schwidefsky drivers/s390/crypto/zcrypt_api.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 7a5a566eab48da7522f601f96aef3af102178046 Author: Joerg Roedel Date: Tue Jun 30 08:56:11 2015 +0200 iommu/amd: Introduce protection_domain_init() function This function contains the common parts between the initialization of dma_ops_domains and usual protection domains. This also fixes a long-standing bug which was uncovered by recent changes, in which the api_lock was not initialized for dma_ops_domains. Reported-by: George Wang Tested-by: George Wang Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu.c | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) commit 5ba97d2832f87943c43bb69cb1ef86dbc59df5bc Author: Eric Dumazet Date: Mon Jun 29 17:10:30 2015 +0200 fs/file.c: __fget() and dup2() atomicity rules __fget() does lockless fetch of pointer from the descriptor table, attempts to grab a reference and treats "it was already zero" as "it's already gone from the table, we just hadn't seen the store, let's fail". Unfortunately, that breaks the atomicity of dup2() - __fget() might see the old pointer, notice that it's been already dropped and treat that as "it's closed". What we should be getting is either the old file or new one, depending whether we come before or after dup2(). Dmitry had following test failing sometimes : int fd; void *Thread(void *x) { char buf; int n = read(fd, &buf, 1); if (n != 1) exit(printf("read failed: n=%d errno=%d\n", n, errno)); return 0; } int main() { fd = open("/dev/urandom", O_RDONLY); int fd2 = open("/dev/urandom", O_RDONLY); if (fd == -1 || fd2 == -1) exit(printf("open failed\n")); pthread_t th; pthread_create(&th, 0, Thread, 0); if (dup2(fd2, fd) == -1) exit(printf("dup2 failed\n")); pthread_join(th, 0); if (close(fd) == -1) exit(printf("close failed\n")); if (close(fd2) == -1) exit(printf("close failed\n")); printf("DONE\n"); return 0; } Signed-off-by: Eric Dumazet Reported-by: Dmitry Vyukov Signed-off-by: Al Viro fs/file.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit 8a81252b774b53e628a8a0fe18e2b8fc236d92cc Author: Eric Dumazet Date: Tue Jun 30 15:54:08 2015 +0200 fs/file.c: don't acquire files->file_lock in fd_install() Mateusz Guzik reported : Currently obtaining a new file descriptor results in locking fdtable twice - once in order to reserve a slot and second time to fill it. Holding the spinlock in __fd_install() is needed in case a resize is done, or to prevent a resize. Mateusz provided an RFC patch and a micro benchmark : http://people.redhat.com/~mguzik/pipebench.c A resize is an unlikely operation in a process lifetime, as table size is at least doubled at every resize. We can use RCU instead of the spinlock. __fd_install() must wait if a resize is in progress. The resize must block new __fd_install() callers from starting, and wait that ongoing install are finished (synchronize_sched()) resize should be attempted by a single thread to not waste resources. rcu_sched variant is used, as __fd_install() and expand_fdtable() run from process context. It gives us a ~30% speedup using pipebench on a dual Intel(R) Xeon(R) CPU E5-2696 v2 @ 2.50GHz Signed-off-by: Eric Dumazet Reported-by: Mateusz Guzik Acked-by: Mateusz Guzik Tested-by: Mateusz Guzik Signed-off-by: Al Viro Documentation/filesystems/porting | 4 +++ fs/file.c | 67 ++++++++++++++++++++++++++++----------- include/linux/fdtable.h | 3 ++ 3 files changed, 55 insertions(+), 19 deletions(-) commit 1af95de6f0119d5bde02d3a811a9f3a3661e954e Author: Wang YanQing Date: Tue Jun 23 18:54:45 2015 +0800 fs:super:get_anon_bdev: fix race condition could cause dev exceed its upper limitation Execution of get_anon_bdev concurrently and preemptive kernel all could bring race condition, it isn't enough to check dev against its upper limitation with equality operator only. This patch fix it. Signed-off-by: Wang YanQing Signed-off-by: Al Viro fs/super.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 05a8256c586ab75bcd6b793737b2022a1a98cb1e Merge: 0161b6e 5316a64 Author: Linus Torvalds Date: Tue Jun 30 21:47:12 2015 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile Pull arch/tile updates from Chris Metcalf: "These are a grab bag of changes to improve debugging and respond to a variety of issues raised on LKML over the last couple of months" * git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile: tile: avoid a "label not used" warning in do_page_fault() tile: vdso: use raw_read_seqcount_begin() in vdso tile: force CONFIG_TILEGX if ARCH != tilepro tile: improve stack backtrace tile: fix "odd fault" warning for stack backtraces tile: set up initial stack top to honor STACK_TOP_DELTA tile: support delivering NMIs for multicore backtrace drivers/tty/hvc/hvc_tile.c: properly return -EAGAIN tile: add and enable support functions tile: use READ_ONCE() in arch_spin_is_locked() tile: modify arch_spin_unlock_wait() semantics commit 0161b6e0d88e04f54ada7112bb2dad1f3ae472af Merge: 94521ca 1af135a Author: Linus Torvalds Date: Tue Jun 30 21:44:14 2015 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux Pull more s390 updates from Martin Schwidefsky: "There is one larger patch for the AP bus code to make it work with the longer reset periods of the latest crypto cards. A new default configuration, a naming cleanup for SMP and a few fixes" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: s390/kdump: fix compile for !SMP s390/kdump: fix nosmt kernel parameter s390: new default configuration s390/smp: cleanup core vs. cpu in the SCLP interface s390/smp: fix sigp cpu detection loop s390/zcrypt: Fixed reset and interrupt handling of AP queues s390/kdump: fix REGSET_VX_LOW vector register ELF notes s390/bpf: Fix backward jumps commit 94521ca3dfa6efd4ceb4f6746bf8ead58afb1490 Merge: 68b4449 1dfd18d Author: Linus Torvalds Date: Tue Jun 30 21:40:07 2015 -0700 Merge branch 'for-next' of git://git.samba.org/sfrench/cifs-2.6 Pull CIFS/SMB3 updates from Steve French: "Includes two bug fixes, as well as (minimal) support for the new protocol dialect (SMB3.1.1), and support for two ioctls including reflink (duplicate extents) file copy and set integrity" * 'for-next' of git://git.samba.org/sfrench/cifs-2.6: cifs: Unset CIFS_MOUNT_POSIX_PATHS flag when following dfs mounts Update negotiate protocol for SMB3.11 dialect Add ioctl to set integrity Add Get/Set Integrity Information structure definitions Add reflink copy over SMB3.11 with new FSCTL_DUPLICATE_EXTENTS Add SMB3.11 mount option synonym for new dialect add struct FILE_STANDARD_INFO Make dialect negotiation warning message easier to read Add defines and structs for smb3.1 dialect Allow parsing vers=3.11 on cifs mount client MUST ignore EncryptionKeyLength if CAP_EXTENDED_SECURITY is set commit 2adc376c551943a07170cbe70f43e6d6065f8906 Author: Carlos Maiolino Date: Thu Jun 25 12:25:58 2015 -0300 vfs: avoid creation of inode number 0 in get_next_ino currently, get_next_ino() is able to create inodes with inode number = 0. This have a bad impact in the filesystems relying in this function to generate inode numbers. While there is no problem at all in having inodes with number 0, userspace tools which handle file management tasks can have problems handling these files, like for example, the impossiblity of users to delete these files, since glibc will ignore them. So, I believe the best way is kernel to avoid creating them. This problem has been raised previously, but the old thread didn't have any other update for a year+, and I've seen too many users hitting the same issue regarding the impossibility to delete files while using filesystems relying on this function. So, I'm starting the thread again, with the same patch that I believe is enough to address this problem. Signed-off-by: Carlos Maiolino Signed-off-by: Al Viro fs/inode.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 68b4449d79f00dc3cb6ea1f4bf54cf8e453a53c8 Merge: 043cd04 de50e16 Author: Linus Torvalds Date: Tue Jun 30 20:16:08 2015 -0700 Merge tag 'xfs-for-linus-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs Pul xfs updates from Dave Chinner: "There's a couple of small API changes to the core DAX code which required small changes to the ext2 and ext4 code bases, but otherwise everything is within the XFS codebase. This update contains: - A new sparse on-disk inode record format to allow small extents to be used for inode allocation when free space is fragmented. - DAX support. This includes minor changes to the DAX core code to fix problems with lock ordering and bufferhead mapping abuse. - transaction commit interface cleanup - removal of various unnecessary XFS specific type definitions - cleanup and optimisation of freelist preparation before allocation - various minor cleanups - bug fixes for - transaction reservation leaks - incorrect inode logging in unwritten extent conversion - mmap lock vs freeze ordering - remote symlink mishandling - attribute fork removal issues" * tag 'xfs-for-linus-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs: (49 commits) xfs: don't truncate attribute extents if no extents exist xfs: clean up XFS_MIN_FREELIST macros xfs: sanitise error handling in xfs_alloc_fix_freelist xfs: factor out free space extent length check xfs: xfs_alloc_fix_freelist() can use incore perag structures xfs: remove xfs_caddr_t xfs: use void pointers in log validation helpers xfs: return a void pointer from xfs_buf_offset xfs: remove inst_t xfs: remove __psint_t and __psunsigned_t xfs: fix remote symlinks on V5/CRC filesystems xfs: fix xfs_log_done interface xfs: saner xfs_trans_commit interface xfs: remove the flags argument to xfs_trans_cancel xfs: pass a boolean flag to xfs_trans_free_items xfs: switch remaining xfs_trans_dup users to xfs_trans_roll xfs: check min blks for random debug mode sparse allocations xfs: fix sparse inodes 32-bit compile failure xfs: add initial DAX support xfs: add DAX IO path support ... commit 043cd04950431f206f784d1ed9b3fcc5993045f2 Merge: 43baed3 5a5003df Author: Linus Torvalds Date: Tue Jun 30 20:07:45 2015 -0700 Merge branch 'for-linus-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs Pull btrfs updates from Chris Mason: "Outside of our usual batch of fixes, this integrates the subvolume quota updates that Qu Wenruo from Fujitsu has been working on for a few releases now. He gets an extra gold star for making btrfs smaller this time, and fixing a number of quota corners in the process. Dave Sterba tested and integrated Anand Jain's sysfs improvements. Outside of exporting a symbol (ack'd by Greg) these are all internal to btrfs and it's mostly cleanups and fixes. Anand also attached some of our sysfs objects to our internal device management structs instead of an object off the super block. It will make device management easier overall and it's a better fit for how the sysfs files are used. None of the existing sysfs files are moved around. Thanks for all the fixes everyone" * 'for-linus-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: (87 commits) btrfs: delayed-ref: double free in btrfs_add_delayed_tree_ref() Btrfs: Check if kobject is initialized before put lib: export symbol kobject_move() Btrfs: sysfs: add support to show replacing target in the sysfs Btrfs: free the stale device Btrfs: use received_uuid of parent during send Btrfs: fix use-after-free in btrfs_replay_log btrfs: wait for delayed iputs on no space btrfs: qgroup: Make snapshot accounting work with new extent-oriented qgroup. btrfs: qgroup: Add the ability to skip given qgroup for old/new_roots. btrfs: ulist: Add ulist_del() function. btrfs: qgroup: Cleanup the old ref_node-oriented mechanism. btrfs: qgroup: Switch self test to extent-oriented qgroup mechanism. btrfs: qgroup: Switch to new extent-oriented qgroup mechanism. btrfs: qgroup: Switch rescan to new mechanism. btrfs: qgroup: Add new qgroup calculation function btrfs_qgroup_account_extents(). btrfs: backref: Add special time_seq == (u64)-1 case for btrfs_find_all_roots(). btrfs: qgroup: Add new function to record old_roots. btrfs: qgroup: Record possible quota-related extent for qgroup. btrfs: qgroup: Add function qgroup_update_counters(). ... commit 43baed34bc6b22fdd433b63ec6738f2d28925b1a Merge: 6aaf0da e44ac58 Author: Linus Torvalds Date: Tue Jun 30 19:46:34 2015 -0700 Merge branch 'for-linus' of git://git.kernel.dk/linux-block Pull more block layer patches from Jens Axboe: "A few later arrivers that I didn't fold into the first pull request, so we had a chance to run some testing. This contains: - NVMe: - Set of fixes from Keith - 4.4 and earlier gcc build fix from Andrew - small set of xen-blk{back,front} fixes from Bob Liu. - warnings fix for bogus inline statement in I_BDEV() from Geert. - error code fixup for SG_IO ioctl from Paolo Bonzini" * 'for-linus' of git://git.kernel.dk/linux-block: drivers/block/nvme-core.c: fix build with gcc-4.4.4 bdi: Remove "inline" keyword from exported I_BDEV() implementation block: fix bogus EFAULT error from SG_IO ioctl NVMe: Fix filesystem deadlock on removal NVMe: Failed controller initialization fixes NVMe: Unify controller probe and resume NVMe: Don't use fake status on cancelled command NVMe: Fix device cleanup on initialization failure drivers: xen-blkfront: only talk_to_blkback() when in XenbusStateInitialising xen/block: add multi-page ring support driver: xen-blkfront: move talk_to_blkback to a more suitable place drivers: xen-blkback: delay pending_req allocation to connect_ring commit abdd4a7025282fbe3737e1bcb5f51afc8d8ea1b8 Author: Vladimir Zapolskiy Date: Tue Jun 30 15:00:07 2015 -0700 genalloc: rename of_get_named_gen_pool() to of_gen_pool_get() To be consistent with other kernel interface namings, rename of_get_named_gen_pool() to of_gen_pool_get(). In the original function name "_named" suffix references to a device tree property, which contains a phandle to a device and the corresponding device driver is assumed to register a gen_pool object. Due to a weak relation and to avoid any confusion (e.g. in future possible scenario if gen_pool objects are named) the suffix is removed. [sfr@canb.auug.org.au: crypto/marvell/cesa - fix up for of_get_named_gen_pool() rename] Signed-off-by: Vladimir Zapolskiy Cc: Nicolas Ferre Cc: Philipp Zabel Cc: Shawn Guo Cc: Sascha Hauer Cc: Alexandre Belloni Cc: Russell King Cc: Mauro Carvalho Chehab Cc: Vinod Koul Cc: Takashi Iwai Cc: Jaroslav Kysela Signed-off-by: Stephen Rothwell Cc: Herbert Xu Cc: Boris BREZILLON Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/crypto/marvell/cesa.c | 5 ++--- drivers/dma/mmp_tdma.c | 2 +- drivers/media/platform/coda/coda-common.c | 2 +- include/linux/genalloc.h | 4 ++-- lib/genalloc.c | 6 +++--- sound/core/memalloc.c | 2 +- 6 files changed, 10 insertions(+), 11 deletions(-) commit 0030edf296db8a7afb13573eb12977b7d399cd40 Author: Vladimir Zapolskiy Date: Tue Jun 30 15:00:03 2015 -0700 genalloc: rename dev_get_gen_pool() to gen_pool_get() To be consistent with other genalloc interface namings, rename dev_get_gen_pool() to gen_pool_get(). The original omitted "dev_" prefix is removed, since it points to argument type of the function, and so it does not bring any useful information. [akpm@linux-foundation.org: update arch/arm/mach-socfpga/pm.c] Signed-off-by: Vladimir Zapolskiy Acked-by: Nicolas Ferre Cc: Philipp Zabel Cc: Shawn Guo Cc: Sascha Hauer Cc: Alexandre Belloni Cc: Russell King Cc: Mauro Carvalho Chehab Cc: Vinod Koul Cc: Takashi Iwai Cc: Jaroslav Kysela Cc: Mark Brown Cc: Nicolas Ferre Cc: Alan Tull Cc: Dinh Nguyen Cc: Kevin Hilman Cc: Stephen Rothwell 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 +- include/linux/genalloc.h | 2 +- lib/genalloc.c | 8 ++++---- 7 files changed, 10 insertions(+), 10 deletions(-) commit c1bd55f922a2df6038060ed48a82d146d301ca12 Author: Josh Triplett Date: Tue Jun 30 15:00:00 2015 -0700 x86: opt into HAVE_COPY_THREAD_TLS, for both 32-bit and 64-bit For 32-bit userspace on a 64-bit kernel, this requires modifying stub32_clone to actually swap the appropriate arguments to match CONFIG_CLONE_BACKWARDS, rather than just leaving the C argument for tls broken. Patch co-authored by Josh Triplett and Thiago Macieira. Signed-off-by: Josh Triplett Acked-by: Andy Lutomirski Cc: Ingo Molnar Cc: "H. Peter Anvin" Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Thiago Macieira Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/x86/Kconfig | 1 + arch/x86/kernel/process_32.c | 6 +++--- arch/x86/kernel/process_64.c | 8 ++++---- 3 files changed, 8 insertions(+), 7 deletions(-) commit 2026302909b5dc1b3834a89654315abd8b4e040c Author: Dan Streetman Date: Tue Jun 30 14:59:57 2015 -0700 MAINTAINERS: add zpool Add entry for zpool to MAINTAINERS file. Signed-off-by: Dan Streetman Cc: Seth Jennings Cc: Minchan Kim Cc: Nitin Gupta Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds MAINTAINERS | 7 +++++++ 1 file changed, 7 insertions(+) commit d1aa1ab33dcb0922e9088e37989a6d28d8702540 Author: Joe Perches Date: Tue Jun 30 14:59:54 2015 -0700 MAINTAINERS: BCACHE: Kent Overstreet has changed email address Kent's email address in MAINTAINERS seems to be invalid. This was his last sign-off address, so use that if appropriate. Fix the S: status entry while there. Signed-off-by: Joe Perches Acked-by: Kent Overstreet Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds MAINTAINERS | 4 ++-- drivers/md/bcache/journal.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit 2b0d8f03d8211058babaa2122ccbc58e0f6e9d39 Author: Joe Perches Date: Tue Jun 30 14:59:51 2015 -0700 MAINTAINERS: move Jens Osterkamp to CREDITS Jens' email address bounces, so move his name and entry to CREDITS. Signed-off-by: Joe Perches Cc: Ishizaki Kou Cc: Jens Osterkamp Cc: Benjamin Herrenschmidt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds CREDITS | 4 ++++ MAINTAINERS | 1 - 2 files changed, 4 insertions(+), 1 deletion(-) commit 70a116dca45a8480429c4d0803e129a18f035c6e Author: Joe Perches Date: Tue Jun 30 14:59:48 2015 -0700 MAINTAINERS: remove unused nbd.h pattern Commit 13e71d69cc74 ("nbd: Remove kernel internal header") deleted the file, remove the pattern. Signed-off-by: Joe Perches Acked-by: Markus Pargmann Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds MAINTAINERS | 1 - 1 file changed, 1 deletion(-) commit 1db12cde4c5b0ba586f29cd90387b654497faf45 Author: Joe Perches Date: Tue Jun 30 14:59:45 2015 -0700 MAINTAINERS: update brcm gpio filename pattern Commit 23a71fd616bf ("dt-bindings: brcm: rationalize Broadcom documentation naming") renamed the file, update the pattern. Signed-off-by: Joe Perches Acked-by: Scott Branden Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds MAINTAINERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 338808de6cc8f2952ac15f71ddbb9230d95fa4f6 Author: Joe Perches Date: Tue Jun 30 14:59:42 2015 -0700 MAINTAINERS: update brcm dts pattern Commit 8c0b9ee8665c ("MIPS: Move device-trees into vendor sub-directories") moved the files, update the pattern. Signed-off-by: Joe Perches Cc: Andrew Bresticker Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds MAINTAINERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e8e1225da568eef733d69033ba1647237fbd3c45 Author: Joe Perches Date: Tue Jun 30 14:59:39 2015 -0700 MAINTAINERS: update sound soc intel patterns Commit 2106241a6803 ("ASoC: Intel: create common folder and move common files in") moved the files around. Update the patterns. Signed-off-by: Joe Perches Cc: Jie Yang Acked-by: Jie Yang Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds MAINTAINERS | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit 712c0347902843c6a467e6c7ef90d0ee34eca110 Author: Sudip Mukherjee Date: Tue Jun 30 14:59:36 2015 -0700 MAINTAINERS: remove website for paride The webpage mentioned is not working, Signed-off-by: Sudip Mukherjee Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds MAINTAINERS | 1 - 1 file changed, 1 deletion(-) commit 2b8e7333431f90be12a6ef5c44f2efbc3625e7bf Author: Laurent Navet Date: Tue Jun 30 14:59:33 2015 -0700 MAINTAINERS: update Emulex ocrdma email addresses @emulex.com addresses respond to use @avagotech.com. Signed-off-by: Laurent Navet Acked-By: Devesh Sharma Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds MAINTAINERS | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 958b43384e41c129117284f48ba3fb9c11ebac75 Author: Pekka Enberg Date: Tue Jun 30 14:59:30 2015 -0700 bcache: use kvfree() in various places Use kvfree() instead of open-coding it. Signed-off-by: Pekka Enberg Cc: Kent Overstreet Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/md/bcache/super.c | 10 ++-------- drivers/md/bcache/util.h | 10 ++-------- 2 files changed, 4 insertions(+), 16 deletions(-) commit 32a78facdd0a5e77d18d03dbe53e0823d249b0bb Author: Pekka Enberg Date: Tue Jun 30 14:59:27 2015 -0700 libcxgbi: use kvfree() in cxgbi_free_big_mem() Use kvfree() instead of open-coding it. Signed-off-by: Pekka Enberg Cc: "James E.J. Bottomley" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/scsi/cxgbi/libcxgbi.h | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit de64d3a6c7c0cd9cbf673b68fd4a7ae6a2b8f035 Author: Pekka Enberg Date: Tue Jun 30 14:59:24 2015 -0700 target: use kvfree() in session alloc and free Use kvfree() instead of open-coding it. Signed-off-by: Pekka Enberg Cc: "Nicholas A. Bellinger" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/target/target_core_transport.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) commit f8c5b93947cd9a6bbc83ef22c060a6cfcc1572b0 Author: Pekka Enberg Date: Tue Jun 30 14:59:21 2015 -0700 IB/ehca: use kvfree() in ipz_queue_{cd}tor() Use kvfree() instead of open-coding it. Signed-off-by: Pekka Enberg Cc: Hoang-Nam Nguyen Cc: Christoph Raisch Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/infiniband/hw/ehca/ipz_pt_fn.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) commit 48a20138abeb6d28cf781ae5c3c482e9ad9f89aa Author: Pekka Enberg Date: Tue Jun 30 14:59:18 2015 -0700 drm/nouveau/gem: use kvfree() in u_free() Use kvfree() instead of open-coding it. Signed-off-by: Pekka Enberg Cc: David Airlie Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/gpu/drm/nouveau/nouveau_gem.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 15e21cd1631e0eca16af545bbdf89e2ffa4cdaee Author: Pekka Enberg Date: Tue Jun 30 14:59:15 2015 -0700 drm: use kvfree() in drm_free_large() Use kvfree() instead of open-coding it. Signed-off-by: Pekka Enberg Cc: David Airlie Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/drm/drm_mem_util.h | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit d2fcb5486af754c990f9a11f91195e28ffd4c735 Author: Pekka Enberg Date: Tue Jun 30 14:59:12 2015 -0700 cxgb4: use kvfree() in t4_free_mem() Use kvfree() instead of open-coding it. Signed-off-by: Pekka Enberg Cc: Hariprasad S Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 68c61b93e89fef36a36086c4e686fe413d2caab7 Author: Pekka Enberg Date: Tue Jun 30 14:59:09 2015 -0700 cxgb3: use kvfree() in cxgb_free_mem() Use kvfree() instead of open-coding it. Signed-off-by: Pekka Enberg Cc: Santosh Raspatur Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/net/ethernet/chelsio/cxgb3/cxgb3_offload.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 200f1ce3656b8f466f74756677cea1b5e2aa851a Author: Pekka Enberg Date: Tue Jun 30 14:59:06 2015 -0700 kernel/relay.c: use kvfree() in relay_free_page_array() Use kvfree() instead of open-coding it. Signed-off-by: Pekka Enberg Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds kernel/relay.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit b389645f041a9fc650819b1c1ce7abbef7f4912d Author: Antonio Ospite Date: Tue Jun 30 14:59:03 2015 -0700 printk: improve the description of /dev/kmsg line format The comment about /dev/kmsg does not mention the additional values which may actually be exported, fix that. Also move up the part of the comment instructing the users to ignore these additional values, this way the reading is more fluent and logically compact. Signed-off-by: Antonio Ospite Cc: Joe Perches Cc: Jonathan Corbet Cc: Tejun Heo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds kernel/printk/printk.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 9b597fd3c9d6864c580e75f390f1d2d104be6cbc Author: Masanari Iida Date: Tue Jun 30 14:59:00 2015 -0700 arch/unicore32/kernel/fpu-ucf64.c: remove unnecessary KERN_ERR Signed-off-by: Masanari Iida Cc: Guan Xuetao Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/unicore32/kernel/fpu-ucf64.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 386ecb1216f9e38947ce6a2af22e5e1e47256a97 Author: Dave Gordon Date: Tue Jun 30 14:58:57 2015 -0700 drivers/scsi/scsi_debug.c: resolve sg buffer const-ness issue do_device_access() takes a separate parameter to indicate the direction of data transfer, which it used to use to select the appropriate function out of sg_pcopy_{to,from}_buffer(). However these two functions now have So this patch makes it bypass these wrappers and call the underlying function sg_copy_buffer() directly; this has the same calling style as do_device_access() i.e. a separate direction-of-transfer parameter and no pointers-to-const, so skipping the wrappers not only eliminates the warning, it also make the code simpler :) [akpm@linux-foundation.org: fix very broken build] Signed-off-by: Dave Gordon Acked-by: Arnd Bergmann Cc: James Bottomley Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/scsi/scsi_debug.c | 12 ++++-------- include/linux/scatterlist.h | 3 +++ lib/scatterlist.c | 6 +++--- 3 files changed, 10 insertions(+), 11 deletions(-) commit 2a1bf8f93b33992bb0457512b28d046e279bbd7e Author: Dave Gordon Date: Tue Jun 30 14:58:54 2015 -0700 lib/scatterlist: mark input buffer parameters as 'const' The 'buf' parameter of sg(p)copy_from_buffer() can and should be const-qualified, although because of the shared implementation of _to_buffer() and _from_buffer(), we have to cast this away internally. This means that callers who have a 'const' buffer containing the data to be copied to the sg-list no longer have to cast away the const-ness themselves. It also enables improved coverage by code analysis tools. Signed-off-by: Dave Gordon Cc: Akinobu Mita Cc: "Martin K. Petersen" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/scatterlist.h | 4 ++-- lib/scatterlist.c | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) commit 4dc7daf843f3914c9c0c7efb71b8f251c9c4636f Author: Dave Gordon Date: Tue Jun 30 14:58:52 2015 -0700 lib/scatterlist.c: fix kerneldoc for sg_pcopy_{to,from}_buffer() The kerneldoc for the functions doesn't match the code; the last two parameters (buflen, skip) have been transposed, which is confusing, especially as they're both integral types and the compiler won't warn about swapping them. These functions and the kerneldoc were introduced in commit: df642cea lib/scatterlist: introduce sg_pcopy_from_buffer() ... Author: Akinobu Mita Date: Mon Jul 8 16:01:54 2013 -0700 The only difference between sg_pcopy_{from,to}_buffer() and sg_copy_{from,to}_buffer() is an additional argument that specifies the number of bytes to skip the SG list before copying. The functions have the extra argument at the end, but the kerneldoc lists it in penultimate position. Signed-off-by: Dave Gordon Reviewed-by: Akinobu Mita Cc: "Martin K. Petersen" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/scatterlist.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6157dbbfbf9d8e4a2b6d4e5ee35e864ab9ee8414 Author: Davidlohr Bueso Date: Tue Jun 30 14:58:48 2015 -0700 ipc,sysv: return -EINVAL upon incorrect id/seqnum In ipc_obtain_object_check we return -EIDRM when a bogus sequence number is detected via ipc_checkid, while the ipc manpages state the following return codes for such errors: EIDRM points to a removed identifier. EINVAL Invalid value, or unaligned, etc. EIDRM should only be returned upon a RMID call (->deleted check), and thus return EINVAL for wrong seq. This difference in semantics has also caused real bugs, ie: https://bugzilla.redhat.com/show_bug.cgi?id=246509 Signed-off-by: Davidlohr Bueso Cc: Manfred Spraul Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ipc/util.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f8b5918495be32807c4f878de959540eb63a9b9f Author: Davidlohr Bueso Date: Tue Jun 30 14:58:45 2015 -0700 ipc,sysv: make return -EIDRM when racing with RMID consistent The ipc_lock helper is used by all forms of sysv ipc to acquire the ipc object's spinlock. Upon error (bogus identifier), we always return -EINVAL, whether the problem be in the idr path or because we raced with a task performing RMID. For the later, however, all ipc related manpages, state the that for: EIDRM points to a removed identifier. And return: EINVAL Invalid value, or unaligned, etc. Which (EINVAL) should only return once the ipc resource is deleted. For all types of ipc this is done immediately upon a RMID command. However, shared memory behaves slightly different as it can merely mark a segment for deletion, and delay the actual freeing until there are no more active consumers. Per shmctl(IPC_RMID) manpage: "" Mark the segment to be destroyed. The segment will only actually be destroyed after the last process detaches it (i.e., when the shm_nattch member of the associated structure shmid_ds is zero). "" Unlike ipc_lock, paths that behave "correctly", at least per the manpage, involve controlling the ipc resource via *ctl(), doing the exact same validity check as ipc_lock after right acquiring the spinlock: if (!ipc_valid_object()) { err = -EIDRM; goto out_unlock; } Thus make ipc_lock consistent with the rest of ipc code and return -EIDRM in ipc_lock when !ipc_valid_object(). Signed-off-by: Davidlohr Bueso Cc: Manfred Spraul Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ipc/util.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) commit 55b7ae50167efc9b1c4f8fb60a99478cd46a82f7 Author: Davidlohr Bueso Date: Tue Jun 30 14:58:42 2015 -0700 ipc: rename ipc_obtain_object ... to ipc_obtain_object_idr, which is more meaningful and makes the code slightly easier to follow. Signed-off-by: Davidlohr Bueso Cc: Manfred Spraul Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ipc/msg.c | 2 +- ipc/sem.c | 4 ++-- ipc/shm.c | 2 +- ipc/util.c | 8 ++++---- ipc/util.h | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) commit ff35e5ef86fea1fa84eb7fdc939d0b1e3f1222bf Author: Davidlohr Bueso Date: Tue Jun 30 14:58:39 2015 -0700 ipc,msg: provide barrier pairings for lockless receive We currently use a full barrier on the sender side to to avoid receiver tasks disappearing on us while still performing on the sender side wakeup. We lack however, the proper CPU-CPU interactions pairing on the receiver side which busy-waits for the message. Similarly, we do not need a full smp_mb, and can relax the semantics for the writer and reader sides of the message. This is safe as we are only ordering loads and stores to r_msg. And in both smp_wmb and smp_rmb, there are no stores after the calls _anyway_. This obviously applies for pipelined_send and expunge_all, for EIRDM when destroying a queue. Signed-off-by: Davidlohr Bueso Cc: Manfred Spraul Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ipc/msg.c | 48 ++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 38 insertions(+), 10 deletions(-) commit c5c8975b2eb4eb7604e8ce4f762987f56d2a96a2 Author: Davidlohr Bueso Date: Tue Jun 30 14:58:36 2015 -0700 ipc,shm: move BUG_ON check into shm_lock Upon every shm_lock call, we BUG_ON if an error was returned, indicating racing either in idr or in shm_destroy. Move this logic into the locking. [akpm@linux-foundation.org: simplify code] Signed-off-by: Davidlohr Bueso Cc: Manfred Spraul Cc: Davidlohr Bueso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ipc/shm.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit c859aa83113dcad165d986e66aa21c5b73745f42 Author: Pekka Enberg Date: Tue Jun 30 14:58:33 2015 -0700 ipc/util.c: use kvfree() in ipc_rcu_free() Use kvfree() instead of open-coding it. Signed-off-by: Pekka Enberg Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ipc/util.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 92ed932d3081e494a6c61d22c093af100a313034 Author: Akinobu Mita Date: Tue Jun 30 14:58:30 2015 -0700 arc: use for_each_sg() This replaces the plain loop over the sglist array with for_each_sg() macro which consists of sg_next() function calls. Since arc doesn't select ARCH_HAS_SG_CHAIN, it is not necessary to use for_each_sg() in order to loop over each sg element. But this can help find problems with drivers that do not properly initialize their sg tables when CONFIG_DEBUG_SG is enabled. Signed-off-by: Akinobu Mita Acked-by: Vineet Gupta Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/arc/include/asm/dma-mapping.h | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) commit 9ce71148b027e2bd27016139cae1c39401587695 Author: Josh Triplett Date: Tue Jun 30 14:58:27 2015 -0700 devpts: if initialization failed, don't crash when opening /dev/ptmx If devpts failed to initialize, it would store an ERR_PTR in the global devpts_mnt. A subsequent open of /dev/ptmx would call devpts_new_index, which would dereference devpts_mnt and crash. Avoid storing invalid values in devpts_mnt; leave it NULL instead. Make both devpts_new_index and devpts_pty_new fail gracefully with ENODEV in that case, which then becomes the return value to the userspace open call on /dev/ptmx. [akpm@linux-foundation.org: remove unneeded static] Signed-off-by: Josh Triplett Reported-by: Fengguang Wu Reviewed-by: Peter Hurley Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/devpts/inode.c | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) commit 15f1d827810e085496eb7ae82aa3ed2dba9901cc Author: Thiébaud Weksteen Date: Tue Jun 30 14:58:24 2015 -0700 scripts/gdb: remove useless global instruction Signed-off-by: Thiébaud Weksteen Signed-off-by: Jan Kiszka Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/gdb/linux/tasks.py | 2 -- 1 file changed, 2 deletions(-) commit a930850b628497601309513dc894ea23218a19fa Author: Thiébaud Weksteen Date: Tue Jun 30 14:58:21 2015 -0700 scripts/gdb: add ps command Signed-off-by: Thiébaud Weksteen Signed-off-by: Jan Kiszka Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/gdb/linux/tasks.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit 6ad18b73317714e7d0fad08ee78365ecc817e923 Author: Thiébaud Weksteen Date: Tue Jun 30 14:58:18 2015 -0700 scripts/gdb: fix PEP8 compliance Signed-off-by: Thiébaud Weksteen Signed-off-by: Jan Kiszka Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/gdb/linux/dmesg.py | 1 - scripts/gdb/linux/symbols.py | 9 ++++----- scripts/gdb/linux/tasks.py | 2 ++ scripts/gdb/linux/utils.py | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) commit a2e73c480494101f5f6932b6904acb15c44180ee Author: Thiébaud Weksteen Date: Tue Jun 30 14:58:16 2015 -0700 scripts/gdb: fix typo in exception name Signed-off-by: Thiébaud Weksteen Signed-off-by: Jan Kiszka Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/gdb/linux/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3328bc9ee47fbf2e35d146bed0d41cff1c68e8f3 Author: Jan Kiszka Date: Tue Jun 30 14:58:13 2015 -0700 scripts/gdb: enable completion for lx-list-check parameter Signed-off-by: Jan Kiszka Cc: Thiébaud Weksteen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/gdb/linux/lists.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 433296b32b39bd2f8a8717ccb2385b4c8654017d Author: Jan Kiszka Date: Tue Jun 30 14:58:10 2015 -0700 scripts/gdb: also allow list_head pointer as lx-list-check paramter This makes the usage more flexible. Signed-off-by: Jan Kiszka Cc: Thiébaud Weksteen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/gdb/linux/lists.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 084f6b1ec65170c2f8e38688bc83ff15b9a963e0 Author: Thiébaud Weksteen Date: Tue Jun 30 14:58:07 2015 -0700 scripts/gdb: add command to check list consistency Add a gdb script to verify the consistency of lists. Signed-off-by: Thiébaud Weksteen Signed-off-by: Jan Kiszka Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/gdb/linux/lists.py | 89 ++++++++++++++++++++++++++++++++++++++++++++++ scripts/gdb/vmlinux-gdb.py | 1 + 2 files changed, 90 insertions(+) commit 43abdbcecea0673fa7f2f04422b57765935b2d5b Author: Quentin Lambert Date: Tue Jun 30 14:58:04 2015 -0700 memstick: remove deprecated use of pci api Replace occurences of the pci api by appropriate call to the dma api. A simplified version of the semantic patch that finds this problem is as follows: (http://coccinelle.lip6.fr) @deprecated@ idexpression id; position p; @@ ( pci_dma_supported@p ( id, ...) | pci_alloc_consistent@p ( id, ...) ) @bad1@ idexpression id; position deprecated.p; @@ ...when != &id->dev when != pci_get_drvdata ( id ) when != pci_enable_device ( id ) ( pci_dma_supported@p ( id, ...) | pci_alloc_consistent@p ( id, ...) ) @depends on !bad1@ idexpression id; expression direction; position deprecated.p; @@ ( - pci_dma_supported@p ( id, + dma_supported ( &id->dev, ... + , GFP_ATOMIC ) | - pci_alloc_consistent@p ( id, + dma_alloc_coherent ( &id->dev, ... + , GFP_ATOMIC ) ) Signed-off-by: Quentin Lambert Cc: Maxim Levitsky Cc: Greg KH Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/memstick/host/jmb38x_ms.c | 12 ++++++------ drivers/memstick/host/r592.c | 10 +++++----- 2 files changed, 11 insertions(+), 11 deletions(-) commit 196a4f82bddb2c4cb23736c5d467abcb9e716c63 Author: Fabian Frederick Date: Tue Jun 30 14:58:01 2015 -0700 fs/affs/symlink.c: remove unneeded err variable err is only assigned to -EIO. Return that value at the end of fail context. Signed-off-by: Fabian Frederick Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/affs/symlink.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 4709187ef2412419bea366bebc0a541dbd620b3c Author: Fabian Frederick Date: Tue Jun 30 14:57:58 2015 -0700 fs/affs/amigaffs.c: remove unneeded initialization bh is initialized unconditionally in affs_remove_link() Signed-off-by: Fabian Frederick Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/affs/amigaffs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 78f444f6736ed9a264fc3e801ca620daee4d5d9f Author: Fabian Frederick Date: Tue Jun 30 14:57:55 2015 -0700 fs/affs/inode.c: remove unneeded initialization bh is initialized unconditionally in affs_add_entry() Signed-off-by: Fabian Frederick Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/affs/inode.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d96f184532e9a9bff6cf41af1254edeffa29ff90 Author: Firo Yang Date: Tue Jun 30 14:57:52 2015 -0700 fs/adfs: remove unneeded cast kmem_cache_alloc() returns void*. Signed-off-by: Firo Yang Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/adfs/super.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3e44c471a2dab210f7e9b1e5f7d4d54d52df59eb Author: Lorenzo Stoakes Date: Tue Jun 30 14:57:49 2015 -0700 gcov: add support for GCC 5.1 Fix kernel gcov support for GCC 5.1. Similar to commit a992bf836f9 ("gcov: add support for GCC 4.9"), this patch takes into account the existence of a new gcov counter (see gcc's gcc/gcov-counter.def.) Firstly, it increments GCOV_COUNTERS (to 10), which makes the data structure struct gcov_info compatible with GCC 5.1. Secondly, a corresponding counter function __gcov_merge_icall_topn (Top N value tracking for indirect calls) is included in base.c with the other gcov counters unused for kernel profiling. Signed-off-by: Lorenzo Stoakes Cc: Andrey Ryabinin Cc: Yuan Pengfei Tested-by: Peter Oberparleiter Reviewed-by: Peter Oberparleiter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds kernel/gcov/base.c | 6 ++++++ kernel/gcov/gcc_4_7.c | 4 +++- 2 files changed, 9 insertions(+), 1 deletion(-) commit 5375b708f2547f70cd2bee2fd8663ab7035f9551 Author: HATAYAMA Daisuke Date: Tue Jun 30 14:57:46 2015 -0700 kernel/panic/kexec: fix "crash_kexec_post_notifiers" option issue in oops path Commit f06e5153f4ae2e ("kernel/panic.c: add "crash_kexec_post_notifiers" option for kdump after panic_notifers") introduced "crash_kexec_post_notifiers" kernel boot option, which toggles wheather panic() calls crash_kexec() before panic_notifiers and dump kmsg or after. The problem is that the commit overlooks panic_on_oops kernel boot option. If it is enabled, crash_kexec() is called directly without going through panic() in oops path. To fix this issue, this patch adds a check to "crash_kexec_post_notifiers" in the condition of kexec_should_crash(). Also, put a comment in kexec_should_crash() to explain not obvious things on this patch. Signed-off-by: HATAYAMA Daisuke Acked-by: Baoquan He Tested-by: Hidehiro Kawai Reviewed-by: Masami Hiramatsu Cc: Vivek Goyal Cc: Ingo Molnar Cc: Hidehiro Kawai Cc: Baoquan He Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/kernel.h | 3 +++ kernel/kexec.c | 11 +++++++++++ kernel/panic.c | 2 +- 3 files changed, 15 insertions(+), 1 deletion(-) commit f45d85ff1f3f13d5b67fecb291edc6a771db0c53 Author: HATAYAMA Daisuke Date: Tue Jun 30 14:57:43 2015 -0700 kernel/panic: call the 2nd crash_kexec() only if crash_kexec_post_notifiers is enabled For compatibility with the behaviour before the commit f06e5153f4ae2e ("kernel/panic.c: add "crash_kexec_post_notifiers" option for kdump after panic_notifers"), the 2nd crash_kexec() should be called only if crash_kexec_post_notifiers is enabled. Note that crash_kexec() returns immediately if kdump crash kernel is not loaded, so in this case, this patch makes no functionality change, but the point is to make it explicit, from the caller panic() side, that the 2nd crash_kexec() does nothing. Signed-off-by: HATAYAMA Daisuke Suggested-by: Ingo Molnar Cc: "Eric W. Biederman" Cc: Vivek Goyal Cc: Masami Hiramatsu Cc: Hidehiro Kawai Cc: Baoquan He Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds kernel/panic.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit a846f47962e4643b33847c9a0b2b6387f02a93be Author: KarimAllah Ahmed Date: Tue Jun 30 14:57:39 2015 -0700 x86/kexec: prepend elfcorehdr instead of appending it to the crash-kernel command-line. Any parameter passed after '--' in the kernel command-line will not be parsed by the kernel at all, instead it will be passed directly to init process. Currently the kernel appends elfcorehdr= to the cmdline passed from kexec load, and if this command-line is used to pass parameters to init process this means that 'elfcorehdr' will not be parsed as a kernel parameter at all which will be a problem for vmcore subsystem since it will know nothing about the location of the ELF structure! Prepending 'elfcorehdr' instead of appending it fixes this problem since it ensures that it always comes before '--' and so it's always parsed as a kernel command-line parameter. Even with this patch things can still go wrong if 'CONFIG_CMDLINE' was also used to embedd a command-line to the crash dump kernel and this command-line contains '--' since the current behavior of the kernel is to actually append the boot loader command-line to the embedded command-line. Signed-off-by: KarimAllah Ahmed Cc: Thomas Gleixner Cc: Ingo Molnar Cc: H. Peter Anvin Acked-by: Vivek Goyal Cc: Haren Myneni Cc: Eric Biederman Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/x86/kernel/kexec-bzimage64.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit 460b865e53c347ebf110e50d499718cd9b39d810 Author: Yann Droneaud Date: Tue Jun 30 14:57:36 2015 -0700 fs: document seq_open()'s usage of file->private_data seq_open() stores its struct seq_file in file->private_data, thus it must not be modified by user of seq_file. Link: http://lkml.kernel.org/r/cover.1433193673.git.ydroneaud@opteya.com Signed-off-by: Yann Droneaud Cc: Al Viro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/seq_file.c | 2 ++ 1 file changed, 2 insertions(+) commit 189f9841de23a58ecb4b2602db8581512ff08ba4 Author: Yann Droneaud Date: Tue Jun 30 14:57:33 2015 -0700 fs: allocate structure unconditionally in seq_open() Since patch described below, from v2.6.15-rc1, seq_open() could use a struct seq_file already allocated by the caller if the pointer to the structure is stored in file->private_data before calling the function. Commit 1abe77b0fc4b485927f1f798ae81a752677e1d05 Author: Al Viro Date: Mon Nov 7 17:15:34 2005 -0500 [PATCH] allow callers of seq_open do allocation themselves Allow caller of seq_open() to kmalloc() seq_file + whatever else they want and set ->private_data to it. seq_open() will then abstain from doing allocation itself. As there's no more use for such feature, as it could be easily replaced by calls to seq_open_private() (see commit 39699037a5c9 ("[FS] seq_file: Introduce the seq_open_private()")) and seq_release_private() (see v2.6.0-test3), support for this uncommon feature can be removed from seq_open(). Link: http://lkml.kernel.org/r/cover.1433193673.git.ydroneaud@opteya.com Signed-off-by: Yann Droneaud Cc: Al Viro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/seq_file.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) commit ede1bf0dcff2b07001c760992b1ca18fd0f419bc Author: Yann Droneaud Date: Tue Jun 30 14:57:30 2015 -0700 fs: use seq_open_private() for proc_mounts A patchset to remove support for passing pre-allocated struct seq_file to seq_open(). Such feature is undocumented and prone to error. In particular, if seq_release() is used in release handler, it will kfree() a pointer which was not allocated by seq_open(). So this patchset drops support for pre-allocated struct seq_file: it's only of use in proc_namespace.c and can be easily replaced by using seq_open_private()/seq_release_private(). Additionally, it documents the use of file->private_data to hold pointer to struct seq_file by seq_open(). This patch (of 3): Since patch described below, from v2.6.15-rc1, seq_open() could use a struct seq_file already allocated by the caller if the pointer to the structure is stored in file->private_data before calling the function. Commit 1abe77b0fc4b485927f1f798ae81a752677e1d05 Author: Al Viro Date: Mon Nov 7 17:15:34 2005 -0500 [PATCH] allow callers of seq_open do allocation themselves Allow caller of seq_open() to kmalloc() seq_file + whatever else they want and set ->private_data to it. seq_open() will then abstain from doing allocation itself. Such behavior is only used by mounts_open_common(). In order to drop support for such uncommon feature, proc_mounts is converted to use seq_open_private(), which take care of allocating the proc_mounts structure, making it available through ->private in struct seq_file. Conversely, proc_mounts is converted to use seq_release_private(), in order to release the private structure allocated by seq_open_private(). Then, ->private is used directly instead of proc_mounts() macro to access to the proc_mounts structure. Link: http://lkml.kernel.org/r/cover.1433193673.git.ydroneaud@opteya.com Signed-off-by: Yann Droneaud Cc: Al Viro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/mount.h | 3 --- fs/namespace.c | 6 +++--- fs/proc_namespace.c | 34 ++++++++++++++++------------------ 3 files changed, 19 insertions(+), 24 deletions(-) commit 0e1cc95b4cc7293bb7b39175035e7f7e45c90977 Author: Mel Gorman Date: Tue Jun 30 14:57:27 2015 -0700 mm: meminit: finish initialisation of struct pages before basic setup Waiman Long reported that 24TB machines hit OOM during basic setup when struct page initialisation was deferred. One approach is to initialise memory on demand but it interferes with page allocator paths. This patch creates dedicated threads to initialise memory before basic setup. It then blocks on a rw_semaphore until completion as a wait_queue and counter is overkill. This may be slower to boot but it's simplier overall and also gets rid of a section mangling which existed so kswapd could do the initialisation. [akpm@linux-foundation.org: include rwsem.h, use DECLARE_RWSEM, fix comment, remove unneeded cast] Signed-off-by: Mel Gorman Cc: Waiman Long Cc: Dave Hansen Cc: Scott Norton Tested-by: Daniel J Blueman Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/gfp.h | 8 ++++++++ init/main.c | 2 ++ mm/internal.h | 24 ------------------------ mm/page_alloc.c | 46 +++++++++++++++++++++++++++++++++++++--------- mm/vmscan.c | 6 ++---- 5 files changed, 49 insertions(+), 37 deletions(-) commit 74033a798f5a5db368126ee6f690111cf019bf7a Author: Mel Gorman Date: Tue Jun 30 14:57:23 2015 -0700 mm: meminit: remove mminit_verify_page_links mminit_verify_page_links() is an extremely paranoid check that was introduced when memory initialisation was being heavily reworked. Profiles indicated that up to 10% of parallel memory initialisation was spent on checking this for every page. The cost could be reduced but in practice this check only found problems very early during the initialisation rewrite and has found nothing since. This patch removes an expensive unnecessary check. Signed-off-by: Mel Gorman Tested-by: Nate Zimmer Tested-by: Waiman Long Tested-by: Daniel J Blueman Acked-by: Pekka Enberg Cc: Robin Holt Cc: Nate Zimmer Cc: Dave Hansen Cc: Waiman Long Cc: Scott Norton Cc: "Luck, Tony" Cc: Ingo Molnar Cc: "H. Peter Anvin" Cc: Thomas Gleixner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/internal.h | 8 -------- mm/mm_init.c | 8 -------- mm/page_alloc.c | 1 - 3 files changed, 17 deletions(-) commit ac5d2539b2382689b1cdb90bd60dcd49f61c2773 Author: Mel Gorman Date: Tue Jun 30 14:57:20 2015 -0700 mm: meminit: reduce number of times pageblocks are set during struct page init During parallel sturct page initialisation, ranges are checked for every PFN unnecessarily which increases boot times. This patch alters when the ranges are checked. Signed-off-by: Mel Gorman Tested-by: Nate Zimmer Tested-by: Waiman Long Tested-by: Daniel J Blueman Acked-by: Pekka Enberg Cc: Robin Holt Cc: Nate Zimmer Cc: Dave Hansen Cc: Waiman Long Cc: Scott Norton Cc: "Luck, Tony" Cc: Ingo Molnar Cc: "H. Peter Anvin" Cc: Thomas Gleixner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/page_alloc.c | 46 ++++++++++++++++++++++++---------------------- 1 file changed, 24 insertions(+), 22 deletions(-) commit a4de83dd3377eb43ad95387cc16c27a11aae2feb Author: Mel Gorman Date: Tue Jun 30 14:57:16 2015 -0700 mm: meminit: free pages in large chunks where possible Parallel struct page frees pages one at a time. Try free pages as single large pages where possible. Signed-off-by: Mel Gorman Tested-by: Nate Zimmer Tested-by: Waiman Long Tested-by: Daniel J Blueman Acked-by: Pekka Enberg Cc: Robin Holt Cc: Nate Zimmer Cc: Dave Hansen Cc: Waiman Long Cc: Scott Norton Cc: "Luck, Tony" Cc: Ingo Molnar Cc: "H. Peter Anvin" Cc: Thomas Gleixner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/page_alloc.c | 55 +++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 49 insertions(+), 6 deletions(-) commit 3b242c66ccbd60cf47ab0e8992119d9617548c23 Author: Mel Gorman Date: Tue Jun 30 14:57:13 2015 -0700 x86: mm: enable deferred struct page initialisation on x86-64 Subject says it all. Other architectures may enable on a case-by-case basis after auditing early_pfn_to_nid and testing. Signed-off-by: Mel Gorman Tested-by: Nate Zimmer Tested-by: Waiman Long Tested-by: Daniel J Blueman Acked-by: Pekka Enberg Cc: Robin Holt Cc: Nate Zimmer Cc: Dave Hansen Cc: Waiman Long Cc: Scott Norton Cc: "Luck, Tony" Cc: Ingo Molnar Cc: "H. Peter Anvin" Cc: Thomas Gleixner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/x86/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 54608c3f3a448f1e042f5d9f3b873cc8dc022f27 Author: Mel Gorman Date: Tue Jun 30 14:57:09 2015 -0700 mm: meminit: minimise number of pfn->page lookups during initialisation Deferred struct page initialisation is using pfn_to_page() on every PFN unnecessarily. This patch minimises the number of lookups and scheduler checks. Signed-off-by: Mel Gorman Tested-by: Nate Zimmer Tested-by: Waiman Long Tested-by: Daniel J Blueman Acked-by: Pekka Enberg Cc: Robin Holt Cc: Nate Zimmer Cc: Dave Hansen Cc: Waiman Long Cc: Scott Norton Cc: "Luck, Tony" Cc: Ingo Molnar Cc: "H. Peter Anvin" Cc: Thomas Gleixner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/page_alloc.c | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) commit 7e18adb4f80bea90d30b62158694d97c31f71d37 Author: Mel Gorman Date: Tue Jun 30 14:57:05 2015 -0700 mm: meminit: initialise remaining struct pages in parallel with kswapd Only a subset of struct pages are initialised at the moment. When this patch is applied kswapd initialise the remaining struct pages in parallel. This should boot faster by spreading the work to multiple CPUs and initialising data that is local to the CPU. The user-visible effect on large machines is that free memory will appear to rapidly increase early in the lifetime of the system until kswapd reports that all memory is initialised in the kernel log. Once initialised there should be no other user-visibile effects. Signed-off-by: Mel Gorman Tested-by: Nate Zimmer Tested-by: Waiman Long Tested-by: Daniel J Blueman Acked-by: Pekka Enberg Cc: Robin Holt Cc: Nate Zimmer Cc: Dave Hansen Cc: Waiman Long Cc: Scott Norton Cc: "Luck, Tony" Cc: Ingo Molnar Cc: "H. Peter Anvin" Cc: Thomas Gleixner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/internal.h | 6 +++ mm/mm_init.c | 1 + mm/page_alloc.c | 123 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-- mm/vmscan.c | 6 ++- 4 files changed, 130 insertions(+), 6 deletions(-) commit 3a80a7fa7989fbb6aa56bb6ad31811b62cf99e60 Author: Mel Gorman Date: Tue Jun 30 14:57:02 2015 -0700 mm: meminit: initialise a subset of struct pages if CONFIG_DEFERRED_STRUCT_PAGE_INIT is set This patch initalises all low memory struct pages and 2G of the highest zone on each node during memory initialisation if CONFIG_DEFERRED_STRUCT_PAGE_INIT is set. That config option cannot be set but will be available in a later patch. Parallel initialisation of struct page depends on some features from memory hotplug and it is necessary to alter alter section annotations. Signed-off-by: Mel Gorman Tested-by: Nate Zimmer Tested-by: Waiman Long Tested-by: Daniel J Blueman Acked-by: Pekka Enberg Cc: Robin Holt Cc: Nate Zimmer Cc: Dave Hansen Cc: Waiman Long Cc: Scott Norton Cc: "Luck, Tony" Cc: Ingo Molnar Cc: "H. Peter Anvin" Cc: Thomas Gleixner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/base/node.c | 6 +++- include/linux/mmzone.h | 8 ++++++ mm/Kconfig | 18 ++++++++++++ mm/internal.h | 18 ++++++++++++ mm/page_alloc.c | 78 ++++++++++++++++++++++++++++++++++++++++++++++++-- 5 files changed, 124 insertions(+), 4 deletions(-) commit 75a592a47129dcfc1aec40e7d3cdf239a767d441 Author: Mel Gorman Date: Tue Jun 30 14:56:59 2015 -0700 mm: meminit: inline some helper functions early_pfn_in_nid() and meminit_pfn_in_nid() are small functions that are unnecessarily visible outside memory initialisation. As well as unnecessary visibility, it's unnecessary function call overhead when initialising pages. This patch moves the helpers inline. [akpm@linux-foundation.org: fix build] [mhocko@suse.cz: fix build] Signed-off-by: Mel Gorman Tested-by: Nate Zimmer Tested-by: Waiman Long Tested-by: Daniel J Blueman Acked-by: Pekka Enberg Cc: Robin Holt Cc: Nate Zimmer Cc: Dave Hansen Cc: Waiman Long Cc: Scott Norton Cc: "Luck, Tony" Cc: Ingo Molnar Cc: "H. Peter Anvin" Cc: Thomas Gleixner Signed-off-by: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/mmzone.h | 9 ----- mm/page_alloc.c | 89 +++++++++++++++++++++++++++++--------------------- 2 files changed, 52 insertions(+), 46 deletions(-) commit 8a942fdea560d4ac0e9d9fabcd5201ad20e0c382 Author: Mel Gorman Date: Tue Jun 30 14:56:55 2015 -0700 mm: meminit: make __early_pfn_to_nid SMP-safe and introduce meminit_pfn_in_nid __early_pfn_to_nid() use static variables to cache recent lookups as memblock lookups are very expensive but it assumes that memory initialisation is single-threaded. Parallel initialisation of struct pages will break that assumption so this patch makes __early_pfn_to_nid() SMP-safe by requiring the caller to cache recent search information. early_pfn_to_nid() keeps the same interface but is only safe to use early in boot due to the use of a global static variable. meminit_pfn_in_nid() is an SMP-safe version that callers must maintain their own state for. Signed-off-by: Mel Gorman Tested-by: Nate Zimmer Tested-by: Waiman Long Tested-by: Daniel J Blueman Acked-by: Pekka Enberg Cc: Robin Holt Cc: Nate Zimmer Cc: Dave Hansen Cc: Waiman Long Cc: Scott Norton Cc: "Luck, Tony" Cc: Ingo Molnar Cc: "H. Peter Anvin" Cc: Thomas Gleixner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/ia64/mm/numa.c | 19 +++++++------------ include/linux/mm.h | 6 ++++-- include/linux/mmzone.h | 16 +++++++++++++++- mm/page_alloc.c | 40 +++++++++++++++++++++++++--------------- 4 files changed, 51 insertions(+), 30 deletions(-) commit d70ddd7a5d9aa335f9b4b0c3d879e1e70ee1e4e3 Author: Mel Gorman Date: Tue Jun 30 14:56:52 2015 -0700 mm: page_alloc: pass PFN to __free_pages_bootmem __free_pages_bootmem prepares a page for release to the buddy allocator and assumes that the struct page is initialised. Parallel initialisation of struct pages defers initialisation and __free_pages_bootmem can be called for struct pages that cannot yet map struct page to PFN. This patch passes PFN to __free_pages_bootmem with no other functional change. Signed-off-by: Mel Gorman Tested-by: Nate Zimmer Tested-by: Waiman Long Tested-by: Daniel J Blueman Acked-by: Pekka Enberg Cc: Robin Holt Cc: Nate Zimmer Cc: Dave Hansen Cc: Waiman Long Cc: Scott Norton Cc: "Luck, Tony" Cc: Ingo Molnar Cc: "H. Peter Anvin" Cc: Thomas Gleixner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/bootmem.c | 13 +++++++------ mm/internal.h | 3 ++- mm/memblock.c | 2 +- mm/nobootmem.c | 4 ++-- mm/page_alloc.c | 3 ++- 5 files changed, 14 insertions(+), 11 deletions(-) commit 92923ca3aacef63c92dc297a75ad0c6dfe4eab37 Author: Nathan Zimmer Date: Tue Jun 30 14:56:48 2015 -0700 mm: meminit: only set page reserved in the memblock region Currently each page struct is set as reserved upon initialization. This patch leaves the reserved bit clear and only sets the reserved bit when it is known the memory was allocated by the bootmem allocator. This makes it easier to distinguish between uninitialised struct pages and reserved struct pages in later patches. Signed-off-by: Robin Holt Signed-off-by: Nathan Zimmer Signed-off-by: Mel Gorman Tested-by: Nate Zimmer Tested-by: Waiman Long Tested-by: Daniel J Blueman Acked-by: Pekka Enberg Cc: Robin Holt Cc: Dave Hansen Cc: Waiman Long Cc: Scott Norton Cc: "Luck, Tony" Cc: Ingo Molnar Cc: "H. Peter Anvin" Cc: Thomas Gleixner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/mm.h | 2 ++ mm/nobootmem.c | 3 +++ mm/page_alloc.c | 17 ++++++++++++++++- 3 files changed, 21 insertions(+), 1 deletion(-) commit 1e8ce83cd17fd0f549a7ad145ddd2bfcdd7dfe37 Author: Robin Holt Date: Tue Jun 30 14:56:45 2015 -0700 mm: meminit: move page initialization into a separate function Currently, memmap_init_zone() has all the smarts for initializing a single page. A subset of this is required for parallel page initialisation and so this patch breaks up the monolithic function in preparation. Signed-off-by: Robin Holt Signed-off-by: Nathan Zimmer Signed-off-by: Mel Gorman Tested-by: Nate Zimmer Tested-by: Waiman Long Tested-by: Daniel J Blueman Acked-by: Pekka Enberg Cc: Robin Holt Cc: Dave Hansen Cc: Waiman Long Cc: Scott Norton Cc: "Luck, Tony" Cc: Ingo Molnar Cc: "H. Peter Anvin" Cc: Thomas Gleixner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/page_alloc.c | 79 +++++++++++++++++++++++++++++++++------------------------ 1 file changed, 46 insertions(+), 33 deletions(-) commit 8e7a7f8619f1f93736d9bb7e31caf4721bdc739d Author: Robin Holt Date: Tue Jun 30 14:56:41 2015 -0700 memblock: introduce a for_each_reserved_mem_region iterator Struct page initialisation had been identified as one of the reasons why large machines take a long time to boot. Patches were posted a long time ago to defer initialisation until they were first used. This was rejected on the grounds it should not be necessary to hurt the fast paths. This series reuses much of the work from that time but defers the initialisation of memory to kswapd so that one thread per node initialises memory local to that node. After applying the series and setting the appropriate Kconfig variable I see this in the boot log on a 64G machine [ 7.383764] kswapd 0 initialised deferred memory in 188ms [ 7.404253] kswapd 1 initialised deferred memory in 208ms [ 7.411044] kswapd 3 initialised deferred memory in 216ms [ 7.411551] kswapd 2 initialised deferred memory in 216ms On a 1TB machine, I see [ 8.406511] kswapd 3 initialised deferred memory in 1116ms [ 8.428518] kswapd 1 initialised deferred memory in 1140ms [ 8.435977] kswapd 0 initialised deferred memory in 1148ms [ 8.437416] kswapd 2 initialised deferred memory in 1148ms Once booted the machine appears to work as normal. Boot times were measured from the time shutdown was called until ssh was available again. In the 64G case, the boot time savings are negligible. On the 1TB machine, the savings were 16 seconds. Nate Zimmer said: : On an older 8 TB box with lots and lots of cpus the boot time, as : measure from grub to login prompt, the boot time improved from 1484 : seconds to exactly 1000 seconds. Waiman Long said: : I ran a bootup timing test on a 12-TB 16-socket IvyBridge-EX system. From : grub menu to ssh login, the bootup time was 453s before the patch and 265s : after the patch - a saving of 188s (42%). Daniel Blueman said: : On a 7TB, 1728-core NumaConnect system with 108 NUMA nodes, we're seeing : stock 4.0 boot in 7136s. This drops to 2159s, or a 70% reduction with : this patchset. Non-temporal PMD init (https://lkml.org/lkml/2015/4/23/350) : drops this to 1045s. This patch (of 13): As part of initializing struct page's in 2MiB chunks, we noticed that at the end of free_all_bootmem(), there was nothing which had forced the reserved/allocated 4KiB pages to be initialized. This helper function will be used for that expansion. Signed-off-by: Robin Holt Signed-off-by: Nate Zimmer Signed-off-by: Mel Gorman Tested-by: Nate Zimmer Tested-by: Waiman Long Tested-by: Daniel J Blueman Acked-by: Pekka Enberg Cc: Robin Holt Cc: Dave Hansen Cc: Waiman Long Cc: Scott Norton Cc: "Luck, Tony" Cc: Ingo Molnar Cc: "H. Peter Anvin" Cc: Thomas Gleixner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/memblock.h | 18 ++++++++++++++++++ mm/memblock.c | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) commit 5a60e87603c4c533492c515b7f62578189b03c9c Author: Ilya Dryomov Date: Wed Jun 24 17:24:33 2015 +0300 rbd: use GFP_NOIO in rbd_obj_request_create() rbd_obj_request_create() is called on the main I/O path, so we need to use GFP_NOIO to make sure allocation doesn't blow back on us. Not all callers need this, but I'm still hardcoding the flag inside rather than making it a parameter because a) this is going to stable, and b) those callers shouldn't really use rbd_obj_request_create() and will be fixed in the future. More memory allocation fixes will follow. Cc: stable@vger.kernel.org # 3.10+ Signed-off-by: Ilya Dryomov Reviewed-by: Alex Elder drivers/block/rbd.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 82cd003a77173c91b9acad8033fb7931dac8d751 Author: Ilya Dryomov Date: Mon Jun 29 19:30:23 2015 +0300 crush: fix a bug in tree bucket decode struct crush_bucket_tree::num_nodes is u8, so ceph_decode_8_safe() should be used. -Wconversion catches this, but I guess it went unnoticed in all the noise it spews. The actual problem (at least for common crushmaps) isn't the u32 -> u8 truncation though - it's the advancement by 4 bytes instead of 1 in the crushmap buffer. Fixes: http://tracker.ceph.com/issues/2759 Cc: stable@vger.kernel.org Signed-off-by: Ilya Dryomov Reviewed-by: Josh Durgin net/ceph/osdmap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 36283bf777d963fac099213297e155d071096994 Author: Filipe Manana Date: Sat Jun 20 00:44:51 2015 +0100 Btrfs: fix fsync xattr loss in the fast fsync path After commit 4f764e515361 ("Btrfs: remove deleted xattrs on fsync log replay"), we can end up in a situation where during log replay we end up deleting xattrs that were never deleted when their file was last fsynced. This happens in the fast fsync path (flag BTRFS_INODE_NEEDS_FULL_SYNC is not set in the inode) if the inode has the flag BTRFS_INODE_COPY_EVERYTHING set, the xattr was added in a past transaction and the leaf where the xattr is located was not updated (COWed or created) in the current transaction. In this scenario the xattr item never ends up in the log tree and therefore at log replay time, which makes the replay code delete the xattr from the fs/subvol tree as it thinks that xattr was deleted prior to the last fsync. Fix this by always logging all xattrs, which is the simplest and most reliable way to detect deleted xattrs and replay the deletes at log replay time. This issue is reproducible with the following test case for fstests: seq=`basename $0` seqres=$RESULT_DIR/$seq echo "QA output created by $seq" here=`pwd` tmp=/tmp/$$ status=1 # failure is the default! _cleanup() { _cleanup_flakey rm -f $tmp.* } trap "_cleanup; exit \$status" 0 1 2 3 15 # get standard environment, filters and checks . ./common/rc . ./common/filter . ./common/dmflakey . ./common/attr # real QA test starts here # We create a lot of xattrs for a single file. Only btrfs and xfs are currently # able to store such a large mount of xattrs per file, other filesystems such # as ext3/4 and f2fs for example, fail with ENOSPC even if we attempt to add # less than 1000 xattrs with very small values. _supported_fs btrfs xfs _supported_os Linux _need_to_be_root _require_scratch _require_dm_flakey _require_attrs _require_metadata_journaling $SCRATCH_DEV rm -f $seqres.full _scratch_mkfs >> $seqres.full 2>&1 _init_flakey _mount_flakey # Create the test file with some initial data and make sure everything is # durably persisted. $XFS_IO_PROG -f -c "pwrite -S 0xaa 0 32k" $SCRATCH_MNT/foo | _filter_xfs_io sync # Add many small xattrs to our file. # We create such a large amount because it's needed to trigger the issue found # in btrfs - we need to have an amount that causes the fs to have at least 3 # btree leafs with xattrs stored in them, and it must work on any leaf size # (maximum leaf/node size is 64Kb). num_xattrs=2000 for ((i = 1; i <= $num_xattrs; i++)); do name="user.attr_$(printf "%04d" $i)" $SETFATTR_PROG -n $name -v "val_$(printf "%04d" $i)" $SCRATCH_MNT/foo done # Sync the filesystem to force a commit of the current btrfs transaction, this # is a necessary condition to trigger the bug on btrfs. sync # Now update our file's data and fsync the file. # After a successful fsync, if the fsync log/journal is replayed we expect to # see all the xattrs we added before with the same values (and the updated file # data of course). Btrfs used to delete some of these xattrs when it replayed # its fsync log/journal. $XFS_IO_PROG -c "pwrite -S 0xbb 8K 16K" \ -c "fsync" \ $SCRATCH_MNT/foo | _filter_xfs_io # Simulate a crash/power loss. _load_flakey_table $FLAKEY_DROP_WRITES _unmount_flakey # Allow writes again and mount. This makes the fs replay its fsync log. _load_flakey_table $FLAKEY_ALLOW_WRITES _mount_flakey echo "File content after crash and log replay:" od -t x1 $SCRATCH_MNT/foo echo "File xattrs after crash and log replay:" for ((i = 1; i <= $num_xattrs; i++)); do name="user.attr_$(printf "%04d" $i)" echo -n "$name=" $GETFATTR_PROG --absolute-names -n $name --only-values $SCRATCH_MNT/foo echo done status=0 exit The golden output expects all xattrs to be available, and with the correct values, after the fsync log is replayed. Signed-off-by: Filipe Manana Signed-off-by: Chris Mason fs/btrfs/tree-log.c | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) commit e4545de5b035c7debb73d260c78377dbb69cbfb5 Author: Filipe Manana Date: Wed Jun 17 12:49:23 2015 +0100 Btrfs: fix fsync data loss after append write If we do an append write to a file (which increases its inode's i_size) that does not have the flag BTRFS_INODE_NEEDS_FULL_SYNC set in its inode, and the previous transaction added a new hard link to the file, which sets the flag BTRFS_INODE_COPY_EVERYTHING in the file's inode, and then fsync the file, the inode's new i_size isn't logged. This has the consequence that after the fsync log is replayed, the file size remains what it was before the append write operation, which means users/applications will not be able to read the data that was successsfully fsync'ed before. This happens because neither the inode item nor the delayed inode get their i_size updated when the append write is made - doing so would require starting a transaction in the buffered write path, something that we do not do intentionally for performance reasons. Fix this by making sure that when the flag BTRFS_INODE_COPY_EVERYTHING is set the inode is logged with its current i_size (log the in-memory inode into the log tree). This issue is not a recent regression and is easy to reproduce with the following test case for fstests: seq=`basename $0` seqres=$RESULT_DIR/$seq echo "QA output created by $seq" here=`pwd` tmp=/tmp/$$ status=1 # failure is the default! _cleanup() { _cleanup_flakey rm -f $tmp.* } trap "_cleanup; exit \$status" 0 1 2 3 15 # get standard environment, filters and checks . ./common/rc . ./common/filter . ./common/dmflakey # real QA test starts here _supported_fs generic _supported_os Linux _need_to_be_root _require_scratch _require_dm_flakey _require_metadata_journaling $SCRATCH_DEV _crash_and_mount() { # Simulate a crash/power loss. _load_flakey_table $FLAKEY_DROP_WRITES _unmount_flakey # Allow writes again and mount. This makes the fs replay its fsync log. _load_flakey_table $FLAKEY_ALLOW_WRITES _mount_flakey } rm -f $seqres.full _scratch_mkfs >> $seqres.full 2>&1 _init_flakey _mount_flakey # Create the test file with some initial data and then fsync it. # The fsync here is only needed to trigger the issue in btrfs, as it causes the # the flag BTRFS_INODE_NEEDS_FULL_SYNC to be removed from the btrfs inode. $XFS_IO_PROG -f -c "pwrite -S 0xaa 0 32k" \ -c "fsync" \ $SCRATCH_MNT/foo | _filter_xfs_io sync # Add a hard link to our file. # On btrfs this sets the flag BTRFS_INODE_COPY_EVERYTHING on the btrfs inode, # which is a necessary condition to trigger the issue. ln $SCRATCH_MNT/foo $SCRATCH_MNT/bar # Sync the filesystem to force a commit of the current btrfs transaction, this # is a necessary condition to trigger the bug on btrfs. sync # Now append more data to our file, increasing its size, and fsync the file. # In btrfs because the inode flag BTRFS_INODE_COPY_EVERYTHING was set and the # write path did not update the inode item in the btree nor the delayed inode # item (in memory struture) in the current transaction (created by the fsync # handler), the fsync did not record the inode's new i_size in the fsync # log/journal. This made the data unavailable after the fsync log/journal is # replayed. $XFS_IO_PROG -c "pwrite -S 0xbb 32K 32K" \ -c "fsync" \ $SCRATCH_MNT/foo | _filter_xfs_io echo "File content after fsync and before crash:" od -t x1 $SCRATCH_MNT/foo _crash_and_mount echo "File content after crash and log replay:" od -t x1 $SCRATCH_MNT/foo status=0 exit The expected file output before and after the crash/power failure expects the appended data to be available, which is: 0000000 aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa * 0100000 bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb * 0200000 Cc: stable@vger.kernel.org Signed-off-by: Filipe Manana Reviewed-by: Liu Bo Signed-off-by: Chris Mason fs/btrfs/tree-log.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) commit da288d280d16f4d7e4ada331cb33d381b408b10c Author: Filipe Manana Date: Sat Jun 13 06:55:31 2015 +0100 Btrfs: fix crash on close_ctree() if cleaner starts new transaction Often when running fstests btrfs/079 I was running into the following trace during umount on one of my qemu/kvm test vms: [ 8245.682441] WARNING: CPU: 8 PID: 25064 at fs/btrfs/extent-tree.c:138 btrfs_put_block_group+0x51/0x69 [btrfs]() [ 8245.685039] Modules linked in: btrfs dm_flakey dm_mod crc32c_generic xor raid6_pq nfsd auth_rpcgss oid_registry nfs_acl nfs lockd grace fscache sunrpc loop fuse parport_pc i2c_piix4 acpi_cpufreq processor psmouse i2c_core thermal_sys parport evdev serio_raw button pcspkr microcode ext4 crc16 jbd2 mbcache sg sr_mod cdrom sd_mod ata_generic virtio_scsi ata_piix libata floppy virtio_pci virtio_ring scsi_mod virtio e1000 [last unloaded: btrfs] [ 8245.693860] CPU: 8 PID: 25064 Comm: umount Tainted: G W 4.1.0-rc5-btrfs-next-10+ #1 [ 8245.695081] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.8.1-0-g4adadbd-20150316_085822-nilsson.home.kraxel.org 04/01/2014 [ 8245.697583] 0000000000000009 ffff88020d047ce8 ffffffff8145eec7 ffffffff81095dce [ 8245.699234] 0000000000000000 ffff88020d047d28 ffffffff8104b399 0000000000000028 [ 8245.700995] ffffffffa04db07b ffff8801c6036c00 ffff8801c6036d68 ffff880202eb40b0 [ 8245.702510] Call Trace: [ 8245.703006] [] dump_stack+0x4f/0x7b [ 8245.705393] [] ? console_unlock+0x356/0x3a2 [ 8245.706569] [] warn_slowpath_common+0xa1/0xbb [ 8245.707747] [] ? btrfs_put_block_group+0x51/0x69 [btrfs] [ 8245.709101] [] warn_slowpath_null+0x1a/0x1c [ 8245.710274] [] btrfs_put_block_group+0x51/0x69 [btrfs] [ 8245.711823] [] btrfs_free_block_groups+0x145/0x322 [btrfs] [ 8245.713251] [] close_ctree+0x1ef/0x325 [btrfs] [ 8245.714448] [] ? evict_inodes+0xdc/0xeb [ 8245.715539] [] btrfs_put_super+0x19/0x1b [btrfs] [ 8245.716835] [] generic_shutdown_super+0x73/0xef [ 8245.718015] [] kill_anon_super+0x13/0x1e [ 8245.719101] [] btrfs_kill_super+0x17/0x23 [btrfs] [ 8245.720316] [] deactivate_locked_super+0x3b/0x68 [ 8245.721517] [] deactivate_super+0x3f/0x43 [ 8245.722581] [] cleanup_mnt+0x59/0x78 [ 8245.723538] [] __cleanup_mnt+0x12/0x14 [ 8245.724572] [] task_work_run+0x8f/0xbc [ 8245.725598] [] do_notify_resume+0x45/0x53 [ 8245.726892] [] int_signal+0x12/0x17 [ 8245.737887] ---[ end trace a01d038397e99b92 ]--- [ 8245.769363] general protection fault: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC [ 8245.770737] Modules linked in: btrfs dm_flakey dm_mod crc32c_generic xor raid6_pq nfsd auth_rpcgss oid_registry nfs_acl nfs lockd grace fscache sunrpc loop fuse parport_pc i2c_piix4 acpi_cpufreq processor psmouse i2c_core thermal_sys parport evdev serio_raw button pcspkr microcode ext4 crc16 jbd2 mbcache sg sr_mod cdrom sd_mod ata_generic virtio_scsi ata_piix libata floppy virtio_pci virtio_ring scsi_mod virtio e1000 [last unloaded: btrfs] [ 8245.772641] CPU: 2 PID: 25064 Comm: umount Tainted: G W 4.1.0-rc5-btrfs-next-10+ #1 [ 8245.772641] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.8.1-0-g4adadbd-20150316_085822-nilsson.home.kraxel.org 04/01/2014 [ 8245.772641] task: ffff880013005810 ti: ffff88020d044000 task.ti: ffff88020d044000 [ 8245.772641] RIP: 0010:[] [] btrfs_queue_work+0x2c/0x14d [btrfs] [ 8245.772641] RSP: 0018:ffff88020d0478b8 EFLAGS: 00010202 [ 8245.772641] RAX: 0000000000000004 RBX: 6b6b6b6b6b6b6b6b RCX: ffffffffa0581488 [ 8245.772641] RDX: 0000000000000000 RSI: ffff880194b7bf48 RDI: ffff880144b6a7a0 [ 8245.772641] RBP: ffff88020d0478d8 R08: 0000000000000000 R09: 000000000000ffff [ 8245.772641] R10: 0000000000000004 R11: 0000000000000005 R12: ffff880194b7bf48 [ 8245.772641] R13: ffff880194b7bf48 R14: 0000000000000410 R15: 0000000000000000 [ 8245.772641] FS: 00007f991e77d840(0000) GS:ffff88023e280000(0000) knlGS:0000000000000000 [ 8245.772641] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b [ 8245.772641] CR2: 00007fbbd325ee68 CR3: 000000021de8e000 CR4: 00000000000006e0 [ 8245.772641] Stack: [ 8245.772641] ffff880194b7bf00 ffff880202eb4000 ffff880194b7bf48 0000000000000410 [ 8245.772641] ffff88020d047958 ffffffffa04ec6d5 ffff8801629b2ee8 0000000082987570 [ 8245.772641] 0000000000a5813f 0000000000000001 ffff880013006100 0000000000000002 [ 8245.772641] Call Trace: [ 8245.772641] [] btrfs_wq_submit_bio+0xe1/0x17b [btrfs] [ 8245.772641] [] ? check_irq_usage+0x76/0x87 [ 8245.772641] [] btree_submit_bio_hook+0xb6/0xd9 [btrfs] [ 8245.772641] [] ? btree_csum_one_bio+0xad/0xad [btrfs] [ 8245.772641] [] ? btree_io_failed_hook+0x5e/0x5e [btrfs] [ 8245.772641] [] submit_one_bio+0x8c/0xc7 [btrfs] [ 8245.772641] [] submit_extent_page.isra.18+0x9d/0x186 [btrfs] [ 8245.772641] [] write_one_eb+0x117/0x1ae [btrfs] [ 8245.772641] [] ? end_extent_buffer_writeback+0x21/0x21 [btrfs] [ 8245.772641] [] btree_write_cache_pages+0x2ab/0x385 [btrfs] [ 8245.772641] [] btree_writepages+0x23/0x5c [btrfs] [ 8245.772641] [] do_writepages+0x23/0x2c [ 8245.772641] [] __writeback_single_inode+0xda/0x5bd [ 8245.772641] [] ? writeback_single_inode+0x2b/0x173 [ 8245.772641] [] writeback_single_inode+0xc8/0x173 [ 8245.772641] [] write_inode_now+0x8a/0x95 [ 8245.772641] [] ? _atomic_dec_and_lock+0x30/0x4e [ 8245.772641] [] iput+0x17d/0x26a [ 8245.772641] [] close_ctree+0x22a/0x325 [btrfs] [ 8245.772641] [] ? evict_inodes+0xdc/0xeb [ 8245.772641] [] btrfs_put_super+0x19/0x1b [btrfs] [ 8245.772641] [] generic_shutdown_super+0x73/0xef [ 8245.772641] [] kill_anon_super+0x13/0x1e [ 8245.772641] [] btrfs_kill_super+0x17/0x23 [btrfs] [ 8245.772641] [] deactivate_locked_super+0x3b/0x68 [ 8245.772641] [] deactivate_super+0x3f/0x43 [ 8245.772641] [] cleanup_mnt+0x59/0x78 [ 8245.772641] [] __cleanup_mnt+0x12/0x14 [ 8245.772641] [] task_work_run+0x8f/0xbc [ 8245.772641] [] do_notify_resume+0x45/0x53 [ 8245.772641] [] int_signal+0x12/0x17 [ 8245.772641] Code: 1f 44 00 00 55 48 89 e5 41 56 41 55 41 54 53 49 89 f4 48 8b 46 70 a8 04 74 09 48 8b 5f 08 48 85 db 75 03 48 8b 1f 49 89 5c 24 68 <83> 7b 5c ff 74 04 f0 ff 43 50 49 83 7c 24 08 00 74 2c 4c 8d 6b [ 8245.772641] RIP [] btrfs_queue_work+0x2c/0x14d [btrfs] [ 8245.772641] RSP [ 8245.845040] ---[ end trace a01d038397e99b93 ]--- For logical reasons such as the phase of the moon, this happened more often with "-o inode_cache" than without any mount options. After some debugging it turned out to be simple to understand what was happening: 1) close_ctree() is called; 2) It then stops the transaction kthread, which commits the current transaction; 3) It asks the cleaner kthread to stop, which is currently running btrfs_delete_unused_bgs(); 4) btrfs_delete_unused_bgs() finds an unused block group, starts a new transaction, deletes the block group, which implies COWing some tree nodes and leafs and dirtying their respective pages, and then finally it ends the transaction it started, without committing it; 5) The cleaner kthread stops; 6) close_ctree() releases (from memory) the block group objects, which produces the warning in the trace pasted above; 7) Then it invalidates all pages of the btree inode, by calling invalidate_inode_pages2(), which waits for any pages under writeback, and releases any non-dirty pages; 8) All work queues are destroyed (waiting first for their current tasks to finish execution); 9) A final iput() is called against the btree inode; 10) This iput triggers a writeback of the btree inode because it still has dirty pages; 11) This starts the whole chain of callbacks for the btree inode until it eventually reaches btrfs_wq_submit_bio() where it leads to a NULL pointer dereference because the work queues were already destroyed. Fix this by making the cleaner commit any transaction that it started after the transaction kthread was stopped. Signed-off-by: Filipe Manana Signed-off-by: Chris Mason fs/btrfs/disk-io.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) commit ae9d8f17118551bedd797406a6768b87c2146234 Author: Filipe Manana Date: Sat Jun 13 06:52:57 2015 +0100 Btrfs: fix race between caching kthread and returning inode to inode cache While the inode cache caching kthread is calling btrfs_unpin_free_ino(), we could have a concurrent call to btrfs_return_ino() that adds a new entry to the root's free space cache of pinned inodes. This concurrent call does not acquire the fs_info->commit_root_sem before adding a new entry if the caching state is BTRFS_CACHE_FINISHED, which is a problem because the caching kthread calls btrfs_unpin_free_ino() after setting the caching state to BTRFS_CACHE_FINISHED and therefore races with the task calling btrfs_return_ino(), which is adding a new entry, while the former (caching kthread) is navigating the cache's rbtree, removing and freeing nodes from the cache's rbtree without acquiring the spinlock that protects the rbtree. This race resulted in memory corruption due to double free of struct btrfs_free_space objects because both tasks can end up doing freeing the same objects. Note that adding a new entry can result in merging it with other entries in the cache, in which case those entries are freed. This is particularly important as btrfs_free_space structures are also used for the block group free space caches. This memory corruption can be detected by a debugging kernel, which reports it with the following trace: [132408.501148] slab error in verify_redzone_free(): cache `btrfs_free_space': double free detected [132408.505075] CPU: 15 PID: 12248 Comm: btrfs-ino-cache Tainted: G W 4.1.0-rc5-btrfs-next-10+ #1 [132408.505075] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.8.1-0-g4adadbd-20150316_085822-nilsson.home.kraxel.org 04/01/2014 [132408.505075] ffff880023e7d320 ffff880163d73cd8 ffffffff8145eec7 ffffffff81095dce [132408.505075] ffff880009735d40 ffff880163d73ce8 ffffffff81154e1e ffff880163d73d68 [132408.505075] ffffffff81155733 ffffffffa054a95a ffff8801b6099f00 ffffffffa0505b5f [132408.505075] Call Trace: [132408.505075] [] dump_stack+0x4f/0x7b [132408.505075] [] ? console_unlock+0x356/0x3a2 [132408.505075] [] __slab_error.isra.28+0x25/0x36 [132408.505075] [] __cache_free+0xe2/0x4b6 [132408.505075] [] ? __btrfs_add_free_space+0x2f0/0x343 [btrfs] [132408.505075] [] ? btrfs_unpin_free_ino+0x8e/0x99 [btrfs] [132408.505075] [] ? time_hardirqs_off+0x15/0x28 [132408.505075] [] ? trace_hardirqs_off+0xd/0xf [132408.505075] [] ? kfree+0xb6/0x14e [132408.505075] [] kfree+0xe5/0x14e [132408.505075] [] btrfs_unpin_free_ino+0x8e/0x99 [btrfs] [132408.505075] [] caching_kthread+0x29e/0x2d9 [btrfs] [132408.505075] [] ? btrfs_unpin_free_ino+0x99/0x99 [btrfs] [132408.505075] [] kthread+0xef/0xf7 [132408.505075] [] ? time_hardirqs_on+0x15/0x28 [132408.505075] [] ? __kthread_parkme+0xad/0xad [132408.505075] [] ret_from_fork+0x42/0x70 [132408.505075] [] ? __kthread_parkme+0xad/0xad [132408.505075] ffff880023e7d320: redzone 1:0x9f911029d74e35b, redzone 2:0x9f911029d74e35b. [132409.501654] slab: double free detected in cache 'btrfs_free_space', objp ffff880023e7d320 [132409.503355] ------------[ cut here ]------------ [132409.504241] kernel BUG at mm/slab.c:2571! Therefore fix this by having btrfs_unpin_free_ino() acquire the lock that protects the rbtree while doing the searches and removing entries. Fixes: 1c70d8fb4dfa ("Btrfs: fix inode caching vs tree log") Cc: stable@vger.kernel.org Signed-off-by: Filipe Manana Signed-off-by: Chris Mason fs/btrfs/inode-map.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) commit c3f4a1685bb87e59c886ee68f7967eae07d4dffa Author: Filipe Manana Date: Sat Jun 13 06:52:56 2015 +0100 Btrfs: use kmem_cache_free when freeing entry in inode cache The free space entries are allocated using kmem_cache_zalloc(), through __btrfs_add_free_space(), therefore we should use kmem_cache_free() and not kfree() to avoid any confusion and any potential problem. Looking at the kfree() definition at mm/slab.c it has the following comment: /* * (...) * * Don't free memory not originally allocated by kmalloc() * or you will run into trouble. */ So better be safe and use kmem_cache_free(). Cc: stable@vger.kernel.org Signed-off-by: Filipe Manana Reviewed-by: David Sterba Signed-off-by: Chris Mason fs/btrfs/inode-map.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 67c5e7d464bc466471b05e027abe8a6b29687ebd Author: Filipe Manana Date: Thu Jun 11 00:58:53 2015 +0100 Btrfs: fix race between balance and unused block group deletion We have a race between deleting an unused block group and balancing the same block group that leads to an assertion failure/BUG(), producing the following trace: [181631.208236] BTRFS: assertion failed: 0, file: fs/btrfs/volumes.c, line: 2622 [181631.220591] ------------[ cut here ]------------ [181631.222959] kernel BUG at fs/btrfs/ctree.h:4062! [181631.223932] invalid opcode: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC [181631.224566] Modules linked in: btrfs dm_flakey dm_mod crc32c_generic xor raid6_pq nfsd auth_rpcgss oid_registry nfs_acl nfs lockd grace fscache sunrpc loop fuse acpi_cpufreq parpor$ [181631.224566] CPU: 8 PID: 17451 Comm: btrfs Tainted: G W 4.1.0-rc5-btrfs-next-10+ #1 [181631.224566] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.8.1-0-g4adadbd-20150316_085822-nilsson.home.kraxel.org 04/01/2014 [181631.224566] task: ffff880127e09590 ti: ffff8800b5824000 task.ti: ffff8800b5824000 [181631.224566] RIP: 0010:[] [] assfail.constprop.50+0x1e/0x20 [btrfs] [181631.224566] RSP: 0018:ffff8800b5827ae8 EFLAGS: 00010246 [181631.224566] RAX: 0000000000000040 RBX: ffff8800109fc218 RCX: ffffffff81095dce [181631.224566] RDX: 0000000000005124 RSI: ffffffff81464819 RDI: 00000000ffffffff [181631.224566] RBP: ffff8800b5827ae8 R08: 0000000000000001 R09: 0000000000000000 [181631.224566] R10: 0000000000000000 R11: 0000000000000000 R12: ffff8800109fc200 [181631.224566] R13: ffff880020095000 R14: ffff8800b1a13f38 R15: ffff880020095000 [181631.224566] FS: 00007f70ca0b0c80(0000) GS:ffff88013ec00000(0000) knlGS:0000000000000000 [181631.224566] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b [181631.224566] CR2: 00007f2872ab6e68 CR3: 00000000a717c000 CR4: 00000000000006e0 [181631.224566] Stack: [181631.224566] ffff8800b5827ba8 ffffffffa03f3916 ffff8800b5827b38 ffffffffa03d080e [181631.224566] ffffffffa03d1423 ffff880020095000 ffff88001233c000 0000000000000001 [181631.224566] ffff880020095000 ffff8800b1a13f38 0000000a69c00000 0000000000000000 [181631.224566] Call Trace: [181631.224566] [] btrfs_remove_chunk+0xa4/0x6bb [btrfs] [181631.224566] [] ? join_transaction.isra.8+0xb9/0x3ba [btrfs] [181631.224566] [] ? wait_current_trans.isra.13+0x22/0xfc [btrfs] [181631.224566] [] btrfs_relocate_chunk.isra.29+0x8f/0xa7 [btrfs] [181631.224566] [] btrfs_balance+0xaa4/0xc52 [btrfs] [181631.224566] [] btrfs_ioctl_balance+0x23f/0x2b0 [btrfs] [181631.224566] [] ? trace_hardirqs_on+0xd/0xf [181631.224566] [] btrfs_ioctl+0xfe2/0x2220 [btrfs] [181631.224566] [] ? __this_cpu_preempt_check+0x13/0x15 [181631.224566] [] ? arch_local_irq_save+0x9/0xc [181631.224566] [] ? handle_mm_fault+0x834/0xcd2 [181631.224566] [] ? handle_mm_fault+0x834/0xcd2 [181631.224566] [] ? __do_page_fault+0x211/0x424 [181631.224566] [] do_vfs_ioctl+0x3c6/0x479 (...) The sequence of steps leading to this are: CPU 0 CPU 1 btrfs_balance() btrfs_relocate_chunk() btrfs_relocate_block_group(bg X) btrfs_lookup_block_group(bg X) cleaner_kthread locks fs_info->cleaner_mutex btrfs_delete_unused_bgs() finds bg X, which became unused in the previous transaction checks bg X ->ro == 0, so it proceeds sets bg X ->ro to 1 (btrfs_set_block_group_ro(bg X)) blocks on fs_info->cleaner_mutex btrfs_remove_chunk(bg X) unlocks fs_info->cleaner_mutex acquires fs_info->cleaner_mutex relocate_block_group() --> does nothing, no extents found in the extent tree from bg X unlocks fs_info->cleaner_mutex btrfs_relocate_block_group(bg X) returns btrfs_remove_chunk(bg X) extent map not found --> ASSERT(0) Fix this by using a new mutex to make sure these 2 operations, block group relocation and removal, are serialized. This issue is reproducible by running fstests generic/038 (which stresses chunk allocation and automatic removal of unused block groups) together with the following balance loop: while true; do btrfs balance start -dusage=0 ; done Signed-off-by: Filipe Manana Signed-off-by: Chris Mason fs/btrfs/ctree.h | 1 + fs/btrfs/disk-io.c | 12 +++++++++++- fs/btrfs/extent-tree.c | 3 +++ fs/btrfs/volumes.c | 48 +++++++++++++++++++++++++++++++++++++++++++----- 4 files changed, 58 insertions(+), 6 deletions(-) commit e82afc52abff07a4acbc90f899598ebafb662831 Author: Zhao Lei Date: Fri Jun 12 20:36:58 2015 +0800 btrfs: add error handling for scrub_workers_get() Although it is a rare case, we'd better free previous allocated memory on error. Signed-off-by: Zhao Lei Signed-off-by: Qu Wenruo Signed-off-by: Chris Mason fs/btrfs/scrub.c | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) commit 65f5333875d7bbfc13436e224a181d10a80d1ada Author: Zhao Lei Date: Mon Jun 8 20:05:50 2015 +0800 btrfs: cleanup noused initialization of dev in btrfs_end_bio() It is introduced by: c404e0dc2c843b154f9a36c3aec10d0a715d88eb Btrfs: fix use-after-free in the finishing procedure of the device replace But seems no relationship with that bug, this patch revirt these code block for cleanup. Signed-off-by: Zhao Lei Signed-off-by: Chris Mason fs/btrfs/volumes.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fe7599079b03d521d376da88920cc7b87f71ae25 Author: Yang Dongsheng Date: Wed Jun 3 14:57:32 2015 +0800 btrfs: qgroup: allow user to clear the limitation on qgroup Currently, we can only set a limitation on a qgroup, but we can not clear it. This patch provide a choice to user to clear a limitation on qgroup by passing a value of CLEAR_VALUE(-1) to kernel. Reported-by: Tsutomu Itoh Signed-off-by: Dongsheng Yang Tested-by: Tsutomu Itoh Signed-off-by: Chris Mason fs/btrfs/qgroup.c | 49 +++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 41 insertions(+), 8 deletions(-) commit 193ccca43850d2355e7690a93ab9d7d78d38f905 Author: Dan Williams Date: Tue Jun 30 16:09:39 2015 -0400 nfit: fix smatch "use after null check" report drivers/acpi/nfit.c:1224 acpi_nfit_blk_region_enable() error: we previously assumed 'nfit_mem' could be null (see line 1223) drivers/acpi/nfit.c 1222 nfit_mem = nvdimm_provider_data(nvdimm); 1223 if (!nfit_mem || !nfit_mem->dcr || !nfit_mem->bdw) { ^^^^^^^^ Check. 1224 dev_dbg(dev, "%s: missing%s%s%s\n", __func__, 1225 nfit_mem ? "" : " nfit_mem", 1226 nfit_mem->dcr ? "" : " dcr", ^^^^^^^^^^^^^ Unchecked dereference. Reported-by: Dan Carpenter Acked-by: Ross Zwisler Signed-off-by: Dan Williams drivers/acpi/nfit.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit ab944c83f6690df0c7f67e6bcc29fc0c82ef6021 Author: Tedd Ho-Jeong An Date: Tue Jun 30 11:43:40 2015 -0700 Bluetooth: Reinitialize the list after deletion for session user list If the user->list is deleted with list_del(), it doesn't initialize the entry which can cause the issue with list_empty(). According to the comment from the list.h, list_empty() returns false even if the list is empty and put the entry in an undefined state. /** * list_del - deletes entry from list. * @entry: the element to delete from the list. * Note: list_empty() on entry does not return true after this, the entry is * in an undefined state. */ Because of this behavior, list_empty() returns false even if list is empty when the device is reconnected. So, user->list needs to be re-initialized after list_del(). list.h already have a macro list_del_init() which deletes the entry and initailze it again. Signed-off-by: Tedd Ho-Jeong An Tested-by: Jörg Otte Signed-off-by: Marcel Holtmann net/bluetooth/l2cap_core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit daa1dee405d7d3d3e816b84a692e838a5647a02a Author: Axel Lin Date: Sun Jun 28 17:00:57 2015 +0800 nvdimm: Fix return value of nvdimm_bus_init() if class_create() fails Return proper error if class_create() fails. Signed-off-by: Axel Lin Signed-off-by: Dan Williams drivers/nvdimm/bus.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit af834d457d9ed69e14836b63d0da198fdd2ec706 Author: Dan Williams Date: Tue Jun 30 14:10:09 2015 -0400 libnvdimm: smatch cleanups in __nd_ioctl Drop use of access_ok() since we are already using copy_{to|from}_user() which do their own access_ok(). Reported-by: Dan Carpenter Signed-off-by: Dan Williams drivers/nvdimm/bus.c | 7 ------- 1 file changed, 7 deletions(-) commit b265da5a45ce60bd3d7505cc0eaa6cfba50946a1 Author: Shannon Zhao Date: Mon Jun 29 09:02:40 2015 +0100 arm64: perf: fix unassigned cpu_pmu->plat_device when probing PMU PPIs Commit d795ef9aa831 ("arm64: perf: don't warn about missing interrupt-affinity property for PPIs") added a check for PPIs so that we avoid parsing the interrupt-affinity property for these naturally affine interrupts. Unfortunately, this check can trigger an early (successful) return and we will not assign the value of cpu_pmu->plat_device. This patch fixes the issue. Signed-off-by: Shannon Zhao Signed-off-by: Will Deacon arch/arm64/kernel/perf_event.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 18a11b5e79697ddc61e30181737c91ce21eaa859 Author: Stephen Boyd Date: Wed Jun 3 21:53:37 2015 +0100 arm64: perf: Don't use of_node after putting it It's possible, albeit unlikely, that using the of_node here will reference freed memory. Call of_node_put() after printing the name to be safe. Signed-off-by: Stephen Boyd Signed-off-by: Will Deacon arch/arm64/kernel/perf_event.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 1e43ba9cd867f05f3e85579c370b939e1ce585e9 Author: Ard Biesheuvel Date: Tue Jun 30 18:04:49 2015 +0200 arm64: fix incorrect use of pgprot_t variable This fixes a build failure under STRICT_MM_TYPECHECKS, by adding a missing pgprot_val() around a pgport_t reference. Signed-off-by: Ard Biesheuvel Signed-off-by: Catalin Marinas arch/arm64/mm/mmu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b922622ec6efad1f28ad13053fd17e744614f77b Author: Craig Gallek Date: Tue Jun 30 12:49:32 2015 -0400 sock_diag: don't broadcast kernel sockets Kernel sockets do not hold a reference for the network namespace to which they point. Socket destruction broadcasting relies on the network namespace and will cause the splat below when a kernel socket is destroyed. This fix simply ignores kernel sockets when they are destroyed. Reported as: general protection fault: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC CPU: 1 PID: 9130 Comm: kworker/1:1 Not tainted 4.1.0-gelk-debug+ #1 Workqueue: sock_diag_events sock_diag_broadcast_destroy_work Stack: ffff8800b9c586c0 ffff8800b9c586c0 ffff8800ac4692c0 ffff8800936d4a90 ffff8800352efd38 ffffffff8469a93e ffff8800352efd98 ffffffffc09b9b90 ffff8800352efd78 ffff8800ac4692c0 ffff8800b9c586c0 ffff8800831b6ab8 Call Trace: [] ? mutex_unlock+0xe/0x10 [] ? inet_diag_handler_get_info+0x110/0x1fb [inet_diag] [] netlink_broadcast+0x1d/0x20 [] ? mutex_unlock+0xe/0x10 [] sock_diag_broadcast_destroy_work+0xd5/0x160 [] process_one_work+0x147/0x420 [] worker_thread+0x69/0x470 [] ? preempt_count_sub+0xa3/0xf0 [] ? rescuer_thread+0x320/0x320 [] kthread+0x107/0x120 [] ? kthread_create_on_node+0x1b0/0x1b0 [] ret_from_fork+0x3f/0x70 [] ? kthread_create_on_node+0x1b0/0x1b0 Tested: Using a debug kernel while 'ss -E' is running: ip netns add test-ns ip netns delete test-ns Fixes: eb4cb008529c sock_diag: define destruction multicast groups Fixes: 26abe14379f8 net: Modify sk_alloc to not reference count the netns of kernel sockets. Reported-by: Dave Jones Suggested-by: Eric Dumazet Signed-off-by: Craig Gallek Signed-off-by: David S. Miller net/core/sock.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7f4ef975e96ff1a050d4e496c59bbd33e28028ed Merge: 279c6c7 b65657f Author: David S. Miller Date: Tue Jun 30 09:37:10 2015 -0700 Merge branch 'mvneta-jumbo-frames' Simon Guinot says: ==================== Fix Ethernet jumbo frames support for Armada 370 and 38x This patch series fixes the Ethernet jumbo frames support for the SoCs Armada 370, 380 and 385. Unlike Armada XP, the Ethernet controller for this SoCs don't support TCP/IP checksumming with a frame size larger than 1600 bytes. This patches should be applied to the -stable kernels 3.8 and onwards. Changes since v1: - Use a new compatible string for the Ethernet IP found in Armada XP SoCs (instead of using an optional property). - Fix the issue for the Armada 380 and 385 SoCs as well. Changes since v2: - Add Acked-by from Gregory Clement. - Add "Fixes:" tag to each commits. Changes since v3: - Fix patch 3 name: replace prefix "ARM: mvebu:" with "net: mvneta:". ==================== Signed-off-by: David S. Miller commit b65657fc240ae6c1d2a1e62db9a0e61ac9631d7a Author: Simon Guinot Date: Tue Jun 30 16:20:22 2015 +0200 net: mvneta: disable IP checksum with jumbo frames for Armada 370 The Ethernet controller found in the Armada 370, 380 and 385 SoCs don't support TCP/IP checksumming with frame sizes larger than 1600 bytes. This patch fixes the issue by disabling the features NETIF_F_IP_CSUM and NETIF_F_TSO for the Armada 370 and compatibles SoCs when the MTU is set to a value greater than 1600 bytes. Signed-off-by: Simon Guinot Fixes: c5aff18204da ("net: mvneta: driver for Marvell Armada 370/XP network unit") Cc: # v3.8+ Acked-by: Thomas Petazzoni Signed-off-by: David S. Miller drivers/net/ethernet/marvell/mvneta.c | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) commit ea3b55fe83b5fcede82d183164b9d6831b26e33b Author: Simon Guinot Date: Tue Jun 30 16:20:21 2015 +0200 ARM: mvebu: update Ethernet compatible string for Armada XP This patch updates the Ethernet DT nodes for Armada XP SoCs with the compatible string "marvell,armada-xp-neta". Signed-off-by: Simon Guinot Fixes: 77916519cba3 ("arm: mvebu: Armada XP MV78230 has only three Ethernet interfaces") Cc: # v3.8+ Acked-by: Gregory CLEMENT Reviewed-by: Thomas Petazzoni Signed-off-by: David S. Miller arch/arm/boot/dts/armada-370-xp.dtsi | 2 -- arch/arm/boot/dts/armada-370.dtsi | 8 ++++++++ arch/arm/boot/dts/armada-xp-mv78260.dtsi | 2 +- arch/arm/boot/dts/armada-xp-mv78460.dtsi | 2 +- arch/arm/boot/dts/armada-xp.dtsi | 10 +++++++++- 5 files changed, 19 insertions(+), 5 deletions(-) commit f522a975a8101895a85354b9c143f41b8248e71a Author: Simon Guinot Date: Tue Jun 30 16:20:20 2015 +0200 net: mvneta: introduce compatible string "marvell, armada-xp-neta" The mvneta driver supports the Ethernet IP found in the Armada 370, XP, 380 and 385 SoCs. Since at least one more hardware feature is available for the Armada XP SoCs then a way to identify them is needed. This patch introduces a new compatible string "marvell,armada-xp-neta". Signed-off-by: Simon Guinot Fixes: c5aff18204da ("net: mvneta: driver for Marvell Armada 370/XP network unit") Cc: # v3.8+ Acked-by: Gregory CLEMENT Acked-by: Thomas Petazzoni Signed-off-by: David S. Miller Documentation/devicetree/bindings/net/marvell-armada-370-neta.txt | 2 +- drivers/net/ethernet/marvell/mvneta.c | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) commit 31f02455455d405320e2f749696bef4e02903b35 Author: Dan Williams Date: Tue Jun 30 12:07:17 2015 -0400 sparse: fix misplaced __pmem definition Move the definition of __pmem outside of CONFIG_SPARSE_RCU_POINTER to fix: drivers/nvdimm/pmem.c:198:17: sparse: too many arguments for function __builtin_expect drivers/nvdimm/pmem.c:36:33: sparse: expected ; at end of declaration drivers/nvdimm/pmem.c:48:21: sparse: void declaration ...due to __pmem failing to be defined in some configurations when CONFIG_SPARSE_RCU_POINTER=y. Reported-by: kbuild test robot Reported-by: Dan Carpenter Signed-off-by: Dan Williams include/linux/compiler.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 48a9b733e644ab4cc8e2a98950a36ddb12b8c54e Author: Geert Uytterhoeven Date: Fri Jun 26 14:42:45 2015 +0200 of/irq: Rename "intc_desc" to "of_intc_desc" to fix OF on sh Now CONFIG_OF can be enabled on sh: drivers/of/irq.c:472:8: error: redefinition of 'struct intc_desc' include/linux/sh_intc.h:109:8: note: originally defined here As "intc_desc" is used all over the place in sh platform code, while drivers/of/irq.c has a local definition used in a single function, rename the latter by prefixing it with "of_". Signed-off-by: Geert Uytterhoeven Signed-off-by: Grant Likely drivers/of/irq.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 30b03d05e07467b8c6ec683ea96b5bffcbcd3931 Author: Marek Marczykowski-Górecki Date: Fri Jun 26 03:28:24 2015 +0200 xen/gntdevt: Fix race condition in gntdev_release() While gntdev_release() is called the MMU notifier is still registered and can traverse priv->maps list even if no pages are mapped (which is the case -- gntdev_release() is called after all). But gntdev_release() will clear that list, so make sure that only one of those things happens at the same time. Signed-off-by: Marek Marczykowski-Górecki Cc: Signed-off-by: David Vrabel drivers/xen/gntdev.c | 2 ++ 1 file changed, 2 insertions(+) commit d23b251669e20b3989643d9c38228039c510478f Author: Jeremy Linton Date: Mon Jun 29 18:50:55 2015 -0500 of/irq: Fix pSeries boot failure of_irq_parse_raw() needs to return the correct interrupt controller node when an interrupt-map property doesn't exist. It allows of_irq_parse_raw() to return the node pointer of the interrupt controller, rather than the parent bus. This allows ics_rtas_host_match() to detect that the controller is a legacy 8259 and avoid using xics. This avoids an RTAS assertion/crash during early kernel bootstrapping. Signed-off-by: Jeremy Linton Reviewed-by: Benjamin Herrenschmidt Signed-off-by: Grant Likely drivers/of/irq.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit ee46f3c7d79c334e8bdc9947503e329dc27c0b47 Author: Ander Conselvan de Oliveira Date: Tue Jun 30 16:10:38 2015 +0300 drm/i915: Clear pipe's pll hw state in hsw_dp_set_ddi_pll_sel() Similarly to what is done for SKL, clear the dpll_hw_state of the pipe config in hsw_dp_set_ddi_pll_sel(), since it main contain stale values. That can happen if a crtc that was previously driving an HDMI connector switches to a DP connector. In that case, the wrpll field was left with its old value, leading to warnings like the one below: [drm:check_crtc_state [i915]] *ERROR* mismatch in dpll_hw_state.wrpll (expected 0xb035061f, found 0x00000000) ------------[ cut here ]------------ WARNING: CPU: 1 PID: 767 at drivers/gpu/drm/i915/intel_display.c:12324 check_crtc_state+0x975/0x10b0 [i915]() pipe state doesn't match! This regression was indroduced in commit dd3cd74acf12723045a64f1f2c6298ac7b34a5d5 Author: Ander Conselvan de Oliveira Date: Fri May 15 13:34:29 2015 +0300 drm/i915: Don't overwrite (e)DP PLL selection on SKL Reported-by: Linus Torvalds Signed-off-by: Ander Conselvan de Oliveira Tested-by: Jani Nikula Reviewed-by: Daniel Vetter Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_dp.c | 3 +++ 1 file changed, 3 insertions(+) commit 479e9a95120aaae0bf0d3e0b5b26b36ac4a347b6 Author: Alex Deucher Date: Tue Jun 30 09:30:01 2015 -0400 drm/radeon: only check the sink type on DP connectors Avoids a crash on pre-DP asics that support HDMI. Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/radeon/radeon_audio.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit becfc3c86df963491ff1d5ffc6131a06af6bb851 Merge: ce32f85 0b34c1a4 Author: Grant Likely Date: Tue Jun 30 14:28:52 2015 +0100 Merge remote-tracking branch 'robh/for-next' into devicetree/next commit 93472aff802fd7b61f2209335207e9bd793012f7 Author: Peter Zijlstra Date: Wed Jun 24 16:47:50 2015 +0200 perf/x86: Fix 'active_events' imbalance Commit 1b7b938f1817 ("perf/x86/intel: Fix PMI handling for Intel PT") conditionally increments active_events in x86_add_exclusive() but unconditionally decrements in x86_del_exclusive(). These extra decrements can lead to the situation where active_events is zero and thus the PMI handler is 'disabled' while we have active events on the PMU generating PMIs. This leads to a truckload of: Uhhuh. NMI received for unknown reason 21 on CPU 28. Do you have a strange power saving mode enabled? Dazed and confused, but trying to continue messages and generally messes up perf. Remove the condition on the increment, double increment balanced by a double decrement is perfectly fine. Restructure the code a little bit to make the unconditional inc a bit more natural. Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: alexander.shishkin@linux.intel.com Cc: brgerst@gmail.com Cc: dvlasenk@redhat.com Cc: luto@amacapital.net Cc: oleg@redhat.com Fixes: 1b7b938f1817 ("perf/x86/intel: Fix PMI handling for Intel PT") Link: http://lkml.kernel.org/r/20150624144750.GJ18673@twins.programming.kicks-ass.net Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event.c | 36 +++++++++++++----------------------- 1 file changed, 13 insertions(+), 23 deletions(-) commit dc5fb575df9cdd34ac12bf7a814c9beae0a7ca9b Merge: db52ef7 f2af7d2 Author: Ingo Molnar Date: Tue Jun 30 07:57:04 2015 +0200 Merge branch 'x86/boot' into x86/urgent Merge branch that got ready. Signed-off-by: Ingo Molnar commit db52ef74b35dcb91fd154fa52c618bdd1b90e28e Author: Ingo Molnar Date: Sat Jun 27 10:25:14 2015 +0200 x86/fpu: Fix FPU related boot regression when CPUID masking BIOS feature is enabled Mike Galbraith reported: " My i7-4790 box is having one hell of a time with this merge window, dead in the water. BIOS setting "Limit CPUID Maximum" upsets new fpu code mightily. " It turns out that Linux does a double workaround here, as per: 066941bd4eeb ("x86: unmask CPUID levels on Intel CPUs") it undoes the BIOS workaround - but as a side effect the CPUID state is not completely constant during early init anymore, and the new FPU init code did not take this into account. So what happened is that the xstate init code did not have full CPUID available, which broke subsequent attempts to use xstate features. Fix this by ordering the early FPU init code to after we've stabilized the CPUID state. Reported-bisected-and-tested-by: Mike Galbraith Cc: Andrew Morton Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/20150627082514.GA10894@gmail.com Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2d6dac2fcc796a9a2917d69bcab66f6b157fe51b Merge: 6eedf41 36c8bb5 Author: Ingo Molnar Date: Tue Jun 30 06:47:32 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: - Validate syscall list passed via -e argument to 'perf trace'. (Arnaldo Carvalho de Melo) - Introduce 'perf stat --per-thread'. (Jiri Olsa) - Check access permission for --kallsyms and --vmlinux. (Li Zhang) Infrastructure changes: - Move stuff out of 'perf stat' and into the lib for further use. (Jiri Olsa) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit 279c6c7fa64f5763e6b9f05e7ab3840092e702e7 Author: Stephen Hemminger Date: Mon Jun 29 14:57:48 2015 -1000 api: fix compatibility of linux/in.h with netinet/in.h u This fixes breakage to iproute2 build with recent kernel headers caused by: commit a263653ed798216c0069922d7b5237ca49436007 Author: Pablo Neira Ayuso Date: Wed Jun 17 10:28:27 2015 -0500 netfilter: don't pull include/linux/netfilter.h from netns headers The issue is that definitions in linux/in.h overlap with those in netinet/in.h. This patch solves this by introducing the same mechanism as was used to solve the same problem with linux/in6.h Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller include/uapi/linux/in.h | 16 +++++++++++++--- include/uapi/linux/libc-compat.h | 22 ++++++++++++++++++++++ 2 files changed, 35 insertions(+), 3 deletions(-) commit 1625fecf56e077e832dd0ce22cf4b629f0e3d9b7 Author: Nik Nyby Date: Mon Jun 29 18:40:08 2015 -0400 net: icplus: fix typo in constant name This fixes a typo in the IPG_FRAMETOOLONGERRORS constant. Signed-off-by: Nik Nyby Signed-off-by: David S. Miller drivers/net/ethernet/icplus/ipg.c | 2 +- drivers/net/ethernet/icplus/ipg.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 0a8b83530b6f67b9a50bd7937d57a5deea187b5b Author: qipeng.zha Date: Sat Jun 27 00:32:15 2015 +0800 intel_pmc_ipc: Add Intel Apollo Lake PMC IPC driver This driver provides support for PMC control on Apollo Lake platforms. The PMC is an ARC processor which defines some IPC commands for communication with other entities in the CPU. Signed-off-by: qipeng.zha [fengguang.wu@intel.com: Fix Sparse and Cocinelle warnings] Signed-off-by: Fengguang Wu Signed-off-by: Darren Hart MAINTAINERS | 7 + arch/x86/include/asm/intel_pmc_ipc.h | 82 ++++ drivers/platform/x86/Kconfig | 7 + drivers/platform/x86/Makefile | 1 + drivers/platform/x86/intel_pmc_ipc.c | 767 +++++++++++++++++++++++++++++++++++ 5 files changed, 864 insertions(+) commit a6e08fb2d2f9eb38f52e6f2425a38f1cb9794742 Author: Markus Elfring Date: Mon Jun 29 17:47:43 2015 +0100 iommu/arm-smmu: Delete an unnecessary check before the function call "free_io_pgtable_ops" The free_io_pgtable_ops() function tests whether its argument is NULL and then returns immediately. Thus the test around the call is not needed. This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring Signed-off-by: Will Deacon Signed-off-by: Joerg Roedel drivers/iommu/arm-smmu-v3.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit d38f0ff9ab35414644995bae187d015c31aae19c Author: Will Deacon Date: Mon Jun 29 17:47:42 2015 +0100 iommu/arm-smmu: Fix broken ATOS check Commit 83a60ed8f0b5 ("iommu/arm-smmu: fix ARM_SMMU_FEAT_TRANS_OPS condition") accidentally negated the ID0_ATOSNS predicate in the ATOS feature check, causing the driver to attempt ATOS requests on SMMUv2 hardware without the ATOS feature implemented. This patch restores the predicate to the correct value. Cc: # 4.0+ Reported-by: Varun Sethi Signed-off-by: Will Deacon Signed-off-by: Joerg Roedel drivers/iommu/arm-smmu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 38667f18900afe172a4fe44279b132b4140f920f Author: Joerg Roedel Date: Mon Jun 29 10:16:08 2015 +0200 iommu: Ignore -ENODEV errors from add_device call-back The -ENODEV error just means that the device is not translated by an IOMMU. We shouldn't bail out of iommu driver initialization when that happens, as this is a common scenario on ARM. Not returning -ENODEV in the drivers would be a bad idea, as the IOMMU core would have no indication whether a device is translated or not. This indication is not used at the moment, but will probably be in the future. Fixes: 19762d7 ("iommu: Propagate error in add_iommu_group") Tested-by: Marek Szyprowski Tested-by: Eric Auger Tested-by: Heiko Stuebner Signed-off-by: Joerg Roedel drivers/iommu/iommu.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) commit 580a64bf2b712e43ea04bdded17d7049e7b06ce6 Author: Sebastian Ott Date: Mon Jun 29 12:13:05 2015 -0700 Input: arc_ps2 - add HAS_IOMEM dependency Fix this compile error: drivers/built-in.o: In function `arc_ps2_probe': /mnt/linux/drivers/input/serio/arc_ps2.c:206: undefined reference to `devm_ioremap_resource' Signed-off-by: Sebastian Ott Signed-off-by: Dmitry Torokhov drivers/input/serio/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 11ddba28325a66c2d38dbf987e2d5da790c6d684 Author: Dmitry Torokhov Date: Mon Jun 29 11:56:27 2015 -0700 Input: wdt87xx_i2c - fix format warning This fixes the following warning: drivers/input/touchscreen/wdt87xx_i2c.c: In function 'wdt87xx_validate_firmware': >> drivers/input/touchscreen/wdt87xx_i2c.c:472:4: warning: format '%zd' expects argument of type 'signed size_t', but argument 4 has type 'size_t' [-Wformat=] size, fw->size); Reported-by: kbuild test robot Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/wdt87xx_i2c.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fc220f6580be80c36dfba9964b2fd71ceb1d3d97 Author: Christian König Date: Mon Jun 29 17:12:20 2015 +0200 drm/amdgpu: add flag to delay VM updates Signed-off-by: Christian König Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 6 +++--- include/uapi/drm/amdgpu_drm.h | 3 +++ 2 files changed, 6 insertions(+), 3 deletions(-) commit 2b48d323b26c37555df3447e11ab9e962eccdc26 Author: Christian König Date: Fri Jun 19 17:31:29 2015 +0200 drm/amdgpu: add optional dependencies to the CS IOCTL v2 v2: remove unrelated whitespace change, fix C comment Signed-off-by: Christian König Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 59 +++++++++++++++++++++++++++++++++- include/uapi/drm/amdgpu_drm.h | 9 ++++++ 2 files changed, 67 insertions(+), 1 deletion(-) commit 03507c4f2f63d8d98c2455cf4d192589fac553c7 Author: Christian König Date: Fri Jun 19 17:00:19 2015 +0200 drm/amdgpu: recreate fence from user seq And use common fence infrastructure for the wait. Signed-off-by: Christian König Reviewed-by: Alex Deucher Reviewed-by: Chunming Zhou drivers/gpu/drm/amd/amdgpu/amdgpu.h | 5 ++--- drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 11 +++++---- drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 37 +++++++++++++++++++++++++++++-- 3 files changed, 44 insertions(+), 9 deletions(-) commit 7cebc728174424d67df91dfb14f8b6dc13bed993 Author: Alexander Kuleshov Date: Sat Jun 27 13:16:05 2015 +0600 gpu/drm/amdgpu: Fix build when CONFIG_DEBUG_FS is not set If the CONFIG_DEBUG_FS is not selected, compilation of the drivers/gpu/drm/amd/amdgpu/amdgpu_device.c provides two warnings that amdgpu_debugfs_regs_init and amdgpu_debugfs_regs_cleanup are used but never defined. And as result: ERROR: "amdgpu_debugfs_regs_cleanup" [drivers/gpu/drm/amd/amdgpu/amdgpu.ko] undefined! ERROR: "amdgpu_debugfs_regs_init" [drivers/gpu/drm/amd/amdgpu/amdgpu.ko] undefined! ^ Reviewed-by: Christian König Signed-off-by: Alexander Kuleshov Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 6 ++++++ 1 file changed, 6 insertions(+) commit ac9134906b3f5c2b45dc80dab0fee792bd516d52 Author: Alex Deucher Date: Mon Jun 29 11:09:11 2015 -0400 Revert "drm/radeon: dont switch vt on suspend" This reverts commit b9729b17a414f99c61f4db9ac9f9ed987fa0cbfe. This seems to break the cursor on resume for lots of systems. Cc: stable@vger.kernel.org drivers/gpu/drm/radeon/radeon_fb.c | 1 - 1 file changed, 1 deletion(-) commit 47af6b0c940f6e39a39513d29899da4c0da92610 Author: Nik Nyby Date: Mon Jun 29 15:49:43 2015 -0400 sis900: Trivial: Fix typos in enums "reigster" -> "register" Signed-off-by: Nik Nyby Signed-off-by: David S. Miller drivers/net/ethernet/sis/sis900.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1dfd18d0571231d030f325bfcd80f5c42a56a53e Author: Sachin Prabhu Date: Tue Jun 16 16:36:17 2015 +0100 cifs: Unset CIFS_MOUNT_POSIX_PATHS flag when following dfs mounts In a dfs setup where the client transitions from a server which supports posix paths to a server which doesn't support posix paths, the flag CIFS_MOUNT_POSIX_PATHS is not reset. This leads to the wrong directory separator being used causing smb commands to fail. Consider the following case where a dfs share on a samba server points to a share on windows smb server. # mount -t cifs -o .. //vm140-31/dfsroot/testwin/ # ls -l /mnt; touch /mnt/a total 0 touch: cannot touch ‘/mnt/a’: No such file or directory Signed-off-by: Sachin Prabhu Acked-by: Jeff Layton Signed-off-by: Steve French fs/cifs/connect.c | 2 ++ 1 file changed, 2 insertions(+) commit 55d916144ba4aeb536c0186a5764f4359306c8d4 Author: Nik Nyby Date: Mon Jun 29 15:39:27 2015 -0400 stmmac: Trivial: fix typo in constant name This fixes a typo in the MMC_RX_CRC_ERROR constant. Signed-off-by: Nik Nyby Signed-off-by: David S. Miller drivers/net/ethernet/stmicro/stmmac/mmc_core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6aaf0da8728c55ff627619f933ed161cc89057c6 Merge: a9730fc ab16bfc Author: Linus Torvalds Date: Mon Jun 29 11:10:56 2015 -0700 Merge tag 'md/4.2' of git://neil.brown.name/md Pull md updates from Neil Brown: "A mixed bag - a few bug fixes - some performance improvement that decrease lock contention - some clean-up Nothing major" * tag 'md/4.2' of git://neil.brown.name/md: md: clear Blocked flag on failed devices when array is read-only. md: unlock mddev_lock on an error path. md: clear mddev->private when it has been freed. md: fix a build warning md/raid5: ignore released_stripes check md/raid5: per hash value and exclusive wait_for_stripe md/raid5: split wait_for_stripe and introduce wait_for_quiescent wait: introduce wait_event_exclusive_cmd md: convert to kstrto*() md/raid10: make sync_request_write() call bio_copy_data() commit a9730fca9946f3697410479e0ef1bd759ba00a77 Author: Christoph Lameter Date: Mon Jun 29 09:28:08 2015 -0500 Fix kmalloc slab creation sequence This patch restores the slab creation sequence that was broken by commit 4066c33d0308f8 and also reverts the portions that introduced the KMALLOC_LOOP_XXX macros. Those can never really work since the slab creation is much more complex than just going from a minimum to a maximum number. The latest upstream kernel boots cleanly on my machine with a 64 bit x86 configuration under KVM using either SLAB or SLUB. Fixes: 4066c33d0308f8 ("support the slub_debug boot option") Reported-by: Theodore Ts'o Signed-off-by: Christoph Lameter Signed-off-by: Linus Torvalds include/linux/slab.h | 22 ---------------------- mm/slab_common.c | 32 ++++++++++++++++---------------- 2 files changed, 16 insertions(+), 38 deletions(-) commit 88793e5c774ec69351ef6b5200bb59f532e41bca Merge: 1bc5e15 6103195 Author: Linus Torvalds Date: Mon Jun 29 10:34:42 2015 -0700 Merge tag 'libnvdimm-for-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/nvdimm Pull libnvdimm subsystem from Dan Williams: "The libnvdimm sub-system introduces, in addition to the libnvdimm-core, 4 drivers / enabling modules: NFIT: Instantiates an "nvdimm bus" with the core and registers memory devices (NVDIMMs) enumerated by the ACPI 6.0 NFIT (NVDIMM Firmware Interface table). After registering NVDIMMs the NFIT driver then registers "region" devices. A libnvdimm-region defines an access mode and the boundaries of persistent memory media. A region may span multiple NVDIMMs that are interleaved by the hardware memory controller. In turn, a libnvdimm-region can be carved into a "namespace" device and bound to the PMEM or BLK driver which will attach a Linux block device (disk) interface to the memory. PMEM: Initially merged in v4.1 this driver for contiguous spans of persistent memory address ranges is re-worked to drive PMEM-namespaces emitted by the libnvdimm-core. In this update the PMEM driver, on x86, gains the ability to assert that writes to persistent memory have been flushed all the way through the caches and buffers in the platform to persistent media. See memcpy_to_pmem() and wmb_pmem(). BLK: This new driver enables access to persistent memory media through "Block Data Windows" as defined by the NFIT. The primary difference of this driver to PMEM is that only a small window of persistent memory is mapped into system address space at any given point in time. Per-NVDIMM windows are reprogrammed at run time, per-I/O, to access different portions of the media. BLK-mode, by definition, does not support DAX. BTT: This is a library, optionally consumed by either PMEM or BLK, that converts a byte-accessible namespace into a disk with atomic sector update semantics (prevents sector tearing on crash or power loss). The sinister aspect of sector tearing is that most applications do not know they have a atomic sector dependency. At least today's disk's rarely ever tear sectors and if they do one almost certainly gets a CRC error on access. NVDIMMs will always tear and always silently. Until an application is audited to be robust in the presence of sector-tearing the usage of BTT is recommended. Thanks to: Ross Zwisler, Jeff Moyer, Vishal Verma, Christoph Hellwig, Ingo Molnar, Neil Brown, Boaz Harrosh, Robert Elliott, Matthew Wilcox, Andy Rudoff, Linda Knippers, Toshi Kani, Nicholas Moulin, Rafael Wysocki, and Bob Moore" * tag 'libnvdimm-for-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/nvdimm: (33 commits) arch, x86: pmem api for ensuring durability of persistent memory updates libnvdimm: Add sysfs numa_node to NVDIMM devices libnvdimm: Set numa_node to NVDIMM devices acpi: Add acpi_map_pxm_to_online_node() libnvdimm, nfit: handle unarmed dimms, mark namespaces read-only pmem: flag pmem block devices as non-rotational libnvdimm: enable iostat pmem: make_request cleanups libnvdimm, pmem: fix up max_hw_sectors libnvdimm, blk: add support for blk integrity libnvdimm, btt: add support for blk integrity fs/block_dev.c: skip rw_page if bdev has integrity libnvdimm: Non-Volatile Devices tools/testing/nvdimm: libnvdimm unit test infrastructure libnvdimm, nfit, nd_blk: driver for BLK-mode access persistent memory nd_btt: atomic sector updates libnvdimm: infrastructure for btt devices libnvdimm: write blk label set libnvdimm: write pmem label set libnvdimm: blk labels and namespace instantiation ... commit b67893206fc0a0e8af87130e67f3d8ae553fc87c Author: Milo Kim Date: Sun Jun 28 17:39:14 2015 -0700 leds:lp55xx: fix firmware loading error LP55xx driver uses not firmware file but raw data to load program through the firmware interface.(Documents/leds/leds-lp55xx.txt) For example, here is how to run blinking green channel pattern. (The second engine is seleted and MUX is mapped to 'RGB' mode) echo 2 > /sys/bus/i2c/devices/xxxx/select_engine echo "RGB" > /sys/bus/i2c/devices/xxxx/engine_mux echo 1 > /sys/class/firmware/lp5562/loading echo "4000600040FF6000" > /sys/class/firmware/lp5562/data echo 0 > /sys/class/firmware/lp5562/loading echo 1 > /sys/bus/i2c/devices/xxxx/run_engine However, '/sys/class/firmware/' is not created after the firmware loader user helper was introduced. This feature is used in the case below. As soon as the firmware download is requested by the driver, firmware class subsystem tries to find the binary file. If it gets failed, then it just falls back to user helper to load raw data manually. Here, you can see the device file under /sys/class/firmware/. To make it happen, LP55xx driver requires two configurations. 1. Enable CONFIG_FW_LOADER_USER_HELPER_FALLBACK in Kconfig 2. Set option, 'FW_OPT_USERHELPER' on requesting the firmware data. It means the second option should be 'false' in request_firmware_nowait(). This option enables to load firmware data manually by calling fw_load_from_user_helper(). Cc: linux-leds@vger.kernel.org Signed-off-by: Milo Kim Acked-by: Jacek Anaszewski Signed-off-by: Bryan Wu drivers/leds/Kconfig | 1 + drivers/leds/leds-lp55xx-common.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) commit 10c19c9eb2f0d5a99cb1ab68186482fcd3eeac6d Author: Jacek Anaszewski Date: Mon Jun 29 07:45:23 2015 -0700 leds: fix max77693-led build errors Fix build errors when LEDS_MAX77693=y and V4L2_FLASH_LED_CLASS=m by restricting LEDS_MAX77693 to =m if V4L2_FLASH_LED_CLASS=m. drivers/leds/leds-max77693.c:1062: undefined reference to `v4l2_flash_release' drivers/leds/leds-max77693.c:1068: undefined reference to `v4l2_flash_release' drivers/built-in.o: In function `max77693_register_led': drivers/leds/leds-max77693.c:968: undefined reference to `v4l2_flash_init' drivers/built-in.o: In function `max77693_led_probe': drivers/leds/leds-max77693.c:1048: undefined reference to `v4l2_flash_release' Signed-off-by: Jacek Anaszewski Cc: Richard Purdie Signed-off-by: Bryan Wu drivers/leds/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 0755e74b8f04d17cea09fa342a788025b2b50e2e Author: Colin Ian King Date: Mon Jun 29 17:10:22 2015 +0100 ALSA: Fix uninintialized error return Static analysis with cppcheck found the following error: [sound/core/init.c:118]: (error) Uninitialized variable: err ..this was introduced by commit 2471b6c80a70e80de69f5ff4c37187c3912e5874 ("ALSA: info: Register proc entries recursively, too") where the call to snd_info_card_register was removed and no longer setting the error return in err. When snd_info_create_card_entry fails to allocate a an entry, the error path exits with garbage in err. Fix is to return -ENOMEM if entry fails to be allocated. Fixes: 2471b6c80a ("ALSA: info: Register proc entries recursively, too") Signed-off-by: Colin Ian King Signed-off-by: Takashi Iwai sound/core/init.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 58d1809b9d6128224e092bfaf7632bcef7a15f3e Author: Randy Dunlap Date: Fri Jun 26 12:00:20 2015 -0700 leds: fix aat1290 build errors Fix build errors when LEDS_AAT1290=y and V4L2_FLASH_LED_CLASS=m by restricting LEDS_AAT1290 to =m if V4L2_FLASH_LED_CLASS=m. drivers/built-in.o: In function `aat1290_led_remove': leds-aat1290.c:(.text+0xe5d77): undefined reference to `v4l2_flash_release' drivers/built-in.o: In function `aat1290_led_probe': leds-aat1290.c:(.text+0xe6494): undefined reference to `v4l2_flash_init' Signed-off-by: Randy Dunlap Cc: Richard Purdie Acked-by: Jacek Anaszewski Signed-off-by: Bryan Wu drivers/leds/Kconfig | 1 + 1 file changed, 1 insertion(+) commit c2cfa19400979dc1a14bba75f83b451b0cd9507a Author: Benoît Canet Date: Thu Jun 25 20:32:34 2015 +0300 libceph: Fix ceph_tcp_sendpage()'s more boolean usage From struct ceph_msg_data_cursor in include/linux/ceph/messenger.h: bool last_piece; /* current is last piece */ In ceph_msg_data_next(): *last_piece = cursor->last_piece; A call to ceph_msg_data_next() is followed by: ret = ceph_tcp_sendpage(con->sock, page, page_offset, length, last_piece); while ceph_tcp_sendpage() is: static int ceph_tcp_sendpage(struct socket *sock, struct page *page, int offset, size_t size, bool more) The logic is inverted: correct it. Signed-off-by: Benoît Canet Reviewed-by: Alex Elder Signed-off-by: Ilya Dryomov net/ceph/messenger.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1bc5e157ed2b4f5b206155fc772d860158acd201 Merge: f199b66 657d612 Author: Linus Torvalds Date: Mon Jun 29 09:44:45 2015 -0700 Merge tag 'dmaengine-4.2-rc1' of git://git.infradead.org/users/vkoul/slave-dma Pull dmaengine updates from Vinod Koul: "This time we have support for few new devices, few new features and odd fixes spread thru the subsystem. New devices added: - support for CSRatlas7 dma controller - Allwinner H3(sun8i) controller - TI DMA crossbar driver on DRA7x - new pxa driver New features added: - memset support is bought back now that we have a user in xdmac controller - interleaved transfers support different source and destination strides - supporting DMA routers and configuration thru DT - support for reusing descriptors - xdmac memset and interleaved transfer support - hdmac support for interleaved transfers - omap-dma support for memcpy Others: - Constify platform_device_id - mv_xor fixes and improvements" * tag 'dmaengine-4.2-rc1' of git://git.infradead.org/users/vkoul/slave-dma: (46 commits) dmaengine: xgene: fix file permission dmaengine: fsl-edma: clear pending interrupts on initialization dmaengine: xdmac: Add memset support Documentation: dmaengine: document DMA_CTRL_ACK dmaengine: virt-dma: don't always free descriptor upon completion dmaengine: Revert "drivers/dma: remove unused support for MEMSET operations" dmaengine: hdmac: Implement interleaved transfers dmaengine: Move icg helpers to global header dmaengine: mv_xor: improve descriptors list handling and reduce locking dmaengine: mv_xor: Enlarge descriptor pool size dmaengine: mv_xor: add support for a38x command in descriptor mode dmaengine: mv_xor: Rename function for consistent naming dmaengine: mv_xor: bug fix for racing condition in descriptors cleanup dmaengine: pl330: fix wording in mcbufsz message dmaengine: sirf: add CSRatlas7 SoC support dmaengine: xgene-dma: Fix "incorrect type in assignement" warnings dmaengine: fix kernel-doc documentation dmaengine: pxa_dma: add support for legacy transition dmaengine: pxa_dma: add debug information dmaengine: pxa: add pxa dmaengine driver ... commit 29c4afc4e98f4dc0ea9df22c631841f9c220b944 Author: Alexander Sverdlin Date: Mon Jun 29 10:41:03 2015 +0200 sctp: Fix race between OOTB responce and route removal There is NULL pointer dereference possible during statistics update if the route used for OOTB responce is removed at unfortunate time. If the route exists when we receive OOTB packet and we finally jump into sctp_packet_transmit() to send ABORT, but in the meantime route is removed under our feet, we take "no_route" path and try to update stats with IP_INC_STATS(sock_net(asoc->base.sk), ...). But sctp_ootb_pkt_new() used to prepare responce packet doesn't call sctp_transport_set_owner() and therefore there is no asoc associated with this packet. Probably temporary asoc just for OOTB responces is overkill, so just introduce a check like in all other places in sctp_packet_transmit(), where "asoc" is dereferenced. To reproduce this, one needs to 0. ensure that sctp module is loaded (otherwise ABORT is not generated) 1. remove default route on the machine 2. while true; do ip route del [interface-specific route] ip route add [interface-specific route] done 3. send enough OOTB packets (i.e. HB REQs) from another host to trigger ABORT responce On x86_64 the crash looks like this: BUG: unable to handle kernel NULL pointer dereference at 0000000000000020 IP: [] sctp_packet_transmit+0x63c/0x730 [sctp] PGD 0 Oops: 0000 [#1] PREEMPT SMP Modules linked in: ... CPU: 0 PID: 0 Comm: swapper/0 Tainted: G O 4.0.5-1-ARCH #1 Hardware name: ... task: ffffffff818124c0 ti: ffffffff81800000 task.ti: ffffffff81800000 RIP: 0010:[] [] sctp_packet_transmit+0x63c/0x730 [sctp] RSP: 0018:ffff880127c037b8 EFLAGS: 00010296 RAX: 0000000000000000 RBX: 0000000000000000 RCX: 00000015ff66b480 RDX: 00000015ff66b400 RSI: ffff880127c17200 RDI: ffff880123403700 RBP: ffff880127c03888 R08: 0000000000017200 R09: ffffffff814625af R10: ffffea00047e4680 R11: 00000000ffffff80 R12: ffff8800b0d38a28 R13: ffff8800b0d38a28 R14: ffff8800b3e88000 R15: ffffffffa05f24e0 FS: 0000000000000000(0000) GS:ffff880127c00000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b CR2: 0000000000000020 CR3: 00000000c855b000 CR4: 00000000000007f0 Stack: ffff880127c03910 ffff8800b0d38a28 ffffffff8189d240 ffff88011f91b400 ffff880127c03828 ffffffffa05c94c5 0000000000000000 ffff8800baa1c520 0000000000000000 0000000000000001 0000000000000000 0000000000000000 Call Trace: [] ? sctp_sf_tabort_8_4_8.isra.20+0x85/0x140 [sctp] [] ? sctp_transport_put+0x52/0x80 [sctp] [] sctp_do_sm+0xb8c/0x19a0 [sctp] [] ? trigger_load_balance+0x90/0x210 [] ? update_process_times+0x59/0x60 [] ? timerqueue_add+0x60/0xb0 [] ? enqueue_hrtimer+0x29/0xa0 [] ? read_tsc+0x9/0x10 [] ? put_page+0x55/0x60 [] ? clockevents_program_event+0x6d/0x100 [] ? skb_free_head+0x58/0x80 [] ? chksum_update+0x1b/0x27 [crc32c_generic] [] ? crypto_shash_update+0xce/0xf0 [] sctp_endpoint_bh_rcv+0x113/0x280 [sctp] [] sctp_inq_push+0x46/0x60 [sctp] [] sctp_rcv+0x880/0x910 [sctp] [] ? sctp_packet_transmit_chunk+0xb0/0xb0 [sctp] [] ? sctp_csum_update+0x20/0x20 [sctp] [] ? ip_route_input_noref+0x235/0xd30 [] ? ack_ioapic_level+0x7b/0x150 [] ip_local_deliver_finish+0xae/0x210 [] ip_local_deliver+0x35/0x90 [] ip_rcv_finish+0xf5/0x370 [] ip_rcv+0x2b8/0x3a0 [] __netif_receive_skb_core+0x763/0xa50 [] __netif_receive_skb+0x18/0x60 [] netif_receive_skb_internal+0x40/0xd0 [] napi_gro_receive+0xe8/0x120 [] rtl8169_poll+0x2da/0x660 [r8169] [] net_rx_action+0x21a/0x360 [] __do_softirq+0xe1/0x2d0 [] irq_exit+0xad/0xb0 [] do_IRQ+0x58/0xf0 [] common_interrupt+0x6d/0x6d [] ? hrtimer_start+0x18/0x20 [] ? sctp_transport_destroy_rcu+0x29/0x30 [sctp] [] ? mwait_idle+0x60/0xa0 [] arch_cpu_idle+0xf/0x20 [] cpu_startup_entry+0x3ec/0x480 [] rest_init+0x85/0x90 [] start_kernel+0x48b/0x4ac [] ? early_idt_handlers+0x120/0x120 [] x86_64_start_reservations+0x2a/0x2c [] x86_64_start_kernel+0x161/0x184 Code: 90 48 8b 80 b8 00 00 00 48 89 85 70 ff ff ff 48 83 bd 70 ff ff ff 00 0f 85 cd fa ff ff 48 89 df 31 db e8 18 63 e7 e0 48 8b 45 80 <48> 8b 40 20 48 8b 40 30 48 8b 80 68 01 00 00 65 48 ff 40 78 e9 RIP [] sctp_packet_transmit+0x63c/0x730 [sctp] RSP CR2: 0000000000000020 ---[ end trace 5aec7fd2dc983574 ]--- Kernel panic - not syncing: Fatal exception in interrupt Kernel Offset: 0x0 from 0xffffffff81000000 (relocation range: 0xffffffff80000000-0xffffffff9fffffff) drm_kms_helper: panic occurred, switching back to text console ---[ end Kernel panic - not syncing: Fatal exception in interrupt Signed-off-by: Alexander Sverdlin Acked-by: Neil Horman Acked-by: Marcelo Ricardo Leitner Acked-by: Vlad Yasevich Signed-off-by: David S. Miller net/sctp/output.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 9686f3109a9b2190029cbc9bf3e0ee2e0e224eaf Author: Markus Elfring Date: Mon Jun 29 12:22:24 2015 +0200 net-Liquidio: Delete unnecessary checks before the function call "vfree" The vfree() function performs also input parameter validation. 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: David S. Miller drivers/net/ethernet/cavium/liquidio/octeon_device.c | 11 +++-------- drivers/net/ethernet/cavium/liquidio/octeon_droq.c | 4 +--- drivers/net/ethernet/cavium/liquidio/request_manager.c | 3 +-- 3 files changed, 5 insertions(+), 13 deletions(-) commit a694717437c14efd489566540e821bc83ec234f3 Author: Shreyas Bhatewara Date: Mon Jun 29 04:14:43 2015 -0700 vmxnet3: Bump up driver version number Bump up the driver version number to reflect the changes done to work with vmxnet3 adapter version 2 Signed-off-by: Shreyas N Bhatewara Signed-off-by: David S. Miller drivers/net/vmxnet3/vmxnet3_int.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 472cfe7127760d68b819cf35a26e5a1b44b30f4e Author: Tom Lendacky Date: Mon Jun 29 11:22:12 2015 -0500 amd-xgbe: Add the __GFP_NOWARN flag to Rx buffer allocation When allocating Rx related buffers, alloc_pages is called using an order number that is decreased until successful. A system under stress can experience failures during this allocation process resulting in a warning being issued. This message can be of concern to end users even though the failure is not fatal. Since the failure is not fatal and can occur multiple times, the driver should include the __GFP_NOWARN flag to suppress the warning message from being issued. Signed-off-by: Tom Lendacky Signed-off-by: David S. Miller drivers/net/ethernet/amd/xgbe/xgbe-desc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f199b663fc5a276af10a49c24a83d8de27a41b53 Merge: d93a74a 2587dc6 Author: Linus Torvalds Date: Mon Jun 29 09:25:14 2015 -0700 Merge tag 'please-pull-misc-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux Pull ia64 updates from Tony Luck: "Pair of ia64 cleanups" * tag 'please-pull-misc-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux: ia64: Use setup_timer ia64: export flush_icache_range for module use commit d93a74a91b847b8098ebae749891c6f4fe563da0 Merge: c63f887 2278e5e Author: Linus Torvalds Date: Mon Jun 29 09:11:10 2015 -0700 Merge tag 'linux-kselftest-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest Pull kselftest update from Shuah Khan: "This update adds two new test suites: futex and seccomp. In addition, it includes fixes for bugs in timers, other tests, and compile framework. It introduces new quicktest feature to enable users to choose to run tests that complete in a short time" * tag 'linux-kselftest-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest: selftests: add quicktest support selftests: add seccomp suite selftest, x86: fix incorrect comment tools selftests: Fix 'clean' target with make 3.81 selftests/futex: Add .gitignore kselftest: Add exit code defines selftests: Add futex tests to the top-level Makefile selftests/futex: Increment ksft pass and fail counters selftests/futex: Update Makefile to use lib.mk selftests: Add futex functional tests kselftests: timers: Check _ALARM clockids are supported before suspending kselftests: timers: Ease alarmtimer-suspend unreasonable latency value kselftests: timers: Increase delay between suspends in alarmtimer-suspend selftests/exec: do not install subdir as it is already created selftests/ftrace: install test.d selftests: copy TEST_DIRS to INSTALL_PATH Test compaction of mlocked memory selftests/mount: output WARN messages when mount test skipped selftests/timers: Make git ignore all binaries in timers test suite commit 06d7137e5c566e1e8a4acd4a30e7e12170a57b58 Author: Al Viro Date: Mon Jun 29 12:07:04 2015 -0400 namei: make set_root_rcu() return void The only caller that cares about its return value can just as easily pick it from nd->root_seq itself. We used to just calculate it and return to caller, but these days we are storing it in nd->root_seq in all cases. Signed-off-by: Al Viro fs/namei.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 9dcabece15d16da48bb7c7071306bf6158b42ba3 Author: Sonny Jiang Date: Fri Jun 26 12:31:46 2015 -0400 drm/amdgpu: disable enable_nb_ps_policy temporarily Fixes a hang on resume. Signed-off-by: Sonny Jiang Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/cz_dpm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 966c62fb40610e3cbda7bcd9a0193d8cbb3b77e3 Author: Sonny Jiang Date: Fri Jun 26 12:26:45 2015 -0400 drm/amdgpu: correct define SMU_EnabledFeatureScoreboard_SclkDpmOn Signed-off-by: Sonny Jiang Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/cz_dpm.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d8d090b711bc56e095e59f9b536ed3c73c47b36d Author: Alex Deucher Date: Fri Jun 26 13:02:57 2015 -0400 drm/amdgpu: allocate ip_block_enabled memory in common code Remove duplication across asic families and make it symmetric with the freeing of the code in amdgpu_device.c Reviewed-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 4 +++- drivers/gpu/drm/amd/amdgpu/cik.c | 4 ---- drivers/gpu/drm/amd/amdgpu/vi.c | 4 ---- 3 files changed, 3 insertions(+), 9 deletions(-) commit a08c1d516fb3eb302ff14a10eedda844e75c625f Author: Maninder Singh Date: Fri Jun 26 13:26:57 2015 +0530 drm/amdgpu: remove unnecessary check before kfree kfree(NULL) is safe and this check is probably not required Signed-off-by: Maninder Singh Reviewed-by: Vaneet Narang Reviewed-by: Christian Konig Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 5f0b34cc72aa627fd28230be3de469321e0af03e Author: Maninder Singh Date: Fri Jun 26 13:28:50 2015 +0530 drm/amdgpu: use kzalloc for allocating one thing Use kzalloc rather than kcalloc(1.. for allocating one thing. Signed-off-by: Maninder Singh Reviewed-by: Vaneet Narang Reviewed-by: Christian Konig Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b13e22aeba06aea2acdae657e988c93c22080858 Author: Christian König Date: Fri Jun 26 12:31:29 2015 +0200 drm/radeon: fix adding all VAs to the freed list on remove v2 We only should do so when the BO_VA was actually mapped. Otherwise we get a nice error message on the next CS. v2: It actually doesn't matter if it was invalidated or not, if it was mapped we need to clear the area where it was mapped. Signed-off-by: Christian König Tested-by: Michel Dänzer (v1) Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/radeon_vm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 9a5e8fb1c8372ea4b58a76bbb82cb97683bb204b Author: Christian König Date: Tue Jun 23 17:07:03 2015 +0200 drm/amdgpu: add chunk id validity check Signed-off-by: Christian König Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) commit b8682ac253bdab6c15678f926bdc028b2e5dc0d2 Author: Christian König Date: Mon Jun 22 14:54:32 2015 +0200 drm/amdgpu: fix crash on invalid CS IOCTL Signed-off-by: Christian König Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 845253e78a7871ae87cdc5c135a914c58d6d4f64 Author: Sonny Jiang Date: Tue Jun 23 11:59:55 2015 -0400 drm/amdgpu: reset wptr at cp compute resume (v2) This patch is to resolve compute hang at resume time. v2: (agd5f) squash in second fix Signed-off-by: Sonny Jiang Reviewed-by: Christian König drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 6 ++++++ 1 file changed, 6 insertions(+) commit dc78330a8e07285a26f165242c3a86744ef3ad20 Author: Christian König Date: Fri Jun 12 14:16:20 2015 +0200 drm/amdgpu: check VCE feedback and bitstream index Signed-off-by: Christian König Reviewed-by: Leo Liu drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) commit 2f4b936869e6432a3361217da7e071d4c0c662f6 Author: Christian König Date: Thu Jun 11 21:33:55 2015 +0200 drm/amdgpu: make VCE handle check more strict Port of radeon commit 29c63fe22a17c64e54016040cd882481bd45ee5a. Signed-off-by: Christian König Reviewed-by: Leo Liu drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c | 64 ++++++++++++++++++++++++--------- 1 file changed, 48 insertions(+), 16 deletions(-) commit f1689ec1b0b1256d0e69653cd4aaeee44aafdf5c Author: Christian König Date: Thu Jun 11 20:56:18 2015 +0200 drm/amdgpu: check VCE relocation buffer range port of radeon commit 2fc5703abda201f138faf63bdca743d04dbf4b1a. Signed-off-by: Christian König Reviewed-by: Leo Liu drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 + drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c | 119 ++++++++++++++++++++++++-------- drivers/gpu/drm/amd/amdgpu/amdgpu_vce.h | 1 - 3 files changed, 92 insertions(+), 29 deletions(-) commit 68fdd3df79ee4bff4d63dab920b01d9ed5731115 Author: Christian König Date: Tue Jun 16 14:50:02 2015 +0200 drm/amdgpu: silence invalid error message Signed-off-by: Christian König Reviewed-by: Leo Liu drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 332300b97e700e000739c8db782406b6fd8f092d Author: monk.liu Date: Mon Jun 8 14:48:15 2015 +0800 drm/amdgpu: fix wrong type Signed-off-by: monk.liu Reviewed-by: Christian König drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit e30590e6e36992a6db28f03409286c164868939f Author: Christian König Date: Wed Jun 10 19:21:14 2015 +0200 drm/amdgpu: print the bo_list in the CS trace point as well Signed-off-by: Christian König Acked-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit ec74407ac047c150080758f2a4cec47393a6c0f8 Author: Christian König Date: Wed Jun 10 14:45:21 2015 +0200 drm/amdgpu: add amdgpu_bo_list_set trace point Signed-off-by: Christian König Acked-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c | 3 +++ drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h | 15 +++++++++++++++ 2 files changed, 18 insertions(+) commit 93e3e4385b69d8885e0dd64d1c5b8c351a151e91 Author: Christian König Date: Tue Jun 9 16:58:33 2015 +0200 drm/amdgpu: add BO map/unmap trace point Signed-off-by: Christian König Acked-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h | 48 +++++++++++++++++++++++++++++++ drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 4 +++ 2 files changed, 52 insertions(+) commit 344c19f9558d69faec75869b33d558258429bcd9 Author: Christian König Date: Tue Jun 2 15:47:16 2015 +0200 drm/amdgpu: simplify fence debugfs output a bit Signed-off-by: Christian König Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 2ba8d1bb8f6b589037f7db1f01144fc80750e8f7 Author: Jérôme Glisse Date: Fri Jun 19 10:32:16 2015 -0400 drm/radeon: SDMA fix hibernation (CI GPU family). In order for hibernation to reliably work we need to properly turn off the SDMA block, sadly after numerous attemps i haven't not found proper sequence for clean and full shutdown. So simply reset both SDMA block, this makes hibernation works reliably on sea island GPU family (CI) Hibernation and suspend to ram were tested (several times) on : Bonaire Hawaii Mullins Kaveri Kabini Cc: stable@vger.kernel.org Signed-off-by: Jérôme Glisse Reviewed-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/cik_sdma.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 161569deaa03cf3c00ed63352006193f250b0648 Author: Jérôme Glisse Date: Fri Jun 19 10:32:15 2015 -0400 drm/radeon: compute ring fix hibernation (CI GPU family) v2. In order for hibernation to reliably work we need to cleanup more thoroughly the compute ring. Hibernation is different from suspend resume as when we resume from hibernation the hardware is first fully initialize by regular kernel then freeze callback happens (which correspond to a suspend inside the radeon kernel driver) and turn off each of the block. It turns out we were not cleanly shutting down the compute ring. This patch fix that. Hibernation and suspend to ram were tested (several times) on : Bonaire Hawaii Mullins Kaveri Kabini Changed since v1: - Factor the ring stop logic into a function taking ring as arg. Cc: stable@vger.kernel.org Signed-off-by: Jérôme Glisse Reviewed-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/cik.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) commit 78ad5cdd21f0d614983fc397338944e797ec70b9 Author: Ben Goz Date: Fri Jun 12 11:08:58 2015 +0300 drm/amdgpu: Configure doorbell to maximum slots Signed-off-by: Ben Goz Acked-by: Oded Gabbay Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cd06bf687b89f7532d19b0e4484299372e1bf70c Author: Ben Goz Date: Wed Jun 24 22:39:21 2015 +0300 drm/amdgpu: Initialize compute sdma and memory from kgd v2: add missing MTYPE_NONCACHED enum Signed-off-by: Ben Goz Acked-by: Oded Gabbay Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/cikd.h | 6 +++++ drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 42 ++++++++++++++++++++++++++++++ drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 47 ++++++++++++++++++++++++++++++++++ drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 28 ++++++++++++++++++++ 4 files changed, 123 insertions(+) commit 69ee2410238e6ea6fd5d0a91b04510bba8abc7b5 Author: Maninder Singh Date: Fri Jun 19 09:35:23 2015 +0530 drm/radeon: use kzalloc for allocating one thing Use kzalloc for allocating one thing rather than kcalloc(1... The semantic patch that makes this change is as follows: // @@ @@ - kcalloc(1, + kzalloc( ...) // Signed-off-by: Maninder Singh Reviewed-by: Vaneet Narang Reviewed-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/radeon_ttm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e922cfb1c410d8cb200a08f1b2a527d92d95480a Author: Alex Deucher Date: Thu Jun 11 11:26:03 2015 -0400 drm/amdgpu: fix hpd range check in dce_v8_0_hpd_irq() Spotted by Dan Carpenter. This is a slight variant of his fix. Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/dce_v8_0.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit eeb3fee8f6cca5e7bf1647d9e327c7b40e384578 Author: Russell King Date: Thu Jun 25 10:52:58 2015 +0100 ARM: add helpful message when truncating physical memory Add a nmessage to suggest that HIGHMEM is enabled when physical memory is truncated due to lack of virtual address space to map it in the low memory mapping. Signed-off-by: Russell King arch/arm/mm/mmu.c | 6 ++++++ 1 file changed, 6 insertions(+) commit b4d103d1a45fed0da2f31c905eb5e053c84a41c6 Author: Russell King Date: Thu Jun 25 10:49:45 2015 +0100 ARM: add help text for HIGHPTE configuration entry Add some help text for the HIGHPTE configuration entry. This comes from the x86 entry, but reworded to be more a more accurate description of what this option does. Signed-off-by: Russell King arch/arm/Kconfig | 6 ++++++ 1 file changed, 6 insertions(+) commit e6ae32c343981a50aa07c34767f2a967cc920edc Author: Russell King Date: Thu Jun 25 10:34:38 2015 +0100 ARM: fix DEBUG_SET_MODULE_RONX build dependencies randconfig testing reveals that DEBUG_SET_MODULE_RONX needs to depend on MMU otherwise these build errors are observed: kernel/built-in.o: In function `set_section_ro_nx': kernel/module.c:1738: undefined reference to `set_memory_nx' kernel/built-in.o: In function `set_page_attributes': kernel/module.c:1709: undefined reference to `set_memory_ro' This is because the pageattr functions are not built for !MMU configs as they don't have page tables. Signed-off-by: Russell King arch/arm/Kconfig.debug | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 39f897fdbd46873defc8501102124f862e8f4d80 Author: NeilBrown Date: Mon Jun 29 14:28:54 2015 +1000 NFSv4: When returning a delegation, don't reclaim an incompatible open mode. It is possible to have an active open with one mode, and a delegation for the same file with a different mode. In particular, a WR_ONLY open and an RD_ONLY delegation. This happens if a WR_ONLY open is followed by a RD_ONLY open which provides a delegation, but is then close. When returning the delegation, we currently try to claim opens for every open type (n_rdwr, n_rdonly, n_wronly). As there is no harm in claiming an open for a mode that we already have, this is often simplest. However if the delegation only provides a subset of the modes that we currently have open, this will produce an error from the server. So when claiming open modes prior to returning a delegation, skip the open request if the mode is not covered by the delegation - the open_stateid must already cover that mode, so there is nothing to do. Signed-off-by: NeilBrown Signed-off-by: Trond Myklebust fs/nfs/nfs4proc.c | 7 +++++++ 1 file changed, 7 insertions(+) commit c5b2b809cee8db018ac68566fe2114c175d79b5b Author: Reyad Attiyat Date: Sun Jun 28 19:22:37 2015 -0500 HID: microsoft: Add quirk for MS Surface Type/Touch cover The newer firmware on MS Surface 2 tablets causes the type and touch cover keyboards to timeout when waiting for reports. The quirk HID_QUIRK_NO_INIT_REPORTS allows them to function normally. Signed-off-by: Reyad Attiyat Signed-off-by: Jiri Kosina drivers/hid/usbhid/hid-quirks.c | 3 +++ 1 file changed, 3 insertions(+) commit 2059ac3b1304cb6a82f9d90762dea9f556831627 Author: Jani Nikula Date: Fri Jun 26 14:18:56 2015 +0300 drm/i915: fix backlight after resume on 855gm Some 855gm models (at least ThinkPad X40) regressed because of commit b0cd324faed23d10d66ba6ade66579c681feef6f Author: Jani Nikula Date: Wed Nov 12 16:25:43 2014 +0200 drm/i915: don't save/restore backlight hist ctl registers which tried to make our driver more robust by not blindly saving and restoring registers, but it failed to take into account commit 0eb96d6ed38430b72897adde58f5477a6b71757a Author: Jesse Barnes Date: Wed Oct 14 12:33:41 2009 -0700 drm/i915: save/restore BLC histogram control reg across suspend/resume Fix the regression by enabling hist ctl on gen2. v2: Improved the comment. v3: Improved the comment, again. Reported-and-tested-by: Philipp Gesang References: http://mid.gmane.org/20150623222648.GD12335@acheron Fixes: b0cd324faed2 ("drm/i915: don't save/restore backlight hist ctl registers") Cc: Ville Syrjälä Cc: stable@vger.kernel.org Acked-by: Chris Wilson Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_reg.h | 1 + drivers/gpu/drm/i915/intel_panel.c | 8 ++++++++ 2 files changed, 9 insertions(+) commit 8b572a4200828b4e75cc22ed2f494b58d5372d65 Author: Chris Wilson Date: Sun Jun 28 14:18:16 2015 +0100 agp/intel: Fix typo in needs_ilk_vtd_wa() In needs_ilk_vtd_wa(), we pass in the GPU device but compared it against the ids for the mobile GPU and the mobile host bridge. That latter is impossible and so likely was just a typo for the desktop GPU device id (which is also buggy). Fixes commit da88a5f7f7d434e2cde1b3e19d952e6d84533662 Author: Chris Wilson Date: Wed Feb 13 09:31:53 2013 +0000 drm/i915: Disable WC PTE updates to w/a buggy IOMMU on ILK Reported-by: Ting-Wei Lan Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91127 References: https://bugzilla.freedesktop.org/show_bug.cgi?id=60391 Signed-off-by: Chris Wilson Cc: Daniel Vetter Cc: stable@vger.kernel.org Reviewed-by: Daniel Vetter Signed-off-by: Jani Nikula drivers/char/agp/intel-gtt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e48866647b486f31ff7c3927b48de8bbb1c6a4c0 Author: Vitaly Andrianov Date: Fri Jun 26 17:13:03 2015 +0100 ARM: 8396/1: use phys_addr_t in pfn_to_kaddr() This patch fixes pfn_to_kaddr() to use phys_addr_t. Without this, this macro is broken on LPAE systems. For physical addresses above first 4GB result of shifting pfn with PAGE_SHIFT may be truncated. Signed-off-by: Vitaly Andrianov Acked-by: Nicolas Pitre Acked-by: Santosh Shilimkar Signed-off-by: Russell King arch/arm/include/asm/memory.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3de1f52a3ae823265299409e276f56cdadddc310 Author: Laura Abbott Date: Thu Jun 25 01:04:20 2015 +0100 ARM: 8394/1: update memblock limit after mapping lowmem The memblock limit is currently used in find_limits to find the bounds for ZONE_NORMAL. The memblock limit may need to be rounded down a PMD size to ensure allocations are fully mapped though. This has the side effect of reducing the amount of memory in ZONE_NORMAL. Once all lowmem is mapped, it's safe to change the memblock limit back to include the unaligned section. Adjust the memblock limit after lowmem mapping is complete. Before: # cat /proc/zoneinfo | grep managed managed 62907 managed 424 After: # cat /proc/zoneinfo | grep managed managed 63331 Signed-off-by: Laura Abbott Reviewed-by: Mark Rutland Tested-by: Mark Rutland Signed-off-by: Russell King arch/arm/mm/mmu.c | 1 + 1 file changed, 1 insertion(+) commit 398f74569cebbf06bc6b069442bcd0e9616ca465 Author: Stephen Boyd Date: Fri Jun 19 21:37:56 2015 +0100 ARM: 8393/1: smp: Fix suspicious RCU usage with ipi tracepoints John Stultz reports an RCU splat on boot with ARM ipi trace events enabled. =============================== [ INFO: suspicious RCU usage. ] 4.1.0-rc7-00033-gb5bed2f #153 Not tainted ------------------------------- include/trace/events/ipi.h:68 suspicious rcu_dereference_check() usage! other info that might help us debug this: RCU used illegally from idle CPU! rcu_scheduler_active = 1, debug_locks = 0 RCU used illegally from extended quiescent state! no locks held by swapper/0/0. stack backtrace: CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.1.0-rc7-00033-gb5bed2f #153 Hardware name: Qualcomm (Flattened Device Tree) [] (unwind_backtrace) from [] (show_stack+0x10/0x14) [] (show_stack) from [] (dump_stack+0x70/0xbc) [] (dump_stack) from [] (handle_IPI+0x428/0x604) [] (handle_IPI) from [] (gic_handle_irq+0x54/0x5c) [] (gic_handle_irq) from [] (__irq_svc+0x44/0x7c) Exception stack(0xc09f3f48 to 0xc09f3f90) 3f40: 00000001 00000001 00000000 c09f73b8 c09f4528 c0a5de9c 3f60: c076b4f0 00000000 00000000 c09ef108 c0a5cec1 00000001 00000000 c09f3f90 3f80: c026bf60 c0210ab8 20000113 ffffffff [] (__irq_svc) from [] (arch_cpu_idle+0x20/0x3c) [] (arch_cpu_idle) from [] (cpu_startup_entry+0x2c0/0x5dc) [] (cpu_startup_entry) from [] (start_kernel+0x358/0x3c4) [] (start_kernel) from [<8020807c>] (0x8020807c) At this point in the IPI handling path we haven't called irq_enter() yet, so RCU doesn't know that we're about to exit idle and properly warns that we're using RCU from an idle CPU. Use trace_ipi_entry_rcuidle() instead of trace_ipi_entry() so that RCU is informed about our exit from idle. Fixes: 365ec7b17327 ("ARM: add IPI tracepoints") Reported-by: John Stultz Tested-by: John Stultz Acked-by: Steven Rostedt Reviewed-by: Paul E. McKenney Signed-off-by: Stephen Boyd Signed-off-by: Russell King arch/arm/kernel/smp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5e53c8ed813d6100d2cebbf83f2192b201f70772 Author: Jean-Baptiste Theou Date: Tue Jun 9 09:55:03 2015 -0700 watchdog: gpio_wdt: Add option for early registration In some situation, mainly when it's not possible to disable a watchdog, you may want the watchdog driver to be started as soon as possible. Adding GPIO_WATCHDOG_ARCH_INITCALL to raise initcall from module_init to arch_initcall. This patch require watchdog registration deferral mechanism Signed-off-by: Jean-Baptiste Theou Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/Kconfig | 12 ++++++++++++ drivers/watchdog/gpio_wdt.c | 9 +++++++++ 2 files changed, 21 insertions(+) commit ef90174f821041313d42d99c1c8b35a3af64a910 Author: Jean-Baptiste Theou Date: Tue Jun 9 09:55:02 2015 -0700 watchdog: watchdog_core: Add watchdog registration deferral mechanism Currently, watchdog subsystem require the misc subsystem to register a watchdog. This may not be the case in case of an early registration of a watchdog, which can be required when the watchdog cannot be disabled. This patch introduces a deferral mechanism to remove this requirement. Signed-off-by: Jean-Baptiste Theou Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck Documentation/watchdog/watchdog-kernel-api.txt | 7 ++ drivers/watchdog/watchdog_core.c | 118 +++++++++++++++++++++---- include/linux/watchdog.h | 3 + 3 files changed, 110 insertions(+), 18 deletions(-) commit b9be9660ba2d23259e4a430a44167ef441dc5fe6 Author: Vivien Didelot Date: Wed Jun 17 18:58:58 2015 -0400 watchdog: max63xx: dynamically allocate device This patch removes the static watchdog device for a new max63xx_wdt data structure, and constifies the max63xx_timeout data. The new structure contains pointers to pin access routines, which abstracts mmap-specific code. This will ease future accesses like GPIO. Signed-off-by: Vivien Didelot Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/max63xx_wdt.c | 170 +++++++++++++++++++++++++---------------- 1 file changed, 104 insertions(+), 66 deletions(-) commit 1947a114bff140b35bbad1c84a5af216f8416281 Author: Markus Elfring Date: Sun Jun 28 11:15:28 2015 +0200 ALSA: hda: Delete an unnecessary check before the function call "snd_info_free_entry" The snd_info_free_entry() function tests whether its argument is NULL and then returns immediately. Thus the test around the call is not needed. This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring Signed-off-by: Takashi Iwai sound/pci/hda/patch_hdmi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4275554dccdf0afac07b2b638ba7456095629558 Author: Takashi Iwai Date: Mon Jun 29 10:56:53 2015 +0200 ALSA: hda - Add a fixup for Dell E7450 Dell E7450 [0128:062e] needs the same quirk as other E7xx models. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=100571 Cc: # v4.1 Signed-off-by: Takashi Iwai sound/pci/hda/patch_realtek.c | 1 + 1 file changed, 1 insertion(+) commit 1af135a1e70ee6e31b5c265c769448984d221cf2 Author: Heiko Carstens Date: Fri Jun 26 12:10:49 2015 +0200 s390/kdump: fix compile for !SMP Fix this compile error: arch/s390/kernel/setup.c:875:2: error: implicit declaration of function 'smp_save_dump_cpus' Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky arch/s390/include/asm/smp.h | 1 + arch/s390/kernel/smp.c | 44 +++++++++++++++++++++----------------------- 2 files changed, 22 insertions(+), 23 deletions(-) commit 0fbafd06bdde938884f7326548d3df812b267c3c Author: Tadeusz Struk Date: Sat Jun 27 15:56:38 2015 +0900 crypto: aesni - fix failing setkey for rfc4106-gcm-aesni rfc4106(gcm(aes)) uses ctr(aes) to generate hash key. ctr(aes) needs chainiv, but the chainiv gets initialized after aesni_intel when both are statically linked so the setkey fails. This patch forces aesni_intel to be initialized after chainiv. Signed-off-by: Tadeusz Struk Tested-by: Linus Torvalds Signed-off-by: Herbert Xu arch/x86/crypto/aesni-intel_glue.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 12a4bd3122747eae2941f0be38119affb52c2e12 Author: Markus Elfring Date: Fri Jun 26 20:30:11 2015 +0200 crypto: qat - Deletion of unnecessary checks before two function calls The functions kfree() and release_firmware() test whether their argument is NULL and then return immediately. Thus the test around the calls is not needed. This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring Signed-off-by: Herbert Xu drivers/crypto/qat/qat_common/adf_accel_engine.c | 5 +---- drivers/crypto/qat/qat_common/adf_transport.c | 2 +- 2 files changed, 2 insertions(+), 5 deletions(-) commit 4df3fd1700abbb53bd874143dfd1f9ac9e7cbf4b Author: Takashi Iwai Date: Mon Jun 29 08:38:02 2015 +0200 ALSA: hda - Fix the dock headphone output on Fujitsu Lifebook E780 Fujitsu Lifebook E780 sets the sequence number 0x0f to only only of the two headphones, thus the driver tries to assign another as the line-out, and this results in the inconsistent mapping between the created jack ctl and the actual I/O. Due to this, PulseAudio doesn't handle it properly and gets the silent output. The fix is to ignore the non-HP sequencer checks. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=99681 Cc: Signed-off-by: Takashi Iwai sound/pci/hda/patch_realtek.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 7c80c3af5a2fd4dfb6a2c644181c259c3e2053cf Merge: 8031612 d8e704e Author: David S. Miller Date: Sun Jun 28 20:28:21 2015 -0700 Merge branch 'bcm7xxx_workaround' Florian Fainelli says: ==================== net: phy: bcm7xxx initial read/write workaround This patch series fixes occasional BCM7xxx PHY driver binding failure due to a harware bug where the first read or write does not come out of the PHY MDIO management controller. Since we have two different MDIO controllers using this PHY, a similar need to be replicated in GENET and UniMAC MDIO. ==================== Signed-off-by: David S. Miller commit d8e704e461c217918cf236f49276e469580afbef Author: Florian Fainelli Date: Fri Jun 26 10:39:06 2015 -0700 net: phy: mdio-bcm-unimac: workaround initial read failures for integrated PHYs All BCM7xxx integrated Gigabit PHYs have an issue in their MDIO management controller which will make the initial read or write to them to fail and return 0xffff. This is a real issue as the typical first thing we do is read from MII_PHYSID1 and MII_PHYSID2 from get_phy_id() to register a driver for these PHYs. Coupled with the workaround in drivers/net/phy/bcm7xxx.c, this workaround for the MDIO bus controller consists in scanning the list of PHYs to do this initial read workaround for as part of the MDIO bus reset routine which is invoked prior to mdiobus_scan(). Once we have a proper PHY driver/device registered, all workarounds are located there (e.g: power management suspend/resume calls). Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/phy/mdio-bcm-unimac.c | 43 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) commit 7b635da86821005cd131369b7a4268df8067cc6c Author: Florian Fainelli Date: Fri Jun 26 10:39:05 2015 -0700 net: bcmgenet: workaround initial read failures for integrated PHYs All BCM7xxx integrated Gigabit PHYs have an issue in their MDIO management controller which will make the initial read or write to them to fail and return 0xffff. This is a real issue as the typical first thing we do is read from MII_PHYSID1 and MII_PHYSID2 from get_phy_id() to register a driver for these PHYs. Coupled with the workaround in drivers/net/phy/bcm7xxx.c, this workaround for the MDIO bus controller consists in scanning the list of PHYs to do this initial read workaround for as part of the MDIO bus reset routine which is invoked prior to mdiobus_scan(). Once we have a proper PHY driver/device registered, all workarounds are located there (e.g: power management suspend/resume calls). Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/genet/bcmgenet.h | 1 + drivers/net/ethernet/broadcom/genet/bcmmii.c | 54 ++++++++++++++++++++++++-- 2 files changed, 51 insertions(+), 4 deletions(-) commit 8e346e1594bab6c06b6b4d2938c881729b03041d Author: Florian Fainelli Date: Fri Jun 26 10:39:04 2015 -0700 net: phy: bcm7xxx: workaround MDIO management controller initial read The initial MDIO read or write towards the BCM7xxx integrated PHY may fail, workaround this by inserting a dummy MII_BMSR read to force the MDIO management controller to see at least one valid transaction and get out of stuck state out of reset. Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/phy/bcm7xxx.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 8031612d7fa8e49589a91da238a93a067826c668 Author: Michal Schmidt Date: Fri Jun 26 17:50:00 2015 +0200 bnx2x: fix DMA API usage With CONFIG_DMA_API_DEBUG=y bnx2x triggers the error "DMA-API: device driver frees DMA memory with wrong function". On archs where PAGE_SIZE > SGE_PAGE_SIZE it also triggers "DMA-API: device driver frees DMA memory with different size". Fix this by making the mapping and unmapping symmetric: - Do not map the whole pool page at once. Instead map the SGE_PAGE_SIZE-sized pieces individually, so they can be unmapped in the same manner. - What's mapped using dma_map_page() must be unmapped using dma_unmap_page(). Tested on ppc64. Fixes: 4cace675d687 ("bnx2x: Alloc 4k fragment for each rx ring buffer element") Signed-off-by: Michal Schmidt Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnx2x/bnx2x.h | 1 - drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 23 ++++++++++------------- drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h | 12 ++---------- 3 files changed, 12 insertions(+), 24 deletions(-) commit 0f8b6cea1f3271ccc37dd2847b39e235461e0ced Author: Geert Uytterhoeven Date: Fri Jun 26 14:08:22 2015 +0200 net: via: VIA_RHINE and VIA_VELOCITY should depend on HAS_DMA If NO_DMA=y: ERROR: "dma_sync_single_for_cpu" [drivers/net/ethernet/via/via-rhine.ko] undefined! ERROR: "dma_set_mask" [drivers/net/ethernet/via/via-rhine.ko] undefined! ERROR: "dma_mapping_error" [drivers/net/ethernet/via/via-rhine.ko] undefined! ERROR: "dma_map_single" [drivers/net/ethernet/via/via-rhine.ko] undefined! ERROR: "dma_alloc_coherent" [drivers/net/ethernet/via/via-rhine.ko] undefined! ERROR: "dma_free_coherent" [drivers/net/ethernet/via/via-rhine.ko] undefined! ERROR: "dma_unmap_single" [drivers/net/ethernet/via/via-rhine.ko] undefined! ERROR: "dma_map_page" [drivers/net/ethernet/via/via-velocity.ko] undefined! ERROR: "dma_sync_single_for_cpu" [drivers/net/ethernet/via/via-velocity.ko] undefined! ERROR: "dma_free_coherent" [drivers/net/ethernet/via/via-velocity.ko] undefined! ERROR: "dma_unmap_single" [drivers/net/ethernet/via/via-velocity.ko] undefined! ERROR: "dma_map_single" [drivers/net/ethernet/via/via-velocity.ko] undefined! ERROR: "dma_alloc_coherent" [drivers/net/ethernet/via/via-velocity.ko] undefined! Before, the symbols depended implicitly on HAS_DMA through PCI or USE_OF. Add explicit dependencies on HAS_DMA to fix this. Fixes: b7d3282a245f4428 ("net: via/Kconfig: replace USE_OF with OF_???") Signed-off-by: Geert Uytterhoeven Signed-off-by: David S. Miller drivers/net/ethernet/via/Kconfig | 2 ++ 1 file changed, 2 insertions(+) commit ebb3a9d4ba3babd19c83b96fc88fc9b0d2f7d2d6 Author: Steve French Date: Thu Jun 18 04:49:47 2015 -0500 Update negotiate protocol for SMB3.11 dialect Send negotiate contexts when SMB3.11 dialect is negotiated (ie the preauth and the encryption contexts) and Initialize SMB3.11 preauth negotiate context salt to random bytes Followon patch will update session setup and tree connect Signed-off-by: Steve French fs/cifs/smb2pdu.c | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- fs/cifs/smb2pdu.h | 6 +++--- 2 files changed, 60 insertions(+), 5 deletions(-) commit b3152e2c7aa9ad0c50085738d048fbf16d01d32d Author: Steve French Date: Wed Jun 24 03:17:02 2015 -0500 Add ioctl to set integrity set integrity increases reliability of files stored on SMB3 servers. Add ioctl to allow setting this on files on SMB3 and later mounts. Signed-off-by: Steve French fs/cifs/cifsglob.h | 2 ++ fs/cifs/ioctl.c | 11 +++++++++++ fs/cifs/smb2ops.c | 24 ++++++++++++++++++++++++ fs/cifs/smb2pdu.h | 1 + 4 files changed, 38 insertions(+) commit 9d1b06602eb6716220c5988735c0b4944d62abaa Author: Steve French Date: Wed Jun 24 02:12:19 2015 -0500 Add Get/Set Integrity Information structure definitions Signed-off-by: Steve French fs/cifs/smb2pdu.h | 22 ++++++++++++++++++++++ fs/cifs/smbfsctl.h | 2 ++ 2 files changed, 24 insertions(+) commit 02b1666544c08e245cb4e2253ed575f8128943d6 Author: Steve French Date: Sat Jun 27 21:18:36 2015 -0700 Add reflink copy over SMB3.11 with new FSCTL_DUPLICATE_EXTENTS Getting fantastic copy performance with cp --reflink over SMB3.11 using the new FSCTL_DUPLICATE_EXTENTS. This FSCTL was added in the SMB3.11 dialect (testing was against REFS file system) so have put it as a 3.11 protocol specific operation ("vers=3.1.1" on the mount). Tested at the SMB3 plugfest in Redmond. It depends on the new FS Attribute (BLOCK_REFCOUNTING) which is used to advertise support for the ability to do this ioctl (if you can support multiple files pointing to the same block than this refcounting ability or equivalent is needed to support the new reflink-like duplicate extent SMB3 ioctl. Signed-off-by: Steve French fs/cifs/cifsglob.h | 3 +++ fs/cifs/cifspdu.h | 2 ++ fs/cifs/ioctl.c | 16 +++++++++++++--- fs/cifs/smb2ops.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ fs/cifs/smb2pdu.h | 8 ++++++++ fs/cifs/smbfsctl.h | 1 + 6 files changed, 75 insertions(+), 3 deletions(-) commit ebc032391c814a12cb13813b741a00bfb8617b75 Merge: da1da28 40746eb Author: David S. Miller Date: Sun Jun 28 17:20:02 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-06-26 This series contains fixes for igb, e1000e and i40evf. Todd disables IPv6 extension header processing due to a hardware errata and bumps the driver version. Yanir provides six fixes for e1000e. First is a fix for a locking issue where we were not always taking the pci_bus_sem semaphore all the time when calling pci_disable_link_state_locked(), so fix the code to only call pci_disable_link_state_locked() when the semaphore has been acquired, otherwise call pci_disable_link_state(). A previous fix for i219 where the hardware prevented ULP entry caused EEE in Sx not the be enabled, so modify the code flow that allows both ULP and EEE in Sx. Fix an issue when running 10/100 full duplex on i219 where CRC errors were occurring by increasing the IPG from 8 to 0xC as per the hardware developers. Fix a data corruption issue found on some platforms by increasing the minimum gap between the PHY FIFO read and write pointers. Fix i219, which does not require the K1 workaround for LPT devices. Mitch provides a i40evf fix for a panic when changing MTU. Down was requesting queue disables, but then exited immediately without waiting for the queues to actually be disabled. This could allow any function called after i40evf_down() to run immediately, including i40evf_up(), and causes a memory leak. Fixed the issue by removing the whole reinit_locked function which allows for the driver to handle the state changes by requesting reset from the periodic timer. The second fix resolves an issue where RSS was being configured as though it is using the maximum number of queue. This can cause the device to drop a lot of receive traffic, as the packets get assigned to non-functional queues. This is resolved by only configuring RSS with the number of active queues. ==================== Signed-off-by: David S. Miller commit da1da284d7b271c77007e6dd6fa1fff54eaa7492 Author: Shengzhou Liu Date: Fri Jun 26 17:58:52 2015 +0800 net/phy: tune get_phy_c45_ids to support more c45 phy As some C45 10G PHYs(e.g. Cortina CS4315/CS4340 PHY) have zero Devices In package, current driver can't get correct devices_in_package value by non-zero Devices In package. so let's probe more with zero Devices In package to support more C45 PHYs. Signed-off-by: Shengzhou Liu Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/phy/phy_device.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) commit d53c66a5b80698620f7c9ba2372fff4017e987b8 Author: Eric Dumazet Date: Fri Jun 26 07:32:29 2015 +0200 bnx2x: fix lockdep splat Michel reported following lockdep splat [ 44.718117] INFO: trying to register non-static key. [ 44.723081] the code is fine but needs lockdep annotation. [ 44.728559] turning off the locking correctness validator. [ 44.734036] CPU: 8 PID: 5483 Comm: ethtool Not tainted 4.1.0 [ 44.770289] Call Trace: [ 44.772741] [] dump_stack+0x4c/0x65 [ 44.777879] [] ? console_unlock+0x1f1/0x510 [ 44.783708] [] __lock_acquire+0x1d05/0x1f10 [ 44.789538] [] ? mark_held_locks+0x6a/0x90 [ 44.795276] [] ? trace_hardirqs_on_caller+0x105/0x1d0 [ 44.801967] [] ? trace_hardirqs_on+0xd/0x10 [ 44.807793] [] ? hrtimer_try_to_cancel+0x4a/0x250 [ 44.814142] [] lock_acquire+0xb6/0x290 [ 44.819537] [] ? flush_work+0x5/0x280 [ 44.824844] [] flush_work+0x3d/0x280 [ 44.830061] [] ? flush_work+0x5/0x280 [ 44.835366] [] ? schedule_hrtimeout_range+0x13/0x20 [ 44.841889] [] ? usleep_range+0x4b/0x50 [ 44.847365] [] ? mark_held_locks+0x6a/0x90 [ 44.853102] [] ? __cancel_work_timer+0x105/0x1c0 [ 44.859359] [] ? trace_hardirqs_on_caller+0x105/0x1d0 [ 44.866045] [] __cancel_work_timer+0x9f/0x1c0 [ 44.872048] [] ? bnx2x_func_stop+0x42/0x90 [bnx2x] [ 44.878481] [] cancel_work_sync+0x10/0x20 [ 44.884134] [] bnx2x_chip_cleanup+0x245/0x730 [bnx2x] [ 44.890829] [] ? up+0x32/0x50 [ 44.895439] [] ? del_timer_sync+0x5/0xd0 [ 44.901005] [] bnx2x_nic_unload+0x20d/0x8e0 [bnx2x] [ 44.907527] [] ? might_fault+0x5f/0xb0 [ 44.912921] [] bnx2x_reload_if_running+0x2c/0x50 [bnx2x] [ 44.919879] [] bnx2x_set_ringparam+0x2b5/0x460 [bnx2x] [ 44.926664] [] dev_ethtool+0x55b/0x1c40 [ 44.932148] [] ? rtnl_lock+0x17/0x20 [ 44.937364] [] dev_ioctl+0x17b/0x630 [ 44.942582] [] sock_do_ioctl+0x5d/0x70 [ 44.947972] [] sock_ioctl+0x73/0x280 [ 44.953192] [] do_vfs_ioctl+0x88/0x5b0 [ 44.958587] [] ? up_read+0x23/0x40 [ 44.963631] [] ? __fget_light+0x6c/0xa0 [ 44.969105] [] SyS_ioctl+0x91/0xb0 [ 44.974149] [] system_call_fastpath+0x12/0x6f As bnx2x_init_ptp() is only called if bp->flags contains PTP_SUPPORTED, we also need to guard bnx2x_stop_ptp() with same condition, otherwise ptp_task workqueue is not initialized and kernel barfs on cancel_work_sync() Fixes: eeed018cbfa30 ("bnx2x: Add timestamping and PTP hardware clock support") Reported-by: Michel Lespinasse Signed-off-by: Eric Dumazet Cc: Michal Kalderon Cc: Ariel Elior Cc: Yuval Mintz Cc: David Decotigny Acked-by: Sony Chacko Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 18803495a7eeef3c0ce67e37779115c71732eed1 Author: Greg Ungerer Date: Sat Jun 20 15:51:57 2015 +1000 net: fec: don't access RACC register when not available Not all silicon implementations of the Freescale FEC hardware module have the RACC (Receive Accelerator Function) register, so we should not be trying to access it on those that don't. Currently none of the ColdFire based parts with a FEC have it. Support for RACC was introduced by commit 4c09eed9 ("net: fec: Enable imx6 enet checksum acceleration"). A fix was introduced in commit d1391930 ("net: fec: Fix build for MCF5272") that disables its use on the ColdFire M5272 part, but it doesn't fix the general case of other ColdFire parts. To fix we create a quirk flag, FEC_QUIRK_HAS_RACC, and check it before working with the RACC register. Signed-off-by: Greg Ungerer Signed-off-by: David S. Miller drivers/net/ethernet/freescale/fec.h | 2 ++ drivers/net/ethernet/freescale/fec_main.c | 30 +++++++++++++++++------------- 2 files changed, 19 insertions(+), 13 deletions(-) commit eb686231fce3770299760f24fdcf5ad041f44153 Author: Mugunthan V N Date: Thu Jun 25 22:21:02 2015 +0530 net: phy: fix phy link up when limiting speed via device tree When limiting phy link speed using "max-speed" to 100mbps or less on a giga bit phy, phy never completes auto negotiation and phy state machine is held in PHY_AN. Fixing this issue by comparing the giga bit advertise though phydev->supported doesn't have it but phy has BMSR_ESTATEN set. So that auto negotiation is restarted as old and new advertise are different and link comes up fine. Signed-off-by: Mugunthan V N Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/phy/phy_device.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 4fdeddfe04d0d0fdd4cc57bc25a02adf40dbb60a Author: Gilad Ben-Yossef Date: Thu Jun 25 16:50:13 2015 +0300 dsa: fix promiscuity leak on slave dev open error DSA master netdev promiscuity counter was not being properly decremented on slave device open error path. Signed-off-by: Gilad Ben-Yossef CC: Gilad Ben-Yossef CC: David S. Miller CC: Florian Fainelli CC: Guenter Roeck CC: Andrew Lunn CC: Scott Feldman Acked-by: Andrew Lunn Acked-by: Florian Fainelli Signed-off-by: David S. Miller net/dsa/slave.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 14e28b1d3cdb8cb877be45c73b70c2ae8a77e14d Merge: 2e59871 1830fce Author: David S. Miller Date: Sun Jun 28 16:55:44 2015 -0700 Merge branch 'kill_sk_protinfo' David Miller says: ==================== Get rid of sock->sk_protinfo. These two patches get rid of the last remaining user of sk_protinfo (ax25) and then really gets rid of the struct member. ==================== Signed-off-by: David S. Miller commit 1830fcea5bbed2719a9dc32aebe802f72ddf14ab Author: David Miller Date: Thu Jun 25 06:19:15 2015 -0700 net: Kill sock->sk_protinfo No more users, so it can now be removed. Signed-off-by: David S. Miller include/net/sock.h | 2 -- net/core/sock.c | 1 - net/sctp/socket.c | 6 ------ 3 files changed, 9 deletions(-) commit 3200392b88dd25f0d60a500a38d1ce538eb7f933 Author: David Miller Date: Thu Jun 25 06:19:07 2015 -0700 ax25: Stop using sock->sk_protinfo. Just make a ax25_sock structure that provides the ax25_cb pointer. Signed-off-by: David S. Miller include/net/ax25.h | 16 +++++++++++++++- net/ax25/af_ax25.c | 30 +++++++++++++++--------------- net/ax25/ax25_in.c | 2 +- 3 files changed, 31 insertions(+), 17 deletions(-) commit 2e598712e4b36256c3cf3bca1c2bf0460036cc89 Author: Geert Uytterhoeven Date: Thu Jun 25 15:13:29 2015 +0200 drivers: net: xgene: Pre-initialize ret in xgene_enet_get_resources() If CONFIG_ACPI=n: drivers/net/ethernet/apm/xgene/xgene_enet_main.c: In function ‘xgene_enet_get_resources’: drivers/net/ethernet/apm/xgene/xgene_enet_main.c:951: warning: ‘ret’ may be used uninitialized in this function If the driver is bound to a legacy platform device, ret will contain arbitrary data. If it is non-zero, it will be returned to the caller as an error code. Signed-off-by: Geert Uytterhoeven Signed-off-by: David S. Miller drivers/net/ethernet/apm/xgene/xgene_enet_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8e690ffdbcc7b548aae3c644c3efcc6e0394fe37 Author: Geert Uytterhoeven Date: Thu Jun 25 15:10:32 2015 +0200 flow_dissector: Pre-initialize ip_proto in __skb_flow_dissect() net/core/flow_dissector.c: In function ‘__skb_flow_dissect’: net/core/flow_dissector.c:132: warning: ‘ip_proto’ may be used uninitialized in this function Signed-off-by: Geert Uytterhoeven Acked-by: Tom Herbert Signed-off-by: David S. Miller net/core/flow_dissector.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c63f887bdae80858c7cebf914f45f69bbaa88e8d Merge: 21dc2e6 e1632fa Author: Linus Torvalds Date: Sun Jun 28 16:52:47 2015 -0700 Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu Pull m68knommu updates from Greg Ungerer: "Only a couple of small changes. Improved the m68knommu MAINTAINERS entry to make it clearer which m68k parts this applies to, and a print format clean up" * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu: m68k: improve m68knommu MAINTAINERS entry m68k: Use vsprintf %pM extension commit 905726c1c5a3ca620ba7d73c78eddfb91de5ce28 Author: Li, Liang Z Date: Sat Jun 27 07:17:26 2015 +0800 xen-netfront: Remove the meaningless code The function netif_set_real_num_tx_queues() will return -EINVAL if the second parameter < 1, so call this function with the second parameter set to 0 is meaningless. Signed-off-by: Liang Li Reviewed-by: David Vrabel Signed-off-by: David S. Miller drivers/net/xen-netfront.c | 7 ------- 1 file changed, 7 deletions(-) commit 96ac5cc9636318e7d92e72a3f1032456152a3a2f Author: Andy Gospodarek Date: Fri Jun 26 19:37:11 2015 -0400 ipv4: fix RCU lockdep warning from linkdown changes The following lockdep splat was seen due to the wrong context for grabbing in_dev. =============================== [ INFO: suspicious RCU usage. ] 4.1.0-next-20150626-dbg-00020-g54a6d91-dirty #244 Not tainted ------------------------------- include/linux/inetdevice.h:205 suspicious rcu_dereference_check() usage! other info that might help us debug this: rcu_scheduler_active = 1, debug_locks = 0 2 locks held by ip/403: #0: (rtnl_mutex){+.+.+.}, at: [] rtnl_lock+0x17/0x19 #1: ((inetaddr_chain).rwsem){.+.+.+}, at: [] __blocking_notifier_call_chain+0x35/0x6a stack backtrace: CPU: 2 PID: 403 Comm: ip Not tainted 4.1.0-next-20150626-dbg-00020-g54a6d91-dirty #244 0000000000000001 ffff8800b189b728 ffffffff8150a542 ffffffff8107a8b3 ffff880037bbea40 ffff8800b189b758 ffffffff8107cb74 ffff8800379dbd00 ffff8800bec85800 ffff8800bf9e13c0 00000000000000ff ffff8800b189b7d8 Call Trace: [] dump_stack+0x4c/0x6e [] ? up+0x39/0x3e [] lockdep_rcu_suspicious+0xf7/0x100 [] fib_dump_info+0x227/0x3e2 [] rtmsg_fib+0xa6/0x116 [] fib_table_insert+0x316/0x355 [] fib_magic+0xb7/0xc7 [] fib_add_ifaddr+0xb1/0x13b [] fib_inetaddr_event+0x36/0x90 [] notifier_call_chain+0x4c/0x71 [] __blocking_notifier_call_chain+0x4e/0x6a [] blocking_notifier_call_chain+0x14/0x16 [] __inet_insert_ifa+0x1a5/0x1b3 [] inet_rtm_newaddr+0x350/0x35f [] rtnetlink_rcv_msg+0x17b/0x18a [] ? trace_hardirqs_on+0xd/0xf [] ? netlink_deliver_tap+0x1cb/0x1f7 [] ? rtnl_newlink+0x72a/0x72a ... This patch resolves that splat. Signed-off-by: Andy Gospodarek Reported-by: Sergey Senozhatsky Signed-off-by: David S. Miller net/ipv4/fib_semantics.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 7d967b673c2ff992205be051ffebc39e1a323400 Author: Jon Paul Maloy Date: Sun Jun 28 09:44:44 2015 -0400 tipc: purge backlog queue counters when broadcast link is reset In commit 1f66d161ab3d8b518903fa6c3f9c1f48d6919e74 ("tipc: introduce starvation free send algorithm") we introduced a counter per priority level for buffers in the link backlog queue. We also introduced a new function tipc_link_purge_backlog(), to reset these counters to zero when the link is reset. Unfortunately, we missed to call this function when the broadcast link is reset, with the result that the values of these counters might be permanently skewed when new nodes are attached. This may in the worst case lead to permananent, but spurious, broadcast link congestion, where no broadcast packets can be sent at all. We fix this bug with this commit. Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/bcast.c | 5 +++++ net/tipc/link.c | 2 +- net/tipc/link.h | 1 + 3 files changed, 7 insertions(+), 1 deletion(-) commit 21dc2e6c6d552702736ad3603fe9b074654d3932 Merge: b779157 da028d5 Author: Linus Torvalds Date: Sun Jun 28 13:55:08 2015 -0700 Merge branch 'for-linus-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml Pull UML updates from Richard Weinberger: - remove hppfs ("HonePot ProcFS") - initial support for musl libc - uaccess cleanup - random cleanups and bug fixes all over the place * 'for-linus-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml: (21 commits) um: Don't pollute kernel namespace with uapi um: Include sys/types.h for makedev(), major(), minor() um: Do not use stdin and stdout identifiers for struct members um: Do not use __ptr_t type for stack_t's .ss pointer um: Fix mconsole dependency um: Handle tracehook_report_syscall_entry() result um: Remove copy&paste code from init.h um: Stop abusing __KERNEL__ um: Catch unprotected user memory access um: Fix warning in setup_signal_stack_si() um: Rework uaccess code um: Add uaccess.h to ldt.c um: Add uaccess.h to syscalls_64.c um: Add asm/elf.h to vma.c um: Cleanup mem_32/64.c headers um: Remove hppfs um: Move syscall() declaration into os.h um: kernel: ksyms: Export symbol syscall() for fixing modpost issue um/os-Linux: Use char[] for syscall_stub declarations um: Use char[] for linker script address declarations ... commit b779157dd3db6199b50e7ad64678a1ceedbeebcf Merge: 4a10a91 a714ea5 Author: Linus Torvalds Date: Sun Jun 28 12:32:13 2015 -0700 Merge tag 'vfio-v4.2-rc1' of git://github.com/awilliam/linux-vfio Pull VFIO updates from Alex Williamson: - fix race with device reference versus driver release (Alex Williamson) - add reset hooks and Calxeda xgmac reset for vfio-platform (Eric Auger) - enable vfio-platform for ARM64 (Eric Auger) - tag Baptiste Reynal as vfio-platform sub-maintainer (Alex Williamson) * tag 'vfio-v4.2-rc1' of git://github.com/awilliam/linux-vfio: MAINTAINERS: Add vfio-platform sub-maintainer VFIO: platform: enable ARM64 build VFIO: platform: Calxeda xgmac reset module VFIO: platform: populate the reset function on probe VFIO: platform: add reset callback VFIO: platform: add reset struct and lookup table vfio/pci: Fix racy vfio_device_get_from_dev() call commit 40b8ad8f762cae4c44852ee1736ba766f52d5cc3 Author: Vineet Gupta Date: Sun Jun 28 20:22:01 2015 +0530 ARC: Fix build failures for ARCompact in linux-next after ARCv2 support Reported-by: Guenter Roeck Signed-off-by: Vineet Gupta arch/arc/Makefile | 4 ++-- arch/arc/kernel/process.c | 8 +------- 2 files changed, 3 insertions(+), 9 deletions(-) commit d1c6c2fbcda341c583a9277c36404d24bb773140 Author: Vineet Gupta Date: Sat Jun 27 16:56:41 2015 +0530 ARCv2: Allow older gcc to cope with new regime of ARCv2/ARCompact support -no-ll64 is specific to ARCv2 ISA, and is obviously not supported by older ARC gcc - in this case the one hosted by linux-next sanity build service. Ensure that it doesn't get included for ISA_ARCOMPACT Reported-by: Guenter Roeck Signed-off-by: Vineet Gupta arch/arc/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 20bdc2cfdbc484777b30b96fcdbb8994038f3ce1 Author: Stephen Rothwell Date: Fri Jun 26 13:19:19 2015 +1000 modules: only use mod->param_lock if CONFIG_MODULES Signed-off-by: Stephen Rothwell Signed-off-by: Rusty Russell kernel/params.c | 4 ++++ 1 file changed, 4 insertions(+) commit cf2fde7b39e9446e2af015215d7fb695781af0c1 Author: Rusty Russell Date: Fri Jun 26 06:44:38 2015 +0930 param: fix module param locks when !CONFIG_SYSFS. As Dan Streetman points out, the entire point of locking for is to stop sysfs accesses, so they're elided entirely in the !SYSFS case. Reported-by: Stephen Rothwell Signed-off-by: Rusty Russell include/linux/module.h | 2 ++ kernel/module.c | 9 ++++++++- kernel/params.c | 18 ++++++++++++++---- 3 files changed, 24 insertions(+), 5 deletions(-) commit aab1893d5fbeb7c931e97189f54a71ab0ecbf4c7 Author: Steve French Date: Tue Jun 23 23:37:11 2015 -0500 Add SMB3.11 mount option synonym for new dialect Most people think of SMB 3.1.1 as SMB version 3.11 so add synonym for "vers=3.1.1" of "vers=3.11" on mount. Also make sure that unlike SMB3.0 and 3.02 we don't send validate negotiate on mount (it is handled by negotiate contexts) - add list of SMB3.11 specific functions (distinct from 3.0 dialect). Signed-off-by: Steve French w fs/cifs/cifsglob.h | 3 +- fs/cifs/connect.c | 3 +- fs/cifs/smb2ops.c | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 90 insertions(+), 2 deletions(-) commit 80bc83c360ef04cd1f5f8f0fb9c47669e702c980 Author: Steve French Date: Thu Jun 18 05:10:27 2015 -0500 add struct FILE_STANDARD_INFO Signed-off-by: Gregor Beck Reviewed-by: Jeff Layton fs/cifs/cifspdu.h | 10 ++++++++++ 1 file changed, 10 insertions(+) commit f799d6234b6f871ff0fc0d3d2f6f47c4df4505b7 Author: Steve French Date: Thu Jun 18 05:07:52 2015 -0500 Make dialect negotiation warning message easier to read Dialect version and minor version are easier to read in hex Signed-off-by: Steve French fs/cifs/smb2pdu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit eed0e1753cbe7a30758ad2ee5e2742dd7fda2c41 Author: Steve French Date: Fri Feb 6 00:03:52 2015 -0600 Add defines and structs for smb3.1 dialect Add new structures and defines for SMB3.11 negotiate, session setup and tcon See MS-SMB2-diff.pdf section 2.2.3 for additional protocol documentation. Reviewed-by: Jeff Layton Signed-off-by: Steve French fs/cifs/smb2pdu.c | 2 +- fs/cifs/smb2pdu.h | 40 +++++++++++++++++++++++++++++++++++----- 2 files changed, 36 insertions(+), 6 deletions(-) commit 5f7fbf733c9dd6b58d40fa394313a5949b696f84 Author: Steve French Date: Wed Dec 17 22:52:58 2014 -0600 Allow parsing vers=3.11 on cifs mount Parses and recognizes "vers=3.1.1" on cifs mount and allows sending 0x0311 as a new CIFS/SMB3 dialect. Subsequent patches will add the new negotiate contexts and updated session setup Reviewed-by: Jeff Layton Signed-off-by: Steve French fs/cifs/Kconfig | 9 +++++++++ fs/cifs/cifsglob.h | 7 +++++++ fs/cifs/connect.c | 10 ++++++++++ fs/cifs/smb2ops.c | 22 ++++++++++++++++++++++ fs/cifs/smb2pdu.c | 4 ++++ fs/cifs/smb2pdu.h | 10 +++++++--- 6 files changed, 59 insertions(+), 3 deletions(-) commit f291095f340db986271e951e3891bb95624a93ea Author: Noel Power Date: Wed May 27 09:22:10 2015 +0100 client MUST ignore EncryptionKeyLength if CAP_EXTENDED_SECURITY is set [MS-SMB] 2.2.4.5.2.1 states: "ChallengeLength (1 byte): When the CAP_EXTENDED_SECURITY bit is set, the server MUST set this value to zero and clients MUST ignore this value." Signed-off-by: Noel Power Signed-off-by: Steve French fs/cifs/cifssmb.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 4a10a91756ef381bced7b88cfb9232f660b92d93 Merge: e22619a 0b08c5e Author: Linus Torvalds Date: Sat Jun 27 13:53:16 2015 -0700 Merge branch 'upstream' of git://git.infradead.org/users/pcmoore/audit Pull audit updates from Paul Moore: "Four small audit patches for v4.2, all bug fixes. Only 10 lines of change this time so very unremarkable, the patch subject lines pretty much tell the whole story" * 'upstream' of git://git.infradead.org/users/pcmoore/audit: audit: Fix check of return value of strnlen_user() audit: obsolete audit_context check is removed in audit_filter_rules() audit: fix for typo in comment to function audit_log_link_denied() lsm: rename duplicate labels in LSM_AUDIT_DATA_TASK audit message type commit e22619a29fcdb513b7bc020e84225bb3b5914259 Merge: 78c10e5 b3bddff Author: Linus Torvalds Date: Sat Jun 27 13:26:03 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: "The main change in this kernel is Casey's generalized LSM stacking work, which removes the hard-coding of Capabilities and Yama stacking, allowing multiple arbitrary "small" LSMs to be stacked with a default monolithic module (e.g. SELinux, Smack, AppArmor). See https://lwn.net/Articles/636056/ This will allow smaller, simpler LSMs to be incorporated into the mainline kernel and arbitrarily stacked by users. Also, this is a useful cleanup of the LSM code in its own right" * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: (38 commits) tpm, tpm_crb: fix le64_to_cpu conversions in crb_acpi_add() vTPM: set virtual device before passing to ibmvtpm_reset_crq tpm_ibmvtpm: remove unneccessary message level. ima: update builtin policies ima: extend "mask" policy matching support ima: add support for new "euid" policy condition ima: fix ima_show_template_data_ascii() Smack: freeing an error pointer in smk_write_revoke_subj() selinux: fix setting of security labels on NFS selinux: Remove unused permission definitions selinux: enable genfscon labeling for sysfs and pstore files selinux: enable per-file labeling for debugfs files. selinux: update netlink socket classes signals: don't abuse __flush_signals() in selinux_bprm_committed_creds() selinux: Print 'sclass' as string when unrecognized netlink message occurs Smack: allow multiple labels in onlycap Smack: fix seq operations in smackfs ima: pass iint to ima_add_violation() ima: wrap event related data to the new ima_event_data structure integrity: add validity checks for 'path' parameter ... commit 78c10e556ed904d5bfbd71e9cadd8ce8f25d6982 Merge: d2c3ac7 9ff897c Author: Linus Torvalds Date: Sat Jun 27 12:44:34 2015 -0700 Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus Pull MIPS updates from Ralf Baechle: - Improvements to the tlb_dump code - KVM fixes - Add support for appended DTB - Minor improvements to the R12000 support - Minor improvements to the R12000 support - Various platform improvments for BCM47xx - The usual pile of minor cleanups - A number of BPF fixes and improvments - Some improvments to the support for R3000 and DECstations - Some improvments to the ATH79 platform support - A major patchset for the JZ4740 SOC adding support for the CI20 platform - Add support for the Pistachio SOC - Minor BMIPS/BCM63xx platform support improvments. - Avoid "SYNC 0" as memory barrier when unlocking spinlocks - Add support for the XWR-1750 board. - Paul's __cpuinit/__cpuinitdata cleanups. - New Malta CPU board support large memory so enable ZONE_DMA32. * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (131 commits) MIPS: spinlock: Adjust arch_spin_lock back-off time MIPS: asmmacro: Ensure 64-bit FP registers are used with MSA MIPS: BCM47xx: Simplify handling SPROM revisions MIPS: Cobalt Don't use module_init in non-modular MTD registration. MIPS: BCM47xx: Move NVRAM driver to the drivers/firmware/ MIPS: use for_each_sg() MIPS: BCM47xx: Don't select BCMA_HOST_PCI MIPS: BCM47xx: Add helper variable for storing NVRAM length MIPS: IRQ/IP27: Move IRQ allocation API to platform code. MIPS: Replace smp_mb with release barrier function in unlocks. MIPS: i8259: DT support MIPS: Malta: Basic DT plumbing MIPS: include errno.h for ENODEV in mips-cm.h MIPS: Define GCR_GIC_STATUS register fields MIPS: BPF: Introduce BPF ASM helpers MIPS: BPF: Use BPF register names to describe the ABI MIPS: BPF: Move register definition to the BPF header MIPS: net: BPF: Replace RSIZE with SZREG MIPS: BPF: Free up some callee-saved registers MIPS: Xtalk: Update xwidget.h with known Xtalk device numbers ... commit e44ac588cd61c960226d61c379e2873a95544a51 Author: Andrew Morton Date: Sat Jun 27 12:20:34 2015 -0600 drivers/block/nvme-core.c: fix build with gcc-4.4.4 gcc-4.4.4 (and possibly other versions) fail the compile when initializers are used with anonymous unions. Work around this. drivers/block/nvme-core.c: In function 'nvme_identify_ctrl': drivers/block/nvme-core.c:1163: error: unknown field 'identify' specified in initializer drivers/block/nvme-core.c:1163: warning: missing braces around initializer drivers/block/nvme-core.c:1163: warning: (near initialization for 'c.') drivers/block/nvme-core.c:1164: error: unknown field 'identify' specified in initializer drivers/block/nvme-core.c:1164: warning: excess elements in struct initializer drivers/block/nvme-core.c:1164: warning: (near initialization for 'c') ... This patch has no effect on text size with gcc-4.8.2. Fixes: d29ec8241c10eac ("nvme: submit internal commands through the block layer") Cc: Christoph Hellwig Cc: Jens Axboe Signed-off-by: Andrew Morton Signed-off-by: Jens Axboe drivers/block/nvme-core.c | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) commit 6443af9855dad721375349af036449becc62b632 Merge: ff5053f a9b54bb Author: Jens Axboe Date: Sat Jun 27 11:47:07 2015 -0600 Merge branch 'stable/for-jens-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen into for-linus commit ff5053f66677b046cb85695b2a93d4eb07029fa7 Author: Geert Uytterhoeven Date: Fri Jun 26 13:58:32 2015 +0200 bdi: Remove "inline" keyword from exported I_BDEV() implementation With gcc 3.4.6/4.1.2/4.2.4 (not with 4.4.7/4.6.4/4.8.4): CC fs/block_dev.o include/linux/fs.h:804: warning: ‘I_BDEV’ declared inline after being called include/linux/fs.h:804: warning: previous declaration of ‘I_BDEV’ was here Commit a212b105b07d75b4 ("bdi: make inode_to_bdi() inline") added a caller of I_BDEV() in a header file, exposing the bogus "inline" on the exported implementation. Drop the "inline" keyword to fix this. Signed-off-by: Geert Uytterhoeven Signed-off-by: Jens Axboe fs/block_dev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2c4cffe85170a001c1d092681c86aa1128295221 Author: Paolo Bonzini Date: Fri Jun 26 11:44:46 2015 +0200 block: fix bogus EFAULT error from SG_IO ioctl Whenever blk_fill_sghdr_rq fails, its errno code is ignored and changed to EFAULT. This can cause very confusing errors: $ sg_persist -k /dev/sda persistent reservation in: pass through os error: Bad address The fix is trivial, just propagate the return value from blk_fill_sghdr_rq. Signed-off-by: Paolo Bonzini Acked-by: Jeff Moyer Signed-off-by: Jens Axboe block/scsi_ioctl.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 3399a3f7464a624db1b365dbce0fef0ef4636c05 Author: Keith Busch Date: Thu Jun 18 13:36:40 2015 -0600 NVMe: Fix filesystem deadlock on removal Move gendisk deletion before controller shutdown so filesystem may sync dirty pages. Before, this would deadlock trying to allocate requests on frozen queues that are about to be deleted. Signed-off-by: Keith Busch Signed-off-by: Jens Axboe drivers/block/nvme-core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit de3eff2bad56f0a29d3915105223d368f2bbc94e Author: Keith Busch Date: Thu Jun 18 13:36:39 2015 -0600 NVMe: Failed controller initialization fixes This fixes an infinite device reset loop that may occur on devices that fail initialization. If the drive fails to become ready for any reason that does not involve an admin command timeout, the probe task should assume the drive is unavailable and remove it from the topology. In the case an admin command times out during device probing, the driver's existing reset action will handle removing the drive. Signed-off-by: Keith Busch Signed-off-by: Jens Axboe drivers/block/nvme-core.c | 33 +++++++++++++++------------------ 1 file changed, 15 insertions(+), 18 deletions(-) commit ffe7704d59025ce7a37525146d44b6a79510fc8e Author: Keith Busch Date: Mon Jun 8 10:08:15 2015 -0600 NVMe: Unify controller probe and resume This unifies probe and resume so they both may be scheduled in the same way. This is necessary for error handling that may occur during device initialization since the task to cleanup the device wouldn't be able to run if it is blocked on device initialization. Signed-off-by: Keith Busch Signed-off-by: Jens Axboe drivers/block/nvme-core.c | 52 ++++++++++++++++++++++++++--------------------- 1 file changed, 29 insertions(+), 23 deletions(-) commit 17188bb403e9098a815dd850aedb6c150d2a3a6b Author: Keith Busch Date: Mon Jun 8 10:08:14 2015 -0600 NVMe: Don't use fake status on cancelled command Synchronized commands do different things for timed out commands vs. controller returned errors. Signed-off-by: Keith Busch Signed-off-by: Jens Axboe drivers/block/nvme-core.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 4af0e21caf8e676e57ea27d7cce3426e473e498c Author: Keith Busch Date: Mon Jun 8 10:08:13 2015 -0600 NVMe: Fix device cleanup on initialization failure Don't release block queue and tagging resoureces if the driver never got them in the first place. This can happen if the controller fails to become ready, if memory wasn't available to allocate a tagset or admin queue, or if the resources were released as part of error recovery. Signed-off-by: Keith Busch Signed-off-by: Jens Axboe drivers/block/nvme-core.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) commit d2c3ac7e7e39ec6d37e4114ae7444948561e59af Merge: 546fac6 901f137 Author: Linus Torvalds Date: Sat Jun 27 10:14:39 2015 -0700 Merge branch 'for-4.2' of git://linux-nfs.org/~bfields/linux Pull nfsd updates from Bruce Fields: "A relatively quiet cycle, with a mix of cleanup and smaller bugfixes" * 'for-4.2' of git://linux-nfs.org/~bfields/linux: (24 commits) sunrpc: use sg_init_one() in krb5_rc4_setup_enc/seq_key() nfsd: wrap too long lines in nfsd4_encode_read nfsd: fput rd_file from XDR encode context nfsd: take struct file setup fully into nfs4_preprocess_stateid_op nfsd: refactor nfs4_preprocess_stateid_op nfsd: clean up raparams handling nfsd: use swap() in sort_pacl_range() rpcrdma: Merge svcrdma and xprtrdma modules into one svcrdma: Add a separate "max data segs macro for svcrdma svcrdma: Replace GFP_KERNEL in a loop with GFP_NOFAIL svcrdma: Keep rpcrdma_msg fields in network byte-order svcrdma: Fix byte-swapping in svc_rdma_sendto.c nfsd: Update callback sequnce id only CB_SEQUENCE success nfsd: Reset cb_status in nfsd4_cb_prepare() at retrying svcrdma: Remove svc_rdma_xdr_decode_deferred_req() SUNRPC: Move EXPORT_SYMBOL for svc_process uapi/nfs: Add NFSv4.1 ACL definitions nfsd: Remove dead declarations nfsd: work around a gcc-5.1 warning nfsd: Checking for acl support does not require fetching any acls ... commit 546fac60739ef8d7cbf8ce0b8251a519f68b2804 Merge: ebeaa8d 39b0f1e Author: Linus Torvalds Date: Sat Jun 27 09:47:46 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 are the patches we've accumulated for GFS2 for the current upstream merge window. We have a good mixture this time. Here are some of the features: - Fix a problem with RO mounts writing to the journal. - Further improvements to quotas on GFS2. - Added support for rename2 and RENAME_EXCHANGE on GFS2. - Increase performance by making glock lru_list less of a bottleneck. - Increase performance by avoiding unnecessary buffer_head releases. - Increase performance by using average glock round trip time from all CPUs. - Fixes for some compiler warnings and minor white space issues. - Other misc bug fixes" * tag 'gfs2-merge-window' of git://git.kernel.org:/pub/scm/linux/kernel/git/gfs2/linux-gfs2: GFS2: Don't brelse rgrp buffer_heads every allocation GFS2: Don't add all glocks to the lru gfs2: Don't support fallocate on jdata files gfs2: s64 cast for negative quota value gfs2: limit quota log messages gfs2: fix quota updates on block boundaries gfs2: fix shadow warning in gfs2_rbm_find() gfs2: kerneldoc warning fixes gfs2: convert simple_str to kstr GFS2: make sure S_NOSEC flag isn't overwritten GFS2: add support for rename2 and RENAME_EXCHANGE gfs2: handle NULL rgd in set_rgrp_preferences GFS2: inode.c: indent with TABs, not spaces GFS2: mark the journal idle to fix ro mounts GFS2: Average in only non-zero round-trip times for congestion stats GFS2: Use average srttb value in congestion calculations commit ebeaa8ddb3663b5c6cfc205605c35116381550c5 Author: Linus Torvalds Date: Sat Jun 27 09:41:50 2015 -0700 Revert "jbd2: speedup jbd2_journal_dirty_metadata()" This reverts commit 2143c1965a761332ae417b22fd477b636e4f54ec. This commit seems to be the cause of the following jbd2 assertion failure: ------------[ cut here ]------------ kernel BUG at fs/jbd2/transaction.c:1325! invalid opcode: 0000 [#1] SMP Modules linked in: bnep bluetooth fuse ip6t_rpfilter ip6t_REJECT nf_reject_ipv6 nf_conntrack_ipv6 ... CPU: 7 PID: 5509 Comm: gcc Not tainted 4.1.0-10944-g2a298679b411 #1 Hardware name: /DH87RL, BIOS RLH8710H.86A.0327.2014.0924.1645 09/24/2014 task: ffff8803bf866040 ti: ffff880308528000 task.ti: ffff880308528000 RIP: jbd2_journal_dirty_metadata+0x237/0x290 Call Trace: __ext4_handle_dirty_metadata+0x43/0x1f0 ext4_handle_dirty_dirent_node+0xde/0x160 ? jbd2_journal_get_write_access+0x36/0x50 ext4_delete_entry+0x112/0x160 ? __ext4_journal_start_sb+0x52/0xb0 ext4_unlink+0xfa/0x260 vfs_unlink+0xec/0x190 do_unlinkat+0x24a/0x270 SyS_unlink+0x11/0x20 entry_SYSCALL_64_fastpath+0x12/0x6a ---[ end trace ae033ebde8d080b4 ]--- which is not easily reproducible (I've seen it just once, and then Ted was able to reproduce it once). Revert it while Ted and Jan try to figure out what is wrong. Cc: Jan Kara Acked-by: Theodore Ts'o Signed-off-by: Linus Torvalds fs/jbd2/transaction.c | 33 ++++++--------------------------- 1 file changed, 6 insertions(+), 27 deletions(-) commit 6c5a0d891543873aefc3aaf846c1e7afe0982ff9 Author: Trond Myklebust Date: Sat Jun 27 11:45:46 2015 -0400 NFSv4.2: LAYOUTSTATS is optional to implement Make it so, by checking the return value for NFS4ERR_MOTSUPP and caching the information as a server capability. Signed-off-by: Trond Myklebust fs/nfs/nfs42proc.c | 10 ++++++++-- fs/nfs/nfs4proc.c | 3 ++- fs/nfs/pnfs.c | 3 +++ include/linux/nfs_fs_sb.h | 1 + 4 files changed, 14 insertions(+), 3 deletions(-) commit da2e8127510525eb4bce0fe34aff06192e042c8f Author: Trond Myklebust Date: Sat Jun 27 11:30:57 2015 -0400 NFSv4.2: Fix up a decoding error in layoutstats According to the spec, the server is only returning the status, which we decode in the op header. Signed-off-by: Trond Myklebust fs/nfs/nfs42xdr.c | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) commit 7819717b11346b8a5420b223b46600e394049c66 Author: Takashi Iwai Date: Sat Jun 27 10:21:13 2015 +0200 ALSA: hda - Add headset support to Acer Aspire V5 Acer Aspire V5 with ALC282 codec needs the similar quirk like Dell laptops to support the headset mic. The headset mic pin is 0x19 and it's not exposed by BIOS, thus we need to fix the pincfg as well. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=96201 Cc: Signed-off-by: Takashi Iwai sound/pci/hda/patch_realtek.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit e0dd880a545c36bd56489a97bb1d337cb873a9d5 Merge: bbe179f 402dd89 Author: Linus Torvalds Date: Fri Jun 26 20:12:21 2015 -0700 Merge branch 'for-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq Pull workqueue updates from Tejun Heo: "Most of the changes are around implementing and fixing fallouts from sysfs and internal interface to limit the CPUs available to all unbound workqueues to help isolating CPUs. It needs more work as ordered workqueues can roam unrestricted but still is a significant improvement" * 'for-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq: workqueue: fix typos in comments workqueue: move flush_scheduled_work() to workqueue.h workqueue: remove the lock from wq_sysfs_prep_attrs() workqueue: remove the declaration of copy_workqueue_attrs() workqueue: ensure attrs changes are properly synchronized workqueue: separate out and refactor the locking of applying attrs workqueue: simplify wq_update_unbound_numa() workqueue: wq_pool_mutex protects the attrs-installation workqueue: fix a typo workqueue: function name in the comment differs from the real function name workqueue: fix trivial typo in Documentation/workqueue.txt workqueue: Allow modifying low level unbound workqueue cpumask workqueue: Create low-level unbound workqueues cpumask workqueue: split apply_workqueue_attrs() into 3 stages commit bbe179f88d39274630823a0dc07d2714fd19a103 Merge: 4b703b1 8a0792e Author: Linus Torvalds Date: Fri Jun 26 19:50:04 2015 -0700 Merge branch 'for-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup Pull cgroup updates from Tejun Heo: - threadgroup_lock got reorganized so that its users can pick the actual locking mechanism to use. Its only user - cgroups - is updated to use a percpu_rwsem instead of per-process rwsem. This makes things a bit lighter on hot paths and allows cgroups to perform and fail multi-task (a process) migrations atomically. Multi-task migrations are used in several places including the unified hierarchy. - Delegation rule and documentation added to unified hierarchy. This will likely be the last interface update from the cgroup core side for unified hierarchy before lifting the devel mask. - Some groundwork for the pids controller which is scheduled to be merged in the coming devel cycle. * 'for-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup: cgroup: add delegation section to unified hierarchy documentation cgroup: require write perm on common ancestor when moving processes on the default hierarchy cgroup: separate out cgroup_procs_write_permission() from __cgroup_procs_write() kernfs: make kernfs_get_inode() public MAINTAINERS: add a cgroup core co-maintainer cgroup: fix uninitialised iterator in for_each_subsys_which cgroup: replace explicit ss_mask checking with for_each_subsys_which cgroup: use bitmask to filter for_each_subsys cgroup: add seq_file forward declaration for struct cftype cgroup: simplify threadgroup locking sched, cgroup: replace signal_struct->group_rwsem with a global percpu_rwsem sched, cgroup: reorganize threadgroup locking cgroup: switch to unsigned long for bitmasks cgroup: reorganize include/linux/cgroup.h cgroup: separate out include/linux/cgroup-defs.h cgroup: fix some comment typos commit 4b703b1d4c46ca4a00109ca1a391943ec21991b3 Author: Stephen Rothwell Date: Mon May 25 21:00:24 2015 +1000 power: axp288_charger: fix for API change Caused by commit 843735b788a4 ("power: axp288_charger: axp288 charger driver") from the battery tree interacting with commit 046050f6e623 ("extcon: Update the prototype of extcon_register_notifier() with enum extcon") from the extcon tree. Signed-off-by: Stephen Rothwell Signed-off-by: Linus Torvalds drivers/power/axp288_charger.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 93f0824caec09b67fc4f927c8bddd7fabd14a043 Merge: 2a29867 5136629 Author: Linus Torvalds Date: Fri Jun 26 17:40:54 2015 -0700 Merge tag 'dma-buf-for-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/sumits/dma-buf Pull dma-buf updates from Sumit Semwal: "Minor changes for 4.2 - add ref-counting for kernel modules as exporters - minor code style fixes" * tag 'dma-buf-for-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/sumits/dma-buf: dma-buf: Minor coding style fixes dma-buf: add ref counting for module as exporter commit 2a298679b41199ae742a77ce69766385dffe816f Merge: 8c7febe 5064105 Author: Linus Torvalds Date: Fri Jun 26 15:59:26 2015 -0700 Merge tag 'usb-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb Pull USB updates from Greg KH: "Here's the big USB patchset for 4.2-rc1. As is normal these days, the majority of changes are in the gadget drivers, with a bunch of other small driver changes. All of these have been in linux-next with no reported issues" * tag 'usb-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (175 commits) usb: dwc3: Use ASCII space in Kconfig usb: chipidea: add work-around for Marvell HSIC PHY startup usb: chipidea: allow multiple instances to use default ci_default_pdata dt-bindings: Consolidate ChipIdea USB ci13xxx bindings phy: add Marvell HSIC 28nm PHY phy: Add Marvell USB 2.0 OTG 28nm PHY dt-bindings: Add Marvell PXA1928 USB and HSIC PHY bindings USB: ssb: use devm_kzalloc USB: ssb: fix error handling in ssb_hcd_create_pdev() usb: isp1760: check for null return from kzalloc cdc-acm: Add support of ATOL FPrint fiscal printers usb: chipidea: usbmisc_imx: Remove unneeded semicolon USB: usbtmc: add device quirk for Rigol DS6104 USB: serial: mos7840: Use setup_timer phy: twl4030-usb: add ABI documentation phy: twl4030-usb: remove incorrect pm_runtime_get_sync() in probe function. phy: twl4030-usb: remove pointless 'suspended' test in 'suspend' callback. phy: twl4030-usb: make runtime pm more reliable. drivers:usb:fsl: Fix compilation error for fsl ehci drv usb: renesas_usbhs: Don't disable the pipe if Control write status stage ... commit 0d44b410a01a75daff60ce4cb78313135cdb3649 Author: Markus Elfring Date: Fri Jun 26 21:21:16 2015 +0200 tc1100-wmi: Delete an unnecessary check before the function call "kfree" The kfree() 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: Darren Hart drivers/platform/x86/tc1100-wmi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8c7febe83915332276cab49e89f6580bb963fb9a Merge: 23908db 71206b9 Author: Linus Torvalds Date: Fri Jun 26 15:53:22 2015 -0700 Merge tag 'tty-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty Pull tty/serial driver updates from Greg KH: "Here's the tty and serial driver patches for 4.2-rc1. A number of individual driver updates, some code cleanups, and other minor things, full details in the shortlog. All have been in linux-next for a while with no reported issues" * tag 'tty-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (152 commits) Doc: serial-rs485.txt: update RS485 driver interface Doc: tty.txt: remove mention of the BKL MAINTAINERS: tty: add serial docs directory serial: sprd: check for NULL after calling devm_clk_get serial: 8250_pci: Correct uartclk for xr17v35x expansion chips serial: 8250_pci: Add support for 12 port Exar boards serial: 8250_uniphier: add bindings document for UniPhier UART serial: core: cleanup in uart_get_baud_rate() serial: stm32-usart: Add STM32 USART Driver tty/serial: kill off set_irq_flags usage tty: move linux/gsmmux.h to uapi doc: dt: add documentation for nxp,lpc1850-uart serial: 8250: add LPC18xx/43xx UART driver serial: 8250_uniphier: add UniPhier serial driver serial: 8250_dw: support ACPI platforms with integrated DMA engine serial: of_serial: check the return value of clk_prepare_enable() serial: of_serial: use devm_clk_get() instead of clk_get() serial: earlycon: Add support for big-endian MMIO accesses serial: sirf: use hrtimer for data rx serial: sirf: correct the fifo empty_bit ... commit 23908db413eccd77084b09c9b0a4451dfb0524c0 Merge: 8d7804a 53a20e9 Author: Linus Torvalds Date: Fri Jun 26 15:46:08 2015 -0700 Merge tag 'staging-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging Pull staging driver updates from Greg KH: "Here's the big, really big, staging tree patches for 4.2-rc1. Loads of stuff in here, almost all just coding style fixes / churn, and a few new drivers as well, one of which I just disabled from the build a few minutes ago due to way too many build warnings. Other than the one "disable this driver" patch, all of these have been in linux-next for quite a while with no reported issues" * tag 'staging-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (1163 commits) staging: wilc1000: disable driver due to build warnings Staging: rts5208: fix CHANGE_LINK_STATE value Staging: sm750fb: ddk750_swi2c.c: Insert spaces before parenthesis Staging: sm750fb: ddk750_swi2c.c: Place braces on correct lines Staging: sm750fb: ddk750_swi2c.c: Insert spaces around operators Staging: sm750fb: ddk750_swi2c.c: Replace spaces with tabs Staging: sm750fb: ddk750_swi2c.h: Shorten lines to under 80 characters Staging: sm750fb: ddk750_swi2c.h: Replace spaces with tabs Staging: sm750fb: modedb.h: Shorten lines to under 80 characters Staging: sm750fb: modedb.h: Replace spaces with tabs staging: comedi: addi_apci_3120: rename 'this_board' variables staging: comedi: addi_apci_1516: rename 'this_board' variables staging: comedi: ni_atmio: cleanup ni_getboardtype() staging: comedi: vmk80xx: sanity check context used to get the boardinfo staging: comedi: vmk80xx: rename 'boardinfo' variables staging: comedi: dt3000: rename 'this_board' variables staging: comedi: adv_pci_dio: rename 'this_board' variables staging: comedi: cb_pcidas64: rename 'thisboard' variables staging: comedi: cb_pcidas: rename 'thisboard' variables staging: comedi: me4000: rename 'thisboard' variables ... commit 8d7804a2f03dbd34940fcb426450c730adf29dae Merge: d878238 0e6c861 Author: Linus Torvalds Date: Fri Jun 26 15:07:37 2015 -0700 Merge tag 'driver-core-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core Pull driver core updates from Greg KH: "Here is the driver core / firmware changes for 4.2-rc1. A number of small changes all over the place in the driver core, and in the firmware subsystem. Nothing really major, full details in the shortlog. Some of it is a bit of churn, given that the platform driver probing changes was found to not work well, so they were reverted. All of these have been in linux-next for a while with no reported issues" * tag 'driver-core-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (31 commits) Revert "base/platform: Only insert MEM and IO resources" Revert "base/platform: Continue on insert_resource() error" Revert "of/platform: Use platform_device interface" Revert "base/platform: Remove code duplication" firmware: add missing kfree for work on async call fs: sysfs: don't pass count == 0 to bin file readers base:dd - Fix for typo in comment to function driver_deferred_probe_trigger(). base/platform: Remove code duplication of/platform: Use platform_device interface base/platform: Continue on insert_resource() error base/platform: Only insert MEM and IO resources firmware: use const for remaining firmware names firmware: fix possible use after free on name on asynchronous request firmware: check for file truncation on direct firmware loading firmware: fix __getname() missing failure check drivers: of/base: move of_init to driver_init drivers/base: cacheinfo: fix annoying typo when DT nodes are absent sysfs: disambiguate between "error code" and "failure" in comments driver-core: fix build for !CONFIG_MODULES driver-core: make __device_attach() static ... commit d87823813fe498fdd47894bd28e460a9dee8d771 Merge: e382608 3dc196e Author: Linus Torvalds Date: Fri Jun 26 14:51:15 2015 -0700 Merge tag 'char-misc-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc Pull char/misc driver updates from Greg KH: "Here's the big char/misc driver pull request for 4.2-rc1. Lots of mei, extcon, coresight, uio, mic, and other driver updates in here. Full details in the shortlog. All of these have been in linux-next for some time with no reported problems" * tag 'char-misc-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (176 commits) mei: me: wait for power gating exit confirmation mei: reset flow control on the last client disconnection MAINTAINERS: mei: add mei_cl_bus.h to maintained file list misc: sram: sort and clean up included headers misc: sram: move reserved block logic out of probe function misc: sram: add private struct device and virt_base members misc: sram: report correct SRAM pool size misc: sram: bump error message level on unclean driver unbinding misc: sram: fix device node reference leak on error misc: sram: fix enabled clock leak on error path misc: mic: Fix reported static checker warning misc: mic: Fix randconfig build error by including errno.h uio: pruss: Drop depends on ARCH_DAVINCI_DA850 from config uio: pruss: Add CONFIG_HAS_IOMEM dependence uio: pruss: Include extcon: Redefine the unique id of supported external connectors without 'enum extcon' type char:xilinx_hwicap:buffer_icap - change 1/0 to true/false for bool type variable in function buffer_icap_set_configuration(). Drivers: hv: vmbus: Allocate ring buffer memory in NUMA aware fashion parport: check exclusive access before register w1: use correct lock on error in w1_seq_show() ... commit e382608254e06c8109f40044f5e693f2e04f3899 Merge: fcbc177 b44754d Author: Linus Torvalds Date: Fri Jun 26 14:02:43 2015 -0700 Merge tag 'trace-v4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace Pull tracing updates from Steven Rostedt: "This patch series contains several clean ups and even a new trace clock "monitonic raw". Also some enhancements to make the ring buffer even faster. But the biggest and most noticeable change is the renaming of the ftrace* files, structures and variables that have to deal with trace events. Over the years I've had several developers tell me about their confusion with what ftrace is compared to events. Technically, "ftrace" is the infrastructure to do the function hooks, which include tracing and also helps with live kernel patching. But the trace events are a separate entity altogether, and the files that affect the trace events should not be named "ftrace". These include: include/trace/ftrace.h -> include/trace/trace_events.h include/linux/ftrace_event.h -> include/linux/trace_events.h Also, functions that are specific for trace events have also been renamed: ftrace_print_*() -> trace_print_*() (un)register_ftrace_event() -> (un)register_trace_event() ftrace_event_name() -> trace_event_name() ftrace_trigger_soft_disabled() -> trace_trigger_soft_disabled() ftrace_define_fields_##call() -> trace_define_fields_##call() ftrace_get_offsets_##call() -> trace_get_offsets_##call() Structures have been renamed: ftrace_event_file -> trace_event_file ftrace_event_{call,class} -> trace_event_{call,class} ftrace_event_buffer -> trace_event_buffer ftrace_subsystem_dir -> trace_subsystem_dir ftrace_event_raw_##call -> trace_event_raw_##call ftrace_event_data_offset_##call-> trace_event_data_offset_##call ftrace_event_type_funcs_##call -> trace_event_type_funcs_##call And a few various variables and flags have also been updated. This has been sitting in linux-next for some time, and I have not heard a single complaint about this rename breaking anything. Mostly because these functions, variables and structures are mostly internal to the tracing system and are seldom (if ever) used by anything external to that" * tag 'trace-v4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: (33 commits) ring_buffer: Allow to exit the ring buffer benchmark immediately ring-buffer-benchmark: Fix the wrong type ring-buffer-benchmark: Fix the wrong param in module_param ring-buffer: Add enum names for the context levels ring-buffer: Remove useless unused tracing_off_permanent() ring-buffer: Give NMIs a chance to lock the reader_lock ring-buffer: Add trace_recursive checks to ring_buffer_write() ring-buffer: Allways do the trace_recursive checks ring-buffer: Move recursive check to per_cpu descriptor ring-buffer: Add unlikelys to make fast path the default tracing: Rename ftrace_get_offsets_##call() to trace_event_get_offsets_##call() tracing: Rename ftrace_define_fields_##call() to trace_event_define_fields_##call() tracing: Rename ftrace_event_type_funcs_##call to trace_event_type_funcs_##call tracing: Rename ftrace_data_offset_##call to trace_event_data_offset_##call tracing: Rename ftrace_raw_##call event structures to trace_event_raw_##call tracing: Rename ftrace_trigger_soft_disabled() to trace_trigger_soft_disabled() tracing: Rename FTRACE_EVENT_FL_* flags to EVENT_FILE_FL_* tracing: Rename struct ftrace_subsystem_dir to trace_subsystem_dir tracing: Rename ftrace_event_name() to trace_event_name() tracing: Rename FTRACE_MAX_EVENT to TRACE_EVENT_TYPE_MAX ... commit 24bfcb100959c8641a627b5604d967243f8f240c Author: Thomas Gleixner Date: Fri Jun 26 22:08:38 2015 +0200 timer: Fix hotplug regression The recent timer wheel rework removed the get/put_cpu_var() pair in the hotplug migration code, which results in: BUG: using smp_processor_id() in preemptible [00000000] code: hib.sh/2845 ... [] timer_cpu_notify+0x53/0x12 That hunk is a leftover from an earlier iteration and went unnoticed so far. Restore the previous code which was obviously correct. Fixes: 0eeda71bc30d 'timer: Replace timer base by a cpu index' Reported-and_tested-by: Borislav Petkov Signed-off-by: Thomas Gleixner kernel/time/timer.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit fcbc1777ce8b5edf831c1eca16c1a63c1e4f39fb Merge: 099bfbf cc9e4bd Author: Linus Torvalds Date: Fri Jun 26 13:56:55 2015 -0700 Merge tag 'trace-fixes-4.1' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace Pull tracing fixes from Steven Rostedt: "This isn't my 4.2 pull request (yet). I found a few more bugs that I would have sent to fix 4.1, but since 4.1 is already out, I'm sending this before sending my 4.2 request (which is ready to go). After fixing the previous filter issue reported by Vince Weaver, I could not come up with a situation where the operand counter (cnt) could go below zero, so I added a WARN_ON_ONCE(cnt < 0). Vince was able to trigger that warn on with his fuzzer test, but didn't have a filter input that caused it. Later, Sasha Levin was able to trigger that same warning, and was able to give me the filter string that triggered it. It was simply a single operation ">". I wrapped the filtering code in a userspace program such that I could single step through the logic. With a single operator the operand counter can legitimately go below zero, and should be reported to the user as an error, but should not produce a kernel warning. The WARN_ON_ONCE(cnt < 0) should be just a "if (cnt < 0) break;" and the code following it will produce the error message for the user. While debugging this, I found that there was another bug that let the pointer to the filter string go beyond the filter string. This too was fixed. Finally, there was a typo in a stub function that only gets compiled if trace events is disabled but tracing is enabled (I'm not even sure that's possible)" * tag 'trace-fixes-4.1' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: tracing: Fix typo from "static inlin" to "static inline" tracing/filter: Do not allow infix to exceed end of string tracing/filter: Do not WARN on operand count going below zero commit 099bfbfc7fbbe22356c02f0caf709ac32e1126ea Merge: 22165fa c5fd936 Author: Linus Torvalds Date: Fri Jun 26 13:18:51 2015 -0700 Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux Pull drm updates from Dave Airlie: "This is the main drm pull request for v4.2. I've one other new driver from freescale on my radar, it's been posted and reviewed, I'd just like to get someone to give it a last look, so maybe I'll send it or maybe I'll leave it. There is no major nouveau changes in here, Ben was working on something big, and we agreed it was a bit late, there wasn't anything else he considered urgent to merge. There might be another msm pull for some bits that are waiting on arm-soc, I'll see how we time it. This touches some "of" stuff, acks are in place except for the fixes to the build in various configs,t hat I just applied. Summary: New drivers: - virtio-gpu: KMS only pieces of driver for virtio-gpu in qemu. This is just the first part of this driver, enough to run unaccelerated userspace on. As qemu merges more we'll start adding the 3D features for the virgl 3d work. - amdgpu: a new driver from AMD to driver their newer GPUs. (VI+) It contains a new cleaner userspace API, and is a clean break from radeon moving forward, that AMD are going to concentrate on. It also contains a set of register headers auto generated from AMD internal database. core: - atomic modesetting API completed, enabled by default now. - Add support for mode_id blob to atomic ioctl to complete interface. - bunch of Displayport MST fixes - lots of misc fixes. panel: - new simple panels - fix some long-standing build issues with bridge drivers radeon: - VCE1 support - add a GPU reset counter for userspace - lots of fixes. amdkfd: - H/W debugger support module - static user-mode queues - support killing all the waves when a process terminates - use standard DECLARE_BITMAP i915: - Add Broxton support - S3, rotation support for Skylake - RPS booting tuning - CPT modeset sequence fixes - ns2501 dither support - enable cmd parser on haswell - cdclk handling fixes - gen8 dynamic pte allocation - lots of atomic conversion work exynos: - Add atomic modesetting support - Add iommu support - Consolidate drm driver initialization - and MIC, DECON and MIPI-DSI support for exynos5433 omapdrm: - atomic modesetting support (fixes lots of things in rewrite) tegra: - DP aux transaction fixes - iommu support fix msm: - adreno a306 support - various dsi bits - various 64-bit fixes - NV12MT support rcar-du: - atomic and misc fixes sti: - fix HDMI timing complaince tilcdc: - use drm component API to access tda998x driver - fix module unloading qxl: - stability fixes" * 'drm-next' of git://people.freedesktop.org/~airlied/linux: (872 commits) drm/nouveau: Pause between setting gpu to D3hot and cutting the power drm/dp/mst: close deadlock in connector destruction. drm: Always enable atomic API drm/vgem: Set unique to "vgem" of: fix a build error to of_graph_get_endpoint_by_regs function drm/dp/mst: take lock around looking up the branch device on hpd irq drm/dp/mst: make sure mst_primary mstb is valid in work function of: add EXPORT_SYMBOL for of_graph_get_endpoint_by_regs ARM: dts: rename the clock of MIPI DSI 'pll_clk' to 'sclk_mipi' drm/atomic: Don't set crtc_state->enable manually drm/exynos: dsi: do not set TE GPIO direction by input drm/exynos: dsi: add support for MIC driver as a bridge drm/exynos: dsi: add support for Exynos5433 drm/exynos: dsi: make use of array for clock access drm/exynos: dsi: make use of driver data for static values drm/exynos: dsi: add macros for register access drm/exynos: dsi: rename pll_clk to sclk_clk drm/exynos: mic: add MIC driver of: add helper for getting endpoint node of specific identifiers drm/exynos: add Exynos5433 decon driver ... commit 56a94f13919c0db5958611b388e1581b4852f3c9 Author: Damian Eppel Date: Fri Jun 26 15:23:04 2015 +0200 clocksource: exynos_mct: Avoid blocking calls in the cpu hotplug notifier Whilst testing cpu hotplug events on kernel configured with DEBUG_PREEMPT and DEBUG_ATOMIC_SLEEP we get following BUG message, caused by calling request_irq() and free_irq() in the context of hotplug notification (which is in this case atomic context). [ 40.785859] CPU1: Software reset [ 40.786660] BUG: sleeping function called from invalid context at mm/slub.c:1241 [ 40.786668] in_atomic(): 1, irqs_disabled(): 128, pid: 0, name: swapper/1 [ 40.786678] Preemption disabled at:[< (null)>] (null) [ 40.786681] [ 40.786692] CPU: 1 PID: 0 Comm: swapper/1 Not tainted 3.19.0-rc4-00024-g7dca860 #36 [ 40.786698] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree) [ 40.786728] [] (unwind_backtrace) from [] (show_stack+0x10/0x14) [ 40.786747] [] (show_stack) from [] (dump_stack+0x70/0xbc) [ 40.786767] [] (dump_stack) from [] (kmem_cache_alloc+0xd8/0x170) [ 40.786785] [] (kmem_cache_alloc) from [] (request_threaded_irq+0x64/0x128) [ 40.786804] [] (request_threaded_irq) from [] (exynos4_local_timer_setup+0xc0/0x13c) [ 40.786820] [] (exynos4_local_timer_setup) from [] (exynos4_mct_cpu_notify+0x30/0xa8) [ 40.786838] [] (exynos4_mct_cpu_notify) from [] (notifier_call_chain+0x44/0x84) [ 40.786857] [] (notifier_call_chain) from [] (__cpu_notify+0x28/0x44) [ 40.786873] [] (__cpu_notify) from [] (secondary_start_kernel+0xec/0x150) [ 40.786886] [] (secondary_start_kernel) from [<40008764>] (0x40008764) Interrupts cannot be requested/freed in the CPU_STARTING/CPU_DYING notifications which run on the hotplugged cpu with interrupts and preemption disabled. To avoid the issue, request the interrupts for all possible cpus in the boot code. The interrupts are marked NO_AUTOENABLE to avoid a racy request_irq/disable_irq() sequence. The flag prevents the request_irq() code from enabling the interrupt immediately. The interrupt is then enabled in the CPU_STARTING notifier of the hotplugged cpu and again disabled with disable_irq_nosync() in the CPU_DYING notifier. [ tglx: Massaged changelog to match the patch ] Fixes: 7114cd749a12 ("clocksource: exynos_mct: use (request/free)_irq calls for local timer registration") Reported-by: Krzysztof Kozlowski Reviewed-by: Krzysztof Kozlowski Tested-by: Krzysztof Kozlowski Tested-by: Marcin Jabrzyk Signed-off-by: Damian Eppel Cc: m.szyprowski@samsung.com Cc: kyungmin.park@samsung.com Cc: daniel.lezcano@linaro.org Cc: kgene@kernel.org Cc: linux-arm-kernel@lists.infradead.org Link: http://lkml.kernel.org/r/1435324984-7328-1-git-send-email-d.eppel@samsung.com Signed-off-by: Thomas Gleixner Cc: drivers/clocksource/exynos_mct.c | 43 ++++++++++++++++++++++++++++------------ 1 file changed, 30 insertions(+), 13 deletions(-) commit d620876990f02788d5a663075df007ffb91bdfad Author: Trond Myklebust Date: Fri Jun 26 15:37:58 2015 -0400 pNFS/flexfiles: Fix the reset of struct pgio_header when resending hdr->good_bytes needs to be set to the length of the request, not zero. Cc: stable@vger.kernel.org # 4.0+ Signed-off-by: Trond Myklebust fs/nfs/flexfilelayout/flexfilelayout.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 93b6eb77b49064ed1de5726560a0849f3ebccc2c Author: Thomas Gleixner Date: Tue Jun 23 15:36:36 2015 +0200 ARM/LPC32xx: Use irq not hwirq for __irq_set_handler_locked() irq_data->hwirq is not guaranteed to be the same as irq_data->irq. It might be in that particular case, but it's wrong nevertheless. Signed-off-by: Thomas Gleixner Cc: Roland Stigge arch/arm/mach-lpc32xx/irq.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 22165fa79814e71e7a5974b3c37a5028ed16c8f9 Merge: a2f54be b5451e4 Author: Linus Torvalds Date: Fri Jun 26 12:35:01 2015 -0700 Merge tag 'dm-4.2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm Pull device mapper fixes from Mike Snitzer: "Apologies for not pressing this request-based DM partial completion issue further, it was an oversight on my part. We'll have to get it fixed up properly and revisit for a future release. - Revert block and DM core changes the removed request-based DM's ability to handle partial request completions -- otherwise with the current SCSI LLDs these changes could lead to silent data corruption. - Fix two DM version bumps that were missing from the initial 4.2 DM pull request (enabled userspace lvm2 to know certain changes have been made)" * tag 'dm-4.2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm: dm cache policy smq: fix "default" version to be 1.4.0 dm: bump the ioctl version to 4.32.0 Revert "block, dm: don't copy bios for request clones" Revert "dm: do not allocate any mempools for blk-mq request-based DM" commit bbc9d21fc0071c245c19077155ea371092ff0db8 Author: Thomas Gleixner Date: Tue Jun 23 15:01:30 2015 +0200 genirq: Implement irq_set_handler_locked()/irq_set_chip_handler_name_locked() The main use case for the exisiting __irq_set_*_locked() inlines is to replace the handler [,chip and name] of an interrupt from a region which has the irq descriptor lock held, e.g. from the irq_set_type() callback. The first argument is the irq number, so the functions need so perform a pointless lookup of the interrupt descriptor for those cases which have the irq_data pointer handy. Provide new functions which take an irq_data pointer instead of the interrupt number, so the lookup of the interrupt descriptor can be avoided. Signed-off-by: Thomas Gleixner Cc: Jiang Liu Conflicts: include/linux/irqdesc.h include/linux/irqdesc.h | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) commit 304adf8a8fff972f633bf52b3d160682d3f3d5d2 Author: Jiang Liu Date: Thu Jun 4 12:13:26 2015 +0800 genirq: Introduce helper irq_desc_get_irq() Introduce helper irq_desc_get_irq() to retrieve the irq number from the irq descriptor. Signed-off-by: Jiang Liu Cc: Konrad Rzeszutek Wilk Cc: Tony Luck Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Marc Zyngier Link: http://lkml.kernel.org/r/1433391238-19471-17-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner include/linux/irqdesc.h | 5 +++++ 1 file changed, 5 insertions(+) commit a2f54be94f4cbce269bca6188d3fb4310c346fd1 Merge: e8a0b37d 44a17ef8 Author: Linus Torvalds Date: Fri Jun 26 12:27:48 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: - move -O0 jitterentropy code into its own file instead of using gcc pragma magic. - kill testmgr warning for gcm-aes-aesni. - fix build failure in old rsa. Other minor fixes: - ignore asn1 files generated by new rsa. - remove unnecessary kzfree NULL checks in jitterentropy. - typo fix in akcipher" * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: crypto: rsa - add .gitignore for crypto/*.-asn1.[ch] files crypto: asymmetric_keys/rsa - Use non-conflicting variable name crypto: testmgr - don't print info about missing test for gcm-aes-aesni crypto: jitterentropy - Delete unnecessary checks before the function call "kzfree" crypto: akcipher - fix spelling cihper -> cipher crypto: jitterentropy - avoid compiler warnings commit e8a0b37d28ace440776c0a4fe3c65f5832a9a7ee Merge: abea962 002af19 Author: Linus Torvalds Date: Fri Jun 26 12:20:00 2015 -0700 Merge branch 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm Pull ARM updates from Russell King: "Bigger items included in this update are: - A series of updates from Arnd for ARM randconfig build failures - Updates from Dmitry for StrongARM SA-1100 to move IRQ handling to drivers/irqchip/ - Move ARMs SP804 timer to drivers/clocksource/ - Perf updates from Mark Rutland in preparation to move the ARM perf code into drivers/ so it can be shared with ARM64. - MCPM updates from Nicolas - Add support for taking platform serial number from DT - Re-implement Keystone2 physical address space switch to conform to architecture requirements - Clean up ARMv7 LPAE code, which goes in hand with the Keystone2 changes. - L2C cleanups to avoid unlocking caches if we're prevented by the secure support to unlock. - Avoid cleaning a potentially dirty cache containing stale data on CPU initialisation - Add ARM-only entry point for secondary startup (for machines that can only call into a Thumb kernel in ARM mode). Same thing is also done for the resume entry point. - Provide arch_irqs_disabled via asm-generic - Enlarge ARMv7M vector table - Always use BFD linker for VDSO, as gold doesn't accept some of the options we need. - Fix an incorrect BSYM (for Thumb symbols) usage, and convert all BSYM compiler macros to a "badr" (for branch address). - Shut up compiler warnings provoked by our cmpxchg() implementation. - Ensure bad xchg sizes fail to link" * 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm: (75 commits) ARM: Fix build if CLKDEV_LOOKUP is not configured ARM: fix new BSYM() usage introduced via for-arm-soc branch ARM: 8383/1: nommu: avoid deprecated source register on mov ARM: 8391/1: l2c: add options to overwrite prefetching behavior ARM: 8390/1: irqflags: Get arch_irqs_disabled from asm-generic ARM: 8387/1: arm/mm/dma-mapping.c: Add arm_coherent_dma_mmap ARM: 8388/1: tcm: Don't crash when TCM banks are protected by TrustZone ARM: 8384/1: VDSO: force use of BFD linker ARM: 8385/1: VDSO: group link options ARM: cmpxchg: avoid warnings from macro-ized cmpxchg() implementations ARM: remove __bad_xchg definition ARM: 8369/1: ARMv7M: define size of vector table for Vybrid ARM: 8382/1: clocksource: make ARM_TIMER_SP804 depend on GENERIC_SCHED_CLOCK ARM: 8366/1: move Dual-Timer SP804 driver to drivers/clocksource ARM: 8365/1: introduce sp804_timer_disable and remove arm_timer.h inclusion ARM: 8364/1: fix BE32 module loading ARM: 8360/1: add secondary_startup_arm prototype in header file ARM: 8359/1: correct secondary_startup_arm mode ARM: proc-v7: sanitise and document registers around errata ARM: proc-v7: clean up MIDR access ... commit abea9629486cf973369a641e190e739b3010bb03 Merge: f5dcb68 dec36f6 Author: Linus Torvalds Date: Fri Jun 26 12:11:23 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 Kevin Hilman: "We keep collecting defconfig updates in a separate branch mostly to encourage people to handle them separately and avoid conflicts between different topics. Most of these are enablement of new SoCs, boards or drivers that have come in, or minor config refreshes due to reorderings in Kconfig files, etc. I.e. mostly minor churn of various kinds" * tag 'armsoc-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (55 commits) ARM: multi_v7_defconfig: remove duplicate CONFIG_COMMON_CLK_QCOM=y ARM: multi_v7_defconfig: Enable display on Trats2 board ARM64: add GPIO keys to the defconfig ARM: keystone: defconfig: enable netcp driver by default ARM: exynos_defconfig: Enable CONFIG_SENSORS_INA2XX for Odroid-XU3 ARM: exynos_defconfig: Enable CONFIG_SENSORS_PWM_FAN for Odroid-XU3 ARM: omap2plus_defconfig: Enable TOUCHSCREEN_PIXCIR ARM: omap2plus_defconfig: Add dm816x USB PHY as a loadable module ARM: omap2plus_defconifg: Enable DM9000 in omap2plus_defconfig ARM: lpc18xx: remove DEBUG_LL_UART_8250 from defconfig ARM: multi_v7_defconfig: Make media support modular ARM: multi_v7_defconfig: Make sound support modular ARM: multi_v7_defconfig: Enable shmobile r8a7778/bockw platform ARM: exynos_defconfig: savedefconfig ARM: exynos_defconfig: Enable display on Trats2 board ARM: multi_v7_defconfig: Enable OHCI on exynos SoCs ARM: multi_v7_defconfig: Enable TMU for exynos SoCs ARM: multi_v7_defconfig: Enable PMIC and MUIC drivers for exynos ARM: multi_v7_defconfig: Enable CPU idle for exynos SoCs ARM: multi_v7_defconfig: Enable Cypress APA I2C Trackpad support ... commit 53a20e9e378ecd52f0afa4b60f8f8c81b6f97c27 Author: Greg Kroah-Hartman Date: Fri Jun 26 12:04:47 2015 -0700 staging: wilc1000: disable driver due to build warnings The wilc1000 has just too many build warnings to be able to enable it for the 4.2 release. Given that there have not been any patches submitted to properly fix these obvious errors, I'm going to disable it for now. I will enable it back when the build warning fixes are submitted, or, if that never happens, I will remove it from the tree. Cc: Johnny Kim Cc: Rachel Kim Cc: Dean Lee Cc: Chris Park Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/Kconfig | 1 + 1 file changed, 1 insertion(+) commit f5dcb68086ba2e033b2af32b0da0c7a7c7872a09 Merge: 3d9f96d 4af34b5 Author: Linus Torvalds Date: Fri Jun 26 11:54:29 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 Kevin Hilman: "Some of these are for drivers/soc, where we're now putting SoC-specific drivers these days. Some are for other driver subsystems where we have received acks from the appropriate maintainers. Some highlights: - simple-mfd: document DT bindings and misc updates - migrate mach-berlin to simple-mfd for clock, pinctrl and reset - memory: support for Tegra132 SoC - memory: introduce tegra EMC driver for scaling memory frequency - misc. updates for ARM CCI and CCN busses" * tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (48 commits) drivers: soc: sunxi: Introduce SoC driver to map SRAMs arm-cci: Add aliases for PMU events arm-cci: Add CCI-500 PMU support arm-cci: Sanitise CCI400 PMU driver specific code arm-cci: Abstract handling for CCI events arm-cci: Abstract out the PMU counter details arm-cci: Cleanup PMU driver code arm-cci: Do not enable CCI-400 PMU by default firmware: qcom: scm: Add HDCP Support ARM: berlin: add an ADC node for the BG2Q ARM: berlin: remove useless chip and system ctrl compatibles clk: berlin: drop direct of_iomap of nodes reg property ARM: berlin: move BG2Q clock node ARM: berlin: move BG2CD clock node ARM: berlin: move BG2 clock node clk: berlin: prepare simple-mfd conversion pinctrl: berlin: drop SoC stub provided regmap ARM: berlin: move pinctrl to simple-mfd nodes pinctrl: berlin: prepare to use regmap provided by syscon reset: berlin: drop arch_initcall initialization ... commit c0f5f5059f6c9c9efb6ca688f4d6a800c11f6b58 Author: Trond Myklebust Date: Fri Jun 26 14:51:32 2015 -0400 pNFS/flexfiles: Turn off layoutcommit for servers that don't need it This patch ensures that we record the value of 'ffl_flags' from the layout, and then checks for the presence of the FF_FLAGS_NO_LAYOUTCOMMIT flag before deciding whether or not to call pnfs_set_layoutcommit(). The effect is that servers now can decide whether or not they want the client to call layoutcommit before returning a writeable layout. Signed-off-by: Trond Myklebust fs/nfs/flexfilelayout/flexfilelayout.c | 16 +++++++++++++++- fs/nfs/flexfilelayout/flexfilelayout.h | 3 +++ 2 files changed, 18 insertions(+), 1 deletion(-) commit 3d9f96d850e4bbfae24dc9aee03033dd77c81596 Merge: 4aa705b 58c1796 Author: Linus Torvalds Date: Fri Jun 26 11:43:59 2015 -0700 Merge tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Pull ARM SoC DT updates from Kevin Hilman: "As usual, quite a few device-tree updates in ARM land. There was one minor churn in DTs due to relicensing under a dual-license, and lots of little additions of new peripherals, features etc, but nothing really exciting to call to your attention. Some higlights, focsuing on support for new SoCs and boards: - AT91: new boards: Overkiz, Acme Systems' Arietta G25 - tegra: HDA support - bcm: new platforms: Buffalo WXR-1900DHP, SmartRG SR400ac, ASUS RT-AC87U - mvebu: new platforms: Compulab CM-A510, Armada 385-based Linksys boards, DLink DNS-327L - OMAP: new platforms: Baltos IR5221, LogicPD Torpedo, Toby-Churchill SL50 - ARM: added support for Juno r1 board - sunxi: A33 SoC support; new boards: A23 EVB, SinA33, GA10H-A33, Mele A1000G - imx: i.MX7D SoC support; new boards: Armadeus Systems APF6, Gateworks GW5510, and aristainetos2 boards - hisilicon: hi6220 SoC support; new boards: 96boards hikey" * tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (462 commits) ARM: hisi: revert changes from hisi/hip04-dt branch ARM: nomadik: set proper compatible for accelerometer ARM64: juno: add GPIO keys ARM: at91/dt: sama5d4: fix dma conf for aes, sha and tdes nodes ARM: dts: Introduce STM32F429 MCU ARM: socfpga: dts: enable ethernet for Arria10 devkit ARM: dts: k2l: fix the netcp range size ARM: dts: k2e: fix the netcp range size ARM: dts: k2hk: fix the netcp range size ARM: dts: k2l-evm: Add device bindings for netcp driver ARM: dts: k2e-evm: Add device bindings for netcp driver ARM: dts: k2hk-evm: Add device bindings for netcp driver ARM: BCM5301X: Add DT for Asus RT-AC87U ARM: BCM5301X: add IRQ numbers for PCIe controller ARM: BCM5301X: add NAND flash chip description arm64: dts: Add dts files for Hisilicon Hi6220 SoC clk: hi6220: Document devicetree bindings for hi6220 clock arm64: hi6220: Document devicetree bindings for Hisilicon hi6220 SoC ARM: at91/dt: sama5d4ek: mci0 uses slot 0 ARM: at91/dt: kizbox: fix mismatch LED PWM device ... commit 4aa705b18bf17c4ff33ff7bbcd3f0c596443fa81 Merge: c11d716 2879e43 Author: Linus Torvalds Date: Fri Jun 26 11:34:35 2015 -0700 Merge tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Pull ARM SoC platform support updates from Kevin Hilman: "Our SoC branch usually contains expanded support for new SoCs and other core platform code. Some highlights from this round: - sunxi: SMP support for A23 SoC - socpga: big-endian support - pxa: conversion to common clock framework - bcm: SMP support for BCM63138 - imx: support new I.MX7D SoC - zte: basic support for ZX296702 SoC" * tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (134 commits) ARM: zx: Add basic defconfig support for ZX296702 ARM: dts: zx: add an initial zx296702 dts and doc clk: zx: add clock support to zx296702 dt-bindings: Add #defines for ZTE ZX296702 clocks ARM: socfpga: fix build error due to secondary_startup MAINTAINERS: ARM64: EXYNOS: Extend entry for ARM64 DTS ARM: ep93xx: simone: support for SPI-based MMC/SD cards MAINTAINERS: update Shawn's email to use kernel.org one ARM: socfpga: support suspend to ram ARM: socfpga: add CPU_METHOD_OF_DECLARE for Arria 10 ARM: socfpga: use CPU_METHOD_OF_DECLARE for socfpga_cyclone5 ARM: EXYNOS: register power domain driver from core_initcall ARM: EXYNOS: use PS_HOLD based poweroff for all supported SoCs ARM: SAMSUNG: Constify platform_device_id ARM: EXYNOS: Constify irq_domain_ops ARM: EXYNOS: add coupled cpuidle support for Exynos3250 ARM: EXYNOS: add exynos_get_boot_addr() helper ARM: EXYNOS: add exynos_set_boot_addr() helper ARM: EXYNOS: make exynos_core_restart() less verbose ARM: EXYNOS: fix exynos_boot_secondary() return value on timeout ... commit c11d716218910c3aa2bac1bb641e6086ad649555 Merge: 47a4694 e75ea45 Author: Linus Torvalds Date: Fri Jun 26 11:08:27 2015 -0700 Merge tag 'armsoc-cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Pull ARM SoC cleanups from Kevin Hilman: "A relatively small setup of cleanups this time around, and similar to last time the bulk of it is removal of legacy board support: - OMAP: removal of legacy (non-DT) booting for several platforms - i.MX: remove some legacy board files" * tag 'armsoc-cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (36 commits) ARM: fix EFM32 build breakage caused by cpu_resume_arm ARM: 8389/1: Add cpu_resume_arm() for firmwares that resume in ARM state ARM: v7 setup function should invalidate L1 cache mach-omap2: Remove use of deprecated marco, PTR_RET in devices.c ARM: OMAP2+: Remove calls to deprecacted marco,PTR_RET in the files,fb.c and pmu.c ARM: OMAP2+: Constify irq_domain_ops ARM: OMAP2+: use symbolic defines for console loglevels instead of numbers ARM: at91: remove useless Makefile.boot ARM: at91: remove at91rm9200_sdramc.h ARM: at91: remove mach/at91_ramc.h and mach/at91rm9200_mc.h ARM: at91/pm: use the atmel-mc syscon defines pcmcia: at91_cf: Use syscon to configure the MC/smc ARM: at91: declare the at91rm9200 memory controller as a syscon mfd: syscon: Add Atmel MC (Memory Controller) registers definition ARM: at91: drop sam9_smc.c ata: at91: use syscon to configure the smc ARM: ux500: delete static resource defines ARM: ux500: rename ux500_map_io ARM: ux500: look up PRCMU resource from DT ARM: ux500: kill off L2CC static map ... commit 122d328d303afaa06ad530ca0b2e5be3cd50a1a5 Merge: 18a6008 9bbd9bb Author: Trond Myklebust Date: Fri Jun 26 14:01:59 2015 -0400 Merge branch 'layoutstats' * layoutstats: pnfs/flexfiles: protect ktime manipulation with mirror lock nfs: provide pnfs_report_layoutstat when NFS42 is disabled pnfs/flexfiles: report layoutstat regularly nfs42: serialize LAYOUTSTATS calls of the same file pnfs/flexfiles: encode LAYOUTSTATS flexfiles specific data pnfs/flexfiles: add ff_layout_prepare_layoutstats pNFS/flexfiles: track when layout is first used pNFS/flexfiles: add layoutstats tracking pNFS/flexfiles: Remove unused struct members user_name, group_name pnfs: add pnfs_report_layoutstat helper function pNFS: fill in nfs42_layoutstat_ops NFSv.2/pnfs Add a LAYOUTSTATS rpc function commit 9bbd9bb40cfae5ff35710e88866fcadb0e8f91ed Author: Peng Tao Date: Fri Jun 26 09:45:49 2015 +0800 pnfs/flexfiles: protect ktime manipulation with mirror lock It looks as if xchg() and cmpxchg() are not available for 64-bit integers on sparc32: > New breakage seen in linux-next today: > > ERROR: "__xchg_called_with_bad_pointer" [fs/nfs/flexfilelayout/nfs_layout_flexfiles.ko] undefined! > ERROR: "__cmpxchg_called_with_bad_pointer" [fs/nfs/flexfilelayout/nfs_layout_flexfiles.ko] undefined! > make[2]: *** [__modpost] Error 1 > make[1]: *** [modules] Error 2 Given that mirror ktime manipulation is already under mirror->lock, let's make use of the fact. Reported-by: Paul Gortmaker Signed-off-by: Peng Tao Signed-off-by: Trond Myklebust fs/nfs/flexfilelayout/flexfilelayout.c | 31 ++++++++++++------------------- 1 file changed, 12 insertions(+), 19 deletions(-) commit 865a7ecb2131a3ba26cc1d49daf18275375109f0 Author: Peng Tao Date: Thu Jun 25 18:19:32 2015 +0800 nfs: provide pnfs_report_layoutstat when NFS42 is disabled kbuild test robot reported: fs/built-in.o: In function `pnfs_report_layoutstat': >> (.text+0x151a1c): undefined reference to `nfs42_proc_layoutstats_generic' Reported-by: kbuild test robot Signed-off-by: Peng Tao Signed-off-by: Trond Myklebust fs/nfs/pnfs.c | 2 ++ fs/nfs/pnfs.h | 12 ++++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) commit 7c258670ce655659a4c8d1013676c55e74d09ee7 Author: Tedd Ho-Jeong An Date: Thu Jun 25 23:27:55 2015 -0700 Bluetooth: hidp: Initialize list header of hidp session user When new hidp session is created, list header in l2cap_user is not initialized and this causes list_empty() to fail in l2cap_register_user() even if l2cap_user list is empty. Signed-off-by: Tedd Ho-Jeong An Tested-by: Jörg Otte Signed-off-by: Marcel Holtmann net/bluetooth/hidp/core.c | 1 + 1 file changed, 1 insertion(+) commit 47a469421d792dcb91a1e73319d26134241953d2 Merge: c13c810 51229b4 Author: Linus Torvalds Date: Fri Jun 26 09:52:05 2015 -0700 Merge branch 'akpm' (patches from Andrew) Merge second patchbomb from Andrew Morton: - most of the rest of MM - lots of misc things - procfs updates - printk feature work - updates to get_maintainer, MAINTAINERS, checkpatch - lib/ updates * emailed patches from Andrew Morton : (96 commits) exit,stats: /* obey this comment */ coredump: add __printf attribute to cn_*printf functions coredump: use from_kuid/kgid when formatting corename fs/reiserfs: remove unneeded cast NILFS2: support NFSv2 export fs/befs/btree.c: remove unneeded initializations fs/minix: remove unneeded cast init/do_mounts.c: add create_dev() failure log kasan: remove duplicate definition of the macro KASAN_FREE_PAGE fs/efs: femove unneeded cast checkpatch: emit "NOTE: " message only once after multiple files checkpatch: emit an error when there's a diff in a changelog checkpatch: validate MODULE_LICENSE content checkpatch: add multi-line handling for PREFER_ETHER_ADDR_COPY checkpatch: suggest using eth_zero_addr() and eth_broadcast_addr() checkpatch: fix processing of MEMSET issues checkpatch: suggest using ether_addr_equal*() checkpatch: avoid NOT_UNIFIED_DIFF errors on cover-letter.patch files checkpatch: remove local from codespell path checkpatch: add --showfile to allow input via pipe to show filenames ... commit 2341c0234731f5a6ea0b403f3dc14d1841b8e247 Author: Maninder Singh Date: Thu Jun 25 10:19:50 2015 +0530 arm64/hw_breakpoint.c: remove unnecessary header Header is not needed for arm64/hw_breakpoint.c, Removing the same. Signed-off-by: Maninder Singh Reviewed-by: Vaneet Narang Signed-off-by: Catalin Marinas arch/arm64/kernel/hw_breakpoint.c | 1 - 1 file changed, 1 deletion(-) commit 61031952f4c89dba1065f7a5b9419badb112554c Author: Ross Zwisler Date: Thu Jun 25 03:08:39 2015 -0400 arch, x86: pmem api for ensuring durability of persistent memory updates Based on an original patch by Ross Zwisler [1]. Writes to persistent memory have the potential to be posted to cpu cache, cpu write buffers, and platform write buffers (memory controller) before being committed to persistent media. Provide apis, memcpy_to_pmem(), wmb_pmem(), and memremap_pmem(), to write data to pmem and assert that it is durable in PMEM (a persistent linear address range). A '__pmem' attribute is added so sparse can track proper usage of pointers to pmem. This continues the status quo of pmem being x86 only for 4.2, but reworks to ioremap, and wider implementation of memremap() will enable other archs in 4.3. [1]: https://lists.01.org/pipermail/linux-nvdimm/2015-May/000932.html Cc: Thomas Gleixner Cc: Ingo Molnar Cc: "H. Peter Anvin" Signed-off-by: Ross Zwisler [djbw: various reworks] Signed-off-by: Dan Williams arch/x86/Kconfig | 1 + arch/x86/include/asm/cacheflush.h | 72 ++++++++++++++++++ arch/x86/include/asm/io.h | 6 ++ drivers/nvdimm/pmem.c | 33 ++++---- include/linux/compiler.h | 2 + include/linux/pmem.h | 153 ++++++++++++++++++++++++++++++++++++++ lib/Kconfig | 3 + 7 files changed, 257 insertions(+), 13 deletions(-) commit 74ae66c3b14ffa94c8d2dea201cdf8e6203d13d5 Author: Toshi Kani Date: Fri Jun 19 12:18:34 2015 -0600 libnvdimm: Add sysfs numa_node to NVDIMM devices Add support of sysfs 'numa_node' to I/O-related NVDIMM devices under /sys/bus/nd/devices, regionN, namespaceN.0, and bttN.x. An example of numa_node values on a 2-socket system with a single NVDIMM range on each socket is shown below. /sys/bus/nd/devices |-- btt0.0/numa_node:0 |-- btt1.0/numa_node:1 |-- btt1.1/numa_node:1 |-- namespace0.0/numa_node:0 |-- namespace1.0/numa_node:1 |-- region0/numa_node:0 |-- region1/numa_node:1 These numa_node files are then linked under the block class of their device names. /sys/class/block/pmem0/device/numa_node:0 /sys/class/block/pmem1s/device/numa_node:1 This enables numactl(8) to accept 'block:' and 'file:' paths of pmem and btt devices as shown in the examples below. numactl --preferred block:pmem0 --show numactl --preferred file:/dev/pmem1s --show Signed-off-by: Toshi Kani Signed-off-by: Dan Williams drivers/acpi/nfit.c | 1 + drivers/nvdimm/btt_devs.c | 1 + drivers/nvdimm/bus.c | 30 ++++++++++++++++++++++++++++++ drivers/nvdimm/namespace_devs.c | 1 + include/linux/libnvdimm.h | 1 + 5 files changed, 34 insertions(+) commit 41d7a6d637e1440f5410cb43c25a3c41255540c5 Author: Toshi Kani Date: Fri Jun 19 12:18:33 2015 -0600 libnvdimm: Set numa_node to NVDIMM devices ACPI NFIT table has System Physical Address Range Structure entries that describe a proximity ID of each range when ACPI_NFIT_PROXIMITY_VALID is set in the flags. Change acpi_nfit_register_region() to map a proximity ID to its node ID, and set it to a new numa_node field of nd_region_desc, which is then conveyed to the nd_region device. The device core arranges for btt and namespace devices to inherit their node from their parent region. Signed-off-by: Toshi Kani [djbw: move set_dev_node() from region.c to bus.c] Signed-off-by: Dan Williams arch/x86/kernel/pmem.c | 1 + drivers/acpi/nfit.c | 6 ++++++ drivers/nvdimm/bus.c | 6 ++++++ drivers/nvdimm/nd.h | 2 +- drivers/nvdimm/region_devs.c | 1 + include/linux/libnvdimm.h | 1 + 6 files changed, 16 insertions(+), 1 deletion(-) commit 99759869faf15471cfce251bc138848d8af7d162 Author: Toshi Kani Date: Fri Jun 19 17:14:15 2015 -0600 acpi: Add acpi_map_pxm_to_online_node() The kernel initializes CPU & memory's NUMA topology from ACPI SRAT table. Some other ACPI tables, such as NFIT and DMAR, also contain proximity IDs for their device's NUMA topology. This information can be used to improve performance of these devices. This patch introduces acpi_map_pxm_to_online_node(), which is similar to acpi_map_pxm_to_node(), but always returns an online node. When the mapped node from a given proximity ID is offline, it looks up the node distance table and returns the nearest online node. ACPI device drivers, which are called after the NUMA initialization has completed in the kernel, can call this interface to obtain their device NUMA topology from ACPI tables. Such drivers do not have to deal with offline nodes. A node may be offline when a device proximity ID is unique, SRAT memory entry does not exist, or NUMA is disabled, ex. "numa=off" on x86. This patch also moves the pxm range check from acpi_get_node() to acpi_map_pxm_to_node(). Signed-off-by: Toshi Kani Acked-by: Rafael J. Wysocki > Signed-off-by: Dan Williams drivers/acpi/numa.c | 50 +++++++++++++++++++++++++++++++++++++++++++++++--- include/linux/acpi.h | 5 +++++ 2 files changed, 52 insertions(+), 3 deletions(-) commit 581388209405902b56d055f644b4dd124a206112 Author: Dan Williams Date: Tue Jun 23 20:08:34 2015 -0400 libnvdimm, nfit: handle unarmed dimms, mark namespaces read-only Upon detection of an unarmed dimm in a region, arrange for descendant BTT, PMEM, or BLK instances to be read-only. A dimm is primarily marked "unarmed" via flags passed by platform firmware (NFIT). The flags in the NFIT memory device sub-structure indicate the state of the data on the nvdimm relative to its energy source or last "flush to persistence". For the most part there is nothing the driver can do but advertise the state of these flags in sysfs and emit a message if firmware indicates that the contents of the device may be corrupted. However, for the case of ACPI_NFIT_MEM_ARMED, the driver can arrange for the block devices incorporating that nvdimm to be marked read-only. This is a safe default as the data is still available and new writes are held off until the administrator either forces read-write mode, or the energy source becomes armed. A 'read_only' attribute is added to REGION devices to allow for overriding the default read-only policy of all descendant block devices. Signed-off-by: Dan Williams drivers/acpi/nfit.c | 31 +++++++++++++++++++++++++++++++ drivers/acpi/nfit.h | 3 +++ drivers/nvdimm/blk.c | 2 ++ drivers/nvdimm/btt.c | 10 ++++++++-- drivers/nvdimm/bus.c | 18 ++++++++++++++++++ drivers/nvdimm/nd.h | 3 ++- drivers/nvdimm/pmem.c | 2 ++ drivers/nvdimm/region_devs.c | 29 +++++++++++++++++++++++++++++ include/linux/libnvdimm.h | 2 ++ tools/testing/nvdimm/test/nfit.c | 3 +++ 10 files changed, 100 insertions(+), 3 deletions(-) commit 0f51c4fa7f60838a87cd45e8ba144dddcd4c066c Author: Dan Williams Date: Sat May 16 12:28:54 2015 -0400 pmem: flag pmem block devices as non-rotational ...since they are effectively SSDs as far as userspace is concerned. Reviewed-by: Vishal Verma Signed-off-by: Dan Williams drivers/nvdimm/pmem.c | 1 + 1 file changed, 1 insertion(+) commit f0dc089ce217e7b98e0d2077c548ff08129e7911 Author: Dan Williams Date: Sat May 16 12:28:53 2015 -0400 libnvdimm: enable iostat This is disabled by default as the overhead is prohibitive, but if the user takes the action to turn it on we'll oblige. Reviewed-by: Vishal Verma Signed-off-by: Dan Williams drivers/nvdimm/blk.c | 7 ++++++- drivers/nvdimm/btt.c | 7 ++++++- drivers/nvdimm/core.c | 29 +++++++++++++++++++++++++++++ drivers/nvdimm/nd.h | 13 +++++++++++++ drivers/nvdimm/pmem.c | 5 +++++ 5 files changed, 59 insertions(+), 2 deletions(-) commit edc870e54696beb9f3835ecb41a4e1c84ee4584d Author: Dan Williams Date: Sat May 16 12:28:51 2015 -0400 pmem: make_request cleanups Various cleanups: 1/ Kill the BUG_ON since we've already told the block layer we don't support DISCARD on all these drivers. 2/ Kill the 'rw' variable, no need to cache it. 3/ Kill the local 'sector' variable. bio_for_each_segment() is already advancing the iterator's sector number by the bio_vec length. 4/ Kill the check for accessing past the end of device generic_make_request_checks() already does that. Suggested-by: Christoph Hellwig [hch: kill access past end of the device check] Reviewed-by: Vishal Verma Signed-off-by: Dan Williams drivers/nvdimm/pmem.c | 26 +++++--------------------- 1 file changed, 5 insertions(+), 21 deletions(-) commit 43d3fa3a0491168ad769d20d5cbae45492509d43 Author: Dan Williams Date: Sat May 16 12:28:50 2015 -0400 libnvdimm, pmem: fix up max_hw_sectors There is no hardware limit to enforce on the size of the i/o that can be passed to an nvdimm block device, so set it to UINT_MAX. Reviewed-by: Vishal Verma Signed-off-by: Dan Williams drivers/nvdimm/pmem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fcae695737fca0849c18db814d9d8de05c0fd2a2 Author: Vishal Verma Date: Thu Jun 25 04:22:39 2015 -0400 libnvdimm, blk: add support for blk integrity Support multiple block sizes (sector + metadata) for nd_blk in the same way as done for the BTT. Add the idea of an 'internal' lbasize, which is properly aligned and padded, and store metadata in this space. Signed-off-by: Vishal Verma Signed-off-by: Dan Williams drivers/nvdimm/blk.c | 174 +++++++++++++++++++++++++++++++++++----- drivers/nvdimm/btt.h | 1 - drivers/nvdimm/core.c | 3 + drivers/nvdimm/namespace_devs.c | 3 +- drivers/nvdimm/nd.h | 1 + 5 files changed, 159 insertions(+), 23 deletions(-) commit 41cd8b70c37ace40077c8d6ec0b74b983178c192 Author: Vishal Verma Date: Thu Jun 25 04:21:52 2015 -0400 libnvdimm, btt: add support for blk integrity Support multiple block sizes (sector + metadata) using the blk integrity framework. This registers a new integrity template that defines the protection information tuple size based on the configured metadata size, and simply acts as a passthrough for protection information generated by another layer. The metadata is written to the storage as-is, and read back with each sector. Signed-off-by: Vishal Verma Signed-off-by: Dan Williams drivers/nvdimm/btt.c | 129 ++++++++++++++++++++++++++++++++++++++++------ drivers/nvdimm/btt.h | 2 +- drivers/nvdimm/btt_devs.c | 3 +- drivers/nvdimm/core.c | 37 +++++++++++++ drivers/nvdimm/nd.h | 1 + 5 files changed, 154 insertions(+), 18 deletions(-) commit f68eb1e71a92765ffd8eb68466a41b48f2fbba04 Author: Vishal Verma Date: Tue May 12 13:48:53 2015 -0400 fs/block_dev.c: skip rw_page if bdev has integrity If a block device has bio integrity enabled, rw_page will bypass the integrity payload, which is undesirable. Skip rw_page if this is the case. Currently brd and zram provide rw_page, and the proposed 'nd' drivers will too. Cc: Jens Axboe Cc: Martin K. Petersen Suggested-by: Matthew Wilcox Signed-off-by: Vishal Verma Signed-off-by: Dan Williams fs/block_dev.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit bc30196f715ed3a94d050ef8bc465e567a6050be Author: Dan Williams Date: Thu Jun 25 04:48:19 2015 -0400 libnvdimm: Non-Volatile Devices Maintainer information and documentation for drivers/nvdimm Cc: Andy Lutomirski Cc: Boaz Harrosh Cc: H. Peter Anvin Cc: Jens Axboe Cc: Ingo Molnar Cc: Christoph Hellwig Cc: Neil Brown Cc: Greg KH Signed-off-by: Dan Williams Documentation/nvdimm/btt.txt | 24 +- Documentation/nvdimm/nvdimm.txt | 808 ++++++++++++++++++++++++++++++++++++++++ MAINTAINERS | 39 +- 3 files changed, 858 insertions(+), 13 deletions(-) commit 6bc756193ff61bf5e7b3cfedfbb0873bf40f8055 Author: Dan Williams Date: Wed Jun 17 17:23:32 2015 -0400 tools/testing/nvdimm: libnvdimm unit test infrastructure 'libnvdimm' is the first driver sub-system in the kernel to implement mocking for unit test coverage. The nfit_test module gets built as an external module and arranges for external module replacements of nfit, libnvdimm, nd_pmem, and nd_blk. These replacements use the linker --wrap option to redirect calls to ioremap() + request_mem_region() to custom defined unit test resources. The end result is a fully functional nvdimm_bus, as far as userspace is concerned, but with the capability to perform otherwise destructive tests on emulated resources. Q: Why not use QEMU for this emulation? QEMU is not suitable for unit testing. QEMU's role is to faithfully emulate the platform. A unit test's role is to unfaithfully implement the platform with the goal of triggering bugs in the corners of the sub-system implementation. As bugs are discovered in platforms, or the sub-system itself, the unit tests are extended to backstop a fix with a reproducer unit test. Another problem with QEMU is that it would require coordination of 3 software projects instead of 2 (kernel + libndctl [1]) to maintain and execute the tests. The chances for bit rot and the difficulty of getting the tests running goes up non-linearly the more components involved. Q: Why submit this to the kernel tree instead of external modules in libndctl? Simple, to alleviate the same risk that out-of-tree external modules face. Updates to drivers/nvdimm/ can be immediately evaluated to see if they have any impact on tools/testing/nvdimm/. Q: What are the negative implications of merging this? It is a unique maintenance burden because the purpose of mocking an interface to enable a unit test is to purposefully short circuit the semantics of a routine to enable testing. For example __wrap_ioremap_cache() fakes the pmem driver into "ioremap()'ing" a test resource buffer allocated by dma_alloc_coherent(). The future maintenance burden hits when someone changes the semantics of ioremap_cache() and wonders what the implications are for the unit test. [1]: https://github.com/pmem/ndctl Cc: Cc: Lv Zheng Cc: Robert Moore Cc: Rafael J. Wysocki Cc: Christoph Hellwig Signed-off-by: Dan Williams drivers/acpi/nfit.c | 12 +- drivers/acpi/nfit.h | 6 + tools/testing/nvdimm/Kbuild | 40 ++ tools/testing/nvdimm/Makefile | 7 + tools/testing/nvdimm/config_check.c | 15 + tools/testing/nvdimm/test/Kbuild | 8 + tools/testing/nvdimm/test/iomap.c | 151 +++++ tools/testing/nvdimm/test/nfit.c | 1113 +++++++++++++++++++++++++++++++++ tools/testing/nvdimm/test/nfit_test.h | 29 + 9 files changed, 1377 insertions(+), 4 deletions(-) commit 047fc8a1f9a6330eacc80374dff087e20dc2304b Author: Ross Zwisler Date: Thu Jun 25 04:21:02 2015 -0400 libnvdimm, nfit, nd_blk: driver for BLK-mode access persistent memory The libnvdimm implementation handles allocating dimm address space (DPA) between PMEM and BLK mode interfaces. After DPA has been allocated from a BLK-region to a BLK-namespace the nd_blk driver attaches to handle I/O as a struct bio based block device. Unlike PMEM, BLK is required to handle platform specific details like mmio register formats and memory controller interleave. For this reason the libnvdimm generic nd_blk driver calls back into the bus provider to carry out the I/O. This initial implementation handles the BLK interface defined by the ACPI 6 NFIT [1] and the NVDIMM DSM Interface Example [2] composed from DCR (dimm control region), BDW (block data window), IDT (interleave descriptor) NFIT structures and the hardware register format. [1]: http://www.uefi.org/sites/default/files/resources/ACPI_6.0.pdf [2]: http://pmem.io/documents/NVDIMM_DSM_Interface_Example.pdf Cc: Andy Lutomirski Cc: Boaz Harrosh Cc: H. Peter Anvin Cc: Jens Axboe Cc: Ingo Molnar Cc: Christoph Hellwig Signed-off-by: Ross Zwisler Acked-by: Rafael J. Wysocki Signed-off-by: Dan Williams drivers/acpi/nfit.c | 449 ++++++++++++++++++++++++++++++++++++++-- drivers/acpi/nfit.h | 49 +++++ drivers/nvdimm/Kconfig | 13 ++ drivers/nvdimm/Makefile | 3 + drivers/nvdimm/blk.c | 245 ++++++++++++++++++++++ drivers/nvdimm/dimm_devs.c | 9 + drivers/nvdimm/namespace_devs.c | 65 +++++- drivers/nvdimm/nd-core.h | 3 +- drivers/nvdimm/nd.h | 13 +- drivers/nvdimm/region.c | 8 +- drivers/nvdimm/region_devs.c | 91 +++++++- include/linux/libnvdimm.h | 27 ++- 12 files changed, 941 insertions(+), 34 deletions(-) commit 5212e11fde4d40fa627668b4f2222d20db488f71 Author: Vishal Verma Date: Thu Jun 25 04:20:32 2015 -0400 nd_btt: atomic sector updates BTT stands for Block Translation Table, and is a way to provide power fail sector atomicity semantics for block devices that have the ability to perform byte granularity IO. It relies on the capability of libnvdimm namespace devices to do byte aligned IO. The BTT works as a stacked blocked device, and reserves a chunk of space from the backing device for its accounting metadata. It is a bio-based driver because all IO is done synchronously, and there is no queuing or asynchronous completions at either the device or the driver level. The BTT uses 'lanes' to index into various 'on-disk' data structures, and lanes also act as a synchronization mechanism in case there are more CPUs than available lanes. We did a comparison between two lane lock strategies - first where we kept an atomic counter around that tracked which was the last lane that was used, and 'our' lane was determined by atomically incrementing that. That way, for the nr_cpus > nr_lanes case, theoretically, no CPU would be blocked waiting for a lane. The other strategy was to use the cpu number we're scheduled on to and hash it to a lane number. Theoretically, this could block an IO that could've otherwise run using a different, free lane. But some fio workloads showed that the direct cpu -> lane hash performed faster than tracking 'last lane' - my reasoning is the cache thrash caused by moving the atomic variable made that approach slower than simply waiting out the in-progress IO. This supports the conclusion that the driver can be a very simple bio-based one that does synchronous IOs instead of queuing. Cc: Andy Lutomirski Cc: Boaz Harrosh Cc: H. Peter Anvin Cc: Jens Axboe Cc: Ingo Molnar Cc: Christoph Hellwig Cc: Neil Brown Cc: Jeff Moyer Cc: Dave Chinner Cc: Greg KH [jmoyer: fix nmi watchdog timeout in btt_map_init] [jmoyer: move btt initialization to module load path] [jmoyer: fix memory leak in the btt initialization path] [jmoyer: Don't overwrite corrupted arenas] Signed-off-by: Vishal Verma Signed-off-by: Dan Williams Documentation/nvdimm/btt.txt | 273 ++++++++ drivers/acpi/nfit.c | 1 + drivers/nvdimm/Kconfig | 28 +- drivers/nvdimm/Makefile | 3 + drivers/nvdimm/btt.c | 1371 +++++++++++++++++++++++++++++++++++++++ drivers/nvdimm/btt.h | 141 ++++ drivers/nvdimm/btt_devs.c | 3 +- drivers/nvdimm/namespace_devs.c | 24 + drivers/nvdimm/nd.h | 22 +- drivers/nvdimm/pmem.c | 14 +- drivers/nvdimm/region.c | 12 + drivers/nvdimm/region_devs.c | 82 ++- include/linux/libnvdimm.h | 1 + 13 files changed, 1950 insertions(+), 25 deletions(-) commit 36c8bb56a9f718a9a5f35d1834ca9dcec95deb4a Author: Li Zhang Date: Fri Jun 19 16:57:33 2015 +0800 perf symbols: Check access permission when reading symbol files There 2 problems when reading symbols files: * It doesn't report any errors even if when users specify symbol files which don't exist with --kallsyms or --vmlinux. The result just shows the address without symbols, which is not what is expected. So it's better to report errors and exit the program. * When using command perf report --kallsyms=/proc/kallsyms with a non-root user, symbols are resolved. Then select one symbol and annotate it, it reports the error as the following: Can't annotate __clear_user: No vmlinux file with build id xxx was found. The problem is caused by reading /proc/kcore without access permission. /proc/kcore requires CAP_SYS_RAWIO capability to access, so it needs to change access permission to allow a specific user to read /proc/kcore or use root to execute the perf command. This patch is to report errors when symbol files specified by users don't exist. And check access permission of /proc/kcore when reading it. Signed-off-by: Li Zhang Cc: Sukadev Bhattiprolu Link: http://lkml.kernel.org/r/1434704253-2632-1-git-send-email-zhlcindy@linux.vnet.ibm.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-report.c | 11 +++++++++++ tools/perf/util/symbol.c | 5 ++++- 2 files changed, 15 insertions(+), 1 deletion(-) commit 32b8af82e3708bc19af75c31fa773a98449f0edc Author: Jiri Olsa Date: Fri Jun 26 11:29:27 2015 +0200 perf stat: Introduce --per-thread option Currently all the -p option PID arguments tasks values get aggregated and printed as single values. Adding --per-tasks option to print values per task. $ perf stat -e cycles,instructions --per-thread -p 30190,30242 ^C Performance counter stats for process id '30190,30242': cat-30190 0 cycles yes-30242 3,842,525,421 cycles cat-30190 0 instructions yes-30242 10,370,817,010 instructions 1.143155657 seconds time elapsed Also works under interval mode: $ perf stat -e cycles,instructions --per-thread -p 30190,30242 -I 1000 # time comm-pid counts unit events 1.000073435 cat-30190 89,058 cycles 1.000073435 yes-30242 3,360,786,902 cycles (100.00%) 1.000073435 cat-30190 14,066 instructions 1.000073435 yes-30242 9,069,937,462 instructions 2.000204830 cat-30190 0 cycles 2.000204830 yes-30242 3,351,667,626 cycles 2.000204830 cat-30190 0 instructions 2.000204830 yes-30242 9,045,796,885 instructions ^C 2.771286639 cat-30190 0 cycles 2.771286639 yes-30242 2,593,884,166 cycles 2.771286639 cat-30190 0 instructions 2.771286639 yes-30242 7,001,171,191 instructions It works only with -t and -p options, otherwise following error is printed: $ perf stat -e cycles --per-thread -I 1000 ls The --per-thread option is only available when monitoring via -p -t options. -p, --pid stat events on existing process id -t, --tid stat events on existing thread id Signed-off-by: Jiri Olsa Tested-by: Arnaldo Carvalho de Melo Cc: Adrian Hunter Cc: Andi Kleen Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1435310967-14570-23-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/perf-stat.txt | 4 ++ tools/perf/builtin-stat.c | 76 +++++++++++++++++++++++++++++++++- tools/perf/util/stat.h | 1 + 3 files changed, 79 insertions(+), 2 deletions(-) commit d4f63a4741a808c0bf25d92884713008706fca16 Author: Jiri Olsa Date: Fri Jun 26 11:29:26 2015 +0200 perf stat: Introduce print_counters function Centralize counters print code into single print_counters function. Signed-off-by: Jiri Olsa Cc: Adrian Hunter Cc: Andi Kleen Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1435310967-14570-22-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 127 +++++++++++++++++++++++----------------------- 1 file changed, 64 insertions(+), 63 deletions(-) commit 5835e2286583e4fa6c2a609446e1320e7da2b161 Author: Jiri Olsa Date: Fri Jun 26 11:29:25 2015 +0200 perf stat: Using init_stats instead of memset The init_stats function is meant to init 'struct stats'. Reported-by: David Ahern Signed-off-by: Jiri Olsa Cc: Adrian Hunter Cc: Andi Kleen Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1435310967-14570-21-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ba411a954eae3e88c02667a5670cac97fb9c3f58 Author: Jiri Olsa Date: Fri Jun 26 11:29:24 2015 +0200 perf stat: Rename print_interval to process_interval It suits better, because the function also reads counter's data. Also the 'print_interval' name will be used in following generalization of counters display. Signed-off-by: Jiri Olsa Cc: Adrian Hunter Cc: Andi Kleen Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1435310967-14570-20-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit d8ee3b54d0458cbed0a31a410458f4bfd38fc147 Author: Jiri Olsa Date: Fri Jun 26 11:29:23 2015 +0200 perf stat: Remove perf_evsel__read_cb function It's no longer used, the stat command uses perf_evsel__read now. Signed-off-by: Jiri Olsa Cc: Adrian Hunter Cc: Andi Kleen Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1435310967-14570-19-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/evsel.c | 16 ---------------- tools/perf/util/evsel.h | 7 ------- 2 files changed, 23 deletions(-) commit 7ddb1b6bbf1e614e6700f226cb0a559c5c635336 Author: Jiri Olsa Date: Fri Jun 26 11:29:22 2015 +0200 perf stat: Move perf_stat initialization counter process code Moving perf_stat initialization counter process code, to make the reading path free of processing logic. Signed-off-by: Jiri Olsa Cc: Adrian Hunter Cc: Andi Kleen Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1435310967-14570-18-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 32ce0a47aaa401a7dd27dfe65210f3e3aa809682 Author: Jiri Olsa Date: Fri Jun 26 11:29:21 2015 +0200 perf stat: Move zero_per_pkg into counter process code Moving zero_per_pkg into counter process code, to make the reading path free of processing logic. Signed-off-by: Jiri Olsa Cc: Adrian Hunter Cc: Andi Kleen Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1435310967-14570-17-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 3b3eb044519ac4c422dbc6084303c470b8d2dc61 Author: Jiri Olsa Date: Fri Jun 26 11:29:20 2015 +0200 perf stat: Separate counters reading and processing Separating counters reading and processing so we could use the processing part in following patches. Using simple reading via perf_evsel__read function to read counters now, because part of the processing was in the read_cb callback. Signed-off-by: Jiri Olsa Cc: Adrian Hunter Cc: Andi Kleen Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1435310967-14570-16-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 56 +++++++++++++++++++++++++++++++++-------------- 1 file changed, 39 insertions(+), 17 deletions(-) commit 106a94a0f8c207ef4113ce7e32f34a00b3b174e7 Author: Jiri Olsa Date: Fri Jun 26 11:29:19 2015 +0200 perf stat: Introduce read_counters function Moving read counters logic into single read_counters function, which will be called for both interval and overall processing legs. The reason is to split reading and processing (following patches) counters code, so we could read counters from other sources (like perf.data) and process them in the same way as 'perf stat' command does. Signed-off-by: Jiri Olsa Cc: Adrian Hunter Cc: Andi Kleen Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1435310967-14570-15-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 47 ++++++++++++++++++++++------------------------- 1 file changed, 22 insertions(+), 25 deletions(-) commit f99f4719b841a9745d6a7652eef3956aaf2db66a Author: Jiri Olsa Date: Fri Jun 26 11:29:18 2015 +0200 perf stat: Introduce perf_evsel__read function Adding simple read function that reads/store data into given struct perf_counts_values *count object. Signed-off-by: Jiri Olsa Cc: Adrian Hunter Cc: Andi Kleen Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1435310967-14570-14-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/evsel.c | 14 ++++++++++++++ tools/perf/util/evsel.h | 3 +++ 2 files changed, 17 insertions(+) commit a7d0a102e4ae46b75b70a9500979e7ed3cdf183f Author: Jiri Olsa Date: Fri Jun 26 11:29:17 2015 +0200 perf stat: Introduce perf_evsel__alloc_stats function Move all stat allocation logic related to stat object under single function. This way we can use it separately for stat object out of evlist object. Signed-off-by: Jiri Olsa Cc: Adrian Hunter Cc: Andi Kleen Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1435310967-14570-13-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/stat.c | 20 ++++++++++++++------ tools/perf/util/stat.h | 2 ++ 2 files changed, 16 insertions(+), 6 deletions(-) commit 24e34f68e21a47a582b3cc2eccdb835b80b1830a Author: Jiri Olsa Date: Fri Jun 26 11:29:16 2015 +0200 perf stat: Move perf_evlist__(alloc|free|reset)_stats into stat object Moving perf_evlist__(alloc|free|reset)_stats into stat object, so it could be used in following patches. Signed-off-by: Jiri Olsa Cc: Adrian Hunter Cc: Andi Kleen Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1435310967-14570-12-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 42 ------------------------------------------ tools/perf/util/evlist.h | 1 - tools/perf/util/stat.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ tools/perf/util/stat.h | 6 ++++++ 4 files changed, 50 insertions(+), 43 deletions(-) commit a939512d10a5583a32ae85c1bff6c4ae63a8a517 Author: Jiri Olsa Date: Fri Jun 26 11:29:15 2015 +0200 perf stat: Move perf_evsel__(alloc|free)_prev_raw_counts into stat object Moving perf_evsel__(alloc|free)_prev_raw_counts into stat object, so it could be used in following patches. Signed-off-by: Jiri Olsa Cc: Adrian Hunter Cc: Andi Kleen Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1435310967-14570-11-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 18 ------------------ tools/perf/util/stat.c | 18 ++++++++++++++++++ tools/perf/util/stat.h | 4 ++++ 3 files changed, 22 insertions(+), 18 deletions(-) commit 9689edfabc1547155a7cdd1304fd294107054291 Author: Jiri Olsa Date: Fri Jun 26 11:29:14 2015 +0200 perf stat: Move perf_evsel__(alloc|free|reset)_stat_priv into stat object Moving perf_evsel__(alloc|free|reset)_stat_priv into stat object, so it could be used outside stat command in following patches. Signed-off-by: Jiri Olsa Cc: Adrian Hunter Cc: Andi Kleen Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1435310967-14570-10-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 25 ------------------------- tools/perf/util/stat.c | 25 +++++++++++++++++++++++++ tools/perf/util/stat.h | 4 ++++ 3 files changed, 29 insertions(+), 25 deletions(-) commit 254ecbc7474dfa08155c5595e90cd4a0fa9d14ce Author: Jiri Olsa Date: Fri Jun 26 11:29:13 2015 +0200 perf stat: Introduce perf_evlist__reset_stats To fit in with the rest of the helpers (alloc and free). Signed-off-by: Jiri Olsa Cc: Adrian Hunter Cc: Andi Kleen Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1435310967-14570-9-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 57b289159ab4fe1f7b2b531464cf67f65e48dd00 Author: Jiri Olsa Date: Fri Jun 26 11:29:12 2015 +0200 perf stat: Rename struct perf_counts::cpu member to values Renaming 'struct xyarray *cpu' pointer to more fitting/generic values, because now we store both cpu and thread values. Signed-off-by: Jiri Olsa Cc: Adrian Hunter Cc: Andi Kleen Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1435310967-14570-8-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/stat.c | 12 ++++++------ tools/perf/util/stat.h | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) commit a6fa003855d38d53d90c1a8a5827102e62702334 Author: Jiri Olsa Date: Fri Jun 26 11:29:11 2015 +0200 perf stat: Make stats work over the thread dimension Now that we have space for thread dimension counts, let's store it. Signed-off-by: Jiri Olsa Cc: Adrian Hunter Cc: Andi Kleen Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1435310967-14570-7-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 32 +++++++++++++++++------------- tools/perf/tests/openat-syscall-all-cpus.c | 6 +++--- tools/perf/tests/openat-syscall.c | 4 ++-- tools/perf/util/evsel.c | 12 +++++------ tools/perf/util/evsel.h | 2 +- tools/perf/util/stat.c | 8 ++++---- tools/perf/util/stat.h | 8 ++++---- 7 files changed, 38 insertions(+), 34 deletions(-) commit a8e02324dfe6bcafc15d02b790f33321ec4facb0 Author: Jiri Olsa Date: Fri Jun 26 11:29:10 2015 +0200 perf stat: Use xyarray for cpu evsel counts Switching single dimensional array of 'struct perf_counts_values' with xyarray object, so we could store thread dimension counts. Signed-off-by: Jiri Olsa Cc: Adrian Hunter Cc: Andi Kleen Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1435310967-14570-6-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 2 +- tools/perf/tests/openat-syscall.c | 2 +- tools/perf/util/stat.c | 31 ++++++++++++++++++++++--------- tools/perf/util/stat.h | 7 ++++--- 4 files changed, 28 insertions(+), 14 deletions(-) commit b5451e456840af027b794afc2c7c84c2a17f569b Author: Mike Snitzer Date: Fri Jun 26 10:07:04 2015 -0400 dm cache policy smq: fix "default" version to be 1.4.0 Commit bccab6a0 ("dm cache: switch the "default" cache replacement policy from mq to smq") should've incremented the "default" policy's version number to 1.4.0 rather than reverting to version 1.0.0. Reported-by: Alasdair G Kergon Signed-off-by: Mike Snitzer drivers/md/dm-cache-policy-smq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5532fba2061a203fa05dab87ae3f4213cd52bb8e Author: Mike Snitzer Date: Fri Jun 26 10:03:14 2015 -0400 dm: bump the ioctl version to 4.32.0 This fix enables userspace to detect that the dm-stats changes from the 4.2 merge are in place. Reported-by: Alasdair G Kergon Signed-off-by: Mike Snitzer include/uapi/linux/dm-ioctl.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 78d8e58a086b214dddf1fd463e20a7e1d82d7866 Author: Mike Snitzer Date: Fri Jun 26 10:01:13 2015 -0400 Revert "block, dm: don't copy bios for request clones" This reverts commit 5f1b670d0bef508a5554d92525f5f6d00d640b38. Justification for revert as reported in this dm-devel post: https://www.redhat.com/archives/dm-devel/2015-June/msg00160.html this change should not be pushed to mainline yet. Firstly, Christoph has a newer version of the patch that fixes silent data corruption problem: https://www.redhat.com/archives/dm-devel/2015-May/msg00229.html And the new version still depends on LLDDs to always complete requests to the end when error happens, while block API doesn't enforce such a requirement. If the assumption is ever broken, the inconsistency between request and bio (e.g. rq->__sector and rq->bio) will cause silent data corruption: https://www.redhat.com/archives/dm-devel/2015-June/msg00022.html Reported-by: Junichi Nomura Signed-off-by: Mike Snitzer block/blk-core.c | 94 ++++++++++++++++++++++--- drivers/md/dm-table.c | 25 +++---- drivers/md/dm.c | 171 +++++++++++++++++++++++++++++++++++----------- drivers/md/dm.h | 5 +- include/linux/blk_types.h | 2 - include/linux/blkdev.h | 6 +- 6 files changed, 230 insertions(+), 73 deletions(-) commit 1ac77e1ce8654ec94ada0c508d58ba80a4647fba Author: Jiri Olsa Date: Fri Jun 26 11:29:09 2015 +0200 perf stat: Introduce perf_counts function Introducing perf_counts function, that returns 'struct perf_counts_values' pointer for given cpu. Also moving perf_counts* structures into stat.h. Signed-off-by: Jiri Olsa Cc: Adrian Hunter Cc: Andi Kleen Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1435310967-14570-5-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 14 +++++++------- tools/perf/tests/openat-syscall-all-cpus.c | 4 ++-- tools/perf/tests/openat-syscall.c | 2 +- tools/perf/util/evsel.c | 6 +++--- tools/perf/util/evsel.h | 18 +----------------- tools/perf/util/stat.h | 23 +++++++++++++++++++++++ 6 files changed, 37 insertions(+), 30 deletions(-) commit 4e6e36c3714364b65f2bfea8c73691c663891726 Author: Mike Snitzer Date: Fri Jun 26 09:42:57 2015 -0400 Revert "dm: do not allocate any mempools for blk-mq request-based DM" This reverts commit cbc4e3c1350beb47beab8f34ad9be3d34a20c705. Reported-by: Junichi Nomura Signed-off-by: Mike Snitzer drivers/md/dm-table.c | 4 +-- drivers/md/dm.c | 69 +++++++++++++++++++++++---------------------------- 2 files changed, 33 insertions(+), 40 deletions(-) commit 134aa44f6bff6b967efb85255ee9e8982cb8e486 Author: Jiri Olsa Date: Fri Jun 26 11:29:08 2015 +0200 perf tests: Add thread_map object tests Adding thread_map object tests for comm name values. Signed-off-by: Jiri Olsa Tested-by: Arnaldo Carvalho de Melo Cc: Adrian Hunter Cc: Andi Kleen Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1435310967-14570-4-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/Build | 1 + tools/perf/tests/builtin-test.c | 4 ++++ tools/perf/tests/tests.h | 1 + tools/perf/tests/thread-map.c | 38 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 44 insertions(+) commit 792402fd5c0a5a5300868e9dfc8ee569f3a39169 Author: Jiri Olsa Date: Fri Jun 26 11:29:07 2015 +0200 perf thrad_map: Add comm string into array Adding support to hold comm name together with pids in 'struct thread_map'. It will be useful for --per-thread option to display task pid together with task name. Adding thread_map__read_comms function that reads/set comm string for the 'struct thread_map'. Getting the task name from /proc/$pid/comm. Signed-off-by: Jiri Olsa Cc: Adrian Hunter Cc: Andi Kleen Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1435310967-14570-3-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/python-ext-sources | 1 + tools/perf/util/thread_map.c | 59 ++++++++++++++++++++++++++++++++++++++ tools/perf/util/thread_map.h | 8 ++++++ 3 files changed, 68 insertions(+) commit 62eea464380633b88902da35bf9cbd8515289703 Author: Jiri Olsa Date: Fri Jun 26 11:29:06 2015 +0200 perf thread_map: Introduce thread_map__reset function We need to reset newly allocated 'struct thread_map_data' entries, because we will introduce new comm memeber, which will get set later or not at all. Signed-off-by: Jiri Olsa Cc: Adrian Hunter Cc: Andi Kleen Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1435310967-14570-2-git-send-email-jolsa@kernel.org [ Use sizeof(map->map[0]) to be independent of the array entry type ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/thread_map.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) commit d0cc439b30be638c3a606767e9469c300d397433 Author: Arnaldo Carvalho de Melo Date: Thu Jun 25 19:32:33 2015 -0300 perf trace: Validate syscall list passed via -e argument The 'trace' tool was accepting any names passed and just looking if syscalls returned via the raw_syscalls:* tracepoints were in that list, leading to it accepting perf events and then never finding any, as those are not valid syscall names, confusing users. Fix it by checking each entry in the list using audit_name_to_syscall, telling the user which entries are invalid and suggesting where to look for valid syscall names. E.g: [root@zoo ~]# trace -e open,foo,bar,close,baz Error: Invalid syscall bar, baz, foo Hint: try 'perf list syscalls:sys_enter_*' Hint: and: 'man syscalls' [root@zoo ~]# Reported-by: Flavio Leitner Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Link: http://lkml.kernel.org/n/tip-4g1i3m1z6fzsrznn2umi02wa@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-trace.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) commit d63903bbc30c7ccad040851dfdb4da12d9a17bcf Author: Xi Wang Date: Thu Jun 25 18:39:15 2015 -0700 arm64: bpf: fix endianness conversion bugs Upper bits should be zeroed in endianness conversion: - even when there's no need to change endianness (i.e., BPF_FROM_BE on big endian or BPF_FROM_LE on little endian); - after rev16. This patch fixes such bugs by emitting extra instructions to clear upper bits. Cc: Zi Shen Lim Acked-by: Alexei Starovoitov Fixes: e54bcde3d69d ("arm64: eBPF JIT compiler") Cc: # 3.18+ Signed-off-by: Xi Wang Signed-off-by: Catalin Marinas arch/arm64/net/bpf_jit.h | 4 ++++ arch/arm64/net/bpf_jit_comp.c | 22 ++++++++++++++++++++-- 2 files changed, 24 insertions(+), 2 deletions(-) commit 0fd72ff92d6bea32bba612744abbe6a0abd25e43 Author: Dan Carpenter Date: Wed Jun 24 17:27:43 2015 +0300 HID: wacom: NULL dereferences on error in probe() We can't pass a NULL to input_unregister_device(). Fixes: 2a6cdbdd4cc0 ('HID: wacom: Introduce new 'touch_input' device') Signed-off-by: Dan Carpenter Reviewed-by: Jason Gerecke Signed-off-by: Jiri Kosina drivers/hid/wacom_sys.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit ffacb48e5a4665d3d7286babb38a5af855a36bc0 Author: Charles Keepax Date: Fri Jun 26 10:39:43 2015 +0100 ASoC: dapm: Fix deadlock on auto-disable mux controls The commit 02aa78abec6e ("ASoC: DAPM: Add APIs to create individual DAPM controls.") added locking to the snd_soc_dapm_new_control function but did not update the call to snd_soc_dapm_new_control in the auto-disable mux code, this appears to be because the patches were sent at fairly similar times. This patch change the call in the auto-disable mux code to use the new snd_soc_dapm_new_control_unlocked function instead. Signed-off-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/soc-dapm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 40746eb14c6b44f4d635c2f4cf8c67550db9b3ab Author: Mitch Williams Date: Mon Jun 22 17:26:38 2015 -0700 i40evf: don't configure unused RSS queues The driver will only configure as many queues as there are available CPUs, up the maximum number of queues. However, it always configures RSS as though it is using the maximum number of queues. This can cause the device to drop a lot of RX traffic, as the packets get assigned to nonfunctional queues. Fix this by only configuring RSS with the number of active queues. Signed-off-by: Mitch Williams Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40evf/i40evf_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 67c818a1d58c7897b8a6f531684516f9c236fe1b Author: Mitch Williams Date: Fri Jun 19 08:56:30 2015 -0700 i40evf: fix panic during MTU change Down was requesting queue disables, but then exited immediately without waiting for the queues to actually disable. This could allow any function called after i40evf_down to run immediately, including i40evf_up, and causes a memory leak. Removing the whole reinit_locked function is the best way to go about this, and allows for the driver to handle the state changes by requesting reset from the periodic timer. Also, add a couple WARN_ONs in slow path to help us recognize if we re-introduce this issue or missed any cases. Signed-off-by: Mitch Williams Signed-off-by: Jesse Brandeburg Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40evf/i40e_txrx.c | 4 + drivers/net/ethernet/intel/i40evf/i40evf.h | 1 - drivers/net/ethernet/intel/i40evf/i40evf_ethtool.c | 6 +- drivers/net/ethernet/intel/i40evf/i40evf_main.c | 108 +++++++++------------ 4 files changed, 54 insertions(+), 65 deletions(-) commit 352f8ead753402d6c0496cb83b902128925459eb Author: Yanir Lubetkin Date: Wed Jun 10 01:16:03 2015 +0300 e1000e: i219 - k1 workaround for LPT is not required for SPT In SPT hardware does not require this driver workaround. Removed the conditional that caused K1 workaround execution on SPT. Signed-off-by: Yanir Lubetkin Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/e1000e/ich8lan.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 93cbfc709047a5bc3f8d86e0b55079b5077c8e00 Author: Yanir Lubetkin Date: Wed Jun 10 01:16:01 2015 +0300 e1000e: i219 - Increase minimum FIFO read/write min gap Due to clocking changes in the Skylake platform, there was i219 data corruption. To work around this, HW team reported the need to increase the minimum gap between the PHY FIFO read and write pointers. Signed-off-by: Yanir Lubetkin Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/e1000e/ich8lan.c | 46 +++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) commit 69cfbc95bdbfa2bd9a82f27dc131b08c48542f19 Author: Yanir Lubetkin Date: Wed Jun 10 01:15:57 2015 +0300 e1000e: i219 - increase IPG for speed 10/100 full duplex In SPT/i219, there were CRC errors in speed 10/100 full duplex. The solution given by the HW team is to increase the IPG from 8 to 0xC Signed-off-by: Yanir Lubetkin Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/e1000e/ich8lan.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit 6607c99e7034e7565a1559a24dd35083d6719788 Author: Yanir Lubetkin Date: Wed Jun 10 01:15:55 2015 +0300 e1000e: i219 - fix to enable both ULP and EEE in Sx state In i219, there is a hardware bug that prevented ULP entry. A side effect of the original software fix for this was that EEE in Sx couldn't be enabled. This patch implements a modified flow that allows both ULP and EEE in Sx. Signed-off-by: Yanir Lubetkin Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/e1000e/ich8lan.c | 45 ++++++++++++++++++++--------- 1 file changed, 32 insertions(+), 13 deletions(-) commit 00245266b4be4fbe989ee073663f56716da6c1f3 Author: Michel Thierry Date: Thu Jun 25 12:59:38 2015 +0100 drm/i915/ppgtt: Break loop in gen8_ppgtt_clear_range failure path If for some reason [1], the page directory/table does not exist, clear_range would end up in an infinite while loop. Introduced by commit 06fda602dbca ("drm/i915: Create page table allocators"). [1] This is already being addressed in one of Mika's patches: http://mid.gmane.org/1432314314-23530-17-git-send-email-mika.kuoppala@intel.com Cc: Mika Kuoppala Cc: stable@vger.kernel.org Reported-by: John Harrison Signed-off-by: Michel Thierry Reviewed-by: Mika Kuoppala Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_gem_gtt.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit beee8072c39cee74d4ff6e3b4ca8942f9966ed2e Author: Yanir Lubetkin Date: Wed Jun 10 01:15:51 2015 +0300 e1000e: synchronization of MAC-PHY interface only on non- ME systems On power up, the MAC - PHY interface needs to be set to PCIe, even if cable is disconnected. In ME systems, the ME handles this on exit from Sx state. In non-ME, the driver handles it. Added a check for non-ME system to the driver code that handles that. Signed-off-by: Yanir Lubetkin Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/e1000e/ich8lan.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) commit beb0a1520bec17cfaf0c3c77bbdd56cbf942883a Author: Yanir Lubetkin Date: Wed Jun 10 01:15:05 2015 +0300 e1000e: fix locking issue with e1000e_disable_aspm e1000e_disable_aspm called pci_disable_link_state_locked which requires pci_bus_sem to be held, but is also called from places where this semaphore was not previously acquired. This patch implements two flavors of disable_aspm, one that acquires the lock, and the other (_locked) which should be called when the semaphore is already acquired. Signed-off-by: Yanir Lubetkin Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/e1000e/netdev.c | 38 ++++++++++++++++++++++++++---- 1 file changed, 34 insertions(+), 4 deletions(-) commit 73cd63598dcbc95f51d5becf548e0643aa7a49fa Author: Todd Fujinaka Date: Fri Apr 17 11:25:04 2015 -0700 igb: bump version of igb to 5.2.18 Bump version of igb to igb-5.2.18 Signed-off-by: Todd Fujinaka Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/igb/igb_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8d0a88a959f0768d6b46436ea2517926fb682e53 Author: Todd Fujinaka Date: Fri Apr 17 11:24:38 2015 -0700 igb: disable IPv6 extension header processing Disable IPv6 extension header processing as per hardware errata. Also fix copyright date. Signed-off-by: Todd Fujinaka Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/igb/e1000_82575.c | 12 ++++++++---- drivers/net/ethernet/intel/igb/e1000_defines.h | 3 ++- 2 files changed, 10 insertions(+), 5 deletions(-) commit ac88cd738425e04dbed3706621cf613a00708834 Author: Rodrigo Vivi Date: Thu May 28 11:07:11 2015 -0700 drm/i915: Fix IPS related flicker We cannot let IPS enabled with no plane on the pipe: BSpec: "IPS cannot be enabled until after at least one plane has been enabled for at least one vertical blank." and "IPS must be disabled while there is still at least one plane enabled on the same pipe as IPS." This restriction apply to HSW and BDW. However a shortcut path on update primary plane function to make primary plane invisible by setting DSPCTRL to 0 was leting IPS enabled while there was no other plane enabled on the pipe causing flickerings that we were believing that it was caused by that other restriction where ips cannot be used when pixel rate is greater than 95% of cdclok. v2: Don't mess with Atomic path as pointed out by Ville. Reference: https://bugs.freedesktop.org/show_bug.cgi?id=85583 Cc: Ville Syrjälä Cc: Paulo Zanoni Cc: stable@vger.kernel.org Signed-off-by: Rodrigo Vivi Reviewed-by: Ville Syrjälä Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 13 +++++++++++++ drivers/gpu/drm/i915/intel_drv.h | 1 + 2 files changed, 14 insertions(+) commit db11cba205b6710a71ef52a0f24e0ef059f29f1c Author: Fabio Estevam Date: Mon Jun 22 01:16:19 2015 -0300 watchdog: imx2_wdt: Disable previously acquired clock on error path If watchdog_register_device() fails we should disable the previously acquired wdev->clk clock on error path. Signed-off-by: Fabio Estevam Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/imx2_wdt.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit aefb163cb2b876bcbbceee47e3e4f22ed7364630 Author: Fabio Estevam Date: Mon Jun 22 01:16:18 2015 -0300 watchdog: imx2_wdt: Check for clk_prepare_enable() error clk_prepare_enable() may fail, so we should better check its return value and propagate it in the case of error. Signed-off-by: Fabio Estevam Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/imx2_wdt.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit 6eedf416429a32e0216f61b8b690d25577b2b91e Merge: df0d0da a22e99c Author: Ingo Molnar Date: Fri Jun 26 10:38:11 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 refactorings from Arnaldo Carvalho de Melo: Infrastructure changes: - Reference count the cpu_map and thread_map classes. (Jiri Olsa) - Set evsel->{cpus,threads} from the evlist, if not set, allowing the generalization of some 'perf stat' functions that previously were accessing private static evlist variable. (Jiri Olsa) - Delete an unnecessary check before the calling free_event_desc() (Markus Elfring) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit df0d0da426d03fb7e6567feb38a48b1e0dd1891e Merge: 2745170 2b42b09 Author: Ingo Molnar Date: Fri Jun 26 10:37:15 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 to show proper convergence stats in 'perf bench numa' (Srikar Dronamraju) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit 11828dbce6f769ed631919aa378b645b1af6bda6 Author: Matti Gottlieb Date: Mon Jun 1 15:15:11 2015 +0300 iwlwifi: mvm: Avoid accessing Null pointer when setting igtk Sometimes when setting an igtk key the station maybe NULL. In the of case igtk the function will skip to the end, and try to print sta->addr, if sta is Null - we will access a Null pointer. Avoid accessing a Null pointer when setting a igtk key & the sta == NULL, and print a default MAC address instead. Signed-off-by: Matti Gottlieb Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/sta.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 923a8c1d8069104726bde55c37cec66324ccc328 Author: Emmanuel Grumbach Date: Sun May 31 21:44:22 2015 +0300 iwlwifi: mvm: fix antenna selection when BT is active When BT is active, we want to avoid the shared antenna for management frame to make sure we don't disturb BT. There was a bug in that code because it chose the antenna BIT(ANT_A) where ANT_A is already a bitmap (0x1). This means that the antenna chosen in the end was ANT_B. While this is not optimal on devices with 2 antennas (it'd disturb BT), it is critical on single antenna devices like 3160 which couldn't connect at all when BT was active. This fixes: https://bugzilla.kernel.org/show_bug.cgi?id=97181 CC: [3.17+] Fixes: 34c8b24ff284 ("iwlwifi: mvm: BT Coex - avoid the shared antenna for management frames") Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/tx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 831bfdf9520e389357cfeee42a6174a73ce7bdb7 Author: Hui Wang Date: Fri Jun 26 12:35:17 2015 +0800 ALSA: hda - restore the MIC FIXUP for some Dell machines Those FIXUPs were applied to the machines through pin quirks, but recently the PCI_QUIRK makes them can't apply to the machines. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=99851 Signed-off-by: Hui Wang Cc: # v4.1 Signed-off-by: Takashi Iwai sound/pci/hda/patch_realtek.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) commit 7378bc2f19f841b25f1e27c7abce1ecc298f71f1 Author: Takashi Iwai Date: Fri Jun 26 06:59:57 2015 +0200 ALSA: jack: Fix endless loop at unique index detection While the commit [d0a601c278de: ALSA: jack: Fix the id uniqueness check] fixes the wrong string check, it leads to a worse result -- the loop in get_available_index() goes into an endless loop. The cause is that snd_ctl_find_id() returns the object assigned to the numid if it's set. Thus it points to the previous entry again. This patch clears the numid field for the next call properly. Reported-and-tested-by: Tomáš Pružina Signed-off-by: Takashi Iwai sound/core/ctljack.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit c13c81006314ad76c2b31824960a900385601b8b Merge: 2486748 3783055 Author: Linus Torvalds Date: Thu Jun 25 18:55:33 2015 -0700 Merge tag 'rtc-v4.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux Pull RTC updates from Alexandre Belloni: "Core: - Coding style and whitespace fixes (interface, Makefile and Kconfig) - New rtc_tm_sub() helper - New CONFIG_RTC_SYSTOHC_DEVICE option - Removed rtc_set_mmss() New drivers: - Mediatek MT6397 - Cortina Gemini Drivers: - Year 2106 fixes for isl1208, pcf8563 and sunxi - update author email for at32ap700x and efi - ds1307: alarm fix - efi: use correct EFI 'epoch' - hym8563: make irq optional - imxdi: cleanups and better handling of the security/tamper monitoring - snvs: fix wakealarm - Compilation fixes or warning removal for gemini, mt6397, palmas, pfc8563 - Trivial cleanups for ab8500, ds1216, ds1286, ds1672, ep93xx, hid-sensor-time, max6900, max8998, max77686, max77802, mc13xxx, mv, mxc, s3c, spear, v3020 - Kconfig fixes for stmp3xxx and xgene" * tag 'rtc-v4.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux: (48 commits) rtc: remove useless I2C dependencies rtc: whitespace fixes rtc: Properly sort Makefile MAINTAINERS: Add RTC subsystem repository rtc: pfc8563: fix uninitialized variable warning rtc: ds1307: Enable the mcp794xx alarm after programming time rtc: hym8563: make the irq optional rtc: gemini: fix cocci warnings rtc: mv: correct 24 hour error message rtc: mv: use BIT() rtc: efi: use correct EFI 'epoch' rtc: interface: Remove rtc_set_mmss() sparc: time: Replace update_persistent_clock() with CONFIG_RTC_SYSTOHC rtc: NTP: Add CONFIG_RTC_SYSTOHC_DEVICE for NTP synchronization rtc: sunxi: Replace deprecated rtc_tm_to_time() rtc: isl1208: Replace deprecated rtc_tm_to_time() rtc: Introduce rtc_tm_sub() helper function rtc: pcf8563: Replace deprecated rtc_time_to_tm() and rtc_tm_to_time() rtc: palmas: Initialise bb_charging flag before using it rtc: simplify use of devm_ioremap_resource ... commit 24867481b8c0a3bc3ab53b634e3cc03680ac3ac6 Merge: 9390bd0 a294aba Author: Linus Torvalds Date: Thu Jun 25 18:42:39 2015 -0700 Merge branch 'i2c/for-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux Pull i2c updates from Wolfram Sang: "Highlights: - new drivers for Mediatek I2C, APM X-Gene, Broadcom Settop - major updates to at91, davinci - bugfixes to the mux infrastructure when dealing with the new quirk mechanism - more users for the bus recovery feature - further improvements to the slave framework Plus the usual bunch of smaller driver and core improvements and fixes. There is one patch removing old code from an ARM platform. This has been acked by the sh_mobile maintainer Simon Horman" * 'i2c/for-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (48 commits) i2c: busses: i2c-bcm2835: limits cdiv to allowed values i2c: sh_mobile: use proper type for timeout i2c: sh_mobile: use adapter default for timeout i2c: rcar: use proper type for timeout i2c: rcar: use adapter default for timeout i2c: designware: Make sure the device is suspended before disabling runtime PM i2c: tegra: apply size limit quirk i2c: tegra: don't advertise SMBUS_QUICK i2c: octeon: remove unused signal handling i2c: davinci: Optimize SCL generation i2c: mux: pca954x: Use __i2c_transfer because of quirks i2c: mux: Use __i2c_transfer() instead of calling parent's master_xfer() i2c: use parent adapter quirks in mux i2c: bcm2835: clear reserved bits in S-Register ARM: shmobile: r8a7740: remove I2C errata handling i2c: sh_mobile: add errata workaround i2c: at91: fix code checker warnings i2c: busses: xgene-slimpro: fix incorrect __init declation for probe i2c: davinci: Avoid sending to own address i2c: davinci: Refactor i2c_davinci_wait_bus_not_busy() ... commit 9390bd0d14b4585f7ac2df15ff5f52af182251e1 Merge: da996f7 7d64193 Author: Linus Torvalds Date: Thu Jun 25 18:38:40 2015 -0700 Merge branch 'mailbox-for-next' of git://git.linaro.org/landing-teams/working/fujitsu/integration Pull mailbox updates from Jassi Brar. * 'mailbox-for-next' of git://git.linaro.org/landing-teams/working/fujitsu/integration: mailbox/bcm2835: Fix mailbox full detection. dt: mailbox: Remove 'mbox-names property is discouraged' message from binding mailbox: Add ability for clients to request channels by name mailbox: Enable BCM2835 mailbox support dt/bindings: Add binding for the BCM2835 mailbox driver mailbox: Fix up error handling in mbox_request_channel() mailbox: Make mbox_chan_ops const mailbox: altera: Add dependency on HAS_IOMEM commit 132c242d95063f0c362597e74ee6759403a3f700 Merge: 11f6868 eddda19 c181fb3 fff3b16 cc5a2f7 Author: Rafael J. Wysocki Date: Fri Jun 26 03:30:37 2015 +0200 Merge branches 'acpi-video', 'device-properties', 'pm-sleep' and 'pm-cpuidle' * acpi-video: ACPI / video: Inline acpi_video_set_dmi_backlight_type * device-properties: ACPI / OF: Rename of_node() and acpi_node() to to_of_node() and to_acpi_node() * pm-sleep: PM / sleep: Increase default DPM watchdog timeout to 60 PM / hibernate: re-enable nonboot cpus on disable_nonboot_cpus() failure * pm-cpuidle: tick/idle/powerpc: Do not register idle states with CPUIDLE_FLAG_TIMER_STOP set in periodic mode commit cc5a2f7b8f39e7db559778f7913a2410257b3e50 Author: preeti Date: Wed Jun 24 01:48:01 2015 -0500 tick/idle/powerpc: Do not register idle states with CPUIDLE_FLAG_TIMER_STOP set in periodic mode On some archs, the local clockevent device stops in deep cpuidle states. The broadcast framework is used to wakeup cpus in these idle states, in which either an external clockevent device is used to send wakeup ipis or the hrtimer broadcast framework kicks in in the absence of such a device. One cpu is nominated as the broadcast cpu and this cpu sends wakeup ipis to sleeping cpus at the appropriate time. This is the implementation in the oneshot mode of broadcast. In periodic mode of broadcast however, the presence of such cpuidle states results in the cpuidle driver calling tick_broadcast_enable() which shuts down the local clockevent devices of all the cpus and appoints the tick broadcast device as the clockevent device for each of them. This works on those archs where the tick broadcast device is a real clockevent device. But on archs which depend on the hrtimer mode of broadcast, the tick broadcast device hapens to be a pseudo device. The consequence is that the local clockevent devices of all cpus are shutdown and the kernel hangs at boot time in periodic mode. Let us thus not register the cpuidle states which have CPUIDLE_FLAG_TIMER_STOP flag set, on archs which depend on the hrtimer mode of broadcast in periodic mode. This patch takes care of doing this on powerpc. The cpus would not have entered into such deep cpuidle states in periodic mode on powerpc anyway. So there is no loss here. Signed-off-by: Preeti U Murthy Cc: 3.19+ # 3.19+ Signed-off-by: Rafael J. Wysocki drivers/cpuidle/cpuidle-powernv.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) commit da996f7310eb7fa8d49223936111d3e86b72e2f3 Merge: 5b4ca44 fa2ce64 Author: Linus Torvalds Date: Thu Jun 25 18:22:20 2015 -0700 Merge tag 'edac/v4.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-edac Pull edac updates from Mauro Carvalho Chehab: "Some fixes and additions to the EDAC driver used on modern Intel x86 CPUs. It includes support for Broadwell EP/EX platforms and fixes for motherboards with more than 2 CPU sockets" * tag 'edac/v4.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-edac: sb_edac: support for Broadwell -EP and -EX sb_edac: Fix support for systems with two home agents per socket sb_edac: Fix a typo and a thinko in address handling for Haswell EDAC: Remove arbitrary limit on number of channels commit 5b4ca4447757019f11a601b0009534ef84bed801 Merge: 0db9723 faebbd8 Author: Linus Torvalds Date: Thu Jun 25 17:55:48 2015 -0700 Merge tag 'media/v4.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media Pull media updates from Mauro Carvalho Chehab: - Lots of improvements at the DVB API DocBook documentation. Now, the frontend and the network APIs are fully in sync with the Kernel and looks more like the rest of the media documentation; - New frontend driver: cx24120 - New driver for a PCI device: cobalt. This driver is actually not sold in the market, but it is a good example of a multi-HDMI input device; - The dt3155 driver were promoted from staging; - The mantis driver got remote controller support; - New V4L2 driver for ST bdisp SoC chipsets; - Make sparse and smatch happier: several bugs were solved by fixing the issues reported by those static code analyzers. - Lots of new device additions, new features, improvements and cleanups at the existing drivers. * tag 'media/v4.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (553 commits) [media] lmedm04: fix the range for relative measurements [media] lmedm04: use u32 instead of u64 for relative stats [media] omap3isp: remove unused var [media] saa7134: fix page size on some archs [media] use CONFIG_PM_SLEEP for suspend/resume [media] tuner-i2c: be consistent with I2C declaration [media] si470x: cleanup define namespace [media] bdisp: prevent compiling on random arch [media] vb2: Don't WARN when v4l2_buffer.bytesused is 0 for multiplanar buffers [media] MAINTAINERS: Add entry for the Renesas VSP1 driver [media] videodev2.h: fix copy-and-paste error in V4L2_MAP_XFER_FUNC_DEFAULT [media] Revert "[media] vb2: Push mmap_sem down to memops" [media] mantis: cleanup a warning [media] bdisp-debug: don't try to divide by s64 [media] cx88: don't declare restart_video_queue if not used [media] au0828: move dev->boards atribuition to happen earlier [media] lmedm04: implement dvb v5 statistics [media] bdisp: remove unused var [media] bdisp: remove needless check ts2020: fix compilation on i386 ... commit 0db9723cacf4d62bc3685fb15179b39ee4e17679 Merge: 4570a37 111b23c Author: Linus Torvalds Date: Thu Jun 25 17:51:55 2015 -0700 Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux Pull thermal management updates from Zhang Rui: "Specifics: - enhance Thermal Framework with several new capabilities: * use power estimates * compute weights with relative integers instead of percentages * allow governors to have private data in thermal zones * export thermal zone parameters through sysfs Thanks to the ARM thermal team (Javi, Punit, KP). - introduce a new thermal governor: power allocator. First in kernel closed loop PI(D) controller for thermal control. Thanks to ARM thermal team. - enhance OF thermal to allow thermal zones to have sustainable power HW specification. Thanks to Punit. - introduce thermal driver for Intel Quark SoC x1000platform. Thanks to Ong, Boon Leong. - introduce QPNP PMIC temperature alarm driver. Thanks to Ivan T. I. - introduce thermal driver for Hisilicon hi6220. Thanks to kongxinwei. - enhance Exynos thermal driver to handle Exynos5433 TMU. Thanks to Chanwoo C. - TI thermal driver now has a better implementation for EOCZ bit. From Pavel M. - add id for Skylake processors in int340x processor thermal driver. - a couple of small fixes and cleanups." * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux: (36 commits) thermal: hisilicon: add new hisilicon thermal sensor driver dt-bindings: Document the hi6220 thermal sensor bindings thermal: of-thermal: add support for reading coefficients property thermal: support slope and offset coefficients thermal: power_allocator: round the division when divvying up power thermal: exynos: Add the support for Exynos5433 TMU thermal: cpu_cooling: Fix power calculation when CPUs are offline thermal: cpu_cooling: Remove cpu_dev update on policy CPU update thermal: export thermal_zone_parameters to sysfs thermal: cpu_cooling: Check memory allocation of power_table ti-soc-thermal: request temperature periodically if hw can't do that itself ti-soc-thermal: implement eocz bit to make driver useful on omap3 cleanup ti-soc-thermal thermal: remove stale THERMAL_POWER_ACTOR select thermal: Default OF created trip points to writable thermal: core: Add Kconfig option to enable writable trips thermal: x86_pkg_temp: drop const for thermal_zone_parameters of: thermal: Introduce sustainable power for a thermal zone thermal: add trace events to the power allocator governor thermal: introduce the Power Allocator governor ... commit c5fd936e992dd2829167d2adc63e151675ca6898 Author: Lukas Wunner Date: Sun Apr 19 17:18:01 2015 +0200 drm/nouveau: Pause between setting gpu to D3hot and cutting the power On the MacBook Pro, power of the gpu is cut by a gmux chip. Sometimes the gpu gets stuck in powersaving mode and refuses to wake up ("Refused to change power state, currently in D3"). Inserting a delay between setting the gpu to D3hot and cutting the power seems to help (most of the time). This issue and its (partial) remediation by the patch was observed with an Nvidia GT650M (NVE7 / GK107). Signed-off-by: Lukas Wunner Signed-off-by: Dave Airlie drivers/gpu/drm/nouveau/nouveau_drm.c | 2 ++ 1 file changed, 2 insertions(+) commit 4570a37169d4b44d316f40b2ccc681dc93fedc7b Merge: f7b0821 60b9303 Author: Linus Torvalds Date: Thu Jun 25 17:15:18 2015 -0700 Merge tag 'sound-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound Pull sound updates from Takashi Iwai: "It was a busy development cycle at this time, as you can see a wide range of changes in diffstat. There are no big changes but many refactoring and improvements. Here we go some highlights: ALSA core: - Procfs codes were cleaned up to use seq_file - Procfs can be opt out via Kconfig (only for EXPERT) - Two types of jack API were unified finally; now both kctl and input jack devs are handled via a single function call. HD-audio: - Continued code restructuring for the future ASoC driver; now HDA controller driver is split to a core helper module. - Preliminary codes for Skylake audio support in HDA core. - Proper i915 gfx power well management for SKL & co - Enabled runtime PM as default for Intel HDMI/DP codecs - Newer Tegra chip supports - More quirks for Dell headsets, Alienware (with CA0132), etc. - A couple of DRM ELD helper API functions ASoC: - Support for loading ASoC topology maps from firmware, intended to be used to allow self-describing DSP firmware images to be built which can map controls added by the DSP to userspace without the kernel needing to know about individual DSP firmwares - Lots of refactoring to avoid direct access to snd_soc_codec where it's not needed supporting future refactoring - Big refactoring, cleanup and enhancement for the Wolfson ADSP driver - Cleanup series for TI TAS2552 and R-CAR drivers - Fixes and improvements on RT56xx codecs - Support for TI TAS571x power amplifiers - Support for Qualcomm APQ8016 and ZTE ZX296702 SoCs - Support for x86 systems with RT5650 and Qualcomm Storm - Support for Mediatek AFE (Audio Front End) unit - Other various small fixes to ASoC codec drivers Firewire: - Enhanced to allow non-blocking streams to use timestamp synchronization - Improve support for DM1500 and BeBoBv3 Misc: - Cleanup of old pci API functions over all PCI sound drivers - Fix long-standing regression of the old powermac i2c setup" * tag 'sound-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (533 commits) ALSA: pcm: Fix pcm_class sysfs output ALSA: hda-beep: Update authors dead email address ASoC: wm_adsp: Move DSP Rate controls into the codec ASoC: wm8995: Fix setting sysclk for WM8995_SYSCLK_MCLK2 case ALSA: hda: provide default bus io ops extended hdac ALSA: hda: add hda link cleanup routine ALSA: hda: add hdac_ext stream creation and cleanup routines ASoC: rsrc-card: remove unused ret ALSA: HDAC: move SND_HDA_PREALLOC_SIZE to core ASoC: mediatek: Add machine driver for rt5650 rt5676 codec ASoC: mediatek: Add machine driver for MAX98090 codec ASoC: mediatek: Add AFE platform driver ASoC: rsnd: remove io from rsnd_mod ASoC: rsnd: move rsnd_mod_is_working() to rsnd_io_is_working() ASoC: rsnd: don't use rsnd_mod_to_io() on snd_kcontrol ASoC: rsnd: don't use rsnd_mod_to_io() on rsnd_src_xxx() ASoC: rsnd: don't use rsnd_mod_to_io() on rsnd_ssi_xxx() ASoC: rsnd: don't use rsnd_mod_to_io() on rsnd_dma_xxx() ASoC: rsnd: don't use rsnd_mod_to_io() on rsnd_get_adinr() ASoC: rsnd: add common interrupt handler for SSI/SRC/DMA ... commit f7b08217c755e88a29b5bd53b4a1d10cd8b3c5f8 Merge: 64e22b86 9ea650c8 Author: Linus Torvalds Date: Thu Jun 25 17:14:01 2015 -0700 Merge branch 'dmi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging Pull DMI updates from Jean Delvare: "The most important change is the new sysfs interface to the DMI table, which will let user-space tools (such as dmidecode) access the table without relying on /dev/mem" * 'dmi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging: firmware: dmi: struct dmi_header should be packed firmware: dmi_scan: Coding style cleanups Documentation: ABI: sysfs-firmware-dmi: add -entries suffix to file name firmware: dmi_scan: add SBMIOS entry and DMI tables firmware: dmi_scan: Trim DMI table length before exporting it firmware: dmi_scan: Rename dmi_table to dmi_decode_table firmware: dmi: List my quilt tree firmware: dmi_scan: Only honor end-of-table for 64-bit tables commit 51229b495340bd7a02ce3622d1966829b67054ea Author: Rik van Riel Date: Thu Jun 25 15:03:56 2015 -0700 exit,stats: /* obey this comment */ There is a helpful comment in do_exit() that states we sync the mm's RSS info before statistics gathering. The function that does the statistics gathering is called right above that comment. Change the code to obey the comment. Signed-off-by: Rik van Riel Cc: Oleg Nesterov Cc: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds kernel/exit.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b4176b7c135ed28e78752552358919e5b14ad2bf Author: Nicolas Iooss Date: Thu Jun 25 15:03:53 2015 -0700 coredump: add __printf attribute to cn_*printf functions This allows detecting improper format string at build time, like: fs/coredump.c:225:5: warning: format '%ld' expects argument of type 'long int', but argument 3 has type 'int' [-Wformat=] err = cn_printf(cn, "%ld", cprm->siginfo->si_signo); ^ As si_signo is always an int, the format should be %d here. Signed-off-by: Nicolas Iooss Acked-by: "Eric W. Biederman" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/coredump.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit 5202efe544c279be152f44f2821010ff7b2d7e5b Author: Nicolas Iooss Date: Thu Jun 25 15:03:51 2015 -0700 coredump: use from_kuid/kgid when formatting corename When adding __printf attribute to cn_printf, gcc reports some issues: fs/coredump.c:213:5: warning: format '%d' expects argument of type 'int', but argument 3 has type 'kuid_t' [-Wformat=] err = cn_printf(cn, "%d", cred->uid); ^ fs/coredump.c:217:5: warning: format '%d' expects argument of type 'int', but argument 3 has type 'kgid_t' [-Wformat=] err = cn_printf(cn, "%d", cred->gid); ^ These warnings come from the fact that the value of uid/gid needs to be extracted from the kuid_t/kgid_t structure before being used as an integer. More precisely, cred->uid and cred->gid need to be converted to either user-namespace uid/gid or to init_user_ns uid/gid. Use init_user_ns in order not to break existing ABI, and document this in Documentation/sysctl/kernel.txt. While at it, format uid and gid values with %u instead of %d because uid_t/__kernel_uid32_t and gid_t/__kernel_gid32_t are unsigned int. Signed-off-by: Nicolas Iooss Acked-by: "Eric W. Biederman" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Documentation/sysctl/kernel.txt | 4 ++-- fs/coredump.c | 8 ++++++-- 2 files changed, 8 insertions(+), 4 deletions(-) commit 89bfae43c8999344c3025802a3652ac42f55278e Author: Firo Yang Date: Thu Jun 25 15:03:48 2015 -0700 fs/reiserfs: remove unneeded cast kmem_cache_alloc() returns void*. Signed-off-by: Firo Yang Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/reiserfs/super.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit f73c2f1f83ca1c4e2f4515f987973bfe56c86973 Author: NeilBrown Date: Thu Jun 25 15:03:45 2015 -0700 NILFS2: 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 Signed-off-by: Ryusuke Konishi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/nilfs2/namei.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 9f0f564abbd8812edeef2c839ab3e6ba16595491 Author: Fabian Frederick Date: Thu Jun 25 15:03:43 2015 -0700 fs/befs/btree.c: remove unneeded initializations bh, od_sup and this_node are unconditionally initialized in befs_bt_read_super() and befs_btree_find() Signed-off-by: Fabian Frederick Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/befs/btree.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 83b08bf7defa702cc6ef975fb05c437cd331826c Author: Firo Yang Date: Thu Jun 25 15:03:40 2015 -0700 fs/minix: remove unneeded cast kmem_cache_alloc() returns void*. Signed-off-by: Firo Yang Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/minix/inode.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c69e3c3a0c014e86750e78b7e2ae823f7a9b2cb2 Author: Vishnu Pratap Singh Date: Thu Jun 25 15:03:37 2015 -0700 init/do_mounts.c: add create_dev() failure log If create_dev() function fails to create the root mount device (/dev/root), then it goes to panic as root device not found but there is no printk in this case. So I have added the log in case it fails to create the root device. It will help in debugging. [akpm@linux-foundation.org: simplify printk(), use pr_emerg(), display errno] Signed-off-by: Vishnu Pratap Singh Acked-by: Pavel Machek Cc: Paul Gortmaker Cc: Mike Snitzer Cc: Dan Ehrenberg Cc: Miklos Szeredi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds init/do_mounts.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit bffacb9132a306b7e22bb6366e5b277f20f67465 Author: Wang Long Date: Thu Jun 25 15:03:35 2015 -0700 kasan: remove duplicate definition of the macro KASAN_FREE_PAGE Remove duplicate definition of the macro KASAN_FREE_PAGE in mm/kasan/kasan.h Signed-off-by: Wang Long Acked-by: Andrey Ryabinin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/kasan/kasan.h | 1 - 1 file changed, 1 deletion(-) commit 35a4c902f61fc262aba03d5e8381334683e4d4aa Author: Firo Yang Date: Thu Jun 25 15:03:32 2015 -0700 fs/efs: femove unneeded cast kmem_cache_alloc() returns void*. Signed-off-by: Firo Yang Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/efs/super.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3c816e490ca48af65ccb420e2462ab7344879e0c Author: Joe Perches Date: Thu Jun 25 15:03:29 2015 -0700 checkpatch: emit "NOTE: " message only once after multiple files Make this message similar to the "false positives" message and emit it only once when scanning multiple files instead of after each file scanned. Signed-off-by: Joe Perches Cc: Andy Whitcroft Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/checkpatch.pl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit e518e9a59ec37a323b0f4785e2311a1ec1433c6d Author: Joe Perches Date: Thu Jun 25 15:03:27 2015 -0700 checkpatch: emit an error when there's a diff in a changelog People often put diff snippets in changelogs. This causes problems when one tries to apply a file containing both the changelog and the diff because patch(1) tries to apply the diff which it found in the changelog. Warn once when what seems to be a diff snippet in the changelog exists. Signed-off-by: Joe Perches Suggested-by: Andrew Morton Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/checkpatch.pl | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) commit 5a6d20ce19b770c9946281783614294b3f570ab8 Author: Bjorn Andersson Date: Thu Jun 25 15:03:24 2015 -0700 checkpatch: validate MODULE_LICENSE content There is a well defined list of expected values for MODULE_LICENSE so warn the user upon usage of unknown values. Signed-off-by: Bjorn Andersson Cc: Joe Perches Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/checkpatch.pl | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit 10895d2c82cce9650f7d34c81c1bd29958e15293 Author: Mateusz Kulikowski Date: Thu Jun 25 15:03:21 2015 -0700 checkpatch: add multi-line handling for PREFER_ETHER_ADDR_COPY Handle multi-line memcpy() properly. Signed-off-by: Mateusz Kulikowski Acked-by: Joe Perches Cc: David Miller Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/checkpatch.pl | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 8617cd09bc874dd7204b83aa3ed5fdc38b79562f Author: Mateusz Kulikowski Date: Thu Jun 25 15:03:19 2015 -0700 checkpatch: suggest using eth_zero_addr() and eth_broadcast_addr() Suggest using eth_zero_addr() or eth_broadcast_addr() instead of memset(). Signed-off-by: Mateusz Kulikowski Acked-by: Joe Perches Cc: David Miller Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/checkpatch.pl | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) commit 9e20a8535f3fdd88afe9fe17ae85c36bd37f4e71 Author: Mateusz Kulikowski Date: Thu Jun 25 15:03:16 2015 -0700 checkpatch: fix processing of MEMSET issues Remove 's' modifier to avoid reporting the same warning several times. Signed-off-by: Mateusz Kulikowski Acked-by: Joe Perches Cc: David Miller Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/checkpatch.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b6117d175be9972fc300f826e6f2bf9c589e0919 Author: Mateusz Kulikowski Date: Thu Jun 25 15:03:13 2015 -0700 checkpatch: suggest using ether_addr_equal*() Check if memcmp() is used to compare ethernet addresses and suggest using ether_addr_equal() or ether_addr_equal_unaligned() Signed-off-by: Mateusz Kulikowski Acked-by: Joe Perches Cc: David Miller Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/checkpatch.pl | 8 ++++++++ 1 file changed, 8 insertions(+) commit 06330fc40e3f3034de4934ec347604b5e36c40c3 Author: Joe Perches Date: Thu Jun 25 15:03:11 2015 -0700 checkpatch: avoid NOT_UNIFIED_DIFF errors on cover-letter.patch files Make an exception for the "Does not appear to be a unified-diff" error when scanning what appears to be git generated cover letters. Signed-off-by: Joe Perches Suggested-by: Rasmus Villemoes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/checkpatch.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f1a63678554f8f7ff0425361b0142a69c0b815df Author: Maxim Uvarov Date: Thu Jun 25 15:03:08 2015 -0700 checkpatch: remove local from codespell path local is typically used for manually installed apps. For apps installed from distro the right path is /usr/share. Signed-off-by: Maxim Uvarov Acked-by: Joe Perches Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/checkpatch.pl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 34d8815f9512b01757e08f8101730503c87b6353 Author: Joe Perches Date: Thu Jun 25 15:03:05 2015 -0700 checkpatch: add --showfile to allow input via pipe to show filenames Using "git diff | ./scripts/checkpatch -" does not have an easy mechanism to see the files and lines actually modified. Add --showfile to see the file and line specified in the diff. When --showfile is used without --terse, the second line of each message output is redundant, so it is removed. Signed-off-by: Joe Perches Cc: Petr Mladek Cc: Andy Whitcroft Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/checkpatch.pl | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) commit 57230297116faf5b0a995916d5dd5fedab54cba3 Author: Joe Perches Date: Thu Jun 25 15:03:03 2015 -0700 checkpatch: colorize output to terminal Add optional colors to make seeing message types a bit easier. Add --color command line switch, default:on Error is RED, warning is YELLOW, check is GREEN. The message type, if shown, is BLUE. Signed-off-by: Joe Perches Tested-by: Petr Mladek Cc: Andy Whitcroft Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/checkpatch.pl | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) commit d8469f16207c626d71749ada88c13db1238df39e Author: Joe Perches Date: Thu Jun 25 15:03:00 2015 -0700 checkpatch: improve output with multiple command-line files If there are multiple patches/files on the command line, use a prefix before the patch/file message output like: -------------- patch/filename -------------- to make the identifying which messages go with which file/patch a bit easier to parse. Move the perl version and false positive messages after all the files have been scanned so that they are emitted only once. Standardize the NOTE: <...> form to always emit a blank line before the NOTE and always use print << "EOM" style. Signed-off-by: Joe Perches Suggested-by: Petr Mladek Tested-by: Petr Mladek Cc: Andy Whitcroft Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/checkpatch.pl | 62 ++++++++++++++++++++++++++++++++------------------- 1 file changed, 39 insertions(+), 23 deletions(-) commit 47e0c88b37a5c3d6732f4ec896dfa8aa55868b4f Author: Joe Perches Date: Thu Jun 25 15:02:57 2015 -0700 checkpatch: categorize some long line length checks Many lines of code extend beyond the maximum line length. Some of these are possibly justified by use type. For instance: structure definitions where comments are added per member like: struct foo { type member; /* some long description */ And lines that don't fit the typical logging message style where a string constant is used like: SOME_MACRO(args, "Some long string"); Categorize these long line types so that checkpatch can use a command-line --ignore= option to avoid emitting some long line warnings. One of the existing checkpatch exclusions allowed kernel-doc argument documentation to exceed 80 columns because old versions of kernel-doc required single line documentation. The requirement was removed in 2009 so remove that exclusion. Add documentation to make the test a bit clearer. Signed-off-by: Joe Perches Cc: Julia Lawall Cc: Michael Shuey Cc: Dan Carpenter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/checkpatch.pl | 60 ++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 50 insertions(+), 10 deletions(-) commit 33acb54a4379ccd3494580bdc30af1aa13ee4aab Author: Joe Perches Date: Thu Jun 25 15:02:54 2015 -0700 checkpatch: use $String consistently String detection where a source line with a string constant is converted can either have an X or a space. Some of the string detection regexes do not allow the space character, but there is a handy $String variable that does. Convert the remaining uses of string detection regexes to use the $String variable to reduce possible false negatives. Signed-off-by: Joe Perches Cc: Andy Whitcroft Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/checkpatch.pl | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 485ff23ed2575e9d479f45227749cbbcd5df3e19 Author: Alex Dowad Date: Thu Jun 25 15:02:52 2015 -0700 checkpatch: make types found in a source file/patch local checkpatch uses various cues in its input patches and files to discover the names of user-defined types and modifiers. It then uses that information when processing expressions to discover potential style issues. Unfortunately, in rare cases, this means that checkpatch may give different results if you run it on several input files in one execution, or one by one! The reason is that it may identify a type (or something that looks like a type) in one file, and then carry this information over when processing a different file. For example, drivers/staging/media/bcm2048/radio-bcm2048.c contains this line (in a macro): size value; and drivers/staging/media/davinci_vpfe/vpfe_video.c has this line: while (size * *nbuffers > vpfe_dev->video_limit) If checkpatch processes these 2 files in a single command like: ./scripts/checkpatch.pl -f $file1 $file2 the (spurious) "size" type detected in the first file will cause it to flag the second file for improper use of the pointer dereference operator. To fix this, store types and modifiers found in a file in separate arrays from built-in ones, and reset the arrays of types and modifiers found in files at the beginning of each new source file. Signed-off-by: Alex Dowad Signed-off-by: Joe Perches Acked-by: Andy Whitcroft Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/checkpatch.pl | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) commit e6176fa4728fb6df4f66c3e9c08736c369e71f75 Author: Joe Perches Date: Thu Jun 25 15:02:49 2015 -0700 checkpatch: add --strict warning for c99 fixed size typedefs : int_t Using declarations like u_int16_t in kernel code is not preferred. Suggest the kernel sized types instead of the c99 types when not in the uapi directory. Add a $typeC99Typedefs variable for the types to check and neaten the other typedef variables. Signed-off-by: Joe Perches Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/checkpatch.pl | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) commit cb426e99ff9225e94fb56bd4c5cfcce8b78a3904 Author: Joe Perches Date: Thu Jun 25 15:02:46 2015 -0700 checkpatch: check for uncommented waitqueue_active() Linus sayeth: : Pretty much every single time people use this "if : (waitqueue_active())" model, it tends to be a bug, because it means : that there is zero serialization with people who are just about to go : to sleep. It's fundamentally racy against all the "wait_event()" loops : that carefully do memory barriers between testing conditions and going : to sleep, because the memory barriers now don't exist on the waking : side. : : So I'm making a new rule: if you use waitqueue_active(), I want an : explanation for why it's not racy with the waiter. A big comment about : the memory ordering, or about higher-level locks that are held by the : caller, or something. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/checkpatch.pl | 7 +++++++ 1 file changed, 7 insertions(+) commit cbdc281019b8c5c905ef597511471b18e0fd4a15 Author: Michal Simek Date: Thu Jun 25 15:02:43 2015 -0700 drivers/firmware/memmap.c: fix kernel-doc format Fix kernel-doc format validation to be able to use kernel-doc script for checking it. Signed-off-by: Michal Simek Reviewed-by: Yasuaki Ishimatsu Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/firmware/memmap.c | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) commit ec3904dc6537fe606b281b368639236296ee7257 Author: Rasmus Villemoes Date: Thu Jun 25 15:02:41 2015 -0700 fs/ext4/super.c: use strreplace() in ext4_fill_super() This makes a very large function a little smaller. Signed-off-by: Rasmus Villemoes Cc: "Theodore Ts'o" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ext4/super.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 81ae394bdc473cafa5074948516fc83b504ea60b Author: Rasmus Villemoes Date: Thu Jun 25 15:02:38 2015 -0700 fs/jbd2/journal.c: use strreplace() In one case, we eliminate a local variable; in the other a strlen() call and some .text. Signed-off-by: Rasmus Villemoes Cc: "Theodore Ts'o" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/jbd2/journal.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) commit 90a9befb20bd455b167b02d4018b5e882da76505 Author: Rasmus Villemoes Date: Thu Jun 25 15:02:36 2015 -0700 drivers/md/md.c: use strreplace() There's no point in starting over when we meet a '/'. This also eliminates a stack variable and a little .text. Signed-off-by: Rasmus Villemoes Acked-by: NeilBrown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/md/md.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit a29fd614a6af57610b1963e3445f1758c3806187 Author: Rasmus Villemoes Date: Thu Jun 25 15:02:33 2015 -0700 drivers/base/core.c: use strreplace() This eliminates a little .text and avoids repeating the strchr call when we meet a '!' (which will happen at least once). Signed-off-by: Rasmus Villemoes Cc: Greg Kroah-Hartman Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/base/core.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit 2abf114fc841550a3e0c63afcd31c9781116fe42 Author: Rasmus Villemoes Date: Thu Jun 25 15:02:30 2015 -0700 lib/kobject.c: use strreplace() There's probably not many slashes in the name, but starting over when we see one feels wrong. Signed-off-by: Rasmus Villemoes Cc: Greg Kroah-Hartman Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/kobject.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) commit ff14417c0a00c9a906b4ba79fbecb79bd2435207 Author: Rasmus Villemoes Date: Thu Jun 25 15:02:28 2015 -0700 kernel/trace/blktrace.c: use strreplace() in do_blk_trace_setup() Part of the disassembly of do_blk_trace_setup: 231b: e8 00 00 00 00 callq 2320 231c: R_X86_64_PC32 strlen+0xfffffffffffffffc 2320: eb 0a jmp 232c 2322: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 2328: 48 83 c3 01 add $0x1,%rbx 232c: 48 39 d8 cmp %rbx,%rax 232f: 76 47 jbe 2378 2331: 41 80 3c 1c 2f cmpb $0x2f,(%r12,%rbx,1) 2336: 75 f0 jne 2328 2338: 41 c6 04 1c 5f movb $0x5f,(%r12,%rbx,1) 233d: 4c 89 e7 mov %r12,%rdi 2340: e8 00 00 00 00 callq 2345 2341: R_X86_64_PC32 strlen+0xfffffffffffffffc 2345: eb e1 jmp 2328 Yep, that's right: gcc isn't smart enough to realize that replacing '/' by '_' cannot change the strlen(), so we call it again and again (at least when a '/' is found). Even if gcc were that smart, this construction would still loop over the string twice, once for the initial strlen() call and then the open-coded loop. Let's simply use strreplace() instead. Signed-off-by: Rasmus Villemoes Acked-by: Steven Rostedt Liked-by: Jens Axboe Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds kernel/trace/blktrace.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 1bb564718f298dfd7c435819d3bc902e6be666c6 Author: Rasmus Villemoes Date: Thu Jun 25 15:02:25 2015 -0700 kernel/trace/trace_events_filter.c: use strreplace() There's no point in starting over every time we see a ','... Signed-off-by: Rasmus Villemoes Acked-by: Steven Rostedt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds kernel/trace/trace_events_filter.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 94df290404cd0da8016698bf3f398410f29d9a64 Author: Rasmus Villemoes Date: Thu Jun 25 15:02:22 2015 -0700 lib/string.c: introduce strreplace() Strings are sometimes sanitized by replacing a certain character (often '/') by another (often '!'). In a few places, this is done the same way Schlemiel the Painter would do it. Others are slightly smarter but still do multiple strchr() calls. Introduce strreplace() to do this using a single function call and a single pass over the string. One would expect the return value to be one of three things: void, s, or the number of replacements made. I chose the fourth, returning a pointer to the end of the string. This is more likely to be useful (for example allowing the caller to avoid a strlen call). Signed-off-by: Rasmus Villemoes Cc: "Theodore Ts'o" Cc: Greg Kroah-Hartman Cc: Neil Brown Cc: Steven Rostedt Cc: Joe Perches Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/string.h | 1 + lib/string.c | 17 +++++++++++++++++ 2 files changed, 18 insertions(+) commit 9d2a8da006fcbf2dea663c095f0a0088dfbbec15 Author: Kirill A. Shutemov Date: Thu Jun 25 15:02:19 2015 -0700 radix-tree: replace preallocated node array with linked list Currently we use per-cpu array to hold pointers to preallocated nodes. Let's replace it with linked list. On x86_64 it saves 256 bytes in per-cpu ELF section which may translate into freeing up 2MB of memory for NR_CPUS==8192. [akpm@linux-foundation.org: fix comment, coding style] Signed-off-by: Kirill A. Shutemov Acked-by: Johannes Weiner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/radix-tree.c | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) commit 9cf79d115f0d161b63161650f14ff903e4c57937 Author: Sudeep Holla Date: Thu Jun 25 15:02:17 2015 -0700 bitmap: remove explicit newline handling using scnprintf format string bitmap_print_to_pagebuf uses scnprintf to copy the cpumask/list to page buffer. It handles the newline and trailing null character explicitly. It's unnecessary and also partially duplicated as scnprintf already adds trailing null character. The newline can be passed through format string to scnprintf. This patch does that simplification. However theoretically there's one behavior difference: when the buffer is too small, the original code would still output '\n' at the end while the new code(with this patch) would just continue to print the formatted string. Since this function is dealing with only page buffers, it's highly unlikely to hit that corner case. This patch will help in auditing the users of bitmap_print_to_pagebuf to verify that the buffer passed is large enough and get rid of it completely by replacing them with direct scnprintf() [akpm@linux-foundation.org: tweak comment] Signed-off-by: Sudeep Holla Suggested-by: Pawel Moll Cc: Tejun Heo Cc: "Peter Zijlstra (Intel)" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/bitmap.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) commit ca96ab859ab4b5dad1709a6a22613920d19bfbbb Author: Daniel Wagner Date: Thu Jun 25 15:02:14 2015 -0700 lib/sort: Add 64 bit swap function In case the call side is not providing a swap function, we either use a 32 bit or a generic swap function. When swapping around pointers on 64 bit architectures falling back to use the generic swap function seems like an unnecessary waste. There at least 9 users ('sort' is of difficult to grep for) of sort() and all of them use the sort function without a customized swap function. Furthermore, they are all using pointers to swap around: arch/x86/kernel/e820.c:sanitize_e820_map() arch/x86/mm/extable.c:sort_extable() drivers/acpi/fan.c:acpi_fan_get_fps() fs/btrfs/super.c:btrfs_descending_sort_devices() fs/xfs/libxfs/xfs_dir2_block.c:xfs_dir2_sf_to_block() kernel/range.c:clean_sort_range() mm/memcontrol.c:__mem_cgroup_usage_register_event() sound/pci/hda/hda_auto_parser.c:snd_hda_parse_pin_defcfg() sound/pci/hda/hda_auto_parser.c:sort_pins_by_sequence() Obviously, we could improve the swap for other sizes as well but this is overkill at this point. A simple test shows sorting a 400 element array (try to stay in one page) with either with u32_swap() or u64_swap() show that the theory actually works. This test was done on a x86_64 (Intel Xeon E5-4610) machine. - swap_32: NumSamples = 100; Min = 48.00; Max = 49.00 Mean = 48.320000; Variance = 0.217600; SD = 0.466476; Median 48.000000 each * represents a count of 1 48.0000 - 48.1000 [ 68]: ******************************************************************** 48.1000 - 48.2000 [ 0]: 48.2000 - 48.3000 [ 0]: 48.3000 - 48.4000 [ 0]: 48.4000 - 48.5000 [ 0]: 48.5000 - 48.6000 [ 0]: 48.6000 - 48.7000 [ 0]: 48.7000 - 48.8000 [ 0]: 48.8000 - 48.9000 [ 0]: 48.9000 - 49.0000 [ 32]: ******************************** - swap_64: NumSamples = 100; Min = 44.00; Max = 63.00 Mean = 48.250000; Variance = 18.687500; SD = 4.322904; Median 47.000000 each * represents a count of 1 44.0000 - 45.9000 [ 15]: *************** 45.9000 - 47.8000 [ 37]: ************************************* 47.8000 - 49.7000 [ 39]: *************************************** 49.7000 - 51.6000 [ 0]: 51.6000 - 53.5000 [ 0]: 53.5000 - 55.4000 [ 0]: 55.4000 - 57.3000 [ 0]: 57.3000 - 59.2000 [ 1]: * 59.2000 - 61.1000 [ 3]: *** 61.1000 - 63.0000 [ 5]: ***** - swap_72: NumSamples = 100; Min = 53.00; Max = 71.00 Mean = 55.070000; Variance = 21.565100; SD = 4.643824; Median 53.000000 each * represents a count of 1 53.0000 - 54.8000 [ 73]: ************************************************************************* 54.8000 - 56.6000 [ 9]: ********* 56.6000 - 58.4000 [ 9]: ********* 58.4000 - 60.2000 [ 0]: 60.2000 - 62.0000 [ 0]: 62.0000 - 63.8000 [ 0]: 63.8000 - 65.6000 [ 0]: 65.6000 - 67.4000 [ 1]: * 67.4000 - 69.2000 [ 4]: **** 69.2000 - 71.0000 [ 4]: **** - test program: static int cmp_32(const void *a, const void *b) { u32 l = *(u32 *)a; u32 r = *(u32 *)b; if (l < r) return -1; if (l > r) return 1; return 0; } static int cmp_64(const void *a, const void *b) { u64 l = *(u64 *)a; u64 r = *(u64 *)b; if (l < r) return -1; if (l > r) return 1; return 0; } static int cmp_72(const void *a, const void *b) { u32 l = get_unaligned((u32 *) a); u32 r = get_unaligned((u32 *) b); if (l < r) return -1; if (l > r) return 1; return 0; } static void init_array32(void *array) { u32 *a = array; int i; a[0] = 3821; for (i = 1; i < ARRAY_ELEMENTS; i++) a[i] = next_pseudo_random32(a[i-1]); } static void init_array64(void *array) { u64 *a = array; int i; a[0] = 3821; for (i = 1; i < ARRAY_ELEMENTS; i++) a[i] = next_pseudo_random32(a[i-1]); } static void init_array72(void *array) { char *p; u32 v; int i; v = 3821; for (i = 0; i < ARRAY_ELEMENTS; i++) { p = (char *)array + (i * 9); put_unaligned(v, (u32*) p); v = next_pseudo_random32(v); } } static void sort_test(void (*init)(void *array), int (*cmp) (const void *, const void *), void *array, size_t size) { ktime_t start, stop; int i; for (i = 0; i < 10000; i++) { init(array); local_irq_disable(); start = ktime_get(); sort(array, ARRAY_ELEMENTS, size, cmp, NULL); stop = ktime_get(); local_irq_enable(); if (i > 10000 - 101) pr_info("%lld\n", ktime_to_us(ktime_sub(stop, start))); } } static void *create_array(size_t size) { void *array; array = kmalloc(ARRAY_ELEMENTS * size, GFP_KERNEL); if (!array) return NULL; return array; } static int perform_test(size_t size) { void *array; array = create_array(size); if (!array) return -ENOMEM; pr_info("test element size %d bytes\n", (int)size); switch (size) { case 4: sort_test(init_array32, cmp_32, array, size); break; case 8: sort_test(init_array64, cmp_64, array, size); break; case 9: sort_test(init_array72, cmp_72, array, size); break; } kfree(array); return 0; } static int __init sort_tests_init(void) { int err; err = perform_test(sizeof(u32)); if (err) return err; err = perform_test(sizeof(u64)); if (err) return err; err = perform_test(sizeof(u64)+1); if (err) return err; return 0; } static void __exit sort_tests_exit(void) { } module_init(sort_tests_init); module_exit(sort_tests_exit); MODULE_LICENSE("GPL v2"); MODULE_AUTHOR("Daniel Wagner"); MODULE_DESCRIPTION("sort perfomance tests"); Signed-off-by: Daniel Wagner Cc: Rasmus Villemoes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/sort.c | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) commit 79e23d577b938d8d79282fd979f4ff3112e1f3f9 Author: Geert Uytterhoeven Date: Thu Jun 25 15:02:11 2015 -0700 hexdump: Make test data really const The test data arrays, containing pointers to test strings, are never modified, so they can be const, too. Hence mark them "const" and "__initconst". This moves 28 pointers from ".init.data" to ".init.rodata". Signed-off-by: Geert Uytterhoeven Cc: Andy Shevchenko Cc: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/test-hexdump.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 2528a8b8f457d7432552d0e2b6f0f4046bb702f4 Author: Chris Metcalf Date: Thu Jun 25 15:02:08 2015 -0700 __bitmap_parselist: fix bug in empty string handling bitmap_parselist("", &mask, nmaskbits) will erroneously set bit zero in the mask. The same bug is visible in cpumask_parselist() since it is layered on top of the bitmask code, e.g. if you boot with "isolcpus=", you will actually end up with cpu zero isolated. The bug was introduced in commit 4b060420a596 ("bitmap, irq: add smp_affinity_list interface to /proc/irq") when bitmap_parselist() was generalized to support userspace as well as kernelspace. Fixes: 4b060420a596 ("bitmap, irq: add smp_affinity_list interface to /proc/irq") Signed-off-by: Chris Metcalf Cc: Rasmus Villemoes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/bitmap.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) commit 4f973c63d158b9293f7dc16f54e119d75bc20380 Author: Andrew Morton Date: Thu Jun 25 15:02:05 2015 -0700 MAINTAINERS: Davidlohr has moved Reported-by: Rob Landley Cc: Borislav Petkov Cc: Davidlohr Bueso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds MAINTAINERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e43cdb56f33d9335c8d49a2adfed4088f0e8b189 Author: Joe Perches Date: Thu Jun 25 15:02:03 2015 -0700 MAINTAINERS: Add quotation marks around names with commas This makes it easier to copy/paste names with periods to email clients. All the other names with commas already have quotation marks. Signed-off-by: Joe Perches Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds MAINTAINERS | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 9c3646d1c6661d6411d4111f8c1ff940f9c4b4d1 Author: Joe Perches Date: Thu Jun 25 15:02:00 2015 -0700 MAINTAINERS: add quotation marks around names with periods This makes it easier to copy/paste names with periods to email clients. All the other names with periods already have quotation marks. Signed-off-by: Joe Perches Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds MAINTAINERS | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) commit e5747e4016e763fe49346e2c95aa55989d02ff21 Author: Jim Davis Date: Thu Jun 25 15:01:58 2015 -0700 MAINTAINERS: alsa-devel@alsa-project.org is moderated for non-subscribers Fix a few inconsistent annotations to show that the alsa-devel mailing list is moderated for non-subscribers. Signed-off-by: Jim Davis Cc: Joe Perches Cc: Takashi Iwai Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds MAINTAINERS | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit ce8155f7a3d59ce868ea16d8891edda4d865e873 Author: Joe Perches Date: Thu Jun 25 15:01:55 2015 -0700 get_maintainer: fix perl 5.22/5.24 deprecated/incompatible "\C" use Perl 5.22 emits a deprecated message when "\C" is used in a regex. Perl 5.24 will disallow it altogether. Fix it by using [A-Z] instead of \C. Signed-off-by: Joe Perches Reported-by: Valdis Kletnieks Tested-by: Valdis Kletnieks Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/get_maintainer.pl | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit 364f68dc996a63b7e54dd8b9624f64a76f43dd12 Author: Joe Perches Date: Thu Jun 25 15:01:52 2015 -0700 get_maintainer: emit longer section headers Section headers can be quite long and some are very long and duplicated for many initial characters. The current maximum length emitted for a section header is 20 bytes (or 17 bytes then ... when the section header length is > 20). Change that length to 50 so more of the section is shown. Example new output: $ ./scripts/get_maintainer.pl -f drivers/net/ethernet/broadcom/bnx2x/ Ariel Elior (supporter:BROADCOM BNX2X 10 GIGABIT ETHERNET DRIVER) netdev@vger.kernel.org (open list:BROADCOM BNX2X 10 GIGABIT ETHERNET DRIVER) linux-kernel@vger.kernel.org (open list) Old: $ ./scripts/get_maintainer.pl -f drivers/net/ethernet/broadcom/bnx2x/ Ariel Elior (supporter:BROADCOM BNX2X 10...) netdev@vger.kernel.org (open list:BROADCOM BNX2X 10...) linux-kernel@vger.kernel.org (open list) Signed-off-by: Joe Perches Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/get_maintainer.pl | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 435de0782b658c993350049e853ea9a8795df4e2 Author: Joe Perches Date: Thu Jun 25 15:01:50 2015 -0700 get_maintainer.pl: add .get_maintainer.ignore file capability Some people prefer not to be cc'd on patches. Add an ability to have a file (.get_maintainer.ignore) with names and email addresses that are excluded from being listed except when specifically listed as a maintainer in a section. Signed-off-by: Joe Perches Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/get_maintainer.pl | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) commit 3ea4331c60be3eee4c97e5ddabad95399f879b76 Author: Vasily Averin Date: Thu Jun 25 15:01:47 2015 -0700 check_syslog_permissions() cleanup Patch fixes drawbacks in heck_syslog_permissions() noticed by AKPM: "from_file handling makes me cry. That's not a boolean - it's an enumerated value with two values currently defined. But the code in check_syslog_permissions() treats it as a boolean and also hardwires the knowledge that SYSLOG_FROM_PROC == 1 (or == `true`). And the name is wrong: it should be called from_proc to match SYSLOG_FROM_PROC." Signed-off-by: Vasily Averin Cc: Kees Cook Cc: Josh Boyer Cc: Eric Paris Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/syslog.h | 6 +++--- kernel/printk/printk.c | 10 +++++----- 2 files changed, 8 insertions(+), 8 deletions(-) commit d194e5d666225b04c7754471df0948f645b6ab3a Author: Vasily Averin Date: Thu Jun 25 15:01:44 2015 -0700 security_syslog() should be called once only The final version of commit 637241a900cb ("kmsg: honor dmesg_restrict sysctl on /dev/kmsg") lost few hooks, as result security_syslog() are processed incorrectly: - open of /dev/kmsg checks syslog access permissions by using check_syslog_permissions() where security_syslog() is not called if dmesg_restrict is set. - syslog syscall and /proc/kmsg calls do_syslog() where security_syslog can be executed twice (inside check_syslog_permissions() and then directly in do_syslog()) With this patch security_syslog() is called once only in all syslog-related operations regardless of dmesg_restrict value. Fixes: 637241a900cb ("kmsg: honor dmesg_restrict sysctl on /dev/kmsg") Signed-off-by: Vasily Averin Cc: Kees Cook Cc: Josh Boyer Cc: Eric Paris Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds kernel/printk/printk.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) commit e2f15f9a79201ddd596727b84a85c419ee57ad5c Author: Tejun Heo Date: Thu Jun 25 15:01:41 2015 -0700 netconsole: implement extended console support printk logbuf keeps various metadata and optional key=value dictionary for structured messages, both of which are stripped when messages are handed to regular console drivers. It can be useful to have this metadata and dictionary available to netconsole consumers. This obviously makes logging via netconsole more complete and the sequence number in particular is useful in environments where messages may be lost or reordered in transit - e.g. when netconsole is used to collect messages in a large cluster where packets may have to travel congested hops to reach the aggregator. The lost and reordered messages can easily be identified and handled accordingly using the sequence numbers. printk recently added extended console support which can be selected by setting CON_EXTENDED flag. From console driver side, not much changes. The only difference is that the text passed to the write callback is formatted the same way as /dev/kmsg. This patch implements extended console support for netconsole which can be enabled by either prepending "+" to a netconsole boot param entry or echoing 1 to "extended" file in configfs. When enabled, netconsole transmits extended log messages with headers identical to /dev/kmsg output. There's one complication due to message fragments. netconsole limits the maximum message size to 1k and messages longer than that are split into multiple fragments. As all extended console messages should carry matching headers and be uniquely identifiable, each extended message fragment carries full copy of the metadata and an extra header field to identify the specific fragment. The optional header is of the form "ncfrag=OFF/LEN" where OFF is the byte offset into the message body and LEN is the total length. To avoid unnecessarily making printk format extended messages, Extended netconsole is registered with printk when the first extended netconsole is configured. Signed-off-by: Tejun Heo Cc: David Miller Cc: Kay Sievers Cc: Petr Mladek Cc: Tetsuo Handa Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Documentation/networking/netconsole.txt | 35 +++++++- drivers/net/netconsole.c | 141 +++++++++++++++++++++++++++++++- 2 files changed, 173 insertions(+), 3 deletions(-) commit 369e5a888179f31dcd7cc8e02d695e6481a66075 Author: Tejun Heo Date: Thu Jun 25 15:01:38 2015 -0700 netconsole: make all dynamic netconsoles share a mutex Currently, each dynamic netconsole_target uses its own separate mutex to synchronize the configuration operations. This patch replaces the per-netconsole_target mutexes with a single mutex - dynamic_netconsole_mutex. The reduced granularity doesn't hurt anything, the code is minutely simpler and this'd allow adding operations which should be synchronized across all dynamic netconsoles. Signed-off-by: Tejun Heo Cc: David Miller Cc: Kay Sievers Cc: Petr Mladek Cc: Tetsuo Handa Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/net/netconsole.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit 698cf1c6163a2f2752d2d3e511a26c688f5778f3 Author: Tejun Heo Date: Thu Jun 25 15:01:36 2015 -0700 netconsole: make netconsole_target->enabled a bool netconsole uses both bool and int for boolean values. Let's convert nt->enabled to bool for consistency. Signed-off-by: Tejun Heo Cc: David Miller Cc: Kay Sievers Cc: Petr Mladek Cc: Tetsuo Handa Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/net/netconsole.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit a6d403ac96893cb5c5812c2d75de082795f02e5f Author: Tejun Heo Date: Thu Jun 25 15:01:33 2015 -0700 netconsole: remove unnecessary netconsole_target_get/out() from write_msg() write_msg() grabs target_list_lock and walks target_list invoking netpool_send_udp() on each target. Curiously, it protects each iteration with netconsole_target_get/put() even though it never releases target_list_lock which protects all the members. While this doesn't harm anything, it doesn't serve any purpose either. The items on the list can't go away while target_list_lock is held. Remove the unnecessary get/put pair. Signed-off-by: Tejun Heo Cc: David Miller Cc: Kay Sievers Cc: Petr Mladek Cc: Tetsuo Handa Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/net/netconsole.c | 2 -- 1 file changed, 2 deletions(-) commit 6fe29354befe4c46eb308b662155d4d8017358e1 Author: Tejun Heo Date: Thu Jun 25 15:01:30 2015 -0700 printk: implement support for extended console drivers printk log_buf keeps various metadata for each message including its sequence number and timestamp. The metadata is currently available only through /dev/kmsg and stripped out before passed onto console drivers. We want this metadata to be available to console drivers too so that console consumers can get full information including the metadata and dictionary, which among other things can be used to detect whether messages got lost in transit. This patch implements support for extended console drivers. Consoles can indicate that they want extended messages by setting the new CON_EXTENDED flag and they'll be fed messages formatted the same way as /dev/kmsg. ",,,;\n" If extended consoles exist, in-kernel fragment assembly is disabled. This ensures that all messages emitted to consoles have full metadata including sequence number. The contflag carries enough information to reassemble the fragments from the reader side trivially. Note that this only affects /dev/kmsg. Regular console and /proc/kmsg outputs are not affected by this change. * Extended message formatting for console drivers is enabled iff there are registered extended consoles. * Comment describing /dev/kmsg message format updated to add missing contflag field and help distinguishing variable from verbatim terms. Signed-off-by: Tejun Heo Cc: David Miller Cc: Kay Sievers Reviewed-by: Petr Mladek Cc: Tetsuo Handa Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Documentation/ABI/testing/dev-kmsg | 9 ++++++ include/linux/console.h | 1 + kernel/printk/printk.c | 66 +++++++++++++++++++++++++++++++++----- 3 files changed, 68 insertions(+), 8 deletions(-) commit 0a295e67ec19d59bdb146e0b60ac9659104f2215 Author: Tejun Heo Date: Thu Jun 25 15:01:27 2015 -0700 printk: factor out message formatting from devkmsg_read() The extended message formatting used for /dev/kmsg will be used implement extended consoles. Factor out msg_print_ext_header() and msg_print_ext_body() from devkmsg_read(). This is pure restructuring. Signed-off-by: Tejun Heo Cc: David Miller Cc: Kay Sievers Reviewed-by: Petr Mladek Cc: Tetsuo Handa Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds kernel/printk/printk.c | 146 +++++++++++++++++++++++++++---------------------- 1 file changed, 80 insertions(+), 66 deletions(-) commit d43ff430f434d862db59582c0f1f02382a678036 Author: Tejun Heo Date: Thu Jun 25 15:01:24 2015 -0700 printk: guard the amount written per line by devkmsg_read() This patchset updates netconsole so that it can emit messages with the same header as used in /dev/kmsg which gives neconsole receiver full log information which enables things like structured logging and detection of lost messages. This patch (of 7): devkmsg_read() uses 8k buffer and assumes that the formatted output message won't overrun which seems safe given LOG_LINE_MAX, the current use of dict and the escaping method being used; however, we're planning to use devkmsg formatting wider and accounting for the buffer size properly isn't that complicated. This patch defines CONSOLE_EXT_LOG_MAX as 8192 and updates devkmsg_read() so that it limits output accordingly. Signed-off-by: Tejun Heo Cc: David Miller Cc: Kay Sievers Reviewed-by: Petr Mladek Cc: Tetsuo Handa Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/printk.h | 2 ++ kernel/printk/printk.c | 34 ++++++++++++++++++++++------------ 2 files changed, 24 insertions(+), 12 deletions(-) commit 4ae555a5313a302d36e34b3273545e4088c37cce Author: Colin Ian King Date: Thu Jun 25 15:01:22 2015 -0700 drivers/misc/altera-stapl/altera.c: remove extraneous KERN_INFO prefix The KERN_INFO prefix is being prepended to KERN_DEBUG when using the dprink macro, Remove it as it is extraneous since we are printing the message out as debug via dprintk(). Fixes smatch warning: drivers/misc/altera-stapl/altera.c:2454 altera_init() warn: KERN_* level not at start of string Signed-off-by: Colin Ian King Cc: Rasmus Villemoes Cc: Igor M. Liplianin Cc: Mauro Carvalho Chehab Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/misc/altera-stapl/altera.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3033f14ab78c326871a4902591c2518410add24a Author: Josh Triplett Date: Thu Jun 25 15:01:19 2015 -0700 clone: support passing tls argument via C rather than pt_regs magic clone has some of the quirkiest syscall handling in the kernel, with a pile of special cases, historical curiosities, and architecture-specific calling conventions. In particular, clone with CLONE_SETTLS accepts a parameter "tls" that the C entry point completely ignores and some assembly entry points overwrite; instead, the low-level arch-specific code pulls the tls parameter out of the arch-specific register captured as part of pt_regs on entry to the kernel. That's a massive hack, and it makes the arch-specific code only work when called via the specific existing syscall entry points; because of this hack, any new clone-like system call would have to accept an identical tls argument in exactly the same arch-specific position, rather than providing a unified system call entry point across architectures. The first patch allows architectures to handle the tls argument via normal C parameter passing, if they opt in by selecting HAVE_COPY_THREAD_TLS. The second patch makes 32-bit and 64-bit x86 opt into this. These two patches came out of the clone4 series, which isn't ready for this merge window, but these first two cleanup patches were entirely uncontroversial and have acks. I'd like to go ahead and submit these two so that other architectures can begin building on top of this and opting into HAVE_COPY_THREAD_TLS. However, I'm also happy to wait and send these through the next merge window (along with v3 of clone4) if anyone would prefer that. This patch (of 2): clone with CLONE_SETTLS accepts an argument to set the thread-local storage area for the new thread. sys_clone declares an int argument tls_val in the appropriate point in the argument list (based on the various CLONE_BACKWARDS variants), but doesn't actually use or pass along that argument. Instead, sys_clone calls do_fork, which calls copy_process, which calls the arch-specific copy_thread, and copy_thread pulls the corresponding syscall argument out of the pt_regs captured at kernel entry (knowing what argument of clone that architecture passes tls in). Apart from being awful and inscrutable, that also only works because only one code path into copy_thread can pass the CLONE_SETTLS flag, and that code path comes from sys_clone with its architecture-specific argument-passing order. This prevents introducing a new version of the clone system call without propagating the same architecture-specific position of the tls argument. However, there's no reason to pull the argument out of pt_regs when sys_clone could just pass it down via C function call arguments. Introduce a new CONFIG_HAVE_COPY_THREAD_TLS for architectures to opt into, and a new copy_thread_tls that accepts the tls parameter as an additional unsigned long (syscall-argument-sized) argument. Change sys_clone's tls argument to an unsigned long (which does not change the ABI), and pass that down to copy_thread_tls. Architectures that don't opt into copy_thread_tls will continue to ignore the C argument to sys_clone in favor of the pt_regs captured at kernel entry, and thus will be unable to introduce new versions of the clone syscall. Patch co-authored by Josh Triplett and Thiago Macieira. Signed-off-by: Josh Triplett Acked-by: Andy Lutomirski Cc: Ingo Molnar Cc: "H. Peter Anvin" Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Thiago Macieira Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/Kconfig | 7 ++++++ arch/s390/kernel/compat_wrapper.c | 2 +- drivers/misc/kgdbts.c | 2 +- include/linux/sched.h | 15 ++++++++++++ include/linux/syscalls.h | 6 ++--- kernel/fork.c | 48 ++++++++++++++++++++++++++------------- 6 files changed, 59 insertions(+), 21 deletions(-) commit 8c7fbe5795a016259445a61e072eb0118aaf6a61 Author: Joe Perches Date: Thu Jun 25 15:01:16 2015 -0700 stddef.h: move offsetofend inside #ifndef/#endif guard, neaten Commit 3876488444e7 ("include/stddef.h: Move offsetofend() from vfio.h to a generic kernel header") added offsetofend outside the normal include #ifndef/#endif guard. Move it inside. Miscellanea: o remove unnecessary blank line o standardize offsetof macros whitespace style Signed-off-by: Joe Perches Cc: Denys Vlasenko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/stddef.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 4d5b367ca45e91fe33d0608666733a1cce5a8f5d Author: Kees Cook Date: Thu Jun 25 15:01:13 2015 -0700 mailmap: add rdunlap email auto-correction To avoid having xenotime bounce when things like get_maintainers gives me addresses, add Randy's current address. Signed-off-by: Kees Cook Acked-by: Randy Dunlap Cc: Joe Perches Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds .mailmap | 1 + 1 file changed, 1 insertion(+) commit 9c5dcdd0c71b819bf8e5b50a17d1ea89fe68e4d7 Author: Pratyush Anand Date: Thu Jun 25 15:01:11 2015 -0700 Mohit Kumar has moved Mohit's email-id doesn't exist anymore as he has left the company. Replace ST's id with mohit.kumar.dhaka@gmail.com. Signed-off-by: Pratyush Anand Cc: Mohit Kumar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds .mailmap | 1 + drivers/pci/host/pcie-spear13xx.c | 2 +- drivers/phy/phy-spear1310-miphy.c | 2 +- drivers/phy/phy-spear1340-miphy.c | 2 +- 4 files changed, 4 insertions(+), 3 deletions(-) commit e34cadde3be793f179107228243242ccabdbb57c Author: Pratyush Anand Date: Thu Jun 25 15:01:08 2015 -0700 Pratyush Anand has moved pratyush.anand@st.com email-id doesn't exist anymore as I have left the company. Replace ST's id with pratyush.anand@gmail.com. Signed-off-by: Pratyush Anand Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds .mailmap | 1 + Documentation/ABI/testing/configfs-spear-pcie-gadget | 2 +- Documentation/ABI/testing/sysfs-bus-usb-lvstest | 12 ++++++------ Documentation/misc-devices/spear-pcie-gadget.txt | 2 +- drivers/misc/spear13xx_pcie_gadget.c | 2 +- drivers/pci/host/pcie-spear13xx.c | 4 ++-- drivers/phy/phy-spear1310-miphy.c | 4 ++-- drivers/phy/phy-spear1340-miphy.c | 4 ++-- drivers/usb/misc/lvstest.c | 2 +- 9 files changed, 17 insertions(+), 16 deletions(-) commit b86a50c3b5414eafdbee7f34af4a201a4a7817c2 Author: Daniel Borkmann Date: Thu Jun 25 15:01:05 2015 -0700 compiler-intel: fix wrong compiler barrier() macro Cleanup commit 73679e508201 ("compiler-intel.h: Remove duplicate definition") removed the double definition of __memory_barrier() intrinsics. However, in doing so, it also removed the preceding #undef barrier by accident, meaning, the actual barrier() macro from compiler-gcc.h with inline asm is still in place as __GNUC__ is provided. Subsequently, barrier() can never be defined as __memory_barrier() from compiler.h since it already has a definition in place and if we trust the comment in compiler-intel.h, ecc doesn't support gcc specific asm statements. I don't have an ecc at hand (unsure if that's still used in the field?) and only found this by accident during code review, a revert of that cleanup would be simplest option. Fixes: 73679e508201 ("compiler-intel.h: Remove duplicate definition") Signed-off-by: Daniel Borkmann Reviewed-by: Pranith Kumar Cc: Pranith Kumar Cc: H. Peter Anvin Cc: mancha security Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/compiler-intel.h | 2 ++ 1 file changed, 2 insertions(+) commit cb984d101b30eb7478d32df56a0023e4603cba7f Author: Joe Perches Date: Thu Jun 25 15:01:02 2015 -0700 compiler-gcc: integrate the various compiler-gcc[345].h files As gcc major version numbers are going to advance rather rapidly in the future, there's no real value in separate files for each compiler version. Deduplicate some of the macros #defined in each file too. Neaten comments using normal kernel commenting style. Signed-off-by: Joe Perches Cc: Andi Kleen Cc: Michal Marek Cc: Segher Boessenkool Cc: Sasha Levin Cc: Anton Blanchard Cc: Alan Modra Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/compiler-gcc.h | 120 ++++++++++++++++++++++++++++++++++++++++-- include/linux/compiler-gcc3.h | 23 -------- include/linux/compiler-gcc4.h | 91 -------------------------------- include/linux/compiler-gcc5.h | 67 ----------------------- 4 files changed, 116 insertions(+), 185 deletions(-) commit f6d133f877c8bb0a0934dc8c521c758ee771e901 Author: Joe Perches Date: Thu Jun 25 15:01:00 2015 -0700 compiler-gcc.h: neatening - Move the inline and noinline blocks together - Comment neatening - Alignment of __attribute__ uses - Consistent naming of __must_be_array macro argument - Multiline macro neatening Signed-off-by: Joe Perches Cc: Andi Kleen Cc: Michal Marek Cc: Segher Boessenkool Cc: Sasha Levin Cc: Anton Blanchard Cc: Alan Modra Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/compiler-gcc.h | 85 +++++++++++++++++++++++--------------------- 1 file changed, 45 insertions(+), 40 deletions(-) commit 2e13ba54a2682eea24918b87ad3edf70c2cf085b Author: Iago López Galeiras Date: Thu Jun 25 15:00:57 2015 -0700 fs, proc: introduce CONFIG_PROC_CHILDREN Commit 818411616baf ("fs, proc: introduce /proc//task//children entry") introduced the children entry for checkpoint restore and the file is only available on kernels configured with CONFIG_EXPERT and CONFIG_CHECKPOINT_RESTORE. This is available in most distributions (Fedora, Debian, Ubuntu, CoreOS) because they usually enable CONFIG_EXPERT and CONFIG_CHECKPOINT_RESTORE. But Arch does not enable CONFIG_EXPERT or CONFIG_CHECKPOINT_RESTORE. However, the children proc file is useful outside of checkpoint restore. I would like to use it in rkt. The rkt process exec() another program it does not control, and that other program will fork()+exec() a child process. I would like to find the pid of the child process from an external tool without iterating in /proc over all processes to find which one has a parent pid equal to rkt. This commit introduces CONFIG_PROC_CHILDREN and makes CONFIG_CHECKPOINT_RESTORE select it. This allows enabling /proc//task//children without needing to enable CONFIG_CHECKPOINT_RESTORE and CONFIG_EXPERT. Alban tested that /proc//task//children is present when the kernel is configured with CONFIG_PROC_CHILDREN=y but without CONFIG_CHECKPOINT_RESTORE Signed-off-by: Iago López Galeiras Tested-by: Alban Crequy Reviewed-by: Cyrill Gorcunov Cc: Oleg Nesterov Cc: Kees Cook Cc: Pavel Emelyanov Cc: Serge Hallyn Cc: KAMEZAWA Hiroyuki Cc: Alexander Viro Cc: Andy Lutomirski Cc: Djalal Harouni Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/proc/Kconfig | 4 ++++ fs/proc/array.c | 4 ++-- fs/proc/base.c | 2 +- init/Kconfig | 1 + 4 files changed, 8 insertions(+), 3 deletions(-) commit c2c0bb44620dece7ec97e28167e32c343da22867 Author: Alexey Dobriyan Date: Thu Jun 25 15:00:54 2015 -0700 proc: fix PAGE_SIZE limit of /proc/$PID/cmdline /proc/$PID/cmdline truncates output at PAGE_SIZE. It is easy to see with $ cat /proc/self/cmdline $(seq 1037) 2>/dev/null However, command line size was never limited to PAGE_SIZE but to 128 KB and relatively recently limitation was removed altogether. People noticed and ask questions: http://stackoverflow.com/questions/199130/how-do-i-increase-the-proc-pid-cmdline-4096-byte-limit seq file interface is not OK, because it kmalloc's for whole output and open + read(, 1) + sleep will pin arbitrary amounts of kernel memory. To not do that, limit must be imposed which is incompatible with arbitrary sized command lines. I apologize for hairy code, but this it direct consequence of command line layout in memory and hacks to support things like "init [3]". The loops are "unrolled" otherwise it is either macros which hide control flow or functions with 7-8 arguments with equal line count. There should be real setproctitle(2) or something. [akpm@linux-foundation.org: fix a billion min() warnings] Signed-off-by: Alexey Dobriyan Tested-by: Jarod Wilson Acked-by: Jarod Wilson Cc: Cyrill Gorcunov Cc: Jan Stancek Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/proc/base.c | 205 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 196 insertions(+), 9 deletions(-) commit 4a00e9df293d010acbea118b9521e08cb85016c6 Author: Alexey Dobriyan Date: Thu Jun 25 15:00:51 2015 -0700 prctl: more prctl(PR_SET_MM_*) checks Individual prctl(PR_SET_MM_*) calls do some checking to maintain a consistent view of mm->arg_start et al fields, but not enough. In particular PR_SET_MM_ARG_START/PR_SET_MM_ARG_END/ R_SET_MM_ENV_START/ PR_SET_MM_ENV_END only check that the address lies in an existing VMA, but don't check that the start address is lower than the end address _at all_. Consolidate all consistency checks, so there will be no difference in the future between PR_SET_MM_MAP and individual PR_SET_MM_* calls. The program below makes both ARGV and ENVP areas be reversed. It makes /proc/$PID/cmdline show garbage (it doesn't oops by luck). #include #include #include enum {PAGE_SIZE=4096}; int main(void) { void *p; p = mmap(NULL, PAGE_SIZE, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0); #define PR_SET_MM 35 #define PR_SET_MM_ARG_START 8 #define PR_SET_MM_ARG_END 9 #define PR_SET_MM_ENV_START 10 #define PR_SET_MM_ENV_END 11 prctl(PR_SET_MM, PR_SET_MM_ARG_START, (unsigned long)p + PAGE_SIZE - 1, 0, 0); prctl(PR_SET_MM, PR_SET_MM_ARG_END, (unsigned long)p, 0, 0); prctl(PR_SET_MM, PR_SET_MM_ENV_START, (unsigned long)p + PAGE_SIZE - 1, 0, 0); prctl(PR_SET_MM, PR_SET_MM_ENV_END, (unsigned long)p, 0, 0); pause(); return 0; } [akpm@linux-foundation.org: tidy code, tweak comment] Signed-off-by: Alexey Dobriyan Acked-by: Cyrill Gorcunov Cc: Jarod Wilson Cc: Jan Stancek Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds kernel/sys.c | 158 ++++++++++++++++++++++++++++++++++------------------------- 1 file changed, 91 insertions(+), 67 deletions(-) commit 20342f1db5f4ee7ec916dfe248340c78d65a3230 Author: Akinobu Mita Date: Thu Jun 25 15:00:48 2015 -0700 avr32: use for_each_sg() This replaces the plain loop over the sglist array with for_each_sg() macro which consists of sg_next() function calls. Since avr32 doesn't select ARCH_HAS_SG_CHAIN, it is not necessary to use for_each_sg() in order to loop over each sg element. But this can help find problems with drivers that do not properly initialize their sg tables when CONFIG_DEBUG_SG is enabled. Signed-off-by: Akinobu Mita Cc: Haavard Skinnemoen Acked-by: Hans-Christian Egtvedt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/avr32/include/asm/dma-mapping.h | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) commit 0989e1f98e3ae30deebf732d0861ca47bb55e25b Author: Akinobu Mita Date: Thu Jun 25 15:00:46 2015 -0700 frv: use for_each_sg() This replaces the plain loop over the sglist array with for_each_sg() macro which consists of sg_next() function calls. Since frv doesn't select ARCH_HAS_SG_CHAIN, it is not necessary to use for_each_sg() in order to loop over each sg element. But this can help find problems with drivers that do not properly initialize their sg tables when CONFIG_DEBUG_SG is enabled. Signed-off-by: Akinobu Mita Cc: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/frv/mb93090-mb00/pci-dma-nommu.c | 10 ++++++---- arch/frv/mb93090-mb00/pci-dma.c | 7 ++++--- 2 files changed, 10 insertions(+), 7 deletions(-) commit 3fe111fc64018747fbc9c0c39c110c165b43cf10 Author: Tobias Klauser Date: Thu Jun 25 15:00:43 2015 -0700 frv: remove unused inline function is_in_rom() The function is not used anywhere in the tree (anymore) and this is the last remaining instance, so remove it. Signed-off-by: Tobias Klauser Cc: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/frv/include/asm/sections.h | 6 ------ 1 file changed, 6 deletions(-) commit 479305fd7172503772575997eb6f1b0a2bb4a107 Author: Dan Streetman Date: Thu Jun 25 15:00:40 2015 -0700 zpool: remove zpool_evict() Remove zpool_evict() helper function. As zbud is currently the only zpool implementation that supports eviction, add zpool and zpool_ops references to struct zbud_pool and directly call zpool_ops->evict(zpool, handle) on eviction. Currently zpool provides the zpool_evict helper which locks the zpool list lock and searches through all pools to find the specific one matching the caller, and call the corresponding zpool_ops->evict function. However, this is unnecessary, as the zbud pool can simply keep a reference to the zpool that created it, as well as the zpool_ops, and directly call the zpool_ops->evict function, when it needs to evict a page. This avoids a spinlock and list search in zpool for each eviction. Signed-off-by: Dan Streetman Cc: Seth Jennings Cc: Minchan Kim Cc: Nitin Gupta Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/zpool.h | 5 ++--- mm/zbud.c | 23 +++++++++++++++++++---- mm/zpool.c | 29 +---------------------------- mm/zsmalloc.c | 3 ++- 4 files changed, 24 insertions(+), 36 deletions(-) commit cf41f5f496d68f2ced1fc77871c63d1c526fa100 Author: Dan Streetman Date: Thu Jun 25 15:00:37 2015 -0700 zpool: change pr_info to pr_debug Change the pr_info() calls to pr_debug(). There's no need for the extra verbosity in the log. Also change the msg formats to be consistent. Signed-off-by: Dan Streetman Cc: Kees Cook Cc: Minchan Kim Cc: Ganesh Mahendran Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/zpool.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit c00ed16a9eb98a7fc076e227bdd95c1451ca1e6e Author: Dan Streetman Date: Thu Jun 25 15:00:35 2015 -0700 zswap: runtime enable/disable Change the "enabled" parameter to be configurable at runtime. Remove the enabled check from init(), and move it to the frontswap store() function; when enabled, pages will be stored, and when disabled, pages won't be stored. This is almost identical to Seth's patch from 2 years ago: http://lkml.iu.edu/hypermail/linux/kernel/1307.2/04289.html [akpm@linux-foundation.org: tweak documentation] Signed-off-by: Dan Streetman Suggested-by: Seth Jennings Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Documentation/vm/zswap.txt | 18 ++++++++++++++++-- mm/zswap.c | 12 +++++------- 2 files changed, 21 insertions(+), 9 deletions(-) commit d93435c3fba4a47b773693b0c8992470d38510d5 Author: Sergey Senozhatsky Date: Thu Jun 25 15:00:32 2015 -0700 zram: check comp algorithm availability earlier Improvement idea by Marcin Jabrzyk. comp_algorithm_store() silently accepts any supplied algorithm name, because zram performs algorithm availability check later, during the device configuration phase in disksize_store() and emits the following error: "zram: Cannot initialise %s compressing backend" this error line is somewhat generic and, besides, can indicate a failed attempt to allocate compression backend's working buffers. add algorithm availability check to comp_algorithm_store(): echo lzz > /sys/block/zram0/comp_algorithm -bash: echo: write error: Invalid argument Signed-off-by: Sergey Senozhatsky Reported-by: Marcin Jabrzyk Acked-by: Minchan Kim Cc: Nitin Gupta Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/block/zram/zcomp.c | 5 +++++ drivers/block/zram/zcomp.h | 1 + drivers/block/zram/zram_drv.c | 3 +++ 3 files changed, 9 insertions(+) commit 4bbacd51a683e45c13f7d6df6f85cb7391590311 Author: Sergey Senozhatsky Date: Thu Jun 25 15:00:29 2015 -0700 zram: cut trailing newline in algorithm name Supplied sysfs values sometimes contain new-line symbols (echo vs. echo -n), which we also copy as a compression algorithm name. it works fine when we lookup for compression algorithm, because we use sysfs_streq() which takes care of new line symbols. however, it doesn't look nice when we print compression algorithm name if zcomp_create() failed: zram: Cannot initialise LXZ compressing backend cut trailing new-line, so the error string will look like zram: Cannot initialise LXZ compressing backend we also now can replace sysfs_streq() in zcomp_available_show() with strcmp(). Signed-off-by: Sergey Senozhatsky Cc: Minchan Kim Cc: Nitin Gupta Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/block/zram/zcomp.c | 2 +- drivers/block/zram/zram_drv.c | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) commit 17162f41f04a3ba5a6b887a8e8e7f78159fa4a70 Author: Sergey Senozhatsky Date: Thu Jun 25 15:00:27 2015 -0700 zram: cosmetic zram_bvec_write() cleanup `bool locked' local variable tells us if we should perform zcomp_strm_release() or not (jumped to `out' label before zcomp_strm_find() occurred), which is equivalent to `zstrm' being or not being NULL. remove `locked' and check `zstrm' instead. Signed-off-by: Sergey Senozhatsky Acked-by: Minchan Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/block/zram/zram_drv.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit 6566d1a32bf725a4fa9119f16270505451ad01ac Author: Sergey Senozhatsky Date: Thu Jun 25 15:00:24 2015 -0700 zram: add dynamic device add/remove functionality We currently don't support on-demand device creation. The one and only way to have N zram devices is to specify num_devices module parameter (default value: 1). IOW if, for some reason, at some point, user wants to have N + 1 devies he/she must umount all the existing devices, unload the module, load the module passing num_devices equals to N + 1. And do this again, if needed. This patch introduces zram control sysfs class, which has two sysfs attrs: - hot_add -- add a new zram device - hot_remove -- remove a specific (device_id) zram device hot_add sysfs attr is read-only and has only automatic device id assignment mode (as requested by Minchan Kim). read operation performed on this attr creates a new zram device and returns back its device_id or error status. Usage example: # add a new specific zram device cat /sys/class/zram-control/hot_add 2 # remove a specific zram device echo 4 > /sys/class/zram-control/hot_remove Returning zram_add() error code back to user (-ENOMEM in this case) cat /sys/class/zram-control/hot_add cat: /sys/class/zram-control/hot_add: Cannot allocate memory NOTE, there might be users who already depend on the fact that at least zram0 device gets always created by zram_init(). Preserve this behavior. [minchan@kernel.org: use zram->claim to avoid lockdep splat] Signed-off-by: Sergey Senozhatsky Cc: Minchan Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Documentation/ABI/testing/sysfs-class-zram | 24 +++++++ Documentation/blockdev/zram.txt | 23 ++++++- drivers/block/zram/zram_drv.c | 100 ++++++++++++++++++++++++++++- 3 files changed, 141 insertions(+), 6 deletions(-) commit f405c445a4866caa43101c231721123805a23bbf Author: Sergey Senozhatsky Date: Thu Jun 25 15:00:21 2015 -0700 zram: close race by open overriding [ Original patch from Minchan Kim ] Commit ba6b17d68c8e ("zram: fix umount-reset_store-mount race condition") introduced bdev->bd_mutex to protect a race between mount and reset. At that time, we don't have dynamic zram-add/remove feature so it was okay. However, as we introduce dynamic device feature, bd_mutex became trouble. CPU 0 echo 1 > /sys/block/zram/reset -> kernfs->s_active(A) -> zram:reset_store->bd_mutex(B) CPU 1 echo > /sys/class/zram/zram-remove ->zram:zram_remove: bd_mutex(B) -> sysfs_remove_group -> kernfs->s_active(A) IOW, AB -> BA deadlock The reason we are holding bd_mutex for zram_remove is to prevent any incoming open /dev/zram[0-9]. Otherwise, we could remove zram others already have opened. But it causes above deadlock problem. To fix the problem, this patch overrides block_device.open and it returns -EBUSY if zram asserts he claims zram to reset so any incoming open will be failed so we don't need to hold bd_mutex for zram_remove ayn more. This patch is to prepare for zram-add/remove feature. [sergey.senozhatsky@gmail.com: simplify reset_store()] Signed-off-by: Minchan Kim Acked-by: Sergey Senozhatsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/block/zram/zram_drv.c | 53 +++++++++++++++++++++++++++---------------- drivers/block/zram/zram_drv.h | 4 ++++ 2 files changed, 38 insertions(+), 19 deletions(-) commit 92ff15288747b80730f0132e9c98403370c27b34 Author: Sergey Senozhatsky Date: Thu Jun 25 15:00:19 2015 -0700 zram: return zram device_id from zram_add() This patch prepares zram to enable on-demand device creation. zram_add() performs automatic device_id assignment and returns new device id (>= 0) or error code (< 0). Signed-off-by: Sergey Senozhatsky Acked-by: Minchan Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/block/zram/zram_drv.c | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) commit b31177f2a9d5b2cfb1da7a06a4a98273b40975a8 Author: Sergey Senozhatsky Date: Thu Jun 25 15:00:16 2015 -0700 zram: trivial: correct flag operations comment We don't have meta->tb_lock anymore and use meta table entry bit_spin_lock instead. update corresponding comment. Signed-off-by: Sergey Senozhatsky Acked-by: Minchan Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/block/zram/zram_drv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d12b63c927e0e90de4b55d5084f947707c6d8cf4 Author: Sergey Senozhatsky Date: Thu Jun 25 15:00:14 2015 -0700 zram: report every added and removed device With dynamic device creation/removal (which will be introduced later in the series) printing num_devices in zram_init() will not make a lot of sense, as well as printing the number of destroyed devices in destroy_devices(). Print per-device action (added/removed) in zram_add() and zram_remove() instead. Example: [ 3645.259652] zram: Added device: zram5 [ 3646.152074] zram: Added device: zram6 [ 3650.585012] zram: Removed device: zram5 [ 3655.845584] zram: Added device: zram8 [ 3660.975223] zram: Removed device: zram6 Signed-off-by: Sergey Senozhatsky Acked-by: Minchan Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/block/zram/zram_drv.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit c3cdb40e66344553898daa3ccd068c03173a3f42 Author: Sergey Senozhatsky Date: Thu Jun 25 15:00:11 2015 -0700 zram: remove max_num_devices limitation Limiting the number of zram devices to 32 (default max_num_devices value) is confusing, let's drop it. A user with 2TB or 4TB of RAM, for example, can request as many devices as he can handle. Signed-off-by: Sergey Senozhatsky Acked-by: Minchan Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Documentation/blockdev/zram.txt | 4 +++- drivers/block/zram/zram_drv.c | 8 +------- drivers/block/zram/zram_drv.h | 6 ------ 3 files changed, 4 insertions(+), 14 deletions(-) commit 522698d7cadb5d208429c934f673713b7a42e925 Author: Sergey Senozhatsky Date: Thu Jun 25 15:00:08 2015 -0700 zram: reorganize code layout This patch looks big, but basically it just moves code blocks. No functional changes. Our current code layout looks like a sandwitch. For example, a) between read/write handlers, we have update_used_max() helper function: static int zram_decompress_page static int zram_bvec_read static inline void update_used_max static int zram_bvec_write static int zram_bvec_rw b) RW request handlers __zram_make_request/zram_bio_discard are divided by sysfs attr reset_store() function and corresponding zram_reset_device() handler: static void zram_bio_discard static void zram_reset_device static ssize_t disksize_store static ssize_t reset_store static void __zram_make_request c) we first a bunch of sysfs read/store functions. then a number of one-liners, then helper functions, RW functions, sysfs functions, helper functions again, and so on. Reorganize layout to be more logically grouped (a brief description, `cat zram_drv.c | grep static` gives a bigger picture): -- one-liners: zram_test_flag/etc. -- helpers: is_partial_io/update_position/etc -- sysfs attr show/store functions + ZRAM_ATTR_RO() generated stats show() functions exception: reset and disksize store functions are required to be after meta() functions. because we do device create/destroy actions in these sysfs handlers. -- "mm" functions: meta get/put, meta alloc/free, page free static inline bool zram_meta_get static inline void zram_meta_put static void zram_meta_free static struct zram_meta *zram_meta_alloc static void zram_free_page -- a block of I/O functions static int zram_decompress_page static int zram_bvec_read static int zram_bvec_write static void zram_bio_discard static int zram_bvec_rw static void __zram_make_request static void zram_make_request static void zram_slot_free_notify static int zram_rw_page -- device contol: add/remove/init/reset functions (+zram-control class will sit here) static int zram_reset_device static ssize_t reset_store static ssize_t disksize_store static int zram_add static void zram_remove static int __init zram_init static void __exit zram_exit Signed-off-by: Sergey Senozhatsky Acked-by: Minchan Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/block/zram/zram_drv.c | 737 +++++++++++++++++++++--------------------- 1 file changed, 368 insertions(+), 369 deletions(-) commit 85508ec6cbc21645927b6ac05e3b2748119a3e23 Author: Sergey Senozhatsky Date: Thu Jun 25 15:00:06 2015 -0700 zram: use idr instead of `zram_devices' array This patch makes some preparations for on-demand device add/remove functionality. Remove `zram_devices' array and switch to id-to-pointer translation (idr). idr doesn't bloat zram struct with additional members, f.e. list_head, yet still provides ability to match the device_id with the device pointer. No user-space visible changes. [Julia.Lawall@lip6.fr: return -ENOMEM when `queue' alloc fails] Signed-off-by: Sergey Senozhatsky Reported-by: Julia Lawall Acked-by: Minchan Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/block/zram/zram_drv.c | 86 ++++++++++++++++++++++++------------------- 1 file changed, 49 insertions(+), 37 deletions(-) commit 3bca3ef7694166b86c91b515818cc5acecd357a7 Author: Sergey Senozhatsky Date: Thu Jun 25 15:00:03 2015 -0700 zram: cosmetic ZRAM_ATTR_RO code formatting tweak Fix a misplaced backslash. Signed-off-by: Sergey Senozhatsky Acked-by: Minchan Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/block/zram/zram_drv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3d8ed88ba7f612305785fc1f3cefa043f817bb3e Author: Sergey Senozhatsky Date: Thu Jun 25 15:00:00 2015 -0700 zram: add `compact` sysfs entry to documentation We currently don't support zram on-demand device creation. The only way to have N zram devices is to specify num_devices module parameter (default value 1). That means that if, for some reason, at some point, user wants to have N + 1 devies he/she must umount all the existing devices, unload the module, load the module passing num_devices equals to N + 1. This patchset introduces zram-control sysfs class, which has two sysfs attrs: - hot_add -- add a new zram device - hot_remove -- remove a specific (device_id) zram device Usage example: # add a new specific zram device cat /sys/class/zram-control/hot_add 1 # remove a specific zram device echo 4 > /sys/class/zram-control/hot_remove This patch (of 10): Briefly describe missing `compact` sysfs entry. Signed-off-by: Sergey Senozhatsky Acked-by: Minchan Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Documentation/blockdev/zram.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 13a18a1c04775e48788a25ba7ed17c885df6b1d1 Author: Marcin Jabrzyk Date: Thu Jun 25 14:59:58 2015 -0700 zsmalloc: remove obsolete ZSMALLOC_DEBUG The DEBUG define in zsmalloc is useless, there is no usage of it at all. Signed-off-by: Marcin Jabrzyk Acked-by: Sergey Senozhatsky Cc: Minchan Kim Cc: Nitin Gupta Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/zsmalloc.c | 4 ---- 1 file changed, 4 deletions(-) commit 9e65bf68a8f14f1b3fb16dc85dbbaff79da4bfeb Author: Marcin Jabrzyk Date: Thu Jun 25 14:59:55 2015 -0700 zram: remove obsolete ZRAM_DEBUG option This config option doesn't provide any usage for zram. Signed-off-by: Marcin Jabrzyk Acked-by: Sergey Senozhatsky Cc: Minchan Kim Cc: Nitin Gupta Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/block/zram/Kconfig | 10 +--------- drivers/block/zram/zram_drv.c | 4 ---- 2 files changed, 1 insertion(+), 13 deletions(-) commit cf54e2fce51c7ad2479fe8cf213a2ed618a8189b Author: Dominik Dingel Date: Thu Jun 25 14:59:52 2015 -0700 s390/mm: change HPAGE_SHIFT type to int With making HPAGE_SHIFT an unsigned integer we also accidentally changed pageblock_order. In order to avoid compiler warnings we make HPAGE_SHFIT an int again. Signed-off-by: Dominik Dingel Suggested-by: Andrew Morton Cc: Martin Schwidefsky Cc: Heiko Carstens Cc: Christian Borntraeger Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/s390/include/asm/page.h | 2 +- arch/s390/mm/pgtable.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit cbd7d9c2b70f5e2fc78e0c90b3034b94dca6c82b Author: Dominik Dingel Date: Thu Jun 25 14:59:49 2015 -0700 s390/mm: forward check for huge pmds to pmd_large() We already do the check in pmd_large, so we can just forward the call. Signed-off-by: Dominik Dingel Acked-by: Martin Schwidefsky Cc: Heiko Carstens Cc: Christian Borntraeger Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/s390/mm/hugetlbpage.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit ce415712cf920e08d622f07eaa9f5d1eb7e93919 Author: Dominik Dingel Date: Thu Jun 25 14:59:47 2015 -0700 s390/hugetlb: remove dead code for sw emulated huge pages We now support only hugepages on hardware with EDAT1 support. So we remove the prepare/release_hugepage hooks and simplify set_huge_pte_at and huge_ptep_get. Signed-off-by: Dominik Dingel Acked-by: Martin Schwidefsky Cc: Heiko Carstens Cc: Christian Borntraeger Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/s390/include/asm/hugetlb.h | 3 --- arch/s390/mm/hugetlbpage.c | 60 +++-------------------------------------- 2 files changed, 3 insertions(+), 60 deletions(-) commit 08bd4fc15683b9a26b9be7048d151f4ddadad96f Author: Dominik Dingel Date: Thu Jun 25 14:59:44 2015 -0700 mm/hugetlb: remove arch_prepare/release_hugepage from arch headers Nobody used these hooks so they were removed from common code, and can now be removed from the architectures. Signed-off-by: Dominik Dingel Acked-by: Martin Schwidefsky Acked-by: Ralf Baechle Cc: Heiko Carstens Cc: Christian Borntraeger Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/arm/include/asm/hugetlb.h | 9 --------- arch/arm64/include/asm/hugetlb.h | 9 --------- arch/ia64/include/asm/hugetlb.h | 9 --------- arch/metag/include/asm/hugetlb.h | 9 --------- arch/mips/include/asm/hugetlb.h | 9 --------- arch/powerpc/include/asm/hugetlb.h | 9 --------- arch/sh/include/asm/hugetlb.h | 9 --------- arch/sparc/include/asm/hugetlb.h | 9 --------- arch/tile/include/asm/hugetlb.h | 9 --------- arch/x86/include/asm/hugetlb.h | 9 --------- 10 files changed, 90 deletions(-) commit 8408427e6b9f37bc5ce09933947e670f87568b77 Author: Dominik Dingel Date: Thu Jun 25 14:59:42 2015 -0700 mm/hugetlb: remove unused arch hook prepare/release_hugepage With s390 dropping support for emulated hugepages, the last user of arch_prepare_hugepage and arch_release_hugepage is gone. Signed-off-by: Dominik Dingel Acked-by: Martin Schwidefsky Cc: Heiko Carstens Cc: Christian Borntraeger Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/hugetlb.c | 10 ---------- 1 file changed, 10 deletions(-) commit bea41197ead3e03308bdd10c11db3ce91ae5c8ab Author: Dominik Dingel Date: Thu Jun 25 14:59:39 2015 -0700 s390/mm: make hugepages_supported a boot time decision There is a potential bug with KVM and hugetlbfs if the hardware does not support hugepages (EDAT1). We fix this by making EDAT1 a hard requirement for hugepages and therefore removing and simplifying code. As s390, with the sw-emulated hugepages, was the only user of arch_prepare/release_hugepage I also removed theses calls from common and other architecture code. This patch (of 5): By dropping support for hugepages on machines which do not have the hardware feature EDAT1, we fix a potential s390 KVM bug. The bug would happen if a guest is backed by hugetlbfs (not supported currently), but does not get pagetables with PGSTE. This would lead to random memory overwrites. Signed-off-by: Dominik Dingel Acked-by: Martin Schwidefsky Cc: Heiko Carstens Cc: Christian Borntraeger Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/s390/include/asm/page.h | 8 ++++---- arch/s390/kernel/setup.c | 2 ++ arch/s390/mm/pgtable.c | 2 ++ 3 files changed, 8 insertions(+), 4 deletions(-) commit 64e22b86854227b4d13a57fa02f26472bc426812 Merge: 6597ac8 243918b Author: Linus Torvalds Date: Thu Jun 25 16:49:21 2015 -0700 Merge branch 'for-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata Pull libata updates from Tejun Heo: - a number of libata core changes to better support NCQ TRIM. - ahci now supports MSI-X in single IRQ mode to support a new controller which doesn't implement MSI or INTX. - ahci now supports edge-triggered IRQ mode to support a new controller which for some odd reason did edge-triggered IRQ. - the usual controller support additions and changes. * 'for-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata: (27 commits) libata: Do not blacklist Micron M500DC ata: ahci_mvebu: add suspend/resume support ahci, msix: Fix build error for !PCI_MSI ahci: Add support for Cavium's ThunderX host controller ahci: Add generic MSI-X support for single interrupts to SATA PCI driver libata: finally use __initconst in ata_parse_force_one() drivers: ata: add support for Ceva sata host controller devicetree:bindings: add devicetree bindings for ceva ahci ahci: added support for Freescale AHCI sata ahci: Store irq number in struct ahci_host_priv ahci: Move interrupt enablement code to a separate function Doc: libata: Fix spelling typo found in libata.xml ata:sata_nv - Change 1 to true for bool type variable. ata: add Broadcom AHCI SATA3 driver for STB chips Documentation: devicetree: add Broadcom SATA binding libata: Fix regression when the NCQ Send and Receive log page is absent ata: hpt366: fix constant cast warning ata: ahci_xgene: potential NULL dereference in probe ata: ahci_xgene: Add AHCI Support for 2nd HW version of APM X-Gene SoC AHCI SATA Host controller. libahci: Add support to handle HOST_IRQ_STAT as edge trigger latch. ... commit 18a600897212c1480eb635112baeab017babfc83 Author: Benjamin Coddington Date: Thu Jun 25 09:25:50 2015 -0400 nfs: verify open flags before allowing open Commit 9597c13b forbade opens with O_APPEND|O_DIRECT for NFSv4: nfs: verify open flags before allowing an atomic open Currently, you can open a NFSv4 file with O_APPEND|O_DIRECT, but cannot fcntl(F_SETFL,...) with those flags. This flag combination is explicitly forbidden on NFSv3 opens, and it seems like it should also be on NFSv4. However, you can still open a file with O_DIRECT|O_APPEND if there exists a cached dentry for the file because nfs4_file_open() is used instead of nfs_atomic_open() and the check is bypassed. Add the check in nfs4_file_open() as well. Signed-off-by: Benjamin Coddington Signed-off-by: Trond Myklebust fs/nfs/nfs4file.c | 4 ++++ 1 file changed, 4 insertions(+) commit 0c8315dd56577445dd1afe6b9cfa06b7efdf2f82 Author: Jeff Layton Date: Wed Jun 24 12:10:24 2015 -0400 nfs: always update creds in mirror, even when we have an already connected ds A ds can be associated with more than one mirror, but we currently skip setting a mirror's credentials if we find that it's already set up with a connected client. The upshot is that we can end up sending DS writes with MDS credentials instead of properly setting them up. Fix nfs4_ff_layout_prepare_ds to always verify that the mirror's credentials are set up, even when we have a DS that's already connected. Reported-by: Tom Haynes Signed-off-by: Jeff Layton Cc: stable@vger.kernel.org # 4.0+ Signed-off-by: Trond Myklebust fs/nfs/flexfilelayout/flexfilelayoutdev.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a24221dca1868101c9b4b5adde4a6a5b1a3a64a7 Author: Jeff Layton Date: Wed Jun 24 12:10:23 2015 -0400 nfs: fix potential credential leak in ff_layout_update_mirror_cred If we have two tasks racing to update a mirror's credentials, then they can end up leaking one (or more) sets of credentials. The first task will set mirror->cred and then the second task will just overwrite it. Use a cmpxchg to ensure that the creds are only set once. If we get to the point where we would set mirror->cred and find that they're already set, then we just release the creds that were just found. Signed-off-by: Jeff Layton Cc: stable@vger.kernel.org # 4.0+ Signed-off-by: Trond Myklebust fs/nfs/flexfilelayout/flexfilelayoutdev.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 6597ac8a514e2085cf19822a5783345c613312a5 Merge: e4bc13a e262f34 Author: Linus Torvalds Date: Thu Jun 25 16:34:39 2015 -0700 Merge tag 'dm-4.2-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm Pull device mapper updates from Mike Snitzer: - DM core cleanups: * blk-mq request-based DM no longer uses any mempools now that partial completions are no longer handled as part of cloned requests - DM raid cleanups and support for MD raid0 - DM cache core advances and a new stochastic-multi-queue (smq) cache replacement policy * smq is the new default dm-cache policy - DM thinp cleanups and much more efficient large discard support - DM statistics support for request-based DM and nanosecond resolution timestamps - Fixes to DM stripe, DM log-writes, DM raid1 and DM crypt * tag 'dm-4.2-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm: (39 commits) dm stats: add support for request-based DM devices dm stats: collect and report histogram of IO latencies dm stats: support precise timestamps dm stats: fix divide by zero if 'number_of_areas' arg is zero dm cache: switch the "default" cache replacement policy from mq to smq dm space map metadata: fix occasional leak of a metadata block on resize dm thin metadata: fix a race when entering fail mode dm thin: fail messages with EOPNOTSUPP when pool cannot handle messages dm thin: range discard support dm thin metadata: add dm_thin_remove_range() dm thin metadata: add dm_thin_find_mapped_range() dm btree: add dm_btree_remove_leaves() dm stats: Use kvfree() in dm_kvfree() dm cache: age and write back cache entries even without active IO dm cache: prefix all DMERR and DMINFO messages with cache device name dm cache: add fail io mode and needs_check flag dm cache: wake the worker thread every time we free a migration object dm cache: add stochastic-multi-queue (smq) policy dm cache: boost promotion of blocks that will be overwritten dm cache: defer whole cells ... commit e4bc13adfd016fc1036838170288b5680d1a98b0 Merge: ad90fb9 3e1534c Author: Linus Torvalds Date: Thu Jun 25 16:00:17 2015 -0700 Merge branch 'for-4.2/writeback' of git://git.kernel.dk/linux-block Pull cgroup writeback support from Jens Axboe: "This is the big pull request for adding cgroup writeback support. This code has been in development for a long time, and it has been simmering in for-next for a good chunk of this cycle too. This is one of those problems that has been talked about for at least half a decade, finally there's a solution and code to go with it. Also see last weeks writeup on LWN: http://lwn.net/Articles/648292/" * 'for-4.2/writeback' of git://git.kernel.dk/linux-block: (85 commits) writeback, blkio: add documentation for cgroup writeback support vfs, writeback: replace FS_CGROUP_WRITEBACK with SB_I_CGROUPWB writeback: do foreign inode detection iff cgroup writeback is enabled v9fs: fix error handling in v9fs_session_init() bdi: fix wrong error return value in cgwb_create() buffer: remove unusued 'ret' variable writeback: disassociate inodes from dying bdi_writebacks writeback: implement foreign cgroup inode bdi_writeback switching writeback: add lockdep annotation to inode_to_wb() writeback: use unlocked_inode_to_wb transaction in inode_congested() writeback: implement unlocked_inode_to_wb transaction and use it for stat updates writeback: implement [locked_]inode_to_wb_and_lock_list() writeback: implement foreign cgroup inode detection writeback: make writeback_control track the inode being written back writeback: relocate wb[_try]_get(), wb_put(), inode_{attach|detach}_wb() mm: vmscan: disable memcg direct reclaim stalling if cgroup writeback support is in use writeback: implement memcg writeback domain based throttling writeback: reset wb_domain->dirty_limit[_tstmp] when memcg domain size changes writeback: implement memcg wb_domain writeback: update wb_over_bg_thresh() to use wb_domain aware operations ... commit ad90fb97515b732bc27a0109baa10af636c3c8cd Merge: 6a398a3 c546d5d Author: Linus Torvalds Date: Thu Jun 25 15:22:36 2015 -0700 Merge branch 'for-4.2/sg' of git://git.kernel.dk/linux-block Pull asm/scatterlist.h removal from Jens Axboe: "We don't have any specific arch scatterlist anymore, since parisc finally switched over. Kill the include" * 'for-4.2/sg' of git://git.kernel.dk/linux-block: remove scatterlist.h generation from arch Kbuild files remove commit cc9e4bde03f2b4cfba52406c021364cbd2a4a0f3 Author: Steven Rostedt (Red Hat) Date: Thu Jun 25 18:19:37 2015 -0400 tracing: Fix typo from "static inlin" to "static inline" The trace.h header when called without CONFIG_EVENT_TRACING enabled (seldom done), will not compile because of a typo in the protocol of trace_event_enum_update(). Cc: stable@vger.kernel.org # 4.1+ Signed-off-by: Steven Rostedt kernel/trace/trace.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6b88f44e161b9ee2a803e5b2b1fbcf4e20e8b980 Author: Steven Rostedt (Red Hat) Date: Thu Jun 25 18:10:09 2015 -0400 tracing/filter: Do not allow infix to exceed end of string While debugging a WARN_ON() for filtering, I found that it is possible for the filter string to be referenced after its end. With the filter: # echo '>' > /sys/kernel/debug/events/ext4/ext4_truncate_exit/filter The filter_parse() function can call infix_get_op() which calls infix_advance() that updates the infix filter pointers for the cnt and tail without checking if the filter is already at the end, which will put the cnt to zero and the tail beyond the end. The loop then calls infix_next() that has ps->infix.cnt--; return ps->infix.string[ps->infix.tail++]; The cnt will now be below zero, and the tail that is returned is already passed the end of the filter string. So far the allocation of the filter string usually has some buffer that is zeroed out, but if the filter string is of the exact size of the allocated buffer there's no guarantee that the charater after the nul terminating character will be zero. Luckily, only root can write to the filter. Cc: stable@vger.kernel.org # 2.6.33+ Signed-off-by: Steven Rostedt kernel/trace/trace_events_filter.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 6a398a3ef404e661999cd4c58974cbceb52762e3 Merge: bfffa1c 98f57c5 Author: Linus Torvalds Date: Thu Jun 25 15:12:50 2015 -0700 Merge branch 'for-4.2/drivers' of git://git.kernel.dk/linux-block Pull block driver updates from Jens Axboe: "This contains: - a few race fixes for null_blk, from Akinobu Mita. - a series of fixes for mtip32xx, from Asai Thambi and Selvan Mani at Micron. - NVMe: * Fix for missing error return on allocation failure, from Axel Lin. * Code consolidation and cleanups from Christoph. * Memory barrier addition, syncing queue count and queue pointers. From Jon Derrick. * Various fixes from Keith, an addition to support user issue reset from sysfs or ioctl, and automatic namespace rescan. * Fix from Matias, avoiding losing some request flags when marking the request failfast. - small cleanups and sparse fixups for ps3vram. From Geert Uytterhoeven and Geoff Lavand. - s390/dasd dead code removal, from Jarod Wilson. - a set of fixes and optimizations for loop, from Ming Lei. - conversion to blkdev_reread_part() of loop, dasd, ndb. From Ming Lei. - updates to cciss. From Tomas Henzl" * 'for-4.2/drivers' of git://git.kernel.dk/linux-block: (44 commits) mtip32xx: Fix accessing freed memory block: nvme-scsi: Catch kcalloc failure NVMe: Fix IO for extended metadata formats nvme: don't overwrite req->cmd_flags on sync cmd mtip32xx: increase wait time for hba reset mtip32xx: fix minor number mtip32xx: remove unnecessary sleep in mtip_ftl_rebuild_poll() mtip32xx: fix crash on surprise removal of the drive mtip32xx: Abort I/O during secure erase operation mtip32xx: fix incorrectly setting MTIP_DDF_SEC_LOCK_BIT mtip32xx: remove unused variable 'port->allocated' mtip32xx: fix rmmod issue MAINTAINERS: Update ps3vram block driver block/ps3vram: Remove obsolete reference to MTD block/ps3vram: Fix sparse warnings NVMe: Automatic namespace rescan NVMe: Memory barrier before queue_count is incremented NVMe: add sysfs and ioctl controller reset null_blk: restart request processing on completion handler null_blk: prevent timer handler running on a different CPU where started ... commit b4875bbe7e68f139bd3383828ae8e994a0df6d28 Author: Steven Rostedt (Red Hat) Date: Thu Jun 25 18:02:29 2015 -0400 tracing/filter: Do not WARN on operand count going below zero When testing the fix for the trace filter, I could not come up with a scenario where the operand count goes below zero, so I added a WARN_ON_ONCE(cnt < 0) to the logic. But there is legitimate case that it can happen (although the filter would be wrong). # echo '>' > /sys/kernel/debug/events/ext4/ext4_truncate_exit/filter That is, a single operation without any operands will hit the path where the WARN_ON_ONCE() can trigger. Although this is harmless, and the filter is reported as a error. But instead of spitting out a warning to the kernel dmesg, just fail nicely and report it via the proper channels. Link: http://lkml.kernel.org/r/558C6082.90608@oracle.com Reported-by: Vince Weaver Reported-by: Sasha Levin Cc: stable@vger.kernel.org # 2.6.33+ Signed-off-by: Steven Rostedt kernel/trace/trace_events_filter.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 7c494375b773497228502133879072a9e959c063 Author: Dmitry Torokhov Date: Mon Jun 1 10:35:16 2015 -0700 Input: improve parsing OF parameters for touchscreens When applying touchscreen parameters specified in device tree let's make sure we keep whatever setup was done by the driver and not reset the missing values to zero. Reported-by: Pavel Machek Tested-by: Pavel Machek Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/edt-ft5x06.c | 2 +- drivers/input/touchscreen/of_touchscreen.c | 69 +++++++++++++++++++----------- drivers/input/touchscreen/tsc2005.c | 2 +- include/linux/input/touchscreen.h | 5 ++- 4 files changed, 49 insertions(+), 29 deletions(-) commit 38e1b72bd8a1de4d7adb6a7cea88174e412cf4d7 Author: Dmitry Torokhov Date: Mon Jun 1 10:41:11 2015 -0700 Input: edt-ft5x06 - mark as direct input device edt-ft5x06 is a touchscreen and thus a direct input device; let's amrk it as such. This also allows us to drop some initialization code as input_init_mt_slots() will do that for us. Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/edt-ft5x06.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) commit 3e2b03dad54bbcab5be948629a644d55ce7b5a2e Author: Anshul Garg Date: Thu Jun 25 13:33:12 2015 -0700 Input: use for_each_set_bit() where appropriate Instead of iterating over all bits in a bitmap and test them individually let's siwtch to for_each_set_bit() which is more compact and is also faster. Also use bitmap_weight() when counting number of set bits. This also fixes INPUT_DO_TOGGLE() implementation as it should have used *_CNT as the upper boundary, not *_MAX. Signed-off-by: Anshul Garg Signed-off-by: Dmitry Torokhov drivers/input/input.c | 34 +++++++++------------------------- 1 file changed, 9 insertions(+), 25 deletions(-) commit bfffa1cc9db8a950dd4b1a09999f8a20e69a6652 Merge: cc8a0a9 ae994ea Author: Linus Torvalds Date: Thu Jun 25 14:29:53 2015 -0700 Merge branch 'for-4.2/core' of git://git.kernel.dk/linux-block Pull core block IO update from Jens Axboe: "Nothing really major in here, mostly a collection of smaller optimizations and cleanups, mixed with various fixes. In more detail, this contains: - Addition of policy specific data to blkcg for block cgroups. From Arianna Avanzini. - Various cleanups around command types from Christoph. - Cleanup of the suspend block I/O path from Christoph. - Plugging updates from Shaohua and Jeff Moyer, for blk-mq. - Eliminating atomic inc/dec of both remaining IO count and reference count in a bio. From me. - Fixes for SG gap and chunk size support for data-less (discards) IO, so we can merge these better. From me. - Small restructuring of blk-mq shared tag support, freeing drivers from iterating hardware queues. From Keith Busch. - A few cfq-iosched tweaks, from Tahsin Erdogan and me. Makes the IOPS mode the default for non-rotational storage" * 'for-4.2/core' of git://git.kernel.dk/linux-block: (35 commits) cfq-iosched: fix other locations where blkcg_to_cfqgd() can return NULL cfq-iosched: fix sysfs oops when attempting to read unconfigured weights cfq-iosched: move group scheduling functions under ifdef cfq-iosched: fix the setting of IOPS mode on SSDs blktrace: Add blktrace.c to BLOCK LAYER in MAINTAINERS file block, cgroup: implement policy-specific per-blkcg data block: Make CFQ default to IOPS mode on SSDs block: add blk_set_queue_dying() to blkdev.h blk-mq: Shared tag enhancements block: don't honor chunk sizes for data-less IO block: only honor SG gap prevention for merges that contain data block: fix returnvar.cocci warnings block, dm: don't copy bios for request clones block: remove management of bi_remaining when restoring original bi_end_io block: replace trylock with mutex_lock in blkdev_reread_part() block: export blkdev_reread_part() and __blkdev_reread_part() suspend: simplify block I/O handling block: collapse bio bit space block: remove unused BIO_RW_BLOCK and BIO_EOF flags block: remove BIO_EOPNOTSUPP ... commit cc8a0a943948d1b1bc803b37486831af7b04dd38 Merge: d857da7 669d3d1 Author: Linus Torvalds Date: Thu Jun 25 14:11:34 2015 -0700 Merge tag 'upstream-4.2-rc1' of git://git.infradead.org/linux-ubifs Pull UBI/UBIFS updates from Richard Weinberger: "Minor fixes for UBI and UBIFS" * tag 'upstream-4.2-rc1' of git://git.infradead.org/linux-ubifs: UBI: Remove unnecessary `\' UBI: Use static class and attribute groups UBI: add a helper function for updatting on-flash layout volumes UBI: Fastmap: Do not add vol if it already exists UBI: Init vol->reserved_pebs by assignment UBI: Fastmap: Rename variables to make them meaningful UBI: Fastmap: Remove unnecessary `\' UBI: Fastmap: Use max() to get the larger value ubifs: fix to check error code of register_shrinker UBI: block: Dynamically allocate minor numbers commit d857da7b70b3a38a846211b30442aad10ce577bd Merge: 77d4316 a2fd66d Author: Linus Torvalds Date: Thu Jun 25 14:06:55 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: "A very large number of cleanups and bug fixes --- in particular for the ext4 encryption patches, which is a new feature added in the last merge window. Also fix a number of long-standing xfstest failures. (Quota writes failing due to ENOSPC, a race between truncate and writepage in data=journalled mode that was causing generic/068 to fail, and other corner cases.) Also add support for FALLOC_FL_INSERT_RANGE, and improve jbd2 performance eliminating locking when a buffer is modified more than once during a transaction (which is very common for allocation bitmaps, for example), in which case the state of the journalled buffer head doesn't need to change" [ I renamed "ext4_follow_link()" to "ext4_encrypted_follow_link()" in the merge resolution, to make it clear that that function is _only_ used for encrypted symlinks. The function doesn't actually work for non-encrypted symlinks at all, and they use the generic helpers - Linus ] * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (52 commits) ext4: set lazytime on remount if MS_LAZYTIME is set by mount ext4: only call ext4_truncate when size <= isize ext4: make online defrag error reporting consistent ext4: minor cleanup of ext4_da_reserve_space() ext4: don't retry file block mapping on bigalloc fs with non-extent file ext4: prevent ext4_quota_write() from failing due to ENOSPC ext4: call sync_blockdev() before invalidate_bdev() in put_super() jbd2: speedup jbd2_journal_dirty_metadata() jbd2: get rid of open coded allocation retry loop ext4: improve warning directory handling messages jbd2: fix ocfs2 corrupt when updating journal superblock fails ext4: mballoc: avoid 20-argument function call ext4: wait for existing dio workers in ext4_alloc_file_blocks() ext4: recalculate journal credits as inode depth changes jbd2: use GFP_NOFS in jbd2_cleanup_journal_tail() ext4: use swap() in mext_page_double_lock() ext4: use swap() in memswap() ext4: fix race between truncate and __ext4_journalled_writepage() ext4 crypto: fail the mount if blocksize != pagesize ext4: Add support FALLOC_FL_INSERT_RANGE for fallocate ... commit 77d431641e2b402fe98af3540e8fb1c77bf92c25 Merge: 55a7d4b f01cae4 Author: Linus Torvalds Date: Thu Jun 25 13:54:37 2015 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc Pull sparc fixes from David Miller: "Sparc perf stack traversal fixes from David Ahern" * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc: sparc64: perf: Use UREG_FP rather than UREG_I6 sparc64: perf: Add sanity checking on addresses in user stack sparc64: Convert BUG_ON to warning sparc: perf: Disable pagefaults while walking userspace stacks commit da028d5e5463dabb6ede2f5e3f6cced1283988cc Author: Richard Weinberger Date: Thu Jun 25 22:44:11 2015 +0200 um: Don't pollute kernel namespace with uapi Don't include ptrace uapi stuff in arch headers, it will pollute the kernel namespace and conflict with existing stuff. In this case it fixes clashes with common names like R8. Signed-off-by: Richard Weinberger arch/um/include/asm/ptrace-generic.h | 1 - arch/um/kernel/ptrace.c | 1 + arch/x86/um/ptrace_32.c | 1 + arch/x86/um/ptrace_64.c | 1 + arch/x86/um/tls_32.c | 1 + arch/x86/um/tls_64.c | 1 + 6 files changed, 5 insertions(+), 1 deletion(-) commit 8eeba4e9a76cd126e737d3d303d9c424b66ea90d Author: Hans-Werner Hilse Date: Thu Jun 11 11:29:20 2015 +0200 um: Include sys/types.h for makedev(), major(), minor() The functions in question are not part of the POSIX standard, documentation however hints that the corresponding header shall be sys/types.h. C libraries other than glibc, namely musl, did not include that header via other ways and complained. Signed-off-by: Hans-Werner Hilse Signed-off-by: Richard Weinberger arch/um/os-Linux/file.c | 1 + 1 file changed, 1 insertion(+) commit f9bb3b5947c507d402eecbffabb8fb0864263ad1 Author: Hans-Werner Hilse Date: Thu Jun 11 11:29:19 2015 +0200 um: Do not use stdin and stdout identifiers for struct members stdin, stdout and stderr are macros according to C89/C99. Thus do not use them as struct member identifiers to avoid bad results from macro expansion. Signed-off-by: Hans-Werner Hilse Signed-off-by: Richard Weinberger arch/um/drivers/harddog_user.c | 18 +++++++++--------- arch/um/drivers/net_user.c | 6 +++--- arch/um/drivers/slip_user.c | 14 +++++++------- arch/um/drivers/slirp_user.c | 16 ++++++++-------- arch/um/os-Linux/drivers/tuntap_user.c | 6 +++--- 5 files changed, 30 insertions(+), 30 deletions(-) commit 9a75551aeaa8c79fd6ad713cb20e6bbccc767331 Author: Hans-Werner Hilse Date: Thu Jun 11 11:29:18 2015 +0200 um: Do not use __ptr_t type for stack_t's .ss pointer __ptr_t type is a glibc-specific type, while the generally documented type is a void*. That's what other C libraries use, too. Signed-off-by: Hans-Werner Hilse Signed-off-by: Richard Weinberger arch/um/os-Linux/signal.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit a22e99cd74a31dee4b5241bd60a256c629c808da Author: Jiri Olsa Date: Tue Jun 23 00:36:08 2015 +0200 perf tools: Make perf_evsel__(nr_)cpus generic Because we now propagate all evlist's cpu_maps and thread_map objects through all evsels, the perf_evsel__(nr_)cpus no longer need to be specific to stat object and check evlist and target objects. Signed-off-by: Jiri Olsa Cc: Adrian Hunter Cc: Andi Kleen Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1435012588-9007-8-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 10 ---------- tools/perf/util/evsel.h | 11 +++++++++++ 2 files changed, 11 insertions(+), 10 deletions(-) commit 55a7d4b85ca1f723d26b8956e8faeff730d0d240 Merge: aefbef1 0783474 Author: Linus Torvalds Date: Thu Jun 25 13:07:24 2015 -0700 Merge tag 'for-4.2' of git://git.sourceforge.jp/gitroot/uclinux-h8/linux Pull Renesas H8/300 architecture re-introduction from Yoshinori Sato. We dropped arch/h8300 two years ago as stale and old, this is a new and more modern rewritten arch support for the same architecture. * tag 'for-4.2' of git://git.sourceforge.jp/gitroot/uclinux-h8/linux: (27 commits) h8300: fix typo. h8300: Always build dtb h8300: Remove ARCH_WANT_IPC_PARSE_VERSION sh-sci: Get register size from platform device clk: h8300: fix error handling in h8s2678_pll_clk_setup() h8300: Symbol name fix h8300: devicetree source h8300: configs h8300: IRQ chip driver h8300: clocksource h8300: clock driver h8300: Build scripts h8300: library functions h8300: Memory management h8300: miscellaneous functions h8300: process helpers h8300: compressed image support h8300: Low level entry h8300: kernel startup h8300: Interrupt and exceptions ... commit 578e91ec04d03aca89e300151addb3e3ed5b06ea Author: Jiri Olsa Date: Tue Jun 23 00:36:07 2015 +0200 perf evlist: Propagate thread maps through the evlist Propagate evlist's thread_map object through all the evsel objects. It'll be handy to access evsel's threads directly in following patches. The reason is there's no link from evsel to evlist which hold threads map now and evlist is not always available. Signed-off-by: Jiri Olsa Cc: Adrian Hunter Cc: Andi Kleen Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1435012588-9007-7-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/evlist.c | 4 +++- tools/perf/util/evsel.c | 1 + tools/perf/util/evsel.h | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) commit b7f0c203586b91419ff9aa9b1115e261082ff5b4 Author: Jiri Olsa Date: Tue Jun 23 00:36:06 2015 +0200 perf evlist: Propagate cpu maps to evsels in an evlist Propagate evlist's cpu_map object through all the evsel objects, while keeping already configured evsel->cpus. It'll be handy to access evsel's cpus directly in following patches. Signed-off-by: Jiri Olsa Cc: Adrian Hunter Cc: Andi Kleen Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1435012588-9007-6-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/evlist.c | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) commit 186fbb7432f4a740b4fbaf4145375442210110bb Author: Jiri Olsa Date: Tue Jun 23 00:36:05 2015 +0200 perf tools: Add reference counting for thread_map object Adding reference counting for thread_map object, so it could be easily shared among other objects. Using thread_map__put instead thread_map__delete and making thread_map__delete static. Signed-off-by: Jiri Olsa Cc: Adrian Hunter Cc: Andi Kleen Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1435012588-9007-5-git-send-email-jolsa@kernel.org [ Adjustments to move it ahead of the "comm" patches ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/code-reading.c | 2 +- tools/perf/tests/keep-tracking.c | 2 +- tools/perf/tests/mmap-basic.c | 2 +- tools/perf/tests/mmap-thread-lookup.c | 2 +- tools/perf/tests/openat-syscall-all-cpus.c | 2 +- tools/perf/tests/openat-syscall.c | 2 +- tools/perf/tests/switch-tracking.c | 2 +- tools/perf/util/evlist.c | 4 ++-- tools/perf/util/python.c | 2 +- tools/perf/util/thread_map.c | 30 ++++++++++++++++++++++++++++-- tools/perf/util/thread_map.h | 7 +++++-- 11 files changed, 43 insertions(+), 14 deletions(-) commit f30a79b012e5d9b3887f6a59293d9ef3ca0e2c3e Author: Jiri Olsa Date: Tue Jun 23 00:36:04 2015 +0200 perf tools: Add reference counting for cpu_map object Adding refference counting for cpu_map object, so it could be easily shared among other objects. Using cpu_map__put instead cpu_map__delete and making cpu_map__delete static. Signed-off-by: Jiri Olsa Cc: Adrian Hunter Cc: Andi Kleen Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1435012588-9007-4-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/code-reading.c | 2 +- tools/perf/tests/keep-tracking.c | 2 +- tools/perf/tests/mmap-basic.c | 2 +- tools/perf/tests/switch-tracking.c | 2 +- tools/perf/util/cpumap.c | 26 ++++++++++++++++++++++++-- tools/perf/util/cpumap.h | 6 +++++- tools/perf/util/evlist.c | 4 ++-- tools/perf/util/evsel.c | 1 + tools/perf/util/parse-events.c | 5 ++++- tools/perf/util/python.c | 2 +- tools/perf/util/record.c | 4 ++-- tools/perf/util/session.c | 2 +- tools/perf/util/svghelper.c | 2 +- 13 files changed, 45 insertions(+), 15 deletions(-) commit 4cc97614812e96c135e369f3d723fcda07d33437 Author: Markus Elfring Date: Thu Jun 25 17:12:32 2015 +0200 perf header: Delete an unnecessary check before the calling free_event_desc() The free_event_desc() 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 Cc: Julia Lawall Cc: Peter Zijlstra Cc: kernel-janitors@vger.kernel.org Link: http://lkml.kernel.org/r/558C2ABA.3000603@users.sourceforge.net Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/header.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 060664f3b9dff37860e48b5158e8429b2467e526 Author: Arnaldo Carvalho de Melo Date: Thu Jun 25 14:48:49 2015 -0300 perf tools: Future-proof thread_map allocation size calculation Signed-off-by: Jiri Olsa Cc: Adrian Hunter Cc: Andi Kleen Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/20150625174840.GH3253@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/thread_map.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6ba8edc0bcbdf337293e60123ddac8fc1c895a3c Author: Benoît Canet Date: Wed Jun 24 23:18:39 2015 +0200 libceph: Remove spurious kunmap() of the zero page ceph_tcp_sendpage already does the work of mapping/unmapping the zero page if needed. Signed-off-by: Benoît Canet Reviewed-by: Alex Elder Signed-off-by: Ilya Dryomov net/ceph/messenger.c | 1 - 1 file changed, 1 deletion(-) commit b55841807fb864eccca0167650a65722fd7cd553 Author: Ilya Dryomov Date: Tue Jun 23 16:21:19 2015 +0300 rbd: queue_depth map option nr_requests (/sys/block/rbd/queue/nr_requests) is pretty much irrelevant in blk-mq case because each driver sets its own max depth that it can handle and that's the number of tags that gets preallocated on setup. Users can't increase queue depth beyond that value via writing to nr_requests. For rbd we are happy with the default BLKDEV_MAX_RQ (128) for most cases but we want to give users the opportunity to increase it. Introduce a new per-device queue_depth option to do just that: $ sudo rbd map -o queue_depth=1024 ... Signed-off-by: Ilya Dryomov Reviewed-by: Alex Elder drivers/block/rbd.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) commit d147543d7943eaa549a569143b7815482585fb91 Author: Ilya Dryomov Date: Mon Jun 22 13:24:48 2015 +0300 rbd: store rbd_options in rbd_device Signed-off-by: Ilya Dryomov Reviewed-by: Alex Elder drivers/block/rbd.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) commit 210c104c544e5be321fc5b78e74b596d36820332 Author: Ilya Dryomov Date: Mon Jun 22 13:24:48 2015 +0300 rbd: terminate rbd_opts_tokens with Opt_err Also nuke useless Opt_last_bool and don't break lines unnecessarily. Signed-off-by: Ilya Dryomov Reviewed-by: Alex Elder drivers/block/rbd.c | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) commit e1966b49446a43994c3f25a07d0eb4d05660b429 Author: Yan, Zheng Date: Thu Jun 18 03:10:58 2015 +0800 ceph: fix ceph_writepages_start() Before a page get locked, someone else can write data to the page and increase the i_size. So we should re-check the i_size after pages are locked. Signed-off-by: Yan, Zheng fs/ceph/addr.c | 37 +++++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 14 deletions(-) commit d3834fefcfe5610702379d78596337875df2db5b Author: Ilya Dryomov Date: Fri Jun 12 19:19:02 2015 +0300 rbd: bump queue_max_segments The default queue_limits::max_segments value (BLK_MAX_SEGMENTS = 128) unnecessarily limits bio sizes to 512k (assuming 4k pages). rbd, being a virtual block device, doesn't have any restrictions on the number of physical segments, so bump max_segments to max_hw_sectors, in theory allowing a sector per segment (although the only case this matters that I can think of is some readv/writev style thing). In practice this is going to give us 1M bios - the number of segments in a bio is limited in bio_get_nr_vecs() by BIO_MAX_PAGES = 256. Note that this doesn't result in any improvement on a typical direct sequential test. This is because on a box with a not too badly fragmented memory the default BLK_MAX_SEGMENTS is enough to see nice rbd object size sized requests. The only difference is the size of bios being merged - 512k vs 1M for something like $ dd if=/dev/zero of=/dev/rbd0 oflag=direct bs=$RBD_OBJ_SIZE $ dd if=/dev/rbd0 iflag=direct of=/dev/null bs=$RBD_OBJ_SIZE Signed-off-by: Ilya Dryomov Reviewed-by: Alex Elder drivers/block/rbd.c | 1 + 1 file changed, 1 insertion(+) commit 44a17ef872fa8f754626aa578c8d05301c905b86 Author: Alexander Kuleshov Date: Thu Jun 25 16:18:03 2015 +0600 crypto: rsa - add .gitignore for crypto/*.-asn1.[ch] files There are two generated files: crypto/rsakey-asn1.c and crypto/raskey-asn1.h, after the cfc2bb32b31371d6bffc6bf2da3548f20ad48c83 commit. Let's add .gitignore to ignore *-asn1.[ch] files. Signed-off-by: Alexander Kuleshov Signed-off-by: Herbert Xu crypto/.gitignore | 1 + 1 file changed, 1 insertion(+) commit 2b42b09b88c831ba4da2d669581dde371c38c2af Author: Srikar Dronamraju Date: Wed Jun 24 16:40:04 2015 +0530 perf bench numa: Fix to show proper convergence stats With commit: e1e455f4f4d3 (perf tools: Work around lack of sched_getcpu in glibc < 2.6), perf_bench numa mem with -c or -m option is not able to correctly calculate convergence. With the above commit, sched_getcpu always seems to return -1. The intention of commit e1e455f was to add a sched_getcpu in glibc < 2.6. Hence keep the sched_getcpu definition under an ifdef. This regression happened occurred between v4.0 and v4.1 Signed-off-by: Srikar Dronamraju Acked-by: Ingo Molnar Cc: Jiri Olsa Cc: Masami Hiramatsu Cc: Namhyung Kim Cc: Vinson Lee Fixes: e1e455f4f4d3 ("perf tools: Work around lack of sched_getcpu in glibc < 2.6") Link: http://lkml.kernel.org/r/20150624111004.GA5220@linux.vnet.ibm.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/cloexec.c | 4 ++++ 1 file changed, 4 insertions(+) commit 2cdcc357c221796fac3772f23cd5830f411c0e45 Author: Guenter Roeck Date: Wed Jun 24 15:27:01 2015 -0700 crypto: asymmetric_keys/rsa - Use non-conflicting variable name arm64:allmodconfig fails to build as follows. In file included from include/acpi/platform/aclinux.h:74:0, from include/acpi/platform/acenv.h:173, from include/acpi/acpi.h:56, from include/linux/acpi.h:37, from ./arch/arm64/include/asm/dma-mapping.h:21, from include/linux/dma-mapping.h:86, from include/linux/skbuff.h:34, from include/crypto/algapi.h:18, from crypto/asymmetric_keys/rsa.c:16: include/linux/ctype.h:15:12: error: expected ‘;’, ‘,’ or ‘)’ before numeric constant #define _X 0x40 /* hex digit */ ^ crypto/asymmetric_keys/rsa.c:123:47: note: in expansion of macro ‘_X’ static int RSA_I2OSP(MPI x, size_t xLen, u8 **_X) ^ crypto/asymmetric_keys/rsa.c: In function ‘RSA_verify_signature’: crypto/asymmetric_keys/rsa.c:256:2: error: implicit declaration of function ‘RSA_I2OSP’ The problem is caused by an unrelated include file change, resulting in the inclusion of ctype.h on arm64. This in turn causes the local variable _X to conflict with macro _X used in ctype.h. Fixes: b6197b93fa4b ("arm64 : Introduce support for ACPI _CCA object") Cc: Suthikulpanit, Suravee Signed-off-by: Guenter Roeck Signed-off-by: Herbert Xu crypto/asymmetric_keys/rsa.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 9d77b6c2a331347f3403ea56b15303885e9e2b05 Author: Tadeusz Struk Date: Wed Jun 24 09:01:30 2015 -0700 crypto: testmgr - don't print info about missing test for gcm-aes-aesni Don't print info about missing test for the internal helper __driver-gcm-aes-aesni changes in v2: - marked test as fips allowed Signed-off-by: Tadeusz Struk Signed-off-by: Herbert Xu crypto/testmgr.c | 4 ++++ 1 file changed, 4 insertions(+) commit cea0a3c305fa348cfad3bae4a226c241720daf55 Author: Markus Elfring Date: Tue Jun 23 22:30:21 2015 +0200 crypto: jitterentropy - Delete unnecessary checks before the function call "kzfree" The kzfree() 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: Herbert Xu crypto/jitterentropy.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 338a9de0350c1abd9c9f6a8dacb2ba4d950e0d22 Author: Tadeusz Struk Date: Tue Jun 23 10:18:53 2015 -0700 crypto: akcipher - fix spelling cihper -> cipher Signed-off-by: Tadeusz Struk Signed-off-by: Herbert Xu crypto/akcipher.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit dfc9fa91938bd0cd5597a3da33d613986149a1e6 Author: Stephan Mueller Date: Tue Jun 23 16:18:54 2015 +0200 crypto: jitterentropy - avoid compiler warnings The core of the Jitter RNG is intended to be compiled with -O0. To ensure that the Jitter RNG can be compiled on all architectures, separate out the RNG core into a stand-alone C file that can be compiled with -O0 which does not depend on any kernel include file. As no kernel includes can be used in the C file implementing the core RNG, any dependencies on kernel code must be extracted. A second file provides the link to the kernel and the kernel crypto API that can be compiled with the regular compile options of the kernel. Signed-off-by: Stephan Mueller Signed-off-by: Herbert Xu crypto/Makefile | 4 +- crypto/jitterentropy-kcapi.c | 208 ++++++++++++++++++++++++++++++++++++++++++ crypto/jitterentropy.c | 213 ++++++++----------------------------------- 3 files changed, 248 insertions(+), 177 deletions(-) commit 8eee539ddea09bccae2426f09b0ba6a18b72b691 Author: Xi Wang Date: Thu Jun 25 05:47:39 2015 -0700 arm64: bpf: fix out-of-bounds read in bpf2a64_offset() Problems occur when bpf_to or bpf_from has value prog->len - 1 (e.g., "Very long jump backwards" in test_bpf where the last instruction is a jump): since ctx->offset has length prog->len, ctx->offset[bpf_to + 1] or ctx->offset[bpf_from + 1] will cause an out-of-bounds read, leading to a bogus jump offset and kernel panic. This patch moves updating ctx->offset to after calling build_insn(), and changes indexing to use bpf_to and bpf_from without + 1. Fixes: e54bcde3d69d ("arm64: eBPF JIT compiler") Cc: # 3.18+ Cc: Zi Shen Lim Cc: Will Deacon Acked-by: Alexei Starovoitov Signed-off-by: Xi Wang Signed-off-by: Catalin Marinas arch/arm64/net/bpf_jit_comp.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit be081d9bf3e163a9ed1ca2f0f14f08424c7f9016 Author: Stephen Boyd Date: Wed Jun 24 13:14:18 2015 -0700 ARM64: smp: Fix suspicious RCU usage with ipi tracepoints John Stultz reported an RCU splat on ARM with ipi trace events enabled. It looks like the same problem exists on ARM64. At this point in the IPI handling path we haven't called irq_enter() yet, so RCU doesn't know that we're about to exit idle and properly warns that we're using RCU from an idle CPU. Use trace_ipi_entry_rcuidle() instead of trace_ipi_entry() so that RCU is informed about our exit from idle. Cc: John Stultz Cc: Nicolas Pitre Acked-by: Steven Rostedt Reviewed-by: Paul E. McKenney Cc: # 3.17+ Fixes: 45ed695ac10a ("ARM64: add IPI tracepoints") Signed-off-by: Stephen Boyd Signed-off-by: Catalin Marinas arch/arm64/kernel/smp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 011cb197a84ed547c2b6b12a86adbeec1be0fdaf Merge: b175c3a 592b9b8 Author: David S. Miller Date: Thu Jun 25 06:30:43 2015 -0700 Merge branch 'bnx2x' Yuval Mintz says: ==================== bnx2x: various fixes This patch series contains several small fixes [with the possible exception of the first 2 link fixes] for various driver flows. ==================== Signed-off-by: David S. Miller commit 592b9b8d687827086344705631494e5f232bee50 Author: Yuval Mintz Date: Thu Jun 25 15:19:29 2015 +0300 bnx2x: Fix linearization for encapsulated packets Due to FW constraints, driver must make sure that transmitted SKBs will not be too fragmented, or in the case that they are - that each 'window' of fragments passed to the FW would contain at least an mss worth of data. For encapsultaed packets the calculation is wrong, since it ignores the inner headers in the calculation of the headers' length. This could lead to a FW assertion in case of a too-fragmented encapsulated packet. Signed-off-by: Yuval Mintz Signed-off-by: Ariel Elior Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit efd38b8f52265a1b0ae08a8ee0048958c7fb820f Author: Yuval Mintz Date: Thu Jun 25 15:19:28 2015 +0300 bnx2x: Release nvram lock on error flow During an error flow when trying to access the nvram the driver doesn't release the hw lock it acquired. Signed-off-by: Yuval Mintz Signed-off-by: Ariel Elior Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c | 1 + 1 file changed, 1 insertion(+) commit dc6a20aa3bfcdd23cbc6e2aae79457397e6b6012 Author: Ariel Elior Date: Thu Jun 25 15:19:27 2015 +0300 bnx2x: Fix statistics gathering on link change Since driver statistics flow access MACs and those might reset during link re-configurations, when we're about to change link properties we have to make sure that statistics are not operational. Statisics would be re-enabled [i.e., gathering of statistics would re-commence] once physical link is achieved again. Since driver employs a link-flap avoidance scheme, there are scenarios where driver will receive no indication that the new link is up, and as a result the statistics would not be re-enabled. Preventing LFA from working in such cases would guarantee that we'll always receive such indications and thus will fix statistics gathering. Signed-off-by: Ariel Elior Signed-off-by: Yuval Mintz Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c | 2 ++ 1 file changed, 2 insertions(+) commit 2f43b821b5c00f1f6d66fd183f8e4fc261e02f8a Author: Yuval Mintz Date: Thu Jun 25 15:19:26 2015 +0300 bnx2x: Fix self-test for 20g devices 20g-capable devices are not configured properly for self-test, using 10g as their speed which cause the link indication to remain down and fail the internal loopback test. Signed-off-by: Yuval Mintz Signed-off-by: Ariel Elior Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit bb9e9c1d2093135f55bf72697498b3eb6137b66b Author: Shahed Shaikh Date: Thu Jun 25 15:19:25 2015 +0300 bnx2x: Fix VF MAC removal There's a bug in today's driver where VF requests to add/remove MAC filters always reach the Hypervisor as add requests. This prevents the VF from changing its MAC address, as it cannot remove the previously configured MAC and runs out of MAC credits. Signed-off-by: Shahed Shaikh Signed-off-by: Yuval Mintz Signed-off-by: Ariel Elior Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ad6afbe9578d1fa26680faf78c846bd8c00d1d6e Author: Manish Chopra Date: Thu Jun 25 15:19:24 2015 +0300 bnx2x: Don't notify about scratchpad parities The scratchpad is a shared block between all functions of a given device. Due to HW limitations, we can't properly close its parity notifications to all functions on legal flows. E.g., it's possible that while taking a register dump from one function a parity error would be triggered on other functions. Today driver doesn't consider this parity as a 'real' parity unless its being accompanied by additional indications [which would happen in a real parity scenario]; But it does print notifications for such events in the system logs. This eliminates such prints - in case of real parities driver would have additional indications; But if this is the only signal user will not even see a parity being logged in the system. Signed-off-by: Manish Chopra Signed-off-by: Yuval Mintz Signed-off-by: Ariel Elior Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnx2x/bnx2x.h | 11 +++++++---- drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 20 ++++++++++++++------ 2 files changed, 21 insertions(+), 10 deletions(-) commit 9d18d270d7d160d8fa2f9d9af4545d17cbab91d8 Author: Yuval Mintz Date: Thu Jun 25 15:19:23 2015 +0300 bnx2x: Prevent false warning when accessing MACs Each time a flow finishes reads from the classification shadow configuration in the driver, that flow would check for pending commands and pass them to FW if possible. In case there's already a completion pending command, I.e., a ramrod that has been sent to the FW and is yet to be completed while said flow tries to configure the pending command we would get a false error message in logs [and panic if SOE was used for driver compilation] since the command could not have been completed. This prevents said print [and panic]; The pending command will be sent by the time the completion of the current sent command would arrive. Signed-off-by: Yuval Mintz Signed-off-by: Ariel Elior Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5d67c1c593d005653357d638569d85ede4a365a3 Author: Yuval Mintz Date: Thu Jun 25 15:19:22 2015 +0300 bnx2x: Correct speed from baseT into KR. ethtool shows KR supported/advertised speeds incorrectly as baseT in cases the board is in fact KR-base. Signed-off-by: Yaniv Rosner Signed-off-by: Yuval Mintz Signed-off-by: David S. Miller .../net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c | 55 ++++++++++++++++------ drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c | 10 ++-- drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 13 +++++ 3 files changed, 59 insertions(+), 19 deletions(-) commit 1359d73c1d6fa737545d946f9bcb4b9a6b13a6ea Author: Yuval Mintz Date: Thu Jun 25 15:19:21 2015 +0300 bnx2x: Correct asymmetric flow-control This fixes several issues relating to asymmetric configuration: 1. When user requests to disable TX, the local-device needs to advertise both PAUSE and ASM_DIR, but to avoid transmitting pause frames. In the 578xx, it would ignore the TX disable. 2. When user advertises RX-only, ASM_DIR was advertised instead of PAUSE/ASM_DIR. 3. When changing mode, the advertised PAUSE/ASM_DIR was not cleared before setting new one, so disabling RX or TX had no impact on the 'advertised' as appeared in the 'ethtool -a' output. Signed-off-by: Yaniv Rosner Signed-off-by: Yuval Mintz Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c | 33 +++++++++++++++++++----- drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 10 +++---- 2 files changed, 29 insertions(+), 14 deletions(-) commit f01cae4e1a9bc845ee125cdb763ccf18298d3fdc Merge: aefbef1 2d89cd8 Author: David S. Miller Date: Thu Jun 25 06:01:10 2015 -0700 Merge branch 'sparc-perf-stack' David Ahern says: ==================== sparc64: perf fixes for userspace stacks Coming back to the perf userspace callchain problem. As a reminder there are a series of problems trying to use perf to collect callchains with scheduling tracepoints, e.g., perf sched record -g -- . The first patch disables pagefaults while walking the user stack. As discussed a couple of months ago this is the right fix, but I was puzzled as to why processes were terminating with sigbus (and sometimes sigsegv). I believe the root of this problem is bad addresses trying to walk the frames using frame pointers. The bad addresses lead to faults that get handled by do_sparc64_fault and it aborts the task though I am still puzzled as to why it gets past this check in do_sparc64_fault: if (in_atomic() || !mm) goto intr_or_no_mm; pagefault_disable bumps the preempt_count which should make in_atomic return != 0 (building kernels with preemption set to voluntar, CONFIG_PREEMPT_VOLUNTARY=y). While this set does not fully solve the problem it does prevent a number of pain points with the current code, most notably able to lock up the system. ==================== Signed-off-by: David S. Miller commit 2d89cd8625c4af01a2683b18c3c8194cc3b3067c Author: David Ahern Date: Mon Jun 15 16:15:46 2015 -0400 sparc64: perf: Use UREG_FP rather than UREG_I6 perf walks userspace callchains by following frame pointers. Use the UREG_FP macro to make it clearer that the %fp is being used. Signed-off-by: David Ahern Signed-off-by: David S. Miller arch/sparc/kernel/perf_event.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b69fb7699c92f85991672fc144b0adb7c717fbc8 Author: David Ahern Date: Mon Jun 15 16:15:45 2015 -0400 sparc64: perf: Add sanity checking on addresses in user stack Processes are getting killed (sigbus or segv) while walking userspace callchains when using perf. In some instances I have seen ufp = 0x7ff which does not seem like a proper stack address. This patch adds a function to run validity checks against the address before attempting the copy_from_user. The checks are copied from the x86 version as a start point with the addition of a 4-byte alignment check. Signed-off-by: David Ahern Signed-off-by: David S. Miller arch/sparc/include/asm/uaccess_64.h | 22 ++++++++++++++++++++++ arch/sparc/kernel/perf_event.c | 13 +++++++++++++ 2 files changed, 35 insertions(+) commit 2bf7c3efc393937d1e5f92681501a914dbfbae07 Author: David Ahern Date: Mon Jun 15 16:15:44 2015 -0400 sparc64: Convert BUG_ON to warning Pagefault handling has a BUG_ON path that panics the system. Convert it to a warning instead. There is no need to bring down the system for this kind of failure. The following was hit while running: perf sched record -g -- make -j 16 [3609412.782801] kernel BUG at /opt/dahern/linux.git/arch/sparc/mm/fault_64.c:416! [3609412.782833] \|/ ____ \|/ [3609412.782833] "@'/ .. \`@" [3609412.782833] /_| \__/ |_\ [3609412.782833] \__U_/ [3609412.782870] cat(4516): Kernel bad sw trap 5 [#1] [3609412.782889] CPU: 0 PID: 4516 Comm: cat Tainted: G E 4.1.0-rc8+ #6 [3609412.782909] task: fff8000126e31f80 ti: fff8000110d90000 task.ti: fff8000110d90000 [3609412.782931] TSTATE: 0000004411001603 TPC: 000000000096b164 TNPC: 000000000096b168 Y: 0000004e Tainted: G E [3609412.782964] TPC: [3609412.782979] g0: 000000000096abe0 g1: 0000000000d314c4 g2: 0000000000000000 g3: 0000000000000001 [3609412.783009] g4: fff8000126e31f80 g5: fff80001302d2000 g6: fff8000110d90000 g7: 00000000000000ff [3609412.783045] o0: 0000000000aff6a8 o1: 00000000000001a0 o2: 0000000000000001 o3: 0000000000000054 [3609412.783080] o4: fff8000100026820 o5: 0000000000000001 sp: fff8000110d935f1 ret_pc: 000000000096b15c [3609412.783117] RPC: [3609412.783137] l0: 000007feff996000 l1: 0000000000030001 l2: 0000000000000004 l3: fff8000127bd0120 [3609412.783174] l4: 0000000000000054 l5: fff8000127bd0188 l6: 0000000000000000 l7: fff8000110d9dba8 [3609412.783210] i0: fff8000110d93f60 i1: fff8000110ca5530 i2: 000000000000003f i3: 0000000000000054 [3609412.783244] i4: fff800010000081a i5: fff8000100000398 i6: fff8000110d936a1 i7: 0000000000407c6c [3609412.783286] I7: [3609412.783308] Call Trace: [3609412.783329] [0000000000407c6c] sparc64_realfault_common+0x10/0x20 [3609412.783353] Disabling lock debugging due to kernel taint [3609412.783379] Caller[0000000000407c6c]: sparc64_realfault_common+0x10/0x20 [3609412.783449] Caller[fff80001002283e4]: 0xfff80001002283e4 [3609412.783471] Instruction DUMP: 921021a0 7feaff91 901222a8 <91d02005> 82086100 02f87f7b 808a2873 81cfe008 01000000 [3609412.783542] Kernel panic - not syncing: Fatal exception [3609412.784605] Press Stop-A (L1-A) to return to the boot prom [3609412.784615] ---[ end Kernel panic - not syncing: Fatal exception With this patch rather than a panic I occasionally get something like this: perf sched record -g -m 1024 -- make -j N where N is based on number of cpus (128 to 1024 for a T7-4 and 8 for an 8 cpu VM on a T5-2). WARNING: CPU: 211 PID: 52565 at /opt/dahern/linux.git/arch/sparc/mm/fault_64.c:417 do_sparc64_fault+0x340/0x70c() address (7feffcd6000) != regs->tpc (fff80001004873c0) Modules linked in: ipt_REJECT nf_reject_ipv4 nf_conntrack_ipv4 nf_defrag_ipv4 iptable_filter ip_tables ip6t_REJECT nf_reject_ipv6 xt_tcpudp nf_conntrack_ipv6 nf_defrag_ipv6 xt_state nf_conntrack ip6table_filter ip6_tables x_tables ipv6 cdc_ether usbnet mii ixgbe mdio igb i2c_algo_bit i2c_core ptp crc32c_sparc64 camellia_sparc64 des_sparc64 des_generic md5_sparc64 sha512_sparc64 sha1_sparc64 uio_pdrv_genirq uio usb_storage mpt3sas scsi_transport_sas raid_class aes_sparc64 sunvnet sunvdc sha256_sparc64(E) sha256_generic(E) CPU: 211 PID: 52565 Comm: ld Tainted: G W E 4.1.0-rc8+ #19 Call Trace: [000000000045ce30] warn_slowpath_common+0x7c/0xa0 [000000000045ceec] warn_slowpath_fmt+0x30/0x40 [000000000098ad64] do_sparc64_fault+0x340/0x70c [0000000000407c2c] sparc64_realfault_common+0x10/0x20 ---[ end trace 62ee02065a01a049 ]--- ld[52565]: segfault at fff80001004873c0 ip fff80001004873c0 (rpc fff8000100158868) sp 000007feffcd70e1 error 30002 in libc-2.12.so[fff8000100410000+184000] The segfault is horrible, but better than a system panic. An 8-cpu VM on a T5-2 also showed the above traces from time to time, so it is a general problem and not specific to the T7 or baremetal. Signed-off-by: David Ahern Signed-off-by: David S. Miller arch/sparc/mm/fault_64.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit c17af4dd96aa99e6e58b5d715a7c66db63a15106 Author: David Ahern Date: Mon Jun 15 16:15:43 2015 -0400 sparc: perf: Disable pagefaults while walking userspace stacks Page faults generated walking userspace stacks can call schedule to switch out the task. When collecting callchains for scheduler tracepoints this causes a deadlock as the tracepoints can be hit with the runqueue lock held: [ 8138.159054] WARNING: CPU: 758 PID: 12488 at /opt/dahern/linux.git/arch/sparc/kernel/nmi.c:80 perfctr_irq+0x1f8/0x2b4() [ 8138.203152] Watchdog detected hard LOCKUP on cpu 758 [ 8138.410969] CPU: 758 PID: 12488 Comm: perf Not tainted 4.0.0-rc6+ #6 [ 8138.437146] Call Trace: [ 8138.447193] [000000000045cdd4] warn_slowpath_common+0x7c/0xa0 [ 8138.471238] [000000000045ce90] warn_slowpath_fmt+0x30/0x40 [ 8138.494189] [0000000000983e38] perfctr_irq+0x1f8/0x2b4 [ 8138.515716] [00000000004209f4] tl0_irq15+0x14/0x20 [ 8138.535791] [00000000009839ec] _raw_spin_trylock_bh+0x68/0x108 [ 8138.560180] [0000000000980018] __schedule+0xcc/0x710 [ 8138.580981] [00000000009806dc] preempt_schedule_common+0x10/0x3c [ 8138.606082] [000000000098077c] _cond_resched+0x34/0x44 [ 8138.627603] [0000000000565990] kmem_cache_alloc_node+0x24/0x1a0 [ 8138.652345] [0000000000450b60] tsb_grow+0xac/0x488 [ 8138.672429] [0000000000985040] do_sparc64_fault+0x4dc/0x6e4 [ 8138.695736] [0000000000407c2c] sparc64_realfault_common+0x10/0x20 [ 8138.721202] [00000000006f2e24] NG4copy_from_user+0xa4/0x3c0 [ 8138.744510] [000000000044f900] perf_callchain_user+0x5c/0x6c [ 8138.768182] [0000000000517b5c] perf_callchain+0x16c/0x19c [ 8138.790774] [0000000000515f84] perf_prepare_sample+0x68/0x218 [ 8138.814801] ---[ end trace 42ca6294b1ff7573 ]--- As with PowerPC (b59a1bfcc240, "powerpc/perf: Disable pagefaults during callchain stack read") disable pagefaults while walking userspace stacks. Signed-off-by: David Ahern Signed-off-by: David S. Miller arch/sparc/kernel/perf_event.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit b175c3a44fab06e1eccc793e3dadccbf6afc54cf Author: Jamal Hadi Salim Date: Thu Jun 25 06:55:27 2015 -0400 net: sched: flower fix typo Fix typo in the validation rules for flower's attributes Signed-off-by: Jamal Hadi Salim Signed-off-by: David S. Miller net/sched/cls_flower.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit f586a3360197a63b5423001553ab23025242ac72 Author: Govindarajulu Varadarajan <_govind@gmx.com> Date: Thu Jun 25 16:02:04 2015 +0530 enic: use atomic_t instead of spin_lock in busy poll We use spinlock to access a single flag. We can avoid spin_locks by using atomic variable and atomic_cmpxchg(). Use atomic_cmpxchg to set the flag for idle to poll. And a simple atomic_set to unlock (set idle from poll). In napi poll, if gro is enabled, we call napi_gro_receive() to deliver the packets. Before we call napi_complete(), i.e while re-polling, if low latency busy poll is called, we use netif_receive_skb() to deliver the packets. At this point if there are some skb's held in GRO, busy poll could deliver the packets out of order. So we call napi_gro_flush() to flush skbs before we move the napi poll to idle. Signed-off-by: Govindarajulu Varadarajan <_govind@gmx.com> Signed-off-by: David S. Miller drivers/net/ethernet/cisco/enic/enic_main.c | 4 +- drivers/net/ethernet/cisco/enic/vnic_rq.h | 91 +++++++++-------------------- 2 files changed, 29 insertions(+), 66 deletions(-) commit 08dad486d98e55d49b760cbaa20b71f35566d4e6 Author: Jiang Liu Date: Thu Jun 4 12:13:12 2015 +0800 genirq: Remove irq_node() Macro irq_node() has no user. Remove it. Signed-off-by: Jiang Liu Cc: Konrad Rzeszutek Wilk Cc: Tony Luck Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Link: http://lkml.kernel.org/r/1433391238-19471-3-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner include/linux/irqnr.h | 6 ------ 1 file changed, 6 deletions(-) commit daf7ab7c58ac5f6304b63cca47a06cdc213361d7 Author: Jiang Liu Date: Thu Jun 4 12:13:11 2015 +0800 genirq: Clean up outdated comments related to include/linux/irqdesc.h Seems we have little chance to move irqdesc.h from include/linux/ into kernel/irq/, so remove the outdated comments. 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/1433391238-19471-2-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner include/linux/irq.h | 1 - include/linux/irqdesc.h | 3 --- 2 files changed, 4 deletions(-) commit 856b859df4237ed10176c6afc2c97aa90ab04ffc Author: Jiang Liu Date: Mon Jun 1 16:05:22 2015 +0800 mn10300: Fix incorrect use of irq_data->affinity The field affinity in struct irq_data is type of cpumask_var_t, so we should pass in data->affinity instead of &data->affinity when calling cpumask_xxxx(). Signed-off-by: Jiang Liu Cc: Konrad Rzeszutek Wilk Cc: Tony Luck Cc: linux-am33-list@redhat.com Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: David Howells Cc: Koichi Yasutake Link: http://lkml.kernel.org/r/1433145945-789-14-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/mn10300/kernel/irq.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 5c1642e4d2e475bbfb13da15c6ca16a23ba889bb Author: Thomas Gleixner Date: Sun Jun 21 21:00:43 2015 +0200 MIPS/ralink: Fix race in installing chained IRQ handler Fix a race where a pending interrupt could be received and the handler called before the handler's data has been setup, by converting to irq_set_chained_handler_and_data(). Search and conversion was done with coccinelle: @@ expression E1, E2, E3; @@ ( -if (irq_set_chained_handler(E1, E3) != 0) - BUG(); | -irq_set_chained_handler(E1, E3); ) -irq_set_handler_data(E1, E2); +irq_set_chained_handler_and_data(E1, E3, E2); @@ expression E1, E2, E3; @@ ( -if (irq_set_chained_handler(E1, E3) != 0) - BUG(); ... | -irq_set_chained_handler(E1, E3); ... ) -irq_set_handler_data(E1, E2); +irq_set_chained_handler_and_data(E1, E3, E2); Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Ralf Baechle Cc: Qais Yousef Cc: Andrew Bresticker Cc: John Crispin Cc: linux-mips@linux-mips.org arch/mips/ralink/irq.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 746ad9a7a1fef789a9f579441b4a7b686fa85aa2 Author: Thomas Gleixner Date: Sun Jun 21 21:00:38 2015 +0200 MIPS/pci: Fix race in installing chained IRQ handler Fix a race where a pending interrupt could be received and the handler called before the handler's data has been setup, by converting to irq_set_chained_handler_and_data(). Search and conversion was done with coccinelle: @@ expression E1, E2, E3; @@ ( -if (irq_set_chained_handler(E1, E3) != 0) - BUG(); | -irq_set_chained_handler(E1, E3); ) -irq_set_handler_data(E1, E2); +irq_set_chained_handler_and_data(E1, E3, E2); @@ expression E1, E2, E3; @@ ( -if (irq_set_chained_handler(E1, E3) != 0) - BUG(); ... | -irq_set_chained_handler(E1, E3); ... ) -irq_set_handler_data(E1, E2); +irq_set_chained_handler_and_data(E1, E3, E2); Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Ralf Baechle Cc: Wolfram Sang Cc: Sergey Ryazanov Cc: linux-mips@linux-mips.org arch/mips/pci/pci-ar2315.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 08ece35e7dcc24591e27089029f1fea14e76d1fa Author: Thomas Gleixner Date: Sun Jun 21 21:00:34 2015 +0200 MIPS/ath25: Fix race in installing chained IRQ handler Fix a race where a pending interrupt could be received and the handler called before the handler's data has been setup, by converting to irq_set_chained_handler_and_data(). Search and conversion was done with coccinelle: @@ expression E1, E2, E3; @@ ( -if (irq_set_chained_handler(E1, E3) != 0) - BUG(); | -irq_set_chained_handler(E1, E3); ) -irq_set_handler_data(E1, E2); +irq_set_chained_handler_and_data(E1, E3, E2); @@ expression E1, E2, E3; @@ ( -if (irq_set_chained_handler(E1, E3) != 0) - BUG(); ... | -irq_set_chained_handler(E1, E3); ... ) -irq_set_handler_data(E1, E2); +irq_set_chained_handler_and_data(E1, E3, E2); Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Ralf Baechle Cc: Sergey Ryazanov Cc: linux-mips@linux-mips.org arch/mips/ath25/ar5312.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 20f83e717f287fd13fd85359624f10f3206bd34d Author: Thomas Gleixner Date: Sun Jun 21 21:00:31 2015 +0200 MIPS/ath25: Fix race in installing chained IRQ handler Fix a race where a pending interrupt could be received and the handler called before the handler's data has been setup, by converting to irq_set_chained_handler_and_data(). Search and conversion was done with coccinelle: @@ expression E1, E2, E3; @@ ( -if (irq_set_chained_handler(E1, E3) != 0) - BUG(); | -irq_set_chained_handler(E1, E3); ) -irq_set_handler_data(E1, E2); +irq_set_chained_handler_and_data(E1, E3, E2); @@ expression E1, E2, E3; @@ ( -if (irq_set_chained_handler(E1, E3) != 0) - BUG(); ... | -irq_set_chained_handler(E1, E3); ... ) -irq_set_handler_data(E1, E2); +irq_set_chained_handler_and_data(E1, E3, E2); Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Ralf Baechle Cc: Sergey Ryazanov Cc: linux-mips@linux-mips.org arch/mips/ath25/ar2315.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 09c5cb942f7545e53819ee2ca72fe843d23880e5 Author: Thomas Gleixner Date: Sun Jun 21 21:00:30 2015 +0200 m68k/psc: Fix race in installing chained IRQ handler Fix a race where a pending interrupt could be received and the handler called before the handler's data has been setup, by converting to irq_set_chained_handler_and_data(). Search and conversion was done with coccinelle: @@ expression E1, E2, E3; @@ ( -if (irq_set_chained_handler(E1, E3) != 0) - BUG(); | -irq_set_chained_handler(E1, E3); ) -irq_set_handler_data(E1, E2); +irq_set_chained_handler_and_data(E1, E3, E2); @@ expression E1, E2, E3; @@ ( -if (irq_set_chained_handler(E1, E3) != 0) - BUG(); ... | -irq_set_chained_handler(E1, E3); ... ) -irq_set_handler_data(E1, E2); +irq_set_chained_handler_and_data(E1, E3, E2); Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Joshua Thompson Cc: Geert Uytterhoeven Cc: linux-m68k@lists.linux-m68k.org arch/m68k/mac/psc.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) commit bf54da7d3a49d3359574cdc1590bbc79ee19be6a Author: Thomas Gleixner Date: Sun Jun 21 21:00:29 2015 +0200 avr32/at32ap: Fix race in installing chained IRQ handler Fix a race where a pending interrupt could be received and the handler called before the handler's data has been setup, by converting to irq_set_chained_handler_and_data(). Search and conversion was done with coccinelle: @@ expression E1, E2, E3; @@ ( -if (irq_set_chained_handler(E1, E3) != 0) - BUG(); | -irq_set_chained_handler(E1, E3); ) -irq_set_handler_data(E1, E2); +irq_set_chained_handler_and_data(E1, E3, E2); @@ expression E1, E2, E3; @@ ( -if (irq_set_chained_handler(E1, E3) != 0) - BUG(); ... | -irq_set_chained_handler(E1, E3); ... ) -irq_set_handler_data(E1, E2); +irq_set_chained_handler_and_data(E1, E3, E2); Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Haavard Skinnemoen Cc: Hans-Christian Egtvedt arch/avr32/mach-at32ap/extint.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 51b971b1b93ab5d1d2e9205c9752c8ffbbcfe303 Author: Thomas Gleixner Date: Sun Jun 21 20:16:21 2015 +0200 sh/intc: Fix race in installing chained IRQ handler Fix a race where a pending interrupt could be received and the handler called before the handler's data has been setup, by converting to irq_set_chained_handler_and_data(). Search and conversion was done with coccinelle: @@ expression E1, E2, E3; @@ ( -if (irq_set_chained_handler(E1, E3) != 0) - BUG(); | -irq_set_chained_handler(E1, E3); ) -irq_set_handler_data(E1, E2); +irq_set_chained_handler_and_data(E1, E3, E2); @@ expression E1, E2, E3; @@ ( -if (irq_set_chained_handler(E1, E3) != 0) - BUG(); ... | -irq_set_chained_handler(E1, E3); ... ) -irq_set_handler_data(E1, E2); +irq_set_chained_handler_and_data(E1, E3, E2); Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Simon Horman Cc: Magnus Damm Cc: linux-sh@vger.kernel.org drivers/sh/intc/core.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit beab99fe835be1d9ef1112dabdae3aa417126430 Author: Thomas Gleixner Date: Mon Jun 22 11:31:34 2015 +0200 sh/intc: Fix potential race in installing chained IRQ handler Fix a race where a pending interrupt could be received and the handler called before the handler's data has been setup, by moving the call to irq_set_chained_handler() after the function which sets up the handler data. Found by code inspection. Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Simon Horman Cc: Magnus Damm Cc: linux-sh@vger.kernel.org drivers/sh/intc/virq.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit ef80e87d20d115eaee15da666f1a3551328205bb Author: Thomas Gleixner Date: Sun Jun 21 20:16:18 2015 +0200 pinctrl/sun4i: Fix race in installing chained IRQ handler Fix a race where a pending interrupt could be received and the handler called before the handler's data has been setup, by converting to irq_set_chained_handler_and_data(). Search and conversion was done with coccinelle: @@ expression E1, E2, E3; @@ ( -if (irq_set_chained_handler(E1, E3) != 0) - BUG(); | -irq_set_chained_handler(E1, E3); ) -irq_set_handler_data(E1, E2); +irq_set_chained_handler_and_data(E1, E3, E2); @@ expression E1, E2, E3; @@ ( -if (irq_set_chained_handler(E1, E3) != 0) - BUG(); ... | -irq_set_chained_handler(E1, E3); ... ) -irq_set_handler_data(E1, E2); +irq_set_chained_handler_and_data(E1, E3, E2); Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Linus Walleij Cc: Maxime Ripard Cc: Hans de Goede Cc: Chen-Yu Tsai Cc: Fan Wu Cc: abdoulaye berthe Cc: Alexandre Courbot Cc: linux-gpio@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org drivers/pinctrl/sunxi/pinctrl-sunxi.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 623a650ebc886f6a6827d9ccc38856ab10391a9c Author: Thomas Gleixner Date: Sun Jun 21 20:16:18 2015 +0200 pinctrl/samsung: Fix race in installing chained IRQ handler Fix a race where a pending interrupt could be received and the handler called before the handler's data has been setup, by converting to irq_set_chained_handler_and_data(). Search and conversion was done with coccinelle: @@ expression E1, E2, E3; @@ ( -if (irq_set_chained_handler(E1, E3) != 0) - BUG(); | -irq_set_chained_handler(E1, E3); ) -irq_set_handler_data(E1, E2); +irq_set_chained_handler_and_data(E1, E3, E2); @@ expression E1, E2, E3; @@ ( -if (irq_set_chained_handler(E1, E3) != 0) - BUG(); ... | -irq_set_chained_handler(E1, E3); ... ) -irq_set_handler_data(E1, E2); +irq_set_chained_handler_and_data(E1, E3, E2); Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Tomasz Figa Cc: Thomas Abraham Cc: Linus Walleij Cc: linux-arm-kernel@lists.infradead.org Cc: linux-samsung-soc@vger.kernel.org Cc: linux-gpio@vger.kernel.org drivers/pinctrl/samsung/pinctrl-s3c64xx.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 0cfc45cfdf5065cd02e1120169e1de7eb774ae3e Author: Thomas Gleixner Date: Sun Jun 21 20:16:17 2015 +0200 pinctrl/samsung: Fix race in installing chained IRQ handler Fix a race where a pending interrupt could be received and the handler called before the handler's data has been setup, by converting to irq_set_chained_handler_and_data(). Search and conversion was done with coccinelle: @@ expression E1, E2, E3; @@ ( -if (irq_set_chained_handler(E1, E3) != 0) - BUG(); | -irq_set_chained_handler(E1, E3); ) -irq_set_handler_data(E1, E2); +irq_set_chained_handler_and_data(E1, E3, E2); @@ expression E1, E2, E3; @@ ( -if (irq_set_chained_handler(E1, E3) != 0) - BUG(); ... | -irq_set_chained_handler(E1, E3); ... ) -irq_set_handler_data(E1, E2); +irq_set_chained_handler_and_data(E1, E3, E2); Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Tomasz Figa Cc: Thomas Abraham Cc: Linus Walleij Cc: linux-arm-kernel@lists.infradead.org Cc: linux-samsung-soc@vger.kernel.org Cc: linux-gpio@vger.kernel.org drivers/pinctrl/samsung/pinctrl-s3c24xx.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit bb56fc3577ea38ee6f7d4aaf25473ebd0f1337a0 Author: Thomas Gleixner Date: Sun Jun 21 20:16:16 2015 +0200 pinctrl/exynos: Fix race in installing chained IRQ handler Fix a race where a pending interrupt could be received and the handler called before the handler's data has been setup, by converting to irq_set_chained_handler_and_data(). Search and conversion was done with coccinelle: @@ expression E1, E2, E3; @@ ( -if (irq_set_chained_handler(E1, E3) != 0) - BUG(); | -irq_set_chained_handler(E1, E3); ) -irq_set_handler_data(E1, E2); +irq_set_chained_handler_and_data(E1, E3, E2); @@ expression E1, E2, E3; @@ ( -if (irq_set_chained_handler(E1, E3) != 0) - BUG(); ... | -irq_set_chained_handler(E1, E3); ... ) -irq_set_handler_data(E1, E2); +irq_set_chained_handler_and_data(E1, E3, E2); Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Tomasz Figa Cc: Thomas Abraham Cc: Linus Walleij Cc: Kukjin Kim Cc: Krzysztof Kozlowski Cc: linux-arm-kernel@lists.infradead.org Cc: linux-samsung-soc@vger.kernel.org Cc: linux-gpio@vger.kernel.org drivers/pinctrl/samsung/pinctrl-exynos.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1b11b0cb799e5f82ca6391a23eaa8f41c7466cc0 Author: Thomas Gleixner Date: Sun Jun 21 20:16:15 2015 +0200 pinctrl/st: Fix race in installing chained IRQ handler Fix a race where a pending interrupt could be received and the handler called before the handler's data has been setup, by converting to irq_set_chained_handler_and_data(). Search and conversion was done with coccinelle: @@ expression E1, E2, E3; @@ ( -if (irq_set_chained_handler(E1, E3) != 0) - BUG(); | -irq_set_chained_handler(E1, E3); ) -irq_set_handler_data(E1, E2); +irq_set_chained_handler_and_data(E1, E3, E2); @@ expression E1, E2, E3; @@ ( -if (irq_set_chained_handler(E1, E3) != 0) - BUG(); ... | -irq_set_chained_handler(E1, E3); ... ) -irq_set_handler_data(E1, E2); +irq_set_chained_handler_and_data(E1, E3, E2); Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Srinivas Kandagatla Cc: Maxime Coquelin Cc: Patrice Chotard Cc: Linus Walleij Cc: linux-arm-kernel@lists.infradead.org Cc: kernel@stlinux.com Cc: linux-gpio@vger.kernel.org drivers/pinctrl/pinctrl-st.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit bb6d6dd38603fba16a89f5a2e48d5c180a1e5439 Author: Thomas Gleixner Date: Sun Jun 21 20:16:15 2015 +0200 pinctrl/adi2: Fix race in installing chained IRQ handler Fix a race where a pending interrupt could be received and the handler called before the handler's data has been setup, by converting to irq_set_chained_handler_and_data(). Search and conversion was done with coccinelle: @@ expression E1, E2, E3; @@ ( -if (irq_set_chained_handler(E1, E3) != 0) - BUG(); | -irq_set_chained_handler(E1, E3); ) -irq_set_handler_data(E1, E2); +irq_set_chained_handler_and_data(E1, E3, E2); @@ expression E1, E2, E3; @@ ( -if (irq_set_chained_handler(E1, E3) != 0) - BUG(); ... | -irq_set_chained_handler(E1, E3); ... ) -irq_set_handler_data(E1, E2); +irq_set_chained_handler_and_data(E1, E3, E2); Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Linus Walleij Cc: linux-gpio@vger.kernel.org drivers/pinctrl/pinctrl-adi2.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1e105921368b10b941bdbf252a156dc6171a6a6b Author: Thomas Gleixner Date: Sun Jun 21 20:16:09 2015 +0200 pinctrl/mediatek: Fix race in installing chained IRQ handler Fix a race where a pending interrupt could be received and the handler called before the handler's data has been setup, by converting to irq_set_chained_handler_and_data(). Search and conversion was done with coccinelle: @@ expression E1, E2, E3; @@ ( -if (irq_set_chained_handler(E1, E3) != 0) - BUG(); | -irq_set_chained_handler(E1, E3); ) -irq_set_handler_data(E1, E2); +irq_set_chained_handler_and_data(E1, E3, E2); @@ expression E1, E2, E3; @@ ( -if (irq_set_chained_handler(E1, E3) != 0) - BUG(); ... | -irq_set_chained_handler(E1, E3); ... ) -irq_set_handler_data(E1, E2); +irq_set_chained_handler_and_data(E1, E3, E2); Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Linus Walleij Cc: Matthias Brugger Cc: Hongzhou Yang Cc: Axel Lin Cc: Yingjoe Chen Cc: Maoguang Meng Cc: Colin Ian King Cc: linux-gpio@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org Cc: linux-mediatek@lists.infradead.org drivers/pinctrl/mediatek/pinctrl-mtk-common.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 2cf5a03cb29debb00681a8af1dfa9179b43404d1 Author: Thomas Gleixner Date: Sun Jun 21 20:16:09 2015 +0200 PCI/keystone: Fix race in installing chained IRQ handler Fix a race where a pending interrupt could be received and the handler called before the handler's data has been setup, by converting to irq_set_chained_handler_and_data(). Search and conversion was done with coccinelle: @@ expression E1, E2, E3; @@ ( -if (irq_set_chained_handler(E1, E3) != 0) - BUG(); | -irq_set_chained_handler(E1, E3); ) -irq_set_handler_data(E1, E2); +irq_set_chained_handler_and_data(E1, E3, E2); @@ expression E1, E2, E3; @@ ( -if (irq_set_chained_handler(E1, E3) != 0) - BUG(); ... | -irq_set_chained_handler(E1, E3); ... ) -irq_set_handler_data(E1, E2); +irq_set_chained_handler_and_data(E1, E3, E2); Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Murali Karicheri Cc: Bjorn Helgaas Cc: linux-pci@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org drivers/pci/host/pci-keystone.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit c30e30478c74e5be2fa3bbe954084a31f0d60570 Author: Thomas Gleixner Date: Sun Jun 21 20:16:06 2015 +0200 mfd/asic3: Fix race in installing chained IRQ handler Fix a race where a pending interrupt could be received and the handler called before the handler's data has been setup, by converting to irq_set_chained_handler_and_data(). Search and conversion was done with coccinelle: @@ expression E1, E2, E3; @@ ( -if (irq_set_chained_handler(E1, E3) != 0) - BUG(); | -irq_set_chained_handler(E1, E3); ) -irq_set_handler_data(E1, E2); +irq_set_chained_handler_and_data(E1, E3, E2); @@ expression E1, E2, E3; @@ ( -if (irq_set_chained_handler(E1, E3) != 0) - BUG(); ... | -irq_set_chained_handler(E1, E3); ... ) -irq_set_handler_data(E1, E2); +irq_set_chained_handler_and_data(E1, E3, E2); Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Samuel Ortiz Cc: Lee Jones drivers/mfd/asic3.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 3fb250ed39b2f883b566826132e04626da5910aa Author: Thomas Gleixner Date: Sun Jun 21 20:16:06 2015 +0200 gpio/msic: Fix race in installing chained IRQ handler Fix a race where a pending interrupt could be received and the handler called before the handler's data has been setup, by converting to irq_set_chained_handler_and_data(). Search and conversion was done with coccinelle: @@ expression E1, E2, E3; @@ ( -if (irq_set_chained_handler(E1, E3) != 0) - BUG(); | -irq_set_chained_handler(E1, E3); ) -irq_set_handler_data(E1, E2); +irq_set_chained_handler_and_data(E1, E3, E2); @@ expression E1, E2, E3; @@ ( -if (irq_set_chained_handler(E1, E3) != 0) - BUG(); ... | -irq_set_chained_handler(E1, E3); ... ) -irq_set_handler_data(E1, E2); +irq_set_chained_handler_and_data(E1, E3, E2); Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Linus Walleij Cc: Alexandre Courbot Cc: linux-gpio@vger.kernel.org drivers/gpio/gpio-msic.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 6218b88d2678523cc2f6f8e3ea1182c250d9684f Author: Thomas Gleixner Date: Sun Jun 21 20:16:05 2015 +0200 gpio/dwapb: Fix race in installing chained IRQ handler Fix a race where a pending interrupt could be received and the handler called before the handler's data has been setup, by converting to irq_set_chained_handler_and_data(). Search and conversion was done with coccinelle: @@ expression E1, E2, E3; @@ ( -if (irq_set_chained_handler(E1, E3) != 0) - BUG(); | -irq_set_chained_handler(E1, E3); ) -irq_set_handler_data(E1, E2); +irq_set_chained_handler_and_data(E1, E3, E2); @@ expression E1, E2, E3; @@ ( -if (irq_set_chained_handler(E1, E3) != 0) - BUG(); ... | -irq_set_chained_handler(E1, E3); ... ) -irq_set_handler_data(E1, E2); +irq_set_chained_handler_and_data(E1, E3, E2); Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Linus Walleij Cc: Alexandre Courbot Cc: linux-gpio@vger.kernel.org drivers/gpio/gpio-dwapb.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b34cc62084e8c44f7c85e95bfc19e21d07f25173 Author: Thomas Gleixner Date: Sun Jun 21 20:16:04 2015 +0200 gpio/bcm-kona: Fix race in installing chained IRQ handler Fix a race where a pending interrupt could be received and the handler called before the handler's data has been setup, by converting to irq_set_chained_handler_and_data(). Search and conversion was done with coccinelle: @@ expression E1, E2, E3; @@ ( -if (irq_set_chained_handler(E1, E3) != 0) - BUG(); | -irq_set_chained_handler(E1, E3); ) -irq_set_handler_data(E1, E2); +irq_set_chained_handler_and_data(E1, E3, E2); @@ expression E1, E2, E3; @@ ( -if (irq_set_chained_handler(E1, E3) != 0) - BUG(); ... | -irq_set_chained_handler(E1, E3); ... ) -irq_set_handler_data(E1, E2); +irq_set_chained_handler_and_data(E1, E3, E2); Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Ray Jui Cc: Linus Walleij Cc: Alexandre Courbot Cc: bcm-kernel-feedback-list@broadcom.com Cc: linux-gpio@vger.kernel.org drivers/gpio/gpio-bcm-kona.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 1298267b548a78840bd4b3e030993ff8747ca5e6 Author: Shaohui Xie Date: Thu Jun 25 13:34:27 2015 +0800 net/phy: Add Vitesse 8641 phy ID Vitesse VSC8641 is compatible with Vitesse 82xx Signed-off-by: Shaohui Xie Signed-off-by: David S. Miller drivers/net/phy/vitesse.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit bbc65bf7e081ac135e8152f639372ac0d52240cf Author: Alison Wang Date: Thu Jun 25 11:34:38 2015 +0800 net/fsl: remove dependency FSL_SOC for Gianfar CONFIG_GIANFAR is not depended on FSL_SOC, it can be built on non-PPC platforms. Signed-off-by: Alison Wang Signed-off-by: David S. Miller drivers/net/ethernet/freescale/Kconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit cbdb97773e906c5c4cafa51816436cdc35b1d1c8 Author: Dan Carpenter Date: Wed Jun 24 17:47:02 2015 +0300 cavium/liquidio: fix some error handling in lio_set_phys_id() There was a missing assignment so the "if (ret)" on the next line is never true. Fixes: f21fb3ed364b ('Add support of Cavium Liquidio ethernet adapters') Signed-off-by: Dan Carpenter Signed-off-by: David S. Miller drivers/net/ethernet/cavium/liquidio/lio_ethtool.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 5102e237912adf5c826cc7421fe25da66d293e94 Author: Dan Carpenter Date: Wed Jun 24 17:32:54 2015 +0300 renesas: missing unlock on error path We need to unlock before returning here. Fixes: a0d2f20650e8 ('Renesas Ethernet AVB PTP clock driver') Signed-off-by: Dan Carpenter Acked-by: Sergei Shtylyov Signed-off-by: David S. Miller drivers/net/ethernet/renesas/ravb_ptp.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit be35ffa38e48da6402f08e10988dc9969ca92962 Merge: aefbef1 7254acf Author: David S. Miller Date: Thu Jun 25 02:06:33 2015 -0700 Merge branch 'mlx4' Or Gerlitz says: ==================== mlx4 driver fixes, June 24, 2015 Some fixes that we made recently, all need to go into stable. patch #1 "net/mlx4_en: Release TX QP when destroying TX ring" and patch #3 "Fix wrong csum complete report when rxvlan offload is disabled" to >= 3.19 patch #2 "Wake TX queues only when there's enough room" addressing a bug which is there from day one... should go to whatever kernels it's still applicable patch #4 "mlx4: Disable HA for SRIOV PF RoCE devices" to >= 4.0 The patches are marked with net but are made against net-next, as the net tree still doesn't contain all the net-next bits. ==================== Signed-off-by: David S. Miller commit 7254acffeeec3c0a75b9c5364c29a6eb00014930 Author: Or Gerlitz Date: Thu Jun 25 11:29:44 2015 +0300 mlx4: Disable HA for SRIOV PF RoCE devices When in HA mode, the driver exposes an IB (RoCE) device instance with only one port. Under SRIOV, the existing implementation doesn't go well with the PF RoCE driver's role of Special QPs Para-Virtualization, etc. As such, disable HA for the mlx4 PF RoCE device in SRIOV mode. Fixes: a57500903093 ('IB/mlx4: Add port aggregation support') Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/intf.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 79a258526ce1051cb9684018c25a89d51ac21be8 Author: Ido Shamay Date: Thu Jun 25 11:29:43 2015 +0300 net/mlx4_en: Fix wrong csum complete report when rxvlan offload is disabled The check_csum() function relied on hwtstamp_rx_filter to know if rxvlan offload is disabled. This is wrong since rxvlan offload can be switched on/off regardless of hwtstamp_rx_filter. Also moved check_csum to query CQE information to identify VLAN packets and removed the check of IP packets, since it has been validated before. Fixes: f8c6455bb04b ('net/mlx4_en: Extend checksum offloading by CHECKSUM COMPLETE') Signed-off-by: Ido Shamay Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/en_rx.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) commit 488a9b48e398b157703766e2cd91ea45ac6997c5 Author: Ido Shamay Date: Thu Jun 25 11:29:42 2015 +0300 net/mlx4_en: Wake TX queues only when there's enough room Indication of a single completed packet, marked by txbbs_skipped being bigger then zero, in not enough in order to wake up a stopped TX queue. The completed packet may contain a single TXBB, while next packet to be sent (after the wake up) may have multiple TXBBs (LSO/TSO packets for example), causing overflow in queue followed by WQE corruption and TX queue timeout. Instead, wake the stopped queue only when there's enough room for the worst case (maximum sized WQE) packet that we should need to handle after the queue is opened again. Also created an helper routine - mlx4_en_is_tx_ring_full, which checks if the current TX ring is full or not. It provides better code readability and removes code duplication. Signed-off-by: Ido Shamay Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/en_tx.c | 19 +++++++++++-------- drivers/net/ethernet/mellanox/mlx4/mlx4_en.h | 1 + 2 files changed, 12 insertions(+), 8 deletions(-) commit 0eb08514fdbdcd16fd6870680cd638f203662e9d Author: Eran Ben Elisha Date: Thu Jun 25 11:29:41 2015 +0300 net/mlx4_en: Release TX QP when destroying TX ring TX ring QP wasn't released at mlx4_en_destroy_tx_ring. Instead, the code used the deprecated base_tx_qpn field. Move TX QP release to mlx4_en_destroy_tx_ring and remove the base_tx_qpn field. Fixes: ddae0349fdb7 ('net/mlx4: Change QP allocation scheme') Signed-off-by: Eran Ben Elisha Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/en_netdev.c | 4 ---- drivers/net/ethernet/mellanox/mlx4/en_tx.c | 1 + drivers/net/ethernet/mellanox/mlx4/mlx4_en.h | 1 - 3 files changed, 1 insertion(+), 5 deletions(-) commit fdd4e15838e59c394a1ec4963b57c22c12608685 Author: Yan, Zheng Date: Tue Jun 16 20:48:56 2015 +0800 ceph: rework dcache readdir Previously our dcache readdir code relies on that child dentries in directory dentry's d_subdir list are sorted by dentry's offset in descending order. When adding dentries to the dcache, if a dentry already exists, our readdir code moves it to head of directory dentry's d_subdir list. This design relies on dcache internals. Al Viro suggests using ncpfs's approach: keeping array of pointers to dentries in page cache of directory inode. the validity of those pointers are presented by directory inode's complete and ordered flags. When a dentry gets pruned, we clear directory inode's complete flag in the d_prune() callback. Before moving a dentry to other directory, we clear the ordered flag for both old and new directory. Signed-off-by: Yan, Zheng fs/ceph/caps.c | 14 ++- fs/ceph/dir.c | 313 ++++++++++++++++++++++++++------------------------- fs/ceph/file.c | 2 +- fs/ceph/inode.c | 118 ++++++++++++++----- fs/ceph/mds_client.h | 3 + fs/ceph/super.h | 60 +++++----- 6 files changed, 295 insertions(+), 215 deletions(-) commit b459be739f97e2062b2ba77cfe8ea198dbd58904 Author: Ilya Dryomov Date: Fri Jun 12 13:21:07 2015 +0300 crush: sync up with userspace .. up to ceph.git commit 1db1abc8328d ("crush: eliminate ad hoc diff between kernel and userspace"). This fixes a bunch of recently pulled coding style issues and makes includes a bit cleaner. A patch "crush:Make the function crush_ln static" from Nicholas Krause is folded in as crush_ln() has been made static in userspace as well. Signed-off-by: Ilya Dryomov include/linux/crush/crush.h | 40 +++++++++++- include/linux/crush/hash.h | 6 ++ include/linux/crush/mapper.h | 2 +- net/ceph/crush/crush.c | 13 ++-- net/ceph/crush/crush_ln_table.h | 32 +++++----- net/ceph/crush/hash.c | 8 ++- net/ceph/crush/mapper.c | 137 ++++++++++++++++++++++++++-------------- 7 files changed, 160 insertions(+), 78 deletions(-) commit 8f529795bace5d6263b134f4ff3adccfc0a0cce6 Author: Ilya Dryomov Date: Fri Jun 12 11:20:03 2015 +0300 crush: fix crash from invalid 'take' argument Verify that the 'take' argument is a valid device or bucket. Otherwise ignore it (do not add the value to the working vector). Reflects ceph.git commit 9324d0a1af61e1c234cc48e2175b4e6320fff8f4. Signed-off-by: Ilya Dryomov net/ceph/crush/mapper.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) commit 687265e5a885d6308f5d73e738efe3c2674fa218 Author: Yan, Zheng Date: Sat Jun 13 17:27:05 2015 +0800 ceph: switch some GFP_NOFS memory allocation to GFP_KERNEL GFP_NOFS memory allocation is required for page writeback path. But there is no need to use GFP_NOFS in syscall path and readpage path Signed-off-by: Yan, Zheng fs/ceph/acl.c | 4 ++-- fs/ceph/addr.c | 4 ++-- fs/ceph/dir.c | 10 +++++----- fs/ceph/file.c | 8 ++++---- fs/ceph/mds_client.c | 3 ++- 5 files changed, 15 insertions(+), 14 deletions(-) commit f66fd9f0952187d274c13c136b74548f792c1925 Author: Yan, Zheng Date: Wed Jun 10 17:26:13 2015 +0800 ceph: pre-allocate data structure that tracks caps flushing Signed-off-by: Yan, Zheng fs/ceph/addr.c | 19 +++++++++++++++---- fs/ceph/caps.c | 26 ++++++++++++++++++++++---- fs/ceph/file.c | 18 ++++++++++++++++-- fs/ceph/inode.c | 15 +++++++++++++-- fs/ceph/mds_client.c | 6 +++++- fs/ceph/super.c | 8 ++++++++ fs/ceph/super.h | 6 +++++- fs/ceph/xattr.c | 20 ++++++++++++++++++-- include/linux/ceph/libceph.h | 1 + 9 files changed, 103 insertions(+), 16 deletions(-) commit e548e9b93d3e565e42b938a99804114565be1f81 Author: Yan, Zheng Date: Wed Jun 10 15:17:56 2015 +0800 ceph: re-send flushing caps (which are revoked) in reconnect stage if flushing caps were revoked, we should re-send the cap flush in client reconnect stage. This guarantees that MDS processes the cap flush message before issuing the flushing caps to other client. Signed-off-by: Yan, Zheng fs/ceph/caps.c | 57 ++++++++++++++++++++++++++++++++++++++++++++++++---- fs/ceph/mds_client.c | 3 +++ fs/ceph/super.h | 7 +++++-- 3 files changed, 61 insertions(+), 6 deletions(-) commit a2971c8ccb9bd7677a6c43cdbed9aacfef5e9f26 Author: Yan, Zheng Date: Wed Jun 10 11:09:32 2015 +0800 ceph: send TID of the oldest pending caps flush to MDS According to this information, MDS can trim its completed caps flush list (which is used to detect duplicated cap flush). Signed-off-by: Yan, Zheng fs/ceph/caps.c | 67 ++++++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 49 insertions(+), 18 deletions(-) commit 8310b08913eca8aee98744c9aff1ec0d1f603b19 Author: Yan, Zheng Date: Tue Jun 9 17:20:12 2015 +0800 ceph: track pending caps flushing globally So we know TID of the oldest pending caps flushing. Later patch will send this information to MDS, so that MDS can trim its completed caps flush list. Tracking pending caps flushing globally also simplifies syncfs code. Signed-off-by: Yan, Zheng fs/ceph/caps.c | 50 +++++++++++++++++++++++----- fs/ceph/inode.c | 1 - fs/ceph/mds_client.c | 93 +++++++++++++++++++++++++++------------------------- fs/ceph/mds_client.h | 2 +- fs/ceph/super.h | 2 +- 5 files changed, 91 insertions(+), 57 deletions(-) commit 553adfd941f8ca622965ef809553d918ea039929 Author: Yan, Zheng Date: Tue Jun 9 15:48:57 2015 +0800 ceph: track pending caps flushing accurately Previously we do not trace accurate TID for flushing caps. when MDS failovers, we have no choice but to re-send all flushing caps with a new TID. This can cause problem because MDS can has already flushed some caps and has issued the same caps to other client. The re-sent cap flush has a new TID, which makes MDS unable to detect if it has already processed the cap flush. This patch adds code to track pending caps flushing accurately. When re-sending cap flush is needed, we use its original flush TID. Signed-off-by: Yan, Zheng fs/ceph/caps.c | 245 +++++++++++++++++++++++++++++++++------------------ fs/ceph/inode.c | 3 +- fs/ceph/mds_client.c | 20 +++++ fs/ceph/mds_client.h | 1 + fs/ceph/super.h | 11 ++- 5 files changed, 192 insertions(+), 88 deletions(-) commit 6c13a6bb55df6666275b992ba76620324429d7cf Author: Hong Zhiguo Date: Wed Jun 10 21:13:25 2015 +0800 libceph: fix wrong name "Ceph filesystem for Linux" modinfo libceph prints the module name "Ceph filesystem for Linux", which is same as the real fs module ceph. It's confusing. Signed-off-by: Hong Zhiguo Signed-off-by: Ilya Dryomov net/ceph/ceph_common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit da819c8150c5b6e6a6a21ee41135b88f6cd18c3e Author: Yan, Zheng Date: Wed May 27 11:19:34 2015 +0800 ceph: fix directory fsync fsync() on directory should flush dirty caps and wait for any uncommitted directory opertions to commit. But ceph_dir_fsync() only waits for uncommitted directory opertions. Signed-off-by: Yan, Zheng fs/ceph/caps.c | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++-------- fs/ceph/dir.c | 56 +------------------------------------------- 2 files changed, 65 insertions(+), 64 deletions(-) commit 89b52fe14de4d703ba837a7418bb4cd286dcc87f Author: Yan, Zheng Date: Wed May 27 09:59:48 2015 +0800 ceph: fix flushing caps Current ceph_fsync() only flushes dirty caps and wait for them to be flushed. It doesn't wait for caps that has already been flushing. This patch makes ceph_fsync() wait for pending flushing caps too. Besides, this patch also makes caps_are_flushed() peroperly handle tid wrapping. Signed-off-by: Yan, Zheng fs/ceph/caps.c | 49 +++++++++++++++++++++++++------------------------ 1 file changed, 25 insertions(+), 24 deletions(-) commit 41445999aeec1f0fdf196ab55b2c770473b2ea01 Author: Yan, Zheng Date: Mon May 25 17:36:42 2015 +0800 ceph: don't include used caps in cap_wanted when copying files to cephfs, file data may stay in page cache after corresponding file is closed. Cached data use Fc capability. If we include Fc capability in cap_wanted, MDS will treat files with cached data as open files, and journal them in an EOpen event when trimming log segment. Signed-off-by: Yan, Zheng fs/ceph/caps.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 3e0708b990f7e46d87d47b3b06de322490f2f2ee Author: Yan, Zheng Date: Fri May 22 16:38:02 2015 +0800 ceph: ratelimit warn messages for MDS closes session Signed-off-by: Yan, Zheng fs/ceph/mds_client.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit 2894e1d769743eb583bf8dc6be149f64a7c6a798 Author: Ilya Dryomov Date: Tue May 12 19:53:24 2015 +0300 rbd: timeout watch teardown on unmap with mount_timeout As part of unmap sequence, kernel client has to talk to the OSDs to teardown watch on the header object. If none of the OSDs are available it would hang forever, until interrupted by a signal - when that happens we follow through with the rest of unmap procedure (i.e. unregister the device and put all the data structures) and the unmap is still considired successful (rbd cli tool exits with 0). The watch on the userspace side should eventually timeout so that's fine. This isn't very nice, because various userspace tools (pacemaker rbd resource agent, for example) then have to worry about setting up their own timeouts. Timeout it with mount_timeout (60 seconds by default). Signed-off-by: Ilya Dryomov Reviewed-by: Alex Elder Reviewed-by: Sage Weil drivers/block/rbd.c | 38 ++++++++++++++++++++++++++++---------- 1 file changed, 28 insertions(+), 10 deletions(-) commit 5be73034771c8f18b241f1974803865a4de2cad1 Author: Ilya Dryomov Date: Tue May 19 12:05:38 2015 +0300 ceph: simplify two mount_timeout sites No need to bifurcate wait now that we've got ceph_timeout_jiffies(). Signed-off-by: Ilya Dryomov Reviewed-by: Alex Elder Reviewed-by: Yan, Zheng fs/ceph/dir.c | 14 ++++---------- fs/ceph/mds_client.c | 18 ++++++++++-------- 2 files changed, 14 insertions(+), 18 deletions(-) commit 216639dd5091de4f4d7ad19b0b8dde11fad18286 Author: Ilya Dryomov Date: Tue May 19 12:03:33 2015 +0300 libceph: a couple tweaks for wait loops - return -ETIMEDOUT instead of -EIO in case of timeout - wait_event_interruptible_timeout() returns time left until timeout and since it can be almost LONG_MAX we had better assign it to long Signed-off-by: Ilya Dryomov Reviewed-by: Alex Elder net/ceph/ceph_common.c | 7 +++---- net/ceph/mon_client.c | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) commit a319bf56a617354e62cf5f774d2ca4e1a8a3bff3 Author: Ilya Dryomov Date: Fri May 15 12:02:17 2015 +0300 libceph: store timeouts in jiffies, verify user input There are currently three libceph-level timeouts that the user can specify on mount: mount_timeout, osd_idle_ttl and osdkeepalive. All of these are in seconds and no checking is done on user input: negative values are accepted, we multiply them all by HZ which may or may not overflow, arbitrarily large jiffies then get added together, etc. There is also a bug in the way mount_timeout=0 is handled. It's supposed to mean "infinite timeout", but that's not how wait.h APIs treat it and so __ceph_open_session() for example will busy loop without much chance of being interrupted if none of ceph-mons are there. Fix all this by verifying user input, storing timeouts capped by msecs_to_jiffies() in jiffies and using the new ceph_timeout_jiffies() helper for all user-specified waits to handle infinite timeouts correctly. Signed-off-by: Ilya Dryomov Reviewed-by: Alex Elder drivers/block/rbd.c | 5 +++-- fs/ceph/dir.c | 4 ++-- fs/ceph/mds_client.c | 12 ++++++------ fs/ceph/mds_client.h | 2 +- fs/ceph/super.c | 2 +- include/linux/ceph/libceph.h | 17 +++++++++++------ net/ceph/ceph_common.c | 41 +++++++++++++++++++++++++++++++---------- net/ceph/mon_client.c | 11 +++++++++-- net/ceph/osd_client.c | 15 +++++++-------- 9 files changed, 71 insertions(+), 38 deletions(-) commit d50c97b566c5bbf990eff472e9feaa58fdebdd33 Author: Ilya Dryomov Date: Fri May 15 11:52:20 2015 +0300 libceph: nuke time_sub() Unused since ceph got merged into mainline I guess. Signed-off-by: Ilya Dryomov Reviewed-by: Alex Elder include/linux/ceph/libceph.h | 9 --------- 1 file changed, 9 deletions(-) commit e8a7b8b12b13831467c6158c1e82801e25b5dd98 Author: Yan, Zheng Date: Tue May 19 18:54:40 2015 +0800 ceph: exclude setfilelock requests when calculating oldest tid setfilelock requests can block for a long time, which can prevent client from advancing its oldest tid. Signed-off-by: Yan, Zheng fs/ceph/mds_client.c | 30 +++++++++++++++++++++++------- fs/ceph/mds_client.h | 2 ++ 2 files changed, 25 insertions(+), 7 deletions(-) commit 745a8e3bccbc6adae69a98ddc525e529aa44636e Author: Yan, Zheng Date: Thu May 14 17:22:42 2015 +0800 ceph: don't pre-allocate space for cap release messages Previously we pre-allocate cap release messages for each caps. This wastes lots of memory when there are large amount of caps. This patch make the code not pre-allocate the cap release messages. Instead, we add the corresponding ceph_cap struct to a list when releasing a cap. Later when flush cap releases is needed, we allocate the cap release messages dynamically. Signed-off-by: Yan, Zheng fs/ceph/caps.c | 85 +++++++------------- fs/ceph/mds_client.c | 223 ++++++++++++++++++++------------------------------- fs/ceph/mds_client.h | 3 - fs/ceph/super.h | 20 +++-- 4 files changed, 129 insertions(+), 202 deletions(-) commit affbc19a68f9966ad65a773db405f78e2bafc07b Author: Yan, Zheng Date: Tue May 5 21:22:13 2015 +0800 ceph: make sure syncfs flushes all cap snaps Signed-off-by: Yan, Zheng fs/ceph/caps.c | 18 ++++++----- fs/ceph/mds_client.c | 86 +++++++++++++++++++++++++++++++++++++--------------- fs/ceph/mds_client.h | 1 + fs/ceph/snap.c | 2 ++ 4 files changed, 76 insertions(+), 31 deletions(-) commit 622f3e250f498976ad4cbae6f2be5cb359ded4f5 Author: Yan, Zheng Date: Thu May 7 10:59:47 2015 +0800 ceph: don't trim auth cap when there are cap snaps Signed-off-by: Yan, Zheng fs/ceph/mds_client.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 604d1b0245b97738cde4341944ad93edff4b2827 Author: Yan, Zheng Date: Fri May 1 17:49:16 2015 +0800 ceph: take snap_rwsem when accessing snap realm's cached_context When ceph inode's i_head_snapc is NULL, __ceph_mark_dirty_caps() accesses snap realm's cached_context. So we need take read lock of snap_rwsem. Signed-off-by: Yan, Zheng fs/ceph/caps.c | 4 +++- fs/ceph/inode.c | 15 +++++++++++++++ fs/ceph/xattr.c | 45 +++++++++++++++++++++++++++++++++++++++------ 3 files changed, 57 insertions(+), 7 deletions(-) commit 860560904962d08fd38666207c910065fe53e074 Author: Yan, Zheng Date: Fri May 1 16:57:16 2015 +0800 ceph: avoid sending unnessesary FLUSHSNAP message when a snap notification contains no new snapshot, we can avoid sending FLUSHSNAP message to MDS. But we still need to create cap_snap in some case because it's required by write path and page writeback path Signed-off-by: Yan, Zheng fs/ceph/caps.c | 69 +++++++++++++++++++++++++++++++-------------------------- fs/ceph/snap.c | 49 ++++++++++++++++++++++++++++++---------- fs/ceph/super.h | 5 +++-- 3 files changed, 78 insertions(+), 45 deletions(-) commit 5dda377cf0a6bd43f64a3c1efb670d7c668e7b29 Author: Yan, Zheng Date: Thu Apr 30 14:40:54 2015 +0800 ceph: set i_head_snapc when getting CEPH_CAP_FILE_WR reference In most cases that snap context is needed, we are holding reference of CEPH_CAP_FILE_WR. So we can set ceph inode's i_head_snapc when getting the CEPH_CAP_FILE_WR reference, and make codes get snap context from i_head_snapc. This makes the code simpler. Another benefit of this change is that we can handle snap notification more elegantly. Especially when snap context is updated while someone else is doing write. The old queue cap_snap code may set cap_snap's context to ether the old context or the new snap context, depending on if i_head_snapc is set. The new queue capp_snap code always set cap_snap's context to the old snap context. Signed-off-by: Yan, Zheng fs/ceph/addr.c | 37 ++++++-------- fs/ceph/caps.c | 155 ++++++++++++++++++++++++++++++++++++++++----------------- fs/ceph/file.c | 31 +++++++++--- fs/ceph/snap.c | 126 ++++++++++++++++++++++++---------------------- 4 files changed, 212 insertions(+), 137 deletions(-) commit 7b06a826e7c52d77ce801e5960ecf0338eafe886 Author: Yan, Zheng Date: Fri May 1 10:03:40 2015 +0800 ceph: use empty snap context for uninline_data and get_pool_perm Cached_context in ceph_snap_realm is directly accessed by uninline_data() and get_pool_perm(). This is racy in theory. both uninline_data() and get_pool_perm() do not modify existing object, they only create new object. So we can pass the empty snap context to them. Unlike cached_context in ceph_snap_realm, we do not need to protect the empty snap context. Signed-off-by: Yan, Zheng fs/ceph/addr.c | 9 ++++----- fs/ceph/snap.c | 18 +++++++++--------- fs/ceph/super.h | 1 + 3 files changed, 14 insertions(+), 14 deletions(-) commit b01da6a08c523f5d1cd1a51107f8cca061040f45 Author: Ilya Dryomov Date: Mon May 4 14:10:11 2015 +0300 libceph: use kvfree() instead of open-coding it This one sneaked in through vfs tree with commit 2b777c9dd9eb ("ceph_sync_read: stop poking into iov_iter guts"). Signed-off-by: Ilya Dryomov net/ceph/pagevec.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 10183a69551f76702ac68bc74a437b25419c6de0 Author: Yan, Zheng Date: Mon Apr 27 15:33:28 2015 +0800 ceph: check OSD caps before read/write Signed-off-by: Yan, Zheng fs/ceph/addr.c | 203 +++++++++++++++++++++++++++++++++++++++++++++++++++ fs/ceph/caps.c | 4 + fs/ceph/inode.c | 3 + fs/ceph/mds_client.c | 4 + fs/ceph/mds_client.h | 9 +++ fs/ceph/super.c | 15 +++- fs/ceph/super.h | 17 +++-- 7 files changed, 249 insertions(+), 6 deletions(-) commit 144cba1493fdd6e3e1980e439a31df877831ebcd Author: Yan, Zheng Date: Mon Apr 27 11:09:54 2015 +0800 libceph: allow setting osd_req_op's flags Signed-off-by: Yan, Zheng Reviewed-by: Alex Elder drivers/block/rbd.c | 4 ++-- fs/ceph/addr.c | 3 ++- fs/ceph/file.c | 2 +- include/linux/ceph/osd_client.h | 2 +- net/ceph/osd_client.c | 24 +++++++++++++++--------- 5 files changed, 21 insertions(+), 14 deletions(-) commit 66ba609f7b96096116ca7bbc21ec6922ea41a992 Author: Yan, Zheng Date: Mon Apr 27 11:02:35 2015 +0800 libceph: properly release STAT request's raw_data_in Signed-off-by: Yan, Zheng Reviewed-by: Alex Elder net/ceph/osd_client.c | 3 +++ 1 file changed, 3 insertions(+) commit 8c2f7e8658df1d3b7cbfa62706941d14c715823a Author: Dan Williams Date: Thu Jun 25 04:20:04 2015 -0400 libnvdimm: infrastructure for btt devices NVDIMM namespaces, in addition to accepting "struct bio" based requests, also have the capability to perform byte-aligned accesses. By default only the bio/block interface is used. However, if another driver can make effective use of the byte-aligned capability it can claim namespace interface and use the byte-aligned ->rw_bytes() interface. The BTT driver is the initial first consumer of this mechanism to allow adding atomic sector update semantics to a pmem or blk namespace. This patch is the sysfs infrastructure to allow configuring a BTT instance for a namespace. Enabling that BTT and performing i/o is in a subsequent patch. Cc: Greg KH Cc: Neil Brown Signed-off-by: Dan Williams drivers/nvdimm/Kconfig | 3 + drivers/nvdimm/Makefile | 1 + drivers/nvdimm/btt.h | 45 +++++ drivers/nvdimm/btt_devs.c | 422 ++++++++++++++++++++++++++++++++++++++++ drivers/nvdimm/bus.c | 12 +- drivers/nvdimm/label.c | 5 +- drivers/nvdimm/namespace_devs.c | 204 +++++++++++++++---- drivers/nvdimm/nd-core.h | 4 + drivers/nvdimm/nd.h | 40 ++++ drivers/nvdimm/pmem.c | 132 ++++++++----- drivers/nvdimm/region.c | 8 +- drivers/nvdimm/region_devs.c | 39 +++- include/linux/nd.h | 63 +++++- 13 files changed, 879 insertions(+), 99 deletions(-) commit 1592a8e456436024b6c662f423ce672e672169bb Author: Michael Holzheu Date: Tue May 26 19:05:23 2015 +0200 s390/kdump: fix nosmt kernel parameter It turned out that SIGP set-multi-threading can only be done once. Therefore switching to a different MT level after switching to sclp.mtid_prev in the dump case fails. As a symptom specifying the "nosmt" parameter currently fails for the kdump kernel and the kernel starts with multi-threading enabled. So fix this and issue diag 308 subcode 1 call after collecting the CPU states for the dump. Also enhance the diag308_reset() function to be usable also with enabled lowcore protection and prefix register != 0. After the reset it is possible to switch the MT level again. We have to do the reset very early in order not to kill the already initialized console. Therefore instead of kmalloc() the corresponding memblock functions have to be used. To avoid copying the sclp cpu code into sclp_early, we now use the simple sigp loop method for CPU detection. Signed-off-by: Michael Holzheu Signed-off-by: Martin Schwidefsky arch/s390/include/asm/ipl.h | 1 - arch/s390/include/asm/smp.h | 1 + arch/s390/kernel/base.S | 21 ++++++++++--- arch/s390/kernel/crash_dump.c | 25 ---------------- arch/s390/kernel/setup.c | 5 ++++ arch/s390/kernel/smp.c | 70 ++++++++++++++++++++++++------------------- drivers/s390/char/zcore.c | 2 +- 7 files changed, 64 insertions(+), 61 deletions(-) commit 1d1858d2444770154d311e8df5849d44f957dba3 Author: Heiko Carstens Date: Wed Jan 28 17:00:53 2015 +0100 s390: new default configuration Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky arch/s390/configs/default_defconfig | 15 +++++++-------- arch/s390/configs/gcov_defconfig | 13 ++++++------- arch/s390/configs/performance_defconfig | 16 ++++++++-------- arch/s390/defconfig | 12 +++++++++--- 4 files changed, 30 insertions(+), 26 deletions(-) commit d08d94306e9020fad18a5d079b88ba374784eef8 Author: Martin Schwidefsky Date: Thu Jun 18 14:23:00 2015 +0200 s390/smp: cleanup core vs. cpu in the SCLP interface The SCLP interface to query, configure and deconfigure CPUs actually operates on cores. For a machine without the multi-threading faciltiy a CPU and a core are equivalent but starting with System z13 a core can have multiple hardware threads, also referred to as logical CPUs. To avoid confusion replace the word 'cpu' with 'core' in the SCLP interface. Also replace MAX_CPU_ADDRESS with SCLP_MAX_CORES. The core-id is an 8-bit field, the maximum thread id is in the range 0-31. The theoretical limit for the CPU address is therefore 8191. Signed-off-by: Martin Schwidefsky arch/s390/include/asm/cpu.h | 2 -- arch/s390/include/asm/sclp.h | 18 ++++++++-------- arch/s390/kernel/smp.c | 49 +++++++++++++++++++++--------------------- drivers/s390/char/sclp_cmd.c | 23 ++++++++++---------- drivers/s390/char/sclp_early.c | 10 ++++----- 5 files changed, 50 insertions(+), 52 deletions(-) commit e7086eb18119933753fceacfee662307b5e1d1c1 Author: Martin Schwidefsky Date: Wed Jun 17 10:45:31 2015 +0200 s390/smp: fix sigp cpu detection loop On a (theoretical) system where the read-cpu-info SCLP command does not work but SMT is enabled, the sigp detection loop may not find all configured cores. The maximum CPU address needs to be shifted with smp_cpu_mt_shift. Signed-off-by: Martin Schwidefsky arch/s390/kernel/smp.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit c50a160c176aadfbbbeed69a55caf1040b22692e Author: Ingo Tuchscherer Date: Wed Jun 17 16:19:15 2015 +0200 s390/zcrypt: Fixed reset and interrupt handling of AP queues In case of request timeouts an AP queue reset will be triggered to recover and reinitialize the AP queue. The previous behavior was an immediate reset execution regardless of current/pending requests. Due to newly changed firmware behavior the reset may be delayed, based on the priority of pending request. The device driver's waiting time frame was limited, hence it did not received the reset response. As a consequence interrupts would not be enabled afterwards. The RAPQ (queue reset) and AQIC (interrupt control) commands will be treated fully asynchronous now. The device driver will check the reset and interrupt states periodically, thus it can handle the reinitialization properly. Signed-off-by: Ingo Tuchscherer Signed-off-by: Martin Schwidefsky drivers/s390/crypto/ap_bus.c | 424 ++++++++++++++++++++------------------ drivers/s390/crypto/ap_bus.h | 13 +- drivers/s390/crypto/zcrypt_cex4.c | 2 +- 3 files changed, 239 insertions(+), 200 deletions(-) commit 3c8e5105e759e7b2d88ea8a85b1285e535bc7500 Author: Michael Holzheu Date: Thu Jun 11 19:59:04 2015 +0200 s390/kdump: fix REGSET_VX_LOW vector register ELF notes The REGSET_VX_LOW ELF notes should contain the lower 64 bit halfes of the first sixteen 128 bit vector registers. Unfortunately currently we copy the upper halfes. Fix this and correctly copy the lower halfes. Fixes: a62bc0739253 ("s390/kdump: add support for vector extension") Cc: stable@vger.kernel.org # 3.18+ Signed-off-by: Michael Holzheu Signed-off-by: Martin Schwidefsky arch/s390/kernel/crash_dump.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b035b60ded132592055c0f9bd1cc280259c7de4b Author: Michael Holzheu Date: Thu May 21 15:39:31 2015 +0200 s390/bpf: Fix backward jumps Currently all backward jumps crash for JITed s390x eBPF programs with an illegal instruction program check and kernel panic. Because for negative values the opcode of the jump instruction is overriden by the negative branch offset an illegal instruction is generated by the JIT: 000003ff802da378: c01100000002 lgfi %r1,2 000003ff802da37e: fffffff52065 unknown <-- illegal instruction 000003ff802da384: b904002e lgr %r2,%r14 So fix this and mask the offset in order not to damage the opcode. Cc: stable@vger.kernel.org # 4.0+ Signed-off-by: Michael Holzheu Signed-off-by: Martin Schwidefsky arch/s390/net/bpf_jit_comp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 27451700dfa01a05cdb4d9d74501536165158034 Merge: 407a2c7 83b2ea2 Author: Ingo Molnar Date: Thu Jun 25 09:28:42 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: - Move toggling event logic from 'perf top' and into hists browser, allowing freeze/unfreeze with event lists with more than one entry (Namhyung Kim) - Add missing newlines when dumping PERF_RECORD_FINISHED_ROUND and showing the Aggregated stats in 'perf report -D' (Adrian Hunter) Infrastructure changes: - Allow auxtrace data alignment (Adrian Hunter) - Allow events with dot (Andi Kleen) - Fix failure to 'perf probe' events on arm (He Kuang) - Add testing for Makefile.perf (Jiri Olsa) - Add test for make install with prefix (Jiri Olsa) - Fix single target build dependency check (Jiri Olsa) - Access thread_map entries via accessors, prep patch to hold more info per entry, for ongoing 'perf stat --per-thread' work (Jiri Olsa) - Use __weak definition from compiler.h (Sukadev Bhattiprolu) - Split perf_pmu__new_alias() (Sukadev Bhattiprolu) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit ab16bfc732c436658d13455f28b0b4a2608a7476 Author: Neil Brown Date: Wed Jun 17 12:31:46 2015 +1000 md: clear Blocked flag on failed devices when array is read-only. The Blocked flag indicates that a device has failed but that this fact hasn't been recorded in the metadata yet. Writes to such devices cannot be allowed until the metadata has been updated. On a read-only array, the Blocked flag will never be cleared. This prevents the device being removed from the array. If the metadata is being handled by the kernel (i.e. !mddev->external), then we can be sure that if the array is switch to writable, then a metadata update will happen and will record the failure. So we don't need the flag set. If metadata is externally managed, it is upto the external manager to clear the 'blocked' flag. Reported-by: XiaoNi Signed-off-by: NeilBrown drivers/md/md.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 9a8c0fa861e4db60409b4dda254cef5e17e4d43c Author: NeilBrown Date: Thu Jun 25 17:06:40 2015 +1000 md: unlock mddev_lock on an error path. This error path retuns while still holding the lock - bad. Fixes: 6791875e2e53 ("md: make reconfig_mutex optional for writes to md sysfs files.") Cc: stable@vger.kernel.org (v4.0+) Signed-off-by: NeilBrown drivers/md/md.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit bd6919228d7e1867ae9e24ab27e3e4a366c87d21 Author: NeilBrown Date: Thu Jun 25 17:01:40 2015 +1000 md: clear mddev->private when it has been freed. If ->private is set when ->run is called, it is assumed to be a 'config' prepared as part of 'reshape'. So it is important when we free that config, that we also clear ->private. This is not often a problem as the mddev will normally be discarded shortly after the config us freed. However if an 'assemble' races with a final close, the assemble can use the old mddev which has a stale ->private. This leads to any of various sorts of crashes. So clear ->private after calling ->free(). Reported-by: Nate Clark Cc: stable@vger.kernel.org (v4.0+) Fixes: afa0f557cb15 ("md: rename ->stop to ->free") Signed-off-by: NeilBrown drivers/md/md.c | 3 +++ 1 file changed, 3 insertions(+) commit 9ea650c804404e55dbf17c928203141282e759ab Author: Jean Delvare Date: Thu Jun 25 09:06:57 2015 +0200 firmware: dmi: struct dmi_header should be packed Apparently the compiler does fine without it, but it feels safer and clearer to add the missing attribute. Signed-off-by: Jean Delvare include/linux/dmi.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d1d8704c48f9c2bb791e8e183a41019f35a3f7f0 Author: Jean Delvare Date: Thu Jun 25 09:06:57 2015 +0200 firmware: dmi_scan: Coding style cleanups Signed-off-by: Jean Delvare drivers/firmware/dmi_scan.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 863ef5ba29529165279562820cd7e6ea0a4f5793 Author: Ivan Khoronzhuk Date: Thu Jun 25 09:06:57 2015 +0200 Documentation: ABI: sysfs-firmware-dmi: add -entries suffix to file name The dmi-sysfs module adds DMI table structures entries under /sys/firmware/dmi/entries only, so rename documentation file to sysfs-firmware-dmi-entries as more appropriate. Without renaming it's confusing to differ this from sysfs-firmware-dmi-tables that adds raw DMI table and actually adds "dmi" kobject. Signed-off-by: Ivan Khoronzhuk Signed-off-by: Jean Delvare Documentation/ABI/testing/sysfs-firmware-dmi | 110 --------------------- .../ABI/testing/sysfs-firmware-dmi-entries | 110 +++++++++++++++++++++ 2 files changed, 110 insertions(+), 110 deletions(-) commit d7f96f97c4031fa4ffdb7801f9aae23e96170a6f Author: Ivan Khoronzhuk Date: Thu Jun 25 09:06:56 2015 +0200 firmware: dmi_scan: add SBMIOS entry and DMI tables Some utils, like dmidecode and smbios, need to access SMBIOS entry table area in order to get information like SMBIOS version, size, etc. Currently it's done via /dev/mem. But for situation when /dev/mem usage is disabled, the utils have to use dmi sysfs instead, which doesn't represent SMBIOS entry and adds code/delay redundancy when direct access for table is needed. So this patch creates dmi/tables and adds SMBIOS entry point to allow utils in question to work correctly without /dev/mem. Also patch adds raw dmi table to simplify dmi table processing in user space, as proposed by Jean Delvare. Tested-by: Roy Franz Signed-off-by: Ivan Khoronzhuk Signed-off-by: Jean Delvare .../ABI/testing/sysfs-firmware-dmi-tables | 22 ++++++ MAINTAINERS | 1 + drivers/firmware/dmi-sysfs.c | 17 +++-- drivers/firmware/dmi_scan.c | 78 ++++++++++++++++++++++ include/linux/dmi.h | 2 + 5 files changed, 111 insertions(+), 9 deletions(-) commit 6e0ad59e3d838a2887e7aa657baee5896030d009 Author: Jean Delvare Date: Thu Jun 25 09:06:56 2015 +0200 firmware: dmi_scan: Trim DMI table length before exporting it The SMBIOS v3 entry points specify a maximum length for the DMI table, not the exact length. Thus there may be garbage after the end-of-table marker, which we don't want to export to user-space. Adjust dmi_len when we find the end-of-table marker, so that only the actual table payload is exported. Signed-off-by: Jean Delvare Cc: Ivan Khoronzhuk drivers/firmware/dmi_scan.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) commit eb4c5ea50e60aa8faaf6aae762cb06ee1c8e0b8e Author: Ivan Khoronzhuk Date: Thu Jun 25 09:06:56 2015 +0200 firmware: dmi_scan: Rename dmi_table to dmi_decode_table The "dmi_table" function looks like data instance, but it does DMI table decode. This patch renames it to "dmi_decode_table" name as more appropriate. That allows us to use "dmi_table" name for correct purposes. Signed-off-by: Ivan Khoronzhuk Signed-off-by: Jean Delvare drivers/firmware/dmi_scan.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit d4aeef932345ce95a56fb487531e86f1cbd7150d Author: Jean Delvare Date: Thu Jun 25 09:06:56 2015 +0200 firmware: dmi: List my quilt tree I'll be maintaining the pending patches to the dmi_scan and dmi-id drivers as a quilt tree. Signed-off-by: Jean Delvare MAINTAINERS | 1 + 1 file changed, 1 insertion(+) commit 17cd5bd5391e6e7b363d66335e1bc6760ae969b9 Author: Jean Delvare Date: Thu Jun 25 09:06:55 2015 +0200 firmware: dmi_scan: Only honor end-of-table for 64-bit tables A 32-bit entry point to a DMI table says how many structures the table contains. The SMBIOS specification explicitly says that end-of-table markers should be ignored if they are not actually at the end of the DMI table. So only honor the end-of-table marker for tables accessed through 64-bit entry points, as they do not specify a structure count. Fixes: fc43026278 ("dmi: add support for SMBIOS 3.0 64-bit entry point") Signed-off-by: Jean Delvare Acked-by: Ard Biesheuvel Cc: Leif Lindholm Cc: Matt Fleming drivers/firmware/dmi_scan.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) commit 650474fb737c3e0ea0f6ab8e43c2cd161080ce5c Author: Alex Deucher Date: Wed Jun 24 14:37:18 2015 -0400 ALSA: hda - set proper caps for newer AMD hda audio in KB/KV Fixes audio problems on newer asics. Noticed by: Kelly Anderson Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org Signed-off-by: Takashi Iwai sound/pci/hda/hda_intel.c | 4 ++++ 1 file changed, 4 insertions(+) commit 735c75cf4d434862e38c01dcfb2ce8d2fcb9035f Author: Takashi Iwai Date: Thu Jun 25 08:48:54 2015 +0200 ALSA: hda - Disable widget power-save for VIA codecs The widget power-save that was enabled in 4.1 kernel seems resulting in the silent output on VIA codecs by some reason. Some widgets get wrong power states. As a quick fix, turn this flag off while keeping power_down_unused flag. This will bring back to the state of 4.0.x. Fixes: 688b12cc3ca8 ('ALSA: hda - Use the new power control for VIA codecs') Reported-and-tested-by: Harald Dunkel Cc: # v4.1 Signed-off-by: Takashi Iwai sound/pci/hda/patch_via.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit ec56af67a10a0d82b79027878a81fce08d002d50 Author: David Henningsson Date: Wed Jun 24 10:46:33 2015 +0200 ALSA: hda - Fix Dock Headphone on Thinkpad X250 seen as a Line Out Thinkpad X250, when attached to a dock, has two headphone outs but no line out. Make sure we don't try to turn this into one headphone and one line out (since that disables the headphone amp on the dock). Alsa-info at http://www.alsa-project.org/db/?f=36f8764e1d782397928feec715d0ef90dfddd4c1 Cc: stable@vger.kernel.org Signed-off-by: David Henningsson Signed-off-by: Takashi Iwai sound/pci/hda/patch_realtek.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 1a429fcebf365ba8f8e9cdf7a365a7ae3fe87650 Merge: 32270e8 dec36f6 Author: Kevin Hilman Date: Wed Jun 24 21:32:27 2015 -0700 Merge tag 'armsoc-defconfig' into test-merge ARM: SoC: defconfig updates for v4.2 We keep collecting defconfig updates in a separate branch mostly to encourage people to handle them separately and avoid conflicts between different topics. Most of these are enablement of new SoCs, boards or drivers that have come in, or minor config refreshes due to reorderings in Kconfig files, etc. I.e. mostly minor churn of various kinds. Conflicts: None # gpg: Signature made Wed Jun 24 21:32:27 2015 PDT using RSA key ID D3FBC665 # gpg: Good signature from "Kevin Hilman " # gpg: aka "Kevin Hilman " # gpg: aka "Kevin Hilman " commit 32270e805a1e0baf39aa040177ef1896f03b7266 Merge: 39e79b8 4af34b5 Author: Kevin Hilman Date: Wed Jun 24 21:32:26 2015 -0700 Merge tag 'armsoc-drivers' into test-merge ARM: SoC: driver updates for v4.2 Some of these are for drivers/soc, where we're now putting SoC-specific drivers these days. Some are for other driver subsystems where we have received acks from the appropriate maintainers. Some highlights: - simple-mfd: document DT bindings and misc updates - migrate mach-berlin to simple-mfd for clock, pinctrl and reset - memory: support for Tegra132 SoC - memory: introduce tegra EMC driver for scaling memory frequency - misc. updates for ARM CCI and CCN busses Conflicts: arch/arm64/boot/dts/arm/juno-motherboard.dtsi Trivial add/add conflict with our dt branch. Resolution: take both sides. # gpg: Signature made Wed Jun 24 21:32:17 2015 PDT using RSA key ID D3FBC665 # gpg: Good signature from "Kevin Hilman " # gpg: aka "Kevin Hilman " # gpg: aka "Kevin Hilman " # Conflicts: # arch/arm64/boot/dts/arm/juno-motherboard.dtsi commit 39e79b873e1bafc5637a1a704495b01edbe469b1 Merge: 03fa626 58c1796 Author: Kevin Hilman Date: Wed Jun 24 21:32:15 2015 -0700 Merge tag 'armsoc-dt' into test-merge ARM: SoC: DT updates for v4.2 As usual, quite a few device-tree updates in ARM land. There was ome minor churn in DTs due to relicensing under a dual-license, and lots of little additions of new peripherals, features etc, but nothing really exciting to call to your attention. Some higlights, focsuing on support for new SoCs and boards: - AT91: new boards: Overkiz, Acme Systems' Arietta G25 - tegra: HDA support - bcm: new platforms: Buffalo WXR-1900DHP, SmartRG SR400ac, ASUS RT-AC87U - mvebu: new platforms: Compulab CM-A510, Armada 385-based Linksys boards, DLink DNS-327L - OMAP: new platforms: Baltos IR5221, LogicPD Torpedo, Toby-Churchill SL50 - ARM: added support for Juno r1 board - sunxi: A33 SoC support; new boards: A23 EVB, SinA33, GA10H-A33, Mele A1000G - imx: i.MX7D SoC support; new boards: Armadeus Systems APF6, Gateworks GW5510, and aristainetos2 boards - hisilicon: hi6220 SoC support; new boards: 96boards hikey Conflicts: None # gpg: Signature made Wed Jun 24 21:32:14 2015 PDT using RSA key ID D3FBC665 # gpg: Good signature from "Kevin Hilman " # gpg: aka "Kevin Hilman " # gpg: aka "Kevin Hilman " commit 03fa626774a30145bdb97ce1bc909a0cfd419ce6 Merge: 8d2977b 2879e43 Author: Kevin Hilman Date: Wed Jun 24 21:32:13 2015 -0700 Merge tag 'armsoc-soc' into test-merge ARM: SoC: platform support for v4.2 Our SoC branch usually contains expanded support for new SoCs and other core platform code. Some highlights from this round: - sunxi: SMP support for A23 SoC - socpga: big-endian support - pxa: conversion to common clock framework - bcm: SMP support for BCM63138 - imx: support new I.MX7D SoC - zte: basic support for ZX296702 SoC Conflicts: arch/arm/mach-socfpga/core.h Trivial remove/remove conflict with our cleanup branch. Resolution: remove both sides # gpg: Signature made Wed Jun 24 21:32:12 2015 PDT using RSA key ID D3FBC665 # gpg: Good signature from "Kevin Hilman " # gpg: aka "Kevin Hilman " # gpg: aka "Kevin Hilman " # Conflicts: # arch/arm/mach-socfpga/core.h commit 8d2977bf36bf6fc66d0c8e64263711cc2f0c1e4b Merge: b953c0d e75ea45 Author: Kevin Hilman Date: Wed Jun 24 21:32:10 2015 -0700 Merge tag 'armsoc-cleanup' into test-merge ARM: SoC cleanups for v4.2 A relatively small setup of cleanups this time around, and similar to last time the bulk of it is removal of legacy board support: - OMAP: removal of legacy (non-DT) booting for several platforms - i.MX: remove some legacy board files Conflicts: None # gpg: Signature made Wed Jun 24 21:32:09 2015 PDT using RSA key ID D3FBC665 # gpg: Good signature from "Kevin Hilman " # gpg: aka "Kevin Hilman " # gpg: aka "Kevin Hilman " commit 657d61275dad112ff36e70ee63c71d64821db36c Author: Vinod Koul Date: Mon Jun 22 14:11:28 2015 +0530 dmaengine: xgene: fix file permission drivers/dma/xgene-dma.c has file permissions 775, which is wrong, it should be 664, so fix it Signed-off-by: Vinod Koul drivers/dma/xgene-dma.c | 0 1 file changed, 0 insertions(+), 0 deletions(-) commit 0fe25d61102d44c5541b10e2bb8e6633665bc944 Author: Stefan Agner Date: Sun Jun 7 21:46:10 2015 +0200 dmaengine: fsl-edma: clear pending interrupts on initialization Clear pending interrupts before requesting interrupts and move interrupt initialization after channels have been initialized. This avoids a NULL pointer dereference panic when using kexec while DMA requests were running. Signed-off-by: Stefan Agner Signed-off-by: Vinod Koul drivers/dma/fsl-edma.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit b206d9a23ac71cb905f5fb6e0cd813406f89b678 Author: Maxime Ripard Date: Mon May 18 13:46:16 2015 +0200 dmaengine: xdmac: Add memset support The XDMAC supports memset transfers, both over contiguous areas, and over discontiguous areas through a LLI. The current memset operation only supports contiguous memset for now, add some support for it. Scatter-gathered memset will come eventually. Signed-off-by: Maxime Ripard Signed-off-by: Vinod Koul drivers/dma/at_xdmac.c | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) commit f2704052cb42aabfa19b3f897cbceb70e2e63c45 Merge: 4fb9c15 c91134d Author: Vinod Koul Date: Thu Jun 25 09:21:58 2015 +0530 Merge branch 'topic/pxa' into for-linus commit 4fb9c15b4f2371b8640c411ceff2c100857aee2c Merge: 0e0fa66 5abecfa Author: Vinod Koul Date: Thu Jun 25 09:21:49 2015 +0530 Merge branch 'topic/xdmac' into for-linus commit 0e0fa66e39db6b2c72dbc0d8975fc2a45533a8eb Merge: 9324fdf a074ae3 Author: Vinod Koul Date: Thu Jun 25 09:21:43 2015 +0530 Merge branch 'topic/omap' into for-linus commit 9324fdf5267b12f6db660fe52e882bbfffcc109a Merge: 4983a50 5f88d97 Author: Vinod Koul Date: Thu Jun 25 09:21:37 2015 +0530 Merge branch 'topic/core' into for-linus commit aefbef10e3ae6e2c6e3c54f906f10b34c73a2c66 Merge: 266da6f 8a8c35f Author: Linus Torvalds Date: Wed Jun 24 20:47:21 2015 -0700 Merge branch 'akpm' (patches from Andrew) Merge first patchbomb from Andrew Morton: - a few misc things - ocfs2 udpates - kernel/watchdog.c feature work (took ages to get right) - most of MM. A few tricky bits are held up and probably won't make 4.2. * emailed patches from Andrew Morton : (91 commits) mm: kmemleak_alloc_percpu() should follow the gfp from per_alloc() mm, thp: respect MPOL_PREFERRED policy with non-local node tmpfs: truncate prealloc blocks past i_size mm/memory hotplug: print the last vmemmap region at the end of hot add memory mm/mmap.c: optimization of do_mmap_pgoff function mm: kmemleak: optimise kmemleak_lock acquiring during kmemleak_scan mm: kmemleak: avoid deadlock on the kmemleak object insertion error path mm: kmemleak: do not acquire scan_mutex in kmemleak_do_cleanup() mm: kmemleak: fix delete_object_*() race when called on the same memory block mm: kmemleak: allow safe memory scanning during kmemleak disabling memcg: convert mem_cgroup->under_oom from atomic_t to int memcg: remove unused mem_cgroup->oom_wakeups frontswap: allow multiple backends x86, mirror: x86 enabling - find mirrored memory ranges mm/memblock: allocate boot time data structures from mirrored memory mm/memblock: add extra "flags" to memblock to allow selection of memory based on attribute mm: do not ignore mapping_gfp_mask in page cache allocation paths mm/cma.c: fix typos in comments mm/oom_kill.c: print points as unsigned int mm/hugetlb: handle races in alloc_huge_page and hugetlb_reserve_pages ... commit 266da6f14232638b9caafb7facf2a7333895dd05 Merge: cfcc0ad 0785505 Author: Linus Torvalds Date: Wed Jun 24 20:42:21 2015 -0700 Merge tag 'please-pull-pstore' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux Pull pstore updates from Tony Luck: "Miscellaneous pstore improvements" * tag 'please-pull-pstore' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux: ramoops: make it possible to change mem_type param. pstore/ram: verify ramoops header before saving record fs/pstore: Optimization function ramoops_init_przs fs/pstore: update the backend parameter in pstore module pstore: do not use message compression without lock commit cfcc0ad47f4cbc19ddd057cfb39b144a3518c59e Merge: a7296b49 3c45414 Author: Linus Torvalds Date: Wed Jun 24 20:38:29 2015 -0700 Merge tag 'for-f2fs-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs Pull f2fs updates from Jaegeuk Kim: "New features: - per-file encryption (e.g., ext4) - FALLOC_FL_ZERO_RANGE - FALLOC_FL_COLLAPSE_RANGE - RENAME_WHITEOUT Major enhancement/fixes: - recovery broken superblocks - enhance f2fs_trim_fs with a discard_map - fix a race condition on dentry block allocation - fix a deadlock during summary operation - fix a missing fiemap result .. and many minor bug fixes and clean-ups were done" * tag 'for-f2fs-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (83 commits) f2fs: do not trim preallocated blocks when truncating after i_size f2fs crypto: add alloc_bounce_page f2fs crypto: fix to handle errors likewise ext4 f2fs: drop the volatile_write flag only f2fs: skip committing valid superblock f2fs: setting discard option in parse_options() f2fs: fix to return exact trimmed size f2fs: support FALLOC_FL_INSERT_RANGE f2fs: hide common code in f2fs_replace_block f2fs: disable the discard option when device doesn't support f2fs crypto: remove alloc_page for bounce_page f2fs: fix a deadlock for summary page lock vs. sentry_lock f2fs crypto: clean up error handling in f2fs_fname_setup_filename f2fs crypto: avoid f2fs_inherit_context for symlink f2fs crypto: do not set encryption policy for non-directory by ioctl f2fs crypto: allow setting encryption policy once f2fs crypto: check context consistent for rename2 f2fs: avoid duplicated code by reusing f2fs_read_end_io f2fs crypto: use per-inode tfm structure f2fs: recovering broken superblock during mount ... commit b8830a4e71b15d0364ac8e6c55301eea73f211da Author: Pali Rohár Date: Tue Jun 23 10:11:19 2015 +0200 dell-laptop: Fix allocating & freeing SMI buffer page This commit fix kernel crash when probing for rfkill devices in dell-laptop driver failed. Function free_page() was incorrectly used on struct page * instead of virtual address of SMI buffer. This commit also simplify allocating page for SMI buffer by using __get_free_page() function instead of sequential call of functions alloc_page() and page_address(). Signed-off-by: Pali Rohár Acked-by: Michal Hocko Cc: stable@vger.kernel.org Signed-off-by: Darren Hart drivers/platform/x86/dell-laptop.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit a7296b49fb40525a5c42f650617749def3d25bcc Merge: 1e467e6 792352c Author: Linus Torvalds Date: Wed Jun 24 20:07:10 2015 -0700 Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs Pull UDF fixes and cleanups from Jan Kara: "The contains some small fixes and improvements in error handling for UDF. Bundled is also one ext3 coding style fix and a fix in quota documentation" * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs: udf: fix udf_load_pvoldesc() udf: remove double err declaration in udf_file_write_iter() UDF: support NFSv2 export fs: ext3: super: fixed a space coding style issue quota: Update documentation udf: Return error from udf_find_entry() udf: Make udf_get_filename() return error instead of 0 length file name udf: bug on exotic flag in udf_get_filename() udf: improve error management in udf_CS0toNLS() udf: improve error management in udf_CS0toUTF8() udf: unicode: update function name in comments udf: remove unnecessary test in udf_build_ustr_exact() udf: Return -ENOMEM when allocation fails in udf_get_filename() commit 1e467e68e51b116e026247d0defc806b462c095e Merge: 14738e0 36f95a0 Author: Linus Torvalds Date: Wed Jun 24 20:01:36 2015 -0700 Merge tag 'docs-for-linus' of git://git.lwn.net/linux-2.6 Pull documentation updates from Jonathan Corbet: "The main thing here is Ingo's big subdirectory documenting feature support for each architecture. Beyond that, it's the usual pile of fixes, tweaks, and small additions" * tag 'docs-for-linus' of git://git.lwn.net/linux-2.6: (79 commits) doc:md: fix typo in md.txt. Documentation/mic/mpssd: don't build x86 userspace when cross compiling Documentation/prctl: don't build tsc tests when cross compiling Documentation/vDSO: don't build tests when cross compiling Doc:ABI/testing: Fix typo in sysfs-bus-fcoe Doc: Docbook: Change wikipedia's URL from http to https in scsi.tmpl Doc: Change wikipedia's URL from http to https Documentation/kernel-parameters: add missing pciserial to the earlyprintk Doc:pps: Fix typo in pps.txt kbuild : Fix documentation of INSTALL_HDR_PATH Documentation: filesystems: updated struct file_operations documentation in vfs.txt kbuild: edit explanation of clean-files variable Doc: ja_JP: Fix typo in HOWTO Move freefall program from Documentation/ to tools/ Documentation: ARM: EXYNOS: Describe boot loaders interface Doc:nfc: Fix typo in nfc-hci.txt vfs: Minor documentation fix Doc: networking: txtimestamp: fix printf format warning Documentation, intel_pstate: Improve legacy mode internal governors description Documentation: extend use case for EXPORT_SYMBOL_GPL() ... commit 14738e03312ff1137109d68bcbf103c738af0f4a Merge: 45471cd f7ebc4d Author: Linus Torvalds Date: Wed Jun 24 19:56:58 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: "Thanks to Samuel Thibault input device (keyboard) LEDs are no longer hardwired within the input core but use LED subsystem and so allow use of different triggers; Hans de Goede did a large update for the ALPS touchpad driver; we have new TI drv2665 haptics driver and DA9063 OnKey driver, and host of other drivers got various fixes" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (55 commits) Input: pixcir_i2c_ts - fix receive error MAINTAINERS: remove non existent input mt git tree Input: improve usage of gpiod API tty/vt/keyboard: define LED triggers for VT keyboard lock states tty/vt/keyboard: define LED triggers for VT LED states Input: export LEDs as class devices in sysfs Input: cyttsp4 - use swap() in cyttsp4_get_touch() Input: goodix - do not explicitly set evbits in input device Input: goodix - export id and version read from device Input: goodix - fix variable length array warning Input: goodix - fix alignment issues Input: add OnKey driver for DA9063 MFD part Input: elan_i2c - add product IDs FW names Input: elan_i2c - add support for multi IC type and iap format Input: focaltech - report finger width to userspace tty: remove platform_sysrq_reset_seq Input: synaptics_i2c - use proper boolean values Input: psmouse - use true instead of 1 for boolean values Input: cyapa - fix a few typos in comments Input: stmpe-ts - enforce device tree only mode ... commit 45471cd98decae5fced8b38e46c223f54a924814 Merge: 93a4b1b 043b431 Author: Linus Torvalds Date: Wed Jun 24 19:52:06 2015 -0700 Merge tag 'edac_for_4.2_2' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp Pull EDAC updates from Borislav Petkov: - New APM X-Gene SoC EDAC driver (Loc Ho) - AMD error injection module improvements (Aravind Gopalakrishnan) - Altera Arria 10 support (Thor Thayer) - misc fixes and cleanups all over the place * tag 'edac_for_4.2_2' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp: (28 commits) EDAC: Update Documentation/edac.txt EDAC: Fix typos in Documentation/edac.txt EDAC, mce_amd_inj: Set MISCV on injection EDAC, mce_amd_inj: Move bit preparations before the injection EDAC, mce_amd_inj: Cleanup and simplify README EDAC, altera: Do not allow suspend when EDAC is enabled EDAC, mce_amd_inj: Make inj_type static arm: socfpga: dts: Add Arria10 SDRAM EDAC DTS support EDAC, altera: Add Arria10 EDAC support EDAC, altera: Refactor for Altera CycloneV SoC EDAC, altera: Generalize driver to use DT Memory size EDAC, mce_amd_inj: Add README file EDAC, mce_amd_inj: Add individual permissions field to dfs_node EDAC, mce_amd_inj: Modify flags attribute to use string arguments EDAC, mce_amd_inj: Read out number of MCE banks from the hardware EDAC, mce_amd_inj: Use MCE_INJECT_GET macro for bank node too EDAC, xgene: Fix cpuid abuse EDAC, mpc85xx: Extend error address to 64 bit EDAC, mpc8xxx: Adapt for FSL SoC EDAC, edac_stub: Drop arch-specific include ... commit 93a4b1b9465d92e8be031b57166afa3d5611e142 Merge: d59b92f daecdc6 Author: Linus Torvalds Date: Wed Jun 24 19:21:02 2015 -0700 Merge tag 'pinctrl-v4.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl Pull pin control updates from Linus Walleij: "Here is the bulk of pin control changes for the v4.2 series: Quite a lot of new SoC subdrivers and two new main drivers this time, apart from that business as usual. Details: Core functionality: - Enable exclusive pin ownership: it is possible to flag a pin controller so that GPIO and other functions cannot use a single pin simultaneously. New drivers: - NXP LPC18xx System Control Unit pin controller - Imagination Pistachio SoC pin controller New subdrivers: - Freescale i.MX7d SoC - Intel Sunrisepoint-H PCH - Renesas PFC R8A7793 - Renesas PFC R8A7794 - Mediatek MT6397, MT8127 - SiRF Atlas 7 - Allwinner A33 - Qualcomm MSM8660 - Marvell Armada 395 - Rockchip RK3368 Cleanups: - A big cleanup of the Marvell MVEBU driver rectifying it to correspond to reality - Drop platform device probing from the SH PFC driver, we are now a DT only shop for SuperH - Drop obsolte multi-platform check for SH PFC - Various janitorial: constification, grammar etc Improvements: - The AT91 GPIO portions now supports the set_multiple() feature - Split out SPI pins on the Xilinx Zynq - Support DTs without specific function nodes in the i.MX driver" * tag 'pinctrl-v4.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (99 commits) pinctrl: rockchip: add support for the rk3368 pinctrl: rockchip: generalize perpin driver-strength setting pinctrl: sh-pfc: r8a7794: add SDHI pin groups pinctrl: sh-pfc: r8a7794: add MMCIF pin groups pinctrl: sh-pfc: add R8A7794 PFC support pinctrl: make pinctrl_register() return proper error code pinctrl: mvebu: armada-39x: add support for Armada 395 variant pinctrl: mvebu: armada-39x: add missing SATA functions pinctrl: mvebu: armada-39x: add missing PCIe functions pinctrl: mvebu: armada-38x: add ptp functions pinctrl: mvebu: armada-38x: add ua1 functions pinctrl: mvebu: armada-38x: add nand functions pinctrl: mvebu: armada-38x: add sata functions pinctrl: mvebu: armada-xp: add dram functions pinctrl: mvebu: armada-xp: add nand rb function pinctrl: mvebu: armada-xp: add spi1 function pinctrl: mvebu: armada-39x: normalize ref clock naming pinctrl: mvebu: armada-xp: rename spi to spi0 pinctrl: mvebu: armada-370: align spi1 clock pin naming pinctrl: mvebu: armada-370: align VDD cpu-pd pin naming with datasheet ... commit 6b8eeca65b18ae77e175cc2b6571731f0ee413bf Author: Dave Airlie Date: Mon Jun 15 10:34:28 2015 +1000 drm/dp/mst: close deadlock in connector destruction. I've only seen this once, and I failed to capture the lockdep backtrace, but I did some investigations. If we are calling into the MST layer from EDID probing, we have the mode_config mutex held, if during that EDID probing, the MST hub goes away, then we can get a deadlock where the connector destruction function in the driver tries to retake the mode config mutex. This offloads connector destruction to a workqueue, and avoid the subsequenct lock ordering issue. Acked-by: Daniel Vetter Cc: stable@vger.kernel.org Signed-off-by: Dave Airlie drivers/gpu/drm/drm_dp_mst_topology.c | 40 +++++++++++++++++++++++++++++++++-- include/drm/drm_crtc.h | 2 ++ include/drm/drm_dp_mst_helper.h | 4 ++++ 3 files changed, 44 insertions(+), 2 deletions(-) commit d59b92f93df2d545d87d2341eb0705cc926ea22a Merge: e045671 cca0ba2 Author: Linus Torvalds Date: Wed Jun 24 18:57:00 2015 -0700 Merge tag 'backlight-for-linus-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight Pull backlight updates from Lee Jones: "Changes to existing drivers: - supply MODULE_DEVICE_TABLE() to ensure probing - constify struct; da9052_bl - enable compile test; lcd_l4f00242t03, lcd_lms283fg05, backlight_gpio - suspend/resume bugfix; lp855x_bl - devm_gpiod_get_optional() API fixup; pwm_bl - error handling fixup; backlight" * tag 'backlight-for-linus-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight: backlight: Change the return type of backlight_update_status() to int backlight: pwm_bl: Simplify usage of devm_gpiod_get_optional backlight: lp855x: Don't clear level on suspend/blank backlight: Allow compile test of GPIO consumers if !GPIOLIB video: backlight: da9052: Constify platform_device_id gpio-backlight: Discover driver during boot time commit 0ba1c634892b3590779803a701bcb82e8c32cc7a Author: Dan Williams Date: Sat May 30 12:35:36 2015 -0400 libnvdimm: write blk label set After 'uuid', 'size', 'sector_size', and optionally 'alt_name' have been set to valid values the labels on the dimm can be updated. The difference with the pmem case is that blk namespaces are limited to one dimm and can cover discontiguous ranges in dpa space. Also, after allocating label slots, it is useful for userspace to know how many slots are left. Export this information in sysfs. Cc: Greg KH Cc: Neil Brown Acked-by: Christoph Hellwig Signed-off-by: Dan Williams drivers/nvdimm/bus.c | 4 + drivers/nvdimm/dimm_devs.c | 25 ++++ drivers/nvdimm/label.c | 301 +++++++++++++++++++++++++++++++++++++--- drivers/nvdimm/label.h | 5 + drivers/nvdimm/namespace_devs.c | 57 +++++++- drivers/nvdimm/nd-core.h | 1 + 6 files changed, 369 insertions(+), 24 deletions(-) commit f524bf271a5cf12a44253194abcf8b6688ff5b9d Author: Dan Williams Date: Sat May 30 12:36:02 2015 -0400 libnvdimm: write pmem label set After 'uuid', 'size', and optionally 'alt_name' have been set to valid values the labels on the dimms can be updated. Write procedure is: 1/ Allocate and write new labels in the "next" index 2/ Free the old labels in the working copy 3/ Write the bitmap and the label space on the dimm 4/ Write the index to make the update valid Label ranges directly mirror the dpa resource values for the given label_id of the namespace. Cc: Greg KH Cc: Neil Brown Acked-by: Christoph Hellwig Signed-off-by: Dan Williams drivers/nvdimm/dimm_devs.c | 49 ++++++ drivers/nvdimm/label.c | 328 +++++++++++++++++++++++++++++++++++++++- drivers/nvdimm/label.h | 6 + drivers/nvdimm/namespace_devs.c | 83 ++++++++-- drivers/nvdimm/nd.h | 3 + 5 files changed, 455 insertions(+), 14 deletions(-) commit 1b40e09a1232de537b193fa1b6b3ef16d3a1e397 Author: Dan Williams Date: Fri May 1 13:34:01 2015 -0400 libnvdimm: blk labels and namespace instantiation A blk label set describes a namespace comprised of one or more discontiguous dpa ranges on a single dimm. They may alias with one or more pmem interleave sets that include the given dimm. This is the runtime/volatile configuration infrastructure for sysfs manipulation of 'alt_name', 'uuid', 'size', and 'sector_size'. A later patch will make these settings persistent by writing back the label(s). Unlike pmem namespaces, multiple blk namespaces can be created per region. Once a blk namespace has been created a new seed device (unconfigured child of a parent blk region) is instantiated. As long as a region has 'available_size' != 0 new child namespaces may be created. Cc: Greg KH Cc: Neil Brown Acked-by: Christoph Hellwig Signed-off-by: Dan Williams drivers/nvdimm/core.c | 40 ++++ drivers/nvdimm/dimm_devs.c | 36 +++ drivers/nvdimm/namespace_devs.c | 498 +++++++++++++++++++++++++++++++++++++--- drivers/nvdimm/nd-core.h | 8 + drivers/nvdimm/nd.h | 5 + drivers/nvdimm/region_devs.c | 17 +- include/linux/libnvdimm.h | 3 + include/linux/nd.h | 25 ++ 8 files changed, 594 insertions(+), 38 deletions(-) commit bf9bccc14c05dae8caba29df6187c731710f5380 Author: Dan Williams Date: Wed Jun 17 17:14:46 2015 -0400 libnvdimm: pmem label sets and namespace instantiation. A complete label set is a PMEM-label per-dimm per-interleave-set where all the UUIDs match and the interleave set cookie matches the hosting interleave set. Present sysfs attributes for manipulation of a PMEM-namespace's 'alt_name', 'uuid', and 'size' attributes. A later patch will make these settings persistent by writing back the label. Note that PMEM allocations grow forwards from the start of an interleave set (lowest dimm-physical-address (DPA)). BLK-namespaces that alias with a PMEM interleave set will grow allocations backward from the highest DPA. Cc: Greg KH Cc: Neil Brown Acked-by: Christoph Hellwig Signed-off-by: Dan Williams drivers/nvdimm/bus.c | 8 +- drivers/nvdimm/core.c | 64 +++ drivers/nvdimm/dimm.c | 21 +- drivers/nvdimm/dimm_devs.c | 137 ++++++ drivers/nvdimm/label.c | 55 ++- drivers/nvdimm/label.h | 2 + drivers/nvdimm/namespace_devs.c | 1002 ++++++++++++++++++++++++++++++++++++++- drivers/nvdimm/nd-core.h | 12 + drivers/nvdimm/nd.h | 17 + drivers/nvdimm/pmem.c | 20 +- drivers/nvdimm/region.c | 3 + drivers/nvdimm/region_devs.c | 158 +++++- include/linux/libnvdimm.h | 10 + include/linux/nd.h | 24 + include/uapi/linux/ndctl.h | 4 + 15 files changed, 1506 insertions(+), 31 deletions(-) commit 4a826c83db4edc040da3a66dbefd53f0cfcf457d Author: Dan Williams Date: Tue Jun 9 16:09:36 2015 -0400 libnvdimm: namespace indices: read and validate This on media label format [1] consists of two index blocks followed by an array of labels. None of these structures are ever updated in place. A sequence number tracks the current active index and the next one to write, while labels are written to free slots. +------------+ | | | nsindex0 | | | +------------+ | | | nsindex1 | | | +------------+ | label0 | +------------+ | label1 | +------------+ | | ....nslot... | | +------------+ | labelN | +------------+ After reading valid labels, store the dpa ranges they claim into per-dimm resource trees. [1]: http://pmem.io/documents/NVDIMM_Namespace_Spec.pdf Cc: Neil Brown Acked-by: Christoph Hellwig Signed-off-by: Dan Williams drivers/nvdimm/Makefile | 1 + drivers/nvdimm/dimm.c | 23 ++++ drivers/nvdimm/dimm_devs.c | 30 ++++- drivers/nvdimm/label.c | 290 +++++++++++++++++++++++++++++++++++++++++++++ drivers/nvdimm/label.h | 128 ++++++++++++++++++++ drivers/nvdimm/nd.h | 49 ++++++++ include/uapi/linux/ndctl.h | 1 - 7 files changed, 520 insertions(+), 2 deletions(-) commit eaf961536e1622ad21247ac8d44acd48ba65566e Author: Dan Williams Date: Fri May 1 13:11:27 2015 -0400 libnvdimm, nfit: add interleave-set state-tracking infrastructure On platforms that have firmware support for reading/writing per-dimm label space, a portion of the dimm may be accessible via an interleave set PMEM mapping in addition to the dimm's BLK (block-data-window aperture(s)) interface. A label, stored in a "configuration data region" on the dimm, disambiguates which dimm addresses are accessed through which exclusive interface. Add infrastructure that allows the kernel to block modifications to a label in the set while any member dimm is active. Note that this is meant only for enforcing "no modifications of active labels" via the coarse ioctl command. Adding/deleting namespaces from an active interleave set is always possible via sysfs. Another aspect of tracking interleave sets is tracking their integrity when DIMMs in a set are physically re-ordered. For this purpose we generate an "interleave-set cookie" that can be recorded in a label and validated against the current configuration. It is the bus provider implementation's responsibility to calculate the interleave set cookie and attach it to a given region. Cc: Neil Brown Cc: Cc: Greg KH Cc: Robert Moore Cc: Rafael J. Wysocki Acked-by: Christoph Hellwig Acked-by: Rafael J. Wysocki Signed-off-by: Dan Williams drivers/acpi/nfit.c | 93 +++++++++++++++++++++++++++++++++++++++++++- drivers/nvdimm/bus.c | 59 +++++++++++++++++++++++++++- drivers/nvdimm/core.c | 17 ++++++++ drivers/nvdimm/dimm_devs.c | 19 ++++++++- drivers/nvdimm/nd-core.h | 10 ++++- drivers/nvdimm/nd.h | 1 + drivers/nvdimm/region_devs.c | 69 ++++++++++++++++++++++++++++++++ include/linux/libnvdimm.h | 6 +++ 8 files changed, 269 insertions(+), 5 deletions(-) commit 9f53f9fa4ad1d8bddd4d14359cdabc531aedffe8 Author: Dan Williams Date: Tue Jun 9 15:33:45 2015 -0400 libnvdimm, pmem: add libnvdimm support to the pmem driver nd_pmem attaches to persistent memory regions and namespaces emitted by the libnvdimm subsystem, and, same as the original pmem driver, presents the system-physical-address range as a block device. The existing e820-type-12 to pmem setup is converted to an nvdimm_bus that emits an nd_namespace_io device. Note that the X in 'pmemX' is now derived from the parent region. This provides some stability to the pmem devices names from boot-to-boot. The minor numbers are also more predictable by passing 0 to alloc_disk(). Cc: Andy Lutomirski Cc: Boaz Harrosh Cc: H. Peter Anvin Cc: Jens Axboe Cc: Ingo Molnar Cc: Christoph Hellwig Signed-off-by: Ross Zwisler Acked-by: Christoph Hellwig Tested-by: Toshi Kani Signed-off-by: Dan Williams arch/x86/Kconfig | 3 ++ arch/x86/kernel/pmem.c | 92 ++++++++++++++++++++++++++++++++------------------ drivers/nvdimm/pmem.c | 68 ++++++++++++++++++------------------- 3 files changed, 96 insertions(+), 67 deletions(-) commit 18da2c9ee41a036bf470dbad73c18a815725d36e Author: Dan Williams Date: Tue Jun 9 14:13:37 2015 -0400 libnvdimm, pmem: move pmem to drivers/nvdimm/ Prepare the pmem driver to consume PMEM namespaces emitted by regions of an nvdimm_bus instance. No functional change. Acked-by: Christoph Hellwig Tested-by: Toshi Kani Signed-off-by: Dan Williams drivers/block/Kconfig | 11 -- drivers/block/Makefile | 1 - drivers/block/pmem.c | 262 ------------------------------------------------ drivers/nvdimm/Kconfig | 23 ++++- drivers/nvdimm/Makefile | 3 + drivers/nvdimm/pmem.c | 262 ++++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 287 insertions(+), 275 deletions(-) commit 3d88002e4a7bd40f355550284c6cd140e6fe29dc Author: Dan Williams Date: Sun May 31 15:02:11 2015 -0400 libnvdimm: support for legacy (non-aliasing) nvdimms The libnvdimm region driver is an intermediary driver that translates non-volatile "region"s into "namespace" sub-devices that are surfaced by persistent memory block-device drivers (PMEM and BLK). ACPI 6 introduces the concept that a given nvdimm may simultaneously offer multiple access modes to its media through direct PMEM load/store access, or windowed BLK mode. Existing nvdimms mostly implement a PMEM interface, some offer a BLK-like mode, but never both as ACPI 6 defines. If an nvdimm is single interfaced, then there is no need for dimm metadata labels. For these devices we can take the region boundaries directly to create a child namespace device (nd_namespace_io). Acked-by: Christoph Hellwig Tested-by: Toshi Kani Signed-off-by: Dan Williams drivers/acpi/nfit.c | 1 + drivers/nvdimm/Makefile | 2 + drivers/nvdimm/bus.c | 26 ++++++++++ drivers/nvdimm/core.c | 44 ++++++++++++++-- drivers/nvdimm/dimm.c | 2 +- drivers/nvdimm/namespace_devs.c | 111 ++++++++++++++++++++++++++++++++++++++++ drivers/nvdimm/nd-core.h | 6 ++- drivers/nvdimm/nd.h | 13 +++++ drivers/nvdimm/region.c | 93 +++++++++++++++++++++++++++++++++ drivers/nvdimm/region_devs.c | 66 +++++++++++++++++++++++- include/linux/libnvdimm.h | 7 ++- include/linux/nd.h | 10 ++++ include/uapi/linux/ndctl.h | 10 ++++ 13 files changed, 383 insertions(+), 8 deletions(-) commit 1f7df6f88b9245a7f2d0f8ecbc97dc88c8d0d8e1 Author: Dan Williams Date: Tue Jun 9 20:13:14 2015 -0400 libnvdimm, nfit: regions (block-data-window, persistent memory, volatile memory) A "region" device represents the maximum capacity of a BLK range (mmio block-data-window(s)), or a PMEM range (DAX-capable persistent memory or volatile memory), without regard for aliasing. Aliasing, in the dimm-local address space (DPA), is resolved by metadata on a dimm to designate which exclusive interface will access the aliased DPA ranges. Support for the per-dimm metadata/label arrvies is in a subsequent patch. The name format of "region" devices is "regionN" where, like dimms, N is a global ida index assigned at discovery time. This id is not reliable across reboots nor in the presence of hotplug. Look to attributes of the region or static id-data of the sub-namespace to generate a persistent name. However, if the platform configuration does not change it is reasonable to expect the same region id to be assigned at the next boot. "region"s have 2 generic attributes "size", and "mapping"s where: - size: the BLK accessible capacity or the span of the system physical address range in the case of PMEM. - mappingN: a tuple describing a dimm's contribution to the region's capacity in the format (,,). For a PMEM-region there will be at least one mapping per dimm in the interleave set. For a BLK-region there is only "mapping0" listing the starting DPA of the BLK-region and the available DPA capacity of that space (matches "size" above). The max number of mappings per "region" is hard coded per the constraints of sysfs attribute groups. That said the number of mappings per region should never exceed the maximum number of possible dimms in the system. If the current number turns out to not be enough then the "mappings" attribute clarifies how many there are supposed to be. "32 should be enough for anybody...". Cc: Neil Brown Cc: Cc: Greg KH Cc: Robert Moore Cc: Rafael J. Wysocki Acked-by: Christoph Hellwig Acked-by: Rafael J. Wysocki Tested-by: Toshi Kani Signed-off-by: Dan Williams drivers/acpi/nfit.c | 148 ++++++++++++++++++++- drivers/nvdimm/Makefile | 1 + drivers/nvdimm/nd-core.h | 3 + drivers/nvdimm/nd.h | 11 ++ drivers/nvdimm/region_devs.c | 297 +++++++++++++++++++++++++++++++++++++++++++ include/linux/libnvdimm.h | 25 ++++ 6 files changed, 484 insertions(+), 1 deletion(-) commit 4d88a97aa9e8cfa6460aab119c5da60ad2267423 Author: Dan Williams Date: Sun May 31 14:41:48 2015 -0400 libnvdimm, nvdimm: dimm driver and base libnvdimm device-driver infrastructure * Implement the device-model infrastructure for loading modules and attaching drivers to nvdimm devices. This is a simple association of a nd-device-type number with a driver that has a bitmask of supported device types. To facilitate userspace bind/unbind operations 'modalias' and 'devtype', that also appear in the uevent, are added as generic sysfs attributes for all nvdimm devices. The reason for the device-type number is to support sub-types within a given parent devtype, be it a vendor-specific sub-type or otherwise. * The first consumer of this infrastructure is the driver for dimm devices. It simply uses control messages to retrieve and store the configuration-data image (label set) from each dimm. Note: nd_device_register() arranges for asynchronous registration of nvdimm bus devices by default. Cc: Greg KH Cc: Neil Brown Acked-by: Christoph Hellwig Tested-by: Toshi Kani Signed-off-by: Dan Williams drivers/acpi/nfit.c | 13 +++- drivers/nvdimm/Makefile | 1 + drivers/nvdimm/bus.c | 168 ++++++++++++++++++++++++++++++++++++++++++++- drivers/nvdimm/core.c | 43 +++++++++++- drivers/nvdimm/dimm.c | 92 +++++++++++++++++++++++++ drivers/nvdimm/dimm_devs.c | 136 ++++++++++++++++++++++++++++++++++-- drivers/nvdimm/nd-core.h | 6 +- drivers/nvdimm/nd.h | 36 ++++++++++ include/linux/libnvdimm.h | 2 + include/linux/nd.h | 39 +++++++++++ include/uapi/linux/ndctl.h | 6 ++ 11 files changed, 527 insertions(+), 15 deletions(-) commit 62232e45f4a265abb43f0acf16e58f5d0b6e1ec9 Author: Dan Williams Date: Mon Jun 8 14:27:06 2015 -0400 libnvdimm: control (ioctl) messages for nvdimm_bus and nvdimm devices Most discovery/configuration of the nvdimm-subsystem is done via sysfs attributes. However, some nvdimm_bus instances, particularly the ACPI.NFIT bus, define a small set of messages that can be passed to the platform. For convenience we derive the initial libnvdimm-ioctl command formats directly from the NFIT DSM Interface Example formats. ND_CMD_SMART: media health and diagnostics ND_CMD_GET_CONFIG_SIZE: size of the label space ND_CMD_GET_CONFIG_DATA: read label space ND_CMD_SET_CONFIG_DATA: write label space ND_CMD_VENDOR: vendor-specific command passthrough ND_CMD_ARS_CAP: report address-range-scrubbing capabilities ND_CMD_ARS_START: initiate scrubbing ND_CMD_ARS_STATUS: report on scrubbing state ND_CMD_SMART_THRESHOLD: configure alarm thresholds for smart events If a platform later defines different commands than this set it is straightforward to extend support to those formats. Most of the commands target a specific dimm. However, the address-range-scrubbing commands target the bus. The 'commands' attribute in sysfs of an nvdimm_bus, or nvdimm, enumerate the supported commands for that object. Cc: Cc: Robert Moore Cc: Rafael J. Wysocki Reported-by: Nicholas Moulin Acked-by: Christoph Hellwig Signed-off-by: Dan Williams drivers/acpi/Kconfig | 12 ++ drivers/acpi/nfit.c | 216 +++++++++++++++++++++++++++++- drivers/acpi/nfit.h | 3 + drivers/nvdimm/bus.c | 326 ++++++++++++++++++++++++++++++++++++++++++++- drivers/nvdimm/core.c | 16 +++ drivers/nvdimm/dimm_devs.c | 38 +++++- drivers/nvdimm/nd-core.h | 3 + include/linux/libnvdimm.h | 27 +++- include/uapi/linux/Kbuild | 1 + include/uapi/linux/ndctl.h | 178 +++++++++++++++++++++++++ 10 files changed, 810 insertions(+), 10 deletions(-) commit e6dfb2de47768efe8cc37c9a1863d2aff81440fb Author: Dan Williams Date: Sat Apr 25 03:56:17 2015 -0400 libnvdimm, nfit: dimm/memory-devices Enable nvdimm devices to be registered on a nvdimm_bus. The kernel assigned device id for nvdimm devicesis dynamic. If userspace needs a more static identifier it should consult a provider-specific attribute. In the case where NFIT is the provider, the 'nmemX/nfit/handle' or 'nmemX/nfit/serial' attributes may be used for this purpose. Cc: Neil Brown Cc: Cc: Greg KH Cc: Robert Moore Cc: Rafael J. Wysocki Acked-by: Christoph Hellwig Acked-by: Rafael J. Wysocki Tested-by: Toshi Kani Signed-off-by: Dan Williams drivers/acpi/nfit.c | 161 ++++++++++++++++++++++++++++++++++++++++++++- drivers/acpi/nfit.h | 1 + drivers/nvdimm/Makefile | 1 + drivers/nvdimm/bus.c | 14 +++- drivers/nvdimm/core.c | 33 +++++++++- drivers/nvdimm/dimm_devs.c | 92 ++++++++++++++++++++++++++ drivers/nvdimm/nd-core.h | 12 ++++ include/linux/libnvdimm.h | 11 ++++ 8 files changed, 321 insertions(+), 4 deletions(-) commit 45def22c1fab85764646746ce38d45b2f3281fa5 Author: Dan Williams Date: Sun Apr 26 19:26:48 2015 -0400 libnvdimm: control character device and nvdimm_bus sysfs attributes The control device for a nvdimm_bus is registered as an "nd" class device. The expectation is that there will usually only be one "nd" bus registered under /sys/class/nd. However, we allow for the possibility of multiple buses and they will listed in discovery order as ndctl0...ndctlN. This character device hosts the ioctl for passing control messages. The initial command set has a 1:1 correlation with the commands listed in the by the "NFIT DSM Example" document [1], but this scheme is extensible to future command sets. Note, nd_ioctl() and the backing ->ndctl() implementation are defined in a subsequent patch. This is simply the initial registrations and sysfs attributes. [1]: http://pmem.io/documents/NVDIMM_DSM_Interface_Example.pdf Cc: Neil Brown Cc: Greg KH Cc: Cc: Robert Moore Cc: Rafael J. Wysocki Acked-by: Christoph Hellwig Acked-by: Rafael J. Wysocki Tested-by: Toshi Kani Signed-off-by: Dan Williams drivers/acpi/nfit.c | 28 +++++++++++++++ drivers/acpi/nfit.h | 6 ++++ drivers/nvdimm/Makefile | 1 + drivers/nvdimm/bus.c | 83 ++++++++++++++++++++++++++++++++++++++++++++ drivers/nvdimm/core.c | 88 +++++++++++++++++++++++++++++++++++++++++++++-- drivers/nvdimm/nd-core.h | 6 ++++ include/linux/libnvdimm.h | 6 +++- 7 files changed, 215 insertions(+), 3 deletions(-) commit b94d5230d06eb930be82e67fb1a9a58271e78297 Author: Dan Williams Date: Tue May 19 22:54:31 2015 -0400 libnvdimm, nfit: initial libnvdimm infrastructure and NFIT support A struct nvdimm_bus is the anchor device for registering nvdimm resources and interfaces, for example, a character control device, nvdimm devices, and I/O region devices. The ACPI NFIT (NVDIMM Firmware Interface Table) is one possible platform description for such non-volatile memory resources in a system. The nfit.ko driver attaches to the "ACPI0012" device that indicates the presence of the NFIT and parses the table to register a struct nvdimm_bus instance. Cc: Cc: Lv Zheng Cc: Robert Moore Cc: Rafael J. Wysocki Acked-by: Jeff Moyer Acked-by: Christoph Hellwig Acked-by: Rafael J. Wysocki Tested-by: Toshi Kani Signed-off-by: Dan Williams drivers/Kconfig | 2 + drivers/Makefile | 1 + drivers/acpi/Kconfig | 14 ++ drivers/acpi/Makefile | 1 + drivers/acpi/nfit.c | 481 ++++++++++++++++++++++++++++++++++++++++++++++ drivers/acpi/nfit.h | 90 +++++++++ drivers/nvdimm/Kconfig | 15 ++ drivers/nvdimm/Makefile | 3 + drivers/nvdimm/core.c | 69 +++++++ drivers/nvdimm/nd-core.h | 23 +++ include/linux/libnvdimm.h | 34 ++++ 11 files changed, 733 insertions(+) commit 8a8c35fadfaf55629a37ef1a8ead1b8fb32581d2 Author: Larry Finger Date: Wed Jun 24 16:58:51 2015 -0700 mm: kmemleak_alloc_percpu() should follow the gfp from per_alloc() Beginning at commit d52d3997f843 ("ipv6: Create percpu rt6_info"), the following INFO splat is logged: =============================== [ INFO: suspicious RCU usage. ] 4.1.0-rc7-next-20150612 #1 Not tainted ------------------------------- kernel/sched/core.c:7318 Illegal context switch in RCU-bh read-side critical section! other info that might help us debug this: rcu_scheduler_active = 1, debug_locks = 0 3 locks held by systemd/1: #0: (rtnl_mutex){+.+.+.}, at: [] rtnetlink_rcv+0x1f/0x40 #1: (rcu_read_lock_bh){......}, at: [] ipv6_add_addr+0x62/0x540 #2: (addrconf_hash_lock){+...+.}, at: [] ipv6_add_addr+0x184/0x540 stack backtrace: CPU: 0 PID: 1 Comm: systemd Not tainted 4.1.0-rc7-next-20150612 #1 Hardware name: TOSHIBA TECRA A50-A/TECRA A50-A, BIOS Version 4.20 04/17/2014 Call Trace: dump_stack+0x4c/0x6e lockdep_rcu_suspicious+0xe7/0x120 ___might_sleep+0x1d5/0x1f0 __might_sleep+0x4d/0x90 kmem_cache_alloc+0x47/0x250 create_object+0x39/0x2e0 kmemleak_alloc_percpu+0x61/0xe0 pcpu_alloc+0x370/0x630 Additional backtrace lines are truncated. In addition, the above splat is followed by several "BUG: sleeping function called from invalid context at mm/slub.c:1268" outputs. As suggested by Martin KaFai Lau, these are the clue to the fix. Routine kmemleak_alloc_percpu() always uses GFP_KERNEL for its allocations, whereas it should follow the gfp from its callers. Reviewed-by: Catalin Marinas Reviewed-by: Kamalesh Babulal Acked-by: Martin KaFai Lau Signed-off-by: Larry Finger Cc: Martin KaFai Lau Cc: Catalin Marinas Cc: Tejun Heo Cc: Christoph Lameter Cc: [3.18+] Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/kmemleak.h | 6 ++++-- mm/kmemleak.c | 9 +++++---- mm/percpu.c | 2 +- 3 files changed, 10 insertions(+), 7 deletions(-) commit 0867a57c4f80a566dda1bac975b42fcd857cb489 Author: Vlastimil Babka Date: Wed Jun 24 16:58:48 2015 -0700 mm, thp: respect MPOL_PREFERRED policy with non-local node Since commit 077fcf116c8c ("mm/thp: allocate transparent hugepages on local node"), we handle THP allocations on page fault in a special way - for non-interleave memory policies, the allocation is only attempted on the node local to the current CPU, if the policy's nodemask allows the node. This is motivated by the assumption that THP benefits cannot offset the cost of remote accesses, so it's better to fallback to base pages on the local node (which might still be available, while huge pages are not due to fragmentation) than to allocate huge pages on a remote node. The nodemask check prevents us from violating e.g. MPOL_BIND policies where the local node is not among the allowed nodes. However, the current implementation can still give surprising results for the MPOL_PREFERRED policy when the preferred node is different than the current CPU's local node. In such case we should honor the preferred node and not use the local node, which is what this patch does. If hugepage allocation on the preferred node fails, we fall back to base pages and don't try other nodes, with the same motivation as is done for the local node hugepage allocations. The patch also moves the MPOL_INTERLEAVE check around to simplify the hugepage specific test. The difference can be demonstrated using in-tree transhuge-stress test on the following 2-node machine where half memory on one node was occupied to show the difference. > numactl --hardware available: 2 nodes (0-1) node 0 cpus: 0 1 2 3 4 5 6 7 8 9 10 11 24 25 26 27 28 29 30 31 32 33 34 35 node 0 size: 7878 MB node 0 free: 3623 MB node 1 cpus: 12 13 14 15 16 17 18 19 20 21 22 23 36 37 38 39 40 41 42 43 44 45 46 47 node 1 size: 8045 MB node 1 free: 7818 MB node distances: node 0 1 0: 10 21 1: 21 10 Before the patch: > numactl -p0 -C0 ./transhuge-stress transhuge-stress: 2.197 s/loop, 0.276 ms/page, 7249.168 MiB/s 7962 succeed, 0 failed, 1786 different pages > numactl -p0 -C12 ./transhuge-stress transhuge-stress: 2.962 s/loop, 0.372 ms/page, 5376.172 MiB/s 7962 succeed, 0 failed, 3873 different pages Number of successful THP allocations corresponds to free memory on node 0 in the first case and node 1 in the second case, i.e. -p parameter is ignored and cpu binding "wins". After the patch: > numactl -p0 -C0 ./transhuge-stress transhuge-stress: 2.183 s/loop, 0.274 ms/page, 7295.516 MiB/s 7962 succeed, 0 failed, 1760 different pages > numactl -p0 -C12 ./transhuge-stress transhuge-stress: 2.878 s/loop, 0.361 ms/page, 5533.638 MiB/s 7962 succeed, 0 failed, 1750 different pages > numactl -p1 -C0 ./transhuge-stress transhuge-stress: 4.628 s/loop, 0.581 ms/page, 3440.893 MiB/s 7962 succeed, 0 failed, 3918 different pages The -p parameter is respected regardless of cpu binding. > numactl -C0 ./transhuge-stress transhuge-stress: 2.202 s/loop, 0.277 ms/page, 7230.003 MiB/s 7962 succeed, 0 failed, 1750 different pages > numactl -C12 ./transhuge-stress transhuge-stress: 3.020 s/loop, 0.379 ms/page, 5273.324 MiB/s 7962 succeed, 0 failed, 3916 different pages Without -p parameter, hugepage restriction to CPU-local node works as before. Fixes: 077fcf116c8c ("mm/thp: allocate transparent hugepages on local node") Signed-off-by: Vlastimil Babka Cc: Aneesh Kumar K.V Acked-by: David Rientjes Cc: Kirill A. Shutemov Cc: Andrea Arcangeli Cc: Michal Hocko Cc: [4.0+] Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/mempolicy.c | 38 ++++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 16 deletions(-) commit afa2db2fb6f15f860069de94a1257db57589fe95 Author: Josef Bacik Date: Wed Jun 24 16:58:45 2015 -0700 tmpfs: truncate prealloc blocks past i_size One of the rocksdb people noticed that when you do something like this fallocate(fd, FALLOC_FL_KEEP_SIZE, 0, 10M) pwrite(fd, buf, 5M, 0) ftruncate(5M) on tmpfs, the file would still take up 10M: which led to super fun issues because we were getting ENOSPC before we thought we should be getting ENOSPC. This patch fixes the problem, and mirrors what all the other fs'es do (and was agreed to be the correct behaviour at LSF). I tested it locally to make sure it worked properly with the following xfs_io -f -c "falloc -k 0 10M" -c "pwrite 0 5M" -c "truncate 5M" file Without the patch we have "Blocks: 20480", with the patch we have the correct value of "Blocks: 10240". Signed-off-by: Josef Bacik Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/shmem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c435a390574d012f8d30074135d8fcc6f480b484 Author: Zhu Guihua Date: Wed Jun 24 16:58:42 2015 -0700 mm/memory hotplug: print the last vmemmap region at the end of hot add memory When hot add two nodes continuously, we found the vmemmap region info is a bit messed. The last region of node 2 is printed when node 3 hot added, like the following: Initmem setup node 2 [mem 0x0000000000000000-0xffffffffffffffff] On node 2 totalpages: 0 Built 2 zonelists in Node order, mobility grouping on. Total pages: 16090539 Policy zone: Normal init_memory_mapping: [mem 0x40000000000-0x407ffffffff] [mem 0x40000000000-0x407ffffffff] page 1G [ffffea1000000000-ffffea10001fffff] PMD -> [ffff8a077d800000-ffff8a077d9fffff] on node 2 [ffffea1000200000-ffffea10003fffff] PMD -> [ffff8a077de00000-ffff8a077dffffff] on node 2 ... [ffffea101f600000-ffffea101f9fffff] PMD -> [ffff8a074ac00000-ffff8a074affffff] on node 2 [ffffea101fa00000-ffffea101fdfffff] PMD -> [ffff8a074a800000-ffff8a074abfffff] on node 2 Initmem setup node 3 [mem 0x0000000000000000-0xffffffffffffffff] On node 3 totalpages: 0 Built 3 zonelists in Node order, mobility grouping on. Total pages: 16090539 Policy zone: Normal init_memory_mapping: [mem 0x60000000000-0x607ffffffff] [mem 0x60000000000-0x607ffffffff] page 1G [ffffea101fe00000-ffffea101fffffff] PMD -> [ffff8a074a400000-ffff8a074a5fffff] on node 2 <=== node 2 ??? [ffffea1800000000-ffffea18001fffff] PMD -> [ffff8a074a600000-ffff8a074a7fffff] on node 3 [ffffea1800200000-ffffea18005fffff] PMD -> [ffff8a074a000000-ffff8a074a3fffff] on node 3 [ffffea1800600000-ffffea18009fffff] PMD -> [ffff8a0749c00000-ffff8a0749ffffff] on node 3 ... The cause is the last region was missed at the and of hot add memory, and p_start, p_end, node_start were not reset, so when hot add memory to a new node, it will consider they are not contiguous blocks and print the previous one. So we print the last vmemmap region at the end of hot add memory to avoid the confusion. Signed-off-by: Zhu Guihua Reviewed-by: Naoya Horiguchi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memory_hotplug.c | 1 + 1 file changed, 1 insertion(+) commit e37609bb36f706c954e82e580e2e790e9d5caef8 Author: Piotr Kwapulinski Date: Wed Jun 24 16:58:39 2015 -0700 mm/mmap.c: optimization of do_mmap_pgoff function The simple check for zero length memory mapping may be performed earlier. So that in case of zero length memory mapping some unnecessary code is not executed at all. It does not make the code less readable and saves some CPU cycles. Signed-off-by: Piotr Kwapulinski Acked-by: Michal Hocko Acked-by: Rik van Riel Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/mmap.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 93ada579b0eea06f808aef08ead64bb230fb7851 Author: Catalin Marinas Date: Wed Jun 24 16:58:37 2015 -0700 mm: kmemleak: optimise kmemleak_lock acquiring during kmemleak_scan The kmemleak memory scanning uses finer grained object->lock spinlocks primarily to avoid races with the memory block freeing. However, the pointer lookup in the rb tree requires the kmemleak_lock to be held. This is currently done in the find_and_get_object() function for each pointer-like location read during scanning. While this allows a low latency on kmemleak_*() callbacks on other CPUs, the memory scanning is slower. This patch moves the kmemleak_lock outside the scan_block() loop, acquiring/releasing it only once per scanned memory block. The allow_resched logic is moved outside scan_block() and a new scan_large_block() function is implemented which splits large blocks in MAX_SCAN_SIZE chunks with cond_resched() calls in-between. A redundant (object->flags & OBJECT_NO_SCAN) check is also removed from scan_object(). With this patch, the kmemleak scanning performance is significantly improved: at least 50% with lock debugging disabled and over an order of magnitude with lock proving enabled (on an arm64 system). Signed-off-by: Catalin Marinas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/kmemleak.c | 90 +++++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 56 insertions(+), 34 deletions(-) commit 9d5a4c730dd164f6f1b4ed6690fbe2667e5149ea Author: Catalin Marinas Date: Wed Jun 24 16:58:34 2015 -0700 mm: kmemleak: avoid deadlock on the kmemleak object insertion error path While very unlikely (usually kmemleak or sl*b bug), the create_object() function in mm/kmemleak.c may fail to insert a newly allocated object into the rb tree. When this happens, kmemleak disables itself and prints additional information about the object already found in the rb tree. Such printing is done with the parent->lock acquired, however the kmemleak_lock is already held. This is a potential race with the scanning thread which acquires object->lock and kmemleak_lock in a This patch removes the locking around the 'parent' object information printing. Such object cannot be freed or removed from object_tree_root and object_list since kmemleak_lock is already held. There is a very small risk that some of the object data is being modified on another CPU but the only downside is inconsistent information printing. Signed-off-by: Catalin Marinas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/kmemleak.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) commit 5f369f374ba4889fe3c17883402db5ee8d254216 Author: Catalin Marinas Date: Wed Jun 24 16:58:31 2015 -0700 mm: kmemleak: do not acquire scan_mutex in kmemleak_do_cleanup() The kmemleak_do_cleanup() work thread already waits for the kmemleak_scan thread to finish via kthread_stop(). Waiting in kthread_stop() while scan_mutex is held may lead to deadlock if kmemleak_scan_thread() also waits to acquire for scan_mutex. Signed-off-by: Catalin Marinas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/kmemleak.c | 2 -- 1 file changed, 2 deletions(-) commit e781a9ab4847a81224667f5faab0b2bc5f78908f Author: Catalin Marinas Date: Wed Jun 24 16:58:29 2015 -0700 mm: kmemleak: fix delete_object_*() race when called on the same memory block Calling delete_object_*() on the same pointer is not a standard use case (unless there is a bug in the code calling kmemleak_free()). However, during kmemleak disabling (error or user triggered via /sys), there is a potential race between kmemleak_free() calls on a CPU and __kmemleak_do_cleanup() on a different CPU. The current delete_object_*() implementation first performs a look-up holding kmemleak_lock, increments the object->use_count and then re-acquires kmemleak_lock to remove the object from object_tree_root and object_list. This patch simplifies the delete_object_*() mechanism to both look up and remove an object from the object_tree_root and object_list atomically (guarded by kmemleak_lock). This allows safe concurrent calls to delete_object_*() on the same pointer without additional locking for synchronising the kmemleak_free_enabled flag. A side effect is a slight improvement in the delete_object_*() performance by avoiding acquiring kmemleak_lock twice and incrementing/decrementing object->use_count. Signed-off-by: Catalin Marinas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/kmemleak.c | 39 ++++++++++++++++++++++++++------------- 1 file changed, 26 insertions(+), 13 deletions(-) commit c5f3b1a51a591c18c8b33983908e7fdda6ae417e Author: Catalin Marinas Date: Wed Jun 24 16:58:26 2015 -0700 mm: kmemleak: allow safe memory scanning during kmemleak disabling The kmemleak scanning thread can run for minutes. Callbacks like kmemleak_free() are allowed during this time, the race being taken care of by the object->lock spinlock. Such lock also prevents a memory block from being freed or unmapped while it is being scanned by blocking the kmemleak_free() -> ... -> __delete_object() function until the lock is released in scan_object(). When a kmemleak error occurs (e.g. it fails to allocate its metadata), kmemleak_enabled is set and __delete_object() is no longer called on freed objects. If kmemleak_scan is running at the same time, kmemleak_free() no longer waits for the object scanning to complete, allowing the corresponding memory block to be freed or unmapped (in the case of vfree()). This leads to kmemleak_scan potentially triggering a page fault. This patch separates the kmemleak_free() enabling/disabling from the overall kmemleak_enabled nob so that we can defer the disabling of the object freeing tracking until the scanning thread completed. The kmemleak_free_part() is deliberately ignored by this patch since this is only called during boot before the scanning thread started. Signed-off-by: Catalin Marinas Reported-by: Vignesh Radhakrishnan Tested-by: Vignesh Radhakrishnan Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/kmemleak.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) commit c2b42d3cadbffbf5117ccdbcb3a2fc47c0d59bae Author: Tejun Heo Date: Wed Jun 24 16:58:23 2015 -0700 memcg: convert mem_cgroup->under_oom from atomic_t to int memcg->under_oom tracks whether the memcg is under OOM conditions and is an atomic_t counter managed with mem_cgroup_[un]mark_under_oom(). While atomic_t appears to be simple synchronization-wise, when used as a synchronization construct like here, it's trickier and more error-prone due to weak memory ordering rules, especially around atomic_read(), and false sense of security. For example, both non-trivial read sites of memcg->under_oom are a bit problematic although not being actually broken. * mem_cgroup_oom_register_event() It isn't explicit what guarantees the memory ordering between event addition and memcg->under_oom check. This isn't broken only because memcg_oom_lock is used for both event list and memcg->oom_lock. * memcg_oom_recover() The lockless test doesn't have any explanation why this would be safe. mem_cgroup_[un]mark_under_oom() are very cold paths and there's no point in avoiding locking memcg_oom_lock there. This patch converts memcg->under_oom from atomic_t to int, puts their modifications under memcg_oom_lock and documents why the lockless test in memcg_oom_recover() is safe. Signed-off-by: Tejun Heo Acked-by: Michal Hocko Cc: Johannes Weiner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memcontrol.c | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) commit f4b90b70b7a4f5c29c442399ffd531332356e1f5 Author: Tejun Heo Date: Wed Jun 24 16:58:21 2015 -0700 memcg: remove unused mem_cgroup->oom_wakeups Since commit 4942642080ea ("mm: memcg: handle non-error OOM situations more gracefully"), nobody uses mem_cgroup->oom_wakeups. Remove it. While at it, also fold memcg_wakeup_oom() into memcg_oom_recover() which is its only user. This cleanup was suggested by Michal. Signed-off-by: Tejun Heo Acked-by: Michal Hocko Cc: Johannes Weiner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memcontrol.c | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) commit d1dc6f1bcf1e998e7ce65fc120da371ab047a999 Author: Dan Streetman Date: Wed Jun 24 16:58:18 2015 -0700 frontswap: allow multiple backends Change frontswap single pointer to a singly linked list of frontswap implementations. Update Xen tmem implementation as register no longer returns anything. Frontswap only keeps track of a single implementation; any implementation that registers second (or later) will replace the previously registered implementation, and gets a pointer to the previous implementation that the new implementation is expected to pass all frontswap functions to if it can't handle the function itself. However that method doesn't really make much sense, as passing that work on to every implementation adds unnecessary work to implementations; instead, frontswap should simply keep a list of all registered implementations and try each implementation for any function. Most importantly, neither of the two currently existing frontswap implementations in the kernel actually do anything with any previous frontswap implementation that they replace when registering. This allows frontswap to successfully manage multiple implementations by keeping a list of them all. Signed-off-by: Dan Streetman Cc: Konrad Rzeszutek Wilk Cc: Boris Ostrovsky Cc: David Vrabel Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/xen/tmem.c | 8 +- include/linux/frontswap.h | 14 +-- mm/frontswap.c | 215 ++++++++++++++++++++++++++++------------------ 3 files changed, 139 insertions(+), 98 deletions(-) commit b05b9f5f9dcf593a0e9327676b78e6c17b4218e8 Author: Tony Luck Date: Wed Jun 24 16:58:15 2015 -0700 x86, mirror: x86 enabling - find mirrored memory ranges UEFI GetMemoryMap() uses a new attribute bit to mark mirrored memory address ranges. See UEFI 2.5 spec pages 157-158: http://www.uefi.org/sites/default/files/resources/UEFI%202_5.pdf On EFI enabled systems scan the memory map and tell memblock about any mirrored ranges. Signed-off-by: Tony Luck Cc: Xishi Qiu Cc: Hanjun Guo Cc: Xiexiuqi Cc: Ingo Molnar Cc: Thomas Gleixner Cc: "H. Peter Anvin" Cc: Yinghai Lu Cc: Naoya Horiguchi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/x86/kernel/setup.c | 3 +++ arch/x86/platform/efi/efi.c | 21 +++++++++++++++++++++ include/linux/efi.h | 3 +++ 3 files changed, 27 insertions(+) commit a3f5bafcc04aaf62990e0cf3ced1cc6d8dc6fe95 Author: Tony Luck Date: Wed Jun 24 16:58:12 2015 -0700 mm/memblock: allocate boot time data structures from mirrored memory Try to allocate all boot time kernel data structures from mirrored memory. If we run out of mirrored memory print warnings, but fall back to using non-mirrored memory to make sure that we still boot. By number of bytes, most of what we allocate at boot time is the page structures. 64 bytes per 4K page on x86_64 ... or about 1.5% of total system memory. For workloads where the bulk of memory is allocated to applications this may represent a useful improvement to system availability since 1.5% of total memory might be a third of the memory allocated to the kernel. Signed-off-by: Tony Luck Cc: Xishi Qiu Cc: Hanjun Guo Cc: Xiexiuqi Cc: Ingo Molnar Cc: Thomas Gleixner Cc: "H. Peter Anvin" Cc: Yinghai Lu Cc: Naoya Horiguchi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/memblock.h | 8 +++++ mm/memblock.c | 78 +++++++++++++++++++++++++++++++++++++++++------- mm/nobootmem.c | 10 ++++++- 3 files changed, 84 insertions(+), 12 deletions(-) commit fc6daaf93151877748f8096af6b3fddb147f22d6 Author: Tony Luck Date: Wed Jun 24 16:58:09 2015 -0700 mm/memblock: add extra "flags" to memblock to allow selection of memory based on attribute Some high end Intel Xeon systems report uncorrectable memory errors as a recoverable machine check. Linux has included code for some time to process these and just signal the affected processes (or even recover completely if the error was in a read only page that can be replaced by reading from disk). But we have no recovery path for errors encountered during kernel code execution. Except for some very specific cases were are unlikely to ever be able to recover. Enter memory mirroring. Actually 3rd generation of memory mirroing. Gen1: All memory is mirrored Pro: No s/w enabling - h/w just gets good data from other side of the mirror Con: Halves effective memory capacity available to OS/applications Gen2: Partial memory mirror - just mirror memory begind some memory controllers Pro: Keep more of the capacity Con: Nightmare to enable. Have to choose between allocating from mirrored memory for safety vs. NUMA local memory for performance Gen3: Address range partial memory mirror - some mirror on each memory controller Pro: Can tune the amount of mirror and keep NUMA performance Con: I have to write memory management code to implement The current plan is just to use mirrored memory for kernel allocations. This has been broken into two phases: 1) This patch series - find the mirrored memory, use it for boot time allocations 2) Wade into mm/page_alloc.c and define a ZONE_MIRROR to pick up the unused mirrored memory from mm/memblock.c and only give it out to select kernel allocations (this is still being scoped because page_alloc.c is scary). This patch (of 3): Add extra "flags" to memblock to allow selection of memory based on attribute. No functional changes Signed-off-by: Tony Luck Cc: Xishi Qiu Cc: Hanjun Guo Cc: Xiexiuqi Cc: Ingo Molnar Cc: Thomas Gleixner Cc: "H. Peter Anvin" Cc: Yinghai Lu Cc: Naoya Horiguchi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/s390/kernel/crash_dump.c | 5 ++-- arch/sparc/mm/init_64.c | 6 +++-- arch/x86/kernel/check.c | 3 ++- arch/x86/kernel/e820.c | 3 ++- arch/x86/mm/init_32.c | 2 +- include/linux/memblock.h | 41 ++++++++++++++++++++------------ mm/cma.c | 6 +++-- mm/memblock.c | 55 +++++++++++++++++++++++++++---------------- mm/memtest.c | 3 ++- mm/nobootmem.c | 6 +++-- 10 files changed, 83 insertions(+), 47 deletions(-) commit 6afdb859b71019143b8eecda02b8b29b03185055 Author: Michal Hocko Date: Wed Jun 24 16:58:06 2015 -0700 mm: do not ignore mapping_gfp_mask in page cache allocation paths page_cache_read, do_generic_file_read, __generic_file_splice_read and __ntfs_grab_cache_pages currently ignore mapping_gfp_mask when calling add_to_page_cache_lru which might cause recursion into fs down in the direct reclaim path if the mapping really relies on GFP_NOFS semantic. This doesn't seem to be the case now because page_cache_read (page fault path) doesn't seem to suffer from the reclaim recursion issues and do_generic_file_read and __generic_file_splice_read also shouldn't be called under fs locks which would deadlock in the reclaim path. Anyway it is better to obey mapping gfp mask and prevent from later breakage. [akpm@linux-foundation.org: coding-style fixes] Signed-off-by: Michal Hocko Cc: Dave Chinner Cc: Neil Brown Cc: Johannes Weiner Cc: Al Viro Cc: Mel Gorman Cc: Rik van Riel Cc: Tetsuo Handa Cc: Anton Altaparmakov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ntfs/file.c | 3 ++- fs/splice.c | 2 +- mm/filemap.c | 7 ++++--- 3 files changed, 7 insertions(+), 5 deletions(-) commit 0f96ae2928a547b86678688042a9759edcc8285d Author: Shailendra Verma Date: Wed Jun 24 16:58:03 2015 -0700 mm/cma.c: fix typos in comments Signed-off-by: Shailendra Verma Acked-by: Michal Nazarewicz Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/cma.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit f0d6647e85050c6ca70d69a647e3c653dd9b349a Author: Wang Long Date: Wed Jun 24 16:58:01 2015 -0700 mm/oom_kill.c: print points as unsigned int In oom_kill_process(), the variable 'points' is unsigned int. Print it as such. Signed-off-by: Wang Long Acked-by: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/oom_kill.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 33039678c8da8133e30ea3250d10ae14701dae2b Author: Mike Kravetz Date: Wed Jun 24 16:57:58 2015 -0700 mm/hugetlb: handle races in alloc_huge_page and hugetlb_reserve_pages alloc_huge_page and hugetlb_reserve_pages use region_chg to calculate the number of pages which will be added to the reserve map. Subpool and global reserve counts are adjusted based on the output of region_chg. Before the pages are actually added to the reserve map, these routines could race and add fewer pages than expected. If this happens, the subpool and global reserve counts are not correct. Compare the number of pages actually added (region_add) to those expected to added (region_chg). If fewer pages are actually added, this indicates a race and adjust counters accordingly. Signed-off-by: Mike Kravetz Reviewed-by: Naoya Horiguchi Reviewed-by: Davidlohr Bueso Cc: David Rientjes Cc: Luiz Capitulino Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/hugetlb.c | 39 +++++++++++++++++++++++++++++++++++---- 1 file changed, 35 insertions(+), 4 deletions(-) commit cf3ad20bfeadda693e408d85684790714fc29b08 Author: Mike Kravetz Date: Wed Jun 24 16:57:55 2015 -0700 mm/hugetlb: compute/return the number of regions added by region_add() Modify region_add() to keep track of regions(pages) added to the reserve map and return this value. The return value can be compared to the return value of region_chg() to determine if the map was modified between calls. Make vma_commit_reservation() also pass along the return value of region_add(). In the normal case, we want vma_commit_reservation to return the same value as the preceding call to vma_needs_reservation. Create a common __vma_reservation_common routine to help keep the special case return values in sync Signed-off-by: Mike Kravetz Cc: Naoya Horiguchi Cc: Davidlohr Bueso Cc: David Rientjes Cc: Luiz Capitulino Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/hugetlb.c | 72 ++++++++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 48 insertions(+), 24 deletions(-) commit 1dd308a7b49d4bdbc17bfa570675ecc8cf7bedb3 Author: Mike Kravetz Date: Wed Jun 24 16:57:52 2015 -0700 mm/hugetlb: document the reserve map/region tracking routines While working on hugetlbfs fallocate support, I noticed the following race in the existing code. It is unlikely that this race is hit very often in the current code. However, if more functionality to add and remove pages to hugetlbfs mappings (such as fallocate) is added the likelihood of hitting this race will increase. alloc_huge_page and hugetlb_reserve_pages use information from the reserve map to determine if there are enough available huge pages to complete the operation, as well as adjust global reserve and subpool usage counts. The order of operations is as follows: - call region_chg() to determine the expected change based on reserve map - determine if enough resources are available for this operation - adjust global counts based on the expected change - call region_add() to update the reserve map The issue is that reserve map could change between the call to region_chg and region_add. In this case, the counters which were adjusted based on the output of region_chg will not be correct. In order to hit this race today, there must be an existing shared hugetlb mmap created with the MAP_NORESERVE flag. A page fault to allocate a huge page via this mapping must occur at the same another task is mapping the same region without the MAP_NORESERVE flag. The patch set does not prevent the race from happening. Rather, it adds simple functionality to detect when the race has occurred. If a race is detected, then the incorrect counts are adjusted. Review comments pointed out the need for documentation of the existing region/reserve map routines. This patch set also adds documentation in this area. This patch (of 3): This is a documentation only patch and does not modify any code. Descriptions of the routines used for reserve map/region tracking are added. Signed-off-by: Mike Kravetz Cc: Naoya Horiguchi Cc: Davidlohr Bueso Cc: David Rientjes Cc: Luiz Capitulino Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/hugetlb.c | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 50 insertions(+), 2 deletions(-) commit 9b012a29a300ea780d919205906d00d15cc6286e Author: Michal Hocko Date: Wed Jun 24 16:57:50 2015 -0700 Documentation/vm/unevictable-lru.txt: clarify MAP_LOCKED behavior There is a very subtle difference between mmap()+mlock() vs mmap(MAP_LOCKED) semantic. The former one fails if the population of the area fails while the later one doesn't. This basically means that mmap(MAPLOCKED) areas might see major fault after mmap syscall returns which is not the case for mlock. mmap man page has already been altered but Documentation/vm/unevictable-lru.txt deserves a clarification as well. Signed-off-by: Michal Hocko Reported-by: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Documentation/vm/unevictable-lru.txt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 22cc877b32202b6d82e580bc6b3b445531659d3e Author: Leon Romanovsky Date: Wed Jun 24 16:57:47 2015 -0700 mm: nommu: refactor debug and warning prints kenter/kleave/kdebug are wrapper macros to print functions flow and debug information. This set was written before pr_devel() was introduced, so it was controlled by "#if 0" construction. It is questionable if anyone is using them [1] now. This patch removes these macros, converts numerous printk(KERN_WARNING, ...) to use general pr_warn(...) and removes debug print line from validate_mmap_request() function. Signed-off-by: Leon Romanovsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/nommu.c | 112 +++++++++++-------------------------------------------------- 1 file changed, 20 insertions(+), 92 deletions(-) commit 8809aa2d28d74111ff2f1928edaa4e9845c97a7d Author: Aneesh Kumar K.V Date: Wed Jun 24 16:57:44 2015 -0700 mm: clarify that the function operates on hugepage pte We have confusing functions to clear pmd, pmd_clear_* and pmd_clear. Add _huge_ to pmdp_clear functions so that we are clear that they operate on hugepage pte. We don't bother about other functions like pmdp_set_wrprotect, pmdp_clear_flush_young, because they operate on PTE bits and hence indicate they are operating on hugepage ptes Signed-off-by: Aneesh Kumar K.V Acked-by: Kirill A. Shutemov Cc: Benjamin Herrenschmidt Cc: Paul Mackerras Cc: Michael Ellerman Cc: Andrea Arcangeli Cc: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/mips/include/asm/pgtable.h | 8 ++++---- arch/powerpc/include/asm/pgtable-ppc64.h | 6 +++--- arch/powerpc/mm/pgtable_64.c | 4 ++-- arch/s390/include/asm/pgtable.h | 24 ++++++++++++------------ arch/sparc/include/asm/pgtable_64.h | 8 ++++---- arch/tile/include/asm/pgtable.h | 8 ++++---- arch/x86/include/asm/pgtable.h | 4 ++-- include/asm-generic/pgtable.h | 18 +++++++++--------- include/linux/mmu_notifier.h | 12 ++++++------ mm/huge_memory.c | 16 ++++++++-------- mm/migrate.c | 2 +- mm/pgtable-generic.c | 14 +++++++++----- mm/rmap.c | 2 +- 13 files changed, 65 insertions(+), 61 deletions(-) commit f28b6ff8c3d48af21354ef30164c8ccea69d5928 Author: Aneesh Kumar K.V Date: Wed Jun 24 16:57:42 2015 -0700 powerpc/mm: use generic version of pmdp_clear_flush() Also move the pmd_trans_huge check to generic code. Signed-off-by: Aneesh Kumar K.V Acked-by: Kirill A. Shutemov Cc: Benjamin Herrenschmidt Cc: Paul Mackerras Cc: Michael Ellerman Cc: Andrea Arcangeli Cc: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/powerpc/include/asm/pgtable-ppc64.h | 4 ---- arch/powerpc/mm/pgtable_64.c | 11 ----------- arch/s390/include/asm/pgtable.h | 8 ++++++++ include/asm-generic/pgtable.h | 9 ++------- mm/pgtable-generic.c | 17 +++++++++++++++++ 5 files changed, 27 insertions(+), 22 deletions(-) commit 15a25b2ead5f97c5a63c169186e294b41ce03f9a Author: Aneesh Kumar K.V Date: Wed Jun 24 16:57:39 2015 -0700 mm/thp: split out pmd collapse flush into separate functions Architectures like ppc64 [1] need to do special things while clearing pmd before a collapse. For them this operation is largely different from a normal hugepage pte clear. Hence add a separate function to clear pmd before collapse. After this patch pmdp_* functions operate only on hugepage pte, and not on regular pmd_t values pointing to page table. [1] ppc64 needs to invalidate all the normal page pte mappings we already have inserted in the hardware hash page table. But before doing that we need to make sure there are no parallel hash page table insert going on. So we need to do a kick_all_cpus_sync() before flushing the older hash table entries. By moving this to a separate function we capture these details and mention how it is different from a hugepage pte clear. This patch is a cleanup and only does code movement for clarity. There should not be any change in functionality. Signed-off-by: Aneesh Kumar K.V Acked-by: Kirill A. Shutemov Cc: Benjamin Herrenschmidt Cc: Paul Mackerras Cc: Michael Ellerman Cc: Andrea Arcangeli Cc: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/powerpc/include/asm/pgtable-ppc64.h | 4 ++ arch/powerpc/mm/pgtable_64.c | 76 +++++++++++++++++--------------- include/asm-generic/pgtable.h | 21 +++++++++ mm/huge_memory.c | 2 +- 4 files changed, 67 insertions(+), 36 deletions(-) commit 97f0b13452198290799fd6780f05fbaa74f927d3 Author: Xie XiuQi Date: Wed Jun 24 16:57:36 2015 -0700 tracing: add trace event for memory-failure RAS user space tools like rasdaemon which base on trace event, could receive mce error event, but no memory recovery result event. So, I want to add this event to make this scenario complete. This patch add a event at ras group for memory-failure. The output like below: # tracer: nop # # entries-in-buffer/entries-written: 2/2 #P:24 # # _-----=> irqs-off # / _----=> need-resched # | / _---=> hardirq/softirq # || / _--=> preempt-depth # ||| / delay # TASK-PID CPU# |||| TIMESTAMP FUNCTION # | | | |||| | | mce-inject-13150 [001] .... 277.019359: memory_failure_event: pfn 0x19869: recovery action for free buddy page: Delayed [xiexiuqi@huawei.com: fix build error] Signed-off-by: Xie XiuQi Reviewed-by: Naoya Horiguchi Acked-by: Steven Rostedt Cc: Tony Luck Cc: Chen Gong Cc: Jim Davis Signed-off-by: Xie XiuQi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/ras/ras_event.h | 85 +++++++++++++++++++++++++++++++++++++++++++++++++ mm/Kconfig | 1 + mm/memory-failure.c | 3 ++ 3 files changed, 89 insertions(+) commit cc3e2af42e7b7e0457b93bf17c19b44c635cd40c Author: Xie XiuQi Date: Wed Jun 24 16:57:33 2015 -0700 memory-failure: change type of action_result's param 3 to enum Change type of action_result's param 3 to enum for type consistency, and rename mf_outcome to mf_result for clearly. Signed-off-by: Xie XiuQi Acked-by: Naoya Horiguchi Cc: Chen Gong Cc: Jim Davis Cc: Steven Rostedt Cc: Tony Luck Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/mm.h | 2 +- mm/memory-failure.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) commit cc637b1704d78b068c2eb700eec384c69ea56cdf Author: Xie XiuQi Date: Wed Jun 24 16:57:30 2015 -0700 memory-failure: export page_type and action result Export 'outcome' and 'action_page_type' to mm.h, so we could use this emnus outside. This patch is preparation for adding trace events for memory-failure recovery action. Signed-off-by: Xie XiuQi Acked-by: Naoya Horiguchi Cc: Chen Gong Cc: Jim Davis Cc: Steven Rostedt Cc: Tony Luck Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/mm.h | 34 +++++++++++ mm/memory-failure.c | 168 +++++++++++++++++++++------------------------------- 2 files changed, 101 insertions(+), 101 deletions(-) commit eb3c24f305e56caaf5c4bd34d2923839688d470e Author: Mel Gorman Date: Wed Jun 24 16:57:27 2015 -0700 mm, memcg: Try charging a page before setting page up to date Historically memcg overhead was high even if memcg was unused. This has improved a lot but it still showed up in a profile summary as being a problem. /usr/src/linux-4.0-vanilla/mm/memcontrol.c 6.6441 395842 mem_cgroup_try_charge 2.950% 175781 __mem_cgroup_count_vm_event 1.431% 85239 mem_cgroup_page_lruvec 0.456% 27156 mem_cgroup_commit_charge 0.392% 23342 uncharge_list 0.323% 19256 mem_cgroup_update_lru_size 0.278% 16538 memcg_check_events 0.216% 12858 mem_cgroup_charge_statistics.isra.22 0.188% 11172 try_charge 0.150% 8928 commit_charge 0.141% 8388 get_mem_cgroup_from_mm 0.121% 7184 That is showing that 6.64% of system CPU cycles were in memcontrol.c and dominated by mem_cgroup_try_charge. The annotation shows that the bulk of the cost was checking PageSwapCache which is expected to be cache hot but is very expensive. The problem appears to be that __SetPageUptodate is called just before the check which is a write barrier. It is required to make sure struct page and page data is written before the PTE is updated and the data visible to userspace. memcg charging does not require or need the barrier but gets unfairly hit with the cost so this patch attempts the charging before the barrier. Aside from the accidental cost to memcg there is the added benefit that the barrier is avoided if the page cannot be charged. When applied the relevant profile summary is as follows. /usr/src/linux-4.0-chargefirst-v2r1/mm/memcontrol.c 3.7907 223277 __mem_cgroup_count_vm_event 1.143% 67312 mem_cgroup_page_lruvec 0.465% 27403 mem_cgroup_commit_charge 0.381% 22452 uncharge_list 0.332% 19543 mem_cgroup_update_lru_size 0.284% 16704 get_mem_cgroup_from_mm 0.271% 15952 mem_cgroup_try_charge 0.237% 13982 memcg_check_events 0.222% 13058 mem_cgroup_charge_statistics.isra.22 0.185% 10920 commit_charge 0.140% 8235 try_charge 0.131% 7716 That brings the overhead down to 3.79% and leaves the memcg fault accounting to the root cgroup but it's an improvement. The difference in headline performance of the page fault microbench is marginal as memcg is such a small component of it. pft faults 4.0.0 4.0.0 vanilla chargefirst Hmean faults/cpu-1 1443258.1051 ( 0.00%) 1509075.7561 ( 4.56%) Hmean faults/cpu-3 1340385.9270 ( 0.00%) 1339160.7113 ( -0.09%) Hmean faults/cpu-5 875599.0222 ( 0.00%) 874174.1255 ( -0.16%) Hmean faults/cpu-7 601146.6726 ( 0.00%) 601370.9977 ( 0.04%) Hmean faults/cpu-8 510728.2754 ( 0.00%) 510598.8214 ( -0.03%) Hmean faults/sec-1 1432084.7845 ( 0.00%) 1497935.5274 ( 4.60%) Hmean faults/sec-3 3943818.1437 ( 0.00%) 3941920.1520 ( -0.05%) Hmean faults/sec-5 3877573.5867 ( 0.00%) 3869385.7553 ( -0.21%) Hmean faults/sec-7 3991832.0418 ( 0.00%) 3992181.4189 ( 0.01%) Hmean faults/sec-8 3987189.8167 ( 0.00%) 3986452.2204 ( -0.02%) It's only visible at single threaded. The overhead is there for higher threads but other factors dominate. Signed-off-by: Mel Gorman Acked-by: Michal Hocko Acked-by: Johannes Weiner Cc: Tejun Heo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memory.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit 4165b9b46181290d7e6ac276080c89b65623c633 Author: Michal Hocko Date: Wed Jun 24 16:57:24 2015 -0700 hugetlb: do not account hugetlb pages as NR_FILE_PAGES hugetlb pages uses add_to_page_cache to track shared mappings. This is OK from the data structure point of view but it is less so from the NR_FILE_PAGES accounting: - huge pages are accounted as 4k which is clearly wrong - this counter is used as the amount of the reclaimable page cache which is incorrect as well because hugetlb pages are special and not reclaimable - the counter is then exported to userspace via /proc/meminfo (in Cached:), /proc/vmstat and /proc/zoneinfo as nr_file_pages which is confusing at least: Cached: 8883504 kB HugePages_Free: 8348 ... Cached: 8916048 kB HugePages_Free: 156 ... thats 8192 huge pages allocated which is ~16G accounted as 32M There are usually not that many huge pages in the system for this to make any visible difference e.g. by fooling __vm_enough_memory or zone_pagecache_reclaimable. Fix this by special casing huge pages in both __delete_from_page_cache and __add_to_page_cache_locked. replace_page_cache_page is currently only used by fuse and that shouldn't touch hugetlb pages AFAICS but it is more robust to check for special casing there as well. Hugetlb pages shouldn't get to any other paths where we do accounting: - migration - we have a special handling via hugetlbfs_migrate_page - shmem - doesn't handle hugetlb pages directly even for SHM_HUGETLB resp. MAP_HUGETLB - swapcache - hugetlb is not swapable This has a user visible effect but I believe it is reasonable because the previously exported number is simply bogus. An alternative would be to account hugetlb pages with their real size and treat them similar to shmem. But this has some drawbacks. First we would have to special case in kernel users of NR_FILE_PAGES and considering how hugetlb is special we would have to do it everywhere. We do not want Cached exported by /proc/meminfo to include it because the value would be even more misleading. __vm_enough_memory and zone_pagecache_reclaimable would have to do the same thing because those pages are simply not reclaimable. The correction is even not trivial because we would have to consider all active hugetlb page sizes properly. Users of the counter outside of the kernel would have to do the same. So the question is why to account something that needs to be basically excluded for each reasonable usage. This doesn't make much sense to me. It seems that this has been broken since hugetlb was introduced but I haven't checked the whole history. [akpm@linux-foundation.org: tweak comments] Signed-off-by: Michal Hocko Acked-by: Mel Gorman Tested-by: Mike Kravetz Acked-by: Johannes Weiner Reviewed-by: Naoya Horiguchi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/filemap.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) commit 9083905a2a13dec4093a9c35a9b7f60037b87672 Author: Johannes Weiner Date: Wed Jun 24 16:57:21 2015 -0700 mm: page_alloc: inline should_alloc_retry() The should_alloc_retry() function was meant to encapsulate retry conditions of the allocator slowpath, but there are still checks remaining in the main function, and much of how the retrying is performed also depends on the OOM killer progress. The physical separation of those conditions make the code hard to follow. Inline the should_alloc_retry() checks. Notes: - The __GFP_NOFAIL check is already done in __alloc_pages_may_oom(), replace it with looping on OOM killer progress - The pm_suspended_storage() check is meant to skip the OOM killer when reclaim has no IO available, move to __alloc_pages_may_oom() - The order <= PAGE_ALLOC_COSTLY order is re-united with its original counterpart of checking whether reclaim actually made any progress Signed-off-by: Johannes Weiner Acked-by: Michal Hocko Cc: David Rientjes Cc: Tetsuo Handa Cc: Andrea Arcangeli Cc: Dave Chinner Cc: Vlastimil Babka Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/page_alloc.c | 104 +++++++++++++++++--------------------------------------- 1 file changed, 32 insertions(+), 72 deletions(-) commit dc56401fc9f25e8f93899991ec858c98a331d88c Author: Johannes Weiner Date: Wed Jun 24 16:57:19 2015 -0700 mm: oom_kill: simplify OOM killer locking The zonelist locking and the oom_sem are two overlapping locks that are used to serialize global OOM killing against different things. The historical zonelist locking serializes OOM kills from allocations with overlapping zonelists against each other to prevent killing more tasks than necessary in the same memory domain. Only when neither tasklists nor zonelists from two concurrent OOM kills overlap (tasks in separate memcgs bound to separate nodes) are OOM kills allowed to execute in parallel. The younger oom_sem is a read-write lock to serialize OOM killing against the PM code trying to disable the OOM killer altogether. However, the OOM killer is a fairly cold error path, there is really no reason to optimize for highly performant and concurrent OOM kills. And the oom_sem is just flat-out redundant. Replace both locking schemes with a single global mutex serializing OOM kills regardless of context. Signed-off-by: Johannes Weiner Acked-by: Michal Hocko Acked-by: David Rientjes Cc: Tetsuo Handa Cc: Andrea Arcangeli Cc: Dave Chinner Cc: Vlastimil Babka Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/tty/sysrq.c | 2 + include/linux/oom.h | 5 +-- mm/memcontrol.c | 18 +++++--- mm/oom_kill.c | 127 +++++++++++----------------------------------------- mm/page_alloc.c | 8 ++-- 5 files changed, 46 insertions(+), 114 deletions(-) commit da51b14adb671829077da3aeb9e9edd6f8c80afe Author: Johannes Weiner Date: Wed Jun 24 16:57:16 2015 -0700 mm: oom_kill: remove unnecessary locking in exit_oom_victim() Disabling the OOM killer needs to exclude allocators from entering, not existing victims from exiting. Right now the only waiter is suspend code, which achieves quiescence by disabling the OOM killer. But later on we want to add waits that hold the lock instead to stop new victims from showing up. Signed-off-by: Johannes Weiner Acked-by: Michal Hocko Acked-by: David Rientjes Cc: Tetsuo Handa Cc: Andrea Arcangeli Cc: Dave Chinner Cc: Vlastimil Babka Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/oom_kill.c | 2 -- 1 file changed, 2 deletions(-) commit c38f1025f2910d6183e9923d4b4d5804474b50c5 Author: Johannes Weiner Date: Wed Jun 24 16:57:13 2015 -0700 mm: oom_kill: generalize OOM progress waitqueue It turns out that the mechanism to wait for exiting OOM victims is less generic than it looks: it won't issue wakeups unless the OOM killer is disabled. The reason this check was added was the thought that, since only the OOM disabling code would wait on this queue, wakeup operations could be saved when that specific consumer is known to be absent. However, this is quite the handgrenade. Later attempts to reuse the waitqueue for other purposes will lead to completely unexpected bugs and the failure mode will appear seemingly illogical. Generally, providers shouldn't make unnecessary assumptions about consumers. This could have been replaced with waitqueue_active(), but it only saves a few instructions in one of the coldest paths in the kernel. Simply remove it. Signed-off-by: Johannes Weiner Acked-by: Michal Hocko Acked-by: David Rientjes Cc: Tetsuo Handa Cc: Andrea Arcangeli Cc: Dave Chinner Cc: Vlastimil Babka Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/oom_kill.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit 464027785ff633468ecbb683ede14672d514b3d3 Author: Johannes Weiner Date: Wed Jun 24 16:57:10 2015 -0700 mm: oom_kill: switch test-and-clear of known TIF_MEMDIE to clear exit_oom_victim() already knows that TIF_MEMDIE is set, and nobody else can clear it concurrently. Use clear_thread_flag() directly. Signed-off-by: Johannes Weiner Acked-by: David Rientjes Acked-by: Michal Hocko Cc: Tetsuo Handa Cc: Andrea Arcangeli Cc: Dave Chinner Cc: Vlastimil Babka Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/oom_kill.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 16e951966f05da5ccd650104176f6ba289f7fa20 Author: Johannes Weiner Date: Wed Jun 24 16:57:07 2015 -0700 mm: oom_kill: clean up victim marking and exiting interfaces Rename unmark_oom_victim() to exit_oom_victim(). Marking and unmarking are related in functionality, but the interface is not symmetrical at all: one is an internal OOM killer function used during the killing, the other is for an OOM victim to signal its own death on exit later on. This has locking implications, see follow-up changes. While at it, rename mark_tsk_oom_victim() to mark_oom_victim(), which is easier on the eye. Signed-off-by: Johannes Weiner Acked-by: David Rientjes Acked-by: Michal Hocko Cc: Tetsuo Handa Cc: Andrea Arcangeli Cc: Dave Chinner Cc: Vlastimil Babka Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/staging/android/lowmemorykiller.c | 2 +- include/linux/oom.h | 7 ++++--- kernel/exit.c | 2 +- mm/memcontrol.c | 2 +- mm/oom_kill.c | 16 +++++++--------- 5 files changed, 14 insertions(+), 15 deletions(-) commit 3f5ab8cfbf15e8e02838ffc3549191351305df0e Author: Johannes Weiner Date: Wed Jun 24 16:57:04 2015 -0700 mm: oom_kill: remove unnecessary locking in oom_enable() Setting oom_killer_disabled to false is atomic, there is no need for further synchronization with ongoing allocations trying to OOM-kill. Signed-off-by: Johannes Weiner Acked-by: Michal Hocko Acked-by: David Rientjes Cc: Tetsuo Handa Cc: Andrea Arcangeli Cc: Dave Chinner Cc: Vlastimil Babka Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/oom_kill.c | 2 -- 1 file changed, 2 deletions(-) commit febd5949e134e279bde927353dc705ce41b18e2d Author: Gu Zheng Date: Wed Jun 24 16:57:02 2015 -0700 mm/memory hotplug: init the zone's size when calculating node totalpages Init the zone's size when calculating node totalpages to avoid duplicated operations in free_area_init_core(). Signed-off-by: Gu Zheng Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/page_alloc.c | 46 ++++++++++++++++++++++------------------------ 1 file changed, 22 insertions(+), 24 deletions(-) commit 641844f5616d7c6597309f560838f996466d7aac Author: Naoya Horiguchi Date: Wed Jun 24 16:56:59 2015 -0700 mm/hugetlb: introduce minimum hugepage order Currently the initial value of order in dissolve_free_huge_page is 64 or 32, which leads to the following warning in static checker: mm/hugetlb.c:1203 dissolve_free_huge_pages() warn: potential right shift more than type allows '9,18,64' This is a potential risk of infinite loop, because 1 << order (== 0) is used in for-loop like this: for (pfn =3D start_pfn; pfn < end_pfn; pfn +=3D 1 << order) ... So this patch fixes it by using global minimum_order calculated at boot time. text data bss dec hex filename 28313 469 84236 113018 1b97a mm/hugetlb.o 28256 473 84236 112965 1b945 mm/hugetlb.o (patched) Fixes: c8721bbbdd36 ("mm: memory-hotplug: enable memory hotplug to handle hugepage") Reported-by: Dan Carpenter Signed-off-by: Naoya Horiguchi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/hugetlb.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) commit 414e2fb8ce5a999571c21eb2ca4d66e53ddce800 Author: Vladimir Davydov Date: Wed Jun 24 16:56:56 2015 -0700 rmap: fix theoretical race between do_wp_page and shrink_active_list As noted by Paul the compiler is free to store a temporary result in a variable on stack, heap or global unless it is explicitly marked as volatile, see: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4455.html#sample-optimizations This can result in a race between do_wp_page() and shrink_active_list() as follows. In do_wp_page() we can call page_move_anon_rmap(), which sets page->mapping as follows: anon_vma = (void *) anon_vma + PAGE_MAPPING_ANON; page->mapping = (struct address_space *) anon_vma; The page in question may be on an LRU list, because nowhere in do_wp_page() we remove it from the list, neither do we take any LRU related locks. Although the page is locked, shrink_active_list() can still call page_referenced() on it concurrently, because the latter does not require an anonymous page to be locked: CPU0 CPU1 ---- ---- do_wp_page shrink_active_list lock_page page_referenced PageAnon->yes, so skip trylock_page page_move_anon_rmap page->mapping = anon_vma rmap_walk PageAnon->no rmap_walk_file BUG page->mapping += PAGE_MAPPING_ANON This patch fixes this race by explicitly forbidding the compiler to split page->mapping store in page_move_anon_rmap() with the aid of WRITE_ONCE. [akpm@linux-foundation.org: tweak comment, per Minchan] Signed-off-by: Vladimir Davydov Cc: "Paul E. McKenney" Acked-by: Kirill A. Shutemov Acked-by: Rik van Riel Cc: Hugh Dickins Acked-by: Minchan Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/rmap.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 2491ffee9e66edc2a6ff5ddb49118377257c0014 Author: Naoya Horiguchi Date: Wed Jun 24 16:56:53 2015 -0700 mm/memory-failure: me_huge_page() does nothing for thp memory_failure() is supposed not to handle thp itself, but to split it. But if something were wrong and page_action() were called on thp, me_huge_page() (action routine for hugepages) should be better to take no action, rather than to take wrong action prepared for hugetlb (which triggers BUG_ON().) This change is for potential problems, but makes sense to me because thp is an actively developing feature and this code path can be open in the future. Signed-off-by: Naoya Horiguchi Cc: Andi Kleen Cc: Tony Luck Cc: "Kirill A. Shutemov" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memory-failure.c | 4 ++++ 1 file changed, 4 insertions(+) commit add05cecef803f3372c5fc1d2a964171872daf9f Author: Naoya Horiguchi Date: Wed Jun 24 16:56:50 2015 -0700 mm: soft-offline: don't free target page in successful page migration Stress testing showed that soft offline events for a process iterating "mmap-pagefault-munmap" loop can trigger VM_BUG_ON(PAGE_FLAGS_CHECK_AT_PREP) in __free_one_page(): Soft offlining page 0x70fe1 at 0x70100008d000 Soft offlining page 0x705fb at 0x70300008d000 page:ffffea0001c3f840 count:0 mapcount:0 mapping: (null) index:0x2 flags: 0x1fffff80800000(hwpoison) page dumped because: VM_BUG_ON_PAGE(page->flags & ((1 << 25) - 1)) ------------[ cut here ]------------ kernel BUG at /src/linux-dev/mm/page_alloc.c:585! invalid opcode: 0000 [#1] SMP DEBUG_PAGEALLOC Modules linked in: cfg80211 rfkill crc32c_intel microcode ppdev parport_pc pcspkr serio_raw virtio_balloon parport i2c_piix4 virtio_blk virtio_net ata_generic pata_acpi floppy CPU: 3 PID: 1779 Comm: test_base_madv_ Not tainted 4.0.0-v4.0-150511-1451-00009-g82360a3730e6 #139 RIP: free_pcppages_bulk+0x52a/0x6f0 Call Trace: drain_pages_zone+0x3d/0x50 drain_local_pages+0x1d/0x30 on_each_cpu_mask+0x46/0x80 drain_all_pages+0x14b/0x1e0 soft_offline_page+0x432/0x6e0 SyS_madvise+0x73c/0x780 system_call_fastpath+0x12/0x17 Code: ff 89 45 b4 48 8b 45 c0 48 83 b8 a8 00 00 00 00 0f 85 e3 fb ff ff 0f 1f 00 0f 0b 48 8b 7d 90 48 c7 c6 e8 95 a6 81 e8 e6 32 02 00 <0f> 0b 8b 45 cc 49 89 47 30 41 8b 47 18 83 f8 ff 0f 85 10 ff ff RIP [] free_pcppages_bulk+0x52a/0x6f0 RSP ---[ end trace 53926436e76d1f35 ]--- When soft offline successfully migrates page, the source page is supposed to be freed. But there is a race condition where a source page looks isolated (i.e. the refcount is 0 and the PageHWPoison is set) but somewhat linked to pcplist. Then another soft offline event calls drain_all_pages() and tries to free such hwpoisoned page, which is forbidden. This odd page state seems to happen due to the race between put_page() in putback_lru_page() and __pagevec_lru_add_fn(). But I don't want to play with tweaking drain code as done in commit 9ab3b598d2df "mm: hwpoison: drop lru_add_drain_all() in __soft_offline_page()", or to change page freeing code for this soft offline's purpose. Instead, let's think about the difference between hard offline and soft offline. There is an interesting difference in how to isolate the in-use page between these, that is, hard offline marks PageHWPoison of the target page at first, and doesn't free it by keeping its refcount 1. OTOH, soft offline tries to free the target page then marks PageHWPoison. This difference might be the source of complexity and result in bugs like the above. So making soft offline isolate with keeping refcount can be a solution for this problem. We can pass to page migration code the "reason" which shows the caller, so let's use this more to avoid calling putback_lru_page() when called from soft offline, which effectively does the isolation for soft offline. With this change, target pages of soft offline never be reused without changing migratetype, so this patch also removes the related code. Signed-off-by: Naoya Horiguchi Cc: Andi Kleen Cc: Tony Luck Cc: "Kirill A. Shutemov" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memory-failure.c | 22 ---------------------- mm/migrate.c | 9 ++++++--- 2 files changed, 6 insertions(+), 25 deletions(-) commit ead07f6a867b5b1b41cf703735e8b39094987a7d Author: Naoya Horiguchi Date: Wed Jun 24 16:56:48 2015 -0700 mm/memory-failure: introduce get_hwpoison_page() for consistent refcount handling memory_failure() can run in 2 different mode (specified by MF_COUNT_INCREASED) in page refcount perspective. When MF_COUNT_INCREASED is set, memory_failure() assumes that the caller takes a refcount of the target page. And if cleared, memory_failure() takes it in it's own. In current code, however, refcounting is done differently in each caller. For example, madvise_hwpoison() uses get_user_pages_fast() and hwpoison_inject() uses get_page_unless_zero(). So this inconsistent refcounting causes refcount failure especially for thp tail pages. Typical user visible effects are like memory leak or VM_BUG_ON_PAGE(!page_count(page)) in isolate_lru_page(). To fix this refcounting issue, this patch introduces get_hwpoison_page() to handle thp tail pages in the same manner for each caller of hwpoison code. memory_failure() might fail to split thp and in such case it returns without completing page isolation. This is not good because PageHWPoison on the thp is still set and there's no easy way to unpoison such thps. So this patch try to roll back any action to the thp in "non anonymous thp" case and "thp split failed" case, expecting an MCE(SRAR) generated by later access afterward will properly free such thps. [akpm@linux-foundation.org: fix CONFIG_HWPOISON_INJECT=m] Signed-off-by: Naoya Horiguchi Cc: Andi Kleen Cc: Tony Luck Cc: "Kirill A. Shutemov" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/mm.h | 1 + mm/hwpoison-inject.c | 4 ++-- mm/memory-failure.c | 50 +++++++++++++++++++++++++++++++++++++++++++++----- 3 files changed, 48 insertions(+), 7 deletions(-) commit 415c64c1453aa2bbcc7e30a38f8894d0894cb8ab Author: Naoya Horiguchi Date: Wed Jun 24 16:56:45 2015 -0700 mm/memory-failure: split thp earlier in memory error handling memory_failure() doesn't handle thp itself at this time and need to split it before doing isolation. Currently thp is split in the middle of hwpoison_user_mappings(), but there're corner cases where memory_failure() wrongly tries to handle thp without splitting. 1) "non anonymous" thp, which is not a normal operating mode of thp, but a memory error could hit a thp before anon_vma is initialized. In such case, split_huge_page() fails and me_huge_page() (intended for hugetlb) is called for thp, which triggers BUG_ON in page_hstate(). 2) !PageLRU case, where hwpoison_user_mappings() returns with SWAP_SUCCESS and the result is the same as case 1. memory_failure() can't avoid splitting, so let's split it more earlier, which also reduces code which are prepared for both of normal page and thp. Signed-off-by: Naoya Horiguchi Cc: Andi Kleen Cc: Tony Luck Cc: "Kirill A. Shutemov" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memory-failure.c | 88 +++++++++++++++-------------------------------------- 1 file changed, 25 insertions(+), 63 deletions(-) commit 95bbc0c7210a7397fec1cd219f896ca95bf29e3e Author: Zhihui Zhang Date: Wed Jun 24 16:56:42 2015 -0700 mm: rename RECLAIM_SWAP to RECLAIM_UNMAP The name SWAP implies that we are dealing with anonymous pages only. In fact, the original patch that introduced the min_unmapped_ratio logic was to fix an issue related to file pages. Rename it to RECLAIM_UNMAP to match what does. Historically, commit a6dc60f8975a ("vmscan: rename sc.may_swap to may_unmap") renamed .may_swap to .may_unmap, leaving RECLAIM_SWAP behind. commit 2e2e42598908 ("vmscan,memcg: reintroduce sc->may_swap") reintroduced .may_swap for memory controller. Signed-off-by: Zhihui Zhang Cc: Johannes Weiner Cc: Mel Gorman Cc: Rik van Riel Cc: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/vmscan.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit f012a84aff7a7f1d50b060e8b205ad68ffb86045 Author: Nishanth Aravamudan Date: Wed Jun 24 16:56:39 2015 -0700 mm: vmscan: do not throttle based on pfmemalloc reserves if node has no reclaimable pages Based upon 675becce15 ("mm: vmscan: do not throttle based on pfmemalloc reserves if node has no ZONE_NORMAL") from Mel. We have a system with the following topology: # numactl -H available: 3 nodes (0,2-3) node 0 cpus: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 node 0 size: 28273 MB node 0 free: 27323 MB node 2 cpus: node 2 size: 16384 MB node 2 free: 0 MB node 3 cpus: 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 node 3 size: 30533 MB node 3 free: 13273 MB node distances: node 0 2 3 0: 10 20 20 2: 20 10 20 3: 20 20 10 Node 2 has no free memory, because: # cat /sys/devices/system/node/node2/hugepages/hugepages-16777216kB/nr_hugepages 1 This leads to the following zoneinfo: Node 2, zone DMA pages free 0 min 1840 low 2300 high 2760 scanned 0 spanned 262144 present 262144 managed 262144 ... all_unreclaimable: 1 If one then attempts to allocate some normal 16M hugepages via echo 37 > /proc/sys/vm/nr_hugepages The echo never returns and kswapd2 consumes CPU cycles. This is because throttle_direct_reclaim ends up calling wait_event(pfmemalloc_wait, pfmemalloc_watermark_ok...). pfmemalloc_watermark_ok() in turn checks all zones on the node if there are any reserves, and if so, then indicates the watermarks are ok, by seeing if there are sufficient free pages. 675becce15 added a condition already for memoryless nodes. In this case, though, the node has memory, it is just all consumed (and not reclaimable). Effectively, though, the result is the same on this call to pfmemalloc_watermark_ok() and thus seems like a reasonable additional condition. With this change, the afore-mentioned 16M hugepage allocation attempt succeeds and correctly round-robins between Nodes 1 and 3. Signed-off-by: Nishanth Aravamudan Reviewed-by: Michal Hocko Acked-by: Vlastimil Babka Cc: Dave Hansen Cc: Mel Gorman Cc: Anton Blanchard Cc: Johannes Weiner Cc: Michal Hocko Cc: Rik van Riel Cc: Dan Streetman Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/vmscan.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit f4d2897b930cb546d435f64fd4b74ea5d1223dff Author: Anisse Astier Date: Wed Jun 24 16:56:36 2015 -0700 mm/page_alloc.c: cleanup obsolete KM_USER* It's been five years now that KM_* kmap flags have been removed and that we can call clear_highpage from any context. So we remove prep_zero_pages accordingly. Signed-off-by: Anisse Astier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/page_alloc.c | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) commit c761471b58e6138938ebc6eafec20b2f60cb3397 Author: Kirill A. Shutemov Date: Wed Jun 24 16:56:33 2015 -0700 mm: avoid tail page refcounting on non-THP compound pages Reintroduce 8d63d99a5dfb ("mm: avoid tail page refcounting on non-THP compound pages") after removing bogus VM_BUG_ON_PAGE() in put_unrefcounted_compound_page(). THP uses tail page refcounting to be able to split huge pages at any time. Tail page refcounting is not needed for other users of compound pages and it's harmful because of overhead. We try to exclude non-THP pages from tail page refcounting using __compound_tail_refcounted() check. It excludes most common non-THP compound pages: SL*B and hugetlb, but it doesn't catch rest of __GFP_COMP users -- drivers. And it's not only about overhead. Drivers might want to use compound pages to get refcounting semantics suitable for mapping high-order pages to userspace. But tail page refcounting breaks it. Tail page refcounting uses ->_mapcount in tail pages to store GUP pins on them. It means GUP pins would affect page_mapcount() for tail pages. It's not a problem for THP, because it never maps tail pages. But unlike THP, drivers map parts of compound pages with PTEs and it makes page_mapcount() be called for tail pages. In particular, GUP pins would shift PSS up and affect /proc/kpagecount for such pages. But, I'm not aware about anything which can lead to crash or other serious misbehaviour. Since currently all THP pages are anonymous and all drivers pages are not, we can fix the __compound_tail_refcounted() check by requiring PageAnon() to enable tail page refcounting. Signed-off-by: Kirill A. Shutemov Acked-by: Hugh Dickins Reviewed-by: Andrea Arcangeli Reported-by: Borislav Petkov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/mm.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 73933b3315e65d92e0c6cc4f8b4c51c9dc87546b Author: Kirill A. Shutemov Date: Wed Jun 24 16:56:30 2015 -0700 mm: drop bogus VM_BUG_ON_PAGE assert in put_page() codepath My commit 8d63d99a5dfb ("mm: avoid tail page refcounting on non-THP compound pages") which was merged during 4.1 merge window caused regression: page:ffffea0010a15040 count:0 mapcount:1 mapping: (null) index:0x0 flags: 0x8000000000008014(referenced|dirty|tail) page dumped because: VM_BUG_ON_PAGE(page_mapcount(page) != 0) ------------[ cut here ]------------ kernel BUG at mm/swap.c:134! The problem can be reproduced by playing *two* audio files at the same time and then stopping one of players. I used two mplayers to trigger this. The VM_BUG_ON_PAGE() which triggers the bug is bogus: Sound subsystem uses compound pages for its buffers, but unlike most __GFP_COMP sound maps compound pages to userspace with PTEs. In our case with two players map the buffer twice and therefore elevates page_mapcount() on tail pages by two. When one of players exits it unmaps the VMA and drops page_mapcount() to one and try to release reference on the page with put_page(). My commit changes which path it takes under put_compound_page(). It hits put_unrefcounted_compound_page() where VM_BUG_ON_PAGE() is. It sees page_mapcount() == 1. The function wrongly assumes that subpages of compound page cannot be be mapped by itself with PTEs.. The solution is simply drop the VM_BUG_ON_PAGE(). Note: there's no need to move the check under put_page_testzero(). Allocator will check the mapcount by itself before putting on free list. Signed-off-by: Kirill A. Shutemov Reported-by: Andrea Arcangeli Reviewed-by: Andrea Arcangeli Reported-by: Borislav Petkov Cc: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/swap.c | 1 - 1 file changed, 1 deletion(-) commit a9919c79359df9a706ff9e14fc0a93cd15791c9b Author: Rasmus Villemoes Date: Wed Jun 24 16:56:28 2015 -0700 mm: only define hashdist variable when needed For !CONFIG_NUMA, hashdist will always be 0, since it's setter is otherwise compiled out. So we can save 4 bytes of data and some .text (although mostly in __init functions) by only defining it for CONFIG_NUMA. Signed-off-by: Rasmus Villemoes Acked-by: David Rientjes Reviewed-by: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/bootmem.h | 8 ++++---- mm/page_alloc.c | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) commit a67a31fa308a9032ead31b0501dafdb44ccf5a12 Author: Zhang Zhen Date: Wed Jun 24 16:56:25 2015 -0700 mm/hugetlb: reduce arch dependent code about hugetlb_prefault_arch_hook Currently we have many duplicates in definitions of hugetlb_prefault_arch_hook. In all architectures this function is empty. Signed-off-by: Zhang Zhen Acked-by: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/arm/include/asm/hugetlb.h | 4 ---- arch/arm64/include/asm/hugetlb.h | 4 ---- arch/ia64/include/asm/hugetlb.h | 4 ---- arch/metag/include/asm/hugetlb.h | 4 ---- arch/mips/include/asm/hugetlb.h | 4 ---- arch/powerpc/include/asm/hugetlb.h | 5 ----- arch/s390/include/asm/hugetlb.h | 1 - arch/sh/include/asm/hugetlb.h | 3 --- arch/sparc/include/asm/hugetlb.h | 4 ---- arch/tile/include/asm/hugetlb.h | 4 ---- arch/x86/include/asm/hugetlb.h | 3 --- fs/hugetlbfs/inode.c | 1 - 12 files changed, 41 deletions(-) commit 83d3f0e90c6c8f833e3da91917c243a916fda69e Author: Laurent Dufour Date: Wed Jun 24 16:56:22 2015 -0700 powerpc/mm: tracking vDSO remap Some processes (CRIU) are moving the vDSO area using the mremap system call. As a consequence the kernel reference to the vDSO base address is no more valid and the signal return frame built once the vDSO has been moved is not pointing to the new sigreturn address. This patch handles vDSO remapping and unmapping. Signed-off-by: Laurent Dufour Reviewed-by: Ingo Molnar Cc: "Kirill A. Shutemov" Cc: Hugh Dickins Cc: Rik van Riel Cc: Mel Gorman Cc: Pavel Emelyanov Cc: Benjamin Herrenschmidt Cc: Paul Mackerras Cc: Michael Ellerman Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/powerpc/include/asm/mm-arch-hooks.h | 13 +++++++++++++ arch/powerpc/include/asm/mmu_context.h | 23 ++++++++++++++++++++++- 2 files changed, 35 insertions(+), 1 deletion(-) commit 4abad2ca4a4dbdd4a218c12451231ab628f2e60c Author: Laurent Dufour Date: Wed Jun 24 16:56:19 2015 -0700 mm: new arch_remap() hook Some architectures would like to be triggered when a memory area is moved through the mremap system call. This patch introduces a new arch_remap() mm hook which is placed in the path of mremap, and is called before the old area is unmapped (and the arch_unmap() hook is called). Signed-off-by: Laurent Dufour Cc: "Kirill A. Shutemov" Cc: Hugh Dickins Cc: Rik van Riel Cc: Mel Gorman Cc: Pavel Emelyanov Cc: Benjamin Herrenschmidt Cc: Paul Mackerras Cc: Michael Ellerman Cc: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/mm-arch-hooks.h | 9 +++++++++ mm/mremap.c | 17 +++++++++++------ 2 files changed, 20 insertions(+), 6 deletions(-) commit 2ae416b142b625c58c9ccb039aa3ef48ad0e9bae Author: Laurent Dufour Date: Wed Jun 24 16:56:16 2015 -0700 mm: new mm hook framework CRIU is recreating the process memory layout by remapping the checkpointee memory area on top of the current process (criu). This includes remapping the vDSO to the place it has at checkpoint time. However some architectures like powerpc are keeping a reference to the vDSO base address to build the signal return stack frame by calling the vDSO sigreturn service. So once the vDSO has been moved, this reference is no more valid and the signal frame built later are not usable. This patch serie is introducing a new mm hook framework, and a new arch_remap hook which is called when mremap is done and the mm lock still hold. The next patch is adding the vDSO remap and unmap tracking to the powerpc architecture. This patch (of 3): This patch introduces a new set of header file to manage mm hooks: - per architecture empty header file (arch/x/include/asm/mm-arch-hooks.h) - a generic header (include/linux/mm-arch-hooks.h) The architecture which need to overwrite a hook as to redefine it in its header file, while architecture which doesn't need have nothing to do. The default hooks are defined in the generic header and are used in the case the architecture is not defining it. In a next step, mm hooks defined in include/asm-generic/mm_hooks.h should be moved here. Signed-off-by: Laurent Dufour Suggested-by: Andrew Morton Cc: "Kirill A. Shutemov" Cc: Hugh Dickins Cc: Rik van Riel Cc: Mel Gorman Cc: Pavel Emelyanov Cc: Benjamin Herrenschmidt Cc: Paul Mackerras Cc: Michael Ellerman Cc: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/alpha/include/asm/mm-arch-hooks.h | 15 +++++++++++++++ arch/arc/include/asm/mm-arch-hooks.h | 15 +++++++++++++++ arch/arm/include/asm/mm-arch-hooks.h | 15 +++++++++++++++ arch/arm64/include/asm/mm-arch-hooks.h | 15 +++++++++++++++ arch/avr32/include/asm/mm-arch-hooks.h | 15 +++++++++++++++ arch/blackfin/include/asm/mm-arch-hooks.h | 15 +++++++++++++++ arch/c6x/include/asm/mm-arch-hooks.h | 15 +++++++++++++++ arch/cris/include/asm/mm-arch-hooks.h | 15 +++++++++++++++ arch/frv/include/asm/mm-arch-hooks.h | 15 +++++++++++++++ arch/hexagon/include/asm/mm-arch-hooks.h | 15 +++++++++++++++ arch/ia64/include/asm/mm-arch-hooks.h | 15 +++++++++++++++ arch/m32r/include/asm/mm-arch-hooks.h | 15 +++++++++++++++ arch/m68k/include/asm/mm-arch-hooks.h | 15 +++++++++++++++ arch/metag/include/asm/mm-arch-hooks.h | 15 +++++++++++++++ arch/microblaze/include/asm/mm-arch-hooks.h | 15 +++++++++++++++ arch/mips/include/asm/mm-arch-hooks.h | 15 +++++++++++++++ arch/mn10300/include/asm/mm-arch-hooks.h | 15 +++++++++++++++ arch/nios2/include/asm/mm-arch-hooks.h | 15 +++++++++++++++ arch/openrisc/include/asm/mm-arch-hooks.h | 15 +++++++++++++++ arch/parisc/include/asm/mm-arch-hooks.h | 15 +++++++++++++++ arch/powerpc/include/asm/mm-arch-hooks.h | 15 +++++++++++++++ arch/s390/include/asm/mm-arch-hooks.h | 15 +++++++++++++++ arch/score/include/asm/mm-arch-hooks.h | 15 +++++++++++++++ arch/sh/include/asm/mm-arch-hooks.h | 15 +++++++++++++++ arch/sparc/include/asm/mm-arch-hooks.h | 15 +++++++++++++++ arch/tile/include/asm/mm-arch-hooks.h | 15 +++++++++++++++ arch/um/include/asm/mm-arch-hooks.h | 15 +++++++++++++++ arch/unicore32/include/asm/mm-arch-hooks.h | 15 +++++++++++++++ arch/x86/include/asm/mm-arch-hooks.h | 15 +++++++++++++++ arch/xtensa/include/asm/mm-arch-hooks.h | 15 +++++++++++++++ include/linux/mm-arch-hooks.h | 16 ++++++++++++++++ 31 files changed, 466 insertions(+) commit e81f2d22370f8231cb7f13f454bcc8c0eb4e23f2 Author: Zhang Zhen Date: Wed Jun 24 16:56:13 2015 -0700 mm/hugetlb: reduce arch dependent code about huge_pmd_unshare Currently we have many duplicates in definitions of huge_pmd_unshare. In all architectures this function just returns 0 when CONFIG_ARCH_WANT_HUGE_PMD_SHARE is N. This patch puts the default implementation in mm/hugetlb.c and lets these architectures use the common code. Signed-off-by: Zhang Zhen Cc: Russell King Cc: Catalin Marinas Cc: Tony Luck Cc: James Hogan Cc: Ralf Baechle Cc: Benjamin Herrenschmidt Cc: Martin Schwidefsky Cc: Chris Metcalf Cc: David Rientjes Cc: James Yang Cc: Aneesh Kumar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/arm/mm/hugetlbpage.c | 5 ----- arch/arm64/mm/hugetlbpage.c | 7 ------- arch/ia64/mm/hugetlbpage.c | 5 ----- arch/metag/mm/hugetlbpage.c | 5 ----- arch/mips/mm/hugetlbpage.c | 5 ----- arch/powerpc/mm/hugetlbpage.c | 5 ----- arch/s390/mm/hugetlbpage.c | 5 ----- arch/sh/mm/hugetlbpage.c | 5 ----- arch/sparc/mm/hugetlbpage.c | 5 ----- arch/tile/mm/hugetlbpage.c | 5 ----- mm/hugetlb.c | 5 +++++ 11 files changed, 5 insertions(+), 52 deletions(-) commit 36f881883c57941bb32d25cea6524f9612ab5a2c Author: Kirill A. Shutemov Date: Wed Jun 24 16:56:10 2015 -0700 mm: fix mprotect() behaviour on VM_LOCKED VMAs On mlock(2) we trigger COW on private writable VMA to avoid faults in future. mm/gup.c: 840 long populate_vma_page_range(struct vm_area_struct *vma, 841 unsigned long start, unsigned long end, int *nonblocking) 842 { ... 855 * We want to touch writable mappings with a write fault in order 856 * to break COW, except for shared mappings because these don't COW 857 * and we would not want to dirty them for nothing. 858 */ 859 if ((vma->vm_flags & (VM_WRITE | VM_SHARED)) == VM_WRITE) 860 gup_flags |= FOLL_WRITE; But we miss this case when we make VM_LOCKED VMA writeable via mprotect(2). The test case: #define _GNU_SOURCE #include #include #include #include #include #include #include #include #include #define PAGE_SIZE 4096 int main(int argc, char **argv) { struct rusage usage; long before; char *p; int fd; /* Create a file and populate first page of page cache */ fd = open("/tmp", O_TMPFILE | O_RDWR, S_IRUSR | S_IWUSR); write(fd, "1", 1); /* Create a *read-only* *private* mapping of the file */ p = mmap(NULL, PAGE_SIZE, PROT_READ, MAP_PRIVATE, fd, 0); /* * Since the mapping is read-only, mlock() will populate the mapping * with PTEs pointing to page cache without triggering COW. */ mlock(p, PAGE_SIZE); /* * Mapping became read-write, but it's still populated with PTEs * pointing to page cache. */ mprotect(p, PAGE_SIZE, PROT_READ | PROT_WRITE); getrusage(RUSAGE_SELF, &usage); before = usage.ru_minflt; /* Trigger COW: fault in mlock()ed VMA. */ *p = 1; getrusage(RUSAGE_SELF, &usage); printf("faults: %ld\n", usage.ru_minflt - before); return 0; } $ ./test faults: 1 Let's fix it by triggering populating of VMA in mprotect_fixup() on this condition. We don't care about population error as we don't in other similar cases i.e. mremap. [akpm@linux-foundation.org: tweak comment text] Signed-off-by: Kirill A. Shutemov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/mprotect.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit cd0924112119547b0d3fb13a9ed99717d924c2be Author: Jiri Kosina Date: Wed Jun 24 16:56:07 2015 -0700 thp: cleanup how khugepaged enters freezer khugepaged_do_scan() checks in every iteration whether freezing(current) is true, and in such case breaks out of the loop, which causes try_to_freeze() to be called immediately afterwards in khugepaged_wait_work(). If nothing else, this causes unnecessary freezing(current) test, and also makes the way khugepaged enters freezer a bit less obvious than necessary. Let's just try to freeze directly, instead of splitting it into two (directly adjacent) phases. Signed-off-by: Jiri Kosina Cc: Mel Gorman Cc: Andrea Arcangeli Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/huge_memory.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit ebb09738d32b840be8157d556f7756e6dbcc1735 Author: Andi Kleen Date: Wed Jun 24 16:56:05 2015 -0700 mm, hwpoison: remove obsolete "Notebook" todo list All the items mentioned here have been either addressed, or were not really needed. So just remove the comment. Signed-off-by: Andi Kleen Acked-by: Naoya Horiguchi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memory-failure.c | 7 ------- 1 file changed, 7 deletions(-) commit e0de78dfb4655752897d123a8cce6ecab4175dc9 Author: Andi Kleen Date: Wed Jun 24 16:56:02 2015 -0700 mm, hwpoison: add comment describing when to add new cases Here's another comment fix for hwpoison. It describes the "guiding principle" on when to add new memory error recovery code. Signed-off-by: Andi Kleen Acked-by: Naoya Horiguchi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memory-failure.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 1ed58b6051b67e5cfe9e465fb60bf7d5f55e0a64 Author: Rasmus Villemoes Date: Wed Jun 24 16:55:59 2015 -0700 linux/slab.h: fix three off-by-one typos in comment The first is a keyboard-off-by-one, the other two the ordinary mathy kind. Signed-off-by: Rasmus Villemoes Acked-by: Christoph Lameter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/slab.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 34cc6990d4d2d85f60e583ebe3070f8c3ada465c Author: Daniel Sanders Date: Wed Jun 24 16:55:57 2015 -0700 slab: correct size_index table before replacing the bootstrap kmem_cache_node This patch moves the initialization of the size_index table slightly earlier so that the first few kmem_cache_node's can be safely allocated when KMALLOC_MIN_SIZE is large. There are currently two ways to generate indices into kmalloc_caches (via kmalloc_index() and via the size_index table in slab_common.c) and on some arches (possibly only MIPS) they potentially disagree with each other until create_kmalloc_caches() has been called. It seems that the intention is that the size_index table is a fast equivalent to kmalloc_index() and that create_kmalloc_caches() patches the table to return the correct value for the cases where kmalloc_index()'s if-statements apply. The failing sequence was: * kmalloc_caches contains NULL elements * kmem_cache_init initialises the element that 'struct kmem_cache_node' will be allocated to. For 32-bit Mips, this is a 56-byte struct and kmalloc_index returns KMALLOC_SHIFT_LOW (7). * init_list is called which calls kmalloc_node to allocate a 'struct kmem_cache_node'. * kmalloc_slab selects the kmem_caches element using size_index[size_index_elem(size)]. For MIPS, size is 56, and the expression returns 6. * This element of kmalloc_caches is NULL and allocation fails. * If it had not already failed, it would have called create_kmalloc_caches() at this point which would have changed size_index[size_index_elem(size)] to 7. I don't believe the bug to be LLVM specific but GCC doesn't normally encounter the problem. I haven't been able to identify exactly what GCC is doing better (probably inlining) but it seems that GCC is managing to optimize to the point that it eliminates the problematic allocations. This theory is supported by the fact that GCC can be made to fail in the same way by changing inline, __inline, __inline__, and __always_inline in include/linux/compiler-gcc.h such that they don't actually inline things. Signed-off-by: Daniel Sanders Acked-by: Pekka Enberg Acked-by: Christoph Lameter Cc: Pekka Enberg Cc: David Rientjes Cc: Joonsoo Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/slab.c | 1 + mm/slab.h | 1 + mm/slab_common.c | 36 +++++++++++++++++++++--------------- mm/slub.c | 1 + 4 files changed, 24 insertions(+), 15 deletions(-) commit 4066c33d0308f87e9a3b0c7fafb9141c0bfbfa77 Author: Gavin Guo Date: Wed Jun 24 16:55:54 2015 -0700 mm/slab_common: support the slub_debug boot option on specific object size The slub_debug=PU,kmalloc-xx cannot work because in the create_kmalloc_caches() the s->name is created after the create_kmalloc_cache() is called. The name is NULL in the create_kmalloc_cache() so the kmem_cache_flags() would not set the slub_debug flags to the s->flags. The fix here set up a kmalloc_names string array for the initialization purpose and delete the dynamic name creation of kmalloc_caches. [akpm@linux-foundation.org: s/kmalloc_names/kmalloc_info/, tweak comment text] Signed-off-by: Gavin Guo Acked-by: Christoph Lameter Cc: Pekka Enberg Cc: David Rientjes Cc: Joonsoo Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/slab.h | 22 +++++++++++++++++++ mm/slab_common.c | 62 +++++++++++++++++++++++++++++++++------------------- 2 files changed, 61 insertions(+), 23 deletions(-) commit 3693a84d3b8b2fd4db1f1b22f33793eb84a66420 Author: Akinobu Mita Date: Wed Jun 24 16:55:51 2015 -0700 xtensa: use for_each_sg() This replaces the plain loop over the sglist array with for_each_sg() macro which consists of sg_next() function calls. Since xtensa doesn't select ARCH_HAS_SG_CHAIN, it is not necessary to use for_each_sg() in order to loop over each sg element. But this can help find problems with drivers that do not properly initialize their sg tables when CONFIG_DEBUG_SG is enabled. Signed-off-by: Akinobu Mita Cc: Chris Zankel Cc: Max Filippov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/xtensa/include/asm/dma-mapping.h | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) commit f51c0eaee39e306458d2bf8a30e010615fa451cc Author: Chris Metcalf Date: Wed Jun 24 16:55:48 2015 -0700 procfs: treat parked tasks as sleeping for task state Allowing watchdog threads to be parked means that we now have the opportunity of actually seeing persistent parked threads in the output of /proc//stat and /proc//status. The existing code reported such threads as "Running", which is kind-of true if you think of the case where we park them as part of taking cpus offline. But if we allow parking them indefinitely, "Running" is pretty misleading, so we report them as "Sleeping" instead. We could simply report them with a new string, "Parked", but it feels like it's a bit risky for userspace to see unexpected new values; the output is already documented in Documentation/filesystems/proc.txt, and it seems like a mistake to change that lightly. The scheduler does report parked tasks with a "P" in debugging output from sched_show_task() or dump_cpu_task(), but that's a different API. Similarly, the trace_ctxwake_* routines report a "P" for parked tasks, but again, different API. This change seemed slightly cleaner than updating the task_state_array to have additional rows. TASK_DEAD should be subsumed by the exit_state bits; TASK_WAKEKILL is just a modifier; and TASK_WAKING can very reasonably be reported as "Running" (as it is now). Only TASK_PARKED shows up with unreasonable output here. Signed-off-by: Chris Metcalf Cc: Don Zickus Cc: Ingo Molnar Cc: Ulrich Obergfell Cc: Thomas Gleixner Cc: Peter Zijlstra Cc: Frederic Weisbecker Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/proc/array.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit fe4ba3c34352b7e8068b7f18eb233444aed17011 Author: Chris Metcalf Date: Wed Jun 24 16:55:45 2015 -0700 watchdog: add watchdog_cpumask sysctl to assist nohz Change the default behavior of watchdog so it only runs on the housekeeping cores when nohz_full is enabled at build and boot time. Allow modifying the set of cores the watchdog is currently running on with a new kernel.watchdog_cpumask sysctl. In the current system, the watchdog subsystem runs a periodic timer that schedules the watchdog kthread to run. However, nohz_full cores are designed to allow userspace application code running on those cores to have 100% access to the CPU. So the watchdog system prevents the nohz_full application code from being able to run the way it wants to, thus the motivation to suppress the watchdog on nohz_full cores, which this patchset provides by default. However, if we disable the watchdog globally, then the housekeeping cores can't benefit from the watchdog functionality. So we allow disabling it only on some cores. See Documentation/lockup-watchdogs.txt for more information. [jhubbard@nvidia.com: fix a watchdog crash in some configurations] Signed-off-by: Chris Metcalf Acked-by: Don Zickus Cc: Ingo Molnar Cc: Ulrich Obergfell Cc: Thomas Gleixner Cc: Peter Zijlstra Cc: Frederic Weisbecker Signed-off-by: John Hubbard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Documentation/lockup-watchdogs.txt | 18 ++++++++++ Documentation/sysctl/kernel.txt | 21 ++++++++++++ include/linux/nmi.h | 3 ++ kernel/smpboot.c | 1 + kernel/sysctl.c | 7 ++++ kernel/watchdog.c | 67 +++++++++++++++++++++++++++++++++++--- 6 files changed, 112 insertions(+), 5 deletions(-) commit b5242e98c1cb834feb1e84026f09a4796b49eb4d Author: Chris Metcalf Date: Wed Jun 24 16:55:42 2015 -0700 smpboot: allow excluding cpus from the smpboot threads This patch series allows the watchdog to run by default only on the housekeeping cores when nohz_full is in effect; this seems to be a good compromise short of turning it off completely (since the nohz_full cores can't tolerate a watchdog). To provide customizability, we add /proc/sys/kernel/watchdog_cpumask so that the set of cores running the watchdog can be tuned to different values after bootup. To implement this customizability, we add a new smpboot_update_cpumask_percpu_thread() API to the smpboot_thread subsystem that lets us park or unpark "unwanted" threads. And now that threads can be parked for long periods of time, we tweak the /proc//stat and /proc//status code so parked threads aren't reported as running, which is otherwise confusing. This patch (of 3): This change allows some cores to be excluded from running the smp_hotplug_thread tasks. The following commit to update kernel/watchdog.c to use this functionality is the motivating example, and more information on the motivation is provided there. A new smp_hotplug_thread field is introduced, "cpumask", which is cpumask field managed by the smpboot subsystem that indicates whether or not the given smp_hotplug_thread should run on that core; the cpumask is checked when deciding whether to unpark the thread. To limit the cpumask to less than cpu_possible, you must call smpboot_update_cpumask_percpu_thread() after registering. Signed-off-by: Chris Metcalf Cc: Don Zickus Cc: Ingo Molnar Cc: Ulrich Obergfell Cc: Thomas Gleixner Cc: Peter Zijlstra Cc: Frederic Weisbecker Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/smpboot.h | 5 +++++ kernel/smpboot.c | 59 ++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 63 insertions(+), 1 deletion(-) commit 8c07a308ec5284fe41aefe48ac2ef4cfcd71ddbf Author: Akinobu Mita Date: Wed Jun 24 16:55:40 2015 -0700 sparc: use for_each_sg() This replaces the plain loop over the sglist array with for_each_sg() macro which consists of sg_next() function calls. Since sparc does select ARCH_HAS_SG_CHAIN, it is necessary to use for_each_sg() in order to loop over each sg element. This also help find problems with drivers that do not properly initialize their sg tables when CONFIG_DEBUG_SG is enabled. Signed-off-by: Akinobu Mita Cc: "David S. Miller" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/sparc/kernel/ldc.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 210bff6d231217c3c63e0115af7eb01603b83015 Author: Akinobu Mita Date: Wed Jun 24 16:55:37 2015 -0700 parisc: use for_each_sg() This replaces the plain loop over the sglist array with for_each_sg() macro which consists of sg_next() function calls. Since parisc doesn't select ARCH_HAS_SG_CHAIN, it is not necessary to use for_each_sg() in order to loop over each sg element. But this can help find problems with drivers that do not properly initialize their sg tables when CONFIG_DEBUG_SG is enabled. Signed-off-by: Akinobu Mita Cc: "James E.J. Bottomley" Cc: Helge Deller Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/parisc/kernel/pci-dma.c | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) commit b519ea6d9a2f9c5d3cb90860f225564daa983bff Author: Joseph Qi Date: Wed Jun 24 16:55:34 2015 -0700 ocfs2: mark local functions as static Some functions are only used locally, so mark them as static. Signed-off-by: Joseph Qi Cc: Mark Fasheh Cc: Joel Becker Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/journal.c | 10 +++++----- fs/ocfs2/xattr.c | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) commit ab1ba02181ea543a3f504d035a0f4fa53feb6e36 Author: Fabian Frederick Date: Wed Jun 24 16:55:31 2015 -0700 ocfs2: use swap() in ocfs2_double_lock() Use kernel.h macro definition. Thanks to Julia Lawall for Coccinelle scripting support. Signed-off-by: Fabian Frederick Cc: Julia Lawall Cc: Mark Fasheh Cc: Joel Becker Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/namei.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) commit a612543fd189d5694a1b0d526369fab8827f7045 Author: Fabian Frederick Date: Wed Jun 24 16:55:29 2015 -0700 ocfs2: use swap() in swap_refcount_rec() Use kernel.h macro definition. Thanks to Julia Lawall for Coccinelle scripting support. Signed-off-by: Fabian Frederick Cc: Julia Lawall Cc: Mark Fasheh Cc: Joel Becker Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/refcounttree.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 2a28f98c49dd19c4ea54c4ba6ecdc4041efbd73c Author: Fabian Frederick Date: Wed Jun 24 16:55:26 2015 -0700 ocfs2: use swap() in dx_leaf_sort_swap() Use kernel.h macro definition. Thanks to Julia Lawall for Coccinelle scripting support. Signed-off-by: Fabian Frederick Cc: Julia Lawall Cc: Mark Fasheh Cc: Joel Becker Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/dir.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit ae1f081467a147c125dfd5920e1c55f0e8ad031a Author: Joseph Qi Date: Wed Jun 24 16:55:23 2015 -0700 ocfs2: fix wrong check in ocfs2_direct_IO_get_blocks contig_blocks gotten from ocfs2_extent_map_get_blocks cannot be compared with clusters_to_alloc. So convert it to clusters first. Signed-off-by: Joseph Qi Reviewed-by: Weiwei Wang Cc: Mark Fasheh Cc: Joel Becker Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/aops.c | 8 +++++--- fs/ocfs2/ocfs2.h | 10 ++++++++++ 2 files changed, 15 insertions(+), 3 deletions(-) commit 74e364ad1b13fd518a0bd4e5aec56d5e8706152f Author: Xue jiufei Date: Wed Jun 24 16:55:20 2015 -0700 ocfs2: fix NULL pointer dereference in function ocfs2_abort_trigger() ocfs2_abort_trigger() use bh->b_assoc_map to get sb. But there's no function to set bh->b_assoc_map in ocfs2, it will trigger NULL pointer dereference while calling this function. We can get sb from bh->b_bdev->bd_super instead of b_assoc_map. [akpm@linux-foundation.org: update comment, per Joseph] Signed-off-by: joyce.xue Cc: Joseph Qi Cc: Mark Fasheh Cc: Joel Becker Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/journal.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit fce56d841ef9ab0333423f2c8e329f7341e9f44c Author: alex chen Date: Wed Jun 24 16:55:18 2015 -0700 ocfs2: o2net: should remove debugfs in o2net_init() out branch Signed-off-by: Alex Chen Reviewed-by: Joseph Qi Cc: Mark Fasheh Cc: Joel Becker Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/cluster/tcp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fa5a0eb3b074ca89690da3e13cf44b6bab3f024c Author: WeiWei Wang Date: Wed Jun 24 16:55:15 2015 -0700 ocfs2: remove OCFS2_IOCB_SEM lock type in direct io In ocfs2 direct read/write, OCFS2_IOCB_SEM lock type is used to protect inode->i_alloc_sem rw semaphore lock in the earlier kernel version. However, in the latest kernel, inode->i_alloc_sem rw semaphore lock is not used at all, so OCFS2_IOCB_SEM lock type needs to be removed. Signed-off-by: Weiwei Wang Cc: Mark Fasheh Cc: Joel Becker Reviewed-by: Junxiao Bi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/aops.c | 3 --- fs/ocfs2/aops.h | 7 ------- fs/ocfs2/file.c | 31 ++++--------------------------- 3 files changed, 4 insertions(+), 37 deletions(-) commit e272e7f0fbfbe4e6e5d89cd61064d6dddd73e81b Author: Joseph Qi Date: Wed Jun 24 16:55:12 2015 -0700 ocfs2: do not BUG if jbd2_journal_dirty_metadata fails jbd2_journal_dirty_metadata may fail. Currently it cannot take care of non zero return value and just BUG in ocfs2_journal_dirty. This patch is aborting the handle and journal instead of BUG. Signed-off-by: Joseph Qi Cc: joyce.xue Cc: Mark Fasheh Cc: Joel Becker Cc: Junxiao Bi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/journal.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) commit 099768b0c605f55167c0c211afbfeeeea79b56eb Author: Xue jiufei Date: Wed Jun 24 16:55:09 2015 -0700 ocfs2: remove BUG_ON(!empty_extent) in __ocfs2_rotate_tree_left() ocfs2_rotate_tree_left() calls __ocfs2_rotate_tree_left() for left rotation while non-rightmost path containing an empty extent in the leaf block. __ocfs2_rotate_tree_left() returns -EAGAIN if right subtree having an empty extent and pass the empty_extent_path to caller. The caller ocfs2_rotate_tree_left() will restart rotation from the returned path. It will trigger the BUG_ON(!ocfs2_is_empty_extent) when the et on disk is as follows: eb0 is the leaf block of path(say path_a) passed to ocfs2_rotate_tree_left, which has an empty rec[0]. eb1 is the leaf block of path(say path_b) that just right to path_a, which has no empty record. eb2 is the leaf block of path(say path_c) that just right to path_b, which has an empty rec[0]. And path_c is also the rightmost path. Now we want to remove the empty rec[0] in eb0: ocfs2_rotate_tree_left: -> call __ocfs2_rotate_tree_left with path_a as its input *path* -> call ocfs2_rotate_subtree_left with path_a as its input *left_path* and path_b as its input *right_path*. it will move rec[0] in eb1 to eb0, and rec[0] in eb0 is not empty now. -> continue to call ocfs2_rotate_subtree_left with path_b as its input *left_path* and path_c as its input *right_path*, and return -EAGAIN because eb2 has an empty rec[0] -> call __ocfs2_rotate_tree_left with path_c as it input, rotate all records in eb2 to left and return 0. -> call __ocfs2_rotate_tree_left with path_a as its input, and triggers the BUG_ON(!ocfs2_is_empty_extent) as the rec[0] in eb0 is not empty. So the BUG_ON() should be removed and return 0 if rec[0] is no longer an empty extent. Signed-off-by: joyce.xue Cc: Mark Fasheh Cc: Joel Becker Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/alloc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 9f99ad08612ac37f3b8847b9b2e6e95a2a81ed4b Author: Xue jiufei Date: Wed Jun 24 16:55:07 2015 -0700 ocfs2: return error when ocfs2_figure_merge_contig_type() fails ocfs2_figure_merge_contig_type() still returns CONTIG_NONE when some error occurs which will cause an unpredictable error. So return a proper errno when ocfs2_figure_merge_contig_type() fails. Signed-off-by: joyce.xue Cc: Mark Fasheh Cc: Joel Becker Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/alloc.c | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) commit 345dc681bd9acc8d7fdb6f5d3e2419c010f00bf6 Author: Joseph Qi Date: Wed Jun 24 16:55:04 2015 -0700 ocfs2/dlm: cleanup unused function __dlm_wait_on_lockres_flags_set __dlm_wait_on_lockres_flags_set() is declared but not implemented and used. 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/dlmcommon.h | 1 - 1 file changed, 1 deletion(-) commit 2e173152420a9595bbfccbd8cdba0cd3c160fefc Author: Daeseok Youn Date: Wed Jun 24 16:55:01 2015 -0700 ocfs2: use retval instead of status for checking error The use of 'status' in __ocfs2_add_entry() can return wrong value. Some functions' return value in __ocfs2_add_entry(), i.e ocfs2_journal_access_di() is saved to 'status'. But 'status' is not used in 'bail' label for returning result of __ocfs2_add_entry(). So use retval instead of status. Signed-off-by: Daeseok Youn Reviewed-by: Joseph Qi Cc: Joel Becker Cc: Mark Fasheh Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/dir.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit cf1776a9e834400ed8e2fea48ffa6daa9da28446 Author: Joseph Qi Date: Wed Jun 24 16:54:59 2015 -0700 ocfs2: fix a tiny race when truncate dio orohaned entry Once dio crashed it will leave an entry in orphan dir. And orphan scan will take care of the clean up. There is a tiny race case that the same entry will be truncated twice and then trigger the BUG in ocfs2_del_inode_from_orphan. Signed-off-by: Joseph Qi Cc: Mark Fasheh Cc: Joel Becker Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/aops.c | 12 +++++++++++- fs/ocfs2/journal.c | 47 +++++++++++++++++++++-------------------------- fs/ocfs2/namei.c | 22 +++++----------------- fs/ocfs2/namei.h | 4 ++-- 4 files changed, 39 insertions(+), 46 deletions(-) commit e327284abb8aee3206cef3b790a283fea213a174 Author: Andrew Morton Date: Wed Jun 24 16:54:56 2015 -0700 ocfs2: remove __mlog_cpu_guess raw_smp_processor_id() is the means of avoiding the runtime preemptibility check. [akpm@linux-foundation.org: fix printk warning] Cc: Joe Perches Cc: Joel Becker Cc: Mark Fasheh Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/cluster/masklog.c | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) commit 7c2bd2f930aefbc93b90140fa37fa2547728c84c Author: Joe Perches Date: Wed Jun 24 16:54:53 2015 -0700 ocfs2: reduce object size of mlog uses Using a function for __mlog_printk instead of a macro reduces the object size of built-in.o by about 190KB, or ~18% overall (x86-64 defconfig with all ocfs2 options) $ size fs/ocfs2/built-in.o* text data bss dec hex filename 870954 118471 134408 1123833 1125f9 fs/ocfs2/built-in.o,new 1064081 118071 134408 1316560 1416d0 fs/ocfs2/built-in.o.old Miscellanea: - Move the used-once __mlog_cpu_guess statement expression macro to the masklog.c file above the use in __mlog_printk function - Simplify the mlog macro moving the and/or logic and level code into __mlog_printk [akpm@linux-foundation.org: export __mlog_printk() to other ocfs2 modules] Signed-off-by: Joe Perches Cc: Joel Becker Cc: Mark Fasheh Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/cluster/masklog.c | 47 ++++++++++++++++++++++++++++++++++++++++++++++ fs/ocfs2/cluster/masklog.h | 42 ++++++++++++----------------------------- 2 files changed, 59 insertions(+), 30 deletions(-) commit 5286d20c4eb7b0c29217f8756652609df74f5489 Author: Fabian Frederick Date: Wed Jun 24 16:54:51 2015 -0700 configfs: unexport/make static config_item_init() config_item_init() is only used in item.c Signed-off-by: Fabian Frederick Cc: Joel Becker Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/configfs/item.c | 3 +-- include/linux/configfs.h | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) commit b0cbeee72f88996678fff672a75bd845b7ad7034 Author: Pekka Enberg Date: Wed Jun 24 16:54:48 2015 -0700 NTFS: use kvfree() in ntfs_free() Use kvfree() instead of open-coding it. Signed-off-by: Pekka Enberg Cc: Anton Altaparmakov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ntfs/malloc.h | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) commit c3cddc4c296c3a1498df7181015cbcea178a0546 Author: Nikolay Borisov Date: Wed Jun 24 16:54:45 2015 -0700 fsnotify: remove obsolete documentation should_send_event is no longer part of struct fsnotify_ops, so remove it. Signed-off-by: Nikolay Borisov Reviewed-by: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/fsnotify_backend.h | 2 -- 1 file changed, 2 deletions(-) commit 5935877af47653d737d2401f9b6200f1fb4a03eb Author: Akinobu Mita Date: Wed Jun 24 16:54:43 2015 -0700 powerpc: use for_each_sg() This replaces the plain loop over the sglist array with for_each_sg() macro which consists of sg_next() function calls. Since powerpc does select ARCH_HAS_SG_CHAIN, it is necessary to use for_each_sg() in order to loop over each sg element. This also help find problems with drivers that do not properly initialize their sg tables when CONFIG_DEBUG_SG is enabled. Signed-off-by: Akinobu Mita Cc: Benjamin Herrenschmidt Cc: Paul Mackerras Cc: Michael Ellerman Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/powerpc/kernel/vio.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit ae70a7bbc5eb7d32d9822db4a50fd17b307743de Author: Akinobu Mita Date: Wed Jun 24 16:54:40 2015 -0700 metag: use for_each_sg() This replaces the plain loop over the sglist array with for_each_sg() macro which consists of sg_next() function calls. Since metag doesn't select ARCH_HAS_SG_CHAIN, it is not necessary to use for_each_sg() in order to loop over each sg element. But this can help find problems with drivers that do not properly initialize their sg tables when CONFIG_DEBUG_SG is enabled. Signed-off-by: Akinobu Mita Cc: James Hogan Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/metag/include/asm/dma-mapping.h | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) commit 58c179674329b4d03a9d22df55d95cb0a8da5d85 Author: Arnd Bergmann Date: Fri May 15 11:24:22 2015 +0200 ARM: hisi: revert changes from hisi/hip04-dt branch This backs out all changes that were added in the hip04-dt branch after various boot problems were discovered in UEFI booting. Reported-by: Tyler Baker Cc: Wei Xu [khilman: minor changelog updates] Signed-off-by: Arnd Bergmann Signed-off-by: Kevin Hilman arch/arm/boot/dts/hip04-d01.dts | 27 -------- arch/arm/boot/dts/hip04.dtsi | 133 ---------------------------------------- 2 files changed, 160 deletions(-) commit 2924cd18c434c79ee777dc63616a8505045d7509 Author: Ruud Derwig Date: Wed Dec 3 15:52:41 2014 +0100 ARCv2: [vdk] dts files and defconfig for HS38 VDK - CONFIG_ARC_UBOOT_SUPPORT to handle arguments passed in r0, r1, r2 - CONFIG_DEVTMPFS_MOUNT for mouting rootfs since it uses external cpio for rootfs Cc: Grant Likely Cc: Rob Herring Cc: devicetree@vger.kernel.org Signed-off-by: Ruud Derwig [vgupta: folded the Main baord DT files for smp/up into one] Signed-off-by: Vineet Gupta arch/arc/boot/dts/vdk_axc003.dtsi | 61 +++++++++++++++++++ arch/arc/boot/dts/vdk_axc003_idu.dtsi | 76 +++++++++++++++++++++++ arch/arc/boot/dts/vdk_axs10x_mb.dtsi | 93 ++++++++++++++++++++++++++++ arch/arc/boot/dts/vdk_hs38.dts | 21 +++++++ arch/arc/boot/dts/vdk_hs38_smp.dts | 21 +++++++ arch/arc/configs/vdk_hs38_defconfig | 102 +++++++++++++++++++++++++++++++ arch/arc/configs/vdk_hs38_smp_defconfig | 104 ++++++++++++++++++++++++++++++++ arch/arc/kernel/asm-offsets.c | 2 + arch/arc/mm/tlbex.S | 2 + arch/arc/plat-axs10x/axs10x.c | 8 +++ 10 files changed, 490 insertions(+) commit 5fa2daaa8d8223d06fcdba171a7a668dc8e8b179 Author: Vineet Gupta Date: Mon Mar 9 14:33:40 2015 +0530 ARCv2: [axs103] Support ARC SDP FPGA platform for HS38x cores Cc: Grant Likely Cc: Rob Herring Cc: devicetree@vger.kernel.org Signed-off-by: Vineet Gupta Documentation/devicetree/bindings/arc/axs103.txt | 8 + arch/arc/boot/dts/axc003.dtsi | 102 ++++++++++++ arch/arc/boot/dts/axc003_idu.dtsi | 126 +++++++++++++++ arch/arc/boot/dts/axs103.dts | 24 +++ arch/arc/boot/dts/axs103_idu.dts | 24 +++ arch/arc/configs/axs103_defconfig | 117 ++++++++++++++ arch/arc/configs/axs103_smp_defconfig | 118 ++++++++++++++ arch/arc/kernel/devtree.c | 2 +- arch/arc/plat-axs10x/Kconfig | 13 +- arch/arc/plat-axs10x/axs10x.c | 198 +++++++++++++++++++++-- 10 files changed, 720 insertions(+), 12 deletions(-) commit e0183f523025f96e2053200616a6d602ea2b3451 Author: Alexey Brodkin Date: Wed Apr 1 18:51:00 2015 +0530 ARC: [axs101] Prepare for AXS103 To avoid duplicating the MB DTS file, move the MB intc entry into cpu card specific file Cc: Grant Likely Cc: Rob Herring Cc: devicetree@vger.kernel.org Signed-off-by: Vineet Gupta arch/arc/boot/dts/axc001.dtsi | 21 +++++++++++++++++++++ arch/arc/boot/dts/axs10x_mb.dtsi | 17 ----------------- 2 files changed, 21 insertions(+), 17 deletions(-) commit a12ebe16a5cea66c17a621ece3a557b8afda2361 Author: Vineet Gupta Date: Mon Mar 9 14:30:19 2015 +0530 ARCv2: [nsim*hs*] Support simulation platforms for HS38x cores Cc: Grant Likely Cc: Rob Herring Cc: devicetree@vger.kernel.org Signed-off-by: Vineet Gupta arch/arc/boot/dts/nsim_hs.dts | 53 +++++++++++++++ arch/arc/boot/dts/nsim_hs_idu.dts | 72 ++++++++++++++++++++ arch/arc/boot/dts/nsimosci_hs.dts | 80 +++++++++++++++++++++++ arch/arc/boot/dts/nsimosci_hs_idu.dts | 101 +++++++++++++++++++++++++++++ arch/arc/configs/nsim_hs_defconfig | 64 ++++++++++++++++++ arch/arc/configs/nsim_hs_smp_defconfig | 63 ++++++++++++++++++ arch/arc/configs/nsimosci_hs_defconfig | 73 +++++++++++++++++++++ arch/arc/configs/nsimosci_hs_smp_defconfig | 93 ++++++++++++++++++++++++++ arch/arc/plat-sim/platform.c | 2 + 9 files changed, 601 insertions(+) commit 65bfbcdfdec5c6ba055302e25506aaf67ce3c5c7 Author: Vineet Gupta Date: Mon Mar 9 14:01:08 2015 +0530 ARCv2: All bits in place, allow ARCv2 builds Signed-off-by: Vineet Gupta arch/arc/Kconfig | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit 795f4558562fd5318260d5d8144a2f8612aeda7b Author: Vineet Gupta Date: Fri Apr 3 12:37:07 2015 +0300 ARCv2: SLC: Handle explcit flush for DMA ops (w/o IO-coherency) L2 cache on ARCHS processors is called SLC (System Level Cache) For working DMA (in absence of hardware assisted IO Coherency) we need to manage SLC explicitly when buffers transition between cpu and controllers. Signed-off-by: Vineet Gupta arch/arc/include/asm/cache.h | 11 ++++++++ arch/arc/mm/cache.c | 64 ++++++++++++++++++++++++++++++++++++++++++-- arch/arc/mm/dma.c | 12 +++++++++ 3 files changed, 85 insertions(+), 2 deletions(-) commit a5c8b52abe677977883655166796f167ef1e0084 Author: Vineet Gupta Date: Thu Dec 11 16:05:16 2014 +0530 ARCv2: STAR 9000837815 workaround hardware exclusive transactions livelock A quad core SMP build could get into hardware livelock with concurrent LLOCK/SCOND. Workaround that by adding a PREFETCHW which is serialized by SCU (System Coherency Unit). It brings the cache line in Exclusive state and makes others invalidate their lines. This gives enough time for winner to complete the LLOCK/SCOND, before others can get the line back. The prefetchw in the ll/sc loop is not nice but this is the only software workaround for current version of RTL. Cc: Peter Zijlstra (Intel) Cc: Will Deacon Signed-off-by: Vineet Gupta arch/arc/include/asm/atomic.h | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) commit 04e2eee4b02edcafce96c9c37b31b1a3318291a4 Author: Vineet Gupta Date: Tue Mar 31 22:38:21 2015 +0530 ARC: Reduce bitops lines of code using macros No semantical changes ! Acked-by: Peter Zijlstra (Intel) Signed-off-by: Vineet Gupta arch/arc/include/asm/bitops.h | 477 +++++++++++++----------------------------- 1 file changed, 144 insertions(+), 333 deletions(-) commit b8a033023994c4e59697bb3b16b441b38f258390 Author: Vineet Gupta Date: Wed Mar 11 21:42:37 2015 +0530 ARCv2: barriers ARCv2 based HS38 cores are weakly ordered and thus explicit barriers for kernel proper. SMP barrier is provided by DMB instruction which also guarantees local barrier hence used as backend of smp_*mb() as well as *mb() APIs Also hookup barriers into MMIO accessors to avoid ordering issues in IO Cc: Peter Zijlstra (Intel) Reviewed-by: Will Deacon Signed-off-by: Vineet Gupta arch/arc/include/asm/Kbuild | 1 - arch/arc/include/asm/barrier.h | 48 ++++++++++++++++++++++++++++++++++++++++++ arch/arc/include/asm/io.h | 42 +++++++++++++++++++++++++++++++++--- 3 files changed, 87 insertions(+), 4 deletions(-) commit 470c27e4695add2a4e167467775081870d83185a Author: Vineet Gupta Date: Wed Mar 11 21:42:02 2015 +0530 arch: conditionally define smp_{mb,rmb,wmb} That way arches can define the minimal versions and still #include asm-generic for defaults (vs. defining defaults in arch code) See new barrier.h in arc for usage ! Acked-by: Peter Zijlstra (Intel) Signed-off-by: Vineet Gupta include/asm-generic/barrier.h | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) commit 2576c28e3f623ed401db7e6197241865328620ef Author: Vineet Gupta Date: Thu Nov 20 15:42:09 2014 +0530 ARC: add smp barriers around atomics per Documentation/atomic_ops.txt - arch_spin_lock/unlock were lacking the ACQUIRE/RELEASE barriers Since ARCv2 only provides load/load, store/store and all/all, we need the full barrier - LLOCK/SCOND based atomics, bitops, cmpxchg, which return modified values were lacking the explicit smp barriers. - Non LLOCK/SCOND varaints don't need the explicit barriers since that is implicity provided by the spin locks used to implement the critical section (the spin lock barriers in turn are also fixed in this commit as explained above Cc: Paul E. McKenney Cc: stable@vger.kernel.org Acked-by: Peter Zijlstra (Intel) Signed-off-by: Vineet Gupta arch/arc/include/asm/atomic.h | 21 +++++++++++++++++++++ arch/arc/include/asm/bitops.h | 19 +++++++++++++++++++ arch/arc/include/asm/cmpxchg.h | 17 +++++++++++++++++ arch/arc/include/asm/spinlock.h | 32 ++++++++++++++++++++++++++++++++ 4 files changed, 89 insertions(+) commit d57f727264f1425a94689bafc7e99e502cb135b5 Author: Vineet Gupta Date: Thu Nov 13 15:54:01 2014 +0530 ARC: add compiler barrier to LLSC based cmpxchg When auditing cmpxchg call sites, Chuck noted that gcc was optimizing away some of the desired LDs. | do { | new = old = *ipi_data_ptr; | new |= 1U << msg; | } while (cmpxchg(ipi_data_ptr, old, new) != old); was generating to below | 8015cef8: ld r2,[r4,0] <-- First LD | 8015cefc: bset r1,r2,r1 | | 8015cf00: llock r3,[r4] <-- atomic op | 8015cf04: brne r3,r2,8015cf10 | 8015cf08: scond r1,[r4] | 8015cf0c: bnz 8015cf00 | | 8015cf10: brne r3,r2,8015cf00 <-- Branch doesn't go to orig LD Although this was fixed by adding a ACCESS_ONCE in this call site, it seems safer (for now at least) to add compiler barrier to LLSC based cmpxchg Reported-by: Chuck Jordan Cc: Acked-by: Peter Zijlstra (Intel) Signed-off-by: Vineet Gupta arch/arc/include/asm/cmpxchg.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit e0456717e483bb8a9431b80a5bdc99a928b9b003 Merge: 98ec21a 1ea2d02 Author: Linus Torvalds Date: Wed Jun 24 16:49:49 2015 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next Pull networking updates from David Miller: 1) Add TX fast path in mac80211, from Johannes Berg. 2) Add TSO/GRO support to ibmveth, from Thomas Falcon 3) Move away from cached routes in ipv6, just like ipv4, from Martin KaFai Lau. 4) Lots of new rhashtable tests, from Thomas Graf. 5) Run ingress qdisc lockless, from Alexei Starovoitov. 6) Allow servers to fetch TCP packet headers for SYN packets of new connections, for fingerprinting. From Eric Dumazet. 7) Add mode parameter to pktgen, for testing receive. From Alexei Starovoitov. 8) Cache access optimizations via simplifications of build_skb(), from Alexander Duyck. 9) Move page frag allocator under mm/, also from Alexander. 10) Add xmit_more support to hv_netvsc, from KY Srinivasan. 11) Add a counter guard in case we try to perform endless reclassify loops in the packet scheduler. 12) Extern flow dissector to be programmable and use it in new "Flower" classifier. From Jiri Pirko. 13) AF_PACKET fanout rollover fixes, performance improvements, and new statistics. From Willem de Bruijn. 14) Add netdev driver for GENEVE tunnels, from John W Linville. 15) Add ingress netfilter hooks and filtering, from Pablo Neira Ayuso. 16) Fix handling of epoll edge triggers in TCP, from Eric Dumazet. 17) Add an ECN retry fallback for the initial TCP handshake, from Daniel Borkmann. 18) Add tail call support to BPF, from Alexei Starovoitov. 19) Add several pktgen helper scripts, from Jesper Dangaard Brouer. 20) Add zerocopy support to AF_UNIX, from Hannes Frederic Sowa. 21) Favor even port numbers for allocation to connect() requests, and odd port numbers for bind(0), in an effort to help avoid ip_local_port_range exhaustion. From Eric Dumazet. 22) Add Cavium ThunderX driver, from Sunil Goutham. 23) Allow bpf programs to access skb_iif and dev->ifindex SKB metadata, from Alexei Starovoitov. 24) Add support for T6 chips in cxgb4vf driver, from Hariprasad Shenai. 25) Double TCP Small Queues default to 256K to accomodate situations like the XEN driver and wireless aggregation. From Wei Liu. 26) Add more entropy inputs to flow dissector, from Tom Herbert. 27) Add CDG congestion control algorithm to TCP, from Kenneth Klette Jonassen. 28) Convert ipset over to RCU locking, from Jozsef Kadlecsik. 29) Track and act upon link status of ipv4 route nexthops, from Andy Gospodarek. * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1670 commits) bridge: vlan: flush the dynamically learned entries on port vlan delete bridge: multicast: add a comment to br_port_state_selection about blocking state net: inet_diag: export IPV6_V6ONLY sockopt stmmac: troubleshoot unexpected bits in des0 & des1 net: ipv4 sysctl option to ignore routes when nexthop link is down net: track link-status of ipv4 nexthops net: switchdev: ignore unsupported bridge flags net: Cavium: Fix MAC address setting in shutdown state drivers: net: xgene: fix for ACPI support without ACPI ip: report the original address of ICMP messages net/mlx5e: Prefetch skb data on RX net/mlx5e: Pop cq outside mlx5e_get_cqe net/mlx5e: Remove mlx5e_cq.sqrq back-pointer net/mlx5e: Remove extra spaces net/mlx5e: Avoid TX CQE generation if more xmit packets expected net/mlx5e: Avoid redundant dev_kfree_skb() upon NOP completion net/mlx5e: Remove re-assignment of wq type in mlx5e_enable_rq() net/mlx5e: Use skb_shinfo(skb)->gso_segs rather than counting them net/mlx5e: Static mapping of netdev priv resources to/from netdev TX queues net/mlx4_en: Use HW counters for rx/tx bytes/packets in PF device ... commit 3783055ef4cf096910f670f9a1a32e32db08559b Author: Alexandre Belloni Date: Mon Jun 8 19:27:37 2015 +0200 rtc: remove useless I2C dependencies Multiple options depend on I2C but are already under under if I2C. Remove those useless dependencies. Signed-off-by: Alexandre Belloni drivers/rtc/Kconfig | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) commit 98ab2c938c7f77741ed09ee8ce21e8d7770669ef Author: Alexandre Belloni Date: Sat May 9 21:21:54 2015 +0200 rtc: whitespace fixes Some entries in the Kconfig are improperly indented with spaces instead of tabs. Also fix whitespaces in Makefile. Signed-off-by: Alexandre Belloni drivers/rtc/Kconfig | 48 ++++++++++++++++++++++++------------------------ drivers/rtc/Makefile | 12 ++++++------ 2 files changed, 30 insertions(+), 30 deletions(-) commit 35cd49c11174322c3e998eff8f05acc5a55dcc9b Author: Alexandre Belloni Date: Sat May 9 16:40:25 2015 +0200 rtc: Properly sort Makefile Properly sort the Makefile by filename Signed-off-by: Alexandre Belloni drivers/rtc/Makefile | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) commit 4733f39794e33e30ac06b38bcc6f4228adbf09cc Author: Alexandre Belloni Date: Tue May 26 11:13:04 2015 +0200 MAINTAINERS: Add RTC subsystem repository The RTC subsystem patches are available through my kernel.org repository. Signed-off-by: Alexandre Belloni MAINTAINERS | 1 + 1 file changed, 1 insertion(+) commit cd1420d3a90944e677987ca8c56f1cd22ecd1b51 Author: Arnd Bergmann Date: Tue May 12 23:27:02 2015 +0200 rtc: pfc8563: fix uninitialized variable warning Gcc is unable to prove that alm_pending is always initialized when it is used, so it prints a harmless warning: drivers/rtc/rtc-pcf8563.c: In function 'pcf8563_probe': drivers/rtc/rtc-pcf8563.c:449:5: warning: 'alm_pending' may be used uninitialized in this function [-Wmaybe-uninitialized] This uses the same conditional expression that is used inside of the pcf8563_get_alarm_mode() function, to help gcc figure it out and shut up that warning, and make the ARM defconfigs build again with no warnings. Signed-off-by: Arnd Bergmann Fixes: a45d528aab8b ("rtc: pcf8563: clear expired alarm at boot time") Signed-off-by: Alexandre Belloni drivers/rtc/rtc-pcf8563.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e3edd67141a1ea5294e54b17fee5becf1090f5d4 Author: Nishanth Menon Date: Mon Apr 20 19:51:34 2015 -0500 rtc: ds1307: Enable the mcp794xx alarm after programming time Alarm interrupt enable register is at offset 0x7, while the time registers for the alarm follow that. When we program Alarm interrupt enable prior to programming the time, it is possible that previous time value could be close or match at the time of alarm enable resulting in interrupt trigger which is unexpected (and does not match the time we expect it to trigger). To prevent this scenario from occuring, program the ALM0_EN bit only after the alarm time is appropriately programmed. Ofcourse, I2C programming is non-atomic, so there are loopholes where the interrupt wont trigger if the time requested is in the past at the time of programming the ALM0_EN bit. However, we will not have unexpected interrupts while the time is programmed after the interrupt are enabled. Signed-off-by: Nishanth Menon Reviewed-by: Grygorii Strashko Signed-off-by: Alexandre Belloni drivers/rtc/rtc-ds1307.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 4be1f6bbd1e968ab02653c28eababd9480dfff77 Author: Heiko Stübner Date: Sat Jun 13 12:34:04 2015 +0200 rtc: hym8563: make the irq optional Sometimes the irq line is not connected to any soc-pin. This does not hinder basic timekeeping functionality of the rtc, so probe should not fail in this case. Signed-off-by: Heiko Stuebner Signed-off-by: Alexandre Belloni .../devicetree/bindings/rtc/haoyu,hym8563.txt | 2 +- drivers/rtc/rtc-hym8563.c | 18 ++++++++++-------- 2 files changed, 11 insertions(+), 9 deletions(-) commit 45b4c85b71bbe691329983c9bf9877392700edc3 Author: kbuild test robot Date: Sat Jun 13 21:16:56 2015 +0800 rtc: gemini: fix cocci warnings Use resource_size function on resource object instead of explicit computation. No need to set .owner here. The core will do it. Remove .owner field if calls are used which set it automatically Signed-off-by: Fengguang Wu Acked-by: Hans Ulli Kroll Signed-off-by: Alexandre Belloni drivers/rtc/rtc-gemini.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 4042a1475ef5cb290f5fedd5ef8de3e1114c55cd Author: Alexandre Belloni Date: Mon Jun 8 16:16:15 2015 +0200 rtc: mv: correct 24 hour error message The driver can't accommodate the 12 hour mode but the error message states that the 24 hour mode is not supported. Also fix the typos (hour vs hours). Signed-off-by: Alexandre Belloni drivers/rtc/rtc-mv.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit fe5613360102de0dd79102ec2d2e006a5eeb00d8 Author: Alexandre Belloni Date: Mon Jun 8 16:16:14 2015 +0200 rtc: mv: use BIT() Use bit instead of hand coding the shift and correct the 24 hour vs 24 hours typo. Signed-off-by: Alexandre Belloni drivers/rtc/rtc-mv.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit b2bd2370a25b78a7090ac701836d414cdb731bea Author: Ard Biesheuvel Date: Tue Jun 9 11:15:35 2015 +0200 rtc: efi: use correct EFI 'epoch' The rtc-efi driver declares that the EFI 'epoch' is 1/1/1998, but the UEFI spec does not define it at all. It does define a range of [1900, 9999] for the 'Year' member of the EFI_TIME struct, so let's use 1900 as the minimum year and not 1998. Also, move the validation of the year to the convert_from_efi_time() routine where all other EFI_TIME fields are validated as well. This prevents rtc_read_time() failures when the RTC that backs the EFI time services is set to a date before 1998, e.g., when it has lost power. This also optimizes the compute_wday() routine, by replacing the for loop with a simple arithmetic expression, and by reusing the yearday value that we need to compute anyway when populating the rtc_time::tm_yday field. Cc: Alessandro Zummo Cc: Alexandre Belloni Cc: rtc-linux@googlegroups.com Signed-off-by: Ard Biesheuvel Signed-off-by: Alexandre Belloni drivers/rtc/rtc-efi.c | 39 ++++++++++++++------------------------- 1 file changed, 14 insertions(+), 25 deletions(-) commit c86a6c28957a9e8e9a71582a32e96971ad411ffe Author: Xunlei Pang Date: Fri Jun 12 11:10:18 2015 +0800 rtc: interface: Remove rtc_set_mmss() Now rtc_set_mmss() has no users, just remove it. We still have rtc_set_time() doing similar things. Signed-off-by: Xunlei Pang Signed-off-by: Alexandre Belloni drivers/rtc/interface.c | 45 --------------------------------------------- include/linux/rtc.h | 1 - 2 files changed, 46 deletions(-) commit 460ea8d70db1ffd9a5d6996c240c34458473334f Author: Xunlei Pang Date: Fri Jun 12 11:10:17 2015 +0800 sparc: time: Replace update_persistent_clock() with CONFIG_RTC_SYSTOHC On Sparc systems, update_persistent_clock() uses RTC drivers to do the job, it makes more sense to hand it over to CONFIG_RTC_SYSTOHC. In the long run, all the update_persistent_clock() should migrate to proper class RTC drivers if any and use CONFIG_RTC_SYSTOHC instead. Signed-off-by: Xunlei Pang Acked-by: David S. Miller Signed-off-by: Alexandre Belloni arch/sparc/Kconfig | 2 +- arch/sparc/kernel/time_32.c | 21 --------------------- arch/sparc/kernel/time_64.c | 14 -------------- 3 files changed, 1 insertion(+), 36 deletions(-) commit 9c5150b31b49e3d89c52df9b1c1ebcea4e665ec3 Author: Xunlei Pang Date: Fri Jun 12 11:10:16 2015 +0800 rtc: NTP: Add CONFIG_RTC_SYSTOHC_DEVICE for NTP synchronization Currently, CONFIG_RTC_SYSTOHC uses CONFIG_RTC_HCTOSYS_DEVICE which is originally used by CONFIG_RTC_HCTOSYS, but this rtc device has some limiations, for example, it must be battery-backed, be able to work with irq off and through system suspension, etc. So add CONFIG_RTC_SYSTOHC_DEVICE used exclusively for CONFIG_RTC_SYSTOHC, it is more lenient compared to CONFIG_RTC_HCTOSYS_DEVICE, and could be assigned any available RTC in the system. Default value is CONFIG_RTC_HCTOSYS_DEVICE which is "rtc0" by default. After this patch, NTP will sync up "rtc0" by default. Cc: Paul Bolle Signed-off-by: Xunlei Pang Signed-off-by: Alexandre Belloni drivers/rtc/Kconfig | 29 ++++++++++++++++++++--------- drivers/rtc/systohc.c | 2 +- 2 files changed, 21 insertions(+), 10 deletions(-) commit 9033fd8ba7e96821e65fe3afc3f4077a8b66d1c9 Author: Xunlei Pang Date: Fri Jun 12 10:04:12 2015 +0800 rtc: sunxi: Replace deprecated rtc_tm_to_time() sunxi_rtc_setalarm() uses deprecated rtc_tm_to_time(), which will overflow in year 2106 on 32-bit machines. This patch solves this by: - Replacing rtc_tm_to_time() with rtc_tm_sub() Also remove the unnecessary initial zeroing of some local variables in sunxi_rtc_setalarm(). Cc: Carlo Caione Signed-off-by: Xunlei Pang Signed-off-by: Alexandre Belloni drivers/rtc/rtc-sunxi.c | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) commit f118db1efdbd224b3e0dd174a8942471eee798a0 Author: Xunlei Pang Date: Fri Jun 12 10:04:11 2015 +0800 rtc: isl1208: Replace deprecated rtc_tm_to_time() isl1208_i2c_set_alarm() uses deprecated rtc_tm_to_time(), which will overflow in year 2106 on 32-bit machines. This patch solves this by: - Replacing rtc_tm_to_time() with rtc_tm_sub() Cc: Herbert Valerio Riedel Signed-off-by: Xunlei Pang Signed-off-by: Alexandre Belloni drivers/rtc/rtc-isl1208.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) commit 9200025724619d83f9fc366281f0bde36afe6e5a Author: Xunlei Pang Date: Fri Jun 12 10:04:10 2015 +0800 rtc: Introduce rtc_tm_sub() helper function There're many sites need comparing the two rtc_time variants for many rtc drivers, especially in the instances of rtc_class_ops::set_alarm(). So add this common helper function to make things easy. Suggested-by: Arnd Bergmann Signed-off-by: Xunlei Pang Signed-off-by: Alexandre Belloni include/linux/rtc.h | 8 ++++++++ 1 file changed, 8 insertions(+) commit 626fea046b49490cdd8c917911437737c1f904a8 Author: Xunlei Pang Date: Fri Jun 12 10:04:09 2015 +0800 rtc: pcf8563: Replace deprecated rtc_time_to_tm() and rtc_tm_to_time() pcf8563_rtc_set_alarm() uses deprecated rtc_tm_to_time() and rtc_time_to_tm(), which will overflow in year 2106 on 32-bit machines. This patch solves this by: - Replacing rtc_time_to_tm() with rtc_time64_to_tm() - Replacing rtc_tm_to_time() with rtc_tm_to_time64() Acked-by: Arnd Bergmann Signed-off-by: Xunlei Pang Signed-off-by: Alexandre Belloni drivers/rtc/rtc-pcf8563.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit d200c79b1ad1fa76feb5e0991d11f3edfe9960de Author: Laxman Dewangan Date: Fri May 29 17:44:05 2015 +0530 rtc: palmas: Initialise bb_charging flag before using it Initialise the variable high_bb_charging before using it to avoid configuring wrong value and fix following compilation warning: /* rtc-palmas.c: In function ‘palmas_rtc_probe’: rtc-palmas.c:242:7: warning: ‘high_bb_charging’ may be used uninitialized in this function */ Signed-off-by: Laxman Dewangan Signed-off-by: Alexandre Belloni drivers/rtc/rtc-palmas.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e044253b3b4fb5a8b275202511a4d9765ac0a982 Author: Julia Lawall Date: Wed Aug 14 11:11:21 2013 +0200 rtc: simplify use of devm_ioremap_resource Remove unneeded error handling on the result of a call to platform_get_resource when the value is passed to devm_ioremap_resource. Move the call to platform_get_resource adjacent to the call to devm_ioremap_resource to make the connection between them more clear. A simplified version of the semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ expression pdev,res,n,e,e1; expression ret != 0; identifier l; @@ - res = platform_get_resource(pdev, IORESOURCE_MEM, n); ... when != res - if (res == NULL) { ... \(goto l;\|return ret;\) } ... when != res + res = platform_get_resource(pdev, IORESOURCE_MEM, n); e = devm_ioremap_resource(e1, res); // Signed-off-by: Julia Lawall [viresh.kumar@linaro.org: acked rtc-spear] Acked-by: Viresh Kumar Signed-off-by: Alexandre Belloni drivers/rtc/rtc-ds1216.c | 4 +--- drivers/rtc/rtc-ds1286.c | 4 +--- drivers/rtc/rtc-spear.c | 7 +------ 3 files changed, 3 insertions(+), 12 deletions(-) commit 538330ccb93849530f5617d1fa870237496caa60 Author: Jan Kardell Date: Thu May 28 08:48:45 2015 +0200 rtc: pcf8563 fix: return -EINVAL if we read an invalid time. Return -EINVAL if the voltage low bit is set to avoid getting a bogus time at boot. There was a comment stating that util-linux hwclock refuses to set a new time if we return an error code on read, but at least the current version do set the time as expected. Remove the comment and the check for valid time, and let the rtc core check it for us. Signed-off-by: Jan Kardell Signed-off-by: Alexandre Belloni drivers/rtc/rtc-pcf8563.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) commit 98a9bb5bf44bb6ee372f2a3b42703f597030cc48 Author: Hans Ulli Kroll Date: Wed May 20 17:49:31 2015 +0200 rtc: driver for Cortina Gemini Driver for the on chip RTC found on Cortina's SoC Gemini. Signed-off-by: Hans Ulli Kroll [alexandre.belloni@free-electrons.com: use devm_request_irq() and remove useless goto] Signed-off-by: Alexandre Belloni MAINTAINERS | 1 + drivers/rtc/Kconfig | 11 +++ drivers/rtc/Makefile | 1 + drivers/rtc/rtc-gemini.c | 176 +++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 189 insertions(+) commit 20d048ac8ba160747be5dbe00b7cbcfda762d25f Author: Alexandre Belloni Date: Sun May 3 11:29:44 2015 +0200 rtc: stmp3xxx select STMP_DEVICE rtc-stmp3xxx depends on lib/stmp_device, select it. Signed-off-by: Alexandre Belloni drivers/rtc/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 119434f44c78df8c4b6d67f835448542a4bd7e91 Author: Stefan Agner Date: Thu May 21 17:29:35 2015 +0200 rtc: snvs: fix wakealarm by call enable_irq_wake earlier When entering suspend while an wakeup alarm is set, enable_set_wake should make sure that the RTC interrupt keep being enabled and the .irq_set_wake for the RTC interrupt get called. However, since the driver uses the suspend_noirq callback, the call to enable_irq_wake has been made after disabling the interrupts. While .irq_set_wake has been called properly, the interrupt remained disabled. Use the suspend callback to call enable_irq_wake early enough to ensure the RTC interrupt remains enabled. Fixes: 7654e9d4fd8f ("drivers/rtc/rtc-snvs: fix suspend/resume") Cc: # 3.19 Signed-off-by: Stefan Agner Signed-off-by: Alexandre Belloni drivers/rtc/rtc-snvs.c | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) commit 6c95fa80e6f3e111b738949111a94bfac5021721 Author: Jingoo Han Date: Fri Feb 22 11:19:15 2013 +0900 rtc: rtc-v3020: use gpio_request_array() Using gpio_request_array()/gpio_free_array() can make the code simpler because it can set the direction and initial value in one shot and the for loop is unnecessary. Also, struct v3020_gpio is removed, because the struct v3020_gpio is replaced with struct gpio. Signed-off-by: Jingoo Han Signed-off-by: Alexandre Belloni drivers/rtc/rtc-v3020.c | 41 +++++++++++------------------------------ 1 file changed, 11 insertions(+), 30 deletions(-) commit ff32ff17a0d9c8e6e128e0be1b53756307414b2a Author: H Hartley Sweeten Date: Wed Mar 21 10:55:31 2012 -0700 rtc: ep93xx: Use readl/writel for io Drivers should not be using the __raw_* io accessors. Signed-off-by: H Hartley Sweeten Cc: Alessandro Zummo Signed-off-by: Alexandre Belloni drivers/rtc/rtc-ep93xx.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 9bde31df56bdd8950e31ae409af5276cb324058c Author: Javier Martinez Canillas Date: Wed May 13 17:18:02 2015 +0200 rtc: max77802: Report platform modalias to fix module autoload If the rtc-max77802 driver is built as a module, modalias information is not filled so the module is not autoloaded. Use the MODULE_DEVICE_TABLE() macro to export the platform ID table so the module contains that data. Signed-off-by: Javier Martinez Canillas Reviewed-by: Krzysztof Kozlowski Signed-off-by: Alexandre Belloni drivers/rtc/rtc-max77802.c | 1 + 1 file changed, 1 insertion(+) commit 2d0cca0db4134712c7a67694c5aab57a49e228f2 Author: Javier Martinez Canillas Date: Wed May 13 17:18:01 2015 +0200 rtc: max77686: Report platform modalias to fix module autoload If the rtc-max77686 driver is built as a module, modalias information is not filled so the module is not autoloaded. Use the MODULE_DEVICE_TABLE() macro to export the platform ID table so the module contains that data. Signed-off-by: Javier Martinez Canillas Reviewed-by: Krzysztof Kozlowski Signed-off-by: Alexandre Belloni drivers/rtc/rtc-max77686.c | 1 + 1 file changed, 1 insertion(+) commit 8ad0f5b682d2db108a15f850c54b577720c11699 Author: Axel Lin Date: Mon Apr 18 20:16:57 2011 +0800 rtc: ds1672, max6900, max8998: Add MODULE_DEVICE_TABLE The device table is required to load modules based on modaliases. After adding MODULE_DEVICE_TABLE, below entries will be added to modules.alias: alias i2c:ds1672 rtc_ds1672 alias i2c:max6900 rtc_max6900 alias platform:lp3974-rtc rtc_max8998 alias platform:max8998-rtc rtc_max8998 Signed-off-by: Axel Lin Cc: Alessandro Zummo Cc: Dale Farnsworth Cc: Minkyu Kang Cc: Joonyoung Shim Signed-off-by: Alexandre Belloni drivers/rtc/rtc-ds1672.c | 1 + drivers/rtc/rtc-max6900.c | 1 + drivers/rtc/rtc-max8998.c | 1 + 3 files changed, 3 insertions(+) commit 9393996761e23280f259d706133c8f0cd139fd58 Author: Alexandre Belloni Date: Thu May 14 22:39:06 2015 +0200 rtc: mt6397: fix build on some 32bits platforms On some !ARM 32bits platforms, the following compilation error happens because of the division on a 64bits value in mtk_rtc_read_time(): drivers/built-in.o: In function `mtk_rtc_read_time': rtc-mt6397.c:(.text+0x265d13f): undefined reference to `__divdi3' rtc-mt6397.c:(.text+0x265d150): undefined reference to `__moddi3' Use div_s64() as done in rtc_time64_to_tm() to solve that. Reported-by: kbuild test robot Acked-by: Eddie Huang Signed-off-by: Alexandre Belloni drivers/rtc/rtc-mt6397.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 99c14e4df6144bca12dcac657266a7b8216aaa16 Author: Rasmus Villemoes Date: Fri Feb 20 14:47:30 2015 +0100 rtc: mc13xxx: fix obfuscated and wrong format string According to C99, %2.s means 'print two spaces' (a precision of . without following digits or * means 0). The kernel's printf implementation, however, treats that case as if no precision was given, but relying on that quirk is rather silly. Also, since no - (aka left-justify) flag is given, the field with of 2 would then cause the alarm->enabled case to come out as "o n". Deobfuscate it. Signed-off-by: Rasmus Villemoes Signed-off-by: Alexandre Belloni drivers/rtc/rtc-mc13xxx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 607b8fc90d3bd8121ab00ac824e6bd2e1a6a2e6e Author: Eddie Huang Date: Wed May 6 15:23:42 2015 +0800 MAINTAINERS: add Mediatek RTC driver Add Mediatek RTC driver to maintainer entry. Signed-off-by: Eddie Huang Signed-off-by: Alexandre Belloni MAINTAINERS | 7 +++++++ 1 file changed, 7 insertions(+) commit fc2979118f3f5193475cb53d5df7bdaa7e358a42 Author: Tianping Fang Date: Wed May 6 15:23:41 2015 +0800 rtc: mediatek: Add MT6397 RTC driver Add Mediatek MT6397 RTC driver Signed-off-by: Tianping Fang Signed-off-by: Eddie Huang Signed-off-by: Alexandre Belloni drivers/rtc/Kconfig | 10 ++ drivers/rtc/Makefile | 1 + drivers/rtc/rtc-mt6397.c | 394 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 405 insertions(+) commit a5d7ea0912cc35efb61bccb1f07432f25fce6281 Author: Eddie Huang Date: Wed May 6 15:23:40 2015 +0800 mfd: provide RTC resource in MT6397 MFD Provide MT6397 RTC interrupt, base address, and register in MT6397 MFD. Signed-off-by: Eddie Huang Acked-by: Lee Jones Signed-off-by: Alexandre Belloni drivers/mfd/mt6397-core.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit fdf8afa188595e2f6c39f6a05ea147f48621a996 Author: Jean Delvare Date: Wed May 6 09:24:42 2015 +0200 rtc: xgene: Set hardware dependency The rtc-xgene driver is only useful on X-Gene SoC. Signed-off-by: Jean Delvare Cc: Alessandro Zummo Cc: Alexandre Belloni Cc: Iyappan Subramanian Cc: Keyur Chudgar Signed-off-by: Alexandre Belloni drivers/rtc/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 3090ac0abcfe65a649c49d903265e09daa1a91ea Author: Hans-Christian Egtvedt Date: Tue Jun 28 17:03:37 2011 +0200 rtc: at32ap700x: update author email This patch updates the email address of the rtc-at32ap700x driver supported by me to an email account I will use on a more regular basis in the future. Signed-off-by: Hans-Christian Egtvedt Signed-off-by: Alexandre Belloni drivers/rtc/rtc-at32ap700x.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fff3b16d2754a061a3549c4307a186423a0128fd Author: Takashi Iwai Date: Thu Jun 25 00:35:16 2015 +0200 PM / sleep: Increase default DPM watchdog timeout to 60 Many harddisks (mostly WD ones) have firmware problems and take too long, more than 10 seconds, to resume from suspend. And this often exceeds the default DPM watchdog timeout (12 seconds), resulting in a kernel panic out of sudden. Since most distros just take the default as is, we should give a bit more safer value. This patch increases the default value from 12 seconds to one minute, which has been confirmed to be long enough for such problematic disks. Link: https://bugzilla.kernel.org/show_bug.cgi?id=91921 Fixes: 70fea60d888d (PM / Sleep: Detect device suspend/resume lockup and log event) Cc: 3.13+ # 3.13+ Signed-off-by: Takashi Iwai Signed-off-by: Rafael J. Wysocki kernel/power/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 98ec21a01896751b673b6c731ca8881daa8b2c6d Merge: a262948 cbce1a6 Author: Linus Torvalds Date: Wed Jun 24 15:09:40 2015 -0700 Merge branch 'sched-hrtimers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull scheduler updates from Thomas Gleixner: "This series of scheduler updates depends on sched/core and timers/core branches, which are already in your tree: - Scheduler balancing overhaul to plug a hard to trigger race which causes an oops in the balancer (Peter Zijlstra) - Lockdep updates which are related to the balancing updates (Peter Zijlstra)" * 'sched-hrtimers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: sched,lockdep: Employ lock pinning lockdep: Implement lock pinning lockdep: Simplify lock_release() sched: Streamline the task migration locking a little sched: Move code around sched,dl: Fix sched class hopping CBS hole sched, dl: Convert switched_{from, to}_dl() / prio_changed_dl() to balance callbacks sched,dl: Remove return value from pull_dl_task() sched, rt: Convert switched_{from, to}_rt() / prio_changed_rt() to balance callbacks sched,rt: Remove return value from pull_rt_task() sched: Allow balance callbacks for check_class_changed() sched: Use replace normalize_task() with __sched_setscheduler() sched: Replace post_schedule with a balance callback list commit 3e30c11c8a902de350281a0d821e17cdb45ef156 Author: HungNien Chen Date: Mon Jun 15 18:57:08 2015 +0300 Input: add a driver for wdt87xx touchscreen controller This is a driver for Weida HiTech WDT87xx series touchscreen controller. Signed-off-by: HungNien Chen Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/Kconfig | 12 + drivers/input/touchscreen/Makefile | 1 + drivers/input/touchscreen/wdt87xx_i2c.c | 1140 +++++++++++++++++++++++++++++++ 3 files changed, 1153 insertions(+) commit eeeee40fcc3f92745639cfb166854656dddeb040 Author: Hans de Goede Date: Wed Jun 24 14:25:54 2015 -0700 Input: axp20x-pek - fix reporting button state as inverted Currently we are reporting the button state as inverted on all boards with an axp209 pmic, tested on a ba10-tvbox, bananapi, bananapro, cubietruck and utoo-p66 tablet. The axp209 datasheet clearly states that the power button must be connected between the PWRON key and ground. Which means that on a press we will get a falling edge (dbf) irq not a rising one, and likewise on release we will get a rising edge (dbr) irq, not a falling one. This commit swaps the check for the 2 irqs fixing the inverted reporting of the power button state. Signed-off-by: Hans de Goede Acked-by: Chen-Yu Tsai Acked-by: Carlo Caione Signed-off-by: Dmitry Torokhov drivers/input/misc/axp20x-pek.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 8c506608c3b2eac939fa244bcdea5faa31818f95 Author: Vitaly Kuznetsov Date: Wed Jun 24 16:02:06 2015 +0200 PM / hibernate: re-enable nonboot cpus on disable_nonboot_cpus() failure When disable_nonboot_cpus() fails on some cpu it doesn't bring back all cpus it managed to offline, a consequent call to enable_nonboot_cpus() is expected. In hibernation_platform_enter() we don't call enable_nonboot_cpus() on error so cpus stay offlined. create_image() and resume_target_kernel() functions handle disable_nonboot_cpus() faults correctly, hibernation_platform_enter() is the only one which is doing it wrong. Signed-off-by: Vitaly Kuznetsov Signed-off-by: Rafael J. Wysocki kernel/power/hibernate.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit a262948335bc5359b82f0ed5ef35f6e82ca44d16 Merge: e3d8238 9f40a51 Author: Linus Torvalds Date: Wed Jun 24 14:46:01 2015 -0700 Merge branch 'sched-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull locking updates from Thomas Gleixner: "These locking updates depend on the alreay merged sched/core branch: - Lockless top waiter wakeup for rtmutex (Davidlohr) - Reduce hash bucket lock contention for PI futexes (Sebastian) - Documentation update (Davidlohr)" * 'sched-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: locking/rtmutex: Update stale plist comments futex: Lower the lock contention on the HB lock during wake up locking/rtmutex: Implement lockless top-waiter wakeup commit 5a5003df98d5a7f6834227885b7c9728f767cc27 Author: Dan Carpenter Date: Wed Jun 24 17:32:33 2015 +0300 btrfs: delayed-ref: double free in btrfs_add_delayed_tree_ref() There is a cut and paste error so instead of freeing "head_ref", we free "ref" twice. Fixes: 3368d001ba5d ('btrfs: qgroup: Record possible quota-related extent for qgroup.') Signed-off-by: Dan Carpenter Signed-off-by: Chris Mason fs/btrfs/delayed-ref.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) commit c181fb3e723351e2f7a1f76b6c0627a4b8ad1723 Author: Alexander Sverdlin Date: Mon Jun 22 22:38:53 2015 +0200 ACPI / OF: Rename of_node() and acpi_node() to to_of_node() and to_acpi_node() Commit 8a0662d9 introduced of_node and acpi_node symbols in global namespace but there were already ~63 of_node local variables or function parameters (no single acpi_node though, but anyway). After debugging undefined but used of_node local varible (which turned out to reference static function of_node() instead) it became clear that the names for the functions are too short and too generic for global scope. Signed-off-by: Alexander Sverdlin Signed-off-by: Rafael J. Wysocki drivers/base/property.c | 26 +++++++++++++------------- drivers/gpio/gpiolib.c | 4 ++-- drivers/leds/leds-gpio.c | 2 +- include/acpi/acpi_bus.h | 2 +- include/linux/acpi.h | 4 ++-- include/linux/of.h | 4 ++-- 6 files changed, 21 insertions(+), 21 deletions(-) commit eddda195dd9272224a8e6112881829ed74ffef5b Author: Borislav Petkov Date: Wed Jun 24 12:01:49 2015 +0200 ACPI / video: Inline acpi_video_set_dmi_backlight_type ... and kill this: In file included from drivers/gpu/drm/radeon/radeon_acpi.c:29:0: include/acpi/video.h:46:13: warning: ‘acpi_video_set_dmi_backlight_type’ defined but not used [-Wunused-function] static void acpi_video_set_dmi_backlight_type(enum acpi_backlight_type type) ^ Signed-off-by: Borislav Petkov Signed-off-by: Rafael J. Wysocki include/acpi/video.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7011bf4eccb63b4f34e4caa37a3a86f59d4031d4 Author: Lv Zheng Date: Fri Jun 19 11:38:22 2015 +0800 ACPICA: Linuxize: Replace __FUNCTION__ with __func__ ACPICA commit cb3d1c79f862cd368d749c9b8d9dced40111b0d0 __FUNCTION__ is MSVC only, in Linux, it is __func__. Lv Zheng. As noted by Christoph Hellwig: "__func__ is in C99 and never. __FUNCTION__ is an old extension supported by various compilers." In ACPICA, this is achieved by string replacement in release script and this patch contains the source code difference between the Linux upstream and ACPICA that is caused by the back porting. Link: https://github.com/acpica/acpica/commit/cb3d1c79 Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/utdebug.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 11f68686065a5634b09b374e988eb82c83a34d24 Merge: 43c9fad 7bc1038 Author: Rafael J. Wysocki Date: Wed Jun 24 19:52:54 2015 +0200 Merge branch 'acpi-pnp' * acpi-pnp: ACPI / resources: free memory on error in add_region_before() commit 7bc10388ccdd79b3d20463151a1f8e7a590a775b Author: Dan Carpenter Date: Wed Jun 24 17:30:15 2015 +0300 ACPI / resources: free memory on error in add_region_before() There is a small memory leak on error. Fixes: 0f1b414d1907 (ACPI / PNP: Avoid conflicting resource reservations) Cc: All applicable Signed-off-by: Dan Carpenter Signed-off-by: Rafael J. Wysocki drivers/acpi/resource.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit e3d8238d7f5c3f539a29f5ac596cd342d847e099 Merge: 4e24155 86dca36 Author: Linus Torvalds Date: Wed Jun 24 10:02:15 2015 -0700 Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux Pull arm64 updates from Catalin Marinas: "Mostly refactoring/clean-up: - CPU ops and PSCI (Power State Coordination Interface) refactoring following the merging of the arm64 ACPI support, together with handling of Trusted (secure) OS instances - Using fixmap for permanent FDT mapping, removing the initial dtb placement requirements (within 512MB from the start of the kernel image). This required moving the FDT self reservation out of the memreserve processing - Idmap (1:1 mapping used for MMU on/off) handling clean-up - Removing flush_cache_all() - not safe on ARM unless the MMU is off. Last stages of CPU power down/up are handled by firmware already - "Alternatives" (run-time code patching) refactoring and support for immediate branch patching, GICv3 CPU interface access - User faults handling clean-up And some fixes: - Fix for VDSO building with broken ELF toolchains - Fix another case of init_mm.pgd usage for user mappings (during ASID roll-over broadcasting) - Fix for FPSIMD reloading after CPU hotplug - Fix for missing syscall trace exit - Workaround for .inst asm bug - Compat fix for switching the user tls tpidr_el0 register" * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (42 commits) arm64: use private ratelimit state along with show_unhandled_signals arm64: show unhandled SP/PC alignment faults arm64: vdso: work-around broken ELF toolchains in Makefile arm64: kernel: rename __cpu_suspend to keep it aligned with arm arm64: compat: print compat_sp instead of sp arm64: mm: Fix freeing of the wrong memmap entries with !SPARSEMEM_VMEMMAP arm64: entry: fix context tracking for el0_sp_pc arm64: defconfig: enable memtest arm64: mm: remove reference to tlb.S from comment block arm64: Do not attempt to use init_mm in reset_context() arm64: KVM: Switch vgic save/restore to alternative_insn arm64: alternative: Introduce feature for GICv3 CPU interface arm64: psci: fix !CONFIG_HOTPLUG_CPU build warning arm64: fix bug for reloading FPSIMD state after CPU hotplug. arm64: kernel thread don't need to save fpsimd context. arm64: fix missing syscall trace exit arm64: alternative: Work around .inst assembler bugs arm64: alternative: Merge alternative-asm.h into alternative.h arm64: alternative: Allow immediate branch as alternative instruction arm64: Rework alternate sequence for ARM erratum 845719 ... commit 4e241557fc1cb560bd9e77ca1b4a9352732a5427 Merge: 08d183e f2ae45e Author: Linus Torvalds Date: Wed Jun 24 09:36:49 2015 -0700 Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm Pull first batch of KVM updates from Paolo Bonzini: "The bulk of the changes here is for x86. And for once it's not for silicon that no one owns: these are really new features for everyone. Details: - ARM: several features are in progress but missed the 4.2 deadline. So here is just a smattering of bug fixes, plus enabling the VFIO integration. - s390: Some fixes/refactorings/optimizations, plus support for 2GB pages. - x86: * host and guest support for marking kvmclock as a stable scheduler clock. * support for write combining. * support for system management mode, needed for secure boot in guests. * a bunch of cleanups required for the above * support for virtualized performance counters on AMD * legacy PCI device assignment is deprecated and defaults to "n" in Kconfig; VFIO replaces it On top of this there are also bug fixes and eager FPU context loading for FPU-heavy guests. - Common code: Support for multiple address spaces; for now it is used only for x86 SMM but the s390 folks also have plans" * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (124 commits) KVM: s390: clear floating interrupt bitmap and parameters KVM: x86/vPMU: Enable PMU handling for AMD PERFCTRn and EVNTSELn MSRs KVM: x86/vPMU: Implement AMD vPMU code for KVM KVM: x86/vPMU: Define kvm_pmu_ops to support vPMU function dispatch KVM: x86/vPMU: introduce kvm_pmu_msr_idx_to_pmc KVM: x86/vPMU: reorder PMU functions KVM: x86/vPMU: whitespace and stylistic adjustments in PMU code KVM: x86/vPMU: use the new macros to go between PMC, PMU and VCPU KVM: x86/vPMU: introduce pmu.h header KVM: x86/vPMU: rename a few PMU functions KVM: MTRR: do not map huge page for non-consistent range KVM: MTRR: simplify kvm_mtrr_get_guest_memory_type KVM: MTRR: introduce mtrr_for_each_mem_type KVM: MTRR: introduce fixed_mtrr_addr_* functions KVM: MTRR: sort variable MTRRs KVM: MTRR: introduce var_mtrr_range KVM: MTRR: introduce fixed_mtrr_segment table KVM: MTRR: improve kvm_mtrr_get_guest_memory_type KVM: MTRR: do not split 64 bits MSR content KVM: MTRR: clean up mtrr default type ... commit 043b43180efee8dcc41dde5ca710827b26d17510 Author: Borislav Petkov Date: Fri Jun 19 11:47:17 2015 +0200 EDAC: Update Documentation/edac.txt Do some initial cleanup, more probably will come. - Move credits section to the end - Update maintainers - Drop sourceforge reference - project is long upstream now - Reformat sections - Reformat paragraphs - Clarify text - Bring it up-to-date - Drop useless "future hardware scanning" section Signed-off-by: Borislav Petkov Documentation/edac.txt | 273 +++++++++++++++++++++++-------------------------- 1 file changed, 130 insertions(+), 143 deletions(-) commit 3aae9edd5a63e226baf3375bb8f7e8d05f5d9098 Author: Rami Rosen Date: Fri Jun 19 09:18:34 2015 +0300 EDAC: Fix typos in Documentation/edac.txt Fix various typos in Documentation/edac.txt. Signed-off-by: Rami Rosen Link: http://lkml.kernel.org/r/1434694714-2924-1-git-send-email-ramirose@gmail.com Signed-off-by: Borislav Petkov Documentation/edac.txt | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit cda9459da736481c6ff7e4368c994b98533a28cc Author: Borislav Petkov Date: Wed Jun 10 16:20:56 2015 +0200 EDAC, mce_amd_inj: Set MISCV on injection When during injection we populate MCi_MISC by writing into misc, we need to set the MiscV bit in the corresponding MCi_STATUS register which denotes that there's valid info in the MCi_MISC register. Signed-off-by: Borislav Petkov drivers/edac/mce_amd_inj.c | 3 +++ 1 file changed, 3 insertions(+) commit 6d1e9bf5b04887a2220fbb44be074e9e8376e332 Author: Borislav Petkov Date: Wed Jun 10 16:17:13 2015 +0200 EDAC, mce_amd_inj: Move bit preparations before the injection We do get_online_cpus() and then start noodling with the bits. Do that *before* we grab the hotplug lock. Signed-off-by: Borislav Petkov drivers/edac/mce_amd_inj.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit f2f3dca1b7a66cbc91f45b59b8606bb325fa869f Author: Borislav Petkov Date: Wed Jun 10 16:09:36 2015 +0200 EDAC, mce_amd_inj: Cleanup and simplify README Save us an indentation level, widen to 80 cols, make the text more succinct and slender. Use i as the bank variable, same as what the documentation uses. Signed-off-by: Borislav Petkov drivers/edac/mce_amd_inj.c | 66 ++++++++++++++++++++++++---------------------- 1 file changed, 35 insertions(+), 31 deletions(-) commit 6f2b6422d4787ffa72bd81abdc1b503dbf87a49a Author: Alan Tull Date: Fri Jun 5 08:49:15 2015 -0500 EDAC, altera: Do not allow suspend when EDAC is enabled Suspend-to-RAM and EDAC support are mutually exclusive on SOCFPGA. If EDAC is enabled, it will prevent the platform from going into suspend. The reason is that the IRQ vectors for OCRAM reside on DDR and in Suspend-to-RAM mode we're executing out of OCRAM. If an ECC error occurs, we can't handle it so it was decided to make them mutually exclusive. Signed-off-by: Alan Tull Signed-off-by: Dinh Nguyen Cc: dinh.linux@gmail.com Cc: dougthompson@xmission.com Cc: linux-edac Cc: mchehab@osg.samsung.com Cc: tthayer@opensource.altera.com Link: http://lkml.kernel.org/r/1433512155-9906-1-git-send-email-dinguyen@opensource.altera.com Signed-off-by: Borislav Petkov drivers/edac/altera_edac.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit de2776787faa6859097a946e32f618f62fbce4c9 Author: kbuild test robot Date: Fri Jun 5 19:24:26 2015 +0800 EDAC, mce_amd_inj: Make inj_type static It is used there only anyway. Signed-off-by: Fengguang Wu Cc: Aravind Gopalakrishnan Cc: Mauro Carvalho Chehab Cc: kbuild-all@01.org Cc: linux-edac Link: http://lkml.kernel.org/r/20150605112426.GA97073@lkp-sb04 Signed-off-by: Borislav Petkov drivers/edac/mce_amd_inj.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 54b4a8f57848bb08dcbdfba94b9b1ddef1c23358 Author: Thor Thayer Date: Thu Jun 4 09:28:48 2015 -0500 arm: socfpga: dts: Add Arria10 SDRAM EDAC DTS support Add support for the Arria10 SDRAM EDAC. Update the bindings document for the new match string. Signed-off-by: Thor Thayer Cc: Arnd Bergmann Cc: devicetree@vger.kernel.org Cc: dinguyen@opensource.altera.com Cc: galak@codeaurora.org Cc: grant.likely@linaro.org Cc: ijc+devicetree@hellion.org.uk Cc: linux-arm-kernel@lists.infradead.org Cc: linux-edac Cc: m.chehab@samsung.com Cc: mark.rutland@arm.com Cc: pawel.moll@arm.com Cc: robh+dt@kernel.org Cc: tthayer.linux@gmail.com Link: http://lkml.kernel.org/r/1433428128-7292-5-git-send-email-tthayer@opensource.altera.com Signed-off-by: Borislav Petkov .../devicetree/bindings/arm/altera/socfpga-sdram-edac.txt | 2 +- arch/arm/boot/dts/socfpga_arria10.dtsi | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) commit 73bcc942f4271fab2ea41e6a3992d3c2164faaa8 Author: Thor Thayer Date: Thu Jun 4 09:28:47 2015 -0500 EDAC, altera: Add Arria10 EDAC support The Arria10 SDRAM and ECC system differs significantly from the Cyclone5 and Arria5 SoCs. This patch adds support for the Arria10 SoC. 1) IRQ handler needs to support SHARED IRQ 2) Support sberr and dberr address reporting. Signed-off-by: Thor Thayer Cc: Arnd Bergmann Cc: devicetree@vger.kernel.org Cc: dinguyen@opensource.altera.com Cc: galak@codeaurora.org Cc: grant.likely@linaro.org Cc: ijc+devicetree@hellion.org.uk Cc: linux-arm-kernel@lists.infradead.org Cc: linux-edac Cc: m.chehab@samsung.com Cc: mark.rutland@arm.com Cc: pawel.moll@arm.com Cc: robh+dt@kernel.org Cc: tthayer.linux@gmail.com Link: http://lkml.kernel.org/r/1433428128-7292-4-git-send-email-tthayer@opensource.altera.com Signed-off-by: Borislav Petkov drivers/edac/altera_edac.c | 135 +++++++++++++++++++++++++++++++++++++++------ drivers/edac/altera_edac.h | 85 ++++++++++++++++++++++++++++ 2 files changed, 204 insertions(+), 16 deletions(-) commit 143f4a5ac5af82a4055100c8f40b26187d5c20ba Author: Thor Thayer Date: Thu Jun 4 09:28:46 2015 -0500 EDAC, altera: Refactor for Altera CycloneV SoC The Arria10 SoC uses a completely different SDRAM controller from the earlier CycloneV and ArriaV SoCs. This patch abstracts the SDRAM bits for the CycloneV/ArriaV SoCs in preparation for the Arria10 support. Signed-off-by: Thor Thayer Cc: Arnd Bergmann Cc: devicetree@vger.kernel.org Cc: dinguyen@opensource.altera.com Cc: galak@codeaurora.org Cc: grant.likely@linaro.org Cc: ijc+devicetree@hellion.org.uk Cc: linux-arm-kernel@lists.infradead.org Cc: linux-edac Cc: m.chehab@samsung.com Cc: mark.rutland@arm.com Cc: pawel.moll@arm.com Cc: robh+dt@kernel.org Cc: tthayer.linux@gmail.com Link: http://lkml.kernel.org/r/1433428128-7292-3-git-send-email-tthayer@opensource.altera.com Signed-off-by: Borislav Petkov drivers/edac/altera_edac.c | 194 +++++++++++++++++++++------------------------ drivers/edac/altera_edac.h | 116 +++++++++++++++++++++++++++ 2 files changed, 206 insertions(+), 104 deletions(-) commit f9ae487e04370e229a96c83a8c86510299712192 Author: Thor Thayer Date: Thu Jun 4 09:28:45 2015 -0500 EDAC, altera: Generalize driver to use DT Memory size The Arria10 SOC uses a completely different SDRAM controller from the earlier CycloneV and ArriaV SoCs. The memory size is calculated in the bootloader and passed via the device tree. Using this device tree size is more generic than using the register fields to calculate the memory size for different SDRAM controllers. Signed-off-by: Thor Thayer Cc: Arnd Bergmann Cc: devicetree@vger.kernel.org Cc: dinguyen@opensource.altera.com Cc: galak@codeaurora.org Cc: grant.likely@linaro.org Cc: ijc+devicetree@hellion.org.uk Cc: linux-arm-kernel@lists.infradead.org Cc: linux-edac Cc: m.chehab@samsung.com Cc: mark.rutland@arm.com Cc: pawel.moll@arm.com Cc: robh+dt@kernel.org Cc: tthayer.linux@gmail.com Link: http://lkml.kernel.org/r/1433428128-7292-2-git-send-email-tthayer@opensource.altera.com Signed-off-by: Borislav Petkov drivers/edac/altera_edac.c | 58 +++++++++++++++++++++------------------------- 1 file changed, 26 insertions(+), 32 deletions(-) commit 99e21fea47f425f65f727c96ed8b64a7ac18e5cb Author: Aravind Gopalakrishnan Date: Wed Jun 3 17:13:58 2015 +0200 EDAC, mce_amd_inj: Add README file Provide information about each injection file and its usage for ease of use and in-band documentation. This is a good idea adapted from ftrace. Signed-off-by: Aravind Gopalakrishnan Cc: linux-edac Cc: mchehab@osg.samsung.com Cc: Steven Rostedt Cc: x86-ml Link: http://lkml.kernel.org/r/1433277362-10911-7-git-send-email-Aravind.Gopalakrishnan@amd.com Signed-off-by: Borislav Petkov drivers/edac/mce_amd_inj.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) commit 08d183e3c1f650b4db1d07d764502116861542fa Merge: 4b1f2af 6096f88 Author: Linus Torvalds Date: Wed Jun 24 08:46:32 2015 -0700 Merge tag 'powerpc-4.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mpe/linux Pull powerpc updates from Michael Ellerman: - disable the 32-bit vdso when building LE, so we can build with a 64-bit only toolchain. - EEH fixes from Gavin & Richard. - enable the sys_kcmp syscall from Laurent. - sysfs control for fastsleep workaround from Shreyas. - expose OPAL events as an irq chip by Alistair. - MSI ops moved to pci_controller_ops by Daniel. - fix for kernel to userspace backtraces for perf from Anton. - merge pseries and pseries_le defconfigs from Cyril. - CXL in-kernel API from Mikey. - OPAL prd driver from Jeremy. - fix for DSCR handling & tests from Anshuman. - Powernv flash mtd driver from Cyril. - dynamic DMA Window support on powernv from Alexey. - LLVM clang fixes & workarounds from Anton. - reworked version of the patch to abort syscalls when transactional. - fix the swap encoding to support 4TB, from Aneesh. - various fixes as usual. - Freescale updates from Scott: Highlights include more 8xx optimizations, an e6500 hugetlb optimization, QMan device tree nodes, t1024/t1023 support, and various fixes and cleanup. * tag 'powerpc-4.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mpe/linux: (180 commits) cxl: Fix typo in debug print cxl: Add CXL_KERNEL_API config option powerpc/powernv: Fix wrong IOMMU table in pnv_ioda_setup_bus_dma() powerpc/mm: Change the swap encoding in pte. powerpc/mm: PTE_RPN_MAX is not used, remove the same powerpc/tm: Abort syscalls in active transactions powerpc/iommu/ioda2: Enable compile with IOV=on and IOMMU_API=off powerpc/include: Add opal-prd to installed uapi headers powerpc/powernv: fix construction of opal PRD messages powerpc/powernv: Increase opal-irqchip initcall priority powerpc: Make doorbell check preemption safe powerpc/powernv: pnv_init_idle_states() should only run on powernv macintosh/nvram: Remove as unused powerpc: Don't use gcc specific options on clang powerpc: Don't use -mno-strict-align on clang powerpc: Only use -mtraceback=no, -mno-string and -msoft-float if toolchain supports it powerpc: Only use -mabi=altivec if toolchain supports it powerpc: Fix duplicate const clang warning in user access code vfio: powerpc/spapr: Support Dynamic DMA windows vfio: powerpc/spapr: Register memory and define IOMMU v2 ... commit 4b1f2af6752a4cc9acc1c22ddf3842478965f113 Merge: aaa6448 7fc611f Author: Linus Torvalds Date: Wed Jun 24 08:45:27 2015 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux Pull s390 updates from Martin Schwidefsky: "Pretty boring for a merge window pull. One change in behaviour is the patch for dasd driver, the module which provides the diagnose discipline is now loaded automatically. The SCLP code got a nice cleanup, a new global structure replaces a bunch of accessor functions. And a couple of random, small improvements" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: s390/pci: improve handling of hotplug event 0x301 s390/setup: fix DMA_API_DEBUG warnings s390/zcrypt: remove obsolete __constant s390/keyboard: avoid off-by-one when using strnlen_user() s390/sclp: pass timeout as HZ independent value s390/mm: s/specifiation/specification/, s/an specification/a specification/ s390/sclp: Use DECLARE_BITMAP s390/dasd: Enable automatic loading of dasd_diag_mod s390/sclp: move sclp_facilities into "struct sclp" s390/sclp: get rid of sclp_get_mtid() and sclp_get_mtid_max() s390/sclp: unify basic sclp access by exposing "struct sclp" s390/sclp: prepare smp_fill_possible_mask for global "struct sclp" commit aaa64485267c14e79382fbf7f4b0689a5de94fe9 Merge: 6eae81a c4fa9a6 Author: Linus Torvalds Date: Wed Jun 24 08:44:40 2015 -0700 Merge tag 'microblaze-4.2-rc1' of git://git.monstr.eu/linux-2.6-microblaze Pull Microblaze updates from Michal Simek: - some PCI fixups - add new MB versions - sparse fixups * tag 'microblaze-4.2-rc1' of git://git.monstr.eu/linux-2.6-microblaze: microblaze/PCI: Remove unnecessary struct pci_dev declaration microblaze/PCI: Remove unnecessary pci_bus_find_capability() declaration microblaze/PCI: Remove unused declarations microblaze: Label local function static microblaze: Add missing release version code commit 97ba375b5df43790aa82c256f7f16ee8eb95c272 Author: Peng Tao Date: Tue Jun 23 19:52:04 2015 +0800 pnfs/flexfiles: report layoutstat regularly As a simple scheme, report every minute if IO is still going on. Reviewed-by: Jeff Layton Signed-off-by: Peng Tao Signed-off-by: Trond Myklebust fs/nfs/flexfilelayout/flexfilelayout.c | 27 +++++++++++++++++++++++---- fs/nfs/flexfilelayout/flexfilelayout.h | 6 +++++- 2 files changed, 28 insertions(+), 5 deletions(-) commit 1bfe3b259ff2e579b2acb190f874397d53274497 Author: Peng Tao Date: Tue Jun 23 19:52:03 2015 +0800 nfs42: serialize LAYOUTSTATS calls of the same file There is no need to report concurrently. Reviewed-by: Jeff Layton Signed-off-by: Peng Tao Signed-off-by: Trond Myklebust fs/nfs/nfs42proc.c | 3 +++ fs/nfs/pnfs.c | 7 +++++++ include/linux/nfs_fs.h | 1 + 3 files changed, 11 insertions(+) commit 27c430644369ccd9a2272492ba6d0e85e2e4800b Author: Peng Tao Date: Tue Jun 23 19:52:02 2015 +0800 pnfs/flexfiles: encode LAYOUTSTATS flexfiles specific data Reviewed-by: Jeff Layton Signed-off-by: Peng Tao Signed-off-by: Trond Myklebust fs/nfs/flexfilelayout/flexfilelayout.c | 178 ++++++++++++++++++++++++++++++++- fs/nfs/flexfilelayout/flexfilelayout.h | 1 + 2 files changed, 177 insertions(+), 2 deletions(-) commit ad4dc53e6496ba0b3c18aeda6f3367d9800b6ebf Author: Peng Tao Date: Tue Jun 23 19:52:01 2015 +0800 pnfs/flexfiles: add ff_layout_prepare_layoutstats It fills in the generic part of LAYOUTSTATS call. One thing to note is that we don't really track if IO is continuous or not. So just fake to use the completed bytes for it. Still missing flexfiles specific part, which will be included in the next patch. Reviewed-by: Jeff Layton Signed-off-by: Peng Tao Signed-off-by: Trond Myklebust fs/nfs/flexfilelayout/flexfilelayout.c | 71 ++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) commit d983803d3818a7aef3200147c72a45f573d84537 Author: Peng Tao Date: Tue Jun 23 19:52:00 2015 +0800 pNFS/flexfiles: track when layout is first used So that we can report cumulative time since the beginning of statistics collection of the layout. Reviewed-by: Jeff Layton Signed-off-by: Peng Tao Signed-off-by: Trond Myklebust fs/nfs/flexfilelayout/flexfilelayout.c | 10 +++++++--- fs/nfs/flexfilelayout/flexfilelayout.h | 1 + 2 files changed, 8 insertions(+), 3 deletions(-) commit abcb7bfc9fdecd1550b98a5e13d40bfba6c0649b Author: Trond Myklebust Date: Tue Jun 23 19:51:59 2015 +0800 pNFS/flexfiles: add layoutstats tracking Reviewed-by: Jeff Layton Signed-off-by: Trond Myklebust fs/nfs/flexfilelayout/flexfilelayout.c | 192 +++++++++++++++++++++++++++++++-- fs/nfs/flexfilelayout/flexfilelayout.h | 22 ++++ 2 files changed, 203 insertions(+), 11 deletions(-) commit 98f57c5196f7a1f681246858f5860c1120d01ca9 Author: Selvan Mani Date: Wed Jun 24 08:48:46 2015 -0600 mtip32xx: Fix accessing freed memory In mtip_pci_remove(), driver data 'dd' is accessed after freeing it. This is a residue of SRSI code cleanup in the patch 016a41c38821 "mtip32xx: fix crash on surprise removal of the drive". Removed the bit flags MTIP_DDF_REMOVE_DONE_BIT and MTIP_PF_SR_CLEANUP_BIT. Reported-by: Julia Lawall Signed-off-by: Vignesh Gunasekaran Signed-off-by: Selvan Mani Signed-off-by: Asai Thambi S P Signed-off-by: Jens Axboe drivers/block/mtip32xx/mtip32xx.c | 19 ------------------- drivers/block/mtip32xx/mtip32xx.h | 2 -- 2 files changed, 21 deletions(-) commit 27797d1bb36bf9e21fa14094f23ab785b442bd76 Author: Trond Myklebust Date: Tue Jun 23 19:51:58 2015 +0800 pNFS/flexfiles: Remove unused struct members user_name, group_name Reviewed-by: Jeff Layton Signed-off-by: Trond Myklebust fs/nfs/flexfilelayout/flexfilelayout.h | 2 -- 1 file changed, 2 deletions(-) commit 8733408d6ed713d080c325262d7b51a780136d41 Author: Peng Tao Date: Tue Jun 23 19:51:57 2015 +0800 pnfs: add pnfs_report_layoutstat helper function Reviewed-by: Jeff Layton Signed-off-by: Peng Tao Signed-off-by: Trond Myklebust fs/nfs/nfs42proc.c | 4 ++++ fs/nfs/pnfs.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ fs/nfs/pnfs.h | 3 +++ 3 files changed, 56 insertions(+) commit 1b4a4bd82c308aed36f13fff4beb33d3840cfa0e Author: Peng Tao Date: Tue Jun 23 19:51:56 2015 +0800 pNFS: fill in nfs42_layoutstat_ops Reviewed-by: Jeff Layton Signed-off-by: Peng Tao Signed-off-by: Trond Myklebust fs/nfs/nfs42proc.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) commit be3a5d233922d73f27002ce2767f6ec03c3f473d Author: Trond Myklebust Date: Tue Jun 23 19:51:55 2015 +0800 NFSv.2/pnfs Add a LAYOUTSTATS rpc function Reviewed-by: Jeff Layton Signed-off-by: Trond Myklebust Signed-off-by: Peng Tao Signed-off-by: Trond Myklebust fs/nfs/nfs42.h | 9 +++- fs/nfs/nfs42proc.c | 27 +++++++++++ fs/nfs/nfs42xdr.c | 122 ++++++++++++++++++++++++++++++++++++++++++++++++ fs/nfs/nfs4_fs.h | 1 + fs/nfs/nfs4proc.c | 4 +- fs/nfs/nfs4xdr.c | 1 + include/linux/nfs4.h | 1 + include/linux/nfs_xdr.h | 43 +++++++++++++++++ 8 files changed, 205 insertions(+), 3 deletions(-) commit 4c6034e8e1924b00bbe2c26e22c0b85c69709c99 Author: Aravind Gopalakrishnan Date: Tue Jun 2 15:35:58 2015 -0500 EDAC, mce_amd_inj: Add individual permissions field to dfs_node Add per-file permissions to the dfs_fls[] array. In a later patch, we will add a README file that needs different permissions. Hence the move here to add a perm field. Signed-off-by: Aravind Gopalakrishnan Cc: linux-edac Cc: mchehab@osg.samsung.com Cc: x86-ml Link: http://lkml.kernel.org/r/1433277362-10911-6-git-send-email-Aravind.Gopalakrishnan@amd.com Signed-off-by: Borislav Petkov drivers/edac/mce_amd_inj.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) commit 9ff897c4e8d5bd05ad7009f84a395596d4953858 Author: Markos Chandras Date: Mon Apr 20 10:54:34 2015 +0100 MIPS: spinlock: Adjust arch_spin_lock back-off time Make it similar to the trylock and R10000_LLSC_WAR cases. Signed-off-by: Markos Chandras Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/9789/ Signed-off-by: Ralf Baechle arch/mips/include/asm/spinlock.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2bd7bc254ab1f45269db6dd7957d63b713817408 Author: Markos Chandras Date: Thu Apr 16 11:05:59 2015 +0100 MIPS: asmmacro: Ensure 64-bit FP registers are used with MSA This silences warnings like the following one when building with the latest binutils: arch/mips/kernel/genex.S: Assembler messages: arch/mips/kernel/genex.S:438: Warning: the `msa' extension requires 64-bit FPRs [ralf@linux-mips.org: Markos says binutils 2.25 and some 2.24 snapshots are affected.] Signed-off-by: Markos Chandras Reviewed-by: James Hogan Cc: Paul Burton Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/9745/ Signed-off-by: Ralf Baechle arch/mips/include/asm/asmmacro.h | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 1ea2d020ba477cb7011a7174e8501a9e04a325d4 Author: Nikolay Aleksandrov Date: Tue Jun 23 05:28:16 2015 -0700 bridge: vlan: flush the dynamically learned entries on port vlan delete Add a new argument to br_fdb_delete_by_port which allows to specify a vid to match when flushing entries and use it in nbp_vlan_delete() to flush the dynamically learned entries of the vlan/port pair when removing a vlan from a port. Before this patch only the local mac was being removed and the dynamically learned ones were left to expire. Note that the do_all argument is still respected and if specified, the vid will be ignored. Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller net/bridge/br_fdb.c | 7 +++++-- net/bridge/br_if.c | 4 ++-- net/bridge/br_private.h | 2 +- net/bridge/br_stp_if.c | 2 +- net/bridge/br_sysfs_if.c | 2 +- net/bridge/br_vlan.c | 1 + 6 files changed, 11 insertions(+), 7 deletions(-) commit 9aa66382163e784acac0ce3580ed202d9a56d1ac Author: Nikolay Aleksandrov Date: Tue Jun 23 04:47:44 2015 -0700 bridge: multicast: add a comment to br_port_state_selection about blocking state Add a comment to explain why we're not disabling port's multicast when it goes in blocking state. Since there's a check in the timer's function which bypasses the timer if the port's in blocking/disabled state, the timer will simply expire and stop without sending more queries. Suggested-by: Herbert Xu Signed-off-by: Nikolay Aleksandrov Acked-by: Herbert Xu Signed-off-by: David S. Miller net/bridge/br_stp.c | 4 ++++ 1 file changed, 4 insertions(+) commit faebbd8f134f0c054f372982c8ddd1bbcc41b440 Author: Mauro Carvalho Chehab Date: Tue Jun 23 12:29:46 2015 -0300 [media] lmedm04: fix the range for relative measurements Relative measurements are typically between 0 and 0xffff. However, for some tuners (TUNER_S7395 and TUNER_S0194), the range were from 0 to 0xff00, with means that 100% is never archived. Also, TUNER_RS2000 uses a more complex math. So, create a macro that does the conversion using bit operations and use it for all conversions. The code is also easier to read with is a bonus. While here, remove a bogus comment. Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/dvb-usb-v2/lmedm04.c | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) commit 5ae65db547f3a9887d4edfa2c272879a72fd4f5f Author: Mauro Carvalho Chehab Date: Tue Jun 23 12:22:06 2015 -0300 [media] lmedm04: use u32 instead of u64 for relative stats Cleanup this sparse warning: drivers/media/usb/dvb-usb-v2/lmedm04.c:302 lme2510_update_stats() warn: should '((255 - st->signal_sn - 161) * 3) << 8' be a 64 bit type? Both c_tmp and s_tmp actually stores a u16 stat. Using a u64 data there is a waste, specially on u32 archs, as 64 ints there are more expensive. So, change the types to u32 and do the typecast only when storing the result. Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/dvb-usb-v2/lmedm04.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 7fd6bd9df1868983ce59ca8fd5d796c5b63100a5 Author: Mauro Carvalho Chehab Date: Tue Jun 23 10:23:43 2015 -0300 [media] omap3isp: remove unused var drivers/media/platform/omap3isp/isppreview.c:932:6: warning: variable ‘features’ set but not used [-Wunused-but-set-variable] Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/omap3isp/isppreview.c | 4 ---- 1 file changed, 4 deletions(-) commit 816de50d35743088f18e0da9e03e3347c768b7a2 Author: Mauro Carvalho Chehab Date: Mon Jun 22 16:40:39 2015 -0300 [media] saa7134: fix page size on some archs On some archs, like tile, the PAGE_SIZE is not 4K. In the case of tile arch, it can be either 16KB or 64KB. Due to that, a warning is produced: drivers/media/pci/saa7134/saa7134.h:678:43: warning: large integer implicitly truncated to unsigned type [-Woverflow] This is actually an error, as it will write trach to the DMA size registers. The logic at saa7134-ts already does the right thing: saa_writeb(SAA7134_TS_DMA0, ((dev->ts.nr_packets-1)&0xff)); saa_writeb(SAA7134_TS_DMA1, (((dev->ts.nr_packets-1)>>8)&0xff)); /* TSNOPIT=0, TSCOLAP=0 */ saa_writeb(SAA7134_TS_DMA2, ((((dev->ts.nr_packets-1)>>16)&0x3f) | 0x00)); So, fix the driver to take larger page sizes into account. Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/saa7134/saa7134-go7007.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 846793b3f926da8224f15c438043f08dd5f11882 Author: Mauro Carvalho Chehab Date: Mon Jun 22 16:32:53 2015 -0300 [media] use CONFIG_PM_SLEEP for suspend/resume Using CONFIG_PM_SLEEP suppress the warnings when the driver is compiled without PM sleep functions: drivers/media/rc/st_rc.c:338:12: warning: ‘st_rc_suspend’ defined but not used [-Wunused-function] drivers/media/rc/st_rc.c:359:12: warning: ‘st_rc_resume’ defined but not used [-Wunused-function] Signed-off-by: Mauro Carvalho Chehab Acked-by: Maxime Coquelin drivers/media/rc/st_rc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 32c848e33ace75fce388cceff76223d12b46eaa3 Author: Krzysztof Kozlowski Date: Wed Jun 24 19:48:43 2015 +0900 regulator: s2mps11: Fix GPIO suspend enable shift wrapping bug Status of enabling suspend mode for regulator was stored in bitmap-like long integer. However since adding support for S2MPU02 the number of regulators exceeded 32 so on devices with more than 32 regulators (S2MPU02 and S2MPS13) overflow happens when shifting the bit. This could lead to enabling suspend mode for completely different regulator than intended or to switching different regulator to other mode (e.g. from always enabled to controlled by PWRHOLD pin). Both cases could result in larger energy usage and issues when suspending to RAM. Fixes: 00e2573d2c10 ("regulator: s2mps11: Add support S2MPU02 regulator device") Reported-by: Dan Carpenter Signed-off-by: Krzysztof Kozlowski Signed-off-by: Mark Brown Cc: drivers/regulator/s2mps11.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) commit 3a07bd6fead4f00f67b1bf5f551e686661c4f52c Merge: 2046215 f159067 Author: David S. Miller Date: Wed Jun 24 02:58:51 2015 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Conflicts: drivers/net/ethernet/mellanox/mlx4/main.c net/packet/af_packet.c Both conflicts were cases of simple overlapping changes. Signed-off-by: David S. Miller commit a8955cc3a504e43ecd606e9f0d9bc25de240aacb Author: Ley Foon Tan Date: Wed Jun 24 17:52:44 2015 +0800 nios2: check number of timer instances Display error message if number of timers is less than 2. Signed-off-by: Ley Foon Tan arch/nios2/kernel/time.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) commit 204621551b2a0060a013b92f7add4d5c452fa7cb Author: Phil Sutter Date: Wed Jun 24 11:02:51 2015 +0200 net: inet_diag: export IPV6_V6ONLY sockopt For AF_INET6 sockets, the value of struct ipv6_pinfo.ipv6only is exported to userspace. It indicates whether a socket bound to in6addr_any listens on IPv4 as well as IPv6. Since the socket is natively IPv6, it is not listed by e.g. 'ss -l -4'. This patch is accompanied by an appropriate one for iproute2 to enable the additional information in 'ss -e'. Signed-off-by: Phil Sutter Signed-off-by: David S. Miller include/uapi/linux/inet_diag.h | 3 ++- net/ipv4/inet_diag.c | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) commit f1590670ce069eefeb93916391a67643e6ad1630 Author: Alexey Brodkin Date: Wed Jun 24 11:47:41 2015 +0300 stmmac: troubleshoot unexpected bits in des0 & des1 Current implementation of descriptor init procedure only takes care about setting/clearing ownership flag in "des0"/"des1" fields while it is perfectly possible to get unexpected bits set because of the following factors: [1] On driver probe underlying memory allocated with dma_alloc_coherent() might not be zeroed and so it will be filled with garbage. [2] During driver operation some bits could be set by SD/MMC controller (for example error flags etc). And unexpected and/or randomly set flags in "des0"/"des1" fields may lead to unpredictable behavior of GMAC DMA block. This change addresses both items above with: [1] Use of dma_zalloc_coherent() instead of simple dma_alloc_coherent() to make sure allocated memory is zeroed. That shouldn't affect performance because this allocation only happens once on driver probe. [2] Do explicit zeroing of both "des0" and "des1" fields of all buffer descriptors during initialization of DMA transfer. And while at it fixed identation of dma_free_coherent() counterpart as well. Signed-off-by: Alexey Brodkin Cc: Giuseppe Cavallaro Cc: arc-linux-dev@synopsys.com Cc: linux-kernel@vger.kernel.org Cc: stable@vger.kernel.org Cc: David Miller Signed-off-by: David S. Miller drivers/net/ethernet/stmicro/stmmac/descs.h | 2 ++ drivers/net/ethernet/stmicro/stmmac/enh_desc.c | 3 +- drivers/net/ethernet/stmicro/stmmac/norm_desc.c | 3 +- drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 44 +++++++++++------------ 4 files changed, 28 insertions(+), 24 deletions(-) commit f389a40ec30f1c6c63eb61ec104d7c9886e1109a Merge: 5c8079d 0eeb075 Author: David S. Miller Date: Wed Jun 24 02:16:03 2015 -0700 Merge branch 'ipv4-nexthop-link-status' Andy Gospodarek says: ==================== changes to make ipv4 routing table aware of next-hop link status This series adds the ability to have the Linux kernel track whether or not a particular route should be used based on the link-status of the interface associated with the next-hop. Before this patch any link-failure on an interface that was serving as a gateway for some systems could result in those systems being isolated from the rest of the network as the stack would continue to attempt to send frames out of an interface that is actually linked-down. When the kernel is responsible for all forwarding, it should also be responsible for taking action when the traffic can no longer be forwarded -- there is no real need to outsource link-monitoring to userspace anymore. This feature is only enabled with the new per-interface or ipv4 global sysctls called 'ignore_routes_with_linkdown'. net.ipv4.conf.all.ignore_routes_with_linkdown = 0 net.ipv4.conf.default.ignore_routes_with_linkdown = 0 net.ipv4.conf.lo.ignore_routes_with_linkdown = 0 ... When the above sysctls are set, the kernel will not only report to userspace that the link is down, but it will also report to userspace that a route is dead. This will signal to userspace that the route will not be selected. With the new sysctls set, the following behavior can be observed (interface p8p1 is link-down): default via 10.0.5.2 dev p9p1 10.0.5.0/24 dev p9p1 proto kernel scope link src 10.0.5.15 70.0.0.0/24 dev p7p1 proto kernel scope link src 70.0.0.1 80.0.0.0/24 dev p8p1 proto kernel scope link src 80.0.0.1 dead linkdown 90.0.0.0/24 via 80.0.0.2 dev p8p1 metric 1 dead linkdown 90.0.0.0/24 via 70.0.0.2 dev p7p1 metric 2 90.0.0.1 via 70.0.0.2 dev p7p1 src 70.0.0.1 cache local 80.0.0.1 dev lo src 80.0.0.1 cache 80.0.0.2 via 10.0.5.2 dev p9p1 src 10.0.5.15 cache While the route does remain in the table (so it can be modified if needed rather than being wiped away as it would be if IFF_UP was cleared), the proper next-hop is chosen automatically when the link is down. Now interface p8p1 is linked-up: default via 10.0.5.2 dev p9p1 10.0.5.0/24 dev p9p1 proto kernel scope link src 10.0.5.15 70.0.0.0/24 dev p7p1 proto kernel scope link src 70.0.0.1 80.0.0.0/24 dev p8p1 proto kernel scope link src 80.0.0.1 90.0.0.0/24 via 80.0.0.2 dev p8p1 metric 1 90.0.0.0/24 via 70.0.0.2 dev p7p1 metric 2 192.168.56.0/24 dev p2p1 proto kernel scope link src 192.168.56.2 90.0.0.1 via 80.0.0.2 dev p8p1 src 80.0.0.1 cache local 80.0.0.1 dev lo src 80.0.0.1 cache 80.0.0.2 dev p8p1 src 80.0.0.1 cache and the output changes to what one would expect. If the global or interface sysctl is not set, the following output would be expected when p8p1 is down: default via 10.0.5.2 dev p9p1 10.0.5.0/24 dev p9p1 proto kernel scope link src 10.0.5.15 70.0.0.0/24 dev p7p1 proto kernel scope link src 70.0.0.1 80.0.0.0/24 dev p8p1 proto kernel scope link src 80.0.0.1 linkdown 90.0.0.0/24 via 80.0.0.2 dev p8p1 metric 1 linkdown 90.0.0.0/24 via 70.0.0.2 dev p7p1 metric 2 If the dead flag does not appear there should be no expectation that the kernel would skip using this route due to link being down. v2: Split kernel changes into 2 patches: first to add linkdown flag and second to add new sysctl settings. Also took suggestion from Alex to simplify code by only checking sysctl during fib lookup and suggestion from Scott to add a per-interface sysctl. Added iproute2 patch to recognize and print linkdown flag. v3: Code cleanups along with reverse-path checks suggested by Alex and small fixes related to problems found when multipath was disabled. v4: Drop binary sysctls v5: Whitespace and variable declaration fixups suggested by Dave v6: Style changes noticed by Dave and checkpath suggestions. v7: Last checkpatch fixup. Though there were some that preferred not to have a configuration option and to make this behavior the default when it was discussed in Ottawa earlier this year since "it was time to do this." I wanted to propose the config option to preserve the current behavior for those that desire it. I'll happily remove it if Dave and Linus approve. An IPv6 implementation is also needed (DECnet too!), but I wanted to start with the IPv4 implementation to get people comfortable with the idea before moving forward. If this is accepted the IPv6 implementation can be posted shortly. There was also a request for switchdev support for this, but that will be posted as a followup as switchdev does not currently handle dead next-hops in a multi-path case and I felt that infra needed to be added first. FWIW, we have been running the original version of this series with a global sysctl and our customers have been happily using a backported version for IPv4 and IPv6 for >6 months. ==================== Signed-off-by: David S. Miller commit 0eeb075fad736fb92620af995c47c204bbb5e829 Author: Andy Gospodarek Date: Tue Jun 23 13:45:37 2015 -0400 net: ipv4 sysctl option to ignore routes when nexthop link is down This feature is only enabled with the new per-interface or ipv4 global sysctls called 'ignore_routes_with_linkdown'. net.ipv4.conf.all.ignore_routes_with_linkdown = 0 net.ipv4.conf.default.ignore_routes_with_linkdown = 0 net.ipv4.conf.lo.ignore_routes_with_linkdown = 0 ... When the above sysctls are set, will report to userspace that a route is dead and will no longer resolve to this nexthop when performing a fib lookup. This will signal to userspace that the route will not be selected. The signalling of a RTNH_F_DEAD is only passed to userspace if the sysctl is enabled and link is down. This was done as without it the netlink listeners would have no idea whether or not a nexthop would be selected. The kernel only sets RTNH_F_DEAD internally if the interface has IFF_UP cleared. With the new sysctl set, the following behavior can be observed (interface p8p1 is link-down): default via 10.0.5.2 dev p9p1 10.0.5.0/24 dev p9p1 proto kernel scope link src 10.0.5.15 70.0.0.0/24 dev p7p1 proto kernel scope link src 70.0.0.1 80.0.0.0/24 dev p8p1 proto kernel scope link src 80.0.0.1 dead linkdown 90.0.0.0/24 via 80.0.0.2 dev p8p1 metric 1 dead linkdown 90.0.0.0/24 via 70.0.0.2 dev p7p1 metric 2 90.0.0.1 via 70.0.0.2 dev p7p1 src 70.0.0.1 cache local 80.0.0.1 dev lo src 80.0.0.1 cache 80.0.0.2 via 10.0.5.2 dev p9p1 src 10.0.5.15 cache While the route does remain in the table (so it can be modified if needed rather than being wiped away as it would be if IFF_UP was cleared), the proper next-hop is chosen automatically when the link is down. Now interface p8p1 is linked-up: default via 10.0.5.2 dev p9p1 10.0.5.0/24 dev p9p1 proto kernel scope link src 10.0.5.15 70.0.0.0/24 dev p7p1 proto kernel scope link src 70.0.0.1 80.0.0.0/24 dev p8p1 proto kernel scope link src 80.0.0.1 90.0.0.0/24 via 80.0.0.2 dev p8p1 metric 1 90.0.0.0/24 via 70.0.0.2 dev p7p1 metric 2 192.168.56.0/24 dev p2p1 proto kernel scope link src 192.168.56.2 90.0.0.1 via 80.0.0.2 dev p8p1 src 80.0.0.1 cache local 80.0.0.1 dev lo src 80.0.0.1 cache 80.0.0.2 dev p8p1 src 80.0.0.1 cache and the output changes to what one would expect. If the sysctl is not set, the following output would be expected when p8p1 is down: default via 10.0.5.2 dev p9p1 10.0.5.0/24 dev p9p1 proto kernel scope link src 10.0.5.15 70.0.0.0/24 dev p7p1 proto kernel scope link src 70.0.0.1 80.0.0.0/24 dev p8p1 proto kernel scope link src 80.0.0.1 linkdown 90.0.0.0/24 via 80.0.0.2 dev p8p1 metric 1 linkdown 90.0.0.0/24 via 70.0.0.2 dev p7p1 metric 2 Since the dead flag does not appear, there should be no expectation that the kernel would skip using this route due to link being down. v2: Split kernel changes into 2 patches, this actually makes a behavioral change if the sysctl is set. Also took suggestion from Alex to simplify code by only checking sysctl during fib lookup and suggestion from Scott to add a per-interface sysctl. v3: Code clean-ups to make it more readable and efficient as well as a reverse path check fix. v4: Drop binary sysctl v5: Whitespace fixups from Dave v6: Style changes from Dave and checkpatch suggestions v7: One more checkpatch fixup Signed-off-by: Andy Gospodarek Signed-off-by: Dinesh Dutt Acked-by: Scott Feldman Signed-off-by: David S. Miller include/linux/inetdevice.h | 3 +++ include/net/fib_rules.h | 3 ++- include/net/ip_fib.h | 16 +++++++++------- include/uapi/linux/ip.h | 1 + net/ipv4/devinet.c | 2 ++ net/ipv4/fib_frontend.c | 6 +++--- net/ipv4/fib_rules.c | 5 +++-- net/ipv4/fib_semantics.c | 33 ++++++++++++++++++++++++++++----- net/ipv4/fib_trie.c | 6 ++++++ net/ipv4/netfilter/ipt_rpfilter.c | 2 +- net/ipv4/route.c | 10 +++++----- 11 files changed, 63 insertions(+), 24 deletions(-) commit 8a3d03166f19329b46c6f9e900f93a89f446077b Author: Andy Gospodarek Date: Tue Jun 23 13:45:36 2015 -0400 net: track link-status of ipv4 nexthops Add a fib flag called RTNH_F_LINKDOWN to any ipv4 nexthops that are reachable via an interface where carrier is off. No action is taken, but additional flags are passed to userspace to indicate carrier status. This also includes a cleanup to fib_disable_ip to more clearly indicate what event made the function call to replace the more cryptic force option previously used. v2: Split out kernel functionality into 2 patches, this patch simply sets and clears new nexthop flag RTNH_F_LINKDOWN. v3: Cleanups suggested by Alex as well as a bug noticed in fib_sync_down_dev and fib_sync_up when multipath was not enabled. v5: Whitespace and variable declaration fixups suggested by Dave. v6: Style fixups noticed by Dave; ran checkpatch to be sure I got them all. Signed-off-by: Andy Gospodarek Signed-off-by: Dinesh Dutt Acked-by: Scott Feldman Signed-off-by: David S. Miller include/net/ip_fib.h | 4 +-- include/uapi/linux/rtnetlink.h | 3 +++ net/ipv4/fib_frontend.c | 23 ++++++++++------ net/ipv4/fib_semantics.c | 60 +++++++++++++++++++++++++++++++++--------- 4 files changed, 67 insertions(+), 23 deletions(-) commit 5d6bed2a9c8bc161bff4cc7cede00f2e0e27a7e7 Author: Russell King Date: Mon Jun 22 18:39:43 2015 +0100 ARM: dove: fix legacy dove IRQ numbers v3.18 changed handle_IRQ() to call __handle_domain_irq(), which now rejects attempts to deliver IRQ0. Since IRQ 0 is used as the timer interrupt (just like the PIT on x86), this causes boot to fail as the bogomips calibration never completes. Fix this by shuffling all interrupts up by one. Fixes: a71b092a9c68 ("ARM: Convert handle_IRQ to use __handle_domain_irq") Signed-off-by: Russell King Signed-off-by: Gregory CLEMENT arch/arm/mach-dove/include/mach/irqs.h | 118 ++++++++++++++++----------------- arch/arm/mach-dove/irq.c | 8 +-- 2 files changed, 63 insertions(+), 63 deletions(-) commit 002af195a8c720ca47c7884fd0390f3b327423b9 Author: Guenter Roeck Date: Tue Jun 23 20:49:05 2015 -0700 ARM: Fix build if CLKDEV_LOOKUP is not configured mips:allmodconfig fails to build with drivers/clocksource/timer-sp804.c: In function '__sp804_clocksource_and_sched_clock_init': drivers/clocksource/timer-sp804.c:88:3: error: implicit declaration of function 'clk_get_sys' because CLKDEV_LOOKUP is not configured and the driver depends on it. Fixes: 0b7402dce445 ("ARM: 8366/1: move Dual-Timer SP804 driver to drivers/clocksource") Acked-by: Sudeep Holla Signed-off-by: Guenter Roeck Signed-off-by: Russell King drivers/clocksource/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5c8079d049c8452aeacec96a260200d468afc87d Author: Vivien Didelot Date: Tue Jun 23 10:26:04 2015 -0400 net: switchdev: ignore unsupported bridge flags switchdev_port_bridge_getlink() queries SWITCHDEV_ATTR_PORT_BRIDGE_FLAGS attributes, but a driver doesn't need to implement this in order to get bridge link information. So error out only on errors different than -EOPNOTSUPP. (This is a follow-up patch for 7d4f8d8.) Fixes: 8793d0a664a8 ("switchdev: add new switchdev_port_bridge_getlink") Signed-off-by: Vivien Didelot Acked-by: Jiri Pirko Acked-by: Scott Feldman Signed-off-by: David S. Miller net/switchdev/switchdev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bd049a90e538d76d89db1b5a7a1e7c0cb1a87ccd Author: Pavel Fedin Date: Tue Jun 23 17:51:06 2015 +0300 net: Cavium: Fix MAC address setting in shutdown state This bug pops up with NetworkManager on Fedora 21. NetworkManager tends to stop the interface (nicvf_stop() is called) before changing settings. In stopped state MAC cannot be sent to a PF. However, when the interface is restarted (nicvf_open() is called), we ping the PF using NIC_MBOX_MSG_READY message, and the PF replies back with old MAC address, overriding what we had after MAC setting from userspace. As a result, we cannot set MAC address using NetworkManager. This patch introduces special tracking of MAC change in stopped state so that the correct new MAC address is sent to a PF when interface is reopen. Signed-off-by: Pavel Fedin Signed-off-by: David S. Miller drivers/net/ethernet/cavium/thunder/nic.h | 1 + drivers/net/ethernet/cavium/thunder/nicvf_main.c | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) commit 8beeef8de49d2d9707c55747fdcef3da2b56ac68 Author: Stephen Rothwell Date: Wed Jun 24 17:29:51 2015 +1000 drivers: net: xgene: fix for ACPI support without ACPI Signed-off-by: Stephen Rothwell Signed-off-by: David S. Miller drivers/net/ethernet/apm/xgene/xgene_enet_main.c | 2 ++ 1 file changed, 2 insertions(+) commit 34b99df4e6256ddafb663c6de0711dceceddfe0e Author: Julian Anastasov Date: Tue Jun 23 08:34:39 2015 +0300 ip: report the original address of ICMP messages ICMP messages can trigger ICMP and local errors. In this case serr->port is 0 and starting from Linux 4.0 we do not return the original target address to the error queue readers. Add function to define which errors provide addr_offset. With this fix my ping command is not silent anymore. Fixes: c247f0534cc5 ("ip: fix error queue empty skb handling") Signed-off-by: Julian Anastasov Acked-by: Willem de Bruijn Signed-off-by: David S. Miller net/ipv4/ip_sockglue.c | 11 ++++++++++- net/ipv6/datagram.c | 12 +++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) commit 12d4ae9d998cf5b832b2387fc0d2b5b9efcdd322 Merge: 0a51f76 99611ba Author: David S. Miller Date: Wed Jun 24 00:42:48 2015 -0700 Merge branch 'mlx-next' Or Gerlitz says: ==================== Mellanox NIC drivers update, June 23 2015 This series has two fixes from Eran to his recent SRIOV counters work in mlx4 and few more updates from Saeed and Achiad to the mlx5 Ethernet code. All fixes here relate to net-next code, so no need for -stable. ==================== Signed-off-by: David S. Miller commit 99611ba127cfa13ddaed51f9d3cd1765a8214dd4 Author: Saeed Mahameed Date: Tue Jun 23 17:14:22 2015 +0300 net/mlx5e: Prefetch skb data on RX Prefetch the 1st cache line used by the buffer pointed by the skb linear data. Signed-off-by: Saeed Mahameed Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 1 + 1 file changed, 1 insertion(+) commit a1f5a1a87ac11486b95eebba7fa0127dd7090f65 Author: Achiad Shochat Date: Tue Jun 23 17:14:21 2015 +0300 net/mlx5e: Pop cq outside mlx5e_get_cqe Separate between mlx5e_get_cqe() and mlx5_cqwq_pop(), this helps for better code readability and better CQ buffer management. Signed-off-by: Achiad Shochat Signed-off-by: Saeed Mahameed Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 2 ++ drivers/net/ethernet/mellanox/mlx5/core/en_tx.c | 2 ++ drivers/net/ethernet/mellanox/mlx5/core/en_txrx.c | 2 -- 3 files changed, 4 insertions(+), 2 deletions(-) commit e33910548a4090671094336397ed383c252463ff Author: Achiad Shochat Date: Tue Jun 23 17:14:20 2015 +0300 net/mlx5e: Remove mlx5e_cq.sqrq back-pointer Use container_of() instead. Signed-off-by: Achiad Shochat Signed-off-by: Saeed Mahameed Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en.h | 1 - drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 3 --- drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 2 +- drivers/net/ethernet/mellanox/mlx5/core/en_tx.c | 2 +- drivers/net/ethernet/mellanox/mlx5/core/en_txrx.c | 2 +- 5 files changed, 3 insertions(+), 7 deletions(-) commit 8ca56ce39d161ae561735af0cc0b9abecf06181c Author: Achiad Shochat Date: Tue Jun 23 17:14:19 2015 +0300 net/mlx5e: Remove extra spaces Coding Style fix, remove extra spaces. Signed-off-by: Achiad Shochat Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en_tx.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 059ba072eba4d6e10ab637779013960a7c9ddce2 Author: Achiad Shochat Date: Tue Jun 23 17:14:18 2015 +0300 net/mlx5e: Avoid TX CQE generation if more xmit packets expected In order to save PCI BW consumed by TX CQEs and to reduce the amount of CPU cache misses caused by TX CQE reading, we request TX CQE generation only when skb->xmit_more=0. As a consequence of the above, a single TX CQE may now indicate the transmission completion of multiple TX SKBs. This also handles a problem introduced in commit b1b8105ebf41 "net/mlx5e: Support NETIF_F_SG" where we didn't ask for NOP completions while the driver didn't have the proper code to handle this case. Fixes: b1b8105ebf41 ('net/mlx5e: Support NETIF_F_SG') Signed-off-by: Achiad Shochat Signed-off-by: Saeed Mahameed Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en_tx.c | 57 +++++++++++++++---------- 1 file changed, 34 insertions(+), 23 deletions(-) commit 9fc5930625bcf7c519db84023ec720e7f2f7f61c Author: Achiad Shochat Date: Tue Jun 23 17:14:17 2015 +0300 net/mlx5e: Avoid redundant dev_kfree_skb() upon NOP completion NOP completion SKBs are always NULL. Signed-off-by: Achiad Shochat Signed-off-by: Saeed Mahameed Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en_tx.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit ef583d037d57c41859921e5baa0d09dd82b2f601 Author: Achiad Shochat Date: Tue Jun 23 17:14:16 2015 +0300 net/mlx5e: Remove re-assignment of wq type in mlx5e_enable_rq() It is already assigned at mlx5e_build_rq_param() Signed-off-by: Achiad Shochat Signed-off-by: Saeed Mahameed Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 1 - 1 file changed, 1 deletion(-) commit fb6c6f2529e7c87a99a2f85ae1bb5b3c468482ff Author: Saeed Mahameed Date: Tue Jun 23 17:14:15 2015 +0300 net/mlx5e: Use skb_shinfo(skb)->gso_segs rather than counting them Instead of counting number of gso fragments, we can use skb_shinfo(skb)->gso_segs. Signed-off-by: Saeed Mahameed Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en_tx.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 03289b88e3bcbdf2c8e0f1c92ce4e5a4cfbabf77 Author: Saeed Mahameed Date: Tue Jun 23 17:14:14 2015 +0300 net/mlx5e: Static mapping of netdev priv resources to/from netdev TX queues To save per-packet calculations, we use the following static mappings: 1) priv {channel, tc} to netdev txq (used @mlx5e_selec_queue()) 2) netdev txq to priv sq (used @mlx5e_xmit()) Thanks to these static mappings, no more need for a separate implementation of ndo_start_xmit when multiple TCs are configured. We believe the performance improvement of such separation would be negligible, if any. The previous way of dynamically calculating the above mappings required allocating more TX queues than actually used (@alloc_etherdev_mqs()), which is now no longer needed. Signed-off-by: Saeed Mahameed Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en.h | 5 ++- drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 41 +++++++++++++++-------- drivers/net/ethernet/mellanox/mlx5/core/en_tx.c | 18 ++-------- 3 files changed, 31 insertions(+), 33 deletions(-) commit f1a3badb0b429cae75b4785c97af35cb89bf1457 Author: Eran Ben Elisha Date: Tue Jun 23 17:14:13 2015 +0300 net/mlx4_en: Use HW counters for rx/tx bytes/packets in PF device Under SRIOV, the port rx/tx bytes/packets statistics should by read from the HW instead of using the PF netdevice SW accounting. This is needed in order to get the full port statistics and not just the PF own ones Signed-off-by: Eran Ben Elisha Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/en_port.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit 9a2abf5a80ebc8b77d6ad4b68ab597ad43d07399 Author: Eran Ben Elisha Date: Tue Jun 23 17:14:12 2015 +0300 net/mlx4_en: Fix off-by-four in ethtool NUM_ALL_STATS was not updated with the new four entries, instead NUM_FLOW_STATS was updated, fix it. that caused off-by-four for all counters below pf_*_*. Fixes: b42de4d01264 ('net/mlx4_en: Show PF own statistics via ethtool') Signed-off-by: Eran Ben Elisha Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/mlx4_stats.h | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit a903e3b64adfc2e126237f06e0b3ea7d2d8d13b5 Author: Tomi Valkeinen Date: Tue Mar 17 15:31:11 2015 +0200 drm/omap: return error if dma_alloc_writecombine fails On a platform with no TILER (e.g. omap3, am43xx), when the user wants to allocate buffer with flag OMAP_BO_SCANOUT, the buffer needs to be allocated with dma_alloc_writecombine. For some reason the driver does not return an error if that alloc fails, instead it continues without backing memory. This leads to errors later when the user tries to use the buffer. This patch makes the driver return an error if dma_alloc_writecombine fails. Signed-off-by: Tomi Valkeinen Acked-by: Laurent Pinchart drivers/gpu/drm/omapdrm/omap_gem.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) commit 59a5b0f7bf74f88da6670bcbf924d8cc1e75b1ee Author: Gerd Hoffmann Date: Wed Jun 24 07:54:15 2015 +0200 virtio-pci: alloc only resources actually used. Move resource allocation from common code to legacy and modern code. Only request resources actually used, i.e. bar0 in legacy mode and the bar(s) specified by capabilities in modern mode. Signed-off-by: Gerd Hoffmann Signed-off-by: Michael S. Tsirkin drivers/virtio/virtio_pci_common.c | 7 ------- drivers/virtio/virtio_pci_common.h | 2 ++ drivers/virtio/virtio_pci_legacy.c | 13 ++++++++++++- drivers/virtio/virtio_pci_modern.c | 24 ++++++++++++++++++------ 4 files changed, 32 insertions(+), 14 deletions(-) commit 6eae81a5e2d6646a61146501fd3032a340863c1d Merge: 54245ed 5ffde2f Author: Linus Torvalds Date: Tue Jun 23 18:27:19 2015 -0700 Merge tag 'iommu-updates-v4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu Pull IOMMU updates from Joerg Roedel: "This time with bigger changes than usual: - A new IOMMU driver for the ARM SMMUv3. This IOMMU is pretty different from SMMUv1 and v2 in that it is configured through in-memory structures and not through the MMIO register region. The ARM SMMUv3 also supports IO demand paging for PCI devices with PRI/PASID capabilities, but this is not implemented in the driver yet. - Lots of cleanups and device-tree support for the Exynos IOMMU driver. This is part of the effort to bring Exynos DRM support upstream. - Introduction of default domains into the IOMMU core code. The rationale behind this is to move functionalily out of the IOMMU drivers to common code to get to a unified behavior between different drivers. The patches here introduce a default domain for iommu-groups (isolation groups). A device will now always be attached to a domain, either the default domain or another domain handled by the device driver. The IOMMU drivers have to be modified to make use of that feature. So long the AMD IOMMU driver is converted, with others to follow. - Patches for the Intel VT-d drvier to fix DMAR faults that happen when a kdump kernel boots. When the kdump kernel boots it re-initializes the IOMMU hardware, which destroys all mappings from the crashed kernel. As this happens before the endpoint devices are re-initialized, any in-flight DMA causes a DMAR fault. These faults cause PCI master aborts, which some devices can't handle properly and go into an undefined state, so that the device driver in the kdump kernel fails to initialize them and the dump fails. This is now fixed by copying over the mapping structures (only context tables and interrupt remapping tables) from the old kernel and keep the old mappings in place until the device driver of the new kernel takes over. This emulates the the behavior without an IOMMU to the best degree possible. - A couple of other small fixes and cleanups" * tag 'iommu-updates-v4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (69 commits) iommu/amd: Handle large pages correctly in free_pagetable iommu/vt-d: Don't disable IR when it was previously enabled iommu/vt-d: Make sure copied over IR entries are not reused iommu/vt-d: Copy IR table from old kernel when in kdump mode iommu/vt-d: Set IRTA in intel_setup_irq_remapping iommu/vt-d: Disable IRQ remapping in intel_prepare_irq_remapping iommu/vt-d: Move QI initializationt to intel_setup_irq_remapping iommu/vt-d: Move EIM detection to intel_prepare_irq_remapping iommu/vt-d: Enable Translation only if it was previously disabled iommu/vt-d: Don't disable translation prior to OS handover iommu/vt-d: Don't copy translation tables if RTT bit needs to be changed iommu/vt-d: Don't do early domain assignment if kdump kernel iommu/vt-d: Allocate si_domain in init_dmars() iommu/vt-d: Mark copied context entries iommu/vt-d: Do not re-use domain-ids from the old kernel iommu/vt-d: Copy translation tables from old kernel iommu/vt-d: Detect pre enabled translation iommu/vt-d: Make root entry visible for hardware right after allocation iommu/vt-d: Init QI before root entry is allocated iommu/vt-d: Cleanup log messages ... commit 8b72ce158cf0dba443e36fc66e0bb29c2580e0b6 Author: Daniel Stone Date: Tue Jun 23 14:18:58 2015 +0100 drm: Always enable atomic API Now that the interface has been proven by a port of Weston (using all atomic features including TEST_ONLY), remove the module parameter guarding the atomic API from being exposed, and let it run free in the wild. Signed-off-by: Daniel Stone Acked-by: Daniel Vetter Signed-off-by: Dave Airlie drivers/gpu/drm/drm_drv.c | 2 -- drivers/gpu/drm/drm_ioctl.c | 3 --- 2 files changed, 5 deletions(-) commit fa2f97dd33c2c32a06a5ea7f6e87af06a2e26baa Author: Daniel Vetter Date: Tue Jun 23 16:35:06 2015 +0200 drm/vgem: Set unique to "vgem" Since there's only one global instance ever we don't need to have anything fancy. Stops a WARNING in the get_unique ioctl that the unique name isn't set. Cc: # 4.1+ only Reportedy-and-tested-by: Fabio Coatti Cc: Fabio Coatti Signed-off-by: Daniel Vetter Signed-off-by: Dave Airlie drivers/gpu/drm/vgem/vgem_drv.c | 2 ++ 1 file changed, 2 insertions(+) commit ce0bdb849ad46e4b4e4cae6913b447ae9938bdcf Author: Inki Dae Date: Tue Jun 23 16:06:44 2015 +0900 of: fix a build error to of_graph_get_endpoint_by_regs function This patch fixes the below build error reported by Stephen, Stephen reported: After merging the drm-exynos tree, today's linux-next build (x86_64 allmodconfig) failed like this: drivers/media/i2c/adv7604.o: In function `of_graph_get_endpoint_by_regs': adv7604.c:(.text+0x586c): multiple definition of `of_graph_get_endpoint_by_regs' drivers/media/i2c/adv7343.o:adv7343.c:(.text+0xa13): first defined here drivers/media/platform/soc_camera/atmel-isi.o: In function `of_graph_get_endpoint_by_regs': atmel-isi.c:(.text+0x1ec9): multiple definition of `of_graph_get_endpoint_by_regs' drivers/media/platform/soc_camera/soc_camera.o:soc_camera.c:(.text+0x2ce3): first defined here drivers/media/platform/soc_camera/rcar_vin.o: In function `of_graph_get_endpoint_by_regs': rcar_vin.c:(.text+0x307c): multiple definition of `of_graph_get_endpoint_by_regs' drivers/media/platform/soc_camera/soc_camera.o:soc_camera.c:(.text+0x2ce3): first defined here Caused by commit: a0f7001c18ca ("of: add helper for getting endpoint node of specific identifiers") To fix the error, this patch declares of_graph_get_endpoint_by_regs function with "static inline". Signed-off-by: Inki Dae Signed-off-by: Dave Airlie include/linux/of_graph.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 54245ed870c8cf9ff87fdf78955ffbc93b261e9f Merge: 84e9c87 0eb8618 Author: Linus Torvalds Date: Tue Jun 23 17:38:39 2015 -0700 Merge tag 'for-linus-20150623' of git://git.infradead.org/linux-mtd Pull MTD updates from Brian Norris: "JFFS2: - fix a theoretical unbalanced locking issue; the lock handling was a bit unclean, but AFAICT, it didn't actually lead to real deadlocks NAND: - brcmnand driver: new driver supporting NAND controller found originally on Broadcom STB SoCs (BCM7xxx), but now also found on BCM63xxx, iProc (e.g., Cygnus, BCM5301x), BCM3xxx, and more - begin factoring out BBT code so it can be shared between traditional (parallel) NAND drivers and upcoming SPI NAND drivers (WIP) - add common DT-based init support, so nand_base can pick up some flash properties automatically, using established common NAND DT properties - mxc_nand: support 8-bit ECC - pxa3xx_nand: * fix build for ARM64 * use a jiffies-based timeout SPI NOR: - add a few new IDs - clear out some unnecessary entries - make sure SECT_4K flags are correct for all (?) entries Core: - fix mtd->usecount race conditions (BUG_ON()) - switch to modern PM ops Other: - CFI: save code space by de-inlining large functions - clean up some partition parser selection code across several drivers - various miscellaneous changes, mostly minor" * tag 'for-linus-20150623' of git://git.infradead.org/linux-mtd: (57 commits) mtd: docg3: Fix kasprintf() usage mtd: docg3: Don't leak docg3->bbt in error path mtd: nandsim: Fix kasprintf() usage mtd: cs553x_nand: Fix kasprintf() usage mtd: r852: Fix device_create_file() usage mtd: brcmnand: drop unnecessary initialization mtd: propagate error codes from add_mtd_device() mtd: diskonchip: remove two-phase partitioning / registration mtd: dc21285: use raw spinlock functions for nw_gpio_lock mtd: chips: fixup dependencies, to prevent build error mtd: cfi_cmdset_0002: Initialize datum before calling map_word_load_partial mtd: cfi: deinline large functions mtd: lantiq-flash: use default partition parsers mtd: plat_nand: use default partition probe mtd: nand: correct indentation within conditional mtd: remove incorrect file name mtd: blktrans: use better error code for unimplemented ioctl() mtd: maps: Spelling s/reseved/reserved/ mtd: blktrans: change blktrans_getgeo return value mtd: mxc_nand: generate nand_ecclayout for 8 bit ECC ... commit 84e9c87e6ffc519fdf91949482a65672a7314c9a Merge: 7fe0bf9 1abf25a Author: Linus Torvalds Date: Tue Jun 23 17:31:27 2015 -0700 Merge tag 'mfd-for-linus-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd Pull MFD updates from Lee Jones: "Changes to existing drivers: - Constify structures; throughout the subsystem - Move support to DT in; cros_ec - DT changes and documentation; cros-ec, max77693, max77686, arizona, da9063 - ACPI changes and documentation; mfd-core - Use different platform specific API in; cros_ec_*, arizona-core - Remove unused parent field from; cros_ec_i2c - Add wake-up/reset delay in; cross_ec_spi, arizona-core - Staticise structures/functions in; cros_ec - Remove redundant code; arizona-core, max77686 - Bugfix; twl4030-power - Allow compile test; aat2870, tps65910 - MAINTAINERS adaptions; samsung, syscon - Resource Management (devm_*); arizona-core - Refactor Reset code; arizona-core - Insist on at least one full boot; arizona-core - Trivial formatting; arizona-core - Add low-power-sleep; arizona-core - IRQ ONESHOT changes; twl4030-irq, mc13xxx-core, wm831x-auxadc, htc-i2cpld, wm8350-core, ab8500-debugfs, ab8500-gpadc, si476x-i2c (Re-)moved drivers: - Move protocol helpers out to drivers/platform; cros_ec New drivers/supported devices: - Add support for AXP22x into axp20x - Add support for OnKey into da9063-core - Add support for Pinctrl into mt6397-core - New STMicroelectronics LPC Watchdog driver - New STMicroelectronics LPC Real-Time Clock driver" * tag 'mfd-for-linus-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (59 commits) mfd: lpc_ich: Assign subdevice ids automatically mfd: si476x-i2c: Pass the IRQF_ONESHOT flag mfd: ab8500-gpadc: Pass the IRQF_ONESHOT flag mfd: ab8500-debugfs: Pass the IRQF_ONESHOT flag mfd: wm8350-core: Pass the IRQF_ONESHOT flag mfd: htc-i2cpld: Pass the IRQF_ONESHOT flag mfd: wm831x-auxadc: Pass the IRQF_ONESHOT flag mfd: mc13xxx-core: Pass the IRQF_ONESHOT flag mfd: twl4030-irq: Pass the IRQF_ONESHOT flag mfd: mt6397-core: Add GPIO sub-module support mfd: arizona: Add convience defines for micd_rate/micd_bias_starttime mfd: dt: Add bindings for DA9063 OnKey mfd: da9063: Add support for OnKey driver mfd: arizona: Fix incorrect Makefile conditionals mfd: arizona: Add stub for wm5102_patch() mfd: Check ACPI device companion before checking resources Documentation: Add WM8998/WM1814 device tree bindings mfd: arizona: Split INx_MODE into two fields mfd: wm5110: Add delay before releasing reset line mfd: arizona: Add better support for system suspend ... commit 7fe0bf908d4f8f7d134cab280cac64fe65997ac1 Merge: 5a602e1 733ada0 Author: Linus Torvalds Date: Tue Jun 23 17:30:20 2015 -0700 Merge tag 'regulator-v4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator Pull regulator updates from Mark Brown: "Another fairly quiet release, some new drivers with generic handling for minor features but nothing that makes a substantial difference outside of the subsystem or for most boards: - support for a bunch of new parameters which are present on enough regulators to be worth having generic handling for in the framework. - fixes for some issues with printing constraints during boot which should probably have gone in for v4.1 but didn't. - new drivers for Dialog DA9062, Maxim MAX77621 and Qualcomm SPMI regulators" * tag 'regulator-v4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (45 commits) regulator: qcom_spmi: Fix calculating number of voltages regulator: qcom_spmi: Add missing braces for aligned code regulator: fix simple_return.cocci warnings regulator: Add QCOM SPMI regulator driver regulator: Add docbook for soft start regulator: Add input current limit support regulator: Add soft start support regulator: Add pull down support regulator: Add system_load constraint regulator: max8973: Fix up ramp_delay for MAX8973_RAMP_25mV_PER_US case regulator: core: replace sprintf with scnprintf regulator: core: fix constraints output buffer regulator: core: Don't corrupt display when printing uV offsets regulator: max8973: add support for MAX77621 regulator: max8973: configure ramp delay through callback regulator: pwm-regulator: Diffientiate between dev (device) and rdev (regulator_dev) regulator: pwm-regulator: Remove superfluous is_enabled check regulator: pwm-regulator: Remove unnecessary descriptor attribute from ddata regulator: core: Don't spew backtraces on duplicate sysfs regulator: da9063: Fix up irq leak ... commit 5a602e157a9d91d5ce98d07c404097edba8ec9f3 Merge: e12bdf0 fda052b Author: Linus Torvalds Date: Tue Jun 23 17:27:09 2015 -0700 Merge tag 'spi-v4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi Pull spi updates from Mark Brown: "No framework updates for the SPI API this time around aside from one small fix, just driver improvments. Some highlights include: - New driver support for CSR USP, Mikrotik RB4xx and Zynq GQSPI controllers. - Modernisation of the OMAP McSPI controller driver, moving it to current APIs to enable support for a wider range of client drivers. - DMA support for the bcm2835 controller" * tag 'spi-v4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (60 commits) spi: zynq: Remove execute bit spi: atmel: add support to FIFOs spi: atmel: update DT bindings documentation spi: spi-fsl-dspi: Update DT binding documentation spi: pxa2xx: Constify ACPI device ids spi: Add support for Zynq Ultrascale+ MPSoC GQSPI controller spi: zynq: Add DT bindings documentation for Zynq Ultrascale+ MPSoC GQSPI controller spi: fsl-dspi: Use pinctrl PM helpers spi: davinci: change the lower limit of pre-scale divider to 1 spi: spi-fsl-dspi: Change the way of increasing spi_message->actual_length spi: spi-fsl-dspi: Enable TCF interrupt mode support spi: atmel: add support for the internal chip-select of the spi controller spi: spi-pxa2xx: remove legacy PXA DMA bits spi: pxa2xx: Make LPSS SPI general register optional spi: pxa2xx: Prepare for new Intel LPSS SPI type spi: pxa2xx: Differentiate Intel LPSS types spi: restore rx/tx_buf in case of unset CONFIG_HAS_DMA spi: rspi: Re-do the returning value of qspi_transfer_out_in spi: rspi: modify the name of "qspi_trigger_transfer_out_int" function spi: orion: Fix extended baud rates for each Armada SoCs ... commit e12bdf0d9265a90664a4767f4ffc20af06807278 Merge: 1a13e36 8ca006a Author: Linus Torvalds Date: Tue Jun 23 17:25:32 2015 -0700 Merge tag 'regmap-v4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap Pull regmap updates from Mark Brown: "As well as a few fixes and updates for API changes there's two new features for the API: - Better support for handling a reset of the underlying hardware, marking the register map as needing a resync to the device when we need to do that automatically - Support for querying the size and stride of the register map, allowing higher level frameworks to configure themselves more readily" * tag 'regmap-v4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap: regmap: Fix possible shift overflow in regmap_field_init() regmap: Fix regmap_bulk_read in BE mode regmap: kill off set_irq_flags usage regmap: irq: Fixed a typo error regmap: drop unneeded goto regmap: Introduce regmap_get_reg_stride regmap: Introduce regmap_get_max_register regmap: Use regcache_mark_dirty() to indicate power loss or reset regmap: Add a helper function for regcache sync test regmap: Constify irq_domain_ops commit 38183b9c31cf21d8996d6eee2e3a14508b20c418 Author: Stephen Rothwell Date: Thu May 28 17:20:58 2015 +1000 rcu: merge fix for Convert ACCESS_ONCE() to READ_ONCE() and WRITE_ONCE() This mirrors the change introduced by 7d0ae8086b8 of same title in Linus' tree; it's not obvious as a merge resolution since we moved the function. Signed-off-by: Stephen Rothwell Signed-off-by: Rusty Russell include/linux/compiler.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1a13e36a79f25f4cf506258637e96a07ac1451f2 Merge: 36a1624 f778dad Author: Linus Torvalds Date: Tue Jun 23 16:23:30 2015 -0700 Merge tag 'fbdev-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux Pull fbdev updates from Tomi Valkeinen: - ssd1307fb: various fixes and improvements, SSD1305 support - use architecture agnostic functions instead of MTRR functions in various fbdev drivers - TI DRA7xx SoC display support (arch/arm/ side) - OMAPDSS componentization to fix probing order issues - OMAPDSS scaling fixes - msm_fb: remove obsoleted driver * tag 'fbdev-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux: (77 commits) msm: msm_fb: Remove dead code OMAPDSS: HDMI: wait for framedone when stopping video OMAPDSS: HDMI4: fix error handling OMAPDSS: DISPC: scaler debug print OMAPDSS: DISPC: do only y decimation on OMAP3 OMAPDSS: DISPC: check if scaling setup failed OMAPDSS: DISPC: fix 64 bit issue in 5-tap OMAPDSS: DISPC: fix row_inc for OMAP3 OMAPDSS: DISPC: add check for scaling limits OMAPDSS: DISPC: fix check_horiz_timing_omap3 args OMAPDSS: DISPC: fix predecimation for YUV modes OMAPDSS: DISPC: work-around for errata i631 OMAPDSS: simplify submodule reg/unreg code OMAPDSS: componentize omapdss OMAPDSS: reorder uninit calls OMAPDSS: remove uses of __init/__exit OMAPDSS: fix dss_init_ports error handling OMAPDSS: refactor dss probe function OMAPDSS: move 'dss_initialized' to dss driver fbdev: propagate result of fb_videomode_from_videomode() ... commit 36a1624d8844b6c165daf61649e6b68c02d0835f Merge: 5262f25 43df610 Author: Linus Torvalds Date: Tue Jun 23 16:10:27 2015 -0700 Merge tag 'for-4.2' of git://git.infradead.org/battery-2.6 Pull power supply and reset updates from Sebastian Reichel: - new charger drivers: BQ24257, BQ25890, AXP288, RT9455 - MAX17042 battery: add health & temperature support - BQ2415x charger: add ACPI support - misc fixes and cleanups * tag 'for-4.2' of git://git.infradead.org/battery-2.6: (32 commits) power_supply: Correct kerneldoc copy paste errors wm831x_power: Fix off-by-one at free_irq() power_supply: rt9455_charger: Fix error reported by static analysis tool power_supply: bq24257: use flags argument of devm_gpiod_get power_supply: bq25890: use flags argument of devm_gpiod_get sbs-battery: add option to always register battery power: Add devm_power_supply_get_by_phandle() helper function power_supply: max17042: Add OF support for setting thresholds power_supply: sysfs: Bring back write to writeable properties power_supply: rt9455_charger: Check if CONFIG_USB_PHY is enabled power: reset: gpio-restart: increase priority slightly power_supply: bq25890: make chip_id int power_supply: Add support for Richtek RT9455 battery charger Documentation: devicetree: Add Richtek RT9455 bindings of: Add vendor prefix for Richtek Technology Corporation power_supply: 88pm860x_charger: Do not call free_irq() twice power: bq24190_charger: Change first_time flag reset condition power: axp288_charger: axp288 charger driver power: max17042_battery: add HEALTH and TEMP_* properties support power_supply: Add support for TI BQ25890 charger chip ... commit 5262f25f0983ff6f2c21e3dadcfd0c809e5aa286 Merge: acd5312 f451e76 Author: Linus Torvalds Date: Tue Jun 23 16:05:37 2015 -0700 Merge tag 'hsi-for-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-hsi Pull HSI updates from Sebastian Reichel: "Misc fixes" * tag 'hsi-for-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-hsi: HSI: nokia-modem: use flags argument of devm_gpiod_get to set direction HSI: nokia-modem: Reduce missing driver message to debug level HSI: cmt_speech: fix timestamp interface commit acd53127c4adbd34570b221e7ea1f7fc94aea923 Merge: f9d1b5a c8806b6 Author: Linus Torvalds Date: Tue Jun 23 15:55:44 2015 -0700 Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi Pull SCSI updates from James Bottomley: "This is the usual grab bag of driver updates (lpfc, hpsa, megaraid_sas, cxgbi, be2iscsi) plus an assortment of minor updates. There is also one new driver: the Cisco snic. The advansys driver has been rewritten to get rid of the warning about converting it to the DMA API, the tape statistics patch got in and finally, there's a resuffle of SCSI header files to separate more cleanly initiator from target mode (and better share the common definitions)" * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (156 commits) snic: driver for Cisco SCSI HBA qla2xxx: Fix indentation qla2xxx: Comment out unreachable code fusion: remove dead MTRR code advansys: fix compilation errors and warnings when CONFIG_PCI is not set mptsas: fix depth param in scsi_track_queue_full megaraid: fix irq setup process regression lpfc: Update version to 10.7.0.0 for upstream patch set. lpfc: Fix to drop PLOGIs from fabric node till LOGO processing completes lpfc: Fix scsi task management error message. lpfc: Fix cq_id masking problem. lpfc: Fix scsi prep dma buf error. lpfc: Add support for using block multi-queue lpfc: Devices are not discovered during takeaway/giveback testing lpfc: Fix vport deletion failure. lpfc: Check for active portpeerbeacon. lpfc: Update driver version for upstream patch set 10.6.0.1. lpfc: Change buffer pool empty message to miscellaneous category lpfc: Fix incorrect log message reported for empty FCF record. lpfc: Fix rport leak. ... commit f9d1b5a31ab02208e29631756630739175cdaa02 Merge: 2ad7b44 8e4349d Author: Linus Torvalds Date: Tue Jun 23 15:53:26 2015 -0700 Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma Pull rdma updates from Doug Ledford: - a large cleanup of how device capabilities are checked for various features - additional cleanups in the MAD processing - update to the srp driver - creation and use of centralized log message helpers - add const to a number of args to calls and clean up call chain - add support for extended cq create verb - add support for timestamps on cq completion - add support for processing OPA MAD packets * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma: (92 commits) IB/mad: Add final OPA MAD processing IB/mad: Add partial Intel OPA MAD support IB/mad: Add partial Intel OPA MAD support IB/core: Add OPA MAD core capability flag IB/mad: Add support for additional MAD info to/from drivers IB/mad: Convert allocations from kmem_cache to kzalloc IB/core: Add ability for drivers to report an alternate MAD size. IB/mad: Support alternate Base Versions when creating MADs IB/mad: Create a generic helper for DR forwarding checks IB/mad: Create a generic helper for DR SMP Recv processing IB/mad: Create a generic helper for DR SMP Send processing IB/mad: Split IB SMI handling from MAD Recv handler IB/mad cleanup: Generalize processing of MAD data IB/mad cleanup: Clean up function params -- find_mad_agent IB/mlx4: Add support for CQ time-stamping IB/mlx4: Add mmap call to map the hardware clock IB/core: Pass hardware specific data in query_device IB/core: Add timestamp_mask and hca_core_clock to query_device IB/core: Extend ib_uverbs_create_cq IB/core: Add CQ creation time-stamping flag ... commit 2ad7b44f5dd63a34c8853ce55f7d3d351b2cbd33 Merge: 43c9fad 079ed36 Author: Linus Torvalds Date: Tue Jun 23 15:50:46 2015 -0700 Merge branch 'for-linus-clk' of git://ftp.arm.linux.org.uk/~rmk/linux-arm Pull clkdev updates from Russell King: "This series addresses some breakage in clkdev caused by a previous patch set from the clk tree which introduced per-user clk structures. This basically renamed the existing 'struct clk' to 'struct clk_hw', and introduced a new 'struct clk'. This change will break anyone using clk_add_alias() with the common clk code enabled. Thankfully, the intersection of users of clk_add_alias() and those using the common clk code is practically zero, but this is something which should be fixed to keep the code sane. The problem is that clk_add_alias() does this: r = clk_get(...); l = clkdev_alloc(r, ...); clk_put(...); which causes the alias to store a pointer to 'r', which has been freed. The original patch set tried to work around this problem incorrectly - at clk_get() time, it tried to convert the struct clk to a struct clk_hw, and then creating a new struct clk from that. Clearly, if the original struct clk has been freed, then we have a use-after-free bug. We have other places in the tree which do something similar, so this series also addresses those locations too. This series addresses this problem by converting clkdev to store and use the clk_hw pointer. This allows clk_get() to only have to create it's per-user struct clk from the clk_hw. We can also get to the desired clk_hw at clk_add_alias() or clk lookup creation time, when the struct clk is "alive". We also perform some cleanups of the code: - replacing looped calls to clkdev_add() with clkdev_add_table() - replacing open-coded lookup allocation (which should have been using clkdev_alloc()) and subsequent clkdev_add() with clkdev_create() - replacing open-coded clk_add_alias() with clk_add_alias()" * 'for-linus-clk' of git://ftp.arm.linux.org.uk/~rmk/linux-arm: clk: s2mps11: use clkdev_create() ASoC: migor: use clkdev_create() ARM: omap2: use clkdev_add_alias() ARM: omap2: use clkdev_create() ARM: orion: use clkdev_create() ARM: lpc32xx: convert to use clkdev_add_table() SH: use clkdev_add_table() clkdev: add clkdev_create() helper clkdev: const-ify connection id to clk_add_alias() clkdev: get rid of redundant clk_add_alias() prototype in linux/clk.h clkdev: drop __init from clkdev_add_table() clk: update clk API documentation to clarify clk_round_rate() clkdev: use clk_hw internally commit dc3f4198eac14e52a98dfc79cd84b45e280f59cd Author: Al Viro Date: Mon May 18 10:10:34 2015 -0400 make simple_positive() public Signed-off-by: Al Viro arch/powerpc/platforms/cell/spufs/inode.c | 2 +- arch/s390/hypfs/inode.c | 7 +------ drivers/block/drbd/drbd_debugfs.c | 10 +--------- drivers/infiniband/hw/ipath/ipath_fs.c | 2 +- drivers/infiniband/hw/qib/qib_fs.c | 2 +- fs/autofs4/autofs_i.h | 5 ----- fs/ceph/dir.c | 2 +- fs/configfs/inode.c | 2 +- fs/debugfs/inode.c | 11 +++-------- fs/libfs.c | 5 ----- fs/nfs/dir.c | 2 +- fs/tracefs/inode.c | 11 +++-------- include/linux/dcache.h | 5 +++++ security/inode.c | 19 ++++++------------- 14 files changed, 25 insertions(+), 60 deletions(-) commit 5d754ced150e392c7b5dbf73ed2feddb60cd579a Author: Fabian Frederick Date: Sun May 24 17:19:43 2015 +0200 ufs: use dir_pages instead of ufs_dir_pages() dir_pages was declared in a lot of filesystems. Use newly dir_pages() from pagemap.h Signed-off-by: Fabian Frederick Signed-off-by: Al Viro fs/ufs/dir.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) commit b57c2cb9ea1a02c2ae08e16de8c20cc13ffbf85a Author: Fabian Frederick Date: Sun May 24 17:19:41 2015 +0200 pagemap.h: move dir_pages() over there That function was declared in a lot of filesystems to calculate directory pages. Signed-off-by: Fabian Frederick Signed-off-by: Al Viro fs/exofs/dir.c | 6 ------ fs/ext2/dir.c | 5 ----- fs/freevxfs/vxfs_lookup.c | 7 ------- fs/minix/dir.c | 5 ----- fs/nilfs2/dir.c | 5 ----- fs/qnx6/dir.c | 5 ----- fs/sysv/dir.c | 5 ----- include/linux/pagemap.h | 6 ++++++ 8 files changed, 6 insertions(+), 38 deletions(-) commit e5e6e97fe0f63b374e44a22f5a5c2d151c7fa8c5 Author: Al Viro Date: Thu Jun 4 21:49:23 2015 -0400 remove the pointless include of lglock.h Signed-off-by: Al Viro fs/file_table.c | 1 - 1 file changed, 1 deletion(-) commit db6172c41194576ba2a27e64fa2a5576d11d6eb9 Author: Rasmus Villemoes Date: Thu Mar 19 12:28:04 2015 +0100 fs: cleanup slight list_entry abuse list_entry is just a wrapper for container_of, but it is arguably wrong (and slightly confusing) to use it when the pointed-to struct member is not a struct list_head. Use container_of directly instead. Signed-off-by: Rasmus Villemoes Signed-off-by: Al Viro fs/affs/affs.h | 2 +- fs/befs/befs.h | 2 +- fs/coda/coda_linux.h | 2 +- fs/hfs/hfs_fs.h | 2 +- fs/hfsplus/hfsplus_fs.h | 2 +- fs/hpfs/hpfs_fn.h | 2 +- fs/jffs2/os-linux.h | 2 +- fs/jfs/jfs_incore.h | 2 +- fs/minix/minix.h | 2 +- fs/ntfs/inode.h | 2 +- fs/squashfs/squashfs_fs_i.h | 2 +- fs/sysv/sysv.h | 2 +- fs/udf/udf_i.h | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) commit 8ea3a7c0df05b2cb33e2d63aa1c964308724b1c4 Merge: a6de82c 4a47132 Author: Al Viro Date: Tue Jun 23 18:01:30 2015 -0400 Merge branch 'fscache-fixes' into for-next commit a6de82cab123beaf9406024943caa0242f0618b0 Author: Jan Kara Date: Thu May 21 16:05:56 2015 +0200 xfs: Correctly lock inode when removing suid and file capabilities Currently XFS calls file_remove_privs() without holding i_mutex. This is wrong because that function can end up messing with file permissions and file capabilities stored in xattrs for which we need i_mutex held. Fix the problem by grabbing iolock exclusively when we will need to change anything in permissions / xattrs. Reviewed-by: Dave Chinner Signed-off-by: Jan Kara Signed-off-by: Al Viro fs/xfs/xfs_file.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit 45f147a1bc97c743c6101a8d2741c69a51f583e4 Author: Jan Kara Date: Thu May 21 16:05:55 2015 +0200 fs: Call security_ops->inode_killpriv on truncate Comment in include/linux/security.h says that ->inode_killpriv() should be called when setuid bit is being removed and that similar security labels (in fact this applies only to file capabilities) should be removed at this time as well. However we don't call ->inode_killpriv() when we remove suid bit on truncate. We fix the problem by calling ->inode_need_killpriv() and subsequently ->inode_killpriv() on truncate the same way as we do it on file write. After this patch there's only one user of should_remove_suid() - ocfs2 - and indeed it's buggy because it doesn't call ->inode_killpriv() on write. However fixing it is difficult because of special locking constraints. Signed-off-by: Jan Kara Signed-off-by: Al Viro fs/inode.c | 5 ++--- fs/open.c | 6 ++++-- include/linux/fs.h | 6 +++++- 3 files changed, 11 insertions(+), 6 deletions(-) commit dbfae0cdcd87602737101d4417811f4323156b54 Author: Jan Kara Date: Thu May 21 16:05:54 2015 +0200 fs: Provide function telling whether file_remove_privs() will do anything Provide function telling whether file_remove_privs() will do anything. Currently we only have should_remove_suid() and that does something slightly different. Signed-off-by: Jan Kara Signed-off-by: Al Viro fs/inode.c | 44 ++++++++++++++++++++++++++++++++------------ include/linux/fs.h | 1 + 2 files changed, 33 insertions(+), 12 deletions(-) commit 5fa8e0a1c6a762857ae67d1628c58b9a02362003 Author: Jan Kara Date: Thu May 21 16:05:53 2015 +0200 fs: Rename file_remove_suid() to file_remove_privs() file_remove_suid() is a misnomer since it removes also file capabilities stored in xattrs and sets S_NOSEC flag. Also should_remove_suid() tells something else than whether file_remove_suid() call is necessary which leads to bugs. Signed-off-by: Jan Kara Signed-off-by: Al Viro fs/btrfs/file.c | 2 +- fs/ceph/file.c | 2 +- fs/fuse/file.c | 2 +- fs/inode.c | 13 ++++++++----- fs/ntfs/file.c | 2 +- fs/xfs/xfs_file.c | 2 +- include/linux/fs.h | 2 +- mm/filemap.c | 2 +- 8 files changed, 15 insertions(+), 12 deletions(-) commit 2426f3910069ed47c0cc58559a6d088af7920201 Author: Jan Kara Date: Thu May 21 16:05:52 2015 +0200 fs: Fix S_NOSEC handling file_remove_suid() could mistakenly set S_NOSEC inode bit when root was modifying the file. As a result following writes to the file by ordinary user would avoid clearing suid or sgid bits. Fix the bug by checking actual mode bits before setting S_NOSEC. CC: stable@vger.kernel.org Signed-off-by: Jan Kara Signed-off-by: Al Viro fs/inode.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c0c3a718e3ab2430a52a60d614b109e5e48e83e2 Author: Dan Carpenter Date: Fri Jun 19 09:00:55 2015 +1000 fs/posix_acl.c: make posix_acl_create() safer and cleaner If posix_acl_create() returns an error code then "*acl" and "*default_acl" can be uninitialized or point to freed memory. This is a dangerous thing to do. For example, it causes a problem in ocfs2_reflink(): fs/ocfs2/refcounttree.c:4327 ocfs2_reflink() error: potentially using uninitialized 'default_acl'. I've re-written this so we set the pointers to NULL at the start. I've added a temporary "clone" variable to hold the value of "*acl" until end. Setting them to NULL means means we don't need the "no_acl" label. We may as well remove the "apply_umask" stuff forward and remove that label as well. Signed-off-by: Dan Carpenter Cc: Alexander Viro Cc: Joel Becker Cc: Mark Fasheh Signed-off-by: Andrew Morton fs/posix_acl.c | 46 ++++++++++++++++++++-------------------------- 1 file changed, 20 insertions(+), 26 deletions(-) commit 6b6dabc8dcefaf9997ce037c70b32d570ced9d3e Author: Al Viro Date: Sun Jun 21 01:37:24 2015 -0400 nilfs2_direct_IO(): remove dead code Signed-off-by: Al Viro fs/nilfs2/inode.c | 22 ++-------------------- 1 file changed, 2 insertions(+), 20 deletions(-) commit 2726d56620ce71f40dd583d51391b86e1ab8cc57 Author: Miklos Szeredi Date: Fri Jun 19 10:30:28 2015 +0200 vfs: add seq_file_path() helper Turn seq_path(..., &file->f_path, ...); into seq_file_path(..., file, ...); Signed-off-by: Miklos Szeredi Signed-off-by: Al Viro drivers/md/bitmap.c | 2 +- fs/proc/nommu.c | 2 +- fs/proc/task_mmu.c | 4 ++-- fs/proc/task_nommu.c | 2 +- fs/seq_file.c | 14 ++++++++++++++ include/linux/seq_file.h | 1 + mm/swapfile.c | 2 +- 7 files changed, 21 insertions(+), 6 deletions(-) commit 9bf39ab2adafd7cf8740859cb49e7b7952813a5d Author: Miklos Szeredi Date: Fri Jun 19 10:29:13 2015 +0200 vfs: add file_path() helper Turn d_path(&file->f_path, ...); into file_path(file, ...); Signed-off-by: Miklos Szeredi Signed-off-by: Al Viro arch/arc/kernel/troubleshoot.c | 10 +++------- arch/blackfin/kernel/trace.c | 2 +- arch/tile/kernel/stack.c | 2 +- arch/tile/mm/elf.c | 2 +- drivers/block/loop.c | 2 +- drivers/md/bitmap.c | 2 +- drivers/md/md.c | 2 +- drivers/usb/gadget/function/f_mass_storage.c | 2 +- drivers/usb/gadget/function/storage_common.c | 2 +- fs/binfmt_elf.c | 4 ++-- fs/coredump.c | 2 +- fs/ext4/super.c | 2 +- fs/open.c | 6 ++++++ include/linux/fs.h | 2 ++ kernel/events/core.c | 2 +- mm/memory.c | 2 +- 16 files changed, 25 insertions(+), 21 deletions(-) commit 83b2ea257eb1d43e52f76d756722aeb899a2852c Author: Adrian Hunter Date: Fri May 29 16:33:38 2015 +0300 perf tools: Allow auxtrace data alignment Allow auxtrace data to be a multiple of something other than page size. That is needed for BTS where the buffer contains 24-byte records. Signed-off-by: Adrian Hunter Cc: Jiri Olsa Link: http://lkml.kernel.org/r/1432906425-9911-11-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/auxtrace.c | 7 +++++++ tools/perf/util/auxtrace.h | 1 + 2 files changed, 8 insertions(+) commit 38e89d2b1771649c006720903c06d8b8bedd4d83 Author: Jiri Olsa Date: Tue Jun 23 00:36:02 2015 +0200 perf thread_map: Change map entries into a struct We need to store command names with the pid. Changing map entries to be a struct holding pid. Process name is coming in shortly. Signed-off-by: Jiri Olsa Cc: Adrian Hunter Cc: Andi Kleen Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1435012588-9007-2-git-send-email-jolsa@kernel.org [ Split providing the set/get accessors from transforming the entries structs ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/thread_map.h | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit e13798c77bdfed1da497f5e076b105b2be17b44f Author: Jiri Olsa Date: Tue Jun 23 00:36:02 2015 +0200 perf thread_map: Don't access the array entries directly Instead provide a method to set the array entries, and another to access the contents. Signed-off-by: Jiri Olsa Cc: Adrian Hunter Cc: Andi Kleen Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1435012588-9007-2-git-send-email-jolsa@kernel.org [ Split providing the set/get accessors from transforming the entries structs ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-trace.c | 4 ++-- tools/perf/tests/openat-syscall-tp-fields.c | 2 +- tools/perf/util/auxtrace.c | 4 ++-- tools/perf/util/event.c | 6 +++--- tools/perf/util/evlist.c | 4 ++-- tools/perf/util/evsel.c | 2 +- tools/perf/util/thread_map.c | 24 +++++++++++++----------- tools/perf/util/thread_map.h | 10 ++++++++++ 8 files changed, 34 insertions(+), 22 deletions(-) commit 7c31bb8c95ed269062ff7c7cc4a28b84a2b0f3a6 Author: He Kuang Date: Thu Jun 18 02:49:10 2015 +0000 perf probe: Fix failure to probe events on arm Fix failure to probe events on arm, the problem was introduced by commit 5a51fcd1f30c ("perf probe: Skip kernel symbols which is out of .text"). For some architectures, the '_etext' label is not in the .text section (in the .notes section for arm/arm64). Labels out of the .text section are not loaded as symbols and we get a zero value when looking up its addresses, which causes all events to be wrongly skipped. This patch skips checking the text address range when failing to get the address of '_etext' and thus fixes the problem. The problem can be reproduced on arm as follows: # perf probe --add='generic_perform_write' generic_perform_write+0 is out of .text, skip it. Probe point 'generic_perform_write' not found. Error: Failed to add events. After this patch: # perf probe --add='generic_perform_write' Added new event: probe:generic_perform_write (on generic_perform_write) You can now use it in all perf tools, such as: perf record -e probe:generic_perform_write -aR sleep 1 Signed-off-by: He Kuang Acked-by: Masami Hiramatsu Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Wang Nan Link: http://lkml.kernel.org/r/1434595750-129791-1-git-send-email-hekuang@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/probe-event.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit fe692ac86adbbbbf9745909aafe0c87fd7fc6368 Author: Adrian Hunter Date: Tue Jun 23 10:52:49 2015 +0300 perf tools: Print a newline before dumping Aggregated stats When dumping events with 'perf report -D' the event print always starts with a newline (see dump_event()). Do the same with the "Aggregated stats" print so that it is not jammed up against the last event print. Signed-off-by: Adrian Hunter Cc: Jiri Olsa Link: http://lkml.kernel.org/r/1435045969-15999-2-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/session.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5531e16227cc18bc13b028a052a609a233b49c07 Author: Adrian Hunter Date: Tue Jun 23 10:52:48 2015 +0300 perf session: Print a newline when dumping PERF_RECORD_FINISHED_ROUND With 'perf report -D' the PERF_RECORD_FINISHED_ROUND event was printed without a newline, resulting in: 0x91a18 [0x8]: PERF_RECORD_FINISHED_ROUNDAggregated stats Other events print their details, but PERF_RECORD_FINISHED_ROUND doesn't have any so just add a print for a newline. Signed-off-by: Adrian Hunter Cc: Jiri Olsa Link: http://lkml.kernel.org/r/1435045969-15999-1-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/session.c | 2 ++ 1 file changed, 2 insertions(+) commit 5b021ddf81b0bcd17d88186b605f53a2ca452d3a Author: Andi Kleen Date: Wed Jun 10 00:25:11 2015 -0700 perf tools: Allow events with dot The Intel events use a dot to separate event name and unit mask. Allow dot in names in the scanner, and remove special handling of dot as EOF. Also remove the hack in jevents to replace dot with underscore. This way dotted events can be specified directly by the user. I'm not fully sure this change to the scanner is correct (what was the dot special case good for?), but I haven't found anything that breaks with it so far at least. Signed-off-by: Andi Kleen Acked-by: Jiri Olsa Acked-by: Namhyung Kim Cc: Madhavan Srinivasan Cc: Michael Ellerman Cc: linuxppc-dev@lists.ozlabs.org Link: http://lkml.kernel.org/r/1433921123-25327-8-git-send-email-sukadev@linux.vnet.ibm.com Signed-off-by: Sukadev Bhattiprolu Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/parse-events.l | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 70c646e0e47b51c8fa431f9ec1962f7d6e512860 Author: Sukadev Bhattiprolu Date: Wed Jun 10 00:25:08 2015 -0700 perf pmu: Split perf_pmu__new_alias() Separate the event parsing code in perf_pmu__new_alias() out into a separate function __perf_pmu__new_alias() so that code can be called indepdently. This is based on an earlier patch from Andi Kleen. Signed-off-by: Sukadev Bhattiprolu Acked-by: Jiri Olsa Cc: Andi Kleen Cc: Madhavan Srinivasan Cc: Michael Ellerman Cc: Namhyung Kim Cc: linuxppc-dev@lists.ozlabs.org Link: http://lkml.kernel.org/r/1433921123-25327-5-git-send-email-sukadev@linux.vnet.ibm.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/pmu.c | 42 +++++++++++++++++++++++++++--------------- 1 file changed, 27 insertions(+), 15 deletions(-) commit c5de47f2e803c7e6ffc0a34b174d4d009c8bd8e1 Author: Sukadev Bhattiprolu Date: Wed Jun 10 00:25:07 2015 -0700 perf pmu: Use __weak definition from Jiri Olsa pointed out, that the defines the attribute '__weak'. We might as well use that. Signed-off-by: Sukadev Bhattiprolu Acked-by: Jiri Olsa Cc: Andi Kleen Cc: Madhavan Srinivasan Cc: Michael Ellerman Cc: Namhyung Kim Cc: linuxppc-dev@lists.ozlabs.org Link: http://lkml.kernel.org/r/1433921123-25327-4-git-send-email-sukadev@linux.vnet.ibm.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/pmu.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 43c9fad942b5afb9e03801c0721d83160fa5b0dd Merge: cb8a4de d461003 Author: Linus Torvalds Date: Tue Jun 23 14:18:07 2015 -0700 Merge tag 'pm+acpi-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm Pull power management and ACPI updates from Rafael Wysocki: "The rework of backlight interface selection API from Hans de Goede stands out from the number of commits and the number of affected places perspective. The cpufreq core fixes from Viresh Kumar are quite significant too as far as the number of commits goes and because they should reduce CPU online/offline overhead quite a bit in the majority of cases. From the new featues point of view, the ACPICA update (to upstream revision 20150515) adding support for new ACPI 6 material to ACPICA is the one that matters the most as some new significant features will be based on it going forward. Also included is an update of the ACPI device power management core to follow ACPI 6 (which in turn reflects the Windows' device PM implementation), a PM core extension to support wakeup interrupts in a more generic way and support for the ACPI _CCA device configuration object. The rest is mostly fixes and cleanups all over and some documentation updates, including new DT bindings for Operating Performance Points. There is one fix for a regression introduced in the 4.1 cycle, but it adds quite a number of lines of code, it wasn't really ready before Thursday and you were on vacation, so I refrained from pushing it on the last minute for 4.1. Specifics: - ACPICA update to upstream revision 20150515 including basic support for ACPI 6 features: new ACPI tables introduced by ACPI 6 (STAO, XENV, WPBT, NFIT, IORT), changes related to the other tables (DTRM, FADT, LPIT, MADT), new predefined names (_BTH, _CR3, _DSD, _LPI, _MTL, _PRR, _RDI, _RST, _TFP, _TSN), fixes and cleanups (Bob Moore, Lv Zheng). - ACPI device power management core code update to follow ACPI 6 which reflects the ACPI device power management implementation in Windows (Rafael J Wysocki). - rework of the backlight interface selection logic to reduce the number of kernel command line options and improve the handling of DMI quirks that may be involved in that and to make the code generally more straightforward (Hans de Goede). - fixes for the ACPI Embedded Controller (EC) driver related to the handling of EC transactions (Lv Zheng). - fix for a regression related to the ACPI resources management and resulting from a recent change of ACPI initialization code ordering (Rafael J Wysocki). - fix for a system initialization regression related to ACPI introduced during the 3.14 cycle and caused by running the code that switches the platform over to the ACPI mode too early in the initialization sequence (Rafael J Wysocki). - support for the ACPI _CCA device configuration object related to DMA cache coherence (Suravee Suthikulpanit). - ACPI/APEI fixes and cleanups (Jiri Kosina, Borislav Petkov). - ACPI battery driver cleanups (Luis Henriques, Mathias Krause). - ACPI processor driver cleanups (Hanjun Guo). - cleanups and documentation update related to the ACPI device properties interface based on _DSD (Rafael J Wysocki). - ACPI device power management fixes (Rafael J Wysocki). - assorted cleanups related to ACPI (Dominik Brodowski, Fabian Frederick, Lorenzo Pieralisi, Mathias Krause, Rafael J Wysocki). - fix for a long-standing issue causing General Protection Faults to be generated occasionally on return to user space after resume from ACPI-based suspend-to-RAM on 32-bit x86 (Ingo Molnar). - fix to make the suspend core code return -EBUSY consistently in all cases when system suspend is aborted due to wakeup detection (Ruchi Kandoi). - support for automated device wakeup IRQ handling allowing drivers to make their PM support more starightforward (Tony Lindgren). - new tracepoints for suspend-to-idle tracing and rework of the prepare/complete callbacks tracing in the PM core (Todd E Brandt, Rafael J Wysocki). - wakeup sources framework enhancements (Jin Qian). - new macro for noirq system PM callbacks (Grygorii Strashko). - assorted cleanups related to system suspend (Rafael J Wysocki). - cpuidle core cleanups to make the code more efficient (Rafael J Wysocki). - powernv/pseries cpuidle driver update (Shilpasri G Bhat). - cpufreq core fixes related to CPU online/offline that should reduce the overhead of these operations quite a bit, unless the CPU in question is physically going away (Viresh Kumar, Saravana Kannan). - serialization of cpufreq governor callbacks to avoid race conditions in some cases (Viresh Kumar). - intel_pstate driver fixes and cleanups (Doug Smythies, Prarit Bhargava, Joe Konno). - cpufreq driver (arm_big_little, cpufreq-dt, qoriq) updates (Sudeep Holla, Felipe Balbi, Tang Yuantian). - assorted cleanups in cpufreq drivers and core (Shailendra Verma, Fabian Frederick, Wang Long). - new Device Tree bindings for representing Operating Performance Points (Viresh Kumar). - updates for the common clock operations support code in the PM core (Rajendra Nayak, Geert Uytterhoeven). - PM domains core code update (Geert Uytterhoeven). - Intel Knights Landing support for the RAPL (Running Average Power Limit) power capping driver (Dasaratharaman Chandramouli). - fixes related to the floor frequency setting on Atom SoCs in the RAPL power capping driver (Ajay Thomas). - runtime PM framework documentation update (Ben Dooks). - cpupower tool fix (Herton R Krzesinski)" * tag 'pm+acpi-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (194 commits) cpuidle: powernv/pseries: Auto-promotion of snooze to deeper idle state x86: Load __USER_DS into DS/ES after resume PM / OPP: Add binding for 'opp-suspend' PM / OPP: Allow multiple OPP tables to be passed via DT PM / OPP: Add new bindings to address shortcomings of existing bindings ACPI: Constify ACPI device IDs in documentation ACPI / enumeration: Document the rules regarding the PRP0001 device ID ACPI / video: Make acpi_video_unregister_backlight() private acpi-video-detect: Remove old API toshiba-acpi: Port to new backlight interface selection API thinkpad-acpi: Port to new backlight interface selection API sony-laptop: Port to new backlight interface selection API samsung-laptop: Port to new backlight interface selection API msi-wmi: Port to new backlight interface selection API msi-laptop: Port to new backlight interface selection API intel-oaktrail: Port to new backlight interface selection API ideapad-laptop: Port to new backlight interface selection API fujitsu-laptop: Port to new backlight interface selection API eeepc-laptop: Port to new backlight interface selection API dell-wmi: Port to new backlight interface selection API ... commit cb8a4deaf9b2778653c4391d8ccb24c5ab159f9d Merge: 0faef83 79ce48d Author: Linus Torvalds Date: Tue Jun 23 14:08:54 2015 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial Pull trivial tree updates from Jiri Kosina: "As usual, mostly comment, kerneldoc and printk() fixes" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: lpfc: Grammar s/an negative/a negative/ ARM: lib/lib1funcs.S: fix typo s/substractions/subtractions/ cx25821: cx25821-medusa-reg.h: fix 0x0x prefix lib: crc-itu-t.[ch] fix 0x0x prefix in integer constants rapidio: Fix kerneldoc and comment qla4xxx: Fix printk() in qla4_83xx_read_reset_template() and qla4_83xx_pre_loopback_config() treewide: Kconfig: fix wording / spelling usb/serial: fix grammar in Kconfig help text for FTDI_SIO megaraid_sas: fix kerneldoc netfilter: ebtables: fix comment grammar drm/radeon: fix comment isdn: fix grammar in comment ARM: KVM: fix comment commit 0faef837e431b4984652f4a14d2075bed108a04d Merge: 67db8a8 110c146 Author: Linus Torvalds Date: Tue Jun 23 14:07:26 2015 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/livepatching Pull livepatching fixes from Jiri Kosina: - symbol lookup locking fix, from Miroslav Benes - error handling improvements in case of failure of the module coming notifier, from Minfei Huang - we were too pessimistic when kASLR has been enabled on x86 and were dropping address hints on the floor unnecessarily in such case. Fix from Jiri Kosina - a few other small fixes and cleanups * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/livepatching: livepatch: add module locking around kallsyms calls livepatch: annotate klp_init() with __init livepatch: introduce patch/func-walking helpers livepatch: make kobject in klp_object statically allocated livepatch: Prevent patch inconsistencies if the coming module notifier fails livepatch: match return value to function signature x86: kaslr: fix build due to missing ALIGN definition livepatch: x86: make kASLR logic more accurate x86: introduce kaslr_offset() commit 67db8a8086e9b865533348954f5547f1e433101e Merge: a394c6a ec3b34e Author: Linus Torvalds Date: Tue Jun 23 14:05:52 2015 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid Pull HID updates from Jiri Kosina: - spurious power/wakeup sysfs files removal for I2C-HID devices, from Andrew Duggan - Logitech M560 support, from Goffredo Baroncelli - a lot of housekeeping cleanups to hid-lg4ff driver, from Michal Maly - improved support for Plantronics devices, from Terry Junge - Sony Motion Controller and Navigation Controller support and subsequent cleanups of hid-sony driver, from Frank Praznik and Simon Wood - HW support improvements to the Wacom driver, from Jason Gerecke and Ping Cheng - assorted small cleanups and device ID additions all over the place * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: (69 commits) HID: cypress: use swap() in cp_report_fixup() HID: microsoft: Add Surface Power Cover HID: hid-sony: Fix report descriptor for Navigation Controller HID: hid-sony: Navigation controller only has 1 LED and no rumble HID: hid-sony: Add BT support for Navigation Controller HID: wacom: Introduce new 'touch_input' device HID: wacom: Split apart 'wacom_setup_pentouch_input_capabilites' HID: wacom: Introduce a new WACOM_DEVICETYPE_PAD device_type HID: wacom: Treat features->device_type values as flags HID: wacom: Simplify 'wacom_update_name' HID: rmi: Disable populating F30 when the touchpad has physical buttons HID: plantronics: Update to map volume up/down controls HID: sony: PS Move fix report descriptor HID: sony: PS3 Move enable LEDs and Rumble via BT HID: sony: Add support PS3 Move Battery via BT HID: sony: Add quirk for MOTION_CONTROLLER_BT HID: sony: Support PS3 Move Controller when connected via Bluetooth HID: i2c-hid: Do not set the ACPI companion field in the HID device usb, HID: Remove Vernier devices from lsusb and hid_ignore_list HID: hidpp: Add driver for mouse logitech M560 ... commit a394c6a0b361fe7b6ffec0e33e9100db5e777b24 Merge: d813335 e8e68fd Author: Linus Torvalds Date: Tue Jun 23 14:04:00 2015 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia Pull PCMCIA update from Dominik Brodowski: "A few PCMCIA fixes and cleanups are available in the PCMCIA tree. Most of them are trivial and self-explanatory. Of particular note are the last three patches which add an important hardware quirk for Toshiba ToPIC95 sockets (or BIOS breakage on systems with these sockets), fix resource leaks in yenta_socket enable/disable call paths, and fix a regression caused by patch 1c6c9b1d9d25 since v4.0. Alan stated he is OK with me pushing this patch upstream. Once it works out well in your tree, I will push it to stable for 4.0/4.1 as well" * git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia: pcmcia: do not break rsrc_nonstatic when handling anonymous cards pcmcia: Fix resource leaks in yenta_probe() and _close() Disable write buffering on Toshiba ToPIC95 pcmcia: Convert dev_printk to dev_ pcmcia/vrc4171: Remove typedefs for enums and struct pcmcia: Remove typedef in structs and emum pcmcia: Remove typedef tuple_flags drivers: pcmcia: electra_cf.c fix checkpatch error and warnings drivers: pcmcia: ds.c fix checkpatch errors PCMCIA: Remove commented references to dead class_device_create_file() drivers/pcmcia/electra_cf.c: add missing iounmap and kfree pcmcia: replace open-coded ARRAY_SIZE with macro commit d8133356e99713bd023b229de107ddd6dd6d375a Merge: 234a56c 207b074 Author: Linus Torvalds Date: Tue Jun 23 13:41:24 2015 -0700 Merge tag 'pci-v4.2-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci Pull PCI updates from Bjorn Helgaas: "PCI changes for the v4.2 merge window: Enumeration - Move pci_ari_enabled() to global header (Alex Williamson) - Account for ARI in _PRT lookups (Alex Williamson) - Remove unused pci_scan_bus_parented() (Yijing Wang) Resource management - Use host bridge _CRS info on systems with >32 bit addressing (Bjorn Helgaas) - Use host bridge _CRS info on Foxconn K8M890-8237A (Bjorn Helgaas) - Fix pci_address_to_pio() conversion of CPU address to I/O port (Zhichang Yuan) - Add pci_bus_addr_t (Yinghai Lu) PCI device hotplug - Wait for pciehp command completion where necessary (Alex Williamson) - Drop pointless ACPI-based "slot detection" check (Rafael J. Wysocki) - Check ignore_hotplug for all downstream devices (Rafael J. Wysocki) - Propagate the "ignore hotplug" setting to parent (Rafael J. Wysocki) - Inline pciehp "handle event" functions into the ISR (Bjorn Helgaas) - Clean up pciehp debug logging (Bjorn Helgaas) Power management - Remove redundant PCIe port type checking (Yijing Wang) - Add dev->has_secondary_link to track downstream PCIe links (Yijing Wang) - Use dev->has_secondary_link to find downstream links for ASPM (Yijing Wang) - Drop __pci_disable_link_state() useless "force" parameter (Bjorn Helgaas) - Simplify Clock Power Management setting (Bjorn Helgaas) Virtualization - Add ACS quirks for Intel 9-series PCH root ports (Alex Williamson) - Add function 1 DMA alias quirk for Marvell 9120 (Sakari Ailus) MSI - Disable MSI at enumeration even if kernel doesn't support MSI (Michael S. Tsirkin) - Remove unused pci_msi_off() (Bjorn Helgaas) - Rename msi_set_enable(), msix_clear_and_set_ctrl() (Michael S. Tsirkin) - Export pci_msi_set_enable(), pci_msix_clear_and_set_ctrl() (Michael S. Tsirkin) - Drop pci_msi_off() calls during probe (Michael S. Tsirkin) APM X-Gene host bridge driver - Add APM X-Gene v1 PCIe MSI/MSIX termination driver (Duc Dang) - Add APM X-Gene PCIe MSI DTS nodes (Duc Dang) - Disable Configuration Request Retry Status for v1 silicon (Duc Dang) - Allow config access to Root Port even when link is down (Duc Dang) Broadcom iProc host bridge driver - Allow override of device tree IRQ mapping function (Hauke Mehrtens) - Add BCMA PCIe driver (Hauke Mehrtens) - Directly add PCI resources (Hauke Mehrtens) - Free resource list after registration (Hauke Mehrtens) Freescale i.MX6 host bridge driver - Add speed change timeout message (Troy Kisky) - Rename imx6_pcie_start_link() to imx6_pcie_establish_link() (Bjorn Helgaas) Freescale Layerscape host bridge driver - Use dw_pcie_link_up() consistently (Bjorn Helgaas) - Factor out ls_pcie_establish_link() (Bjorn Helgaas) Marvell MVEBU host bridge driver - Remove mvebu_pcie_scan_bus() (Yijing Wang) NVIDIA Tegra host bridge driver - Remove tegra_pcie_scan_bus() (Yijing Wang) Synopsys DesignWare host bridge driver - Consolidate outbound iATU programming functions (Jisheng Zhang) - Use iATU0 for cfg and IO, iATU1 for MEM (Jisheng Zhang) - Add support for x8 links (Zhou Wang) - Wait for link to come up with consistent style (Bjorn Helgaas) - Use pci_scan_root_bus() for simplicity (Yijing Wang) TI DRA7xx host bridge driver - Use dw_pcie_link_up() consistently (Bjorn Helgaas) Miscellaneous - Include , not (Bjorn Helgaas) - Remove unnecessary #includes of (Bjorn Helgaas) - Remove unused pcibios_select_root() (again) (Bjorn Helgaas) - Remove unused pci_dma_burst_advice() (Bjorn Helgaas) - xen/pcifront: Don't use deprecated function pci_scan_bus_parented() (Arnd Bergmann)" * tag 'pci-v4.2-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (58 commits) PCI: pciehp: Inline the "handle event" functions into the ISR PCI: pciehp: Rename queue_interrupt_event() to pciehp_queue_interrupt_event() PCI: pciehp: Make queue_interrupt_event() void PCI: xgene: Allow config access to Root Port even when link is down PCI: xgene: Disable Configuration Request Retry Status for v1 silicon PCI: pciehp: Clean up debug logging x86/PCI: Use host bridge _CRS info on systems with >32 bit addressing PCI: imx6: Add #define PCIE_RC_LCSR PCI: imx6: Use "u32", not "uint32_t" PCI: Remove unused pci_scan_bus_parented() xen/pcifront: Don't use deprecated function pci_scan_bus_parented() PCI: imx6: Add speed change timeout message PCI/ASPM: Simplify Clock Power Management setting PCI: designware: Wait for link to come up with consistent style PCI: layerscape: Factor out ls_pcie_establish_link() PCI: layerscape: Use dw_pcie_link_up() consistently PCI: dra7xx: Use dw_pcie_link_up() consistently x86/PCI: Use host bridge _CRS info on Foxconn K8M890-8237A PCI: pciehp: Wait for hotplug command completion where necessary PCI: Remove unused pci_dma_burst_advice() ... commit 234a56c80a6aa7a05fec05d8b7184354d8765b48 Merge: a57f14b 761c177 Author: Linus Torvalds Date: Tue Jun 23 13:39:56 2015 -0700 Merge tag 'hwmon-for-linus-v4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging Pull hwmon updates from Guenter Roeck: - new driver for Microchip TC74 - support for ncpXXwf104 added to ntc_thermistor driver - minor cleanup * tag 'hwmon-for-linus-v4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: hwmon: add driver for Microchip TC74 hwmon: (ntc_thermistor) Improve precision of resistance calculation hwmon: (ntc_thermistor) fix iio raw to microvolts conversion hwmon: (atxp1) Drop auto-detection hwmon: (atxp1) Drop FSF mailing address hwmon: Allow compile test of GPIO consumers if !GPIOLIB hwmon: (sht15) Constify platform_device_id hwmon: (max197) Constify platform_device_id hwmon: (ntc_thermistor) Add support for ncpXXwf104 commit a57f14bac07f63118d947f53976d7f15c04b062a Merge: 10b4b09 a8c27c0 Author: Linus Torvalds Date: Tue Jun 23 13:38:04 2015 -0700 Merge tag 'mmc-v4.2' of git://git.linaro.org/people/ulf.hansson/mmc Pull MMC updates from Ulf Hansson: "Here are the changes for MMC for v4.2. MMC core: - Fix an error path in the mmc block layer - Fix PM domain attachment for the SDIO bus - Add support for driver strength selection - Increase a delay to let voltage stabilize - Add support for disabling write-protect detection - Add facility to support re-tuning - Re-tune and retry in the recovery path - Add reset option for SDIO - Consolidations and clean-ups MMC host: - Add Mediatek MMC driver - Constify platform_device_id for a couple of hosts - Fix modalias to make module auto-loading work for a couple of hosts - sdhci: Add support for sdhci-arasan4.9a - sdhci: Fix low memory corruption - sdhci: Restore behavior while creating OCR mask - sdhci: Add a callback to select drive strength - sdhci: Fix driver type B and D handling - sdhci: Add support for drive strength selection for SPT - sdhci: Enable HS400 for some Intel host controllers - sdhci: Convert to use the new re-tuning facility - sdhci: Various minor fixes and clean-ups - dw_mmc: Add support for hi6220 - dw_mmc: Use core to handle absent write protect line - dw_mmc: Add support to switch voltage - tmio: Some fixes and modernizations - sh_mmcif: Improve clock rate calculation" * tag 'mmc-v4.2' of git://git.linaro.org/people/ulf.hansson/mmc: (98 commits) mmc: queue: prevent soft lockups on PREEMPT=n mmc: mediatek: Add PM support for MMC driver mmc: mediatek: Add Mediatek MMC driver mmc: dt-bindings: add Mediatek MMC bindings mmc: card: Fixup request missing in mmc_blk_issue_rw_rq mmc: sdhci: fix low memory corruption mmc: sdhci-pci: Change AMD SDHCI quirk application scope i2c-piix4: Use Macro for AMD CZ SMBus device ID pci_ids: Add AMD KERNCZ device ID support mmc: queue: use swap() in mmc_queue_thread() mmc: dw_mmc: insmod followed by rmmod will hung for eMMC mmc: sdhci: Restore behavior while creating OCR mask mmc: sdhci-pxav3: fix device wakeup initialization mmc: core: Attach PM domain prior probing of SDIO func driver mmc: core: Remove redundant ->power_restore() callback for SD mmc: core: Remove redundant ->power_restore() callback for MMC mmc: sdhci-bcm2835: Actually enable the clock mmc: sdhci-bcm2835: Clean up platform allocations if sdhci init fails. mmc: sdhci-of-esdhc: enable interrupt mode to detect card mmc: sdhci-esdhc-imx: add quirk SDHCI_QUIRK2_BROKEN_HS200 for imx6qdl ... commit 10b4b096d0c7e9f1b5f84c2a0658b2963e1e6ed0 Merge: c70c5fb 38e003f Author: Linus Torvalds Date: Tue Jun 23 13:34:02 2015 -0700 Merge tag 'gpio-v4.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio Pull gpio updates from Linus Walleij: "This is the big bulk of GPIO changes queued for the v4.2 kernel series: - a big set of cleanups to the aged sysfs interface from Johan Hovold. To get these in, v4.1-rc3 was merged into the tree as the first patch in that series had to go into stable. This makes the locking much more fine-grained (get rid of the "big GPIO lock(s)" and store states in the GPIO descriptors. - rename gpiod_[g|s]et_array() to gpiod_[g|s]et_array_value() to avoid confusions. - New drivers for: * NXP LPC18xx (currently LPC1850) * NetLogic XLP * Broadcom STB SoC's * Axis ETRAXFS * Zynq Ultrascale+ (subdriver) - ACPI: * make it possible to retrieve GpioInt resources from a GPIO device using acpi_dev_gpio_irq_get() * merge some dependent I2C changes exploiting this. * support the ARM X-Gene GPIO standby driver. - make it possible for the generic GPIO driver to read back the value set registers to reflect current status. - loads of OMAP IRQ handling fixes. - incremental improvements to Kona, max732x, OMAP, MXC, RCAR, PCA953x, STP-XWAY, PCF857x, Crystalcove, TB10x. - janitorial (constification, checkpatch cleanups)" * tag 'gpio-v4.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (71 commits) gpio: Fix checkpatch.pl issues gpio: pcf857x: handle only enabled irqs gpio / ACPI: Return -EPROBE_DEFER if the gpiochip was not found GPIO / ACPI: export acpi_gpiochip_request(free)_interrupts for module use gpio: improve error reporting on own descriptors gpio: promote own request failure to pr_err() gpio: Added support to Zynq Ultrascale+ MPSoC gpio: add ETRAXFS GPIO driver fix documentation after renaming gpiod_set_array to gpiod_set_array_value gpio: Add GPIO support for Broadcom STB SoCs gpio: xgene: add ACPI support for APM X-Gene GPIO standby driver gpio: tb10x: Drop unneeded free_irq() call gpio: crystalcove: set IRQCHIP_SKIP_SET_WAKE for the irqchip gpio: stp-xway: Use the of_property_read_u32 helper gpio: pcf857x: Check for irq_set_irq_wake() failures gpio-stp-xway: Fix enabling the highest bit of the PHY LEDs gpio: Prevent an integer overflow in the pca953x driver gpio: omap: rework omap_gpio_irq_startup to handle current pin state properly gpio: omap: rework omap_gpio_request to touch only gpio specific registers gpio: omap: rework omap_x_irq_shutdown to touch only irqs specific registers ... commit c70c5fb2b96dae0996fb0877d996458d3ca57eda Merge: 44d21c3 361c106 Author: Linus Torvalds Date: Tue Jun 23 13:32:38 2015 -0700 Merge tag 'pwm/for-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm Pull pwm updates from Thierry Reding: "This has a couple of fixes for Atmel, Samsung and Broadcom drivers. Some preparatory patches for more upcoming Intel work is included as well" * tag 'pwm/for-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm: pwm: lpss: pci: Add support for Broxton platform pwm: bcm-kona: Don't set polarity in probe pwm: Add pwmchip_add_with_polarity() API pwm: atmel: Fix incorrect CDTY value after disabling pwm: atmel: Fix incorrect CDTY value after enabling pwm: samsung: Use MODULE_DEVICE_TABLE() to include OF modalias pwm: Add support to remove registered consumer lookup tables commit a294aba164389a3d2c40dfcf5f3989a3bbfe38a2 Author: Silvan Wicki Date: Thu Jun 18 11:10:11 2015 +0200 i2c: busses: i2c-bcm2835: limits cdiv to allowed values Checks if the cdiv value is in between min (0x2) and max (0xFFFE) supported values by the bcm2835. If not, it returns -ENODEV. See page 33/34 of BCM2835-ARM-Peripherals.pdf for the DIV register. https://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf Signed-off-by: Silvan Wicki [wsa: resolved a merge conflict] Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-bcm2835.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 365322fb32e82b20758e8a18e3aa94692ce2a3d1 Author: Wolfram Sang Date: Sat Jun 20 21:03:22 2015 +0200 i2c: sh_mobile: use proper type for timeout wait_event_timeout returns long, not int. Signed-off-by: Wolfram Sang Acked-by: Laurent Pinchart Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-sh_mobile.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 41bdbd2887591a3fa586e71cd2b462c3525845a3 Author: Wolfram Sang Date: Sat Jun 20 21:03:21 2015 +0200 i2c: sh_mobile: use adapter default for timeout 5 seconds is a very large timeout, and it is hardcoded. Use the default timeout from 'struct adapter' which is 1 second. It can also be modified from userspace for specific workloads via i2c-dev. Signed-off-by: Wolfram Sang Acked-by: Laurent Pinchart Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-sh_mobile.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b6763d0da5c16ea8770252c36ba2afca76aaedbd Author: Wolfram Sang Date: Sat Jun 20 21:03:20 2015 +0200 i2c: rcar: use proper type for timeout wait_event_timeout returns long, not int. Signed-off-by: Wolfram Sang Acked-by: Laurent Pinchart Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-rcar.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit efd2c6118e49152bea891706432ac3c9579836fe Author: Wolfram Sang Date: Sat Jun 20 21:03:19 2015 +0200 i2c: rcar: use adapter default for timeout 5 seconds is a very large timeout, and it is hardcoded. Use the default timeout from 'struct adapter' which is 1 second. It can also be modified from userspace for specific workloads via i2c-dev. Signed-off-by: Wolfram Sang Acked-by: Laurent Pinchart Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-rcar.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0b34c1a489f6f018c4fbfbd12657acaa0b4f4ca9 Author: Thomas Langer Date: Thu Jun 18 18:19:02 2015 +0000 Documentation: DT: Fix a typo in the filename "lantiq,-pinumx.txt" To fix it, use the chance to rename according the compatible string, which is "lantiq,pinctrl-falcon" and "lantiq,pinctrl-xway" Signed-off-by: Thomas Langer Cc: John Crispin Signed-off-by: Rob Herring .../bindings/pinctrl/lantiq,falcon-pinumx.txt | 83 ------------------ .../bindings/pinctrl/lantiq,pinctrl-falcon.txt | 83 ++++++++++++++++++ .../bindings/pinctrl/lantiq,pinctrl-xway.txt | 97 ++++++++++++++++++++++ .../bindings/pinctrl/lantiq,xway-pinumx.txt | 97 ---------------------- 4 files changed, 180 insertions(+), 180 deletions(-) commit ce16b9d2356125eb791bd920c710b8512eecce54 Author: Suman Anna Date: Wed Jun 17 11:53:53 2015 -0500 of: define of_find_node_by_phandle for !CONFIG_OF Define stub implementation for of_find_node_by_phandle() API so that users of this API can build properly even when CONFIG_OF is not defined. Fixes x86 randconfig build failure of remoteproc. Signed-off-by: Suman Anna [robh: add details on fixing remoteproc compile] Signed-off-by: Rob Herring include/linux/of.h | 5 +++++ 1 file changed, 5 insertions(+) commit 294240ffe784e951dc2ef070da04fa31ef6db3a0 Author: Jingoo Han Date: Thu Jun 18 00:12:27 2015 +0900 of/address: use atomic allocation in pci_register_io_range() When kzalloc() is called under spin_lock(), GFP_ATOMIC should be used to avoid sleeping allocation. The call tree is: of_pci_range_to_resource() --> pci_register_io_range() <-- takes spin_lock(&io_range_lock); --> kzalloc() Signed-off-by: Jingoo Han Cc: stable@vger.kernel.org # 3.18+ Signed-off-by: Rob Herring drivers/of/address.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a2fd66d069d86d793e9d39d4079b96f46d13f237 Author: Theodore Ts'o Date: Tue Jun 23 11:03:54 2015 -0400 ext4: set lazytime on remount if MS_LAZYTIME is set by mount Newer versions of mount parse the lazytime feature and pass it to the mount system call via the flags field in the mount system call, removing the lazytime string from the mount options list. So we need to check for the presence of MS_LAZYTIME and set it in sb->s_flags in order for this flag to be set on a remount. Signed-off-by: Theodore Ts'o Cc: stable@vger.kernel.org fs/ext4/super.c | 3 +++ 1 file changed, 3 insertions(+) commit f2ae45edbca7ba5324eef01719ede0151dc5cead Author: Jens Freimann Date: Mon Jun 22 13:20:12 2015 +0200 KVM: s390: clear floating interrupt bitmap and parameters commit 6d3da24141 ("KVM: s390: deliver floating interrupts in order of priority") introduced a regression for the reset handling. We don't clear the bitmap of pending floating interrupts and interrupt parameters. This could result in stale interrupts even after a reset. Let's fix this by clearing the pending bitmap and the parameters for service and machine check interrupts. Cc: stable@vger.kernel.org # 4.1 Signed-off-by: Jens Freimann Signed-off-by: Christian Borntraeger Signed-off-by: Paolo Bonzini arch/s390/kvm/interrupt.c | 3 +++ 1 file changed, 3 insertions(+) commit 72d942e23cdab62fba0337403db218dcc9973494 Author: Andrew Lunn Date: Fri Jun 12 17:44:07 2015 +0200 of: Add vendor prefix for Zodiac Inflight Innovations Signed-off-by: Andrew Lunn Signed-off-by: Rob Herring Documentation/devicetree/bindings/vendor-prefixes.txt | 1 + 1 file changed, 1 insertion(+) commit cca0ba2df3d4000bacd9b7807d46ffafac62d53a Author: Hyungwon Hwang Date: Thu May 28 16:25:15 2015 +0900 backlight: Change the return type of backlight_update_status() to int Backlight device returns the result of update_status(), but backlight_update_status() ignores it. So the consumers cannot confirm the result of their function call. This patch makes the result to be returned back for consumers. Signed-off-by: Hyungwon Hwang Acked-by: Jingoo Han Signed-off-by: Lee Jones include/linux/backlight.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit cdaefccefa988495e732d85d81914fbba99f4ca6 Author: Axel Lin Date: Sat May 16 22:08:10 2015 +0800 backlight: pwm_bl: Simplify usage of devm_gpiod_get_optional Since 39b2bbe3d715 (gpio: add flags argument to gpiod_get*() functions), the gpiod_get* functions take an additional parameter that allows to specify direction and initial value for output. Simplify the usage of devm_gpiod_get_optional accordingly. Signed-off-by: Axel Lin Signed-off-by: Lee Jones drivers/video/backlight/pwm_bl.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 61c1c6147f69d8dea31fd133d2ec0b1594c9a3eb Author: Sean Paul Date: Mon May 11 13:32:05 2015 -0700 backlight: lp855x: Don't clear level on suspend/blank Don't clear the backlight level when we're going into suspend or blanking. Instead, just temporarily set the level to 0 so we retain the value when we resume. Reported-by: Benson Leung Signed-off-by: Sean Paul Tested-by: Stephen Barber Reviewed-by: Benson Leung Acked-by: Milo Kim Signed-off-by: Lee Jones drivers/video/backlight/lp855x_bl.c | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) commit 0e441665bc6286a306a23cb0354b56d61e1d9ce6 Author: Geert Uytterhoeven Date: Tue May 5 18:32:39 2015 +0200 backlight: 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. Cc: Jingoo Han Signed-off-by: Geert Uytterhoeven Signed-off-by: Lee Jones drivers/video/backlight/Kconfig | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit dba5ff95b6b810577d4881a28f1243960226bb14 Author: Krzysztof Kozlowski Date: Sat May 2 00:38:38 2015 +0900 video: backlight: da9052: 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: Lee Jones drivers/video/backlight/da9052_bl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4d866723d3e4f11b2e4b4f166f115f830bf5e481 Author: Arun Bharadwaj Date: Wed Apr 15 17:21:24 2015 -0700 gpio-backlight: Discover driver during boot time The gpio-backlight driver seems to be missing the MODULE_DEVICE_TABLE line which is preventing it from being modprobed during boot time even if the gpio-backlight device exists. This seems to be a bug and this patch attempts to fix that. Signed-off-by: Arun Bharadwaj Signed-off-by: Ash Charles Signed-off-by: Lee Jones drivers/video/backlight/gpio_backlight.c | 2 ++ 1 file changed, 2 insertions(+) commit 0a51f76e3c3efcd5eb740868e1096221f8d7d8e0 Merge: 0dd0770 c2d33bd Author: David S. Miller Date: Tue Jun 23 07:19:27 2015 -0700 Merge branch 'xgene-next' Suman Tripathi says: ==================== drivers: net: xgene: Fix the ACPI support for RGMII/SGMII0/XFI ethernet interfaces of APM X-Gene SoC. ==================== Signed-off-by: Iyappan Subramanian Signed-off-by: Suman Tripathi Signed-off-by: David S. Miller commit c2d33bdc66e3b7db574e6b4864225cb341bffbcd Author: Suman Tripathi Date: Tue Jun 23 14:47:17 2015 +0530 drivers: net: xgene: Check for IS_ERR rather than NULL for clock. This patches fixes the code to check for IS_ERR rather than NULL for clock interface. Signed-off-by: Iyappan Subramanian Signed-off-by: Suman Tripathi Signed-off-by: David S. Miller drivers/net/ethernet/apm/xgene/xgene_enet_hw.c | 5 +++-- drivers/net/ethernet/apm/xgene/xgene_enet_main.c | 2 +- drivers/net/ethernet/apm/xgene/xgene_enet_sgmac.c | 11 +++++++---- drivers/net/ethernet/apm/xgene/xgene_enet_xgmac.c | 11 +++++++---- 4 files changed, 18 insertions(+), 11 deletions(-) commit 822e34a48d0ef711a7c4c2a1ff6ac6930e6742bd Author: Suman Tripathi Date: Tue Jun 23 14:47:16 2015 +0530 drivers: net: xgene: Add ACPI support for SGMII0 and XFI1 interface of 2nd H/W version of APM X-Gene SoC ethernet controller. This patch adds the ACPI support for SGMII0 and XFI1 interface of 2nd H/W version of APM X-Gene SoC ethernet controller. Signed-off-by: Iyappan Subramanian Signed-off-by: Suman Tripathi Signed-off-by: David S. Miller drivers/net/ethernet/apm/xgene/xgene_enet_main.c | 2 ++ 1 file changed, 2 insertions(+) commit 2c7be0ac566e4706f45c4cc82b2d767f0e9f7add Author: Suman Tripathi Date: Tue Jun 23 14:47:15 2015 +0530 drivers: net: xgene: Implement the backward compatibility with the old and new firmware w.r.t Tx completion IRQ interrupt. This patch implements the backward compatibility with the old firmware where the Tx completion IRQ interrupt was absent whereas incase of new firmware the Tx completion IRQ interrupt is present. Signed-off-by: Iyappan Subramanian Signed-off-by: Suman Tripathi Signed-off-by: David S. Miller drivers/net/ethernet/apm/xgene/xgene_enet_main.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 0738c54d63249bd4a51aa2e899877c8316f19957 Author: Suman Tripathi Date: Tue Jun 23 14:47:14 2015 +0530 drivers: net: xgene: Fix the ACPI support for RGMII/SGMII0/XFI interface of APM X-Gene SoC ethernet controller. This patch implements couple of fixes to support ACPI for RGMII/SGMII0/XFI interface of APM X-Gene SoC ethernet controller driver. This patch uses the _SUN acpi object to fetch the port-id information whereas the FDT uses port-id binding for port-id information. Signed-off-by: Iyappan Subramanian Signed-off-by: Suman Tripathi Signed-off-by: David S. Miller drivers/net/ethernet/apm/xgene/xgene_enet_hw.c | 2 +- drivers/net/ethernet/apm/xgene/xgene_enet_main.c | 64 ++++++++++++++++-------- 2 files changed, 43 insertions(+), 23 deletions(-) commit 0dd0770936363ecd4d49192782bceccb882d3a24 Author: Noam Camus Date: Tue Jun 23 11:43:53 2015 +0300 NET: Add ezchip ethernet driver Simple LAN device for debug or management purposes. Device supports interrupts for RX and TX(completion). Device does not have DMA ability. Signed-off-by: Noam Camus Signed-off-by: Tal Zilcer Acked-by: Alexey Brodkin Signed-off-by: David S. Miller .../devicetree/bindings/net/ezchip_enet.txt | 15 + drivers/net/ethernet/Kconfig | 1 + drivers/net/ethernet/Makefile | 1 + drivers/net/ethernet/ezchip/Kconfig | 26 + drivers/net/ethernet/ezchip/Makefile | 1 + drivers/net/ethernet/ezchip/nps_enet.c | 658 +++++++++++++++++++++ drivers/net/ethernet/ezchip/nps_enet.h | 336 +++++++++++ 7 files changed, 1038 insertions(+) commit a076e6bfe7fe92a3825b3d1448e6f988fd033722 Author: Gilad Ben-Yossef Date: Tue Jun 23 10:52:10 2015 +0300 rocker: call correct unregister function on error Use the correct unregister function matching the register function on the error path. Signed-off-by: Gilad Ben-Yossef Fixes: c1beeef7a32a791a ("rocker: implement IPv4 fib offloading") Acked-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/rocker/rocker.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 55dd27536671511317d80478904e4510ed1162a1 Author: Nimrod Andy Date: Tue Jun 23 15:32:51 2015 +0800 net: fec: init MAC prior to mii bus probe Below case causes mii bus probe failed: ifconfig eth0 down -> suspend/resume with Mega/fax mix off -> ifconfig eth0 up In i.MX6SX/i.MX7D chip, Mega/fast mix off feature is supported that means most of SOC power will be off including ENET MAC for power saving. Once ENET MAC power off, all initialized MAC registers reset to default, so in the case, it must init MAC prior to mii bus probe. Signed-off-by: Fugang Duan Signed-off-by: David S. Miller drivers/net/ethernet/freescale/fec_main.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 42bcce87d763b4d22dc6d3a0c0b60c6b49820de8 Author: Anish Bhatt Date: Mon Jun 22 17:44:35 2015 -0700 dcb : Fix incorrect documentation for struct dcb_app While IEEE and CEE use the same structure to store apps, the selector and priority fields for both are different. Only the priority field is explained, add documentation explaining how the selector field differs for both. cgdcbxd code shows an example of how selector fields differ. Signed-off-by: Anish Bhatt Signed-off-by: David S. Miller include/uapi/linux/dcbnl.h | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit e9fdaec0e0d40f548c2b79e147c7ffd2809d2a64 Author: Scott Feldman Date: Thu Jun 11 11:20:42 2015 -0700 switchdev: change BUG_ON to WARN for attr set failure case This particular BUG_ON condition was checking for attr set err in the COMMIT phase, which isn't expected (it's a driver bug if PREPARE phase is OK but COMMIT fails). But BUG_ON() is too strong for this case, so change to WARN(). BUG_ON() would be warranted if the system was corrupted beyond repair, but this is not the case here. Signed-off-by: Scott Feldman Signed-off-by: David S. Miller net/switchdev/switchdev.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 06baa3d0fb8491b21d579d3220569730c01efacc Merge: e8e85cc 7d4f8d8 Author: David S. Miller Date: Tue Jun 23 06:56:32 2015 -0700 Merge branch 'switchdev-vlan' Scott Feldman says: ==================== switchdev; add VLAN support for port's bridge_getlink One more missing piece of the puzzle. Add vlan dump support to switchdev port's bridge_getlink. iproute2 "bridge vlan show" cmd already knows how to show the vlans installed on the bridge and the device , but (until now) no one implemented the port vlan part of the netlink PF_BRIDGE:RTM_GETLINK msg. Before this patch, "bridge vlan show": $ bridge -c vlan show port vlan ids sw1p1 30-34 << bridge side vlans 57 sw1p1 << device side vlans (missing) sw1p2 57 sw1p2 sw1p3 sw1p4 br0 None (When the port is bridged, the output repeats the vlan list for the vlans on the bridge side of the port and the vlans on the device side of the port. The listing above show no vlans for the device side even though they are installed). After this patch: $ bridge -c vlan show port vlan ids sw1p1 30-34 << bridge side vlan 57 sw1p1 30-34 << device side vlans 57 3840 PVID sw1p2 57 sw1p2 57 3840 PVID sw1p3 3842 PVID sw1p4 3843 PVID br0 None ==================== Signed-off-by: David S. Miller commit 7d4f8d871ab15bd50a5771382ca2c9355b38d73c Author: Scott Feldman Date: Mon Jun 22 00:27:17 2015 -0700 switchdev; add VLAN support for port's bridge_getlink One more missing piece of the puzzle. Add vlan dump support to switchdev port's bridge_getlink. iproute2 "bridge vlan show" cmd already knows how to show the vlans installed on the bridge and the device , but (until now) no one implemented the port vlan part of the netlink PF_BRIDGE:RTM_GETLINK msg. Before this patch, "bridge vlan show": $ bridge -c vlan show port vlan ids sw1p1 30-34 << bridge side vlans 57 sw1p1 << device side vlans (missing) sw1p2 57 sw1p2 sw1p3 sw1p4 br0 None (When the port is bridged, the output repeats the vlan list for the vlans on the bridge side of the port and the vlans on the device side of the port. The listing above show no vlans for the device side even though they are installed). After this patch: $ bridge -c vlan show port vlan ids sw1p1 30-34 << bridge side vlan 57 sw1p1 30-34 << device side vlans 57 3840 PVID sw1p2 57 sw1p2 57 3840 PVID sw1p3 3842 PVID sw1p4 3843 PVID br0 None I re-used ndo_dflt_bridge_getlink to add vlan fill call-back func. switchdev support adds an obj dump for VLAN objects, using the same call-back scheme as FDB dump. Support included for both compressed and un-compressed vlan dumps. Signed-off-by: Scott Feldman Signed-off-by: David S. Miller drivers/net/ethernet/emulex/benet/be_main.c | 2 +- drivers/net/ethernet/intel/i40e/i40e_main.c | 4 +- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 3 +- drivers/net/ethernet/rocker/rocker.c | 25 ++++++ include/linux/rtnetlink.h | 6 +- net/core/rtnetlink.c | 18 +++- net/switchdev/switchdev.c | 123 +++++++++++++++++++++++++- 7 files changed, 172 insertions(+), 9 deletions(-) commit 3e3a78b49508e58f798cf519876bbb9ca0f931af Author: Scott Feldman Date: Mon Jun 22 00:27:16 2015 -0700 switchdev: rename vlan vid_start to vid_begin Use vid_begin/end to be consistent with BRIDGE_VLAN_INFO_RANGE_BEGIN/END. Signed-off-by: Scott Feldman Signed-off-by: David S. Miller drivers/net/ethernet/rocker/rocker.c | 4 ++-- include/net/switchdev.h | 2 +- net/bridge/br_vlan.c | 4 ++-- net/switchdev/switchdev.c | 12 ++++++------ 4 files changed, 11 insertions(+), 11 deletions(-) commit e8e85cc5eb5701b935a06b5b3a03a8532946f969 Author: Maninder Singh Date: Mon Jun 22 12:39:16 2015 +0530 packet: remove handling of tx_ring Remove handling of tx_ring in prb_setup_retire_blk_timer for TPACKET_V3 because init_prb_bdqc is called only for zero tx_ring and thus prb_setup_retire_blk_timer for zero tx_ring only. And also in functon init_prb_bdqc there is no usage of tx_ring. Thus removing tx_ring from init_prb_bdqc. Signed-off-by: Maninder Singh Suggested-by: Frans Klaver Signed-off-by: David S. Miller net/packet/af_packet.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) commit 138b15ed877eff8149ae32c12fa1f4795c9cb4cf Author: Paul Gortmaker Date: Sun Jun 21 16:28:02 2015 -0400 drivers/net: remove all references to obsolete Ethernet-HOWTO This howto made sense in the 1990s when users had to manually configure ISA cards with jumpers or vendor utilities, but with the implementation of PCI it became increasingly less and less relevant, to the point where it has been well over a decade since I last updated it. And there is no value in anyone else taking over updating it either. However the references to it continue to spread as boiler plate text from one Kconfig file into the next. We are not doing end users any favours by pointing them at this old document, so lets kill it with fire, once and for all, to hopefully stop any further spread. No code is changed in this commit, just Kconfig help text. Signed-off-by: Paul Gortmaker Signed-off-by: David S. Miller drivers/net/arcnet/Kconfig | 4 ---- drivers/net/ethernet/3com/Kconfig | 18 +++++------------- drivers/net/ethernet/8390/Kconfig | 26 ++++++++------------------ drivers/net/ethernet/adaptec/Kconfig | 4 +--- drivers/net/ethernet/adi/Kconfig | 2 -- drivers/net/ethernet/agere/Kconfig | 4 +--- drivers/net/ethernet/allwinner/Kconfig | 3 +-- drivers/net/ethernet/alteon/Kconfig | 4 +--- drivers/net/ethernet/amd/Kconfig | 16 +++++----------- drivers/net/ethernet/apple/Kconfig | 7 ++----- drivers/net/ethernet/arc/Kconfig | 4 +--- drivers/net/ethernet/atheros/Kconfig | 4 +--- drivers/net/ethernet/broadcom/Kconfig | 3 +-- drivers/net/ethernet/brocade/Kconfig | 4 +--- drivers/net/ethernet/cadence/Kconfig | 2 -- drivers/net/ethernet/chelsio/Kconfig | 4 +--- drivers/net/ethernet/cirrus/Kconfig | 12 +++--------- drivers/net/ethernet/cisco/Kconfig | 4 +--- drivers/net/ethernet/dec/Kconfig | 4 +--- drivers/net/ethernet/dec/tulip/Kconfig | 10 +++------- drivers/net/ethernet/dlink/Kconfig | 4 +--- drivers/net/ethernet/emulex/Kconfig | 4 +--- drivers/net/ethernet/faraday/Kconfig | 4 +--- drivers/net/ethernet/freescale/Kconfig | 4 +--- drivers/net/ethernet/fujitsu/Kconfig | 4 +--- drivers/net/ethernet/hisilicon/Kconfig | 4 +--- drivers/net/ethernet/hp/Kconfig | 8 ++------ drivers/net/ethernet/i825xx/Kconfig | 4 +--- drivers/net/ethernet/ibm/Kconfig | 4 +--- drivers/net/ethernet/intel/Kconfig | 4 +--- drivers/net/ethernet/marvell/Kconfig | 4 +--- drivers/net/ethernet/mellanox/Kconfig | 4 +--- drivers/net/ethernet/micrel/Kconfig | 4 +--- drivers/net/ethernet/microchip/Kconfig | 4 +--- drivers/net/ethernet/moxa/Kconfig | 4 +--- drivers/net/ethernet/myricom/Kconfig | 4 +--- drivers/net/ethernet/natsemi/Kconfig | 7 ++----- drivers/net/ethernet/neterion/Kconfig | 4 +--- drivers/net/ethernet/nuvoton/Kconfig | 4 +--- drivers/net/ethernet/nvidia/Kconfig | 8 ++------ drivers/net/ethernet/oki-semi/Kconfig | 4 +--- drivers/net/ethernet/packetengines/Kconfig | 8 ++------ drivers/net/ethernet/pasemi/Kconfig | 4 +--- drivers/net/ethernet/qlogic/Kconfig | 4 +--- drivers/net/ethernet/qualcomm/Kconfig | 4 +--- drivers/net/ethernet/rdc/Kconfig | 4 +--- drivers/net/ethernet/realtek/Kconfig | 14 ++++---------- drivers/net/ethernet/renesas/Kconfig | 4 +--- drivers/net/ethernet/seeq/Kconfig | 4 +--- drivers/net/ethernet/sgi/Kconfig | 8 ++------ drivers/net/ethernet/silan/Kconfig | 4 +--- drivers/net/ethernet/sis/Kconfig | 4 +--- drivers/net/ethernet/smsc/Kconfig | 18 +++++------------- drivers/net/ethernet/stmicro/Kconfig | 4 +--- drivers/net/ethernet/sun/Kconfig | 4 +--- drivers/net/ethernet/tehuti/Kconfig | 4 +--- drivers/net/ethernet/ti/Kconfig | 8 ++------ drivers/net/ethernet/toshiba/Kconfig | 4 +--- drivers/net/ethernet/tundra/Kconfig | 4 +--- drivers/net/ethernet/via/Kconfig | 4 +--- drivers/net/ethernet/wiznet/Kconfig | 4 +--- drivers/net/ethernet/xilinx/Kconfig | 4 +--- drivers/net/ethernet/xircom/Kconfig | 4 +--- drivers/net/ethernet/xscale/Kconfig | 4 +--- 64 files changed, 94 insertions(+), 268 deletions(-) commit 69ae2f7acc05e9eb4a451e2728845e768586ddad Merge: db687a5 df55885 Author: David S. Miller Date: Tue Jun 23 06:49:29 2015 -0700 Merge branch 'stmmac-rk3368' Heiko Stuebner says: ==================== net: stmmac: dwmac-rk: add support for rk3368 Apart from small cleanups, this series provides support for the dwmac on the new rk3368 ARM64 soc. Tested on a R88 board using a RMII phy. Changes since v1: - Adapt to changes resulting from patch d42202dce002 ("net: stmmac: dwmac-rk: Don't add function name in info or err messages") ==================== Signed-off-by: David S. Miller commit df558854cfb3123267b5b15e7b7f4bb900bb7782 Author: Heiko Stübner Date: Sun Jun 21 21:52:54 2015 +0200 net: stmmac: dwmac-rk: add rk3368-specific data Add constants and callback functions for the dwmac on rk3368 socs. As can be seen, the base structure is the same, only registers and the bits in them moved slightly. Signed-off-by: Heiko Stuebner Signed-off-by: David S. Miller .../devicetree/bindings/net/rockchip-dwmac.txt | 2 +- drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c | 126 +++++++++++++++++++++ 2 files changed, 127 insertions(+), 1 deletion(-) commit 0fb98db19700a4e1d80de401ffab42871c388dd9 Author: Heiko Stübner Date: Sun Jun 21 21:52:53 2015 +0200 net: stmmac: dwmac-rk: abstract access to mac settings in GRF The mac settings like RGMII/RMII, speeds etc are done in the so called "General Register Files", contain numerous other settings as well and always seem to change between Rockchip SoCs. Therefore abstract the register accesses into a per-soc ops struct to make this reusable on other Rockchip SoCs. Signed-off-by: Heiko Stuebner Signed-off-by: David S. Miller drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c | 116 ++++++++++++++++--------- 1 file changed, 75 insertions(+), 41 deletions(-) commit c48fa33c1fb2ccdb4bcc863a7b841f11efe0f8b0 Author: Heiko Stübner Date: Sun Jun 21 21:52:52 2015 +0200 net: stmmac: dwmac-rk: Fix clk rate when provided by soc The first iteration of the dwmac-rk support did access an intermediate clock directly below the pll selector. This was removed in a subsequent revision, but the clock and one invocation remained. This results in the driver trying to set the rate of a non-existent clock when the soc and not some external source provides the phy clock for RMII phys. So set the rate of the correct clock and remove the remaining now completely unused definition. Fixes: 436f5ae08f9d ("GMAC: add driver for Rockchip RK3288 SoCs integrated GMAC") Cc: stable@vger.kernel.org Signed-off-by: Heiko Stuebner Signed-off-by: David S. Miller drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 059dab08334b2af9cb8f7659536943416408a09d Author: Heiko Stübner Date: Sun Jun 21 21:52:51 2015 +0200 net: stmmac: dwmac-rk: remove unused gpio register defines In a first version the driver did want to do some gpio wiggling, which of course never made it into the kernel, but somehow these register defines where forgotten. Remove them, as they shouldn't be here. Signed-off-by: Heiko Stuebner Signed-off-by: David S. Miller drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c | 3 --- 1 file changed, 3 deletions(-) commit 52c1d8038594ffd82a6cf88d3dc0ca68d8179a36 Author: Lv Zheng Date: Fri Jun 19 11:38:16 2015 +0800 ACPICA: Linuxize: Reduce divergences for 20150616 release This patch reduces source code differences between the Linux kernel and the ACPICA upstream so that the linuxized ACPICA 20150616 release can be applied with reduced human intervention. Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/dsobject.c | 2 +- drivers/acpi/acpica/hwxfsleep.c | 2 -- drivers/acpi/acpica/rscreate.c | 2 +- drivers/acpi/acpica/rsutils.c | 2 +- drivers/acpi/acpica/tbxface.c | 1 + include/acpi/platform/acenv.h | 1 - 6 files changed, 4 insertions(+), 6 deletions(-) commit 5b3f87dbc7faecbf4c97b4abbdf4cdc5bf070fd8 Merge: 26c0a14 36c0124 Author: David S. Miller Date: Tue Jun 23 06:42:12 2015 -0700 Merge tag 'linux-can-fixes-for-4.1-20150621' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can Marc Kleine-Budde says: ==================== Oliver Hartkopp fixed a bug in the generic CAN frame handling code, which may lead to loss of CAN frames. It was introduced during v4.1 development. ==================== Signed-off-by: David S. Miller gpg: Signature made Sun 21 Jun 2015 09:59:36 AM PDT using RSA key ID C9B5CFC7 commit 26c0a14f34fdcdcc82ac278a511fd86597e608e3 Author: Alexander Popov Date: Sun Jun 21 01:32:46 2015 +0300 net: fs_enet: Fix NETIF_F_SG feature for Freescale MPC5121 Commit 4fc9b87bae25 ("net: fs_enet: Implement NETIF_F_SG feature") brings a trouble to Freescale MPC512x: a kernel oops happens during sending non-linear sk_buff with .data not aligned by 4. Log quotation: Unable to handle kernel paging request for data at address 0xe467c000 Faulting instruction address: 0xc000cd44 Oops: Kernel access of bad area, sig: 11 [#1] MPC512x generic Modules linked in: CPU: 0 PID: 984 Comm: kworker/0:1H Not tainted 4.1.0-rc8-00024-gbb16140 #2 Workqueue: rpciod rpc_async_schedule task: cf364a50 ti: cf362000 task.ti: cf362000 NIP: c000cd44 LR: c000c720 CTR: 00000206 REGS: cf363ac0 TRAP: 0300 Not tainted (4.1.0-rc8-00024-gbb16140) MSR: 00009032 CR: 42004082 XER: 00000000 DAR: e467c000 DSISR: 20000000 GPR00: c0279e24 cf363b70 cf364a50 e467c000 00000206 0000001f 00000001 00000001 GPR08: 00000000 e467c000 e46800be 000139a6 82002082 00000000 c002e46c cf3c3680 GPR16: c044cb30 c04b0000 cf363c48 00000000 00000001 fde0315c 00000000 0000000b GPR24: 0000002c 000040be cf339aa0 0000000b 00000001 cf873210 00282f85 00000000 NIP [c000cd44] clean_dcache_range+0x1c/0x30 LR [c000c720] dma_direct_map_page+0x40/0x94 Call Trace: [cf363b70] [cf339b60] 0xcf339b60 (unreliable) [cf363b90] [c0279e24] fs_enet_start_xmit+0x1c8/0x42c [cf363bd0] [c02ff710] dev_hard_start_xmit+0x2dc/0x3d4 [cf363c40] [c0319c60] sch_direct_xmit+0xcc/0x1cc [cf363c70] [c02ff9c0] __dev_queue_xmit+0x1b8/0x47c [cf363ca0] [c032a3e8] ip_finish_output+0x1fc/0x9a8 [cf363ce0] [c032c31c] ip_send_skb+0x1c/0xa4 [cf363cf0] [c035112c] udp_send_skb+0xe4/0x2e8 [cf363d10] [c0351368] udp_push_pending_frames+0x38/0x84 [cf363d20] [c03537b8] udp_sendpage+0x134/0x174 [cf363d70] [c0384fd4] xs_sendpages+0x21c/0x250 [cf363db0] [c03852bc] xs_udp_send_request+0x50/0xf8 [cf363de0] [c0382f08] xprt_transmit+0x64/0x280 [cf363e20] [c038017c] call_transmit+0x168/0x234 [cf363e40] [c0387918] __rpc_execute+0x88/0x2b0 [cf363e80] [c00296f8] process_one_work+0x124/0x2fc [cf363ea0] [c0029a00] worker_thread+0x130/0x480 [cf363ef0] [c002e528] kthread+0xbc/0xd0 [cf363f40] [c000e4a8] ret_from_kernel_thread+0x5c/0x64 Instruction dump: 7c70faa6 60630800 7c70fba6 4c00012c 4e800020 38a0001f 7c632878 7c832050 7c842a14 5484d97f 4d820020 7c8903a6 <7c00186c> 38630020 4200fff8 7c0004ac ---[ end trace c846c1eceb513c85 ]--- The reason: MPC5121 FEC requires 4-byte alignment for TX data buffer and calls tx_skb_align_workaround() for copying sk_buff with not aligned .data to a new sk_buff with aligned one. But tx_skb_align_workaround() uses skb_copy_from_linear_data() which doesn't work for non-linear sk_buff: a new sk_buff has non-zero nr_frags and zero .data_len. So improve the condition of calling tx_skb_align_workaround() and use skb_linearize() in it. Signed-off-by: Alexander Popov Signed-off-by: David S. Miller .../net/ethernet/freescale/fs_enet/fs_enet-main.c | 26 +++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) commit db687a56e4f2796bae77ac3b21b930fabe5159cc Author: Andrew Lunn Date: Sat Jun 20 21:31:29 2015 +0200 dsa: mv88x6xxx: Zero statistics counters Zero the statistics counters when setting up the global registers. Otherwise the counters will remain from the last boot if the power has not been removed. Signed-off-by: Andrew Lunn Signed-off-by: David S. Miller drivers/net/dsa/mv88e6xxx.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 824831fadc82156274f50edcbf79a75f4b646ba5 Merge: 45dac1d 56d95e2 Author: David S. Miller Date: Tue Jun 23 06:33:51 2015 -0700 Merge branch 'dsa-mv88e6xxx-debugfs' Andrew Lunn says: ==================== debugfs for mv88e6xxx This patchset adds some debugfs files for seeing into a mv88e6xxx family of switch chips. DB T/P Vec State Addr 003 Port 008 7 00:22:02:00:18:44 003 Port 008 6 80:ee:73:83:60:27 005 Port 020 7 94:10:3e:80:bc:f3 0f8 Port 001 6 8e:25:13:53:44:de This walks all possible entries, so is a bit slow, but is always correct. Target Port 0 15 1 15 2 15 3 15 4 15 5 15 6 15 7 15 8 15 9 15 -->snip<-- 31 15 A rather boring example, since i only have one switch here. But this shows the routing between multiple switches. GLOBAL GLOBAL2 0 1 2 3 4 5 6 0: c804 0 1e4f 100f 100f 1e4f 1e0f e07 e07 1: fe 0 3 3 3 3 3 c03e c03f 2: 0 ffff 0 0 0 0 0 0 0 3: 0 ffff 1721 1721 1721 1721 1721 1721 1721 4: 6000 258 433 431 431 433 433 373f 433 5: 0 ff 0 0 0 0 0 0 0 6: c000 1f0f 2026 2025 2023 3020 4020 501f 6020 7: 0 707f 0 0 0 0 0 0 0 8: 0 7800 2080 2080 2080 2080 2080 2080 2080 9: 0 1600 1 1 1 1 1 1 1 a: 148 0 0 0 0 0 0 0 0 b: 4000 1000 1 2 4 8 10 20 40 c: 0 7f 0 0 0 0 0 0 0 d: ffff 5f3 0 0 0 0 0 0 0 e: ffff 6 0 0 0 0 0 0 0 f: ffff f00 dada dada dada dada dada dada dada 10: 0 0 0 0 0 0 0 0 0 11: 0 0 0 0 0 0 0 0 0 12: 5555 0 0 0 0 0 0 0 0 13: 5555 0 1a 0 0 1df0 0 1e07 0 14: aaaa 400 0 0 0 0 0 0 0 15: aaaa 0 0 0 0 0 0 0 0 16: ffff 0 6011 6011 6011 6011 33 33 0 17: ffff 0 0 0 0 0 0 0 0 18: fa41 1844 3210 3210 3210 3210 3210 3210 3210 19: 0 1e1 7654 7654 7654 7654 7654 7654 7654 1a: 5550 0 0 0 0 0 0 0 0 1b: 1fb f869 8000 8000 8000 8000 8000 8000 8000 1c: 0 0 0 0 0 0 0 0 0 1d: c00 0 0 0 0 0 0 0 0 1e: 0 0 0 0 0 0 0 0 0 1f: 0 0 0 0 0 0 0 0 0 All the switch registers which are directly accessible. Statistic Port 0 Port 1 Port 2 Port 3 Port 4 Port 5 Port 6 in_good_octets: 2176 0 0 4263711 0 499540 0 in_bad_octets: 46050 0 0 50196 0 0 0 in_unicast: 0 0 0 7693 0 7691 0 in_broadcasts: 0 0 0 0 0 3 0 in_multicasts: 34 0 0 0 0 27 0 in_pause: 0 0 0 0 0 0 0 in_undersize: 0 0 0 0 0 0 0 in_fragments: 45 0 0 2 0 0 0 in_oversize: 0 0 0 0 0 0 0 in_jabber: 0 0 0 0 0 0 0 in_rx_error: 0 0 0 0 0 0 0 in_fcs_error: 159 0 0 37 0 0 0 out_octets: 808 0 0 496608 336 4267159 0 out_unicast: 0 0 0 7691 0 7693 0 out_broadcasts: 1 0 0 3 0 0 0 out_multicasts: 9 0 0 6 4 34 0 out_pause: 0 0 0 0 0 0 0 excessive: 0 0 0 0 0 0 0 collisions: 0 0 0 0 0 0 0 deferred: 0 0 0 0 0 0 0 single: 0 0 0 0 0 0 0 multiple: 0 0 0 0 0 0 0 out_fcs_error: 0 0 0 0 0 0 0 late: 0 0 0 0 0 0 0 hist_64bytes: 36 0 0 7577 0 7574 0 hist_65_127bytes: 53 0 0 241 4 298 0 hist_128_255bytes: 50 0 0 12 0 10 0 hist_256_511bytes: 43 0 0 8 0 2 0 hist_512_1023bytes: 18 0 0 7573 0 7564 0 hist_1024_max_bytes: 3 0 0 19 0 0 0 sw_in_discards: 0 0 0 0 0 0 0 sw_in_filtered: 0 0 0 0 0 0 0 sw_out_filtered: 34 0 0 7693 0 7721 0 Of particular interest here is that you get to see all ports, including the CPU port and any DSA ports. You cannot get statistics for these ports via ethtool. ==================== Signed-off-by: David S. Miller commit 56d95e2220fc3582eef1b124abc2b7a4735d198a Author: Andrew Lunn Date: Sat Jun 20 18:42:33 2015 +0200 dsa: mv88x6xxx: Add debugfs interface for scratch registers Allow the contents of the scratch registers to be shown in debugfs. Signed-off-by: Andrew Lunn Signed-off-by: David S. Miller drivers/net/dsa/mv88e6xxx.c | 54 +++++++++++++++++++++++++++++++++++++++++++++ drivers/net/dsa/mv88e6xxx.h | 3 +++ 2 files changed, 57 insertions(+) commit d35bd876afe88e4fe781a4edc376d03eb9d3dcf3 Author: Andrew Lunn Date: Sat Jun 20 18:42:32 2015 +0200 dsa: mv88x6xxx: Add debugfs interface for device map The device map is used to route packets between cascaded switches. Add dumping a switches device map via debugfs. Signed-off-by: Andrew Lunn Signed-off-by: David S. Miller drivers/net/dsa/mv88e6xxx.c | 41 +++++++++++++++++++++++++++++++++++++++++ drivers/net/dsa/mv88e6xxx.h | 1 + 2 files changed, 42 insertions(+) commit 532c7a353fce6b1866865cd52691934b4630cccd Author: Andrew Lunn Date: Sat Jun 20 18:42:31 2015 +0200 dsa: mv88x6xxx: Add debugfs interface for statistics Allow the contents of the statistics counters to be shown in debugfs. This is particularly useful for the cpu and dsa ports, which cannot be seen using ethtools -S. Signed-off-by: Andrew Lunn Signed-off-by: David S. Miller drivers/net/dsa/mv88e6xxx.c | 59 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) commit 80c4627b2719da6b90891d8f83251528416900e7 Author: Andrew Lunn Date: Sat Jun 20 18:42:30 2015 +0200 dsa: mv88x6xxx: Refactor getting a single statistic Move the code to retrieve a statistics counter into a function of its own, so it can later be reused. Signed-off-by: Andrew Lunn Signed-off-by: David S. Miller drivers/net/dsa/mv88e6xxx.c | 63 ++++++++++++++++++++++++++------------------- drivers/net/dsa/mv88e6xxx.h | 4 +++ 2 files changed, 40 insertions(+), 27 deletions(-) commit 8a0a265d192450b7645dde2754fe8fb3f660fb81 Author: Andrew Lunn Date: Sat Jun 20 18:42:29 2015 +0200 dsa: mv88e6xxx: Add debugfs interface for ATU Dump the Address Translation Unit via a file in debugfs. Signed-off-by: Andrew Lunn Signed-off-by: David S. Miller drivers/net/dsa/mv88e6xxx.c | 81 +++++++++++++++++++++++++++++++++++++++++++++ drivers/net/dsa/mv88e6xxx.h | 3 ++ 2 files changed, 84 insertions(+) commit 87c8cefb103abab526e8722b12f3bdcf3fa74da7 Author: Andrew Lunn Date: Sat Jun 20 18:42:28 2015 +0200 dsa: mv88e6xxx: Add debugfs interface for registers Allow the contents of the registers to be shown in debugfs. Signed-off-by: Andrew Lunn Signed-off-by: David S. Miller drivers/net/dsa/mv88e6xxx.c | 50 +++++++++++++++++++++++++++++++++++++++++++++ drivers/net/dsa/mv88e6xxx.h | 2 ++ 2 files changed, 52 insertions(+) commit 45dac1d6ea045ae56e4df8d9c70c92c7412bd4fc Author: Shreyas Bhatewara Date: Fri Jun 19 13:38:29 2015 -0700 vmxnet3: Changes for vmxnet3 adapter version 2 (fwd) Make the driver understand adapter version 2. Cc: Rachel Lunnon Signed-off-by: Guolin Yang Signed-off-by: Shreyas N Bhatewara Signed-off-by: David S. Miller drivers/net/vmxnet3/vmxnet3_defs.h | 38 ++++++++++++++- drivers/net/vmxnet3/vmxnet3_drv.c | 98 ++++++++++++++++++++++++++++++++++++-- drivers/net/vmxnet3/vmxnet3_int.h | 4 ++ 3 files changed, 136 insertions(+), 4 deletions(-) commit c41fcce997d2caa039a46495d40423348c51ad61 Author: Shreyas Bhatewara Date: Fri Jun 19 13:37:03 2015 -0700 vmxnet3: Fix memory leaks in rx path (fwd) If rcd length was zero, the page used for frag was not being released. It was being replaced with a newly allocated page. This change takes care of that memory leak. Signed-off-by: Guolin Yang Signed-off-by: Shreyas N Bhatewara Signed-off-by: David S. Miller drivers/net/vmxnet3/vmxnet3_drv.c | 39 +++++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 18 deletions(-) commit e9ba47bfe381888d8dc79123a20b2ec8b6751a47 Author: Shreyas Bhatewara Date: Fri Jun 19 13:36:02 2015 -0700 vmxnet3: Register shutdown handler for device (fwd) Implement a handler for pci shutdown so that the driver has an opportunity to make sure that device is quiesced before the PCI switches to legacy IRQs. This way the possibility of "screaming interrupt" is avoided. Acked-by: Shrikrishna Khare Signed-off-by: Shreyas N Bhatewara Signed-off-by: David S. Miller drivers/net/vmxnet3/vmxnet3_drv.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) commit 8405a8fff3f8545c888a872d6e3c0c8eecd4d348 Author: Eric W. Biederman Date: Fri Jun 19 14:03:39 2015 -0500 netfilter: nf_qeueue: Drop queue entries on nf_unregister_hook Add code to nf_unregister_hook to flush the nf_queue when a hook is unregistered. This guarantees that the pointer that the nf_queue code retains into the nf_hook list will remain valid while a packet is queued. I tested what would happen if we do not flush queued packets and was trivially able to obtain the oops below. All that was required was to stop the nf_queue listening process, to delete all of the nf_tables, and to awaken the nf_queue listening process. > BUG: unable to handle kernel paging request at 0000000100000001 > IP: [<0000000100000001>] 0x100000001 > PGD b9c35067 PUD 0 > Oops: 0010 [#1] SMP > Modules linked in: > CPU: 0 PID: 519 Comm: lt-nfqnl_test Not tainted > task: ffff8800b9c8c050 ti: ffff8800ba9d8000 task.ti: ffff8800ba9d8000 > RIP: 0010:[<0000000100000001>] [<0000000100000001>] 0x100000001 > RSP: 0018:ffff8800ba9dba40 EFLAGS: 00010a16 > RAX: ffff8800bab48a00 RBX: ffff8800ba9dba90 RCX: ffff8800ba9dba90 > RDX: ffff8800b9c10128 RSI: ffff8800ba940900 RDI: ffff8800bab48a00 > RBP: ffff8800b9c10128 R08: ffffffff82976660 R09: ffff8800ba9dbb28 > R10: dead000000100100 R11: dead000000200200 R12: ffff8800ba940900 > R13: ffffffff8313fd50 R14: ffff8800b9c95200 R15: 0000000000000000 > FS: 00007fb91fc34700(0000) GS:ffff8800bfa00000(0000) knlGS:0000000000000000 > CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 > CR2: 0000000100000001 CR3: 00000000babfb000 CR4: 00000000000007f0 > Stack: > ffffffff8206ab0f ffffffff82982240 ffff8800bab48a00 ffff8800b9c100a8 > ffff8800b9c10100 0000000000000001 ffff8800ba940900 ffff8800b9c10128 > ffffffff8206bd65 ffff8800bfb0d5e0 ffff8800bab48a00 0000000000014dc0 > Call Trace: > [] ? nf_iterate+0x4f/0xa0 > [] ? nf_reinject+0x125/0x190 > [] ? nfqnl_recv_verdict+0x255/0x360 > [] ? nla_parse+0x80/0xf0 > [] ? nfnetlink_rcv_msg+0x13c/0x240 > [] ? __memcg_kmem_get_cache+0x4c/0x150 > [] ? nfnl_lock+0x20/0x20 > [] ? netlink_rcv_skb+0xa9/0xc0 > [] ? netlink_unicast+0x12f/0x1c0 > [] ? netlink_sendmsg+0x28e/0x650 > [] ? sock_sendmsg+0x44/0x50 > [] ? ___sys_sendmsg+0x2ab/0x2c0 > [] ? __wake_up+0x43/0x70 > [] ? tty_write+0x1c4/0x2a0 > [] ? __sys_sendmsg+0x44/0x80 > [] ? system_call_fastpath+0x12/0x6a > Code: Bad RIP value. > RIP [<0000000100000001>] 0x100000001 > RSP > CR2: 0000000100000001 > ---[ end trace 08eb65d42362793f ]--- Cc: stable@vger.kernel.org Signed-off-by: "Eric W. Biederman" Signed-off-by: David S. Miller include/net/netfilter/nf_queue.h | 2 ++ net/netfilter/core.c | 1 + net/netfilter/nf_internals.h | 1 + net/netfilter/nf_queue.c | 17 +++++++++++++++++ net/netfilter/nfnetlink_queue_core.c | 24 +++++++++++++++++++++++- 5 files changed, 44 insertions(+), 1 deletion(-) commit fdab6a4cbd8933092155449ca7253eba973ada14 Author: Eric W. Biederman Date: Fri Jun 19 10:41:21 2015 -0500 netfilter: nftables: Do not run chains in the wrong network namespace Currenlty nf_tables chains added in one network namespace are being run in all network namespace. The issues are myriad with the simplest being an unprivileged user can cause any network packets to be dropped. Address this by simply not running nf_tables chains in the wrong network namespace. Cc: stable@vger.kernel.org Signed-off-by: "Eric W. Biederman" Acked-by: Pablo Neira Ayuso Signed-off-by: David S. Miller net/netfilter/nf_tables_core.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 2278e5ed9f36baca7c972ed17aae7467ca91b2b9 Author: Shuah Khan Date: Fri Jun 19 13:13:43 2015 -0600 selftests: add quicktest support Add quicktest support to enable users to choose to run tests that complete in a short time. Choosing this option excludes tests that take longer time complete e.g: timers. User can specify quicktest option from kernel top level or selftests directory. Kernel top level directory: make quicktest=1 kselftest tools/testing/selftests directory: make quicktest=1 run_tests Signed-off-by: Shuah Khan tools/testing/selftests/Makefile | 4 ++++ 1 file changed, 4 insertions(+) commit dfe816c5e37272f2f3c1311f0e9934e1b4229261 Author: Pankaj Gupta Date: Fri Jun 19 19:47:53 2015 +0530 macvtap: Increase limit of macvtap queues Macvtap should be compatible with tuntap for maximum number of queues. commit 'baf71c5c1f80d82e92924050a60b5baaf97e3094 (tuntap: Increase the number of queues in tun.)' removes the limitations and increases number of queues in tuntap. Now, Its safe to increase number of queues in Macvtap as well. This patch also modifies 'macvtap_del_queues' function to avoid extra memory allocation in stack. Changes from v1->v2 : Michael S. Tsirkin, Jason Wang : Better way to use linked list to avoid use of extra memory in stack. Sergei Shtylyov : Specify dependent commit's summary. Signed-off-by: Pankaj Gupta Signed-off-by: David S. Miller drivers/net/macvtap.c | 10 ++-------- include/linux/if_macvlan.h | 2 +- 2 files changed, 3 insertions(+), 9 deletions(-) commit 0fb1170ee68a6aa14eca0666e02c4b62cbf1251d Author: Daniel Wagner Date: Fri Jun 19 16:00:44 2015 +0200 bpf: BPF based latency tracing BPF offers another way to generate latency histograms. We attach kprobes at trace_preempt_off and trace_preempt_on and calculate the time it takes to from seeing the off/on transition. The first array is used to store the start time stamp. The key is the CPU id. The second array stores the log2(time diff). We need to use static allocation here (array and not hash tables). The kprobes hooking into trace_preempt_on|off should not calling any dynamic memory allocation or free path. We need to avoid recursivly getting called. Besides that, it reduces jitter in the measurement. CPU 0 latency : count distribution 1 -> 1 : 0 | | 2 -> 3 : 0 | | 4 -> 7 : 0 | | 8 -> 15 : 0 | | 16 -> 31 : 0 | | 32 -> 63 : 0 | | 64 -> 127 : 0 | | 128 -> 255 : 0 | | 256 -> 511 : 0 | | 512 -> 1023 : 0 | | 1024 -> 2047 : 0 | | 2048 -> 4095 : 166723 |*************************************** | 4096 -> 8191 : 19870 |*** | 8192 -> 16383 : 6324 | | 16384 -> 32767 : 1098 | | 32768 -> 65535 : 190 | | 65536 -> 131071 : 179 | | 131072 -> 262143 : 18 | | 262144 -> 524287 : 4 | | 524288 -> 1048575 : 1363 | | CPU 1 latency : count distribution 1 -> 1 : 0 | | 2 -> 3 : 0 | | 4 -> 7 : 0 | | 8 -> 15 : 0 | | 16 -> 31 : 0 | | 32 -> 63 : 0 | | 64 -> 127 : 0 | | 128 -> 255 : 0 | | 256 -> 511 : 0 | | 512 -> 1023 : 0 | | 1024 -> 2047 : 0 | | 2048 -> 4095 : 114042 |*************************************** | 4096 -> 8191 : 9587 |** | 8192 -> 16383 : 4140 | | 16384 -> 32767 : 673 | | 32768 -> 65535 : 179 | | 65536 -> 131071 : 29 | | 131072 -> 262143 : 4 | | 262144 -> 524287 : 1 | | 524288 -> 1048575 : 364 | | CPU 2 latency : count distribution 1 -> 1 : 0 | | 2 -> 3 : 0 | | 4 -> 7 : 0 | | 8 -> 15 : 0 | | 16 -> 31 : 0 | | 32 -> 63 : 0 | | 64 -> 127 : 0 | | 128 -> 255 : 0 | | 256 -> 511 : 0 | | 512 -> 1023 : 0 | | 1024 -> 2047 : 0 | | 2048 -> 4095 : 40147 |*************************************** | 4096 -> 8191 : 2300 |* | 8192 -> 16383 : 828 | | 16384 -> 32767 : 178 | | 32768 -> 65535 : 59 | | 65536 -> 131071 : 2 | | 131072 -> 262143 : 0 | | 262144 -> 524287 : 1 | | 524288 -> 1048575 : 174 | | CPU 3 latency : count distribution 1 -> 1 : 0 | | 2 -> 3 : 0 | | 4 -> 7 : 0 | | 8 -> 15 : 0 | | 16 -> 31 : 0 | | 32 -> 63 : 0 | | 64 -> 127 : 0 | | 128 -> 255 : 0 | | 256 -> 511 : 0 | | 512 -> 1023 : 0 | | 1024 -> 2047 : 0 | | 2048 -> 4095 : 29626 |*************************************** | 4096 -> 8191 : 2704 |** | 8192 -> 16383 : 1090 | | 16384 -> 32767 : 160 | | 32768 -> 65535 : 72 | | 65536 -> 131071 : 32 | | 131072 -> 262143 : 26 | | 262144 -> 524287 : 12 | | 524288 -> 1048575 : 298 | | All this is based on the trace3 examples written by Alexei Starovoitov . Signed-off-by: Daniel Wagner Cc: Alexei Starovoitov Cc: Alexei Starovoitov Cc: "David S. Miller" Cc: Daniel Borkmann Cc: Ingo Molnar Cc: linux-kernel@vger.kernel.org Cc: netdev@vger.kernel.org Acked-by: Alexei Starovoitov Acked-by: Daniel Borkmann Signed-off-by: David S. Miller samples/bpf/Makefile | 4 ++ samples/bpf/lathist_kern.c | 99 +++++++++++++++++++++++++++++++++++++++++++ samples/bpf/lathist_user.c | 103 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 206 insertions(+) commit ceefaf5d8e04414a8d9323d6647f36103e8747b7 Author: Mauro Carvalho Chehab Date: Mon Jun 22 16:16:39 2015 -0300 [media] tuner-i2c: be consistent with I2C declaration On alpha, gcc warns a log about signed/unsigned ballance, with produces 3185 warnings. Ok, this is bogus, but it indicates that the declaration at V4L2 side is not consistent with the one at I2C. With this trivial patch, the number of errors reduce to 2959 warnings. Still too much, but it is 7.1% less. So let's do it. Signed-off-by: Mauro Carvalho Chehab drivers/media/tuners/tuner-i2c.h | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit 36f95a0b34cb980dcfff9c1082ca5d8f0dc5e78b Author: Wei Fang Date: Tue Jun 23 17:08:21 2015 +0800 doc:md: fix typo in md.txt. Signed-off-by: Wei Fang Signed-off-by: Jonathan Corbet Documentation/md.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c40b7b064f6159df3a080595a498613d08206e59 Merge: 37b8d27 f90fc54 Author: Chris Mason Date: Tue Jun 23 05:34:39 2015 -0700 Merge branch 'sysfs-fsdevices-4.2-part1' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux into anand commit 6912ac326d3aab9c0774ebec99f60a73fd04a520 Author: Wei Huang Date: Fri Jun 12 01:34:56 2015 -0400 KVM: x86/vPMU: Enable PMU handling for AMD PERFCTRn and EVNTSELn MSRs This patch enables AMD guest VM to access (R/W) PMU related MSRs, which include PERFCTR[0..3] and EVNTSEL[0..3]. Reviewed-by: Joerg Roedel Tested-by: Joerg Roedel Reviewed-by: Radim Krčmář Signed-off-by: Wei Huang Signed-off-by: Paolo Bonzini arch/x86/kvm/x86.c | 51 +++++++++------------------------------------------ 1 file changed, 9 insertions(+), 42 deletions(-) commit ca724305a2b02abcbecbf22577536fc8e965ab4f Author: Wei Huang Date: Fri Jun 12 01:34:55 2015 -0400 KVM: x86/vPMU: Implement AMD vPMU code for KVM This patch replaces the empty AMD vPMU functions (in pmu_amd.c) with real implementation. Reviewed-by: Joerg Roedel Tested-by: Joerg Roedel Signed-off-by: Wei Huang Signed-off-by: Paolo Bonzini arch/x86/kvm/pmu_amd.c | 122 ++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 116 insertions(+), 6 deletions(-) commit 25462f7f5295e2d3e9c2b31761ac95f0b3c8562f Author: Wei Huang Date: Fri Jun 19 15:45:05 2015 +0200 KVM: x86/vPMU: Define kvm_pmu_ops to support vPMU function dispatch This patch defines a new function pointer struct (kvm_pmu_ops) to support vPMU for both Intel and AMD. The functions pointers defined in this new struct will be linked with Intel and AMD functions later. In the meanwhile the struct that maps from event_sel bits to PERF_TYPE_HARDWARE events is renamed and moved from Intel specific code to kvm_host.h as a common struct. Reviewed-by: Joerg Roedel Tested-by: Joerg Roedel Signed-off-by: Wei Huang Signed-off-by: Paolo Bonzini arch/x86/include/asm/kvm_host.h | 4 + arch/x86/kvm/Makefile | 4 +- arch/x86/kvm/pmu.c | 383 +++++----------------------------------- arch/x86/kvm/pmu.h | 92 ++++++++++ arch/x86/kvm/pmu_amd.c | 97 ++++++++++ arch/x86/kvm/pmu_intel.c | 358 +++++++++++++++++++++++++++++++++++++ arch/x86/kvm/svm.c | 3 + arch/x86/kvm/vmx.c | 3 + 8 files changed, 606 insertions(+), 338 deletions(-) commit 41aac14a8dee66a720894e5979c2372c0d5afd34 Author: Wei Huang Date: Fri Jun 19 16:16:59 2015 +0200 KVM: x86/vPMU: introduce kvm_pmu_msr_idx_to_pmc This function will be part of the kvm_pmu_ops interface. Introduce it already. Signed-off-by: Paolo Bonzini arch/x86/kvm/pmu.c | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) commit 4623a614e87e4f2df08c83b5b9f68af394951dc9 Author: Koro Chen Date: Tue Jun 23 19:01:20 2015 +0800 ASoC: mediatek: Fix unbalanced calls to runtime suspend/resume This adds call to runtime suspend in dev remove. It fixs the problem that suspend is not called in the case of CONFIG_PM=n. It also fixs build warning when CONFIG_PM=n. Signed-off-by: Koro Chen Signed-off-by: Mark Brown sound/soc/mediatek/mtk-afe-pcm.c | 2 ++ 1 file changed, 2 insertions(+) commit 12b322ac85208de564ecf23aa754d796a91de21f Author: Palik, Imre Date: Fri Jun 19 14:21:51 2015 +0200 xen-netback: fix a BUG() during initialization Commit edafc132baac ("xen-netback: making the bandwidth limiter runtime settable") introduced the capability to change the bandwidth rate limit at runtime. But it also introduced a possible crashing bug. If netback receives two XenbusStateConnected without getting the hotplug-status watch firing in between, then it will try to register the watches for the rate limiter again. But this triggers a BUG() in the watch registration code. The fix modifies connect() to remove the possibly existing packet-rate watches before trying to install those watches. This behaviour is in line with how connect() deals with the hotplug-status watch. Signed-off-by: Imre Palik Cc: Matt Wilson Acked-by: Wei Liu Signed-off-by: David S. Miller drivers/net/xen-netback/xenbus.c | 4 ++++ 1 file changed, 4 insertions(+) commit 754bc547f0a79f7568b5b81c7fc0a8d044a6571a Author: Satish Ashok Date: Fri Jun 19 01:22:57 2015 -0700 bridge: multicast: restore router configuration on port link down/up When a port goes through a link down/up the multicast router configuration is not restored. Signed-off-by: Satish Ashok Signed-off-by: Nikolay Aleksandrov Fixes: 0909e11758bd ("bridge: Add multicast_router sysfs entries") Acked-by: Herbert Xu Signed-off-by: David S. Miller net/bridge/br_multicast.c | 4 ++++ 1 file changed, 4 insertions(+) commit 7ce42de1895d4787b47b004638d642dcacb464fe Author: Nikolay Aleksandrov Date: Fri Jun 19 01:45:50 2015 -0700 bridge: multicast: start querier timer when running user-space stp When STP is running in user-space and querier is configured, the querier timer is not started when a port goes to a non-blocking state. This patch unifies the user- and kernel-space stp multicast port enable path and enables it in all states different from blocking. Note that when a port goes in BR_STATE_DISABLED it's not enabled because that is handled in the beginning of the port list loop. Signed-off-by: Nikolay Aleksandrov Acked-by: Herbert Xu Signed-off-by: David S. Miller net/bridge/br_stp.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit d496f7842aada20c61e6044b3395383fa972872c Author: Ralf Baechle Date: Fri Jun 19 00:46:53 2015 +0200 NET: ROSE: Don't dereference NULL neighbour pointer. A ROSE socket doesn't necessarily always have a neighbour pointer so check if the neighbour pointer is valid before dereferencing it. Signed-off-by: Ralf Baechle Tested-by: Bernard Pidoux Cc: stable@vger.kernel.org #2.6.11+ Signed-off-by: David S. Miller net/rose/af_rose.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit b1dfe0a80e49509bd34882a455ca625a5ae039ed Merge: bfdc8db fb77ff4 Author: David S. Miller Date: Tue Jun 23 03:24:58 2015 -0700 Merge tag 'nfc-next-4.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/nfc-next NFC 4.2 2nd pull request This one only contains a one liner fix for a typo that I introduced while cleaning some of the nfcmrvl patches that were part of the 1st 4.2 pull request. commit bfdc8dbdf840f2a96d7b4cbb73fc22d973c84441 Merge: 4cd6b47 952497b Author: David S. Miller Date: Tue Jun 23 03:17:47 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-06-18 Here's the final bluetooth-next pull request for 4.2. - Cleanups & fixes to 802.15.4 code and related drivers - Fix btusb driver memory leak - New USB IDs for Atheros controllers - Support for BCM4324B3 UART based Broadcom controller - Fix for Bluetooth encryption key size handling - Broadcom controller initialization fixes - Support for Intel controller DDC parameters - Support for multiple Bluetooth LE advertising instances - Fix for HCI user channel cleanup path Please let me know if there are any issues pulling. Thanks. ==================== Signed-off-by: David S. Miller commit 4cd6b4754492c08f00e6237fd7e5c8b443370d15 Author: Mahesh Bandewar Date: Thu Jun 18 11:30:54 2015 -0700 bonding: Display LACP info only to CAP_NET_ADMIN capable user Actor and Partner details can be accessed via proc-fs, sys-fs entries or netlink interface. These interfaces are world readable at this moment. The earlier patch-series made the LACP communication secure to avoid nuisance attack from within the same L2 domain but it did not prevent "someone unprivileged" looking at that information on host and perform the same act. This patch essentially avoids spitting those entries if the user in question does not have enough privileges. Signed-off-by: Mahesh Bandewar Signed-off-by: Andy Gospodarek Signed-off-by: David S. Miller drivers/net/bonding/bond_netlink.c | 23 +++++---- drivers/net/bonding/bond_procfs.c | 101 +++++++++++++++++++------------------ drivers/net/bonding/bond_sysfs.c | 12 ++--- 3 files changed, 71 insertions(+), 65 deletions(-) commit 60b93030b44a8c2cd015cebe5624fd7552ec67ec Author: Takashi Iwai Date: Tue Jun 23 11:56:22 2015 +0200 ALSA: pcm: Fix pcm_class sysfs output The pcm_class sysfs of each PCM substream gives only "none" since the recent code change to embed the struct device. Fix the code to point directly to the embedded device object properly. Fixes: ef46c7af93f9 ('ALSA: pcm: Embed struct device') Cc: # v4.0+ Signed-off-by: Takashi Iwai sound/core/pcm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit dfea2aa654243f70dc53b8648d0bbdeec55a7df1 Author: Christoph Paasch Date: Thu Jun 18 09:15:34 2015 -0700 tcp: Do not call tcp_fastopen_reset_cipher from interrupt context tcp_fastopen_reset_cipher really cannot be called from interrupt context. It allocates the tcp_fastopen_context with GFP_KERNEL and calls crypto_alloc_cipher, which allocates all kind of stuff with GFP_KERNEL. Thus, we might sleep when the key-generation is triggered by an incoming TFO cookie-request which would then happen in interrupt- context, as shown by enabling CONFIG_DEBUG_ATOMIC_SLEEP: [ 36.001813] BUG: sleeping function called from invalid context at mm/slub.c:1266 [ 36.003624] in_atomic(): 1, irqs_disabled(): 0, pid: 1016, name: packetdrill [ 36.004859] CPU: 1 PID: 1016 Comm: packetdrill Not tainted 4.1.0-rc7 #14 [ 36.006085] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.7.5-0-ge51488c-20140602_164612-nilsson.home.kraxel.org 04/01/2014 [ 36.008250] 00000000000004f2 ffff88007f8838a8 ffffffff8171d53a ffff880075a084a8 [ 36.009630] ffff880075a08000 ffff88007f8838c8 ffffffff810967d3 ffff88007f883928 [ 36.011076] 0000000000000000 ffff88007f8838f8 ffffffff81096892 ffff88007f89be00 [ 36.012494] Call Trace: [ 36.012953] [] dump_stack+0x4f/0x6d [ 36.014085] [] ___might_sleep+0x103/0x170 [ 36.015117] [] __might_sleep+0x52/0x90 [ 36.016117] [] kmem_cache_alloc_trace+0x47/0x190 [ 36.017266] [] ? tcp_fastopen_reset_cipher+0x42/0x130 [ 36.018485] [] tcp_fastopen_reset_cipher+0x42/0x130 [ 36.019679] [] tcp_fastopen_init_key_once+0x61/0x70 [ 36.020884] [] __tcp_fastopen_cookie_gen+0x1c/0x60 [ 36.022058] [] tcp_try_fastopen+0x58f/0x730 [ 36.023118] [] tcp_conn_request+0x3e8/0x7b0 [ 36.024185] [] ? __module_text_address+0x12/0x60 [ 36.025327] [] tcp_v4_conn_request+0x51/0x60 [ 36.026410] [] tcp_rcv_state_process+0x190/0xda0 [ 36.027556] [] ? __inet_lookup_established+0x47/0x170 [ 36.028784] [] tcp_v4_do_rcv+0x16d/0x3d0 [ 36.029832] [] ? security_sock_rcv_skb+0x16/0x20 [ 36.030936] [] tcp_v4_rcv+0x77a/0x7b0 [ 36.031875] [] ? iptable_filter_hook+0x33/0x70 [ 36.032953] [] ip_local_deliver_finish+0x92/0x1f0 [ 36.034065] [] ip_local_deliver+0x9a/0xb0 [ 36.035069] [] ? ip_rcv+0x3d0/0x3d0 [ 36.035963] [] ip_rcv_finish+0x119/0x330 [ 36.036950] [] ip_rcv+0x2e7/0x3d0 [ 36.037847] [] __netif_receive_skb_core+0x552/0x930 [ 36.038994] [] __netif_receive_skb+0x27/0x70 [ 36.040033] [] process_backlog+0xd2/0x1f0 [ 36.041025] [] net_rx_action+0x122/0x310 [ 36.042007] [] __do_softirq+0x103/0x2f0 [ 36.042978] [] do_softirq_own_stack+0x1c/0x30 This patch moves the call to tcp_fastopen_init_key_once to the places where a listener socket creates its TFO-state, which always happens in user-context (either from the setsockopt, or implicitly during the listen()-call) Cc: Eric Dumazet Cc: Hannes Frederic Sowa Fixes: 222e83d2e0ae ("tcp: switch tcp_fastopen key generation to net_get_random_once") Signed-off-by: Christoph Paasch Acked-by: Eric Dumazet Signed-off-by: David S. Miller net/ipv4/af_inet.c | 2 ++ net/ipv4/tcp.c | 7 +++++-- net/ipv4/tcp_fastopen.c | 2 -- 3 files changed, 7 insertions(+), 4 deletions(-) commit 538761b794c1542f1c6e31eadd9d7aae118889f7 Author: Stas Sergeev Date: Thu Jun 18 18:36:03 2015 +0300 mvneta: add forgotten initialization of autonegotiation bits The commit 898b2970e2c9 ("mvneta: implement SGMII-based in-band link state signaling") changed mvneta_adjust_link() so that it does not clear the auto-negotiation bits in MVNETA_GMAC_AUTONEG_CONFIG register. This was necessary for auto-negotiation mode to work. Unfortunately I haven't checked if these bits are ever initialized. It appears they are not. This patch adds the missing initialization of the auto-negotiation bits in the MVNETA_GMAC_AUTONEG_CONFIG register. It fixes the following regression: https://www.mail-archive.com/netdev@vger.kernel.org/msg67928.html Since the patch was tested to fix a regression, it should be applied to stable tree. Tested-by: Arnaud Ebalard CC: Thomas Petazzoni CC: Florian Fainelli CC: netdev@vger.kernel.org CC: linux-kernel@vger.kernel.org CC: stable@vger.kernel.org Signed-off-by: Stas Sergeev Signed-off-by: David S. Miller drivers/net/ethernet/marvell/mvneta.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 1f02c09bc34a892b4a7c67e7ffa036b96794e69b Merge: 3b18844 5c8fe71 Author: David S. Miller Date: Tue Jun 23 01:24:48 2015 -0700 Merge branch 'macb-sama5d2' Nicolas Ferre says: ==================== net/macb: add sama5d2 support This series is basically the support for another flavor of the GEM IP configuration. It ended up being a series because of some little fixes made to the binding documentation before adding the new compatibility string. Bye, v2: - fix bindings - add sama5d2 compatibility string to the binding documentation ==================== Acked-by: Alexandre Belloni Signed-off-by: David S. Miller commit 5c8fe711c754822c0aa50e325dbfcc624a697c6b Author: Cyrille Pitchen Date: Thu Jun 18 16:27:23 2015 +0200 net/macb: add config for Atmel sama5d2 SoCs Add the compatible string for Atmel sama5d2 SoC family as the configuration options differ from other instances of the GEM. Signed-off-by: Cyrille Pitchen Signed-off-by: Nicolas Ferre Signed-off-by: David S. Miller drivers/net/ethernet/cadence/macb.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit bb7506c92971a4042d734db183d1a07bcf9a979f Author: Nicolas Ferre Date: Thu Jun 18 16:27:22 2015 +0200 net/macb: bindings doc: add sama5d2 compatibility sting Add sama5d2 to the biding documentation for this use of the GEM IP. Signed-off-by: Nicolas Ferre Signed-off-by: David S. Miller Documentation/devicetree/bindings/net/macb.txt | 1 + 1 file changed, 1 insertion(+) commit f58393f4a2f78002f9003b501d0d5fb2d00c49a8 Author: Nicolas Ferre Date: Thu Jun 18 16:27:21 2015 +0200 net/macb: bindings doc/trivial: fix sama5d4 comment On sama5d4, we only have a GEM IP that is configured to do 10/100 Mbits. So the use of "Gigabit" can be confusing. Signed-off-by: Nicolas Ferre Signed-off-by: David S. Miller Documentation/devicetree/bindings/net/macb.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f76a28c24c8cda765aa0da2abe4eb3899054e61f Author: Nicolas Ferre Date: Thu Jun 18 16:27:20 2015 +0200 net/macb: bindings doc: fix compatibility string In the driver and the DT bindings we use the "atmel" prefix. Fix it in the binding documentation. Signed-off-by: Nicolas Ferre Signed-off-by: David S. Miller Documentation/devicetree/bindings/net/macb.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 3b1884435aa61320ac12d3b91f69ab034946cc3d Author: Hiroaki SHIMODA Date: Thu Jun 18 20:40:54 2015 +0900 inet_diag: Remove _bh suffix in inet_diag_dump_reqs(). inet_diag_dump_reqs() is called from inet_diag_dump_icsk() with BH disabled. So no need to disable BH in inet_diag_dump_reqs(). Signed-off-by: Hiroaki Shimoda Signed-off-by: David S. Miller net/ipv4/inet_diag.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 3447cf2e9a11fd672de8b3cc613eabd97fe82053 Author: Shengzhou Liu Date: Thu Jun 18 16:42:47 2015 +0800 net/phy: Add support for Realtek RTL8211F RTL8211F has different register definitions from RTL8211E. Specially it needs to enable TXDLY in case of RGMII. Signed-off-by: Shengzhou Liu Signed-off-by: David S. Miller drivers/net/phy/realtek.c | 68 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 67 insertions(+), 1 deletion(-) commit fa433354f042105fc7a299253f904bb48dae0950 Merge: 10ea516 40b503c Author: David S. Miller Date: Tue Jun 23 01:03:18 2015 -0700 Merge tag 'wireless-drivers-next-for-davem-2015-06-18' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next Kalle Valo says: ==================== Major changes: mwifiex: * enhancements for AP mode: support verbose information in station dump command and also information about AP link. * enable power save by default brcmfmac: * fix module reload issue for PCIe * improving msgbuf protocol for PCIe devices * rework .get_station() cfg80211 callback operation * determine interface combinations upon device feature support ath9k: * ath9k_htc: add support of channel switch wil6210: * add modparam for bcast ring size * support hidden SSID * add per-MCS Rx stats ==================== Signed-off-by: David S. Miller commit 10ea5165e44ec8467e393a84ecfbf5732605d504 Author: Scott Feldman Date: Wed Jun 17 16:08:31 2015 -0700 switchdev: fdb filter_dev is always NULL for self (device), so remove check Remove the filter_dev check when dumping fdb entries, otherwise dump returns empty list. filter_dev is always passed as NULL when dumping fdbs on SELF. We want the fdbs installed on the device to be listed in the dump. Signed-off-by: Scott Feldman Fixes: 45d4122c ("switchdev: add support for fdb add/del/dump via switchdev_port_obj ops") Acked-by: Sridhar Samudrala Acked-by: Jiri Pirko Signed-off-by: David S. Miller net/switchdev/switchdev.c | 6 ------ 1 file changed, 6 deletions(-) commit 2ec1e9e20701f37a06562966dbd37e7dd072fcb8 Author: Nicholas Bellinger Date: Tue Jun 23 00:45:14 2015 -0700 target: Bump core version to v5.0 Signed-off-by: Nicholas Bellinger include/target/target_core_base.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6de2ce5b8cb6ff3562de34ea2584b0e501373f56 Author: Christoph Hellwig Date: Fri Jun 19 15:14:41 2015 +0200 target: remove target_core_configfs.h The remaining defintions are private to the target core and can be merged into target_core_internal.h. Signed-off-by: Christoph Hellwig Reviewed-by: Andy Grover Signed-off-by: Nicholas Bellinger drivers/target/target_core_configfs.c | 1 - drivers/target/target_core_fabric_configfs.c | 1 - drivers/target/target_core_internal.h | 34 ++++++++++++++++++++++++++++ drivers/target/target_core_tpg.c | 1 - include/target/target_core_configfs.h | 34 ---------------------------- 5 files changed, 34 insertions(+), 37 deletions(-) commit 1315c7c7bbea6e0aba49a867400e7b8ccb6a5d16 Author: Christoph Hellwig Date: Fri Jun 19 15:14:40 2015 +0200 target: remove unused TARGET_CORE_CONFIG_ROOT define Signed-off-by: Christoph Hellwig Reviewed-by: Andy Grover Signed-off-by: Nicholas Bellinger include/target/target_core_configfs.h | 2 -- 1 file changed, 2 deletions(-) commit ce8dd25d0ebb1d868802e1d1c770f27f2249fae4 Author: Christoph Hellwig Date: Fri Jun 19 15:14:39 2015 +0200 target: consolidate version defines Signed-off-by: Christoph Hellwig Reviewed-by: Andy Grover Signed-off-by: Nicholas Bellinger drivers/target/target_core_configfs.c | 6 +++--- drivers/target/target_core_file.c | 2 +- drivers/target/target_core_iblock.c | 2 +- drivers/target/target_core_pscsi.c | 2 +- drivers/target/target_core_rd.c | 2 +- include/target/target_core_base.h | 3 +-- include/target/target_core_configfs.h | 1 - 7 files changed, 8 insertions(+), 10 deletions(-) commit b753d643555e548163adfa2de9d75e0257e4b356 Author: Christoph Hellwig Date: Fri Jun 19 15:11:00 2015 +0200 target: implement WRITE_SAME with UNMAP bit using ->execute_unmap Signed-off-by: Christoph Hellwig Reviewed-by: Andy Grover Signed-off-by: Nicholas Bellinger drivers/target/target_core_file.c | 21 --------------------- drivers/target/target_core_iblock.c | 16 ---------------- drivers/target/target_core_sbc.c | 21 +++++++++++++++++++-- include/target/target_core_backend.h | 1 - 4 files changed, 19 insertions(+), 40 deletions(-) commit 62e4694256dd3cbe301ebc0da799df8779b97014 Author: Christoph Hellwig Date: Fri Jun 19 15:10:59 2015 +0200 target: simplify UNMAP handling Move a little more processing into the core code, and lift the previous do_unmap callback into the sbc_ops structure. Signed-off-by: Christoph Hellwig Reviewed-by: Andy Grover Signed-off-by: Nicholas Bellinger drivers/target/target_core_file.c | 17 +++-------------- drivers/target/target_core_iblock.c | 16 +++------------- drivers/target/target_core_sbc.c | 14 ++++++-------- include/target/target_core_backend.h | 7 ++----- 4 files changed, 14 insertions(+), 40 deletions(-) commit 7a971b1b3055f0e76ff09b8fd0dd809ea3b48279 Author: Christoph Hellwig Date: Fri Jun 19 15:10:58 2015 +0200 target: replace se_cmd->execute_rw with a protocol_data field Instead of leaking this SBC read/write implementation detail just add an opaqueue protocol specific pointer to struct se_cmd that we can assign the sbc_ops vector to. Signed-off-by: Christoph Hellwig Reviewed-by: Andy Grover Signed-off-by: Nicholas Bellinger drivers/target/target_core_sbc.c | 20 +++++++------------- include/target/target_core_base.h | 3 +-- 2 files changed, 8 insertions(+), 15 deletions(-) commit e2e21bd8f979a24462070cc89fae11e819cae90a Author: Sagi Grimberg Date: Thu Jun 11 19:58:34 2015 +0300 target/user: Fix inconsistent kmap_atomic/kunmap_atomic Pointers that are mapped by kmap_atomic() + offset must be unmapped without the offset. That would cause problems if the SG element length exceeds the PAGE_SIZE limit. Signed-off-by: Sagi Grimberg Signed-off-by: Nicholas Bellinger drivers/target/target_core_user.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) commit 7c0d0d51d26497866d2951a35f1736fc765e4fcf Author: Hannes Reinecke Date: Thu Jun 11 10:01:29 2015 +0200 target: Send UA when changing LUN inventory When changind the LUN inventory via core_enable_device_list_for_node() or core_disable_device_list_for_node() a REPORTED LUNS DATA HAS CHANGED UA should be send. (Convert to target_luns_data_has_changed helper usage - hch) Signed-off-by: Hannes Reinecke Signed-off-by: Nicholas Bellinger drivers/target/target_core_device.c | 23 +++++++++++++++++++---- drivers/target/target_core_ua.h | 1 + 2 files changed, 20 insertions(+), 4 deletions(-) commit b5aafb16ebdb713e9e5ac60db2940fe4baf6328f Author: Hannes Reinecke Date: Thu Jun 11 10:01:28 2015 +0200 target: Send UA upon LUN RESET tmr completion SAM mandates that an BUS DEVICE RESET FUNCTION OCCURRED UA needs to be send after a LUN RESET tmr has completed. (Update to use target_ua_allocate_lun - hch) Signed-off-by: Hannes Reinecke Signed-off-by: Nicholas Bellinger drivers/target/target_core_transport.c | 5 +++++ 1 file changed, 5 insertions(+) commit 3dd348fcaa407181585fcadc04b0cac6e31f9be0 Author: Hannes Reinecke Date: Thu Jun 11 10:01:27 2015 +0200 target: Send UA on ALUA target port group change When the ALUA target port group changes an INQUIRY DATA CHANGE UA needs to be sent. Signed-off-by: Hannes Reinecke Signed-off-by: Nicholas Bellinger drivers/target/target_core_alua.c | 7 +++++++ drivers/target/target_core_ua.h | 2 ++ 2 files changed, 9 insertions(+) commit 1adff1b3a7f75a1c255b7fcab5676edf29d4a5d8 Author: Nicholas Bellinger Date: Mon Jun 22 23:44:05 2015 -0700 target: Convert se_lun->lun_deve_lock to normal spinlock This patch converts se_lun->lun_deve_lock acquire/release access to use a normal, non bottom-half spin_lock_t for protecting se_lun->lun_deve_list access. Reported-by: Christoph Hellwig Cc: Hannes Reinecke Signed-off-by: Nicholas Bellinger drivers/target/target_core_alua.c | 4 ++-- drivers/target/target_core_device.c | 12 ++++++------ drivers/target/target_core_pr.c | 8 ++++---- 3 files changed, 12 insertions(+), 12 deletions(-) commit b51d23e4e9fea6f264d39535c2a62d1f51e7ccc3 Author: Dan Streetman Date: Wed Jun 17 06:18:52 2015 +0930 module: add per-module param_lock Add a "param_lock" mutex to each module, and update params.c to use the correct built-in or module mutex while locking kernel params. Remove the kparam_block_sysfs_r/w() macros, replace them with direct calls to kernel_param_[un]lock(module). The kernel param code currently uses a single mutex to protect modification of any and all kernel params. While this generally works, there is one specific problem with it; a module callback function cannot safely load another module, i.e. with request_module() or even with indirect calls such as crypto_has_alg(). If the module to be loaded has any of its params configured (e.g. with a /etc/modprobe.d/* config file), then the attempt will result in a deadlock between the first module param callback waiting for modprobe, and modprobe trying to lock the single kernel param mutex to set the new module's param. This fixes that by using per-module mutexes, so that each individual module is protected against concurrent changes in its own kernel params, but is not blocked by changes to other module params. All built-in modules continue to use the built-in mutex, since they will always be loaded at runtime and references (e.g. request_module(), crypto_has_alg()) to them will never cause load-time param changing. This also simplifies the interface used by modules to block sysfs access to their params; while there are currently functions to block and unblock sysfs param access which are split up by read and write and expect a single kernel param to be passed, their actual operation is identical and applies to all params, not just the one passed to them; they simply lock and unlock the global param mutex. They are replaced with direct calls to kernel_param_[un]lock(THIS_MODULE), which locks THIS_MODULE's param_lock, or if the module is built-in, it locks the built-in mutex. Suggested-by: Rusty Russell Signed-off-by: Dan Streetman Signed-off-by: Rusty Russell arch/um/drivers/hostaudio_kern.c | 20 ++++---- drivers/net/ethernet/myricom/myri10ge/myri10ge.c | 6 +-- drivers/net/wireless/libertas_tf/if_usb.c | 6 +-- drivers/usb/atm/ueagle-atm.c | 4 +- drivers/video/fbdev/vt8623fb.c | 4 +- include/linux/module.h | 1 + include/linux/moduleparam.h | 61 ++++-------------------- kernel/module.c | 2 + kernel/params.c | 50 +++++++++++-------- net/mac80211/rate.c | 4 +- 10 files changed, 65 insertions(+), 93 deletions(-) commit 5104b7d7678b0029417f6ac08243773a77259ac6 Author: Dan Streetman Date: Wed Jun 17 06:17:52 2015 +0930 module: make perm const Change the struct kernel_param.perm field to a const, as it should never be changed. Signed-off-by: Dan Streetman Signed-off-by: Rusty Russell (cut from larger patch) include/linux/moduleparam.h | 2 +- kernel/params.c | 8 +++----- 2 files changed, 4 insertions(+), 6 deletions(-) commit 74c3dea355245c17ee407a3ce3ea34f55b40f2eb Author: Rusty Russell Date: Wed Jun 17 06:16:52 2015 +0930 params: suppress unused variable error, warn once just in case code changes. It shouldn't fail due to OOM (it's boot time), and already warns if we get two identical names. But you never know what the future holds, and WARN_ON_ONCE() keeps gcc happy with minimal code. Reported-by: Louis Langholtz Acked-by: Tejun Heo Signed-off-by: Rusty Russell kernel/params.c | 1 + 1 file changed, 1 insertion(+) commit b6c09b512dc0c5f62a4cc40184f5de749e90fdac Author: Rusty Russell Date: Tue Jun 16 12:16:22 2015 +0930 modules: clarify CONFIG_MODULE_COMPRESS help, suggest 'N'. Andreas turned this option on, only to find out Debian (and Ubuntu!) don't enable support in their kmod builds. Shorten the text, and suggest N at the bottom (at least for now). Reported-by: Andreas Mohr Signed-off-by: Rusty Russell init/Kconfig | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) commit 07834743f42b4f27a21010cf5bab483b3ae3d13d Author: Yoshinori Sato Date: Tue Jun 9 02:24:11 2015 +0900 h8300: fix typo. Signed-off-by: Yoshinori Sato drivers/clocksource/h8300_timer8.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 24a42c7ac44df4d84519a41e32c3c8d98b961e64 Author: Yoshinori Sato Date: Sat May 30 22:24:20 2015 +0900 h8300: Always build dtb Signed-off-by: Yoshinori Sato arch/h8300/boot/dts/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit e96ba7033e368383c8560bfb7ad1beed3c6d6700 Author: Yoshinori Sato Date: Sat May 23 23:34:51 2015 +0900 h8300: Remove ARCH_WANT_IPC_PARSE_VERSION Signed-off-by: Yoshinori Sato arch/h8300/Kconfig | 1 - 1 file changed, 1 deletion(-) commit e4d6f911a7cea1a100205d39345d811914e9914a Author: Yoshinori Sato Date: Sat May 16 23:57:31 2015 +0900 sh-sci: Get register size from platform device There is much SCI of SoC having within, and the register size is also different in everyone. So get from platform device. Signed-off-by: Yoshinori Sato Acked-by: by: Geert Uytterhoeven Reviewed-by: Simon Horman drivers/tty/serial/sh-sci.c | 34 +++++++++++++--------------------- 1 file changed, 13 insertions(+), 21 deletions(-) commit ded515a4d5561bc930de4e42a8621b1edd481f22 Author: Dan Carpenter Date: Thu May 14 13:05:00 2015 +0300 clk: h8300: fix error handling in h8s2678_pll_clk_setup() The error handling was a bit messy and buggy. It freed "pll_clock" then dereferenced it, and then freed it again. I've re-written it in normal kernel style. Fixes: 42ff8e8008c8 ('h8300: clock driver') Signed-off-by: Dan Carpenter drivers/clk/h8300/clk-h8s2678.c | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) commit 389456b74007c6f455bec9d11e6c7cfc64d6e8d0 Author: Yoshinori Sato Date: Wed May 13 22:43:38 2015 +0900 h8300: Symbol name fix Signed-off-by: Yoshinori Sato arch/h8300/boot/dts/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 38d6bded13084d50b22b6261cc54cdc2364d6ea3 Author: Yoshinori Sato Date: Mon May 11 02:10:03 2015 +0900 h8300: devicetree source - h8300h_sim: GDB H8/300H simulator - h8s_sim: GDB H8S simulator - edosk2674: Renesas EDOSK2674R Evalution board Signed-off-by: Yoshinori Sato arch/h8300/boot/dts/Makefile | 11 ++++ arch/h8300/boot/dts/edosk2674.dts | 107 +++++++++++++++++++++++++++++++++++++ arch/h8300/boot/dts/h8300h_sim.dts | 96 +++++++++++++++++++++++++++++++++ arch/h8300/boot/dts/h8s_sim.dts | 99 ++++++++++++++++++++++++++++++++++ 4 files changed, 313 insertions(+) commit 9354fe8f929896d6801a75d9df111d759ccc084c Author: Yoshinori Sato Date: Fri May 8 23:04:12 2015 +0900 h8300: configs h8300h-sim_defconfig: GDB simulator H8/300H mode. h8s-sim_defconfig: GDB simulator H8S mode. edosk2674_defconfig: Renesas EDOSK2674R. Signed-off-by: Yoshinori Sato arch/h8300/configs/edosk2674_defconfig | 49 +++++++++++++++++++++++++++++++++ arch/h8300/configs/h8300h-sim_defconfig | 49 +++++++++++++++++++++++++++++++++ arch/h8300/configs/h8s-sim_defconfig | 49 +++++++++++++++++++++++++++++++++ 3 files changed, 147 insertions(+) commit 8a7644821ae00b76e0c039f9128ee584dda146a8 Author: Yoshinori Sato Date: Sun May 10 02:30:47 2015 +0900 h8300: IRQ chip driver Signed-off-by: Yoshinori Sato .../interrupt-controller/renesas,h8300h-intc.txt | 22 +++++ .../interrupt-controller/renesas,h8s-intc.txt | 22 +++++ drivers/irqchip/Kconfig | 8 ++ drivers/irqchip/Makefile | 2 + drivers/irqchip/irq-renesas-h8300h.c | 95 +++++++++++++++++++ drivers/irqchip/irq-renesas-h8s.c | 101 +++++++++++++++++++++ 6 files changed, 250 insertions(+) commit 618b902d8c098f2fff188119da7b3184c4bc5483 Author: Yoshinori Sato Date: Wed Jan 28 02:52:42 2015 +0900 h8300: clocksource h8300_timer8: 8bit clockevent device h8300_timer16 / h8300_tpu: 16bit clocksource Signed-off-by: Yoshinori Sato .../bindings/timer/renesas,16bit-timer.txt | 25 ++ .../bindings/timer/renesas,8bit-timer.txt | 25 ++ .../devicetree/bindings/timer/renesas,tpu.txt | 21 ++ drivers/clocksource/Kconfig | 7 + drivers/clocksource/Makefile | 3 + drivers/clocksource/h8300_timer16.c | 254 +++++++++++++++++ drivers/clocksource/h8300_timer8.c | 313 +++++++++++++++++++++ drivers/clocksource/h8300_tpu.c | 207 ++++++++++++++ 8 files changed, 855 insertions(+) commit 7b5bb891a6e44bd18bd8661ede2e09ccae258ef5 Author: Yoshinori Sato Date: Fri May 8 23:31:57 2015 +0900 h8300: clock driver Signed-off-by: Yoshinori Sato .../bindings/clock/renesas,h8300-div-clock.txt | 24 ++++ .../bindings/clock/renesas,h8s2678-pll-clock.txt | 23 ++++ drivers/clk/Makefile | 1 + drivers/clk/h8300/Makefile | 2 + drivers/clk/h8300/clk-div.c | 53 ++++++++ drivers/clk/h8300/clk-h8s2678.c | 147 +++++++++++++++++++++ 6 files changed, 250 insertions(+) commit 8dbdef22d5a720e66ac3939d4c4f7004ef9dd7b4 Author: Yoshinori Sato Date: Fri May 8 23:23:18 2015 +0900 h8300: Build scripts h8300's Makefile, Kconfig and memory layout. Signed-off-by: Yoshinori Sato arch/h8300/Kconfig | 77 ++++++++++++++++++++++++++++++++ arch/h8300/Kconfig.cpu | 99 +++++++++++++++++++++++++++++++++++++++++ arch/h8300/Makefile | 55 +++++++++++++++++++++++ arch/h8300/kernel/Makefile | 19 ++++++++ arch/h8300/kernel/vmlinux.lds.S | 67 ++++++++++++++++++++++++++++ 5 files changed, 317 insertions(+) commit a71a29de4c2f95563220a472f265f0bd74701d52 Author: Yoshinori Sato Date: Wed Jan 28 02:48:15 2015 +0900 h8300: library functions Signed-off-by: Yoshinori Sato arch/h8300/lib/Makefile | 8 +++++ arch/h8300/lib/abs.S | 20 +++++++++++ arch/h8300/lib/ashldi3.c | 24 +++++++++++++ arch/h8300/lib/ashrdi3.c | 24 +++++++++++++ arch/h8300/lib/delay.c | 40 ++++++++++++++++++++++ arch/h8300/lib/libgcc.h | 77 +++++++++++++++++++++++++++++++++++++++++ arch/h8300/lib/lshrdi3.c | 23 +++++++++++++ arch/h8300/lib/memcpy.S | 85 ++++++++++++++++++++++++++++++++++++++++++++++ arch/h8300/lib/memset.S | 69 +++++++++++++++++++++++++++++++++++++ arch/h8300/lib/moddivsi3.S | 72 +++++++++++++++++++++++++++++++++++++++ arch/h8300/lib/modsi3.S | 72 +++++++++++++++++++++++++++++++++++++++ arch/h8300/lib/muldi3.c | 44 ++++++++++++++++++++++++ arch/h8300/lib/mulsi3.S | 38 +++++++++++++++++++++ arch/h8300/lib/strncpy.S | 34 +++++++++++++++++++ arch/h8300/lib/ucmpdi2.c | 17 ++++++++++ arch/h8300/lib/udivsi3.S | 76 +++++++++++++++++++++++++++++++++++++++++ 16 files changed, 723 insertions(+) commit bbeb79acb3b44f727f6267e1f6db9b3fdf791c24 Author: Yoshinori Sato Date: Wed Jan 28 02:47:36 2015 +0900 h8300: Memory management Signed-off-by: Yoshinori Sato arch/h8300/mm/Makefile | 5 ++ arch/h8300/mm/fault.c | 57 ++++++++++++++++++++++ arch/h8300/mm/init.c | 128 +++++++++++++++++++++++++++++++++++++++++++++++++ arch/h8300/mm/memory.c | 53 ++++++++++++++++++++ 4 files changed, 243 insertions(+) commit 4e0c20981ec16d13cfebaad7ed6245a472df2ed0 Author: Yoshinori Sato Date: Wed Jan 28 02:46:20 2015 +0900 h8300: miscellaneous functions Signed-off-by: Yoshinori Sato arch/h8300/kernel/asm-offsets.c | 67 ++++++++++++++++++++++++++++++++++ arch/h8300/kernel/dma.c | 69 +++++++++++++++++++++++++++++++++++ arch/h8300/kernel/h8300_ksyms.c | 36 +++++++++++++++++++ arch/h8300/kernel/module.c | 70 ++++++++++++++++++++++++++++++++++++ arch/h8300/kernel/sim-console.c | 79 +++++++++++++++++++++++++++++++++++++++++ arch/h8300/kernel/syscalls.c | 14 ++++++++ 6 files changed, 335 insertions(+) commit fe54616d857da4ccb482eb40fef0e0f3b3d0efaf Author: Yoshinori Sato Date: Mon May 11 02:34:48 2015 +0900 h8300: process helpers Signed-off-by: Yoshinori Sato arch/h8300/kernel/process.c | 171 +++++++++++++++++++++++++++++ arch/h8300/kernel/ptrace.c | 203 ++++++++++++++++++++++++++++++++++ arch/h8300/kernel/ptrace_h.c | 256 +++++++++++++++++++++++++++++++++++++++++++ arch/h8300/kernel/ptrace_s.c | 44 ++++++++ 4 files changed, 674 insertions(+) commit 06706c96ed753f952e53fa9840fb38852d2fe37e Author: Yoshinori Sato Date: Mon May 11 02:26:40 2015 +0900 h8300: compressed image support Signed-off-by: Yoshinori Sato arch/h8300/boot/Makefile | 26 ++++++++++++ arch/h8300/boot/compressed/Makefile | 37 +++++++++++++++++ arch/h8300/boot/compressed/head.S | 48 ++++++++++++++++++++++ arch/h8300/boot/compressed/misc.c | 74 ++++++++++++++++++++++++++++++++++ arch/h8300/boot/compressed/vmlinux.lds | 32 +++++++++++++++ arch/h8300/boot/compressed/vmlinux.scr | 9 +++++ 6 files changed, 226 insertions(+) commit df2078b8daa7bb15cc8e3f791389b9f44e12bb25 Author: Yoshinori Sato Date: Mon May 11 02:32:13 2015 +0900 h8300: Low level entry Signed-off-by: Yoshinori Sato arch/h8300/kernel/entry.S | 414 +++++++++++++++++++++++++++++++++++++++++++ arch/h8300/kernel/head_ram.S | 60 +++++++ arch/h8300/kernel/head_rom.S | 110 ++++++++++++ 3 files changed, 584 insertions(+) commit d8b0bdb444ed0e2bd5f9d3ea7412cb90bdec58cf Author: Yoshinori Sato Date: Mon May 11 02:31:32 2015 +0900 h8300: kernel startup Signed-off-by: Yoshinori Sato Documentation/devicetree/bindings/h8300/cpu.txt | 13 ++ .../memory-controllers/renesas,h8300-bsc.txt | 12 + arch/h8300/kernel/setup.c | 255 +++++++++++++++++++++ 3 files changed, 280 insertions(+) commit 883251dd163c551abcb1031803e20e3ccd1f988c Author: Yoshinori Sato Date: Mon May 11 02:36:51 2015 +0900 h8300: Interrupt and exceptions Signed-off-by: Yoshinori Sato arch/h8300/kernel/irq.c | 97 +++++++++++++++ arch/h8300/kernel/signal.c | 289 +++++++++++++++++++++++++++++++++++++++++++++ arch/h8300/kernel/traps.c | 161 +++++++++++++++++++++++++ 3 files changed, 547 insertions(+) commit 88d1739f54200cecd7b25c9e53ede90309b59526 Author: Yoshinori Sato Date: Fri May 8 23:20:01 2015 +0900 h8300: UAPI headers Signed-off-by: Yoshinori Sato arch/h8300/include/uapi/asm/Kbuild | 30 ++++++++ arch/h8300/include/uapi/asm/byteorder.h | 6 ++ arch/h8300/include/uapi/asm/ptrace.h | 42 +++++++++++ arch/h8300/include/uapi/asm/sigcontext.h | 18 +++++ arch/h8300/include/uapi/asm/signal.h | 115 +++++++++++++++++++++++++++++++ arch/h8300/include/uapi/asm/unistd.h | 3 + 6 files changed, 214 insertions(+) commit d2a5f4999f6c211adf30d9788349e13988d6f2a7 Author: Yoshinori Sato Date: Mon May 11 02:20:06 2015 +0900 h8300: Assembly headers Signed-off-by: Yoshinori Sato arch/h8300/include/asm/Kbuild | 75 ++++++++++++++ arch/h8300/include/asm/atomic.h | 159 ++++++++++++++++++++++++++++++ arch/h8300/include/asm/bitops.h | 185 +++++++++++++++++++++++++++++++++++ arch/h8300/include/asm/bitsperlong.h | 14 +++ arch/h8300/include/asm/bug.h | 12 +++ arch/h8300/include/asm/byteorder.h | 7 ++ arch/h8300/include/asm/cache.h | 11 +++ arch/h8300/include/asm/cmpxchg.h | 65 ++++++++++++ arch/h8300/include/asm/dma-mapping.h | 57 +++++++++++ arch/h8300/include/asm/elf.h | 101 +++++++++++++++++++ arch/h8300/include/asm/flat.h | 28 ++++++ arch/h8300/include/asm/io.h | 57 +++++++++++ arch/h8300/include/asm/irq.h | 26 +++++ arch/h8300/include/asm/irqflags.h | 96 ++++++++++++++++++ arch/h8300/include/asm/mc146818rtc.h | 9 ++ arch/h8300/include/asm/mutex.h | 9 ++ arch/h8300/include/asm/page.h | 18 ++++ arch/h8300/include/asm/page_offset.h | 2 + arch/h8300/include/asm/pci.h | 19 ++++ arch/h8300/include/asm/pgtable.h | 49 ++++++++++ arch/h8300/include/asm/processor.h | 144 +++++++++++++++++++++++++++ arch/h8300/include/asm/ptrace.h | 36 +++++++ arch/h8300/include/asm/segment.h | 45 +++++++++ arch/h8300/include/asm/signal.h | 22 +++++ arch/h8300/include/asm/smp.h | 1 + arch/h8300/include/asm/string.h | 17 ++++ arch/h8300/include/asm/switch_to.h | 51 ++++++++++ arch/h8300/include/asm/syscall.h | 56 +++++++++++ arch/h8300/include/asm/thread_info.h | 111 +++++++++++++++++++++ arch/h8300/include/asm/tlb.h | 8 ++ arch/h8300/include/asm/traps.h | 41 ++++++++ arch/h8300/include/asm/user.h | 74 ++++++++++++++ 32 files changed, 1605 insertions(+) commit a2ed0c57a546f5d99f795e97cd0b2769882031bc Author: Yoshinori Sato Date: Fri May 8 17:54:32 2015 +0900 asm-generic: Add common asm-offsets.h All architecture use same asm-offsets.h So it generic header. Signed-off-by: Yoshinori Sato Acked-by: Arnd Bergmann include/asm-generic/asm-offsets.h | 1 + 1 file changed, 1 insertion(+) commit e1d0be616186906ddc2a23bdf643c02551feebf0 Author: Yoshinori Sato Date: Wed Jan 28 02:53:55 2015 +0900 sh-sci: Add h8300 SCI Signed-off-by: Yoshinori Sato Acked-by: Geert Uytterhoeven Documentation/devicetree/bindings/serial/renesas,sci-serial.txt | 1 + drivers/tty/serial/Kconfig | 2 +- drivers/tty/serial/sh-sci.c | 6 ++++++ 3 files changed, 8 insertions(+), 1 deletion(-) commit 2600896d659b638f5d4981dac4cd9aa03c8213da Author: Yoshinori Sato Date: Wed Jan 28 02:54:39 2015 +0900 Add ELF machine Signed-off-by: Yoshinori Sato include/uapi/linux/elf-em.h | 1 + 1 file changed, 1 insertion(+) commit 00902e984732e93f0aa7caec26dbebfcfbb9a829 Author: Yoshinori Sato Date: Mon Mar 9 15:30:48 2015 +0900 mksysmap: Add h8300 local symbol pattern h8300's nm output have a lot of local symbols. ex) 00000000 N .Lframe0 00000013 N .LLST1 00000026 N .LLST2 00000039 N .LLST3 0000004c N .LLST4 Added new pattern " .L" to filter rule. Signed-off-by: Yoshinori Sato scripts/mksysmap | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4e456b867ae92fd7643f24399c0323ef3435299c Author: Yoshinori Sato Date: Wed Mar 11 01:41:38 2015 +0900 MAINTAINERS: Add H8/300 entry Signed-off-by: Yoshinori Sato CREDITS | 5 ----- MAINTAINERS | 11 +++++++++++ 2 files changed, 11 insertions(+), 5 deletions(-) commit 44d21c3f3a2ef2f58b18bda64c52c99e723f3f4a Merge: efdfce2 fe55dfd Author: Linus Torvalds Date: Mon Jun 22 21:04:48 2015 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 Pull crypto update from Herbert Xu: "Here is the crypto update for 4.2: API: - Convert RNG interface to new style. - New AEAD interface with one SG list for AD and plain/cipher text. All external AEAD users have been converted. - New asymmetric key interface (akcipher). Algorithms: - Chacha20, Poly1305 and RFC7539 support. - New RSA implementation. - Jitter RNG. - DRBG is now seeded with both /dev/random and Jitter RNG. If kernel pool isn't ready then DRBG will be reseeded when it is. - DRBG is now the default crypto API RNG, replacing krng. - 842 compression (previously part of powerpc nx driver). Drivers: - Accelerated SHA-512 for arm64. - New Marvell CESA driver that supports DMA and more algorithms. - Updated powerpc nx 842 support. - Added support for SEC1 hardware to talitos" * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (292 commits) crypto: marvell/cesa - remove COMPILE_TEST dependency crypto: algif_aead - Temporarily disable all AEAD algorithms crypto: af_alg - Forbid the use internal algorithms crypto: echainiv - Only hold RNG during initialisation crypto: seqiv - Add compatibility support without RNG crypto: eseqiv - Offer normal cipher functionality without RNG crypto: chainiv - Offer normal cipher functionality without RNG crypto: user - Add CRYPTO_MSG_DELRNG crypto: user - Move cryptouser.h to uapi crypto: rng - Do not free default RNG when it becomes unused crypto: skcipher - Allow givencrypt to be NULL crypto: sahara - propagate the error on clk_disable_unprepare() failure crypto: rsa - fix invalid select for AKCIPHER crypto: picoxcell - Update to the current clk API crypto: nx - Check for bogus firmware properties crypto: marvell/cesa - add DT bindings documentation crypto: marvell/cesa - add support for Kirkwood and Dove SoCs crypto: marvell/cesa - add support for Orion SoCs crypto: marvell/cesa - add allhwsupport module parameter crypto: marvell/cesa - add support for all armada SoCs ... commit efdfce2b7ff3205ba0fba10270b92b80bbc6187d Merge: df68770 e55645e Author: Linus Torvalds Date: Mon Jun 22 20:33:38 2015 -0700 Merge tag 'please-pull-paravirt' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux Pull ia64 paravirt removal from Tony Luck: "Nobody cares about paravirtualization on ia64 anymore" * tag 'please-pull-paravirt' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux: ia64: remove paravirt code commit df68770983b7010ab01e68a21ef67fc034715701 Merge: 407a2c7 1214c52 Author: Linus Torvalds Date: Mon Jun 22 20:32:50 2015 -0700 Merge branch 'for-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k Pull m68k update from Geert Uytterhoeven. * 'for-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k: m68k: Use for_each_sg() m68k/defconfig: Update defconfigs for v4.1-rc6 commit 407a2c720556e8e340e06f6a7174f5d6d80cf9ea Merge: 3a95398 f052186 Author: Linus Torvalds Date: Mon Jun 22 19:42:56 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: "The irq departement delivers: - plug a potential race related to chained interrupt handlers - core updates which address the needs of the x86 irqdomain conversion - new irqchip callback to support affinity settings for VCPUs - the usual pile of updates to interrupt chip drivers - a few helper functions to allow further cleanups and simplifications I have a largish pile of coccinelle scripted/verified cleanups and simplifications pending on top of that, but I prefer to send that towards the end of the merge window when the arch/driver changes have hit your tree to avoid API change wreckage as far as possible" * 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (34 commits) genirq: Remove bogus restriction in irq_move_mask_irq() irqchip: atmel-aic5: Add sama5d2 support irq: spear-shirq: Fix race in installing chained IRQ handler irq: irq-keystone: Fix race in installing chained IRQ handler gpio: gpio-tegra: Fix race in installing chained IRQ handler gpio: gpio-mxs: Fix race in installing chained IRQ handler gpio: gpio-mxc: Fix race in installing chained IRQ handler ARM: gemini: Fix race in installing GPIO chained IRQ handler GPU: ipu: Fix race in installing IPU chained IRQ handler ARM: sa1100: convert SA11x0 related code to use new chained handler helper irq: Add irq_set_chained_handler_and_data() irqchip: exynos-combiner: Save IRQ enable set on suspend genirq: Introduce helper function irq_data_get_affinity_mask() genirq: Introduce helper function irq_data_get_node() genirq: Introduce struct irq_common_data to host shared irq data genirq: Prevent crash in irq_move_irq() genirq: Enhance irq_data_to_desc() to support hierarchy irqdomain irqchip: gic: Simplify gic_configure_irq by using IRQCHIP_SET_TYPE_MASKED irqchip: renesas: intc-irqpin: Improve binding documentation genirq: Set IRQCHIP_SKIP_SET_WAKE for no_irq_chip ... commit 3a95398f54cbd664c749fe9f1bfc7e7dbace92d0 Merge: 43224b9 8cb9764 Author: Linus Torvalds Date: Mon Jun 22 19:20:04 2015 -0700 Merge branch 'timers-nohz-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull NOHZ updates from Thomas Gleixner: "A few updates to the nohz infrastructure: - recursion protection for context tracking - make the TIF_NOHZ inheritance smarter - isolate cpus which belong to the NOHZ full set" * 'timers-nohz-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: nohz: Set isolcpus when nohz_full is set nohz: Add tick_nohz_full_add_cpus_to() API context_tracking: Inherit TIF_NOHZ through forks instead of context switches context_tracking: Protect against recursion commit 43224b96af3154cedd7220f7b90094905f07ac78 Merge: d70b3ef 1cb6c21 Author: Linus Torvalds Date: Mon Jun 22 18:57:44 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: "A rather largish update for everything time and timer related: - Cache footprint optimizations for both hrtimers and timer wheel - Lower the NOHZ impact on systems which have NOHZ or timer migration disabled at runtime. - Optimize run time overhead of hrtimer interrupt by making the clock offset updates smarter - hrtimer cleanups and removal of restrictions to tackle some problems in sched/perf - Some more leap second tweaks - Another round of changes addressing the 2038 problem - First step to change the internals of clock event devices by introducing the necessary infrastructure - Allow constant folding for usecs/msecs_to_jiffies() - The usual pile of clockevent/clocksource driver updates The hrtimer changes contain updates to sched, perf and x86 as they depend on them plus changes all over the tree to cleanup API changes and redundant code, which got copied all over the place. The y2038 changes touch s390 to remove the last non 2038 safe code related to boot/persistant clock" * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (114 commits) clocksource: Increase dependencies of timer-stm32 to limit build wreckage timer: Minimize nohz off overhead timer: Reduce timer migration overhead if disabled timer: Stats: Simplify the flags handling timer: Replace timer base by a cpu index timer: Use hlist for the timer wheel hash buckets timer: Remove FIFO "guarantee" timers: Sanitize catchup_timer_jiffies() usage hrtimer: Allow hrtimer::function() to free the timer seqcount: Introduce raw_write_seqcount_barrier() seqcount: Rename write_seqcount_barrier() hrtimer: Fix hrtimer_is_queued() hole hrtimer: Remove HRTIMER_STATE_MIGRATE selftest: Timers: Avoid signal deadlock in leap-a-day timekeeping: Copy the shadow-timekeeper over the real timekeeper last clockevents: Check state instead of mode in suspend/resume path selftests: timers: Add leap-second timer edge testing to leap-a-day.c ntp: Do leapsecond adjustment in adjtimex read path time: Prevent early expiry of hrtimers[CLOCK_REALTIME] at the leap second edge ntp: Introduce and use SECS_PER_DAY macro instead of 86400 ... commit d70b3ef54ceaf1c7c92209f5a662a670d04cbed9 Merge: 650ec5a 7ef3d7d Author: Linus Torvalds Date: Mon Jun 22 17:59:09 2015 -0700 Merge branch 'x86-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 core updates from Ingo Molnar: "There were so many changes in the x86/asm, x86/apic and x86/mm topics in this cycle that the topical separation of -tip broke down somewhat - so the result is a more traditional architecture pull request, collected into the 'x86/core' topic. The topics were still maintained separately as far as possible, so bisectability and conceptual separation should still be pretty good - but there were a handful of merge points to avoid excessive dependencies (and conflicts) that would have been poorly tested in the end. The next cycle will hopefully be much more quiet (or at least will have fewer dependencies). The main changes in this cycle were: * x86/apic changes, with related IRQ core changes: (Jiang Liu, Thomas Gleixner) - This is the second and most intrusive part of changes to the x86 interrupt handling - full conversion to hierarchical interrupt domains: [IOAPIC domain] ----- | [MSI domain] --------[Remapping domain] ----- [ Vector domain ] | (optional) | [HPET MSI domain] ----- | | [DMAR domain] ----------------------------- | [Legacy domain] ----------------------------- This now reflects the actual hardware and allowed us to distangle the domain specific code from the underlying parent domain, which can be optional in the case of interrupt remapping. It's a clear separation of functionality and removes quite some duct tape constructs which plugged the remap code between ioapic/msi/hpet and the vector management. - Intel IOMMU IRQ remapping enhancements, to allow direct interrupt injection into guests (Feng Wu) * x86/asm changes: - Tons of cleanups and small speedups, micro-optimizations. This is in preparation to move a good chunk of the low level entry code from assembly to C code (Denys Vlasenko, Andy Lutomirski, Brian Gerst) - Moved all system entry related code to a new home under arch/x86/entry/ (Ingo Molnar) - Removal of the fragile and ugly CFI dwarf debuginfo annotations. Conversion to C will reintroduce many of them - but meanwhile they are only getting in the way, and the upstream kernel does not rely on them (Ingo Molnar) - NOP handling refinements. (Borislav Petkov) * x86/mm changes: - Big PAT and MTRR rework: making the code more robust and preparing to phase out exposing direct MTRR interfaces to drivers - in favor of using PAT driven interfaces (Toshi Kani, Luis R Rodriguez, Borislav Petkov) - New ioremap_wt()/set_memory_wt() interfaces to support Write-Through cached memory mappings. This is especially important for good performance on NVDIMM hardware (Toshi Kani) * x86/ras changes: - Add support for deferred errors on AMD (Aravind Gopalakrishnan) This is an important RAS feature which adds hardware support for poisoned data. That means roughly that the hardware marks data which it has detected as corrupted but wasn't able to correct, as poisoned data and raises an APIC interrupt to signal that in the form of a deferred error. It is the OS's responsibility then to take proper recovery action and thus prolonge system lifetime as far as possible. - Add support for Intel "Local MCE"s: upcoming CPUs will support CPU-local MCE interrupts, as opposed to the traditional system- wide broadcasted MCE interrupts (Ashok Raj) - Misc cleanups (Borislav Petkov) * x86/platform changes: - Intel Atom SoC updates ... and lots of other cleanups, fixlets and other changes - see the shortlog and the Git log for details" * 'x86-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (222 commits) x86/hpet: Use proper hpet device number for MSI allocation x86/hpet: Check for irq==0 when allocating hpet MSI interrupts x86/mm/pat, drivers/infiniband/ipath: Use arch_phys_wc_add() and require PAT disabled x86/mm/pat, drivers/media/ivtv: Use arch_phys_wc_add() and require PAT disabled x86/platform/intel/baytrail: Add comments about why we disabled HPET on Baytrail genirq: Prevent crash in irq_move_irq() genirq: Enhance irq_data_to_desc() to support hierarchy irqdomain iommu, x86: Properly handle posted interrupts for IOMMU hotplug iommu, x86: Provide irq_remapping_cap() interface iommu, x86: Setup Posted-Interrupts capability for Intel iommu iommu, x86: Add cap_pi_support() to detect VT-d PI capability iommu, x86: Avoid migrating VT-d posted interrupts iommu, x86: Save the mode (posted or remapped) of an IRTE iommu, x86: Implement irq_set_vcpu_affinity for intel_ir_chip iommu: dmar: Provide helper to copy shared irte fields iommu: dmar: Extend struct irte for VT-d Posted-Interrupts iommu: Add new member capability to struct irq_remap_ops x86/asm/entry/64: Disentangle error_entry/exit gsbase/ebx/usermode code x86/asm/entry/32: Shorten __audit_syscall_entry() args preparation x86/asm/entry/32: Explain reloading of registers after __audit_syscall_entry() ... commit 650ec5a6bd5df4ab0c9ef38d05b94cd82fb99ad8 Merge: 35ffccd 04c1734 Author: Linus Torvalds Date: Mon Jun 22 17:51:59 2015 -0700 Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 warning fixlet from Ingo Molnar: "A build fix for certain (rare) variants of binutils that did not make it into v4.1" * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/boot: Fix overflow warning with 32-bit binutils commit 35ffccdb7e014a88c58e3161b36fe8890f5bab7b Merge: e2172d8 7b179b8 Author: Linus Torvalds Date: Mon Jun 22 17:46:14 2015 -0700 Merge branch 'x86-microcode-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pul x86 microcode updates from Ingo Molnar: "x86 microcode loader updates from Borislav Petkov: - early parsing of the built-in microcode - cleanups - misc smaller fixes" * 'x86-microcode-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/microcode: Correct CPU family related variable types x86/microcode: Disable builtin microcode loading on 32-bit for now x86/microcode/intel: Rename get_matching_sig() x86/microcode/intel: Simplify get_matching_sig() x86/microcode/intel: Simplify update_match_cpu() x86/microcode/intel: Rename get_matching_microcode x86/cpu/microcode: Zap changelog x86/microcode: Parse built-in microcode early x86/microcode/intel: Remove unused @rev arg of get_matching_sig() x86/microcode/intel: Get rid of revision_is_newer() commit e2172d8fd500a51a3845bc2294cdf4feaa388dab Merge: e75c73a 94fb933 Author: Linus Torvalds Date: Mon Jun 22 17:40:55 2015 -0700 Merge branch 'x86-kdump-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 kdump updates from Ingo Molnar: "Three kdump robustness related improvements (Joerg Roedel)" * 'x86-kdump-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/crash: Allocate enough low memory when crashkernel=high x86/swiotlb: Try coherent allocations with __GFP_NOWARN swiotlb: Warn on allocation failure in swiotlb_alloc_coherent() commit f451e76f896922137f8316cb071ae2cab78091ad Author: Uwe Kleine-König Date: Mon Jun 8 11:53:45 2015 +0200 HSI: nokia-modem: use flags argument of devm_gpiod_get to set direction Since 39b2bbe3d715 (gpio: add flags argument to gpiod_get*() functions) which appeared in v3.17-rc1, the gpiod_get* functions take an additional parameter that allows to specify direction and initial value for output. Use this to simplify the driver. Furthermore this is one caller less that stops us making the flags argument to gpiod_get*() mandatory. Signed-off-by: Uwe Kleine-König Acked-by: Alexandre Courbot Signed-off-by: Sebastian Reichel drivers/hsi/clients/nokia-modem.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit 505875e12a6c3bf08f333d1dba59e5e14f883c05 Author: Sebastian Reichel Date: Mon May 4 15:51:36 2015 +0200 HSI: nokia-modem: Reduce missing driver message to debug level Reduce message priority from dev_err to dev_dbg for missing cmt-speech or ssi-protocol drivers, since they will be probed again and it may result in spamming the boot log. Reported-by: Aaro Koskinen Signed-off-by: Sebastian Reichel drivers/hsi/clients/nokia-modem.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5023a5ca8e144846ec0646554336000abb11e04f Author: Sebastian Reichel Date: Thu Apr 16 19:05:18 2015 +0200 HSI: cmt_speech: fix timestamp interface The user interface for timestamps in the new cmt_speech driver is broken in multiple ways: - The layout is incompatible between 32-bit and 64-bit user space, because of the size differences in 'struct timespec'. This means that the driver can not work when used with 32-bit user space on a 64-bit kernel. - As there are plans to change 32-bit user space to use a 64-bit time_t type in the future, it will also be incompatible with new 32-bit user space. - It is using ktime_get_ts under it's deprecated alias (do_posix_clock_monotonic_gettime). To keep support for the user space tools written for this driver (which have lived many years out-of-tree), the interface has been hardened to unsigned 32-bit values. Reported-by: Arnd Bergmann Signed-off-by: Sebastian Reichel drivers/hsi/clients/cmt_speech.c | 9 +++++++-- include/uapi/linux/hsi/cs-protocol.h | 16 +++++++++++----- 2 files changed, 18 insertions(+), 7 deletions(-) commit 9eb1e57f564d4e6e10991402726cc83fe0b9172f Author: Dave Airlie Date: Mon Jun 22 14:40:44 2015 +1000 drm/dp/mst: take lock around looking up the branch device on hpd irq If we are doing an MST transaction and we've gotten HPD and we lookup the device from the incoming msg, we should take the mgr lock around it, so that mst_primary and mstb->ports are valid. Reviewed-by: Daniel Vetter Cc: stable@vger.kernel.org Signed-off-by: Dave Airlie drivers/gpu/drm/drm_dp_mst_topology.c | 3 +++ 1 file changed, 3 insertions(+) commit 9254ec496a1dbdddeab50021a8138dc627a8166a Author: Daniel Vetter Date: Mon Jun 22 17:31:59 2015 +1000 drm/dp/mst: make sure mst_primary mstb is valid in work function This validates the mst_primary under the lock, and then calls into the check and send function. This makes the code a lot easier to understand the locking rules in. Signed-off-by: Daniel Vetter Reviewed-by: Daniel Vetter Cc: stable@vger.kernel.org Signed-off-by: Dave Airlie drivers/gpu/drm/drm_dp_mst_topology.c | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) commit ce8e394278e2a487df254d87d049bd3531f48993 Merge: 8ffaa90 9044a81 Author: Dave Airlie Date: Tue Jun 23 10:22:19 2015 +1000 Merge tag 'drm-intel-next-fixes-2015-06-22' of git://anongit.freedesktop.org/drm-intel into drm-next fix warning introduced in last -fixes * tag 'drm-intel-next-fixes-2015-06-22' of git://anongit.freedesktop.org/drm-intel: drm/i915: Silence compiler warning commit 8ffaa90347d80cc20d08c5dd2cdd27dc3fb51b8d Author: Dave Airlie Date: Tue Jun 23 10:19:10 2015 +1000 of: add EXPORT_SYMBOL for of_graph_get_endpoint_by_regs This symbol came via exynos-next, but modular builds are broken so just fix it up now. Signed-off-by: Dave Airlie drivers/of/base.c | 1 + 1 file changed, 1 insertion(+) commit e75c73ad64478c12b3a44b86a3e7f62a4f65b93e Merge: cfe3ece a842400 Author: Linus Torvalds Date: Mon Jun 22 17:16:11 2015 -0700 Merge branch 'x86-fpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 FPU updates from Ingo Molnar: "This tree contains two main changes: - The big FPU code rewrite: wide reaching cleanups and reorganization that pulls all the FPU code together into a clean base in arch/x86/fpu/. The resulting code is leaner and faster, and much easier to understand. This enables future work to further simplify the FPU code (such as removing lazy FPU restores). By its nature these changes have a substantial regression risk: FPU code related bugs are long lived, because races are often subtle and bugs mask as user-space failures that are difficult to track back to kernel side backs. I'm aware of no unfixed (or even suspected) FPU related regression so far. - MPX support rework/fixes. As this is still not a released CPU feature, there were some buglets in the code - should be much more robust now (Dave Hansen)" * 'x86-fpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (250 commits) x86/fpu: Fix double-increment in setup_xstate_features() x86/mpx: Allow 32-bit binaries on 64-bit kernels again x86/mpx: Do not count MPX VMAs as neighbors when unmapping x86/mpx: Rewrite the unmap code x86/mpx: Support 32-bit binaries on 64-bit kernels x86/mpx: Use 32-bit-only cmpxchg() for 32-bit apps x86/mpx: Introduce new 'directory entry' to 'addr' helper function x86/mpx: Add temporary variable to reduce masking x86: Make is_64bit_mm() widely available x86/mpx: Trace allocation of new bounds tables x86/mpx: Trace the attempts to find bounds tables x86/mpx: Trace entry to bounds exception paths x86/mpx: Trace #BR exceptions x86/mpx: Introduce a boot-time disable flag x86/mpx: Restrict the mmap() size check to bounds tables x86/mpx: Remove redundant MPX_BNDCFG_ADDR_MASK x86/mpx: Clean up the code by not passing a task pointer around when unnecessary x86/mpx: Use the new get_xsave_field_ptr()API x86/fpu/xstate: Wrap get_xsave_addr() to make it safer x86/fpu/xstate: Fix up bad get_xsave_addr() assumptions ... commit 75c73861cf48610e0be0615d490fc2af0552033d Merge: b7ddeee 4f01e65 Author: Dave Airlie Date: Tue Jun 23 10:13:18 2015 +1000 Merge branch 'exynos-drm-next' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos into drm-next Summary: . Add atomic feature support - Exynos also now supports atomic feature. However, it doesn't guarantee atomic operation yet, and is required for more cleanups. This time we just modified for Exynos drm driver to use atomic interfaces instead of legacy ones. Next time, we will enhance Exynos drm driver to support the atomic operation. . Add iommu support - This is a patch series according to below Exynos iommu integration work with DT and dma-mapping subsystem, http://lwn.net/Articles/607626/ . Consolidate Exynos drm driver initialization. - This patch sereis resolves the issue that only the first compoments was bound when happened deferred probing for other pipelines and also makes the driver to be more cleanned up by moving the dispered codes for registering kms drivers to one place. . Add new MIC, DECON drivers, and MIPI-DSI support for Exynos5433. - Add MIC(Mobile image compressor) driver. MIC is a new IP for Exynos5433 and later, which is used to transfer frame data to MIPI-DSI controller compressing the data to reduce memory bandwidth. - Add DECON driver for Exynos5433 SoC. This IP is a dislay controller similar to Exynos7's one but this controller has much different registers from Exynos7's ones so this driver has been implemented separately. We will implement a helper modules for FIMD and two DECON controllers to remove duplicated codes later. - Add Exynos5433 SoC support to MIPI-DSI driver, and device tree relevant patches. * 'exynos-drm-next' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos: (50 commits) ARM: dts: rename the clock of MIPI DSI 'pll_clk' to 'sclk_mipi' drm/exynos: dsi: do not set TE GPIO direction by input drm/exynos: dsi: add support for MIC driver as a bridge drm/exynos: dsi: add support for Exynos5433 drm/exynos: dsi: make use of array for clock access drm/exynos: dsi: make use of driver data for static values drm/exynos: dsi: add macros for register access drm/exynos: dsi: rename pll_clk to sclk_clk drm/exynos: mic: add MIC driver of: add helper for getting endpoint node of specific identifiers drm/exynos: add Exynos5433 decon driver drm/exynos: fix the input prompt of Exynos7 DECON drm/exynos: add drm_iommu_attach_device_if_possible() drm/exynos: Add the dependency for DRM_EXYNOS to DPI/DSI/DP drm/exynos: remove the dependency of DP driver for ARCH_EXYNOS drm/exynos: do not wait for vblank at atomic operation drm/exynos: Remove unused vma field of exynos_drm_gem_obj drm/exynos: fimd: fix page fault issue with iommu drm/exynos: iommu: improve a check for non-iommu dma_ops drm/exynos: iommu: detach from default dma-mapping domain on init ... commit b7ddeee58bee54553552c1be9cf477efcdb2f30e Merge: 2609381 c30f55a Author: Dave Airlie Date: Tue Jun 23 10:12:40 2015 +1000 Merge tag 'topic/drm-misc-2015-06-22' of git://anongit.freedesktop.org/drm-intel into drm-next One more drm-misc pull for 4.2. The important one is the fix from Laurent for Daniel Stone's mode_blob work. * tag 'topic/drm-misc-2015-06-22' of git://anongit.freedesktop.org/drm-intel: drm/atomic: Don't set crtc_state->enable manually drm: prime: Document gem_prime_mmap drm: Avoid the double clflush on the last cache line in drm_clflush_virt_range() drm/atomic: Extract needs_modeset function drm/cma: Fix 64-bit size_t build warnings Documentation/drm: Update rotation property commit cfe3eceb7a2eb91284d5605c5315249bb165e9d3 Merge: 5ef6ca4 d4f7743 Author: Linus Torvalds Date: Mon Jun 22 17:10:44 2015 -0700 Merge branch 'x86-efi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 EFI updates from Ingo Molnar: "EFI changes: - Use idiomatic negative error values in efivar_create_sysfs_entry() instead of returning '1' to indicate error (Dan Carpenter) - Implement new support to expose the EFI System Resource Tables in sysfs, which provides information for performing firmware updates (Peter Jones) - Documentation cleanup in the EFI handover protocol section which falsely claimed that 'cmdline_size' needed to be filled out by the boot loader (Alex Smith) - Align the order of SMBIOS tables in /sys/firmware/efi/systab to match the way that we do things for ACPI and add documentation to Documentation/ABI (Jean Delvare)" * 'x86-efi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: efi: Work around ia64 build problem with ESRT driver efi: Add 'systab' information to Documentation/ABI efi: dmi: List SMBIOS3 table before SMBIOS table efi/esrt: Fix some compiler warnings x86, doc: Remove cmdline_size from list of fields to be filled in for EFI handover efi: Add esrt support efi: efivar_create_sysfs_entry() should return negative error codes commit 5ef6ca4f24b59af7f7c2c19502a3923a4bc10e0a Merge: b3ba283 113b5e3 Author: Linus Torvalds Date: Mon Jun 22 17:09:32 2015 -0700 Merge branch 'x86-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 debugging documentation updates from Ingo Molnar: "Documentation updates about x86 kernel stacks" * 'x86-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/Documentation: Adapt Ingo's explanation on printing backtraces x86/Documentation: Remove STACKFAULT_STACK bulletpoint x86/Documentation: Move kernel-stacks doc one level up commit b3ba283d831fed464a1f9c18e7ee82b020ab1a1e Merge: d43e4f4 cc2749e Author: Linus Torvalds Date: Mon Jun 22 16:43:01 2015 -0700 Merge branch 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 CPU features from Ingo Molnar: "Various CPU feature support related changes: in particular the /proc/cpuinfo model name sanitization change should be monitored, it has a chance to break stuff. (but really shouldn't and there are no regression reports)" * 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/cpu/amd: Give access to the number of nodes in a physical package x86/cpu: Trim model ID whitespace x86/cpu: Strip any /proc/cpuinfo model name field whitespace x86/cpu/amd: Set X86_FEATURE_EXTD_APICID for future processors x86/gart: Check for GART support before accessing GART registers commit d43e4f44ba47cace184c78f99723d80dea3e22e0 Merge: 23b7776 562bfca Author: Linus Torvalds Date: Mon Jun 22 16:23:00 2015 -0700 Merge branch 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 cleanups from Ingo Molnar: "Misc cleanups" * 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/mm: Clean up types in xlate_dev_mem_ptr() some more x86: Deinline dma_free_attrs() x86: Deinline dma_alloc_attrs() x86: Remove unused TI_cpu x86: Merge common 32-bit values in asm-offsets.c commit 358bdf892f6bfacf20884b54a35ab038321f06f9 Author: Daniel Thompson Date: Wed Jun 10 21:09:37 2015 +0100 clk: stm32: Add clock driver for STM32F4[23]xxx devices The driver supports decoding and statically modelling PLL state (i.e. we inherit state from bootloader) and provides support for all peripherals that support simple one-bit gated clocks. The covers all peripherals whose clocks come from the AHB, APB1 or APB2 buses. It has been tested on an STM32F429I-Discovery board. The clock counts for TIM2, USART1 and SYSTICK are all set correctly and the wall clock looks OK when checked with a stopwatch. I have also tested a prototype driver for the RNG hardware. The RNG clock is correctly enabled by the framework (also did inverse test and proved that by changing DT to configure the wrong clock bit then we observe the RNG driver to fail). Signed-off-by: Daniel Thompson Reviewed-by: Maxime Coquelin [sboyd@codeaurora.org: Silence sparse warnings] Signed-off-by: Stephen Boyd drivers/clk/Makefile | 1 + drivers/clk/clk-stm32f4.c | 380 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 381 insertions(+) commit 23b7776290b10297fe2cae0fb5f166a4f2c68121 Merge: 6bc4c3a 6fab541 Author: Linus Torvalds Date: Mon Jun 22 15:52:04 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 main changes are: - lockless wakeup support for futexes and IPC message queues (Davidlohr Bueso, Peter Zijlstra) - Replace spinlocks with atomics in thread_group_cputimer(), to improve scalability (Jason Low) - NUMA balancing improvements (Rik van Riel) - SCHED_DEADLINE improvements (Wanpeng Li) - clean up and reorganize preemption helpers (Frederic Weisbecker) - decouple page fault disabling machinery from the preemption counter, to improve debuggability and robustness (David Hildenbrand) - SCHED_DEADLINE documentation updates (Luca Abeni) - topology CPU masks cleanups (Bartosz Golaszewski) - /proc/sched_debug improvements (Srikar Dronamraju)" * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (79 commits) sched/deadline: Remove needless parameter in dl_runtime_exceeded() sched: Remove superfluous resetting of the p->dl_throttled flag sched/deadline: Drop duplicate init_sched_dl_class() declaration sched/deadline: Reduce rq lock contention by eliminating locking of non-feasible target sched/deadline: Make init_sched_dl_class() __init sched/deadline: Optimize pull_dl_task() sched/preempt: Add static_key() to preempt_notifiers sched/preempt: Fix preempt notifiers documentation about hlist_del() within unsafe iteration sched/stop_machine: Fix deadlock between multiple stop_two_cpus() sched/debug: Add sum_sleep_runtime to /proc//sched sched/debug: Replace vruntime with wait_sum in /proc/sched_debug sched/debug: Properly format runnable tasks in /proc/sched_debug sched/numa: Only consider less busy nodes as numa balancing destinations Revert 095bebf61a46 ("sched/numa: Do not move past the balance point if unbalanced") sched/fair: Prevent throttling in early pick_next_task_fair() preempt: Reorganize the notrace definitions a bit preempt: Use preempt_schedule_context() as the official tracing preemption point sched: Make preempt_schedule_context() function-tracing safe x86: Remove cpu_sibling_mask() and cpu_core_mask() x86: Replace cpu_**_mask() with topology_**_cpumask() ... commit de50e16ffabf64d30ca9372f39dc855a7553e305 Merge: 3d238b7 f66bf04 Author: Dave Chinner Date: Tue Jun 23 08:49:01 2015 +1000 Merge branch 'xfs-misc-fixes-for-4.2-3' into for-next commit 3d238b7e0efc2d9dde7513298ef32da289a6a0f4 Merge: 4ea7976 496817b Author: Dave Chinner Date: Tue Jun 23 08:48:43 2015 +1000 Merge branch 'xfs-freelist-cleanup' into for-next commit f66bf042693b620133d39af8d2f13615f03eadfc Author: Brian Foster Date: Tue Jun 23 08:47:20 2015 +1000 xfs: don't truncate attribute extents if no extents exist The xfs_attr3_root_inactive() call from xfs_attr_inactive() assumes that attribute blocks exist to invalidate. It is possible to have an attribute fork without extents, however. Consider the case where the attribute fork is created towards the beginning of xfs_attr_set() but some part of the subsequent attribute set fails. If an inode in such a state hits xfs_attr_inactive(), it eventually calls xfs_dabuf_map() and possibly xfs_bmapi_read(). The former emits a filesystem corruption warning, returns an error that bubbles back up to xfs_attr_inactive(), and leads to destruction of the in-core attribute fork without an on-disk reset. If the inode happens to make it back through xfs_inactive() in this state (e.g., via a concurrent bulkstat that cycles the inode from the reclaim state and releases it), i_afp might not exist when xfs_bmapi_read() is called and causes a NULL dereference panic. A '-p 2' fsstress run to ENOSPC on a relatively small fs (1GB) reproduces these problems. The behavior is a regression caused by: 6dfe5a0 xfs: xfs_attr_inactive leaves inconsistent attr fork state behind ... which removed logic that avoided the attribute extent truncate when no extents exist. Restore this logic to ensure the attribute fork is destroyed and reset correctly if it exists without any allocated extents. cc: stable@vger.kernel.org # 3.12 to 4.0.x Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/xfs_attr_inactive.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit 41655239eaed741ac8da066bc43c2483c78e61ec Author: Daniel Thompson Date: Wed Jun 10 21:09:36 2015 +0100 dt-bindings: Document the STM32F4 clock bindings This adds documentation of device tree bindings for the clock related portions of the STM32 RCC block. Signed-off-by: Daniel Thompson Acked-by: Maxime Coquelin Signed-off-by: Stephen Boyd .../devicetree/bindings/clock/st,stm32-rcc.txt | 65 ++++++++++++++++++++++ 1 file changed, 65 insertions(+) commit 6bc4c3ad3619e1bcb4a6330e030007ace8ca465e Merge: c58267e 0f02ada Author: Linus Torvalds Date: Mon Jun 22 15:45: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: "These are the left over fixes from the v4.1 cycle" * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: perf tools: Fix build breakage if prefix= is specified perf/x86: Honor the architectural performance monitoring version perf/x86/intel: Fix PMI handling for Intel PT perf/x86/intel/bts: Fix DS area sharing with x86_pmu events perf/x86: Add more Broadwell model numbers perf: Fix ring_buffer_attach() RCU sync, again commit c58267e9fa7b0345dd9006939254701e3622ca6a Merge: 1bf7067 a9a3cd9 Author: Linus Torvalds Date: Mon Jun 22 15:19:21 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: "Kernel side changes mostly consist of work on x86 PMU drivers: - x86 Intel PT (hardware CPU tracer) improvements (Alexander Shishkin) - x86 Intel CQM (cache quality monitoring) improvements (Thomas Gleixner) - x86 Intel PEBSv3 support (Peter Zijlstra) - x86 Intel PEBS interrupt batching support for lower overhead sampling (Zheng Yan, Kan Liang) - x86 PMU scheduler fixes and improvements (Peter Zijlstra) There's too many tooling improvements to list them all - here are a few select highlights: 'perf bench': - Introduce new 'perf bench futex' benchmark: 'wake-parallel', to measure parallel waker threads generating contention for kernel locks (hb->lock). (Davidlohr Bueso) 'perf top', 'perf report': - Allow disabling/enabling events dynamicaly in 'perf top': a 'perf top' session can instantly become a 'perf report' one, i.e. going from dynamic analysis to a static one, returning to a dynamic one is possible, to toogle the modes, just press 'f' to 'freeze/unfreeze' the sampling. (Arnaldo Carvalho de Melo) - Make Ctrl-C stop processing on TUI, allowing interrupting the load of big perf.data files (Namhyung Kim) 'perf probe': (Masami Hiramatsu) - Support glob wildcards for function name - Support $params special probe argument: Collect all function arguments - Make --line checks validate C-style function name. - Add --no-inlines option to avoid searching inline functions - Greatly speed up 'perf probe --list' by caching debuginfo. - Improve --filter support for 'perf probe', allowing using its arguments on other commands, as --add, --del, etc. 'perf sched': - Add option in 'perf sched' to merge like comms to lat output (Josef Bacik) Plus tons of infrastructure work - in particular preparation for upcoming threaded perf report support, but also lots of other work - and fixes and other improvements. See (much) more details in the shortlog and in the git log" * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (305 commits) perf tools: Configurable per thread proc map processing time out perf tools: Add time out to force stop proc map processing perf report: Fix sort__sym_cmp to also compare end of symbol perf hists browser: React to unassigned hotkey pressing perf top: Tell the user how to unfreeze events after pressing 'f' perf hists browser: Honour the help line provided by builtin-{top,report}.c perf hists browser: Do not exit when 'f' is pressed in 'report' mode perf top: Replace CTRL+z with 'f' as hotkey for enable/disable events perf annotate: Rename source_line_percent to source_line_samples perf annotate: Display total number of samples with --show-total-period perf tools: Ensure thread-stack is flushed perf top: Allow disabling/enabling events dynamicly perf evlist: Add toggle_enable() method perf trace: Fix race condition at the end of started workloads perf probe: Speed up perf probe --list by caching debuginfo perf probe: Show usage even if the last event is skipped perf tools: Move libtraceevent dynamic list to separated LDFLAGS variable perf tools: Fix a problem when opening old perf.data with different byte order perf tools: Ignore .config-detected in .gitignore perf probe: Fix to return error if no probe is added ... commit 65f6f092a6987489a5a4d7d63a2a825077755aff Author: Paul Gortmaker Date: Sun Jun 21 00:32:05 2015 -0400 Documentation/mic/mpssd: don't build x86 userspace when cross compiling The following was seen in linux-next build coverage, which is somewhat unique since it uses powerpc host to cross compile x86: Documentation/mic/mpssd/mpssd.c:93:10: error: braced-group within expression allowed only inside a function Documentation/mic/mpssd/mpssd.c:96:10: error: braced-group within expression allowed only inside a function Documentation/mic/mpssd/mpssd.c:113:10: error: braced-group within expression allowed only inside a function Documentation/mic/mpssd/mpssd.c:116:10: error: braced-group within expression allowed only inside a function Documentation/mic/mpssd/mpssd.c:119:3: error: initializer element is not constant Documentation/mic/mpssd/mpssd.c:119:3: error: (near initialization for 'virtnet_dev_page.host_features') Documentation/mic/mpssd/mpssd.c:146:10: error: braced-group within expression allowed only inside a function Documentation/mic/mpssd/mpssd.c:149:3: error: initializer element is not constant Documentation/mic/mpssd/mpssd.c:149:3: error: (near initialization for 'virtblk_dev_page.host_features') Documentation/mic/mpssd/mpssd.c:151:3: error: initializer element is not constant Documentation/mic/mpssd/mpssd.c:151:3: error: (near initialization for 'virtblk_dev_page.blk_config.seg_max') Documentation/mic/mpssd/mpssd.c:152:3: error: initializer element is not constant Documentation/mic/mpssd/mpssd.c:152:3: error: (near initialization for 'virtblk_dev_page.blk_config.capacity') make[5]: *** [Documentation/mic/mpssd/mpssd.o] Error 1 Since it is building /usr/sbin/mpssd and /usr/sbin/micctrl for x86_64 and the original authors indicated[1] that: MIC card is expected to work with x86_64 host, not with ppc64. We have never compiled on ppc host.. so it probably makes sense to just skip building these userspace programs when we are cross compiling. [1] https://lists.ozlabs.org/pipermail/linuxppc-dev/2014-December/123296.html Cc: Jonathan Corbet Cc: Ashutosh Dixit Cc: Sudeep Dutt Cc: Caz Yokoyama Cc: linux-doc@vger.kernel.org Signed-off-by: Paul Gortmaker Signed-off-by: Jonathan Corbet Documentation/mic/mpssd/Makefile | 2 ++ 1 file changed, 2 insertions(+) commit f59514b6a8c5ca6dd282881a25e367e20ef4cb68 Author: Paul Gortmaker Date: Sat Jun 20 21:22:20 2015 -0400 Documentation/prctl: don't build tsc tests when cross compiling The following was seen in linux-next build coverage, which is somewhat unique since it uses powerpc host to cross compile x86: Documentation/prctl/disable-tsc-on-off-stress-test.c:36:1: error: impossible register constraint in 'asm' Documentation/prctl/disable-tsc-ctxt-sw-stress-test.c:34:1: error: impossible register constraint in 'asm' Documentation/prctl/disable-tsc-test.c:36:1: error: impossible register constraint in 'asm' It probably makes sense to just skip building these tests when we are cross compiling. Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Cc: Erik Bosman Signed-off-by: Paul Gortmaker Signed-off-by: Jonathan Corbet Documentation/prctl/Makefile | 2 ++ 1 file changed, 2 insertions(+) commit 6a407a81a9abcf6664698b22e70d070605063f7c Author: Paul Gortmaker Date: Sat Jun 20 21:10:28 2015 -0400 Documentation/vDSO: don't build tests when cross compiling The following was seen in linux-next build coverage, which is somewhat unique since it uses powerpc host to cross compile x86: Documentation/vDSO/vdso_standalone_test_x86.c:49:2: error: impossible register constraint in 'asm' make[4]: *** [Documentation/vDSO/vdso_standalone_test_x86.o] Error 1 It probably makes sense to just skip building these tests when we are cross compiling. Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Cc: Andy Lutomirski Signed-off-by: Paul Gortmaker Signed-off-by: Jonathan Corbet Documentation/vDSO/Makefile | 2 ++ 1 file changed, 2 insertions(+) commit 1bf7067c6e173dc10411704db48338ed69c05565 Merge: fc934d4 6872210 Author: Linus Torvalds Date: Mon Jun 22 14:54:22 2015 -0700 Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull locking updates from Ingo Molnar: "The main changes are: - 'qspinlock' support, enabled on x86: queued spinlocks - these are now the spinlock variant used by x86 as they outperform ticket spinlocks in every category. (Waiman Long) - 'pvqspinlock' support on x86: paravirtualized variant of queued spinlocks. (Waiman Long, Peter Zijlstra) - 'qrwlock' support, enabled on x86: queued rwlocks. Similar to queued spinlocks, they are now the variant used by x86: CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y CONFIG_QUEUED_SPINLOCKS=y CONFIG_ARCH_USE_QUEUED_RWLOCKS=y CONFIG_QUEUED_RWLOCKS=y - various lockdep fixlets - various locking primitives cleanups, further WRITE_ONCE() propagation" * 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (24 commits) locking/lockdep: Remove hard coded array size dependency locking/qrwlock: Don't contend with readers when setting _QW_WAITING lockdep: Do not break user-visible string locking/arch: Rename set_mb() to smp_store_mb() locking/arch: Add WRITE_ONCE() to set_mb() rtmutex: Warn if trylock is called from hard/softirq context arch: Remove __ARCH_HAVE_CMPXCHG locking/rtmutex: Drop usage of __HAVE_ARCH_CMPXCHG locking/qrwlock: Rename QUEUE_RWLOCK to QUEUED_RWLOCKS locking/pvqspinlock: Rename QUEUED_SPINLOCK to QUEUED_SPINLOCKS locking/pvqspinlock: Replace xchg() by the more descriptive set_mb() locking/pvqspinlock, x86: Enable PV qspinlock for Xen locking/pvqspinlock, x86: Enable PV qspinlock for KVM locking/pvqspinlock, x86: Implement the paravirt qspinlock call patching locking/pvqspinlock: Implement simple paravirt support for the qspinlock locking/qspinlock: Revert to test-and-set on hypervisors locking/qspinlock: Use a simple write to grab the lock locking/qspinlock: Optimize for smaller NR_CPUS locking/qspinlock: Extract out code snippets for the next patch locking/qspinlock: Add pending bit ... commit cae705baa40b2c20de8f9bb79ef4bcc6b2418c7c Author: Pavel Rojtberg Date: Mon Jun 22 14:11:30 2015 -0700 Input: xpad - re-send LED command on present event The controller only receives commands when its present. So for the correct LED to be lit the LED command has to be sent on the present event. Signed-off-by: Pavel Rojtberg Signed-off-by: Dmitry Torokhov drivers/input/joystick/xpad.c | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) commit 75b7f05d2798ee3a1cc5bbdd54acd0e318a80396 Author: Pierre-Loup A. Griffais Date: Mon Jun 22 14:10:36 2015 -0700 Input: xpad - set the LEDs properly on XBox Wireless controllers Based on Patch by Pierre-Loup A. Griffais : Add the logic to set the LEDs on XBox Wireless controllers. Command sequence found by sniffing the Windows data stream when plugging the device in. Updated based on comments on linux-input: unify codepaths in xpad_send_led_command for wired/ wireless controller. Also document command values for clarification. All values tested on Xbox 360 Wireless Controller. Signed-off-by: Pavel Rojtberg Signed-off-by: Dmitry Torokhov drivers/input/joystick/xpad.c | 50 ++++++++++++++++++++++++++++++++++++++----- 1 file changed, 45 insertions(+), 5 deletions(-) commit fc934d40178ad4e551a17e2733241d9f29fddd70 Merge: 052b398 085c789 Author: Linus Torvalds Date: Mon Jun 22 14:01:01 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: - Continued initialization/Kconfig updates: hide most Kconfig options from unsuspecting users. There's now a single high level configuration option: * * RCU Subsystem * Make expert-level adjustments to RCU configuration (RCU_EXPERT) [N/y/?] (NEW) Which if answered in the negative, leaves us with a single interactive configuration option: Offload RCU callback processing from boot-selected CPUs (RCU_NOCB_CPU) [N/y/?] (NEW) All the rest of the RCU options are configured automatically. Later on we'll remove this single leftover configuration option as well. - Remove all uses of RCU-protected array indexes: replace the rcu_[access|dereference]_index_check() APIs with READ_ONCE() and rcu_lockdep_assert() - RCU CPU-hotplug cleanups - Updates to Tiny RCU: a race fix and further code shrinkage. - RCU torture-testing updates: fixes, speedups, cleanups and documentation updates. - Miscellaneous fixes - Documentation updates * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (60 commits) rcutorture: Allow repetition factors in Kconfig-fragment lists rcutorture: Display "make oldconfig" errors rcutorture: Update TREE_RCU-kconfig.txt rcutorture: Make rcutorture scripts force RCU_EXPERT rcutorture: Update configuration fragments for rcutree.rcu_fanout_exact rcutorture: TASKS_RCU set directly, so don't explicitly set it rcutorture: Test SRCU cleanup code path rcutorture: Replace barriers with smp_store_release() and smp_load_acquire() locktorture: Change longdelay_us to longdelay_ms rcutorture: Allow negative values of nreaders to oversubscribe rcutorture: Exchange TREE03 and TREE08 NR_CPUS, speed up CPU hotplug rcutorture: Exchange TREE03 and TREE04 geometries locktorture: fix deadlock in 'rw_lock_irq' type rcu: Correctly handle non-empty Tiny RCU callback list with none ready rcutorture: Test both RCU-sched and RCU-bh for Tiny RCU rcu: Further shrink Tiny RCU by making empty functions static inlines rcu: Conditionally compile RCU's eqs warnings rcu: Remove prompt for RCU implementation rcu: Make RCU able to tolerate undefined CONFIG_RCU_KTHREAD_PRIO rcu: Make RCU able to tolerate undefined CONFIG_RCU_FANOUT_LEAF ... commit 8a687719d03131f656d5eb9a578ba3764f31ddab Author: Uwe Kleine-König Date: Fri Jun 12 00:35:43 2015 -0700 leds: aat1290: pass flags parameter to devm_gpiod_get Since 39b2bbe3d715 (gpio: add flags argument to gpiod_get*() functions) which appeared in v3.17-rc1, the gpiod_get* functions take an additional parameter that allows to specify direction and initial value for output. In this case the driver cannot easily be simplified but as the flags parameter will become mandatory soon this change is necessary beforehand. Signed-off-by: Uwe Kleine-König Acked-by: Jacek Anaszewski Signed-off-by: Bryan Wu drivers/leds/leds-aat1290.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5e324ebf014afdde76130f9b4f65ce64746c7af2 Author: Uwe Kleine-König Date: Fri Jun 12 00:32:23 2015 -0700 leds: ktd2692: pass flags parameter to devm_gpiod_get Since 39b2bbe3d715 (gpio: add flags argument to gpiod_get*() functions) which appeared in v3.17-rc1, the gpiod_get* functions take an additional parameter that allows to specify direction and initial value for output. In this case the driver cannot easily be simplified but as the flags parameter will become mandatory soon this change is necessary beforehand. Signed-off-by: Uwe Kleine-König Acked-by: Jacek Anaszewski Signed-off-by: Bryan Wu drivers/leds/leds-ktd2692.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b83fae0c0c5ea97aad4f762dae99342f94523f42 Author: Paul Gortmaker Date: Mon Jun 15 15:12:47 2015 -0700 drivers/leds: don't use module_init in non-modular leds-cobalt-raq.c This file is built for a bool Kconfig variable, and hence this code is either present or absent. It currently can never be modular, so using module_init as an alias for __initcall can be somewhat misleading. Fix this up now, so that we can relocate module_init from init.h into module.h in the future. If we don't do this, we'd have to add module.h to obviously non-modular code, and that would be a worse thing. Note that direct use of __initcall is discouraged, vs. one of the priority categorized subgroups. As __initcall gets mapped onto device_initcall, our use of device_initcall directly in this change means that the runtime impact is zero -- it will remain at level 6 in initcall ordering. And since it can't be modular, we remove all the __exitcall stuff related to module_exit() -- it is dead code that won't ever be executed. Cc: Richard Purdie Cc: linux-leds@vger.kernel.org Signed-off-by: Paul Gortmaker Acked-by: Jacek Anaszewski Signed-off-by: Bryan Wu drivers/leds/leds-cobalt-raq.c | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) commit ac69b9038f8214e2a8ee0eb3a113af473a7518e4 Author: Jacek Anaszewski Date: Fri Jun 19 00:33:22 2015 -0700 leds: aat1290: add support for V4L2 Flash sub-device Add support for V4L2 Flash sub-device to the aat1290 LED Flash class driver. The support allows for V4L2 Flash sub-device to take the control of the LED Flash class device. Signed-off-by: Jacek Anaszewski Acked-by: Kyungmin Park Cc: Bryan Wu Cc: Richard Purdie Cc: Sakari Ailus Signed-off-by: Bryan Wu drivers/leds/Kconfig | 1 + drivers/leds/leds-aat1290.c | 137 ++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 132 insertions(+), 6 deletions(-) commit 8bdc89390ed645c7d7c1e23470d24fbd523e7168 Author: Jacek Anaszewski Date: Mon Jun 8 02:02:21 2015 -0700 DT: aat1290: Document handling external strobe sources This patch adds documentation for a pinctrl-names property. The property, when present, is used for switching the source of the strobe signal for the device. Signed-off-by: Jacek Anaszewski Acked-by: Kyungmin Park Cc: Bryan Wu Cc: Richard Purdie Cc: devicetree@vger.kernel.org Acked-by: Sakari Ailus Signed-off-by: Bryan Wu .../devicetree/bindings/leds/leds-aat1290.txt | 36 ++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) commit 0b380186a5f12f12e4c780dd5413731b4ec48670 Author: Jacek Anaszewski Date: Mon Jun 8 02:02:20 2015 -0700 leds: max77693: add support for V4L2 Flash sub-device Add support for V4L2 Flash sub-device to the max77693 LED Flash class driver. The support allows for V4L2 Flash sub-device to take the control of the LED Flash class device. Signed-off-by: Jacek Anaszewski Acked-by: Kyungmin Park Cc: Bryan Wu Cc: Richard Purdie Acked-by: Sakari Ailus Signed-off-by: Bryan Wu drivers/leds/leds-max77693.c | 129 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 123 insertions(+), 6 deletions(-) commit 42bd6f59ae90244484746696aabcafc0003f59c7 Author: Jacek Anaszewski Date: Fri Jun 19 00:31:47 2015 -0700 media: Add registration helpers for V4L2 flash sub-devices This patch adds helper functions for registering/unregistering LED Flash class devices as V4L2 sub-devices. The functions should be called from the LED subsystem device driver. In case the support for V4L2 Flash sub-devices is disabled in the kernel config the functions' empty versions will be used. Signed-off-by: Jacek Anaszewski Acked-by: Kyungmin Park Cc: Sakari Ailus Cc: Hans Verkuil Signed-off-by: Bryan Wu drivers/media/v4l2-core/Kconfig | 11 + drivers/media/v4l2-core/Makefile | 2 + drivers/media/v4l2-core/v4l2-flash-led-class.c | 710 +++++++++++++++++++++++++ include/media/v4l2-flash-led-class.h | 148 ++++++ 4 files changed, 871 insertions(+) commit 052b398a43a7de8c68c13e7fa05d6b3d16ce6801 Merge: b953c0d b853a16 Author: Linus Torvalds Date: Mon Jun 22 12:51:21 2015 -0700 Merge branch 'for-linus-1' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs Pull vfs updates from Al Viro: "In this pile: pathname resolution rewrite. - recursion in link_path_walk() is gone. - nesting limits on symlinks are gone (the only limit remaining is that the total amount of symlinks is no more than 40, no matter how nested). - "fast" (inline) symlinks are handled without leaving rcuwalk mode. - stack footprint (independent of the nesting) is below kilobyte now, about on par with what it used to be with one level of nested symlinks and ~2.8 times lower than it used to be in the worst case. - struct nameidata is entirely private to fs/namei.c now (not even opaque pointers are being passed around). - ->follow_link() and ->put_link() calling conventions had been changed; all in-tree filesystems converted, out-of-tree should be able to follow reasonably easily. For out-of-tree conversions, see Documentation/filesystems/porting for details (and in-tree filesystems for examples of conversion). That has sat in -next since mid-May, seems to survive all testing without regressions and merges clean with v4.1" * 'for-linus-1' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (131 commits) turn user_{path_at,path,lpath,path_dir}() into static inlines namei: move saved_nd pointer into struct nameidata inline user_path_create() inline user_path_parent() namei: trim do_last() arguments namei: stash dfd and name into nameidata namei: fold path_cleanup() into terminate_walk() namei: saner calling conventions for filename_parentat() namei: saner calling conventions for filename_create() namei: shift nameidata down into filename_parentat() namei: make filename_lookup() reject ERR_PTR() passed as name namei: shift nameidata inside filename_lookup() namei: move putname() call into filename_lookup() namei: pass the struct path to store the result down into path_lookupat() namei: uninline set_root{,_rcu}() namei: be careful with mountpoint crossings in follow_dotdot_rcu() Documentation: remove outdated information from automount-support.txt get rid of assorted nameidata-related debris lustre: kill unused helper lustre: kill unused macro (LOOKUP_CONTINUE) ... commit 2e19f93fecc502e68131e4433ef8d57ffa22bc3b Author: Pali Rohár Date: Sun Jun 21 10:41:42 2015 +0200 dell-laptop: Show info about WiGig and UWB in debugfs This commit show additional information about rfkill state in debugfs based on newly released documentation by Dell. Signed-off-by: Pali Rohár Signed-off-by: Darren Hart drivers/platform/x86/dell-laptop.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit dd7a2acf5b7da9449988a99fe671349b3e5ec593 Author: Mauro Carvalho Chehab Date: Mon Jun 22 15:25:31 2015 -0300 [media] si470x: cleanup define namespace Some architectures already use CHIPID defines: drivers/media/radio/si470x/radio-si470x.h:57:0: warning: "CHIPID" redefined [enabled by default] drivers/media/radio/si470x/radio-si470x.h:57:0: warning: "CHIPID" redefined [enabled by default] drivers/media/radio/si470x/radio-si470x.h:57:0: warning: "CHIPID" redefined [enabled by default] So, use SI_foo namespace to avoid conflicts. Signed-off-by: Mauro Carvalho Chehab drivers/media/radio/si470x/radio-si470x-i2c.c | 6 +++--- drivers/media/radio/si470x/radio-si470x-usb.c | 6 +++--- drivers/media/radio/si470x/radio-si470x.h | 8 ++++---- 3 files changed, 10 insertions(+), 10 deletions(-) commit 901f1379f6c9dc2d73b51971d129a6f7d5b9b20a Author: Fabian Frederick Date: Tue Jun 16 21:57:52 2015 +0200 sunrpc: use sg_init_one() in krb5_rc4_setup_enc/seq_key() Don't opencode sg_init_one() Signed-off-by: Fabian Frederick Signed-off-by: J. Bruce Fields net/sunrpc/auth_gss/gss_krb5_crypto.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit 68e8bb0334dbad55285573682c38d8f6664fce68 Author: Christoph Hellwig Date: Thu Jun 18 16:45:02 2015 +0200 nfsd: wrap too long lines in nfsd4_encode_read Signed-off-by: Christoph Hellwig Signed-off-by: J. Bruce Fields fs/nfsd/nfs4xdr.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 96bcad506457cfa0c26680446eedefb616c6b079 Author: Christoph Hellwig Date: Thu Jun 18 16:45:01 2015 +0200 nfsd: fput rd_file from XDR encode context Remove the hack where we fput the read-specific file in generic code. Instead we can do it in nfsd4_encode_read as that gets called for all error cases as well. Signed-off-by: Christoph Hellwig Signed-off-by: J. Bruce Fields fs/nfsd/nfs4proc.c | 4 ---- fs/nfsd/nfs4xdr.c | 22 ++++++++++++++-------- 2 files changed, 14 insertions(+), 12 deletions(-) commit af90f707fa6d54dbb725c4b919c976cd23cd07f2 Author: Christoph Hellwig Date: Thu Jun 18 16:45:00 2015 +0200 nfsd: take struct file setup fully into nfs4_preprocess_stateid_op This patch changes nfs4_preprocess_stateid_op so it always returns a valid struct file if it has been asked for that. For that we now allocate a temporary struct file for special stateids, and check permissions if we got the file structure from the stateid. This ensures that all callers will get their handling of special stateids right, and avoids code duplication. There is a little wart in here because the read code needs to know if we allocated a file structure so that it can copy around the read-ahead parameters. In the long run we should probably aim to cache full file structures used with special stateids instead. Signed-off-by: Christoph Hellwig Signed-off-by: J. Bruce Fields fs/nfsd/nfs4proc.c | 39 ++++++++++++++-------------------- fs/nfsd/nfs4state.c | 60 +++++++++++++++++++++++++++++++++++++++++++---------- fs/nfsd/nfs4xdr.c | 19 +---------------- fs/nfsd/state.h | 6 +++--- fs/nfsd/vfs.c | 7 +------ fs/nfsd/vfs.h | 4 ++++ fs/nfsd/xdr4.h | 1 + 7 files changed, 74 insertions(+), 62 deletions(-) commit f992efbb0326ddf57c9d2f759c44a3339ab56a76 Author: Pali Rohár Date: Sun Jun 21 10:39:26 2015 +0200 dell-laptop: Update information about wireless control Make sure that all existing SMBIOS calls for wireless control are properly documented. This commit also add new documentation released by Dell. Signed-off-by: Pali Rohár Signed-off-by: Darren Hart drivers/platform/x86/dell-laptop.c | 158 ++++++++++++++++++++++++++++--------- 1 file changed, 119 insertions(+), 39 deletions(-) commit e368c7291f20c624cfc202a8ad836d6de54c0c24 Author: Masanari Iida Date: Sat Jun 20 11:17:20 2015 +0900 Doc:ABI/testing: Fix typo in sysfs-bus-fcoe This patch fix some spelling typo in sysfs-bus-fcoe Signed-off-by: Masanari Iida Signed-off-by: Jonathan Corbet Documentation/ABI/testing/sysfs-bus-fcoe | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit e998200c1912f22cf257ae88771e56de588ee8fb Author: Fabio Estevam Date: Mon Jun 22 09:22:34 2015 -0700 Input: imx_keypad - check for clk_prepare_enable() error clk_prepare_enable() may fail, so we should better check its return value and propagate it in the case of error. Signed-off-by: Fabio Estevam Signed-off-by: Dmitry Torokhov drivers/input/keyboard/imx_keypad.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 57d1c23f9829a0f3a0bebf41f49ea9b0f2819c26 Author: Masanari Iida Date: Thu Jun 18 23:44:25 2015 +0900 Doc: Docbook: Change wikipedia's URL from http to https in scsi.tmpl Recently wikipedia announced to secure access to the servers. Now all http access re-route to https. Signed-off-by: Masanari Iida Signed-off-by: Jonathan Corbet Documentation/DocBook/scsi.tmpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f7ebc4dcdeb1be7209d94a8c0dc602ab24e36ae1 Merge: 469d7d2 84c88ef Author: Dmitry Torokhov Date: Mon Jun 22 09:26:29 2015 -0700 Merge branch 'next' into for-linus Prepare first round of input updates for 4.2 merge window. commit ae13c65bc74a69f06b39d0124af60710ba6d0d49 Author: Masanari Iida Date: Thu Jun 18 00:12:02 2015 +0900 Doc: Change wikipedia's URL from http to https Recently wikipedia announced to secure access to the servers. Now all http access re-route to https. Signed-off-by: Masanari Iida Signed-off-by: Jonathan Corbet Documentation/RCU/RTFP.txt | 2 +- Documentation/arm/vlocks.txt | 2 +- Documentation/debugging-via-ohci1394.txt | 2 +- Documentation/input/rotary-encoder.txt | 2 +- Documentation/kmemleak.txt | 2 +- Documentation/networking/fore200e.txt | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) commit c43088e3b8caec2362dec4e9e899493fa6440e22 Author: Alexander Kuleshov Date: Wed Jun 10 23:21:15 2015 +0600 Documentation/kernel-parameters: add missing pciserial to the earlyprintk The PCI based UART can be specified for earlyprintk with the 'pciserial' parameter from the ea9e9d802. This patch adds missing information about this parameter. Signed-off-by: Alexander Kuleshov Signed-off-by: Jonathan Corbet Documentation/kernel-parameters.txt | 1 + 1 file changed, 1 insertion(+) commit ce9ae951d45a8595d43b614063ec9b49fa236d5c Author: Masanari Iida Date: Wed Jun 10 12:53:47 2015 +0900 Doc:pps: Fix typo in pps.txt This patch fix a spelling typo in Documentation/pps/pps.txt Signed-off-by: Masanari Iida Acked-by: Rodolfo Giometti [jc: did s/into/in the/ on the same line while we were there] Signed-off-by: Jonathan Corbet Documentation/pps/pps.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a714ea5fa41623c8d8c42bed0dfb38a4d653451d Author: Alex Williamson Date: Thu Jun 18 11:59:22 2015 -0600 MAINTAINERS: Add vfio-platform sub-maintainer Add Baptiste Reynal as the VFIO platform driver sub-maintainer. Acked-by: Baptiste Reynal Signed-off-by: Alex Williamson MAINTAINERS | 6 ++++++ 1 file changed, 6 insertions(+) commit 1c8a866d31ec73bd9c7817368fd4c24ca39602de Author: Mauro Carvalho Chehab Date: Mon Jun 22 12:19:17 2015 -0300 [media] bdisp: prevent compiling on random arch This driver requires support for DMA attrs function, and not just DMA. Change the options accordingly to remove those errors: /devel/v4l/to_next/drivers/media/platform/sti/bdisp/bdisp-hw.c: In function ‘bdisp_hw_free_nodes’: /devel/v4l/to_next/drivers/media/platform/sti/bdisp/bdisp-hw.c:132:3: error: implicit declaration of function ‘dma_free_attrs’ [-Werror=implicit-function-declaration] dma_free_attrs(ctx->bdisp_dev->dev, ^ /devel/v4l/to_next/drivers/media/platform/sti/bdisp/bdisp-hw.c: In function ‘bdisp_hw_alloc_nodes’: /devel/v4l/to_next/drivers/media/platform/sti/bdisp/bdisp-hw.c:157:9: error: implicit declaration of function ‘dma_alloc_attrs’ [-Werror=implicit-function-declaration] base = dma_alloc_attrs(dev, node_size * MAX_NB_NODE, &paddr, ^ /devel/v4l/to_next/drivers/media/platform/sti/bdisp/bdisp-hw.c:157:7: warning: assignment makes pointer from integer without a cast [-Wint-conversion] base = dma_alloc_attrs(dev, node_size * MAX_NB_NODE, &paddr, ^ /devel/v4l/to_next/drivers/media/platform/sti/bdisp/bdisp-hw.c: In function ‘bdisp_hw_alloc_filters’: /devel/v4l/to_next/drivers/media/platform/sti/bdisp/bdisp-hw.c:219:7: warning: assignment makes pointer from integer without a cast [-Wint-conversion] base = dma_alloc_attrs(dev, size, &paddr, GFP_KERNEL | GFP_DMA, &attrs); Also, get rid of bogus, unused and duplicated symbol declaration for the config option done at bdisp/Kconfig. Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/Kconfig | 2 +- drivers/media/platform/sti/bdisp/Kconfig | 9 --------- 2 files changed, 1 insertion(+), 10 deletions(-) commit ed45d403696150864ee3090e69e0564d4397eebc Author: Anish Bhatt Date: Mon Jun 8 17:37:31 2015 -0700 kbuild : Fix documentation of INSTALL_HDR_PATH The header install makefile creates an 'include' directory inside INSTALL_HDR_PATH and appending include to the path results in headers being installed to include/include. Don't recommend appending include to the path as makefile already does this. Signed-off-by: Anish Bhatt Signed-off-by: Jonathan Corbet Documentation/kbuild/headers_install.txt | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit e6bcd47f8f676bd03205c8ffe3fe194936a3e2ca Author: Eric Auger Date: Mon Jun 15 11:13:52 2015 +0200 VFIO: platform: enable ARM64 build This patch enables building VFIO platform and derivatives on ARM64. Signed-off-by: Eric Auger Acked-by: Baptiste Reynal Tested-by: Baptiste Reynal Signed-off-by: Alex Williamson drivers/vfio/platform/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 713cc334a6cc20dd1740933bf49d804b081bbca0 Author: Eric Auger Date: Mon Jun 15 11:09:45 2015 +0200 VFIO: platform: Calxeda xgmac reset module This patch introduces a module that registers and implements a basic reset function for the Calxeda xgmac device. This latter basically disables interrupts and stops DMA transfers. The reset function code is inherited from the native calxeda xgmac driver. Signed-off-by: Eric Auger Acked-by: Baptiste Reynal Tested-by: Baptiste Reynal Signed-off-by: Alex Williamson drivers/vfio/platform/Kconfig | 2 + drivers/vfio/platform/Makefile | 2 + drivers/vfio/platform/reset/Kconfig | 7 ++ drivers/vfio/platform/reset/Makefile | 5 ++ .../platform/reset/vfio_platform_calxedaxgmac.c | 86 ++++++++++++++++++++++ drivers/vfio/platform/vfio_platform_common.c | 5 ++ 6 files changed, 107 insertions(+) commit 3eeb0d510c65e777030156f03c116393095a3248 Author: Eric Auger Date: Mon Jun 15 11:09:44 2015 +0200 VFIO: platform: populate the reset function on probe The reset function lookup happens on vfio-platform probe. The reset module load is requested and a reference to the function symbol is hold. The reference is released on vfio-platform remove. Signed-off-by: Eric Auger Acked-by: Baptiste Reynal Tested-by: Baptiste Reynal Signed-off-by: Alex Williamson drivers/vfio/platform/vfio_platform_common.c | 37 +++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) commit 813ae66008aeb97a48f20efefeb962179b642dbe Author: Eric Auger Date: Mon Jun 15 11:09:43 2015 +0200 VFIO: platform: add reset callback A new reset callback is introduced. If this callback is populated, the reset is invoked on device first open/last close or upon userspace ioctl. The modality is exposed on VFIO_DEVICE_GET_INFO. Signed-off-by: Eric Auger Acked-by: Baptiste Reynal Tested-by: Baptiste Reynal Signed-off-by: Alex Williamson drivers/vfio/platform/vfio_platform_common.c | 15 +++++++++++++-- drivers/vfio/platform/vfio_platform_private.h | 1 + 2 files changed, 14 insertions(+), 2 deletions(-) commit 6a806a214af42ac951e2d85e64d1bf4463482e16 Author: Sifan Naeem Date: Thu Jun 18 13:50:54 2015 +0100 spi: img-spfi: fix support for speeds up to 1/4th input clock Setting the Same Edge bit indicates to the spfi block to receive and transmit data on the same edge of the spfi clock, which in turn doubles the operating frequency of spfi. The maximum supported frequency is limited to 1/4th of the spfi input clock, but without this bit set the maximum would be 1/8th of the input clock. The current driver calculates the divisor with maximum speed at 1/4th of the input clock, this would fail if the requested frequency is higher than 1/8 of the input clock. Any requests for 1/8th of the input clock would still pass. Fixes: 8543d0e72d43 ("spi: img-spfi: Limit bit clock to 1/4th of input clock") Signed-off-by: Sifan Naeem Signed-off-by: Mark Brown Cc: drivers/spi/spi-img-spfi.c | 2 ++ 1 file changed, 2 insertions(+) commit 8e55735150934f9ab2ce8a8005626e5693a6b61d Author: Jiri Olsa Date: Mon Jun 22 14:50:52 2015 +0200 perf build: Fix single target build dependency check Currently if we build a single target like: $ touch util/map.c && make util/map.o It will not rebuild util/map.o if it already exists and util/map.c is modified. The reason is that the top-level 'Makefile' processes util/map.o as an implicit rule and if util/map.o exists make considers the 'util/map.o' target as done and will not nest into Makefile.perf. Adding FORCE for '%', because that's what we want to nest into Makefile.perf for any target. Adding Makefile into phony targets, because make tries to rebuild it and it's also resolved as '%' target. Signed-off-by: Jiri Olsa Cc: Adrian Hunter Cc: Andi Kleen Cc: David Ahern Cc: Lukas Wunner Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1434977452-32520-4-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 110c146645140636995c3cf6c6d782008ff67ce8 Merge: 9a1bd63 535b3dd 26029d8 Author: Jiri Kosina Date: Mon Jun 22 16:26:56 2015 +0200 Merge branches 'for-4.1/upstream-fixes', 'for-4.2/kaslr' and 'for-4.2/upstream' into for-linus commit eb30d2c5077b30f9f8e00eb2e5fadba18b148538 Author: Jiri Olsa Date: Mon Jun 22 14:50:51 2015 +0200 perf tests: Add test for make install with prefix Lukas Wunner reported issue (and fix[1]) with 'make install prefix=...'. Adding automated test for this, so it wouldn't happen again. [1]: 75e84ab906ef ("perf tools: Fix build breakage if prefix= is specified") Signed-off-by: Jiri Olsa Cc: Adrian Hunter Cc: Andi Kleen Cc: David Ahern Cc: Lukas Wunner Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1434977452-32520-3-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/make | 8 ++++++++ 1 file changed, 8 insertions(+) commit ec3b34e1975670e68be3abff76f56dbb41dd417c Merge: 817a312 3e48138 181a8b9 81bb773 10e87dc 30ee72f 6e5e9a0 b2723eb 2a6cdbd Author: Jiri Kosina Date: Mon Jun 22 16:23:43 2015 +0200 Merge branches 'for-4.2/i2c-hid', 'for-4.2/lenovo', 'for-4.2/plantronics', 'for-4.2/rmi', 'for-4.2/sensor-hub', 'for-4.2/sjoy', 'for-4.2/sony' and 'for-4.2/wacom' into for-linus Conflicts: drivers/hid/wacom_wac.c commit 817a3125819983956bb8a22455a569aac4e8ea34 Merge: 7250dc3 74a3e0c 8a09b4f Author: Jiri Kosina Date: Mon Jun 22 16:22:06 2015 +0200 Merge branches 'for-4.1/upstream-fixes', 'for-4.2/upstream' and 'for-4.2/logitech' into for-linus Conflicts: drivers/hid/hid-logitech-hidpp.c commit 502819c5f35ef44eb7151fb85cd883c5b76b506d Author: Jiri Olsa Date: Mon Jun 22 14:50:50 2015 +0200 perf tests: Add testing for Makefile.perf Currently we test only builds through top level Makefile, but seems like there's a bunch of users using Makefile.perf directly. Changing the make suite to be run for Makefile.perf as well. It takes now considerable amount of time, but hopefully we catch more issues. Also fixing the output indentation for make_kernelsrc and make_kernelsrc_tools tests. Signed-off-by: Jiri Olsa Cc: Adrian Hunter Cc: Andi Kleen Cc: David Ahern Cc: Lukas Wunner Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1434977452-32520-2-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/make | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) commit 13d1e536b14ec2d404319a25e681a3287ca084ad Author: Namhyung Kim Date: Sun Jun 21 12:41:16 2015 +0900 perf top: Move toggling event logic into hists browser Current 'f' key action to enable/disable events won't work if there're more than one event since perf_evsel_menu__run() doesn't return the key. So move it to the hists browser loop so that it can be processed as like other key action, and it's more natural to handle it there IMHO. Signed-off-by: Namhyung Kim Cc: David Ahern Cc: Jiri Olsa Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1434858076-6533-1-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-top.c | 24 +++--------------------- tools/perf/ui/browsers/hists.c | 19 +++++++++++++++++-- 2 files changed, 20 insertions(+), 23 deletions(-) commit a9b54bb95176cd27f952cd9647849022c4c998d6 Author: Bob Liu Date: Fri Jun 19 00:23:00 2015 -0400 drivers: xen-blkfront: only talk_to_blkback() when in XenbusStateInitialising Patch 69b91ede5cab843dcf345c28bd1f4b5a99dacd9b "drivers: xen-blkback: delay pending_req allocation to connect_ring" exposed an problem that Xen blkfront has. There is a race with XenStored and the drivers such that we can see two: vbd vbd-268440320: blkfront:blkback_changed to state 2. vbd vbd-268440320: blkfront:blkback_changed to state 2. vbd vbd-268440320: blkfront:blkback_changed to state 4. state changes to XenbusStateInitWait ('2'). The end result is that blkback_changed() receives two notify and calls twice setup_blkring(). While the backend driver may only get the first setup_blkring() which is wrong and reads out-dated (or reads them as they are being updated with new ring-ref values). The end result is that the ring ends up being incorrectly set. The other drivers in the tree have such checks already in. Reported-and-Tested-by: Robert Butera Signed-off-by: Bob Liu Signed-off-by: Konrad Rzeszutek Wilk drivers/block/xen-blkfront.c | 2 ++ 1 file changed, 2 insertions(+) commit 1372a3130a3e0bfd38d82d476f0a907cc72ba816 Merge: 775f06a c707011 Author: Trond Myklebust Date: Mon Jun 22 09:55:08 2015 -0400 Merge branch 'bugfixes' * bugfixes: NFS: Ensure we set NFS_CONTEXT_RESEND_WRITES when requeuing writes pNFS: Fix a memory leak when attempted pnfs fails NFS: Ensure that we update the sequence id under the slot table lock nfs: Initialize cb_sequenceres information before validate_seqid() nfs: Only update callback sequnce id when CB_SEQUENCE success NFSv4: nfs4_handle_delegation_recall_error should ignore EAGAIN commit 46c80b20d07e9309677d81e1226dc30a055b63b7 Author: Jean Delvare Date: Sun Jun 21 09:32:33 2015 +0200 watchdog: hpwdt: Add support for WDIOC_SETOPTIONS WDIOC_SETOPTIONS makes it possible to disable and re-enable the watchdog timer while the hpwdt driver is loaded. Signed-off-by: Jean Delvare Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/hpwdt.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) commit a47911e99fe8d2080426951711a7e776d331ba77 Author: Lars Poeschel Date: Wed Jun 17 11:13:27 2015 +0200 watchdog: docs: omap_wdt also understands nowayout The omap_wdt kernel driver also understands the nowayout module parameter. This updates the watchdog-parameters.txt to reflect this fact. Signed-off-by: Lars Poeschel Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck Documentation/watchdog/watchdog-parameters.txt | 2 ++ 1 file changed, 2 insertions(+) commit 452fafed839eb008a8ed9072d63449cb76de617e Author: Lars Poeschel Date: Wed Jun 17 10:58:59 2015 +0200 watchdog: omap_wdt: implement get_timeleft The omap watchdog hardware is able to read the watchdog timer counter register. This implements this functionality in the omap_wdt driver, so one is can read the time until the watchdog will trigger the reset in seconds using WDIOC_GETTIMELEFT. Signed-off-by: Lars Poeschel Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/omap_wdt.c | 11 +++++++++++ drivers/watchdog/omap_wdt.h | 1 + 2 files changed, 12 insertions(+) commit 7a7cb009dcbae5588d8836cd7b4f7255db2e489b Author: S Twiss Date: Thu May 28 14:33:31 2015 +0100 watchdog: da9062: DA9062 watchdog driver Add watchdog driver support for DA9062 Signed-off-by: Steve Twiss Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/Kconfig | 9 ++ drivers/watchdog/Makefile | 1 + drivers/watchdog/da9062_wdt.c | 253 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 263 insertions(+) commit 8135193ceba383e336b2449589db930ea02807d2 Author: Vladimir Zapolskiy Date: Tue Jun 2 15:46:18 2015 +0300 watchdog: imx2_wdt: set watchdog parent device If on watchdog device registration a parent device is not set, then the registered watchdog is considered to be a virtual device: /sys/devices/virtual/watchdog/watchdog0 /sys/devices/virtual/watchdog/watchdog1 Setting a correct reference to a platform device allows to distinguish multiple instances of iMX2+ hardware watchdogs: /sys/devices/soc0/soc/2000000.aips-bus/20bc000.wdog/watchdog/watchdog0 /sys/devices/soc0/soc/2000000.aips-bus/20c0000.wdog/watchdog/watchdog1 Signed-off-by: Vladimir Zapolskiy Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/imx2_wdt.c | 1 + 1 file changed, 1 insertion(+) commit 57337db1b9f96b897d2404531d8b6375667723fa Author: Johannes Thumshirn Date: Tue Jun 2 12:25:26 2015 +0200 watchdog: mena21_wdt: Fix possible NULL pointer dereference In a21_wdt_remove() we do a watchdog_unregister_device() on struct a21_wdt_drv->wdt but never assign it. Also move the dev_set_drvdata() call in front of the watchdog_register_device() call, so it doesn't look like an error. Signed-off-by: Johannes Thumshirn Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/mena21_wdt.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 04b1a62e6bb9b217847be874fe37a6b85ddff67e Author: Doug Anderson Date: Thu May 7 21:27:45 2015 -0700 watchdog: dw_wdt: keepalive the watchdog at write time If you've got code that does this in a tight loop 1. Open watchdog 2. Send 'expect close' 3. Close watchdog ...you'll eventually trigger a watchdog reset. You can reproduce this by using daisydog (1) and running: while true; do daisydog -c > /dev/null; done The problem is that each time you write to the watchdog for 'expect close' it moves the timer .5 seconds out. The timer thus never fires and never pats the watchdog for you. 1: http://git.chromium.org/gitweb/?p=chromiumos/third_party/daisydog.git Signed-off-by: Doug Anderson Tested-by: Jisheng Zhang Reviewed-by: Dmitry Torokhov Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/dw_wdt.c | 1 + 1 file changed, 1 insertion(+) commit 7fb466a7a7362de19b8f2aa07cffa79e527cf070 Author: Doug Anderson Date: Thu May 7 21:27:44 2015 -0700 watchdog: dw_wdt: No need for a spinlock Right now the dw_wdt uses a spinlock to protect dw_wdt_open(). The problem is that while holding the spinlock we call: -> dw_wdt_set_top() -> dw_wdt_top_in_seconds() -> clk_get_rate() -> clk_prepare_lock() -> mutex_lock() Locking a mutex while holding a spinlock is not allowed and leads to warnings like "BUG: spinlock wrong CPU on CPU#1", among other problems. There's no reason to use a spinlock. Only dw_wdt_open() was protected and the test_and_set_bit() at the start of that function protects us anyway. Signed-off-by: Doug Anderson Tested-by: Jisheng Zhang Reviewed-by: Dmitry Torokhov Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/dw_wdt.c | 7 ------- 1 file changed, 7 deletions(-) commit 30dd4a8f08b570b5ed978fd937fdb5c31194be41 Author: Michael Grzeschik Date: Wed May 6 13:17:59 2015 +0200 watchdog: imx2_wdt: also set wdog->timeout to new_timeout Commit faad5de0b104 ("watchdog: imx2_wdt: convert to watchdog core api") removes the custom ioctl function. The generic ioctl handler is not setting the wdog->timeout to the new_timeout but handing this preset value back to the userspace. This patch sets the new value in the drivers set_timeout function to fix that problem. Signed-off-by: Michael Grzeschik Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/imx2_wdt.c | 2 ++ 1 file changed, 2 insertions(+) commit 21a926a340723035b5c569046056d65f80013e12 Author: Geert Uytterhoeven Date: Tue May 5 18:32:42 2015 +0200 watchdog: 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 Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck Cc: linux-watchdog@vger.kernel.org drivers/watchdog/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6960d4851f72148182892de68ea2a3ea2f525d4c Author: Richard Weinberger Date: Mon May 4 21:01:25 2015 +0200 watchdog: cadence: Add dependency on HAS_IOMEM Not all architectures have io memory. Fixes: drivers/built-in.o: In function `cdns_wdt_probe': cadence_wdt.c:(.text+0x33b7c9): undefined reference to `devm_ioremap_resource' Signed-off-by: Richard Weinberger Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 8c7c72c9bcd4bc76a2c04d6e1d06340082d399ec Author: Krzysztof Kozlowski Date: Sat May 2 00:36:52 2015 +0900 watchdog: max63xx_wdt: 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 Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/max63xx_wdt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 04658449dc65911b418d1bf032a67c73027cb70f Author: Vivien Didelot Date: Thu Jan 29 12:15:42 2015 -0500 watchdog: MAX63XX_WATCHDOG does not depend on ARM Remove the ARM Kconfig dependency since the Maxim MAX63xx devices are architecture independent. Signed-off-by: Vivien Didelot Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c1f263878e99e44c6e23fee0dfe01ef05ad83024 Author: Ezequiel Garcia Date: Mon May 11 14:41:05 2015 -0300 watchdog: imgpdc: Add some documentation about the timeout This watchdog hardware can be configured in terms of power-of-two clock cycles. Therefore, the watchdog timeout configured by the user will be rounded-up to the next possible hardware timeout. This commit adds a comment explaining this. Signed-off-by: Ezequiel Garcia Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/imgpdc_wdt.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) commit deb8d50eb40085d304b42a524d4ba326fcecc73d Author: Ezequiel Garcia Date: Mon May 11 14:41:04 2015 -0300 watchdog: imgpdc: Fix max timeout Maximum timeout is currently set in clock cycles, but the watchdog core expects it to be in seconds. Fix it. Signed-off-by: Ezequiel Garcia Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/imgpdc_wdt.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit c631f20068369a8b901574df9c7bfc57ce13de75 Author: Andrew Bresticker Date: Fri Apr 3 10:05:22 2015 -0700 watchdog: imgpdc: Add reboot support Register a restart handler that will restart the system by writing to the watchdog's SOFT_RESET register. Signed-off-by: Andrew Bresticker Reviewed-by: Ezequiel Garcia Tested-by: Ezequiel Garcia Cc: James Hogan Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/imgpdc_wdt.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) commit 8aa453a533faf383fe711aa8dedcf421563ddf66 Author: Andrew Bresticker Date: Fri Apr 3 10:05:21 2015 -0700 watchdog: imgpdc: Set timeout before starting watchdog Set up the watchdog for the specified timeout before attempting to start it. Signed-off-by: Naidu Tellapati Signed-off-by: Andrew Bresticker Reviewed-by: Ezequiel Garcia Tested-by: Ezequiel Garcia Cc: James Hogan Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/imgpdc_wdt.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) commit 7094e1dd2ba98f1eb534c262deebbc65e34fe132 Author: Andrew Bresticker Date: Fri Apr 3 10:05:20 2015 -0700 watchdog: imgpdc: Allow timeout to be set in device-tree Since the heartbeat is statically initialized to its default value, watchdog_init_timeout() will never look in the device-tree for a timeout-sec value. Instead of statically initializing heartbeat, fall back to the default timeout value if watchdog_init_timeout() fails. Signed-off-by: Andrew Bresticker Reviewed-by: Ezequiel Garcia Tested-by: Ezequiel Garcia Cc: James Hogan Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/imgpdc_wdt.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) commit 530c11d432727c697629ad5f9d00ee8e2864d453 Author: Uwe Kleine-König Date: Wed Apr 29 20:38:46 2015 +0200 watchdog: omap: assert the counter being stopped before reprogramming The omap watchdog has the annoying behaviour that writes to most registers don't have any effect when the watchdog is already running. Quoting the AM335x reference manual: To modify the timer counter value (the WDT_WCRR register), prescaler ratio (the WDT_WCLR[4:2] PTV bit field), delay configuration value (the WDT_WDLY[31:0] DLY_VALUE bit field), or the load value (the WDT_WLDR[31:0] TIMER_LOAD bit field), the watchdog timer must be disabled by using the start/stop sequence (the WDT_WSPR register). Currently the timer is stopped in the .probe callback but still there are possibilities that yield to a situation where omap_wdt_start is entered with the timer running (e.g. when /dev/watchdog is closed without stopping and then reopened). In such a case programming the timeout silently fails! To circumvent this stop the timer before reprogramming. Assuming one of the first things the watchdog user does is setting the timeout explicitly nothing too bad should happen because this explicit setting works fine. Fixes: 7768a13c252a ("[PATCH] OMAP: Add Watchdog driver support") Signed-off-by: Uwe Kleine-König Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/omap_wdt.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 0b3330f310b520f53a88a06bf44a4a6fda6b1a88 Author: Uwe Kleine-König Date: Mon Apr 27 11:23:01 2015 +0200 watchdog: omap: simplify assignment of bootstatus Instead of using an over-long expression involving the ?: operator use an if and instead of an else branch rely on the fact that the data structure was allocated using devm_kzalloc. This also allows to put the used helper variable into a more local scope. There is no functional change. Signed-off-by: Uwe Kleine-König Reviewed-by: Felipe Balbi Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/omap_wdt.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) commit d2f78268ba583f75d5a67d44b8ef4b1560d6f597 Author: Uwe Kleine-König Date: Mon Apr 27 11:23:00 2015 +0200 watchdog: omap: put struct watchdog_device into driver data This way only a single allocation is needed (per device). Also this simplifies the data structure used by the driver because there is no need anymore to link from one struct to the other (by means of watchdog_{set,get}_drvdata). Signed-off-by: Uwe Kleine-König Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/omap_wdt.c | 55 ++++++++++++++++++++------------------------- 1 file changed, 24 insertions(+), 31 deletions(-) commit a4f741e3e157c3a5c8aea5f2ea62b692fbf17338 Author: Uwe Kleine-König Date: Mon Apr 27 11:22:59 2015 +0200 watchdog: omap: use watchdog_init_timeout instead of open coding it Instead of (partly) open coding watchdog_init_timeout to determine the inital timeout use the core function that exists for exactly this purpose. As a side effect the "timeout-sec" device-tree property is recognized now (though currently unused in the omap device trees). Signed-off-by: Uwe Kleine-König Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck Documentation/devicetree/bindings/watchdog/omap-wdt.txt | 3 +++ drivers/watchdog/omap_wdt.c | 5 +---- 2 files changed, 4 insertions(+), 4 deletions(-) commit 83efa1cbcff406f0305d4b227d356d6bdce8cb13 Author: Uwe Kleine-König Date: Mon Apr 27 11:22:58 2015 +0200 watchdog: omap: clearify device tree documentation ti,hwmods doesn't belong into the compatible section but is a property on it's own. Also reformat the section of required properties to match the usual style of dt binding documents. Signed-off-by: Uwe Kleine-König Reviewed-by: Felipe Balbi Acked-by: Felipe Balbi Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck Documentation/devicetree/bindings/watchdog/omap-wdt.txt | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 336694a01dae7e788630f8043dae30337047b51b Author: Baruch Siach Date: Tue Mar 31 09:14:59 2015 +0300 watchdog: digicolor: driver for Conexant Digicolor CX92755 SoC This commit add a driver for the watchdog functionality of the Conexant CX92755 SoC, from the Digicolor series of SoCs. Of 8 system timers provided by the CX92755, the first one, timer A, can reset the chip when its counter reaches zero. This driver uses this capability to provide userspace with a standard watchdog, using the watchdog timer driver core framework. This driver also implements a reboot handler for the reboot(2) system call. The watchdog driver shares the timer registers with the CX92755 timer driver (drivers/clocksource/timer-digicolor.c). The timer driver, however, uses only timers other than A, so both drivers should coexist. Signed-off-by: Baruch Siach Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/Kconfig | 10 ++ drivers/watchdog/Makefile | 1 + drivers/watchdog/digicolor_wdt.c | 205 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 216 insertions(+) commit b0abc8ff75e25901fe4afcd62d5e4315df4a8138 Author: Baruch Siach Date: Tue Mar 31 09:14:58 2015 +0300 watchdog: digicolor: document device tree binding Add a device tree binding documentation to the watchdog hardware block on the Conexant CX92755 SoC. The CX92755 is from the Digicolor SoCs series. Other SoCs in that series may share the same hardware block. Signed-off-by: Baruch Siach Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck .../devicetree/bindings/watchdog/digicolor-wdt.txt | 25 ++++++++++++++++++++++ 1 file changed, 25 insertions(+) commit feccebe9a9a28f0feeb69b7995a8008478094337 Author: Ben Dooks Date: Thu Mar 26 14:34:14 2015 +0000 watchdog: at91sam9: use endian agnostic IO Use endian agnostic IO functions for the watchdog driver for when it is enabled on ATSAMA5D36 devices running in big endian. Signed-off-by: Ben Dooks Acked-by: Boris Brezillon Acked-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/at91sam9_wdt.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 79cb097676cf4fd424f0ea4df22877104401c5f9 Author: Lee Jones Date: Tue May 12 13:58:13 2015 +0100 watchdog: st_wdt: Update IP layout information to include Clocksource Initial submission adding support for this IP only included Watchdog and the Real-Time Clock. Now the third (and final) device is enabled this trivial patch is required to update the comment in the Watchdog driver to encompass Clocksource. Signed-off-by: Lee Jones Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/st_lpc_wdt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f27925a6c18d51768a4910445b53f896f36ec587 Author: Lee Jones Date: Thu Apr 9 15:47:31 2015 +0100 watchdog: st_wdt: Add new driver for ST's LPC Watchdog Signed-off-by: David Paris Signed-off-by: Lee Jones Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/Kconfig | 12 ++ drivers/watchdog/Makefile | 1 + drivers/watchdog/st_lpc_wdt.c | 344 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 357 insertions(+) commit 6f48fdf3bb86a173655502f178f6972291c2c0c5 Author: Lee Jones Date: Thu Apr 9 15:47:30 2015 +0100 watchdog: bindings: Provide ST bindings for ST's LPC Watchdog device On current ST platforms the LPC controls a number of functions including Watchdog and Real Time Clock. This patch provides the bindings used to configure LPC in Watchdog mode. Signed-off-by: Lee Jones Signed-off-by: Wim Van Sebroeck .../devicetree/bindings/watchdog/st_lpc_wdt.txt | 38 ++++++++++++++++++++++ 1 file changed, 38 insertions(+) commit 97faf05aa63683d288423230b26bb57c781b2edd Author: Lee Jones Date: Thu Apr 9 15:47:27 2015 +0100 ARM: multi_v7_defconfig: Enable support for ST's LPC Watchdog Signed-off-by: Lee Jones Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck arch/arm/configs/multi_v7_defconfig | 1 + 1 file changed, 1 insertion(+) commit 08e525c02770792154e75fc029b756eb7e0d9abc Author: Lee Jones Date: Thu Apr 9 15:47:26 2015 +0100 mfd: dt-bindings: Provide human readable defines for LPC mode choosing ST's Low Power Controller can currently operate in two supported modes; Watchdog and Real Time Clock. These defines will aid engineers to easily identify the selected mode. Signed-off-by: Lee Jones Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck include/dt-bindings/mfd/st-lpc.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit d461003574ebc862c2dae70c9e1ab32b1bf2cda1 Merge: 3bcda76 78eaa10 Author: Rafael J. Wysocki Date: Mon Jun 22 15:15:36 2015 +0200 Merge branch 'pm-cpuidle' * pm-cpuidle: cpuidle: powernv/pseries: Auto-promotion of snooze to deeper idle state commit 78eaa10f027cf69f9bd409e64eaff902172b2327 Author: Shilpasri G Bhat Date: Thu Jun 18 16:53:11 2015 +0530 cpuidle: powernv/pseries: Auto-promotion of snooze to deeper idle state The idle cpus which stay in snooze for a long period can degrade the perfomance of the sibling cpus. If the cpu stays in snooze for more than target residency of the next available idle state, then exit from snooze. This gives a chance to the cpuidle governor to re-evaluate the last idle state of the cpu to promote it to deeper idle states. Signed-off-by: Shilpasri G Bhat Reviewed-by: Preeti U Murthy Signed-off-by: Rafael J. Wysocki drivers/cpuidle/cpuidle-powernv.c | 12 ++++++++++++ drivers/cpuidle/cpuidle-pseries.c | 11 +++++++++++ 2 files changed, 23 insertions(+) commit 77a3c6fd90c94f635edb00d4a65f485687538791 Author: Laurent Pinchart Date: Fri Jun 19 08:50:07 2015 -0300 [media] vb2: Don't WARN when v4l2_buffer.bytesused is 0 for multiplanar buffers Commit f61bf13b6a07 ("[media] vb2: add allow_zero_bytesused flag to the vb2_queue struct") added a WARN_ONCE to catch usage of a deprecated API using a zero value for v4l2_buffer.bytesused. However, the condition is checked incorrectly, as the v4L2_buffer bytesused field is supposed to be ignored for multiplanar buffers. This results in spurious warnings when using the multiplanar API. Fix it by checking v4l2_buffer.bytesused for uniplanar buffers and v4l2_plane.bytesused for multiplanar buffers. Fixes: f61bf13b6a07 ("[media] vb2: add allow_zero_bytesused flag to the vb2_queue struct") Signed-off-by: Laurent Pinchart Cc: stable@vger.kernel.org # for v4.0 Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/videobuf2-core.c | 33 ++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) commit f90fc5472882ee7e76e0f345b9642b92c8677582 Author: Anand Jain Date: Mon Jun 22 18:18:32 2015 +0800 Btrfs: Check if kobject is initialized before put Signed-off-by: Anand Jain Tested-by: David Sterba Signed-off-by: David Sterba fs/btrfs/sysfs.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 3bcda76d9d1c0c4e70d5e3b7a962e46de2e79b61 Merge: 1af858f ffa64ef Author: Rafael J. Wysocki Date: Mon Jun 22 14:40:28 2015 +0200 Merge branch 'pm-sleep' * pm-sleep: x86: Load __USER_DS into DS/ES after resume commit 4f01e65037187581971f8b1068d4e1b1300a6562 Author: Hyungwon Hwang Date: Fri Jun 12 21:59:10 2015 +0900 ARM: dts: rename the clock of MIPI DSI 'pll_clk' to 'sclk_mipi' The clock which was named as 'pll_clk' is actually not the clock source of PLL in MIPI DSI. This patch fixes this disagreement. Signed-off-by: Hyungwon Hwang Acked-by: Krzysztof Kozlowski Signed-off-by: Inki Dae arch/arm/boot/dts/exynos4.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ffa64eff956a25548cad0391dbc14c672827be7b Author: Ingo Molnar Date: Mon Jun 22 14:40:03 2015 +0200 x86: Load __USER_DS into DS/ES after resume Srinivas Pandruvada reported a problem with system resume from suspend-to-RAM on 32-bit x86 systems where the DS register of the CPU is set to __KERNEL_DS instead of __USER_DS on return to user space which cases a General Protection Fault to occur. The issue is that DS is set to __KERNEL_DS by the ACPI resume code path while the SYSEXIT path never reloads DS/ES. It assumes they are still __USER_DS set at the SYSENTER time (Brian Gerst), so if the return to user space happens to be through SYSEXIT, it will lead to the reported GPF. Fix the problem by setting the DS and ES registers to __USER_DS as expected by the SYSEXIT path. Link: https://bugzilla.kernel.org/show_bug.cgi?id=61781 Link: http://marc.info/?l=linux-pm&m=143406648920385&w=2 Acked-by: Pavel Machek Tested-by: Pavel Machek Acked-by: Ingo Molnar Signed-off-by: Rafael J. Wysocki arch/x86/kernel/acpi/wakeup_32.S | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 1af858fdd2aa4107ff4e1c9fc1b23929d16a7491 Merge: a8269d3 9f20d68 Author: Rafael J. Wysocki Date: Mon Jun 22 14:23:44 2015 +0200 Merge branch 'pm-opp' * pm-opp: PM / OPP: Add binding for 'opp-suspend' PM / OPP: Allow multiple OPP tables to be passed via DT PM / OPP: Add new bindings to address shortcomings of existing bindings commit 9f20d6815c6c537980b8a8fcb1a172c0b95bd99f Author: Viresh Kumar Date: Mon Jun 22 14:23:27 2015 +0200 PM / OPP: Add binding for 'opp-suspend' On few platforms, for power efficiency, we want the device to be configured for a specific OPP while we put the device in suspend state. Add an optional property in operating-points-v2 bindings for that. Suggested-by: Nishanth Menon Signed-off-by: Viresh Kumar Acked-by: Nishanth Menon Acked-by: Rob Herring Signed-off-by: Rafael J. Wysocki Documentation/devicetree/bindings/power/opp.txt | 7 +++++++ 1 file changed, 7 insertions(+) commit a9a80e7e3177000344c3993411aada4d1e019f7c Author: Viresh Kumar Date: Mon Jun 22 14:21:38 2015 +0200 PM / OPP: Allow multiple OPP tables to be passed via DT On some platforms (Like Qualcomm's SoCs), it is not decided until runtime on what OPPs to use. The OPP tables can be fixed at compile time, but which table to use is found out only after reading some efuses (sort of an prom) and knowing characteristics of the SoC. To support such platform we need to pass multiple OPP tables per device and hardware should be able to choose one and only one table out of those. Update operating-points-v2 bindings to support that. Reviewed-by: Stephen Boyd Acked-by: Rob Herring Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki Documentation/devicetree/bindings/power/opp.txt | 60 +++++++++++++++++++++++++ 1 file changed, 60 insertions(+) commit b901b518077ba87bc84c84de02fce186cf9e5856 Author: Viresh Kumar Date: Thu Jun 4 21:50:31 2015 +0530 PM / OPP: Add new bindings to address shortcomings of existing bindings Current OPP (Operating performance point) device tree bindings have been insufficient due to the inflexible nature of the original bindings. Over time, we have realized that Operating Performance Point definitions and usage is varied depending on the SoC and a "single size (just frequency, voltage) fits all" model which the original bindings attempted and failed. The proposed next generation of the bindings addresses by providing a expandable binding for OPPs and introduces the following common shortcomings seen with the original bindings: - Getting clock/voltage/current rails sharing information between CPUs. Shared by all cores vs independent clock per core vs shared clock per cluster. - Support for specifying current levels along with voltages. - Support for multiple regulators. - Support for turbo modes. - Other per OPP settings: transition latencies, disabled status, etc.? - Expandability of OPPs in future. This patch introduces new bindings "operating-points-v2" to get these problems solved. Refer to the bindings for more details. We now have multiple versions of OPP binding and only one of them should be used per device. Signed-off-by: Viresh Kumar Reviewed-by: Rob Herring Reviewed-by: Stephen Boyd Acked-by: Nishanth Menon Signed-off-by: Rafael J. Wysocki Documentation/devicetree/bindings/power/opp.txt | 381 +++++++++++++++++++++++- 1 file changed, 377 insertions(+), 4 deletions(-) commit f778dad38a54ca5207d024b5ebe0e6d71b8bad83 Merge: a9bd32a a9fad68 Author: Tomi Valkeinen Date: Mon Jun 22 14:56:01 2015 +0300 Merge omapdss scaling fixes commit cdb672795876d7bc1870aed9a2d7cb59f43d1d96 Author: Miklos Szeredi Date: Mon Jun 22 13:53:48 2015 +0200 ovl: lookup whiteouts outside iterate_dir() If jffs2 can deadlock on overlayfs readdir because it takes the same lock on ->iterate() as in ->lookup(). Fix by moving whiteout checking outside iterate_dir(). Optimized by collecting potential whiteouts (DT_CHR) in a temporary list and if non-empty iterating throug these and checking for a 0/0 chardev. Signed-off-by: Miklos Szeredi Fixes: 49c21e1cacd7 ("ovl: check whiteout while reading directory") Reported-by: Roman Yeryomin fs/overlayfs/readdir.c | 77 ++++++++++++++++++++++++++++++++------------------ 1 file changed, 49 insertions(+), 28 deletions(-) commit 7c03b5d45b8eebf0111125053d8fe887cc262ba6 Author: Miklos Szeredi Date: Mon Jun 22 13:53:48 2015 +0200 ovl: allow distributed fs as lower layer Allow filesystems with .d_revalidate as lower layer(s), but not as upper layer. For local filesystems the rule was that modifications on the layers directly while being part of the overlay results in undefined behavior. This can easily be extended to distributed filesystems: we assume the tree used as lower layer is static, which means ->d_revalidate() should always return "1". If that is not the case, return -ESTALE, don't try to work around the modification. Signed-off-by: Miklos Szeredi fs/overlayfs/super.c | 113 +++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 88 insertions(+), 25 deletions(-) commit a6f15d9a756571babbb2b2cd4fdd1b64a5de232b Author: Miklos Szeredi Date: Mon Jun 22 13:53:48 2015 +0200 ovl: don't traverse automount points NFS and other distributed filesystems may place automount points in the tree. Previoulsy overlayfs refused to mount such filesystems types (based on the existence of the .d_automount callback), even if the actual export didn't have any automount points. It cannot be determined in advance whether the filesystem has automount points or not. The solution is to allow fs with .d_automount but refuse to traverse any automount points encountered. Signed-off-by: Miklos Szeredi fs/overlayfs/super.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit c30f55a7b1336cdfeac74c7931ebff40a32e72b7 Author: Laurent Pinchart Date: Mon Jun 22 13:37:46 2015 +0300 drm/atomic: Don't set crtc_state->enable manually The enable field needs to be kept in sync with the mode_blob field. Call drm_atomic_set_mode_prop_for_crtc() instead of setting enable to false in order to dereference the mode blob correctly. v2: - Check the return value of drm_atomic_set_mode_prop_for_crtc() - Drop the num_connectors local variable Signed-off-by: Laurent Pinchart Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_atomic_helper.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit c7988afde761cdb571b4e9e8d2ee741dea4b5389 Merge: 57fa8a1 f76b240 Author: Takashi Iwai Date: Mon Jun 22 13:25:34 2015 +0200 Merge tag 'asoc-v4.2-3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-next ASoC: A couple more updates for v4.2 These were sitting on my laptop. commit 1abf25a25b86dcfe28d243a5af71bd1c9d6de1ef Author: Mika Westerberg Date: Tue Jun 9 12:17:07 2015 +0300 mfd: lpc_ich: Assign subdevice ids automatically Using -1 as platform device id means that the platform driver core will not assign any id to the device (the device name will not have id at all). This results problems on systems that have multiple PCHs (Platform Controller HUBs) because all of them also include their own copy of LPC device. All the subsequent device creations will fail because there already exists platform device with the same name. Fix this by passing PLATFORM_DEVID_AUTO as platform device id. This makes the platform device core to allocate new ids automatically. Signed-off-by: Mika Westerberg Signed-off-by: Lee Jones drivers/mfd/lpc_ich.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit ef76cc5bae0be6e382af0596fc9eb59d0546d50b Author: Fabio Estevam Date: Sat May 16 15:42:17 2015 -0300 mfd: si476x-i2c: Pass the IRQF_ONESHOT flag Since commit 1c6c69525b40eb76de8adf039409722015927dc3 ("genirq: Reject bogus threaded irq requests") threaded IRQs without a primary handler need to be requested with IRQF_ONESHOT, otherwise the request will fail. So pass the IRQF_ONESHOT flag in this case. The semantic patch that makes this change is available in scripts/coccinelle/misc/irqf_oneshot.cocci. Signed-off-by: Fabio Estevam Signed-off-by: Lee Jones drivers/mfd/si476x-i2c.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit e7d8ae3e7b01931ad2d75e4e2840313a3d05c85e Author: Fabio Estevam Date: Sat May 16 15:42:16 2015 -0300 mfd: ab8500-gpadc: Pass the IRQF_ONESHOT flag Since commit 1c6c69525b40eb76de8adf039409722015927dc3 ("genirq: Reject bogus threaded irq requests") threaded IRQs without a primary handler need to be requested with IRQF_ONESHOT, otherwise the request will fail. So pass the IRQF_ONESHOT flag in this case. The semantic patch that makes this change is available in scripts/coccinelle/misc/irqf_oneshot.cocci. Signed-off-by: Fabio Estevam Signed-off-by: Lee Jones drivers/mfd/ab8500-gpadc.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit abe5b47c3c158b682c8ed7becd59249d6d19938c Author: Fabio Estevam Date: Sat May 16 15:42:15 2015 -0300 mfd: ab8500-debugfs: Pass the IRQF_ONESHOT flag Since commit 1c6c69525b40eb76de8adf039409722015927dc3 ("genirq: Reject bogus threaded irq requests") threaded IRQs without a primary handler need to be requested with IRQF_ONESHOT, otherwise the request will fail. So pass the IRQF_ONESHOT flag in this case. The semantic patch that makes this change is available in scripts/coccinelle/misc/irqf_oneshot.cocci. Signed-off-by: Fabio Estevam Signed-off-by: Lee Jones drivers/mfd/ab8500-debugfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b3c8c82b48968fa816922114e259620921c3a29a Author: Fabio Estevam Date: Sat May 16 15:42:14 2015 -0300 mfd: wm8350-core: Pass the IRQF_ONESHOT flag Since commit 1c6c69525b40eb76de8adf039409722015927dc3 ("genirq: Reject bogus threaded irq requests") threaded IRQs without a primary handler need to be requested with IRQF_ONESHOT, otherwise the request will fail. So pass the IRQF_ONESHOT flag in this case. The semantic patch that makes this change is available in scripts/coccinelle/misc/irqf_oneshot.cocci. Signed-off-by: Fabio Estevam Signed-off-by: Lee Jones drivers/mfd/wm8350-core.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit cea2cc735ae125187a28cd30a000ad62749f948e Author: Fabio Estevam Date: Sat May 16 15:42:13 2015 -0300 mfd: htc-i2cpld: Pass the IRQF_ONESHOT flag Since commit 1c6c69525b40eb76de8adf039409722015927dc3 ("genirq: Reject bogus threaded irq requests") threaded IRQs without a primary handler need to be requested with IRQF_ONESHOT, otherwise the request will fail. So pass the IRQF_ONESHOT flag in this case. The semantic patch that makes this change is available in scripts/coccinelle/misc/irqf_oneshot.cocci. Signed-off-by: Fabio Estevam Signed-off-by: Lee Jones drivers/mfd/htc-i2cpld.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 1a52598c4b1d358af7ac562defd98c395842dbdd Author: Fabio Estevam Date: Sat May 16 15:42:12 2015 -0300 mfd: wm831x-auxadc: Pass the IRQF_ONESHOT flag Since commit 1c6c69525b40eb76de8adf039409722015927dc3 ("genirq: Reject bogus threaded irq requests") threaded IRQs without a primary handler need to be requested with IRQF_ONESHOT, otherwise the request will fail. So pass the IRQF_ONESHOT flag in this case. The semantic patch that makes this change is available in scripts/coccinelle/misc/irqf_oneshot.cocci. Signed-off-by: Fabio Estevam Signed-off-by: Lee Jones drivers/mfd/wm831x-auxadc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 0b182c287c5a219f7ae35d977de4de331215820e Author: Fabio Estevam Date: Sat May 16 15:42:11 2015 -0300 mfd: mc13xxx-core: Pass the IRQF_ONESHOT flag Since commit 1c6c69525b40eb76de8adf039409722015927dc3 ("genirq: Reject bogus threaded irq requests") threaded IRQs without a primary handler need to be requested with IRQF_ONESHOT, otherwise the request will fail. So pass the IRQF_ONESHOT flag in this case. The semantic patch that makes this change is available in scripts/coccinelle/misc/irqf_oneshot.cocci. Signed-off-by: Fabio Estevam Signed-off-by: Lee Jones drivers/mfd/mc13xxx-core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7d5b1ed89bbb3614830c96420050088f3e0fb886 Author: Fabio Estevam Date: Sat May 16 15:42:10 2015 -0300 mfd: twl4030-irq: Pass the IRQF_ONESHOT flag Since commit 1c6c69525b40eb76de8adf039409722015927dc3 ("genirq: Reject bogus threaded irq requests") threaded IRQs without a primary handler need to be requested with IRQF_ONESHOT, otherwise the request will fail. So pass the IRQF_ONESHOT flag in this case. The semantic patch that makes this change is available in scripts/coccinelle/misc/irqf_oneshot.cocci. Signed-off-by: Fabio Estevam Signed-off-by: Lee Jones drivers/mfd/twl4030-irq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cf55078b88c83bbf18e46dc4160d0e5b7e60799d Author: Hongzhou Yang Date: Wed May 27 02:10:35 2015 -0700 mfd: mt6397-core: Add GPIO sub-module support Signed-off-by: Hongzhou Yang Acked-by: Linus Walleij Signed-off-by: Lee Jones drivers/mfd/mt6397-core.c | 3 +++ 1 file changed, 3 insertions(+) commit 056c3e751e0b90c7e07eea06038214ff760ef71a Author: Charles Keepax Date: Mon May 25 10:28:34 2015 +0100 mfd: arizona: Add convience defines for micd_rate/micd_bias_starttime Signed-off-by: Charles Keepax Signed-off-by: Lee Jones include/dt-bindings/mfd/arizona.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit 557e86e5c9613b46f19b7aac834aa6aa7cd2cc28 Author: Steve Twiss Date: Tue May 19 11:32:45 2015 +0100 mfd: dt: Add bindings for DA9063 OnKey Add device tree bindings for the DA9063 OnKey driver. Signed-off-by: Steve Twiss Acked-by: Rob Herring Signed-off-by: Lee Jones Documentation/devicetree/bindings/mfd/da9063.txt | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit 9011e4a8a6fe57f76511609930ed00d305389089 Author: Steve Twiss Date: Tue May 19 11:32:45 2015 +0100 mfd: da9063: Add support for OnKey driver Add MFD support for the DA9063 OnKey driver The function da9063_clear_fault_log() is added to mitigate the case of a hardware power-cut after a long-long OnKey press. Although there is no software intervention in this case (by definition) such a shutdown would cause persistent information within the DA9063 FAULT_LOG that would be available during the next device restart. Clearance of this persistent register must be completed after such a hardware power-cut operation has happened so that the FAULT_LOG does not continue with previous values. The clearance function has been added here in the kernel driver because wiping the fault-log cannot be counted on outside the Linux kernel. Signed-off-by: Steve Twiss [Lee: Removed 'key_power' for Dmitry to take through the Input Tree] Signed-off-by: Lee Jones drivers/mfd/da9063-core.c | 54 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) commit e2ae0fbc738fa207cfb712657d339a1863c6bd3e Author: Richard Fitzgerald Date: Wed May 13 16:52:26 2015 +0100 mfd: arizona: Fix incorrect Makefile conditionals The use of ifneq against 'n' to conditionally compile codec-specific parts is wrong and was resulting in all the codec tables being built even for deselected codecs. Signed-off-by: Richard Fitzgerald Signed-off-by: Lee Jones drivers/mfd/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 7e2d67e94ab05f70d2a73d00283f46778386ca52 Author: Richard Fitzgerald Date: Wed May 13 16:52:25 2015 +0100 mfd: arizona: Add stub for wm5102_patch() For the WM5102 there is a dependency in the core code on wm5102_patch() which only exists when CONFIG_MFD_WM5102 is defined. To avoid having to sprinkle #ifdefs around the code it is given an alternative empty stub version when CONFIG_MFD_WM5102 is deselected Signed-off-by: Richard Fitzgerald Signed-off-by: Lee Jones include/linux/mfd/arizona/core.h | 8 ++++++++ 1 file changed, 8 insertions(+) commit ec40c606c7aebb8d61cb47af27e2f62c26e09e29 Author: Lorenzo Pieralisi Date: Fri May 1 10:41:10 2015 +0100 mfd: Check ACPI device companion before checking resources Current code in mfd-core calls into ACPI to check resources even on a system that booted with a DT (on kernels with both DT and ACPI support compiled in). This triggers ACPI exceptions since we may end up calling the ACPI interpreter when it has not been initialized: "ACPI Exception: AE_BAD_PARAMETER, Thread 2064154624 could not acquire Mutex [0x1] (20150410/utmutex-285)" This patch fixes the issues by adding a check for an ACPI companion device before carrying out ACPI resources checks to avoid calling the ACPI interpreter if the fwnode representing the device is an OF one. Cc: Sudeep Holla Signed-off-by: Lorenzo Pieralisi Signed-off-by: Lee Jones drivers/mfd/mfd-core.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit b64610dfbdf6a21e92073d50fef33704dbfe6028 Author: Richard Fitzgerald Date: Fri May 1 16:15:19 2015 +0100 Documentation: Add WM8998/WM1814 device tree bindings Signed-off-by: Richard Fitzgerald Signed-off-by: Lee Jones Documentation/devicetree/bindings/mfd/arizona.txt | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) commit fc027d138b79537e5353f3d3bad2bcaac787cd17 Author: Richard Fitzgerald Date: Fri May 1 16:15:12 2015 +0100 mfd: arizona: Split INx_MODE into two fields Later arizona silicon has the single/differential selector in a different register, and IN1_MODE only selects between analogue or digital. Prepare for this by splitting the INx_MODE definition into two fields. Signed-off-by: Richard Fitzgerald Signed-off-by: Lee Jones drivers/mfd/arizona-core.c | 8 ++++++-- include/linux/mfd/arizona/pdata.h | 5 ++++- include/linux/mfd/arizona/registers.h | 27 ++++++++++++++++++--------- 3 files changed, 28 insertions(+), 12 deletions(-) commit 121c075c1f845c2e75d61a4e7aac92d05d2def6e Author: Charles Keepax Date: Mon May 11 13:58:10 2015 +0100 mfd: wm5110: Add delay before releasing reset line On the wm5110 it is important the reset line is held for slightly longer to ensure the device starts up well. This patch adds a 5mS delay for this. Signed-off-by: Charles Keepax Signed-off-by: Lee Jones drivers/mfd/arizona-core.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit e6cb73410a6db70eab266f15b7e25053a45b842d Author: Charles Keepax Date: Mon May 11 13:58:09 2015 +0100 mfd: arizona: Add better support for system suspend Allow the chip to completely power off if we enter runtime suspend and there is no jack detection active. This is helpful for systems where system suspend might remove the supplies to the CODEC, without informing us. Note the powering off is done in runtime suspend rather than system suspend, because we need to hold reset until the first time DCVDD is powered anyway (which would be in runtime resume), and we might as well save the extra power. Signed-off-by: Charles Keepax Signed-off-by: Lee Jones drivers/mfd/arizona-core.c | 93 +++++++++++++++++++++++++++++++++------- include/linux/mfd/arizona/core.h | 1 + 2 files changed, 78 insertions(+), 16 deletions(-) commit 96129a0eaa3f5232f433812972c7bf38004ebf6b Author: Charles Keepax Date: Mon May 11 13:58:08 2015 +0100 mfd: wm5110: Set DCVDD voltage to 1.175V before entering sleep mode The low power sleep mode on wm5110 requires that the LDO1 regulator be set to 1.175V prior to entering sleep, then returned to 1.2V after exiting sleep mode. This patch apply these regulator settings. Signed-off-by: Charles Keepax Acked-by: Mark Brown Signed-off-by: Lee Jones drivers/mfd/arizona-core.c | 52 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) commit 882bc46813177640cfe01fb4f9b3e7af60201512 Author: Charles Keepax Date: Mon May 11 13:58:06 2015 +0100 mfd: wm5110: Add register patch required for low power sleep Some register settings must be applied before the first time low power sleep mode is entered on the wm5110 to ensure optimium performance. These settings require SYSCLK to be enabled whilst they are being applied. This patch applies the settings using the recently factored out boot time SYSCLK functionality. Signed-off-by: Charles Keepax Signed-off-by: Lee Jones drivers/mfd/arizona-core.c | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) commit 3850e3ee86c90e22767907fbd7505a717300c533 Author: Charles Keepax Date: Mon May 11 13:58:05 2015 +0100 mfd: arizona: Factor out SYSCLK enable from wm5102 hardware patch wm5102 applies a custom hardware boot sequence, for this the SYSCLK needs to be enabled. This patch factors out the code that enables SYSCLK for this sequence such that it can be used for other boot time operations that require SYSCLK. Signed-off-by: Charles Keepax Signed-off-by: Lee Jones drivers/mfd/arizona-core.c | 77 ++++++++++++++++++++++++++++++++++------------ 1 file changed, 57 insertions(+), 20 deletions(-) commit 0be068a077a06fa3382ab6d8d290078967bb8f64 Author: Charles Keepax Date: Mon May 11 13:58:04 2015 +0100 mfd: arizona: Fix formating/style issues in arizona_apply_hardware_patch In preparation for some refactoring fixup some minor style, formating and code clarity issues. Signed-off-by: Charles Keepax Signed-off-by: Lee Jones drivers/mfd/arizona-core.c | 37 +++++++++++++++++-------------------- 1 file changed, 17 insertions(+), 20 deletions(-) commit 1c1c6bba57f51331f64f32d0ce9a0f9883041205 Author: Charles Keepax Date: Mon May 11 13:58:03 2015 +0100 mfd: wm5102: Ensure we always boot the device fully The wm5102 uses a custom boot sequence and the standard boot sequence is disabled. However, the standard boot sequence must be run at least once after a cold boot (caused by either a hard reset or removal of AVDD). Unfortunately the register WRITE_SEQUENCER_CTRL_3 is not affected by the hardware reset. This means if the device has been previously booted but the AVDD supply has never been removed, arizona_dev_init will reset the chip but the boot sequence will not run, which can cause numerous problems. The solution is to manually clear this register and then boot the chip again, which is what this patch does. Signed-off-by: Charles Keepax Signed-off-by: Lee Jones drivers/mfd/arizona-core.c | 50 ++++++++++++++++++++++++++++++++++++---------- 1 file changed, 40 insertions(+), 10 deletions(-) commit 2229875dc00f38b95d04fecfc67858ba2221a563 Author: Charles Keepax Date: Mon May 11 13:58:02 2015 +0100 mfd: arizona: Factor out hard reset into helper functions This patch adds functions for enabling and disabling the physical reset line. This will be helpful in future refactoring. Signed-off-by: Charles Keepax Signed-off-by: Lee Jones drivers/mfd/arizona-core.c | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) commit 5f056bf04201dc533f5d10acf028435ede0a1442 Author: Charles Keepax Date: Mon May 11 13:58:01 2015 +0100 mfd: arizona: Use devres to manage reset GPIO This also handily fixes a leak of the GPIO in arizona_dev_exit. Signed-off-by: Charles Keepax Signed-off-by: Lee Jones drivers/mfd/arizona-core.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) commit 6c284c9a343a16d0a31d689558e1da174f37a0b0 Author: Lee Jones Date: Tue May 12 14:13:58 2015 +0100 MAINTAINERS: Add Arnd Bergmann as Syscon reviewer The System Configuration (syscon) driver is an important one, which effects many ARM-SoC based platforms. I'm adding Arnd as a primary reviewer as he is highly competent in this area and has a keen interest in ARM-SoC. Acked-by: Arnd Bergmann Signed-off-by: Lee Jones MAINTAINERS | 7 +++++++ 1 file changed, 7 insertions(+) commit b40f0632c9101eb93994ce4ba0d10164b48d6a27 Author: Krzysztof Kozlowski Date: Wed May 6 14:19:36 2015 +0900 MAINTAINERS: Extend Samsung MFD drivers entry and add Krzysztof Kozlowski Extend the entry for Samsung MFD drivers for PMIC devices (Power Management Integrated Circuit) with bindings documentation, clock (clk-s2mps11.c) and RTC drivers (rtc-s5m.c). These PMIC devices are used on many Exynos-based boards like Arndale Octa (S2MPS11), Gear 2 (S2MPS14). Add Krzysztof Kozlowski as a supporter for reviewing them. I am not the author of these drivers. However I have recently contributed to most of them and I have access to datasheets and hardware. Cc: Sangbeom Kim CC: Mike Turquette CC: Stephen Boyd CC: Alessandro Zummo CC: Alexandre Belloni CC: Liam Girdwood CC: Mark Brown Signed-off-by: Krzysztof Kozlowski Signed-off-by: Lee Jones MAINTAINERS | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 6fafecc12ddfd5d02be531de081e4ea9cb8db02f Author: Geert Uytterhoeven Date: Tue May 5 18:32:27 2015 +0200 mfd: 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 Signed-off-by: Lee Jones drivers/mfd/Kconfig | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 8be4efad81d814b607cbdad47176f426be83ba75 Author: Javier Martinez Canillas Date: Wed May 6 19:07:16 2015 +0200 mfd: max77686: Remove unused struct max77686_opmode_data The defined struct max77686_opmode_data isn't used neither by the max77686 mfd driver nor the drivers for its sub-devices. Signed-off-by: Javier Martinez Canillas Reviewed-by: Chanwoo Choi Reviewed-by: Krzysztof Kozlowski Signed-off-by: Lee Jones include/linux/mfd/max77686.h | 5 ----- 1 file changed, 5 deletions(-) commit 5c188d748216f67c928d67a42f14b5569b6404a5 Author: Tony Lindgren Date: Mon Apr 27 10:18:14 2015 -0700 mfd: twl4030-power: Fix pmic for boards that need AC charger disabled I noticed the PMIC configuration on 37xx-evm won't actually shut down the voltages during off-idle. Turns out 37xx-evm needs the AC charger state transitions disabled like we are doing for SDP and LDP in the legacy booting case. Let's fix this for device tree based booting by setting up the quirk flag based on the compatible flag. And let's also use the existing define for STARTON_CHG. Note that SDP and EVM do not have the PMIC clken wired to gate the the oscillator while LDP has. Signed-off-by: Tony Lindgren Signed-off-by: Lee Jones drivers/mfd/twl4030-power.c | 45 ++++++++++++++++++++++++++++++++++++++------- include/linux/i2c/twl.h | 1 + 2 files changed, 39 insertions(+), 7 deletions(-) commit 53960e2bff0107231d21f9ee7b31502b1daed344 Author: Fabio Estevam Date: Mon Apr 20 16:17:37 2015 -0300 mfd: documentation: dt: max77686: Fix typo Fix typo in 'Multifunction'. Signed-off-by: Fabio Estevam Signed-off-by: Lee Jones Documentation/devicetree/bindings/mfd/max77686.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b375e9f90ff8dc645c9d6a57f08d59f0db6aaab3 Author: Charles Keepax Date: Wed Apr 22 14:34:48 2015 +0100 mfd: arizona: Remove redundant register sync This soft reset used to be located after the register patch had been applied, but has since moved to before the patch is applied. At the new location there is no requirement to do a register sync as no register writes will have happened yet. Signed-off-by: Charles Keepax Signed-off-by: Lee Jones drivers/mfd/arizona-core.c | 8 -------- 1 file changed, 8 deletions(-) commit 891ee7aa19b0b0d54609e29636dbe0b0b348c458 Author: Jacek Anaszewski Date: Tue Apr 28 09:18:42 2015 +0200 mfd: documentation: dt: Add documentation for the mfd Maxim max77693 This patch adds device tree binding documentation for the flash cell of the Maxim max77693 multifunctional device. Signed-off-by: Jacek Anaszewski Signed-off-by: Andrzej Hajda Acked-by: Kyungmin Park Acked-by: Sakari Ailus Signed-off-by: Lee Jones Documentation/devicetree/bindings/mfd/max77693.txt | 67 ++++++++++++++++++++++ 1 file changed, 67 insertions(+) commit 7ce7b26f84cfcbcb04f526f56f685a56ccddf355 Author: Krzysztof Kozlowski Date: Mon Apr 27 21:54:13 2015 +0900 mfd: Constify regmap and irq configuration data Constify in various drivers configuration data which is not modified: - regmap_irq_chip, - individual regmap_irq's in array, - regmap_config, - irq_domain_ops, Signed-off-by: Krzysztof Kozlowski Signed-off-by: Lee Jones drivers/mfd/88pm860x-core.c | 2 +- drivers/mfd/ab8500-core.c | 2 +- drivers/mfd/arizona-irq.c | 2 +- drivers/mfd/da9052-irq.c | 4 ++-- drivers/mfd/da9055-core.c | 6 +++--- drivers/mfd/da9063-irq.c | 4 ++-- drivers/mfd/da9150-core.c | 4 ++-- drivers/mfd/db8500-prcmu.c | 2 +- drivers/mfd/intel_soc_pmic_core.h | 2 +- drivers/mfd/intel_soc_pmic_crc.c | 2 +- drivers/mfd/lp8788-irq.c | 2 +- drivers/mfd/max8925-core.c | 2 +- drivers/mfd/max8997-irq.c | 2 +- drivers/mfd/max8998-irq.c | 2 +- drivers/mfd/mt6397-core.c | 2 +- drivers/mfd/stmpe.c | 2 +- drivers/mfd/tc3589x.c | 2 +- drivers/mfd/tps6586x.c | 2 +- drivers/mfd/twl6030-irq.c | 2 +- drivers/mfd/wm831x-irq.c | 2 +- drivers/mfd/wm8994-irq.c | 6 +++--- include/linux/mfd/da9055/core.h | 2 +- 22 files changed, 29 insertions(+), 29 deletions(-) commit 79aa79342c70c47a6e55f4865e8154f155109946 Merge: db4112e 6d4fa89 cf649e0 Author: Lee Jones Date: Mon Jun 22 12:24:25 2015 +0100 Merge branches 'ib-mfd-watchdog-rtc-4.2', 'ib-mfd-regulator-4.2' and 'ib-mfd-i2c-input-chrome-4.2' into ibs-for-mfd-merged commit cf649e00769a401d317352c4fe405169ddf61e1f Author: Lee Jones Date: Mon Jun 15 21:39:39 2015 +0800 mfd: cros_ec: Staticise some newly introduced structures Signed-off-by: Lee Jones drivers/mfd/cros_ec.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 51d1deca9f03f8d2619d38916675a7fdc7f24730 Author: Hyungwon Hwang Date: Fri Jun 12 21:59:09 2015 +0900 drm/exynos: dsi: do not set TE GPIO direction by input On some board, TE GPIO should be configured properly thoughout pinctrl driver as an wakeup interrupt. So this gpio should be configurable in the board's DT, not being requested as a input pin. Signed-off-by: Hyungwon Hwang Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_dsi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit f5f3b9ba92f10b0487f33ba440a83d1306bd0c02 Author: Hyungwon Hwang Date: Fri Jun 12 21:59:08 2015 +0900 drm/exynos: dsi: add support for MIC driver as a bridge MIC must be initilized by MIPI DSI when it is being bound. Signed-off-by: Hyungwon Hwang Signed-off-by: Inki Dae .../devicetree/bindings/video/exynos_dsim.txt | 23 ++++++++++++++++++--- drivers/gpu/drm/exynos/exynos_drm_dsi.c | 24 ++++++++++++++++++++++ 2 files changed, 44 insertions(+), 3 deletions(-) commit e6f988a45857624c949b04b78b0843932d292106 Author: Hyungwon Hwang Date: Fri Jun 12 21:59:07 2015 +0900 drm/exynos: dsi: add support for Exynos5433 This patch adds support for Exynos5433 mipi dsi. Signed-off-by: Hyungwon Hwang Signed-off-by: Inki Dae .../devicetree/bindings/video/exynos_dsim.txt | 1 + drivers/gpu/drm/exynos/Kconfig | 2 +- drivers/gpu/drm/exynos/exynos_drm_dsi.c | 100 +++++++++++++++++---- 3 files changed, 87 insertions(+), 16 deletions(-) commit 0ff03fd164a4f2d348d08191fa16a4bcd7cadf1d Author: Hyungwon Hwang Date: Fri Jun 12 21:59:06 2015 +0900 drm/exynos: dsi: make use of array for clock access This patch make the driver to use an array for clock access. The number of clocks are different from the existing MIPI DSI driver and Exynos5433 MIPI DSI driver. So this patch is needed before adding support for Exynos5433 MIPI DSI driver. Signed-off-by: Hyungwon Hwang Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_dsi.c | 68 ++++++++++++++++----------------- 1 file changed, 33 insertions(+), 35 deletions(-) commit d668e8bf778715683506dab8a3a64885130616f9 Author: Hyungwon Hwang Date: Fri Jun 12 21:59:05 2015 +0900 drm/exynos: dsi: make use of driver data for static values Exynos MIPI DSI driver uses some static values such as address offsets, register setting values, and etc. This patch makes the driver get those values from the driver data. Signed-off-by: Hyungwon Hwang Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_dsi.c | 196 +++++++++++++++++++++++--------- 1 file changed, 145 insertions(+), 51 deletions(-) commit ba12ac2b207c7cbf8c7bd7a2986594d0e5e64f0b Author: Hyungwon Hwang Date: Fri Jun 12 21:59:04 2015 +0900 drm/exynos: dsi: add macros for register access This patch adds macros for register writing/reading. This is needed for adding support Exynos5433 MIPI DSI driver, not by using if statement, but by using driver data. Signed-off-by: Hyungwon Hwang Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_dsi.c | 98 +++++++++++++++++---------------- 1 file changed, 51 insertions(+), 47 deletions(-) commit 26269af95af83145a3bccca41344c66502fdded9 Author: Hyungwon Hwang Date: Fri Jun 12 21:59:03 2015 +0900 drm/exynos: dsi: rename pll_clk to sclk_clk This patch renames pll_clk to sclk_clk. The clock referenced by pll_clk is actually not the pll input clock for dsi. The pll input clock comes from the board's oscillator directly. But for the backward compatibility, the old clock name "pll_clk" is also OK. Signed-off-by: Hyungwon Hwang Signed-off-by: Inki Dae .../devicetree/bindings/video/exynos_dsim.txt | 7 +++-- drivers/gpu/drm/exynos/exynos_drm_dsi.c | 36 ++++++++++------------ 2 files changed, 20 insertions(+), 23 deletions(-) commit 77bbd8914a91fab25f567772db60e2d1372de8c6 Author: Hyungwon Hwang Date: Fri Jun 12 21:59:02 2015 +0900 drm/exynos: mic: add MIC driver MIC(Mobile image compressor) is newly added IP in Exynos5433. MIC resides between decon and mipi dsim, and compresses frame data by 50%. With dsi, not display port, to send frame data to the panel, the bandwidth is not enough. That is why this compressor is introduced. Signed-off-by: Hyungwon Hwang Signed-off-by: Inki Dae .../devicetree/bindings/video/exynos-mic.txt | 51 +++ drivers/gpu/drm/exynos/Kconfig | 6 + drivers/gpu/drm/exynos/Makefile | 1 + drivers/gpu/drm/exynos/exynos_drm_drv.c | 6 +- drivers/gpu/drm/exynos/exynos_drm_drv.h | 1 + drivers/gpu/drm/exynos/exynos_drm_mic.c | 490 +++++++++++++++++++++ 6 files changed, 552 insertions(+), 3 deletions(-) commit 8ccd0d0ca04147e91890c373677f1e741dda2631 Author: Hyungwon Hwang Date: Fri Jun 12 21:59:01 2015 +0900 of: add helper for getting endpoint node of specific identifiers When there are multiple ports or multiple endpoints in a port, they have to be distinguished by the value of reg property. It is common. The drivers can get the specific endpoint in the specific port via this function. Now the drivers have to implement this code in themselves or have to force the order of dt nodes to get the right node. Signed-off-by: Hyungwon Hwang Acked-by: Rob Herring Signed-off-by: Inki Dae drivers/of/base.c | 33 +++++++++++++++++++++++++++++++++ include/linux/of_graph.h | 8 ++++++++ 2 files changed, 41 insertions(+) commit c8466a9166b00ecb0c6f768baf70636fe15f63ef Author: Joonyoung Shim Date: Fri Jun 12 21:59:00 2015 +0900 drm/exynos: add Exynos5433 decon driver DECON(Display and Enhancement Controller) is new IP replacing FIMD in Exynos5433. This patch adds Exynos5433 decon driver. Signed-off-by: Joonyoung Shim Signed-off-by: Hyungwon Hwang Signed-off-by: Inki Dae .../devicetree/bindings/video/exynos5433-decon.txt | 65 ++ drivers/gpu/drm/exynos/Kconfig | 6 + drivers/gpu/drm/exynos/Makefile | 1 + drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 660 +++++++++++++++++++++ drivers/gpu/drm/exynos/exynos_drm_drv.h | 1 + include/video/exynos5433_decon.h | 165 ++++++ 6 files changed, 898 insertions(+) commit 733ada000f2c9618ccbac7b9ba146113f0a6675b Merge: 0460a36 130daa3 ab101e3 419d06a c751ad0 Author: Mark Brown Date: Mon Jun 22 11:19:56 2015 +0100 Merge remote-tracking branches 'regulator/topic/of', 'regulator/topic/pwm', 'regulator/topic/qcom' and 'regulator/topic/soft-start' into regulator-next commit 0460a368ea4caa256a425d1447581ed03f6ae3bd Merge: c16bcf0 840499a cab344d 39d2330 6986f44 366604e Author: Mark Brown Date: Mon Jun 22 11:19:55 2015 +0100 Merge remote-tracking branches 'regulator/topic/lp8755', 'regulator/topic/max14577', 'regulator/topic/max77693', 'regulator/topic/max77843' and 'regulator/topic/max8973' into regulator-next commit c16bcf03c8c29aaf68e281bfd2b8634f313a58d7 Merge: 4055da9 d87aef9 126187d fda87a4 9eac5fd 36e4f83 Author: Mark Brown Date: Mon Jun 22 11:19:52 2015 +0100 Merge remote-tracking branches 'regulator/topic/da9063', 'regulator/topic/doc', 'regulator/topic/fan53555', 'regulator/topic/gpio' and 'regulator/topic/ilim' into regulator-next commit 4055da975de92e9b60e869fa8fa209159268ec9a Merge: 4ccb09f 0cfeddb 9a6c2fe 7cf225b 050d0f2 Author: Mark Brown Date: Mon Jun 22 11:19:51 2015 +0100 Merge remote-tracking branches 'regulator/topic/88pm8607', 'regulator/topic/arizona', 'regulator/topic/cleanup' and 'regulator/topic/da9062' into regulator-next commit 4ccb09f697db0a4872b1f57e6dbb08f7a5552168 Merge: 87028bd 5751a99 Author: Mark Brown Date: Mon Jun 22 11:19:51 2015 +0100 Merge remote-tracking branch 'regulator/topic/core' into regulator-next commit 87028bd117a63a608ab690e1a82ffb7223127fe6 Merge: 24ba1bb 43343f8 c53403a 2945473 Author: Mark Brown Date: Mon Jun 22 11:19:49 2015 +0100 Merge remote-tracking branches 'regulator/fix/doc', 'regulator/fix/max77686' and 'regulator/fix/wm831x' into regulator-linus commit 24ba1bb3ef1970169388d337203030947a928a15 Merge: 0f57d86 a7068e3 Author: Mark Brown Date: Mon Jun 22 11:19:48 2015 +0100 Merge remote-tracking branch 'regulator/fix/core' into regulator-linus commit f76b240206156f1d57869cc60264a128d6b6ed2f Merge: 6791142 329d0c0 Author: Mark Brown Date: Mon Jun 22 11:19:46 2015 +0100 Merge remote-tracking branch 'asoc/topic/rcar' into asoc-next commit 6791142f41dc3a92a589f66c0af2db7e5fd572a1 Merge: 25305dc 336d044 Author: Mark Brown Date: Mon Jun 22 11:19:45 2015 +0100 Merge remote-tracking branch 'asoc/topic/arizona' into asoc-next commit 25305dcf5de52fe48437c46dd4d15d1e87b9fbee Merge: 89fc594 c99d49a8 Author: Mark Brown Date: Mon Jun 22 11:19:39 2015 +0100 Merge tag 'asoc-v4.2-2' into asoc-next ASoC: Further updates for v4.2 There's a bunch of additional updates and fixes that came in since my orignal pull request here, including DT support for rt5645 and fairly large serieses of cleanups and improvements to tas2552 and rcar. # gpg: Signature made Mon 22 Jun 2015 10:24:48 BST using RSA key ID 5D5487D0 # gpg: Oops: keyid_from_fingerprint: no pubkey # gpg: Good signature from "Mark Brown " # gpg: aka "Mark Brown " # gpg: aka "Mark Brown " # gpg: aka "Mark Brown " # gpg: aka "Mark Brown " # gpg: aka "Mark Brown " commit 89fc594ba54f0fbcc021da0c2d6916f26679bb17 Merge: f4cb3b7 11e68886 Author: Mark Brown Date: Mon Jun 22 11:19:31 2015 +0100 Merge tag 'asoc-v4.2' into asoc-next ASoC: Updates for v4.2 The big thing this release has been Liam's addition of topology support to the core. We've also seen quite a bit of driver work and the continuation of Lars' refactoring for component support. - Support for loading ASoC topology maps from firmware, intended to be used to allow self-describing DSP firmware images to be built which can map controls added by the DSP to userspace without the kernel needing to know about individual DSP firmwares. - Lots of refactoring to avoid direct access to snd_soc_codec where it's not needed supporting future refactoring. - Big refactoring and cleanup serieses for the Wolfson ADSP and TI TAS2552 drivers. - Support for TI TAS571x power amplifiers. - Support for Qualcomm APQ8016 and ZTE ZX296702 SoCs. - Support for x86 systems with RT5650 and Qualcomm Storm. # gpg: Signature made Mon 08 Jun 2015 18:48:37 BST using RSA key ID 5D5487D0 # gpg: Oops: keyid_from_fingerprint: no pubkey # gpg: Good signature from "Mark Brown " # gpg: aka "Mark Brown " # gpg: aka "Mark Brown " # gpg: aka "Mark Brown " # gpg: aka "Mark Brown " # gpg: aka "Mark Brown " commit f4cb3b70fe60d190daed18d6faa4e4cee4a8f9eb Merge: 6917aee 14ba3ec ebb6ad7 12c3500 a077e81 Author: Mark Brown Date: Mon Jun 22 11:19:29 2015 +0100 Merge remote-tracking branches 'asoc/fix/wm8737', 'asoc/fix/wm8903', 'asoc/fix/wm8955' and 'asoc/fix/wm8960' into asoc-linus commit 6917aeedabe8e984e72a0bf78d361d2ee656cbe6 Merge: 8e8f0ed 15575ed e712bfc ffb3722 0b51601 7667f71 72f0095 Author: Mark Brown Date: Mon Jun 22 11:19:27 2015 +0100 Merge remote-tracking branches 'asoc/fix/arizona', 'asoc/fix/fmtbit', 'asoc/fix/intel', 'asoc/fix/max98925', 'asoc/fix/rcar' and 'asoc/fix/ux500' into asoc-linus commit 8e8f0eda171538286dd3af4c0bdd7da1ed634482 Merge: 0f57d86 7ea3470 Author: Mark Brown Date: Mon Jun 22 11:19:27 2015 +0100 Merge remote-tracking branch 'asoc/fix/rt5645' into asoc-linus commit 9a09a69a87f640c5fe1a39b5cde3280273d535ba Author: Hyungwon Hwang Date: Fri Jun 12 21:58:59 2015 +0900 drm/exynos: fix the input prompt of Exynos7 DECON This patch is a preparation patch for adding support for Exynos5433 DECON. Exynos7 DECON have to be distinguished from Exynos5433 DECON. Signed-off-by: Hyungwon Hwang Signed-off-by: Inki Dae drivers/gpu/drm/exynos/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fc2e013f78c42fdafcb48f4922c2ae6d2c8e7d09 Author: Hyungwon Hwang Date: Mon Jun 22 19:05:04 2015 +0900 drm/exynos: add drm_iommu_attach_device_if_possible() Every CRTC drivers in Exynos DRM implements the code which checks whether IOMMU is supported or not, and if supported enable it. Making new helper for it generalize each CRTC drivers. Signed-off-by: Hyungwon Hwang Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos7_drm_decon.c | 25 +++++++--------------- drivers/gpu/drm/exynos/exynos_drm_drv.h | 1 + drivers/gpu/drm/exynos/exynos_drm_fimd.c | 34 +++++++----------------------- drivers/gpu/drm/exynos/exynos_drm_iommu.c | 14 ++++++++++++ drivers/gpu/drm/exynos/exynos_drm_iommu.h | 11 ++++++++++ drivers/gpu/drm/exynos/exynos_mixer.c | 8 ++++--- 6 files changed, 47 insertions(+), 46 deletions(-) commit 3f46d807f861fb7304c9890fb091efb80161f2c7 Author: Hyungwon Hwang Date: Fri Jun 12 21:58:57 2015 +0900 drm/exynos: Add the dependency for DRM_EXYNOS to DPI/DSI/DP Without this dependency, Kbuild is confused and the configs below them are not placed under Exynos DRM. This patch fixes it, so the configs below them become to be placed under Exynos DRM. Signed-off-by: Hyungwon Hwang Signed-off-by: Inki Dae drivers/gpu/drm/exynos/Kconfig | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit f4137df22a0d78d05e377e1d1519160ddfa3624d Author: Hyungwon Hwang Date: Fri Jun 12 21:58:56 2015 +0900 drm/exynos: remove the dependency of DP driver for ARCH_EXYNOS This dependency is a historical thing. It is added when this DP driver is under media subsystem. Now because it is under Exynos DRM, this dependency is not needed anymore. Signed-off-by: Hyungwon Hwang Signed-off-by: Inki Dae drivers/gpu/drm/exynos/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 57fa8a1e22c5833fb2cae96af68fc39ec21cb017 Merge: f267f9d c99d49a8 Author: Takashi Iwai Date: Mon Jun 22 11:32:41 2015 +0200 Merge tag 'asoc-v4.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-next ASoC: Further updates for v4.2 There's a bunch of additional updates and fixes that came in since my orignal pull request here, including DT support for rt5645 and fairly large serieses of cleanups and improvements to tas2552 and rcar. commit c99d49a8f81fb35e67b0ffa45f320a75e0b5639d Merge: e12be67 fcd9d31 Author: Mark Brown Date: Mon Jun 22 10:24:37 2015 +0100 Merge remote-tracking branch 'asoc/topic/wm8995' into asoc-next commit e12be671ad4dcc4be7ef9511a3759fb8f3b5857f Merge: e39f6bc ef5294f e369bd0 Author: Mark Brown Date: Mon Jun 22 10:24:36 2015 +0100 Merge remote-tracking branches 'asoc/topic/wm8523' and 'asoc/topic/wm8741' into asoc-next commit e39f6bc7de3d7c60ecdb43e45814470a8f600679 Merge: 6afff9e 8604bc2 Author: Mark Brown Date: Mon Jun 22 10:24:35 2015 +0100 Merge remote-tracking branch 'asoc/topic/tas2552' into asoc-next commit 6afff9e0607933afb948d9e60c684b669fe4928c Merge: 71d8c2d 85a4bfd Author: Mark Brown Date: Mon Jun 22 10:24:35 2015 +0100 Merge remote-tracking branch 'asoc/topic/simple' into asoc-next commit 71d8c2d78351a3c2fe6b432f1d5efd78327c97d8 Merge: 861fe71 bdb052e 8a4e379 bc08f96 b895dc2 Author: Mark Brown Date: Mon Jun 22 10:24:33 2015 +0100 Merge remote-tracking branches 'asoc/topic/qcom', 'asoc/topic/rcar', 'asoc/topic/rt286' and 'asoc/topic/rt5640' into asoc-next commit 861fe717256e7fe2d091d4676a611e6ea2496b15 Merge: dacdd36 662e8d9 b43fccf 6876c7c Author: Mark Brown Date: Mon Jun 22 10:24:31 2015 +0100 Merge remote-tracking branches 'asoc/topic/mediatek', 'asoc/topic/ml26124' and 'asoc/topic/omap' into asoc-next commit dacdd369113cb7ba91b8e70b09456ca6cdcc2184 Merge: 1cdf4f6 e85dae7 8610d09 Author: Mark Brown Date: Mon Jun 22 10:24:30 2015 +0100 Merge remote-tracking branches 'asoc/topic/intel' and 'asoc/topic/max98090' into asoc-next commit 1cdf4f6113d2fbe98bb528f6b51a682f24d3aac1 Merge: 2924c96 474ff0a Author: Mark Brown Date: Mon Jun 22 10:24:30 2015 +0100 Merge remote-tracking branch 'asoc/topic/fsl' into asoc-next commit 2924c96276b74c876589eaabd96ddddac700cf85 Merge: 95baa28 9fbd58c Author: Mark Brown Date: Mon Jun 22 10:24:30 2015 +0100 Merge remote-tracking branch 'asoc/topic/davinci' into asoc-next commit 95baa281a384b5312ef5884b408e7cc4187b00e6 Merge: f79a9db f9f55e3 061981f Author: Mark Brown Date: Mon Jun 22 10:24:28 2015 +0100 Merge remote-tracking branches 'asoc/topic/adsp' and 'asoc/topic/atmel' into asoc-next commit f79a9db83c6115963d8ece0cebe840db0640f7cf Merge: 5445d62 4e0ce6a Author: Mark Brown Date: Mon Jun 22 10:24:28 2015 +0100 Merge remote-tracking branch 'asoc/topic/rt5670' into asoc-next commit 5445d62652f68efe97e7ceaa8ceb6b6b302035bf Merge: 208a128 851b81e Author: Mark Brown Date: Mon Jun 22 10:24:27 2015 +0100 Merge remote-tracking branch 'asoc/topic/rt5645' into asoc-next commit 208a128f6b19eedd1819cb1b19f29dc99ca1d27e Merge: d21504d 11e68886 Author: Mark Brown Date: Mon Jun 22 10:24:19 2015 +0100 Merge tag 'asoc-v4.2' into asoc-next ASoC: Updates for v4.2 The big thing this release has been Liam's addition of topology support to the core. We've also seen quite a bit of driver work and the continuation of Lars' refactoring for component support. - Support for loading ASoC topology maps from firmware, intended to be used to allow self-describing DSP firmware images to be built which can map controls added by the DSP to userspace without the kernel needing to know about individual DSP firmwares. - Lots of refactoring to avoid direct access to snd_soc_codec where it's not needed supporting future refactoring. - Big refactoring and cleanup serieses for the Wolfson ADSP and TI TAS2552 drivers. - Support for TI TAS571x power amplifiers. - Support for Qualcomm APQ8016 and ZTE ZX296702 SoCs. - Support for x86 systems with RT5650 and Qualcomm Storm. # gpg: Signature made Mon 08 Jun 2015 18:48:37 BST using RSA key ID 5D5487D0 # gpg: Oops: keyid_from_fingerprint: no pubkey # gpg: Good signature from "Mark Brown " # gpg: aka "Mark Brown " # gpg: aka "Mark Brown " # gpg: aka "Mark Brown " # gpg: aka "Mark Brown " # gpg: aka "Mark Brown " commit d21504d4c993838b31d970d392b1b78eb33cfd61 Merge: 2cc5df6 14ba3ec ebb6ad7 12c3500 a077e81 Author: Mark Brown Date: Mon Jun 22 10:24:17 2015 +0100 Merge remote-tracking branches 'asoc/fix/wm8737', 'asoc/fix/wm8903', 'asoc/fix/wm8955' and 'asoc/fix/wm8960' into asoc-linus commit 2cc5df6daeada938d1f90210b038f60c881a5102 Merge: 84827ec 15575ed e712bfc ffb3722 0b51601 7667f71 72f0095 Author: Mark Brown Date: Mon Jun 22 10:24:15 2015 +0100 Merge remote-tracking branches 'asoc/fix/arizona', 'asoc/fix/fmtbit', 'asoc/fix/intel', 'asoc/fix/max98925', 'asoc/fix/rcar' and 'asoc/fix/ux500' into asoc-linus commit 84827ec6eebd30f5de33c3a751b24c300dc54fed Merge: 0f57d86 7ea3470 Author: Mark Brown Date: Mon Jun 22 10:24:15 2015 +0100 Merge remote-tracking branch 'asoc/fix/rt5645' into asoc-linus commit 9044a81d1be632251b7ee97ce9a0bf2a97989be6 Author: Ander Conselvan de Oliveira Date: Fri May 29 14:28:09 2015 +0300 drm/i915: Silence compiler warning Silence the following -Wmaybe-uninitialized warnings and make the code more clear. drivers/gpu/drm/i915/intel_display.c: In function ‘__intel_set_mode’: drivers/gpu/drm/i915/intel_display.c:11844:14: warning: ‘crtc_state’ may be used uninitialized in this function [-Wmaybe-uninitialized] return state->mode_changed || state->active_changed; ^ drivers/gpu/drm/i915/intel_display.c:11854:25: note: ‘crtc_state’ was declared here struct drm_crtc_state *crtc_state; ^ drivers/gpu/drm/i915/intel_display.c:11868:6: warning: ‘crtc’ may be used uninitialized in this function [-Wmaybe-uninitialized] if (crtc != intel_encoder->base.crtc) ^ drivers/gpu/drm/i915/intel_display.c:11853:19: note: ‘crtc’ was declared here struct drm_crtc *crtc; Reported-by: Chris Wilson Suggested-by: Chris Wilson Signed-off-by: Ander Conselvan de Oliveira Signed-off-by: Daniel Vetter Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 42 ++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 21 deletions(-) commit eaf0ecc33f82b9c46528d1646575dd8caf586a3d Author: Vineet Gupta Date: Mon Mar 9 14:03:10 2015 +0530 ARCv2: SMP: intc: IDU 2nd level intc for dynamic IRQ distribution Cc: Jason Cooper Cc: Thomas Gleixner Signed-off-by: Vineet Gupta .../devicetree/bindings/arc/archs-idu-intc.txt | 46 ++++++ arch/arc/kernel/mcip.c | 183 ++++++++++++++++++++- 2 files changed, 228 insertions(+), 1 deletion(-) commit 72d72880612705143ad32cf4ede0d6ae27e8b975 Author: Vineet Gupta Date: Wed Dec 24 18:41:55 2014 +0530 ARCv2: SMP: clocksource: Enable Global Real Time counter Cc: Daniel Lezcano Cc: Thomas Gleixner Signed-off-by: Vineet Gupta arch/arc/Kconfig | 5 +++++ arch/arc/include/asm/mcip.h | 3 +++ arch/arc/kernel/mcip.c | 3 +++ arch/arc/kernel/time.c | 45 +++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 56 insertions(+) commit aa6083ed50957f699596999affbb6eb9d7a8b72e Author: Vineet Gupta Date: Fri Nov 7 10:45:28 2014 +0530 ARCv2: SMP: ARConnect debug/robustness - Handle possible interrupt coalescing from MCIP - chk if prev IPI ack before sending new Signed-off-by: Vineet Gupta arch/arc/Kconfig | 15 ++++++++++++--- arch/arc/kernel/mcip.c | 48 ++++++++++++++++++++++++++++++++++++++++++++---- arch/arc/kernel/smp.c | 20 ++++++++++++++++---- 3 files changed, 72 insertions(+), 11 deletions(-) commit 82fea5a1bbbe8c3b56d5f3efbf8880c7b25b1758 Author: Vineet Gupta Date: Wed Sep 10 19:05:38 2014 +0530 ARCv2: SMP: Support ARConnect (MCIP) for Inter-Core-Interrupts et al Cc: Jason Cooper Cc: Thomas Gleixner Signed-off-by: Vineet Gupta arch/arc/Kconfig | 21 +++++--- arch/arc/include/asm/irq.h | 1 + arch/arc/include/asm/mcip.h | 91 +++++++++++++++++++++++++++++++++ arch/arc/kernel/Makefile | 1 + arch/arc/kernel/intc-arcv2.c | 2 +- arch/arc/kernel/mcip.c | 117 +++++++++++++++++++++++++++++++++++++++++++ arch/arc/plat-sim/platform.c | 5 ++ 7 files changed, 230 insertions(+), 8 deletions(-) commit 173eaafaed284fc95209902f68f011d01d1eda02 Author: Vineet Gupta Date: Thu Jun 4 17:37:23 2015 +0530 ARC: make plat_smp_ops weak to allow over-rides This allows platforms to provide their own cpu wakeup routines as well as IPI send / clear backends, while allowing a SMP kernel w/o any such backend to build/boot Signed-off-by: Vineet Gupta arch/arc/kernel/smp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit aa93e8ef98471277cfedacd68604bb28b5a35aa7 Author: Vineet Gupta Date: Thu Nov 7 14:57:16 2013 +0530 ARCv2: clocksource: Introduce 64bit local RTC counter Cc: Daniel Lezcano Cc: Thomas Gleixner Signed-off-by: Vineet Gupta arch/arc/Kconfig | 5 +++++ arch/arc/kernel/setup.c | 9 +++++++-- arch/arc/kernel/time.c | 50 +++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 62 insertions(+), 2 deletions(-) commit b3210d141f5ec32d3b29d0cf4f33d922a739602f Author: Vineet Gupta Date: Fri Nov 22 13:05:58 2013 +0530 ARCv2: extable: Enable sorting at build time Signed-off-by: Vineet Gupta scripts/sortextable.c | 5 +++++ 1 file changed, 5 insertions(+) commit 8922bc3058abbe5deaf887147e26531750ce7513 Author: Vineet Gupta Date: Mon Oct 7 18:10:08 2013 +0530 ARCv2: Adhere to Zero Delay loop restriction Branch insn can't be scheduled as last insn of Zero Overhead loop Signed-off-by: Vineet Gupta arch/arc/include/asm/delay.h | 9 ++++----- arch/arc/include/asm/uaccess.h | 17 ++++++++--------- arch/arc/lib/memcmp.S | 30 +++++++++++++++++++++++++++++- 3 files changed, 41 insertions(+), 15 deletions(-) commit 1f7e3dc0baaa41217dc06d3370e1efd1aecbc1f0 Author: Claudiu Zissulescu Date: Fri Nov 21 13:39:25 2014 +0530 ARCv2: optimised string/mem lib routines Signed-off-by: Vineet Gupta arch/arc/lib/Makefile | 6 +- arch/arc/lib/memcpy-archs.S | 236 ++++++++++++++++++++++++++++++++++++++++++++ arch/arc/lib/memset-archs.S | 93 +++++++++++++++++ arch/arc/lib/strcmp-archs.S | 78 +++++++++++++++ 4 files changed, 411 insertions(+), 2 deletions(-) commit bcc4d65abec2adb74157b34519e80331eb4427eb Author: Vineet Gupta Date: Thu Jun 4 14:39:15 2015 +0530 ARCv2: MMUv4: support aliasing icache config This is also default for AXS103 release Signed-off-by: Vineet Gupta arch/arc/include/asm/cache.h | 4 +--- arch/arc/mm/cache.c | 14 +++++++++++++- 2 files changed, 14 insertions(+), 4 deletions(-) commit d1f317d8254413447bcd6b6adbde24a985d256c2 Author: Vineet Gupta Date: Mon Apr 6 17:23:57 2015 +0530 ARCv2: MMUv4: cache programming model changes Caveats about cache flush on ARCv2 based cores - dcache is PIPT so paddr is sufficient for cache maintenance ops (no need to setup PTAG reg - icache is still VIPT but only aliasing configs need PTAG setup So basically this is departure from MMU-v3 which always need vaddr in line ops registers (DC_IVDL, DC_FLDL, IC_IVIL) but paddr in DC_PTAG, IC_PTAG respectively. Signed-off-by: Vineet Gupta arch/arc/Kconfig | 2 +- arch/arc/include/asm/arcregs.h | 5 +- arch/arc/include/asm/cache.h | 3 ++ arch/arc/mm/cache.c | 112 +++++++++++++++++++++++++++++++++++------ 4 files changed, 104 insertions(+), 18 deletions(-) commit d7a512bfe0be3790bae8465b4cb6c1bbca03c616 Author: Vineet Gupta Date: Mon Apr 6 17:22:39 2015 +0530 ARCv2: MMUv4: TLB programming Model changes Signed-off-by: Vineet Gupta arch/arc/Kconfig | 5 ++++ arch/arc/include/asm/arcregs.h | 2 +- arch/arc/include/asm/mmu.h | 24 ++++++++++++++++++- arch/arc/include/asm/pgtable.h | 10 ++++++++ arch/arc/mm/tlb.c | 54 +++++++++++++++++++++++++++++++++++++++--- arch/arc/mm/tlbex.S | 24 +++++++++++++++++++ 6 files changed, 114 insertions(+), 5 deletions(-) commit 4de0e52867d831057676340271d21cfb920eac1c Author: Vineet Gupta Date: Sat Nov 15 17:00:08 2014 +0530 ARCv2: STAR 9000814690: Really Re-enable interrupts to avoid deadlocks The issue was, on HS when interrupt is taken, IRQ_ACT is set and that is NOT cleared unless we do RTIE (or manually clear it). Linux interrupt handling has top and bottom halves. Latter lead to softirqs (which can reschedule) AND expect interrupts to be REALLY re-enabled which was NOT happening for us since we only SETI, dont clear IRQ_ACT So we can have a state when both cores have taken interrupt (IRQ_ACT set), get rescheduled, both send IPI and wait in CSD lock which will never be cleared as cores can't take the pending IPI IRQ due to existing IRQ_ACT set. So local_irq_enable() now drops the IRQ_ACT.act bit to re-enable IRQs. Signed-off-by: Vineet Gupta arch/arc/include/asm/irqflags-arcv2.h | 5 +++++ 1 file changed, 5 insertions(+) commit 0d7b8855a05c099a5c65a8d49a1e604198021f56 Author: Vineet Gupta Date: Tue Oct 7 14:12:13 2014 +0530 ARCv2: STAR 9000808988: signals involving Delay Slot Reported by Anton as LTP:munmap01 failing with Illegal Instruction Exception. --------------------->8-------------------------------------- mmap2(NULL, 24576, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0) = 0x200d2000 munmap(0x200d2000, 24576) = 0 --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x200d2000} --- potentially unexpected fatal signal 4. Path: /munmap01 CPU: 0 PID: 61 Comm: munmap01 Not tainted 3.13.0-g5d5c46d9a556 #8 task: 9f1a8000 ti: 9f154000 task.ti: 9f154000 [ECR ]: 0x00020100 => Illegal Insn [EFA ]: 0x0001354c [BLINK ]: 0x200515d4 [ERET ]: 0x1354c @off 0x1354c in [/munmap01] VMA: 0x00010000 to 0x00018000 [STAT32]: 0x800802c0 ... --------------------->8-------------------------------------- The issue was 1. munmap01 accessed unmapped memory (on purpose) with signal handler installed for SIGSEGV 2. The faulting instruction happened to be in Delay Slot 00011864
: 11908: bl.d 13284 1190c: stb r16,[r2] 3. kernel sets up the reg file for signal handler and correctly clears the DE bit in pt_regs->status32 placeholder 4. However RESTORE_CALLEE_SAVED_USER macro is not adjusted for ARCv2, and it over-writes the above with orig/stale value of status32 5. After RTIE, userspace signal handler executes a non branch instruction with DE bit set, triggering Illegal Instruction Exception. Reported-by: Anton Kolesov Signed-off-by: Vineet Gupta arch/arc/include/asm/entry.h | 17 ++++++++++------- arch/arc/kernel/asm-offsets.c | 2 ++ 2 files changed, 12 insertions(+), 7 deletions(-) commit 4255b07f2c9c43540149ed823faf5ac8476cccee Author: Vineet Gupta Date: Mon Sep 22 16:51:47 2014 +0530 ARCv2: STAR 9000793984: Handle return from intr to Delay Slot Signed-off-by: Vineet Gupta arch/arc/kernel/asm-offsets.c | 1 + arch/arc/kernel/entry-arcv2.S | 50 +++++++++++++++++++++++++++++++++++++++++++ arch/arc/kernel/setup.c | 2 ++ 3 files changed, 53 insertions(+) commit 1f6ccfff6314672743ad7252160654709e997a2a Author: Vineet Gupta Date: Mon May 13 18:30:41 2013 +0530 ARCv2: Support for ARCv2 ISA and HS38x cores The notable features are: - SMP configurations of upto 4 cores with coherency - Optional L2 Cache and IO-Coherency - Revised Interrupt Architecture (multiple priorites, reg banks, auto stack switch, auto regfile save/restore) - MMUv4 (PIPT dcache, Huge Pages) - Instructions for * 64bit load/store: LDD, STD * Hardware assisted divide/remainder: DIV, REM * Function prologue/epilogue: ENTER_S, LEAVE_S * IRQ enable/disable: CLRI, SETI * pop count: FFS, FLS * SETcc, BMSKN, XBFU... Signed-off-by: Vineet Gupta arch/arc/Kconfig | 80 +++++++++++++- arch/arc/Makefile | 8 +- arch/arc/include/asm/arcregs.h | 53 ++++++++- arch/arc/include/asm/bitops.h | 71 ++++++++++++ arch/arc/include/asm/elf.h | 5 + arch/arc/include/asm/entry-arcv2.h | 190 ++++++++++++++++++++++++++++++++ arch/arc/include/asm/entry.h | 4 + arch/arc/include/asm/irq.h | 5 + arch/arc/include/asm/irqflags-arcv2.h | 3 + arch/arc/include/asm/irqflags-compact.h | 2 + arch/arc/include/asm/irqflags.h | 4 + arch/arc/include/asm/ptrace.h | 43 ++++++++ arch/arc/include/asm/thread_info.h | 1 + arch/arc/kernel/Makefile | 3 +- arch/arc/kernel/entry-arcv2.S | 189 +++++++++++++++++++++++++++++++ arch/arc/kernel/head.S | 2 - arch/arc/kernel/process.c | 19 +++- arch/arc/kernel/ptrace.c | 2 +- arch/arc/kernel/setup.c | 45 +++++++- arch/arc/kernel/signal.c | 6 +- arch/arc/kernel/troubleshoot.c | 33 +++++- arch/arc/mm/tlbex.S | 2 - 22 files changed, 737 insertions(+), 33 deletions(-) commit 820970a5aa3c98be26e1df64da4b93294d20d4e7 Author: Vineet Gupta Date: Fri Mar 6 14:08:20 2015 +0530 ARCv2: [intc] HS38 core interrupt controller Cc: Jason Cooper Cc: Thomas Gleixner Signed-off-by: Vineet Gupta .../devicetree/bindings/arc/archs-intc.txt | 22 ++++ arch/arc/include/asm/arcregs.h | 1 + arch/arc/include/asm/irqflags-arcv2.h | 116 +++++++++++++++++ arch/arc/kernel/intc-arcv2.c | 143 +++++++++++++++++++++ 4 files changed, 282 insertions(+) commit 10d11e580c50f8a6718a58f92198dbc031e63b0a Author: Vineet Gupta Date: Thu Apr 16 19:49:12 2015 +0530 ARC: uncached base is hard constant for ARC, don't save it ioremap already uses the hard define, just make sure BCR value matches that Signed-off-by: Vineet Gupta arch/arc/include/asm/arcregs.h | 1 - arch/arc/kernel/setup.c | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) commit fe55dfdcdfabf160ab0c14617725c57c7a1facfc Author: Boris Brezillon Date: Mon Jun 22 09:22:14 2015 +0200 crypto: marvell/cesa - remove COMPILE_TEST dependency The CESA driver calls phys_to_virt() which is not available on all architectures. Remove the depency on COMPILE_TEST to prevent building this driver on non ARM architectures. Signed-off-by: Boris Brezillon Reported-by: Paul Gortmaker Suggested-by: Herbert Xu Signed-off-by: Herbert Xu drivers/crypto/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3e90950d36f19e5477becd5acb02e9b8d8c8956f Author: Herbert Xu Date: Mon Jun 22 10:31:40 2015 +0800 crypto: algif_aead - Temporarily disable all AEAD algorithms As the AEAD conversion is still ongoing, we do not yet wish to export legacy AEAD implementations to user-space, as their calling convention will change. This patch actually disables all AEAD algorithms because some of them (e.g., cryptd) will need to be modified to propagate this flag. Subsequent patches will reenable them on an individual basis. Signed-off-by: Herbert Xu crypto/algif_aead.c | 3 ++- include/linux/crypto.h | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) commit 15539de5c958d4943cc2f2f35f7e313bff5922b6 Author: Herbert Xu Date: Mon Jun 22 10:14:19 2015 +0800 crypto: af_alg - Forbid the use internal algorithms The bit CRYPTO_ALG_INTERNAL was added to stop af_alg from accessing internal algorithms. However, af_alg itself was never modified to actually stop that bit from being used by the user. Therefore the user could always override it by specifying the relevant bit in the type and/or mask. This patch silently discards the bit in both type and mask. Signed-off-by: Herbert Xu crypto/af_alg.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 9fcc704dfd7967ebfbdd1031603e4332a905994b Author: Herbert Xu Date: Sun Jun 21 19:11:50 2015 +0800 crypto: echainiv - Only hold RNG during initialisation This patch changes the RNG allocation so that we only hold a reference to the RNG during initialisation. Signed-off-by: Herbert Xu crypto/echainiv.c | 28 ++++++---------------------- 1 file changed, 6 insertions(+), 22 deletions(-) commit eeee12aa34d840c6c99051f0ff85a9ffa1badd07 Author: Herbert Xu Date: Sun Jun 21 19:11:49 2015 +0800 crypto: seqiv - Add compatibility support without RNG When seqiv is used in compatibility mode, this patch allows it to function even when an RNG Is not available. It also changes the RNG allocation for the new explicit seqiv interface so that we only hold a reference to the RNG during initialisation. Signed-off-by: Herbert Xu crypto/seqiv.c | 50 +++++++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 25 deletions(-) commit 055906d1e7f94f459a0e80228f15656bf5871311 Author: Herbert Xu Date: Sun Jun 21 19:11:47 2015 +0800 crypto: eseqiv - Offer normal cipher functionality without RNG The RNG may not be available during early boot, e.g., the relevant modules may not be included in the initramfs. As the RNG Is only needed for IPsec, we should not let this prevent use of ciphers without IV generators, e.g., for disk encryption. This patch postpones the RNG allocation to the init function so that one failure during early boot does not make the RNG unavailable for all subsequent users of the same cipher. More importantly, it lets the cipher live even if RNG allocation fails. Of course we no longer offer IV generation and which will fail with an error if invoked. But all other cipher capabilities will function as usual. Signed-off-by: Herbert Xu crypto/eseqiv.c | 31 ++++++++++++------------------- 1 file changed, 12 insertions(+), 19 deletions(-) commit 341476d6cf224f1dea5c439cd70181053629ce15 Author: Herbert Xu Date: Sun Jun 21 19:11:46 2015 +0800 crypto: chainiv - Offer normal cipher functionality without RNG The RNG may not be available during early boot, e.g., the relevant modules may not be included in the initramfs. As the RNG Is only needed for IPsec, we should not let this prevent use of ciphers without IV generators, e.g., for disk encryption. This patch postpones the RNG allocation to the init function so that one failure during early boot does not make the RNG unavailable for all subsequent users of the same cipher. More importantly, it lets the cipher live even if RNG allocation fails. Of course we no longer offer IV generation and which will fail with an error if invoked. But all other cipher capabilities will function as usual. Signed-off-by: Herbert Xu crypto/chainiv.c | 55 +++++++++++++++++++++++++++++-------------------------- 1 file changed, 29 insertions(+), 26 deletions(-) commit 9aa867e46565d61491f884c793e4988678fbffa3 Author: Herbert Xu Date: Sun Jun 21 19:11:45 2015 +0800 crypto: user - Add CRYPTO_MSG_DELRNG This patch adds a new crypto_user command that allows the admin to delete the crypto system RNG. Note that this can only be done if the RNG is currently not in use. The next time it is used a new system RNG will be allocated. Signed-off-by: Herbert Xu crypto/crypto_user.c | 12 +++++++++++- include/uapi/linux/cryptouser.h | 1 + 2 files changed, 12 insertions(+), 1 deletion(-) commit d0497524658e37956737d7dbee73cc42120255dc Author: Herbert Xu Date: Sun Jun 21 19:11:44 2015 +0800 crypto: user - Move cryptouser.h to uapi The header file cryptouser.h only contains information that is exported to user-space. Signed-off-by: Herbert Xu include/linux/cryptouser.h | 110 ---------------------------------------- include/uapi/linux/cryptouser.h | 110 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 110 insertions(+), 110 deletions(-) commit 7cecadb7cca83953e7857fe9f7273b705cb8ebe7 Author: Herbert Xu Date: Sun Jun 21 19:11:43 2015 +0800 crypto: rng - Do not free default RNG when it becomes unused Currently we free the default RNG when its use count hits zero. This was OK when the IV generators would latch onto the RNG at instance creation time and keep it until the instance is torn down. Now that IV generators only keep the RNG reference during init time this scheme causes the default RNG to come and go at a high frequencey. This is highly undesirable as we want to keep a single RNG in use unless the admin wants it to be removed. This patch changes the scheme so that the system RNG once allocated is never removed unless a specifically requested. Signed-off-by: Herbert Xu crypto/rng.c | 27 +++++++++++++++++++++++---- include/crypto/internal/rng.h | 9 +++++++++ 2 files changed, 32 insertions(+), 4 deletions(-) commit 21dbd96f2287a49219d35a0e916cf3f2bcaab9d0 Author: Herbert Xu Date: Sun Jun 21 19:11:41 2015 +0800 crypto: skcipher - Allow givencrypt to be NULL Currently for skcipher IV generators they must provide givencrypt as that is the whole point. We are currently replacing skcipher IV generators with explicit IV generators. In order to maintain backwards compatibility, we need to allow the IV generators to still function as a normal skcipher when the RNG Is not present (e.g., in the initramfs during boot). IOW everything but givencrypt and givdecrypt will still work but those two will fail. Therefore this patch assigns a default givencrypt that simply returns an error should it be NULL. Signed-off-by: Herbert Xu crypto/ablkcipher.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7ef3d7d58d9dc73ee3d4f8f56d0024c8cca8163f Merge: cb17b2a 539f511 7ea402d b58d930 Author: Ingo Molnar Date: Mon Jun 22 09:15:03 2015 +0200 Merge branches 'x86/apic', 'x86/asm', 'x86/mm' and 'x86/platform' into x86/core, to merge last updates Signed-off-by: Ingo Molnar commit 761c1770f2bf36a323ab97e2e1780db4f9b8a6fe Author: Maciej S. Szmigiero Date: Sun Jun 21 15:54:44 2015 +0200 hwmon: add driver for Microchip TC74 Add hwmon driver for the Microchip TC74. The TC74 is a single-input 8-bit I2C temperature sensor, with +-2 degrees centigrade accuracy. Signed-off-by: Maciej Szmigiero Signed-off-by: Guenter Roeck Documentation/hwmon/tc74 | 20 ++++++ drivers/hwmon/Kconfig | 10 +++ drivers/hwmon/Makefile | 1 + drivers/hwmon/tc74.c | 177 +++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 208 insertions(+) commit 3da40c7b089810ac9cf2bb1e59633f619f3a7312 Author: Josef Bacik Date: Mon Jun 22 00:31:26 2015 -0400 ext4: only call ext4_truncate when size <= isize At LSF we decided that if we truncate up from isize we shouldn't trim fallocated blocks that were fallocated with KEEP_SIZE and are past the new i_size. This patch fixes ext4 to do this. [ Completely reworked patch so that i_disksize would actually get set when truncating up. Also reworked the code for handling truncate so that it's easier to handle. -- tytso ] Signed-off-by: Josef Bacik Signed-off-by: Theodore Ts'o Reviewed-by: Lukas Czerner fs/ext4/inode.c | 38 ++++++++++++++++++-------------------- 1 file changed, 18 insertions(+), 20 deletions(-) commit 04e22412f420ade46dbf792a10e7f0d26ae55359 Author: Eric Whitney Date: Sun Jun 21 21:38:03 2015 -0400 ext4: make online defrag error reporting consistent Make the error reporting behavior resulting from the unsupported use of online defrag on files with data journaling enabled consistent with that implemented for bigalloc file systems. Difference found with ext4/308. Signed-off-by: Eric Whitney Signed-off-by: Theodore Ts'o Reviewed-by: Darrick J. Wong fs/ext4/move_extent.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit c27e43a10c9755231f8a1c618efc1ac299dd5007 Author: Eric Whitney Date: Sun Jun 21 21:37:05 2015 -0400 ext4: minor cleanup of ext4_da_reserve_space() Remove outdated comments and dead code from ext4_da_reserve_space. Clean up its trace point, and relocate it to make it more useful. While we're at it, fix a nearby conditional used to determine if we have a non-bigalloc file system. It doesn't match usage elsewhere in the code, and misleadingly suggests that an s_cluster_ratio value of 0 would be legal. Signed-off-by: Eric Whitney Signed-off-by: Theodore Ts'o fs/ext4/inode.c | 22 +++++----------------- include/trace/events/ext4.h | 10 ++++------ 2 files changed, 9 insertions(+), 23 deletions(-) commit 292db1bc6c105d86111e858859456bcb11f90f91 Author: Darrick J. Wong Date: Sun Jun 21 21:10:51 2015 -0400 ext4: don't retry file block mapping on bigalloc fs with non-extent file ext4 isn't willing to map clusters to a non-extent file. Don't signal this with an out of space error, since the FS will retry the allocation (which didn't fail) forever. Instead, return EUCLEAN so that the operation will fail immediately all the way back to userspace. (The fix is either to run e2fsck -E bmap2extent, or to chattr +e the file.) Signed-off-by: Darrick J. Wong Signed-off-by: Theodore Ts'o Cc: stable@vger.kernel.org fs/ext4/indirect.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 496817b4befced99dff6f23997723bf0962d56b0 Author: Dave Chinner Date: Mon Jun 22 10:13:30 2015 +1000 xfs: clean up XFS_MIN_FREELIST macros We no longer calculate the minimum freelist size from the on-disk AGF, so we don't need the macros used for this. That means the nested macros can be cleaned up, and turn this into an actual function so the logic is clear and concise. This will make it much easier to add support for the rmap btree when the time comes. This also gets rid of the XFS_AG_MAXLEVELS macro used by these freelist macros as it is simply a wrapper around a single variable. Signed-off-by: Dave Chinner Reviewed-by: Brian Foster Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_alloc.c | 22 +++++++++++++++++++--- fs/xfs/libxfs/xfs_alloc.h | 2 ++ fs/xfs/libxfs/xfs_bmap.c | 2 +- fs/xfs/libxfs/xfs_format.h | 13 ------------- fs/xfs/libxfs/xfs_trans_resv.h | 4 ++-- fs/xfs/libxfs/xfs_trans_space.h | 2 +- fs/xfs/xfs_filestream.c | 2 +- 7 files changed, 26 insertions(+), 21 deletions(-) commit 396503fc8397e9c832503dd5669c0f11c5e4d046 Author: Dave Chinner Date: Mon Jun 22 10:13:19 2015 +1000 xfs: sanitise error handling in xfs_alloc_fix_freelist The error handling is currently an inconsistent mess as every error condition handles return values and releasing buffers individually. Clean this up by using gotos and a sane error label stack. Signed-off-by: Dave Chinner Reviewed-by: Brian Foster Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_alloc.c | 111 +++++++++++++++++++++++----------------------- 1 file changed, 55 insertions(+), 56 deletions(-) commit 72d552854b96b3e2a2c547a5e5a798a17dfda650 Author: Dave Chinner Date: Mon Jun 22 10:04:42 2015 +1000 xfs: factor out free space extent length check The longest extent length checks in xfs_alloc_fix_freelist() are now essentially identical. Factor them out into a helper function, so we know they are checking exactly the same thing before and after we lock the AGF. Signed-off-by: Dave Chinner Reviewed-by: Brian Foster Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_alloc.c | 71 +++++++++++++++++++++++++++++------------------ 1 file changed, 44 insertions(+), 27 deletions(-) commit 50adbcb4c4e6c94b3acaad2a5854b6ca57402115 Author: Dave Chinner Date: Mon Jun 22 10:04:31 2015 +1000 xfs: xfs_alloc_fix_freelist() can use incore perag structures At the moment, xfs_alloc_fix_freelist() uses a mix of per-ag based access and agf buffer based access to freelist and space usage information. However, once the AGF buffer is locked inside this function, it is guaranteed that both the in-memory and on-disk values are identical. xfs_alloc_fix_freelist() doesn't modify the values in the structures directly, so it is a read-only user of the infomration, and hence can use the per-ag structure exclusively for determining what it should do. This opens up an avenue for cleaning up a lot of duplicated logic whose only difference is the structure it gets the data from, and in doing so removes a lot of needless byte swapping overhead when fixing up the free list. Signed-off-by: Dave Chinner Reviewed-by: Brian Foster Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_alloc.c | 69 +++++++++++++++++++++-------------------------- fs/xfs/libxfs/xfs_alloc.h | 8 ++---- fs/xfs/libxfs/xfs_bmap.c | 3 ++- fs/xfs/xfs_filestream.c | 3 ++- 4 files changed, 37 insertions(+), 46 deletions(-) commit b2a922cd6c2e3b9c2e36d48683ceb87a5bce8bb8 Author: Christoph Hellwig Date: Mon Jun 22 09:45:10 2015 +1000 xfs: remove xfs_caddr_t Just use char pointers directly instead of the confusing typedef to a pointer type. Signed-off-by: Christoph Hellwig Reviewed-by: Brian Foster Signed-off-by: Dave Chinner fs/xfs/xfs_linux.h | 1 - fs/xfs/xfs_log.c | 4 ++-- fs/xfs/xfs_log_recover.c | 54 ++++++++++++++++++++++++------------------------ 3 files changed, 29 insertions(+), 30 deletions(-) commit 5809d5e083a0e6c7121724635db2a1a6f9b90d52 Author: Christoph Hellwig Date: Mon Jun 22 09:44:47 2015 +1000 xfs: use void pointers in log validation helpers Compared to char pointers this saves us a lot of casting effort. Also add another local variable to make the code easier to read. Signed-off-by: Christoph Hellwig Reviewed-by: Brian Foster Signed-off-by: Dave Chinner fs/xfs/xfs_log.c | 30 ++++++++++++++---------------- fs/xfs/xfs_log_priv.h | 2 +- 2 files changed, 15 insertions(+), 17 deletions(-) commit 88ee2df7f2591133731c29d0ee93f3d37691df85 Author: Christoph Hellwig Date: Mon Jun 22 09:44:29 2015 +1000 xfs: return a void pointer from xfs_buf_offset This avoids all kinds of unessecary casts in an envrionment like Linux where we can assume that pointer arithmetics are support on void pointers. Signed-off-by: Christoph Hellwig Reviewed-by: Brian Foster Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_ialloc.h | 3 +-- fs/xfs/libxfs/xfs_inode_buf.c | 8 +++----- fs/xfs/xfs_buf.c | 6 +++--- fs/xfs/xfs_buf.h | 2 +- fs/xfs/xfs_inode.c | 2 +- fs/xfs/xfs_log_recover.c | 9 ++++----- 6 files changed, 13 insertions(+), 17 deletions(-) commit fc51c2b5f8ce962355bee19aa58451bb878f0663 Author: Christoph Hellwig Date: Mon Jun 22 09:44:02 2015 +1000 xfs: remove inst_t We can simply use a void pointer to pass a long return addresses in the debugging helpers. Signed-off-by: Christoph Hellwig Reviewed-by: Brian Foster Signed-off-by: Dave Chinner fs/xfs/xfs_error.c | 4 ++-- fs/xfs/xfs_error.h | 4 ++-- fs/xfs/xfs_linux.h | 2 -- 3 files changed, 4 insertions(+), 6 deletions(-) commit db9d67d6b09e5d86da0c33da0d9dcb7998653c4f Author: Christoph Hellwig Date: Mon Jun 22 09:43:32 2015 +1000 xfs: remove __psint_t and __psunsigned_t Replace uses of __psint_t with the proper uintptr_t and ptrdiff_t types, and remove the defintions of __psint_t and __psunsigned_t. Signed-off-by: Christoph Hellwig Reviewed-by: Brian Foster Signed-off-by: Dave Chinner fs/xfs/xfs_extfree_item.c | 2 +- fs/xfs/xfs_linux.h | 11 ----------- fs/xfs/xfs_log.c | 10 +++++----- fs/xfs/xfs_trans_ail.c | 6 +++--- 4 files changed, 9 insertions(+), 20 deletions(-) commit 2ac56d3d4bd625450a54d4c3f9292d58f6b88232 Author: Eric Sandeen Date: Mon Jun 22 09:42:48 2015 +1000 xfs: fix remote symlinks on V5/CRC filesystems If we create a CRC filesystem, mount it, and create a symlink with a path long enough that it can't live in the inode, we get a very strange result upon remount: # ls -l mnt total 4 lrwxrwxrwx. 1 root root 929 Jun 15 16:58 link -> XSLM XSLM is the V5 symlink block header magic (which happens to be followed by a NUL, so the string looks terminated). xfs_readlink_bmap() advanced cur_chunk by the size of the header for CRC filesystems, but never actually used that pointer; it kept reading from bp->b_addr, which is the start of the block, rather than the start of the symlink data after the header. Looks like this problem goes back to v3.10. Fixing this gets us reading the proper link target, again. Cc: stable@vger.kernel.org Signed-off-by: Eric Sandeen Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/xfs_symlink.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 590605c6bc31d5cbfcb3844ef98eb10ff7ce24c3 Author: Rafał Miłecki Date: Sun Jun 21 15:25:49 2015 +0200 MIPS: BCM47xx: Simplify handling SPROM revisions After the big SPROM cleanup moving code to the bcm47xx_sprom_fill_auto we ended up with few tiny functions, two of them being identical. Let's get rid of these [12]-liners. This also stops extracting higher SPROM revisions as revision 1. Now we have that function nicely handling revisions we don't need it. Signed-off-by: Rafał Miłecki Cc: linux-mips@linux-mips.org Cc: Hauke Mehrtens Patchwork: https://patchwork.linux-mips.org/patch/10569/ Signed-off-by: Ralf Baechle arch/mips/bcm47xx/sprom.c | 53 ++++++++--------------------------------------- 1 file changed, 9 insertions(+), 44 deletions(-) commit 589de416fb07aaea94d27f71c31a9bb02af2e54c Author: Paul Gortmaker Date: Tue Jun 16 14:49:46 2015 -0400 MIPS: Cobalt Don't use module_init in non-modular MTD registration. As of commit 34b1252bd91851f77f89fbb6829a04efad900f41 ("MIPS: Cobalt: Do not build MTD platform device registration code as module.") this file became built-in instead of modular. So we should also stop using module_init as an alias for __initcall as that can be rather misleading. Fix this up now, so that we can relocate module_init from init.h into module.h in the future. If we don't do this, we'd have to add module.h to obviously non-modular code, and that would be a worse thing. Direct use of __initcall is discouraged, vs prioritized ones. Use of device_initcall is consistent with what __initcall maps onto, and hence does not change the init order, making the impact of this change zero. Signed-off-by: Paul Gortmaker Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/10549/ Signed-off-by: Ralf Baechle arch/mips/cobalt/mtd.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit f6e734a8c162297953d7bfc0f3f6bf4f8c33d72f Author: Rafał Miłecki Date: Wed Jun 10 23:05:08 2015 +0200 MIPS: BCM47xx: Move NVRAM driver to the drivers/firmware/ After Broadcom switched from MIPS to ARM for their home routers we need to have NVRAM driver in some common place (not arch/mips/). As explained in Kconfig, this driver is responsible for parsing SoC configuration data that is passed to the kernel in flash from the bootloader firmware called "CFE". We were thinking about putting it in bus directory, however there are two possible buses for MIPS: drivers/ssb/ and drivers/bcma/. So this won't fit there and this is why I would like to move this driver to the drivers/firmware/. Signed-off-by: Rafał Miłecki Reviewed-by: Paul Walmsley Cc: linux-mips@linux-mips.org Cc: Hauke Mehrtens Cc: Seiji Aguchi Cc: Greg Kroah-Hartman Cc: Ard Biesheuvel Cc: Mike Waychison Cc: Roy Franz Cc: Matt Fleming Cc: Linus Torvalds Patchwork: https://patchwork.linux-mips.org/patch/10544/ Signed-off-by: Ralf Baechle MAINTAINERS | 6 + arch/mips/Kconfig | 1 + arch/mips/bcm47xx/Makefile | 2 +- arch/mips/bcm47xx/nvram.c | 246 ----------------------------- drivers/firmware/Kconfig | 1 + drivers/firmware/Makefile | 1 + drivers/firmware/broadcom/Kconfig | 11 ++ drivers/firmware/broadcom/Makefile | 1 + drivers/firmware/broadcom/bcm47xx_nvram.c | 248 ++++++++++++++++++++++++++++++ include/linux/bcm47xx_nvram.h | 2 +- 10 files changed, 271 insertions(+), 248 deletions(-) commit 1e51714c81e11bd0ffbb2b0724a1f66ce58608a5 Author: Akinobu Mita Date: Fri May 1 22:56:38 2015 +0900 MIPS: use for_each_sg() This replaces the plain loop over the sglist array with for_each_sg() macro which consists of sg_next() function calls. Since MIPS doesn't select ARCH_HAS_SG_CHAIN, it is not necessary to use for_each_sg() in order to loop over each sg element. But this can help find problems with drivers that do not properly initialize their sg tables when CONFIG_DEBUG_SG is enabled. Signed-off-by: Akinobu Mita Cc: akpm@linux-foundation.org Cc: linux-mips@linux-mips.org Cc: linux-arch@vger.kernel.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/9930/ Signed-off-by: Ralf Baechle arch/mips/mm/dma-default.c | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) commit 78fc774479bcbcf51b3afb55e5ee4be5e5cd8b75 Author: Rafał Miłecki Date: Sun Jun 7 13:26:44 2015 +0200 MIPS: BCM47xx: Don't select BCMA_HOST_PCI SoC may have non-Broadcom PCI device attached or one may want to use totally different PCI driver. Signed-off-by: Rafał Miłecki Cc: linux-mips@linux-mips.org Cc: Hauke Mehrtens Patchwork: https://patchwork.linux-mips.org/patch/10537/ Signed-off-by: Ralf Baechle arch/mips/bcm47xx/Kconfig | 1 - 1 file changed, 1 deletion(-) commit 94a0535baf4d78246f5e35c347d484baef8aeb2e Author: Rafał Miłecki Date: Sat Jun 6 23:16:23 2015 +0200 MIPS: BCM47xx: Add helper variable for storing NVRAM length This simplifies code just a bit (also maybe makes it a bit more intuitive?) and will allow us to stop storing header. Right now we copy whole NVRAM including its header to the internal buffer. It is not needed to store a header as we don't access all these details like CRC, flags, etc. The next improvement that should follow is copying only the real contents. Signed-off-by: Rafał Miłecki Acked-by: Hauke Mehrtens Cc: linux-mips@linux-mips.org Cc: Arend van Spriel Cc: Hante Meuleman Patchwork: https://patchwork.linux-mips.org/patch/10535/ Signed-off-by: Ralf Baechle arch/mips/bcm47xx/nvram.c | 37 ++++++++++++++++--------------------- 1 file changed, 16 insertions(+), 21 deletions(-) commit cb2224d7c40e3d2dfc6f4a1676cd817acc79f012 Author: Ralf Baechle Date: Tue Jun 9 15:04:38 2015 +0200 MIPS: IRQ/IP27: Move IRQ allocation API to platform code. allocate_irqno, free_irqno and alloc_legacy_irqno are a simple allocator for interrupt numbers from the days when the numer of interrupts was still fixed to NR_IRQS. This was necessary for the SGI IP27 architecture which with its flexible architecture and possibly large number of interrupts doesn't easily fit into the old pattern. These days there are better alternatives. Move the allocation code from the arch generic code to the only platform using it, the SGI IP27 aka Origin 200/2000, Onyx 2. Signed-off-by: Ralf Baechle arch/mips/kernel/irq.c | 38 -------------------------------- arch/mips/sgi-ip27/Makefile | 6 +++--- arch/mips/sgi-ip27/ip27-irqno.c | 48 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 51 insertions(+), 41 deletions(-) commit 6f6ed482653723e53da4a57b200348ac1eed5ce9 Author: Leonid Yegoshin Date: Mon Jun 1 17:09:52 2015 -0700 MIPS: Replace smp_mb with release barrier function in unlocks. Repleace smp_mb() in arch_write_unlock() and __clear_bit_unlock() to smp_mb__before_llsc() call which does "release" barrier functionality. It seems like it was missed in commit f252ffd50c97dae87b45f1dbad24f71358ccfbd6 during introduction of "acquire" and "release" semantics. [ralf@linux-mips: The original patch submission was labelled a fix but actually it replaces a barrier with another less restrictive type of barrier so it doesn't fix any ill behaviour but rather squeezes out a tad better performance. Further improvments will be possible once smp_release() has been merged.] Signed-off-by: Leonid Yegoshin Cc: linux-mips@linux-mips.org Cc: benh@kernel.crashing.org Cc: will.deacon@arm.com Cc: linux-kernel@vger.kernel.org Cc: markos.chandras@imgtec.com Cc: macro@linux-mips.org Cc: Steven.Hill@imgtec.com Cc: alexander.h.duyck@redhat.com Cc: davem@davemloft.net Patchwork: https://patchwork.linux-mips.org/patch/10507/ Signed-off-by: Ralf Baechle arch/mips/include/asm/bitops.h | 2 +- arch/mips/include/asm/spinlock.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 5f93ef5cfb867aca400598f69f9ce8af14b0ced0 Author: Paul Burton Date: Fri May 22 16:51:03 2015 +0100 MIPS: i8259: DT support Support probing the i8259 programmable interrupt controller, as found on the Malta board, and using its interrupts via device tree. Signed-off-by: Paul Burton Cc: linux-mips@linux-mips.org Cc: devicetree@vger.kernel.org Cc: Rob Herring Cc: Pawel Moll Cc: Mark Rutland Cc: Ian Campbell Cc: Kumar Gala Cc: Qais Yousef Cc: Andrew Bresticker Cc: linux-kernel@vger.kernel.org Patchwork: http://patchwork.linux-mips.org/patch/10114/ Signed-off-by: Ralf Baechle arch/mips/include/asm/i8259.h | 1 + arch/mips/kernel/i8259.c | 43 +++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 42 insertions(+), 2 deletions(-) commit e8823d26b4f18faeecf8f46adaecc52a7154c41f Author: Paul Burton Date: Fri May 22 16:51:02 2015 +0100 MIPS: Malta: Basic DT plumbing Build a DT for the Malta platform into the kernel, load it & probe devices from it. The DT is essentially empty at this point, devices will be added in further patches. [ralf@linux-mips.org: Fixed conflicts.] Signed-off-by: Paul Burton Cc: linux-mips@linux-mips.org Cc: devicetree@vger.kernel.org Cc: Rob Herring Cc: Pawel Moll Cc: Mark Rutland Cc: Ian Campbell Cc: Kumar Gala Cc: Andrew Bresticker Cc: linux-kernel@vger.kernel.org Cc: Markos Chandras Patchwork: http://patchwork.linux-mips.org/patch/10119/ Signed-off-by: Ralf Baechle arch/mips/Kconfig | 2 ++ arch/mips/boot/dts/mti/Makefile | 1 + arch/mips/boot/dts/mti/malta.dts | 7 +++++++ arch/mips/mti-malta/Makefile | 2 +- arch/mips/mti-malta/malta-dt.c | 34 ++++++++++++++++++++++++++++++++++ arch/mips/mti-malta/malta-setup.c | 4 ++++ 6 files changed, 49 insertions(+), 1 deletion(-) commit 56d4c99b848ce3a07cf3643e1f2dc78419f0f954 Author: Paul Burton Date: Fri May 22 16:51:01 2015 +0100 MIPS: include errno.h for ENODEV in mips-cm.h A later patch in this series will include mips-cm.h but does not require errno.h. This leads to a build failure with ENODEV undeclared. Include errno.h from mips-cm.h to pull in the appropriate definition and avoid the build failure. Signed-off-by: Paul Burton Cc: linux-mips@linux-mips.org Cc: devicetree@vger.kernel.org Cc: Rob Herring Cc: Pawel Moll Cc: Mark Rutland Cc: Ian Campbell Cc: Kumar Gala Cc: James Hogan Cc: linux-kernel@vger.kernel.org Patchwork: http://patchwork.linux-mips.org/patch/10113/ Signed-off-by: Ralf Baechle arch/mips/include/asm/mips-cm.h | 1 + 1 file changed, 1 insertion(+) commit 921d55e32d31e2503f8f8a16798849ab48fdef2a Author: Paul Burton Date: Fri May 22 16:51:00 2015 +0100 MIPS: Define GCR_GIC_STATUS register fields Add definitions for the GICEX field in the GCR_GIC_STATUS register to mips-cm.h for use in a later patch. Signed-off-by: Paul Burton Cc: linux-mips@linux-mips.org Cc: devicetree@vger.kernel.org Cc: Rob Herring Cc: Pawel Moll Cc: Mark Rutland Cc: Ian Campbell Cc: Kumar Gala Cc: James Hogan Cc: linux-kernel@vger.kernel.org Patchwork: http://patchwork.linux-mips.org/patch/10112/ Signed-off-by: Ralf Baechle arch/mips/include/asm/mips-cm.h | 4 ++++ 1 file changed, 4 insertions(+) commit 266a88e2200eefa216180ce2761eb84e06f3d77e Author: Markos Chandras Date: Thu Jun 4 11:56:16 2015 +0100 MIPS: BPF: Introduce BPF ASM helpers This commit introduces BPF ASM helpers for MIPS and MIPS64 kernels. The purpose of this patch is to twofold: 1) We are now able to handle negative offsets instead of either falling back to the interpreter or to simply not do anything and bail out. 2) Optimize reads from the packet header instead of calling the C helpers Because of this patch, we are now able to get rid of quite a bit of code in the JIT generation process by using MIPS optimized assembly code. The new assembly code makes the test_bpf testsuite happy with all 60 test passing successfully compared to the previous implementation where 2 tests were failing. Doing some basic analysis in the results between the old implementation and the new one we can obtain the following summary running current mainline on an ER8 board (+/- 30us delta is ignored to prevent noise from kernel scheduling or IRQ latencies): Summary: 22 tests are faster, 7 are slower and 47 saw no improvement with the most notable improvement being the tcpdump tests. The 7 tests that seem to be a bit slower is because they all follow the slow path (bpf_internal_load_pointer_neg_helper) which is meant to be slow so that's not a problem. Signed-off-by: Markos Chandras Cc: netdev@vger.kernel.org Cc: "David S. Miller" Cc: Alexei Starovoitov Cc: Daniel Borkmann Cc: Hannes Frederic Sowa Cc: linux-kernel@vger.kernel.org Cc: linux-mips@linux-mips.org Cc: netdev@vger.kernel.org Patchwork: http://patchwork.linux-mips.org/patch/10530/ Signed-off-by: Ralf Baechle arch/mips/net/Makefile | 2 +- arch/mips/net/bpf_jit.c | 174 +++++++++----------------------- arch/mips/net/bpf_jit.h | 33 +++--- arch/mips/net/bpf_jit_asm.S | 238 ++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 302 insertions(+), 145 deletions(-) commit beaf70b8b7d025e7293ac013b198fc550ee2d3ec Author: Markos Chandras Date: Thu Jun 4 11:56:15 2015 +0100 MIPS: BPF: Use BPF register names to describe the ABI Use the BPF register names instead of the arch register names to document how the ABI is structured. Signed-off-by: Markos Chandras Cc: netdev@vger.kernel.org Cc: "David S. Miller" Cc: Alexei Starovoitov Cc: Daniel Borkmann Cc: Hannes Frederic Sowa Cc: linux-kernel@vger.kernel.org Patchwork: http://patchwork.linux-mips.org/patch/10529/ Signed-off-by: Ralf Baechle arch/mips/net/bpf_jit.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 79a8855c4a5e44321f371aa0b992a84e9c1807da Author: Markos Chandras Date: Thu Jun 4 11:56:14 2015 +0100 MIPS: BPF: Move register definition to the BPF header The registers will be used by a subsequent patch introducing ASM helpers so move them to a common header. Signed-off-by: Markos Chandras Cc: netdev@vger.kernel.org Cc: "David S. Miller" Cc: Alexei Starovoitov Cc: Daniel Borkmann Cc: Hannes Frederic Sowa Cc: linux-kernel@vger.kernel.org Cc: linux-mips@linux-mips.org Patchwork: http://patchwork.linux-mips.org/patch/10528/ Signed-off-by: Ralf Baechle arch/mips/net/bpf_jit.c | 35 ----------------------------------- arch/mips/net/bpf_jit.h | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 35 deletions(-) commit 5e0c5610ea9debc019b631b022529c8cf1d225bd Author: Markos Chandras Date: Thu Jun 4 11:56:12 2015 +0100 MIPS: net: BPF: Replace RSIZE with SZREG The RSZIE was used to determine the register width but MIPS already defines SZREG so use that instead. Cc: netdev@vger.kernel.org Cc: "David S. Miller" Cc: Alexei Starovoitov Cc: Daniel Borkmann Cc: Hannes Frederic Sowa Cc: linux-kernel@vger.kernel.org Cc: linux-mips@linux-mips.org Cc: netdev@vger.kernel.org Patchwork: http://patchwork.linux-mips.org/patch/10526/ Signed-off-by: Markos Chandras Signed-off-by: Ralf Baechle arch/mips/net/bpf_jit.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) commit ad152bd69823fbca63fff9ac3fbe448251eef11b Author: Markos Chandras Date: Thu Jun 4 11:56:11 2015 +0100 MIPS: BPF: Free up some callee-saved registers Move the two scratch registers from s0 and s1 to t4 and t5 in order to free up some callee-saved registers. We will use these callee-saved registers to store some permanent data on them in a subsequent patch. Signed-off-by: Markos Chandras Cc: netdev@vger.kernel.org Cc: "David S. Miller" Cc: Alexei Starovoitov Cc: Daniel Borkmann Cc: Hannes Frederic Sowa Cc: linux-kernel@vger.kernel.org Cc: linux-mips@linux-mips.org Patchwork: http://patchwork.linux-mips.org/patch/10525/ Signed-off-by: Ralf Baechle arch/mips/net/bpf_jit.c | 35 +++++++++++++++-------------------- arch/mips/net/bpf_jit.h | 2 ++ 2 files changed, 17 insertions(+), 20 deletions(-) commit de5792a4ec8abb88ceee83b403b549255146c867 Author: Joshua Kinard Date: Mon May 25 14:15:10 2015 -0400 MIPS: Xtalk: Update xwidget.h with known Xtalk device numbers This is the first patch of two to clean up/update the Xtalk detection code used by IP27 with some of the code used in the IP30 port. This specific patch adds Xtalk widget manufacturer and widget device numbers to arch/mips/include/asm/xtalk/widget.h Signed-off-by: Joshua Kinard Cc: Linux MIPS List Patchwork: http://patchwork.linux-mips.org/patch/10174/ Signed-off-by: Ralf Baechle arch/mips/include/asm/xtalk/xwidget.h | 112 ++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) commit 12060666f5c0659d28e31cbf6973af1dfa43c0e7 Author: Paul Burton Date: Sun May 24 16:31:44 2015 +0100 MIPS: Optimise non-EVA kernel user memory accesses Commits ac1d8590d3ae (MIPS: asm: uaccess: Use EVA instructions wrappers), 05c6516005c4 (MIPS: asm: uaccess: Add EVA support to copy_{in, to,from}_user) & e3a9b07a9caf (MIPS: asm: uaccess: Add EVA support for str*_user operations) added checks to various user memory access functions & macros in order to determine whether to perform standard memory accesses or their EVA userspace equivalents. In kernels built without support for EVA these checks are entirely redundant. Avoid emitting them & allow the compiler to optimise out the EVA userspace code in such kernels by checking config_enabled(CONFIG_EVA). This reduces the size of a malta_defconfig kernel built using GCC 4.9.2 by approximately 33KB (from 5995072 to 5962304 bytes). Signed-off-by: Paul Burton Cc: Markos Chandras Cc: Ralf Baechle Cc: linux-kernel@vger.kernel.org Cc: linux-mips@linux-mips.org Patchwork: http://patchwork.linux-mips.org/patch/10165/ Signed-off-by: Ralf Baechle arch/mips/include/asm/uaccess.h | 47 +++++++++++++++++++++++++++-------------- 1 file changed, 31 insertions(+), 16 deletions(-) commit df115f3ee9ea703e1209392cd08f8d6783244721 Author: Ben Hutchings Date: Mon May 25 20:27:29 2015 +0100 MIPS: Octeon: Set OHCI and EHCI MMIO byte order to match CPU The Octeon OHCI is now supported by the ohci-platform driver, and USB_OCTEON_OHCI is marked as deprecated. However, it is currently still necessary to enable it in order to select USB_OHCI_BIG_ENDIAN_MMIO. Make CPU_CAVIUM_OCTEON select that as well, so that USB_OCTEON_OHCI is really obsolete. The old ohci-octeon and ehci-octeon drivers also only enabled big-endian MMIO in case the CPU was big-endian. Make the selections of USB_EHCI_BIG_ENDIAN_MMIO and USB_OHCI_BIG_ENDIAN_MMIO conditional, to match this. Fixes: 2193dda5eec6 ("USB: host: Remove ehci-octeon and ohci-octeon drivers") Signed-off-by: Ben Hutchings Cc: Alan Stern Cc: linux-mips@linux-mips.org Cc: David Daney Cc: Chandrakala Chavva Cc: Paul Martin Patchwork: https://patchwork.linux-mips.org/patch/10178/ Signed-off-by: Ralf Baechle arch/mips/Kconfig | 3 ++- drivers/usb/host/Kconfig | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) commit ca668a2da4687f23e65ce630742b6784a5fca595 Author: Jonas Gorski Date: Sun Apr 12 12:25:01 2015 +0200 MIPS: BMIPS: Accept UHI interface for passing a dtb Detect and use passed dtb address using the UHI interface. This allows for booting with a vmlinux.bin appended dtb instead of using a built-in one. Signed-off-by: Jonas Gorski Cc: linux-mips@linux-mips.org Cc: devicetree@vger.kernel.org Cc: John Crispin Cc: Kevin Cernekee Cc: Florian Fainelli Cc: Aaro Koskinen Cc: Markos Chandras Cc: Andrew Bresticker Cc: Daniel Schwierzeck Cc: Paul Burton Cc: James Hartley Patchwork: https://patchwork.linux-mips.org/patch/9742/ Signed-off-by: Ralf Baechle arch/mips/bmips/setup.c | 2 ++ 1 file changed, 2 insertions(+) commit 0e12f4a3ab52f8be48c5ebbc556f53acb1afb280 Author: Jonas Gorski Date: Sun Apr 12 12:25:00 2015 +0200 MIPS: BMIPS: Build all dtbs if no builtin dtb Build all available dtbs to allow them to be appended to the resulting kernel in case there is no builtin dtb. Signed-off-by: Jonas Gorski Cc: linux-mips@linux-mips.org Cc: devicetree@vger.kernel.org Cc: John Crispin Cc: Kevin Cernekee Cc: Florian Fainelli Cc: Aaro Koskinen Cc: Markos Chandras Cc: Andrew Bresticker Cc: Daniel Schwierzeck Cc: Paul Burton Cc: James Hartley Patchwork: https://patchwork.linux-mips.org/patch/9740/ Signed-off-by: Ralf Baechle arch/mips/boot/dts/brcm/Makefile | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit c0b4e101443c637f3e57d4263c5af4e2a0afa867 Author: Jonas Gorski Date: Sun Apr 12 12:24:59 2015 +0200 MIPS: Add support for vmlinuz.bin appended dtb Add support for detecting a vmlinuz.bin appended dtb and overriding the boot arguments to match the UHI interface. To ensure _edata / __apendend_dtb points to the actual end of the binary, align the data section to 16 bytes instead of the address cursor. Due to ld.script not going through the preprocessor, we can't check for MIPS_ZBOOT_APPENDED_DTB being enabled, so always reserve space for it. It should have no consequences for booting without it enabled except 1 MiB more ram usage during the uncompressing stage. Signed-off-by: Jonas Gorski Cc: linux-mips@linux-mips.org Cc: devicetree@vger.kernel.org Cc: John Crispin Cc: Kevin Cernekee Cc: Florian Fainelli Cc: Aaro Koskinen Cc: Markos Chandras Cc: Andrew Bresticker Cc: Daniel Schwierzeck Cc: Paul Burton Cc: James Hartley Patchwork: https://patchwork.linux-mips.org/patch/9741/ Signed-off-by: Ralf Baechle arch/mips/Kconfig | 18 ++++++++++++++++++ arch/mips/boot/compressed/head.S | 16 ++++++++++++++++ arch/mips/boot/compressed/ld.script | 6 +++++- 3 files changed, 39 insertions(+), 1 deletion(-) commit 1da8f1798e307fb8422753984339beb00025f97d Author: Jonas Gorski Date: Sun Apr 12 12:24:58 2015 +0200 MIPS: Add support for vmlinux.bin appended dtb Add support for detecting a vmlinux.bin appended dtb and overriding the boot arguments to match the UHI interface. Due to the PERCPU section being empty for !SMP, but still modifying the current address by aligning it to the page size, do not define it for !SMP builds to allow __appended_dtb to still point to the actual end of the data. Signed-off-by: Jonas Gorski Cc: linux-mips@linux-mips.org Cc: devicetree@vger.kernel.org Cc: John Crispin Cc: Kevin Cernekee Cc: Florian Fainelli Cc: Aaro Koskinen Cc: Markos Chandras Cc: Andrew Bresticker Cc: Daniel Schwierzeck Cc: Paul Burton Cc: James Hartley Patchwork: https://patchwork.linux-mips.org/patch/9739/ Signed-off-by: Ralf Baechle arch/mips/Kconfig | 27 +++++++++++++++++++++++++++ arch/mips/kernel/head.S | 16 ++++++++++++++++ arch/mips/kernel/vmlinux.lds.S | 8 +++++++- 3 files changed, 50 insertions(+), 1 deletion(-) commit 01306aeadd75f8202bbeb66bf3da56b431364519 Author: Rob Herring Date: Tue Jun 2 17:46:42 2015 -0500 MIPS: prepare for user enabling of CONFIG_OF In preparation to allow users to enable DeviceTree without arch or machine selecting it, we need to fix build errors on MIPS. When CONFIG_OF is enabled, device_tree_init cannot be resolved. This is trivially fixed by using CONFIG_USE_OF instead of CONFIG_OF for prom.h. Signed-off-by: Rob Herring Cc: Ralf Baechle Cc: linux-mips@linux-mips.org Signed-off-by: Ralf Baechle arch/mips/include/asm/prom.h | 2 +- arch/mips/kernel/prom.c | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) commit 8d5ded16ee7564736b82c2eae89ba0173b45f157 Author: Joshua Kinard Date: Tue Jun 2 18:21:33 2015 -0400 MIPS: R12000: Enable branch prediction global history The R12000 added a new feature to enhance branch prediction called "global history". Per the Vr10000 Series User Manual (U10278EJ4V0UM), Coprocessor 0, Diagnostic Register (22): """ If bit 26 is set, branch prediction uses all eight bits of the global history register. If bit 26 is not set, then bits 25:23 specify a count of the number of bits of global history to be used. Thus if bits 26:23 are all zero, global history is disabled. The global history contains a record of the taken/not-taken status of recently executed branches, and when used is XOR'ed with the PC of a branch being predicted to produce a hashed value for indexing the BPT. Some programs with small "working set of conditional branches" benefit significantly from the use of such hashing, some see slight performance degradation. """ This patch enables global history on R12000 CPUs and up by setting bit 26 in the branch prediction diagnostic register (CP0 $22) to '1'. Bits 25:23 are left alone so that all eight bits of the global history register are available for branch prediction. Signed-off-by: Joshua Kinard 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 | 13 +++++++++++++ arch/mips/kernel/cpu-probe.c | 8 ++++++-- 4 files changed, 23 insertions(+), 2 deletions(-) commit 0ebb2f4159af24dd4143c8e38a10caa13ddba0c9 Author: Joshua Kinard Date: Tue Jun 2 18:03:31 2015 -0400 MIPS: IP27: Update/restructure CPU overrides Inspired by Maciej's recent patch to update DEC cpu-feature-overrides.h, I updated IP27's as well to disable features known to not apply to the IP27 platform or the R10K-series of CPUs. Before: text data bss dec hex filename 8616648 463200 472240 9552088 91c0d8 vmlinux After: text data bss dec hex filename 8592256 471392 472240 9535888 918190 vmlinux I believe the increase in the size of the data section is for the same reasons as in the DEC patch. Signed-off-by: Joshua Kinard Cc: linux-mips@linux-mips.org Signed-off-by: Ralf Baechle .../include/asm/mach-ip27/cpu-feature-overrides.h | 92 ++++++++++++++-------- 1 file changed, 57 insertions(+), 35 deletions(-) commit 85cc028817ef3f16880e8a9d65f64ca5a0192970 Author: Paul Gortmaker Date: Tue Jun 2 16:16:07 2015 -0400 mips: make loongsoon serial driver explicitly modular The file looks as if it is non-modular, but it piggy-backs off CONFIG_SERIAL_8250 which is tristate. If set to "=m" we will get this after the init/module header cleanup: arch/mips/loongson/common/serial.c:76:1: error: data definition has no type or storage class [-Werror] arch/mips/loongson/common/serial.c:76:1: error: type defaults to 'int' in declaration of 'device_initcall' [-Werror=implicit-int] arch/mips/loongson/common/serial.c:76:1: error: parameter names (without types) in function declaration [-Werror] arch/mips/loongson/common/serial.c:58:19: error: 'serial_init' defined but not used [-Werror=unused-function] cc1: all warnings being treated as errors make[3]: *** [arch/mips/loongson/common/serial.o] Error 1 Make it clearly modular, and add a module_exit function, so that we avoid the above breakage. Reported-by: kbuild test robot Cc: Ralf Baechle Cc: linux-mips@linux-mips.org Signed-off-by: Paul Gortmaker Signed-off-by: Ralf Baechle arch/mips/loongson64/common/serial.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit 52ea7bff5ddc3f534aef28b7a20b9b11bf9a4df0 Author: Sergei Shtylyov Date: Mon Jun 1 00:40:32 2015 +0300 MIPS: Get rid of 'kgdb_early_setup' cruft. Commit 854700115ecf ([MIPS] kgdb: add arch support for the kernel's kgdb core) added the 'kgdb_early_setup' flag to avoid calling trap_init() and init_IRQ() the second time, however the code that called these functions earlier, from kgdb_arch_init(), had been already removed by that time, so the flag never served any useful purpose. Remove the related code along with ugly #ifdef'ery at last. [ralf@linux-mips.org: Folded in Guenter Roeck's fix.] Signed-off-by: Sergei Shtylyov Patchwork: https://patchwork.linux-mips.org/patch/10501/ Signed-off-by: Guenter Roeck Patchwork: https://patchwork.linux-mips.org/patch/10533/ Signed-off-by: Ralf Baechle arch/mips/include/asm/kgdb.h | 1 - arch/mips/kernel/irq.c | 14 -------------- arch/mips/kernel/kgdb.c | 4 ---- arch/mips/kernel/traps.c | 5 ----- 4 files changed, 24 deletions(-) commit a5fcc6522fd43acba09aa9ffca09872aaf02cd5e Author: Alban Bedel Date: Sun May 31 02:18:26 2015 +0200 MIPS: Add basic support for the TL-WR1043ND version 1 Add a DTS for TL-WR1043ND version 1 and allow to have it built in the kernel to circumvent the broken u-boot found on these boards. Currently only the UART, LEDs and buttons are supported. Signed-off-by: Alban Bedel Cc: linux-mips@linux-mips.org Signed-off-by: Ralf Baechle arch/mips/ath79/Kconfig | 12 ++ arch/mips/boot/dts/Makefile | 1 + arch/mips/boot/dts/qca/Makefile | 11 ++ arch/mips/boot/dts/qca/ar9132.dtsi | 133 +++++++++++++++++++++++ arch/mips/boot/dts/qca/ar9132_tl_wr1043nd_v1.dts | 112 +++++++++++++++++++ 5 files changed, 269 insertions(+) commit 9db8e9bc047beecf4a33fad22964419f10332fcb Author: Alban Bedel Date: Sun May 31 02:18:25 2015 +0200 OF: Add vendor prefix for TP-Link Technologies Co. Ltd Signed-off-by: Alban Bedel Cc: linux-mips@linux-mips.org Signed-off-by: Ralf Baechle Documentation/devicetree/bindings/vendor-prefixes.txt | 1 + 1 file changed, 1 insertion(+) commit 2ddf3a792218cddd30140b1f8b32cb6e2d67921f Author: Alban Bedel Date: Sun May 31 02:18:24 2015 +0200 MIPS: ath79: Add OF support to the GPIO driver Replace the simple GPIO chip registration by a platform driver and make ath79_gpio_init() just register the device. Signed-off-by: Alban Bedel Cc: linux-mips@linux-mips.org Signed-off-by: Ralf Baechle arch/mips/ath79/dev-common.c | 51 +++++++++++++++++++++ arch/mips/ath79/gpio.c | 79 +++++++++++++++++++++++--------- include/linux/platform_data/gpio-ath79.h | 19 ++++++++ 3 files changed, 127 insertions(+), 22 deletions(-) commit d6743a496cfdd84375c7798cfc3dd0e1aeb4ca6d Author: Alban Bedel Date: Sun May 31 02:18:23 2015 +0200 DEVICETREE: Add bindings for the ATH79 GPIO controllers These bindings support the GPIO controllers found on the Qualcomm Atheros AR7xxx/AR9XXX SoC. Signed-off-by: Alban Bedel Cc: linux-mips@linux-mips.org Signed-off-by: Ralf Baechle .../devicetree/bindings/gpio/gpio-ath79.txt | 38 ++++++++++++++++++++++ 1 file changed, 38 insertions(+) commit 6451af0220a538334155261b562776f266fe5f8f Author: Alban Bedel Date: Sun May 31 02:18:22 2015 +0200 MIPS: ath79: Add OF support to the clocks Allow using the SoC clocks in the device tree. Signed-off-by: Alban Bedel Cc: linux-mips@linux-mips.org Signed-off-by: Ralf Baechle arch/mips/ath79/clock.c | 63 ++++++++++++++++++++++++++++++++++--------------- 1 file changed, 44 insertions(+), 19 deletions(-) commit 44fad3323833624941b99dafd982978e1742dd53 Author: Alban Bedel Date: Sun May 31 01:52:30 2015 +0200 DEVICETREE: Add bindings for the ATH79 PLL controllers Signed-off-by: Alban Bedel Cc: linux-mips@linux-mips.org Signed-off-by: Ralf Baechle .../devicetree/bindings/clock/qca,ath79-pll.txt | 33 ++++++++++++++++++++++ 1 file changed, 33 insertions(+) commit b29e8b87d58904e3d6bacba411557b7353f8a1a0 Author: Alban Bedel Date: Sun May 31 01:52:29 2015 +0200 MIPS: ath79: Add OF support to the IRQ controllers Add OF support for the CPU and MISC interrupt controllers of most supported ATH79 devices. Signed-off-by: Alban Bedel Cc: linux-mips@linux-mips.org Signed-off-by: Ralf Baechle arch/mips/ath79/irq.c | 87 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 86 insertions(+), 1 deletion(-) commit bb35586fd07447515deaa774c0aa07cdfa4d4743 Author: Alban Bedel Date: Sun May 31 01:52:28 2015 +0200 DEVICETREE: Add bindings for the ATH79 MISC interrupt controllers Signed-off-by: Alban Bedel Cc: linux-mips@linux-mips.org Signed-off-by: Ralf Baechle .../interrupt-controller/qca,ath79-misc-intc.txt | 30 ++++++++++++++++++++++ 1 file changed, 30 insertions(+) commit 0fa4af8f53d0d2149b75d1e00a395c63922495fb Author: Alban Bedel Date: Sun May 31 01:52:27 2015 +0200 DEVICETREE: Add bindings for the ATH79 interrupt controllers Signed-off-by: Alban Bedel Cc: linux-mips@linux-mips.org Signed-off-by: Ralf Baechle .../interrupt-controller/qca,ath79-cpu-intc.txt | 44 ++++++++++++++++++++++ 1 file changed, 44 insertions(+) commit d25b4f65bf7608ba7f59d3f0251ea57e34b74238 Author: Alban Bedel Date: Sun May 31 01:52:26 2015 +0200 DEVICETREE: Add bindings for the ATH79 DDR controllers The DDR controller of the ARxxx and AR9xxx families provides an interface to flush the FIFO between various devices and the DDR. This is mainly used by the IRQ controller to flush the FIFO before running the interrupt handler of such devices. Signed-off-by: Alban Bedel Cc: linux-mips@linux-mips.org Signed-off-by: Ralf Baechle .../memory-controllers/ath79-ddr-controller.txt | 35 ++++++++++++++++++++++ 1 file changed, 35 insertions(+) commit 03c8c407a8c9ba1772ea7c086b7a0f7bceecdb65 Author: Alban Bedel Date: Sun May 31 01:52:25 2015 +0200 MIPS: ath79: Add basic device tree support Add the bare minimum to load a device tree. Signed-off-by: Alban Bedel Cc: linux-mips@linux-mips.org Signed-off-by: Ralf Baechle arch/mips/Kconfig | 1 + arch/mips/ath79/machtypes.h | 1 + arch/mips/ath79/setup.c | 27 ++++++++++++++++++++++++++- 3 files changed, 28 insertions(+), 1 deletion(-) commit fe41b466f9f4c45b3368dee4a50d7c77ae7f37f9 Author: Alban Bedel Date: Sun May 31 01:52:24 2015 +0200 DEVICETREE: Add bindings for the SoC of the ATH79 family Signed-off-by: Alban Bedel Cc: linux-mips@linux-mips.org Signed-off-by: Ralf Baechle .../devicetree/bindings/mips/ath79-soc.txt | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) commit 55cab93bcf1422ab4298edc65c349c4304b4884e Author: Hante Meuleman Date: Thu May 21 15:27:23 2015 +0200 mips: bcm47xx: allow retrieval of complete nvram contents Host platforms such as routers supported by OpenWrt can support NVRAM reading directly from internal NVRAM store. The brcmfmac for one requires the complete nvram contents to select what needs to be sent to wireless device. Signed-off-by: Arend van Spriel Signed-off-by: Hante Meuleman Reviewed-by: Arend Van Spriel Reviewed-by: Franky (Zhenhui) Lin Reviewed-by: Pieter-Paul Giesberts Reviewed-by: Daniel (Deognyoun) Kim Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10093/ Signed-off-by: Ralf Baechle arch/mips/bcm47xx/nvram.c | 60 ++++++++++++++++++++++++++++++++----------- include/linux/bcm47xx_nvram.h | 15 +++++++++++ 2 files changed, 60 insertions(+), 15 deletions(-) commit 30ad29bb48881ee11f5daf30c6fc50292ae08c57 Author: Huacai Chen Date: Tue Apr 21 10:00:35 2015 +0800 MIPS: Loongson: Naming style cleanup and rework Currently, code of Loongson-2/3 is under loongson directory and code of Loongson-1 is under loongson1 directory. Besides, there are Kconfig options such as MACH_LOONGSON and MACH_LOONGSON1. This naming style is very ugly and confusing. Since Loongson-2/3 are both 64-bit general- purpose CPU while Loongson-1 is 32-bit SoC, we rename both file names and Kconfig symbols from loongson/loongson1 to loongson64/loongson32. [ralf@linux-mips.org: Resolve a number of simple conflicts.] Signed-off-by: Huacai Chen Cc: Steven J. Hill Cc: linux-mips@linux-mips.org Cc: Fuxin Zhang Cc: Zhangjin Wu Cc: Kelvin Cheung Patchwork: https://patchwork.linux-mips.org/patch/9790/ Signed-off-by: Ralf Baechle arch/mips/Kbuild.platforms | 4 +- arch/mips/Kconfig | 34 +- arch/mips/boot/compressed/uart-16550.c | 2 +- arch/mips/configs/fuloong2e_defconfig | 2 +- arch/mips/configs/lemote2f_defconfig | 2 +- arch/mips/configs/loongson3_defconfig | 2 +- arch/mips/configs/ls1b_defconfig | 2 +- arch/mips/include/asm/mach-loongson/boot_param.h | 210 ------- .../asm/mach-loongson/cpu-feature-overrides.h | 61 -- .../mips/include/asm/mach-loongson/cs5536/cs5536.h | 305 ---------- .../asm/mach-loongson/cs5536/cs5536_mfgpt.h | 35 -- .../include/asm/mach-loongson/cs5536/cs5536_pci.h | 153 ----- .../include/asm/mach-loongson/cs5536/cs5536_vsm.h | 31 - .../mips/include/asm/mach-loongson/dma-coherence.h | 85 --- arch/mips/include/asm/mach-loongson/gpio.h | 36 -- arch/mips/include/asm/mach-loongson/irq.h | 43 -- .../include/asm/mach-loongson/kernel-entry-init.h | 52 -- arch/mips/include/asm/mach-loongson/loongson.h | 360 ------------ .../include/asm/mach-loongson/loongson_hwmon.h | 55 -- arch/mips/include/asm/mach-loongson/machine.h | 33 -- arch/mips/include/asm/mach-loongson/mc146818rtc.h | 36 -- arch/mips/include/asm/mach-loongson/mem.h | 41 -- arch/mips/include/asm/mach-loongson/mmzone.h | 53 -- arch/mips/include/asm/mach-loongson/pci.h | 55 -- arch/mips/include/asm/mach-loongson/spaces.h | 9 - arch/mips/include/asm/mach-loongson/topology.h | 23 - arch/mips/include/asm/mach-loongson/workarounds.h | 7 - arch/mips/include/asm/mach-loongson1/cpufreq.h | 23 - arch/mips/include/asm/mach-loongson1/irq.h | 73 --- arch/mips/include/asm/mach-loongson1/loongson1.h | 50 -- arch/mips/include/asm/mach-loongson1/platform.h | 26 - arch/mips/include/asm/mach-loongson1/prom.h | 24 - arch/mips/include/asm/mach-loongson1/regs-clk.h | 51 -- arch/mips/include/asm/mach-loongson1/regs-mux.h | 67 --- arch/mips/include/asm/mach-loongson1/regs-pwm.h | 29 - arch/mips/include/asm/mach-loongson1/regs-wdt.h | 19 - arch/mips/include/asm/mach-loongson32/cpufreq.h | 23 + arch/mips/include/asm/mach-loongson32/irq.h | 73 +++ arch/mips/include/asm/mach-loongson32/loongson1.h | 50 ++ arch/mips/include/asm/mach-loongson32/platform.h | 26 + arch/mips/include/asm/mach-loongson32/prom.h | 24 + arch/mips/include/asm/mach-loongson32/regs-clk.h | 51 ++ arch/mips/include/asm/mach-loongson32/regs-mux.h | 67 +++ arch/mips/include/asm/mach-loongson32/regs-pwm.h | 29 + arch/mips/include/asm/mach-loongson32/regs-wdt.h | 19 + arch/mips/include/asm/mach-loongson64/boot_param.h | 210 +++++++ .../asm/mach-loongson64/cpu-feature-overrides.h | 61 ++ .../include/asm/mach-loongson64/cs5536/cs5536.h | 305 ++++++++++ .../asm/mach-loongson64/cs5536/cs5536_mfgpt.h | 35 ++ .../asm/mach-loongson64/cs5536/cs5536_pci.h | 153 +++++ .../asm/mach-loongson64/cs5536/cs5536_vsm.h | 31 + .../include/asm/mach-loongson64/dma-coherence.h | 85 +++ arch/mips/include/asm/mach-loongson64/gpio.h | 36 ++ arch/mips/include/asm/mach-loongson64/irq.h | 43 ++ .../asm/mach-loongson64/kernel-entry-init.h | 52 ++ arch/mips/include/asm/mach-loongson64/loongson.h | 360 ++++++++++++ .../include/asm/mach-loongson64/loongson_hwmon.h | 55 ++ arch/mips/include/asm/mach-loongson64/machine.h | 33 ++ .../mips/include/asm/mach-loongson64/mc146818rtc.h | 36 ++ arch/mips/include/asm/mach-loongson64/mem.h | 41 ++ arch/mips/include/asm/mach-loongson64/mmzone.h | 53 ++ arch/mips/include/asm/mach-loongson64/pci.h | 55 ++ arch/mips/include/asm/mach-loongson64/spaces.h | 9 + arch/mips/include/asm/mach-loongson64/topology.h | 23 + .../mips/include/asm/mach-loongson64/workarounds.h | 7 + arch/mips/loongson/Kconfig | 158 ----- arch/mips/loongson/Makefile | 23 - arch/mips/loongson/Platform | 33 -- arch/mips/loongson/common/Makefile | 31 - arch/mips/loongson/common/bonito-irq.c | 53 -- arch/mips/loongson/common/cmdline.c | 48 -- arch/mips/loongson/common/cs5536/Makefile | 11 - arch/mips/loongson/common/cs5536/cs5536_acc.c | 140 ----- arch/mips/loongson/common/cs5536/cs5536_ehci.c | 160 ----- arch/mips/loongson/common/cs5536/cs5536_ide.c | 192 ------ arch/mips/loongson/common/cs5536/cs5536_isa.c | 330 ----------- arch/mips/loongson/common/cs5536/cs5536_mfgpt.c | 213 ------- arch/mips/loongson/common/cs5536/cs5536_ohci.c | 149 ----- arch/mips/loongson/common/cs5536/cs5536_pci.c | 88 --- arch/mips/loongson/common/dma-swiotlb.c | 150 ----- arch/mips/loongson/common/early_printk.c | 41 -- arch/mips/loongson/common/env.c | 200 ------- arch/mips/loongson/common/init.c | 47 -- arch/mips/loongson/common/irq.c | 67 --- arch/mips/loongson/common/machtype.c | 67 --- arch/mips/loongson/common/mem.c | 161 ----- arch/mips/loongson/common/pci.c | 101 ---- arch/mips/loongson/common/platform.c | 31 - arch/mips/loongson/common/pm.c | 161 ----- arch/mips/loongson/common/reset.c | 92 --- arch/mips/loongson/common/rtc.c | 43 -- arch/mips/loongson/common/serial.c | 112 ---- arch/mips/loongson/common/setup.c | 54 -- arch/mips/loongson/common/time.c | 36 -- arch/mips/loongson/common/uart_base.c | 50 -- arch/mips/loongson/fuloong-2e/Makefile | 5 - arch/mips/loongson/fuloong-2e/irq.c | 69 --- arch/mips/loongson/fuloong-2e/reset.c | 23 - arch/mips/loongson/lemote-2f/Makefile | 11 - arch/mips/loongson/lemote-2f/clock.c | 140 ----- arch/mips/loongson/lemote-2f/ec_kb3310b.c | 128 ---- arch/mips/loongson/lemote-2f/ec_kb3310b.h | 188 ------ arch/mips/loongson/lemote-2f/irq.c | 129 ---- arch/mips/loongson/lemote-2f/machtype.c | 45 -- arch/mips/loongson/lemote-2f/pm.c | 149 ----- arch/mips/loongson/lemote-2f/reset.c | 159 ----- arch/mips/loongson/loongson-3/Makefile | 10 - arch/mips/loongson/loongson-3/cop2-ex.c | 63 -- arch/mips/loongson/loongson-3/hpet.c | 257 -------- arch/mips/loongson/loongson-3/irq.c | 143 ----- arch/mips/loongson/loongson-3/numa.c | 296 ---------- arch/mips/loongson/loongson-3/platform.c | 43 -- arch/mips/loongson/loongson-3/smp.c | 652 --------------------- arch/mips/loongson/loongson-3/smp.h | 30 - arch/mips/loongson1/Kconfig | 61 -- arch/mips/loongson1/Makefile | 11 - arch/mips/loongson1/Platform | 7 - arch/mips/loongson1/common/Makefile | 5 - arch/mips/loongson1/common/irq.c | 147 ----- arch/mips/loongson1/common/platform.c | 234 -------- arch/mips/loongson1/common/prom.c | 83 --- arch/mips/loongson1/common/reset.c | 54 -- arch/mips/loongson1/common/setup.c | 29 - arch/mips/loongson1/common/time.c | 226 ------- arch/mips/loongson1/ls1b/Makefile | 5 - arch/mips/loongson1/ls1b/board.c | 32 - arch/mips/loongson32/Kconfig | 61 ++ arch/mips/loongson32/Makefile | 11 + arch/mips/loongson32/Platform | 7 + arch/mips/loongson32/common/Makefile | 5 + arch/mips/loongson32/common/irq.c | 147 +++++ arch/mips/loongson32/common/platform.c | 234 ++++++++ arch/mips/loongson32/common/prom.c | 83 +++ arch/mips/loongson32/common/reset.c | 54 ++ arch/mips/loongson32/common/setup.c | 29 + arch/mips/loongson32/common/time.c | 226 +++++++ arch/mips/loongson32/ls1b/Makefile | 5 + arch/mips/loongson32/ls1b/board.c | 32 + arch/mips/loongson64/Kconfig | 158 +++++ arch/mips/loongson64/Makefile | 23 + arch/mips/loongson64/Platform | 33 ++ arch/mips/loongson64/common/Makefile | 31 + arch/mips/loongson64/common/bonito-irq.c | 53 ++ arch/mips/loongson64/common/cmdline.c | 48 ++ arch/mips/loongson64/common/cs5536/Makefile | 11 + arch/mips/loongson64/common/cs5536/cs5536_acc.c | 140 +++++ arch/mips/loongson64/common/cs5536/cs5536_ehci.c | 160 +++++ arch/mips/loongson64/common/cs5536/cs5536_ide.c | 192 ++++++ arch/mips/loongson64/common/cs5536/cs5536_isa.c | 330 +++++++++++ arch/mips/loongson64/common/cs5536/cs5536_mfgpt.c | 213 +++++++ arch/mips/loongson64/common/cs5536/cs5536_ohci.c | 149 +++++ arch/mips/loongson64/common/cs5536/cs5536_pci.c | 88 +++ arch/mips/loongson64/common/dma-swiotlb.c | 150 +++++ arch/mips/loongson64/common/early_printk.c | 41 ++ arch/mips/loongson64/common/env.c | 200 +++++++ arch/mips/loongson64/common/init.c | 47 ++ arch/mips/loongson64/common/irq.c | 67 +++ arch/mips/loongson64/common/machtype.c | 67 +++ arch/mips/loongson64/common/mem.c | 161 +++++ arch/mips/loongson64/common/pci.c | 101 ++++ arch/mips/loongson64/common/platform.c | 31 + arch/mips/loongson64/common/pm.c | 161 +++++ arch/mips/loongson64/common/reset.c | 92 +++ arch/mips/loongson64/common/rtc.c | 43 ++ arch/mips/loongson64/common/serial.c | 112 ++++ arch/mips/loongson64/common/setup.c | 54 ++ arch/mips/loongson64/common/time.c | 36 ++ arch/mips/loongson64/common/uart_base.c | 50 ++ arch/mips/loongson64/fuloong-2e/Makefile | 5 + arch/mips/loongson64/fuloong-2e/irq.c | 69 +++ arch/mips/loongson64/fuloong-2e/reset.c | 23 + arch/mips/loongson64/lemote-2f/Makefile | 11 + arch/mips/loongson64/lemote-2f/clock.c | 140 +++++ arch/mips/loongson64/lemote-2f/ec_kb3310b.c | 128 ++++ arch/mips/loongson64/lemote-2f/ec_kb3310b.h | 188 ++++++ arch/mips/loongson64/lemote-2f/irq.c | 129 ++++ arch/mips/loongson64/lemote-2f/machtype.c | 45 ++ arch/mips/loongson64/lemote-2f/pm.c | 149 +++++ arch/mips/loongson64/lemote-2f/reset.c | 159 +++++ arch/mips/loongson64/loongson-3/Makefile | 10 + arch/mips/loongson64/loongson-3/cop2-ex.c | 63 ++ arch/mips/loongson64/loongson-3/hpet.c | 257 ++++++++ arch/mips/loongson64/loongson-3/irq.c | 143 +++++ arch/mips/loongson64/loongson-3/numa.c | 296 ++++++++++ arch/mips/loongson64/loongson-3/platform.c | 43 ++ arch/mips/loongson64/loongson-3/smp.c | 652 +++++++++++++++++++++ arch/mips/loongson64/loongson-3/smp.h | 30 + drivers/clk/Makefile | 2 +- drivers/cpufreq/ls1x-cpufreq.c | 4 +- drivers/rtc/Kconfig | 2 +- drivers/rtc/rtc-ls1x.c | 2 +- 191 files changed, 8551 insertions(+), 8549 deletions(-) commit abcc82b19fa9b4f41e02f28715005851b580163d Author: James Hogan Date: Mon Apr 27 15:07:19 2015 +0100 MIPS: Malta: Select 32bit DMA zone for 64-bit kernels Enable the 32-bit DMA zone for 64-bit Malta kernels so that devices with 32-bit coherent DMA masks aren't constrained to the low 16MB DMA zone, which can easily be exhausted when there is lots of static kernel data due to lock and RCU debugging. Signed-off-by: James Hogan Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/9890/ Signed-off-by: Ralf Baechle arch/mips/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 8fe4908b837e848efd95c2a1210ec67d48fbe874 Author: James Hogan Date: Mon Apr 27 15:07:18 2015 +0100 MIPS: tlbex: Avoid unnecessary _PAGE_PRESENT shifts Commit c5b367835cfc ("MIPS: Add support for XPA.") added generation of a shift by _PAGE_PRESENT_SHIFT in build_pte_present() and build_pte_writable(), however except for the XPA case this is always zero making it unnecessary. Make the shift conditional upon _PAGE_PRESENT_SHIFT being non-zero to save an instruction in those cases. Fixes: c5b367835cfc ("MIPS: Add support for XPA.") Signed-off-by: James Hogan Cc: Steven J. Hill Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/9889/ Signed-off-by: Ralf Baechle arch/mips/mm/tlbex.c | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) commit a3ae565a130a4f34f4a3f45f72c2e8fd8b402b8c Author: James Hogan Date: Mon Apr 27 15:07:17 2015 +0100 MIPS: tlbex: Fix broken offsets on r2 without XPA Commit c5b367835cfc ("MIPS: Add support for XPA.") changed build_pte_present() and build_pte_writable() to assume a constant offset of _PAGE_READ and _PAGE_WRITE relative to _PAGE_PRESENT, however this is no longer true for some MIPS32R2 builds since commit be0c37c985ed ("MIPS: Rearrange PTE bits into fixed positions.") which moved the _PAGE_READ PTE bit away from the _PAGE_PRESENT bit, with the _PAGE_WRITE bit falling into its place. Make use of the _PAGE_READ and _PAGE_WRITE definitions to calculate the correct mask to apply instead of hard coding 3 (for _PAGE_PRESENT | _PAGE_READ) or 5 (for _PAGE_PRESENT | _PAGE_WRITE). Fixes: c5b367835cfc ("MIPS: Add support for XPA.") Signed-off-by: James Hogan Cc: Steven J. Hill Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/9888/ Signed-off-by: Ralf Baechle arch/mips/mm/tlbex.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 8e748c8d09a9314eedb5c6367d9acfaacddcdc88 Author: James Hogan Date: Mon Apr 27 15:07:16 2015 +0100 MIPS: Fix KVM guest fixmap address KVM guest kernels for trap & emulate run in user mode, with a modified set of kernel memory segments. However the fixmap address is still in the normal KSeg3 region at 0xfffe0000 regardless, causing problems when cache alias handling makes use of them when handling copy on write. Therefore define FIXADDR_TOP as 0x7ffe0000 in the guest kernel mapped region when CONFIG_KVM_GUEST is defined. Signed-off-by: James Hogan Cc: linux-mips@linux-mips.org Cc: # v3.10+ Patchwork: https://patchwork.linux-mips.org/patch/9887/ Signed-off-by: Ralf Baechle arch/mips/include/asm/mach-generic/spaces.h | 4 ++++ 1 file changed, 4 insertions(+) commit 24f2970fd32134ff8eb3387a54a1ef7ccac3f28f Author: Dan Haab Date: Wed Apr 22 13:58:33 2015 -0600 MIPS: BCM47XX: Support Luxul XWR-1750 board Signed-off-by: Dan Haab Acked-by: Rafał Miłecki Cc: linux-mips@linux-mips.org Cc: Hauke Mehrtens Cc: Dan Haab Patchwork: https://patchwork.linux-mips.org/patch/9831/ Signed-off-by: Ralf Baechle arch/mips/bcm47xx/board.c | 1 + arch/mips/bcm47xx/buttons.c | 11 +++++++++++ arch/mips/bcm47xx/leds.c | 14 ++++++++++++++ arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h | 2 ++ 4 files changed, 28 insertions(+) commit 411520af8ec9456886359b42628e583ac58e7e44 Author: Alban Bedel Date: Sun Apr 19 14:30:04 2015 +0200 MIPS: ath79: Use the common clk API Make the code simpler and open the way for device tree clocks. [ralf@linux-mips.org: Resolved conflict with 2a552da6 (MIPS/IRQCHIP: Move irq_chip from arch/mips to drivers/irqchip.)] Signed-off-by: Alban Bedel Cc: linux-mips@linux-mips.org Cc: Andrew Bresticker Cc: Qais Yousef Cc: Wolfram Sang Cc: Sergey Ryazanov Cc: Gabor Juhos Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/9774/ Signed-off-by: Ralf Baechle arch/mips/Kconfig | 1 + arch/mips/ath79/clock.c | 29 ++--------------------------- 2 files changed, 3 insertions(+), 27 deletions(-) commit 24b0e3e84fbf460ea904f4eb85e414e6001c8f37 Author: Alban Bedel Date: Sun Apr 19 14:30:03 2015 +0200 MIPS: ath79: Improve the DDR controller interface The DDR controller need to be used by the IRQ controller to flush the write buffer of some devices before running the IRQ handler. It is also used by the PCI controller to setup the PCI memory windows. The current interface used to access the DDR controller doesn't provides any useful abstraction and simply rely on a shared global pointer. Replace this by a simple API to setup the PCI memory windows and use the write buffer flush independently of the SoC type. That remove the need for the shared global pointer, simplify the IRQ handler code. [ralf@linux-mips.org: Folded in Alban Bedel's follup fix.] Signed-off-by: Alban Bedel Cc: linux-mips@linux-mips.org Cc: Andrew Bresticker Cc: Qais Yousef Cc: Wolfram Sang Cc: Sergey Ryazanov Cc: Gabor Juhos Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/9773/ Patchwork: http://patchwork.linux-mips.org/patch/10543/ Signed-off-by: Ralf Baechle arch/mips/ath79/common.c | 35 +++++++- arch/mips/ath79/common.h | 1 + arch/mips/ath79/irq.c | 137 +++++++------------------------ arch/mips/ath79/setup.c | 3 +- arch/mips/include/asm/mach-ath79/ath79.h | 3 +- arch/mips/pci/pci-ar71xx.c | 12 +-- 6 files changed, 66 insertions(+), 125 deletions(-) commit 626a0695a6d98338063c528d113d9ee4ba00cd78 Author: Alban Bedel Date: Sun Apr 19 14:30:02 2015 +0200 MIPS: ath79: Correctly name the defines for the PLL_FB register This register is named PLL_FB and is not a divider but a multiplier. To make things less confusing rename the ARxxxx_PLL_DIV_SHIFT and ARxxxx_PLL_DIV_MASK macros to ARxxxx_PLL_FB_SHIFT and ARxxxx_PLL_FB_MASK. Signed-off-by: Alban Bedel Cc: linux-mips@linux-mips.org Cc: Andrew Bresticker Cc: Qais Yousef Cc: Wolfram Sang Cc: Sergey Ryazanov Cc: Gabor Juhos Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/9772/ Signed-off-by: Ralf Baechle arch/mips/ath79/clock.c | 6 +++--- arch/mips/include/asm/mach-ath79/ar71xx_regs.h | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) commit da628e8b8b824b15c75fbc6b3defed2ff38475fe Author: Alban Bedel Date: Sun Apr 19 14:30:00 2015 +0200 MIPS: ath79: Enable ZBOOT support ZBOOT is working fine, so allow using it. Signed-off-by: Alban Bedel Cc: linux-mips@linux-mips.org Cc: Andrew Bresticker Cc: Qais Yousef Cc: Wolfram Sang Cc: Sergey Ryazanov Cc: Gabor Juhos Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/9770/ Signed-off-by: Ralf Baechle arch/mips/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 25aae561373280ab0c18d81d0ef9301aee4f5988 Author: Jiang Liu Date: Wed May 20 17:59:51 2015 +0800 MIPS, IRQ: Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc while we already have a pointer to corresponding irq_desc. Signed-off-by: Jiang Liu Acked-by: Sergey Ryazanov Cc: Thomas Gleixner Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Ingo Molnar Cc: H. Peter Anvin Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Aleksey Makarov Cc: David Daney Cc: Christoph Lameter Cc: John Crispin Cc: Andrew Bresticker Cc: Konrad Rzeszutek Wilk Cc: Tony Luck Cc: x86@kernel.org Cc: linux-kernel@vger.kernel.org Cc: linux-pci@vger.kernel.org Cc: linux-acpi@vger.kernel.org Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10086/ Signed-off-by: Ralf Baechle arch/mips/ath25/ar2315.c | 2 +- arch/mips/ath25/ar5312.c | 2 +- arch/mips/cavium-octeon/octeon-irq.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 +- 8 files changed, 10 insertions(+), 8 deletions(-) commit 2e93f684088e00a9b4bb5cd1d1a622e2717de139 Author: Krzysztof Kozlowski Date: Tue Apr 28 13:46:23 2015 +0900 MIPS: Alchemy: Remove unneeded cast removing const Parent names in clock init data is now array of const pointers to const strings so the cast is not needed. Signed-off-by: Krzysztof Kozlowski Cc: Max Filippov Cc: Mike Turquette Cc: Stephen Boyd Cc: Heiko Stuebner Cc: Sylwester Nawrocki Cc: Tomasz Figa Cc: Kukjin Kim Cc: Barry Song Cc: Peter De Schrijver Cc: Prashant Gaikwad Cc: Stephen Warren Cc: Thierry Reding Cc: Alexandre Courbot Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Cc: linux-clk@vger.kernel.org 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: Chanwoo Choi Cc: Inki Dae Patchwork: https://patchwork.linux-mips.org/patch/9903 Signed-off-by: Ralf Baechle arch/mips/alchemy/common/clock.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit a2d25e63ee50e8a09056e206a27512e3ea85b480 Author: Paul Gortmaker Date: Mon Apr 27 18:47:59 2015 -0400 MIPS: tlbex.c: Remove new instance of __cpuinitdata that crept back in We removed __cpuinit support (leaving no-op stubs) quite some time ago. However a new instance was added in commit c5b367835cfc7a8ef53b9670a409ff ("MIPS: Add support for XPA.") Since we want to clobber the stubs soon, get this removed now. Signed-off-by: Paul Gortmaker Cc: Steven J. Hill Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/9894/ Signed-off-by: Ralf Baechle arch/mips/mm/tlbex.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9a8f4ea03462f2364a1b1a82af27672f2f366eaf Author: Paul Gortmaker Date: Mon Apr 27 18:47:57 2015 -0400 MIPS: c-r4k: Remove legacy __cpuinit section that crept in We removed __cpuinit support (leaving no-op stubs) quite some time ago. However a new instance was added in commit 4caa906ee949b7002cc1558bbe3744 ("MIPS: mm: c-r4k: Build EVA {d,i}cache flushing functions") Since we want to clobber the stubs soon, get this removed now. Signed-off-by: Paul Gortmaker Cc: Leonid Yegoshin Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/9893/ Signed-off-by: Ralf Baechle arch/mips/mm/c-r4k.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b1f7e1129097cdb5cf2d6ef5d365dc94d13e3c76 Author: Paul Gortmaker Date: Mon Apr 27 18:47:56 2015 -0400 MIPS: BCM77xx: Remove legacy __cpuinit{,data} sections that crept in We removed __cpuinit support (leaving no-op stubs) quite some time ago. However a few more crept in as of commit 6ee1d93455384cef8a0426effe85da2 ("MIPS: BCM47XX: Detect more then 128 MiB of RAM (HIGHMEM)") Since we want to clobber the stubs soon, get this removed now. Signed-off-by: Paul Gortmaker Cc: Rafał Miłecki Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/9892/ Signed-off-by: Ralf Baechle arch/mips/bcm47xx/prom.c | 2 +- arch/mips/include/asm/pgtable-32.h | 2 +- arch/mips/mm/tlb-r4k.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 361d0f78acf5051bf9adf9e4abc2206b33631b43 Author: Paul Gortmaker Date: Mon Apr 27 18:47:55 2015 -0400 MIPS: ATH25: Remove legacy __cpuinit section that crept in We removed __cpuinit support (leaving no-op stubs) quite some time ago. However this one crept back in as of commit 43cc739fd98b8c517ad45756d869f ("MIPS: ath25: add common parts") Since we want to clobber the stubs soon, get this removed now. Signed-off-by: Paul Gortmaker Acked-by: Sergey Ryazanov Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/9891/ Signed-off-by: Ralf Baechle arch/mips/ath25/board.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 644238ae81218f163e8e11cb98d15ad18596eb4b Author: Andrew Bresticker Date: Tue Apr 7 15:04:18 2015 -0700 MIPS: Pistachio: Enable USB PHY driver in defconfig Update pistachio_defconfig to enable Pistachio's USB PHY driver. Signed-off-by: Andrew Bresticker Cc: Kishon Vijay Abraham I Cc: devicetree@vger.kernel.org Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Cc: James Hartley Cc: Damien Horsley Patchwork: https://patchwork.linux-mips.org/patch/9729/ Signed-off-by: Ralf Baechle arch/mips/configs/pistachio_defconfig | 1 + 1 file changed, 1 insertion(+) commit 57991ebaf91b1eda2abb586618aea6806fa86724 Author: Andrew Bresticker Date: Tue Apr 7 15:04:17 2015 -0700 PHY: Add driver for Pistachio USB2.0 PHY Add a driver for the USB2.0 PHY found on the IMG Pistachio SoC. Signed-off-by: Andrew Bresticker Cc: Kishon Vijay Abraham I Cc: devicetree@vger.kernel.org Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Cc: James Hartley Cc: Damien Horsley Patchwork: https://patchwork.linux-mips.org/patch/9728/ Signed-off-by: Ralf Baechle drivers/phy/Kconfig | 7 ++ drivers/phy/Makefile | 1 + drivers/phy/phy-pistachio-usb.c | 206 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 214 insertions(+) commit 90bc35c5da64d05378b15c26a664a0ecedc984ac Author: Andrew Bresticker Date: Tue Apr 7 15:04:16 2015 -0700 phy: Add binding document for Pistachio USB2.0 PHY Add a binding document for the USB2.0 PHY found on the IMG Pistachio SoC. Signed-off-by: Andrew Bresticker Cc: Rob Herring Cc: Pawel Moll Cc: Mark Rutland Cc: Ian Campbell Cc: Kumar Gala Cc: Kishon Vijay Abraham I Cc: devicetree@vger.kernel.org Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Cc: James Hartley Cc: Damien Horsley Patchwork: https://patchwork.linux-mips.org/patch/9727/ Signed-off-by: Ralf Baechle .../devicetree/bindings/phy/pistachio-usb-phy.txt | 29 ++++++++++++++++++++++ include/dt-bindings/phy/phy-pistachio-usb.h | 16 ++++++++++++ 2 files changed, 45 insertions(+) commit 018f62ee203465b11e2dfc8cabebcf4aa15bb1dd Author: Ezequiel Garcia Date: Tue Apr 28 19:08:35 2015 -0300 MIPS: Pistachio: Support 8250-based early printk Pistachio SoCs are capable of early printk with generic 8250 support, so let's select the options to enable it. Signed-off-by: Ezequiel Garcia Cc: linux-mips@linux-mips.org Cc: Andrew Bresticker Cc: James Hartley Patchwork: https://patchwork.linux-mips.org/patch/9913/ Signed-off-by: Ralf Baechle arch/mips/Kconfig | 2 ++ 1 file changed, 2 insertions(+) commit 8bac078c5d6653a419ae980db9b6ebbf29e8759e Author: Jaedon Shin Date: Fri May 8 21:59:18 2015 +0900 MIPS: BMIPS: dts: Add uart device nodes to bcm7xxx platforms Add two uart device nodes known as the uart1 and uart2 for the bcm7xxx platforms. Signed-off-by: Jaedon Shin Cc: Kevin Cernekee Cc: Florian Fainelli Cc: linux-mips@linux-mips.org Cc: devicetree@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/9991/ Signed-off-by: Ralf Baechle arch/mips/boot/dts/brcm/bcm7346.dtsi | 26 ++++++++++++++++++++++++++ arch/mips/boot/dts/brcm/bcm7358.dtsi | 26 ++++++++++++++++++++++++++ arch/mips/boot/dts/brcm/bcm7360.dtsi | 26 ++++++++++++++++++++++++++ arch/mips/boot/dts/brcm/bcm7362.dtsi | 26 ++++++++++++++++++++++++++ arch/mips/boot/dts/brcm/bcm97346dbsmb.dts | 8 ++++++++ arch/mips/boot/dts/brcm/bcm97358svmb.dts | 8 ++++++++ arch/mips/boot/dts/brcm/bcm97360svmb.dts | 8 ++++++++ arch/mips/boot/dts/brcm/bcm97362svmb.dts | 8 ++++++++ 8 files changed, 136 insertions(+) commit 380e4270f53b1ce848de7c3c9f21c7d6ccab3d2e Author: Florian Fainelli Date: Mon May 4 18:10:57 2015 -0700 MIPS: BMIPS: Add support for Broadcom BCM97435SVMB Add a DTS file and Kconfig entry for the BCM97435SVMB evaluation board using bcm7435.dtsi as an example. The current code needs some tweaking to allow us to use the dual-threaded dual BMIPS5200 CPUs, so for now we limit ourselves to allowing just a single CPU to be booted. Signed-off-by: Florian Fainelli Cc: linux-mips@linux-mips.org Cc: blogic@openwrt.org Cc: cernekee@chromium.org Cc: Steven.Hill@imgtec.com Patchwork: https://patchwork.linux-mips.org/patch/9972/ Signed-off-by: Ralf Baechle arch/mips/bmips/Kconfig | 4 +++ arch/mips/boot/dts/brcm/Makefile | 1 + arch/mips/boot/dts/brcm/bcm97435svmb.dts | 60 ++++++++++++++++++++++++++++++++ 3 files changed, 65 insertions(+) commit e4c7d009654a1a2bd1832dc312f0f1dd6f49ac17 Author: Florian Fainelli Date: Mon May 4 18:10:56 2015 -0700 MIPS: BMIPS: Add BCM7435 dtsi Add the bare minimum required to boot a BCM7435-based system: - BMIPS5200 CPU nodes - Level 1 and 2 interrupt controllers - UARTs - EHCI/OHCI controllers Signed-off-by: Florian Fainelli Cc: linux-mips@linux-mips.org Cc: blogic@openwrt.org Cc: cernekee@chromium.org Cc: Steven.Hill@imgtec.com Patchwork: https://patchwork.linux-mips.org/patch/9971/ Signed-off-by: Ralf Baechle arch/mips/boot/dts/brcm/bcm7435.dtsi | 239 +++++++++++++++++++++++++++++++++++ 1 file changed, 239 insertions(+) commit 3fbbb2ee36e73b175402a90eecb12ebb4f0bf0a6 Author: Florian Fainelli Date: Mon May 4 12:09:44 2015 -0700 MIPS: BCM63xx: Utilize asm/bmips-spaces.h Since BCM63xx runs on BMIPS3300 which requires the use of a FIXADDR_TOP to avoid collisions with the SBR, utilize asm/bmips-spaces.h which defines FIXADDR_TOP for us now. Signed-off-by: Florian Fainelli Cc: linux-mips@linux-mips.org Cc: blogic@openwrt.org Cc: cernekee@chromium.org Cc: jogo@openwrt.org Patchwork: https://patchwork.linux-mips.org/patch/9969/ Signed-off-by: Ralf Baechle arch/mips/include/asm/mach-bcm63xx/spaces.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 09a50cc7279650c494be39de37ce8afa56989df1 Author: Florian Fainelli Date: Mon May 4 12:09:43 2015 -0700 MIPS: BMIPS: Define BMIPS_FIXADDR_TOP in asm/bmips-spaces.h The FIXADDR_TOP value used by mach-bmips is in fact required whenever we run on BMIPS3300 BMIPS CPUs, and is not machine, but CPU-specific, move this constant to asm/bmips-spaces.h and use it in mach-bmips/spaces.h. Signed-off-by: Florian Fainelli Cc: linux-mips@linux-mips.org Cc: blogic@openwrt.org Cc: cernekee@chromium.org Cc: jogo@openwrt.org Patchwork: https://patchwork.linux-mips.org/patch/9968/ Signed-off-by: Ralf Baechle arch/mips/include/asm/bmips-spaces.h | 7 +++++++ arch/mips/include/asm/mach-bmips/spaces.h | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) commit 5564f092c29dc1482437e979439ba9de6da23d51 Author: Rafał Miłecki Date: Fri May 29 07:39:26 2015 +0200 MAINTAINERS: Add Broadcom BCM47xx entry Signed-off-by: Rafał Miłecki Acked-by: Hauke Mehrtens Cc: linux-mips@linux-mips.org Cc: Arend van Spriel Patchwork: https://patchwork.linux-mips.org/patch/10207/ Signed-off-by: Ralf Baechle MAINTAINERS | 8 ++++++++ 1 file changed, 8 insertions(+) commit 0752f9293429230e2062dc0e10fa1f8f8164825a Author: Paul Burton Date: Sun May 24 16:11:47 2015 +0100 MIPS: ingenic: Initial MIPS Creator CI20 support Add an initial device tree for the Ingenic JZ4780 based MIPS Creator CI20 board. Signed-off-by: Paul Burton Cc: Ian Campbell Cc: Kumar Gala Cc: Lars-Peter Clausen Cc: Mark Rutland Cc: Pawel Moll Cc: Rob Herring Cc: devicetree@vger.kernel.org Cc: linux-mips@linux-mips.org Cc: Andrew Bresticker Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/10162/ Signed-off-by: Ralf Baechle arch/mips/boot/dts/ingenic/Makefile | 1 + arch/mips/boot/dts/ingenic/ci20.dts | 44 ++++++++++ arch/mips/configs/ci20_defconfig | 162 ++++++++++++++++++++++++++++++++++++ arch/mips/jz4740/Kconfig | 4 + 4 files changed, 211 insertions(+) commit 5b9cdd2449098b3cd519a02dfed7588fd2becd0e Author: Paul Burton Date: Sun May 24 16:11:46 2015 +0100 MIPS: ingenic: Initial JZ4780 support Support the Ingenic JZ4780 SoC using the existing code under arch/mips/jz4740 now that it has been generalised sufficiently. Signed-off-by: Paul Burton Cc: Ian Campbell Cc: Kumar Gala Cc: Lars-Peter Clausen Cc: Mark Rutland Cc: Pawel Moll Cc: Rob Herring Cc: devicetree@vger.kernel.org Cc: linux-mips@linux-mips.org Cc: Joshua Kinard Cc: Leonid Yegoshin Cc: Deng-Cheng Zhu Cc: linux-kernel@vger.kernel.org Cc: Markos Chandras Cc: Andreas Herrmann Patchwork: https://patchwork.linux-mips.org/patch/10164/ Signed-off-by: Ralf Baechle arch/mips/boot/dts/ingenic/jz4780.dtsi | 111 +++++++++++++++++++++ arch/mips/include/asm/cpu-type.h | 2 +- .../asm/mach-jz4740/cpu-feature-overrides.h | 3 - arch/mips/include/asm/mach-jz4740/irq.h | 4 + arch/mips/jz4740/Kconfig | 6 ++ arch/mips/jz4740/Makefile | 4 +- arch/mips/jz4740/setup.c | 3 + arch/mips/jz4740/time.c | 7 +- 8 files changed, 134 insertions(+), 6 deletions(-) commit 8838245d76b9bb2e20c9a7a977487d72c0117b9a Author: Paul Burton Date: Sun May 24 16:11:45 2015 +0100 MIPS: JZ4740: use Ingenic SoC UART driver Remove the serial support from arch/mips/jz4740 & make use of the new Ingenic SoC UART driver. This is done for both regular & early console output. Signed-off-by: Paul Burton Cc: Ian Campbell Cc: Kumar Gala Cc: Lars-Peter Clausen Cc: Mark Rutland Cc: Pawel Moll Cc: Rob Herring Cc: devicetree@vger.kernel.org Cc: linux-mips@linux-mips.org Cc: Linus Walleij Cc: Stephen Warren Cc: linux-kernel@vger.kernel.org Cc: Brian Norris Cc: Apelete Seketeli Cc: Alexandre Courbot Patchwork: https://patchwork.linux-mips.org/patch/10160/ Signed-off-by: Ralf Baechle arch/mips/Kconfig | 1 - arch/mips/boot/dts/ingenic/jz4740.dtsi | 22 ++++++++++++++ arch/mips/boot/dts/ingenic/qi_lb60.dts | 4 +++ arch/mips/configs/qi_lb60_defconfig | 1 + arch/mips/include/asm/mach-jz4740/platform.h | 2 -- arch/mips/jz4740/Makefile | 2 +- arch/mips/jz4740/board-qi_lb60.c | 2 -- arch/mips/jz4740/platform.c | 45 ---------------------------- arch/mips/jz4740/prom.c | 13 -------- arch/mips/jz4740/serial.c | 33 -------------------- arch/mips/jz4740/serial.h | 23 -------------- 11 files changed, 28 insertions(+), 120 deletions(-) commit 0cf985f487be8e24237faaa8c96cbcf78382a498 Author: Paul Burton Date: Sun May 24 16:11:44 2015 +0100 serial: 8250_ingenic: support for Ingenic SoC UARTs Introduce a driver suitable for use with the UARTs present in Ingenic SoCs such as the JZ4740 & JZ4780. These are described as being ns16550 compatible but aren't quite - they require the setting of an extra bit in the FCR register to enable the UART module. The serial_out implementation is the same as that in arch/mips/jz4740/serial.c - which will shortly be removed. Signed-off-by: Paul Burton Cc: Greg Kroah-Hartman Cc: Jiri Slaby Cc: Lars-Peter Clausen Cc: linux-serial@vger.kernel.org Cc: linux-mips@linux-mips.org Cc: Sebastian Andrzej Siewior Cc: Peter Hurley Cc: Alan Cox Cc: linux-kernel@vger.kernel.org Cc: Matthias Brugger Cc: Ricardo Ribalda Delgado Cc: Tony Lindgren Cc: John Crispin Patchwork: https://patchwork.linux-mips.org/patch/10159/ Signed-off-by: Ralf Baechle drivers/tty/serial/8250/8250_ingenic.c | 266 +++++++++++++++++++++++++++++++++ drivers/tty/serial/8250/Kconfig | 9 ++ drivers/tty/serial/8250/Makefile | 3 + 3 files changed, 278 insertions(+) commit 98fd25e7eaa65e2365b8a883d6a572657f9a80e1 Author: Paul Burton Date: Sun May 24 16:11:43 2015 +0100 devicetree: document Ingenic SoC UART binding Add binding documentation for the UARTs found in Ingenic SoCs. Signed-off-by: Paul Burton Acked-by: Rob Herring Cc: Ian Campbell Cc: Kumar Gala Cc: Lars-Peter Clausen Cc: Mark Rutland Cc: Pawel Moll Cc: devicetree@vger.kernel.org Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/10161/ Signed-off-by: Ralf Baechle .../devicetree/bindings/serial/ingenic,uart.txt | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) commit 6ec127fb3c7754d3dc6614e9744386fbe652927f Author: Paul Burton Date: Sun May 24 16:11:42 2015 +0100 MIPS: JZ4740: only detect RAM size if not specified in DT Allow a devicetree to specify the memory present in the system rather than probing it from the memory controller. This both saves the probing for systems where the amount of memory is fixed, and will simplify the bringup of later Ingenic SoCs where the memory controller register layout differs. Signed-off-by: Paul Burton Cc: Lars-Peter Clausen Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/10163/ Signed-off-by: Ralf Baechle arch/mips/Kconfig | 1 + arch/mips/jz4740/Makefile | 2 ++ arch/mips/jz4740/setup.c | 8 +++++++- 3 files changed, 10 insertions(+), 1 deletion(-) commit 1237496af309bc0551949418fb06f63d3b1f45b5 Author: Paul Burton Date: Sun May 24 16:11:41 2015 +0100 MIPS: JZ4740: remove clock.h The only thing remaining in arch/mips/jz4740/clock.h is declarations of the jz4740_clock_{suspend,resume} functions. Move these to arch/mips/include/asm/mach-jz4740/clock.h for consistency with similar functions, and remove the redundant arch/mips/jz4740/clock.h header. Signed-off-by: Paul Burton Cc: Lars-Peter Clausen Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/10156/ Signed-off-by: Ralf Baechle arch/mips/include/asm/mach-jz4740/clock.h | 3 +++ arch/mips/jz4740/clock.h | 25 ------------------------- arch/mips/jz4740/pm.c | 2 -- 3 files changed, 3 insertions(+), 27 deletions(-) commit 29136ad58164cbd7114412c0b4cfb3acd4559044 Author: Paul Burton Date: Sun May 24 16:11:40 2015 +0100 clk: ingenic: add JZ4780 CGU support Add support for the clocks provided by the CGU in the Ingenic JZ4780 SoC, making use of the SoC-agnostic CGU code to do the heavy lifting. Signed-off-by: Paul Burton Co-authored-by: Paul Cercueil Cc: Lars-Peter Clausen Cc: Mike Turquette Cc: Stephen Boyd Cc: linux-clk@vger.kernel.org Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/10157/ Signed-off-by: Ralf Baechle drivers/clk/ingenic/Makefile | 1 + drivers/clk/ingenic/jz4780-cgu.c | 733 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 734 insertions(+) commit 50d893ff7218e2298d91c0a637845d195d72ebcc Author: Paul Burton Date: Sun May 24 16:11:39 2015 +0100 MIPS, clk: move jz4740 clock suspend, resume functions to jz4740-cgu The jz4740-cgu driver already has access to the CGU, so it makes sense to move the few remaining accesses to the CGU from arch/mips/jz4740 there too. Move the jz4740_clock_{suspend,resume} functions there for such consistency. The arch/mips/jz4740/clock.c file now contains nothing more of use & so is removed. Signed-off-by: Paul Burton Cc: Lars-Peter Clausen Cc: Mike Turquette Cc: Stephen Boyd Cc: linux-clk@vger.kernel.org Cc: linux-mips@linux-mips.org Cc: Deng-Cheng Zhu Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/10158/ Signed-off-by: Ralf Baechle arch/mips/include/asm/mach-jz4740/clock.h | 2 - arch/mips/jz4740/Makefile | 2 +- arch/mips/jz4740/clock.c | 95 ------------------------------- arch/mips/jz4740/time.c | 1 - drivers/clk/ingenic/jz4740-cgu.c | 37 ++++++++++++ 5 files changed, 38 insertions(+), 99 deletions(-) commit ed286ca5d627619673b7dad27f48252498e3905c Author: Paul Burton Date: Sun May 24 16:11:38 2015 +0100 MIPS, clk: move jz4740 UDC auto suspend functions to jz4740-cgu The jz4740-cgu driver already has access to the CGU, so it makes sense to move the few remaining accesses to the CGU from arch/mips/jz4740 there too. Move the jz4740_clock_udc_{dis,en}able_auto_suspend functions there for such consistency. Signed-off-by: Paul Burton Cc: Lars-Peter Clausen Cc: Mike Turquette Cc: Stephen Boyd Cc: linux-clk@vger.kernel.org Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/10154/ Signed-off-by: Ralf Baechle arch/mips/jz4740/clock.c | 13 ------------- drivers/clk/ingenic/jz4740-cgu.c | 22 ++++++++++++++++++++++ 2 files changed, 22 insertions(+), 13 deletions(-) commit 41dd641e9a1a7229383f9b342a57cb6720e7ea46 Author: Paul Burton Date: Sun May 24 16:11:37 2015 +0100 MIPS,clk: move jz4740_clock_set_wait_mode to jz4740-cgu The jz4740-cgu driver already has access to the CGU, so it makes sense to move the few remaining accesses to the CGU from arch/mips/jz4740 there too. Move jz4740_clock_set_wait_mode for such consistency. Signed-off-by: Paul Burton Cc: Lars-Peter Clausen Cc: Mike Turquette Cc: Stephen Boyd Cc: linux-clk@vger.kernel.org Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/10153/ Signed-off-by: Ralf Baechle arch/mips/jz4740/clock.c | 16 ---------------- drivers/clk/ingenic/jz4740-cgu.c | 22 ++++++++++++++++++++++ 2 files changed, 22 insertions(+), 16 deletions(-) commit ff1930c6bdf031e72e101a8aa47d54e73a745f93 Author: Paul Burton Date: Sun May 24 16:11:36 2015 +0100 MIPS,clk: migrate JZ4740 to common clock framework Migrate the JZ4740 & the qi_lb60 board to use common clock framework via the new Ingenic SoC CGU driver. Note that the JZ4740-specific debugfs code is removed since common clock framework provides its own debug capabilities. Signed-off-by: Paul Burton Co-authored-by: Paul Cercueil Cc: Ian Campbell Cc: Kumar Gala Cc: Lars-Peter Clausen Cc: Mark Rutland Cc: Mike Turquette Cc: Pawel Moll Cc: Rob Herring Cc: Stephen Boyd Cc: devicetree@vger.kernel.org Cc: linux-clk@vger.kernel.org Cc: linux-mips@linux-mips.org Cc: Fabian Frederick Cc: Deng-Cheng Zhu Cc: Linus Walleij Cc: Stephen Warren Cc: linux-kernel@vger.kernel.org Cc: Brian Norris Patchwork: https://patchwork.linux-mips.org/patch/10151/ Signed-off-by: Ralf Baechle arch/mips/Kconfig | 2 +- arch/mips/boot/dts/ingenic/jz4740.dtsi | 23 + arch/mips/boot/dts/ingenic/qi_lb60.dts | 4 + arch/mips/jz4740/Makefile | 2 - arch/mips/jz4740/board-qi_lb60.c | 5 - arch/mips/jz4740/clock-debugfs.c | 108 ----- arch/mips/jz4740/clock.c | 801 +-------------------------------- arch/mips/jz4740/clock.h | 53 +-- arch/mips/jz4740/time.c | 2 + drivers/clk/ingenic/Makefile | 1 + drivers/clk/ingenic/jz4740-cgu.c | 222 +++++++++ 11 files changed, 255 insertions(+), 968 deletions(-) commit b066303fb3e72a902a1f94dc06636ce82c3a5577 Author: Paul Burton Date: Sun May 24 16:11:35 2015 +0100 clk: ingenic: add driver for Ingenic SoC CGU clocks This driver supports the CGU clocks for Ingenic SoCs. It is generic enough to be usable across at least the JZ4740 to the JZ4780, and will be made use of on such devices in subsequent commits. This patch by itself only adds the SoC-agnostic infrastructure that forms the bulk of the CGU driver for the aforementioned further commits to make use of. Signed-off-by: Paul Burton Co-authored-by: Paul Cercueil Cc: Lars-Peter Clausen Cc: Mike Turquette Cc: Stephen Boyd Cc: linux-clk@vger.kernel.org Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/10150/ Signed-off-by: Ralf Baechle drivers/clk/Makefile | 1 + drivers/clk/ingenic/Makefile | 1 + drivers/clk/ingenic/cgu.c | 711 +++++++++++++++++++++++++++++++++++++++++++ drivers/clk/ingenic/cgu.h | 223 ++++++++++++++ 4 files changed, 936 insertions(+) commit fe4ef45b5b40c496aa0c85d059c713c79b804e06 Author: Paul Burton Date: Sun May 24 16:11:34 2015 +0100 DEVICETREE: Add Ingenic CGU binding documentation Document the devicetree binding for Ingenic SoC CGUs, and add headers defining the clock specifiers for clocks provided by the JZ4740 & JZ4780 CGU blocks. Signed-off-by: Paul Burton Cc: Ian Campbell Cc: Kumar Gala Cc: Lars-Peter Clausen Cc: Mark Rutland Cc: Mike Turquette Cc: Pawel Moll Cc: Rob Herring Cc: devicetree@vger.kernel.org Cc: linux-mips@linux-mips.org Cc: devicetree@vger.kernel.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/10152/ Signed-off-by: Ralf Baechle .../devicetree/bindings/clock/ingenic,cgu.txt | 53 +++++++++++++ include/dt-bindings/clock/jz4740-cgu.h | 37 +++++++++ include/dt-bindings/clock/jz4780-cgu.h | 88 ++++++++++++++++++++++ 3 files changed, 178 insertions(+) commit e06b86a33ad9a225d6336f2489cdd79aeaa9d59b Author: Paul Burton Date: Sun May 24 16:11:33 2015 +0100 MIPS: JZ4740: replace use of jz4740_clock_bdata Replace uses of the jz4740_clock_bdata struct with calls to clk_get_rate for the appropriate clock. This is in preparation for migrating the clocks towards common clock framework & devicetree. Signed-off-by: Paul Burton Cc: Lars-Peter Clausen Cc: linux-mips@linux-mips.org Cc: Deng-Cheng Zhu Cc: linux-kernel@vger.kernel.org Cc: Apelete Seketeli Patchwork: https://patchwork.linux-mips.org/patch/10149/ Signed-off-by: Ralf Baechle arch/mips/jz4740/platform.c | 11 ++++++++++- arch/mips/jz4740/reset.c | 13 +++++++++++-- arch/mips/jz4740/time.c | 9 ++++++++- 3 files changed, 29 insertions(+), 4 deletions(-) commit 1f4b840983ffbd7053b5c2219deaf62b4b8a3c12 Author: Paul Burton Date: Sun May 24 16:11:32 2015 +0100 MIPS: JZ4740: Call jz4740_clock_init earlier Call jz4740_clock_init before any uses of jz4740_clock_bdata occur. This is in preparation for replacing uses of that struct with calls to clk_get_rate, which will allow the clocks to be migrated towards common clock framework & devicetree. Signed-off-by: Paul Burton Cc: Lars-Peter Clausen Cc: linux-mips@linux-mips.org Cc: Deng-Cheng Zhu Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/10148/ Signed-off-by: Ralf Baechle arch/mips/include/asm/mach-jz4740/clock.h | 2 ++ arch/mips/jz4740/clock.c | 3 +-- arch/mips/jz4740/time.c | 2 ++ 3 files changed, 5 insertions(+), 2 deletions(-) commit 44e08e7099c8de226606cfc989b45d6fa27f507f Author: Paul Burton Date: Sun May 24 16:11:31 2015 +0100 MIPS/IRQCHIP: Move Ingenic SoC intc driver to drivers/irqchip Move the driver for Ingenic SoC interrupt controllers into drivers/irqchip where it belongs. Signed-off-by: Paul Burton Cc: Lars-Peter Clausen Cc: Thomas Gleixner Cc: Jason Cooper Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Cc: Brian Norris Patchwork: https://patchwork.linux-mips.org/patch/10147/ Signed-off-by: Ralf Baechle arch/mips/jz4740/Makefile | 2 +- arch/mips/jz4740/gpio.c | 3 +- arch/mips/jz4740/irq.c | 178 ---------------------------------------- arch/mips/jz4740/irq.h | 23 ------ drivers/irqchip/Kconfig | 5 ++ drivers/irqchip/Makefile | 1 + drivers/irqchip/irq-ingenic.c | 177 +++++++++++++++++++++++++++++++++++++++ include/linux/irqchip/ingenic.h | 23 ++++++ 8 files changed, 208 insertions(+), 204 deletions(-) commit 24ccfa06b7ea3c3f7f53f6bac9425d604ebce470 Author: Paul Burton Date: Sun May 24 16:11:30 2015 +0100 MIPS: JZ4740: support newer SoC interrupt controllers Allow the interrupt controllers of the JZ4770, JZ4775 & JZ4780 SoCs to be probed via devicetree, supporting the 64 interrupts they provide. Signed-off-by: Paul Burton Cc: Lars-Peter Clausen Cc: Thomas Gleixner Cc: Jason Cooper Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Cc: Brian Norris Patchwork: https://patchwork.linux-mips.org/patch/10155/ Signed-off-by: Ralf Baechle arch/mips/jz4740/irq.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 2da018849fc79da116970c30e99a6ff216eaee47 Author: Paul Burton Date: Sun May 24 16:11:29 2015 +0100 MIPS: JZ4740: Avoid JZ4740-specific naming Rename the functions including jz4740 in their names to be more generic in preparation for supporting further SoCs, and for moving this interrupt controller code to drivers/irqchip. Signed-off-by: Paul Burton Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Cc: Brian Norris Cc: Lars-Peter Clausen Patchwork: https://patchwork.linux-mips.org/patch/10146/ Signed-off-by: Ralf Baechle arch/mips/jz4740/gpio.c | 4 ++-- arch/mips/jz4740/irq.c | 24 ++++++++++++------------ arch/mips/jz4740/irq.h | 4 ++-- 3 files changed, 16 insertions(+), 16 deletions(-) commit 3aa94590e7bf82680ccba5ce65f3946c5b374ac4 Author: Paul Burton Date: Sun May 24 16:11:28 2015 +0100 MIPS: JZ4740: read intc base address from DT Read the base address of the SoC interrupt controller from the device tree rather than relying upon the JZ4740_INTC_BASE_ADDR macro, in order to remove the dependency on the asm/mach-jz4740/base.h header. Signed-off-by: Paul Burton Cc: Lars-Peter Clausen Cc: Thomas Gleixner Cc: Jason Cooper Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Cc: Brian Norris Patchwork: https://patchwork.linux-mips.org/patch/10145/ Signed-off-by: Ralf Baechle arch/mips/jz4740/irq.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit ad68f8d3c2a1f61ce98665d6d0c1a2e52a75ea77 Author: Paul Burton Date: Sun May 24 16:11:27 2015 +0100 MIPS: JZ4740: define IRQ numbers based on number of intc IRQs For interrupts numbered after those of the interrupt controller, define their numbers based upon the number of interrupts provided by the SoC interrupt controller. This is in preparation for supporting newer Ingenic SoCs which provide more interrupts. Signed-off-by: Paul Burton Cc: Lars-Peter Clausen Cc: Thomas Gleixner Cc: Jason Cooper Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/10143/ Signed-off-by: Ralf Baechle arch/mips/include/asm/mach-jz4740/irq.h | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit 943d69c6c2174654903ffa5f2d2473f0f178e765 Author: Paul Burton Date: Sun May 24 16:11:26 2015 +0100 MIPS: JZ4740: support >32 interrupts On newer Ingenic SoCs the interrupt controller supports more than 32 interrupts, which it does by duplicating the registers at intervals of 0x20 bytes within its address space. Add support for an arbitrary number of interrupts using multiple generic chips, and provide the number of chips to register from the interrupt controller probe function. Signed-off-by: Paul Burton Cc: Lars-Peter Clausen Cc: Thomas Gleixner Cc: Jason Cooper Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Cc: Brian Norris Patchwork: https://patchwork.linux-mips.org/patch/10141/ Signed-off-by: Ralf Baechle arch/mips/jz4740/irq.c | 71 ++++++++++++++++++++++++++++++++------------------ 1 file changed, 46 insertions(+), 25 deletions(-) commit fe778ece8e252257e96d3b408b846ff8f5d5458d Author: Paul Burton Date: Sun May 24 16:11:25 2015 +0100 MIPS: JZ4740: Remove jz_intc_base global Avoid the need for the global variable jz_intc_base by introducing a struct ingenic_intc_data and passing it around as the IRQ handler data. Signed-off-by: Paul Burton Cc: Lars-Peter Clausen Cc: Thomas Gleixner Cc: Jason Cooper Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Cc: Brian Norris Patchwork: https://patchwork.linux-mips.org/patch/10144/ Signed-off-by: Ralf Baechle arch/mips/jz4740/irq.c | 39 +++++++++++++++++++++++++++++++-------- 1 file changed, 31 insertions(+), 8 deletions(-) commit 2aabd281d6c539d738da883b17eb5da25223c2f8 Author: Paul Burton Date: Sun May 24 16:11:24 2015 +0100 MIPS: JZ4740: drop intc debugfs code The debugfs code becomes a nuisance when attempting to avoid globals, since the interrupt controller probe function run too early for it to be safe to create the debugfs files. Drop it. Signed-off-by: Paul Burton Cc: Lars-Peter Clausen Cc: Thomas Gleixner Cc: Jason Cooper Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Cc: Brian Norris Patchwork: https://patchwork.linux-mips.org/patch/10139/ Acked-by: Lars-Peter Clausen Signed-off-by: Ralf Baechle arch/mips/jz4740/irq.c | 42 ------------------------------------------ 1 file changed, 42 deletions(-) commit 638c885185dc2e2b17e59bfe8e9d27b18ed8fade Author: Paul Burton Date: Sun May 24 16:11:23 2015 +0100 MIPS: JZ4740: register an irq_domain for the interrupt controller When probing the interrupt controller, register an IRQ domain such that the interrupts can be translated by devicetree code & thus used from devicetree. Signed-off-by: Paul Burton Cc: Lars-Peter Clausen Cc: Thomas Gleixner Cc: Jason Cooper Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Cc: Brian Norris Patchwork: https://patchwork.linux-mips.org/patch/10140/ Signed-off-by: Ralf Baechle arch/mips/jz4740/irq.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 69ce4b2288d22ad23b8ceeb8c238fcc58a7e5089 Author: Paul Burton Date: Sun May 24 16:11:22 2015 +0100 MIPS: JZ4740: parse SoC interrupt controller parent IRQ from DT Rather than hardcoding the IRQ number used to cascade interrupts from the SoC interrupt controller to the CPU interrupt controller, read that IRQ number from the DT describing the system. Signed-off-by: Paul Burton Cc: Lars-Peter Clausen Cc: Thomas Gleixner Cc: Jason Cooper Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Cc: Brian Norris Patchwork: https://patchwork.linux-mips.org/patch/10137/ Signed-off-by: Ralf Baechle arch/mips/jz4740/irq.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit adbdce77ccc345e6ae86f6887212af13983a626e Author: Paul Burton Date: Sun May 24 16:11:21 2015 +0100 MIPS: JZ4740: probe interrupt controller via DT Declare the JZ4740 interrupt controller for probe via DT using the standard irqchip_init function, and make use of that function to probe the controller by adding the appropriate node to the JZ4740 dtsi. Signed-off-by: Paul Burton Cc: Ian Campbell Cc: Jason Cooper Cc: Kumar Gala Cc: Lars-Peter Clausen Cc: Mark Rutland Cc: Pawel Moll Cc: Rob Herring Cc: Thomas Gleixner Cc: devicetree@vger.kernel.org Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Cc: Brian Norris Patchwork: https://patchwork.linux-mips.org/patch/10135/ Signed-off-by: Ralf Baechle arch/mips/boot/dts/ingenic/jz4740.dtsi | 11 +++++++++++ arch/mips/include/asm/mach-jz4740/irq.h | 2 -- arch/mips/jz4740/irq.c | 8 +++++++- arch/mips/jz4740/setup.c | 2 -- 4 files changed, 18 insertions(+), 5 deletions(-) commit 5f408ebfd2f3fa791449c0d641254f795747c081 Author: Paul Burton Date: Sun May 24 16:11:20 2015 +0100 devicetree: document Ingenic SoC interrupt controller binding Add binding documentation for Ingenic SoC interrupt controllers. Signed-off-by: Paul Burton Acked-by: Rob Herring Cc: Ian Campbell Cc: Jason Cooper Cc: Kumar Gala Cc: Lars-Peter Clausen Cc: Mark Rutland Cc: Pawel Moll Cc: Thomas Gleixner Cc: devicetree@vger.kernel.org Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/10134/ Signed-off-by: Ralf Baechle .../bindings/interrupt-controller/ingenic,intc.txt | 28 ++++++++++++++++++++++ 1 file changed, 28 insertions(+) commit 0e81db8f5b1abd7245e13b585458ea2fb9826bdd Author: Paul Burton Date: Sun May 24 16:11:19 2015 +0100 MIPS: JZ4740: Move arch_init_irq out of arch/mips/jz4740/irq.c In preparation for moving the JZ4740 interrupt controller driver to drivers/irqchip, move arch_init_irq into setup.c such that everything remaining in irq.c is related to said JZ4740 interrupt controller. Signed-off-by: Paul Burton Cc: Lars-Peter Clausen Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Cc: Brian Norris Patchwork: https://patchwork.linux-mips.org/patch/10136/ Signed-off-by: Ralf Baechle arch/mips/include/asm/mach-jz4740/irq.h | 2 ++ arch/mips/jz4740/irq.c | 5 +---- arch/mips/jz4740/setup.c | 8 ++++++++ 3 files changed, 11 insertions(+), 4 deletions(-) commit 2974a35657bf73db154c0173d3061812716f4e00 Author: Paul Burton Date: Sun May 24 16:11:18 2015 +0100 MIPS: JZ4740: use generic plat_irq_dispatch Make use of the generic plat_irq_dispatch function introduced by commit 85f7cdacbb81 "MIPS: Provide a generic plat_irq_dispatch", in order to reduce unnecessary code duplication. Signed-off-by: Paul Burton Cc: Lars-Peter Clausen Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Cc: Brian Norris Patchwork: https://patchwork.linux-mips.org/patch/10138/ Signed-off-by: Ralf Baechle arch/mips/jz4740/irq.c | 12 ------------ 1 file changed, 12 deletions(-) commit 8e8261eb6a13760665da7595bfcc405193e1982d Author: Paul Burton Date: Sun May 24 23:37:42 2015 +0100 MIPS: JZ4740: probe CPU interrupt controller via DT Use the generic irqchip_init function to probe irqchip drivers using DT, and add the appropriate node to the JZ4740 devicetree in place of the call to mips_cpu_irq_init. Signed-off-by: Paul Burton Cc: Ian Campbell Cc: Kumar Gala Cc: Lars-Peter Clausen Cc: Mark Rutland Cc: Pawel Moll Cc: Rob Herring Cc: devicetree@vger.kernel.org Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Cc: Brian Norris Cc: Sergei Shtylyov Patchwork: https://patchwork.linux-mips.org/patch/10166/ Signed-off-by: Ralf Baechle arch/mips/boot/dts/ingenic/jz4740.dtsi | 7 +++++++ arch/mips/jz4740/irq.c | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) commit 892b8cf06d8a1e7f1e2b2084e9ca7e7e77f13402 Author: Paul Burton Date: Sun May 24 16:11:16 2015 +0100 IRQCHIP: irq_cpu: declare irqchip table entry Allow the MIPS CPU interrupt controller to be probed from DT using the generic __irqchip_of_table for platforms which use irqchip_init. This will avoid such platforms needing to duplicate the compatible string & init function pointer. [ralf@linux-mips.org: Resolved conflict due the preceeding commit that moves irq-cpu.c. Signed-off-by: Paul Burton Cc: Lars-Peter Clausen Cc: linux-mips@linux-mips.org Cc: Qais Yousef Cc: Andrew Bresticker Cc: linux-kernel@vger.kernel.org Cc: Felix Fietkau Patchwork: https://patchwork.linux-mips.org/patch/10131/ Signed-off-by: Ralf Baechle drivers/irqchip/irq-mips-cpu.c | 3 +++ 1 file changed, 3 insertions(+) commit 67e38cf2933e904426b428431961e4880d6d4b90 Author: Ralf Baechle Date: Tue May 26 18:20:06 2015 +0200 MIPS/IRQCHIP: Move irq_chip from arch/mips to drivers/irqchip. While at it, rename it because in drivers/irqchip no longer every CPU is a MIPS. Signed-off-by: Ralf Baechle arch/mips/Kconfig | 60 +++++------ arch/mips/include/asm/irqflags.h | 4 +- arch/mips/include/asm/mach-generic/irq.h | 4 +- arch/mips/include/asm/txx9irq.h | 2 +- arch/mips/kernel/Makefile | 1 - arch/mips/kernel/irq_cpu.c | 169 ------------------------------- arch/mips/loongson/Kconfig | 6 +- arch/mips/loongson1/Kconfig | 2 +- arch/mips/sibyte/Kconfig | 16 +-- arch/mips/txx9/Kconfig | 2 +- arch/mips/vr41xx/Kconfig | 10 +- drivers/irqchip/Kconfig | 5 + drivers/irqchip/Makefile | 1 + drivers/irqchip/irq-mips-cpu.c | 169 +++++++++++++++++++++++++++++++ 14 files changed, 226 insertions(+), 225 deletions(-) commit ffb1843d059c5627fb8982eb4ab29219e7503fb2 Author: Paul Burton Date: Sun May 24 16:11:15 2015 +0100 MIPS: JZ4740: require & include DT Require a DT for JZ4740 based systems, and add a stub one for the qi_lb60 (Ben NanoNote) board. Devices will be migrated to being probed via this DT over time. Signed-off-by: Paul Burton Cc: Ian Campbell Cc: Kumar Gala Cc: Lars-Peter Clausen Cc: Mark Rutland Cc: Pawel Moll Cc: Rob Herring Cc: devicetree@vger.kernel.org Cc: linux-mips@linux-mips.org Cc: Andrew Bresticker Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/10132/ Signed-off-by: Ralf Baechle arch/mips/Kconfig | 2 ++ arch/mips/boot/dts/Makefile | 1 + arch/mips/boot/dts/ingenic/Makefile | 9 +++++++++ arch/mips/boot/dts/ingenic/jz4740.dtsi | 5 +++++ arch/mips/boot/dts/ingenic/qi_lb60.dts | 7 +++++++ arch/mips/jz4740/setup.c | 19 +++++++++++++++++++ 6 files changed, 43 insertions(+) commit 252617a4ab714db824876e3f9b2b2ede6623e9dc Author: Paul Burton Date: Sun May 24 16:11:14 2015 +0100 MIPS: ingenic: Add newer vendor IDs Ingenic have actually varied the vendor/company ID of the XBurst cores across their range of SoCs, whilst keeping the product ID & revision constant... Add definitions for vendor IDs known to be used in some of Ingenic's newer SoCs, and handle them in the same way as the existing Ingenic vendor ID from the JZ4740. Signed-off-by: Paul Burton Co-authored-by: Paul Cercueil Cc: Lars-Peter Clausen Cc: linux-mips@linux-mips.org Cc: Steven J. Hill Cc: Joshua Kinard 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/10128/ Signed-off-by: Ralf Baechle arch/mips/include/asm/cpu.h | 6 ++++-- arch/mips/kernel/cpu-probe.c | 4 +++- 2 files changed, 7 insertions(+), 3 deletions(-) commit de361e8bb9f666235d44ae9770238718be4f0483 Author: Paul Burton Date: Sun May 24 16:11:13 2015 +0100 MIPS: JZ4740: introduce CONFIG_MACH_INGENIC In preparation for supporting Ingenic SoCs other than the JZ4740, introduce MACH_INGENIC to Kconfig & move MACH_JZ4740 to a separate entry selected by the board when appropriate. This allows MACH_INGENIC to be used to enable things generic across Ingenic SoCs. Signed-off-by: Paul Burton Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Cc: Andrew Bresticker Patchwork: https://patchwork.linux-mips.org/patch/10130/ Signed-off-by: Ralf Baechle arch/mips/Kconfig | 5 ++--- arch/mips/configs/qi_lb60_defconfig | 2 +- arch/mips/jz4740/Kconfig | 7 ++++++- arch/mips/jz4740/Platform | 8 ++++---- 4 files changed, 13 insertions(+), 9 deletions(-) commit 2d06fe53e76a096af06a964c7893a7b14248961c Author: Paul Burton Date: Sun May 24 16:11:12 2015 +0100 devicetree/bindings: add Qi Hardware vendor prefix Define a vendor prefix for Qi Hardware, creators of the Ben Nanonote (qi_lb60) among other open devices. Signed-off-by: Paul Burton Acked-by: Rob Herring Cc: Lars-Peter Clausen Cc: Ian Campbell Cc: Kumar Gala Cc: Mark Rutland Cc: Pawel Moll Cc: devicetree@vger.kernel.org Cc: linux-mips@linux-mips.org Cc: Arnd Bergmann Cc: Hayato Suzuki Cc: Thierry Reding Cc: linux-kernel@vger.kernel.org Cc: Philipp Zabel Cc: Kuninori Morimoto Cc: Arnaud Ebalard Cc: Dmitry Torokhov Cc: Antony Pavlov Patchwork: https://patchwork.linux-mips.org/patch/10142/ Signed-off-by: Ralf Baechle Documentation/devicetree/bindings/vendor-prefixes.txt | 1 + 1 file changed, 1 insertion(+) commit f289cc7bf9a2216785a9e22fd38e2543628b011c Author: Paul Burton Date: Sun May 24 16:11:11 2015 +0100 devicetree/bindings: add Ingenic Semiconductor vendor prefix Define a vendor prefix for Ingenic Semiconductor, a vendor of MIPS-based SoCs. Simply use 'ingenic'. Signed-off-by: Paul Burton Acked-by: Rob Herring Cc: Lars-Peter Clausen Cc: Ian Campbell Cc: Kumar Gala Cc: Mark Rutland Cc: Pawel Moll Cc: Rob Herring Cc: devicetree@vger.kernel.org Cc: linux-mips@linux-mips.org Cc: Arnd Bergmann Cc: Hayato Suzuki Cc: Thierry Reding Cc: linux-kernel@vger.kernel.org Cc: Philipp Zabel Cc: Kuninori Morimoto Cc: Arnaud Ebalard Cc: Dmitry Torokhov Cc: Antony Pavlov Patchwork: https://patchwork.linux-mips.org/patch/10129/ Signed-off-by: Ralf Baechle Documentation/devicetree/bindings/vendor-prefixes.txt | 1 + 1 file changed, 1 insertion(+) commit bc4f12e639da2b2c3a432900aca1952497fb066b Author: Maciej W. Rozycki Date: Wed May 27 14:15:31 2015 +0100 MIPS: DEC: Update CPU overrides Update CPU overrides for the DEC port with the recent additions, shaving off some effectively dead code: text data bss dec hex filename 5586952 233132 5990368 11810452 b43694 vmlinux.32-old 5581248 233140 5990368 11804756 b42054 vmlinux.32-new text data bss dec hex filename 6036936 356648 10756544 17150128 105b0b0 vmlinux.64-old 6029896 360752 10756544 17147192 105a538 vmlinux.64-new The data size increase is due to the special alignment requirement of `init_thread_union' aka `.data..init_task' moving it up to the nearest page boundary and making the amount of padding at its front rely on how far within a page text ends. Signed-off-by: Maciej W. Rozycki Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10197/ Signed-off-by: Ralf Baechle arch/mips/include/asm/mach-dec/cpu-feature-overrides.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit cc23cafe2b4a83f98b4e69d904038ccd6cad7bf3 Author: Brian Norris Date: Mon May 18 16:21:12 2015 -0700 MIPS: netlogic: remove unnecessary MTD partition probe specification The cmdlinepart parser is already supported in the default probe. Signed-off-by: Brian Norris Cc: linux-mtd@lists.infradead.org Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10071/ Signed-off-by: Ralf Baechle arch/mips/netlogic/xlr/platform-flash.c | 3 --- 1 file changed, 3 deletions(-) commit 9a20b09285bbd75ccc2ca78233241f8e31d54a28 Author: Maciej W. Rozycki Date: Wed May 27 14:15:20 2015 +0100 MIPS: tlb-r3k: Optimise a TLBWI barrier in TLB invalidation Replace an explicit barrier with a useful processor instruction in TLB invalidation, following several other such cases elsewhere in `tlb-r3k.c'. Signed-off-by: Maciej W. Rozycki Cc: James Hogan Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10196/ Signed-off-by: Ralf Baechle arch/mips/mm/tlb-r3k.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 3bcb03f3a7160e411c5f335028a5c70b32f0edb7 Author: Maciej W. Rozycki Date: Wed May 27 14:15:15 2015 +0100 MIPS: tlb-r3k: Move CP0.Wired register initialisation to `tlb_init' Move the initialisation of the CP0.Wired register implemented by Toshiba TX3922 and TX3927 processors from `tx39_cache_init' to `tlb_init' where it belongs, correcting code structure and making sure initialisation does not rely on `tx39_cache_init' being called before `tlb_init' to work correctly. Make `r3k_have_wired_reg' static as it's no longer externally referred to; remove a stale declaration too. Signed-off-by: Maciej W. Rozycki Cc: James Hogan Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10195/ Signed-off-by: Ralf Baechle arch/mips/lib/r3k_dump_tlb.c | 2 -- arch/mips/mm/c-tx39.c | 4 ---- arch/mips/mm/tlb-r3k.c | 9 ++++++++- 3 files changed, 8 insertions(+), 7 deletions(-) commit dbfbf60f4a6b058b873b0d37e272fc3bd2f1356d Author: Maciej W. Rozycki Date: Wed May 27 14:15:08 2015 +0100 MIPS: tlb-r3k: Also invalidate wired TLB entries on boot Most R3k processor implementations have their 8 first TLB entries fixed as wired, so we always skip them in TLB invalidation. That however means any leftover entries present there at boot will stay throughout the life of the kernel, unless replaced with new ones. So rename `local_flush_tlb_all' to `local_flush_tlb_from' and make it accept the TLB entry to start from. Then use 0 initially at bootstrap, and the first regular entry later on, bypassing any wired entries. Wrap the latter arrangement into a new `local_flush_tlb_all' entry point. There is no need to disable interrupts in the call made from `tlb_init' because it's made before the interrupt subsystem has been initialised; this is also true for secondary processors, should we ever support R3k SMP. So move this piece of code to new `local_flush_tlb_all'. Signed-off-by: Maciej W. Rozycki Cc: James Hogan Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10194/ Signed-off-by: Ralf Baechle arch/mips/mm/tlb-r3k.c | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) commit 24ca1d9896bb9bbd7625e3596bac4ea2fe74c725 Author: James Hogan Date: Tue May 19 09:50:38 2015 +0100 MIPS: dump_tlb: Take XPA into account XPA extends the physical addresses on MIPS32, including the EntryLo registers. Update dump_tlb() to concatenate the PFNX field from the high end of the EntryLo registers (as read by mfhc0). The width of physical and virtual addresses are also separated to show only 8 nibbles of virtual but 11 nibbles of physical with XPA. Signed-off-by: James Hogan Cc: Steven J. Hill Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10077/ Signed-off-by: Ralf Baechle arch/mips/lib/dump_tlb.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) commit c2bc435e4f2cd5f010063b49f68e5b2cfaccc84e Author: James Hogan Date: Tue May 19 09:50:37 2015 +0100 MIPS: dump_tlb: Take RI/XI bits into account The RI/XI bits when present are above the PFN field in the EntryLo registers, at bits 63,62 when read with dmfc0, and bits 31,30 when read with mfc0. This makes them appear as part of the physical address, since the other bits are masked with PAGE_MASK, for example: Index: 253 pgmask=16kb va=77b18000 asid=75 [pa=1000744000 c=5 d=1 v=1 g=0] [pa=100134c000 c=5 d=1 v=1 g=0] The physical addresses have bit 36 set, which corresponds to bit 30 of EntryLo1, the XI bit. Explicitly mask off the RI and XI bits from the printed physical address, and print the RI and XI bits separately if they exist, giving output more like this: Index: 226 pgmask=16kb va=77be0000 asid=79 [ri=0 xi=1 pa=01288000 c=5 d=1 v=1 g=0] [ri=0 xi=0 pa=010e4000 c=5 d=0 v=1 g=0] Cc: linux-mips@linux-mips.org Cc: James Hogan Cc: David Daney Patchwork: https://patchwork.linux-mips.org/patch/10080/ Signed-off-by: Ralf Baechle arch/mips/lib/dump_tlb.c | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) commit decebccd76e4da9bb096962c230b6ed740606e49 Author: James Hogan Date: Tue May 19 09:50:36 2015 +0100 MIPS: dump_tlb: Take EHINV bit into account The EHINV bit in EntryHi allows a TLB entry to be properly marked invalid so that EntryHi doesn't have to be set to a unique value to avoid machine check exceptions due to multiple matching entries. Unfortunately dump_tlb() doesn't take this into account so it will print all the uninteresting invalid TLB entries if the current ASID happens to be 00. Therefore add a condition to skip entries which are marked invalid with the EHINV bit. Signed-off-by: James Hogan Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10076/ Signed-off-by: Ralf Baechle arch/mips/lib/dump_tlb.c | 3 +++ 1 file changed, 3 insertions(+) commit 48269c78fb04a84b4d190cac8e1fbf24ded53505 Author: James Hogan Date: Tue May 19 09:50:35 2015 +0100 MIPS: dump_tlb: Take global bit into account The TLB only matches the ASID when the global bit isn't set, so dump_tlb() shouldn't really be skipping global entries just because the ASID doesn't match. Fix the condition to read the TLB entry's global bit from EntryLo0. Note that after a TLB read the global bits in both EntryLo registers reflect the same global bit in the TLB entry. Signed-off-by: James Hogan Cc: Maciej W. Rozycki Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10079/ Signed-off-by: Ralf Baechle arch/mips/lib/dump_tlb.c | 10 +++++++++- arch/mips/lib/r3k_dump_tlb.c | 5 +++-- 2 files changed, 12 insertions(+), 3 deletions(-) commit d7f5499dc22fbb45e9e6bab53be5e3b241122444 Author: James Hogan Date: Tue May 19 09:50:34 2015 +0100 MIPS: dump_tlb: Make use of EntryLo bit definitions Make use of recently added EntryLo bit definitions in mipsregs.h when dumping TLB contents. Signed-off-by: James Hogan Cc: Maciej W. Rozycki Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10075/ Signed-off-by: Ralf Baechle arch/mips/lib/dump_tlb.c | 16 ++++++++-------- arch/mips/lib/r3k_dump_tlb.c | 8 ++++---- 2 files changed, 12 insertions(+), 12 deletions(-) commit d1ce483e45ba86bc3b59ba46cca9ad044b09051e Author: James Hogan Date: Tue May 19 09:50:33 2015 +0100 MIPS: dump_tlb: Refactor TLB matching Refactor the TLB matching code in dump_tlb() slightly so that the conditions which can cause a TLB entry to be skipped can be more easily extended. This should prevent the match condition getting unwieldy once it is updated to take further conditions into account. Signed-off-by: James Hogan Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10081/ Signed-off-by: Ralf Baechle arch/mips/lib/dump_tlb.c | 65 ++++++++++++++++++++++++++---------------------- 1 file changed, 35 insertions(+), 30 deletions(-) commit 137877e4327075d839f15776cb6865ee171f2175 Author: James Hogan Date: Tue May 19 09:50:32 2015 +0100 MIPS: dump_tlb: Use tlbr hazard macros Use the new tlb read hazard macros from rather than the local BARRIER() macro which uses 7 ops regardless of the kernel configuration. We use mtc0_tlbr_hazard for the hazard between mtc0 to the index register and the tlbr, and tlb_read_hazard for the hazard between the tlbr and the mfc0 of the TLB registers written by tlbr. Signed-off-by: James Hogan Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10074/ Signed-off-by: Ralf Baechle arch/mips/lib/dump_tlb.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) commit 8ab6abcb6aa475f458a3a81a69cca17840daafd1 Author: James Hogan Date: Tue May 19 09:50:31 2015 +0100 MIPS: mipsregs.h: Add EntryLo bit definitions Add definitions for EntryLo register bits in mipsregs.h. The R4000 compatible ones are prefixed MIPS_ENTRYLO_ and the R3000 compatible ones are prefixed R3K_ENTRYLO_. These will be used in later patches. Signed-off-by: James Hogan Cc: linux-mips@linux-mips.org Cc: Maciej W. Rozycki Patchwork: https://patchwork.linux-mips.org/patch/10073/ Signed-off-by: Ralf Baechle arch/mips/include/asm/mipsregs.h | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) commit e50f0e313548854c2709a5ba9c61623cf189a9a1 Author: James Hogan Date: Tue May 19 09:50:30 2015 +0100 MIPS: hazards: Add hazard macros for tlb read Add hazard macros to for the following hazards around tlbr (TLB read) instructions, which are used in TLB dumping code and some KVM TLB management code: - mtc0_tlbr_hazard Between mtc0 (Index) and tlbr. This is copied from mtc0_tlbw_hazard in all cases on the assumption that tlbr always has similar data user timings to tlbw. - tlb_read_hazard Between tlbr and mfc0 (various TLB registers). This is copied from tlbw_use_hazard in all cases on the assumption that tlbr has similar data writer characteristics to tlbw, and mfc0 has similar data user characteristics to loads and stores. Signed-off-by: James Hogan Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10078/ Signed-off-by: Ralf Baechle arch/mips/include/asm/hazards.h | 52 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) commit d1e9a4f547354ca258b6200ab6b1f0e4909b92e8 Author: James Hogan Date: Tue May 19 09:50:29 2015 +0100 MIPS: Add SysRq operation to dump TLBs on all CPUs Add a MIPS specific SysRq operation to dump the TLB entries on all CPUs, using the 'x' trigger key. Signed-off-by: James Hogan Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10072/ Signed-off-by: Ralf Baechle arch/mips/kernel/Makefile | 1 + arch/mips/kernel/sysrq.c | 77 +++++++++++++++++++++++++++++++++++++++++++++++ drivers/tty/sysrq.c | 1 + 3 files changed, 79 insertions(+) commit 37dd3818d1f3d875125cffb6d84392df1a38f2f9 Author: Petri Gynther Date: Fri May 8 15:10:10 2015 -0700 MIPS: traps: print Exception Code in __show_regs() Print Exception Code when printing the Cause register. Signed-off-by: Petri Gynther Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/9998/ Signed-off-by: Ralf Baechle arch/mips/kernel/traps.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 2623899459da55a0bbec247a5e3664cb798be241 Author: Rafał Miłecki Date: Tue May 12 13:05:18 2015 +0200 MIPS: BCM47xx: Read board info for all bcma buses Extra bcma buses may be totally different models, see following dump: boardtype=0x0646 pci/1/1/boardtype=0x0545 pci/2/1/boardtype=0x62b We need to detect them properly to allow drivers apply some board specific hacks. [ralf@linux-mips.org: folded in Rafal's fix.] Signed-off-by: Rafał Miłecki Cc: linux-mips@linux-mips.org Cc: Hauke Mehrtens Patchwork: https://patchwork.linux-mips.org/patch/10028/ Patchwork: https://patchwork.linux-mips.org/patch/10048/ Signed-off-by: Ralf Baechle arch/mips/bcm47xx/setup.c | 3 -- arch/mips/bcm47xx/sprom.c | 44 ++++++++++++++-------------- arch/mips/include/asm/mach-bcm47xx/bcm47xx.h | 4 --- 3 files changed, 22 insertions(+), 29 deletions(-) commit 6e122ac0053d071976686dd04cdd60ea8039bb7a Author: Rafał Miłecki Date: Tue May 12 11:54:48 2015 +0200 MIPS: BCM47xx: Extract info about et2 interface New devices may have more than 1 Ethernet core (device). We should extract info about them to make it available to Ethernet drivers. Signed-off-by: Rafał Miłecki Cc: linux-mips@linux-mips.org Cc: Hauke Mehrtens Cc: Hante Meuleman Cc: Ian Kent Patchwork: https://patchwork.linux-mips.org/patch/10027/ Signed-off-by: Ralf Baechle arch/mips/bcm47xx/sprom.c | 6 ++++++ include/linux/ssb/ssb.h | 3 +++ 2 files changed, 9 insertions(+) commit 1387fe7d292b66677dae31d25a8e3c953bf21748 Author: Rafał Miłecki Date: Tue May 12 11:31:02 2015 +0200 MIPS: BCM47xx: Extract all boardflags to new u32 fields For years we planned to get rid of old u16 fields, let's start doing it with MIPS code. This process will take some time, it requires doing the same in ssb/bcma and then switching all drivers to new fields. This will be handled in separated patches submitted to appropriate trees. Signed-off-by: Rafał Miłecki Cc: linux-mips@linux-mips.org Cc: Hauke Mehrtens Patchwork: https://patchwork.linux-mips.org/patch/10026/ Signed-off-by: Ralf Baechle arch/mips/bcm47xx/sprom.c | 3 +++ include/linux/ssb/ssb.h | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) commit 5bfad4eee93df88def330ac9b021bacccb51bdff Author: Rafał Miłecki Date: Tue May 12 18:46:12 2015 +0200 MIPS: BCM47XX: Simplify function looking for NVRAM entry First of all it shouldn't modify copied NVRAM just to make sure it can loop over all entries. It's enough to just compare current position pointer with the end of buffer address. Secondly buffer is guaranteed to be \0 ended, so we don't need strnchr. Signed-off-by: Rafał Miłecki Cc: linux-mips@linux-mips.org Cc: Hauke Mehrtens Cc: Hante Meuleman Cc: Ian Kent Patchwork: https://patchwork.linux-mips.org/patch/10032/ Signed-off-by: Ralf Baechle arch/mips/bcm47xx/nvram.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) commit d28c9a55c297db61018744007b6c86abff308751 Author: Rafał Miłecki Date: Tue May 12 18:46:11 2015 +0200 MIPS: BCM47XX: Make sure NVRAM buffer ends with \0 This will simplify reading its contents. Signed-off-by: Rafał Miłecki Cc: linux-mips@linux-mips.org Cc: Hauke Mehrtens Cc: Hante Meuleman Cc: Ian Kent Patchwork: https://patchwork.linux-mips.org/patch/10031/ Signed-off-by: Ralf Baechle arch/mips/bcm47xx/nvram.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 2fb7ac5ba680aee0a22bd5cd6fb5c14d248a313d Author: Ralf Baechle Date: Wed May 6 12:09:54 2015 +0100 MIPS: Malta: Make maltasmvp_defconfig useful again. Signed-off-by: Ralf Baechle arch/mips/configs/maltasmvp_defconfig | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) commit fb59e394c30caa7760142996d2f96ec12901e4d7 Author: Ralf Baechle Date: Fri Sep 6 20:24:48 2013 +0200 MIPS: ftrace: Enable support for syscall tracepoints. All the necessary support code is already there so all that's left is to enable the feature in kconfig. Signed-off-by: Ralf Baechle arch/mips/Kconfig | 1 + 1 file changed, 1 insertion(+) commit edfc39012364a6ea8e4c7067c2655c92c2d02df4 Author: Mika Westerberg Date: Wed Jun 17 12:08:38 2015 +0300 i2c: designware: Make sure the device is suspended before disabling runtime PM The driver calls pm_runtime_put() right before pm_runtime_disable() in its ->remove() hook to make sure clock is gated etc. However, it turns out that pm_runtime_put() only calls ->idle() hook without actually suspending anything. The following pm_runtime_disable() will prevent the driver from suspending thus leaving it "active". It is better to suspend the device synchronously to make sure it is actually suspended before disabling runtime PM from it. While there, undo call to pm_runtime_use_autosuspend(). Signed-off-by: Mika Westerberg Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-designware-platdrv.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 3aaa34b9923b994c13267e05ce8246faa1e8c8eb Author: Wolfram Sang Date: Tue Jun 16 19:57:29 2015 +0200 i2c: tegra: apply size limit quirk payload_size is a 12 bit field in the HW register, so add a limit for this size. That way we gracefully reject the message beforehand instead of generating an OOPS while transferring. Verified using some older Tegra2 documentation and a more recent Jetson TK1 board. Signed-off-by: Wolfram Sang Reviewed-by: Alexander Sverdlin drivers/i2c/busses/i2c-tegra.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 4bb28e37765f4b5b18cb3b9242aa8542e8c4b8b4 Author: Wolfram Sang Date: Tue Jun 16 19:47:21 2015 +0200 i2c: tegra: don't advertise SMBUS_QUICK This HW cannot send 0-byte-length messages and the driver discards them. So, we should not advertise SMBUS_QUICK. Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-tegra.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1cb6c2151850584ee805fdcf088af0bb81f4b086 Author: Paul Gortmaker Date: Sat Jun 20 19:02:32 2015 -0400 clocksource: Increase dependencies of timer-stm32 to limit build wreckage This driver leaks out into arch/parisc builds that don't have CONFIG_GENERIC_CLOCKEVENTS, leading to the following (truncated) wreckage: CC drivers/clocksource/timer-stm32.o drivers/clocksource/timer-stm32.c:38:28: error: field 'evtdev' has incomplete type drivers/clocksource/timer-stm32.c:44:19: warning: 'enum clock_event_mode' declared inside parameter list drivers/clocksource/timer-stm32.c:44:19: warning: its scope is only this definition or declaration, which is probably not what you want drivers/clocksource/timer-stm32.c:43:62: error: parameter 1 ('mode') has incomplete type drivers/clocksource/timer-stm32.c:43:13: error: function declaration isn't a prototype drivers/clocksource/timer-stm32.c: In function 'stm32_clock_event_set_mode': drivers/clocksource/timer-stm32.c:47:3: error: type defaults to 'int' in declaration of '__mptr' drivers/clocksource/timer-stm32.c:47:3: warning: initialization from incompatible pointer type drivers/clocksource/timer-stm32.c:51:7: error: 'CLOCK_EVT_MODE_PERIODIC' undeclared (first use in this function) drivers/clocksource/timer-stm32.c:51:7: note: each undeclared identifier is reported only once for each function it appears in drivers/clocksource/timer-stm32.c:56:7: error: 'CLOCK_EVT_MODE_ONESHOT' undeclared (first use in this function) Tighten up the dependencies to limit where it gets built by copying the style of the Kconfig line for CLKSRC_EFM32 a few lines above. Signed-off-by: Paul Gortmaker Cc: Linus Walleij Cc: Chanwoo Choi Cc: Maxime Coquelin Cc: Daniel Lezcano Link: http://lkml.kernel.org/r/1434841352-24300-1-git-send-email-paul.gortmaker@windriver.com Signed-off-by: Thomas Gleixner drivers/clocksource/Kconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 54db01a20eb0485f586299aaaceb9d064e1482fe Merge: a2bb6d7 ebb56d3 Author: David S. Miller Date: Sun Jun 21 10:29:07 2015 -0700 Merge branch 'bna-cleanups' Ivan Vecera says: ==================== bna: clean-up 2 Next round of cleaning patches. ==================== Signed-off-by: David S. Miller commit ebb56d37abab0465a95710d32263c9b3e0b1f6c5 Author: Ivan Vecera Date: Wed Jun 17 18:41:58 2015 +0200 bna: remove superfluous parentheses Signed-off-by: Ivan Vecera Signed-off-by: David S. Miller .../net/ethernet/brocade/bna/bfa_defs_mfg_comm.h | 2 +- drivers/net/ethernet/brocade/bna/bfa_ioc.c | 10 +-- drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c | 98 +++++++++++----------- drivers/net/ethernet/brocade/bna/bna_tx_rx.c | 4 +- drivers/net/ethernet/brocade/bna/bnad.c | 12 +-- drivers/net/ethernet/brocade/bna/bnad_debugfs.c | 6 +- 6 files changed, 66 insertions(+), 66 deletions(-) commit 558caad749d30eede0c28b90682ade3f53e43bcd Author: Ivan Vecera Date: Wed Jun 17 18:41:57 2015 +0200 bna: make pointers to read-only inputs const Signed-off-by: Ivan Vecera Signed-off-by: David S. Miller drivers/net/ethernet/brocade/bna/bna.h | 19 +++++++++---------- drivers/net/ethernet/brocade/bna/bna_tx_rx.c | 14 +++++++------- drivers/net/ethernet/brocade/bna/bnad.c | 6 +++--- drivers/net/ethernet/brocade/bna/bnad.h | 2 +- 4 files changed, 20 insertions(+), 21 deletions(-) commit 8e8942b1b3f7db5ed3ff5be0ecf0a94311dc4e3f Author: Ivan Vecera Date: Wed Jun 17 18:41:56 2015 +0200 bna: remove unnecessary cast of BIT value BIT value is already unsigned so casting is not necessary. Signed-off-by: Ivan Vecera Signed-off-by: David S. Miller drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c | 3 +-- drivers/net/ethernet/brocade/bna/bna_enet.c | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) commit 468479e6043c84f5a65299cc07cb08a22a28c2b1 Author: Willem de Bruijn Date: Wed Jun 17 15:59:34 2015 -0400 packet: avoid out of bounds read in round robin fanout PACKET_FANOUT_LB computes f->rr_cur such that it is modulo f->num_members. It returns the old value unconditionally, but f->num_members may have changed since the last store. Ensure that the return value is always < num. When modifying the logic, simplify it further by replacing the loop with an unconditional atomic increment. Fixes: dc99f600698d ("packet: Add fanout support.") Suggested-by: Eric Dumazet Signed-off-by: Willem de Bruijn Acked-by: Eric Dumazet Signed-off-by: David S. Miller net/packet/af_packet.c | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) commit a2bb6d7d6f4249691b6a554cde59969d55b0d9c3 Author: Roopa Prabhu Date: Wed Jun 17 11:07:01 2015 -0700 ipv4: include NLM_F_APPEND flag in append route notifications This patch adds NLM_F_APPEND flag to struct nlmsg_hdr->nlmsg_flags in newroute notifications if the route add was an append. (This is similar to how NLM_F_REPLACE is already part of new route replace notifications today) This helps userspace determine if the route add operation was an append. Signed-off-by: Roopa Prabhu Acked-by: Scott Feldman Signed-off-by: David S. Miller net/ipv4/fib_trie.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit b42be38b2778eda2237fc759e55e3b698b05b315 Author: David Herrmann Date: Wed Jun 17 17:14:33 2015 +0200 netlink: add API to retrieve all group memberships This patch adds getsockopt(SOL_NETLINK, NETLINK_LIST_MEMBERSHIPS) to retrieve all groups a socket is a member of. Currently, we have to use getsockname() and look at the nl.nl_groups bitmask. However, this mask is limited to 32 groups. Hence, similar to NETLINK_ADD_MEMBERSHIP and NETLINK_DROP_MEMBERSHIP, this adds a separate sockopt to manager higher groups IDs than 32. This new NETLINK_LIST_MEMBERSHIPS option takes a pointer to __u32 and the size of the array. The array is filled with the full membership-set of the socket, and the required array size is returned in optlen. Hence, user-space can retry with a properly sized array in case it was too small. Signed-off-by: David Herrmann Signed-off-by: David S. Miller include/uapi/linux/netlink.h | 17 +++++++++-------- net/netlink/af_netlink.c | 22 ++++++++++++++++++++++ 2 files changed, 31 insertions(+), 8 deletions(-) commit e0df02e0c2118892b302e8248dbbb21698bedfed Author: Craig Gallek Date: Wed Jun 17 10:59:10 2015 -0400 sock_diag: fetch source port from inet_sock When an inet_sock is destroyed, its source port (sk_num) is set to zero as part of the unhash procedure. In order to supply a source port as part of the NETLINK_SOCK_DIAG socket destruction broadcasts, the source port number must be read from inet_sport instead. Tested: ss -E Signed-off-by: Craig Gallek Signed-off-by: David S. Miller net/ipv4/inet_diag.c | 2 ++ 1 file changed, 2 insertions(+) commit 51f458d9612177f69c2e2c437034ae15f93078e7 Author: Johannes Berg Date: Wed Jun 17 13:54:54 2015 +0200 mac80211: fix locking in update_vlan_tailroom_need_count() Unfortunately, Michal's change to fix AP_VLAN crypto tailroom caused a locking issue that was reported by lockdep, but only in a few cases - the issue was a classic ABBA deadlock caused by taking the mtx after the key_mtx, where normally they're taken the other way around. As the key mutex protects the field in question (I'm adding a few annotations to make that clear) only the iteration needs to be protected, but we can also iterate the interface list with just RCU protection while holding the key mutex. Fixes: f9dca80b98ca ("mac80211: fix AP_VLAN crypto tailroom calculation") Signed-off-by: Johannes Berg Signed-off-by: David S. Miller net/mac80211/key.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) commit b7d3282a245f44286b88e436b1d08c518cdf4569 Author: Antonio Borneo Date: Wed Jun 17 19:42:31 2015 +0800 net: via/Kconfig: replace USE_OF with OF_??? USE_OF is used as intermediate Kconfig option by few arch's (ARM, MIPS, Xtensa). Replace instances of USE_OF outside of arch folders with proper OF_???. Signed-off-by: Antonio Borneo Signed-off-by: David S. Miller drivers/net/ethernet/via/Kconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit ecdd1409ba8b6fd68af2f6440b6d595c5df52410 Author: Antonio Borneo Date: Wed Jun 17 19:41:22 2015 +0800 net: via-rhine: remove unneeded include file Signed-off-by: Antonio Borneo Signed-off-by: David S. Miller drivers/net/ethernet/via/via-rhine.c | 1 - 1 file changed, 1 deletion(-) commit 638579f00a9b810ae37c7086b0d20634c1e0234e Author: Zhaowei Yuan Date: Wed Jun 17 17:56:27 2015 +0800 net: Update out-of-date comment Struct inet_proto no longer exists, so update the comment which is out of date. Signed-off-by: Zhaowei Yuan Signed-off-by: David S. Miller include/net/sock.h | 1 - 1 file changed, 1 deletion(-) commit 36c01245eb8046c16eee6431e7dbfbb302635fa8 Author: Oliver Hartkopp Date: Sun Jun 21 18:50:44 2015 +0200 can: fix loss of CAN frames in raw_rcv As reported by Manfred Schlaegl here http://marc.info/?l=linux-netdev&m=143482089824232&w=2 commit 514ac99c64b "can: fix multiple delivery of a single CAN frame for overlapping CAN filters" requires the skb->tstamp to be set to check for identical CAN skbs. As net timestamping is influenced by several players (netstamp_needed and netdev_tstamp_prequeue) Manfred missed a proper timestamp which leads to CAN frame loss. As skb timestamping became now mandatory for CAN related skbs this patch makes sure that received CAN skbs always have a proper timestamp set. Maybe there's a better solution in the future but this patch fixes the CAN frame loss so far. Reported-by: Manfred Schlaegl Signed-off-by: Oliver Hartkopp Cc: linux-stable Signed-off-by: Marc Kleine-Budde drivers/net/can/dev.c | 5 +++++ drivers/net/can/slcan.c | 1 + drivers/net/can/vcan.c | 3 +++ net/can/af_can.c | 6 +++++- 4 files changed, 14 insertions(+), 1 deletion(-) commit 9574dc64578dd9bd7856b17068f3692ca7bcae86 Author: Hariprasad Shenai Date: Wed Jun 17 14:40:04 2015 +0530 cxgb4: Add PCI device ID for custom T522 & T520 adapter Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/t4_pci_id_tbl.h | 2 ++ 1 file changed, 2 insertions(+) commit 7b48f45797be7c4bdbb772de80efe6bdcd78e81d Author: Nicolai Stange Date: Wed Jun 17 03:05:02 2015 +0200 isdn: disable HiSax NetJet driver on microblaze arch Fix an allmodconfig compilation failer on microblaze due to big endian architectures being apparently unsupported by the NetJet code: drivers/isdn/hisax/nj_s.c: In function 'setup_netjet_s': drivers/isdn/hisax/nj_s.c:265:2: error: #error "not running on big endian machines now" Modify the relevant Kconfig such that the NetJet code is not built on microblaze anymore. Note that endianess on microblaze is not determined through Kconfig, but by means of a compiler provided CPP macro, namely __MICROBLAZEEL__. However, gcc defaults to big endianess on that platform. Signed-off-by: Nicolai Stange Acked-by: Jean Delvare Signed-off-by: David S. Miller drivers/isdn/hisax/Kconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 3dc817d21279ea4663bf32282718e2abbfaa4832 Author: Raghu Vatsavayi Date: Tue Jun 16 16:51:43 2015 -0700 Modify Liquidio Kconfig for crc lib Following patch contains changes in liquidio Kconfig for selecting LIBCRC32C. Signed-off-by: Derek Chickles Signed-off-by: Satanand Burla Signed-off-by: Felix Manlunas Signed-off-by: Raghu Vatsavayi Signed-off-by: David S. Miller drivers/net/ethernet/cavium/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 92a486ca3a45777bdec0b9fd225a8eeec82bddb7 Author: Kees Cook Date: Tue Jun 16 15:36:17 2015 -0700 cxgb3: avoid needless buffer copy for firmware There's no reason to perform a buffer copy for the firmware name. This also avoids a (currently impossible with current callers) NULL dereference if there was no matching firmware. Signed-off-by: Kees Cook Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit a55e1c5c2640549ff3beb843f7ecaa242d69c351 Author: Andrea Parri Date: Wed Jun 17 00:16:59 2015 +0200 pkt_sched: sch_qfq: remove redundant -if- control statement The control !hlist_unhashed() in qfq_destroy_agg() is unnecessary because already performed in hlist_del_init(), so remove it. Signed-off-by: Andrea Parri Signed-off-by: David S. Miller net/sched/sch_qfq.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 2c51a97f76d20ebf1f50fef908b986cb051fdff9 Author: Julian Anastasov Date: Tue Jun 16 22:56:39 2015 +0300 neigh: do not modify unlinked entries The lockless lookups can return entry that is unlinked. Sometimes they get reference before last neigh_cleanup_and_release, sometimes they do not need reference. Later, any modification attempts may result in the following problems: 1. entry is not destroyed immediately because neigh_update can start the timer for dead entry, eg. on change to NUD_REACHABLE state. As result, entry lives for some time but is invisible and out of control. 2. __neigh_event_send can run in parallel with neigh_destroy while refcnt=0 but if timer is started and expired refcnt can reach 0 for second time leading to second neigh_destroy and possible crash. Thanks to Eric Dumazet and Ying Xue for their work and analyze on the __neigh_event_send change. Fixes: 767e97e1e0db ("neigh: RCU conversion of struct neighbour") Fixes: a263b3093641 ("ipv4: Make neigh lookups directly in output packet path.") Fixes: 6fd6ce2056de ("ipv6: Do not depend on rt->n in ip6_finish_output2().") Cc: Eric Dumazet Cc: Ying Xue Signed-off-by: Julian Anastasov Acked-by: Eric Dumazet Signed-off-by: David S. Miller net/core/neighbour.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 68946159da1b0b6791c5990242940950b9383cfc Author: Julien Grall Date: Tue Jun 16 20:10:48 2015 +0100 net/xen-netback: Don't mix hexa and decimal with 0x in the printf format Append 0x to all %x in order to avoid while reading when there is other decimal value in the log. Also replace some of the hexadecimal print to decimal to uniformize the format with netfront. Signed-off-by: Julien Grall Cc: Wei Liu Cc: Ian Campbell Cc: netdev@vger.kernel.org Acked-by: Ian Campbell Signed-off-by: David S. Miller drivers/net/xen-netback/netback.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 44f0764cfec9c607d43cad6a51e8592c7b2b9b84 Author: Julien Grall Date: Tue Jun 16 20:10:47 2015 +0100 net/xen-netback: Remove unused code in xenvif_rx_action The variables old_req_cons and ring_slots_used are assigned but never used since commit 1650d5455bd2dc6b5ee134bd6fc1a3236c266b5b "xen-netback: always fully coalesce guest Rx packets". Signed-off-by: Julien Grall Acked-by: Wei Liu Cc: Ian Campbell Cc: netdev@vger.kernel.org Signed-off-by: David S. Miller drivers/net/xen-netback/netback.c | 5 ----- 1 file changed, 5 deletions(-) commit 6c10127d91bdc80e02938085d03c232ae3118ad5 Author: Julien Grall Date: Tue Jun 16 20:10:46 2015 +0100 net/xen-netfront: Correct printf format in xennet_get_responses rx->status is an int16_t, print it using %d rather than %u in order to have a meaningful value when the field is negative. Also use %u rather than %x for rx->offset. Signed-off-by: Julien Grall Reviewed-by: David Vrabel Cc: Konrad Rzeszutek Wilk Cc: Boris Ostrovsky Cc: netdev@vger.kernel.org Signed-off-by: David S. Miller drivers/net/xen-netfront.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d2a9ec6472650c49ac3f285637b9c04b53f11ae6 Author: Fabian Frederick Date: Tue Jun 16 20:44:07 2015 +0200 net: rds: use for_each_sg() for scatterlist parsing This patch also renames sg to sglist and aligns function parameters. See Documentation/DMA-API.txt - Part Id for scatterlist details Signed-off-by: Fabian Frederick Signed-off-by: David S. Miller net/rds/ib.h | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) commit 59f211181b5b10d4a95e1b9226febb0c0b6497c6 Author: Willem de Bruijn Date: Tue Jun 16 12:51:37 2015 -0400 packet: free packet_rollover after synchronize_net Destruction of the po->rollover must be delayed until there are no more packets in flight that can access it. The field is destroyed in packet_release, before synchronize_net. Delay using rcu. Fixes: 0648ab70afe6 ("packet: rollover prepare: per-socket state") Suggested-by: Eric Dumazet Signed-off-by: Willem de Bruijn Acked-by: Eric Dumazet Signed-off-by: David S. Miller net/packet/af_packet.c | 3 ++- net/packet/internal.h | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) commit f98f4514d07871da7a113dd9e3e330743fd70ae4 Author: Eric Dumazet Date: Tue Jun 16 07:59:11 2015 -0700 packet: read num_members once in packet_rcv_fanout() We need to tell compiler it must not read f->num_members multiple times. Otherwise testing if num is not zero is flaky, and we could attempt an invalid divide by 0 in fanout_demux_cpu() Note bug was present in packet_rcv_fanout_hash() and packet_rcv_fanout_lb() but final 3.1 had a simple location after commit 95ec3eb417115fb ("packet: Add 'cpu' fanout policy.") Fixes: dc99f600698dc ("packet: Add fanout support.") Signed-off-by: Eric Dumazet Cc: Willem de Bruijn Signed-off-by: David S. Miller net/packet/af_packet.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b2b3c3dc6a7bef886850920f5f5dca041b443aa0 Author: Hartmut Knaack Date: Sun Jun 21 12:15:50 2015 +0200 iio:adc:cc10001_adc: fix Kconfig dependency The Cosmic Circuits 10001 ADC driver depends on HAS_IOMEM, HAVE_CLK and REGULATOR together, not just any of these. Signed-off-by: Hartmut Knaack Cc: Signed-off-by: Jonathan Cameron drivers/iio/adc/Kconfig | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit cb17b2a674f2059343f997599b4b001e64eec516 Author: Thomas Gleixner Date: Sun Jun 21 16:21:50 2015 +0200 x86/hpet: Use proper hpet device number for MSI allocation hpet_assign_irq() is called with hpet_device->num as "hardware interrupt number", but hpet_device->num is initialized after the interrupt has been assigned, so it's always 0. As a consequence only the first MSI allocation succeeds, the following ones fail because the "hardware interrupt number" already exists. Move the initialization of dev->num and other fields before the call to hpet_assign_irq(), which is the ordering before the offending commit which introduced that regression. Fixes: "3cb96f0c9733 x86/hpet: Enhance HPET IRQ to support hierarchical irqdomains" Reported-by: Sergey Senozhatsky Signed-off-by: Thomas Gleixner Link: http://lkml.kernel.org/r/alpine.DEB.2.11.1506211635010.4107@nanos Cc: Jiang Liu Cc: Borislav Petkov arch/x86/kernel/hpet.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit 33361e5678a541f82f29f85467d589e7bf8da76b Author: Peter Meerwald Date: Sun Jun 14 23:09:35 2015 +0200 iio: light: tcs3414: Fix bug preventing to set integration time the millisecond values in tcs3414_times should be checked against val2, not val, which is always zero. Signed-off-by: Peter Meerwald Reported-by: Stephan Kleisinger Cc: Signed-off-by: Jonathan Cameron drivers/iio/light/tcs3414.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7a1d0d91c94305fa5802a53df3a54c0ea1963c48 Author: Hartmut Knaack Date: Mon Jun 15 23:48:24 2015 +0200 iio:accel:bmc150-accel: fix counting direction In bmc150_accel_unregister_triggers() triggers should be unregistered in reverse order of registration. Trigger registration starts with number 0, counting up. In consequence, trigger number needs to be count down here. Signed-off-by: Hartmut Knaack Reviewed-by: Octavian Purdila Cc: Signed-off-by: Jonathan Cameron drivers/iio/accel/bmc150-accel.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c288503b32e8c5534062a05ec565d28bffa06db3 Author: Hartmut Knaack Date: Thu Jun 18 00:31:59 2015 +0200 iio:light:cm3323: clear bitmask before set When setting the bits for integration time, the appropriate bitmask needs to be cleared first. Signed-off-by: Hartmut Knaack Cc: Signed-off-by: Jonathan Cameron drivers/iio/light/cm3323.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2ab5f39bc7825808e0fa1e7e5f0b23e174563467 Author: Jan Leupold Date: Wed Jun 17 18:21:36 2015 +0200 iio: adc: at91_adc: allow to use full range of startup time The DT-Property "atmel,adc-startup-time" is stored in an u8 for a microsecond value. When trying to increase the value of STARTUP in Register AT91_ADC_MR some higher values can't be reached. Change the type in function parameter and private structure field from u8 to u32. Signed-off-by: Jan Leupold [nicolas.ferre@atmel.com: change commit message, increase u16 to u32 for startup time] Signed-off-by: Nicolas Ferre Acked-by: Alexandre Belloni Cc: Signed-off-by: Jonathan Cameron drivers/iio/adc/at91_adc.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit adfa969850ae93beca57f7527f0e4dc10cbe1309 Author: JM Friedt Date: Fri Jun 19 14:48:06 2015 +0200 iio: DAC: ad5624r_spi: fix bit shift of output data value The value sent on the SPI bus is shifted by an erroneous number of bits. The shift value was already computed in the iio_chan_spec structure and hence subtracting this argument to 16 yields an erroneous data position in the SPI stream. Signed-off-by: JM Friedt Acked-by: Lars-Peter Clausen Cc: Signed-off-by: Jonathan Cameron drivers/iio/dac/ad5624r_spi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 7eac7144dd1ef11c05a5f7605de6afa3770982e4 Author: Fabio Estevam Date: Sat Jun 20 15:30:22 2015 -0300 crypto: sahara - propagate the error on clk_disable_unprepare() failure clk_prepare_enable() may fail, so we should better check its return value and propagate it in the case of error. Signed-off-by: Fabio Estevam Signed-off-by: Herbert Xu drivers/crypto/sahara.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) commit 425e0172a558a68cd44e3ea9d00936b928bc65f4 Author: Tadeusz Struk Date: Fri Jun 19 10:27:39 2015 -0700 crypto: rsa - fix invalid select for AKCIPHER Should be CRYPTO_AKCIPHER instead of AKCIPHER Reported-by: Andreas Ruprecht Signed-off-by: Tadeusz Struk Signed-off-by: Herbert Xu crypto/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1bd2cd6bc6ad8b582046818189766f109687b3fe Author: Michael van der Westhuizen Date: Fri Jun 19 15:55:51 2015 +0200 crypto: picoxcell - Update to the current clk API The picoXcell hardware crypto accelerator driver was using an older version of the clk framework, and not (un)preparing the clock before enabling/disabling it. This change uses the handy clk_prepare_enable function to interact with the current clk framework correctly. Signed-off-by: Michael van der Westhuizen Signed-off-by: Herbert Xu drivers/crypto/picoxcell_crypto.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 8000112cedb8743bad67997a96dc94877a36ce0f Author: Herbert Xu Date: Fri Jun 19 12:07:54 2015 +0800 crypto: nx - Check for bogus firmware properties The nx driver reads two crucial paramters from the firmware for each crypto algorithm, the maximum SG list length and byte limit. Unfortunately those two parameters may be bogus, or worse they may be absent altogether. When this happens the algorithms will still register successfully but will fail when used or tested. This patch adds checks to report any firmware entries which are found to be bogus, and avoid registering algorithms which have bogus parameters. A warning is also printed when an algorithm is not registered because of this as there may have been no firmware entries for it at all. Reported-by: Ondrej Moriš Signed-off-by: Herbert Xu drivers/crypto/nx/nx.c | 150 ++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 118 insertions(+), 32 deletions(-) commit c5e298ae53dc2eb69f2f7153be03454c8a33c658 Author: Theodore Ts'o Date: Sun Jun 21 01:25:29 2015 -0400 ext4: prevent ext4_quota_write() from failing due to ENOSPC In order to prevent quota block tracking to be inaccurate when ext4_quota_write() fails with ENOSPC, we make two changes. The quota file can now use the reserved block (since the quota file is arguably file system metadata), and ext4_quota_write() now uses ext4_should_retry_alloc() to retry the block allocation after a commit has completed and released some blocks for allocation. This fixes failures of xfstests generic/270: Quota error (device vdc): write_blk: dquota write failed Quota error (device vdc): qtree_write_dquot: Error -28 occurred while creating quota Signed-off-by: Theodore Ts'o fs/ext4/extents.c | 2 ++ fs/ext4/indirect.c | 2 ++ fs/ext4/inode.c | 10 +++++----- fs/ext4/namei.c | 2 +- fs/ext4/super.c | 8 +++++++- 5 files changed, 17 insertions(+), 7 deletions(-) commit 89d96a6f8e6491f24fc8f99fd6ae66820e85c6c1 Author: Theodore Ts'o Date: Sat Jun 20 22:50:33 2015 -0400 ext4: call sync_blockdev() before invalidate_bdev() in put_super() Normally all of the buffers will have been forced out to disk before we call invalidate_bdev(), but there will be some cases, where a file system operation was aborted due to an ext4_error(), where there may still be some dirty buffers in the buffer cache for the device. So try to force them out to memory before calling invalidate_bdev(). This fixes a warning triggered by generic/081: WARNING: CPU: 1 PID: 3473 at /usr/projects/linux/ext4/fs/block_dev.c:56 __blkdev_put+0xb5/0x16f() Signed-off-by: Theodore Ts'o Cc: stable@vger.kernel.org fs/ext4/super.c | 1 + 1 file changed, 1 insertion(+) commit 2143c1965a761332ae417b22fd477b636e4f54ec Author: Jan Kara Date: Sat Jun 20 21:44:17 2015 -0400 jbd2: speedup jbd2_journal_dirty_metadata() It is often the case that we mark buffer as having dirty metadata when the buffer is already in that state (frequent for bitmaps, inode table blocks, superblock). Thus it is unnecessary to contend on grabbing journal head reference and bh_state lock. Avoid that by checking whether any modification to the buffer is needed before grabbing any locks or references. Signed-off-by: Jan Kara Signed-off-by: Theodore Ts'o fs/jbd2/transaction.c | 33 +++++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) commit 120119623b6798b70384248c0cacf8f8de419c9a Merge: b67ea97 dcb8f5c Author: David S. Miller Date: Sat Jun 20 15:39:40 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 a final Netfilter pull request for net-next 4.2. This mostly addresses some fallout from the previous pull request, small netns updates and a couple of new features for nfnetlink_log and the socket match that didn't get in time for the previous pull request. More specifically they are: 1) Add security context information to nfnetlink_queue, from Roman Kubiak. 2) Add support to restore the sk_mark into skb->mark through xt_socket, from Harout Hedeshian. 3) Force alignment of 16 bytes of per cpu xt_counters, from Eric Dumazet. 4) Rename br_netfilter.c to br_netfilter_hooks.c to prepare split of IPv6 code into a separated file. 5) Move the IPv6 code in br_netfilter into a separated file. 6) Remove unused RCV_SKB_FAIL() in nfnetlink_queue and nfetlink_log, from Eric Biederman. 7) Two liner to simplify netns logic in em_ipset_match(). 8) Add missing includes to net/net_namespace.h to avoid compilation problems that result from not including linux/netfilter.h in netns headers. 9) Use a forward declaration instead of including linux/proc_fs.h from netns/netfilter.h 10) Add a new linux/netfilter_defs.h to replace the linux/netfilter.h inclusion in netns headers. 11) Remove spurious netfilter.h file included in the net tree, also from Eric Biederman. 12) Fix x_tables compilation warnings on 32 bits platforms that resulted from recent changes in x_tables counters, from Florian Westphal. ==================== Signed-off-by: David S. Miller commit 2cd7b0432888ef2e1f8b54c1c6f8751e1e0e9b5e Merge: 85e88fa 36b7be6 Author: Michael Turquette Date: Sat Jun 20 13:29:48 2015 -0700 Merge tag 'tegra-for-4.2-clk' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into clk-next clk: tegra: Changes for v4.2-rc1 This contains the EMC clock driver that's been exhaustively reviewed and tested. It also includes a change to the clock core that allows a clock provider to perform low-level reparenting of clocks. This is required by the EMC clock driver because the reparenting needs to be done at a very specific point in time during the EMC frequency switch. commit 85e88fab134d8896cf4d8be0aac10cc54018ee63 Merge: ddfb157 8eb92ab Author: Michael Turquette Date: Sat Jun 20 12:18:03 2015 -0700 Merge branch 'clk-exynos-cpu-clk' into clk-next Folded into this merge commit is a build error fix: s/clk/core in clk_change_rate due to the new struct clk_core commit 775f06ab49f5f9e2f6bca9292ef57efa868a0f67 Author: Trond Myklebust Date: Sat Jun 20 15:31:54 2015 -0400 SUNRPC: Set the TCP user timeout option on client sockets Use the TCP_USER_TIMEOUT socket option to advertise to the server how long we will keep the connection open if there is unacknowledged data. See RFC5482. Signed-off-by: Trond Myklebust net/sunrpc/xprtsock.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 8eb92ab68f961bb9045d8d7882cceb2d6be0659d Author: Thomas Abraham Date: Fri Apr 3 18:43:49 2015 +0200 cpufreq: exynos: remove Exynos4210 specific cpufreq driver support Exynos4210 based platforms have switched over to use generic cpufreq driver for cpufreq functionality. So the Exynos specific cpufreq support for these platforms can be removed. Changes by Bartlomiej: - dropped Exynos5250 support removal for now - updated exynos-cpufreq.[c,h] Cc: Javier Martinez Canillas Acked-by: Viresh Kumar Signed-off-by: Thomas Abraham Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Michael Turquette drivers/cpufreq/Kconfig.arm | 11 --- drivers/cpufreq/Makefile | 1 - drivers/cpufreq/exynos-cpufreq.c | 5 +- drivers/cpufreq/exynos-cpufreq.h | 9 -- drivers/cpufreq/exynos4210-cpufreq.c | 184 ----------------------------------- 5 files changed, 1 insertion(+), 209 deletions(-) commit 131323cd16e563499caedc93a9c2f82fce4c966c Author: Thomas Abraham Date: Fri Apr 3 18:43:48 2015 +0200 ARM: Exynos: switch to using generic cpufreq driver for Exynos4210 The new CPU clock type allows the use of generic CPUfreq driver. Switch Exynos4210 to using generic cpufreq driver. Changes by Bartlomiej: - removed non-Exynos4210 support for now Cc: Tomasz Figa Cc: Kukjin Kim Cc: Javier Martinez Canillas Acked-by: Viresh Kumar Signed-off-by: Thomas Abraham Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Michael Turquette arch/arm/mach-exynos/exynos.c | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) commit 6ae5a0b46fd82055ad5950539e1b36e4922c233f Author: Thomas Abraham Date: Fri Apr 3 18:43:46 2015 +0200 clk: samsung: exynos4: add cpu clock configuration data and instantiate cpu clock With the addition of the new Samsung specific cpu-clock type, the arm clock can be represented as a cpu-clock type. Add the CPU clock configuration data and instantiate the CPU clock type for Exynos4210. Changes by Bartlomiej: - fixed issue with wrong dividers being setup by Common Clock Framework (by an addition of CLK_RECALC_NEW_RATES clock flag to mout_apll clock, without this change cpufreq-dt driver showed ~10 mA larger energy consumption when compared to cpufreq-exynos one when "performance" cpufreq governor was used on Exynos4210 SoC based Origen board), this was probably meant to be workarounded by use of CLK_GET_RATE_NOCACHE and CLK_DIVIDER_READ_ONLY clock flags in the original patchset (in "[PATCH v12 6/6] clk: samsung: remove unused clock aliases and update clock flags") but using these flags is not sufficient to fix the issue observed - removed Exynos5250 and Exynos5420 support for now Cc: Tomasz Figa Cc: Mike Turquette Cc: Javier Martinez Canillas Signed-off-by: Thomas Abraham Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Michael Turquette drivers/clk/samsung/clk-exynos4.c | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) commit ddeac8d968d41d13a52582d6e80395a329e9b1ff Author: Thomas Abraham Date: Fri Apr 3 18:43:45 2015 +0200 clk: samsung: add infrastructure to register cpu clocks The CPU clock provider supplies the clock to the CPU clock domain. The composition and organization of the CPU clock provider could vary among Exynos SoCs. A CPU clock provider can be composed of clock mux, dividers and gates. This patch defines a new clock type for CPU clock provider and adds infrastructure to register the CPU clock providers for Samsung platforms. Changes by Bartlomiej: - fixed issue with setting lower dividers before the parent clock speed was lowered (the issue resulted in lockup on Exynos4210 SoC based Origen board when "ondemand" cpufreq governor was stress tested) - fixed missing spin_unlock on error in exynos_cpuclk_post_rate_change() problem by moving cfg_data search outside of the spin locked area - removed leftover kfree() in exynos_register_cpu_clock() that could result in dereferencing the NULL pointer on error - moved spin_lock earlier in exynos_cpuclk_pre_rate_change() to cover reading of E4210_SRC_CPU and E4210_DIV_CPU1 registers - added missing "last chance" checks to wait_until_divider_stable() and wait_until_mux_stable() (needed in case that IRQ handling took long time to proceed and resulted in function printing incorrect error message about timeout) - moved E4210_CPU_DIV[0,1]() macros just before their only users, this resulted in moving them from patch #2 to patch #3/6 ("clk: samsung: exynos4: add cpu clock configuration data and instantiate cpu clock") - removed E5250_CPU_DIV[0,1](), E5420_EGL_DIV0() and E5420_KFC_DIV() macros for now - added my Copyrights to drivers/clk/samsung/clk-cpu.c Cc: Tomasz Figa Cc: Mike Turquette Cc: Javier Martinez Canillas Signed-off-by: Thomas Abraham Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Michael Turquette drivers/clk/samsung/Makefile | 2 +- drivers/clk/samsung/clk-cpu.c | 349 ++++++++++++++++++++++++++++++++++++++++++ drivers/clk/samsung/clk-cpu.h | 73 +++++++++ 3 files changed, 423 insertions(+), 1 deletion(-) commit d8d919879e9a645061a560a0a26abb9f3bca97df Author: Bartlomiej Zolnierkiewicz Date: Fri Apr 3 18:43:44 2015 +0200 clk: add CLK_RECALC_NEW_RATES clock flag for Exynos cpu clock support This flag is needed to fix the issue with wrong dividers being setup by Common Clock Framework when using the new Exynos cpu clock support. The issue happens because clk_core_set_rate_nolock() calls clk_calc_new_rates(clk, rate) before both pre/post clock notifiers have a chance to run. In case of Exynos cpu clock support pre/post clock notifiers are registered for mout_apll clock which is a parent of armclk cpu clock and dividers are modified in both pre and post clock notifier. This results in wrong dividers values being later programmed by clk_change_rate(top). To workaround the problem CLK_RECALC_NEW_RATES flag is added and it is set for mout_apll clock later so the correct divider values are re-calculated after both pre and post clock notifiers had run. For example when using "performance" governor on Exynos4210 Origen board the cpufreq-dt driver requests to change the frequency from 1000MHz to 1200MHz and after the change state of the relevant clocks is following: Without use of CLK_GET_RATE_NOCACHE flag: fout_apll rate: 1200000000 fout_apll_div_2 rate: 600000000 mout_clkout_cpu rate: 600000000 div_clkout_cpu rate: 600000000 clkout_cpu rate: 600000000 mout_apll rate: 1200000000 armclk rate: 1200000000 mout_hpm rate: 1200000000 div_copy rate: 300000000 div_hpm rate: 300000000 mout_core rate: 1200000000 div_core rate: 1200000000 div_core2 rate: 1200000000 arm_clk_div_2 rate: 600000000 div_corem0 rate: 300000000 div_corem1 rate: 150000000 div_periph rate: 300000000 div_atb rate: 300000000 div_pclk_dbg rate: 150000000 sclk_apll rate: 1200000000 sclk_apll_div_2 rate: 600000000 With use of CLK_GET_RATE_NOCACHE flag: fout_apll rate: 1200000000 fout_apll_div_2 rate: 600000000 mout_clkout_cpu rate: 600000000 div_clkout_cpu rate: 600000000 clkout_cpu rate: 600000000 mout_apll rate: 1200000000 armclk rate: 1200000000 mout_hpm rate: 1200000000 div_copy rate: 200000000 div_hpm rate: 200000000 mout_core rate: 1200000000 div_core rate: 1200000000 div_core2 rate: 1200000000 arm_clk_div_2 rate: 600000000 div_corem0 rate: 300000000 div_corem1 rate: 150000000 div_periph rate: 300000000 div_atb rate: 240000000 div_pclk_dbg rate: 120000000 sclk_apll rate: 150000000 sclk_apll_div_2 rate: 75000000 Without this change cpufreq-dt driver showed ~10 mA larger energy consumption when compared to cpufreq-exynos one when "performance" cpufreq governor was used on Exynos4210 SoC based Origen board. This issue was probably meant to be workarounded by use of CLK_GET_RATE_NOCACHE and CLK_DIVIDER_READ_ONLY clock flags in the original Exynos cpu clock patchset (in "[PATCH v12 6/6] clk: samsung: remove unused clock aliases and update clock flags" patch) but usage of these flags is not sufficient to fix the issue observed. Cc: Thomas Abraham Cc: Tomasz Figa Cc: Mike Turquette Cc: Javier Martinez Canillas Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Michael Turquette drivers/clk/clk.c | 3 +++ include/linux/clk-provider.h | 1 + 2 files changed, 4 insertions(+) commit f05218651be1ac6a6088e226bd7350fb6c154414 Merge: 62a993d a614a61 Author: Thomas Gleixner Date: Sat Jun 20 19:14:31 2015 +0200 Merge branch 'irq/for-x86' into irq/core Get the infrastructure patches which are required for x86/apic into core commit a614a610ac9b28f195d790d25be72d26f345c53a Author: Thomas Gleixner Date: Sat Jun 20 12:05:40 2015 +0200 genirq: Remove bogus restriction in irq_move_mask_irq() If an interrupt is marked with the no balancing flag, we still allow setting the affinity for such an interrupt from the kernel itself, but for interrupts which move the affinity from interrupt context via irq_move_mask_irq() this runs into a check for the no balancing flag, which in turn ends up with an endless storm of stack dumps because the move pending flag is not reset. Allow the move for interrupts which have the no balancing flag set and clear the move pending bit before checking for interrupts with the per cpu flag set. Reported-by: Sergey Senozhatsky Cc: Borislav Petkov Cc: Jiang Liu Link: http://lkml.kernel.org/r/alpine.DEB.2.11.1506201002570.4107@nanos Signed-off-by: Thomas Gleixner kernel/irq/migration.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 51ef72bda70841fddd595142ed0e7e0fc571c500 Author: Axel Lin Date: Sat Jun 20 16:29:14 2015 +0800 block: nvme-scsi: Catch kcalloc failure res variable was initialized to -ENOMEM, but it's override by nvme_trans_copy_from_user(). So current code returns 0 if kcalloc fails. Fix it to return proper error code. Signed-off-by: Axel Lin Signed-off-by: Jens Axboe drivers/block/nvme-scsi.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit ae994ea972473c0ace9d55f718b60f0727af1381 Author: Jens Axboe Date: Sat Jun 20 10:26:50 2015 -0600 cfq-iosched: fix other locations where blkcg_to_cfqgd() can return NULL Commit 9470e4a693db only covered the initial bug report, there are other spots in CFQ where we need to check that we actually have a valid cfq_group_data structure. Fixes: e48453c3 ("block, cgroup: implement policy-specific per-blkcg data") Signed-off-by: Jens Axboe block/cfq-iosched.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit bafac298fb20e9ae1305c710d4fd8d20c5911afa Author: Jiang Liu Date: Sat Jun 20 11:50:50 2015 +0200 x86/hpet: Check for irq==0 when allocating hpet MSI interrupts irq == 0 is not a valid irq for a irqdomain MSI allocation, but hpet code checks only for negative return values. Reported-by: Sergey Senozhatsky Cc: Borislav Petkov Link: http://lkml.kernel.org/r/558447AF.30703@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/kernel/hpet.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f267f9dff8ba00a8b11f340da3634858ad50ebab Author: Matt Ranostay Date: Fri Jun 19 23:46:16 2015 -0700 ALSA: hda-beep: Update authors dead email address Signed-off-by: Matt Ranostay Signed-off-by: Takashi Iwai sound/pci/hda/hda_beep.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c8806b6c9e824f47726f2a9b7fbbe7ebf19306fa Author: Narsimhulu Musini Date: Fri May 29 01:04:01 2015 -0700 snic: driver for Cisco SCSI HBA Cisco has developed a new PCI HBA interface called sNIC, which stands for SCSI NIC. This is a new storage feature supported on specialized network adapter. The new PCI function provides a uniform host interface and abstracts backend storage. [jejb: fix up checkpatch errors] Signed-off-by: Narsimhulu Musini Signed-off-by: Sesidhar Baddela Reviewed-by: Hannes Reinecke Signed-off-by: James Bottomley MAINTAINERS | 7 + drivers/scsi/Kconfig | 17 + drivers/scsi/Makefile | 1 + drivers/scsi/snic/Makefile | 17 + drivers/scsi/snic/cq_desc.h | 77 ++ drivers/scsi/snic/cq_enet_desc.h | 38 + drivers/scsi/snic/snic.h | 414 ++++++ drivers/scsi/snic/snic_attrs.c | 77 ++ drivers/scsi/snic/snic_ctl.c | 279 ++++ drivers/scsi/snic/snic_debugfs.c | 560 ++++++++ drivers/scsi/snic/snic_disc.c | 551 ++++++++ drivers/scsi/snic/snic_disc.h | 124 ++ drivers/scsi/snic/snic_fwint.h | 525 ++++++++ drivers/scsi/snic/snic_io.c | 518 ++++++++ drivers/scsi/snic/snic_io.h | 118 ++ drivers/scsi/snic/snic_isr.c | 204 +++ drivers/scsi/snic/snic_main.c | 1044 +++++++++++++++ drivers/scsi/snic/snic_res.c | 295 +++++ drivers/scsi/snic/snic_res.h | 97 ++ drivers/scsi/snic/snic_scsi.c | 2632 +++++++++++++++++++++++++++++++++++++ drivers/scsi/snic/snic_stats.h | 123 ++ drivers/scsi/snic/snic_trc.c | 181 +++ drivers/scsi/snic/snic_trc.h | 121 ++ drivers/scsi/snic/vnic_cq.c | 86 ++ drivers/scsi/snic/vnic_cq.h | 110 ++ drivers/scsi/snic/vnic_cq_fw.h | 62 + drivers/scsi/snic/vnic_dev.c | 748 +++++++++++ drivers/scsi/snic/vnic_dev.h | 110 ++ drivers/scsi/snic/vnic_devcmd.h | 270 ++++ drivers/scsi/snic/vnic_intr.c | 59 + drivers/scsi/snic/vnic_intr.h | 105 ++ drivers/scsi/snic/vnic_resource.h | 68 + drivers/scsi/snic/vnic_snic.h | 54 + drivers/scsi/snic/vnic_stats.h | 68 + drivers/scsi/snic/vnic_wq.c | 237 ++++ drivers/scsi/snic/vnic_wq.h | 170 +++ drivers/scsi/snic/wq_enet_desc.h | 96 ++ 37 files changed, 10263 insertions(+) commit 4876cc779ff525b9c2376d8076edf47815e71f2c Author: Trond Myklebust Date: Fri Jun 19 16:17:57 2015 -0400 SUNRPC: Ensure we release the TCP socket once it has been closed This fixes a regression introduced by commit caf4ccd4e88cf2 ("SUNRPC: Make xs_tcp_close() do a socket shutdown rather than a sock_release"). Prior to that commit, the autoclose feature would ensure that an idle connection would result in the socket being both disconnected and released, whereas now only gets disconnected. While the current behaviour is harmless, it does leave the port bound until either RPC traffic resumes or the RPC client is shut down. Reported-by: Steven Rostedt Signed-off-by: Trond Myklebust net/sunrpc/xprt.c | 2 +- net/sunrpc/xprtsock.c | 40 ++++++++++++++++++++++------------------ 2 files changed, 23 insertions(+), 19 deletions(-) commit a9a3cd900fbbcbf837d65653105e7bfc583ced09 Merge: 7992892 9d9cad7 Author: Ingo Molnar Date: Sat Jun 20 01:11:11 2015 +0200 Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo: User visible changes: - Replace CTRL+z with 'f' as hotkey for enable/disable events (Arnaldo Carvalho de Melo) - Do not exit when 'f' is pressed in 'report' mode (Arnaldo Carvalho de Melo) - Tell the user how to unfreeze events after pressing 'f' in 'perf top' (Arnaldo Carvalho de Melo) - React to unassigned hotkey pressing in 'top/report' (Arnaldo Carvalho de Melo) - Display total number of samples with --show-total-period in 'annotate' (Martin Liška) - Add timeout to make procfs mmap processing more robust (Kan Liang) - Fix sort__sym_cmp to also compare end of symbol (Yannick Brosseau) Infrastructure changes: - Ensure thread-stack is flushed (Adrian Hunter) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit 0f02adaa49af23ab9fa05375f4a237da6014401b Merge: 2c33645 75e84ab Author: Ingo Molnar Date: Sat Jun 20 01:07:02 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 breakage if prefix= is specified, this introduced a regression for a build idiom used by the Debian "linux-tools" package, that does: MAKE_PERF := $(MAKE) prefix=/usr V=1 ARCH=$(KERNEL_ARCH_PERF) ... Fix it. (Lukas Wunner) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit 9d9cad763ca79dd3697e9f2d1df648e37496582b Author: Kan Liang Date: Wed Jun 17 09:51:11 2015 -0400 perf tools: Configurable per thread proc map processing time out The time out to limit the individual proc map processing was hard code to 500ms. This patch introduce a new option --proc-map-timeout to make the time limit configurable. Signed-off-by: Kan Liang Cc: Andi Kleen Cc: David Ahern Cc: Ying Huang Link: http://lkml.kernel.org/r/1434549071-25611-2-git-send-email-kan.liang@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/perf-kvm.txt | 6 ++++++ tools/perf/Documentation/perf-record.txt | 5 +++++ tools/perf/Documentation/perf-top.txt | 6 ++++++ tools/perf/Documentation/perf-trace.txt | 5 +++++ tools/perf/builtin-kvm.c | 5 ++++- tools/perf/builtin-record.c | 6 +++++- tools/perf/builtin-top.c | 5 ++++- tools/perf/builtin-trace.c | 6 +++++- tools/perf/perf.h | 1 + tools/perf/tests/code-reading.c | 2 +- tools/perf/tests/dwarf-unwind.c | 2 +- tools/perf/tests/mmap-thread-lookup.c | 4 ++-- tools/perf/util/event.c | 36 ++++++++++++++++++++------------ tools/perf/util/event.h | 9 +++++--- tools/perf/util/machine.c | 7 ++++--- tools/perf/util/machine.h | 9 +++++--- tools/perf/util/session.c | 4 +++- 17 files changed, 87 insertions(+), 31 deletions(-) commit 930e6fcd2bcce9bcd9d4aa7e755678d33f3fe6f4 Author: Kan Liang Date: Wed Jun 17 09:51:10 2015 -0400 perf tools: Add time out to force stop proc map processing System wide sampling like 'perf top' or 'perf record -a' read all threads /proc/xxx/maps before sampling. If there are any threads which generating a keeping growing huge maps, perf will do infinite loop during synthesizing. Nothing will be sampled. This patch fixes this issue by adding per-thread timeout to force stop this kind of endless proc map processing. PERF_RECORD_MISC_PROC_MAP_PARSE_TIME_OUT is introduced to indicate that the mmap record are truncated by time out. User will get warning notification when truncated mmap records are detected. Reported-by: Ying Huang Signed-off-by: Kan Liang Cc: Andi Kleen Cc: David Ahern Cc: Ying Huang Link: http://lkml.kernel.org/r/1434549071-25611-1-git-send-email-kan.liang@intel.com Signed-off-by: Arnaldo Carvalho de Melo include/uapi/linux/perf_event.h | 4 ++++ tools/perf/util/event.c | 18 ++++++++++++++++++ tools/perf/util/event.h | 1 + tools/perf/util/session.c | 11 +++++++++++ 4 files changed, 34 insertions(+) commit c05676c06232e6459a6106ddf0d4e154ce6cd859 Author: Yannick Brosseau Date: Wed Jun 17 16:41:10 2015 -0700 perf report: Fix sort__sym_cmp to also compare end of symbol When using a map file from a JIT, due to memory reuse, we can obtain multiple symbols with the same start address but a different length. The symbols__find does check for the end so not doing it in sort__sym_cmp was causing the hist_entry in the annotate part of a report to match to the wrong entry, causing a fatal error. Signed-off-by: Yannick Brosseau Cc: Andi Kleen Cc: Jiri Olsa Cc: Paul Mackerras Cc: Peter Zijlstra Cc: kernel-team@fb.com Link: http://lkml.kernel.org/r/1434584470-17771-1-git-send-email-scientist@fb.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/sort.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit 3e323dc0a80c3921f30d03ca300426f70dc5a327 Author: Arnaldo Carvalho de Melo Date: Fri Jun 19 17:49:29 2015 -0300 perf hists browser: React to unassigned hotkey pressing When that happens we were just ignoring the key press, now this message is presented in the bottom line (the help line): "Press '?' for help on key bindings" Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-iyma2j5kj3q9i1stl4mfh90n@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/ui/browsers/hists.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit ae3b6ab603bce6a74ca089f7a944196863166a52 Author: Arnaldo Carvalho de Melo Date: Fri Jun 19 17:35:25 2015 -0300 perf top: Tell the user how to unfreeze events after pressing 'f' When the user presses 'f' to disable events the visual cues are, well, the percentages not changing and the number of events freezing. Be more explicit by changing the help line at the bottom of the screen to show the following messages when 'f' is pressed: "Press 'f' again to re-enable the events" And then, when 'f' is pressed again: "Press 'f' to disable the events or 'h' Suggested-by: Ingo Molnar Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-uhiswg9a9rxm5gxg7ptjskjn@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-top.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 5f00b0f45bc3f1e77f0db0e915fd3302db669914 Author: Arnaldo Carvalho de Melo Date: Fri Jun 19 17:30:20 2015 -0300 perf hists browser: Honour the help line provided by builtin-{top,report}.c The hists_browser was replacing whatever helpline provided by 'top' or 'report' with a static "Press '?' for help on key bindings", fix it. Now the message passed by top appears at the bottom of the screen: "For a higher level overview, try: perf top --sort comm,dso" As well the message that will be added when the user presses 'f' to disable the events, something along the lines of "press f again to re-enable...". Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-dacaja70mbfz3a0yj1n180gx@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/ui/browsers/hists.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 516e536849d26a2bcacd9050f4a7222a14c0f9e4 Author: Arnaldo Carvalho de Melo Date: Fri Jun 19 16:59:43 2015 -0300 perf hists browser: Do not exit when 'f' is pressed in 'report' mode The 'f' hotkey is only used when in 'top', dynamic mode, to enable/disable events, currently not making sense in the 'report', static mode, where we can't go from showing the histogram entries created from a perf.data file to adding more events after recreating the evlist created from the perf.data file, albeit possible, this is not implemented right now. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-lholzf472pu98dkkijggwx2m@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/ui/browsers/hists.c | 3 +++ 1 file changed, 3 insertions(+) commit fbb7997e308064a0ea26fb5435ee5fa69a588dac Author: Arnaldo Carvalho de Melo Date: Fri Jun 19 16:56:04 2015 -0300 perf top: Replace CTRL+z with 'f' as hotkey for enable/disable events I.e. 'freeze'/'unfreeze', this is because CTRL+z has a well known action, i.e. suspend the app, perf needs to follow that convention, that will be done on a separate patch, tho. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-oedcl6ovohara4koig14ayip@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-top.c | 2 +- tools/perf/ui/browsers/hists.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit a0649b2d3fffb1cde8745568c767f3a55a3462bc Author: Christoph Hellwig Date: Thu Jun 18 16:44:59 2015 +0200 nfsd: refactor nfs4_preprocess_stateid_op Split out two self contained helpers to make the function more readable. Signed-off-by: Christoph Hellwig Signed-off-by: J. Bruce Fields fs/nfsd/nfs4state.c | 97 ++++++++++++++++++++++++++++------------------------- 1 file changed, 52 insertions(+), 45 deletions(-) commit e749a4621e414c36a54ac8b3205955e267f00db3 Author: Christoph Hellwig Date: Thu Jun 18 16:44:58 2015 +0200 nfsd: clean up raparams handling Refactor the raparam hash helpers to just deal with the raparms, and keep opening/closing files separate from that. Signed-off-by: Christoph Hellwig Signed-off-by: J. Bruce Fields fs/nfsd/nfs4xdr.c | 24 +++++++++++++------- fs/nfsd/vfs.c | 68 ++++++++++++++++++++----------------------------------- fs/nfsd/vfs.h | 6 ++--- 3 files changed, 43 insertions(+), 55 deletions(-) commit 97b1f9aae963cc0b229ef8147db4782170564d4f Author: Fabian Frederick Date: Fri Jun 12 18:58:57 2015 +0200 nfsd: use swap() in sort_pacl_range() Use kernel.h macro definition. Thanks to Julia Lawall for Coccinelle scripting support. Signed-off-by: Fabian Frederick Signed-off-by: J. Bruce Fields fs/nfsd/nfs4acl.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 75e84ab906ef8935cff3df3d8929f1bafea81599 Author: Lukas Wunner Date: Thu Jun 18 13:00:32 2015 +0200 perf tools: Fix build breakage if prefix= is specified Invoking Makefile.perf with prefix= breaks the build since Makefile.perf hands that variable down to Makefile.build where it overrides prefix := $(subst ./,,$(OUTPUT)$(dir)/) leading to errors like this: No rule to make target '/usrabspath.o', needed by '/usrlibperf-in.o' Signed-off-by: Lukas Wunner Acked-by: Jiri Olsa Cc: David Ahern Fixes: c819e2cf2eb6f65d3208d195d7a0edef6108d5 Link: http://lkml.kernel.org/r/5582c48a.84a22b0a.a918.5285SMTPIN_ADDED_MISSING@mx.google.com Signed-off-by: Arnaldo Carvalho de Melo tools/build/Makefile.build | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 276af92f107fc35ede78c7cdea323aaec364002c Author: Arnaldo Carvalho de Melo Date: Fri Jun 19 16:36:12 2015 -0300 perf annotate: Rename source_line_percent to source_line_samples To better reflect the purpose of this struct, that is to hold info about samples, its total number and is percentage. Cc: Martin Liska Cc: Jiri Olsa Link: http://lkml.kernel.org/n/tip-6bf8gwcl975uurl0ttpvtk69@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/annotate.c | 26 +++++++++++++------------- tools/perf/util/annotate.h | 6 +++--- 2 files changed, 16 insertions(+), 16 deletions(-) commit 0c4a5bcea4609948375173cdea8d73783110a75e Author: Martin Liška Date: Fri Jun 19 16:10:43 2015 -0300 perf annotate: Display total number of samples with --show-total-period To compare two records on an instruction base, with --show-total-period option provided, display total number of samples that belong to a line in assembly language. New hot key 't' is introduced for 'perf annotate' TUI. Signed-off-by: Martin Liska Cc: Andi Kleen Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/5583E26D.1040407@suse.cz Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-annotate.c | 2 ++ tools/perf/ui/browsers/annotate.c | 60 ++++++++++++++++++++++++++++----------- tools/perf/util/annotate.c | 28 ++++++++++++++---- tools/perf/util/annotate.h | 3 +- 4 files changed, 70 insertions(+), 23 deletions(-) commit 9f40a51a35a0e1445cc4873251c3df2631eda294 Author: Davidlohr Bueso Date: Tue May 19 10:24:57 2015 -0700 locking/rtmutex: Update stale plist comments ... as of fb00aca4744 (rtmutex: Turn the plist into an rb-tree) we no longer use plists for queuing any waiters. Update stale comments. Signed-off-by: Davidlohr Bueso Cc: Steven Rostedt Cc: Mike Galbraith Cc: Paul E. McKenney Cc: Sebastian Andrzej Siewior Cc: Davidlohr Bueso Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1432056298-18738-4-git-send-email-dave@stgolabs.net Signed-off-by: Thomas Gleixner kernel/locking/rtmutex.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit 802ab58da74bb49ab348d2872190ef26ddc1a3e0 Author: Sebastian Andrzej Siewior Date: Wed Jun 17 10:33:50 2015 +0200 futex: Lower the lock contention on the HB lock during wake up wake_futex_pi() wakes the task before releasing the hash bucket lock (HB). The first thing the woken up task usually does is to acquire the lock which requires the HB lock. On SMP Systems this leads to blocking on the HB lock which is released by the owner shortly after. This patch rearranges the unlock path by first releasing the HB lock and then waking up the task. [ tglx: Fixed up the rtmutex unlock path ] Originally-from: Thomas Gleixner Signed-off-by: Sebastian Andrzej Siewior Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Mike Galbraith Cc: Paul E. McKenney Cc: Davidlohr Bueso Link: http://lkml.kernel.org/r/20150617083350.GA2433@linutronix.de Signed-off-by: Thomas Gleixner kernel/futex.c | 32 ++++++++++++++++++++--- kernel/locking/rtmutex.c | 56 ++++++++++++++++++++++++++++++----------- kernel/locking/rtmutex_common.h | 3 +++ 3 files changed, 73 insertions(+), 18 deletions(-) commit 71feb364e7faadc681e714f7fdc2bede208ba26c Author: Keith Busch Date: Fri Jun 19 11:07:30 2015 -0600 NVMe: Fix IO for extended metadata formats This fixes io submit ioctl handling when using extended metadata formats. When these formats are used, the user provides a single virtually contiguous buffer containing both the block and metadata interleaved, so the metadata size needs to be added to the total length and not mapped as a separate transfer. The command is also driver generated, so this patch does not enforce blk-integrity extensions provide the metadata buffer. Reported-by: Marcin Dziegielewski Signed-off-by: Keith Busch Signed-off-by: Jens Axboe drivers/block/nvme-core.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit a5499b37197ab4b5fed101370df7ccadacbb4340 Author: Adrian Hunter Date: Fri May 29 16:33:30 2015 +0300 perf tools: Ensure thread-stack is flushed The thread-stack represents a thread's current stack. When a thread exits there can still be many functions on the stack e.g. exit() can be called many levels deep, so all the callers will never return. To get that information output, the thread-stack must be flushed. Previously it was assumed the thread-stack would be flushed when the struct thread was deleted. With thread ref-counting it is no longer clear when that will be, if ever. So instead explicitly flush all the thread-stacks at the end of a session. Signed-off-by: Adrian Hunter Cc: Jiri Olsa Link: http://lkml.kernel.org/r/1432906425-9911-3-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/machine.c | 21 +++++++++++++++++++++ tools/perf/util/machine.h | 3 +++ tools/perf/util/session.c | 20 ++++++++++++++++++++ tools/perf/util/thread-stack.c | 18 +++++++++++++----- tools/perf/util/thread-stack.h | 1 + 5 files changed, 58 insertions(+), 5 deletions(-) commit 9bb698c60a12d3b5db62f99a0874565c791e998b Author: Juergen Borleis Date: Mon Apr 27 15:59:51 2015 +0200 rtc: imxdi: when locked, do not fail silently If the DryICE unit is locked it is impossible to set the time. Provide an error message for this case. Signed-off-by: Juergen Borleis Signed-off-by: Robert Schwebel [rsc: got NDA clearance from Freescale] Signed-off-by: Alexandre Belloni drivers/rtc/rtc-imxdi.c | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) commit a7c535e3a8e50e625750d2aa0ed4f84591ca7bfa Author: Juergen Borleis Date: Mon Apr 27 15:59:50 2015 +0200 rtc: imxdi: monitor a security violation at runtime Maybe the unit enters the hardware related state at runtime and not at system boot time (after a power cycle). Signed-off-by: Juergen Borleis Signed-off-by: Robert Schwebel [rsc: got NDA clearance from Freescale] Signed-off-by: Alexandre Belloni drivers/rtc/rtc-imxdi.c | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) commit c7e9bbe022c7bee57d9e14b42a7c3732da8db558 Author: Juergen Borleis Date: Mon Apr 27 15:59:49 2015 +0200 rtc: imxdi: add the unit recovery code This code is required to recover the unit from a security violation. Hopefully this code can recover the unit from a hardware related invalid state as well. Signed-off-by: Juergen Borleis Signed-off-by: Robert Schwebel [rsc: got NDA clearance from Freescale] Signed-off-by: Alexandre Belloni drivers/rtc/rtc-imxdi.c | 317 ++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 279 insertions(+), 38 deletions(-) commit 3ba3fab765beecd599d8e8e00dc2ed4306518dfd Author: Juergen Borleis Date: Mon Apr 27 15:59:48 2015 +0200 rtc: imxdi: add some background info about the states the machine can be in Document the i.MX DryIce machine states. Signed-off-by: Juergen Borleis Signed-off-by: Robert Schwebel [rsc: got NDA clearance from Freescale] Signed-off-by: Alexandre Belloni drivers/rtc/rtc-imxdi.c | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) commit e30d31317bb01832379d86826cba1e3dcff78987 Author: Juergen Borleis Date: Mon Apr 27 15:59:47 2015 +0200 rtc: imxdi: avoid the __raw* register access functions Be independent of the endianness of the kernel. Signed-off-by: Juergen Borleis Signed-off-by: Alexandre Belloni drivers/rtc/rtc-imxdi.c | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) commit a42e6eae457837d6a5925f4926f5ba05ccf44f89 Author: Krzysztof Kozlowski Date: Sat May 2 14:31:49 2015 +0900 rtc: s3c: Integrate Exynos3250 into S3C6410 There are now no differences between RTC on Exynos3250 and S3C6410. Merge everything into one so duplicated code could be removed. Signed-off-by: Krzysztof Kozlowski Reviewed-by: Chanwoo Choi Acked-by: Alexandre Belloni Reviewed-by: Javier Martinez Canillas Signed-off-by: Krzysztof Kozlowski Signed-off-by: Alexandre Belloni drivers/rtc/rtc-s3c.c | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) commit 73744a64aab872703b851b9678a7f488b507eb81 Author: Krzysztof Kozlowski Date: Sun May 3 18:57:11 2015 +0900 rtc: interface: Remove unused return value from rtc_timer_cancel() The rtc_timer_cancel() always returns 0 and cannot fail (calls only other void-returning functions). Signed-off-by: Krzysztof Kozlowski Signed-off-by: Alexandre Belloni drivers/rtc/interface.c | 4 +--- include/linux/rtc.h | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) commit 1796dcce2daacc125f2d60afc3f631ca29e36684 Author: Krzysztof Kozlowski Date: Sun May 3 18:57:10 2015 +0900 rtc: interface: Fix coding style violations Fix issues reported by checkpatch: ERROR: open brace '{' following struct go on the same line ERROR: "foo* bar" should be "foo *bar" Additionally adjust alignment of wrapped function arguments. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Alexandre Belloni include/linux/rtc.h | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit cd6ba00aaa8bb5335cf2aa4b98c0ac15ffc9000d Author: Krzysztof Kozlowski Date: Sat May 2 00:44:37 2015 +0900 rtc: mxc: 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: Alexandre Belloni drivers/rtc/rtc-mxc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 19fd685fcb13fa3c0b1539c2f31e1add8ab63edf Author: Krzysztof Kozlowski Date: Sat May 2 00:44:36 2015 +0900 rtc: hid-sensor-time: 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: Alexandre Belloni drivers/rtc/rtc-hid-sensor-time.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9a72f4104bc821fd07798ec42141c8066874b9f9 Author: Krzysztof Kozlowski Date: Sat May 2 00:44:35 2015 +0900 rtc: ab8500: 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: Alexandre Belloni drivers/rtc/rtc-ab8500.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 37563e5ec4eafa48ee477ec496b60a1830be1b9f Author: dann frazier Date: Fri Apr 24 11:54:20 2015 -0600 rtc: efi: Update author email address I'm no longer employed by HP. Signed-off-by: dann frazier Signed-off-by: Alexandre Belloni drivers/rtc/rtc-efi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6c6f95a9351beb4f773f79c9b993df8ce63e71d4 Author: Fabio Falzoi Date: Fri Jun 19 17:44:33 2015 +0200 Staging: rts5208: fix CHANGE_LINK_STATE value Fix CHANGE_LINK_STATE value when card_exist is true. Fixes: a9b693cd77d7 ("Staging: rts5208: helper function to manage delink states") Signed-off-by: Fabio Falzoi Signed-off-by: Greg Kroah-Hartman drivers/staging/rts5208/rtsx_chip.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3832591e6fa53d8126d5e21446f225cda278d91a Author: Trond Myklebust Date: Fri Jun 19 13:04:13 2015 -0400 SUNRPC: Handle connection issues correctly on the back channel If the back channel is disconnected, we can and should just fail the transmission. The expectation is that the NFSv4.1 server will always retransmit any outstanding callbacks once the connection is re-established. Signed-off-by: Trond Myklebust net/sunrpc/clnt.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 9470e4a693db84bee7becbba8de01af02bb23c9f Author: Jens Axboe Date: Fri Jun 19 10:19:36 2015 -0600 cfq-iosched: fix sysfs oops when attempting to read unconfigured weights If none of the devices in the system are using CFQ, then attempting to read: /sys/fs/cgroup/blkio/blkio.leaf_weight will results in a NULL dereference. Check for a valid cfq_group_data struct before attempting to dereference it. Reported-by: Andrey Wagin Fixes: e48453c3 ("block, cgroup: implement policy-specific per-blkcg data") Signed-off-by: Jens Axboe block/cfq-iosched.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) commit 4ceab71b9d84e55b59a76b54b2999dc377aae6e6 Author: Jens Axboe Date: Fri Jun 19 10:13:01 2015 -0600 cfq-iosched: move group scheduling functions under ifdef If CFQ_GROUP_IOSCHED is not set, the compiler produces the following warning: CC block/cfq-iosched.o linux/block/cfq-iosched.c:469:2: warning: 'cpd_to_cfqgd' defined but not used [-Wunused-function] *cpd_to_cfqgd(struct blkcg_policy_data *cpd) ^ In reality, two other lookup functions aren't used either if CFQ_GROUP_IOSCHED isn't set. Move all three under one of the CFQ_GROUP_IOSCHED sections in the code. Reported-by: Vladimir Zapolskiy Signed-off-by: Jens Axboe block/cfq-iosched.c | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) commit ffc5fbdb77e125a5923e3c0ba3fe465b1ebb2c54 Author: Daniel Thompson Date: Fri Jun 19 14:52:29 2015 +0100 drm: prime: Document gem_prime_mmap gem_prime_map is not currently described in the DRM manual, lets document it. Signed-off-by: Daniel Thompson Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_prime.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit ad533ade869d33f496d96e6aa639a51e9c06e241 Author: Inki Dae Date: Fri Jun 19 20:53:03 2015 +0900 drm/exynos: do not wait for vblank at atomic operation This patch resolves the issue that refresh rate got low at extension mode test with fimd and vidi combination. The problem was because atomic_commit callback waited for the completion of vblank to gaurantee crtc relevant registers are updated from shadow registers to real ones. However, the waiting there is really unnecessary because page flip operation does already it. Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_fb.c | 2 -- 1 file changed, 2 deletions(-) commit 286bd022303e230d608aa4bd36cb1f438b85c78e Author: Krzysztof Kozlowski Date: Fri Jun 19 14:23:29 2015 +0900 drm/exynos: Remove unused vma field of exynos_drm_gem_obj The field 'vma' of 'exynos_drm_gem_obj' structure was introduced in 2a3098ff6c21 ("drm/exynos: add userptr feature for g2d module") but is not referenced anywhere. One instance of 'exynos_drm_gem_obj' may be mapped to multiple user-space VMAs so 'vma' field does not look useful anyway. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_gem.h | 2 -- 1 file changed, 2 deletions(-) commit 94ab95a94c1f8a5e7ff3930010a2afaba1448e9d Author: Inki Dae Date: Fri Jun 12 22:19:22 2015 +0900 drm/exynos: fimd: fix page fault issue with iommu This patch resolves page fault issue with iommu and atomic feature when modetest test application is terminated. ENWIN_F field of WINCONx register enables or disable a dma channel to each hardware overlay - the value of the field will be updated to real register after vsync. So this patch makes sure the dma channel is disabled by waiting for vsync one time after clearing shadow registers to all dma channels. Below shows the page fault issue: setting mode 720x1280-60Hz@XR24 on connectors 31, crtc 29 freq: 59.99Hz [ 34.831025] PAGE FAULT occurred at 0x20400000 by 11e20000.sysmmu(Page table base: 0x6e324000) [ 34.838072] Lv1 entry: 0x6e92dc01 [ 34.841489] ------------[ cut here ]------------ [ 34.846058] kernel BUG at drivers/iommu/exynos-iommu.c:364! [ 34.851614] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP ARM [ 34.857428] Modules linked in: <--snip--> [ 35.210894] [] (exynos_sysmmu_irq) from [] (handle_irq_event_percpu+0x78/0x134) [ 35.219914] [] (handle_irq_event_percpu) from [] (handle_irq_event+0x3c/0x5c) [ 35.228768] [] (handle_irq_event) from [] (handle_level_irq+0xc4/0x13c) [ 35.237101] [] (handle_level_irq) from [] (generic_handle_irq+0x2c/0x3c) [ 35.245521] [] (generic_handle_irq) from [] (combiner_handle_cascade_irq+0x94/0x100) [ 35.254980] [] (combiner_handle_cascade_irq) from [] (generic_handle_irq+0x2c/0x3c) [ 35.264353] [] (generic_handle_irq) from [] (__handle_domain_irq+0x7c/0xec) [ 35.273034] [] (__handle_domain_irq) from [] (gic_handle_irq+0x30/0x68) [ 35.281366] [] (gic_handle_irq) from [] (__irq_svc+0x40/0x74) Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_fimd.c | 4 ++++ 1 file changed, 4 insertions(+) commit bcfe4e25aa0385dc7bb1061595f8e4d69f74c61d Author: Marek Szyprowski Date: Wed Jun 3 10:26:24 2015 +0200 drm/exynos: iommu: improve a check for non-iommu dma_ops DRM Exynos driver is relying on dma-mapping internal structures when used with IOMMU enabled. This patch partially hides dma-mapping internal things by using proper get_dma_ops/set_dma_ops calls. Signed-off-by: Marek Szyprowski Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_iommu.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 452868581da254b03c54912f8f780bd0a4d3bcfb Author: Marek Szyprowski Date: Wed Jun 3 10:26:23 2015 +0200 drm/exynos: iommu: detach from default dma-mapping domain on init This patch adds code, which detach sub-device nodes from default iommu domain if such has been configured. This lets Exynos DRM driver to properly attach sub-devices to its own, common for all sub-devices domain. Signed-off-by: Marek Szyprowski Tested-by: Javier Martinez Canillas Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_iommu.c | 3 +++ 1 file changed, 3 insertions(+) commit fb88e2141222ad93c594f2babc806d71cfb65e0d Author: Marek Szyprowski Date: Fri Jun 12 11:07:17 2015 +0200 drm/exynos: fimd: ensure proper hw state in fimd_clear_channel() One should not do any assumptions on the stare of the fimd hardware during driver initialization, so to properly reset fimd before enabling IOMMU, one should ensure that all power domains and clocks are really enabled. This patch adds pm_runtime and clocks management in the fimd_clear_channel() function to ensure that any access to fimd registers will be performed with clocks and power domains enabled. Signed-off-by: Marek Szyprowski Tested-by: Javier Martinez Canillas Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_fimd.c | 135 ++++++++++++++++++------------- 1 file changed, 77 insertions(+), 58 deletions(-) commit b74f14fd5c98b4cbd0763ea1841478eef5bdb7d8 Author: Joonyoung Shim Date: Fri Jun 12 17:27:16 2015 +0900 drm/exynos: initialize VIDCON0 when fimd is disabled When the fimd is disabled by fimd_disable(), enabled overlay layers also are disabled. If clocks for fimd are enabled by fimd_enable() on this case, it can lead IOMMU page fault. The reason is that VIDCON0_ENVID and VIDCON0_ENVID_F bits of VIDCON0 register are set still even though fimd is disabled, so it may continue display output of prior when clocks for fimd are enabled again. Signed-off-by: Joonyoung Shim Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_fimd.c | 2 ++ 1 file changed, 2 insertions(+) commit c329f667ba3392c3270902335690f548a2778374 Author: Joonyoung Shim Date: Fri Jun 12 20:34:28 2015 +0900 drm/exynos: remove chained calls to enable With atomic modesetting all the control for CRTC, Planes, Encoders and Connectors should come from DRM core, so the driver is not allowed to enable or disable planes from inside the crtc_enable()/disable() call. But it needs to disable planes with crtc_disable in exynos driver internally. Because crtc is disabled before plane is disabled, it means plane_disable just returns without any register changes, then we cannot be sure setting register to disable plane when crtc is disable. This patch removes this chainned calls to enable plane from exynos hw drivers code letting only DRM core touch planes except to disable plane. Also it leads eliminable enabled and resume of struct exynos_drm_plane. Signed-off-by: Gustavo Padovan Signed-off-by: Joonyoung Shim Tested-by: Marek Szyprowski Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos7_drm_decon.c | 63 +++--------------------------- drivers/gpu/drm/exynos/exynos_drm_drv.h | 5 --- drivers/gpu/drm/exynos/exynos_drm_fimd.c | 63 +++--------------------------- drivers/gpu/drm/exynos/exynos_drm_vidi.c | 25 ------------ drivers/gpu/drm/exynos/exynos_mixer.c | 38 ++---------------- 5 files changed, 16 insertions(+), 178 deletions(-) commit ba4b77c4856a26b926d3892511568b9f4c6102e1 Author: Joonyoung Shim Date: Fri Jun 12 17:27:14 2015 +0900 drm/exynos: remove to call mixer_wait_for_vblank The reason waiting vblank is to be power gated and disabled clocks after dma operation is completed. The dma operation is stopped already before be power gated and clocks are disabled when mixer is disabled by commit 381be025ac1a6("drm/exynos: stop mixer before gating clocks during poweroff"). Don't need to wait vblank anymore. Signed-off-by: Joonyoung Shim Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_mixer.c | 1 - 1 file changed, 1 deletion(-) commit 3c10473bc87d81897e3a98f3eeca2264e61b4ad9 Author: Hyungwon Hwang Date: Tue Jun 9 12:45:15 2015 +0900 drm/exynos: ipp: validate a GEM handle with multiple planes FIMC & GSC driver can calculate the offset of planes. So there are use cases which IPP receives just one GEM handle of an image with multiple plane. This patch extends ipp_validate_mem_node() to validate this case. Signed-off-by: Hyungwon Hwang Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_ipp.c | 51 ++++++++++++++++++++++++--------- 1 file changed, 38 insertions(+), 13 deletions(-) commit b224fa9f25963736407982423e7aa7160222b1f0 Author: Hyungwon Hwang Date: Tue Jun 9 12:45:14 2015 +0900 drm/exynos: ipp: fix wrong index referencing a config element Config depends on the opreation. So it must be referenced by an operation id, not a property id. Signed-off-by: Hyungwon Hwang Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_ipp.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 0e480f6ffb9497a96bac6d8aed8f958e75777b32 Author: Hyungwon Hwang Date: Thu Jun 11 23:40:30 2015 +0900 drm/exynos: dsi: check whether dsi is enabled before sending data exynos_dsi_host_transfer() can be called through a panel driver while DSI is turning down. It is possible because the function checks only whether DSI is initialized or not, and there is a moment which DSI is set by uninitialized, but DSI is still turning down. To prevent it, DSI must be set by disabled before starting to be turned down, and exynos_dsi_host_transfer() must check whether DSI is enabled or not. Kernel dump: [ 4721.351448] Unhandled fault: synchronous external abort (0x96000210) at 0xffffff800015e018 [ 4721.351809] Internal error: : 96000210 [#1] PREEMPT SMP [ 4721.352031] Modules linked in: [ 4721.352173] CPU: 2 PID: 300 Comm: deviced Tainted: G W 4.0.4-01017-g7964a87 #1 [ 4721.353989] Hardware name: Samsung DRACO board (DT) [ 4721.358852] task: ffffffc0a0b70000 ti: ffffffc0a00ec000 task.ti: ffffffc0a00ec000 [ 4721.366327] PC is at exynos_dsi_enable_lane+0x14/0x5c [ 4721.371353] LR is at exynos_dsi_host_transfer+0x834/0x8d8 [ 4721.376731] pc : [] lr : [] pstate: 60000145 [ 4721.384107] sp : ffffffc0a00efbe0 [ 4721.387405] x29: ffffffc0a00efbe0 x28: ffffffc0a00ec000 [ 4721.392699] x27: ffffffc000968000 x26: 0000000000000040 [ 4721.397994] x25: ffffffc000f74dc0 x24: ffffffc0a00efec8 [ 4721.403290] x23: ffffffc0a4815400 x22: ffffffc0009f2729 [ 4721.408584] x21: ffffffc0a00efcc8 x20: ffffffc0a4a2a848 [ 4721.413879] x19: ffffffc0a4a2a818 x18: 0000000000000004 [ 4721.419173] x17: 0000007faa5cddf0 x16: ffffffc0001a40a8 [ 4721.424469] x15: 0000000000000009 x14: 000000000000000d [ 4721.429762] x13: 6e6e6f63206b726f x12: 0000000000000010 [ 4721.435058] x11: 0101010101010101 x10: 0000000000000000 [ 4721.440353] x9 : 000000000000000a x8 : 8386838282818381 [ 4721.445648] x7 : ffffffc0a201efe8 x6 : 0000000000000000 [ 4721.450943] x5 : 00000000fffffffa x4 : ffffffc0a201f170 [ 4721.456237] x3 : ffffff800015e000 x2 : ffffff800015e018 [ 4721.461531] x1 : 000000000000000f x0 : ffffffc0a4a2a818 [ 4721.466826] [ 4721.468305] Process deviced (pid: 300, stack limit = 0xffffffc0a00ec028) [ 4721.474989] Stack: (0xffffffc0a00efbe0 to 0xffffffc0a00f0000) [ 4721.480720] fbe0: a00efca0 ffffffc0 0042c944 ffffffc0 a0f2d680 ffffffc0 00000024 00000000 [ 4721.488895] fc00: a4b6d000 ffffffc0 009f2729 ffffffc0 a4815400 ffffffc0 a00efec8 ffffffc0 Signed-off-by: Hyungwon Hwang Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_dsi.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) commit e3b9e4602a9e832f46592daed0138543897e9b18 Author: Andrzej Hajda Date: Mon Jun 8 12:15:42 2015 +0200 drm/exynos: remove SoC checking code SoC checking code is not necessary anymore, as exynos_drm_match_add and exynos_drm_platform_probe already properly handles situation when there are no Exynos DRM components. Signed-off-by: Andrzej Hajda Tested-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_drv.c | 27 +-------------------------- 1 file changed, 1 insertion(+), 26 deletions(-) commit 8665040850e3cb1a5d288bcb2c5164538e80373e Author: Andrzej Hajda Date: Thu Jun 11 23:23:37 2015 +0900 drm/exynos: fix broken component binding in case of multiple pipelines In case there are multiple pipelines and deferred probe occurs, only components of the first pipeline were bound. As a result only one pipeline was available. The main cause of this issue was dynamic generation of component match table - every component driver during probe registered itself on helper list, if there was at least one pipeline present on this list component match table were created without deferred components. This patch removes this helper list, instead it creates match table from existing devices requiring exynos_drm KMS drivers. This way match table do not depend on probe/deferral order and contains all KMS components. As a side effect patch makes the code cleaner and significantly smaller. Signed-off-by: Andrzej Hajda Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos7_drm_decon.c | 14 +- drivers/gpu/drm/exynos/exynos_dp_core.c | 14 +- drivers/gpu/drm/exynos/exynos_drm_dpi.c | 20 +-- drivers/gpu/drm/exynos/exynos_drm_drv.c | 280 ++++++++--------------------- drivers/gpu/drm/exynos/exynos_drm_drv.h | 14 -- drivers/gpu/drm/exynos/exynos_drm_dsi.c | 35 +--- drivers/gpu/drm/exynos/exynos_drm_fimd.c | 28 +-- drivers/gpu/drm/exynos/exynos_drm_vidi.c | 18 +- drivers/gpu/drm/exynos/exynos_hdmi.c | 22 +-- drivers/gpu/drm/exynos/exynos_mixer.c | 14 +- 10 files changed, 100 insertions(+), 359 deletions(-) commit 417133e46924a9aa7bfa0e17dab01a1b475878c4 Author: Andrzej Hajda Date: Thu Jun 11 23:20:52 2015 +0900 drm/exynos: consolidate driver/device initialization code Code registering different drivers and simple platform devices was dispersed across multiple sub-modules. This patch moves it to one place. As a result initialization code is shorter and cleaner and should simplify further development. Signed-off-by: Andrzej Hajda Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_drv.c | 220 +++++++++++++++++++------------ drivers/gpu/drm/exynos/exynos_drm_drv.h | 17 --- drivers/gpu/drm/exynos/exynos_drm_ipp.c | 27 ---- drivers/gpu/drm/exynos/exynos_drm_vidi.c | 35 ----- 4 files changed, 138 insertions(+), 161 deletions(-) commit 38000dbb71ded4121b27338a2d41ad060001592a Author: Gustavo Padovan Date: Wed Jun 3 17:17:16 2015 -0300 drm/exynos: add error messages if clks failed to get enabled Check error and call DRM_ERROR if clk_prepare_enable() fails. Signed-off-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos7_drm_decon.c | 28 +++++++++++++++++++++++---- drivers/gpu/drm/exynos/exynos_drm_fimd.c | 14 ++++++++++++-- drivers/gpu/drm/exynos/exynos_mixer.c | 31 +++++++++++++++++++++++++----- 3 files changed, 62 insertions(+), 11 deletions(-) commit 1e5507cecbf3fdb2bd7914b8ebc396ad23f3da67 Author: Inki Dae Date: Wed Jun 3 11:31:23 2015 +0900 drm/exynos: add a dependency on FB_S3C to DECON driver This patch makes one of Linux framebuffer and DRM CRTC drivers to be enabled. Display controllers, FIMD and DECON, can be controlled by Linux framebuffer or DRM CRTC drivers so only one of them should be enabled. Signed-off-by: Inki Dae Reviewed-by: Gustavo Padovan drivers/gpu/drm/exynos/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7491e5b48eefd426c8059388470c268d7508ef50 Author: Inki Dae Date: Wed Jun 3 11:25:00 2015 +0900 drm/exynos: vidi: remove unused varables This patch removes unnsed varables in vidi_disable function. Signed-off-by: Inki Dae Reviewed-by: Gustavo Padovan drivers/gpu/drm/exynos/exynos_drm_vidi.c | 2 -- 1 file changed, 2 deletions(-) commit 3cecda030f03efe5ce064f0263cd8ad2dc1e21ac Author: Gustavo Padovan Date: Mon Jun 1 12:04:55 2015 -0300 drm/exynos: split exynos_crtc->dpms in enable() and disable() To follow more closely the new atomic API we split the dpms() helper into the enable() and disable() helper to get exactly the same semantics. Signed-off-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos7_drm_decon.c | 87 ++++++------------------------ drivers/gpu/drm/exynos/exynos_drm_crtc.c | 8 +-- drivers/gpu/drm/exynos/exynos_drm_drv.h | 6 ++- drivers/gpu/drm/exynos/exynos_drm_fimd.c | 69 +++++------------------- drivers/gpu/drm/exynos/exynos_drm_vidi.c | 53 +++++++----------- drivers/gpu/drm/exynos/exynos_mixer.c | 26 +++------ 6 files changed, 62 insertions(+), 187 deletions(-) commit c4d96f1689226a2342962f2c70b16b0a3b8343ff Author: Gustavo Padovan Date: Mon Jun 1 12:04:54 2015 -0300 drm/exynos: remove unnecessary calls to disable_plane() The planes are already disabled by the drm_atomic_helper_commit() code so we don't need to disable the in these two places. Signed-off-by: Gustavo Padovan Reviewed-by: Joonyoung Shim Tested-by: Tobias Jakobi Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_crtc.c | 11 ----------- drivers/gpu/drm/exynos/exynos_drm_encoder.c | 8 -------- 2 files changed, 19 deletions(-) commit 63498e30652ee9b1c16b66129080749e2fa0d79e Author: Gustavo Padovan Date: Mon Jun 1 12:04:53 2015 -0300 drm/exynos: atomic dpms support Run dpms operations through the atomic intefaces. This basically removes the .dpms() callback from econders and crtcs and use .disable() and .enable() to turn the crtc on and off. v2: Address comments by Joonyoung: - make hdmi code call ->disable() instead of ->dpms() - do not use WARN_ON on crtc enable/disable v3: - Fix build failure after the hdmi change in v2 - Change dpms helper of ptn3460 bridge v4: - remove win_commit() call from .enable() v5: - move .atomic_check() to the atomic PageFlip patch, and transform it in .atomic_begin() Signed-off-by: Gustavo Padovan Reviewed-by: Joonyoung Shim Tested-by: Tobias Jakobi Signed-off-by: Inki Dae drivers/gpu/drm/bridge/ps8622.c | 2 +- drivers/gpu/drm/bridge/ptn3460.c | 2 +- drivers/gpu/drm/exynos/exynos_dp_core.c | 2 +- drivers/gpu/drm/exynos/exynos_drm_crtc.c | 58 ++++++++++++----------------- drivers/gpu/drm/exynos/exynos_drm_dpi.c | 2 +- drivers/gpu/drm/exynos/exynos_drm_drv.h | 4 +- drivers/gpu/drm/exynos/exynos_drm_dsi.c | 2 +- drivers/gpu/drm/exynos/exynos_drm_encoder.c | 21 +++-------- drivers/gpu/drm/exynos/exynos_drm_vidi.c | 2 +- drivers/gpu/drm/exynos/exynos_hdmi.c | 6 +-- 10 files changed, 40 insertions(+), 61 deletions(-) commit d6562a291ed0b48db520f2da83faee48d1216cab Author: Gustavo Padovan Date: Mon Jun 1 12:04:52 2015 -0300 drm/exynos: add exynos specific .atomic_commit() exynos needs to update planes with the crtc enabled (mainly for the FIMD case) so this specific atomic commit changes the order of drm_atomic_helper_commit_modeset_enables() and drm_atomic_helper_commit_planes() to commit planes after we enable crtc and encoders. Signed-off-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_fb.c | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) commit 3fc4867c5dc4565992533b03ce02e47cb430d789 Author: Gustavo Padovan Date: Mon Jun 1 12:04:51 2015 -0300 drm/exynos: move exynos_drm_crtc_disable() This is a preparation commit to move exynos_drm_crtc_disable() together with the future exynos_drm_crtc_enable() that will come from the split of exynos_drm_crtc_dpms() callback. Signed-off-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_crtc.c | 36 ++++++++++++++++---------------- 1 file changed, 18 insertions(+), 18 deletions(-) commit bbcf7bd6406e4aee0379ecca4f160215fefec7e2 Author: Gustavo Padovan Date: Mon Jun 1 12:04:50 2015 -0300 drm/exynos: don't disable unused functions at init Everything starts disabled so we don't really need to disable anything. Signed-off-by: Gustavo Padovan Reviewed-by: Joonyoung Shim Tested-by: Tobias Jakobi Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 3 --- 1 file changed, 3 deletions(-) commit d5f5223c464110919bb5439888eaaa72ece6ddb8 Author: Gustavo Padovan Date: Mon Jun 1 12:04:49 2015 -0300 drm/exynos: remove exported functions from exynos_drm_plane Now that no one is using the functions exported by exynos_drm_plane due to the atomic conversion we can make remove some of the them or make them static. v2: remove unused exynos_drm_crtc v3: fix checkpatch error (reported by Joonyoung) Signed-off-by: Gustavo Padovan Reviewed-by: Joonyoung Shim Tested-by: Tobias Jakobi Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_plane.c | 98 +++++++++++++------------------ drivers/gpu/drm/exynos/exynos_drm_plane.h | 11 ---- 2 files changed, 42 insertions(+), 67 deletions(-) commit 9d5ab6a0ff7bb9565e8e1bcce5648964b6434470 Author: Gustavo Padovan Date: Mon Jun 1 12:04:48 2015 -0300 drm/exynos: atomic phase 3: convert page flips PageFlips now use the atomic helper to work through the atomic modesetting API. Async page flips are not supported yet. v2: Add .atomic_begin() step to handle the vblank part we removed from exynos page_flip code. Signed-off-by: Gustavo Padovan Reviewed-by: Joonyoung Shim Tested-by: Tobias Jakobi Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_crtc.c | 79 +++++++------------------------- drivers/gpu/drm/exynos/exynos_drm_fb.c | 9 +++- 2 files changed, 25 insertions(+), 63 deletions(-) commit 47a7deff3606c4455f0abf0cdb1a9c89ba722a6b Author: Gustavo Padovan Date: Mon Jun 1 12:04:47 2015 -0300 drm/exynos: atomic phase 3: use atomic .set_config helper Now that phase 1 and 2 are complete switch .set_config helper to use the atomic one. v2: also remove .prepare() callback v3: remove .mode_set() and .mode_set_base() and encoder's .prepare() callbacks Signed-off-by: Gustavo Padovan Reviewed-by: Joonyoung Shim Tested-by: Tobias Jakobi Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_crtc.c | 10 +--------- drivers/gpu/drm/exynos/exynos_drm_encoder.c | 6 ------ 2 files changed, 1 insertion(+), 15 deletions(-) commit 910874a8bd2b4a09c6abb963926e076fe1471863 Author: Gustavo Padovan Date: Mon Jun 1 12:04:46 2015 -0300 drm/exynos: atomic phase 3: atomic updates of planes Now that phase 1 and 2 are complete we can switch the update/disable_plane callbacks to their atomic version. Signed-off-by: Gustavo Padovan Reviewed-by: Joonyoung Shim Tested-by: Tobias Jakobi Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_fb.c | 3 +++ drivers/gpu/drm/exynos/exynos_drm_plane.c | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) commit 7cf1ff2571215fbd32967ec465a79d3f1528cc19 Author: Gustavo Padovan Date: Mon Jun 1 12:04:45 2015 -0300 drm/exynos: atomic phase 2: keep track of framebuffer pointer Use drm_atomic_set_fb_for_plane() in the legacy page_flip path to keep track of the framebuffer pointer and reference. Signed-off-by: Gustavo Padovan Reviewed-by: Joonyoung Shim Tested-by: Tobias Jakobi Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_crtc.c | 3 +++ 1 file changed, 3 insertions(+) commit 4ea9526b09d337b36852989c6cebf252824c867f Author: Gustavo Padovan Date: Mon Jun 1 12:04:44 2015 -0300 drm/exynos: atomic phase 2: wire up state reset(), duplicate() and destroy() Set CRTC, planes and connectors to use the default implementations from the atomic helper library. The helpers will work to keep track of state for each DRM object. Signed-off-by: Gustavo Padovan Reviewed-by: Joonyoung Shim Tested-by: Tobias Jakobi Signed-off-by: Inki Dae drivers/gpu/drm/bridge/ps8622.c | 4 ++++ drivers/gpu/drm/bridge/ptn3460.c | 4 ++++ drivers/gpu/drm/exynos/exynos_dp_core.c | 4 ++++ drivers/gpu/drm/exynos/exynos_drm_crtc.c | 5 +++++ drivers/gpu/drm/exynos/exynos_drm_dpi.c | 4 ++++ drivers/gpu/drm/exynos/exynos_drm_drv.c | 2 ++ drivers/gpu/drm/exynos/exynos_drm_dsi.c | 4 ++++ drivers/gpu/drm/exynos/exynos_drm_plane.c | 4 ++++ drivers/gpu/drm/exynos/exynos_drm_vidi.c | 4 ++++ drivers/gpu/drm/exynos/exynos_hdmi.c | 4 ++++ 10 files changed, 39 insertions(+) commit 020e79de26599621d25001c9c1293bc8087dbedc Author: Joonyoung Shim Date: Tue Jun 2 21:04:42 2015 +0900 drm/exynos: use adjusted_mode of crtc_state instead of mode Handle changes by removing copy from adjusted_mode to mode as using adjusted_mode of crtc_state. Signed-off-by: Joonyoung Shim Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos7_drm_decon.c | 4 ++-- drivers/gpu/drm/exynos/exynos_drm_fimd.c | 2 +- drivers/gpu/drm/exynos/exynos_drm_plane.c | 13 +++++++------ 3 files changed, 10 insertions(+), 9 deletions(-) commit 199329cb3713c93c9e96831398a2e17a1e170e95 Author: Gustavo Padovan Date: Mon Jun 1 12:04:43 2015 -0300 drm/exynos: atomic phase 1: add .mode_set_nofb() callback The new atomic infrastructure needs the .mode_set_nofb() callback to update CRTC timings before setting any plane. v2: remove WARN_ON(!crtc->state) from mode_set_nofb Signed-off-by: Gustavo Padovan Reviewed-by: Joonyoung Shim Tested-by: Tobias Jakobi Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_crtc.c | 63 ++++---------------------------- 1 file changed, 7 insertions(+), 56 deletions(-) commit b744868cd2372c3783e460ec3c5b026a69c39332 Author: Gustavo Padovan Date: Mon Jun 1 12:04:42 2015 -0300 drm/exynos: atomic phase 1: use drm_plane_helper_disable() The atomic helper to disable planes also uses the optional .atomic_disable() helper. The unique operation it does is calling .win_disable() Signed-off-by: Gustavo Padovan Reviewed-by: Joonyoung Shim Tested-by: Tobias Jakobi Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_plane.c | 32 ++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) commit 43dbdad2a9a6c64e3ce8339107d8666006ca2b5d Author: Gustavo Padovan Date: Mon Jun 1 12:04:41 2015 -0300 drm/exynos: atomic phase 1: use drm_plane_helper_update() Rip out the check from exynos_update_plane() and create exynos_check_plane() for the check phase enabling use to use the atomic helpers to call our check and update phases when updating planes. Update all users of exynos_update_plane() accordingly to call exynos_check_plane() before. Signed-off-by: Gustavo Padovan Reviewed-by: Joonyoung Shim Tested-by: Tobias Jakobi y Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_crtc.c | 31 ++++++++++++------------ drivers/gpu/drm/exynos/exynos_drm_plane.c | 40 +++++++++++++++++++++++-------- drivers/gpu/drm/exynos/exynos_drm_plane.h | 2 +- 3 files changed, 47 insertions(+), 26 deletions(-) commit afaf848dc74c61463faac14a32e53bcc68b377c8 Author: Joonyoung Shim Date: Mon Jun 1 12:04:39 2015 -0300 drm/exynos: fix source data argument for plane The exynos_update_plane function needs 16.16 fixed point source data. Signed-off-by: Joonyoung Shim Reviewed-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_crtc.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 419d06a1cf58d9b99b25b5f578418b80070043a3 Author: Axel Lin Date: Thu Jun 18 08:50:39 2015 +0800 regulator: qcom_spmi: Fix calculating number of voltages n /= range->step_uV + 1; is equivalent to n /= (range->step_uV + 1); which is wrong. Fix it. Signed-off-by: Axel Lin Acked-by: Stephen Boyd Signed-off-by: Mark Brown drivers/regulator/qcom_spmi-regulator.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 86dca36e6ba019650a94cadf922ea3d06dec0182 Author: Vladimir Murzin Date: Fri Jun 19 15:28:03 2015 +0100 arm64: use private ratelimit state along with show_unhandled_signals printk_ratelimit() shares the ratelimiting state with other callers what may lead to scenarios where at the time we want to print out debug information we already limited, so nothing appears in the dmesg - this makes exception-trace quite poor helper in debugging. Additionally, we have imbalance with some messages limited with global ratelimit state and other messages limited with their private state defined via pr_*_ratelimited(). To address this inconsistency show_unhandled_signals_ratelimited() macro is introduced and caller sites are converted to use it. Signed-off-by: Vladimir Murzin Signed-off-by: Catalin Marinas arch/arm64/include/asm/system_misc.h | 13 +++++++++++++ arch/arm64/kernel/traps.c | 5 ++--- arch/arm64/mm/fault.c | 3 +-- 3 files changed, 16 insertions(+), 5 deletions(-) commit afcd950cafea6e27b739fe7772cbbeed37d05b8b Author: Chris Wilson Date: Wed Jun 10 15:58:01 2015 +0100 drm: Avoid the double clflush on the last cache line in drm_clflush_virt_range() As the clflush operates on cache lines, and we can flush any byte address, in order to flush all bytes given in the range we issue an extra clflush on the last byte to ensure the last cacheline is flushed. We can can the iteration to be over the actual cache lines to avoid this double clflush on the last byte. Signed-off-by: Chris Wilson Cc: Imre Deak Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_cache.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 2465ff6217f1b63e194cfd57018fa42abe7fcdf0 Author: Daniel Vetter Date: Thu Jun 18 09:58:55 2015 +0200 drm/atomic: Extract needs_modeset function We use the same check already in the atomic core, so might as well make this official. And it's also reused in e.g. i915. Motivated by Maarten's idea to extract a connector_changed state out of mode_changed. Cc: Maarten Lankhorst Reviewed-By: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_atomic.c | 3 +-- drivers/gpu/drm/drm_atomic_helper.c | 16 +++++----------- include/drm/drm_atomic.h | 6 ++++++ 3 files changed, 12 insertions(+), 13 deletions(-) commit 9e793ab84ed482047f7226595313f0f3a0aa6854 Author: Vladimir Murzin Date: Fri Jun 19 15:28:16 2015 +0100 arm64: show unhandled SP/PC alignment faults Report unhandled SP/PC alignment faults if the show_unhandled_signals variable is set (via /proc/sys/debug/exception-trace). Signed-off-by: Vladimir Murzin Signed-off-by: Catalin Marinas arch/arm64/mm/fault.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit 5ffde2f67181195d457b95df44b8f88e8d969d89 Merge: ec4292d aa759fd 8a0a01b 571dbbd 0b3fff5 4d58b8a 733cac2 Author: Joerg Roedel Date: Fri Jun 19 17:17:47 2015 +0200 Merge branches 'arm/rockchip', 'arm/exynos', 'arm/smmu', 'x86/vt-d', 'x86/amd', 'default-domains' and 'core' into next commit 0b3fff54bc01e8e6064d222a33e6fa7adabd94cd Author: Joerg Roedel Date: Thu Jun 18 10:48:34 2015 +0200 iommu/amd: Handle large pages correctly in free_pagetable Make sure that we are skipping over large PTEs while walking the page-table tree. Cc: stable@kernel.org Fixes: 5c34c403b723 ("iommu/amd: Fix memory leak in free_pagetable") Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu.c | 6 ++++++ 1 file changed, 6 insertions(+) commit e5af058aacd55e578b3c57b1582b90c4290b77f9 Author: Wei Huang Date: Fri Jun 19 15:51:47 2015 +0200 KVM: x86/vPMU: reorder PMU functions Keep called functions closer to their callers, and init/destroy functions next to each other. Signed-off-by: Paolo Bonzini arch/x86/kvm/pmu.c | 156 ++++++++++++++++++++++++++--------------------------- 1 file changed, 78 insertions(+), 78 deletions(-) commit e84cfe4ce0113a6c5e3bdf70e20a21552ad3a28d Author: Wei Huang Date: Fri Jun 19 14:15:28 2015 +0200 KVM: x86/vPMU: whitespace and stylistic adjustments in PMU code Signed-off-by: Wei Huang Signed-off-by: Paolo Bonzini arch/x86/kvm/pmu.c | 112 ++++++++++++++++++++++++++++++----------------------- 1 file changed, 64 insertions(+), 48 deletions(-) commit 212dba1267a1be228635014fa35c98a59853de9e Author: Wei Huang Date: Fri Jun 19 14:00:33 2015 +0200 KVM: x86/vPMU: use the new macros to go between PMC, PMU and VCPU Signed-off-by: Wei Huang Signed-off-by: Paolo Bonzini arch/x86/kvm/pmu.c | 38 ++++++++++++++++++-------------------- 1 file changed, 18 insertions(+), 20 deletions(-) commit 474a5bb944d2ad308a1360dcae72b16b8eecd250 Author: Wei Huang Date: Fri Jun 19 13:54:23 2015 +0200 KVM: x86/vPMU: introduce pmu.h header This will be used for private function used by AMD- and Intel-specific PMU implementations. Signed-off-by: Wei Huang Signed-off-by: Paolo Bonzini arch/x86/include/asm/kvm_host.h | 12 ------------ arch/x86/kvm/cpuid.c | 1 + arch/x86/kvm/pmu.c | 8 ++------ arch/x86/kvm/pmu.h | 26 ++++++++++++++++++++++++++ arch/x86/kvm/x86.c | 1 + 5 files changed, 30 insertions(+), 18 deletions(-) commit c6702c9dcfe72b63a85e7ae35533c11e2b7c1040 Author: Wei Huang Date: Fri Jun 19 13:44:45 2015 +0200 KVM: x86/vPMU: rename a few PMU functions Before introducing a pmu.h header for them, make the naming more consistent. Signed-off-by: Paolo Bonzini arch/x86/include/asm/kvm_host.h | 12 ++++---- arch/x86/kvm/cpuid.c | 2 +- arch/x86/kvm/pmu.c | 66 ++++++++++++++++++++--------------------- arch/x86/kvm/x86.c | 18 +++++------ 4 files changed, 49 insertions(+), 49 deletions(-) commit 6a39bbc5da27c3b2520876b71e4f7b50f5313503 Author: Xiao Guangrong Date: Mon Jun 15 16:55:35 2015 +0800 KVM: MTRR: do not map huge page for non-consistent range Based on Intel's SDM, mapping huge page which do not have consistent memory cache for each 4k page will cause undefined behavior In order to avoiding this kind of undefined behavior, we force to use 4k pages under this case Signed-off-by: Xiao Guangrong Signed-off-by: Paolo Bonzini arch/x86/kvm/mmu.c | 20 +++++++++++++++++++- arch/x86/kvm/mtrr.c | 29 +++++++++++++++++++++++++++++ arch/x86/kvm/x86.h | 2 ++ 3 files changed, 50 insertions(+), 1 deletion(-) commit fa61213746a706dd975661151c35795ca4dd82c2 Author: Xiao Guangrong Date: Mon Jun 15 16:55:34 2015 +0800 KVM: MTRR: simplify kvm_mtrr_get_guest_memory_type mtrr_for_each_mem_type() is ready now, use it to simplify kvm_mtrr_get_guest_memory_type() Signed-off-by: Xiao Guangrong Signed-off-by: Paolo Bonzini arch/x86/kvm/mtrr.c | 64 ++++++++++++++--------------------------------------- 1 file changed, 16 insertions(+), 48 deletions(-) commit f571c0973e4b8c888e049b6842e4b4f93b5c609c Author: Xiao Guangrong Date: Mon Jun 15 16:55:33 2015 +0800 KVM: MTRR: introduce mtrr_for_each_mem_type It walks all MTRRs and gets all the memory cache type setting for the specified range also it checks if the range is fully covered by MTRRs Signed-off-by: Xiao Guangrong [Adjust for range_size->range_shift change. - Paolo] Signed-off-by: Paolo Bonzini arch/x86/kvm/mtrr.c | 188 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 188 insertions(+) commit f7bfb57b3e89ff89c0da9f93dedab89f68d6ca27 Author: Xiao Guangrong Date: Mon Jun 15 16:55:32 2015 +0800 KVM: MTRR: introduce fixed_mtrr_addr_* functions Two functions are introduced: - fixed_mtrr_addr_to_seg() translates the address to the fixed MTRR segment - fixed_mtrr_addr_seg_to_range_index() translates the address to the index of kvm_mtrr.fixed_ranges[] They will be used in the later patch Signed-off-by: Xiao Guangrong [Adjust for range_size->range_shift change. - Paolo] Signed-off-by: Paolo Bonzini arch/x86/kvm/mtrr.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) commit 19efffa244071ccd0385b240d03adb38feaab04e Author: Xiao Guangrong Date: Mon Jun 15 16:55:31 2015 +0800 KVM: MTRR: sort variable MTRRs Sort all valid variable MTRRs based on its base address, it will help us to check a range to see if it's fully contained in variable MTRRs Signed-off-by: Xiao Guangrong [Fix list insertion sort, simplify var_mtrr_range_is_valid to just test the V bit. - Paolo] Signed-off-by: Paolo Bonzini arch/x86/include/asm/kvm_host.h | 3 +++ arch/x86/kvm/mtrr.c | 50 ++++++++++++++++++++++++++++++++--------- arch/x86/kvm/x86.c | 2 +- arch/x86/kvm/x86.h | 1 + 4 files changed, 45 insertions(+), 11 deletions(-) commit a13842dc668b40daef4327294a6d3bdc8bd30276 Author: Xiao Guangrong Date: Mon Jun 15 16:55:30 2015 +0800 KVM: MTRR: introduce var_mtrr_range It gets the range for the specified variable MTRR Signed-off-by: Xiao Guangrong [Simplify boolean operations. - Paolo] Signed-off-by: Paolo Bonzini arch/x86/kvm/mtrr.c | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) commit de9aef5e1ad6e504d6992df17dfa193e8ba5cc34 Author: Xiao Guangrong Date: Mon Jun 15 16:55:29 2015 +0800 KVM: MTRR: introduce fixed_mtrr_segment table This table summarizes the information of fixed MTRRs and introduce some APIs to abstract its operation which helps us to clean up the code and will be used in later patches Signed-off-by: Xiao Guangrong [Change range_size to range_shift, in order to avoid udivdi3 errors. - Paolo] Signed-off-by: Paolo Bonzini arch/x86/kvm/mtrr.c | 200 ++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 147 insertions(+), 53 deletions(-) commit 3f3f78b61462fdc62469334c259b1e5555ebd1ed Author: Xiao Guangrong Date: Mon Jun 15 16:55:28 2015 +0800 KVM: MTRR: improve kvm_mtrr_get_guest_memory_type - kvm_mtrr_get_guest_memory_type() only checks one page in MTRRs so that it's unnecessary to check to see if the range is partially covered in MTRR - optimize the check of overlap memory type and add some comments to explain the precedence Signed-off-by: Xiao Guangrong Signed-off-by: Paolo Bonzini arch/x86/kvm/mtrr.c | 94 ++++++++++++++++++++++++++++------------------------- 1 file changed, 49 insertions(+), 45 deletions(-) commit 86fd52701cfae760711fb02a03c1ab8c80ea72f3 Author: Xiao Guangrong Date: Mon Jun 15 16:55:27 2015 +0800 KVM: MTRR: do not split 64 bits MSR content Variable MTRR MSRs are 64 bits which are directly accessed with full length, no reason to split them to two 32 bits Signed-off-by: Xiao Guangrong Signed-off-by: Paolo Bonzini arch/x86/include/asm/kvm_host.h | 7 ++++++- arch/x86/kvm/mtrr.c | 32 ++++++++++---------------------- 2 files changed, 16 insertions(+), 23 deletions(-) commit 10fac2dc2b3b549d371d67f57193362b6bcc6dfd Author: Xiao Guangrong Date: Mon Jun 15 16:55:26 2015 +0800 KVM: MTRR: clean up mtrr default type Drop kvm_mtrr->enable, omit the decode/code workload and get rid of all the hard code Signed-off-by: Xiao Guangrong Signed-off-by: Paolo Bonzini arch/x86/include/asm/kvm_host.h | 3 +-- arch/x86/kvm/mtrr.c | 40 ++++++++++++++++++++++++++++------------ 2 files changed, 29 insertions(+), 14 deletions(-) commit 910a6aae4e2e45855efc4a268e43eed2d8445575 Author: Xiao Guangrong Date: Mon Jun 15 16:55:25 2015 +0800 KVM: MTRR: exactly define the size of variable MTRRs Only KVM_NR_VAR_MTRR variable MTRRs are available in KVM guest Signed-off-by: Xiao Guangrong Signed-off-by: Paolo Bonzini arch/x86/include/asm/kvm_host.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 70109e7d9d4ac7182786ddf7cd53bc651a157896 Author: Xiao Guangrong Date: Mon Jun 15 16:55:24 2015 +0800 KVM: MTRR: remove mtrr_state.have_fixed vMTRR does not depend on any host MTRR feature and fixed MTRRs have always been implemented, so drop this field Signed-off-by: Xiao Guangrong Signed-off-by: Paolo Bonzini arch/x86/include/asm/kvm_host.h | 9 ++++++++- arch/x86/kvm/mtrr.c | 7 +++---- arch/x86/kvm/x86.c | 1 - 3 files changed, 11 insertions(+), 6 deletions(-) commit eb839917a75207b89799e3500211163cb6de0dea Author: Xiao Guangrong Date: Mon Jun 15 16:55:23 2015 +0800 KVM: MTRR: handle MSR_MTRRcap in kvm_mtrr_get_msr MSR_MTRRcap is a MTRR msr so move the handler to the common place, also add some comments to make the hard code more readable Signed-off-by: Xiao Guangrong Signed-off-by: Paolo Bonzini arch/x86/kvm/mtrr.c | 12 ++++++++++++ arch/x86/kvm/x86.c | 2 -- 2 files changed, 12 insertions(+), 2 deletions(-) commit ff53604b40b439cbb235f89bda99839ca81d3b9d Author: Xiao Guangrong Date: Mon Jun 15 16:55:22 2015 +0800 KVM: x86: move MTRR related code to a separate file MTRR code locates in x86.c and mmu.c so that move them to a separate file to make the organization more clearer and it will be the place where we fully implement vMTRR Signed-off-by: Xiao Guangrong Signed-off-by: Paolo Bonzini arch/x86/include/asm/kvm_host.h | 1 - arch/x86/kvm/Makefile | 2 +- arch/x86/kvm/mmu.c | 103 ------------ arch/x86/kvm/mtrr.c | 335 ++++++++++++++++++++++++++++++++++++++++ arch/x86/kvm/vmx.c | 2 +- arch/x86/kvm/x86.c | 214 +------------------------ arch/x86/kvm/x86.h | 3 + 7 files changed, 342 insertions(+), 318 deletions(-) commit b18d5431acc7a2fd22767925f3a6f597aa4bd29e Author: Xiao Guangrong Date: Mon Jun 15 16:55:21 2015 +0800 KVM: x86: fix CR0.CD virtualization Currently, CR0.CD is not checked when we virtualize memory cache type for noncoherent_dma guests, this patch fixes it by : - setting UC for all memory if CR0.CD = 1 - zapping all the last sptes in MMU if CR0.CD is changed Signed-off-by: Xiao Guangrong Signed-off-by: Paolo Bonzini arch/x86/kvm/vmx.c | 32 ++++++++++++++++++++++---------- arch/x86/kvm/x86.c | 4 ++++ 2 files changed, 26 insertions(+), 10 deletions(-) commit f104765b4f81fd74d69e0eb161e89096deade2db Author: Bandan Das Date: Thu Jun 11 02:05:33 2015 -0400 KVM: nSVM: Check for NRIPS support before updating control field If hardware doesn't support DecodeAssist - a feature that provides more information about the intercept in the VMCB, KVM decodes the instruction and then updates the next_rip vmcb control field. However, NRIP support itself depends on cpuid Fn8000_000A_EDX[NRIPS]. Since skip_emulated_instruction() doesn't verify nrip support before accepting control.next_rip as valid, avoid writing this field if support isn't present. Signed-off-by: Bandan Das Signed-off-by: Paolo Bonzini arch/x86/kvm/svm.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 0b8ba4a2b65860ac1fcd5be6cfca5d3b27a5b170 Author: Kevin Mulvey Date: Tue Jun 16 07:34:00 2015 -0400 KVM: fix checkpatch.pl errors in kvm/coalesced_mmio.h Tabs rather than spaces Signed-off-by: Kevin Mulvey Signed-off-by: Paolo Bonzini virt/kvm/coalesced_mmio.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit d626f3d5b39e0fc8908fa044fa08cbbc4daeffce Author: Kevin Mulvey Date: Tue Jun 16 07:33:59 2015 -0400 KVM: fix checkpatch.pl errors in kvm/async_pf.h fix brace spacing Signed-off-by: Kevin Mulvey Signed-off-by: Paolo Bonzini virt/kvm/async_pf.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e73f61e41f3bb9bc453fd9c21b82d0b89c2b83e7 Author: Joerg Roedel Date: Fri May 8 14:31:44 2015 +0200 kvm: irqchip: Break up high order allocations of kvm_irq_routing_table The allocation size of the kvm_irq_routing_table depends on the number of irq routing entries because they are all allocated with one kzalloc call. When the irq routing table gets bigger this requires high order allocations which fail from time to time: qemu-kvm: page allocation failure: order:4, mode:0xd0 This patch fixes this issue by breaking up the allocation of the table and its entries into individual kzalloc calls. These could all be satisfied with order-0 allocations, which are less likely to fail. The downside of this change is the lower performance, because of more calls to kzalloc. But given how often kvm_set_irq_routing is called in the lifetime of a guest, it doesn't really matter much. Signed-off-by: Joerg Roedel [Avoid sparse warning through rcu_access_pointer. - Paolo] Signed-off-by: Paolo Bonzini virt/kvm/irqchip.c | 41 +++++++++++++++++++++++++++++++++-------- 1 file changed, 33 insertions(+), 8 deletions(-) commit 05fe125fa3237de2ec5bada80031e694de78909c Merge: e80a4a9 c62e631 Author: Paolo Bonzini Date: Fri Jun 19 17:15:24 2015 +0200 Merge tag 'kvm-arm-for-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into HEAD KVM/ARM changes for v4.2: - Proper guest time accounting - FP access fix for 32bit - The usual pile of GIC fixes - PSCI fixes - Random cleanups commit 2df6bb5d8b22bc06a6ea83e8b2a6bcf3bb445304 Author: Boris BREZILLON Date: Thu Jun 18 15:46:30 2015 +0200 crypto: marvell/cesa - add DT bindings documentation Add DT bindings documentation for the new marvell-cesa driver. Signed-off-by: Boris Brezillon Signed-off-by: Herbert Xu .../devicetree/bindings/crypto/marvell-cesa.txt | 45 ++++++++++++++++++++++ 1 file changed, 45 insertions(+) commit 7240425579b881a3e26ba62a1bca29b45d4bfadc Author: Arnaud Ebalard Date: Thu Jun 18 15:46:29 2015 +0200 crypto: marvell/cesa - add support for Kirkwood and Dove SoCs Add the Kirkwood and Dove SoC descriptions, and control the allhwsupport module parameter to avoid probing the CESA IP when the old CESA driver is enabled (unless it is explicitly requested to do so). Signed-off-by: Arnaud Ebalard Signed-off-by: Boris Brezillon Signed-off-by: Herbert Xu drivers/crypto/marvell/cesa.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) commit 0bf6948995f9f7c4b0ce062db793c205e921ee48 Author: Boris BREZILLON Date: Thu Jun 18 15:46:28 2015 +0200 crypto: marvell/cesa - add support for Orion SoCs Add the Orion SoC description, and select this implementation by default to support non-DT probing: Orion is the only platform where non-DT boards are declaring the CESA block. Control the allhwsupport module parameter to avoid probing the CESA IP when the old CESA driver is enabled (unless it is explicitly requested to do so). Signed-off-by: Boris Brezillon Signed-off-by: Herbert Xu drivers/crypto/marvell/cesa.c | 42 +++++++++++++++++++++++++++++++++++------- 1 file changed, 35 insertions(+), 7 deletions(-) commit 64c55d499bdadf242e83ad6e5670c72da6c1a3c9 Author: Boris BREZILLON Date: Thu Jun 18 15:46:27 2015 +0200 crypto: marvell/cesa - add allhwsupport module parameter The old and new marvell CESA drivers both support Orion and Kirkwood SoCs. Add a module parameter to choose whether these SoCs should be attached to the new or the old driver. The default policy is to keep attaching those IPs to the old driver if it is enabled, until we decide the new CESA driver is stable/secure enough. Signed-off-by: Boris Brezillon Signed-off-by: Herbert Xu drivers/crypto/marvell/cesa.c | 4 ++++ 1 file changed, 4 insertions(+) commit 898c9d5ea2182287620f8995b32e457d7b3b54ca Author: Boris BREZILLON Date: Thu Jun 18 15:46:26 2015 +0200 crypto: marvell/cesa - add support for all armada SoCs Add CESA IP description for all the missing armada SoCs (XP, 375 and 38x). Signed-off-by: Boris Brezillon Signed-off-by: Herbert Xu drivers/crypto/marvell/cesa.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit f85a762e49bda3cba143ab0db8bde6d2bbe8baf9 Author: Arnaud Ebalard Date: Thu Jun 18 15:46:25 2015 +0200 crypto: marvell/cesa - add SHA256 support Add support for SHA256 operations. Signed-off-by: Arnaud Ebalard Signed-off-by: Boris Brezillon Signed-off-by: Herbert Xu drivers/crypto/marvell/cesa.c | 2 + drivers/crypto/marvell/cesa.h | 2 + drivers/crypto/marvell/hash.c | 159 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 163 insertions(+) commit 7aeef693d18d359134f47bf7b6621ec303b570f9 Author: Arnaud Ebalard Date: Thu Jun 18 15:46:24 2015 +0200 crypto: marvell/cesa - add MD5 support Add support for MD5 operations. Signed-off-by: Arnaud Ebalard Signed-off-by: Boris Brezillon Signed-off-by: Herbert Xu drivers/crypto/marvell/cesa.c | 2 + drivers/crypto/marvell/cesa.h | 2 + drivers/crypto/marvell/hash.c | 172 +++++++++++++++++++++++++++++++++++++++++- 3 files changed, 174 insertions(+), 2 deletions(-) commit 4ada483978237068bf21c0dc318af676145bfed5 Author: Arnaud Ebalard Date: Thu Jun 18 15:46:23 2015 +0200 crypto: marvell/cesa - add Triple-DES support Add support for Triple-DES operations. Signed-off-by: Arnaud Ebalard Signed-off-by: Boris Brezillon Signed-off-by: Herbert Xu drivers/crypto/marvell/cesa.c | 2 + drivers/crypto/marvell/cesa.h | 2 + drivers/crypto/marvell/cipher.c | 147 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 151 insertions(+) commit 7b3aaaa095b437bfcb4e4c761a19f50294659f3a Author: Boris BREZILLON Date: Thu Jun 18 15:46:22 2015 +0200 crypto: marvell/cesa - add DES support Add support for DES operations. Signed-off-by: Boris Brezillon Signed-off-by: Arnaud Ebalard Signed-off-by: Herbert Xu drivers/crypto/marvell/cesa.c | 2 + drivers/crypto/marvell/cesa.h | 2 + drivers/crypto/marvell/cipher.c | 150 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 154 insertions(+) commit db509a45339fd786de355b11db34ff7421488cb1 Author: Boris BREZILLON Date: Thu Jun 18 15:46:21 2015 +0200 crypto: marvell/cesa - add TDMA support The CESA IP supports CPU offload through a dedicated DMA engine (TDMA) which can control the crypto block. When you use this mode, all the required data (operation metadata and payload data) are transferred using DMA, and the results are retrieved through DMA when possible (hash results are not retrieved through DMA yet), thus reducing the involvement of the CPU and providing better performances in most cases (for small requests, the cost of DMA preparation might exceed the performance gain). Note that some CESA IPs do not embed this dedicated DMA, hence the activation of this feature on a per platform basis. Signed-off-by: Boris Brezillon Signed-off-by: Arnaud Ebalard Signed-off-by: Herbert Xu drivers/crypto/Kconfig | 1 + drivers/crypto/marvell/Makefile | 2 +- drivers/crypto/marvell/cesa.c | 68 +++++++ drivers/crypto/marvell/cesa.h | 229 ++++++++++++++++++++++ drivers/crypto/marvell/cipher.c | 179 ++++++++++++++++- drivers/crypto/marvell/hash.c | 414 +++++++++++++++++++++++++++++++++++++++- drivers/crypto/marvell/tdma.c | 224 ++++++++++++++++++++++ 7 files changed, 1101 insertions(+), 16 deletions(-) commit f63601fd616ab370774fa00ea10bcaaa9e48e84c Author: Boris BREZILLON Date: Thu Jun 18 15:46:20 2015 +0200 crypto: marvell/cesa - add a new driver for Marvell's CESA The existing mv_cesa driver supports some features of the CESA IP but is quite limited, and reworking it to support new features (like involving the TDMA engine to offload the CPU) is almost impossible. This driver has been rewritten from scratch to take those new features into account. This commit introduce the base infrastructure allowing us to add support for DMA optimization. It also includes support for one hash (SHA1) and one cipher (AES) algorithm, and enable those features on the Armada 370 SoC. Other algorithms and platforms will be added later on. Signed-off-by: Boris Brezillon Signed-off-by: Arnaud Ebalard Signed-off-by: Herbert Xu drivers/crypto/Kconfig | 15 + drivers/crypto/Makefile | 1 + drivers/crypto/marvell/Makefile | 2 + drivers/crypto/marvell/cesa.c | 417 +++++++++++++++++++++++ drivers/crypto/marvell/cesa.h | 554 +++++++++++++++++++++++++++++++ drivers/crypto/marvell/cipher.c | 331 ++++++++++++++++++ drivers/crypto/marvell/hash.c | 720 ++++++++++++++++++++++++++++++++++++++++ 7 files changed, 2040 insertions(+) commit 1fa2e9ae1d3782bd8f737487dc6306ba16b4d016 Author: Boris BREZILLON Date: Thu Jun 18 15:46:19 2015 +0200 crypto: mv_cesa - explicitly define kirkwood and dove compatible strings We are about to add a new driver to support new features like using the TDMA engine to offload the CPU. Orion, Dove and Kirkwood platforms are already using the mv_cesa driver, but Orion SoCs do not embed the TDMA engine, which means we will have to differentiate them if we want to get TDMA support on Dove and Kirkwood. In the other hand, the migration from the old driver to the new one is not something all people are willing to do without first auditing the new driver. Hence we have to support the new compatible in the mv_cesa driver so that new platforms with updated DTs can still attach their crypto engine device to this driver. Signed-off-by: Boris Brezillon Signed-off-by: Herbert Xu Documentation/devicetree/bindings/crypto/mv_cesa.txt | 5 ++++- drivers/crypto/mv_cesa.c | 4 +++- 2 files changed, 7 insertions(+), 2 deletions(-) commit 51b44fc81178136bca88565dad07c067c8dc51da Author: Boris BREZILLON Date: Thu Jun 18 15:46:18 2015 +0200 crypto: mv_cesa - use gen_pool to reserve the SRAM memory region The mv_cesa driver currently expects the SRAM memory region to be passed as a platform device resource. This approach implies two drawbacks: - the DT representation is wrong - the only one that can access the SRAM is the crypto engine The last point is particularly annoying in some cases: for example on armada 370, a small region of the crypto SRAM is used to implement the cpuidle, which means you would not be able to enable both cpuidle and the CESA driver. To address that problem, we explicitly define the SRAM device in the DT and then reference the sram node from the crypto engine node. Also note that the old way of retrieving the SRAM memory region is still supported, or in other words, backward compatibility is preserved. Signed-off-by: Boris Brezillon Signed-off-by: Herbert Xu .../devicetree/bindings/crypto/mv_cesa.txt | 24 ++++++--- drivers/crypto/Kconfig | 1 + drivers/crypto/mv_cesa.c | 58 ++++++++++++++++------ 3 files changed, 60 insertions(+), 23 deletions(-) commit 1c075486852920241ace0f8087498c3ef6522fb2 Author: Boris BREZILLON Date: Thu Jun 18 15:46:17 2015 +0200 crypto: mv_cesa - document the clocks property On Dove platforms, the crypto engine requires a clock. Document this clocks property in the mv_cesa bindings doc. Signed-off-by: Boris Brezillon Signed-off-by: Herbert Xu Documentation/devicetree/bindings/crypto/mv_cesa.txt | 2 ++ 1 file changed, 2 insertions(+) commit c0b59fafe31bf91f589736be304d739b13952fdd Merge: 28bceea bfa1ce5 Author: Herbert Xu Date: Fri Jun 19 22:07:07 2015 +0800 Merge branch 'mvebu/drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Merge the mvebu/drivers branch of the arm-soc tree which contains just a single patch bfa1ce5f38938cc9e6c7f2d1011f88eba2b9e2b2 ("bus: mvebu-mbus: add mv_mbus_dram_info_nooverlap()") that happens to be a prerequisite of the new marvell/cesa crypto driver. commit 04c17341b42699a5859a8afa05e64ba08a4e5235 Author: Borislav Petkov Date: Fri Jun 19 13:49:06 2015 +0200 x86/boot: Fix overflow warning with 32-bit binutils When building the kernel with 32-bit binutils built with support only for the i386 target, we get the following warning: arch/x86/kernel/head_32.S:66: Warning: shift count out of range (32 is not between 0 and 31) The problem is that in that case, binutils' internal type representation is 32-bit wide and the shift range overflows. In order to fix this, manipulate the shift expression which creates the 4GiB constant to not overflow the shift count. Suggested-by: Michael Matz Reported-and-tested-by: Enrico Mioso Signed-off-by: Borislav Petkov Cc: Andrew Morton Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/head_32.S | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) commit 6f1a6ae87c0c60d7c462ef8fd071f291aa7a9abb Author: Will Deacon Date: Fri Jun 19 13:56:33 2015 +0100 arm64: vdso: work-around broken ELF toolchains in Makefile When building the kernel with a bare-metal (ELF) toolchain, the -shared option may not be passed down to collect2, resulting in silent corruption of the vDSO image (in particular, the DYNAMIC section is omitted). The effect of this corruption is that the dynamic linker fails to find the vDSO symbols and libc is instead used for the syscalls that we intended to optimise (e.g. gettimeofday). Functionally, there is no issue as the sigreturn trampoline is still intact and located by the kernel. This patch fixes the problem by explicitly passing -shared to the linker when building the vDSO. Cc: Reported-by: Szabolcs Nagy Reported-by: James Greenlaigh Signed-off-by: Will Deacon Signed-off-by: Catalin Marinas arch/arm64/kernel/vdso/Makefile | 4 ++++ 1 file changed, 4 insertions(+) commit af391b15f7b56ce19f52862d36595637dd42b575 Author: Sudeep Holla Date: Thu Jun 18 15:41:32 2015 +0100 arm64: kernel: rename __cpu_suspend to keep it aligned with arm This patch renames __cpu_suspend to cpu_suspend so that it's aligned with ARM32. It also removes the redundant wrapper created. This is in preparation to implement generic PSCI system suspend using the cpu_{suspend,resume} which now has the same interface on both ARM and ARM64. Cc: Mark Rutland Reviewed-by: Lorenzo Pieralisi Reviewed-by: Ashwin Chaugule Signed-off-by: Sudeep Holla Signed-off-by: Catalin Marinas arch/arm64/include/asm/cpuidle.h | 8 ++------ arch/arm64/include/asm/suspend.h | 2 +- arch/arm64/kernel/cpuidle.c | 4 ++-- arch/arm64/kernel/psci.c | 2 +- arch/arm64/kernel/suspend.c | 6 +++--- 5 files changed, 9 insertions(+), 13 deletions(-) commit 683be13a284720205228e29207ef11a1c3c322b9 Author: Thomas Gleixner Date: Tue May 26 22:50:35 2015 +0000 timer: Minimize nohz off overhead If nohz is disabled on the kernel command line the [hr]timer code still calls wake_up_nohz_cpu() and tick_nohz_full_cpu(), a pretty pointless exercise. Cache nohz_active in [hr]timer per cpu bases and avoid the overhead. Before: 48.10% hog [.] main 15.25% [kernel] [k] _raw_spin_lock_irqsave 9.76% [kernel] [k] _raw_spin_unlock_irqrestore 6.50% [kernel] [k] mod_timer 6.44% [kernel] [k] lock_timer_base.isra.38 3.87% [kernel] [k] detach_if_pending 3.80% [kernel] [k] del_timer 2.67% [kernel] [k] internal_add_timer 1.33% [kernel] [k] __internal_add_timer 0.73% [kernel] [k] timerfn 0.54% [kernel] [k] wake_up_nohz_cpu After: 48.73% hog [.] main 15.36% [kernel] [k] _raw_spin_lock_irqsave 9.77% [kernel] [k] _raw_spin_unlock_irqrestore 6.61% [kernel] [k] lock_timer_base.isra.38 6.42% [kernel] [k] mod_timer 3.90% [kernel] [k] detach_if_pending 3.76% [kernel] [k] del_timer 2.41% [kernel] [k] internal_add_timer 1.39% [kernel] [k] __internal_add_timer 0.76% [kernel] [k] timerfn We probably should have a cached value for nohz full in the per cpu bases as well to avoid the cpumask check. The base cache line is hot already, the cpumask not necessarily. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra Cc: Paul McKenney Cc: Frederic Weisbecker Cc: Eric Dumazet Cc: Viresh Kumar Cc: John Stultz Cc: Joonwoo Park Cc: Wenbo Wang Link: http://lkml.kernel.org/r/20150526224512.207378134@linutronix.de Signed-off-by: Thomas Gleixner include/linux/hrtimer.h | 2 ++ kernel/time/hrtimer.c | 3 ++- kernel/time/tick-internal.h | 4 ++-- kernel/time/tick-sched.c | 2 +- kernel/time/timer.c | 16 ++++++++++++---- 5 files changed, 19 insertions(+), 8 deletions(-) commit bc7a34b8b9ebfb0f4b8a35a72a0b134fd6c5ef50 Author: Thomas Gleixner Date: Tue May 26 22:50:33 2015 +0000 timer: Reduce timer migration overhead if disabled Eric reported that the timer_migration sysctl is not really nice performance wise as it needs to check at every timer insertion whether the feature is enabled or not. Further the check does not live in the timer code, so we have an extra function call which checks an extra cache line to figure out that it is disabled. We can do better and store that information in the per cpu (hr)timer bases. I pondered to use a static key, but that's a nightmare to update from the nohz code and the timer base cache line is hot anyway when we select a timer base. The old logic enabled the timer migration unconditionally if CONFIG_NO_HZ was set even if nohz was disabled on the kernel command line. With this modification, we start off with migration disabled. The user visible sysctl is still set to enabled. If the kernel switches to NOHZ migration is enabled, if the user did not disable it via the sysctl prior to the switch. If nohz=off is on the kernel command line, migration stays disabled no matter what. Before: 47.76% hog [.] main 14.84% [kernel] [k] _raw_spin_lock_irqsave 9.55% [kernel] [k] _raw_spin_unlock_irqrestore 6.71% [kernel] [k] mod_timer 6.24% [kernel] [k] lock_timer_base.isra.38 3.76% [kernel] [k] detach_if_pending 3.71% [kernel] [k] del_timer 2.50% [kernel] [k] internal_add_timer 1.51% [kernel] [k] get_nohz_timer_target 1.28% [kernel] [k] __internal_add_timer 0.78% [kernel] [k] timerfn 0.48% [kernel] [k] wake_up_nohz_cpu After: 48.10% hog [.] main 15.25% [kernel] [k] _raw_spin_lock_irqsave 9.76% [kernel] [k] _raw_spin_unlock_irqrestore 6.50% [kernel] [k] mod_timer 6.44% [kernel] [k] lock_timer_base.isra.38 3.87% [kernel] [k] detach_if_pending 3.80% [kernel] [k] del_timer 2.67% [kernel] [k] internal_add_timer 1.33% [kernel] [k] __internal_add_timer 0.73% [kernel] [k] timerfn 0.54% [kernel] [k] wake_up_nohz_cpu Reported-by: Eric Dumazet Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra Cc: Paul McKenney Cc: Frederic Weisbecker Cc: Viresh Kumar Cc: John Stultz Cc: Joonwoo Park Cc: Wenbo Wang Link: http://lkml.kernel.org/r/20150526224512.127050787@linutronix.de Signed-off-by: Thomas Gleixner include/linux/hrtimer.h | 2 ++ include/linux/sched.h | 6 +---- include/linux/sched/sysctl.h | 12 --------- include/linux/timer.h | 9 +++++++ kernel/rcu/tree_plugin.h | 2 -- kernel/sched/core.c | 9 +++---- kernel/sysctl.c | 18 +++++++------- kernel/time/hrtimer.c | 35 ++++++++++++++++++++------ kernel/time/tick-internal.h | 14 +++++++++++ kernel/time/tick-sched.c | 25 ++++++++++--------- kernel/time/timer.c | 59 ++++++++++++++++++++++++++++++++++++++++---- kernel/time/timer_list.c | 2 -- 12 files changed, 133 insertions(+), 60 deletions(-) commit c74441a17eb975b604e339ca6c11b9ab9aaca11f Author: Thomas Gleixner Date: Tue May 26 22:50:31 2015 +0000 timer: Stats: Simplify the flags handling Simplify the handling of the flag storage for the timer statistics. No intermediate storage anymore. Just hand over the flags field. I left the printout of 'deferrable' for now because changing this would be an ABI update and I have no idea how strong people feel about that. OTOH, I wonder whether we should kill the whole timer stats stuff because all of that information can be retrieved via ftrace/perf as well. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra Cc: Paul McKenney Cc: Frederic Weisbecker Cc: Eric Dumazet Cc: Viresh Kumar Cc: John Stultz Cc: Joonwoo Park Cc: Wenbo Wang Link: http://lkml.kernel.org/r/20150526224512.046626248@linutronix.de Signed-off-by: Thomas Gleixner include/linux/timer.h | 5 +---- kernel/time/timer.c | 7 ++----- kernel/time/timer_stats.c | 10 +++++----- 3 files changed, 8 insertions(+), 14 deletions(-) commit 0eeda71bc30d74f66f8231f45621d5ace3419186 Author: Thomas Gleixner Date: Tue May 26 22:50:29 2015 +0000 timer: Replace timer base by a cpu index Instead of storing a pointer to the per cpu tvec_base we can simply cache a CPU index in the timer_list and use that to get hold of the correct per cpu tvec_base. This is only used in lock_timer_base() and the slightly larger code is peanuts versus the spinlock operation and the d-cache foot print of the timer wheel. Aside of that this allows to get rid of following nuisances: - boot_tvec_base That statically allocated 4k bss data is just kept around so the timer has a home when it gets statically initialized. It serves no other purpose. With the CPU index we assign the timer to CPU0 at static initialization time and therefor can avoid the whole boot_tvec_base dance. That also simplifies the init code, which just can use the per cpu base. Before: text data bss dec hex filename 17491 9201 4160 30852 7884 ../build/kernel/time/timer.o After: text data bss dec hex filename 17440 9193 0 26633 6809 ../build/kernel/time/timer.o - Overloading the base pointer with various flags The CPU index has enough space to hold the flags (deferrable, irqsafe) so we can get rid of the extra masking and bit fiddling with the base pointer. As a benefit we reduce the size of struct timer_list on 64 bit machines. 4 - 8 bytes, a size reduction up to 15% per struct timer_list, which is a real win as we have tons of them embedded in other structs. This changes also the newly added deferrable printout of the timer start trace point to capture and print all timer->flags, which allows us to decode the target cpu of the timer as well. We might have used bitfields for this, but that would change the static initializers and the init function for no value to accomodate big endian bitfields. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra Cc: Paul McKenney Cc: Frederic Weisbecker Cc: Eric Dumazet Cc: Viresh Kumar Cc: John Stultz Cc: Joonwoo Park Cc: Wenbo Wang Cc: Steven Rostedt Cc: Badhri Jagan Sridharan Link: http://lkml.kernel.org/r/20150526224511.950084301@linutronix.de Signed-off-by: Thomas Gleixner include/linux/timer.h | 38 ++++++------- include/trace/events/timer.h | 13 ++--- kernel/time/timer.c | 127 ++++++++++++------------------------------- 3 files changed, 58 insertions(+), 120 deletions(-) commit 1dabbcec2c0a36fe43509d06499b9e512e70a028 Author: Thomas Gleixner Date: Tue May 26 22:50:28 2015 +0000 timer: Use hlist for the timer wheel hash buckets This reduces the size of struct tvec_base by 50% and results in slightly smaller code as well. Before: struct tvec_base: size: 8256, cachelines: 129 text data bss dec hex filename 17698 13297 8256 39251 9953 ../build/kernel/time/timer.o After: struct tvec_base: 4160, cachelines: 65 text data bss dec hex filename 17491 9201 4160 30852 7884 ../build/kernel/time/timer.o Signed-off-by: Thomas Gleixner Reviewed-by: Viresh Kumar Cc: Peter Zijlstra Cc: Paul McKenney Cc: Frederic Weisbecker Cc: Eric Dumazet Cc: John Stultz Cc: Joonwoo Park Cc: Wenbo Wang Link: http://lkml.kernel.org/r/20150526224511.854731214@linutronix.de Signed-off-by: Thomas Gleixner include/linux/timer.h | 6 ++--- kernel/time/timer.c | 64 ++++++++++++++++++++++----------------------------- 2 files changed, 30 insertions(+), 40 deletions(-) commit 1bd04bf6f68d65f5422b2b85c495d65d49587a54 Author: Thomas Gleixner Date: Tue May 26 22:50:26 2015 +0000 timer: Remove FIFO "guarantee" The FIFO guarantee is only there if two timers are queued into the same bucket at the same jiffie on the same cpu: - The slack value depends on the delta between expiry and enqueue time, so the resulting expiry time can be different for timers which are queued in different jiffies. - Timers which are queued into the secondary array end up after a later queued timer which was queued into the primary array due to cascading. - Timers can end up on different cpus due to the NOHZ target moving around. Obviously there is no guarantee of expiry ordering between cpus. So anything which relies on FIFO behaviour of the timer wheel is broken already. This is a preparatory patch for converting the timer wheel to hlist which reduces the memory foot print of the wheel by 50%. It's a seperate patch so any (unlikely to happen) regression caused by this can be identified clearly. Signed-off-by: Thomas Gleixner Reviewed-by: Viresh Kumar Cc: Peter Zijlstra Cc: Paul McKenney Cc: Frederic Weisbecker Cc: Eric Dumazet Cc: John Stultz Cc: Joonwoo Park Cc: Wenbo Wang Cc: George Spelvin Link: http://lkml.kernel.org/r/20150526224511.757520403@linutronix.de Signed-off-by: Thomas Gleixner kernel/time/timer.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 3bb475a3446facd0425d3f2fe7e85bf03c5c6c05 Author: Thomas Gleixner Date: Tue May 26 22:50:24 2015 +0000 timers: Sanitize catchup_timer_jiffies() usage catchup_timer_jiffies() has been applied blindly to several functions without looking for possible better ways to do it. 1) internal_add_timer() Move the update to base->all_timers before we actually insert the timer into the wheel. 2) detach_if_pending() Again the update to base->all_timers allows us to explicitely do the timer_jiffies update in place, if this was the last timer which got removed. 3) __run_timers() We only check on entry, which is silly, because base->timer_jiffies can be behind - especially on NOHZ kernels - and if there is a single deferrable timer somewhere between base->timer_jiffies and jiffies we expire it and then loop until base->timer_jiffies == jiffies. Move it into the loop. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra Cc: Paul McKenney Cc: Frederic Weisbecker Cc: Eric Dumazet Cc: Viresh Kumar Cc: John Stultz Cc: Joonwoo Park Cc: Wenbo Wang Link: http://lkml.kernel.org/r/20150526224511.662994644@linutronix.de Signed-off-by: Thomas Gleixner kernel/time/timer.c | 40 ++++++++++++++++------------------------ 1 file changed, 16 insertions(+), 24 deletions(-) commit 39b0f1e9290880a6c905f639e7db6b646e302a4f Author: Bob Peterson Date: Fri Jun 5 08:38:57 2015 -0500 GFS2: Don't brelse rgrp buffer_heads every allocation This patch allows the block allocation code to retain the buffers for the resource groups so they don't need to be re-read from buffer cache with every request. This is a performance improvement that's especially noticeable when resource groups are very large. For example, with 2GB resource groups and 4K blocks, there can be 33 blocks for every resource group. This patch allows those 33 buffers to be kept around and not read in and thrown away with every operation. The buffers are released when the resource group is either synced or invalidated. Signed-off-by: Bob Peterson Reviewed-by: Steven Whitehouse Reviewed-by: Benjamin Marzinski fs/gfs2/glops.c | 14 +++++++++++--- fs/gfs2/rgrp.c | 23 +++++++++++++++++++---- fs/gfs2/rgrp.h | 1 + 3 files changed, 31 insertions(+), 7 deletions(-) commit 5793e273a134331d05ed904e5be3b31ccfca54c1 Author: Vineet Gupta Date: Thu Mar 5 19:13:56 2015 +0530 ARC: intc: split into ARCompact ISA specific, common bits Signed-off-by: Vineet Gupta arch/arc/include/asm/entry-compact.h | 1 + arch/arc/include/asm/irqflags-compact.h | 181 +++++++++++++++++++++++++ arch/arc/include/asm/irqflags.h | 168 +----------------------- arch/arc/kernel/Makefile | 2 +- arch/arc/kernel/intc-compact.c | 226 ++++++++++++++++++++++++++++++++ arch/arc/kernel/irq.c | 210 ----------------------------- arch/arc/kernel/process.c | 3 +- 7 files changed, 412 insertions(+), 379 deletions(-) commit 6ffb9c8c5f59a50779109e8b0a2e1bdd4b9be5c5 Author: Vineet Gupta Date: Wed May 14 19:35:15 2014 +0530 ARC: Make way for pt_regs != user_regs_struct These have been register compatible so far. However ARCv2 mandates different pt_regs layout (due to h/w auto save). To keep pt_regs same for both, we start by removing the assumption - used mainly for block copies between the 2 structs in signal handling and ptrace Signed-off-by: Vineet Gupta arch/arc/kernel/ptrace.c | 90 ++++++++++++++++++++++++++++++++++++++++++++---- arch/arc/kernel/signal.c | 56 ++++++++++++++++++++++++++++-- 2 files changed, 137 insertions(+), 9 deletions(-) commit 5a343b9fe22995c43b1209b0b63ea0fa2824cbae Author: Vineet Gupta Date: Sat Mar 28 21:36:00 2015 +0530 ARC: entry.S: [arcompact] simplify SWITCH_TO_KERNEL_STK Previously this macro was overloaded with stack switching, saving SP at right slot in pt_regs, saving/setup of r25 and setting SP baseline to where pt_regs->sp is saved (vs. bottom of pt_regs) Now it only does SP switch, and leaves SP pointing to bottom of pt_regs. r25 saving is no longer done here to allow for future reordering of regfile in pt_regs w/o touching this macro Signed-off-by: Vineet Gupta arch/arc/include/asm/entry-compact.h | 71 ++++++++++++++++++------------------ 1 file changed, 35 insertions(+), 36 deletions(-) commit c80417b61200072968225e2bed71ed699859a4a3 Author: Vineet Gupta Date: Fri Mar 27 20:59:34 2015 +0530 ARC: entry.S: use single EXCEPTION_PROLOGUE Returning from pure kernel mode and exception mode use the same code anyways. Remove one the duplicate blocks Signed-off-by: Vineet Gupta arch/arc/kernel/entry-compact.S | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) commit 62fb64034d30293448de10a48c7ee47ee978e338 Author: Vineet Gupta Date: Fri Mar 13 11:50:23 2015 +0530 ARC: entry.S: micro-optimize Trap handler Elide the need to re-read ECR in Trap handler by ensuring that EXCEPTION_PROLOGUE does that at the very end just before returning to Trap handler ARCv2 EXCEPTION_PROLOGUE already did that, so same for ARcompact and the common trap handler adjusted to use cached ECR Signed-off-by: Vineet Gupta arch/arc/include/asm/entry-compact.h | 5 +++-- arch/arc/kernel/entry.S | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) commit c7e6d7920409c11f158ac5d38bdd08062bf16978 Author: Vineet Gupta Date: Tue Mar 10 19:13:07 2015 +0530 ARC: entry.S: move some code around for cache locality in return path Signed-off-by: Vineet Gupta arch/arc/kernel/entry-compact.S | 2 + arch/arc/kernel/entry.S | 98 +++++++++++++++++++++-------------------- 2 files changed, 52 insertions(+), 48 deletions(-) commit 6d1a20b1d237db29878ae54142e39c87a36d0e95 Author: Vineet Gupta Date: Sat Feb 21 15:09:32 2015 +0530 ARC: entry.S: split into ARCompact ISA specific, common bits Signed-off-by: Vineet Gupta arch/arc/include/asm/entry-compact.h | 306 +++++++++++++++++++++++++++ arch/arc/include/asm/entry.h | 300 +------------------------- arch/arc/kernel/Makefile | 4 +- arch/arc/kernel/entry-compact.S | 393 +++++++++++++++++++++++++++++++++++ arch/arc/kernel/entry.S | 389 +--------------------------------- 5 files changed, 711 insertions(+), 681 deletions(-) commit c10d6969b0958e151c9dd6cfae70ce8db9db3c7e Author: Vineet Gupta Date: Mon Oct 13 19:49:00 2014 +0530 ARC: entry.S: Ensure that restore_regs is local to compilation unit This fixes the possible link/relo errors, since restore_regs will be provided by ISA code, but called from ARC common code. The .L prefix reassures binutils that it will be in same compilation unit. Signed-off-by: Vineet Gupta arch/arc/kernel/entry.S | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 4bf4564b27db18c77c82840025fbfdb0e62406cf Author: Vineet Gupta Date: Fri Feb 27 16:45:08 2015 +0530 ARC: entry.S: comments cleanup Signed-off-by: Vineet Gupta arch/arc/kernel/entry.S | 46 ++++++++++++++++++++-------------------------- 1 file changed, 20 insertions(+), 26 deletions(-) commit a8717d280879213eab8383e4a912d99514970e17 Author: Vineet Gupta Date: Fri Feb 27 16:44:38 2015 +0530 ARC: entry.S: Trap handler to use r10 for syscall vs. brkpt decision Signed-off-by: Vineet Gupta arch/arc/kernel/entry.S | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 9b8c7d1e7107c30a50aae27c1f33fe706c8c6c67 Author: Vineet Gupta Date: Fri Feb 27 16:43:08 2015 +0530 ARC: entry.S: FAKE_RET_FROM_EXCPN can always use r9 Signed-off-by: Vineet Gupta arch/arc/include/asm/entry.h | 16 ++++++++-------- arch/arc/kernel/entry.S | 24 +++++++++++------------- 2 files changed, 19 insertions(+), 21 deletions(-) commit a615b47dbf0d2cd8ba9ff922addef4e189c627bb Author: Vineet Gupta Date: Mon Oct 13 14:20:39 2014 +0530 ARC: entry.S: confine EXCEPTION_* macros to one file Signed-off-by: Vineet Gupta arch/arc/kernel/entry.S | 16 ++++++++++++++++ arch/arc/mm/tlbex.S | 16 +--------------- 2 files changed, 17 insertions(+), 15 deletions(-) commit f033737e77d98893f3d03586215aeec026dd7e2f Author: Vineet Gupta Date: Tue Oct 14 12:23:50 2014 +0530 ARC: entry.S: canonical'ize EXCEPTION_{PROLOGUE,EPILOGUE} -EXCEPTION_EPILOGUE introduced -EXCEPTION_PROLOGUE now also includes reg file saving Signed-off-by: Vineet Gupta arch/arc/include/asm/entry.h | 17 +---------------- arch/arc/kernel/entry.S | 4 ++-- 2 files changed, 3 insertions(+), 18 deletions(-) commit 09f3b37e4e3bbe22444617c273a3c046aade5db2 Author: Vineet Gupta Date: Mon Oct 13 18:13:35 2014 +0530 ARC: entry.S: Introduce INTERRUPT_{PROLOGUE,EPILOGUE} -common'ize macros for level 1 and level 2 interrupts Signed-off-by: Vineet Gupta arch/arc/include/asm/arcregs.h | 3 -- arch/arc/include/asm/entry.h | 77 +++++++++++------------------------------- arch/arc/kernel/entry.S | 22 +++--------- 3 files changed, 23 insertions(+), 79 deletions(-) commit fbfa26ae3b2001d0885938175f9af5a4c50a528c Author: Vineet Gupta Date: Mon Oct 13 15:12:25 2014 +0530 ARC: entry.S: common'ize scrtach reg freeup in intr + exceptions Signed-off-by: Vineet Gupta arch/arc/include/asm/entry.h | 35 ++++++++++++++++------------------- arch/arc/kernel/entry.S | 10 ++-------- 2 files changed, 18 insertions(+), 27 deletions(-) commit 11e14896ea3b0acbdcadb171bc40fc8fef37370e Author: Vineet Gupta Date: Mon Aug 4 08:32:31 2014 -0700 ARC: untangle cache flush loop - Remove the ifdef'ery and write distinct versions for each mmu ver even if there is some code duplication Signed-off-by: Vineet Gupta arch/arc/mm/cache.c | 80 ++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 55 insertions(+), 25 deletions(-) commit 6c310681379548ab1aa748e20da16a943fb0f234 Author: Vineet Gupta Date: Thu Jun 4 08:53:47 2015 +0530 ARC: cacheflush: No need to retain DC_CTRL from __before_dc_op() That is because __after_dc_op() already reads it for status check, so it is better anyways to use that "newer" value. Also reduces the clutter in callers for passing from/to these routines. Signed-off-by: Vineet Gupta arch/arc/mm/cache.c | 39 +++++++++++++++++++-------------------- 1 file changed, 19 insertions(+), 20 deletions(-) commit 8ea2ddff41f795e3e9a0550612096b5115c593f1 Author: Vineet Gupta Date: Thu Jun 4 15:35:53 2015 +0530 ARC: cacheflush: move some code around, delete old comments Signed-off-by: Vineet Gupta arch/arc/mm/cache.c | 267 ++++++++++++++++++++-------------------------------- 1 file changed, 102 insertions(+), 165 deletions(-) commit 8362c389a4551614ad0586c0c2f33bef5526bcfc Author: Vineet Gupta Date: Thu May 7 14:39:36 2015 +0530 ARC: mm/cache_arc700.c -> mm/cache.c Signed-off-by: Vineet Gupta arch/arc/mm/Makefile | 2 +- arch/arc/mm/cache.c | 723 +++++++++++++++++++++++++++++++++++++++++++++ arch/arc/mm/cache_arc700.c | 723 --------------------------------------------- 3 files changed, 724 insertions(+), 724 deletions(-) commit db7e985526313a1209c9059afc0ba8aad422bac1 Author: Vineet Gupta Date: Sun Jun 7 11:17:34 2015 +0530 ARC: [axs101] Add missing __init annotations Signed-off-by: Vineet Gupta arch/arc/plat-axs10x/axs10x.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 7cacc5bf60d409e90ed764c43ed28f7f9e46e701 Author: Alexey Brodkin Date: Wed Apr 15 15:32:29 2015 +0300 ARC: [axs101] STAR 9000799830: Fix SD cards support As DW Mobile Storage databook says it's required to use "Hold Register" if card is enumerated in SDR12 or SDR25 modes. It means we need to act in the same way as in Altera's Socfpga implementation - set "use hold reg" bit in commad. Note that for upstream proper solution would be to remove dw_mci_pltfm_prepare_command() at all and set the bit right in dw_mci_prepare_command() for all platforms. Signed-off-by: Alexey Brodkin Signed-off-by: Vineet Gupta arch/arc/boot/dts/axs10x_mb.dtsi | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) commit 749aa0e11a7f551d1133b391cf8a160718d7ca50 Author: Vineet Gupta Date: Tue May 27 19:27:37 2014 +0530 ARC: [axs101] Tweak DDR port aperture mappings for performance Route all MB originated traffic to DDR Port 1 and keep Port 0 for CPU traffic only Basic system parameters -------------------------------------------------------------------------------------- Host OS Description Mhz tlb cache mem scal pages line par load bytes ----------------- ------------- --------------------------------------- ---- ----- ----- ------ ---- axs101-sd-2-new-f Linux 3.13.0+ axs101-sd-2-new-fw-old-img-rerun 739 8 32 1.1100 1 axs101-sd-3-arc-3 Linux 3.13.9+ axs101-sd-3-arc-3.13-tip-regression 735 8 32 1.1000 1 axs101-sd-9-diffe Linux 3.13.11 axs101-sd-9-different-tweak 740 8 32 1.0000 1 Processor, Processes - times in microseconds - smaller is better ------------------------------------------------------------------------------ Host OS Mhz null null open slct sig sig fork exec sh call I/O stat clos TCP inst hndl proc proc proc --------- ------------- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- axs101-sd Linux 3.13.0+ 739 0.50 0.88 5.38 14.6 34.1 0.92 5.18 2135 6555 12.K axs101-sd Linux 3.13.9+ 735 0.50 0.90 5.89 19.2 81.4 0.94 4.08 2560 8559 15.K axs101-sd Linux 3.13.11 740 0.50 0.88 4.45 17.8 34.4 0.94 3.25 2052 6493 12.K ^^^^ ^^^^ Signed-off-by: Vineet Gupta arch/arc/plat-axs10x/axs10x.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 8d0d56ba24d8d0b04bc9d9a7fbd1796d8966159f Author: Vineet Gupta Date: Mon Feb 2 19:23:21 2015 +0530 ARC: [axs101] support early 8250 uart Earlycon calculates UART clock as "BASE_BAUD * 16". In case of ARC "BASE_BAUD" is calculated dynamically in runtime, basically it is an alias to arc_early_base_baud(), which in turn just does "arc_base_baud/16". 8250 UART on AXS/SDP board uses 33.3MHz clock source which is set in "arc_base_baud" with this change. Additional compatibility string "snps,arc-sdp" is introduced as well because there're different flavours of AXS boards but they all share the same motherboard and so it's possible to re-use the same code for motherbord even if CPU daughterboard changes. Signed-off-by: Vineet Gupta Documentation/devicetree/bindings/arc/axs101.txt | 2 +- arch/arc/boot/dts/axs101.dts | 4 ++-- arch/arc/kernel/devtree.c | 2 ++ 3 files changed, 5 insertions(+), 3 deletions(-) commit 556cc1c5f528dcc87733920de17d61b6ebe8999d Author: Alexey Brodkin Date: Mon Jan 27 14:51:34 2014 +0100 ARC: [axs101] Add support for AXS101 SDP (software development platform) The AXS10x platforms consist of a mainboard with peripherals, on which several daughter cards can be placed. The daughter cards typically contain a CPU and memory. Signed-off-by: Mischa Jonker Signed-off-by: Alexey Brodkin Signed-off-by: Vineet Gupta Documentation/devicetree/bindings/arc/axs101.txt | 7 + MAINTAINERS | 7 + arch/arc/Kconfig | 1 + arch/arc/Makefile | 1 + arch/arc/boot/dts/axc001.dtsi | 79 ++++++ arch/arc/boot/dts/axs101.dts | 21 ++ arch/arc/boot/dts/axs10x_mb.dtsi | 223 +++++++++++++++++ arch/arc/configs/axs101_defconfig | 111 +++++++++ arch/arc/plat-axs10x/Kconfig | 35 +++ arch/arc/plat-axs10x/Makefile | 9 + arch/arc/plat-axs10x/axs10x.c | 298 +++++++++++++++++++++++ 11 files changed, 792 insertions(+) commit 4db27dca607aed14a852b21db02ddb530551c5eb Author: Vineet Gupta Date: Thu Mar 5 14:46:20 2015 +0530 ARC: mm: document system mem map clearly Signed-off-by: Vineet Gupta arch/arc/include/asm/processor.h | 35 ++++++++++++++++------------------- arch/arc/include/uapi/asm/page.h | 2 +- 2 files changed, 17 insertions(+), 20 deletions(-) commit def32fad84975d5d28e070215038224ea7f0d4bc Author: Vineet Gupta Date: Fri Apr 10 14:06:40 2015 +0530 ARC: stack unwinder to bail if PC is not kernel mode Currently, it doesn't invoke the callback but continues to unwind Also while at it - simplify the code a bit Signed-off-by: Vineet Gupta arch/arc/kernel/stacktrace.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) commit 082ae1e1570c69a06221701718f548bd4000b95b Author: Tobias Klauser Date: Fri Apr 24 10:27:34 2015 +0200 ARC: perf: Remove unnecessary local variable Directly return the result of perf_pmu_register() in arc_pmu_device_probe() instead of assigning and returning variable ret. Signed-off-by: Tobias Klauser Signed-off-by: Vineet Gupta arch/arc/kernel/perf_event.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 7002f77541f877a5590615ceb3da32b114f14b62 Author: Max Filippov Date: Sun Jun 14 02:09:06 2015 +0300 arc: fix use of uninitialized arc_pmu static arc_pmu in the arch/arc/kernel/perf_event.c is not initialized as it's shadowed by a local variable of the same name in the arc_pmu_device_probe. Signed-off-by: Max Filippov Fixes: 03c94fcf954d "ARC: perf: make @arc_pmu static global" CC: # 4.1 Signed-off-by: Vineet Gupta arch/arc/kernel/perf_event.c | 1 - 1 file changed, 1 deletion(-) commit b27f7391718537333383b14822311d6dad1d6eb5 Author: Vineet Gupta Date: Thu Jun 4 00:54:12 2015 +0530 ARC: fix section mismatch with allyesconfig Signed-off-by: Vineet Gupta arch/arc/kernel/smp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 036b2c5664281e7da5a89c9f742491f30966485f Author: Vineet Gupta Date: Mon Mar 9 19:40:09 2015 +0530 ARC: explicit'ify uboot support Signed-off-by: Vineet Gupta arch/arc/Kconfig | 12 ++++++++++++ arch/arc/kernel/head.S | 2 ++ arch/arc/kernel/setup.c | 5 ++++- 3 files changed, 18 insertions(+), 1 deletion(-) commit fd1557923b2e45a7ff4664bd88311d8239d69ca9 Author: Vineet Gupta Date: Fri Feb 20 19:12:18 2015 +0530 ARC: [plat_arcfpga]->[plat_sim] * Remove remanants of legacy ARC FPGA platforms (AA4, ML509...) * Only nsim simulation platform is left, rename platform accordingly * AA4 DT stuff is compatible with nsim for ARC700 so rename it too Signed-off-by: Vineet Gupta arch/arc/Kconfig | 2 +- arch/arc/Makefile | 4 +-- arch/arc/boot/dts/Makefile | 2 +- arch/arc/boot/dts/angel4.dts | 70 ------------------------------------- arch/arc/boot/dts/nsim_700.dts | 70 +++++++++++++++++++++++++++++++++++++ arch/arc/configs/nsim_700_defconfig | 4 +-- arch/arc/configs/nsimosci_defconfig | 2 +- arch/arc/plat-arcfpga/Kconfig | 16 --------- arch/arc/plat-arcfpga/Makefile | 9 ----- arch/arc/plat-arcfpga/platform.c | 40 --------------------- arch/arc/plat-sim/Kconfig | 14 ++++++++ arch/arc/plat-sim/Makefile | 9 +++++ arch/arc/plat-sim/platform.c | 30 ++++++++++++++++ 13 files changed, 130 insertions(+), 142 deletions(-) commit 6623146cb71eb0eb582943bb35f85a90b6195fc1 Author: Vineet Gupta Date: Mon May 18 14:38:21 2015 +0530 ARC: [arcfpga] RIP legacy ISS based SMP extension With ISS long unsupported, no point in having extension based on it Signed-off-by: Vineet Gupta arch/arc/plat-arcfpga/Kconfig | 17 --- arch/arc/plat-arcfpga/Makefile | 3 - arch/arc/plat-arcfpga/include/plat/smp.h | 118 -------------------- arch/arc/plat-arcfpga/platform.c | 5 - arch/arc/plat-arcfpga/smp.c | 186 ------------------------------- 5 files changed, 329 deletions(-) commit 40b552d95a545e828fb4ebbf68a385cb9eaebf64 Author: Vineet Gupta Date: Fri Feb 13 18:33:47 2015 +0530 ARC: compress cpuinfo_arc_mmu (mainly save page size in KB) Signed-off-by: Vineet Gupta arch/arc/include/asm/arcregs.h | 3 ++- arch/arc/mm/tlb.c | 8 ++++---- 2 files changed, 6 insertions(+), 5 deletions(-) commit 5b9bd1784088f5407424d43f63ef777bb898d2d5 Author: Vineet Gupta Date: Sat Mar 7 16:59:38 2015 +0530 ARC: clocksource cleanups Signed-off-by: Vineet Gupta arch/arc/kernel/time.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) commit 565a9b497c5103a91027d95b9f3392c035703774 Author: Vineet Gupta Date: Sat Mar 7 17:06:09 2015 +0530 ARC: RIP broken 64bit RTSC Signed-off-by: Vineet Gupta arch/arc/Kconfig | 5 ---- arch/arc/Makefile | 2 +- arch/arc/configs/nsim_700_defconfig | 1 - arch/arc/configs/nsimosci_defconfig | 1 - arch/arc/configs/tb10x_defconfig | 1 - arch/arc/kernel/setup.c | 8 ++---- arch/arc/kernel/time.c | 49 +------------------------------------ 7 files changed, 4 insertions(+), 63 deletions(-) commit 742f8af6cb35cb07882ee13aed8d09d6f1b1f15c Author: Vineet Gupta Date: Thu Nov 7 14:47:16 2013 +0530 ARC: [kbuild] Retire CONFIG_ARC_CPU_REL_4_10 Back when ARC700 4.10 was released, the related kernel features were tied to this config item so they could be disabled in one shot (i.e. LLOCK/SCOND, SWAPE, RTSC..) That having happened a while back, all new ARC customers weill get 4.11+ so those features can be assumed to be present and need not be tied to a top-level (we still retain the ability to individually disable them). Further, since ARCv2 also shares some of those feautes, removing it simplifies things a bit in Kconfig Signed-off-by: Vineet Gupta arch/arc/Kconfig | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) commit 454bfda9aca0f6a0487eef523ac92dfc6646807d Author: Vineet Gupta Date: Thu Apr 16 21:04:49 2015 +0530 ARC: remove the unused platform helpers from dma mapping API Signed-off-by: Vineet Gupta arch/arc/Kconfig | 4 ---- arch/arc/include/asm/dma-mapping.h | 31 +++++-------------------------- arch/arc/mm/dma.c | 12 ++++-------- 3 files changed, 9 insertions(+), 38 deletions(-) commit 43df61051ab9af985ec439ee9be9c299e7de34e8 Author: Bjorn Andersson Date: Thu Jun 18 12:35:26 2015 -0700 power_supply: Correct kerneldoc copy paste errors Signed-off-by: Bjorn Andersson Reviewed-by: Krzysztof Kozlowski Signed-off-by: Sebastian Reichel drivers/power/power_supply_core.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 24199d206a739a77edc3ff6c429b68b7bd6b2ef8 Author: Anand Jain Date: Thu Feb 12 07:03:37 2015 +0800 lib: export symbol kobject_move() drivers/cpufreq/cpufreq.c is already using this function. And now btrfs needs it as well. Export symbol kobject_move(). Signed-off-by: Anand Jain Acked-by: Greg Kroah-Hartman Signed-off-by: David Sterba lib/kobject.c | 1 + 1 file changed, 1 insertion(+) commit d2ff1b2008cb807102fc9496fadd8eddff98350c Author: Anand Jain Date: Tue Mar 10 06:38:42 2015 +0800 Btrfs: sysfs: add support to show replacing target in the sysfs This patch will add support to show the replacing target in sysfs during the process of replacement. Signed-off-by: Anand Jain Signed-off-by: David Sterba fs/btrfs/dev-replace.c | 5 ++++- fs/btrfs/volumes.c | 3 +++ 2 files changed, 7 insertions(+), 1 deletion(-) commit 4fde46f0cc71c7aba299ee6dfb4f017fb97b6e70 Author: Anand Jain Date: Wed Jun 17 21:10:48 2015 +0800 Btrfs: free the stale device When btrfs on a device is overwritten with a new btrfs (mkfs), the old btrfs instance in the kernel becomes stale. So with this patch, if kernel finds device is overwritten then delete the stale fsid/uuid. Signed-off-by: Anand Jain fs/btrfs/volumes.c | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) commit 336d0442b9f03a0389baaf09e39880fdd1873cc3 Author: Richard Fitzgerald Date: Thu Jun 18 13:43:19 2015 +0100 ASoC: wm_adsp: Move DSP Rate controls into the codec The rate controls are codec-specific, it's not possible to generically say what the range or the meaning of each control is (or even if they exist at all) - that depends on the particular codec. This is currently being handled for Arizona codecs by putting an Arizona-specific table of controls inside the wm_adsp driver. This creates a dependency between wm_adsp and arizona.c, and is an awkward solution if the ADSP is used in another family of codecs Fix this by moving the Arizona-specific rate controls into the Arizona codec drivers. Signed-off-by: Richard Fitzgerald Signed-off-by: Mark Brown sound/soc/codecs/arizona.c | 27 ++++++++++++++++++++++++ sound/soc/codecs/arizona.h | 2 ++ sound/soc/codecs/wm2200.c | 2 +- sound/soc/codecs/wm5102.c | 5 +++++ sound/soc/codecs/wm5110.c | 6 ++++++ sound/soc/codecs/wm_adsp.c | 52 ++++++---------------------------------------- sound/soc/codecs/wm_adsp.h | 2 +- 7 files changed, 48 insertions(+), 48 deletions(-) commit 89a6192049050035cbd779d35686cbf29ca9184f Merge: f9f55e3 cc76e7d Author: Mark Brown Date: Fri Jun 19 11:17:19 2015 +0100 Merge branches 'topic/adsp' and 'topic/dapm' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-arizona commit 6fab54101923044712baee429ff573f03b99fc47 Author: Zhiqiang Zhang Date: Mon Jun 15 11:15:20 2015 +0800 sched/deadline: Remove needless parameter in dl_runtime_exceeded() Sine commit 269ad8015a6b ("sched/deadline: Avoid double-accounting in case of missed deadlines), parameter 'rq' is no longer used, so remove it. Signed-off-by: Zhiqiang Zhang Signed-off-by: Peter Zijlstra (Intel) Cc: Cc: Cc: Andrew Morton Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1434338120-43773-1-git-send-email-zhangzhiqiang.zhang@huawei.com Signed-off-by: Ingo Molnar kernel/sched/deadline.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6713c3aa7f63626c0cecf9c509fb48d885b2dd12 Author: Wanpeng Li Date: Wed May 13 14:01:06 2015 +0800 sched: Remove superfluous resetting of the p->dl_throttled flag Resetting the p->dl_throttled flag in rt_mutex_setprio() (for a task that is going to be boosted) is superfluous, as the natural place to do so is in replenish_dl_entity(). If the task was on the runqueue and it is boosted by a DL task, it will be enqueued back with ENQUEUE_REPLENISH flag set, which can guarantee that dl_throttled is reset in replenish_dl_entity(). This patch drops the resetting of throttled status in function rt_mutex_setprio(). Signed-off-by: Wanpeng Li Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Juri Lelli Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1431496867-4194-6-git-send-email-wanpeng.li@linux.intel.com Signed-off-by: Ingo Molnar kernel/sched/core.c | 1 - 1 file changed, 1 deletion(-) commit 178a4d23e4e6a0a90b086dad86697676b49db60a Author: Wanpeng Li Date: Wed May 13 14:01:05 2015 +0800 sched/deadline: Drop duplicate init_sched_dl_class() declaration There are two init_sched_dl_class() declarations, this patch drops the duplicate. Signed-off-by: Wanpeng Li Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Juri Lelli Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1431496867-4194-5-git-send-email-wanpeng.li@linux.intel.com Signed-off-by: Ingo Molnar kernel/sched/sched.h | 1 - 1 file changed, 1 deletion(-) commit 9d514262425691dddf942edea8bc9919e66fe140 Author: Wanpeng Li Date: Wed May 13 14:01:03 2015 +0800 sched/deadline: Reduce rq lock contention by eliminating locking of non-feasible target This patch adds a check that prevents futile attempts to move DL tasks to a CPU with active tasks of equal or earlier deadline. The same behavior as commit 80e3d87b2c55 ("sched/rt: Reduce rq lock contention by eliminating locking of non-feasible target") for rt class. Signed-off-by: Wanpeng Li Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Juri Lelli Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1431496867-4194-3-git-send-email-wanpeng.li@linux.intel.com Signed-off-by: Ingo Molnar kernel/sched/deadline.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) commit a6c0e746fb8f4ea6508f274314378325a6e1ec9b Author: Wanpeng Li Date: Wed May 13 14:01:02 2015 +0800 sched/deadline: Make init_sched_dl_class() __init It's a bootstrap function, make init_sched_dl_class() __init. Signed-off-by: Wanpeng Li Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Juri Lelli Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1431496867-4194-2-git-send-email-wanpeng.li@linux.intel.com Signed-off-by: Ingo Molnar kernel/sched/deadline.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8b5e770ed7c05a65ffd2d33a83c14572696236dc Author: Wanpeng Li Date: Wed May 13 14:01:01 2015 +0800 sched/deadline: Optimize pull_dl_task() pull_dl_task() uses pick_next_earliest_dl_task() to select a migration candidate; this is sub-optimal since the next earliest task -- as per the regular runqueue -- might not be migratable at all. This could result in iterating the entire runqueue looking for a task. Instead iterate the pushable queue -- this queue only contains tasks that have at least 2 cpus set in their cpus_allowed mask. Signed-off-by: Wanpeng Li [ Improved the changelog. ] Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Juri Lelli Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1431496867-4194-1-git-send-email-wanpeng.li@linux.intel.com Signed-off-by: Ingo Molnar kernel/sched/deadline.c | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) commit 1cde2930e15473cb4dd7e5a07d83e605a969bd6e Author: Peter Zijlstra Date: Mon Jun 8 16:00:30 2015 +0200 sched/preempt: Add static_key() to preempt_notifiers Avoid touching the curr->preempt_notifier cacheline when not needed. Provides a small improvement on pipe-bench: taskset 01 perf stat --repeat 10 -- perf bench sched pipe before: Performance counter stats for 'perf bench sched pipe' (10 runs): 12385.016204 task-clock (msec) # 1.001 CPUs utilized ( +- 0.34% ) 2,000,023 context-switches # 0.161 M/sec ( +- 0.00% ) 0 cpu-migrations # 0.000 K/sec 175 page-faults # 0.014 K/sec ( +- 0.26% ) 41,376,162,250 cycles # 3.341 GHz ( +- 0.11% ) 17,389,139,321 stalled-cycles-frontend # 42.03% frontend cycles idle ( +- 0.25% ) stalled-cycles-backend 68,788,588,003 instructions # 1.66 insns per cycle # 0.25 stalled cycles per insn ( +- 0.02% ) 13,449,387,620 branches # 1085.940 M/sec ( +- 0.02% ) 20,880,690 branch-misses # 0.16% of all branches ( +- 0.98% ) 12.372646094 seconds time elapsed ( +- 0.34% ) after: Performance counter stats for 'perf bench sched pipe' (10 runs): 12180.936528 task-clock (msec) # 1.001 CPUs utilized ( +- 0.33% ) 2,000,077 context-switches # 0.164 M/sec ( +- 0.00% ) 0 cpu-migrations # 0.000 K/sec 174 page-faults # 0.014 K/sec ( +- 0.27% ) 40,691,545,577 cycles # 3.341 GHz ( +- 0.06% ) 16,446,333,371 stalled-cycles-frontend # 40.42% frontend cycles idle ( +- 0.18% ) stalled-cycles-backend 68,570,100,387 instructions # 1.69 insns per cycle # 0.24 stalled cycles per insn ( +- 0.01% ) 13,389,740,014 branches # 1099.237 M/sec ( +- 0.01% ) 20,175,440 branch-misses # 0.15% of all branches ( +- 0.52% ) 12.169253010 seconds time elapsed ( +- 0.33% ) Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar kernel/sched/core.c | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) commit d84525a845cc2617d638349f8756a9fec9ac8113 Author: Mathieu Desnoyers Date: Sun May 17 12:53:10 2015 -0400 sched/preempt: Fix preempt notifiers documentation about hlist_del() within unsafe iteration preempt_notifier_unregister() documents: "This is safe to call from within a preemption notifier." However, both fire_sched_in_preempt_notifiers() and fire_sched_out_preempt_notifiers() are using hlist_for_each_entry(), which is not safe against entry removal during iteration. Inspection of the KVM code does not reveal any use of preempt_notifier_unregister() within the preempt notifiers. Therefore, fix the comment. Signed-off-by: Mathieu Desnoyers Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1431881590-1456-1-git-send-email-mathieu.desnoyers@efficios.com Signed-off-by: Ingo Molnar kernel/sched/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b17718d02f54b90978d0e0146368b512b11c3e84 Author: Peter Zijlstra Date: Fri Jun 5 17:30:23 2015 +0200 sched/stop_machine: Fix deadlock between multiple stop_two_cpus() Jiri reported a machine stuck in multi_cpu_stop() with migrate_swap_stop() as function and with the following src,dst cpu pairs: {11, 4} {13, 11} { 4, 13} 4 11 13 cpuM: queue(4 ,13) *Ma cpuN: queue(13,11) *N Na *M Mb cpuO: queue(11, 4) *O Oa *Nb *Ob Where *X denotes the cpu running the queueing of cpu-X and X[ab] denotes the first/second queued work. You'll observe the top of the workqueue for each cpu: 4,11,13 to be work from cpus: M, O, N resp. IOW. deadlock. Do away with the queueing trickery and introduce lg_double_lock() to lock both CPUs and fully serialize the stop_two_cpus() callers instead of the partial (and buggy) serialization we have now. Reported-by: Jiri Olsa Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Rik van Riel Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/20150605153023.GH19282@twins.programming.kicks-ass.net Signed-off-by: Ingo Molnar include/linux/lglock.h | 5 +++++ kernel/locking/lglock.c | 22 ++++++++++++++++++++++ kernel/stop_machine.c | 42 +++++------------------------------------- 3 files changed, 32 insertions(+), 37 deletions(-) commit 82a0d2762699b95d6ce4114d00dc1865df9b0df3 Author: Srikar Dronamraju Date: Mon Jun 8 13:40:41 2015 +0530 sched/debug: Add sum_sleep_runtime to /proc//sched When CONFIG_SCHEDSTATS is enabled, /proc//sched prints almost all sched statistics except sum_sleep_runtime. Since sum_sleep_runtime is a good info to collect, add this it to /proc//sched. Signed-off-by: Srikar Dronamraju Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1433751041-11724-4-git-send-email-srikar@linux.vnet.ibm.com Signed-off-by: Ingo Molnar kernel/sched/debug.c | 1 + 1 file changed, 1 insertion(+) commit c5f3ab1c3b2e277cca6462415038dab02b4ad396 Author: Srikar Dronamraju Date: Mon Jun 8 13:40:40 2015 +0530 sched/debug: Replace vruntime with wait_sum in /proc/sched_debug Within runnable tasks in /proc/sched_debug, vruntime is printed twice, once as tree-key and again as exec-runtime. Since exec-runtime isnt populated in !CONFIG_SCHEDSTATS, use this field to print wait_sum. Signed-off-by: Srikar Dronamraju Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1433751041-11724-3-git-send-email-srikar@linux.vnet.ibm.com Signed-off-by: Ingo Molnar kernel/sched/debug.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 33d6176eb12d1b0ae6d2f672b47367fd90726b91 Author: Srikar Dronamraju Date: Mon Jun 8 13:40:39 2015 +0530 sched/debug: Properly format runnable tasks in /proc/sched_debug With !CONFIG_SCHEDSTATS, runnable tasks in /proc/sched_debug has too many columns than required. Fix this by printing appropriate columns. While at this, print sum_exec_runtime, since this information is available even in !CONFIG_SCHEDSTATS case. Signed-off-by: Srikar Dronamraju Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1433751041-11724-2-git-send-email-srikar@linux.vnet.ibm.com Signed-off-by: Ingo Molnar kernel/sched/debug.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 68722101ec3a0e179408a13708dd020e04f54aab Author: George Beshers Date: Thu Jun 18 10:25:13 2015 -0500 locking/lockdep: Remove hard coded array size dependency An apparent oversight left a hardcoded '4' in place when LOCKSTAT_POINTS was introduced. The contention_point[] and contending_point[] arrays in the structs lock_class and lock_class_stats need to be the same size for the loops in lock_stats() to be correct. This patch allows LOCKSTAT_POINTS to be changed without affecting the correctness of the code. Signed-off-by: George Beshers Cc: Andrew Morton Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar include/linux/lockdep.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 405963b6a57c60040bc1dad2597f7f4b897954d1 Author: Waiman Long Date: Tue Jun 9 11:19:13 2015 -0400 locking/qrwlock: Don't contend with readers when setting _QW_WAITING The current cmpxchg() loop in setting the _QW_WAITING flag for writers in queue_write_lock_slowpath() will contend with incoming readers causing possibly extra cmpxchg() operations that are wasteful. This patch changes the code to do a byte cmpxchg() to eliminate contention with new readers. A multithreaded microbenchmark running 5M read_lock/write_lock loop on a 8-socket 80-core Westmere-EX machine running 4.0 based kernel with the qspinlock patch have the following execution times (in ms) with and without the patch: With R:W ratio = 5:1 Threads w/o patch with patch % change ------- --------- ---------- -------- 2 990 895 -9.6% 3 2136 1912 -10.5% 4 3166 2830 -10.6% 5 3953 3629 -8.2% 6 4628 4405 -4.8% 7 5344 5197 -2.8% 8 6065 6004 -1.0% 9 6826 6811 -0.2% 10 7599 7599 0.0% 15 9757 9766 +0.1% 20 13767 13817 +0.4% With small number of contending threads, this patch can improve locking performance by up to 10%. With more contending threads, however, the gain diminishes. Signed-off-by: Waiman Long Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Arnd Bergmann Cc: Borislav Petkov Cc: Douglas Hatch Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Scott J Norton Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1433863153-30722-3-git-send-email-Waiman.Long@hp.com Signed-off-by: Ingo Molnar kernel/locking/qrwlock.c | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) commit 2c33645d366d13b969d936b68b9f4875b1fdddea Author: Palik, Imre Date: Mon Jun 8 14:46:49 2015 +0200 perf/x86: Honor the architectural performance monitoring version Architectural performance monitoring, version 1, doesn't support fixed counters. Currently, even if a hypervisor advertises support for architectural performance monitoring version 1, perf may still try to use the fixed counters, as the constraints are set up based on the CPU model. This patch ensures that perf honors the architectural performance monitoring version returned by CPUID, and it only uses the fixed counters for version 2 and above. (Some of the ideas in this patch came from Peter Zijlstra.) Signed-off-by: Imre Palik Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Andy Lutomirski Cc: Anthony Liguori Cc: Arnaldo Carvalho de Melo Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Paul Mackerras Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1433767609-1039-1-git-send-email-imrep.amz@gmail.com Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 1b7b938f181742f899a2f31c280f79dabef6ddb6 Author: Alexander Shishkin Date: Tue Jun 9 13:03:26 2015 +0300 perf/x86/intel: Fix PMI handling for Intel PT Intel PT is a separate PMU and it is not using any of the x86_pmu code paths, which means in particular that the active_events counter remains intact when new PT events are created. However, PT uses the generic x86_pmu PMI handler for its PMI handling needs. The problem here is that the latter checks active_events and in case of it being zero, exits without calling the actual x86_pmu.handle_nmi(), which results in unknown NMI errors and massive data loss for PT. The effect is not visible if there are other perf events in the system at the same time that keep active_events counter non-zero, for instance if the NMI watchdog is running, so one needs to disable it to reproduce the problem. At the same time, the active_events counter besides doing what the name suggests also implicitly serves as a PMC hardware and DS area reference counter. This patch adds a separate reference counter for the PMC hardware, leaving active_events for actually counting the events and makes sure it also counts PT and BTS events. Signed-off-by: Alexander Shishkin Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton 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: Thomas Gleixner Cc: acme@infradead.org Cc: adrian.hunter@intel.com Link: http://lkml.kernel.org/r/87k2v92t0s.fsf@ashishki-desk.ger.corp.intel.com Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event.c | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) commit 6b099d9b040b0f3d0aec05b560d7caf879af5077 Author: Alexander Shishkin Date: Thu Jun 11 15:13:56 2015 +0300 perf/x86/intel/bts: Fix DS area sharing with x86_pmu events Currently, the intel_bts driver relies on the DS area allocated by the x86_pmu code in its event_init() path, which is a bug: creating a BTS event while no x86_pmu events are present results in a NULL pointer dereference. The same DS area is also used by PEBS sampling, which makes it quite a bit trickier to have a separate one for intel_bts' purposes. This patch makes intel_bts driver use the same DS allocation and reference counting code as x86_pmu to make sure it is always present when either intel_bts or x86_pmu need it. Signed-off-by: Alexander Shishkin Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton 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: Thomas Gleixner Cc: acme@infradead.org Cc: adrian.hunter@intel.com Link: http://lkml.kernel.org/r/1434024837-9916-2-git-send-email-alexander.shishkin@linux.intel.com Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event.c | 52 +++++++++++++++++++----------- arch/x86/kernel/cpu/perf_event.h | 4 +++ arch/x86/kernel/cpu/perf_event_intel_bts.c | 9 ++++++ 3 files changed, 46 insertions(+), 19 deletions(-) commit 4b36f1a4139c9284df74c0f5d7655603d67807df Author: Andi Kleen Date: Thu Jun 11 13:52:22 2015 -0700 perf/x86: Add more Broadwell model numbers This patch adds additional model numbers for Broadwell to perf. Support for Broadwell with Iris Pro (Intel Core i7-57xxC) and support for Broadwell Server Xeon. Signed-off-by: Andi Kleen Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton 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: Thomas Gleixner Link: http://lkml.kernel.org/r/1434055942-28253-1-git-send-email-andi@firstfloor.org Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel.c | 2 ++ 1 file changed, 2 insertions(+) commit 2f993cf093643b98477c421fa2b9a98dcc940323 Author: Oleg Nesterov Date: Sat May 30 22:04:25 2015 +0200 perf: Fix ring_buffer_attach() RCU sync, again While looking for other users of get_state/cond_sync. I Found ring_buffer_attach() and it looks obviously buggy? Don't we need to ensure that we have "synchronize" _between_ list_del() and list_add() ? IOW. Suppose that ring_buffer_attach() preempts right_after get_state_synchronize_rcu() and gp completes before spin_lock(). In this case cond_synchronize_rcu() does nothing and we reuse ->rb_entry without waiting for gp in between? It also moves the ->rcu_pending check under "if (rb)", to make it more readable imo. Signed-off-by: Oleg Nesterov Signed-off-by: Peter Zijlstra (Intel) Cc: Alexander Shishkin Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: dave@stgolabs.net Cc: der.herr@hofr.at Cc: josh@joshtriplett.org Cc: tj@kernel.org Fixes: b69cf53640da ("perf: Fix a race between ring_buffer_detach() and ring_buffer_attach()") Link: http://lkml.kernel.org/r/20150530200425.GA15748@redhat.com Signed-off-by: Ingo Molnar kernel/events/core.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 6096f884515466f400864ad23d16f20b731a7ce7 Merge: f293106 f1b3b44 Author: Michael Ellerman Date: Fri Jun 19 17:23:48 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 more 8xx optimizations, an e6500 hugetlb optimization, QMan device tree nodes, t1024/t1023 support, and various fixes and cleanup." commit e1632fa2471281c69bb3b6414d2c0fb01c56cc70 Author: Greg Ungerer Date: Fri Jun 19 10:40:03 2015 +1000 m68k: improve m68knommu MAINTAINERS entry Improve the information in the m68knommu maintainers entry. This should aid in making it clearer what parts of the m68k architecture code can go via the m68knommu git tree. Specifically the entry now lists the relevant git tree where m68knommu patches are promoted through. It also spells out that the coldfire sub-architecture, and with it the directory of arch/m68k/coldfire, as being supported via this tree. Signed-off-by: Greg Ungerer Acked-by: Geert Uytterhoeven MAINTAINERS | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 4bacc9c9234c7c8eec44f5ed4e960d9f96fa0f01 Author: David Howells Date: Thu Jun 18 14:32:31 2015 +0100 overlayfs: Make f_path always point to the overlay and f_inode to the underlay Make file->f_path always point to the overlay dentry so that the path in /proc/pid/fd is correct and to ensure that label-based LSMs have access to the overlay as well as the underlay (path-based LSMs probably don't need it). Using my union testsuite to set things up, before the patch I see: [root@andromeda union-testsuite]# bash 5 /a/foo107 [root@andromeda union-testsuite]# stat /mnt/a/foo107 ... Device: 23h/35d Inode: 13381 Links: 1 ... [root@andromeda union-testsuite]# stat -L /proc/$$/fd/5 ... Device: 23h/35d Inode: 13381 Links: 1 ... After the patch: [root@andromeda union-testsuite]# bash 5 /mnt/a/foo107 [root@andromeda union-testsuite]# stat /mnt/a/foo107 ... Device: 23h/35d Inode: 40346 Links: 1 ... [root@andromeda union-testsuite]# stat -L /proc/$$/fd/5 ... Device: 23h/35d Inode: 40346 Links: 1 ... Note the change in where /proc/$$/fd/5 points to in the ls command. It was pointing to /a/foo107 (which doesn't exist) and now points to /mnt/a/foo107 (which is correct). The inode accessed, however, is the lower layer. The union layer is on device 25h/37d and the upper layer on 24h/36d. Signed-off-by: David Howells Signed-off-by: Al Viro fs/dcache.c | 5 ++++- fs/internal.h | 1 + fs/open.c | 49 +++++++++++++++++++++++++----------------------- fs/overlayfs/inode.c | 14 ++++++-------- fs/overlayfs/overlayfs.h | 1 + fs/overlayfs/super.c | 1 + include/linux/dcache.h | 2 ++ include/linux/fs.h | 2 -- 8 files changed, 41 insertions(+), 34 deletions(-) commit f25801ee4680ef1db21e15c112e6e5fe3ffe8da5 Author: David Howells Date: Thu Jun 18 14:32:23 2015 +0100 overlay: Call ovl_drop_write() earlier in ovl_dentry_open() Call ovl_drop_write() earlier in ovl_dentry_open() before we call vfs_open() as we've done the copy up for which we needed the freeze-write lock by that point. Signed-off-by: David Howells Signed-off-by: Al Viro fs/overlayfs/inode.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) commit f293106917f6d1538c9c7779a632c2ab904a756b Author: Michael Neuling Date: Thu Jun 18 15:15:10 2015 +1000 cxl: Fix typo in debug print Fix typo in debug print. p1_base() should be p2_base(). No change other than to the debug output. Signed-off-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 e0fcdc201037c2bd356424520d199492e92d0289 Author: Michael Neuling Date: Tue Jun 16 16:45:44 2015 +1000 cxl: Add CXL_KERNEL_API config option Add CXL_KERNEL_API config option so drivers which depend on this new functionality won't be enabled until this is visible. This is useful for merging the cxlflash driver which comes in via the SCSI tree. The cxlflash driver can depend on CXL_KERNEL_API, hence it won't be enabled in the SCSI tree until this new config option is merged via the powerpc tree. Hence all trees will be bisectable at all times. Signed-off-by: Michael Neuling Signed-off-by: Michael Ellerman drivers/misc/cxl/Kconfig | 5 +++++ 1 file changed, 5 insertions(+) commit 5c89a87d13d168eacb8110810544a98ce0f4319d Author: Alexey Kardashevskiy Date: Thu Jun 18 11:41:36 2015 +1000 powerpc/powernv: Fix wrong IOMMU table in pnv_ioda_setup_bus_dma() When pnv_pci_ioda_fixup() is called during PHB fixup time, each PE in the sorted list of PEs (phb::pe_dma_list) is iterated to setup the PE's DMA32 space by pnv_ioda_setup_bus_dma() if the PE's DMA32 weight is bigger than zero. The function also assigns all the subordinate PCI devices of the PE's primary bus with the PE's DMA32 IOMMU table. It causes the PCI devicess in the child PEs, which don't have DMA weight, receives wrong IOMMU table and then IOMMU group. The patch fixes above issue by more check on the PE's coverage and don't assign IOMMU table to those PCI devices, which belong to the child PEs. The problem was found on Firestone platform initially. Suggested-by: Gavin Shan Signed-off-by: Alexey Kardashevskiy Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/pci-ioda.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e148315852855f8f06b8bb4601c8cade34af8df3 Author: Aneesh Kumar K.V Date: Wed Jun 17 08:13:41 2015 +0530 powerpc/mm: Change the swap encoding in pte. Current swap encoding in pte can't support large pfns above 4TB. Change the swap encoding such that we put the swap type in the PTE bits. Also add build checks to make sure we don't overlap with HPTEFLAGS. Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman arch/powerpc/include/asm/pgtable-ppc64.h | 26 +++++++++++++++++++++----- arch/powerpc/include/asm/pte-book3e.h | 1 + arch/powerpc/include/asm/pte-hash64.h | 1 + 3 files changed, 23 insertions(+), 5 deletions(-) commit 02505cebc1db06707d31635e9c9b342d58f887b7 Author: Aneesh Kumar K.V Date: Wed Jun 17 08:13:40 2015 +0530 powerpc/mm: PTE_RPN_MAX is not used, remove the same Remove the unused #define Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman arch/powerpc/include/asm/pte-common.h | 2 -- 1 file changed, 2 deletions(-) commit b4b56f9ecab40f3b4ef53e130c9f6663be491894 Author: Sam bobroff Date: Fri Jun 12 11:06:32 2015 +1000 powerpc/tm: Abort syscalls in active transactions This patch changes the syscall handler to doom (tabort) active transactions when a syscall is made and return very early without performing the syscall and keeping side effects to a minimum (no CPU accounting or system call tracing is performed). Also included is a new HWCAP2 bit, PPC_FEATURE2_HTM_NOSC, to indicate this behaviour to userspace. Currently, the system call instruction automatically suspends an active transaction which causes side effects to persist when an active transaction fails. This does change the kernel's behaviour, but in a way that was documented as unsupported. It doesn't reduce functionality as syscalls will still be performed after tsuspend; it just requires that the transaction be explicitly suspended. It also provides a consistent interface and makes the behaviour of user code substantially the same across powerpc and platforms that do not support suspended transactions (e.g. x86 and s390). Performance measurements using http://ozlabs.org/~anton/junkcode/null_syscall.c indicate the cost of a normal (non-aborted) system call increases by about 0.25%. Signed-off-by: Sam Bobroff Signed-off-by: Michael Ellerman Documentation/powerpc/transactional_memory.txt | 32 +++++++++++----------- arch/powerpc/include/asm/cputable.h | 10 ++++--- arch/powerpc/include/uapi/asm/cputable.h | 1 + arch/powerpc/include/uapi/asm/tm.h | 2 +- arch/powerpc/kernel/cputable.c | 4 ++- arch/powerpc/kernel/entry_64.S | 35 +++++++++++++++++++++++++ tools/testing/selftests/powerpc/tm/Makefile | 4 +-- tools/testing/selftests/powerpc/tm/tm-syscall.c | 3 ++- 8 files changed, 66 insertions(+), 25 deletions(-) commit 28bceeaaf81140d69647acd0eb7dc9312f27844a Author: Dan Streetman Date: Thu Jun 18 12:28:32 2015 -0400 MAINTAINERS: clarify drivers/crypto/nx/ file ownership Update the "IBM Power in-Nest Crypto Acceleration" and "IBM Power 842 compression accelerator" sections to specify the correct files. The "IBM Power in-Nest Crypto Acceleration" was originally the only NX driver, and so its section listed all drivers/crypto/nx/ files, but now there is also the 842 driver which has its own section. This lists explicitly what files are owned by the Crypto driver and which files are owned by the 842 compression driver. Signed-off-by: Dan Streetman Signed-off-by: Herbert Xu MAINTAINERS | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit c47d63020c03659e584673f78f24f2e5de3e6b9b Author: Dan Streetman Date: Thu Jun 18 12:05:30 2015 -0400 crypto: nx - add LE support to pSeries platform driver Add support to the nx-842-pseries.c driver for running in little endian mode. The pSeries platform NX 842 driver currently only works as big endian. This adds cpu_to_be*() and be*_to_cpu() in the appropriate places to work in LE mode also. Signed-off-by: Dan Streetman Signed-off-by: Herbert Xu drivers/crypto/nx/Kconfig | 2 +- drivers/crypto/nx/nx-842-pseries.c | 83 +++++++++++++++++++------------------- drivers/crypto/nx/nx-842.h | 3 +- 3 files changed, 45 insertions(+), 43 deletions(-) commit 7793bda8fe372fe2e71f16d0619b630d6e41c8ba Author: Herbert Xu Date: Thu Jun 18 14:25:56 2015 +0800 crypto: caam - Set last bit on src SG list The new aead_edesc_alloc left out the bit indicating the last entry on the source SG list. This patch fixes it. Signed-off-by: Herbert Xu drivers/crypto/caam/caamalg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 87e51b072485f519c6ef077f60f4b837677202cc Author: Herbert Xu Date: Thu Jun 18 14:25:55 2015 +0800 crypto: caam - Reintroduce DESC_MAX_USED_BYTES I incorrectly removed DESC_MAX_USED_BYTES when enlarging the size of the shared descriptor buffers, thus making it four times larger than what is necessary. This patch restores the division by four calculation. Signed-off-by: Herbert Xu drivers/crypto/caam/caamalg.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit f5d8660acb9623470adcef426c6ff7b07cbe4b74 Author: Herbert Xu Date: Thu Jun 18 14:00:49 2015 +0800 crypto: aead - Fix aead_instance struct size The struct aead_instance is meant to extend struct crypto_instance by incorporating the extra members of struct aead_alg. However, the current layout which is copied from shash/ahash does not specify the struct fully. In particular only aead_alg is present. For shash/ahash this works because users there add extra headroom to sizeof(struct crypto_instance) when allocating the instance. Unfortunately for aead, this bit was lost when the new aead_instance was added. Rather than fixing it like shash/ahash, this patch simply expands struct aead_instance to contain what is supposed to be there, i.e., adding struct crypto_instance. In order to not break existing AEAD users, this is done through an anonymous union. Signed-off-by: Herbert Xu include/crypto/internal/aead.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit edf18b9108f5025f9e83b2c167c9122954acbc62 Author: Herbert Xu Date: Thu Jun 18 14:00:48 2015 +0800 crypto: api - Add CRYPTO_MINALIGN_ATTR to struct crypto_alg The struct crypto_alg is embedded into various type-specific structs such as aead_alg. This is then used as part of instances such as struct aead_instance. It is also embedded into the generic struct crypto_instance. In order to ensure that struct aead_instance can be converted to struct crypto_instance when necessary, we need to ensure that crypto_alg is aligned properly. This patch adds an alignment attribute to struct crypto_alg to ensure this. Signed-off-by: Herbert Xu include/linux/crypto.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6bdee8bddde0ab76f458a9a05b8bcf80a7de3fb0 Author: Isaac Assegai Date: Thu Jun 18 21:48:55 2015 -0700 Staging: sm750fb: ddk750_swi2c.c: Insert spaces before parenthesis Insert spaces before open parenthesis in ddk750_swi2c.c to rectify the following checkpatch errors: ERROR: space required before the open parenthesis '(' Signed-off-by: Isaac Assegai Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/ddk750_swi2c.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit d3f431d0ffced1db5d3567173f8984c5a5c74a1a Author: Isaac Assegai Date: Thu Jun 18 21:48:54 2015 -0700 Staging: sm750fb: ddk750_swi2c.c: Place braces on correct lines Place braces on correct lines in ddk750_swi2c.c to rectify the following checkpatch errors: ERROR: that open brace { should be on the previous line Signed-off-by: Isaac Assegai Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/ddk750_swi2c.c | 32 ++++++++++---------------------- 1 file changed, 10 insertions(+), 22 deletions(-) commit 6d43b0f482561ab421a91ebf59a51192d66cf8a7 Author: Isaac Assegai Date: Thu Jun 18 21:48:53 2015 -0700 Staging: sm750fb: ddk750_swi2c.c: Insert spaces around operators Insert spaces around comparison operators in ddk750_swi2c.c to rectify the following set of checkpatch errors: ERROR: spaces required around that '=' ERROR: spaces required around that '<' ERROR: spaces required around that '>=' Signed-off-by: Isaac Assegai Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/ddk750_swi2c.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 7ef803a92db8a74c12a0d3c654a041eed42fa078 Author: Isaac Assegai Date: Thu Jun 18 21:48:52 2015 -0700 Staging: sm750fb: ddk750_swi2c.c: Replace spaces with tabs Replace spaces with tabs in ddk750_swi2c.c to rectify the following checkpatch warnings: WARNING: please, no spaces at the start of a line Signed-off-by: Isaac Assegai Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/ddk750_swi2c.c | 458 ++++++++++++++++----------------- 1 file changed, 229 insertions(+), 229 deletions(-) commit f27ece1499e4e40419e1d12741fb0e8747004a80 Author: Isaac Assegai Date: Thu Jun 18 21:48:51 2015 -0700 Staging: sm750fb: ddk750_swi2c.h: Shorten lines to under 80 characters Shorten lines to under 80 characters in ddk750_swi2c.h to rectify the following checkpatch warnings: WARNING: line over 80 characters Signed-off-by: Isaac Assegai Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/ddk750_swi2c.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit bf36fa2f7109a3f55c349b616f057dc0a539244d Author: Isaac Assegai Date: Thu Jun 18 21:48:50 2015 -0700 Staging: sm750fb: ddk750_swi2c.h: Replace spaces with tabs Replace spaces with tabs at the start of lines in ddk750_swi2c.h to rectify the following checkpatch warning: WARNING: please, no spaces at the start of a line Signed-off-by: Isaac Assegai Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/ddk750_swi2c.h | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 278b63cebccbb222e5b88e94169e56c38589711d Author: Isaac Assegai Date: Thu Jun 18 21:48:49 2015 -0700 Staging: sm750fb: modedb.h: Shorten lines to under 80 characters Shorten lines to under 80 characters in modedb.h to rectify the following checkpatch warnings: WARNING: line over 80 characters Signed-off-by: Isaac Assegai Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/modedb.h | 36 ++++++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 12 deletions(-) commit 5e9ba80a7e5efc01d3cd9fba3ac679c414bc412a Author: Isaac Assegai Date: Thu Jun 18 21:48:48 2015 -0700 Staging: sm750fb: modedb.h: Replace spaces with tabs Replace spaces with tabs at the start of lines in modedb.h to rectify the following checkpatch warning: WARNING: please, no spaces at the start of a line Signed-off-by: Isaac Assegai Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/modedb.h | 434 +++++++++++++++++++-------------------- 1 file changed, 217 insertions(+), 217 deletions(-) commit 52a79403cb4dd9b5993691733a07e5cb42e3446b Author: H Hartley Sweeten Date: Thu Jun 18 10:55:00 2015 -0700 staging: comedi: addi_apci_3120: rename 'this_board' variables For aesthetics, rename the 'this_board' variables to 'board'. That name is more commonly used for the boardinfo pointer in comedi drivers. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/addi_apci_3120.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 1867e04db2ed067df9903400c96c33fe555becc3 Author: H Hartley Sweeten Date: Thu Jun 18 10:54:59 2015 -0700 staging: comedi: addi_apci_1516: rename 'this_board' variables For aesthetics, rename the 'this_board' variables to 'board'. That name is more commonly used for the boardinfo pointer in comedi drivers. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/addi_apci_1516.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit 1ee02fe1a100f57a2d35e78c38d22dedddc52ff4 Author: H Hartley Sweeten Date: Thu Jun 18 10:54:58 2015 -0700 staging: comedi: ni_atmio: cleanup ni_getboardtype() Make this function return a pointer to the boardinfo instead of an index. For aesthetics, rename the function to ni_atmio_probe(). Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_atmio.c | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) commit e38576ce7301ddd5e39b969e3f2a136002fb429d Author: H Hartley Sweeten Date: Thu Jun 18 10:54:57 2015 -0700 staging: comedi: vmk80xx: sanity check context used to get the boardinfo As done in all the comedi drivers that auto attach, sanity check the passed context that is used to get the boardinfo. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/vmk80xx.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit adda9ab042326572237df7fd6be42f746206a385 Author: H Hartley Sweeten Date: Thu Jun 18 10:54:56 2015 -0700 staging: comedi: vmk80xx: rename 'boardinfo' variables For aesthetics, rename the 'boardinfo' variables to 'board'. That name is more commonly used for the boardinfo pointer in comedi drivers. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/vmk80xx.c | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) commit 476f62eb168f3835cdd268154f4fce441277974e Author: H Hartley Sweeten Date: Thu Jun 18 10:54:55 2015 -0700 staging: comedi: dt3000: rename 'this_board' variables For aesthetics, rename the 'this_board' variables to 'board'. That name is more commonly used for the boardinfo pointer in comedi drivers. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/dt3000.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) commit 1a127f311545a052a6560686d03ca028dc138969 Author: H Hartley Sweeten Date: Thu Jun 18 10:54:54 2015 -0700 staging: comedi: adv_pci_dio: rename 'this_board' variables For aesthetics, rename the 'this_board' variables to 'board'. That name is more commonly used for the boardinfo pointer in comedi drivers. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci_dio.c | 48 ++++++++++++++-------------- 1 file changed, 24 insertions(+), 24 deletions(-) commit 52762ad12aa545000978382b13d64382d284e671 Author: H Hartley Sweeten Date: Thu Jun 18 10:54:53 2015 -0700 staging: comedi: cb_pcidas64: rename 'thisboard' variables For aesthetics, rename the 'thisboard' variables to 'board'. That name is more commonly used for the boardinfo pointer in comedi drivers. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/cb_pcidas64.c | 218 +++++++++++++-------------- 1 file changed, 108 insertions(+), 110 deletions(-) commit 164c224812f04f49afdc47b89a25593ba22c26d7 Author: H Hartley Sweeten Date: Thu Jun 18 10:54:52 2015 -0700 staging: comedi: cb_pcidas: rename 'thisboard' variables For aesthetics, rename the 'thisboard' variables to 'board'. That name is more commonly used for the boardinfo pointer in comedi drivers. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/cb_pcidas.c | 64 +++++++++++++++--------------- 1 file changed, 32 insertions(+), 32 deletions(-) commit 49ef9c850154756cf2fbc50fd3804c44675d4633 Author: H Hartley Sweeten Date: Thu Jun 18 10:54:51 2015 -0700 staging: comedi: me4000: rename 'thisboard' variables For aesthetics, rename the 'thisboard' variables to 'board'. That name is more commonly used for the boardinfo pointer in comedi drivers. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/me4000.c | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) commit 8c79825ec861945dca5ce30db75a9673a8be8581 Author: H Hartley Sweeten Date: Thu Jun 18 10:54:50 2015 -0700 staging: comedi: das1800: rename 'thisboard' variables For aesthetics, rename the 'thisboard' variables to 'board'. That name is more commonly used for the boardinfo pointer in comedi drivers. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/das1800.c | 50 ++++++++++++++++---------------- 1 file changed, 25 insertions(+), 25 deletions(-) commit 06ad6bd8698c1202423ead5a9e85564134382065 Author: H Hartley Sweeten Date: Thu Jun 18 10:54:49 2015 -0700 staging: comedi: das1800: cleanup das1800_probe() Make this function return a pointer to the boardinfo instead of an index. Since it's not typical, add a comment to clarify why this legacy driver does a probe. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/das1800.c | 44 +++++++++++++++++--------------- 1 file changed, 23 insertions(+), 21 deletions(-) commit 4f3aa186d325f469c142ce8c804548e2b2f18a9d Author: H Hartley Sweeten Date: Thu Jun 18 10:54:48 2015 -0700 staging: comedi: das800: rename 'thisboard' variables For aesthetics, rename the 'thisboard' variables to 'board'. That name is more commonly used for the boardinfo pointer in comedi drivers. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/das800.c | 36 ++++++++++++++++----------------- 1 file changed, 18 insertions(+), 18 deletions(-) commit a69153f66f3caef506a6a03a6f6ba76f75f57d29 Author: H Hartley Sweeten Date: Thu Jun 18 10:54:47 2015 -0700 staging: comedi: das800: cleanup das800_probe() Make this function return a pointer to the boardinfo instead of an index. Since it's not typical, add a comment to clarify why this legacy driver does a probe. For aesthetics, rename the local variable 'board' to 'index. Consolidate the dev_dbg() messages when a probed boardinfo is used and remove the extra dev_dbg() message when the boardinfo is not found. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/das800.c | 55 ++++++++++++++++++--------------- 1 file changed, 30 insertions(+), 25 deletions(-) commit cf2f9224e7d0112b2a20056de7f8b23060140a1a Author: H Hartley Sweeten Date: Thu Jun 18 10:54:46 2015 -0700 staging: comedi: das08: rename 'thisboard' variables For aesthetics, rename the 'thisboard' variables to 'board'. That name is more commonly used for the boardinfo pointer in comedi drivers. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/das08.c | 51 +++++++++++++++++----------------- 1 file changed, 25 insertions(+), 26 deletions(-) commit c6726b81738110835ab75a874c267686eb282885 Author: H Hartley Sweeten Date: Thu Jun 18 10:54:45 2015 -0700 staging: comedi: das08_isa: rename 'thisboard' variables For aesthetics, rename the 'thisboard' variables to 'board'. That name is more commonly used for the boardinfo pointer in comedi drivers. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/das08_isa.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 94be3ef2a8ddcf3e97b2f598ada2c701fcec41fc Author: H Hartley Sweeten Date: Thu Jun 18 10:54:44 2015 -0700 staging: comedi: ni_at_a2150: rename 'thisboard' variables For aesthetics, rename the 'thisboard' variables to 'board'. That name is more commonly used for the boardinfo pointer in comedi drivers. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_at_a2150.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) commit 30f23066424f8fc46e56f41195c51b33fdf36f58 Author: H Hartley Sweeten Date: Thu Jun 18 10:54:43 2015 -0700 staging: comedi: ni_at_a2150: cleanup a2150_probe() Make this function return a pointer to the boardinfo instead of an index. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_at_a2150.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit 6e2b126dbda1f874b262fa212cc1cb0c2f6a9fe8 Author: H Hartley Sweeten Date: Thu Jun 18 10:54:42 2015 -0700 staging: comedi: ni_670x: rename 'thisboard' variables For aesthetics, rename the 'thisboard' variables to 'board'. That name is more commonly used for the boardinfo pointer in comedi drivers. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_670x.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 91d4beba92477aab8bdf5084d538d28c2a9e3081 Author: H Hartley Sweeten Date: Thu Jun 18 10:54:41 2015 -0700 staging: comedi: cb_pcidda: rename 'thisboard' variables For aesthetics, rename the 'thisboard' variables to 'board'. That name is more commonly used for the boardinfo pointer in comedi drivers. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/cb_pcidda.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 5e97650cf506bbaacc3149c07bc2c7dcae4f13af Author: H Hartley Sweeten Date: Thu Jun 18 10:54:40 2015 -0700 staging: comedi: amplc_pci230: rename 'thisboard' variables For aesthetics, rename the 'thisboard' variables to 'board'. That name is more commonly used for the boardinfo pointer in comedi drivers. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/amplc_pci230.c | 44 +++++++++++++-------------- 1 file changed, 22 insertions(+), 22 deletions(-) commit c7f53ea17d3a0b2624821ece33a0234069bcd77d Author: H Hartley Sweeten Date: Thu Jun 18 10:54:39 2015 -0700 staging: comedi: amplc_pci224: rename 'thisboard' variables For aesthetics, rename the 'thisboard' variables to 'board'. That name is more commonly used for the boardinfo pointer in comedi drivers. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/amplc_pci224.c | 42 +++++++++++++-------------- 1 file changed, 21 insertions(+), 21 deletions(-) commit dbc855ad1fd63e72026ef27c3d4d98ba2e1d4bf5 Author: H Hartley Sweeten Date: Thu Jun 18 10:54:38 2015 -0700 staging: comedi: amplc_pc236_common: rename 'thisboard' variables For aesthetics, rename the 'thisboard' variables to 'board'. That name is more commonly used for the boardinfo pointer in comedi drivers. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/amplc_pc236_common.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 7f5ad0181621b08f68e2d4b772f410aec580642b Author: Hari Prasath Gujulan Elango Date: Thu Jun 18 13:27:28 2015 +0000 staging: dgnc: free memory allocated The memory allocated in dgnc_tty_register() for two objects is not freed anywhere.This patch addresses this by freeing the memory in dgnc_tty_uninit. Signed-off-by: Hari Prasath Gujulan Elango Signed-off-by: Greg Kroah-Hartman drivers/staging/dgnc/dgnc_tty.c | 4 ++++ 1 file changed, 4 insertions(+) commit d8a76d669a09b49305988c7c27b09eb1fbe4b85a Author: Hari Prasath Gujulan Elango Date: Thu Jun 18 13:43:28 2015 +0000 staging: dgnc: fix typo in comments secion This patch fixes a typo in the comments section as warned by checkpatch.pl Signed-off-by: Hari Prasath Gujulan Elango Signed-off-by: Greg Kroah-Hartman drivers/staging/dgnc/dgnc_driver.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 81b726619d55226d1592e398ea398406a1aa1b1b Author: Hari Prasath Gujulan Elango Date: Thu Jun 18 06:03:17 2015 +0000 staging: wlan-ng: Remove ununsed debug print & associated macro This patch removed a undefined macro and debug prints associated with it. Signed-off-by: Hari Prasath Gujulan Elango Signed-off-by: Greg Kroah-Hartman drivers/staging/wlan-ng/p80211wep.c | 14 -------------- 1 file changed, 14 deletions(-) commit 7c192dcafeb1b91cd7fbac89ca2dbbfc2ca44bb2 Author: Hari Prasath Gujulan Elango Date: Thu Jun 18 11:28:55 2015 +0000 staging: lustre: lnet: selftest: use min_t in place of min This patch silences the checkpatch warning 'min() should probably be min_t' Signed-off-by: Hari Prasath Gujulan Elango Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lnet/selftest/rpc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit dfd6e2a243e6d0a40501e7780998718a09840272 Author: Peter Karlsson Date: Thu Jun 18 15:51:01 2015 +0200 staging: ft1000-usb: Removed CVS keyword marker Fix checkpatch warnings about CVS keyword marker. Signed-off-by: Peter Karlsson Signed-off-by: Greg Kroah-Hartman drivers/staging/ft1000/ft1000-usb/ft1000_usb.c | 2 -- 1 file changed, 2 deletions(-) commit c99efd4fecc663d52b96c1f95e14bf6b952cbc6d Author: Jimmy Devine Date: Thu Jun 18 12:13:21 2015 -0600 staging: rtl8188eu: remove space before open square bracket '[' Fixes checkpatch error regarding the space before open square bracket '[' Signed-off-by: Jimmy Devine Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/include/odm.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit eb0f4271ca1809dca130a7b3e2bbeb1059b75c5c Author: Greg Donald Date: Thu Jun 18 15:06:56 2015 -0500 drivers: staging: sm750fb: Fix "'foo * bar' should be 'foo *bar'" errors Fix checkpatch.pl "'foo * bar' should be 'foo *bar'" errors Signed-off-by: Greg Donald Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/ddk750_chip.c | 2 +- drivers/staging/sm750fb/ddk750_help.c | 4 ++-- drivers/staging/sm750fb/ddk750_help.h | 2 +- drivers/staging/sm750fb/ddk750_mode.c | 4 ++-- drivers/staging/sm750fb/sm750.c | 2 +- drivers/staging/sm750fb/sm750.h | 26 +++++++++++++------------- drivers/staging/sm750fb/sm750_accel.c | 16 ++++++++-------- drivers/staging/sm750fb/sm750_accel.h | 8 ++++---- drivers/staging/sm750fb/sm750_cursor.c | 14 +++++++------- drivers/staging/sm750fb/sm750_cursor.h | 14 +++++++------- drivers/staging/sm750fb/sm750_hw.c | 18 +++++++++--------- 11 files changed, 55 insertions(+), 55 deletions(-) commit 78cb7a38c6d704194ad5e45b469256d2b1c763e5 Author: Hari Prasath Gujulan Elango Date: Thu Jun 18 12:56:54 2015 +0000 staging: sm750fb: convert pr_err to pr_info This patch modifies few debug prints from pr_err() to pr_info() as they fall under that category. Signed-off-by: Hari Prasath Gujulan Elango Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/sm750.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 60cb1e20c4732c2704d7a5a2b9fd291b6b548671 Author: Chaehyun Lim Date: Fri Jun 19 09:06:28 2015 +0900 staging: wilc1000: fix checkpatch warning Fix warning founded by checkpatch.pl. WARNING: __func__ should be used instead of gcc specific __FUNCTION__ Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 2 +- drivers/staging/wilc1000/linux_wlan_common.h | 16 ++++++++-------- drivers/staging/wilc1000/wilc_platform.h | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) commit 9eac3a158957f98da59af51542753365986c898f Author: Chaehyun Lim Date: Thu Jun 18 22:08:51 2015 +0900 staging: wilc1000: remove unnecessary typecast in #define macro Remove unnecessary typecast in #define macro. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 78 +++++++++++++++---------------- 1 file changed, 39 insertions(+), 39 deletions(-) commit e54d5b75c8d63cff971f167e371d18cb89b350d7 Author: Chaehyun Lim Date: Thu Jun 18 22:08:50 2015 +0900 staging: wilc1000: align #define macro Align #define macro. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 93 +++++++++++++++---------------- 1 file changed, 46 insertions(+), 47 deletions(-) commit 0256b5406e3a87a776df9dd262a7dace0f49e7b0 Author: Abdul Hussain Date: Thu Jun 18 12:37:00 2015 +0000 Staging: wilc1000: NULL check before some freeing functions is not needed This patch removes check before freeing the memory since kfree(NULL) is safe Signed-off-by: Abdul Hussain Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan_spi.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 61500fbd77eee4a27c59e3c930f03f5191db9da1 Author: Chaehyun Lim Date: Thu Jun 18 14:46:05 2015 +0900 staging: wilc1000: remove commented code Remove the commented codes using #if 0. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/coreconfigurator.c | 30 --- drivers/staging/wilc1000/coreconfigurator.h | 300 -------------------------- drivers/staging/wilc1000/host_interface.c | 76 ------- drivers/staging/wilc1000/host_interface.h | 65 +----- drivers/staging/wilc1000/linux_mon.c | 45 ---- drivers/staging/wilc1000/linux_wlan.c | 22 -- drivers/staging/wilc1000/wilc_sdio.c | 44 ---- drivers/staging/wilc1000/wilc_spi.c | 70 +----- drivers/staging/wilc1000/wilc_wfi_netdevice.c | 9 - drivers/staging/wilc1000/wilc_wlan.c | 31 --- drivers/staging/wilc1000/wilc_wlan_cfg.c | 26 --- drivers/staging/wilc1000/wilc_wlan_if.h | 22 -- 12 files changed, 2 insertions(+), 738 deletions(-) commit 26093813eabebcd3c9967f58a2581df45e91c2fe Merge: 0dc499a 4ed9fb3 Author: Dave Airlie Date: Fri Jun 19 12:01:39 2015 +1000 Merge tag 'drm-intel-next-fixes-2015-06-18' of git://anongit.freedesktop.org/drm-intel into drm-next i915 fixes for stuff in next * tag 'drm-intel-next-fixes-2015-06-18' of git://anongit.freedesktop.org/drm-intel: drm/i915: Don't set enabled value of all CRTCs when restoring the mode drm/i915: Don't update staged config during force restore modesets drm/i915: Don't check modeset state in the hw state force restore path drm/i915: Add SCRATCH1 and ROW_CHICKEN3 to the register whitelist. drm/i915: Extend the parser to check register writes against a mask/value pair. drm/i915: Fix command parser to validate multiple register access with the same command. drm/i915: Don't skip request retirement if the active list is empty commit aefc7ec27c318faa58e7e92dbe85217b2bab7a0e Author: Rob Herring Date: Thu Jun 18 20:35:46 2015 -0500 dt/fdt: add empty versions of early_init_dt_*_memory_arch With the addition of commit 0166dc1 (of: make CONFIG_OF user selectable), architectures which don't enable memblock and don't have their own early_init_dt_*_memory_arch implementations will break when CONFIG_OF is enabled. Really, we should have better separation of CONFIG_OF and CONFIG_OF_EARLY_FLATTREE, but doing that will require quite a bit of shuffling of architecture code. That will have to wait for another day. Signed-off-by: Rob Herring Cc: Grant Likely drivers/of/fdt.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit a8269d36a880c016f202260420d9abe6ef061ace Merge: b306976 fac69a2 47b98c7 Author: Rafael J. Wysocki Date: Fri Jun 19 01:18:43 2015 +0200 Merge branches 'pnp' and 'pm-tools' * pnp: PNP / ACPI: use unsigned int in pnpacpi_encode_resources() PNP / ACPI: use u8 instead of int in acpi_resource_extended_irq context * pm-tools: cpupower: mperf monitor: fix output in MAX_FREQ_SYSFS mode commit b306976ef783188c2723ab2492fd3c0169bc8585 Merge: 0d85fd4 f17f4ad a4630c6 6f066d4 Author: Rafael J. Wysocki Date: Fri Jun 19 01:18:30 2015 +0200 Merge branches 'pm-clk', 'pm-domains' and 'powercap' * pm-clk: PM / clk: Print acquired clock name in addition to con_id PM / clk: Fix clock error check in __pm_clk_add() drivers: sh: remove boilerplate code and use USE_PM_CLK_RUNTIME_OPS arm: davinci: remove boilerplate code and use USE_PM_CLK_RUNTIME_OPS arm: omap1: remove boilerplate code and use USE_PM_CLK_RUNTIME_OPS arm: keystone: remove boilerplate code and use USE_PM_CLK_RUNTIME_OPS PM / clock_ops: Provide default runtime ops to users * pm-domains: PM / Domains: Skip timings during syscore suspend/resume * powercap: powercap / RAPL: Support Knights Landing powercap / RAPL: Floor frequency setting in Atom SoC commit 0d85fd42114ce97f209f3deb91ea0ac992c56013 Merge: ab232ba db874c7 Author: Rafael J. Wysocki Date: Fri Jun 19 01:18:14 2015 +0200 Merge branch 'pm-wakeirq' * pm-wakeirq: PM / wakeirq: Fix typo in prototype for dev_pm_set_dedicated_wake_irq PM / Wakeirq: Add automated device wake IRQ handling commit ab232ba57043ca85b55ffd7125f3f2c2d7e732ec Merge: 8ced678 32e8d68 56f487c Author: Rafael J. Wysocki Date: Fri Jun 19 01:18:02 2015 +0200 Merge branches 'pm-sleep' and 'pm-runtime' * pm-sleep: PM / sleep: trace_device_pm_callback coverage in dpm_prepare/complete PM / wakeup: add a dummy wakeup_source to record statistics PM / sleep: Make suspend-to-idle-specific code depend on CONFIG_SUSPEND PM / sleep: Return -EBUSY from suspend_enter() on wakeup detection PM / tick: Add tracepoints for suspend-to-idle diagnostics PM / sleep: Fix symbol name in a comment in kernel/power/main.c leds / PM: fix hibernation on arm when gpio-led used with CPU led trigger ARM: omap-device: use SET_NOIRQ_SYSTEM_SLEEP_PM_OPS bus: omap_l3_noc: add missed callbacks for suspend-to-disk PM / sleep: Add macro to define common noirq system PM callbacks PM / sleep: Refine diagnostic messages in enter_state() PM / wakeup: validate wakeup source before activating it. * pm-runtime: PM / Runtime: Update last_busy in rpm_resume PM / runtime: add note about re-calling in during device probe() commit 8ced6789da03649d21656dd908c2930a003fffc4 Merge: 4a3004e 07949bf Author: Rafael J. Wysocki Date: Fri Jun 19 01:17:50 2015 +0200 Merge branch 'pm-cpufreq' * pm-cpufreq: (37 commits) cpufreq: dt: allow driver to boot automatically intel_pstate: Fix overflow in busy_scaled due to long delay cpufreq: qoriq: optimize the CPU frequency switching time cpufreq: gx-suspmod: Fix two typos in two comments cpufreq: nforce2: Fix typo in comment to function nforce2_init() cpufreq: governor: Serialize governor callbacks cpufreq: governor: split cpufreq_governor_dbs() cpufreq: governor: register notifier from cs_init() cpufreq: Remove cpufreq_update_policy() cpufreq: Restart governor as soon as possible cpufreq: Call cpufreq_policy_put_kobj() from cpufreq_policy_free() cpufreq: Initialize policy->kobj while allocating policy cpufreq: Stop migrating sysfs files on hotplug cpufreq: Don't allow updating inactive policies from sysfs intel_pstate: Force setting target pstate when required intel_pstate: change some inconsistent debug information cpufreq: Track cpu managing sysfs kobjects separately cpufreq: Fix for typos in two comments cpufreq: Mark policy->governor = NULL for inactive policies cpufreq: Manage governor usage history with 'policy->last_governor' ... commit 4a3004e5e651baf15f0452da9200dd5c3bda5907 Merge: e193cd1 7d51d979 Author: Rafael J. Wysocki Date: Fri Jun 19 01:17:44 2015 +0200 Merge branch 'pm-cpuidle' * pm-cpuidle: cpuidle: Do not use CPUIDLE_DRIVER_STATE_START in cpuidle.c cpuidle: Select a different state on tick_broadcast_enter() failures sched / idle: Call default_idle_call() from cpuidle_enter_state() sched / idle: Call idle_set_state() from cpuidle_enter_state() cpuidle: Fix the kerneldoc comment for cpuidle_enter_state() sched / idle: Eliminate the "reflect" check from cpuidle_idle_call() cpuidle: Check the sign of index in cpuidle_reflect() sched / idle: Move the default idle call code to a separate function commit e193cd15ae98817ad82cc8bad61a200ac561e98c Merge: 4def8a3 e144cd0 Author: Rafael J. Wysocki Date: Fri Jun 19 01:17:35 2015 +0200 Merge branch 'acpi-cca' * acpi-cca: ufs: fix TRUE and FALSE re-define build error megaraid_sas: fix TRUE and FALSE re-define build error amd-xgbe: Unify coherency checking logic with device_dma_is_coherent() crypto: ccp - Unify coherency checking logic with device_dma_is_coherent() device property: Introduces device_dma_is_coherent() arm64 : Introduce support for ACPI _CCA object ACPI / scan: Parse _CCA and setup device coherency commit 4def8a360fc6119e09916708cca0977a1495ccf4 Merge: 763d949 e7d024c Author: Rafael J. Wysocki Date: Fri Jun 19 01:17:26 2015 +0200 Merge branch 'acpi-video' * acpi-video: (38 commits) ACPI / video: Make acpi_video_unregister_backlight() private acpi-video-detect: Remove old API toshiba-acpi: Port to new backlight interface selection API thinkpad-acpi: Port to new backlight interface selection API sony-laptop: Port to new backlight interface selection API samsung-laptop: Port to new backlight interface selection API msi-wmi: Port to new backlight interface selection API msi-laptop: Port to new backlight interface selection API intel-oaktrail: Port to new backlight interface selection API ideapad-laptop: Port to new backlight interface selection API fujitsu-laptop: Port to new backlight interface selection API eeepc-laptop: Port to new backlight interface selection API dell-wmi: Port to new backlight interface selection API dell-laptop: Port to new backlight interface selection API compal-laptop: Port to new backlight interface selection API asus-wmi: Port to new backlight interface selection API asus-laptop: Port to new backlight interface selection API apple-gmux: Port to new backlight interface selection API acer-wmi: Port to new backlight interface selection API ACPI / video: Fix acpi_video _register vs _unregister_backlight race ... commit 763d949581ed1d610c5e09081b36d9beea8e4abc Merge: 0cddc58 048d16d b034668 Author: Rafael J. Wysocki Date: Fri Jun 19 01:17:18 2015 +0200 Merge branches 'acpi-battery' and 'acpi-processor' * acpi-battery: ACPI / battery: mark DMI table as __initconst ACPI / battery: minor tweaks to acpi_battery_units() ACPI / battery: constify the offset tables ACPI / battery: ensure acpi_battery_init() has finish ACPI / battery: drop useless return statements ACPI / battery: abort initialization earlier if acpi_disabled * acpi-processor: ACPI / processor: constify DMI system id table ACPI / processor: Introduce invalid_phys_cpuid() ACPI / processor: return specific error instead of -1 ACPI / processor: remove phys_id in acpi_processor_get_info() ACPI / processor: remove cpu_index in acpi_processor_get_info() Xen / ACPI / processor: Remove unneeded NULL check Xen / ACPI / processor: use invalid_logical_cpuid() ACPI / processor: Introduce invalid_logical_cpuid() commit 0cddc580d4b508699761c67e9db7d21709dc2b06 Merge: feabe39 44f610c b2687cd 69cda6e Author: Rafael J. Wysocki Date: Fri Jun 19 01:17:03 2015 +0200 Merge branches 'acpi-ac', 'acpi-soc' and 'acpi-assorted' * acpi-ac: ACPI / AC: constify DMI system id table * acpi-soc: ACPI / LPSS: constify device descriptors * acpi-assorted: ACPI / HED: constify ACPI device ids commit feabe392ed8d15896e3a0900ffc75810fe0c0b65 Merge: 4f1fd90 66db383 Author: Rafael J. Wysocki Date: Fri Jun 19 01:16:45 2015 +0200 Merge branch 'acpi-ec' * acpi-ec: ACPI / EC: Fix a code coverity issue when QR_EC transactions are failed. ACPI / EC: Fix EC_FLAGS_QUERY_HANDSHAKE platforms using new event clearing timing. ACPI / EC: Add event clearing variation support. ACPI / EC: Convert event handling work queue into loop style. ACPI / EC: Cleanup transaction state transition. ACPI / EC: Remove non-root-caused busy polling quirks. ACPI / EC: Add module params for polling modes. ACPI / EC: Fix and clean up register access guarding logics. ACPI / EC: Remove irqs_disabled() check. ACPI / EC: Remove storming threashold enlarging quirk. ACPI / EC: Update acpi_ec_is_gpe_raised() with new GPE status flag. commit 4f1fd900c2bd0bf36832d489745b5f78847a1534 Merge: 3a5cf05 3d56402 20f3416 2bad7e2 302ebef Author: Rafael J. Wysocki Date: Fri Jun 19 01:16:21 2015 +0200 Merge branches 'acpi-pm', 'acpi-apei', 'acpi-osl' and 'acpi-pci' * acpi-pm: ACPI / PM: Add missing pm_generic_complete() invocation ACPI / PM: Turn power resources on and off in the right order during resume ACPI / PM: Rework device power management to follow ACPI 6 ACPI / PM: Drop stale comment from acpi_power_transition() * acpi-apei: GHES: Make NMI handler have a single reader GHES: Elliminate double-loop in the NMI handler GHES: Panic right after detection GHES: Carve out the panic functionality GHES: Carve out error queueing in a separate function * acpi-osl: ACPI / osl: use same type for acpi_predefined_names values as in definition * acpi-pci: ACPI / PCI: remove stale list_head in struct acpi_prt_entry commit 3a5cf05adf90af5a40db22de5e8d22c8b3864a8c Merge: 9695a98 b064a8f 0f1b414 0519ade bbf55ae 1a147ed Author: Rafael J. Wysocki Date: Fri Jun 19 01:15:49 2015 +0200 Merge branches 'acpi-init', 'acpi-pnp', 'acpi-scan', 'acpi-proc' and 'acpi-doc' * acpi-init: ACPI / init: Switch over platform to the ACPI mode later * acpi-pnp: ACPI / PNP: Avoid conflicting resource reservations * acpi-scan: ACPI / scan: constify ACPI device ids ACPI / property: Define a symbol for PRP0001 ACPI / property: Refine consistency check for PRP0001 * acpi-proc: ACPI / proc: make ACPI_PROCFS_POWER X86 only * acpi-doc: ACPI: Constify ACPI device IDs in documentation ACPI / enumeration: Document the rules regarding the PRP0001 device ID ACPI: fix kernel-parameters ordering in Documentation commit 9695a9805284f09fefb5f8c53ba72d0c77748dbe Merge: 0f57d86 f3b6ced Author: Rafael J. Wysocki Date: Fri Jun 19 01:15:19 2015 +0200 Merge branch 'acpica' * acpica: (22 commits) ACPICA: Fix for ill-formed GUID strings for NFIT tables. ACPICA: acpihelp: Update for new NFIT table GUIDs. ACPICA: Update version to 20150515. ACPICA: ACPI 6.0: Add support for NFIT table. ACPICA: acpi_help: Add option to display all known/supported ACPI tables. ACPICA: iASL/disassembler - fix possible fault for -e option. ACPICA: ACPI 6.0: Add changes for DRTM table. ACPICA: ACPI 6.0: Add support for IORT table. ACPICA: ACPI 6.0: Add ACPI_SUB_PTR(). ACPICA: ACPI 6.0: Add changes for MADT table. ACPICA: Hardware: Fix a resource leak issue in acpi_hw_build_pci_list(). ACPICA: Dispatcher: Fix a resource leak issue in acpi_ds_auto_serialize_method(). ACPICA: ACPI 6.0: Add changes for LPIT table. ACPICA: ACPI 6.0: Add changes for FADT table. ACPICA: ACPI 6.0: Add support for WPBT table. ACPICA: iASL: Enhance detection of non-ascii or corrupted input files. ACPICA: Parser: Move a couple externals to the proper header. ACPICA: ACPI 6.0: Add support for XENV table. ACPICA: ACPI 6.0: Add support for new predefined names. ACPICA: ACPI 6.0: Add support for STAO table. ... commit 1a147ed75cc94cb2eca3bfa5ca00e069574090fd Author: Mathias Krause Date: Sat Jun 13 14:27:00 2015 +0200 ACPI: Constify ACPI device IDs in documentation ACPI device ID arrays normally don't need to be written to as they're only ever read. The common usage -- embedding pointers to acpi_device_id arrays in other data structures -- reference them as 'const', e.g. as in struct acpi_driver / acpi_scan_handler / device_driver. The matchers are taking const pointers, too. So it's only natural, to propose using const arrays. Change the documentation accordingly. Signed-off-by: Mathias Krause Signed-off-by: Rafael J. Wysocki Documentation/acpi/enumeration.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit eb3486646187fe2010786e1d092a903343fbcc64 Author: Rafael J. Wysocki Date: Mon Jun 15 13:48:00 2015 +0200 ACPI / enumeration: Document the rules regarding the PRP0001 device ID Document how the ACPI device enumeration code uses the special PRP0001 device ID. Signed-off-by: Rafael J. Wysocki Acked-by: Mika Westerberg Reviewed-by: Hanjun Guo Reviewed-by: Darren Hart Documentation/acpi/enumeration.txt | 51 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) commit e7d024c00a4a7b617390db863bdd5b9dc65821f7 Author: Hans de Goede Date: Tue Jun 16 16:28:13 2015 +0200 ACPI / video: Make acpi_video_unregister_backlight() private acpi_video_unregister_backlight() is now only used by video_detect.c which is part of the same acpi_video module as video.c, make acpi_video_unregister_backlight() private to this module. Signed-off-by: Hans de Goede Acked-by: Darren Hart Signed-off-by: Rafael J. Wysocki drivers/acpi/acpi_video.c | 1 - drivers/acpi/video_detect.c | 2 ++ include/acpi/video.h | 2 -- 3 files changed, 2 insertions(+), 3 deletions(-) commit d0a530ba424ec1be7630f7fce2db9860b9429b8f Author: Hans de Goede Date: Tue Jun 16 16:28:12 2015 +0200 acpi-video-detect: Remove old API Remove the old backlight interface selection API now that all drivers have been ported to the new API. Signed-off-by: Hans de Goede Acked-by: Darren Hart Signed-off-by: Rafael J. Wysocki drivers/acpi/video_detect.c | 31 ------------------------------- include/linux/acpi.h | 19 ------------------- 2 files changed, 50 deletions(-) commit 234b7cf88dd42eab08c99afa455669f035e8d861 Author: Hans de Goede Date: Tue Jun 16 16:28:11 2015 +0200 toshiba-acpi: Port to new backlight interface selection API Port the backlight selection logic to the new backlight interface selection API. Signed-off-by: Hans de Goede Acked-by: Azael Avalos Acked-by: Darren Hart Signed-off-by: Rafael J. Wysocki drivers/platform/x86/toshiba_acpi.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit b33c6ce5f2987184dcc444d05d0f5a7227ce431e Author: Hans de Goede Date: Tue Jun 16 16:28:10 2015 +0200 thinkpad-acpi: Port to new backlight interface selection API Port the backlight selection logic to the new backlight interface selection API. Signed-off-by: Hans de Goede Acked-by: Henrique de Moraes Holschuh Acked-by: Darren Hart Signed-off-by: Rafael J. Wysocki drivers/platform/x86/thinkpad_acpi.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 56d5c34a94dfb652592ba654ea236fb133e3686b Author: Hans de Goede Date: Tue Jun 16 16:28:09 2015 +0200 sony-laptop: Port to new backlight interface selection API Port the backlight selection logic to the new backlight interface selection API. This commit also removes various obsolete pr_xxx messages related to backlight interface selection. These are obsolete because they assume there is only a vendor or acpi backlight driver and no other choice. Also they are not necessary, if the user wants to know which backlight interfaces are registered a simple "ls /sys/class/backlight" suffices. Signed-off-by: Hans de Goede Acked-by: Mattia Dongili Acked-by: Darren Hart Signed-off-by: Rafael J. Wysocki drivers/platform/x86/sony-laptop.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit 6c072299b6253d0737db87c7c18328cb376d96bb Author: Hans de Goede Date: Tue Jun 16 16:28:08 2015 +0200 samsung-laptop: Port to new backlight interface selection API Port the backlight selection logic to the new backlight interface selection API. This commit also removes various obsolete pr_xxx messages related to backlight interface selection. These are obsolete because they assume there is only a vendor or acpi backlight driver and no other choice. Also they are not necessary, if the user wants to know which backlight interfaces are registered a simple "ls /sys/class/backlight" suffices. Signed-off-by: Hans de Goede Acked-by: Darren Hart Signed-off-by: Rafael J. Wysocki drivers/platform/x86/samsung-laptop.c | 27 ++++----------------------- 1 file changed, 4 insertions(+), 23 deletions(-) commit 33a4edfba6bcc0482bf9013352c371816c6437c2 Author: Hans de Goede Date: Tue Jun 16 16:28:07 2015 +0200 msi-wmi: Port to new backlight interface selection API Port the backlight selection logic to the new backlight interface selection API. Signed-off-by: Hans de Goede Acked-by: Darren Hart Signed-off-by: Rafael J. Wysocki drivers/platform/x86/msi-wmi.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 2cc6c717799f0ab3e8309fa9e43757f0c1906f14 Author: Hans de Goede Date: Tue Jun 16 16:28:06 2015 +0200 msi-laptop: Port to new backlight interface selection API Port the backlight selection logic to the new backlight interface selection API. This commit also removes various obsolete pr_xxx messages related to backlight interface selection. These are obsolete because they assume there is only a vendor or acpi backlight driver and no other choice. Also they are not necessary, if the user wants to know which backlight interfaces are registered a simple "ls /sys/class/backlight" suffices. Signed-off-by: Hans de Goede Acked-by: Darren Hart Signed-off-by: Rafael J. Wysocki drivers/platform/x86/msi-laptop.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 76d0a35100b932fc8b6e006ce5697ad88028c0c3 Author: Hans de Goede Date: Tue Jun 16 16:28:05 2015 +0200 intel-oaktrail: Port to new backlight interface selection API Port the backlight selection logic to the new backlight interface selection API. This commit also removes various obsolete pr_xxx messages related to backlight interface selection. These are obsolete because they assume there is only a vendor or acpi backlight driver and no other choice. Also they are not necessary, if the user wants to know which backlight interfaces are registered a simple "ls /sys/class/backlight" suffices. Signed-off-by: Hans de Goede Acked-by: Darren Hart Signed-off-by: Rafael J. Wysocki drivers/platform/x86/intel_oaktrail.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 26bff5f099722fa7c38796a3ccd0e880cf1a524a Author: Hans de Goede Date: Tue Jun 16 16:28:04 2015 +0200 ideapad-laptop: Port to new backlight interface selection API Port the backlight selection logic to the new backlight interface selection API. Signed-off-by: Hans de Goede Acked-by: Darren Hart Signed-off-by: Rafael J. Wysocki drivers/platform/x86/ideapad-laptop.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 413226f7224bbab3e554a014c4f8c27077c2b5d4 Author: Hans de Goede Date: Tue Jun 16 16:28:03 2015 +0200 fujitsu-laptop: Port to new backlight interface selection API Port the backlight selection logic to the new backlight interface selection API. Signed-off-by: Hans de Goede Acked-by: Jonathan Woithe Acked-by: Darren Hart Signed-off-by: Rafael J. Wysocki drivers/platform/x86/fujitsu-laptop.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 21db4b1d24aa8c7a80ddd48bd4505b134dbf4aac Author: Hans de Goede Date: Tue Jun 16 16:28:02 2015 +0200 eeepc-laptop: Port to new backlight interface selection API Port the backlight selection logic to the new backlight interface selection API. This commit also removes various obsolete pr_xxx messages related to backlight interface selection. These are obsolete because they assume there is only a vendor or acpi backlight driver and no other choice. Also they are not necessary, if the user wants to know which backlight interfaces are registered a simple "ls /sys/class/backlight" suffices. Signed-off-by: Hans de Goede Acked-by: Darren Hart Signed-off-by: Rafael J. Wysocki drivers/platform/x86/eeepc-laptop.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 18bd769623df7d24dc623900a60a1396bc8a4301 Author: Hans de Goede Date: Tue Jun 16 16:28:01 2015 +0200 dell-wmi: Port to new backlight interface selection API Port the backlight selection logic to the new backlight interface selection API. Signed-off-by: Hans de Goede Acked-by: Pali Rohár Acked-by: Darren Hart Signed-off-by: Rafael J. Wysocki drivers/platform/x86/dell-wmi.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit ee4cfe28ca2969e3ba5a178aa085ea2fe3617e4d Author: Hans de Goede Date: Tue Jun 16 16:28:00 2015 +0200 dell-laptop: Port to new backlight interface selection API Port the backlight selection logic to the new backlight interface selection API. Signed-off-by: Hans de Goede Acked-by: Pali Rohár Acked-by: Darren Hart Signed-off-by: Rafael J. Wysocki drivers/platform/x86/dell-laptop.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit 358fefe78e8b5602bc9a790647674f4645d9c8ef Author: Hans de Goede Date: Tue Jun 16 16:27:59 2015 +0200 compal-laptop: Port to new backlight interface selection API Port the backlight selection logic to the new backlight interface selection API. Signed-off-by: Hans de Goede Acked-by: Darren Hart Signed-off-by: Rafael J. Wysocki drivers/platform/x86/compal-laptop.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 62c4aa1a8d9ec3e7e9391ca46f8abf040499544e Author: Hans de Goede Date: Tue Jun 16 16:27:58 2015 +0200 asus-wmi: Port to new backlight interface selection API Port the backlight selection logic to the new backlight interface selection API. This commit also removes various obsolete pr_xxx messages related to backlight interface selection. These are obsolete because they assume there is only a vendor or acpi backlight driver and no other choice. Also they are not necessary, if the user wants to know which backlight interfaces are registered a simple "ls /sys/class/backlight" suffices. Signed-off-by: Hans de Goede Acked-by: Darren Hart Signed-off-by: Rafael J. Wysocki drivers/platform/x86/asus-wmi.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) commit 8b9e6b70a14aa52f9de95e8e0fac543a8ae1a1c3 Author: Hans de Goede Date: Tue Jun 16 16:27:57 2015 +0200 asus-laptop: Port to new backlight interface selection API Port the backlight selection logic to the new backlight interface selection API. This commit also removes various obsolete pr_xxx messages related to backlight interface selection. These are obsolete because they assume there is only a vendor or acpi backlight driver and no other choice. Also they are not necessary, if the user wants to know which backlight interfaces are registered a simple "ls /sys/class/backlight" suffices. Signed-off-by: Hans de Goede Acked-by: Darren Hart Signed-off-by: Rafael J. Wysocki drivers/platform/x86/asus-laptop.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 86ac056a30ef6af933c33f096c8275dc4977244c Author: Hans de Goede Date: Tue Jun 16 16:27:56 2015 +0200 apple-gmux: Port to new backlight interface selection API Port the backlight selection logic to the new backlight interface selection API. Signed-off-by: Hans de Goede Acked-by: Darren Hart Signed-off-by: Rafael J. Wysocki drivers/platform/x86/apple-gmux.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 9a65f0df6392a02c08637e01860f3263f60736d3 Author: Hans de Goede Date: Tue Jun 16 16:27:55 2015 +0200 acer-wmi: Port to new backlight interface selection API Port the backlight selection logic to the new backlight interface selection API. This commit also removes various obsolete pr_xxx messages related to backlight interface selection. These are obsolete because they assume there is only a vendor or acpi backlight driver and no other choice. Also they are not necessary, if the user wants to know which backlight interfaces are registered a simple "ls /sys/class/backlight" suffices. Signed-off-by: Hans de Goede Reviewed-by: Lee, Chun-Yi Acked-by: Darren Hart Signed-off-by: Rafael J. Wysocki drivers/platform/x86/acer-wmi.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) commit 2a8b18e9fb650ab5c637005a7506045c46ed2b0e Author: Hans de Goede Date: Tue Jun 16 16:27:54 2015 +0200 ACPI / video: Fix acpi_video _register vs _unregister_backlight race It is possible for a native backlight driver to load while acpi_video_register is running, which may lead to acpi_video_unregister_backlight being called while acpi_video_register is running and the 2 racing against eachother. The register_count variable protects against this, but not in a thread safe manner, this commit adds locking to make this thread safe. Signed-off-by: Hans de Goede Acked-by: Darren Hart Signed-off-by: Rafael J. Wysocki drivers/acpi/acpi_video.c | 43 +++++++++++++++++++++---------------------- 1 file changed, 21 insertions(+), 22 deletions(-) commit 7ee33baabcae765e1eda73b988a62fe102c0ce76 Author: Hans de Goede Date: Tue Jun 16 16:27:53 2015 +0200 ACPI / video: Move dmi_check_system from module_init to acpi_video_register When builtin there is no guarantee in which order module_init functions are run, so acpi_video_register() may get called from the i915 driver (if it is also builtin) before acpi_video_init() gets called, resulting in the dmi quirks not yet being parsed. This commit moves the dmi_check_system() call to acpi_video_register(), so that we can be sure the dmi quirks have always been applied before probing. Signed-off-by: Hans de Goede Acked-by: Darren Hart Signed-off-by: Rafael J. Wysocki drivers/acpi/acpi_video.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 93a291dfaf9c328ca5a9cea1733af1a128efe890 Author: Hans de Goede Date: Tue Jun 16 16:27:52 2015 +0200 ACPI / video: Move backlight notifier to video_detect.c Move the unregistering of the acpi backlight interface on registering of a native backlight from video.c to video_detect.c where it belongs. Note this removes support for re-registering the acpi backlight interface when the native interface goes away. In practice this never happens and it needlessly complicates the code. Signed-off-by: Hans de Goede Acked-by: Darren Hart Signed-off-by: Rafael J. Wysocki drivers/acpi/acpi_video.c | 59 ++------------------------------------------- drivers/acpi/video_detect.c | 27 +++++++++++++++++++++ 2 files changed, 29 insertions(+), 57 deletions(-) commit 3bd6bce36975f571cb47fa9d0aac9e06f94f4028 Author: Hans de Goede Date: Tue Jun 16 16:27:51 2015 +0200 ACPI / video: Port to new backlight interface selection API Most of the patch is moving the dmi quirks for forcing use of the acpi-video / the native backlight interface to video_detect.c. What remains is a nice cleanup. Signed-off-by: Hans de Goede Acked-by: Darren Hart Signed-off-by: Rafael J. Wysocki drivers/acpi/acpi_video.c | 172 ++------------------------------------------ drivers/acpi/video_detect.c | 130 +++++++++++++++++++++++++++++++++ include/acpi/video.h | 2 - 3 files changed, 137 insertions(+), 167 deletions(-) commit da882e5acbebd2aa8bb076521a5c5c9c70be324e Author: Hans de Goede Date: Tue Jun 16 16:27:50 2015 +0200 drm: i915: Port to new backlight interface selection API This results in a nice cleanup, as we can replace the complicated logic from should_ignore_backlight_request() with a simple check for the type being native. Signed-off-by: Hans de Goede Acked-by: Darren Hart Signed-off-by: Rafael J. Wysocki drivers/gpu/drm/i915/intel_opregion.c | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) commit 5fd677b75d2eefde6b8e3f510a5c2d4540eba1fe Author: Hans de Goede Date: Tue Jun 16 16:27:49 2015 +0200 acpi-video-detect: Unregister acpi_video backlight when dmi quirks are added Make acpi_video_set_dmi_backlight_type() call acpi_video_unregister_backlight() when the new dmi quirk results in the desired backlight interface being of a type other then acpi_backlight_video. This avoid the need for the second if in the following construction which is currently found in many platform/x86 drivers: if (prefer_vendor_quirk) acpi_video_dmi_promote_vendor(); if (!acpi_video_backlight_support()) acpi_video_unregister_backlight() This second if-block will be removed from the platform drivers as part of their conversion to the new backlight interface selection API. Signed-off-by: Hans de Goede Acked-by: Darren Hart Signed-off-by: Rafael J. Wysocki drivers/acpi/video_detect.c | 3 +++ 1 file changed, 3 insertions(+) commit 87521e16a7abbf3fa337f56cb4d1e18247f15e8a Author: Hans de Goede Date: Tue Jun 16 16:27:48 2015 +0200 acpi-video-detect: Rewrite backlight interface selection logic Currently we have 2 kernel commandline options + dmi-quirks in 3 places all interacting (in interesting ways) to select which which backlight interface to use. On the commandline we've acpi_backlight=[video|vendor] and video.use_native_backlight=[0|1]. DMI quirks we have in acpi/video-detect.c, acpi/video.c and drivers/platform/x86/*.c . This commit is the first step to cleaning this up, replacing the 2 cmdline options with just acpi_backlight=[video|vendor|native|none], and adds a new API to video_detect.c to reflect this. Follow up commits will also move other related code, like unregistering the acpi_video backlight interface if it was registered before other drivers which take priority over it are loaded, to video_detect.c where this logic really belongs. Signed-off-by: Hans de Goede Acked-by: Darren Hart Signed-off-by: Rafael J. Wysocki drivers/acpi/video_detect.c | 171 +++++++++++++++++++++----------------------- include/acpi/video.h | 17 +++++ 2 files changed, 100 insertions(+), 88 deletions(-) commit 14ca7a47d0ab2a7a35faab130e6d9682f8ff1a46 Author: Hans de Goede Date: Tue Jun 16 16:27:47 2015 +0200 acpi-video-detect: video: Make video_detect code part of the video module This is a preparation patch for the backlight interface selection logic cleanup, there are 2 reasons to not always build the video_detect code into the kernel: 1) In order for the video_detect.c to also deal with / select native backlight interfaces on win8 systems, instead of doing this in video.c where it does not belong, video_detect.c needs to call into the backlight class code. Which cannot be done if it is builtin and the blacklight class is not. 2) Currently all the platform/x86 drivers which have quirks to prefer the vendor driver over acpi-video call acpi_video_unregister_backlight() to remove the acpi-video backlight interface, this logic really belongs in video_detect.c, which will cause video_detect.c to depend on symbols of video.c and video.c already depends on video_detect.c symbols, so they really need to be a single module. Note that this commits make 2 changes so as to maintain 100% kernel commandline compatibility: 1) The __setup call for the acpi_backlight= handling is moved to acpi/util.c as __setup may only be used by code which is alwasy builtin 2) video.c is renamed to acpi_video.c so that it can be combined with video_detect.c into video.ko This commit also makes changes to drivers/platform/x86/Kconfig to ensure that drivers which use acpi_video_backlight_support() from video_detect.c, will not be built-in when acpi_video is not built in. This also changes some "select" uses to "depends on" to avoid dependency loops. Signed-off-by: Hans de Goede Acked-by: Darren Hart Signed-off-by: Rafael J. Wysocki drivers/acpi/Makefile | 5 +- drivers/acpi/acpi_video.c | 2275 ++++++++++++++++++++++++++++++++++++++++++ drivers/acpi/utils.c | 15 + drivers/acpi/video.c | 2275 ------------------------------------------ drivers/acpi/video_detect.c | 35 +- drivers/platform/x86/Kconfig | 21 +- include/linux/acpi.h | 1 + 7 files changed, 2321 insertions(+), 2306 deletions(-) commit a87878bafa1f82c20eddaf2d23780b194c35ccf5 Author: Hans de Goede Date: Tue Jun 16 16:27:46 2015 +0200 acpi-video-detect: Move acpi_osi_is_win8 to osl.c acpi_osi_is_win8 needs access to acpi_gbl_osi_data which is not exported, so move it to osl.c. Alternatively we could export acpi_gbl_osi_data but that seems undesirable. This allows video_detect.c to be build as a module, besides that acpi_osi_is_win8() is something which does not really belong in video_detect.c in the first place. Signed-off-by: Hans de Goede Acked-by: Darren Hart Signed-off-by: Rafael J. Wysocki drivers/acpi/internal.h | 7 ------- drivers/acpi/osl.c | 6 ++++++ drivers/acpi/video_detect.c | 6 ------ include/linux/acpi.h | 1 + 4 files changed, 7 insertions(+), 13 deletions(-) commit adc8bb8e0fe005ed29366e6c4621652481878214 Author: Hans de Goede Date: Tue Jun 16 16:27:45 2015 +0200 acpi-video-detect: Move acpi_is_video_device() to acpi/scan.c This allows video_detect.c to be build as a module, this is a preparation patch for the backlight interface selection logic cleanup. Note this commit also causes acpi_is_video_device() to always be build indepedent of CONFIG_ACPI_VIDEO, as there is no reason to make its building depend on CONFIG_ACPI_VIDEO. Signed-off-by: Hans de Goede Acked-by: Darren Hart Signed-off-by: Rafael J. Wysocki drivers/acpi/scan.c | 56 ++++++++++++++++++++++++++++++++++++++++++ drivers/acpi/video_detect.c | 60 --------------------------------------------- include/linux/acpi.h | 8 ++---- 3 files changed, 58 insertions(+), 66 deletions(-) commit fb105d964226ce4834b45d7e3d9f339aa716ed70 Author: Hans de Goede Date: Tue Jun 16 16:27:44 2015 +0200 acpi-video-detect: Make acpi_video_get_capabilities a private function acpi_video_get_capabilities() is only used inside video_detect.c so make it static. While at it also remove the prototype for the non existent acpi_video_display_switch_support function from acpi.h Signed-off-by: Hans de Goede Acked-by: Darren Hart Signed-off-by: Rafael J. Wysocki drivers/acpi/video_detect.c | 3 +-- include/linux/acpi.h | 12 ------------ 2 files changed, 1 insertion(+), 14 deletions(-) commit 7f3b62cf945dc3e57fbd693022a5651206ce85b0 Author: Hans de Goede Date: Tue Jun 16 16:27:43 2015 +0200 acpi-video-detect: Remove the unused acpi_video_dmi_demote_vendor() function Remove the now unused acpi_video_dmi_demote_vendor() function, this was never a proper counter part of acpi_video_dmi_promote_vendor() since the calls to acpi_video_dmi_promote_vendor() are not counted. Signed-off-by: Hans de Goede Acked-by: Darren Hart Signed-off-by: Rafael J. Wysocki drivers/acpi/video_detect.c | 9 --------- include/linux/acpi.h | 5 ----- 2 files changed, 14 deletions(-) commit a341b8aba13c39fc76aea29fe13ea851df313bd6 Author: Hans de Goede Date: Tue Jun 16 16:27:42 2015 +0200 apple-gmux: Stop using acpi_video_dmi_demote_vendor() acpi_video_dmi_demote_vendor() is going away as part of the cleanup of the code for determinging which backlight class driver(s) to register. The call to acpi_video_dmi_demote_vendor() was meant to undo the call to acpi_video_dmi_promote_vendor() when the gmux device is removed, this is questionable though since the promote call sets a flag, not a counter, so the demote call may undo a promoto done elsewhere. Moreover in practice this is a nop since the gmux device is never removed, and the flag is only checked when acpi/video.ko gets loaded, so even if the user manually removes apple-gmux the demote call is still a nop as video.ko will already have loaded by this time. Also note that none of the other users of acpi_video_dmi_promote_vendor() use acpi_video_dmi_demote_vendor(). If we ever encounter a system with a gmux where the acpi-video interface should be used, then the proper fix would be to dmi-blacklist the gmux driver on that system. Signed-off-by: Hans de Goede Acked-by: Darren Hart Signed-off-by: Rafael J. Wysocki drivers/platform/x86/apple-gmux.c | 1 - 1 file changed, 1 deletion(-) commit acf5493c3c36553ada7bc9b6f9569b0a12f9e552 Author: Hans de Goede Date: Tue Jun 16 16:27:41 2015 +0200 samsung-laptop: Use acpi_video_unregister_backlight instead of acpi_video_unregister acpi_video_unregister() not only unregisters the acpi-video backlight interface but also unregisters the acpi video bus event listener, causing e.g. brightness hotkey presses to no longer generate keypress events. The unregistering of the acpi video bus event listener usually is undesirable, which by itself is a good reason to switch to acpi_video_unregister_backlight(). Another problem with using acpi_video_unregister() rather then using acpi_video_unregister_backlight() is that on systems with an intel video opregion (most systems) and a broken_acpi_video quirk, whether or not the acpi video bus event listener actually gets unregistered depends on module load ordering: Scenario a: 1) acpi/video.ko gets loaded (*), does not do acpi_video_register as there is an intel opregion. 2) intel.ko gets loaded, calls acpi_video_register() which registers both the listener and the acpi backlight interface 3) samsung-laptop.ko gets loaded, calls acpi_video_unregister() causing both the listener and the acpi backlight interface to unregister Scenario b: 1) acpi/video.ko gets loaded (*), does not do acpi_video_register as there is an intel opregion. 2) samsung-laptop.ko gets loaded, calls acpi_video_dmi_promote_vendor(), calls acpi_video_unregister(), which is a nop since acpi_video_register has not yet been called 2) intel.ko gets loaded, calls acpi_video_register() which registers the listener, but does not register the acpi backlight interface due to the call to the preciding call to acpi_video_dmi_promote_vendor() *) acpi/video.ko always loads first as both other modules depend on it. So we end up with or without an acpi video bus event listener depending on module load ordering, not good. Switching to using acpi_video_unregister_backlight() means that independ of ordering we will always have an acpi video bus event listener fixing this. Note that this commit means that systems without an intel video opregion, and systems which were hitting scenario a wrt module load ordering, are now getting an acpi video bus event listener while before they were not! On some systems this may cause the brightness hotkeys to start generating keypresses while before they were not (good), while on other systems this may cause the brightness hotkeys to generate multiple keypress events for a single press (not so good). Since on most systems the acpi video bus is the canonical source for brightness events I believe that the latter case will needs to be handled on a case by case basis by filtering out the duplicate keypresses at the other source for them. Cc: Corentin Chary Signed-off-by: Hans de Goede Acked-by: Darren Hart Signed-off-by: Rafael J. Wysocki drivers/platform/x86/samsung-laptop.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 4c27febf8e51857e8981be060a31e1c5c0f9a2e7 Author: Hans de Goede Date: Tue Jun 16 16:27:40 2015 +0200 asus-wmi: Use acpi_video_unregister_backlight instead of acpi_video_unregister acpi_video_unregister() not only unregisters the acpi-video backlight interface but also unregisters the acpi video bus event listener, causing e.g. brightness hotkey presses to no longer generate keypress events. The unregistering of the acpi video bus event listener usually is undesirable, which by itself is a good reason to switch to acpi_video_unregister_backlight(). Another problem with using acpi_video_unregister() rather then using acpi_video_unregister_backlight() is that on systems with an intel video opregion (most systems) and a wmi_backlight_power quirk, whether or not the acpi video bus event listener actually gets unregistered depends on module load ordering: Scenario a: 1) acpi/video.ko gets loaded (*), does not do acpi_video_register as there is an intel opregion. 2) intel.ko gets loaded, calls acpi_video_register() which registers both the listener and the acpi backlight interface 3) asus-wmi.ko gets loaded, calls acpi_video_unregister() causing both the listener and the acpi backlight interface to unregister Scenario b: 1) acpi/video.ko gets loaded (*), does not do acpi_video_register as there is an intel opregion. 2) asus-wmi.ko gets loaded, calls acpi_video_dmi_promote_vendor(), calls acpi_video_unregister(), which is a nop since acpi_video_register has not yet been called 2) intel.ko gets loaded, calls acpi_video_register() which registers the listener, but does not register the acpi backlight interface due to the call to the preciding call to acpi_video_dmi_promote_vendor() *) acpi/video.ko always loads first as both other modules depend on it. So we end up with or without an acpi video bus event listener depending on module load ordering, not good. Switching to using acpi_video_unregister_backlight() means that independ of ordering we will always have an acpi video bus event listener fixing this. Note that this commit means that systems without an intel video opregion, and systems which were hitting scenario a wrt module load ordering, are now getting an acpi video bus event listener while before they were not! On some systems this may cause the brightness hotkeys to start generating keypresses while before they were not (good), while on other systems this may cause the brightness hotkeys to generate multiple keypress events for a single press (not so good). Since on most systems the acpi video bus is the canonical source for brightness events I believe that the latter case will needs to be handled on a case by case basis by filtering out the duplicate keypresses at the other source for them. Cc: Corentin Chary Signed-off-by: Hans de Goede Acked-by: Darren Hart Signed-off-by: Rafael J. Wysocki drivers/platform/x86/asus-wmi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 10bffa65b99fb1747103e0337f47da55885929be Author: Hans de Goede Date: Tue Jun 16 16:27:39 2015 +0200 apple_gmux: Use acpi_video_unregister_backlight instead of acpi_video_unregister acpi_video_unregister() not only unregisters the acpi-video backlight interface but also unregisters the acpi video bus event listener, causing e.g. brightness hotkey presses to no longer generate keypress events. The unregistering of the acpi video bus event listener usually is undesirable, which by itself is a good reason to switch to acpi_video_unregister_backlight(). Another problem with using acpi_video_unregister() rather then using acpi_video_unregister_backlight() is that on systems with an intel video opregion (most systems) whether or not the acpi video bus event listener actually gets unregistered depends on module load ordering: Scenario a: 1) acpi/video.ko gets loaded (*), does not do acpi_video_register as there is an intel opregion. 2) intel.ko gets loaded, calls acpi_video_register() which registers both the listener and the acpi backlight interface 3) apple-gmux.ko gets loaded, calls acpi_video_unregister() causing both the listener and the acpi backlight interface to unregister Scenario b: 1) acpi/video.ko gets loaded (*), does not do acpi_video_register as there is an intel opregion. 2) apple-gmux.ko gets loaded, calls acpi_video_dmi_promote_vendor(), calls acpi_video_unregister(), which is a nop since acpi_video_register has not yet been called 2) intel.ko gets loaded, calls acpi_video_register() which registers the listener, but does not register the acpi backlight interface due to the call to the preciding call to acpi_video_dmi_promote_vendor() *) acpi/video.ko always loads first as both other modules depend on it. So we end up with or without an acpi video bus event listener depending on module load ordering, not good. Switching to using acpi_video_unregister_backlight() means that independ of ordering we will always have an acpi video bus event listener fixing this. Note that this commit means that systems without an intel video opregion, and systems which were hitting scenario a wrt module load ordering, are now getting an acpi video bus event listener while before they were not! On some systems this may cause the brightness hotkeys to start generating keypresses while before they were not (good), while on other systems this may cause the brightness hotkeys to generate multiple keypress events for a single press (not so good). Since on most systems the acpi video bus is the canonical source for brightness events I believe that the latter case will needs to be handled on a case by case basis by filtering out the duplicate keypresses at the other source for them. Cc: Seth Forshee Signed-off-by: Hans de Goede Acked-by: Darren Hart Signed-off-by: Rafael J. Wysocki drivers/platform/x86/apple-gmux.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 207b074f82c6790f008bfe055c37b47047eb2122 Merge: 9f3d162 ae4fa5f 4f092fe Author: Bjorn Helgaas Date: Thu Jun 18 17:56:45 2015 -0500 Merge branches 'pci/host-xgene' and 'pci/hotplug' into next * pci/host-xgene: PCI: xgene: Allow config access to Root Port even when link is down PCI: xgene: Disable Configuration Request Retry Status for v1 silicon * pci/hotplug: PCI: pciehp: Inline the "handle event" functions into the ISR PCI: pciehp: Rename queue_interrupt_event() to pciehp_queue_interrupt_event() PCI: pciehp: Make queue_interrupt_event() void PCI: pciehp: Clean up debug logging commit ddfb157444e3cdb6da18ea759730b4b4af65d3d9 Author: Joachim Eastwood Date: Thu May 28 22:31:46 2015 +0200 doc: dt: add documentation for lpc1850-ccu clk driver Add DT binding documentation for lpc1850-ccu clk driver. Signed-off-by: Joachim Eastwood Signed-off-by: Michael Turquette .../devicetree/bindings/clock/lpc1850-ccu.txt | 77 ++++++++++++++++++++++ 1 file changed, 77 insertions(+) commit 472cd304a36e0a1b21045ddc802ffb16a1cbac65 Author: Joachim Eastwood Date: Thu May 28 22:31:45 2015 +0200 clk: add lpc18xx ccu clk driver Add driver for NXP LPC18xx/43xx Clock Control Unit (CCU). The CCU provides fine grained gating of most clocks present in the SoC. Signed-off-by: Joachim Eastwood Signed-off-by: Michael Turquette drivers/clk/nxp/Makefile | 1 + drivers/clk/nxp/clk-lpc18xx-ccu.c | 293 ++++++++++++++++++++++++++++++++ include/dt-bindings/clock/lpc18xx-ccu.h | 74 ++++++++ 3 files changed, 368 insertions(+) commit 668c45df36939fbf0a3578ad97f547c8db86a7a0 Author: Joachim Eastwood Date: Thu May 28 22:31:44 2015 +0200 doc: dt: add documentation for lpc1850-cgu clk driver Add DT binding documentation for lpc1850-cgu driver. Signed-off-by: Joachim Eastwood Signed-off-by: Michael Turquette .../devicetree/bindings/clock/lpc1850-cgu.txt | 131 +++++++++++++++++++++ 1 file changed, 131 insertions(+) commit b04e0b8fd5443b61c04e6103f16c5d1e1821e295 Author: Joachim Eastwood Date: Thu May 28 22:31:43 2015 +0200 clk: add lpc18xx cgu clk driver Add driver for NXP LPC18xx/43xx Clock Generation Unit (CGU). The CGU contains several clock generators and output stages that route the clocks either directly to peripherals or to a Clock Control Unit (CCU). Signed-off-by: Joachim Eastwood Signed-off-by: Michael Turquette drivers/clk/Makefile | 1 + drivers/clk/nxp/Makefile | 1 + drivers/clk/nxp/clk-lpc18xx-cgu.c | 635 ++++++++++++++++++++++++++++++++ include/dt-bindings/clock/lpc18xx-cgu.h | 41 +++ 4 files changed, 678 insertions(+) commit 02fdfd708fd252a778709beb6c65d5e7360341ac Author: Murali Karicheri Date: Fri May 29 12:04:12 2015 -0400 clk: keystone: add support for post divider register for main pll Main PLL controller has post divider bits in a separate register in pll controller. Use the value from this register instead of fixed divider when available. Signed-off-by: Murali Karicheri Signed-off-by: Michael Turquette .../devicetree/bindings/clock/keystone-pll.txt | 8 ++++---- drivers/clk/keystone/pll.c | 20 ++++++++++++++++++-- 2 files changed, 22 insertions(+), 6 deletions(-) commit cbce1a686700595de65ee363b9b3283ae85d8fc5 Author: Peter Zijlstra Date: Thu Jun 11 14:46:54 2015 +0200 sched,lockdep: Employ lock pinning Employ the new lockdep lock pinning annotation to ensure no 'accidental' lock-breaks happen with rq->lock. Signed-off-by: Peter Zijlstra (Intel) Cc: ktkhai@parallels.com Cc: rostedt@goodmis.org Cc: juri.lelli@gmail.com Cc: pang.xunlei@linaro.org Cc: oleg@redhat.com Cc: wanpeng.li@linux.intel.com Cc: umgwanakikbuti@gmail.com Link: http://lkml.kernel.org/r/20150611124744.003233193@infradead.org Signed-off-by: Thomas Gleixner kernel/sched/core.c | 42 +++++++++++++++++++++++++++++++++++++++--- kernel/sched/deadline.c | 8 ++++++++ kernel/sched/fair.c | 11 ++++++++--- kernel/sched/rt.c | 8 ++++++++ kernel/sched/sched.h | 10 ++++++++-- 5 files changed, 71 insertions(+), 8 deletions(-) commit a24fc60d63da2b0b31bf7c876d12a51ed4b778bd Author: Peter Zijlstra Date: Thu Jun 11 14:46:53 2015 +0200 lockdep: Implement lock pinning Add a lockdep annotation that WARNs if you 'accidentially' unlock a lock. This is especially helpful for code with callbacks, where the upper layer assumes a lock remains taken but a lower layer thinks it maybe can drop and reacquire the lock. By unwittingly breaking up the lock, races can be introduced. Lock pinning is a lockdep annotation that helps with this, when you lockdep_pin_lock() a held lock, any unlock without a lockdep_unpin_lock() will produce a WARN. Think of this as a relative of lockdep_assert_held(), except you don't only assert its held now, but ensure it stays held until you release your assertion. RFC: a possible alternative API would be something like: int cookie = lockdep_pin_lock(&foo); ... lockdep_unpin_lock(&foo, cookie); Where we pick a random number for the pin_count; this makes it impossible to sneak a lock break in without also passing the right cookie along. I've not done this because it ends up generating code for !LOCKDEP, esp. if you need to pass the cookie around for some reason. Signed-off-by: Peter Zijlstra (Intel) Cc: ktkhai@parallels.com Cc: rostedt@goodmis.org Cc: juri.lelli@gmail.com Cc: pang.xunlei@linaro.org Cc: oleg@redhat.com Cc: wanpeng.li@linux.intel.com Cc: umgwanakikbuti@gmail.com Link: http://lkml.kernel.org/r/20150611124743.906731065@infradead.org Signed-off-by: Thomas Gleixner include/linux/lockdep.h | 10 ++++++ kernel/locking/lockdep.c | 80 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 90 insertions(+) commit e0f56fd7066f35ae3765d080e036fa676a9d4128 Author: Peter Zijlstra Date: Thu Jun 11 14:46:52 2015 +0200 lockdep: Simplify lock_release() lock_release() takes this nested argument that's mostly pointless these days, remove the implementation but leave the argument a rudiment for now. Signed-off-by: Peter Zijlstra (Intel) Cc: ktkhai@parallels.com Cc: rostedt@goodmis.org Cc: juri.lelli@gmail.com Cc: pang.xunlei@linaro.org Cc: oleg@redhat.com Cc: wanpeng.li@linux.intel.com Cc: umgwanakikbuti@gmail.com Link: http://lkml.kernel.org/r/20150611124743.840411606@infradead.org Signed-off-by: Thomas Gleixner kernel/locking/lockdep.c | 119 +++++++---------------------------------------- 1 file changed, 18 insertions(+), 101 deletions(-) commit 5e16bbc2fb4053755705da5dd3557bbc0e5ccef6 Author: Peter Zijlstra Date: Thu Jun 11 14:46:51 2015 +0200 sched: Streamline the task migration locking a little The whole migrate_task{,s}() locking seems a little shaky, there's a lot of dropping an require happening. Pull the locking up into the callers as far as possible to streamline the lot. Signed-off-by: Peter Zijlstra (Intel) Cc: ktkhai@parallels.com Cc: rostedt@goodmis.org Cc: juri.lelli@gmail.com Cc: pang.xunlei@linaro.org Cc: oleg@redhat.com Cc: wanpeng.li@linux.intel.com Cc: umgwanakikbuti@gmail.com Link: http://lkml.kernel.org/r/20150611124743.755256708@infradead.org Signed-off-by: Thomas Gleixner kernel/sched/core.c | 76 ++++++++++++++++++++++++----------------------------- 1 file changed, 34 insertions(+), 42 deletions(-) commit 5cc389bcee088b72c8c34a01d596412cab4f3f78 Author: Peter Zijlstra Date: Thu Jun 11 14:46:50 2015 +0200 sched: Move code around In preparation to reworking set_cpus_allowed_ptr() move some code around. This also removes some superfluous #ifdefs and adds comments to some #endifs. text data bss dec hex filename 12211532 1738144 1081344 15031020 e55aec defconfig-build/vmlinux.pre 12211532 1738144 1081344 15031020 e55aec defconfig-build/vmlinux.post Signed-off-by: Peter Zijlstra (Intel) Cc: ktkhai@parallels.com Cc: rostedt@goodmis.org Cc: juri.lelli@gmail.com Cc: pang.xunlei@linaro.org Cc: oleg@redhat.com Cc: wanpeng.li@linux.intel.com Cc: umgwanakikbuti@gmail.com Link: http://lkml.kernel.org/r/20150611124743.662086684@infradead.org Signed-off-by: Thomas Gleixner kernel/sched/core.c | 364 +++++++++++++++++++++++++--------------------------- 1 file changed, 178 insertions(+), 186 deletions(-) commit a649f237db18450de767d70f40a41d5dbd0291de Author: Peter Zijlstra Date: Thu Jun 11 14:46:49 2015 +0200 sched,dl: Fix sched class hopping CBS hole We still have a few pending issues with the deadline code, one of which is that switching between scheduling classes can 'leak' CBS state. Close the hole by retaining the current CBS state when leaving SCHED_DEADLINE and unconditionally programming the deadline timer. The timer will then reset the CBS state if the task is still !SCHED_DEADLINE by the time it hits. If the task left SCHED_DEADLINE it will not call task_dead_dl() and we'll not cancel the hrtimer, leaving us a pending timer in free space. Avoid this by giving the timer a task reference, this avoids littering the task exit path for this rather uncommon case. In order to do this, I had to move dl_task_offline_migration() below the replenishment, such that the task_rq()->lock fully covers that. While doing this, I noticed that it (was) buggy in assuming a task is enqueued and or we need to enqueue the task now. Fixing this means select_task_rq_dl() might encounter an offline rq -- look into that. As a result this kills cancel_dl_timer() which included a rq->lock break. Fixes: 40767b0dc768 ("sched/deadline: Fix deadline parameter modification handling") Cc: Wanpeng Li Cc: Luca Abeni Cc: Juri Lelli Signed-off-by: Peter Zijlstra (Intel) Cc: ktkhai@parallels.com Cc: rostedt@goodmis.org Cc: juri.lelli@gmail.com Cc: pang.xunlei@linaro.org Cc: oleg@redhat.com Cc: wanpeng.li@linux.intel.com Cc: Luca Abeni Cc: Juri Lelli Cc: umgwanakikbuti@gmail.com Link: http://lkml.kernel.org/r/20150611124743.574192138@infradead.org Signed-off-by: Thomas Gleixner kernel/sched/deadline.c | 152 +++++++++++++++++++++++++++--------------------- 1 file changed, 86 insertions(+), 66 deletions(-) commit 9916e214998a4a363b152b637245e5c958067350 Author: Peter Zijlstra Date: Thu Jun 11 14:46:43 2015 +0200 sched, dl: Convert switched_{from, to}_dl() / prio_changed_dl() to balance callbacks Remove the direct {push,pull} balancing operations from switched_{from,to}_dl() / prio_changed_dl() and use the balance callback queue. Again, err on the side of too many reschedules; since too few is a hard bug while too many is just annoying. Signed-off-by: Peter Zijlstra (Intel) Cc: ktkhai@parallels.com Cc: rostedt@goodmis.org Cc: juri.lelli@gmail.com Cc: pang.xunlei@linaro.org Cc: oleg@redhat.com Cc: wanpeng.li@linux.intel.com Cc: umgwanakikbuti@gmail.com Link: http://lkml.kernel.org/r/20150611124742.968262663@infradead.org Signed-off-by: Thomas Gleixner kernel/sched/deadline.c | 45 ++++++++++++++++++++++++--------------------- 1 file changed, 24 insertions(+), 21 deletions(-) commit 0ea60c2054fc3b0c3eb68ac4f6884f3ee78d9925 Author: Peter Zijlstra Date: Thu Jun 11 14:46:42 2015 +0200 sched,dl: Remove return value from pull_dl_task() In order to be able to use pull_dl_task() from a callback, we need to do away with the return value. Since the return value indicates if we should reschedule, do this inside the function. Since not all callers currently do this, this can increase the number of reschedules due rt balancing. Too many reschedules is not a correctness issues, too few are. Signed-off-by: Peter Zijlstra (Intel) Cc: ktkhai@parallels.com Cc: rostedt@goodmis.org Cc: juri.lelli@gmail.com Cc: pang.xunlei@linaro.org Cc: oleg@redhat.com Cc: wanpeng.li@linux.intel.com Cc: umgwanakikbuti@gmail.com Link: http://lkml.kernel.org/r/20150611124742.859398977@infradead.org Signed-off-by: Thomas Gleixner kernel/sched/deadline.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit fd7a4bed183523275279c9addbf42fce550c2e90 Author: Peter Zijlstra Date: Thu Jun 11 14:46:41 2015 +0200 sched, rt: Convert switched_{from, to}_rt() / prio_changed_rt() to balance callbacks Remove the direct {push,pull} balancing operations from switched_{from,to}_rt() / prio_changed_rt() and use the balance callback queue. Again, err on the side of too many reschedules; since too few is a hard bug while too many is just annoying. Signed-off-by: Peter Zijlstra (Intel) Cc: ktkhai@parallels.com Cc: rostedt@goodmis.org Cc: juri.lelli@gmail.com Cc: pang.xunlei@linaro.org Cc: oleg@redhat.com Cc: wanpeng.li@linux.intel.com Cc: umgwanakikbuti@gmail.com Link: http://lkml.kernel.org/r/20150611124742.766832367@infradead.org Signed-off-by: Thomas Gleixner kernel/sched/rt.c | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) commit 8046d6806247088de5725eaf8a2580b29e50ac5a Author: Peter Zijlstra Date: Thu Jun 11 14:46:40 2015 +0200 sched,rt: Remove return value from pull_rt_task() In order to be able to use pull_rt_task() from a callback, we need to do away with the return value. Since the return value indicates if we should reschedule, do this inside the function. Since not all callers currently do this, this can increase the number of reschedules due rt balancing. Too many reschedules is not a correctness issues, too few are. Signed-off-by: Peter Zijlstra (Intel) Cc: ktkhai@parallels.com Cc: rostedt@goodmis.org Cc: juri.lelli@gmail.com Cc: pang.xunlei@linaro.org Cc: oleg@redhat.com Cc: wanpeng.li@linux.intel.com Cc: umgwanakikbuti@gmail.com Link: http://lkml.kernel.org/r/20150611124742.679002000@infradead.org Signed-off-by: Thomas Gleixner kernel/sched/rt.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) commit 4c9a4bc89a9cca8128bce67d6bc8870d6b7ee0b2 Author: Peter Zijlstra Date: Thu Jun 11 14:46:39 2015 +0200 sched: Allow balance callbacks for check_class_changed() In order to remove dropping rq->lock from the switched_{to,from}()/prio_changed() sched_class methods, run the balance callbacks after it. We need to remove dropping rq->lock because its buggy, suppose using sched_setattr()/sched_setscheduler() to change a running task from FIFO to OTHER. By the time we get to switched_from_rt() the task is already enqueued on the cfs runqueues. If switched_from_rt() does pull_rt_task() and drops rq->lock, load-balancing can come in and move our task @p to another rq. The subsequent switched_to_fair() still assumes @p is on @rq and bad things will happen. By using balance callbacks we delay the load-balancing operations {rt,dl}x{push,pull} until we've done all the important work and the task is fully set up. Furthermore, the balance callbacks do not know about @p, therefore they cannot get confused like this. Reported-by: Mike Galbraith Signed-off-by: Peter Zijlstra (Intel) Cc: ktkhai@parallels.com Cc: rostedt@goodmis.org Cc: juri.lelli@gmail.com Cc: pang.xunlei@linaro.org Cc: oleg@redhat.com Cc: wanpeng.li@linux.intel.com Link: http://lkml.kernel.org/r/20150611124742.615343911@infradead.org Signed-off-by: Thomas Gleixner kernel/sched/core.c | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) commit dbc7f069b93a249340e974d6e8f55656280d8701 Author: Peter Zijlstra Date: Thu Jun 11 14:46:38 2015 +0200 sched: Use replace normalize_task() with __sched_setscheduler() Reduce duplicate logic; normalize_task() is a simplified version of __sched_setscheduler(). Parametrize the difference and collapse. This reduces the amount of check_class_changed() sites. Signed-off-by: Peter Zijlstra (Intel) Cc: ktkhai@parallels.com Cc: rostedt@goodmis.org Cc: juri.lelli@gmail.com Cc: pang.xunlei@linaro.org Cc: oleg@redhat.com Cc: wanpeng.li@linux.intel.com Cc: umgwanakikbuti@gmail.com Link: http://lkml.kernel.org/r/20150611124742.532642391@infradead.org Signed-off-by: Thomas Gleixner kernel/sched/core.c | 65 +++++++++++++++++++---------------------------------- 1 file changed, 23 insertions(+), 42 deletions(-) commit e3fca9e7cbfb72694a21c886fcdf9f059cfded9c Author: Peter Zijlstra Date: Thu Jun 11 14:46:37 2015 +0200 sched: Replace post_schedule with a balance callback list Generalize the post_schedule() stuff into a balance callback list. This allows us to more easily use it outside of schedule() and cross sched_class. Signed-off-by: Peter Zijlstra (Intel) Cc: ktkhai@parallels.com Cc: rostedt@goodmis.org Cc: juri.lelli@gmail.com Cc: pang.xunlei@linaro.org Cc: oleg@redhat.com Cc: wanpeng.li@linux.intel.com Cc: umgwanakikbuti@gmail.com Link: http://lkml.kernel.org/r/20150611124742.424032725@infradead.org Signed-off-by: Thomas Gleixner kernel/sched/core.c | 36 ++++++++++++++++++++++++------------ kernel/sched/deadline.c | 21 +++++++++++---------- kernel/sched/rt.c | 25 +++++++++++-------------- kernel/sched/sched.h | 19 +++++++++++++++++-- 4 files changed, 63 insertions(+), 38 deletions(-) commit 624bbdfac99c50bf03dff9a0023f666b8e965627 Merge: 6f9aad0 887d9dc Author: Thomas Gleixner Date: Fri Jun 19 00:17:47 2015 +0200 Merge branch 'timers/core' into sched/hrtimers Merge sched/core and timers/core so we can apply the sched balancing patch queue, which depends on both. commit 887d9dc989eb0154492e41e7c07492edbb088ba1 Author: Peter Zijlstra Date: Thu Jun 11 14:46:48 2015 +0200 hrtimer: Allow hrtimer::function() to free the timer Currently an hrtimer callback function cannot free its own timer because __run_hrtimer() still needs to clear HRTIMER_STATE_CALLBACK after it. Freeing the timer would result in a clear use-after-free. Solve this by using a scheme similar to regular timers; track the current running timer in hrtimer_clock_base::running. Suggested-by: Thomas Gleixner Signed-off-by: Peter Zijlstra (Intel) Cc: ktkhai@parallels.com Cc: rostedt@goodmis.org Cc: juri.lelli@gmail.com Cc: pang.xunlei@linaro.org Cc: wanpeng.li@linux.intel.com Cc: Al Viro Cc: Linus Torvalds Cc: Paul McKenney Cc: Oleg Nesterov Cc: umgwanakikbuti@gmail.com Link: http://lkml.kernel.org/r/20150611124743.471563047@infradead.org Signed-off-by: Thomas Gleixner include/linux/hrtimer.h | 41 +++++++---------- kernel/time/hrtimer.c | 114 ++++++++++++++++++++++++++++++++++++++---------- 2 files changed, 107 insertions(+), 48 deletions(-) commit c4bfa3f5f906aee2e084c5b1fb15caf876338ef8 Author: Peter Zijlstra Date: Wed Jun 17 14:29:24 2015 +0200 seqcount: Introduce raw_write_seqcount_barrier() Introduce raw_write_seqcount_barrier(), a new construct that can be used to provide write barrier semantics in seqcount read loops instead of the usual consistency guarantee. raw_write_seqcount_barier() is equivalent to: raw_write_seqcount_begin(); raw_write_seqcount_end(); But avoids issueing two back-to-back smp_wmb() instructions. This construct works because the read side will 'stall' when observing odd values. This means that -- referring to the example in the comment below -- even though there is no (matching) read barrier between the loads of X and Y, we cannot observe !x && !y, because: - if we observe Y == false we must observe the first sequence increment, which makes us loop, until - we observe !(seq & 1) -- the second sequence increment -- at which time we must also observe T == true. Suggested-by: Oleg Nesterov Signed-off-by: Peter Zijlstra (Intel) Cc: umgwanakikbuti@gmail.com Cc: ktkhai@parallels.com Cc: rostedt@goodmis.org Cc: juri.lelli@gmail.com Cc: pang.xunlei@linaro.org Cc: oleg@redhat.com Cc: wanpeng.li@linux.intel.com Cc: Al Viro Cc: Linus Torvalds Cc: Paul E. McKenney Link: http://lkml.kernel.org/r/20150617122924.GP3644@twins.programming.kicks-ass.net Signed-off-by: Thomas Gleixner include/linux/seqlock.h | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) commit a7c6f571ff51cc77d90dd54968f7c5c938c43998 Author: Peter Zijlstra Date: Thu Jun 11 14:46:46 2015 +0200 seqcount: Rename write_seqcount_barrier() I'll shortly be introducing another seqcount primitive that's useful to provide ordering semantics and would like to use the write_seqcount_barrier() name for that. Seeing how there's only one user of the current primitive, lets rename it to invalidate, as that appears what its doing. While there, employ lockdep_assert_held() instead of assert_spin_locked() to not generate debug code for regular kernels. Signed-off-by: Peter Zijlstra (Intel) Cc: ktkhai@parallels.com Cc: rostedt@goodmis.org Cc: juri.lelli@gmail.com Cc: pang.xunlei@linaro.org Cc: Oleg Nesterov Cc: wanpeng.li@linux.intel.com Cc: Paul McKenney Cc: Al Viro Cc: Linus Torvalds Cc: umgwanakikbuti@gmail.com Link: http://lkml.kernel.org/r/20150611124743.279926217@infradead.org Signed-off-by: Thomas Gleixner fs/dcache.c | 16 ++++++++-------- include/linux/seqlock.h | 6 +++--- 2 files changed, 11 insertions(+), 11 deletions(-) commit 8edfb0362e8e52dec2de08fa163af01c9da2c9d0 Author: Peter Zijlstra Date: Thu Jun 11 14:46:45 2015 +0200 hrtimer: Fix hrtimer_is_queued() hole A queued hrtimer that gets restarted (hrtimer_start*() while hrtimer_is_queued()) will briefly appear as unqueued/inactive, even though the timer has always been active, we just moved it. Close this hole by preserving timer->state in hrtimer_start_range_ns()'s remove_hrtimer() call. Reported-by: Oleg Nesterov Signed-off-by: Peter Zijlstra (Intel) Cc: ktkhai@parallels.com Cc: rostedt@goodmis.org Cc: juri.lelli@gmail.com Cc: pang.xunlei@linaro.org Cc: wanpeng.li@linux.intel.com Cc: umgwanakikbuti@gmail.com Link: http://lkml.kernel.org/r/20150611124743.175989138@infradead.org Signed-off-by: Thomas Gleixner kernel/time/hrtimer.c | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) commit c04dca02bc73096435a5c36efd5ccb2171edcbe1 Author: Oleg Nesterov Date: Thu Jun 11 14:46:44 2015 +0200 hrtimer: Remove HRTIMER_STATE_MIGRATE I do not understand HRTIMER_STATE_MIGRATE. Unless I am totally confused it looks buggy and simply unneeded. migrate_hrtimer_list() sets it to keep hrtimer_active() == T, but this is not enough: this can fool, say, hrtimer_is_queued() in dequeue_signal(). Can't migrate_hrtimer_list() simply use HRTIMER_STATE_ENQUEUED? This fixes the race and we can kill STATE_MIGRATE. Signed-off-by: Oleg Nesterov Signed-off-by: Peter Zijlstra (Intel) Cc: ktkhai@parallels.com Cc: rostedt@goodmis.org Cc: juri.lelli@gmail.com Cc: pang.xunlei@linaro.org Cc: wanpeng.li@linux.intel.com Cc: umgwanakikbuti@gmail.com Link: http://lkml.kernel.org/r/20150611124743.072387650@infradead.org Signed-off-by: Thomas Gleixner include/linux/hrtimer.h | 6 +----- kernel/time/hrtimer.c | 7 ++----- 2 files changed, 3 insertions(+), 10 deletions(-) commit 91990d213ca06fdecca19e10514ebec7c89ddca9 Merge: dc627ee ec80749 Author: Michael Turquette Date: Thu Jun 18 14:17:35 2015 -0700 Merge tag 'sunxi-clocks-for-4.2' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux into clk-next Allwinner clocks additions for 4.2 One error fix, and one patch to add support for the USB clock found on the Allwinner A23 and A33 commit 4f092fec67191f899fa111a4eeffdf4368494c77 Author: Bjorn Helgaas Date: Sun Jun 14 21:35:13 2015 -0500 PCI: pciehp: Inline the "handle event" functions into the ISR The pciehp_handle_*() functions (pciehp_handle_attention_button(), etc.) only contain a line or two of useful code, so it's clumsy to put them in separate functions. All they so is add an event to a work queue, and it's clearer to see that directly in the ISR. Inline them directly into pcie_isr(). No functional change. Signed-off-by: Bjorn Helgaas Reviewed-by: Rajat Jain Acked-by: Yinghai Lu drivers/pci/hotplug/pciehp.h | 6 +-- drivers/pci/hotplug/pciehp_ctrl.c | 105 +------------------------------------- drivers/pci/hotplug/pciehp_hpc.c | 39 ++++++++++---- 3 files changed, 32 insertions(+), 118 deletions(-) commit d49eccb3c1a41b847380279d7f88a88421783f37 Author: Bjorn Helgaas Date: Sun Jun 14 21:25:02 2015 -0500 PCI: pciehp: Rename queue_interrupt_event() to pciehp_queue_interrupt_event() Rename queue_interrupt_event() to pciehp_queue_interrupt_event() so we can make it extern and call it from pcie_isr(). No functional change. Signed-off-by: Bjorn Helgaas Reviewed-by: Rajat Jain Acked-by: Yinghai Lu drivers/pci/hotplug/pciehp_ctrl.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 7d852b68badd257b2cf98c2759b9d93dac7b86a8 Author: Bjorn Helgaas Date: Sun Jun 14 21:27:52 2015 -0500 PCI: pciehp: Make queue_interrupt_event() void Nobody looks at the return value from queue_interrupt_event(), so errors were silently ignored. Convert it to a "void" function and note the error in the dmesg log. No functional change except the new message. Signed-off-by: Bjorn Helgaas Reviewed-by: Rajat Jain Acked-by: Yinghai Lu drivers/pci/hotplug/pciehp_ctrl.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) commit 6f32a8c97f11eb074027052b6b507891e5c9d8b1 Author: Laurent Pinchart Date: Wed Mar 4 09:12:20 2015 -0300 [media] MAINTAINERS: Add entry for the Renesas VSP1 driver The driver is maintained and supported, document it as such. Signed-off-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab MAINTAINERS | 9 +++++++++ 1 file changed, 9 insertions(+) commit 8a0792ef8e01f03cb43806c6a87738bde34df713 Author: Tejun Heo Date: Thu Jun 18 16:54:28 2015 -0400 cgroup: add delegation section to unified hierarchy documentation v2: Rearranged paragraphs as suggested by Johannes Weiner. Signed-off-by: Tejun Heo Acked-by: Johannes Weiner Documentation/cgroups/unified-hierarchy.txt | 102 +++++++++++++++++++++++----- 1 file changed, 84 insertions(+), 18 deletions(-) commit 187fe84067bd377047cfcb7f2bbc7c9dc12d290c Author: Tejun Heo Date: Thu Jun 18 16:54:28 2015 -0400 cgroup: require write perm on common ancestor when moving processes on the default hierarchy On traditional hierarchies, if a task has write access to "tasks" or "cgroup.procs" file of a cgroup and its euid agrees with the target, it can move the target to the cgroup; however, consider the following scenario. The owner of each cgroup is in the parentheses. R (root) - 0 (root) - 00 (user1) - 000 (user1) | \ 001 (user1) \ 1 (root) - 10 (user1) The subtrees of 00 and 10 are delegated to user1; however, while both subtrees may belong to the same user, it is clear that the two subtrees are to be isolated - they're under completely separate resource limits imposed by 0 and 1, respectively. Note that 0 and 1 aren't strictly necessary but added to ease illustrating the issue. If user1 is allowed to move processes between the two subtrees, the intention of the hierarchy - keeping a given group of processes under a subtree with certain resource restrictions while delegating management of the subtree - can be circumvented by user1. This happens because migration permission check doesn't consider the hierarchical nature of cgroups. To fix the issue, this patch adds an extra permission requirement when userland tries to migrate a process in the default hierarchy - the issuing task must have write access to the common ancestor of "cgroup.procs" file of the ancestor in addition to the destination's. Conceptually, the issuer must be able to move the target process from the source cgroup to the common ancestor of source and destination cgroups and then to the destination. As long as delegation is done in a proper top-down way, this guarantees that a delegatee can't smuggle processes across disjoint delegation domains. The next patch will add documentation on the delegation model on the default hierarchy. v2: Fixed missing !ret test. Spotted by Li Zefan. Signed-off-by: Tejun Heo Acked-by: Johannes Weiner Cc: Li Zefan include/linux/cgroup-defs.h | 1 + kernel/cgroup.c | 30 +++++++++++++++++++++++++++--- 2 files changed, 28 insertions(+), 3 deletions(-) commit dedf22e9e66ef3fbefd1b8c750d2db11b690ade3 Author: Tejun Heo Date: Thu Jun 18 16:54:28 2015 -0400 cgroup: separate out cgroup_procs_write_permission() from __cgroup_procs_write() Separate out task / process migration permission check from __cgroup_procs_write() into cgroup_procs_write_permission(). * Permission check is moved right above the actual migration and no longer performed while holding rcu_read_lock(). cgroup_procs_write_permission() uses get_task_cred() / put_cred() instead of __task_cred(). Also, !root trying to migrate kthreadd or PF_NO_SETAFFINITY tasks will now fail with -EINVAL rather than -EACCES which should be fine. * The same permission check is now performed even when moving self by specifying 0 as pid. This always succeeds so there's no functional difference. We'll add more permission checks later and the benefits of keeping both cases consistent outweigh the minute overhead of doing perm checks on pid 0 case. Signed-off-by: Tejun Heo kernel/cgroup.c | 38 ++++++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 14 deletions(-) commit fb02915f47181e824339d91f8e385fd4bd746d6a Author: Tejun Heo Date: Thu Jun 18 16:54:28 2015 -0400 kernfs: make kernfs_get_inode() public Move kernfs_get_inode() prototype from fs/kernfs/kernfs-internal.h to include/linux/kernfs.h. It obtains the matching inode for a kernfs_node. It will be used by cgroup for inode based permission checks for now but is generally useful. Signed-off-by: Tejun Heo Acked-by: Greg Kroah-Hartman fs/kernfs/kernfs-internal.h | 1 - include/linux/kernfs.h | 5 +++++ 2 files changed, 5 insertions(+), 1 deletion(-) commit dc627eea98b1e12f9ff2ecd241a34a2056fdddbd Author: Boris Brezillon Date: Tue Jun 16 17:56:19 2015 +0200 clk: mvebu: flag the crypto clk as CLK_IGNORE_UNUSED The crypto SRAM, used by the armada 370 cpuidle code to workaround a bug in the BootROM code, requires the crypto clk to be up and running. Flag the crypto clk as IGNORE_UNUSED until we add the proper infrastructure to define the crypto SRAM in the DT and reference the crypto clk in this SRAM node. Reported-by: Kevin Hilman Signed-off-by: Boris Brezillon Tested-by: Kevin Hilman Signed-off-by: Michael Turquette drivers/clk/mvebu/armada-370.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 45ab4effc3bee6f8a5cb05652b7bb895ec5b6a7a Author: Davidlohr Bueso Date: Tue May 19 10:24:55 2015 -0700 locking/rtmutex: Implement lockless top-waiter wakeup Mark the task for later wakeup after the wait_lock has been released. This way, once the next task is awoken, it will have a better chance to of finding the wait_lock free when continuing executing in __rt_mutex_slowlock() when trying to acquire the rtmutex, calling try_to_take_rt_mutex(). Upon contended scenarios, other tasks attempting take the lock may acquire it first, right after the wait_lock is released, but (a) this can also occur with the current code, as it relies on the spinlock fairness, and (b) we are dealing with the top-waiter anyway, so it will always take the lock next. Signed-off-by: Davidlohr Bueso Cc: Steven Rostedt Cc: Mike Galbraith Cc: Paul E. McKenney Cc: Sebastian Andrzej Siewior Cc: Davidlohr Bueso Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1432056298-18738-2-git-send-email-dave@stgolabs.net Signed-off-by: Thomas Gleixner kernel/locking/rtmutex.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) commit ae4fa5f4502bfa7e7f31fc99a1da41189422642d Author: Duc Dang Date: Thu Jun 18 11:45:39 2015 -0700 PCI: xgene: Allow config access to Root Port even when link is down Previously, when a Root Port's link was down, we didn't allow config access to the Root Port, which meant that if the Root Port led to an empty slot, "lspci" didn't even show the Root Port. Allow config access to Root Port even when link is down. [bhelgaas: changelog, fold in unused var fix] Suggested-by: Bjorn Helgaas Signed-off-by: Duc Dang Signed-off-by: Tanmay Inamdar Signed-off-by: Bjorn Helgaas drivers/pci/host/pci-xgene.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit d0b30c983f0e3793193a96697e59cfaaba594501 Author: Ray Jui Date: Tue May 5 11:13:23 2015 -0700 clk: cygnus: remove Cygnus dummy clock binding Remove old Cygnus dummy clock binding document, as it's replaced by Documentation/devicetree/bindings/clock/brcm,iproc-clocks.txt Signed-off-by: Ray Jui Signed-off-by: Michael Turquette .../devicetree/bindings/clock/bcm-cygnus-clock.txt | 34 ---------------------- 1 file changed, 34 deletions(-) commit 61ca7b0c7fffb968bd16394daf05b7e888e9541e Author: Ray Jui Date: Tue May 5 11:13:21 2015 -0700 clk: cygnus: add clock support for Broadcom Cygnus The Broadcom Cygnus SoC is architected under the iProc architecture. It has the following PLLs: ARMPLL, GENPLL, LCPLL0, MIPIPLL, all dervied from an onboard crystal. Cygnus also has various ASIU clocks that are derived directly from the onboard crystal. Signed-off-by: Ray Jui Reviewed-by: Scott Branden Signed-off-by: Michael Turquette drivers/clk/bcm/Makefile | 1 + drivers/clk/bcm/clk-cygnus.c | 265 +++++++++++++++++++++++++++++++++ include/dt-bindings/clock/bcm-cygnus.h | 68 +++++++++ 3 files changed, 334 insertions(+) commit 69a0b2c559099a043662f8c96214d8eab32a7153 Author: Ray Jui Date: Tue May 5 11:13:20 2015 -0700 clk: Change bcm clocks build dependency The clock code under drivers/clk/bcm now contains code for both the Broadcom mobile SoCs and the iProc SoCs. Change the the makefile dependency to be under config flag CONFIG_ARCH_BCM that's enabled for both families of SoCs Signed-off-by: Ray Jui Signed-off-by: Michael Turquette drivers/clk/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5fe225c105fd54debae1699ec0f6aef1e73376d0 Author: Ray Jui Date: Tue May 5 11:13:19 2015 -0700 clk: iproc: add initial common clock support This adds basic and generic support for various iProc PLLs and clocks including the ARMPLL, GENPLL, LCPLL, MIPIPLL, and ASIU clocks. SoCs under the iProc architecture can define their specific register offsets and clock parameters for their PLL and clock controllers. These parameters can be passed as arugments into the generic iProc PLL and clock setup functions Derived from code originally provided by Jonathan Richardson Signed-off-by: Ray Jui Reviewed-by: Scott Branden Signed-off-by: Michael Turquette drivers/clk/bcm/Kconfig | 9 + drivers/clk/bcm/Makefile | 1 + drivers/clk/bcm/clk-iproc-armpll.c | 282 +++++++++++++++ drivers/clk/bcm/clk-iproc-asiu.c | 276 ++++++++++++++ drivers/clk/bcm/clk-iproc-pll.c | 716 +++++++++++++++++++++++++++++++++++++ drivers/clk/bcm/clk-iproc.h | 178 +++++++++ 6 files changed, 1462 insertions(+) commit 476276d69d84edd4f5de9711f55c810dfc69c26c Author: Ray Jui Date: Tue May 5 11:13:18 2015 -0700 clk: iproc: define Broadcom iProc clock binding Document the device tree binding for Broadcom iProc architecture based clock controller Signed-off-by: Ray Jui Reviewed-by: Scott Branden Signed-off-by: Michael Turquette .../bindings/clock/brcm,iproc-clocks.txt | 132 +++++++++++++++++++++ 1 file changed, 132 insertions(+) commit dcb8f5c8139ef945cdfd55900fae265c4dbefc02 Author: Florian Westphal Date: Wed Jun 17 23:58:28 2015 +0200 netfilter: xtables: fix warnings on 32bit platforms On 32bit archs gcc complains due to cast from void* to u64. Add intermediate casts to long to silence these warnings. include/linux/netfilter/x_tables.h:376:10: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] include/linux/netfilter/x_tables.h:384:15: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] include/linux/netfilter/x_tables.h:391:23: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] include/linux/netfilter/x_tables.h:400:22: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] Fixes: 71ae0dff02d756e ("netfilter: xtables: use percpu rule counters") Reported-by: kbuild test robot Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso include/linux/netfilter/x_tables.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 8f481b50ea653ff0aea6accbb4bb02a15cf00531 Author: Eric W Biederman Date: Wed Jun 17 10:28:35 2015 -0500 netfilter: Remove spurios included of netfilter.h While testing my netfilter changes I noticed several files where recompiling unncessarily because they unncessarily included netfilter.h. Signed-off-by: "Eric W. Biederman" Signed-off-by: Pablo Neira Ayuso drivers/net/hamradio/bpqether.c | 1 - drivers/net/ppp/pptp.c | 2 -- drivers/net/wan/lapbether.c | 1 - net/ax25/af_ax25.c | 1 - net/ax25/ax25_in.c | 1 - net/ax25/ax25_ip.c | 1 - net/ax25/ax25_out.c | 1 - net/ax25/ax25_uid.c | 1 - net/netrom/nr_route.c | 1 - net/rose/rose_link.c | 1 - net/rose/rose_route.c | 1 - security/selinux/xfrm.c | 3 --- 12 files changed, 15 deletions(-) commit a263653ed798216c0069922d7b5237ca49436007 Author: Pablo Neira Ayuso Date: Wed Jun 17 10:28:27 2015 -0500 netfilter: don't pull include/linux/netfilter.h from netns headers This pulls the full hook netfilter definitions from all those that include net_namespace.h. Instead let's just include the bare minimum required in the new linux/netfilter_defs.h file, and use it from the netfilter netns header files. I also needed to include in.h and in6.h from linux/netfilter.h otherwise we hit this compilation error: In file included from include/linux/netfilter_defs.h:4:0, from include/net/netns/netfilter.h:4, from include/net/net_namespace.h:22, from include/linux/netdevice.h:43, from net/netfilter/nfnetlink_queue_core.c:23: include/uapi/linux/netfilter.h:76:17: error: field ‘in’ has incomplete type struct in_addr in; And also explicit include linux/netfilter.h in several spots. Signed-off-by: Pablo Neira Ayuso Signed-off-by: Eric W. Biederman include/linux/netfilter.h | 6 ++---- include/linux/netfilter_defs.h | 9 +++++++++ include/net/netns/netfilter.h | 2 +- include/net/netns/x_tables.h | 2 +- include/uapi/linux/netfilter.h | 3 ++- net/ipv6/output_core.c | 1 + 6 files changed, 16 insertions(+), 7 deletions(-) commit 10c04a8e715cca824f96bcbf4af07f5a40985357 Author: Pablo Neira Ayuso Date: Wed Jun 17 10:28:26 2015 -0500 netfilter: use forward declaration instead of including linux/proc_fs.h We don't need to pull the full definitions in that file, a simple forward declaration is enough. Moreover, include linux/procfs.h from nf_synproxy_core, otherwise this hits a compilation error due to missing declarations, ie. net/netfilter/nf_synproxy_core.c: In function ‘synproxy_proc_init’: net/netfilter/nf_synproxy_core.c:326:2: error: implicit declaration of function ‘proc_create’ [-Werror=implicit-function-declaration] if (!proc_create("synproxy", S_IRUGO, net->proc_net_stat, ^ Signed-off-by: Pablo Neira Ayuso Signed-off-by: Eric W. Biederman include/net/netns/netfilter.h | 2 +- net/netfilter/nf_synproxy_core.c | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) commit 04c52dec1473c5dff9d07cd39a68c9b23def6c42 Author: Pablo Neira Ayuso Date: Wed Jun 17 10:28:25 2015 -0500 net: include missing headers in net/net_namespace.h Include linux/idr.h and linux/skbuff.h since they are required by objects that are declared in the net structure. struct net { ... struct idr netns_ids; ... struct sk_buff_head wext_nlevents; ... Signed-off-by: Pablo Neira Ayuso Signed-off-by: Eric W. Biederman include/net/net_namespace.h | 2 ++ 1 file changed, 2 insertions(+) commit 17cebfd097fe8a21902602db5196f48e5a9d34e8 Author: Eric W. Biederman Date: Wed Jun 17 10:28:17 2015 -0500 net: sched: Simplify em_ipset_match em->net is always set and always available, use it in preference to dev_net(skb->dev). Signed-off-by: "Eric W. Biederman" Signed-off-by: Pablo Neira Ayuso net/sched/em_ipset.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 2fd1dc910b39c97549d2d42a916985795ca8a641 Author: Eric W. Biederman Date: Wed Jun 17 10:28:10 2015 -0500 netfilter: Kill unused copies of RCV_SKB_FAIL This appears to have been a dead macro in both nfnetlink_log.c and nfnetlink_queue_core.c since these pieces of code were added in 2005. Signed-off-by: "Eric W. Biederman" Signed-off-by: Pablo Neira Ayuso net/netfilter/nfnetlink_log.c | 2 -- net/netfilter/nfnetlink_queue_core.c | 2 -- 2 files changed, 4 deletions(-) commit 230ac490f7fba2aea52914c69d14b15dd515e49c Author: Pablo Neira Ayuso Date: Tue Jun 16 14:07:03 2015 +0200 netfilter: bridge: split ipv6 code into separated file Resolve compilation breakage when CONFIG_IPV6 is not set by moving the IPv6 code into a separated br_netfilter_ipv6.c file. Fixes: efb6de9b4ba0 ("netfilter: bridge: forward IPv6 fragmented packets") Reported-by: kbuild test robot Signed-off-by: Pablo Neira Ayuso include/net/netfilter/br_netfilter.h | 60 +++++++++ net/bridge/Makefile | 1 + net/bridge/br_netfilter_hooks.c | 248 ++--------------------------------- net/bridge/br_netfilter_ipv6.c | 245 ++++++++++++++++++++++++++++++++++ 4 files changed, 315 insertions(+), 239 deletions(-) commit 243918be6393f643e513a26e7882e6ae06ff7717 Author: Martin K. Petersen Date: Thu Jun 18 14:50:18 2015 -0400 libata: Do not blacklist Micron M500DC Queued TRIM got disabled on Micron M500DC drives thanks to the "Micron_M500*" pattern we had in place to accommodate the previous generation of this drive family. Tweak the blacklist entry slightly so we only disable queued TRIM for the non-DC variants of M500 drives. Signed-off-by: Martin K. Petersen Cc: stable@vger.kernel.org Signed-off-by: Tejun Heo drivers/ata/libata-core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 952497b159468477392f9b562b904da9bc76d468 Author: Johan Hedberg Date: Thu Jun 18 21:05:31 2015 +0300 Bluetooth: Fix warning of potentially uninitialized adv_instance variable Rework the logic of checking for a valid adv_instance for non-zero cp->instance values. Without this change we may get (false positive) warnings as follows: >> net/bluetooth/mgmt.c:7294:29: warning: 'adv_instance' may be used uninitialized in this function [-Wuninitialized] Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann net/bluetooth/mgmt.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit 39ecfad68f14b71b6d1917c27eb01c4936f88bda Author: Johan Hedberg Date: Thu Jun 18 20:50:08 2015 +0300 Bluetooth: Use zalloc when possible Use zallog for adv_instance allocation instead of kmalloc + memset. This also fixes the following coccinelle warning: >> net/bluetooth/hci_core.c:2693:17-24: WARNING: kzalloc should be used for adv_instance, instead of kmalloc/memset Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann net/bluetooth/hci_core.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 7e730c7f3d1f39c25cf5f7cf70c0ff4c28d7bec7 Author: Dmitry Tunin Date: Thu Jun 18 20:41:51 2015 +0300 Bluetooth: ath3k: Add support of 04ca:300d AR3012 device BugLink: https://bugs.launchpad.net/bugs/1394368 This device requires new firmware files AthrBT_0x11020100.dfu and ramps_0x11020100_40.dfu added to /lib/firmware/ar3k/ that are not included in linux-firmware yet. T: Bus=02 Lev=01 Prnt=01 Port=04 Cnt=03 Dev#= 5 Spd=12 MxCh= 0 D: Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs= 1 P: Vendor=04ca ProdID=300d Rev= 0.01 C:* #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA I:* If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=81(I) Atr=03(Int.) MxPS= 16 Ivl=1ms E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms I:* If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 0 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 0 Ivl=1ms I: If#= 1 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 9 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 9 Ivl=1ms I: If#= 1 Alt= 2 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 17 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 17 Ivl=1ms I: If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 25 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 25 Ivl=1ms I: If#= 1 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 33 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 33 Ivl=1ms I: If#= 1 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 49 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 49 Ivl=1ms Signed-off-by: Dmitry Tunin Signed-off-by: Marcel Holtmann Cc: stable@vger.kernel.org drivers/bluetooth/ath3k.c | 2 ++ drivers/bluetooth/btusb.c | 1 + 2 files changed, 3 insertions(+) commit f8d5556fa9dbf6b88e1a8fe88e47ad1b8ddb4742 Author: Hans Verkuil Date: Mon Jun 15 10:52:40 2015 -0300 [media] videodev2.h: fix copy-and-paste error in V4L2_MAP_XFER_FUNC_DEFAULT The colorspace argument was compared against a V4L2_XFER_FUNC define instead of against a V4L2_COLORSPACE define, returning the wrong answer. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab include/uapi/linux/videodev2.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 511a1b8a4c816a4e46a0d0aea9221ff3c708282e Author: Hans Verkuil Date: Mon Jun 15 04:16:32 2015 -0300 [media] Revert "[media] vb2: Push mmap_sem down to memops" This reverts commit 48b25a3a713b90988b6882d318f7c0a6bed9aabc. That commit caused two regressions. The first is a BUG: Jun 14 18:42:15 test-media kernel: [ 115.972299] BUG: unable to handle kernel NULL pointer dereference at 0000000000000100 Jun 14 18:42:15 test-media kernel: [ 115.972307] IP: [] __lock_acquire+0x2f0/0x2070 Jun 14 18:42:15 test-media kernel: [ 115.972316] PGD 0 Jun 14 18:42:15 test-media kernel: [ 115.972318] Oops: 0000 [#1] PREEMPT SMP Jun 14 18:42:15 test-media kernel: [ 115.972321] Modules linked in: vivid v4l2_dv_timings videobuf2_vmalloc videobuf2_memops videobuf2_core v4l2_common videodev media vmw_balloon vmw_vmci acpi_cpufreq processor button Jun 14 18:42:15 test-media kernel: [ 115.972333] CPU: 0 PID: 1542 Comm: v4l2-ctl Not tainted 4.1.0-rc3-test-media #1190 Jun 14 18:42:15 test-media kernel: [ 115.972336] Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 05/20/2014 Jun 14 18:42:15 test-media kernel: [ 115.972337] task: ffff880220ce4200 ti: ffff88021d16c000 task.ti: ffff88021d16c000 Jun 14 18:42:15 test-media kernel: [ 115.972339] RIP: 0010:[] [] __lock_acquire+0x2f0/0x2070 Jun 14 18:42:15 test-media kernel: [ 115.972342] RSP: 0018:ffff88021d16f9b8 EFLAGS: 00010002 Jun 14 18:42:15 test-media kernel: [ 115.972343] RAX: 0000000000000046 RBX: 0000000000000292 RCX: 0000000000000001 Jun 14 18:42:15 test-media kernel: [ 115.972345] RDX: 0000000000000000 RSI: 0000000000000001 RDI: 0000000000000100 Jun 14 18:42:15 test-media kernel: [ 115.972346] RBP: ffff88021d16fa88 R08: 0000000000000001 R09: 0000000000000000 Jun 14 18:42:15 test-media kernel: [ 115.972347] R10: 0000000000000001 R11: 0000000000000000 R12: 0000000000000001 Jun 14 18:42:15 test-media kernel: [ 115.972348] R13: ffff880220ce4200 R14: 0000000000000100 R15: 0000000000000000 Jun 14 18:42:15 test-media kernel: [ 115.972350] FS: 00007f2441e7f740(0000) GS:ffff880236e00000(0000) knlGS:0000000000000000 Jun 14 18:42:15 test-media kernel: [ 115.972351] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b Jun 14 18:42:15 test-media kernel: [ 115.972353] CR2: 0000000000000100 CR3: 0000000001e0b000 CR4: 00000000001406f0 Jun 14 18:42:15 test-media kernel: [ 115.972424] Stack: Jun 14 18:42:15 test-media kernel: [ 115.972427] ffff88021d16fa98 ffffffff810d6543 0000000000000006 0000000000000246 Jun 14 18:42:15 test-media kernel: [ 115.972431] ffff88021d16fa08 ffffffff810d532d ffff880220ce4a78 ffff880200000000 Jun 14 18:42:15 test-media kernel: [ 115.972433] ffff880200000001 0000000000000000 0000000000000001 000000000093a4a0 Jun 14 18:42:15 test-media kernel: [ 115.972436] Call Trace: Jun 14 18:42:15 test-media kernel: [ 115.972440] [] ? __lock_acquire+0xb63/0x2070 Jun 14 18:42:15 test-media kernel: [ 115.972443] [] ? mark_held_locks+0x6d/0xa0 Jun 14 18:42:15 test-media kernel: [ 115.972445] [] ? __lock_is_held+0x58/0x80 Jun 14 18:42:15 test-media kernel: [ 115.972447] [] lock_acquire+0x6c/0xa0 Jun 14 18:42:15 test-media kernel: [ 115.972452] [] ? vb2_vmalloc_put_userptr+0x36/0x110 [videobuf2_vmalloc] Jun 14 18:42:15 test-media kernel: [ 115.972458] [] down_read+0x42/0x60 Jun 14 18:42:15 test-media kernel: [ 115.972460] [] ? vb2_vmalloc_put_userptr+0x36/0x110 [videobuf2_vmalloc] Jun 14 18:42:15 test-media kernel: [ 115.972463] [] ? mutex_lock_nested+0x2b1/0x560 Jun 14 18:42:15 test-media kernel: [ 115.972467] [] ? vb2_queue_release+0x25/0x40 [videobuf2_core] Jun 14 18:42:15 test-media kernel: [ 115.972469] [] vb2_vmalloc_put_userptr+0x36/0x110 [videobuf2_vmalloc] Jun 14 18:42:15 test-media kernel: [ 115.972472] [] __vb2_queue_free+0x146/0x5e0 [videobuf2_core] Jun 14 18:42:15 test-media kernel: [ 115.972475] [] vb2_queue_release+0x33/0x40 [videobuf2_core] Jun 14 18:42:15 test-media kernel: [ 115.972478] [] _vb2_fop_release+0x95/0xb0 [videobuf2_core] Jun 14 18:42:15 test-media kernel: [ 115.972481] [] vb2_fop_release+0x29/0x50 [videobuf2_core] Jun 14 18:42:15 test-media kernel: [ 115.972485] [] vivid_fop_release+0x92/0x230 [vivid] Jun 14 18:42:15 test-media kernel: [ 115.972491] [] v4l2_release+0x30/0x80 [videodev] Jun 14 18:42:15 test-media kernel: [ 115.972496] [] __fput+0xe5/0x200 Jun 14 18:42:15 test-media kernel: [ 115.972498] [] ____fput+0x9/0x10 Jun 14 18:42:15 test-media kernel: [ 115.972501] [] task_work_run+0xc4/0xf0 Jun 14 18:42:15 test-media kernel: [ 115.972504] [] do_exit+0x3a0/0xaf0 Jun 14 18:42:15 test-media kernel: [ 115.972507] [] ? _raw_spin_unlock_irq+0x2b/0x60 Jun 14 18:42:15 test-media kernel: [ 115.972509] [] do_group_exit+0x4f/0xe0 Jun 14 18:42:15 test-media kernel: [ 115.972511] [] get_signal+0x200/0x8c0 Jun 14 18:42:15 test-media kernel: [ 115.972514] [] ? __mutex_unlock_slowpath+0xf5/0x240 Jun 14 18:42:15 test-media kernel: [ 115.972518] [] do_signal+0x23/0x820 Jun 14 18:42:15 test-media kernel: [ 115.972521] [] ? mutex_unlock+0x9/0x10 Jun 14 18:42:15 test-media kernel: [ 115.972524] [] ? v4l2_ioctl+0x78/0xf0 [videodev] Jun 14 18:42:15 test-media kernel: [ 115.972526] [] ? int_very_careful+0x5/0x46 Jun 14 18:42:15 test-media kernel: [ 115.972529] [] ? trace_hardirqs_on_caller+0x15d/0x200 Jun 14 18:42:15 test-media kernel: [ 115.972531] [] do_notify_resume+0x50/0x60 Jun 14 18:42:15 test-media kernel: [ 115.972533] [] int_signal+0x12/0x17 Jun 14 18:42:15 test-media kernel: [ 115.972534] Code: ca 81 31 c0 e8 7a e2 8c 00 e8 aa 1d 8d 00 0f 1f 44 00 00 31 db 48 81 c4 a8 00 00 00 89 d8 5b 41 5c 41 5d 41 5e 41 5f 5d c3 66 90 <49> 81 3e 40 4e 02 82 b8 00 00 00 00 44 0f 44 e0 41 83 ff 01 0f Jun 14 18:42:15 test-media kernel: [ 115.972567] RIP [] __lock_acquire+0x2f0/0x2070 Jun 14 18:42:15 test-media kernel: [ 115.972569] RSP Jun 14 18:42:15 test-media kernel: [ 115.972570] CR2: 0000000000000100 Jun 14 18:42:15 test-media kernel: [ 115.972573] ---[ end trace 25595c2b8560cb57 ]--- Jun 14 18:42:15 test-media kernel: [ 115.972575] Fixing recursive fault but reboot is needed! This can be reproduced by loading the vivid driver and running: v4l2-ctl --stream-user and pressing Ctrl-C. You may have to try a few times, but in my experience this BUG is triggered quite quickly. The second is a possible deadlock: Jun 14 18:44:07 test-media kernel: [ 49.376650] ====================================================== Jun 14 18:44:07 test-media kernel: [ 49.376651] [ INFO: possible circular locking dependency detected ] Jun 14 18:44:07 test-media kernel: [ 49.376653] 4.1.0-rc3-test-media #1190 Not tainted Jun 14 18:44:07 test-media kernel: [ 49.376654] ------------------------------------------------------- Jun 14 18:44:07 test-media kernel: [ 49.376655] v4l2-compliance/1468 is trying to acquire lock: Jun 14 18:44:07 test-media kernel: [ 49.376657] (&mm->mmap_sem){++++++}, at: [] vb2_vmalloc_put_userptr+0x36/0x110 [videobuf2_vmalloc] Jun 14 18:44:07 test-media kernel: [ 49.376665] Jun 14 18:44:07 test-media kernel: [ 49.376665] but task is already holding lock: Jun 14 18:44:07 test-media kernel: [ 49.376666] (&q->mmap_lock){+.+...}, at: [] vb2_queue_release+0x25/0x40 [videobuf2_core] Jun 14 18:44:07 test-media kernel: [ 49.376670] Jun 14 18:44:07 test-media kernel: [ 49.376670] which lock already depends on the new lock. Jun 14 18:44:07 test-media kernel: [ 49.376670] Jun 14 18:44:07 test-media kernel: [ 49.376671] Jun 14 18:44:07 test-media kernel: [ 49.376671] the existing dependency chain (in reverse order) is: Jun 14 18:44:07 test-media kernel: [ 49.376672] Jun 14 18:44:07 test-media kernel: [ 49.376672] -> #1 (&q->mmap_lock){+.+...}: Jun 14 18:44:07 test-media kernel: [ 49.376675] [] lock_acquire+0x6c/0xa0 Jun 14 18:44:07 test-media kernel: [ 49.376682] [] mutex_lock_nested+0x5e/0x560 Jun 14 18:44:07 test-media kernel: [ 49.376689] [] vb2_mmap+0x232/0x350 [videobuf2_core] Jun 14 18:44:07 test-media kernel: [ 49.376691] [] vb2_fop_mmap+0x20/0x30 [videobuf2_core] Jun 14 18:44:07 test-media kernel: [ 49.376694] [] v4l2_mmap+0x52/0x90 [videodev] Jun 14 18:44:07 test-media kernel: [ 49.376698] [] mmap_region+0x3b3/0x5e0 Jun 14 18:44:07 test-media kernel: [ 49.376701] [] do_mmap_pgoff+0x317/0x400 Jun 14 18:44:07 test-media kernel: [ 49.376703] [] vm_mmap_pgoff+0x90/0xc0 Jun 14 18:44:07 test-media kernel: [ 49.376708] [] SyS_mmap_pgoff+0x1d7/0x280 Jun 14 18:44:07 test-media kernel: [ 49.376709] [] SyS_mmap+0x1d/0x20 Jun 14 18:44:07 test-media kernel: [ 49.376714] [] system_call_fastpath+0x12/0x76 Jun 14 18:44:07 test-media kernel: [ 49.376716] Jun 14 18:44:07 test-media kernel: [ 49.376716] -> #0 (&mm->mmap_sem){++++++}: Jun 14 18:44:07 test-media kernel: [ 49.376718] [] __lock_acquire+0x1fd3/0x2070 Jun 14 18:44:07 test-media kernel: [ 49.376720] [] lock_acquire+0x6c/0xa0 Jun 14 18:44:07 test-media kernel: [ 49.376721] [] down_read+0x42/0x60 Jun 14 18:44:07 test-media kernel: [ 49.376723] [] vb2_vmalloc_put_userptr+0x36/0x110 [videobuf2_vmalloc] Jun 14 18:44:07 test-media kernel: [ 49.376725] [] __vb2_queue_free+0x146/0x5e0 [videobuf2_core] Jun 14 18:44:07 test-media kernel: [ 49.376727] [] vb2_queue_release+0x33/0x40 [videobuf2_core] Jun 14 18:44:07 test-media kernel: [ 49.376729] [] _vb2_fop_release+0x95/0xb0 [videobuf2_core] Jun 14 18:44:07 test-media kernel: [ 49.376731] [] vb2_fop_release+0x29/0x50 [videobuf2_core] Jun 14 18:44:07 test-media kernel: [ 49.376733] [] vivid_fop_release+0x92/0x230 [vivid] Jun 14 18:44:07 test-media kernel: [ 49.376737] [] v4l2_release+0x30/0x80 [videodev] Jun 14 18:44:07 test-media kernel: [ 49.376739] [] __fput+0xe5/0x200 Jun 14 18:44:07 test-media kernel: [ 49.376744] [] ____fput+0x9/0x10 Jun 14 18:44:07 test-media kernel: [ 49.376746] [] task_work_run+0xc4/0xf0 Jun 14 18:44:07 test-media kernel: [ 49.376749] [] do_notify_resume+0x41/0x60 Jun 14 18:44:07 test-media kernel: [ 49.376752] [] int_signal+0x12/0x17 Jun 14 18:44:07 test-media kernel: [ 49.376754] Jun 14 18:44:07 test-media kernel: [ 49.376754] other info that might help us debug this: Jun 14 18:44:07 test-media kernel: [ 49.376754] Jun 14 18:44:07 test-media kernel: [ 49.376755] Possible unsafe locking scenario: Jun 14 18:44:07 test-media kernel: [ 49.376755] Jun 14 18:44:07 test-media kernel: [ 49.376756] CPU0 CPU1 Jun 14 18:44:07 test-media kernel: [ 49.376757] ---- ---- Jun 14 18:44:07 test-media kernel: [ 49.376758] lock(&q->mmap_lock); Jun 14 18:44:07 test-media kernel: [ 49.376759] lock(&mm->mmap_sem); Jun 14 18:44:07 test-media kernel: [ 49.376760] lock(&q->mmap_lock); Jun 14 18:44:07 test-media kernel: [ 49.376761] lock(&mm->mmap_sem); Jun 14 18:44:07 test-media kernel: [ 49.376763] Jun 14 18:44:07 test-media kernel: [ 49.376763] *** DEADLOCK *** Jun 14 18:44:07 test-media kernel: [ 49.376763] Jun 14 18:44:07 test-media kernel: [ 49.376764] 2 locks held by v4l2-compliance/1468: Jun 14 18:44:07 test-media kernel: [ 49.376765] #0: (&dev->mutex#3){+.+.+.}, at: [] _vb2_fop_release+0x2a/0xb0 [videobuf2_core] Jun 14 18:44:07 test-media kernel: [ 49.376770] #1: (&q->mmap_lock){+.+...}, at: [] vb2_queue_release+0x25/0x40 [videobuf2_core] Jun 14 18:44:07 test-media kernel: [ 49.376773] Jun 14 18:44:07 test-media kernel: [ 49.376773] stack backtrace: Jun 14 18:44:07 test-media kernel: [ 49.376776] CPU: 2 PID: 1468 Comm: v4l2-compliance Not tainted 4.1.0-rc3-test-media #1190 Jun 14 18:44:07 test-media kernel: [ 49.376777] Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 05/20/2014 Jun 14 18:44:07 test-media kernel: [ 49.376779] ffffffff8279e0b0 ffff88021d6f7ba8 ffffffff819a7aac 0000000000000011 Jun 14 18:44:07 test-media kernel: [ 49.376781] ffffffff8279e0b0 ffff88021d6f7bf8 ffffffff819a3964 ffff88021d6f7bd8 Jun 14 18:44:07 test-media kernel: [ 49.376783] ffff8800ac8aa100 0000000000000002 ffff8800ac8aa9a0 0000000000000002 Jun 14 18:44:07 test-media kernel: [ 49.376785] Call Trace: Jun 14 18:44:07 test-media kernel: [ 49.376788] [] dump_stack+0x4f/0x7b Jun 14 18:44:07 test-media kernel: [ 49.376792] [] print_circular_bug+0x20f/0x251 Jun 14 18:44:07 test-media kernel: [ 49.376793] [] __lock_acquire+0x1fd3/0x2070 Jun 14 18:44:07 test-media kernel: [ 49.376795] [] ? __lock_acquire+0xb63/0x2070 Jun 14 18:44:07 test-media kernel: [ 49.376797] [] ? __lock_is_held+0x58/0x80 Jun 14 18:44:07 test-media kernel: [ 49.376798] [] lock_acquire+0x6c/0xa0 Jun 14 18:44:07 test-media kernel: [ 49.376800] [] ? vb2_vmalloc_put_userptr+0x36/0x110 [videobuf2_vmalloc] Jun 14 18:44:07 test-media kernel: [ 49.376802] [] down_read+0x42/0x60 Jun 14 18:44:07 test-media kernel: [ 49.376803] [] ? vb2_vmalloc_put_userptr+0x36/0x110 [videobuf2_vmalloc] Jun 14 18:44:07 test-media kernel: [ 49.376805] [] ? mutex_lock_nested+0x2b1/0x560 Jun 14 18:44:07 test-media kernel: [ 49.376807] [] ? vb2_queue_release+0x25/0x40 [videobuf2_core] Jun 14 18:44:07 test-media kernel: [ 49.376808] [] vb2_vmalloc_put_userptr+0x36/0x110 [videobuf2_vmalloc] Jun 14 18:44:07 test-media kernel: [ 49.376810] [] ? _vb2_fop_release+0x2a/0xb0 [videobuf2_core] Jun 14 18:44:07 test-media kernel: [ 49.376812] [] __vb2_queue_free+0x146/0x5e0 [videobuf2_core] Jun 14 18:44:07 test-media kernel: [ 49.376814] [] vb2_queue_release+0x33/0x40 [videobuf2_core] Jun 14 18:44:07 test-media kernel: [ 49.376816] [] _vb2_fop_release+0x95/0xb0 [videobuf2_core] Jun 14 18:44:07 test-media kernel: [ 49.376818] [] vb2_fop_release+0x29/0x50 [videobuf2_core] Jun 14 18:44:07 test-media kernel: [ 49.376820] [] vivid_fop_release+0x92/0x230 [vivid] Jun 14 18:44:07 test-media kernel: [ 49.376822] [] v4l2_release+0x30/0x80 [videodev] Jun 14 18:44:07 test-media kernel: [ 49.376824] [] __fput+0xe5/0x200 Jun 14 18:44:07 test-media kernel: [ 49.376825] [] ? int_very_careful+0x5/0x46 Jun 14 18:44:07 test-media kernel: [ 49.376827] [] ____fput+0x9/0x10 Jun 14 18:44:07 test-media kernel: [ 49.376828] [] task_work_run+0xc4/0xf0 Jun 14 18:44:07 test-media kernel: [ 49.376830] [] do_notify_resume+0x41/0x60 Jun 14 18:44:07 test-media kernel: [ 49.376832] [] int_signal+0x12/0x17 This can be triggered by loading the vivid module with the module option 'no_error_inj=1' and running 'v4l2-compliance -s5'. Again, it may take a few attempts to trigger this but for me it happens quite quickly. Without this patch I cannot reproduce these two issues. So reverting is the best solution for now. Signed-off-by: Hans Verkuil Cc: Jan Kara Cc: Andrew Morton Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/videobuf2-core.c | 2 ++ drivers/media/v4l2-core/videobuf2-dma-contig.c | 7 ------- drivers/media/v4l2-core/videobuf2-dma-sg.c | 6 ------ drivers/media/v4l2-core/videobuf2-vmalloc.c | 6 +----- 4 files changed, 3 insertions(+), 18 deletions(-) commit 6fe2d69c07864eecf33373b0e4be401737e37fa4 Author: Mauro Carvalho Chehab Date: Thu Jun 18 14:31:38 2015 -0300 [media] mantis: cleanup a warning Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/mantis/mantis_i2c.c: In function 'mantis_i2c_init': drivers/media/pci/mantis/mantis_i2c.c:222:15: warning: variable 'intmask' set but not used [-Wunused-but-set-variable] u32 intstat, intmask; drivers/media/pci/mantis/mantis_i2c.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e7ccaf5fe1590667b3fa2f8df5c5ec9ba0dc5b85 Author: Bob Peterson Date: Fri Jun 12 13:15:54 2015 -0500 GFS2: Don't add all glocks to the lru The glocks used for resource groups often come and go hundreds of thousands of times per second. Adding them to the lru list just adds unnecessary contention for the lru_lock spin_lock, especially considering we're almost certainly going to re-use the glock and take it back off the lru microseconds later. We never want the glock shrinker to cull them anyway. This patch adds a new bit in the glops that determines which glock types get put onto the lru list and which ones don't. Signed-off-by: Bob Peterson Acked-by: Steven Whitehouse fs/gfs2/glock.c | 3 ++- fs/gfs2/glops.c | 6 ++++-- fs/gfs2/incore.h | 1 + 3 files changed, 7 insertions(+), 3 deletions(-) commit e58627d1ec840ee2d8aca5aeae9899319b58e8f0 Author: Marcel Holtmann Date: Thu Jun 18 18:58:03 2015 +0200 Bluetooth: Increment management interface revision This patch increments the management interface revision due to introduction of new multi-advertising feature and various bug fixes. Signed-off-by: Marcel Holtmann Signed-off-by: Johan Hedberg net/bluetooth/mgmt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f09f8735fb9ca113239fead45d96a48660cc2ae3 Author: Duc Dang Date: Fri Jun 12 17:35:57 2015 -0700 PCI: xgene: Disable Configuration Request Retry Status for v1 silicon When a CPU reads the Vendor and Device ID of a non-existent device, the controller should fabricate return data of 0xFFFFFFFF. Configuration Request Retry Status (CRS) is not applicable in this case because the device doesn't exist at all. The X-Gene v1 PCIe controller has a bug in the CRS logic such that when CRS is enabled, it fabricates return data of 0xFFFF0001 for this case, which means "the device exists but is not ready." That causes the PCI core to retry the read until it times out after 60 seconds. Disable CRS capability advertisement by clearing the CRS Software Visibility bit in the Root Capabilities Register. [bhelgaas: changelog and comment] Tested-by: Ian Campbell Tested-by: Marcin Juszkiewicz Signed-off-by: Duc Dang Signed-off-by: Bjorn Helgaas Acked-by: Tanmay Inamdar drivers/pci/host/pci-xgene.c | 41 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) commit 0f1b414d190724617eb1cdd615592fa8cd9d0b50 Author: Rafael J. Wysocki Date: Thu Jun 18 18:32:02 2015 +0200 ACPI / PNP: Avoid conflicting resource reservations Commit b9a5e5e18fbf "ACPI / init: Fix the ordering of acpi_reserve_resources()" overlooked the fact that the memory and/or I/O regions reserved by acpi_reserve_resources() may conflict with those reserved by the PNP "system" driver. If that conflict actually takes place, it causes the reservations made by the "system" driver to fail while before commit b9a5e5e18fbf all reservations made by it and by acpi_reserve_resources() would be successful. In turn, that allows the resources that haven't been reserved by the "system" driver to be used by others (e.g. PCI) which sometimes leads to functional problems (up to and including boot failures). To fix that issue, introduce a common resource reservation routine, acpi_reserve_region(), to be used by both acpi_reserve_resources() and the "system" driver, that will track all resources reserved by it and avoid making conflicting requests. Link: https://bugzilla.kernel.org/show_bug.cgi?id=99831 Link: http://marc.info/?t=143389402600001&r=1&w=2 Fixes: b9a5e5e18fbf "ACPI / init: Fix the ordering of acpi_reserve_resources()" Reported-by: Roland Dreier Cc: All applicable Signed-off-by: Rafael J. Wysocki drivers/acpi/osl.c | 6 +- drivers/acpi/resource.c | 160 ++++++++++++++++++++++++++++++++++++++++++++++++ drivers/pnp/system.c | 35 ++++++++--- include/linux/acpi.h | 10 +++ 4 files changed, 197 insertions(+), 14 deletions(-) commit db25be6657a56ba2d68aae1f90d796f527f65689 Author: Florian Grandel Date: Thu Jun 18 03:16:53 2015 +0200 Bluetooth: hci_core: increase max adv inst Now that all preconditions are present for actual multi-advertising, the number of allowed advertising instances can be larger than one. This patch increases the number of allowed advertising instances to 5. Signed-off-by: Florian Grandel Signed-off-by: Marcel Holtmann include/net/bluetooth/hci_core.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d4c5af8f71c8104504a83f7c71911550ebe43ac3 Author: Florian Grandel Date: Thu Jun 18 03:16:52 2015 +0200 Bluetooth: hci_core: remove obsolete adv_instance Now that the obsolete adv_instance is no longer being referenced anywhere in the code it can be removed without breaking the build. Signed-off-by: Florian Grandel Signed-off-by: Marcel Holtmann include/net/bluetooth/hci_core.h | 6 ------ net/bluetooth/hci_core.c | 1 - 2 files changed, 7 deletions(-) commit eb6f95f9c38de4cf64600c1ad29fc8e02224b155 Author: Florian Grandel Date: Thu Jun 18 03:16:51 2015 +0200 Bluetooth: mgmt: multi-adv for mgmt_reenable_advertising() During service discovery, advertising will be disabled. This patch ensures that it is correctly being re-enabled, both for configuration made via set advertising and add advertising, once the scanning times out. Signed-off-by: Florian Grandel Signed-off-by: Marcel Holtmann net/bluetooth/mgmt.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) commit 9d5fc2f23afc842cbb3ee85600cd92bf5120a71d Author: Florian Grandel Date: Thu Jun 18 03:16:50 2015 +0200 Bluetooth: mgmt: multi-adv for trigger_le_scan() This patch ensures that instance advertising is correctly canceled before starting a le scan. Signed-off-by: Florian Grandel Signed-off-by: Marcel Holtmann net/bluetooth/mgmt.c | 1 + 1 file changed, 1 insertion(+) commit 320b3bf7027b89821030e5e7c5fbd1f6aecb4af0 Author: Florian Grandel Date: Thu Jun 18 03:16:49 2015 +0200 Bluetooth: mgmt: program multi-adv on power on Advertising instances programmed while powered off should be advertised once the device is powered. This patch ensures that all combinations of setting and/or adding advertising configuration while powered off will be correctly activated on power on. Signed-off-by: Florian Grandel Signed-off-by: Marcel Holtmann net/bluetooth/mgmt.c | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) commit 01948331af001cd893c8733a4288e9ad246f62f3 Author: Florian Grandel Date: Thu Jun 18 03:16:48 2015 +0200 Bluetooth: mgmt: multi adv for remove_advertising*() The remove_advertising() and remove_advertising_complete() functions had instance identifiers hard coded. Notably, when passing in 0x00 as an instance identifier to signal that all instances should be removed then the mgmt API would return a hard coded 0x01 rather than returning the expected value 0x00. This bug is being fixed by always referencing the instance identifier from the management API call instead. remove_advertising() is refactored to use the new dynamic advertising instance list. The logic is being changed to make multi-instance advertising actually work, notably the schedule_adv_instance() method is being referenced to make sure that other instances will continue to advertise even if one instance is being removed. The code is made more readable by factoring advertising instance management and initialization into the low-level hci_remove_adv_instance() and hci_adv_instances_clear() functions. The method now references the clear_adv_instance() helper method to remove duplicate logic and code. Signed-off-by: Florian Grandel Signed-off-by: Marcel Holtmann net/bluetooth/mgmt.c | 45 ++++++++++++++++++++++++--------------------- 1 file changed, 24 insertions(+), 21 deletions(-) commit fffd38bca51c9a1c00508b754ab66edb6f39cf37 Author: Florian Grandel Date: Thu Jun 18 03:16:47 2015 +0200 Bluetooth: mgmt/hci_core: multi-adv for add_advertising*() The add_advertising() and add_advertising_complete() functions reference the now obsolete hdev->adv_instance struct. Both methods are being refactored to access the dynamic advertising instance list instead. This patch also introduces all logic necessary to actually deal with multiple instance advertising. Notably the mgmt_adv_inst_expired() and schedule_adv_inst() method are being referenced to schedule instances in a round robin fashion. This patch also introduces a "pending" flag into the adv_info struct. This is necessary to identify and remove recently added advertising instances when the HCI commands return with an error status code. Otherwise new advertising instances could be leaked without properly informing userspace about their existence. Signed-off-by: Florian Grandel Signed-off-by: Marcel Holtmann include/net/bluetooth/hci_core.h | 1 + net/bluetooth/hci_core.c | 1 + net/bluetooth/mgmt.c | 108 ++++++++++++++++++++++++++------------- 3 files changed, 75 insertions(+), 35 deletions(-) commit 847818d9c05f8951270600c0d3260871dbc23134 Author: Florian Grandel Date: Thu Jun 18 03:16:46 2015 +0200 Bluetooth: mgmt: multi adv for clear_adv_instances() The clear_adv_instance() function could not clean up multiple advertising instances previously. It is being changed to provide both, a means to clean up a single instance and cleaning up all instances at once. An additional instance parameter is being introduced to achieve this. Passing in 0x00 to this parameter signifies that all instances should be cleaned up. This semantics has been chosen similarly to the semantics of the instance parameter in the remove_advertising() function. When removing a single instance the method also ensures that another instance will be scheduled if available. When the currently advertising method is being removed, it will be canceled immediately. Signed-off-by: Florian Grandel Signed-off-by: Marcel Holtmann net/bluetooth/mgmt.c | 97 +++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 81 insertions(+), 16 deletions(-) commit 7816b82039b56308a0d685e97d4a9f4b52e239bd Author: Florian Grandel Date: Thu Jun 18 03:16:45 2015 +0200 Bluetooth: mgmt: multi adv for set_advertising*() The set_advertising() and set_advertising_complete() methods rely on the now obsolete hci_dev->adv_instance structure. We replace this reference by an equivalent access to the newly introduced dynamic advertising instance list. This patch introduces a helper function that schedules an advertising instance correctly calculating advertising timing based on the timeout and duration settings of the instance. Scheduling is factored into its own function for readability and code sharing. Signed-off-by: Florian Grandel Signed-off-by: Marcel Holtmann net/bluetooth/mgmt.c | 100 +++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 94 insertions(+), 6 deletions(-) commit f63ba24b97ac795c516315c2b1b8a8463a6acd46 Author: Florian Grandel Date: Thu Jun 18 03:16:44 2015 +0200 Bluetooth: mgmt: multi adv for create_instance_adv_data() The create_instance_adv_data() function could not deal with multiple advertising instances previously. This is being fixed by retrieving advertising instances from the newly introduced dynamic advertising instance list. Signed-off-by: Florian Grandel Signed-off-by: Marcel Holtmann net/bluetooth/mgmt.c | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) commit ca21fbe97c444c42fee7211dd625f2f4d373fad8 Author: Florian Grandel Date: Thu Jun 18 03:16:43 2015 +0200 Bluetooth: mgmt: multi adv for create_instance_scan_rsp_data() The create_instance_scan_rsp_data() function could not deal with multiple advertising instances previously. This is being fixed by adding an additional instance parameter. Signed-off-by: Florian Grandel Signed-off-by: Marcel Holtmann net/bluetooth/mgmt.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) commit 7b683b744ef9492e91dd849e0a7451f55661c9d7 Author: Florian Grandel Date: Thu Jun 18 03:16:42 2015 +0200 Bluetooth: mgmt: multi adv for enable_advertising() Previously enable_advertising() would rely on get_adv_instance_scan_rsp_len() which checked for a hard coded instance identifier. This is being changed to check for the current advertising instance's scan response length instead. The function is renamed accordingly. Signed-off-by: Florian Grandel Signed-off-by: Marcel Holtmann net/bluetooth/mgmt.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) commit bea28e65994de7fda06eb5f76aef3d25bd9c135f Author: Florian Grandel Date: Thu Jun 18 03:16:41 2015 +0200 Bluetooth: mgmt: improve get_adv_instance_flags() readability Switch if and else conditions to replace a negative statement by a positive one which makes the condition more readable. Signed-off-by: Florian Grandel Signed-off-by: Marcel Holtmann net/bluetooth/mgmt.c | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) commit 411b4121e3a38ff78695ae019642a9cab1babf12 Author: Florian Grandel Date: Thu Jun 18 03:16:40 2015 +0200 Bluetooth: mgmt: multi adv for get_adv_instance_flags() The get_adv_instance_flags() would not work with instance identifiers other than 0x01. This is being fixed so that arbitrary instance identifiers can be dealt with while still correctly dealing with the special case of the 0x00 identifier. Signed-off-by: Florian Grandel Signed-off-by: Marcel Holtmann net/bluetooth/mgmt.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) commit 3ff37e6b8cfcc57412320ec30f2b66d47f271cad Author: Florian Grandel Date: Thu Jun 18 03:16:39 2015 +0200 Bluetooth: mgmt: multi adv for get_current_adv_instance() Replaces the hard coded instance identifier in get_current_adv_instance() with the actual current instance identifier so that this method is prepared to work with more than one advertising instance. Signed-off-by: Florian Grandel Signed-off-by: Marcel Holtmann net/bluetooth/mgmt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 286e0c83df948eef9f51d50ed68ec8a1bb5051e4 Author: Florian Grandel Date: Thu Jun 18 03:16:38 2015 +0200 Bluetooth: mgmt: multi adv for read_adv_features() The read_adv_features() method had a single instance identifier hard coded. Refer to the advertising instance list instead to return a dynamically generated list of instance identifiers. Signed-off-by: Florian Grandel Signed-off-by: Marcel Holtmann net/bluetooth/mgmt.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) commit efae002c2c8acd1fd2d0c6e47122944094c8ae1f Author: Florian Grandel Date: Thu Jun 18 03:16:37 2015 +0200 Bluetooth: mgmt: rename update_*_data_for_instance() The ...for_instance function name is quite long and does not follow the ..._inst_... convention followed elsewhere in the code. This patch renames the ...for_instance functions to their shorter ..._inst_... version. Signed-off-by: Florian Grandel Signed-off-by: Marcel Holtmann net/bluetooth/mgmt.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) commit 91aa9bb2e3d2130b0ef004d2a05cfda6f0222ce2 Author: Florian Grandel Date: Thu Jun 18 03:16:36 2015 +0200 Bluetooth: mgmt: dry update_scan_rsp_data() update_scan_rsp_data() duplicates code from get_current_adv_instance(). This is being fixed by letting the former make use of the latter. Signed-off-by: Florian Grandel Signed-off-by: Marcel Holtmann net/bluetooth/mgmt.c | 50 +++++++++++++++++--------------------------------- 1 file changed, 17 insertions(+), 33 deletions(-) commit 5d900e4601391576a3c0644d7fcad1ebf41a516e Author: Florian Grandel Date: Thu Jun 18 03:16:35 2015 +0200 Bluetooth: hci_core/mgmt: move adv timeout to hdev Currently the delayed work managing advertising duration and timeout is part of the advertising instance structure. This is not correct as only a single instance can be advertised at any given time. To implement round robin advertising a single delayed work structure is needed. To fix this the delayed work structure is being moved to the hci_dev structure. The instance specific variable is renamed to "remaining_time" to make it clear that this is the remaining lifetime of the instance and not the current advertising timeout. Signed-off-by: Florian Grandel Signed-off-by: Marcel Holtmann include/net/bluetooth/hci_core.h | 5 ++++- net/bluetooth/hci_core.c | 29 +++++++++++++++++++++++++++++ net/bluetooth/mgmt.c | 27 +++++++++++---------------- 3 files changed, 44 insertions(+), 17 deletions(-) commit d2609b345ebf0547015a78588c4d7ad68c9ccf26 Author: Florian Grandel Date: Thu Jun 18 03:16:34 2015 +0200 Bluetooth: hci_core/mgmt: Introduce multi-adv list The current hci dev structure only supports a single advertising instance. To support multi-instance advertising it is necessary to introduce a linked list of advertising instances so that multiple advertising instances can be dynamically added and/or removed. In a first step, the existing adv_instance member of the hci_dev struct is supplemented by a linked list of advertising instances. This patch introduces the list and supporting list management infrastructure. The list is not being used yet. Signed-off-by: Florian Grandel Signed-off-by: Marcel Holtmann include/net/bluetooth/hci_core.h | 17 ++++++ net/bluetooth/hci_core.c | 117 +++++++++++++++++++++++++++++++++++++++ net/bluetooth/mgmt.c | 2 +- 3 files changed, 135 insertions(+), 1 deletion(-) commit c62e631d4a8e41493c6341d8259e996ed5fc11e3 Author: Marc Zyngier Date: Thu Jun 18 15:50:31 2015 +0100 KVM: arm/arm64: vgic: Remove useless arm-gic.h #include Back in the days, vgic.c used to have an intimate knowledge of the actual GICv2. These days, this has been abstracted away into hardware-specific backends. Remove the now useless arm-gic.h #include directive, making it clear that GICv2 specific code doesn't belong here. Signed-off-by: Marc Zyngier virt/kvm/arm/vgic.c | 2 -- 1 file changed, 2 deletions(-) commit aebceccc18bf49f8fb208ac4548b7bd402b6662c Author: Prasanna Karthik Date: Thu Jun 18 13:51:11 2015 +0000 Bluetooth: bt3c_cs: Fix coding style -- clean up Fix for braces {} are not necessary for single statement blocks reported by checkpatch Signed-off-by: Prasanna Karthik Signed-off-by: Marcel Holtmann drivers/bluetooth/bt3c_cs.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 7fc611ff3ff1a0b8f5a6569fe75a97d6c70bed6c Author: Sebastian Ott Date: Tue Jun 16 18:58:37 2015 +0200 s390/pci: improve handling of hotplug event 0x301 Hypervisors may deliver event 0x301 not only for standby but also for reserved devices. Just handle event 0x301 regardless of the device's state. Reviewed-by: Gerald Schaefer Signed-off-by: Sebastian Ott Signed-off-by: Martin Schwidefsky arch/s390/pci/pci_event.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 0c36b8ac7052eafed952ad3487ed8671dc9dc5f9 Author: Sebastian Ott Date: Tue Jun 16 14:03:37 2015 +0200 s390/setup: fix DMA_API_DEBUG warnings Addresses from the usable space in [_ehead, _stext] lead to false positives in DMA_API_DEBUG code (which will complain when an address is in [_text, _etext]). Avoid these warnings by not using that memory in case of CONFIG_DMA_API_DEBUG=y. Signed-off-by: Sebastian Ott Signed-off-by: Martin Schwidefsky arch/s390/kernel/setup.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) commit d9a5c0c65bb93e6c0236c73fe560fe980c3a5d1c Author: Vaishali Thakkar Date: Mon Jun 15 15:01:18 2015 +0200 s390/zcrypt: remove obsolete __constant __constant_cpu_to_le16 converted to cpu_to_le16 Signed-off-by: Vaishali Thakkar Signed-off-by: Ingo Tuchscherer Signed-off-by: Martin Schwidefsky drivers/s390/crypto/zcrypt_pcicc.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 62a993df31f795d87bcb4c6cb005d36f32f6ad55 Author: Nicolas Ferre Date: Thu Jun 18 15:07:35 2015 +0200 irqchip: atmel-aic5: Add sama5d2 support Add sama5d2 support to irq-atmel-aic5. Signed-off-by: Nicolas Ferre Cc: Boris BREZILLON Cc: Alexandre Belloni Cc: Ludovic Desroches Cc: Jason Cooper Cc: Link: http://lkml.kernel.org/r/1434632855-27272-1-git-send-email-nicolas.ferre@atmel.com Signed-off-by: Thomas Gleixner .../devicetree/bindings/interrupt-controller/atmel,aic.txt | 2 +- drivers/irqchip/irq-atmel-aic5.c | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) commit b3bddffd35a0b77eee89760eb94cafa18dc431f5 Merge: 49afd72 24fd03c Author: James Morris Date: Thu Jun 18 23:28:40 2015 +1000 Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/zohar/linux-integrity into next commit 51a16c1e887a5975ada27a3ae935a4f2783005da Author: John Stultz Date: Wed Jun 17 11:16:43 2015 -0700 selftest: Timers: Avoid signal deadlock in leap-a-day In 0c4a5fc95b1df (Add leap-second timer edge testing to leap-a-day.c), we added a timer to the test which checks to make sure timers near the leapsecond edge behave correctly. However, the output generated from the timer uses ctime_r, which isn't async-signal safe, and should that signal land while the main test is using ctime_r to print its output, its possible for the test to deadlock on glibc internal locks. Thus this patch reworks the output to avoid using ctime_r in the signal handler. Signed-off-by: John Stultz Cc: Prarit Bhargava Cc: Daniel Bristot de Oliveira Cc: Richard Cochran Cc: Jan Kara Cc: Jiri Bohac Cc: Shuah Khan Cc: Ingo Molnar Link: http://lkml.kernel.org/r/1434565003-3386-1-git-send-email-john.stultz@linaro.org Signed-off-by: Thomas Gleixner tools/testing/selftests/timers/leap-a-day.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) commit dfad7000f32e3a6187e1ee36d52494d821553f2b Author: Yijing Wang Date: Thu Jun 18 19:37:13 2015 +0800 nfs: Fix comment for nfs_pageio_init() and nfs_pageio_complete_mirror() Signed-off-by: Yijing Wang Signed-off-by: Trond Myklebust fs/nfs/pagelist.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit d1381929deaa530b0b9faddc7cbb62e05766b866 Author: Fabian Frederick Date: Tue Jun 16 21:57:52 2015 +0200 sunrpc: use sg_init_one() in krb5_rc4_setup_enc/seq_key() Don't opencode sg_init_one() Signed-off-by: Fabian Frederick Signed-off-by: Trond Myklebust net/sunrpc/auth_gss/gss_krb5_crypto.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit 2aedd0fdc69467b1544773acf08333c6f0027e42 Author: Russell King Date: Tue Jun 16 23:07:01 2015 +0100 irq: spear-shirq: Fix race in installing chained IRQ handler Fix a race where a pending interrupt could be received and the handler called before the handler's data has been setup, by converting to irq_set_chained_handler_and_data(). Signed-off-by: Russell King Cc: Alexandre Courbot Cc: Hans Ulli Kroll Cc: Jason Cooper Cc: Lee Jones Cc: Linus Walleij Cc: Thierry Reding Cc: linux-arm-kernel@lists.infradead.org Link: http://lkml.kernel.org/r/E1Z4z0X-0002T1-6U@rmk-PC.arm.linux.org.uk Signed-off-by: Thomas Gleixner drivers/irqchip/spear-shirq.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 9414b6e2d55d0f7f07c3336d972818af366ae120 Author: Russell King Date: Tue Jun 16 23:06:56 2015 +0100 irq: irq-keystone: Fix race in installing chained IRQ handler Fix a race where a pending interrupt could be received and the handler called before the handler's data has been setup, by converting to irq_set_chained_handler_and_data(). Signed-off-by: Russell King Cc: Alexandre Courbot Cc: Hans Ulli Kroll Cc: Jason Cooper Cc: Lee Jones Cc: Linus Walleij Cc: Thierry Reding Cc: linux-arm-kernel@lists.infradead.org Link: http://lkml.kernel.org/r/E1Z4z0S-0002Ss-1V@rmk-PC.arm.linux.org.uk Signed-off-by: Thomas Gleixner drivers/irqchip/irq-keystone.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit e88d251d6a4fb719f9f667a397cf5d755121e551 Author: Russell King Date: Tue Jun 16 23:06:50 2015 +0100 gpio: gpio-tegra: Fix race in installing chained IRQ handler Fix a race where a pending interrupt could be received and the handler called before the handler's data has been setup, by converting to irq_set_chained_handler_and_data(). Signed-off-by: Russell King Cc: Alexandre Courbot Cc: Hans Ulli Kroll Cc: Jason Cooper Cc: Lee Jones Cc: Linus Walleij Cc: Thierry Reding Cc: linux-arm-kernel@lists.infradead.org Link: http://lkml.kernel.org/r/E1Z4z0M-0002Sl-Ti@rmk-PC.arm.linux.org.uk Signed-off-by: Thomas Gleixner drivers/gpio/gpio-tegra.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a44735f421b44724d52117358573f8ded473ecc7 Author: Russell King Date: Tue Jun 16 23:06:45 2015 +0100 gpio: gpio-mxs: Fix race in installing chained IRQ handler Fix a race where a pending interrupt could be received and the handler called before the handler's data has been setup, by converting to irq_set_chained_handler_and_data(). Signed-off-by: Russell King Cc: Alexandre Courbot Cc: Hans Ulli Kroll Cc: Jason Cooper Cc: Lee Jones Cc: Linus Walleij Cc: Thierry Reding Cc: linux-arm-kernel@lists.infradead.org Link: http://lkml.kernel.org/r/E1Z4z0H-0002Sf-P9@rmk-PC.arm.linux.org.uk Signed-off-by: Thomas Gleixner drivers/gpio/gpio-mxs.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e65eea54e98566de2cbb10e710873bc5e34c6680 Author: Russell King Date: Tue Jun 16 23:06:40 2015 +0100 gpio: gpio-mxc: Fix race in installing chained IRQ handler Fix a race where a pending interrupt could be received and the handler called before the handler's data has been setup, by converting to irq_set_chained_handler_and_data(). Signed-off-by: Russell King Cc: Alexandre Courbot Cc: Hans Ulli Kroll Cc: Jason Cooper Cc: Lee Jones Cc: Linus Walleij Cc: Thierry Reding Cc: linux-arm-kernel@lists.infradead.org Link: http://lkml.kernel.org/r/E1Z4z0C-0002SX-Lj@rmk-PC.arm.linux.org.uk Signed-off-by: Thomas Gleixner drivers/gpio/gpio-mxc.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) commit 7f77c5c39d2eb50e7362f29f654a2c221b6a5b83 Author: Russell King Date: Tue Jun 16 23:06:35 2015 +0100 ARM: gemini: Fix race in installing GPIO chained IRQ handler The gemini code was installing its chained interrupt handler (which enables the interrupt) before it was setting its data, which is bad if the IRQ was previously pending. Avoid this problem by converting it to irq_set_chained_handler_and_data(). Signed-off-by: Russell King Cc: Alexandre Courbot Cc: Hans Ulli Kroll Cc: Jason Cooper Cc: Lee Jones Cc: Linus Walleij Cc: Thierry Reding Cc: linux-arm-kernel@lists.infradead.org Link: http://lkml.kernel.org/r/E1Z4z07-0002SO-Gv@rmk-PC.arm.linux.org.uk Signed-off-by: Thomas Gleixner arch/arm/mach-gemini/gpio.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 86f5e73304651c3eeec0a1fce90bb3e1d610e3b9 Author: Russell King Date: Tue Jun 16 23:06:30 2015 +0100 GPU: ipu: Fix race in installing IPU chained IRQ handler The IPU code was installing its chained interrupt handler (which enables the interrupt) before it was setting its data, which provokes an oops on kexec. Fix this by converting to irq_set_chained_handler_and_data(). [drm] Initialized drm 1.1.0 20060810 imx-drm display-subsystem: parent device of /soc/aips-bus@02000000/ldb@020e0008/lvds-channel@1 is not available imx-drm display-subsystem: parent device of /soc/aips-bus@02000000/ldb@020e0008/lvds-channel@1 is not available Unable to handle kernel NULL pointer dereference at virtual address 00000070 pgd = c0004000 [00000070] *pgd=00000000 Internal error: Oops: 5 [#1] SMP ARM Modules linked in: CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.1.0-rc6+ #1693 Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree) task: d74c0000 ti: d74aa000 task.ti: d74aa000 PC is at ipu_irq_handle+0x28/0xd8 LR is at ipu_irq_handler+0x6c/0xc0 pc : [] lr : [] psr: 200001d3 sp : d74abbd0 ip : d74abc00 fp : d74abbfc r10: 000001e0 r9 : c0085154 r8 : 00000009 r7 : 00000000 r6 : 00000000 r5 : d74abc04 r4 : c0a6b6a8 r3 : 00000000 r2 : 00000009 r1 : d74abc04 r0 : 00000000 Flags: nzCv IRQs off FIQs off Mode SVC_32 ISA ARM Segment kernel Control: 10c5387d Table: 10004059 DAC: 00000015 Process swapper/0 (pid: 1, stack limit = 0xd74aa210) Stack: (0xd74abbd0 to 0xd74ac000) Backtrace: [] (ipu_irq_handle) from [] (ipu_irq_handler+0x6c/0xc0) [] (ipu_irq_handler) from [] (generic_handle_irq+0x28/0x38) [] (generic_handle_irq) from [] (__handle_domain_irq+0x5c/0xb8) [] (__handle_domain_irq) from [] (gic_handle_irq+0x28/0x68) [] (gic_handle_irq) from [] (__irq_svc+0x44/0x5c) [] (_raw_spin_unlock_irqrestore) from [] (__irq_put_desc_unlock+0x1c/0x40) [] (__irq_put_desc_unlock) from [] (__irq_set_handler+0x54/0x5c) [] (__irq_set_handler) from [] (ipu_probe+0x29c/0x708) [] (ipu_probe) from [] (platform_drv_probe+0x50/0xac) [] (platform_drv_probe) from [] (driver_probe_device+0x1d4/0x278) Signed-off-by: Russell King Cc: Alexandre Courbot Cc: Hans Ulli Kroll Cc: Jason Cooper Cc: Lee Jones Cc: Linus Walleij Cc: Thierry Reding Cc: linux-arm-kernel@lists.infradead.org Link: http://lkml.kernel.org/r/E1Z4z02-0002SI-Br@rmk-PC.arm.linux.org.uk Signed-off-by: Thomas Gleixner drivers/gpu/ipu-v3/ipu-common.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) commit 056c0acf8798d3b94916633c41432d7a310b2f64 Author: Russell King Date: Tue Jun 16 23:06:25 2015 +0100 ARM: sa1100: convert SA11x0 related code to use new chained handler helper Convert SA11x0 (Neponset, SA1111, and UCB1x00 code) to use the new irq_set_chained_handler_and_data() helper. Signed-off-by: Russell King Cc: Alexandre Courbot Cc: Hans Ulli Kroll Cc: Jason Cooper Cc: Lee Jones Cc: Linus Walleij Cc: Thierry Reding Cc: linux-arm-kernel@lists.infradead.org Link: http://lkml.kernel.org/r/E1Z4yzx-0002S6-7p@rmk-PC.arm.linux.org.uk Signed-off-by: Thomas Gleixner arch/arm/common/sa1111.c | 7 +++---- arch/arm/mach-sa1100/neponset.c | 3 +-- drivers/mfd/ucb1x00-core.c | 3 +-- 3 files changed, 5 insertions(+), 8 deletions(-) commit 3b0f95be143bea1aa47beb20134ef82e4e4068dc Author: Russell King Date: Tue Jun 16 23:06:20 2015 +0100 irq: Add irq_set_chained_handler_and_data() Driver authors seem to get the ordering of irq_set_chained_handler() and irq_set_handler_data() wrong - ordering the former before the latter. This opens a race window where, if there is an interrupt pending, the handler will be called between these two calls, potentially resulting in an oops. Provide a single interface to set both of these together, especially as that's commonly what is required. Signed-off-by: Russell King Cc: Alexandre Courbot Cc: Hans Ulli Kroll Cc: Jason Cooper Cc: Lee Jones Cc: Linus Walleij Cc: Thierry Reding Cc: linux-arm-kernel@lists.infradead.org Link: http://lkml.kernel.org/r/E1Z4yzs-0002Rw-4B@rmk-PC.arm.linux.org.uk Signed-off-by: Thomas Gleixner include/linux/irq.h | 9 +++++++++ kernel/irq/chip.c | 45 ++++++++++++++++++++++++++++++++++----------- 2 files changed, 43 insertions(+), 11 deletions(-) commit 960ef1d72f60f1df927768b9818ece6d7d046d64 Author: Frederic Danis Date: Thu Jun 18 12:43:27 2015 +0200 Bluetooth: hci_uart: Fix speed selection hu->proto->*speed will always be used for all device where it is set. But hu->*speed should be used if exist, so the test should be swapped. The equivalent change is needed in bcm_setup() of hci_bcm.c. Signed-off-by: Frederic Danis Signed-off-by: Marcel Holtmann drivers/bluetooth/hci_bcm.c | 29 +++++++++++++++++++++++------ drivers/bluetooth/hci_ldisc.c | 12 ++++++------ 2 files changed, 29 insertions(+), 12 deletions(-) commit c4e70a87d975d1f561a00abfe2d3cefa2a486c95 Author: Pablo Neira Ayuso Date: Tue Jun 16 13:38:26 2015 +0200 netfilter: bridge: rename br_netfilter.c to br_netfilter_hooks.c To prepare separation of the IPv6 code into different file. Signed-off-by: Pablo Neira Ayuso net/bridge/Makefile | 1 + net/bridge/br_netfilter.c | 1282 --------------------------------------- net/bridge/br_netfilter_hooks.c | 1282 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 1283 insertions(+), 1282 deletions(-) commit a1a56aaa0735c7821e85c37268a7c12e132415cb Author: Eric Dumazet Date: Mon Jun 15 18:10:13 2015 -0700 netfilter: x_tables: align per cpu xt_counter Let's force a 16 bytes alignment on xt_counter percpu allocations, so that bytes and packets sit in same cache line. xt_counter being exported to user space, we cannot add __align(16) on the structure itself. Signed-off-by: Eric Dumazet Cc: Florian Westphal Acked-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso include/linux/netfilter/x_tables.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 01555e74bde51444c6898ef1800fb2bc697d479e Author: Harout Hedeshian Date: Mon Jun 15 18:40:43 2015 -0600 netfilter: xt_socket: add XT_SOCKET_RESTORESKMARK flag xt_socket is useful for matching sockets with IP_TRANSPARENT and taking some action on the matching packets. However, it lacks the ability to match only a small subset of transparent sockets. Suppose there are 2 applications, each with its own set of transparent sockets. The first application wants all matching packets dropped, while the second application wants them forwarded somewhere else. Add the ability to retore the skb->mark from the sk_mark. The mark is only restored if a matching socket is found and the transparent / nowildcard conditions are satisfied. Now the 2 hypothetical applications can differentiate their sockets based on a mark value set with SO_MARK. iptables -t mangle -I PREROUTING -m socket --transparent \ --restore-skmark -j action iptables -t mangle -A action -m mark --mark 10 -j action2 iptables -t mangle -A action -m mark --mark 11 -j action3 Signed-off-by: Harout Hedeshian Signed-off-by: Pablo Neira Ayuso include/uapi/linux/netfilter/xt_socket.h | 8 +++++ net/netfilter/xt_socket.c | 59 ++++++++++++++++++++++++++++---- 2 files changed, 61 insertions(+), 6 deletions(-) commit ef493bd930ae482c608c5999b40d79dda3f2a674 Author: Roman Kubiak Date: Fri Jun 12 12:32:57 2015 +0200 netfilter: nfnetlink_queue: add security context information This patch adds an additional attribute when sending packet information via netlink in netfilter_queue module. It will send additional security context data, so that userspace applications can verify this context against their own security databases. Signed-off-by: Roman Kubiak Acked-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso include/uapi/linux/netfilter/nfnetlink_queue.h | 4 ++- net/netfilter/nfnetlink_queue_core.c | 35 +++++++++++++++++++++++++- 2 files changed, 37 insertions(+), 2 deletions(-) commit b67ea97fcd4e29c97ced1ecba15443ecfce395b1 Merge: d42202d 986eec4 Author: David S. Miller Date: Thu Jun 18 03:57:44 2015 -0700 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue Jeff Kirsher says: ==================== This series contains updates to fm10k only. Alex provides two fixes for the fm10k, first folds the fm10k_pull_tail() call into fm10k_add_rx_frag(), this way the fragment does not have to be modified after it is added to the skb. The second fixes missing braces to an if statement. The remaining patches are from Jacob which contain improvements and fixes for fm10k. First fix makes it so that invalid address will simply be skipped and allows synchronizing the full list to proceed with using iproute2 tool. Fixed a possible kernel panic by using the correct transmit timestamp function. Simplified the code flow for setting the IN_PROGRESS bit of the shinfo for an skb that we will be timestamping. Fix a bug in the timestamping transmit enqueue code responsible for a NULL pointer dereference and invalid access of the skb list by freeing the clone in the cases where we did not add it to the queue. Update the PF code so that it resets the empty TQMAP/RQMAP regirsters post-VFLR to prevent innocent VF drivers from triggering malicious driver events. The SYSTIME_CFG.Adjust direction bit is actually supposed to indicate that the adjustment is positive, so fix the code to align correctly with the hardware and documentation. Cleanup local variable that is no longer used after a previous refactor of the code. Fix the code flow so that we actually clear the enabled flag as part of our removal of the LPORT. v2: - updated patch 07 description based on feedback from Sergei Shtylyov - updated patch 09 & 10 to use %d in error message based on feedback from Sergei Shtylyov ==================== Signed-off-by: David S. Miller commit d42202dce002ce0417448d11a091b4da21cacbd1 Author: Romain Perier Date: Mon Jun 15 17:44:19 2015 +0000 net: stmmac: dwmac-rk: Don't add function name in info or err messages These kind of informations are only useful for debugging and should not be displayed in normal modules message. Signed-off-by: Romain Perier Signed-off-by: David S. Miller drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c | 75 +++++++++++++------------- 1 file changed, 36 insertions(+), 39 deletions(-) commit 2dab80a8b486f02222a69daca6859519e05781d9 Author: Nikolay Aleksandrov Date: Mon Jun 15 20:28:51 2015 +0300 bridge: fix br_stp_set_bridge_priority race conditions After the ->set() spinlocks were removed br_stp_set_bridge_priority was left running without any protection when used via sysfs. It can race with port add/del and could result in use-after-free cases and corrupted lists. Tested by running port add/del in a loop with stp enabled while setting priority in a loop, crashes are easily reproducible. The spinlocks around sysfs ->set() were removed in commit: 14f98f258f19 ("bridge: range check STP parameters") There's also a race condition in the netlink priority support that is fixed by this change, but it was introduced recently and the fixes tag covers it, just in case it's needed the commit is: af615762e972 ("bridge: add ageing_time, stp_state, priority over netlink") Signed-off-by: Nikolay Aleksandrov Fixes: 14f98f258f19 ("bridge: range check STP parameters") Signed-off-by: David S. Miller net/bridge/br_ioctl.c | 2 -- net/bridge/br_stp_if.c | 4 +++- 2 files changed, 3 insertions(+), 3 deletions(-) commit 7ea402d01cb68224972dde3ae68bd41131b1c3a1 Author: Luis R. Rodriguez Date: Mon Jun 15 10:28:18 2015 +0200 x86/mm/pat, drivers/infiniband/ipath: Use arch_phys_wc_add() and require PAT disabled We are burrying direct access to MTRR code support on x86 in order to take advantage of PAT. In the future, we also want to make the default behaviour of ioremap_nocache() to use strong UC, use of mtrr_add() on those systems would make write-combining void. In order to help both enable us to later make strong UC default and in order to phase out direct MTRR access code port the driver over to arch_phys_wc_add() and annotate that the device driver requires systems to boot with PAT disabled, with the 'nopat' kernel parameter. This is a workable compromise given that the ipath device driver powers the old HTX bus cards that only work in AMD systems, while the newer IB/qib device driver powers all PCI-e cards. The ipath device driver is obsolete, hardware is hard to find and because of this its a reasonable compromise to require users of ipath to boot with 'nopat'. Signed-off-by: Luis R. Rodriguez Signed-off-by: Borislav Petkov Acked-by: Doug Ledford Cc: Andrew Morton Cc: Andy Lutomirski Cc: Andy Walls Cc: Antonino Daplas Cc: Arnd Bergmann Cc: Bjorn Helgaas Cc: Borislav Petkov Cc: Brian Gerst Cc: Daniel Vetter Cc: Dave Airlie Cc: Dave Hansen Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Hal Rosenstock Cc: Jean-Christophe Plagniol-Villard Cc: Juergen Gross Cc: Linus Torvalds Cc: Michael S. Tsirkin Cc: Mike Marciniszyn Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Rickard Strandqvist Cc: Roger Pau Monné Cc: Roland Dreier Cc: Sean Hefty Cc: Stefan Bader Cc: Suresh Siddha Cc: Thomas Gleixner Cc: Tomi Valkeinen Cc: Ville Syrjälä Cc: infinipath@intel.com Cc: jbeulich@suse.com Cc: konrad.wilk@oracle.com Cc: linux-rdma@vger.kernel.org Cc: mchehab@osg.samsung.com Cc: toshi.kani@hp.com Link: http://lkml.kernel.org/r/1434053994-2196-4-git-send-email-mcgrof@do-not-panic.com Link: http://lkml.kernel.org/r/1434356898-25135-5-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar drivers/infiniband/hw/ipath/Kconfig | 3 ++ drivers/infiniband/hw/ipath/ipath_driver.c | 18 +++++++---- drivers/infiniband/hw/ipath/ipath_kernel.h | 4 +-- drivers/infiniband/hw/ipath/ipath_wc_x86_64.c | 43 ++++++--------------------- 4 files changed, 26 insertions(+), 42 deletions(-) commit 1bf1735b478008c30acaff18ec6f4a3ff211c28a Author: Luis R. Rodriguez Date: Mon Jun 15 10:28:16 2015 +0200 x86/mm/pat, drivers/media/ivtv: Use arch_phys_wc_add() and require PAT disabled We are burrying direct access to MTRR code support on x86 in order to take advantage of PAT. In the future, we also want to make the default behavior of ioremap_nocache() to use strong UC, at which point the use of mtrr_add() on those systems would make write-combining void. In order to help both enable us to later make strong UC default and in order to phase out direct MTRR access code, port the driver over to the arch_phys_wc_add() API and annotate that the device driver requires systems to boot with PAT disabled, with the 'nopat' kernel parameter. This is a workable compromise given that the hardware is really rare these days, and perhaps only some lost souls stuck with obsolete hardware are expected to be using this feature of the device driver. Signed-off-by: Luis R. Rodriguez Signed-off-by: Borislav Petkov Acked-by: Andy Walls Acked-by: Mauro Carvalho Chehab Cc: Andrew Morton Cc: Andy Lutomirski Cc: Antonino Daplas Cc: Arnd Bergmann Cc: Borislav Petkov Cc: Brian Gerst Cc: Daniel Vetter Cc: Dave Airlie Cc: Dave Hansen Cc: Denys Vlasenko Cc: Doug Ledford Cc: H. Peter Anvin Cc: Jean-Christophe Plagniol-Villard Cc: Juergen Gross Cc: Linus Torvalds Cc: Michael S. Tsirkin Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Roger Pau Monné Cc: Stefan Bader Cc: Suresh Siddha Cc: Thomas Gleixner Cc: Ville Syrjälä Cc: bhelgaas@google.com Cc: konrad.wilk@oracle.com Cc: linux-media@vger.kernel.org Cc: tomi.valkeinen@ti.com Cc: toshi.kani@hp.com Link: http://lkml.kernel.org/r/1434053994-2196-2-git-send-email-mcgrof@do-not-panic.com Signed-off-by: Ingo Molnar drivers/media/pci/ivtv/Kconfig | 3 +++ drivers/media/pci/ivtv/ivtvfb.c | 58 ++++++++++++++++------------------------- 2 files changed, 26 insertions(+), 35 deletions(-) commit cc2749e4095cbbcb35518fb2db5e926b85c3f25f Author: Aravind Gopalakrishnan Date: Mon Jun 15 10:28:15 2015 +0200 x86/cpu/amd: Give access to the number of nodes in a physical package Stash the number of nodes in a physical processor package locally and add an accessor to be called by interested parties. The first user is the MCE injection module which uses it to find the node base core in a package for injecting a certain type of errors. Signed-off-by: Aravind Gopalakrishnan [ Rewrote the commit message, merged it with the accessor patch and unified naming. ] Signed-off-by: Borislav Petkov Cc: Andrew Morton Cc: Andy Lutomirski Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Dave Hansen Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Jacob Shin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Paolo Bonzini Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-edac Cc: mchehab@osg.samsung.com Link: http://lkml.kernel.org/r/1433868317-18417-2-git-send-email-Aravind.Gopalakrishnan@amd.com Signed-off-by: Ingo Molnar arch/x86/include/asm/processor.h | 1 + arch/x86/kernel/cpu/amd.c | 23 ++++++++++++++++++----- 2 files changed, 19 insertions(+), 5 deletions(-) commit 74a3e0c719dcfc66333f43a8414a9c5bfc50bf95 Author: Fabian Frederick Date: Wed Jun 10 18:32:05 2015 +0200 HID: cypress: use swap() in cp_report_fixup() Use kernel.h macro definition. Thanks to Julia Lawall for Coccinelle scripting support. Signed-off-by: Fabian Frederick Signed-off-by: Jiri Kosina drivers/hid/hid-cypress.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit b58d930750135d6c5b8e5aa084c0e9303c78c286 Author: Feng Tang Date: Mon Jun 15 17:40:01 2015 +0800 x86/platform/intel/baytrail: Add comments about why we disabled HPET on Baytrail This question has been asked many times, and finally I found the official document which explains the problem of HPET on Baytrail, that it will halt in deep idle states. Signed-off-by: Feng Tang Cc: Andrew Morton 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: Thomas Gleixner Cc: john.stultz@linaro.org Cc: len.brown@intel.com Cc: matthew.lee@intel.com Link: http://lkml.kernel.org/r/1434361201-31743-1-git-send-email-feng.tang@intel.com [ Prettified things a bit. ] Signed-off-by: Ingo Molnar arch/x86/kernel/early-quirks.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 18eec2cd7e9746cd672ada102987534ae16f0f44 Author: Raimund Roth Date: Mon Jun 8 11:11:38 2015 +0200 HID: microsoft: Add Surface Power Cover Adding support for the Microsoft Surface Pro Power Cover. Signed-off-by: Raimund Roth Signed-off-by: Jiri Kosina drivers/hid/hid-core.c | 4 +++- drivers/hid/hid-ids.h | 1 + drivers/hid/hid-microsoft.c | 2 ++ drivers/hid/usbhid/hid-quirks.c | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) commit b2723eb73c6dc014980beb0f3e5f47d6cac57939 Author: Simon Wood Date: Wed Jun 17 00:08:53 2015 -0600 HID: hid-sony: Fix report descriptor for Navigation Controller Patch report descriptor to remove unused and ramdomly changing axis. Original report descriptor (via BT) was as follows: 00000000 05 01 09 04 a1 01 a1 02 85 01 75 08 95 01 15 00 |..........u.....| 00000010 26 ff 00 81 03 75 01 95 13 15 00 25 01 35 00 45 |&....u.....%.5.E| 00000020 01 05 09 19 01 29 13 81 02 75 01 95 0d 06 00 ff |.....)...u......| 00000030 81 03 15 00 26 ff 00 05 01 09 01 a1 00 75 08 95 |....&........u..| 00000040 04 35 00 46 ff 00 09 30 09 31 09 32 09 35 81 02 |.5.F...0.1.2.5..| 00000050 c0 05 01 75 08 95 27 09 01 81 02 75 08 95 30 09 |...u..'....u..0.| 00000060 01 91 02 75 08 95 30 09 01 b1 02 c0 a1 02 85 02 |...u..0.........| 00000070 75 08 95 30 09 01 b1 02 c0 a1 02 85 ee 75 08 95 |u..0.........u..| 00000080 30 09 01 b1 02 c0 a1 02 85 ef 75 08 95 30 09 01 |0.........u..0..| 00000090 b1 02 c0 c0 00 |.....| 00000095 Signed-off-by: Simon Wood Signed-off-by: Jiri Kosina drivers/hid/hid-sony.c | 91 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 90 insertions(+), 1 deletion(-) commit 4545ee0a70e49b7d355181540a77c0a1aa2a7fe4 Author: Simon Wood Date: Wed Jun 17 00:08:52 2015 -0600 HID: hid-sony: Navigation controller only has 1 LED and no rumble Signed-off-by: Simon Wood Signed-off-by: Jiri Kosina drivers/hid/hid-sony.c | 41 +++++++++++++++++++++++++++++++++-------- 1 file changed, 33 insertions(+), 8 deletions(-) commit 6eabaaa09128169f42d97d6a3502729f8ad27c4a Author: Simon Wood Date: Wed Jun 17 00:08:51 2015 -0600 HID: hid-sony: Add BT support for Navigation Controller Signed-off-by: Simon Wood Signed-off-by: Jiri Kosina drivers/hid/hid-core.c | 1 + drivers/hid/hid-sony.c | 2 ++ 2 files changed, 3 insertions(+) commit 8de3dbd0895bebe52d069a82feae8e3fb51c1bdf Author: Ohad Ben-Cohen Date: Thu Jun 18 11:44:41 2015 +0300 remoteproc: fix !CONFIG_OF build breakage Fix this: drivers/remoteproc/remoteproc_core.c: In function 'rproc_get_by_phandle': >> drivers/remoteproc/remoteproc_core.c:1167:2: error: implicit declaration of function 'of_find_node_by_phandle' [-Werror=implicit-function-declaration] np = of_find_node_by_phandle(phandle); Reported-by: kbuild test robot Cc: Dave Gerlach Cc: Suman Anna Signed-off-by: Ohad Ben-Cohen drivers/remoteproc/remoteproc_core.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 2a6cdbdd4cc0da0b0190b9a43648dff7b44adc0a Author: Jason Gerecke Date: Mon Jun 15 18:01:45 2015 -0700 HID: wacom: Introduce new 'touch_input' device Instead of having a single 'input_dev' device that will take either pen or touch data depending on the type of the device, create seperate devices devices for each. By splitting things like this, we can support devices (e.g. the I2C "AES" sensors in some newer tablet PCs) that send both pen and touch reports from a single endpoint. Signed-off-by: Jason Gerecke Signed-off-by: Jiri Kosina drivers/hid/wacom_sys.c | 116 +++++++++++++++++++++++++++++------------------- drivers/hid/wacom_wac.c | 115 +++++++++++++++++++++++++---------------------- drivers/hid/wacom_wac.h | 9 ++-- 3 files changed, 139 insertions(+), 101 deletions(-) commit 2636a3f2d1421e3e629dfc96489c23727bab17d7 Author: Jason Gerecke Date: Mon Jun 15 18:01:44 2015 -0700 HID: wacom: Split apart 'wacom_setup_pentouch_input_capabilites' This splits the 'wacom_setup_pentouch_input_capabilites' function into pieces dedicated to doing setup for just the pen interface and just the touch interface. This makes it easier to focus on the relevant piece when making changes. This patch introduces no functional changes. Signed-off-by: Jason Gerecke Signed-off-by: Jiri Kosina drivers/hid/wacom.h | 4 +- drivers/hid/wacom_sys.c | 8 +- drivers/hid/wacom_wac.c | 234 +++++++++++++++++++++++++----------------------- 3 files changed, 131 insertions(+), 115 deletions(-) commit 862cf5535c0cf4b39ce71a3b7e9a1c22ae4f70ae Author: Jason Gerecke Date: Mon Jun 15 18:01:43 2015 -0700 HID: wacom: Introduce a new WACOM_DEVICETYPE_PAD device_type Historically, both the touch and pad tools would have shared the 'BTN_TOOL_FINGER' type. Any time you needed to distinguish the two, you had to use some other bit of knowledge (e.g. that the pad was on the same interface as the pen, and thus 'touch_max' would be zero). To make these checks more readable, we introduce WACOM_DEVICETYPE_PAD. Although we still have to rely on other bits of knowledge to set this bit on the right interface (since it cannot be detected from the HID descriptor), it can be done just once inside 'wacom_setup_device_quirks'. This patch introduces no functional changes. Signed-off-by: Jason Gerecke Signed-off-by: Jiri Kosina drivers/hid/wacom_sys.c | 65 +++++++++++++++++++++++--------------------- drivers/hid/wacom_wac.c | 71 ++++++++++++++++++++++++++----------------------- drivers/hid/wacom_wac.h | 1 + 3 files changed, 73 insertions(+), 64 deletions(-) commit aa86b18cc9cd147b40412a2d57b383a5e16fe3b5 Author: Jason Gerecke Date: Mon Jun 15 18:01:42 2015 -0700 HID: wacom: Treat features->device_type values as flags The USB devices that this driver has historically supported segregate the pen and touch portions of the tablet. Oftentimes the segregation would be done at the interface level, though on occasion (e.g. Cintiq 24HDT) the tablet would combine two totally independent USB devices behind an internal USB hub. Because pen and touch never shared the same interface, it made sense for the 'device_type' to store a single value: "pen" or "touch". Recently, however, some I2C devices have been created which combine the two. A first step to accomodating this is to expand 'device_type' so that it can represent two (or potentially more) types simultaneously. To do this, we treat it as a bitfield and set/check individual bits rather than using the '=' and '==' operators. This should not result in any functional change since no supported devices (that I'm aware of, at least) have HID descriptors that indicate both pen and touch reports on a single interface. Signed-off-by: Jason Gerecke Signed-off-by: Jiri Kosina drivers/hid/wacom_sys.c | 35 ++++++++++++++++++----------------- drivers/hid/wacom_wac.c | 30 +++++++++++++++--------------- drivers/hid/wacom_wac.h | 5 +++++ 3 files changed, 38 insertions(+), 32 deletions(-) commit 44b5250b97a0e5c3a257430ea28b10cf73899bd4 Author: Jason Gerecke Date: Mon Jun 15 18:01:41 2015 -0700 HID: wacom: Simplify 'wacom_update_name' A little bit of cleanup work for 'wacom_update_name' to make it easier on the eyes. Creates a temporary 'name' variable on which we'll perform our edits. Once the name is in its final form, it will be copied (with appropriate suffix) to 'wacom_wac->name' and 'wacom_wac->pad_name'. Signed-off-by: Jason Gerecke Signed-off-by: Jiri Kosina drivers/hid/wacom_sys.c | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) commit 79928928c5a27d58ae48285d2a3f7aa835db7547 Merge: 61d67d5 5d484f9 Author: Ingo Molnar Date: Thu Jun 18 09:36:33 2015 +0200 Merge tag 'perf-core-for-mingo-2' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo: User visible changes: - List perf probes to stdout. (Masami Hiramatsu) - Return error when none of the requested probes were installed. (Masami Hiramatsu) - Cut off the gcc optimization postfixes from function name in 'perf probe'. (Masami Hiramatsu) - Allow disabling/enabling events dynamicly in 'perf top': a 'perf top' session can instantly become a 'perf report' one, i.e. going from dynamic analysis to a static one, returning to a dynamic one is possible, to toogle the modes, just press CTRL+z. (Arnaldo Carvalho de Melo) - Greatly speed up 'perf probe --list' by caching debuginfo. (Masami Hiramatsu) - Fix 'perf trace' race condition at the end of started workloads. (Sukadev Bhattiprolu) - Fix a problem when opening old perf.data with different byte order. (Wang Nan) Infrastructure changes: - Replace map->referenced & maps->removed_maps with map->refcnt. (Arnaldo Carvalho de Melo) - Introduce the xyarray__reset() function. (Jiri Olsa) - Add thread_map__(alloc|realloc)() helpers. (Jiri Olsa) - Move perf_evsel__(alloc|free|reset)_counts into stat object. (Jiri Olsa) - Introduce perf_counts__(new|delete|reset)() functions. (Jiri Olsa) - Ignore .config-detected in .gitignore. (Wang Nan) - Move libtraceevent dynamic list to separated LDFLAGS variable. (Wang Nan) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit 906c55579a6360dd9ef5a3101bb2e3ae396dfb97 Author: John Stultz Date: Wed Jun 17 10:05:53 2015 -0700 timekeeping: Copy the shadow-timekeeper over the real timekeeper last The fix in d151832650ed9 (time: Move clock_was_set_seq update before updating shadow-timekeeper) was unfortunately incomplete. The main gist of that change was to do the shadow-copy update last, so that any state changes were properly duplicated, and we wouldn't accidentally have stale data in the shadow. Unfortunately in the main update_wall_time() logic, we update use the shadow-timekeeper to calculate the next update values, then while holding the lock, copy the shadow-timekeeper over, then call timekeeping_update() to do some additional bookkeeping, (skipping the shadow mirror). The bug with this is the additional bookkeeping isn't all read-only, and some changes timkeeper state. Thus we might then overwrite this state change on the next update. To avoid this problem, do the timekeeping_update() on the shadow-timekeeper prior to copying the full state over to the real-timekeeper. This avoids problems with both the clock_was_set_seq and next_leap_ktime being overwritten and possibly the fast-timekeepers as well. Many thanks to Prarit for his rigorous testing, which discovered this problem, along with Prarit and Daniel's work validating this fix. Reported-by: Prarit Bhargava Tested-by: Prarit Bhargava Tested-by: Daniel Bristot de Oliveira Signed-off-by: John Stultz Cc: Richard Cochran Cc: Jan Kara Cc: Jiri Bohac Cc: Ingo Molnar Link: http://lkml.kernel.org/r/1434560753-7441-1-git-send-email-john.stultz@linaro.org Signed-off-by: Thomas Gleixner kernel/time/timekeeping.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit a9d20988ac7db47fec4510cefc966e876a4ce674 Author: Viresh Kumar Date: Wed Jun 17 16:04:46 2015 +0530 clockevents: Check state instead of mode in suspend/resume path CLOCK_EVT_MODE_* macros are present for backward compatibility (as most of the drivers are still using old ->set_mode() interface). These macro's shouldn't be used anymore in code, that is common to both driver interfaces, i.e. ->set_mode() and ->set_state_*(). Drivers implementing ->set_state_*() interface, which have their clkevt->mode set to 0 (clkevt device structures are normally globally defined), will not participate in suspend/resume as they will always be marked as UNUSED. Fix this by checking state of the clockevent device instead of mode, which is updated for both the interfaces. Fixes: ac34ad27fc16 ("clockevents: Do not suspend/resume if unused") Signed-off-by: Viresh Kumar Cc: linaro-kernel@lists.linaro.org Cc: alexandre.belloni@free-electrons.com Cc: sylvain.rochet@finsecur.com Link: http://lkml.kernel.org/r/a1964eef6e8a47d02b1ff9083c6c91f73f0ff643.1434537215.git.viresh.kumar@linaro.org Signed-off-by: Thomas Gleixner kernel/time/clockevents.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a8c27c0bea45c6531fbc1e3be79ddd5a9bc1ba3e Author: Rabin Vincent Date: Sun Jun 14 19:26:11 2015 +0200 mmc: queue: prevent soft lockups on PREEMPT=n On systems with CONFIG_PREEMPT=n, under certain circumstances, mmcqd can continuously process requests for several seconds without blocking, triggering the soft lockup watchdog. For example, this can happen if mmcqd runs on the CPU which services the controller's interrupt, and a process on a different CPU continuously writes to the MMC block device. NMI watchdog: BUG: soft lockup - CPU#0 stuck for 22s! [mmcqd/0:664] CPU: 0 PID: 664 Comm: mmcqd/0 Not tainted 4.1.0-rc7+ #4 PC is at _raw_spin_unlock_irqrestore+0x24/0x28 LR is at mmc_start_request+0x104/0x134 ... [<805112a8>] (_raw_spin_unlock_irqrestore) from [<803db664>] (mmc_start_request+0x104/0x134) [<803db664>] (mmc_start_request) from [<803dc008>] (mmc_start_req+0x274/0x394) [<803dc008>] (mmc_start_req) from [<803eb2c4>] (mmc_blk_issue_rw_rq+0xd0/0xb98) [<803eb2c4>] (mmc_blk_issue_rw_rq) from [<803ebe8c>] (mmc_blk_issue_rq+0x100/0x470) [<803ebe8c>] (mmc_blk_issue_rq) from [<803ecab8>] (mmc_queue_thread+0xd0/0x170) [<803ecab8>] (mmc_queue_thread) from [<8003fd14>] (kthread+0xe0/0xfc) [<8003fd14>] (kthread) from [<8000f768>] (ret_from_fork+0x14/0x2c) Fix it by adding a cond_resched() in the request handling loop so that other processes get a chance to run. Signed-off-by: Rabin Vincent Signed-off-by: Ulf Hansson drivers/mmc/card/queue.c | 1 + 1 file changed, 1 insertion(+) commit 4b8a43e90ccf88c91475b802d1388c0779be2bda Author: Chaotian Jing Date: Mon Jun 15 19:20:49 2015 +0800 mmc: mediatek: Add PM support for MMC driver Add PM support for Mediatek MMC driver Save/restore registers when PM Signed-off-by: Chaotian Jing Signed-off-by: Ulf Hansson drivers/mmc/host/mtk-sd.c | 89 +++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 86 insertions(+), 3 deletions(-) commit 208489032bdd8d4a7de50f3057c175058f271956 Author: Chaotian Jing Date: Mon Jun 15 19:20:48 2015 +0800 mmc: mediatek: Add Mediatek MMC driver Add Mediatek MMC driver code Support eMMC/SD/SDIO Signed-off-by: Chaotian Jing Signed-off-by: Ulf Hansson drivers/mmc/host/Kconfig | 8 + drivers/mmc/host/Makefile | 1 + drivers/mmc/host/mtk-sd.c | 1379 +++++++++++++++++++++++++++++++++++++++++++++ include/linux/mmc/core.h | 1 + 4 files changed, 1389 insertions(+) commit a9bd32a8b4c4c2670f9ed8cae63f9378b6df3ded Author: Stephen Boyd Date: Fri Mar 13 11:09:45 2015 -0700 msm: msm_fb: Remove dead code This code is no longer used now that mach-msm has been removed. Delete it. Cc: Jean-Christophe Plagniol-Villard Cc: Tomi Valkeinen Cc: David Brown Cc: Bryan Huntsman Cc: Daniel Walker Signed-off-by: Stephen Boyd Acked-by: Jean-Christophe PLAGNIOL-VILLARD Signed-off-by: Tomi Valkeinen drivers/video/fbdev/Kconfig | 7 - drivers/video/fbdev/Makefile | 1 - drivers/video/fbdev/msm/Makefile | 19 - drivers/video/fbdev/msm/mddi.c | 821 -------------------------- drivers/video/fbdev/msm/mddi_client_dummy.c | 85 --- drivers/video/fbdev/msm/mddi_client_nt35399.c | 252 -------- drivers/video/fbdev/msm/mddi_client_toshiba.c | 280 --------- drivers/video/fbdev/msm/mddi_hw.h | 305 ---------- drivers/video/fbdev/msm/mdp.c | 520 ---------------- drivers/video/fbdev/msm/mdp_csc_table.h | 582 ------------------ drivers/video/fbdev/msm/mdp_hw.h | 627 -------------------- drivers/video/fbdev/msm/mdp_ppp.c | 731 ----------------------- drivers/video/fbdev/msm/mdp_scale_tables.c | 766 ------------------------ drivers/video/fbdev/msm/mdp_scale_tables.h | 38 -- drivers/video/fbdev/msm/msm_fb.c | 659 --------------------- include/linux/platform_data/video-msm_fb.h | 146 ----- 16 files changed, 5839 deletions(-) commit 596103cf8fb0a258e1a5ed3e895860764490934d Author: Herbert Xu Date: Wed Jun 17 14:58:24 2015 +0800 crypto: drivers - Fix Kconfig selects This patch fixes a number of problems in crypto driver Kconfig entries: 1. Select BLKCIPHER instead of BLKCIPHER2. The latter is internal and should not be used outside of the crypto API itself. 2. Do not select ALGAPI unless you use a legacy type like CRYPTO_ALG_TYPE_CIPHER. 3. Select the algorithm type that you are implementing, e.g., AEAD. 4. Do not select generic C code such as CBC/ECB unless you use them as a fallback. 5. Remove default n since that is the default default. Signed-off-by: Herbert Xu drivers/crypto/Kconfig | 41 +++++++++++++---------------------------- drivers/crypto/caam/Kconfig | 5 ++--- drivers/crypto/ccp/Kconfig | 1 - drivers/crypto/nx/Kconfig | 8 -------- drivers/crypto/qat/Kconfig | 6 ++---- drivers/crypto/ux500/Kconfig | 4 ++-- 6 files changed, 19 insertions(+), 46 deletions(-) commit 31267270a355945e172de4927140dd26ff292461 Author: Herbert Xu Date: Wed Jun 17 14:05:26 2015 +0800 crypto: tcrypt - Fixed AEAD speed test setup The AEAD speed test SG list setup did not correctly mark the AD, potentially causing a crash. Signed-off-by: Herbert Xu crypto/tcrypt.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) commit 4e4aab63d7456fb3db108ad8eead8e330d5fb958 Author: Herbert Xu Date: Wed Jun 17 14:04:21 2015 +0800 crypto: tcrypt - Add rfc4309(ccm(aes)) speed test This patch adds a speed test for rfc4309(ccm(aes)) as mode 212. Signed-off-by: Herbert Xu crypto/tcrypt.c | 5 +++++ crypto/tcrypt.h | 1 + 2 files changed, 6 insertions(+) commit f657f82cc9710e2cb3067be932853ce114e5ce29 Author: Steffen Trumtrar Date: Tue Jun 16 12:59:07 2015 +0200 crypto: caam - fix non-64-bit write/read access The patch crypto: caam - Add definition of rd/wr_reg64 for little endian platform added support for little endian platforms to the CAAM driver. Namely a write and read function for 64 bit registers. The only user of this functions is the Job Ring driver (drivers/crypto/caam/jr.c). It uses the functions to set the DMA addresses for the input/output rings. However, at least in the default configuration, the least significant 32 bits are always in the base+0x0004 address; independent of the endianness of the bytes itself. That means the addresses do not change with the system endianness. DMA addresses are only 32 bits wide on non-64-bit systems, writing the upper 32 bits of this value to the register for the least significant bits results in the DMA address being set to 0. Fix this by always writing the registers in the same way. Suggested-by: Russell King Signed-off-by: Steffen Trumtrar Signed-off-by: Herbert Xu drivers/crypto/caam/regs.h | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) commit 8efba0e0d01368d5ff490776853057b4913c0472 Author: Sudip Mukherjee Date: Wed Jun 17 16:54:48 2015 +0530 staging: sm7xxfb: fix camelcase Fix the checkpatch warning about CamelCase. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/sm7xxfb/sm7xx.h | 2 +- drivers/staging/sm7xxfb/sm7xxfb.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit e09df4870eed1ea61ced6321ba39af3524773392 Author: Sudip Mukherjee Date: Wed Jun 17 16:54:47 2015 +0530 staging: sm7xxfb: fix indention Fix the odd indention of vesa_mode_table. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/sm7xxfb/sm7xxfb.c | 1300 ++++++++++++++++++------------------- 1 file changed, 650 insertions(+), 650 deletions(-) commit dac7c1bd1e66a1d389e943408f1f29a700411775 Author: Sudip Mukherjee Date: Wed Jun 17 16:54:46 2015 +0530 staging: sm7xxfb: move mode table move vgamode table from the header file to the C file and mark it as const. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/sm7xxfb/sm7xx.h | 660 -------------------------------------- drivers/staging/sm7xxfb/sm7xxfb.c | 660 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 660 insertions(+), 660 deletions(-) commit 36fa82a6f024db3f1f4d9a8690bef30f571b8fbb Author: Sudip Mukherjee Date: Wed Jun 17 16:54:45 2015 +0530 staging: sm7xxfb: reduce indention reduce code indention keeping the logic same. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/sm7xxfb/sm7xxfb.c | 173 ++++++++++++++++++-------------------- 1 file changed, 82 insertions(+), 91 deletions(-) commit f5daff3f7913b7cdddf0c2a27f113646090cd2c1 Author: Sudip Mukherjee Date: Wed Jun 17 16:54:44 2015 +0530 staging: sm7xxfb: fix alignment Fix the alignment. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/sm7xxfb/sm7xxfb.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) commit 3e4b559838c493b960e4323db7b982c9ae4dac0c Author: Sudip Mukherjee Date: Wed Jun 17 16:54:43 2015 +0530 staging: sm7xxfb: no space after cast fixes the checkpatch warning about using space after typecast. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/sm7xxfb/sm7xxfb.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit c32305b5465e1bef8604f94a95aeaf4d36055ba0 Author: Sudip Mukherjee Date: Wed Jun 17 16:54:42 2015 +0530 staging: sm7xxfb: add newline new line was missing in some of the dev_* macros while printing the debug and error messages. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/sm7xxfb/sm7xxfb.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 7caf463de827a09430e4657e6b9d05fd5568e9dc Author: Sudip Mukherjee Date: Wed Jun 17 16:54:41 2015 +0530 staging: sm7xxfb: remove numvgamodes numvgamodes was only used in one place, so remove the #define and use its defined value. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/sm7xxfb/sm7xx.h | 2 -- drivers/staging/sm7xxfb/sm7xxfb.c | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) commit 9d91928c9d70e86635cf34ad11024142f9f73dfc Author: Sudip Mukherjee Date: Wed Jun 17 16:54:40 2015 +0530 staging: sm7xxfb: declare struct as const The vesa_mode_table is not to be modified, so declare it as const. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/sm7xxfb/sm7xxfb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1bbf29ab8f89d2a804e075c4f226a08c1cb7f915 Author: Geert Uytterhoeven Date: Wed Jun 17 10:38:55 2015 +0200 staging: board: armadillo800eva: Board staging for sh_mobile_lcdc_fb Add staging board support for the r8a7740-based armadillo800eva board and add platform devices to allow in-tree continuous development of the drivers on the armadillo800eva board. When DT bindings are ready for theses drivers then the platform devices in the armadillo800eva staging board code can easily be removed. Until then we use platform devices to continuously improve the driver and integrate code. Added platform devices: - sh_mobile_lcdc_fb for the on-board LCD. Signed-off-by: Geert Uytterhoeven Acked-by: Simon Horman Signed-off-by: Greg Kroah-Hartman drivers/staging/board/Makefile | 3 +- drivers/staging/board/armadillo800eva.c | 105 ++++++++++++++++++++++++++++++++ 2 files changed, 107 insertions(+), 1 deletion(-) commit 225d68d852f16369c1f9e61f7aa58cfffcaaff5d Author: Geert Uytterhoeven Date: Wed Jun 17 10:38:54 2015 +0200 staging: board: Add support for devices with complex dependencies Add support for easy registering of one ore more platform devices that may: - need clocks that are described in DT, - be part of a PM Domain. All these dependencies are optional. Signed-off-by: Geert Uytterhoeven Acked-by: Simon Horman Signed-off-by: Greg Kroah-Hartman drivers/staging/board/board.c | 56 +++++++++++++++++++++++++++++++++++++++++++ drivers/staging/board/board.h | 20 ++++++++++++++++ 2 files changed, 76 insertions(+) commit a85890883e18d9b1ab6e500584ee5a4db7d1e39f Author: Geert Uytterhoeven Date: Wed Jun 17 10:38:53 2015 +0200 staging: board: kzm9d: Translate hwirq numbers to virq numbers As of commit 9a1091ef0017c40a ("irqchip: gic: Support hierarchy irq domain."), GIC IRQ numbers are virtual, breaking hardcoded hardware IRQ numbers in platform device resources. Translate the hardware IRQ numbers to virtual IRQ numbers to fix this. Signed-off-by: Geert Uytterhoeven Acked-by: Simon Horman Signed-off-by: Greg Kroah-Hartman drivers/staging/board/kzm9d.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit 72ee8626eeb121587d2e3a57d06611d2e0c3cc1b Author: Geert Uytterhoeven Date: Wed Jun 17 10:38:52 2015 +0200 staging: board: Add support for translating hwirq to virq numbers As of commit 9a1091ef0017c40a ("irqchip: gic: Support hierarchy irq domain."), GIC IRQ numbers are virtual, breaking hardcoded hardware IRQ numbers in platform device resources. Add support for translating hardware IRQ numbers to virtual IRQ numbers, and fixing up platform device resources with hardcoded IRQ numbers. Add a copyright header, including the original author. Signed-off-by: Geert Uytterhoeven Acked-by: Simon Horman Signed-off-by: Greg Kroah-Hartman drivers/staging/board/board.c | 80 +++++++++++++++++++++++++++++++++++++++++++ drivers/staging/board/board.h | 5 +++ 2 files changed, 85 insertions(+) commit b0c750f74e10fd30a363bfa3467639f12954effa Author: Geert Uytterhoeven Date: Wed Jun 17 10:38:51 2015 +0200 staging: board: Initialize staging board code earlier Currently the staging board code is initialized from a late_initcall(). However, unused PM domains are also disabled from a late_initcall(), which happens before due to link order. Change the initialization of staging board code from using late_initcall() to device_initcall() to fix this. Signed-off-by: Geert Uytterhoeven Acked-by: Simon Horman Signed-off-by: Greg Kroah-Hartman drivers/staging/board/board.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d4f4708ae0d0e7e99d5d5c42b3b4a317dab3c01b Author: Geert Uytterhoeven Date: Wed Jun 17 10:38:50 2015 +0200 Revert "staging: board: disable as it breaks the build" This reverts commit d13778d537a0ed6115d2a79a942af999cfb8eec6. Commit 13c11072536f2613 ("staging:board: remove unnecessary function") fixed the build of drivers/staging/board/board.c. Signed-off-by: Geert Uytterhoeven Reviewed-by: Simon Horman Acked-by: Simon Horman Signed-off-by: Greg Kroah-Hartman drivers/staging/board/Kconfig | 1 - 1 file changed, 1 deletion(-) commit 92a0616a4f37ce520b8011ac0e3638ffa618ff16 Author: Abdul Hussain Date: Tue Jun 16 07:18:08 2015 +0000 Staging: lusture: Remove an open coded simple_open() function This patch removes an open coded simple_open() function and replace file operations references to the function with simple_open() instead Signed-off-by: Abdul Hussain Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/fld/lproc_fld.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) commit 658373e54c462dc48bdfaa393da549fd7cc594b1 Author: Niranjan Dighe Date: Tue Jun 16 05:05:47 2015 +0000 Staging: sm750fb: correct spacing between lines of code This patch corrects line spacing by removing and adding newline characters wherever necessary Signed-off-by: Niranjan Dighe Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/ddk750_dvi.h | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit 231fe7ca1ad57cc08ce9a68aebe7592d37f1688b Author: Niranjan Dighe Date: Tue Jun 16 05:04:01 2015 +0000 Staging: sm750fb: replace spaces by tabs This patch replaces spaces by tabs at the start of the line and in between variable declarations. Signed-off-by: Niranjan Dighe Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/ddk750_dvi.h | 60 ++++++++++++++++++------------------ 1 file changed, 30 insertions(+), 30 deletions(-) commit 2e59e40d5d63ff805c9a5299be8b8e5e299dc6b6 Author: Gnanachandran Dhanapal Date: Tue Jun 16 07:25:48 2015 +0000 Staging: rtl8192e: Timer setup using macro rather assignment This patch shall replaces user defined timer setup function with standard timer setup macro. Also removes init_timer, because timer can be initialized in setup_timer macro as well. Signed-off-by: Gnanachandran Dhanapal Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 -- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 1 - drivers/staging/rtl8192e/rtl819x_TS.h | 1 - drivers/staging/rtl8192e/rtl819x_TSProc.c | 18 +++++++++--------- drivers/staging/rtl8192e/rtllib_module.c | 6 ------ drivers/staging/rtl8192e/rtllib_softmac.c | 4 ++-- 6 files changed, 11 insertions(+), 21 deletions(-) commit 47eae6ddd9cf12781cefe6ec458d791174cb59b9 Author: Mateusz Kulikowski Date: Mon Jun 15 21:06:10 2015 +0200 staging: rtl8192e: Remove rtllib_device::agregation Variable is always true; Resolve condition where it is used (and change indentation of conditional expression). Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtllib.h | 1 - drivers/staging/rtl8192e/rtllib_rx.c | 52 ++++++++++++++----------------- drivers/staging/rtl8192e/rtllib_softmac.c | 1 - 3 files changed, 24 insertions(+), 30 deletions(-) commit 0941f87fd52333ffd2abc8a09c3102392b1f7b0c Author: Mateusz Kulikowski Date: Mon Jun 15 21:06:09 2015 +0200 staging: rtl8192e: Remove softmac_hint11d_wq queue This queue is never used, and function handler is empty Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtllib.h | 1 - drivers/staging/rtl8192e/rtllib_softmac.c | 6 ------ 2 files changed, 7 deletions(-) commit 48eb2b7ea64dff6e659181325a0e464994170e59 Author: Mateusz Kulikowski Date: Mon Jun 15 21:06:08 2015 +0200 staging: rtl8192e: Remove unused rtllib_device members Delete several members of rtllib_device including their initializers if needed. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 6 ------ drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 1 - drivers/staging/rtl8192e/rtllib.h | 12 ------------ drivers/staging/rtl8192e/rtllib_module.c | 3 --- drivers/staging/rtl8192e/rtllib_softmac.c | 6 ------ 5 files changed, 28 deletions(-) commit 6898f7d1ea5835b0d9b594f38531d8f787d2e495 Author: Mateusz Kulikowski Date: Mon Jun 15 21:06:07 2015 +0200 staging: rtl8192e: Remove rt_pwr_save_ctrl members Following members were removed: - tmpJoinAction - tmpSuppRateBuf - bTmpIbpm As a consequence several unused defines/enums/structs were also removed from rtllib.h Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtllib.h | 36 ------------------------------------ 1 file changed, 36 deletions(-) commit 7f5678ee533b2e9a1c7a4c436e42607be50e0fb5 Author: Mateusz Kulikowski Date: Mon Jun 15 21:06:06 2015 +0200 staging: rtl8192e: Remove rtllib_network::last_associate Variable was initialized and never used. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtllib.h | 1 - drivers/staging/rtl8192e/rtllib_rx.c | 2 -- 2 files changed, 3 deletions(-) commit 814732423fa55d0cf7a86dba663a2f2685c02a80 Author: Mateusz Kulikowski Date: Mon Jun 15 21:06:05 2015 +0200 staging: rtl8192e: Remove WIRELESS_EXT checks Current WIRELESS_EXT version is at least 22. Resolve ifdefs and delete dead code. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtllib.h | 12 ------------ 1 file changed, 12 deletions(-) commit d12bc89af1c7edf0b5ad34a76e605510795d1736 Author: Mateusz Kulikowski Date: Mon Jun 15 21:06:04 2015 +0200 staging: rtl8192e: Remove rtllib_device::get_nic_desc_num() This function/callback was initialized and never called. rtl8192_get_nic_desc_num() function that was default implementation was also removed. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 17 ----------------- drivers/staging/rtl8192e/rtllib.h | 1 - 2 files changed, 18 deletions(-) commit 0992510c7a4e00789ea91ec9fc5f8dfd19eab8dd Author: Mateusz Kulikowski Date: Mon Jun 15 21:06:03 2015 +0200 staging: rtl8192e: Remove rtllib_wx_get_encode_ext() This function was declared but never unused. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtllib.h | 3 -- drivers/staging/rtl8192e/rtllib_wx.c | 57 ------------------------------------ 2 files changed, 60 deletions(-) commit 79b7d693d57bba56dcfb66e59189b98dbdc39ede Author: Mateusz Kulikowski Date: Mon Jun 15 21:06:02 2015 +0200 staging: rtl8192e: Remove rtllib_is_shortslot() This function was declared but never unused. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtllib.h | 1 - drivers/staging/rtl8192e/rtllib_softmac.c | 5 ----- 2 files changed, 6 deletions(-) commit 4b2f218471a63214a5e1785421eb4cf9aae0ba1d Author: Mateusz Kulikowski Date: Mon Jun 15 21:06:01 2015 +0200 staging: rtl8192e: Remove rtllib_wake_queue() This function was declared but never unused. Also remove dequeue_mgmt() and rtllib_resume_tx() that are no longer used. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtllib.h | 1 - drivers/staging/rtl8192e/rtllib_softmac.c | 80 ------------------------------- 2 files changed, 81 deletions(-) commit f52598466088295caf013713a1472588731c094f Author: Mateusz Kulikowski Date: Mon Jun 15 21:06:00 2015 +0200 staging: rtl8192e: Remove rtllib_stop_queue() This function was declared but never unused. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtllib.h | 1 - drivers/staging/rtl8192e/rtllib_softmac.c | 12 ------------ 2 files changed, 13 deletions(-) commit 5c3ea2f5b94daafe9b714cd573ff4dc5b21b8153 Author: Mateusz Kulikowski Date: Mon Jun 15 21:05:59 2015 +0200 staging: rtl8192e: Remove ENABLE_LOCK_DEBUG reference ENABLE_LOCK_DEBUG macro was never set, so condition that used it can be resolved manually. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtllib.h | 2 -- 1 file changed, 2 deletions(-) commit bcf5b92d9bbf0b7683199615f0f184e89fa486bc Author: Mateusz Kulikowski Date: Mon Jun 15 21:05:58 2015 +0200 staging: rtl8192e: Remove rt_hi_throughput::ChnkOp Field was initialized and never used. This patch also removes chnl_op enum that was only referenced by ChnkOp init code. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl819x_HT.h | 8 -------- drivers/staging/rtl8192e/rtl819x_HTProc.c | 1 - 2 files changed, 9 deletions(-) commit b27c7160c52bec835e4a439f29feecc0360f301e Author: Mateusz Kulikowski Date: Mon Jun 15 21:05:57 2015 +0200 staging: rtl8192e: Remove unused code in rtllib.h Delete macros, structure members and declarations etc. that are not referenced anywhere in code. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtllib.h | 448 -------------------------------------- 1 file changed, 448 deletions(-) commit 8f1574c7c0480ea8eec86514c490810e6f3c299a Author: Mateusz Kulikowski Date: Mon Jun 15 21:05:56 2015 +0200 staging: rtl8192e: Remove unused code in rtl819x_HT.h Delete unused enums, structures and macros. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl819x_HT.h | 128 ---------------------------------- 1 file changed, 128 deletions(-) commit 80cf407fd48b27ebc2c1221c916d7a4c53178b89 Author: Gaston Gonzalez Date: Sun Jun 14 19:59:34 2015 -0300 staging: rtl8192u: ieee80211: Fix incorrect type in assignment Added le16_to_cpu() conversion fixing the following warning in assignment detected by sparse: drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:2157:30: warning: invalid assignment: += drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:2157:30: left side has type unsigned long drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:2157:30: right side has type restricted __le16 Signed-off-by: Gaston Gonzalez Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit da2a7272e6e6071dbbe81d3ca65d9adcde5a8e23 Author: Prasanna Karthik Date: Tue Jun 16 13:42:02 2015 +0000 staging:lustre:mdc: Fix return statement reported by coccinelle Modified return statement and removed local declaration no longer needed. No Compiler warnings. Signed-off-by: Prasanna Karthik Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/mdc/mdc_request.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 79b45a0ff001946378f9c36469487326a0e9d2b2 Author: Maxime Lorrillere Date: Tue Jun 16 11:35:28 2015 +0200 staging:lustre fix lines starting with spaces in libcfs/hash.c This patch fixes lines starting with spaces. Signed-off-by: Maxime Lorrillere Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/libcfs/hash.c | 32 ++++++++++++++--------------- 1 file changed, 16 insertions(+), 16 deletions(-) commit 4a07594e702cfa12efb2177c9a2eb347c7cb84f9 Author: Abdul Hussain Date: Tue Jun 16 07:05:17 2015 +0000 Staging: lustre: Use memdup_user rather than duplicating its implementation This patch uses memdup_user rather than duplicating its implementation Signed-off-by: Abdul Hussain Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/dir.c | 32 +++++++++---------------------- 1 file changed, 9 insertions(+), 23 deletions(-) commit 0c027bc378932fa3208c3d847cc1d9b2b98ad725 Author: Abdul Hussain Date: Tue Jun 16 07:04:51 2015 +0000 Staging: lustre: Use memdup_user rather than duplicating its implementation This patch uses memdup_user rather than duplicating its implementation Signed-off-by: Abdul Hussain Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/file.c | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) commit d46bc00c3fac4c1066dd88582f215187436d1711 Author: Hari Prasath Gujulan Elango Date: Tue Jun 16 13:43:50 2015 +0000 staging: comedi: amplc_pci230: rename 'todo' variable This patch renames the very generic variable name 'todo' to nsamples. Signed-off-by: Hari Prasath Gujulan Elango Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/amplc_pci230.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 4c05c50d727c992223dc024b79b9f3f30d6c9b54 Author: Hari Prasath Gujulan Elango Date: Tue Jun 16 14:15:46 2015 +0000 staging: comedi: use BIT macro for bit shift operation This patch silences the Checkpatch.pl warning 'Prefer using the BIT macro' Signed-off-by: Hari Prasath Gujulan Elango Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/comedidev.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 716baa7b430c66187a41e4d41eedf5de01343b21 Author: Peng Fan Date: Tue Jun 16 23:13:21 2015 +0800 staging: nvec: remove duplicated const Sparse checking warning: "drivers/staging/nvec/nvec_ps2.c:172:14: warning: duplicate const". Remove the duplicated const to fix the warning. Signed-off-by: Peng Fan Acked-by: Marc Dietrich Signed-off-by: Greg Kroah-Hartman drivers/staging/nvec/nvec_ps2.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b62b54378c4a3badbab2c76c12b44b67d94af215 Author: Hari Prasath Gujulan Elango Date: Wed Jun 17 07:26:59 2015 +0000 staging: slicoss: remove unused macro This patch removes a couple of ununsed MACRO's in this header file Signed-off-by: Hari Prasath Gujulan Elango Signed-off-by: Greg Kroah-Hartman drivers/staging/slicoss/slic.h | 2 -- 1 file changed, 2 deletions(-) commit e75e8cacba0ea26571f6ce5145c6d0a235161454 Author: Malcolm Priestley Date: Tue Jun 16 23:43:12 2015 +0100 staging: vt6655: use module_pci_driver helper Remove vt6655_init_module and vt6655_cleanup_module and replace module_pci_driver Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6655/device_main.c | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) commit b51c88171ee9c8e9fac8a99b64fd0a056a8fcb85 Author: Malcolm Priestley Date: Tue Jun 16 23:43:11 2015 +0100 staging: vt6655: remove suspend struct notifier_block. The only thing this does is vt6655_suspend which is already been called upon suspend. Remove function device_notify_reboot and structure device_notifier. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6655/device_main.c | 37 ------------------------------------ 1 file changed, 37 deletions(-) commit 5699c0f4fcf9196652d3bba24c8c83557dc82d97 Author: Abdul Hussain Date: Tue Jun 16 05:43:16 2015 +0000 staging: vt6656: Boolean tests don't need comparisons. This patch remove true and false from boolean tests. Signed-off-by: Abdul Hussain Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6656/card.c | 2 +- drivers/staging/vt6656/main_usb.c | 2 +- drivers/staging/vt6656/rxtx.c | 2 +- drivers/staging/vt6656/usbpipe.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) commit 3bfef6500818677abdbf5c0d8c3bce0caae539a3 Author: Prasanna Karthik Date: Wed Jun 17 12:50:14 2015 +0000 staging:rtl8723au: Fix return statement reported by coccinelle Modified return statement and removed local declaration no longer needed. No Compiler warnings. Signed-off-by: Prasanna Karthik Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8723au/hal/rtl8723a_rf6052.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 5534b8a1902f1b1710b1c714f6efc9adfdc86f93 Author: Daniele Alessandrelli Date: Mon Jun 15 20:44:21 2015 +0200 staging: rtl8723au: include/rtl8723a_hal.h: use __leXX types in fw header struct This patch makes fields in struct rt_8723a_firmware_hdr use endianness-aware types (__leXX), thus fixing the following sparse warnings: CHECK drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:263:37: warning: cast to restricted __le16 drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:265:39: warning: cast to restricted __le16 drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:277:13: warning: cast to restricted __le16 drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:277:13: warning: cast to restricted __le16 drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:277:13: warning: cast to restricted __le16 Signed-off-by: Daniele Alessandrelli Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8723au/include/rtl8723a_hal.h | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) commit ff8453b3138aa5da64f70edbfb0912c536ce4510 Author: Daniele Alessandrelli Date: Mon Jun 15 20:44:20 2015 +0200 staging: rtl8723au: include/rtl8723a_hal.h: fix Rsvd1 size in fw header struct The size of field Rsvd1 in struct rt_8723a_firmware_hdr should be u8 otherwise we exceeds the boundaries of "LONG WORD 0". This patch fixes the issue. Signed-off-by: Daniele Alessandrelli Acked-by: Jes Sorensen Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8723au/include/rtl8723a_hal.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 07a55cd9b27a3a3f349617bd5037426ff2995f1c Author: Andreas Ruprecht Date: Mon Jun 15 15:03:00 2015 +0200 staging: rtl8723au: core: Remove unneeded #ifdefs In rtw_mlme_ext.c, nested #ifdef blocks form the following structure inside the file: #ifdef CONFIG_8723AU_AP_MODE (line 1323) [...] #ifdef CONFIG_8723AU_AP_MODE (line 1720) [...] #endif (2 more ifdef blocks with CONFIG_8723AU_AP_MODE follow) [...] #endif /* CONFIG_8723AU_AP_MODE */ (line 1763) The inner #ifdefs are unnecessary as they depend on the same condition as the outer #ifdef and can thus be removed. Signed-off-by: Andreas Ruprecht Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8723au/core/rtw_mlme_ext.c | 6 ------ 1 file changed, 6 deletions(-) commit a9b693cd77d70fb93dad8cbce667a49cd9b87352 Author: Fabio Falzoi Date: Sun Jun 14 15:48:53 2015 +0200 Staging: rts5208: helper function to manage delink states Use a helper function to manage delink states Signed-off-by: Fabio Falzoi Signed-off-by: Greg Kroah-Hartman drivers/staging/rts5208/rtsx_chip.c | 141 ++++++++++++++++++------------------ 1 file changed, 72 insertions(+), 69 deletions(-) commit 00aa7161fc2253fa1347a2795193e95690b9af86 Author: Fabio Falzoi Date: Sun Jun 14 15:48:52 2015 +0200 Staging: rts5208: helper function to manage 1lun and 2lun modes Use a helper function to manage lun modes when SUPPORT_OCP is defined Signed-off-by: Fabio Falzoi Signed-off-by: Greg Kroah-Hartman drivers/staging/rts5208/rtsx_chip.c | 97 ++++++++++++++++++++----------------- 1 file changed, 53 insertions(+), 44 deletions(-) commit 76d833a8d9425618b7798227554d6a6729f3de5d Author: Fabio Falzoi Date: Sun Jun 14 15:48:51 2015 +0200 Staging: rts5208: helper function to manage idle Use a helper function to manage idle state Signed-off-by: Fabio Falzoi Signed-off-by: Greg Kroah-Hartman drivers/staging/rts5208/rtsx_chip.c | 45 ++++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 20 deletions(-) commit 884a27e36e0ebd009f2efc3a0b8d40cb0290907d Author: Fabio Falzoi Date: Sun Jun 14 15:48:50 2015 +0200 Staging: rts5208: helper function to manage aspm Use a helper function to manage aspm mode Signed-off-by: Fabio Falzoi Signed-off-by: Greg Kroah-Hartman drivers/staging/rts5208/rtsx_chip.c | 51 ++++++++++++++++++++++--------------- 1 file changed, 30 insertions(+), 21 deletions(-) commit 319499380ceac581cbb73caf64d6814e7c606344 Author: Fabio Falzoi Date: Sun Jun 14 15:48:49 2015 +0200 Staging: rts5208: helper function to manage ss Use a helper function to manage ss_counter Signed-off-by: Fabio Falzoi Signed-off-by: Greg Kroah-Hartman drivers/staging/rts5208/rtsx_chip.c | 66 ++++++++++++++++++------------------- 1 file changed, 33 insertions(+), 33 deletions(-) commit 507635763d83f425debd41c58e6c95e31db56323 Author: Fabio Falzoi Date: Sun Jun 14 15:48:48 2015 +0200 Staging: rts5208: helper function to manage power off Use a helper function to check if power off is needed. Signed-off-by: Fabio Falzoi Signed-off-by: Greg Kroah-Hartman drivers/staging/rts5208/rtsx_chip.c | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) commit cb547643c37cc78b7eabeb236bcc618b31e66d5b Author: Fabio Falzoi Date: Sun Jun 14 15:48:47 2015 +0200 Staging: rts5208: helper function to manage sd erase status Use a helper function to manage SD erase status when SUPPORT_SD_LOCK is defined Signed-off-by: Fabio Falzoi Signed-off-by: Greg Kroah-Hartman drivers/staging/rts5208/rtsx_chip.c | 38 ++++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 17 deletions(-) commit 1d1c5b24f949a014a636687711fcec0f84359ffd Author: Sunghoon Cho Date: Wed Jun 17 14:42:36 2015 +0900 staging: wilc1000: add a blank line This adds a blank line after struct declaration, WILC_WFI_mon_priv. Signed-off-by: Sunghoon Cho Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_netdevice.h | 1 + 1 file changed, 1 insertion(+) commit 9f5e9a2bdf62b3d1c80cf0b1ab97e8cd4bb6bb8b Author: Sunghoon Cho Date: Wed Jun 17 14:42:33 2015 +0900 staging: wilc1000: remove unnecessary blank line. This patch removes blank line which is not necesssary after an open brace. Signed-off-by: Sunghoon Cho Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_netdevice.h | 1 - 1 file changed, 1 deletion(-) commit 93f822bbe8eab5c7b6b06cbee94600900cf320b2 Author: Sunghoon Cho Date: Wed Jun 17 14:42:32 2015 +0900 staging: wilc1000: remove the warnings on the multiple blank lines. This patch removes the warnings reported by checkpatch.pl regarding on the multiple blank line uses. Signed-off-by: Sunghoon Cho Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_netdevice.h | 15 --------------- 1 file changed, 15 deletions(-) commit 25fe2274de25e1583faa38e3b7c574c0c9125de1 Author: Abdul Hussain Date: Wed Jun 17 04:48:23 2015 +0000 Staging: wilc1000: Remove casting the values returned by kmalloc() This patch removes casting the values returned by memory allocation functions. Signed-off-by: Abdul Hussain Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_mon.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8103a48d3691bdd8ba757ab24a273120f4b1ae47 Author: Peter Karlsson Date: Wed Jun 17 17:32:11 2015 +0200 staging: ft1000-usb: Removed global initialization Fix checkpatch error about initialize globals to 0. Signed-off-by: Peter Karlsson Signed-off-by: Greg Kroah-Hartman drivers/staging/ft1000/ft1000-usb/ft1000_debug.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f9d3faee24235609013b4927635c73dbbde02595 Author: Peter Karlsson Date: Wed Jun 17 17:32:10 2015 +0200 staging: ft1000-usb: Removed unnecessary parenthes Fix checkpatch warning about unnecessary parenthes. Signed-off-by: Peter Karlsson Signed-off-by: Greg Kroah-Hartman drivers/staging/ft1000/ft1000-usb/ft1000_debug.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7b174df6508658335954dde1ca04785644ed6c05 Author: Michał Kępień Date: Tue Jun 16 15:21:23 2015 +0200 staging: ft1000: ft1000-usb: ft1000_hw.c: fix long lines Fix checkpatch.pl warnings about lines longer than 80 characters. Signed-off-by: Michał Kępień Signed-off-by: Greg Kroah-Hartman drivers/staging/ft1000/ft1000-usb/ft1000_hw.c | 58 +++++++++++++-------------- 1 file changed, 29 insertions(+), 29 deletions(-) commit 0dc499aff57f5e787214d5085dd1c391e0f93710 Merge: 2aeab68 d5084f1 Author: Dave Airlie Date: Thu Jun 18 13:01:04 2015 +1000 Merge branch 'virtio-gpu-drm-next' of git://git.kraxel.org/linux into drm-next fixes and virtio-vga support. * 'virtio-gpu-drm-next' of git://git.kraxel.org/linux: virtio-gpu: add locking for vbuf pool drm/virtgpu: initialise fbdev after getting initial display info Add virtio-vga bits. commit 2aeab6884b77459029f37a1d7f741a296e5c3f5f Merge: c861acc 4946b04 Author: Dave Airlie Date: Thu Jun 18 12:55:03 2015 +1000 Merge tag 'drm/panel/for-4.2-rc1' of git://anongit.freedesktop.org/tegra/linux into drm-next drm/panel: Changes for v4.2-rc1 This contains fixes for the long-standing build issues that some of the bridge drivers were exposing. Other than that it's mostly cleanup and a couple of new simple panels that are supported. * tag 'drm/panel/for-4.2-rc1' of git://anongit.freedesktop.org/tegra/linux: drm/panel: simple: Add bus format for HannStar HSD100PXN1 drm/panel: simple: Add display timing for HannStar HSD100PXN1 drm/panel: ld9040: Remove useless padding drm/panel: Constify OF match tables drm/bridge: Remove stale ptn3460.h include drm/bridge: ps8622: Include linux/gpio/consumer.h drm/bridge: ptn3460: Include linux/gpio/consumer.h drm/bridge: dw-hdmi: Return number of EDID modes drm/panel: simple: Add support for LG LB070WV8 800x480 7" panel drm/bridge: ptn3460: Pass flags to devm_gpiod_get() drm/bridge: ps8622: Pass flags to devm_gpiod_get() drm/bridge: ptn3460: Fix I2C ID table to match the reported modalias drm/bridge: dw-hdmi: Staticize dw_hdmi_bridge_funcs commit c861acc4d5fc249a0febf38dfebbb431b21628dd Merge: a21be4e 8a8005e Author: Dave Airlie Date: Thu Jun 18 12:53:54 2015 +1000 Merge tag 'drm/tegra/for-4.2-rc1' of git://anongit.freedesktop.org/tegra/linux into drm-next drm/tegra: Changes for v4.2-rc1 This contains a couple of mostly fixes for issues that have crept up in recent versions of linux-next. One issue is that DP AUX transactions of more than 4 bytes will access the wrong FIFO registers and hence become corrupt. Another fix is required to restore functionality of Tegra20 if using the GART. The current code expects the IOMMU aperture to be the complete 4 GiB address space, whereas the GART on Tegra20 only provides a 128 MiB aperture. One more issue with IOMMU support is that on 64-bit ARM, swiotlb is the default IOMMU implementation backing the DMA API. A side-effect of that is that when dma_map_sg() is called to flush caches (yes, this is a bit of a hack, but ARM does not provide a better API), swiotlb will immediately run out of memory because its bounce buffer is too small to make a framebuffer. Finally I've included a mostly cosmetic fix that stores register values in u32 rather than unsigned long to avoid sign-extension issues on 64- bit ARM. This is only a precaution since it hasn't caused any issues (yet). * tag 'drm/tegra/for-4.2-rc1' of git://anongit.freedesktop.org/tegra/linux: drm/tegra: dpaux: Registers are 32-bit drm/tegra: gem: Flush pages after allocation drm/tegra: gem: Take into account IOMMU aperture drm/tegra: dpaux: Fix transfers larger than 4 bytes commit a21be4ece9f0702fa0fb724d9cc34b329a4343fc Merge: c90a95b 263b39f Author: Dave Airlie Date: Thu Jun 18 12:52:49 2015 +1000 Merge branch 'drm/next/du' of git://linuxtv.org/pinchartl/fbdev into drm-next rcar-du fixes * 'drm/next/du' of git://linuxtv.org/pinchartl/fbdev: drm: rcar-du: Use the drm atomic state duplication helpers for planes drm: rcar-du: Clean up planes in the error paths of .atomic_commit() drm: rcar-du: Convert rcar_du_encoders_init_one() return value to 0/<0 drm: rcar-du: Clarify error message when encoder initialization fails drm: rcar-du: Fix crash with groups that have less than 9 planes drm: rcar-du: Disable all planes when stopping the CRTC drm: rcar-du: Print the error value when DRM/KMS init fails commit c90a95bfa2ef4b00df250324a513453360477dcf Merge: 284b288 7861c7a Author: Dave Airlie Date: Thu Jun 18 12:51:20 2015 +1000 Merge tag 'drm-amdkfd-next-fixes-2015-06-16' of git://people.freedesktop.org/~gabbayo/linux into drm-next - Dan fixed some range checks in the address watch ioctl impl. - Remove obsolete member from radeon_device structure * tag 'drm-amdkfd-next-fixes-2015-06-16' of git://people.freedesktop.org/~gabbayo/linux: drm/amdkfd: fix some range checks in address watch ioctl drm/radeon: remove obsolete kfd_bo from radeon_device commit c70701131f7a8edea91fc49d11796d342cff7c62 Author: Trond Myklebust Date: Wed Jun 17 19:56:22 2015 -0400 NFS: Ensure we set NFS_CONTEXT_RESEND_WRITES when requeuing writes If a write attempt fails, and the write is queued up for resending to the server, as opposed to being dropped, then we need to set the appropriate flag so that nfs_file_fsync() does the right thing. Cc: stable@vger.kernel.org Signed-off-by: Trond Myklebust fs/nfs/pnfs.c | 1 + fs/nfs/write.c | 1 + 2 files changed, 2 insertions(+) commit 1ca018d28d96d07788474abf66a5f3e9594841f5 Author: Trond Myklebust Date: Wed Jun 17 19:41:51 2015 -0400 pNFS: Fix a memory leak when attempted pnfs fails pnfs_do_write() expects the call to pnfs_write_through_mds() to free the pgio header and to release the layout segment before exiting. The problem is that nfs_pgio_data_destroy() doesn't actually do this; it only frees the memory allocated by nfs_generic_pgio(). Ditto for pnfs_do_read()... Fix in both cases is to add a call to hdr->release(hdr). Cc: stable@vger.kernel.org Signed-off-by: Trond Myklebust fs/nfs/pnfs.c | 2 ++ 1 file changed, 2 insertions(+) commit fda052b0a52261ecad8c8beb6bcfa1663a35975f Merge: b9e2c09 5bcc3b0 99472cc 2c05136 Author: Mark Brown Date: Thu Jun 18 00:19:56 2015 +0100 Merge remote-tracking branches 'spi/topic/sirf', 'spi/topic/spidev' and 'spi/topic/zynq' into spi-next commit b9e2c097efe19c3c04ea3d84b295748e39e96c2b Merge: b6e6dc8 8422ddf b2b3024 cc2e932 23f6d39 3789c8520 Author: Mark Brown Date: Thu Jun 18 00:19:53 2015 +0100 Merge remote-tracking branches 'spi/topic/pxa', 'spi/topic/rb4xx', 'spi/topic/rspi', 'spi/topic/s3c64xx' and 'spi/topic/sh-msiof' into spi-next commit b6e6dc80341028103e090190f209ef3866255230 Merge: 9a8d141 812d6f6 5c2301a db1b820 4dacccf Author: Mark Brown Date: Thu Jun 18 00:19:51 2015 +0100 Merge remote-tracking branches 'spi/topic/fsl-dspi', 'spi/topic/gpio', 'spi/topic/imx' and 'spi/topic/orion' into spi-next commit 9a8d141d5ab1b50b3ab453fba1ee42da3b85919b Merge: 60ab73a 83f0f39 11f2764 e0b047b Author: Mark Brown Date: Thu Jun 18 00:19:50 2015 +0100 Merge remote-tracking branches 'spi/topic/ath79', 'spi/topic/atmel' and 'spi/topic/davinci' into spi-next commit 60ab73a217039853f71896007a7b30af0e917022 Merge: 5d6ada6 c4339ac Author: Mark Brown Date: Thu Jun 18 00:19:49 2015 +0100 Merge remote-tracking branch 'spi/topic/omap2-mcspi' into spi-next commit 5d6ada671b01acfb2d6c5c9968babc0621bfe7e7 Merge: 5bfb10d 29ad1a7 Author: Mark Brown Date: Thu Jun 18 00:19:48 2015 +0100 Merge remote-tracking branch 'spi/topic/bcm2835' into spi-next commit 5bfb10d78e629196ec9fce7d944e28ee9592ee2f Merge: 8757091 9deef02 7a0a175 ce2f6ea ea6055c Author: Mark Brown Date: Thu Jun 18 00:19:46 2015 +0100 Merge remote-tracking branches 'spi/fix/fsl-dspi', 'spi/fix/fsl-espi', 'spi/fix/orion' and 'spi/fix/pl022' into spi-linus commit 8757091bfa92579527ad2e7b22b22c7def0139ce Merge: 0f57d86 4b78645 Author: Mark Brown Date: Thu Jun 18 00:19:45 2015 +0100 Merge remote-tracking branch 'spi/fix/core' into spi-linus commit c99ee51a9d9716fe33f5022c763728a565e3bd08 Author: Kees Cook Date: Tue Jun 16 10:54:14 2015 -0700 selftests: add seccomp suite This imports the existing seccomp test suite into the kernel's selftests tree. It contains extensive testing of seccomp features and corner cases. There remain additional tests to move into the kernel tree, but they have not yet been ported to all the architectures seccomp supports: https://github.com/redpig/seccomp/tree/master/tests Signed-off-by: Kees Cook Signed-off-by: Shuah Khan MAINTAINERS | 1 + tools/testing/selftests/Makefile | 1 + tools/testing/selftests/seccomp/.gitignore | 1 + tools/testing/selftests/seccomp/Makefile | 10 + tools/testing/selftests/seccomp/seccomp_bpf.c | 2109 ++++++++++++++++++++++++ tools/testing/selftests/seccomp/test_harness.h | 537 ++++++ 6 files changed, 2659 insertions(+) commit 3784e0c6b02d4fa0966abb01b74eedeb8cd64603 Author: Bjorn Helgaas Date: Mon Jun 15 16:28:29 2015 -0500 PCI: pciehp: Clean up debug logging The pciehp debug logging is overly verbose and often redundant. Almost all of the information printed by dbg_ctrl() is also printed by the normal PCI core enumeration code and by pcie_init(). Remove the redundant debug info. When claiming a pciehp bridge, we print the slot characteristics, e.g., Slot #6 AttnBtn- AttnInd- PwrInd- PwrCtrl- MRL- Interlock- NoCompl+ LLActRep+ Add the Hot-Plug Capable and Hot-Plug Surprise bits to this information, and print it all in the same order as lspci does. No functional change except the message text changes. Signed-off-by: Bjorn Helgaas Reviewed-by: Rajat Jain Acked-by: Yinghai Lu drivers/pci/hotplug/pciehp_core.c | 39 +++------------------------- drivers/pci/hotplug/pciehp_ctrl.c | 38 +++++---------------------- drivers/pci/hotplug/pciehp_hpc.c | 54 ++++++++------------------------------- 3 files changed, 20 insertions(+), 111 deletions(-) commit 9f3d16207146c56902b3de79a2c3537d81782d8d Merge: bf933db 3d9fecf Author: Bjorn Helgaas Date: Wed Jun 17 17:24:32 2015 -0500 Merge branch 'pci/resource' into next * pci/resource: x86/PCI: Use host bridge _CRS info on systems with >32 bit addressing x86/PCI: Use host bridge _CRS info on Foxconn K8M890-8237A commit 3d9fecf6bfb8b12bc2f9a4c7109895a2a2bb9436 Author: Bjorn Helgaas Date: Tue Jun 9 17:31:38 2015 -0500 x86/PCI: Use host bridge _CRS info on systems with >32 bit addressing We enable _CRS on all systems from 2008 and later. On older systems, we ignore _CRS and assume the whole physical address space (excluding RAM and other devices) is available for PCI devices, but on systems that support physical address spaces larger than 4GB, it's doubtful that the area above 4GB is really available for PCI. After d56dbf5bab8c ("PCI: Allocate 64-bit BARs above 4G when possible"), we try to use that space above 4GB *first*, so we're more likely to put a device there. On Juan's Toshiba Satellite Pro U200, BIOS left the graphics, sound, 1394, and card reader devices unassigned (but only after Windows had been booted). Only the sound device had a 64-bit BAR, so it was the only device placed above 4GB, and hence the only device that didn't work. Keep _CRS enabled even on pre-2008 systems if they support physical address space larger than 4GB. Fixes: d56dbf5bab8c ("PCI: Allocate 64-bit BARs above 4G when possible") Reported-and-tested-by: Juan Dayer Reported-and-tested-by: Alan Horsfield Link: https://bugzilla.kernel.org/show_bug.cgi?id=99221 Link: https://bugzilla.opensuse.org/show_bug.cgi?id=907092 Signed-off-by: Bjorn Helgaas CC: stable@vger.kernel.org # v3.14+ arch/x86/pci/acpi.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 2a973dfada2bcd61e1ce31612677da1a9ecc2124 Author: Ilya Faenson Date: Wed Jun 17 17:30:56 2015 -0400 Bluetooth: hci_uart: Add new line discipline enhancements Added the ability to flow control the UART, improved the UART baud rate setting, transferred the speeds into line discipline from the protocol and introduced the tty init function. Signed-off-by: Ilya Faenson Signed-off-by: Marcel Holtmann drivers/bluetooth/hci_ldisc.c | 108 +++++++++++++++++++++++++++++++++++++++--- drivers/bluetooth/hci_uart.h | 7 +++ 2 files changed, 109 insertions(+), 6 deletions(-) commit 9f85d8f9fa342b22f01b8b4416c850bac00c2b4a Author: Eric Auger Date: Mon Jun 15 11:09:42 2015 +0200 VFIO: platform: add reset struct and lookup table This patch introduces the vfio_platform_reset_combo struct that stores all the information useful to handle the reset modality: compat string, name of the reset function, name of the module that implements the reset function. A lookup table of such structures is added, currently void. Signed-off-by: Eric Auger Acked-by: Baptiste Reynal Tested-by: Baptiste Reynal Signed-off-by: Alex Williamson drivers/vfio/platform/vfio_platform_common.c | 3 +++ drivers/vfio/platform/vfio_platform_private.h | 6 ++++++ 2 files changed, 9 insertions(+) commit 986eec4341729549778f374dfc97e69a991302df Author: Alexander Duyck Date: Wed Jun 3 18:53:17 2015 -0700 fm10k: Fix missing braces after if statement While reviewing the code I noticed that one of the commits added an if statement followed by a for loop, but the if statement was missing the braces around the loop. This change corrects the coding style error. Signed-off-by: Alexander Duyck Acked-by: Jacob Keller Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit ee4373e7d74696821e47faf1b70f779697ddf77b Author: Jacob Keller Date: Wed Jun 3 16:31:12 2015 -0700 fm10k: fix iov_msg_lport_state_pf issue When a VF issues an LPORT_STATE request to enable a port that is already enabled, the PF will first disable the VF LPORT. Then it should re-enable the VF again with the new requested settings. This ensures that any switch rules are cleared by deleting the LPORT on the switch. However, the flow is bugged because we actually check if the VF is enabled at the end, and thus don't re-enable it. Fix the flow so that we actually clear the enabled flags as part of our removal of the LPORT. Signed-off-by: Jacob Keller Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k_pf.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit d18c438884137609bf838a703972126862db97f4 Author: Jacob Keller Date: Wed Jun 3 16:31:11 2015 -0700 fm10k: remove err_no reference in fm10k_mbx.c The reference to err_no was left around after a previous code refactor. We never use the value, and it doesn't seem to be used in side a hidden macro reference. Discovered via cppcheck. Signed-off-by: Jacob Keller Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k_mbx.c | 5 ----- 1 file changed, 5 deletions(-) commit 646725a7c9cbdefd8df4ae7b3217a992ad64a4cd Author: Jacob Keller Date: Wed Jun 3 16:31:10 2015 -0700 fm10k: fix incorrect DIR_NEVATIVE bit in 1588 code The SYSTIME_CFG.Adjust Direction bit is actually supposed to indicate that the adjustment is positive. Fix the code to align correctly with hardware and documentation. Signed-off-by: Jacob Keller Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k_pf.c | 4 ++-- drivers/net/ethernet/intel/fm10k/fm10k_type.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit 7fef39322ce7a0c1bbb5b48bef61b6c1aef73b96 Author: Jacob Keller Date: Wed Jun 3 16:31:09 2015 -0700 fm10k: pack TLV overlay structures This patch adds the __attribute__((packed)) indicator to some structures which are overlayed onto a TLV message. These structures must be packed as small as possible in order to correctly align when copied into the mailbox buffer. Without doing so, the receiving mailbox code incorrectly parses the values and we get invalid message responses from the switch manager software. Signed-off-by: Jacob Keller Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k_pf.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit fba341d5cab38db68eed061cf20e161d967795c6 Author: Jacob Keller Date: Wed Jun 3 16:31:08 2015 -0700 fm10k: re-map all possible VF queues after a VFLR During initialization, the VF counts its rings by walking the TQDLOC registers. This works only if the TQMAP/RQMAP registers are set to map all of the out-of-bound rings back to the first one. This allows the VF to cleanly detect when it has run out of queues. Update the PF code so that it resets the empty TQMAP/RQMAP registers post-VFLR to prevent innocent VF drivers from triggering malicious driver events. Signed-off-by: Matthew Vick Signed-off-by: Jacob Keller Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k_pf.c | 6 ++++++ 1 file changed, 6 insertions(+) commit a38488f54004330071f4ec90c3cf52dc7646468e Author: Jacob Keller Date: Wed Jun 3 16:31:07 2015 -0700 fm10k: force LPORT delete when updating VLAN or MAC address Currently, we don't notify the switch at all when the PF administratively sets a new VLAN or MAC address. This causes the old addresses to remain valid on the switch table. Since the PF is overriding any configuration done directly by the VF, we choose to simply re-create the LPORT for the VF. This does mean that all rules for the VF will be dropped when we set something directly via the PF, but it prevents some weird issues where the MAC/VLAN table retains some stale configuration. Signed-off-by: Jacob Keller Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k_iov.c | 38 +++++++++++++++++----------- 1 file changed, 23 insertions(+), 15 deletions(-) commit c04ae58e2b6d836325914e7b4aa25f43da1be3df Author: Jacob Keller Date: Tue Jun 16 13:41:43 2015 -0700 fm10k: use dma_set_mask_and_coherent in fm10k_probe This patch cleans up the use of dma_get_required_mask and uses the simpler dma_set_mask_and_coherent function instead of doing these as separate steps. I removed the dma_get_required_mask call because based on some minimal testing it appears that either (a) we're not doing the right thing with the call or (b) we don't need it anyways. If the value returned is <48bits, we'll end up trying with 48 bits anyways. If it's over 48bits, fm10k can't support that anyways, and we should try 48bits. If 48bits fails, we'll fallback to 32bits. This cleans up some very funky code. Signed-off-by: Jacob Keller Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k_pci.c | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) commit 0197cde62a0a39fdee606557b8cef6573a83e866 Author: Jacob Keller Date: Tue Jun 16 13:40:32 2015 -0700 fm10k: trivial fixup message style to include a colon Also use %d for error values, since printing in hexadecimal is probably not helpful. Signed-off-by: Jacob Keller Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k_pci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f1f3322eb411ce875b8b9e2de59ee8d55fb3a33b Author: Jacob Keller Date: Wed Jun 3 16:31:04 2015 -0700 fm10k: remove extraneous NULL check on l2_accel l2_accel was checked for NULL at the top of fm10k_dfwd_del_station, and we return if it is not defined. Due to this, we already know it can't be null here so a separate check is meaningless. Discovered via cppcheck. Signed-off-by: Jacob Keller Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k_netdev.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit c0e58e93d722a53aa26b18110389c8131af9ddd9 Author: Jacob Keller Date: Tue Jun 16 13:39:11 2015 -0700 fm10k: use an unsigned int for i in ethtool_get_strings The value will never be negative, and we use the %u print format. Thus, use unsigned int for the loop counter. Issue found using cppcheck. Signed-off-by: Jacob Keller Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ec6acb801e7b2908c24a60c8aabf47c3e40508a4 Author: Jacob Keller Date: Wed Jun 3 16:31:02 2015 -0700 fm10k: add call to fm10k_clean_all_rx_rings in fm10k_down This prevents a memory leak in fm10k_set_ringparams. The leak occurs because we go down, change ring parameters, and then come up. However, fm10k_down on its own is not clearing the Rx rings. Since fm10k_up assumes the rings are clean we basically drop the buffers and leak a bunch of memory. Eventually we hit dirty page faults and reboot the system. This issue does not occur elsewhere because other flows that involve fm10k_down go through fm10k_close which immediately called fm10k_free_all_rx_resources which properly cleans the rings. Signed-off-by: Jacob Keller Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k_pci.c | 1 + 1 file changed, 1 insertion(+) commit c23544b196e72716244108fb173f2965e9eafd1a Author: Jacob Keller Date: Wed Jun 3 16:31:01 2015 -0700 fm10k: fix incorrect free on skb in ts_tx_enqueue This patch resolves a bug in the ts_tx_enqueue code responsible for a NULL pointer dereference and invalid access of the skb list. We incorrectly freed the actual skb we found instead of our copy. Thus the skb queue is essentially invalidated. Resolve this by freeing our clone in the cases where we did not add it to the queue. This also avoids the skb memory leak caused by failure to free the clone. [ 589.719320] BUG: unable to handle kernel NULL pointer dereference at (null) [ 589.722344] IP: [] fm10k_ts_tx_subtask+0xb0/0x160 [fm10k] [ 589.723796] PGD 0 [ 589.725228] Oops: 0000 [#1] SMP Signed-off-by: Jacob Keller Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k_ptp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e075996ebd14dcd3d1a45172316141fe26d891fa Author: Jacob Keller Date: Wed Jun 3 16:31:00 2015 -0700 fm10k: move setting shinfo inside ts_tx_enqueue This patch simplifies the code flow for setting the IN_PROGRESS bit of the shinfo for an skb we will be timestamping. Reported-by: Eric Dumazet Signed-off-by: Jacob Keller Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k_ptp.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 608bb146ff48588c43bf6332912ea8796768fb39 Author: Jacob Keller Date: Wed Jun 3 16:30:59 2015 -0700 fm10k: use correct ethernet driver Tx timestamp function skb_complete_tx_timestamp is intended for use by PHY drivers which implement a different method of returning timestamps. This method is intended to be used after a PHY driver accepts a cloned packet via its phy_driver.txtstamp function. It is not correct to use in the standard ethernet driver such as fm10k. This patch fixes the following possible kernel panic. [ 2744.552896] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G W OE 3.19.3-200.fc21.x86_64 #1 [ 2744.552899] Hardware name: Intel Corporation S2600CO/S2600CO, BIOS SE5C600.86B.02.03.8x23.060520140825 06/05/2014 [ 2744.552901] 0000000000000000 2f4c8b10ea3f9848 ffff88081ee03a38 ffffffff8176e215 [ 2744.552906] 0000000000000000 0000000000000000 ffff88081ee03a78 ffffffff8109bc1a [ 2744.552910] ffff88081ee03c50 ffff88080e55fc00 ffff88080e55fc00 ffffffff81647c50 [ 2744.552914] Call Trace: [ 2744.552917] [] dump_stack+0x45/0x57 [ 2744.552931] [] warn_slowpath_common+0x8a/0xc0 [ 2744.552936] [] ? skb_queue_purge+0x20/0x40 [ 2744.552941] [] warn_slowpath_null+0x1a/0x20 [ 2744.552946] [] skb_release_head_state+0xe1/0xf0 [ 2744.552950] [] skb_release_all+0x16/0x30 [ 2744.552954] [] kfree_skb+0x36/0x90 [ 2744.552958] [] skb_queue_purge+0x20/0x40 [ 2744.552964] [] packet_sock_destruct+0x1d/0x90 [ 2744.552968] [] __sk_free+0x23/0x140 [ 2744.552973] [] sk_free+0x19/0x20 [ 2744.552977] [] skb_complete_tx_timestamp+0x50/0x60 [ 2744.552988] [] fm10k_ts_tx_hwtstamp+0xd0/0x100 [fm10k] [ 2744.552994] [] fm10k_1588_msg_pf+0x12e/0x140 [fm10k] [ 2744.553002] [] fm10k_tlv_msg_parse+0x8d/0xc0 [fm10k] [ 2744.553010] [] fm10k_mbx_dequeue_rx+0x60/0xb0 [fm10k] [ 2744.553016] [] fm10k_sm_mbx_process+0x178/0x3c0 [fm10k] [ 2744.553022] [] fm10k_msix_mbx_pf+0xfa/0x360 [fm10k] [ 2744.553030] [] ? get_next_timer_interrupt+0x1f7/0x270 [ 2744.553036] [] handle_irq_event_percpu+0x77/0x1a0 [ 2744.553041] [] handle_irq_event+0x3b/0x60 [ 2744.553045] [] handle_edge_irq+0x6e/0x120 [ 2744.553054] [] handle_irq+0x74/0x140 [ 2744.553061] [] ? atomic_notifier_call_chain+0x1a/0x20 [ 2744.553066] [] do_IRQ+0x4f/0xf0 [ 2744.553072] [] common_interrupt+0x6d/0x6d [ 2744.553074] [] ? cpuidle_enter_state+0x66/0x160 [ 2744.553084] [] ? cpuidle_enter_state+0x51/0x160 [ 2744.553087] [] cpuidle_enter+0x17/0x20 [ 2744.553092] [] cpu_startup_entry+0x321/0x3c0 [ 2744.553098] [] rest_init+0x77/0x80 [ 2744.553103] [] start_kernel+0x4a4/0x4c5 [ 2744.553107] [] ? early_idt_handlers+0x120/0x120 [ 2744.553110] [] x86_64_start_reservations+0x2a/0x2c [ 2744.553114] [] x86_64_start_kernel+0x152/0x175 Signed-off-by: Jacob Keller Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k_ptp.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 745136a8b72d638f3ee53a2b6a63f11c64a59937 Author: Jacob Keller Date: Wed Jun 3 16:30:58 2015 -0700 fm10k: ignore invalid multicast address entries This change fixes an issue with adding an invalid multicast address using the iproute2 tool (ip maddr add dev ). The iproute2 tool and the kernel do not validate or filter the multicast addresses when adding them to the multicast list. Thus, when synchronizing this list with an invalid entry, the action will be aborted with an error since the fm10k driver currently validates the list. Consequently, multicast entries beyond the invalid one will not be processed and communicated with the switch via the mailbox. This change makes it so that invalid addresses will simply be skipped and allows synchronizing the full list to proceed. Signed-off-by: Ngai-Mint Kwan Signed-off-by: Jacob Keller Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k_netdev.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) commit 1a8782e59ff9bb0ed4b75d6a346a2ed212bd2031 Author: Alexander Duyck Date: Wed Apr 22 21:49:25 2015 -0700 fm10k: fold fm10k_pull_tail into fm10k_add_rx_frag This change folds the fm10k_pull_tail call into fm10k_add_rx_frag. The advantage to doing this is that the fragment doesn't have to be modified after it is added to the skb. Signed-off-by: Alexander Duyck Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/fm10k/fm10k_main.c | 66 ++++++++------------------- 1 file changed, 20 insertions(+), 46 deletions(-) commit b5926430dfa07d17e5d768c16b0d81c13a793f7c Author: Alexey Kardashevskiy Date: Mon Jun 15 17:49:59 2015 +1000 powerpc/iommu/ioda2: Enable compile with IOV=on and IOMMU_API=off The pnv_pci_ioda2_unset_window() function is used to do the final cleanup of a DMA window being released: - via VFIO ioctl by the guest request; - via unplugging a virtual PCI function. However the function was under #ifdef CONFIG_IOMMU_API and was missing. This moves the helper outside of IOMMU_API block and enables it for either or both IOMMU_API and PCI_IOV. Signed-off-by: Alexey Kardashevskiy Reviewed-by: David Gibson Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/pci-ioda.c | 50 ++++++++++++++++--------------- 1 file changed, 26 insertions(+), 24 deletions(-) commit cdf2bc1c283066d6f0834cc5dd4fcf5d01e44af9 Author: Jeremy Kerr Date: Wed Jun 17 08:35:39 2015 +0800 powerpc/include: Add opal-prd to installed uapi headers We'll want to build the opal-prd daemon with the prd headers, so include this in the uapi headers list. Signed-off-by: Jeremy Kerr Signed-off-by: Michael Ellerman arch/powerpc/include/uapi/asm/Kbuild | 1 + 1 file changed, 1 insertion(+) commit 7185795a62589292015484985635b4a38029a2b9 Author: Jeremy Kerr Date: Mon Jun 15 17:25:34 2015 +0800 powerpc/powernv: fix construction of opal PRD messages We currently have a bug in the PRD code, where the contents of an incoming message (beyond the header) will be overwritten by the list item manipulations when adding to to the prd_msg_queue. This change reorders struct opal_prd_msg_queue_item, so that the message body doesn't overlap the list_head. We also clarify the memcpy of the message, as we're copying unnecessary bytes at the end of the message data. Signed-off-by: Jeremy Kerr Acked-by: Stewart Smith Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/opal-prd.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) commit 02b6505c8f84cbb4be459c9bf8ebbb7b0754e764 Author: Alistair Popple Date: Wed Jun 17 11:36:57 2015 +1000 powerpc/powernv: Increase opal-irqchip initcall priority The eeh subsystem for powernv requires the opal event irqchip to be initialised prior to initialisation or the following errors are produced (and eeh doesn't work as expected): irq: XICS didn't like hwirq-0x9 to VIRQ17 mapping (rc=-22) pnv_eeh_post_init: Can't request OPAL event interrupt (0) On powernv eeh is initialised from a subsys_initcall due to a check for machine_is(powernv) in eeh_init(). This patch increases the initcall priority of opal_event_init() to an arch_initcall to ensure the opal event interface is initialised prior to any users of it. Signed-off-by: Alistair Popple Reported-by: Daniel Axtens Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/opal-irqchip.c | 4 ++++ arch/powerpc/platforms/powernv/opal.c | 3 --- 2 files changed, 4 insertions(+), 3 deletions(-) commit a85fa007b772611fc97f3d68bce33e69a5ed8945 Author: Michael Turquette Date: Wed Jun 17 13:41:04 2015 -0700 MAINTAINERS: update email for Michael Turquette Signed-off-by: Michael Turquette MAINTAINERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b43c5afbf76b6a2d94a05e7c8212afe4f3f0cc08 Merge: b2d8bc2 a431c1f Author: Michael Turquette Date: Wed Jun 17 13:21:22 2015 -0700 Merge branch 'clk-shmobile-for-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers into clk-next commit b2d8bc21ce68b65d7cbaa5c929aac1630acf69fc Merge: d4a4f75 4696568 Author: Michael Turquette Date: Wed Jun 17 13:20:43 2015 -0700 Merge remote-tracking branch 'clk/clk-next' into clk-next commit 5d484f99aed547e235f2229653c95392a1bc3692 Author: Arnaldo Carvalho de Melo Date: Wed Jun 17 16:50:52 2015 -0300 perf top: Allow disabling/enabling events dynamicly Now it is possible to press CTRL+z at anytime and that will disable the events being monitored, essentially turning 'top' into 'report', with pressing CTRL+z again making it enable the events again, returning to the 'top' behaviour, i.e. dynamic + decaying of older samples. One may want, for instance, play with: -d, --delay number of seconds to delay between refreshes and: -z, --zero zero history across updates Plus CTRL+z to see only the events since last zeroing, etc. Suggested-by: Ingo Molnar Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-zq7tnh5462blt2yda0bcxh5b@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-top.c | 52 +++++++++++++++++++++++++++++------------- tools/perf/ui/browsers/hists.c | 2 ++ 2 files changed, 38 insertions(+), 16 deletions(-) commit 2b56bcfb6f4bb0aa0813b6ee1dde8f5b23fce5d4 Author: Arnaldo Carvalho de Melo Date: Wed Jun 17 16:40:26 2015 -0300 perf evlist: Add toggle_enable() method For an upcoming feature in 'perf top' we will have a hotkey to enable/disable events, so remember if the events in the list are enabled or disabled and allows toggling this state using a new method. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-64c4jvdl5feg2zhimxvokqka@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/evlist.c | 9 +++++++++ tools/perf/util/evlist.h | 2 ++ 2 files changed, 11 insertions(+) commit 7951722da2963cc1f1a7831a37aa2311ac927056 Author: Sukadev Bhattiprolu Date: Fri Jun 12 01:28:36 2015 -0400 perf trace: Fix race condition at the end of started workloads I get following crash on multiple systems and across several releases (at least since v3.18). Core was generated by `/tmp/perf trace sleep 0.2 '. Program terminated with signal SIGSEGV, Segmentation fault. #0 perf_mmap__read_head (mm=0x3fff9bf30070) at util/evlist.h:195 195 u64 head = ACCESS_ONCE(pc->data_head); (gdb) bt #0 perf_mmap__read_head (mm=0x3fff9bf30070) at util/evlist.h:195 #1 perf_evlist__mmap_read (evlist=0x10027f11910, idx=) at util/evlist.c:637 #2 0x000000001003ce4c in trace__run (argv=, argc=, trace=0x3fffd7b28288) at builtin-trace.c:2259 #3 cmd_trace (argc=, argv=, prefix=) at builtin-trace.c:2799 #4 0x00000000100657b8 in run_builtin (p=0x10176798 , argc=3, argv=0x3fffd7b2b550) at perf.c:370 #5 0x00000000100063e8 in handle_internal_command (argv=0x3fffd7b2b550, argc=3) at perf.c:429 #6 run_argv (argv=0x3fffd7b2af70, argcp=0x3fffd7b2af7c) at perf.c:473 #7 main (argc=3, argv=0x3fffd7b2b550) at perf.c:588 The problem seems to be a race condition, when the application has just exited. Some/all fds associated with the perf-events (tracepoints) go into a POLLHUP/ POLLERR state and the mmap region associated with those events are unmapped (in perf_evlist__filter_pollfd()). But we go back and do a perf_evlist__mmap_read() which assumes that the mmaps are still valid and we hit the crash. If the mapping for an event is released, its refcnt is 0 (and ->base is NULL), so ensure we have non-zero refcount before accessing the map. Note that perf-record has a similar logic but unlike perf-trace, the record__mmap_read_all() checks the evlist->mmap[i].base before accessing the map. Signed-off-by: Sukadev Bhattiprolu Cc: Jiri Olsa Cc: Li Zhang Link: http://lkml.kernel.org/r/20150612060003.GA19913@us.ibm.com [ Fixed it up to use atomic_read() ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/evlist.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit 7737af010b097f3c1e2aeded21774d58b4aa2698 Author: Masami Hiramatsu Date: Wed Jun 17 23:58:54 2015 +0900 perf probe: Speed up perf probe --list by caching debuginfo Speed up the "perf probe --list" by caching the last used debuginfo. perf probe --list always open and load debuginfo for each entry of probe list. This takes very a long time. E.g. with vfs_* events (total 96 probes) [root@localhost perf]# time ./perf probe -l &> /dev/null real 0m25.376s user 0m24.381s sys 0m1.012s To solve this issue, this adds debuginfo_cache to cache the last used debuginfo on memory. With this fix, the perf-probe --list significantly improves its speed. [root@localhost perf]# time ./perf probe -l &> /dev/null real 0m0.161s user 0m0.136s sys 0m0.025s Signed-off-by: Masami Hiramatsu Tested-by: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Jiri Olsa Cc: Namhyung Kim Cc: Naohiro Aota Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20150617145854.19715.15314.stgit@localhost.localdomain Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/probe-event.c | 48 +++++++++++++++++++++++++++++++++++++++---- 1 file changed, 44 insertions(+), 4 deletions(-) commit d350bd571ffa89fc3bd07cfa9685d5210f459be8 Author: Masami Hiramatsu Date: Tue Jun 16 20:50:57 2015 +0900 perf probe: Show usage even if the last event is skipped When the last part of converted events are blacklisted or out-of-text, those are skipped and perf probe doesn't show usage examples. This fixes it to show the example even if the last part of event list is skipped. E.g. without this patch, events are added, but suddenly end: # perf probe vfs_* vfs_caches_init_early is out of .text, skip it. vfs_caches_init is out of .text, skip it. Added new events: probe:vfs_fallocate (on vfs_*) probe:vfs_open (on vfs_*) ... probe:vfs_dentry_acceptable (on vfs_*) probe:vfs_load_quota_inode (on vfs_*) # With this fix: # perf probe vfs_* vfs_caches_init_early is out of .text, skip it. vfs_caches_init is out of .text, skip it. Added new events: probe:vfs_fallocate (on vfs_*) ... probe:vfs_load_quota_inode (on vfs_*) You can now use it in all perf tools, such as: perf record -e probe:vfs_load_quota_inode -aR sleep 1 Note that this can be reproduced ONLY IF the vfs_caches_init* is the last part of matched symbol list. I've checked this happens on "3.19.0-generic #18-Ubuntu" kernel binary. Signed-off-by: Masami Hiramatsu Cc: David Ahern Cc: Jiri Olsa Cc: Namhyung Kim Cc: Naohiro Aota Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20150616115057.19906.5502.stgit@localhost.localdomain Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/probe-event.c | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) commit 5d618324dd4442d20dbdb039176787199ba2f12b Author: Wang Nan Date: Wed Jun 17 14:46:29 2015 +0000 perf tools: Move libtraceevent dynamic list to separated LDFLAGS variable Commit e3d09ec8126fe2c9a3ade661e2126e215ca27a80 ("tools lib traceevent: Export dynamic symbols used by traceevent plugins") adds libtraceevent dynamic list directly into LDFLAGS, which makes all targets depend on that list through LDFLAGS. This is not good since some of targets like libgtk.so doesn't use plugin at all, but require the existance of that list because of linker options. This patch isolates the -Xlink option into LIBTRACEEVENT_DYNAMIC_LIST_LDFLAGS, makes only perf and perf.so use it. Signed-off-by: Wang Nan Acked-by: Jiri Olsa Cc: He Kuang Cc: Masami Hiramatsu Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1434552389-89144-1-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Makefile.perf | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit b30b617292462ca7ee68834b117a7833f4a52e16 Author: Wang Nan Date: Wed Jun 17 09:56:39 2015 +0000 perf tools: Fix a problem when opening old perf.data with different byte order Following error occurs when trying to use 'perf report' on x86_64 to cross analysis a perf.data generated by an old perf on a big-endian machine: # perf report *** Error in `/home/w00229757/perf': free(): invalid next size (fast): 0x00000000032c99f0 *** ======= Backtrace: ========= /lib64/libc.so.6(+0x6eeef)[0x7ff6ff7e2eef] /lib64/libc.so.6(+0x78cae)[0x7ff6ff7eccae] /lib64/libc.so.6(+0x79987)[0x7ff6ff7ed987] /path/to/perf[0x4ac734] /path/to/perf[0x4ac829] /path/to/perf(perf_header__process_sections+0x129)[0x4ad2c9] /path/to/perf(perf_session__read_header+0x2e1)[0x4ad9e1] /path/to/perf(perf_session__new+0x168)[0x4bd458] /path/to/perf(cmd_report+0xfa0)[0x43eb70] /path/to/perf[0x47adc3] /path/to/perf(main+0x5f6)[0x42fd06] /lib64/libc.so.6(__libc_start_main+0xf5)[0x7ff6ff795bd5] /path/to/perf[0x42fe35] ======= Memory map: ======== [SNIP] The bug is in perf_event__attr_swap(). It swaps all fields in 'struct perf_event_attr' without checking whether the swapped field exist or not. In addition, in read_event_desc() allocs memory for attr according to size read from perf.data. Therefore, if the perf.data is collected by an old perf (without aux_watermark, for example), when perf_event__attr_swap() swaping attr->aux_watermark it destroy malloc's metadata. This patch introduces boundary checking in perf_event__attr_swap(). It adds macros bswap_field_64 and bswap_field_32 into perf_event__attr_swap() to make it only swap exist fields. Signed-off-by: Wang Nan Acked-by: Jiri Olsa Cc: Ingo Molnar Cc: Masami Hiramatsu Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1434534999-85347-1-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/session.c | 50 ++++++++++++++++++++++++++++++++++------------- 1 file changed, 36 insertions(+), 14 deletions(-) commit 3e1534cf4a2a8278e811e7c84a79da1a02347b8b Author: Tejun Heo Date: Tue Jun 16 18:48:32 2015 -0400 writeback, blkio: add documentation for cgroup writeback support Update Documentation/cgroups/blkio-controller.txt to reflect the recently added cgroup writeback support. Signed-off-by: Tejun Heo Cc: Li Zefan Cc: Vivek Goyal Cc: cgroups@vger.kernel.org Cc: linux-fsdevel@vger.kernel.org Signed-off-by: Jens Axboe Documentation/cgroups/blkio-controller.txt | 83 ++++++++++++++++++++++++++++-- 1 file changed, 78 insertions(+), 5 deletions(-) commit 46b15caa7cb19b0f6e3bc8ebaee5bc1bb2e35110 Author: Tejun Heo Date: Tue Jun 16 18:48:31 2015 -0400 vfs, writeback: replace FS_CGROUP_WRITEBACK with SB_I_CGROUPWB FS_CGROUP_WRITEBACK indicates whether a file_system_type supports cgroup writeback; however, different super_blocks of the same file_system_type may or may not support cgroup writeback depending on filesystem options. This patch replaces FS_CGROUP_WRITEBACK with a per-super_block flag. super_block->s_flags carries some internal flags in the high bits but it's exposd to userland through uapi header and running out of space anyway. This patch adds a new field super_block->s_iflags to carry kernel-internal flags. It is currently only used by the new SB_I_CGROUPWB flag whose concatenated and abbreviated name is for consistency with other super_block flags. ext2_fill_super() is updated to set SB_I_CGROUPWB. v2: Added super_block->s_iflags instead of stealing another high bit from sb->s_flags as suggested by Christoph and Jan. Signed-off-by: Tejun Heo Cc: Alexander Viro Cc: linux-fsdevel@vger.kernel.org Cc: Christoph Hellwig Cc: Jan Kara Cc: linux-ext4@vger.kernel.org Reviewed-by: Christoph Hellwig Signed-off-by: Jens Axboe fs/ext2/super.c | 3 ++- include/linux/backing-dev.h | 2 +- include/linux/fs.h | 4 +++- 3 files changed, 6 insertions(+), 3 deletions(-) commit dd73e4b7df9589fa603fc6d128b4f6cabb250e8e Author: Tejun Heo Date: Tue Jun 16 18:48:30 2015 -0400 writeback: do foreign inode detection iff cgroup writeback is enabled Currently, even when a filesystem doesn't set the FS_CGROUP_WRITEBACK flag, if the filesystem uses wbc_init_bio() and wbc_account_io(), the foreign inode detection and migration logic still ends up activating cgroup writeback which is unexpected. This patch ensures that the foreign inode detection logic stays disabled when inode_cgwb_enabled() is false by not associating writeback_control's with bdi_writeback's. This also avoids unnecessary operations in wbc_init_bio(), wbc_account_io() and wbc_detach_inode() for filesystems which don't support cgroup writeback. Signed-off-by: Tejun Heo Signed-off-by: Jens Axboe fs/fs-writeback.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) commit 4ef51e8b7aaa67493ad5b36a0e5874bf6ff8b956 Merge: b853a16 e4f9551 Author: Al Viro Date: Wed Jun 17 14:44:05 2015 -0400 Merge branch 'for-linus' into for-next commit e4f95517f18271b1da36cfc5d700e46844396d6e Author: Fabian Frederick Date: Wed Jun 17 18:15:45 2015 +0200 fs/ufs: restore s_lock mutex_init() Add last missing line in commit "cdd9eefdf905" ("fs/ufs: restore s_lock mutex") Signed-off-by: Fabian Frederick Signed-off-by: Al Viro fs/ufs/super.c | 1 + 1 file changed, 1 insertion(+) commit d6ecf158148883be1588859c46d6d424513e2e0d Author: Thomas Petazzoni Date: Wed Jun 17 14:11:01 2015 +0200 ata: ahci_mvebu: add suspend/resume support This commit adds suspend/resume support to the ahci_mvebu driver. The suspend hook doesn't do anything special despite calling the generic ahci_platform_suspend_host() function. However, the resume hook has to restore the MBus windows configuration, as well as the regret option. Tested on Marvell Armada 388 GP. Signed-off-by: Thomas Petazzoni Signed-off-by: Tejun Heo drivers/ata/ahci_mvebu.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) commit 34c56932ce5278b8bbae13936f9df05cd59e3193 Author: Robert Richter Date: Wed Jun 17 15:30:02 2015 +0200 ahci, msix: Fix build error for !PCI_MSI It turned out the irq vector of the msix can be obtained from struct msix_entry. This makes the lookup function for msi_desc obsolete. This fixes a build error if PCI_MSI is unset: drivers/ata/ahci.c: In function ‘msix_get_desc’: drivers/ata/ahci.c:1210:2: error: ‘struct pci_dev’ has no member named ‘msi_list’ Catched by Fengguang's build bot. Reported-by: kbuild test robot Signed-off-by: Robert Richter Signed-off-by: Tejun Heo drivers/ata/ahci.c | 21 +-------------------- 1 file changed, 1 insertion(+), 20 deletions(-) commit 89e4042861772a89fc54ce517255c3a38ba58ac1 Author: Glenn Ruben Bakke Date: Wed Jun 17 07:32:27 2015 -0700 Bluetooth: 6lowpan: Fix module refcount This patch removes the additional module_put() in disconnect_all_peers() making a correct module refcount so that the module can be removed after disabling 6lowpan through debugfs. Signed-off-by: Lukasz Duda Signed-off-by: Glenn Ruben Bakke Signed-off-by: Marcel Holtmann net/bluetooth/6lowpan.c | 2 -- 1 file changed, 2 deletions(-) commit 2ad88fb2c0ff57372406eff4df8dde020bf1a18d Author: Glenn Ruben Bakke Date: Wed Jun 17 07:32:26 2015 -0700 Bluetooth: 6lowpan: Fix double kfree of netdev priv This patch removes the kfree of the netdev priv in device_event() upon NETDEV_UNREGISTER event. The freeing of memory is taken care of by the netdev destructor. Signed-off-by: Lukasz Duda Signed-off-by: Glenn Ruben Bakke Signed-off-by: Marcel Holtmann net/bluetooth/6lowpan.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit fc84242f7a9731885ae70c0077816fa6fb19c4d5 Author: Glenn Ruben Bakke Date: Wed Jun 17 07:32:25 2015 -0700 Bluetooth: 6lowpan: Move netdev sysfs device reference This patch moves the sysfs device used by the netdev from the device of the first connected peer to the hci sysfs device. Using the sysfs device of hci instead of the first connected device fixes this issue such that the sysfs group of tx-0 and bt0 kobject are still present after the last peer has been deleted and all sysfs entries can be removed. Signed-off-by: Lukasz Duda Signed-off-by: Glenn Ruben Bakke Signed-off-by: Marcel Holtmann net/bluetooth/6lowpan.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f63666d20973b85073c4849c9d7471219adf6da9 Author: Glenn Ruben Bakke Date: Wed Jun 17 07:32:24 2015 -0700 Bluetooth: 6lowpan: Rename ambiguous variable This patch renames the variable used to trigger scheduling of delete_netdev. Changed to infinitiv in order to describe the action to be done. Signed-off-by: Lukasz Duda Signed-off-by: Glenn Ruben Bakke Signed-off-by: Marcel Holtmann net/bluetooth/6lowpan.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit a2105ae1de117e17522d37b6dedb1f286c544160 Author: Glenn Ruben Bakke Date: Wed Jun 17 07:32:23 2015 -0700 Bluetooth: 6lowpan: Enable delete_netdev to be scheduled when last peer is deleted This patch fixes an issue with the netdev not being unregistered when the last peer is deleted. Removing the logical negation operator on the boolean solves this issue. If the last peer is removed the condition will be true, and the delete_netdev() is scheduled. Signed-off-by: Lukasz Duda Signed-off-by: Glenn Ruben Bakke Signed-off-by: Marcel Holtmann net/bluetooth/6lowpan.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 40db5f0eddbee3d2a9a05a3b5dc20368cb65ca0f Author: Ilya Faenson Date: Wed Jun 17 11:42:46 2015 -0400 Bluetooth: btbcm: Support the BCM4354 Bluetooth UART device Support the BCM4354 chip and introduce vendor specific command parameter definitions. Signed-off-by: Ilya Faenson Signed-off-by: Marcel Holtmann drivers/bluetooth/btbcm.c | 2 ++ drivers/bluetooth/btbcm.h | 31 +++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) commit 5f88d9706fa48084eaab2dbbec27779809c5106b Author: Robert Jarzmik Date: Tue May 26 23:06:34 2015 +0200 Documentation: dmaengine: document DMA_CTRL_ACK Add documentation about acking the transfers, and their reusability. Signed-off-by: Robert Jarzmik Acked-by: Maxime Ripard Signed-off-by: Vinod Koul Documentation/dmaengine/provider.txt | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit b9855f03d560d351e95301b9de0bc3cad3b31fe9 Author: Robert Jarzmik Date: Tue May 26 23:06:33 2015 +0200 dmaengine: virt-dma: don't always free descriptor upon completion This patch attempts to enhance the case of a transfer submitted multiple times, and where the cost of creating the descriptors chain is not negligible. This happens with big video buffers (several megabytes, ie. several thousands of linked descriptors in one scatter-gather list). In these cases, a video driver would want to do : - tx = dmaengine_prep_slave_sg() - dma_engine_submit(tx); - dma_async_issue_pending() - wait for video completion - read video data (or not, skipping a frame is also possible) - dma_engine_submit(tx) => here, the descriptors chain recalculation will take time => the dma coherent allocation over and over might create holes in the dma pool, which is counter-productive. - dma_async_issue_pending() - etc ... In order to cope with this case, virt-dma is modified to prevent freeing the descriptors upon completion if DMA_CTRL_ACK flag is set in the transfer. Signed-off-by: Robert Jarzmik Signed-off-by: Vinod Koul drivers/dma/virt-dma.c | 19 +++++++++++++------ drivers/dma/virt-dma.h | 13 ++++++++++++- 2 files changed, 25 insertions(+), 7 deletions(-) commit fcd9d310a5f55ca081c996a96c561225be382ba5 Author: Axel Lin Date: Tue Jun 16 19:39:09 2015 +0800 ASoC: wm8995: Fix setting sysclk for WM8995_SYSCLK_MCLK2 case Fix trivial typo. Signed-off-by: Axel Lin Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8995.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2c05136c28048406552723685bcaf632d3d93ef1 Author: Mark Brown Date: Wed Jun 17 17:43:45 2015 +0100 spi: zynq: Remove execute bit Signed-off-by: Mark Brown drivers/spi/spi-zynqmp-gqspi.c | 0 1 file changed, 0 insertions(+), 0 deletions(-) commit e262f34741522e0d821642e5449c6eeb512723fc Author: Mikulas Patocka Date: Tue Jun 9 17:22:49 2015 -0400 dm stats: add support for request-based DM devices This makes it possible to use dm stats with DM multipath. Signed-off-by: Mikulas Patocka Signed-off-by: Mike Snitzer drivers/md/dm-stats.c | 5 ----- drivers/md/dm.c | 26 ++++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 5 deletions(-) commit dfcfac3e4cd94abef779297fab6adfd2dbcf52fa Author: Mikulas Patocka Date: Tue Jun 9 17:22:05 2015 -0400 dm stats: collect and report histogram of IO latencies Add an option to dm statistics to collect and report a histogram of IO latencies. Signed-off-by: Mikulas Patocka Signed-off-by: Mike Snitzer Documentation/device-mapper/statistics.txt | 19 ++- drivers/md/dm-stats.c | 205 +++++++++++++++++++++++++---- 2 files changed, 199 insertions(+), 25 deletions(-) commit c96aec344de0de857ef3d7fba53992c7ba311e1e Author: Mikulas Patocka Date: Tue Jun 9 17:21:39 2015 -0400 dm stats: support precise timestamps Make it possible to use precise timestamps with nanosecond granularity in dm statistics. Signed-off-by: Mikulas Patocka Signed-off-by: Mike Snitzer Documentation/device-mapper/statistics.txt | 28 +++++- drivers/md/dm-stats.c | 138 +++++++++++++++++++++-------- drivers/md/dm-stats.h | 4 +- 3 files changed, 127 insertions(+), 43 deletions(-) commit dd4c1b7d0c95be1c9245118a3accc41a16f1db67 Author: Mikulas Patocka Date: Fri Jun 5 09:50:42 2015 -0400 dm stats: fix divide by zero if 'number_of_areas' arg is zero If the number_of_areas argument was zero the kernel would crash on div-by-zero. Add better input validation. Signed-off-by: Mikulas Patocka Signed-off-by: Mike Snitzer Cc: stable@vger.kernel.org # v3.12+ drivers/md/dm-stats.c | 2 ++ 1 file changed, 2 insertions(+) commit bccab6a01afc26f53d91762d78153513cad10b29 Author: Mike Snitzer Date: Wed Jun 17 11:43:38 2015 -0400 dm cache: switch the "default" cache replacement policy from mq to smq The Stochastic multiqueue (SMQ) policy (vs MQ) offers the promise of less memory utilization, improved performance and increased adaptability in the face of changing workloads. SMQ also does not have any cumbersome tuning knobs. Users may switch from "mq" to "smq" simply by appropriately reloading a DM table that is using the cache target. Doing so will cause all of the mq policy's hints to be dropped. Also, performance of the cache may degrade slightly until smq recalculates the origin device's hotspots that should be cached. In the future the "mq" policy will just silently make use of "smq" and the mq code will be removed. Signed-off-by: Mike Snitzer Acked-by: Joe Thornber Documentation/device-mapper/cache-policies.txt | 67 ++++++++++++++++++++++++-- drivers/md/dm-cache-policy-mq.c | 34 ++----------- drivers/md/dm-cache-policy-smq.c | 17 +++++++ 3 files changed, 86 insertions(+), 32 deletions(-) commit 8ca006adeffca5c760e86e660018ec9253d53dd3 Merge: 4705a81 1c79771 e723f2c a2f776c Author: Mark Brown Date: Wed Jun 17 17:40:08 2015 +0100 Merge remote-tracking branches 'regmap/topic/defaults', 'regmap/topic/irq' and 'regmap/topic/reg-params' into regmap-next commit 4705a81b2c1c1f3a31711f959cf87b4da7b2f06e Merge: d2b923e 7ca6759 Author: Mark Brown Date: Wed Jun 17 17:40:07 2015 +0100 Merge remote-tracking branch 'regmap/topic/core' into regmap-next commit d2b923ef7b0e549dabcef0ca4605e2c0e4058216 Merge: 5934590 921cc29 Author: Mark Brown Date: Wed Jun 17 17:40:07 2015 +0100 Merge remote-tracking branch 'regmap/fix/field' into regmap-linus commit 5934590796f244149638c914a2329cede7338e25 Merge: d4a4f75 15b8d2c Author: Mark Brown Date: Wed Jun 17 17:40:06 2015 +0100 Merge remote-tracking branch 'regmap/fix/core' into regmap-linus commit 386299735e7056455bcead28f6ffa4357116ce38 Author: Wang Nan Date: Wed Jun 17 11:59:18 2015 +0000 perf tools: Ignore .config-detected in .gitignore Commit fcfd6611fbccdbf2593bd949097a5c0e45cd96da ("tools build: Add detected config support") dynamically creates .config-detected. Add it to .gitignore. Signed-off-by: Wang Nan Cc: Jiri Olsa Cc: Zefan Li Link: http://lkml.kernel.org/r/1434542358-5430-1-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/.gitignore | 1 + 1 file changed, 1 insertion(+) commit e112af0dc9f55099b948e55077504a44b4162c79 Author: Matias Bjørling Date: Fri Jun 5 14:54:24 2015 +0200 nvme: don't overwrite req->cmd_flags on sync cmd In __nvme_submit_sync_cmd, the request direction is overwritten when the REQ_FAILFAST_DRIVER flag is set. Signed-off-by: Matias Bjørling Reviewed-by: Christoph Hellwig Fixes: 75619bfa904d0 ("NVMe: End sync requests immediately on failure") Signed-off-by: Jens Axboe drivers/block/nvme-core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6684fa1cdb1ebe804e9707f389255d461b2e95b0 Author: Julien Grall Date: Wed Jun 17 15:28:08 2015 +0100 block/xen-blkback: s/nr_pages/nr_segs/ Make the code less confusing to read now that Linux may not have the same page size as Xen. Signed-off-by: Julien Grall Acked-by: Roger Pau Monné Cc: Konrad Rzeszutek Wilk Signed-off-by: David Vrabel drivers/block/xen-blkback/blkback.c | 10 +++++----- drivers/block/xen-blkback/common.h | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) commit ee4b7179fc9bf19fd22f9d17757a86582c40229e Author: Julien Grall Date: Wed Jun 17 15:28:07 2015 +0100 block/xen-blkfront: Remove invalid comment Since commit b764915 "xen-blkfront: use a different scatterlist for each request", biovec has been replaced by scatterlist when copying back the data during a completion request. Signed-off-by: Julien Grall Acked-by: Roger Pau Monné Cc: Konrad Rzeszutek Wilk Cc: Boris Ostrovsky Cc: David Vrabel Signed-off-by: David Vrabel drivers/block/xen-blkfront.c | 6 ------ 1 file changed, 6 deletions(-) commit db26a68695ad22bed6ca0f9c14572afb807858a8 Author: Julien Grall Date: Wed Jun 17 15:28:06 2015 +0100 block/xen-blkfront: Remove unused macro MAXIMUM_OUTSTANDING_BLOCK_REQS Signed-off-by: Julien Grall Acked-by: Roger Pau Monné Cc: Konrad Rzeszutek Wilk Cc: Boris Ostrovsky Cc: David Vrabel Signed-off-by: David Vrabel drivers/block/xen-blkfront.c | 2 -- 1 file changed, 2 deletions(-) commit 90d73c4f43630ca45398cee7f32f0fe51271b2ce Author: Julien Grall Date: Wed Jun 17 15:28:05 2015 +0100 arm/xen: Drop duplicate define mfn_to_virt Signed-off-by: Julien Grall Cc: Stefano Stabellini Signed-off-by: David Vrabel arch/arm/include/asm/xen/page.h | 1 - 1 file changed, 1 deletion(-) commit 2f5bc307be2480ba89e4c5d118f406f04a4a7299 Author: Thomas Petazzoni Date: Tue Jun 16 14:12:57 2015 +0200 ARM: mvebu: fix suspend to RAM on big-endian configurations The current Armada XP suspend to RAM implementation, as added in commit 27432825ae19f ("ARM: mvebu: Armada XP GP specific suspend/resume code") does not handle big-endian configurations properly: the small bit of assembly code putting the DRAM in self-refresh and toggling the GPIOs to turn off power forgets to convert the values to little-endian. This commit fixes that by making sure the two values we will write to the DRAM controller register and GPIO register are already in little-endian before entering the critical assembly code. Signed-off-by: Thomas Petazzoni Cc: # v3.19+ Fixes: 27432825ae19f ("ARM: mvebu: Armada XP GP specific suspend/resume code") arch/arm/mach-mvebu/pm-board.c | 3 +++ 1 file changed, 3 insertions(+) commit 548f7c94759ac58d4744ef2663e2a66a106e21c5 Author: Julien Grall Date: Wed Jun 17 15:28:04 2015 +0100 xen/grant-table: Remove unused macro SPP SPP was used by the grant table v2 code which has been removed in commit 438b33c7145ca8a5131a30c36d8f59bce119a19a "xen/grant-table: remove support for V2 tables". Signed-off-by: Julien Grall Reviewed-by: David Vrabel Cc: Konrad Rzeszutek Wilk Cc: Boris Ostrovsky Signed-off-by: David Vrabel drivers/xen/grant-table.c | 1 - 1 file changed, 1 deletion(-) commit c9fd55eb6625ead6a1207e7da38026ff47c5198b Author: Julien Grall Date: Wed Jun 17 15:28:03 2015 +0100 xen/xenbus: client: Fix call of virt_to_mfn in xenbus_grant_ring virt_to_mfn should take a void* rather an unsigned long. While it doesn't really matter now, it would throw a compiler warning later when virt_to_mfn will enforce the type. At the same time, avoid to compute new virtual address every time in the loop and directly increment the parameter as we don't use it later. Signed-off-by: Julien Grall Reviewed-by: David Vrabel Cc: Wei Liu Cc: Konrad Rzeszutek Wilk Cc: Boris Ostrovsky Signed-off-by: David Vrabel drivers/xen/xenbus/xenbus_client.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit a9fd60e2683fb80f5b26a7d686aebe3327a63e70 Author: Julien Grall Date: Wed Jun 17 15:28:02 2015 +0100 xen: Include xen/page.h rather than asm/xen/page.h Using xen/page.h will be necessary later for using common xen page helpers. As xen/page.h already include asm/xen/page.h, always use the later. Signed-off-by: Julien Grall Reviewed-by: David Vrabel Cc: Stefano Stabellini Cc: Ian Campbell Cc: Wei Liu Cc: Konrad Rzeszutek Wilk Cc: Boris Ostrovsky Cc: netdev@vger.kernel.org Signed-off-by: David Vrabel arch/arm/xen/mm.c | 2 +- arch/arm/xen/p2m.c | 2 +- drivers/net/xen-netback/netback.c | 2 +- drivers/net/xen-netfront.c | 1 - drivers/xen/events/events_base.c | 2 +- drivers/xen/events/events_fifo.c | 2 +- drivers/xen/gntdev.c | 2 +- drivers/xen/manage.c | 2 +- drivers/xen/tmem.c | 2 +- drivers/xen/xenbus/xenbus_client.c | 2 +- 10 files changed, 9 insertions(+), 10 deletions(-) commit 4839ddc27b7212ec58874f62c97da7400c8523be Author: Marc Zyngier Date: Wed Jun 17 14:43:35 2015 +0100 KVM: arm/arm64: vgic: Avoid injecting reserved IRQ numbers Commit fd1d0ddf2ae9 (KVM: arm/arm64: check IRQ number on userland injection) rightly limited the range of interrupts userspace can inject in a guest, but failed to consider the (unlikely) case where a guest is configured with 1024 interrupts. In this case, interrupts ranging from 1020 to 1023 are unuseable, as they have a special meaning for the GIC CPU interface. Make sure that these number cannot be used as an IRQ. Also delete a redundant (and similarily buggy) check in kvm_set_irq. Reported-by: Peter Maydell Cc: Andre Przywara Cc: # 4.1, 4.0, 3.19, 3.18 Signed-off-by: Marc Zyngier virt/kvm/arm/vgic.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 6096d91af0b65a3967139b32d5adbb3647858a26 Author: Joe Thornber Date: Wed Jun 17 13:35:19 2015 +0100 dm space map metadata: fix occasional leak of a metadata block on resize The metadata space map has a simplified 'bootstrap' mode that is operational when extending the space maps. Whilst in this mode it's possible for some refcount decrement operations to become queued (eg, as a result of shadowing one of the bitmap indexes). These decrements were not being applied when switching out of bootstrap mode. The effect of this bug was the leaking of a 4k metadata block. This is detected by the latest version of thin_check as a non fatal error. Signed-off-by: Joe Thornber Signed-off-by: Mike Snitzer Cc: stable@vger.kernel.org drivers/md/persistent-data/dm-space-map-metadata.c | 50 +++++++++++++++------- 1 file changed, 35 insertions(+), 15 deletions(-) commit 5c698e8bbfaa6e26d851eeeeee09d61dfc9ff4a0 Author: Alexander Aring Date: Wed Jun 17 15:35:18 2015 +0200 mac802154: iface: cleanup stack variable There is no need to init res with zero, res can be unused but then we returning zero and not res. Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann net/mac802154/iface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 95c0aa15711e1e5fd62300a8abd244186ebf67e7 Author: Alexander Aring Date: Wed Jun 17 15:35:17 2015 +0200 mac802154: iface: fix order while interface up This patch moves the hardware setting before calling the driver start callback which activates the receive handling. The hardware setup contains settings like address filtering which should be setup before activate the receive handling on the transceiver. These setting are protected by ieee802154_check_concurrent_iface check. This means we need to set these registers once before calling drv_start and can't be overwritten by other interfaces. Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann net/mac802154/iface.c | 103 +++++++++++++++++++++++++++----------------------- 1 file changed, 55 insertions(+), 48 deletions(-) commit 8c19a731a1a8b1f447a972174d2b2fe30d625518 Author: Thomas Petazzoni Date: Thu Jun 11 13:56:32 2015 +0200 ARM: mvebu: adjust Armada XP DT spi muxing after pinctrl function rename Following the merge of "pinctrl: mvebu: armada-xp: rename spi to spi0" by Linus Walleij, we need to adjust the Armada XP Device Tree accordingly, by adjusting the pinctrl configuration for SPI pins. Signed-off-by: Thomas Petazzoni Acked-by: Gregory CLEMENT Signed-off-by: Gregory CLEMENT arch/arm/boot/dts/armada-xp.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4e2ee96a63d434177ad1785208fe06858ebfe739 Author: Vladimir Murzin Date: Mon Jun 15 17:30:17 2015 +0100 arm64: compat: print compat_sp instead of sp We check against compat_sp, but print out arm64's sp - fix it. Signed-off-by: Vladimir Murzin Signed-off-by: Catalin Marinas arch/arm64/kernel/signal32.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b9bcc919931611498e856eae9bf66337330d04cc Author: Dave P Martin Date: Tue Jun 16 17:38:47 2015 +0100 arm64: mm: Fix freeing of the wrong memmap entries with !SPARSEMEM_VMEMMAP The memmap freeing code in free_unused_memmap() computes the end of each memblock by adding the memblock size onto the base. However, if SPARSEMEM is enabled then the value (start) used for the base may already have been rounded downwards to work out which memmap entries to free after the previous memblock. This may cause memmap entries that are in use to get freed. In general, you're not likely to hit this problem unless there are at least 2 memblocks and one of them is not aligned to a sparsemem section boundary. Note that carve-outs can increase the number of memblocks by splitting the regions listed in the device tree. This problem doesn't occur with SPARSEMEM_VMEMMAP, because the vmemmap code deals with freeing the unused regions of the memmap instead of requiring the arch code to do it. This patch gets the memblock base out of the memblock directly when computing the block end address to ensure the correct value is used. Signed-off-by: Dave Martin Cc: Signed-off-by: Catalin Marinas arch/arm64/mm/init.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 52cc916818c86abc0a123bf1e55fd71c32aa042b Author: Tedd Ho-Jeong An Date: Fri Jun 12 16:20:05 2015 -0700 Bluetooth: btusb: Add routine for applying Intel DDC parameters This patch adds the routine to apply the DDC parameter from device specific ddc file. Once the device is rest to operational mode, optionally, it can download the device specific configration (DDC) parameters before the BlueZ starts the stack initialization. It opens the DDC file based on HW_VARIANT and DEV_REVISION and send ID/Value with HCI_Intel_Write_DDC command. Format of DDC file DDC file contains one or more number of DDC structure. DDC Structure It has 'Length' field of one octet, DDC 'ID' field of two octets followed by the array of DDC 'Value' that gives the value of parameters itself. 'Length' contains the length of DDC 'ID' and DDC 'Value'. +------------+----------+ | Size(byte) | Name | +------------+----------+ | 1 | Length | +------------+----------+ | 2 | ID | +------------+----------+ | Length - 2 | Value | +------------+----------+ Signed-off-by: Tedd Ho-Jeong An Signed-off-by: Marcel Holtmann drivers/bluetooth/btusb.c | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) commit a9fad6886f5229fc9989ac6cdd7ddecbf570a58f Author: Tomi Valkeinen Date: Tue Mar 24 15:46:34 2015 +0200 OMAPDSS: HDMI: wait for framedone when stopping video At the moment when HDMI video output is stopped, we just clear the enable bit and return. While it's unclear if this can cause any issues, I think it's still better to wait for FRAMEDONE interrupt after clearing the enable bit so that we're sure the HDMI IP has finished. As we don't have any ready-made irq handling for HDMI, and this only needs to be done when disabling the HDMI output, this patch implements a simple loop with sleep, polling the FRAMEDONE bit. Signed-off-by: Tomi Valkeinen drivers/video/fbdev/omap2/dss/hdmi_wp.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit e8e523a42a236d0e80a5651741cfc916aa298e3f Author: Nicholas Mc Guire Date: Thu Jun 11 16:12:03 2015 +0200 i2c: octeon: remove unused signal handling 'commit 2637e5fd232d ("i2c: octeon: Fix i2c fail problem when a process is terminated by a signal")' removed the wait_event_interruptible_timeout to prevent half/mixed i2c messages from being sent/recievd but forgot to drop the signal handling case in the return handling. This just removes this dead code. While at it the return variable is adjusted to the type expected. Signed-off-by: Nicholas Mc Guire Reviewed-by: Alexander Sverdlin Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-octeon.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit 9bba13f0d74cea808f417370961bb3421a09bcb6 Author: Tomi Valkeinen Date: Tue Mar 24 15:46:33 2015 +0200 OMAPDSS: HDMI4: fix error handling Error handling in hdmi_power_on_full() is not correct, and could leave resources unfreed. Fix this by arranging the error labels correctly. Signed-off-by: Tomi Valkeinen drivers/video/fbdev/omap2/dss/hdmi4.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e4c5ae7fdfa6cae39b458abb99ed669ba3c19af0 Author: Tomi Valkeinen Date: Fri Apr 10 12:48:39 2015 +0300 OMAPDSS: DISPC: scaler debug print Improve the DISPC debug print for scaling. Signed-off-by: Tomi Valkeinen drivers/video/fbdev/omap2/dss/dispc.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) commit 7059e3d8d8f0d716f8a6664f365bcbef9d147905 Author: Tomi Valkeinen Date: Fri Apr 10 12:48:38 2015 +0300 OMAPDSS: DISPC: do only y decimation on OMAP3 The current driver does both x and y decimation on OMAP3 DSS. Testing shows that x decimation rarely works, leading to underflows. The exact reason for this is unclear, as the underflows seem to happen even with low pixel clock rates, and I would presume that if the DSS can manage a display with 140MHz pixel clock, it could manage x decimation with factor 2 with a low pixel clock (~30MHz). So it is possible that there is a problem somewhere else, in memory management, or DSS DMA, or similar. I have not found anything that would help this. So, to fix the downscaling scaling, this patch removes x decimation for OMAP3. This will limit some of the more demanding downscaling scenarios, but one could argue that using DSS to downscale such a large amount is insane in the first place, as the produced image is rather bad quality. Signed-off-by: Tomi Valkeinen drivers/video/fbdev/omap2/dss/dispc.c | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) commit 3ce17b48da85d89769609c4302a016a1af63cfda Author: Tomi Valkeinen Date: Fri Apr 10 12:48:37 2015 +0300 OMAPDSS: DISPC: check if scaling setup failed The DISPC's scaling code seems to presume that decimation always succeeds, and so we always do find a suitable downscaling setup. However, this is not the case, and the algorithm can fail. When that happens, the code just proceeds with wrong results, causing issues later. Add the necessary checks to bail out if the scaling algorithm failed. Signed-off-by: Tomi Valkeinen drivers/video/fbdev/omap2/dss/dispc.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit c582935c00227b4efc79630b149b1f077d7716b2 Author: Tomi Valkeinen Date: Fri Apr 10 12:48:36 2015 +0300 OMAPDSS: DISPC: fix 64 bit issue in 5-tap The DISPC driver uses 64 bit arithmetic to calculate the required clock rate for scaling. The code does not seem to work correctly, and instead calculates with 32 bit numbers, giving wrong result. Fix the code by typecasting values to u64 first, so that the calculations do happen in 64 bits. Signed-off-by: Tomi Valkeinen drivers/video/fbdev/omap2/dss/dispc.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit f2aee319d95fcba3d29424aeaf6d39d4c2a7890a Author: Tomi Valkeinen Date: Fri Apr 10 12:48:34 2015 +0300 OMAPDSS: DISPC: fix row_inc for OMAP3 pixel_inc and row_inc work differently on OMAP2/3 and OMAP4+ DSS. On OMAP2/3 DSS, the pixel_inc is _not_ added by the HW at the end of the line, after the last pixel, whereas on OMAP4+ it is. The driver currently works for OMAP4+, but does not handle OMAP2/3 correctly, which leads to tilted image when row_inc is used. This patch adds a flag to DISPC driver so that the pixel_inc is added when required. Signed-off-by: Tomi Valkeinen drivers/video/fbdev/omap2/dss/dispc.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 955fc950795d1c9f11f220f449ecb29b92985ee2 Author: Alexander Sverdlin Date: Thu Jun 11 11:35:26 2015 +0200 i2c: davinci: Optimize SCL generation There are several cases where current clock configuration algorithm produces not optimal results: - truncation in "clk" calculation leads to the fact that actual BUS frequency will be always higher than spec except two exact module frequences 8MHz and 12MHz in the whole 7-12MHz range of permitted frequences - driver configures SCL HIGH to LOW ratio always 1 to 1 and this doesn't work well in 400kHz case, namely minimum time of LOW state (according to I2C Spec 2.1) 1.3us will not be fulfilled. HIGH to LOW ratio 1 to 2 would be more approriate here. Signed-off-by: Michael Lawnick Signed-off-by: Alexander Sverdlin Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-davinci.c | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) commit ab6b2582b8f931f8f324fbf7bcb8338b8fc1eded Author: Tomi Valkeinen Date: Tue Mar 17 15:31:10 2015 +0200 OMAPDSS: DISPC: add check for scaling limits On OMAP3/AM43xx some scaling factors cause underflows/synclosts. After studying this, I found that sometimes the driver uses three-tap scaling with downscaling factor smaller than x0.5. This causes issues, as x0.5 is the limit for three-tap scaling. The driver has FEAT_PARAM_DOWNSCALE parameter, but that seems to be for five-tap scaling, which allows scaling down to x0.25. This patch adds checks for both horizontal and vertical scaling. For horizontal the HW always uses 5 taps, so the limit is x0.25. Signed-off-by: Tomi Valkeinen drivers/video/fbdev/omap2/dss/dispc.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit f5a734827b07dc907ae95698f91d4b1eaafe9a8a Author: Tomi Valkeinen Date: Tue Mar 17 15:31:09 2015 +0200 OMAPDSS: DISPC: fix check_horiz_timing_omap3 args After calculating the required decimation for scaling, the dispc driver checks once more if the resulting configuration is valid by calling check_horiz_timing_omap3(). Earlier calls to this function have correctly used in_width and in_height as parameters, but the last call uses width and height. This causes the driver to possibly reject scaling that would work. This patch fixes the parameters. Signed-off-by: Tomi Valkeinen drivers/video/fbdev/omap2/dss/dispc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c4661b33181708cddb96c72f629eae9cdeea271f Author: Tomi Valkeinen Date: Fri Feb 27 13:07:58 2015 +0200 OMAPDSS: DISPC: fix predecimation for YUV modes DISPC needs even input buffer width for YUV modes. The DISPC driver doesn't check this at the moment (although omapdrm does), but worse, when DISPC driver does x predecimation the result may be uneven. This causes sometimes sync losts, underflows, or just visual errors. This patch makes DISPC driver return an error if the user gives uneven input width for a YUV buffer. It also makes the input width even in case of predecimation. Signed-off-by: Tomi Valkeinen drivers/video/fbdev/omap2/dss/dispc.c | 36 +++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) commit 3397cc6a7199993150d09d9bf055ae130058a684 Author: Tomi Valkeinen Date: Thu Apr 9 13:51:30 2015 +0300 OMAPDSS: DISPC: work-around for errata i631 Errata i631 description: "When in YUV4:2:0 format in 1D burst, the DISPC DMA skips lines when fetching Chroma sampling." Workaround: "If YUV4:2:0-1D burst is required: Set DISPC_VIDp_ATTRIBUTES[22]DOUBLESTRIDE to 0x0 and DISPC_VIDp_ATTRIBUTES[13:12]ROTATION to 0x1 or 0x3" The description is somewhat confusing, but testing has shown that DSS fetches extra rows from memory when using NV12 format in 1D mode. If the memory after the framebuffer is inaccessible, this leads to OCP errors. The driver always uses DOUBLESTRIDE=0 when using 1D mode, so we only need to handle the ROTATION part. The issue exist on all OMAP4 and OMAP5 based DSS IPs. Signed-off-by: Tomi Valkeinen drivers/video/fbdev/omap2/dss/dispc.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 0a8237ae319ab5988d40a7a9b33d68846aae34b4 Author: Alexander Sverdlin Date: Fri Jun 12 14:41:00 2015 +0200 i2c: mux: pca954x: Use __i2c_transfer because of quirks pca9541 and pca954x are calling master_xfer() of the parent adapter directly thus bypassing the quirks checks of the adapter. Use __i2c_transfer() instead. Signed-off-by: Alexander Sverdlin Tested-by: Łukasz Gemborowski Acked-by: Laurent Pinchart Reviewed-by: Jisheng Zhang Signed-off-by: Wolfram Sang Cc: stable@kernel.org Fixes: b7f625840267b1 ("i2c: add quirk checks to core") drivers/i2c/muxes/i2c-mux-pca9541.c | 4 ++-- drivers/i2c/muxes/i2c-mux-pca954x.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit e766f338a74200b8104b1165776b19f56e252834 Author: Alexander Sverdlin Date: Fri Jun 12 14:40:37 2015 +0200 i2c: mux: Use __i2c_transfer() instead of calling parent's master_xfer() Newly introduced quirks infrastructure doesn't work for the devices behind MUXes because MUX's master_xfer() calls parent's master_xfer() directly without checking the quirks. Instead of duplicating check code in MUX just call __i2c_transfer() instead. This has a side effect on tracing (messages will appear on both MUX bus and parent bus), but maybe that's not bad at the end. Signed-off-by: Alexander Sverdlin Tested-by: Łukasz Gemborowski Signed-off-by: Wolfram Sang Cc: stable@kernel.org Fixes: b7f625840267b1 ("i2c: add quirk checks to core") drivers/i2c/i2c-mux.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit dc362d50ba94eaf2b1f11eecd81eb1d040d2d6e6 Author: Alexander Sverdlin Date: Fri Jun 12 14:41:16 2015 +0200 i2c: use parent adapter quirks in mux Inherit parent adapter quirks in MUX in case the devices on the multiplexed buses are interested in the adapter limitations. Signed-off-by: Łukasz Gemborowski Signed-off-by: Alexander Sverdlin Signed-off-by: Wolfram Sang Cc: stable@kernel.org Fixes: b7f625840267b1 ("i2c: add quirk checks to core") drivers/i2c/i2c-mux.c | 1 + 1 file changed, 1 insertion(+) commit 7b618638a518ce7083fcca1bc7181a5c6337277a Author: Silvan Wicki Date: Tue Jun 16 17:40:59 2015 +0200 i2c: bcm2835: clear reserved bits in S-Register The datasheet mentions on page 31 that the bits 10-31 must be read as don't care and written as 0. https://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf We cannot guarantee that we read bits 10-31 as always 0 (because the datasheet says read as don't care). We clear the bits with a bitmask to prevent writing back unknown data at the reserved bits. Signed-off-by: Silvan Wicki Acked-by: Stephen Warren Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-bcm2835.c | 3 +++ 1 file changed, 3 insertions(+) commit 3713416763dc03e9011a3146c42411189531446f Author: Chan-yeol Park Date: Wed Jun 17 21:10:39 2015 +0900 Bluetooth: hci_uart: Fix dereferencing of ERR_PTR If h4_recv_buf() return ERR_PTR instead sk_buff pointer, it should be cleared once PTR_ERR is completed for the further dereference such as h4_recv(), or h4_close(). Signed-off-by: Chan-yeol Park Signed-off-by: Marcel Holtmann drivers/bluetooth/hci_ath.c | 1 + drivers/bluetooth/hci_bcm.c | 1 + drivers/bluetooth/hci_h4.c | 1 + 3 files changed, 3 insertions(+) commit 4ed9fb371ccdfe465bd3bbb69e4cad5243e6c4e2 Author: Ander Conselvan de Oliveira Date: Tue Jun 16 11:49:45 2015 +0300 drm/i915: Don't set enabled value of all CRTCs when restoring the mode The code in intel_crtc_restore_mode() sets the enabled value of all the CRTCs when restoring the mode after a suspend/resume cycle. When more than one CRTC is enabled, that causes drm_atomic_helper_check_modeset() to fail if there is more than one pipe enabled, since all but one CRTC has valid connector data. Instead, set only the enabled value for the CRTC passed as an argument. v2: Don't leak atomic state. (Matt) Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90468 References: https://bugs.freedesktop.org/show_bug.cgi?id=90396 Signed-off-by: Ander Conselvan de Oliveira Reviewed-by: Matt Roper drivers/gpu/drm/i915/intel_display.c | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) commit 0d26fb891a119d78d8e4b345cfd0be0f2112cb7a Author: Ander Conselvan de Oliveira Date: Tue Jun 16 11:49:44 2015 +0300 drm/i915: Don't update staged config during force restore modesets The force restore path relies on the staged config to preserve the configuration used before a suspend/resume cycle. The update done to it in intel_modeset_fixup_state() would cause that information to be lost after the first modeset, making it impossible to restore the modes for pipes B and C. References: https://bugs.freedesktop.org/show_bug.cgi?id=90468 Signed-off-by: Ander Conselvan de Oliveira Reviewed-by: Matt Roper Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit e62d8dc0aa9f7493bcee3cbc4bf666a23a2d2f17 Author: Ander Conselvan de Oliveira Date: Tue Jun 16 11:49:43 2015 +0300 drm/i915: Don't check modeset state in the hw state force restore path Since the force restore logic will restore the CRTCs state one at a time, it is possible that the state will be inconsistent until the whole operation finishes. A call to intel_modeset_check_state() is done once it's over, so don't check the state multiple times in between. This regression was introduced in: commit 7f27126ea3db6ade886f18fd39caf0ff0cd1d37f Author: Jesse Barnes Date: Wed Nov 5 14:26:06 2014 -0800 drm/i915: factor out compute_config from __intel_set_mode v3 v2: Rename check parameter to force_restore. (Matt) Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=94431 Cc: Jesse Barnes Signed-off-by: Ander Conselvan de Oliveira Reviewed-by: Matt Roper Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) commit 46b0567c851cf85d6ba6f23eef385ec9111d09bc Author: Mark Rutland Date: Mon Jun 15 16:40:27 2015 +0100 arm64: entry: fix context tracking for el0_sp_pc Commit 6c81fe7925cc4c42 ("arm64: enable context tracking") did not update el0_sp_pc to use ct_user_exit, but this appears to have been unintentional. In commit 6ab6463aeb5fbc75 ("arm64: adjust el0_sync so that a function can be called") we made x0 available, and in the return to userspace we call ct_user_enter in the kernel_exit macro. Due to this, we currently don't correctly inform RCU of the user->kernel transition, and may erroneously account for time spent in the kernel as if we were in an extended quiescent state when CONFIG_CONTEXT_TRACKING is enabled. As we do record the kernel->user transition, a userspace application making accesses from an unaligned stack pointer can demonstrate the imbalance, provoking the following warning: ------------[ cut here ]------------ WARNING: CPU: 2 PID: 3660 at kernel/context_tracking.c:75 context_tracking_enter+0xd8/0xe4() Modules linked in: CPU: 2 PID: 3660 Comm: a.out Not tainted 4.1.0-rc7+ #8 Hardware name: ARM Juno development board (r0) (DT) Call trace: [] dump_backtrace+0x0/0x124 [] show_stack+0x10/0x1c [] dump_stack+0x84/0xc8 [] warn_slowpath_common+0x98/0xd0 [] warn_slowpath_null+0x14/0x20 [] context_tracking_enter+0xd4/0xe4 [] preempt_schedule_irq+0xd4/0x114 [] el1_preempt+0x4/0x28 [] exit_files+0x38/0x4c [] do_exit+0x430/0x978 [] do_group_exit+0x40/0xd4 [] get_signal+0x23c/0x4f4 [] do_signal+0x1ac/0x518 [] do_notify_resume+0x5c/0x68 ---[ end trace 963c192600337066 ]--- This patch adds the missing ct_user_exit to the el0_sp_pc entry path, correcting the context tracking for this case. Signed-off-by: Mark Rutland Acked-by: Will Deacon Fixes: 6c81fe7925cc ("arm64: enable context tracking") Cc: # v3.17+ Signed-off-by: Catalin Marinas arch/arm64/kernel/entry.S | 1 + 1 file changed, 1 insertion(+) commit a8998202c1d80274c44a520f3d2eb6fc641733c1 Merge: 9f5ddef ad4eaef Author: Tomi Valkeinen Date: Wed Jun 17 13:45:52 2015 +0300 Merge omapdss componentization work commit ad4eaef7bacb034b92273806bbca2e525fb94deb Author: Tomi Valkeinen Date: Thu Jun 4 14:44:49 2015 +0300 OMAPDSS: simplify submodule reg/unreg code Now that we are using components in omapdss, there's no need for separate handling of dss and dispc driver init. Thus we can move the dss and dispc init and unit func pointers to the lists we use for the other dss submodules. We can now also handle errors returned by the registration functions properly: if registering a driver fails, we can stop processing and return the error. Signed-off-by: Tomi Valkeinen Acked-by: Laurent Pinchart drivers/video/fbdev/omap2/dss/core.c | 46 ++++++++++++------------------------ 1 file changed, 15 insertions(+), 31 deletions(-) commit 736e60ddc215b85e73bbf7da26e1cde84cc9500f Author: Tomi Valkeinen Date: Thu Jun 4 15:22:23 2015 +0300 OMAPDSS: componentize omapdss omapdss kernel module contains drivers for multiple devices, one for each DSS submodule. The probing we have at the moment is a mess, and doesn't give us proper deferred probing nor ensure that all the devices are probed before omapfb/omapdrm start using omapdss. This patch solves the mess by using the component system for DSS submodules. The changes to all DSS submodules (dispc, dpi, dsi, hdmi4/5, rfbi, sdi, venc) are the same: probe & remove functions are changed to bind & unbind, and new probe & remove functions are added which call component_add/del. The dss_core driver (dss.c) acts as a component master. Adding and matching the components is simple: all dss device's child devices are added as components. However, we do have some dependencies between the drivers. The order in which they should be probed is reflected by the list in core.c (dss_output_drv_reg_funcs). The drivers are registered in that order, which causes the components to be added in that order, which makes the components to be bound in that order. This feels a bit fragile, and we probably should improve the code to manage binds in random order. However, for now, this works fine. Signed-off-by: Tomi Valkeinen Acked-by: Laurent Pinchart drivers/video/fbdev/omap2/dss/dispc.c | 28 ++++++++++++++--- drivers/video/fbdev/omap2/dss/dpi.c | 26 ++++++++++++--- drivers/video/fbdev/omap2/dss/dsi.c | 25 ++++++++++++--- drivers/video/fbdev/omap2/dss/dss.c | 59 ++++++++++++++++++++++++++++++++--- drivers/video/fbdev/omap2/dss/hdmi4.c | 26 ++++++++++++--- drivers/video/fbdev/omap2/dss/hdmi5.c | 26 ++++++++++++--- drivers/video/fbdev/omap2/dss/rfbi.c | 28 ++++++++++++++--- drivers/video/fbdev/omap2/dss/sdi.c | 27 +++++++++++++--- drivers/video/fbdev/omap2/dss/venc.c | 27 +++++++++++++--- 9 files changed, 234 insertions(+), 38 deletions(-) commit 606ae4865a1947c04d52b97b5109cda90aebe892 Author: Tomi Valkeinen Date: Thu Jun 4 14:31:36 2015 +0300 OMAPDSS: reorder uninit calls We have a list of function pointers to dss submodule uninit functions. It makes sense to do the uninit in the reverse order to init, but that is not currently the case. This patch reorders the uninit calls to be the reverse of init order. Signed-off-by: Tomi Valkeinen Acked-by: Laurent Pinchart drivers/video/fbdev/omap2/dss/core.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit ede9269572da9206249f02ebe031ded025b84fd3 Author: Tomi Valkeinen Date: Thu Jun 4 14:12:16 2015 +0300 OMAPDSS: remove uses of __init/__exit The following patches will add component handling to omapdss, improving the handling of deferred probing. However, at the moment we're using quite a lot of __inits and __exits in the driver, which prevent normal dynamic probing and removal. This patch removes most of the uses of __init and __exit, so that we can register drivers after module init, and so that we can unregister drivers even if the module is built-in. Signed-off-by: Tomi Valkeinen Acked-by: Laurent Pinchart drivers/video/fbdev/omap2/dss/dispc.c | 20 ++++++++++---------- drivers/video/fbdev/omap2/dss/dpi.c | 14 +++++++------- drivers/video/fbdev/omap2/dss/dsi.c | 6 +++--- drivers/video/fbdev/omap2/dss/dss.c | 26 +++++++++++++------------- drivers/video/fbdev/omap2/dss/dss.h | 32 ++++++++++++++++---------------- drivers/video/fbdev/omap2/dss/hdmi4.c | 6 +++--- drivers/video/fbdev/omap2/dss/hdmi5.c | 6 +++--- drivers/video/fbdev/omap2/dss/rfbi.c | 8 ++++---- drivers/video/fbdev/omap2/dss/sdi.c | 12 ++++++------ drivers/video/fbdev/omap2/dss/venc.c | 8 ++++---- 10 files changed, 69 insertions(+), 69 deletions(-) commit f5a1a1f8e41e93584935d4ae62a84280dcdbe778 Author: Tomi Valkeinen Date: Thu Jun 4 13:06:37 2015 +0300 OMAPDSS: fix dss_init_ports error handling The return value of dss_init_ports() is not handled at all, causing crashes later if the call failed. This patch adds the error handling, and we also move the call to a slightly earlier place to make bailing out easier. Signed-off-by: Tomi Valkeinen Acked-by: Laurent Pinchart drivers/video/fbdev/omap2/dss/dss.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 7e328f5adcabb0b08e713f202b4a0fc388b2319e Author: Tomi Valkeinen Date: Thu Jun 4 13:02:52 2015 +0300 OMAPDSS: refactor dss probe function Refactor dss probe function by extracting the setup for video plls into a separate function. The call to this function is also moved to a slightly earlier phase, so that in error case we can bail out more easily. Signed-off-by: Tomi Valkeinen Acked-by: Laurent Pinchart drivers/video/fbdev/omap2/dss/dss.c | 125 ++++++++++++++++++++---------------- 1 file changed, 69 insertions(+), 56 deletions(-) commit f99467b3549be1c87757e564d18eea6e541060c4 Author: Tomi Valkeinen Date: Thu Jun 4 12:35:42 2015 +0300 OMAPDSS: move 'dss_initialized' to dss driver We have a flag, 'dss_initialized', which tells omapfb and omapdrm if omapdss is available. At the moment it can be set even if the dss submodules are not all ready, in case something gets deferred. Move the flag to dss_core driver so that it'll signal the availability of the dss drivers move accurately. For now, it'll signal that dss_core is ready, which is not quite correct but still better than previously. The following patches will add component system to omapdss, and after those patches 'dss_initialized' will signal that all the submodules are ready. Signed-off-by: Tomi Valkeinen Acked-by: Laurent Pinchart drivers/video/fbdev/omap2/dss/core.c | 10 ---------- drivers/video/fbdev/omap2/dss/dss.c | 12 ++++++++++++ 2 files changed, 12 insertions(+), 10 deletions(-) commit b6eba5598dc69d1f3a79183d2521da53d336006e Author: Wolfram Sang Date: Tue Jun 9 16:14:40 2015 +0900 ARM: shmobile: r8a7740: remove I2C errata handling This is now done in the I2C driver. Signed-off-by: Wolfram Sang Acked-by: Laurent Pinchart Acked-by: Kuninori Morimoto Acked-by: Simon Horman Signed-off-by: Wolfram Sang arch/arm/mach-shmobile/setup-r8a7740.c | 55 ---------------------------------- 1 file changed, 55 deletions(-) commit 3ded3743a026e0762fa74467eafc66ecc1c484cc Author: Wolfram Sang Date: Tue Jun 9 16:14:39 2015 +0900 i2c: sh_mobile: add errata workaround This used to be in platform init code. We want it to do in the driver now. This is basically a code move and a new compatible added. Signed-off-by: Wolfram Sang Acked-by: Laurent Pinchart Acked-by: Kuninori Morimoto Acked-by: Simon Horman Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-sh_mobile.c | 40 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit 99463b3a399419b3bd795abce5e10c5de87c98d3 Author: Vinod Koul Date: Wed Jun 17 11:20:18 2015 +0530 ALSA: hda: provide default bus io ops extended hdac A typical io ops use simple io accessors which can be common for most drivers, so provide a default ops which will be used if driver doesn't provide one Signed-off-by: Vinod Koul Signed-off-by: Takashi Iwai sound/hda/ext/hdac_ext_bus.c | 59 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 58 insertions(+), 1 deletion(-) commit bab4445f9a083f087d0ebb4ba3e9dde669a6b9a5 Author: Vinod Koul Date: Wed Jun 17 11:20:17 2015 +0530 ALSA: hda: add hda link cleanup routine In HDA extended bus the HDA link objects are created when multilink capabilities are parsed. We need a routine which free up these link objects for a bus. So add snd_hdac_link_free_all routine 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 | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) commit e7a3484dc5b15aa69e44a8b29d9a6e512fa3f922 Author: Vinod Koul Date: Wed Jun 17 11:20:16 2015 +0530 ALSA: hda: add hdac_ext stream creation and cleanup routines HDAC extended core should create streams for an extended bus and also free up those on cleanup. So introduce snd_hdac_ext_stream_init_all and snd_hdac_stream_free_all routines Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Takashi Iwai include/sound/hdaudio_ext.h | 3 +++ sound/hda/ext/hdac_ext_stream.c | 50 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) commit 329d0c0cf1be0ad711bc2f9853fdacc33c1f72b4 Author: Kuninori Morimoto Date: Wed Jun 17 00:36:48 2015 +0000 ASoC: rsrc-card: remove unused ret '047000278da3a17f8("ASoC: rsrc-card: cleanup for DPCM")' cleanuped rsrc-card driver, but then, unused ret was left. Below warning happen without this patch ${LINUX}/sound/soc/sh/rcar/rsrc-card.c: In function 'rsrc_card_startup': ${LINUX}/sound/soc/sh/rcar/rsrc-card.c:78:6: warning: unused variable \ 'ret' [-Wunused-variable] Reported-by: kbuild test robot Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/rsrc-card.c | 2 -- 1 file changed, 2 deletions(-) commit 946cc46372dcf8e34f21a6d06826c2aa1822b642 Author: Tadeusz Struk Date: Tue Jun 16 10:31:06 2015 -0700 crypto: testmgr - add tests vectors for RSA New test vectors for RSA algorithm. Signed-off-by: Tadeusz Struk Signed-off-by: Herbert Xu crypto/Kconfig | 1 + crypto/testmgr.c | 158 ++++++++++++++++++++++++++++++++++++++++++++++ crypto/testmgr.h | 187 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 346 insertions(+) commit cfc2bb32b31371d6bffc6bf2da3548f20ad48c83 Author: Tadeusz Struk Date: Tue Jun 16 10:31:01 2015 -0700 crypto: rsa - add a new rsa generic implementation Add a new rsa generic SW implementation. This implements only cryptographic primitives. Signed-off-by: Tadeusz Struk Added select on ASN1. Signed-off-by: Herbert Xu crypto/Kconfig | 8 ++ crypto/Makefile | 8 ++ crypto/rsa.c | 315 ++++++++++++++++++++++++++++++++++++++++++ crypto/rsa_helper.c | 121 ++++++++++++++++ crypto/rsakey.asn1 | 5 + include/crypto/internal/rsa.h | 27 ++++ 6 files changed, 484 insertions(+) commit 3c339ab83fc09d9d91fb7e8b4a60e8ddc91de417 Author: Tadeusz Struk Date: Tue Jun 16 10:30:55 2015 -0700 crypto: akcipher - add PKE API Add Public Key Encryption API. Signed-off-by: Tadeusz Struk Made CRYPTO_AKCIPHER invisible like other type config options. Signed-off-by: Herbert Xu crypto/Kconfig | 9 + crypto/Makefile | 1 + crypto/akcipher.c | 117 +++++++++++++ crypto/crypto_user.c | 22 +++ include/crypto/akcipher.h | 340 +++++++++++++++++++++++++++++++++++++ include/crypto/internal/akcipher.h | 60 +++++++ include/linux/crypto.h | 1 + include/linux/cryptouser.h | 5 + 8 files changed, 555 insertions(+) commit 4642019dc4457486223e1fb75a6a4cba6e0e903a Author: Marc Zyngier Date: Thu Jun 11 18:50:17 2015 +0100 arm/arm64: KVM: vgic: Do not save GICH_HCR / ICH_HCR_EL2 The GIC Hypervisor Configuration Register is used to enable the delivery of virtual interupts to a guest, as well as to define in which conditions maintenance interrupts are delivered to the host. This register doesn't contain any information that we need to read back (the EOIcount is utterly useless for us). So let's save ourselves some cycles, and not save it before writing zero to it. Signed-off-by: Marc Zyngier arch/arm/kvm/interrupts_head.S | 3 --- arch/arm64/kvm/vgic-v2-switch.S | 3 --- arch/arm64/kvm/vgic-v3-switch.S | 2 -- 3 files changed, 8 deletions(-) commit f5a202db12b42aef9543029934681df019d7b749 Author: Marc Zyngier Date: Fri May 29 16:54:56 2015 +0100 KVM: arm: vgic: Drop useless Group0 warning If a GICv3-enabled guest tries to configure Group0, we print a warning on the console (because we don't support Group0 interrupts). This is fairly pointless, and would allow a guest to spam the console. Let's just drop the warning. Acked-by: Christoffer Dall Signed-off-by: Marc Zyngier virt/kvm/arm/vgic-v3-emul.c | 2 -- 1 file changed, 2 deletions(-) commit e2d997366dc5b6c9d14035867f73957f93e7578c Author: Lorenzo Pieralisi Date: Wed Jun 10 15:19:24 2015 +0100 ARM: kvm: psci: fix handling of unimplemented functions According to the PSCI specification and the SMC/HVC calling convention, PSCI function_ids that are not implemented must return NOT_SUPPORTED as return value. Current KVM implementation takes an unhandled PSCI function_id as an error and injects an undefined instruction into the guest if PSCI implementation is called with a function_id that is not handled by the resident PSCI version (ie it is not implemented), which is not the behaviour expected by a guest when calling a PSCI function_id that is not implemented. This patch fixes this issue by returning NOT_SUPPORTED whenever the kvm PSCI call is executed for a function_id that is not implemented by the PSCI kvm layer. Cc: # 3.18+ Cc: Christoffer Dall Acked-by: Sudeep Holla Signed-off-by: Lorenzo Pieralisi Signed-off-by: Marc Zyngier arch/arm/kvm/psci.c | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) commit 921ef1e16c762db13be740a35e691104d6740572 Author: Alex Bennée Date: Thu Jun 4 14:28:37 2015 +0100 KVM: arm64: fix misleading comments in save/restore The elr_el2 and spsr_el2 registers in fact contain the processor state before entry into EL2. In the case of guest state it could be in either el0 or el1. Signed-off-by: Alex Bennée Signed-off-by: Marc Zyngier arch/arm64/kvm/hyp.S | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 8889583c037c776041b08d7109acc2450e560036 Author: Kim Phillips Date: Fri Jun 5 16:21:49 2015 +0100 KVM: arm/arm64: Enable the KVM-VFIO device The KVM-VFIO device is used by the QEMU VFIO device. It is used to record the list of in-use VFIO groups so that KVM can manipulate them. Signed-off-by: Kim Phillips Signed-off-by: Eric Auger Signed-off-by: Marc Zyngier arch/arm/kvm/Kconfig | 1 + arch/arm/kvm/Makefile | 2 +- arch/arm64/kvm/Kconfig | 1 + arch/arm64/kvm/Makefile | 2 +- 4 files changed, 4 insertions(+), 2 deletions(-) commit 1b3d546daf85ed2bc9966e12cee3e6435fb65eca Author: Christoffer Dall Date: Thu May 28 19:49:10 2015 +0100 arm/arm64: KVM: Properly account for guest CPU time Until now we have been calling kvm_guest_exit after re-enabling interrupts when we come back from the guest, but this has the unfortunate effect that CPU time accounting done in the context of timer interrupts occurring while the guest is running doesn't properly notice that the time since the last tick was spent in the guest. Inspired by the comment in the x86 code, move the kvm_guest_exit() call below the local_irq_enable() call and change __kvm_guest_exit() to kvm_guest_exit(), because we are now calling this function with interrupts enabled. We have to now explicitly disable preemption and not enable preemption before we've called kvm_guest_exit(), since otherwise we could be preempted and everything happening before we eventually get scheduled again would be accounted for as guest time. At the same time, move the trace_kvm_exit() call outside of the atomic section, since there is no reason for us to do that with interrupts disabled. Signed-off-by: Christoffer Dall Signed-off-by: Marc Zyngier arch/arm/kvm/arm.c | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) commit ea2c6d9745c6698d9f820bc230aa1a80d9e908ac Author: Tiejun Chen Date: Mon May 4 10:48:49 2015 +0800 kvm: remove one useless check extension We already check KVM_CAP_IRQFD in generic once enable CONFIG_HAVE_KVM_IRQFD, kvm_vm_ioctl_check_extension_generic() | + switch (arg) { + ... + #ifdef CONFIG_HAVE_KVM_IRQFD + case KVM_CAP_IRQFD: + #endif + ... + return 1; + ... + } | + kvm_vm_ioctl_check_extension() So its not necessary to check this in arch again, and also fix one typo, s/emlation/emulation. Signed-off-by: Tiejun Chen Acked-by: Paolo Bonzini Signed-off-by: Christoffer Dall arch/arm/kvm/arm.c | 1 - include/uapi/linux/kvm.h | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) commit 85e84ba31039595995dae80b277378213602891b Author: Marc Zyngier Date: Mon Mar 16 10:59:43 2015 +0000 arm: KVM: force execution of HCPTR access on VM exit On VM entry, we disable access to the VFP registers in order to perform a lazy save/restore of these registers. On VM exit, we restore access, test if we did enable them before, and save/restore the guest/host registers if necessary. In this sequence, the FPEXC register is always accessed, irrespective of the trapping configuration. If the guest didn't touch the VFP registers, then the HCPTR access has now enabled such access, but we're missing a barrier to ensure architectural execution of the new HCPTR configuration. If the HCPTR access has been delayed/reordered, the subsequent access to FPEXC will cause a trap, which we aren't prepared to handle at all. The same condition exists when trapping to enable VFP for the guest. The fix is to introduce a barrier after enabling VFP access. In the vmexit case, it can be relaxed to only takes place if the guest hasn't accessed its view of the VFP registers, making the access to FPEXC safe. The set_hcptr macro is modified to deal with both vmenter/vmexit and vmtrap operations, and now takes an optional label that is branched to when the guest hasn't touched the VFP registers. Reported-by: Vikram Sethi Cc: stable@kernel.org # v3.9+ Signed-off-by: Marc Zyngier arch/arm/kvm/interrupts.S | 10 ++++------ arch/arm/kvm/interrupts_head.S | 20 ++++++++++++++++++-- 2 files changed, 22 insertions(+), 8 deletions(-) commit daecdc66968f122fe53038ded8cb7abe93e0aa8c Author: Heiko Stübner Date: Fri Jun 12 23:51:01 2015 +0200 pinctrl: rockchip: add support for the rk3368 The rk3368 is the first ARM64 soc from Rockchip, but seems to share most peripherals with the ARM32 soc, including the pinctrl functionality. The only notable difference is - as with every Rockchip soc - that the offsets in the General Register Files moved around and a split of the pmu section of the rk3288 into pmu and pmugrf (pmu general register files) sections. The pinctrl driver of course only needs the pmugrf registers for controlling the pin settings. Signed-off-by: Heiko Stuebner Signed-off-by: Linus Walleij .../bindings/pinctrl/rockchip,pinctrl.txt | 5 +- drivers/pinctrl/pinctrl-rockchip.c | 91 ++++++++++++++++++++++ 2 files changed, 94 insertions(+), 2 deletions(-) commit ef17f69f5bf57defa525d958af7aa4848e338b5a Author: Heiko Stübner Date: Fri Jun 12 23:50:11 2015 +0200 pinctrl: rockchip: generalize perpin driver-strength setting The upcoming support for the RK3368 ARM64 SoC also supports perpin drive strength settings (at different register positions), so generalize the register and offset calculation to easily support this one too. Signed-off-by: Heiko Stuebner Signed-off-by: Linus Walleij drivers/pinctrl/pinctrl-rockchip.c | 36 +++++++++++++++++++++++------------- 1 file changed, 23 insertions(+), 13 deletions(-) commit 9b2dfee3954e0b38a6a1b5305edd375defa8ad97 Author: Stephen Boyd Date: Tue Jun 16 11:11:22 2015 -0700 regulator: qcom_spmi: Add missing braces for aligned code drivers/regulator/qcom_spmi-regulator.c:751:3-50: code aligned with following code on line 753 drivers/regulator/qcom_spmi-regulator.c:584:3-41: code aligned with following code on line 587 These lines where missing braces causing the break to always be executed even when it shouldn't be. Fix it. Reported-by: kbuild test robot Signed-off-by: Stephen Boyd Reviewed-by: Andy Gross Signed-off-by: Mark Brown drivers/regulator/qcom_spmi-regulator.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit c2b7b20aedfa10de3634877c3e4b7bc9a7d6461e Author: Martin Willi Date: Tue Jun 16 11:34:16 2015 +0200 crypto: poly1305 - Pass key as first two message blocks to each desc_ctx The Poly1305 authenticator requires a unique key for each generated tag. This implies that we can't set the key per tfm, as multiple users set individual keys. Instead we pass a desc specific key as the first two blocks of the message to authenticate in update(). Signed-off-by: Martin Willi Signed-off-by: Herbert Xu crypto/chacha20poly1305.c | 54 +++++++++++++++----------- crypto/poly1305_generic.c | 97 ++++++++++++++++++++++++++++------------------ crypto/testmgr.h | 99 +++++++++++++++++++++-------------------------- 3 files changed, 134 insertions(+), 116 deletions(-) commit 8f69b763877a20fe06cb8d89b031a7ae73b269f2 Author: Herbert Xu Date: Tue Jun 16 13:54:26 2015 +0800 crypto: testmgr - Add mcgrew test vectors for rfc4106 This patch adds rfc4106 test vectors sourced from draft-mcgrew-gcm-test-01. Signed-off-by: Herbert Xu crypto/testmgr.h | 849 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 846 insertions(+), 3 deletions(-) commit bb68745e0ff65e9ab927e891481f6327a46191ae Author: Herbert Xu Date: Tue Jun 16 13:54:24 2015 +0800 Revert "crypto: testmgr - Disable rfc4543 test" This reverts commit 9b9f9296a7b73fbafe0a0a6f2494eaadd97f9f73 as all in-kernel implementations of GCM have been converted to the new AEAD interface, meaning that they should now pass the updated rfc4543 test. Signed-off-by: Herbert Xu crypto/testmgr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f2147b88b2b17d4c04738c75cc5a1d0dea60fa76 Author: Herbert Xu Date: Tue Jun 16 13:54:23 2015 +0800 crypto: caam - Convert GCM to new AEAD interface This patch converts the caam GCM implementations to the new AEAD interface. This is compile-tested only. Note that all IV generation for GCM algorithms have been removed. The reason is that the current generation uses purely random IVs which is not appropriate for counter-based algorithms where we first and foremost require uniqueness. Of course there is no reason why you couldn't implement seqiv or seqniv within caam since all they do is xor the sequence number with a salt, but since I can't test this on actual hardware I'll leave it alone for now. Signed-off-by: Herbert Xu drivers/crypto/caam/caamalg.c | 1430 +++++++++++++++++++++-------------------- 1 file changed, 741 insertions(+), 689 deletions(-) commit 6c94711cbdf595766bc3295e437c3579943cd846 Author: Herbert Xu Date: Tue Jun 16 13:54:22 2015 +0800 crypto: caam - Handle errors in dma_map_sg_chained Currently dma_map_sg_chained does not handle errors from the underlying dma_map_sg calls. This patch adds rollback in case of an error by simply calling dma_unmap_sg_chained for the ones that we've already mapped. All current callers ignore the return value so this should have no impact on them. Signed-off-by: Herbert Xu drivers/crypto/caam/sg_sw_sec4.h | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) commit 201f28f055917300c3301b19d0e0e674b9cf8cb7 Author: Herbert Xu Date: Tue Jun 16 13:54:21 2015 +0800 crypto: nx - Convert GCM to new AEAD interface This patch converts the nx GCM implementations to the new AEAD interface. This is compile-tested only. Signed-off-by: Herbert Xu drivers/crypto/nx/nx-aes-gcm.c | 107 ++++++++++++++++++----------------------- drivers/crypto/nx/nx.c | 26 ++++++---- drivers/crypto/nx/nx.h | 7 +-- 3 files changed, 67 insertions(+), 73 deletions(-) commit 0af8fbca8c7149c6c637291ed167badbb011b544 Author: Herbert Xu Date: Tue Jun 16 13:54:19 2015 +0800 crypto: testmgr - Update rfc4543 test vectors This patch updates the rfc4543 test vectors to the new format where the IV is part of the AD. For now these vectors are still unused. They will be reactivated once all rfc4543 implementations have migrated. Signed-off-by: Herbert Xu crypto/testmgr.h | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) commit adcbc688fe2f8107b7f564187593293aa9ea3932 Author: Herbert Xu Date: Tue Jun 16 13:54:18 2015 +0800 crypto: gcm - Convert to new AEAD interface This patch converts generic gcm and its associated transforms to the new AEAD interface. The biggest reward is in code reduction for rfc4543 where it used to do IV stitching which is no longer needed as the IV is already part of the AD on input. Signed-off-by: Herbert Xu crypto/gcm.c | 905 ++++++++++++++++++++++++----------------------------------- 1 file changed, 373 insertions(+), 532 deletions(-) commit 14f34061bc26b9cb72bb1136766f87296ba67314 Author: Herbert Xu Date: Tue Jun 16 13:54:16 2015 +0800 crypto: testmgr - Disable rfc4543 test Because the old rfc4543 implementation always injected an IV into the AD, while the new one does not, we have to disable the test while it is converted over to the new AEAD interface. Signed-off-by: Herbert Xu crypto/testmgr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a01bc0d5f557bd8becd0ba75d09c39192004697e Author: Dave Gerlach Date: Fri May 22 15:45:30 2015 -0500 remoteproc/wkup_m3: add a remoteproc driver for TI Wakeup M3 Add a remoteproc driver to load the firmware and boot a small Wakeup M3 processor present on TI AM33xx and AM43xx SoCs. This Wakeup M3 remote processor is an integrated Cortex M3 that allows the SoC to enter the lowest possible power state by taking control from the MPU after it has gone into its own low power state and shutting off any additional peripherals. The Wakeup M3 processor has two internal memory regions - 16 kB of unified instruction memory called UMEM used to store executable code, and 8 kB of data memory called DMEM used for all data sections. The Wakeup M3 processor executes its code entirely from within the UMEM and uses the DMEM for any data. It does not use any external memory or any other external resources. The device address view has the UMEM at address 0x0 and DMEM at address 0x80000, and these are computed automatically within the driver based on relative address calculation from the corresponding device tree IOMEM resources. These device addresses are used to aid the core remoteproc ELF loader code to properly translate and load the firmware segments through the .rproc_da_to_va ops. Signed-off-by: Dave Gerlach Signed-off-by: Suman Anna Signed-off-by: Ohad Ben-Cohen drivers/remoteproc/Kconfig | 13 ++ drivers/remoteproc/Makefile | 1 + drivers/remoteproc/wkup_m3_rproc.c | 257 ++++++++++++++++++++++++++++++++++ include/linux/platform_data/wkup_m3.h | 30 ++++ 4 files changed, 301 insertions(+) commit ccbbb9faac946ce61c241ce9f08b3486fabf031d Author: Dave Gerlach Date: Fri May 22 15:45:29 2015 -0500 Documentation: dt: add bindings for TI Wakeup M3 processor Add the device tree bindings document for the TI Wakeup M3 remote processor devices on AM33xx and AM43xx SoCs. These devices are used to offload low-level power management functionality, and are handled by the wkup_m3 remoteproc driver. Signed-off-by: Dave Gerlach Signed-off-by: Suman Anna Acked-by: Tony Lindgren Signed-off-by: Ohad Ben-Cohen .../bindings/remoteproc/wkup_m3_rproc.txt | 52 ++++++++++++++++++++++ 1 file changed, 52 insertions(+) commit a01f7cd657c95941079d548ef7fbf0cc370c1259 Author: Suman Anna Date: Fri May 22 15:45:28 2015 -0500 remoteproc: add a rproc ops for performing address translation The rproc_da_to_va API is currently used to perform any device to kernel address translations to meet the different needs of the remoteproc core/drivers (eg: loading). The functionality is achieved within the remoteproc core, and is limited only for carveouts allocated within the core. A new rproc ops, da_to_va, is added to provide flexibility to platform implementations to perform the address translation themselves when the above conditions cannot be met by the implementations. The rproc_da_to_va() API is extended to invoke this ops if present, and fallback to regular processing if the platform implementation cannot provide the translation. This will allow any remoteproc implementations to translate addresses for dedicated memories like internal memories. While at this, also update the rproc_da_to_va() documentation since it is an exported function. Signed-off-by: Suman Anna Signed-off-by: Dave Gerlach Signed-off-by: Ohad Ben-Cohen drivers/remoteproc/remoteproc_core.c | 31 +++++++++++++++++++++++++------ include/linux/remoteproc.h | 2 ++ 2 files changed, 27 insertions(+), 6 deletions(-) commit c51c8e7bcac966f209da83630fc8ca7e6cad279b Author: Hannes Reinecke Date: Thu Jun 11 10:01:26 2015 +0200 target: use 'se_dev_entry' when allocating UAs We need to use 'se_dev_entry' as argument when allocating UAs, otherwise we'll never see any UAs for an implicit ALUA state transition triggered from userspace. (Add target_ua_allocate_lun() common caller - nab) Signed-off-by: Hannes Reinecke Signed-off-by: Nicholas Bellinger drivers/target/target_core_alua.c | 27 ++++++++++++++-------- drivers/target/target_core_pr.c | 12 +++++----- drivers/target/target_core_transport.c | 12 +++++----- drivers/target/target_core_ua.c | 42 ++++++++++++++++++---------------- drivers/target/target_core_ua.h | 3 ++- 5 files changed, 54 insertions(+), 42 deletions(-) commit f0feeaff9c60bfb3dbadf09da15d70cf35700f29 Author: Hari Prasath Gujulan Elango Date: Tue Jun 16 07:38:02 2015 +0000 staging: wilc1000: remove unwanted code This patch removes SIOCDEVPRIVATE + 1 ioctl. It currently is just a stub which does some useless printks and returns. In the original code, if the user passes priv_cmd.total_len == 0 then it will Oops. Also it leaks memory every time it's called. In the future, we will implement this functionality using generic API functions Signed-off-by: Hari Prasath Gujulan Elango Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 57 ----------------------------------- 1 file changed, 57 deletions(-) commit 5a66bf20b8e17ed3abb1d115049ab9d636bd2d35 Author: Abdul Hussain Date: Tue Jun 16 09:44:06 2015 +0000 Staging: wilc1000: Boolean tests don't need comparisons This patch removes unwanted true and false from boolean tests. Signed-off-by: Abdul Hussain Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/coreconfigurator.c | 8 ++++---- drivers/staging/wilc1000/linux_mon.c | 2 +- drivers/staging/wilc1000/linux_wlan.c | 2 +- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 4 ++-- drivers/staging/wilc1000/wilc_wlan.c | 4 ++-- 5 files changed, 10 insertions(+), 10 deletions(-) commit f717c0ebb37ba3c8223ee7aa3047e94cb4a86c6f Author: Abdul Hussain Date: Tue Jun 16 09:49:49 2015 +0000 Staging: wilc1000: Assign proper boolean value This patch assign proper boolean value to boolean variable. Signed-off-by: Abdul Hussain Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3f4d1c09aef045ff4c37544a9187f29cc2c65720 Author: Chaehyun Lim Date: Wed Jun 17 11:08:09 2015 +0900 staging: wilc1000: align defines Align some defines in linux_wlan_common.h Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan_common.h | 146 +++++++++++++++------------ 1 file changed, 79 insertions(+), 67 deletions(-) commit c3ea8a720099873503464049da900d6df7a7a14e Author: Dean Lee Date: Tue Jun 16 15:28:21 2015 +0900 staging: wilc1000: rework include wilc_oswrapper.h rework line '#include "wilc_oswrapper.h"' it does not used anywhere after change own data type to common data type. Signed-off-by: Dean Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/coreconfigurator.h | 1 - drivers/staging/wilc1000/fifo_buffer.c | 1 - drivers/staging/wilc1000/fifo_buffer.h | 5 ++++- drivers/staging/wilc1000/host_interface.c | 1 - drivers/staging/wilc1000/wilc_memory.c | 2 +- drivers/staging/wilc1000/wilc_memory.h | 4 +++- drivers/staging/wilc1000/wilc_msgqueue.c | 2 +- drivers/staging/wilc1000/wilc_msgqueue.h | 5 +++++ drivers/staging/wilc1000/wilc_sleep.c | 2 +- drivers/staging/wilc1000/wilc_sleep.h | 3 +++ drivers/staging/wilc1000/wilc_strutils.c | 2 +- drivers/staging/wilc1000/wilc_strutils.h | 4 ++++ drivers/staging/wilc1000/wilc_timer.c | 2 +- drivers/staging/wilc1000/wilc_timer.h | 3 +++ 14 files changed, 27 insertions(+), 10 deletions(-) commit 0eb8618bd07533f423fed47399a0d6387bfe7cac Author: Richard Weinberger Date: Mon Jun 1 23:10:53 2015 +0200 mtd: docg3: Fix kasprintf() usage kasprintf() does a dynamic memory allocation and can fail. We have to handle that case. Signed-off-by: Richard Weinberger Signed-off-by: Brian Norris drivers/mtd/devices/docg3.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit 45c2ebd702a468d5037cf16aa4f8ea8d67776f6a Author: Richard Weinberger Date: Mon Jun 1 23:10:52 2015 +0200 mtd: docg3: Don't leak docg3->bbt in error path Signed-off-by: Richard Weinberger Signed-off-by: Brian Norris drivers/mtd/devices/docg3.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 641c7925b6ec78466358b654c731050b4179e5f4 Author: Richard Weinberger Date: Mon Jun 1 23:10:50 2015 +0200 mtd: nandsim: Fix kasprintf() usage kasprintf() used in get_partition_name() does a dynamic memory allocation and can fail. We have to handle that case. Signed-off-by: Richard Weinberger Signed-off-by: Brian Norris drivers/mtd/nand/nandsim.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit bc349da0a6b3c6cf795b6a51e3f448d9d16a1686 Author: Richard Weinberger Date: Mon Jun 1 23:10:51 2015 +0200 mtd: cs553x_nand: Fix kasprintf() usage kasprintf() does a dynamic memory allocation and can fail. We have to handle that case. Signed-off-by: Richard Weinberger Signed-off-by: Brian Norris drivers/mtd/nand/cs553x_nand.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit 905cce7f4309f3ec19c1ed67edd68b7e67e88f3e Author: Richard Weinberger Date: Mon Jun 1 23:10:49 2015 +0200 mtd: r852: Fix device_create_file() usage device_create_file() can fail, therefore we have to handle this case and abort. Signed-off-by: Richard Weinberger Signed-off-by: Brian Norris drivers/mtd/nand/r852.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 5e65d48b6049e090fdc57490db9d797124f2a9eb Author: Brian Norris Date: Thu May 28 15:07:45 2015 -0700 mtd: brcmnand: drop unnecessary initialization Signed-off-by: Brian Norris drivers/mtd/nand/brcmnand/brcmnand.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 57dd990c5e9c4664f3db4cba271c808ca7adf9e5 Author: Brian Norris Date: Mon Jun 1 16:17:18 2015 -0700 mtd: propagate error codes from add_mtd_device() It makes more sense to return error statuses, not 1/0. Signed-off-by: Brian Norris Reviewed-by: Richard Weinberger drivers/mtd/mtdcore.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) commit 6a7c7334fe250b53c42eb9d3887fd42bdc9d0d28 Author: Brian Norris Date: Mon Jun 1 16:17:17 2015 -0700 mtd: diskonchip: remove two-phase partitioning / registration It is a Bad Idea (TM) to call mtd_device_register() or mtd_device_parse_register() twice on the same master MTD. Among other things, it makes partition overrides (e.g., cmdlinepart) much more difficult. Since commit 727dc612c46b ("mtd: part: Create the master device node when partitioned"), we now have a config option that accomplishes the same purpose as the double-registration done in diskonchip.c -- it forces the master MTD to *always* be registered, while partitions may optionally show up in addition. Eventually, we might like to make CONFIG_MTD_PARTITIONED_MASTER into the default, but this could be disruptive to user-space expectations of MTD numbering, so we'll take that slowly. Signed-off-by: Brian Norris Cc: Richard Weinberger Cc: Alexander Shiyan drivers/mtd/nand/diskonchip.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) commit 469d7d22cea146e40efe8c330e5164b4d8f13934 Author: Frodo Lai Date: Tue Jun 16 15:03:53 2015 -0700 Input: pixcir_i2c_ts - fix receive error The i2c_master_recv() uses readsize to receive data from i2c but compares to size of rdbuf which is always 27. This would cause problem when the max_fingers is not 5. Change the comparison value to readsize instead. Fixes: 36874c7e219 ("Input: pixcir_i2c_ts - support up to 5 fingers and hardware tracking IDs:) Cc: stable@vger.kernel.org Signed-off-by: Frodo Lai Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/pixcir_i2c_ts.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 84c88ef9affb34f10cb5b66b07e2d496845d1c28 Author: Baruch Siach Date: Thu Jun 11 17:54:13 2015 -0700 MAINTAINERS: remove non existent input mt git tree The "INPUT MULTITOUCH (MT) PROTOCOL" entry git tree is not there on git.kernel.org. Signed-off-by: Baruch Siach Signed-off-by: Dmitry Torokhov MAINTAINERS | 1 - 1 file changed, 1 deletion(-) commit ea0afac450d2a3aaeb4c51ddf1631e677afe3193 Author: Uwe Kleine-König Date: Tue Jun 16 17:02:13 2015 -0700 Input: improve usage of gpiod API Since 39b2bbe3d715 (gpio: add flags argument to gpiod_get*() functions) which appeared in v3.17-rc1, the gpiod_get* functions take an additional parameter that allows to specify direction and initial value for output. Simplify drivers accordingly. Note that in the case of the drv260x driver error checking is more strict now because -ENOSYS is reported to the caller now. But this should only be returned if GPIOLIB is disabled which shouldn't happen as the driver depends on GPIOLIB. Signed-off-by: Uwe Kleine-König Reviewed-by: Linus Walleij Signed-off-by: Dmitry Torokhov drivers/input/keyboard/clps711x-keypad.c | 7 +------ drivers/input/misc/drv260x.c | 13 ++++--------- drivers/input/misc/gpio-beeper.c | 7 +------ 3 files changed, 6 insertions(+), 21 deletions(-) commit 4e023612325a9034a542bfab79f78b1fe5ebb841 Author: Firo Yang Date: Thu Jun 11 09:41:10 2015 +0800 md: fix a build warning Warning like this: drivers/md/md.c: In function "update_array_info": drivers/md/md.c:6394:26: warning: logical not is only applied to the left hand side of comparison [-Wlogical-not-parentheses] !mddev->persistent != info->not_persistent|| Fix it as Neil Brown said: mddev->persistent != !info->not_persistent || Signed-off-by: Firo Yang Signed-off-by: NeilBrown drivers/md/md.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 713bc5c2deb437ef40d48374ae6a57e030bd9e35 Author: Shaohua Li Date: Thu May 28 17:33:47 2015 -0700 md/raid5: ignore released_stripes check conf->released_stripes list isn't always related to where there are free stripes pending. Active stripes can be in the list too. And even free stripes were active very recently. Signed-off-by: Shaohua Li Signed-off-by: NeilBrown drivers/md/raid5.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e9e4c377e2f563892c50d1d093dd55c7d518fc3d Author: Yuanhan Liu Date: Fri May 8 18:19:07 2015 +1000 md/raid5: per hash value and exclusive wait_for_stripe I noticed heavy spin lock contention at get_active_stripe() with fsmark multiple thread write workloads. Here is how this hot contention comes from. We have limited stripes, and it's a multiple thread write workload. Hence, those stripes will be taken soon, which puts later processes to sleep for waiting free stripes. When enough stripes(>= 1/4 total stripes) are released, all process are woken, trying to get the lock. But there is one only being able to get this lock for each hash lock, making other processes spinning out there for acquiring the lock. Thus, it's effectiveless to wakeup all processes and let them battle for a lock that permits one to access only each time. Instead, we could make it be a exclusive wake up: wake up one process only. That avoids the heavy spin lock contention naturally. To do the exclusive wake up, we've to split wait_for_stripe into multiple wait queues, to make it per hash value, just like the hash lock. Here are some test results I have got with this patch applied(all test run 3 times): `fsmark.files_per_sec' ===================== next-20150317 this patch ------------------------- ------------------------- metric_value ±stddev metric_value ±stddev change testbox/benchmark/testcase-params ------------------------- ------------------------- -------- ------------------------------ 25.600 ±0.0 92.700 ±2.5 262.1% ivb44/fsmark/1x-64t-4BRD_12G-RAID5-btrfs-4M-30G-fsyncBeforeClose 25.600 ±0.0 77.800 ±0.6 203.9% ivb44/fsmark/1x-64t-9BRD_6G-RAID5-btrfs-4M-30G-fsyncBeforeClose 32.000 ±0.0 93.800 ±1.7 193.1% ivb44/fsmark/1x-64t-4BRD_12G-RAID5-ext4-4M-30G-fsyncBeforeClose 32.000 ±0.0 81.233 ±1.7 153.9% ivb44/fsmark/1x-64t-9BRD_6G-RAID5-ext4-4M-30G-fsyncBeforeClose 48.800 ±14.5 99.667 ±2.0 104.2% ivb44/fsmark/1x-64t-4BRD_12G-RAID5-xfs-4M-30G-fsyncBeforeClose 6.400 ±0.0 12.800 ±0.0 100.0% ivb44/fsmark/1x-64t-3HDD-RAID5-btrfs-4M-40G-fsyncBeforeClose 63.133 ±8.2 82.800 ±0.7 31.2% ivb44/fsmark/1x-64t-9BRD_6G-RAID5-xfs-4M-30G-fsyncBeforeClose 245.067 ±0.7 306.567 ±7.9 25.1% ivb44/fsmark/1x-64t-4BRD_12G-RAID5-f2fs-4M-30G-fsyncBeforeClose 17.533 ±0.3 21.000 ±0.8 19.8% ivb44/fsmark/1x-1t-3HDD-RAID5-xfs-4M-40G-fsyncBeforeClose 188.167 ±1.9 215.033 ±3.1 14.3% ivb44/fsmark/1x-1t-4BRD_12G-RAID5-btrfs-4M-30G-NoSync 254.500 ±1.8 290.733 ±2.4 14.2% ivb44/fsmark/1x-1t-9BRD_6G-RAID5-btrfs-4M-30G-NoSync `time.system_time' ===================== next-20150317 this patch ------------------------- ------------------------- metric_value ±stddev metric_value ±stddev change testbox/benchmark/testcase-params ------------------------- ------------------------- -------- ------------------------------ 7235.603 ±1.2 185.163 ±1.9 -97.4% ivb44/fsmark/1x-64t-4BRD_12G-RAID5-btrfs-4M-30G-fsyncBeforeClose 7666.883 ±2.9 202.750 ±1.0 -97.4% ivb44/fsmark/1x-64t-9BRD_6G-RAID5-btrfs-4M-30G-fsyncBeforeClose 14567.893 ±0.7 421.230 ±0.4 -97.1% ivb44/fsmark/1x-64t-3HDD-RAID5-btrfs-4M-40G-fsyncBeforeClose 3697.667 ±14.0 148.190 ±1.7 -96.0% ivb44/fsmark/1x-64t-4BRD_12G-RAID5-xfs-4M-30G-fsyncBeforeClose 5572.867 ±3.8 310.717 ±1.4 -94.4% ivb44/fsmark/1x-64t-9BRD_6G-RAID5-ext4-4M-30G-fsyncBeforeClose 5565.050 ±0.5 313.277 ±1.5 -94.4% ivb44/fsmark/1x-64t-4BRD_12G-RAID5-ext4-4M-30G-fsyncBeforeClose 2420.707 ±17.1 171.043 ±2.7 -92.9% ivb44/fsmark/1x-64t-9BRD_6G-RAID5-xfs-4M-30G-fsyncBeforeClose 3743.300 ±4.6 379.827 ±3.5 -89.9% ivb44/fsmark/1x-64t-3HDD-RAID5-ext4-4M-40G-fsyncBeforeClose 3308.687 ±6.3 363.050 ±2.0 -89.0% ivb44/fsmark/1x-64t-3HDD-RAID5-xfs-4M-40G-fsyncBeforeClose Where, 1x: where 'x' means iterations or loop, corresponding to the 'L' option of fsmark 1t, 64t: where 't' means thread 4M: means the single file size, corresponding to the '-s' option of fsmark 40G, 30G, 120G: means the total test size 4BRD_12G: BRD is the ramdisk, where '4' means 4 ramdisk, and where '12G' means the size of one ramdisk. So, it would be 48G in total. And we made a raid on those ramdisk As you can see, though there are no much performance gain for hard disk workload, the system time is dropped heavily, up to 97%. And as expected, the performance increased a lot, up to 260%, for fast device(ram disk). v2: use bits instead of array to note down wait queue need to wake up. Signed-off-by: Yuanhan Liu Signed-off-by: NeilBrown drivers/md/raid5.c | 27 +++++++++++++++++++-------- drivers/md/raid5.h | 2 +- 2 files changed, 20 insertions(+), 9 deletions(-) commit b1b4648648e18775082858eca2517322f63e57a1 Author: Yuanhan Liu Date: Fri May 8 18:19:06 2015 +1000 md/raid5: split wait_for_stripe and introduce wait_for_quiescent I noticed heavy spin lock contention at get_active_stripe(), introduced at being wake up stage, where a bunch of processes try to re-hold the spin lock again. After giving some thoughts on this issue, I found the lock could be relieved(and even avoided) if we turn the wait_for_stripe to per waitqueue for each lock hash and make the wake up exclusive: wake up one process each time, which avoids the lock contention naturally. Before go hacking with wait_for_stripe, I found it actually has 2 usages: for the array to enter or leave the quiescent state, and also to wait for an available stripe in each of the hash lists. So this patch splits the first usage off into a separate wait_queue, wait_for_quiescent, and the next patch will turn the second usage into one waitqueue for each hash value, and make it exclusive, to relieve the lock contention. v2: wake_up(wait_for_quiescent) when (active_stripes == 0) Commit log refactor suggestion from Neil. Signed-off-by: Yuanhan Liu Signed-off-by: NeilBrown drivers/md/raid5.c | 15 +++++++++------ drivers/md/raid5.h | 1 + 2 files changed, 10 insertions(+), 6 deletions(-) commit 9f3520c3115b451ac1301779fc3c769d94907a70 Author: Yuanhan Liu Date: Fri May 8 18:19:05 2015 +1000 wait: introduce wait_event_exclusive_cmd It's just a variant of wait_event_cmd(), with exclusive flag being set. For cases like RAID5, which puts many processes to sleep until 1/4 resources are free, a wake_up wakes up all processes to run, but there is one process being able to get the resource as it's protected by a spin lock. That ends up introducing heavy lock contentions, and hurts performance badly. Here introduce wait_event_exclusive_cmd to relieve the lock contention naturally by letting wake_up just wake up one process. Cc: Ingo Molnar Cc: Peter Zijlstra v2: its assumed that wait*() and __wait*() have the same arguments - peterz Acked-by: Peter Zijlstra (Intel) Signed-off-by: Yuanhan Liu Signed-off-by: NeilBrown include/linux/wait.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 4c9309c0cce96ea93be638dd243616e56e4bfe7d Author: Alexey Dobriyan Date: Sat May 16 14:02:38 2015 +0300 md: convert to kstrto*() Convert away from deprecated simple_strto*() functions. Add "fit into sector_t" checks. Signed-off-by: Alexey Dobriyan Signed-off-by: NeilBrown drivers/md/md.c | 149 ++++++++++++++++++++++++++++++-------------------------- 1 file changed, 81 insertions(+), 68 deletions(-) commit c31df25f20e35add6a453328c61eca15434fae18 Author: Kent Overstreet Date: Wed May 6 23:34:20 2015 -0700 md/raid10: make sync_request_write() call bio_copy_data() Refactor sync_request_write() of md/raid10 to use bio_copy_data() instead of open coding bio_vec iterations. Cc: Christoph Hellwig Cc: Neil Brown Cc: linux-raid@vger.kernel.org Reviewed-by: Christoph Hellwig Acked-by: NeilBrown Signed-off-by: Kent Overstreet [dpark: add more description in commit message] Signed-off-by: Dongsu Park Signed-off-by: Ming Lin Signed-off-by: NeilBrown drivers/md/raid10.c | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) commit 07949bf9c63c9a80027fe8452d5fe8b9ba9b3c23 Author: Felipe Balbi Date: Fri May 8 14:57:30 2015 -0500 cpufreq: dt: allow driver to boot automatically by adding the missing MODULE_ALIAS(), cpufreq-dt can be autoloaded by udev/systemd. Signed-off-by: Felipe Balbi Acked-by: Nishanth Menon Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq-dt.c | 1 + 1 file changed, 1 insertion(+) commit 3609d819a36c65857816ca1278d80767d6d9b990 Author: Shreyas B. Prabhu Date: Wed May 20 00:30:14 2015 +0530 powerpc: Make doorbell check preemption safe Doorbell can be used to cause ipi on cpus which are sibling threads on the same core. So icp_native_cause_ipi checks if the destination cpu is a sibling thread of the current cpu and uses doorbell in such cases. But while running with CONFIG_PREEMPT=y, since this section is preemtible, we can run into issues if after we check if the destination cpu is a sibling cpu, the task gets migrated from a sibling cpu to a cpu on another core. Fix this by using get_cpu()/ put_cpu() Signed-off-by: Shreyas B. Prabhu Signed-off-by: Michael Neuling Signed-off-by: Michael Ellerman arch/powerpc/sysdev/xics/icp-native.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) commit eeb64c14275e52740d6410632e62e0ad9b88ca70 Author: Samuel Thibault Date: Sat Jun 6 11:44:39 2015 -0700 tty/vt/keyboard: define LED triggers for VT keyboard lock states In addition to defining triggers for VT LED states, let's define triggers for VT keyboard lock states, such as "kbd-shiftlock", "kbd-altgrlock", etc. This permits to fix #7063 from userland by using a modifier to implement proper CapsLock behavior and have the keyboard caps lock led show that modifier state. Signed-off-by: Samuel Thibault Tested-by: Pavel Machek Acked-by: Pavel Machek Signed-off-by: Dmitry Torokhov drivers/tty/vt/keyboard.c | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) commit 5235552273e6b68abbed3b3047af6344e2e60c2c Author: Samuel Thibault Date: Mon Mar 16 21:19:44 2015 -0700 tty/vt/keyboard: define LED triggers for VT LED states Now that input core allows controlling keyboards LEDs via standard LED subsystem triggers let's switch VT keyboard code to make use of this feature. We will define the following standard triggers: "kbd-scrollock", "kbd-numlock", "kbd-capslock", and "kbd-kanalock" which are default triggers for respective LEDs on keyboards. Signed-off-by: Samuel Thibault Tested-by: Pavel Machek Acked-by: Pavel Machek Signed-off-by: Dmitry Torokhov drivers/tty/vt/keyboard.c | 141 ++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 117 insertions(+), 24 deletions(-) commit 10e87dc42a086c256b25334b6c1c89214feba9a7 Author: Andrew Duggan Date: Tue Jun 16 14:08:41 2015 -0700 HID: rmi: Disable populating F30 when the touchpad has physical buttons Physical buttons do not use F30 to report their state and in some cases the data reported in F30 is incorrect and inconsistent with what is reported by the HID descriptor. When physical buttons are present, ignore F30 and let hid-input report buttons based on what is defined in the HID descriptor. Signed-off-by: Andrew Duggan Reviewed-by: Benjamin Tissoires Signed-off-by: Jiri Kosina drivers/hid/hid-rmi.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 56df900cb44d18c3ffaf16e09b83aaf37d912cc5 Author: Jes Sorensen Date: Tue Jun 16 09:13:33 2015 -0400 staging: unisys: visorchannel_write() fix potential memory corruption This fixes the memory corruption case, if nbytes is less than offset and sizeof(struct channel_header) Reported-by: Dan Carpenter Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorchannel.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 68905a14e49c97bf49dacd753e40ddd5b254e2ad Author: David Kershner Date: Mon Jun 15 23:31:59 2015 -0400 staging: unisys: Add s-Par visornic ethernet driver This driver creates a network device when s-Par sends a device create message to create network adapter on the visorbus. When the message is received by visorbus, the visornic_probe function is called and the netdev device is created and managed by the visornic driver. Signed-off-by: David Kershner Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/Kconfig | 1 + drivers/staging/unisys/Makefile | 1 + drivers/staging/unisys/visornic/Kconfig | 15 + drivers/staging/unisys/visornic/Makefile | 10 + drivers/staging/unisys/visornic/visornic_main.c | 2140 +++++++++++++++++++++++ 5 files changed, 2167 insertions(+) commit dbb9d619941ad57dbe3c6667764e1eccd5ee5f1b Author: David Kershner Date: Mon Jun 15 23:31:58 2015 -0400 staging: unisys: define structures outside of iochannel During testing with visornic the offset of num_rcv_bufs was being reported at 188 instead of 186. The vnic structure starts at 180 and the macaddr is only 6 bytes long. When I defined and packed the structures outside of the struct and then referenced them in the struct the correct offset was generated. Signed-off-by: David Kershner Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/include/iochannel.h | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) commit 39630ee2a37e57cc8dfa3cf5a55f8249d6e883bc Author: David Kershner Date: Mon Jun 15 23:31:57 2015 -0400 staging: unisys: Remove visorchannel stub Visorchannel directory has been stripped down to almost nothing, and is no longer referenced. This finishes getting rid of the directory. Signed-off-by: David Kershner Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorchannel/Kconfig | 9 ---- drivers/staging/unisys/visorchannel/Makefile | 10 ----- drivers/staging/unisys/visorchannel/globals.h | 25 ----------- .../unisys/visorchannel/visorchannel_main.c | 50 ---------------------- 4 files changed, 94 deletions(-) commit 99c805f4c2912a8cbdb4659de24e1a14bd498ae3 Author: David Kershner Date: Mon Jun 15 23:31:56 2015 -0400 staging: unisys: s-Par video channel includes EFI framebuffer The efi framebuffer is defined within the s-Par video channel console. Before we get the device create message for the video console, s-Par has alreaady informed linux about the efi framebuffer and a memory region is already set up for it. Since we do not use the video channel in linux, we are just ignoring the failure of the video channel request_mem_region. Testing: This patch was tested on top of s-Par and we no longer leave the partition in a failed state. Signed-off-by: David Kershner Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorchannel.c | 40 +++++++++++++++++++++----- 1 file changed, 33 insertions(+), 7 deletions(-) commit 49afd7289bd937401c5f7faa193054bc3c41dad6 Author: Jarkko Sakkinen Date: Tue Jun 9 15:07:59 2015 +0300 tpm, tpm_crb: fix le64_to_cpu conversions in crb_acpi_add() le64_to_cpu() was applied twice to the physical addresses read from the control area. This hasn't shown any visible regressions because CRB driver has been tested only on the little endian platofrms so far. Reported-by: Matt Fleming Signed-off-by: Jarkko Sakkinen Reviewed-By: Jason Gunthorpe Cc: Fixes: 30fc8d138e91 ("tpm: TPM 2.0 CRB Interface") Signed-off-by: Peter Huewe drivers/char/tpm/tpm_crb.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 9d75f08946e8485109458ccf16f714697c207f41 Author: Hon Ching \(Vicky\) Lo Date: Fri May 22 13:23:02 2015 -0400 vTPM: set virtual device before passing to ibmvtpm_reset_crq tpm_ibmvtpm_probe() calls ibmvtpm_reset_crq(ibmvtpm) without having yet set the virtual device in the ibmvtpm structure. So in ibmvtpm_reset_crq, the phype call contains empty unit addresses, ibmvtpm->vdev->unit_address. Signed-off-by: Hon Ching(Vicky) Lo Signed-off-by: Joy Latten Reviewed-by: Ashley Lai Cc: Fixes: 132f76294744 ("drivers/char/tpm: Add new device driver to support IBM vTPM") Signed-off-by: Peter Huewe drivers/char/tpm/tpm_ibmvtpm.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 84e3b420420e78babb5a981a91943f59bd156f21 Author: Fabian Frederick Date: Mon Mar 30 22:06:08 2015 +0200 tpm_ibmvtpm: remove unneccessary message level. KERN_ERR is implicitely declared in pr_err() Signed-off-by: Fabian Frederick Signed-off-by: Peter Huewe drivers/char/tpm/tpm_of.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7180dddf7c32c49975c7e7babf2b60ed450cb760 Author: Prarit Bhargava Date: Mon Jun 15 13:43:29 2015 -0400 intel_pstate: Fix overflow in busy_scaled due to long delay The kernel may delay interrupts for a long time which can result in timers being delayed. If this occurs the intel_pstate driver will crash with a divide by zero error: divide error: 0000 [#1] SMP Modules linked in: btrfs zlib_deflate raid6_pq xor msdos ext4 mbcache jbd2 binfmt_misc arc4 md4 nls_utf8 cifs dns_resolver tcp_lp bnep bluetooth rfkill fuse dm_service_time iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi nf_conntrack_netbios_ns nf_conntrack_broadcast nf_conntrack_ftp ip6t_rpfilter ip6t_REJECT ipt_REJECT xt_conntrack ebtable_nat ebtable_broute bridge stp llc ebtable_filter ebtables ip6table_nat nf_conntrack_ipv6 nf_defrag_ipv6 nf_nat_ipv6 ip6table_mangle ip6table_security ip6table_raw ip6table_filter ip6_tables iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_nat nf_conntrack iptable_mangle iptable_security iptable_raw iptable_filter ip_tables intel_powerclamp coretemp vfat fat kvm_intel iTCO_wdt iTCO_vendor_support ipmi_devintf sr_mod kvm crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel aesni_intel cdc_ether lrw usbnet cdrom mii gf128mul glue_helper ablk_helper cryptd lpc_ich mfd_core pcspkr sb_edac edac_core ipmi_si ipmi_msghandler ioatdma wmi shpchp acpi_pad nfsd auth_rpcgss nfs_acl lockd uinput dm_multipath sunrpc xfs libcrc32c usb_storage sd_mod crc_t10dif crct10dif_common ixgbe mgag200 syscopyarea sysfillrect sysimgblt mdio drm_kms_helper ttm igb drm ptp pps_core dca i2c_algo_bit megaraid_sas i2c_core dm_mirror dm_region_hash dm_log dm_mod CPU: 113 PID: 0 Comm: swapper/113 Tainted: G W -------------- 3.10.0-229.1.2.el7.x86_64 #1 Hardware name: IBM x3950 X6 -[3837AC2]-/00FN827, BIOS -[A8E112BUS-1.00]- 08/27/2014 task: ffff880fe8abe660 ti: ffff880fe8ae4000 task.ti: ffff880fe8ae4000 RIP: 0010:[] [] intel_pstate_timer_func+0x179/0x3d0 RSP: 0018:ffff883fff4e3db8 EFLAGS: 00010206 RAX: 0000000027100000 RBX: ffff883fe6965100 RCX: 0000000000000000 RDX: 0000000000000000 RSI: 0000000000000010 RDI: 000000002e53632d RBP: ffff883fff4e3e20 R08: 000e6f69a5a125c0 R09: ffff883fe84ec001 R10: 0000000000000002 R11: 0000000000000005 R12: 00000000000049f5 R13: 0000000000271000 R14: 00000000000049f5 R15: 0000000000000246 FS: 0000000000000000(0000) GS:ffff883fff4e0000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f7668601000 CR3: 000000000190a000 CR4: 00000000001407e0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400 Stack: ffff883fff4e3e58 ffffffff81099dc1 0000000000000086 0000000000000071 ffff883fff4f3680 0000000000000071 fbdc8a965e33afee ffffffff810b69dd ffff883fe84ec000 ffff883fe6965108 0000000000000100 ffffffff814a9100 Call Trace: [] ? run_posix_cpu_timers+0x51/0x840 [] ? trigger_load_balance+0x5d/0x200 [] ? pid_param_set+0x130/0x130 [] call_timer_fn+0x36/0x110 [] ? pid_param_set+0x130/0x130 [] run_timer_softirq+0x21f/0x320 [] __do_softirq+0xef/0x280 [] call_softirq+0x1c/0x30 [] do_softirq+0x65/0xa0 [] irq_exit+0x115/0x120 [] smp_apic_timer_interrupt+0x45/0x60 [] apic_timer_interrupt+0x6d/0x80 [] ? cpuidle_enter_state+0x52/0xc0 [] ? cpuidle_enter_state+0x48/0xc0 [] cpuidle_idle_call+0xc5/0x200 [] arch_cpu_idle+0xe/0x30 [] cpu_startup_entry+0xf1/0x290 [] start_secondary+0x1ba/0x230 Code: 42 0f 00 45 89 e6 48 01 c2 43 8d 44 6d 00 39 d0 73 26 49 c1 e5 08 89 d2 4d 63 f4 49 63 c5 48 c1 e2 08 48 c1 e0 08 48 63 ca 48 99 <48> f7 f9 48 98 4c 0f af f0 49 c1 ee 08 8b 43 78 c1 e0 08 44 29 RIP [] intel_pstate_timer_func+0x179/0x3d0 RSP The kernel values for cpudata for CPU 113 were: struct cpudata { cpu = 113, timer = { entry = { next = 0x0, prev = 0xdead000000200200 }, expires = 8357799745, base = 0xffff883fe84ec001, function = 0xffffffff814a9100 , data = 18446612406765768960, i_gain = 0, d_gain = 0, deadband = 0, last_err = 22489 }, last_sample_time = { tv64 = 4063132438017305 }, prev_aperf = 287326796397463, prev_mperf = 251427432090198, sample = { core_pct_busy = 23081, aperf = 2937407, mperf = 3257884, freq = 2524484, time = { tv64 = 4063149215234118 } } } which results in the time between samples = last_sample_time - sample.time = 4063149215234118 - 4063132438017305 = 16777216813 which is 16.777 seconds. The duration between reads of the APERF and MPERF registers overflowed a s32 sized integer in intel_pstate_get_scaled_busy()'s call to div_fp(). The result is that int_tofp(duration_us) == 0, and the kernel attempts to divide by 0. While the kernel shouldn't be delaying for a long time, it can and does happen and the intel_pstate driver should not panic in this situation. This patch changes the div_fp() function to use div64_s64() to allow for "long" division. This will avoid the overflow condition on long delays. [v2]: use div64_s64() in div_fp() Signed-off-by: Prarit Bhargava Signed-off-by: Rafael J. Wysocki drivers/cpufreq/intel_pstate.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit b7ae128d728c42583dac9db48dce9a44bc0fb900 Author: Robert Richter Date: Fri Jun 5 19:49:26 2015 +0200 ahci: Add support for Cavium's ThunderX host controller This patch adds support for Cavium's ThunderX host controller. The controller resides on the SoC and is a AHCI compatible SATA controller with one port, compliant with Serial ATA 3.1 and AHCI Revision 1.31. There can exists multiple SATA controllers on the SoC. The controller depends on MSI-X support since the PCI ECAM controller on the SoC does not implement MSI nor lagacy intx interrupt support. Thus, during device initialization, if MSI fails MSI-X will be used to enable the device's interrupts. The controller uses non-standard BAR0 for its register range. The already existing device lookup (vendor and device id) that is already implemented for other host controllers is used to change the PCI BAR. Signed-off-by: Robert Richter Signed-off-by: Tejun Heo drivers/ata/ahci.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit ee2aad42e4b6eaa9721196f07f7d5d8d049e6530 Author: Robert Richter Date: Fri Jun 5 19:49:25 2015 +0200 ahci: Add generic MSI-X support for single interrupts to SATA PCI driver This patch adds generic MSI-X support for single interrupts to the SATA PCI driver. MSI-X support is needed for host controller that only have MSI-X support implemented, but no MSI or intx. This patch only adds support for single interrupts, multiple per-port MSI-X interrupts are not yet implemented. The new implementation still initializes MSIs first. Only if that fails, the code tries to enable MSI-X. If that fails too, setup is continued with intx interrupts. To not break other chips by this generic code change, there are the following precautions: * Interrupt ranges are not enabled at all. * Only single interrupt mode is enabled for msix cap devices. Thus, only one interrupt will be setup. * During the discussion with Tejun we agreed to change the init sequence from msix-msi-intx to msi-msix-intx. Thus, if a device offers msi and init does not fail, the msix init code will not be executed. This is equivalent to current code. With this, the code only setups single mode msix as a last resort if msi fails. No interrupt range is enabled at all. Only one interrupt will be enabled. tj: comment edits. Changes of the patch series: v5: * updated patch subject that the patch only implements single IRQ * moved Cavium specific code to a separate patch * detect Cavium ThunderX device with PCI_CLASS_STORAGE_SATA_AHCI instead of vendor/dev id * added more comments to the code * enable single msix support for all kind of devices (removing strict check) * rebased onto update libata/for-4.2 with patch 1, 2 applied v4: * removed implementation of ahci_init_intx() * improved patch descriptions * rebased onto libata/for-4.2 v3: * store irq number in struct ahci_host_priv * change initialization order from msix-msi-intx to msi-msix-intx * improve comments in ahci_init_msix() * improve error message in ahci_init_msix() * do not enable MSI-X if MSI is actively disabled for the device v2: * determine irq vector from pci_dev->msi_list Based on a patch from Sunil Goutham . Signed-off-by: Robert Richter Signed-off-by: Tejun Heo drivers/ata/ahci.c | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) commit b0c6d93014c8f2f53b70e9362b9fbec13b8e3aa0 Author: Paul Gortmaker Date: Mon Jun 15 09:56:26 2015 -0400 MIPS: don't use module_init in non-modular cobalt/mtd.c file As of commit 34b1252bd91851f77f89fbb6829a04efad900f41 ("MIPS: Cobalt: Do not build MTD platform device registration code as module.") this file became built-in instead of modular. So we should also stop using module_init as an alias for __initcall as that can be rather misleading. Fix this up now, so that we can relocate module_init from init.h into module.h in the future. If we don't do this, we'd have to add module.h to obviously non-modular code, and that would be a worse thing. Direct use of __initcall is discouraged, vs prioritized ones. Use of device_initcall is consistent with what __initcall maps onto, and hence does not change the init order, making the impact of this change zero. Cc: Ralf Baechle Cc: linux-mips@linux-mips.org Signed-off-by: Paul Gortmaker arch/mips/cobalt/mtd.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 33d69ca12b44ef3c7be8f948ffa5a35652e1f2ff Author: Paul Gortmaker Date: Mon Jun 15 16:48:22 2015 -0500 drivers/leds: don't use module_init in non-modular leds-cobalt-raq.c This file is built for a bool Kconfig variable, and hence this code is either present or absent. It currently can never be modular, so using module_init as an alias for __initcall can be somewhat misleading. Fix this up now, so that we can relocate module_init from init.h into module.h in the future. If we don't do this, we'd have to add module.h to obviously non-modular code, and that would be a worse thing. Note that direct use of __initcall is discouraged, vs. one of the priority categorized subgroups. As __initcall gets mapped onto device_initcall, our use of device_initcall directly in this change means that the runtime impact is zero -- it will remain at level 6 in initcall ordering. And since it can't be modular, we remove all the __exitcall stuff related to module_exit() -- it is dead code that won't ever be executed. Cc: Bryan Wu Cc: Richard Purdie Cc: Jacek Anaszewski Acked-by: Jacek Anaszewski Cc: linux-leds@vger.kernel.org Signed-off-by: Paul Gortmaker drivers/leds/leds-cobalt-raq.c | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) commit fec47d863587c272d6fbf4e50066209c953d5e60 Author: Dave Gerlach Date: Fri May 22 15:45:27 2015 -0500 remoteproc: introduce rproc_get_by_phandle API Allow users of remoteproc the ability to get a handle to an rproc by passing a phandle supplied in the user's device tree node. This is useful in situations that require manual booting of the rproc. This patch uses the code removed by commit 40e575b1d0b3 ("remoteproc: remove the get_by_name/put API") for the ref counting but is modified to use a simple list and locking mechanism and has rproc_get_by_name replaced with an rproc_get_by_phandle API. Signed-off-by: Dave Gerlach Signed-off-by: Suman Anna [fix order of Signed-off-by tags] Signed-off-by: Ohad Ben-Cohen Documentation/remoteproc.txt | 6 +++++ drivers/remoteproc/remoteproc_core.c | 50 ++++++++++++++++++++++++++++++++++++ include/linux/remoteproc.h | 7 ++--- 3 files changed, 60 insertions(+), 3 deletions(-) commit 32e805e7c6a343894c95a3431973e8ddad4aa2cf Author: Paul Gortmaker Date: Fri Jun 5 09:37:19 2015 -0400 tile: add init.h to usb.c to avoid compile failure Pending header cleanups will reveal this file is using the init.h content implicitly with the following fail: arch/tile/kernel/usb.c:69:1: warning: data definition has no type or storage class [enabled by default] arch/tile/kernel/usb.c:69:1: error: type defaults to 'int' in declaration of 'arch_initcall' arch/tile/kernel/usb.c:69:1: warning: parameter names (without types) in function declaration [enabled by default] arch/tile/kernel/usb.c:62:19: warning: 'tilegx_usb_init' defined but not used Explicitly add init.h to get arch_initcall and avoid this. Reported-by: kbuild test robot Cc: Chris Metcalf Acked-by: Chris Metcalf Signed-off-by: Paul Gortmaker arch/tile/kernel/usb.c | 1 + 1 file changed, 1 insertion(+) commit 9b9cf81a2d1f5336de2bebae71a9f2b8d5f1a8de Author: Paul Gortmaker Date: Fri May 1 20:13:42 2015 -0400 arm: fix implicit #include in entry asm. They use the "_INIT" macro and friends, and hence need to source this header file, vs. relying on getting it implicitly. Cc: Russell King Cc: linux-arm-kernel@lists.infradead.org Signed-off-by: Paul Gortmaker arch/arm/kernel/entry-armv.S | 2 ++ 1 file changed, 2 insertions(+) commit 70c4f78b23c69013c908222d55a07c96fea4bba1 Author: Paul Gortmaker Date: Fri May 1 20:13:42 2015 -0400 x86: replace __init_or_module with __init in non-modular vsmp_64.c The __init_or_module is from commit 05e12e1c4c09cd35ac9f4e6af1e ("x86: fix 27-rc crash on vsmp due to paravirt during module load"). But as of commit 70511134f61bd6e5eed19f767381f9fb3e762d49 ("Revert "x86: don't compile vsmp_64 for 32bit") this file became obj-y and hence is now only for built-in. That makes any "_or_module" support no longer necessary. We need to distinguish between the two in order to do some header reorganization between init.h and module.h and we don't want to be including module.h in non-modular code. Cc: Thomas Gleixner Cc: Ingo Molnar Cc: "H. Peter Anvin" Cc: x86@kernel.org Signed-off-by: Paul Gortmaker arch/x86/kernel/vsmp_64.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 77459a0feca4ae8757a905fd1791f039479e8e1e Author: Paul Gortmaker Date: Wed Jun 3 11:20:05 2015 -0400 drivers/clk: convert sunxi/clk-mod0.c to use builtin_platform_driver This driver builds based on obj-y and hence will not ever be modular. Change it to use the non-modular registration so that it won't suffer a compile fail once a header move places the modular registration within the module.h file. Cc: "Emilio López" Cc: Mike Turquette Cc: Stephen Boyd Acked-by: Stephen Boyd Cc: Maxime Ripard Acked-by: Maxime Ripard Cc: linux-clk@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org Signed-off-by: Paul Gortmaker drivers/clk/sunxi/clk-mod0.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e35415e59f86d6b546a3681e2cda4f22b5b142c0 Author: Paul Gortmaker Date: Fri May 1 20:10:58 2015 -0400 drivers/power: Convert non-modular syscon-reboot to use builtin_platform_driver This file depends on Kconfig options all of which are a bool, so we use the appropriate registration function, which avoids us relying on an implicit inclusion of which we are doing currently. While this currently works, we really don't want to be including the module.h header in non-modular code, which we'd be forced to do, pending some upcoming code relocation from init.h into module.h. So we fix it now by using the non-modular equivalent. Cc: Sebastian Reichel Acked-By: Sebastian Reichel Cc: Dmitry Eremin-Solenikov Cc: David Woodhouse Cc: linux-pm@vger.kernel.org Signed-off-by: Paul Gortmaker drivers/power/reset/syscon-reboot.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0159ae95e6a923f565937f10518aa3c919527733 Author: Paul Gortmaker Date: Fri May 1 20:10:57 2015 -0400 drivers/soc: Convert non-modular soc-realview to use builtin_platform_driver This file depends on Kconfig SOC_REALVIEW which is a bool, so we use the appropriate registration function, which avoids us relying on an implicit inclusion of which we are doing currently. While this currently works, we really don't want to be including the module.h header in non-modular code, which we'd be forced to do, pending some upcoming code relocation from init.h into module.h. So we fix it now by using the non-modular equivalent. Cc: Arnd Bergmann Cc: Linus Walleij Acked-by: Linus Walleij Cc: Axel Lin Signed-off-by: Paul Gortmaker drivers/soc/versatile/soc-realview.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7d4d9ed6ef5219857865dd57d425f9729d0a39ff Author: Paul Gortmaker Date: Fri May 1 20:10:57 2015 -0400 drivers/soc: Convert non-modular tegra/pmc to use builtin_platform_driver This file depends on Kconfig ARCH_TEGRA which is a bool, so we use the appropriate registration function, which avoids us relying on an implicit inclusion of which we are doing currently. While this currently works, we really don't want to be including the module.h header in non-modular code, which we'd be forced to do, pending some upcoming code relocation from init.h into module.h. So we fix it now by using the non-modular equivalent. Cc: Stephen Warren Cc: Thierry Reding Cc: Alexandre Courbot Cc: linux-tegra@vger.kernel.org Signed-off-by: Paul Gortmaker drivers/soc/tegra/pmc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5b64127e0529387d4538ecc3dfd49248baf619c5 Author: Paul Gortmaker Date: Fri May 1 20:10:57 2015 -0400 drivers/cpufreq: Convert non-modular s5pv210-cpufreq.c to use builtin_platform_driver This file depends on a Kconfig option which is a bool, so we use the appropriate registration function, which avoids us relying on an implicit inclusion of which we are doing currently. While this currently works, we really don't want to be including the module.h header in non-modular code, which we'd be forced to do, pending some upcoming code relocation from init.h into module.h. So we fix it now by using the non-modular equivalent. Cc: "Rafael J. Wysocki" Cc: Viresh Kumar Acked-by: Viresh Kumar Cc: Kukjin Kim Cc: linux-pm@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org Signed-off-by: Paul Gortmaker drivers/cpufreq/s5pv210-cpufreq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 090d1cf103725f583b3f41fc3185698ae5a7aa64 Author: Paul Gortmaker Date: Fri May 1 20:10:57 2015 -0400 drivers/cpuidle: Convert non-modular drivers to use builtin_platform_driver All these drivers are configured with Kconfig options that are declared as bool. Hence it is not possible for the code to be built as modular. However the code is currently using the module_platform_driver() macro for driver registration. While this currently works, we really don't want to be including the module.h header in non-modular code, which we'll be forced to do, pending some upcoming code relocation from init.h into module.h. So we fix it now by using the non-modular equivalent. Cc: "Rafael J. Wysocki" Cc: Daniel Lezcano Cc: Michal Simek Cc: linux-pm@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org Signed-off-by: Paul Gortmaker drivers/cpuidle/cpuidle-at91.c | 3 +-- drivers/cpuidle/cpuidle-calxeda.c | 3 +-- drivers/cpuidle/cpuidle-zynq.c | 3 +-- 3 files changed, 3 insertions(+), 6 deletions(-) commit 1dda2b42db1bbc788bf6de0a8141a305484f963b Author: Paul Gortmaker Date: Fri May 1 20:10:57 2015 -0400 drivers/platform: Convert non-modular pdev_bus to use builtin_platform_driver This driver is configured with a Kconfig option that is declared as a bool. Hence it is not possible for the code to be built as modular. However the code is currently using the module_platform_driver() macro for driver registration. While this currently works, we really don't want to be including the module.h header in non-modular code, which we'll be forced to do, pending some upcoming code relocation from init.h into module.h. So we fix it now by using the non-modular equivalent. And since we've already established that the code is non-modular, we can completely drop any code relating to module_exit. Signed-off-by: Paul Gortmaker drivers/platform/goldfish/pdev_bus.c | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) commit f309d4443130bf814e991f836e919dca22df37ae Author: Paul Gortmaker Date: Fri May 1 20:10:57 2015 -0400 platform_device: better support builtin boilerplate avoidance We have macros that help reduce the boilerplate for modules that register with no extra init/exit complexity other than the most standard use case. However we see an increasing number of non-modular drivers using these modular_driver() type register functions. There are several downsides to this: 1) The code can appear modular to a reader of the code, and they won't know if the code really is modular without checking the Makefile and Kconfig to see if compilation is governed by a bool or tristate. 2) Coders of drivers may be tempted to code up an __exit function that is never used, just in order to satisfy the required three args of the modular registration function. 3) Non-modular code ends up including the which increases CPP overhead that they don't need. 4) It hinders us from performing better separation of the module init code and the generic init code. Here we introduce similar macros, with the mapping from module_driver to builtin_driver and similar, so that simple changes of: module_platform_driver() ---> builtin_platform_driver() module_platform_driver_probe() ---> builtin_platform_driver_probe(). can help us avoid #3 above, without having to code up the same __init functions and device_initcall() boilerplate. For non modular code, module_init becomes __initcall. But direct use of __initcall is discouraged, vs. one of the priority categorized subgroups. As __initcall gets mapped onto device_initcall, our use of device_initcall directly in this change means that the runtime impact is zero -- drivers will remain at level 6 in the initcall ordering. Cc: Greg Kroah-Hartman Signed-off-by: Paul Gortmaker include/linux/device.h | 22 ++++++++++++++++++++++ include/linux/platform_device.h | 23 +++++++++++++++++++++++ 2 files changed, 45 insertions(+) commit 5b00c1eb94e5936e5bf5cdd9ad1ddfbed0c39159 Author: Paul Gortmaker Date: Fri May 1 21:57:34 2015 -0400 x86: perf_event_intel_pt.c: use arch_initcall to hook in enabling This was using module_init, but the current Kconfig situation is as follows: In arch/x86/kernel/cpu/Makefile: obj-$(CONFIG_CPU_SUP_INTEL) += perf_event_intel_pt.o perf_event_intel_bts.o and in arch/x86/Kconfig.cpu: config CPU_SUP_INTEL default y bool "Support Intel processors" if PROCESSOR_SELECT So currently, the end user can not build this code into a module. If in the future, there is desire for this to be modular, then it can be changed to include and use module_init. But currently, in the non-modular case, a module_init becomes a device_initcall. But this really isn't a device, so we should choose a more appropriate initcall bucket to put it in. The obvious choice here seems to be arch_initcall, but that does make it earlier than it was currently through device_initcall. As long as perf_pmu_register() is functional, we should be OK. Cc: Peter Zijlstra Cc: Paul Mackerras Cc: Ingo Molnar Cc: Arnaldo Carvalho de Melo Cc: Thomas Gleixner Cc: "H. Peter Anvin" Cc: x86@kernel.org Signed-off-by: Paul Gortmaker arch/x86/kernel/cpu/perf_event_intel_pt.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit ca41d24cf56458a699b44e918c5a19b7077df422 Author: Paul Gortmaker Date: Fri May 1 21:57:34 2015 -0400 x86: perf_event_intel_bts.c: use arch_initcall to hook in enabling This was using module_init, but the current Kconfig situation is as follows: In arch/x86/kernel/cpu/Makefile: obj-$(CONFIG_CPU_SUP_INTEL) += perf_event_intel_pt.o perf_event_intel_bts.o and in arch/x86/Kconfig.cpu: config CPU_SUP_INTEL default y bool "Support Intel processors" if PROCESSOR_SELECT So currently, the end user can not build this code into a module. If in the future, there is desire for this to be modular, then it can be changed to include and use module_init. But currently, in the non-modular case, a module_init becomes a device_initcall. But this really isn't a device, so we should choose a more appropriate initcall bucket to put it in. The obvious choice here seems to be arch_initcall, but that does make it earlier than it was currently through device_initcall. As long as perf_pmu_register() is functional, we should be OK. Cc: Peter Zijlstra Cc: Paul Mackerras Cc: Ingo Molnar Cc: Arnaldo Carvalho de Melo Cc: Thomas Gleixner Cc: "H. Peter Anvin" Cc: x86@kernel.org Signed-off-by: Paul Gortmaker arch/x86/kernel/cpu/perf_event_intel_bts.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 44c5af96de8230ff7268500f48995f9fea5cffe7 Author: Paul Gortmaker Date: Fri May 1 21:57:34 2015 -0400 mm/page_owner.c: use late_initcall to hook in enabling This was using module_init, but there is no way this code can be modular. In the non-modular case, a module_init becomes a device_initcall, but this really isn't a device. So we should choose a more appropriate initcall bucket to put it in. In order of execution, our close choices are: fs_initcall(fn) rootfs_initcall(fn) device_initcall(fn) late_initcall(fn) ..and since the initcall here goes after debugfs, we really should be post-rootfs, which means late_initcall makes the most sense here. Cc: Andrew Morton Cc: linux-mm@kvack.org Signed-off-by: Paul Gortmaker mm/page_owner.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4c7217f1f0fe70af7b9e213ef16f1d2f4a4bacaf Author: Paul Gortmaker Date: Fri May 1 21:57:34 2015 -0400 lib/list_sort: use late_initcall to hook in self tests This was using module_init, but there is no way this code can be modular. In the non-modular case, a module_init becomes a device_initcall, but this really isn't a device. So we should choose a more appropriate initcall bucket to put it in. Assuming boot time self tests need to be observed over a console to be useful, and that the console device could possibly not be fully functional until after device_initcall, we move this to the late_initcall bucket, which is immediately after device_initcall. Cc: Andrew Morton Signed-off-by: Paul Gortmaker lib/list_sort.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 89f08f64408b630df7d559223f63e616d0814509 Author: Paul Gortmaker Date: Fri May 1 20:08:21 2015 -0400 arm: use subsys_initcall in non-modular pl320 IPC code The drivers/mailbox/pl320-ipc.o is dependent on config PL320_MBOX which is declared as a bool. Hence the code is never going to be modular. So using module_init as an alias for __initcall can be somewhat misleading. Fix this up now, so that we can relocate module_init from init.h into module.h in the future. If we don't do this, we'd have to add module.h to obviously non-modular code, and that would be a worse thing. Also add an inclusion of init.h, as that was previously implicit. Note that direct use of __initcall is discouraged, vs. one of the priority categorized subgroups. As __initcall gets mapped onto device_initcall, our use of subsys_initcall (which seems to make sense for IPC code) will thus change this registration from level 6-device to level 4-subsys (i.e. slightly earlier). However no impact of that small difference is expected. Cc: Russell King Cc: linux-arm-kernel@lists.infradead.org Signed-off-by: Paul Gortmaker drivers/mailbox/pl320-ipc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6f114281c4ad543392f5b7c8345e11e103675cee Author: Paul Gortmaker Date: Fri May 1 20:08:21 2015 -0400 powerpc: don't use module_init for non-modular core hugetlb code The hugetlbpage.o is obj-y (always built in). It will never be modular, so using module_init as an alias for __initcall is somewhat misleading. Fix this up now, so that we can relocate module_init from init.h into module.h in the future. If we don't do this, we'd have to add module.h to obviously non-modular code, and that would be a worse thing. Note that direct use of __initcall is discouraged, vs. one of the priority categorized subgroups. As __initcall gets mapped onto device_initcall, our use of arch_initcall (which makes sense for arch code) will thus change this registration from level 6-device to level 3-arch (i.e. slightly earlier). However no observable impact of that small difference has been observed during testing, or is expected. Cc: Benjamin Herrenschmidt Cc: Paul Mackerras Cc: linuxppc-dev@lists.ozlabs.org Signed-off-by: Paul Gortmaker arch/powerpc/mm/hugetlbpage.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 383d14a5365879bc193d29ad2ed17ac5299753c3 Author: Paul Gortmaker Date: Fri May 1 20:08:21 2015 -0400 powerpc: use subsys_initcall for Freescale Local Bus The FSL_SOC option is bool, and hence this code is either present or absent. It will never be modular, so using module_init as an alias for __initcall is rather misleading. Fix this up now, so that we can relocate module_init from init.h into module.h in the future. If we don't do this, we'd have to add module.h to obviously non-modular code, and that would be a worse thing. Note that direct use of __initcall is discouraged, vs. one of the priority categorized subgroups. As __initcall gets mapped onto device_initcall, our use of subsys_initcall (which makes sense for bus code) will thus change this registration from level 6-device to level 4-subsys (i.e. slightly earlier). However no observable impact of that small difference has been observed during testing, or is expected. Cc: Benjamin Herrenschmidt Cc: Paul Mackerras Cc: Scott Wood Acked-by: Scott Wood Cc: linuxppc-dev@lists.ozlabs.org Signed-off-by: Paul Gortmaker arch/powerpc/sysdev/fsl_lbc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1206f53589237b7e00b9b0a4e42815f14aedad2d Author: Paul Gortmaker Date: Fri May 1 20:08:21 2015 -0400 x86: don't use module_init for non-modular core bootflag code The bootflag.o is obj-y (always built in). It will never be modular, so using module_init as an alias for __initcall is somewhat misleading. Fix this up now, so that we can relocate module_init from init.h into module.h in the future. If we don't do this, we'd have to add module.h to obviously non-modular code, and that would be a worse thing. Note that direct use of __initcall is discouraged, vs. one of the priority categorized subgroups. As __initcall gets mapped onto device_initcall, our use of arch_initcall (which makes sense for arch code) will thus change this registration from level 6-device to level 3-arch (i.e. slightly earlier). However no observable impact of that small difference has been observed during testing, or is expected. Cc: Thomas Gleixner Cc: Ingo Molnar Cc: "H. Peter Anvin" Cc: x86@kernel.org Signed-off-by: Paul Gortmaker arch/x86/kernel/bootflag.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 55331060096f0e9a57356ec36476a49e4bf22bc1 Author: Paul Gortmaker Date: Fri May 1 20:08:20 2015 -0400 netfilter: don't use module_init/exit in core IPV4 code The file net/ipv4/netfilter.o is created based on whether CONFIG_NETFILTER is set. However that is defined as a bool, and hence this file with the core netfilter hooks will never be modular. So using module_init as an alias for __initcall can be somewhat misleading. Fix this up now, so that we can relocate module_init from init.h into module.h in the future. If we don't do this, we'd have to add module.h to obviously non-modular code, and that would be a worse thing. Also add an inclusion of init.h, as that was previously implicit here in the netfilter.c file. Note that direct use of __initcall is discouraged, vs. one of the priority categorized subgroups. As __initcall gets mapped onto device_initcall, our use of subsys_initcall (which seems to make sense for netfilter code) will thus change this registration from level 6-device to level 4-subsys (i.e. slightly earlier). However no observable impact of that small difference has been observed during testing, or is expected. (i.e. the location of the netfilter messages in dmesg remains unchanged with respect to all the other surrounding messages.) As for the module_exit, rather than replace it with __exitcall, we simply remove it, since it appears only UML does anything with those, and even for UML, there is no relevant cleanup to be done here. Cc: Pablo Neira Ayuso Acked-by: Pablo Neira Ayuso Cc: Patrick McHardy Cc: Jozsef Kadlecsik Cc: "David S. Miller" Cc: netfilter-devel@vger.kernel.org Cc: netdev@vger.kernel.org Signed-off-by: Paul Gortmaker net/ipv4/netfilter.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) commit c013d5a4581203e074a1065e17378984544fcaef Author: Paul Gortmaker Date: Fri May 1 20:08:20 2015 -0400 fs/notify: don't use module_init for non-modular inotify_user code The INOTIFY_USER option is bool, and hence this code is either present or absent. It will never be modular, so using module_init as an alias for __initcall is rather misleading. Fix this up now, so that we can relocate module_init from init.h into module.h in the future. If we don't do this, we'd have to add module.h to obviously non-modular code, and that would be a worse thing. Note that direct use of __initcall is discouraged, vs. one of the priority categorized subgroups. As __initcall gets mapped onto device_initcall, our use of fs_initcall (which makes sense for fs code) will thus change this registration from level 6-device to level 5-fs (i.e. slightly earlier). However no observable impact of that small difference has been observed during testing, or is expected. Cc: John McCutchan Cc: Robert Love Cc: Eric Paris Signed-off-by: Paul Gortmaker fs/notify/inotify/inotify_user.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a4bc6fc79f94c5b4f850aabca9c5249adc597094 Author: Paul Gortmaker Date: Fri May 1 20:08:20 2015 -0400 mm: replace module_init usages with subsys_initcall in nommu.c Compiling some arm/m68k configs with "# CONFIG_MMU is not set" reveals two more instances of module_init being used for code that can't possibly be modular, as CONFIG_MMU is either on or off. We replace them with subsys_initcall as per what was done in other mmu-enabled code. Note that direct use of __initcall is discouraged, vs. one of the priority categorized subgroups. As __initcall gets mapped onto device_initcall, our use of subsys_initcall (which makes sense for these files) will thus change this registration from level 6-device to level 4-subsys (i.e. slightly earlier). One might think that core_initcall (l2) or postcore_initcall (l3) would be more appropriate for anything in mm/ but if we look at the actual init functions themselves, we see they are just sysctl setup stuff, and hence the choice of subsys_initcall (l4) seems reasonable. At the same time it minimizes the risk of changing the priority too drastically all at once. We can adjust further in the future. Also, a couple instances of missing ";" at EOL are fixed. Cc: Andrew Morton Cc: linux-mm@kvack.org Signed-off-by: Paul Gortmaker mm/nommu.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 84c3e5bf1defc035d63869bbb0f5f80d276c1fc7 Author: Paul Gortmaker Date: Sun Jun 14 16:55:25 2015 -0400 cris: don't use module_init for non-modular core eeprom.c code The eeprom.c code is compiled based on the Kconfig setting ETRAX_I2C_EEPROM, which is bool. So the code is either built in or absent. It will never be modular, so using module_init as an alias for __initcall is rather misleading. Fix this up now, so that we can relocate module_init from init.h into module.h in the future. If we don't do this, we'd have to add module.h to obviously non-modular code, and that would be a worse thing. Direct use of __initcall is discouraged, vs prioritized ones. Use of device_initcall is consistent with what __initcall maps onto, and hence does not change the init order, making the impact of this change zero. Should someone with real hardware for boot testing want to change it later to arch_initcall or something different, they can do that at a later date. Cc: Mikael Starvik Cc: Jesper Nilsson Cc: linux-cris-kernel@axis.com Signed-off-by: Paul Gortmaker arch/cris/arch-v10/drivers/eeprom.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 4d38e5c48f4095be21343869ad741676ab4e518f Author: James Hogan Date: Fri Jun 5 22:17:18 2015 +0100 tty/metag_da: Avoid module_init/module_exit in non-modular code The metag_da TTY driver can't get built as a module at the moment, but it still uses module_init() and module_exit(). Those macros are moving to module.h which isn't included by metag_da.c, which will result in the following build warnings (remarkably no build errors) and an apparent failure to boot as the TTY driver won't be loaded. drivers/tty/metag_da.c:660: warning: data definition has no type or storage class drivers/tty/metag_da.c:660: warning: type defaults to ‘int’ in declaration of ‘module_init’ drivers/tty/metag_da.c:660: warning: parameter names (without types) in function declaration drivers/tty/metag_da.c:661: warning: data definition has no type or storage class drivers/tty/metag_da.c:661: warning: type defaults to ‘int’ in declaration of ‘module_exit’ drivers/tty/metag_da.c:661: warning: parameter names (without types) in function declaration drivers/tty/metag_da.c:572: warning: ‘dashtty_init’ defined but not used drivers/tty/metag_da.c:645: warning: ‘dashtty_exit’ defined but not used drivers/tty/metag_da.c In function ‘dash_console_write’: drivers/tty/metag_da.c:670 : warning: passing argument 4 of ‘chancall’ discards qualifiers from pointer target type Instead of just adding the module.h include, now would be a good time to remove the use of these macros, replacing the module_init with device_initcall, and removing the exit function altogether since it isn't needed. If module support is added later the code can always be resurrected. Reported-by: Guenter Roeck Tested-by: Guenter Roeck Signed-off-by: James Hogan Cc: Greg Kroah-Hartman Cc: Jiri Slaby Cc: linux-metag@vger.kernel.org Cc: Paul Gortmaker Signed-off-by: Paul Gortmaker drivers/tty/metag_da.c | 20 +------------------- 1 file changed, 1 insertion(+), 19 deletions(-) commit 791ed0bb5558dfdc4040563bd0b7dc24450fa732 Author: Paul Gortmaker Date: Fri May 1 20:05:51 2015 -0400 drivers/clk: don't use module_init in clk-nomadik.c which is non-modular The clk-nomadik.o is built for ARCH_NOMADIK -- which is bool, and hence this code is either present or absent. It will never be modular, so using module_init as an alias for __initcall can be somewhat misleading. Fix this up now, so that we can relocate module_init from init.h into module.h in the future. If we don't do this, we'd have to add module.h to obviously non-modular code, and that would be a worse thing. Note that direct use of __initcall is discouraged, vs. one of the priority categorized subgroups. As __initcall gets mapped onto device_initcall, our use of device_initcall directly in this change means that the runtime impact is zero -- it will remain at level 6 in initcall ordering. Cc: Mike Turquette Cc: linux-arm-kernel@lists.infradead.org Signed-off-by: Paul Gortmaker drivers/clk/clk-nomadik.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 30e3c6428f18b5b8e78602a5a7cc653aee3bfe99 Author: Paul Gortmaker Date: Fri May 1 20:05:50 2015 -0400 xtensa: don't use module_init for non-modular core network.c code The network.c code is piggybacking off of the arch independent CONFIG_NET, which is bool. So the code is either built in or absent. It will never be modular, so using module_init as an alias for __initcall is rather misleading. Fix this up now, so that we can relocate module_init from init.h into module.h in the future. If we don't do this, we'd have to add module.h to obviously non-modular code, and that would be a worse thing. Direct use of __initcall is discouraged, vs prioritized ones. Use of device_initcall is consistent with what __initcall maps onto, and hence does not change the init order, making the impact of this change zero. Should someone with real hardware for boot testing want to change it later to arch_initcall or something different, they can do that at a later date. Cc: Chris Zankel Cc: Max Filippov Cc: Thomas Meyer Cc: linux-xtensa@linux-xtensa.org Signed-off-by: Paul Gortmaker arch/xtensa/platforms/iss/network.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit b205118bdb4b515b4b4f5058aa9f5a12668386c3 Author: Paul Gortmaker Date: Fri May 1 20:05:50 2015 -0400 sh: don't use module_init in non-modular psw.c code The psw.o is built for obj-y -- and hence this code is always present. It will never be modular, so using module_init as an alias for __initcall can be somewhat misleading. Fix this up now, so that we can relocate module_init from init.h into module.h in the future. If we don't do this, we'd have to add module.h to obviously non-modular code, and that would be a worse thing. Note that direct use of __initcall is discouraged, vs. one of the priority categorized subgroups. As __initcall gets mapped onto device_initcall, our use of device_initcall directly in this change means that the runtime impact is zero -- it will remain at level 6 in initcall ordering. Reported-by: kbuild test robot Cc: Paul Mundt Cc: linux-sh@vger.kernel.org Signed-off-by: Paul Gortmaker arch/sh/boards/mach-landisk/psw.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1b4d5beecbeb4608a0fdb77c3b8ba182f0cfb4b6 Author: Paul Gortmaker Date: Fri May 1 20:05:50 2015 -0400 mn10300: don't use module_init in non-modular flash.c code The flash.o is built for obj-y -- and hence this code is always present. It will never be modular, so using module_init as an alias for __initcall can be somewhat misleading. Fix this up now, so that we can relocate module_init from init.h into module.h in the future. If we don't do this, we'd have to add module.h to obviously non-modular code, and that would be a worse thing. Note that direct use of __initcall is discouraged, vs. one of the priority categorized subgroups. As __initcall gets mapped onto device_initcall, our use of device_initcall directly in this change means that the runtime impact is zero -- it will remain at level 6 in initcall ordering. Reported-by: kbuild test robot Cc: David Howells Acked-by: David Howells Cc: Koichi Yasutake Cc: linux-am33-list@redhat.com Signed-off-by: Paul Gortmaker arch/mn10300/unit-asb2303/flash.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 15becabd89fa3fec6aa864fbd1b50b5b1871eee2 Author: Paul Gortmaker Date: Fri May 1 20:05:50 2015 -0400 parisc64: don't use module_init for non-modular core perf code The perf.c code depends on CONFIG_64BIT, so it is either built-in or absent. It will never be modular, so using module_init as an alias for __initcall is rather misleading. Fix this up now, so that we can relocate module_init from init.h into module.h in the future. If we don't do this, we'd have to add module.h to obviously non-modular code, and that would be a worse thing. Aside from it not making sense, it also causes a ~10% increase in CPP overhead due to module.h having a large list of headers itself -- for example compare line counts: device_initcall() and 20238 arch/parisc/kernel/perf.i module_init() and 22194 arch/parisc/kernel/perf.i Direct use of __initcall is discouraged, vs prioritized ones. Use of device_initcall is consistent with what __initcall maps onto, and hence does not change the init order, making the impact of this change zero. Should someone with real hardware for boot testing want to change it later to arch_initcall or something different, they can do that at a later date. Cc: "James E.J. Bottomley" Cc: Helge Deller Cc: linux-parisc@vger.kernel.org Signed-off-by: Paul Gortmaker arch/parisc/kernel/perf.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit aed6850a1390c2b208b91b2fae0199fc14b94a26 Author: Paul Gortmaker Date: Fri May 1 20:05:50 2015 -0400 parisc: don't use module_init for non-modular core pdc_cons code The pdc_cons.c code is always built in. It will never be modular, so using module_init as an alias for __initcall is rather misleading. Fix this up now, so that we can relocate module_init from init.h into module.h in the future. If we don't do this, we'd have to add module.h to obviously non-modular code, and that would be a worse thing. Direct use of __initcall is discouraged, vs prioritized ones. Use of device_initcall is consistent with what __initcall maps onto, and hence does not change the init order, making the impact of this change zero. Should someone with real hardware for boot testing want to change it later to arch_initcall or something different, they can do that at a later date. Reported-by: kbuild test robot Cc: "James E.J. Bottomley" Cc: Helge Deller Cc: linux-parisc@vger.kernel.org Signed-off-by: Paul Gortmaker arch/parisc/kernel/pdc_cons.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 73de14e8cdc733bbc8eda006f813d5aa51511139 Author: Paul Gortmaker Date: Fri May 1 20:05:50 2015 -0400 cris: don't use module_init for non-modular core intmem.c code The intmem.c code is always built in. It will never be modular, so using module_init as an alias for __initcall is rather misleading. Fix this up now, so that we can relocate module_init from init.h into module.h in the future. If we don't do this, we'd have to add module.h to obviously non-modular code, and that would be a worse thing. Direct use of __initcall is discouraged, vs prioritized ones. Use of device_initcall is consistent with what __initcall maps onto, and hence does not change the init order, making the impact of this change zero. Should someone with real hardware for boot testing want to change it later to arch_initcall or something different, they can do that at a later date. Reported-by: kbuild test robot Cc: Mikael Starvik Cc: Jesper Nilsson Acked-by: Jesper Nilsson Cc: linux-cris-kernel@axis.com Signed-off-by: Paul Gortmaker arch/cris/arch-v32/mm/intmem.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 2a177fd1d92f669f8f493a61e195ff4e3c50f95f Author: Paul Gortmaker Date: Fri May 1 20:05:50 2015 -0400 ia64: don't use module_init in non-modular sim/simscsi.c code The simscsi.o is built for HP_SIMSCSI -- which is bool, and hence this code is either present or absent. It will never be modular, so using module_init as an alias for __initcall can be somewhat misleading. Fix this up now, so that we can relocate module_init from init.h into module.h in the future. If we don't do this, we'd have to add module.h to obviously non-modular code, and that would be a worse thing. Note that direct use of __initcall is discouraged, vs. one of the priority categorized subgroups. As __initcall gets mapped onto device_initcall, our use of device_initcall directly in this change means that the runtime impact is zero -- it will remain at level 6 in initcall ordering. And since it can't be modular, we remove all the __exitcall stuff related to module_exit() -- it is dead code that won't ever be executed. Cc: Tony Luck Cc: Fenghua Yu Cc: linux-ia64@vger.kernel.org Signed-off-by: Paul Gortmaker arch/ia64/hp/sim/simscsi.c | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) commit 2e21fa2d11ab61e1827bd5bb1e0e2484931d68e1 Author: Paul Gortmaker Date: Fri May 1 20:05:49 2015 -0400 ia64: don't use module_init for non-modular core kernel/mca.c code The mca.c code is always built in. It will never be modular, so using module_init as an alias for __initcall is rather misleading. Fix this up now, so that we can relocate module_init from init.h into module.h in the future. If we don't do this, we'd have to add module.h to obviously non-modular code, and that would be a worse thing. Direct use of __initcall is discouraged, vs prioritized ones. Use of device_initcall is consistent with what __initcall maps onto, and hence does not change the init order, making the impact of this change zero. Should someone with real hardware for boot testing want to change it later to arch_initcall or something different, they can do that at a later date. Cc: Tony Luck Cc: Fenghua Yu Cc: linux-ia64@vger.kernel.org Signed-off-by: Paul Gortmaker arch/ia64/sn/kernel/mca.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 4a0ece7ceceab251e92e7f98e7926642a065727b Author: Paul Gortmaker Date: Fri May 1 20:05:49 2015 -0400 arm: don't use module_init in non-modular mach-vexpress/spc.c code The spc.o is built for ARCH_VEXPRESS_SPC -- which is bool, and hence this code is either present or absent. It will never be modular, so using module_init as an alias for __initcall can be somewhat misleading. Fix this up now, so that we can relocate module_init from init.h into module.h in the future. If we don't do this, we'd have to add module.h to obviously non-modular code, and that would be a worse thing. Note that direct use of __initcall is discouraged, vs. one of the priority categorized subgroups. As __initcall gets mapped onto device_initcall, our use of device_initcall directly in this change means that the runtime impact is zero -- it will remain at level 6 in initcall ordering. Cc: Russell King Cc: linux-arm-kernel@lists.infradead.org Signed-off-by: Paul Gortmaker arch/arm/mach-vexpress/spc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a390a2f18147533359d4e45cb13438d42580da84 Author: Paul Gortmaker Date: Fri May 1 20:05:49 2015 -0400 powerpc: don't use module_init in non-modular 83xx suspend code The suspend.o is built for SUSPEND -- which is bool, and hence this code is either present or absent. It will never be modular, so using module_init as an alias for __initcall can be somewhat misleading. Fix this up now, so that we can relocate module_init from init.h into module.h in the future. If we don't do this, we'd have to add module.h to obviously non-modular code, and that would be a worse thing. Note that direct use of __initcall is discouraged, vs. one of the priority categorized subgroups. As __initcall gets mapped onto device_initcall, our use of device_initcall directly in this change means that the runtime impact is zero -- it will remain at level 6 in initcall ordering. Cc: Scott Wood Cc: Benjamin Herrenschmidt Cc: Paul Mackerras Cc: linuxppc-dev@lists.ozlabs.org Signed-off-by: Paul Gortmaker arch/powerpc/platforms/83xx/suspend.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 8f6b9512ceadc6bd52777c299111dc642b4c65b6 Author: Paul Gortmaker Date: Fri May 1 20:05:49 2015 -0400 powerpc: use device_initcall for registering rtc devices Currently these two RTC devices are in core platform code where it is not possible for them to be modular. It will never be modular, so using module_init as an alias for __initcall can be somewhat misleading. Fix this up now, so that we can relocate module_init from init.h into module.h in the future. If we don't do this, we'd have to add module.h to obviously non-modular code, and that would be a worse thing. Note that direct use of __initcall is discouraged, vs. one of the priority categorized subgroups. As __initcall gets mapped onto device_initcall, our use of device_initcall directly in this change means that the runtime impact is zero -- they will remain at level 6 in initcall ordering. Cc: Benjamin Herrenschmidt Cc: Paul Mackerras Cc: Geoff Levand Acked-by: Geoff Levand Cc: linuxppc-dev@lists.ozlabs.org Signed-off-by: Paul Gortmaker arch/powerpc/kernel/time.c | 2 +- arch/powerpc/platforms/ps3/time.c | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) commit d54b675a6b0007422dc13acbecdb1ca2b1a53aeb Author: Paul Gortmaker Date: Fri May 1 20:05:49 2015 -0400 x86: don't use module_init in non-modular devicetree.c code The devicetree.o is built for "OF" -- which is bool, and hence this code is either present or absent. It will never be modular, so using module_init as an alias for __initcall can be somewhat misleading. Fix this up now, so that we can relocate module_init from init.h into module.h in the future. If we don't do this, we'd have to add module.h to obviously non-modular code, and that would be a worse thing. Note that direct use of __initcall is discouraged, vs. one of the priority categorized subgroups. As __initcall gets mapped onto device_initcall, our use of device_initcall directly in this change means that the runtime impact is zero -- it will remain at level 6 in initcall ordering. Reported-by: kbuild test robot Cc: Thomas Gleixner Cc: Ingo Molnar Cc: "H. Peter Anvin" Cc: x86@kernel.org Signed-off-by: Paul Gortmaker arch/x86/kernel/devicetree.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4711e2f9caedaa07e7cdcb5e058a18762d6be9b1 Author: Paul Gortmaker Date: Fri May 1 20:05:49 2015 -0400 x86: don't use module_init in non-modular intel_mid_vrtc.c The X86_INTEL_MID option is bool, and hence this code is either present or absent. It will never be modular, so using module_init as an alias for __initcall is rather misleading. Fix this up now, so that we can relocate module_init from init.h into module.h in the future. If we don't do this, we'd have to add module.h to obviously non-modular code, and that would be a worse thing. Note that direct use of __initcall is discouraged, vs. one of the priority categorized subgroups. As __initcall gets mapped onto device_initcall, our use of device_initcall directly in this change means that the runtime impact is zero -- it will remain at level 6 in initcall ordering. Cc: Thomas Gleixner Cc: Ingo Molnar Cc: "H. Peter Anvin" Cc: x86@kernel.org Signed-off-by: Paul Gortmaker arch/x86/platform/intel-mid/intel_mid_vrtc.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 7cac34370a4dde12e6430c2f0985926d4ef0f459 Author: Paul Gortmaker Date: Fri Jun 5 11:25:18 2015 -0400 frv: add module.h to mb93090-mb00/flash.c to avoid compile fail This file is built off of a tristate Kconfig option and also contains modular function calls so it should explicitly include module.h to avoid compile breakage during header shuffles done in the future. Reported-by: kbuild test robot Cc: David Howells Signed-off-by: Paul Gortmaker arch/frv/mb93090-mb00/flash.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 743492ccd53008736f169f242479bac6245f8379 Author: Paul Gortmaker Date: Wed Jun 3 15:45:21 2015 -0400 drivers/cpufreq: include for modular exynos-cpufreq.c code This file is built off of a tristate Kconfig option ("ARM_EXYNOS_CPUFREQ") and also contains modular function calls so it should explicitly include module.h to avoid compile breakage during pending header shuffles. Cc: "Rafael J. Wysocki" Cc: Viresh Kumar Acked-by: Viresh Kumar Cc: Kukjin Kim Cc: Krzysztof Kozlowski Acked-by: Krzysztof Kozlowski Cc: linux-pm@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org Cc: linux-samsung-soc@vger.kernel.org Signed-off-by: Paul Gortmaker drivers/cpufreq/exynos-cpufreq.c | 1 + 1 file changed, 1 insertion(+) commit a7e9bc55cc144dc40e809e579bd932ef2ec324de Author: Paul Gortmaker Date: Fri May 1 20:02:31 2015 -0400 drivers/staging: include for modular android tegra_ion code This file is built off of a tristate Kconfig option and also contains modular function calls so it should explicitly include module.h to avoid compile breakage during header shuffles done in the future. Cc: Greg Kroah-Hartman Cc: "Arve Hj�nnev�g" Cc: Riley Andrews Cc: Stephen Warren Cc: Thierry Reding Cc: Alexandre Courbot Cc: devel@driverdev.osuosl.org Cc: linux-tegra@vger.kernel.org Signed-off-by: Paul Gortmaker drivers/staging/android/ion/tegra/tegra_ion.c | 1 + 1 file changed, 1 insertion(+) commit 88775588b71d28a9020a7faa4ad95bbf76d8bb45 Author: Paul Gortmaker Date: Fri May 1 21:29:53 2015 -0400 crypto/asymmetric_keys: pkcs7_key_type needs module.h This driver builds off of the tristate CONFIG_PKCS7_TEST_KEY and calls module_init and module_exit. So it should explicitly include module.h to avoid compile breakage during header shuffles done in the future. Cc: Herbert Xu Cc: "David S. Miller" Cc: linux-crypto@vger.kernel.org Signed-off-by: Paul Gortmaker crypto/asymmetric_keys/pkcs7_key_type.c | 1 + 1 file changed, 1 insertion(+) commit 0bbad249a6a4934203b50d574f5d5f9f480b389e Author: Paul Gortmaker Date: Fri May 1 20:02:31 2015 -0400 sh: mach-highlander/psw.c is tristate and should use module.h This file is controlled by a tristate Kconfig option, and hence needs to include module.h so that it can get module_init() once we relocate it from init.h into module.h in the future. Note that module_exit() appears to be missing from the driver, so it is questionable whether it would actually work for a removal and reload cycle if it was configured for a modular build. Cc: Paul Mundt Cc: linux-sh@vger.kernel.org Signed-off-by: Paul Gortmaker arch/sh/boards/mach-highlander/psw.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ca1c8e93c37e5a5e27e6149cd3612eb2247e0e4a Author: Paul Gortmaker Date: Fri May 1 20:02:31 2015 -0400 drivers/regulator: include for modular max77802 code This file is built off of a tristate Kconfig option and also contains modular function calls so it should explicitly include module.h to avoid compile breakage during header shuffles done in the future. Cc: Liam Girdwood Cc: Mark Brown Signed-off-by: Paul Gortmaker drivers/regulator/max77802.c | 1 + 1 file changed, 1 insertion(+) commit 5468f887bc861b2fe2fa24a44bc6a616a5d33a73 Author: Paul Gortmaker Date: Fri May 1 20:02:31 2015 -0400 drivers/pcmcia: include for modular xxs1500_ss code This file is built off of a tristate Kconfig option and also contains modular function calls so it should explicitly include module.h to avoid compile breakage during header shuffles done in the future. Cc: Wolfram Sang Acked-by: Wolfram Sang Cc: linux-pcmcia@lists.infradead.org Signed-off-by: Paul Gortmaker drivers/pcmcia/xxs1500_ss.c | 1 + 1 file changed, 1 insertion(+) commit a1a0bec593623f49740d7900e4b862c534f219bf Author: Paul Gortmaker Date: Fri May 1 20:02:30 2015 -0400 drivers/hsi: include for modular omap_ssi code These files are built off of a tristate Kconfig option and also contain modular function calls so they should explicitly include module.h to avoid compile breakage during header shuffles done in the future. We change the one header file wich gives us coverage on both files: drivers/hsi/controllers/omap_ssi.c drivers/hsi/controllers/omap_ssi_port.c Cc: Sebastian Reichel Signed-off-by: Paul Gortmaker drivers/hsi/controllers/omap_ssi.h | 1 + 1 file changed, 1 insertion(+) commit 00fe614863eed7ca39fc72a307c6dff57b690476 Author: Paul Gortmaker Date: Fri May 1 20:02:30 2015 -0400 drivers/gpu: include for modular rockchip code These files are built off of a tristate Kconfig option and also contain modular function calls so they should explicitly include module.h to avoid compile breakage during header shuffles done in the future. Cc: David Airlie Cc: Mark Yao Cc: dri-devel@lists.freedesktop.org Signed-off-by: Paul Gortmaker drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 1 + drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 1 + 2 files changed, 2 insertions(+) commit ade52af9e13a584aa4c54bb3fce71b2bad5b0a35 Author: Paul Gortmaker Date: Fri May 1 20:02:30 2015 -0400 drivers/gpio: include for modular crystalcove code This file is built off of a tristate Kconfig option and also contains modular function calls so it should explicitly include module.h to avoid compile breakage during header shuffles done in the future. Cc: Linus Walleij Cc: Alexandre Courbot Cc: linux-gpio@vger.kernel.org Signed-off-by: Paul Gortmaker drivers/gpio/gpio-crystalcove.c | 1 + 1 file changed, 1 insertion(+) commit a0c4dfeedea8155c2c217c19721ca3e4696cbcfb Author: Paul Gortmaker Date: Fri May 1 20:02:30 2015 -0400 drivers/clk: include for clk-max77xxx modular code These files are built off of the tristate COMMON_CLK_MAX77686 and COMMON_CLK_MAX77802 respectively. They also contains modular function calls so they should explicitly include module.h to avoid compile breakage during header shuffles done in the future. Cc: Mike Turquette Cc: Stephen Boyd Acked-by: Stephen Boyd Signed-off-by: Paul Gortmaker drivers/clk/clk-max77686.c | 1 + drivers/clk/clk-max77802.c | 1 + 2 files changed, 2 insertions(+) commit 22c1587adfed1977d26a57ac2831d03e37f8f805 Author: Paul Gortmaker Date: Mon Apr 27 17:37:53 2015 -0400 init: delete the __cpuinit related stubs The __cpuinit support was removed several releases ago in 3.11-rc1 with commit 22f0a27367742f65130c0fb25ef00f7297e032c1 ("init.h: remove __cpuinit sections from the kernel") People have had a chance to update their out of tree code, so now we remove the no-op stubs to ensure no more new use cases can creep back in. Also delete the mention of __cpuinitdata from the tag script. Signed-off-by: Paul Gortmaker include/linux/init.h | 11 ----------- scripts/tags.sh | 2 +- 2 files changed, 1 insertion(+), 12 deletions(-) commit 5ffa70f0dd9cff5e5d0c50a463fdcb5405a0f364 Author: Paul Gortmaker Date: Sat Apr 18 16:35:10 2015 -0400 kernel/cpu.c: remove new instance of __cpuinit that crept back in We removed __cpuinit support (leaving no-op stubs) quite some time ago. However a new instance was added in commit 00df35f991914db6b8bde8cf0980 ("cpu: Defer smpboot kthread unparking until CPU known to scheduler") Since we want to clobber the stubs soon, get this removed now. Cc: Paul E. McKenney Signed-off-by: Paul Gortmaker kernel/cpu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bff5e48e106b919492424f36a5b6a1bb21aa5c77 Author: Paul Gortmaker Date: Sat Jan 17 16:37:53 2015 -0500 sched/core: remove __cpuinit section tag that crept back in. We removed __cpuinit support (leaving no-op stubs) quite some time ago. However this one crept back in as of commit a803f0261bb2bb57aab ("sched: Initialize rq->age_stamp on processor start") Since we want to clobber the stubs too, get this removed now. Cc: Corey Minyard Cc: Ingo Molnar Cc: Peter Zijlstra Signed-off-by: Paul Gortmaker kernel/sched/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 87d0729edd30de340a3cf57043b6b15a7021c28a Author: Paul Gortmaker Date: Sat Apr 18 16:40:28 2015 -0400 mips/mm/tlbex: remove new instance of __cpuinit that crept back in We removed __cpuinit support (leaving no-op stubs) quite some time ago. However a new instance was added in commit c5b367835cfc7a8ef53b9670a409ff ("MIPS: Add support for XPA.") Since we want to clobber the stubs soon, get this removed now. Cc: Steven J. Hill Cc: linux-mips@linux-mips.org Signed-off-by: Paul Gortmaker arch/mips/mm/tlbex.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 719cc170b0250f3ece4c2dbf8f66bdcad2311da6 Author: Paul Gortmaker Date: Sat Jan 17 18:55:06 2015 -0500 mips/c-r4k: remove legacy __cpuinit section that crept in We removed __cpuinit support (leaving no-op stubs) quite some time ago. However a new instance was added in commit 4caa906ee949b7002cc1558bbe3744 ("MIPS: mm: c-r4k: Build EVA {d,i}cache flushing functions") Since we want to clobber the stubs soon, get this removed now. Cc: Leonid Yegoshin Cc: linux-mips@linux-mips.org Signed-off-by: Paul Gortmaker arch/mips/mm/c-r4k.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 52252c3ed767d996a6006e5557352ab17462d1c0 Author: Paul Gortmaker Date: Sat Jan 17 18:49:58 2015 -0500 mips/bcm77xx: remove legacy __cpuinit sections that crept in We removed __cpuinit support (leaving no-op stubs) quite some time ago. However a few more crept in as of commit 6ee1d93455384cef8a0426effe85da2 ("MIPS: BCM47XX: Detect more then 128 MiB of RAM (HIGHMEM)") Since we want to clobber the stubs soon, get this removed now. Cc: Rafał Miłecki Cc: linux-mips@linux-mips.org Signed-off-by: Paul Gortmaker arch/mips/bcm47xx/prom.c | 2 +- arch/mips/include/asm/pgtable-32.h | 2 +- arch/mips/mm/tlb-r4k.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 01f0aa8ed71540ad958eaf0373e5c5d3b1652392 Author: Paul Gortmaker Date: Sat Jan 17 18:40:24 2015 -0500 mips/ath25: remove legacy __cpuinit section that crept in We removed __cpuinit support (leaving no-op stubs) quite some time ago. However this one crept back in as of commit 43cc739fd98b8c517ad45756d869f ("MIPS: ath25: add common parts") Since we want to clobber the stubs soon, get this removed now. Cc: Sergey Ryazanov Acked-by: Sergey Ryazanov Cc: linux-mips@linux-mips.org Signed-off-by: Paul Gortmaker arch/mips/ath25/board.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6a15fe9f2d51fb9d401543ae2efce2d7a9d68a26 Author: Paul Gortmaker Date: Sat Jan 17 19:15:01 2015 -0500 arm/mach-hisi: remove legacy __CPUINIT section that crept in We removed __cpuinit support (leaving no-op stubs) quite some time ago. However a new instance was added in commit 06cc5c1d4d7313bc864e9aac1d1cbd ("ARM: hisi: enable hix5hd2 SoC") Since we want to clobber the stubs soon, get this removed now. Note that there would normally be a corresponding removal of a ".previous" directive, but in this case it appears that this single function file was never paired off with one. Cc: Haifeng Yan Cc: linux-arm-kernel@lists.infradead.org Signed-off-by: Paul Gortmaker arch/arm/mach-hisi/headsmp.S | 3 --- 1 file changed, 3 deletions(-) commit 374d4dd3ef1a3ebac33a7df5f8f2e7b5fbd7ec05 Author: Paul Gortmaker Date: Sat Jan 17 16:48:41 2015 -0500 arm/mach-rockchip: remove legacy __cpuinit section that crept in We removed __cpuinit support (leaving no-op stubs) quite some time ago. However this one crept back in as of commit a7a2b3118b410fb3cd3a8363b1 ("ARM: rockchip: add smp bringup code"). Since we want to clobber the stubs soon, get this removed now. Cc: Heiko Stuebner Cc: linux-arm-kernel@lists.infradead.org Signed-off-by: Paul Gortmaker arch/arm/mach-rockchip/platsmp.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit ff6138ad196d7591d07d4c465c03e90dd86d61db Author: Paul Gortmaker Date: Sat Jan 17 16:42:47 2015 -0500 arm/mach-mvebu: remove legacy __cpuinit sections that crept in We removed __cpuinit support (leaving no-op stubs) quite some time ago. However these ones crept back in as of commit 1ee89e2231a1b04dc3476 ("ARM: mvebu: add SMP support for Armada 375 and Armada 38x") Since we want to clobber the stubs soon, get this removed now. Note that there would normally be a corresponding removal of a ".previous" directive for each __CPUINIT in asm files, but in this case it appears that this single function file was never paired off with one. Cc: Gregory CLEMENT Acked-by: Gregory CLEMENT Cc: linux-arm-kernel@lists.infradead.org Signed-off-by: Paul Gortmaker arch/arm/mach-mvebu/headsmp-a9.S | 3 --- arch/arm/mach-mvebu/platsmp-a9.c | 2 +- 2 files changed, 1 insertion(+), 4 deletions(-) commit 02d6e63307325aeadf5af0ed7371d1acb261b775 Author: Paul Gortmaker Date: Sat Jan 17 16:23:55 2015 -0500 arm/mach-keystone: remove legacy __cpuinit sections that crept in We removed __cpuinit support (leaving no-op stubs) quite some time ago. However two crept back in as of commit 5eb3da7246a5b2dfac9f38 ("ARM: keystone: Switch over to coherent memory address space") Since we want to clobber the stubs too, get these removed now. Cc: Santosh Shilimkar Acked-by: Santosh Shilimkar Cc: linux-arm-kernel@lists.infradead.org Signed-off-by: Paul Gortmaker arch/arm/mach-keystone/platsmp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e08f84e87789f0b1823e4f8c5ba38154db783eec Merge: 4a4f01a 0519ade Author: Rafael J. Wysocki Date: Tue Jun 16 19:59:09 2015 +0200 Merge branch 'acpi-scan' into acpi-video commit 30811fa663d7efa65ccec290b47a1f564485fcdd Author: Alexander Aring Date: Tue Jun 16 11:07:44 2015 +0200 at86rf230: cleanup start and stop callbacks This code cleanups the start and stop callbacks by removing hw->priv and using the already dereferenced variable lp which is the same. Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann drivers/net/ieee802154/at86rf230.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 74ed9d98456a7a85c9e041cd17350b8583659adf Author: Alexander Aring Date: Tue Jun 16 11:07:43 2015 +0200 at86rf230: add recommended csma backoffs settings This patch adds support for a new random csma backoffs settings when going into sleep state. This is recommended according at86rf2xx datasheets. Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann drivers/net/ieee802154/at86rf230.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit cbe6234689b07f5d1ecf2281573591ca4211a5cf Author: Alexander Aring Date: Tue Jun 16 11:07:42 2015 +0200 at86rf230: fix phy settings while sleeping While in sleep state then we can't access the at86rf2xx registers. This patch checks if the transceiver is in sleep state before sending spi messages via regmap. Regmap is used on every driver ops callback except for receive and xmit handling, but while receive and xmit handling the phy should not be inside the sleep state. Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann drivers/net/ieee802154/at86rf230.c | 88 +++++++++++++++++++++++++++++--------- 1 file changed, 68 insertions(+), 20 deletions(-) commit d39513f85163e202a44283856286fabb6902f2e0 Author: Vinod Koul Date: Tue Jun 16 21:00:22 2015 +0530 ALSA: HDAC: move SND_HDA_PREALLOC_SIZE to core Since this is common option for HDA driver to specfiy pre-allocated buffer, we should make this option availble to all HDA driver by moving this to HDA core Signed-off-by: Vinod Koul Signed-off-by: Takashi Iwai sound/hda/Kconfig | 13 +++++++++++++ sound/pci/hda/Kconfig | 13 ------------- 2 files changed, 13 insertions(+), 13 deletions(-) commit 3438995bc43939ed1502bb2639ff7007169574ea Merge: 5ba1244 40c6ed0 Author: Trond Myklebust Date: Tue Jun 16 11:36:47 2015 -0400 Merge tag 'nfs-rdma-for-4.2' of git://git.linux-nfs.org/projects/anna/nfs-rdma NFS: NFSoRDMA Client Changes These patches continue to build up for improving the rsize and wsize that the NFS client uses when talking over RDMA. In addition, these patches also add in scalability enhancements and other bugfixes. Signed-off-by: Anna Schumaker * tag 'nfs-rdma-for-4.2' of git://git.linux-nfs.org/projects/anna/nfs-rdma: (142 commits) xprtrdma: Reduce per-transport MR allocation xprtrdma: Stack relief in fmr_op_map() xprtrdma: Split rb_lock xprtrdma: Remove rpcrdma_ia::ri_memreg_strategy xprtrdma: Remove ->ro_reset xprtrdma: Remove unused LOCAL_INV recovery logic xprtrdma: Acquire MRs in rpcrdma_register_external() xprtrdma: Introduce an FRMR recovery workqueue xprtrdma: Acquire FMRs in rpcrdma_fmr_register_external() xprtrdma: Introduce helpers for allocating MWs xprtrdma: Use ib_device pointer safely xprtrdma: Remove rr_func xprtrdma: Replace rpcrdma_rep::rr_buffer with rr_rxprt xprtrdma: Warn when there are orphaned IB objects ... commit 5ba12443a132420be45d089e4c4ac8a1e26b7da8 Author: Trond Myklebust Date: Tue Jun 16 11:26:35 2015 -0400 NFSv4: Fix stateid recovery on revoked delegations Ensure that we fix the non-NULL stateid case as well. Signed-off-by: Trond Myklebust fs/nfs/nfs4proc.c | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) commit ae2ffef383fad723690a4c5bad70f7035fd7d71a Author: Olga Kornievskaia Date: Fri Jun 12 16:53:30 2015 -0400 Recover from stateid-type error on SETATTR Client can receives stateid-type error (eg., BAD_STATEID) on SETATTR when delegation stateid was used. When no open state exists, in case of application calling truncate() on the file, client has no state to recover and fails with EIO. Instead, upon such error, return the bad delegation and then resend the SETATTR with a zero stateid. Signed-off: Olga Kornievskaia Signed-off-by: Trond Myklebust fs/nfs/nfs4proc.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit df05a49f7204d81ba0e29fda3d56ccb730f05d87 Author: Kinglong Mee Date: Sat Jun 13 10:07:00 2015 +0800 nfs: Fix showing truncated fsid/dev in, /proc/net/nfsfs/volumes A truncated fsid showing from /proc/fs/nfsfs/volumes as, NV SERVER PORT DEV FSID FSC v4 c0a80881 801 0:43 34931f044c2a439b no It should be as, NV SERVER PORT DEV FSID FSC v4 c0a80881 801 0:43 34931f044c2a439b:954c5d830fa4be8c no The max buffer length for storing "%llx:%llx" format should be 16 + 1 + 16 + 1 = 34 (16 for %llx, 1 for ':', 1 for '\0'). Also, for storing "%u:%u" of MAJOR() and MINOR() should be 8 + 1 + 3 + 1 = 13 (8 for 2^24, 1 for ':', 3 for 2^8, 1 for '\0'). v2, add comments for dev/fsid buffer and use sizeof in snprintf. Signed-off-by: Kinglong Mee Signed-off-by: Trond Myklebust fs/nfs/client.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) commit 873e385116b2cc5c7daca8f51881371fadb90970 Author: Jeff Layton Date: Tue Jun 9 19:44:00 2015 -0400 nfs: make nfs4_init_uniform_client_string use a dynamically allocated buffer Change the uniform client string generator to dynamically allocate the NFSv4 client name string buffer. With this patch, we can eliminate the buffers that are embedded within the "args" structs and simply use the name string that is hanging off the client. This uniform string case is a little simpler than the nonuniform since we don't need to deal with RCU, but we do have two different cases, depending on whether there is a uniquifier or not. Signed-off-by: Jeff Layton Signed-off-by: Trond Myklebust fs/nfs/nfs4proc.c | 112 +++++++++++++++++++++++++++++++++--------------- include/linux/nfs_xdr.h | 6 --- 2 files changed, 77 insertions(+), 41 deletions(-) commit a319268891089386bd303bb90ace89d75e47102f Author: Jeff Layton Date: Tue Jun 9 19:43:59 2015 -0400 nfs: make nfs4_init_nonuniform_client_string use a dynamically allocated buffer The way the *_client_string functions work is a little goofy. They build the string in an on-stack buffer and then use kstrdup to copy it. This is not only stack-heavy but artificially limits the size of the client name string. Change it so that we determine the length of the string, allocate it and then scnprintf into it. Since the contents of the nonuniform string depend on rcu-managed data structures, it's possible that they'll change between when we allocate the string and when we go to fill it. If that happens, free the string, recalculate the length and try again. If it the mismatch isn't resolved on the second try then just give up and return -EINVAL. Signed-off-by: Jeff Layton Signed-off-by: Trond Myklebust fs/nfs/nfs4proc.c | 74 ++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 51 insertions(+), 23 deletions(-) commit b8fb2f595e8009ad245d564b7a443d108a2334cd Author: Jeff Layton Date: Tue Jun 9 19:43:58 2015 -0400 nfs: update maxsz values for SETCLIENTID and EXCHANGE_ID The spec allows for up to NFS4_OPAQUE_LIMIT (1k). While we'll almost certainly never use that much, these ops are generally the only ones in the compound so we might as well allow for them to be that large. Also, the existing code didn't add in a word for the opaque length field for either name string. Fix that while we're in there. Signed-off-by: Jeff Layton Signed-off-by: Trond Myklebust fs/nfs/nfs4xdr.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 3a6bb738792500e8b4534c0350c13a132bac0492 Author: Jeff Layton Date: Tue Jun 9 19:43:57 2015 -0400 nfs: convert setclientid and exchange_id encoders to use clp->cl_owner_id ...instead of buffers that are part of their arg structs. We already hold a reference to the client, so we might as well use the allocated buffer. In the event that we can't allocate the clp->cl_owner_id, then just return -ENOMEM. Note too that we switch from a GFP_KERNEL allocation here to GFP_NOFS. It's possible we could end up trying to do a SETCLIENTID or EXCHANGE_ID in order to reclaim some memory, and the GFP_KERNEL allocations in the existing code could cause recursion back into NFS reclaim. Signed-off-by: Jeff Layton Signed-off-by: Trond Myklebust fs/nfs/nfs4proc.c | 21 ++++++++++++++++----- fs/nfs/nfs4xdr.c | 8 +++++--- include/linux/nfs_xdr.h | 2 +- 3 files changed, 22 insertions(+), 9 deletions(-) commit 764ad8ba8cd4c6f836fca9378f8c5121aece0842 Author: Jeff Layton Date: Tue Jun 9 19:43:56 2015 -0400 nfs: increase size of EXCHANGE_ID name string buffer The current buffer is much too small if you have a relatively long hostname. Bring it up to the size of the one that SETCLIENTID has. Cc: Reported-by: Michael Skralivetsky Signed-off-by: Jeff Layton Signed-off-by: Trond Myklebust include/linux/nfs_xdr.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 455b6ee6452751dc471b5a434f9398fb825d5149 Author: Fabian Frederick Date: Fri Jun 12 18:58:50 2015 +0200 pnfs/flexfiles: use swap() in ff_layout_sort_mirrors() Use kernel.h macro definition. Thanks to Julia Lawall for Coccinelle scripting support. Signed-off-by: Fabian Frederick Signed-off-by: Trond Myklebust fs/nfs/flexfilelayout/flexfilelayout.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit 298073181112a6ab6c30fe7971b99de968daf81e Author: Neil Brown Date: Mon Jun 15 15:55:30 2015 +1000 SUNRPC: never enqueue a ->rq_cong request on ->sending If the sending queue has a task without ->rq_cong set at the front, and then a number of tasks with ->rq_cong set such that they use the entire congestion window, then the queue deadlocks. The first entry cannot be processed until later entries complete. This scenario has been seen with a client using UDP to access a server, and the network connection breaking for a period of time - it doesn't recover. It never really makes sense for an ->rq_cong request to be on the ->sending queue, but it can happen when a request is being retried, and finds the transport if locked (XPRT_LOCKED). In this case we simple call __xprt_put_cong() and the deadlock goes away. Signed-off-by: NeilBrown Signed-off-by: Trond Myklebust net/sunrpc/xprt.c | 3 +++ 1 file changed, 3 insertions(+) commit 0f94bffad401faa045c2062f1652d21e3e89f439 Author: Julia Lawall Date: Tue Jun 16 06:45:14 2015 -0700 regulator: fix simple_return.cocci warnings Simplify a trivial if-return sequence and combine with a preceding function call. Generated by: scripts/coccinelle/misc/simple_return.cocci CC: Mark Brown Signed-off-by: Julia Lawall Signed-off-by: Mark Brown drivers/regulator/qcom_spmi-regulator.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit b031220d520238075bd99513a420e65cf37866ad Author: Masami Hiramatsu Date: Tue Jun 16 20:50:55 2015 +0900 perf probe: Fix to return error if no probe is added Fix perf probe to return an error if no probe is added due to the given probe point being on the blacklist. To fix this problem, this moves the blacklist checking to right after finding symbols/probe-points and marks them as skipped. If all the symbols are skipped, "perf probe" returns an error as it fails to find the corresponding probe address. E.g. currently if a blacklisted probe is given: # perf probe do_trap && echo 'succeed' Added new event: Warning: Skipped probing on blacklisted function: sync_regs succeed No! It must fail! With this patch, it correctly fails: # perf probe do_trap && echo 'succeed' do_trap is blacklisted function, skip it. Probe point 'do_trap' not found. Error: Failed to add events. Signed-off-by: Masami Hiramatsu Tested-by: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Jiri Olsa Cc: Namhyung Kim Cc: Naohiro Aota Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20150616115055.19906.31359.stgit@localhost.localdomain Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/probe-event.c | 113 ++++++++++++++++++++++++++---------------- 1 file changed, 71 insertions(+), 42 deletions(-) commit 2f17d71dd71fe62957f155eee028c6ba79c79f01 Author: Asai Thambi SP Date: Mon May 11 15:57:16 2015 -0700 mtip32xx: increase wait time for hba reset In LUN failure conditions, device takes longer time to complete the hba reset. Increased wait time from 1 second to 10 seconds. Signed-off-by: Sam Bradshaw Signed-off-by: Asai Thambi S P Signed-off-by: Jens Axboe drivers/block/mtip32xx/mtip32xx.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 75787265d61fdce212c45805b36779754392d034 Author: Asai Thambi SP Date: Mon May 11 15:55:26 2015 -0700 mtip32xx: fix minor number When a device is surprise removed and inserted, it is assigned a new minor number because driver use multiples of 'instance' number. Modified to use the multiples of 'index' for minor number. Signed-off-by: Asai Thambi S P Signed-off-by: Jens Axboe drivers/block/mtip32xx/mtip32xx.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 284eb9a202a24fec4aed02d7526abc29827f6cbb Author: Asai Thambi SP Date: Mon May 11 15:54:19 2015 -0700 mtip32xx: remove unnecessary sleep in mtip_ftl_rebuild_poll() Signed-off-by: Asai Thambi S P Signed-off-by: Jens Axboe drivers/block/mtip32xx/mtip32xx.c | 1 - 1 file changed, 1 deletion(-) commit 2132a544727eb17f76bfef8b550a016a41c38821 Author: Asai Thambi SP Date: Mon May 11 15:53:18 2015 -0700 mtip32xx: fix crash on surprise removal of the drive pci and block layers have changed a lot compared to when SRSI support was added. Given the current state of pci and block layers, this driver do not have to do any specific handling. Signed-off-by: Asai Thambi S P Signed-off-by: Selvan Mani Signed-off-by: Jens Axboe drivers/block/mtip32xx/mtip32xx.c | 143 ++++++++++++-------------------------- 1 file changed, 45 insertions(+), 98 deletions(-) commit 686d8e0bb5207c2a651eb5b28ac15db33adda59d Author: Asai Thambi SP Date: Mon May 11 15:51:27 2015 -0700 mtip32xx: Abort I/O during secure erase operation Currently I/Os are being queued when secure erase operation starts, and issue them after the operation completes. As all data will be gone when the operation completes, any queued I/O doesn't make sense. Hence, abort I/O (return -ENODATA) as soon as the driver receives. Signed-off-by: Selvan Mani Signed-off-by: Asai Thambi S P Signed-off-by: Jens Axboe drivers/block/mtip32xx/mtip32xx.c | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) commit ee04bed690cb49a49512a641405bac42d13c2b2a Author: Asai Thambi SP Date: Mon May 11 15:50:50 2015 -0700 mtip32xx: fix incorrectly setting MTIP_DDF_SEC_LOCK_BIT Fix incorrectly setting MTIP_DDF_SEC_LOCK_BIT Signed-off-by: Selvan Mani Signed-off-by: Asai Thambi S P Signed-off-by: Jens Axboe drivers/block/mtip32xx/mtip32xx.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit a7806fadc5f68b1551e4fa85f5e655c0448727f1 Author: Asai Thambi SP Date: Mon May 11 15:49:28 2015 -0700 mtip32xx: remove unused variable 'port->allocated' Remove unused variable 'port->allocated' Signed-off-by: Selvan Mani Signed-off-by: Asai Thambi S P Signed-off-by: Jens Axboe drivers/block/mtip32xx/mtip32xx.c | 15 +-------------- drivers/block/mtip32xx/mtip32xx.h | 8 +------- 2 files changed, 2 insertions(+), 21 deletions(-) commit 02b48265e7437bfe153af16337b14ee74f00905f Author: Asai Thambi SP Date: Mon May 11 15:48:00 2015 -0700 mtip32xx: fix rmmod issue put_disk() need to be called after del_gendisk() to free the disk object structure. Signed-off-by: Selvan Mani Signed-off-by: Asai Thambi S P Signed-off-by: Jens Axboe drivers/block/mtip32xx/mtip32xx.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) commit f005813afb89bae92faf254130c544dc68984c6b Author: Hou Pengyang Date: Tue Jun 16 11:16:35 2015 +0000 perf unwind: Fix a compile error When libunwind is on, there is a compile error as : util/unwind-libunwind.c:363:21: error: 'dso' undeclared (first use in this function) dso__data_put_fd(dso); This patch fixes it. Signed-off-by: Hou Pengyang Cc: Namhyung Kim Cc: Wang Nan Fixes: 4bb11d012ab248d0 ("perf tools: Add dso__data_get/put_fd()") Link: http://lkml.kernel.org/r/1434453395-10560-1-git-send-email-houpengyang@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/unwind-libunwind.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9df38e82e2a103cf42177c164a4de9d58052ac3a Author: Jiri Olsa Date: Sun Jun 14 10:19:27 2015 +0200 perf stat: Introduce perf_counts__(new|delete|reset) functions Move 'struct perf_counts' allocation|free|reset code into separate functions. Signed-off-by: Jiri Olsa Cc: Adrian Hunter Cc: Andi Kleen Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1434269985-521-13-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 19 +++++++------------ tools/perf/util/stat.c | 28 +++++++++++++++++++++++----- tools/perf/util/stat.h | 3 +++ 3 files changed, 33 insertions(+), 17 deletions(-) commit a9a3a4d92d8f2fb68f4b99d98505bebc70518599 Author: Jiri Olsa Date: Sun Jun 14 10:19:26 2015 +0200 perf tools: Move perf_evsel__(alloc|free|reset)_counts into stat object It's stat specific. Updating python build objects with stat.c. Signed-off-by: Jiri Olsa Cc: Adrian Hunter Cc: Andi Kleen Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1434269985-521-12-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/openat-syscall-all-cpus.c | 1 + tools/perf/util/evsel.c | 19 +------------------ tools/perf/util/evsel.h | 3 --- tools/perf/util/python-ext-sources | 1 + tools/perf/util/stat.c | 18 ++++++++++++++++++ tools/perf/util/stat.h | 3 +++ 6 files changed, 24 insertions(+), 21 deletions(-) commit 9d7e8c3a96e5a903a4e0951e08f7fa6957170bef Author: Jiri Olsa Date: Sun Jun 14 10:19:17 2015 +0200 perf tools: Add thread_map__(alloc|realloc) helpers In order to have 'struct thread_map' allocation on single place and can change it easily in following patch. Using alloc|realloc for static helpers, because thread_map__new is already used in public interface. Signed-off-by: Jiri Olsa Cc: Adrian Hunter Cc: Andi Kleen Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1434269985-521-3-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/thread_map.c | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) commit b45f65e8fddc89ac6b46388908d3f6ac728be372 Author: Jiri Olsa Date: Sun Jun 14 10:19:16 2015 +0200 perf tools: Introduce xyarray__reset function To zero all the xyarray contents. It will be used in following patches. Signed-off-by: Jiri Olsa Cc: Adrian Hunter Cc: Andi Kleen Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1434269985-521-2-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/xyarray.c | 8 ++++++++ tools/perf/util/xyarray.h | 2 ++ 2 files changed, 10 insertions(+) commit ba7ecb02e7b89b09d8cdf4c1514a386af8916c4b Author: Masami Hiramatsu Date: Sat Jun 13 10:31:16 2015 +0900 perf probe: List probes in stdout Since commit 5e17b28f1e24 ("perf probe: Add --quiet option to suppress output result message") have replaced printf with pr_info, perf probe -l outputs its result in stderr. However, that is not what the commit expected. E.g.: # perf probe -l > /dev/null probe:vfs_read (on vfs_read@ksrc/linux-3/fs/read_write.c) With this fix: # perf probe -l > list # cat list probe:vfs_read (on vfs_read@ksrc/linux-3/fs/read_write.c) Of course, --quiet(-q) still works on --add/--del. # perf probe -q vfs_write # perf probe -l probe:vfs_read (on vfs_read@ksrc/linux-3/fs/read_write.c) probe:vfs_write (on vfs_write@ksrc/linux-3/fs/read_write.c) ----- Reported-by: Naohiro Aota Signed-off-by: Masami Hiramatsu Tested-by: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Jiri Olsa Cc: Namhyung Kim Cc: Naohiro Aota Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20150613013116.24402.2923.stgit@localhost.localdomain Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/probe-event.c | 49 ++++++++++++++++++++++++++++++------------- 1 file changed, 35 insertions(+), 14 deletions(-) commit a35489a6a217f0396c979009b0c875d871434737 Author: Wang Nan Date: Fri Jun 12 03:17:11 2015 +0000 tools lib traceevent: Fix python/perf.so compiling error 'make build-test' finds an error that make_python_perf_so fails due to missing of libtraceevent-dynamic-list: '.../python2' util/setup.py \ --quiet build_ext; \ mkdir -p python && \ cp python_ext_build/lib/perf.so python/ /path/to/ld: cannot open linker script file /path/to/kernel/tools/lib/traceevent/libtraceevent-dynamic-list: No such file or directory collect2: error: ld returned 1 exit status error: command 'x86_64-linux-gcc' failed with exit status 1 cp: cannot stat 'python_ext_build/lib/perf.so': No such file or directory make[3]: *** [python/perf.so] Error 1 make[2]: *** [python/perf.so] Error 2 test: test -f ./python/perf.so make[1]: *** [make_python_perf_so] Error 1 make: *** [build-test] Error 2 make: Leaving directory `/path/to/kernel/tools/perf' This is caused by commit e3d09ec8126fe2c9a3ade661e2126e215ca27a80 ("tools lib traceevent: Export dynamic symbols used by traceevent plugins") that, it adds the list file to LDFLAGS but forgot to add it to dependency list of python/perf.so. This patch fixes this problem. Signed-off-by: Wang Nan Acked-by: Jiri Olsa Cc: He Kuang Cc: Peter Zijlstra Cc: Zefan Li Link: http://lkml.kernel.org/r/1434079031-123162-1-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Makefile.perf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5c24b67aae72f54c5d2a6898be4bae9726df63bb Author: Arnaldo Carvalho de Melo Date: Mon Jun 15 23:29:51 2015 -0300 perf tools: Replace map->referenced & maps->removed_maps with map->refcnt Use just reference counts, so that when no more hist_entry instances references a map and the thread instance goes away by processing a PERF_RECORD_EXIT, we can delete the maps. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-oym7lfhcc7ss6xpz44h7nbxs@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/hist.c | 37 +++++++++++++++++++------------- tools/perf/util/map.c | 58 ++------------------------------------------------ tools/perf/util/map.h | 10 +++++++-- 3 files changed, 32 insertions(+), 73 deletions(-) commit bf933dbb84453c502355743828a37ead5e82aa68 Merge: 0ff9b9b 2d91b49 6cbb247 5dbb4c6 2393f79 ef07991 e1e6e5c Author: Bjorn Helgaas Date: Tue Jun 16 08:19:55 2015 -0500 Merge branches 'pci/host-designware', 'pci/host-designware-common', 'pci/host-generic', 'pci/host-imx6', 'pci/host-iproc' and 'pci/host-xgene' into next * pci/host-designware: PCI: designware: Use iATU0 for cfg and IO, iATU1 for MEM PCI: designware: Consolidate outbound iATU programming functions PCI: designware: Add support for x8 links * pci/host-designware-common: PCI: designware: Wait for link to come up with consistent style PCI: layerscape: Factor out ls_pcie_establish_link() PCI: layerscape: Use dw_pcie_link_up() consistently PCI: dra7xx: Use dw_pcie_link_up() consistently PCI: imx6: Rename imx6_pcie_start_link() to imx6_pcie_establish_link() * pci/host-generic: of/pci: Fix pci_address_to_pio() conversion of CPU address to I/O port * pci/host-imx6: PCI: imx6: Add #define PCIE_RC_LCSR PCI: imx6: Use "u32", not "uint32_t" PCI: imx6: Add speed change timeout message * pci/host-iproc: PCI: iproc: Free resource list after registration PCI: iproc: Directly add PCI resources PCI: iproc: Add BCMA PCIe driver PCI: iproc: Allow override of device tree IRQ mapping function * pci/host-xgene: arm64: dts: Add APM X-Gene PCIe MSI nodes PCI: xgene: Add APM X-Gene v1 PCIe MSI/MSIX termination driver commit 2393f79cf92ed3bfaf1a6982a18bae4d289aeda8 Author: Bjorn Helgaas Date: Fri Jun 12 17:27:43 2015 -0500 PCI: imx6: Add #define PCIE_RC_LCSR Define PCIE_RC_LCSR and use it instead of the bare offset "0x80." No functional change. Signed-off-by: Bjorn Helgaas drivers/pci/host/pci-imx6.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 1c7fae18a1fb6b6bcd6669066ee801769de0e943 Author: Bjorn Helgaas Date: Fri Jun 12 15:02:49 2015 -0500 PCI: imx6: Use "u32", not "uint32_t" Use "u32", not "uint32_t", for consistency. Use "tmp", not "temp", for consistency within the driver. Signed-off-by: Bjorn Helgaas Acked-by: Richard Zhu drivers/pci/host/pci-imx6.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit 7861c7a4ca5c637f3cad1e343602a15e857140fd Author: Dan Carpenter Date: Tue Jun 16 13:49:32 2015 +0300 drm/amdkfd: fix some range checks in address watch ioctl buf_size_in_bytes must be large enough to hold ->num_watch_points and watch_mode so I have added a sizeof(int) * 2 to the minimum size. Also we have to subtract sizeof(*args) from the max args_idx limit so that it matches the allocation. Also I changed a > to >= for the last compare. Signed-off-by: Dan Carpenter Signed-off-by: Oded Gabbay drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 24fd03c87695a76f0517df42a37e51b1597d2c8a Author: Mimi Zohar Date: Thu Jun 11 20:48:33 2015 -0400 ima: update builtin policies This patch defines a builtin measurement policy "tcb", similar to the existing "ima_tcb", but with additional rules to also measure files based on the effective uid and to measure files opened with the "read" mode bit set (eg. read, read-write). Changing the builtin "ima_tcb" policy could potentially break existing users. Instead of defining a new separate boot command line option each time the builtin measurement policy is modified, this patch defines a single generic boot command line option "ima_policy=" to specify the builtin policy and deprecates the use of the builtin ima_tcb policy. [The "ima_policy=" boot command line option is based on Roberto Sassu's "ima: added new policy type exec" patch.] Signed-off-by: Mimi Zohar Signed-off-by: Dr. Greg Wettstein Cc: stable@vger.kernel.org Documentation/kernel-parameters.txt | 10 +++++- security/integrity/ima/ima_policy.c | 65 ++++++++++++++++++++++++++++++++----- 2 files changed, 65 insertions(+), 10 deletions(-) commit 4351c294b8c1028077280f761e158d167b592974 Author: Mimi Zohar Date: Wed Nov 5 07:53:55 2014 -0500 ima: extend "mask" policy matching support The current "mask" policy option matches files opened as MAY_READ, MAY_WRITE, MAY_APPEND or MAY_EXEC. This patch extends the "mask" option to match files opened containing one of these modes. For example, "mask=^MAY_READ" would match files opened read-write. Signed-off-by: Mimi Zohar Signed-off-by: Dr. Greg Wettstein Cc: stable@vger.kernel.org Documentation/ABI/testing/ima_policy | 3 ++- security/integrity/ima/ima_policy.c | 20 +++++++++++++++----- 2 files changed, 17 insertions(+), 6 deletions(-) commit 139069eff7388407f19794384c42a534d618ccd7 Author: Mimi Zohar Date: Wed Nov 5 07:48:36 2014 -0500 ima: add support for new "euid" policy condition The new "euid" policy condition measures files with the specified effective uid (euid). In addition, for CAP_SETUID files it measures files with the specified uid or suid. Changelog: - fixed checkpatch.pl warnings - fixed avc denied {setuid} messages - based on Roberto's feedback Signed-off-by: Mimi Zohar Signed-off-by: Dr. Greg Wettstein Cc: stable@vger.kernel.org Documentation/ABI/testing/ima_policy | 3 ++- security/integrity/ima/ima_policy.c | 27 +++++++++++++++++++++++---- 2 files changed, 25 insertions(+), 5 deletions(-) commit 45b26133b97871896b8c5241d59f4ff7839db7b2 Author: Mimi Zohar Date: Thu Jun 11 11:54:42 2015 -0400 ima: fix ima_show_template_data_ascii() This patch fixes a bug introduced in "4d7aeee ima: define new template ima-ng and template fields d-ng and n-ng". Changelog: - change int to uint32 (Roberto Sassu's suggestion) Signed-off-by: Mimi Zohar Signed-off-by: Roberto Sassu Cc: stable@vger.kernel.org # 3.13 security/integrity/ima/ima.h | 2 +- security/integrity/ima/ima_fs.c | 4 ++-- security/integrity/ima/ima_template_lib.c | 3 ++- 3 files changed, 5 insertions(+), 4 deletions(-) commit 11f2764fe7d803b5c8ac329710342ca0c5e9a790 Author: Cyrille Pitchen Date: Tue Jun 16 12:09:31 2015 +0200 spi: atmel: add support to FIFOs The latest SPI controllers embedded inside sama5d2x SoCs come with FIFOs. When FIFOs are enabled, they can either work in SINGLE data mode or MULTIPLE data mode. The selected mode depends on the configuration of the SPI controller (see below). In SINGLE data mode (or legacy mode), for a single I/O access, only one data can be read from the Receive Data Register (RDR) or written into the Transmit Data Register (TDR). On the other hand, in MULTIPLE data mode, up to 4 data can be read from the RDR or up 2 data can be written into the TDR in a single 32bit I/O access. So programmers should take good care of the width of the I/O access to read/write the right number of data. The exact number of read/written data depends on both the I/O access width and the data width (from 8 up to 16 bits). To enable the FIFO feature a "atmel,fifo-size" property must be set to provide the maximum number of data (not bytes) the RX and TX FIFOs can store. Hence a 32 data FIFO can always store up to 32 data unrelated with the actual data width. When FIFOs are enabled, the RX one is forced to operate in SINGLE data mode because this driver configures the spi controller as a master. In master mode only, the Received Data Register has an additionnal Peripheral Chip Select field, which prevents us from reading more than a single data at each register access. Besides, the TX FIFO operates in MULTIPLE data mode. However, even when a 8bit data size is used, only two data by access could be written into the Transmit Data Register. Indeed the first data has to be written into the lowest 16 bits whereas the second data has to be written into the highest 16 bits of the TDR. When DMA transfers are used to send data, we don't rework the transmit buffer to cope with this hardware limitation: the additional copies required to prepare a new input buffer suited to both the DMA controller and the spi controller would waste all the benefit of the DMA transfer. Instead, the DMA controller is configured to write only one data at time into the TDR. In pio mode, two data are written in the TDR in a single access. Signed-off-by: Cyrille Pitchen Acked-by: Nicolas Ferre Signed-off-by: Mark Brown drivers/spi/spi-atmel.c | 255 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 245 insertions(+), 10 deletions(-) commit 2c01a3d6b3cf0aaf39b55318fd986b1bd0b98168 Author: Cyrille Pitchen Date: Tue Jun 16 12:09:30 2015 +0200 spi: atmel: update DT bindings documentation - add new property "atmel,fifo-size" - change "cs-gpios" to optional for SPI controller version >= 2. Please be aware that the VERSION register can not be used to guess the size of FIFOs. Indeed, for a given hardware version, the SPI controller can be integrated on Atmel SoCs with different FIFO sizes. Also the "atmel,fifo-size" property is optional as older SPI controllers don't embed FIFO at all. Besides, the FIFO size can not be read or guessed from other registers: When designing the FIFO feature, no dedicated registers were added to store this size. Unused spaces in the I/O register range are limited and better reserved for future usages. Instead, the FIFO size of each peripheral is documented in the programmer datasheet. Finally, on a given SoC, there can be several instances of the SPI controller with different FIFO sizes. This explain why we'd rather use a dedicated DT property than use the "compatible" property. For instance, sama5d2x SoCs come with some SPI controllers, the ones inside Flexcoms, integrating 32 data FIFOs whereas other SPI controllers use 16 data FIFOs. All these SPI controllers share the same IP version. Signed-off-by: Cyrille Pitchen Acked-by: Nicolas Ferre Signed-off-by: Mark Brown Documentation/devicetree/bindings/spi/spi_atmel.txt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 921cc29473a0d7c109105c1876ddb432f4a4be7d Author: Maxime Coquelin Date: Tue Jun 16 13:53:19 2015 +0200 regmap: Fix possible shift overflow in regmap_field_init() The way the mask is generated in regmap_field_init() is wrong. Indeed, a field initialized with msb = 31 and lsb = 0 provokes a shift overflow while calculating the mask field. On some 32 bits architectures, such as x86, the generated mask is 0, instead of the expected 0xffffffff. This patch uses GENMASK() to fix the problem, as this macro is already safe regarding shift overflow. Signed-off-by: Maxime Coquelin Signed-off-by: Mark Brown Cc: stable@vger.kernel.org drivers/base/regmap/regmap.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 662e8d917f685011a24492c106737ea5fdff8136 Author: Koro Chen Date: Mon Jun 15 22:38:04 2015 +0800 ASoC: mediatek: Add machine driver for rt5650 rt5676 codec This is the DPCM based machine driver with rt5650 and rt5676 Signed-off-by: Nicolas Boichat Signed-off-by: Koro Chen Signed-off-by: Mark Brown .../bindings/sound/mt8173-rt5650-rt5676.txt | 13 + sound/soc/mediatek/Kconfig | 11 + sound/soc/mediatek/Makefile | 1 + sound/soc/mediatek/mt8173-rt5650-rt5676.c | 278 +++++++++++++++++++++ 4 files changed, 303 insertions(+) commit a54f6f0c5b7fb4048ea3de9751720090ac92a570 Author: Koro Chen Date: Mon Jun 15 22:38:03 2015 +0800 ASoC: mediatek: Add machine driver for MAX98090 codec This is the DPCM based machine driver with MAX98090 Signed-off-by: Koro Chen Signed-off-by: Mark Brown .../devicetree/bindings/sound/mt8173-max98090.txt | 13 ++ sound/soc/mediatek/Kconfig | 10 + sound/soc/mediatek/Makefile | 2 + sound/soc/mediatek/mt8173-max98090.c | 213 +++++++++++++++++++++ 4 files changed, 238 insertions(+) commit ee0bcaff109f36d582df9851f204c9a5eb79c028 Author: Koro Chen Date: Mon Jun 15 22:38:02 2015 +0800 ASoC: mediatek: Add AFE platform driver This is the DPCM based platform driver of AFE (Audio Front End) unit. Signed-off-by: Sascha Hauer Signed-off-by: Koro Chen Signed-off-by: Mark Brown .../devicetree/bindings/sound/mtk-afe-pcm.txt | 45 + sound/soc/Kconfig | 1 + sound/soc/Makefile | 1 + sound/soc/mediatek/Kconfig | 9 + sound/soc/mediatek/Makefile | 2 + sound/soc/mediatek/mtk-afe-common.h | 109 ++ sound/soc/mediatek/mtk-afe-pcm.c | 1233 ++++++++++++++++++++ 7 files changed, 1400 insertions(+) commit 8a4e379b54f8cf1180cfee8ad3bfe16beedac65b Author: Kuninori Morimoto Date: Mon Jun 15 06:28:03 2015 +0000 ASoC: rsnd: remove io from rsnd_mod Each Renesas sound mod (= SSI/SRC/DVC) might be called from many path if it supports MIXer. In such case, mod <-> io is no longer 1:1 relationship. rsnd_mod_to_io() is no longer needed. Let's remove it. Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown sound/soc/sh/rcar/core.c | 2 -- sound/soc/sh/rcar/rsnd.h | 2 -- 2 files changed, 4 deletions(-) commit d5bbe7de563ccce62765f1183561218b6dbdbe1e Author: Kuninori Morimoto Date: Mon Jun 15 06:27:47 2015 +0000 ASoC: rsnd: move rsnd_mod_is_working() to rsnd_io_is_working() Each Renesas sound mod (= SSI/SRC/DVC) might be called from many paths if it supports MIXer. In such case, mod <-> io is no longer 1:1 relationship. This patch checks module working status via io instead of mod Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown sound/soc/sh/rcar/core.c | 4 +--- sound/soc/sh/rcar/dma.c | 2 +- sound/soc/sh/rcar/rsnd.h | 3 +-- sound/soc/sh/rcar/src.c | 2 +- sound/soc/sh/rcar/ssi.c | 2 +- 5 files changed, 5 insertions(+), 8 deletions(-) commit b65a7cccb58ce5acfed579e1ca10f8a4d3d0dd04 Author: Kuninori Morimoto Date: Mon Jun 15 06:27:28 2015 +0000 ASoC: rsnd: don't use rsnd_mod_to_io() on snd_kcontrol Each Renesas sound mod (= SSI/SRC/DVC) might be called from many paths if it supports MIXer. In such case, mod <-> io is no longer 1:1 relationship. This patch removes rsnd_mod_to_io() from snd_kcontrol and related function. Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown sound/soc/sh/rcar/core.c | 25 +++++++++++++++++-------- sound/soc/sh/rcar/dvc.c | 15 ++++++++------- sound/soc/sh/rcar/rsnd.h | 15 +++++++++++---- sound/soc/sh/rcar/src.c | 8 ++++---- 4 files changed, 40 insertions(+), 23 deletions(-) commit 88c61cff4dab7c23a101b12041c99da61df305dd Author: Kuninori Morimoto Date: Mon Jun 15 06:27:13 2015 +0000 ASoC: rsnd: don't use rsnd_mod_to_io() on rsnd_src_xxx() Each Renesas sound mod (= SSI/SRC/DVC) might be called from many paths if it supports MIXer. In such case, mod <-> io is no longer 1:1 relationship. This patch removes rsnd_mod_to_io() from rsnd_src_xxx() and related function. Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown sound/soc/sh/rcar/src.c | 57 +++++++++++++++++++++++++++---------------------- 1 file changed, 32 insertions(+), 25 deletions(-) commit bfc0cfe6b7acb1d0c318f9bc41fcb895a941f83d Author: Kuninori Morimoto Date: Mon Jun 15 06:26:56 2015 +0000 ASoC: rsnd: don't use rsnd_mod_to_io() on rsnd_ssi_xxx() Each Renesas sound mod (= SSI/SRC/DVC) might be called from many paths if it supports MIXer. In such case, mod <-> io is no longer 1:1 relationship. This patch removes rsnd_mod_to_io() from rsnd_ssi_xxx() and related function. Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown sound/soc/sh/rcar/dma.c | 2 +- sound/soc/sh/rcar/rsnd.h | 2 +- sound/soc/sh/rcar/ssi.c | 32 ++++++++++++++++++-------------- 3 files changed, 20 insertions(+), 16 deletions(-) commit 9b99e9a7c5057684104178bb6c3815fcb2f13be4 Author: Kuninori Morimoto Date: Mon Jun 15 06:26:25 2015 +0000 ASoC: rsnd: don't use rsnd_mod_to_io() on rsnd_dma_xxx() Each Renesas sound mod (= SSI/SRC/DVC) might be called from many paths if it supports MIXer. In such case, mod <-> io is no longer 1:1 relationship. This patch removes rsnd_mod_to_io() from rsnd_dma_xxx() and related function Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown sound/soc/sh/rcar/core.c | 5 ++- sound/soc/sh/rcar/dma.c | 102 ++++++++++++++++++++++++++--------------------- sound/soc/sh/rcar/dvc.c | 3 +- sound/soc/sh/rcar/rsnd.h | 22 +++++----- sound/soc/sh/rcar/src.c | 12 +++--- sound/soc/sh/rcar/ssi.c | 12 +++--- 6 files changed, 85 insertions(+), 71 deletions(-) commit 4e2639ff38d28dccdd8e7cf8f60181f0c17e10d3 Author: Kuninori Morimoto Date: Mon Jun 15 06:26:08 2015 +0000 ASoC: rsnd: don't use rsnd_mod_to_io() on rsnd_get_adinr() Each Renesas sound mod (= SSI/SRC/DVC) might be called from many paths if it supports MIXer. In such case, mod <-> io is no longer 1:1 relationship. This patch removes rsnd_mod_to_io() from rsnd_get_adinr() and its related function Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown sound/soc/sh/rcar/core.c | 3 +-- sound/soc/sh/rcar/dvc.c | 2 +- sound/soc/sh/rcar/rsnd.h | 6 ++++-- sound/soc/sh/rcar/src.c | 28 +++++++++++++++------------- sound/soc/sh/rcar/ssi.c | 4 ++-- 5 files changed, 23 insertions(+), 20 deletions(-) commit f501b7a4e7ceb76a5d24cc0f75403072af5e85a0 Author: Kuninori Morimoto Date: Mon Jun 15 06:25:48 2015 +0000 ASoC: rsnd: add common interrupt handler for SSI/SRC/DMA Each Renesas sound mod (= SSI/SRC/DVC) might be called from many paths if it supports MIXer. In such case, mod <-> io is no longer 1:1 relationship. Then, interrupt handler can't use rsnd_mod_to_io(). This patch adds SSI/SRC/DMA common interrupt handler frame Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown sound/soc/sh/rcar/core.c | 23 +++++++++++++++++++++++ sound/soc/sh/rcar/rsnd.h | 3 +++ 2 files changed, 26 insertions(+) commit 2c0fac19de2cd74181122f7e62f4ebffdd6f8fa3 Author: Kuninori Morimoto Date: Mon Jun 15 06:25:20 2015 +0000 ASoC: rsnd: adds struct rsnd_dai_stream as on each fuction as parameter Each Renesas sound mod (= SSI/SRC/DVC) might be called from many paths if it supports MIXer. In such case, mod <-> io is no longer 1:1 relationship. This means we can't call rsnd_mod_to_io() any more. This patch adds struct rsnd_dai_stream to each function as parameter. Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown sound/soc/sh/rcar/core.c | 10 +++++----- sound/soc/sh/rcar/dvc.c | 8 ++++++-- sound/soc/sh/rcar/rsnd.h | 9 +++++++++ sound/soc/sh/rcar/src.c | 12 +++++++++++- sound/soc/sh/rcar/ssi.c | 24 +++++++++++++++++------- 5 files changed, 48 insertions(+), 15 deletions(-) commit 2099bc8eb0b257196a8535fba343cb23a8a6807c Author: Kuninori Morimoto Date: Mon Jun 15 06:24:54 2015 +0000 ASoC: rsnd: rsnd_mod has rsnd_priv Each Renesas sound mod (= SSI/SRC/DVC) might be called from many paths if it supports MIXer. In such case, mod <-> io is no longer 1:1 relationship. This means we can't use rsnd_mod_to_io() in SSI/SRC/DMA interrupt handler. In such case, we need to check all io in interrupt handler, and then, "priv" is needed. This patch adds rsnd_priv pointer in rsnd_mod for prepare it. Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown sound/soc/sh/rcar/core.c | 4 +++- sound/soc/sh/rcar/dvc.c | 2 +- sound/soc/sh/rcar/rsnd.h | 6 ++++-- sound/soc/sh/rcar/src.c | 2 +- sound/soc/sh/rcar/ssi.c | 2 +- 5 files changed, 10 insertions(+), 6 deletions(-) commit 5451ea443bf8889a786ea394ac90a3de5af53e24 Author: Kuninori Morimoto Date: Mon Jun 15 06:24:34 2015 +0000 ASoC: rsnd: count each mod (SSI/SRC/DVC) Each Renesas sound mod (= SSI/SRC/DVC) might be called from many paths if it supports MIXer. Then, we don't need to re-call each mod function that had been called. This patch count each mod status. Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown sound/soc/sh/rcar/core.c | 17 +++++++++++------ sound/soc/sh/rcar/rsnd.h | 41 ++++++++++++++++++++++++++--------------- 2 files changed, 37 insertions(+), 21 deletions(-) commit 047000278da3a17f8cfd9b2662b47500ee84338f Author: Kuninori Morimoto Date: Mon Jun 15 06:24:15 2015 +0000 ASoC: rsrc-card: cleanup for DPCM rsrc-card driver is based on simple-card driver which is caring about CPU / Codec connection. OTOH, rsrc-card is used for DPCM system. FE portion is constituted by CPU and dummy Codec, and BE is constituted by dummy CPU and Codec in DPCM system. Because of this, current rsrc-card is doing pointless method. It works well if FE/BE was 1:1, but not good for multi FE/BE. This patch cleanups rsrc-card driver for DPCM. and this is prepare for MIX support for Renesas sound driver. Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown sound/soc/sh/rcar/rsrc-card.c | 324 ++++++++++++++++++------------------------ 1 file changed, 135 insertions(+), 189 deletions(-) commit 061015f7bfe2e278243bcc9f04346cfc991a5342 Author: Kuninori Morimoto Date: Mon Jun 15 06:23:52 2015 +0000 ASoC: rsrc-card: tidyup return value of clock error Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown sound/soc/sh/rcar/rsrc-card.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit fe3bd18432efd42642c77a1280a22551c6549040 Author: Kuninori Morimoto Date: Mon Jun 15 06:23:30 2015 +0000 ASoC: rsrc-card: move rsrc_card_parse_daifmt() to upper side This is prepare for DPCM cleanup Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown sound/soc/sh/rcar/rsrc-card.c | 70 +++++++++++++++++++++---------------------- 1 file changed, 35 insertions(+), 35 deletions(-) commit 8bd616c4f7717d8049276acc329bf5bd3988ac3b Author: Kuninori Morimoto Date: Mon Jun 15 06:23:08 2015 +0000 ASoC: rsnd-card: tidyup rsrc_priv_to_() Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown sound/soc/sh/rcar/rsrc-card.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 1683e1a4135862c9837b768b1e2ab27623f2161a Author: Kuninori Morimoto Date: Mon Jun 15 06:22:47 2015 +0000 ASoC: rsrc-card: remove unused name Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown sound/soc/sh/rcar/rsrc-card.c | 1 - 1 file changed, 1 deletion(-) commit 3433bf0798356abf2e8b6145ac5633a610c0a8ec Author: Kuninori Morimoto Date: Mon Jun 15 06:22:30 2015 +0000 ASoC: rsrc-card: enable multi cpu/codec for DPCM Current rsrc-card is assuming 1 FE (= CPU), 1 BE (= codec) on card. But, it will support multi FE/BE card. This is prepare for it. Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown sound/soc/sh/rcar/rsrc-card.c | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) commit 3c7e64dd89886af007cb0abbf4523253204c9079 Author: Kuninori Morimoto Date: Mon Jun 15 06:22:05 2015 +0000 ASoC: rsrc-card: tidyup priv->snd_card setup timing Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown sound/soc/sh/rcar/rsrc-card.c | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) commit d72f4a885e9c310e58f9a07ee17516e8328d224d Author: Kuninori Morimoto Date: Mon Jun 15 06:21:34 2015 +0000 ASoC: rsrc-card: used "fe.xxx"/"be.xxx" name for dai_link Current dai_link name is using "cpu_dai_name + codec_dai_name", but one of them is always "snd-soc-dummy-dai" when DPCM. This patch uses "fe.xxx" for cpu, "be.xxx" for codec. Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown sound/soc/sh/rcar/rsrc-card.c | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) commit 75defee0f1b3fcd91d8a304d6444635a459b8249 Author: Kuninori Morimoto Date: Mon Jun 15 06:21:15 2015 +0000 ASoC: rsnd: don't call snd_pcm_period_elapsed() under spin lock 'a9e1ac1a9e4585b5("ASoC: rsnd: spin lock for interrupt handler")' added spin lock under interrupt handler to solve HW restart issue. OTOH, current rsnd driver calls snd_pcm_period_elapsed() from rsnd_dai_pointer_update(). but, it will be called under spin lock if SSI was PIO mode. If it was called under spin lock, it will call snd_pcm_update_state() -> snd_pcm_drain_done(). Then, it calls rsnd_soc_dai_trigger() and will be dead-lock. This patch doesn't call rsnd_dai_pointer_update() under spin lock Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown sound/soc/sh/rcar/core.c | 20 ++++++++++++++++++-- sound/soc/sh/rcar/dma.c | 11 ++++++++++- sound/soc/sh/rcar/rsnd.h | 3 ++- sound/soc/sh/rcar/ssi.c | 6 +++++- 4 files changed, 35 insertions(+), 5 deletions(-) commit 12927a8f80264256e6cb2d3241fe9d6f4ad7face Author: Kuninori Morimoto Date: Mon Jun 15 06:20:54 2015 +0000 ASoC: rsnd: don't care under/over run error when PIO PIO is used only for checking data path / codec settings. And underrun is very normal when PIO mode. Let's don't care about under/over run error when PIO case. Otherwise, 1) too many HW restart happens, 2) some sounds which need much data transfer can't play since it falls into error detection method which was created for DMA transfer Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown sound/soc/sh/rcar/ssi.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) commit 263b39fe33d69da74ae61e594c94eddf75203f7d Author: Laurent Pinchart Date: Wed May 27 16:36:29 2015 +0300 drm: rcar-du: Use the drm atomic state duplication helpers for planes Ensure that the duplicate and destroy plane state operations will always be in sync with the DRM core implementation of the plane state by using the __drm_atomic_helper_plane_duplicate_state() and __drm_atomic_helper_plane_destroy_state() functions designed especially for this purpose. Signed-off-by: Laurent Pinchart drivers/gpu/drm/rcar-du/rcar_du_plane.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 39a3d5706527615db2b7d121b64445e79ca1cc1f Author: Laurent Pinchart Date: Wed May 27 02:14:37 2015 +0300 drm: rcar-du: Clean up planes in the error paths of .atomic_commit() When the .atomic_commit() handler fails, clean up planes previoulsy prepared by drm_atomic_helper_prepare_planes() with a call to drm_atomic_helper_cleanup_planes(). Signed-off-by: Laurent Pinchart drivers/gpu/drm/rcar-du/rcar_du_kms.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit 898a2f387d1c663772c630e8f78ef60f1639077e Author: Laurent Pinchart Date: Tue May 26 15:07:56 2015 +0300 drm: rcar-du: Convert rcar_du_encoders_init_one() return value to 0/<0 The function returns 1 on success, and either 0 or a negative error code on failure. As the 0 and negative values don't need to be differentiated by the caller, convert it to the usual scheme of returning 0 on success and a negative error code on failure. Signed-off-by: Laurent Pinchart drivers/gpu/drm/rcar-du/rcar_du_kms.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 64549cdf85a113270729aa123aa475cec7249a0f Author: Laurent Pinchart Date: Tue May 26 14:59:42 2015 +0300 drm: rcar-du: Clarify error message when encoder initialization fails A failure to initialize an encoder currently prints an error message in the kernel log without mentioning which encoder failed to initialize. To help debugging initialization issues print the encoder DT node name. This requires moving the error message to the rcar_du_encoders_init_one function and refactoring it slightly. Signed-off-by: Laurent Pinchart drivers/gpu/drm/rcar-du/rcar_du_kms.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit d6aed57481c5b746f91792c8a977f537c09e52c5 Author: Laurent Pinchart Date: Mon May 25 16:32:45 2015 +0300 drm: rcar-du: Fix crash with groups that have less than 9 planes Commit 917de180379d ("drm: rcar-du: Implement universal plane support") made the number of planes per group dynamic, but didn't update all loops over the planes array, resulting in out-of-bound accesses on DU instances that have an odd number of CRTCs (such as the R8A7790). Fix it. Fixes: 917de180379d ("drm: rcar-du: Implement universal plane support") Cc: stable@vger.kernel.org Signed-off-by: Laurent Pinchart drivers/gpu/drm/rcar-du/rcar_du_crtc.c | 4 ++-- drivers/gpu/drm/rcar-du/rcar_du_group.h | 2 ++ drivers/gpu/drm/rcar-du/rcar_du_kms.c | 2 +- drivers/gpu/drm/rcar-du/rcar_du_plane.c | 5 ++--- 4 files changed, 7 insertions(+), 6 deletions(-) commit 911316fe2f4113a096b9975f2467fc501864aef0 Author: Laurent Pinchart Date: Thu May 14 15:01:47 2015 +0300 drm: rcar-du: Disable all planes when stopping the CRTC The DSnPR plane configuration registers are updated on vblank, and no vblank will occur once the CRTC is stopped. We thus can't only disable planes right before starting the CRTC as it would start scanning out immediately from old frame buffers until the next vblank. Fix the problem by disabling all planes when stopping the CRTC and wait for the change to take effect. This increases the CRTC stop delay, especially when multiple CRTCs are stopped in one operation as we now wait for one vblank per CRTC. Whether this can be improved needs to be researched. Signed-off-by: Laurent Pinchart drivers/gpu/drm/rcar-du/rcar_du_crtc.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 6e0c6e1895b9fff3cdb6ef746ee3d8dd4e852f40 Author: Laurent Pinchart Date: Thu May 14 01:08:34 2015 +0300 drm: rcar-du: Print the error value when DRM/KMS init fails This helps debugging probe failures. Signed-off-by: Laurent Pinchart drivers/gpu/drm/rcar-du/rcar_du_drv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e92a4047419c805d08ad136fbc72368249d9f091 Author: Stephen Boyd Date: Fri Jun 12 15:47:10 2015 -0700 regulator: Add QCOM SPMI regulator driver Add an SPMI regulator driver for Qualcomm's PM8841, PM8941, and PM8916 PMICs. This driver is based largely on code from codeaurora.org[1]. [1] https://www.codeaurora.org/cgit/quic/la/kernel/msm-3.10/tree/drivers/regulator/qpnp-regulator.c?h=msm-3.10 Cc: David Collins Cc: Signed-off-by: Stephen Boyd Signed-off-by: Mark Brown .../bindings/regulator/qcom,spmi-regulator.txt | 121 ++ drivers/regulator/Kconfig | 11 + drivers/regulator/Makefile | 1 + drivers/regulator/qcom_spmi-regulator.c | 1437 ++++++++++++++++++++ 4 files changed, 1570 insertions(+) commit 0b2d71175990629f11189f5df98cc0c26ae61993 Merge: cf8a471 145c0e9 Author: Takashi Iwai Date: Tue Jun 16 12:47:34 2015 +0200 Merge branch 'for-linus' into for-next Yet another non-trivial conflicts for HDA legacy stuff. Signed-off-by: Takashi Iwai commit 6c6685055a285de53f18fbf6611687291b57ccd6 Author: Luis R. Rodriguez Date: Wed May 20 11:53:39 2015 -0700 kconfig: add xenconfig defconfig helper This lets you build a kernel which can support xen dom0 or xen guests on i386, x86-64 and arm64 by just using: make xenconfig You can start from an allnoconfig and then switch to xenconfig. This also splits out the options which are available currently to be built with x86 and 'make ARCH=arm64' under a shared config. Technically xen supports a dom0 kernel and also a guest kernel configuration but upon review with the xen team since we don't have many dom0 options its best to just combine these two into one. A few generic notes: we enable both of these: CONFIG_INET=y CONFIG_BINFMT_ELF=y although technically not required given you likely will end up with a pretty useless system otherwise. A few architectural differences worth noting: $ make allnoconfig; make xenconfig > /dev/null ; \ grep XEN .config > 64-bit-config $ make ARCH=i386 allnoconfig; make ARCH=i386 xenconfig > /dev/null; \ grep XEN .config > 32-bit-config $ make ARCH=arm64 allnoconfig; make ARCH=arm64 xenconfig > /dev/null; \ grep XEN .config > arm64-config Since the options are already split up with a generic config and architecture specific configs you anything on the x86 configs are known to only work right now on x86. For instance arm64 doesn't support MEMORY_HOTPLUG yet as such although we try to enabe it generically arm64 doesn't have it yet, so we leave the xen specific kconfig option XEN_BALLOON_MEMORY_HOTPLUG on x86's config file to set expecations correctly. Then on x86 we have differences between i386 and x86-64. The difference between 64-bit-config and 32-bit-config is you don't get XEN_MCE_LOG as this is only supported on 64-bit. You also do not get on i386 XEN_BALLOON_MEMORY_HOTPLUG, there does not seem to be any technical reasons to not allow this but I gave up after a few attempts. Cc: Josh Triplett Cc: Borislav Petkov Cc: Pekka Enberg Cc: David Rientjes Cc: Michal Marek Cc: Randy Dunlap Cc: penberg@kernel.org Cc: levinsasha928@gmail.com Cc: mtosatti@redhat.com Cc: fengguang.wu@intel.com Cc: David Vrabel Cc: Ian Campbell Cc: Konrad Rzeszutek Wilk Cc: xen-devel@lists.xenproject.org Acked-by: Stefano Stabellini Acked-by: Julien Grall Acked-by: Michal Marek Acked-by: David Rientjes Reviewed-by: Josh Triplett Signed-off-by: Luis R. Rodriguez Signed-off-by: David Vrabel arch/x86/configs/xen.config | 28 ++++++++++++++++++++++++++ kernel/configs/xen.config | 48 +++++++++++++++++++++++++++++++++++++++++++++ scripts/kconfig/Makefile | 5 +++++ 3 files changed, 81 insertions(+) commit 9bcd776d299e8adb8ed37be0453472aa3cc2b7db Author: Luis R. Rodriguez Date: Wed May 20 11:53:38 2015 -0700 kconfig: clarify kvmconfig is for kvm We'll be adding options for xen as well. Cc: Josh Triplett Cc: Borislav Petkov Cc: Pekka Enberg Cc: David Rientjes Cc: Michal Marek Cc: Randy Dunlap Cc: penberg@kernel.org Cc: levinsasha928@gmail.com Cc: mtosatti@redhat.com Cc: fengguang.wu@intel.com Cc: David Vrabel Cc: Ian Campbell Cc: Konrad Rzeszutek Wilk Cc: xen-devel@lists.xenproject.org Reviewed-by: Josh Triplett Acked-by: David Rientjes Acked-by: Borislav Petkov Acked-by: Michal Marek Signed-off-by: Luis R. Rodriguez Signed-off-by: David Vrabel scripts/kconfig/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6fd4899a54a522ccd6a24fea2318d3b515b95945 Author: Javier Martinez Canillas Date: Fri Jun 12 07:43:15 2015 +0200 irqchip: exynos-combiner: Save IRQ enable set on suspend The Exynos interrupt combiner IP loses its state when the SoC enters into a low power state during a Suspend-to-RAM. This means that if a IRQ is used as a source, the interrupts for the devices are disabled when the system is resumed from a sleep state so are not triggered. Save the interrupt enable set register for each combiner group and restore it after resume to make sure that the interrupts are enabled. Signed-off-by: Javier Martinez Canillas Reviewed-by: Krzysztof Kozlowski Cc: Jason Cooper Cc: Kukjin Kim Cc: Tomasz Figa Cc: Doug Anderson Cc: linux-arm-kernel@lists.infradead.org Cc: Peter Chubb Cc: Shuah Khan Cc: Chanho Park Cc: Sudeep Holla Link: http://lkml.kernel.org/r/1434087795-13990-1-git-send-email-javier.martinez@collabora.co.uk Signed-off-by: Thomas Gleixner drivers/irqchip/exynos-combiner.c | 64 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 59 insertions(+), 5 deletions(-) commit d5084f1711c8917d48006e19099060b3b8387bb5 Author: Dave Airlie Date: Tue Jun 16 15:42:13 2015 +1000 virtio-gpu: add locking for vbuf pool Signed-off-by: Dave Airlie Signed-off-by: Gerd Hoffmann drivers/gpu/drm/virtio/virtgpu_drv.h | 1 + drivers/gpu/drm/virtio/virtgpu_vq.c | 7 +++++++ 2 files changed, 8 insertions(+) commit 441012aff674c8d2d9b371e1a19320de38eecc84 Author: Dave Airlie Date: Tue Jun 16 14:25:34 2015 +1000 drm/virtgpu: initialise fbdev after getting initial display info This should avoid issues with the fbdev path trying to render before we've gotten the display info. Signed-off-by: Dave Airlie [ kraxel: wait for display-info reply ] Signed-off-by: Gerd Hoffmann drivers/gpu/drm/virtio/virtgpu_drv.h | 1 + drivers/gpu/drm/virtio/virtgpu_kms.c | 4 +++- drivers/gpu/drm/virtio/virtgpu_vq.c | 2 ++ 3 files changed, 6 insertions(+), 1 deletion(-) commit 50cb941a26b9311c39ba59567fcfad48f5eab4a3 Author: Gerd Hoffmann Date: Thu Mar 26 16:29:29 2015 +0100 Add virtio-vga bits. drivers/gpu/drm/virtio/virtgpu_drm_bus.c | 44 +++++++++++++++++--------------- 1 file changed, 24 insertions(+), 20 deletions(-) commit 38e003f4b5dc405158b9ce625d8cc2b336d45497 Author: Daniel Lockyer Date: Wed Jun 10 14:26:27 2015 +0100 gpio: Fix checkpatch.pl issues This patch fixes some issues given by checkpatch. Fixes include bracket placement, spacing and indenting. Signed-off-by: Daniel Lockyer Reviewed-by: Alexandre Courbot Signed-off-by: Linus Walleij drivers/gpio/gpio-altera.c | 3 ++- drivers/gpio/gpio-crystalcove.c | 3 +-- drivers/gpio/gpio-f7188x.c | 4 ++-- drivers/gpio/gpio-it8761e.c | 2 +- drivers/gpio/gpiolib.c | 17 +++++++---------- 5 files changed, 13 insertions(+), 16 deletions(-) commit 571dbbd4d044e11c78bc077acb3ccef4c77b096e Author: Joerg Roedel Date: Fri Jun 12 15:15:34 2015 +0200 iommu/vt-d: Don't disable IR when it was previously enabled Keep it enabled in kdump kernel to guarantee interrupt delivery. Tested-by: ZhenHua Li Tested-by: Baoquan He Signed-off-by: Joerg Roedel drivers/iommu/intel_irq_remapping.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 7c3c9876d98a76b97d16c0f46cb108e95542b212 Author: Joerg Roedel Date: Fri Jun 12 15:06:26 2015 +0200 iommu/vt-d: Make sure copied over IR entries are not reused Walk over the copied entries and mark the present ones as allocated. Tested-by: ZhenHua Li Tested-by: Baoquan He Signed-off-by: Joerg Roedel drivers/iommu/intel_irq_remapping.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit af3b358e48115588d905cc07a47b3f356e0d01d1 Author: Joerg Roedel Date: Fri Jun 12 15:00:21 2015 +0200 iommu/vt-d: Copy IR table from old kernel when in kdump mode When we are booting into a kdump kernel and find IR enabled, copy over the contents of the previous IR table so that spurious interrupts will not be target aborted. Tested-by: ZhenHua Li Tested-by: Baoquan He Signed-off-by: Joerg Roedel drivers/iommu/intel_irq_remapping.c | 70 +++++++++++++++++++++++++++++++++++++ include/linux/intel-iommu.h | 1 + 2 files changed, 71 insertions(+) commit d4d1c0f3d6a9558fe3857853afdf2f93e1679c03 Author: Joerg Roedel Date: Fri Jun 12 14:35:54 2015 +0200 iommu/vt-d: Set IRTA in intel_setup_irq_remapping This way we can give the hardware the new IR table right after it has been allocated and initialized. Tested-by: ZhenHua Li Tested-by: Baoquan He Signed-off-by: Joerg Roedel drivers/iommu/intel_irq_remapping.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) commit c676f5876bc088ace35ece98042a3be6d8329530 Author: Joerg Roedel Date: Fri Jun 12 14:25:53 2015 +0200 iommu/vt-d: Disable IRQ remapping in intel_prepare_irq_remapping Move it to this function for now, so that the copy routines for irq remapping take no effect yet. Tested-by: ZhenHua Li Tested-by: Baoquan He Signed-off-by: Joerg Roedel drivers/iommu/intel_irq_remapping.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 9e4e49dfde3bfac48d431893863ac3b9d3f3774a Author: Joerg Roedel Date: Fri Jun 12 14:23:56 2015 +0200 iommu/vt-d: Move QI initializationt to intel_setup_irq_remapping QI needs to be enabled when we program the irq remapping table to hardware in the prepare phase later. Tested-by: ZhenHua Li Tested-by: Baoquan He Signed-off-by: Joerg Roedel drivers/iommu/intel_irq_remapping.c | 92 ++++++++++++++----------------------- 1 file changed, 35 insertions(+), 57 deletions(-) commit 23256d0b350014a05c1edf0f355546aa1ff2eb55 Author: Joerg Roedel Date: Fri Jun 12 14:15:49 2015 +0200 iommu/vt-d: Move EIM detection to intel_prepare_irq_remapping We need this to be detected already when we program the irq remapping table pointer to hardware. Tested-by: ZhenHua Li Tested-by: Baoquan He Signed-off-by: Joerg Roedel drivers/iommu/intel_irq_remapping.c | 47 +++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 23 deletions(-) commit 8939ddf6d65264cf9f014ffd7c9bff02ad9626e6 Author: Joerg Roedel Date: Fri Jun 12 14:40:01 2015 +0200 iommu/vt-d: Enable Translation only if it was previously disabled Do not touch the TE bit unless we know translation is disabled. Tested-by: ZhenHua Li Tested-by: Baoquan He Signed-off-by: Joerg Roedel drivers/iommu/intel-iommu.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 60b523ecfede05796aa77024b3960fecabab4de7 Author: Joerg Roedel Date: Fri Jun 12 12:44:33 2015 +0200 iommu/vt-d: Don't disable translation prior to OS handover For all the copy-translation code to run, we have to keep translation enabled in intel_iommu_init(). So remove the code disabling it. Tested-by: ZhenHua Li Tested-by: Baoquan He Signed-off-by: Joerg Roedel drivers/iommu/intel-iommu.c | 7 ------- 1 file changed, 7 deletions(-) commit c3361f2f6e1d64bc7e7b8148bbd1c66b8007a898 Author: Joerg Roedel Date: Fri Jun 12 12:39:25 2015 +0200 iommu/vt-d: Don't copy translation tables if RTT bit needs to be changed We can't change the RTT bit when translation is enabled, so don't copy translation tables when we would change the bit with our new root entry. Tested-by: ZhenHua Li Tested-by: Baoquan He Signed-off-by: Joerg Roedel drivers/iommu/intel-iommu.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit a87f491890e994dca4bee64690d7e5183a19264e Author: Joerg Roedel Date: Fri Jun 12 12:32:54 2015 +0200 iommu/vt-d: Don't do early domain assignment if kdump kernel When we copied over context tables from an old kernel, we need to defer assignment of devices to domains until the device driver takes over. So skip this part of initialization when we copied over translation tables from the old kernel. Tested-by: ZhenHua Li Tested-by: Baoquan He Signed-off-by: Joerg Roedel drivers/iommu/intel-iommu.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 86080ccc223aabf8d0b85a504f4f06aa88e82fb3 Author: Joerg Roedel Date: Fri Jun 12 12:27:16 2015 +0200 iommu/vt-d: Allocate si_domain in init_dmars() This seperates the allocation of the si_domain from its assignment to devices. It makes sure that the iommu=pt case still works in the kdump kernel, when we have to defer the assignment of devices to domains to device driver initialization time. Tested-by: ZhenHua Li Tested-by: Baoquan He Signed-off-by: Joerg Roedel drivers/iommu/intel-iommu.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) commit cf484d0e6939ce287e65880ffe48860165fe5cb5 Author: Joerg Roedel Date: Fri Jun 12 12:21:46 2015 +0200 iommu/vt-d: Mark copied context entries Mark the context entries we copied over from the old kernel, so that we don't detect them as present in other code paths. This makes sure we safely overwrite old context entries when a new domain is assigned. Tested-by: ZhenHua Li Tested-by: Baoquan He Signed-off-by: Joerg Roedel drivers/iommu/intel-iommu.c | 53 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 51 insertions(+), 2 deletions(-) commit dbcd861f252d727ac856a3da2cba8a480a36ab2e Author: Joerg Roedel Date: Fri Jun 12 12:02:09 2015 +0200 iommu/vt-d: Do not re-use domain-ids from the old kernel Mark all domain-ids we find as reserved, so that there could be no collision between domains from the previous kernel and our domains in the IOMMU TLB. Tested-by: ZhenHua Li Tested-by: Baoquan He Signed-off-by: Joerg Roedel drivers/iommu/intel-iommu.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit 091d42e43d21b6ca7ec39bf5f9e17bc0bd8d4312 Author: Joerg Roedel Date: Fri Jun 12 11:56:10 2015 +0200 iommu/vt-d: Copy translation tables from old kernel If we are in a kdump kernel and find translation enabled in the iommu, try to copy the translation tables from the old kernel to preserve the mappings until the device driver takes over. This supports old and the extended root-entry and context-table formats. Tested-by: ZhenHua Li Tested-by: Baoquan He Signed-off-by: Joerg Roedel drivers/iommu/intel-iommu.c | 207 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 205 insertions(+), 2 deletions(-) commit 4158c2eca3c77ed3cccdcaeab153aad4e433369c Author: Joerg Roedel Date: Fri Jun 12 10:14:02 2015 +0200 iommu/vt-d: Detect pre enabled translation Add code to detect whether translation is already enabled in the IOMMU. Save this state in a flags field added to struct intel_iommu. Tested-by: ZhenHua Li Tested-by: Baoquan He Signed-off-by: Joerg Roedel drivers/iommu/intel-iommu.c | 19 +++++++++++++++++++ include/linux/intel-iommu.h | 4 ++++ 2 files changed, 23 insertions(+) commit 5f0a7f7614a9d99325ac8d618f1cdf7a3014287c Author: Joerg Roedel Date: Fri Jun 12 09:18:53 2015 +0200 iommu/vt-d: Make root entry visible for hardware right after allocation In case there was an old root entry, make our new one visible immediately after it was allocated. Tested-by: ZhenHua Li Tested-by: Baoquan He Signed-off-by: Joerg Roedel drivers/iommu/intel-iommu.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit b63d80d1e01e949dbe469e1d72fc0b7e173dbdd8 Author: Joerg Roedel Date: Fri Jun 12 09:14:34 2015 +0200 iommu/vt-d: Init QI before root entry is allocated QI needs to be available when we write the root entry into hardware because flushes might be necessary after this. Tested-by: ZhenHua Li Tested-by: Baoquan He Signed-off-by: Joerg Roedel drivers/iommu/intel-iommu.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 9f10e5bf62f7b9937afeee8ff0a491f87438e2a2 Author: Joerg Roedel Date: Fri Jun 12 09:57:06 2015 +0200 iommu/vt-d: Cleanup log messages Give them a common prefix that can be grepped for and improve the wording here and there. Tested-by: ZhenHua Li Tested-by: Baoquan He Signed-off-by: Joerg Roedel drivers/iommu/dmar.c | 28 +++---- drivers/iommu/intel-iommu.c | 154 +++++++++++++++++------------------- drivers/iommu/intel_irq_remapping.c | 29 ++++--- 3 files changed, 101 insertions(+), 110 deletions(-) commit 84f28998cc96546bb0733d2c238b23f38442ed89 Author: Grygorii Strashko Date: Thu Jun 11 00:01:09 2015 +0300 gpio: pcf857x: handle only enabled irqs Now pcf857x_irq() IRQ's dispatcher will try to run nested IRQ handlers for each GPIO pin which state has changed. Such IRQs are, actually, spurious and nested IRQ handlers have to be called only for IRQs wich were enabled by users. This is not critical issue - just /proc/interrupts will display counters for unused IRQS: 399: 4 0 pcf857x 0 Edge 428: 1 0 pcf857x 13 Edge 430: 1 0 pcf857x 15 Edge Hence, fix it by adding irq_enabled field in struct pcf857x to track enabled GPIO IRQs and corresponding callbacks in pcf857x_irq_chip. Similar functionality was presented in pcf857x driver, commit 21fd3cd1874a ('gpio: pcf857x: call the gpio user handler iff...') and then it was removed by commit a39294bdf4b0 ('gpio: pcf857x: Switch to use gpiolib irqchip...') Cc: Geert Uytterhoeven Fixes: a39294bdf4b0 ('gpio: pcf857x: Switch to use gpiolib irqchip helpers') Signed-off-by: Grygorii Strashko Signed-off-by: Linus Walleij drivers/gpio/gpio-pcf857x.c | 46 ++++++++++++++++++++++++++++++++++----------- 1 file changed, 35 insertions(+), 11 deletions(-) commit 7ac91bda80a05122ca86240b1da3a68a4cdaa982 Author: Shinobu Uehara Date: Sat Jun 6 01:36:50 2015 +0300 pinctrl: sh-pfc: r8a7794: add SDHI pin groups Add SDHI0/1/2 pin groups to R8A7794 PFC driver. Signed-off-by: Shinobu Uehara [Sergei: renamed SD data pins to match the driver, 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 | 153 +++++++++++++++++++++++++++++++++++ 1 file changed, 153 insertions(+) commit f1f74b640c952e311aebaa594d9d81fecb72cc17 Author: Shinobu Uehara Date: Sat Jun 6 01:35:54 2015 +0300 pinctrl: sh-pfc: r8a7794: add MMCIF pin groups Add MMCIF 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 | 46 ++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) commit 43c4436e2f1890a7b28dc0f0d901866cda99a08c Author: Hisashi Nakamura Date: Sat Jun 6 01:34:48 2015 +0300 pinctrl: sh-pfc: add R8A7794 PFC support Add PFC support for the R8A7794 SoC including pin groups for some on-chip devices such as ETH, I2C, INTC, MSIOF, QSPI, [H]SCIF... Sergei: squashed together several patches, fixed the MLB_CLK typo, added IRQ4.. IRQ9 pin groups, fixed IRQn comments, added ETH B pin group names, removed stray new line and fixed typos in the comments in the pinmux_config_regs[] initializer, removed the platform device ID, took into account limited number of signals in the GPIO1/5/6 controllers, added reasonable and removed unreasonable copyrights, modified the bindings document, renamed, added changelog. Changes in version 5: - resolved rejects, refreshed the patch; - added Laurent Pinchart's ACK. Changes in version 4: - reused the PORT_GP_26() macro to #define PORT_GP_28(). Changes in version 3: - removed the platform device ID; - added PORT_GP_26() and PORT_GP_28() macros, used them for GPIO1/5/6 in the CPU_ALL_PORT() macro. Changes in version 2: - rebased the patch. Signed-off-by: Hisashi Nakamura Signed-off-by: Sergei Shtylyov Acked-by: Laurent Pinchart Signed-off-by: Linus Walleij .../bindings/pinctrl/renesas,pfc-pinctrl.txt | 1 + drivers/pinctrl/sh-pfc/Kconfig | 5 + drivers/pinctrl/sh-pfc/Makefile | 1 + drivers/pinctrl/sh-pfc/core.c | 6 + drivers/pinctrl/sh-pfc/core.h | 1 + drivers/pinctrl/sh-pfc/pfc-r8a7794.c | 4008 ++++++++++++++++++++ 6 files changed, 4022 insertions(+) commit 40b503c76481aecf811a29a14a80c13b429b5e14 Author: Arend van Spriel Date: Mon Jun 15 22:48:39 2015 +0200 brcmfmac: make brcmf_p2p_detach() call conditional During verification of error handling in brcmf_cfg80211_attach() a null pointer dereference occurred upon calling brcmf_p2p_detach() from brcmf_detach(). This should only be called when the brcmf_cfg80211_attach() has succeeded. Fixes: f7a40873d2fa ("brcmfmac: assure p2pdev is unregistered upon driver unload") 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/core.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit cb700df8c8a62061b573322c4d0b292a9010aa3c Author: Arend van Spriel Date: Mon Jun 15 22:48:38 2015 +0200 brcmfmac: fix double free of p2pdev interface When freeing the driver ifp pointer it should also be removed from the driver interface list, which is what brcmf_remove_interface() does. Otherwise, the ifp pointer will be freed twice triggering a kernel oops. Fixes: f37d69a4babc ("brcmfmac: free ifp for non-netdev interface in p2p module") Reviewed-by: Pieter-Paul Giesberts Reviewed-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo drivers/net/wireless/brcm80211/brcmfmac/p2p.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 323d8f1be18e7cef53027c24e46308900dc7a90c Author: Amitkumar Karwar Date: Mon Jun 15 04:03:35 2015 -0700 mwifiex: add missing break statement in switch case This patch adds missing break statement at the end of EVENT_BT_COEX_WLAN_PARA_CHANGE switch section. Signed-off-by: Amitkumar Karwar Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/sta_event.c | 1 + 1 file changed, 1 insertion(+) commit f6b1464f647424bbeb609ec832428e4079940701 Author: Jiang Liu Date: Mon Jun 1 16:05:11 2015 +0800 genirq: Prevent crash in irq_move_irq() The functions irq_move_irq() and irq_move_masked_irq() expect that the caller passes the top-level irq_data to them when hierarchical irqdomains are enabled. But that's not true when called from apic_ack_edge(), which results in a null pointer dereference by idata->chip->irq_mask(idata). Instead of fixing callers to passing top-level irq_data, we rather change irq_move_irq()/irq_move_masked_irq() to accept any irq_data. Fixes: 52f518a3a7c 'x86/MSI: Use hierarchical irqdomains to manage MSI interrupts' Reported-by: Huang Ying Signed-off-by: Jiang Liu Cc: Konrad Rzeszutek Wilk Cc: Tony Luck Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Link: http://lkml.kernel.org/r/1433145945-789-3-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner kernel/irq/migration.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit c7cfc94096db28d3072b402c224eb50349926e24 Author: Jiang Liu Date: Mon Jun 1 16:05:10 2015 +0800 genirq: Enhance irq_data_to_desc() to support hierarchy irqdomain For irq associated with hierarchy irqdomains, there will be multiple irq_datas for one irq_desc. So enhance irq_data_to_desc() to support hierarchy irqdomain. Also export irq_data_to_desc() as an inline function for later reuse. 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: Marc Zyngier Link: http://lkml.kernel.org/r/1433145945-789-2-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner include/linux/irqdesc.h | 9 +++++++++ kernel/irq/internals.h | 2 -- 2 files changed, 9 insertions(+), 2 deletions(-) commit 6876f98bfe7751a9ee0cd88390912df305e25183 Author: Oded Gabbay Date: Fri Jun 12 11:12:49 2015 +0300 drm/radeon: remove obsolete kfd_bo from radeon_device Signed-off-by: Oded Gabbay drivers/gpu/drm/radeon/radeon.h | 1 - 1 file changed, 1 deletion(-) commit 4c31d50d3ee67b4fdc1824ed51b6f707681d0136 Author: Chaotian Jing Date: Mon Jun 15 19:20:47 2015 +0800 mmc: dt-bindings: add Mediatek MMC bindings Document the device-tree binding of Mediatek MMC host Signed-off-by: Chaotian Jing Signed-off-by: Ulf Hansson Documentation/devicetree/bindings/mmc/mtk-sd.txt | 32 ++++++++++++++++++++++++ 1 file changed, 32 insertions(+) commit 316058134ffa0017199b460318e109aa79432cc6 Author: Hannes Reinecke Date: Thu Jun 11 10:01:25 2015 +0200 target: Remove 'ua_nacl' pointer from se_ua structure Unused. Signed-off-by: Hannes Reinecke Signed-off-by: Nicholas Bellinger drivers/target/target_core_ua.c | 1 - include/target/target_core_base.h | 1 - 2 files changed, 2 deletions(-) commit ee8c07d0c32622b6fa44108b0141434575e43188 Author: Hannes Reinecke Date: Thu Jun 11 10:01:24 2015 +0200 target_core_alua: Correct UA handling when switching states When switching target port group ALUA states we need to send one UA when setting the ALUA state to 'transitioning', and another one once the final state has been set. Signed-off-by: Hannes Reinecke Signed-off-by: Nicholas Bellinger drivers/target/target_core_alua.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) commit 0fb1f14e88f6f814fc578d0b8b3de666d1c9327e Author: Nicholas Bellinger Date: Tue Jun 16 00:37:16 2015 -0700 xen-scsiback: Fix compile warning for 64-bit LUN drivers/xen/xen-scsiback.c: In function ‘scsiback_add_translation_entry’: drivers/xen/xen-scsiback.c:911:3: warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘long long unsigned int’ [-Wformat] Signed-off-by: Nicholas Bellinger drivers/xen/xen-scsiback.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9f5ddefdc979d7b71aa4d3d7cc456c76fee80fda Author: Vladimir Murzin Date: Fri Jun 12 14:59:19 2015 +0100 fbdev: propagate result of fb_videomode_from_videomode() fb_videomode_from_videomode() may fail, but of_get_fb_videomode() silently covers this fact. Instead, trow the error code to the caller. Signed-off-by: Vladimir Murzin Signed-off-by: Tomi Valkeinen drivers/video/fbdev/core/fbmon.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 29535f7b797df35cc9b6b3bca635591cdd3dd2a8 Author: Ding Wang Date: Mon May 18 20:14:15 2015 +0800 mmc: card: Fixup request missing in mmc_blk_issue_rw_rq The current handler of MMC_BLK_CMD_ERR in mmc_blk_issue_rw_rq function may cause new coming request permanent missing when the ongoing request (previoulsy started) complete end. The problem scenario is as follows: (1) Request A is ongoing; (2) Request B arrived, and finally mmc_blk_issue_rw_rq() is called; (3) Request A encounters the MMC_BLK_CMD_ERR error; (4) In the error handling of MMC_BLK_CMD_ERR, suppose mmc_blk_cmd_err() end request A completed and return zero. Continue the error handling, suppose mmc_blk_reset() reset device success; (5) Continue the execution, while loop completed because variable ret is zero now; (6) Finally, mmc_blk_issue_rw_rq() return without processing request B. The process related to the missing request may wait that IO request complete forever, possibly crashing the application or hanging the system. Fix this issue by starting new request when reset success. Signed-off-by: Ding Wang Fixes: 67716327eec7 ("mmc: block: add eMMC hardware reset support") Signed-off-by: Ulf Hansson drivers/mmc/card/block.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 62a7f368ffbc13d9aedfdd7aeae711b177db69ac Author: Jiri Slaby Date: Fri Jun 12 11:45:02 2015 +0200 mmc: sdhci: fix low memory corruption When dma mapping (dma_map_sg) fails in sdhci_pre_dma_transfer, -EINVAL is returned. There are 3 callers of sdhci_pre_dma_transfer: * sdhci_pre_req and sdhci_adma_table_pre: handle negative return * sdhci_prepare_data: handles 0 (error) and "else" (good) only sdhci_prepare_data is therefore broken. When it receives -EINVAL from sdhci_pre_dma_transfer, it assumes 1 sg mapping was mapped. Later, this non-existent mapping with address 0 is kmap'ped and written to: Corrupted low memory at ffff880000001000 (1000 phys) = 22b7d67df2f6d1cf Corrupted low memory at ffff880000001008 (1008 phys) = 63848a5216b7dd95 Corrupted low memory at ffff880000001010 (1010 phys) = 330eb7ddef39e427 Corrupted low memory at ffff880000001018 (1018 phys) = 8017ac7295039bda Corrupted low memory at ffff880000001020 (1020 phys) = 8ce039eac119074f ... So teach sdhci_prepare_data to understand negative return values from sdhci_pre_dma_transfer and disable DMA in that case, as well as for zero. It was introduced in 348487cb28e66b032bae1b38424d81bf5b444408 (mmc: sdhci: use pipeline mmc requests to improve performance). The commit seems to be suspicious also by assigning host->sg_count both in sdhci_pre_dma_transfer and sdhci_adma_table_pre. Signed-off-by: Jiri Slaby Cc: stable@vger.kernel.org # 4.0+ Fixes: 348487cb28e6 Cc: Ulf Hansson Cc: Haibo Chen Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b5e97d6e58617b9d6a3838ede6ccd3883035dbf3 Author: Vincent Wan Date: Thu Jun 11 20:11:47 2015 +0800 mmc: sdhci-pci: Change AMD SDHCI quirk application scope Change this quirk to apply to AMD Carrizo platform. Signed-off-by: Wan ZongShun Tested-by: Nath, Arindam Tested-by: Ramesh, Ramya Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-pci.c | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) commit bcb299947f5d77393d84f493b4857bcd7308e6dd Author: Vincent Wan Date: Thu Jun 11 20:11:46 2015 +0800 i2c-piix4: Use Macro for AMD CZ SMBus device ID Change AMD CZ SMBUS device ID from 0x790b to use Macro definition Signed-off-by: Wan ZongShun Acked-by: Wolfram Sang Acked-by: Jean Delvare Signed-off-by: Ulf Hansson drivers/i2c/busses/i2c-piix4.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 73cb9dc0cd8d220de24fe078f7eadc4945a939ef Author: Joe Perches Date: Sun Jun 14 19:01:37 2015 -0700 m68k: Use vsprintf %pM extension Format mac addresses with the normal kernel extension. Signed-off-by: Joe Perches Signed-off-by: Greg Ungerer arch/m68k/68000/m68EZ328.c | 3 +-- arch/m68k/68000/m68VZ328.c | 3 +-- arch/m68k/68360/config.c | 3 +-- 3 files changed, 3 insertions(+), 6 deletions(-) commit 127b0c94cfa6e36c835adf6e27e056ff14818dc3 Author: Luis R. Rodriguez Date: Thu Jun 4 09:44:48 2015 -0700 video: fbdev: vesafb: use arch_phys_wc_add() This driver uses the same area for MTRR as for the ioremap_wc(), if anything it just uses a smaller size in case MTRR reservation fails. ioremap_wc() API is already used to take advantage of architecture write-combining when available. Convert the driver from using the x86 specific MTRR code to the architecture agnostic arch_phys_wc_add(). arch_phys_wc_add() will avoid MTRR if write-combining is available. 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 its 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 #ifdery 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); Generated-by: Coccinelle SmPL Cc: Toshi Kani Cc: Suresh Siddha Cc: Ingo Molnar Cc: Thomas Gleixner Cc: Juergen Gross Cc: Daniel Vetter Cc: Andy Lutomirski Cc: Dave Airlie Cc: Antonino Daplas Cc: Jean-Christophe Plagniol-Villard Cc: Rob Clark Cc: Jingoo Han Cc: Wolfram Sang Cc: Tomi Valkeinen Cc: linux-fbdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Luis R. Rodriguez Signed-off-by: Tomi Valkeinen drivers/video/fbdev/vesafb.c | 29 ++++++++--------------------- 1 file changed, 8 insertions(+), 21 deletions(-) commit 6b41f27dce701f2be0c47e7f42a885afa6f23477 Author: Luis R. Rodriguez Date: Thu Jun 4 09:44:47 2015 -0700 video: fbdev: vesafb: add missing mtrr_del() for added MTRR The MTRR added was never being deleted, in order to store the MTRR cookie we need to make use of the private info->par so we create a struct for this. This driver was already using the extra space typically used for info->par for the info->pseudo_palette which typically used stuffed on driver's own private structs (the respective info->par), so we just move the pseudo_palette into the private struct as well. Cc: Toshi Kani Cc: Suresh Siddha Cc: Ingo Molnar Cc: Thomas Gleixner Cc: Juergen Gross Cc: Daniel Vetter Cc: Andy Lutomirski Cc: Dave Airlie Cc: Antonino Daplas Cc: Rob Clark Cc: Jingoo Han Cc: Wolfram Sang Cc: Jean-Christophe Plagniol-Villard Cc: Tomi Valkeinen Cc: linux-fbdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Luis R. Rodriguez Signed-off-by: Tomi Valkeinen drivers/video/fbdev/vesafb.c | 33 ++++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) commit 87b81762a893319921405ad6932f220c02ca88a7 Author: Luis R. Rodriguez Date: Thu Jun 4 09:44:46 2015 -0700 video: fbdev: vesafb: only support MTRR_TYPE_WRCOMB No other video driver uses MTRR types except for MTRR_TYPE_WRCOMB, the other MTRR types were implemented and supported here but with no real good reason. The ioremap() APIs are architecture agnostic and at least on x86 PAT is a new design that extends MTRRs and can replace it in a much cleaner way, where so long as the proper ioremap_wc() or variant API is used the right thing will be done behind the scenes. This is the only driver left using the other MTRR types -- and since there is no good reason for it now rip them out. Cc: Toshi Kani Cc: Suresh Siddha Cc: Ingo Molnar Cc: Linus Torvalds Cc: Thomas Gleixner Cc: Juergen Gross Cc: Daniel Vetter Cc: Andy Lutomirski Cc: Dave Airlie Cc: Antonino Daplas Cc: Jean-Christophe Plagniol-Villard Cc: Tomi Valkeinen Cc: Rob Clark Cc: Jingoo Han Cc: Wolfram Sang Cc: linux-fbdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Luis R. Rodriguez Signed-off-by: Tomi Valkeinen drivers/video/fbdev/vesafb.c | 62 ++++++++++++-------------------------------- 1 file changed, 16 insertions(+), 46 deletions(-) commit f4ec6aa5b018e0ec7edea916644686d572bc595c Author: Victoria Milhoan Date: Mon Jun 15 16:52:58 2015 -0700 crypto: caam - Provide correct value to iounmap() in controller driver Fix a "Trying to vfree() nonexistent vm area" error when unloading the CAAM controller module by providing the correct pointer value to iounmap(). Signed-off-by: Victoria Milhoan Signed-off-by: Herbert Xu drivers/crypto/caam/ctrl.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 8af7b0f809a3d34657433ec545d64dff9808ce34 Author: Victoria Milhoan Date: Mon Jun 15 16:52:57 2015 -0700 crypto: caam - Fix incorrect size when DMA unmapping buffer The CAAM driver uses two data buffers to store data for a hashing operation, with one buffer defined as active. This change forces switching of the active buffer when executing a hashing operation to avoid a later DMA unmap using the length of the opposite buffer. Signed-off-by: Victoria Milhoan Signed-off-by: Herbert Xu drivers/crypto/caam/caamhash.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit d37e296979ed1652aec6850e2d736bd0ebf0cdb1 Author: Tadeusz Struk Date: Mon Jun 15 13:18:36 2015 -0700 MPILIB: add mpi_read_buf() and mpi_get_size() helpers Added a mpi_read_buf() helper function to export MPI to a buf provided by the user, and a mpi_get_size() helper, that tells the user how big the buf is. Changed mpi_free to use kzfree instead of kfree because it is used to free crypto keys. Signed-off-by: Tadeusz Struk Signed-off-by: Herbert Xu include/linux/mpi.h | 15 +++++++++ lib/mpi/mpicoder.c | 87 +++++++++++++++++++++++++++++++++++++++++------------ lib/mpi/mpiutil.c | 6 ++-- 3 files changed, 86 insertions(+), 22 deletions(-) commit 4beb106045976b785a05e77ab5430ad04b6038b7 Author: Herbert Xu Date: Mon Jun 15 16:55:46 2015 +0800 crypto: vmx - Reindent to kernel style This patch reidents the vmx code-base to the kernel coding style. Signed-off-by: Herbert Xu drivers/crypto/vmx/aes.c | 166 ++++++++++++------------ drivers/crypto/vmx/aes_cbc.c | 236 +++++++++++++++++----------------- drivers/crypto/vmx/aes_ctr.c | 225 +++++++++++++++++---------------- drivers/crypto/vmx/aesp8-ppc.h | 15 +-- drivers/crypto/vmx/ghash.c | 278 +++++++++++++++++++++-------------------- drivers/crypto/vmx/vmx.c | 68 +++++----- 6 files changed, 506 insertions(+), 482 deletions(-) commit 0903e435ba45e312a9e1f34257d6a2b87a3af2d9 Author: Herbert Xu Date: Mon Jun 15 16:55:07 2015 +0800 crypto: vmx - Remove duplicate PPC64 dependency The top-level CRYPTO_DEV_VMX option already depends on PPC64 so there is no need to depend on it again at CRYPTO_DEV_VMX_ENCRYPT. This patch also removes a redundant "default n". Signed-off-by: Herbert Xu drivers/crypto/Kconfig | 1 - drivers/crypto/vmx/Kconfig | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) commit 196e2e2aa362850bf45bcb14b9517124b23b921e Author: Hannes Reinecke Date: Wed Jun 10 08:41:23 2015 +0200 target: Remove TARGET_MAX_LUNS_PER_TRANSPORT LUN allocation is now fully dynamic, so there is no need to artificially restrain the number of exported LUNs. Signed-off-by: Hannes Reinecke Signed-off-by: Nicholas Bellinger drivers/target/target_core_device.c | 9 --------- drivers/target/target_core_fabric_configfs.c | 8 -------- drivers/target/target_core_tpg.c | 9 --------- drivers/xen/xen-scsiback.c | 7 ++++--- include/target/target_core_base.h | 3 --- 5 files changed, 4 insertions(+), 32 deletions(-) commit f2d30680204f20b815e6796437923fb870b6c193 Author: Hannes Reinecke Date: Wed Jun 10 08:41:22 2015 +0200 target: use 64-bit LUNs As we're now using a list to hold the LUNs the target core can now converted to use 64-bit LUNs internally. Signed-off-by: Hannes Reinecke Signed-off-by: Nicholas Bellinger drivers/target/iscsi/iscsi_target_tmr.c | 4 +-- drivers/target/loopback/tcm_loop.c | 4 +-- drivers/target/target_core_alua.c | 2 +- drivers/target/target_core_configfs.c | 12 ++++---- drivers/target/target_core_device.c | 30 +++++++++---------- drivers/target/target_core_fabric_configfs.c | 18 ++++-------- drivers/target/target_core_internal.h | 10 +++---- drivers/target/target_core_pr.c | 43 ++++++++++++++-------------- drivers/target/target_core_pr.h | 6 ++-- drivers/target/target_core_tpg.c | 6 ++-- drivers/target/target_core_transport.c | 6 ++-- drivers/target/target_core_ua.c | 8 +++--- drivers/target/target_core_ua.h | 2 +- include/target/target_core_base.h | 19 ++++++------ include/target/target_core_fabric.h | 10 +++---- 15 files changed, 88 insertions(+), 92 deletions(-) commit e34d366273ce17bba902975f7c1e64a24a399024 Author: Nicholas Bellinger Date: Sun May 31 22:14:03 2015 -0700 target: Drop duplicate + unused se_dev_check_wce Reported-by: kbuild test robot Reported-by: Bart Van Assche Signed-off-by: Nicholas Bellinger drivers/target/target_core_device.c | 12 ------------ 1 file changed, 12 deletions(-) commit bc0c94b1404b225b19b6b53a0e508f43e269ed1e Author: Nicholas Bellinger Date: Wed May 20 21:48:03 2015 -0700 target: Drop unnecessary core_tpg_register TFO parameter This patch drops unnecessary target_core_fabric_ops parameter usage for core_tpg_register() during fabric driver TFO->fabric_make_tpg() se_portal_group creation callback execution. Instead, use the existing se_wwn->wwn_tf->tf_ops pointer to ensure fabric driver is really using the same TFO provided at module_init time. Also go ahead and drop the forward TFO declarations tree-wide, and handling the special case for iscsi-target discovery TPG. Cc: Christoph Hellwig Reviewed-by: Hannes Reinecke Signed-off-by: Nicholas Bellinger drivers/infiniband/ulp/srpt/ib_srpt.c | 4 +--- drivers/scsi/qla2xxx/tcm_qla2xxx.c | 9 ++------- drivers/target/iscsi/iscsi_target_configfs.c | 3 +-- drivers/target/iscsi/iscsi_target_tpg.c | 8 ++++++-- drivers/target/loopback/tcm_loop.c | 5 +---- drivers/target/sbp/sbp_target.c | 2 +- drivers/target/target_core_tpg.c | 30 +++++++++++++++++++++++----- drivers/target/tcm_fc/tfc_conf.c | 5 +---- drivers/usb/gadget/legacy/tcm_usb_gadget.c | 5 +---- drivers/vhost/scsi.c | 4 +--- drivers/xen/xen-scsiback.c | 5 +---- include/target/target_core_fabric.h | 3 +-- 12 files changed, 42 insertions(+), 41 deletions(-) commit 70d45cdb664390a5573c05f1eecc8432dcc6581b Author: Al Viro Date: Tue Jun 16 01:56:23 2015 -0400 ufs: don't touch mtime/ctime of directory being moved See "ext2: Do not update mtime of a moved directory" (and followup in "ext2: fix unbalanced kmap()/kunmap()") for background; this is UFS equivalent - the same problem exists here. Signed-off-by: Al Viro fs/ufs/dir.c | 6 ++++-- fs/ufs/namei.c | 9 +++++++-- fs/ufs/ufs.h | 2 +- 3 files changed, 12 insertions(+), 5 deletions(-) commit a50e4a02ad6957ef6f77cccaa8ef6a337f1856af Author: Al Viro Date: Tue Jun 16 01:50:43 2015 -0400 ufs: don't bother with lock_ufs()/unlock_ufs() for directory access We are already serialized by ->i_mutex and operations on different directories are independent. These calls are just rudiments of blind BKL conversion and they should've been removed back then. Signed-off-by: Al Viro fs/ufs/namei.c | 54 ++++++++++++++---------------------------------------- 1 file changed, 14 insertions(+), 40 deletions(-) commit 514d748f69c97a51a2645eb198ac5c6218f22ff9 Author: Jan Kara Date: Tue Jun 2 11:26:34 2015 +0200 ufs: Fix possible deadlock when looking up directories Commit e4502c63f56aeca88 (ufs: deal with nfsd/iget races) made ufs create inodes with I_NEW flag set. However ufs_mkdir() never cleared this flag. Thus if someone ever tried to lookup the directory by inode number, he would deadlock waiting for I_NEW to be cleared. Luckily this mostly happens only if the filesystem is exported over NFS since otherwise we have the inode attached to dentry and don't look it up by inode number. In rare cases dentry can get freed without inode being freed and then we'd hit the deadlock even without NFS export. Fix the problem by clearing I_NEW before instantiating new directory inode. Fixes: e4502c63f56aeca887ced37f24e0def1ef11cec8 Reported-by: Fabian Frederick Signed-off-by: Jan Kara Signed-off-by: Al Viro fs/ufs/namei.c | 1 + 1 file changed, 1 insertion(+) commit 12ecbb4b1d765a5076920999298d9625439dbe58 Author: Jan Kara Date: Mon Jun 1 14:52:04 2015 +0200 ufs: Fix warning from unlock_new_inode() Commit e4502c63f56aeca88 (ufs: deal with nfsd/iget races) introduced unlock_new_inode() call into ufs_add_nondir(). However that function gets called also from ufs_link() which hands it already initialized inode and thus unlock_new_inode() complains. The problem is harmless but annoying. Fix the problem by opencoding necessary stuff in ufs_link() Fixes: e4502c63f56aeca887ced37f24e0def1ef11cec8 Signed-off-by: Jan Kara Signed-off-by: Al Viro fs/ufs/namei.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit cdd9eefdf905e92e7fc6cc393314efe68dc6ff66 Author: Fabian Frederick Date: Wed Jun 10 10:09:32 2015 +1000 fs/ufs: restore s_lock mutex Commit 0244756edc4b98c ("ufs: sb mutex merge + mutex_destroy") generated deadlocks in read/write mode on mkdir. This patch partially reverts it keeping fixes by Andrew Morton and mutex_destroy() [AV: fixed a missing bit in ufs_remount()] Signed-off-by: Fabian Frederick Reported-by: Ian Campbell Suggested-by: Jan Kara Cc: Ian Campbell Cc: Evgeniy Dushistov Cc: Alexey Khoroshilov Cc: Roger Pau Monne Cc: Ian Jackson Cc: Al Viro Cc: Signed-off-by: Andrew Morton Signed-off-by: Al Viro fs/ufs/balloc.c | 34 +++++++++++++++++----------------- fs/ufs/ialloc.c | 16 ++++++++-------- fs/ufs/super.c | 10 ++++++++++ fs/ufs/ufs.h | 1 + 4 files changed, 36 insertions(+), 25 deletions(-) commit e8e68fd86d22fa5bd9c7bed16043e27ac86998f8 Author: Dominik Brodowski Date: Sun Jun 14 21:52:46 2015 +0200 pcmcia: do not break rsrc_nonstatic when handling anonymous cards Patch 1c6c9b1d9d25 caused a regression for rsrc_nonstatic: It relies on pccard_validate_cis() to determine whether an iomem resource can be used for PCMCIA cards. This override, however, lead invalid iomem resources to be accepted -- and lead to a fake CIS being used instead of the original CIS. To fix this issue, move the override for anonymous cards to the one place where it is needed -- when adding a PCMCIA device. Signed-off-by: Dominik Brodowski drivers/pcmcia/cistpl.c | 28 +++++++++------------------- drivers/pcmcia/ds.c | 20 ++++++++++++++++++-- 2 files changed, 27 insertions(+), 21 deletions(-) commit 08c40197479f67c6580b88738da72f9cdffb8b4b Author: Jakub Sitnicki Date: Tue Jun 16 06:17:23 2015 +0200 staging: rtl8188eu: kill unused INCLUDE_MULTI_FUNC_* macros Also, remove rt_multi_func enum used exclusively by the killed macros. Signed-off-by: Jakub Sitnicki Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/include/rtl8188e_hal.h | 13 ------------- 1 file changed, 13 deletions(-) commit 84b2f7985cee050c554bdd813949a8110caca7b5 Author: Hari Prasath Gujulan Elango Date: Mon Jun 15 09:27:38 2015 +0000 staging: rtl8188eu: fix typo in comments section This patch fixes a typo in the comment section. Signed-off-by: Hari Prasath Gujulan Elango Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/os_dep/os_intfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4c6b0ec2f1cf08419a08c189fd713a810ca9e86a Author: Hari Prasath Gujulan Elango Date: Mon Jun 15 11:48:53 2015 +0000 staging: wlan-ng: Replace hard coded values with MACRO's This patch replaces hard coded values with global definitions for the Ethernet IEEE 802.3 interface defined in standard header file. Signed-off-by: Hari Prasath Gujulan Elango Signed-off-by: Greg Kroah-Hartman drivers/staging/wlan-ng/p80211conv.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit f194f4e9e5eb313225f5c353c7147edc7688beb7 Author: Hari Prasath Gujulan Elango Date: Mon Jun 15 10:54:26 2015 +0000 staging: emxx_udc: remove commented code This patch removes commented code warned by checkpatch.pl Signed-off-by: Hari Prasath Gujulan Elango Signed-off-by: Greg Kroah-Hartman drivers/staging/emxx_udc/emxx_udc.h | 10 ---------- 1 file changed, 10 deletions(-) commit 3bc4cc7719f78b35d23c15ac377bcf9935f77d6c Author: Hari Prasath Gujulan Elango Date: Mon Jun 15 10:10:18 2015 +0000 staging: comedi: remove commented code This patch removes commented code.This was a checkpatch warning. Signed-off-by: Hari Prasath Gujulan Elango Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/comedi_fops.c | 5 ----- 1 file changed, 5 deletions(-) commit 30ef5c8b97d9dd381f94a919c21096afe6553f5d Author: ChengYi He Date: Tue Jun 16 03:04:59 2015 +0800 staging: wilc1000: remove unnecessary cast kmalloc() returns void pointer. Signed-off-by: ChengYi He Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_mon.c | 2 +- drivers/staging/wilc1000/linux_wlan.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) commit 3f5309725e08b2ce2395bcfea09eb518d3ddb499 Author: Sunghoon Cho Date: Mon Jun 15 19:42:32 2015 +0900 staging: wilc1000: remove the warnings on prohibited spaces. Remove space prohibited between function name and open parenthesis. Signed-off-by: Sunghoon Cho Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/coreconfigsimulator.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c4263e319ef923eab9041174dde248484ed71771 Author: Sunghoon Cho Date: Mon Jun 15 19:42:31 2015 +0900 staging: wilc1000: remove multiple blank lines. Remove the warnings for multiple blank lines reported by checkpatch.pl. Signed-off-by: Sunghoon Cho Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/coreconfigsimulator.h | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 635c931d6d16dc0f87545e03eb946b3355b72e62 Author: Chaehyun Lim Date: Mon Jun 15 12:35:48 2015 +0900 staging: wilc1000: align defines Align the lines of some defines in wilc_errorsupport.h Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_errorsupport.h | 32 ++++++++++++++-------------- 1 file changed, 16 insertions(+), 16 deletions(-) commit 576917ad24c5552a34bee2192027dba9ba003b5a Author: Dean Lee Date: Mon Jun 15 11:58:57 2015 +0900 staging: wilc1000: change WILC_Char to char change own data type(WILC_Char) to common data type(char) Signed-off-by: Dean Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/coreconfigurator.c | 24 +++---- drivers/staging/wilc1000/coreconfigurator.h | 4 +- drivers/staging/wilc1000/host_interface.c | 88 +++++++++++------------ drivers/staging/wilc1000/wilc_memory.c | 8 +-- drivers/staging/wilc1000/wilc_memory.h | 8 +-- drivers/staging/wilc1000/wilc_oswrapper.h | 3 - drivers/staging/wilc1000/wilc_strutils.c | 6 +- drivers/staging/wilc1000/wilc_strutils.h | 6 +- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 6 +- 9 files changed, 75 insertions(+), 78 deletions(-) commit e968542ced9a3272a53e68c4da85558a4636bdc6 Author: matt mooney Date: Mon Jun 15 20:38:22 2015 -0700 staging: vt6655: fix c99 comments and line length Change comment style and remove extra spaces before macro names to avoid exceeding 80 characters. Signed-off-by: matt mooney Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6655/power.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 89d256bb69f2596c3a31ac51466eac9e1791c388 Author: Alexei Starovoitov Date: Mon Jun 15 20:49:24 2015 -0700 bpf: disallow bpf tc programs access current->pid,uid Accessing current->pid/uid from cls_bpf may lead to misleading results and should not be used when TC classifiers need accurate information about pid/uid. Signed-off-by: Alexei Starovoitov Signed-off-by: David S. Miller net/core/filter.c | 6 ------ 1 file changed, 6 deletions(-) commit ea6bb99ed5860c8906f2ae281da391227f1f027c Author: Edward Cree Date: Mon Jun 15 18:27:54 2015 +0100 sfc: mark state UNINIT after unregister Without this change, modprobe -r sfc hits the BUG_ON() in efx_pci_remove_main(). Fixes: e7fef9b45ae1 ("sfc: add sysfs entry to control MCDI tracing") Reported-by: Jarod Wilson Reviewed-by: Jarod Wilson Signed-off-by: Edward Cree Signed-off-by: David S. Miller drivers/net/ethernet/sfc/efx.c | 1 + 1 file changed, 1 insertion(+) commit 24029a3603cfa633e8bc2b3fb3e48e76c497831d Merge: 916035d 35ac838 Author: David S. Miller Date: Mon Jun 15 19:49:22 2015 -0700 Merge branch 'sock_diag_destruction_events' Craig Gallek says: ==================== Socket destruction events via netlink sock_diag This series extends the netlink sock_diag interface to broadcast socket information as they are being destroyed. The current interface is poll based and can not be used to retreive information about sockets that are destroyed between poll intervals. Only inet sockets are broadcast in this implementation, but other families could easily be added as needed in the future. If this patch set is accepted, a follow-up patch to the ss utility in the iproute2 suite will also be submitted. ==================== Signed-off-by: David S. Miller commit 35ac838a9b96470f999db04320f53a2033642bfb Author: Craig Gallek Date: Mon Jun 15 11:26:20 2015 -0400 sock_diag: implement a get_info handler for inet This get_info handler will simply dispatch to the appropriate existing inet protocol handler. This patch also includes a new netlink attribute (INET_DIAG_PROTOCOL). This attribute is currently only used for multicast messages. Without this attribute, there is no way of knowing the IP protocol used by the socket information being broadcast. This attribute is not necessary in the 'dump' variant of this protocol (though it could easily be added) because dump requests are issued for specific family/protocol pairs. Tested: ss -E (note, the -E option has not yet been merged into the upstream version of ss). Signed-off-by: Craig Gallek Acked-by: Eric Dumazet Signed-off-by: David S. Miller include/uapi/linux/inet_diag.h | 3 ++- net/ipv4/inet_diag.c | 46 ++++++++++++++++++++++++++++++++++++++++++ net/ipv4/tcp.c | 4 +++- net/ipv4/tcp_diag.c | 5 +++-- 4 files changed, 54 insertions(+), 4 deletions(-) commit 3fd22af808f4d7455ba91596d334438c7ee0f889 Author: Craig Gallek Date: Mon Jun 15 11:26:19 2015 -0400 sock_diag: specify info_size per inet protocol Previously, there was no clear distinction between the inet protocols that used struct tcp_info to report information and those that didn't. This change adds a specific size attribute to the inet_diag_handler struct which defines these interfaces. This will make dispatching sock_diag get_info requests identical for all inet protocols in a following patch. Tested: ss -au Tested: ss -at Signed-off-by: Craig Gallek Acked-by: Eric Dumazet Signed-off-by: David S. Miller include/linux/inet_diag.h | 1 + net/dccp/diag.c | 1 + net/ipv4/inet_diag.c | 4 ++-- net/ipv4/tcp_diag.c | 1 + net/ipv4/udp_diag.c | 2 ++ 5 files changed, 7 insertions(+), 2 deletions(-) commit eb4cb008529ca08e0d8c0fa54e8f739520197a65 Author: Craig Gallek Date: Mon Jun 15 11:26:18 2015 -0400 sock_diag: define destruction multicast groups These groups will contain socket-destruction events for AF_INET/AF_INET6, IPPROTO_TCP/IPPROTO_UDP. Near the end of socket destruction, a check for listeners is performed. In the presence of a listener, rather than completely cleanup the socket, a unit of work will be added to a private work queue which will first broadcast information about the socket and then finish the cleanup operation. Signed-off-by: Craig Gallek Acked-by: Eric Dumazet Signed-off-by: David S. Miller include/linux/sock_diag.h | 42 +++++++++++++++++++++ include/net/sock.h | 1 + include/uapi/linux/sock_diag.h | 10 +++++ net/core/sock.c | 11 +++++- net/core/sock_diag.c | 85 ++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 148 insertions(+), 1 deletion(-) commit 284b2884a967dbd98b4c4cf7a8b583f974affca4 Merge: b9a1077 5f741b3 Author: Dave Airlie Date: Tue Jun 16 11:16:02 2015 +1000 Merge tag 'omapdrm-4.2-atomic' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux into drm-next omapdrm atomic modesetting support Atomic modesetting support for omapdrm. " we've had issues with omapdrm for years, which we've not been able to fix properly (like warnings/crashes when unloading modules, page-flips tearing, race issues with fbs). All those problems seem to be gone after this rewrite of omapdrm for atomic modesetting, and the resulting code is much cleaner and more maintainable." * tag 'omapdrm-4.2-atomic' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux: (43 commits) drm: omapdrm: new vblank and event handling drm: omapdrm: merge omap_crtc_flush and omap_crtc_atomic_flush drm: omapdrm: add lock for fb pinning drm: omapdrm: if omap_plane_atomic_update fails, disable plane drm: omapdrm: inline omap_plane_setup into update/disable drm: omapdrm: omap_plane_setup() cannot fail, use WARN drm: omapdrm: Don't setup planes manually from CRTC .enable()/.disable() drm: omapdrm: Don't flush CRTC when enabling or disabling it drm: omapdrm: Move encoder setup to encoder operations drm: omapdrm: Simplify DSS power management drm: omapdrm: Remove nested PM get/sync when configuring encoders drm: omapdrm: Support unlinking page flip events prematurely drm: omapdrm: omap_crtc_flush() isn't called with modeset locked drm: omapdrm: Don't get/put dispc in omap_crtc_flush() drm: omapdrm: Make the omap_crtc_flush function static drm: omapdrm: Remove omap_plane enabled field drm: omapdrm: Remove omap_crtc enabled field drm: omapdrm: Move crtc info out of the crtc structure drm: omapdrm: Move plane info and win out of the plane structure drm: omapdrm: Switch crtc and plane set_property to atomic helpers ... commit 916035ddd3f453a9152db8755dc8a1f53505444c Merge: b4ad7ba 62a8905 Author: David S. Miller Date: Mon Jun 15 17:23:03 2015 -0700 Merge branch 'mlx4-vf-counters' Or Gerlitz says: ==================== mlx4 driver update (+ new VF ndo) This series from Eran and Hadar is further dealing with traffic counters in the mlx4 driver, this time mostly around SRIOV. We added a new ndo to read the VF counters through the PF netdev netlink infrastructure plus mlx4 implementation for that ndo. changes from V0: - applied feedback from John to use nested netlink encoding for the VF counters so we can extend it later - add handling of single ported VFs in the mlx4_en driver new ndo - avoid chopping the FW counters from 64 to 32 bits in mlx4_en PF flow ==================== Signed-off-by: David S. Miller commit 62a890557f57e6cbebe9cc6c32aef045405d4fa2 Author: Eran Ben Elisha Date: Mon Jun 15 17:59:08 2015 +0300 net/mlx4_en: Support ndo_get_vf_stats Implement the ndo to gather VF statistics through the PF. All counters related to this VF are stored in a per slave list, run over the slave's list and collect all statistics. Signed-off-by: Eran Ben Elisha Signed-off-by: Hadar Hen Zion Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/cmd.c | 30 ++++++++++++++ drivers/net/ethernet/mellanox/mlx4/en_netdev.c | 10 +++++ drivers/net/ethernet/mellanox/mlx4/mlx4.h | 2 + .../net/ethernet/mellanox/mlx4/resource_tracker.c | 48 ++++++++++++++++++++++ include/linux/mlx4/cmd.h | 3 ++ 5 files changed, 93 insertions(+) commit 3b766cd832328fcb87db3507e7b98cf42f21689d Author: Eran Ben Elisha Date: Mon Jun 15 17:59:07 2015 +0300 net/core: Add reading VF statistics through the PF netdevice Add ndo_get_vf_stats where the PF retrieves and fills the VFs traffic statistics. We encode the VF stats in a nested manner to allow for future extensions. Signed-off-by: Eran Ben Elisha Signed-off-by: Hadar Hen Zion Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller include/linux/if_link.h | 9 ++++++++ include/linux/netdevice.h | 4 ++++ include/uapi/linux/if_link.h | 13 +++++++++++ net/core/rtnetlink.c | 51 ++++++++++++++++++++++++++++++++++++++++++-- 4 files changed, 75 insertions(+), 2 deletions(-) commit b42de4d01264fa84d8c9e04a18753a6c255567b5 Author: Eran Ben Elisha Date: Mon Jun 15 17:59:06 2015 +0300 net/mlx4_en: Show PF own statistics via ethtool Allow the user to observe the PF own statistics using ethtool with pf_ prefixed counter names. Those counters are the PF statistics out of the overall port statistics. Every PF QP is attached to a counter and the summary of those counters is the PF statistics. Signed-off-by: Eran Ben Elisha Signed-off-by: Hadar Hen Zion Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/en_ethtool.c | 17 +++++++++++++++++ drivers/net/ethernet/mellanox/mlx4/en_netdev.c | 8 +++++++- drivers/net/ethernet/mellanox/mlx4/en_port.c | 15 ++++++++++++++- drivers/net/ethernet/mellanox/mlx4/mlx4_en.h | 1 + drivers/net/ethernet/mellanox/mlx4/mlx4_stats.h | 11 ++++++++++- 5 files changed, 49 insertions(+), 3 deletions(-) commit 9616982f3fcc9e6577d7f41009c4ef2df19a71ec Author: Eran Ben Elisha Date: Mon Jun 15 17:59:05 2015 +0300 net/mlx4_core: Add helper to query counters This is an infrastructure step for querying VF and PF counters. This code was in the IB driver, move it to the mlx4 core driver so it will be accessible for more use cases. Signed-off-by: Eran Ben Elisha Signed-off-by: Hadar Hen Zion Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/infiniband/hw/mlx4/mad.c | 32 +++++------------- drivers/net/ethernet/mellanox/mlx4/cmd.c | 57 ++++++++++++++++++++++++++++++++ include/linux/mlx4/cmd.h | 3 ++ include/linux/mlx4/device.h | 8 +++++ 4 files changed, 76 insertions(+), 24 deletions(-) commit 7193a141eb74579ce7ff242c9f842a5c36c4bf69 Author: Eran Ben Elisha Date: Mon Jun 15 17:59:04 2015 +0300 IB/mlx4: Set VF to read from QP counters As IB VFs are not capable to read the port counters through MADs, move there to read their own QP counters to gather statistics. Signed-off-by: Eran Ben Elisha Signed-off-by: Hadar Hen Zion Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/infiniband/hw/mlx4/mad.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit c3abb51bdb0eb08500856ef897ec1ceab8711d95 Author: Eran Ben Elisha Date: Mon Jun 15 17:59:03 2015 +0300 IB/mlx4: Add RoCE/IB dedicated counters This is an infrastructure step to attach all the QPs opened from the IB driver to a counter in order to collect VF stats from the PF using those counters. If the port's type is Ethernet, the counter policy demands two counters per port (one for RoCE and one for Ethernet). The port default counter (allocated in mlx4_core) is used for the Ethernet netdev QPs and we allocate another counter for RoCE. If the port's traffic is Infiniband, the counter policy demands one counter per port, so it can use the port's default counter. Also, Add 'allocated' flag for each counter in order to clean it at unload. Signed-off-by: Eran Ben Elisha Signed-off-by: Hadar Hen Zion Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/infiniband/hw/mlx4/mad.c | 2 +- drivers/infiniband/hw/mlx4/main.c | 43 +++++++++++++++++++++++++----------- drivers/infiniband/hw/mlx4/mlx4_ib.h | 7 +++++- drivers/infiniband/hw/mlx4/qp.c | 4 ++-- 4 files changed, 39 insertions(+), 17 deletions(-) commit 6de5f7f6a1fa2288552d46b3effbb6d5571413e5 Author: Eran Ben Elisha Date: Mon Jun 15 17:59:02 2015 +0300 net/mlx4_core: Allocate default counter per port Default counter per port will be allocated at the mlx4 core driver load. Every QP opened by the Ethernet driver will be attached to the port's default counter. This is an infrastructure step to collect VF statistics from the PF. Signed-off-by: Eran Ben Elisha Signed-off-by: Hadar Hen Zion Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/en_netdev.c | 5 ++ drivers/net/ethernet/mellanox/mlx4/en_resources.c | 2 +- drivers/net/ethernet/mellanox/mlx4/main.c | 71 ++++++++++++++++++++++- drivers/net/ethernet/mellanox/mlx4/mlx4.h | 1 + drivers/net/ethernet/mellanox/mlx4/mlx4_en.h | 1 + include/linux/mlx4/device.h | 1 + 6 files changed, 77 insertions(+), 4 deletions(-) commit 68230242cdbcc34d14f664358f8a2392ec1a9f2d Author: Eran Ben Elisha Date: Mon Jun 15 17:59:01 2015 +0300 net/mlx4_core: Add port attribute when tracking counters Counter will get its port attribute within the resource tracker when the first QP attached to it is modified to RTR. If a QP is counter-less, an attempt to create a new counter with assigned port will be made. Signed-off-by: Eran Ben Elisha Signed-off-by: Hadar Hen Zion Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller .../net/ethernet/mellanox/mlx4/resource_tracker.c | 90 +++++++++++++++++++++- 1 file changed, 87 insertions(+), 3 deletions(-) commit 9de92c60beaac0a05d984ea72fc474196e1dd5a6 Author: Eran Ben Elisha Date: Mon Jun 15 17:59:00 2015 +0300 net/mlx4_core: Adjust counter grant policy in the resource tracker Each physical function has a guarantee of two counters per port, one for a default counter and one for the IB driver. Each virtual function has a guarantee of one counter per port. All other counters are free and can be obtained on demand. This is a preparation step for supporting a get_vf_stats ndo call, so we can promise a counter for every VF in order to collect their statistics from the PF context. Signed-off-by: Eran Ben Elisha Signed-off-by: Hadar Hen Zion Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller .../net/ethernet/mellanox/mlx4/resource_tracker.c | 35 +++++++++++++++++++--- 1 file changed, 31 insertions(+), 4 deletions(-) commit 2632d18d3ae75f6bdb79550134d1087fbd809e5f Author: Eran Ben Elisha Date: Mon Jun 15 17:58:59 2015 +0300 net/mlx4_core: Remove counters table allocation from VF flow Since virtual functions get their counters indices allocation from the PF, allocate counters indices bitmap only in case the function isn't virtual. Also, check that the device has counters to allocate before creating the indices bitmap table. Signed-off-by: Eran Ben Elisha Signed-off-by: Hadar Hen Zion Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/main.c | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) commit 47d8417f5914012c794684f651213ffae1b91619 Author: Eran Ben Elisha Date: Mon Jun 15 17:58:58 2015 +0300 net/mlx4_core: Add sink counter Reserve the last valid counter index for "sink" counter, when a new counter cannot be allocated, the driver will use this counter. In order to avoid allocating this counter on any other flow, fix the indices bitmap allocation range, and reserve the sink counter index. Add macro for the sink counter index and replace all appearences of the index with the macro. Signed-off-by: Eran Ben Elisha Signed-off-by: Hadar Hen Zion Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/infiniband/hw/mlx4/qp.c | 3 ++- drivers/net/ethernet/mellanox/mlx4/en_resources.c | 2 +- drivers/net/ethernet/mellanox/mlx4/main.c | 11 +++++++---- include/linux/mlx4/device.h | 1 + 4 files changed, 11 insertions(+), 6 deletions(-) commit b72ca7e96acf7320c53c5d64d4518be1cf6d4ef3 Author: Eran Ben Elisha Date: Mon Jun 15 17:58:57 2015 +0300 net/mlx4_core: Reset counters data when freed Add resetting the counter data to the free counter flow, so the counter's data won't be accessible anymore if querying the counter. Also, on next counter allocation (to another VM for example), it will be fresh and clear. Signed-off-by: Eran Ben Elisha Signed-off-by: Hadar Hen Zion Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/main.c | 21 +++++++++++++++++++++ drivers/net/ethernet/mellanox/mlx4/mlx4.h | 2 ++ 2 files changed, 23 insertions(+) commit efa6bc91cb85e03412c526c3ad0d2a9d733b5c6e Author: Eran Ben Elisha Date: Mon Jun 15 17:58:56 2015 +0300 net/mlx4_core: Check before cleaning counters bitmap If counters are not supported by the device. The indices bitmap table is not allocated during initialization. Add the symmetrical check before cleaning the counters bitmap table or freeing a counter. Signed-off-by: Eran Ben Elisha Signed-off-by: Hadar Hen Zion Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/main.c | 6 ++++++ 1 file changed, 6 insertions(+) commit b4ad7baa01970d2c5096fbbcb0c593e199c6f18b Author: Scott Feldman Date: Sun Jun 14 11:33:11 2015 -0700 bridge: del external_learned fdbs from device on flush or ageout We need to delete from offload the device externally learnded fdbs when any one of these events happen: 1) Bridge ages out fdb. (When bridge is doing ageing vs. device doing ageing. If device is doing ageing, it would send SWITCHDEV_FDB_DEL directly). 2) STP state change flushes fdbs on port. 3) User uses sysfs interface to flush fdbs from bridge or bridge port: echo 1 >/sys/class/net/BR_DEV/bridge/flush echo 1 >/sys/class/net/BR_PORT/brport/flush 4) Offload driver send event SWITCHDEV_FDB_DEL to delete fdb entry. For rocker, we can now get called to delete fdb entry in wait and nowait contexts, so set NOWAIT flag when deleting fdb entry. Signed-off-by: Scott Feldman Signed-off-by: David S. Miller Documentation/networking/switchdev.txt | 11 ++--------- drivers/net/ethernet/rocker/rocker.c | 2 +- net/bridge/br_fdb.c | 17 +++++++++++++++++ 3 files changed, 20 insertions(+), 10 deletions(-) commit 023033b1ec821951795d982a81cb942b879d276e Merge: cadfaf4 d0dcad8 Author: David S. Miller Date: Mon Jun 15 16:44:19 2015 -0700 Merge tag 'nfc-next-4.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/nfc-next Samuel Ortiz says: ==================== NFC 4.2 pull request This is the NFC pull request for 4.2. - NCI drivers can now define their own handlers for processing proprietary NCI responses and notifications. - NFC vendors can use a dedicated netlink API to send their own proprietary commands, like e.g. all commands needed to implement vendor specific manufacturing tools. - A new generic NCI over UART driver against which any NCI chipset running on top of a serial interface can register. - The st21nfcb driver is renamed to st-nci as it can and will support most of ST Microelectronics NCI chipsets. - The st21nfcb driver can put its CLF in hibernate mode and save significant amount of power. - A few st21nfcb minor fixes. - The NXP NCI driver now supports ACPI enumeration. - The Marvell NCI driver now supports both USB and serial physical interfaces. - The Marvell NCI drivers also supports NCI frames being muxed over HCI. This is a setting that can be defined by a DT property. ==================== Signed-off-by: David S. Miller commit ac0a72a3e6e8d817f60ce4d9a8f3b43dc256d847 Author: Or Gerlitz Date: Sun Jun 14 17:13:06 2015 +0300 net/mlx4_core: Disable Granular QoS per VF under IB/Eth VPI configuration Due to firmware bug, under VPI configuration when port1 = IB and port2 = Eth, Granular QoS per VF isn't working properly. More over, the whole QP0/QP1 Para-Virtualization in the mlx4 IB driver is broken on that config. Hence, we must disable Granular QoS per VF under that configuration till a fix is introduced. Once that happens, a new device capability will be used to mark the feature support on that specific configuration. Reported-by: Doug Ledford Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/main.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit cadfaf432b929ea2b0b595059b5dc5eb4de65f4d Merge: 4d36796 46ea297 Author: David S. Miller Date: Mon Jun 15 16:40:25 2015 -0700 Merge branch 'bond-netlink-3ad-attrs' Nikolay Aleksandrov says: ==================== bonding: extend the 3ad exported attributes These are two small patches that export actor_oper_port_state and partner_oper_port_state via netlink and sysfs, until now they were only exported via bond's proc entry. If this set gets accepted I have an iproute2 patch prepared that will export them with which I tested these changes. ==================== Signed-off-by: David S. Miller commit 46ea297ed67cdeeb0142244873458b911037d0ba Author: Nikolay Aleksandrov Date: Sun Jun 14 16:36:35 2015 +0300 bonding: export slave's partner_oper_port_state via sysfs and netlink Export the partner_oper_port_state of each port via sysfs and netlink. In 802.3ad mode it is valuable for the user to be able to check the partner_oper state, it is already exported via bond's proc entry. Signed-off-by: Nikolay Aleksandrov Signed-off-by: Andy Gospodarek Signed-off-by: David S. Miller drivers/net/bonding/bond_netlink.c | 5 +++++ drivers/net/bonding/bond_sysfs_slave.c | 16 ++++++++++++++++ include/uapi/linux/if_link.h | 1 + 3 files changed, 22 insertions(+) commit 254cb6dbfd8894743fbf814ec856ccd0874af691 Author: Nikolay Aleksandrov Date: Sun Jun 14 16:36:34 2015 +0300 bonding: export slave's actor_oper_port_state via sysfs and netlink Export the actor_oper_port_state of each port via sysfs and netlink. In 802.3ad mode it is valuable for the user to be able to check the actor_oper state, it is already exported via bond's proc entry. Signed-off-by: Nikolay Aleksandrov Signed-off-by: Andy Gospodarek Signed-off-by: David S. Miller drivers/net/bonding/bond_netlink.c | 10 +++++++++- drivers/net/bonding/bond_sysfs_slave.c | 16 ++++++++++++++++ include/uapi/linux/if_link.h | 1 + 3 files changed, 26 insertions(+), 1 deletion(-) commit 4d367963ac0db8212545bad4ee9a44794fc1d667 Merge: 4d81db4 f66feaa Author: David S. Miller Date: Mon Jun 15 16:06:49 2015 -0700 Merge branch 'rocker-no-wait' Scott Feldman says: ==================== rocker: revert back to support for nowait processes One of the items removed from the rocker driver in the Spring Cleanup patch series was the ability to mark processing in the driver as "no wait" for those contexts where we cannot sleep. Turns out, we have "no wait" contexts where we want to program the device and we don't want to defer the processing to a process context. So re-add the ROCKER_OP_FLAG_NOWAIT flag to mark such processes, and propagate flags to mem allocator and to the device cmd executor. With NOWAIT, mem allocs are GFP_ATOMIC and device cmds are queued to the device, but the driver will not wait (sleep) for the response back from the device. My bad for removing NOWAIT support in the first place; I thought we could swing non-sleep contexts to process context using a work queue, for example, but there is push-back to keep processing in original context. ==================== Signed-off-by: David S. Miller commit f66feaa98be00e59d4f4c9759f7b064908f52a5c Author: Scott Feldman Date: Fri Jun 12 21:35:50 2015 -0700 rocker: move port stop to 'no wait' processing rocker_port_stop can be called from atomic and non-atomic contexts. Since we can't test what context we're getting called in, do the processing as 'no wait', which will cover all cases. Signed-off-by: Scott Feldman Signed-off-by: David S. Miller drivers/net/ethernet/rocker/rocker.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 92014b97edb6e90901849a6b2c7ca76e43e0fdbb Author: Scott Feldman Date: Fri Jun 12 21:35:49 2015 -0700 rocker: move MAC learn event back to 'no wait' processing Signed-off-by: Scott Feldman Signed-off-by: David S. Miller drivers/net/ethernet/rocker/rocker.c | 40 +++--------------------------------- 1 file changed, 3 insertions(+), 37 deletions(-) commit ac28393e8514927e58af99ea12d4ee0eac6d11a8 Author: Scott Feldman Date: Fri Jun 12 21:35:48 2015 -0700 rocker: mark STP update as 'no wait' processing We can get STP updates from the bridge driver in atomic and non-atomic contexts. Since we can't test what context we're getting called in, do the STP processing as 'no wait', which will cover all cases. Signed-off-by: Scott Feldman Signed-off-by: David S. Miller drivers/net/ethernet/rocker/rocker.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 02a9fbfc878ec3e4c17b11d6ac41dfe86667b732 Author: Scott Feldman Date: Fri Jun 12 21:35:47 2015 -0700 rocker: mark neigh update event processing as 'no wait' Neigh update event handler runs in a context where we can't sleep, so mark processing in driver with ROCKER_OP_FLAG_NOWAIT. NOWAIT will use GFP_ATOMIC for allocations and will queue cmds to the device's cmd ring but will not wait (sleep) for cmd response back from device. Signed-off-by: Scott Feldman Signed-off-by: David S. Miller drivers/net/ethernet/rocker/rocker.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 179f9a2590a9f585fe052f87f10a83a84613ee43 Author: Scott Feldman Date: Fri Jun 12 21:35:46 2015 -0700 rocker: revert back to support for nowait processes One of the items removed from the rocker driver in the Spring Cleanup patch series was the ability to mark processing in the driver as "no wait" for those contexts where we cannot sleep. Turns out, we have "no wait" contexts where we want to program the device. So re-add the ROCKER_OP_FLAG_NOWAIT flag to mark such processes, and propagate flags to mem allocator and to the device cmd executor. With NOWAIT, mem allocs are GFP_ATOMIC and device cmds are queued to the device, but the driver will not wait (sleep) for the response back from the device. My bad for removing NOWAIT support in the first place; I thought we could swing non-sleep contexts to process context using a work queue, for example, but there is push-back to keep processing in original context. Signed-off-by: Scott Feldman Signed-off-by: David S. Miller drivers/net/ethernet/rocker/rocker.c | 202 +++++++++++++++++++---------------- 1 file changed, 112 insertions(+), 90 deletions(-) commit 4d81db4156caef7b223dde07e50db0144d12a192 Author: Scott Feldman Date: Fri Jun 12 21:24:40 2015 -0700 rocker: fix neigh tbl index increment race rocker->neigh_tbl_next_index is used to generate unique indices for neigh entries programmed into the device. The way new indices were generated was racy with the new prepare-commit transaction model. A simple fix here removes the race. The race was with two processes getting the same index, one process using prepare-commit, the other not: Proc A Proc B PREPARE phase get neigh_tbl_next_index NONE phase get neigh_tbl_next_index neigh_tbl_next_index++ COMMIT phase neigh_tbl_next_index++ Both A and B got the same index. The fix is to store and increment neigh_tbl_next_index in the PREPARE (or NONE) phase and use value in COMMIT phase: Proc A Proc B PREPARE phase get neigh_tbl_next_index neigh_tbl_next_index++ NONE phase get neigh_tbl_next_index neigh_tbl_next_index++ COMMIT phase // use value stashed in PREPARE phase Reported-by: Simon Horman Signed-off-by: Scott Feldman Reviewed-by: Simon Horman Signed-off-by: David S. Miller drivers/net/ethernet/rocker/rocker.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a07203108494d00efdd8f2fcbf9f2f4f63110e60 Author: Scott Feldman Date: Fri Jun 12 21:09:44 2015 -0700 rocker: gaurd against NULL rocker_port when removing ports The ports array is filled in as ports are probed, but if probing doesn't finish, we need to stop only those ports that where probed successfully. Check the ports array for NULL to skip un-probed ports when stopping. Signed-off-by: Scott Feldman Acked-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/rocker/rocker.c | 2 ++ 1 file changed, 2 insertions(+) commit 9464ca650008615d28d9aaf7de99b4edf61f0109 Author: Eric Dumazet Date: Fri Jun 12 19:44:48 2015 -0700 net: make u64_stats_init() a function Using a function instead of a macro is cleaner and remove following W=1 warnings (extract) In file included from net/ipv6/ip6_vti.c:29:0: net/ipv6/ip6_vti.c: In function ‘vti6_dev_init_gen’: include/linux/netdevice.h:2029:18: warning: variable ‘stat’ set but not used [-Wunused-but-set-variable] typeof(type) *stat; \ ^ net/ipv6/ip6_vti.c:862:16: note: in expansion of macro ‘netdev_alloc_pcpu_stats’ dev->tstats = netdev_alloc_pcpu_stats(struct pcpu_sw_netstats); ^ CC [M] net/ipv6/sit.o In file included from net/ipv6/sit.c:30:0: net/ipv6/sit.c: In function ‘ipip6_tunnel_init’: include/linux/netdevice.h:2029:18: warning: variable ‘stat’ set but not used [-Wunused-but-set-variable] typeof(type) *stat; \ ^ Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller include/linux/u64_stats_sync.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 7f1095394918c7058ff81c96c3bab3a897e97a9d Author: Scott Feldman Date: Fri Jun 12 17:39:50 2015 -0700 bridge: use either ndo VLAN ops or switchdev VLAN ops to install MASTER vlans v2: Move struct switchdev_obj automatics to inner scope where there used. v1: To maintain backward compatibility with the existing iproute2 "bridge vlan" command, let bridge's setlink/dellink handler call into either the port driver's 8021q ndo ops or the port driver's bridge_setlink/dellink ops. This allows port driver to choose 8021q ops or the newer bridge_setlink/dellink ops when implementing VLAN add/del filtering on the device. The iproute "bridge vlan" command does not need to be modified. To summarize using the "bridge vlan" command examples, we have: 1) bridge vlan add|del vid VID dev DEV Here iproute2 sets MASTER flag. Bridge's bridge_setlink/dellink is called. Vlan is set on bridge for port. If port driver implements ndo 8021q ops, call those to port driver can install vlan filter on device. Otherwise, if port driver implements bridge_setlink/dellink ops, call those to install vlan filter to device. This option only works if port is bridged. 2) bridge vlan add|del vid VID dev DEV master Same as 1) 3) bridge vlan add|del vid VID dev DEV self Bridge's bridge_setlink/dellink isn't called. Port driver's bridge_setlink/dellink is called, if implemented. This option works if port is bridged or not. If port is not bridged, a VLAN can still be added/deleted to device filter using this variant. 4) bridge vlan add|del vid VID dev DEV master self This is a combination of 1) and 3), but will only work if port is bridged. Signed-off-by: Scott Feldman Signed-off-by: David S. Miller net/bridge/br_vlan.c | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 57 insertions(+), 2 deletions(-) commit 9f42c8b3ebc80e8a544bcf726689d51c7e1e0fc8 Merge: ada6c1d ab1973d Author: David S. Miller Date: Mon Jun 15 15:53:50 2015 -0700 Merge branch 'bpf-share-helpers' Alexei Starovoitov says: ==================== v1->v2: switched to init_user_ns from current_user_ns as suggested by Andy Introduce new helpers to access 'struct task_struct'->pid, tgid, uid, gid, comm fields in tracing and networking. Share bpf_trace_printk() and bpf_get_smp_processor_id() helpers between tracing and networking. ==================== Signed-off-by: David S. Miller commit ab1973d3258aa8c40d153dc12bbb1aac56731e47 Author: Alexei Starovoitov Date: Fri Jun 12 19:39:14 2015 -0700 bpf: let kprobe programs use bpf_get_smp_processor_id() helper It's useful to do per-cpu histograms. Suggested-by: Daniel Wagner Signed-off-by: Alexei Starovoitov Acked-by: Daniel Borkmann Signed-off-by: David S. Miller kernel/trace/bpf_trace.c | 2 ++ 1 file changed, 2 insertions(+) commit 0756ea3e85139d23a8148ebaa95411c2f0aa4f11 Author: Alexei Starovoitov Date: Fri Jun 12 19:39:13 2015 -0700 bpf: allow networking programs to use bpf_trace_printk() for debugging bpf_trace_printk() is a helper function used to debug eBPF programs. Let socket and TC programs use it as well. Note, it's DEBUG ONLY helper. If it's used in the program, the kernel will print warning banner to make sure users don't use it in production. Signed-off-by: Alexei Starovoitov Signed-off-by: David S. Miller include/linux/bpf.h | 1 + kernel/bpf/core.c | 4 ++++ kernel/trace/bpf_trace.c | 20 ++++++++++++-------- net/core/filter.c | 2 ++ 4 files changed, 19 insertions(+), 8 deletions(-) commit ffeedafbf0236f03aeb2e8db273b3e5ae5f5bc89 Author: Alexei Starovoitov Date: Fri Jun 12 19:39:12 2015 -0700 bpf: introduce current->pid, tgid, uid, gid, comm accessors eBPF programs attached to kprobes need to filter based on current->pid, uid and other fields, so introduce helper functions: u64 bpf_get_current_pid_tgid(void) Return: current->tgid << 32 | current->pid u64 bpf_get_current_uid_gid(void) Return: current_gid << 32 | current_uid bpf_get_current_comm(char *buf, int size_of_buf) stores current->comm into buf They can be used from the programs attached to TC as well to classify packets based on current task fields. Update tracex2 example to print histogram of write syscalls for each process instead of aggregated for all. Signed-off-by: Alexei Starovoitov Signed-off-by: David S. Miller include/linux/bpf.h | 3 +++ include/uapi/linux/bpf.h | 19 +++++++++++++ kernel/bpf/core.c | 3 +++ kernel/bpf/helpers.c | 58 +++++++++++++++++++++++++++++++++++++++ kernel/trace/bpf_trace.c | 6 +++++ net/core/filter.c | 6 +++++ samples/bpf/bpf_helpers.h | 6 +++++ samples/bpf/tracex2_kern.c | 24 +++++++++++++---- samples/bpf/tracex2_user.c | 67 +++++++++++++++++++++++++++++++++++++++------- 9 files changed, 178 insertions(+), 14 deletions(-) commit 2587dc65e1b70617a1a369b26eb824ab1af1b9df Author: Vaishali Thakkar Date: Thu Jun 11 10:18:17 2015 +0530 ia64: Use setup_timer Use the timer API function setup_timer instead of structure field assignments to initialize a timer. A simplified version of the Coccinelle semantic patch that performs this transformation is as follows: @change@ expression e1, e2, a; @@ -init_timer(&e1); +setup_timer(&e1, a, 0UL); ... when != a = e2 -e1.function = a; Signed-off-by: Vaishali Thakkar Signed-off-by: Tony Luck arch/ia64/kernel/mca.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 511beeb5880eb1cf71ede7ce0f5ab4b34c1dd986 Author: Luis R. Rodriguez Date: Tue Jun 2 11:33:59 2015 -0700 ia64: export flush_icache_range for module use This is needed the following modules: "Linux Kernel Dump Test Tool Module" CONFIG_LKDTM drivers/misc/lkdtm.c Signed-off-by: Luis R. Rodriguez Signed-off-by: Tony Luck arch/ia64/kernel/ia64_ksyms.c | 3 +++ 1 file changed, 3 insertions(+) commit ada6c1de9ecabcfc5619479bcd29a208f2e248a0 Merge: 758f0d4 835b803 Author: David S. Miller Date: Mon Jun 15 14:30:32 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 a bit large (and late) patchset that contains Netfilter updates for net-next. Most relevantly br_netfilter fixes, ipset RCU support, removal of x_tables percpu ruleset copy and rework of the nf_tables netdev support. More specifically, they are: 1) Warn the user when there is a better protocol conntracker available, from Marcelo Ricardo Leitner. 2) Fix forwarding of IPv6 fragmented traffic in br_netfilter, from Bernhard Thaler. This comes with several patches to prepare the change in first place. 3) Get rid of special mtu handling of PPPoE/VLAN frames for br_netfilter. This is not needed anymore since now we use the largest fragment size to refragment, from Florian Westphal. 4) Restore vlan tag when refragmenting in br_netfilter, also from Florian. 5) Get rid of the percpu ruleset copy in x_tables, from Florian. Plus another follow up patch to refine it from Eric Dumazet. 6) Several ipset cleanups, fixes and finally RCU support, from Jozsef Kadlecsik. 7) Get rid of parens in Netfilter Kconfig files. 8) Attach the net_device to the basechain as opposed to the initial per table approach in the nf_tables netdev family. 9) Subscribe to netdev events to detect the removal and registration of a device that is referenced by a basechain. ==================== Signed-off-by: David S. Miller commit 835b803377f5f11f9ccf234f70ed667a82605c45 Author: Pablo Neira Ayuso Date: Mon Jun 15 12:12:01 2015 +0200 netfilter: nf_tables_netdev: unregister hooks on net_device removal In case the net_device is gone, we have to unregister the hooks and put back the reference on the net_device object. Once it comes back, register them again. This also covers the device rename case. This patch also adds a new flag to indicate that the basechain is disabled, so their hooks are not registered. This flag is used by the netdev family to handle the case where the net_device object is gone. Currently this flag is not exposed to userspace. Signed-off-by: Pablo Neira Ayuso include/net/netfilter/nf_tables.h | 7 ++++ net/netfilter/nf_tables_api.c | 16 ++++++--- net/netfilter/nf_tables_netdev.c | 75 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 94 insertions(+), 4 deletions(-) commit d8ee8f7c56b267751f95a1f0b4a75618909c07ac Author: Pablo Neira Ayuso Date: Mon Jun 15 02:42:31 2015 +0200 netfilter: nf_tables: add nft_register_basechain() and nft_unregister_basechain() This wrapper functions take care of hook registration for basechains. Signed-off-by: Pablo Neira Ayuso net/netfilter/nf_tables_api.c | 52 ++++++++++++++++++++++++++++++------------- 1 file changed, 37 insertions(+), 15 deletions(-) commit 2cbce139fc57bc2625f88add055d0b94f00c3352 Author: Pablo Neira Ayuso Date: Fri Jun 12 13:55:41 2015 +0200 netfilter: nf_tables: attach net_device to basechain The device is part of the hook configuration, so instead of a global configuration per table, set it to each of the basechain that we create. This patch reworks ebddf1a8d78a ("netfilter: nf_tables: allow to bind table to net_device"). Note that this adds a dev_name field in the nft_base_chain structure which is required the netdev notification subscription that follows up in a patch to handle gone net_devices. Suggested-by: Patrick McHardy Signed-off-by: Pablo Neira Ayuso include/net/netfilter/nf_tables.h | 4 +- include/uapi/linux/netfilter/nf_tables.h | 4 +- net/netfilter/nf_tables_api.c | 79 +++++++++++++++++--------------- 3 files changed, 46 insertions(+), 41 deletions(-) commit 5ee7041e5bc0fe8ba04a554dc2f9a18f709bc005 Author: Anisse Astier Date: Sun Jun 14 22:32:23 2015 +0200 MAINTAINERS: Orphan x86 driver msi-wmi I haven't touched the code in a long time, and I don't have access to the hardware anymore to test any changes to this driver. Signed-off-by: Anisse Astier Signed-off-by: Darren Hart MAINTAINERS | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit f17f4adfe48b64b23247b792c0e5ab998b7ab34e Author: Geert Uytterhoeven Date: Fri May 29 18:35:31 2015 +0200 PM / clk: Print acquired clock name in addition to con_id Currently the con_id of the acquired clock is printed for debugging purposes. But in several cases, the con_id is NULL, which doesn't provide much debugging information when printed. These cases are: - When explicitly passing a NULL con_id (which means the first clock tied to the device, if available), - When not using pm_clk_add(), but pm_clk_add_clk() (which takes a "struct clk *" directly). Hence print the actual clock name in addition to (and not instead of; thanks Grygorii Strashko!) the con_id. Note that the clock name is not available with legacy clock frameworks, and the hex pointer address will be printed instead. Signed-off-by: Geert Uytterhoeven Reviewed-by: Grygorii Strashko Reviewed-by: Ulf Hansson Signed-off-by: Rafael J. Wysocki drivers/base/power/clock_ops.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit a4630c61274322eda7c4a4d17051f7c72a9e03b1 Author: Geert Uytterhoeven Date: Fri May 29 17:24:23 2015 +0200 PM / Domains: Skip timings during syscore suspend/resume The PM Domain code uses ktime_get() to perform various latency measurements. However, if ktime_get() is called while timekeeping is suspended, the following warning is printed: WARNING: CPU: 0 PID: 1340 at kernel/time/timekeeping.c:576 ktime_get+0x3 This happens when resuming the PM Domain that contains the clock events source, which calls pm_genpd_syscore_poweron(). Chain of operations is: timekeeping_resume() { clockevents_resume() sh_cmt_clock_event_resume() pm_genpd_syscore_poweron() pm_genpd_sync_poweron() genpd_syscore_switch() genpd_power_on() ktime_get(), but timekeeping_suspended == 1 ... timekeeping_suspended = 0; } Fix this by adding a "timed" parameter to genpd_power_{on,off}() and pm_genpd_sync_power{off,on}(), to indicate whether latency measurements are allowed. This parameter is passed as false in genpd_syscore_switch() (i.e. during syscore suspend/resume), and true in all other cases. Signed-off-by: Geert Uytterhoeven Signed-off-by: Rafael J. Wysocki drivers/base/power/domain.c | 42 ++++++++++++++++++++++++++---------------- 1 file changed, 26 insertions(+), 16 deletions(-) commit 4b200b4604bec3388426159f1656109d19fadf6e Author: Arnd Bergmann Date: Sat Jun 13 15:23:33 2015 +0200 ideapad: fix software rfkill setting This fixes a several year old regression that I found while trying to get the Yoga 3 11 to work. The ideapad_rfk_set function is meant to send a command to the embedded controller through ACPI, but as of c1f73658ed, it sends the index of the rfkill device instead of the command, and ignores the opcode field. This changes it back to the original behavior, which indeed flips the rfkill state as seen in the debugfs interface. Signed-off-by: Arnd Bergmann Fixes: c1f73658ed ("ideapad: pass ideapad_priv as argument (part 2)") Cc: stable@vger.kernel.org # v2.6.38+ Signed-off-by: Darren Hart drivers/platform/x86/ideapad-laptop.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 7b506b1035326543b7cd2d768449ccbd1ef3f368 Author: Michal Hocko Date: Mon Jun 15 15:45:58 2015 -0400 jbd2: get rid of open coded allocation retry loop insert_revoke_hash does an open coded endless allocation loop if journal_oom_retry is true. It doesn't implement any allocation fallback strategy between the retries, though. The memory allocator doesn't know about the never fail requirement so it cannot potentially help to move on with the allocation (e.g. use memory reserves). Get rid of the retry loop and use __GFP_NOFAIL instead. We will lose the debugging message but I am not sure it is anyhow helpful. Do the same for journal_alloc_journal_head which is doing a similar thing. Signed-off-by: Michal Hocko Signed-off-by: Theodore Ts'o fs/jbd2/journal.c | 6 ++---- fs/jbd2/revoke.c | 15 +++++---------- 2 files changed, 7 insertions(+), 14 deletions(-) commit 851b81e8675127989a0cc084d2e9d76fb4c2ab05 Author: Michele Curti Date: Mon Jun 15 10:44:11 2015 +0800 ASoC: rt5645: move RT5650 muxes to rt5650_specific_dapm_widgets Developing a driver for an Asus X205TA laptop I get these dmesg errors: rt5645 i2c-10EC5648:00: ASoC: mux RT5650 IF1 ADC1 Swap Mux has no paths rt5645 i2c-10EC5648:00: ASoC: mux RT5650 IF1 ADC2 Swap Mux has no paths rt5645 i2c-10EC5648:00: ASoC: mux RT5650 IF1 ADC3 Swap Mux has no paths rt5645 i2c-10EC5648:00: ASoC: mux RT5650 IF1 ADC Mux has no paths rt5645 i2c-10EC5648:00: ASoC: mux RT5650 IF1 DAC1 L Mux has no paths rt5645 i2c-10EC5648:00: ASoC: mux RT5650 IF1 DAC1 R Mux has no paths rt5645 i2c-10EC5648:00: ASoC: mux RT5650 IF1 DAC2 L Mux has no paths rt5645 i2c-10EC5648:00: ASoC: mux RT5650 IF1 DAC2 R Mux has no paths so, move these muxes to the rt5650_specific_dapm_widgets[] list. Signed-off-by: Michele Curti Signed-off-by: Oder Chiou Signed-off-by: Mark Brown sound/soc/codecs/rt5645.c | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) commit b03a2f7eb21cc06b541142684abf7eed6aaccf3e Author: Andreas Dilger Date: Mon Jun 15 14:50:26 2015 -0400 ext4: improve warning directory handling messages Several ext4_warning() messages in the directory handling code do not report the inode number of the (potentially corrupt) directory where a problem is seen, and others report this in an ad-hoc manner. Add an ext4_warning_inode() helper to print the inode number and command name consistent with ext4_error_inode(). Consolidate the place in ext4.h that these macros are defined. Clean up some other directory error and warning messages to print the calling function name. Minor code style fixes in nearby lines. Signed-off-by: Andreas Dilger Signed-off-by: Theodore Ts'o fs/ext4/ext4.h | 28 +++++++++---- fs/ext4/namei.c | 125 ++++++++++++++++++++++++++++++-------------------------- fs/ext4/super.c | 25 +++++++++++- 3 files changed, 109 insertions(+), 69 deletions(-) commit 862176512b55ff177fad008cb45ac7adb192300a Author: Sakari Ailus Date: Thu Jun 11 12:18:01 2015 -0700 v4l: async: Add a pointer to of_node to struct v4l2_subdev, match it V4L2 async sub-devices are currently matched (OF case) based on the struct device_node pointer in struct device. LED devices may have more than one LED, and in that case the OF node to match is not directly the device's node, but a LED's node. Signed-off-by: Laurent Pinchart Signed-off-by: Sakari Ailus Signed-off-by: Bryan Wu drivers/media/v4l2-core/v4l2-async.c | 39 +++++++++++++++++++++++++----------- include/media/v4l2-subdev.h | 2 ++ 2 files changed, 29 insertions(+), 12 deletions(-) commit 6f6a6fda294506dfe0e3e0a253bb2d2923f28f0a Author: Joseph Qi Date: Mon Jun 15 14:36:01 2015 -0400 jbd2: fix ocfs2 corrupt when updating journal superblock fails If updating journal superblock fails after journal data has been flushed, the error is omitted and this will mislead the caller as a normal case. In ocfs2, the checkpoint will be treated successfully and the other node can get the lock to update. Since the sb_start is still pointing to the old log block, it will rewrite the journal data during journal recovery by the other node. Thus the new updates will be overwritten and ocfs2 corrupts. So in above case we have to return the error, and ocfs2_commit_cache will take care of the error and prevent the other node to do update first. And only after recovering journal it can do the new updates. The issue discussion mail can be found at: https://oss.oracle.com/pipermail/ocfs2-devel/2015-June/010856.html http://comments.gmane.org/gmane.comp.file-systems.ext4/48841 [ Fixed bug in patch which allowed a non-negative error return from jbd2_cleanup_journal_tail() to leak out of jbd2_fjournal_flush(); this was causing xfstests ext4/306 to fail. -- Ted ] Reported-by: Yiwen Jiang Signed-off-by: Joseph Qi Signed-off-by: Theodore Ts'o Tested-by: Yiwen Jiang Cc: Junxiao Bi Cc: stable@vger.kernel.org fs/jbd2/checkpoint.c | 5 ++--- fs/jbd2/journal.c | 38 +++++++++++++++++++++++++++++++------- include/linux/jbd2.h | 4 ++-- 3 files changed, 35 insertions(+), 12 deletions(-) commit 711bdde6a884354ddae8da2fcb495b2a9364cc90 Author: Eric Dumazet Date: Mon Jun 15 09:57:30 2015 -0700 netfilter: x_tables: remove XT_TABLE_INFO_SZ and a dereference. After Florian patches, there is no need for XT_TABLE_INFO_SZ anymore : Only one copy of table is kept, instead of one copy per cpu. We also can avoid a dereference if we put table data right after xt_table_info. It reduces register pressure and helps compiler. Then, we attempt a kmalloc() if total size is under order-3 allocation, to reduce TLB pressure, as in many cases, rules fit in 32 KB. Signed-off-by: Eric Dumazet Cc: Florian Westphal Signed-off-by: Pablo Neira Ayuso include/linux/netfilter/x_tables.h | 5 +---- net/ipv4/netfilter/arp_tables.c | 4 ++-- net/ipv4/netfilter/ip_tables.c | 4 ++-- net/ipv6/netfilter/ip6_tables.c | 4 ++-- net/netfilter/x_tables.c | 32 ++++++++++++-------------------- 5 files changed, 19 insertions(+), 30 deletions(-) commit 53b8762727cfc81212fd7073618cb2609bd2fd60 Merge: f09becc ca0f6a5 Author: Pablo Neira Ayuso Date: Mon Jun 15 18:31:22 2015 +0200 Merge branch 'master' of git://blackhole.kfki.hu/nf-next Jozsef Kadlecsik says: ==================== ipset patches for nf-next Please consider to apply the next bunch of patches for ipset. First comes the small changes, then the bugfixes and at the end the RCU related patches. * Use MSEC_PER_SEC consistently instead of the number. * Use SET_WITH_*() helpers to test set extensions from Sergey Popovich. * Check extensions attributes before getting extensions from Sergey Popovich. * Permit CIDR equal to the host address CIDR in IPv6 from Sergey Popovich. * Make sure we always return line number on batch in the case of error from Sergey Popovich. * Check CIDR value only when attribute is given from Sergey Popovich. * Fix cidr handling for hash:*net* types, reported by Jonathan Johnson. * Fix parallel resizing and listing of the same set so that the original set is kept for the whole dumping. * Make sure listing doesn't grab a set which is just being destroyed. * Remove rbtree from ip_set_hash_netiface.c in order to introduce RCU. * Replace rwlock_t with spinlock_t in "struct ip_set", change the locking in the core and simplifications in the timeout routines. * Introduce RCU locking in bitmap:* types with a slight modification in the logic on how an element is added. * Introduce RCU locking in hash:* types. This is the most complex part of the changes. * Introduce RCU locking in list type where standard rculist is used. * Fix coding styles reported by checkpatch.pl. ==================== Signed-off-by: Pablo Neira Ayuso commit fb77ff4f43990dc91926ce2704036a547482544e Author: Vincent Cuissard Date: Mon Jun 15 17:34:23 2015 +0200 NFC: nci: fix mistake in uart generic driver It was not possible to register a UART driver due to a bad condition. Signed-off-by: Vincent Cuissard Signed-off-by: Samuel Ortiz net/nfc/nci/uart.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b44754d8262d3aab842998cf747f44fe6090be9f Author: Petr Mladek Date: Mon Jun 15 15:53:10 2015 +0200 ring_buffer: Allow to exit the ring buffer benchmark immediately It takes a while until the ring_buffer_benchmark module is removed when the ring buffer hammer is running. It is because it takes few seconds and kthread_should_stop() is not being checked. This patch adds the check for kthread termination into the producer. It uses the existing @kill_test flag to finish the kthreads as cleanly as possible. It disables printing the "ERROR" message when the kthread is going. It makes sure that producer does not go into the 10sec sleep when it is being killed. Finally, it does not call wait_to_die() when kthread_should_stop() already returns true. Link: http://lkml.kernel.org/r/20150615155428.GD3135@pathway.suse.cz Signed-off-by: Petr Mladek Signed-off-by: Steven Rostedt kernel/trace/ring_buffer_benchmark.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) commit 822bf4833ecc8ea63c69f3ed894c13b4509c9e85 Author: Mark Rutland Date: Mon Jun 15 15:02:44 2015 +0100 arm64: defconfig: enable memtest The kernel memtest utility is incredibly useful for detecting memory problems, but sadly isn't in defconfig. The memtest itself is only run when the user has explicitly passed a memtest option on the kernel command line, so simply enabling the option should not have a negative impact. Signed-off-by: Mark Rutland Cc: Vladimir Murzin Cc: Will Deacon Signed-off-by: Catalin Marinas arch/arm64/configs/defconfig | 1 + 1 file changed, 1 insertion(+) commit f09becc79f899f92557ce6d5562a8b80d6addb34 Author: Pablo Neira Ayuso Date: Fri Jun 12 13:58:52 2015 +0200 netfilter: Kconfig: get rid of parens around depends on According to the reporter, they are not needed. Reported-by: Sergei Shtylyov Signed-off-by: Pablo Neira Ayuso net/ipv4/netfilter/Kconfig | 3 ++- net/ipv6/netfilter/Kconfig | 3 ++- net/netfilter/Kconfig | 18 +++++++++--------- 3 files changed, 13 insertions(+), 11 deletions(-) commit 15b8d2c41fe5839582029f65c5f7004db451cc2b Author: Arun Chandran Date: Mon Jun 15 15:59:02 2015 +0530 regmap: Fix regmap_bulk_read in BE mode In big endian mode regmap_bulk_read gives incorrect data for byte reads. This is because memcpy of a single byte from an address after full word read gives different results when endianness differs. ie. we get little-end in LE and big-end in BE. Signed-off-by: Arun Chandran Signed-off-by: Mark Brown Cc: stable@vger.kernel.org drivers/base/regmap/regmap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8a95c1441c799bb0f0d31cdb11523d91923d51a7 Author: Tang Yuantian Date: Thu Jun 4 14:25:42 2015 +0800 cpufreq: qoriq: optimize the CPU frequency switching time Each time the CPU switches its frequency, the clock nodes in DTS are walked through to find proper clock source. This is very time-consuming, for example, it is up to 500+ us on T4240. Besides, switching time varies from clock to clock. To optimize this, each input clock of CPU is buffered, so that it can be picked up instantly when needed. Since for each CPU each input clock is stored in a pointer which takes 4 or 8 bytes memory and normally there are several input clocks per CPU, that will not take much memory as well. Signed-off-by: Tang Yuantian Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/qoriq-cpufreq.c | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) commit 431920edfd675ba74949415aace0a4eae07073e3 Author: Shailendra Verma Date: Sat May 23 10:36:49 2015 +0530 cpufreq: gx-suspmod: Fix two typos in two comments Signed-off-by: Shailendra Verma Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/gx-suspmod.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 97155e033662d0e9059ed2a007b0eb5080339349 Author: Shailendra Verma Date: Sat May 23 10:36:18 2015 +0530 cpufreq: nforce2: Fix typo in comment to function nforce2_init() Signed-off-by: Shailendra Verma Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq-nforce2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 732b6d617a4cfd8363d1f70a06bff38b8c1a19e9 Author: Viresh Kumar Date: Wed Jun 3 15:57:13 2015 +0530 cpufreq: governor: Serialize governor callbacks There are several races reported in cpufreq core around governors (only ondemand and conservative) by different people. There are at least two race scenarios present in governor code: (a) Concurrent access/updates of governor internal structures. It is possible that fields such as 'dbs_data->usage_count', etc. are accessed simultaneously for different policies using same governor structure (i.e. CPUFREQ_HAVE_GOVERNOR_PER_POLICY flag unset). And because of this we can dereference bad pointers. For example consider a system with two CPUs with separate 'struct cpufreq_policy' instances. CPU0 governor: ondemand and CPU1: powersave. CPU0 switching to powersave and CPU1 to ondemand: CPU0 CPU1 store* store* cpufreq_governor_exit() cpufreq_governor_init() dbs_data = cdata->gdbs_data; if (!--dbs_data->usage_count) kfree(dbs_data); dbs_data->usage_count++; *Bad pointer dereference* There are other races possible between EXIT and START/STOP/LIMIT as well. Its really complicated. (b) Switching governor state in bad sequence: For example trying to switch a governor to START state, when the governor is in EXIT state. There are some checks present in __cpufreq_governor() but they aren't sufficient as they compare events against 'policy->governor_enabled', where as we need to take governor's state into account, which can be used by multiple policies. These two issues need to be solved separately and the responsibility should be properly divided between cpufreq and governor core. The first problem is more about the governor core, as it needs to protect its structures properly. And the second problem should be fixed in cpufreq core instead of governor, as its all about sequence of events. This patch is trying to solve only the first problem. There are two types of data we need to protect, - 'struct common_dbs_data': No matter what, there is going to be a single copy of this per governor. - 'struct dbs_data': With CPUFREQ_HAVE_GOVERNOR_PER_POLICY flag set, we will have per-policy copy of this data, otherwise a single copy. Because of such complexities, the mutex present in 'struct dbs_data' is insufficient to solve our problem. For example we need to protect fetching of 'dbs_data' from different structures at the beginning of cpufreq_governor_dbs(), to make sure it isn't currently being updated. This can be fixed if we can guarantee serialization of event parsing code for an individual governor. This is best solved with a mutex per governor, and the placeholder for that is 'struct common_dbs_data'. And so this patch moves the mutex from 'struct dbs_data' to 'struct common_dbs_data' and takes it at the beginning and drops it at the end of cpufreq_governor_dbs(). Tested with and without following configuration options: CONFIG_LOCKDEP_SUPPORT=y CONFIG_DEBUG_RT_MUTEXES=y CONFIG_DEBUG_PI_LIST=y CONFIG_DEBUG_SPINLOCK=y CONFIG_DEBUG_MUTEXES=y CONFIG_DEBUG_LOCK_ALLOC=y CONFIG_PROVE_LOCKING=y CONFIG_LOCKDEP=y CONFIG_DEBUG_ATOMIC_SLEEP=y Signed-off-by: Viresh Kumar Reviewed-by: Preeti U Murthy Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq_conservative.c | 2 +- drivers/cpufreq/cpufreq_governor.c | 24 +++++++++++------------- drivers/cpufreq/cpufreq_governor.h | 8 +++++--- drivers/cpufreq/cpufreq_ondemand.c | 2 +- 4 files changed, 18 insertions(+), 18 deletions(-) commit 714a2d9c8792919090f256c16286ac3cff4cb489 Author: Viresh Kumar Date: Thu Jun 4 16:43:27 2015 +0530 cpufreq: governor: split cpufreq_governor_dbs() cpufreq_governor_dbs() is hardly readable, it is just too big and complicated. Lets make it more readable by splitting out event specific routines. Order of statements is changed at few places, but that shouldn't bring any functional change. Signed-off-by: Viresh Kumar Reviewed-by: Preeti U Murthy Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq_governor.c | 329 +++++++++++++++++++++---------------- 1 file changed, 189 insertions(+), 140 deletions(-) commit 8e0484d2b38aeb2bcce0a7b32e6b33d72c11ad85 Author: Viresh Kumar Date: Wed Jun 3 15:57:11 2015 +0530 cpufreq: governor: register notifier from cs_init() Notifiers are required only for conservative governor and the common governor code is unnecessarily polluted with that. Handle that from cs_init/exit() instead of cpufreq_governor_dbs(). Signed-off-by: Viresh Kumar Reviewed-by: Preeti U Murthy Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq_conservative.c | 26 +++++++++++++++----------- drivers/cpufreq/cpufreq_governor.c | 22 +++------------------- drivers/cpufreq/cpufreq_governor.h | 8 ++------ drivers/cpufreq/cpufreq_ondemand.c | 4 ++-- 4 files changed, 22 insertions(+), 38 deletions(-) commit 812d6f6345d88632c11aeb602ef26f4616dabfa0 Author: Haikun Wang Date: Mon Jun 15 19:49:01 2015 +0800 spi: spi-fsl-dspi: Update DT binding documentation DSPI driver has been updated and support more compatible strings. This patch update the DT binding documentation. Signed-off-by: Haikun Wang Signed-off-by: Mark Brown Documentation/devicetree/bindings/spi/spi-fsl-dspi.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 41d232b7c891fcecb358784645633850936a95c7 Author: Francisco Jerez Date: Fri May 29 16:44:15 2015 +0300 drm/i915: Add SCRATCH1 and ROW_CHICKEN3 to the register whitelist. Only bit 27 of SCRATCH1 and bit 6 of ROW_CHICKEN3 are allowed to be set because of security-sensitive bits we don't want userspace to mess with. On HSW hardware the whitelisted bits control whether atomic read-modify-write operations are performed on L3 or on GTI, and when set to L3 (which can be 10x-30x better performing than on GTI, depending on the application) require great care to avoid a system hang, so we currently program them to be handled on GTI by default. Beignet can immediately start taking advantage of this change to enable L3 atomics. Mesa should eventually switch to L3 atomics too, but a number of non-trivial changes are still required so it will continue using GTI atomics for now. Signed-off-by: Francisco Jerez Reviewed-by: Zhigang Gong Signed-off-by: Daniel Vetter Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_cmd_parser.c | 7 +++++++ 1 file changed, 7 insertions(+) commit c1091b25f547d45ffdcb443a3790aed652fb9b48 Author: Francisco Jerez Date: Fri May 29 16:44:14 2015 +0300 drm/i915: Extend the parser to check register writes against a mask/value pair. In some cases it might be unnecessary or dangerous to give userspace the right to write arbitrary values to some register, even though it might be desirable to give it control of some of its bits. This patch extends the register whitelist entries to contain a mask/value pair in addition to the register offset. For registers with non-zero mask, any LRM writes and LRI writes where the bits of the immediate given by the mask don't match the specified value will be rejected. This will be used in my next patch to grant userspace partial write access to some sensitive registers. Signed-off-by: Francisco Jerez Reviewed-by: Zhigang Gong Signed-off-by: Daniel Vetter Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_cmd_parser.c | 138 +++++++++++++++++++++----------- drivers/gpu/drm/i915/intel_ringbuffer.h | 5 +- 2 files changed, 96 insertions(+), 47 deletions(-) commit 8a389cac1fd7dd6411c7e586ab098938a75870e0 Author: Francisco Jerez Date: Fri May 29 16:44:13 2015 +0300 drm/i915: Fix command parser to validate multiple register access with the same command. Until now the software command checker assumed that commands could read or write at most a single register per packet. This is not necessarily the case, MI_LOAD_REGISTER_IMM expects a variable-length list of offset/value pairs and writes them in sequence. The previous code would only check whether the first entry was valid, effectively allowing userspace to write unrestricted registers of the MMIO space by sending a multi-register write with a legal first register, with potential security implications on Gen6 and 7 hardware. Fix it by extending the drm_i915_cmd_descriptor table to represent multi-register access and making validate_cmd() iterate for all register offsets present in the command packet. Signed-off-by: Francisco Jerez Reviewed-by: Zhigang Gong Signed-off-by: Daniel Vetter Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_cmd_parser.c | 74 ++++++++++++++++++++-------------- drivers/gpu/drm/i915/i915_drv.h | 5 +++ 2 files changed, 48 insertions(+), 31 deletions(-) commit e144cd045e123757b6b5f732c420b94dd5544407 Author: Suthikulpanit, Suravee Date: Wed Jun 10 11:08:58 2015 -0500 ufs: fix TRUE and FALSE re-define build error Signed-off-by: Suravee Suthikulpanit Cc: Vinayak Holikatti Signed-off-by: Rafael J. Wysocki drivers/scsi/ufs/unipro.h | 8 ++++++++ 1 file changed, 8 insertions(+) commit ad466c6c1edd3deac6deda3885f12d0b05efac11 Author: Suthikulpanit, Suravee Date: Wed Jun 10 11:08:57 2015 -0500 megaraid_sas: fix TRUE and FALSE re-define build error Signed-off-by: Suravee Suthikulpanit Cc: Kashyap Desai Cc: Sumit Saxena Cc: Uday Lingala Acked-by: Sumit Saxena Signed-off-by: Rafael J. Wysocki drivers/scsi/megaraid/megaraid_sas_fp.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit c9a49642aef95d5adb6b7a4bd6a6f5df852cdb98 Author: Suthikulpanit, Suravee Date: Wed Jun 10 11:08:56 2015 -0500 amd-xgbe: Unify coherency checking logic with device_dma_is_coherent() Currently, amd-xgbe driver has separate logic to determine device coherency for DT vs. ACPI. This patch simplifies the code with a call to device_dma_is_coherent(). Signed-off-by: Tom Lendacky Signed-off-by: Suravee Suthikulpanit Signed-off-by: Rafael J. Wysocki drivers/net/ethernet/amd/xgbe/xgbe-main.c | 27 +-------------------------- 1 file changed, 1 insertion(+), 26 deletions(-) commit 04825cfedf525b455384547adb90102d02b293b4 Author: Suthikulpanit, Suravee Date: Wed Jun 10 11:08:55 2015 -0500 crypto: ccp - Unify coherency checking logic with device_dma_is_coherent() Currently, the driver has separate logic to determine device coherency for DT vs ACPI. This patch simplifies the code with a call to device_dma_is_coherent(). Signed-off-by: Tom Lendacky Signed-off-by: Suravee Suthikulpanit Signed-off-by: Rafael J. Wysocki drivers/crypto/ccp/ccp-platform.c | 60 +-------------------------------------- 1 file changed, 1 insertion(+), 59 deletions(-) commit 05ca556003b1d6b4df0b8831e4c07fad7f5bdd2c Author: Suthikulpanit, Suravee Date: Wed Jun 10 11:08:54 2015 -0500 device property: Introduces device_dma_is_coherent() Currently, device drivers, which support both OF and ACPI, need to call two separate APIs, of_dma_is_coherent() and acpi_dma_is_coherent()) to determine device coherency attribute. This patch simplifies this process by introducing a new device property API, device_dma_is_coherent(), which calls the appropriate interface based on the booting architecture. Signed-off-by: Suravee Suthikulpanit Signed-off-by: Rafael J. Wysocki drivers/base/property.c | 14 ++++++++++++++ include/linux/property.h | 2 ++ 2 files changed, 16 insertions(+) commit b6197b93fa4bcba9313cc415934e3fe27e2db9b0 Author: Suthikulpanit, Suravee Date: Wed Jun 10 11:08:53 2015 -0500 arm64 : Introduce support for ACPI _CCA object section 6.2.17 _CCA states that ARM platforms require ACPI _CCA object to be specified for DMA-cabpable devices. Therefore, this patch specifies ACPI_CCA_REQUIRED in arm64 Kconfig. In addition, to handle the case when _CCA is missing, arm64 would assign dummy_dma_ops to disable DMA capability of the device. Acked-by: Catalin Marinas Signed-off-by: Mark Salter Signed-off-by: Suravee Suthikulpanit Signed-off-by: Rafael J. Wysocki arch/arm64/Kconfig | 1 + arch/arm64/include/asm/dma-mapping.h | 18 ++++++- arch/arm64/mm/dma-mapping.c | 92 ++++++++++++++++++++++++++++++++++++ 3 files changed, 109 insertions(+), 2 deletions(-) commit d0562674838c08ff142c0e9a8e12634e133c4361 Author: Suthikulpanit, Suravee Date: Wed Jun 10 11:08:52 2015 -0500 ACPI / scan: Parse _CCA and setup device coherency This patch implements support for ACPI _CCA object, which is introduced in ACPIv5.1, can be used for specifying device DMA coherency attribute. The parsing logic traverses device namespace to parse coherency information, and stores it in acpi_device_flags. Then uses it to call arch_setup_dma_ops() when creating each device enumerated in DSDT during ACPI scan. This patch also introduces acpi_dma_is_coherent(), which provides an interface for device drivers to check the coherency information similarly to the of_dma_is_coherent(). Signed-off-by: Mark Salter Signed-off-by: Suravee Suthikulpanit Signed-off-by: Rafael J. Wysocki drivers/acpi/Kconfig | 3 +++ drivers/acpi/acpi_platform.c | 2 +- drivers/acpi/glue.c | 5 +++++ drivers/acpi/scan.c | 35 +++++++++++++++++++++++++++++++++++ include/acpi/acpi_bus.h | 37 ++++++++++++++++++++++++++++++++++++- include/linux/acpi.h | 5 +++++ 6 files changed, 85 insertions(+), 2 deletions(-) commit faacd5ad83857300df4b7b1814ef2eb963063c14 Merge: 0f57d86 0519ade Author: Rafael J. Wysocki Date: Mon Jun 15 14:38:55 2015 +0200 Merge branch 'acpi-scan' into acpi-cca commit 66db383439b51b1aa920f3579da644fb5fdb2b7c Author: Lv Zheng Date: Thu Jun 11 13:21:51 2015 +0800 ACPI / EC: Fix a code coverity issue when QR_EC transactions are failed. When the QR_EC transaction fails, the EC_FLAGS_QUERY_PENDING flag prevents the event handling work queue from being scheduled again. Though there shouldn't be failed QR_EC transactions, and this gap was efficiently used for catching and learning the SCI_EVT clearing timing compliance issues, we need to fix this as we are not fully compatible with all platforms/Windows to handle SCI_EVT clearing timing correctly. Fixing this gives the EC driver the chances to recover from a state machine failure. So this patch fixes this issue. When nr_pending_queries drops to 0, it clears EC_FLAGS_QUERY_PENDING at the proper position for different modes in order to ensure that the SCI_EVT handling can proceed. In order to be clearer for future ec_event_clearing modes, all checks in this patch are written in the inclusive style, not the exclusive style. Cc: 3.16+ # 3.16+ Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/ec.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) commit 3cb02aeb28dd3f1b8a132fa3ecf6db17afd518d6 Author: Lv Zheng Date: Thu Jun 11 13:21:45 2015 +0800 ACPI / EC: Fix EC_FLAGS_QUERY_HANDSHAKE platforms using new event clearing timing. It is reported that on several platforms, EC firmware will not respond non-expected QR_EC (see EC_FLAGS_QUERY_HANDSHAKE, only write QR_EC when SCI_EVT is set). Unfortunately, ACPI specification doesn't define when the SCI_EVT should be cleared by the firmware, thus the original implementation queued up second QR_EC right after writing QR_EC command and before reading the returned event value as at that time the SCI_EVT is ensured not cleared. This behavior is also based on the assumption that the firmware should be able to return 0x00 to indicate "no outstanding event". This behavior did fix issues on Samsung platforms where the spurious query value of 0x00 is supported and didn't break platforms in my test queue. But recently, specific Acer, Asus, Lenovo platforms keep on blaming this change. This patch changes the behavior to re-check the SCI_EVT a bit later and removes EC_FLAGS_QUERY_HANDSHAKE quirks, hoping this is the Windows compliant EC driver behavior. In order to be robust to the possible regressions, instead of removing the quirk directly, this patch keeps the quirk code, removes the quirk users and keeps old behavior for Samsung platforms. Cc: 3.16+ # 3.16+ Link: https://bugzilla.kernel.org/show_bug.cgi?id=94411 Link: https://bugzilla.kernel.org/show_bug.cgi?id=97381 Link: https://bugzilla.kernel.org/show_bug.cgi?id=98111 Reported-and-tested-by: Gabriele Mazzotta Reported-and-tested-by: Tigran Gabrielyan Reported-and-tested-by: Adrien D Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/ec.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) commit 1d68d2612c2e7309166fa43d8e27eb163435527f Author: Lv Zheng Date: Thu Jun 11 13:21:38 2015 +0800 ACPI / EC: Add event clearing variation support. We've been suffering from the uncertainty of the SCI_EVT clearing timing. This patch implements 3 of 4 possible modes to handle SCI_EVT clearing variations. The old behavior is kept in this patch. Status: QR_EC is re-checked as early as possible after checking previous SCI_EVT. This always leads to 2 QR_EC transactions per SCI_EVT indication and the target may implement event queue which returns 0x00 indicating "no outstanding event". This is proven to be a conflict against Windows behavior, but is still kept in this patch to make the EC driver robust to the possible regressions that may occur on Samsung platforms. Query: QR_EC is re-checked after the target has handled the QR_EC query request command pushed by the host. Event: QR_EC is re-checked after the target has noticed the query event response data pulled by the host. This timing is not determined by any IRQs, so we may need to use a guard period in this mode, which may explain the existence of the ec_guard() code used by the old EC driver where the re-check timing is implemented in the similar way as this mode. Method: QR_EC is re-checked as late as possible after completing the _Qxx evaluation. The target may implement SCI_EVT like a level triggered interrupt. It is proven on kernel bugzilla 94411 that, Windows will have all _Qxx evaluations parallelized. Thus unless required by further evidences, we needn't implement this mode as it is a conflict of the _Qxx parallelism requirement. Note that, according to the reports, there are platforms that cannot be handled using the "Status" mode without enabling the EC_FLAGS_QUERY_HANDSHAKE quirk. But they can be handled with the other modes according to the tests (kernel bugzilla 97381). The following log entry can be used to confirm the differences of the 3 modes as it should appear at the different positions for the 3 modes: Command(QR_EC) unblocked Status: appearing after EC_SC(W) = 0x84 Query: appearing after EC_DATA(R) = 0xXX where XX is the event number used to determine _QXX Event: appearing after first EC_SC(R) = 0xX0 SCI_EVT=x BURST=0 CMD=0 IBF=0 OBF=0 that is next to the following log entry: Command(QR_EC) completed by hardware Link: https://bugzilla.kernel.org/show_bug.cgi?id=94411 Link: https://bugzilla.kernel.org/show_bug.cgi?id=97381 Link: https://bugzilla.kernel.org/show_bug.cgi?id=98111 Reported-and-tested-by: Gabriele Mazzotta Reported-and-tested-by: Tigran Gabrielyan Reported-and-tested-by: Adrien D Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/ec.c | 137 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 132 insertions(+), 5 deletions(-) commit 9d8993be2d9149bc8b3132dad030ff5960f5abcc Author: Lv Zheng Date: Thu Jun 11 13:21:32 2015 +0800 ACPI / EC: Convert event handling work queue into loop style. During the period that a work queue is scheduled (queued up for run) but hasn't been run, second schedule_work() could fail. This may not lead to the loss of queries because QR_EC is always ensured to be submitted after the work queue has been in the running state. The event handling work queue can be changed into the loop style to allow us to control the code in a more flexible way: 1. Makes it possible to add event=0x00 termination condition in the loop. 2. Increases the thoughput of the QR_EC transactions as the 2nd+ QR_EC transactions may be handled in the same work item used for the 1st QR_EC transaction, thus the delay caused by the 2nd+ work item scheduling can be eliminated. Except the logging message changes and the throughput improvement, this patch is just a funcitonal no-op. Signed-off-by: Lv Zheng Tested-by: Gabriele Mazzotta Tested-by: Tigran Gabrielyan Tested-by: Adrien D Signed-off-by: Rafael J. Wysocki drivers/acpi/ec.c | 33 ++++++++++++++++++++++++--------- drivers/acpi/internal.h | 1 + 2 files changed, 25 insertions(+), 9 deletions(-) commit f8b8eb71533338654f39211a87efeca35055566b Author: Lv Zheng Date: Thu Jun 11 13:21:23 2015 +0800 ACPI / EC: Cleanup transaction state transition. This patch collects transaction state transition code into one function. We then could have a single function to maintain transaction transition related behaviors. No functional changes. Signed-off-by: Lv Zheng Tested-by: Gabriele Mazzotta Tested-by: Tigran Gabrielyan Tested-by: Adrien D Signed-off-by: Rafael J. Wysocki drivers/acpi/ec.c | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) commit 0519ade71852701ec76ee7f8a0b37fe5a5504f98 Author: Mathias Krause Date: Sat Jun 13 14:26:58 2015 +0200 ACPI / scan: constify ACPI device ids Make the button ACPI device ID array static const. Safes us a little bit of code. Signed-off-by: Mathias Krause Signed-off-by: Rafael J. Wysocki drivers/acpi/scan.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b03466883edb192b3e3877ea3f71036a3899ae51 Author: Mathias Krause Date: Sat Jun 13 14:26:57 2015 +0200 ACPI / processor: constify DMI system id table There is no need to have processor_power_dmi_table[] writeable, constify it. Signed-off-by: Mathias Krause Signed-off-by: Rafael J. Wysocki drivers/acpi/processor_idle.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 69cda6e0f035494188fd76749e35627e087b3ff8 Author: Mathias Krause Date: Sat Jun 13 14:26:56 2015 +0200 ACPI / HED: constify ACPI device ids Constify the acpi_hed_ids[] ACPI device IDs array -- no need to have it writeable. Signed-off-by: Mathias Krause Signed-off-by: Rafael J. Wysocki drivers/acpi/hed.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b2687cd7d5fd7394254ebc2b6a553ed9a3dcd5f1 Author: Mathias Krause Date: Sat Jun 13 14:26:50 2015 +0200 ACPI / LPSS: constify device descriptors The device descriptors are never written to -- even pointed to as 'const' from struct lpss_private_data. Make them r/o for real. Signed-off-by: Mathias Krause Signed-off-by: Rafael J. Wysocki drivers/acpi/acpi_lpss.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) commit 048d16da75cc3ae1a75455c0e7b2bf107c4f0f84 Author: Mathias Krause Date: Sat Jun 13 14:26:55 2015 +0200 ACPI / battery: mark DMI table as __initconst The bat_dmi_table[] DMI table is referenced from the __init function acpi_battery_init_async() only. It and its referenced functions can therefore be marked __initconst to free up ~1kB of runtime memory after initialization is done. Signed-off-by: Mathias Krause Signed-off-by: Rafael J. Wysocki drivers/acpi/battery.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 27059b9132880f4211c41dfbf7665671cbf1ac91 Author: Mathias Krause Date: Sat Jun 13 14:26:54 2015 +0200 ACPI / battery: minor tweaks to acpi_battery_units() Make the acpi_battery_units() function take a const argument and return a const char*, too. Also make it static. It probably doesn't matter, as gcc will be clever enough to optimize and inline the code even without these hints. However, we also get rid of a #ifdef block by moving the function closer to its usage location, so it's at least a small gain in code readability. Signed-off-by: Mathias Krause Signed-off-by: Rafael J. Wysocki drivers/acpi/battery.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) commit a465878455a06a8d52599be25459ba23cec3fd09 Author: Mathias Krause Date: Sat Jun 13 14:26:53 2015 +0200 ACPI / battery: constify the offset tables The offset tables are only read, not modified. Make them const. Signed-off-by: Mathias Krause Signed-off-by: Rafael J. Wysocki drivers/acpi/battery.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit ff4378f4b813d5aa26bbf814a9060638dab1fbbf Author: Alexandru M Stan Date: Tue Jun 9 13:04:49 2015 +0200 mfd: cros_ec: spi: Add delay for asserting CS Some ECs need a little time for waking up before they can accept SPI data at a high speed. This is configurable via a DT property "google,cros-ec-spi-pre-delay". This patch makes the cros_ec_spi driver to cause a delay before the beginning of a SPI transaction, to make sure that the EC has already woken up, if the property has been defined in the DTS. Signed-off-by: Alexandru M Stan Reviewed-by: Doug Anderson Signed-off-by: Chris Zhong Signed-off-by: Javier Martinez Canillas Tested-by: Heiko Stuebner Acked-by: Lee Jones Acked-by: Olof Johansson Signed-off-by: Lee Jones drivers/mfd/cros_ec_spi.c | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) commit f44c21ff6d2dc76957ddbf26fdf442ee5a9cf3c0 Author: Alexandru M Stan Date: Tue Jun 9 13:04:48 2015 +0200 mfd: cros_ec: spi: Add a DT property to delay asserting the CS Some ECs need a little time for waking up before they can accept SPI data at a high speed. Add a "google,cros-ec-spi-pre-delay" property to the DT binding to configure this. If this property isn't set, then no delay will be added. However, if set it will cause a delay equal to the value passed to it to be inserted at the beginning of a transaction. Signed-off-by: Alexandru M Stan Reviewed-by: Doug Anderson Signed-off-by: Chris Zhong Signed-off-by: Javier Martinez Canillas Tested-by: Heiko Stuebner Acked-by: Lee Jones Acked-by: Olof Johansson Signed-off-by: Lee Jones Documentation/devicetree/bindings/mfd/cros-ec.txt | 4 ++++ 1 file changed, 4 insertions(+) commit 57b33ff077beebb68481a2b6b8e5fe58ca998169 Author: Gwendal Grignou Date: Tue Jun 9 13:04:47 2015 +0200 mfd: cros_ec: Support multiple EC in a system Chromebooks can have more than one Embedded Controller so the cros_ec device id has to be incremented for each EC registered. Add a new structure to represent multiple EC as different char devices (e.g: /dev/cros_ec, /dev/cros_pd). It connects to cros_ec_device and allows sysfs inferface for cros_pd. Also reduce number of allocated objects, make chromeos sysfs class object a static and add refcounting to prevent object deletion while command is in progress. Signed-off-by: Gwendal Grignou Reviewed-by: Dmitry Torokhov Signed-off-by: Javier Martinez Canillas Tested-by: Heiko Stuebner Acked-by: Lee Jones Acked-by: Olof Johansson Signed-off-by: Lee Jones drivers/input/keyboard/cros_ec_keyb.c | 2 +- drivers/mfd/cros_ec.c | 54 ++++++++++-- drivers/mfd/cros_ec_i2c.c | 1 - drivers/mfd/cros_ec_spi.c | 1 - drivers/platform/chrome/cros_ec_dev.c | 130 ++++++++++++++++++++--------- drivers/platform/chrome/cros_ec_dev.h | 7 -- drivers/platform/chrome/cros_ec_lightbar.c | 75 +++++++++-------- drivers/platform/chrome/cros_ec_lpc.c | 1 - drivers/platform/chrome/cros_ec_sysfs.c | 48 +++++------ include/linux/mfd/cros_ec.h | 44 ++++++++-- 10 files changed, 236 insertions(+), 127 deletions(-) commit d365407079d33106f76bd486a863de05eb5ae95d Author: Stephen Barber Date: Tue Jun 9 13:04:46 2015 +0200 mfd: cros_ec: add bus-specific proto v3 code Add proto v3 support to the SPI, I2C, and LPC. Signed-off-by: Stephen Barber Signed-off-by: Javier Martinez Canillas Tested-by: Heiko Stuebner Reviewed-by: Gwendal Grignou Tested-by: Gwendal Grignou Acked-by: Lee Jones Acked-by: Olof Johansson Signed-off-by: Lee Jones drivers/mfd/cros_ec_i2c.c | 166 ++++++++++++++- drivers/mfd/cros_ec_spi.c | 382 +++++++++++++++++++++++++++++----- drivers/platform/chrome/cros_ec_lpc.c | 73 ++++++- include/linux/mfd/cros_ec.h | 6 + 4 files changed, 569 insertions(+), 58 deletions(-) commit 2c7589af3c4dee844e6a4174f2aa8996cf837604 Author: Stephen Barber Date: Tue Jun 9 13:04:45 2015 +0200 mfd: cros_ec: add proto v3 skeleton Add support in cros_ec.c to handle EC host command protocol v3. For v3+, probe for maximum shared protocol version and max request, response, and passthrough sizes. For now, this will always fall back to v2, since there is no bus-specific code for handling proto v3 packets. Signed-off-by: Stephen Barber Signed-off-by: Javier Martinez Canillas Reviewed-by: Gwendal Grignou Tested-by: Gwendal Grignou Tested-by: Heiko Stuebner Acked-by: Lee Jones Acked-by: Olof Johansson Signed-off-by: Lee Jones drivers/mfd/cros_ec.c | 23 ++- drivers/mfd/cros_ec_i2c.c | 4 + drivers/mfd/cros_ec_spi.c | 7 +- drivers/platform/chrome/cros_ec_lpc.c | 4 + drivers/platform/chrome/cros_ec_proto.c | 339 ++++++++++++++++++++++++++++---- include/linux/mfd/cros_ec.h | 28 ++- 6 files changed, 355 insertions(+), 50 deletions(-) commit 062476f24aa7cf714169342cc50626fd9bbb93da Author: Javier Martinez Canillas Date: Tue Jun 9 13:04:44 2015 +0200 mfd: cros_ec: Move protocol helpers out of the MFD driver The MFD driver should only have the logic to instantiate its child devices and setup any shared resources that will be used by the subdevices drivers. The cros_ec MFD is more complex than expected since it also has helpers to communicate with the EC. So the driver will only get more bigger as other protocols are supported in the future. So move the communication protocol helpers to its own driver as drivers/platform/chrome/cros_ec_proto.c. Suggested-by: Lee Jones Signed-off-by: Javier Martinez Canillas Tested-by: Heiko Stuebner Acked-by: Lee Jones Acked-by: Olof Johansson Signed-off-by: Lee Jones drivers/i2c/busses/Kconfig | 2 +- drivers/input/keyboard/Kconfig | 2 +- drivers/mfd/Kconfig | 6 +- drivers/mfd/cros_ec.c | 96 -------------------------- drivers/platform/chrome/Kconfig | 9 ++- drivers/platform/chrome/Makefile | 1 + drivers/platform/chrome/cros_ec_proto.c | 115 ++++++++++++++++++++++++++++++++ 7 files changed, 129 insertions(+), 102 deletions(-) commit 256ab950bdaa8797b7bac8fc11a567030d486304 Author: Stephen Barber Date: Tue Jun 9 13:04:43 2015 +0200 mfd: cros_ec: rev cros_ec_commands.h Update cros_ec_commands.h to the latest version in the EC firmware sources and add power domain and passthru commands. Also, update lightbar to use new command names. Signed-off-by: Stephen Barber Reviewed-by: Randall Spangler Signed-off-by: Javier Martinez Canillas Tested-by: Heiko Stuebner Reviewed-by: Gwendal Grignou Tested-by: Gwendal Grignou Acked-by: Lee Jones Acked-by: Olof Johansson Signed-off-by: Lee Jones drivers/platform/chrome/cros_ec_lightbar.c | 14 +- include/linux/mfd/cros_ec_commands.h | 277 ++++++++++++++++++++++++++--- 2 files changed, 262 insertions(+), 29 deletions(-) commit a841178445bb72a3d566b4e6ab9d19e9b002eb47 Author: Javier Martinez Canillas Date: Tue Jun 9 13:04:42 2015 +0200 mfd: cros_ec: Use a zero-length array for command data Commit 1b84f2a4cd4a ("mfd: cros_ec: Use fixed size arrays to transfer data with the EC") modified the struct cros_ec_command fields to not use pointers for the input and output buffers and use fixed length arrays instead. This change was made because the cros_ec ioctl API uses that struct cros_ec_command to allow user-space to send commands to the EC and to get data from the EC. So using pointers made the API not 64-bit safe. Unfortunately this approach was not flexible enough for all the use-cases since there may be a need to send larger commands on newer versions of the EC command protocol. So to avoid to choose a constant length that it may be too big for most commands and thus wasting memory and CPU cycles on copy from and to user-space or having a size that is too small for some big commands, use a zero-length array that is both 64-bit safe and flexible. The same buffer is used for both output and input data so the maximum of these values should be used to allocate it. Suggested-by: Gwendal Grignou Signed-off-by: Javier Martinez Canillas Tested-by: Heiko Stuebner Acked-by: Lee Jones Acked-by: Olof Johansson Signed-off-by: Lee Jones drivers/i2c/busses/i2c-cros-ec-tunnel.c | 45 ++++++--- drivers/input/keyboard/cros_ec_keyb.c | 29 ++++-- drivers/mfd/cros_ec.c | 28 ++++-- drivers/mfd/cros_ec_i2c.c | 4 +- drivers/mfd/cros_ec_spi.c | 2 +- drivers/platform/chrome/cros_ec_dev.c | 65 +++++++----- drivers/platform/chrome/cros_ec_lightbar.c | 152 +++++++++++++++++++--------- drivers/platform/chrome/cros_ec_lpc.c | 8 +- drivers/platform/chrome/cros_ec_sysfs.c | 154 ++++++++++++++++++----------- include/linux/mfd/cros_ec.h | 6 +- 10 files changed, 318 insertions(+), 175 deletions(-) commit bb03ffb96c72418d06e75c7b74ea62e04c78d322 Author: Todd Broch Date: Wed May 20 11:31:28 2015 +0200 mfd: cros_ec: Instantiate sub-devices from device tree If the EC device tree node has sub-nodes, try to instantiate them as MFD sub-devices. We can configure the EC features provided by the board. Signed-off-by: Todd Broch Signed-off-by: Javier Martinez Canillas Reviewed-by: Gwendal Grignou Tested-by: Heiko Stuebner Signed-off-by: Lee Jones drivers/mfd/cros_ec.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) commit e7b707f96820161820a864d2ee81740a14da6b93 Author: Gwendal Grignou Date: Wed May 20 11:31:27 2015 +0200 mfd: cros_ec: Remove parent field Parent and device were pointing to the same device structure. Parent is unused, removed. Signed-off-by: Gwendal Grignou Tested-by: Stephen Barber Tested-by: Heiko Stuebner Tested-by: Gwendal Grignou Reviewed-by: Puthikorn Voravootivat Signed-off-by: Javier Martinez Canillas Signed-off-by: Lee Jones drivers/mfd/cros_ec_i2c.c | 1 - drivers/mfd/cros_ec_spi.c | 1 - drivers/platform/chrome/cros_ec_lpc.c | 1 - include/linux/mfd/cros_ec.h | 2 -- 4 files changed, 5 deletions(-) commit 44f610cdfb8d1d134dc7756ad50287acfaee7f2e Author: Mathias Krause Date: Sat Jun 13 14:26:49 2015 +0200 ACPI / AC: constify DMI system id table There is no need to have ac_dmi_table[] writeable, constify it. Signed-off-by: Mathias Krause Signed-off-by: Rafael J. Wysocki drivers/acpi/ac.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4a4f01a6af433894ad49110ba7857a76c4c9ca8b Author: Mathias Krause Date: Sat Jun 13 14:26:59 2015 +0200 ACPI / video: constify ACPI and DMI id tables Make the video ACPI device ID array static and constify the DMI system IDs array. Saves us a little bit of code. Signed-off-by: Mathias Krause Signed-off-by: Rafael J. Wysocki drivers/acpi/video_detect.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 4a47f1eb35c5933ef32b2b99ef20f8fe4a251429 Author: Jan Beulich Date: Mon Jun 15 13:00:59 2015 +0100 kconfig: re-generate *.c_shipped files after previous change Signed-off-by: Jan Beulich Signed-off-by: Michal Marek scripts/kconfig/zconf.lex.c_shipped | 291 +++++++++++--------- scripts/kconfig/zconf.tab.c_shipped | 524 +++++++++++++++++++----------------- 2 files changed, 447 insertions(+), 368 deletions(-) commit 31847b67bec0e989961118520406a63fdeac7246 Author: Jan Beulich Date: Mon Jun 15 13:00:21 2015 +0100 kconfig: allow use of relations other than (in)equality Over the years I found it desirable to be able to use all sorts of relations, not just (in)equality. And apparently I'm not the only one, as there's at least one example in the tree where the programmer assumed this would work (see DEBUG_UART_8250_WORD in arch/arm/Kconfig.debug). Another possible use would e.g. be to fold the two SMP/NR_CPUS prompts into one: SMP could be promptless, simply depending on NR_CPUS > 1. A (desirable) side effect of this change - resulting from numeric values now necessarily being compared as numbers rather than as strings - is that comparing hex values now works as expected: Other than int ones (which aren't allowed to have leading zeroes), zeroes following the 0x prefix made them compare unequal even if their values were equal. Signed-off-by: Jan Beulich Signed-off-by: Michal Marek scripts/kconfig/expr.c | 167 ++++++++++++++++++++++++++++++++++++++++++++--- scripts/kconfig/expr.h | 4 +- scripts/kconfig/symbol.c | 4 ++ scripts/kconfig/zconf.l | 4 ++ scripts/kconfig/zconf.y | 9 +++ 5 files changed, 177 insertions(+), 11 deletions(-) commit 654a182d8562d55a69fdfbd2709e11f6ee1a0aac Author: Hans de Goede Date: Tue Jun 9 10:32:25 2015 +0200 ACPI / video: Add a parameter to not register the backlight sysfs interface On some systems acpi-video backlight is broken in the sense that it cannot control the brightness of the backlight, but it must still be called on resume to power-up the backlight after resume. This commit allows these systems to work by going through all the usual backlight control moves, while not registering a sysfs backlight interface. This commit also adds a quirk enabling this parameter on Toshiba Portege R830 systems which are known to be affected by this. I wish there was a better way to deal with this, but we've been unable to find one. Link: https://bugzilla.kernel.org/show_bug.cgi?id=21012 Link: https://bugs.freedesktop.org/show_bug.cgi?id=82634 Reported-and-tested-by: Sylvain Pasche Signed-off-by: Hans de Goede Acked-by: Aaron Lu Signed-off-by: Rafael J. Wysocki drivers/acpi/video.c | 43 +++++++++++++++++++++++++++++++++++++++---- 1 file changed, 39 insertions(+), 4 deletions(-) commit 7f5c1882add891f7420a327e908f206fafed3670 Author: Hans de Goede Date: Thu May 28 18:29:48 2015 +0200 ACPI / video: Add enable_native_backlight quirk for MacbookPro12,1 It seems that the latest generation of MacbookPro needs to use the native backlight driver, just like most modern laptops do, but it does not automatically get enabled as the Apple BIOS does not advertise Windows 8 compatibility. So add a quirk for this. Reported-by: Christopher Beland Signed-off-by: Hans de Goede Signed-off-by: Rafael J. Wysocki drivers/acpi/video.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit cf8a471909dd6a0df3efe2586cab5323184b4a7d Author: Takashi Sakamoto Date: Sun Jun 14 12:49:37 2015 +0900 ALSA: bebob: add support for Behringer FCA 610/1616 They're based on DM1500 (ArchWave produced), and BeBoB version 3 is installed. $ cat /proc/asound/FCA610/firewire/firmware Manufacturer: bridgeCo Protocol Ver: 3 Build Ver: 0 GUID: 0x001564000002AD73 Model ID: 0x03 Model Rev: 0 Firmware Date: 20121102 Firmware Time: 153431 Firmware ID: 0x610 Firmware Ver: 8348 Base Addr: 0x400C0080 Max Size: 1422624 Loader Date: 20121015 Loader Time: 104710 Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai sound/firewire/Kconfig | 1 + sound/firewire/bebob/bebob.c | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) commit 8d1c2694e45bd5a1b7e79734952e8dfb6f2974a6 Author: Takashi Sakamoto Date: Sun Jun 14 12:49:36 2015 +0900 ALSA: bebob: keep duplex streams always to keep internal multiplexer properly Behringer FCA610 transmits packets with periodic noisy PCM samples when receiving no streams, and generates a bit noisy sound. ALSA BeBoB driver is programmed to establish both in/out connections when starting streaming, then transfers packets as userspace applications requested. This means that there's a case that one of incoming/outgoing streams is running, to save CPU and bandwidth usage. Although, it's natural to start transferring packets in both direction. This commit makes this driver to keeps duplex streams always. Tested-by: Kim Tore Jensen Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai sound/firewire/bebob/bebob.h | 3 +-- sound/firewire/bebob/bebob_midi.c | 8 ++++---- sound/firewire/bebob/bebob_pcm.c | 8 ++++---- sound/firewire/bebob/bebob_stream.c | 24 +++++++----------------- 4 files changed, 16 insertions(+), 27 deletions(-) commit c4d860a0d256663937b51468ea13de3c2cd2a09d Author: Takashi Sakamoto Date: Sun Jun 14 12:49:35 2015 +0900 ALSA: bebob: loosen up severity of checking continuity for BeBoB v3 quirk PrismSound Orpheus, Behringer UFX1604 and FCA610 work with BeBoB v3, and they're confirmed to transmit discontinuous packets in the beginning of streaming. payload CIP headers 8 0x00070000 0x9002FFFF 8 0x00070000 0x9002FFFF 8 0x00070000 0x9002FFFF 8 0x00070008 0x9002FFFF <- 8 0x00070008 0x9002FFFF 8 0x00070008 0x9002FFFF 8 0x00070008 0x9002FFFF 8 0x00070008 0x9002FFFF 8 0x00070008 0x9002FFFF 232 0x00070000 0x9002E798 <- 232 0x00070008 0x9002FB99 232 0x00070010 0x90021398 8 0x00070018 0x9002FFFF (This sample was got with Behringer FCA610 and FFADO library.) This commit sets CIP_EMPTY_HAS_WRONG_DBC and CIP_SKIP_DBC_ZERO_CHECK to ignore these discontinuities. Tested-by: Kim Tore Jensen Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai sound/firewire/bebob/bebob_stream.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 9a73195e614bf01722331c820c260b9cb77e634e Author: Takashi Sakamoto Date: Sun Jun 14 12:49:34 2015 +0900 ALSA: bebob: expand timeout for DM1500 quirk Behringer FCA610 and UFX1604 is confirmed to require more time till transmitting packets after establishing connections. This seems to be a quirk of DM1500 ASIC which ArchWave produced. For this quirk, this commit extends the time to wait up to 2 seconds. As a result, in worst cases, below userspace functions require 2 seconds to return. - snd_pcm_prepare() - snd_pcm_hw_params() - snd_pcm_recover() Tested-by: Kim Tore Jensen Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai sound/firewire/bebob/bebob_stream.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7b4d7dcfa89e75f69547fbacfbf09a1d6c242a6b Author: Takashi Sakamoto Date: Sun Jun 14 12:49:33 2015 +0900 ALSA: bebob: add 'version' member for BeBoB protocol version BeBoB installed devices have BeBoB register area. This area stores basic information about its firmware. A register has its protocol version. This commit adds 'version' member and store the device's protocol version to handle v3 quirks in following commits. Tested-by: Kim Tore Jensen Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai sound/firewire/bebob/bebob.c | 8 ++++++++ sound/firewire/bebob/bebob.h | 3 +++ 2 files changed, 11 insertions(+) commit 05773792716e5a75b0f4bf4edcdc1e9c3b199ab8 Author: Takashi Sakamoto Date: Sun Jun 14 12:49:32 2015 +0900 ALSA: bebob: add SYT-Match support In previous commits, this driver can detect the source of clock as mush as possible. SYT-Match mode is also available. This commit purge the restriction. Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai sound/firewire/bebob/bebob_pcm.c | 5 ----- sound/firewire/bebob/bebob_stream.c | 20 ++++++++++++++++++-- 2 files changed, 18 insertions(+), 7 deletions(-) commit 554d8983a07d853bc4761c575db2f1bbb2f14372 Author: Takashi Sakamoto Date: Sun Jun 14 12:49:31 2015 +0900 ALSA: bebob: obsolete string literal expression for clock source The old string literals were completely replaced by new normalized representation. This commit obsoletes it. Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai sound/firewire/bebob/bebob.h | 1 - sound/firewire/bebob/bebob_focusrite.c | 12 ------------ sound/firewire/bebob/bebob_maudio.c | 10 ++++++---- sound/firewire/bebob/bebob_terratec.c | 8 -------- sound/firewire/bebob/bebob_yamaha.c | 2 -- 5 files changed, 6 insertions(+), 27 deletions(-) commit 3e254b16b65dbbcc2528781070e1be0f7945f220 Author: Takashi Sakamoto Date: Sun Jun 14 12:49:30 2015 +0900 ALSA: bebob: use normalized representation for the type of clock source This commit changes function prototype and its processing. As a result, function caller can execute additional processing according to detected clock source. Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai sound/firewire/bebob/bebob.h | 4 ++-- sound/firewire/bebob/bebob_pcm.c | 11 ++++++++--- sound/firewire/bebob/bebob_proc.c | 22 ++++++++++++---------- sound/firewire/bebob/bebob_stream.c | 27 +++++++++++---------------- 4 files changed, 33 insertions(+), 31 deletions(-) commit ba5177131d8cb4b778a43ce995155928be851117 Author: Takashi Sakamoto Date: Sun Jun 14 12:49:29 2015 +0900 ALSA: bebob: preparation for replacing string literals by normalized representation for model-dependent structures Previous commit adds a enumerator as a normalized representation of clock source, while model-dependent structures still use string literals for this purpose. This commit is a preparation for replacement. Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai sound/firewire/bebob/bebob_focusrite.c | 27 +++++++++++++++++++++++---- sound/firewire/bebob/bebob_maudio.c | 13 ++++++++++--- sound/firewire/bebob/bebob_terratec.c | 26 +++++++++++++++++++++++--- sound/firewire/bebob/bebob_yamaha.c | 18 ++++++++++++++++-- 4 files changed, 72 insertions(+), 12 deletions(-) commit 13a4f42016fecbf971c3f6e249027a009a83839f Author: Takashi Sakamoto Date: Sun Jun 14 12:49:28 2015 +0900 ALSA: bebob: apply new enumerator to normalize the type of clock source Previous commit allows this driver to detect several types of clock source, while there's no normalized expression for it. This commit adds a new enumerator for this purpose. Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai sound/firewire/bebob/bebob.h | 6 ++++++ 1 file changed, 6 insertions(+) commit 5a6688127082683f8c343da7d326dc22e45f4e4b Author: Takashi Sakamoto Date: Sun Jun 14 12:49:27 2015 +0900 ALSA: bebob: improve signal mode detection for clock source With BeBoB version 3, current ALSA BeBoB driver detects the type of current clock signal source wrongly. This is due to a lack of proper implementation to parse the information. This commit renews the parser. As a result, this driver detects SYT-Match clock signal, thus it can start streams with two modes; SYT-Match mode and the others. SYT-Match mode will be supported in future commits. There's a constrain about detected internal/external clock source. When detecting external clock source, this driver allows userspace applications to use current sampling rate only. This is due to consider abour synchronization to external clock sources such as S/PDIF, ADAT or word-clock. According to several information from some devices, I guesss that the internal clock of most devices synchronize to IEEE 1394 cycle start packet. In this case, by a usual way, it's detect as 'Sync type of output Music Sub-Unit' connected to 'Sync type of PCR output Unit (oPCR)', and this driver judges it as internal clock. Therefore, userspace applications is allowed to request arbitrary supported sampling rates. On the other hand, several devices based on BeBoB version 3 have additional internal clock. In this case, by a usual way, it's detect as 'Sync/Additional type of External input Unit'. Unfortunately, there's no way to distinguish this sync type from the other external clock sources such as word-clock. In this case, this driver handles it as external and userspace applications is forced to use current sampling rate. I note that when the source of clock is detected as 'Isochronous stream type of input PCR[0]', it's under 'SYT-Match' mode. In this mode, the synchronization clock is generated according to SYT-series in received packets. In this case, this driver generates the series by myself. I experienced this mode often make the device silent suddenly during playbacking. This means that the mode is easy to lost synchronization. Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai sound/firewire/bebob/bebob.h | 3 +- sound/firewire/bebob/bebob_stream.c | 78 +++++++++++++++++++++++++++++++++---- 2 files changed, 72 insertions(+), 9 deletions(-) commit 88f1236bfa9586ca458b67abde8ce91665bba079 Merge: 70a3887 8b99aba Author: Takashi Iwai Date: Mon Jun 15 13:15:48 2015 +0200 Merge branch 'for-linus' into for-next Conflicts: sound/pci/hda/patch_realtek.c Signed-off-by: Takashi Iwai commit e85dae7048dc53b6945219b02c56041e4a661e6c Author: Mathias Krause Date: Sat Jun 13 14:25:16 2015 +0200 ASoC: intel: Constify ACPI device ids Constify the ACPI device ID array, it doesn't need to be writable at runtime. Signed-off-by: Mathias Krause Signed-off-by: Mark Brown sound/soc/intel/common/sst-acpi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4e0ce6a4d5bd276bd9a61763a686f3e650848da5 Author: Mathias Krause Date: Sat Jun 13 14:25:15 2015 +0200 ASoC: rt5670: Constify ACPI device ids and register defaults Constify the ACPI device ID array and the register map, no need to have them writable at runtime. Also drop the unneeded RT5670_INIT_REG_LEN define. Signed-off-by: Mathias Krause Signed-off-by: Mark Brown sound/soc/codecs/rt5670.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 85a5965e1dc5473fd2ae5ff0cb071cfc597c3451 Author: Takeshi Yoshimura Date: Sun Jun 14 20:55:18 2015 +0900 wm831x_power: Fix off-by-one at free_irq() An error handling in wm831x_power_probe() mistakenly frees a failed-to- request irq as well as other irqs. I added missing decrement of the loop counter. Signed-off-by: Takeshi Yoshimura Acked-by: Charles Keepax Signed-off-by: Sebastian Reichel drivers/power/wm831x_power.c | 1 + 1 file changed, 1 insertion(+) commit d9378080a12ba314476fcccf4ce1328794e4e230 Merge: ed8e0ed 3e2d8e1 Author: Kalle Valo Date: Mon Jun 15 13:25:32 2015 +0300 Merge ath-next from ath.git Major changes: wil6210: * add modparam for bcast ring size * support hidden SSID * add per-MCS Rx stats commit 8610d09a40c10dea55dada151cf85cce253f511c Author: Mathias Krause Date: Sat Jun 13 14:25:13 2015 +0200 ASoC: max98090: Constify ACPI device ids and register defaults Constify the ACPI device ID array and the register map, no need to have them writable at runtime. Signed-off-by: Mathias Krause Signed-off-by: Mark Brown sound/soc/codecs/max98090.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b895dc2c47c3e81c9de452d84ad4f4fc6f862de1 Author: Mathias Krause Date: Sat Jun 13 14:25:14 2015 +0200 ASoC: rt5640: Constify ACPI device ids and register defaults Constify the ACPI device ID array and the register map, no need to have them writable at runtime. Also drop the unneeded RT5640_INIT_REG_LEN define. Signed-off-by: Mathias Krause Signed-off-by: Mark Brown sound/soc/codecs/rt5640.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit de1e00871d1e6ad803850b9eb1d4d32305187c26 Author: Jeremiah Mahler Date: Fri Jun 12 21:56:40 2015 -0700 crypto: aesni - fix crypto_fpu_exit() section mismatch The '__init aesni_init()' function calls the '__exit crypto_fpu_exit()' function directly. Since they are in different sections, this generates a warning. make CONFIG_DEBUG_SECTION_MISMATCH=y ... WARNING: arch/x86/crypto/aesni-intel.o(.init.text+0x12b): Section mismatch in reference from the function init_module() to the function .exit.text:crypto_fpu_exit() The function __init init_module() references a function __exit crypto_fpu_exit(). This is often seen when error handling in the init function uses functionality in the exit path. The fix is often to remove the __exit annotation of crypto_fpu_exit() so it may be used outside an exit section. Fix the warning by removing the __exit annotation. Signed-off-by: Jeremiah Mahler Signed-off-by: Herbert Xu arch/x86/crypto/fpu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2c6f6eabc0bfcea0a62370038da713e3873cff31 Author: Dan Streetman Date: Fri Jun 12 10:58:47 2015 -0400 crypto: nx - replace NX842_MEM_COMPRESS with function Replace the NX842_MEM_COMPRESS define with a function that returns the specific platform driver's required working memory size. The common nx-842.c driver refuses to load if there is no platform driver present, so instead of defining an approximate working memory size that's the maximum approximate size of both platform driver's size requirements, the platform driver can directly provide its specific, i.e. sizeof(struct nx842_workmem), size requirements which the 842-nx crypto compression driver will use. This saves memory by both reducing the required size of each driver to the specific sizeof() amount, as well as using the specific loaded platform driver's required amount, instead of the maximum of both. Signed-off-by: Dan Streetman Signed-off-by: Herbert Xu drivers/crypto/nx/nx-842-crypto.c | 2 +- drivers/crypto/nx/nx-842-powernv.c | 11 +++++++---- drivers/crypto/nx/nx-842-pseries.c | 7 +++---- drivers/crypto/nx/nx-842.c | 11 +++++++++++ drivers/crypto/nx/nx-842.h | 9 +++------ 5 files changed, 25 insertions(+), 15 deletions(-) commit 32be6d3e362b896c81aae7c635d44e5a91406ce2 Author: Dan Streetman Date: Fri Jun 12 10:58:46 2015 -0400 crypto: nx - move include/linux/nx842.h into drivers/crypto/nx/nx-842.h Move the contents of the include/linux/nx842.h header file into the drivers/crypto/nx/nx-842.h header file. Remove the nx842.h header file and its entry in the MAINTAINERS file. The include/linux/nx842.h header originally was there because the crypto/842.c driver needed it to communicate with the nx-842 hw driver. However, that crypto compression driver was moved into the drivers/crypto/nx/ directory, and now can directly include the nx-842.h header. Nothing else needs the public include/linux/nx842.h header file, as all use of the nx-842 hardware driver will be through the "842-nx" crypto compression driver, since the direct nx-842 api is very limited in the buffer alignments and sizes that it will accept, and the crypto compression interface handles those limitations and allows any alignment and size buffers. Signed-off-by: Dan Streetman Signed-off-by: Herbert Xu MAINTAINERS | 1 - drivers/crypto/nx/nx-842-crypto.c | 3 ++- drivers/crypto/nx/nx-842.h | 21 ++++++++++++++++++++- include/linux/nx842.h | 24 ------------------------ 4 files changed, 22 insertions(+), 27 deletions(-) commit ed8e0ed53b317f72df907298fb653a976b083dc4 Author: Stanislaw Gruszka Date: Thu Jun 11 12:53:45 2015 +0200 rt2800: fix assigning same WCID for different stations On some hardware reading WCID entries table results getting 0xff numbers, no matter of value written there before. This cause assigning the same WCID for different stations and makes not possible to connect to more than one station. Signed-off-by: Stanislaw Gruszka Signed-off-by: Kalle Valo drivers/net/wireless/rt2x00/rt2800.h | 10 ++++++ drivers/net/wireless/rt2x00/rt2800lib.c | 57 ++++++++++----------------------- drivers/net/wireless/rt2x00/rt2x00mac.c | 16 +-------- 3 files changed, 28 insertions(+), 55 deletions(-) commit b43fccf4b5cae58829abbeae497a98505fa1a5e9 Author: Axel Lin Date: Sun Jun 14 10:28:01 2015 +0800 ASoC: ml26124: Remove duplicate code Current code has duplicate code for 16000, 32000 and 48000 sample rates. get_srate() returns negative error code for unsupported rate, so we can remove the duplicate code in the swith cases by calling get_srate() first. Signed-off-by: Axel Lin Signed-off-by: Mark Brown sound/soc/codecs/ml26124.c | 58 +++++++++------------------------------------- 1 file changed, 11 insertions(+), 47 deletions(-) commit f7a40873d2fa04d7e87bd829074da9b0f32a33ed Author: Arend van Spriel Date: Thu Jun 11 00:12:23 2015 +0200 brcmfmac: assure p2pdev is unregistered upon driver unload When unloading the driver with a p2pdev interface it resulted in a warning upon calling wiphy_unregister() and subsequently a crash in the driver. This patch assures the p2pdev is unregistered calling unregister_wdev() before doing the wiphy_unregister(). 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 | 4 +--- drivers/net/wireless/brcm80211/brcmfmac/core.c | 1 + drivers/net/wireless/brcm80211/brcmfmac/p2p.c | 6 ++++-- 3 files changed, 6 insertions(+), 5 deletions(-) commit 55479df8840d8de3dfa8c4950965704e1ea2254e Author: Arend van Spriel Date: Thu Jun 11 00:12:22 2015 +0200 brcmfmac: move p2p attach/detach functions Moving two functions in p2p.c as is so next change will be easier to review. 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/p2p.c | 198 +++++++++++++------------- 1 file changed, 99 insertions(+), 99 deletions(-) commit f37d69a4babc4609045b96521736bf2772b711af Author: Arend van Spriel Date: Thu Jun 11 00:12:21 2015 +0200 brcmfmac: free ifp for non-netdev interface in p2p module Making it more clear by freeing the ifp in same place where the vif object is freed. 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/core.c | 2 -- drivers/net/wireless/brcm80211/brcmfmac/p2p.c | 3 +++ 2 files changed, 3 insertions(+), 2 deletions(-) commit 5768f31e4e75e38d9101252aabe8ec7dc826da25 Author: Arend van Spriel Date: Thu Jun 11 00:12:20 2015 +0200 brcmfmac: have sdio return -EIO when device communication is not possible The bus interface functions txctl and rxctl may be used while the device can not be accessed, eg. upon driver .remove() callback. This patch will immediately return -EIO when this is the case which speeds up the module unload. 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/bcmsdh.c | 1 + drivers/net/wireless/brcm80211/brcmfmac/sdio.c | 6 ++++++ 2 files changed, 7 insertions(+) commit 1f0dc59a6de93586fcfc04696a61946408ffc56a Author: Arend van Spriel Date: Thu Jun 11 00:12:19 2015 +0200 brcmfmac: rework .get_station() callback The .get_station() cfg80211 callback is used in several scenarios. In managed mode it can obtain information about the access-point and its BSS parameters. In managed mode it can also obtain information about TDLS peers. In AP mode it can obtain information about connected clients. Reviewed-by: Hante Meuleman Reviewed-by: Daniel (Deognyoun) Kim 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 | 174 ++++++++++++--------- .../net/wireless/brcm80211/brcmfmac/fwil_types.h | 79 +++++++--- 2 files changed, 161 insertions(+), 92 deletions(-) commit 2e5f66fe95936b5e723da6d0b5813bc638a32520 Author: Pontus Fuchs Date: Thu Jun 11 00:12:18 2015 +0200 brcmfmac: Build wiphy mode and interface combinations dynamically Switch from using semi hard coded interface combinations. This makes it easier to announce what the firmware actually supports. This fixes the case where brcmfmac announces p2p but the firmware doesn't support it. Reviewed-by: Pieter-Paul Giesberts Reviewed-by: Hante Meuleman Reviewed-by: Arend Van Spriel Signed-off-by: Pontus Fuchs Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c | 136 ++++++++++----------- 1 file changed, 68 insertions(+), 68 deletions(-) commit 2b560d7148eb0cc5049671eda001e666e854a9c2 Author: Pontus Fuchs Date: Thu Jun 11 00:12:17 2015 +0200 brcmfmac: Check if firmware supports p2p Add a feature flag to reflect the firmware's p2p capability. Reviewed-by: Pieter-Paul Giesberts Reviewed-by: Hante Meuleman Reviewed-by: Arend Van Spriel Signed-off-by: Pontus Fuchs Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo drivers/net/wireless/brcm80211/brcmfmac/feature.c | 1 + drivers/net/wireless/brcm80211/brcmfmac/feature.h | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) commit 8422ddf762c6168a261b5ba07eeaa2f1238ba8c2 Author: Mathias Krause Date: Sat Jun 13 14:22:14 2015 +0200 spi: pxa2xx: Constify ACPI device ids Constify the ACPI device ID array, it doesn't need to be writable at runtime. Signed-off-by: Mathias Krause Signed-off-by: Mark Brown drivers/spi/spi-pxa2xx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e8ed6702746650d09a6cb3fc89d979a92f1ed49b Author: Fang, Yang A Date: Wed Jun 3 15:07:41 2015 -0700 ASoC: Intel: fixed TI button detection In order to make TI button interrupt working max98090 codec Need provide mic bias all the time as long as mic is present so SHDN and micbias pin are forced on.we also need set max98090 codec bias close or lower than TI bias.We set them in bios/coreboot kernel reads them from device property Signed-off-by: Fang, Yang A Signed-off-by: Mark Brown sound/soc/intel/boards/cht_bsw_max98090_ti.c | 30 ++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) commit 6846e18a1e71360e76509f8d8235679a97b2437c Author: Rasmus Villemoes Date: Thu Jun 4 10:13:53 2015 +0200 ASoC: Intel: mrfld: simplify sst_fill_widget_module_info Some tiny improvements, cutting 180 bytes off the generated code. - use strchr() for single-character needle - compute index using pointer subtraction instead of two strlen() calls - factor out the common check for whether the initial part of kctl->id.name (before the space) is identical to w->name. Signed-off-by: Rasmus Villemoes Acked-by: Vinod Koul Tested-by: Fang, Yang A Signed-off-by: Mark Brown sound/soc/intel/atom/sst-atom-controls.c | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) commit 8d0123748af0248750b123f9bfb8040d74691a77 Author: Jakub Kicinski Date: Wed Jun 10 20:10:09 2015 +0200 mt7601u: don't warn about devices without per-rate power table We expect EEPROM per-rate power table to be filled with s6 values and warn user if values are invalid. However, there appear to be devices which don't have this section of EEPROM initialized. In such case we should ignore the values and leave the driver power tables set to zero. Note that vendor driver doesn't care about this case but mt76x2 skips 0xff per value. We take mt76x2's approach. Signed-off-by: Jakub Kicinski Signed-off-by: Kalle Valo drivers/net/wireless/mediatek/mt7601u/eeprom.c | 4 ++++ 1 file changed, 4 insertions(+) commit 3bdb4a4e61b61e8a83c981675350eef4c44171fb Author: Stanislaw Gruszka Date: Wed Jun 10 16:30:05 2015 +0200 MAINTAINERS: remove rt2x00.serialmonkey.com list and web page rt2x00.serialmonkey.com will be shutdown. Since traffic on rt2x00 mailing list is very low, we can use only linux-wireless list for any rt2x00 related topics. Thanks for Luis Correia, Ivo van Doorn and Mark Wallis for maintaining rt2x00 servers for years! Signed-off-by: Stanislaw Gruszka Signed-off-by: Kalle Valo MAINTAINERS | 2 -- 1 file changed, 2 deletions(-) commit d219b7eb379235531af86d4f87ab298c878d54f1 Author: Chunfan Chen Date: Wed Jun 10 06:19:48 2015 -0700 mwifiex: handle BT coex event to adjust Rx BA window size If timeshare coexistance between bluetooth and WLAN gets enabled, firmware will give host an event to reduce Rx AMPDU BA window size. The event is handled in this patch. Signed-off-by: Chunfan Chen Signed-off-by: Cathy Luo Signed-off-by: Amitkumar Karwar Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/11n.c | 93 ++++++++++++++++++++++++++++ drivers/net/wireless/mwifiex/11n_rxreorder.c | 80 ++++++++++++++++++++++++ drivers/net/wireless/mwifiex/decl.h | 7 ++- drivers/net/wireless/mwifiex/fw.h | 19 ++++++ drivers/net/wireless/mwifiex/main.h | 14 ++++- drivers/net/wireless/mwifiex/sta_event.c | 61 ++++++++++++++++++ drivers/net/wireless/mwifiex/uap_event.c | 5 ++ 7 files changed, 277 insertions(+), 2 deletions(-) commit f0e449627e4ac7fe6a662e284a1cf365b1f197e0 Author: Chun-Yeow Yeoh Date: Tue Jun 9 15:59:49 2015 +0800 ath9k_htc: add support of channel switch Add the support of channel switching functionality, similar to ath9k support. Tested with TP-Link TL-WN722N and TL-WN821N. Signed-off-by: Chun-Yeow Yeoh Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/htc.h | 2 ++ drivers/net/wireless/ath/ath9k/htc_drv_beacon.c | 19 +++++++++++++++++++ drivers/net/wireless/ath/ath9k/htc_drv_init.c | 3 ++- drivers/net/wireless/ath/ath9k/htc_drv_main.c | 17 +++++++++++++++++ 4 files changed, 40 insertions(+), 1 deletion(-) commit 5b18ffb2d725571b4642f44249c55e4d1fcf60de Author: Arend van Spriel Date: Mon Jun 8 14:38:35 2015 +0200 brcmfmac: use debugfs_create_devm_seqfile() helper function Some time ago the function debugfs_create_devm_seqfile() was introduced in debugfs. The caller simply needs to provide a device pointer and read function. The function brcmf_debugfs_add_entry() is now simply a wrapper only doing the work for CONFIG_BRCMDBG. Reviewed-by: Hante Meuleman Reviewed-by: Franky (Zhenhui) Lin Reviewed-by: Daniel (Deognyoun) Kim Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo drivers/net/wireless/brcm80211/brcmfmac/debug.c | 40 +++---------------------- 1 file changed, 4 insertions(+), 36 deletions(-) commit c161f29bd69fbc66374cf46fb51677bdc30e8c21 Author: Arend van Spriel Date: Mon Jun 8 14:38:34 2015 +0200 brcmfmac: remove watchdog reset from brcmf_pcie_buscoreprep() The watchdog reset as done in brcmf_pcie_buscoreprep() is not sufficient. It needs to modify PCIe core registers as well which is properly done by brcmf_pcie_reset_device() after the chip recognition is done. So the faulty watchdog reset can be removed as it was causing driver reload to fail and hang the system requiring a power-cycle. Instead the call to to the brcmf_pcie_reset_device() function is done twice in the unload. Reviewed-by: Hante Meuleman Reviewed-by: Daniel (Deognyoun) Kim 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/pcie.c | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) commit dbf967537dce72872f3cf7b59d87ae244f199400 Author: Arend van Spriel Date: Mon Jun 8 14:38:33 2015 +0200 brcmfmac: remove chipinfo debugfs entry The information provided by chipinfo is also provided by the revinfo debugfs entry. Removing it from debugfs. Reviewed-by: Hante Meuleman Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo drivers/net/wireless/brcm80211/brcmfmac/debug.c | 10 ---------- 1 file changed, 10 deletions(-) commit df738c2f0cbf52df563c0f9427f386a362158aa9 Author: Hante Meuleman Date: Mon Jun 8 14:38:32 2015 +0200 brcmfmac: Update msgbuf read pointer quicker. On device to host data using msgbuf the read pointer gets updated once all data is processed. Updating this pointer more frequently allows the firmware to add more data quicker. This will result in slightly higher and more stable throughput on CPU bounded host processors. Reviewed-by: Arend Van Spriel Reviewed-by: Franky (Zhenhui) Lin Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo drivers/net/wireless/brcm80211/brcmfmac/commonring.c | 19 ++++++++----------- drivers/net/wireless/brcm80211/brcmfmac/commonring.h | 3 ++- drivers/net/wireless/brcm80211/brcmfmac/msgbuf.c | 12 +++++++++++- 3 files changed, 21 insertions(+), 13 deletions(-) commit e996db69833a81915fa8c4bed8331af644f14408 Author: Taehee Yoo Date: Sun Jun 7 22:33:36 2015 +0900 rtlwifi: rtl8192c: Add init codes for "fw_version" and "fw_subversion". The variable "fw_version" is used in the _ResetDigitalProcedure1(). but It is not initialized. so I add init codes for "fw_version" and "fw_subversion". Signed-off-by: Taehee Yoo Acked-by: Larry Finger Signed-off-by: Kalle Valo drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit d92460097c00e296db3d73945220ee9bb384e3d9 Author: Taehee Yoo Date: Sun Jun 7 21:03:57 2015 +0900 rtlwifi: rtl8192cu: Fix variable isfirst_ampdu rtl92cu_rx_query_desc set a isampdu twice. but second code is related to isfirst_ampdu. so i change it. Signed-off-by: Taehee Yoo Signed-off-by: Kalle Valo drivers/net/wireless/rtlwifi/rtl8192cu/trx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8657f9c4d52fc8797320859c576846a97eface95 Author: Taehee Yoo Date: Sun Jun 7 21:03:56 2015 +0900 rtlwifi: rtl8192cu: debug message change "RTL8192CE" to "RTL8192CU" In the rtlwifi/rtl8192cu, I change debug message "RTL8192CE" to "RTL8192CU". Signed-off-by: Taehee Yoo Signed-off-by: Kalle Valo drivers/net/wireless/rtlwifi/rtl8192cu/phy.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 138055e23b668865c3f2c44906b5a1afdf21c28b Author: Taehee Yoo Date: Sat Jun 6 19:57:14 2015 +0900 rtlwifi: rtl8192cu: remove duplicated routine in _rtl92c_phy_rf6052_config_parafile in the _rtl92c_phy_rf6052_config_parafile(), cases RF90_PATH_A and RF90_PATH_B call the same routine. so i remove one of these routine. also the return routine is duplicated. so i remove it. Signed-off-by: Taehee Yoo Signed-off-by: Kalle Valo drivers/net/wireless/rtlwifi/rtl8192cu/rf.c | 4 ---- 1 file changed, 4 deletions(-) commit 1637c1b7ebbb51de63b71c7eebcfff6407a0be72 Author: Hans Ulli Kroll Date: Sun Jun 7 13:19:16 2015 +0200 rtlwifi: fix tm_trigger usage While working on getting my rtl8821au driver in pretty shape for inclusion, it is dicosvered that the tm_trigger flag is used only for the first device using this driver. This flag handles the thermal power management in the hardware. To change this add a entry in sttruct rtl_dm, so each device can handle is separately. Signed-off-by: Hans Ulli Kroll Signed-off-by: Kalle Valo drivers/net/wireless/rtlwifi/rtl8188ee/dm.c | 7 +++---- drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c | 7 +++---- drivers/net/wireless/rtlwifi/rtl8192de/dm.c | 7 +++---- drivers/net/wireless/rtlwifi/rtl8192se/dm.c | 7 +++---- drivers/net/wireless/rtlwifi/rtl8723be/dm.c | 7 +++---- drivers/net/wireless/rtlwifi/rtl8821ae/dm.c | 14 +++++--------- drivers/net/wireless/rtlwifi/wifi.h | 1 + 7 files changed, 21 insertions(+), 29 deletions(-) commit fbcaee1c6da13d10b8fb7810d76fb8ce92dd9226 Author: Taehee Yoo Date: Thu Jun 4 18:11:33 2015 +0900 rtlwifi: rtl8192cu: remove INTF_PCI and INTF_USB in the rtlwifi/rtl8192cu, INTF_PCI and INTF_USB is unnecessary. because RTL8192CU chipset is only USB interface. Signed-off-by: Taehee Yoo Signed-off-by: Kalle Valo drivers/net/wireless/rtlwifi/rtl8192cu/rf.c | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) commit 1d6b2fb1bc8018c9a412285bc99b5d499024fa60 Author: Taehee Yoo Date: Thu Jun 4 17:43:36 2015 +0900 rtlwifi: rtl8192cu: remove _InitBeaconParameters(). _InitBeaconParameters() and rtl92cu_init_beacon_parameters() is same routine. I remove both functions. then i add _rtl92cu_init_beacon_parameters() in the hw.c. _rtl92cu_init_beacon_parameters() is same routine with _InitBeaconParameters(). Signed-off-by: Taehee Yoo Signed-off-by: Kalle Valo drivers/net/wireless/rtlwifi/rtl8192cu/hw.c | 43 ++++++++++++++-------------- drivers/net/wireless/rtlwifi/rtl8192cu/mac.c | 15 ---------- drivers/net/wireless/rtlwifi/rtl8192cu/mac.h | 3 -- 3 files changed, 22 insertions(+), 39 deletions(-) commit f5372e940cdb00babf45b258da00f835e3574766 Author: Taehee Yoo Date: Thu Jun 4 17:43:34 2015 +0900 rtlwifi: rtl8192cu: remove IS_HARDWARE_TYPE_8192CE and IS_HARDWARE_TYPE_8192CU in the rtlwifi/rtl8192cu, IS_HARDWARE_TYPE_8192CE and IS_HARDWARE_TYPE_8192CU is unnecessary. because rtlwifi/rtl8192cu codes aren't shared. Signed-off-by: Taehee Yoo Signed-off-by: Kalle Valo drivers/net/wireless/rtlwifi/rtl8192cu/phy.c | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) commit 11ee9615f9bbc9c0c2dbd9f5eb275459b76f032a Author: Ville Syrjälä Date: Thu May 28 18:32:36 2015 +0300 drm/i915: Don't skip request retirement if the active list is empty Apparently we can have requests even if though the active list is empty, so do the request retirement regardless of whether there's anything on the active list. The way it happened here is that during suspend intel_ring_idle() notices the olr hanging around and then proceeds to get rid of it by adding a request. However since there was nothing on the active lists i915_gem_retire_requests() didn't clean those up, and so the idle work never runs, and we leave the GPU "busy" during suspend resulting in a WARN later. Signed-off-by: Ville Syrjälä Reviewed-by: Chris Wilson Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_gem.c | 3 --- 1 file changed, 3 deletions(-) commit 8cb81811e924ff0214ce4e8344e2feb1549cf0ce Author: Jan Kara Date: Tue Jun 2 12:38:39 2015 +0200 s390/keyboard: avoid off-by-one when using strnlen_user() strnlen_user() returns the length of the string including terminating 0. So avoid counting it again and unnecessarily reducing maximum string size by 1. Signed-off-by: Jan Kara Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky drivers/s390/char/keyboard.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) commit 2e4aa2f2bdcf9b80bace0b0c460bd407d76f49d3 Author: Nicholas Mc Guire Date: Fri May 29 16:50:55 2015 +0200 s390/sclp: pass timeout as HZ independent value schedule_timeout takes a timeout in jiffies but the code currently is passing in a constant SDIAS_SLEEP_TICKS, as this is otherwise unused it is replaced by 500ms as recommended by Michael Holzheu and converted with msecs_to_jiffies(); As SDIAS_SLEEP_TICKS was only used in this one location it is dropped. Patch was compile tested with (s390) defconfig + CONFIG_MARCH_Z10=y, (implies CONFIG_CRASH_DUMP=y) Patch is against 4.1-rc5 (localversion-next is -next-20150529) Link: http://lkml.org/lkml/2015/5/29/235 Signed-off-by: Nicholas Mc Guire Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky drivers/s390/char/sclp_sdias.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 4e0a64124f80029d787d2d1fd2b0daf2b431cb70 Author: Geert Uytterhoeven Date: Thu May 21 14:00:47 2015 +0200 s390/mm: s/specifiation/specification/, s/an specification/a specification/ Signed-off-by: Geert Uytterhoeven Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky arch/s390/include/asm/pgtable.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b8a43b045eda4d5b25f00696970fb23cf3edcb23 Author: Joe Perches Date: Tue May 19 18:37:56 2015 -0700 s390/sclp: Use DECLARE_BITMAP Use the generic mechanism to declare a bitmap instead of unsigned long. Signed-off-by: Joe Perches Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky drivers/s390/char/sclp_cmd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d45337328b1fb86a8f045f6c9938e9e08e6d7134 Author: Vincent Wan Date: Thu Jun 11 20:11:45 2015 +0800 pci_ids: Add AMD KERNCZ device ID support The KERNCZ is new AMD SB/FCH generation name, like HUDSON2. 0x790b is the device ID for this generation. Signed-off-by: Wan ZongShun Acked-by: Bjorn Helgaas Signed-off-by: Ulf Hansson include/linux/pci_ids.h | 1 + 1 file changed, 1 insertion(+) commit 7551847ca079c362663385be20e6731ad32f1a3e Author: Fabian Frederick Date: Wed Jun 10 18:30:53 2015 +0200 mmc: queue: use swap() in mmc_queue_thread() Use kernel.h macro definition. Thanks to Julia Lawall for Coccinelle scripting support. Signed-off-by: Fabian Frederick Signed-off-by: Ulf Hansson drivers/mmc/card/queue.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit c751ad0dd640f4ce9269acd7a54de5ba8092e99e Author: Stephen Boyd Date: Fri Jun 12 15:48:06 2015 -0700 regulator: Add docbook for soft start The docbook for these members is missing. Add them. Warning(include/linux/regulator/machine.h:147): No description found for parameter 'soft_start' Warning(include/linux/regulator/driver.h:197): No description found for parameter 'set_soft_start' Reported-by: kbuild test robot Signed-off-by: Stephen Boyd Signed-off-by: Mark Brown include/linux/regulator/driver.h | 1 + include/linux/regulator/machine.h | 1 + 2 files changed, 2 insertions(+) commit 4bece972fce6e597cb513bdcae4a04e14fc0dd81 Author: Michael Ellerman Date: Mon Jun 15 15:01:32 2015 +1000 powerpc/powernv: pnv_init_idle_states() should only run on powernv Although this init call checks for device tree properties before doing anything, it should still only run on powernv machines. Reviewed-by: Shreyas B Prabhu Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/idle.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 2dc710e93c303f2a33d4fecbcc7e8088f2776604 Author: Finn Thain Date: Sun May 31 11:01:33 2015 +1000 macintosh/nvram: Remove as unused The full history Linux tree says it was moved: commit 17c6f4635bea74e110ab3558d408c9cd218c568a Author: Benjamin Herrenschmidt Date: Fri Feb 6 14:20:56 2004 +1100 ppc32: Rework nvram management move drivers/macintosh/nvram.c to drivers/char/generic_nvram.c, update platform hooks, fix powermac nvram driver for newer machines But it's still there, and not buildable, so remove it. Signed-off-by: Finn Thain Acked-by: Geert Uytterhoeven Signed-off-by: Michael Ellerman drivers/macintosh/nvram.c | 130 ---------------------------------------------- 1 file changed, 130 deletions(-) commit 30c4cf3b53b4a09ca24603dd3c3119433e8ac9d5 Author: Magnus Damm Date: Mon May 4 16:16:19 2015 +0200 drm/cma: Fix 64-bit size_t build warnings Fix warnings related to size_t when building for 64-bit architectures: drivers/gpu/drm/drm_gem_cma_helper.c: In function ‘drm_gem_cma_create’: drivers/gpu/drm/drm_gem_cma_helper.c:114:4: warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘size_t’ [-Wformat=] size); ^ drivers/gpu/drm/drm_gem_cma_helper.c: In function ‘drm_gem_cma_describe’: drivers/gpu/drm/drm_gem_cma_helper.c:393:4: warning: format ‘%d’ expects argument of type ‘int’, but argument 8 has type ‘size_t’ [-Wformat=] off, &cma_obj->paddr, cma_obj->vaddr, obj->size); Signed-off-by: Magnus Damm Signed-off-by: Geert Uytterhoeven Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_gem_cma_helper.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 712a0dd91c4a5936fa00a24fa4e0100f982ad516 Author: Sonika Jindal Date: Thu May 28 16:35:07 2015 +0530 Documentation/drm: Update rotation property Moving rotation property to "Drm" and removing from i915 and omap. Also, adding description to the property Cc: DRI Development Suggested-by: Ville Syrjälä Signed-off-by: Sonika Jindal Signed-off-by: Daniel Vetter Documentation/DocBook/drm.tmpl | 41 ++++++++++++++++++----------------------- 1 file changed, 18 insertions(+), 23 deletions(-) commit 97b4af2f7672476eedeb5cf5000b927ed4b516a4 Author: Rasmus Villemoes Date: Mon Jun 15 00:32:58 2015 -0400 ext4: mballoc: avoid 20-argument function call Making a function call with 20 arguments is rather expensive in both stack and .text. In this case, doing the formatting manually doesn't make it any less readable, so we might as well save 155 bytes of .text and 112 bytes of stack. Signed-off-by: Rasmus Villemoes fs/ext4/mballoc.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit 0d306dcf86e8f065dff42a4a934ae9d99af35ba5 Author: Lukas Czerner Date: Mon Jun 15 00:23:53 2015 -0400 ext4: wait for existing dio workers in ext4_alloc_file_blocks() Currently existing dio workers can jump in and potentially increase extent tree depth while we're allocating blocks in ext4_alloc_file_blocks(). This may cause us to underestimate the number of credits needed for the transaction because the extent tree depth can change after our estimation. Fix this by waiting for all the existing dio workers in the same way as we do it in ext4_punch_hole. We've seen errors caused by this in xfstest generic/299, however it's really hard to reproduce. Signed-off-by: Lukas Czerner Signed-off-by: Theodore Ts'o fs/ext4/extents.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 4134f5c88dcd5b00e4a5f37c3842b2b831a61ee1 Author: Lukas Czerner Date: Mon Jun 15 00:20:46 2015 -0400 ext4: recalculate journal credits as inode depth changes Currently in ext4_alloc_file_blocks() the number of credits is calculated only once before we enter the allocation loop. However within the allocation loop the extent tree depth can change, hence the number of credits needed can increase potentially exceeding the number of credits reserved in the handle which can cause journal failures. Fix this by recalculating number of credits when the inode depth changes. Note that even though ext4_alloc_file_blocks() is only currently used by extent base inodes we will avoid recalculating number of credits unnecessarily in the case of indirect based inodes. Signed-off-by: Lukas Czerner Signed-off-by: Theodore Ts'o fs/ext4/extents.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit b4f1afcd068f6e533230dfed00782cd8a907f96b Author: Dmitry Monakhov Date: Mon Jun 15 00:18:02 2015 -0400 jbd2: use GFP_NOFS in jbd2_cleanup_journal_tail() jbd2_cleanup_journal_tail() can be invoked by jbd2__journal_start() So allocations should be done with GFP_NOFS [Full stack trace snipped from 3.10-rh7] [] dump_stack+0x19/0x1b [] warn_slowpath_common+0x61/0x80 [] warn_slowpath_null+0x1a/0x20 [] slab_pre_alloc_hook.isra.31.part.32+0x15/0x17 [] kmem_cache_alloc+0x55/0x210 [] ? mempool_alloc_slab+0x15/0x20 [] mempool_alloc_slab+0x15/0x20 [] mempool_alloc+0x69/0x170 [] ? _raw_spin_unlock_irq+0xe/0x20 [] ? finish_task_switch+0x5d/0x150 [] bio_alloc_bioset+0x1be/0x2e0 [] blkdev_issue_flush+0x99/0x120 [] jbd2_cleanup_journal_tail+0x93/0xa0 [jbd2] -->GFP_KERNEL [] jbd2_log_do_checkpoint+0x221/0x4a0 [jbd2] [] __jbd2_log_wait_for_space+0xa7/0x1e0 [jbd2] [] start_this_handle+0x2d8/0x550 [jbd2] [] ? __memcg_kmem_put_cache+0x29/0x30 [] ? kmem_cache_alloc+0x130/0x210 [] jbd2__journal_start+0xba/0x190 [jbd2] [] ? lru_cache_add+0xe/0x10 [] ? ext4_da_write_begin+0xf9/0x330 [ext4] [] __ext4_journal_start_sb+0x77/0x160 [ext4] [] ext4_da_write_begin+0xf9/0x330 [ext4] [] generic_file_buffered_write_iter+0x10c/0x270 [] __generic_file_write_iter+0x178/0x390 [] __generic_file_aio_write+0x8b/0xb0 [] generic_file_aio_write+0x5d/0xc0 [] ext4_file_write+0xa9/0x450 [ext4] [] ? pipe_read+0x379/0x4f0 [] do_sync_write+0x90/0xe0 [] vfs_write+0xbd/0x1e0 [] SyS_write+0x58/0xb0 [] system_call_fastpath+0x16/0x1b Signed-off-by: Dmitry Monakhov Signed-off-by: Theodore Ts'o Cc: stable@vger.kernel.org fs/jbd2/checkpoint.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4d205676c1028f21760ef1fa57af0628349e0aed Author: Tejun Heo Date: Fri Jun 12 17:15:23 2015 -0500 MAINTAINERS: add a cgroup core co-maintainer Add Johannes Weiner as a co-maintainer of cgroup core. Johannes has been heavily involved with the design of the v2 interface and is familiar with design and implementation of cgroup core. Signed-off-by: Tejun Heo Acked-by: Li Zefan Cc: Johannes Weiner MAINTAINERS | 1 + 1 file changed, 1 insertion(+) commit 789a99ecb9cb700eb8f07b9d106b99e705e99471 Author: Alexander Aring Date: Sun Jun 14 16:48:44 2015 +0200 fakelb: add xmit_async after stop testcase This patch adds a suspended testcase into the xmit_async functionality. In the hope that we can found race conditions when xmit_async is called after an ieee802154_ops stop. This should never happen. Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann drivers/net/ieee802154/fakelb.c | 5 +++++ 1 file changed, 5 insertions(+) commit e6f7ed9dc1164c2f20bd984e251cf4dd5ff61d2c Author: Alexander Aring Date: Sat Jun 13 22:15:54 2015 +0200 at86rf230: add support for sleep state This patch adds support for sleep state when between stop and start period. In this period the transceiver isn't used by the subsystem, in this time we disable the irq and going into the sleep state. Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann drivers/net/ieee802154/at86rf230.c | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) commit 9ff19e6f44e370d9ac20c2cc677724e44d76f2c6 Author: Alexander Aring Date: Sat Jun 13 22:15:53 2015 +0200 at86rf230: use level high as fallback default This patch use high level interrupt type as fallback handling when no irq type is given. Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann drivers/net/ieee802154/at86rf230.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ed2e627cb17d385f02d0a28fd7e564031f7769b0 Author: Alexander Aring Date: Sat Jun 13 22:15:52 2015 +0200 mac802154: iface: flush workqueue before stop This patch flushs the workqueue which is currently used for xmit_sync callback before calling stop driver-ops. Flush the queue will ensure all pending tx frames are transmitted. Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann net/mac802154/iface.c | 1 + 1 file changed, 1 insertion(+) commit b4ee194441d7e4457c7bac6c2a5da8428974db5a Author: Alexander Aring Date: Sat Jun 13 22:15:51 2015 +0200 mac802154: iface: fix hrtimer cancel on ifdown The interframe spacing timer is a per phy definition and is part of a ieee802154_local structure. If we have possible multiple interfaces ifdown one interface then the timer should not be cancled. First if the last interface is down and the receive handling is stopped we should be sure that the interframe spacing timer isn't run anymore. Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann net/mac802154/iface.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 1bc1754e82f03c2c29b6e39ee02af48fa3bdef23 Author: Varka Bhadram Date: Fri Jun 12 12:44:24 2015 +0530 mac802154: rx packet handle cleanup This patch replaces !netif_running(sdata->dev) with !ieee802154_sdata_running(sdata) and also devide the code two separate if branches. Signed-off-by: Varka Bhadram Signed-off-by: Marcel Holtmann net/mac802154/rx.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 758f0d4b16e0508aa47a4a4d06eacba0d66e24d5 Author: Kenneth Klette Jonassen Date: Fri Jun 12 17:24:03 2015 +0200 tcp: cdg: use div_u64() Fixes cross-compile to mips. Signed-off-by: Kenneth Klette Jonassen Signed-off-by: David S. Miller net/ipv4/tcp_cdg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2d45a02d0166caf2627fe91897c6ffc3b19514c4 Author: Marcelo Ricardo Leitner Date: Fri Jun 12 10:16:41 2015 -0300 sctp: fix ASCONF list handling ->auto_asconf_splist is per namespace and mangled by functions like sctp_setsockopt_auto_asconf() which doesn't guarantee any serialization. Also, the call to inet_sk_copy_descendant() was backuping ->auto_asconf_list through the copy but was not honoring ->do_auto_asconf, which could lead to list corruption if it was different between both sockets. This commit thus fixes the list handling by using ->addr_wq_lock spinlock to protect the list. A special handling is done upon socket creation and destruction for that. Error handlig on sctp_init_sock() will never return an error after having initialized asconf, so sctp_destroy_sock() can be called without addrq_wq_lock. The lock now will be take on sctp_close_sock(), before locking the socket, so we don't do it in inverse order compared to sctp_addr_wq_timeout_handler(). Instead of taking the lock on sctp_sock_migrate() for copying and restoring the list values, it's preferred to avoid rewritting it by implementing sctp_copy_descendant(). Issue was found with a test application that kept flipping sysctl default_auto_asconf on and off, but one could trigger it by issuing simultaneous setsockopt() calls on multiple sockets or by creating/destroying sockets fast enough. This is only triggerable locally. Fixes: 9f7d653b67ae ("sctp: Add Auto-ASCONF support (core).") Reported-by: Ji Jianwen Suggested-by: Neil Horman Suggested-by: Hannes Frederic Sowa Acked-by: Hannes Frederic Sowa Signed-off-by: Marcelo Ricardo Leitner Signed-off-by: David S. Miller include/net/netns/sctp.h | 1 + include/net/sctp/structs.h | 4 ++++ net/sctp/socket.c | 43 ++++++++++++++++++++++++++++++++----------- 3 files changed, 37 insertions(+), 11 deletions(-) commit d19319affb6c84ef45185588f63dc28f8ff95ea3 Author: Takeshi Yoshimura Date: Mon Jun 15 02:43:59 2015 +0900 pcmcia: Fix resource leaks in yenta_probe() and _close() There are some resource leaks in yenta_probe() and _close(). I fixed the following issues with some code cleanups. Thanks to Dominik's suggestions. On the error path in yenta_probe(): - a requested irq is not released - yenta_free_resources() and pci_set_drvdata(dev, NULL) are not called In yenta_close(): - kfree(sock) is not called - sock->base is always set to non-NULL when yenta_close() is called, therefore the check in yenta_close() is not necessary. Signed-off-by: Takeshi Yoshimura Signed-off-by: Dominik Brodowski drivers/pcmcia/yenta_socket.c | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) commit f996bd10a049e897255ef3029f9ad94055009996 Author: Luca Ceresoli Date: Sun Jun 14 14:40:24 2015 +0200 staging: rtl8188eu: don't define OnAuth() in non-AP mode If CONFIG_88EU_AP_MODE is undefined, OnAuth() is never referenced. Fixes warning: drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:2725:21: warning: ‘OnAuth’ defined but not used [-Wunused-function] Signed-off-by: Luca Ceresoli Fixes: 68345dd7bc26 ("staging: rtl8188eu: rtw_mlme_ext.c: unexport message callbacks") Cc: Greg Kroah-Hartman Cc: Larry Finger Cc: kbuild test robot Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/core/rtw_mlme_ext.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 2b49e0fce249bd8556828b9601328a679ca43860 Author: Luca Ceresoli Date: Sun Jun 14 14:40:23 2015 +0200 staging: rtl8188eu: don't define issue_asocrsp() in non-AP mode If CONFIG_88EU_AP_MODE is undefined, issue_asocrsp() is never referenced. Fixes warning: drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:891:13: warning: ‘issue_asocrsp’ defined but not used [-Wunused-function] Signed-off-by: Luca Ceresoli Fixes: 782eddd748d9 ("staging: rtl8188eu: unexport internal functions") Cc: Greg Kroah-Hartman Cc: Larry Finger Cc: kbuild test robot Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/core/rtw_mlme_ext.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 13b987ea275840d74d9df9a44326632fab1894da Author: Fabian Frederick Date: Wed Jun 10 10:09:32 2015 +1000 fs/ufs: revert "ufs: fix deadlocks introduced by sb mutex merge" This reverts commit 9ef7db7f38d0 ("ufs: fix deadlocks introduced by sb mutex merge") That patch tried to solve commit 0244756edc4b98c ("ufs: sb mutex merge + mutex_destroy") which is itself partially reverted due to multiple deadlocks. Signed-off-by: Fabian Frederick Suggested-by: Jan Kara Cc: Ian Campbell Cc: Evgeniy Dushistov Cc: Alexey Khoroshilov Cc: Roger Pau Monne Cc: Ian Jackson Cc: Al Viro Cc: Signed-off-by: Andrew Morton fs/ufs/inode.c | 5 ++++- fs/ufs/namei.c | 14 ++++++++------ 2 files changed, 12 insertions(+), 7 deletions(-) commit 3f4a9494104cbadfa05cb2da9ca04b205712360f Author: Al Viro Date: Sat Jun 6 09:15:55 2015 -0400 ncpfs: successful rename() should invalidate caches for parents Signed-off-by: Al Viro fs/ncpfs/dir.c | 2 ++ 1 file changed, 2 insertions(+) commit ca0f6a5cd99e0c6ba4bb78dc402817f636370f26 Author: Jozsef Kadlecsik Date: Sat Jun 13 19:45:33 2015 +0200 netfilter: ipset: Fix coding styles reported by checkpatch.pl Signed-off-by: Jozsef Kadlecsik include/linux/netfilter/ipset/ip_set.h | 5 +- include/uapi/linux/netfilter/ipset/ip_set.h | 6 +- net/netfilter/ipset/ip_set_bitmap_gen.h | 11 +- net/netfilter/ipset/ip_set_bitmap_ip.c | 12 +- net/netfilter/ipset/ip_set_bitmap_ipmac.c | 21 +-- net/netfilter/ipset/ip_set_bitmap_port.c | 7 +- net/netfilter/ipset/ip_set_core.c | 201 +++++++++++++-------------- net/netfilter/ipset/ip_set_getport.c | 13 +- net/netfilter/ipset/ip_set_hash_gen.h | 55 ++++---- net/netfilter/ipset/ip_set_hash_ip.c | 4 +- net/netfilter/ipset/ip_set_hash_ipmark.c | 9 +- net/netfilter/ipset/ip_set_hash_ipport.c | 14 +- net/netfilter/ipset/ip_set_hash_ipportip.c | 16 ++- net/netfilter/ipset/ip_set_hash_ipportnet.c | 19 ++- net/netfilter/ipset/ip_set_hash_mac.c | 6 +- net/netfilter/ipset/ip_set_hash_net.c | 8 +- net/netfilter/ipset/ip_set_hash_netiface.c | 25 ++-- net/netfilter/ipset/ip_set_hash_netnet.c | 46 +++--- net/netfilter/ipset/ip_set_hash_netport.c | 19 ++- net/netfilter/ipset/ip_set_hash_netportnet.c | 54 +++---- net/netfilter/ipset/ip_set_list_set.c | 11 +- net/netfilter/ipset/pfxlen.c | 16 +-- net/netfilter/xt_set.c | 44 +++--- 23 files changed, 327 insertions(+), 295 deletions(-) commit 00590fdd5be0d763631ef10e6a3e2ce8fc2d9ec3 Author: Jozsef Kadlecsik Date: Sat Jun 13 16:56:02 2015 +0200 netfilter: ipset: Introduce RCU locking in list type Standard rculist is used. Signed-off-by: Jozsef Kadlecsik net/netfilter/ipset/ip_set_list_set.c | 398 ++++++++++++++++------------------ 1 file changed, 189 insertions(+), 209 deletions(-) commit 18f84d41d34fa35d0d64bbaea01fe664553ecc06 Author: Jozsef Kadlecsik Date: Sat Jun 13 17:29:56 2015 +0200 netfilter: ipset: Introduce RCU locking in hash:* types Three types of data need to be protected in the case of the hash types: a. The hash buckets: standard rcu pointer operations are used. b. The element blobs in the hash buckets are stored in an array and a bitmap is used for book-keeping to tell which elements in the array are used or free. c. Networks per cidr values and the cidr values themselves are stored in fix sized arrays and need no protection. The values are modified in such an order that in the worst case an element testing is repeated once with the same cidr value. The ipset hash approach uses arrays instead of lists and therefore is incompatible with rhashtable. Performance is tested by Jesper Dangaard Brouer: Simple drop in FORWARD ~~~~~~~~~~~~~~~~~~~~~~ Dropping via simple iptables net-mask match:: iptables -t raw -N simple || iptables -t raw -F simple iptables -t raw -I simple -s 198.18.0.0/15 -j DROP iptables -t raw -D PREROUTING -j simple iptables -t raw -I PREROUTING -j simple Drop performance in "raw": 11.3Mpps Generator: sending 12.2Mpps (tx:12264083 pps) Drop via original ipset in RAW table ~~~~~~~~~~~~~~~~~~~~~~~~~~~ Create a set with lots of elements:: sudo ./ipset destroy test echo "create test hash:ip hashsize 65536" > test.set for x in `seq 0 255`; do for y in `seq 0 255`; do echo "add test 198.18.$x.$y" >> test.set done done sudo ./ipset restore < test.set Dropping via ipset:: iptables -t raw -F iptables -t raw -N net198 || iptables -t raw -F net198 iptables -t raw -I net198 -m set --match-set test src -j DROP iptables -t raw -I PREROUTING -j net198 Drop performance in "raw" with ipset: 8Mpps Perf report numbers ipset drop in "raw":: + 24.65% ksoftirqd/1 [ip_set] [k] ip_set_test - 21.42% ksoftirqd/1 [kernel.kallsyms] [k] _raw_read_lock_bh - _raw_read_lock_bh + 99.88% ip_set_test - 19.42% ksoftirqd/1 [kernel.kallsyms] [k] _raw_read_unlock_bh - _raw_read_unlock_bh + 99.72% ip_set_test + 4.31% ksoftirqd/1 [ip_set_hash_ip] [k] hash_ip4_kadt + 2.27% ksoftirqd/1 [ixgbe] [k] ixgbe_fetch_rx_buffer + 2.18% ksoftirqd/1 [ip_tables] [k] ipt_do_table + 1.81% ksoftirqd/1 [ip_set_hash_ip] [k] hash_ip4_test + 1.61% ksoftirqd/1 [kernel.kallsyms] [k] __netif_receive_skb_core + 1.44% ksoftirqd/1 [kernel.kallsyms] [k] build_skb + 1.42% ksoftirqd/1 [kernel.kallsyms] [k] ip_rcv + 1.36% ksoftirqd/1 [kernel.kallsyms] [k] __local_bh_enable_ip + 1.16% ksoftirqd/1 [kernel.kallsyms] [k] dev_gro_receive + 1.09% ksoftirqd/1 [kernel.kallsyms] [k] __rcu_read_unlock + 0.96% ksoftirqd/1 [ixgbe] [k] ixgbe_clean_rx_irq + 0.95% ksoftirqd/1 [kernel.kallsyms] [k] __netdev_alloc_frag + 0.88% ksoftirqd/1 [kernel.kallsyms] [k] kmem_cache_alloc + 0.87% ksoftirqd/1 [xt_set] [k] set_match_v3 + 0.85% ksoftirqd/1 [kernel.kallsyms] [k] inet_gro_receive + 0.83% ksoftirqd/1 [kernel.kallsyms] [k] nf_iterate + 0.76% ksoftirqd/1 [kernel.kallsyms] [k] put_compound_page + 0.75% ksoftirqd/1 [kernel.kallsyms] [k] __rcu_read_lock Drop via ipset in RAW table with RCU-locking ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ With RCU locking, the RW-lock is gone. Drop performance in "raw" with ipset with RCU-locking: 11.3Mpps Performance-tested-by: Jesper Dangaard Brouer Signed-off-by: Jozsef Kadlecsik net/netfilter/ipset/ip_set_hash_gen.h | 589 ++++++++++++++++----------- net/netfilter/ipset/ip_set_hash_ip.c | 1 + net/netfilter/ipset/ip_set_hash_ipmark.c | 1 + net/netfilter/ipset/ip_set_hash_ipport.c | 1 + net/netfilter/ipset/ip_set_hash_ipportip.c | 1 + net/netfilter/ipset/ip_set_hash_ipportnet.c | 1 + net/netfilter/ipset/ip_set_hash_mac.c | 1 + net/netfilter/ipset/ip_set_hash_net.c | 1 + net/netfilter/ipset/ip_set_hash_netiface.c | 1 + net/netfilter/ipset/ip_set_hash_netnet.c | 1 + net/netfilter/ipset/ip_set_hash_netport.c | 1 + net/netfilter/ipset/ip_set_hash_netportnet.c | 1 + 12 files changed, 364 insertions(+), 236 deletions(-) commit 96f51428c43de20723630f0d756a7a9a42cbd974 Author: Jozsef Kadlecsik Date: Sat Jun 13 14:39:59 2015 +0200 netfilter: ipset: Introduce RCU locking in bitmap:* types There's nothing much required because the bitmap types use atomic bit operations. However the logic of adding elements slightly changed: first the MAC address updated (which is not atomic), then the element activated (added). The extensions may call kfree_rcu() therefore we call rcu_barrier() at module removal. Signed-off-by: Jozsef Kadlecsik net/netfilter/ipset/ip_set_bitmap_gen.h | 33 +++++++++++++++++++++---------- net/netfilter/ipset/ip_set_bitmap_ip.c | 3 ++- net/netfilter/ipset/ip_set_bitmap_ipmac.c | 13 ++++++++++-- net/netfilter/ipset/ip_set_bitmap_port.c | 3 ++- 4 files changed, 38 insertions(+), 14 deletions(-) commit b57b2d1fa53fe8563bdfc66a33b844463b9af285 Author: Jozsef Kadlecsik Date: Sat Jun 13 14:22:25 2015 +0200 netfilter: ipset: Prepare the ipset core to use RCU at set level Replace rwlock_t with spinlock_t in "struct ip_set" and change the locking accordingly. Convert the comment extension into an rcu-avare object. Also, simplify the timeout routines. Signed-off-by: Jozsef Kadlecsik include/linux/netfilter/ipset/ip_set.h | 9 ++++-- include/linux/netfilter/ipset/ip_set_comment.h | 38 +++++++++++++++------- include/linux/netfilter/ipset/ip_set_timeout.h | 25 ++++++--------- net/netfilter/ipset/ip_set_core.c | 44 +++++++++++++------------- 4 files changed, 66 insertions(+), 50 deletions(-) commit bd55389cc34b75948c2876c821175a976bbac5b1 Author: Jozsef Kadlecsik Date: Sat Jun 13 14:02:51 2015 +0200 netfilter:ipset Remove rbtree from hash:net,iface Remove rbtree in order to introduce RCU instead of rwlock in ipset Signed-off-by: Jozsef Kadlecsik net/netfilter/ipset/ip_set_hash_netiface.c | 163 ++++------------------------- 1 file changed, 20 insertions(+), 143 deletions(-) commit 9c1ba5c809381fb9fb779e2cc22a1c878a269ffb Author: Jozsef Kadlecsik Date: Sat Jun 13 13:39:38 2015 +0200 netfilter: ipset: Make sure listing doesn't grab a set which is just being destroyed. There was a small window when all sets are destroyed and a concurrent listing of all sets could grab a set which is just being destroyed. Signed-off-by: Jozsef Kadlecsik net/netfilter/ipset/ip_set_core.c | 49 +++++++++++++++++++++++++++------------ 1 file changed, 34 insertions(+), 15 deletions(-) commit c4c997839cf92cb1037e43a85cdb4cbf44ed39a5 Author: Jozsef Kadlecsik Date: Sat Jun 13 11:59:45 2015 +0200 netfilter: ipset: Fix parallel resizing and listing of the same set When elements added to a hash:* type of set and resizing triggered, parallel listing could start to list the original set (before resizing) and "continue" with listing the new set. Fix it by references and using the original hash table for listing. Therefore the destroying of the original hash table may happen from the resizing or listing functions. Signed-off-by: Jozsef Kadlecsik include/linux/netfilter/ipset/ip_set.h | 13 ++++++---- net/netfilter/ipset/ip_set_core.c | 29 ++++++++++++---------- net/netfilter/ipset/ip_set_hash_gen.h | 44 +++++++++++++++++++++++++++++++--- 3 files changed, 66 insertions(+), 20 deletions(-) commit f690cbaed9fe4d77592e24139db7ad790641c4fd Author: Jozsef Kadlecsik Date: Fri Jun 12 22:11:00 2015 +0200 netfilter: ipset: Fix cidr handling for hash:*net* types Commit "Simplify cidr handling for hash:*net* types" broke the cidr handling for the hash:*net* types when the sets were used by the SET target: entries with invalid cidr values were added to the sets. Reported by Jonathan Johnson. Testsuite entry is added to verify the fix. Signed-off-by: Jozsef Kadlecsik include/linux/netfilter/ipset/ip_set.h | 2 -- net/netfilter/ipset/ip_set_hash_gen.h | 44 ++++++++++++++++------------ net/netfilter/ipset/ip_set_hash_ipportnet.c | 4 +-- net/netfilter/ipset/ip_set_hash_net.c | 4 +-- net/netfilter/ipset/ip_set_hash_netiface.c | 4 +-- net/netfilter/ipset/ip_set_hash_netnet.c | 8 ++--- net/netfilter/ipset/ip_set_hash_netport.c | 4 +-- net/netfilter/ipset/ip_set_hash_netportnet.c | 8 ++--- 8 files changed, 42 insertions(+), 36 deletions(-) commit aff227581ed1ac299e3a50eef4bb1cef944e1404 Author: Sergey Popovich Date: Fri Jun 12 21:30:57 2015 +0200 netfilter: ipset: Check CIDR value only when attribute is given There is no reason to check CIDR value regardless attribute specifying CIDR is given. Initialize cidr array in element structure on element structure declaration to let more freedom to the compiler to optimize initialization right before element structure is used. Remove local variables cidr and cidr2 for netnet and netportnet hashes as we do not use packed cidr value for such set types and can store value directly in e.cidr[]. Signed-off-by: Sergey Popovich Signed-off-by: Jozsef Kadlecsik net/netfilter/ipset/ip_set_hash_net.c | 8 +++--- net/netfilter/ipset/ip_set_hash_netiface.c | 8 +++--- net/netfilter/ipset/ip_set_hash_netnet.c | 37 ++++++++++++---------------- net/netfilter/ipset/ip_set_hash_netportnet.c | 37 ++++++++++++---------------- 4 files changed, 41 insertions(+), 49 deletions(-) commit a212e08e8e0a5c689e61dd175b6e99223dda835c Author: Sergey Popovich Date: Fri Jun 12 21:26:43 2015 +0200 netfilter: ipset: Make sure we always return line number on batch Even if we return with generic IPSET_ERR_PROTOCOL it is good idea to return line number if we called in batch mode. Moreover we are not always exiting with IPSET_ERR_PROTOCOL. For example hash:ip,port,net may return IPSET_ERR_HASH_RANGE_UNSUPPORTED or IPSET_ERR_INVALID_CIDR. Signed-off-by: Sergey Popovich Signed-off-by: Jozsef Kadlecsik net/netfilter/ipset/ip_set_bitmap_ip.c | 6 +++--- net/netfilter/ipset/ip_set_bitmap_ipmac.c | 6 +++--- net/netfilter/ipset/ip_set_bitmap_port.c | 6 +++--- net/netfilter/ipset/ip_set_hash_ip.c | 12 ++++++------ net/netfilter/ipset/ip_set_hash_ipmark.c | 12 ++++++------ net/netfilter/ipset/ip_set_hash_ipport.c | 12 ++++++------ net/netfilter/ipset/ip_set_hash_ipportip.c | 12 ++++++------ net/netfilter/ipset/ip_set_hash_ipportnet.c | 12 ++++++------ net/netfilter/ipset/ip_set_hash_mac.c | 6 +++--- net/netfilter/ipset/ip_set_hash_net.c | 12 ++++++------ net/netfilter/ipset/ip_set_hash_netiface.c | 12 ++++++------ net/netfilter/ipset/ip_set_hash_netnet.c | 12 ++++++------ net/netfilter/ipset/ip_set_hash_netport.c | 12 ++++++------ net/netfilter/ipset/ip_set_hash_netportnet.c | 12 ++++++------ net/netfilter/ipset/ip_set_list_set.c | 6 +++--- 15 files changed, 75 insertions(+), 75 deletions(-) commit 2c227f278a92ca3a1515373cdf9cce3766433e40 Author: Sergey Popovich Date: Fri Jun 12 21:23:31 2015 +0200 netfilter: ipset: Permit CIDR equal to the host address CIDR in IPv6 Permit userspace to supply CIDR length equal to the host address CIDR length in netlink message. Prohibit any other CIDR length for IPv6 variant of the set. Also return -IPSET_ERR_HASH_RANGE_UNSUPPORTED instead of generic -IPSET_ERR_PROTOCOL in IPv6 variant of hash:ip,port,net when IPSET_ATTR_IP_TO attribute is given. Signed-off-by: Sergey Popovich Signed-off-by: Jozsef Kadlecsik net/netfilter/ipset/ip_set_hash_ip.c | 12 +++++++++--- net/netfilter/ipset/ip_set_hash_ipmark.c | 12 +++++++++--- net/netfilter/ipset/ip_set_hash_ipport.c | 12 +++++++++--- net/netfilter/ipset/ip_set_hash_ipportip.c | 12 +++++++++--- net/netfilter/ipset/ip_set_hash_ipportnet.c | 10 +++++++--- 5 files changed, 43 insertions(+), 15 deletions(-) commit 7dd37bc8e605d3ce14e6a1bc88ebbfae7ef43b9f Author: Sergey Popovich Date: Fri Jun 12 21:14:09 2015 +0200 netfilter: ipset: Check extensions attributes before getting extensions. Make all extensions attributes checks within ip_set_get_extensions() and reduce number of duplicated code. Signed-off-by: Sergey Popovich Signed-off-by: Jozsef Kadlecsik net/netfilter/ipset/ip_set_bitmap_ip.c | 8 +------- net/netfilter/ipset/ip_set_bitmap_ipmac.c | 8 +------- net/netfilter/ipset/ip_set_bitmap_port.c | 8 +------- net/netfilter/ipset/ip_set_core.c | 9 +++++++++ net/netfilter/ipset/ip_set_hash_ip.c | 14 +------------- net/netfilter/ipset/ip_set_hash_ipmark.c | 14 +------------- net/netfilter/ipset/ip_set_hash_ipport.c | 14 +------------- net/netfilter/ipset/ip_set_hash_ipportip.c | 14 +------------- net/netfilter/ipset/ip_set_hash_ipportnet.c | 14 +------------- net/netfilter/ipset/ip_set_hash_mac.c | 8 +------- net/netfilter/ipset/ip_set_hash_net.c | 16 ++-------------- net/netfilter/ipset/ip_set_hash_netiface.c | 16 ++-------------- net/netfilter/ipset/ip_set_hash_netnet.c | 16 ++-------------- net/netfilter/ipset/ip_set_hash_netport.c | 16 ++-------------- net/netfilter/ipset/ip_set_hash_netportnet.c | 16 ++-------------- net/netfilter/ipset/ip_set_list_set.c | 8 +------- 16 files changed, 29 insertions(+), 170 deletions(-) commit edda0791743eafc36382fb893d91547f36edaf7d Author: Sergey Popovich Date: Fri Jun 12 21:11:54 2015 +0200 netfilter: ipset: Use SET_WITH_*() helpers to test set extensions Signed-off-by: Sergey Popovich Signed-off-by: Jozsef Kadlecsik net/netfilter/ipset/ip_set_core.c | 12 ++++++------ net/netfilter/ipset/ip_set_hash_gen.h | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) commit aaeb6e24f5b6cb6a664fbdec6e08b65c3173c1b3 Author: Jozsef Kadlecsik Date: Fri Jun 12 21:07:54 2015 +0200 netfilter: ipset: Use MSEC_PER_SEC consistently Signed-off-by: Jozsef Kadlecsik include/linux/netfilter/ipset/ip_set_timeout.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 25c43bf13b1657d9a2f6a2565e9159ce31517aa5 Merge: a2f0fad c8d17b4 Author: David S. Miller Date: Sat Jun 13 23:56:52 2015 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net commit 2a049f7e64bd622f09ddf970e63782f63aeecfa9 Author: Joglekar Tejas Date: Sun Jun 14 04:25:28 2015 +0000 staging:rtl8723au:rtw_ap:space prohibited between function name & '(' This patch removes the warning "space prohibited between function name and open parenthesis"given by checkpatch.pl Signed-off-by: Joglekar Tejas Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8723au/core/rtw_ap.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 73250a7311204bcc7c1803c6b96021f8b04f9903 Author: Joglekar Tejas Date: Sun Jun 14 03:01:06 2015 +0000 staging:rtl8723au:ioctl_cfg80211:spaces required around '>' This patch removes the error given by checkpatch.pl " spaces required around that '>' " Signed-off-by: Joglekar Tejas Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3dc196eae1db548f05e53e5875ff87b8ff79f249 Author: Alexander Usyskin Date: Sat Jun 13 08:51:17 2015 +0300 mei: me: wait for power gating exit confirmation Fix the hbm power gating state machine so it will wait till it receives confirmation interrupt for the PG_ISOLATION_EXIT message. In process of the suspend flow the devices first have to exit from the power gating state (runtime pm resume). If we do not handle the confirmation interrupt after sending PG_ISOLATION_EXIT message, we may receive it already after the suspend flow has changed the device state and interrupt will be interpreted as a spurious event, consequently link reset will be invoked which will prevent the device from completing the suspend flow kernel: [6603] mei_reset:136: mei_me 0000:00:16.0: powering down: end of reset kernel: [476] mei_me_irq_thread_handler:643: mei_me 0000:00:16.0: function called after ISR to handle the interrupt processing. kernel: mei_me 0000:00:16.0: FW not ready: resetting Cc: #3.18+ Cc: Gabriele Mazzotta Link: https://bugzilla.kernel.org/show_bug.cgi?id=86241 Link: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=770397 Tested-by: Gabriele Mazzotta Signed-off-by: Alexander Usyskin Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/client.c | 2 +- drivers/misc/mei/hw-me.c | 59 ++++++++++++++++++++++++++++++++++++++++++---- drivers/misc/mei/hw-txe.c | 13 ++++++++++ drivers/misc/mei/mei_dev.h | 11 +++++++++ 4 files changed, 80 insertions(+), 5 deletions(-) commit c241e9b1d9ee7292d708d2298bc87f1455aad0c7 Author: Alexander Usyskin Date: Sat Jun 13 21:18:40 2015 +0300 mei: reset flow control on the last client disconnection The FW resets the flow control for single buffer clients when the last host client disconnects, also the driver has to follow this policy and zero the flow control counter in such case. Cc: #4.1 Signed-off-by: Alexander Usyskin Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/client.c | 3 +++ 1 file changed, 3 insertions(+) commit 38e127275fa5c88fb23ace8011eda05994c4ef78 Author: Anton Gerasimov Date: Sat Jun 13 22:36:35 2015 +0300 staging: fbtft: correct a typo in a comment Typo in a comment to register write corrected. Signed-off-by: Anton Gerasimov Signed-off-by: Greg Kroah-Hartman drivers/staging/fbtft/fb_ili9320.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6684d0c4c8284687d14904051e2f16d76e495fa4 Author: Anton Gerasimov Date: Sat Jun 13 22:23:55 2015 +0300 staging: fbtft: reformat hardcoded sequences Added spaces after commas in initialization sequences and removed unnecessary line continuations. Signed-off-by: Anton Gerasimov Signed-off-by: Greg Kroah-Hartman drivers/staging/fbtft/flexfb.c | 116 ++++++++++++++++++++--------------------- 1 file changed, 58 insertions(+), 58 deletions(-) commit 9026b5d5afc44f397077d28a02f9d5933127ae7c Author: Anton Gerasimov Date: Sat Jun 13 22:23:54 2015 +0300 staging: fbtft: rearrange comments for readability Placed comments to register writes before the function calls to eliminate long strings and make code more readable. Signed-off-by: Anton Gerasimov Signed-off-by: Greg Kroah-Hartman drivers/staging/fbtft/fb_ili9320.c | 118 +++++++++++++++++++++++++++---------- 1 file changed, 88 insertions(+), 30 deletions(-) commit bc573c5131f36339f54385c5a9f87cff7c2b693c Author: Anton Gerasimov Date: Sat Jun 13 22:23:53 2015 +0300 staging: fbtft: eliminate code duplication Eliminated code duplication when searching for a display. Signed-off-by: Anton Gerasimov Signed-off-by: Greg Kroah-Hartman drivers/staging/fbtft/fbtft_device.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 8e56b9555111f080880679e1f42d51ae899d123b Author: Anton Gerasimov Date: Sat Jun 13 22:23:52 2015 +0300 staging: fbtft: remove unnecessary spaces before tabs The patch removes spaces before tabs so that checkpatch.pl is content. Signed-off-by: Anton Gerasimov Signed-off-by: Greg Kroah-Hartman drivers/staging/fbtft/fbtft_device.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6c604d6657f30b1a999ee3c4e1638927feb30ab3 Author: Anton Gerasimov Date: Sat Jun 13 22:23:51 2015 +0300 staging: fbtft: remove unnecessary line continuations Removed unnecessary line continuations in several lines. Signed-off-by: Anton Gerasimov Signed-off-by: Greg Kroah-Hartman drivers/staging/fbtft/fbtft_device.c | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) commit 56cda8acd7174a9cacaed278894c247ee5a8d9fd Author: Anton Gerasimov Date: Sat Jun 13 22:23:50 2015 +0300 staging: fbtft: make module descriptions greppable Split module description strings are merged for searchability. Signed-off-by: Anton Gerasimov Signed-off-by: Greg Kroah-Hartman drivers/staging/fbtft/fbtft_device.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit c26c5e739ee5de22442f3adabbf58392d09a68e4 Author: Anton Gerasimov Date: Sat Jun 13 22:23:49 2015 +0300 staging: fbtft: replace spaces with tabs Indentation with spaces fixed. Signed-off-by: Anton Gerasimov Signed-off-by: Greg Kroah-Hartman drivers/staging/fbtft/fb_tinylcd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1e6acab05c91f160f977a2160916abaabc89f976 Author: Anton Gerasimov Date: Sat Jun 13 22:23:48 2015 +0300 staging: fbtft: put spaces around assignment operators Put spaces around assignment operators for readability. Signed-off-by: Anton Gerasimov Signed-off-by: Greg Kroah-Hartman drivers/staging/fbtft/flexfb.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 3c588452c2df09e1f0aa48b0e04bf53c31d61565 Author: Anton Gerasimov Date: Sat Jun 13 22:23:47 2015 +0300 staging: fbtft: split long strings Split long function declarations, function calls, comments etc. Signed-off-by: Anton Gerasimov Signed-off-by: Greg Kroah-Hartman drivers/staging/fbtft/fb_ra8875.c | 13 ++++++++---- drivers/staging/fbtft/fb_tls8204.c | 11 +++++++--- drivers/staging/fbtft/fbtft_device.c | 3 ++- drivers/staging/fbtft/flexfb.c | 41 +++++++++++++++++++++++++----------- 4 files changed, 48 insertions(+), 20 deletions(-) commit 35e606de51458f28799409e7e838b195d68923c4 Author: Alessandro Parini Date: Sat Jun 13 17:40:49 2015 +0200 staging: unisys: fix "missing a blank line" coding style fix coding style issue "Missing a blank line after declarations" detected by checkpatch.pl in visorchipset.c Signed-off-by: Alessandro Parini Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorchipset.c | 1 + 1 file changed, 1 insertion(+) commit 4b4fd43a437626b45c0da21b373eedec38cc46fa Author: Alessandro Parini Date: Sat Jun 13 17:40:48 2015 +0200 staging: unisys: fix braces coding style fix coding style issue "braces {} are not necessary for single statement blocks" detected by checkpatch.pl in visorchipset.c Signed-off-by: Alessandro Parini Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorchipset.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 625a9e012dc637fdc4ceadaac74f18155b0406f6 Author: Dmitry Kalinkin Date: Sat Jun 13 16:34:03 2015 +0300 staging: vme_user: remove buf_unalloc helper buf_unalloc is essentially a vme_free_consistent: 1) image[i].kern_buf is never NULL in buf_alloc call 2) kern_buf, pci_buf and size_buf get zeroed in vme_user_probe anyway Signed-off-by: Dmitry Kalinkin Cc: Igor Alekseev Signed-off-by: Greg Kroah-Hartman drivers/staging/vme/devices/vme_user.c | 31 ++++--------------------------- 1 file changed, 4 insertions(+), 27 deletions(-) commit 0b029cb2f57a1499683d6b636fb967e5736ed554 Author: Dmitry Kalinkin Date: Sat Jun 13 16:34:02 2015 +0300 staging: vme_user: remove open/release Checking for image[minor].resource != NULL is not needed since all resources are allocated before device is created. image[minor].users accounting is deleted because it's not being used. Signed-off-by: Dmitry Kalinkin Cc: Igor Alekseev Signed-off-by: Greg Kroah-Hartman drivers/staging/vme/devices/vme_user.c | 44 ---------------------------------- 1 file changed, 44 deletions(-) commit e4aea6aa03267b496c21abefe170bb0d77192882 Author: Dmitry Kalinkin Date: Sat Jun 13 16:34:01 2015 +0300 staging: vme_user: remove forward declarations Reorder code so that forward declarations are not needed. Signed-off-by: Dmitry Kalinkin Cc: Igor Alekseev Signed-off-by: Greg Kroah-Hartman drivers/staging/vme/devices/vme_user.c | 139 ++++++++++++++------------------- 1 file changed, 60 insertions(+), 79 deletions(-) commit 07e9e619db50ad6704e714f8160a59f1de3cf93c Author: Dogukan Ergun Date: Sat Jun 13 15:04:26 2015 +0300 staging: rtl8712: fix else after break or return warning This patch fixes checkpatch.pl warning. WARNING: else is not generally useful after a break or return Signed-off-by: Dogukan Ergun Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8712/rtl871x_ioctl_linux.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit c5b72378a2a47f2ef64eb6a76a8627300999d874 Author: Chaehyun Lim Date: Sat Jun 13 15:41:19 2015 +0900 staging: wilc1000: remove itypes.h Remove itypes.h that is not needed. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/coreconfigurator.c | 1 - drivers/staging/wilc1000/host_interface.c | 1 - drivers/staging/wilc1000/itypes.h | 39 ----------------------------- 3 files changed, 41 deletions(-) commit 0be1eb7429b2d23db44e3d15589d20fce53e7043 Author: Chaehyun Lim Date: Sat Jun 13 15:41:18 2015 +0900 staging: wilc1000: remove BOOL_T typedef Remove BOOL_T typedef. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 6 +++--- drivers/staging/wilc1000/itypes.h | 9 --------- 2 files changed, 3 insertions(+), 12 deletions(-) commit 2c13087194700b16aada1a9112fad5b3861ac9fb Author: David Kershner Date: Fri Jun 12 23:12:35 2015 -0400 staging: unisys: cleanup iochannel includes The iochannel.h file no longer needs to include conttrolvmchannel.h, vbuschannel.h and vmcallinterfaces.h. Signed-off-by: David Kershner Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/include/iochannel.h | 6 ------ 1 file changed, 6 deletions(-) commit 2fb22a8042fe96b4220843f79241c116d90922c4 Author: Ryan Underwood Date: Sun Jan 25 16:07:09 2015 -0800 Disable write buffering on Toshiba ToPIC95 Disable write buffering on the Toshiba ToPIC95 if it is enabled by somebody (it is not supposed to be a power-on default according to the datasheet). On the ToPIC95, practically no 32-bit Cardbus card will work under heavy load without locking up the whole system if this is left enabled. I tried about a dozen. It does not affect 16-bit cards. This is similar to the O2 bugs in early controller revisions it seems. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=55961 Cc: Signed-off-by: Ryan C. Underwood Signed-off-by: Dominik Brodowski drivers/pcmcia/topic.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit 5069288bd477857fd1894452aa61416f07372060 Author: Tomas Winkler Date: Sat Jun 13 22:11:33 2015 +0300 MAINTAINERS: mei: add mei_cl_bus.h to maintained file list mei_cl_bus.h was overlooked when we added the mei bus Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman MAINTAINERS | 1 + 1 file changed, 1 insertion(+) commit fd1883f07cb434707e50c4c9a16e3ed4b3a5e74f Author: Daniel Baluta Date: Thu Jun 11 18:49:34 2015 +0300 iio: proximity: sx9500: Fix proximity value Because of the ABI confusion proximity value exposed by SX9500 was inverted. Signed-off-by: Daniel Baluta Reviewed-by: Vlad Dogaru Cc: Signed-off-by: Jonathan Cameron drivers/iio/proximity/sx9500.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bdc10d57f236b534fb675a4bbefd10017aeb2b26 Author: Daniel Baluta Date: Thu Jun 11 18:49:33 2015 +0300 iio: ABI: Clarify proximity output value Current description for proximity measurement is ambiguous. While the first part says that proximity is measured by observing reflectivity, the second part incorrectly infers that reported values should behave like a distance. This is because of AS3935 lightning sensor which uses the proximity API, while not being a true proximity sensor. Note this is marked for stable as it accompanies a fix in ABI usage to the sx9500 driver which would otherwise appear to be correct. Fixes: 614e8842ddf ("iio: ABI: add clarification for proximity") Signed-off-by: Daniel Baluta Cc: Signed-off-by: Jonathan Cameron Documentation/ABI/testing/sysfs-bus-iio | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 6a3c45bb5a385be7049a7725a4fe93eaa76915f4 Author: Adriana Reus Date: Fri Jun 12 18:10:23 2015 +0300 iio: inv-mpu: Specify the expected format/precision for write channels The gyroscope needs IIO_VAL_INT_PLUS_NANO for the scale channel and unless specified write returns MICRO by default. This needs to be properly specified so that write operations into scale have the expected behaviour. Signed-off-by: Adriana Reus Cc: Signed-off-by: Jonathan Cameron drivers/iio/imu/inv_mpu6050/inv_mpu_core.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit 8d2b21db49f1b8bfc882586932bdb3f707420b43 Author: Bart Van Assche Date: Thu Jun 4 15:58:09 2015 -0700 qla2xxx: Fix indentation Detected by smatch. Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: James Bottomley drivers/scsi/qla2xxx/qla_init.c | 2 +- drivers/scsi/qla2xxx/qla_iocb.c | 8 ++++---- drivers/scsi/qla2xxx/qla_isr.c | 4 ++-- drivers/scsi/qla2xxx/qla_nx.c | 2 +- drivers/scsi/qla2xxx/qla_nx2.c | 13 ++++++------- 5 files changed, 14 insertions(+), 15 deletions(-) commit 5897cb2fc3016c9c2e4b1e3ec91d47522e08bd6e Author: Bart Van Assche Date: Thu Jun 4 15:57:20 2015 -0700 qla2xxx: Comment out unreachable code Comment out the code that is never reached in qla83xx_idc_unlock() and also in qlt_set_data_offset() to avoid that static source code analysis tools report warnings for this code. Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: James Bottomley drivers/scsi/qla2xxx/qla_os.c | 7 ++++++- drivers/scsi/qla2xxx/qla_target.c | 16 +++++++++------- 2 files changed, 15 insertions(+), 8 deletions(-) commit 8cd1943bf0e87f467a1b498c63483f70b18b43d7 Author: Luis R. Rodriguez Date: Tue Apr 21 13:46:06 2015 -0700 fusion: remove dead MTRR code If and when this gets enabled the driver could should split up IO memory space properly and that is quite a bit of work. Just remove the uncommented dead MTRR code then. 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 its 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()") Signed-off-by: Luis R. Rodriguez Acked-by: Sreekanth Reddy Signed-off-by: James Bottomley drivers/message/fusion/mptbase.c | 24 ------------------------ drivers/message/fusion/mptbase.h | 1 - 2 files changed, 25 deletions(-) commit 8810eac83624ab1ad593c59da43e187179f5941e Author: Johannes Thumshirn Date: Wed Jun 3 09:56:42 2015 +0200 advansys: fix compilation errors and warnings when CONFIG_PCI is not set Fix compilation errors on forgotten #include and warnings when CONFIG_PCI is not set. Reported-by: Jim Davis Signed-off-by: Johannes Thumshirn Reviewed-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/advansys.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 2865c073257eaf1ede043a4dbc77afc71b6de175 Author: Tomas Henzl Date: Wed Jun 3 17:37:02 2015 +0200 mptsas: fix depth param in scsi_track_queue_full A user of scsi_track_queue_full should pass to the function a constant value untill the queue-depth changes, otherwise the internal logic in scsi_track_queue_full rejects the change. Other users of this function use a 'sdev->queue_depth - 1' as depth parameter, let's do the same. Signed-off-by: Tomas Henzl Acked-by: "Sreekanth Reddy" Signed-off-by: James Bottomley drivers/message/fusion/mptsas.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 258c3af2b9309412d82e74b2ea87e8c140fe2072 Author: Tomas Henzl Date: Tue Jun 2 16:09:46 2015 +0530 megaraid: fix irq setup process regression This fixes a regression caused by commit d3557fc8be11d25f316884581f487684f8e7dad3 megaraid_sas : Add separate function for setting up IRQs This makes boot end with 'root does not exist' message on certain adapters. The bug is that the driver does not setup ints for cards without msi-x support. This patch fixes it, in addition to that it moves tasklet initialisation before enable_intr, otherwise a kernel panic may occur, when an interrupt arrives before the tasklet is ready. Signed-off-by: Tomas Henzl Signed-off-by: Sumit Saxena Signed-off-by: James Bottomley drivers/scsi/megaraid/megaraid_sas_base.c | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) commit f0284ca63ecf8bdbf76c47eb5354a6a40239320c Author: James Smart Date: Fri May 22 10:42:44 2015 -0400 lpfc: Update version to 10.7.0.0 for upstream patch set. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/lpfc/lpfc_version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7c5e518cc02c64901cb8920b7f5b080b91375324 Author: James Smart Date: Fri May 22 10:42:43 2015 -0400 lpfc: Fix to drop PLOGIs from fabric node till LOGO processing completes The domain controller PLOGI's concurrent with prior LOGO's/unreg_rpi's completing created a race condition where driver rpi ref count can inadvertantly hit 0 and the rpi attempted to be freed. This error sometimes resulted in Warning messages indicating kref.h via lfpc_nlp_get+0x128. Correct by dropping any new PLOGI until the prior nport state has settled. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/lpfc/lpfc_els.c | 14 +++----------- drivers/scsi/lpfc/lpfc_hbadisc.c | 13 +++++++++++-- drivers/scsi/lpfc/lpfc_nportdisc.c | 2 +- drivers/scsi/lpfc/lpfc_sli.c | 2 +- 4 files changed, 16 insertions(+), 15 deletions(-) commit ae374a308cbfeab3cf72ef7c57695d2145defeab Author: James Smart Date: Fri May 22 10:42:41 2015 -0400 lpfc: Fix scsi task management error message. TMF's were getting error messages on FCP_RSP errors (underrun). Underruns aren't meaningful in the scenario. Change the error message to filter out these response check errors, and don't unconditionally mark the cmd as in error. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/lpfc/lpfc_scsi.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) commit 16f3b48d26ac069abc020826f0c429c4ddcfb20c Author: James Smart Date: Fri May 22 10:42:40 2015 -0400 lpfc: Fix cq_id masking problem. The driver inadvertainly constrained the id space to 8 bits, when its a full 16 bits from hw. This resulted in bad id's being written to the hardware. Resulted in symptoms such as incomplete initialization, no detection of link events, etc. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/lpfc/lpfc_hw4.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5116fbf136ea21b8678a85eee5c03508736ada9f Author: James Smart Date: Fri May 22 10:42:39 2015 -0400 lpfc: Fix scsi prep dma buf error. Didn't check for less-than-or-equal zero. Means we may later call scsi_dma_unmap() even though we don't have valid mappings. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/lpfc/lpfc_scsi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8b0dff14164d3f43eba8365950b506d898e0e1e6 Author: James Smart Date: Fri May 22 10:42:38 2015 -0400 lpfc: Add support for using block multi-queue With blk-mq support in the mid-layer, lpfc can do IO steering based on the information in the request tag. This patch allows lpfc to use blk-mq if enabled. If not enabled, we fall back into the emulex-internal affinity mappings. This feature can be turned on via CONFIG_SCSI_MQ_DEFAULT or passing scsi_mod.use_blk_mq=Y as a parameter to the kernel. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/lpfc/lpfc_init.c | 4 ++- drivers/scsi/lpfc/lpfc_scsi.c | 43 +++++++++++++++++++++++++ drivers/scsi/lpfc/lpfc_scsi.h | 3 ++ drivers/scsi/lpfc/lpfc_sli.c | 74 ++++++++++++++----------------------------- 4 files changed, 72 insertions(+), 52 deletions(-) commit 953ceeda97ddfed2c6e0bea3706257d57197f269 Author: James Smart Date: Fri May 22 10:42:37 2015 -0400 lpfc: Devices are not discovered during takeaway/giveback testing When a remote nport changes it's DID, a new ndlp is used. However, we left the old ndlp state unchanged and still in a discovery state. The may stall discovery resulting in some devices not being discovered. Correct by swapping the state of the 2 ndlp's when a DID swap is detected. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/lpfc/lpfc_els.c | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) commit 73dc0dbed3f9f65c6f80fab429dd9771de794714 Author: James Smart Date: Fri May 22 10:42:36 2015 -0400 lpfc: Fix vport deletion failure. If a vport was deleted while in the middle of discovery, we weren't clearing the nport discovery flag. Correct by clearing the flag and cancelling our discovery timeout timer. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/lpfc/lpfc_els.c | 2 ++ 1 file changed, 2 insertions(+) commit 481ad967991e1ff00d627d365de398b7a77e4d7f Author: James Smart Date: Fri May 22 10:42:35 2015 -0400 lpfc: Check for active portpeerbeacon. LCB requests to set Beacon would fail if the beacon was already enabled internally as the mailbox command used to query the state failes with an already-set status. Correct by enhancing the check so we don't fail if if the already set status comes back. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/lpfc/lpfc_els.c | 19 +++++++++++++++---- drivers/scsi/lpfc/lpfc_hw4.h | 6 ++++++ 2 files changed, 21 insertions(+), 4 deletions(-) commit 7d641938aa2ae433a97cc65ec622547cfe08f2ed Author: Eric Anholt Date: Wed May 13 13:10:32 2015 -0700 mailbox/bcm2835: Fix mailbox full detection. With the VC reader blocked and the ARM writing, MAIL0_STA reads empty permanently while MAIL1_STA goes from empty (0x40000000) to non-empty (0x00000001-0x00000007) to full (0x80000008). This bug ended up having no effect on us, because all of our transactions in the client driver were synchronous and under a mutex. Suggested-by: Phil Elwell Signed-off-by: Eric Anholt Acked-by: Stephen Warren Signed-off-by: Jassi Brar drivers/mailbox/bcm2835-mailbox.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 70a3887a8d843b8485d90bea6733e53c4c076c41 Author: Matt Ranostay Date: Fri Jun 12 21:47:46 2015 -0700 ALSA: hda-beep: Update authors dead email address Signed-off-by: Matt Ranostay Signed-off-by: Takashi Iwai sound/pci/hda/hda_beep.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a2f0fad32b0d0022c7e5706d333d74a9579f3742 Author: Eric Dumazet Date: Fri Jun 12 19:34:03 2015 -0700 tcp: tcp_v6_connect() cleanup Remove dead code from tcp_v6_connect() Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller net/ipv6/tcp_ipv6.c | 2 -- 1 file changed, 2 deletions(-) commit 1e98a0f08abddde87f0f93237f10629ecb4880ef Author: Eric Dumazet Date: Fri Jun 12 19:31:32 2015 -0700 flow_dissector: fix ipv6 dst, hop-by-hop and routing ext hdrs __skb_header_pointer() returns a pointer that must be checked. Fixes infinite loop reported by Alexei, and add __must_check to catch these errors earlier. Fixes: 6a74fcf426f5 ("flow_dissector: add support for dst, hop-by-hop and routing ext hdrs") Reported-by: Alexei Starovoitov Tested-by: Alexei Starovoitov Signed-off-by: Eric Dumazet Acked-by: Tom Herbert Signed-off-by: David S. Miller include/linux/skbuff.h | 9 +++++---- net/core/flow_dissector.c | 6 ++++-- 2 files changed, 9 insertions(+), 6 deletions(-) commit bf86546760502b24e16fad75e3affde61efb5e2c Author: Fabian Frederick Date: Fri Jun 12 23:47:33 2015 -0400 ext4: use swap() in mext_page_double_lock() Use kernel.h macro definition. Thanks to Julia Lawall for Coccinelle scripting support. Signed-off-by: Fabian Frederick Signed-off-by: Theodore Ts'o fs/ext4/move_extent.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit 4b7e2db5c08ca3d9f3b75b2a46f53c358ea55540 Author: Fabian Frederick Date: Fri Jun 12 23:46:33 2015 -0400 ext4: use swap() in memswap() Use kernel.h macro definition. Thanks to Julia Lawall for Coccinelle scripting support. Signed-off-by: Fabian Frederick Signed-off-by: Theodore Ts'o fs/ext4/ioctl.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit bdf96838aea6a265f2ae6cbcfb12a778c84a0b8e Author: Theodore Ts'o Date: Fri Jun 12 23:45:33 2015 -0400 ext4: fix race between truncate and __ext4_journalled_writepage() The commit cf108bca465d: "ext4: Invert the locking order of page_lock and transaction start" caused __ext4_journalled_writepage() to drop the page lock before the page was written back, as part of changing the locking order to jbd2_journal_start -> page_lock. However, this introduced a potential race if there was a truncate racing with the data=journalled writeback mode. Fix this by grabbing the page lock after starting the journal handle, and then checking to see if page had gotten truncated out from under us. This fixes a number of different warnings or BUG_ON's when running xfstests generic/086 in data=journalled mode, including: jbd2_journal_dirty_metadata: vdc-8: bad jh for block 115643: transaction (ee3fe7 c0, 164), jh->b_transaction ( (null), 0), jh->b_next_transaction ( (null), 0), jlist 0 - and - kernel BUG at /usr/projects/linux/ext4/fs/jbd2/transaction.c:2200! ... Call Trace: [] ? __ext4_journalled_invalidatepage+0x117/0x117 [] __ext4_journalled_invalidatepage+0x10f/0x117 [] ? __ext4_journalled_invalidatepage+0x117/0x117 [] ? lock_buffer+0x36/0x36 [] ext4_journalled_invalidatepage+0xd/0x22 [] do_invalidatepage+0x22/0x26 [] truncate_inode_page+0x5b/0x85 [] truncate_inode_pages_range+0x156/0x38c [] truncate_inode_pages+0x11/0x15 [] truncate_pagecache+0x55/0x71 [] ext4_setattr+0x4a9/0x560 [] ? current_kernel_time+0x10/0x44 [] notify_change+0x1c7/0x2be [] do_truncate+0x65/0x85 [] ? file_ra_state_init+0x12/0x29 - and - WARNING: CPU: 1 PID: 1331 at /usr/projects/linux/ext4/fs/jbd2/transaction.c:1396 irty_metadata+0x14a/0x1ae() ... Call Trace: [] ? console_unlock+0x3a1/0x3ce [] dump_stack+0x48/0x60 [] warn_slowpath_common+0x89/0xa0 [] ? jbd2_journal_dirty_metadata+0x14a/0x1ae [] warn_slowpath_null+0x14/0x18 [] jbd2_journal_dirty_metadata+0x14a/0x1ae [] __ext4_handle_dirty_metadata+0xd4/0x19d [] write_end_fn+0x40/0x53 [] ext4_walk_page_buffers+0x4e/0x6a [] ext4_writepage+0x354/0x3b8 [] ? mpage_release_unused_pages+0xd4/0xd4 [] ? wait_on_buffer+0x2c/0x2c [] ? ext4_writepage+0x3b8/0x3b8 [] __writepage+0x10/0x2e [] write_cache_pages+0x22d/0x32c [] ? ext4_writepage+0x3b8/0x3b8 [] ext4_writepages+0x102/0x607 [] ? sched_clock_local+0x10/0x10e [] ? __lock_is_held+0x2e/0x44 [] ? lock_is_held+0x43/0x51 [] do_writepages+0x1c/0x29 [] __writeback_single_inode+0xc3/0x545 [] writeback_sb_inodes+0x21f/0x36d ... Signed-off-by: Theodore Ts'o Cc: stable@vger.kernel.org fs/ext4/inode.c | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) commit 1cb767cd4a79703105f4f3774c76896d621fdc54 Author: Theodore Ts'o Date: Fri Jun 12 23:44:33 2015 -0400 ext4 crypto: fail the mount if blocksize != pagesize We currently don't correctly handle the case where blocksize != pagesize, so disallow the mount in those cases. Signed-off-by: Theodore Ts'o fs/ext4/super.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit 5b173cf92729b02ff8207abd85bfcbbef3443b94 Author: Raghu Vatsavayi Date: Fri Jun 12 18:11:50 2015 -0700 Fix Cavium Liquidio build related errors and warnings 1) Fixed following sparse warnings: lio_main.c:213:6: warning: symbol 'octeon_droq_bh' was not declared. Should it be static? lio_main.c:233:5: warning: symbol 'lio_wait_for_oq_pkts' was not declared. Should it be static? lio_main.c:3083:5: warning: symbol 'lio_nic_info' was not declared. Should it be static? lio_main.c:2618:16: warning: cast from restricted __be16 octeon_device.c:466:6: warning: symbol 'oct_set_config_info' was not declared. Should it be static? octeon_device.c:573:25: warning: cast to restricted __be32 octeon_device.c:582:29: warning: cast to restricted __be32 octeon_device.c:584:39: warning: cast to restricted __be32 octeon_device.c:594:13: warning: cast to restricted __be32 octeon_device.c:596:25: warning: cast to restricted __be32 octeon_device.c:613:25: warning: cast to restricted __be32 octeon_device.c:614:29: warning: cast to restricted __be64 octeon_device.c:615:29: warning: cast to restricted __be32 octeon_device.c:619:37: warning: cast to restricted __be32 octeon_device.c:623:33: warning: cast to restricted __be32 cn66xx_device.c:540:6: warning: symbol 'lio_cn6xxx_get_pcie_qlmport' was not declared. Should it be s octeon_mem_ops.c:181:16: warning: cast to restricted __be64 octeon_mem_ops.c:190:16: warning: cast to restricted __be32 octeon_mem_ops.c:196:17: warning: incorrect type in initializer 2) Fix build errors corresponding to vmalloc on linux-next 4.1. 3) Liquidio now supports 64 bit only, modified Kconfig accordingly. 4) Fix some code alignment issues based on kernel build warnings. Signed-off-by: Derek Chickles Signed-off-by: Satanand Burla Signed-off-by: Felix Manlunas Signed-off-by: Raghu Vatsavayi Signed-off-by: David S. Miller drivers/net/ethernet/cavium/Kconfig | 1 + drivers/net/ethernet/cavium/liquidio/cn66xx_device.c | 2 +- drivers/net/ethernet/cavium/liquidio/lio_main.c | 9 +++++---- drivers/net/ethernet/cavium/liquidio/liquidio_image.h | 14 +++++++------- drivers/net/ethernet/cavium/liquidio/octeon_device.c | 8 +++++--- drivers/net/ethernet/cavium/liquidio/octeon_droq.c | 1 + drivers/net/ethernet/cavium/liquidio/octeon_mem_ops.c | 6 +++--- drivers/net/ethernet/cavium/liquidio/request_manager.c | 4 +++- 8 files changed, 26 insertions(+), 19 deletions(-) commit 3d7f1800af0e4a781195770644fc1297217ba71d Author: Anda-Maria Nicolae Date: Fri Jun 12 15:25:51 2015 +0300 power_supply: rt9455_charger: Fix error reported by static analysis tool The result of container_of macro cannot be NULL, so there is no need to check whether info is NULL. Signed-off-by: Anda-Maria Nicolae Signed-off-by: Sebastian Reichel drivers/power/rt9455_charger.c | 3 --- 1 file changed, 3 deletions(-) commit e31cd7824d054d30ffc9f45550343123bc437e17 Author: Uwe Kleine-König Date: Fri Jun 12 10:54:04 2015 +0200 power_supply: bq24257: use flags argument of devm_gpiod_get Since 39b2bbe3d715 (gpio: add flags argument to gpiod_get*() functions) which appeared in v3.17-rc1, the gpiod_get* functions take an additional parameter that allows to specify direction and initial value for output. Simplify driver accordingly. Furthermore this is one caller less that stops us making the flags argument to gpiod_get*() mandatory. Signed-off-by: Uwe Kleine-König Signed-off-by: Sebastian Reichel drivers/power/bq24257_charger.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) commit 0007fa362a88f09a1b3e073434c83d35cc1e1e1c Author: Uwe Kleine-König Date: Fri Jun 12 09:19:34 2015 +0200 power_supply: bq25890: use flags argument of devm_gpiod_get Since 39b2bbe3d715 (gpio: add flags argument to gpiod_get*() functions) which appeared in v3.17-rc1, the gpiod_get* functions take an additional parameter that allows to specify direction and initial value for output. Simplify driver accordingly. Furthermore this is one caller less that stops us making the flags argument to gpiod_get*() mandatory. Signed-off-by: Uwe Kleine-König Signed-off-by: Sebastian Reichel drivers/power/bq25890_charger.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) commit 50641056d833813b71b0ad51823f7ded8dd62e7f Author: Thierry Reding Date: Fri Jun 12 15:16:21 2015 +0200 usb: dwc3: Use ASCII space in Kconfig The USB_DWC3_ULPI Kconfig entry uses a UTF-8 non-breaking space (0xca20) instead of a regular ASCII space (0x20). Commit 2e0d737fc76f ("kconfig: don't silently ignore unhandled characters") exposes this by warning about unhandled characters. Signed-off-by: Thierry Reding Signed-off-by: Greg Kroah-Hartman drivers/usb/dwc3/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 71206b9f8120eb513c621d4f31906577bb658df3 Author: Baruch Siach Date: Thu Jun 4 10:56:59 2015 +0300 Doc: serial-rs485.txt: update RS485 driver interface Since commit a5f276f10ff7 (serial_core: Handle TIOC[GS]RS485 ioctls., 2014-11-06) serial_core handles RS485 ioctls. Drivers only need to implement the rs485_config callback. Update serial-rs485.txt to reflect these changes. Signed-off-by: Baruch Siach Signed-off-by: Greg Kroah-Hartman Documentation/serial/serial-rs485.txt | 50 ++++------------------------------- 1 file changed, 5 insertions(+), 45 deletions(-) commit 3e20c31a222e31aa681bdf6a62d7bc9b82af60b7 Author: Baruch Siach Date: Thu Jun 4 10:57:00 2015 +0300 Doc: tty.txt: remove mention of the BKL The BKL is long gone, no need to kill the dead. Signed-off-by: Baruch Siach Signed-off-by: Greg Kroah-Hartman Documentation/serial/tty.txt | 3 --- 1 file changed, 3 deletions(-) commit 84e1eb83d0b9e0969a59b6848d718eaf71e98fcb Author: Baruch Siach Date: Thu Jun 4 10:56:58 2015 +0300 MAINTAINERS: tty: add serial docs directory Signed-off-by: Baruch Siach Signed-off-by: Greg Kroah-Hartman MAINTAINERS | 1 + 1 file changed, 1 insertion(+) commit ff0daa1c1a28c9866d735852a1cbfb9c757aaa7b Author: Fernando Guzman Lugo Date: Thu Jun 11 10:39:46 2015 +0800 serial: sprd: check for NULL after calling devm_clk_get In platforms which does not use CLK framework (HAVE_CLK not set), the clk_* functions return NULL instead of an error. This patch handles that scenario. Signed-off-by: Fernando Guzman Lugo Signed-off-by: Chunyan Zhang Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/sprd_serial.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 899f0c1c7dbcc487fdc8756a49ff70b1d5d75f89 Author: Soeren Grunewald Date: Thu Jun 11 09:25:05 2015 +0200 serial: 8250_pci: Correct uartclk for xr17v35x expansion chips The internal clock of the master chip, which is usually 125MHz, is only half (62.5MHz) for the slave chips. So we have to adjust the uartclk for all the slave ports. Therefor we add a new function to determine if a slave chip is present and update pci_xr17v35x_setup accordingly. Signed-off-by: Soeren Grunewald Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250_pci.c | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) commit be32c0cf0462c36f482b5ddcff1d8371be1e183c Author: Soeren Grunewald Date: Thu Jun 11 09:25:04 2015 +0200 serial: 8250_pci: Add support for 12 port Exar boards The Exar XR17V358 can also be combined with a XR17V354 chip to act as a single 12 port chip. This works the same way as the combining two XR17V358 chips. But the reported device id then is 0x4358. Signed-off-by: Soeren Grunewald Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250_pci.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) commit 6cf600aba1b7fcb6ec67a1dcea3a3c2391eeb331 Author: Masahiro Yamada Date: Fri Jun 12 18:04:17 2015 +0900 serial: 8250_uniphier: add bindings document for UniPhier UART This is binding information for the UniPhier on-chip UART driver (drivers/tty/serial/8250/8250_uniphier.c). Signed-off-by: Masahiro Yamada Signed-off-by: Greg Kroah-Hartman .../devicetree/bindings/serial/uniphier-uart.txt | 23 ++++++++++++++++++++++ 1 file changed, 23 insertions(+) commit f10a2233210aeaf8695039f3fc45aa2e064f1882 Author: Joakim Nordell Date: Mon Jun 8 14:56:51 2015 +0200 serial: core: cleanup in uart_get_baud_rate() Align with coding guidelines: Replaced a chain of "else if" by a switch case. Signed-off-by: Joakim Nordell Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/serial_core.c | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) commit 5c10439849f75e408112d5f1696623b2fae5a500 Author: Dmitry Kalinkin Date: Thu May 28 15:07:12 2015 +0300 vme: tsi148: depend on HAS_DMA for Kconfig Signed-off-by: Dmitry Kalinkin Cc: Igor Alekseev Signed-off-by: Greg Kroah-Hartman drivers/vme/bridges/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d884dd8c88e04958d809471781290b64f3d1a87a Author: Dmitry Kalinkin Date: Thu May 28 15:07:08 2015 +0300 staging: vme_user: remove unused counters Signed-off-by: Dmitry Kalinkin Cc: Igor Alekseev Signed-off-by: Greg Kroah-Hartman drivers/staging/vme/devices/vme_user.c | 31 ------------------------------- 1 file changed, 31 deletions(-) commit 5a2f8831243337dd05df42174b4d7b1e01daacda Author: Dmitry Kalinkin Date: Thu May 28 15:07:07 2015 +0300 vme: ca91cx42: fix LM_CTL address mask Universe II datasheet defines following address space values for LM_CTL[16:18] 000=A16 001=A24 010=A32 011,100,101=Reserved 110=User1 111=User2 Mask 5<<16 is not the right one for matching [16:18], instead we should use 7<<16. Signed-off-by: Dmitry Kalinkin Cc: Igor Alekseev Reported-by: Dan Carpenter Signed-off-by: Greg Kroah-Hartman drivers/vme/bridges/vme_ca91cx42.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1cfb645c8b7c82bbce4d77240754fcf5559cc82c Author: Dmitry Kalinkin Date: Thu May 28 15:07:06 2015 +0300 vme: ca91cx42: return error code on DMA error Signed-off-by: Dmitry Kalinkin Cc: Igor Alekseev Signed-off-by: Greg Kroah-Hartman drivers/vme/bridges/vme_ca91cx42.c | 1 + 1 file changed, 1 insertion(+) commit ef73f886b53548d83d71a439f51a0c13ea6c1dae Author: Dmitry Kalinkin Date: Thu May 28 15:07:04 2015 +0300 vme: export vme_check_window() Signed-off-by: Dmitry Kalinkin Cc: Igor Alekseev Signed-off-by: Greg Kroah-Hartman drivers/vme/vme.c | 5 +++-- include/linux/vme.h | 2 ++ 2 files changed, 5 insertions(+), 2 deletions(-) commit e7fd80cbb4a788b2f8b081ab8564752073c30505 Author: Dmitry Kalinkin Date: Thu May 28 15:07:03 2015 +0300 vme: check for A64 overflow in vme_check_window() Signed-off-by: Dmitry Kalinkin Cc: Igor Alekseev Signed-off-by: Greg Kroah-Hartman drivers/vme/vme.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 615c40dd9f884add78cc3048167b59856d241fa3 Author: Dmitry Kalinkin Date: Thu May 28 15:07:02 2015 +0300 staging: vme_user: refactor llseek to switch(){} This makes vme_user_llseek ignore all minors that don't have llseek implementation. Signed-off-by: Dmitry Kalinkin Cc: Igor Alekseev Signed-off-by: Greg Kroah-Hartman drivers/staging/vme/devices/vme_user.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) commit 75c66b6db7baacf592268d5d5c4c9ecb6e2bcae7 Author: Dmitry Kalinkin Date: Thu May 28 15:07:01 2015 +0300 vme: stop DMA transfer on interruption Signed-off-by: Dmitry Kalinkin Cc: Igor Alekseev Signed-off-by: Greg Kroah-Hartman drivers/vme/bridges/vme_ca91cx42.c | 17 ++++++++++++++--- drivers/vme/bridges/vme_tsi148.c | 15 +++++++++++++-- 2 files changed, 27 insertions(+), 5 deletions(-) commit b2383c90a9d691201b9aee557776694cde86a935 Author: Dmitry Kalinkin Date: Thu May 28 15:07:00 2015 +0300 vme: tsi148: fix first DMA item mapping This moves DMA mapping of the first list element to vme_list_add, the same place where other elements mappings occur. This prevents extra mapping or over-unmapping in the cases when vme_list_exec is called more or less than one time respectively. Also adds dma_mapping_error check. Signed-off-by: Dmitry Kalinkin Cc: Igor Alekseev Signed-off-by: Greg Kroah-Hartman drivers/vme/bridges/vme_tsi148.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) commit f656eaee6368198f596ae5b8754494ec2b179a16 Author: Dmitry Kalinkin Date: Thu May 28 15:06:59 2015 +0300 vme: tsi148: fix DMA lists longer that one item DMA lists on tsi148 weren't processed further than the first item because of the broken logic. This regression was introduced in: ac1a4f2caf7b071 "Staging: VME: Ensure TSI148 link list descriptors..." Signed-off-by: Dmitry Kalinkin Cc: Igor Alekseev Signed-off-by: Greg Kroah-Hartman drivers/vme/bridges/vme_tsi148.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c5ab1f7faaba2d7f30f87bea2f0b5cf4b958fd2f Author: Dmitry Kalinkin Date: Thu May 28 15:06:58 2015 +0300 Documentation: mention vme_master_mmap() in VME API Signed-off-by: Dmitry Kalinkin Cc: Igor Alekseev Signed-off-by: Greg Kroah-Hartman Documentation/vme_api.txt | 6 ++++++ 1 file changed, 6 insertions(+) commit 4e18248a66b5d95e9140be463228636fde32e2d5 Author: Sudip Mukherjee Date: Fri Jun 12 16:20:43 2015 +0530 staging: rtl8188eu: remove function which does nothing The function rtw_mfree_all_stainfo() is just holding the lock, traversing the list, and then unlocking. It is not doing anything else. So removed the function and modified the places from where it was called. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/core/rtw_sta_mgt.c | 28 ---------------------------- 1 file changed, 28 deletions(-) commit 9393d34e4905ffd77bce3f64815a3b92363b30a4 Author: Sudip Mukherjee Date: Fri Jun 12 16:20:42 2015 +0530 staging: rtl8188eu: remove unused variables These variables were being set but not used afterwards. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/core/rtw_mlme.c | 3 --- drivers/staging/rtl8188eu/hal/phy.c | 10 ++-------- drivers/staging/rtl8188eu/hal/rtl8188e_dm.c | 2 -- drivers/staging/rtl8188eu/os_dep/osdep_service.c | 3 +-- 4 files changed, 3 insertions(+), 15 deletions(-) commit 71d62adb6746e0ac74842540c9faaedd7797e65a Author: Sudip Mukherjee Date: Fri Jun 12 16:20:41 2015 +0530 staging: rtl8188eu: remove unused enum and CONFIG The CONFIGs, the enum and the function declaration was not being used anywhere. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/include/odm.h | 8 -------- drivers/staging/rtl8188eu/include/odm_HWConfig.h | 3 --- 2 files changed, 11 deletions(-) commit ebd21582bd4cfa98a5fbeece4793303c811526fe Author: Luca Ceresoli Date: Fri Jun 12 00:20:49 2015 +0200 staging: rtl8188eu: fix wrong debug print Signed-off-by: Luca Ceresoli Cc: Larry Finger Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/core/rtw_ap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a26c9eedcdf81c4ddeb4d055c45039d4175969cc Author: Luca Ceresoli Date: Fri Jun 12 00:20:48 2015 +0200 staging: rtl8188eu: issue_probersp(): remove unused variable and dead code is_valid_p2p_probereq is initialized to false and never modified. Code depending on it is dead code. Remove all of it. Signed-off-by: Luca Ceresoli Cc: Larry Finger Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/core/rtw_mlme_ext.c | 6 ------ 1 file changed, 6 deletions(-) commit 863eaa79bac1c0d6df7404e87432d823193e2555 Author: Luca Ceresoli Date: Fri Jun 12 00:20:47 2015 +0200 staging: rtl8723au: issue_probersp(): remove unused parameter The is_valid_p2p_probereq is never referenced in the function body. Signed-off-by: Luca Ceresoli Cc: Larry Finger Acked-by: Jes Sorensen Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8723au/core/rtw_mlme_ext.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit 935142236dbe2ade051dcc3c4d259dadd318b386 Author: Luca Ceresoli Date: Fri Jun 12 00:20:46 2015 +0200 staging: rtl8188eu: issue_probersp(): remove unused parameter The is_valid_p2p_probereq is never referenced in the function body. Signed-off-by: Luca Ceresoli Cc: Larry Finger Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/core/rtw_mlme_ext.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 782eddd748d9c4be3272b946085e3099266c3043 Author: Luca Ceresoli Date: Fri Jun 12 00:20:45 2015 +0200 staging: rtl8188eu: unexport internal functions These are internal functions. Remove their declaration in rtw_mlme_ext.h and make them static. Signed-off-by: Luca Ceresoli Cc: Larry Finger Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/core/rtw_mlme_ext.c | 57 +++++++++++++++--------- drivers/staging/rtl8188eu/include/rtw_mlme_ext.h | 34 +------------- 2 files changed, 37 insertions(+), 54 deletions(-) commit 68345dd7bc26f6bd182ba0ceb890041a484bac44 Author: Luca Ceresoli Date: Fri Jun 12 00:20:44 2015 +0200 staging: rtl8188eu: rtw_mlme_ext.c: unexport message callbacks These are internal functions. Remove their declaration in rtw_mlme_ext.h and make them static. Signed-off-by: Luca Ceresoli Cc: Larry Finger Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/core/rtw_mlme_ext.c | 60 ++++++++++++++++-------- drivers/staging/rtl8188eu/include/rtw_mlme_ext.h | 42 ----------------- 2 files changed, 40 insertions(+), 62 deletions(-) commit 4e1023445343541731f45debf718090310cff632 Author: Luca Ceresoli Date: Fri Jun 12 00:20:43 2015 +0200 staging: rtl8188eu: rtw_mlme_ext.c: reorder message callbacks and tables The message handling stored in mlme_sta_tbl and OnAction_tbl are internal and will be declared static, and their declaration removed from rtw_mlme_ext.h, in a later commit. This would break compilation, since they are are referenced before their definition. Reorder these functions and the structures that hold them so that symbols are defined before they are referenced, without the need for forward declarations. This commit only reorders code, there is no content change. Signed-off-by: Luca Ceresoli Cc: Larry Finger Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/core/rtw_mlme_ext.c | 6311 ++++++++++++------------- 1 file changed, 3155 insertions(+), 3156 deletions(-) commit 5ee35ea7759ae4a6e25f58ff19d8a60b48510aa5 Author: Juston Li Date: Fri Jun 12 03:17:22 2015 -0700 staging: sm750fb: fix c99 comments fixed all checkpatch.pl ERROR: do not use C99 // comments Any C99 comments used to comment out code are simply removed. Also some of the errors occur inside '#if 0' blocks which I might as well fix since checkpatch.pl caught them but the blocks themselves should probably be cleaned up later. Changes since v1: close a comment block Signed-off-by: Juston Li Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/ddk750_chip.c | 11 ++------ drivers/staging/sm750fb/ddk750_dvi.c | 4 +-- drivers/staging/sm750fb/ddk750_help.c | 2 -- drivers/staging/sm750fb/ddk750_sii164.c | 11 -------- drivers/staging/sm750fb/sm750.h | 10 +++---- drivers/staging/sm750fb/sm750_accel.c | 49 ++++++++++++++++----------------- drivers/staging/sm750fb/sm750_accel.h | 2 +- drivers/staging/sm750fb/sm750_cursor.c | 9 +++--- drivers/staging/sm750fb/sm750_help.h | 28 +++---------------- drivers/staging/sm750fb/sm750_hw.c | 4 +-- drivers/staging/sm750fb/sm750_hw.h | 3 -- 11 files changed, 41 insertions(+), 92 deletions(-) commit c40753b5c7ee0d967d56393e760701ca3a924be3 Author: Harisangam Sharvari Date: Thu Jun 11 12:38:13 2015 +0000 staging: rtl8192u: Removed redundant bool comparisons in r8192U_dm.c This patch was detected with the help of coccinelle tool. The redundant comparisons of bool variables are removed in r8192U_dm.c. Signed-off-by: Harisangam Sharvari Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192u/r8192U_dm.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 25e2704c46d2771a1ad51dae35be6d30101480d5 Author: Gaston Gonzalez Date: Wed Jun 10 19:46:25 2015 -0300 staging: rtl8192u: ieee80211: Fix sparse endianness warnings ieee80211_softmac.c Fix the following endinness warnings detected by sparse: drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:669:34: warning: incorrect type in assignment (different base types) drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:669:34: expected restricted __le16 [usertype] duration_id drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:669:34: got int drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:679:33: warning: incorrect type in assignment (different base types) drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:679:33: expected restricted __le16 [usertype] algorithm drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:679:33: got int drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:1090:32: warning: incorrect type in assignment (different base types) drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:1090:32: expected restricted __le16 [usertype] duration_id drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:1090:32: got int drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:1109:30: warning: incorrect type in assignment (different base types) drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:1109:30: expected restricted __le16 [usertype] listen_interval drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:1109:30: got int drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:3130:24: warning: incorrect type in assignment (different base types) drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:3130:24: expected restricted __le16 [usertype] reason drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:3130:24: got unsigned char [unsigned] [usertype] asRsn Signed-off-by: Gaston Gonzalez Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 590aeb174ad41292322c12d4fe24885bc7f074e5 Author: Fabian Frederick Date: Wed Jun 10 18:33:38 2015 +0200 staging: speakup: use swap() in get_highlight_color() Use kernel.h macro definition. Thanks to Julia Lawall for Coccinelle scripting support. Signed-off-by: Fabian Frederick Signed-off-by: Greg Kroah-Hartman drivers/staging/speakup/main.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit 2ccd94e412be244d46fdf3261763d921d4918761 Author: Fabian Frederick Date: Wed Jun 10 18:32:17 2015 +0200 staging: rtl8723au: use swap() in WMMOnAssocRsp23a() Use kernel.h macro definition. Thanks to Julia Lawall for Coccinelle scripting support. Signed-off-by: Fabian Frederick Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8723au/core/rtw_wlan_util.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) commit 8781d5b3499a0ceb19217f937d37c796cce8ca58 Author: Fabian Frederick Date: Wed Jun 10 18:32:13 2015 +0200 staging: rtl8712: use swap() in dequeue_xframe_ex() Use kernel.h macro definition. Thanks to Julia Lawall for Coccinelle scripting support. Signed-off-by: Fabian Frederick Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8712/rtl8712_xmit.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) commit 8a889aee58037022fee25851778404429a64a8c9 Author: Fabian Frederick Date: Wed Jun 10 18:32:28 2015 +0200 Staging: rtl8188eu: use swap() in WMMOnAssocRsp() Use kernel.h macro definition. Thanks to Julia Lawall for Coccinelle scripting support. Signed-off-by: Fabian Frederick Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/core/rtw_wlan_util.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) commit 32215eaa6e395c91cb0191553f14eb0abb69dc68 Author: Mateusz Kulikowski Date: Mon Jun 8 23:23:34 2015 +0200 staging: rtl8192e: Remove dead code: dig_t::dbg_mode, drx_path_sel::DbgMode dig_t::dbg_mode and drx_path_sel::DbgMode are initialized to one value and checked only once in code.This patch throws them away, and deletes always-true conditions. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 8 ++------ drivers/staging/rtl8192e/rtl8192e/rtl_dm.h | 25 ------------------------- 2 files changed, 2 insertions(+), 31 deletions(-) commit 67ba748c03bc2103df090b1413661d77c8334ea4 Author: Mateusz Kulikowski Date: Mon Jun 8 23:23:33 2015 +0200 staging: rtl8192e: remove dm_shadow dm_shadow array is no longer used. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 3 --- drivers/staging/rtl8192e/rtl8192e/rtl_dm.h | 1 - 2 files changed, 4 deletions(-) commit fa70ae09e645da2312912570eba04160edff7835 Author: Gnanachandran Dhanapal Date: Tue Jun 9 14:47:49 2015 +0000 Staging: rtl8192e: Casting correct Endianness Casting correct Endianness for __le16 variable used in assignment and condition check Signed-off-by: Gnanachandran Dhanapal Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtllib_softmac.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) commit 98f196afefa35ace67a9fc54787066134f483641 Author: Nizam Haider Date: Tue Jun 9 10:14:55 2015 +0530 Staging: rts5208: xd: Fixed checkpatch warning Fixed a warning, else is not generally useful after a break or return. Signed-off-by: Nizam Haider Signed-off-by: Greg Kroah-Hartman drivers/staging/rts5208/xd.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 441b3e45c2dd12af4b43f8663bbc6602bbc7b183 Author: Harisangam Sharvari Date: Tue Jun 9 04:27:35 2015 +0000 Staging: vt6655: Remove unnecessary equality checks in rxtx.c The unnecessary equality checks for bool variable are removed in rxtx.c. These changes were detected with the help of coccinelle tool Signed-off-by: Harisangam Sharvari Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6655/rxtx.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 86ea8acc6b494dbadd16a82ed778a68d5b4d4091 Author: David Kershner Date: Fri Jun 12 16:46:08 2015 -0400 staging: unisys: Don't hold device responses until driver loads Currently if a driver is not loaded for a device, we will not respond to the device create until it is done. This causes s-Par to not mark the partition running if the driver for the device is not loaded. Since there are several devices that could be assigned to a guest that don't have an actual driver this will cause us to never go running. If the device driver is loaded, we WILL continue to only respond to the device PAUSE message when the device driver has responded that it is done with the device. Signed-off-by: David Kershner Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorbus_main.c | 28 +++++++------------------ 1 file changed, 7 insertions(+), 21 deletions(-) commit 5e54654c41bfb9216b551fd3a3891c2da60eadae Author: David Kershner Date: Fri Jun 12 16:46:07 2015 -0400 staging: unisys: convert pack pragma to __packed It was noticed that iochannel.h was still using pragmas to pack the datastructures, should be using __packed instead. Signed-off-by: David Kershner Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/include/iochannel.h | 45 ++++++++++++------------------ 1 file changed, 18 insertions(+), 27 deletions(-) commit c20a99f8c38f41ce875bfea829ca0dd603f1d11b Author: David Kershner Date: Fri Jun 12 16:46:06 2015 -0400 staging: unisys: Move phys_info to iochannel.h This moves phys_info to iochannel.h. It is only used by iochannel.h and is not needed in vmcallinterfaces.h. Signed-off-by: David Kershner Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/include/iochannel.h | 6 ++++++ drivers/staging/unisys/visorbus/vmcallinterface.h | 12 ------------ 2 files changed, 6 insertions(+), 12 deletions(-) commit df7f46e83c7f52ee6e7cf96eb8c068b1d1f8c68f Author: Abdul Hussain Date: Thu Jun 11 10:03:49 2015 +0000 staging: unisys: Remove unneeded variable This patch remove unneeded variable used to store return value. Signed-off-by: Abdul Hussain Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorbus_main.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 57334a30c8da966e4470572d3096873e26c66076 Author: Ian Abbott Date: Fri Jun 5 18:30:35 2015 +0100 staging: comedi: das08: use better MODULE_DESCRIPTION() Replace the boiler-plate Comedi module description string with something more specific. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/das08.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 34cce4628b8509dc894735cdc5de8b10db21873a Author: Ian Abbott Date: Fri Jun 5 18:30:34 2015 +0100 staging: comedi: das08: clarify sign-magnitude conversion For DAS08/JR/16 and DAS08/JR/AO-16 boards, the 16-bit analog input readings are assumed to be in a sign-magnitude format and need converting to the COMEDI unsigned sample format. The expressions to do the conversion look a little messy. Use a local variable `magnitude` to make it easier to follow. Also, there seems to be some discrepancy between the manual for these boards and the COMEDI code. The manual implies that 0 is full-scale negative and 65535 is full-scale positive. However, the COMEDI code has used the sign-magnitude conversion for these boards since these two boards were initially supported by a patch from an external contributor to the COMEDI project back in 2001. Assume the code is correct for now, but add a comment to mention the discrepancy. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/das08.c | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) commit 3919c3d5891b079b5d03c03b4df4e3fca9572eca Author: Ian Abbott Date: Fri Jun 5 18:30:33 2015 +0100 staging: comedi: das08: rename das08_do_wbits() & das08jr_do_wbits() `das08_do_wbits()` and `das08jr_do_wbits()` are handlers for the Comedi `INSN_BITS` instruction for the digital output subdevice on "non-JR" and "JR" boards, respectively. Rename them to `das08_do_insn_bits()` and `das08jr_do_insn_bits()` respectively for consistency. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/das08.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) commit 9f05914d0c7ce5083e54bb37d50c41d942adf03b Author: Ian Abbott Date: Fri Jun 5 18:30:32 2015 +0100 staging: comedi: das08: rename das08_di_rbits() & das08jr_di_rbits() `das08_di_rbits()` and `das08jr_di_rbits()` are handlers for the Comedi `INSN_BITS` instruction for the digital input subdevice on "non-JR" and "JR" boards, respectively. Rename them to `das08_di_insn_bits()` and `das08jr_di_insn_bits()` respectively for consistency. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/das08.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) commit c224a9195745e909b2c457bba1a7a6b57ac9e284 Author: Ian Abbott Date: Fri Jun 5 18:30:31 2015 +0100 staging: comedi: das08: rename das08_ai_rinsn() `das08_ai_rinsn()` is the handler for Comedi `INSN_READ` instructions for the AI subdevice. Rename the function to `das08_ai_insn_read()` for consistency. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/das08.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit fcd63ec8f325d964cfdf0a7c92a9dcac475f85e6 Author: Ian Abbott Date: Fri Jun 5 18:30:30 2015 +0100 staging: comedi: das08: rename the gainlist variables `das08_pgh_gainlist[]`, `das08_pgl_gainlist[]`, and `das08_pgm_gainlist[]` hold the gain codes indexed by range index for various boards that support programmable gain. `das08_gainlist[]` is a look-up table to find the appropriate gain list for a board. These are all associated with the analog input Comedi subdevice. Rename the variables to reflect that. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/das08.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit a76ccfa81e8268025b3dc3dfd76420f6049032f7 Author: Ian Abbott Date: Fri Jun 5 18:30:29 2015 +0100 staging: comedi: das08: rename ai range tables The `range_das08_pgl`, `range_das08_pgm`, and `range_das08_pgh` variables define the analog input ranges for the "PGL", "PGM", and "PGH" board variants, and are also used for the "AOL", "AOM", and "AOH" board variants. Rename them to use the `das08_` prefix for consistency. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/das08.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 194869dbe81145650cd436ed6d3a101d2451779d Author: Ian Abbott Date: Fri Jun 5 18:30:28 2015 +0100 staging: comedi: das08.c: reformat remaining comments Use the preferred style for block comments. Squash double spaces after the comment opening sequence for single-line comments. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/das08.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 66774ce6ca9f4b5bf656de5c58834a4fb95a3c6e Author: Ian Abbott Date: Fri Jun 5 18:30:27 2015 +0100 staging: comedi: das08.c: reformat copyright comment Replace double spaces with single spaces at the start of each line in the copyright comment at the top of the file. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/das08.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) commit 646e70c5d1611edf2d36448ef0d377a0cf239cc1 Author: Ian Abbott Date: Fri Jun 5 18:30:26 2015 +0100 staging: comedi: das08: remove board register map comments The "das08" module contains some comments outlining the register maps for some of the ISA boards supported by this module in combination with the "das08_isa" module. The comments are somewhat sporadically placed, don't detail all the boards, and don't use the preferred block comment style. If anywhere, they should probably be in the "das08_isa" module. Just remove them. The comments for the register macros indicate which boards they apply to anyway, so we don't lose much information. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/das08.c | 68 +--------------------------------- 1 file changed, 1 insertion(+), 67 deletions(-) commit 6814b4a3fd3867d4104eecc371f73beced6cb499 Author: Ian Abbott Date: Fri Jun 5 18:30:25 2015 +0100 staging: comedi: das08: rename DAS08AO_AO_UPDATE "AOL", "AOM", and "AOH" boards have a jumper that controls whether analog output channels are updated simultaneously or individually. When set to update individually, individual channels are updated when the high byte register is written. When set to update simultaneously, channels are not updated until any of the analog output registers are read. The driver doesn't know the jumper setting and is not interested in the simultaneous update feature, so it updates a channel by writing the low byte register, the high byte register, and then reading channel 0's low byte register. The `DAS08AO_AO_UPDATE` macro contains the offset to the low byte register for analog output channel 0 on the "AOL", "AOM", and "AOH" boards, which the driver reads to update the analog outputs. Rename the macro to `DAS08AOX_AO_UPDATE_REG` and add a comment. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/das08.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 3c98c1d3f1d3912738dca864fd00910654ed2a65 Author: Ian Abbott Date: Fri Jun 5 18:30:24 2015 +0100 staging: comedi: das08: rename DAS08AO_AO_LSB() and DAS08AO_AO_MSB() The `DAS08AO_AO_LSB(x)` macro returns the offset to the analog output low byte register for channel x (0 or 1) for "AOL", "AOM", and "AOH" boards. The `DAS08AO_AO_MSB(x)` macro returns the offset to the corresponding high byte register. Rename the macros to `DAS08AOX_AO_LSB_REG(x)` and `DAS08AOX_AO_MSB_REG(x)` respectively, and add some comments. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/das08.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit f1c04fd42183ccbfa9820ae5a45168e80d70d282 Author: Ian Abbott Date: Fri Jun 5 18:30:23 2015 +0100 staging: comedi: das08: replace DAS08AO_GAIN_CONTROL/STATUS The `DAS08AO_GAIN_CONTROL` and `DAS08AO_GAIN_STATUS` macros hold the offset to the "programmable gain" register on "PGL", "PGM", "PGH", "AOL", "AOM" and "AOH" boards. Writing a code to this register sets the gain for the current analog input channel (selected in the main control register). The written value can be read back in bits 3..0 of the register. Other bits of the register are read-only and not used by the driver. Rename `DAS08AO_GAIN_CONTROL` to `DAS08_GAIN_REG` and add a comment. Remove `DAS08AO_GAIN_STATUS` as the driver does not use it and the read-only parts of the register are documented in the comment. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/das08.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 09ed1b72cf5ebebb37c2487e7269fc00027477df Author: Ian Abbott Date: Fri Jun 5 18:30:22 2015 +0100 staging: comedi: das08: add DAS08JR_AO_UPDATE_REG "JR" boards with analog output channels have a jumper that controls whether analog output channels are updated simultaneously or individually. When set to update individually, individual channels are updated when the high byte register is written. When set to update simultaneously, channels are not updated until the digital inputs register is read. The driver doesn't know how the jumper is set and is not interested in the simultaneous output feature, so it updates a channel by writing the low byte, then the high byte, then reading the digital inputs register. To make the code more explicit, add a macro `DAS08JR_AO_UPDATE_REG` with the same value as the `DAS08JR_DI_REG` macro (for digital inputs) and use it when reading the register to update the analog outputs. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/das08.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 7b2098f626cfa490eb83eb4563efb1d5b8897ed8 Author: Ian Abbott Date: Fri Jun 5 18:30:21 2015 +0100 staging: comedi: das08: rename DAS08JR_AO_LSB() and DAS08JR_AO_MSB() The `DAS08JR_AO_LSB(x)` macro returns the offset to the analog output low byte register for channel x (0 or 1) for "JR" boards with analog output support. The `DAS08JR_AO_MSB(x)` macro returns the offset to the corresponding high byte register. Rename the macros to `DAS08JR_AO_LSB_REG(x)` and `DAS08JR_AO_MSB_REG(x)` respectively, and add some comments. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/das08.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit c47c0ed2d53ad829aff1f4ada00e98227c478a57 Author: Ian Abbott Date: Fri Jun 5 18:30:20 2015 +0100 staging: comedi: das08: rename and split DAS08JR_DIO The `DAS08JR_DIO` macro contains the offset to the read-only digital input register and write-only digital output register on the "JR" boards. Replace the macro with two new macros (with the same numeric value) named `DAS08JR_DI_REG` for the digital input register and `DAS08JR_DO_REG` for the digital output register, and add some comments. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/das08.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 11e8457f02ee41bbd1c0437d340c692ce2d78431 Author: Ian Abbott Date: Fri Jun 5 18:30:19 2015 +0100 staging: comedi: das08: rename DAS08_OP() and DAS08_DO_MASK The `DAS08_DO_MASK` macro is a bitmask for the control register corresponding to the digital output channels (except on "JR" boards). Rename it to `DAS08_CONTROL_DO_MASK` and add a comment. The `DAS08_OP(x)` macro takes a bitvector of the desired digital output channel states and returns the corresponding bits for the control register (except on "JR" boards). Rename it to `DAS08_CONTROL_DO(x)` and add a comment. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/das08.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 6a3a22bcada2209520180c8bf0045e4e241003af Author: Ian Abbott Date: Fri Jun 5 18:30:18 2015 +0100 staging: comedi: das08: rename and rewrite DAS08_INTE The `DAS08_INTE` macro contains a mask for the "INTE" bit in the control register (except on "JR" boards). Setting it to 1 enables interrupts. Setting it to 0 disables interrupts and clears the "IRQ" bit in the status register. Rename the macro to `DAS08_CONTROL_INTE` and add a comment. Also use the `BIT()` macro to define its value. (Note: the driver does not currently enable interrupts.) Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/das08.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ac81df6097bb30c61bc8e7e3ce8100adcee14b66 Author: Ian Abbott Date: Fri Jun 5 18:30:17 2015 +0100 staging: comedi: das08: rename DAS08_MUX() and DAS08_MUX_MASK The `DAS08_MUX_MASK` macro is a bitmask for the control register corresponding to the analog input multiplexor channel selection bits. Rename it to `DAS08_CONTROL_MUX_MASK` and add a comment. Note that the current setting of the multiplexor can also be read from the same bit positions in the status register, but the driver does not use it. Add a comment to that effect. The `DAS08_MUX(x)` macro takes an analog input channel number and returns the corresponding analog input multiplexor channel selection bits for the control register. Rename it to `DAS08_CONTROL_MUX(x)` and add a comment. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/das08.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit c800e51310ad7204260100b978800e2b9828af3d Author: Ian Abbott Date: Fri Jun 5 18:30:16 2015 +0100 staging: comedi: das08: rename DAS08_CONTROL The `DAS08_CONTROL` macro contains the offset to the write-only control register. Rename it to `DAS08_CONTROL_REG` and add a comment. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/das08.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 4d14ac8a900961b44173a5dff38e138ecda8e4c7 Author: Ian Abbott Date: Fri Jun 5 18:30:15 2015 +0100 staging: comedi: das08: rename and rewrite DAS08_IP The `DAS08_IP()` macro takes a value read from the status register and returns the state of the three digital input channels (except on "JR" boards). Rename it to `DAS08_STATUS_DI()` and add a comment. Also re-arrange the expression used to extract the state of the digital inputs for consistency with other register macros. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/das08.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 2398391017ddec9427bdb94cc5d70326eaf8a3c5 Author: Ian Abbott Date: Fri Jun 5 18:30:14 2015 +0100 staging: comedi: das08: rename and rewrite DAS08_IRQ The `DAS08_IRQ` macro contains a mask for the "IRQ" status bit. This is set to 1 when a rising edge is detected on the external interrupt input pin of the external connector (which may be jumpered to a pacer output). It is cleared by setting the "INTE" control bit to 0. It is not used on "JR" boards. Rename the macro to `DAS08_STATUS_IRQ` and add a comment. Also use the `BIT()` macro to define the value. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/das08.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 851e5d5475de796560683e2a4b28af0a7da177e1 Author: Ian Abbott Date: Fri Jun 5 18:30:13 2015 +0100 staging: comedi: das08: rename and rewrite DAS08_EOC The `DAS08_EOC` macro contains a mask for the "end of A/D conversion" bit in the status register. The logic is reverse sense in that the bit is set to 1 while the conversion is in progress and set to 0 when the conversion is complete. Rename the macro to `DAS08_STATUS_AI_BUSY` and add a comment. Also make use of the `BIT()` macro to define the value. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/das08.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b00b3f769abe1dd19cc51552734c44178cb1269d Author: Ian Abbott Date: Fri Jun 5 18:30:12 2015 +0100 staging: comedi: das08: rename DAS08_STATUS The `DAS08_STATUS` macro contains the offset to the read-only status register. Rename it to `DAS08_STATUS_REG` and add a comment. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/das08.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit c2ba9e96376dbfdbdff27ff99a602691b265b0c9 Author: Ian Abbott Date: Fri Jun 5 18:30:11 2015 +0100 staging: comedi: das08: rename DAS08_TRIG_12BIT The `DAS08_TRIG_12BIT` macro contains the offset to the write-only software trigger register for 12-bit or 16-bit analog-to-digital conversions. Rename the macro to `DAS08_AI_TRIG_REG` and add a comment. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/das08.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5826d99aedda2442f89194cd3b85bc69970c175c Author: Ian Abbott Date: Fri Jun 5 18:30:10 2015 +0100 staging: comedi: das08: rename DAS08_LSB and DAS08_MSB The `DAS08_LSB` and `DAS08_MSB` macros contain the offsets to the least-significant and most-significant analog input data registers. Rename them to `DAS08_AI_LSB_REG` and `DAS08_AI_MSB_REG` respectively and add comments to document them. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/das08.c | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) commit 3c7cab30f4c4364f72ccd7a034cf81fba7700525 Author: Ian Abbott Date: Fri Jun 5 18:30:09 2015 +0100 staging: comedi: das08.h: make self-reliant The Comedi "das08.h" header file is included by drivers for the ComputerBoards/MeasurementComputing and Keithley Metrabyte boards in the DAS08 series. It does not compile cleanly when it is the first header included by the ".c" file. It uses `struct comedi_device *` in the parameter list of a function prototype, so just declare `struct comedi_device` as an incomplete type. It also uses `bool`, so include to declare it. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/das08.h | 4 ++++ 1 file changed, 4 insertions(+) commit 2b56b35820eee978c9f4bee7e40e18ddb3d9bc26 Author: Ian Abbott Date: Fri Jun 5 18:30:08 2015 +0100 staging: comedi: das08: improve test for programmable gain `das08_ai_rinsn()` handles Comedi `INSN_READ` instructions for the AI subdevice. This programs the gain for the analog input channel if the board has support for that, and acquires data from the channel. If programmable gain is supported, the gain code is read from the array pointed to by `devpriv->pg_gainlist` indexed by the range index. The function assumes that programmable gain is supported if the AI subdevice's range table supports more than one range. Replace that with a more direct test for `devpriv->pg_gainlist` being non-NULL, as it is only initialized to a non-NULL pointer for boards that support programmable gain. This will also allow range tables to be included for convenience for those boards that support multiple ranges by DIP switches. Those boards are currently initialized to use a single "unknown" range. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/das08.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fba5963c9259252747f79f778805ca7b368d9000 Author: Ian Abbott Date: Fri Jun 5 18:30:07 2015 +0100 staging: comedi: das08: use indexed initializer for AI range table types The "das08" common module for DAS08 ISA, PCI, and PCMCIA drivers includes a predefined set of AI range tables. The static board data (of type `struct das08_board_struct`) for a particular board contains an index in its `ai_pg` member (of type `enum das08_lrange`) indicating which of the predefined AI range tables to use. The "das08" common module looks up this index in `das08_ai_lranges[]` to get a pointer to the predefined range table for the board. The same index is also looked up in `das08_gainlists[]` to get a corresponding pointer to a list of hardware gain values for each range supported by the board (NULL for boards without programmable gain). To make this clearer, used indexed initializers for `das08_ai_lranges[]` and `das08_gainlists[]`, using the enumerated constants from `enum das08_lrange` as the indices. Also add a short comment to the definition of `enum das08_lrange`. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/das08.c | 20 ++++++++++---------- drivers/staging/comedi/drivers/das08.h | 5 +++-- 2 files changed, 13 insertions(+), 12 deletions(-) commit d4d794330dd02397f8a34a4db67738f741302df2 Author: Ian Abbott Date: Fri Jun 5 18:30:06 2015 +0100 staging: comedi: das08.h: reformat remaining comments Reformat remaining comments to use the preferred style for single-line and block comments. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/das08.h | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 884f01c9496c906bbb645abd3de953828b18ffa8 Author: Ian Abbott Date: Fri Jun 5 18:30:05 2015 +0100 staging: comedi: das08.h: change description in copyright header comment The copyright header comment includes a single-line description saying it is for "das08.c" and "das08_cs.c". However, it is also used by "das08_isa.c" and "das08_pci.c". Update the description to say it is for common DAS08 support, similar to description in "das08.c" (the common module for the DAS08 ISA/PCI/PCMCIA drivers). Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/das08.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 71f0d052cc3666546d96ea17ccd4770d4137de32 Author: Ian Abbott Date: Fri Jun 5 18:30:04 2015 +0100 staging: comedi: das08.h: reformat copyright comment Reformat the copyright comment at the top of the file to use the preferred block comment style. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/das08.h | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) commit b08ad6657aacf9b5d7c4b22de2ba891b152d0528 Author: Ian Abbott Date: Fri Jun 12 16:37:41 2015 +0100 staging: comedi: cb_pcimdas: fix handlers for DI and DO subdevices Normally, low-level Comedi drivers set an `insn_bits` handler for digital input (DI), digital output (DO) and digital input/output (DIO) subdevice types to handle normal reading and writing of digital channels. The "cb_pcimdas" driver currently has an `insn_read` handler for the DI subdevice and an `insn_write` handler for the DO subdevice. However, the actual handler functions `cb_pcimdas_di_insn_read()` and `cb_pcimdas_do_insn_write()` are written to behave like `insn_bits` handlers. Something's wrong there! To fix it, set the functions as `insn_bits` handlers and rename them for consistency. Fixes: e56d03dee14a ("staging: comedi: cb_pcimdas: add main connector digital input/output") Signed-off-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/cb_pcimdas.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 98ce2d27a38803ffcdbf35712c39c07a434d567c Author: Vladimir Zapolskiy Date: Mon Jun 1 15:30:00 2015 +0300 misc: sram: sort and clean up included headers Most of the included header files are already included as dependencies. Signed-off-by: Vladimir Zapolskiy Signed-off-by: Greg Kroah-Hartman drivers/misc/sram.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) commit a0a5be0b36be31e644a10c8da89d7280a9b9384c Author: Vladimir Zapolskiy Date: Mon Jun 1 15:29:59 2015 +0300 misc: sram: move reserved block logic out of probe function No functional change, but now previously overloaded sram_probe() is greatly simplified and perceptible, reserved regions logic also has its own space. Signed-off-by: Vladimir Zapolskiy Signed-off-by: Greg Kroah-Hartman drivers/misc/sram.c | 82 ++++++++++++++++++++++++++++++----------------------- 1 file changed, 46 insertions(+), 36 deletions(-) commit 665d82fbbccdb5997ddcff3536f2cad5b1634462 Author: Vladimir Zapolskiy Date: Mon Jun 1 15:29:58 2015 +0300 misc: sram: add private struct device and virt_base members No functional change, this is a preceding change to simplify separation of reserved partition handling logic from probe() function. Signed-off-by: Vladimir Zapolskiy Signed-off-by: Greg Kroah-Hartman drivers/misc/sram.c | 54 ++++++++++++++++++++++++++++------------------------- 1 file changed, 29 insertions(+), 25 deletions(-) commit 4914f1c7179f056b69b0e2bddc3f5daadb70609d Author: Vladimir Zapolskiy Date: Mon Jun 1 15:29:57 2015 +0300 misc: sram: report correct SRAM pool size Since some space in SRAM may be reserved, report the left free space in the allocated memory pool instead of total physical size of the SRAM device. Signed-off-by: Vladimir Zapolskiy Signed-off-by: Greg Kroah-Hartman drivers/misc/sram.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit d687b1fa672874bf2c745fc936bec2e1ed75a331 Author: Vladimir Zapolskiy Date: Mon Jun 1 15:29:56 2015 +0300 misc: sram: bump error message level on unclean driver unbinding Report an error level message to a user, if the driver is unbound while there are still some pool allocations. Signed-off-by: Vladimir Zapolskiy Signed-off-by: Greg Kroah-Hartman drivers/misc/sram.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b13365bbecae98d31862df48f61522634ed5837d Author: Vladimir Zapolskiy Date: Mon Jun 1 15:29:55 2015 +0300 misc: sram: fix device node reference leak on error A pointer device node reference should be decremented on manual exit from for_each_available_child_of_node() loop. Signed-off-by: Vladimir Zapolskiy Signed-off-by: Greg Kroah-Hartman drivers/misc/sram.c | 2 ++ 1 file changed, 2 insertions(+) commit ee895ccdf776a676655b1405d493cfcf43d157f0 Author: Vladimir Zapolskiy Date: Mon Jun 1 15:29:54 2015 +0300 misc: sram: fix enabled clock leak on error path If devm_gen_pool_create() fails, the previously enabled sram->clk is not disabled on probe() exit. Because reserved block logic relies only on information from device tree, there is no need to get and enable device clock in advance, especially because not provided clock is not considered as an error, so it is safe to place devm_clk_get() at the end of probe(). No functional change. Signed-off-by: Vladimir Zapolskiy Signed-off-by: Greg Kroah-Hartman drivers/misc/sram.c | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) commit 0a3405d35c72535d6a57af3cad29ed14d26cd203 Author: Sudeep Dutt Date: Tue Jun 9 20:58:32 2015 -0700 misc: mic: Fix reported static checker warning Delete unnecessary prints resulting in an "spdev could be null" warning from a static checker in scif_peer_remove(..). Reported-by: Dan Carpenter Reviewed-by: Ashutosh Dixit Signed-off-by: Sudeep Dutt Signed-off-by: Greg Kroah-Hartman drivers/misc/mic/scif/scif_main.c | 4 ---- 1 file changed, 4 deletions(-) commit 24732e7ee92ec5aadbeddd05c388060cccee422b Author: Sudeep Dutt Date: Tue Jun 9 20:58:31 2015 -0700 misc: mic: Fix randconfig build error by including errno.h This issue was reported @ https://lkml.org/lkml/2015/6/9/731 Reported-by: Jim Davis Reviewed-by: Ashutosh Dixit Signed-off-by: Sudeep Dutt Signed-off-by: Greg Kroah-Hartman drivers/misc/mic/scif/scif_rb.c | 1 + 1 file changed, 1 insertion(+) commit e040c4d97a46a759ccc3e89fe129b1a1da04c9d0 Author: Matwey V. Kornilov Date: Wed Jun 10 20:00:21 2015 +0300 uio: pruss: Drop depends on ARCH_DAVINCI_DA850 from config mach-dependant stuff has been removed by 2eb2478d471e ("uio: uio_pruss: replace private SRAM API with genalloc") There is no need to keep depends on ARCH_DAVINCI_DA850 Signed-off-by: Matwey V. Kornilov Signed-off-by: Greg Kroah-Hartman drivers/uio/Kconfig | 1 - 1 file changed, 1 deletion(-) commit b42df9c2628306732d9322b328679355876dd916 Author: Matwey V. Kornilov Date: Wed Jun 10 20:00:20 2015 +0300 uio: pruss: Add CONFIG_HAS_IOMEM dependence uio_pruss uses io memory, that should be explicitly depend on it Signed-off-by: Matwey V. Kornilov Signed-off-by: Greg Kroah-Hartman drivers/uio/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 87672676021cf04b9c76f36a810ecd81ab069d7b Author: Matwey V. Kornilov Date: Wed Jun 10 20:00:19 2015 +0300 uio: pruss: Include uio_pruss references SZ_16K and SZ_256K defines, but linux/sizes.h is not included. Signed-off-by: Matwey V. Kornilov Signed-off-by: Greg Kroah-Hartman drivers/uio/uio_pruss.c | 1 + 1 file changed, 1 insertion(+) commit 73b6ecdb93e8e77752cae9077c424fcdc6f23c39 Author: Chanwoo Choi Date: Fri Jun 12 11:10:06 2015 +0900 extcon: Redefine the unique id of supported external connectors without 'enum extcon' type This patch just redefine the unique id of supported external connectors without 'enum extcon' type. Because unique id would be used on devictree file(*.dts) to indicate the specific external connectors like key number of input framework. So, I have the plan to move this definitions to following header file which includes the unique id of supported external connectors. - include/dt-bindings/extcon/extcon.h Fixes: 2a9de9c0f08d ("extcon: Use the unique id for external connector instead of string") Signed-off-by: Chanwoo Choi Signed-off-by: Greg Kroah-Hartman drivers/extcon/extcon-adc-jack.c | 2 +- drivers/extcon/extcon-arizona.c | 4 +- drivers/extcon/extcon-axp288.c | 4 +- drivers/extcon/extcon-max14577.c | 2 +- drivers/extcon/extcon-max77693.c | 4 +- drivers/extcon/extcon-max77843.c | 2 +- drivers/extcon/extcon-max8997.c | 2 +- drivers/extcon/extcon-palmas.c | 2 +- drivers/extcon/extcon-rt8973a.c | 4 +- drivers/extcon/extcon-sm5502.c | 4 +- drivers/extcon/extcon-usb-gpio.c | 2 +- drivers/extcon/extcon.c | 24 +++++------ drivers/usb/phy/phy-tahvo.c | 2 +- include/linux/extcon.h | 90 +++++++++++++++++++--------------------- 14 files changed, 71 insertions(+), 77 deletions(-) commit 03cb0503014f49e41a937d81238ab059fd69ad78 Author: Shailendra Verma Date: Tue Jun 2 08:40:42 2015 +0200 char:xilinx_hwicap:buffer_icap - change 1/0 to true/false for bool type variable in function buffer_icap_set_configuration(). The variable dirty is bool type. Hence assign the variable with bool value true/false instead of 1/0. Signed-off-by: Shailendra Verma Tested-by: Michal Simek Acked-by: Moritz Fischer Signed-off-by: Greg Kroah-Hartman drivers/char/xilinx_hwicap/buffer_icap.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 294409d20572e9bcf857328286433f851168d54a Author: K. Y. Srinivasan Date: Sun May 31 21:27:03 2015 -0700 Drivers: hv: vmbus: Allocate ring buffer memory in NUMA aware fashion Allocate ring buffer memory from the NUMA node assigned to the channel. Since this is a performance and not a correctness issue, if the node specific allocation were to fail, fall back and allocate without specifying the node. Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/channel.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) commit 50566ac87065b9ade71aef5e69d23e06a0664db9 Author: Sudip Mukherjee Date: Fri Jun 12 15:20:20 2015 +0530 parport: check exclusive access before register As of now we were starting the registration process and after the device is registered we were checking if the device can be used by the parport. Now lets check it first so that we do not need to go through the registration process only to fail at the end. The original exclusive access check at the end is still there so that we do not get any surprises if two different process registers its device with same parport and with exclusive access at the same time. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/parport/share.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) commit 0c6d5c89a112620d2166b8d042d3d69bb42b626c Author: Dan Carpenter Date: Thu Jun 4 12:04:12 2015 +0300 w1: use correct lock on error in w1_seq_show() I noticed there was a problem here because Smatch complained: drivers/w1/slaves/w1_therm.c:416 w1_seq_show() warn: inconsistent returns 'mutex:&sl->master->mutex'. Locked on: line 416 Unlocked on: line 413 The problem is that we lock ->mutex but we unlock ->bus_mutex on error. David Fries says that ->bus_mutex is correct and ->mutex is incorrect. Fixes: d9411e57dc7f ('w1: Add support for DS28EA00 sequence to w1-therm') Signed-off-by: Dan Carpenter Acked-by: Evgeniy Polyakov Signed-off-by: Greg Kroah-Hartman drivers/w1/slaves/w1_therm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a14ef24b07b63669d58c16d836ddbadcce3e7ad0 Author: Dan Carpenter Date: Mon Jun 1 12:55:37 2015 +0300 w1: fix for loop exit condition in w1_seq_show() The W1_42_FINISHED_BYTE is 0xFF so the cast means the condition is never true. Fixes: d9411e57dc7f ('w1: Add support for DS28EA00 sequence to w1-therm') Signed-off-by: Dan Carpenter Signed-off-by: Greg Kroah-Hartman drivers/w1/slaves/w1_therm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d6f7aa27f41db6f556dba0185228a0b90a2a0980 Merge: 9fc2b4b 5430209 Author: James Morris Date: Sat Jun 13 09:51:16 2015 +1000 Merge branch 'smack-for-4.2-stacked' of https://github.com/cschaufler/smack-next into next commit d0dcad8bd32a34aa85bcbd5d2033658cb3964377 Author: Vincent Cuissard Date: Fri Jun 12 15:35:54 2015 +0200 NFC: nfcmrvl: set PB_BAIL_OUT at setup PB_BAIL_OUT parameter as to be set to one. This is needed because digital protocol 1.0 is used in combination with ISO15693 protocol. Signed-off-by: Vincent Cuissard Signed-off-by: Samuel Ortiz drivers/nfc/nfcmrvl/main.c | 3 +++ drivers/nfc/nfcmrvl/nfcmrvl.h | 6 ++++++ 2 files changed, 9 insertions(+) commit 34ac49664149dd8923e0de5d871f86c80292d27b Author: Vincent Cuissard Date: Fri Jun 12 15:35:53 2015 +0200 NFC: nci: remove current SLEEP mode management NCI deactivate management was modified to support all NCI deactivation type. Problem is that all the API are not ready yet for it. Problem is that with current code, when neard asks to deactivate the tag it sends a deactivate SLEEP but nobody will then send a IDLE deactivate. This IDLE deactivate is mandatory since NFC controller can only be unlocked by DH. Signed-off-by: Vincent Cuissard Signed-off-by: Samuel Ortiz net/nfc/nci/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 83d567259b943bbe85aba563b521f7b5611c6a1c Author: Vincent Cuissard Date: Fri Jun 12 15:35:52 2015 +0200 NFC: nfcmrvl: Allow ISO15693 protocol Reference Marvell NFC controller as ISO15693 capable. Signed-off-by: Vincent Cuissard Signed-off-by: Samuel Ortiz drivers/nfc/nfcmrvl/main.c | 1 + 1 file changed, 1 insertion(+) commit 43465b7af2e6c0cdcbe4771fa268786f2ccd642d Author: Vincent Cuissard Date: Fri Jun 12 15:35:51 2015 +0200 NFC: nfcmrvl: small fix in USB driver Marvell NFC USB driver has to be updated to follow new multi PHY driver interface. Signed-off-by: Vincent Cuissard Signed-off-by: Samuel Ortiz drivers/nfc/nfcmrvl/usb.c | 1 + 1 file changed, 1 insertion(+) commit 46965688acd0f9599a3c3ecce82109b3b24153a9 Author: Dan Carpenter Date: Thu Jun 11 18:20:46 2015 +0300 clk: meson: add some error handling in meson_clk_register_cpu() This error handling hopefully isn't needed but it make the static checkers happy. Signed-off-by: Dan Carpenter Acked-by: Carlo Caione Signed-off-by: Stephen Boyd drivers/clk/meson/clk-cpu.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) commit 22109785163310666cf9913bafbcc11c5aebe68a Author: Stephen Boyd Date: Thu Jun 11 16:08:51 2015 -0700 clk: pxa: Fix const discarding warning A recent change to mark parent names as const missed this struct member so we get warnings like: drivers/clk/pxa/clk-pxa25x.c:122:2: warning: initialization discards 'const' qualifier from pointer target type Fix it. Reported-by: kbuild test robot Acked-by: Uwe Kleine-König Signed-off-by: Stephen Boyd drivers/clk/pxa/clk-pxa.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ea70477099e2b2350ac3bdda0ddaefb6c68970dd Merge: b60f2f3 6a74fcf Author: David S. Miller Date: Fri Jun 12 14:24:28 2015 -0700 Merge branch 'flow_dissector-next' Tom Herbert says: ==================== flow_dissector: Fix MPLS parsing and add ext hdr support Need to shift label. Added parsing of dst, hop-by-hop, and routing extension headers. ==================== Signed-off-by: David S. Miller commit 6a74fcf426f51aaa569f0b973d10ac20468df238 Author: Tom Herbert Date: Fri Jun 12 09:01:06 2015 -0700 flow_dissector: add support for dst, hop-by-hop and routing ext hdrs If dst, hop-by-hop or routing extension headers are present determine length of the options and skip over them in flow dissection. Signed-off-by: Tom Herbert Signed-off-by: David S. Miller net/core/flow_dissector.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit 611d23c559a328ca3f84ac120c02d5a9f88c08f5 Author: Tom Herbert Date: Fri Jun 12 09:01:05 2015 -0700 flow_dissector: Fix MPLS entropy label handling in flow dissector Need to shift after masking to get label value for comparison. Fixes: b3baa0fbd02a1a9d493d8 ("mpls: Add MPLS entropy label in flow_keys") Reported-by: Dan Carpenter Signed-off-by: Tom Herbert Signed-off-by: David S. Miller net/core/flow_dissector.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b60f2f3d65de3f3e9e63855e5f5070a3fedcccba Author: Florian Westphal Date: Fri Jun 12 12:12:22 2015 +0200 net: ipv4: un-inline ip_finish_output2 text data bss dec hex filename old: 16527 44 0 16571 40bb net/ipv4/ip_output.o new: 14935 44 0 14979 3a83 net/ipv4/ip_output.o Suggested-by: Eric Dumazet Signed-off-by: Florian Westphal Signed-off-by: David S. Miller net/ipv4/ip_output.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e75ea4569d6d1d10935d74ff80bad52dc09bd062 Merge: 7b38951 2678bb9 Author: Kevin Hilman Date: Fri Jun 12 13:40:12 2015 -0700 Merge branch 'for-arm-soc' of http://ftp.arm.linux.org.uk/pub/armlinux/kernel/git-cur/linux-2.6-arm into next/cleanup * 'for-arm-soc' of http://ftp.arm.linux.org.uk/pub/armlinux/kernel/git-cur/linux-2.6-arm: ARM: fix EFM32 build breakage caused by cpu_resume_arm ARM: 8389/1: Add cpu_resume_arm() for firmwares that resume in ARM state ARM: v7 setup function should invalidate L1 cache commit dec36f6ab89db2ae80a0a61f26e1ca1f6a61b651 Author: Kevin Hilman Date: Fri Jun 12 13:30:53 2015 -0700 ARM: multi_v7_defconfig: remove duplicate CONFIG_COMMON_CLK_QCOM=y commit dcf9a03bff4e (ARM: multi_v7_defconfig: Enable PMIC and MUIC drivers for exynos) mistakenly added an duplicate line for CONFIG_COMMON_CLK_QCOM=y. Remove it. Signed-off-by: Kevin Hilman arch/arm/configs/multi_v7_defconfig | 1 - 1 file changed, 1 deletion(-) commit 5f741b39dde47c054af78727cce7202fff9f781b Author: Tomi Valkeinen Date: Fri May 29 16:01:18 2015 +0300 drm: omapdrm: new vblank and event handling Rework the crtc event/flip_wait system as follows: - If we enable a crtc (full modeset), we set omap_crtc->pending and register vblank irq. - If we need to set GO bit (page flip), we do the same but also set the GO bit. - On vblank we unregister the irq, clear the 'pending' flag, send vblank event to userspace if crtc->state->event != NULL, and wake up 'pending_wait' wq. - In omap_atomic_complete() we wait for the 'pending' flag to get reset for all enabled crtcs using 'pending_wait' wq. The above ensures that we send the events to userspace in vblank, and that after the wait in omap_atomic_complete() everything for the affected crtcs has been completed. Signed-off-by: Tomi Valkeinen Signed-off-by: Laurent Pinchart drivers/gpu/drm/omapdrm/omap_crtc.c | 123 ++++++++++++++---------------------- drivers/gpu/drm/omapdrm/omap_drv.c | 22 ++++++- drivers/gpu/drm/omapdrm/omap_drv.h | 1 + 3 files changed, 70 insertions(+), 76 deletions(-) commit 0ff9b9bad66730e8347cb3350c8d3d1b88a21f13 Merge: 5ebe6af 0c0cbb6 c030008 a5dd4b4 01d72a9 c6201cd 3a9ad0b 917bfd9 Author: Bjorn Helgaas Date: Fri Jun 12 15:26:45 2015 -0500 Merge branches 'pci/aspm', 'pci/enumeration', 'pci/hotplug', 'pci/misc', 'pci/msi', 'pci/resource' and 'pci/virtualization' into next * pci/aspm: PCI/ASPM: Simplify Clock Power Management setting PCI: Use dev->has_secondary_link to find downstream PCIe links PCI/ASPM: Use dev->has_secondary_link to find downstream links PCI: Add dev->has_secondary_link to track downstream PCIe links PCI/ASPM: Remove redundant PCIe port type checking PCI/ASPM: Drop __pci_disable_link_state() useless "force" parameter * pci/enumeration: PCI: Remove unused pci_scan_bus_parented() xen/pcifront: Don't use deprecated function pci_scan_bus_parented() PCI: designware: Use pci_scan_root_bus() for simplicity PCI: tegra: Remove tegra_pcie_scan_bus() PCI: mvebu: Remove mvebu_pcie_scan_bus() * pci/hotplug: PCI: pciehp: Wait for hotplug command completion where necessary PCI: Propagate the "ignore hotplug" setting to parent ACPI / hotplug / PCI: Check ignore_hotplug for all downstream devices PCI: pciehp: Drop pointless label from pciehp_probe() PCI: pciehp: Drop pointless ACPI-based "slot detection" check * pci/misc: PCI: Remove unused pci_dma_burst_advice() PCI: Remove unused pcibios_select_root() (again) PCI: Remove unnecessary #includes of PCI: Include , not * pci/msi: PCI/MSI: Remove unused pci_msi_off() PCI/MSI: Drop pci_msi_off() calls from quirks ntb: Drop pci_msi_off() call during probe virtio_pci: drop pci_msi_off() call during probe PCI/MSI: Disable MSI at enumeration even if kernel doesn't support MSI PCI/MSI: Export pci_msi_set_enable(), pci_msix_clear_and_set_ctrl() PCI/MSI: Rename msi_set_enable(), msix_clear_and_set_ctrl() * pci/resource: PCI: Add pci_bus_addr_t * pci/virtualization: ACPI / PCI: Account for ARI in _PRT lookups PCI: Move pci_ari_enabled() to global header PCI: Add function 1 DMA alias quirk for Marvell 9120 PCI: Add ACS quirks for Intel 9-series PCH root ports commit c0300089fd2dbeebef5ab9b6d66b4e6cedf8500a Author: Yijing Wang Date: Tue Apr 28 17:32:34 2015 +0800 PCI: Remove unused pci_scan_bus_parented() No one uses pci_scan_bus_parented() any more, remove it. Signed-off-by: Yijing Wang Signed-off-by: Bjorn Helgaas drivers/pci/probe.c | 19 ------------------- include/linux/pci.h | 2 -- 2 files changed, 21 deletions(-) commit 515d425bd2049e9f0f79131db58eb762fb95f2f6 Author: Arnd Bergmann Date: Tue Apr 28 17:32:33 2015 +0800 xen/pcifront: Don't use deprecated function pci_scan_bus_parented() Use pci_scan_root_bus() instead of deprecated function pci_scan_bus_parented(). Signed-off-by: Arnd Bergmann Signed-off-by: Yijing Wang Signed-off-by: Bjorn Helgaas CC: Konrad Rzeszutek Wilk CC: xen-devel@lists.xenproject.org drivers/pci/xen-pcifront.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) commit 37b8d27de5d0079e1ecef2711061048e13054ebe Author: Josef Bacik Date: Thu Jun 4 17:17:25 2015 -0400 Btrfs: use received_uuid of parent during send Neil Horman pointed out a problem where if he did something like this receive A snap A B change B send -p A B and then on another box do recieve A receive B the receive B would fail because we use the UUID of A for the clone sources for B. This makes sense most of the time because normally you are sending from the original sources, not a received source. However when you use a recieved subvol its UUID is going to be something completely different, so if you then try to receive the diff on a different volume it won't find the UUID because the new A will be something else. The only constant is the received uuid. So instead check to see if we have received_uuid set on the root, and if so use that as the clone source, as btrfs receive looks for matches either in received_uuid or uuid. Thanks, Reported-by: Neil Horman Signed-off-by: Josef Bacik Reviewed-by: Hugo Mills Signed-off-by: Chris Mason fs/btrfs/send.c | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) commit 9ce93bdda7b71fd154986d36c0c1ccf0e7338e26 Author: Russell King Date: Fri Jun 12 21:19:35 2015 +0100 ARM: fix new BSYM() usage introduced via for-arm-soc branch Commit 32e55a777f83 ("ARM: 8389/1: Add cpu_resume_arm() for firmwares that resume in ARM state") needed to introduce a new usage of BSYM() to fix a problem with a previous patch. This in turn causes a conflict with the "bsym" branch which removes this symbol, replacing it with a 'badr' assembly macro. Fix this up. Signed-off-by: Russell King arch/arm/kernel/sleep.S | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a9dd3865dd1bd996a7e6af808645b7e566ced009 Merge: 27a513c 2678bb9 Author: Russell King Date: Fri Jun 12 21:18:59 2015 +0100 Merge branch 'for-arm-soc' into for-next commit 27a513ca8600e96790f9f3a3c3182da947e569d2 Merge: 970d96f bcc8fa8 Author: Russell King Date: Fri Jun 12 21:18:57 2015 +0100 Merge branch 'devel-stable' into for-next Conflicts: arch/arm/kernel/perf_event_cpu.c commit 970d96f9a81b0dd83ddd8bce0e5e1ba31881c5f5 Author: Stefan Agner Date: Tue Jun 2 20:43:24 2015 +0100 ARM: 8383/1: nommu: avoid deprecated source register on mov In Thumb2 mode, the stack register r13 is deprecated if the destination register is the program counter (r15). Similar to head.S, head-nommu.S uses r13 to store the return address used after configuring the CPU's CP15 register. However, since we do not enable a MMU, there will be no address switch and it is possible to use branch with link instruction to call __after_proc_init. Avoid using r13 completely by using bl to call __after_proc_init and get rid of __secondary_switched. Beside removing unnecessary complexity, this also fixes a compiler warning when compiling a !MMU kernel: Warning: Use of r13 as a source register is deprecated when r15 is the destination register. Tested-?by: Maxime Coquelin Signed-off-by: Stefan Agner Signed-off-by: Russell King arch/arm/kernel/head-nommu.S | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) commit 05c9ca8843cdf688275df891d512e204359717c5 Merge: c62af70 14327c6 Author: Russell King Date: Fri Jun 12 21:18:38 2015 +0100 Merge branch 'bsym' into for-next Conflicts: arch/arm/kernel/head.S commit c62af70ff3015a4412c6655de602fdf7f1ecdaa6 Merge: 9de44aa 22b67ac Author: Russell King Date: Fri Jun 12 21:18:13 2015 +0100 Merge branch 'sa1100' into for-next commit 9de44aa4dc969e4a46c2bfbd33d65bfa6ad2a15d Merge: 6fb18ac 079ed36 ec3bd0e c76f238 0bbe6b5 Author: Russell King Date: Fri Jun 12 21:18:08 2015 +0100 Merge branches 'arnd-fixes', 'clk', 'misc', 'v7' and 'fixes' into for-next commit 2678bb9fa137726a0b83dd61a9c1636543066755 Author: Russell King Date: Fri Jun 12 09:24:17 2015 +0100 ARM: fix EFM32 build breakage caused by cpu_resume_arm Fix: arch/arm/kernel/sleep.S:121: Error: selected processor does not support ARM opcodes arch/arm/kernel/sleep.S:123: Error: attempt to use an ARM instruction on a Thumb-only processor -- `adr r9,1f+1' arch/arm/kernel/sleep.S:124: Error: attempt to use an ARM instruction on a Thumb-only processor -- `bx r9' Signed-off-by: Russell King arch/arm/kernel/sleep.S | 7 +++++++ 1 file changed, 7 insertions(+) commit 32e55a777f839316ffcabd0c1a5192e5ffca55e7 Author: Stephen Boyd Date: Tue Jun 9 19:24:23 2015 +0100 ARM: 8389/1: Add cpu_resume_arm() for firmwares that resume in ARM state Some platforms always enter the kernel in the ARM state even if the kernel is compiled for THUMB2. Add a small wrapper on top of cpu_resume() that switches into THUMB2 state. This provides the functionality to fix a problem reported by Kevin Hilman on next-20150601 where the ifc6410 fails to boot a THUMB2 kernel because the platform's firmware always enters the kernel in ARM mode from deep idle states. (rmk: tweaked to work without BSYM->badr changes.) Reported-by: Kevin Hilman Cc: Ard Biesheuvel Cc: Lina Iyer Signed-off-by: Stephen Boyd Signed-off-by: Russell King arch/arm/include/asm/suspend.h | 1 + arch/arm/kernel/sleep.S | 7 +++++++ 2 files changed, 8 insertions(+) commit 6646dfd02985eb67d8dcc00d0d345c8dc40f9925 Author: Tomi Valkeinen Date: Mon Jun 8 13:08:25 2015 +0300 drm: omapdrm: merge omap_crtc_flush and omap_crtc_atomic_flush omap_crtc_atomic_flush() is the only user of omap_crtc_flush(), so just move the code from omap_crtc_flush() to omap_crtc_atomic_flush(). Signed-off-by: Tomi Valkeinen Acked-by: Laurent Pinchart drivers/gpu/drm/omapdrm/omap_crtc.c | 35 ++++++++++++++--------------------- 1 file changed, 14 insertions(+), 21 deletions(-) commit f524ab7c070b39f4c8bd76fede6cacd17057ebc3 Author: Tomi Valkeinen Date: Thu Jun 4 10:56:33 2015 +0300 drm: omapdrm: add lock for fb pinning Before atomic modesetting omap_framebuffer_pin() and omap_framebuffer_unpin() were always called with modesetting locks taken. With atomic modesetting support this is no longer the case, and we need locking to protect the pin_count and the paddr, as multiple threads may pin the same fb concurrently. This patch adds a mutex to struct omap_framebuffer, and uses it in omap_framebuffer_pin() and omap_framebuffer_unpin(). Signed-off-by: Tomi Valkeinen Acked-by: Laurent Pinchart drivers/gpu/drm/omapdrm/omap_fb.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) commit 794a65ffba77f63ecfc7d23ca6406cc23deab202 Author: Tomi Valkeinen Date: Fri May 29 11:06:07 2015 +0300 drm: omapdrm: if omap_plane_atomic_update fails, disable plane omap_plane_atomic_update() calls dispc_ovl_setup(), which can fail (but shouldn't). To make the code a bit more robust, make sure the plane gets disabled if dispc_ovl_setup() fails, as otherwise we might get illegal HW configuration leading to error interrupts. Signed-off-by: Tomi Valkeinen Acked-by: Laurent Pinchart drivers/gpu/drm/omapdrm/omap_plane.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 11ffd031e3e5b9cc0232aad549bb08eb14612f43 Author: Tomi Valkeinen Date: Fri May 29 11:05:37 2015 +0300 drm: omapdrm: inline omap_plane_setup into update/disable At the moment we have omap_plane_setup() function which handles both enabling (and configuring) and disabling the plane. With atomic modesetting we have separate hooks for plane enable/config and disable. This patch moves the code from omap_plane_setup() to omap_plane_atomic_update() and omap_plane_atomic_disable(). Signed-off-by: Tomi Valkeinen Acked-by: Laurent Pinchart drivers/gpu/drm/omapdrm/omap_plane.c | 44 ++++++++++++++---------------------- 1 file changed, 17 insertions(+), 27 deletions(-) commit d9157dfd045f27f376edeab164203f1a68ba3ba4 Author: Tomi Valkeinen Date: Fri May 29 11:03:15 2015 +0300 drm: omapdrm: omap_plane_setup() cannot fail, use WARN With atomic modesetting, omap_plane_setup()'s return value is ignored as the functions using it cannot fail. dispc_ovl_setup(), called by omap_plane_setup(), can fail (but shouldn't). Instead of returning an error from omap_plane_setup() which gets ignored, return void and use WARN if dispc_ovl_setup() fails. Signed-off-by: Tomi Valkeinen Acked-by: Laurent Pinchart drivers/gpu/drm/omapdrm/omap_plane.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) commit 0dce4d75c3fc585387fbfc7ab2126118d86bf0f9 Author: Laurent Pinchart Date: Wed May 27 20:53:57 2015 +0300 drm: omapdrm: Don't setup planes manually from CRTC .enable()/.disable() Planes setup is handled by the DRM core through the atomic helpers, there's no need to duplicate the code in the CRTC .enable() and .disable() operations. Signed-off-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_crtc.c | 20 -------------------- drivers/gpu/drm/omapdrm/omap_drv.h | 1 - drivers/gpu/drm/omapdrm/omap_plane.c | 2 +- 3 files changed, 1 insertion(+), 22 deletions(-) commit af6da31e9c8d25f4be524c2bf97a886071eb4a00 Author: Laurent Pinchart Date: Thu May 28 02:39:35 2015 +0300 drm: omapdrm: Don't flush CRTC when enabling or disabling it The omap_crtc_flush() call in omap_crtc_enable() and omap_crtc_disable() is a no-op, as the display manager is always disabled at this point. Just remove the function call. Signed-off-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_crtc.c | 4 ---- 1 file changed, 4 deletions(-) commit 4029755e2a411c72f32b60b37ca8861f21647139 Author: Laurent Pinchart Date: Thu May 28 02:34:05 2015 +0300 drm: omapdrm: Move encoder setup to encoder operations Now that the driver is fully converted to atomic operations, and that the atomic helpers call the operations in the right order, we can move encoder setup to where it belongs, in the encoder operations. Signed-off-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_crtc.c | 38 +--------------- drivers/gpu/drm/omapdrm/omap_drv.h | 6 +-- drivers/gpu/drm/omapdrm/omap_encoder.c | 79 +++++++++++++--------------------- 3 files changed, 34 insertions(+), 89 deletions(-) commit 69fb7c855c7bd4b4bc3fd6bec0885236365d5261 Author: Laurent Pinchart Date: Thu May 28 02:09:56 2015 +0300 drm: omapdrm: Simplify DSS power management Instead of sprinkling dispc_runtime_get() and dispc_runtime_put() calls in various CRTC operations, move all power management code to the atomic commit function. Signed-off-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_crtc.c | 11 ----------- drivers/gpu/drm/omapdrm/omap_drv.c | 4 ++++ 2 files changed, 4 insertions(+), 11 deletions(-) commit fd93a252da41e40e2b6383122eb6009714faa51c Author: Laurent Pinchart Date: Thu May 28 01:58:02 2015 +0300 drm: omapdrm: Remove nested PM get/sync when configuring encoders The omap_crtc_encoder_setup() function is always called with the DSS enabled. Remove the dispc_runtime_get() and dispc_runtime_put() calls. Signed-off-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_crtc.c | 4 ---- 1 file changed, 4 deletions(-) commit 1cfe19aa611b332e182cd9976e91a205121ac956 Author: Laurent Pinchart Date: Thu Apr 16 22:35:20 2015 +0300 drm: omapdrm: Support unlinking page flip events prematurely DRM page flip vblank events requested by page flips or atomic commits are created by the DRM core and then passed to driver through CRTC states (for atomic commit) or directly to the page flip handler (for legacy page flips). The events are then kept aside until the page flip completes, at which point drivers queue them for delivery with a call to drm_send_vblank_event(). When a DRM file handle is closed events pending for delivery are cleaned up automatically by the DRM core. Events that have been passed to the driver but haven't completed yet, however, are not handled by the DRM core. Drivers are responsible for destroying them and must not attempt to queue them for delivery. This is usually handled by drivers' preclose() handlers that cancel and destroy page flip events that reference the file handle being closed. With asynchronous atomic updates the story becomes more complex. Several asynchronous atomic updates can be pending, each of them carrying per-CRTC events. As the atomic_commit() operation doesn't receive a file handle context, drivers can't know which file handle a pending update refers to, making it difficult to cancel or wait for completion of updates related to the file handle being closed. It should be noted that cancelling page flips or waiting for atomic updates completion isn't required by the DRM core when closing a file handle. The only requirement is that no event gets queued for delivery after the preclose() operation returns. This can easily be achieved by storing events for atomic commits in a list, unlinking events from the file handle being closed by setting the file_priv field to NULL, and skipping delivery of unlinked events. This logic replaces the page flip cancellation completely. Signed-off-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_crtc.c | 36 +++++++++++------------------------- drivers/gpu/drm/omapdrm/omap_drv.c | 30 +++++++++++++++++++++++++++--- drivers/gpu/drm/omapdrm/omap_drv.h | 2 +- 3 files changed, 39 insertions(+), 29 deletions(-) commit 55613acf1d1e4e6511e85d823e9235941236e6d3 Author: Laurent Pinchart Date: Wed Apr 15 22:47:45 2015 +0300 drm: omapdrm: omap_crtc_flush() isn't called with modeset locked When performing asynchronous atomic updates the modeset lock isn't taken around the callers of omap_crtc_flush(). This isn't an issue though, as access to the CRTC is properly serialized. Just drop the warning. Signed-off-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_crtc.c | 1 - 1 file changed, 1 deletion(-) commit 0193f0c74445ab0da0b8870c18ea5ef071fa1ec1 Author: Laurent Pinchart Date: Wed Apr 15 21:51:45 2015 +0300 drm: omapdrm: Don't get/put dispc in omap_crtc_flush() The omap_crtc_flush() function is always called with a reference to the dispc held. Remove unnecessary calls to dispc_runtime_get() and dispc_runtime_put(). Signed-off-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_crtc.c | 4 ---- 1 file changed, 4 deletions(-) commit bec10a2a10f368e66f74a7f8b8795afe8070ae1f Author: Laurent Pinchart Date: Wed Apr 15 21:47:34 2015 +0300 drm: omapdrm: Make the omap_crtc_flush function static The function isn't used outside of its compilation unit, make it static. Signed-off-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_crtc.c | 2 +- drivers/gpu/drm/omapdrm/omap_drv.h | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) commit edc725577c52d4abe1dac54ccca1b7bc08672f13 Author: Laurent Pinchart Date: Fri Mar 6 19:18:56 2015 +0200 drm: omapdrm: Remove omap_plane enabled field The field tracks the plane state to avoid double-enable or -disable. This isn't required anymore, as - the DRM atomic core guarantees that the plane atomic_update and atomic_disable functions will never be called on an enabled/disabled plane - the CRTC enable/disable operations that enable/disable the plane are already guarded against double enable/disable We can thus remove the enabled field completely. The omap_plane_set_enable() function then becomes a wrapper around omap_plane_setup() which can be called directly. Signed-off-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_crtc.c | 11 +++++---- drivers/gpu/drm/omapdrm/omap_drv.h | 2 +- drivers/gpu/drm/omapdrm/omap_plane.c | 45 +++++++----------------------------- 3 files changed, 16 insertions(+), 42 deletions(-) commit 6cca481c0556d197f8aa287aec784b20f515fd12 Author: Laurent Pinchart Date: Wed Apr 15 18:55:27 2015 +0300 drm: omapdrm: Remove omap_crtc enabled field The field tracks the CRTC state to avoid double-enable or -disable. As the DRM atomic core guarantees that the CRTC enable and disable functions won't be called on an already enabled or disabled CRTC, such tracking isn't needed. Remove the enabled field. Signed-off-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_crtc.c | 32 +++++++++----------------------- 1 file changed, 9 insertions(+), 23 deletions(-) commit dee8260d9c2e6f43ebecd2777caff3524477bf9f Author: Laurent Pinchart Date: Fri Mar 6 19:00:18 2015 +0200 drm: omapdrm: Move crtc info out of the crtc structure The crtc info structure is only used to setup the crtc through the DSS API. Move it from the crtc structure to local variables in omap_crtc_dss_enable(). Signed-off-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_crtc.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) commit fb730c9b7097373b30bce0bed326942acdf467de Author: Laurent Pinchart Date: Fri Mar 6 19:00:18 2015 +0200 drm: omapdrm: Move plane info and win out of the plane structure The plane info and win structures are only used to setup the plane through the DSS API. Move them from the plane structure to local variables in omap_plane_setup(). Signed-off-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_plane.c | 92 ++++++++++++++++-------------------- 1 file changed, 41 insertions(+), 51 deletions(-) commit afc34932439fdf134be391581edcee180dd0de80 Author: Laurent Pinchart Date: Fri Mar 6 18:35:16 2015 +0200 drm: omapdrm: Switch crtc and plane set_property to atomic helpers Allow setting up plane properties atomically using the plane set_property atomic helper. The properties are now stored in the plane state (requiring subclassing it) and applied when updating the planes. The CRTC exposes the properties of its primary plane for legacy reason. We can't get rid of that API, so simply delegate it to the primary plane. Signed-off-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_crtc.c | 45 +++++++-- drivers/gpu/drm/omapdrm/omap_drv.h | 2 - drivers/gpu/drm/omapdrm/omap_plane.c | 180 +++++++++++++++++++++++------------ 3 files changed, 156 insertions(+), 71 deletions(-) commit 9d29c1f2d5510fc7cb95cacc27016fab279fb881 Author: Laurent Pinchart Date: Thu Mar 5 18:49:37 2015 +0200 drm: omapdrm: Drop manual framebuffer pin handling Since the removal of omap_plane_mode_set(), framebuffers are now pinned exclusively through the plane .prepare_fb() and .cleanup_fb() operations as the remaining callers of omap_plane_setup() don't modify the framebuffer. Remove the manual pin/unpin infrastructure. Signed-off-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_crtc.c | 35 ------------------------------ drivers/gpu/drm/omapdrm/omap_drv.h | 1 - drivers/gpu/drm/omapdrm/omap_plane.c | 41 ------------------------------------ 3 files changed, 77 deletions(-) commit fa16d26289a03c2cf5189a2693c5615644e56ec3 Author: Laurent Pinchart Date: Fri Mar 6 16:01:53 2015 +0200 drm: omapdrm: Switch page flip to atomic helpers The atomic page flip helper implements the page flip operation using asynchronous commits. As the legacy page flip was the last caller of omap_plane_mode_set(), remove the function. Signed-off-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_crtc.c | 224 +++++++---------------------------- drivers/gpu/drm/omapdrm/omap_drv.h | 6 - drivers/gpu/drm/omapdrm/omap_plane.c | 23 ---- 3 files changed, 41 insertions(+), 212 deletions(-) commit 748471a5e4afc91e2867caad3da613320fd88bbe Author: Laurent Pinchart Date: Thu Mar 5 23:42:39 2015 +0200 drm: omapdrm: Implement asynchronous commit support Implement a custom .atomic_commit() handler that supports asynchronous commits using a work queue. This can be used for userspace-driven asynchronous commits, as well as for an atomic page flip implementation. Signed-off-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_drv.c | 113 ++++++++++++++++++++++++++++++++++++- drivers/gpu/drm/omapdrm/omap_drv.h | 8 +++ 2 files changed, 120 insertions(+), 1 deletion(-) commit d97db134880986b7ebb6fc85995e8d6bc3ce477f Author: Laurent Pinchart Date: Thu Mar 5 23:04:30 2015 +0200 drm: omapdrm: Replace encoder mode_fixup with atomic_check The encoder .mode_fixup() operation is legacy, atomic updates uses the new .atomic_check() operation. Convert the encoder driver. Signed-off-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_encoder.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit aea3cab1d109e37a06ac3f269444dffdfdc0347a Author: Laurent Pinchart Date: Thu Mar 5 22:50:51 2015 +0200 drm: omapdrm: Switch connector DPMS to atomic helpers The atomic connector DPMS helper implements the connector DPMS operation using atomic commit, removing the need for DPMS helper operations on CRTCs and encoders. Signed-off-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_connector.c | 2 +- drivers/gpu/drm/omapdrm/omap_crtc.c | 14 -------------- drivers/gpu/drm/omapdrm/omap_encoder.c | 26 +++++++++----------------- 3 files changed, 10 insertions(+), 32 deletions(-) commit 9416c9df8e05e375af859cfa856e1353e5a72d0d Author: Laurent Pinchart Date: Thu Mar 5 21:54:54 2015 +0200 drm: omapdrm: Switch mode config to atomic helpers This removes the legacy mode config code. The CRTC and encoder prepare and commit operations are not used anymore, remove them. Signed-off-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_crtc.c | 37 +--------------------------------- drivers/gpu/drm/omapdrm/omap_encoder.c | 10 --------- 2 files changed, 1 insertion(+), 46 deletions(-) commit cef77d40511b9466a8420a9c5cf92056f051cca8 Author: Laurent Pinchart Date: Thu Mar 5 21:50:00 2015 +0200 drm: omapdrm: Switch plane update to atomic helpers This removes the legacy plane update code. Wire up the default atomic check and atomic commit mode config helpers as needed by the plane update atomic helpers. Signed-off-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_drv.c | 3 +++ drivers/gpu/drm/omapdrm/omap_plane.c | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) commit f7a73b654710d5c0ff0c1b6ad5054336fb47e572 Author: Laurent Pinchart Date: Thu Mar 5 13:45:14 2015 +0200 drm: omapdrm: Handle primary plane config through atomic plane ops Use the new CRTC atomic transitional helpers drm_helper_crtc_mode_set() and drm_helper_crtc_mode_set_base() to implement the CRTC .mode_set and .mode_set_base operations. This delegates primary plane configuration to the plane .atomic_update and .atomic_disable operations, removing duplicate code from the CRTC implementation. Signed-off-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_crtc.c | 69 +++++++++++++++---------------------- 1 file changed, 27 insertions(+), 42 deletions(-) commit de8e41000136bf9a0ccf652fc364658f3210b6f4 Author: Laurent Pinchart Date: Thu Mar 5 13:39:56 2015 +0200 drm: omapdrm: Implement planes atomic operations Implement the CRTC .atomic_begin() and .atomic_flush() operations, the plane .atomic_check(), .atomic_update() and operations, and use the transitional atomic helpers to implement the plane update and disable operations on top of the new atomic operations. Signed-off-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_crtc.c | 14 ++++ drivers/gpu/drm/omapdrm/omap_plane.c | 127 ++++++++++++++++++++++------------- 2 files changed, 93 insertions(+), 48 deletions(-) commit 69a12263f6f919cd53b10c849e1674e38931e74e Author: Laurent Pinchart Date: Thu Mar 5 21:38:16 2015 +0200 drm: omapdrm: Wire up atomic state object scaffolding Hook up the default .reset(), .atomic_duplicate_state() and .atomic_free_state() helpers to ensure that state objects are properly created and destroyed, and call drm_mode_config_reset() at init time to create the initial state objects. Framebuffer reference count also gets maintained automatically by the transitional helpers except for the legacy page flip operation. Maintain it explicitly there. Signed-off-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_connector.c | 4 ++++ drivers/gpu/drm/omapdrm/omap_crtc.c | 6 ++++++ drivers/gpu/drm/omapdrm/omap_drv.c | 2 ++ drivers/gpu/drm/omapdrm/omap_plane.c | 5 +++++ 4 files changed, 17 insertions(+) commit 68dc0390d4e9d3f73fa6a7756a948ff97a40eccb Author: Laurent Pinchart Date: Sat Mar 7 00:22:39 2015 +0200 drm: omapdrm: Implement encoder .disable() and .enable() operations The operations are required by the atomic helpers, implement them. Signed-off-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_encoder.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit f1d57fb5172a27a481553439b22d8c751512f202 Author: Laurent Pinchart Date: Thu Mar 5 22:13:22 2015 +0200 drm: omapdrm: Rework CRTC enable/disable for atomic updates When using atomic updates the CRTC .enable() and .disable() helper operations are preferred over the (then legacy) .prepare() and .commit() operations. Implement .enable() and rework .disable() to not depend on DPMS, easing DPMS removal later on. Signed-off-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_crtc.c | 83 ++++++++++++++++++++++++++----------- 1 file changed, 59 insertions(+), 24 deletions(-) commit 4343f0f85781d7821964fcf346d4c8aaf1f5d130 Author: Laurent Pinchart Date: Thu Mar 5 22:01:02 2015 +0200 drm: omapdrm: Rename CRTC DSS operations with an omap_crtc_dss_ prefix The omap_crtc_enable() and omap_crtc_disable() DSS operations functions will clash with the new CRTC enable and disable helpers. Rename them to omap_crtc_dss_*, as well as the other DSS operations for consistency. Signed-off-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_crtc.c | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) commit 2d278f5414ae9cd535a7bdefaba2e2de38e116c7 Author: Laurent Pinchart Date: Thu Mar 5 21:31:37 2015 +0200 drm: omapdrm: Clean up #include's Use the <...> include style instead of "..." for DRM headers and sort the headers alphabetically to ease detection of duplicates. Signed-off-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_connector.c | 6 +++--- drivers/gpu/drm/omapdrm/omap_crtc.c | 8 ++++---- drivers/gpu/drm/omapdrm/omap_debugfs.c | 6 +++--- drivers/gpu/drm/omapdrm/omap_dmm_tiler.c | 19 ++++++++++--------- drivers/gpu/drm/omapdrm/omap_drv.c | 6 +++--- drivers/gpu/drm/omapdrm/omap_drv.h | 8 ++++---- drivers/gpu/drm/omapdrm/omap_encoder.c | 10 ++++------ drivers/gpu/drm/omapdrm/omap_fb.c | 8 ++++---- drivers/gpu/drm/omapdrm/omap_fbdev.c | 6 +++--- drivers/gpu/drm/omapdrm/omap_gem.c | 4 ++-- drivers/gpu/drm/omapdrm/omap_gem_dmabuf.c | 4 ++-- drivers/gpu/drm/omapdrm/omap_plane.c | 2 +- 12 files changed, 43 insertions(+), 44 deletions(-) commit 0c19ac9d033eed734b0e38c9147a1c893c0e4b12 Author: Laurent Pinchart Date: Wed Mar 4 18:24:18 2015 +0200 drm: omapdrm: Fix page flip race with CRTC disable We can't rely on crtc->primary->fb in the page flip worker, as a racing CRTC disable (due for instance to an explicit framebuffer deletion from userspace) would set that field to NULL before the worker gets a change to run. Store the framebuffer queued for page flip in a new field of omap_crtc instead, and hold a reference to it. Signed-off-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_crtc.c | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) commit c397cfd496f8b129a44962e84a9206afa0d7e431 Author: Laurent Pinchart Date: Sun Jan 25 22:42:30 2015 +0200 drm: omapdrm: Turn vblank on/off when enabling/disabling CRTC The DRM core vblank handling mechanism requires drivers to forcefully turn vblank reporting off when disabling the CRTC, and to restore the vblank reporting status when enabling the CRTC. Implement this using the drm_crtc_vblank_on/off helpers. When disabling vblank we must first wait for page flips to complete, so implement page flip completion wait as well. Finally, drm_crtc_vblank_off() must be called at startup to synchronize the state of the vblank core code with the hardware, which is initially disabled. An interesting side effect is that the .disable_vblank() operation will now be called for the first time with the CRTC disabled and the DISPC runtime suspended. The dispc_runtime_get() call in .disable_vblank() is supposed to take care of that, but the operation is called with a spinlock held, which prevents it from sleeping. To fix that move DISPC runtime PM handling out of the vblank operations to the CRTC code, ensuring that the display controller will always be powered when enabling or disabling vblank interrupts. Signed-off-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_crtc.c | 78 +++++++++++++++++++++++++++++++++++-- drivers/gpu/drm/omapdrm/omap_drv.c | 5 +++ drivers/gpu/drm/omapdrm/omap_irq.c | 4 -- 3 files changed, 79 insertions(+), 8 deletions(-) commit 15d02e921c3e9859d4ffb5308013b5e67cd70749 Author: Laurent Pinchart Date: Sun Jan 25 22:42:30 2015 +0200 drm: omapdrm: Rework page flip handling To implement proper vblank control the driver will need to wait for page flip completion before disabling the vblank interrupt. This is made complex by the page flip implementation which queues and submits page flips to the hardware in two separate steps between which DRM locks are released. We thus need to avoid waiting on a page flip that has been queued but not submitted as submission and wait are covered by the same lock. Rework page flip handling as a first step by splitting the flip_pending boolean variable into an enumerated state and moving between states based on flip queue, submission and completion. The CANCELLED state will be used in a second step. Signed-off-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_crtc.c | 84 ++++++++++++++++++++++++++++--------- 1 file changed, 64 insertions(+), 20 deletions(-) commit 1d5e5ea1f6061ec9ad4f43928697f479aeb884c6 Author: Laurent Pinchart Date: Sun Jan 18 16:57:36 2015 +0200 drm: omapdrm: Cancel pending page flips when closing device Pending page flips must be cancelled when closing the device, otherwise their completion at next vblank will result in nasty effects, including possible oopses due to resources required to complete the page flip being freed. Signed-off-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_crtc.c | 21 ++++++++++++++++++++- drivers/gpu/drm/omapdrm/omap_drv.c | 6 ++++++ drivers/gpu/drm/omapdrm/omap_drv.h | 1 + 3 files changed, 27 insertions(+), 1 deletion(-) commit f13ab00567273c70ffbecb59e8f11491cc108bbd Author: Laurent Pinchart Date: Sun Jan 25 22:06:45 2015 +0200 drm: omapdrm: Simplify IRQ registration The omapdrm can't use drm_irq_install() and drm_irq_uninstall() as it delegates IRQ handling to the omapdss driver. However, the code still declares IRQ-related operations used by the DRM IRQ helpers, and calls them indirectly. Simplify the implementation by calling the functions directly or inlining them. The irq_enabled checks can then also be simplified as the call stacks guarantees that omap_drm_irq_install() and omap_drm_irq_uninstall() will never run concurrently. Signed-off-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_drv.c | 7 +-- drivers/gpu/drm/omapdrm/omap_drv.h | 6 +-- drivers/gpu/drm/omapdrm/omap_irq.c | 102 +++++++++---------------------------- 3 files changed, 25 insertions(+), 90 deletions(-) commit 42fb61cc687822855bc140147a3ba044f23d023e Author: Laurent Pinchart Date: Mon Jan 26 02:58:51 2015 +0200 drm: omapdrm: Rename omap_crtc page flip-related fields The old_fb field is only used to indicate whether a page flip is pending. Turn it into a bool named flip_pending. Rename event and page_flip_work to flip_event and flip_work for consistency. Signed-off-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_crtc.c | 47 ++++++++++++++++++++----------------- 1 file changed, 26 insertions(+), 21 deletions(-) commit 077db4da28e247942f6cafcf36796440f871d0a5 Author: Laurent Pinchart Date: Sun Jan 18 16:36:19 2015 +0200 drm: omapdrm: Rename omap_crtc_page_flip_locked to omap_crtc_page_flip The operation is called page_flip, rename its implementation accordingly. Signed-off-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_crtc.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit a42133a780b368f9ed18045a4453f92292db4b18 Author: Laurent Pinchart Date: Sat Jan 17 19:09:26 2015 +0200 drm: omapdrm: Apply settings synchronously The omapdrm driver implements a mechanism to apply new settings (due to plane update, plane disable, plane property set, CRTC mode set or CRTC DPMS) asynchronously. While this improves performance, it adds a level of complexity that makes transition to the atomic update API close to impossible. Furthermore the atomic update API requires part of the apply operations to be synchronous (such as pinning the framebuffers), so the current implementation needs to be changed. Simplify the CRTC and plane code by making updates synchronous to prepare for the switch to the atomic update API. Asynchronous update will be implemented in a second step. Signed-off-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_crtc.c | 269 +++++++++++++---------------------- drivers/gpu/drm/omapdrm/omap_drv.c | 5 - drivers/gpu/drm/omapdrm/omap_drv.h | 23 +-- drivers/gpu/drm/omapdrm/omap_plane.c | 211 +++++++++++---------------- 4 files changed, 183 insertions(+), 325 deletions(-) commit e2cd09b202c5d32804f72bc28a9ed5a7d8a34452 Author: Laurent Pinchart Date: Fri Mar 6 17:16:43 2015 +0200 drm: omapdrm: Store the rotation property in dev->mode_config Rotation is a standard property, store it in dev->mode_config.rotation_property. While at it, extract the properties initialization code to a separate function instead of running it for every plane. Signed-off-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen drivers/gpu/drm/omapdrm/omap_crtc.c | 4 +--- drivers/gpu/drm/omapdrm/omap_drv.c | 31 ++++++++++++++++++++++++++++--- drivers/gpu/drm/omapdrm/omap_drv.h | 1 - drivers/gpu/drm/omapdrm/omap_plane.c | 27 ++++----------------------- 4 files changed, 33 insertions(+), 30 deletions(-) commit a0427464cf4c4ae80aaa16dbcefc39ba9a5e258b Author: Troy Kisky Date: Fri Jun 12 14:30:16 2015 -0500 PCI: imx6: Add speed change timeout message Currently, the timeout is never detected as count has a value of -1 if a timeout happens, but the code is checking for 0. Also, this patch removes the unneeded final wait if a timeout occurs. [bhelgaas: reworked starting from http://lkml.kernel.org/r/1433543864-7252-1-git-send-email-troy.kisky@boundarydevices.com] Signed-off-by: Troy Kisky Signed-off-by: Bjorn Helgaas drivers/pci/host/pci-imx6.c | 44 +++++++++++++++++++++++++++----------------- 1 file changed, 27 insertions(+), 17 deletions(-) commit 35a23ff928b066b00a826d0a9ed9411b8ab479ef Author: Masami Hiramatsu Date: Fri Jun 12 14:08:20 2015 +0900 perf probe: Cut off the gcc optimization postfixes from function name Cut off the postfixes which gcc added for optimized routines from the event name automatically generated from symbol name, since *probe-events doesn't accept it. Those symbols will be used if we don't use debuginfo to find target functions. E.g. without this fix; ----- # perf probe -va alloc_buf.isra.23 probe-definition(0): alloc_buf.isra.23 symbol:alloc_buf.isra.23 file:(null) line:0 offset:0 return:0 lazy:(null) [...] Opening /sys/kernel/debug/tracing/kprobe_events write=1 Added new event: Writing event: p:probe/alloc_buf.isra.23 _text+4869328 Failed to write event: Invalid argument Error: Failed to add events. Reason: Invalid argument (Code: -22) ----- With this fix; ----- perf probe -va alloc_buf.isra.23 probe-definition(0): alloc_buf.isra.23 symbol:alloc_buf.isra.23 file:(null) line:0 offset:0 return:0 lazy:(null) [...] Opening /sys/kernel/debug/tracing/kprobe_events write=1 Added new event: Writing event: p:probe/alloc_buf _text+4869328 probe:alloc_buf (on alloc_buf.isra.23) You can now use it in all perf tools, such as: perf record -e probe:alloc_buf -aR sleep 1 ----- Signed-off-by: Masami Hiramatsu Tested-by: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Jiri Olsa Cc: Namhyung Kim Cc: Naohiro Aota Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20150612050820.20548.41625.stgit@localhost.localdomain Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/probe-event.c | 5 +++++ 1 file changed, 5 insertions(+) commit 5430209497eeb01415c681aaac0d00f65d24a526 Author: Dan Carpenter Date: Thu Jun 11 11:51:16 2015 +0300 Smack: freeing an error pointer in smk_write_revoke_subj() This code used to rely on the fact that kfree(NULL) was a no-op, but then we changed smk_parse_smack() to return error pointers on failure instead of NULL. Calling kfree() on an error pointer will oops. I have re-arranged things a bit so that we only free things if they have been allocated. Fixes: e774ad683f42 ('smack: pass error code through pointers') Signed-off-by: Dan Carpenter security/smack/smackfs.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) commit 8e4349d13f3365273d2ff17667b36f7e846df912 Author: Ira Weiny Date: Wed Jun 10 16:16:48 2015 -0400 IB/mad: Add final OPA MAD processing For devices which support OPA MADs 1) Use previously defined SMP support functions. 2) Pass correct base version to ib_create_send_mad when processing OPA MADs. 3) Process out_mad_key_index returned by agents for a response. This is necessary because OPA SMP packets must carry a valid pkey. 4) Carry the correct segment size (OPA vs IBTA) of RMPP messages within ib_mad_recv_wc. 5) Handle variable length OPA MADs by: * Adjusting the 'fake' WC for locally routed SMP's to represent the proper incoming byte_len * out_mad_size is used from the local HCA agents 1) when sending agent responses on the wire 2) when passing responses through the local_completions function NOTE: wc.byte_len includes the GRH length and therefore is different from the in_mad_size specified to the local HCA agents. out_mad_size should _not_ include the GRH length as it is added Signed-off-by: Ira Weiny Signed-off-by: Doug Ledford drivers/infiniband/core/agent.c | 7 +- drivers/infiniband/core/agent.h | 2 +- drivers/infiniband/core/mad.c | 224 ++++++++++++++++++++++++++++++++----- drivers/infiniband/core/mad_priv.h | 1 + drivers/infiniband/core/mad_rmpp.c | 20 +++- drivers/infiniband/core/user_mad.c | 19 ++-- include/rdma/ib_mad.h | 8 ++ 7 files changed, 238 insertions(+), 43 deletions(-) commit f28990bc896a468d7bb09c803db2c4cf0e2db680 Author: Ira Weiny Date: Sat Jun 6 14:38:34 2015 -0400 IB/mad: Add partial Intel OPA MAD support Add OPA SMP processing functionality. Define the new OPA SMP format, create support functions for this format using the previously defined helper functions as appropriate. These functions are defined in this patch and used in the final OPA MAD support patch. Signed-off-by: Ira Weiny Signed-off-by: Doug Ledford drivers/infiniband/core/mad_priv.h | 1 + drivers/infiniband/core/opa_smi.h | 78 +++++++++++++++++++++++++++ drivers/infiniband/core/smi.c | 54 +++++++++++++++++++ include/rdma/opa_smi.h | 106 +++++++++++++++++++++++++++++++++++++ 4 files changed, 239 insertions(+) commit 548ead17442f13bdaa679e222ee2fd186e32301d Author: Ira Weiny Date: Sat Jun 6 14:38:33 2015 -0400 IB/mad: Add partial Intel OPA MAD support This patch is the first of 3 which adds processing of OPA MADs 1) Add Intel Omni-Path Architecture defines 2) Increase max management version to accommodate OPA 3) update ib_create_send_mad If the device supports OPA MADs and the MAD being sent is the OPA base version alter the MAD size and sg lengths as appropriate Signed-off-by: Ira Weiny Signed-off-by: Doug Ledford drivers/infiniband/core/mad.c | 42 +++++++++++++++++++++++++++++--------- drivers/infiniband/core/mad_priv.h | 2 +- drivers/infiniband/core/mad_rmpp.c | 7 ++++--- include/rdma/ib_mad.h | 24 +++++++++++++++++++--- 4 files changed, 58 insertions(+), 17 deletions(-) commit 65995fee842fd9f1427b62be24053846d9c32102 Author: Ira Weiny Date: Sat Jun 6 14:38:32 2015 -0400 IB/core: Add OPA MAD core capability flag Add OPA MAD support flags to the core capability immutable flags. In addition add the rdma_cap_opa_mad helper function for core functions to use to detect OPA MAD support. OPA MADs share a common header with IBTA MADs but with some differences for increased performance. Sharing a common header with IBTA MADs allows us to share most of the MAD processing code when dealing with OPA MADs in addition to supporting some IBTA MADs on OPA devices. OPA MADs differ in the following ways: 1) MADs are variable size up to 2K IBTA defined MADs remain fixed at 256 bytes 2) OPA SMPs must carry valid PKeys 3) OPA SMP packets are a different format The MAD stack will use this new functionality to determine if OPA MAD processing should occur on individual device ports. Signed-off-by: Ira Weiny Signed-off-by: Doug Ledford include/rdma/ib_verbs.h | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) commit 4cd7c9479aff33746af490fa4a5a7dee8654891a Author: Ira Weiny Date: Sat Jun 6 14:38:31 2015 -0400 IB/mad: Add support for additional MAD info to/from drivers In order to support alternate sized MADs (and variable sized MADs on OPA devices) add in/out MAD size parameters to the process_mad core call. In addition, add an out_mad_pkey_index to communicate the pkey index the driver wishes the MAD stack to use when sending OPA MAD responses. The out MAD size and the out MAD PKey index are required by the MAD stack to generate responses on OPA devices. Furthermore, the in and out MAD parameters are made generic by specifying them as ib_mad_hdr rather than ib_mad. Drivers are modified as needed and are protected by BUG_ON flags if the MAD sizes passed to them is incorrect. Signed-off-by: Ira Weiny Signed-off-by: Doug Ledford drivers/infiniband/core/mad.c | 17 ++++++++++++----- drivers/infiniband/core/sysfs.c | 7 ++++++- drivers/infiniband/hw/amso1100/c2_provider.c | 6 +++++- drivers/infiniband/hw/cxgb3/iwch_provider.c | 6 +++++- drivers/infiniband/hw/cxgb4/provider.c | 7 +++++-- drivers/infiniband/hw/ehca/ehca_iverbs.h | 5 +++-- drivers/infiniband/hw/ehca/ehca_sqp.c | 9 ++++++++- drivers/infiniband/hw/ipath/ipath_mad.c | 9 ++++++++- drivers/infiniband/hw/ipath/ipath_verbs.h | 4 +++- drivers/infiniband/hw/mlx4/mad.c | 10 +++++++++- drivers/infiniband/hw/mlx4/mlx4_ib.h | 4 +++- drivers/infiniband/hw/mlx5/mad.c | 9 ++++++++- drivers/infiniband/hw/mlx5/mlx5_ib.h | 4 +++- drivers/infiniband/hw/mthca/mthca_dev.h | 5 +++-- drivers/infiniband/hw/mthca/mthca_mad.c | 10 ++++++++-- drivers/infiniband/hw/nes/nes_verbs.c | 4 +++- drivers/infiniband/hw/ocrdma/ocrdma_ah.c | 9 ++++++++- drivers/infiniband/hw/ocrdma/ocrdma_ah.h | 4 +++- drivers/infiniband/hw/qib/qib_mad.c | 9 ++++++++- drivers/infiniband/hw/qib/qib_verbs.h | 4 +++- include/rdma/ib_verbs.h | 9 ++++++--- 21 files changed, 120 insertions(+), 31 deletions(-) commit c9082e51b6a4ba0272c30027d87e67c6652a725d Author: Ira Weiny Date: Sat Jun 6 14:38:30 2015 -0400 IB/mad: Convert allocations from kmem_cache to kzalloc This patch implements allocating alternate receive MAD buffers within the MAD stack. Support for OPA to send/recv variable sized MADs is implemented later. 1) Convert MAD allocations from kmem_cache to kzalloc kzalloc is more flexible to support devices with different sized MADs and research and testing showed that the current use of kmem_cache does not provide performance benefits over kzalloc. 2) Change struct ib_mad_private to use a flex array for the mad data 3) Allocate ib_mad_private based on the size specified by devices in rdma_max_mad_size. 4) Carry the allocated size in ib_mad_private to be used when processing ib_mad_private objects. 5) Alter DMA mappings based on the mad_size of ib_mad_private. 6) Replace the use of sizeof and static defines as appropriate 7) Add appropriate casts for the MAD data when calling processing functions. Signed-off-by: Ira Weiny Signed-off-by: Doug Ledford drivers/infiniband/core/agent.c | 9 +- drivers/infiniband/core/agent.h | 4 +- drivers/infiniband/core/mad.c | 169 +++++++++++++++++++------------------ drivers/infiniband/core/mad_priv.h | 7 +- 4 files changed, 97 insertions(+), 92 deletions(-) commit 337877a466bb8b0c51f4fa727eeef7d734665632 Author: Ira Weiny Date: Sat Jun 6 14:38:29 2015 -0400 IB/core: Add ability for drivers to report an alternate MAD size. Add max MAD size to the device immutable data set and have all drivers that support MADs report the current IB MAD size (IB_MGMT_MAD_SIZE) to the core. Verify MAD size data in both the MAD core and when reading the immutable data. OPA drivers will report alternate MAD sizes in subsequent patches. Signed-off-by: Ira Weiny Signed-off-by: Doug Ledford drivers/infiniband/core/device.c | 11 +++++++++++ drivers/infiniband/core/mad.c | 3 +++ drivers/infiniband/hw/ehca/ehca_main.c | 2 ++ drivers/infiniband/hw/ipath/ipath_verbs.c | 1 + drivers/infiniband/hw/mlx4/main.c | 2 ++ drivers/infiniband/hw/mlx5/main.c | 1 + drivers/infiniband/hw/mthca/mthca_provider.c | 1 + drivers/infiniband/hw/ocrdma/ocrdma_main.c | 2 ++ drivers/infiniband/hw/qib/qib_verbs.c | 1 + include/rdma/ib_mad.h | 1 + include/rdma/ib_verbs.h | 18 ++++++++++++++++++ 11 files changed, 43 insertions(+) commit da2dfaa3a35cb5b68fc6ab2e442339de03cacd09 Author: Ira Weiny Date: Sat Jun 6 14:38:28 2015 -0400 IB/mad: Support alternate Base Versions when creating MADs In preparation to support the new OPA MAD Base version, add a base version parameter to ib_create_send_mad and set it to IB_MGMT_BASE_VERSION for current users. Definition of the new base version and it's processing will occur in later patches. Signed-off-by: Ira Weiny Signed-off-by: Doug Ledford drivers/infiniband/core/agent.c | 3 ++- drivers/infiniband/core/cm.c | 6 ++++-- drivers/infiniband/core/mad.c | 3 ++- drivers/infiniband/core/mad_rmpp.c | 6 ++++-- drivers/infiniband/core/sa_query.c | 3 ++- drivers/infiniband/core/user_mad.c | 3 ++- drivers/infiniband/hw/mlx4/mad.c | 3 ++- drivers/infiniband/hw/mthca/mthca_mad.c | 3 ++- drivers/infiniband/hw/qib/qib_iba7322.c | 3 ++- drivers/infiniband/hw/qib/qib_mad.c | 3 ++- drivers/infiniband/ulp/srpt/ib_srpt.c | 3 ++- include/rdma/ib_mad.h | 4 +++- 12 files changed, 29 insertions(+), 14 deletions(-) commit 29869eafa6d757edbec17a9a7add1e34b968ae2c Author: Ira Weiny Date: Sat Jun 6 14:38:27 2015 -0400 IB/mad: Create a generic helper for DR forwarding checks IB and OPA SMPs share the same processing algorithm but have different header formats and permissive LID detection. Add a helper function which is generic to processing the DR forwarding checks which can be used by both IB and OPA SMP code. Use this function in the current IB function smi_check_forward_dr_smp. Signed-off-by: Ira Weiny Signed-off-by: Doug Ledford drivers/infiniband/core/smi.c | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) commit 86f0e67a21508b3e6020d53ef92a73081ed7eae1 Author: Ira Weiny Date: Sat Jun 6 14:38:26 2015 -0400 IB/mad: Create a generic helper for DR SMP Recv processing IB and OPA SMPs share the same processing algorithm but have different header formats and permissive LID detection. Add a helper function which is generic to processing DR SMP Recv messages which can be used by both IB and OPA SMP code. Use this function in the current IB function smi_handle_dr_smp_recv. Signed-off-by: Ira Weiny Signed-off-by: Doug Ledford drivers/infiniband/core/smi.c | 79 +++++++++++++++++++++++++------------------ 1 file changed, 46 insertions(+), 33 deletions(-) commit 92f1505604be05a01851203a5759ad9ed33c8d91 Author: Ira Weiny Date: Sat Jun 6 14:38:25 2015 -0400 IB/mad: Create a generic helper for DR SMP Send processing IB and OPA SMPs share the same processing algorithm but have different header formats and permissive LID detection. Add a helper function which is generic to processing DR SMP Send messages which can be used by both IB and OPA SMP code. Use this function in the current IB function smi_handle_dr_smp_send. Signed-off-by: Ira Weiny Signed-off-by: Doug Ledford drivers/infiniband/core/smi.c | 80 +++++++++++++++++++++++++------------------ 1 file changed, 46 insertions(+), 34 deletions(-) commit e11ae8aa0ccd7823f9b22ce29a46a8ddc583a458 Author: Ira Weiny Date: Sat Jun 6 14:38:24 2015 -0400 IB/mad: Split IB SMI handling from MAD Recv handler Make a helper function to process Directed Route SMPs to be called by the IB MAD Recv Handler, ib_mad_recv_done_handler. This cleans up the MAD receive handler code a bit and allows for us to better share the SMP processing code between IB and OPA SMPs. IB and OPA SMPs share the same processing algorithm but have different header formats and permissive LID detection. Therefore this and subsequent patches split the common processing code from the IB specific code in anticipation of sharing those algorithms with the OPA code. Signed-off-by: Ira Weiny Signed-off-by: Doug Ledford drivers/infiniband/core/mad.c | 85 +++++++++++++++++++++++++------------------ 1 file changed, 49 insertions(+), 36 deletions(-) commit 83a1d2288952db16150a09f3d40284ffc11fc063 Author: Ira Weiny Date: Sat Jun 6 14:38:23 2015 -0400 IB/mad cleanup: Generalize processing of MAD data ib_find_send_mad only needs access to the MAD header not the full IB MAD. Change the local variable to ib_mad_hdr and change the corresponding cast. This allows for clean usage of this function with both IB and OPA MADs because OPA MADs carry the same header as IB MADs. Signed-off-by: Ira Weiny Signed-off-by: Doug Ledford drivers/infiniband/core/mad.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit d94bd2667a78ecbc64296588a8272e97a61dbafd Author: Ira Weiny Date: Sat Jun 6 14:38:22 2015 -0400 IB/mad cleanup: Clean up function params -- find_mad_agent find_mad_agent only needs read only access to the MAD header. Update the ib_mad pointer to be const ib_mad_hdr. Adjust call tree. Signed-off-by: Ira Weiny Signed-off-by: Doug Ledford drivers/infiniband/core/mad.c | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) commit 4b664c4355b251a142d9d57d0ca0298b497f8428 Author: Matan Barak Date: Thu Jun 11 16:35:27 2015 +0300 IB/mlx4: Add support for CQ time-stamping This includes: * support allocation of CQ with the TIMESTAMP_COMPLETION creation flag. * add timestamp_mask and hca_core_clock to query_device, reporting the number of supported timestamp bits (mask) and the hca_core_clock frequency. * return hca core clock's offset in query_device vendor's data, this is needed in order to read the HCA's core clock. Signed-off-by: Matan Barak Signed-off-by: Or Gerlitz Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx4/cq.c | 9 +++++--- drivers/infiniband/hw/mlx4/main.c | 42 ++++++++++++++++++++++++++++++++++-- drivers/infiniband/hw/mlx4/mlx4_ib.h | 16 ++++++++++++++ 3 files changed, 62 insertions(+), 5 deletions(-) commit 52033cfb5aab2a54e238e93c9e52f61c2c5708aa Author: Matan Barak Date: Thu Jun 11 16:35:26 2015 +0300 IB/mlx4: Add mmap call to map the hardware clock In order to read the HCA's cycle counter efficiently in user space, we need to map the HCA's register. This is done through mmap call. Signed-off-by: Matan Barak Signed-off-by: Or Gerlitz Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx4/main.c | 18 +++++++++++++++++- drivers/net/ethernet/mellanox/mlx4/main.c | 19 +++++++++++++++++++ include/linux/mlx4/device.h | 9 +++++++++ 3 files changed, 45 insertions(+), 1 deletion(-) commit 2528e33e680921d95092f83c4a64046744f111b3 Author: Matan Barak Date: Thu Jun 11 16:35:25 2015 +0300 IB/core: Pass hardware specific data in query_device Vendors should be able to pass vendor specific data to/from user-space via query_device uverb. In order to do this, we need to pass the vendors' specific udata. Signed-off-by: Matan Barak Signed-off-by: Or Gerlitz Signed-off-by: Doug Ledford drivers/infiniband/core/device.c | 4 +++- drivers/infiniband/core/uverbs_cmd.c | 2 +- drivers/infiniband/hw/amso1100/c2_provider.c | 7 +++++-- drivers/infiniband/hw/cxgb3/iwch_provider.c | 8 ++++++-- drivers/infiniband/hw/cxgb4/provider.c | 8 ++++++-- drivers/infiniband/hw/ehca/ehca_hca.c | 6 +++++- drivers/infiniband/hw/ehca/ehca_iverbs.h | 3 ++- drivers/infiniband/hw/ipath/ipath_verbs.c | 7 +++++-- drivers/infiniband/hw/mlx4/main.c | 6 +++++- drivers/infiniband/hw/mlx5/main.c | 9 +++++++-- drivers/infiniband/hw/mthca/mthca_provider.c | 7 +++++-- drivers/infiniband/hw/nes/nes_verbs.c | 6 +++++- drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 6 +++++- drivers/infiniband/hw/ocrdma/ocrdma_verbs.h | 3 ++- drivers/infiniband/hw/qib/qib_verbs.c | 6 ++++-- drivers/infiniband/hw/usnic/usnic_ib_verbs.c | 6 +++++- drivers/infiniband/hw/usnic/usnic_ib_verbs.h | 3 ++- include/rdma/ib_verbs.h | 3 ++- 18 files changed, 75 insertions(+), 25 deletions(-) commit 24306dc66149020c59a07b64e2a325af59ee7d10 Author: Matan Barak Date: Thu Jun 11 16:35:24 2015 +0300 IB/core: Add timestamp_mask and hca_core_clock to query_device In order to expose timestamp we need to expose two new attributes in query_device to be used for CQ completion time-stamping: timestamp_mask - how many bits are valid in the timestamp, where timestamp values could be 64bits the most. hca_core_clock - timestamp is given in HW cycles, the frequency in KHZ units of the HCA, necessary in order to convert cycles to seconds. This is added both to ib_query_device and its respective uverbs counterpart. Signed-off-by: Matan Barak Signed-off-by: Or Gerlitz Signed-off-by: Doug Ledford drivers/infiniband/core/device.c | 2 ++ drivers/infiniband/core/uverbs_cmd.c | 14 ++++++++++++++ include/rdma/ib_verbs.h | 2 ++ include/uapi/rdma/ib_user_verbs.h | 2 ++ 4 files changed, 20 insertions(+) commit 565197dd8fb1354509fa983658b54d63a2ecc5d6 Author: Matan Barak Date: Thu Jun 11 16:35:23 2015 +0300 IB/core: Extend ib_uverbs_create_cq ib_uverbs_ex_create_cq follows the extension verbs mechanism. New features (for example, CQ creation flags field which is added in a downstream patch) could used via user-space libraries without breaking the ABI. Signed-off-by: Matan Barak Signed-off-by: Or Gerlitz Signed-off-by: Doug Ledford drivers/infiniband/core/uverbs.h | 1 + drivers/infiniband/core/uverbs_cmd.c | 170 +++++++++++++++++++++++++++------- drivers/infiniband/core/uverbs_main.c | 1 + include/uapi/rdma/ib_user_verbs.h | 17 ++++ 4 files changed, 154 insertions(+), 35 deletions(-) commit b9926b92a4d44c94b0d99bfa802ac7b37dabc9e8 Author: Matan Barak Date: Thu Jun 11 16:35:22 2015 +0300 IB/core: Add CQ creation time-stamping flag Add CQ creation flag which dictates that the created CQ will report completion time-stamp value in the WC. Signed-off-by: Matan Barak Signed-off-by: Or Gerlitz Signed-off-by: Doug Ledford include/rdma/ib_verbs.h | 4 ++++ 1 file changed, 4 insertions(+) commit 8e37210b38fb7d6aa06aebde763316ee955d44c0 Author: Matan Barak Date: Thu Jun 11 16:35:21 2015 +0300 IB/core: Change ib_create_cq to use struct ib_cq_init_attr Currently, ib_create_cq uses cqe and comp_vecotr instead of the extendible ib_cq_init_attr struct. Earlier patches already changed the vendors to work with ib_cq_init_attr. This patch changes the consumers too. Signed-off-by: Matan Barak Signed-off-by: Or Gerlitz Signed-off-by: Doug Ledford drivers/infiniband/core/mad.c | 4 +++- drivers/infiniband/core/verbs.c | 6 +++--- drivers/infiniband/hw/ehca/ehca_main.c | 5 ++++- drivers/infiniband/hw/mlx4/mad.c | 4 +++- drivers/infiniband/hw/mlx4/main.c | 4 +++- drivers/infiniband/hw/mlx5/main.c | 6 ++++-- drivers/infiniband/ulp/ipoib/ipoib_verbs.c | 8 ++++++-- drivers/infiniband/ulp/iser/iser_verbs.c | 5 ++++- drivers/infiniband/ulp/isert/ib_isert.c | 5 ++++- drivers/infiniband/ulp/srp/ib_srp.c | 9 +++++++-- drivers/infiniband/ulp/srpt/ib_srpt.c | 4 +++- drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c | 6 ++++-- include/rdma/ib_verbs.h | 7 +++---- net/9p/trans_rdma.c | 4 +++- net/rds/ib_cm.c | 7 +++++-- net/rds/iw_cm.c | 7 +++++-- net/sunrpc/xprtrdma/svc_rdma_transport.c | 9 +++++---- net/sunrpc/xprtrdma/verbs.c | 9 +++++---- 18 files changed, 74 insertions(+), 35 deletions(-) commit bcf4c1ea583cd213f0bafdbeb11d80f83c5f10e6 Author: Matan Barak Date: Thu Jun 11 16:35:20 2015 +0300 IB/core: Change provider's API of create_cq to be extendible Add a new ib_cq_init_attr structure which contains the previous cqe (minimum number of CQ entries) and comp_vector (completion vector) in addition to a new flags field. All vendors' create_cq callbacks are changed in order to work with the new API. This commit does not change any functionality. Signed-off-by: Matan Barak Signed-off-by: Or Gerlitz Reviewed-By: Devesh Sharma to patch #2 Signed-off-by: Doug Ledford drivers/infiniband/core/uverbs_cmd.c | 6 ++++-- drivers/infiniband/core/verbs.c | 3 ++- drivers/infiniband/hw/amso1100/c2_provider.c | 7 ++++++- drivers/infiniband/hw/cxgb3/iwch_provider.c | 11 ++++++++--- drivers/infiniband/hw/cxgb4/cq.c | 9 +++++++-- drivers/infiniband/hw/cxgb4/iw_cxgb4.h | 8 ++++---- drivers/infiniband/hw/ehca/ehca_cq.c | 7 ++++++- drivers/infiniband/hw/ehca/ehca_iverbs.h | 3 ++- drivers/infiniband/hw/ipath/ipath_cq.c | 9 +++++++-- drivers/infiniband/hw/ipath/ipath_verbs.h | 3 ++- drivers/infiniband/hw/mlx4/cq.c | 8 +++++++- drivers/infiniband/hw/mlx4/mlx4_ib.h | 3 ++- drivers/infiniband/hw/mlx5/cq.c | 10 ++++++++-- drivers/infiniband/hw/mlx5/main.c | 3 ++- drivers/infiniband/hw/mlx5/mlx5_ib.h | 5 +++-- drivers/infiniband/hw/mthca/mthca_provider.c | 8 ++++++-- drivers/infiniband/hw/nes/nes_verbs.c | 11 ++++++++--- drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 7 ++++++- drivers/infiniband/hw/ocrdma/ocrdma_verbs.h | 6 ++++-- drivers/infiniband/hw/qib/qib_cq.c | 11 ++++++++--- drivers/infiniband/hw/qib/qib_verbs.h | 5 +++-- drivers/infiniband/hw/usnic/usnic_ib_verbs.c | 10 +++++++--- drivers/infiniband/hw/usnic/usnic_ib_verbs.h | 7 ++++--- include/rdma/ib_verbs.h | 10 ++++++++-- 24 files changed, 124 insertions(+), 46 deletions(-) commit 7857230f7916c5b3b6b683ed332660e8eb2e58d4 Author: Fabian Frederick Date: Fri Jun 12 18:59:08 2015 +0200 sound: oss/sb_audio: use swap() in sb_audio_close() Use kernel.h macro definition. Thanks to Julia Lawall for Coccinelle scripting support. Signed-off-by: Fabian Frederick Signed-off-by: Takashi Iwai sound/oss/sb_audio.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit 1b12e4cac979d20ced54f519d170b58c80e58d6e Author: Fabian Frederick Date: Fri Jun 12 18:58:59 2015 +0200 ALSA: gus: use swap() in snd_ics_put_double() Use kernel.h macro definition. Thanks to Julia Lawall for Coccinelle scripting support. Signed-off-by: Fabian Frederick Signed-off-by: Takashi Iwai sound/isa/gus/gus_mixer.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit a038b97951d399685e18a6dc53dee62b42134a0a Author: Quentin Lambert Date: Fri Jun 12 10:38:41 2015 +0200 ALSA: aoa: convert bus code to use dev_groups The dev_attrs field of struct bus_type is going away, use dev_groups instead. This converts the soundbus code to use the correct field. These modifications were made using Coccinelle. Signed-off-by: Quentin Lambert Signed-off-by: Takashi Iwai sound/aoa/soundbus/core.c | 4 +++- sound/aoa/soundbus/soundbus.h | 2 +- sound/aoa/soundbus/sysfs.c | 13 ++++++++----- 3 files changed, 12 insertions(+), 7 deletions(-) commit 0eeff2362b829b5e80f8b69f86b60b8094bc742d Author: Liu Bo Date: Thu Jun 11 14:16:44 2015 +0800 Btrfs: fix use-after-free in btrfs_replay_log @log_root_tree should not be referenced after kfree. Signed-off-by: Liu Bo Reviewed-by: David Sterba Reported-by: Julia Lawall Signed-off-by: Chris Mason fs/btrfs/disk-io.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit dfe11a11d52388576d78e307514f9020630505ac Author: Ranjit Waghmode Date: Wed Jun 10 16:08:21 2015 +0530 spi: Add support for Zynq Ultrascale+ MPSoC GQSPI controller This patch adds support for GQSPI controller driver used by Zynq Ultrascale+ MPSoC Signed-off-by: Ranjit Waghmode Signed-off-by: Mark Brown drivers/spi/Kconfig | 6 + drivers/spi/Makefile | 1 + drivers/spi/spi-zynqmp-gqspi.c | 1122 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 1129 insertions(+) commit fe8e48ad3c620093b2c9064259558bdcba9a76fa Author: Ranjit Waghmode Date: Wed Jun 10 16:08:20 2015 +0530 spi: zynq: Add DT bindings documentation for Zynq Ultrascale+ MPSoC GQSPI controller Add bindings documentation for GQSPI controller driver used by Zynq Ultrascale+ MPSoC Signed-off-by: Ranjit Waghmode Signed-off-by: Mark Brown .../devicetree/bindings/spi/spi-zynqmp-qspi.txt | 26 ++++++++++++++++++++++ 1 file changed, 26 insertions(+) commit 432a17d77a77009736f4dce84d3386398665fd29 Author: Mirza Krak Date: Fri Jun 12 18:55:22 2015 +0200 spi: fsl-dspi: Use pinctrl PM helpers Add support for "sleep" state of pinctrl. Signed-off-by: Mirza Krak Signed-off-by: Mark Brown drivers/spi/spi-fsl-dspi.c | 5 +++++ 1 file changed, 5 insertions(+) commit 40c6ed0c8a7f2c5d67f5d6774bbce230a42176db Author: Chuck Lever Date: Tue May 26 11:53:33 2015 -0400 xprtrdma: Reduce per-transport MR allocation Reduce resource consumption per-transport to make way for increasing the credit limit and maximum r/wsize. Pre-allocate fewer MRs. Signed-off-by: Chuck Lever Reviewed-by: Steve Wise Reviewed-by: Sagi Grimberg Reviewed-by: Devesh Sharma Tested-By: Devesh Sharma Reviewed-by: Doug Ledford Signed-off-by: Anna Schumaker net/sunrpc/xprtrdma/fmr_ops.c | 6 ++++-- net/sunrpc/xprtrdma/frwr_ops.c | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) commit acb9da7a57d7905c46d0b69d30fcf944eae261de Author: Chuck Lever Date: Tue May 26 11:53:23 2015 -0400 xprtrdma: Stack relief in fmr_op_map() fmr_op_map() declares a 64 element array of u64 in automatic storage. This is 512 bytes (8 * 64) on the stack. Instead, when FMR memory registration is in use, pre-allocate a physaddr array for each rpcrdma_mw. This is a pre-requisite for increasing the r/wsize maximum for FMR on platforms with 4KB pages. Signed-off-by: Chuck Lever Reviewed-by: Steve Wise Reviewed-by: Sagi Grimberg Reviewed-by: Devesh Sharma Tested-By: Devesh Sharma Reviewed-by: Doug Ledford Signed-off-by: Anna Schumaker net/sunrpc/xprtrdma/fmr_ops.c | 32 ++++++++++++++++++++++---------- net/sunrpc/xprtrdma/xprt_rdma.h | 7 ++++++- 2 files changed, 28 insertions(+), 11 deletions(-) commit 58d1dcf5a8ebb0ce8a521286a99efdd636012bf0 Author: Chuck Lever Date: Tue May 26 11:53:13 2015 -0400 xprtrdma: Split rb_lock /proc/lock_stat showed contention between rpcrdma_buffer_get/put and the MR allocation functions during I/O intensive workloads. Now that MRs are no longer allocated in rpcrdma_buffer_get(), there's no reason the rb_mws list has to be managed using the same lock as the send/receive buffers. Split that lock. The new lock does not need to disable interrupts because buffer get/put is never called in an interrupt context. struct rpcrdma_buffer is re-arranged to ensure rb_mwlock and rb_mws are always in a different cacheline than rb_lock and the buffer pointers. Signed-off-by: Chuck Lever Reviewed-by: Steve Wise Reviewed-by: Sagi Grimberg Tested-By: Devesh Sharma Reviewed-by: Doug Ledford Signed-off-by: Anna Schumaker net/sunrpc/xprtrdma/fmr_ops.c | 1 + net/sunrpc/xprtrdma/frwr_ops.c | 1 + net/sunrpc/xprtrdma/verbs.c | 10 ++++------ net/sunrpc/xprtrdma/xprt_rdma.h | 16 +++++++++------- 4 files changed, 15 insertions(+), 13 deletions(-) commit 7e53df111beea8db2543424d07bdee2a630698c3 Author: Chuck Lever Date: Tue May 26 11:53:04 2015 -0400 xprtrdma: Remove rpcrdma_ia::ri_memreg_strategy Clean up: This field is no longer used. Signed-off-by: Chuck Lever Reviewed-by: Steve Wise Reviewed-by: Sagi Grimberg Reviewed-by: Devesh Sharma Tested-By: Devesh Sharma Reviewed-by: Doug Ledford Signed-off-by: Anna Schumaker include/linux/sunrpc/xprtrdma.h | 3 ++- net/sunrpc/xprtrdma/verbs.c | 3 --- net/sunrpc/xprtrdma/xprt_rdma.h | 1 - 3 files changed, 2 insertions(+), 5 deletions(-) commit 3269a94b6206d4fe10dd96cb37e6b0035ee42cd2 Author: Chuck Lever Date: Tue May 26 11:52:54 2015 -0400 xprtrdma: Remove ->ro_reset An RPC can exit at any time. When it does so, xprt_rdma_free() is called, and it calls ->op_unmap(). If ->ro_reset() is running due to a transport disconnect, the two methods can race while processing the same rpcrdma_mw. The results are unpredictable. Because of this, in previous patches I've altered ->ro_map() to handle MR reset. ->ro_reset() is no longer needed and can be removed. Signed-off-by: Chuck Lever Reviewed-by: Steve Wise Reviewed-by: Sagi Grimberg Reviewed-by: Devesh Sharma Tested-By: Devesh Sharma Reviewed-by: Doug Ledford Signed-off-by: Anna Schumaker net/sunrpc/xprtrdma/fmr_ops.c | 23 ---------------------- net/sunrpc/xprtrdma/frwr_ops.c | 39 -------------------------------------- net/sunrpc/xprtrdma/physical_ops.c | 6 ------ net/sunrpc/xprtrdma/verbs.c | 2 -- net/sunrpc/xprtrdma/xprt_rdma.h | 1 - 5 files changed, 71 deletions(-) commit 06b00880b0abd60c595088ae0bd7d210ee953f15 Author: Chuck Lever Date: Tue May 26 11:52:44 2015 -0400 xprtrdma: Remove unused LOCAL_INV recovery logic Clean up: Remove functions no longer used to recover broken FRMRs. Signed-off-by: Chuck Lever Reviewed-by: Steve Wise Reviewed-by: Sagi Grimberg Reviewed-by: Devesh Sharma Tested-By: Devesh Sharma Reviewed-by: Doug Ledford Signed-off-by: Anna Schumaker net/sunrpc/xprtrdma/verbs.c | 109 -------------------------------------------- 1 file changed, 109 deletions(-) commit c14d86e5913564a6e9313a78604a7caf899c063f Author: Chuck Lever Date: Tue May 26 11:52:35 2015 -0400 xprtrdma: Acquire MRs in rpcrdma_register_external() Acquiring 64 MRs in rpcrdma_buffer_get() while holding the buffer pool lock is expensive, and unnecessary because most modern adapters can transfer 100s of KBs of payload using just a single MR. Instead, acquire MRs one-at-a-time as chunks are registered, and return them to rb_mws immediately during deregistration. Note: commit 539431a437d2 ("xprtrdma: Don't invalidate FRMRs if registration fails") is reverted: There is now a valid case where registration can fail (with -ENOMEM) but the QP is still in RTS. Signed-off-by: Chuck Lever Reviewed-by: Steve Wise Tested-By: Devesh Sharma Reviewed-by: Doug Ledford Signed-off-by: Anna Schumaker net/sunrpc/xprtrdma/frwr_ops.c | 100 ++++++++++++++++++++++++++++++++++++----- net/sunrpc/xprtrdma/rpc_rdma.c | 3 -- net/sunrpc/xprtrdma/verbs.c | 21 +-------- 3 files changed, 89 insertions(+), 35 deletions(-) commit 951e721ca0d665ece6175b8d8edf93cf7b215bd5 Author: Chuck Lever Date: Tue May 26 11:52:25 2015 -0400 xprtrdma: Introduce an FRMR recovery workqueue After a transport disconnect, FRMRs can be left in an undetermined state. In particular, the MR's rkey is no good. Currently, FRMRs are fixed up by the transport connect worker, but that can race with ->ro_unmap if an RPC happens to exit while the transport connect worker is running. A better way of dealing with broken FRMRs is to detect them before they are re-used by ->ro_map. Such FRMRs are either already invalid or are owned by the sending RPC, and thus no race with ->ro_unmap is possible. Introduce a mechanism for handing broken FRMRs to a workqueue to be reset in a context that is appropriate for allocating resources (ie. an ib_alloc_fast_reg_mr() API call). This mechanism is not yet used, but will be in subsequent patches. Signed-off-by: Chuck Lever Reviewed-by: Steve Wise Reviewed-By: Devesh Sharma Tested-By: Devesh Sharma Reviewed-by: Doug Ledford Signed-off-by: Anna Schumaker net/sunrpc/xprtrdma/frwr_ops.c | 71 ++++++++++++++++++++++++++++++++++++++++- net/sunrpc/xprtrdma/transport.c | 11 +++++-- net/sunrpc/xprtrdma/xprt_rdma.h | 5 +++ 3 files changed, 84 insertions(+), 3 deletions(-) commit fc7fbb59e70c65e2bd6170a6de139d5de62dd2be Author: Chuck Lever Date: Tue May 26 11:52:16 2015 -0400 xprtrdma: Acquire FMRs in rpcrdma_fmr_register_external() Acquiring 64 FMRs in rpcrdma_buffer_get() while holding the buffer pool lock is expensive, and unnecessary because FMR mode can transfer up to a 1MB payload using just a single ib_fmr. Instead, acquire ib_fmrs one-at-a-time as chunks are registered, and return them to rb_mws immediately during deregistration. Signed-off-by: Chuck Lever Reviewed-by: Steve Wise Tested-By: Devesh Sharma Reviewed-by: Doug Ledford Signed-off-by: Anna Schumaker net/sunrpc/xprtrdma/fmr_ops.c | 52 +++++++++++++++++++++++++++++++++++++++---- net/sunrpc/xprtrdma/verbs.c | 26 ---------------------- 2 files changed, 48 insertions(+), 30 deletions(-) commit 346aa66b2ab7988ca105f7fee5a968c11712b0d8 Author: Chuck Lever Date: Tue May 26 11:52:06 2015 -0400 xprtrdma: Introduce helpers for allocating MWs We eventually want to handle allocating MWs one at a time, as needed, instead of grabbing 64 and throwing them at each RPC in the pipeline. Add a helper for grabbing an MW off rb_mws, and a helper for returning an MW to rb_mws. These will be used in a subsequent patch. Signed-off-by: Chuck Lever Reviewed-by: Steve Wise Reviewed-by: Sagi Grimberg Tested-By: Devesh Sharma Reviewed-by: Doug Ledford Signed-off-by: Anna Schumaker net/sunrpc/xprtrdma/verbs.c | 31 +++++++++++++++++++++++++++++++ net/sunrpc/xprtrdma/xprt_rdma.h | 2 ++ 2 files changed, 33 insertions(+) commit 89e0d11258e9a69d550fd4bfb4609e955bdd84ee Author: Chuck Lever Date: Tue May 26 11:51:56 2015 -0400 xprtrdma: Use ib_device pointer safely The connect worker can replace ri_id, but prevents ri_id->device from changing during the lifetime of a transport instance. The old ID is kept around until a new ID is created and the ->device is confirmed to be the same. Cache a copy of ri_id->device in rpcrdma_ia and in rpcrdma_rep. The cached copy can be used safely in code that does not serialize with the connect worker. Other code can use it to save an extra address generation (one pointer dereference instead of two). Signed-off-by: Chuck Lever Reviewed-by: Steve Wise Tested-By: Devesh Sharma Reviewed-by: Doug Ledford Signed-off-by: Anna Schumaker net/sunrpc/xprtrdma/fmr_ops.c | 8 ++--- net/sunrpc/xprtrdma/frwr_ops.c | 12 ++++---- net/sunrpc/xprtrdma/physical_ops.c | 8 ++--- net/sunrpc/xprtrdma/verbs.c | 61 ++++++++++++++++++++------------------ net/sunrpc/xprtrdma/xprt_rdma.h | 2 ++ 5 files changed, 43 insertions(+), 48 deletions(-) commit 494ae30d2a47cf439c6a680cc62e09ae0c51d190 Author: Chuck Lever Date: Tue May 26 11:51:46 2015 -0400 xprtrdma: Remove rr_func A posted rpcrdma_rep never has rr_func set to anything but rpcrdma_reply_handler. Signed-off-by: Chuck Lever Tested-By: Devesh Sharma Reviewed-by: Doug Ledford Signed-off-by: Anna Schumaker net/sunrpc/xprtrdma/rpc_rdma.c | 1 - net/sunrpc/xprtrdma/transport.c | 3 --- net/sunrpc/xprtrdma/verbs.c | 10 +--------- net/sunrpc/xprtrdma/xprt_rdma.h | 1 - 4 files changed, 1 insertion(+), 14 deletions(-) commit fed171b35c7c0777fa0d6aeb3f25cc9b0d5f56ad Author: Chuck Lever Date: Tue May 26 11:51:37 2015 -0400 xprtrdma: Replace rpcrdma_rep::rr_buffer with rr_rxprt Clean up: Instead of carrying a pointer to the buffer pool and the rpc_xprt, carry a pointer to the controlling rpcrdma_xprt. Signed-off-by: Chuck Lever Reviewed-by: Steve Wise Reviewed-by: Sagi Grimberg Tested-By: Devesh Sharma Reviewed-by: Doug Ledford Signed-off-by: Anna Schumaker net/sunrpc/xprtrdma/rpc_rdma.c | 4 ++-- net/sunrpc/xprtrdma/transport.c | 7 ++----- net/sunrpc/xprtrdma/verbs.c | 8 +++++--- net/sunrpc/xprtrdma/xprt_rdma.h | 3 +-- 4 files changed, 10 insertions(+), 12 deletions(-) commit 6d44698d548b1d238836cfb3b090b0c6b16db3cf Author: Chuck Lever Date: Tue May 26 11:51:27 2015 -0400 xprtrdma: Warn when there are orphaned IB objects WARN during transport destruction if ib_dealloc_pd() fails. This is a sign that xprtrdma orphaned one or more RDMA API objects at some point, which can pin lower layer kernel modules and cause shutdown to hang. Signed-off-by: Chuck Lever Reviewed-by: Steve Wise Reviewed-by: Sagi Grimberg Reviewed-by: Devesh Sharma Tested-By: Devesh Sharma Reviewed-by: Doug Ledford Signed-off-by: Anna Schumaker net/sunrpc/xprtrdma/verbs.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit ef5294fd250adc8c340ffeb410b62e1b777ddf6f Author: Julian Scheel Date: Fri Jun 12 15:57:32 2015 +0200 ASoC: wm8523: Set bclk ratio for master mode When running in master mode the bclk divider must be configured to generate a sane bitclock. Pick the smallest fs multiplicator, which can hold all transmitted bits. Signed-off-by: Julian Scheel Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8523.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) commit c64301a230a64dfc2fcf4581cd98a2d703f3c057 Author: Jiang Liu Date: Mon Jun 1 16:05:23 2015 +0800 genirq: Introduce helper function irq_data_get_affinity_mask() Introduce helper function irq_data_get_affinity_mask() and irq_get_affinity_mask() to hide implementation details, so we could move field 'affinity' from struct irq_data into struct irq_common_data later. Signed-off-by: Jiang Liu Acked-by: Russell King 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-15-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner include/linux/irq.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 6783011b48096b9a0c239d0f7645f93070b6eefd Author: Jiang Liu Date: Mon Jun 1 16:05:13 2015 +0800 genirq: Introduce helper function irq_data_get_node() Introduce helper function irq_data_get_node() and variants thereof to hide struct irq_data implementation details. Convert the core code to use them. 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-5-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner include/linux/irq.h | 5 +++++ kernel/irq/internals.h | 5 +++++ kernel/irq/irqdesc.c | 8 +------- kernel/irq/irqdomain.c | 3 ++- kernel/irq/manage.c | 2 +- kernel/irq/proc.c | 2 +- 6 files changed, 15 insertions(+), 10 deletions(-) commit 0d0b4c866bcce647f40d73efe5e90aeeb079050a Author: Jiang Liu Date: Mon Jun 1 16:05:12 2015 +0800 genirq: Introduce struct irq_common_data to host shared irq data With the introduction of hierarchy irqdomain, struct irq_data becomes per-chip instead of per-irq and there may be multiple irq_datas associated with the same irq. Some per-irq data stored in struct irq_data now may get duplicated into multiple irq_datas, and causes inconsistent view. So introduce struct irq_common_data to host per-irq common data and to achieve consistent view among irq_chips. 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-4-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner include/linux/irq.h | 54 +++++++++++++++++++++++++++++-------------------- include/linux/irqdesc.h | 3 ++- kernel/irq/internals.h | 10 ++++----- kernel/irq/irqdesc.c | 1 + kernel/irq/irqdomain.c | 1 + 5 files changed, 41 insertions(+), 28 deletions(-) commit 77ed42f18edd486e9994ccd1f174076309a6343f Author: Jiang Liu Date: Mon Jun 1 16:05:11 2015 +0800 genirq: Prevent crash in irq_move_irq() The functions irq_move_irq() and irq_move_masked_irq() expect that the caller passes the top-level irq_data to them when hierarchical irqdomains are enabled. But that's not true when called from apic_ack_edge(), which results in a null pointer dereference by idata->chip->irq_mask(idata). Instead of fixing callers to passing top-level irq_data, we rather change irq_move_irq()/irq_move_masked_irq() to accept any irq_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 Link: http://lkml.kernel.org/r/1433145945-789-3-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner kernel/irq/migration.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit 7bbf1dd24b17b9ec4f47c43ce4e05bf190745553 Author: Jiang Liu Date: Mon Jun 1 16:05:10 2015 +0800 genirq: Enhance irq_data_to_desc() to support hierarchy irqdomain For irq associated with hierarchy irqdomains, there will be multiple irq_datas for one irq_desc. So enhance irq_data_to_desc() to support hierarchy irqdomain. Also export irq_data_to_desc() as an inline function for later reuse. 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: Marc Zyngier Link: http://lkml.kernel.org/r/1433145945-789-2-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner include/linux/irqdesc.h | 9 +++++++++ kernel/irq/internals.h | 2 -- 2 files changed, 9 insertions(+), 2 deletions(-) commit 81781e681551ed3f56c9202e9adc7ef941cba654 Author: Herbert Xu Date: Thu Jun 11 11:28:34 2015 +0800 crypto: picoxcell - Clamp AEAD SG list by input length Currently the driver assumes that the SG list contains exactly the number of bytes required. This assumption is incorrect. Up until now this has been harmless. However with the new AEAD interface this now breaks as the AD SG list contains more bytes than just the AD. This patch fixes this by always clamping the AD SG list by the specified AD length. Signed-off-by: Herbert Xu drivers/crypto/picoxcell_crypto.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) commit 1a5b951f256d772a4ab758bda3a0667b788c0d2a Author: Herbert Xu Date: Thu Jun 11 11:28:33 2015 +0800 crypto: picoxcell - Make use of sg_nents_for_len This patch makes use of the new sg_nents_for_len helper to replace the custom sg_count function. Signed-off-by: Herbert Xu drivers/crypto/picoxcell_crypto.c | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) commit 72071fe43e8dad13f2a30897876d72463d46d065 Author: Herbert Xu Date: Thu Jun 11 11:28:32 2015 +0800 crypto: picoxcell - Include linux/sizes.h This driver uses SZ_64K so it should include linux/sizes.h rather than relying on others to pull it in for it. Signed-off-by: Herbert Xu drivers/crypto/picoxcell_crypto.c | 1 + 1 file changed, 1 insertion(+) commit 4946b0430c6933383d33adf101529b7085a4a682 Author: Philipp Zabel Date: Wed May 20 11:34:08 2015 +0200 drm/panel: simple: Add bus format for HannStar HSD100PXN1 This patch adds the bus_format field to the HSD100PXN1 panel structure. Signed-off-by: Philipp Zabel Signed-off-by: Thierry Reding drivers/gpu/drm/panel/panel-simple.c | 1 + 1 file changed, 1 insertion(+) commit c0d607e5a2b266131c7ef7aba10e0cdf50ee24c0 Author: Eric Nelson Date: Mon Apr 13 15:09:26 2015 -0700 drm/panel: simple: Add display timing for HannStar HSD100PXN1 Add support for the Hannstar HSD100PXN1 to the DRM simple panel driver. The HSD100PXN1 is an XGA (1024x768) panel with an 18-bit LVDS interface. It supports pixel clocks in the range of 55-75 MHz. This panel is offered for sale by Freescale as a companion part to its' i.MX5x Quick Start board and i.MX6 SABRE platforms with under the name MCIMX-LVDS1. Signed-off-by: Eric Nelson Signed-off-by: Thierry Reding .../bindings/panel/hannstar,hsd100pxn1.txt | 7 ++++++ drivers/gpu/drm/panel/panel-simple.c | 26 ++++++++++++++++++++++ 2 files changed, 33 insertions(+) commit c7d6b573fe55fdccd60bfe082dda8cace9bcaa3f Author: Vladimir Murzin Date: Fri Jun 12 15:25:04 2015 +0100 arm64: mm: remove reference to tlb.S from comment block tlb.S has been removed since fa48e6f "arm64: mm: Optimise tlb flush logic where we have >4K granule", so align comment with that. Signed-off-by: Vladimir Murzin Signed-off-by: Catalin Marinas arch/arm64/include/asm/tlbflush.h | 2 -- 1 file changed, 2 deletions(-) commit 565630d503ef24e44c252bed55571b3a0d68455f Author: Catalin Marinas Date: Fri Jun 12 11:24:41 2015 +0100 arm64: Do not attempt to use init_mm in reset_context() After secondary CPU boot or hotplug, the active_mm of the idle thread is &init_mm. The init_mm.pgd (swapper_pg_dir) is only meant for TTBR1_EL1 and must not be set in TTBR0_EL1. Since when active_mm == &init_mm the TTBR0_EL1 is already set to the reserved value, there is no need to perform any context reset. Signed-off-by: Catalin Marinas Cc: arch/arm64/mm/context.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 8a8005e3e19915559b542bf85cc1b17024ee1d31 Author: Thierry Reding Date: Tue Jun 2 13:13:01 2015 +0200 drm/tegra: dpaux: Registers are 32-bit Use a sized unsigned 32-bit data type (u32) to store register contents. The DPAUX registers are 32 bits wide irrespective of the architecture's data width. Signed-off-by: Thierry Reding drivers/gpu/drm/tegra/dpaux.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) commit fd73caa5e72f0fcf9732b18d123eead96286fd5b Author: Thierry Reding Date: Tue Apr 14 12:52:36 2015 +0200 drm/tegra: gem: Flush pages after allocation Pages allocated from shmemfs don't end up being cleared and flushed on ARMv7, so they must be flushed explicitly. Use the DMA mapping API for that purpose, even though it's not used for anything else. Signed-off-by: Thierry Reding drivers/gpu/drm/tegra/gem.c | 25 ++++++++----------------- 1 file changed, 8 insertions(+), 17 deletions(-) commit 4553f733c68b66ef49f838aa24470d58caf76ff5 Author: Thierry Reding Date: Mon Jan 19 16:15:04 2015 +0100 drm/tegra: gem: Take into account IOMMU aperture The IOMMU may not always be able to address 2 GiB of memory. On Tegra20, the GART supports 32 MiB starting at 0x58000000. Also the aperture on Tegra30 and later is in fact the full 4 GiB, rather than just 2 GiB as currently assumed. Signed-off-by: Thierry Reding drivers/gpu/drm/tegra/drm.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit 3c1dae0a07c651526f8e878d223a88f82caa5a50 Author: Thierry Reding Date: Thu Jun 11 18:33:48 2015 +0200 drm/tegra: dpaux: Fix transfers larger than 4 bytes The DPAUX read/write FIFO registers aren't sequential in the register space, causing transfers larger than 4 bytes to cause accesses to non- existing FIFO registers. Fixes: 6b6b604215c6 ("drm/tegra: Add eDP support") Signed-off-by: Thierry Reding drivers/gpu/drm/tegra/dpaux.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) commit 8a14849b4a355278f0b7baf6e2da7dc7144a23e8 Author: Marc Zyngier Date: Fri Jun 12 12:06:37 2015 +0100 arm64: KVM: Switch vgic save/restore to alternative_insn So far, we configured the world-switch by having a small array of pointers to the save and restore functions, depending on the GIC used on the platform. Loading these values each time is a bit silly (they never change), and it makes sense to rely on the instruction patching instead. This leads to a nice cleanup of the code. Acked-by: Will Deacon Reviewed-by: Christoffer Dall Signed-off-by: Marc Zyngier Signed-off-by: Catalin Marinas arch/arm/include/asm/kvm_host.h | 5 ----- arch/arm64/include/asm/kvm_asm.h | 5 ----- arch/arm64/include/asm/kvm_host.h | 23 ----------------------- arch/arm64/kernel/asm-offsets.c | 1 - arch/arm64/kvm/hyp.S | 18 ++++-------------- virt/kvm/arm/vgic.c | 3 --- 6 files changed, 4 insertions(+), 51 deletions(-) commit 94a9e04aa16abd1194d9b4158c618ba87f5d01e6 Author: Marc Zyngier Date: Fri Jun 12 12:06:36 2015 +0100 arm64: alternative: Introduce feature for GICv3 CPU interface Add a new item to the feature set (ARM64_HAS_SYSREG_GIC_CPUIF) to indicate that we have a system register GIC CPU interface This will help KVM switching to alternative instruction patching. Reviewed-by: Andre Przywara Reviewed-by: Christoffer Dall Acked-by: Will Deacon Signed-off-by: Marc Zyngier Signed-off-by: Catalin Marinas arch/arm64/include/asm/cpufeature.h | 8 +++++++- arch/arm64/kernel/cpufeature.c | 16 ++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) commit 81bb773faed7f5f0e82f14cdfcfe4e89fbea0e19 Author: Terry Junge Date: Mon Jun 8 14:27:57 2015 -0700 HID: plantronics: Update to map volume up/down controls Update Kconfig with enhanced help text for hid-plantronics driver. Update hid-plantronics.c to identify device type and correctly map either the vendor unique or consumer control volume up/down usages to KEY_VOLUMEUP and KEY_VOLUMEDOWN events. Unmapped usages are ignored to prevent core mapping of unknown usages to random mouse events. Tested on ChromeBox/ChromeBook with various Plantronics devices. Signed-off-by: Terry Junge Signed-off-by: Jiri Kosina drivers/hid/Kconfig | 7 ++- drivers/hid/hid-plantronics.c | 132 +++++++++++++++++++++++++++++++++++++++--- 2 files changed, 130 insertions(+), 9 deletions(-) commit a077e81ec61e07a7f86997d045109f06719fbffe Author: Zidan Wang Date: Thu Jun 11 19:14:36 2015 +0800 ASoC: wm8960: the enum of "DAC Polarity" should be wm8960_enum[1] the enum of "DAC Polarity" should be wm8960_enum[1]. Signed-off-by: Zidan Wang Acked-by: Charles Keepax Signed-off-by: Mark Brown Cc: stable@vger.kernel.org sound/soc/codecs/wm8960.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4983a501afede12f95d26e1e213f8f2e9eda1871 Author: Maxime Ripard Date: Mon May 18 13:46:15 2015 +0200 dmaengine: Revert "drivers/dma: remove unused support for MEMSET operations" This reverts commit 48a9db462d99494583dad829969616ac90a8df4e. Some platforms actually need support for the memset operations. Bring it back. Signed-off-by: Maxime Ripard Signed-off-by: Vinod Koul drivers/dma/dmaengine.c | 2 ++ include/linux/dmaengine.h | 24 ++++++++++++++++++++++++ 2 files changed, 26 insertions(+) commit 5abecfa5e969722ab85a173168cae9e0f4cedbfc Author: Maxime Ripard Date: Wed May 27 16:01:53 2015 +0200 dmaengine: hdmac: Implement interleaved transfers The AT91 HDMAC controller supports interleaved transfers through what's called the Picture-in-Picture mode, which allows to transfer a squared portion of a framebuffer. This means that this interleaved transfer only supports interleaved transfers which have a transfer size and ICGs that are fixed across all the chunks. While this is a quite drastic restriction of the interleaved transfers compared to what the dmaengine API allows, this is still useful, and our driver will only reject transfers that do not conform to this. Signed-off-by: Maxime Ripard Acked-by: Ludovic Desroches Signed-off-by: Vinod Koul drivers/dma/at_hdmac.c | 106 ++++++++++++++++++++++++++++++++++++++++++++ drivers/dma/at_hdmac_regs.h | 5 +++ 2 files changed, 111 insertions(+) commit 87d001ef5366c4a24f7a1340246c4ce68190581c Author: Maxime Ripard Date: Wed May 27 16:01:52 2015 +0200 dmaengine: Move icg helpers to global header Now that we can have ICGs set for both the source and destination (using the icg field of struct data_chunk) or for only the source or the destination (using the dst_icg or src_icg respectively), and that these fields can be ignored depending on other parameters (src_inc, src_sgl, etc.), the logic to get the actual ICG value can be quite tricky. The XDMAC driver was already implementing it, but since we will need it in other drivers, we can move it to the main header file. Signed-off-by: Maxime Ripard Acked-by: Ludovic Desroches Signed-off-by: Vinod Koul drivers/dma/at_xdmac.c | 46 ++++------------------------------------------ include/linux/dmaengine.h | 27 +++++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 42 deletions(-) commit 482cfc318559e2527dfd8513582d2fdb276e47c2 Author: Florian Westphal Date: Thu Jun 11 01:34:55 2015 +0200 netfilter: xtables: avoid percpu ruleset duplication We store the rule blob per (possible) cpu. Unfortunately this means we can waste lot of memory on big smp machines. ipt_entry structure ('rule head') is 112 byte, so e.g. with maxcpu=64 one single rule eats close to 8k RAM. Since previous patch made counters percpu it appears there is nothing left in the rule blob that needs to be percpu. On my test system (144 possible cpus, 400k dummy rules) this change saves close to 9 Gigabyte of RAM. Reported-by: Marcelo Ricardo Leitner Acked-by: Jesper Dangaard Brouer Signed-off-by: Florian Westphal Acked-by: Eric Dumazet Signed-off-by: Pablo Neira Ayuso include/linux/netfilter/x_tables.h | 4 +-- net/ipv4/netfilter/arp_tables.c | 50 +++++++++-------------------- net/ipv4/netfilter/ip_tables.c | 64 ++++++++++--------------------------- net/ipv6/netfilter/ip6_tables.c | 65 ++++++++++---------------------------- net/netfilter/x_tables.c | 23 +++++--------- 5 files changed, 57 insertions(+), 149 deletions(-) commit 71ae0dff02d756e4d2ca710b79f2ff5390029a5f Author: Florian Westphal Date: Thu Jun 11 01:34:54 2015 +0200 netfilter: xtables: use percpu rule counters The binary arp/ip/ip6tables ruleset is stored per cpu. The only reason left as to why we need percpu duplication are the rule counters embedded into ipt_entry et al -- since each cpu has its own copy of the rules, all counters can be lockless. The downside is that the more cpus are supported, the more memory is required. Rules are not just duplicated per online cpu but for each possible cpu, i.e. if maxcpu is 144, then rule is duplicated 144 times, not for the e.g. 64 cores present. To save some memory and also improve utilization of shared caches it would be preferable to only store the rule blob once. So we first need to separate counters and the rule blob. Instead of using entry->counters, allocate this percpu and store the percpu address in entry->counters.pcnt on CONFIG_SMP. This change makes no sense as-is; it is merely an intermediate step to remove the percpu duplication of the rule set in a followup patch. Suggested-by: Eric Dumazet Acked-by: Jesper Dangaard Brouer Reported-by: Marcelo Ricardo Leitner Signed-off-by: Florian Westphal Acked-by: Eric Dumazet Signed-off-by: Pablo Neira Ayuso include/linux/netfilter/x_tables.h | 49 ++++++++++++++++++++++++++++++++++++++ net/ipv4/netfilter/arp_tables.c | 32 +++++++++++++++++++++---- net/ipv4/netfilter/ip_tables.c | 31 ++++++++++++++++++++---- net/ipv6/netfilter/ip6_tables.c | 31 ++++++++++++++++++++---- 4 files changed, 129 insertions(+), 14 deletions(-) commit 36e4f839de59b6216a16cdf5c1d3263f4dbd9421 Author: Stephen Boyd Date: Thu Jun 11 17:37:06 2015 -0700 regulator: Add input current limit support Some regulators can limit their input current (typically annotated as ilim). Add an op (set_input_current_limit) and a DT property + constraint to support this. Signed-off-by: Stephen Boyd Signed-off-by: Mark Brown Documentation/devicetree/bindings/regulator/regulator.txt | 1 + drivers/regulator/core.c | 9 +++++++++ drivers/regulator/of_regulator.c | 4 ++++ include/linux/regulator/driver.h | 3 +++ include/linux/regulator/machine.h | 2 ++ 5 files changed, 19 insertions(+) commit 57f66b78860968fc7eddc9ce25f8e57f7e5000bd Author: Stephen Boyd Date: Thu Jun 11 17:37:05 2015 -0700 regulator: Add soft start support Some regulators support a "soft start" feature where the voltage ramps up slowly when the regulator is enabled. Add an op (set_soft_start) and a DT property + constraint to support this. Signed-off-by: Stephen Boyd Signed-off-by: Mark Brown Documentation/devicetree/bindings/regulator/regulator.txt | 1 + drivers/regulator/core.c | 8 ++++++++ drivers/regulator/of_regulator.c | 3 +++ include/linux/regulator/driver.h | 2 ++ include/linux/regulator/machine.h | 1 + 5 files changed, 15 insertions(+) commit d7b597421519d6f680eb8e152a0d8447466ee2d6 Author: Florian Westphal Date: Fri Jun 5 13:27:13 2015 +0200 netfilter: bridge: restore vlan tag when refragmenting If bridge netfilter is used with both bridge-nf-call-iptables and bridge-nf-filter-vlan-tagged enabled then ip fragments in VLAN frames are sent without the vlan header. This has never worked reliably. Turns out this relied on pre-3.5 behaviour where skb frag_list was used to store ip fragments; ip_fragment() then re-used these skbs. But since commit 3cc4949269e01f39443d0fcfffb5bc6b47878d45 ("ipv4: use skb coalescing in defragmentation") this is no longer the case. ip_do_fragment now needs to allocate new skbs, but these don't contain the vlan tag information anymore. Fix it by storing vlan information of the ressembled skb in the br netfilter percpu frag area, and restore them for each of the fragments. Fixes: 3cc4949269e01f3 ("ipv4: use skb coalescing in defragmentation") Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso net/bridge/br_netfilter.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 33b1f31392861947fa2a2a57c3a39ab63b8c9f9d Author: Florian Westphal Date: Fri Jun 5 13:28:38 2015 +0200 net: ip_fragment: remove BRIDGE_NETFILTER mtu special handling since commit d6b915e29f4adea9 ("ip_fragment: don't forward defragmented DF packet") the largest fragment size is available in the IPCB. Therefore we no longer need to care about 'encapsulation' overhead of stripped PPPOE/VLAN headers since ip_do_fragment doesn't use device mtu in such cases. Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso include/linux/netfilter_bridge.h | 7 ------- net/bridge/br_netfilter.c | 7 +++++++ net/ipv4/ip_output.c | 4 ---- 3 files changed, 7 insertions(+), 11 deletions(-) commit efb6de9b4ba0092b2c55f6a52d16294a8a698edd Author: Bernhard Thaler Date: Sat May 30 15:30:16 2015 +0200 netfilter: bridge: forward IPv6 fragmented packets IPv6 fragmented packets are not forwarded on an ethernet bridge with netfilter ip6_tables loaded. e.g. steps to reproduce 1) create a simple bridge like this modprobe br_netfilter brctl addbr br0 brctl addif br0 eth0 brctl addif br0 eth2 ifconfig eth0 up ifconfig eth2 up ifconfig br0 up 2) place a host with an IPv6 address on each side of the bridge set IPv6 address on host A: ip -6 addr add fd01:2345:6789:1::1/64 dev eth0 set IPv6 address on host B: ip -6 addr add fd01:2345:6789:1::2/64 dev eth0 3) run a simple ping command on host A with packets > MTU ping6 -s 4000 fd01:2345:6789:1::2 4) wait some time and run e.g. "ip6tables -t nat -nvL" on the bridge IPv6 fragmented packets traverse the bridge cleanly until somebody runs. "ip6tables -t nat -nvL". As soon as it is run (and netfilter modules are loaded) IPv6 fragmented packets do not traverse the bridge any more (you see no more responses in ping's output). After applying this patch IPv6 fragmented packets traverse the bridge cleanly in above scenario. Signed-off-by: Bernhard Thaler [pablo@netfilter.org: small changes to br_nf_dev_queue_xmit] Signed-off-by: Pablo Neira Ayuso include/linux/netfilter_ipv6.h | 2 + net/bridge/br_netfilter.c | 139 +++++++++++++++++++++++++++++------------ net/bridge/br_private.h | 6 +- net/ipv6/netfilter.c | 3 +- 4 files changed, 108 insertions(+), 42 deletions(-) commit a4611d3b74b56658438ad1de4737a61a46be0fc0 Author: Bernhard Thaler Date: Sat May 30 15:29:38 2015 +0200 netfilter: bridge: re-order check_hbh_len() Prepare check_hbh_len() to be called from newly introduced br_validate_ipv6() in next commit. Signed-off-by: Bernhard Thaler Signed-off-by: Pablo Neira Ayuso net/bridge/br_netfilter.c | 111 +++++++++++++++++++++++----------------------- 1 file changed, 56 insertions(+), 55 deletions(-) commit 23c779b9f9161d6568d3b2fca06e70ad182c480c Author: Stephen Boyd Date: Thu Jun 11 17:37:04 2015 -0700 regulator: Add pull down support Some regulators need to be configured to pull down a resistor when the regulator is disabled. Add an op (set_pull_down) and a DT property + constraint to support this. Signed-off-by: Stephen Boyd Signed-off-by: Mark Brown Documentation/devicetree/bindings/regulator/regulator.txt | 1 + drivers/regulator/core.c | 8 ++++++++ drivers/regulator/of_regulator.c | 2 ++ include/linux/regulator/driver.h | 5 +++++ include/linux/regulator/machine.h | 2 ++ 5 files changed, 18 insertions(+) commit 77d574e7283cfcbb2c134f4431f77dff1c54423e Author: Bernhard Thaler Date: Sat May 30 15:29:02 2015 +0200 netfilter: bridge: rename br_parse_ip_options br_parse_ip_options() does not parse any IP options, it validates IP packets as a whole and the function name is misleading. Rename br_parse_ip_options() to br_validate_ipv4() and remove unneeded commments. Signed-off-by: Bernhard Thaler Signed-off-by: Pablo Neira Ayuso net/bridge/br_netfilter.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit 411ffb4fde80705a9a8db4c2d38dbeef6f5bd689 Author: Bernhard Thaler Date: Sat May 30 15:28:28 2015 +0200 netfilter: bridge: refactor frag_max_size Currently frag_max_size is member of br_input_skb_cb and copied back and forth using IPCB(skb) and BR_INPUT_SKB_CB(skb) each time it is changed or used. Attach frag_max_size to nf_bridge_info and set value in pre_routing and forward functions. Use its value in forward and xmit functions. Signed-off-by: Bernhard Thaler Signed-off-by: Pablo Neira Ayuso include/linux/skbuff.h | 1 + net/bridge/br_netfilter.c | 20 +++++++------------- net/bridge/br_private.h | 1 - 3 files changed, 8 insertions(+), 14 deletions(-) commit 72b31f7271df34c6aab36c01305287924826678f Author: Bernhard Thaler Date: Sat May 30 15:27:40 2015 +0200 netfilter: bridge: detect NAT66 correctly and change MAC address IPv4 iptables allows to REDIRECT/DNAT/SNAT any traffic over a bridge. e.g. REDIRECT $ sysctl -w net.bridge.bridge-nf-call-iptables=1 $ iptables -t nat -A PREROUTING -p tcp -m tcp --dport 8080 \ -j REDIRECT --to-ports 81 This does not work with ip6tables on a bridge in NAT66 scenario because the REDIRECT/DNAT/SNAT is not correctly detected. The bridge pre-routing (finish) netfilter hook has to check for a possible redirect and then fix the destination mac address. This allows to use the ip6tables rules for local REDIRECT/DNAT/SNAT REDIRECT similar to the IPv4 iptables version. e.g. REDIRECT $ sysctl -w net.bridge.bridge-nf-call-ip6tables=1 $ ip6tables -t nat -A PREROUTING -p tcp -m tcp --dport 8080 \ -j REDIRECT --to-ports 81 This patch makes it possible to use IPv6 NAT66 on a bridge. It was tested on a bridge with two interfaces using SNAT/DNAT NAT66 rules. Reported-by: Artie Hamilton Signed-off-by: Sven Eckelmann [bernhard.thaler@wvnet.at: rebased, add indirect call to ip6_route_input()] [bernhard.thaler@wvnet.at: rebased, split into separate patches] Signed-off-by: Bernhard Thaler Signed-off-by: Pablo Neira Ayuso include/linux/netfilter_ipv6.h | 1 + include/linux/skbuff.h | 6 ++++- net/bridge/br_netfilter.c | 55 +++++++++++++++++++++++++++++++++++------- net/ipv6/netfilter.c | 1 + 4 files changed, 53 insertions(+), 10 deletions(-) commit 8cae308d2bc81f95c320e7a345b92be6c238f510 Author: Bernhard Thaler Date: Sat May 30 15:26:57 2015 +0200 netfilter: bridge: re-order br_nf_pre_routing_finish_ipv6() Put br_nf_pre_routing_finish_ipv6() after daddr_was_changed() and br_nf_pre_routing_finish_bridge() to prepare calling these functions from there. Signed-off-by: Bernhard Thaler Signed-off-by: Pablo Neira Ayuso net/bridge/br_netfilter.c | 63 ++++++++++++++++++++++++----------------------- 1 file changed, 32 insertions(+), 31 deletions(-) commit d39a33ed9b9ac0939a5b2ddc4dd3d283373bbe89 Author: Bernhard Thaler Date: Sat May 30 15:26:13 2015 +0200 netfilter: bridge: refactor clearing BRNF_NF_BRIDGE_PREROUTING use binary AND on complement of BRNF_NF_BRIDGE_PREROUTING to unset bit in nf_bridge->mask. Signed-off-by: Bernhard Thaler Signed-off-by: Pablo Neira Ayuso net/bridge/br_netfilter.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 779668450a990d402d316ffd9b7b103fbe5ab6f3 Author: Marcelo Ricardo Leitner Date: Thu May 21 10:57:12 2015 -0300 netfilter: conntrack: warn the user if there is a better helper to use After db29a9508a92 ("netfilter: conntrack: disable generic tracking for known protocols"), if the specific helper is built but not loaded (a standard for most distributions) systems with a restrictive firewall but weak configuration regarding netfilter modules to load, will silently stop working. This patch then puts a warning message so the sysadmin knows where to start looking into. It's a pr_warn_once regardless of protocol itself but it should be enough to give a hint on where to look. Cc: Florian Westphal Cc: Daniel Borkmann Signed-off-by: Marcelo Ricardo Leitner Signed-off-by: Pablo Neira Ayuso net/netfilter/nf_conntrack_proto_generic.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 22a10bca280073f81e9e2d9fed6f90a3bcf00236 Author: Stephen Boyd Date: Thu Jun 11 17:37:03 2015 -0700 regulator: Add system_load constraint Some regulators have a fixed load that isn't captured by consumers that the kernel knows about. Add a constraint to support this. Signed-off-by: Stephen Boyd Signed-off-by: Mark Brown Documentation/devicetree/bindings/regulator/regulator.txt | 2 ++ drivers/regulator/core.c | 2 ++ drivers/regulator/of_regulator.c | 3 +++ include/linux/regulator/machine.h | 3 +++ 4 files changed, 10 insertions(+) commit 85a4bfd895778960dc2d655087ac7ff442b6ab9e Author: Arnaud Pouliquen Date: Fri Jun 5 10:19:05 2015 +0200 ASoC: simple card: Add mclk-fs property in dai-link Add mclk-fs ratio property per dai-link sub node. This will allow to manage several codecs with different ratio. Signed-off-by: Arnaud Pouliquen Signed-off-by: Mark Brown .../devicetree/bindings/sound/simple-card.txt | 6 +++++- sound/soc/generic/simple-card.c | 18 +++++++++++++++--- 2 files changed, 20 insertions(+), 4 deletions(-) commit fd35e37510e940ef360cde5adfa35eb4fdfe018c Author: Fang, Yang A Date: Thu Jun 11 15:51:59 2015 -0700 ASoC: Intel: Added I2C dependency to two BSW machine drivers Fixed below error/warnings sound/built-in.o: In function `rt5645_i2c_probe': >> rt5645.c:(.text+0xe38f5): undefined reference to >> `devm_regmap_init_i2c' sound/built-in.o: In function `rt5645_i2c_driver_exit': >> rt5645.c:(.exit.text+0x60e): undefined reference to `i2c_del_driver' sound/built-in.o: In function `rt5645_i2c_driver_init': >> rt5645.c:(.init.text+0x1a90): undefined reference to >> `i2c_register_driver' Signed-off-by: Fang, Yang A Signed-off-by: Mark Brown sound/soc/intel/Kconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 25c8888ad65f812c847ae58398a5f8f1b20b0a95 Author: Axel Lin Date: Fri Jun 12 17:19:15 2015 +0800 ASoC: rt5645: Use devm_gpiod_get_optional for hp-detect Since hp-detect is optional, use devm_gpiod_get_optional instead. In additional, it should return error if devm_gpiod_get_optional fails. Signed-off-by: Axel Lin Signed-off-by: Mark Brown sound/soc/codecs/rt5645.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 361c1066c939a88e3bb59364f47055b2a5fb3fd4 Author: Qipeng Zha Date: Thu Mar 12 22:28:28 2015 +0800 pwm: lpss: pci: Add support for Broxton platform Add PCI device IDs for Broxton platform. Signed-off-by: Qipeng Zha Acked-by: Mika Westerberg Signed-off-by: Thierry Reding drivers/pwm/pwm-lpss-pci.c | 2 ++ 1 file changed, 2 insertions(+) commit 4decab1aff2e34420c991571634ccdc1c0b43a60 Author: Sebastian Andrzej Siewior Date: Thu Jun 11 15:14:34 2015 +0200 ASoC: Intel: sst: use ; instead of , at the of a C statement This was spotted by Fernando Lopez-Lezcano while he tried to compile a -RT kernel with this driver enabled. "make C=2" would also warn about this. This is is based on his patch. Reported-by: Fernando Lopez-Lezcano Signed-off-by: Sebastian Andrzej Siewior Acked-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/atom/sst/sst.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 061981ff8cc8793d0e6526b9e1c7476322f566ee Author: Alexandre Belloni Date: Thu Jun 11 11:06:09 2015 +0200 ASoC: atmel: properly select dma driver state It is currently possible to have CONFIG_SND_ATMEL_SOC_SSC=y with either CONFIG_SND_ATMEL_SOC_PDC=m or CONFIG_SND_ATMEL_SOC_DMA=m. This results in a driver that compiles but does not link with this kind of error: sound/built-in.o: In function `atmel_ssc_set_audio': (.text+0x87d90): undefined reference to `atmel_pcm_pdc_platform_register' sound/built-in.o: In function `atmel_ssc_put_audio': (.text+0x8879a): undefined reference to `atmel_pcm_pdc_platform_unregister' Introduce new config options SND_ATMEL_SOC_SSC_PDC and SND_ATMEL_SOC_SSC_DMA which should be used by the board drivers and the correct logic to properly select the SND_ATMEL_SOC_PDC and SND_ATMEL_SOC_DMA states. Reported-by: Randy Dunlap Signed-off-by: Alexandre Belloni Signed-off-by: Mark Brown sound/soc/atmel/Kconfig | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) commit 9cf08a6561dda1385d58357abd17d32f2d95ed3e Author: Alexandre Belloni Date: Thu Jun 11 11:06:08 2015 +0200 ASoC: atmel: Revert previous fix for Kconfig limations After discussing with the Kconfig maintainer, we found a better fiw allowing to keep each driver as modules. This reverts commit 0ef9dc139db2fca304ce4eadb5b8fb40d3dedb5e. Signed-off-by: Alexandre Belloni Signed-off-by: Mark Brown sound/soc/atmel/Kconfig | 4 ++-- sound/soc/atmel/Makefile | 8 +++++--- 2 files changed, 7 insertions(+), 5 deletions(-) commit 48edaa4b4fb6e75b890942394f0d0c2571d5c90d Author: Oder Chiou Date: Fri Jun 12 14:47:36 2015 +0800 ASoC: rt5645: Add the device tree parser Modify the RT5645 driver to parse platform data from device tree. This is missing from previous patch in sound/soc/codecs/rt5645.c, that was present in v3. Signed-off-by: Bard Liao Signed-off-by: Oder Chiou Signed-off-by: Mark Brown sound/soc/codecs/rt5645.c | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) commit ffb3722b9778c92fd05b187fd99ec34dbf31e580 Author: Fang, Yang A Date: Thu Jun 11 22:17:57 2015 -0700 ASoC: Intel: Fixed incorrect sst pcm_delay This patch corrected pcm_delay calculation in BSW sst driver Signed-off-by: Fang, Yang A Signed-off-by: Mark Brown sound/soc/intel/atom/sst/sst_drv_interface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bc08f96b5fa783132c278d7a48a1c18feca5813f Author: Oder Chiou Date: Fri Jun 12 17:06:29 2015 +0800 ASoC: rt286: Add RL6347A class device shared support for RT286 The patch separates the IO function from the rt286. It is prepared to share for new chips that support the same IO function. Signed-off-by: Oder Chiou Signed-off-by: Mark Brown sound/soc/codecs/Kconfig | 5 ++ sound/soc/codecs/Makefile | 2 + sound/soc/codecs/rl6347a.c | 128 +++++++++++++++++++++++++++++++++++++++++++++ sound/soc/codecs/rl6347a.h | 32 ++++++++++++ sound/soc/codecs/rt286.c | 97 +++------------------------------- 5 files changed, 173 insertions(+), 91 deletions(-) commit 5d667ef6e01be22343b07a1f5d5a976962e3103e Author: Johan Hedberg Date: Fri Jun 12 13:04:47 2015 +0300 Bluetooth: Remove redundant check for ACL_LINK The encryption key size is read only for BR/EDR (ACL_LINK) connections so there's no need to check for it in the read_enc_key_size_complete() callback. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann net/bluetooth/hci_event.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 70f36507d0c3277e4a5424ca0c6c2a002ae42768 Author: Alexander Aring Date: Fri Jun 12 09:24:00 2015 +0200 mac802154: fix flags BIT definitions order This patch fixes commits ("mac802154: cleanup ieee802154 hardware flags") bcbfd2078d9b11277d9c9ce0c30ba73c750503c9 and ("mac802154: cleanup address filtering flags") 6b70a43c7e0202cf285c864bc9f20f607c42e432 by starting the flags definitions at BIT(0) which is same like the previous behaviour. Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann include/net/mac802154.h | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit e23db65f3dac944d51ba97c8c03a17cfc12390cd Author: Arun Ramamurthy Date: Tue May 26 13:08:17 2015 -0700 pwm: bcm-kona: Don't set polarity in probe Omit setting the polarity to normal during probe and instead use the new pwmchip_add_with_polarity() function to register a PWM chip with inverse polarity by default for all channels to reflect the hardware default. Signed-off-by: Arun Ramamurthy Reviewed-by: Ray Jui Signed-off-by: Scott Branden Signed-off-by: Tim Kryger Signed-off-by: Jonathan Richardson [thierry.reding@gmail.com: use pwmchip_add_with_polarity()] Signed-off-by: Thierry Reding drivers/pwm/pwm-bcm-kona.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit fe89e69050489884b304ea67b580056395dbd2b1 Author: Varka Bhadram Date: Fri Jun 12 09:13:49 2015 +0530 mac802154: cleanup llsec param flags This patch changes the setting of llsec param flag with the BIT macro. Signed-off-by: Varka Bhadram Acked-by: Alexander Aring Signed-off-by: Marcel Holtmann include/net/ieee802154_netdev.h | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit 99e62ef2edcc8f088bbc33e4e855d974898424b6 Author: Krzysztof Kozlowski Date: Sat May 2 00:38:40 2015 +0900 video: fbdev: mxsfb: 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/mxsfb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bd388a2c810282de8a4ff14d3c07816860d72ef9 Author: Krzysztof Kozlowski Date: Sat May 2 00:38:39 2015 +0900 video: fbdev: imxfb: 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/imxfb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e3f6a257a73d03799918a79529632f2df2b4d668 Author: Johan Hedberg Date: Thu Jun 11 13:52:30 2015 +0300 Bluetooth: Use actual encryption key size for SMP over BR/EDR When pairing over SMP over BR/EDR the generated LTK has by default the same key size as the BR/EDR Link Key. Make sure we don't set our Pairing Request/Response max value to anything higher than that. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann net/bluetooth/smp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 821f37666815c9f3a7a4d195ce9184ad4d084942 Author: Johan Hedberg Date: Thu Jun 11 13:52:29 2015 +0300 Bluetooth: Read encryption key size for BR/EDR connections Since Bluetooth 3.0 there's a HCI command available for reading the encryption key size of an BR/EDR connection. This information is essential e.g. for generating an LTK using SMP over BR/EDR, so store it as part of struct hci_conn. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann include/net/bluetooth/hci.h | 10 ++++++ net/bluetooth/hci_event.c | 87 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 97 insertions(+) commit 035ad621b6e625e185fe7b6929788d1d83727079 Author: Johan Hedberg Date: Thu Jun 11 13:52:28 2015 +0300 Bluetooth: Move SC-only check outside of BT_CONFIG branch Checking for SC-only mode requirements when we get an encrypt change event shouldn't be limited to the BT_CONFIG state but done any time encryption changes. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann net/bluetooth/hci_event.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit b1f663c91c9dd96cc3e57ce7e90d29a6b43b9e16 Author: Johan Hedberg Date: Thu Jun 11 13:52:27 2015 +0300 Bluetooth: Add debugfs support for min LE encryption key size This patch adds a debugfs control to set a different minimum LE encryption key size. This is useful for testing that implementation of the encryption key size handling is behaving correctly (e.g. that we get appropriate 'Encryption Key Size' error responses when necessary). Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann net/bluetooth/smp.c | 51 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) commit 2fd36558f02c0606768929fc77671716680d01c2 Author: Johan Hedberg Date: Thu Jun 11 13:52:26 2015 +0300 Bluetooth: Add debugfs support for max LE encryption key size This patch adds a debugfs control to set a different maximum LE encryption key size. This is useful for testing that implementation of the encryption key size handling is behaving correctly. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann net/bluetooth/smp.c | 61 +++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 57 insertions(+), 4 deletions(-) commit 7e46cd705fd8aa458590ad38cf896b5aff525334 Author: Kees Cook Date: Mon Jun 8 15:30:53 2015 -0700 fbdev: omap2: remove potential format string leak Since kobject_init_and_add takes a format string, make sure that the passed in name cannot be accidentally parsed. Signed-off-by: Kees Cook Signed-off-by: Tomi Valkeinen drivers/video/fbdev/omap2/dss/display-sysfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8b2513c313612541085a19551139e68ccab13b3f Author: Simon Wood Date: Tue Jun 9 21:27:07 2015 -0600 HID: sony: PS Move fix report descriptor Fix the report descriptor so that the buttons and trigger are correctly reported. The format of the input report is described here: https://github.com/nitsch/moveonpc/wiki/Input-report The Accelerometers and Gyros (1st frame only) are also reported as axis, but the Magnetometers are NOT as 'fixing' their byte order would break user-space drivers such as PSMoveAPI. It is hoped to resolve this at a future time. Signed-off-by: Simon Wood Signed-off-by: Jiri Kosina drivers/hid/hid-sony.c | 69 ++++++++++++++++++++++++++++++++------------------ 1 file changed, 44 insertions(+), 25 deletions(-) commit 41d2d42534e79561930aa831870352a80cd2e72c Author: Simon Wood Date: Tue Jun 9 21:27:06 2015 -0600 HID: sony: PS3 Move enable LEDs and Rumble via BT The LED and Rumble control only function via BT if the full output report is sent. The large report still functions via USB. Signed-off-by: Simon Wood Signed-off-by: Jiri Kosina drivers/hid/hid-sony.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit 12e9a6d72b3ac33e542b6001ccd891d7b41fff10 Author: Simon Wood Date: Tue Jun 9 21:27:05 2015 -0600 HID: sony: Add support PS3 Move Battery via BT Add support for the battery charge level and state to be read via BT. This is not support via USB as there is no know way to get the device sending 'input' reports over USB. Signed-off-by: Simon Wood Signed-off-by: Jiri Kosina drivers/hid/hid-sony.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) commit b3bca326fa813e4770f74f9ceffe97b72e281475 Author: Simon Wood Date: Tue Jun 9 21:27:04 2015 -0600 HID: sony: Add quirk for MOTION_CONTROLLER_BT Split quirk for PS Move Controller as it has to be treated differently when connected via BT. Signed-off-by: Simon Wood Signed-off-by: Jiri Kosina drivers/hid/hid-sony.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit a4afa8544d49237a7d9e492ead047501de69aa25 Author: Simon Wood Date: Wed Jun 3 09:45:19 2015 -0600 HID: sony: Support PS3 Move Controller when connected via Bluetooth Signed-off-by: Simon Wood Signed-off-by: Jiri Kosina drivers/hid/hid-core.c | 1 + drivers/hid/hid-sony.c | 2 ++ 2 files changed, 3 insertions(+) commit b6a00fae9760a49114016e4764d09e522a5ba5b6 Author: Tim Kryger Date: Tue May 26 13:08:16 2015 -0700 pwm: Add pwmchip_add_with_polarity() API Add a new function to register a PWM chip with channels that have their initial polarity as specified by an additional parameter. This benefits drivers of controllers that by default operate with inversed polarity by removing the need to modify the polarity during initialization. Signed-off-by: Tim Kryger Signed-off-by: Jonathan Richardson [thierry.reding@gmail.com: export pwmchip_add_with_polarity()] Signed-off-by: Thierry Reding drivers/pwm/core.c | 23 ++++++++++++++++++++--- include/linux/pwm.h | 7 +++++++ 2 files changed, 27 insertions(+), 3 deletions(-) commit c1d993341e46867af9412cf7f93f535895bbe3a7 Author: Feng Wu Date: Tue Jun 9 13:20:37 2015 +0800 iommu, x86: Properly handle posted interrupts for IOMMU hotplug Return error when inserting a new IOMMU which doesn't support posted interrupts if posted interrupts are already enabled. Signed-off-by: Feng Wu Reviewed-by: Thomas Gleixner Acked-by: Joerg Roedel Cc: jiang.liu@linux.intel.com Cc: iommu@lists.linux-foundation.org Cc: dwmw2@infradead.org Link: http://lkml.kernel.org/r/1433827237-3382-11-git-send-email-feng.wu@intel.com Signed-off-by: Thomas Gleixner drivers/iommu/intel_irq_remapping.c | 3 +++ 1 file changed, 3 insertions(+) commit 959c870f7305be019d9316bc4e038dc6119d51ad Author: Feng Wu Date: Tue Jun 9 13:20:36 2015 +0800 iommu, x86: Provide irq_remapping_cap() interface Add a new interface irq_remapping_cap() to detect whether irq remapping supports new features, such as VT-d Posted-Interrupts. Export the function, so that KVM code can check this and use this mechanism properly. Signed-off-by: Feng Wu Reviewed-by: Jiang Liu Reviewed-by: Thomas Gleixner Acked-by: Joerg Roedel Cc: iommu@lists.linux-foundation.org Cc: dwmw2@infradead.org Link: http://lkml.kernel.org/r/1433827237-3382-10-git-send-email-feng.wu@intel.com Signed-off-by: Thomas Gleixner arch/x86/include/asm/irq_remapping.h | 2 ++ drivers/iommu/irq_remapping.c | 9 +++++++++ 2 files changed, 11 insertions(+) commit 3d9b98f4ec17ba8d555f1972a3870035a87574a0 Author: Feng Wu Date: Tue Jun 9 13:20:35 2015 +0800 iommu, x86: Setup Posted-Interrupts capability for Intel iommu Set Posted-Interrupts capability for Intel iommu when Interrupt Remapping is enabled, clear it when disabled. Signed-off-by: Feng Wu Reviewed-by: Thomas Gleixner Acked-by: Joerg Roedel Cc: jiang.liu@linux.intel.com Cc: iommu@lists.linux-foundation.org Cc: dwmw2@infradead.org Link: http://lkml.kernel.org/r/1433827237-3382-9-git-send-email-feng.wu@intel.com Signed-off-by: Thomas Gleixner drivers/iommu/intel_irq_remapping.c | 30 ++++++++++++++++++++++++++++++ drivers/iommu/irq_remapping.c | 2 ++ drivers/iommu/irq_remapping.h | 3 +++ 3 files changed, 35 insertions(+) commit 07c09787b26db724c94a912a572a9a4fa66008f3 Author: Feng Wu Date: Tue Jun 9 13:20:34 2015 +0800 iommu, x86: Add cap_pi_support() to detect VT-d PI capability Add helper function to detect VT-d Posted-Interrupts capability. Signed-off-by: Feng Wu Reviewed-by: Jiang Liu Reviewed-by: Thomas Gleixner Acked-by: David Woodhouse Acked-by: Joerg Roedel Cc: iommu@lists.linux-foundation.org Cc: dwmw2@infradead.org Link: http://lkml.kernel.org/r/1433827237-3382-8-git-send-email-feng.wu@intel.com Signed-off-by: Thomas Gleixner include/linux/intel-iommu.h | 1 + 1 file changed, 1 insertion(+) commit d75f152fc389cdd73a6c17f1247fce9052fd579c Author: Feng Wu Date: Tue Jun 9 13:20:33 2015 +0800 iommu, x86: Avoid migrating VT-d posted interrupts When the interrupt is configured in posted mode, the destination of the interrupt is set in the Posted-Interrupts Descriptor and the migration of these interrupts happens during vCPU scheduling. We still update the cached irte, which will be used when changing back to remapping mode, but we avoid writing the table entry as this would overwrite the posted mode entry. Signed-off-by: Feng Wu Reviewed-by: Jiang Liu Reviewed-by: Thomas Gleixner Acked-by: David Woodhouse Acked-by: Joerg Roedel Cc: iommu@lists.linux-foundation.org Cc: dwmw2@infradead.org Link: http://lkml.kernel.org/r/1433827237-3382-7-git-send-email-feng.wu@intel.com Signed-off-by: Thomas Gleixner drivers/iommu/intel_irq_remapping.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 2705a3d2a690c3dd9f58c7d788bc0f432acdeceb Author: Feng Wu Date: Tue Jun 9 13:20:32 2015 +0800 iommu, x86: Save the mode (posted or remapped) of an IRTE Add a new field to struct irq_2_iommu, which captures whether the associated IRTE is in posted mode or remapped mode. We update this field when the IRTE is written into the table. Suggested-by: Thomas Gleixner Signed-off-by: Feng Wu Reviewed-by: Thomas Gleixner Acked-by: Joerg Roedel Cc: jiang.liu@linux.intel.com Cc: iommu@lists.linux-foundation.org Cc: dwmw2@infradead.org Link: http://lkml.kernel.org/r/1433827237-3382-6-git-send-email-feng.wu@intel.com Signed-off-by: Thomas Gleixner drivers/iommu/intel_irq_remapping.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 8541186faf3b59623c86022cc5f21ce9bd1332c5 Author: Feng Wu Date: Tue Jun 9 13:20:31 2015 +0800 iommu, x86: Implement irq_set_vcpu_affinity for intel_ir_chip Interrupt chip callback to set the VCPU affinity for posted interrupts. [ tglx: Use the helper function to copy from the remap irte instead of open coding it. Massage the comment as well ] Signed-off-by: Feng Wu Reviewed-by: Jiang Liu Reviewed-by: Thomas Gleixner Acked-by: David Woodhouse Cc: iommu@lists.linux-foundation.org Cc: joro@8bytes.org Cc: dwmw2@infradead.org Link: http://lkml.kernel.org/r/1433827237-3382-5-git-send-email-feng.wu@intel.com Signed-off-by: Thomas Gleixner arch/x86/include/asm/irq_remapping.h | 5 +++++ drivers/iommu/intel_irq_remapping.c | 37 ++++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) commit bf56027ff4d9e75bf668ae990fe6204d00a23002 Author: Thomas Gleixner Date: Tue Jun 9 13:20:30 2015 +0800 iommu: dmar: Provide helper to copy shared irte fields Instead of open coding, provide a helper function to copy the shared irte fields. Signed-off-by: Thomas Gleixner Cc: jiang.liu@linux.intel.com Cc: iommu@lists.linux-foundation.org Cc: joro@8bytes.org Cc: dwmw2@infradead.org Link: http://lkml.kernel.org/r/1433827237-3382-4-git-send-email-feng.wu@intel.com Signed-off-by: Thomas Gleixner include/linux/dmar.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 3bf17472226b0041b0c61363bd57a5cadbe620c4 Author: Thomas Gleixner Date: Tue Jun 9 13:20:29 2015 +0800 iommu: dmar: Extend struct irte for VT-d Posted-Interrupts The IRTE (Interrupt Remapping Table Entry) is either an entry for remapped or for posted interrupts. The hardware distiguishes between remapped and posted entries by bit 15 in the low 64 bit of the IRTE. If cleared the entry is remapped, if set it's posted. The entries have common fields and dependent on the posted bit fields with different meanings. Extend struct irte to handle the differences between remap and posted mode by having three structs in the unions: - Shared - Remapped - Posted Signed-off-by: Thomas Gleixner Signed-off-by: Feng Wu Acked-by: Joerg Roedel Cc: jiang.liu@linux.intel.com Cc: iommu@lists.linux-foundation.org Cc: dwmw2@infradead.org Link: http://lkml.kernel.org/r/1433827237-3382-3-git-send-email-feng.wu@intel.com Signed-off-by: Thomas Gleixner include/linux/dmar.h | 70 +++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 55 insertions(+), 15 deletions(-) commit 6f281923949a4944a7d5625e4f900ec02fefee59 Author: Feng Wu Date: Tue Jun 9 13:20:28 2015 +0800 iommu: Add new member capability to struct irq_remap_ops Add a new member 'capability' to struct irq_remap_ops for storing information about available capabilities such as VT-d Posted-Interrupts. Signed-off-by: Feng Wu Reviewed-by: Jiang Liu Reviewed-by: Thomas Gleixner Acked-by: Joerg Roedel Cc: iommu@lists.linux-foundation.org Cc: dwmw2@infradead.org Link: http://lkml.kernel.org/r/1433827237-3382-2-git-send-email-feng.wu@intel.com Signed-off-by: Thomas Gleixner arch/x86/include/asm/irq_remapping.h | 4 ++++ drivers/iommu/irq_remapping.h | 3 +++ 2 files changed, 7 insertions(+) commit 472ac3dcac108d6648ee28616c6de1e3b0bb361f Author: Alexandre Belloni Date: Mon May 25 18:11:49 2015 +0200 pwm: atmel: Fix incorrect CDTY value after disabling pwm-leds calls .config() and .disable() in a row. This exhibits that it may happen that the channel gets disabled before CDTY has been updated with CUPD. The issue gets quite worse with long periods. So, ensure that at least one period has past before disabling the channel by polling ISR. Signed-off-by: Alexandre Belloni Acked-by: Nicolas Ferre Tested-by: Gaël PORTAY Signed-off-by: Thierry Reding drivers/pwm/pwm-atmel.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) commit 0c4a5fc95b1df42651a9b4c1f72d348b3d196ea0 Author: John Stultz Date: Thu Jun 11 15:54:57 2015 -0700 selftests: timers: Add leap-second timer edge testing to leap-a-day.c Prarit reported an issue w/ timers around the leapsecond, where a timer set for Midnight UTC (00:00:00) might fire a second early right before the leapsecond (23:59:60 - though it appears as a repeated 23:59:59) is applied. So I've updated the leap-a-day.c test to integrate a similar test, where we set a timer and check if it triggers at the right time, and if the ntp state transition is managed properly. Reported-by: Daniel Bristot de Oliveira Reported-by: Prarit Bhargava Signed-off-by: John Stultz Cc: Richard Cochran Cc: Jan Kara Cc: Jiri Bohac Cc: Shuah Khan Cc: Ingo Molnar Link: http://lkml.kernel.org/r/1434063297-28657-6-git-send-email-john.stultz@linaro.org Signed-off-by: Thomas Gleixner tools/testing/selftests/timers/leap-a-day.c | 76 +++++++++++++++++++++++++++-- 1 file changed, 72 insertions(+), 4 deletions(-) commit 96efdcf2d080687e041b0353c604b708546689fd Author: John Stultz Date: Thu Jun 11 15:54:56 2015 -0700 ntp: Do leapsecond adjustment in adjtimex read path Since the leapsecond is applied at tick-time, this means there is a small window of time at the start of a leap-second where we cross into the next second before applying the leap. This patch modified adjtimex so that the leap-second is applied on the second edge. Providing more correct leapsecond behavior. This does make it so that adjtimex()'s returned time values can be inconsistent with time values read from gettimeofday() or clock_gettime(CLOCK_REALTIME,...) for a brief period of one tick at the leapsecond. However, those other interfaces do not provide the TIME_OOP time_state return that adjtimex() provides, which allows the leapsecond to be properly represented. They instead only see a time discontinuity, and cannot tell the first 23:59:59 from the repeated 23:59:59 leap second. This seems like a reasonable tradeoff given clock_gettime() / gettimeofday() cannot properly represent a leapsecond, and users likely care more about performance, while folks who are using adjtimex() more likely care about leap-second correctness. Signed-off-by: John Stultz Cc: Prarit Bhargava Cc: Daniel Bristot de Oliveira Cc: Richard Cochran Cc: Jan Kara Cc: Jiri Bohac Cc: Ingo Molnar Link: http://lkml.kernel.org/r/1434063297-28657-5-git-send-email-john.stultz@linaro.org Signed-off-by: Thomas Gleixner kernel/time/ntp.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit 833f32d763028c1bb371c64f457788b933773b3e Author: John Stultz Date: Thu Jun 11 15:54:55 2015 -0700 time: Prevent early expiry of hrtimers[CLOCK_REALTIME] at the leap second edge Currently, leapsecond adjustments are done at tick time. As a result, the leapsecond was applied at the first timer tick *after* the leapsecond (~1-10ms late depending on HZ), rather then exactly on the second edge. This was in part historical from back when we were always tick based, but correcting this since has been avoided since it adds extra conditional checks in the gettime fastpath, which has performance overhead. However, it was recently pointed out that ABS_TIME CLOCK_REALTIME timers set for right after the leapsecond could fire a second early, since some timers may be expired before we trigger the timekeeping timer, which then applies the leapsecond. This isn't quite as bad as it sounds, since behaviorally it is similar to what is possible w/ ntpd made leapsecond adjustments done w/o using the kernel discipline. Where due to latencies, timers may fire just prior to the settimeofday call. (Also, one should note that all applications using CLOCK_REALTIME timers should always be careful, since they are prone to quirks from settimeofday() disturbances.) However, the purpose of having the kernel do the leap adjustment is to avoid such latencies, so I think this is worth fixing. So in order to properly keep those timers from firing a second early, this patch modifies the ntp and timekeeping logic so that we keep enough state so that the update_base_offsets_now accessor, which provides the hrtimer core the current time, can check and apply the leapsecond adjustment on the second edge. This prevents the hrtimer core from expiring timers too early. This patch does not modify any other time read path, so no additional overhead is incurred. However, this also means that the leap-second continues to be applied at tick time for all other read-paths. Apologies to Richard Cochran, who pushed for similar changes years ago, which I resisted due to the concerns about the performance overhead. While I suspect this isn't extremely critical, folks who care about strict leap-second correctness will likely want to watch this. Potentially a -stable candidate eventually. Originally-suggested-by: Richard Cochran Reported-by: Daniel Bristot de Oliveira Reported-by: Prarit Bhargava Signed-off-by: John Stultz Cc: Richard Cochran Cc: Jan Kara Cc: Jiri Bohac Cc: Shuah Khan Cc: Ingo Molnar Link: http://lkml.kernel.org/r/1434063297-28657-4-git-send-email-john.stultz@linaro.org Signed-off-by: Thomas Gleixner include/linux/time64.h | 1 + include/linux/timekeeper_internal.h | 2 ++ kernel/time/ntp.c | 42 ++++++++++++++++++++++++++++++------- kernel/time/ntp_internal.h | 1 + kernel/time/timekeeping.c | 23 +++++++++++++++++++- 5 files changed, 61 insertions(+), 8 deletions(-) commit 90bf361ceae28dee50a584c3dd4c1a96178d982c Author: John Stultz Date: Thu Jun 11 15:54:54 2015 -0700 ntp: Introduce and use SECS_PER_DAY macro instead of 86400 Currently the leapsecond logic uses what looks like magic values. Improve this by defining SECS_PER_DAY and using that macro to make the logic more clear. Signed-off-by: John Stultz Cc: Prarit Bhargava Cc: Daniel Bristot de Oliveira Cc: Richard Cochran Cc: Jan Kara Cc: Jiri Bohac Cc: Ingo Molnar Link: http://lkml.kernel.org/r/1434063297-28657-3-git-send-email-john.stultz@linaro.org Signed-off-by: Thomas Gleixner kernel/time/ntp.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 4c027f7ba8520df088d34ae045205a6f8e2a1d76 Author: Alexandre Belloni Date: Mon May 25 15:19:55 2015 +0200 pwm: atmel: Fix incorrect CDTY value after enabling CUPD is not flushed before enabling the channel so it will update CDTY/CPRD just after one period. So we always set CUPD, even when the channel is not enabled. Signed-off-by: Alexandre Belloni Acked-by: Nicolas Ferre Signed-off-by: Thierry Reding drivers/pwm/pwm-atmel.c | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) commit d151832650ed98961a5650e73e85c349ad7839cb Author: John Stultz Date: Thu Jun 11 15:54:53 2015 -0700 time: Move clock_was_set_seq update before updating shadow-timekeeper It was reported that 868a3e915f7f5eba (hrtimer: Make offset update smarter) was causing timer problems after suspend/resume. The problem with that change is the modification to clock_was_set_seq in timekeeping_update is done prior to mirroring the time state to the shadow-timekeeper. Thus the next time we do update_wall_time() the updated sequence is overwritten by whats in the shadow copy. This patch moves the shadow-timekeeper mirroring to the end of the function, after all updates have been made, so all data is kept in sync. (This patch also affects the update_fast_timekeeper calls which were also problematically done prior to the mirroring). Reported-and-tested-by: Jeremiah Mahler Signed-off-by: John Stultz Cc: Preeti U Murthy Cc: Peter Zijlstra Cc: Viresh Kumar Cc: Marcelo Tosatti Cc: Frederic Weisbecker Link: http://lkml.kernel.org/r/1434063297-28657-2-git-send-email-john.stultz@linaro.org Signed-off-by: Thomas Gleixner kernel/time/timekeeping.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit a8424003679e90b9952e20adcd1ff1560d9dd3e9 Author: Dave Hansen Date: Thu Jun 11 12:34:00 2015 -0700 x86/fpu: Fix double-increment in setup_xstate_features() I noticed that my MPX tracepoints were producing garbage for the lower and upper bounds: mpx_bounds_register_exception: address referenced: 0x00007fffffffccb7 bounds: lower: 0x0 ~upper: 0xffffffffffffffff mpx_bounds_register_exception: address referenced: 0x00007fffffffccbf bounds: lower: 0x0 ~upper: 0xffffffffffffffff This is, of course, bogus because 0x00007fffffffccbf is *within* the bounds. I assumed that my instruction decoder was bad and went looking at it. But I eventually realized that I was getting a '0' offset back from xstate_offsets[BNDREGS]. It was being skipped in the initialization, which is obviously bogus, so remove the extra leaf++. This also goes an initializes xstate_offsets/sizes[] to -1 so so that bugs like this will oops instead of silently failing in interesting ways. This was introduced by: 39f1acd ("x86/fpu/xstate: Don't assume the first zero xfeatures zero bit means the end") Signed-off-by: Dave Hansen Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: dave@sr71.net Link: http://lkml.kernel.org/r/20150611193400.2E0B00DB@viggo.jf.intel.com Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/xstate.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 61d67d568445413137995e1bea2746783e3a81e9 Merge: 028c63b c8ad706 Author: Ingo Molnar Date: Fri Jun 12 10:08:38 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: User visible changes: - Beautify the perf_event_open() syscall in 'perf trace'. (Arnaldo Carvalho de Melo) - Error out unsupported group leader immediately in 'perf stat'. (Kan Liang) - Amend some 'perf record' option summaries (period, etc). (Peter Zijlstra) - Avoid possible race condition in copyfile() in 'perf buildid-cache'. (Milos Vyletel) Infrastructure changes: - Display 0x for hex values when printing the attribute. (Adrian Hunter) - Update MANIFEST per files removed from kernel. (David Ahern) Build fixes: - Fix PRIu64 printf related failure on 32-bit arch. (He Kuang) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit b97cadee805e49e823ffd5ad692bb4a9bbda248e Author: Wei Chen Date: Tue May 26 08:28:30 2015 +0000 DT: hwspinlock: add the CSR atlas7 hwspinlock bindings document The Hardware Spinlock device on atlas7 provides hardware assistance for synchronization between the multiple processors in the system (dual Cortex-A7, CAN bus Cortex-M3 and audio DSP). This patch adds the DT bindings information for this hwspinlock module. Reviewed-by: Suman Anna Reviewed-by: Bjorn Andersson Signed-off-by: Wei Chen Signed-off-by: Barry Song Signed-off-by: Ohad Ben-Cohen .../devicetree/bindings/hwlock/sirf,hwspinlock.txt | 28 ++++++++++++++++++++++ 1 file changed, 28 insertions(+) commit cc16d664e21ef640faaf51e9952384cf90b92d9f Author: Wei Chen Date: Tue May 26 08:28:29 2015 +0000 hwspinlock: add a CSR atlas7 driver Add hwspinlock support for the CSR atlas7 SoC. The Hardware Spinlock device on atlas7 provides hardware assistance for synchronization between the multiple processors in the system (dual Cortex-A7, CAN bus Cortex-M3 and audio DSP). Reviewed-by: Suman Anna Reviewed-by: Bjorn Andersson Signed-off-by: Wei Chen Signed-off-by: Barry Song Signed-off-by: Ohad Ben-Cohen drivers/hwspinlock/Kconfig | 12 ++++ drivers/hwspinlock/Makefile | 1 + drivers/hwspinlock/sirf_hwspinlock.c | 136 +++++++++++++++++++++++++++++++++++ 3 files changed, 149 insertions(+) commit 048fd7e665cef45630102dc8bf81971fbc82e52c Author: Prabu Thangamuthu Date: Thu May 28 12:21:06 2015 +0000 mmc: dw_mmc: insmod followed by rmmod will hung for eMMC Remove module of dw_mmc driver will hung for eMMC devices if we follow the steps which are listed below, insmod dw_mmc.ko insmod dw_mmc-pci.ko rmmod dw_mmc-pci.ko The root cause for this issue is, dw_mci_remove() will disable all the interrupts by programming 0x0 to INTMASK register then it will call dw_mci_cleanup_slot(). But dw_mci_cleanup_slot() is issuing CMD6 to disable the eMMC boot partition and it is waiting for Command Complete interrupt. Since INTMASK was already cleared by dw_mci_remove(), Command Complete interrupt is not reaching the system. This leads to process hung. Signed-off-by: Prabu Thangamuthu Signed-off-by: Jaehoon Chung Signed-off-by: Ulf Hansson drivers/mmc/host/dw_mmc.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit cc1b76ed32607ba378986931e73b64231085816f Merge: 9e8af74 535115b Author: Takashi Iwai Date: Fri Jun 12 08:10:20 2015 +0200 Merge branch 'for-linus' into for-next Yet another non-trivial conflicts resolution for the recent HD-audio fix. Conflicts: sound/pci/hda/hda_intel.c Signed-off-by: Takashi Iwai commit 4f3ca89351e62f72144ca592c1c482e529d31539 Author: James Simmons Date: Thu Jun 11 15:18:15 2015 -0400 staging:lustre: Update license and copyright for the LNET headers Point to the right place for GNU license. Update Intel copyright. Signed-off-by: James Simmons Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/include/linux/lnet/api.h | 13 +++++-------- drivers/staging/lustre/include/linux/lnet/lib-lnet.h | 10 +++------- drivers/staging/lustre/include/linux/lnet/lib-types.h | 13 +++---------- drivers/staging/lustre/include/linux/lnet/lnet.h | 10 ++++------ drivers/staging/lustre/include/linux/lnet/lnetst.h | 12 ++++-------- drivers/staging/lustre/include/linux/lnet/nidstr.h | 3 ++- drivers/staging/lustre/include/linux/lnet/socklnd.h | 12 ++++-------- drivers/staging/lustre/include/linux/lnet/types.h | 10 +++------- 8 files changed, 28 insertions(+), 55 deletions(-) commit 188acc61fb484e21836b791eea24eb4e001c0ed8 Author: James Simmons Date: Thu Jun 11 15:18:14 2015 -0400 staging:lustre: LNet header code cleanup - indentation etc Handle all the style issues reported by checkpatch.pl. Remove general white spaces, spaces in function calls, alignments etc. Signed-off-by: James Simmons Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/include/linux/lnet/api.h | 32 +- .../staging/lustre/include/linux/lnet/lib-lnet.h | 36 +- .../staging/lustre/include/linux/lnet/lib-types.h | 459 ++++++++++---------- drivers/staging/lustre/include/linux/lnet/lnetst.h | 473 +++++++++++---------- .../staging/lustre/include/linux/lnet/socklnd.h | 55 +-- drivers/staging/lustre/include/linux/lnet/types.h | 78 ++-- 6 files changed, 595 insertions(+), 538 deletions(-) commit a9cf72b64257a53c8c0bf2ed8096b59ae16f8686 Author: James Simmons Date: Thu Jun 11 15:18:13 2015 -0400 staging:lustre: fix camel case for LNetInit and LNetFini For the functions LNetInit and LNetFini move away from camel case to lnet_init and lnet_fini. Signed-off-by: James Simmons Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/include/linux/lnet/api.h | 3 --- drivers/staging/lustre/include/linux/lnet/lib-lnet.h | 3 +++ drivers/staging/lustre/include/linux/lnet/lib-types.h | 2 +- drivers/staging/lustre/lnet/lnet/api-ni.c | 16 ++++++++-------- drivers/staging/lustre/lnet/lnet/module.c | 6 +++--- 5 files changed, 15 insertions(+), 15 deletions(-) commit db18b8e98df2b946a0685ac501961d7110a61e26 Author: James Simmons Date: Thu Jun 11 15:18:12 2015 -0400 staging:lustre: separate kernel and user land defines in the LNet headers Currently the lnet headers used by user land contain various internal LNet structures that are only used by kernel space. Move the user land structures to headers used by user land. The kernel structures are relocated to headers that are never exposed to user land. Signed-off-by: James Simmons Signed-off-by: Greg Kroah-Hartman .../staging/lustre/include/linux/lnet/lib-lnet.h | 3 - .../staging/lustre/include/linux/lnet/lib-types.h | 171 +++------------------ .../staging/lustre/include/linux/lnet/lnetctl.h | 7 +- drivers/staging/lustre/include/linux/lnet/lnetst.h | 5 +- .../staging/lustre/include/linux/lnet/socklnd.h | 1 - drivers/staging/lustre/include/linux/lnet/types.h | 169 ++++++++++++++++++-- drivers/staging/lustre/lnet/lnet/api-ni.c | 3 +- 7 files changed, 180 insertions(+), 179 deletions(-) commit bbf00c3d91e43372da3b242be3fb3afc92751c79 Author: James Simmons Date: Thu Jun 11 15:18:11 2015 -0400 staging:lustre: move LNet NID macros to LNet layer Currently several special macros LNet NID macros exist in libcfs.h and libcfs_private.h. Move those macros out to the lnet header types.h. The new lnet header nidstr.h contains LNet NID string data that can be used by user land LNet utilities and the LNet kernel drivers. Signed-off-by: James Simmons Signed-off-by: Greg Kroah-Hartman .../lustre/include/linux/libcfs/libcfs_private.h | 55 ---------------- .../staging/lustre/include/linux/lnet/lib-lnet.h | 1 + drivers/staging/lustre/include/linux/lnet/lnet.h | 5 +- drivers/staging/lustre/include/linux/lnet/nidstr.h | 76 ++++++++++++++++++++++ drivers/staging/lustre/include/linux/lnet/types.h | 33 ++++++++++ .../lustre/lustre/include/lustre/lustre_idl.h | 1 + drivers/staging/lustre/lustre/include/lustre_net.h | 4 +- 7 files changed, 114 insertions(+), 61 deletions(-) commit 12c41f001015eb00fff6c677a2d83332cfd2c8b9 Author: John L. Hammond Date: Thu Jun 11 15:18:10 2015 -0400 staging:lustre: merge socklnd_lib-linux.h into socklnd.h Originally socklnd_lib-linux.h contained linux specific wrappers and defines but since the linux kernel is the only supported platform now we can merge what little remains in the header into socklnd.h. This is broken out of the original patch 12932 that was merged to the Intel/OpenSFS branch. Signed-off-by: John L. Hammond Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-2675 Reviewed-on: http://review.whamcloud.com/12932 Reviewed-by: Isaac Huang Reviewed-by: James Simmons Reviewed-by: Oleg Drokin Signed-off-by: James Simmons Signed-off-by: Greg Kroah-Hartman .../staging/lustre/lnet/klnds/socklnd/socklnd.h | 39 +++++++++- .../lustre/lnet/klnds/socklnd/socklnd_lib-linux.h | 86 ---------------------- .../lustre/lnet/klnds/socklnd/socklnd_lib.c | 4 +- 3 files changed, 40 insertions(+), 89 deletions(-) commit 134a7a7a10b70dced17e39136f65c4df81ebfb3a Author: John L. Hammond Date: Thu Jun 11 15:18:09 2015 -0400 staging:lustre: rename socklnd_lib-linux.c With the move to support only the linux kernel their is no need to keep "linux" in the socklnd source file names. This is broken out of the original patch 12932 that was merged to the Intel/OpenSFS branch. Signed-off-by: John L. Hammond Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-2675 Reviewed-on: http://review.whamcloud.com/12932 Reviewed-by: Isaac Huang Reviewed-by: James Simmons Reviewed-by: Oleg Drokin Signed-off-by: James Simmons Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lnet/klnds/socklnd/Makefile | 2 +- .../lustre/lnet/klnds/socklnd/socklnd_lib-linux.c | 710 --------------------- .../lustre/lnet/klnds/socklnd/socklnd_lib.c | 710 +++++++++++++++++++++ 3 files changed, 711 insertions(+), 711 deletions(-) commit d664d1fd5c05f2f93ded3b20fbe3b39dde662673 Author: John L. Hammond Date: Thu Jun 11 15:18:08 2015 -0400 staging:lustre: remove lnet/include/lnet/linux/ Remove the linux specific headers from lnet/include/lnet/linux/, moving whatever was worthwhile from them to their parent headers or elsewhere. Signed-off-by: John L. Hammond Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-2675 Reviewed-on: http://review.whamcloud.com/12932 Reviewed-by: Isaac Huang Reviewed-by: James Simmons Reviewed-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman .../lustre/include/linux/lnet/api-support.h | 44 ------- .../staging/lustre/include/linux/lnet/lib-lnet.h | 2 - .../staging/lustre/include/linux/lnet/lib-types.h | 2 - .../lustre/include/linux/lnet/linux/api-support.h | 42 ------ .../lustre/include/linux/lnet/linux/lib-lnet.h | 71 ---------- .../lustre/include/linux/lnet/linux/lib-types.h | 45 ------- .../staging/lustre/include/linux/lnet/linux/lnet.h | 56 -------- .../lustre/include/linux/lnet/lnet-sysctl.h | 49 ------- drivers/staging/lustre/include/linux/lnet/lnet.h | 2 - .../staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c | 5 +- .../staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h | 1 - .../staging/lustre/lnet/klnds/socklnd/socklnd.h | 1 - .../lustre/lnet/klnds/socklnd/socklnd_lib-linux.c | 3 +- drivers/staging/lustre/lnet/lnet/api-ni.c | 2 - drivers/staging/lustre/lnet/lnet/router.c | 145 --------------------- 15 files changed, 4 insertions(+), 466 deletions(-) commit f57081a5723b89186ce0c59c38dc7b2fe877b0da Author: James Simmons Date: Thu Jun 11 15:18:07 2015 -0400 staging:lustre: Delete all obsolete LND drivers Remove ralnd, ptllnd, mxlnd, qswlnd drivers. They are no longer supported and have not even been buildable for a long time. Signed-off-by: James Simmons Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-6209 Reviewed-on: http://review.whamcloud.com/13663 Reviewed-by: Isaac Huang Reviewed-by: Doug Oucharek Reviewed-by: Andreas Dilger Reviewed-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman .../lustre/include/linux/libcfs/libcfs_ioctl.h | 2 +- .../staging/lustre/include/linux/lnet/lib-lnet.h | 1 - .../staging/lustre/include/linux/lnet/lib-types.h | 4 - drivers/staging/lustre/include/linux/lnet/ptllnd.h | 93 ---------------- .../lustre/include/linux/lnet/ptllnd_wire.h | 119 --------------------- drivers/staging/lustre/lnet/lnet/acceptor.c | 2 - drivers/staging/lustre/lnet/lnet/config.c | 77 ------------- 7 files changed, 1 insertion(+), 297 deletions(-) commit 72ed4dc73dd7e67bdf37266e5d188fd01bcb32e1 Author: Dean Lee Date: Fri Jun 12 14:11:44 2015 +0900 staging: wilc1000: change WILC_BOOL to bool change own data type(WILC_BOOL) to common data type(bool) but that's contain true/false value. so change with them. Signed-off-by: Dean Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/coreconfigurator.c | 26 ++-- drivers/staging/wilc1000/coreconfigurator.h | 4 +- drivers/staging/wilc1000/fifo_buffer.c | 2 +- drivers/staging/wilc1000/fifo_buffer.h | 2 +- drivers/staging/wilc1000/host_interface.c | 166 +++++++++++----------- drivers/staging/wilc1000/host_interface.h | 20 +-- drivers/staging/wilc1000/linux_mon.c | 6 +- drivers/staging/wilc1000/linux_wlan.c | 20 +-- drivers/staging/wilc1000/wilc_msgqueue.c | 8 +- drivers/staging/wilc1000/wilc_oswrapper.h | 6 - drivers/staging/wilc1000/wilc_platform.h | 2 +- drivers/staging/wilc1000/wilc_spi.c | 1 - drivers/staging/wilc1000/wilc_timer.h | 4 +- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 136 +++++++++--------- drivers/staging/wilc1000/wilc_wfi_cfgoperations.h | 2 +- drivers/staging/wilc1000/wilc_wfi_netdevice.c | 2 +- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 8 +- drivers/staging/wilc1000/wilc_wlan.c | 34 ++--- drivers/staging/wilc1000/wilc_wlan_cfg.c | 4 +- 19 files changed, 223 insertions(+), 230 deletions(-) commit ab6a167f1936eb25c853e3f5caee5f469161916b Author: Chaehyun Lim Date: Fri Jun 12 12:38:05 2015 +0900 staging: wilc1000: remove unused typedef Remove unused typedef for custom data types. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/itypes.h | 10 ---------- 1 file changed, 10 deletions(-) commit c8ad7063626406181a7ebab10cb31b4f741b13d4 Author: David Ahern Date: Fri Jun 5 13:42:53 2015 -0400 perf tools: Update MANIFEST per files removed from kernel Building perf out of kernel tree is currently broken because the MANIFEST file refers to kernel files that have been removed. With this patch make perf-targz-src-pkg succeeds as does building perf using the generated tarfile. Signed-off-by: David Ahern Link: http://lkml.kernel.org/r/1433526173-172332-1-git-send-email-david.ahern@oracle.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/MANIFEST | 4 ---- 1 file changed, 4 deletions(-) commit a1c2552dba788c2c5e71c5bf5bcf3971caf3dfa1 Author: Arnaldo Carvalho de Melo Date: Thu Jun 11 22:47:54 2015 -0300 trace: Beautify perf_event_open syscall Syswide tracing and then running 'stat' and 'trace': $ perf trace -e perf_event_open 1034.649 (0.019 ms): perf/6133 perf_event_open(attr_uptr: 0x36f0360, pid: 16134, cpu: -1, group_fd: -1, flags: FD_CLOEXEC) = -1 EINVAL Invalid argument 1034.670 (0.008 ms): perf/6133 perf_event_open(attr_uptr: 0x36f0360, pid: 16134, cpu: -1, group_fd: -1) = -1 EINVAL Invalid argument 1034.681 (0.007 ms): perf/6133 perf_event_open(attr_uptr: 0x36f0360, pid: 16134, cpu: -1, group_fd: -1) = -1 EINVAL Invalid argument 1034.692 (0.007 ms): perf/6133 perf_event_open(attr_uptr: 0x36f0360, pid: 16134, cpu: -1, group_fd: -1) = -1 EINVAL Invalid argument 9986.983 (0.014 ms): trace/6139 perf_event_open(attr_uptr: 0x7ffd9c629320, pid: -1, group_fd: -1, flags: FD_CLOEXEC) = 3 9987.026 (0.016 ms): trace/6139 perf_event_open(attr_uptr: 0x37c7e70, pid: -1, group_fd: -1, flags: FD_CLOEXEC) = 3 9987.041 (0.008 ms): trace/6139 perf_event_open(attr_uptr: 0x37c7e70, pid: -1, group_fd: -1, flags: FD_CLOEXEC) = 3 9987.489 (0.092 ms): trace/6139 perf_event_open(attr_uptr: 0x3795ee0, pid: 16140, group_fd: -1, flags: FD_CLOEXEC) = 3 9987.536 (0.044 ms): trace/6139 perf_event_open(attr_uptr: 0x3795ee0, pid: 16140, cpu: 1, group_fd: -1, flags: FD_CLOEXEC) = 4 9987.580 (0.041 ms): trace/6139 perf_event_open(attr_uptr: 0x3795ee0, pid: 16140, cpu: 2, group_fd: -1, flags: FD_CLOEXEC) = 5 9987.620 (0.037 ms): trace/6139 perf_event_open(attr_uptr: 0x3795ee0, pid: 16140, cpu: 3, group_fd: -1, flags: FD_CLOEXEC) = 7 9987.659 (0.035 ms): trace/6139 perf_event_open(attr_uptr: 0x37975d0, pid: 16140, group_fd: -1, flags: FD_CLOEXEC) = 8 9987.692 (0.031 ms): trace/6139 perf_event_open(attr_uptr: 0x37975d0, pid: 16140, cpu: 1, group_fd: -1, flags: FD_CLOEXEC) = 9 9987.727 (0.032 ms): trace/6139 perf_event_open(attr_uptr: 0x37975d0, pid: 16140, cpu: 2, group_fd: -1, flags: FD_CLOEXEC) = 10 9987.761 (0.031 ms): trace/6139 perf_event_open(attr_uptr: 0x37975d0, pid: 16140, cpu: 3, group_fd: -1, flags: FD_CLOEXEC) = 11 Need to intercept perf_copy_attr() with a kprobe or with eBPF... Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Link: http://lkml.kernel.org/n/tip-njb105hab2i3t5dexym9lskl@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-trace.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) commit 3c45414527487549f469484337a4c5ae5d84dc80 Author: Chao Yu Date: Fri Jun 5 18:34:02 2015 +0800 f2fs: do not trim preallocated blocks when truncating after i_size When we perform generic/092 in xfstests, output is like below: XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) 0: [0..10239]: data 0: [0..10239]: data -1: [10240..20479]: unwritten +1: [10240..14335]: unwritten This is because with this testcase, we redefine the regulation for truncate in perallocated space past i_size as below: "There was some confused about what the fs was supposed to do when you truncate at i_size with preallocated space past i_size. We decided on the following things. 1) truncate(i_size) will trim all blocks past i_size. 2) truncate(x) where x > i_size will not trim all blocks past i_size. " This method is used in xfs, and then ext4/btrfs will follow the rule. This patch fixes to follow the new rule for f2fs. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/file.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit f60c8ba77dcea80af8facfd786a0d2c3ace86f3d Author: Samuel Thibault Date: Mon Mar 16 21:19:56 2015 -0700 Input: export LEDs as class devices in sysfs This change creates a new input handler called "leds" that exports LEDs on input devices as standard LED class devices in sysfs and allows controlling their state via sysfs or via any of the standard LED triggers. This allows to re-purpose and reassign LDEs on the keyboards to represent states other than the standard keyboard states (CapsLock, NumLock, etc). The old API of controlling input LEDs by writing into /dev/input/eventX devices is still present and will take precedence over accessing via LEDs subsystem (i.e. it may override state set by a trigger). If input device is "grabbed" then requests coming through LED subsystem will be ignored. Signed-off-by: Samuel Thibault Tested-by: Pavel Machek Acked-by: Pavel Machek Signed-off-by: Dmitry Torokhov Documentation/leds/leds-class.txt | 3 - drivers/input/Kconfig | 13 +++ drivers/input/Makefile | 1 + drivers/input/input-leds.c | 212 ++++++++++++++++++++++++++++++++++++++ drivers/leds/Kconfig | 3 - 5 files changed, 226 insertions(+), 6 deletions(-) commit 4e54ab8d8c744f977ba13404342aeb260e353330 Author: Trond Myklebust Date: Thu Jun 11 21:13:58 2015 -0400 NFS: Ensure that we update the sequence id under the slot table lock Fix a callback slot table regression. Fixes: e937ee714b2d ("nfs: Only update callback sequnce id when CB_SEQUENCE success") Cc: Kinglong Mee Signed-off-by: Trond Myklebust fs/nfs/callback_proc.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 0579c8d2084adf932f09fe7edb5ee9328795d89f Author: Kinglong Mee Date: Tue Jun 2 18:59:01 2015 +0800 nfs: Initialize cb_sequenceres information before validate_seqid() For a cb_layoutrecall replay, nfsd got CB_SEQUENCE status of zero, but all informations of cb_sequenceres are zero too !!! validate_seqid() return NFS4ERR_RETRY_UNCACHED_REP for a replay, and skip the initlize cb_sequenceres. Signed-off-by: Kinglong Mee Signed-off-by: Trond Myklebust fs/nfs/callback_proc.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit b9a1077a4e8f6961df8fd393fad2265249f015c5 Merge: 5c70c46 1a370be Author: Dave Airlie Date: Fri Jun 12 10:17:55 2015 +1000 Merge branch 'msm-next' of git://people.freedesktop.org/~robclark/linux into drm-next Main pull req for 4.2.. I think there will be a secondary pull-req.. I'd like to land the hdcp support patches, since all the review comments have been long since addressed, and they have been ready to merge for a couple release cycles now other than the scm dependency (which should be coming in through arm-soc tree for 4.2). So I am not including them in this initial pull req to avoid merge ordering issues. Main highlights: 1) adreno a306 support (for apq8x16 and upcoming dragonboard 410c) 2) various dsi bits 3) various 64bit fixes (mostly warnings) 4) NV12MT support, pulled in via msm-next rather than drm-misc since dependency on on regenerated envytools headers (but lgtm'd-by danvet) 5) random fixes and cleanups * 'msm-next' of git://people.freedesktop.org/~robclark/linux: (36 commits) drm/msm: restart queued submits after hang drm/msm: fix timeout calculation drm/msm/hdmi: Use pinctrl in HDMI driver drm/msm/hdmi: Point to the right struct device drm/msm/mdp: Add support for more 32-bit RGB formats drm/msm: use __s32, __s64, __u32 and __u64 from linux/types.h for uabi drm/msm/atomic: Clean up planes in the error paths of .atomic_commit() drm/msm/mdp5: Always generate active-high sync signals for DSI drm/msm: dsi: fix compile errors when CONFIG_GPIOLIB=n drm/msm: use devm_gpiod_get_optional for optional reset gpio drm/msm/dsi: Separate PHY to another platform device drm/msm/dsi: Enable PLL driver in MSM DSI drm/msm/dsi: Add DSI PLL clock driver support drm/msm: use IS_ERR() to check regulator_get() return drm/msm: use IS_ERR() to check msm_ioremap() return drm/msm/mdp5: Wait for PP_DONE irq for command mode CRTC atomic commit drm/msm: Use customized function to wait for atomic commit done dt-bindings: Add MSM eDP controller documentation dt-bindings: Add MSM DSI controller documentation drm/msm: drop redundant debug output ... commit 5c70c464787febc67c40b13f2fedccc378b0fa8e Merge: 933ea18 bf546f8 Author: Dave Airlie Date: Fri Jun 12 10:16:36 2015 +1000 Merge tag 'drm-intel-next-fixes-2015-06-11' of git://anongit.freedesktop.org/drm-intel into drm-next firmware name fix * tag 'drm-intel-next-fixes-2015-06-11' of git://anongit.freedesktop.org/drm-intel: drm/i915/skl: Fix DMC API version in firmware file name commit 933ea180a4ff0396152979874937bb8d954a2cee Merge: 7207d55 da73b9f Author: Dave Airlie Date: Fri Jun 12 10:14:20 2015 +1000 Merge tag 'drm-amdkfd-next-fixes-2015-06-10' of git://people.freedesktop.org/~gabbayo/linux into drm-next - Make the reset wavefronts action be per process per device instead of per process, because one device can be stuck but the other one won't be - Add some missing properties to the CZ device_info structure - Rename symbols to not have CONFIG_ prefix - Some more cleanups and debug prints * tag 'drm-amdkfd-next-fixes-2015-06-10' of git://people.freedesktop.org/~gabbayo/linux: drm/amdkfd: remove not used defines from cik_regs.h drm/amdkfd: Add missing properties to CZ device info drm/amdkfd: make reset wavefronts per process per device drm/amdkfd: add debug print to kfd_events.c drm/amdkfd: avoid CONFIG_ prefix for non-Kconfig symbols commit 7207d559e4851372c00344fa52778d73a0098627 Merge: 3f05eb4 c58d6d1 Author: Dave Airlie Date: Fri Jun 12 10:14:00 2015 +1000 Merge branch '2015-06-08-st-drm-next' of http://git.linaro.org/people/benjamin.gaignard/kernel into drm-next Mainly it is fixing timing on HDMI to be compliant with CEA-861E spec. * '2015-06-08-st-drm-next' of http://git.linaro.org/people/benjamin.gaignard/kernel: drm/sti: vtg fix CEA-861E video format timing error drm/sti: hdmi fix CEA-861E video format timing error drm/sti: VTG interrupt names are badly displayed drm/sti: missing first pixel column on HDMI display drm/sti: correctly test devm_ioremap() return commit cf99289d67688c4f92175da42bd1647695f6fddc Author: Fabian Frederick Date: Thu Jun 11 13:07:59 2015 -0700 Input: cyttsp4 - use swap() in cyttsp4_get_touch() Use kernel.h macro definition. Thanks to Julia Lawall for Coccinelle scripting support. Signed-off-by: Fabian Frederick Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/cyttsp4_core.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit c7a4fb53de365d5e9264e3fa5bdb9c0a52b6f9a0 Author: Dmitry Torokhov Date: Tue Jun 9 11:51:05 2015 -0700 Input: goodix - do not explicitly set evbits in input device input_mt_init_slots() will do that for us. Reviewed-by: Benjamin Tissoires Acked-by: Bastien Nocera Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/goodix.c | 4 ---- 1 file changed, 4 deletions(-) commit 2879e43f09122f8b3ef5456e3d7e48716b086e60 Merge: 4d48614 436bbc1 Author: Kevin Hilman Date: Thu Jun 11 16:36:32 2015 -0700 Merge tag 'omap-for-v4.2/soc-pt1-take2' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/soc Omap hwmod changes for v4.2 via Paul Walmsley : Several OMAP2+ hwmod changes for v4.2. One patch cleans up a nasty interaction between the OMAP GPMC and the hwmod code when debugging is enabled. IP block integration data has been added for the AM43xx EMIF RAM controller. There's also a fix for the omap-aes driver when used in QEMU. And finally, some changes to the OMAP3 hwmod code to support the use of the security IP blocks (AES and SHA) on GP devices, or when they've specifically been enabled in the DT data. Basic build, boot, and power management test results are here: http://www.pwsan.com/omap/testlogs/omap-hwmod-a-for-v4.2/20150601192349/ * tag 'omap-for-v4.2/soc-pt1-take2' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: OMAP3: Fix crypto support for HS devices ARM: OMAP2+: Return correct error values from device and hwmod ARM: OMAP: AM43xx hwmod: Add data for am43xx emif hwmod memory: omap-gpmc: Add Kconfig option for debug commit b3f30fb41bd1387b6555ba4394c86a4cd1a6d635 Merge: 662cfed 4cbb083 Author: Kevin Hilman Date: Thu Jun 11 16:32:56 2015 -0700 Merge tag 'omap-for-v4.2/o2_dc' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/defconfig Few omap2plus_defconfig changes for v4.2 merge window: - Enable dm9000 as built-in for NFSroot - Enable dm816x USB phy as a loadable module - Enable Pixcir touch screen as a loadable module * tag 'omap-for-v4.2/o2_dc' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: omap2plus_defconfig: Enable TOUCHSCREEN_PIXCIR ARM: omap2plus_defconfig: Add dm816x USB PHY as a loadable module ARM: omap2plus_defconifg: Enable DM9000 in omap2plus_defconfig commit c63264def3393dd123bfa630a7a46b5d6d2d6038 Merge: 57225e7 b5e2c45 Author: David S. Miller Date: Thu Jun 11 16:33:11 2015 -0700 Merge branch 'tcp-gso-settings-defer' Eric Dumazet says: ==================== tcp: defer shinfo->gso_size|type settings We put shinfo->gso_segs in TCP_SKB_CB(skb) a while back for performance reasons. This was in commit cd7d8498c9a5 ("tcp: change tcp_skb_pcount() location") This patch series complete the job for gso_size and gso_type, so that we do not bring 2 extra cache lines in tcp write xmit fast path, and making tcp_init_tso_segs() simpler and faster. ==================== Signed-off-by: David S. Miller commit b5e2c45783aa785cbb195e43d5f0c0c6b228bde4 Author: Eric Dumazet Date: Thu Jun 11 09:15:19 2015 -0700 tcp: remove obsolete check in tcp_set_skb_tso_segs() We had various issues in the past when TCP stack was modifying gso_size/gso_segs while clones were in flight. Commit c52e2421f73 ("tcp: must unclone packets before mangling them") fixed these bugs and added a WARN_ON_ONCE(skb_cloned(skb)); in tcp_set_skb_tso_segs() These bugs are now fixed, and because TCP stack now only sets shinfo->gso_size|segs on the clone itself, the check can be removed. As a result of this change, compiler inlines tcp_set_skb_tso_segs() in tcp_init_tso_segs() Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller net/ipv4/tcp_output.c | 3 --- 1 file changed, 3 deletions(-) commit f69ad292cfd13aa7ee00847320c6bb9ba2154e87 Author: Eric Dumazet Date: Thu Jun 11 09:15:18 2015 -0700 tcp: fill shinfo->gso_size at last moment In commit cd7d8498c9a5 ("tcp: change tcp_skb_pcount() location") we stored gso_segs in a temporary cache hot location. This patch does the same for gso_size. This allows to save 2 cache line misses in tcp xmit path for the last packet that is considered but not sent because of various conditions (cwnd, tso defer, receiver window, TSQ...) Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller include/net/tcp.h | 13 ++++++++----- net/ipv4/tcp_input.c | 8 ++++---- net/ipv4/tcp_output.c | 12 ++++-------- 3 files changed, 16 insertions(+), 17 deletions(-) commit 5bbb432c896d23ce8f41f38e88dbd38982df99f9 Author: Eric Dumazet Date: Thu Jun 11 09:15:17 2015 -0700 tcp: tcp_set_skb_tso_segs() no longer need struct sock parameter tcp_set_skb_tso_segs() & tcp_init_tso_segs() no longer use the sock pointer. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller net/ipv4/tcp_output.c | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) commit 51466a7545b73b7ad7bcfb33410d2823ccfaa501 Author: Eric Dumazet Date: Thu Jun 11 09:15:16 2015 -0700 tcp: fill shinfo->gso_type at last moment Our goal is to touch skb_shinfo(skb) only when absolutely needed, to avoid two cache line misses in TCP output path for last skb that is considered but not sent because of various conditions (cwnd, tso defer, receiver window, TSQ...) A packet is GSO only when skb_shinfo(skb)->gso_size is not zero. We can set skb_shinfo(skb)->gso_type to sk->sk_gso_type even for non GSO packets. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller net/ipv4/tcp_input.c | 8 ++------ net/ipv4/tcp_output.c | 4 +--- 2 files changed, 3 insertions(+), 9 deletions(-) commit a7eea416cb08a514f94c0ca5ff30c18783fab054 Author: Eric Dumazet Date: Thu Jun 11 09:15:15 2015 -0700 tcp: reserve tcp_skb_mss() to tcp stack tcp_gso_segment() and tcp_gro_receive() are not strictly part of TCP stack. They should not assume tcp_skb_mss(skb) is in fact skb_shinfo(skb)->gso_size. This will allow us to change tcp_skb_mss() in following patches. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller net/ipv4/tcp_offload.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1647e3c73ce54fc32536bb3a834eccad39b23572 Merge: 7d5a0ff 8584d4f Author: Kevin Hilman Date: Thu Jun 11 16:30:19 2015 -0700 Merge tag 'omap-for-v4.2/dt-pt2' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/dt Few more omap device tree changes for v4.2 merge window: - Add dm9000 Ethernet support to omap3-devkit8000 - Add Toby-Churchill SL50 board support - Add vendor prefix for Toby Churchill Ltd * tag 'omap-for-v4.2/dt-pt2' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: dts: am335x-sl50: Add Toby-Churchill SL50 board support. of: Add vendor prefix for Toby Churchill Ltd. ARM: dts: omap3-devkit8000: Add dm9000 support commit 57225e7720ac3d7ffcb0086c716753abf6e54e8d Author: Scott Feldman Date: Thu Jun 11 08:19:01 2015 -0700 switchdev: fix BUG when port driver doesn't support set attr op Fix a BUG_ON() where CONFIG_NET_SWITCHDEV is set but the driver for a bridged port does not support switchdev_port_attr_set op. Don't BUG_ON() if -EOPNOTSUPP is returned. Also change BUG_ON() to netdev_err since this is a normal error path and does not warrant the use of BUG_ON(), which is reserved for unrecoverable errs. Signed-off-by: Scott Feldman Reported-by: Brenden Blanco Signed-off-by: David S. Miller net/switchdev/switchdev.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 4d48614ec45aa20d6a2cb7d2eb1368d7641c747d Merge: 259f47e 405817f Author: Kevin Hilman Date: Thu Jun 11 16:19:29 2015 -0700 Merge branch 'zte/soc' into next/soc * zte/soc: ARM: zx: Add basic defconfig support for ZX296702 ARM: dts: zx: add an initial zx296702 dts and doc clk: zx: add clock support to zx296702 dt-bindings: Add #defines for ZTE ZX296702 clocks commit 405817f6780e18a9c4dc80a5883688df969608e8 Author: Jun Nie Date: Thu Jun 4 11:21:03 2015 +0800 ARM: zx: Add basic defconfig support for ZX296702 Add basic defconfig support to zx SOC, including uart, mmc and other common config Signed-off-by: Jun Nie Signed-off-by: Kevin Hilman arch/arm/configs/zx_defconfig | 129 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 129 insertions(+) commit d5553cb05a041d7c31e4e70950ecbb4ee52049cb Author: Jun Nie Date: Thu Jun 4 11:21:02 2015 +0800 ARM: dts: zx: add an initial zx296702 dts and doc Add initial dts file and document for ZX296702 and board ZX296702-AD1. More peripherals will be added later. Signed-off-by: Jun Nie Signed-off-by: Kevin Hilman Documentation/devicetree/bindings/arm/zte.txt | 15 +++ .../devicetree/bindings/clock/zx296702-clk.txt | 35 ++++++ Documentation/devicetree/bindings/serial/pl011.txt | 2 +- .../devicetree/bindings/vendor-prefixes.txt | 1 + arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/zx296702-ad1.dts | 48 +++++++ arch/arm/boot/dts/zx296702.dtsi | 139 +++++++++++++++++++++ 7 files changed, 240 insertions(+), 1 deletion(-) commit 5a46580812266c85a2cd0ee530e4039ea5f76a19 Author: Jun Nie Date: Thu Jun 4 11:21:01 2015 +0800 clk: zx: add clock support to zx296702 It adds a clock driver for zx296702 SoC to register the clock tree to Common Clock Framework. All the clocks of bus topology and some the peripheral clocks are ready with this commit. Some missing leaf clocks for peripherals will be added later when needed. Signed-off-by: Jun Nie Reviewed-by: Stephen Boyd Signed-off-by: Kevin Hilman drivers/clk/Makefile | 1 + drivers/clk/zte/Makefile | 2 + drivers/clk/zte/clk-pll.c | 172 +++++++++++ drivers/clk/zte/clk-zx296702.c | 657 +++++++++++++++++++++++++++++++++++++++++ drivers/clk/zte/clk.h | 32 ++ 5 files changed, 864 insertions(+) commit f3519dc6f090eb2315af58ab46857f0c6f45bae4 Author: Jun Nie Date: Thu Jun 4 11:21:00 2015 +0800 dt-bindings: Add #defines for ZTE ZX296702 clocks Add clocks defines for the global clock controller found on ZTE ZX296702 SoCs. Signed-off-by: Jun Nie Acked-by: Stephen Boyd Signed-off-by: Kevin Hilman include/dt-bindings/clock/zx296702-clock.h | 170 +++++++++++++++++++++++++++++ 1 file changed, 170 insertions(+) commit d0504f4d8fc4618ee0d6f8124a10da0a007ff347 Merge: d205ce5 ecc4678 Author: David S. Miller Date: Thu Jun 11 15:57:18 2015 -0700 Merge branch 'bna-next' Ivan Vecera says: ==================== bna: clean-up The patches clean the bna driver. v2: changes & comments requested by Joe ==================== Signed-off-by: David S. Miller commit ecc467896d977f4f1a6dfee77652aab117ebfb73 Author: Ivan Vecera Date: Thu Jun 11 15:52:31 2015 +0200 bna: use netdev_* and dev_* instead of printk and pr_* ...and remove some of them. It is not necessary to log when .probe() and .remove() are called or when TxQ is started or stopped. Also log level of some of them was changed to more appropriate one (link up/down, firmware loading failure. Signed-off-by: Ivan Vecera Signed-off-by: David S. Miller drivers/net/ethernet/brocade/bna/bnad.c | 46 +++++++++---------------- drivers/net/ethernet/brocade/bna/bnad_debugfs.c | 34 ++++++++---------- drivers/net/ethernet/brocade/bna/bnad_ethtool.c | 9 ++--- drivers/net/ethernet/brocade/bna/cna_fwimg.c | 2 +- 4 files changed, 36 insertions(+), 55 deletions(-) commit ad24d6f04d8d279cb739fb5267487fe94c6b9ab3 Author: Ivan Vecera Date: Thu Jun 11 15:52:30 2015 +0200 bna: fix timeout API argument type Timeout functions are defined with 'void *' ptr argument. They should be defined directly with 'struct bfa_ioc *' type to avoid type conversions. Signed-off-by: Ivan Vecera Signed-off-by: David S. Miller drivers/net/ethernet/brocade/bna/bfa_ioc.c | 16 +++++----------- drivers/net/ethernet/brocade/bna/bfa_ioc.h | 8 ++++---- drivers/net/ethernet/brocade/bna/bnad.c | 8 ++++---- 3 files changed, 13 insertions(+), 19 deletions(-) commit 16712c5311fe688ce3b3a2ea0ab185074353bcd6 Author: Ivan Vecera Date: Thu Jun 11 15:52:29 2015 +0200 bna: use list_for_each_entry where appropriate Signed-off-by: Ivan Vecera Signed-off-by: David S. Miller drivers/net/ethernet/brocade/bna/bfa_ioc.c | 5 +- drivers/net/ethernet/brocade/bna/bna.h | 41 ++++------ drivers/net/ethernet/brocade/bna/bna_enet.c | 23 ------ drivers/net/ethernet/brocade/bna/bna_tx_rx.c | 117 +++++---------------------- 4 files changed, 37 insertions(+), 149 deletions(-) commit 2b26fb9567eece71c33d147af238f8325ee50b69 Author: Ivan Vecera Date: Thu Jun 11 15:52:28 2015 +0200 bna: get rid of private macros for manipulation with lists Remove macros for manipulation with struct list_head and replace them with standard ones. Signed-off-by: Ivan Vecera Signed-off-by: David S. Miller drivers/net/ethernet/brocade/bna/bfa_cee.c | 1 - drivers/net/ethernet/brocade/bna/bfa_ioc.c | 10 +- drivers/net/ethernet/brocade/bna/bfa_msgq.c | 10 +- drivers/net/ethernet/brocade/bna/bna.h | 1 - drivers/net/ethernet/brocade/bna/bna_enet.c | 50 ++--- drivers/net/ethernet/brocade/bna/bna_tx_rx.c | 310 +++++++++------------------ drivers/net/ethernet/brocade/bna/cna.h | 56 ----- 7 files changed, 130 insertions(+), 308 deletions(-) commit b45da3fcd76b9e67b62ac13d4ef076fc5ff2cfce Author: Ivan Vecera Date: Thu Jun 11 15:52:27 2015 +0200 bna: remove useless pointer assignment Pointer cmpl used to iterate through completion entries is updated at the beginning of while loop as well as at the end. The update at the end of the loop is useless. Signed-off-by: Ivan Vecera Signed-off-by: David S. Miller drivers/net/ethernet/brocade/bna/bnad.c | 1 - 1 file changed, 1 deletion(-) commit d0e6a8064c4293a1e087b2fdd6c2b67cd8ba8f56 Author: Ivan Vecera Date: Thu Jun 11 15:52:26 2015 +0200 bna: use memdup_user to copy userspace buffers Patch converts kzalloc->copy_from_user sequence to memdup_user. There is also one useless assignment of NULL to bnad->regdata as it is followed by assignment of kzalloc output. Signed-off-by: Ivan Vecera Signed-off-by: David S. Miller drivers/net/ethernet/brocade/bna/bnad_debugfs.c | 27 ++++++++----------------- 1 file changed, 8 insertions(+), 19 deletions(-) commit 93719d266a196d7e4a65c88ec6e90ae5e2424075 Author: Ivan Vecera Date: Thu Jun 11 15:52:25 2015 +0200 bna: correct comparisons/assignments to bool Signed-off-by: Ivan Vecera Signed-off-by: David S. Miller drivers/net/ethernet/brocade/bna/bfa_ioc.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 2a2d75c0e43b2ddf4b054f5b6aedfbab0b01471b Author: Ivan Vecera Date: Thu Jun 11 15:52:24 2015 +0200 bna: remove TX_E_PRIO_CHANGE event and BNA_TX_F_PRIO_CHANGED flag TX_E_PRIO_CHANGE event is never sent for bna_tx so it doesn't need to be handled. After this change bna_tx->flags cannot contain BNA_TX_F_PRIO_CHANGED flag and it can be also eliminated. Signed-off-by: Ivan Vecera Signed-off-by: David S. Miller drivers/net/ethernet/brocade/bna/bna_tx_rx.c | 22 ++++------------------ drivers/net/ethernet/brocade/bna/bna_types.h | 1 - 2 files changed, 4 insertions(+), 19 deletions(-) commit d7548e6725656d007798b78676bc1d863a89583c Author: Ivan Vecera Date: Thu Jun 11 15:52:23 2015 +0200 bna: remove paused from bna_rx_config and flags from bna_rxf The bna_rx_config struct member paused can be removed as it is never written and as it cannot have non-zero value the bna_rxf struct member flags also cannot have BNA_RXF_F_PAUSED value and is always zero. So the flags member can be removed as well as bna_rxf_flags enum and the code-paths that needs to have non-zero bna_rxf->flags. This clean-up makes bna_rxf_sm_paused state unsed and can be also removed. Signed-off-by: David S. Miller drivers/net/ethernet/brocade/bna/bna_tx_rx.c | 36 +--------------------------- drivers/net/ethernet/brocade/bna/bna_types.h | 6 ----- 2 files changed, 1 insertion(+), 41 deletions(-) commit 82362d73b04cc440a5d6d23cc79ce63df321e0f4 Author: Ivan Vecera Date: Thu Jun 11 15:52:22 2015 +0200 bna: remove RXF_E_PAUSE and RXF_E_RESUME events RXF_E_PAUSE & RXF_E_RESUME events are never sent for bna_rxf object so they needn't to be handled. The bna_rxf's state bna_rxf_sm_fltr_clr_wait and function bna_rxf_fltr_clear are unused after this so remove them also. Signed-off-by: Ivan Vecera Signed-off-by: David S. Miller drivers/net/ethernet/brocade/bna/bna_tx_rx.c | 75 ---------------------------- drivers/net/ethernet/brocade/bna/bna_types.h | 2 - 2 files changed, 77 deletions(-) commit 6f544de636cd293d77bab368a716cccf723ec458 Author: Ivan Vecera Date: Thu Jun 11 15:52:21 2015 +0200 bna: remove prio_change_cbfn oper_state_cbfn from struct bna_tx Signed-off-by: Ivan Vecera Signed-off-by: David S. Miller drivers/net/ethernet/brocade/bna/bna_tx_rx.c | 13 ------------- drivers/net/ethernet/brocade/bna/bna_types.h | 3 --- 2 files changed, 16 deletions(-) commit f39857e1e20d22402df4fb29234d3dd5045bcd11 Author: Ivan Vecera Date: Thu Jun 11 15:52:20 2015 +0200 bna: remove oper_state_cbfn from struct bna_rxf Signed-off-by: Ivan Vecera Signed-off-by: David S. Miller drivers/net/ethernet/brocade/bna/bna.h | 15 --------------- drivers/net/ethernet/brocade/bna/bna_tx_rx.c | 6 ------ drivers/net/ethernet/brocade/bna/bna_types.h | 4 ---- 3 files changed, 25 deletions(-) commit ef5b67c133b480d3f4b66b074c37b6462ee1e8a3 Author: Ivan Vecera Date: Thu Jun 11 15:52:19 2015 +0200 bna: remove pause_cbfn from struct bna_enet Signed-off-by: Ivan Vecera Signed-off-by: David S. Miller drivers/net/ethernet/brocade/bna/bna_enet.c | 15 --------------- drivers/net/ethernet/brocade/bna/bna_types.h | 3 --- 2 files changed, 18 deletions(-) commit 1f9883e032a6867d108638a1d1b7c1a50f23e069 Author: Ivan Vecera Date: Thu Jun 11 15:52:18 2015 +0200 bna: remove unused cbfn parameter removed: bna_rx_ucast_add bna_rx_ucast_del simplified: bna_enet_pause_config bna_rx_mcast_delall bna_rx_mcast_listset bna_rx_mode_set bna_rx_ucast_listset bna_rx_ucast_set Signed-off-by: Ivan Vecera Signed-off-by: David S. Miller drivers/net/ethernet/brocade/bna/bna.h | 24 +++++------------ drivers/net/ethernet/brocade/bna/bna_enet.c | 5 +--- drivers/net/ethernet/brocade/bna/bna_tx_rx.c | 35 +++++++------------------ drivers/net/ethernet/brocade/bna/bnad.c | 18 ++++++------- drivers/net/ethernet/brocade/bna/bnad_ethtool.c | 2 +- 5 files changed, 25 insertions(+), 59 deletions(-) commit 1a50691a95dab71c8de75d465b0aba562976f6f6 Author: Ivan Vecera Date: Thu Jun 11 15:52:17 2015 +0200 bna: use BIT(x) instead of (1 << x) Signed-off-by: Ivan Vecera Signed-off-by: David S. Miller .../net/ethernet/brocade/bna/bfa_defs_mfg_comm.h | 2 +- drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c | 2 +- drivers/net/ethernet/brocade/bna/bfi_enet.h | 66 ++++++++++---------- drivers/net/ethernet/brocade/bna/bna_enet.c | 4 +- drivers/net/ethernet/brocade/bna/bna_hw_defs.h | 70 +++++++++++----------- drivers/net/ethernet/brocade/bna/bna_tx_rx.c | 22 +++---- 6 files changed, 83 insertions(+), 83 deletions(-) commit a1ac490d0d5e6e762b7b7565c272cecef7ad6d88 Author: Ivan Vecera Date: Thu Jun 11 15:52:16 2015 +0200 bna: get rid of duplicate and unused macros replaced macros: BNA_MAC_IS_EQUAL -> ether_addr_equal BNA_POWER_OF_2 -> is_power_of_2 BNA_TO_POWER_OF_2_HIGH -> roundup_pow_of_two removed unused macros: bfa_fsm_get_state bfa_ioc_clr_stats bfa_ioc_fetch_stats bfa_ioc_get_alt_ioc_fwstate bfa_ioc_isr_mode_set bfa_ioc_maxfrsize bfa_ioc_mbox_cmd_pending bfa_ioc_ownership_reset bfa_ioc_rx_bbcredit bfa_ioc_state_disabled bfa_sm_cmp_state bfa_sm_get_state bfa_sm_send_event bfa_sm_set_state bfa_sm_state_decl BFA_STRING_32 BFI_ADAPTER_IS_{PROTO,TTV,UNSUPP) BFI_IOC_ENDIAN_SIG BNA_{C,RX,TX}Q_PAGE_INDEX_MAX BNA_{C,RX,TX}Q_PAGE_INDEX_MAX_SHIFT BNA_{C,RX,TX}Q_QPGE_PTR_GET BNA_IOC_TIMER_FREQ BNA_MESSAGE_SIZE BNA_QE_INDX_2_PTR BNA_QE_INDX_RANGE BNA_Q_GET_{C,P}I BNA_Q_{C,P}I_ADD BNA_Q_FREE_COUNT BNA_Q_IN_USE_COUNT BNA_TO_POWER_OF_2 containing_rec Signed-off-by: Ivan Vecera Signed-off-by: David S. Miller drivers/net/ethernet/brocade/bna/bfa_cs.h | 14 ---- drivers/net/ethernet/brocade/bna/bfa_defs.h | 1 - drivers/net/ethernet/brocade/bna/bfa_ioc.c | 14 ---- drivers/net/ethernet/brocade/bna/bfa_ioc.h | 13 --- drivers/net/ethernet/brocade/bna/bfi.h | 8 -- drivers/net/ethernet/brocade/bna/bna.h | 105 +----------------------- drivers/net/ethernet/brocade/bna/bna_tx_rx.c | 13 ++- drivers/net/ethernet/brocade/bna/bnad_ethtool.c | 4 +- 8 files changed, 9 insertions(+), 163 deletions(-) commit e423c85603fadfeb31f103826cf5986c78d949a4 Author: Ivan Vecera Date: Thu Jun 11 15:52:15 2015 +0200 bna: replace pragma(pack) with attribute __packed Signed-off-by: Ivan Vecera Signed-off-by: David S. Miller drivers/net/ethernet/brocade/bna/bfa_defs.h | 6 +- drivers/net/ethernet/brocade/bna/bfa_defs_cna.h | 14 +-- .../net/ethernet/brocade/bna/bfa_defs_mfg_comm.h | 6 +- drivers/net/ethernet/brocade/bna/bfi.h | 70 +++++++------- drivers/net/ethernet/brocade/bna/bfi_cna.h | 30 +++--- drivers/net/ethernet/brocade/bna/bfi_enet.h | 104 ++++++++++----------- 6 files changed, 103 insertions(+), 127 deletions(-) commit d6b30598509c9f6b87d3c7f217105cd3ad53887a Author: Ivan Vecera Date: Thu Jun 11 15:52:14 2015 +0200 bna: get rid of mac_t The patch converts mac_t type to widely used 'u8 [ETH_ALEN]'. Signed-off-by: Ivan Vecera Signed-off-by: David S. Miller drivers/net/ethernet/brocade/bna/bfa_defs.h | 4 ++-- drivers/net/ethernet/brocade/bna/bfa_defs_cna.h | 2 +- drivers/net/ethernet/brocade/bna/bfa_ioc.c | 8 ++++---- drivers/net/ethernet/brocade/bna/bfa_ioc.h | 2 +- drivers/net/ethernet/brocade/bna/bfi.h | 6 +++--- drivers/net/ethernet/brocade/bna/bfi_enet.h | 6 +++--- drivers/net/ethernet/brocade/bna/bna.h | 4 ++-- drivers/net/ethernet/brocade/bna/bna_enet.c | 4 ++-- drivers/net/ethernet/brocade/bna/bna_tx_rx.c | 4 ++-- drivers/net/ethernet/brocade/bna/bnad.c | 10 +++++----- drivers/net/ethernet/brocade/bna/bnad.h | 2 +- drivers/net/ethernet/brocade/bna/cna.h | 6 ------ 12 files changed, 26 insertions(+), 32 deletions(-) commit e2f9ecfcc64c9a7bcb253b57c8bc2e5c87791caa Author: Ivan Vecera Date: Thu Jun 11 15:52:13 2015 +0200 bna: use ether_addr_copy instead of memcpy Parameters of all ether_addr_copy instances were checked for proper alignment. Alignment of bnad_bcast_addr is forced to 2 as the implicit alignment is 1. I have also renamed address parameter of bnad_set_mac_address() to addr. The name mac_addr was a little bit confusing as the real parameter is struct sockaddr *. v2: added __aligned directive to bnad_bcast_addr, renamed parameter of bnad_set_mac_address() (thx joe@perches.com) Signed-off-by: Ivan Vecera Signed-off-by: David S. Miller drivers/net/ethernet/brocade/bna/bna_tx_rx.c | 12 ++++++------ drivers/net/ethernet/brocade/bna/bnad.c | 22 ++++++++++------------ 2 files changed, 16 insertions(+), 18 deletions(-) commit d205ce5c18d4fc072371889c589aeb0bbc43ce96 Merge: 7ec0bb2 3191e05 Author: David S. Miller Date: Thu Jun 11 15:55:26 2015 -0700 Merge branch 'mlx5-next' Or Gerlitz says: ==================== mlx5 Ethernet driver update - Jun 11 2015 This series from Saeed, Achiad and Gal contains few fixes to the recently introduced mlx5 Ethernet functionality. ==================== Signed-off-by: David S. Miller commit 3191e05feafaae58c04973ae8a157393eaa30519 Author: Achiad Shochat Date: Thu Jun 11 14:47:33 2015 +0300 net/mlx5e: Add transport domain to the ethernet TIRs/TISs Allocate and use transport domain by the Ethernet driver code. Signed-off-by: Achiad Shochat Signed-off-by: Saeed Mahameed Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en.h | 1 + drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) commit 56508b5013718e9df783ebb8495461357a97ceda Author: Achiad Shochat Date: Thu Jun 11 14:47:32 2015 +0300 net/mlx5_core: Add transport domain alloc/dealloc support Each transport object, namely TIR and TIS, must have a transport domain number (TDN) identifier. The driver wrongly assumed that it is OK to use TDN=0 without explicit TDN allocation from the device. The TDN will also be used for isolating different processes once user mode Ethernet will be supported. Signed-off-by: Achiad Shochat Signed-off-by: Saeed Mahameed Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/transobj.c | 35 ++++++++++++++++++++++ drivers/net/ethernet/mellanox/mlx5/core/transobj.h | 2 ++ 2 files changed, 37 insertions(+) commit 12be4b2190f0e22dc8f7c8ca173bc233d0d46246 Author: Saeed Mahameed Date: Thu Jun 11 14:47:31 2015 +0300 net/mlx5e: Support NETIF_F_SG When NETIF_F_SG is set, each send WQE may have a different size since each skb can have different number of fragments as of LSO header etc. This implies that a given WQE may wrap around the send queue, i.e begin at its end and continue at its start. While it is legal by the device spec, we preferred a solution that avoids it - when building of current WQE is done, if the next WQE may wrap around the send queue, fill the send queue with NOPs WQEs till its end, so that the next WQE will begin at send queue start. NOP WQE for itself cannot wrap around the send queue since it is of minimal size - 64 bytes, and all send WQEs are a multiple of that size. Signed-off-by: Achiad Shochat Signed-off-by: Saeed Mahameed Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en.h | 3 ++ drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 26 +++-------------- drivers/net/ethernet/mellanox/mlx5/core/en_tx.c | 35 +++++++++++++++++++++-- 3 files changed, 40 insertions(+), 24 deletions(-) commit 796a27ec2d9f722ce5a08bd5b33f3c7712fb6127 Author: Gal Pressman Date: Thu Jun 11 14:47:30 2015 +0300 net/mlx5e: Enforce max flow-tables level >= 3 The Ethernet driver requires at least 3 flow table levels to operate, enforce that. Signed-off-by: Gal Pressman Signed-off-by: Saeed Mahameed Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit cd58c714acb98a186051dc7e620d1b7ef4843311 Author: Saeed Mahameed Date: Thu Jun 11 14:47:29 2015 +0300 net/mlx5e: Disable client vlan TX acceleration We need to resolve a HW configuration issue for enabling HW CVLAN insertion. Meanwhile, no need to implement the VLAN insertion in the driver, rather use the generic kernel VLAN insertion method. Signed-off-by: Saeed Mahameed Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 1 - drivers/net/ethernet/mellanox/mlx5/core/en_tx.c | 23 ++--------------------- 2 files changed, 2 insertions(+), 22 deletions(-) commit fc11fbf9a785b25c5d07f05a30d4169ec39818da Author: Saeed Mahameed Date: Thu Jun 11 14:47:28 2015 +0300 net/mlx5e: Add HW cacheline start padding Enable HW cacheline start padding and align RX WQE size to cacheline while considering HW start padding. Also, fix dma_unmap call to use the correct SKB data buffer size. Signed-off-by: Saeed Mahameed Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 5 ++++- drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 10 +++++----- include/linux/mlx5/device.h | 4 ++++ 3 files changed, 13 insertions(+), 6 deletions(-) commit facc9699f0fe7d65a92cc09e175662659306066d Author: Saeed Mahameed Date: Thu Jun 11 14:47:27 2015 +0300 net/mlx5e: Fix HW MTU settings Previously we configured HW MTU to be netdev->mtu, actually we need to configure netdev->mtu + (ETH_HLEN + VLAN_HLEN + ETH_FCS_LEN). Also, query MTU can not fail, hence make the relevant helper a void functionm, add mlx5e_set_dev_port_mtu, helper function to handle MTU setting. Signed-off-by: Saeed Mahameed Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/infiniband/hw/mlx5/main.c | 8 +-- drivers/net/ethernet/mellanox/mlx5/core/en.h | 1 - drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 61 ++++++++++++----------- drivers/net/ethernet/mellanox/mlx5/core/port.c | 36 ++++++------- include/linux/mlx5/driver.h | 10 ++-- 5 files changed, 55 insertions(+), 61 deletions(-) commit 259f47eb4411c2e7f50372bb388c074d5729cca2 Merge: d97236e 89b8da0 Author: Kevin Hilman Date: Thu Jun 11 15:50:10 2015 -0700 Merge branch 'socfpga/soc' into next/soc * socfpga/soc: ARM: socfpga: fix build error due to secondary_startup commit 7ec0bb227aa6fb8c622bec91933e865b37dc58f2 Author: Dan Carpenter Date: Thu Jun 11 11:50:01 2015 +0300 net/mlx5_core: fix an error code We return success if mlx5e_alloc_sq_db() fails but we should return an error code. Fixes: f62b8bb8f2d3 ('net/mlx5: Extend mlx5_core to support ConnectX-4 Ethernet functionality') Signed-off-by: Dan Carpenter Acked-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 89b8da06ba302dd130df60df7964ccd3ab151cd6 Author: Kevin Hilman Date: Thu Jun 11 15:41:58 2015 -0700 ARM: socfpga: fix build error due to secondary_startup After commit 02b4e2756e01 (ARM: v7 setup function should invalidate L1 cache) the soc specific secondary_startup is removed, causing build failures: ../arch/arm/mach-socfpga/platsmp.c: In function 'socfpga_a10_boot_secondary': ../arch/arm/mach-socfpga/platsmp.c:66:140: error: 'socfpga_secondary_startup' undeclared (first use in this function) ../arch/arm/mach-socfpga/platsmp.c:66:140: note: each undeclared identifier is reported only once for each function it appears in To fix, use the generic secondary_startup. Cc: Dinh Nguyen Signed-off-by: Kevin Hilman arch/arm/mach-socfpga/platsmp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f60a8b3d1968d3e2d5259e2c2d4e9f16e19a738b Author: Fabian Frederick Date: Wed Jun 10 18:33:26 2015 +0200 vxge: use swap() in vxge_hw_channel_dtr_alloc() Use kernel.h macro definition. Thanks to Julia Lawall for Coccinelle scripting support. Signed-off-by: Fabian Frederick Signed-off-by: David S. Miller drivers/net/ethernet/neterion/vxge/vxge-traffic.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) commit d0cc11477b9f8c2e03e9c4dad82b71ec5a2e63c7 Author: Fabian Frederick Date: Wed Jun 10 18:33:19 2015 +0200 net: fs_enet: use swap() in fs_enet_rx_napi() Use kernel.h macro definition. Thanks to Julia Lawall for Coccinelle scripting support. Signed-off-by: Fabian Frederick Signed-off-by: David S. Miller drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit c9003ec8c5c2ae0481681340dff2346b144043b8 Author: Fabian Frederick Date: Wed Jun 10 18:33:16 2015 +0200 net/ibm/emac: use swap() in emac_make_bootlist() Use kernel.h macro definition. Thanks to Julia Lawall for Coccinelle scripting support. Signed-off-by: Fabian Frederick Signed-off-by: David S. Miller drivers/net/ethernet/ibm/emac/core.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) commit e55898a7ed3c1fb3ebf866e84c93f35e2bed7d5d Author: Fabian Frederick Date: Wed Jun 10 18:33:13 2015 +0200 net/mlx4_core: use swap() in mlx4_make_profile() Use kernel.h macro definition. Thanks to Julia Lawall for Coccinelle scripting support. Signed-off-by: Fabian Frederick Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/profile.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit 2df1cafa6785b680686e94c74f63e74e971195da Author: Fabian Frederick Date: Wed Jun 10 18:33:06 2015 +0200 net/mlx4: use swap() in mlx4_init_qp_table() Use kernel.h macro definition. Thanks to Julia Lawall for Coccinelle scripting support. Signed-off-by: Fabian Frederick Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/qp.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit 43f54cd52f6eea2017505d2a3ac82d372c33749b Author: Jaegeuk Kim Date: Thu Jun 11 14:33:29 2015 -0700 f2fs crypto: add alloc_bounce_page This patch adds alloc_bounce_page likewise ext4. Signed-off-by: Jaegeuk Kim fs/f2fs/crypto.c | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) commit 7e8e754a4b722216d18418b36c4b8976e7418f2b Author: Jaegeuk Kim Date: Thu Jun 11 14:23:05 2015 -0700 f2fs crypto: fix to handle errors likewise ext4 This patch makes some error handling policies same with ext4. Signed-off-by: Jaegeuk Kim fs/f2fs/crypto.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit d97236e656308ca651aea55de64a0e4089b5ad35 Author: Krzysztof Kozlowski Date: Sat Jun 6 19:02:19 2015 +0900 MAINTAINERS: ARM64: EXYNOS: Extend entry for ARM64 DTS Extend the Exynos entry to ARM64 device tree sources. Cc: Catalin Marinas Cc: Will Deacon Cc: Russell King Cc: Kukjin Kim Cc: Kevin Hilman Cc: Arnd Bergmann Cc: Olof Johansson Cc: linux-samsung-soc@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org Signed-off-by: Krzysztof Kozlowski Reviewed-by: Javier Martinez Canillas Signed-off-by: Kevin Hilman MAINTAINERS | 1 + 1 file changed, 1 insertion(+) commit eec6492861055a356f3dbc6786d9eac49778e7fe Merge: d50bfa4 2be2a3f Author: Kevin Hilman Date: Thu Jun 11 14:44:21 2015 -0700 Merge tag 'samsung-mach-1' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into next/soc Samsung updates for v4.2 - add failure(exception) handling : of_iomap(), of_find_device_by_node() and kstrdup() - add common poweroff to use PS_HOLD based for all of exynos SoCs - add exnos_get/set_boot_addr() helper - constify platform_device_id and irq_domain_ops - get current parent clock for power domain on/off - use core_initcall to register power domain driver - make exynos_core_restart() less verbose - add support coupled CPUidle for exynos3250 - fix exynos_boot_secondary() return value on timeout - fix clk_enable() in s3c24xx adc - fix missing of_node_put() for power domains * tag 'samsung-mach-1' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung: (301 commits) ARM: EXYNOS: register power domain driver from core_initcall ARM: EXYNOS: use PS_HOLD based poweroff for all supported SoCs ARM: SAMSUNG: Constify platform_device_id ARM: EXYNOS: Constify irq_domain_ops ARM: EXYNOS: add coupled cpuidle support for Exynos3250 ARM: EXYNOS: add exynos_get_boot_addr() helper ARM: EXYNOS: add exynos_set_boot_addr() helper ARM: EXYNOS: make exynos_core_restart() less verbose ARM: EXYNOS: fix exynos_boot_secondary() return value on timeout ARM: EXYNOS: Get current parent clock for power domain on/off ARM: SAMSUNG: fix clk_enable() WARNing in S3C24XX ADC ARM: EXYNOS: Add missing of_node_put() when parsing power domains ARM: EXYNOS: Handle of_find_device_by_node() and kstrdup() failures ARM: EXYNOS: Handle of of_iomap() failure Linux 4.1-rc4 .... commit e097dc624f784debbde49701a493bf920bc422c7 Author: Vincent Cuissard Date: Thu Jun 11 14:00:20 2015 +0200 NFC: nfcmrvl: add UART driver Add support of Marvell NFC chip controlled over UART Signed-off-by: Vincent Cuissard Signed-off-by: Samuel Ortiz .../devicetree/bindings/net/nfc/nfcmrvl.txt | 29 +++ drivers/nfc/nfcmrvl/Kconfig | 11 + drivers/nfc/nfcmrvl/Makefile | 3 + drivers/nfc/nfcmrvl/nfcmrvl.h | 7 + drivers/nfc/nfcmrvl/uart.c | 225 +++++++++++++++++++++ include/linux/platform_data/nfcmrvl.h | 9 + net/nfc/nci/uart.c | 1 - 7 files changed, 284 insertions(+), 1 deletion(-) commit dc14bdef8762a8098b1da881b611d722e24fe787 Author: Vincent Cuissard Date: Thu Jun 11 14:00:19 2015 +0200 NFC: nfcmrvl: add platform_data and DT configuration Declare nfcmrvl platform_data structure and few DT parameters for nfcmrvl driver. Signed-off-by: Vincent Cuissard Signed-off-by: Samuel Ortiz drivers/nfc/nfcmrvl/main.c | 66 +++++++++++++++++++++++++++-------- drivers/nfc/nfcmrvl/nfcmrvl.h | 36 +++++++++++++------ drivers/nfc/nfcmrvl/usb.c | 6 +++- include/linux/platform_data/nfcmrvl.h | 31 ++++++++++++++++ 4 files changed, 113 insertions(+), 26 deletions(-) commit 7d5a0ff5a808cc582542c00a6f669dbcd411ece5 Merge: ecdf94d b700451 Author: Kevin Hilman Date: Thu Jun 11 14:39:19 2015 -0700 Merge tag 'samsung-dt-4' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into next/dt Samsung another DT udpates for v4.2 - use labels for overriding nodes for all of exynos stuff (by Krzysztof Kozlowski) - add sysmmu nodes for exynos SoCs (by Marek Szyprowski) - for exynos5422-odroidxu3 : enalbe wake alarm of S2MPS11 RTC : Hook up PWM and use it for LEDs : add support for Odroid XU3 Lite - remove duplicated i2c7 for exynos5250-snow - add JPEG codec nodes for exynos5420 - add vendor prefix for Hardkernel * tag 'samsung-dt-4' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung: (33 commits) ARM: dts: add sysmmu nodes for exynos5420 ARM: dts: add sysmmu nodes for exynos5250 ARM: dts: add sysmmu nodes for exynos4415 ARM: dts: add sysmmu nodes for exynos3250 ARM: dts: add sysmmu nodes for exynos4 ARM: dts: Add Odroid XU3 Lite support of: Add vendor prefix for Hardkernel ARM: dts: odroidxu3: Enable wake alarm of S2MPS11 RTC ARM: dts: exynos5420: add nodes for jpeg codec ARM: dts: s3c2416: Use labels for overriding nodes in SMDK2416 ARM: dts: s3c2416: Add labels to S3C2416 nodes ARM: dts: Use labels for overriding nodes in exynos5422-odroidxu3 ARM: dts: Use labels for overriding nodes in exynos5440 boards ARM: dts: Use labels for overriding nodes in exynos5420-smdk5420 ARM: dts: Use labels for overriding nodes in exynos542x ARM: dts: Use labels for overriding nodes in exynos5420-arndale-octa ARM: dts: Remove duplicated I2C7 nodes in exynos5250-snow ARM: dts: Use labels for overriding nodes in exynos5250 ARM: dts: Add labels to exynos5 nodes ARM: dts: exynos5422-odroidxu3: Hook up PWM and use it for LEDs ... commit ecdf94da6f91310d08081e05db78a6c997b44e4b Merge: e28f23d c65b99f Author: Kevin Hilman Date: Thu Jun 11 14:37:45 2015 -0700 Merge tag 'v4.1-rc6' into next/dt Linux 4.1-rc6 Conflicts: arch/arm/boot/dts/zynq-7000.dtsi Resolution summary: Mainline had an earlier version of the commit, resolve in favor of the newer patch in next/dt branch. commit 9961127d4bce6325e9a0b0fb105e0c85a6c62cb7 Author: Vincent Cuissard Date: Thu Jun 11 11:25:47 2015 +0200 NFC: nci: add generic uart support Some NFC controller supports UART as host interface. As with SPI, a lot of code can be shared between vendor drivers. This patch add the generic support of UART and provides some extension API for vendor specific needs. This code is strongly inspired by the Bluetooth HCI ldisc implementation. NCI UART vendor drivers will have to register themselves to this layer via nci_uart_register. Underlying tty will have to be configured from user land thanks to an ioctl. Signed-off-by: Vincent Cuissard Signed-off-by: Samuel Ortiz include/net/nfc/nci.h | 1 + include/net/nfc/nci_core.h | 47 +++++ include/uapi/linux/tty.h | 1 + net/nfc/nci/Kconfig | 7 + net/nfc/nci/Makefile | 3 + net/nfc/nci/uart.c | 495 +++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 554 insertions(+) commit e28f23d8aaf3c3455edcdf646d910757051a07e3 Merge: 386f56b 5ec1d44 Author: Kevin Hilman Date: Thu Jun 11 14:31:55 2015 -0700 Merge tag 'samsung-dt-3' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into next/dt Samsung DT updates for v4.2 - for exyos3250 : use s3c6410-rtc instead of exynos3250-rtc : add JPEG codec node and support it on exynos3250-rinato : use s3c-rtc clock id for exynos3250-rinato and monk boards - for exynos4 : add JPEG codec node and syscon property to MIPI DPHY : remove obsolete MIPI DPHY reg property : enable s3c-rtc on exynos4412-trats2 - for exynos5 : add syscon property to MIPI DPHY for exynos5420 : enable s3c-rtc on exynos5420-arndale-octa : add missing irq pinctrl for max77686 on exynos5250-smdk5250 : clk: add bindings for 32kHz clocks from s2mps11 : fix pinctrl for s2mps11-irq on exynos5420-arndale-octa - for exynos5422-odroidxu3 : add mmc detect gpio and LEDs : add HS400 support, simple-audio-card and rtc_src clock * tag 'samsung-dt-3' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung: ARM: dts: Add syscon property to the MIPI DPHY for exynos4415 ARM: dts: Remove obsolete MIPI DPHY 'reg' property for exynos4 ARM: dts: Use last parent for clocks during power domain on/off ARM: dts: add support JPEG codec for exynos3250-rinato ARM: dts: support simple-audio-card for exynos5420 and exynos5422-odroidxu3 ARM: dts: add jpeg-codec node for exynos4 and exynos4x12 ARM: dts: Enable S3C RTC on exynos4412-trats2 and exynos5420-arndale-octa ARM: dts: Use define for s3c-rtc clock id for exynos3250-monk ARM: dts: Use define for s3c-rtc clock id for exynos3250-rinato ARM: dts: Use s3c6410-rtc instead of exynos3250-rtc for exynos3250/4415 ARM: dts: add 'rtc_src' clock to rtc node for exynos5422-odroidxu3 clk: samsung: Add bindings for 32kHz clocks from s2mps11 ARM: dts: fix pinctrl for s2mps11-irq on exynos5420-arndale-octa ARM: dts: Add syscon property to the MIPI phy in exynos5420 ARM: dts: Add HS400 support for exynos5422-odroidxu3 ARM: dts: Add LEDs for exynos5422-odroidxu3 ARM: dts: add mmc detect gpio for exynos5422-odroidxu3 ARM: dts: add JPEG codec device node for exynos3250 ARM: dts: Add missing irq pinctrl for max77686 on smdk5250 commit 662cfed8a135ef980909bd5e33aaa3e43195acf1 Author: Krzysztof Kozlowski Date: Wed Jun 3 10:10:04 2015 +0900 ARM: multi_v7_defconfig: Enable display on Trats2 board Enable the Exynos DSI and S6E8AA0 panel for full X11 display on Trats2. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim Signed-off-by: Kevin Hilman arch/arm/configs/multi_v7_defconfig | 2 ++ 1 file changed, 2 insertions(+) commit 4a2b947f56b33cde68d6e0543160ea09ce651fd9 Author: Vincent Cuissard Date: Thu Jun 11 11:25:46 2015 +0200 NFC: nfcmrvl: add chip reset management Low level driver can specify a GPIO that will be used to reset the chip. Thanks to this the driver can ensure the state of the device at init. Signed-off-by: Vincent Cuissard Signed-off-by: Samuel Ortiz drivers/nfc/nfcmrvl/main.c | 30 ++++++++++++++++++++++++++++++ drivers/nfc/nfcmrvl/nfcmrvl.h | 8 ++++++++ 2 files changed, 38 insertions(+) commit c182048058b026a9f02bf0d187c63320c6f6458d Merge: 5d358d1 f882d3c Author: Kevin Hilman Date: Thu Jun 11 14:24:47 2015 -0700 Merge tag 'samsung-defconfig-2' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into next/defconfig exynos_defconfig updates for v4.2 - enable DRM_EXYNOS_DSI and DRM_PANEL_S6E8AA0 for full X11 display on Trats2 board - enable SENSORS_PWM_FAN to control fan power on Odroid-XU3 board - enable SENSORS_INA2XX for power monitor sensor on Odriod-XU3 board - do savedefconfig to remove useless configs and check its dependencies * tag 'samsung-defconfig-2' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung: ARM: exynos_defconfig: Enable CONFIG_SENSORS_INA2XX for Odroid-XU3 ARM: exynos_defconfig: Enable CONFIG_SENSORS_PWM_FAN for Odroid-XU3 ARM: exynos_defconfig: savedefconfig ARM: exynos_defconfig: Enable display on Trats2 board commit 8a81a96bd116ef5c505f37e035ce141f6b35a6a7 Author: Vincent Cuissard Date: Thu Jun 11 11:25:45 2015 +0200 NFC: nfcmrvl: update USB device id Device ID was not restrictive enough. This patch select the USB device with the full device and interface characteristics. Signed-off-by: Vincent Cuissard Signed-off-by: Samuel Ortiz drivers/nfc/nfcmrvl/usb.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit e1bf80c2a59895f12f596608b91856bab1c562bb Author: Vincent Cuissard Date: Thu Jun 11 11:25:44 2015 +0200 NFC: nfcmrvl: update nci recv frame API Update internal nci recv frame API to use skbuff phy management to generic part of the driver. Signed-off-by: Vincent Cuissard Signed-off-by: Samuel Ortiz drivers/nfc/nfcmrvl/main.c | 20 +++++++++----------- drivers/nfc/nfcmrvl/nfcmrvl.h | 2 +- drivers/nfc/nfcmrvl/usb.c | 17 +++++++++++++---- 3 files changed, 23 insertions(+), 16 deletions(-) commit f1f1a7da2b3853bf55ee5aab47c8916454b65fa8 Author: Vincent Cuissard Date: Thu Jun 11 11:25:43 2015 +0200 NFC: nfcmrvl: add support of HCI-based transport In some configuration NCI packet can be encapsulated in HCI packets. This patch had the support of this. Signed-off-by: Vincent Cuissard Signed-off-by: Samuel Ortiz drivers/nfc/nfcmrvl/main.c | 35 +++++++++++++++++++++++++++++++++-- drivers/nfc/nfcmrvl/nfcmrvl.h | 19 ++++++++++++++++++- drivers/nfc/nfcmrvl/usb.c | 2 +- 3 files changed, 52 insertions(+), 4 deletions(-) commit d50bfa4763e39d6372deabfd87df913e6a66ef0f Author: Mika Westerberg Date: Mon Jun 8 15:22:39 2015 +0200 ARM: ep93xx: simone: support for SPI-based MMC/SD cards This includes setting up EGPIOs 0 and 9 for card detection and chip select respectively. This patch is needed to mount a root filesystem on the SPI-based MMC card reader found on the Sim.One. Signed-off-by: Mika Westerberg Signed-off-by: Linus Walleij Reviewed-by: H Hartley Sweeten Signed-off-by: Kevin Hilman arch/arm/mach-ep93xx/simone.c | 135 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 134 insertions(+), 1 deletion(-) commit 386f56bb7330db4e8d64ba16e301c39728b1519f Author: Linus Walleij Date: Fri Jun 5 09:42:25 2015 +0200 ARM: nomadik: set proper compatible for accelerometer Adjust device tree entry to the proper registered compatible string for LIS3LV02DL. Signed-off-by: Linus Walleij Signed-off-by: Kevin Hilman arch/arm/boot/dts/ste-nomadik-stn8815.dtsi | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 5d358d1580959b42376a00e902b18b418f2ae1ec Author: Linus Walleij Date: Thu Jun 4 13:41:41 2015 +0200 ARM64: add GPIO keys to the defconfig The Juno board, and likely many other boards, likes to use simple GPIO keys for input events. Enabled this in the default ARM64 defconfig. Signed-off-by: Linus Walleij Reviewed-by: Shannon Zhao Signed-off-by: Kevin Hilman arch/arm64/configs/defconfig | 1 + 1 file changed, 1 insertion(+) commit d18ee5a5b0926f1a5f6969e9207d9c4f99533f9b Author: Vincent Cuissard Date: Thu Jun 11 11:25:42 2015 +0200 NFC: nfcmrvl: remove integration related settings These settings are related to a specific integration that requires the firmware to drive some GPIOs for external RF coexistency. Since this is really linked to specific hardware integration let's remove them. Signed-off-by: Vincent Cuissard Signed-off-by: Samuel Ortiz drivers/nfc/nfcmrvl/main.c | 9 --------- 1 file changed, 9 deletions(-) commit 53bdd72c68f0861d57851232c14a5750779b368b Author: Linus Walleij Date: Thu Jun 4 13:41:12 2015 +0200 ARM64: juno: add GPIO keys The Juno board has two keys connected to a PL061 GPIO block, in accordance to DDI0524B "ARM Versatile Express Juno Development Platform" revision 1.0, table 2-4 "GPIO (0) and GPIO (1) used for additional user key entry". By trial-and-error I found that these are connected to the two keys named "power" and "home" on the motherboard. Register the GPIO block and these two keys in the device tree using the PL061 GPIO driver and the generic gpio keys. - Map POWER, HOME, VOL+ and VOL- to the obvious input events. - Map RLOCK to KEY_SCREENLOCK/KEY_COFFEE unless someone can explain better what this is for. - Map the NMI button to KEY_SYSREQ as this is used like so in the SYSREQ debugging hack. Acked-by: Liviu Dudau Signed-off-by: Linus Walleij Signed-off-by: Kevin Hilman arch/arm64/boot/dts/arm/juno-motherboard.dtsi | 61 +++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) commit b1f11aff04cc86daa0757ada5deb669a92a8f0fb Author: Joe Thornber Date: Thu Jun 11 17:11:48 2015 +0100 dm thin metadata: fix a race when entering fail mode In dm_thin_find_block() the ->fail_io flag was checked outside the metadata device's root_lock, causing dm_thin_find_block() to race with the setting of this flag. Signed-off-by: Joe Thornber Signed-off-by: Mike Snitzer drivers/md/dm-thin-metadata.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit fd467696e8beb542144cd005ff96cd35fff41354 Author: Mike Snitzer Date: Tue Jun 9 12:31:26 2015 -0400 dm thin: fail messages with EOPNOTSUPP when pool cannot handle messages Use EOPNOTSUPP, rather than EINVAL, error code when user attempts to send the pool a message. Otherwise usespace is led to believe the message failed due to invalid argument. Reported-by: Zdenek Kabelac Signed-off-by: Mike Snitzer drivers/md/dm-thin.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 34fbcf6257eb3f39a5b78a4f51b40f881b82033b Author: Joe Thornber Date: Thu Apr 16 12:58:35 2015 +0100 dm thin: range discard support Previously REQ_DISCARD bios have been split into block sized chunks before submission to the thin target. There are a couple of issues with this: - If the block size is small, a large discard request can get broken up into a great many bios which is both slow and causes a lot of memory pressure. - The thin pool block size and the discard granularity for the underlying data device need to be compatible if we want to passdown the discard. This patch relaxes the block size granularity for thin devices. It makes use of the recent range locking added to the bio_prison to quiesce a whole range of thin blocks before unmapping them. Once a thin range has been unmapped the discard can then be passed down to the data device for those sub ranges where the data blocks are no longer used (ie. they weren't shared in the first place). This patch also doesn't make any apologies about open-coding portions of block core as a means to supporting async discard completions in the near-term -- if/when late bio splitting lands it'll all get cleaned up. Signed-off-by: Joe Thornber Signed-off-by: Mike Snitzer drivers/md/dm-thin.c | 583 ++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 434 insertions(+), 149 deletions(-) commit 6550f075f5087459f64c1af71298fc50b102af11 Author: Joe Thornber Date: Mon Apr 13 09:45:25 2015 +0100 dm thin metadata: add dm_thin_remove_range() Removes a range of blocks from the btree. Signed-off-by: Joe Thornber Signed-off-by: Mike Snitzer drivers/md/dm-thin-metadata.c | 54 +++++++++++++++++++++++++++++++++++++++++++ drivers/md/dm-thin-metadata.h | 2 ++ 2 files changed, 56 insertions(+) commit a5d895a90bf57e5fe87edf48dd1852e7292d570d Author: Joe Thornber Date: Thu Apr 16 12:47:21 2015 +0100 dm thin metadata: add dm_thin_find_mapped_range() Retrieve the next run of contiguously mapped blocks. Useful for working out where to break up IO. Signed-off-by: Joe Thornber Signed-off-by: Mike Snitzer drivers/md/dm-thin-metadata.c | 57 +++++++++++++++++++++++++++++++++++++++++++ drivers/md/dm-thin-metadata.h | 9 +++++++ 2 files changed, 66 insertions(+) commit 4ec331c3ea7ec94f28aa1c62a279cfa1cfe3c91b Author: Joe Thornber Date: Mon Apr 13 09:41:44 2015 +0100 dm btree: add dm_btree_remove_leaves() Removes a range of leaf values from the tree. Signed-off-by: Joe Thornber Signed-off-by: Mike Snitzer drivers/md/persistent-data/dm-btree-remove.c | 127 +++++++++++++++++++++++++++ drivers/md/persistent-data/dm-btree.h | 9 ++ 2 files changed, 136 insertions(+) commit 0f24b79b52730e15d9e3386ce27da2110eb4597d Author: Pekka Enberg Date: Fri May 15 21:35:21 2015 +0300 dm stats: Use kvfree() in dm_kvfree() Use kvfree() instead of open-coding it. Signed-off-by: Pekka Enberg Signed-off-by: Mike Snitzer drivers/md/dm-stats.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit fba10109a45d864bab98ae90dd63bcc2789352b3 Author: Joe Thornber Date: Fri May 29 10:20:56 2015 +0100 dm cache: age and write back cache entries even without active IO The policy tick() method is normally called from interrupt context. Both the mq and smq policies do some bottom half work for the tick method in their map functions. However if no IO is going through the cache, then that bottom half work doesn't occur. With these policies this means recently hit entries do not age and do not get written back as early as we'd like. Fix this by introducing a new 'can_block' parameter to the tick() method. When this is set the bottom half work occurs immediately. 'can_block' is set when the tick method is called every second by the core target (not in interrupt context). Signed-off-by: Joe Thornber Signed-off-by: Mike Snitzer drivers/md/dm-cache-policy-internal.h | 4 ++-- drivers/md/dm-cache-policy-mq.c | 8 +++++++- drivers/md/dm-cache-policy-smq.c | 8 +++++++- drivers/md/dm-cache-policy.h | 4 ++-- drivers/md/dm-cache-target.c | 4 ++-- 5 files changed, 20 insertions(+), 8 deletions(-) commit b61d9509628fea995196a96b4c1713fa67dade88 Author: Mike Snitzer Date: Wed Apr 22 17:25:56 2015 -0400 dm cache: prefix all DMERR and DMINFO messages with cache device name Having the DM device name associated with the ERR or INFO message is very helpful. Signed-off-by: Mike Snitzer drivers/md/dm-cache-target.c | 102 +++++++++++++++++++++++++++---------------- 1 file changed, 64 insertions(+), 38 deletions(-) commit 028ae9f76f2935e8cf9974bff9a4587e3a995ff3 Author: Joe Thornber Date: Wed Apr 22 16:42:35 2015 -0400 dm cache: add fail io mode and needs_check flag If a cache metadata operation fails (e.g. transaction commit) the cache's metadata device will abort the current transaction, set a new needs_check flag, and the cache will transition to "read-only" mode. If aborting the transaction or setting the needs_check flag fails the cache will transition to "fail-io" mode. Once needs_check is set the cache device will not be allowed to activate. Activation requires write access to metadata. Future work is needed to add proper support for running the cache in read-only mode. Once in fail-io mode the cache will report a status of "Fail". Also, add commit() wrapper that will disallow commits if in read_only or fail mode. Signed-off-by: Joe Thornber Signed-off-by: Mike Snitzer Documentation/device-mapper/cache.txt | 9 +- drivers/md/dm-cache-metadata.c | 133 ++++++++++++++++++---- drivers/md/dm-cache-metadata.h | 10 ++ drivers/md/dm-cache-policy-internal.h | 10 +- drivers/md/dm-cache-policy-mq.c | 8 +- drivers/md/dm-cache-policy.h | 4 +- drivers/md/dm-cache-target.c | 204 +++++++++++++++++++++++++++++----- 7 files changed, 320 insertions(+), 58 deletions(-) commit 88bf5184fa5861e766e39fd34fc6d21557ac7be8 Author: Joe Thornber Date: Wed May 27 15:39:45 2015 +0100 dm cache: wake the worker thread every time we free a migration object When the cache is idle, writeback work was only being issued every second. With this change outstanding writebacks are streamed constantly. This offers a writeback performance improvement. Signed-off-by: Joe Thornber Signed-off-by: Mike Snitzer drivers/md/dm-cache-target.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 66a636356647a9be8885c2ce2948de126577698a Author: Joe Thornber Date: Fri May 15 15:33:34 2015 +0100 dm cache: add stochastic-multi-queue (smq) policy The stochastic-multi-queue (smq) policy addresses some of the problems with the current multiqueue (mq) policy. Memory usage ------------ The mq policy uses a lot of memory; 88 bytes per cache block on a 64 bit machine. SMQ uses 28bit indexes to implement it's data structures rather than pointers. It avoids storing an explicit hit count for each block. It has a 'hotspot' queue rather than a pre cache which uses a quarter of the entries (each hotspot block covers a larger area than a single cache block). All these mean smq uses ~25bytes per cache block. Still a lot of memory, but a substantial improvement nontheless. Level balancing --------------- MQ places entries in different levels of the multiqueue structures based on their hit count (~ln(hit count)). This means the bottom levels generally have the most entries, and the top ones have very few. Having unbalanced levels like this reduces the efficacy of the multiqueue. SMQ does not maintain a hit count, instead it swaps hit entries with the least recently used entry from the level above. The over all ordering being a side effect of this stochastic process. With this scheme we can decide how many entries occupy each multiqueue level, resulting in better promotion/demotion decisions. Adaptability ------------ The MQ policy maintains a hit count for each cache block. For a different block to get promoted to the cache it's hit count has to exceed the lowest currently in the cache. This means it can take a long time for the cache to adapt between varying IO patterns. Periodically degrading the hit counts could help with this, but I haven't found a nice general solution. SMQ doesn't maintain hit counts, so a lot of this problem just goes away. In addition it tracks performance of the hotspot queue, which is used to decide which blocks to promote. If the hotspot queue is performing badly then it starts moving entries more quickly between levels. This lets it adapt to new IO patterns very quickly. Performance ----------- In my tests SMQ shows substantially better performance than MQ. Once this matures a bit more I'm sure it'll become the default policy. Signed-off-by: Joe Thornber Signed-off-by: Mike Snitzer drivers/md/Kconfig | 12 + drivers/md/Makefile | 2 + drivers/md/dm-cache-policy-smq.c | 1768 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 1782 insertions(+) commit 0b08c5e59441d08ab4b5e72afefd5cd98a4d83df Author: Jan Kara Date: Tue Jun 2 17:08:29 2015 +0200 audit: Fix check of return value of strnlen_user() strnlen_user() returns 0 when it hits fault, not -1. Fix the test in audit_log_single_execve_arg(). Luckily this shouldn't ever happen unless there's a kernel bug so it's mostly a cosmetic fix. CC: Paul Moore Signed-off-by: Jan Kara Signed-off-by: Paul Moore kernel/auditsc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6f02dc88be1d5ecfcc2b708250f4e5d49295326c Author: Jeff Layton Date: Thu Jun 4 18:40:13 2015 -0400 nfs: deny backchannel RPCs with an incorrect authflavor instead of dropping them A drop should really only be done when the frame is malformed or we have reason to think that there is some sort of DoS going on. When we get an RPC with bad auth, we should send back an error instead. Cc: Andy Adamson Signed-off-by: Jeff Layton Signed-off-by: Trond Myklebust fs/nfs/callback.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 5fd23f7e1d74c0fd100ffb0b04dc85727760d9ea Author: Chuck Lever Date: Thu Jun 11 13:47:10 2015 -0400 SUNRPC: Address kbuild warning in net/sunrpc/debugfs.c Cross-compile test on ARCH=mn10300: In file included from include/linux/list.h:8:0, from include/linux/wait.h:6, from include/linux/fs.h:6, from include/linux/debugfs.h:18, from net/sunrpc/debugfs.c:7: net/sunrpc/debugfs.c: In function 'fault_disconnect_write': include/linux/kernel.h:723:17: warning: comparison of distinct pointer types lacks a cast (void) (&_min1 == &_min2); \ ^ >> net/sunrpc/debugfs.c:307:8: note: in expansion of macro 'min' len = min(len, sizeof(buffer) - 1); Fixes: ('SUNRPC: Transport fault injection') Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust net/sunrpc/debugfs.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit e937ee714b2df638275a61a99e0d033682f764d2 Author: Kinglong Mee Date: Tue Jun 2 18:58:46 2015 +0800 nfs: Only update callback sequnce id when CB_SEQUENCE success When testing pnfs layout, nfsd got error NFS4ERR_SEQ_MISORDERED. It is caused by nfs return NFS4ERR_DELAY before validate_seqid(), don't update the sequnce id, but nfsd updates the sequnce id !!! According to RFC5661 20.9.3, " If CB_SEQUENCE returns an error, then the state of the slot (sequence ID, cached reply) MUST NOT change. " Signed-off-by: Kinglong Mee Signed-off-by: Trond Myklebust fs/nfs/callback_proc.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) commit 73bf8412e4f24b114c853012663fff4d3cde06a2 Author: Will Deacon Date: Thu Jun 11 18:16:47 2015 +0100 arm64: psci: fix !CONFIG_HOTPLUG_CPU build warning When building without CONFIG_HOTPLUG_CPU, GCC complains (rightly) that psci_tos_resident_on is unused: arch/arm64/kernel/psci.c:61:13: warning: ‘psci_tos_resident_on’ defined but not used [-Wunused-function] static bool psci_tos_resident_on(int cpu) As it's only ever used when CONFIG_HOTPLUG_CPU is selected, let's move it into the existing ifdef. Signed-off-by: Will Deacon [Mark: write commit message] Signed-off-by: Mark Rutland Signed-off-by: Catalin Marinas arch/arm64/kernel/psci.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 1a370be9ac51129e40b0ed7fa71d2b2b92bc47e5 Author: Rob Clark Date: Sun Jun 7 13:46:04 2015 -0400 drm/msm: restart queued submits after hang Track the list of in-flight submits. If the gpu hangs, retire up to an including the offending submit, and then re-submit the remainder. This way, for concurrently running piglit tests (for example), one failing test doesn't cause unrelated tests to fail simply because it's submit was queued up after one that triggered a hang. Signed-off-by: Rob Clark drivers/gpu/drm/msm/msm_gem.h | 1 + drivers/gpu/drm/msm/msm_gem_submit.c | 1 - drivers/gpu/drm/msm/msm_gpu.c | 49 +++++++++++++++++++++++++++++++++--- drivers/gpu/drm/msm/msm_gpu.h | 2 ++ 4 files changed, 49 insertions(+), 4 deletions(-) commit 56c2da8338d5cdfc0695eeed96ebe03cf2ac0321 Author: Rob Clark Date: Mon May 11 11:50:03 2015 -0400 drm/msm: fix timeout calculation The 'timeout' value comes from userspace (CLOCK_MONOTONIC), but converting this directly to jiffies doesn't take into account the initial jiffies count at boot, which may differ from the base time of CLOCK_MONOTONIC. TODO: add ktime_delta_jiffies() when rebasing on 4.1 and use that instead of ktime_sub/ktime_to_timespec/timespec_to_jiffies combo (as suggested by Arnd) v2: switch over from 'struct timespec' to ktime_t throughout, since 'struct timespec' will be deprecated (as suggested by Arnd) v3: minor cosmetic tweaks Cc: Arnd Bergmann Signed-off-by: Rob Clark drivers/gpu/drm/msm/msm_atomic.c | 4 ++-- drivers/gpu/drm/msm/msm_drv.c | 26 ++++++++++++++++---------- drivers/gpu/drm/msm/msm_drv.h | 4 ++-- drivers/gpu/drm/msm/msm_gem.c | 3 +-- 4 files changed, 21 insertions(+), 16 deletions(-) commit 865807d0a96934593bc143e374b353d9c17e977f Author: Stephane Viau Date: Thu Jun 4 17:31:42 2015 -0400 drm/msm/hdmi: Use pinctrl in HDMI driver Some targets (eg: msm8994) use the pinctrl framework to configure interface pins. This change adds support for initialization and pinctrl active/sleep state control for the HDMI driver. Signed-off-by: Stephane Viau Signed-off-by: Rob Clark Documentation/devicetree/bindings/drm/msm/hdmi.txt | 6 ++++++ drivers/gpu/drm/msm/hdmi/hdmi_connector.c | 11 +++++++++++ 2 files changed, 17 insertions(+) commit 5e4eb82fc23bafa76b0b010f41401eb75db9a851 Author: Stephane Viau Date: Thu Jun 4 17:31:41 2015 -0400 drm/msm/hdmi: Point to the right struct device DRM device's dev (hdmi->dev->dev) points to the mdss_mdp device handle. Instead, we should get a reference to the mdss_hdmi handle. Signed-off-by: Stephane Viau Signed-off-by: Rob Clark drivers/gpu/drm/msm/hdmi/hdmi_connector.c | 32 +++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) commit fbd4ae8a4eab0a3549f3646c3fb6ddbb414da4b3 Author: Stephane Viau Date: Wed Jun 3 17:27:21 2015 -0400 drm/msm/mdp: Add support for more 32-bit RGB formats That will complete the lists of Alpha + RGB formats. Signed-off-by: Stephane Viau Signed-off-by: Rob Clark drivers/gpu/drm/msm/mdp/mdp_format.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 7f8fc88613d6310993e8d7d827e0b956b3a744fa Author: Mikko Rapeli Date: Sat May 30 17:38:08 2015 +0200 drm/msm: use __s32, __s64, __u32 and __u64 from linux/types.h for uabi Fixes userspace compilation errors like: error: unknown type name ‘uint32_t’ Signed-off-by: Mikko Rapeli Signed-off-by: Rob Clark include/uapi/drm/msm_drm.h | 76 +++++++++++++++++++++++----------------------- 1 file changed, 38 insertions(+), 38 deletions(-) commit f65c18c050b8386dbeec26e965bc018bb808cc88 Author: Laurent Pinchart Date: Wed May 27 14:39:46 2015 +0300 drm/msm/atomic: Clean up planes in the error paths of .atomic_commit() When the .atomic_commit() handler fails, clean up planes previoulsy prepared by drm_atomic_helper_prepare_planes() with a call to drm_atomic_helper_cleanup_planes(). Signed-off-by: Laurent Pinchart Signed-off-by: Rob Clark drivers/gpu/drm/msm/msm_atomic.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit 1efb92a306f08119c81de148b05afc24446b8d7a Author: Hai Li Date: Fri May 22 10:16:46 2015 -0400 drm/msm/mdp5: Always generate active-high sync signals for DSI DSI video mode engine can only take active-high sync signals. This change prevents MDP5 sending active-low sync signals to DSI in any case. Signed-off-by: Hai Li Tested-by: Archit Taneja Signed-off-by: Rob Clark drivers/gpu/drm/msm/mdp/mdp5/mdp5_encoder.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 964a0754e49691d0d675ac00d09042118f098cd0 Author: Brian Norris Date: Wed May 20 15:59:31 2015 -0700 drm/msm: dsi: fix compile errors when CONFIG_GPIOLIB=n I'm not sure where, exactly, but somewhere in here we must be relying on an implicit include. drivers/gpu/drm/msm/dsi/dsi_host.c: In function ‘dsi_host_init_panel_gpios’: drivers/gpu/drm/msm/dsi/dsi_host.c:1356:2: error: implicit declaration of function ‘devm_gpiod_get’ [-Werror=implicit-function-declaration] msm_host->disp_en_gpio = devm_gpiod_get(panel_device, ^ drivers/gpu/drm/msm/dsi/dsi_host.c:1356:25: warning: assignment makes pointer from integer without a cast [enabled by default] msm_host->disp_en_gpio = devm_gpiod_get(panel_device, ^ drivers/gpu/drm/msm/dsi/dsi_host.c:1364:3: error: implicit declaration of function ‘gpiod_direction_output’ [-Werror=implicit-function-declaration] ret = gpiod_direction_output(msm_host->disp_en_gpio, 0); ^ drivers/gpu/drm/msm/dsi/dsi_host.c:1371:20: warning: assignment makes pointer from integer without a cast [enabled by default] msm_host->te_gpio = devm_gpiod_get(panel_device, "disp-te"); ^ drivers/gpu/drm/msm/dsi/dsi_host.c:1378:3: error: implicit declaration of function ‘gpiod_direction_input’ [-Werror=implicit-function-declaration] ret = gpiod_direction_input(msm_host->te_gpio); ^ drivers/gpu/drm/msm/dsi/dsi_host.c: In function ‘msm_dsi_host_power_on’: drivers/gpu/drm/msm/dsi/dsi_host.c:1918:3: error: implicit declaration of function ‘gpiod_set_value’ [-Werror=implicit-function-declaration] gpiod_set_value(msm_host->disp_en_gpio, 1); ^ Signed-off-by: Brian Norris Cc: David Airlie Cc: Rob Clark Cc: Hai Li Cc: dri-devel@lists.freedesktop.org Signed-off-by: Rob Clark drivers/gpu/drm/msm/dsi/dsi_host.c | 1 + 1 file changed, 1 insertion(+) commit 9590e69db93d72684f6f1ae7307e2cac7aa5bca8 Author: Uwe Kleine-König Date: Wed May 20 09:21:41 2015 +0200 drm/msm: use devm_gpiod_get_optional for optional reset gpio Since 39b2bbe3d715 (gpio: add flags argument to gpiod_get*() functions) which appeared in v3.17-rc1, the gpiod_get* functions take an additional parameter that allows to specify direction and initial value for output. Also there is a variant to find optional gpios that returns NULL if there is no gpio instead of -ENOENT. Make use of both features to simplify the driver. This makes error checking more strict because errors like -ENOSYS ("no gpio support compiled in") or -EPROBE_DEFER ("gpio not ready yet") are handled correctly now. Furthermore this is one caller less that stops us making the flags argument to gpiod_get*() mandatory. Reviewed-by: Linus Walleij Signed-off-by: Uwe Kleine-König Signed-off-by: Rob Clark drivers/gpu/drm/msm/dsi/dsi_host.c | 29 ++++++----------------------- 1 file changed, 6 insertions(+), 23 deletions(-) commit ec31abf6684ebe1134eb3320c96fb92e566eff74 Author: Hai Li Date: Fri May 15 13:04:06 2015 -0400 drm/msm/dsi: Separate PHY to another platform device There are different types of PHY from one chipset to another, while the DSI host controller is relatively consistent across platforms. Also, the PLL inside PHY is providing the source of DSI byte and pixel clocks, which are used by DSI host controller. Separated devices for clock provider and clock consumer make DSI driver better fit into common clock framework. Signed-off-by: Hai Li Signed-off-by: Rob Clark Documentation/devicetree/bindings/drm/msm/dsi.txt | 59 +++-- drivers/gpu/drm/msm/dsi/dsi.c | 45 +++- drivers/gpu/drm/msm/dsi/dsi.h | 25 +- drivers/gpu/drm/msm/dsi/dsi_host.c | 25 +- drivers/gpu/drm/msm/dsi/dsi_phy.c | 266 ++++++++++++++++++---- 5 files changed, 326 insertions(+), 94 deletions(-) commit 9d32c4989c858af12b333ae9a3c160a91ff43934 Author: Hai Li Date: Fri May 15 13:04:05 2015 -0400 drm/msm/dsi: Enable PLL driver in MSM DSI This change activates PLL driver for DSI to work with common clock framework. Signed-off-by: Hai Li Signed-off-by: Rob Clark drivers/gpu/drm/msm/dsi/dsi.c | 14 +++++++ drivers/gpu/drm/msm/dsi/dsi.h | 43 ++++++++++++++++--- drivers/gpu/drm/msm/dsi/dsi_host.c | 60 ++++++++++++++++++++++---- drivers/gpu/drm/msm/dsi/dsi_manager.c | 79 +++++++++++++++++++++++++---------- drivers/gpu/drm/msm/dsi/dsi_phy.c | 68 ++++++++++++++++++++++++++++++ 5 files changed, 229 insertions(+), 35 deletions(-) commit 825637b9c06cede2a742421b0ea6f24428099af3 Author: Hai Li Date: Fri May 15 13:04:04 2015 -0400 drm/msm/dsi: Add DSI PLL clock driver support DSI byte clock and pixel clocks are sourced from DSI PLL. This change adds the DSI PLL source clock driver under common clock framework. This change handles DSI 28nm PLL only. Signed-off-by: Hai Li Signed-off-by: Archit Taneja Signed-off-by: Stephane Viau Signed-off-by: Wentao Xu Signed-off-by: Rob Clark drivers/gpu/drm/msm/Kconfig | 7 + drivers/gpu/drm/msm/Makefile | 5 + drivers/gpu/drm/msm/dsi/dsi.h | 3 +- drivers/gpu/drm/msm/dsi/dsi_host.c | 10 +- drivers/gpu/drm/msm/dsi/dsi_phy.c | 3 +- drivers/gpu/drm/msm/dsi/pll/dsi_pll.c | 164 ++++++++ drivers/gpu/drm/msm/dsi/pll/dsi_pll.h | 89 ++++ drivers/gpu/drm/msm/dsi/pll/dsi_pll_28nm.c | 652 +++++++++++++++++++++++++++++ 8 files changed, 926 insertions(+), 7 deletions(-) commit bdc80de2a6dbaa0d08c393b4ba8912a0ad4b047f Author: Fabian Frederick Date: Mon May 4 19:03:55 2015 +0200 drm/msm: use IS_ERR() to check regulator_get() return regulator_get() never returns NULL. There's no need for IS_ERR_OR_NULL() Signed-off-by: Fabian Frederick Signed-off-by: Rob Clark drivers/gpu/drm/msm/dsi/dsi_host.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 73dbf69638b760ce62fe6df4cece983ef28abc13 Author: Fabian Frederick Date: Mon May 4 19:03:54 2015 +0200 drm/msm: use IS_ERR() to check msm_ioremap() return msm_ioremap() never returns NULL. There's no need for IS_ERR_OR_NULL() Signed-off-by: Fabian Frederick Signed-off-by: Rob Clark drivers/gpu/drm/msm/dsi/dsi_phy.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 68cdbed90777ed0291214f30a3532a8f795b481e Author: Hai Li Date: Tue Apr 28 19:35:38 2015 -0400 drm/msm/mdp5: Wait for PP_DONE irq for command mode CRTC atomic commit CRTCs in DSI command mode data path should wait for pingpong done, instead of vblank, to finish atomic commit. This change is to enable PP_DONE irq on command mode CRTCs and wait for this irq happens before atomic commit completion. Signed-off-by: Hai Li Signed-off-by: Rob Clark drivers/gpu/drm/msm/mdp/mdp5/mdp5_cmd_encoder.c | 4 -- drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c | 82 ++++++++++++++++++++----- 2 files changed, 66 insertions(+), 20 deletions(-) commit 0a5c9aad119c4415e14ece4c17cec66aa572e827 Author: Hai Li Date: Tue Apr 28 19:35:37 2015 -0400 drm/msm: Use customized function to wait for atomic commit done MDP FLUSH registers could indicate if the previous flush updates has taken effect at vsync boundary. Making use of this H/W feature can catch the vsync that happened between CRTC atomic_flush and *_wait_for_vblanks, to avoid unnecessary wait. This change allows kms CRTCs to use their own *_wait_for_commit_done functions to wait for FLUSH register cleared at vsync, before commit completion. Signed-off-by: Hai Li Signed-off-by: Rob Clark drivers/gpu/drm/msm/mdp/mdp4/mdp4_crtc.c | 39 ++++++++++++++++++++++ drivers/gpu/drm/msm/mdp/mdp4/mdp4_kms.c | 7 ++++ drivers/gpu/drm/msm/mdp/mdp4/mdp4_kms.h | 1 + drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c | 55 ++++++++++++++++++++++++++++---- drivers/gpu/drm/msm/mdp/mdp5/mdp5_ctl.c | 11 +++++-- drivers/gpu/drm/msm/mdp/mdp5/mdp5_ctl.h | 3 +- drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c | 7 ++++ drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.h | 1 + drivers/gpu/drm/msm/msm_atomic.c | 30 +++++++++++++++-- drivers/gpu/drm/msm/msm_kms.h | 3 ++ 10 files changed, 146 insertions(+), 11 deletions(-) commit 7eed919a35a1e9289dbbc7b3c89bdb736a2b2a60 Author: Hai Li Date: Wed Apr 15 16:24:38 2015 -0400 dt-bindings: Add MSM eDP controller documentation Signed-off-by: Hai Li Signed-off-by: Rob Clark Documentation/devicetree/bindings/drm/msm/edp.txt | 60 +++++++++++++++++++++++ 1 file changed, 60 insertions(+) commit c760558c2dbdfc52548a94a01499a36af5ad8f72 Author: Hai Li Date: Wed Apr 15 16:24:37 2015 -0400 dt-bindings: Add MSM DSI controller documentation Signed-off-by: Hai Li Signed-off-by: Rob Clark Documentation/devicetree/bindings/drm/msm/dsi.txt | 95 +++++++++++++++++++++++ 1 file changed, 95 insertions(+) commit 0c076bffd2575e3b30d63cbb908954cfdef2335a Author: Nicholas Mc Guire Date: Sat Apr 11 15:10:38 2015 +0200 drm/msm: drop redundant debug output wait_for_completion_timeout returns 0 in case of timeout and never return < 0 so there is no additional information in printing the value of time_left here as it will always be 0, thus it can be dropped. Signed-off-by: Nicholas Mc Guire Signed-off-by: Rob Clark drivers/gpu/drm/msm/edp/edp_ctrl.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit c6d0baf1fdbe32594e6e8bf6870f3951d3cf6415 Author: Nicholas Mc Guire Date: Sat Apr 11 15:10:37 2015 +0200 drm/msm: wait_for_completion_timeout return is never negative wait_for_completion_timeout returns >= 0 but never negative - so the error check should be against equality to 0 not <= 0. Signed-off-by: Nicholas Mc Guire Signed-off-by: Rob Clark drivers/gpu/drm/msm/edp/edp_ctrl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a51d01f067b34b138deae6ff86276e807c606876 Author: Nicholas Mc Guire Date: Sat Apr 11 15:10:36 2015 +0200 drm/msm: match wait_for_completion_timeout return type return type of wait_for_completion_timeout is unsigned long not int, this patch assigns the return value of wait_for_completion_timeout to an appropriately typed and named variable. Signed-off-by: Nicholas Mc Guire Signed-off-by: Rob Clark drivers/gpu/drm/msm/edp/edp_ctrl.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 65c5e5426dfc474b2f0462cfc100c7608ab8a627 Author: Archit Taneja Date: Wed Apr 8 11:37:40 2015 +0530 drm/msm: dsi: Provide option to force continuous HS clock Some DSI peripherals rely on the HS clock on DSI clock lane as their clock source. If the clock lane transitions between HS and LP states, it can disrupt the functioning of such peripherals. The mipi dsi mode flag MIPI_DSI_CLOCK_NON_CONTINUOUS already exists for such peripheral drivers. Use it to configure the bit CLKLN_HS_FORCE_REQUEST in DSI_LANE_CTRL. Signed-off-by: Archit Taneja Signed-off-by: Rob Clark drivers/gpu/drm/msm/dsi/dsi_host.c | 5 +++++ 1 file changed, 5 insertions(+) commit f28730c84fa987ba51e164cc4ecf2dac8d6dace1 Author: jilai wang Date: Tue Apr 7 13:51:32 2015 -0400 drm/msm: Call drm_prime_gem_destroy to clean up imported GEM object If the GEM object is imported, drm_prime_gem_destroy needs to be called to clean up dma buffer related information. Signed-off-by: Jilai Wang Signed-off-by: Rob Clark drivers/gpu/drm/msm/msm_gem.c | 1 + 1 file changed, 1 insertion(+) commit 07549dfbd9f218496eebf7d732bf3ab1c95882c2 Author: Rob Clark Date: Fri Jun 5 12:10:23 2015 -0400 drm/msm/edp: fix build warning - missing prototype Fix build warning when building edp/edp_aux.o due to missing prototype for edp_aux_transfer. This function is only used in edp_aux.c so just make it static. Reported-by: Nicholas Mc Guire Signed-off-by: Rob Clark drivers/gpu/drm/msm/edp/edp_aux.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit a7c07690f25c69aa6a68565df904f1b77da725da Author: Nicholas Mc Guire Date: Sat Apr 4 04:39:09 2015 +0200 drm/msm: drop redundant output in debug message wait_for_completion_timeout returns 0 in case of timeout so printing the return value here will always yield 0 and is therefor redundant - dropped. Signed-off-by: Nicholas Mc Guire Signed-off-by: Rob Clark drivers/gpu/drm/msm/edp/edp_aux.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 84c3b87b8b669e2d42209ba9fc9ddeffb90b3f17 Author: Nicholas Mc Guire Date: Sat Apr 4 04:39:08 2015 +0200 drm/msm: fix HZ dependency of timeout The timeout is passed as a constant which makes it HZ dependent because jiffies are expected so it should be converted to jiffies. The actual value is not clear from the code - my best guess is that this should be 300 milliseconds given that other timeouts are in milliseconds based on looking at other drm drivers (e.g. exynos_drm_dsi.c:356 300ms, tegra/dpaux.c:188 250ms) - this needs to be confirmed by someone who knows the details of the driver. Signed-off-by: Nicholas Mc Guire Signed-off-by: Rob Clark drivers/gpu/drm/msm/edp/edp_aux.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 9f68ef90aa383c01e143889989f20577605ca4f6 Author: Nicholas Mc Guire Date: Sat Apr 4 04:39:07 2015 +0200 drm/msm: fixup wait_for_completion_timeout handling wait_for_completion_timeout return >= 0 but never negative so the check logic looks inconsistent. Further the return value of wait_for_completion_timeout was being passed up the call chain but the x call sites as drm_dp_i2c_do_msg()/drm_dp_dpcd_access() check for < 0 thus timeout was being treated as success case. drivers/gpu/drm/drm_dp_helper.c:drm_dp_i2c_do_msg() mutex_lock(&aux->hw_mutex); ret = aux->transfer(aux, msg); mutex_unlock(&aux->hw_mutex); if (ret < 0) { logic in edp_aux_transfer() seems incorrect as it could return 0 (timeout) but checks of <= 0 to indicate error so the return probably should be -ETIMEDOUT in case wait_for_completion_timeout returns 0 (timeout occurred). Signed-off-by: Nicholas Mc Guire Signed-off-by: Rob Clark drivers/gpu/drm/msm/edp/edp_aux.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit e5989ee1342a686764934fff01e743aa06803d21 Author: Rob Clark Date: Thu May 14 20:21:37 2015 -0400 drm/msm/mdp5: fix for crash in disable path Seems like disable can race with complete_flip() in process of disabling a crtc, leading to: [ 49.065364] Call trace: [ 49.071441] [] mdp5_ctl_blend+0x20/0x1c0 [ 49.073788] [] mdp5_crtc_disable+0x3c/0xa8 [ 49.079348] [] disable_outputs.isra.4+0x11c/0x220 [ 49.085164] [] drm_atomic_helper_commit_modeset_disables+0x14/0x38 [ 49.091155] [] complete_commit+0x40/0xb8 [ 49.099136] [] msm_atomic_commit+0x364/0x398 [ 49.104430] [] drm_atomic_commit+0x3c/0x70 [ 49.110249] [] drm_atomic_helper_set_config+0x1b0/0x3e0 [ 49.116065] [] drm_mode_set_config_internal+0x64/0xf8 [ 49.122746] [] drm_framebuffer_remove+0xe4/0x128 [ 49.129171] [] drm_mode_rmfb+0xc0/0x100 [ 49.135420] [] drm_ioctl+0x258/0x4d0 [ 49.140889] [] do_vfs_ioctl+0x338/0x5d0 [ 49.145921] [] SyS_ioctl+0x88/0xa0 It makes no sense to free the ctl without disabling all stages, so lets just move them together to avoid the crash. Signed-off-by: Rob Clark drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit d735fdc35b4433abb736e843cfd2d34913344b3a Author: Rob Clark Date: Tue May 12 11:29:40 2015 -0400 drm/msm: workaround for missing irq on a306/8x16 Signed-off-by: Rob Clark drivers/gpu/drm/msm/adreno/adreno_gpu.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit de558cd2ae2e9999d0b6328c22c398ff85b6327c Author: Rob Clark Date: Wed May 6 13:14:30 2015 -0400 drm/msm: adreno a306 support As found in apq8016 (used in DragonBoard 410c) and msm8916. Note that numerically a306 is actually 307 (since a305c already claimed 306). Nice and confusing. Signed-off-by: Rob Clark drivers/gpu/drm/msm/adreno/a3xx_gpu.c | 12 +++++++++--- drivers/gpu/drm/msm/adreno/adreno_device.c | 8 ++++++++ drivers/gpu/drm/msm/adreno/adreno_gpu.h | 6 ++++++ drivers/gpu/drm/msm/msm_gpu.c | 1 + drivers/gpu/drm/msm/msm_gpu.h | 2 +- 5 files changed, 25 insertions(+), 4 deletions(-) commit 6490ad47404539b479ca33f96793c4624bef2924 Author: Rob Clark Date: Thu Jun 4 10:26:37 2015 -0400 drm/msm: clarify downstream bus scaling A few spots in the driver have support for downstream android CONFIG_MSM_BUS_SCALING. This is mainly to simplify backporting the driver for various devices which do not have sufficient upstream kernel support. But the intentionally dead code seems to cause some confusion. Rename the #define to make this more clear. Signed-off-by: Rob Clark drivers/gpu/drm/msm/adreno/adreno_device.c | 4 ++-- drivers/gpu/drm/msm/adreno/adreno_gpu.c | 2 +- drivers/gpu/drm/msm/adreno/adreno_gpu.h | 2 +- drivers/gpu/drm/msm/mdp/mdp4/mdp4_dtv_encoder.c | 2 +- drivers/gpu/drm/msm/mdp/mdp4/mdp4_kms.h | 2 +- drivers/gpu/drm/msm/mdp/mdp4/mdp4_lcdc_encoder.c | 2 +- drivers/gpu/drm/msm/mdp/mdp5/mdp5_cmd_encoder.c | 2 +- drivers/gpu/drm/msm/mdp/mdp5/mdp5_encoder.c | 2 +- drivers/gpu/drm/msm/msm_gpu.c | 2 +- drivers/gpu/drm/msm/msm_gpu.h | 2 +- 10 files changed, 11 insertions(+), 11 deletions(-) commit 570655b09b065d2fff1b8ab9bdb8308f4c5a05a3 Author: Rob Clark Date: Fri Jan 30 20:18:11 2015 +0530 drm/msm/mdp4: Support NV12MT format in mdp4 Using fb modifier flag, support NV12MT format in MDP4. v2: - rework the modifier's description [Daniel Vetter's comment] - drop .set_mode_config() callback [Rob Clark's comment] v3: - change VENDOR's name and restrict usage to NV12 [pointed by Daniel] Signed-off-by: Rob Clark drivers/gpu/drm/drm_crtc.c | 18 ++++++++++++++++++ drivers/gpu/drm/msm/mdp/mdp4/mdp4_kms.c | 2 ++ drivers/gpu/drm/msm/mdp/mdp4/mdp4_plane.c | 22 ++++++++++++++++++++++ include/uapi/drm/drm_fourcc.h | 15 +++++++++++++++ 4 files changed, 57 insertions(+) commit af6cb4c1a451b0e68a0581a6487f6c0423caeeb3 Author: Rob Clark Date: Wed May 20 10:50:30 2015 -0400 drm/msm: update generated headers Signed-off-by: Rob Clark drivers/gpu/drm/msm/adreno/a2xx.xml.h | 6 +- drivers/gpu/drm/msm/adreno/a3xx.xml.h | 168 +++++++++- drivers/gpu/drm/msm/adreno/a4xx.xml.h | 420 ++++++++++++++++++++++-- drivers/gpu/drm/msm/adreno/adreno_common.xml.h | 6 +- drivers/gpu/drm/msm/adreno/adreno_pm4.xml.h | 31 +- drivers/gpu/drm/msm/dsi/dsi.xml.h | 163 ++++++++- drivers/gpu/drm/msm/dsi/mmss_cc.xml.h | 12 +- drivers/gpu/drm/msm/dsi/sfpb.xml.h | 12 +- drivers/gpu/drm/msm/edp/edp.xml.h | 101 +++++- drivers/gpu/drm/msm/hdmi/hdmi.xml.h | 99 +++++- drivers/gpu/drm/msm/hdmi/qfprom.xml.h | 12 +- drivers/gpu/drm/msm/mdp/mdp4/mdp4.xml.h | 32 +- drivers/gpu/drm/msm/mdp/mdp5/mdp5.xml.h | 398 +++++++++++++++++++++- drivers/gpu/drm/msm/mdp/mdp5/mdp5_cmd_encoder.c | 14 +- drivers/gpu/drm/msm/mdp/mdp5/mdp5_encoder.c | 10 +- drivers/gpu/drm/msm/mdp/mdp_common.xml.h | 16 +- drivers/gpu/drm/msm/mdp/mdp_kms.h | 2 +- 17 files changed, 1359 insertions(+), 143 deletions(-) commit a5436e1d241488f58bbf7cd4a84fefc9c39c4b62 Author: Rob Clark Date: Thu Jun 4 10:12:22 2015 -0400 drm/msm: add missing DRIVER_ATOMIC flag Somehow this got lost when msm atomic support was first merged. Signed-off-by: Rob Clark drivers/gpu/drm/msm/msm_drv.c | 1 + 1 file changed, 1 insertion(+) commit 26716185516fc09723833d64f2af87db4e3eae7a Author: Rob Clark Date: Sun Apr 19 10:14:09 2015 -0400 drm/msm/adreno: dump scratch regs and other info on hang Dump a bit more info when the GPU hangs, without having hang_debug enabled (which dumps a *lot* of registers). Also dump the scratch registers, as they are useful for determining where in the cmdstream the GPU hung (and they seem always safe to read when GPU has hung). Note that the freedreno gallium driver emits increasing counter values to SCRATCH6 (to identify tile #) and SCRATCH7 (to identify draw #), so these two in particular can be used to "triangulate" where in the cmdstream the GPU hung. Signed-off-by: Rob Clark drivers/gpu/drm/msm/adreno/a3xx_gpu.c | 3 +++ drivers/gpu/drm/msm/adreno/a4xx_gpu.c | 3 ++- drivers/gpu/drm/msm/adreno/adreno_gpu.c | 21 +++++++++++++++++++-- drivers/gpu/drm/msm/adreno/adreno_gpu.h | 1 + 4 files changed, 25 insertions(+), 3 deletions(-) commit 9e8af74c38162c884465385a7f1ded1c98cdc752 Author: Vinod Koul Date: Thu Jun 11 22:11:49 2015 +0530 ALSA: HDA: remove the unused function declaration Commit a1b3fda6ae ALSA: hdac_ext: add hdac extended controller, erroneously added snd_hdac_ext_bus_map_codec_to_link() function declaration, so remove it Signed-off-by: Vinod Koul Signed-off-by: Takashi Iwai include/sound/hdaudio_ext.h | 1 - 1 file changed, 1 deletion(-) commit 07a7dba17132d7ebc5d9f34a06baedf2308ccc01 Author: Lee Jones Date: Mon May 11 17:08:51 2015 +0100 dt: mailbox: Remove 'mbox-names property is discouraged' message from binding A new API call has been introduced which allows channels to be requested by name. This new call uses the 'mbox-names' property, so users need no further discouragement from supplying it. Signed-off-by: Lee Jones Signed-off-by: Jassi Brar Documentation/devicetree/bindings/mailbox/mailbox.txt | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) commit dfabde206aa10ae71a89ba75e68b1f58a6336a05 Author: Lee Jones Date: Mon May 11 17:08:50 2015 +0100 mailbox: Add ability for clients to request channels by name This patch supplies a new framework API; mbox_request_channel_byname(). It works by supplying the usual client pointer as the first argument and a string as the second. The API will search the client's node for a 'mbox-names' property then request a channel in the normal way using the requested string's index as the expected second 'index' argument. Signed-off-by: Lee Jones Signed-off-by: Jassi Brar drivers/mailbox/mailbox.c | 29 +++++++++++++++++++++++++++++ include/linux/mailbox_client.h | 2 ++ 2 files changed, 31 insertions(+) commit 0bae6af6d704f026d4938739786e0a69d50177ca Author: Lubomir Rintel Date: Tue May 5 13:27:45 2015 -0700 mailbox: Enable BCM2835 mailbox support This mailbox driver provides a single mailbox channel to write 32-bit values to the VPU and get a 32-bit response. The Raspberry Pi firmware uses this mailbox channel to implement firmware calls, while Roku 2 (despite being derived from the same firmware tree) doesn't. The driver was originally submitted by Lubomir, based on the out-of-tree 2708 mailbox driver. Eric Anholt fixed it up for upstreaming, with the major functional change being that it now has no notion of multiple channels (since that is a firmware-dependent concept) and instead the raspberrypi-firmware driver will do that bit-twiddling in its own messages. [Jassi: made the 'mbox_chan_ops' struct as const and removed a redundant variable] Signed-off-by: Lubomir Rintel Signed-off-by: Craig McGeachie Signed-off-by: Eric Anholt Acked-by: Stephen Warren Signed-off-by: Jassi Brar drivers/mailbox/Kconfig | 9 ++ drivers/mailbox/Makefile | 2 + drivers/mailbox/bcm2835-mailbox.c | 216 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 227 insertions(+) commit 74217d4c6a4fb0d80a7e2f217584ccdc692d5f57 Author: Hariprasad S Date: Tue Jun 9 18:23:12 2015 +0530 iw_cxgb4: support for bar2 qid densities exceeding the page size Handle this configuration: Queues Per Page * SGE BAR2 Queue Register Area Size > Page Size Use cxgb4_bar2_sge_qregs() to obtain the proper location within the bar2 region for a given qid. Rework the DB and GTS write functions to make use of this bar2 info. Signed-off-by: Steve Wise Signed-off-by: Hariprasad Shenai Signed-off-by: Doug Ledford drivers/infiniband/hw/cxgb4/cq.c | 22 ++++++------ drivers/infiniband/hw/cxgb4/device.c | 16 +++------ drivers/infiniband/hw/cxgb4/iw_cxgb4.h | 5 +-- drivers/infiniband/hw/cxgb4/qp.c | 64 ++++++++++++++++++++++------------ drivers/infiniband/hw/cxgb4/t4.h | 60 ++++++++++++++++++++----------- 5 files changed, 98 insertions(+), 69 deletions(-) commit 66cf188eba524e19f1d2bd654a9d656d7432db80 Author: Hariprasad S Date: Tue Jun 9 18:23:11 2015 +0530 cxgb4: Support for user mode bar2 mappings with T4 Enhance cxgb4_t4_bar2_sge_qregs() and cxgb4_bar2_sge_qregs() to support T4 user mode mappings. Update all the current users as well. Signed-off-by: Steve Wise Signed-off-by: Hariprasad Shenai Signed-off-by: Doug Ledford drivers/net/ethernet/chelsio/cxgb4/cxgb4.h | 1 + drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 4 +++- drivers/net/ethernet/chelsio/cxgb4/cxgb4_uld.h | 1 + drivers/net/ethernet/chelsio/cxgb4/sge.c | 4 ++-- drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 7 ++++--- 5 files changed, 11 insertions(+), 6 deletions(-) commit 4a01f1c3abd6aa65bef32d14ba7b37a237c894d4 Author: Hari Prasath Gujulan Elango Date: Thu Jun 11 07:48:13 2015 +0000 staging: wilc1000: use memdup_user This patch replaces the kmalloc followed by copy_from_user by the wrapper routine memdup_user. Signed-off-by: Hari Prasath Gujulan Elango Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) commit 2235fb69ef09e0bc0f8b8fb94d1375bdf9d78bf3 Author: Dean Lee Date: Thu Jun 11 12:44:24 2015 +0900 staging: wilc1000: modify odd print message This driver has odd message in print string. So this patch removes the data type. Signed-off-by: Dean Lee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 1b612a127e9d8119faec28534a033e06c174b6c1 Author: Chris Park Date: Thu Jun 11 12:42:23 2015 +0900 staging: wilc1000: fix warning while printing size_t should print using %zu, but here it was use %lu. we were getting warning while printing. Signed-off-by: Chris Park Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_spi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8a69ebc277aa77e815fc85949aae6cc8ec04c7aa Author: Chaehyun Lim Date: Thu Jun 11 14:36:00 2015 +0900 staging: wilc1000: remove WILC_Sint64 remove unused WILC_Sint64. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_oswrapper.h | 3 --- 1 file changed, 3 deletions(-) commit fb4ec9caa464666c200ca95069cf135bb199b855 Author: Chaehyun Lim Date: Thu Jun 11 14:35:59 2015 +0900 staging: wilc1000: remove WILC_Sint32 Use s32 instead of WILC_Sint32. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/coreconfigsimulator.h | 4 +- drivers/staging/wilc1000/coreconfigurator.c | 114 +++---- drivers/staging/wilc1000/coreconfigurator.h | 22 +- drivers/staging/wilc1000/host_interface.c | 362 +++++++++++----------- drivers/staging/wilc1000/host_interface.h | 124 ++++---- drivers/staging/wilc1000/linux_wlan.c | 2 +- drivers/staging/wilc1000/wilc_errorsupport.h | 2 +- drivers/staging/wilc1000/wilc_oswrapper.h | 1 - drivers/staging/wilc1000/wilc_strutils.c | 6 +- drivers/staging/wilc1000/wilc_strutils.h | 4 +- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 78 ++--- 11 files changed, 359 insertions(+), 360 deletions(-) commit 4320f6febcd5f296fecd263b9624f442e4c9e307 Author: Chaehyun Lim Date: Thu Jun 11 14:35:58 2015 +0900 staging: wilc1000: remove WILC_Sint16 Use s16 instead of WILC_Sint16. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/coreconfigurator.c | 2 +- drivers/staging/wilc1000/wilc_oswrapper.h | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) commit ca356ada7cf4668bf3eaa65a6a25671f185c2229 Author: Chaehyun Lim Date: Thu Jun 11 14:35:57 2015 +0900 staging: wilc1000: remove WILC_Sint8 Use s8 instead of WILC_Sint8. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/coreconfigurator.c | 18 ++-- drivers/staging/wilc1000/coreconfigurator.h | 8 +- drivers/staging/wilc1000/host_interface.c | 148 ++++++++++++++-------------- drivers/staging/wilc1000/host_interface.h | 12 +-- drivers/staging/wilc1000/linux_wlan.c | 2 +- drivers/staging/wilc1000/wilc_oswrapper.h | 1 - 6 files changed, 94 insertions(+), 95 deletions(-) commit 57b298f54e7573df71eff677c9f6cce085c153e3 Author: Chaehyun Lim Date: Thu Jun 11 14:35:56 2015 +0900 staging: wilc1000: remove WILC_Uint64 Use u64 instead of WILC_Uint64. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/coreconfigurator.c | 2 +- drivers/staging/wilc1000/coreconfigurator.h | 2 +- drivers/staging/wilc1000/host_interface.h | 2 +- drivers/staging/wilc1000/wilc_oswrapper.h | 1 - drivers/staging/wilc1000/wilc_wfi_netdevice.h | 4 ++-- 5 files changed, 5 insertions(+), 6 deletions(-) commit 4e4467fdd6e89fbbc5208636a85177e4b973ded9 Author: Chaehyun Lim Date: Thu Jun 11 14:35:55 2015 +0900 staging: wilc1000: remove WILC_Uint32 Use u32 instead of WILC_Uint32. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/coreconfigurator.c | 74 +++--- drivers/staging/wilc1000/coreconfigurator.h | 16 +- drivers/staging/wilc1000/fifo_buffer.c | 20 +- drivers/staging/wilc1000/fifo_buffer.h | 22 +- drivers/staging/wilc1000/host_interface.c | 266 +++++++++++----------- drivers/staging/wilc1000/host_interface.h | 70 +++--- drivers/staging/wilc1000/linux_mon.c | 4 +- drivers/staging/wilc1000/linux_wlan.c | 12 +- drivers/staging/wilc1000/wilc_memory.c | 14 +- drivers/staging/wilc1000/wilc_memory.h | 18 +- drivers/staging/wilc1000/wilc_msgqueue.c | 6 +- drivers/staging/wilc1000/wilc_msgqueue.h | 6 +- drivers/staging/wilc1000/wilc_oswrapper.h | 1 - drivers/staging/wilc1000/wilc_platform.h | 4 +- drivers/staging/wilc1000/wilc_sleep.c | 4 +- drivers/staging/wilc1000/wilc_sleep.h | 2 +- drivers/staging/wilc1000/wilc_strutils.c | 14 +- drivers/staging/wilc1000/wilc_strutils.h | 14 +- drivers/staging/wilc1000/wilc_timer.c | 2 +- drivers/staging/wilc1000/wilc_timer.h | 2 +- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 54 ++--- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 6 +- drivers/staging/wilc1000/wilc_wlan.c | 6 +- drivers/staging/wilc1000/wilc_wlan_cfg.c | 2 +- drivers/staging/wilc1000/wilc_wlan_if.h | 4 +- 25 files changed, 321 insertions(+), 322 deletions(-) commit 32365e64a20edcc783137ad17fdd951ab814a2fe Author: Janet Liu Date: Thu Jun 11 12:02:45 2015 +0800 arm64: fix bug for reloading FPSIMD state after CPU hotplug. Now FPSIMD don't handle HOTPLUG_CPU. This introduces bug after cpu down/up process. After cpu down/up process, the FPSMID hardware register is default value, not any process's fpsimd context. when CPU_DEAD set cpu's fpsimd_state to NULL, it will force to load the fpsimd context for the thread, to avoid the chance to skip to load the context. If process A is the last user process on CPU N before cpu down, and the first user process on the same CPU N after cpu up, A's fpsimd_state.cpu is the current cpu id, and per_cpu(fpsimd_last_state) points A's fpsimd_state, so kernel will not reload the context during it return to user space. Signed-off-by: Janet Liu Signed-off-by: Xiongshan An Signed-off-by: Chunyan Zhang [catalin.marinas@arm.com: some mostly cosmetic clean-ups] Signed-off-by: Catalin Marinas arch/arm64/kernel/fpsimd.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) commit d85f5326e4a4b1606a0dbb3f8a320a0359fdb2d8 Author: Chaehyun Lim Date: Thu Jun 11 14:35:54 2015 +0900 staging: wilc1000: remove WILC_Uint16 Use u16 instead of WILC_Uint16. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/coreconfigurator.c | 98 +++---- drivers/staging/wilc1000/coreconfigurator.h | 26 +- drivers/staging/wilc1000/host_interface.c | 302 +++++++++++----------- drivers/staging/wilc1000/host_interface.h | 56 ++-- drivers/staging/wilc1000/linux_mon.c | 2 +- drivers/staging/wilc1000/linux_wlan.c | 2 +- drivers/staging/wilc1000/wilc_oswrapper.h | 1 - drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 8 +- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 2 +- drivers/staging/wilc1000/wilc_wlan.c | 8 +- 10 files changed, 252 insertions(+), 253 deletions(-) commit 8a54d91719a9cef4e599f6c699fb6a5136ed7a3f Author: Chaehyun Lim Date: Thu Jun 11 14:35:53 2015 +0900 staging: wilc1000: remove UWORD32 Use u32 instead of UWORD32. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/coreconfigurator.c | 6 +++--- drivers/staging/wilc1000/itypes.h | 1 - 2 files changed, 3 insertions(+), 4 deletions(-) commit 3703480b02446b35e8427f6a114a5690b64324a8 Author: Chaehyun Lim Date: Thu Jun 11 14:34:32 2015 +0900 staging: wilc1000: remove UWORD8 Use u8 instead of UWORD8. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/coreconfigurator.c | 2 +- drivers/staging/wilc1000/host_interface.c | 2 +- drivers/staging/wilc1000/itypes.h | 1 - 3 files changed, 2 insertions(+), 3 deletions(-) commit ee0ec1946ec2aa11930bfa62a2b12d35256122c2 Author: Julia Lawall Date: Thu Jun 11 14:02:58 2015 +0200 lustre: ptlrpc: Replace uses of OBD_{ALLOC,FREE}_LARGE Replace uses of OBD_ALLOC_LARGE by libcfs_kvzalloc and OBD_FREE_LARGE by kvfree. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ expression ptr,size; @@ - OBD_ALLOC_LARGE(ptr,size) + ptr = libcfs_kvzalloc(size, GFP_NOFS) @@ expression ptr,size; @@ - OBD_FREE_LARGE(ptr, size); + kvfree(ptr); // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/ptlrpc/client.c | 4 ++-- drivers/staging/lustre/lustre/ptlrpc/sec.c | 10 +++++----- drivers/staging/lustre/lustre/ptlrpc/sec_bulk.c | 11 +++++------ drivers/staging/lustre/lustre/ptlrpc/sec_null.c | 16 ++++++++-------- drivers/staging/lustre/lustre/ptlrpc/sec_plain.c | 16 ++++++++-------- drivers/staging/lustre/lustre/ptlrpc/service.c | 10 +++++----- 6 files changed, 33 insertions(+), 34 deletions(-) commit 6b0e43db2855db06b822cde88416366e985cc113 Author: Julia Lawall Date: Thu Jun 11 14:02:57 2015 +0200 lustre: obdclass: linux: Replace uses of OBD_{ALLOC, FREE}_LARGE Replace uses of OBD_ALLOC_LARGE by libcfs_kvzalloc and OBD_FREE_LARGE by kvfree. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ expression ptr,size; @@ - OBD_ALLOC_LARGE(ptr,size) + ptr = libcfs_kvzalloc(size, GFP_NOFS) @@ expression ptr,size; @@ - OBD_FREE_LARGE(ptr, size); + kvfree(ptr); // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/obdclass/linux/linux-module.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit fea2e68e21f88f6694540bafc2c22e797f2f4bda Author: Julia Lawall Date: Thu Jun 11 14:02:56 2015 +0200 lustre: obdclass: Replace uses of OBD_{ALLOC,FREE}_LARGE Replace uses of OBD_ALLOC_LARGE by libcfs_kvzalloc and OBD_FREE_LARGE by kvfree. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ expression ptr,size; @@ - OBD_ALLOC_LARGE(ptr,size) + ptr = libcfs_kvzalloc(size, GFP_NOFS) @@ expression ptr,size; @@ - OBD_FREE_LARGE(ptr, size); + kvfree(ptr); // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/obdclass/lu_object.c | 8 ++++---- drivers/staging/lustre/lustre/obdclass/lustre_handles.c | 5 +++-- 2 files changed, 7 insertions(+), 6 deletions(-) commit 337844670a4b305314a6238879db6faa812adddc Author: Julia Lawall Date: Thu Jun 11 14:02:55 2015 +0200 lustre: mdc: Replace uses of OBD_{ALLOC,FREE}_LARGE Replace uses of OBD_ALLOC_LARGE by libcfs_kvzalloc and OBD_FREE_LARGE by kvfree. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ expression ptr,size; @@ - OBD_ALLOC_LARGE(ptr,size) + ptr = libcfs_kvzalloc(size, GFP_NOFS) @@ expression ptr,size; @@ - OBD_FREE_LARGE(ptr, size); + kvfree(ptr); // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/mdc/mdc_locks.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 3d0ba7160c659fca3186c960523e33f8afd5ea47 Author: Julia Lawall Date: Thu Jun 11 14:02:54 2015 +0200 lustre: lov: Replace uses of OBD_{ALLOC,FREE}_LARGE Replace uses of OBD_ALLOC_LARGE by libcfs_kvzalloc and OBD_FREE_LARGE by kvfree. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ expression ptr,size; @@ - OBD_ALLOC_LARGE(ptr,size) + ptr = libcfs_kvzalloc(size, GFP_NOFS) @@ expression ptr,size; @@ - OBD_FREE_LARGE(ptr, size); + kvfree(ptr); // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/lov/lov_ea.c | 7 +++---- drivers/staging/lustre/lustre/lov/lov_io.c | 18 ++++++++++-------- drivers/staging/lustre/lustre/lov/lov_lock.c | 5 ++--- drivers/staging/lustre/lustre/lov/lov_obd.c | 4 ++-- drivers/staging/lustre/lustre/lov/lov_object.c | 5 +++-- drivers/staging/lustre/lustre/lov/lov_pack.c | 8 ++++---- 6 files changed, 24 insertions(+), 23 deletions(-) commit 8cc3792a2a5afe160567a7b29401dc4b6814f055 Author: Julia Lawall Date: Thu Jun 11 14:02:53 2015 +0200 lustre: lmv: Replace uses of OBD_{ALLOC,FREE}_LARGE Replace uses of OBD_ALLOC_LARGE by libcfs_kvzalloc and OBD_FREE_LARGE by kvfree. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ expression ptr,size; @@ - OBD_ALLOC_LARGE(ptr,size) + ptr = libcfs_kvzalloc(size, GFP_NOFS) @@ expression ptr,size; @@ - OBD_FREE_LARGE(ptr, size); + kvfree(ptr); // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/lmv/lmv_obd.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit e958f49bc72c47fe9a1635bccf149964f006cbbe Author: Julia Lawall Date: Thu Jun 11 14:02:52 2015 +0200 lustre: llite: Replace uses of OBD_{ALLOC,FREE}_LARGE Replace uses of OBD_ALLOC_LARGE by libcfs_kvzalloc and OBD_FREE_LARGE by kvfree. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ expression ptr,size; @@ - OBD_ALLOC_LARGE(ptr,size) + ptr = libcfs_kvzalloc(size, GFP_NOFS) @@ expression ptr,size; @@ - OBD_FREE_LARGE(ptr, size); + kvfree(ptr); // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/dir.c | 10 +++++----- drivers/staging/lustre/lustre/llite/file.c | 22 +++++++++++----------- drivers/staging/lustre/lustre/llite/rw26.c | 4 ++-- 3 files changed, 18 insertions(+), 18 deletions(-) commit a75034345b3026f1cf5668e70688ea53184e49c1 Author: Oleg Drokin Date: Thu Jun 11 01:37:51 2015 -0400 staging/lustre/llite: fix ll_getname user buffer copy strncpy_from_user could return negative values on error, so need to take those into account. Since ll_getname is used to get a single component name from userspace to transfer to server as-is, there's no need to allocate 4k buffer as done by __getname. Allocate NAME_MAX+1 buffer instead to ensure we have enough for a null terminated max valid length buffer. This was discovered by Al Viro in https://lkml.org/lkml/2015/4/11/243 Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/dir.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) commit d8bc89a7f34242d67e7eefade6fc0df057c34ec1 Author: Oleg Drokin Date: Thu Jun 11 01:37:50 2015 -0400 staging/lustre/llite: remove LL_IOC_REMOVE_ENTRY handler It uses getname in unsafe manner and since it's to deal with corrupted or inconsistent filesystem, we are probably better to deal with it from lfsck anyway. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman .../lustre/lustre/include/lustre/lustre_user.h | 1 - drivers/staging/lustre/lustre/llite/dir.c | 29 ---------------------- 2 files changed, 30 deletions(-) commit d4f7743542f20c2b20b68bba856c281ba9c84e42 Merge: 6b33033 3846c15 Author: Ingo Molnar Date: Thu Jun 11 16:42:49 2015 +0200 Merge tag 'efi-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mfleming/efi into x86/efi Pull EFI build fix from Matt Fleming: - Fix ESRT build breakage on ia64 reported by Guenter Roeck. (Peter Jones) Signed-off-by: Ingo Molnar commit 6eb6c80187c55b7f95683bc6502dccac54b95b92 Author: Janet Liu Date: Thu Jun 11 12:04:32 2015 +0800 arm64: kernel thread don't need to save fpsimd context. kernel thread's default fpsimd state is zero. When fork a thread, if parent is kernel thread, and save hardware context to parent's fpsimd state, but this hardware context is user process's context, because kernel thread don't use fpsimd, it will not introduce issue, it add a little cost. Signed-off-by: Janet Liu Signed-off-by: Chunyan Zhang Signed-off-by: Catalin Marinas arch/arm64/kernel/process.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 6ba29c2fa5adcc33b201faec99057b6a72bd5029 Author: He Kuang Date: Thu Jun 11 12:44:24 2015 +0000 perf tools: Fix build failure on 32-bit arch Failed in 32bit arch build like this: CC /opt/h00206996/output/perf/arm32/builtin-record.o util/session.c: In function ‘perf_session__warn_about_errors’: util/session.c:1304:9: error: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 2 has type ‘long long unsigned int’ [-Werror=format=] builtin-report.c: In function ‘perf_evlist__tty_browse_hists’: builtin-report.c:323:2: error: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 3 has type ‘u64’ [-Werror=format=] Replace %lu format strings in warning message with PRIu64 for u64 'total_lost_samples' to fix this problem. Signed-off-by: He Kuang Cc: Jiri Olsa Cc: Kan Liang Cc: Peter Zijlstra Cc: Wang Nan Link: http://lkml.kernel.org/r/1434026664-71642-1-git-send-email-hekuang@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-report.c | 2 +- tools/perf/util/session.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit cb5ef60067c11cc8887122f6f168c21941c5d624 Author: Kan Liang Date: Thu Jun 11 02:32:40 2015 -0400 perf stat: Error out unsupported group leader immediately perf stat ignores the unsupported event and continue to count supported event. But if the unsupported event is group leader, perf tool will crash. After applying this patch, the unsupported group leader will error out immediately. Without this patch: $ perf stat -x, -e '{node-prefetch-refs,cycles}' -- sleep 1 perf: util/evsel.c:1009: get_group_fd: Assertion `!(fd == -1)' failed. Aborted (core dumped) With this patch: $ perf stat -x, -e '{node-prefetch-refs,cycles}' -- sleep 1 Error: The node-prefetch-refs event is not supported. Commiter note: Here I got a different output, but no core dump: [acme@zoo linux]$ perf stat -x, -e '{node-prefetch-refs,cycles}' -- sleep 1 Error: The sys_perf_event_open() syscall returned with 22 (Invalid argument) for event (node-prefetch-refs). /bin/dmesg may provide additional information. No CONFIG_PERF_EVENTS=y kernel support configured? Signed-off-by: Kan Liang Tested-by: Arnaldo Carvalho de Melo Cc: Andi Kleen Link: http://lkml.kernel.org/r/1434004360-8570-1-git-send-email-kan.liang@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 7310aed77ef2928bcfb8ee5ad71e2b091166b85e Author: Adrian Hunter Date: Thu Jun 11 15:51:04 2015 +0300 perf evsel: Display 0x for hex values when printing the attribute Need to display '0x' prefix for hex values otherwise it is not obvious they are hex. Signed-off-by: Adrian Hunter Cc: Jiri Olsa Link: http://lkml.kernel.org/r/1434027064-7554-1-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/evsel.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 826775bbf38fb7fbc8896482d341dc38cf84c811 Author: Herbert Xu Date: Thu Jun 11 08:55:10 2015 +0800 crypto: drbg - Add select on sha256 The hash-based DRBG variants all use sha256 so we need to add a select on it. Signed-off-by: Herbert Xu crypto/Kconfig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 593dfbd9ca7d8d6f9a01020426b680b78b86bdb2 Author: Sergey Senozhatsky Date: Wed Jun 10 22:27:48 2015 +0900 crypto: drbg - report backend_cra_name when allocation fails Be more verbose and also report ->backend_cra_name when crypto_alloc_shash() or crypto_alloc_cipher() fail in drbg_init_hash_kernel() or drbg_init_sym_kernel() correspondingly. Example DRBG: could not allocate digest TFM handle: hmac(sha256) Signed-off-by: Sergey Senozhatsky Signed-off-by: Herbert Xu crypto/drbg.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit f30dc5208ca270ff783fa895b74bdd76dcb4ba3e Author: Cyrille Pitchen Date: Thu Jun 11 11:16:32 2015 +0200 i2c: at91: fix code checker warnings buf_len is a size_t, so unsigned, but was tested with '<= 0'. Reported-by: Wolfram Sang Signed-off-by: Cyrille Pitchen Acked-by: Ludovic Desroches Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-at91.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 50ab9a69275dca588cb5ad5038657f069bbdeb56 Author: Rasmus Villemoes Date: Sat Mar 21 02:50:01 2015 +0100 kbuild: include core debug info when DEBUG_INFO_REDUCED With CONFIG_DEBUG_INFO_REDUCED, we do get quite a lot of debug info (around 22.7 MB for a defconfig+DEBUG_INFO_REDUCED). However, the "basenames must match" rule used by -femit-struct-debug-baseonly option means that we miss some core data structures, such as struct {device, file, inode, mm_struct, page} etc. We can easily get these included as well, while still getting the benefits of CONFIG_DEBUG_INFO_REDUCED (faster build times and smaller individual object files): All it takes is a dummy translation unit including a few strategic headers and compiled with a flag overriding -femit-struct-debug-baseonly. This increases the size of .debug_info by ~0.3%, but these 90 KB contain some rather useful info. Signed-off-by: Rasmus Villemoes Signed-off-by: Michal Marek lib/Makefile | 3 +++ lib/debug_info.c | 27 +++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) commit 2e0d737fc76f8d31e2265b3f0392749f75efd735 Author: Jan Beulich Date: Tue Jan 20 12:52:48 2015 +0000 kconfig: don't silently ignore unhandled characters At the very least we should tell people that what they wrote is not what the utility understands. Signed-off-by: Jan Beulich Acked-by: Paul Bolle Signed-off-by: Michal Marek scripts/kconfig/zconf.l | 7 +- scripts/kconfig/zconf.lex.c_shipped | 195 ++++++++++++++++++++---------------- 2 files changed, 113 insertions(+), 89 deletions(-) commit a457782a1c694c5c84dac55c9a77789dd741a7e5 Author: Takashi Iwai Date: Thu Jun 11 14:02:49 2015 +0200 ALSA: hda - Fix link power unbalance at device removal snd_hdac_link_power() has to be called after unregistering the codec device. Otherwise the device might be already runtime-suspended, thus the refcount goes under zero, triggering a warning like: WARNING: CPU: 7 PID: 2014 at sound/hda/hdac_i915.c:63 snd_hdac_display_power+0x106/0x120 [snd_hda_core]() CPU: 7 PID: 2014 Comm: modprobe Not tainted 4.1.0-rc7-test+ #1 Call Trace: [] dump_stack+0x4c/0x6e [] warn_slowpath_common+0x8a/0xc0 [] warn_slowpath_null+0x1a/0x20 [] snd_hdac_display_power+0x106/0x120 [snd_hda_core] [] azx_intel_link_power+0x12/0x20 [snd_hda_intel] [] azx_link_power+0x1f/0x30 [snd_hda_codec] [] snd_hdac_link_power+0x2e/0x40 [snd_hda_core] [] snd_hda_codec_dev_free+0x34/0x50 [snd_hda_codec] [] __snd_device_free+0x51/0xa0 [snd] ..... Signed-off-by: Takashi Iwai sound/pci/hda/hda_codec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8604bc28365c0673d932b0bfa6e52abb5d4dd62c Author: Axel Lin Date: Wed Jun 10 22:46:05 2015 +0800 ASoC: tas2552: Use devm_gpiod_get_optional for enable-gpio commit ea178d1456dc ("ASoC: tas2552: Make the enable-gpio really optional") makes enable-gpio optional. devm_gpiod_get_optional() is the better function for optional gpio, so let's switch to use it. Signed-off-by: Axel Lin Acked-by: Peter Ujfalusi Signed-off-by: Mark Brown sound/soc/codecs/tas2552.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) commit f9f55e31f8a537b7eaccc4fdb243cff938fa428c Author: Richard Fitzgerald Date: Thu Jun 11 11:32:32 2015 +0100 ASoC: wm_adsp: Add basic debugfs entries This patch adds some debugfs nodes to get information about the currently running firmware. Signed-off-by: Richard Fitzgerald Signed-off-by: Mark Brown sound/soc/codecs/wm_adsp.c | 195 ++++++++++++++++++++++++++++++++++++++++++++- sound/soc/codecs/wm_adsp.h | 11 ++- 2 files changed, 202 insertions(+), 4 deletions(-) commit 218e508784b6d4d047fa25ce45761043c6840fec Author: Richard Fitzgerald Date: Thu Jun 11 11:32:31 2015 +0100 ASoC: wm_adsp: create ALSA controls from wm_adsp driver Now that we have a codec_probe stage initialization in the wm_adsp driver, we can make the wm_adsp driver create its own ALSA controls instead of having that responsibility pushed to every codec driver. Signed-off-by: Richard Fitzgerald Signed-off-by: Mark Brown sound/soc/codecs/wm5102.c | 4 ---- sound/soc/codecs/wm5110.c | 4 ---- sound/soc/codecs/wm_adsp.c | 41 ++++++++++++++++++++++++----------------- sound/soc/codecs/wm_adsp.h | 1 - 4 files changed, 24 insertions(+), 26 deletions(-) commit f5e2ce92bd96df99de1ef33fad05e3b3b2d34e54 Author: Richard Fitzgerald Date: Thu Jun 11 11:32:30 2015 +0100 ASoC: wm_adsp: Add codec_probe and codec_remove stubs Currently the only init function in wm_adsp is called by the codec driver early in its probe before the codec has been registered with SOC. This patch adds stubs for the codec_probe and codec_remove stages and calls them from WM5102 and WM5110 codec drivers. This allows us to hang anything that needs setup during the codec probe stage off these functions without further modification of the codec drivers. Signed-off-by: Richard Fitzgerald Signed-off-by: Mark Brown sound/soc/codecs/wm5102.c | 6 ++++++ sound/soc/codecs/wm5110.c | 12 +++++++++++- sound/soc/codecs/wm_adsp.c | 12 ++++++++++++ sound/soc/codecs/wm_adsp.h | 2 ++ 4 files changed, 31 insertions(+), 1 deletion(-) commit 82d229cde00f7476b223c3ac5ded0248014cdeb7 Author: Mauro Carvalho Chehab Date: Wed Jun 10 14:37:16 2015 -0300 [media] bdisp-debug: don't try to divide by s64 There are several warnings there, on some architectures, related to dividing a s32 by a s64 value: drivers/media/platform/sti/bdisp/bdisp-debug.c:594: warning: comparison of distinct pointer types lacks a cast drivers/media/platform/sti/bdisp/bdisp-debug.c:594: warning: right shift count >= width of type drivers/media/platform/sti/bdisp/bdisp-debug.c:594: warning: passing argument 1 of '__div64_32' from incompatible pointer type drivers/media/platform/sti/bdisp/bdisp-debug.c:595: warning: comparison of distinct pointer types lacks a cast drivers/media/platform/sti/bdisp/bdisp-debug.c:595: warning: right shift count >= width of type drivers/media/platform/sti/bdisp/bdisp-debug.c:595: warning: passing argument 1 of '__div64_32' from incompatible pointer type CC [M] drivers/media/tuners/mt2060.o drivers/media/platform/sti/bdisp/bdisp-debug.c:596: warning: comparison of distinct pointer types lacks a cast drivers/media/platform/sti/bdisp/bdisp-debug.c:596: warning: right shift count >= width of type drivers/media/platform/sti/bdisp/bdisp-debug.c:596: warning: passing argument 1 of '__div64_32' from incompatible pointer type drivers/media/platform/sti/bdisp/bdisp-debug.c:597: warning: comparison of distinct pointer types lacks a cast drivers/media/platform/sti/bdisp/bdisp-debug.c:597: warning: right shift count >= width of type drivers/media/platform/sti/bdisp/bdisp-debug.c:597: warning: passing argument 1 of '__div64_32' from incompatible pointer type That doesn't make much sense. What the driver is actually trying to do is to divide one second by a value. So, check the range before dividing. That warrants the right result and will remove the warnings on non-64 bits archs. Also fixes this warning: drivers/media/platform/sti/bdisp/bdisp-debug.c:588: warning: comparison of distinct pointer types lacks a cast by using div64_s64() instead of calling do_div() directly. Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/sti/bdisp/bdisp-debug.c | 33 +++++++++++++++++--------- 1 file changed, 22 insertions(+), 11 deletions(-) commit df203a4e46f4cd8cd9f58e926bea462006f9b3a6 Author: Jeeja KP Date: Thu Jun 11 14:11:49 2015 +0530 ALSA: hdac_ext: add extended stream capabilities Now we have the bus and controller code added to find and initialize the extended capabilities. Now we need to use them in stream code to decouple stream, manage links etc So this patch adds the stream handling code for extended capabilities introduced in preceding patches Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Takashi Iwai include/sound/hdaudio_ext.h | 48 +++++ sound/hda/ext/Makefile | 2 +- sound/hda/ext/hdac_ext_stream.c | 402 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 451 insertions(+), 1 deletion(-) commit 0b00a5615dc40c3231e4386f08db1d171872c40a Author: Jeeja KP Date: Thu Jun 11 14:11:48 2015 +0530 ALSA: hdac_ext: add hdac extended controller The controller needs to support the new capabilities and allow reading, parsing and initializing of these capabilities, so this patch does it Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Takashi Iwai include/sound/hdaudio_ext.h | 35 +++++ sound/hda/ext/Makefile | 2 +- sound/hda/ext/hdac_ext_controller.c | 270 ++++++++++++++++++++++++++++++++++++ 3 files changed, 306 insertions(+), 1 deletion(-) commit dfe66a18780dab02ccf6e148df4f28f389669c30 Author: Jeeja KP Date: Thu Jun 11 14:11:47 2015 +0530 ALSA: hdac_ext: add extended HDA bus The new HDA controllers from Intel support new capabilities like multilink, pipe processing, SPIB, GTS etc In order to use them we create an extended HDA bus which embed the hdac bus and contains the fields for extended configurations Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Takashi Iwai include/sound/hdaudio_ext.h | 46 +++++++++++++++++ sound/hda/Kconfig | 4 ++ sound/hda/Makefile | 3 ++ sound/hda/ext/Makefile | 3 ++ sound/hda/ext/hdac_ext_bus.c | 117 +++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 173 insertions(+) commit 27c41dad3a012c5acead1d903d1743297457b69c Author: Johan Rastén Date: Thu Jun 11 10:04:51 2015 +0200 ALSA: usb-audio: Set correct type for some UAC2 mixer controls. Changed ctl type for Input Gain Control and Input Gain Pad Control to USB_MIXER_S16 as per section 5.2.5.7.11-12 in the USB Audio Class 2.0 definition. Signed-off-by: Johan Rastén Signed-off-by: Takashi Iwai sound/usb/mixer.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit f35bbf61ab772cc312f64dddd1c89ab161893cee Author: Mika Westerberg Date: Wed Jun 10 16:05:05 2015 +0300 gpio / ACPI: Return -EPROBE_DEFER if the gpiochip was not found If a driver requests a GPIO described in its _CRS but the GPIO host controller (gpiochip) driver providing the GPIO has not been loaded yet acpi_get_gpiod() returns -ENODEV which causes the calling driver to fail. If the gpiochip driver is loaded afterwards the driver requesting the GPIO will not notice this. Better approach is to return -EPROBE_DEFER in such case. Then when the gpiochip driver appears the driver requesting the GPIO will be probed again. This also aligns ACPI GPIO lookup code closer to DT as it does pretty much the same when no gpiochip driver was found. Reported-by: Tobias Diedrich Signed-off-by: Mika Westerberg Acked-by: Rafael J. Wysocki Signed-off-by: Tobias Diedrich Reviewed-by: Amos Kong Signed-off-by: Linus Walleij drivers/gpio/gpiolib-acpi.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 4d58b8a6de6b8c3611f10124f83e90e5a2406437 Author: Joerg Roedel Date: Thu Jun 11 09:21:39 2015 +0200 iommu/amd: Handle errors returned from iommu_init_device Without this patch only -ENOTSUPP is handled, but there are other possible errors. Handle them too. Reported-by: Dan Carpenter Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) commit 409e553deeeb08d644ed1110e0f1c97b71cb6409 Author: Dan Carpenter Date: Wed Jun 10 13:59:27 2015 +0300 iommu: Checking for NULL instead of IS_ERR The iommu_group_alloc() and iommu_group_get_for_dev() functions return error pointers, they never return NULL. Signed-off-by: Dan Carpenter Signed-off-by: Joerg Roedel drivers/iommu/iommu.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) commit 3a18404cd952ae529651f72a13e5d6ffee824c2e Author: Joerg Roedel Date: Thu May 28 18:41:45 2015 +0200 iommu/amd: Propagate errors from amd_iommu_init_api This function can fail. Propagate any errors back to the initialization state machine. Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu.c | 4 ++-- drivers/iommu/amd_iommu_init.c | 5 +++-- drivers/iommu/amd_iommu_proto.h | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) commit 2870b0a4911038fd6aed9093cda2dbe80fd0ee2e Author: Joerg Roedel Date: Thu May 28 18:41:44 2015 +0200 iommu/amd: Remove unused fields from struct dma_ops_domain The list_head and target_dev members are not used anymore. Remove them. Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu.c | 1 - drivers/iommu/amd_iommu_types.h | 8 -------- 2 files changed, 9 deletions(-) commit 343e9cac9c4a2715e8fa6b89b04e31e9fcbae5e3 Author: Joerg Roedel Date: Thu May 28 18:41:43 2015 +0200 iommu/amd: Get rid of device_dma_ops_init() With device intialization done in the add_device call-back now there is no reason for this function anymore. Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu.c | 40 +--------------------------------------- 1 file changed, 1 insertion(+), 39 deletions(-) commit 07ee86948c9111d49583be462500042fedfecb4a Author: Joerg Roedel Date: Thu May 28 18:41:42 2015 +0200 iommu/amd: Put IOMMUv2 devices in a direct mapped domain A device that might be used for HSA needs to be in a direct mapped domain so that all DMA-API mappings stay alive when the IOMMUv2 stack is used. Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) commit 07f643a35d6b50f0f091444f07db1353188e787e Author: Joerg Roedel Date: Thu May 28 18:41:41 2015 +0200 iommu/amd: Support IOMMU_DOMAIN_IDENTITY type allocation Add support to allocate direct mapped domains through the IOMMU-API. Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 0bb6e243d7fbb39fced5bd4a4c83eb49c6e820ce Author: Joerg Roedel Date: Thu May 28 18:41:40 2015 +0200 iommu/amd: Support IOMMU_DOMAIN_DMA type allocation This enables allocation of DMA-API default domains from the IOMMU core and switches allocation of domain dma-api domain to the IOMMU core too. Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu.c | 311 ++++++++++------------------------------ drivers/iommu/amd_iommu_types.h | 3 - 2 files changed, 73 insertions(+), 241 deletions(-) commit aafd8ba0ca74894b9397e412bbd7f8ea2662ead8 Author: Joerg Roedel Date: Thu May 28 18:41:39 2015 +0200 iommu/amd: Implement add_device and remove_device Implement these two iommu-ops call-backs to make use of the initialization and notifier features of the iommu core. Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu.c | 210 +++++++++++------------------------------ drivers/iommu/amd_iommu_init.c | 31 ++---- 2 files changed, 63 insertions(+), 178 deletions(-) commit 063071dff53858027e95d3cfcedb1780952302ad Author: Joerg Roedel Date: Thu May 28 18:41:38 2015 +0200 iommu/amd: Use default domain if available for DMA-API Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 35cf248f8860b8d2956516d6cdf7e57ff4ed4cbb Author: Joerg Roedel Date: Thu May 28 18:41:37 2015 +0200 iommu/amd: Implement dm_region call-backs Add the get_dm_regions and put_dm_regions callbacks to the iommu_ops of the AMD IOMMU driver. Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu.c | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) commit 7161d18f6631b30b324f36bcad36191fde62db88 Author: Geoff Levand Date: Wed Jun 10 10:19:48 2015 -0700 net/ps3_gelic: Fix build error with DEBUG When the DEBUG preprocessor macro is defined the ps3_gelic_net driver build fails due to an undeclared routine gelic_descr_get_status(). This problem was introduced during the code cleanup of commit 6b0c21cede22be1f68f0a632c0ca38008ce1abe7 (net: Fix p3_gelic_net sparse warnings), which re-arranged the ordering of some of the gelic routines. This change just moves the gelic_descr_get_status() routine up in the ps3_gelic_net.c source file. There is no functional change. Fixes build errors like these: drivers/net/ethernet/toshiba/ps3_gelic_net.c: error: implicit declaration of function gelic_descr_get_status Signed-off-by: Geoff Levand Signed-off-by: David S. Miller drivers/net/ethernet/toshiba/ps3_gelic_net.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit a4244b0cf58d56c171874e85228ba5deffeb017a Author: Hadar Hen Zion Date: Thu Jun 11 10:28:16 2015 +0300 net/ethtool: Add current supported tunable options Add strings array of the current supported tunable options. Signed-off-by: Hadar Hen Zion Reviewed-by: Amir Vadai Signed-off-by: David S. Miller include/uapi/linux/ethtool.h | 6 ++++++ net/core/ethtool.c | 12 ++++++++++++ 2 files changed, 18 insertions(+) commit 238abecde8ad43f914e095fcf23e0bd35dc7a7f2 Author: Anton Blanchard Date: Tue May 26 08:53:29 2015 +1000 powerpc: Don't use gcc specific options on clang We have code to choose between several options, eg. -mabi=elfv2 vs -mcall-aixdesc, and -mcmodel=medium vs -mminimal-toc. But these are all GCC specific, so use cc-option on all of them. Signed-off-by: Anton Blanchard Signed-off-by: Michael Ellerman arch/powerpc/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 92d6cf2dab83cfb00b3d80fd38a38a77c6873277 Author: Anton Blanchard Date: Tue May 26 08:53:28 2015 +1000 powerpc: Don't use -mno-strict-align on clang We added -mno-strict-align in commit f036b3681962 (powerpc: Work around little endian gcc bug) to fix gcc bug http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57134 Clang doesn't understand it. We need to use a conditional because we can't use the simpler call cc-option here. Signed-off-by: Anton Blanchard Signed-off-by: Michael Ellerman arch/powerpc/Makefile | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit a50a862e74a9d7b447df30c33aa3d534ce3a977a Author: Anton Blanchard Date: Tue May 26 08:53:27 2015 +1000 powerpc: Only use -mtraceback=no, -mno-string and -msoft-float if toolchain supports it These options are not recognised on LLVM, so use call cc-option to check for support. Signed-off-by: Anton Blanchard Signed-off-by: Michael Ellerman arch/powerpc/Makefile | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 1fb3f5a7ca599f322e6bf21272ad215301159aa0 Author: Anton Blanchard Date: Tue May 26 08:53:26 2015 +1000 powerpc: Only use -mabi=altivec if toolchain supports it The -mabi=altivec option is not recognised on LLVM, so use call cc-option to check for support. Signed-off-by: Anton Blanchard Signed-off-by: Michael Ellerman arch/powerpc/lib/Makefile | 2 +- lib/raid6/Makefile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit b91c1e3e7a6f22a6b898e345b745b6a43273c973 Author: Anton Blanchard Date: Tue May 26 08:53:25 2015 +1000 powerpc: Fix duplicate const clang warning in user access code We see a large number of duplicate const errors in the user access code when building with llvm/clang: include/linux/pagemap.h:576:8: warning: duplicate 'const' declaration specifier [-Wduplicate-decl-specifier] ret = __get_user(c, uaddr); The problem is we are doing const __typeof__(*(ptr)), which will hit the warning if ptr is marked const. Removing const does not seem to have any effect on GCC code generation. Signed-off-by: Anton Blanchard Signed-off-by: Michael Ellerman arch/powerpc/include/asm/uaccess.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit de847254036e1ca7e60dad84ddef46b5664146d0 Merge: 1059261 1a3f4e8 Author: David S. Miller Date: Thu Jun 11 00:32:21 2015 -0700 Merge branch 'broadcom-MDIO-turn-around' Florian Fainelli says: ==================== net: broadcom MDIO support for broken turn-around These two patches update the GENET and UniMAC MDIO controllers to deal with PHYs that are known to have a broken turn-around bug (e.g: BCM53125 and others) This utilizes the infrastructure that code recently added to do that in 'net-next'. Note that the changes look nearly identical and I will try to address the MDIO code duplication between GENET and UniMAC in a future patch series. Changes in v2: - remove brcmphy.h include in mdio-bcm-unimac.c - use the same comment as with GENET's MDIO read function ==================== Signed-off-by: David S. Miller commit 1a3f4e83bc37c2eee13b4efdeb09209108fd673b Author: Florian Fainelli Date: Wed Jun 10 12:24:11 2015 -0700 net: phy: mdio-bcm-unimac: handle broken turn-around for specific PHYs Some Ethernet PHYs/switches such as Broadcom's BCM53125 have a hardware bug which makes them not release the MDIO line during turn-around time. This gets flagged by the UniMAC MDIO controller as a read failure, and we fail the read transaction. Check the MDIO bus phy_ignore_ta_mask bitmask for the PHY we are reading from and if it is listed in this bitmask, ignore the read failure and proceed with returning the data we read out of the controller. Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/phy/mdio-bcm-unimac.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 9d3366e95dbbbdfe9bed488b483c47bd8f48cf04 Author: Florian Fainelli Date: Wed Jun 10 12:24:10 2015 -0700 net: bcmgenet: handle broken turn-around for specific PHYs Some Ethernet PHYs/switches such as Broadcom's BCM53125 have a hardware bug which makes them not release the MDIO line during turn-around time. This gets flagged by the GENET MDIO controller as a read failure, and we fail the read transaction. Check the MDIO bus phy_ignore_ta_mask bitmask for the PHY we are reading from and if it is listed in this bitmask, ignore the read failure and proceed with returning the data we read out of the controller. Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/genet/bcmmii.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 1059261e7d6a9f9830bfeb51559d90009e526a96 Author: Gustavo Zacarias Date: Wed Jun 10 13:48:20 2015 -0300 net: phy: davicom: add IDs for DM9161B and C variants Add PHY IDs for Davicom DM9161B and DM9161C variants. Tested with a DM9161C on a custom Atmel-based SAM9X25 board in RMII mode. The DM9161B uses the same model id with just the LSB bit of the version id changing (which is masked out). For all intents and purposes they're the same as the DM9161A with an added GPSI mode and better fabrication process. Signed-off-by: Gustavo Zacarias Signed-off-by: David S. Miller drivers/net/phy/davicom.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit a0d2f20650e81407d8e51ad2cbdc492861c74e9c Author: Sergei Shtylyov Date: Thu Jun 11 01:02:30 2015 +0300 Renesas Ethernet AVB PTP clock driver Ethernet AVB device includes the gPTP timer, so we can implement a PTP clock driver. We're doing that in a separate file, with the main Ethernet driver calling the PTP driver's [de]initialization and interrupt handler functions. Unfortunately, the clock seems tightly coupled with the AVB-DMAC, so when that one leaves the operation mode, we have to unregister the PTP clock... :-( Based on the original patches by Masaru Nagai. Signed-off-by: Masaru Nagai Signed-off-by: Sergei Shtylyov Signed-off-by: David S. Miller drivers/net/ethernet/renesas/Makefile | 3 + drivers/net/ethernet/renesas/ravb.c | 1801 ----------------------------- drivers/net/ethernet/renesas/ravb.h | 26 + drivers/net/ethernet/renesas/ravb_main.c | 1824 ++++++++++++++++++++++++++++++ drivers/net/ethernet/renesas/ravb_ptp.c | 357 ++++++ 5 files changed, 2210 insertions(+), 1801 deletions(-) commit c156633f1353264634135dea86ffcae74f2122fc Author: Sergei Shtylyov Date: Thu Jun 11 01:01:43 2015 +0300 Renesas Ethernet AVB driver proper Ethernet AVB includes an Gigabit Ethernet controller (E-MAC) that is basically compatible with SuperH Gigabit Ethernet E-MAC. Ethernet AVB has a dedicated direct memory access controller (AVB-DMAC) that is a new design compared to the SuperH E-DMAC. The AVB-DMAC is compliant with 3 standards formulated for IEEE 802.1BA: IEEE 802.1AS timing and synchronization protocol, IEEE 802.1Qav real- time transfer, and the IEEE 802.1Qat stream reservation protocol. The driver only supports device tree probing, so the binding document is included in this patch. Based on the original patches by Mitsuhiro Kimura. Signed-off-by: Mitsuhiro Kimura Signed-off-by: Sergei Shtylyov Signed-off-by: David S. Miller .../devicetree/bindings/net/renesas,ravb.txt | 48 + drivers/net/ethernet/renesas/Kconfig | 31 + drivers/net/ethernet/renesas/Makefile | 1 + drivers/net/ethernet/renesas/ravb.c | 1801 ++++++++++++++++++++ drivers/net/ethernet/renesas/ravb.h | 806 +++++++++ 5 files changed, 2687 insertions(+) commit 2b0a8c9eee81882fc0001ccf6d9af62cdc682f9e Author: Kenneth Klette Jonassen Date: Wed Jun 10 19:08:17 2015 +0200 tcp: add CDG congestion control CAIA Delay-Gradient (CDG) is a TCP congestion control that modifies the TCP sender in order to [1]: o Use the delay gradient as a congestion signal. o Back off with an average probability that is independent of the RTT. o Coexist with flows that use loss-based congestion control, i.e., flows that are unresponsive to the delay signal. o Tolerate packet loss unrelated to congestion. (Disabled by default.) Its FreeBSD implementation was presented for the ICCRG in July 2012; slides are available at http://www.ietf.org/proceedings/84/iccrg.html Running the experiment scenarios in [1] suggests that our implementation achieves more goodput compared with FreeBSD 10.0 senders, although it also causes more queueing delay for a given backoff factor. The loss tolerance heuristic is disabled by default due to safety concerns for its use in the Internet [2, p. 45-46]. We use a variant of the Hybrid Slow start algorithm in tcp_cubic to reduce the probability of slow start overshoot. [1] D.A. Hayes and G. Armitage. "Revisiting TCP congestion control using delay gradients." In Networking 2011, pages 328-341. Springer, 2011. [2] K.K. Jonassen. "Implementing CAIA Delay-Gradient in Linux." MSc thesis. Department of Informatics, University of Oslo, 2015. Cc: Eric Dumazet Cc: Yuchung Cheng Cc: Stephen Hemminger Cc: Neal Cardwell Cc: David Hayes Cc: Andreas Petlund Cc: Dave Taht Cc: Nicolas Kuhn Signed-off-by: Kenneth Klette Jonassen Acked-by: Yuchung Cheng Signed-off-by: David S. Miller net/ipv4/Kconfig | 20 +++ net/ipv4/Makefile | 1 + net/ipv4/tcp_cdg.c | 433 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 454 insertions(+) commit 7782ad8bb55c18f634a6713ec38c8f1ae86ad0b5 Author: Kenneth Klette Jonassen Date: Wed Jun 10 19:08:16 2015 +0200 tcp: export tcp_enter_cwr() Upcoming tcp_cdg uses tcp_enter_cwr() to initiate PRR. Export this function so that CDG can be compiled as a module. Cc: Eric Dumazet Cc: Yuchung Cheng Cc: Stephen Hemminger Cc: Neal Cardwell Cc: David Hayes Cc: Andreas Petlund Cc: Dave Taht Cc: Nicolas Kuhn Signed-off-by: Kenneth Klette Jonassen Acked-by: Yuchung Cheng Signed-off-by: David S. Miller net/ipv4/tcp_input.c | 1 + 1 file changed, 1 insertion(+) commit d290f1e70d85a9a4d124594c6a3d769329960bdc Author: Joerg Roedel Date: Thu May 28 18:41:36 2015 +0200 iommu: Introduce iommu_request_dm_for_dev() This function can be called by an IOMMU driver to request that a device's default domain is direct mapped. Signed-off-by: Joerg Roedel drivers/iommu/iommu.c | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++ include/linux/iommu.h | 6 ++++++ 2 files changed, 59 insertions(+) commit af201f723f694c8bf12f80c39c897371c4800d31 Author: Scott Feldman Date: Wed Jun 10 17:04:49 2015 -0700 switchdev: fix handling for drivers not supporting IPv4 fib add/del ops If CONFIG_NET_SWITCHDEV is enabled, but port driver does not implement support for IPv4 FIB add/del ops, don't fail route add/del offload operations. Route adds will not be marked as OFFLOAD. Routes will be installed in the kernel FIB, as usual. This was report/fixed by Florian when testing DSA driver with net-next on devices with L2 offload support but no L3 offload support. What he reported was an initial route installed from DHCP client would fail (route not installed to kernel FIB). This was triggering the setting of ipv4.fib_offload_disabled, which would disable route offloading after the first failure. So subsequent attempts to install the route would succeed. There is follow-on work/discussion to address the handling of route install failures, but for now, let's differentiate between no support and failed support. Reported-by: Florian Fainelli Signed-off-by: Scott Feldman Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller net/switchdev/switchdev.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1531407c81830e8b9b0fb00d4f49bcc1ee91dfd1 Merge: f9c2ff2 aafc66f Author: David S. Miller Date: Wed Jun 10 23:33:59 2015 -0700 Merge branch 'brcm-pseudo-phy-addr' Florian Fainelli says: ==================== net: phy: broadcom: define pseudo-PHY address This patch series converts existing in-tree users of the Broadcom pseudo-PHY address (30) used to configure MDIO-connected switches to share a constant in a shared header files. ==================== Signed-off-by: David S. Miller commit aafc66f106c03336e6e4ab9fd741c2b33110b7be Author: Florian Fainelli Date: Wed Jun 10 18:08:01 2015 -0700 net: dsa: bcm_sf2: Utilize BRCM_PSEUDO_PHY_ADDR Utilize the newly introduced BRCM_PSEUDO_PHY_ADDR constant from brcmphy.h instead of open-coding the Broadcom Ethernet switches pseudo-PHY address (30). Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/dsa/bcm_sf2.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 4447d2adfa48485ee31e3bf65113b6acea91d1d0 Author: Florian Fainelli Date: Wed Jun 10 18:08:00 2015 -0700 bgmac: Utilize BRCM_PSEUDO_PHY_ADDR What BGMAC defines as BGMAC_PHY_NOREGS is in fact the Broadcom Ethernet switches' pseudo-PHY address (30), utilize the newly introduced constant from brcmphy.h Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bgmac.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 2729b4270840554bc2b6811ae6c9993884404f56 Author: Florian Fainelli Date: Wed Jun 10 18:07:59 2015 -0700 b44: Utilize BRCM_PSEUDO_PHY_ADDR What B44 has been locally using as B44_PHY_ADDR_NO_LOCAL_PHY is in fact the Broadcom Ethernet switches pseudo-PHY address (30). Update the header to use the newly introduced constant and update comments so they are within 80 columns and consistent. Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/b44.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 8bc84b79265f66d5af736473db582e74b28e099d Author: Florian Fainelli Date: Wed Jun 10 18:07:58 2015 -0700 net: phy: broadcom: define Broadcom pseudo-PHY address in brcmphy.h Define the pseudo-PHY address (30) which is used by all Broadcom Ethernet switches in a shared header file. Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller include/linux/brcmphy.h | 5 +++++ 1 file changed, 5 insertions(+) commit 4f822c625f9c68267ffee7519519e304858a46c3 Author: Florian Fainelli Date: Wed Jun 10 18:07:57 2015 -0700 net: phy: broadcom: include phy.h for brcmphy.h We utilize inline functions from the PHY library, make sure that we do include phy.h in brcmphy.h in order for the code including brcmphy.h not to have to resolve this inclusion dependency. Fixes: 705314797b8b ("net: phy: broadcom: move shadow 0x1C register accessors to brcmphy.h") Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller include/linux/brcmphy.h | 2 ++ 1 file changed, 2 insertions(+) commit 94fb9334182284e8e7e4bcb9125c25dc33af19d4 Author: Joerg Roedel Date: Wed Jun 10 17:49:42 2015 +0200 x86/crash: Allocate enough low memory when crashkernel=high When the crash kernel is loaded above 4GiB in memory, the first kernel allocates only 72MiB of low-memory for the DMA requirements of the second kernel. On systems with many devices this is not enough and causes device driver initialization errors and failed crash dumps. Testing by SUSE and Redhat has shown that 256MiB is a good default value for now and the discussion has lead to this value as well. So set this default value to 256MiB to make sure there is enough memory available for DMA. Signed-off-by: Joerg Roedel [ Reflow comment. ] Signed-off-by: Borislav Petkov Acked-by: Baoquan He Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Dave Young Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Jörg Rödel Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Vivek Goyal Cc: kexec@lists.infradead.org Link: http://lkml.kernel.org/r/1433500202-25531-4-git-send-email-joro@8bytes.org Signed-off-by: Ingo Molnar arch/x86/kernel/setup.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) commit 186dfc9d69b96a38ec6ec654127dba4432184494 Author: Joerg Roedel Date: Wed Jun 10 17:49:41 2015 +0200 x86/swiotlb: Try coherent allocations with __GFP_NOWARN When we boot a kdump kernel in high memory, there is by default only 72MB of low memory available. The swiotlb code takes 64MB of it (by default) so that there are only 8MB left to allocate from. On systems with many devices this causes page allocator warnings from dma_generic_alloc_coherent(): systemd-udevd: page allocation failure: order:0, mode:0x280d4 CPU: 0 PID: 197 Comm: systemd-udevd Tainted: G W 3.12.28-4-default #1 Hardware name: HP ProLiant DL980 G7, BIOS P66 07/30/2012 ffff8800781335e0 ffffffff8150b1db 00000000000280d4 ffffffff8113af90 0000000000000000 0000000000000000 ffff88007efdbb00 0000000100000000 0000000000000000 0000000000000000 0000000000000000 0000000000000001 Call Trace: dump_trace+0x7d/0x2d0 show_stack_log_lvl+0x94/0x170 show_stack+0x21/0x50 dump_stack+0x41/0x51 warn_alloc_failed+0xf0/0x160 __alloc_pages_slowpath+0x72f/0x796 __alloc_pages_nodemask+0x1ea/0x210 dma_generic_alloc_coherent+0x96/0x140 x86_swiotlb_alloc_coherent+0x1c/0x50 ttm_dma_pool_alloc_new_pages+0xab/0x320 [ttm] ttm_dma_populate+0x3ce/0x640 [ttm] ttm_tt_bind+0x36/0x60 [ttm] ttm_bo_handle_move_mem+0x55f/0x5c0 [ttm] ttm_bo_move_buffer+0x105/0x130 [ttm] ttm_bo_validate+0xc1/0x130 [ttm] ttm_bo_init+0x24b/0x400 [ttm] radeon_bo_create+0x16c/0x200 [radeon] radeon_ring_init+0x11e/0x2b0 [radeon] r100_cp_init+0x123/0x5b0 [radeon] r100_startup+0x194/0x230 [radeon] r100_init+0x223/0x410 [radeon] radeon_device_init+0x6af/0x830 [radeon] radeon_driver_load_kms+0x89/0x180 [radeon] drm_get_pci_dev+0x121/0x2f0 [drm] local_pci_probe+0x39/0x60 pci_device_probe+0xa9/0x120 driver_probe_device+0x9d/0x3d0 __driver_attach+0x8b/0x90 bus_for_each_dev+0x5b/0x90 bus_add_driver+0x1f8/0x2c0 driver_register+0x5b/0xe0 do_one_initcall+0xf2/0x1a0 load_module+0x1207/0x1c70 SYSC_finit_module+0x75/0xa0 system_call_fastpath+0x16/0x1b 0x7fac533d2788 After these warnings the code enters a fall-back path and allocated directly from the swiotlb aperture in the end. So remove these warnings as this is not a fatal error. Signed-off-by: Joerg Roedel [ Simplify, reflow comment. ] Signed-off-by: Borislav Petkov Acked-by: Baoquan He Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Dave Young Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Jörg Rödel Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Vivek Goyal Cc: kexec@lists.infradead.org Link: http://lkml.kernel.org/r/1433500202-25531-3-git-send-email-joro@8bytes.org Signed-off-by: Ingo Molnar arch/x86/kernel/pci-swiotlb.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 94cc81f9a8f995923e35e2db936741dd62d18350 Author: Joerg Roedel Date: Wed Jun 10 17:49:40 2015 +0200 swiotlb: Warn on allocation failure in swiotlb_alloc_coherent() Print a warning when all allocation tries have been failed and the function is about to return NULL. This prepares for calling the function with __GFP_NOWARN to suppress allocation failure warnings before all fall-backs have failed - which we'll do to improve kdump behavior. Signed-off-by: Joerg Roedel Signed-off-by: Borislav Petkov Acked-by: Konrad Rzeszutek Wilk Acked-by: Baoquan He Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Dave Young Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Jörg Rödel Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Vivek Goyal Cc: kexec@lists.infradead.org Link: http://lkml.kernel.org/r/1433500202-25531-2-git-send-email-joro@8bytes.org Signed-off-by: Ingo Molnar lib/swiotlb.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) commit f9c2ff22bb2df7b8f153afd2a4bea07176bad144 Author: Eric Dumazet Date: Wed Jun 10 22:11:17 2015 -0700 net: tcp: dctcp_update_alpha() fixes. dctcp_alpha can be read by from dctcp_get_info() without synchro, so use WRITE_ONCE() to prevent compiler from using dctcp_alpha as a temporary variable. Also, playing with small dctcp_shift_g (like 1), can expose an overflow with 32bit values shifted 9 times before divide. Use an u64 field to avoid this problem, and perform the divide only if acked_bytes_ecn is not zero. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller net/ipv4/tcp_dctcp.c | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) commit 1edaa7e8a7e753bd42d795bf289a6488aeae7f56 Merge: 37a9a8d 30686bf Author: David S. Miller Date: Wed Jun 10 22:49:49 2015 -0700 Merge tag 'mac80211-next-for-davem-2015-06-10' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next Johannes Berg says: ==================== For this round we mostly have fixes: * mesh fixes from Alexis Green and Chun-Yeow Yeoh, * a documentation fix from Jakub Kicinski, * a missing channel release (from Michal Kazior), * a fix for a signal strength reporting bug (from Sara Sharon), * handle deauth while associating (myself), * don't report mangled TX SKB back to userspace for status (myself), * handle aggregation session timeouts properly in fast-xmit (myself) However, there are also a few cleanups and one big change that affects all drivers (and that required me to pull in your tree) to change the mac80211 HW flags to use an unsigned long bitmap so that we can extend them more easily - we're running out of flags even with a cleanup to remove the two unused ones. ==================== Signed-off-by: David S. Miller commit 37a9a8df8ce9de6ea73349c9ac8bdf6ba4ec4f70 Author: Stephen Smalley Date: Wed Jun 10 08:44:59 2015 -0400 net/unix: support SCM_SECURITY for stream sockets SCM_SECURITY was originally only implemented for datagram sockets, not for stream sockets. However, SCM_CREDENTIALS is supported on Unix stream sockets. For consistency, implement Unix stream support for SCM_SECURITY as well. Also clean up the existing code and get rid of the superfluous UNIXSID macro. Motivated by https://bugzilla.redhat.com/show_bug.cgi?id=1224211, where systemd was using SCM_CREDENTIALS and assumed wrongly that SCM_SECURITY was also supported on Unix stream sockets. Signed-off-by: Stephen Smalley Acked-by: Paul Moore Signed-off-by: David S. Miller include/net/af_unix.h | 1 - net/unix/af_unix.c | 20 ++++++++++++++++---- 2 files changed, 16 insertions(+), 5 deletions(-) commit bae23b6840a6a15947173d8282028458dbcdeb5b Author: Vaishali Thakkar Date: Wed Jun 10 11:10:05 2015 +0530 atm: idt77105: Use setup_timer Use the timer API function setup_timer instead of structure field assignments to initialize a timer. A simplified version of the Coccinelle semantic patch that performs this transformation is as follows: @change@ expression e1, e2, a; @@ -init_timer(&e1); +setup_timer(&e1, a, 0UL); ... when != a = e2 -e1.function = a; Signed-off-by: Vaishali Thakkar Signed-off-by: David S. Miller drivers/atm/idt77105.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit f21fb3ed364bb83533c5efe19354e337ea9ecda9 Author: Raghu Vatsavayi Date: Tue Jun 9 18:15:23 2015 -0700 Add support of Cavium Liquidio ethernet adapters Following patch V8 adds support for Cavium Liquidio pci express based 10Gig ethernet adapters. 1) Consolidated all debug macros to either call dev_* or netdev_* macros directly, feedback from previous patch. 2) Changed soft commands to avoid crash when running in interrupt context. 3) Fixed link status not reflecting correct status when NetworkManager is running. Added MODULE_FIRMWARE declarations. Following were the previous patches. Patch V7: 1) Minor comments from v6 release regarding debug statements. 2) Fix for large multicast lists. 3) Fixed lockup issue if port initialization fails. 4) Enabled MSI by default. https://patchwork.ozlabs.org/patch/464441/ Patch V6: 1) Addressed the uint64 vs u64 issue, feedback from previous patch. 2) Consolidated some receive processing routines. 3) Removed link status polling method. https://patchwork.ozlabs.org/patch/459514/ Patch V5: Based on the feedback from earlier patches with regards to consolidation of common functions like device init, register programming for cn66xx and cn68xx devices. https://patchwork.ozlabs.org/patch/438979/ Patch V4: Following were the changes based on the feedback from earlier patch: 1) Added mmiowb while synchronizing queue updates and other hw interactions. 2) Statistics will now be incremented non-atomically per each ring. liquidio_get_stats will add stats of each ring while reporting the total statistics counts. 3) Modified liquidio_ioctl to return proper return codes. 4) Modified device naming to use standard Ethernet naming. 5) Global function names in the driver will have lio_/liquidio_/octeon_ prefix. 6) Ethtool related changes for: Removed redundant stats and jiffies. Use default ethtool handler of link status. Speed setting will make use of ethtool_cmd_speed_set. 7) Added checks for pci_map_* return codes. 8) Check for signals while waiting in interruptible mode https://patchwork.ozlabs.org/patch/435073/ Patch v3: Implemented feedback from previous patch like: Removed NAPI Config and DEBUG config options, added BQL and xmit_more support. https://patchwork.ozlabs.org/patch/422749/ Patch V2: Implemented feedback from previous patch. https://patchwork.ozlabs.org/patch/413539/ First Patch: https://patchwork.ozlabs.org/patch/412946/ Signed-off-by: Derek Chickles Signed-off-by: Satanand Burla Signed-off-by: Felix Manlunas Signed-off-by: Robert Richter Signed-off-by: Aleksey Makarov Signed-off-by: Raghu Vatsavayi Signed-off-by: David S. Miller MAINTAINERS | 11 + drivers/net/ethernet/cavium/Kconfig | 38 +- drivers/net/ethernet/cavium/Makefile | 2 +- drivers/net/ethernet/cavium/liquidio/Makefile | 16 + .../net/ethernet/cavium/liquidio/cn66xx_device.c | 796 +++++ .../net/ethernet/cavium/liquidio/cn66xx_device.h | 107 + drivers/net/ethernet/cavium/liquidio/cn66xx_regs.h | 535 +++ .../net/ethernet/cavium/liquidio/cn68xx_device.c | 198 ++ .../net/ethernet/cavium/liquidio/cn68xx_device.h | 33 + drivers/net/ethernet/cavium/liquidio/cn68xx_regs.h | 51 + drivers/net/ethernet/cavium/liquidio/lio_ethtool.c | 1216 +++++++ drivers/net/ethernet/cavium/liquidio/lio_main.c | 3667 ++++++++++++++++++++ .../net/ethernet/cavium/liquidio/liquidio_common.h | 673 ++++ .../net/ethernet/cavium/liquidio/liquidio_image.h | 57 + .../net/ethernet/cavium/liquidio/octeon_config.h | 424 +++ .../net/ethernet/cavium/liquidio/octeon_console.c | 723 ++++ .../net/ethernet/cavium/liquidio/octeon_device.c | 1307 +++++++ .../net/ethernet/cavium/liquidio/octeon_device.h | 649 ++++ drivers/net/ethernet/cavium/liquidio/octeon_droq.c | 988 ++++++ drivers/net/ethernet/cavium/liquidio/octeon_droq.h | 426 +++ drivers/net/ethernet/cavium/liquidio/octeon_iq.h | 319 ++ drivers/net/ethernet/cavium/liquidio/octeon_main.h | 237 ++ .../net/ethernet/cavium/liquidio/octeon_mem_ops.c | 199 ++ .../net/ethernet/cavium/liquidio/octeon_mem_ops.h | 75 + .../net/ethernet/cavium/liquidio/octeon_network.h | 224 ++ drivers/net/ethernet/cavium/liquidio/octeon_nic.c | 189 + drivers/net/ethernet/cavium/liquidio/octeon_nic.h | 227 ++ .../net/ethernet/cavium/liquidio/request_manager.c | 764 ++++ .../ethernet/cavium/liquidio/response_manager.c | 178 + .../ethernet/cavium/liquidio/response_manager.h | 140 + 30 files changed, 14457 insertions(+), 12 deletions(-) commit e633bc86a922468a82300eef5b9802e17be5e23d Author: Alexey Kardashevskiy Date: Fri Jun 5 16:35:26 2015 +1000 vfio: powerpc/spapr: Support Dynamic DMA windows This adds create/remove window ioctls to create and remove DMA windows. sPAPR defines a Dynamic DMA windows capability which allows para-virtualized guests to create additional DMA windows on a PCI bus. The existing linux kernels use this new window to map the entire guest memory and switch to the direct DMA operations saving time on map/unmap requests which would normally happen in a big amounts. This adds 2 ioctl handlers - VFIO_IOMMU_SPAPR_TCE_CREATE and VFIO_IOMMU_SPAPR_TCE_REMOVE - to create and remove windows. Up to 2 windows are supported now by the hardware and by this driver. This changes VFIO_IOMMU_SPAPR_TCE_GET_INFO handler to return additional information such as a number of supported windows and maximum number levels of TCE tables. DDW is added as a capability, not as a SPAPR TCE IOMMU v2 unique feature as we still want to support v2 on platforms which cannot do DDW for the sake of TCE acceleration in KVM (coming soon). Signed-off-by: Alexey Kardashevskiy [aw: for the vfio related changes] Acked-by: Alex Williamson Reviewed-by: David Gibson Signed-off-by: Michael Ellerman Documentation/vfio.txt | 19 ++++ arch/powerpc/include/asm/iommu.h | 2 +- drivers/vfio/vfio_iommu_spapr_tce.c | 196 +++++++++++++++++++++++++++++++++++- include/uapi/linux/vfio.h | 61 ++++++++++- 4 files changed, 273 insertions(+), 5 deletions(-) commit 2157e7b82f3b81f57bd80cd67cef09ef26e5f74c Author: Alexey Kardashevskiy Date: Fri Jun 5 16:35:25 2015 +1000 vfio: powerpc/spapr: Register memory and define IOMMU v2 The existing implementation accounts the whole DMA window in the locked_vm counter. This is going to be worse with multiple containers and huge DMA windows. Also, real-time accounting would requite additional tracking of accounted pages due to the page size difference - IOMMU uses 4K pages and system uses 4K or 64K pages. Another issue is that actual pages pinning/unpinning happens on every DMA map/unmap request. This does not affect the performance much now as we spend way too much time now on switching context between guest/userspace/host but this will start to matter when we add in-kernel DMA map/unmap acceleration. This introduces a new IOMMU type for SPAPR - VFIO_SPAPR_TCE_v2_IOMMU. New IOMMU deprecates VFIO_IOMMU_ENABLE/VFIO_IOMMU_DISABLE and introduces 2 new ioctls to register/unregister DMA memory - VFIO_IOMMU_SPAPR_REGISTER_MEMORY and VFIO_IOMMU_SPAPR_UNREGISTER_MEMORY - which receive user space address and size of a memory region which needs to be pinned/unpinned and counted in locked_vm. New IOMMU splits physical pages pinning and TCE table update into 2 different operations. It requires: 1) guest pages to be registered first 2) consequent map/unmap requests to work only with pre-registered memory. For the default single window case this means that the entire guest (instead of 2GB) needs to be pinned before using VFIO. When a huge DMA window is added, no additional pinning will be required, otherwise it would be guest RAM + 2GB. The new memory registration ioctls are not supported by VFIO_SPAPR_TCE_IOMMU. Dynamic DMA window and in-kernel acceleration will require memory to be preregistered in order to work. The accounting is done per the user process. This advertises v2 SPAPR TCE IOMMU and restricts what the userspace can do with v1 or v2 IOMMUs. In order to support memory pre-registration, we need a way to track the use of every registered memory region and only allow unregistration if a region is not in use anymore. So we need a way to tell from what region the just cleared TCE was from. This adds a userspace view of the TCE table into iommu_table struct. It contains userspace address, one per TCE entry. The table is only allocated when the ownership over an IOMMU group is taken which means it is only used from outside of the powernv code (such as VFIO). As v2 IOMMU supports IODA2 and pre-IODA2 IOMMUs (which do not support DDW API), this creates a default DMA window for IODA2 for consistency. Signed-off-by: Alexey Kardashevskiy [aw: for the vfio related changes] Acked-by: Alex Williamson Reviewed-by: David Gibson Signed-off-by: Michael Ellerman Documentation/vfio.txt | 31 ++- arch/powerpc/include/asm/iommu.h | 6 + drivers/vfio/vfio_iommu_spapr_tce.c | 501 ++++++++++++++++++++++++++++++------ include/uapi/linux/vfio.h | 27 ++ 4 files changed, 482 insertions(+), 83 deletions(-) commit 15b244a88e1b2895605be4300b40b575345bcf50 Author: Alexey Kardashevskiy Date: Fri Jun 5 16:35:24 2015 +1000 powerpc/mmu: Add userspace-to-physical addresses translation cache We are adding support for DMA memory pre-registration to be used in conjunction with VFIO. The idea is that the userspace which is going to run a guest may want to pre-register a user space memory region so it all gets pinned once and never goes away. Having this done, a hypervisor will not have to pin/unpin pages on every DMA map/unmap request. This is going to help with multiple pinning of the same memory. Another use of it is in-kernel real mode (mmu off) acceleration of DMA requests where real time translation of guest physical to host physical addresses is non-trivial and may fail as linux ptes may be temporarily invalid. Also, having cached host physical addresses (compared to just pinning at the start and then walking the page table again on every H_PUT_TCE), we can be sure that the addresses which we put into TCE table are the ones we already pinned. This adds a list of memory regions to mm_context_t. Each region consists of a header and a list of physical addresses. This adds API to: 1. register/unregister memory regions; 2. do final cleanup (which puts all pre-registered pages); 3. do userspace to physical address translation; 4. manage usage counters; multiple registration of the same memory is allowed (once per container). This implements 2 counters per registered memory region: - @mapped: incremented on every DMA mapping; decremented on unmapping; initialized to 1 when a region is just registered; once it becomes zero, no more mappings allowe; - @used: incremented on every "register" ioctl; decremented on "unregister"; unregistration is allowed for DMA mapped regions unless it is the very last reference. For the very last reference this checks that the region is still mapped and returns -EBUSY so the userspace gets to know that memory is still pinned and unregistration needs to be retried; @used remains 1. Host physical addresses are stored in vmalloc'ed array. In order to access these in the real mode (mmu off), there is a real_vmalloc_addr() helper. In-kernel acceleration patchset will move it from KVM to MMU code. Signed-off-by: Alexey Kardashevskiy Reviewed-by: David Gibson Reviewed-by: David Gibson Signed-off-by: Michael Ellerman arch/powerpc/include/asm/mmu-hash64.h | 3 + arch/powerpc/include/asm/mmu_context.h | 18 ++ arch/powerpc/kernel/setup_64.c | 3 + arch/powerpc/mm/Makefile | 1 + arch/powerpc/mm/mmu_context_hash64.c | 6 + arch/powerpc/mm/mmu_context_iommu.c | 316 +++++++++++++++++++++++++++++++++ 6 files changed, 347 insertions(+) commit 46d3e1e16294c587a74093b1f5474c1b33b72381 Author: Alexey Kardashevskiy Date: Fri Jun 5 16:35:23 2015 +1000 vfio: powerpc/spapr: powerpc/powernv/ioda2: Use DMA windows API in ownership control Before the IOMMU user (VFIO) would take control over the IOMMU table belonging to a specific IOMMU group. This approach did not allow sharing tables between IOMMU groups attached to the same container. This introduces a new IOMMU ownership flavour when the user can not just control the existing IOMMU table but remove/create tables on demand. If an IOMMU implements take/release_ownership() callbacks, this lets the user have full control over the IOMMU group. When the ownership is taken, the platform code removes all the windows so the caller must create them. Before returning the ownership back to the platform code, VFIO unprograms and removes all the tables it created. This changes IODA2's onwership handler to remove the existing table rather than manipulating with the existing one. From now on, iommu_take_ownership() and iommu_release_ownership() are only called from the vfio_iommu_spapr_tce driver. Old-style ownership is still supported allowing VFIO to run on older P5IOC2 and IODA IO controllers. No change in userspace-visible behaviour is expected. Since it recreates TCE tables on each ownership change, related kernel traces will appear more often. This adds a pnv_pci_ioda2_setup_default_config() which is called when PE is being configured at boot time and when the ownership is passed from VFIO to the platform code. Signed-off-by: Alexey Kardashevskiy [aw: for the vfio related changes] Acked-by: Alex Williamson Reviewed-by: David Gibson Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/pci-ioda.c | 101 ++++++++++++++++-------------- drivers/vfio/vfio_iommu_spapr_tce.c | 88 +++++++++++++++++++++++++- 2 files changed, 141 insertions(+), 48 deletions(-) commit 0054719386d96984153ad31d714a8be4ec7eba80 Author: Alexey Kardashevskiy Date: Fri Jun 5 16:35:22 2015 +1000 powerpc/iommu/ioda2: Add get_table_size() to calculate the size of future table This adds a way for the IOMMU user to know how much a new table will use so it can be accounted in the locked_vm limit before allocation happens. This stores the allocated table size in pnv_pci_ioda2_get_table_size() so the locked_vm counter can be updated correctly when a table is being disposed. This defines an iommu_table_group_ops callback to let VFIO know how much memory will be locked if a table is created. Signed-off-by: Alexey Kardashevskiy Reviewed-by: David Gibson Signed-off-by: Michael Ellerman arch/powerpc/include/asm/iommu.h | 5 +++++ arch/powerpc/platforms/powernv/pci-ioda.c | 34 +++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) commit c035e37b58c75ca216bfd1d5de3c1080ac0022b9 Author: Alexey Kardashevskiy Date: Fri Jun 5 16:35:21 2015 +1000 powerpc/powernv/ioda2: Use new helpers to do proper cleanup on PE release The existing code programmed TVT#0 with some address and then immediately released that memory. This makes use of pnv_pci_ioda2_unset_window() and pnv_pci_ioda2_set_bypass() which do correct resource release and TVT update. Signed-off-by: Alexey Kardashevskiy Reviewed-by: David Gibson Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/pci-ioda.c | 25 ++++++------------------- 1 file changed, 6 insertions(+), 19 deletions(-) commit 4793d65d1ac056d92b594d05c6aab3c040d913dd Author: Alexey Kardashevskiy Date: Fri Jun 5 16:35:20 2015 +1000 vfio: powerpc/spapr: powerpc/powernv/ioda: Define and implement DMA windows API This extends iommu_table_group_ops by a set of callbacks to support dynamic DMA windows management. create_table() creates a TCE table with specific parameters. it receives iommu_table_group to know nodeid in order to allocate TCE table memory closer to the PHB. The exact format of allocated multi-level table might be also specific to the PHB model (not the case now though). This callback calculated the DMA window offset on a PCI bus from @num and stores it in a just created table. set_window() sets the window at specified TVT index + @num on PHB. unset_window() unsets the window from specified TVT. This adds a free() callback to iommu_table_ops to free the memory (potentially a tree of tables) allocated for the TCE table. create_table() and free() are supposed to be called once per VFIO container and set_window()/unset_window() are supposed to be called for every group in a container. This adds IOMMU capabilities to iommu_table_group such as default 32bit window parameters and others. This makes use of new values in vfio_iommu_spapr_tce. IODA1/P5IOC2 do not support DDW so they do not advertise pagemasks to the userspace. Signed-off-by: Alexey Kardashevskiy Acked-by: Alex Williamson Reviewed-by: David Gibson Signed-off-by: Michael Ellerman arch/powerpc/include/asm/iommu.h | 19 ++++++ arch/powerpc/platforms/powernv/pci-ioda.c | 96 ++++++++++++++++++++++++++--- arch/powerpc/platforms/powernv/pci-p5ioc2.c | 7 ++- drivers/vfio/vfio_iommu_spapr_tce.c | 19 +++--- 4 files changed, 124 insertions(+), 17 deletions(-) commit bbb845c4bac88d8feffa8945dd28b50849984e30 Author: Alexey Kardashevskiy Date: Fri Jun 5 16:35:19 2015 +1000 powerpc/powernv: Implement multilevel TCE tables TCE tables might get too big in case of 4K IOMMU pages and DDW enabled on huge guests (hundreds of GB of RAM) so the kernel might be unable to allocate contiguous chunk of physical memory to store the TCE table. To address this, POWER8 CPU (actually, IODA2) supports multi-level TCE tables, up to 5 levels which splits the table into a tree of smaller subtables. This adds multi-level TCE tables support to pnv_pci_ioda2_table_alloc_pages() and pnv_pci_ioda2_table_free_pages() helpers. Signed-off-by: Alexey Kardashevskiy Reviewed-by: David Gibson Signed-off-by: Michael Ellerman arch/powerpc/include/asm/iommu.h | 2 + arch/powerpc/platforms/powernv/pci-ioda.c | 105 +++++++++++++++++++++++++++--- arch/powerpc/platforms/powernv/pci.c | 13 ++++ 3 files changed, 111 insertions(+), 9 deletions(-) commit 43cb60ab7f8c91b9bf5988edc318dee99ec93b9b Author: Alexey Kardashevskiy Date: Fri Jun 5 16:35:18 2015 +1000 powerpc/powernv/ioda2: Introduce pnv_pci_ioda2_set_window This is a part of moving DMA window programming to an iommu_ops callback. pnv_pci_ioda2_set_window() takes an iommu_table_group as a first parameter (not pnv_ioda_pe) as it is going to be used as a callback for VFIO DDW code. This should cause no behavioural change. Signed-off-by: Alexey Kardashevskiy Reviewed-by: David Gibson Reviewed-by: Gavin Shan Reviewed-by: David Gibson Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/pci-ioda.c | 47 +++++++++++++++++++++++++------ 1 file changed, 38 insertions(+), 9 deletions(-) commit aca6913f555176363cda21518ff79da7469ebd64 Author: Alexey Kardashevskiy Date: Fri Jun 5 16:35:17 2015 +1000 powerpc/powernv/ioda2: Introduce helpers to allocate TCE pages This is a part of moving TCE table allocation into an iommu_ops callback to support multiple IOMMU groups per one VFIO container. This moves the code which allocates the actual TCE tables to helpers: pnv_pci_ioda2_table_alloc_pages() and pnv_pci_ioda2_table_free_pages(). These do not allocate/free the iommu_table struct. This enforces window size to be a power of two. This should cause no behavioural change. Signed-off-by: Alexey Kardashevskiy Reviewed-by: Gavin Shan Reviewed-by: David Gibson Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/pci-ioda.c | 83 +++++++++++++++++++++++-------- 1 file changed, 63 insertions(+), 20 deletions(-) commit e5aad1e678746af663e3e3acc7f3501309997f51 Author: Alexey Kardashevskiy Date: Fri Jun 5 16:35:16 2015 +1000 powerpc/powernv/ioda2: Rework iommu_table creation This moves iommu_table creation to the beginning to make following changes easier to review. This starts using table parameters from the iommu_table struct. This should cause no behavioural change. Signed-off-by: Alexey Kardashevskiy Reviewed-by: David Gibson Reviewed-by: Gavin Shan Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/pci-ioda.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit 05c6cfb9dce0d13d37e9d007ee6a4af36f1c0a58 Author: Alexey Kardashevskiy Date: Fri Jun 5 16:35:15 2015 +1000 powerpc/iommu/powernv: Release replaced TCE At the moment writing new TCE value to the IOMMU table fails with EBUSY if there is a valid entry already. However PAPR specification allows the guest to write new TCE value without clearing it first. Another problem this patch is addressing is the use of pool locks for external IOMMU users such as VFIO. The pool locks are to protect DMA page allocator rather than entries and since the host kernel does not control what pages are in use, there is no point in pool locks and exchange()+put_page(oldtce) is sufficient to avoid possible races. This adds an exchange() callback to iommu_table_ops which does the same thing as set() plus it returns replaced TCE and DMA direction so the caller can release the pages afterwards. The exchange() receives a physical address unlike set() which receives linear mapping address; and returns a physical address as the clear() does. This implements exchange() for P5IOC2/IODA/IODA2. This adds a requirement for a platform to have exchange() implemented in order to support VFIO. This replaces iommu_tce_build() and iommu_clear_tce() with a single iommu_tce_xchg(). This makes sure that TCE permission bits are not set in TCE passed to IOMMU API as those are to be calculated by platform code from DMA direction. This moves SetPageDirty() to the IOMMU code to make it work for both VFIO ioctl interface in in-kernel TCE acceleration (when it becomes available later). Signed-off-by: Alexey Kardashevskiy [aw: for the vfio related changes] Acked-by: Alex Williamson Reviewed-by: David Gibson Signed-off-by: Michael Ellerman arch/powerpc/include/asm/iommu.h | 22 ++++++++-- arch/powerpc/kernel/iommu.c | 59 +++++++++------------------ arch/powerpc/platforms/powernv/pci-ioda.c | 34 ++++++++++++++++ arch/powerpc/platforms/powernv/pci-p5ioc2.c | 3 ++ arch/powerpc/platforms/powernv/pci.c | 18 +++++++++ arch/powerpc/platforms/powernv/pci.h | 2 + drivers/vfio/vfio_iommu_spapr_tce.c | 63 +++++++++++++++++------------ 7 files changed, 132 insertions(+), 69 deletions(-) commit c5bb44edee19b2c19221a0b5a68add37ea5733c5 Author: Alexey Kardashevskiy Date: Fri Jun 5 16:35:14 2015 +1000 powerpc/powernv: Implement accessor to TCE entry This replaces direct accesses to TCE table with a helper which returns an TCE entry address. This does not make difference now but will when multi-level TCE tables get introduces. No change in behavior is expected. Signed-off-by: Alexey Kardashevskiy Reviewed-by: David Gibson Reviewed-by: Gavin Shan Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/pci.c | 34 +++++++++++++++++++++------------- 1 file changed, 21 insertions(+), 13 deletions(-) commit e57080f17da5d50f7b3b9d6c045f28632d71309d Author: Alexey Kardashevskiy Date: Fri Jun 5 16:35:13 2015 +1000 powerpc/powernv/ioda2: Add TCE invalidation for all attached groups The iommu_table struct keeps a list of IOMMU groups it is used for. At the moment there is just a single group attached but further patches will add TCE table sharing. When sharing is enabled, TCE cache in each PE needs to be invalidated so does the patch. This does not change pnv_pci_ioda1_tce_invalidate() as there is no plan to enable TCE table sharing on PHBs older than IODA2. Signed-off-by: Alexey Kardashevskiy Reviewed-by: David Gibson Reviewed-by: Gavin Shan Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/pci-ioda.c | 35 ++++++++++++++++++++----------- 1 file changed, 23 insertions(+), 12 deletions(-) commit 5780fb04263c16fdb9affd1012d5eb956e0cbcd9 Author: Alexey Kardashevskiy Date: Fri Jun 5 16:35:12 2015 +1000 powerpc/powernv/ioda2: Move TCE kill register address to PE At the moment the DMA setup code looks for the "ibm,opal-tce-kill" property which contains the TCE kill register address. Writing to this register invalidates TCE cache on IODA/IODA2 hub. This moves the register address from iommu_table to pnv_pnb as this register belongs to PHB and invalidates TCE cache for all tables of all attached PEs. This moves the property reading/remapping code to a helper which is called when DMA is being configured for PE and which does DMA setup for both IODA1 and IODA2. This adds a new pnv_pci_ioda2_tce_invalidate_entire() helper which invalidates cache for the entire table. It should be called after every call to opal_pci_map_pe_dma_window(). It was not required before because there was just a single TCE table and 64bit DMA was handled via bypass window (which has no table so no cache was used) but this is going to change with Dynamic DMA windows (DDW). Signed-off-by: Alexey Kardashevskiy Reviewed-by: David Gibson Reviewed-by: Gavin Shan Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/pci-ioda.c | 66 ++++++++++++++++++------------- arch/powerpc/platforms/powernv/pci.h | 7 +++- 2 files changed, 44 insertions(+), 29 deletions(-) commit b82c75bfbeb5b4c7c23ee09dd6f295c7f06aeb25 Author: Alexey Kardashevskiy Date: Fri Jun 5 16:35:11 2015 +1000 powerpc/iommu: Fix IOMMU ownership control functions This adds missing locks in iommu_take_ownership()/ iommu_release_ownership(). This marks all pages busy in iommu_table::it_map in order to catch errors if there is an attempt to use this table while ownership over it is taken. This only clears TCE content if there is no page marked busy in it_map. Clearing must be done outside of the table locks as iommu_clear_tce() called from iommu_clear_tces_and_put_pages() does this. In order to use bitmap_empty(), the existing code clears bit#0 which is set even in an empty table if it is bus-mapped at 0 as iommu_init_table() reserves page#0 to prevent buggy drivers from crashing when allocated page is bus-mapped at zero (which is correct). This restores the bit in the case of failure to bring the it_map to the state it was in when we called iommu_take_ownership(). Signed-off-by: Alexey Kardashevskiy Reviewed-by: David Gibson Reviewed-by: Gavin Shan Signed-off-by: Michael Ellerman arch/powerpc/kernel/iommu.c | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) commit f87a88642e660edd8912ad39fe77848c6f9927a2 Author: Alexey Kardashevskiy Date: Fri Jun 5 16:35:10 2015 +1000 vfio: powerpc/spapr/iommu/powernv/ioda2: Rework IOMMU ownership control This adds tce_iommu_take_ownership() and tce_iommu_release_ownership which call in a loop iommu_take_ownership()/iommu_release_ownership() for every table on the group. As there is just one now, no change in behaviour is expected. At the moment the iommu_table struct has a set_bypass() which enables/ disables DMA bypass on IODA2 PHB. This is exposed to POWERPC IOMMU code which calls this callback when external IOMMU users such as VFIO are about to get over a PHB. The set_bypass() callback is not really an iommu_table function but IOMMU/PE function. This introduces a iommu_table_group_ops struct and adds take_ownership()/release_ownership() callbacks to it which are called when an external user takes/releases control over the IOMMU. This replaces set_bypass() with ownership callbacks as it is not necessarily just bypass enabling, it can be something else/more so let's give it more generic name. The callbacks is implemented for IODA2 only. Other platforms (P5IOC2, IODA1) will use the old iommu_take_ownership/iommu_release_ownership API. The following patches will replace iommu_take_ownership/ iommu_release_ownership calls in IODA2 with full IOMMU table release/ create. As we here and touching bypass control, this removes pnv_pci_ioda2_setup_bypass_pe() as it does not do much more compared to pnv_pci_ioda2_set_bypass. This moves tce_bypass_base initialization to pnv_pci_ioda2_setup_dma_pe. Signed-off-by: Alexey Kardashevskiy [aw: for the vfio related changes] Acked-by: Alex Williamson Reviewed-by: Gavin Shan Reviewed-by: David Gibson Signed-off-by: Michael Ellerman arch/powerpc/include/asm/iommu.h | 11 ++++- arch/powerpc/kernel/iommu.c | 12 ------ arch/powerpc/platforms/powernv/pci-ioda.c | 43 ++++++++++++------- drivers/vfio/vfio_iommu_spapr_tce.c | 70 ++++++++++++++++++++++++++++--- 4 files changed, 103 insertions(+), 33 deletions(-) commit 0eaf4defc7c44ed5dd33a03cab12a5f88c9b4b86 Author: Alexey Kardashevskiy Date: Fri Jun 5 16:35:09 2015 +1000 powerpc/spapr: vfio: Switch from iommu_table to new iommu_table_group So far one TCE table could only be used by one IOMMU group. However IODA2 hardware allows programming the same TCE table address to multiple PE allowing sharing tables. This replaces a single pointer to a group in a iommu_table struct with a linked list of groups which provides the way of invalidating TCE cache for every PE when an actual TCE table is updated. This adds pnv_pci_link_table_and_group() and pnv_pci_unlink_table_and_group() helpers to manage the list. However without VFIO, it is still going to be a single IOMMU group per iommu_table. This changes iommu_add_device() to add a device to a first group from the group list of a table as it is only called from the platform init code or PCI bus notifier and at these moments there is only one group per table. This does not change TCE invalidation code to loop through all attached groups in order to simplify this patch and because it is not really needed in most cases. IODA2 is fixed in a later patch. This should cause no behavioural change. Signed-off-by: Alexey Kardashevskiy [aw: for the vfio related changes] Acked-by: Alex Williamson Reviewed-by: Gavin Shan Reviewed-by: David Gibson Signed-off-by: Michael Ellerman arch/powerpc/include/asm/iommu.h | 8 +- arch/powerpc/kernel/iommu.c | 14 +++- arch/powerpc/platforms/powernv/pci-ioda.c | 45 ++++++---- arch/powerpc/platforms/powernv/pci-p5ioc2.c | 3 + arch/powerpc/platforms/powernv/pci.c | 75 +++++++++++++++++ arch/powerpc/platforms/powernv/pci.h | 7 ++ arch/powerpc/platforms/pseries/iommu.c | 27 +++++- drivers/vfio/vfio_iommu_spapr_tce.c | 122 ++++++++++++++++++++-------- 8 files changed, 241 insertions(+), 60 deletions(-) commit b348aa65297659c310943221ac1d3f4b4491ea44 Author: Alexey Kardashevskiy Date: Fri Jun 5 16:35:08 2015 +1000 powerpc/spapr: vfio: Replace iommu_table with iommu_table_group Modern IBM POWERPC systems support multiple (currently two) TCE tables per IOMMU group (a.k.a. PE). This adds a iommu_table_group container for TCE tables. Right now just one table is supported. This defines iommu_table_group struct which stores pointers to iommu_group and iommu_table(s). This replaces iommu_table with iommu_table_group where iommu_table was used to identify a group: - iommu_register_group(); - iommudata of generic iommu_group; This removes @data from iommu_table as it_table_group provides same access to pnv_ioda_pe. For IODA, instead of embedding iommu_table, the new iommu_table_group keeps pointers to those. The iommu_table structs are allocated dynamically. For P5IOC2, both iommu_table_group and iommu_table are embedded into PE struct. As there is no EEH and SRIOV support for P5IOC2, iommu_free_table() should not be called on iommu_table struct pointers so we can keep it embedded in pnv_phb::p5ioc2. For pSeries, this replaces multiple calls of kzalloc_node() with a new iommu_pseries_alloc_group() helper and stores the table group struct pointer into the pci_dn struct. For release, a iommu_table_free_group() helper is added. This moves iommu_table struct allocation from SR-IOV code to the generic DMA initialization code in pnv_pci_ioda_setup_dma_pe and pnv_pci_ioda2_setup_dma_pe as this is where DMA is actually initialized. This change is here because those lines had to be changed anyway. This should cause no behavioural change. Signed-off-by: Alexey Kardashevskiy [aw: for the vfio related changes] Acked-by: Alex Williamson Reviewed-by: David Gibson Reviewed-by: Gavin Shan Signed-off-by: Michael Ellerman arch/powerpc/include/asm/iommu.h | 19 ++--- arch/powerpc/include/asm/pci-bridge.h | 2 +- arch/powerpc/kernel/iommu.c | 17 ++--- arch/powerpc/platforms/powernv/pci-ioda.c | 55 +++++++------- arch/powerpc/platforms/powernv/pci-p5ioc2.c | 18 +++-- arch/powerpc/platforms/powernv/pci.h | 3 +- arch/powerpc/platforms/pseries/iommu.c | 107 +++++++++++++++++++--------- drivers/vfio/vfio_iommu_spapr_tce.c | 23 +++--- 8 files changed, 152 insertions(+), 92 deletions(-) commit decbda25728ddfbb28b77749d2545028e892ca99 Author: Alexey Kardashevskiy Date: Fri Jun 5 16:35:07 2015 +1000 powerpc/powernv/ioda/ioda2: Rework TCE invalidation in tce_build()/tce_free() The pnv_pci_ioda_tce_invalidate() helper invalidates TCE cache. It is supposed to be called on IODA1/2 and not called on p5ioc2. It receives start and end host addresses of TCE table. IODA2 actually needs PCI addresses to invalidate the cache. Those can be calculated from host addresses but since we are going to implement multi-level TCE tables, calculating PCI address from a host address might get either tricky or ugly as TCE table remains flat on PCI bus but not in RAM. This moves pnv_pci_ioda_tce_invalidate() from generic pnv_tce_build/ pnt_tce_free and defines IODA1/2-specific callbacks which call generic ones and do PHB-model-specific TCE cache invalidation. P5IOC2 keeps using generic callbacks as before. This changes pnv_pci_ioda2_tce_invalidate() to receives TCE index and number of pages which are PCI addresses shifted by IOMMU page shift. No change in behaviour is expected. Signed-off-by: Alexey Kardashevskiy Reviewed-by: David Gibson Reviewed-by: Gavin Shan Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/pci-ioda.c | 81 ++++++++++++++++++++++--------- arch/powerpc/platforms/powernv/pci.c | 17 ++----- 2 files changed, 61 insertions(+), 37 deletions(-) commit da004c3600f52e4f05017f60970e5010978006bc Author: Alexey Kardashevskiy Date: Fri Jun 5 16:35:06 2015 +1000 powerpc/iommu: Move tce_xxx callbacks from ppc_md to iommu_table This adds a iommu_table_ops struct and puts pointer to it into the iommu_table struct. This moves tce_build/tce_free/tce_get/tce_flush callbacks from ppc_md to the new struct where they really belong to. This adds the requirement for @it_ops to be initialized before calling iommu_init_table() to make sure that we do not leave any IOMMU table with iommu_table_ops uninitialized. This is not a parameter of iommu_init_table() though as there will be cases when iommu_init_table() will not be called on TCE tables, for example - VFIO. This does s/tce_build/set/, s/tce_free/clear/ and removes "tce_" redundant prefixes. This removes tce_xxx_rm handlers from ppc_md but does not add them to iommu_table_ops as this will be done later if we decide to support TCE hypercalls in real mode. This removes _vm callbacks as only virtual mode is supported by now so this also removes @rm parameter. For pSeries, this always uses tce_buildmulti_pSeriesLP/ tce_buildmulti_pSeriesLP. This changes multi callback to fall back to tce_build_pSeriesLP/tce_free_pSeriesLP if FW_FEATURE_MULTITCE is not present. The reason for this is we still have to support "multitce=off" boot parameter in disable_multitce() and we do not want to walk through all IOMMU tables in the system and replace "multi" callbacks with single ones. For powernv, this defines _ops per PHB type which are P5IOC2/IODA1/IODA2. This makes the callbacks for them public. Later patches will extend callbacks for IODA1/2. No change in behaviour is expected. Signed-off-by: Alexey Kardashevskiy Reviewed-by: David Gibson Reviewed-by: Gavin Shan Signed-off-by: Michael Ellerman arch/powerpc/include/asm/iommu.h | 17 +++++++++++ arch/powerpc/include/asm/machdep.h | 25 --------------- arch/powerpc/kernel/iommu.c | 46 ++++++++++++++-------------- arch/powerpc/kernel/vio.c | 5 +++ arch/powerpc/platforms/cell/iommu.c | 8 +++-- arch/powerpc/platforms/pasemi/iommu.c | 7 +++-- arch/powerpc/platforms/powernv/pci-ioda.c | 14 +++++++++ arch/powerpc/platforms/powernv/pci-p5ioc2.c | 7 +++++ arch/powerpc/platforms/powernv/pci.c | 47 +++++------------------------ arch/powerpc/platforms/powernv/pci.h | 5 +++ arch/powerpc/platforms/pseries/iommu.c | 34 ++++++++++++--------- arch/powerpc/sysdev/dart_iommu.c | 12 +++++--- 12 files changed, 116 insertions(+), 111 deletions(-) commit 10b35b2b7485c342334a48cf199063eed8b8748e Author: Alexey Kardashevskiy Date: Fri Jun 5 16:35:05 2015 +1000 powerpc/powernv: Do not set "read" flag if direction==DMA_NONE Normally a bitmap from the iommu_table is used to track what TCE entry is in use. Since we are going to use iommu_table without its locks and do xchg() instead, it becomes essential not to put bits which are not implied in the direction flag as the old TCE value (more precisely - the permission bits) will be used to decide whether to put the page or not. This adds iommu_direction_to_tce_perm() (its counterpart is there already) and uses it for powernv's pnv_tce_build(). Signed-off-by: Alexey Kardashevskiy Reviewed-by: David Gibson Reviewed-by: Gavin Shan Signed-off-by: Michael Ellerman arch/powerpc/include/asm/iommu.h | 1 + arch/powerpc/kernel/iommu.c | 15 +++++++++++++++ arch/powerpc/platforms/powernv/pci.c | 7 +------ 3 files changed, 17 insertions(+), 6 deletions(-) commit 22af48596e9c92313d475306b684f844301ea4cd Author: Alexey Kardashevskiy Date: Fri Jun 5 16:35:04 2015 +1000 vfio: powerpc/spapr: Rework groups attaching This is to make extended ownership and multiple groups support patches simpler for review. This should cause no behavioural change. Signed-off-by: Alexey Kardashevskiy [aw: for the vfio related changes] Acked-by: Alex Williamson Reviewed-by: David Gibson Reviewed-by: Gavin Shan Signed-off-by: Michael Ellerman drivers/vfio/vfio_iommu_spapr_tce.c | 40 ++++++++++++++++++++++--------------- 1 file changed, 24 insertions(+), 16 deletions(-) commit 649354b75dca1ebcb55d8db41e1d6b59ef69ac77 Author: Alexey Kardashevskiy Date: Fri Jun 5 16:35:03 2015 +1000 vfio: powerpc/spapr: Moving pinning/unpinning to helpers This is a pretty mechanical patch to make next patches simpler. New tce_iommu_unuse_page() helper does put_page() now but it might skip that after the memory registering patch applied. As we are here, this removes unnecessary checks for a value returned by pfn_to_page() as it cannot possibly return NULL. This moves tce_iommu_disable() later to let tce_iommu_clear() know if the container has been enabled because if it has not been, then put_page() must not be called on TCEs from the TCE table. This situation is not yet possible but it will after KVM acceleration patchset is applied. This changes code to work with physical addresses rather than linear mapping addresses for better code readability. Following patches will add an xchg() callback for an IOMMU table which will accept/return physical addresses (unlike current tce_build()) which will eliminate redundant conversions. Signed-off-by: Alexey Kardashevskiy [aw: for the vfio related changes] Acked-by: Alex Williamson Reviewed-by: David Gibson Reviewed-by: Gavin Shan Signed-off-by: Michael Ellerman drivers/vfio/vfio_iommu_spapr_tce.c | 61 +++++++++++++++++++++++++------------ 1 file changed, 41 insertions(+), 20 deletions(-) commit 3c56e822f8fb0105949d04bda0e549e9d08713cd Author: Alexey Kardashevskiy Date: Fri Jun 5 16:35:02 2015 +1000 vfio: powerpc/spapr: Disable DMA mappings on disabled container At the moment DMA map/unmap requests are handled irrespective to the container's state. This allows the user space to pin memory which it might not be allowed to pin. This adds checks to MAP/UNMAP that the container is enabled, otherwise -EPERM is returned. Signed-off-by: Alexey Kardashevskiy [aw: for the vfio related changes] Acked-by: Alex Williamson Reviewed-by: David Gibson Reviewed-by: Gavin Shan Signed-off-by: Michael Ellerman drivers/vfio/vfio_iommu_spapr_tce.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 2d270df8f71a0fded9ef01cb9282b46fd3bc0986 Author: Alexey Kardashevskiy Date: Fri Jun 5 16:35:01 2015 +1000 vfio: powerpc/spapr: Move locked_vm accounting to helpers There moves locked pages accounting to helpers. Later they will be reused for Dynamic DMA windows (DDW). This reworks debug messages to show the current value and the limit. This stores the locked pages number in the container so when unlocking the iommu table pointer won't be needed. This does not have an effect now but it will with the multiple tables per container as then we will allow attaching/detaching groups on fly and we may end up having a container with no group attached but with the counter incremented. While we are here, update the comment explaining why RLIMIT_MEMLOCK might be required to be bigger than the guest RAM. This also prints pid of the current process in pr_warn/pr_debug. Signed-off-by: Alexey Kardashevskiy [aw: for the vfio related changes] Acked-by: Alex Williamson Reviewed-by: David Gibson Reviewed-by: Gavin Shan Reviewed-by: David Gibson Signed-off-by: Michael Ellerman drivers/vfio/vfio_iommu_spapr_tce.c | 82 ++++++++++++++++++++++++++++--------- 1 file changed, 63 insertions(+), 19 deletions(-) commit 00663d4ee05dafe97033003fd5479cf9efd4bf96 Author: Alexey Kardashevskiy Date: Fri Jun 5 16:35:00 2015 +1000 vfio: powerpc/spapr: Use it_page_size This makes use of the it_page_size from the iommu_table struct as page size can differ. This replaces missing IOMMU_PAGE_SHIFT macro in commented debug code as recently introduced IOMMU_PAGE_XXX macros do not include IOMMU_PAGE_SHIFT. Signed-off-by: Alexey Kardashevskiy Reviewed-by: David Gibson [aw: for the vfio related changes] Acked-by: Alex Williamson Reviewed-by: Gavin Shan Signed-off-by: Michael Ellerman drivers/vfio/vfio_iommu_spapr_tce.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) commit e432bc7e15d80288aff0bcccb2ff0f9ae572abdd Author: Alexey Kardashevskiy Date: Fri Jun 5 16:34:59 2015 +1000 vfio: powerpc/spapr: Check that IOMMU page is fully contained by system page This checks that the TCE table page size is not bigger that the size of a page we just pinned and going to put its physical address to the table. Otherwise the hardware gets unwanted access to physical memory between the end of the actual page and the end of the aligned up TCE page. Since compound_order() and compound_head() work correctly on non-huge pages, there is no need for additional check whether the page is huge. Signed-off-by: Alexey Kardashevskiy [aw: for the vfio related changes] Acked-by: Alex Williamson Reviewed-by: David Gibson Reviewed-by: Gavin Shan Signed-off-by: Michael Ellerman drivers/vfio/vfio_iommu_spapr_tce.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit 9b14a1ff8657d3ee844f8987482bc367a716848c Author: Alexey Kardashevskiy Date: Fri Jun 5 16:34:58 2015 +1000 vfio: powerpc/spapr: Move page pinning from arch code to VFIO IOMMU driver This moves page pinning (get_user_pages_fast()/put_page()) code out of the platform IOMMU code and puts it to VFIO IOMMU driver where it belongs to as the platform code does not deal with page pinning. This makes iommu_take_ownership()/iommu_release_ownership() deal with the IOMMU table bitmap only. This removes page unpinning from iommu_take_ownership() as the actual TCE table might contain garbage and doing put_page() on it is undefined behaviour. Besides the last part, the rest of the patch is mechanical. Signed-off-by: Alexey Kardashevskiy [aw: for the vfio related changes] Acked-by: Alex Williamson Reviewed-by: David Gibson Reviewed-by: Gavin Shan Signed-off-by: Michael Ellerman arch/powerpc/include/asm/iommu.h | 4 -- arch/powerpc/kernel/iommu.c | 55 ------------------------- drivers/vfio/vfio_iommu_spapr_tce.c | 80 +++++++++++++++++++++++++++++++------ 3 files changed, 67 insertions(+), 72 deletions(-) commit 8aca92d82d9f259e0b6b0c81e5eb9baaf471e6ad Author: Alexey Kardashevskiy Date: Fri Jun 5 16:34:57 2015 +1000 powerpc/iommu: Always release iommu_table in iommu_free_table() At the moment iommu_free_table() only releases memory if the table was initialized for the platform code use, i.e. it had it_map initialized (which purpose is to track DMA memory space use). With dynamic DMA windows, we will need to be able to release iommu_table even if it was used for VFIO in which case it_map is NULL so does the patch. Signed-off-by: Alexey Kardashevskiy Reviewed-by: David Gibson Reviewed-by: Gavin Shan Signed-off-by: Michael Ellerman arch/powerpc/kernel/iommu.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit ac9a58891a965216e9cb549a0a2012b97e3abcce Author: Alexey Kardashevskiy Date: Fri Jun 5 16:34:56 2015 +1000 powerpc/iommu: Put IOMMU group explicitly So far an iommu_table lifetime was the same as PE. Dynamic DMA windows will change this and iommu_free_table() will not always require the group to be released. This moves iommu_group_put() out of iommu_free_table(). This adds a iommu_pseries_free_table() helper which does iommu_group_put() and iommu_free_table(). Later it will be changed to receive a table_group and we will have to change less lines then. This should cause no behavioural change. Signed-off-by: Alexey Kardashevskiy Reviewed-by: Gavin Shan Reviewed-by: David Gibson Signed-off-by: Michael Ellerman arch/powerpc/kernel/iommu.c | 7 ------- arch/powerpc/platforms/powernv/pci-ioda.c | 5 +++++ arch/powerpc/platforms/pseries/iommu.c | 16 +++++++++++++++- 3 files changed, 20 insertions(+), 8 deletions(-) commit c5773822c000bafd462ad02db1d61459acef0d52 Author: Alexey Kardashevskiy Date: Fri Jun 5 16:34:55 2015 +1000 powerpc/powernv/ioda: Clean up IOMMU group registration The existing code has 3 calls to iommu_register_group() and all 3 branches actually cover all possible cases. This replaces 3 calls with one and moves the registration earlier; the latter will make more sense when we add TCE table sharing. Signed-off-by: Alexey Kardashevskiy Reviewed-by: Gavin Shan Reviewed-by: David Gibson Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/pci-ioda.c | 28 ++++++++-------------------- 1 file changed, 8 insertions(+), 20 deletions(-) commit 4617082ec049d92a797e8be0b4ba2ba6b59d90d1 Author: Alexey Kardashevskiy Date: Fri Jun 5 16:34:54 2015 +1000 powerpc/iommu/powernv: Get rid of set_iommu_table_base_and_group The set_iommu_table_base_and_group() name suggests that the function sets table base and add a device to an IOMMU group. The actual purpose for table base setting is to put some reference into a device so later iommu_add_device() can get the IOMMU group reference and the device to the group. At the moment a group cannot be explicitly passed to iommu_add_device() as we want it to work from the bus notifier, we can fix it later and remove confusing calls of set_iommu_table_base(). This replaces set_iommu_table_base_and_group() with a couple of set_iommu_table_base() + iommu_add_device() which makes reading the code easier. This adds few comments why set_iommu_table_base() and iommu_add_device() are called where they are called. For IODA1/2, this essentially removes iommu_add_device() call from the pnv_pci_ioda_dma_dev_setup() as it will always fail at this particular place: - for physical PE, the device is already attached by iommu_add_device() in pnv_pci_ioda_setup_dma_pe(); - for virtual PE, the sysfs entries are not ready to create all symlinks so actual adding is happening in tce_iommu_bus_notifier. Signed-off-by: Alexey Kardashevskiy Reviewed-by: Gavin Shan Reviewed-by: David Gibson Signed-off-by: Michael Ellerman arch/powerpc/include/asm/iommu.h | 7 ------- arch/powerpc/platforms/powernv/pci-ioda.c | 27 +++++++++++++++++++++++---- arch/powerpc/platforms/powernv/pci-p5ioc2.c | 3 ++- arch/powerpc/platforms/pseries/iommu.c | 15 ++++++++------- 4 files changed, 33 insertions(+), 19 deletions(-) commit ea30e99e8eccb684490f40d011ea534ecd937e98 Author: Alexey Kardashevskiy Date: Fri Jun 5 16:34:53 2015 +1000 powerpc/eeh/ioda2: Use device::iommu_group to check IOMMU group This relies on the fact that a PCI device always has an IOMMU table which may not be the case when we get dynamic DMA windows so let's use more reliable check for IOMMU group here. As we do not rely on the table presence here, remove the workaround from pnv_pci_ioda2_set_bypass(); also remove the @add_to_iommu_group parameter from pnv_ioda_setup_bus_dma(). Signed-off-by: Alexey Kardashevskiy Acked-by: Gavin Shan Reviewed-by: David Gibson Signed-off-by: Michael Ellerman arch/powerpc/kernel/eeh.c | 4 +--- arch/powerpc/platforms/powernv/pci-ioda.c | 27 +++++---------------------- 2 files changed, 6 insertions(+), 25 deletions(-) commit 048856f4f27b08c6537566e6dbbb15a54298baa6 Merge: 6891ff4 bec4e68 Author: David S. Miller Date: Wed Jun 10 22:14:14 2015 -0700 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue Jeff Kirsher says: ==================== Intel Wired LAN Driver Updates 2015-06-09 This series contains updates to ixgbe only. The series adds additional support for x550 support, such as WoL and auto-negotiation of flow control. Adds new PHY support (external PHY) for x550, as well as the new methods/functions needed to support the new PHY's. Fixed a bug found in code inspection, where a check was missed when clearing counters for x550. Also fixed the init code flow for copper x550 devices. ==================== Signed-off-by: David S. Miller commit 0699ee7ad7da8bde59d9cf13a50da95e1931e61d Merge: 9247a8e 4dc5444 Author: Doug Ledford Date: Thu Jun 11 01:13:30 2015 -0400 Merge branch 'for-4.2-misc' into k.o/for-4.2 commit 4dc544427991e3cef38ce3ae124b7e6557063bd3 Author: Colin Ian King Date: Fri Jun 5 15:47:27 2015 +0100 RDMA/ocrdma: fix double free on pd A reorganisation of the PD allocation and deallocation in commit 9ba1377daa ("RDMA/ocrdma: Move PD resource management to driver.") introduced a double free on pd, as detected by static analysis by smatch: drivers/infiniband/hw/ocrdma/ocrdma_verbs.c:682 ocrdma_alloc_pd() error: double free of 'pd'^ The original call to ocrdma_mbx_dealloc_pd() (which does not kfree pd) was replaced with a call to _ocrdma_dealloc_pd() (which does kfree pd). The kfree following this call causes the double free, so just remove it to fix the problem. Fixes: 9ba1377daa ("RDMA/ocrdma: Move PD resource management to driver.") Signed-off-by: Colin Ian King Acked-By: Devesh Sharma Signed-off-by: Doug Ledford drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 1 - 1 file changed, 1 deletion(-) commit fc3aa45b63101a11859e171aed9622d35cb02d16 Author: Dan Carpenter Date: Thu Jun 4 12:02:18 2015 +0300 IB/usnic: clean up some error handling code This code causes a static checker warning: drivers/infiniband/hw/usnic/usnic_uiom.c:476 usnic_uiom_alloc_pd() warn: passing zero to 'PTR_ERR' This code isn't buggy, but iommu_domain_alloc() doesn't return an error pointer so we can simplify the error handling and silence the static checker warning. The static checker warning is to catch place which do: if (!ptr) return ERR_PTR(ptr); Signed-off-by: Dan Carpenter Reviewed-by: Dave Goodell Signed-off-by: Doug Ledford drivers/infiniband/hw/usnic/usnic_uiom.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit ed0de4a8c9dd6922a55226780b3d55dd751ad878 Author: Fabian Frederick Date: Wed Jun 10 18:31:51 2015 +0200 IB/mthca: use swap() in mthca_make_profile() Use kernel.h macro definition. Thanks to Julia Lawall for Coccinelle scripting support. Signed-off-by: Fabian Frederick Signed-off-by: Doug Ledford drivers/infiniband/hw/mthca/mthca_profile.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit f8358578e2f23bd82d0454c17676bdb28a40664a Author: Pali Rohár Date: Sat Jun 6 10:23:30 2015 +0200 dell-laptop: Use dell-rbtn instead i8042 filter when possible Until now module dell-laptop registered rfkill device which used i8042 filter function for receiving HW switch rfkill events (handling special keycode). But for some dell laptops there is native ACPI driver dell-rbtn which can receive rfkill events (without i8042 hooks). So this patch will combine best from both sides. It will use native ACPI driver dell-rbtn for receiving events and dell-laptop SMBIOS interface for enabling or disabling radio devices. If ACPI driver or device will not be available fallback to i8042 filter function will be used. Patch also changes module_init() to late_initcall() to ensure that init function will be called after initializing dell-rbtn.c driver. Signed-off-by: Pali Rohár Tested-by: Gabriele Mazzotta Signed-off-by: Darren Hart drivers/platform/x86/dell-laptop.c | 94 ++++++++++++++++++++++++++++++++++---- 1 file changed, 86 insertions(+), 8 deletions(-) commit b05ffc95f9ed986534b67538e239e9c4ba254b55 Author: Pali Rohár Date: Sat Jun 6 10:23:29 2015 +0200 dell-rbtn: Export notifier for other kernel modules This patch exports notifier functions so other modules can receive HW switch events. By default when some module register notifier, dell-rbtn driver automatically remove rfkill interfaces from system (it is expected that other module will use events for other rfkill interface). This behaviour can be changed with new module parameter "auto_remove_rfkill". This patch is designed for dell-laptop module for receiving those events. Signed-off-by: Pali Rohár Tested-by: Gabriele Mazzotta [dvhart@linux.intel.com: Cleanup MODULE_PARM_DESC formatting and grammar] Signed-off-by: Darren Hart drivers/platform/x86/dell-rbtn.c | 93 +++++++++++++++++++++++++++++++++++++++- drivers/platform/x86/dell-rbtn.h | 24 +++++++++++ 2 files changed, 116 insertions(+), 1 deletion(-) commit 817a5cdb40c8115eafe631b8e1de37cf8fe9fab8 Author: Pali Rohár Date: Sat Jun 6 10:23:28 2015 +0200 dell-rbtn: Dell Airplane Mode Switch driver This is an ACPI driver for Dell laptops which receive HW slider radio switch or hotkey toggle wifi button events. It exports rfkill device dell-rbtn (which provide correct hard rfkill state) or hotkey input device. Alex Hung is author of original hotkey input device code. Signed-off-by: Pali Rohár Tested-by: Gabriele Mazzotta Cc: Alex Hung [fengguang.wu@intel.com: rbtn_ops can be static] Signed-off-by: Fengguang Wu [dvhart@linux.intel.com: Correct multi-line comment formatting] Signed-off-by: Darren Hart MAINTAINERS | 5 + drivers/platform/x86/Kconfig | 16 ++ drivers/platform/x86/Makefile | 1 + drivers/platform/x86/dell-rbtn.c | 332 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 354 insertions(+) commit 6891ff43f054bc593cb2a6160d288b5c12cf384f Merge: 9d92daf 7864026 Author: David S. Miller Date: Wed Jun 10 22:00:27 2015 -0700 Merge branch 'cxgb4-next' Hariprasad Shenai says: ==================== Add cim_ma_la, cim_pif_la and tx_rate debugfs entry This patch series adds the following. Add debugfs entry to dump CIM MA logic analyzer and CIM PIF logic analyzer logs. Also adds support to dump tx rate of the channels in the adapter This patch series has been created against net-next tree and includes patches on cxgb4 driver. We have included all the maintainers of respective drivers. Kindly review the change and let us know in case of any review comments. ==================== Signed-off-by: David S. Miller commit 7864026b2d1271510f58b0a3d7baef9bb5637d6f Author: Hariprasad Shenai Date: Tue Jun 9 18:27:52 2015 +0530 cxgb4: Add debugfs entry to dump channel rate Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4.h | 1 + drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c | 34 ++++++++++++++++ drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 46 ++++++++++++++++++++++ drivers/net/ethernet/chelsio/cxgb4/t4_regs.h | 36 +++++++++++++++++ 4 files changed, 117 insertions(+) commit 1968960912243c7261b87111eda28c1343401c68 Author: Hariprasad Shenai Date: Tue Jun 9 18:27:51 2015 +0530 cxgb4: Add debugfs entry to dump CIM PIF logic analyzer contents Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4.h | 3 ++ drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c | 44 ++++++++++++++++++++++ drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 34 +++++++++++++++++ drivers/net/ethernet/chelsio/cxgb4/t4_hw.h | 1 + drivers/net/ethernet/chelsio/cxgb4/t4_regs.h | 13 +++++++ 5 files changed, 95 insertions(+) commit 26fae93fdafe7f22ecda12e3671901569b3db687 Author: Hariprasad Shenai Date: Tue Jun 9 18:27:50 2015 +0530 cxgb4: Add a debugfs entry to dump CIM MA logic analyzer logs Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4.h | 1 + drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c | 47 ++++++++++++++++++++++ drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 21 ++++++++++ drivers/net/ethernet/chelsio/cxgb4/t4_hw.h | 1 + drivers/net/ethernet/chelsio/cxgb4/t4_regs.h | 14 +++++++ 5 files changed, 84 insertions(+) commit 9d92dafee9f7bed91ca51f464c46df9557f9bd2e Author: Jiri Slaby Date: Tue Jun 9 14:24:43 2015 +0200 bna: remove obsolete use of EXTRA_CFLAGS EXTRA_CFLAGS should be used on the command line only. Since EXTRA_CFLAGS here add only a non-existant path to compiler include paths (by -I), remove EXTRA_CFLAGS completely. Signed-off-by: Jiri Slaby Signed-off-by: David S. Miller drivers/net/ethernet/brocade/bna/Makefile | 2 -- 1 file changed, 2 deletions(-) commit 8c86f967dd24a79ef202fd6f479ca9988ea31f3b Author: Nikolay Aleksandrov Date: Tue Jun 9 03:34:13 2015 -0700 bridge: make br_fdb_delete also check if the port matches Before this patch the user-specified bridge port was ignored when deleting an fdb entry and thus one could delete an entry that belonged to any port. Example (eth0 and eth1 are br0 ports): bridge fdb add 00:11:22:33:44:55 dev eth0 master bridge fdb del 00:11:22:33:44:55 dev eth1 master (succeeds) after the patch: bridge fdb add 00:11:22:33:44:55 dev eth0 master bridge fdb del 00:11:22:33:44:55 dev eth1 master RTNETLINK answers: No such file or directory Based on a patch by Wilson Kok. Reported-by: Wilson Kok Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller net/bridge/br_fdb.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 43559893be501d41d7833a1a0229c0bbd22b9c5c Merge: c3eee1f dd895d7 Author: David S. Miller Date: Wed Jun 10 21:56:25 2015 -0700 Merge tag 'linux-can-next-for-4.2-20150609' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can-next Marc Kleine-Budde says: ==================== pull-request: can-next 2015-05-06 this is a pull request of a two patches for net-next. The first patch is by Tomas Krcka, he fixes the (currently unused) register address for acceptance filters. Oliver Hartkopp contributes a patch for the cangw, where an optional UID is added to reference routing jobs. ==================== Signed-off-by: David S. Miller commit 4af88a9c1ba2d39263eef003ea598c657014e59e Merge: 692af90 bf06848 Author: Takashi Iwai Date: Thu Jun 11 06:52:31 2015 +0200 Merge branch 'for-linus' into for-next This merges and resolves the non-trivial conflicts with the recent fix for hda-i915 binding fallback. Conflicts: sound/pci/hda/hda_intel.c Signed-off-by: Takashi Iwai commit 111b23cf895b5cbcdc1b2c6580be1bb78a577d05 Merge: 6a6bcf0 53daf93 Author: Zhang Rui Date: Thu Jun 11 12:52:14 2015 +0800 Merge branches 'release' and 'thermal-soc' of .git into next commit 9247a8eba62058dba6d018fca4e33332e4c535e8 Author: Moni Shoua Date: Wed Jun 10 12:13:32 2015 +0300 IB/core: Don't warn on no SA support in event handler Registering an event handler is done for a device. This device may have one RoCE port (no SA cap) and one InfiniBand port (has SA cap). Therefore, warning from the event handler about a specific port that doesn't have SA cap is correct but pollutes the kernel log without a need. Signed-off-by: Moni Shoua Signed-off-by: Doug Ledford drivers/infiniband/core/multicast.c | 2 +- drivers/infiniband/core/sa_query.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit db75d0547cf230a433fab4d68630849532f2c8a0 Author: Moni Shoua Date: Wed Jun 10 11:43:35 2015 +0300 IB/core: Don't advertise SA in RoCE port capabilities The Subnet Administrator (SA) is not a component of the RoCE spec. Therefore, it should not be a capability of a RoCE port. Signed-off-by: Moni Shoua Signed-off-by: Doug Ledford include/rdma/ib_verbs.h | 1 - 1 file changed, 1 deletion(-) commit 78a66b00d97c89a43b1ee753814913c55ec2e3ee Merge: e703f23 bbf5f03 Author: Greg Kroah-Hartman Date: Wed Jun 10 20:48:34 2015 -0700 Merge tag 'iio-for-v4.2c' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into staging-next Jonathan writes: Third round of new IIO drivers, cleanups and functionality for the 4.2 cycle. Given Linus announced a 4.8rc coming up, hopefully time for one more lot of IIO patches this cycle. Some of these are actually improvements / fixes for patches earlier in the cycle. New device support * st_accel driver - support devices with 8 bit channels. Cleanup * A general cleanup of the iio tools under /tools/ from Hartmut. I'm more than a little embarassed by how bad some of these were! Are well, much more refined and less bug prone now. These cover lots of stuff like unhandled error returns, memory leaks as well as general refactoring to tidy the code up. * iio_simple_dummy - fix memory leaks in the init functions, drop some pointless error returns from functions that never generate errors and make the module parameter explicitly unsigned. * More buffer handling reworks from Lars-Peter, this time targetting hardware buffers (a little used corner that looks likely to get more use in the near future). Specifically: - Always compute the masklength as inkernel buffer users may need it. - Add a means of labeling which buffer modes a given buffer implementation supports. - In the case of hardware buffers, require strict scan matching rather than matching to a superset. Currently the demux is bypassed by these drivers (this may well not change for efficiency reasons) so allowing a superset of channels to be selected would otherwise lead to more data than requested confusing userspace. Driver funcationality improvments * mmc35240 - adds a compensation to the raw values as borrowed form Memsic's own input driver. * mma8452 - event support - event debouncing - high pass filter configuration - triggers * vf610 - allow conversion mode to be adjusted Fixlets * mmc35240 - Off by one error that by coincidence had no real effect. - i2c_device_name should be lowercase. - Lack of null terminator at end of attributes array. - Avoid computing the fractional part of the magnetic field by moving the scaling into userspace where floating point is available to simplify the maths. - Use a smaller sleep before assuming the measurement is done. This is safe and improves the possible polling rate. - Fix sensitivity on z-axis - datasheet disagrees with Memsic's releasedd code and the value used in the code seems to be correct. * stk3310 - make a local variable signed to ensure error handling works. * twl4030 - fix calculation of the temperature sense current - bug unlikely to have ever been noticed as the difference is small. - Fix errors in descriptions. commit 1cbb4a1c433a1ca054ef5363f4e6597b43d208cc Author: Cyril Bur Date: Tue Jun 2 14:26:09 2015 +1000 mtd: powernv: Add powernv flash MTD abstraction driver Powerpc powernv platforms allow access to certain system flash devices through a firmwarwe interface. This change adds an mtd driver for these flash devices. Minor updates from Jeremy Kerr and Joel Stanley. Signed-off-by: Cyril Bur Signed-off-by: Joel Stanley Signed-off-by: Jeremy Kerr Reviewed-by: Neelesh Gupta Signed-off-by: Michael Ellerman drivers/mtd/devices/Kconfig | 8 + drivers/mtd/devices/Makefile | 1 + drivers/mtd/devices/powernv_flash.c | 285 ++++++++++++++++++++++++++++++++++++ 3 files changed, 294 insertions(+) commit 3f05eb4e3fc56df678f83925ced78bc97166b052 Author: Dan Carpenter Date: Wed Jun 10 22:27:51 2015 +0300 drm/virtio: remove some dead code The goto is correct, and we never reach the return statement so just delete the dead code. Signed-off-by: Dan Carpenter Signed-off-by: Dave Airlie drivers/gpu/drm/virtio/virtgpu_ttm.c | 2 -- 1 file changed, 2 deletions(-) commit 2b7edcad69ecf6c452871c80a336bc3430ca9942 Author: Dan Carpenter Date: Wed Jun 10 22:27:11 2015 +0300 drm/virtio: checking for NULL instead of IS_ERR virtio_gpu_alloc_object() returns an error pointer, it never returns NULL. Fixes: dc5698e80cf7 ('Add virtio gpu driver.') Signed-off-by: Dan Carpenter Signed-off-by: Dave Airlie drivers/gpu/drm/virtio/virtgpu_fb.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit dc9be8e2175e5e6e53456d8d52eac9b1dd7ec2a7 Merge: ae45577 6d8db6ce Author: Dave Airlie Date: Thu Jun 11 13:04:07 2015 +1000 Merge branch 'drm-next-4.2-amdgpu' of git://people.freedesktop.org/~agd5f/linux into drm-next More fixes for amdgpu for 4.2. We've integrated Jerome's comments about the interface among other things. I'll be on vacation next week so Christian will be handling any updates next week. * 'drm-next-4.2-amdgpu' of git://people.freedesktop.org/~agd5f/linux: (23 commits) drm/amdgpu: fix a amdgpu_dpm=0 bug drm/amdgpu: don't enable/disable display twice on suspend/resume drm/amdgpu: fix UVD/VCE VM emulation drm/amdgpu: enable vce powergating drm/amdgpu/iceland: don't call smu_init on resume drm/amdgpu/tonga: don't call smu_init on resume drm/amdgpu/cz: don't call smu_init on resume drm/amdgpu: update to latest gfx8 golden register settings drm/amdgpu: whitespace cleanup in gmc8 golden regs drm/admgpu: move XDMA golden registers to dce code drm/amdgpu: fix the build on big endian drm/amdgpu: cleanup UAPI comments drm/amdgpu: remove AMDGPU_CTX_OP_STATE_RUNNING drm/amdgpu: remove the VI hardware semaphore in ring sync drm/amdgpu: set the gfx config properly for all CZ variants (v2) drm/amdgpu: also print the pci revision when printing the pci ids drm/amdgpu: cleanup VA IOCTL drm/amdgpu: fix saddr handling in amdgpu_vm_bo_unmap drm/amdgpu: fix amdgpu_vm_bo_map drm/amdgpu: remove unused AMDGPU_IB_FLAG_GDS ... commit 53daf9383f34d7bf61358a37449fb4d59fbdafc2 Merge: e260818 9a5238a Author: Zhang Rui Date: Thu Jun 11 10:55:42 2015 +0800 Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal into thermal-soc commit aabbe8f1a561dd8318e693830d9ae377c9a04d2b Author: ludovic.desroches@atmel.com Date: Mon Jun 8 15:55:48 2015 +0200 ARM: at91/dt: sama5d4: fix dma conf for aes, sha and tdes nodes The xdmac channel configuration is done in one cell not two. This error prevents from probing devices correctly. Signed-off-by: Ludovic Desroches Fixes: 83906783b766 ("ARM: at91/dt: sama5d4: add aes, sha and tdes nodes") Cc: stable@vger.kernel.org # 4.1 Acked-by: Nicolas Ferre Signed-off-by: Kevin Hilman arch/arm/boot/dts/sama5d4.dtsi | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit df0c6ea853e3a865ddd2ab2d5bfd82fc27845736 Merge: fc6b68b aa90e99 Author: Greg Kroah-Hartman Date: Wed Jun 10 18:18:10 2015 -0700 Merge tag 'usb-ci-v4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/usb into usb-work Peter writes: USB Chipidea update for v4.2-rc1 Just a minor change for code style commit e703f23747e25db6ccc1f752f787925f86c27f31 Author: Andrzej Pietrasiewicz Date: Mon Jun 8 23:16:44 2015 +0200 staging: rtl8188eu: eliminate spaces before commas Eliminate "space prohibited before that ','" errors found by checkpatch, but do this only to lines which after the patch is applied do not exceed 80 characters. Out of that only those lines are changed, whose context does not exceed 80 characters in each line. In other words the changes are limited to cases where the patch generated is itself checkpatch-correct. Rebased onto next-20150605. Signed-off-by: Andrzej Pietrasiewicz Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/core/rtw_efuse.c | 2 +- drivers/staging/rtl8188eu/core/rtw_mlme.c | 8 ++++---- drivers/staging/rtl8188eu/core/rtw_mlme_ext.c | 2 +- drivers/staging/rtl8188eu/core/rtw_sta_mgt.c | 10 +++++----- drivers/staging/rtl8188eu/hal/Hal8188ERateAdaptive.c | 2 +- drivers/staging/rtl8188eu/hal/pwrseqcmd.c | 2 +- drivers/staging/rtl8188eu/include/rtw_led.h | 2 +- drivers/staging/rtl8188eu/include/rtw_mlme_ext.h | 2 +- drivers/staging/rtl8188eu/include/rtw_security.h | 2 +- drivers/staging/rtl8188eu/os_dep/rtw_android.c | 2 +- 10 files changed, 17 insertions(+), 17 deletions(-) commit 623f0e137c0fedb81bbf3d88be4ed300eee163da Author: Zoltán Lajos Kis Date: Wed Jun 10 22:00:17 2015 +0200 Staging: lustre: fix space before and after comma in dt_object.c Fixes a space prohibited before that ',' and space required after that ',' error in lustre/lustre/obdclass/dt_object.c that were found by the checkpatch.pl tool. Signed-off-by: Zoltán Lajos Kis Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/obdclass/dt_object.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4828d1fdf4858072f714a22eaf8b65b1011b6d67 Author: Zoltán Lajos Kis Date: Wed Jun 10 22:00:16 2015 +0200 Staging: lustre: fix braces are not necessary in dt_object.c Fixes a braces {} are not necessary for any arm of this statement warning in lustre/lustre/obdclass/dt_object.c that was found by the checkpatch.pl tool. Signed-off-by: Zoltán Lajos Kis Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/obdclass/dt_object.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 84ea37b6d24a2e6b53e3e4736341e008fcac4eb6 Author: Zoltán Lajos Kis Date: Wed Jun 10 22:00:15 2015 +0200 Staging: lustre: fix line over 80 characters in dt_object.c Fixes a line over 80 characters warining in lustre/lustre/obdclass/dt_object.c that was found by the checkpatch.pl tool. Signed-off-by: Zoltán Lajos Kis Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/obdclass/dt_object.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 6d37b171929a94b41214dfabc65881f60c9da095 Author: Fabian Frederick Date: Wed Jun 10 18:32:21 2015 +0200 staging: lustre: lnet: o2iblnd: use swap() in kiblnd_dev_failover() Use kernel.h macro definition. Thanks to Julia Lawall for Coccinelle scripting support. Signed-off-by: Fabian Frederick Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 60ecf96eb24e813fdf24ba2714927b80dc5a83c3 Author: James Simmons Date: Mon Jun 8 22:27:13 2015 -0400 staging:lustre: Update license and copyright for lib-socket.c Point to the right place for GNU license. Update Intel copyright. Signed-off-by: James Simmons Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lnet/lnet/lib-socket.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) commit 7309289203ed6c9ab79b202bbc37dcb12c94495f Author: James Simmons Date: Mon Jun 8 22:27:12 2015 -0400 staging:lustre: lib-socket.c code cleanup - indentation etc Handle all the style issues reported by checkpatch.pl. Remove general white spaces, spaces in function calls, etc. Signed-off-by: James Simmons Signed-off-by: Greg Kroah-Hartman .../staging/lustre/lnet/klnds/socklnd/socklnd.c | 4 +- drivers/staging/lustre/lnet/lnet/lib-socket.c | 203 ++++++++++----------- 2 files changed, 94 insertions(+), 113 deletions(-) commit 5c2414ef1cac1dcdc0a8b67ad6966935fba9d284 Author: James Simmons Date: Mon Jun 8 22:27:11 2015 -0400 staging:lustre: use available kernel wrappers in lib-socket.c Instead of handling calls to struct proto ourselves we can use equivalent kernel wrappers. No wrapper exist for unlocked ioctl handling so we create one here for our use. I expect some day that function will be integrated into sock.c. Signed-off-by: James Simmons Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lnet/lnet/lib-socket.c | 47 +++++++++++++++++---------- 1 file changed, 30 insertions(+), 17 deletions(-) commit 1ad6a73ef2bb2a13a60ea804ea7a4cbfc857bcb8 Author: James Simmons Date: Mon Jun 8 22:27:10 2015 -0400 staging:lustre: rename tcpip handling functions to lnet_* prefix With all the TCPIP handling done in the lnet layer we should rename all the functions with the prefix lnet_*. One other change done was changing the remove argument of lnet_sock_getaddr from a int to a bool. Signed-off-by: James Simmons Signed-off-by: Greg Kroah-Hartman .../staging/lustre/include/linux/libcfs/libcfs.h | 15 ----- .../staging/lustre/include/linux/lnet/lib-lnet.h | 16 ++++++ .../staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c | 2 +- .../staging/lustre/lnet/klnds/socklnd/socklnd.c | 11 ++-- .../staging/lustre/lnet/klnds/socklnd/socklnd_cb.c | 6 +- .../lustre/lnet/klnds/socklnd/socklnd_lib-linux.c | 15 ++--- .../lustre/lnet/klnds/socklnd/socklnd_proto.c | 43 +++++++------- drivers/staging/lustre/lnet/lnet/acceptor.c | 43 +++++++------- drivers/staging/lustre/lnet/lnet/config.c | 21 +++---- drivers/staging/lustre/lnet/lnet/lib-socket.c | 66 ++++++++++------------ 10 files changed, 110 insertions(+), 128 deletions(-) commit 45bd3ebe32bff9c3b45eb2d0f9a7c15157be060d Author: James Simmons Date: Mon Jun 8 22:27:09 2015 -0400 staging:lustre: remove useless libcfs_sock_abort_accept Another one of those silly one line wrappers which is not needed. Replace libcfs_sock_abort_accept wrapper with a direct call to wake_up_all on the lnet_acceptor_state sock. Signed-off-by: James Simmons Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/include/linux/libcfs/libcfs.h | 1 - drivers/staging/lustre/lnet/lnet/acceptor.c | 4 ++-- drivers/staging/lustre/lnet/lnet/lib-socket.c | 8 -------- 3 files changed, 2 insertions(+), 11 deletions(-) commit e52fc91d4006f957e186ce3e2687544a06477531 Author: James Simmons Date: Mon Jun 8 22:27:08 2015 -0400 staging:lustre: remove useless libcfs_sock_release There is no reason to have a one line exported function libcfs_sock_release. Instead we can call sock_release directly. Signed-off-by: James Simmons Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/include/linux/libcfs/libcfs.h | 1 - drivers/staging/lustre/lnet/klnds/socklnd/socklnd.c | 2 +- drivers/staging/lustre/lnet/klnds/socklnd/socklnd.h | 2 +- drivers/staging/lustre/lnet/lnet/acceptor.c | 8 ++++---- drivers/staging/lustre/lnet/lnet/lib-socket.c | 8 -------- 5 files changed, 6 insertions(+), 15 deletions(-) commit 7da308e1c4ce8a262d8744a1f8e09ddc025c1312 Author: James Simmons Date: Mon Jun 8 22:27:07 2015 -0400 staging:lustre: move tcpip abstraction Rename libcfs/linux/linux-tcpip.c to lnet/lnet/lib-socket.c Signed-off-by: James Simmons Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lnet/lnet/Makefile | 7 +- drivers/staging/lustre/lnet/lnet/lib-socket.c | 624 +++++++++++++++++++++ drivers/staging/lustre/lustre/libcfs/Makefile | 1 - .../lustre/lustre/libcfs/linux/linux-tcpip.c | 623 -------------------- 4 files changed, 628 insertions(+), 627 deletions(-) commit 13994d1e05290d5cc5dfc137c6dd135474f3d686 Author: Stanislav Kholmanskikh Date: Wed Jun 10 21:57:26 2015 +0300 staging: wilc1000: coreconfigurator: Align enums and defines Aligned enum members and defines to follow a common style per enum/(group of defines). Signed-off-by: Stanislav Kholmanskikh Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/coreconfigurator.c | 29 +++++++------- drivers/staging/wilc1000/coreconfigurator.h | 62 ++++++++++++++--------------- 2 files changed, 46 insertions(+), 45 deletions(-) commit cea3b20212ca8e897d472988d008682aaa44cbb6 Author: Stanislav Kholmanskikh Date: Wed Jun 10 21:57:25 2015 +0300 staging: wilc1000: coreconfigurator: Change return(X) to return X Changed 'return(X)' to 'return X' in coreconfigurator.c to satisfy checkpatch.pl warning: ERROR: return is not a function, parentheses are not required Signed-off-by: Stanislav Kholmanskikh Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/coreconfigurator.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 1fad279db55bb4482e8f661788102707a8a957c1 Author: Stanislav Kholmanskikh Date: Wed Jun 10 21:57:24 2015 +0300 staging: wilc1000: coreconfigurator: Remove spaces before "\n" In accordance to checkpatch.pl, a space before a quoted newline ("\n") is unnecessary, therefore substituted " \n" with "\n" in coreconfigurator.c Signed-off-by: Stanislav Kholmanskikh Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/coreconfigurator.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 842f1d71f6a00aa3d0a6fa277585cd7713122e3f Author: Johnny Kim Date: Wed Jun 10 17:06:47 2015 +0900 staging: wilc1000: remove uninitialized warnings This patch is for the initialization of the local variables. Signed-off-by: Johnny Kim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 2 +- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) commit 8a14330f6ded9b22a9d8231ac988963a402ea067 Author: Johnny Kim Date: Wed Jun 10 17:06:46 2015 +0900 staging: wilc1000: modify printk format This remove compile warnings about printk format. Signed-off-by: Johnny Kim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 8 ++++---- drivers/staging/wilc1000/linux_wlan.c | 2 +- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 8 ++++---- 3 files changed, 9 insertions(+), 9 deletions(-) commit 96baf5a61b14119eca3f5b282700e2560e5bda28 Author: Hari Prasath Gujulan Elango Date: Wed Jun 10 04:25:37 2015 +0000 staging: wilc1000: fix build warning related to time_after_eq macro This patch fixes a build warning related to the use of the time_after_eq macro.Adding a typecast to the second argument suppresses the warning.This warning was created by one my previous patch. Signed-off-by: Hari Prasath Gujulan Elango Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 48a6092fb41fab5b80064c3fac786f8ec86457a3 Author: Maxime Coquelin Date: Wed Jun 10 21:19:36 2015 +0200 serial: stm32-usart: Add STM32 USART Driver This drivers adds support to the STM32 USART controller, which is a standard serial driver. Tested-by: Chanwoo Choi Reviewed-by: Peter Hurley Reviewed-by: Vladimir Zapolskiy Reviewed-by: Andy Shevchenko Signed-off-by: Maxime Coquelin Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/Kconfig | 17 + drivers/tty/serial/Makefile | 1 + drivers/tty/serial/stm32-usart.c | 739 +++++++++++++++++++++++++++++++++++++++ include/uapi/linux/serial_core.h | 3 + 4 files changed, 760 insertions(+) commit 259413afbf21c5e774e5aa2c633257b2952ece31 Merge: 7609ea2 85fe946 Author: Kevin Hilman Date: Wed Jun 10 17:07:15 2015 -0700 Merge tag 'hi6220-soc-for-4.2' of git://github.com/hisilicon/linux-hisi into next/soc ARM64: Hisilicon ARM64 SoC Updates for V4.2 - Added Hisilicon ARM64 SoC family support in Kconfig and defconfig * tag 'hi6220-soc-for-4.2' of git://github.com/hisilicon/linux-hisi: arm64: Enable Hisilicon ARMv8 SoC family in Kconfig and defconfig commit 7c37905ed17e4061a3ddbb3b533548c2365e9e0b Merge: 36d32ed 86e8f52 Author: Kevin Hilman Date: Wed Jun 10 17:05:33 2015 -0700 Merge tag 'hi6620-dt-for-4.2' of git://github.com/hisilicon/linux-hisi into next/dt ARM64: DT: Hisilicon hi6220 soc and hikey board updates for 4.2 - Added the devicetree bindings document for hi6220 SoC - Added the devicetree bindings document for hi6220 clock - Added dts files for hi6220 SoC and hikey board * tag 'hi6620-dt-for-4.2' of git://github.com/hisilicon/linux-hisi: arm64: dts: Add dts files for Hisilicon Hi6220 SoC clk: hi6220: Document devicetree bindings for hi6220 clock arm64: hi6220: Document devicetree bindings for Hisilicon hi6220 SoC commit 36d32ed978a9161ec8a1043511dff756eea9a251 Merge: b3182ff ea25525 Author: Kevin Hilman Date: Wed Jun 10 17:03:07 2015 -0700 Merge tag 'at91-dt4' of git://git.kernel.org/pub/scm/linux/kernel/git/nferre/linux-at91 into next/dt Fourth batch of DT changes for 4.2: - rtc node for at91sam9rl/at91sam9rlek - move to stdout-path for console on kizbox and all Atmel's boards - Addition of the Acme Systems' Arietta G25 - two little fixes for Kizbox and sama5d4ek * tag 'at91-dt4' of git://git.kernel.org/pub/scm/linux/kernel/git/nferre/linux-at91: ARM: at91/dt: sama5d4ek: mci0 uses slot 0 ARM: at91/dt: kizbox: fix mismatch LED PWM device ARM: at91/dt: Add Acme Arietta G25 ARM: at91/dt: sama5d4 xplained: use stdout-path ARM: at91/dt: sama5d4ek: use stdout-path ARM: at91/dt: sama5d3 xplained: use stdout-path ARM: at91/dt: sama5d3xek: use stdout-path ARM: at91/dt: at91sam9x5ek: use stdout-path ARM: at91/dt: at91sam9rlek: use stdout-path ARM: at91/dt: at91sam9n12ek: use stdout-path ARM: at91/dt: at91sam9m10g45ek use stdout-path ARM: at91/dt: at91sam9g20ek: use stdout-path ARM: at91/dt: at91sam9263ek: use stdout-path ARM: at91/dt: at91sam9261ek: use stdout-path ARM: at91/dt: at91rm9200ek: use stdout-path ARM: at91/dt: kizbox: use stdout-path ARM: at91/dt: at91sam9rlek: add RTC ARM: at91/dt: at91sam9rl: fix rtc node commit b3182ff6d97b69275e78e29b5377d8338e620fe1 Merge: db05f7f 4e415ed Author: Kevin Hilman Date: Wed Jun 10 17:01:25 2015 -0700 Merge tag 'imx-dt-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into next/dt The i.MX device tree changes for 4.2: - Add device tree for i.MX7D SoC and imx7d-sdb board - New i.MX6 board support: Armadeus Systems APF6, Gateworks GW5510, and aristainetos2 boards - Change LVDS to use simple-panel for nitrogen6x and sabrelite boards - Add Wifi/Bluetooth devices support for cubox-i board - Remove unused regulators and correct OTG roles setting for imx6sl-warp board - Add I2C support for imx23-olinuxino board - Move imx6qdl HDMI device to a better place - Add power-domain for imx6qdl CODA device * tag 'imx-dt-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: (24 commits) ARM: dts: imx6dl: add imx6dl gpt specific compatible string ARM: dts: imx6: add DT for aristainetos2 board ARM: dts: cubox-i/hummingboard: Fix the license text ARM: dts: sabrelite: use simple-panel instead of display-timings for LVDS0 ARM: dts: nitrogen6x: use simple-panel instead of display-timings for LVDS0 ARM: dts: add imx7d-sdb support ARM: dts: add imx7d soc dtsi file ARM: dts: Armadeus Systems APF6 family support (i.MX6) ARM: dts: vf610: Nomenclature fixup for PTC12 pin used in RMII mode. ARM: dts: cubox-i: add support for Broadcom Wifi/Bluetooth devices Document: dt: binding: imx: update document for imx7d support ARM: dts: imx6qdl: Add power-domain phandle to CODA device node ARM: dts: Gateworks GW5510 support (i.MX6) ARM: dts: imx6sl-warp: Fix OTG roles ARM: dts: imx6sl-warp: Remove USB regulators ARM: dts: imx6sl-warp: Remove unused regulator ARM: dts: add pinfunc include file to support imx7d ARM: mxs: fix in tree users of ssd1306 ARM: dts: imx6qdl-hummingboard: Add PCIe support ARM: dts: imx23-olinuxino: Add i2c support ... commit 7609ea2a3fb554da4948d0c7c21ea1b79673f4fb Author: Shawn Guo Date: Wed Jun 3 19:34:10 2015 +0800 MAINTAINERS: update Shawn's email to use kernel.org one Update my mailbox to use kernel.org one for handling kernel community maintenance traffic. Signed-off-by: Shawn Guo Signed-off-by: Kevin Hilman MAINTAINERS | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 3e0d0b81ea0f7ed01a706d7c0c48b157c66f870e Merge: 2f69b1a 0be5da9 Author: Kevin Hilman Date: Wed Jun 10 16:58:05 2015 -0700 Merge tag 'imx-soc-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into next/soc The i.MX SoC updates for 4.2: - Add new SoC i.MX7D support, which integrates two Cortex-A7 and one Cortex-M4 cores. - Support suspend from IRAM on i.MX53, so that DDR pins can be set to high impedance for more power saving during suspend. - Move i.MX clock drivers from arch/arm/mach-imx to drivers/clk/imx. - Move i.MX GPT timer driver from arch/arm/mach-imx into drivers/clocksource. - A couple of clock driver update for VF610 and i.MX6Q. - A few random code correction and improvement. * tag 'imx-soc-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: (44 commits) ARM: imx: imx7d requires anatop clocksource: timer-imx-gpt: remove include of ARM: imx: move timer driver into drivers/clocksource ARM: imx: remove platform headers from timer driver ARM: imx: provide gpt device specific irq functions ARM: imx: get rid of variable timer_base ARM: imx: define gpt register offset per device type ARM: imx: move clock event variables into imx_timer ARM: imx: set up .set_next_event hook via imx_gpt_data ARM: imx: setup tctl register in device specific function ARM: imx: initialize gpt device type for DT boot ARM: imx: define an enum for gpt timer device type ARM: imx: move timer resources into a structure ARM: imx: use relaxed IO accessor in timer driver ARM: imx: make imx51/3 suspend optional ARM: clk-imx6q: refine sata's parent ARM: imx: clk-v610: Add clock for I2C2 and I2C3 ARM: mach-imx: iomux-imx31: Use DECLARE_BITMAP ARM: imx: add imx7d clk tree support ARM: clk: imx: update pllv3 to support imx7 ... Conflicts: arch/arm/mach-imx/Kconfig commit 835a6a2f8603237a3e6cded5a6765090ecb06ea5 Author: Alexey Dobriyan Date: Wed Jun 10 20:28:33 2015 +0300 Bluetooth: Stop sabotaging list poisoning list_del() poisons pointers with special values, no need to overwrite them. Signed-off-by: Alexey Dobriyan Signed-off-by: Marcel Holtmann net/bluetooth/l2cap_core.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit db05f7fc5fa50a7aeb3e5fd104519518bfbd1ef2 Merge: 62d4585 0b23934 Author: Kevin Hilman Date: Wed Jun 10 16:11:41 2015 -0700 Merge tag 'keystone-dts-for-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/ssantosh/linux-keystone into next/dt Keystone DTS update for 4.2 - Includes NETCP related EVM updates * tag 'keystone-dts-for-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/ssantosh/linux-keystone: ARM: dts: k2l: fix the netcp range size ARM: dts: k2e: fix the netcp range size ARM: dts: k2hk: fix the netcp range size ARM: dts: k2l-evm: Add device bindings for netcp driver ARM: dts: k2e-evm: Add device bindings for netcp driver ARM: dts: k2hk-evm: Add device bindings for netcp driver commit eb7547df5b1a751f2631067f54cb033e440471c0 Author: Murali Karicheri Date: Wed Jun 10 15:42:33 2015 -0700 ARM: keystone: defconfig: enable netcp driver by default Enable netcp driver in defconfig for keystone SoCs. Signed-off-by: Murali Karicheri Signed-off-by: Santosh Shilimkar Signed-off-by: Kevin Hilman arch/arm/configs/keystone_defconfig | 6 ++++++ 1 file changed, 6 insertions(+) commit 62d4585fb1703cb4fc4f68e4beb8fe09e92cfecf Merge: 338a6aa 26343bd Author: Kevin Hilman Date: Wed Jun 10 16:07:41 2015 -0700 Merge tag 'arm-soc/for-4.2/dts-part3' of https://github.com/Broadcom/stblinux into next/dt This pull request contains Broadcom BCM5301x related changes: - Hauke adds the interrupt mapping for the BCM5301x PCIe controller - Haule adds support for NAND flash using the standard Broadcom NAND controller iProc specific binding on BCM4708/5301x - Rafal adds support for the Asus RT-AC87U router * tag 'arm-soc/for-4.2/dts-part3' of https://github.com/Broadcom/stblinux: ARM: BCM5301X: Add DT for Asus RT-AC87U ARM: BCM5301X: add IRQ numbers for PCIe controller ARM: BCM5301X: add NAND flash chip description commit 2f69b1a4e8a0569861c5ea55640aba4c95857926 Merge: 2526318 44fd8c7 Author: Kevin Hilman Date: Wed Jun 10 16:04:48 2015 -0700 Merge branch 'socfpga/soc' into next/soc * socfpga/soc: ARM: socfpga: support suspend to ram ARM: socfpga: add CPU_METHOD_OF_DECLARE for Arria 10 ARM: socfpga: use CPU_METHOD_OF_DECLARE for socfpga_cyclone5 commit 37829029837b2f653fd407cbd6796dcf124c1ed8 Author: Viresh Kumar Date: Mon Jun 8 18:25:32 2015 +0530 cpufreq: Remove cpufreq_update_policy() cpufreq_update_policy() was kept as a separate routine earlier as it was handling migration of sysfs directories, which isn't the case anymore. It is only updating policy->cpu now and is called by a single caller. The WARN_ON() isn't really required anymore, as we are just updating the cpu now, not moving the sysfs directories. Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq.c | 23 ++++------------------- 1 file changed, 4 insertions(+), 19 deletions(-) commit 9591becbf226e3aa0f6c73494736e2c5ab14cc8d Author: Viresh Kumar Date: Wed Jun 10 02:20:23 2015 +0200 cpufreq: Restart governor as soon as possible __cpufreq_remove_dev_finish() is doing two things today: - Restarts the governor if some CPUs from concerned policy are still online. - Frees the policy if all CPUs are offline. The first task of restarting the governor can be moved to __cpufreq_remove_dev_prepare() to restart the governor early. There is no race between _prepare() and _finish() as they would be handling completely different cases. _finish() will only be required if we are going to free the policy and that has nothing to do with restarting the governor. Original-by: Saravana Kannan Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq.c | 59 +++++++++++++++++++++-------------------------- 1 file changed, 26 insertions(+), 33 deletions(-) commit 3654c5cc810e9b1f7eadf19780d1bc5f37e1ae6e Author: Viresh Kumar Date: Mon Jun 8 18:25:30 2015 +0530 cpufreq: Call cpufreq_policy_put_kobj() from cpufreq_policy_free() cpufreq_policy_put_kobj() is actually part of freeing the policy and can be called from cpufreq_policy_free() directly instead of a separate call. Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) commit 44fd8c7d4005f660f48679439f0a54225ba234a4 Author: Alan Tull Date: Fri Jun 5 08:24:52 2015 -0500 ARM: socfpga: support suspend to ram Add code that requests that the sdr controller go into self-refresh mode. This code is run from ocram. Suspend-to-RAM and EDAC support are mutually exclusive on SOCFPGA. If the EDAC is enabled, it will prevent the platform from going into suspend. Example of how to request to suspend to ram: $ echo enabled > \ /sys/devices/soc/ffc02000.serial0/tty/ttyS0/power/wakeup $ echo -n mem > /sys/power/state Signed-off-by: Alan Tull Signed-off-by: Dinh Nguyen Signed-off-by: Kevin Hilman arch/arm/mach-socfpga/Kconfig | 10 ++- arch/arm/mach-socfpga/Makefile | 1 + arch/arm/mach-socfpga/core.h | 6 +- arch/arm/mach-socfpga/pm.c | 149 +++++++++++++++++++++++++++++++++++ arch/arm/mach-socfpga/self-refresh.S | 136 ++++++++++++++++++++++++++++++++ arch/arm/mach-socfpga/socfpga.c | 6 +- 6 files changed, 305 insertions(+), 3 deletions(-) commit 2fc3384dc75bf7333384c7a16d12c796f61c3f56 Author: Viresh Kumar Date: Mon Jun 8 18:25:29 2015 +0530 cpufreq: Initialize policy->kobj while allocating policy policy->kobj is required to be initialized once in the lifetime of a policy. Currently we are initializing it from __cpufreq_add_dev() and that doesn't look to be the best place for doing so as we have to do this on special cases (like: !recover_policy). We can initialize it from a more obvious place cpufreq_policy_alloc() and that will make code look cleaner, specially the error handling part. The error handling part of __cpufreq_add_dev() was doing almost the same thing while recover_policy is true or false. Fix that as well by always calling cpufreq_policy_put_kobj() with an additional parameter to skip notification part of it. Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq.c | 46 +++++++++++++++++++++------------------------- 1 file changed, 21 insertions(+), 25 deletions(-) commit 87549141d516aee71d511138e27117c41e8aef68 Author: Viresh Kumar Date: Wed Jun 10 02:13:21 2015 +0200 cpufreq: Stop migrating sysfs files on hotplug When we hot-unplug a cpu, we remove its sysfs cpufreq directory and if the outgoing cpu was the owner of policy->kobj earlier then we migrate the sysfs directory to under another online cpu. There are few disadvantages this brings: - Code Complexity - Slower hotplug/suspend/resume - sysfs file permissions are reset after all policy->cpus are offlined - CPUFreq stats history lost after all policy->cpus are offlined - Special management of sysfs stuff during suspend/resume To overcome these, this patch modifies the way sysfs directories are managed: - Select sysfs kobjects owner while initializing policy and don't change it during hotplugs. Track it with kobj_cpu created earlier. - Create symlinks for all related CPUs (can be offline) instead of affected CPUs on policy initialization and remove them only when the policy is freed. - Free policy structure only on the removal of cpufreq-driver and not during hotplug/suspend/resume, detected by checking 'struct subsys_interface *' (Valid only when called from subsys_interface_unregister() while unregistering driver). Apart from this, special care is taken to handle physical hoplug of CPUs as we wouldn't remove sysfs links or remove policies on logical hotplugs. Physical hotplug happens in the following sequence. Hot removal: - CPU is offlined first, ~ 'echo 0 > /sys/devices/system/cpu/cpuX/online' - Then its device is removed along with all sysfs files, cpufreq core notified with cpufreq_remove_dev() callback from subsys-interface.. Hot addition: - First the device along with its sysfs files is added, cpufreq core notified with cpufreq_add_dev() callback from subsys-interface.. - CPU is onlined, ~ 'echo 1 > /sys/devices/system/cpu/cpuX/online' We call the same routines with both hotplug and subsys callbacks, and we sense physical hotplug with cpu_offline() check in subsys callback. We can handle most of the stuff with regular hotplug callback paths and add/remove cpufreq sysfs links or free policy from subsys callbacks. Original-by: Saravana Kannan Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq.c | 220 ++++++++++++++++++++++++++++------------------ 1 file changed, 135 insertions(+), 85 deletions(-) commit 4ed0d83d057c16efeca4210ba8fb2b5029333fb3 Author: Vaishali Thakkar Date: Wed Jun 10 20:15:29 2015 +0530 NFS: Convert use of __constant_htonl to htonl In little endian cases, the macro htonl unfolds to __swab32 which provides special case for constants. In big endian cases, __constant_htonl and htonl expand directly to the same expression. So, replace __constant_htonl with htonl with the goal of getting rid of the definition of __constant_htonl completely. The semantic patch that performs this transformation is as follows: @@expression x;@@ - __constant_htonl(x) + htonl(x) Signed-off-by: Vaishali Thakkar Signed-off-by: Trond Myklebust fs/nfs/callback_xdr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ec3bd0e68a679a7af2c46af1ddc9af8b534a8b0e Author: Hauke Mehrtens Date: Wed Jun 10 20:23:24 2015 +0100 ARM: 8391/1: l2c: add options to overwrite prefetching behavior These options make it possible to overwrites the data and instruction prefetching behavior of the arm pl310 cache controller. Signed-off-by: Hauke Mehrtens Acked-by: Florian Fainelli Signed-off-by: Russell King Documentation/devicetree/bindings/arm/l2cc.txt | 5 +++++ arch/arm/mm/cache-l2x0.c | 20 ++++++++++++++++++++ 2 files changed, 25 insertions(+) commit 6fb18ac9366b74fadb2c1d0da88f143bfe87d001 Author: Daniel Thompson Date: Wed Jun 10 12:25:15 2015 +0100 ARM: 8390/1: irqflags: Get arch_irqs_disabled from asm-generic Commit cb1293e2f594 ("ARM: 8375/1: disable some options on ARMv7-M") causes the build to on ARMv7-M machines: CC arch/arm/kernel/asm-offsets.s In file included from include/linux/sem.h:5:0, from include/linux/sched.h:35, from arch/arm/kernel/asm-offsets.c:14: include/linux/rcupdate.h: In function 'rcu_read_lock_sched_held': include/linux/rcupdate.h:539:2: error: implicit declaration of function 'arch_irqs_disabled' [-Werror=implicit-function-declaration] return preempt_count() != 0 || irqs_disabled(); asm-generic/irqflags.h provides an implementation of arch_irqs_disabled(). Lets grab an implementation from there! Signed-off-by: Daniel Thompson Acked-by: Maxime Coquelin Signed-off-by: Russell King arch/arm/include/asm/irqflags.h | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 338a6aaabc02fa63b70441dd0e1b70aea64673c6 Author: Maxime Coquelin Date: Wed Jun 3 16:54:02 2015 +0200 ARM: dts: Introduce STM32F429 MCU The STMicrolectornics's STM32F429 MCU has the following main features: - Cortex-M4 core running up to @180MHz - 2MB internal flash, 256KBytes internal RAM - FMC controller to connect SDRAM, NOR and NAND memories - SD/MMC/SDIO support - Ethernet controller - USB OTFG FS & HS controllers - I2C, SPI, CAN busses support - Several 16 & 32 bits general purpose timers - Serial Audio interface - LCD controller Tested-by: Chanwoo Choi Signed-off-by: Maxime Coquelin Signed-off-by: Kevin Hilman arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/stm32f429-disco.dts | 71 +++++++++++ arch/arm/boot/dts/stm32f429.dtsi | 214 ++++++++++++++++++++++++++++++++++ 3 files changed, 286 insertions(+) commit 30ac4367cda817d6a633546ebf928f73155368c5 Merge: 112cadf 16b2a7d Author: Kevin Hilman Date: Wed Jun 10 15:47:21 2015 -0700 Merge tag 'sunxi-dt-for-4.2-2' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux into next/dt Allwinner DT changes for 4.2, take 2 A bunch of new DT changes for the 4.2 merge window, among which: - Enable the SRAM controller on the A10/A10s/A13/A20 - A33 support - New boards: A23 EVB, SinA33, GA10H-A33, Mele A1000G * tag 'sunxi-dt-for-4.2-2' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux: ARM: dts: sun6i: Add a dts file for the Mele A1000G quad top set box ARM: dts: sun8i: Add dts file for the GA10H-A33 tablet ARM: dts: sun8i-a33: Add dts for Sinlinx SinA33 development board. ARM: dts: sun8i-a33: Add pinmux setting for uart0 on PB pins ARM: dts: sun8i: Add pinmux setting for 8bit mmc2 ARM: dts: sun8i: Add usb_clk node for a23/a33 ARM: dts: sun8i: Add ET-Q8 A33 support ARM: dts: sun8i: Add sun8i-a33 dtsi ARM: dts: sun8i: Add sun8i-a23-a33 dtsi ARM: dts: sun7i: Add A20 SRAM and SRAM controller ARM: dts: sun5i: Add A10s and A13 SRAM and SRAM controller ARM: dts: sun4i: Add A10 SRAM and SRAM controller ARM: dts: sunxi: Revert SRAM controller drivers patches ARM: dts: sun9i: Add device node for watchdog ARM: dts: sun7i: Add uart4 support for BananaPro, disable uart2 ARM: dts: sun7i: Add uart4_pins_b definition ARM: sun8i: Introduce A23 Evaluation Board Support commit 112cadfd4365b1949c7f13a2616f6b99990f5fd5 Author: Dinh Nguyen Date: Tue Jun 2 21:31:00 2015 -0500 ARM: socfpga: dts: enable ethernet for Arria10 devkit Update the arria10 gmac nodes with all the necessary properties for ethernet to function on the Arria10 devkit. Signed-off-by: Dinh Nguyen Signed-off-by: Kevin Hilman arch/arm/boot/dts/socfpga_arria10.dtsi | 11 +++++++++++ arch/arm/boot/dts/socfpga_arria10_socdk.dtsi | 28 ++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) commit 0b239342305069a09afda35e52e1f49d171a87b2 Author: Murali Karicheri Date: Mon May 11 12:20:11 2015 -0700 ARM: dts: k2l: fix the netcp range size k2l netcp range size is 16M (0x1000000) and not 0xffffff. This patch fixes this. Similarly fix the size of switch module register space to 0x20000. Signed-off-by: Murali Karicheri Signed-off-by: Santosh Shilimkar arch/arm/boot/dts/k2l-netcp.dtsi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 9b3d69f800f73b97f35972e38ee987dc0b4b7e7d Author: Murali Karicheri Date: Mon May 11 12:20:07 2015 -0700 ARM: dts: k2e: fix the netcp range size k2e netcp range size is 16M (0x1000000) and not 0xffffff. This patch fixes this. Similarly fix the size of switch module register space to 0x20000. Signed-off-by: Murali Karicheri Signed-off-by: Santosh Shilimkar arch/arm/boot/dts/k2e-netcp.dtsi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 166078175acf1f41b6f7bdf6fa3d6acc14f6229f Author: Murali Karicheri Date: Mon May 11 12:20:03 2015 -0700 ARM: dts: k2hk: fix the netcp range size k2hk netcp range size is 1M (0x100000) and not 0xfffff. This patch fixes this. Signed-off-by: Murali Karicheri Signed-off-by: Santosh Shilimkar arch/arm/boot/dts/k2hk-netcp.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9df146949dd538428b830b03ff654cda21dc5ece Author: Murali Karicheri Date: Thu Apr 23 14:02:13 2015 -0700 ARM: dts: k2l-evm: Add device bindings for netcp driver This patch enables networking on k2l evm by providing device bindings for netcp, knav, and qmss. See device binding documentation at Documentation/devicetree/bindings/net/keystone-netcp.txt Signed-off-by: WingMan Kwok Signed-off-by: Murali Karicheri Signed-off-by: Santosh Shilimkar arch/arm/boot/dts/k2l-evm.dts | 1 + arch/arm/boot/dts/k2l-netcp.dtsi | 189 +++++++++++++++++++++++++++++++++++++++ arch/arm/boot/dts/k2l.dtsi | 1 + 3 files changed, 191 insertions(+) commit cb4c81706fd373e498f6f41a3f7d67a490035d40 Author: Murali Karicheri Date: Thu Apr 23 14:02:13 2015 -0700 ARM: dts: k2e-evm: Add device bindings for netcp driver This patch enables networking on k2e evm by adding device bindings for netcp, knav and qmss. See device binding documentation below for details. Documentation/devicetree/bindings/net/keystone-netcp.txt Signed-off-by: WingMan Kwok Signed-off-by: Murali Karicheri Signed-off-by: Santosh Shilimkar arch/arm/boot/dts/k2e-evm.dts | 1 + arch/arm/boot/dts/k2e-netcp.dtsi | 206 +++++++++++++++++++++++++++++++++++++++ arch/arm/boot/dts/k2e.dtsi | 1 + 3 files changed, 208 insertions(+) commit 8ea1cdb9a3c87cfc920a99f162d69edd0b0e1c85 Author: Murali Karicheri Date: Thu Apr 23 14:02:13 2015 -0700 ARM: dts: k2hk-evm: Add device bindings for netcp driver This patch enables networking on k2hk evm by adding device bindings for netcp, knav and qmss. See device binding documentation below for details. Documentation/devicetree/bindings/net/keystone-netcp.txt Signed-off-by: WingMan Kwok Signed-off-by: Murali Karicheri Signed-off-by: Santosh Shilimkar arch/arm/boot/dts/k2hk-evm.dts | 1 + arch/arm/boot/dts/k2hk-netcp.dtsi | 208 ++++++++++++++++++++++++++++++++++++++ arch/arm/boot/dts/k2hk.dtsi | 1 + 3 files changed, 210 insertions(+) commit da8d2b5d92b199e9897f5fa8c4a78bf66e76f827 Merge: e897ee70 e0e6f74 Author: Kevin Hilman Date: Wed Jun 10 15:40:59 2015 -0700 Merge tag 'socfpga_dts_for_v4.2_part_3' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux into next/dt SoCFPGA updates for v4.2 part 3 - Add SCU node for Arria 10 - Add enable-method for cpu nodes - Add SDRAM controller binding doc - Enable gpio-leds on SoCFPGA Socrates board * tag 'socfpga_dts_for_v4.2_part_3' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux: ARM: socfpga: socrates: add gpio-leds ARM: socfpga: socrates: enable gpio0/1 ARM: socfpga: dts: add sdram controller dt binding doc ARM: socfpga: dts: add enable-method property for cpu nodes ARM: socfpga: dts: add the a9-scu node for arria10 commit 4a06825839889cc1756d0dd8a52d6b1071ee0263 Author: Chuck Lever Date: Mon May 11 14:02:25 2015 -0400 SUNRPC: Transport fault injection It has been exceptionally useful to exercise the logic that handles local immediate errors and RDMA connection loss. To enable developers to test this regularly and repeatably, add logic to simulate connection loss every so often. Fault injection is disabled by default. It is enabled with $ sudo echo xxx > /sys/kernel/debug/sunrpc/inject_fault/disconnect where "xxx" is a large positive number of transport method calls before a disconnect. A value of several thousand is usually a good number that allows reasonable forward progress while still causing a lot of connection drops. These hooks are disabled when SUNRPC_DEBUG is turned off. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust include/linux/sunrpc/xprt.h | 19 ++++++++++ net/sunrpc/clnt.c | 1 + net/sunrpc/debugfs.c | 77 +++++++++++++++++++++++++++++++++++++++++ net/sunrpc/xprt.c | 2 ++ net/sunrpc/xprtrdma/transport.c | 11 ++++++ net/sunrpc/xprtsock.c | 10 ++++++ 6 files changed, 120 insertions(+) commit 45be0cdb5323d6f2b4005a4d9263a72eac2040cd Author: Dinh Nguyen Date: Tue Jun 2 21:14:02 2015 -0500 ARM: socfpga: add CPU_METHOD_OF_DECLARE for Arria 10 Add boot_secondary implementation for the Arria10 platform. Bringing up the secondary core on the Arria 10 platform is pretty similar to the Cyclone/Arria 5 platform, with the exception of the following differences: - Register offset to bringup CPU1 out of reset is different. - The cpu1-start-addr for Arria10 contains an additional nibble. Signed-off-by: Dinh Nguyen Signed-off-by: Kevin Hilman arch/arm/mach-socfpga/core.h | 2 ++ arch/arm/mach-socfpga/platsmp.c | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) commit 5f763ef80d4dff7f2aa519a31472b03499e2c2e1 Author: Dinh Nguyen Date: Tue Jun 2 21:14:01 2015 -0500 ARM: socfpga: use CPU_METHOD_OF_DECLARE for socfpga_cyclone5 Convert cyclone5/arria5 to use CPU_METHOD_OF_DECLARE for smp operations. Signed-off-by: Dinh Nguyen Signed-off-by: Kevin Hilman arch/arm/mach-socfpga/core.h | 1 - arch/arm/mach-socfpga/platsmp.c | 4 +++- arch/arm/mach-socfpga/socfpga.c | 1 - 3 files changed, 3 insertions(+), 3 deletions(-) commit 11598b8ff2b97cf034d0c025cf125c92b574bafc Author: Anna Schumaker Date: Wed Jun 10 16:54:28 2015 -0400 NFS: Remove unused nfs_rw_ops->rw_release() function This was only ever set to nfs_writeback_release_common(), a function which is completely empty. Let's just drop this function pointer and simplify the code a bit. Signed-off-by: Anna Schumaker Signed-off-by: Trond Myklebust fs/nfs/pagelist.c | 2 -- fs/nfs/write.c | 6 ------ include/linux/nfs_page.h | 1 - 3 files changed, 9 deletions(-) commit c86c90c656fa2c94c2491dd86cf09501193f0dad Author: Dominique Martinet Date: Thu Jun 4 17:04:17 2015 +0200 NFSv4: handle nfs4_get_referral failure nfs4_proc_lookup_common is supposed to return a posix error, we have to handle any error returned that isn't errno Reported-by: Olga Kornievskaia Signed-off-by: Frank S. Filz Signed-off-by: Dominique Martinet Signed-off-by: Trond Myklebust fs/nfs/nfs4proc.c | 2 ++ 1 file changed, 2 insertions(+) commit d67fa4d85a2143b46052b2e9ccc6749a4c97b2de Author: Jeff Layton Date: Wed Jun 3 16:14:29 2015 -0400 sunrpc: turn swapper_enable/disable functions into rpc_xprt_ops RDMA xprts don't have a sock_xprt, but an rdma_xprt, so the xs_swapper_enable/disable functions will likely oops when fed an RDMA xprt. Turn these functions into rpc_xprt_ops so that that doesn't occur. For now the RDMA versions are no-ops that just return -EINVAL on an attempt to swapon. Cc: Chuck Lever Signed-off-by: Jeff Layton Reviewed-by: Chuck Lever Signed-off-by: Trond Myklebust include/linux/sunrpc/xprt.h | 16 ++++++++++++++-- net/sunrpc/clnt.c | 4 ++-- net/sunrpc/xprtrdma/transport.c | 15 ++++++++++++++- net/sunrpc/xprtsock.c | 31 +++++++++++++++++++++++++------ 4 files changed, 55 insertions(+), 11 deletions(-) commit d6e971d8ecafee18ff9cc1ac646eb0817ab8b143 Author: Jeff Layton Date: Wed Jun 3 16:14:28 2015 -0400 sunrpc: lock xprt before trying to set memalloc on the sockets It's possible that we could race with a call to xs_reset_transport, in which case the xprt->inet pointer could be zeroed out while we're accessing it. Lock the xprt before we try to set memalloc on it. Cc: Mel Gorman Signed-off-by: Jeff Layton Reviewed-by: Chuck Lever Signed-off-by: Trond Myklebust net/sunrpc/xprtsock.c | 35 +++++++++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 8 deletions(-) commit 264d1df3b34804a7d440d77771020f616a573528 Author: Jeff Layton Date: Wed Jun 3 16:14:27 2015 -0400 sunrpc: if we're closing down a socket, clear memalloc on it first We currently increment the memalloc_socks counter if we have a xprt that is associated with a swapfile. That socket can be replaced however during a reconnect event, and the memalloc_socks counter is never decremented if that occurs. When tearing down a xprt socket, check to see if the xprt is set up for swapping and sk_clear_memalloc before releasing the socket if so. Acked-by: Mel Gorman Signed-off-by: Jeff Layton Reviewed-by: Chuck Lever Signed-off-by: Trond Myklebust net/sunrpc/xprtsock.c | 3 +++ 1 file changed, 3 insertions(+) commit 8e2281330f9930bccf77cf04027ec60b6cc0fb34 Author: Jeff Layton Date: Wed Jun 3 16:14:26 2015 -0400 sunrpc: make xprt->swapper an atomic_t Split xs_swapper into enable/disable functions and eliminate the "enable" flag. Currently, it's racy if you have multiple swapon/swapoff operations running in parallel over the same xprt. Also fix it so that we only set it to a memalloc socket on a 0->1 transition and only clear it on a 1->0 transition. Cc: Mel Gorman Signed-off-by: Jeff Layton Reviewed-by: Chuck Lever Signed-off-by: Trond Myklebust include/linux/sunrpc/xprt.h | 5 +++-- net/sunrpc/clnt.c | 4 ++-- net/sunrpc/xprtsock.c | 38 +++++++++++++++++++++++++------------- 3 files changed, 30 insertions(+), 17 deletions(-) commit 3c87ef6efb40f0e339d705c194b2224f854ec38e Author: Jeff Layton Date: Wed Jun 3 16:14:25 2015 -0400 sunrpc: keep a count of swapfiles associated with the rpc_clnt Jerome reported seeing a warning pop when working with a swapfile on NFS. The nfs_swap_activate can end up calling sk_set_memalloc while holding the rcu_read_lock and that function can sleep. To fix that, we need to take a reference to the xprt while holding the rcu_read_lock, set the socket up for swapping and then drop that reference. But, xprt_put is not exported and having NFS deal with the underlying xprt is a bit of layering violation anyway. Fix this by adding a set of activate/deactivate functions that take a rpc_clnt pointer instead of an rpc_xprt, and have nfs_swap_activate and nfs_swap_deactivate call those. Also, add a per-rpc_clnt atomic counter to keep track of the number of active swapfiles associated with it. When the counter does a 0->1 transition, we enable swapping on the xprt, when we do a 1->0 transition we disable swapping on it. This also allows us to be a bit more selective with the RPC_TASK_SWAPPER flag. If non-swapper and swapper clnts are sharing a xprt, then we only need to flag the tasks from the swapper clnt with that flag. Acked-by: Mel Gorman Reported-by: Jerome Marchand Signed-off-by: Jeff Layton Reviewed-by: Chuck Lever Signed-off-by: Trond Myklebust fs/nfs/file.c | 15 ++-------- include/linux/sunrpc/clnt.h | 1 + include/linux/sunrpc/sched.h | 16 +++++++++++ net/sunrpc/clnt.c | 67 ++++++++++++++++++++++++++++++++++++++------ net/sunrpc/xprtsock.c | 3 +- 5 files changed, 78 insertions(+), 24 deletions(-) commit b064a8fa77dfead647564c46ac8fc5b13bd1ab73 Author: Rafael J. Wysocki Date: Wed Jun 10 01:33:36 2015 +0200 ACPI / init: Switch over platform to the ACPI mode later Commit 73f7d1ca3263 "ACPI / init: Run acpi_early_init() before timekeeping_init()" moved the ACPI subsystem initialization, including the ACPI mode enabling, to an earlier point in the initialization sequence, to allow the timekeeping subsystem use ACPI early. Unfortunately, that resulted in boot regressions on some systems and the early ACPI initialization was moved toward its original position in the kernel initialization code by commit c4e1acbb35e4 "ACPI / init: Invoke early ACPI initialization later". However, that turns out to be insufficient, as boot is still broken on the Tyan S8812 mainboard. To fix that issue, split the ACPI early initialization code into two pieces so the majority of it still located in acpi_early_init() and the part switching over the platform into the ACPI mode goes into a new function, acpi_subsystem_init(), executed at the original early ACPI initialization spot. That fixes the Tyan S8812 boot problem, but still allows ACPI tables to be loaded earlier which is useful to the EFI code in efi_enter_virtual_mode(). Link: https://bugzilla.kernel.org/show_bug.cgi?id=97141 Fixes: 73f7d1ca3263 "ACPI / init: Run acpi_early_init() before timekeeping_init()" Reported-and-tested-by: Marius Tolzmann Signed-off-by: Rafael J. Wysocki Acked-by: Toshi Kani Reviewed-by: Hanjun Guo Reviewed-by: Lee, Chun-Yi drivers/acpi/bus.c | 56 ++++++++++++++++++++++++++++++++++++++-------------- include/linux/acpi.h | 2 ++ init/main.c | 1 + 3 files changed, 44 insertions(+), 15 deletions(-) commit e55645ec5725a33eac9d6133f3bce381af1e993d Author: Luis R. Rodriguez Date: Tue Jun 2 11:42:02 2015 -0700 ia64: remove paravirt code All the ia64 pvops code is now dead code since both xen and kvm support have been ripped out [0] [1]. Just that no one had troubled to rip this stuff out. The only useful remaining pieces were the old pvops docs but that was recently also generalized and moved out from ia64 [2]. This has been run time tested on an ia64 Madison system. [0] 003f7de625890 "KVM: ia64: remove" since v3.19-rc1 [1] d52eefb47d4eb "ia64/xen: Remove Xen support for ia64" since v3.14-rc1 [2] "virtual: Documentation: simplify and generalize paravirt_ops.txt" Signed-off-by: Luis R. Rodriguez Signed-off-by: Tony Luck arch/ia64/Kconfig | 23 - arch/ia64/include/asm/hw_irq.h | 8 - arch/ia64/include/asm/intrinsics.h | 13 - arch/ia64/include/asm/iosapic.h | 4 - arch/ia64/include/asm/module.h | 6 - arch/ia64/include/asm/native/inst.h | 103 +--- arch/ia64/include/asm/native/pvchk_inst.h | 271 --------- arch/ia64/include/asm/paravirt.h | 321 ----------- arch/ia64/include/asm/paravirt_patch.h | 143 ----- arch/ia64/include/asm/paravirt_privop.h | 479 ---------------- arch/ia64/kernel/Makefile | 34 +- arch/ia64/kernel/efi.c | 1 - arch/ia64/kernel/entry.S | 41 +- arch/ia64/kernel/fsys.S | 18 +- arch/ia64/kernel/gate.S | 9 +- arch/ia64/kernel/gate.lds.S | 17 +- arch/ia64/kernel/head.S | 42 -- arch/ia64/kernel/ivt.S | 4 +- arch/ia64/kernel/minstate.h | 2 +- arch/ia64/kernel/module.c | 32 -- arch/ia64/kernel/paravirt.c | 902 ------------------------------ arch/ia64/kernel/paravirt_inst.h | 28 - arch/ia64/kernel/paravirt_patch.c | 514 ----------------- arch/ia64/kernel/paravirt_patchlist.c | 81 --- arch/ia64/kernel/paravirt_patchlist.h | 24 - arch/ia64/kernel/paravirtentry.S | 121 ---- arch/ia64/kernel/patch.c | 38 +- arch/ia64/kernel/setup.c | 12 - arch/ia64/kernel/smpboot.c | 2 - arch/ia64/kernel/time.c | 29 - arch/ia64/kernel/vmlinux.lds.S | 21 - arch/ia64/mm/init.c | 9 +- arch/ia64/scripts/pvcheck.sed | 33 -- 33 files changed, 68 insertions(+), 3317 deletions(-) commit 8c9a8a8f71f43e56d35524fa17646ce45c2f7fe6 Author: Maxime Coquelin Date: Wed Jun 10 13:28:27 2015 +0200 clk: Move debug_node field under DEBUG_FS flag in struct clk_core The debug_node field is only used when DEBUG_FS config is selected, so declare it only if DEBUG_FS is selected. Signed-off-by: Maxime Coquelin Signed-off-by: Stephen Boyd drivers/clk/clk.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3037e9ea780027d41baaaabb68a749e49e7c8260 Author: Daniel Thompson Date: Wed Jun 10 21:04:54 2015 +0100 clk: fixed: Add comment to clk_fixed_set_rate Currently it is not made explicit why clk_fixed_set_rate() can ignore its arguments and unconditionally return success. Add a comment to explain this. We also mark the clk_ops table const since it should never be modified at runtime. Suggested-by: Stephen Boyd Signed-off-by: Daniel Thompson Signed-off-by: Stephen Boyd drivers/clk/clk-fixed-factor.c | 8 +++++++- include/linux/clk-provider.h | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) commit b41c7bfa27f221a567e33b44aa5395adfe042229 Author: Stephen Boyd Date: Wed Jun 10 14:14:28 2015 -0700 clk: cdce925: Fix printk size_t warning drivers/clk/clk-cdce925.c:550: warning: format ‘%u’ expects type ‘unsigned int’, but argument 6 has type ‘size_t’ Cc: Mike Looijmans Reported-by: kbuild test robot Signed-off-by: Stephen Boyd drivers/clk/clk-cdce925.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bc5e66bd2591424f0e08d5478a36a8074fe739f5 Author: Mauro Carvalho Chehab Date: Wed Jun 10 13:55:35 2015 -0300 [media] cx88: don't declare restart_video_queue if not used While compiled on alpha, got this error: drivers/media/pci/cx88/cx88-video.c:415:12: warning: 'restart_video_queue' defined but not used [-Wunused-function] Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/cx88/cx88-video.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit aaf2cbca46a569b1ec4c292b03fbe2a0a1217e2f Author: Jacek Anaszewski Date: Mon Jun 8 02:02:18 2015 -0700 Documentation: leds: Add description of v4l2-flash sub-device This patch extends LED Flash class documention by the description of interactions with v4l2-flash sub-device. Signed-off-by: Jacek Anaszewski Acked-by: Kyungmin Park Cc: Richard Purdie Acked-by: Sakari Ailus Signed-off-by: Bryan Wu Documentation/leds/leds-class-flash.txt | 51 +++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) commit 3715a5d014e1326b8e6d008dfbf05615014a067e Author: Geoff Levand Date: Wed Jun 10 18:00:18 2015 +0000 MAINTAINERS: Update ps3vram block driver Add myself as co-maintainer of the ps3vram block driver, and add linuxppc-dev as a relevant mailing list. I have been acting as maintainer of this driver for the last several years, and if there is some inquiry regarding it I would like to be notified. Signed-off-by: Geoff Levand Acked-by: Jim Paris Signed-off-by: Jens Axboe MAINTAINERS | 2 ++ 1 file changed, 2 insertions(+) commit de667203fdbb77745ce7baa9ed280d2cc27b1753 Author: Geert Uytterhoeven Date: Wed Jun 10 18:00:17 2015 +0000 block/ps3vram: Remove obsolete reference to MTD The ps3vram driver is a plain block device driver since commit f507cd22035fdadd5dbb476dd05e9e7ee21c3b84 ("ps3/block: Replace mtd/ps3vram by block/ps3vram"). Signed-off-by: Geert Uytterhoeven Signed-off-by: Geoff Levand Acked-by: Jim Paris Signed-off-by: Jens Axboe drivers/block/ps3vram.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e7bdd17b0869782d89c371507ee45bb1425615a0 Author: Geoff Levand Date: Wed Jun 10 18:00:17 2015 +0000 block/ps3vram: Fix sparse warnings Fix sparse warnings like these: drivers/block/ps3vram.c: warning: incorrect type in assignment (different address spaces) drivers/block/ps3vram.c: expected unsigned int [usertype] *ctrl drivers/block/ps3vram.c: got void [noderef] * Cc: Jim Paris Cc: Jens Axboe Signed-off-by: Geoff Levand Acked-by: Jim Paris Signed-off-by: Jens Axboe drivers/block/ps3vram.c | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) commit 33d657d1381025542b84b79d5c7b548598e40a4d Author: Wang Long Date: Wed Jun 10 08:12:07 2015 +0000 ring-buffer-benchmark: Fix the wrong type The macro 'module_param' shows that the type of the variable disable_reader and write_iteration is unsigned integer. so, we change their type form int to unsigned int. Link: http://lkml.kernel.org/r/1433923927-67782-1-git-send-email-long.wanglong@huawei.com Signed-off-by: Wang Long Signed-off-by: Steven Rostedt kernel/trace/ring_buffer_benchmark.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 7364e86547bc52a555c9317b32cc4e81c4d4fd7c Author: Wang Long Date: Wed Jun 10 08:11:13 2015 +0000 ring-buffer-benchmark: Fix the wrong param in module_param The {producer|consumer}_{nice|fifo} parameters are integer type, we should use 'int' as the second param in module_param. For example(consumer_fifo): the default value of consumer_fifo is -1. Without this patch: # cat /sys/module/ring_buffer_benchmark/parameters/consumer_fifo 4294967295 With this patch: # cat /sys/module/ring_buffer_benchmark/parameters/consumer_fifo -1 Link: http://lkml.kernel.org/r/1433923873-67712-1-git-send-email-long.wanglong@huawei.com Signed-off-by: Wang Long Signed-off-by: Steven Rostedt kernel/trace/ring_buffer_benchmark.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 6d8db6ce239587c3d300d79fce3f5bb376232475 Author: Sonny Jiang Date: Wed Jun 10 13:46:36 2015 -0400 drm/amdgpu: fix a amdgpu_dpm=0 bug Signed-off-by: Sonny Jiang Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/cz_dpm.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 0c0cbb6c5a04a169320df1812e58b10362865e95 Author: Bjorn Helgaas Date: Wed Jun 10 14:00:21 2015 -0500 PCI/ASPM: Simplify Clock Power Management setting Update the Link Control Enable Clock Power Management bit the same way we update the ASPM Control bits, with a single call of pcie_capability_clear_and_set_word(). No functional change; this just makes both paths use the same style. Signed-off-by: Bjorn Helgaas drivers/pci/pcie/aspm.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) commit 6cbb247e85eb4449d31a8dcb9b3f0464772b1395 Author: Bjorn Helgaas Date: Tue Jun 2 16:47:17 2015 -0500 PCI: designware: Wait for link to come up with consistent style All the DesignWare-based host drivers loop waiting for the link to come up, but they do it several ways that are needlessly different. Wait for the link to come up in a consistent style across all the DesignWare drivers. No functional change. Signed-off-by: Bjorn Helgaas Acked-by: Pratyush Anand drivers/pci/host/pci-dra7xx.c | 16 ++++++---------- drivers/pci/host/pci-exynos.c | 34 +++++++++++++++------------------- drivers/pci/host/pci-imx6.c | 20 +++++++++----------- drivers/pci/host/pci-keystone.c | 16 +++++++--------- drivers/pci/host/pci-layerscape.c | 14 ++++++-------- drivers/pci/host/pcie-spear13xx.c | 17 ++++++++--------- 6 files changed, 51 insertions(+), 66 deletions(-) commit 1d3f9bac716a09af2d5d6e8601336ec9efcdccda Author: Bjorn Helgaas Date: Tue Jun 2 16:24:25 2015 -0500 PCI: layerscape: Factor out ls_pcie_establish_link() All other DesignWare-based drivers have a *_establish_link() function. This functionality is trivial for Layerscape, but factor out a ls_pcie_establish_link() for consistency with the other drivers. No functional change. Signed-off-by: Bjorn Helgaas Acked-by: Pratyush Anand drivers/pci/host/pci-layerscape.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) commit 1200edcbdd0434646fa8c8c99ab17e714ac4fa9d Author: Bjorn Helgaas Date: Tue Jun 2 16:27:56 2015 -0500 PCI: layerscape: Use dw_pcie_link_up() consistently All the other DesignWare-based drivers use dw_pcie_link_up(), so use it in this driver, too, for consistency. No functional change. Signed-off-by: Bjorn Helgaas Acked-by: Pratyush Anand drivers/pci/host/pci-layerscape.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 30fb7ba6605671e575b6a7a2e69fe153d6d20141 Author: Bjorn Helgaas Date: Tue Jun 2 16:21:11 2015 -0500 PCI: dra7xx: Use dw_pcie_link_up() consistently We already use dw_pcie_link_up() once in dra7xx_pcie_establish_link(), but we duplicate its code later. Use dw_pcie_link_up() for consistency. No functional change. Signed-off-by: Bjorn Helgaas Acked-by: Kishon Vijay Abraham I Acked-by: Pratyush Anand drivers/pci/host/pci-dra7xx.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 633ed3df9a65614f14e756424aaff0d317b1b637 Author: Alex Deucher Date: Wed Jun 10 11:52:00 2015 -0400 drm/amdgpu: don't enable/disable display twice on suspend/resume We were doing it in the common code and in the IP specific code. Remove the IP specific code. The common code handles the ordering properly. Reviewed-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/dce_v10_0.c | 18 ------------------ drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | 18 ------------------ drivers/gpu/drm/amd/amdgpu/dce_v8_0.c | 18 ------------------ 3 files changed, 54 deletions(-) commit 4802ce11778664a69b308c5aa9b95350b76793be Author: Christian König Date: Wed Jun 10 17:20:11 2015 +0200 drm/amdgpu: fix UVD/VCE VM emulation Signed-off-by: Christian König Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) commit 474ff0ae23b834e9fc18374d14bb5f3e7b3828b4 Author: Dan Carpenter Date: Wed Jun 10 18:37:23 2015 +0300 ASoC: imx-wm8962: Add a missing error check My static checker complains that: sound/soc/fsl/imx-wm8962.c:196 imx_wm8962_probe() warn: we tested 'ret' before and it was 'false' The intent was that we use "ret" to check imx_audmux_v2_configure_port(). Fixes: 8de2ae2a7f1f ('ASoC: fsl: add imx-wm8962 machine driver') Signed-off-by: Dan Carpenter Otherwise, Acked-by: Nicolin Chen Signed-off-by: Mark Brown sound/soc/fsl/imx-wm8962.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0b0cefc8fd105f379989164f3ef7e5b4a0d44c1f Author: Oder Chiou Date: Wed Jun 10 14:27:57 2015 +0800 ASoC: rt5645: change gpio to gpiod APIs Move gpio to gpio_desc and use gpiod APIs in codec driver. Signed-off-by: Bard Liao Signed-off-by: Oder Chiou Signed-off-by: Mark Brown include/sound/rt5645.h | 3 --- sound/soc/codecs/rt5645.c | 47 ++++++++++++----------------------------------- sound/soc/codecs/rt5645.h | 1 + 3 files changed, 13 insertions(+), 38 deletions(-) commit 5ae4f63b5062bc4e329940cc5cecdf0856b85849 Merge: fb5ab0e 11e68886 Author: Mark Brown Date: Wed Jun 10 18:31:55 2015 +0100 Merge tag 'asoc-v4.2' into asoc-rt5645 ASoC: Updates for v4.2 The big thing this release has been Liam's addition of topology support to the core. We've also seen quite a bit of driver work and the continuation of Lars' refactoring for component support. - Support for loading ASoC topology maps from firmware, intended to be used to allow self-describing DSP firmware images to be built which can map controls added by the DSP to userspace without the kernel needing to know about individual DSP firmwares. - Lots of refactoring to avoid direct access to snd_soc_codec where it's not needed supporting future refactoring. - Big refactoring and cleanup serieses for the Wolfson ADSP and TI TAS2552 drivers. - Support for TI TAS571x power amplifiers. - Support for Qualcomm APQ8016 and ZTE ZX296702 SoCs. - Support for x86 systems with RT5650 and Qualcomm Storm. commit fb5ab0e7473d41e2a9db0fcb569faf337d595838 Author: Oder Chiou Date: Wed Jun 10 14:27:58 2015 +0800 ASoC: rt5645: add device tree support Modify the RT5645 driver to parse platform data from device tree. Write a DT binding document to describe those properties. Signed-off-by: Bard Liao Signed-off-by: Oder Chiou Signed-off-by: Mark Brown Documentation/devicetree/bindings/sound/rt5645.txt | 72 ++++++++++++++++++++++ 1 file changed, 72 insertions(+) commit 1fcb76dbd16f3cf4c121e6141ae27446fd732267 Author: Oder Chiou Date: Wed Jun 10 14:34:29 2015 +0800 ASoC: rt5645: make RT5650_TDM_CTRL_4 readable Register RT5650_TDM_CTRL_4(0x7A) is readable and used for mixer setting. It should be added in rt5645_readable_register function. Signed-off-by: Bard Liao Signed-off-by: Oder Chiou Signed-off-by: Mark Brown sound/soc/codecs/rt5645.c | 1 + 1 file changed, 1 insertion(+) commit 22f5d9f8217656fc30a038d1ebb5a68f03b57a65 Author: Nicolas Boichat Date: Wed Jun 10 11:54:13 2015 +0800 ASoC: rt5645: Lock mutex in rt5645_enable_push_button_irq rt5645_enable_push_button_irq uses snd_soc_dapm_*_unlocked functions, so it needs to lock the required dapm mutex. Signed-off-by: Nicolas Boichat Signed-off-by: Mark Brown sound/soc/codecs/rt5645.c | 6 ++++++ 1 file changed, 6 insertions(+) commit bdb052e81f6236b4febb50ed74f79f770fa82cc5 Author: Srinivas Kandagatla Date: Wed Jun 10 13:15:54 2015 +0100 ASoC: qcom: add apq8016 sound card support This patch adds apq8016 machine driver support. This patch is tested on DB410c and msm8916-mtp board for both hdmi and analog audio features. Acked-by: Kenneth Westfield Signed-off-by: Srinivas Kandagatla Signed-off-by: Mark Brown sound/soc/qcom/Kconfig | 9 ++ sound/soc/qcom/Makefile | 2 + sound/soc/qcom/apq8016_sbc.c | 198 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 209 insertions(+) commit 4acf6d7f6837c12551c37e8c9bfc129d686a18c6 Author: Srinivas Kandagatla Date: Wed Jun 10 13:15:44 2015 +0100 ASoC: qcom: document apq8016 sbc machine driver bindings This patch adds bindings for apq8016 sbc machine driver. APQ8016 has 4 MI2S which can be configured to different sinks like internal codec/external codec, this connection and various parameters are controlled via 2 iomux registers. Acked-by: Kenneth Westfield Signed-off-by: Srinivas Kandagatla Signed-off-by: Mark Brown .../devicetree/bindings/sound/qcom,apq8016-sbc.txt | 60 ++++++++++++++++++++++ 1 file changed, 60 insertions(+) commit 366604ec0d7f5d16438090615a4b72c5be402c1b Author: Axel Lin Date: Wed Jun 10 18:52:11 2015 +0800 regulator: max8973: Fix up ramp_delay for MAX8973_RAMP_25mV_PER_US case Fix trivial typo. Signed-off-by: Axel Lin Reviewed-by: Laxman Dewangan Signed-off-by: Mark Brown drivers/regulator/max8973-regulator.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e0b047bd8fc73b35ba1081097e0223eb778d982c Author: Murali Karicheri Date: Wed Jun 10 03:23:42 2015 -0400 spi: davinci: change the lower limit of pre-scale divider to 1 SPI hardware spec for Keystone specify a lower value of 0 for pre-scale divider which determine what max value of spi clock (spi-max-frequency) the device can support. This translates to a clock divider of 2. So fix the lower limit value used for the boundary check in davinci_spi_get_prescale() function to 1 so that a maximum of spi device clock rate / 2 is possible to be set for spi-max-frequency. Signed-off-by: Murali Karicheri Acked-by: Sekhar Nori Signed-off-by: Mark Brown drivers/spi/spi-davinci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fbea28a2afb4251f985af52eb0180f097acaee16 Author: Lior Amsalem Date: Tue May 26 15:07:36 2015 +0200 dmaengine: mv_xor: improve descriptors list handling and reduce locking This patch change the way free descriptors are marked. Instead of having a field for descriptor in use, all the descriptors in the all_slots list are free for use. This simplify the allocation method and reduce the locking needed. Signed-off-by: Lior Amsalem Reviewed-by: Ofer Heifetz Signed-off-by: Maxime Ripard Signed-off-by: Vinod Koul drivers/dma/mv_xor.c | 141 +++++++++++++++++---------------------------------- drivers/dma/mv_xor.h | 17 +++---- 2 files changed, 53 insertions(+), 105 deletions(-) commit f1d25e0a9b1a6519580ddf5a7e5538093a504fcd Author: Lior Amsalem Date: Tue May 26 15:07:35 2015 +0200 dmaengine: mv_xor: Enlarge descriptor pool size Now that we have 2 channels assigned to 2 CPUs and all requests are chained on same channels, we need much more descriptors available to satisfy async_tx workload. 3072 descriptors was found in our lab as the number of descriptors which allow the async_tx stack to work without waiting for free descriptors on submission of new requests. Signed-off-by: Lior Amsalem Reviewed-by: Nadav Haklai Tested-by: Nadav Haklai Signed-off-by: Maxime Ripard Signed-off-by: Vinod Koul drivers/dma/mv_xor.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6f166312c6ea2c010c6425c48506d2bbad491c03 Author: Lior Amsalem Date: Tue May 26 15:07:34 2015 +0200 dmaengine: mv_xor: add support for a38x command in descriptor mode The Marvell Armada 38x SoC introduce new features to the XOR engine, especially the fact that the engine mode (MEMCPY/XOR/PQ/etc) can be part of the descriptor and not set through the controller registers. This new feature allows mixing of different commands (even PQ) on the same channel/chain without the need to stop the engine to reconfigure the engine mode. Refactor the driver to be able to use that new feature on the Armada 38x, while keeping the old behaviour on the older SoCs. Signed-off-by: Lior Amsalem Reviewed-by: Ofer Heifetz Signed-off-by: Maxime Ripard Signed-off-by: Vinod Koul Documentation/devicetree/bindings/dma/mv-xor.txt | 2 +- drivers/dma/mv_xor.c | 82 ++++++++++++++++++++---- drivers/dma/mv_xor.h | 7 ++ 3 files changed, 76 insertions(+), 15 deletions(-) commit 0951e728ff19d81a7b66ffbea2d449d2c0aa7645 Author: Maxime Ripard Date: Tue May 26 15:07:33 2015 +0200 dmaengine: mv_xor: Rename function for consistent naming The current function names isn't very consistent, and functions with the same prefix might operate on either a channel or a descriptor, which is kind of confusing. Rename these functions to have a consistent and clearer naming scheme. Signed-off-by: Maxime Ripard Signed-off-by: Vinod Koul drivers/dma/mv_xor.c | 87 ++++++++++++++++++++++++++-------------------------- 1 file changed, 44 insertions(+), 43 deletions(-) commit 9136291f1dbc1d4d1cacd2840fb35f4f3ce16c46 Author: Lior Amsalem Date: Tue May 26 15:07:32 2015 +0200 dmaengine: mv_xor: bug fix for racing condition in descriptors cleanup This patch fixes a bug in the XOR driver where the cleanup function can be called and free descriptors that never been processed by the engine (which result in data errors). The cleanup function will free descriptors based on the ownership bit in the descriptors. Fixes: ff7b04796d98 ("dmaengine: DMA engine driver for Marvell XOR engine") Signed-off-by: Lior Amsalem Signed-off-by: Maxime Ripard Reviewed-by: Ofer Heifetz Cc: stable@vger.kernel.org Signed-off-by: Vinod Koul drivers/dma/mv_xor.c | 72 +++++++++++++++++++++++++++++++++------------------- drivers/dma/mv_xor.h | 1 + 2 files changed, 47 insertions(+), 26 deletions(-) commit 9a4e7276d39071576d369e607d7accb84b41d0b4 Author: Zhao Lei Date: Thu Apr 9 12:34:43 2015 +0800 btrfs: wait for delayed iputs on no space btrfs will report no_space when we run following write and delete file loop: # FILE_SIZE_M=[ 75% of fs space ] # DEV=[ some dev ] # MNT=[ some dir ] # # mkfs.btrfs -f "$DEV" # mount -o nodatacow "$DEV" "$MNT" # for ((i = 0; i < 100; i++)); do dd if=/dev/zero of="$MNT"/file0 bs=1M count="$FILE_SIZE_M"; rm -f "$MNT"/file0; done # Reason: iput() and evict() is run after write pages to block device, if write pages work is not finished before next write, the "rm"ed space is not freed, and caused above bug. Fix: We can add "-o flushoncommit" mount option to avoid above bug, but it have performance problem. Actually, we can to wait for on-the-fly writes only when no-space happened, it is which this patch do. Signed-off-by: Zhao Lei Signed-off-by: Chris Mason fs/btrfs/extent-tree.c | 3 +++ 1 file changed, 3 insertions(+) commit d67263354541982a29e22a327a9d8c71d1099766 Author: Qu Wenruo Date: Mon Apr 20 10:09:06 2015 +0800 btrfs: qgroup: Make snapshot accounting work with new extent-oriented qgroup. Make snapshot accounting work with new extent-oriented mechanism by skipping given root in new/old_roots in create_pending_snapshot(). Signed-off-by: Qu Wenruo Signed-off-by: Chris Mason fs/btrfs/transaction.c | 53 +++++++++++++++++++++++++++++++------------------- 1 file changed, 33 insertions(+), 20 deletions(-) commit 9086db86e0b09c39abead4d747119695553e3978 Author: Qu Wenruo Date: Mon Apr 20 09:53:50 2015 +0800 btrfs: qgroup: Add the ability to skip given qgroup for old/new_roots. This is used by later qgroup fix patches for snapshot. As current snapshot accounting is done by btrfs_qgroup_inherit(), but new extent oriented quota mechanism will account extent from btrfs_copy_root() and other snapshot things, causing wrong result. So add this ability to handle snapshot accounting. Signed-off-by: Qu Wenruo Signed-off-by: Chris Mason fs/btrfs/delayed-ref.h | 8 ++++++++ fs/btrfs/qgroup.c | 8 ++++++++ fs/btrfs/transaction.c | 1 + fs/btrfs/transaction.h | 23 +++++++++++++++++++++++ 4 files changed, 40 insertions(+) commit d4b804045924d7f8d2ea988be22c4b9e6492ec11 Author: Qu Wenruo Date: Mon Apr 20 09:26:02 2015 +0800 btrfs: ulist: Add ulist_del() function. This function will delete unode with given (val,aux) pair. And with this patch, seqnum for debug usage doesn't have any meaning now, so remove them. This is used by later patches to skip snapshot root. Signed-off-by: Qu Wenruo Signed-off-by: Chris Mason fs/btrfs/ulist.c | 47 ++++++++++++++++++++++++++++++++++++----------- fs/btrfs/ulist.h | 1 + 2 files changed, 37 insertions(+), 11 deletions(-) commit e69bcee37692f5d8c557335ddd2444cb4afe0005 Author: Qu Wenruo Date: Fri Apr 17 10:23:16 2015 +0800 btrfs: qgroup: Cleanup the old ref_node-oriented mechanism. Goodbye, the old mechanisim. Signed-off-by: Qu Wenruo Signed-off-by: Chris Mason fs/btrfs/ctree.h | 2 +- fs/btrfs/extent-tree.c | 5 - fs/btrfs/qgroup.c | 864 +------------------------------------------ fs/btrfs/qgroup.h | 49 --- include/trace/events/btrfs.h | 55 --- 5 files changed, 3 insertions(+), 972 deletions(-) commit 442244c9633292a147ab2b29e7007a7c8a3909b2 Author: Qu Wenruo Date: Thu Apr 16 17:18:36 2015 +0800 btrfs: qgroup: Switch self test to extent-oriented qgroup mechanism. Since the self test transaction don't have delayed_ref_roots, so use find_all_roots() and export btrfs_qgroup_account_extent() to simulate it Signed-off-by: Qu Wenruo Signed-off-by: Chris Mason fs/btrfs/qgroup.c | 2 +- fs/btrfs/qgroup.h | 5 ++ fs/btrfs/tests/qgroup-tests.c | 109 ++++++++++++++++++++++++++++++++---------- 3 files changed, 89 insertions(+), 27 deletions(-) commit 0ed4792af0e8346cb670b4bc540df7594f4b2020 Author: Qu Wenruo Date: Thu Apr 16 16:55:08 2015 +0800 btrfs: qgroup: Switch to new extent-oriented qgroup mechanism. Switch from old ref_node based qgroup to extent based qgroup mechanism for normal operations. The new mechanism should hugely reduce the overhead of btrfs quota system, and further more, the codes and logic should be more clean and easier to maintain. Signed-off-by: Qu Wenruo Signed-off-by: Chris Mason fs/btrfs/extent-tree.c | 110 +++++-------------------------------------------- fs/btrfs/transaction.c | 18 ++++++++ 2 files changed, 28 insertions(+), 100 deletions(-) commit 9d220c95f5191f6e99fbb992d5f36a929d3fc432 Author: Qu Wenruo Date: Mon Apr 13 11:02:16 2015 +0800 btrfs: qgroup: Switch rescan to new mechanism. Switch rescan to use the new new extent oriented mechanism. As rescan is also based on extent, new mechanism is just a perfect match for rescan. With re-designed internal functions, rescan is quite easy, just call btrfs_find_all_roots() and then btrfs_qgroup_account_one_extent(). Signed-off-by: Qu Wenruo Signed-off-by: Chris Mason fs/btrfs/qgroup.c | 43 +++++++------------------------------------ 1 file changed, 7 insertions(+), 36 deletions(-) commit 550d7a2ed5db35756222ec17cff3376ff38d78e2 Author: Qu Wenruo Date: Thu Apr 16 15:37:33 2015 +0800 btrfs: qgroup: Add new qgroup calculation function btrfs_qgroup_account_extents(). The new btrfs_qgroup_account_extents() function should be called in btrfs_commit_transaction() and it will update all the qgroup according to delayed_ref_root->dirty_extent_root. The new function can handle both normal operation during commit_transaction() or in rescan in a unified method with clearer logic. Signed-off-by: Qu Wenruo Signed-off-by: Chris Mason fs/btrfs/extent-tree.h | 0 fs/btrfs/qgroup.c | 116 +++++++++++++++++++++++++++++++++++++++++++++++++ fs/btrfs/qgroup.h | 2 + 3 files changed, 118 insertions(+) commit 21633fc6037f8ceb2bb927dacc3f9ef46ccae891 Author: Qu Wenruo Date: Thu Apr 16 14:54:50 2015 +0800 btrfs: backref: Add special time_seq == (u64)-1 case for btrfs_find_all_roots(). Allow btrfs_find_all_roots() to skip all delayed_ref_head lock and tree lock to do tree search. This is important for later qgroup implement which will call find_all_roots() after fs trees are committed. Signed-off-by: Qu Wenruo Signed-off-by: Chris Mason fs/btrfs/backref.c | 35 +++++++++++++++++++++++++++++------ 1 file changed, 29 insertions(+), 6 deletions(-) commit 3b7d00f99c60b31e1cff0efc6b9178eea3696e27 Author: Qu Wenruo Date: Thu Apr 16 16:40:39 2015 +0800 btrfs: qgroup: Add new function to record old_roots. Add function btrfs_qgroup_prepare_account_extents() to get old_roots which are needed for qgroup. We do it in commit_transaction() and before switch_roots(), and only search commit_root, so it gives a quite accurate view for previous transaction. With old_roots from previous transaction, we can use it to do accurate account with current transaction. Signed-off-by: Qu Wenruo Signed-off-by: Chris Mason fs/btrfs/qgroup.c | 27 +++++++++++++++++++++++++++ fs/btrfs/qgroup.h | 2 ++ 2 files changed, 29 insertions(+) commit 3368d001ba5df44930d986e82b1b497d4da285ba Author: Qu Wenruo Date: Thu Apr 16 14:34:17 2015 +0800 btrfs: qgroup: Record possible quota-related extent for qgroup. Add hook in add_delayed_ref_head() to record quota-related extent record into delayed_ref_root->dirty_extent_record rb-tree for later qgroup accounting. Signed-off-by: Qu Wenruo Signed-off-by: Chris Mason fs/btrfs/delayed-ref.c | 50 +++++++++++++++++++++++++++++++++++++++++++------- fs/btrfs/delayed-ref.h | 3 +++ fs/btrfs/qgroup.c | 31 +++++++++++++++++++++++++++++++ fs/btrfs/qgroup.h | 17 +++++++++++++++++ fs/btrfs/transaction.c | 1 + 5 files changed, 95 insertions(+), 7 deletions(-) commit 823ae5b8e340003dacbe7cd08a355efe018c9f1b Author: Qu Wenruo Date: Sun Apr 12 16:59:57 2015 +0800 btrfs: qgroup: Add function qgroup_update_counters(). Add function qgroup_update_counters(), which will update related qgroups' rfer/excl according to old/new_roots. This is one of the two core functions for the new qgroup implement. This is based on btrfs_adjust_coutners() but with clearer logic and comment. Signed-off-by: Qu Wenruo Signed-off-by: Chris Mason fs/btrfs/qgroup.c | 120 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) commit d810ef2be5b8b15c9b6f88f9a09b1b4b16e30871 Author: Qu Wenruo Date: Sun Apr 12 16:52:34 2015 +0800 btrfs: qgroup: Add function qgroup_update_refcnt(). This function is used to update refcnt for qgroups. And is one of the two core functions used in the new qgroup implement. This is based on the old update_old/new_refcnt, but provides a unified logic and behavior. Signed-off-by: Qu Wenruo Signed-off-by: Chris Mason fs/btrfs/qgroup.c | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) commit c682f9b3c2e091f3211ca68585be39f2a2beb8d0 Author: Qu Wenruo Date: Tue Mar 17 16:59:47 2015 +0800 btrfs: extent-tree: Use ref_node to replace unneeded parameters in __inc_extent_ref() and __free_extent() __btrfs_inc_extent_ref() and __btrfs_free_extent() have already had too many parameters, but three of them can be extracted from btrfs_delayed_ref_node struct. So use btrfs_delayed_ref_node struct as a single parameter to replace the bytenr/num_byte/no_quota parameters. The real objective of this patch is to allow btrfs_qgroup_record_ref() get the delayed_ref_node in incoming qgroup patches. Other functions calling btrfs_qgroup_record_ref() are not affected since the rest will only add/sub exclusive extents, where node is not used. Signed-off-by: Qu Wenruo Signed-off-by: Chris Mason fs/btrfs/extent-tree.c | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) commit 9c542136fd94941572762e7955e6a054b23e97f7 Author: Qu Wenruo Date: Thu Mar 12 16:10:13 2015 +0800 btrfs: qgroup: Cleanup open-coded old/new_refcnt update and read. Use inline functions to do such things, to improve readability. Signed-off-by: Qu Wenruo Acked-by: David Sterba Signed-off-by: Chris Mason fs/btrfs/qgroup.c | 95 +++++++++++++++++++++++++++++++------------------------ 1 file changed, 54 insertions(+), 41 deletions(-) commit c43d160fcd5e4e4f7d2983f5d5253ca33a1596ca Author: Qu Wenruo Date: Mon Mar 30 17:12:29 2015 +0800 btrfs: delayed-ref: Cleanup the unneeded functions. Cleanup the rb_tree merge/insert/update functions, since now we use list instead of rb_tree now. Signed-off-by: Qu Wenruo Signed-off-by: Chris Mason fs/btrfs/delayed-ref.c | 174 ------------------------------------------------- 1 file changed, 174 deletions(-) commit c6fc24549960f26910cd0c6e4b5f48f2f306b11d Author: Qu Wenruo Date: Mon Mar 30 17:03:00 2015 +0800 btrfs: delayed-ref: Use list to replace the ref_root in ref_head. This patch replace the rbtree used in ref_head to list. This has the following advantage: 1) Easier merge logic. With the new list implement, we only need to care merging the tail ref_node with the new ref_node. And this can be done quite easy at insert time, no need to do a indicated merge at run_delayed_refs(). Signed-off-by: Qu Wenruo Signed-off-by: Chris Mason fs/btrfs/backref.c | 9 +-- fs/btrfs/delayed-ref.c | 156 ++++++++++++++++++++++++++----------------------- fs/btrfs/delayed-ref.h | 18 +++++- fs/btrfs/disk-io.c | 8 +-- fs/btrfs/extent-tree.c | 46 +++------------ 5 files changed, 114 insertions(+), 123 deletions(-) commit 00db646d3fb3f5f62c2327abcf3630f4cc1075ba Author: Qu Wenruo Date: Wed Apr 1 14:39:06 2015 +0800 btrfs: backref: Don't merge refs which are not for same block. Old __merge_refs() in backref.c will even merge refs whose root_id are different, which makes qgroup gives wrong result. Fix it by checking ref_for_same_block() before any mode specific works. Signed-off-by: Qu Wenruo Signed-off-by: Chris Mason fs/btrfs/backref.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit b7a0776949a8f9db835ab652b6fa96b6e7d6972d Author: Sonny Jiang Date: Thu May 28 15:47:53 2015 -0400 drm/amdgpu: enable vce powergating Enable VCE dpm and powergating. VCE dpm dynamically scales the VCE clocks on demand. Signed-off-by: Sonny Jiang Reviewed-by: Alex Deucher Reviewed-by: Christian König drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 + drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c | 26 ++++--- drivers/gpu/drm/amd/amdgpu/cz_dpm.c | 132 ++++++++++++++++++++++++++++++++- drivers/gpu/drm/amd/amdgpu/vi.c | 2 +- 4 files changed, 148 insertions(+), 14 deletions(-) commit e42c8c6eb456f8978de417ea349eef676ef4385c Author: Rafael Lourenço de Lima Chehab Date: Mon Jun 8 22:20:45 2015 -0300 [media] au0828: move dev->boards atribuition to happen earlier The attribution of dev->boards occured too late, which would couse an OOPS in media controller registration. Signed-off-by: Rafael Lourenço de Lima Chehab Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/au0828/au0828-cards.c | 2 -- drivers/media/usb/au0828/au0828-core.c | 2 ++ 2 files changed, 2 insertions(+), 2 deletions(-) commit 0e6c861f73ec42ab5c89fda9892f2173c7aaf6cf Author: Greg Kroah-Hartman Date: Wed Jun 10 08:38:29 2015 -0700 Revert "base/platform: Only insert MEM and IO resources" This reverts commit 36d4b29260753ad78b1ce4363145332c02519adc as it breaks working machines. Cc: Rob Herring Cc: Ricardo Ribalda Delgado Signed-off-by: Greg Kroah-Hartman drivers/base/platform.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) commit 5da7f70997f772d7605c11d9e00018ffac463d92 Author: Greg Kroah-Hartman Date: Wed Jun 10 08:38:02 2015 -0700 Revert "base/platform: Continue on insert_resource() error" This reverts commit e50e69d1ac4232af0b6890f16929bf5ceee81538 as it breaks working machines. Cc: Rob Herring Cc: Ricardo Ribalda Delgado Signed-off-by: Greg Kroah-Hartman drivers/base/platform.c | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) commit 48c91aadc5372f2c3a9b7da11403f86ef2118b26 Author: Malcolm Priestley Date: Mon Jun 8 19:05:20 2015 -0300 [media] lmedm04: implement dvb v5 statistics Indroduce function lme2510_update_stats to update statistics directly from usb interrupt. Provide signal and snr wrap rounds for dvb v3 functions. Block and post bit are not available. When i2c_talk_onoff is on no statistics are available, with possible future hand over to the relevant frontend/tuner. Signed-off-by: Malcolm Priestley Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/dvb-usb-v2/lmedm04.c | 104 ++++++++++++++++++++++++--------- 1 file changed, 77 insertions(+), 27 deletions(-) commit 8171d5f7bf26849db51e8eda2bc19c92d7462606 Author: Greg Kroah-Hartman Date: Wed Jun 10 08:37:35 2015 -0700 Revert "of/platform: Use platform_device interface" This reverts commit b6d2233f2916fa9338786aeab2e936c5a07e4d0c as it breaks working machines. Cc: Rob Herring Cc: Ricardo Ribalda Delgado Signed-off-by: Greg Kroah-Hartman drivers/of/platform.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 8b2dcebae330fb6dffc7717b740aa4b2c4d00451 Author: Greg Kroah-Hartman Date: Wed Jun 10 08:36:50 2015 -0700 Revert "base/platform: Remove code duplication" This reverts commit 6d9d4b1469b0d9748145e168fc9ec585e1f3f4b0 as it breaks working machines. Cc: Rob Herring Cc: Ricardo Ribalda Delgado Signed-off-by: Greg Kroah-Hartman drivers/base/platform.c | 60 ++++++++++++++++++++++++++++--------------------- 1 file changed, 35 insertions(+), 25 deletions(-) commit baa1fb504c5b89d1b04e5b4d1b8658f41bb29477 Author: Mauro Carvalho Chehab Date: Wed Jun 10 12:30:52 2015 -0300 [media] bdisp: remove unused var Fix the following warning: drivers/media/platform/sti/bdisp/bdisp-v4l2.c: In function 'bdisp_register_device': drivers/media/platform/sti/bdisp/bdisp-v4l2.c:1024:26: warning: variable 'pdev' set but not used [-Wunused-but-set-variable] struct platform_device *pdev; Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/sti/bdisp/bdisp-v4l2.c | 3 --- 1 file changed, 3 deletions(-) commit 1a8b18afa13f2772b1ae79de3831f0b81b4a0903 Author: Fabien Dessenne Date: Wed Jun 10 07:19:37 2015 -0300 [media] bdisp: remove needless check As reported by smatch: drivers/media/platform/sti/bdisp/bdisp-v4l2.c:947 bdisp_s_selection() warn: unsigned 'out.width' is never less than zero. drivers/media/platform/sti/bdisp/bdisp-v4l2.c:947 bdisp_s_selection() warn: unsigned 'out.height' is never less than zero. Indeed, width and height are unsigned. Signed-off-by: Fabien Dessenne Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/sti/bdisp/bdisp-v4l2.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 87b09bd048924f5b830d57f719b0c62ec25bac32 Author: Mauro Carvalho Chehab Date: Wed Jun 10 12:26:18 2015 -0300 ts2020: fix compilation on i386 drivers/built-in.o: In function `ts2020_read_signal_strength': ts2020.c:(.text+0x298ff94): undefined reference to `__divdi3' ts2020.c:(.text+0x298ffd4): undefined reference to `__divdi3' ts2020.c:(.text+0x298fffd): undefined reference to `__divdi3' Makefile:921: recipe for target 'vmlinux' failed Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/ts2020.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 9d605e6359f0808581b89350c643208586f41a06 Author: Mauro Carvalho Chehab Date: Wed Jun 10 12:06:34 2015 -0300 [media] mantis: cleanup CodingStyle issues due to last commit Commit a96762da0cfc('[media] mantis: add remote control support') introduced some new CodingStyle issues. Fix them. No functional changes. Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/mantis/hopper_cards.c | 7 ++++--- drivers/media/pci/mantis/mantis_cards.c | 30 ++++++++++++++++-------------- drivers/media/pci/mantis/mantis_input.c | 8 ++------ drivers/media/pci/mantis/mantis_input.h | 10 +++------- drivers/media/pci/mantis/mantis_uart.c | 5 +++-- 5 files changed, 28 insertions(+), 32 deletions(-) commit 5610032135c05e7bf9cba231826577a01719d010 Author: Peter Zijlstra Date: Wed Jun 10 16:48:50 2015 +0200 perf record: Amend option summaries Because there's too many options and I cannot read, I frequently get confused between -c and -P, and try to do things like: perf record -P 50000 -- foo Which does not work; try and make the option description slightly longer and hopefully less confusing. Signed-off-by: Peter Zijlstra (Intel) Link: http://lkml.kernel.org/r/20150610144850.GP19282@twins.programming.kicks-ass.net [ Do those changes on the man page as well ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/perf-record.txt | 10 +++++++--- tools/perf/builtin-record.c | 7 +++---- 2 files changed, 10 insertions(+), 7 deletions(-) commit a96762da0cfcbe27f18febb84797269cd9faf791 Author: Jan Klötzke Date: Sat Jun 6 16:58:13 2015 -0300 [media] mantis: add remote control support The embedded UART is apparently used to receive decoded IR (RC5?) codes. Forward these scan codes to the RC framework and (where known) add corresponding mapping tables to translate them into regular keys. This patch has been tested on a TechniSat CableStar HD2. The mappings of other rc-maps were taken from Christoph Pinkl's patch (http://patchwork.linuxtv.org/patch/7217/) and the s2-liplianin repository. The major difference to Christoph's patch is a reworked interrupt handling of the UART because the RX interrupt is apparently level triggered and requires masking until the FIFO is read by the UART worker. Signed-off-by: Jan Klötzke Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/mantis/hopper_cards.c | 13 +++- drivers/media/pci/mantis/mantis_cards.c | 57 +++++++++++++---- drivers/media/pci/mantis/mantis_common.h | 33 ++++++++-- drivers/media/pci/mantis/mantis_dma.c | 5 +- drivers/media/pci/mantis/mantis_i2c.c | 8 +-- drivers/media/pci/mantis/mantis_input.c | 106 +++++-------------------------- drivers/media/pci/mantis/mantis_input.h | 28 ++++++++ drivers/media/pci/mantis/mantis_pcmcia.c | 4 +- drivers/media/pci/mantis/mantis_uart.c | 62 +++++++++--------- 9 files changed, 166 insertions(+), 150 deletions(-) commit 1c35cf9ccac5cf32cd865e6a62dfd16dd50ad5dd Author: Jan Klötzke Date: Sat Jun 6 16:58:12 2015 -0300 [media] rc/keymaps: add keytable for Twinhan DTV CAB CI This RC map was taken from Christoph Pinkl's patch (http://patchwork.linuxtv.org/patch/7217/). It is used solely by the respective mantis based card because the encoding is not known. Signed-off-by: Jan Klötzke Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/keymaps/Makefile | 1 + drivers/media/rc/keymaps/rc-twinhan-dtv-cab-ci.c | 98 ++++++++++++++++++++++++ include/media/rc-map.h | 1 + 3 files changed, 100 insertions(+) commit 578e95dd38b5b23be99b9899ddab480be4be9b2a Author: Jan Klötzke Date: Sat Jun 6 16:58:11 2015 -0300 [media] rc/keymaps: add keytable for Terratec Cinergy S2 HD This RC map was taken from Christoph Pinkl's patch (http://patchwork.linuxtv.org/patch/7217/). It is used solely by the respective mantis based card because the encoding is not known. Signed-off-by: Jan Klötzke Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/keymaps/Makefile | 1 + .../media/rc/keymaps/rc-terratec-cinergy-s2-hd.c | 86 ++++++++++++++++++++++ include/media/rc-map.h | 1 + 3 files changed, 88 insertions(+) commit d7c72606d97e6f462a99b79e55b39808147d4c8b Author: Milos Vyletel Date: Mon Jun 8 16:50:16 2015 +0200 perf tools: Avoid possible race condition in copyfile() Use unique temporary files when copying to buildid dir to prevent races in case multiple instances are trying to copy same file. This is done by - creating template in form /..XXXXXX where the suffix is used by mkstemp() to create unique file - change file mode - copy content - if successful link temp file to target file - unlink temp file At this point the only file left at target path should be the desired one either created by us or other instance if we raced. This should also prevent not yet fully copied files to be visible to to other perf instances that could try to parse them. On top of that slow_copyfile no longer needs to deal with file mode when creating file since temporary file is already created and mode is set. Succesfully tested by myself by running perf record, archive and reading the data on other system and by running perf buildid-cache on perf binary itself. I also did revert fix from 0635b0f that to exposes previously fixed race with EEXIST and recreator test passed sucessfully. Signed-off-by: Milos Vyletel Acked-by: Ingo Molnar Cc: Andy Shevchenko Cc: Don Zickus Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Steven Rostedt Link: http://lkml.kernel.org/r/1433775018-19868-1-git-send-email-milos@redhat.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/util.c | 46 +++++++++++++++++++++++++++++++--------------- 1 file changed, 31 insertions(+), 15 deletions(-) commit 4862690d82eec2d530bf78803009a1e3bb82be9a Author: Jan Klötzke Date: Sat Jun 6 16:58:10 2015 -0300 [media] rc/keymaps: add keytable for Terratec Cinergy C PCI This RC map was taken from Christoph Pinkl's patch (http://patchwork.linuxtv.org/patch/7217/). It is used solely by the respective mantis based card because the encoding is not known. Signed-off-by: Jan Klötzke Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/keymaps/Makefile | 1 + .../media/rc/keymaps/rc-terratec-cinergy-c-pci.c | 88 ++++++++++++++++++++++ include/media/rc-map.h | 1 + 3 files changed, 90 insertions(+) commit 9b6a065e797e525e94d949bba1abc257527b3f87 Author: Jan Klötzke Date: Sat Jun 6 16:58:09 2015 -0300 [media] rc/keymaps: add RC keytable for TechniSat TS35 The TS35 remote is distributed with TechniSat CableStar HD2 cards (mantis chipset). The exact protocol type is unknown, making this rc map probably only usable by mantis cards. Signed-off-by: Jan Klötzke Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/keymaps/Makefile | 1 + drivers/media/rc/keymaps/rc-technisat-ts35.c | 76 ++++++++++++++++++++++++++++ include/media/rc-map.h | 1 + 3 files changed, 78 insertions(+) commit 8d7e506350a3ff1b0659f7f5d65115a9be5ae37e Author: Dan Carpenter Date: Sat Jun 6 13:55:22 2015 -0300 [media] dvb-core: prevent some corruption the legacy ioctl Quite a few of the ->diseqc_send_master_cmd() implementations don't check cmd->msg_len so it can lead to memory corruption. Signed-off-by: Dan Carpenter Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-core/dvb_frontend.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 5dce1ee611e4acd0893c77611d25fe5b1594764a Author: Olli Salonen Date: Sat Jun 6 04:44:58 2015 -0300 [media] saa7164: Improvements for I2C handling" This reverts commit ad90b6b0f10566d4a5546e27fe455ce3b5e6b6c7. This patch breaks I2C communication towards Si2168. After reverting and applying the other patch in this series the I2C communication is correct. Signed-off-by: Olli Salonen Reviewed-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/saa7164/saa7164-api.c | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) commit d976872891f139f59cfcb4e47ca05fc2e90f3e43 Author: Olli Salonen Date: Sat Jun 6 04:44:57 2015 -0300 [media] saa7164: change Si2168 reglen to 0 bit The i2c_reg_len for Si2168 should be 0 for correct I2C communication. Signed-off-by: Olli Salonen Reviewed-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/saa7164/saa7164-cards.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 555416f9878d2d1547765c1587b05e585c69096b Author: Vaishali Thakkar Date: Fri Jun 5 22:53:27 2015 -0300 [media] s5k5baf: Convert use of __constant_cpu_to_be16 to cpu_to_be16 In little endian cases, macro cpu_to_be16 unfolds to __swab16 which provides special case for constants. In big endian cases, __constant_cpu_to_be16 and cpu_to_be16 expand directly to the same expression. So, replace __constant_cpu_to_be16 with cpu_to_be16 with the goal of getting rid of the definition of __constant_cpu_to_be16 completely. The semantic patch that performs this transformation is as follows: @@expression x;@@ - __constant_cpu_to_be16(x) + cpu_to_be16(x) Signed-off-by: Vaishali Thakkar Reviewed-by: Andrzej Hajda Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/s5k5baf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f4ed950a63fc9590287f0f4fb0698e530b42b8a6 Author: Frans Klaver Date: Wed Jun 10 14:16:56 2015 +0200 sbs-battery: add option to always register battery Commit a22b41a31e53 ("sbs-battery: Probe should try talking to the device") introduced a step in probing the SBS battery, that tries to talk to the device before actually registering it, saying: this driver doesn't actually try talking to the device at probe time, so if it's incorrectly configured in the device tree or platform data (or if the battery has been removed from the system), then probe will succeed and every access will sit there and time out. The end result is a possibly laggy system that thinks it has a battery but can never read status, which isn't very useful. Which is of course reasonable. However, it is also very well possible for a device to boot up on wall-power and be connected to a battery later on. This is a scenario that the driver supported before said patch was applied, and even easily achieved by booting up with the battery attached and removing it later on. sbs-battery's 'present' sysfs file can be used to determine if the device is available or not. So with automated device detection lacking for now, in some cases it is possible that one wants to register a battery, even if none are attached at the moment. To facilitate this, add a module parameter that can be used to configure forced loading module loading time. If set, the battery will always be registered without checking the sanity of the connection. Signed-off-by: Frans Klaver Signed-off-by: Sebastian Reichel drivers/power/sbs-battery.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) commit fe27e1dfe9962b07215ee01445926306ddbb7c25 Author: Hans de Goede Date: Tue Jun 9 23:37:56 2015 +0200 power: Add devm_power_supply_get_by_phandle() helper function This commit adds a resource-managed version of the power_supply_get_by_phandle() function. Signed-off-by: Hans de Goede Signed-off-by: Sebastian Reichel drivers/power/power_supply_core.c | 39 +++++++++++++++++++++++++++++++++++++++ include/linux/power_supply.h | 5 +++++ 2 files changed, 44 insertions(+) commit a6e6b63ee2798f18e0e786feb407cc7846077ea3 Author: Krzysztof Kozlowski Date: Mon Jun 8 10:11:38 2015 +0900 power_supply: max17042: Add OF support for setting thresholds The commit edd4ab055931 ("power: max17042_battery: add HEALTH and TEMP_* properties support") added support for setting voltage and temperature thresholds with platform data. For DeviceTree default of 0 was always used. This caused reporting battery health always as over voltage or over heated. Signed-off-by: Krzysztof Kozlowski Fixes: edd4ab055931 ("power: max17042_battery: add HEALTH and TEMP_* properties support") Signed-off-by: Sebastian Reichel .../devicetree/bindings/power_supply/max17042_battery.txt | 13 +++++++++++++ drivers/power/max17042_battery.c | 9 +++++++++ 2 files changed, 22 insertions(+) commit 9e8715c91da5567518fcfc16721e01f974536e4a Author: Malcolm Priestley Date: Fri Jun 5 07:55:07 2015 -0300 [media] lmedm04: Enable dont_poll for TS2020 tuner Following a change made to TS2020 tuner in patches ts2020: Provide DVBv5 API signal strength ts2020: Allow stats polling to be suppressed Polling on the driver must be suppressed because the demuxer is stopped by I2C messages. Signed-off-by: Malcolm Priestley Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/dvb-usb-v2/lmedm04.c | 1 + 1 file changed, 1 insertion(+) commit c7275ae16114bd6be4cb83ee02bf801c303a2225 Author: David Howells Date: Wed Jun 3 08:35:08 2015 -0300 [media] ts2020: Allow stats polling to be suppressed Statistics polling can not be done by lmedm04 driver's implementation of M88RS2000/TS2020 because I2C messages stop the device's demuxer, so allow polling for statistics to be suppressed in the ts2020 driver by setting dont_poll in the ts2020_config struct. Reported-by: Malcolm Priestley Signed-off-by: David Howells cc: Malcolm Priestley Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/ts2020.c | 18 ++++++++++++++---- drivers/media/dvb-frontends/ts2020.h | 3 +++ 2 files changed, 17 insertions(+), 4 deletions(-) commit 0f20baad24f97c3390ae869661408bb3ee12764e Author: David Howells Date: Wed Jun 3 08:34:13 2015 -0300 [media] ts2020: Copy loop_through from the config to the internal data Copy the loop_through setting from the ts2020_config struct to the internal ts2020_priv struct so that it can actually be used. Whilst we're at it, group the bitfields together in the same order in both structs so that the compiler has a good chance to copy them in one go. Signed-off-by: David Howells Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/ts2020.c | 3 ++- drivers/media/dvb-frontends/ts2020.h | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) commit 3366cd5d72c664aa5e447f41ed2f7dac69f6a94e Author: David Howells Date: Tue May 26 12:04:07 2015 -0300 [media] ts2020: Provide DVBv5 API signal strength Provide a DVBv5 API signal strength. This is in units of 0.001 dBm rather than a percentage. >From Antti Palosaari's testing with a signal generator, it appears that the gain calculated according to Montage's specification if negated is a reasonable representation of the signal strength of the generator. To this end: (1) Polled statistic gathering needed to be implemented in the TS2020 driver. This is done in the ts2020_stat_work() function. (2) The calculated gain is placed as the signal strength in the dtv_property_cache associated with the front end with the scale set to FE_SCALE_DECIBEL. (3) The DVBv3 format signal strength then needed to be calculated from the signal strength stored in the dtv_property_cache rather than accessing the value when ts2020_read_signal_strength() is called. Signed-off-by: David Howells Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/ts2020.c | 62 ++++++++++++++++++++++++++++++------ 1 file changed, 53 insertions(+), 9 deletions(-) commit 5c6e3a97e969e978368df83239583771c936efea Author: Krzysztof Kozlowski Date: Mon Jun 8 10:09:48 2015 +0900 power_supply: sysfs: Bring back write to writeable properties The fix for NULL pointer exception related to calling uevent for not finished probe caused to set all writeable properties as non-writeable. This was caused by checking if property is writeable before the initial increase of power supply usage counter and in the same time using wrapper over property_is_writeable(). The wrapper returns ENODEV if the usage counter is still 0. The call trace looked like: device probe: power_supply_register() use_cnt = 0; device_add() create sysfs entries power_supply_attr_is_visible() power_supply_property_is_writeable() if (use_cnt == 0) return -ENODEV; use_cnt++; Replace the usage of wrapper with direct call to property_is_writeable() from driver. This should be safe call during device probe because implementations of this callback just return 0/1 for different properties and they do not access any of the driver's internal data. Fixes: 8e59c7f23410 ("power_supply: Fix NULL pointer dereference during bq27x00_battery probe") Signed-off-by: Krzysztof Kozlowski Signed-off-by: Sebastian Reichel drivers/power/power_supply_sysfs.c | 2 +- include/linux/power_supply.h | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) commit 0f91c9d6bab956fe55c32f143b21cbcc3538f699 Author: David Howells Date: Tue May 26 12:04:00 2015 -0300 [media] TS2020: Calculate tuner gain correctly The TS2020 and TS2022 tuners take an input from the demodulator indicating the AGC setting on that component that is then used to influence the tuner's own gain. This should be taken into account when calculating the gain and signal strength. Further, the existing TS2020 driver miscalculates the signal strength as the result of its calculations can exceed the storage capacity of the 16-bit word used to return it to userspace. To this end: (1) Add a callback function (->get_agc_pwm()) in the ts2020_config struct that the tuner can call to get the AGC PWM value from the demodulator. (2) Modify the TS2020 driver to calculate the gain according to Montage's specification with the adjustment that we produce a negative value and scale it to 0.001dB units (which is what the DVBv5 API will require): (a) Callback to the demodulator to retrieve the AGC PWM value and then turn that into Vagc for incorporation in the calculations. If the callback is unset, assume a Vagc of 0. (b) Calculate the tuner gain from a combination of Vagc and the tuner's RF gain and baseband gain settings. (3) Turn this into a percentage signal strength as per Montage's specification for return to userspace with the DVBv3 API. (4) Provide a function in the M88DS3103 demodulator driver that can be used to get the AGC PWM value on behalf of the tuner. (5) The ts2020_config.get_agc_pwm function should be set by the code that stitches together the drivers for each card. For the DVBSky cards that use the M88DS3103 with the TS2020 or the TS2022, set the get_agc_pwm function to point to m88ds3103_get_agc_pwm. I have tested this with a DVBSky S952 card which has an M88DS3103 and a TS2022. Thanks to Montage for providing access to information about the workings of these parts. Signed-off-by: David Howells Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/m88ds3103.c | 16 ++++ drivers/media/dvb-frontends/m88ds3103.h | 2 + drivers/media/dvb-frontends/ts2020.c | 138 +++++++++++++++++++++++++++----- drivers/media/dvb-frontends/ts2020.h | 5 ++ drivers/media/pci/cx23885/cx23885-dvb.c | 3 + drivers/media/usb/dvb-usb-v2/dvbsky.c | 2 + 6 files changed, 148 insertions(+), 18 deletions(-) commit 76b91be3d360af85f4ad2a27a54268726bee7679 Author: Antti Palosaari Date: Thu Apr 16 22:55:31 2015 -0300 [media] em28xx: PCTV 461e use I2C client for demod and SEC Use I2C client binding for demod and SEC. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/em28xx/em28xx-dvb.c | 136 +++++++++++++++++++++------------- 1 file changed, 83 insertions(+), 53 deletions(-) commit 478932b16052f5ded74685d096ae920cd17d6424 Author: Antti Palosaari Date: Thu Apr 16 22:43:52 2015 -0300 [media] m88ds3103: use regmap for I2C register access Use regmap for I2C register access. Remove own I2C repeated mutex as it should not be needed. I2C adapter lock is already taken when I2C mux adapter is called, no need for double locking. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/Kconfig | 1 + drivers/media/dvb-frontends/m88ds3103.c | 429 +++++++++------------------ drivers/media/dvb-frontends/m88ds3103_priv.h | 5 +- 3 files changed, 145 insertions(+), 290 deletions(-) commit 7978b8a1bc8ae0f2aea1e4f36ef7642a1b86b9c6 Author: Antti Palosaari Date: Thu Apr 16 21:36:00 2015 -0300 [media] m88ds3103: rename variables and correct logging Rename driver state from priv to dev. Use I2C client for correct logging. Use adapter and address from I2C client structure where needed. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/Kconfig | 2 +- drivers/media/dvb-frontends/m88ds3103.c | 538 +++++++++++++-------------- drivers/media/dvb-frontends/m88ds3103.h | 2 +- drivers/media/dvb-frontends/m88ds3103_priv.h | 5 +- 4 files changed, 267 insertions(+), 280 deletions(-) commit 30686bf7f5b3c30831761e188a6e3cb33580fa48 Author: Johannes Berg Date: Tue Jun 2 21:39:54 2015 +0200 mac80211: convert HW flags to unsigned long bitmap As we're running out of hardware capability flags pretty quickly, convert them to use the regular test_bit() style unsigned long bitmaps. This introduces a number of helper functions/macros to set and to test the bits, along with new debugfs code. The occurrences of an explicit __clear_bit() are intentional, the drivers were never supposed to change their supported bits on the fly. We should investigate changing this to be a per-frame flag. Signed-off-by: Johannes Berg drivers/net/wireless/adm8211.c | 8 +- drivers/net/wireless/at76c50x-usb.c | 4 +- drivers/net/wireless/ath/ar5523/ar5523.c | 6 +- drivers/net/wireless/ath/ath10k/mac.c | 34 ++++---- drivers/net/wireless/ath/ath5k/base.c | 12 +-- drivers/net/wireless/ath/ath9k/htc_drv_init.c | 20 ++--- drivers/net/wireless/ath/ath9k/init.c | 24 +++--- drivers/net/wireless/ath/carl9170/fw.c | 2 +- drivers/net/wireless/ath/carl9170/main.c | 20 ++--- drivers/net/wireless/ath/wcn36xx/main.c | 12 +-- drivers/net/wireless/b43/main.c | 4 +- drivers/net/wireless/b43legacy/main.c | 5 +- .../net/wireless/brcm80211/brcmsmac/mac80211_if.c | 7 +- drivers/net/wireless/cw1200/main.c | 16 ++-- drivers/net/wireless/iwlegacy/3945-mac.c | 6 +- drivers/net/wireless/iwlegacy/4965-mac.c | 12 +-- drivers/net/wireless/iwlwifi/dvm/mac80211.c | 26 +++--- drivers/net/wireless/iwlwifi/mvm/mac-ctxt.c | 4 +- drivers/net/wireless/iwlwifi/mvm/mac80211.c | 32 ++++---- drivers/net/wireless/libertas_tf/main.c | 2 +- drivers/net/wireless/mac80211_hwsim.c | 26 +++--- drivers/net/wireless/mediatek/mt7601u/init.c | 10 +-- drivers/net/wireless/mwl8k.c | 9 +- drivers/net/wireless/p54/main.c | 12 +-- drivers/net/wireless/rsi/rsi_91x_mac80211.c | 7 +- drivers/net/wireless/rt2x00/rt2400pci.c | 8 +- drivers/net/wireless/rt2x00/rt2500pci.c | 8 +- drivers/net/wireless/rt2x00/rt2500usb.c | 9 +- drivers/net/wireless/rt2x00/rt2800lib.c | 16 ++-- drivers/net/wireless/rt2x00/rt61pci.c | 9 +- drivers/net/wireless/rt2x00/rt73usb.c | 9 +- drivers/net/wireless/rtl818x/rtl8180/dev.c | 9 +- drivers/net/wireless/rtl818x/rtl8187/dev.c | 6 +- drivers/net/wireless/rtlwifi/base.c | 22 +++-- drivers/net/wireless/ti/wl1251/main.c | 3 +- drivers/net/wireless/ti/wlcore/main.c | 26 +++--- drivers/net/wireless/zd1211rw/zd_mac.c | 8 +- drivers/staging/vt6655/device_main.c | 8 +- drivers/staging/vt6656/main_usb.c | 8 +- include/net/mac80211.h | 79 +++++++++++------- net/mac80211/agg-tx.c | 4 +- net/mac80211/cfg.c | 10 +-- net/mac80211/debugfs.c | 96 ++++++++++++---------- net/mac80211/driver-ops.h | 2 +- net/mac80211/iface.c | 10 +-- net/mac80211/key.c | 4 +- net/mac80211/main.c | 14 ++-- net/mac80211/mlme.c | 63 +++++++------- net/mac80211/offchannel.c | 2 +- net/mac80211/pm.c | 4 +- net/mac80211/rate.c | 6 +- net/mac80211/rc80211_minstrel_ht.c | 2 +- net/mac80211/rx.c | 26 +++--- net/mac80211/scan.c | 10 +-- net/mac80211/sta_info.c | 14 ++-- net/mac80211/status.c | 13 ++- net/mac80211/tdls.c | 2 +- net/mac80211/tx.c | 34 ++++---- net/mac80211/util.c | 6 +- 59 files changed, 447 insertions(+), 423 deletions(-) commit 20b2e3029eef277cd93a46a991004260057e1a9e Author: Zhao Lei Date: Thu Jun 4 20:09:15 2015 +0800 btrfs: Fix lockdep warning of wr_ctx->wr_lock in scrub_free_wr_ctx() lockdep report following warning in test: [25176.843958] ================================= [25176.844519] [ INFO: inconsistent lock state ] [25176.845047] 4.1.0-rc3 #22 Tainted: G W [25176.845591] --------------------------------- [25176.846153] inconsistent {SOFTIRQ-ON-W} -> {IN-SOFTIRQ-W} usage. [25176.846713] fsstress/26661 [HC0[0]:SC1[1]:HE1:SE0] takes: [25176.847246] (&wr_ctx->wr_lock){+.?...}, at: [] scrub_free_ctx+0x2d/0xf0 [btrfs] [25176.847838] {SOFTIRQ-ON-W} state was registered at: [25176.848396] [] __lock_acquire+0x6a0/0xe10 [25176.848955] [] lock_acquire+0xce/0x2c0 [25176.849491] [] mutex_lock_nested+0x7f/0x410 [25176.850029] [] scrub_stripe+0x4df/0x1080 [btrfs] [25176.850575] [] scrub_chunk.isra.19+0x111/0x130 [btrfs] [25176.851110] [] scrub_enumerate_chunks+0x27c/0x510 [btrfs] [25176.851660] [] btrfs_scrub_dev+0x1c7/0x6c0 [btrfs] [25176.852189] [] btrfs_dev_replace_start+0x36e/0x450 [btrfs] [25176.852771] [] btrfs_ioctl+0x1e10/0x2d20 [btrfs] [25176.853315] [] do_vfs_ioctl+0x318/0x570 [25176.853868] [] SyS_ioctl+0x41/0x80 [25176.854406] [] system_call_fastpath+0x12/0x6f [25176.854935] irq event stamp: 51506 [25176.855511] hardirqs last enabled at (51506): [] vprintk_emit+0x225/0x5e0 [25176.856059] hardirqs last disabled at (51505): [] vprintk_emit+0xb7/0x5e0 [25176.856642] softirqs last enabled at (50886): [] __do_softirq+0x363/0x640 [25176.857184] softirqs last disabled at (50949): [] irq_exit+0x10d/0x120 [25176.857746] other info that might help us debug this: [25176.858845] Possible unsafe locking scenario: [25176.859981] CPU0 [25176.860537] ---- [25176.861059] lock(&wr_ctx->wr_lock); [25176.861705] [25176.862272] lock(&wr_ctx->wr_lock); [25176.862881] *** DEADLOCK *** Reason: Above warning is caused by: Interrupt -> bio_endio() -> ... -> scrub_put_ctx() -> scrub_free_ctx() *1 -> ... -> mutex_lock(&wr_ctx->wr_lock); scrub_put_ctx() is allowed to be called in end_bio interrupt, but in code design, it will never call scrub_free_ctx(sctx) in interrupe context(above *1), because btrfs_scrub_dev() get one additional reference of sctx->refs, which makes scrub_free_ctx() only called withine btrfs_scrub_dev(). Now the code runs out of our wish, because free sequence in scrub_pending_bio_dec() have a gap. Current code: -----------------------------------+----------------------------------- scrub_pending_bio_dec() | btrfs_scrub_dev -----------------------------------+----------------------------------- atomic_dec(&sctx->bios_in_flight); | wake_up(&sctx->list_wait); | | scrub_put_ctx() | -> atomic_dec_and_test(&sctx->refs) scrub_put_ctx(sctx); | -> atomic_dec_and_test(&sctx->refs)| -> scrub_free_ctx() | -----------------------------------+----------------------------------- We expected: -----------------------------------+----------------------------------- scrub_pending_bio_dec() | btrfs_scrub_dev -----------------------------------+----------------------------------- atomic_dec(&sctx->bios_in_flight); | wake_up(&sctx->list_wait); | scrub_put_ctx(sctx); | -> atomic_dec_and_test(&sctx->refs)| | scrub_put_ctx() | -> atomic_dec_and_test(&sctx->refs) | -> scrub_free_ctx() -----------------------------------+----------------------------------- Fix: Move scrub_pending_bio_dec() to a workqueue, to avoid this function run in interrupt context. Tested by check tracelog in debug. Changelog v1->v2: Use workqueue instead of adjust function call sequence in v1, because v1 will introduce a bug pointed out by: Filipe David Manana Reported-by: Qu Wenruo Signed-off-by: Zhao Lei Reviewed-by: Filipe Manana Signed-off-by: Chris Mason fs/btrfs/async-thread.c | 1 + fs/btrfs/async-thread.h | 2 ++ fs/btrfs/ctree.h | 1 + fs/btrfs/scrub.c | 26 +++++++++++++++++++++++--- 4 files changed, 27 insertions(+), 3 deletions(-) commit e1d227a42ea2b4664f94212bd1106b9a3413ffb8 Author: Mark Fasheh Date: Mon Jun 8 15:05:25 2015 -0700 btrfs: Handle unaligned length in extent_same The extent-same code rejects requests with an unaligned length. This poses a problem when we want to dedupe the tail extent of files as we skip cloning the portion between i_size and the extent boundary. If we don't clone the entire extent, it won't be deleted. So the combination of these behaviors winds up giving us worst-case dedupe on many files. We can fix this by allowing a length that extents to i_size and internally aligining those to the end of the block. This is what btrfs_ioctl_clone() so we can just copy that check over. Signed-off-by: Mark Fasheh Signed-off-by: Chris Mason fs/btrfs/ioctl.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) commit 070034bdf98544b23a7fcf500618fd31dec06ab2 Author: chandan Date: Tue Jun 9 10:35:11 2015 +0530 Btrfs: btrfs_defrag_file: Fix calculation of max_to_defrag. max_to_defrag represents the number of pages to defrag rather than the last page of the file range to be defragged. Consider a file having 10 4k blocks (i.e. blocks in the range [0 - 9]). If the defrag ioctl was invoked for the block range [3 - 6], then max_to_defrag should actually have the value 4. Instead in the current code we end up setting it to 6. Now, this does not (yet) cause an issue since the first part of the while loop condition in btrfs_defrag_file() (i.e. "i <= last_index") causes the control to flow out of the while loop before any buggy behavior is actually caused. So the patch just makes sure that max_to_defrag ends up having the right value rather than fixing a bug. I did run the xfstests suite to make sure that the code does not regress. Changelog: v1->v2: Provide a much descriptive commit message. Signed-off-by: Chandan Rajendra Signed-off-by: Chris Mason fs/btrfs/ioctl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e4826a5b2430f23ad4ec7823efcd413fce9f2d64 Author: chandan Date: Tue Jun 9 17:38:32 2015 +0530 Btrfs: btrfs_defrag_file: Fix ra_index computation. Read-ahead is done for the pages in the range [ra_index, ra_index + cluster - 1]. So the next read-ahead should be starting from the page at index 'ra_index + cluster' (unless we deemed that the extent at 'ra_index + cluster' as non-defraggable) rather than from the page at index 'ra_index + max_cluster'. This patch fixes this. I did run the xfstests suite to make sure that the code does not regress. Signed-off-by: Chandan Rajendra Signed-off-by: Chris Mason fs/btrfs/ioctl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4617ea3a52cfe8ae407ef406ab999f40a558c369 Author: Filipe Manana Date: Tue Jun 9 17:48:21 2015 +0100 Btrfs: fix necessary chunk tree space calculation when allocating a chunk When allocating a new chunk or removing one we need to update num_devs device items and insert or remove a chunk item in the chunk tree, so in the worst case the space needed in the chunk space_info is: btrfs_calc_trunc_metadata_size(chunk_root, num_devs) + btrfs_calc_trans_metadata_size(chunk_root, 1) That is, in the worst case we need to cow num_devs paths and cow 1 other path that can result in splitting every node and leaf, and each path consisting of BTRFS_MAX_LEVEL - 1 nodes and 1 leaf. We were requiring some additional chunk_root->nodesize * BTRFS_MAX_LEVEL * num_devs bytes, which were unnecessary since updating the existing device items does not result in splitting the nodes and leaf since after updating them they remain with the same size. Signed-off-by: Filipe Manana Signed-off-by: Chris Mason fs/btrfs/ctree.h | 3 +-- fs/btrfs/extent-tree.c | 14 +++++--------- fs/btrfs/volumes.c | 2 +- 3 files changed, 7 insertions(+), 12 deletions(-) commit 7558c8bc17481c1f856e009af8503ab40fec348a Author: Filipe Manana Date: Fri Apr 17 17:08:37 2015 +0100 Btrfs: don't attach unnecessary extents to transaction on fsync We don't need to attach ordered extents that have completed to the current transaction. Doing so only makes us hold memory for longer than necessary and delaying the iput of the inode until the transaction is committed (for each created ordered extent we do an igrab and then schedule an asynchronous iput when the ordered extent's reference count drops to 0), preventing the inode from being evictable until the transaction commits. Signed-off-by: Filipe Manana Signed-off-by: Chris Mason fs/btrfs/ordered-data.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) commit b659ef027792219b590d67a2baf1643a93727d29 Author: Filipe Manana Date: Tue Mar 31 14:16:52 2015 +0100 Btrfs: avoid syncing log in the fast fsync path when not necessary Commit 3a8b36f37806 ("Btrfs: fix data loss in the fast fsync path") added a performance regression for that causes an unnecessary sync of the log trees (fs/subvol and root log trees) when 2 consecutive fsyncs are done against a file, without no writes or any metadata updates to the inode in between them and if a transaction is committed before the second fsync is called. Huang Ying reported this to lkml (https://lkml.org/lkml/2015/3/18/99) after a test sysbench test that measured a -62% decrease of file io requests per second for that tests' workload. The test is: echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor echo performance > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor echo performance > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor echo performance > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor mkfs -t btrfs /dev/sda2 mount -t btrfs /dev/sda2 /fs/sda2 cd /fs/sda2 for ((i = 0; i < 1024; i++)); do fallocate -l 67108864 testfile.$i; done sysbench --test=fileio --max-requests=0 --num-threads=4 --max-time=600 \ --file-test-mode=rndwr --file-total-size=68719476736 --file-io-mode=sync \ --file-num=1024 run A test on kvm guest, running a debug kernel gave me the following results: Without 3a8b36f378060d: 16.01 reqs/sec With 3a8b36f378060d: 3.39 reqs/sec With 3a8b36f378060d and this patch: 16.04 reqs/sec Reported-by: Huang Ying Tested-by: Huang, Ying Signed-off-by: Filipe Manana Signed-off-by: Chris Mason fs/btrfs/file.c | 9 ++++++--- fs/btrfs/ordered-data.c | 14 ++++++++++++++ fs/btrfs/ordered-data.h | 3 +++ 3 files changed, 23 insertions(+), 3 deletions(-) commit 1ab818b137e198e4d06e987a4b089411f2e39d40 Merge: 6ca0709 8b191a6 Author: Chris Mason Date: Wed Jun 3 19:44:59 2015 -0700 Merge branch 'send_fixes_4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/fdmanana/linux into for-linus-4.2 commit 0bb979472a7401022109e81dd89d777adea58710 Author: Jens Axboe Date: Wed Jun 10 08:01:20 2015 -0600 cfq-iosched: fix the setting of IOPS mode on SSDs A previous commit wanted to make CFQ default to IOPS mode on non-rotational storage, however it did so when the queue was initialized and the non-rotational flag is only set later on in the probe. Add an elevator hook that gets called off the add_disk() path, at that point we know that feature probing has finished, and we can reliably check for the various flags that drivers can set. Fixes: 41c0126b ("block: Make CFQ default to IOPS mode on SSDs") Tested-by: Romain Francoise Signed-off-by: Jens Axboe block/cfq-iosched.c | 15 ++++++++++++++- block/elevator.c | 2 ++ include/linux/elevator.h | 2 ++ 3 files changed, 18 insertions(+), 1 deletion(-) commit 80868c8e5c04bb725e411b078881b65ebbecd142 Author: David Howells Date: Thu Apr 2 08:03:11 2015 -0300 [media] ts2020: Add a comment about lifetime of on-stack pdata in ts2020_attach() ts2020_attach() allocates a variable pdata on the stack and then passes a pointer to it to i2c_new_device() which stashes the pointer in persistent structures. Add a comment to the effect that this isn't actually an error because the contents of the variable are only used in ts2020_probe() and this is only called ts2020_attach()'s stack frame exists. Signed-off-by: David Howells Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/ts2020.c | 2 ++ 1 file changed, 2 insertions(+) commit f158cbceb165f318a89a8bb831dc3ea27823b3f8 Author: Antti Palosaari Date: Fri Mar 27 18:14:25 2015 -0300 [media] ts2020: convert to regmap I2C API Use regmap to cover I2C register access. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/Kconfig | 3 +- drivers/media/dvb-frontends/ts2020.c | 260 ++++++++++++++++------------------- 2 files changed, 124 insertions(+), 139 deletions(-) commit e6ad9ce3e96bb446c6cf0e83a43888e7f30b84ad Author: Antti Palosaari Date: Thu Mar 26 20:20:42 2015 -0300 [media] ts2020: register I2C driver from legacy media attach Register driver using I2C bindings internally when legacy media attach is used. That is done by registering driver using I2C binding from legacy attach. That way we can get valid I2C client, which is needed for proper dev_() logging and regmap for example even legacy binding is used. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/ts2020.c | 73 ++++++++++++------------------------ drivers/media/dvb-frontends/ts2020.h | 7 +++- 2 files changed, 30 insertions(+), 50 deletions(-) commit 2ca58f45cc986952dc2b2942fb170d9d7644735a Author: Antti Palosaari Date: Thu Mar 26 10:49:17 2015 -0300 [media] ts2020: improve filter limit calc * We don't need calculate channel bandwidth from symbol rate as it is calculated by DVB core. * Use clamp() to force upper/lower limit of filter 3dB frequency. Upper limit should never exceeded 40MHz (80MHz BW) in any case, though... Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/ts2020.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) commit af9d52555304979c7a3ce254e026bc76bd878f74 Author: Antti Palosaari Date: Thu Mar 26 10:04:09 2015 -0300 [media] ts2020: re-implement PLL calculations Used frequency synthesizer is simple Integer-N PLL, with configurable reference divider, output divider and of course N itself. Old calculations were working fine, but not so easy to understand. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/ts2020.c | 76 +++++++++++++++++++++--------------- 1 file changed, 44 insertions(+), 32 deletions(-) commit b97aab014c6ba6133df1e26bd20c1ad7f50a5bff Author: Alex Deucher Date: Tue Jun 9 17:46:30 2015 -0400 drm/amdgpu/iceland: don't call smu_init on resume smu_init allocates buffers and initializes them. It does not touch the hw. There is no need to do it again on resume. It should really be part of sw_init (and smu_fini should be part of sw_fini), but we need the firmware sizes from the other IPs for firmware loading so we have to wait until sw init is done for all other IPs. Reviewed-by: Sonny Jiang Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/iceland_dpm.c | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) commit aaf4ee3c0233893ac9586ede9cdcaa4a77ccb475 Author: Alex Deucher Date: Tue Jun 9 17:42:10 2015 -0400 drm/amdgpu/tonga: don't call smu_init on resume smu_init allocates buffers and initializes them. It does not touch the hw. There is no need to do it again on resume. It should really be part of sw_init (and smu_fini should be part of sw_fini), but we need the firmware sizes from the other IPs for firmware loading so we have to wait until sw init is done for all other IPs. Reviewed-by: Sonny Jiang Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/tonga_dpm.c | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) commit 05188312e2ea8991c75bc4ae947d4dc1e7a3bb17 Author: Alex Deucher Date: Tue Jun 9 17:32:53 2015 -0400 drm/amdgpu/cz: don't call smu_init on resume smu_init allocates buffers and initializes them. It does not touch the hw. There is no need to do it again on resume. It should really be part of sw_init (and smu_fini should be part of sw_fini), but we need the firmware sizes from the other IPs for firmware loading so we have to wait until sw init is done for all other IPs. Reviewed-by: Sonny Jiang Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/cz_dpm.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) commit 2b528fff0905497c96566d671d47f2bbf3ae295c Author: Hanjun Guo Date: Wed Jun 10 17:12:07 2015 +0800 GPIO / ACPI: export acpi_gpiochip_request(free)_interrupts for module use acpi_gpiochip_request(free)_interrupts can be used for modules, so export them. This also fixs a compile error when xgene-sb configured as kernel module. Fixes: 733cf014f020 "gpio: xgene: add ACPI support for APM X-Gene GPIO standby driver" Reviewed-by: Mark Brown Signed-off-by: Hanjun Guo drivers/gpio/gpiolib-acpi.c | 2 ++ 1 file changed, 2 insertions(+) commit d8453403948cbe2bcfce810d82e1afcc501c3c71 Author: Feng Kan Date: Tue Jun 2 16:43:09 2015 -0700 i2c: busses: xgene-slimpro: fix incorrect __init declation for probe Fix section mismatch error during kernel build for xgene_slimpro_i2c_probe function. It was incorrectly defined with __init declaration. Signed-off-by: Feng Kan Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-xgene-slimpro.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6a00a09e49965d7414bacfe24adfc3f59c7d2647 Author: Alex Deucher Date: Tue Jun 9 14:33:03 2015 -0400 drm/amdgpu: update to latest gfx8 golden register settings Reviewed-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 7 +++++++ 1 file changed, 7 insertions(+) commit c61bf649270b28526704c2101d1ebd39f51d3f0c Author: Alex Deucher Date: Tue Jun 9 14:06:18 2015 -0400 drm/amdgpu: whitespace cleanup in gmc8 golden regs Reviewed-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5732a94f18cd69331036ab776bdf5e475702e2b4 Author: Alex Deucher Date: Tue Jun 9 13:51:25 2015 -0400 drm/admgpu: move XDMA golden registers to dce code Already moved other display registers. Reviewed-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/dce_v10_0.c | 9 +++++++++ drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | 9 +++++++++ drivers/gpu/drm/amd/amdgpu/vi.c | 4 ---- 3 files changed, 18 insertions(+), 4 deletions(-) commit 454fc95e84a20024eb5d6c0fbc5ab648bae2a56f Author: Alex Deucher Date: Tue Jun 9 09:58:23 2015 -0400 drm/amdgpu: fix the build on big endian Some leftover copy and pastes from radeon that never got updated. Reviewed-by: Christian König Reported-by: Stephen Rothwell Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/cik_sdma.c | 3 ++- drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) commit 41c8d4520461b5134260f3fb9bb56c8455bad610 Author: Alexander Sverdlin Date: Tue Jun 9 13:10:10 2015 +0200 i2c: davinci: Avoid sending to own address Sending a message to own address locks the controller up in very bizarre state, it behaves as slave even if MDR register clearly states master. The controller remains in this state until reset. To avoid unnecessary timeouts simply avoid sending to own address. The controller cannot do this any way. Also, do not enable AAS IRQ, as the slave mode is not supported by the driver and the only possibility to trigger this IRQ is to send to own address. Signed-off-by: Alexander Sverdlin Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-davinci.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) commit 72a956c556b68aa2a9c2c64f5a7b9e50f7bf67e1 Author: Alexander Sverdlin Date: Tue Jun 9 12:58:29 2015 +0200 i2c: davinci: Refactor i2c_davinci_wait_bus_not_busy() There are several problems in the function: - "to_cnt" variable does nothing - schedule_timeout() call without setting current state does nothing - "allow_sleep" parameter is not really used Refactor the function so that it really tries to wait. In case of timeout try to recover the bus. Signed-off-by: Alexander Sverdlin Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-davinci.c | 42 ++++++++++++++++++---------------------- 1 file changed, 19 insertions(+), 23 deletions(-) commit 675da0ddd6fefa5500488a5a3d500aaaefa95e5d Author: Christian König Date: Tue Jun 9 15:54:37 2015 +0200 drm/amdgpu: cleanup UAPI comments No functional change. Signed-off-by: Christian König Reviewed-by: Alex Deucher include/uapi/drm/amdgpu_drm.h | 119 +++++++++++++++++++++++++++--------------- 1 file changed, 78 insertions(+), 41 deletions(-) commit 692a59e696afe1a4e777d0e4359325336ab0ad89 Author: Christian König Date: Tue Jun 9 15:21:35 2015 +0200 drm/amdgpu: remove AMDGPU_CTX_OP_STATE_RUNNING Not used. Signed-off-by: Christian König Reviewed-by: Alex Deucher include/uapi/drm/amdgpu_drm.h | 2 -- 1 file changed, 2 deletions(-) commit 147dbfbc54e460682eba3494370ea33e9fd5e9b0 Author: David Zhang Date: Thu Jun 11 02:28:56 2015 +0800 drm/amdgpu: remove the VI hardware semaphore in ring sync Signed-off-by: David Zhang Reviewed-by: Christian König drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit dd1aa2524bc55345ede0b13853c54e1b0be22b9f Author: Kamal Dasu Date: Tue Jun 9 15:36:20 2015 -0400 i2c: brcmstb: Add Broadcom settop SoC i2c controller driver Adding support for i2c controller driver for Broadcom settop SoCs. Signed-off-by: Kamal Dasu [wsa: removed superfluous owner in platform_driver] Signed-off-by: Wolfram Sang .../devicetree/bindings/i2c/i2c-brcmstb.txt | 28 + drivers/i2c/busses/Kconfig | 10 + drivers/i2c/busses/Makefile | 1 + drivers/i2c/busses/i2c-brcmstb.c | 694 +++++++++++++++++++++ 4 files changed, 733 insertions(+) commit 95a86e43183eeeef72105372074f4ef127b27807 Author: Hans Verkuil Date: Wed Jun 10 02:45:45 2015 -0300 [media] cobalt: fix 64-bit division There are still some 64-bit division problems in the cobalt code. Replace it by div_u64. [mchehab@osg.samsung.com: folded with an additional diff sent by Hans via a priv e-mail] Signed-off-by: Hans Verkuil Reported-by: Mauro Carvalho Chehab Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/cobalt/cobalt-cpld.c | 14 +++++++------- drivers/media/pci/cobalt/cobalt-v4l2.c | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) commit 5e3cfc6c4e37ec7040fa235f42586b3312c0ebf2 Author: Cyrille Pitchen Date: Tue Jun 9 18:22:19 2015 +0200 i2c: at91: add support to FIFOs When FIFOs are available and enabled, the driver now configures the Atmel eXtended DMA Controller to perform word accesses instead of byte accesses when possible. The actual access width depends on the size of the buffer to transmit. To enable FIFO support the "atmel,fifo-size" property must be set properly in the I2C controller node of the device tree. Signed-off-by: Cyrille Pitchen Acked-by: Ludovic Desroches Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-at91.c | 147 +++++++++++++++++++++++++++++++++++++----- 1 file changed, 130 insertions(+), 17 deletions(-) commit 6ce461ea504b0c5eb011b1acccd38fdc28e812ad Author: Cyrille Pitchen Date: Tue Jun 9 18:22:18 2015 +0200 i2c: at91: print hardware version The probe() function now prints the hardware version of the I2C controller. Signed-off-by: Cyrille Pitchen [wsa: s/version/hw version/] for clarity] Acked-by: Ludovic Desroches Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-at91.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 0ef6f3213dac48bbc71c98b5a2752db556f3e649 Author: Cyrille Pitchen Date: Tue Jun 9 18:22:17 2015 +0200 i2c: at91: add support for new alternative command mode The alternative command mode was introduced to simplify the transmission of STOP conditions and to solve timing and latency issues around them. This mode relies on a new register, the Alternative Command Register, which must be set at the same time as the Master Mode Register. This new register was designed to allow simple setup of basic combined transactions built from up to two unitary transactions. Indeed, the ACR is split into two areas, which describe one unitary transaction each. Each area is filled with Data Length 8bit counter, a Direction and a PEC Request bit. The PEC bit is only used in SMBus mode and is not supported by this driver yet. Also when using alternative command mode, the MREAD bit from the Master Mode Register is ignored. Instead the Direction bits from ACR are used to setup the direction, read or write, of each unitary transaction. Finally the 8bit counters must filled with the data length of their respective transaction. Then if only one transaction is to be used, the data length of the second one must be set to zero. At the moment, this driver uses only the first transaction. In addition to MMR and ACR, the Control Register also need to be written to enable the alternative command mode. That's the purpose of its ACMEN bit, which stands for Alternative Command Mode Enable. Note that the alternative command mode is compatible with the use of the Internal Address Register. So combined transactions for eeprom read are actually implemented with the Internal Address Register. This register is written with up to 3 bytes, which are the internal address sent to the slave through the first write transaction. Then the first area of the ACR describe the write transaction to follow, which carries the data to be read from the eeprom. The second area of the ACR is not used so its Data Length 8bit counter is cleared. For each byte sent or received by the device, the Data Length 8bit counter is decremented. When it reaches 0, a STOP condition is automatically sent. Signed-off-by: Cyrille Pitchen Acked-by: Ludovic Desroches Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-at91.c | 121 +++++++++++++++++++++++++++++++++++------- 1 file changed, 101 insertions(+), 20 deletions(-) commit 0ba82c955749937ea9dc09b62b8414eb4f0755e7 Author: Cyrille Pitchen Date: Tue Jun 9 18:22:16 2015 +0200 i2c: at91: update documentation for DT bindings add a new value "atmel,sama5d2-i2c" for the "compatible" property. add a new optional property "atmel,fifo-size" to enable FIFO support when available. add missing optional properties "dmas" and "dma-names". Signed-off-by: Cyrille Pitchen Acked-by: Ludovic Desroches Signed-off-by: Wolfram Sang Documentation/devicetree/bindings/i2c/i2c-at91.txt | 30 ++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) commit e84cf8f03f57c15c0260d88366d064a03b5e383a Author: Cyrille Pitchen Date: Tue Jun 9 18:22:15 2015 +0200 i2c: at91: use BIT() macro to define register bits This patch just fixes typo before applying later patches which will use register bits with index above 16. Signed-off-by: Cyrille Pitchen Acked-by: Ludovic Desroches Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-at91.c | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) commit 93563a6a71bb69dd324fc7354c60fb05f84aae6b Author: Cyrille Pitchen Date: Tue Jun 9 18:22:14 2015 +0200 i2c: at91: fix a race condition when using the DMA controller For TX transactions, the TXCOMP bit in the Status Register is cleared when the first data is written into the Transmit Holding Register. In the lines from at91_do_twi_transfer(): at91_twi_write_data_dma(dev); at91_twi_write(dev, AT91_TWI_IER, AT91_TWI_TXCOMP); the TXCOMP interrupt may be enabled before the DMA controller has actually started to write into the THR. In such a case, the TXCOMP bit is still set into the Status Register so the interrupt is triggered immediately. The driver understands that a transaction completion has occurred but this transaction hasn't started yet. Hence the TXCOMP interrupt is no longer enabled by at91_do_twi_transfer() but instead by at91_twi_write_data_dma_callback(). Also, the TXCOMP bit in the Status Register in not a clear on read flag but a snapshot of the transmission state at the time the Status Register is read. When a NACK error is dectected by the I2C controller, the TXCOMP, NACK and TXRDY bits are set together to 1 in the SR. If enabled, the TXCOMP interrupt is triggered at the same time. Also setting the TXRDY to 1 triggers the DMA controller to write the next data into the THR. Such a write resets the TXCOMP bit to 0 in the SR. So depending on when the interrupt handler reads the SR, it may fail to detect the NACK error if it relies on the TXCOMP bit. The NACK bit and its interrupt should be used instead. For RX transactions, the TXCOMP bit in the Status Register is cleared when the START bit is set into the Control Register. However to unify the management of the TXCOMP bit when the DMA controller is used, the TXCOMP interrupt is now enabled by the DMA callbacks for both TX and RX transfers. Signed-off-by: Cyrille Pitchen Cc: stable@vger.kernel.org #3.10 and later Acked-by: Ludovic Desroches Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-at91.c | 70 ++++++++++++++++++++++++++++++++----------- 1 file changed, 53 insertions(+), 17 deletions(-) commit 323de9efdf3e75d1dfb48003a52e59d6d9d4c7a5 Author: Masahiro Yamada Date: Tue Jun 9 13:01:16 2015 +0900 pinctrl: make pinctrl_register() return proper error code Currently, pinctrl_register() just returns NULL on error, so the callers can not know the exact reason of the failure. Some of the pinctrl drivers return -EINVAL, some -ENODEV, and some -ENOMEM on error of pinctrl_register(), although the error code might be different from the real cause of the error. This commit reworks pinctrl_register() to return the appropriate error code and modifies all of the pinctrl drivers to use IS_ERR() for the error checking and PTR_ERR() for getting the error code. Signed-off-by: Masahiro Yamada Acked-by: Patrice Chotard Acked-by: Thierry Reding Acked-by: Heiko Stuebner Tested-by: Mika Westerberg Acked-by: Mika Westerberg Acked-by: Lee Jones Acked-by: Sören Brinkmann Acked-by: Laurent Pinchart Acked-by: Ray Jui Acked-by: Antoine Tenart Acked-by: Hongzhou Yang Acked-by: Wei Chen Signed-off-by: Linus Walleij drivers/pinctrl/bcm/pinctrl-bcm281xx.c | 4 ++-- drivers/pinctrl/bcm/pinctrl-bcm2835.c | 4 ++-- drivers/pinctrl/bcm/pinctrl-cygnus-gpio.c | 4 ++-- drivers/pinctrl/bcm/pinctrl-cygnus-mux.c | 4 ++-- drivers/pinctrl/berlin/berlin.c | 4 ++-- drivers/pinctrl/core.c | 17 ++++++++++------- drivers/pinctrl/freescale/pinctrl-imx.c | 4 ++-- drivers/pinctrl/freescale/pinctrl-imx1-core.c | 4 ++-- drivers/pinctrl/freescale/pinctrl-mxs.c | 4 ++-- drivers/pinctrl/intel/pinctrl-cherryview.c | 4 ++-- drivers/pinctrl/intel/pinctrl-intel.c | 4 ++-- drivers/pinctrl/mediatek/pinctrl-mtk-common.c | 4 ++-- drivers/pinctrl/meson/pinctrl-meson.c | 4 ++-- drivers/pinctrl/mvebu/pinctrl-mvebu.c | 4 ++-- drivers/pinctrl/nomadik/pinctrl-abx500.c | 4 ++-- drivers/pinctrl/nomadik/pinctrl-nomadik.c | 4 ++-- drivers/pinctrl/pinctrl-adi2.c | 4 ++-- drivers/pinctrl/pinctrl-amd.c | 4 ++-- drivers/pinctrl/pinctrl-as3722.c | 4 ++-- drivers/pinctrl/pinctrl-at91.c | 4 ++-- drivers/pinctrl/pinctrl-lantiq.c | 4 ++-- drivers/pinctrl/pinctrl-lpc18xx.c | 4 ++-- drivers/pinctrl/pinctrl-palmas.c | 4 ++-- drivers/pinctrl/pinctrl-pistachio.c | 4 ++-- drivers/pinctrl/pinctrl-rockchip.c | 4 ++-- drivers/pinctrl/pinctrl-single.c | 4 ++-- drivers/pinctrl/pinctrl-st.c | 4 ++-- drivers/pinctrl/pinctrl-tb10x.c | 4 ++-- drivers/pinctrl/pinctrl-tegra-xusb.c | 4 ++-- drivers/pinctrl/pinctrl-tegra.c | 4 ++-- drivers/pinctrl/pinctrl-tz1090-pdc.c | 4 ++-- drivers/pinctrl/pinctrl-tz1090.c | 4 ++-- drivers/pinctrl/pinctrl-u300.c | 4 ++-- drivers/pinctrl/pinctrl-zynq.c | 4 ++-- drivers/pinctrl/qcom/pinctrl-msm.c | 4 ++-- drivers/pinctrl/qcom/pinctrl-spmi-gpio.c | 4 ++-- drivers/pinctrl/qcom/pinctrl-spmi-mpp.c | 4 ++-- drivers/pinctrl/samsung/pinctrl-exynos5440.c | 4 ++-- drivers/pinctrl/samsung/pinctrl-samsung.c | 4 ++-- drivers/pinctrl/sh-pfc/pinctrl.c | 4 ++-- drivers/pinctrl/sirf/pinctrl-atlas7.c | 4 ++-- drivers/pinctrl/sirf/pinctrl-sirf.c | 4 ++-- drivers/pinctrl/spear/pinctrl-spear.c | 4 ++-- drivers/pinctrl/sunxi/pinctrl-sunxi.c | 4 ++-- drivers/pinctrl/vt8500/pinctrl-wmt.c | 4 ++-- 45 files changed, 98 insertions(+), 95 deletions(-) commit e73ac02dc132dcef1add62a1fac3e77a7ce17371 Author: Thomas Petazzoni Date: Tue Jun 9 18:47:26 2015 +0200 pinctrl: mvebu: armada-39x: add support for Armada 395 variant The Armada 39x SoC family has grown a new variant, the Armada 395, which sits between the Armada 390 and Armada 398 in terms of features. This commit adds support for this additional variant to the Armada 39x pinctrl driver. Signed-off-by: Thomas Petazzoni Signed-off-by: Linus Walleij .../pinctrl/marvell,armada-39x-pinctrl.txt | 30 ++++++++-------- drivers/pinctrl/mvebu/pinctrl-armada-39x.c | 40 +++++++++++++--------- 2 files changed, 39 insertions(+), 31 deletions(-) commit 6afc0c0f5bcffd3d0c47d464b02030d54aac91bf Author: Thomas Petazzoni Date: Tue Jun 9 18:47:25 2015 +0200 pinctrl: mvebu: armada-39x: add missing SATA functions The latest version of the Armada 39x datasheet documents several new SATA related functions on various MPP pins. This commit adds the description of these new functions to the Armada 39x pinctrl driver as well as to its DT binding documentation. Signed-off-by: Thomas Petazzoni Signed-off-by: Linus Walleij .../bindings/pinctrl/marvell,armada-39x-pinctrl.txt | 14 +++++++++----- drivers/pinctrl/mvebu/pinctrl-armada-39x.c | 9 +++++++++ 2 files changed, 18 insertions(+), 5 deletions(-) commit c0adb877a2491669c58afbf79e1b921d8e2b79b9 Author: Thomas Petazzoni Date: Tue Jun 9 18:47:24 2015 +0200 pinctrl: mvebu: armada-39x: add missing PCIe functions The latest version of the Armada 39x datasheet documents several new PCIe related functions on various MPP pins. This commit adds the description of these new functions to the Armada 39x pinctrl driver as well as to its DT binding documentation. Signed-off-by: Thomas Petazzoni Signed-off-by: Linus Walleij .../devicetree/bindings/pinctrl/marvell,armada-39x-pinctrl.txt | 4 ++-- drivers/pinctrl/mvebu/pinctrl-armada-39x.c | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) commit f9dbbe011cce41905db77b97e38928b30b1792d5 Author: Thomas Petazzoni Date: Tue Jun 9 18:47:23 2015 +0200 pinctrl: mvebu: armada-38x: add ptp functions The latest version of the Armada 38x datasheet documents several new PTP related functions on various MPP pins. This commit adds the description of these new functions to the Armada 38x pinctrl driver as well as to its DT binding documentation. Signed-off-by: Thomas Petazzoni Signed-off-by: Linus Walleij .../devicetree/bindings/pinctrl/marvell,armada-38x-pinctrl.txt | 6 +++--- drivers/pinctrl/mvebu/pinctrl-armada-38x.c | 9 ++++++--- 2 files changed, 9 insertions(+), 6 deletions(-) commit f7ad5b29ce7272da9589aabfa4d94502881b9556 Author: Thomas Petazzoni Date: Tue Jun 9 18:47:22 2015 +0200 pinctrl: mvebu: armada-38x: add ua1 functions The latest version of the Armada 38x datasheet documents several new UART1 related functions on various MPP pins. This commit adds the description of these new functions to the Armada 38x pinctrl driver as well as to its DT binding documentation. Signed-off-by: Thomas Petazzoni Signed-off-by: Linus Walleij .../bindings/pinctrl/marvell,armada-38x-pinctrl.txt | 12 ++++++------ drivers/pinctrl/mvebu/pinctrl-armada-38x.c | 18 ++++++++++++------ 2 files changed, 18 insertions(+), 12 deletions(-) commit 9ce28fccb0e69e85e0432e4f416f4d1afebb4dba Author: Thomas Petazzoni Date: Tue Jun 9 18:47:21 2015 +0200 pinctrl: mvebu: armada-38x: add nand functions The latest version of the Armada 38x datasheet documents several new NAND related functions on various MPP pins. This commit adds the description of these new functions to the Armada 38x pinctrl driver as well as to its DT binding documentation. Signed-off-by: Thomas Petazzoni Signed-off-by: Linus Walleij .../devicetree/bindings/pinctrl/marvell,armada-38x-pinctrl.txt | 4 ++-- drivers/pinctrl/mvebu/pinctrl-armada-38x.c | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) commit 503cfd9f8adc1cb886f06b700c2edc794fe14d50 Author: Thomas Petazzoni Date: Tue Jun 9 18:47:20 2015 +0200 pinctrl: mvebu: armada-38x: add sata functions The latest version of the Armada 38x datasheet documents several new SATA related functions on various MPP pins. This commit adds the description of these new functions to the Armada 38x pinctrl driver as well as to its DT binding documentation. Signed-off-by: Thomas Petazzoni Signed-off-by: Linus Walleij .../devicetree/bindings/pinctrl/marvell,armada-38x-pinctrl.txt | 4 ++-- drivers/pinctrl/mvebu/pinctrl-armada-38x.c | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) commit b19bf379767943f0c094490c52f3d75f9397b503 Author: Thomas Petazzoni Date: Tue Jun 9 18:47:19 2015 +0200 pinctrl: mvebu: armada-xp: add dram functions The latest Armada XP datasheet documents several new DRAM related functions on various MPPs. This commit adds the description of these new functions in the Armada XP pinctrl driver and its DT binding documentation. Signed-off-by: Thomas Petazzoni Signed-off-by: Linus Walleij .../devicetree/bindings/pinctrl/marvell,armada-xp-pinctrl.txt | 6 +++--- drivers/pinctrl/mvebu/pinctrl-armada-xp.c | 7 +++++-- 2 files changed, 8 insertions(+), 5 deletions(-) commit fb53b61d77684b268e71246a3042a5f28ed14eb6 Author: Thomas Petazzoni Date: Tue Jun 9 18:47:18 2015 +0200 pinctrl: mvebu: armada-xp: add nand rb function The latest version of the Armada XP datasheet documents a new NAND-related MPP function on MPP48, for which this commit adds support. Signed-off-by: Thomas Petazzoni Signed-off-by: Linus Walleij .../devicetree/bindings/pinctrl/marvell,armada-xp-pinctrl.txt | 2 +- drivers/pinctrl/mvebu/pinctrl-armada-xp.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) commit 88b355f1e4e517b636bc5c4b2fb53ec55ccc578d Author: Thomas Petazzoni Date: Tue Jun 9 18:47:17 2015 +0200 pinctrl: mvebu: armada-xp: add spi1 function The latest Armada XP datasheet documents that some of the MPP pins can be used to access the second SPI bus, labelled 'spi1'. This commit adds the corresponding pins in the pinctrl driver and its DT binding documentation. Signed-off-by: Thomas Petazzoni Signed-off-by: Linus Walleij .../bindings/pinctrl/marvell,armada-xp-pinctrl.txt | 26 +++++++++++++--------- drivers/pinctrl/mvebu/pinctrl-armada-xp.c | 25 +++++++++++++++------ 2 files changed, 33 insertions(+), 18 deletions(-) commit 691a82161b88056fa1e52145446bc22197665782 Author: Thomas Petazzoni Date: Tue Jun 9 18:47:16 2015 +0200 pinctrl: mvebu: armada-39x: normalize ref clock naming This commit normalizes the subnames of the reference clock MPP pins in the Armada 39x pinctrl driver to match with the name used on other SoCs. Since only the subnames are changed, DT backward compatibility is not affected. Signed-off-by: Thomas Petazzoni Signed-off-by: Linus Walleij drivers/pinctrl/mvebu/pinctrl-armada-39x.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 50a7d13d241081838c6cd12b1fdabc36838f9b4c Author: Thomas Petazzoni Date: Tue Jun 9 18:47:15 2015 +0200 pinctrl: mvebu: armada-xp: rename spi to spi0 After updating to the latest Armada XP datasheet, we discovered that there is a second SPI bus accessible from the MPP pins, called 'spi1'. In order to be consistent with other SoCs having two SPI busses, this commit renames the functions of the first SPI bus to 'spi0' instead of just 'spi'. This commit obviously breaks the DT backward compatibility for the people using the "spi" function name in their Device Tree. Signed-off-by: Thomas Petazzoni Signed-off-by: Linus Walleij .../bindings/pinctrl/marvell,armada-xp-pinctrl.txt | 22 +++++++++++----------- drivers/pinctrl/mvebu/pinctrl-armada-xp.c | 22 +++++++++++----------- 2 files changed, 22 insertions(+), 22 deletions(-) commit 9e05db29e2ac7f1fec1a4d15db8c419634290535 Author: Thomas Petazzoni Date: Tue Jun 9 18:47:14 2015 +0200 pinctrl: mvebu: armada-370: align spi1 clock pin naming Across all SoCs, even on Armada 370 for SPI0, the clock pin uses the 'sck' subname and not 'clk', so this commit adjusts the code and documentation accordingly. Since this commit only changes the subname, DT backward compatibility is not affected. Signed-off-by: Thomas Petazzoni Signed-off-by: Linus Walleij .../devicetree/bindings/pinctrl/marvell,armada-370-pinctrl.txt | 2 +- drivers/pinctrl/mvebu/pinctrl-armada-370.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit bfacb5669474e3e17d732eafd2f6965a7ad728ff Author: Thomas Petazzoni Date: Tue Jun 9 18:47:13 2015 +0200 pinctrl: mvebu: armada-370: align VDD cpu-pd pin naming with datasheet For consistency with the datasheet, this commit renames the VDD function of the MPP4 pin. While this changes the DT compatibility, it is not considered to be a problem since this pin is unlikely to be used for anything but debugging purposes. Signed-off-by: Thomas Petazzoni Signed-off-by: Linus Walleij .../devicetree/bindings/pinctrl/marvell,armada-370-pinctrl.txt | 2 +- drivers/pinctrl/mvebu/pinctrl-armada-370.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit f1b2db90d0f1bd5227a48ffc479bbd65e97e4327 Author: Thomas Petazzoni Date: Tue Jun 9 18:47:12 2015 +0200 pinctrl: mvebu: armada-xp: fix binding documentation of ge1 pins There was an off-by-one in the documentation of the ge1(txd[0-3]) pins, which is fixed by this commit. Since the driver was correct, and the subnames are anyway not used in the DT binding itself, there is no need to push this documentation fix for stable. Signed-off-by: Thomas Petazzoni Signed-off-by: Linus Walleij .../devicetree/bindings/pinctrl/marvell,armada-xp-pinctrl.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit a361cbc575d6ea778fe3fa6f13246bf34d995519 Author: Thomas Petazzoni Date: Tue Jun 9 18:47:11 2015 +0200 pinctrl: mvebu: armada-{370,xp}: normalize ethernet txclkout pins This commit normalizes the naming of the Ethernet txclkout pin to be the same accross Marvell SoCs. It is worth mentioning that the DT binding documentation of the Armada XP was wrong for MPP12: it said the function was ge1(txd0), while it is in fact ge1(txclkout). It is however not really a fix worth sending to stable since it does not change the behavior, and the driver itself was correct. Since only the subnames are changed, DT backward compatibility is not affected. Signed-off-by: Thomas Petazzoni Signed-off-by: Linus Walleij .../devicetree/bindings/pinctrl/marvell,armada-370-pinctrl.txt | 2 +- .../devicetree/bindings/pinctrl/marvell,armada-xp-pinctrl.txt | 4 ++-- drivers/pinctrl/mvebu/pinctrl-armada-370.c | 2 +- drivers/pinctrl/mvebu/pinctrl-armada-xp.c | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) commit f32f01e1ba6bca9611c835eb357ce926038128e8 Author: Thomas Petazzoni Date: Tue Jun 9 18:47:10 2015 +0200 pinctrl: mvebu: armada-{370,375}: normalize audio pins This commit aligns the naming of the audio 'lrclk' pin accross Marvell SoCs. Since only the subname is changed, the DT backward compatibility is not affected. Signed-off-by: Thomas Petazzoni Signed-off-by: Linus Walleij .../devicetree/bindings/pinctrl/marvell,armada-370-pinctrl.txt | 2 +- .../devicetree/bindings/pinctrl/marvell,armada-375-pinctrl.txt | 2 +- drivers/pinctrl/mvebu/pinctrl-armada-370.c | 2 +- drivers/pinctrl/mvebu/pinctrl-armada-375.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) commit d4974c16ed22f6b19b67d95d63c7244dbe87d95b Author: Thomas Petazzoni Date: Tue Jun 9 18:47:09 2015 +0200 pinctrl: mvebu: armada-{370,375}: normalize PCIe pins This commit normalizes the naming of PCIe pins to use 'rstout' instead of 'rstoutn' or 'rst-out'. Since only the subnames are changed, DT compatibility is not affected. Signed-off-by: Thomas Petazzoni Signed-off-by: Linus Walleij .../bindings/pinctrl/marvell,armada-370-pinctrl.txt | 2 +- .../bindings/pinctrl/marvell,armada-375-pinctrl.txt | 8 ++++---- drivers/pinctrl/mvebu/pinctrl-armada-370.c | 2 +- drivers/pinctrl/mvebu/pinctrl-armada-375.c | 14 +++++++------- 4 files changed, 13 insertions(+), 13 deletions(-) commit dae5597f253ae2d44432c8648d9a9205de057ddf Author: Thomas Petazzoni Date: Tue Jun 9 18:47:08 2015 +0200 pinctrl: mvebu: armada-{370,375,38x,39x,xp}: normalize TDM pins This commit normalizes the naming of the TDM pins accross the different Marvell SoCs. Mainly it consists in: * Removing the 'n' from signal names: 'intn' becomes 'int' and 'rstn' becomes 'rst' * Renaming the main name 'tdm2c' to 'tdm' on Armada 38x. * Change the main name 'tdm-1' to 'tdm' for one of the pins of the Armada XP The last two changes affect DT compatibility, but since the TDM interface is nowhere near being supported in mainline, it should not be considered to be a serious problem at this point. Signed-off-by: Thomas Petazzoni Signed-off-by: Linus Walleij .../bindings/pinctrl/marvell,armada-370-pinctrl.txt | 2 +- .../bindings/pinctrl/marvell,armada-375-pinctrl.txt | 6 +++--- .../bindings/pinctrl/marvell,armada-38x-pinctrl.txt | 12 ++++++------ .../bindings/pinctrl/marvell,armada-39x-pinctrl.txt | 4 ++-- .../bindings/pinctrl/marvell,armada-xp-pinctrl.txt | 2 +- drivers/pinctrl/mvebu/pinctrl-armada-370.c | 2 +- drivers/pinctrl/mvebu/pinctrl-armada-375.c | 6 +++--- drivers/pinctrl/mvebu/pinctrl-armada-38x.c | 12 ++++++------ drivers/pinctrl/mvebu/pinctrl-armada-39x.c | 4 ++-- drivers/pinctrl/mvebu/pinctrl-armada-xp.c | 2 +- 10 files changed, 26 insertions(+), 26 deletions(-) commit 42ea507fae1ac4b4af0d9d715ab56fa4de2a0341 Author: Stephan Mueller Date: Wed Jun 10 03:33:37 2015 +0200 crypto: drbg - reseed often if seedsource is degraded As required by SP800-90A, the DRBG implements are reseeding threshold. This threshold is at 2**48 (64 bit) and 2**32 bit (32 bit) as implemented in drbg_max_requests. With the recently introduced changes, the DRBG is now always used as a stdrng which is initialized very early in the boot cycle. To ensure that sufficient entropy is present, the Jitter RNG is added to even provide entropy at early boot time. However, the 2nd seed source, the nonblocking pool, is usually degraded at that time. Therefore, the DRBG is seeded with the Jitter RNG (which I believe contains good entropy, which however is questioned by others) and is seeded with a degradded nonblocking pool. This seed is now used for quasi the lifetime of the system (2**48 requests is a lot). The patch now changes the reseed threshold as follows: up until the time the DRBG obtains a seed from a fully iniitialized nonblocking pool, the reseeding threshold is lowered such that the DRBG is forced to reseed itself resonably often. Once it obtains the seed from a fully initialized nonblocking pool, the reseed threshold is set to the value required by SP800-90A. Signed-off-by: Stephan Mueller Signed-off-by: Herbert Xu crypto/drbg.c | 12 +++++++++++- include/crypto/drbg.h | 1 + 2 files changed, 12 insertions(+), 1 deletion(-) commit c2719503f5e1e6213d716bb078bdad01e28ebcbf Author: Herbert Xu Date: Tue Jun 9 18:19:42 2015 +0800 random: Remove kernel blocking API This patch removes the kernel blocking API as it has been completely replaced by the callback API. Signed-off-by: Herbert Xu drivers/char/random.c | 12 ------------ include/linux/random.h | 1 - 2 files changed, 13 deletions(-) commit 57225e6797885e31302e76fc5926c0bedd7e5ad4 Author: Stephan Mueller Date: Tue Jun 9 21:55:38 2015 +0800 crypto: drbg - Use callback API for random readiness The get_blocking_random_bytes API is broken because the wait can be arbitrarily long (potentially forever) so there is no safe way of calling it from within the kernel. This patch replaces it with the new callback API which does not have this problem. The patch also removes the entropy buffer registered with the DRBG handle in favor of stack variables to hold the seed data. Signed-off-by: Stephan Mueller Signed-off-by: Herbert Xu crypto/drbg.c | 217 +++++++++++++++++++++++++++++--------------------- include/crypto/drbg.h | 3 +- 2 files changed, 127 insertions(+), 93 deletions(-) commit 205a525c334295e3cd4cc7755fd2c0398e3a787f Author: Herbert Xu Date: Tue Jun 9 18:19:39 2015 +0800 random: Add callback API for random pool readiness The get_blocking_random_bytes API is broken because the wait can be arbitrarily long (potentially forever) so there is no safe way of calling it from within the kernel. This patch replaces it with a callback API instead. The callback is invoked potentially from interrupt context so the user needs to schedule their own work thread if necessary. In addition to adding callbacks, they can also be removed as otherwise this opens up a way for user-space to allocate kernel memory with no bound (by opening algif_rng descriptors and then closing them). Signed-off-by: Herbert Xu drivers/char/random.c | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++ include/linux/random.h | 9 ++++++ 2 files changed, 87 insertions(+) commit ed06aeefdac348cfb91a3db5fe1067e3202afd70 Author: Christophe Ricard Date: Tue Jun 9 22:26:05 2015 +0200 nfc: st-nci: Rename st21nfcb to st-nci STMicroelectronics NFC NCI chips family is extending with the new ST21NFCC using the AMS AS39230 RF booster. The st21nfcb driver is relevant for this solution and might be with future products. Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz .../devicetree/bindings/net/nfc/st-nci.txt | 33 + .../devicetree/bindings/net/nfc/st21nfcb.txt | 33 - drivers/nfc/Kconfig | 2 +- drivers/nfc/Makefile | 2 +- drivers/nfc/st-nci/Kconfig | 23 + drivers/nfc/st-nci/Makefile | 9 + drivers/nfc/st-nci/core.c | 179 ++++++ drivers/nfc/st-nci/i2c.c | 385 +++++++++++ drivers/nfc/st-nci/ndlc.c | 313 +++++++++ drivers/nfc/st-nci/ndlc.h | 60 ++ drivers/nfc/st-nci/st-nci.h | 50 ++ drivers/nfc/st-nci/st-nci_se.c | 714 +++++++++++++++++++++ drivers/nfc/st-nci/st-nci_se.h | 61 ++ drivers/nfc/st21nfcb/Kconfig | 22 - drivers/nfc/st21nfcb/Makefile | 9 - drivers/nfc/st21nfcb/i2c.c | 384 ----------- drivers/nfc/st21nfcb/ndlc.c | 313 --------- drivers/nfc/st21nfcb/ndlc.h | 60 -- drivers/nfc/st21nfcb/st21nfcb.c | 179 ------ drivers/nfc/st21nfcb/st21nfcb.h | 50 -- drivers/nfc/st21nfcb/st21nfcb_se.c | 713 -------------------- drivers/nfc/st21nfcb/st21nfcb_se.h | 61 -- include/linux/platform_data/st-nci.h | 29 + include/linux/platform_data/st21nfcb.h | 29 - include/linux/platform_data/st_nci.h | 29 + 25 files changed, 1887 insertions(+), 1855 deletions(-) commit 2df7f8c69521a4d85dfbc788da260b3c4030980c Author: Samuel Ortiz Date: Wed Jun 10 12:50:22 2015 +0200 NFC: nci: Export nci_req_complete Drivers implementing proprietary ops may need it now. Signed-off-by: Samuel Ortiz net/nfc/nci/core.c | 1 + 1 file changed, 1 insertion(+) commit 64657066f51355461b634a0aa6a1171d50c355c9 Author: Heiko Stübner Date: Tue Jun 2 11:43:50 2015 -0300 [media] rc: gpio-ir-recv: don't sleep in irq handler Don't allow sleep when getting the gpio value in the irq-handler. On my rk3288 board this results in might_sleep warnings when receiving data like: BUG: sleeping function called from invalid context at drivers/gpio/gpiolib.c:1531 in_atomic(): 1, irqs_disabled(): 128, pid: 0, name: swapper/0 CPU: 0 PID: 0 Comm: swapper/0 Tainted: P 4.1.0-rc5+ #2011 Hardware name: Rockchip (Device Tree) [] (unwind_backtrace) from [] (show_stack+0x20/0x24) [] (show_stack) from [] (dump_stack+0x8c/0xbc) [] (dump_stack) from [] (___might_sleep+0x238/0x284) [] (___might_sleep) from [] (__might_sleep+0x90/0xa4) [] (__might_sleep) from [] (gpiod_get_raw_value_cansleep+0x28/0x44) [] (gpiod_get_raw_value_cansleep) from [] (gpio_ir_recv_irq+0x24/0x6c [gpio_ir_recv]) [] (gpio_ir_recv_irq [gpio_ir_recv]) from [] (handle_irq_event_percpu+0x164/0x550) [] (handle_irq_event_percpu) from [] (handle_irq_event+0x4c/0x6c) [] (handle_irq_event) from [] (handle_edge_irq+0x128/0x150) [] (handle_edge_irq) from [] (generic_handle_irq+0x30/0x40) [] (generic_handle_irq) from [] (rockchip_irq_demux+0x158/0x210) [] (rockchip_irq_demux) from [] (generic_handle_irq+0x30/0x40) [] (generic_handle_irq) from [] (__handle_domain_irq+0x98/0xc0) [] (__handle_domain_irq) from [] (gic_handle_irq+0x4c/0x70) [] (gic_handle_irq) from [] (__irq_svc+0x44/0x5c) Signed-off-by: Heiko Stuebner Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/gpio-ir-recv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 206c59d1d7d42bcafc1d7f1e476e87e4427e2345 Merge: 5ec596c c3eee1f Author: Johannes Berg Date: Wed Jun 10 12:44:58 2015 +0200 Merge remote-tracking branch 'net-next/master' into mac80211-next Merge back net-next to get wireless driver changes (from Kalle) to be able to create the API change across all trees properly. Signed-off-by: Johannes Berg commit d446278c408bdebd4103090740ce908c5d6b5ab0 Author: Christoffer Holmstedt Date: Wed Jun 10 11:03:59 2015 +0200 nl802154: fix misspelled enum Signed-off-by: Christoffer Holmstedt Signed-off-by: Marcel Holtmann include/net/nl802154.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 692af901df615b7783caaccdb287cddf2d7f6059 Author: Takashi Iwai Date: Wed Jun 10 12:15:27 2015 +0200 ALSA: hda - Allow calling snd_hdac_i915_*() without actual binding Add the missing NULL checks so that snd_hdac_i915*() can be called even after the binding with i915 failed. Signed-off-by: Takashi Iwai sound/hda/hdac_i915.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit 5751a99fe971262f3701922d116bcde7e9045b17 Author: Stefan Wahren Date: Wed Jun 10 06:13:15 2015 +0000 regulator: core: replace sprintf with scnprintf In order to avoid potential overflows in print_constraints we better replace sprintf() with scnprintf(). Signed-off-by: Stefan Wahren Signed-off-by: Mark Brown drivers/regulator/core.c | 43 ++++++++++++++++++++++++------------------- 1 file changed, 24 insertions(+), 19 deletions(-) commit 96dc589624954fea915c1cee90e0987ff9631386 Merge: ff268b5 a7068e3 Author: Mark Brown Date: Wed Jun 10 11:09:28 2015 +0100 Merge branch 'fix/core' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator into regulator-core commit 5ec596c41bba6f4e3eeef5dc089afc8eaa702a7e Author: Alexis Green Date: Tue Jun 9 16:20:24 2015 -0700 mac80211: Fix a case of incorrect metric used when forwarding a PREQ This patch fixes a bug in hwmp_preq_frame_process where the wrong metric can be used when forwarding a PREQ. This happens because the code uses the same metric variable to record the value of the metric to the source of the PREQ and the value of the metric to the target of the PREQ. This comes into play when both reply and forward are set which happens when IEEE80211_PREQ_PROACTIVE_PREP_FLAG is set and when MP_F_DO | MP_F_RF is set. The original code had a special case to handle the first case but not the second. The patch uses distinct variables for the two metrics which makes the code flow much clearer and removes the need to restore the original value of metric when forwarding. Signed-off-by: Alexis Green CC: Jesse Jones Signed-off-by: Johannes Berg net/mac80211/mesh_hwmp.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) commit 45bbfe64ea564a69e56ab6754006eee506224f46 Author: Joe Perches Date: Mon May 25 11:49:55 2015 -0700 clocksource: Use current logging style clocksource messages aren't prefixed in dmesg so it's a bit unclear what subsystem emits the messages. Use pr_fmt and pr_ to auto-prefix the messages appropriately. Miscellanea: o Remove "Warning" from KERN_WARNING level messages o Align "timekeeping watchdog: " messages o Coalesce formats o Align multiline arguments Signed-off-by: Joe Perches Cc: John Stultz Link: http://lkml.kernel.org/r/1432579795.2846.75.camel@perches.com Signed-off-by: Thomas Gleixner kernel/time/clocksource.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit c569a23d65ac2900d9998d3fe04044fe95be6b2f Author: Nicholas Mc Guire Date: Thu May 28 19:09:56 2015 +0200 time: Allow gcc to fold usecs_to_jiffies(constant) To allow constant folding in usecs_to_jiffies() conditionally calls the HZ dependent _usecs_to_jiffies() helpers or, when gcc can not figure out constant folding, __usecs_to_jiffies, which is the renamed original usecs_to_jiffies() function. Signed-off-by: Nicholas Mc Guire Cc: Masahiro Yamada Cc: Sam Ravnborg Cc: Joe Perches Cc: John Stultz Cc: Andrew Hunter Cc: Paul Turner Cc: Michal Marek Link: http://lkml.kernel.org/r/1432832996-12129-2-git-send-email-hofrat@osadl.org Signed-off-by: Thomas Gleixner include/linux/jiffies.h | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) commit ae60d6a0e3a9197d37f8c8c4584a8ecd18518cd6 Author: Nicholas Mc Guire Date: Thu May 28 19:09:55 2015 +0200 time: Refactor usecs_to_jiffies Refactor the usecs_to_jiffies conditional code part in time.c and jiffies.h putting it into conditional functions rather than #ifdefs to improve readability. This is analogous to the msecs_to_jiffies() cleanup in commit ca42aaf0c861 ("time: Refactor msecs_to_jiffies") Signed-off-by: Nicholas Mc Guire Cc: Masahiro Yamada Cc: Sam Ravnborg Cc: Joe Perches Cc: John Stultz Cc: Andrew Hunter Cc: Paul Turner Cc: Michal Marek Link: http://lkml.kernel.org/r/1432832996-12129-1-git-send-email-hofrat@osadl.org Signed-off-by: Thomas Gleixner include/linux/jiffies.h | 27 ++++++++++++++++++++++++++- kernel/time/time.c | 13 +++---------- 2 files changed, 29 insertions(+), 11 deletions(-) commit 5cc0de1faff6ac801286dfab88e4a31392cbb3f0 Author: Thomas Petazzoni Date: Tue Jun 9 18:47:07 2015 +0200 pinctrl: mvebu: armada-39x: align NAND pin naming All SoCs use "nand" to designate NAND pins, only Armada 39x is using "nd", which is not consistent. This commit fixes that by renaming the corresponding functions. It also changes the subnames from rbn0/rbn1 to rb0/rb1, to respect the convention used everywhere that we don't encode the 'n' part of signal names. While this commit changes the main name of function, therefore potentially breaking the DT compatibility, this is not a problem since Armada 39x is a brand new SoC which isn't used in production yet. Signed-off-by: Thomas Petazzoni Signed-off-by: Linus Walleij .../devicetree/bindings/pinctrl/marvell,armada-39x-pinctrl.txt | 4 ++-- drivers/pinctrl/mvebu/pinctrl-armada-39x.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit 7bd6a26db6f9dade7dbd88a73120d17da1ee0e89 Author: Thomas Petazzoni Date: Tue Jun 9 18:47:06 2015 +0200 pinctrl: mvebu: armada-{370,375,38x,39x}: normalize dev pins This commit modifies the definition of the Device Bus interface pins to be consistent accross SoCs. Especially, it removes the 'n' indicators that we don't encode in the subnames of pins: 'dev(wen0)' becomes 'dev(we0)' 'dev(wen1)' becomes 'dev(we1)' 'dev(oen)' becomes 'dev(oe)' etc. In addition, it fixes the Armada 375 DT binding documentation, which forgot to document the 'dev' function for MPP46, MPP57 and MPP63. Since only the subnames are changed, this commit does not affect DT compatibility. Signed-off-by: Thomas Petazzoni Signed-off-by: Linus Walleij .../devicetree/bindings/pinctrl/marvell,armada-370-pinctrl.txt | 6 +++--- .../devicetree/bindings/pinctrl/marvell,armada-375-pinctrl.txt | 8 ++++---- .../devicetree/bindings/pinctrl/marvell,armada-38x-pinctrl.txt | 6 +++--- .../devicetree/bindings/pinctrl/marvell,armada-39x-pinctrl.txt | 10 +++++----- drivers/pinctrl/mvebu/pinctrl-armada-370.c | 6 +++--- drivers/pinctrl/mvebu/pinctrl-armada-375.c | 8 ++++---- drivers/pinctrl/mvebu/pinctrl-armada-38x.c | 6 +++--- drivers/pinctrl/mvebu/pinctrl-armada-39x.c | 10 +++++----- 8 files changed, 30 insertions(+), 30 deletions(-) commit ddf3f19e21ab4472c3ce4aa53dc2d28d4aa07e02 Author: Thomas Petazzoni Date: Tue Jun 9 18:47:05 2015 +0200 pinctrl: mvebu: armada-39x: normalize SDIO pin naming In order to be consistent with the datasheet and some other SoCs, this commit renames the SDIO pins of the Armada 39x from "sd" to "sd0". While this changes the DT binding, this is not a problem since Armada 39x is a brand new SoC which isn't used in production yet (so now is the right time to fix such things). Signed-off-by: Thomas Petazzoni Signed-off-by: Linus Walleij .../pinctrl/marvell,armada-39x-pinctrl.txt | 40 +++++++++++----------- drivers/pinctrl/mvebu/pinctrl-armada-39x.c | 40 +++++++++++----------- 2 files changed, 40 insertions(+), 40 deletions(-) commit 52f83174b3a142a7574f7aa652dcff773c50f5f1 Author: Thomas Petazzoni Date: Tue Jun 9 18:47:04 2015 +0200 pinctrl: mvebu: armada-39x: normalize SATA present functionality naming This commit makes the naming of SATA related MPP functions consistent accross SoCs by adjusting the Armada 39x definition to use "prsnt" instead of "present". Since only the subnames are changed, the DT binding is not modified at all. Signed-off-by: Thomas Petazzoni Signed-off-by: Linus Walleij .../pinctrl/marvell,armada-39x-pinctrl.txt | 16 +++++++-------- drivers/pinctrl/mvebu/pinctrl-armada-39x.c | 24 +++++++++++----------- 2 files changed, 20 insertions(+), 20 deletions(-) commit 100dc5d840951577b26274749dd099d3bf94982b Author: Thomas Petazzoni Date: Tue Jun 9 18:47:03 2015 +0200 pinctrl: mvebu: armada-{38x,39x,xp}: normalize naming of DRAM functions This commit makes the dram functions naming (both the name and subname) consistent accross SoC, by using: dram(vttctrl) dram(deccerr) in all Marvell SoCs. Due to the change to the name, it changes the DT binding, but these functions are not used by any in-tree Device Tree file, and are very unlikely to be used by anyone. Signed-off-by: Thomas Petazzoni Signed-off-by: Linus Walleij .../bindings/pinctrl/marvell,armada-38x-pinctrl.txt | 14 +++++++------- .../bindings/pinctrl/marvell,armada-39x-pinctrl.txt | 14 +++++++------- .../bindings/pinctrl/marvell,armada-xp-pinctrl.txt | 6 +++--- drivers/pinctrl/mvebu/pinctrl-armada-38x.c | 16 ++++++++-------- drivers/pinctrl/mvebu/pinctrl-armada-39x.c | 16 ++++++++-------- drivers/pinctrl/mvebu/pinctrl-armada-xp.c | 6 +++--- 6 files changed, 36 insertions(+), 36 deletions(-) commit 9540cf534429359699ea85df20cb7be307548b89 Author: Thomas Petazzoni Date: Tue Jun 9 18:47:02 2015 +0200 pinctrl: mvebu: armada-{375,38x,39x}: normalize naming of PTP subnames The subnames are purely informative, but it's nicer when they match accross SoCs. This commit adjusts the Armada 375, Armada 38x and Armada 39x MPP definitions so that the subnames of the PTP pins match the ones used on Armada XP and Kirkwood. Signed-off-by: Thomas Petazzoni Signed-off-by: Linus Walleij .../bindings/pinctrl/marvell,armada-375-pinctrl.txt | 10 +++++----- .../bindings/pinctrl/marvell,armada-38x-pinctrl.txt | 8 ++++---- .../bindings/pinctrl/marvell,armada-39x-pinctrl.txt | 2 +- drivers/pinctrl/mvebu/pinctrl-armada-375.c | 16 ++++++++-------- drivers/pinctrl/mvebu/pinctrl-armada-38x.c | 8 ++++---- drivers/pinctrl/mvebu/pinctrl-armada-39x.c | 2 +- 6 files changed, 23 insertions(+), 23 deletions(-) commit 7c580311a2cb3bb0d0188665c9c69227aed650ea Author: Thomas Petazzoni Date: Tue Jun 9 18:47:01 2015 +0200 pinctrl: mvebu: armada-39x: fix incorrect total number of GPIOs The pinctrl_gpio_range[] array described a first bank of 32 GPIOs and a second one of 27 GPIOs. However, since there is a total of 60 MPP pins that can be muxed as GPIOs, the second bank really has 28 GPIOs. Signed-off-by: Thomas Petazzoni Cc: # v4.1+ Fixes: ee086577abe7f ("pinctrl: mvebu: add pinctrl driver for Marvell Armada 39x") Signed-off-by: Linus Walleij drivers/pinctrl/mvebu/pinctrl-armada-39x.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 27e7cd016558bf787b128fd882cdd90409ae4036 Author: Thomas Petazzoni Date: Tue Jun 9 18:47:00 2015 +0200 pinctrl: mvebu: armada-38x: fix incorrect total number of GPIOs The pinctrl_gpio_range[] array described a first bank of 32 GPIOs and a second one of 27 GPIOs. However, since there is a total of 60 MPP pins that can be muxed as GPIOs, the second bank really has 28 GPIOs. Signed-off-by: Thomas Petazzoni Cc: # v3.15+ Fixes: ca6d9a084b56f ("pinctrl: mvebu: add pin-muxing driver for the Marvell Armada 380/385") Signed-off-by: Linus Walleij drivers/pinctrl/mvebu/pinctrl-armada-38x.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d538990ee12b162f7ce6c0fcef3b643800102676 Author: Thomas Petazzoni Date: Tue Jun 9 18:46:59 2015 +0200 pinctrl: mvebu: armada-375: remove incorrect space in pin description There was an incorrect space in the definition of the function of one pin in the Armada 375 pinctrl driver, which this commit fixes. Signed-off-by: Thomas Petazzoni Cc: # v3.15+ Fixes: ce3ed59dcddd ("pinctrl: mvebu: add pin-muxing driver for the Marvell Armada 375") Signed-off-by: Linus Walleij drivers/pinctrl/mvebu/pinctrl-armada-375.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ea78b9511a54d0de026e04b5da86b30515072f31 Author: Thomas Petazzoni Date: Tue Jun 9 18:46:58 2015 +0200 pinctrl: mvebu: armada-xp: fix functions of MPP48 There was a mistake in the definition of the functions for MPP48 on Marvell Armada XP. The second function is dev(clkout), and not tclk. Signed-off-by: Thomas Petazzoni Cc: # v3.7+ Fixes: 463e270f766a ("pinctrl: mvebu: add pinctrl driver for Armada XP") Signed-off-by: Linus Walleij Documentation/devicetree/bindings/pinctrl/marvell,armada-xp-pinctrl.txt | 2 +- drivers/pinctrl/mvebu/pinctrl-armada-xp.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 80b3d04feab5e69d51cb2375eb989a7165e43e3b Author: Thomas Petazzoni Date: Tue Jun 9 18:46:57 2015 +0200 pinctrl: mvebu: armada-xp: remove non-existing VDD cpu_pd functions The latest version of the Armada XP datasheet no longer documents the VDD cpu_pd functions, which might indicate they are not working and/or not supported. This commit ensures the pinctrl driver matches the datasheet. Signed-off-by: Thomas Petazzoni Cc: # v3.7+ Fixes: 463e270f766a ("pinctrl: mvebu: add pinctrl driver for Armada XP") Signed-off-by: Linus Walleij .../bindings/pinctrl/marvell,armada-xp-pinctrl.txt | 26 +++++++---------- drivers/pinctrl/mvebu/pinctrl-armada-xp.c | 33 +++++++--------------- 2 files changed, 20 insertions(+), 39 deletions(-) commit bc99357f3690c11817756adfee0ece811a3db2e7 Author: Thomas Petazzoni Date: Tue Jun 9 18:46:56 2015 +0200 pinctrl: mvebu: armada-xp: remove non-existing NAND pins After updating to a more recent version of the Armada XP datasheet, we realized that some of the pins documented as having a NAND-related functionality in fact did not have such functionality. This commit updates the pinctrl driver accordingly. Signed-off-by: Thomas Petazzoni Cc: # v3.7+ Fixes: 463e270f766a ("pinctrl: mvebu: add pinctrl driver for Armada XP") Signed-off-by: Linus Walleij .../devicetree/bindings/pinctrl/marvell,armada-xp-pinctrl.txt | 4 ++-- drivers/pinctrl/mvebu/pinctrl-armada-xp.c | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) commit e5447d26092c72ef3346615ee558c9112ef8063f Author: Thomas Petazzoni Date: Tue Jun 9 18:46:55 2015 +0200 pinctrl: mvebu: armada-375: remove non-existing NAND re/we pins After updating to a more recent version of the Armada 375, we realized that some of the pins documented as having a NAND-related functionality in fact did not have such functionality. This commit updates the pinctrl driver accordingly. Signed-off-by: Thomas Petazzoni Cc: # v3.15+ Fixes: ce3ed59dcddd ("pinctrl: mvebu: add pin-muxing driver for the Marvell Armada 375") Signed-off-by: Linus Walleij .../devicetree/bindings/pinctrl/marvell,armada-375-pinctrl.txt | 4 ++-- drivers/pinctrl/mvebu/pinctrl-armada-375.c | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) commit 438881dfddb9107ef0eb30b49368e91e092f0b3e Author: Thomas Petazzoni Date: Tue Jun 9 18:46:54 2015 +0200 pinctrl: mvebu: armada-370: fix spi0 pin description Due to a mistake, the CS0 and CS1 SPI0 functions were incorrectly named "spi0-1" instead of just "spi0". This commit fixes that. This DT binding change does not affect any of the in-tree users. Signed-off-by: Thomas Petazzoni Cc: # v3.7+ Fixes: 5f597bb2be57 ("pinctrl: mvebu: add pinctrl driver for Armada 370") Signed-off-by: Linus Walleij .../devicetree/bindings/pinctrl/marvell,armada-370-pinctrl.txt | 4 ++-- drivers/pinctrl/mvebu/pinctrl-armada-370.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit 331642fbf24a1c16b2669ca0a6479b5fcd6dd5b2 Author: Thomas Petazzoni Date: Tue Jun 9 18:46:53 2015 +0200 pinctrl: mvebu: armada-38x: fix PCIe functions A new revision of the Marvell Armada 38x hardware datasheet unveiled that the definition of some of the PCIe functions were not correct. This commit fixes the pinctrl driver accordingly. Some PCIe functions simply do not exist, some of the PCIe functions in fact were corresponding to other functions, and some PCIe functions have been added. Note: the seemingly unrelated removal of spi(cs2) on MPP47 is related: this function is in fact implemented on MPP43, instead of a PCIe function. Signed-off-by: Thomas Petazzoni Cc: # v3.15+ Fixes: ca6d9a084b56f ("pinctrl: mvebu: add pin-muxing driver for the Marvell Armada 380/385") Signed-off-by: Linus Walleij .../pinctrl/marvell,armada-38x-pinctrl.txt | 38 ++++++++--------- drivers/pinctrl/mvebu/pinctrl-armada-38x.c | 49 +++++++++------------- 2 files changed, 39 insertions(+), 48 deletions(-) commit 1fc62c526a5717c63d9dbedd2e6a530467349713 Author: Johan Hedberg Date: Wed Jun 10 11:11:20 2015 +0300 Bluetooth: Fix exposing full value of shortened LTKs When we notify user space of a new LTK or distribute an LTK to the remote peer the value passed should be the shortened version so that it's easy to compare values in various traces. The core spec also sets the requirements for the shortening/masking as: "The masking shall be done after generation and before being distributed, used or stored." Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann net/bluetooth/mgmt.c | 7 ++++++- net/bluetooth/smp.c | 9 ++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) commit 9d7ebbbf2264c4ad3c8d50fcb84952126184a7ad Author: Ludovic Desroches Date: Mon Jun 8 17:16:37 2015 +0200 pinctrl: don't print unavailable function groups There is no reason to try to print groups associated to a function if get_function_groups returns an error. Moreover, it can lead to a NULL pointer dereference error. Signed-off-by: Ludovic Desroches Signed-off-by: Linus Walleij drivers/pinctrl/pinmux.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 1bb6fad359b147645e47cf826bc20e6b5b4d66b2 Author: Bjorn Andersson Date: Fri Jun 5 15:52:24 2015 -0700 pinctrl: dt-binding: Add DT binding documentation for MSM8660 Signed-off-by: Bjorn Andersson Signed-off-by: Linus Walleij .../bindings/pinctrl/qcom,msm8660-pinctrl.txt | 90 ++++++++++++++++++++++ 1 file changed, 90 insertions(+) commit 6955e6b4f32f57aa156f1048ed39a607b4093003 Author: Bjorn Andersson Date: Fri Jun 5 15:52:23 2015 -0700 pinctrl: qcom: Add MSM8660 pinctrl definitions Signed-off-by: Bjorn Andersson Signed-off-by: Linus Walleij drivers/pinctrl/qcom/Kconfig | 8 + drivers/pinctrl/qcom/Makefile | 1 + drivers/pinctrl/qcom/pinctrl-msm8660.c | 984 +++++++++++++++++++++++++++++++++ 3 files changed, 993 insertions(+) commit a713890d32900459031d344748a23ca37758bec5 Author: Linus Walleij Date: Fri Jun 5 11:36:10 2015 +0200 gpio: improve error reporting on own descriptors When requesting own descriptors through hogs, it is useful to get some details about what's going on if we encounter problems. Acked-by: Alexandre Courbot Signed-off-by: Linus Walleij drivers/gpio/gpiolib.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 8405f2089488c39b10e63b6522fcabc60fbd025a Author: Linus Walleij Date: Fri Jun 5 11:10:21 2015 +0200 gpio: promote own request failure to pr_err() These error messages are helpful to see that we fail to get hogs. Promote them to real errors so they appear in the boot crawl. Signed-off-by: Linus Walleij drivers/gpio/gpiolib.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit bdf7a4ae371894b4dc10b5820006b0a82d484929 Author: Anurag Kumar Vulisha Date: Thu Jun 4 17:40:32 2015 +0530 gpio: Added support to Zynq Ultrascale+ MPSoC Added support to Zynq Ultrascale+ MPSoC on the existing zynq gpio driver. Signed-off-by: Anurag Kumar Vulisha Acked-by: Michal Simek Signed-off-by: Linus Walleij .../devicetree/bindings/gpio/gpio-zynq.txt | 2 +- drivers/gpio/Kconfig | 2 +- drivers/gpio/gpio-zynq.c | 191 ++++++++++++++------- 3 files changed, 127 insertions(+), 68 deletions(-) commit 2e89f4c3d900a2c17ca7a223c58ca3e9bbf1ef7f Author: Antoine Tenart Date: Tue Jun 2 11:37:48 2015 +0200 pinctrl: berlin: comment the spi functions Add comments for the SPI functions, to distinguish CLK, SDI, SDO and C{0,1,2,3}n. Signed-off-by: Antoine Tenart Signed-off-by: Linus Walleij drivers/pinctrl/berlin/berlin-bg2.c | 18 +++++++++--------- drivers/pinctrl/berlin/berlin-bg2cd.c | 8 ++++---- drivers/pinctrl/berlin/berlin-bg2q.c | 16 ++++++++-------- 3 files changed, 21 insertions(+), 21 deletions(-) commit bcb5f5b4f4176d5d413f8491c5f8d4b02b36018b Author: Antoine Tenart Date: Tue Jun 2 11:37:47 2015 +0200 pinctrl: berlin: fix spi1 SS0n function name Rename function ss0 to spi1 to be consistent with the other Berlin function names. Signed-off-by: Antoine Tenart Signed-off-by: Linus Walleij drivers/pinctrl/berlin/berlin-bg2cd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d342571efea8135dcf0a96dcb9e54759adefdb27 Author: Rabin Vincent Date: Sat Jun 6 22:30:40 2015 +0200 gpio: add ETRAXFS GPIO driver Add a GPIO driver for the General I/O block on Axis ETRAX FS SoCs. Signed-off-by: Rabin Vincent Signed-off-by: Linus Walleij .../devicetree/bindings/gpio/gpio-etraxfs.txt | 21 +++ drivers/gpio/Kconfig | 8 + drivers/gpio/Makefile | 1 + drivers/gpio/gpio-etraxfs.c | 176 +++++++++++++++++++++ 4 files changed, 206 insertions(+) commit b1999477ed91c3c33891acfe0e18a4457e5c4915 Author: Guo Zeng Date: Tue Apr 14 11:55:55 2015 +0000 ARM: prima2: move to use REGMAP APIs for rtciobrg all devices behind rtciobrg needs a special way to access. currently they are using a platform-specific API. this patch moves to REGMAP, then clients can use regmap APIs to read/write. for the moment, old APIs are still kept, once all clients move to regmap, old APIs will be dropped. this patch also does minor clean for comments, authors statement. Signed-off-by: Guo Zeng Signed-off-by: Barry Song arch/arm/mach-prima2/Kconfig | 1 + arch/arm/mach-prima2/rtciobrg.c | 48 +++++++++++++++++++++++++++++++++--- include/linux/rtc/sirfsoc_rtciobrg.h | 4 +++ 3 files changed, 50 insertions(+), 3 deletions(-) commit 27b0d37e4209f3fc40c65e2b7936ee4154f4070d Author: Wei Chen Date: Wed May 20 08:08:27 2015 +0000 ARM: dts: atlas7: add pinctrl and gpio descriptions This patch adds pinctrl and gpio stuff according to the atlas7 pinctrl driver. Signed-off-by: Wei Chen Signed-off-by: Barry Song Acked-by: Linus Walleij arch/arm/boot/dts/atlas7.dtsi | 1042 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 1041 insertions(+), 1 deletion(-) commit 539f5113650068ba221197f190267ab727296ef5 Author: Andy Lutomirski Date: Tue Jun 9 12:36:01 2015 -0700 x86/asm/entry/64: Disentangle error_entry/exit gsbase/ebx/usermode code The error_entry/error_exit code to handle gsbase and whether we return to user mdoe was a mess: - error_sti was misnamed. In particular, it did not enable interrupts. - Error handling for gs_change was hopelessly tangled the normal usermode path. Separate it out. This saves a branch in normal entries from kernel mode. - The comments were bad. Fix it up. As a nice side effect, there's now a code path that happens on error entries from user mode. We'll use it soon. Signed-off-by: Andy Lutomirski Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/f1be898ab93360169fb845ab85185948832209ee.1433878454.git.luto@kernel.org [ Prettified it, clarified comments some more. ] Signed-off-by: Ingo Molnar arch/x86/entry/entry_64.S | 39 +++++++++++++++++++++++++++++++-------- 1 file changed, 31 insertions(+), 8 deletions(-) commit a92fde25231a89d7d10895482556260c1b63767d Author: Denys Vlasenko Date: Tue Jun 9 20:54:09 2015 +0200 x86/asm/entry/32: Shorten __audit_syscall_entry() args preparation We use three MOVs to swap edx and ecx. We can use one XCHG instead. Expand the comments. It's difficult to keep track which arg# every register corresponds to, so spell it out. Signed-off-by: Denys Vlasenko Cc: Alexei Starovoitov Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Frederic Weisbecker Cc: H. Peter Anvin Cc: Kees Cook Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Thomas Gleixner Cc: Will Drewry Link: http://lkml.kernel.org/r/1433876051-26604-3-git-send-email-dvlasenk@redhat.com [ Expanded the comments some more. ] Signed-off-by: Ingo Molnar arch/x86/entry/entry_64_compat.S | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) commit 1536bb46fac7672ef04aaaa6a3b07848314263bc Author: Denys Vlasenko Date: Tue Jun 9 20:54:08 2015 +0200 x86/asm/entry/32: Explain reloading of registers after __audit_syscall_entry() Here it is not obvious why we load pt_regs->cx to %esi etc. Lets improve comments. Explain that here we combine two things: first, we reload registers since some of them are clobbered by the C function we just called; and we also convert 32-bit syscall params to 64-bit C ABI, because we are going to jump back to syscall dispatch code. Move reloading of 6th argument into the macro instead of having it after each of two macro invocations. No actual code changes here. Signed-off-by: Denys Vlasenko Cc: Alexei Starovoitov Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Frederic Weisbecker Cc: H. Peter Anvin Cc: Kees Cook Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Thomas Gleixner Cc: Will Drewry Link: http://lkml.kernel.org/r/1433876051-26604-2-git-send-email-dvlasenk@redhat.com Signed-off-by: Ingo Molnar arch/x86/entry/entry_64_compat.S | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) commit aee4b013a71666f11ffeac11ab45bb7c6e0e394d Author: Denys Vlasenko Date: Tue Jun 9 20:54:07 2015 +0200 x86/asm/entry/32: Fix fallout from the R9 trick removal in the SYSCALL code I put %ebp restoration code too late. Under strace, it is not reached and %ebp is not restored upon return to userspace. This is the fix. Run-tested. Signed-off-by: Denys Vlasenko Cc: Alexei Starovoitov Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Frederic Weisbecker Cc: H. Peter Anvin Cc: Kees Cook Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Thomas Gleixner Cc: Will Drewry Link: http://lkml.kernel.org/r/1433876051-26604-1-git-send-email-dvlasenk@redhat.com Signed-off-by: Ingo Molnar arch/x86/entry/entry_64_compat.S | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 63e63a1981c7247fea41ce97b3144befc8f2fb7b Merge: 5b83b22 a3e362f Author: Tony Lindgren Date: Tue Jun 9 23:37:31 2015 -0700 Merge branch 'wakeirq-8250' into omap-for-v4.2/wakeirq-v2 commit a3e362f18c01f28abcb6d8e5d00be8b5d97ea09d Author: Tony Lindgren Date: Tue Jun 9 23:35:00 2015 -0700 serial: 8250_omap: Move wake-up interrupt to generic wakeirq We can now use generic wakeirq handling and remove the custom handling for the wake-up interrupts. Acked-by: Greg Kroah-Hartman Signed-off-by: Tony Lindgren drivers/tty/serial/8250/8250_omap.c | 58 +++---------------------------------- 1 file changed, 4 insertions(+), 54 deletions(-) commit ee83bd3b6483d59b0d4b509e46dae688d8e5759d Author: Tony Lindgren Date: Tue Jun 9 23:35:00 2015 -0700 serial: omap: Switch wake-up interrupt to generic wakeirq We can now use generic wakeirq handling and remove the custom handling for the wake-up interrupts. Acked-by: Greg Kroah-Hartman Signed-off-by: Tony Lindgren drivers/tty/serial/omap-serial.c | 35 ++++------------------------------- 1 file changed, 4 insertions(+), 31 deletions(-) commit 4a705c5c786dc7f85051ed262bb05a4ca275dded Author: Aleksa Sarai Date: Tue Jun 9 21:32:07 2015 +1000 cgroup: fix uninitialised iterator in for_each_subsys_which Fix the fact that @ssid is uninitialised in the case where CGROUP_SUBSYS_COUNT = 0 by setting ssid to 0. Fixes: cb4a31675270 ("cgroup: use bitmask to filter for_each_subsys") Signed-off-by: Aleksa Sarai Signed-off-by: Tejun Heo kernel/cgroup.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0f5f264b38122b39cfa0beb65eef6b5ccac94917 Author: Rasmus Villemoes Date: Tue Jun 9 15:33:19 2015 +0200 libata: finally use __initconst in ata_parse_force_one() Just six days after this FIXME was added seven years ago, Sam Ravnborg added the missing feature (37c514e3dfc8 "Add missing init section definitions"), though it ended up being called __initconst. Let's use it; better late than never. Signed-off-by: Rasmus Villemoes Signed-off-by: Tejun Heo drivers/ata/libata-core.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) commit cfcb3d80a28380ba027331eb548ba309c4b66559 Author: Aneesh Kumar K.V Date: Tue Apr 14 13:05:57 2015 +0530 powerpc/mm: Add trace point for tracking hash pte fault This enables us to understand how many hash fault we are taking when running benchmarks. For ex: -bash-4.2# ./perf stat -e powerpc:hash_fault -e page-faults /tmp/ebizzy.ppc64 -S 30 -P -n 1000 ... Performance counter stats for '/tmp/ebizzy.ppc64 -S 30 -P -n 1000': 1,10,04,075 powerpc:hash_fault 1,10,03,429 page-faults 30.865978991 seconds time elapsed NOTE: The impact of the tracepoint was not noticeable when running test. It was within the run-time variance of the test. For ex: without-patch: -------------- Performance counter stats for './a.out 3000 300': 643 page-faults # 0.089 M/sec 7.236562 task-clock (msec) # 0.928 CPUs utilized 2,179,213 stalled-cycles-frontend # 0.00% frontend cycles idle 17,174,367 stalled-cycles-backend # 0.00% backend cycles idle 0 context-switches # 0.000 K/sec 0.007794658 seconds time elapsed And with-patch: --------------- Performance counter stats for './a.out 3000 300': 643 page-faults # 0.089 M/sec 7.233746 task-clock (msec) # 0.921 CPUs utilized 0 context-switches # 0.000 K/sec 0.007854876 seconds time elapsed Performance counter stats for './a.out 3000 300': 643 page-faults # 0.087 M/sec 649 powerpc:hash_fault # 0.087 M/sec 7.430376 task-clock (msec) # 0.938 CPUs utilized 2,347,174 stalled-cycles-frontend # 0.00% frontend cycles idle 17,524,282 stalled-cycles-backend # 0.00% backend cycles idle 0 context-switches # 0.000 K/sec 0.007920284 seconds time elapsed Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman arch/powerpc/include/asm/trace.h | 20 ++++++++++++++++++++ arch/powerpc/mm/hash_utils_64.c | 2 ++ 2 files changed, 22 insertions(+) commit c3eee1fb1d308564ada5f7ea57bc51efc6130b37 Merge: 6651ee0 94d1dd8 Author: David S. Miller Date: Tue Jun 9 20:23:52 2015 -0700 Merge tag 'batman-adv-for-davem' of git://git.open-mesh.org/linux-merge Antonio Quartulli says: ==================== Included changes: - use common Jenkins hash instead of private implementation - extend internal routing API - properly re-arrange header files inclusion - clarify precedence between '&' and '?' - remove unused ethhdr variable in batadv_gw_dhcp_recipient_get() - ensure per-VLAN structs are updated upon MAC change ==================== Signed-off-by: David S. Miller commit a73ed35052ca85ff627cf9646760b2a7d69ec5c8 Author: Suneel Garapati Date: Tue Jun 9 14:23:50 2015 +0530 drivers: ata: add support for Ceva sata host controller Adds support for Ceva sata host controller on Xilinx Zynq UltraScale+ MPSoC. Signed-off-by: Suneel Garapati Acked-by: Hans de Goede Signed-off-by: Tejun Heo drivers/ata/Kconfig | 9 ++ drivers/ata/Makefile | 1 + drivers/ata/ahci_ceva.c | 238 ++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 248 insertions(+) commit 03a740fb682c5ae9bf49ebad284986e9afc63958 Author: Suneel Garapati Date: Tue Jun 9 14:23:49 2015 +0530 devicetree:bindings: add devicetree bindings for ceva ahci adds bindings for CEVA AHCI SATA controller. optional property broken-gen2 is useful incase of hardware speed limitation. Signed-off-by: Suneel Garapati Signed-off-by: Tejun Heo Documentation/devicetree/bindings/ata/ahci-ceva.txt | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit 7eaf8b9f0b699732bab739ae47d4cad55e7ee4e3 Author: Dan Carpenter Date: Wed May 27 11:26:27 2015 +0300 clk: socfpga: remove a stray tab This line was indented too far. Signed-off-by: Dan Carpenter Acked-by: Dinh Nguyen Signed-off-by: Michael Turquette drivers/clk/socfpga/clk-gate-a10.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 80e7264c8f1b9b2ca73bc8db327fb3b73e626b7b Author: Jonghwa Lee Date: Mon Apr 27 20:36:36 2015 +0900 clk: exynos5433: Add CLK_IGNORE_UNUSED flag to clocks for SMC This patch adds 'CLK_IGNORE_UNUSED' flag to clocks which is required for operation of secure monitor call (smc). System will hang when it executes 'smc' with one of those clock is gated. All related clocks must be enabled. Signed-off-by: Jonghwa Lee Signed-off-by: Chanwoo Choi Signed-off-by: Sylwester Nawrocki drivers/clk/samsung/clk-exynos5433.c | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) commit eceb7aaec07d17a0facb4236c27f7d331c3cdf46 Author: Joonyoung Shim Date: Mon Apr 27 20:36:35 2015 +0900 clk: exynos5433: Add clock flag to support the DVFS of GPU This patch adds the CLK_SET_RATE_PARENT flag for 'aclk_g3d' clock and parent clocks becuase 'aclk_g3d' is used to change GPU frequency for DVFS (Dynamic Voltage Frequency Scaling) feature and adds CLK_IGNORE_UNUSED flags to 'aclk_asyncapbs_g3d'/'aclk_asyncapbm_g3d' clocks to access the SFR of the MALI device. Signed-off-by: Joonyoung Shim [cw00.choi: Add patch description and add CLK_SET_RATE_PARENT to 'aclk_g3d' clk] Signed-off-by: Chanwoo Choi Signed-off-by: Sylwester Nawrocki drivers/clk/samsung/clk-exynos5433.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit 2a9c67b2d3eb81b26493b5d2ee9d27eb4a806c53 Author: Hyungwon Hwang Date: Mon Apr 27 20:36:34 2015 +0900 clk: exynos5433: Add DIV_CPIF to the list of stored registers on suspend This DIV_CPIF register must be stored when the system is suspended, and must be restored on system resume. This patch adds the register to the list of restored registers. Signed-off-by: Hyungwon Hwang Signed-off-by: Chanwoo Choi Signed-off-by: Sylwester Nawrocki drivers/clk/samsung/clk-exynos5433.c | 1 + 1 file changed, 1 insertion(+) commit f7c172b5c11ff91ce103aa94a284fcf635554df0 Author: Chanwoo Choi Date: Mon Apr 27 20:36:33 2015 +0900 clk: exynos5433: Add CLK_SET_RATE_PARENT to support DVFS for big.LITTLE core This patch adds CLK_SET_RATE_PARENT flag to support DVFS of Cortex-{A53|A57} core (big.LITTLE core) because 'sclk_{apollo|atlas}' leaf clock is used to change the CPU frequency of Cortex-{A53|A57} core in arm_big_little.c driver. - 'apollo' word means the LITTLE core (Cortex-A53 core) in Exynos5433 TRM. - 'atlas' word means the big core (Cortex-A57 core) in Exynos5433 TRM. Signed-off-by: Chanwoo Choi Signed-off-by: Sylwester Nawrocki drivers/clk/samsung/clk-exynos5433.c | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) commit bec4e68e6a45cc502901743fcfacaa9c076dc6d5 Author: Don Skidmore Date: Tue Jun 9 17:55:59 2015 -0700 ixgbe: Remember to write ixfi changes after modifying This patch corrects a bug in ixgbe_setup_ixfi_x550em where we were reading and modifying IXGBE_KRM_LINK_CTRL_1 but forgot to write the results back. Signed-off-by: Don Skidmore Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d5ec98a01909ed98638303e58193f82d5de088f1 Author: Don Skidmore Date: Tue Jun 9 17:52:41 2015 -0700 ixgbe: fix X550 default set_phy_power method Even though X550 may later clear this value for certain devices set it initially to support copper. Signed-off-by: Don Skidmore Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 7e49d6165e4a6c5df7f32c16976b33bfd830b92c Author: Don Skidmore Date: Tue Jun 9 17:48:54 2015 -0700 ixgbe: Set lan_id before using I2C We need to call the set_lan_id before accessing I2C and this wasn't being done so this patch corrects that. Likewise we do the same for QSFP just to be consistent. In the X550 case this is even more important as with out it the mux is not controlled properly. Signed-off-by: Don Skidmore Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_phy.c | 6 +++--- drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) commit a4e293a5bfaf18a94c3421f3a424939ce3524ccd Author: Don Skidmore Date: Tue Jun 9 17:44:58 2015 -0700 ixgbe: add link check for X550 copper This patch adds ixgbe_check_link_t_X550em for checking copper PHY link. We check that both the MAC and external PHY have link. This is to avoid a false link up between the internal and external PHY when the external PHY doesn't have link. Signed-off-by: Don Skidmore Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c | 43 +++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) commit deda562a18552b083f19de2bb894b853ca790d73 Author: Don Skidmore Date: Tue Jun 9 17:39:46 2015 -0700 ixgbe: Add support for another X550 device. This patch adds support for another 10baseT X550 device. Signed-off-by: Don Skidmore Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 1 + drivers/net/ethernet/intel/ixgbe/ixgbe_phy.c | 1 + drivers/net/ethernet/intel/ixgbe/ixgbe_type.h | 1 + drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c | 7 +++++++ 4 files changed, 10 insertions(+) commit bef23de1e57654e9c05be3e428b9158908a327bb Author: Don Skidmore Date: Tue Jun 9 17:36:53 2015 -0700 ixgbe: fix X550 PHY function pointers A subset of the X550 function pointers didn't have default methods. This didn't cause any issue with previous X550 devices as they were all redefined. However future devices will need these default values. Signed-off-by: Don Skidmore Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit e2261bcc2af3e5e9ee1dfd29bfe6b8b7ba6e5ad1 Author: Don Skidmore Date: Tue Jun 9 17:02:35 2015 -0700 ixgbe: fix X550 devices init flow Reviewing the X550 copper init flow with the Si team resulted in a new simplified flow. We no longer wait for the PHY FW initialization complete bit to be set as this bit is only set once by the PHY at power on and then cleared on the first read. So only the first instance of running SW (or possibly MAC FW) needs to initialize the PHY. The PHY initialization has been simplified and now only requires that the PHY FW be un-stalled low-power mode or enabled the transceiver Signed-off-by: Don Skidmore Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c | 68 ++++++++------------------- 1 file changed, 19 insertions(+), 49 deletions(-) commit e87ce1cd89b527eb963bfc9654206d83661f0fdd Author: Don Skidmore Date: Tue Jun 9 17:00:05 2015 -0700 ixgbe: fix bug in not clearing counters for X550 devices This check was missed in when this new MAC type was added. Since these counts can be incremented for X550 we need to clear them. Signed-off-by: Don Skidmore Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 32e8d689dc12e29fcb6ba9c65a33473d0cbdfec8 Author: Todd E Brandt Date: Thu May 28 12:55:53 2015 -0700 PM / sleep: trace_device_pm_callback coverage in dpm_prepare/complete Move the trace_device_pm_callback locations for dpm_prepare and dpm_complete to encompass the attempt to capture the device mutex prior to callback. This is needed by analyze_suspend to identify gaps in the trace output caused by the delay in locking the mutex for a device. Signed-off-by: Todd Brandt Signed-off-by: Rafael J. Wysocki drivers/base/power/main.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit 45788d2af9280e7d80dc51b51c0d7641d3ae6998 Author: Don Skidmore Date: Tue Jun 9 16:59:04 2015 -0700 ixgbe: fix issue with sfp events with new X550 devices Add checks for systems that don't have SFP's to avoid incorrectly acting on interrupts that are falsely interpreted as SFP events. We do this by updating the ixgbe_is_sfp to be aware of the new X550 devices. This also includes a modified check generating the EICR mask to be more forward-looking. Signed-off-by: Don Skidmore Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 47 ++++++++++++--------------- 1 file changed, 21 insertions(+), 26 deletions(-) commit 597f22d6aa46105d69648a5c042d1fabe182c6f6 Author: Don Skidmore Date: Tue Jun 9 16:52:02 2015 -0700 ixgbe: add support for interrupts from X550 external PHY This patch adds support for receiving interrupts from a external copper PHY for the X550 part. This includes enabling, detection as well as re-enablement. Signed-off-by: Don Skidmore Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe.h | 1 + drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 32 +++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) commit f44e751b861820cc41d5b25f9ef55d169737fca4 Author: Don Skidmore Date: Tue Jun 9 16:36:23 2015 -0700 ixgbe: Add const string for overheat message The over heat message is displayed for multiple reasons but the text is cut-n-pasted for each of these cases. This patch pulls the text from the same location. I noticed this as I am about to add another case. Signed-off-by: Don Skidmore Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) commit f4410d2ccb01ff0b384607116677e4e759d0e2bc Author: Don Skidmore Date: Tue Jun 9 16:29:51 2015 -0700 ixgbe: Add reset for X550 device This patch adds a PHY reset function ixgbe_reset_phy_t_X550em. Which allows devices that have LASI support in enable their interrupt. Signed-off-by: Don Skidmore Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit c3dc4c09f10ac82f5517b055c8b01abf55abdec9 Author: Don Skidmore Date: Tue Jun 9 16:26:44 2015 -0700 ixgbe: add X550 support for external PHY and forced 1G/10G support This patch adds x550 external PHY interrupt and forced 1G/10G support. This included enabling and handling LSC and thermal sensor interrupt. ixgbe_handle_lasi() has been added for handling the interrupts received over SDP0 from the external 10baseT PHY. ixgbe_enable_lasi_ext_t_x550em and ixgbe_get_lasi_ext_t_x550em have been added to X550em to enable mask and check interrupt flags for the external PHY. Forced 1G/10G link speed is handled via ixgbe_mac_link_t_X550em. ixgbe_seupt_mac_link_t_X550em sets up the internal PHY and external PHY to either iXFI (10G) or KX (1G) based on the user selected auto advertised link speed setting. Then sets up the external PHY auto advertised link speed. Signed-off-by: Don Skidmore Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_type.h | 21 + drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c | 611 +++++++++++++++++++------- 2 files changed, 472 insertions(+), 160 deletions(-) commit ab5fe0c574edae2831202ce375f8ee2fc6acd002 Author: Don Skidmore Date: Tue Jun 9 16:18:56 2015 -0700 ixgbe: Restore ESDP settings after MAC reset The I2C mux control relies on the SDP setting in the ESDP register so it is necessary to restore the value after a MAC reset. Combine all this functionality in to a support function. Signed-off-by: Don Skidmore Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c | 38 +++++++++++++++------------ 1 file changed, 21 insertions(+), 17 deletions(-) commit 961fac889c0f2e1930092b6de00043cdd1cb2942 Author: Don Skidmore Date: Tue Jun 9 16:09:47 2015 -0700 ixgbe: Add a PHY power state method This new method will control the PHY power state. You pass in the state you wish to change to (ether on or off). For cases where this method is not used the current PHY power state behavior is maintained. Signed-off-by: Don Skidmore Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_82598.c | 2 +- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 15 ++++++++++++ drivers/net/ethernet/intel/ixgbe/ixgbe_phy.c | 33 ++++++++++++++++++++++++++ drivers/net/ethernet/intel/ixgbe/ixgbe_phy.h | 1 + drivers/net/ethernet/intel/ixgbe/ixgbe_type.h | 3 +++ drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c | 1 + drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c | 1 + 7 files changed, 55 insertions(+), 1 deletion(-) commit c2c78d5c35e4f4a9226360bc432dc81b47f163e4 Author: Don Skidmore Date: Tue Jun 9 16:04:59 2015 -0700 ixgbe: add define for X557 PHY ID Add a define for the new PHY identification as well as it's mapping to the correct PHY type. Also allow ethtool to identify this type as well. Signed-off-by: Don Skidmore Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 1 + drivers/net/ethernet/intel/ixgbe/ixgbe_phy.c | 3 +++ drivers/net/ethernet/intel/ixgbe/ixgbe_type.h | 1 + 3 files changed, 5 insertions(+) commit df8c26fdc6605638c6aaa3d6b62e8a5628f98edc Author: Don Skidmore Date: Tue Jun 9 16:00:17 2015 -0700 ixgbe: add support for WoL and autoneg FC for some X550 devices These Device ID could support both WoL and autoneg flow control. In the case of WoL this is indicated by the eeprom. This patch enables these devices this support. Signed-off-by: Don Skidmore Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_common.c | 2 ++ drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 4 ++++ 2 files changed, 6 insertions(+) commit 9a900ecaac65ecc487a8a223df80fe0f09d18080 Author: Don Skidmore Date: Tue Jun 9 17:15:01 2015 -0700 ixgbe: add array of MAC type dependent values Some of the register addresses and format where unfortunately changed between MAC types. To get around this we add a const u32 *mvals pointer to the ixgbe_hw struct to point to an array of mac-type-dependent values. These can include register offsets, masks, whatever can be in a u32. When the ixgbe_hw struct is initialized, a pointer to the appropriate array must be set. Signed-off-by: Don Skidmore Tested-by: Phil Schmitt Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_82598.c | 1 + drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c | 7 +- drivers/net/ethernet/intel/ixgbe/ixgbe_common.c | 59 +++--- drivers/net/ethernet/intel/ixgbe/ixgbe_common.h | 2 + drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 6 +- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 43 ++-- drivers/net/ethernet/intel/ixgbe/ixgbe_phy.c | 44 ++-- drivers/net/ethernet/intel/ixgbe/ixgbe_type.h | 246 +++++++++++++++++++---- drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c | 41 ++-- drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c | 12 +- 10 files changed, 328 insertions(+), 133 deletions(-) commit 11e584cfb8a9d2226151fd39bfa74d09e575f72d Author: Viresh Kumar Date: Wed Jun 10 02:11:45 2015 +0200 cpufreq: Don't allow updating inactive policies from sysfs Later commits would change the way policies are managed today. Policies wouldn't be freed on cpu hotplug (currently they aren't freed only for suspend), and while the CPU is offline, the sysfs cpufreq files would still be present. User may accidentally try to update the sysfs files in following directory: '/sys/devices/system/cpu/cpuX/cpufreq/'. And that would result in undefined behavior as policy wouldn't be active then. Apart from updating the store() routine, we also update __cpufreq_get() which can call cpufreq_out_of_sync(). The later routine tries to update policy->cur and starts notifying kernel about it. Signed-off-by: Viresh Kumar Acked-by: Saravana Kannan Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 9056a23ba19d911d4a079b8ca543fb8ebffa7c56 Author: Tina Ruchandani Date: Sun May 31 04:17:06 2015 -0300 [media] dvb-frontend: Replace timeval with ktime_t struct timeval uses a 32-bit seconds representation which will overflow in the year 2038 and beyond. This patch replaces the usage of struct timeval with ktime_t which is a 64-bit timestamp and is year 2038 safe. This patch is part of a larger attempt to remove all instances of 32-bit timekeeping variables (timeval, timespec, time_t) which are not year 2038 safe, from the kernel. [mchehab@osg.samsung.com: add a missing parenthesis, breaking compilation] Suggested-by: Arnd Bergmann Signed-off-by: Tina Ruchandani Reviewed-by: Arnd Bergmann Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-core/dvb_frontend.c | 41 ++++++++++------------------------- drivers/media/dvb-core/dvb_frontend.h | 3 +-- drivers/media/dvb-frontends/stv0299.c | 12 +++++----- 3 files changed, 19 insertions(+), 37 deletions(-) commit 6c1e45917dec5e7c99ba8125fd8cc50f6e482a21 Author: Doug Smythies Date: Mon Jun 1 21:12:34 2015 -0700 intel_pstate: Force setting target pstate when required During initialization and exit it is possible that the target pstate might not actually be set. Furthermore, the result can be that the driver and the processor are out of synch and, under some conditions, the driver might never send the processor the proper target pstate. This patch adds a bypass or do_checks flag to the call to intel_pstate_set_pstate. If bypass, then specifically bypass clamp checks and the do not send if it is the same as last time check. If do_checks, then, and as before, do the current policy clamp checks, and do not do actual send if the new target is the same as the old. Signed-off-by: Doug Smythies Reported-by: Marien Zwart Reported-by: Alex Lochmann Reported-by: Piotr Ko?aczkowski Reported-by: Clemens Eisserer Tested-by: Marien Zwart Tested-by: Doug Smythies [ rjw: Dropped pointless symbol definitions, rebased ] Signed-off-by: Rafael J. Wysocki drivers/cpufreq/intel_pstate.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) commit d3525b632a0b5e113fb78b7db84598e082cf903b Author: Jemma Denson Date: Sat May 30 15:10:06 2015 -0300 [media] b2c2: Add option to skip the first 6 pid filters The flexcop bridge chip has two banks of hardware pid filters - an initial 6, and on some chip revisions an additional bank of 32. A bug is present on the initial 6 - when changing transponders one of two PAT packets from the old transponder would be included in the initial packets from the new transponder. This usually transpired with userspace programs complaining about services missing, because they are seeing a PAT that they would not be expecting. Running in full TS mode does not exhibit this problem, neither does using just the additional 32. This patch adds in an option to not use the inital 6 and solely use just the additional 32, and enables this option for the SkystarS2 card. Other cards can be added as required if they also have this bug. Signed-off-by: Jemma Denson Signed-off-by: Mauro Carvalho Chehab drivers/media/common/b2c2/flexcop-common.h | 1 + drivers/media/common/b2c2/flexcop-fe-tuner.c | 3 +++ drivers/media/common/b2c2/flexcop-hw-filter.c | 16 ++++++++++++++-- 3 files changed, 18 insertions(+), 2 deletions(-) commit f16255eb930173f386db0ce78ed41401aa8a94a6 Author: Doug Smythies Date: Sun May 31 07:46:47 2015 -0700 intel_pstate: change some inconsistent debug information Commit ce717613f3fb (intel_pstate: Turn per cpu printk into pr_debug) turned per cpu printk into pr_debug. However, only half of the change was done, introducing an inconsistency between entry and exit from driver pstate control. This patch changes the exit message to pr_debug also. The various messages are inconsistent with respect to any identifier text that can be used to help isolate the desired information from a huge log. This patch makes a consistent identifier portion of the string. Amends: ce717613f3fb (intel_pstate: Turn per cpu printk into pr_debug) Signed-off-by: Doug Smythies Signed-off-by: Rafael J. Wysocki drivers/cpufreq/intel_pstate.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 1dace0116d0b05c967d94644fc4dfe96be2ecd3d Author: Bjorn Helgaas Date: Tue Jun 9 18:54:07 2015 -0500 x86/PCI: Use host bridge _CRS info on Foxconn K8M890-8237A The Foxconn K8M890-8237A has two PCI host bridges, and we can't assign resources correctly without the information from _CRS that tells us which address ranges are claimed by which bridge. In the bugs mentioned below, we incorrectly assign a sound card address (this example is from 1033299): bus: 00 index 2 [mem 0x80000000-0xfcffffffff] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-7f]) pci_root PNP0A08:00: host bridge window [mem 0x80000000-0xbfefffff] (ignored) pci_root PNP0A08:00: host bridge window [mem 0xc0000000-0xdfffffff] (ignored) pci_root PNP0A08:00: host bridge window [mem 0xf0000000-0xfebfffff] (ignored) ACPI: PCI Root Bridge [PCI1] (domain 0000 [bus 80-ff]) pci_root PNP0A08:01: host bridge window [mem 0xbff00000-0xbfffffff] (ignored) pci 0000:80:01.0: [1106:3288] type 0 class 0x000403 pci 0000:80:01.0: reg 10: [mem 0xbfffc000-0xbfffffff 64bit] pci 0000:80:01.0: address space collision: [mem 0xbfffc000-0xbfffffff 64bit] conflicts with PCI Bus #00 [mem 0x80000000-0xfcffffffff] pci 0000:80:01.0: BAR 0: assigned [mem 0xfd00000000-0xfd00003fff 64bit] BUG: unable to handle kernel paging request at ffffc90000378000 IP: [] azx_create+0x37c/0x822 [snd_hda_intel] We assigned 0xfd_0000_0000, but that is not in any of the host bridge windows, and the sound card doesn't work. Turn on pci=use_crs automatically for this system. Link: https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/931368 Link: https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/1033299 Signed-off-by: Bjorn Helgaas CC: stable@vger.kernel.org arch/x86/pci/acpi.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 3d56402d3fa8d10749eeb36293dd1992bd5ad0c3 Author: Rafael J. Wysocki Date: Wed Jun 10 01:32:38 2015 +0200 ACPI / PM: Add missing pm_generic_complete() invocation Add missing invocation of pm_generic_complete() to acpi_subsys_complete() to allow ->complete callbacks provided by the drivers of devices using the ACPI PM domain to be executed during system resume. Fixes: f25c0ae2b4c4 (ACPI / PM: Avoid resuming devices in ACPI PM domain during system suspend) Cc: 3.16+ # 3.16+ Signed-off-by: Rafael J. Wysocki drivers/acpi/device_pm.c | 1 + 1 file changed, 1 insertion(+) commit a7068e3932eee8268c4ce4e080a338ee7b8a27bf Author: Stefan Wahren Date: Tue Jun 9 20:09:42 2015 +0000 regulator: core: fix constraints output buffer The buffer for condtraints debug isn't big enough to hold the output in all cases. So fix this issue by increasing the buffer. Signed-off-by: Stefan Wahren Signed-off-by: Mark Brown Cc: drivers/regulator/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 25e057fdde3b33c0d18605ed27b59336a3441925 Author: Takeshi Yoshimura Date: Wed May 27 11:28:14 2015 -0300 [media] ddbridge: Do not free_irq() if request_irq() failed My static checker detected that free_irq() is called even after request_irq() failed in ddb_probe(). In this case, the kernel may try to free dev->pdev->irq although the IRQ is not assigned. This event rarely occurs, but always introduces a warning if it happens. "goto fail1" always results in disabling enabled MSI and releasing a requested IRQ. It seems like the former handling is necessary. So I added a conditional branch before the free_irq() (stat == 0 means request_irq() succeeds). Signed-off-by: Takeshi Yoshimura Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/ddbridge/ddbridge-core.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit ee8defeceafa05401573f3d2f1e3feca33e5a83c Author: Piotr S. Staszewski Date: Tue May 26 12:02:06 2015 -0300 [media] staging: media: omap4iss: Reformat overly long lines This reformats lines that were previously above 80 characters long, improving readability and making checkpatch.pl happier. Signed-off-by: Piotr S. Staszewski Signed-off-by: Mauro Carvalho Chehab drivers/staging/media/omap4iss/iss_csi2.c | 18 +++++++++++------ drivers/staging/media/omap4iss/iss_ipipe.c | 30 ++++++++++++++++++---------- drivers/staging/media/omap4iss/iss_ipipeif.c | 10 ++++++---- drivers/staging/media/omap4iss/iss_resizer.c | 8 +++++--- 4 files changed, 42 insertions(+), 24 deletions(-) commit 34668350616d964bfb963561f48f474c4ee119c7 Author: Ksenija Stanojevic Date: Fri May 22 12:58:42 2015 -0300 [media] Staging: media: lirc: Replace timeval with ktime_t 'struct timeval last_tv' is used to get the time of last signal change and 'struct timeval last_intr_tv' is used to get the time of last UART interrupt. 32-bit systems using 'struct timeval' will break in the year 2038, so we have to replace that code with more appropriate types. Here struct timeval is replaced with ktime_t. Signed-off-by: Ksenija Stanojevic Reviewed-by: Arnd Bergmann Signed-off-by: Mauro Carvalho Chehab drivers/staging/media/lirc/lirc_sir.c | 75 ++++++++++++++--------------------- 1 file changed, 30 insertions(+), 45 deletions(-) commit bba795fc0e03c653dedd234b11360efaff35a043 Author: Mauro Carvalho Chehab Date: Tue Jun 9 18:43:47 2015 -0300 [media] Documentation: update cardlists The card lists at Documentation/video4linux are missing some boards. Add them. Signed-off-by: Mauro Carvalho Chehab Documentation/video4linux/CARDLIST.cx23885 | 9 ++++++++- Documentation/video4linux/CARDLIST.em28xx | 2 ++ Documentation/video4linux/CARDLIST.saa7164 | 3 +++ 3 files changed, 13 insertions(+), 1 deletion(-) commit de983454d6bd1c050679ceeb70189161d569c488 Author: Dmitry Eremin-Solenikov Date: Thu May 21 15:53:01 2015 -0300 [media] saa7134: add AverMedia AverTV/505 card support Add AverMedia AverTV/505 card to saa7134 driver. It is a card bearing SAA7130HL chip and FQ1216ME/IH-3 tuner. Working: Composite, TV and IR remote control. Untested: S-Video. [mchehab@osg.samsung.com: fix CodingStyle] Signed-off-by: Dmitry Eremin-Solenikov Signed-off-by: Mauro Carvalho Chehab Documentation/video4linux/CARDLIST.saa7134 | 1 + drivers/media/pci/saa7134/saa7134-cards.c | 42 +++++++++++++++++++++++++++++- drivers/media/pci/saa7134/saa7134-input.c | 2 ++ drivers/media/pci/saa7134/saa7134.h | 1 + 4 files changed, 45 insertions(+), 1 deletion(-) commit 4b7574fb3cac1507b12af9f8e22d50cd1ec9673b Author: Jemma Denson Date: Thu May 21 06:29:23 2015 -0300 [media] b2c2: Mismatch in config ifdefs for SkystarS2 Compilation warning issued by kbuild test robot: >> drivers/media/common/b2c2/flexcop-fe-tuner.c:31:12: warning: 'flexcop_fe_request_firmware' defined but not used [-Wunused-function] static int flexcop_fe_request_firmware(struct dvb_frontend *fe, This patch fixes a mismatch in Kconfig define checks. One had a check for just CX24120, the other is checking for both CX24120 and ISL6421. Signed-off-by: Jemma Denson Signed-off-by: Mauro Carvalho Chehab drivers/media/common/b2c2/flexcop-fe-tuner.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit eee1d06dc2ac81bc6307326f286932c04136c1af Author: Tommi Rantala Date: Wed May 20 04:51:29 2015 -0300 [media] cx231xx: Add support for Terratec Grabby Add support for the Terratec Grabby with USB ID 0ccd:00a6. Signed-off-by: Tommi Rantala Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/cx231xx/cx231xx-cards.c | 28 ++++++++++++++++++++++++++++ drivers/media/usb/cx231xx/cx231xx.h | 1 + 2 files changed, 29 insertions(+) commit ae1c75d6ce3aeb0515701fbd68182ea19fed8e8f Author: Arnd Bergmann Date: Tue May 19 18:34:33 2015 -0300 [media] coda: remove extraneous TRACE_SYSTEM_STRING The coda tracing code causes lots of warnings like In file included from /git/arm-soc/include/trace/define_trace.h:90:0, from /git/arm-soc/drivers/media/platform/coda/trace.h:203, from /git/arm-soc/drivers/media/platform/coda/coda-bit.c:34: /git/arm-soc/include/trace/ftrace.h:28:0: warning: "TRACE_SYSTEM_STRING" redefined #define TRACE_SYSTEM_STRING __app(TRACE_SYSTEM_VAR,__trace_system_name) ^ In file included from /git/arm-soc/include/trace/define_trace.h:83:0, from /git/arm-soc/drivers/media/platform/coda/trace.h:203, from /git/arm-soc/drivers/media/platform/coda/coda-bit.c:34: /git/arm-soc/drivers/media/platform/coda/./trace.h:12:0: note: this is the location of the previous definition #define TRACE_SYSTEM_STRING __stringify(TRACE_SYSTEM) >From what I can tell, this is just the result of a bogus TRACE_SYSTEM_STRING definition, and removing that one makes the warnings go away. Fixes: 9a1a8f9953f ("[media] coda: Add tracing support") Signed-off-by: Arnd Bergmann Acked-by: Philipp Zabel Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/coda/trace.h | 2 -- 1 file changed, 2 deletions(-) commit ae11f7efda05dc568521924c890c80d0be908d43 Author: Steven Rostedt Date: Tue Jun 9 17:30:11 2015 -0400 blktrace: Add blktrace.c to BLOCK LAYER in MAINTAINERS file blktrace.c is currently maintained by Jens Axboe as it is used for debugging the block layer. That file should be added to the MAINTAINERS file under BLOCK LAYER, such that people will know to Cc the BLOCK LAYER maintainer when modifying that file. Currently: $ scripts/get_maintainer.pl -f kernel/trace/blktrace.c Steven Rostedt (maintainer:TRACING) Ingo Molnar (maintainer:TRACING) linux-kernel@vger.kernel.org (open list) After the patch: $ scripts/get_maintainer.pl -f kernel/trace/blktrace.c Jens Axboe (maintainer:BLOCK LAYER) Steven Rostedt (maintainer:TRACING) Ingo Molnar (maintainer:TRACING) linux-kernel@vger.kernel.org (open list) Signed-off-by: Steven Rostedt Signed-off-by: Jens Axboe MAINTAINERS | 1 + 1 file changed, 1 insertion(+) commit 09f2082e23ad8e89e10152b8701d3511ace45290 Author: Mauro Carvalho Chehab Date: Tue May 19 08:00:56 2015 -0300 [media] usb drivers: use BUG_ON() instead of if () BUG Some USB drivers have a logic at the VB buffer handling like: if (in_interrupt()) BUG(); Use, instead: BUG_ON(in_interrupt()); Btw, this logic looks weird on my eyes. We should convert them to use VB2, in order to avoid those crappy things. Signed-off-by: Mauro Carvalho Chehab Acked-by: Lad, Prabhakar Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/cx231xx/cx231xx-417.c | 3 +-- drivers/media/usb/cx231xx/cx231xx-vbi.c | 3 +-- drivers/media/usb/cx231xx/cx231xx-video.c | 3 +-- drivers/media/usb/tm6000/tm6000-video.c | 3 +-- drivers/media/usb/zr364xx/zr364xx.c | 3 +-- 5 files changed, 5 insertions(+), 10 deletions(-) commit 61b2fc2bb53f162121f4267f10d2a662911f3e86 Author: Frederic Danis Date: Tue Jun 9 16:15:37 2015 +0200 Bluetooth: hci_uart: Add bcm_set_baudrate() Add vendor specific command to change controller device speed. Signed-off-by: Frederic Danis Signed-off-by: Marcel Holtmann drivers/bluetooth/btbcm.h | 12 ++++++++++ drivers/bluetooth/hci_bcm.c | 58 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 70 insertions(+) commit fa8cb6444c3236d2bad7460bdfdb2685f82b7ee4 Author: Mauro Carvalho Chehab Date: Thu May 14 19:27:45 2015 -0300 [media] ov2659: Don't depend on subdev API The subdev API is optional. No driver should depend on it. Avoid compilation breakages if subdev API is not selected: drivers/media/i2c/ov2659.c: In function ‘ov2659_get_fmt’: drivers/media/i2c/ov2659.c:1054:3: error: implicit declaration of function ‘v4l2_subdev_get_try_format’ [-Werror=implicit-function-declaration] mf = v4l2_subdev_get_try_format(sd, cfg, 0); ^ drivers/media/i2c/ov2659.c:1054:6: warning: assignment makes pointer from integer without a cast mf = v4l2_subdev_get_try_format(sd, cfg, 0); ^ drivers/media/i2c/ov2659.c: In function ‘ov2659_set_fmt’: drivers/media/i2c/ov2659.c:1129:6: warning: assignment makes pointer from integer without a cast mf = v4l2_subdev_get_try_format(sd, cfg, fmt->pad); ^ drivers/media/i2c/ov2659.c: In function ‘ov2659_open’: drivers/media/i2c/ov2659.c:1264:38: error: ‘struct v4l2_subdev_fh’ has no member named ‘pad’ v4l2_subdev_get_try_format(sd, fh->pad, 0); ^ Signed-off-by: Mauro Carvalho Chehab Tested-by: Lad, Prabhakar drivers/media/i2c/ov2659.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) commit 04bd844a03b2f634b21b35d411e59aebdc087085 Author: Hans Verkuil Date: Mon Jun 8 09:26:20 2015 -0300 [media] bdisp: update MAINTAINERS Add entry for the bdisp driver to the MAINTAINERS file. Signed-off-by: Hans Verkuil Acked-by: Fabien Dessenne Signed-off-by: Mauro Carvalho Chehab MAINTAINERS | 8 ++++++++ 1 file changed, 8 insertions(+) commit 34b6beb65beb7f7726baa771661c671310445265 Author: Fabien Dessenne Date: Tue May 12 13:02:11 2015 -0300 [media] bdisp: add debug file system Creates 5 debugfs entries to dump the last HW request, the last HW node (=command), the HW registers and the recent HW performance (time & fps) Signed-off-by: Fabien Dessenne Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/sti/bdisp/Makefile | 2 +- drivers/media/platform/sti/bdisp/bdisp-debug.c | 668 +++++++++++++++++++++++++ drivers/media/platform/sti/bdisp/bdisp-hw.c | 40 ++ drivers/media/platform/sti/bdisp/bdisp-v4l2.c | 17 +- drivers/media/platform/sti/bdisp/bdisp.h | 30 ++ 5 files changed, 755 insertions(+), 2 deletions(-) commit 28ffeebbb7bdc0dd7899286b63f3c359d43d0a1a Author: Fabien Dessenne Date: Tue May 12 13:02:10 2015 -0300 [media] bdisp: 2D blitter driver using v4l2 mem2mem framework This v4l2 mem2mem driver is a 2D blitter for STMicroelectronics SoC. It uses the v4l2 mem2mem framework. The following features are supported and tested: - Color format conversion (RGB32, RGB24, RGB16, NV12, YUV420P) - Copy - Scale - Flip - Deinterlace - Wide (4K) picture support - Crop Signed-off-by: Fabien Dessenne Signed-off-by: Hans Verkuil [hans.verkuil@cisco.com: added missing slab.h include to bdisp-v4l2.c] Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/Kconfig | 10 + drivers/media/platform/Makefile | 2 + drivers/media/platform/sti/bdisp/Kconfig | 9 + drivers/media/platform/sti/bdisp/Makefile | 3 + drivers/media/platform/sti/bdisp/bdisp-filter.h | 346 ++++++ drivers/media/platform/sti/bdisp/bdisp-hw.c | 783 +++++++++++++ drivers/media/platform/sti/bdisp/bdisp-reg.h | 235 ++++ drivers/media/platform/sti/bdisp/bdisp-v4l2.c | 1405 +++++++++++++++++++++++ drivers/media/platform/sti/bdisp/bdisp.h | 186 +++ 9 files changed, 2979 insertions(+) commit de6a8ec9822dbe2ce1f5a273cfac9e16032387e2 Author: Jaegeuk Kim Date: Mon Jun 8 17:51:10 2015 -0700 f2fs: drop the volatile_write flag only When aborting volatile_writes, let's drop its flag and give up any further volatile_writes. Signed-off-by: Jaegeuk Kim fs/f2fs/file.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 5a54cd2a3fa160c338ee147bc2f0ac9e48d9fb27 Author: Fabien Dessenne Date: Tue May 12 13:02:09 2015 -0300 [media] bdisp: add DT bindings documentation This adds DT binding documentation for STMicroelectronics bdisp driver. Signed-off-by: Fabien Dessenne Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab .../devicetree/bindings/media/st,stih4xx.txt | 32 ++++++++++++++++++++++ 1 file changed, 32 insertions(+) commit 6eab8043f9b91a998dc06ce0b770b9664e51bfc3 Author: Mauro Carvalho Chehab Date: Sun Jun 7 19:29:43 2015 -0300 [media] DocBook: Change format for enum dmx_output documentation Use a table for the Demux output. No new information added here. They were all merged inside the table. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/Makefile | 13 +++---- Documentation/DocBook/media/dvb/demux.xml | 57 ++++++++++++++++++++----------- include/uapi/linux/dvb/dmx.h | 6 ++-- 3 files changed, 47 insertions(+), 29 deletions(-) commit 6c72edab024757267f43de337f093203efea714b Author: Mauro Carvalho Chehab Date: Sun Jun 7 19:34:50 2015 -0300 [media] dvb: dmx.h: don't use anonymous enums There are several anonymous enums here, used via a typedef. Well, we don't like typedefs on Kernel, so let's de-anonimize those enums. Then, latter, we may be able to get rid of the typedefs, at least from Kernelspace. Signed-off-by: Mauro Carvalho Chehab include/uapi/linux/dvb/dmx.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 486ef85e93a4829e8f49d3bfe3ee3a29379868d3 Author: Mauro Carvalho Chehab Date: Sun Jun 7 16:44:21 2015 -0300 [media] dvb: frontend.h: add a note for the deprecated enums/structs Let be clear, at the header, about what got deprecated. Signed-off-by: Mauro Carvalho Chehab include/uapi/linux/dvb/frontend.h | 6 ++++++ 1 file changed, 6 insertions(+) commit 81a7c6d9bb14956d9feb619ae724aaa90ea55288 Author: Mauro Carvalho Chehab Date: Sun Jun 7 16:33:30 2015 -0300 [media] dvb: frontend.h: improve dvb_frontent_parameters comment The comment for struct dvb_frontend_parameters is weird, as it mixes delivery system name (ATSC) with modulation names (QPSK, QAM, OFDM). Use delivery system names there on the frequency comment, as this is clearer, specially after 2GEN delivery systems. While here, add comments at the union, to make live easier for ones that may try to understand the convention used by the legacy API. Signed-off-by: Mauro Carvalho Chehab include/uapi/linux/dvb/frontend.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 76add03db97c11142e30d1e63c6f19e179b8b6c6 Author: Mauro Carvalho Chehab Date: Sun Jun 7 16:28:33 2015 -0300 [media] frontend: Fix a typo at the comments The description of struct dtv_stats has a spmall typo: FE_SCALE_DECIBELS instead of FE_SCALE_DECIBEL Signed-off-by: Mauro Carvalho Chehab include/uapi/linux/dvb/frontend.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 429c2024cb7b4e3be50dae9a5976692bf733f08c Author: Mauro Carvalho Chehab Date: Sun Jun 7 16:17:56 2015 -0300 [media] DocBook: Remove comments before parsing enum values The comments may affect enum value parsing. Use cpp to remove them. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b1e28ffaebb96feb2d3a07be9468a52d0782d427 Author: Mauro Carvalho Chehab Date: Sun Jun 7 15:01:15 2015 -0300 [media] frontend: move legacy typedefs to the end Just userspace need those typedefs. So, put it in the compat part of the header. Signed-off-by: Mauro Carvalho Chehab include/uapi/linux/dvb/frontend.h | 59 +++++++++++---------------------------- 1 file changed, 16 insertions(+), 43 deletions(-) commit af6392dec9421ad9de973d1f0558813f52537eba Author: Mauro Carvalho Chehab Date: Sun Jun 7 15:00:17 2015 -0300 [media] frontend: Move legacy API enums/structs to the end In order to better organize the header file, move the legacy API (DVBv3) support to the end, just before the ioctl definitions. This way, we can use just one #if for all of them. Signed-off-by: Mauro Carvalho Chehab include/uapi/linux/dvb/frontend.h | 116 +++++++++++++++++++------------------- 1 file changed, 58 insertions(+), 58 deletions(-) commit 0df289a209e02f0926042ab07d7d2595ea2d2e9b Author: Mauro Carvalho Chehab Date: Sun Jun 7 14:53:52 2015 -0300 [media] dvb: Get rid of typedev usage for enums The DVB API was originally defined using typedefs. This is against Kernel CodingStyle, and there's no good usage here. While we can't remove its usage on userspace, we can avoid its usage in Kernelspace. So, let's do it. This patch was generated by this shell script: for j in $(grep typedef include/uapi/linux/dvb/frontend.h |cut -d' ' -f 3); do for i in $(find drivers/media -name '*.[ch]' -type f) $(find drivers/staging/media -name '*.[ch]' -type f); do sed "s,${j}_t,enum $j," <$i >a && mv a $i; done; done While here, make CodingStyle fixes on the affected lines. Signed-off-by: Mauro Carvalho Chehab Acked-by: Stefan Richter # for drivers/media/firewire/* drivers/media/common/b2c2/flexcop-fe-tuner.c | 7 ++-- drivers/media/common/siano/smsdvb-main.c | 6 +-- drivers/media/common/siano/smsdvb.h | 2 +- drivers/media/dvb-core/dvb_frontend.c | 27 +++++++----- drivers/media/dvb-core/dvb_frontend.h | 42 ++++++++++--------- drivers/media/dvb-frontends/a8293.c | 2 +- drivers/media/dvb-frontends/af9013.c | 4 +- drivers/media/dvb-frontends/af9033.c | 4 +- drivers/media/dvb-frontends/as102_fe.c | 4 +- drivers/media/dvb-frontends/atbm8830.c | 3 +- drivers/media/dvb-frontends/au8522_dig.c | 4 +- drivers/media/dvb-frontends/au8522_priv.h | 2 +- drivers/media/dvb-frontends/bcm3510.c | 2 +- drivers/media/dvb-frontends/cx22700.c | 9 ++-- drivers/media/dvb-frontends/cx22702.c | 2 +- drivers/media/dvb-frontends/cx24110.c | 19 +++++---- drivers/media/dvb-frontends/cx24116.c | 38 +++++++++-------- drivers/media/dvb-frontends/cx24117.c | 40 +++++++++--------- drivers/media/dvb-frontends/cx24120.c | 50 +++++++++++------------ drivers/media/dvb-frontends/cx24123.c | 18 ++++---- drivers/media/dvb-frontends/cxd2820r_c.c | 2 +- drivers/media/dvb-frontends/cxd2820r_core.c | 5 ++- drivers/media/dvb-frontends/cxd2820r_priv.h | 8 ++-- drivers/media/dvb-frontends/cxd2820r_t.c | 2 +- drivers/media/dvb-frontends/cxd2820r_t2.c | 2 +- drivers/media/dvb-frontends/dib3000mb.c | 7 ++-- drivers/media/dvb-frontends/dib3000mc.c | 2 +- drivers/media/dvb-frontends/dib7000m.c | 2 +- drivers/media/dvb-frontends/dib7000p.c | 6 +-- drivers/media/dvb-frontends/dib8000.c | 10 ++--- drivers/media/dvb-frontends/dib9000.c | 4 +- drivers/media/dvb-frontends/drx39xyj/drxj.c | 2 +- drivers/media/dvb-frontends/drxd_hard.c | 2 +- drivers/media/dvb-frontends/drxk_hard.c | 2 +- drivers/media/dvb-frontends/drxk_hard.h | 2 +- drivers/media/dvb-frontends/ds3000.c | 13 +++--- drivers/media/dvb-frontends/dvb_dummy_fe.c | 9 ++-- drivers/media/dvb-frontends/ec100.c | 2 +- drivers/media/dvb-frontends/hd29l2.c | 2 +- drivers/media/dvb-frontends/hd29l2_priv.h | 2 +- drivers/media/dvb-frontends/isl6405.c | 3 +- drivers/media/dvb-frontends/isl6421.c | 6 ++- drivers/media/dvb-frontends/l64781.c | 2 +- drivers/media/dvb-frontends/lg2160.c | 2 +- drivers/media/dvb-frontends/lgdt3305.c | 4 +- drivers/media/dvb-frontends/lgdt3306a.c | 9 ++-- drivers/media/dvb-frontends/lgdt330x.c | 8 ++-- drivers/media/dvb-frontends/lgs8gl5.c | 2 +- drivers/media/dvb-frontends/lgs8gxx.c | 3 +- drivers/media/dvb-frontends/lnbp21.c | 4 +- drivers/media/dvb-frontends/lnbp22.c | 3 +- drivers/media/dvb-frontends/m88ds3103.c | 9 ++-- drivers/media/dvb-frontends/m88ds3103_priv.h | 4 +- drivers/media/dvb-frontends/m88rs2000.c | 19 +++++---- drivers/media/dvb-frontends/mb86a16.c | 7 ++-- drivers/media/dvb-frontends/mb86a16.h | 3 +- drivers/media/dvb-frontends/mb86a20s.c | 6 +-- drivers/media/dvb-frontends/mt312.c | 17 ++++---- drivers/media/dvb-frontends/mt352.c | 2 +- drivers/media/dvb-frontends/nxt200x.c | 2 +- drivers/media/dvb-frontends/nxt6000.c | 12 ++++-- drivers/media/dvb-frontends/or51132.c | 6 +-- drivers/media/dvb-frontends/or51211.c | 2 +- drivers/media/dvb-frontends/rtl2830.c | 2 +- drivers/media/dvb-frontends/rtl2830_priv.h | 2 +- drivers/media/dvb-frontends/rtl2832.c | 2 +- drivers/media/dvb-frontends/rtl2832_priv.h | 2 +- drivers/media/dvb-frontends/s5h1409.c | 6 +-- drivers/media/dvb-frontends/s5h1411.c | 6 +-- drivers/media/dvb-frontends/s5h1420.c | 23 +++++++---- drivers/media/dvb-frontends/s5h1432.c | 4 +- drivers/media/dvb-frontends/s921.c | 6 +-- drivers/media/dvb-frontends/si2165.c | 2 +- drivers/media/dvb-frontends/si2168.c | 2 +- drivers/media/dvb-frontends/si2168_priv.h | 4 +- drivers/media/dvb-frontends/si21xx.c | 10 ++--- drivers/media/dvb-frontends/sp8870.c | 3 +- drivers/media/dvb-frontends/sp887x.c | 2 +- drivers/media/dvb-frontends/stb0899_drv.c | 8 ++-- drivers/media/dvb-frontends/stv0288.c | 11 ++--- drivers/media/dvb-frontends/stv0297.c | 11 +++-- drivers/media/dvb-frontends/stv0299.c | 22 ++++++---- drivers/media/dvb-frontends/stv0367.c | 12 +++--- drivers/media/dvb-frontends/stv0367_priv.h | 2 +- drivers/media/dvb-frontends/stv0900_core.c | 6 ++- drivers/media/dvb-frontends/stv090x.c | 5 ++- drivers/media/dvb-frontends/stv6110.c | 2 +- drivers/media/dvb-frontends/tc90522.c | 17 ++++---- drivers/media/dvb-frontends/tda10021.c | 7 ++-- drivers/media/dvb-frontends/tda10023.c | 3 +- drivers/media/dvb-frontends/tda10048.c | 2 +- drivers/media/dvb-frontends/tda1004x.c | 3 +- drivers/media/dvb-frontends/tda10071.c | 10 ++--- drivers/media/dvb-frontends/tda10071_priv.h | 10 ++--- drivers/media/dvb-frontends/tda10086.c | 9 ++-- drivers/media/dvb-frontends/tda8083.c | 38 ++++++++++------- drivers/media/dvb-frontends/ves1820.c | 6 ++- drivers/media/dvb-frontends/ves1x93.c | 15 ++++--- drivers/media/dvb-frontends/zl10353.c | 2 +- drivers/media/firewire/firedtv-fe.c | 8 ++-- drivers/media/firewire/firedtv.h | 4 +- drivers/media/pci/bt8xx/dst.c | 25 +++++++----- drivers/media/pci/bt8xx/dst_common.h | 12 +++--- drivers/media/pci/cx23885/cx23885-dvb.c | 10 +++-- drivers/media/pci/cx23885/cx23885-f300.c | 2 +- drivers/media/pci/cx23885/cx23885-f300.h | 2 +- drivers/media/pci/cx23885/cx23885.h | 2 +- drivers/media/pci/cx88/cx88-dvb.c | 12 +++--- drivers/media/pci/cx88/cx88.h | 5 ++- drivers/media/pci/dm1105/dm1105.c | 3 +- drivers/media/pci/mantis/mantis_vp1034.c | 2 +- drivers/media/pci/mantis/mantis_vp1034.h | 3 +- drivers/media/pci/ngene/ngene.h | 2 +- drivers/media/pci/pt1/pt1.c | 6 +-- drivers/media/pci/pt1/va1j5jf8007s.c | 4 +- drivers/media/pci/pt1/va1j5jf8007t.c | 4 +- drivers/media/pci/pt3/pt3.c | 2 +- drivers/media/pci/saa7134/saa7134-dvb.c | 6 ++- drivers/media/pci/saa7134/saa7134.h | 3 +- drivers/media/pci/ttpci/av7110.c | 18 ++++---- drivers/media/pci/ttpci/av7110.h | 27 +++++++----- drivers/media/pci/ttpci/budget-core.c | 3 +- drivers/media/pci/ttpci/budget-patch.c | 15 ++++--- drivers/media/pci/ttpci/budget.c | 12 ++++-- drivers/media/pci/ttpci/budget.h | 2 +- drivers/media/usb/dvb-usb-v2/af9015.c | 2 +- drivers/media/usb/dvb-usb-v2/af9015.h | 2 +- drivers/media/usb/dvb-usb-v2/dvbsky.c | 11 ++--- drivers/media/usb/dvb-usb-v2/lmedm04.c | 10 ++--- drivers/media/usb/dvb-usb-v2/mxl111sf-demod.c | 14 +++---- drivers/media/usb/dvb-usb/af9005-fe.c | 5 ++- drivers/media/usb/dvb-usb/az6027.c | 3 +- drivers/media/usb/dvb-usb/cinergyT2-fe.c | 2 +- drivers/media/usb/dvb-usb/dib0700.h | 2 +- drivers/media/usb/dvb-usb/dib0700_devices.c | 2 +- drivers/media/usb/dvb-usb/dtt200u-fe.c | 7 ++-- drivers/media/usb/dvb-usb/dw2102.c | 13 +++--- drivers/media/usb/dvb-usb/friio-fe.c | 3 +- drivers/media/usb/dvb-usb/gp8psk-fe.c | 13 +++--- drivers/media/usb/dvb-usb/opera1.c | 3 +- drivers/media/usb/dvb-usb/technisat-usb2.c | 2 +- drivers/media/usb/dvb-usb/vp702x-fe.c | 17 ++++---- drivers/media/usb/dvb-usb/vp7045-fe.c | 3 +- drivers/media/usb/ttusb-budget/dvb-ttusb-budget.c | 9 ++-- drivers/media/usb/ttusb-dec/ttusbdecfe.c | 10 +++-- drivers/staging/media/mn88472/mn88472.c | 2 +- drivers/staging/media/mn88472/mn88472_priv.h | 2 +- drivers/staging/media/mn88473/mn88473.c | 2 +- drivers/staging/media/mn88473/mn88473_priv.h | 2 +- include/uapi/linux/dvb/frontend.h | 4 +- 150 files changed, 630 insertions(+), 492 deletions(-) commit fe557e40f576741308d3546906eba7094e940de4 Author: Mauro Carvalho Chehab Date: Sun Jun 7 14:31:13 2015 -0300 [media] DocBook: add xrefs for enum fe_type The only enum that was missing xrefs at frontend.h is fe_type. Add xrefs for them. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/frontend_legacy_api.xml | 8 ++++---- include/uapi/linux/dvb/frontend.h | 6 ++++-- 2 files changed, 8 insertions(+), 6 deletions(-) commit d21ddba826d8704525fa637e69cf90b8e034d94a Author: Mauro Carvalho Chehab Date: Sun Jun 7 14:21:09 2015 -0300 [media] DocBook: properly document the delivery systems Use a table for the delivery systems. The table is organized by the type (cable, satellite, terrestrial) and shows what standards are not fully implemented. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/dvbproperty.xml | 99 +++++++++++++++++++------ include/uapi/linux/dvb/frontend.h | 6 +- 2 files changed, 79 insertions(+), 26 deletions(-) commit b35f6ba97882ef4e00c1faae1d66232f7314fe91 Author: Mauro Carvalho Chehab Date: Sun Jun 7 11:59:27 2015 -0300 [media] DocBook: better document the DVB-S2 rolloff factor Instead of using a program listing, use a table and make clearer what each define means. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/dvbproperty.xml | 35 +++++++++++++++++++------ include/uapi/linux/dvb/frontend.h | 6 +++-- 2 files changed, 31 insertions(+), 10 deletions(-) commit ff50574c1756fb54dd14a81296dff95c76f09c10 Author: Mauro Carvalho Chehab Date: Sun Jun 7 11:34:12 2015 -0300 [media] DocBook: Remove duplicated documentation for SEC_VOLTAGE_* The table were documented at the legacy ioctl call. Move it to the DVBv5 ioctl, and add a cross ref link on the legacy section. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/dvbproperty.xml | 31 +++++++++++++++++----- Documentation/DocBook/media/dvb/fe-set-voltage.xml | 30 +-------------------- 2 files changed, 26 insertions(+), 35 deletions(-) commit 448bac10318977e2c41548d7e6a1d87f9d48784d Author: Mauro Carvalho Chehab Date: Sun Jun 7 11:18:16 2015 -0300 [media] DocBook: document DVB-S2 pilot in a table Putting it into a table allows to comment each possible values, with makes more clear what field means. Also, it allows to do cross-references with the frontend.h. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/dvbproperty.xml | 31 +++++++++++++++++++------ include/uapi/linux/dvb/frontend.h | 6 +++-- 2 files changed, 28 insertions(+), 9 deletions(-) commit 8092cd7fc6b2153c41b24b4ec1d1342d14d12e1f Author: Mauro Carvalho Chehab Date: Sun Jun 7 10:59:32 2015 -0300 [media] DocBook: Add documentation for ATSC M/H properties Those data were retrieved by looking at A/153: ATSC Mobile DTV Standard and guessing what makes more sense to each field. Cc: Michael Ira Krufky Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/dvbproperty.xml | 39 ++++++++++++++----------- 1 file changed, 22 insertions(+), 17 deletions(-) commit b69d5f265b13c445a7294d68e0315d4b3c9234e2 Author: Mauro Carvalho Chehab Date: Sun Jun 7 07:14:14 2015 -0300 [media] DocBook: add placeholders for ATSC M/H properties The ATSC M/H specific properties are not properly documented. This became crearer when converting the existing data into tables and adding cross references. For now, just add placeholders, as a further investigation about the meaning of each parameter is required. Cc: Michael Ira Krufky Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/dvbproperty.xml | 200 +++++++++++++++--------- 1 file changed, 129 insertions(+), 71 deletions(-) commit 2acf9146db2e937b34da62e593ed03e2bebf86f4 Author: Mauro Carvalho Chehab Date: Sun Jun 7 06:54:37 2015 -0300 [media] DocBook: remove a wrong cut-and-paste data By cut-and-paste mistake, TRANSMISSION_MODE_AUTO were documented twice, one at the wrong place. Remove the wrong one. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/dvbproperty.xml | 5 ----- 1 file changed, 5 deletions(-) commit 6a5a402599a4c5ed595567a39183b6c5bd5ecd2c Author: Mauro Carvalho Chehab Date: Sun Jun 7 06:37:20 2015 -0300 [media] DocBook: add IDs for enum fe_bandwidth enum fe_bandwidth is documented at the frontend legacy xml file. Add xrefs for each entry there. This makes the hyperlinks at frontend.h to go directly to the right documentation. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/frontend_legacy_api.xml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 3d6d213776f3d22ddbf99c0ae16c4d397e32d434 Author: Mauro Carvalho Chehab Date: Sun Jun 7 06:35:20 2015 -0300 [media] DocBook: Better document DTMB time interleaving The DTMB time interleaving was not properly documented. Add a documentation for it. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/dvbproperty.xml | 40 +++++++++++++++++++------ 1 file changed, 31 insertions(+), 9 deletions(-) commit 00c91dfd7b69cd0682fce937ced62ae8689ecc5c Author: Mauro Carvalho Chehab Date: Sun Jun 7 06:20:18 2015 -0300 [media] DocBook: Add entry IDs for the enums defined at dvbproperty.xml There are lots of enums that are defined at dvbproperty. Add xrefs for each entry there. This makes the hyperlinks at frontend.h to go directly to the right documentation. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/dvbproperty.xml | 120 ++++++++++++------------ 1 file changed, 60 insertions(+), 60 deletions(-) commit 8de4d9ecb7c9c03c867e60d6f4bb4e6f17f87af1 Author: Mauro Carvalho Chehab Date: Sun Jun 7 06:12:28 2015 -0300 [media] Docbook: add entry IDs for enum fe_sec_voltage enum fe_sec_voltage is documented together with FE_SET_VOLTAGE. Add xrefs for each entry there. This makes the hyperlinks at frontend.h to go directly to the right documentation. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/fe-set-voltage.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 81d6f2f8b8843f77c458b4bcfde8f77dd1ee0740 Author: Mauro Carvalho Chehab Date: Sun Jun 7 06:10:38 2015 -0300 [media] DocBook: add entry IDs for enum fe_sec_tone_mode enum fe_sec_tone_mode is documented together with FE_SET_TONE. Add xrefs for each entry there. This makes the hyperlinks at frontend.h to go directly to the right documentation. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/fe-set-tone.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e7852571a4926371b4cbfeaccb82b307518f2c7c Author: Mauro Carvalho Chehab Date: Sun Jun 7 06:09:57 2015 -0300 [media] DocBook: add entry IDs for enum fe_status enum fe_status is documented together with FE_READ_STATUS. Add xrefs for each entry there. This makes the hyperlinks at frontend.h to go directly to the right documentation. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/fe-read-status.xml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 764368ceb84ca8ba2c549e1158dbed3a53913d85 Author: Mauro Carvalho Chehab Date: Sun Jun 7 05:49:51 2015 -0300 [media] DocBook: add entry IDs for enum fe_sec_mini_cmd enum fe_sec_mini_cmd is documented together with FE_DISEQC_SEND_BURST. Add xrefs for each entry there. This makes the hyperlinks at frontend.h to go directly to the right documentation. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/fe-diseqc-send-burst.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 85cb78b5647e478d22f3f40199dd739ca3e74f05 Author: Mauro Carvalho Chehab Date: Sun Jun 7 05:39:03 2015 -0300 [media] DocBook: Add entry IDs for enum fe_caps enum fe_caps is documented at FE_GET_INFO ioctl. Add xrefs for each entry there. This makes the hyperlinks at frontend.h to go directly to the right documentation. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/fe-get-info.xml | 62 ++++++++++++------------- 1 file changed, 31 insertions(+), 31 deletions(-) commit 2695e66f94cdb7790b2f16c154690aaa366f8417 Author: Mauro Carvalho Chehab Date: Sun Jun 7 05:21:51 2015 -0300 [media] DocBook: handle enums on frontend.h In order to be sure that all enum definitions will be documented, let's parse the enum values and add xref links to them. Lots of missing references will be risen as we miss adding id's to those symbols at the documentation. Next patches will fix this. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/Makefile | 46 +++++++++++++++++++++++++++--------- 1 file changed, 35 insertions(+), 11 deletions(-) commit 7f3c2e1d1df46a06c37c46b2c8ba66b405434e35 Author: Hans Verkuil Date: Sat Jun 6 05:02:32 2015 -0300 [media] cx231xx: fix compiler warning Fix this compiler warning by allocating a structure to read the eeprom instead of doing it on the stack and worse: the eeprom array is static, so that can cause problems if there are multiple cx231xx instances. cx231xx-cards.c: In function 'cx231xx_card_setup': cx231xx-cards.c:1110:1: warning: the frame size of 2064 bytes is larger than 2048 bytes [-Wframe-larger-than=] } ^ I did consider removing the code altogether since the result is actually not used at the moment, but I decided against it since it is used in other drivers and someone might want to start using it in this driver as well. And then it is useful that the code is already there. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/cx231xx/cx231xx-cards.c | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) commit d0154d83a8ed8166411851888b92ccfd937c2515 Author: Prashant Laddha Date: Fri May 22 02:27:35 2015 -0300 [media] vivid: Use interlaced info for cvt/gtf timing detection The detect_cvt/gtf() now supports timing calculations for interlaced format. Signed-off-by: Prashant Laddha Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/vivid/vivid-vid-cap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 061ddda681fea4a06befe1fc8e34ef2e0d14f5dc Author: Prashant Laddha Date: Fri May 22 02:27:34 2015 -0300 [media] v4l2-dv-timings: add interlace support in detect cvt/gtf Extend detect_cvt/gtf API to indicate the format type (interlaced or progressive). In case of interlaced, the vertical front and back porch and vsync values for both (odd,even) fields are considered to derive image height. Populated vsync, vertical front, back porch values in bt timing structure for even and odd fields and updated the flags appropriately. Also modified the functions calling the detect_cvt/gtf(). As of now these functions are calling detect_cvt/gtf() with interlaced flag set to false. Cc: Martin Bugge Cc: Mats Randgaard Cc: Laurent Pinchart Signed-off-by: Prashant Laddha Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/adv7604.c | 4 +-- drivers/media/i2c/adv7842.c | 4 +-- drivers/media/platform/vivid/vivid-vid-cap.c | 5 +-- drivers/media/v4l2-core/v4l2-dv-timings.c | 53 ++++++++++++++++++++++++---- include/media/v4l2-dv-timings.h | 6 ++-- 5 files changed, 58 insertions(+), 14 deletions(-) commit 8cf6874e84ba64488975a07fda267486a77ac5a3 Author: Hans Verkuil Date: Fri Jun 5 05:30:02 2015 -0300 [media] v4l2-dv-timings: support interlaced in v4l2_print_dv_timings The v4l2_print_dv_timings() didn't log the interlaced format correctly. The timings for the bottom field weren't logged and the fields per second value was half of what it should have been. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/v4l2-dv-timings.c | 7 +++++++ 1 file changed, 7 insertions(+) commit dc0cf4cfed89d3a784a8d1c5897fae8f6a137fa5 Author: Prashant Laddha Date: Fri Jun 5 05:13:31 2015 -0300 [media] v4l2-dv-timing: avoid rounding twice in gtf hblank calc Currently, in gtf hblank calculations, the rounding is used twice, one at intermediate division and one at final state where hblank is rounded to nearest multiple of twice cell granularity. This error got introduced in 'commit d7ed5a3ddaec ("[media] v4l2-dv-timings: fix rounding in hblank and hsync calculation"), where it missed combining the rounding step. Correcting the same in this patch. Signed-off-by: Prashant Laddha Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/v4l2-dv-timings.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit 7a5d99e7c9702932c266cffb71afd4e1f2282b31 Author: Hans Verkuil Date: Sun Jun 7 07:32:35 2015 -0300 [media] adv7604: log alt-gamma and HDMI colorspace Log the alternate gamma state and the HDMI colorspace that the adv device detected. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/adv7604.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) commit 5dd7d88a5e730491018d14a7e9ace20e225a37e6 Author: Hans Verkuil Date: Sun Jun 7 07:32:34 2015 -0300 [media] adv7604: fix broken saturator check The logging of the saturator status was wrong due to an incorrect condition. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/adv7604.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 516613c17747bbca6432c84ab841dd0dd8b8db83 Author: Hans Verkuil Date: Sun Jun 7 07:32:33 2015 -0300 [media] adv7604: log infoframes Add support for logging the detected InfoFrames for the adv76xx. Helps in debugging what is actually received on the HDMI link. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/Kconfig | 1 + drivers/media/i2c/adv7604.c | 87 ++++++++++++++++++++++++++++++--------------- 2 files changed, 59 insertions(+), 29 deletions(-) commit b4dbad8fe3b60466e0d364b34c075117757838f2 Author: Hans Verkuil Date: Sun Jun 7 07:32:32 2015 -0300 [media] adv7511: log the currently set infoframes The adv7511 sets up InfoFrames that are used when transmitting video. Log the contents of those InfoFrames so it is possible to see exactly what the transmitter is sending. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/Kconfig | 1 + drivers/media/i2c/adv7511.c | 123 ++++++++++++++++++++++++++++++- drivers/media/pci/cobalt/cobalt-driver.c | 1 + include/media/adv7511.h | 1 + 4 files changed, 124 insertions(+), 2 deletions(-) commit 28a769f1abfe8f6958c14b3b4163360e3c931133 Author: Hans Verkuil Date: Sun Jun 7 07:32:31 2015 -0300 [media] adv7842: replace uintX_t by uX for consistency Currently this driver mixes u8/u32 and uint8_t/uint32_t. Standardize on u8/u32. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/adv7842.c | 22 ++++++++++---------- include/media/adv7842.h | 50 ++++++++++++++++++++++----------------------- 2 files changed, 36 insertions(+), 36 deletions(-) commit 5be50ef1ef45d749c17e98b9483730331ee8c49c Author: Hans Verkuil Date: Sun Jun 7 07:32:30 2015 -0300 [media] adv7511: replace uintX_t by uX for consistency Currently this driver mixes u8/u16 and uint8_t/uint16_t. Standardize on u8/u16. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/adv7511.c | 32 ++++++++++++++++---------------- include/media/adv7511.h | 6 +++--- 2 files changed, 19 insertions(+), 19 deletions(-) commit 7bcff1c242475ffc47e413ac7b1d7a3e3529b109 Author: Hans Verkuil Date: Fri Jun 5 11:28:52 2015 -0300 [media] vim2m: add create_bufs and prepare_buf support Add support for the missing VIDIOC_CREATE_BUFS and VIDIOC_PREPARE_BUF ioctls. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/vim2m.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit e68cf471e71d1e91c5661e1bb7595985158d59ae Author: Hans Verkuil Date: Fri Jun 5 11:28:50 2015 -0300 [media] v4l2-mem2mem: add support for prepare_buf This was never added for some reason, so add it now. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/v4l2-mem2mem.c | 28 ++++++++++++++++++++++++++++ include/media/v4l2-mem2mem.h | 4 ++++ 2 files changed, 32 insertions(+) commit f00245c2e8cf18b37d26674c88915c5238c2815e Author: Antti Palosaari Date: Sat Jun 6 08:15:34 2015 -0300 [media] fc2580: add missing error status when probe() fails We must return -ENODEV error on case probe() fails to detect chip. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/tuners/fc2580.c | 1 + 1 file changed, 1 insertion(+) commit ab80b19bb99933df415817370a64ac7e7c688896 Author: Antti Palosaari Date: Sat Jun 6 08:11:16 2015 -0300 [media] tda10071: add missing error status when probe() fails We must return -ENODEV error on case probe() fails to detect chip. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/tda10071.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) commit 4347df6a7f7d6d0641523e595df93ddb63990bd1 Author: Dan Carpenter Date: Tue Jun 2 07:20:00 2015 -0300 [media] m88ds3103: a couple missing error codes We need to set some error codes here. Fixes: f01919e8f54f ('[media] m88ds3103: add I2C client binding') Signed-off-by: Dan Carpenter Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/m88ds3103.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit e060e7adc296c0b3eab1d7b96f36b496733109e4 Author: Alexis Green Date: Tue Jun 9 13:00:43 2015 -0700 mac80211: Always check rates and capabilities in mesh mode In mesh mode there is a race between establishing links and processing rates and capabilities in beacons. This is very noticeable with slow beacons (e.g. beacon intervals of 1s) and manifested for us as stations using minstrel when minstrel_ht should be used. Fixed by changing mesh_sta_info_init so that it always checks rates and such if it has not already done so. Signed-off-by: Alexis Green CC: Jesse Jones Signed-off-by: Johannes Berg net/mac80211/mesh_plink.c | 3 ++- net/mac80211/sta_info.h | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) commit 8df734e865b74d9f273216482a45a38269dc767a Author: Chun-Yeow Yeoh Date: Tue Jun 9 13:35:33 2015 +0800 mac80211: fix the beacon csa counter for mesh and ibss The csa counter has moved from sdata to beacon/presp but it is not updated accordingly for mesh and ibss. Fix this. Fixes: af296bdb8da4 ("mac80211: move csa counters from sdata to beacon/presp") Signed-off-by: Chun-Yeow Yeoh Signed-off-by: Johannes Berg net/mac80211/cfg.c | 1 + net/mac80211/ibss.c | 1 + net/mac80211/mesh.c | 1 + 3 files changed, 3 insertions(+) commit afd2efb91990667cd4d9171a743f8a89e19d5ef1 Author: Alexis Green Date: Fri Jun 5 12:43:54 2015 -0700 mac80211: Fix incorrectly named last_hop_metric variable in mesh_rx_path_sel_frame The last hop metric should refer to link cost (this is how hwmp_route_info_get uses it for example). But in mesh_rx_path_sel_frame we are not dealing with link cost but with the total cost to the origin of a PREQ or PREP. Signed-off-by: Alexis Green CC: Jesse Jones Signed-off-by: Johannes Berg net/mac80211/mesh_hwmp.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit 74d803b6021f7a1cb06363cd9f65dbdf4fcf35e7 Author: Sara Sharon Date: Wed Jun 3 10:44:17 2015 +0300 mac80211: ignore invalid scan RSSI values Channels in 2.4GHz band overlap, this means that if we send a probe request on channel 1 and then move to channel 2, we will hear the probe response on channel 2. In this case, the RSSI will be lower than if we had heard it on the channel on which it was sent (1 in this case). The scan result ignores those invalid values and the station last signal should not be updated as well. In case the scan determines the signal to be invalid turn on the flag so the station last signal will not be updated with the value and thus user space probing for NL80211_STA_INFO_SIGNAL and NL80211_STA_INFO_SIGNAL_AVG will not get this invalid RSSI value. Signed-off-by: Sara Sharon Signed-off-by: Emmanuel Grumbach Signed-off-by: Johannes Berg net/mac80211/scan.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit d01f858c78b0a67218d73b17ec1e494e014ab52a Author: Michal Kazior Date: Wed Jun 3 08:36:13 2015 +0200 mac80211: release channel on auth failure There were a few rare cases when upon authentication failure channel wasn't released. This could cause stale pointers to remain in chanctx assigned_vifs after interface removal and trigger general protection fault later. This could be triggered, e.g. on ath10k with the following steps: 1. start an AP 2. create 2 extra vifs on ath10k host 3. connect vif1 to the AP 4. connect vif2 to the AP (auth fails because ath10k firmware isn't able to maintain 2 peers with colliding AP mac addresses across vifs and consequently refuses sta_info_insert() in ieee80211_prep_connection()) 5. remove the 2 extra vifs 6. goto step 2; at step 3 kernel was crashing: general protection fault: 0000 [#1] SMP DEBUG_PAGEALLOC Modules linked in: ath10k_pci ath10k_core ath ... Call Trace: [] ieee80211_check_combinations+0x22b/0x290 [] ? ieee80211_check_concurrent_iface+0x125/0x220 [] ? netpoll_poll_disable+0x84/0x100 [] ieee80211_check_concurrent_iface+0x133/0x220 [] ieee80211_open+0x3e/0x80 [] __dev_open+0xb6/0x130 [] __dev_change_flags+0xa1/0x170 ... RIP [] ieee80211_chanctx_radar_detect+0xa0/0x170 (gdb) l * ieee80211_chanctx_radar_detect+0xa0 0xffffffff81a23140 is in ieee80211_chanctx_radar_detect (/devel/src/linux/net/mac80211/util.c:3182). 3177 */ 3178 WARN_ON(ctx->replace_state == IEEE80211_CHANCTX_REPLACES_OTHER && 3179 !list_empty(&ctx->assigned_vifs)); 3180 3181 list_for_each_entry(sdata, &ctx->assigned_vifs, assigned_chanctx_list) 3182 if (sdata->radar_required) 3183 radar_detect |= BIT(sdata->vif.bss_conf.chandef.width); 3184 3185 return radar_detect; Signed-off-by: Michal Kazior Signed-off-by: Johannes Berg net/mac80211/mlme.c | 3 +++ 1 file changed, 3 insertions(+) commit c2d3955ba322471181ba0e6636ea9bdd9f521239 Author: Jakub Kicinski Date: Tue Jun 2 21:10:13 2015 +0200 mac80211: remove obsolete sentence from documentation FIF_PROMISC_IN_BSS was removed in commit df1404650ccb ("mac80211: remove support for IFF_PROMISC"). Signed-off-by: Jakub Kicinski Signed-off-by: Johannes Berg include/net/mac80211.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 472be00d04edccbc1ad2d79540b1e9ea99cc7c7f Author: Johannes Berg Date: Tue Jun 9 16:45:08 2015 +0200 mac80211: handle aggregation session timeout on fast-xmit path The conversion to the fast-xmit path lost proper aggregation session timeout handling - the last_tx wasn't set on that path and the timer would therefore incorrectly tear down the session periodically (with those drivers/rate control algorithms that have a timeout.) In case of iwlwifi, this was every 5 seconds and caused significant throughput degradation. Signed-off-by: Johannes Berg net/mac80211/tx.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 2a4462418af771ef9f1f1d1532bcbb8799df842d Author: Rob Herring Date: Tue Jun 9 13:26:39 2015 -0500 tty/serial: kill off set_irq_flags usage set_irq_flags is ARM specific with custom flags which have genirq equivalents. Convert drivers to use the genirq interfaces directly, so we can kill off set_irq_flags. The translation of flags is as follows: IRQF_VALID -> !IRQ_NOREQUEST IRQF_PROBE -> !IRQ_NOPROBE IRQF_NOAUTOEN -> IRQ_NOAUTOEN For IRQs managed by an irqdomain, the irqdomain core code handles clearing and setting IRQ_NOREQUEST already, so there is no need to do this in .map() functions and we can simply remove the set_irq_flags calls. Some users also set IRQ_NOPROBE and this has been maintained although it is not clear that is really needed. There appears to be a great deal of blind copy and paste of this code. Signed-off-by: Rob Herring Cc: Greg Kroah-Hartman Cc: Jiri Slaby Cc: Barry Song Cc: linux-serial@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/serial_ks8695.c | 2 +- drivers/tty/serial/sirfsoc_uart.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) commit fc6b68ba4990b4fb2625b150599c77d04d85b1eb Author: Rob Herring Date: Fri May 29 11:38:46 2015 -0500 usb: chipidea: add work-around for Marvell HSIC PHY startup The Marvell 28nm HSIC PHY requires the port to be forced to HS mode after the port power is applied. This is done using the test mode in the PORTSC register. As HSIC is always HS, this work-around should be safe to do with all HSIC PHYs and has been tested on i.MX6S. Signed-off-by: Rob Herring Tested-by: Peter Chen Cc: Greg Kroah-Hartman Cc: linux-usb@vger.kernel.org Signed-off-by: Greg Kroah-Hartman drivers/usb/chipidea/host.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit d95699be183c03bb804c1dfdbbeaba7ee1ed8a0d Author: Rob Herring Date: Fri May 29 11:38:45 2015 -0500 usb: chipidea: allow multiple instances to use default ci_default_pdata Currently, ci_default_pdata is common to all instances of the driver and gets modified by the core driver code. This is bad if there are multiple instances of the device with different settings such as the phy type. Fix this by making a copy of the default platform_data. Signed-off-by: Rob Herring Cc: Peter Chen Cc: Greg Kroah-Hartman Cc: linux-usb@vger.kernel.org Signed-off-by: Greg Kroah-Hartman drivers/usb/chipidea/ci_hdrc_usb2.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 9d062b9b416857873bb149e18fbb4230d202d0e8 Author: Rob Herring Date: Fri May 29 11:38:44 2015 -0500 dt-bindings: Consolidate ChipIdea USB ci13xxx bindings Combine the ChipIdea USB binding into a single document to reduce duplication and fragmentation. This marks use of the old PHY bindings as deprecated. Future compatible bindings should use generic PHY binding. Signed-off-by: Rob Herring Cc: Ivan T. Ivanov Cc: Peter Chen Cc: Daniel Tang Cc: Pawel Moll Cc: Mark Rutland Cc: Ian Campbell Cc: Kumar Gala Cc: devicetree@vger.kernel.org Signed-off-by: Greg Kroah-Hartman .../devicetree/bindings/usb/ci-hdrc-imx.txt | 35 ---------------------- .../devicetree/bindings/usb/ci-hdrc-qcom.txt | 17 ----------- .../devicetree/bindings/usb/ci-hdrc-usb2.txt | 22 +++++++++++++- .../devicetree/bindings/usb/ci-hdrc-zevio.txt | 17 ----------- 4 files changed, 21 insertions(+), 70 deletions(-) commit 10d9029bcb2e27a812da81d3e9b598e307be4fe1 Author: Rob Herring Date: Fri May 29 11:38:43 2015 -0500 phy: add Marvell HSIC 28nm PHY Add PHY driver for the Marvell HSIC 28nm PHY. This PHY is found in PXA1928 SOC. Signed-off-by: Rob Herring Cc: Kishon Vijay Abraham I Signed-off-by: Greg Kroah-Hartman drivers/phy/Kconfig | 10 ++ drivers/phy/Makefile | 1 + drivers/phy/phy-pxa-28nm-hsic.c | 220 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 231 insertions(+) commit 603c5f9d9c52ff5744b7f35ead1891478fb6a569 Author: Rob Herring Date: Fri May 29 11:38:42 2015 -0500 phy: Add Marvell USB 2.0 OTG 28nm PHY Add driver for USB 28nm PHY found in Marvell PXA1928 SOC. Signed-off-by: Rob Herring Cc: Kishon Vijay Abraham I Signed-off-by: Greg Kroah-Hartman drivers/phy/Kconfig | 10 ++ drivers/phy/Makefile | 1 + drivers/phy/phy-pxa-28nm-usb2.c | 355 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 366 insertions(+) commit 6c95ff9c1c4842b1b818fe7c6ce6753c646baf8a Author: Rob Herring Date: Fri May 29 11:38:41 2015 -0500 dt-bindings: Add Marvell PXA1928 USB and HSIC PHY bindings Add PHY binding for Marvell PXA1928 SOC's USB and HSIC PHYs. Signed-off-by: Rob Herring Cc: Pawel Moll Cc: Mark Rutland Cc: Ian Campbell Cc: Kumar Gala Cc: devicetree@vger.kernel.org Signed-off-by: Greg Kroah-Hartman .../devicetree/bindings/phy/pxa1928-usb-phy.txt | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit e723f2ceb1ab571c660b1a1db31cb71aa2c0b29d Author: Rob Herring Date: Tue Jun 9 13:26:28 2015 -0500 regmap: kill off set_irq_flags usage set_irq_flags is ARM specific with custom flags which have genirq equivalents. Convert drivers to use the genirq interfaces directly, so we can kill off set_irq_flags. The translation of flags is as follows: IRQF_VALID -> !IRQ_NOREQUEST IRQF_PROBE -> !IRQ_NOPROBE IRQF_NOAUTOEN -> IRQ_NOAUTOEN For IRQs managed by an irqdomain, the irqdomain core code handles clearing and setting IRQ_NOREQUEST already, so there is no need to do this in .map() functions and we can simply remove the set_irq_flags calls. Some users also set IRQ_NOPROBE and this has been maintained although it is not clear that is really needed. There appears to be a great deal of blind copy and paste of this code. Signed-off-by: Rob Herring Signed-off-by: Mark Brown drivers/base/regmap/regmap-irq.c | 7 ------- 1 file changed, 7 deletions(-) commit c456b89a93664d6ff0aba1ced9dd88b88df2505a Author: Mark Brown Date: Tue Jun 9 19:54:10 2015 +0100 regulator: core: Don't corrupt display when printing uV offsets We weren't taking into account the already used buffer when telling sprintf() where to print to. Reported-by: Stefan Wahren Signed-off-by: Mark Brown drivers/regulator/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6651ee070b3124fe9b9db383e3a895a0e4aded65 Author: Michael Holzheu Date: Mon Jun 8 21:51:06 2015 -0700 s390/bpf: implement bpf_tail_call() helper bpf_tail_call() arguments: - ctx......: Context pointer - jmp_table: One of BPF_MAP_TYPE_PROG_ARRAY maps used as the jump table - index....: Index in the jump table In this implementation s390x JIT does stack unwinding and jumps into the callee program prologue. Caller and callee use the same stack. With this patch a tail call generates the following code on s390x: if (index >= array->map.max_entries) goto out 000003ff8001c7e4: e31030100016 llgf %r1,16(%r3) 000003ff8001c7ea: ec41001fa065 clgrj %r4,%r1,10,3ff8001c828 if (tail_call_cnt++ > MAX_TAIL_CALL_CNT) goto out; 000003ff8001c7f0: a7080001 lhi %r0,1 000003ff8001c7f4: eb10f25000fa laal %r1,%r0,592(%r15) 000003ff8001c7fa: ec120017207f clij %r1,32,2,3ff8001c828 prog = array->prog[index]; if (prog == NULL) goto out; 000003ff8001c800: eb140003000d sllg %r1,%r4,3 000003ff8001c806: e31310800004 lg %r1,128(%r3,%r1) 000003ff8001c80c: ec18000e007d clgij %r1,0,8,3ff8001c828 Restore registers before calling function 000003ff8001c812: eb68f2980004 lmg %r6,%r8,664(%r15) 000003ff8001c818: ebbff2c00004 lmg %r11,%r15,704(%r15) goto *(prog->bpf_func + tail_call_start); 000003ff8001c81e: e31100200004 lg %r1,32(%r1,%r0) 000003ff8001c824: 47f01006 bc 15,6(%r1) Reviewed-by: Martin Schwidefsky Signed-off-by: Michael Holzheu Acked-by: Heiko Carstens Signed-off-by: Alexei Starovoitov Signed-off-by: David S. Miller arch/s390/net/bpf_jit.h | 10 +++- arch/s390/net/bpf_jit_comp.c | 106 ++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 112 insertions(+), 4 deletions(-) commit e70b03071c5d43ea7a63b007a1c4bf285a2772d1 Author: Irina Tirdea Date: Tue Jun 9 11:04:40 2015 -0700 Input: goodix - export id and version read from device Goodix touchscreens export through their registers a Product ID and Firmware Version. The Product ID is an ASCII encoding of the product name (e.g.: "911"). Export to sysfs (through the input subsystem) the product id and firmware version read from the device rather than using constant values. Signed-off-by: Octavian Purdila Signed-off-by: Irina Tirdea Acked-by: Bastien Nocera Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/goodix.c | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) commit 0e0432f04ee5d73b45faefc7bbb63b75fcaefa42 Author: Irina Tirdea Date: Tue Jun 9 11:03:15 2015 -0700 Input: goodix - fix variable length array warning Fix sparse warning: drivers/input/touchscreen/goodix.c:182:26: warning: Variable length array is used. Replace the variable length array with fixed length. Some Goodix devices have maximum 5 touch points, while others have 10 touch points. Using the maximum length (80 bytes) for all devices will lead to wasting 40 bytes on stack when using devices with maximum 5 touch points. However, that is preferable to using kmalloc which will use even more resources. Signed-off-by: Irina Tirdea Acked-by: Bastien Nocera Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/goodix.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0dfb35bd39d16ca2b69d5ddaa76a143c814eca45 Author: Irina Tirdea Date: Tue Jun 9 11:01:38 2015 -0700 Input: goodix - fix alignment issues Fix alignment to match open parenthesis detected by running checkpatch.pl --strict. Signed-off-by: Irina Tirdea Acked-by: Bastien Nocera Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/goodix.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 5179f0ce2f96f155e3bda93b3b82f912dbaddad2 Author: Steve Twiss Date: Mon Jun 8 16:26:20 2015 -0700 Input: add OnKey driver for DA9063 MFD part This adds OnKey driver support for DA9063. Signed-off-by: Steve Twiss Signed-off-by: Dmitry Torokhov drivers/input/misc/Kconfig | 10 ++ drivers/input/misc/Makefile | 1 + drivers/input/misc/da9063_onkey.c | 226 ++++++++++++++++++++++++++++++++++++++ include/linux/mfd/da9063/pdata.h | 1 + 4 files changed, 238 insertions(+) commit 9fbd58cf4ab0b6fcabe1ccb8d391a1ed88f04d7e Author: Jyri Sarha Date: Tue Jun 2 23:09:34 2015 +0300 ASoC: davinci-mcasp: Choose PCM driver based on configured DMA controller Find the configured DMA controller by asking for a DMA channel in the probe phase and releasing it right after. The controller device can be found via the dma_chan struct and the controller is recognized from the compatible property of its device node. The patch assumes EDMA if there is no device node. Signed-off-by: Jyri Sarha Acked-by: Peter Ujfalusi Signed-off-by: Mark Brown sound/soc/davinci/davinci-mcasp.c | 70 +++++++++++++++++++++++++++++++++------ 1 file changed, 60 insertions(+), 10 deletions(-) commit 6876c7c884b9115111768f2824138533ad8490da Author: Lars-Peter Clausen Date: Thu Jun 4 16:13:51 2015 +0200 ASoC: rx51: Automatically disconnect non-connected pins According to the schematics the external speaker is differential, so the HPLCOM and HPRCOM pins of the CODEC should be connected to it. Otherwise the routing looks complete, so add the missing routes and set the fully_routed flag of the card instead of manually marking the unused inputs and outputs as not connected. This makes the code a bit shorter and cleaner. Signed-off-by: Lars-Peter Clausen Acked-by: Jarkko Nikula Tested-by: Jarkko Nikula Reviewed-by: Peter Ujfalusi Signed-off-by: Mark Brown sound/soc/omap/rx51.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) commit 21175ef7e0db27989f37096ff5121255ac201c12 Author: Madhusudhanan Ravindran Date: Tue Jun 9 11:19:06 2015 +0000 staging: wilc1000: remove unused variables removed few variables which are assigned but never used. Signed-off-by: Madhusudhanan Ravindran Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) commit 11f2323ad3572348e10a7a152656a6e9889f44cc Author: Sudip Mukherjee Date: Tue Jun 9 14:40:43 2015 +0530 staging: fbtft: fix build error while building on i386 it gives a build warning about msg undeclared. Fixes: e6ffd1ba55a4931c ("staging: fbtft: fix out of bound access") Reported-by: kbuild test robot Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/fbtft/fbtft-core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c042af95a26207704ffa71098223c7fcb9e95a9d Author: Haikun Wang Date: Tue Jun 9 19:45:37 2015 +0800 spi: spi-fsl-dspi: Change the way of increasing spi_message->actual_length In current driver, we increase actual_length in the following way: message->actual_length += dspi_xxx_transfer() It has two defects. First, transmitting maybe in process when the function call finished and we don't know the transmitting result in this moment. Secondly, the last sentence in function before returning is accessing the SPI register and trigger the data transmitting. If we enable interrupt, interrupt may be generated before function return and we also have the same sentence "message->actual_length += dspi_xxx_transfer()" in the IRQ handler. And usually dspi_xxx_transfer will trigger a new IRQ. The original dspi_xxx_transfer call may return when no new IRQ generate. This may mess the variable spi_message->actual_length. Now we increase the variable in the IRQ handler and only when we get the TCF or EOQ interrupt And we get the transmitted data length from the SPI transfer counter instead of the function return value. Signed-off-by: Haikun Wang Signed-off-by: Mark Brown drivers/spi/spi-fsl-dspi.c | 101 ++++++++++++++++++++++++++++++--------------- 1 file changed, 68 insertions(+), 33 deletions(-) commit d1f4a38c8139cf87316b16f28b206fd1fd2b31db Author: Haikun Wang Date: Tue Jun 9 19:45:27 2015 +0800 spi: spi-fsl-dspi: Enable TCF interrupt mode support DSPI module has two optional interrupts when complete data transfer. One is EOQ interrupt, the other one is TCF interrupt. EOQ indicates a queue of data frame has been transmitted. TCF indicates a frame has been transmitted. This patch enable support TCF mode. Driver binds a correct interrupt mode to every compatible string. User should use the correct compatible string in the dts node. Signed-off-by: Haikun Wang Signed-off-by: Mark Brown drivers/spi/spi-fsl-dspi.c | 245 +++++++++++++++++++++++++++++++-------------- 1 file changed, 169 insertions(+), 76 deletions(-) commit 6724af486903df57338c14424e02599e371cf563 Merge: d223332 9deef02 Author: Mark Brown Date: Tue Jun 9 18:35:46 2015 +0100 Merge branch 'fix/fsl-dspi' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi into spi-fsl-dspi commit 4820303480a18773f30e2c5ad1178d5960facdbf Author: Cyrille Pitchen Date: Tue Jun 9 13:53:52 2015 +0200 spi: atmel: add support for the internal chip-select of the spi controller This patch relies on the CSAAT (Chip Select Active After Transfer) feature introduced by the version 2 of the spi controller. This new mode allows to use properly the internal chip-select output pin of the spi controller instead of using external gpios. Consequently, the "cs-gpios" device-tree property becomes optional. When the new CSAAT bit is set into the Chip Select Register, the internal chip-select output pin remains asserted till both the following conditions become true: - the LASTXFER bit is set into the Control Register (or the Transmit Data Register) - the Transmit Data Register and its shift register are empty. WARNING: if the LASTXFER bit is set into the Control Register then new data are written into the Transmit Data Register fast enough to keep its shifter not empty, the chip-select output pin remains asserted. Only when the shifter becomes empty, the chip-select output pin is unasserted. When the CSAAT bit is clear in the Chip Select Register, the LASTXFER bit is ignored in both the Control Register and the Transmit Data Register. The internal chip-select output pin remains active as long as the Transmit Data Register or its shift register are not empty. Signed-off-by: Cyrille Pitchen Acked-by: Nicolas Ferre Signed-off-by: Mark Brown drivers/spi/spi-atmel.c | 37 ++++++++++++++++++++++++++++--------- 1 file changed, 28 insertions(+), 9 deletions(-) commit 0f7d6ece6363f315b3b830dc19e6732537719224 Author: Laxman Dewangan Date: Tue Jun 9 19:17:53 2015 +0530 regulator: max8973: add support for MAX77621 Maxim MAX77621 device is high-efficiency, three-phase, DC-DC step-down switching regulator delivers peak output currents up to 16A. This device is extension of MAX8973 and compatible with the register definition. The MAX77621 has the SHUTDOWN pin which is EN pin on the MAX8973. On MAX77621, the SHUTDOWN pin (active low) reset device register to its POR/OTP value. The voltage output is enabled when SHUTDONW pin is HIGH and EN bit on VOUT register is HIGH. For MAX8973, VOUT is enabled when EN bit or EN pin is high. Add support of the MAX77621 device on max8973 regulator driver with following changes: - Make sure SHUTDOWN pin is set HIGH through GPIO calls if GPIO from AP connected to SHUTDOWN pin provided. - Enable/disable the rail through register access only. Signed-off-by: Laxman Dewangan Signed-off-by: Mark Brown .../bindings/regulator/max8973-regulator.txt | 4 +- drivers/regulator/max8973-regulator.c | 104 +++++++++++++++++---- 2 files changed, 87 insertions(+), 21 deletions(-) commit 3064c1f302d1b61dbb0e40e4ffc902edc6208517 Author: Laxman Dewangan Date: Tue Jun 9 19:17:52 2015 +0530 regulator: max8973: configure ramp delay through callback Regulator core framework support the configuration of ramp delay reading from platform specific regulator data via the regulator callback ops. Instead of reading regulator init data on driver and setting ramp delay, use the callback to achieve this. Signed-off-by: Laxman Dewangan Signed-off-by: Mark Brown drivers/regulator/max8973-regulator.c | 73 +++++++++++++++++++++++++++-------- 1 file changed, 57 insertions(+), 16 deletions(-) commit c11b532910f71246e0d5b580e3694ee3b7ddf54c Author: Andre Przywara Date: Thu Apr 23 20:01:53 2015 +0100 KVM: arm64: add active register handling to GICv3 emulation as well Commit 47a98b15ba7c ("arm/arm64: KVM: support for un-queuing active IRQs") introduced handling of the GICD_I[SC]ACTIVER registers, but only for the GICv2 emulation. For the sake of completeness and as this is a pre-requisite for save/restore of the GICv3 distributor state, we should also emulate their handling in the distributor and redistributor frames of an emulated GICv3. Acked-by: Christoffer Dall Signed-off-by: Andre Przywara Signed-off-by: Marc Zyngier virt/kvm/arm/vgic-v3-emul.c | 54 +++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 50 insertions(+), 4 deletions(-) commit a5f56ba3b4ec8d2ad80da4c447d47e37e2b504fb Author: Firo Yang Date: Thu Apr 23 11:07:40 2015 +0100 ARM: KVM: Remove pointless void pointer cast No need to cast the void pointer returned by kmalloc() in arch/arm/kvm/mmu.c::kvm_alloc_stage2_pgd(). Signed-off-by: Firo Yang Acked-by: Paolo Bonzini Signed-off-by: Marc Zyngier arch/arm/kvm/mmu.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 2682c7c72e947bab2aa7f61d83eb6fb87a64d742 Author: Srinivas Kandagatla Date: Tue Jun 9 14:35:22 2015 +0100 ASoC: qcom: storm: remove special casing EPROBE_DEFER This patch removes special casing the EPROBE_DEFER error handling in the driver. Signed-off-by: Srinivas Kandagatla Signed-off-by: Mark Brown sound/soc/qcom/storm.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit 21e904bcf9b2e57e0599e9dddff558ffd0ce5f59 Author: Srinivas Kandagatla Date: Tue Jun 9 14:34:21 2015 +0100 ASoC: qcom: storm: allocate snd_soc_card struct dynamically. This patch moves static allocation of snd_soc_card to dynamic allocation, the reason to do this is to avoid holding up any dangling pointers in this static structures. And I see no use for having this struct as static given that the card->name is also populated dynamically from dt. Signed-off-by: Srinivas Kandagatla Signed-off-by: Mark Brown sound/soc/qcom/storm.c | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) commit 20f300175a1e150dae231e21dfa1fc4c6fcf4db6 Author: Alex Williamson Date: Tue Jun 9 10:08:57 2015 -0600 vfio/pci: Fix racy vfio_device_get_from_dev() call Testing the driver for a PCI device is racy, it can be all but complete in the release path and still report the driver as ours. Therefore we can't trust drvdata to be valid. This race can sometimes be seen when one port of a multifunction device is being unbound from the vfio-pci driver while another function is being released by the user and attempting a bus reset. The device in the remove path is found as a dependent device for the bus reset of the release path device, the driver is still set to vfio-pci, but the drvdata has already been cleared, resulting in a null pointer dereference. To resolve this, fix vfio_device_get_from_dev() to not take the dev_get_drvdata() shortcut and instead traverse through the iommu_group, vfio_group, vfio_device path to get a reference we can trust. Once we have that reference, we know the device isn't in transition and we can test to make sure the driver is still what we expect, so that we don't interfere with devices we don't own. Signed-off-by: Alex Williamson drivers/vfio/pci/vfio_pci.c | 16 +++++++++------- drivers/vfio/vfio.c | 27 +++++++++++++++++++-------- 2 files changed, 28 insertions(+), 15 deletions(-) commit a5dd4b4b0570b3bf880d563969b245dfbd170c1e Author: Alex Williamson Date: Mon Jun 8 17:10:50 2015 -0600 PCI: pciehp: Wait for hotplug command completion where necessary The commit referenced below deferred waiting for command completion until the start of the next command, allowing hardware to do the latching asynchronously. Unfortunately, being ready to accept a new command is the only indication we have that the previous command is completed. In cases where we need that state change to be enabled, we must still wait for completion. For instance, pciehp_reset_slot() attempts to disable anything that might generate a surprise hotplug on slots that support presence detection. If we don't wait for those settings to latch before the secondary bus reset, we negate any value in attempting to prevent the spurious hotplug. Create a base function with optional wait and helper functions so that pcie_write_cmd() turns back into the "safe" interface which waits before and after issuing a command and add pcie_write_cmd_nowait(), which eliminates the trailing wait for asynchronous completion. The following functions are returned to their previous behavior: pciehp_power_on_slot pciehp_power_off_slot pcie_disable_notification pciehp_reset_slot The rationale is that pciehp_power_on_slot() enables the link and therefore relies on completion of power-on. pciehp_power_off_slot() and pcie_disable_notification() need a wait because data structures may be freed after these calls and continued signaling from the device would be unexpected. And, of course, pciehp_reset_slot() needs to wait for the scenario outlined above. Fixes: 3461a068661c ("PCI: pciehp: Wait for hotplug command completion lazily") Signed-off-by: Alex Williamson Signed-off-by: Bjorn Helgaas CC: stable@vger.kernel.org # v3.17+ drivers/pci/hotplug/pciehp_hpc.c | 52 +++++++++++++++++++++++++++++----------- 1 file changed, 38 insertions(+), 14 deletions(-) commit 8721fa692bc218df3f0ad30740baedf176a41f56 Author: Masanari Iida Date: Wed Jun 10 00:17:42 2015 +0900 Doc: sound:oss: Fix typo in sound/oss This patch fix some spelling typo found in Documentations/sound/oss. Signed-off-by: Masanari Iida Signed-off-by: Takashi Iwai Documentation/sound/oss/PSS-updates | 2 +- Documentation/sound/oss/README.OSS | 2 +- Documentation/sound/oss/btaudio | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 05dee9c7ebc06719df2dd11bfd3bea96aeaf9707 Author: Herbert Xu Date: Tue Jun 9 12:46:46 2015 +0800 nios2: Export get_cycles nios2 is the only architecture that does not inline get_cycles and does not export it. This breaks crypto as it uses get_cycles in a number of modules. Reported-by: Guenter Roeck Signed-off-by: Herbert Xu arch/nios2/kernel/time.c | 2 ++ 1 file changed, 2 insertions(+) commit fbb145bc0a1c03b90a96cca99dc07c33aaad2318 Author: Stephan Mueller Date: Tue Jun 9 04:08:49 2015 +0200 crypto: drbg - use pragmas for disabling optimization Replace the global -O0 compiler flag from the Makefile with GCC pragmas to mark only the functions required to be compiled without optimizations. This patch also adds a comment describing the rationale for the functions chosen to be compiled without optimizations. Signed-off-by: Stephan Mueller Signed-off-by: Herbert Xu crypto/Makefile | 1 - crypto/jitterentropy.c | 30 ++++++++++++++++++++++++++---- 2 files changed, 26 insertions(+), 5 deletions(-) commit 70c3c8a96a85d333b3ff1f24df84c0e179261a8a Author: Herbert Xu Date: Mon Jun 8 16:38:24 2015 +0800 crypto: caam - Clamp AEAD SG list by input length Currently caam assumes that the SG list contains exactly the number of bytes required. This assumption is incorrect. Up until now this has been harmless. However with the new AEAD interface this now breaks as the AD SG list contains more bytes than just the AD. This patch fixes this by always clamping the AD SG list by the specified AD length. Signed-off-by: Herbert Xu drivers/crypto/caam/caamalg.c | 20 ++++++++------------ drivers/crypto/caam/sg_sw_sec4.h | 15 +++++++++++++++ 2 files changed, 23 insertions(+), 12 deletions(-) commit ecb479d07a4e2db980965193511dbf2563d50db5 Author: Tadeusz Struk Date: Fri Jun 5 15:52:13 2015 -0700 crypto: qat: fix issue when mapping assoc to internal AD struct This patch fixes an issue when building an internal AD representation. We need to check assoclen and not only blindly loop over assoc sgl. Signed-off-by: Tadeusz Struk Signed-off-by: Herbert Xu drivers/crypto/qat/qat_common/qat_algs.c | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) commit e4fa1460b35e18a0eae26223ca91047d92992f3e Author: Tadeusz Struk Date: Fri Jun 5 15:51:18 2015 -0700 crypto: qat - Set max request size The device doensn't support the default value and will change it to 256, which will cause performace degradation for biger packets. Add an explicit write to set it to 1024. Reported-by: Tianliang Wang Signed-off-by: Tadeusz Struk Signed-off-by: Herbert Xu drivers/crypto/qat/qat_dh895xcc/adf_drv.c | 2 ++ 1 file changed, 2 insertions(+) commit a7eed15627795b60c57da48051826ecca5e9fa93 Author: LABBE Corentin Date: Fri Jun 5 11:39:22 2015 +0200 crypto: testmgr - Document struct cipher_testvec Signed-off-by: LABBE Corentin Signed-off-by: Herbert Xu crypto/testmgr.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit 86066914edff2316cbed63aac8a87d5001441a16 Author: Abhi Das Date: Tue Jun 9 09:16:46 2015 -0500 gfs2: Don't support fallocate on jdata files We cannot provide an efficient implementation due to the headers on the data blocks, so there doesn't seem much point in having it. Signed-off-by: Abhi Das Signed-off-by: Bob Peterson fs/gfs2/file.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c9d442038ef729549e1fd14ff1d61d0d3a7f0560 Author: Stefan Schmidt Date: Tue Jun 9 11:49:27 2015 +0200 ieee802154: cc2520: check for return values in cc2520_filter() neither ram nor register write return values have been checked here. Checking both now. Assign ret with 0 as all other assignments are inside if blocks and might not happen before we return ret. CID: 1230469 Signed-off-by: Stefan Schmidt Acked-by: Varka Bhadram Signed-off-by: Marcel Holtmann drivers/net/ieee802154/cc2520.c | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) commit fe8de008ecc7c8a6bda72a7c3ac1916c947074b2 Author: Prasanna Karthik Date: Tue Jun 9 11:51:53 2015 +0000 Bluetooth: hci_bcsp: Clean up code Fix Fix for spaces prohibited around that '->' reported by checkpatch and space prohibited between function name and open parenthesis '(' Signed-off-by: Prasanna Karthik Signed-off-by: Marcel Holtmann drivers/bluetooth/hci_bcsp.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit ff50e8afc537e66bb3daf5d1cd6628d6b76e7f06 Author: Arron Wang Date: Tue Jun 9 17:47:23 2015 +0800 Bluetooth: Move SCO support under BT_BREDR config option SCO/eSCO link is supported by BR/EDR controller, it is suitable to move them under BT_BREDR config option Signed-off-by: Arron Wang Signed-off-by: Marcel Holtmann include/net/bluetooth/bluetooth.h | 11 +++++++++++ include/net/bluetooth/hci_core.h | 12 ++++++++++++ net/bluetooth/Makefile | 3 ++- 3 files changed, 25 insertions(+), 1 deletion(-) commit 9b4c33364eb653a824c58e637c73caa6feb9879c Author: Arron Wang Date: Tue Jun 9 17:47:22 2015 +0800 Bluetooth: Make l2cap_recv_acldata() and sco_recv_scodata() return void The return value of l2cap_recv_acldata() and sco_recv_scodata() are not used, then change it to return void Signed-off-by: Arron Wang Signed-off-by: Marcel Holtmann include/net/bluetooth/hci_core.h | 4 ++-- net/bluetooth/l2cap_core.c | 5 ++--- net/bluetooth/sco.c | 5 ++--- 3 files changed, 6 insertions(+), 8 deletions(-) commit 3e2d8e1b82af3e67c8d369f3c006b8f882399742 Author: Vladimir Kondratiev Date: Tue Jun 9 14:11:19 2015 +0300 wil6210: reorder init sequence Need to reorder init sequence to run wil_platform_init before pci_enable_device. Assumption is platform init may be required before device may be enabled. Another issue, platform uninit should be called after pci_disable_device because platform uninit may render pci device non-accessible. Signed-off-by: Vladimir Kondratiev Signed-off-by: Kalle Valo drivers/net/wireless/ath/wil6210/netdev.c | 3 +- drivers/net/wireless/ath/wil6210/pcie_bus.c | 77 ++++++++++++++----------- drivers/net/wireless/ath/wil6210/wil6210.h | 2 +- drivers/net/wireless/ath/wil6210/wil_platform.c | 5 +- 4 files changed, 48 insertions(+), 39 deletions(-) commit b39d69377e4b331f42de1b7a103bf7b2205e70ae Author: Vladimir Kondratiev Date: Tue Jun 9 14:11:19 2015 +0300 wil6210: platform hooks for modile init/exit Provide platform hooks for module init/exit. If platform require to perform some specific actions in global context, this is where to do so. Example may be turning on power for the PCIE based on DT information. Signed-off-by: Vladimir Kondratiev Signed-off-by: Kalle Valo drivers/net/wireless/ath/wil6210/pcie_bus.c | 22 +++++++++++++++++++++- drivers/net/wireless/ath/wil6210/wil_platform.c | 9 +++++++++ drivers/net/wireless/ath/wil6210/wil_platform.h | 3 +++ 3 files changed, 33 insertions(+), 1 deletion(-) commit 8e52fe3088138dcc1cbb718fb65a6a96cdd65249 Author: Hamad Kadmany Date: Tue Jun 9 14:11:18 2015 +0300 wil6210: Support hidden SSID Pass hidden SSID information to FW for proper operation. In order to be able to scan/connect to the hidden SSID, SSID setting is added when scan is requested from FW. SSID scanning currently supports single SSID due to FW limitation. Signed-off-by: Hamad Kadmany Signed-off-by: Vladimir Kondratiev Signed-off-by: Kalle Valo drivers/net/wireless/ath/wil6210/cfg80211.c | 46 +++++++++++++++++++++++++++-- drivers/net/wireless/ath/wil6210/wil6210.h | 3 +- drivers/net/wireless/ath/wil6210/wmi.c | 4 ++- drivers/net/wireless/ath/wil6210/wmi.h | 10 ++++++- 4 files changed, 57 insertions(+), 6 deletions(-) commit c4a110d85308a04f5a106a3a0bc5d3fd983d8a6f Author: Vladimir Kondratiev Date: Tue Jun 9 14:11:18 2015 +0300 wil6210: add per-MCS Rx stats Provide detailed statistics for the Rx frames per MCS Statistics printed in "stations" debugfs entry Signed-off-by: Vladimir Kondratiev Signed-off-by: Kalle Valo drivers/net/wireless/ath/wil6210/debugfs.c | 8 +++++++- drivers/net/wireless/ath/wil6210/txrx.c | 2 ++ drivers/net/wireless/ath/wil6210/wil6210.h | 2 ++ 3 files changed, 11 insertions(+), 1 deletion(-) commit 0fd37ff8ee3844032b2d6dc8a8cc73ce41d2ce0b Author: Vladimir Kondratiev Date: Tue Jun 9 14:11:17 2015 +0300 wil6210: add NIC memory region mac_rgf_ext Firmware defines new memory region, mac_rgf_ext that need to be accessed from the host for debug purposes. Add corresponded mapping Signed-off-by: Vladimir Kondratiev Signed-off-by: Kalle Valo drivers/net/wireless/ath/wil6210/wil6210.h | 2 +- drivers/net/wireless/ath/wil6210/wmi.c | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) commit d507d1b7521b9c464b8d02a0c06997ed6f69cff3 Author: Vladimir Kondratiev Date: Tue Jun 9 14:11:17 2015 +0300 wil6210: modparam for bcast ring size Control Bcast ring size in similar way as Rx and Tx ones, through "bcast_ring_order" modparam, actual ring size is 1 << order Signed-off-by: Vladimir Kondratiev Signed-off-by: Kalle Valo drivers/net/wireless/ath/wil6210/main.c | 2 ++ 1 file changed, 2 insertions(+) commit 31ba6a088ed1739abe0ac5b305fc9b76bd70b39a Author: Brent Taylor Date: Tue Jun 9 14:11:19 2015 +0300 ath6kl: Fix multiple clients associating in AP mode When one client is associated and connected to an ar6003 hw version 2.0 with firmware 3.1.1.149, and another client tries to connect, the first client's MAC address is lost in the station list because the "aid" is always "1". The structure "wmi_connect_event" has the "aid" as the second byte in the message, but it should be the first byte. This patch has been tested with linux-3.10.40 Signed-off-by: Brent Taylor Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath6kl/wmi.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6356437e65c2de610ab2bde24211426ae9322934 Author: Daniel Mack Date: Mon Jun 8 22:32:37 2015 +0200 spi: spi-pxa2xx: remove legacy PXA DMA bits Generic DMA support was already implemented by commit cd7bed003404 ("spi/pxa2xx: break out the private DMA API usage into a separate file") which moved all the legacy PXA DMA implementation code into its own file. With generic DMA available for PXA, we can now just trash this file. Signed-off-by: Daniel Mack Acked-by: Mark Brown [respin after pxa dmaengine support upstream] Signed-off-by: Robert Jarzmik Acked-by: Mika Westerberg Signed-off-by: Mark Brown drivers/spi/Kconfig | 9 +- drivers/spi/Makefile | 1 - drivers/spi/spi-pxa2xx-pxadma.c | 487 ---------------------------------------- drivers/spi/spi-pxa2xx.h | 6 +- 4 files changed, 2 insertions(+), 501 deletions(-) commit 469d479f91b8277cc921d7525f31c832b25d9efb Author: Michal Kazior Date: Mon Jun 8 13:23:27 2015 +0200 ath10k: prevent memory leak in wmi rx ops Found during code review. This was pretty much impossible to happen but better safe than sorry. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/wmi-tlv.c | 3 ++- drivers/net/wireless/ath/ath10k/wmi.c | 8 +++++--- 2 files changed, 7 insertions(+), 4 deletions(-) commit 0e6eb417fc1facda1c9a9189be85f16cb5b8b69f Author: Michal Kazior Date: Wed Jun 3 12:16:56 2015 +0200 ath10k: fix channel switching In the midst of chanctx patch review channel switching became broken which I failed to notice until now. Function ath10k_mac_vif_chan() reports current chandef which isn't updated until after switch_vif_chanctx() is returned from. Consequently the driver just restarted operation on channels it was residing already instead of switching to the new ones. Fixes: 500ff9f9389d ("ath10k: implement chanctx API") Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 142 +++++++++++++++------------------- 1 file changed, 62 insertions(+), 80 deletions(-) commit 089ab7a5af3250bdc0a4088785b1a268da06417d Author: Michal Kazior Date: Wed Jun 3 12:16:55 2015 +0200 ath10k: remove ath10k_chanctx struct In practice there's no point in having a copy of chanctx_conf. Most of the time the channel pointer (and band along with it) is accessed and this can't change after a chanctx is created because switching is done using explicit chanctx swapping via switch_vif_chanctx(). The only thing that can change within a chanctx_conf and is used by the driver is radar_enabled and channel width. These are however always accessed in adequate mac80211 callback context which guarantees safe access to the chanctx data. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.h | 9 ------ drivers/net/wireless/ath/ath10k/mac.c | 53 ++++------------------------------ 2 files changed, 6 insertions(+), 56 deletions(-) commit d7bf4b4aba056f3e7eb88a3d8d45ee1a6f4873e9 Author: Michal Kazior Date: Wed Jun 3 12:16:54 2015 +0200 ath10k: fix ar->rx_channel updating logic Channel contexts aren't iterable until after they've been added to the driver. The code assumed otherwise. This problem could result in: * rx_channel being NULL and forcing Rx path to go the slow way to get channel on QCA988X, * report incorrect channel when running multi-channel on QCA61X4 hw2.1, * report incorrect channel after AP channel switch. Fixes: 500ff9f9389d ("ath10k: implement chanctx API") Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) commit b72436c4306dfea73c39b1d5f63830d9d03b746f Author: Raja Mani Date: Tue Jun 2 13:04:15 2015 +0530 ath10k: remove unused variable 'id' in ath10k_pci_tx_pipe_cleanup() mete_data is extracted from ce descriptor and stored in variable 'id'. later, id is not used anywhere in the same function. Fixes: d84a512dca23 ("ath10k: remove transfer_id from ath10k_hif_cb::tx_completion") Signed-off-by: Raja Mani Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/pci.c | 3 --- 1 file changed, 3 deletions(-) commit 08603f2e1c31839510747899a5e0b9448b502ee0 Author: Raja Mani Date: Mon Jun 1 14:53:33 2015 +0530 ath10k: free wmi mgmt event skb when parsing fails When wmi mgmt event function fails to parse given skb, it should be freed on failure condition to avoid memory leaks. Found this during the code review. Signed-off-by: Raja Mani Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/wmi.c | 1 + 1 file changed, 1 insertion(+) commit d4b5c782b9f4ef5b3c34cb369989cc2fc68f7391 Author: Lubomir Rintel Date: Tue May 5 13:27:44 2015 -0700 dt/bindings: Add binding for the BCM2835 mailbox driver This patch was split out of Lubomir's original mailbox patch by Eric Anholt, and the required properties documentation and examples have been filled out more completely and updated for the driver being changed to expose a single channel. Signed-off-by: Lubomir Rintel Signed-off-by: Craig McGeachie Signed-off-by: Eric Anholt Acked-by: Lee Jones Acked-by: Stephen Warren Signed-off-by: Jassi Brar .../bindings/mailbox/brcm,bcm2835-mbox.txt | 26 ++++++++++++++++++++++ 1 file changed, 26 insertions(+) commit 97ac46a5087eaf87fd76ff7bb31ec9c896010442 Author: Dave Hansen Date: Sun Jun 7 11:37:06 2015 -0700 x86/mpx: Allow 32-bit binaries on 64-bit kernels again Now that the bugs in mixed mode MPX handling are fixed, re-allow 32-bit binaries on 64-bit kernels again. Signed-off-by: Dave Hansen Reviewed-by: Thomas Gleixner Cc: Andrew Morton Cc: Dave Hansen Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20150607183706.70277DAD@viggo.jf.intel.com Signed-off-by: Ingo Molnar arch/x86/mm/mpx.c | 6 ------ 1 file changed, 6 deletions(-) commit bea03c50b871a2fa922f31ad7c9993bb4fc7b192 Author: Dave Hansen Date: Sun Jun 7 11:37:06 2015 -0700 x86/mpx: Do not count MPX VMAs as neighbors when unmapping The comment pretty much says it all. I wrote a test program that does lots of random allocations and forces bounds tables to be created. It came up with a layout like this: .... | BOUNDS DIRECTORY ENTRY COVERS | .... | BOUNDS TABLE COVERS | | BOUNDS TABLE | REAL ALLOC | BOUNDS TABLE | Unmapping "REAL ALLOC" should have been able to free the bounds table "covering" the "REAL ALLOC" because it was the last real user. But, the neighboring VMA bounds tables were found, considered as real neighbors, and we declined to free the bounds table covering the area. Doing this over and over left a small but significant number of these orphans. Handling them is fairly straighforward. All we have to do is walk the VMAs and skip all of the MPX ones when looking for neighbors. Signed-off-by: Dave Hansen Reviewed-by: Thomas Gleixner Cc: Andrew Morton Cc: Dave Hansen Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20150607183706.A6BD90BF@viggo.jf.intel.com Signed-off-by: Ingo Molnar arch/x86/mm/mpx.c | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) commit 3ceaccdf92073d193f0bfbe24280dd736e3fed86 Author: Dave Hansen Date: Sun Jun 7 11:37:06 2015 -0700 x86/mpx: Rewrite the unmap code The MPX code needs to clear out bounds tables for memory which is no longer in use. We do this when a userspace mapping is torn down (unmapped). There are two modes: 1. An entire bounds table becomes unused, and can be freed and its pointer removed from the bounds directory. This happens either when a large mapping is torn down, or when a small mapping is torn down and it is the last mapping "covered" by a bounds table. 2. Only part of a bounds table becomes unused, in which case we free the backing memory as if MADV_DONTNEED was called. The old code was a spaghetti mess of "edge" bounds tables where the edges were handled specially, even if we were unmapping an entire one. Non-edge bounds tables are always fully unmapped, but share a different code path from the edge ones. The old code had a bug where it was unmapping too much memory. I worked on fixing it for two days and gave up. I didn't write the original code. I didn't particularly like it, but it worked, so I left it. After my debug session, I realized it was undebuggagle *and* buggy, so out it went. I also wrote a new unmapping test program which uncovers bugs pretty nicely. Signed-off-by: Dave Hansen Reviewed-by: Thomas Gleixner Cc: Andrew Morton Cc: Dave Hansen Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20150607183706.DCAEC67D@viggo.jf.intel.com Signed-off-by: Ingo Molnar arch/x86/mm/mpx.c | 411 ++++++++++++++++++++++-------------------------------- 1 file changed, 168 insertions(+), 243 deletions(-) commit 613fcb7d3c79ec25b5913a6aa974c9047c31e68c Author: Dave Hansen Date: Sun Jun 7 11:37:05 2015 -0700 x86/mpx: Support 32-bit binaries on 64-bit kernels Right now, the kernel can only switch between 64-bit and 32-bit binaries at compile time. This patch adds support for 32-bit binaries on 64-bit kernels when we support ia32 emulation. We essentially choose which set of table sizes to use when doing arithmetic for the bounds table calculations. This also uses a different approach for calculating the table indexes than before. I think the new one makes it much more clear what is going on, and allows us to share more code between the 32-bit and 64-bit cases. Based-on-patch-by: Qiaowei Ren Signed-off-by: Dave Hansen Reviewed-by: Thomas Gleixner Cc: Andrew Morton Cc: Dave Hansen Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20150607183705.E01F21E2@viggo.jf.intel.com Signed-off-by: Ingo Molnar arch/x86/include/asm/mpx.h | 62 ++++++++--------- arch/x86/mm/mpx.c | 170 +++++++++++++++++++++++++++++++++++++++------ 2 files changed, 179 insertions(+), 53 deletions(-) commit 6ac52bb4913eadfa327138b91aab5d37234a2c3b Author: Dave Hansen Date: Sun Jun 7 11:37:05 2015 -0700 x86/mpx: Use 32-bit-only cmpxchg() for 32-bit apps user_atomic_cmpxchg_inatomic() actually looks at sizeof(*ptr) to figure out how many bytes to copy. If we run it on a 64-bit kernel with a 64-bit pointer, it will copy a 64-bit bounds directory entry. That's fine, except when we have 32-bit programs with 32-bit bounds directory entries and we only *want* 32-bits. This patch breaks the cmpxchg() operation out in to its own function and performs the 32-bit type swizzling in there. Note, the "64-bit" version of this code _would_ work on a 32-bit-only kernel. The issue this patch addresses is only for when the kernel's 'long' is mismatched from the size of the bounds directory entry of the process we are working on. The new helper modifies 'actual_old_val' or returns an error. But gcc doesn't know this, so it warns about 'actual_old_val' being unused. Shut it up with an uninitialized_var(). Signed-off-by: Dave Hansen Reviewed-by: Thomas Gleixner Cc: Andrew Morton Cc: Dave Hansen Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20150607183705.672B115E@viggo.jf.intel.com Signed-off-by: Ingo Molnar arch/x86/mm/mpx.c | 41 ++++++++++++++++++++++++++++++++++++----- 1 file changed, 36 insertions(+), 5 deletions(-) commit 54587653904c552c56b9dec153d7a89063394b09 Author: Dave Hansen Date: Sun Jun 7 11:37:04 2015 -0700 x86/mpx: Introduce new 'directory entry' to 'addr' helper function Currently, to get from a bounds directory entry to the virtual address of a bounds table, we simply mask off a few low bits. However, the set of bits we mask off is different for 32-bit and 64-bit binaries. This breaks the operation out in to a helper function and also adds a temporary variable to store the result until we are sure we are returning one. Signed-off-by: Dave Hansen Reviewed-by: Thomas Gleixner Cc: Andrew Morton Cc: Dave Hansen Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20150607183704.007686CE@viggo.jf.intel.com Signed-off-by: Ingo Molnar arch/x86/include/asm/mpx.h | 1 - arch/x86/mm/mpx.c | 41 ++++++++++++++++++++++++++++++++++------- 2 files changed, 34 insertions(+), 8 deletions(-) commit a1149fc83a1f97612e72ec24a0bdbabff7b85e77 Author: Dave Hansen Date: Sun Jun 7 11:37:04 2015 -0700 x86/mpx: Add temporary variable to reduce masking When we allocate a bounds table, we call mmap(), then add a "valid" bit to the value before storing it in to the bounds directory. If we fail along the way, we go and mask that valid bit _back_ out. That seems a little silly, and this makes it much more clear when we have a plain address versus an actual table _entry_. Signed-off-by: Dave Hansen Reviewed-by: Thomas Gleixner Cc: Andrew Morton Cc: Dave Hansen Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20150607183704.3D69D5F4@viggo.jf.intel.com Signed-off-by: Ingo Molnar arch/x86/mm/mpx.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit b0e9b09b3bd64e67bba862e238d3757b2482b6de Author: Dave Hansen Date: Sun Jun 7 11:37:04 2015 -0700 x86: Make is_64bit_mm() widely available The uprobes code has a nice helper, is_64bit_mm(), that consults both the runtime and compile-time flags for 32-bit support. Instead of reinventing the wheel, pull it in to an x86 header so we can use it for MPX. I prefer passing the 'mm' around to test_thread_flag(TIF_IA32) because it makes it explicit where the context is coming from. Signed-off-by: Dave Hansen Reviewed-by: Thomas Gleixner Cc: Andrew Morton Cc: Dave Hansen Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20150607183704.F0209999@viggo.jf.intel.com Signed-off-by: Ingo Molnar arch/x86/include/asm/mmu_context.h | 13 +++++++++++++ arch/x86/kernel/uprobes.c | 10 +--------- 2 files changed, 14 insertions(+), 9 deletions(-) commit cd4996dce18b619bd7b3acf75c91f49c77f05a97 Author: Dave Hansen Date: Sun Jun 7 11:37:04 2015 -0700 x86/mpx: Trace allocation of new bounds tables Bounds tables are a significant consumer of memory. It is important to know when they are being allocated. Add a trace point to trace whenever an allocation occurs and also its virtual address. Signed-off-by: Dave Hansen Reviewed-by: Thomas Gleixner Cc: Andrew Morton Cc: Dave Hansen Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20150607183704.EC23A93E@viggo.jf.intel.com Signed-off-by: Ingo Molnar arch/x86/include/asm/trace/mpx.h | 16 ++++++++++++++++ arch/x86/mm/mpx.c | 1 + 2 files changed, 17 insertions(+) commit 2a1dcb1f796ad37028df37d96fc7c5b6b1705a43 Author: Dave Hansen Date: Sun Jun 7 11:37:03 2015 -0700 x86/mpx: Trace the attempts to find bounds tables There are two different events being traced here. They are doing similar things so share a trace "EVENT_CLASS" and are presented together. 1. Trace when MPX is zapping pages "mpx_unmap_zap": When MPX can not free an entire bounds table, it will instead try to zap unused parts of a bounds table to free the backing memory. This decreases RSS (resident set size) without decreasing the virtual space allocated for bounds tables. 2. Trace attempts to find bounds tables "mpx_unmap_search": This event traces any time we go looking to unmap a bounds table for a given virtual address range. This is useful to ensure that the kernel actually "tried" to free a bounds table versus times it succeeded in finding one. It might try and fail if it realized that a table was shared with an adjacent VMA which is not being unmapped. Signed-off-by: Dave Hansen Reviewed-by: Thomas Gleixner Cc: Andrew Morton Cc: Dave Hansen Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20150607183703.B9D2468B@viggo.jf.intel.com Signed-off-by: Ingo Molnar arch/x86/include/asm/trace/mpx.h | 32 ++++++++++++++++++++++++++++++++ arch/x86/mm/mpx.c | 2 ++ 2 files changed, 34 insertions(+) commit 97efebf1bc30a80122af3295ebdb726dbc040ca6 Author: Dave Hansen Date: Sun Jun 7 11:37:03 2015 -0700 x86/mpx: Trace entry to bounds exception paths There are two basic things that can happen as the result of a bounds exception (#BR): 1. We allocate a new bounds table 2. We pass up a bounds exception to userspace. This patch adds a trace point for the case where we are passing the exception up to userspace with a signal. We are also explicit that we're printing out the inverse of the 'upper' that we encounter. If you want to filter, for instance, you need to ~ the value first. The reason we do this is because of how 'upper' is stored in the bounds table. If a pointer's range is: 0x1000 -> 0x2000 it is stored in the bounds table as (32-bits here for brevity): lower: 0x00001000 upper: 0xffffdfff That is so that an all 0's entry: lower: 0x00000000 upper: 0x00000000 corresponds to the "init" bounds which store a *range* of: 0x00000000 -> 0xffffffff That is, by far, the common case, and that lets us use the zero page, or deduplicate the memory, etc... The 'upper' stored in the table is gibberish to print by itself, so we print ~upper to get the *actual*, logical, human-readable value printed out. Signed-off-by: Dave Hansen Reviewed-by: Thomas Gleixner Cc: Andrew Morton Cc: Dave Hansen Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20150607183703.027BB9B0@viggo.jf.intel.com Signed-off-by: Ingo Molnar arch/x86/include/asm/trace/mpx.h | 34 ++++++++++++++++++++++++++++++++++ arch/x86/mm/mpx.c | 1 + 2 files changed, 35 insertions(+) commit e7126cf5f10aef1555cb99eddb7efff41bdf9566 Author: Dave Hansen Date: Sun Jun 7 11:37:03 2015 -0700 x86/mpx: Trace #BR exceptions This is the first in a series of MPX tracing patches. I've found these extremely useful in the process of debugging applications and the kernel code itself. This exception hooks in to the bounds (#BR) exception very early and allows capturing the key registers which would influence how the exception is handled. Note that bndcfgu/bndstatus are technically still 64-bit registers even in 32-bit mode. Signed-off-by: Dave Hansen Reviewed-by: Thomas Gleixner Cc: Andrew Morton Cc: Dave Hansen Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20150607183703.5FE2619A@viggo.jf.intel.com Signed-off-by: Ingo Molnar arch/x86/include/asm/trace/mpx.h | 50 ++++++++++++++++++++++++++++++++++++++++ arch/x86/kernel/traps.c | 2 ++ arch/x86/mm/mpx.c | 3 +++ 3 files changed, 55 insertions(+) commit 8c3641e957a948f41f0174290096ed7a3b95e703 Author: Dave Hansen Date: Sun Jun 7 11:37:02 2015 -0700 x86/mpx: Introduce a boot-time disable flag MPX has the _potential_ to cause some issues. Say part of your init system tried to protect one of its components from buffer overflows with MPX. If there were a false positive, it's possible that MPX could keep a system from booting. MPX could also potentially cause performance issues since it is present in hot paths like the unmap path. Allow it to be disabled at boot time. Signed-off-by: Dave Hansen Reviewed-by: Thomas Gleixner Cc: Dave Hansen Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/20150607183702.2E8B77AB@viggo.jf.intel.com Signed-off-by: Ingo Molnar Documentation/kernel-parameters.txt | 4 ++++ arch/x86/kernel/cpu/common.c | 16 ++++++++++++++++ 2 files changed, 20 insertions(+) commit eb099e5bc5457c42043e57cf0f4ce574669b9697 Author: Dave Hansen Date: Sun Jun 7 11:37:02 2015 -0700 x86/mpx: Restrict the mmap() size check to bounds tables The comment and code here are confusing. We do not currently allocate the bounds directory in the kernel. Signed-off-by: Dave Hansen Reviewed-by: Thomas Gleixner Cc: Andrew Morton Cc: Dave Hansen Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20150607183702.222CEC2A@viggo.jf.intel.com Signed-off-by: Ingo Molnar arch/x86/mm/mpx.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 3c1d32300920a446c67d697cd6b80f012ad06028 Author: Qiaowei Ren Date: Sun Jun 7 11:37:02 2015 -0700 x86/mpx: Remove redundant MPX_BNDCFG_ADDR_MASK MPX_BNDCFG_ADDR_MASK is defined two times, so this patch removes redundant one. Signed-off-by: Qiaowei Ren Signed-off-by: Dave Hansen Reviewed-by: Thomas Gleixner Cc: Andrew Morton Cc: Dave Hansen Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20150607183702.5F129376@viggo.jf.intel.com Signed-off-by: Ingo Molnar arch/x86/include/asm/mpx.h | 1 - 1 file changed, 1 deletion(-) commit 46a6e0cf1c6665a8e867d8f7798d7a3538633f03 Author: Dave Hansen Date: Sun Jun 7 11:37:02 2015 -0700 x86/mpx: Clean up the code by not passing a task pointer around when unnecessary The MPX code can only work on the current task. You can not, for instance, enable MPX management in another process or thread. You can also not handle a fault for another process or thread. Despite this, we pass a task_struct around prolifically. This patch removes all of the task struct passing for code paths where the code can not deal with another task (which turns out to be all of them). This has no functional changes. It's just a cleanup. Signed-off-by: Dave Hansen Reviewed-by: Thomas Gleixner Cc: Andrew Morton Cc: Dave Hansen Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: bp@alien8.de Link: http://lkml.kernel.org/r/20150607183702.6A81DA2C@viggo.jf.intel.com Signed-off-by: Ingo Molnar arch/x86/include/asm/mpx.h | 10 ++++------ arch/x86/include/asm/processor.h | 12 ++++++------ arch/x86/kernel/traps.c | 5 ++--- arch/x86/mm/mpx.c | 19 +++++++++---------- kernel/sys.c | 8 ++++---- 5 files changed, 25 insertions(+), 29 deletions(-) commit a84eeaa96b36a03188e1423349669c108d3a4bd7 Author: Dave Hansen Date: Sun Jun 7 11:37:01 2015 -0700 x86/mpx: Use the new get_xsave_field_ptr()API The MPX registers (bndcsr/bndcfgu/bndstatus) are not directly accessible via normal instructions. They essentially act as if they were floating point registers and are saved/restored along with those registers. There are two main paths in the MPX code where we care about the contents of these registers: 1. #BR (bounds) faults 2. the prctl() code where we are setting MPX up Both of those paths _might_ be called without the FPU having been used. That means that 'tsk->thread.fpu.state' might never be allocated. Also, fpu_save_init() is not preempt-safe. It was a bug to call it without disabling preemption. The new get_xsave_addr() calls unlazy_fpu() instead and properly disables preemption. Signed-off-by: Dave Hansen Reviewed-by: Thomas Gleixner Cc: Andrew Morton Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Rik van Riel Cc: Suresh Siddha Cc: bp@alien8.de Link: http://lkml.kernel.org/r/20150607183701.BC0D37CF@viggo.jf.intel.com Signed-off-by: Ingo Molnar arch/x86/include/asm/mpx.h | 8 ++++---- arch/x86/kernel/traps.c | 17 ++++++++--------- arch/x86/mm/mpx.c | 30 +++++++++++++++--------------- 3 files changed, 27 insertions(+), 28 deletions(-) commit 04cd027bcba1ead7bfe39e7f1c6f4d993c4c3323 Author: Dave Hansen Date: Sun Jun 7 11:37:00 2015 -0700 x86/fpu/xstate: Wrap get_xsave_addr() to make it safer The MPX code appears is calling a low-level FPU function (copy_fpregs_to_fpstate()). This function is not able to be called in all contexts, although it is safe to call directly in some cases. Although probably correct, the current code is ugly and potentially error-prone. So, add a wrapper that calls the (slightly) higher-level fpu__save() (which is preempt- safe) and also ensures that we even *have* an FPU context (in the case that this was called when in lazy FPU mode). Ingo had this to say about the details about when we need preemption disabled: > it's indeed generally unsafe to access/copy FPU registers with preemption enabled, > for two reasons: > > - on older systems that use FSAVE the instruction destroys FPU register > contents, which has to be handled carefully > > - even on newer systems if we copy to FPU registers (which this code doesn't) > then we don't want a context switch to occur in the middle of it, because a > context switch will write to the fpstate, potentially overwriting our new data > with old FPU state. > > But it's safe to access FPU registers with preemption enabled in a couple of > special cases: > > - potentially destructively saving FPU registers: the signal handling code does > this in copy_fpstate_to_sigframe(), because it can rely on the signal restore > side to restore the original FPU state. > > - reading FPU registers on modern systems: we don't do this anywhere at the > moment, mostly to keep symmetry with older systems where FSAVE is > destructive. > > - initializing FPU registers on modern systems: fpu__clear() does this. Here > it's safe because we don't copy from the fpstate. > > - directly writing FPU registers from user-space memory (!). We do this in > fpu__restore_sig(), and it's safe because neither context switches nor > irq-handler FPU use can corrupt the source context of the copy (which is > user-space memory). > > Note that the MPX code's current use of copy_fpregs_to_fpstate() was safe I think, > because: > > - MPX is predicated on eagerfpu, so the destructive F[N]SAVE instruction won't be > used. > > - the code was only reading FPU registers, and was doing it only in places that > guaranteed that an FPU state was already active (i.e. didn't do it in > kthreads) Signed-off-by: Dave Hansen Reviewed-by: Thomas Gleixner Cc: Andrew Morton Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Rik van Riel Cc: Suresh Siddha Cc: bp@alien8.de Link: http://lkml.kernel.org/r/20150607183700.AA881696@viggo.jf.intel.com Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/xstate.h | 1 + arch/x86/kernel/fpu/xstate.c | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) commit 0c4109bec0a6cde471bef3a21cd6f8384a614469 Author: Dave Hansen Date: Sun Jun 7 11:37:00 2015 -0700 x86/fpu/xstate: Fix up bad get_xsave_addr() assumptions get_xsave_addr() assumes that if an xsave bit is present in the hardware (pcntxt_mask) that it is present in a given xsave buffer. Due to an bug in the xsave code on all of the systems that have MPX (and thus all the users of this code), that has been a true assumption. But, the bug is getting fixed, so our assumption is not going to hold any more. It's quite possible (and normal) for an enabled state to be present on 'pcntxt_mask', but *not* in 'xstate_bv'. We need to consult 'xstate_bv'. Signed-off-by: Dave Hansen Reviewed-by: Thomas Gleixner Cc: Andrew Morton Cc: Dave Hansen Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20150607183700.1E739B34@viggo.jf.intel.com Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/xstate.c | 45 ++++++++++++++++++++++++++++++++++++-------- 1 file changed, 37 insertions(+), 8 deletions(-) commit 2377c3c388815cd0a33309a6b6bb713600258a3e Author: Lu, Han Date: Tue Jun 9 16:50:38 2015 +0800 ALSA: hda: Intel: enable automatic runtime pm for HDMI codecs by default Enable runtime PM of the HDMI audio codec on the latest Intel platforms. So the HD-A controller or HDMI codec can suspend when idle timeout by default and release the GFX power well. The patch influences HSW/BDW/BYT/BSW/SKL. Eariler platforms and third party analog codecs will not be influenced. Signed-off-by: Lu, Han Signed-off-by: Takashi Iwai sound/pci/hda/hda_codec.c | 3 +++ sound/pci/hda/hda_codec.h | 1 + sound/pci/hda/patch_hdmi.c | 4 ++++ 3 files changed, 8 insertions(+) commit 9b47feb708e50e6114b4b4193eee67f2e5af9d05 Author: Denys Vlasenko Date: Mon Jun 8 22:35:33 2015 +0200 x86/asm/entry: Clean up entry*.S style, final bits A few bits were missed. Signed-off-by: Denys Vlasenko Cc: Andrew Morton Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/entry/entry_32.S | 18 +++++++++--------- arch/x86/entry/entry_64_compat.S | 14 +++++++------- 2 files changed, 16 insertions(+), 16 deletions(-) commit 867146a0d242bb9aecc267aa33e0804501550368 Author: Loic Poulain Date: Tue Jun 9 11:46:30 2015 +0200 Bluetooth: Don't call shutdown when leaving user channel Don't interfere with the user channel exclusive access. Signed-off-by: Loic Poulain Signed-off-by: Marcel Holtmann net/bluetooth/hci_core.c | 1 + 1 file changed, 1 insertion(+) commit 028c63b56795206464263fa3bc47094704c2a840 Merge: a3d8654 d3a7c48 Author: Ingo Molnar Date: Tue Jun 9 11:46:04 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 perf.data size reporting in 'perf record' in no-buildid mode (He Kuang) Infrastructure changes: - Protect accesses the DSO rbtrees/lists with a rw lock and reference count struct dso instances (Arnaldo Carvalho de Melo) - Export dynamic symbols used by traceevent plugins (He Kuang) - Add libtrace-dynamic-list file to libtraceevent's .gitignore (He Kuang) - Refactor shadow stats code in 'perf stat', prep work for further patchkits (Jiri Olsa) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit e5719b661a978f7d23042c140979351951f970bb Author: Stefan Schmidt Date: Tue Jun 9 10:52:26 2015 +0200 ieee802154/mrf24j40: make sure we do not override return values If we run into an error during rx we set the the error code in ret, but override it afterwards. Using a different variable for the extra case avoids this situation. CID: 1226982, 1226983 Signed-off-by: Stefan Schmidt Cc: Alan Ott Signed-off-by: Marcel Holtmann drivers/net/ieee802154/mrf24j40.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 9a4d3d4ba17c93def2b4dc3126eba30716d15469 Author: Stefan Schmidt Date: Mon Jun 8 22:06:40 2015 +0200 mac802154/iface: remove superfluous WARN_ON call in slave_open() This call was used before we aligned our code with the wireless code base. We are wanted to handle this in the err: code path. Which would actually not work because the WARN_ON() macro would reset the res value to 0 and thus we would never hit err:. Removing it makes the code do what we actually intend. Signed-off-by: Stefan Schmidt Signed-off-by: Marcel Holtmann net/mac802154/iface.c | 1 - 1 file changed, 1 deletion(-) commit e66890a96abbb746e1229c3067471be36dc49b34 Author: Marcel Holtmann Date: Sun Jun 7 09:47:08 2015 +0200 Bluetooth: btusb: Fix secure send command length alignment on Intel 8260 This patch fixes the command length alignment issue for Intel Bluetooth 8260. The length of parameters in the firmware downloading command must be multiplication of 4. If not, the command must append Intel_NOP command with extra parameters, zeros, at the end, and the firmware file is already included Intel_NOP command for alignment. This patch checks the next command and if the next command is Intel_NOP command, it reads the Intel_NOP command and send them together. For example, if the data from the firmware file looks like this: 8E FC 03 11 22 33 02 FC 03 00 00 00 Previously, btusb sends two commands: 09 FC 06 8E FC 03 11 22 33 09 FC 06 02 FC 03 00 00 00 This won't work because the length of parameters are 6 which violates the 4 byte alignment. This patch will append them together and send as one command: 09 FC 0C 8E FC 03 11 22 33 02 FC 03 00 00 00 Based on previous work from Tedd Ho-Jeong An Reported-by: Tedd Ho-Jeong An Signed-off-by: Marcel Holtmann Tested-by: Tedd Ho-Jeong An Signed-off-by: Johan Hedberg Cc: stable@vger.kernel.org drivers/bluetooth/btusb.c | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) commit dd895d7f21b244e7fd4c7477697e274de7e44ecb Author: Oliver Hartkopp Date: Tue Jun 9 08:05:10 2015 +0200 can: cangw: introduce optional uid to reference created routing jobs Similar to referencing iptables rules by their line number this UID allows to reference created routing jobs, e.g. to alter configured data modifications. The UID is an optional non-zero value which can be provided at routing job creation time. When the UID is set the UID replaces the data modification configuration as job identification attribute e.g. at job removal time. Signed-off-by: Oliver Hartkopp Signed-off-by: Marc Kleine-Budde include/uapi/linux/can/gw.h | 5 ++++ net/can/gw.c | 68 +++++++++++++++++++++++++++++++++++++-------- 2 files changed, 61 insertions(+), 12 deletions(-) commit 3d5db5e1310981ce7da570f7e686f3ff22c58b4b Author: Tomas Krcka Date: Sat May 30 11:42:57 2015 +0200 can: mcp251x: use correct register address for acceptance filters This patch corrects addresses of acceptance filters. These registers are not in use, but values should be correct. Tested with MCP2515 and am3352 and also checked datasheets for MCP2515 and MCP2510. Signed-off-by: Tomas Krcka Signed-off-by: Marc Kleine-Budde drivers/net/can/spi/mcp251x.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 8b76ce34c43a569f981623485c1b6c700594678e Author: Johan Hedberg Date: Mon Jun 8 18:14:39 2015 +0300 Bluetooth: Fix encryption key size handling for LTKs The encryption key size for LTKs is supposed to be applied only at the moment of encryption. When generating a Link Key (using LE SC) from the LTK the full non-shortened value should be used. This patch modifies the code to always keep the full value around and only apply the key size when passing the value to HCI. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann include/net/bluetooth/hci_core.h | 2 +- net/bluetooth/hci_conn.c | 4 ++-- net/bluetooth/hci_event.c | 3 ++- net/bluetooth/smp.c | 15 +++------------ 4 files changed, 8 insertions(+), 16 deletions(-) commit 6827ca83695d5e41ad31b0719788ee65f00ca4b3 Author: Joerg Roedel Date: Thu May 28 18:41:35 2015 +0200 iommu: Add function to query the default domain of a group This will be used to handle unity mappings in the iommu drivers. Signed-off-by: Joerg Roedel drivers/iommu/iommu.c | 5 +++++ include/linux/iommu.h | 1 + 2 files changed, 6 insertions(+) commit beed2821b4f42c268222c4c1f1795e53340acf64 Author: Joerg Roedel Date: Thu May 28 18:41:34 2015 +0200 iommu: Create direct mappings in default domains Use the information exported by the IOMMU drivers to create direct mapped regions in the default domains. Signed-off-by: Joerg Roedel drivers/iommu/iommu.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) commit a1015c2b99b94cf521603b41debf167114031456 Author: Joerg Roedel Date: Thu May 28 18:41:33 2015 +0200 iommu: Introduce direct mapped region handling Add two new functions to the IOMMU-API to allow the IOMMU drivers to export the requirements for direct mapped regions per device. This is useful for exporting the information in Intel VT-d's RMRR entries or AMD-Vi's unity mappings. Signed-off-by: Joerg Roedel drivers/iommu/iommu.c | 16 ++++++++++++++++ include/linux/iommu.h | 31 +++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+) commit 2c1296d92ac0367364bcb73a43c12a0bdfbfee75 Author: Joerg Roedel Date: Thu May 28 18:41:32 2015 +0200 iommu: Add iommu_get_domain_for_dev function This function can be used to request the current domain a device is attached to. Signed-off-by: Joerg Roedel drivers/iommu/iommu.c | 18 ++++++++++++++++++ include/linux/iommu.h | 6 ++++++ 2 files changed, 24 insertions(+) commit e39cb8a3aa988a74433a3f26443b454cca033651 Author: Joerg Roedel Date: Thu May 28 18:41:31 2015 +0200 iommu: Make sure a device is always attached to a domain Make use of the default domain and re-attach a device to it when it is detached from another domain. Also enforce that a device has to be in the default domain before it can be attached to a different domain. Signed-off-by: Joerg Roedel drivers/iommu/iommu.c | 84 ++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 76 insertions(+), 8 deletions(-) commit 426a273834eae65abcfc7132a21a85b3151e0bce Author: Joerg Roedel Date: Thu May 28 18:41:30 2015 +0200 iommu: Limit iommu_attach/detach_device to devices with their own group This patch changes the behavior of the iommu_attach_device and iommu_detach_device functions. With this change these functions only work on devices that have their own group. For all other devices the iommu_group_attach/detach functions must be used. Signed-off-by: Joerg Roedel drivers/iommu/iommu.c | 71 ++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 67 insertions(+), 4 deletions(-) commit 53723dc59ff3ab504c739000b287ded49aeb2019 Author: Joerg Roedel Date: Thu May 28 18:41:29 2015 +0200 iommu: Allocate a default domain for iommu groups The default domain will be used (if supported by the iommu driver) when the devices in the iommu group are not attached to any other domain. Signed-off-by: Joerg Roedel drivers/iommu/iommu.c | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) commit 331573febb6a224bc50322e3670da326cb7f4cfc Author: Namjae Jeon Date: Tue Jun 9 01:55:03 2015 -0400 ext4: Add support FALLOC_FL_INSERT_RANGE for fallocate This patch implements fallocate's FALLOC_FL_INSERT_RANGE for Ext4. 1) Make sure that both offset and len are block size aligned. 2) Update the i_size of inode by len bytes. 3) Compute the file's logical block number against offset. If the computed block number is not the starting block of the extent, split the extent such that the block number is the starting block of the extent. 4) Shift all the extents which are lying between [offset, last allocated extent] towards right by len bytes. This step will make a hole of len bytes at offset. Signed-off-by: Namjae Jeon Signed-off-by: Ashish Sangwan fs/ext4/ext4.h | 6 + fs/ext4/extents.c | 313 ++++++++++++++++++++++++++++++++++++-------- include/trace/events/ext4.h | 25 ++++ 3 files changed, 292 insertions(+), 52 deletions(-) commit 8654844cf51d434dad5d4d9f48dc99d1ac89aad7 Merge: 01ec65c 132bd96 Author: Takashi Iwai Date: Tue Jun 9 07:22:26 2015 +0200 Merge branch 'for-linus' into for-next Resolve the non-trivial conflict due to the hdac regmap API changes. Signed-off-by: Takashi Iwai commit 5163fb62541e38fea400f96dcef9aa539fd00b48 Author: Tang Yuantian Date: Thu Jun 4 15:10:04 2015 +0800 ahci: added support for Freescale AHCI sata Freescale introduced QorIQ series SOCs, like ls1021 ls2085, with AHCI sata support. It complies with the serial ATA 3.0 specification and the AHCI 1.3 specification. Signed-off-by: Shaohui Xie Signed-off-by: Yuantian Tang Signed-off-by: Tejun Heo Documentation/devicetree/bindings/ata/ahci-platform.txt | 2 ++ drivers/ata/ahci_platform.c | 1 + 2 files changed, 3 insertions(+) commit 941742f49762ba4c908510f036b09a46c1b14513 Merge: ac7ba51 5879ae5 Author: David S. Miller Date: Mon Jun 8 20:06:56 2015 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net commit bd5c97bc1ae77e8f2ec93a2dbe6d4080ae04a4c5 Author: Alex Deucher Date: Fri Jun 5 14:34:19 2015 -0400 drm/amdgpu: set the gfx config properly for all CZ variants (v2) Need to adjust the number of CUs and RBs. v2: get proper values Reviewed-by: Christian König Reviewed-by: Samuel Li Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 38 +++++++++++++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-) commit 3e39ab90833b20eb7fbc4e472726000274739538 Author: Alex Deucher Date: Fri Jun 5 15:04:33 2015 -0400 drm/amdgpu: also print the pci revision when printing the pci ids The driver makes use of this information so print if to aid in debugging. Reviewed-by: Christian König Reviewed-by: Samuel Li Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 34b5f6a6d6d0e482c7ce498f60bce261e533821e Author: Christian König Date: Mon Jun 8 15:03:00 2015 +0200 drm/amdgpu: cleanup VA IOCTL Remove the unnecessary returned status and make the IOCTL write only. Signed-off-by: Christian König Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 64 +++++++++++---------------------- include/uapi/drm/amdgpu_drm.h | 18 ++-------- 2 files changed, 23 insertions(+), 59 deletions(-) commit 6c7fc503a47f9b87dfd7c76e34f808ab6870a82f Author: Christian König Date: Fri Jun 5 20:56:17 2015 +0200 drm/amdgpu: fix saddr handling in amdgpu_vm_bo_unmap Signed-off-by: Christian König Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 2 ++ 1 file changed, 2 insertions(+) commit 7e9fca0baa3b3400ccb2b2a8a17822f7b04ea282 Author: Christian König Date: Fri Jun 5 10:06:04 2015 +0200 drm/amdgpu: fix amdgpu_vm_bo_map We need to reset the bo_va address, otherwise new mappings wouldn't be updated in the page table. Signed-off-by: Christian König Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 2 ++ 1 file changed, 2 insertions(+) commit 7b9f1830745cb3ad9e0f3774e83900610cedd39c Author: Charlie Mooney Date: Mon Jun 8 16:48:23 2015 -0700 Input: elan_i2c - add product IDs FW names Previously the elan_i2c touchpad driver would simply request the firmware "/lib/firmware/elan_i2c.bin", which does not work well if there are multiple such devices in the system. Let's append the "product ID" (by using the same function as the sysfs interface for consistency) to the filename. This results in filenames of the form "/lib/firmware/elan_i2c_72.0.bin", allowing you to support multiple elan_i2c touchpads on the same device by simply naming each device's FW with its corresponding product ID. This way when you trigger a fw update the driver will load the correct binary. Signed-off-by: Charlie Mooney Signed-off-by: Dmitry Torokhov drivers/input/mouse/elan_i2c.h | 3 ++- drivers/input/mouse/elan_i2c_core.c | 22 ++++++++++++++++------ 2 files changed, 18 insertions(+), 7 deletions(-) commit 12018ac3d679d6a3c6c738ac805797fe4dd43912 Author: Duson Lin Date: Mon Jun 8 16:39:35 2015 -0700 Input: elan_i2c - add support for multi IC type and iap format In order to support multiple IC types for i2c/smbus protocol, add get ic type command and use this data when checking firmware page count and signature address. Signed-off-by: Duson Lin Signed-off-by: Dmitry Torokhov drivers/input/mouse/elan_i2c.h | 5 ++-- drivers/input/mouse/elan_i2c_core.c | 45 ++++++++++++++++++++++++++++++++---- drivers/input/mouse/elan_i2c_i2c.c | 4 +++- drivers/input/mouse/elan_i2c_smbus.c | 6 +++-- 4 files changed, 49 insertions(+), 11 deletions(-) commit 9e58095f9660f88d6a2febe87d5073a6b2e9c399 Author: Samuel Ortiz Date: Tue Oct 14 02:19:46 2014 +0200 NFC: netlink: Implement vendor command support Vendor commands are passed from userspace through the NFC_CMD_VENDOR netlink command, allowing driver and hardware specific operations implementations like for example RF tuning or production line calibration. Drivers will associate a set of vendor commands to a vendor id, which could typically be an OUI. The netlink kernel implementation will try to match the received vendor id and sub command attributes with the registered ones. When such match is found, the driver defined sub command routine is called. Signed-off-by: Samuel Ortiz include/uapi/linux/nfc.h | 10 +++++++++ net/nfc/netlink.c | 55 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+) commit 8115dd5905318afcde713726064ec052b7d488cf Author: Samuel Ortiz Date: Tue Oct 14 01:42:23 2014 +0200 NFC: Introduce vendor commands structures Together with inline routines to associate a vendor commands array with an NFC device. Vendor commands allow vendors to implement their very specific operations from driver code instead of adding new stack ops for non NFC generic commands. Vendors need to select their own unique IDs and use that as a namespace for defining sub commands. Signed-off-by: Samuel Ortiz include/net/nfc/hci.h | 7 +++++++ include/net/nfc/nci_core.h | 7 +++++++ include/net/nfc/nfc.h | 22 ++++++++++++++++++++++ 3 files changed, 36 insertions(+) commit f8785d94fc4e93cacbdb930ec3654fc035a375ec Merge: 8d13be5 0d03943 Author: Jonathan Corbet Date: Mon Jun 8 17:04:11 2015 -0600 Merge branch 'doc/4.2' into docs-next commit 8d13be53384866cc30cb09cb32afca04f902f523 Merge: d4a4f75 669f6f9 Author: Jonathan Corbet Date: Mon Jun 8 17:02:20 2015 -0600 Merge branch 'core/documentation' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into docs-next A week late but I managed to complete it all and moved it into Git, for better structure and easy pulling. Changes relative to the last submission: - Added higher level subsystem directories to collect features by subsystem: triton:~/tip> ls Documentation/features/ arch-support.txt core debug io lib list-arch.sh locking perf sched seccomp time vm each subsystem directory contains the feature directories. For example locking has: triton:~/tip> ls Documentation/features/locking/ cmpxchg-local lockdep queued-rwlocks queued-spinlocks rwsem-optimized It's all pretty straightforward to navigate. Advantages are better visualization, plus git log is able to list changes per subsystem. - Prettified the visualization some more. - Improved/corrected the support matrices based on feedback to earlier submissions. - Updated the support matrices to today's linux-next, so that by the time this shows up in upstream in the next merge window it's really recent. Most notably there's a new architecture in linux-next (h8300). This structure should address all feedback that I got and should minimize the maintenance overhead (chance of conflicts). commit 0d03943c0b50ad47ec6bb157a5d02d6ba9da477e Author: Thomas de Beauchene Date: Sun Jun 7 16:30:23 2015 +0200 Documentation: filesystems: updated struct file_operations documentation in vfs.txt Updated struct file_operations documentation in vfs.txt to match current implementation Signed-off-by: Thomas de Beauchene Signed-off-by: Jonathan Corbet Documentation/filesystems/vfs.txt | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) commit ac7ba51c215db5739eb640f2f26025ced8668285 Author: Dan Murphy Date: Mon Jun 8 14:30:55 2015 -0500 net: phy: dp83867: Fix device tree entries Fix the device tree entries to modify the '_' to '-'. Also changes the names of the internal delay properties from -int- to -internal- as the -int- appeared as a keyword. Signed-off-by: Dan Murphy Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller Documentation/devicetree/bindings/net/ti,dp83867.txt | 18 ++++++++++++------ drivers/net/phy/dp83867.c | 6 +++--- 2 files changed, 15 insertions(+), 9 deletions(-) commit 684b4ac14f4306c877834a8daaf0f0665128eae4 Author: Nicholas Mc Guire Date: Mon Jun 8 21:16:28 2015 +0200 atm: use msecs_to_jiffies for conversions API compliance scanning with coccinelle flagged: ./drivers/atm/iphase.c:2621:4-20: WARNING: timeout (50) seems HZ dependent Numeric constants passed to schedule_timeout() make the effective timeout HZ dependent which does not seem intended. Fixed up by converting the constant to jiffies with msecs_to_jiffies() As this driver was introduced in the early 2.3 series it is most likely assuming HZ=100 so the constant 50 is converted to 500ms. Signed-off-by: Nicholas Mc Guire Signed-off-by: David S. Miller drivers/atm/iphase.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bd55daf48dc9a7583031c6c0c6930d7f836f56af Author: Jeffrey Rogers Date: Sat Jun 6 17:18:45 2015 -0400 kbuild: edit explanation of clean-files variable Commit 976591810f8a (kbuild Update documentation of clean-files and clean-dirs) changed the example for the clean-files variable, but left the explanation unchanged. Edit the explanation to match the example. Signed-off-by: Jeffrey Rogers Signed-off-by: Jonathan Corbet Documentation/kbuild/makefiles.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit fc10639dfdc2603e8776ebbf6b20ff8b03340ed3 Author: Masanari Iida Date: Sat Jun 6 23:43:21 2015 +0900 Doc: ja_JP: Fix typo in HOWTO This patch fix a spelling typo in ja_JP/HOWTO. Signed-off-by: Masanari Iida Signed-off-by: Jonathan Corbet Documentation/ja_JP/HOWTO | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b3fd7368f8f60bc9a7ffc2a5311db5f4dbd42180 Author: Pali Rohár Date: Sat Jun 6 15:42:28 2015 +0200 Move freefall program from Documentation/ to tools/ Signed-off-by: Pali Rohár Acked-by: Pavel Machek Signed-off-by: Jonathan Corbet Documentation/laptops/.gitignore | 1 - Documentation/laptops/00-INDEX | 2 - Documentation/laptops/Makefile | 2 +- Documentation/laptops/freefall.c | 174 --------------------------------------- tools/Makefile | 14 +++- tools/laptop/freefall/Makefile | 17 ++++ tools/laptop/freefall/freefall.c | 174 +++++++++++++++++++++++++++++++++++++++ 7 files changed, 204 insertions(+), 180 deletions(-) commit a28ab162bdf04d0e5d814478340ba32999233e7e Author: Krzysztof Kozlowski Date: Sat Jun 6 19:05:51 2015 +0900 Documentation: ARM: EXYNOS: Describe boot loaders interface Various boot loaders for Exynos based boards use certain memory addresses during booting for different purposes. Mostly this is one of following : 1. as a CPU boot address, 2. for storing magic cookie related to low power mode (AFTR, sleep). The document, based solely on kernel source code, tries to group the information scattered over different files. This would help in the future when adding support for new SoC or when extending features related to low power modes. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Jonathan Corbet Documentation/arm/Samsung/Bootloader-interface.txt | 53 ++++++++++++++++++++++ 1 file changed, 53 insertions(+) commit 41fc2f50a7a2bfef1deaf78107a4d7b5bf4bd7a5 Author: Christophe Ricard Date: Sat Jun 6 13:16:52 2015 +0200 NFC: st21nfcb: Configure CLF with NCI proprietary command In order to prevent any NFC feature when NFC is disable and to save power, (down to 4uA) put the CLF in hibernate mode with RF deactivated. Add the equivalent to enable the NFC feature when initiating the st21nfcb driver. Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz drivers/nfc/st21nfcb/ndlc.c | 12 +++++++++++- drivers/nfc/st21nfcb/st21nfcb.c | 12 ++++++++++++ drivers/nfc/st21nfcb/st21nfcb.h | 6 ++++++ 3 files changed, 29 insertions(+), 1 deletion(-) commit 05f0939f76659260763d31890cb962e8d6060038 Author: Christophe Ricard Date: Sat Jun 6 13:16:51 2015 +0200 NFC: st21nfcb: disable irq when st21nfcb is disabled When st21nfcb is disabled, the irq line may remain active while no data are available, flooding the system with irrelevant i2c transaction. Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz drivers/nfc/st21nfcb/i2c.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 183fe2d06dba2f45ae47360cdb911f95551917ed Author: Christophe Ricard Date: Sat Jun 6 13:16:50 2015 +0200 NFC: st21nfcb: Move powered flag from phy to ndlc layer The powered flag can be set from the ndlc_open and ndlc_close layer. Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz drivers/nfc/st21nfcb/i2c.c | 6 +----- drivers/nfc/st21nfcb/ndlc.c | 3 +++ drivers/nfc/st21nfcb/ndlc.h | 1 + 3 files changed, 5 insertions(+), 5 deletions(-) commit e8b72c205e5e02b6574be1e83c0c8c99335f8288 Author: Christophe Ricard Date: Sat Jun 6 13:16:49 2015 +0200 NFC: st21nfcb: Move st21nfcb_nci_remove in ndlc_remove Removing st21nfcb may need to execute some specific commands before stopping the ndlc state machine. Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz drivers/nfc/st21nfcb/ndlc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 0e70cba71f8b61e0a0c7df526f5cee2d842ee93c Author: Christophe Ricard Date: Sat Jun 6 13:16:48 2015 +0200 NFC: nci: Move close ops call in nci_close_device When closing the device some data (proprietary commands) might be sent. The core state machine needs to be set for correct command execution. Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz net/nfc/nci/core.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit dbd70b4046c8cdb7c8f5ffea9bdcae1a35e24df4 Author: Christophe Ricard Date: Sat Jun 6 13:16:47 2015 +0200 NFC: st21nfcb: Add support for nci proprietary commands On st21nfcb, nci proprietary commands are available to run specific chip operations (for example: power management) Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz drivers/nfc/st21nfcb/st21nfcb.c | 21 +++++++++++++++++++++ drivers/nfc/st21nfcb/st21nfcb.h | 6 ++++++ 2 files changed, 27 insertions(+) commit cc1417eb24f154ed7a7cd8aa7018b80fa120b732 Author: Christophe Ricard Date: Sat Jun 6 13:16:46 2015 +0200 NFC: st21nfcb: Fix st21nfcb_nci_close When closing st21nfcb driver, flag ST21NFCB_NCI_RUNNING can be cleared only once the ndlc and the transport (i2c or spi) layers are released. Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz drivers/nfc/st21nfcb/st21nfcb.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 6628b09f03dfbe2d3d234f1c6e5dff8752182be0 Author: Christophe Ricard Date: Sat Jun 6 13:16:45 2015 +0200 NFC: st21nfcb: Add ndlc_close in st21nfcb_nci_remove In order to release the st21nfcb properly close the ndlc layer first. Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz drivers/nfc/st21nfcb/st21nfcb.c | 4 ++++ 1 file changed, 4 insertions(+) commit 4ac82e894825126816d7b7f662743335ce2b015e Author: Christophe Ricard Date: Sat Jun 6 13:16:44 2015 +0200 NFC: st21nfcb: remove st21nfcb_nci_i2c_disable ndlc_remove already calls st21nfcb_nci_i2c_disable and phy->powered is already set to 0. Cc: stable@vger.kernel.org Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz drivers/nfc/st21nfcb/i2c.c | 3 --- 1 file changed, 3 deletions(-) commit 09f39a950523b1bb830c30a8670b77e0067da092 Author: Christophe Ricard Date: Sat Jun 6 13:16:43 2015 +0200 NFC: st21nfcb: Do not remove header once the payload is sent Once the data is sent, we need to preserve the full frame for the ndlc state machine. If the NDLC ACK is not received in time, the ndlc layer will resend the same frame. Having the header byte pulled will corrupt the frame. Cc: stable@vger.kernel.org Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz drivers/nfc/st21nfcb/i2c.c | 7 ------- 1 file changed, 7 deletions(-) commit 38bd83f04c5e9695011dc5c294e0c4e6a9f9052d Author: Firo Yang Date: Sat Jun 6 13:16:42 2015 +0200 NFC: st21nfcb: Remove inappropriate kfree on a devm_kzalloc pointer Since ndev->driver_data is allocated by devm_kzalloc(), we do not need the inappropriate kfree to free it in driver's remove function. Freeing will trigger when driver unloads. Cc: stable@vger.kernel.org Acked-by: Christophe Ricard Signed-off-by: Firo Yang Signed-off-by: Samuel Ortiz drivers/nfc/st21nfcb/st21nfcb.c | 3 --- 1 file changed, 3 deletions(-) commit 759afb8d288ffbe9a1cdb20af037b5c072dc38b2 Author: Christophe Ricard Date: Sat Jun 6 13:16:41 2015 +0200 NFC: nci: Add nci_prop_cmd allowing to send proprietary nci cmd Handle allowing to send proprietary nci commands anywhere in the nci state machine. Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz include/net/nfc/nci_core.h | 2 ++ net/nfc/nci/core.c | 26 ++++++++++++++++++++++++++ 2 files changed, 28 insertions(+) commit c39daeee50eb0b95d3b91bda21b77955a459ee5f Author: Christophe Ricard Date: Sat Jun 6 13:16:40 2015 +0200 NFC: nci: Add nci init ops for early device initialization Some device may need to execute some proprietary commands in order to "wake-up"; Before the nci state initialization. Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz include/net/nfc/nci_core.h | 1 + net/nfc/nci/core.c | 9 +++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) commit 81859ab8779567af491fbf83ea628cdf09188d90 Author: Christophe Ricard Date: Sat Jun 6 13:16:39 2015 +0200 NFC: nci: Add NCI_RESET return code check before setup setup was executed in any case, even if NCI_RESET failed. Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz net/nfc/nci/core.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit b6355e972aaab0173ce11a1650e7dba67f820918 Author: Samuel Ortiz Date: Sat Jun 6 13:16:37 2015 +0200 NFC: nci: Handle proprietary response and notifications Allow for drivers to explicitly define handlers for each proprietary notifications and responses they expect to support. Reviewed-by: Christophe Ricard Signed-off-by: Samuel Ortiz include/net/nfc/nci_core.h | 14 +++++++++++++ net/nfc/nci/core.c | 52 ++++++++++++++++++++++++++++++++++++++++++++++ net/nfc/nci/ntf.c | 10 +++++++++ net/nfc/nci/rsp.c | 10 +++++++++ 4 files changed, 86 insertions(+) commit 2622e2a03cd7320f57a4f5171c242dccdab035dd Author: Joe Perches Date: Sun May 31 17:44:45 2015 -0700 NFC: nci: hci: Fix releasing uninitialized skbs Several of these goto exit; uses should be direct returns as skb is not yet initialized by nci_hci_get_param(). Miscellanea: o Use !memcmp instead of memcmp() == 0 o Remove unnecessary goto from if () {... goto exit;} else {...} exit: Signed-off-by: Joe Perches Signed-off-by: Samuel Ortiz net/nfc/nci/hci.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) commit 8a2151c587715e84af676ee6c210fd41b912de76 Author: Uwe Kleine-König Date: Tue May 19 09:22:56 2015 +0200 NFC: pn544: use flags argument of devm_gpiod_get to set direction Since 39b2bbe3d715 (gpio: add flags argument to gpiod_get*() functions) which appeared in v3.17-rc1, the gpiod_get* functions take an additional parameter that allows to specify direction and initial value for output. Use this to simplify the driver. Furthermore this is one caller less that stops us making the flags argument to gpiod_get*() mandatory. While touching this also do some minor coding style fixes. Signed-off-by: Uwe Kleine-König Reviewed-by: Linus Walleij Signed-off-by: Samuel Ortiz drivers/nfc/pn544/i2c.c | 43 +++++++++++-------------------------------- 1 file changed, 11 insertions(+), 32 deletions(-) commit 0cd6f66739ac8a936d4660d45ecb99eb801709a4 Author: Tomas Winkler Date: Thu May 7 16:38:30 2015 +0300 NFC: microread: drop unused variable In microread_i2c_irq_thread_fn 'client' set but not used Cc: Lauro Ramos Venancio Cc: Aloisio Almeida Jr Signed-off-by: Tomas Winkler Signed-off-by: Samuel Ortiz drivers/nfc/microread/i2c.c | 3 --- 1 file changed, 3 deletions(-) commit 71fa6fba4abfe26299c7ca8179aa7b744f047a7d Author: Valentin Rothberg Date: Tue Apr 28 11:08:47 2015 +0200 NFC: Remove obsolete setting of DEBUG CONFIG_DYNAMIC_DEBUG is the right toggle to enable pr_debug(). Signed-off-by: Valentin Rothberg Signed-off-by: Samuel Ortiz drivers/nfc/Makefile | 2 -- drivers/nfc/nxp-nci/Makefile | 2 -- 2 files changed, 4 deletions(-) commit bace7117d3fb59a6ed7ea1aa6c8994df6a28a72a Author: Ingo Molnar Date: Mon Jun 8 21:20:26 2015 +0200 x86/asm/entry: (Re-)rename __NR_entry_INT80_compat_max to __NR_syscall_compat_max Brian Gerst noticed that I did a weird rename in the following commit: b2502b418e63 ("x86/asm/entry: Untangle 'system_call' into two entry points: entry_SYSCALL_64 and entry_INT80_32") which renamed __NR_ia32_syscall_max to __NR_entry_INT80_compat_max. Now the original name was a misnomer, but the new one is a misnomer as well, as all the 32-bit compat syscall entry points (sysenter, syscall) share the system call table, not just the INT80 based one. Rename it to __NR_syscall_compat_max. Reported-by: Brian Gerst Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar arch/x86/entry/syscall_32.c | 6 +++--- arch/x86/kernel/asm-offsets_64.c | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) commit eb47854415825a69b1c578e7487da571227ba25a Author: Denys Vlasenko Date: Sun Jun 7 20:24:30 2015 +0200 x86/asm/entry/32: Reinstate clearing of pt_regs->r8..r11 on EFAULT path I broke this recently when I changed pt_regs->r8..r11 clearing logic in INT 80 code path. There is a branch from SYSENTER/SYSCALL code to INT 80 code: if we fail to retrieve arg6, we return EFAULT. Before this patch, in this case we don't clear pt_regs->r8..r11. This patch fixes this. The resulting code is smaller and simpler. While at it, remove incorrect comment about syscall dispatching CALL insn: it does not use RIP-relative addressing form (the comment was meant to be "TODO: make this rip-relative", and morphed since then, dropping "TODO"). Signed-off-by: Denys Vlasenko Cc: Alexei Starovoitov Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Frederic Weisbecker Cc: H. Peter Anvin Cc: Kees Cook Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Thomas Gleixner Cc: Will Drewry Link: http://lkml.kernel.org/r/1433701470-28800-1-git-send-email-dvlasenk@redhat.com Signed-off-by: Ingo Molnar arch/x86/entry/entry_64_compat.S | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit b0a252ed983b8e6339e01749029749adbaa890de Author: Hauke Mehrtens Date: Sat Jun 6 21:53:04 2015 +0200 USB: ssb: use devm_kzalloc Instead of manually handling the frees use devm. There was also a free missing in the unregister call which is not needed with devm. Signed-off-by: Hauke Mehrtens Signed-off-by: Greg Kroah-Hartman drivers/usb/host/ssb-hcd.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) commit 87997195e341f2ca175e793460a66f5170f76921 Author: Hauke Mehrtens Date: Sat Jun 6 21:53:03 2015 +0200 USB: ssb: fix error handling in ssb_hcd_create_pdev() This patch makes bcma_hcd_create_pdev() not return NULL, but a prober error code in case of an error. Signed-off-by: Hauke Mehrtens Signed-off-by: Greg Kroah-Hartman drivers/usb/host/ssb-hcd.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e3e64f3f99d9e70973fb1ae7d02825fe2bb9eef2 Author: Colin Ian King Date: Tue Jun 2 19:05:13 2015 +0100 usb: isp1760: check for null return from kzalloc isp1760_ep_alloc_request allocates a structure with kzalloc without checking for NULL and then returns a pointer to one of the structure fields. As the field happens to be the first in the structure the caller can properly check for NULL, but this is risky if the structure layout is changed later. Add an explicit NULL check for the kzalloc return value Detected with smatch static analysis: drivers/usb/isp1760/isp1760-udc.c:816 isp1760_ep_alloc_request() error: potential null dereference 'req'. (kzalloc returns null) [ thanks to Laurent Pinchart for improved commit message ] Signed-off-by: Colin Ian King Acked-by: Laurent Pinchart Signed-off-by: Greg Kroah-Hartman drivers/usb/isp1760/isp1760-udc.c | 2 ++ 1 file changed, 2 insertions(+) commit bbf5f037fad47e4affef6696aaf88a40b261e639 Author: Linus Walleij Date: Tue May 19 15:37:18 2015 +0200 iio: st_accel: support the LIS331DL sensor This adds support for the LIS331DL sensor version. This is a simple 8bit-only accelerometer. Signed-off-by: Linus Walleij Acked-by: Denis Ciocca Signed-off-by: Jonathan Cameron .../devicetree/bindings/iio/st-sensors.txt | 1 + drivers/iio/accel/st_accel.h | 1 + drivers/iio/accel/st_accel_core.c | 70 ++++++++++++++++++++++ drivers/iio/accel/st_accel_i2c.c | 4 ++ 4 files changed, 76 insertions(+) commit ab714817d7e891608d31f6996b1e4c43cf2bf342 Author: Mark A. Greer Date: Fri Apr 24 10:37:22 2015 -0700 NFC: trf7970a: Handle extra byte in response to Type 5 RMB commands The current versions of the trf7970a has an erratum where it returns an extra byte in the response to 'Read Multiple Block' (RMB) commands. This command is issued to Type 5 tags (i.e., ISO/IEC 15693 tags) by the neard daemon. To handle this, define a new Device Tree property, 't5t-rmb-extra-byte-quirk', which indicates that the associated trf7970a device has this erratum. The trf7970a device driver will then ensure that the response length to RMB commands is reduced by one byte (for devices with the erratum). Signed-off-by: Mark A. Greer Signed-off-by: Samuel Ortiz .../devicetree/bindings/net/nfc/trf7970a.txt | 4 ++++ drivers/nfc/trf7970a.c | 23 ++++++++++++++++++---- 2 files changed, 23 insertions(+), 4 deletions(-) commit d96097e03f5155115542d42580b1439cafdb6088 Author: Masanari Iida Date: Fri Jun 5 21:38:19 2015 +0900 NFC: Fix typo in nfc-hci.txt This patch fix a spelling typo in nfc-hci.txt Signed-off-by: Masanari Iida Signed-off-by: Samuel Ortiz Documentation/nfc/nfc-hci.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 262e7198bc0e77614f5e9301e0804462741a29fc Author: Samuel Ortiz Date: Thu May 28 17:10:03 2015 +0200 NFC: nxp-nci: Fix build warning When GPIO is not enabled we hit this kind of warning: drivers/nfc/nxp-nci/i2c.c: In function 'nxp_nci_i2c_acpi_config': drivers/nfc/nxp-nci/i2c.c:320:2: error: implicit declaration of function 'devm_gpiod_get_index' [-Werror=implicit-function-declaration] gpiod_en = devm_gpiod_get_index(&client->dev, NULL, 2); This is fixed by explicitely including gpio/consumer.h. Signed-off-by: Samuel Ortiz drivers/nfc/nxp-nci/i2c.c | 1 + 1 file changed, 1 insertion(+) commit 551e306905ef2075b3ad03390ef3e19bd1739598 Author: Oleg Zhurakivskyy Date: Mon May 25 13:55:13 2015 +0300 NFC: nxp-nci_i2c: Add support for enumerating through ACPI Signed-off-by: Oleg Zhurakivskyy Signed-off-by: Samuel Ortiz drivers/nfc/nxp-nci/i2c.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) commit 15bf722e6f6c0b884521a0363204532e849deb7f Author: Alexey Sokolov Date: Tue Jun 2 11:49:30 2015 +0300 cdc-acm: Add support of ATOL FPrint fiscal printers ATOL FPrint fiscal printers require usb_clear_halt to be executed to work properly. Add quirk to fix the issue. Signed-off-by: Alexey Sokolov Cc: stable Signed-off-by: Greg Kroah-Hartman drivers/usb/class/cdc-acm.c | 9 +++++++++ drivers/usb/class/cdc-acm.h | 1 + 2 files changed, 10 insertions(+) commit fc368ea1ea00c9418d6f2c25cd4c0869f1a16d5f Author: Paul Gortmaker Date: Wed Jun 3 20:03:56 2015 -0400 drivers/hwtracing: fix coresight-etm4x implicit usage In commit 2e1cdfe184b5202d51e0611d7a051e2bea303946 ("coresight-etm4x: Adding CoreSight ETM4x driver") this driver was added. It uses module_amba_driver() to register itself with the system, which is just an alias for module_driver. This currently works by relying on getting that via init.h but we are planning to move that code[1] to module.h -- at which time this will fail to compile since it does not include module.h currently, resulting in: drivers/hwtracing/coresight/coresight-etm4x.c:2701:1: note: in expansion of macro ‘module_amba_driver’ module_amba_driver(etm4x_driver); ^ include/linux/device.h:1296:1: error: type defaults to ‘int’ in declaration of ‘module_init’ [-Werror=implicit-int] module_init(__driver##_init); \ ^ In the future, the amba support may want to create another alias that uses builtin_driver[2] for cases like this which are using bool Kconfig triggers, but for now we just fix the implicit include. [1] https://lkml.kernel.org/r/1433276168-21550-1-git-send-email-paul.gortmaker@windriver.com [2] https://lkml.kernel.org/r/1431287385-1526-1-git-send-email-paul.gortmaker@windriver.com Cc: Pratik Patel Cc: Kaixu Xia Signed-off-by: Paul Gortmaker Acked-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman drivers/hwtracing/coresight/coresight-etm4x.c | 1 + 1 file changed, 1 insertion(+) commit 5a6a7cd05c039f3c4d8f5f52fddfb7cb2bbd6119 Author: Paul Gortmaker Date: Wed Jun 3 16:52:57 2015 -0400 drivers/hwtracing: fix coresight-replicator-qcom implicit usage In commit 620cf787c121f39b5223e43bad3d1b7c66ecead5 ("coresight: replicator: Add Qualcomm CoreSight Replicator driver") this driver was added. It uses module_amba_driver(replicator_driver) to register itself with the system -- which is just an alias for module_driver. This currently works by relying on getting that via init.h but we are planning to move that code[1] to module.h -- at which time this will fail to compile since it does not include module.h currently, resulting in: drivers/hwtracing/coresight/coresight-replicator-qcom.c:214:1: error: type defaults to 'int' in declaration of 'module_init' [-Werror=implicit-int] drivers/hwtracing/coresight/coresight-replicator-qcom.c:214:1: error: type defaults to 'int' in declaration of 'module_exit' [-Werror=implicit-int] In the future, the amba support may want to create another alias that uses builtin_driver[2] for cases like this which are using bool Kconfig triggers, but for now we just fix the implicit include. [1] https://lkml.kernel.org/r/1433276168-21550-1-git-send-email-paul.gortmaker@windriver.com [2] https://lkml.kernel.org/r/1431287385-1526-1-git-send-email-paul.gortmaker@windriver.com Cc: Pratik Patel Cc: Ivan T. Ivanov Signed-off-by: Paul Gortmaker Acked-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman drivers/hwtracing/coresight/coresight-replicator-qcom.c | 1 + 1 file changed, 1 insertion(+) commit bfee7c9665931fd391981fe360666793ad7267bf Author: Markus Böhme Date: Sat Jun 6 15:52:32 2015 +0200 staging: rtl8188eu: core/rtw_led.c: fix coding style issue Convert spaces at the start of a line to a tab. Signed-off-by: Markus Böhme Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/core/rtw_led.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1208097416fb382b8fcdb8bf9e63954c36cdb62b Author: Dan Carpenter Date: Fri Jun 5 12:24:06 2015 +0300 staging: rtl8192e: fix some confusing indenting The indenting here causes a static checker warning: drivers/staging/rtl8192e/rtllib_rx.c:626 RxReorderIndicatePacket() warn: curly braces intended? The code is actually correct, it's just that these lines were pushed in an extra indent level by mistake in 35e33b0468ab ('staging: rtl8192e: Fix LONG_LINE warnings'). Signed-off-by: Dan Carpenter Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtllib_rx.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 9c2ce8275d62e9a78f17aa226c77e2e2a115c6bf Author: Mateusz Kulikowski Date: Tue Jun 2 22:48:15 2015 +0200 staging: rtl8192e: Remove dead code: mp_adapter mp_adapter structure was used in past, but now is only initialized and never read. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_core.h | 2 -- drivers/staging/rtl8192e/rtl8192e/rtl_pci.c | 4 +--- drivers/staging/rtl8192e/rtl8192e/rtl_pci.h | 17 ----------------- 3 files changed, 1 insertion(+), 22 deletions(-) commit d8ca20fe8315ec88e0cd21023ef8d6ffbec2e10a Author: Mateusz Kulikowski Date: Tue Jun 2 22:48:14 2015 +0200 staging: rtl8192e: Remove dead code: r8192_priv members Remove unused members of rtl8192_priv structure. Some of them are never used, other are just initialized and never accessed. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 11 -- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 32 ---- drivers/staging/rtl8192e/rtl8192e/rtl_core.h | 206 +------------------------ 3 files changed, 1 insertion(+), 248 deletions(-) commit b2b94bc9e9a4090b95707648c1fac6313bf0f4af Author: Mateusz Kulikowski Date: Tue Jun 2 22:48:12 2015 +0200 staging: rtl8192e: Remove dead code: rt_stats Remove unused fields from rt_stats structure. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_core.h | 40 ---------------------------- 1 file changed, 40 deletions(-) commit c4262bdf246c2fdcd3b13a4f9ff68f2dd6f13e60 Author: Mateusz Kulikowski Date: Tue Jun 2 22:48:13 2015 +0200 staging: rtl8192e: Remove dead code: undefined arrays Remove undefined and unused PHY array forward-declarations. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_phy.h | 6 ------ 1 file changed, 6 deletions(-) commit 4f1c29687abc618d8c6b1e49fabbfbf07940f648 Author: Mateusz Kulikowski Date: Tue Jun 2 22:48:10 2015 +0200 staging: rtl8192e: Remove dead code: rtl_dm.[ch] - Remove unused fields in dig_t structures. Some of them were only initialized and never accessed. - Remove unused enums/macros/defines in rtl_dm.h - Remove duplicated function declarations - Remove unused dm_change_dynamic_initgain_thresh() function - Remove unused dm_shadow_init() function Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 80 ------------------------------ drivers/staging/rtl8192e/rtl8192e/rtl_dm.h | 70 -------------------------- 2 files changed, 150 deletions(-) commit b81b6d2843b319608413de01284de8186a364eb9 Author: Mateusz Kulikowski Date: Tue Jun 2 22:48:09 2015 +0200 staging: rtl8192e: Remove unused macros/structures in rtl_core.h - Removed unused macros/enums/structures - Remove unused fields in r8192_priv Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_core.h | 154 --------------------------- 1 file changed, 154 deletions(-) commit e6d948a57dcb854e80b47e1f7cc9b09041f8a6c2 Author: Mateusz Kulikowski Date: Tue Jun 2 22:48:08 2015 +0200 staging: rtl8192e: Remove dead code: read/write_cam Both functions are never used. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_cam.c | 12 ------------ drivers/staging/rtl8192e/rtl8192e/rtl_cam.h | 4 ---- 2 files changed, 16 deletions(-) commit 0ac3bb4ef489487027a5e87253d9e342f734c440 Author: Mateusz Kulikowski Date: Tue Jun 2 22:48:07 2015 +0200 staging: rtl8192e: Remove dead code: cmpk_message_handle_rx() Remove cmpk_message_handle_rx() and static functions used by it. This function was never called. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c | 272 ---------------------- drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.h | 134 ----------- 2 files changed, 406 deletions(-) commit e8fdea21e167f2f7ddc8c42b967a261f55482626 Author: Mateusz Kulikowski Date: Tue Jun 2 22:48:06 2015 +0200 staging: rtl8192e: Remove dead code: cmpk_handle_query_config_rx() Remove cmpk_handle_query_config_rx function. It is called once, does some calculation, but generates no output - it has neither return value, nor modify its parameters. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c | 18 ------------------ 1 file changed, 18 deletions(-) commit 669adbe6c9cb5414412fc2d0a6a4e3d844fa071f Author: Mateusz Kulikowski Date: Tue Jun 2 22:48:05 2015 +0200 staging: rtl8192e: Remove dead code Delete unused code. Removed some macros, enums, unions and several structures (tx_fwinfo, wmm_tspec, qos_tstream, sta_qos, bss_qos). Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8190P_def.h | 40 ----- .../staging/rtl8192e/rtl8192e/r8192E_firmware.h | 5 - drivers/staging/rtl8192e/rtl8192e/r8192E_hwimg.h | 6 - drivers/staging/rtl8192e/rtl8192e/rtl_cam.h | 1 - drivers/staging/rtl8192e/rtl8192e/rtl_wx.h | 4 - drivers/staging/rtl8192e/rtl819x_Qos.h | 194 --------------------- 6 files changed, 250 deletions(-) commit c1ab2fa969aed60851264bcb904326db99bfd3fd Author: Pedro Marzo Perez Date: Wed Jun 3 01:28:39 2015 +0200 Staging: rtl8192u: Remove two useless lines at ieee80211_wep_null Remove two lines at ieee80211_wep_null which checkpatch.pl reported as errors. The first one because it has a C99 comment style and the second one because it is a void return which is useless. The function ieee80211_wep_null cannot be completely removed because it is exported and used to autoload the module. Signed-off-by: Pedro Marzo Perez Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_wep.c | 2 -- 1 file changed, 2 deletions(-) commit 251ae75c69c427149ab0f70b12a436144edd81b1 Author: Pedro Marzo Perez Date: Wed Jun 3 01:28:38 2015 +0200 Staging: rtl8192u: Simplify error check code at prism2_wep_init Simplify prism2_wep_init error check code employing goto when a failure is detected. Removed pr_debug which was given a checkpatch.pl error because of literal string splitted across two lines of code, it was seldom going to be printed anyway. Signed-off-by: Pedro Marzo Perez Signed-off-by: Greg Kroah-Hartman .../rtl8192u/ieee80211/ieee80211_crypt_wep.c | 32 ++++++---------------- 1 file changed, 9 insertions(+), 23 deletions(-) commit bf95628e61c373f2e614b507718fa90b7490fbdb Author: Gaston Gonzalez Date: Tue Jun 2 15:06:18 2015 -0300 staging: rtl8192u: ieee80211: Fix sparse endianness warnings Fix the following sparse warnings: drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:663:32: warning: incorrect type in assignment (different base types) drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:663:32: expected restricted __le16 [usertype] frame_ctl drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:663:32: got int drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:664:50: warning: invalid assignment: |= drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:664:50: left side has type restricted __le16 drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:664:50: right side has type int Signed-off-by: Gaston Gonzalez Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 2bd239d70e69425b858bba10e45d41f5a9a16b2b Author: Tolga Ceylan Date: Tue Jun 2 09:08:35 2015 -0700 staging: rtl8192u/ieee80211/ieee80211_softmac.c: auth parse error code byte order fix auth_parse() return result is in incorrect le16 byte order. Currently this still works since the user code merely checks if error code is equal to 0. However debug statement in ieee80211_check_auth_response() prints the error code in the incorrect le16 byte order. This fix corrects the byte order as cpu order. Signed-off-by: Tolga Ceylan Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ba470f7c0e9f4a71a915a48392e69f56ce7edbf9 Author: Dan Carpenter Date: Tue Jun 2 15:20:25 2015 +0300 staging: ozwpan: prevent a couple of underflows The underflow in OZ_DATA_F_ISOC_FIXED seems not harmful, but this patch is a clean up and makes my static checker a bit happier. The underflow in OZ_VENDOR_CLASS_RSP seems like it could result in memory corruption. Signed-off-by: Dan Carpenter Signed-off-by: Greg Kroah-Hartman drivers/staging/ozwpan/ozusbsvc1.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit c938699ebb92918afe66776bb6d69277aea86507 Author: Buţiu Alexandru Octavian Date: Mon Jun 1 16:05:07 2015 +0300 staging: rtl8192u: r819xU_firmware.h: fix line over 80 characters Fixed coding style issue line "over 80 characters" detected by checkpatch.pl in r819xU_firmware.h Signed-off-by: Buţiu Alexandru Octavian Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192u/r819xU_firmware.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit f57d0b6bafbd0406825772d2e04fabd738a89d9d Author: Buţiu Alexandru Octavian Date: Mon Jun 1 16:05:06 2015 +0300 staging: drivers: rtl8192u: r819xU_firmware.h: removed commented macro Removed commented macro that was no longer needed Signed-off-by: Buţiu Alexandru Octavian Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192u/r819xU_firmware.h | 8 -------- 1 file changed, 8 deletions(-) commit ed701c4ab2b9719851a97e841907fec283d6a2bb Author: Hari Prasath Gujulan Elango Date: Mon Jun 1 12:43:01 2015 +0000 staging: rtl8188eu: use table to get channel plan from country code Use a table to get a channel plan from a given country code.This was a TODO mentioned as a comment in the driver. Signed-off-by: Hari Prasath Gujulan Elango Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/core/rtw_ioctl_set.c | 19 ++++++++----------- drivers/staging/rtl8188eu/include/rtw_mlme_ext.h | 8 ++++++++ 2 files changed, 16 insertions(+), 11 deletions(-) commit 6ed977428a7e46f860f3e7a2d878dc8dd023202b Author: Yijing Wang Date: Fri Jun 5 14:04:59 2015 +0800 staging: rts5208: Use common pci_get_bus_and_slot() instead of private one We already have a inline pci_get_bus_and_slot() in include/linux/pci.h, Use it instead of local one. Signed-off-by: Yijing Wang Signed-off-by: Greg Kroah-Hartman drivers/staging/rts5208/rtsx.h | 3 --- 1 file changed, 3 deletions(-) commit 05871f994e326fb3d95b34575b311c832ba4ccea Author: Prasanna Karthik Date: Thu Jun 4 04:48:51 2015 +0000 staging:rtl8712:Fix compressed return statement Fix reported by coccinelle compressing last two lines with single return call Signed-off-by: Prasanna Karthik Acked-by: Larry Finger Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8712/rtl871x_sta_mgt.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 4abce83dca116e2d0b49e1601bff2983e6cf0491 Author: David Kershner Date: Thu Jun 4 09:22:49 2015 -0400 staging: unisys: Add the bus device to the visor device list. When the bus device was created the list_all variables were not being initialized. When the CONTROLVM_BUS_CONFIGURE message was being sent, it was failing to find the bus and produced a panic. Initialize the bus_info->list_all variable by doing a INIT_LIST_HEAD. Signed-off-by: David Kershner Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorchipset.c | 1 + 1 file changed, 1 insertion(+) commit 04dacacc14b4d60d58725c14f066a052cee6ff02 Author: Don Zickus Date: Thu Jun 4 09:22:48 2015 -0400 staging: unisys: Fix clean up path When unloading a module, we need to cleanup the platform registration. However, unregistering the platform uncovered a couple of quirks, namely a missing device_release function. Fix things up so module unload works and allows us to reload the module. Signed-off-by: Don Zickus Signed-off-by: David Kershner Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorbus_main.c | 2 +- drivers/staging/unisys/visorbus/visorchipset.c | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) commit 75439a17d4e82f630a86b4ca07a6d38ca6fbaa21 Author: Don Zickus Date: Thu Jun 4 09:22:47 2015 -0400 staging: unisys: Fix double sysfs create for module version When we combined visorchipset and visorbus into one driver we negelected to strip out some of the MODULE_ stuff from one of the files. When building the drivers in, it causes a WARN that we try to create /proc/modules/visorbus/version when it is already created. visorchipset.c is the driver entry point, remove the cruft from visorbus_main.c. Signed-off-by: Don Zickus Signed-off-by: David Kershner Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorbus_main.c | 5 ----- 1 file changed, 5 deletions(-) commit c81e15a4b5622fa6f856435d424344828f6b3654 Author: David Kershner Date: Thu Jun 4 09:22:46 2015 -0400 staging: unisys: Clean up diag_serverity enum Get rid of unused values in the enum. Signed-off-by: David Kershner Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/include/diagchannel.h | 32 +++++++++++----------------- 1 file changed, 12 insertions(+), 20 deletions(-) commit ee872fde4bbab069bb44b0b3c23bd2eddea8bbb6 Author: David Kershner Date: Thu Jun 4 09:22:45 2015 -0400 staging: unisys: Remove unneeded fields in diagchannel.h Diagchannel.h is used primarily for the diagnostics channel. The diagnostics channel is not being used by linux guests currently, so the majority of the file is not needed. What is left is what is needed to perform postcode vmcalls. Those postcodes will eventually end up in the diag channel. Signed-off-by: David Kershner Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/include/diagchannel.h | 366 +------------------------ drivers/staging/unisys/visorbus/visorchipset.c | 45 --- 2 files changed, 2 insertions(+), 409 deletions(-) commit 01ef15f722c65bb747118eee09a5ffa85df934a7 Author: David Kershner Date: Thu Jun 4 09:22:44 2015 -0400 staging: unisys: Update diag serverity enum Give the enum the correct values instead of based on other values. Signed-off-by: David Kershner Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/include/diagchannel.h | 34 ++++++++-------------------- 1 file changed, 10 insertions(+), 24 deletions(-) commit 4239f82294398982d31505b89df9664da81671af Author: Jes Sorensen Date: Thu Jun 4 09:22:43 2015 -0400 staging: unisys: Removed unused entries from struct visor_channeltype_descriptor min_size/max_size aren't used anywhere, and they were just causing headaches in the drivers being ported over to the new interfaces. Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/include/visorbus.h | 2 -- 1 file changed, 2 deletions(-) commit a298bc0b59132a9536739c22d77c6662ee17ffc3 Author: Don Zickus Date: Thu Jun 4 09:22:42 2015 -0400 staging: unisys: Convert device creation to use visor_device This patch removes the legacy dev_info struct and instead creates and passes around a traditional struct device. This allows us to remove a lot of the various look up code and removes the doubt if the struct exists or not. Half of the churn is just the conversion of visorchipset_device_info to visor_device. Various cleanups include re-arranging the failure paths to make more sense. Pay attention to the create_visor_device function. This had a lot of churn to simplify everything. Lots of functions disappeared because they are not needed any more. Signed-off-by: Don Zickus Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/include/visorbus.h | 8 +- drivers/staging/unisys/visorbus/visorbus_main.c | 146 +++++-------------- drivers/staging/unisys/visorbus/visorbus_private.h | 49 ++----- drivers/staging/unisys/visorbus/visorchipset.c | 157 +++++---------------- 4 files changed, 80 insertions(+), 280 deletions(-) commit d32517e392b90354f79f6c7a357f96c37b5fe4fd Author: Don Zickus Date: Thu Jun 4 09:22:41 2015 -0400 staging: unisys: Convert bus creation to use visor_device This patch removes the legacy bus_info struct and instead creates and passes around a traditional struct device. This allows us to remove a lot of the various look up code and removes the doubt if the struct exists or not. Half of the churn is just the conversion of visorchipset_bus_info to visor_device. Various cleanups include re-arranging the failure paths to make more sense. Signed-off-by: Don Zickus Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/include/visorbus.h | 3 + drivers/staging/unisys/visorbus/visorbus_main.c | 131 ++++++++------------- drivers/staging/unisys/visorbus/visorbus_private.h | 34 +----- drivers/staging/unisys/visorbus/visorchipset.c | 95 ++++----------- 4 files changed, 77 insertions(+), 186 deletions(-) commit 65bd6e4607a19eafbf0d23ce184b6cefc19e317d Author: Don Zickus Date: Thu Jun 4 09:22:40 2015 -0400 staging: unisys: Do not use 0 as the default bus root device number I used 0 as the device id for the bus root, neglecting the fact that device 0 is a valid id in Unisys's configuration. Modify this to use UINT_MAX instead as a unique number. As fallout from this change it was noticed the bus_no and dev_no was not defined the same way consistently. Fix visorbus.h to use u32 there. Fix the resulting printk warning too. Signed-off-by: Don Zickus Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/include/visorbus.h | 4 ++-- drivers/staging/unisys/visorbus/visorbus_main.c | 2 +- drivers/staging/unisys/visorbus/visorchipset.c | 6 ++++-- 3 files changed, 7 insertions(+), 5 deletions(-) commit ee983d902ecea8d1d524f3f2505b89a315555abe Author: Don Zickus Date: Thu Jun 4 09:22:39 2015 -0400 staging: unisys: Remove server flags The bus driver doesn't work in server mode, just remove the left over pieces. Signed-off-by: Don Zickus Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorbus_main.c | 66 +++------------------- drivers/staging/unisys/visorbus/visorbus_private.h | 5 -- drivers/staging/unisys/visorbus/visorchipset.c | 2 - 3 files changed, 7 insertions(+), 66 deletions(-) commit 52c4cbd3fdba4debfb771ecb2282fcba0eff120b Author: Don Zickus Date: Thu Jun 4 09:22:38 2015 -0400 staging: unisys: Remove unused cruft Removing stuff that isn't being used. Another prepartion patch to allow us to use visor_device everywhere without the baggage of bus/dev_info. Signed-off-by: Don Zickus Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorbus_main.c | 71 ---------------------- drivers/staging/unisys/visorbus/visorbus_private.h | 13 ---- 2 files changed, 84 deletions(-) commit 343506bf0ac102eef76129f453add81c3974ad0d Author: Don Zickus Date: Thu Jun 4 09:22:37 2015 -0400 staging: unisys: Migrate bus from devdata to visor_device The bus device and regular device were using two different structs. Let's combine them as they are not entirely different from one another. This allows us to move this creation up the stack later and actually remove bus/dev_info easily. Most of the churn is just renaming devdata -> dev and 'struct visorbus_devdata' to 'struct visor_device'. Signed-off-by: Don Zickus Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorbus_main.c | 127 +++++++++++------------- 1 file changed, 57 insertions(+), 70 deletions(-) commit 9c708f94610b69161591f4eabc0aebcaa037f69b Author: Chaitanya Dhere Date: Tue Jun 2 06:22:26 2015 +0000 staging: rtl8192u: Fix indentation issue This change was detected with help of checkpatch.pl script. Signed-off-by: Chaitanya Dhere Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a4f649bdab2827c28db913b33bfc64bb82d147f6 Author: Chaitanya Dhere Date: Tue Jun 2 06:20:55 2015 +0000 staging: rtl8192u: Patch to modify if, else conditions In this patch, the if, else conditions are modified to remove the unnecessary equality checks. This change was detected with help of coccinelle tool. Signed-off-by: Chaitanya Dhere Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit cfa6954ced97004242057b48b0e30113a02c19c4 Author: Douglas Barbonaglia Sathler Figueiredo Date: Mon Jun 1 10:37:11 2015 -0300 staging: wlan-ng: fix long line Style (line over 80 chars) in drivers/staging/wlan-ng/prism2fw.c Signed-off-by: Douglas Barbonaglia Sathler Figueiredo Signed-off-by: Greg Kroah-Hartman drivers/staging/wlan-ng/prism2fw.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit f51cd2b7d16dc89ec812721b43d07e5fc7734ea4 Author: Madhusudhanan Ravindran Date: Mon Jun 1 12:37:48 2015 +0000 staging: emxx_udc: remove commented code removed the commented INFO lines. Signed-off-by: Madhusudhanan Ravindran Signed-off-by: Greg Kroah-Hartman drivers/staging/emxx_udc/emxx_udc.c | 26 -------------------------- 1 file changed, 26 deletions(-) commit 7eea766ad712bdeb20e15dde826672dfe12677bf Author: Hari Prasath Gujulan Elango Date: Mon Jun 1 09:55:23 2015 +0000 staging: rtl8712: fix indentation issue Fixed indentation issue in few lines Signed-off-by: Hari Prasath Gujulan Elango Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8712/recv_linux.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 3b83fb7589cb295908524cb33a53c67d996cd09f Author: Hari Prasath Gujulan Elango Date: Mon Jun 1 09:48:49 2015 +0000 staging: rtl8188eu: remove unwanted assignment remove an unwanted assignment to a variable which is overwritten in the very next line.The first value assigned is not used. Signed-off-by: Hari Prasath Gujulan Elango Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/hal/usb_halinit.c | 1 - 1 file changed, 1 deletion(-) commit 0aae092b5e6162c53d49f2e0cc1822ef8a1c771e Author: Hari Prasath Gujulan Elango Date: Mon Jun 1 13:06:54 2015 +0000 staging: dgnc: remove ununsed Macro Remove the ununsed Macro Signed-off-by: Hari Prasath Gujulan Elango Signed-off-by: Greg Kroah-Hartman drivers/staging/dgnc/dgnc_driver.h | 1 - 1 file changed, 1 deletion(-) commit da295041a811adc2d7d809f4b0901f241b8f16ea Author: Isaac Assegai Date: Tue Jun 2 03:14:30 2015 -0700 Staging: sm750fb: ddk750_display.c: Insert spaces after commas. Insert Spaces after commas to rectify the following checkpatch errors in ddk750_display.c: ERROR: space required after that ',' Signed-off-by: Isaac Assegai Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/ddk750_display.c | 44 ++++++++++++++++---------------- 1 file changed, 22 insertions(+), 22 deletions(-) commit 195d2b643bebc9f96d2bbe9e9b092ed4f30505fe Author: Isaac Assegai Date: Tue Jun 2 03:14:29 2015 -0700 Staging: sm750fb: Insert spaces after commas in two files. Insert Spaces after commas to rectify the following checkpatch errors in ddk750_help.c and ddk750_mode.c: ERROR: space required after that ',' Signed-off-by: Isaac Assegai Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/ddk750_help.c | 2 +- drivers/staging/sm750fb/ddk750_mode.c | 54 +++++++++++++++++------------------ 2 files changed, 28 insertions(+), 28 deletions(-) commit f31b55ac2ad8227ac005be29e5e81b743e1ec3b7 Author: Isaac Assegai Date: Tue Jun 2 03:14:28 2015 -0700 Staging: sm750fb: Insert spaces after commas in two files. Insert Spaces after commas to rectify the following checkpatch errors in ddk750_power.c and ddk750_swi2c.c: ERROR: space required after that ',' Signed-off-by: Isaac Assegai : Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/ddk750_power.c | 4 ++-- drivers/staging/sm750fb/ddk750_swi2c.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit c97b2c15363055a171419fe66c1b00d6f5d42b16 Author: Isaac Assegai Date: Tue Jun 2 03:14:26 2015 -0700 Staging: sm750fb: sm750_cursor.c: Insert spaces after commas. Insert Spaces after commas to rectify the following checkpatch errors in sm750_cursor.c: ERROR: space required after that ',' Signed-off-by: Isaac Assegai Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/sm750_cursor.c | 40 +++++++++++++++++----------------- 1 file changed, 20 insertions(+), 20 deletions(-) commit b5d63974bb04d352b316108b2ec5118de3ecae12 Author: Isaac Assegai Date: Tue Jun 2 03:14:27 2015 -0700 Staging: sm750fb: sm750_accel.c: Insert spaces after commas. Insert Spaces after commas to rectify the following checkpatch errors in sm750_accel.c: ERROR: space required after that ',' Signed-off-by: Isaac Assegai Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/sm750_accel.c | 164 +++++++++++++++++----------------- 1 file changed, 82 insertions(+), 82 deletions(-) commit bdec77735e30ee106307cb5e85004c73cb707382 Author: Isaac Assegai Date: Tue Jun 2 03:14:25 2015 -0700 Staging: sm750fb: sm750_hw.c: Insert spaces after commas. Insert Spaces after commas to rectify the following checkpatch errors in sm750_hw.c: ERROR: space required after that ',' Signed-off-by: Isaac Assegai Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/sm750_hw.c | 64 +++++++++++++++++++------------------- 1 file changed, 32 insertions(+), 32 deletions(-) commit 555a6b1e2483c256eb33d458d6d4146ef11ce3bc Author: Isaac Assegai Date: Tue Jun 2 03:14:24 2015 -0700 Staging: sm750fb: Inserted spaces after commas in three files. Insert Spaces after commas to rectify the following checkpatch errors in ddk750_hwi2c.h, ddk750_help.h and ddk750_chip.h: ERROR: space required after that ',' Signed-off-by: Isaac Assegai Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/ddk750_chip.h | 6 +++--- drivers/staging/sm750fb/ddk750_help.h | 4 ++-- drivers/staging/sm750fb/ddk750_hwi2c.h | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) commit 5e9358138820b171e0094709cde3ea9ac6ff1679 Author: Isaac Assegai Date: Tue Jun 2 03:14:23 2015 -0700 Staging: sm750fb: Inserted spaces after commas in four files. Insert Spaces after commas to rectify the following checkpatch errors in sm750_cursor.h, sm750_accel.h, ddk750_power.h and ddk750_mode.h: ERROR: space required after that ',' Signed-off-by: Isaac Assegai Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/ddk750_mode.h | 2 +- drivers/staging/sm750fb/ddk750_power.h | 2 +- drivers/staging/sm750fb/sm750_accel.h | 8 ++++---- drivers/staging/sm750fb/sm750_cursor.h | 10 +++++----- 4 files changed, 11 insertions(+), 11 deletions(-) commit e8b976da30d9eaaa2da80a0097127a8f57d6f1bd Author: Isaac Assegai Date: Tue Jun 2 03:14:22 2015 -0700 Staging: sm750fb: sm750.h: Insert spaces after commas. Insert Spaces after commas to rectify the following checkpatch errors in sm750.h: ERROR: space required after that ',' Signed-off-by: Isaac Assegai Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/sm750.h | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) commit afa34e7e749347598847a929fdfe5f40c6735725 Author: Isaac Assegai Date: Tue Jun 2 03:14:21 2015 -0700 Staging: sm750fb: sm750_help.h: Insert spaces after commas. Insert Spaces after commas to rectify the following checkpatch errors in sm750_help.h: ERROR: space required after that ',' Signed-off-by: Isaac Assegai Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/sm750_help.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit e9f490ea0c2b8e20588bb1700cbcd4a575de9c49 Author: Isaac Assegai Date: Tue Jun 2 03:14:20 2015 -0700 Staging: sm750fb: sm750_hw.h: Insert spaces after commas. Insert Spaces after commas in sm750_hw.h to rectify the following checkpatch errors in sm750_hw.h: ERROR: space required after that ',' Signed-off-by: Isaac Assegai Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/sm750_hw.h | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit 2dc340910b199f83864ca01bf3f0fa1249088982 Author: Hari Prasath Gujulan Elango Date: Mon Jun 1 09:31:39 2015 +0000 staging: sm750fb: Add missing Kconfig dependency The sm750fb driver has few Framebuffer configuration dependencies that need to be selected in order to get compiled successfully Signed-off-by: Hari Prasath Gujulan Elango Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/Kconfig | 4 ++++ 1 file changed, 4 insertions(+) commit 02632342d4831dc3d197a45f83de291e2d3980cc Author: David Decotigny Date: Sun Jun 7 17:43:02 2015 -0700 staging: rtl8723au: core: remove redundant endianness conversion Source and destination have the same little-endian annotation: this patch removes incorrect byte-swap on non-LE cpus. This addresses the following sparse warning: drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3911:56: warning: incorrect type in argument 1 (different base types) drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3911:56: expected unsigned short [unsigned] [usertype] val drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3911:56: got restricted __le16 [usertype] BA_timeout_value Signed-off-by: David Decotigny Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8723au/core/rtw_mlme_ext.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit af17b56d1f42bd761709ec68a00ce4f1a089e597 Author: David Decotigny Date: Sun Jun 7 17:43:01 2015 -0700 staging: rtl8723au: core: avoid bitwise arithmetic with forced endianness This fixes bitwise arithmetic performed on the host on a variable previously converted to little-endian, and subsequently converted again to little-endian: - issue_action_BA23a() called with "status" crafted in host byte order - "status" converted to LE - bitwise arithmetic on the (LE) "status", performed with masks and shifts in host byte order - result converted to LE (again) and stored in device structure Sparse warning addressed by this patch: drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3806:16: warning: incorrect type in assignment (different base types) drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3806:16: expected unsigned short [unsigned] status drivers/staging/rtl8723au/core/rtw_mlme_ext.c:3806:16: got restricted __le16 [usertype] Additional notes: initial cpu_to_le16 was introduced by kernel bulk commit 5e93f3520 "staging: r8723au: Add source files for new driver - part 1", initially from github according to commit description. On github, this traces back to another bulk commit: 2896bda04353 "Add new files in core directory", which is the 1st version of the driver. Signed-off-by: David Decotigny Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8723au/core/rtw_mlme_ext.c | 2 -- 1 file changed, 2 deletions(-) commit e6ffd1ba55a4931c429448cc69db5e7152921c85 Author: Sudip Mukherjee Date: Thu Jun 4 19:04:52 2015 +0530 staging: fbtft: fix out of bound access str was 16 bytes but was mentioned as 128 in snprintf. again msg is 128 bytes but not sufficient to hold the complete debug message of register values. Now removed the use of str, msg and print the register values from the loop. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/fbtft/fbtft-core.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) commit b38c760ab0e1d7e051f13e31771514b5809de222 Author: Madhusudhanan Ravindran Date: Mon Jun 1 12:34:56 2015 +0000 staging: fbtft: replace fbtft_dev_dbg with standard dev_dbg call This patch attempts to simplify the debugging using standard dev_dbg call so that individual debug prints can be enabled or disbled by dynamic debugging rather than using module params. Signed-off-by: Madhusudhanan Ravindran Signed-off-by: Greg Kroah-Hartman drivers/staging/fbtft/fb_agm1264k-fl.c | 6 +++--- drivers/staging/fbtft/fbtft-core.c | 15 +++++++-------- drivers/staging/fbtft/fbtft.h | 5 ----- 3 files changed, 10 insertions(+), 16 deletions(-) commit e1f9ae3bcaf270fb306702e4182d9beccf7fb001 Author: Abhishek Sharma Date: Mon Jun 1 06:06:53 2015 +0000 Staging: comedi: adv_pci1724: Remove redundant return statements Replace unnecessary conditional checks for variable 'ret' and replace by single return statement. Signed-off-by: Abhishek Sharma Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adv_pci1724.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit 51bb618bff1e77c891f68405c3f8f3a492fecc17 Author: Joglekar Tejas Date: Mon Jun 1 09:44:51 2015 +0530 Staging: comedi: ni_at_a2150: remove extra spaces before tab This patch fix warning given by checkpatch.pl abouts spaces given before tab Signed-off-by: Joglekar Tejas Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_at_a2150.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 71e8dd9a2f8dc9fc14fe9b20515709cc33f4a255 Author: Antonio Murdaca Date: Mon Jun 8 21:48:41 2015 +0200 staging: lustre: cleanup not needed else clauses cleanup checkpatch.pl warnings about not needed else clauses after a break or return Signed-off-by: Antonio Murdaca Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/fid/fid_request.c | 5 ++--- drivers/staging/lustre/lustre/include/lprocfs_status.h | 3 +-- drivers/staging/lustre/lustre/ldlm/ldlm_lib.c | 3 +-- drivers/staging/lustre/lustre/ldlm/ldlm_lock.c | 11 ++++++----- drivers/staging/lustre/lustre/ldlm/ldlm_pool.c | 3 +-- drivers/staging/lustre/lustre/lov/lov_request.c | 3 +-- drivers/staging/lustre/lustre/mdc/mdc_request.c | 8 ++++---- drivers/staging/lustre/lustre/obdclass/cl_object.c | 6 ++---- drivers/staging/lustre/lustre/obdclass/llog_cat.c | 6 ++---- drivers/staging/lustre/lustre/osc/osc_lock.c | 3 +-- drivers/staging/lustre/lustre/osc/osc_request.c | 14 ++++++++------ drivers/staging/lustre/lustre/ptlrpc/pinger.c | 8 +++----- 12 files changed, 32 insertions(+), 41 deletions(-) commit 9ee81443b99ae3a022ba145ed62e22a5173e33f6 Author: Dan Carpenter Date: Thu Jun 4 11:59:34 2015 +0300 staging: wilc1000: prevent some overflows in debugfs Add some limits here so we don't corrupt memory. Signed-off-by: Dan Carpenter Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_debugfs.c | 6 ++++++ 1 file changed, 6 insertions(+) commit d35ebe80259e889548aa9714e0365aa12fcba7a2 Author: Abhishek Sharma Date: Wed Jun 3 12:25:50 2015 +0000 staging: wilc1000: Remove commented code lines Removing the commented code lines. Signed-off-by: Abhishek Sharma Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 65 ------------------------------------ 1 file changed, 65 deletions(-) commit 542a6bc5cfe3835e2e06ed75e4b7f6f8e29fb180 Author: Abhishek Sharma Date: Wed Jun 3 10:09:16 2015 +0000 staging: wilc1000: Remove commented variable declerations Removing the commented static variable declerations. Signed-off-by: Abhishek Sharma Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 4 ---- 1 file changed, 4 deletions(-) commit 0dcbea196b4e62c3c81a3ba823c3e071b6835d01 Author: Hari Prasath Gujulan Elango Date: Wed Jun 3 09:08:16 2015 +0000 staging: wilc1000: remove commented code Remove commented code from this file. Signed-off-by: Hari Prasath Gujulan Elango Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 117 ---------------------- 1 file changed, 117 deletions(-) commit aa02a9392e68154a0ab7b897cbf541eb6afbfb44 Author: Hari Prasath Gujulan Elango Date: Wed Jun 3 09:07:44 2015 +0000 staging: wilc1000: remove ununsed function The function WILC_WFI_InitPriv() is not used anywhere in the driver.Hence remove it. Signed-off-by: Hari Prasath Gujulan Elango Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 23 ----------------------- 1 file changed, 23 deletions(-) commit 1a093b5fcd4ca202ee2024134dae7620eb150d59 Author: Hari Prasath Gujulan yyElango Date: Tue Jun 2 12:50:37 2015 +0000 staging: wilc1000: use time_after_eq use the time_after_eq macro for the comparison operation Signed-off-by: Hari Prasath Gujulan yyElango Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4d77c6ccfb5e5ac6794cfad0c47dda86385e6010 Author: Hari Prasath Gujulan Elango Date: Tue Jun 2 12:49:12 2015 +0000 staging: wilc1000: remove dead code Remove dead code or commented code Signed-off-by: Hari Prasath Gujulan Elango Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan_spi.c | 28 +--------------------------- 1 file changed, 1 insertion(+), 27 deletions(-) commit 37bc15d8dde2d98a1083757e037678b6287e7555 Author: Hari Prasath Gujulan Elango Date: Tue Jun 2 12:48:05 2015 +0000 staging: wilc1000: remove unnecessary typecast Remove ununecessary typecast for kzalloc.This patch was generated by coccinelle tool Signed-off-by: Hari Prasath Gujulan Elango Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan_spi.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 0feae20091dd4a1c79e085ce1c0572affdbe6247 Author: Chaitanya Dhere Date: Tue Jun 2 09:58:50 2015 +0000 staging: wilc1000: Modification in code to use ARRAY_SIZE macro In this patch, ARRAY_SIZE() macro is used to determine the size. This change was detected with the help of coccinelle tool. Signed-off-by: Chaitanya Dhere Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 52db7520775e5c4103e0e06a61abbadcf73d2d96 Author: Sudip Mukherjee Date: Tue Jun 2 14:28:17 2015 +0530 staging: wilc1000: fix warning while printing size_t should print using %zu and unsigned long int should use %lu but here it was using %d and hence we were getting warning while printing. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_spi.c | 2 +- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) commit 2d78b3c1ec6299654d3857928db718c64e62d494 Author: Julia Lawall Date: Mon Jun 8 14:53:20 2015 +0200 lustre: lov: Drop rq_buflen field The rq_buflen field of the lov_request structure is never initialized. It is only used in the free of req->rq_oi.oi_md in lov_finish_set. But no oi_md field is ever initialized to the result of calling OBD_ALLOC_LARGE. So it seems that the call to OBD_FREE_LARGE in lov_finish_set and the rq_buflen in the lov_request structure are simply not needed. Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/lov/lov_internal.h | 1 - drivers/staging/lustre/lustre/lov/lov_request.c | 2 -- 2 files changed, 3 deletions(-) commit 2b692c2e9be1c41fd450db0bace2141e3ba8fa27 Author: Julia Lawall Date: Mon Jun 8 14:53:19 2015 +0200 lustre: lov: Drop unneeded set_oabufs and set_pga fields The fields set_oabufs and set_pga fields in the lov_request_set structure are never set, so drop them. Drop also the corresponding test and free in lov_finish_set. Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/lov/lov_internal.h | 2 -- drivers/staging/lustre/lustre/lov/lov_request.c | 5 ----- 2 files changed, 7 deletions(-) commit 8fd18211d645a8af72396238c3df5b62049a6b1e Author: Julia Lawall Date: Mon Jun 8 14:53:18 2015 +0200 lustre: lov: Drop lov_lock_handles structure The lov_lock_handles structure is only used as the type of the field set_lockh in the lov_request_set structure, and this field is never set to any value. Drop a test and free of this field in lov_finish_set. This change enables also removing the functions lov_handle2llh and lov_llh_put that manipulate values of type lov_lock_handles, but are now never called. Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/lov/lov_internal.h | 34 ------------------------ drivers/staging/lustre/lustre/lov/lov_request.c | 3 --- 2 files changed, 37 deletions(-) commit 1c01737a4b6450553cc2fd387b27847d408ca936 Author: Dan Carpenter Date: Fri Jun 5 12:23:31 2015 +0300 Staging: Lustre: lproc_fid: remove some dead code We know "rc == 0" so there is no need to check. Signed-off-by: Dan Carpenter Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/fid/lproc_fid.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit b815555df8ede8aca07ff72d3fbe7727a008620e Author: Dan Carpenter Date: Fri Jun 5 12:22:57 2015 +0300 Staging: lustre: ptlrpc: signedness bug in high_priority_ratio_store() We want to store a non-negative int here. The original code had a check for unsigned long less than zero which is a mistake but also casting from a positive long to an int can result in a negative number. Signed-off-by: Dan Carpenter Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 02b310794b8aa34573ef657b694b8f1f18ef4abf Author: Xavier Roche Date: Fri Jun 5 10:19:20 2015 +0200 staging: lustre: fixed const warnings (struct seq_operations should be const in these contexts) Minor warnings spotted by checkpatch.pl in lustre regarding const correctness: struct seq_operations should be const. Signed-off-by: Xavier Roche Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/vvp_dev.c | 2 +- drivers/staging/lustre/lustre/lmv/lproc_lmv.c | 2 +- drivers/staging/lustre/lustre/lov/lov_pool.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 2f4246f71d4f302ae57aae804c88fffc4b0478b5 Author: James Simmons Date: Wed Jun 3 18:38:06 2015 -0400 staging:lustre: cleanup libcfs lock handling Previously with libcfs being built for user land and kernel space wrappers were created to transparently handle locking. Now that user land support has been removed we delete all those locking wrappers with this patch. Many of those changes landed upstream but some nice cleanups still remain that are pushed in this patch. Signed-off-by: James Simmons Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-6245 Reviewed-on: http://review.whamcloud.com/13793 Reviewed-by: Dmitry Eremin Reviewed-by: John L. Hammond Reviewed-by: Andreas Dilger Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lnet/lnet/acceptor.c | 2 +- drivers/staging/lustre/lustre/libcfs/fail.c | 2 +- drivers/staging/lustre/lustre/libcfs/linux/linux-tracefile.c | 4 +--- drivers/staging/lustre/lustre/libcfs/module.c | 11 ++--------- drivers/staging/lustre/lustre/libcfs/tracefile.c | 2 +- 5 files changed, 6 insertions(+), 15 deletions(-) commit 394453676b87508ae141458105172f0f72f2778c Author: James Simmons Date: Wed Jun 3 16:43:21 2015 -0400 staging:lustre: fixup LNet resource container api Both lnet_res_container_setup and lnet_res_container_create have additional parameters that are no longer used with the removal of the FREELIST code. This patch removes the no longer needed function arguments. Signed-off-by: James Simmons Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lnet/lnet/api-ni.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) commit d9c90615a4e24135a9881c701ea1f0bc8821d700 Author: John L. Hammond Date: Wed Jun 3 16:43:20 2015 -0400 staging:lustre: assume a kernel build In lnet/lnet/ and lnet/selftest/ assume a kernel build (assume that __KERNEL__ is defined). Remove some common code only needed for user space LNet. Signed-off-by: John L. Hammond Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-2675 Reviewed-on: http://review.whamcloud.com/13121 Reviewed-by: James Simmons Reviewed-by: Amir Shehata Reviewed-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman .../staging/lustre/include/linux/lnet/lib-lnet.h | 215 +-------------------- .../staging/lustre/include/linux/lnet/lib-types.h | 20 -- drivers/staging/lustre/lnet/lnet/api-ni.c | 69 +------ drivers/staging/lustre/lnet/lnet/lib-eq.c | 2 +- drivers/staging/lustre/lnet/lnet/lib-md.c | 6 +- drivers/staging/lustre/lnet/lnet/lib-me.c | 6 +- drivers/staging/lustre/lnet/lnet/lib-msg.c | 2 +- 7 files changed, 16 insertions(+), 304 deletions(-) commit d0bfef31f4d40888683e801dfd3f7448078d7e2b Author: Chris Hanna Date: Wed Jun 3 10:28:26 2015 -0400 staging: lustre: ptlrpc: clean up whitespace and align function params Minor changes to remove excessive whitespace and improve readability of ptlrpc functions. Signed-off-by: Chris Hanna Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/ptlrpc/client.c | 90 ++++---- drivers/staging/lustre/lustre/ptlrpc/events.c | 60 +++--- drivers/staging/lustre/lustre/ptlrpc/import.c | 8 +- drivers/staging/lustre/lustre/ptlrpc/layout.c | 70 +++--- drivers/staging/lustre/lustre/ptlrpc/llog_client.c | 82 +++---- .../staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c | 104 ++++----- drivers/staging/lustre/lustre/ptlrpc/niobuf.c | 62 +++--- drivers/staging/lustre/lustre/ptlrpc/nrs.c | 146 ++++++------- drivers/staging/lustre/lustre/ptlrpc/nrs_fifo.c | 4 +- .../staging/lustre/lustre/ptlrpc/pack_generic.c | 18 +- drivers/staging/lustre/lustre/ptlrpc/pinger.c | 4 +- drivers/staging/lustre/lustre/ptlrpc/ptlrpcd.c | 6 +- drivers/staging/lustre/lustre/ptlrpc/sec.c | 96 ++++----- drivers/staging/lustre/lustre/ptlrpc/sec_bulk.c | 48 ++--- drivers/staging/lustre/lustre/ptlrpc/sec_config.c | 60 +++--- drivers/staging/lustre/lustre/ptlrpc/sec_gc.c | 2 +- drivers/staging/lustre/lustre/ptlrpc/sec_lproc.c | 4 +- drivers/staging/lustre/lustre/ptlrpc/sec_null.c | 8 +- drivers/staging/lustre/lustre/ptlrpc/sec_plain.c | 78 +++---- drivers/staging/lustre/lustre/ptlrpc/service.c | 238 ++++++++++----------- 20 files changed, 594 insertions(+), 594 deletions(-) commit 29ac6840d7c8b4ce60c9dcd0a55fce6a84d3bae0 Author: Chris Hanna Date: Wed Jun 3 10:23:42 2015 -0400 staging: lustre: osc: clean up whitespace and align function parameters Minor changes to remove excessive whitespace and improve readability of osc functions. Signed-off-by: Chris Hanna Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/osc/lproc_osc.c | 18 +-- drivers/staging/lustre/lustre/osc/osc_cache.c | 196 ++++++++++++------------ drivers/staging/lustre/lustre/osc/osc_dev.c | 12 +- drivers/staging/lustre/lustre/osc/osc_io.c | 124 +++++++-------- drivers/staging/lustre/lustre/osc/osc_lock.c | 148 +++++++++--------- drivers/staging/lustre/lustre/osc/osc_object.c | 18 +-- drivers/staging/lustre/lustre/osc/osc_page.c | 38 ++--- drivers/staging/lustre/lustre/osc/osc_quota.c | 14 +- drivers/staging/lustre/lustre/osc/osc_request.c | 169 ++++++++++---------- 9 files changed, 368 insertions(+), 369 deletions(-) commit 06d0c4989fa40012957c6d96ed0a05684c3b7c61 Author: Aparna Karuthodi Date: Wed Jun 3 15:03:57 2015 +0530 staging: lustre: llite: Fix No space after the declaration Added a new line Signed-off-by: Aparna Karuthodi Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/llite_capa.c | 1 + 1 file changed, 1 insertion(+) commit f559cfe37bc7036ba62215d4d2851e9fc56bd936 Author: Prasanna Karthik Date: Tue Jun 2 10:38:29 2015 +0000 Staging: lustre: Clean up Coding style Fix Preferred use of '*' is adjacent to the data name or function name Signed-off-by: Prasanna Karthik Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/obdclass/obd_mount.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 23191c97c0f3a07eb45c6c9ecda4fced8fbb0719 Author: Antonio Murdaca Date: Mon Jun 1 23:14:14 2015 +0200 staging: lustre: lov: remove unnecessary parentheses fix checkpatch.pl warning about unnecessary parentheses Signed-off-by: Antonio Murdaca Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/lov/lov_obd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6da8253bdd3945b81377e4908d6d395a9956f8af Author: Florian Fainelli Date: Mon Jun 8 11:05:20 2015 -0700 net: phy: bcm7xxx: update workaround to fix 100BaseT corner cases Update the AFE_TX_CONFIG value to solve marginal rise/fall issues observed when the link is operating in 100BaseT. This workaround applies to GPHY revisions D0, E0 and newer. Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/phy/bcm7xxx.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 01ec65c812ef829c815d2f37a97cc4eb7925f8ae Author: Takashi Iwai Date: Mon Jun 8 21:04:24 2015 +0200 ASoC: intel: Remove unused variable hsw The recent fix left a variable declaration without usage. sound/soc/intel/haswell/sst-haswell-pcm.c:1349:18: warning: unused variable ‘hsw’ [-Wunused-variable] Fixes: edd8ed496b98 ('ASoC: Intel: handle haswell pcm suspend including runtime modules freeing') Signed-off-by: Takashi Iwai sound/soc/intel/haswell/sst-haswell-pcm.c | 1 - 1 file changed, 1 deletion(-) commit 4d7321381e5c7102a3d3faf0a0a0035a09619612 Author: Ingo Molnar Date: Mon Jun 8 20:43:07 2015 +0200 x86/asm/entry/64: Clean up entry_64.S Make the 64-bit syscall entry code a bit more readable: - use consistent assembly coding style similar to the other entry_*.S files - remove old comments that are not true anymore - eliminate whitespace noise - use consistent vertical spacing - fix various comments - reorganize entry point generation tables to be more readable No code changed: # arch/x86/entry/entry_64.o: text data bss dec hex filename 12282 0 0 12282 2ffa entry_64.o.before 12282 0 0 12282 2ffa entry_64.o.after md5: cbab1f2d727a2a8a87618eeb79f391b7 entry_64.o.before.asm cbab1f2d727a2a8a87618eeb79f391b7 entry_64.o.after.asm Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar arch/x86/entry/entry_64.S | 820 +++++++++++++++++++++++----------------------- 1 file changed, 404 insertions(+), 416 deletions(-) commit 9dda1658a9bd450d65da5153a2427955785d17c2 Merge: b72e746 a49976d Author: Ingo Molnar Date: Mon Jun 8 20:48:01 2015 +0200 Merge branch 'x86/asm' into x86/core, to prepare for new patch Collect all changes to arch/x86/entry/entry_64.S, before applying patch that changes most of the file. Signed-off-by: Ingo Molnar commit 8ffc57093bb1c270050f4229b5afd38ee8cef2bd Merge: 83b0b67 11e68886 Author: Takashi Iwai Date: Mon Jun 8 20:47:53 2015 +0200 Merge tag 'asoc-v4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-next ASoC: Updates for v4.2 The big thing this release has been Liam's addition of topology support to the core. We've also seen quite a bit of driver work and the continuation of Lars' refactoring for component support. - Support for loading ASoC topology maps from firmware, intended to be used to allow self-describing DSP firmware images to be built which can map controls added by the DSP to userspace without the kernel needing to know about individual DSP firmwares. - Lots of refactoring to avoid direct access to snd_soc_codec where it's not needed supporting future refactoring. - Big refactoring and cleanup serieses for the Wolfson ADSP and TI TAS2552 drivers. - Support for TI TAS571x power amplifiers. - Support for Qualcomm APQ8016 and ZTE ZX296702 SoCs. - Support for x86 systems with RT5650 and Qualcomm Storm. commit c5bda1c8b13ad7840ae0e8c9a2926df686ba6e06 Author: Chao Yu Date: Mon Jun 8 13:28:03 2015 +0800 f2fs: skip committing valid superblock In recovery procedure for superblock, we try to write data of valid superblock into invalid one for recovery, work should be finished here, but then still we will write the valid one with its original data. This operation is not needed. Let's skip doing this unnecessary work. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/f2fs.h | 2 +- fs/f2fs/file.c | 2 +- fs/f2fs/super.c | 8 +++++--- 3 files changed, 7 insertions(+), 5 deletions(-) commit ab101e35448b777a62a5e02155783ec93d4c77db Author: Lee Jones Date: Fri Jun 5 19:42:47 2015 +0100 regulator: pwm-regulator: Diffientiate between dev (device) and rdev (regulator_dev) Signed-off-by: Lee Jones Signed-off-by: Mark Brown drivers/regulator/pwm-regulator.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit c779cebb7def3fd17aae5276f9a71f3c5237bc3f Author: Lee Jones Date: Fri Jun 5 19:42:46 2015 +0100 regulator: pwm-regulator: Remove superfluous is_enabled check The core framework already takes care of this. Signed-off-by: Lee Jones Signed-off-by: Mark Brown drivers/regulator/pwm-regulator.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) commit b6f55e74d2babc0f6495c1e3fb12761388baa56f Author: Lee Jones Date: Fri Jun 5 19:42:45 2015 +0100 regulator: pwm-regulator: Remove unnecessary descriptor attribute from ddata The Regulator Device keeps a full copy of it's own, which can be easily accessed. Signed-off-by: Lee Jones Signed-off-by: Mark Brown drivers/regulator/pwm-regulator.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) commit 09d54cdd207bb3b07e00983f2f50bd68c354ce31 Author: Chao Yu Date: Mon Jun 8 13:20:10 2015 +0800 f2fs: setting discard option in parse_options() For the first mount of f2fs image with realtime discard option, we will disable discard option if device is not supported, but for remount operation, our discard option can still be set, this should be avoided. This patch moves configuring of discard option to parse_options() to fix this issue. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/super.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) commit e369bd006fd67f981d64cf526c4a8b51438fffb2 Author: Sergej Sawazki Date: Sat Jun 6 11:25:48 2015 +0200 ASoC: wm8741: Allow master clock switching The set of supported sample rates depends on the master clock supplied to the codec. Allow the machine driver to set the required master clock in hw_params(). Signed-off-by: Sergej Sawazki Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8741.c | 61 ++++++++++++++++++++--------------------------- 1 file changed, 26 insertions(+), 35 deletions(-) commit ec8f3386a7ef6af7f185aba486402e82cd84b0ad Author: Mauro Carvalho Chehab Date: Tue Jun 2 16:41:01 2015 -0300 [media] DocBook: Use constant tag for monospaced fonts As reminded by Jonathan, several places where emphasys role="tt" were used are actually trying to change the font to monospaced. We do that, on other places, by using the constant tag. So, use it here too. Reported-by: Jonathan Corbet Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/audio.xml | 6 +++--- Documentation/DocBook/media/dvb/ca.xml | 4 ++-- Documentation/DocBook/media/dvb/demux.xml | 10 +++++----- Documentation/DocBook/media/dvb/frontend.xml | 4 ++-- Documentation/DocBook/media/dvb/intro.xml | 30 ++++++++++++++-------------- Documentation/DocBook/media/dvb/kdapi.xml | 4 ++-- Documentation/DocBook/media/dvb/net.xml | 4 ++-- Documentation/DocBook/media/dvb/video.xml | 2 +- 8 files changed, 32 insertions(+), 32 deletions(-) commit 19915e623458004547c1c2490b09bb923fe69337 Merge: 4e47dcf d4a4f75 Author: Greg Kroah-Hartman Date: Mon Jun 8 10:57:51 2015 -0700 Merge 4.1-rc7 into usb-next This resolves a merge issue in musb_core.c and we want the fixes that were in Linus's tree in this branch as well for testing. Signed-off-by: Greg Kroah-Hartman commit bf45caf28146dae26140f19bc3b666647d0b6aac Author: Mauro Carvalho Chehab Date: Tue Jun 2 16:17:16 2015 -0300 [media] DocBook: fix some syntax issues at dvbproperty.xml Some minor English syntax fixes. Reported-by: Jonathan Corbet Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/dvbproperty.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 7832a91596aeea5c82b956935312d1acf886660a Author: Mauro Carvalho Chehab Date: Tue Jun 2 14:59:07 2015 -0300 [media] Docbook: typo fix: use note(d) instead of notice(d) We don't want to announce anything, but to add a note ;) So: notice -> note notided -> noted While here, fix another typo at media_api.tmpl: with -> which Reported-by: Jonathan Corbet Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/dvbproperty.xml | 8 ++++---- Documentation/DocBook/media/dvb/frontend.xml | 2 +- Documentation/DocBook/media/v4l/remote_controllers.xml | 2 +- Documentation/DocBook/media_api.tmpl | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) commit 21e397bd90c303ea9fe18a1f63ddfa67c48f7150 Author: Peter Ujfalusi Date: Mon Jun 8 15:19:56 2015 +0300 ASoC: tas2552: Update DT binding document regarding clock configuration Add overview of tas2552's clock configuration and selection. Signed-off-by: Peter Ujfalusi Signed-off-by: Mark Brown Documentation/devicetree/bindings/sound/tas2552.txt | 6 ++++++ 1 file changed, 6 insertions(+) commit 96048dc1444efd906dc82c0e35b018879de20084 Author: Mauro Carvalho Chehab Date: Tue Jun 2 08:36:36 2015 -0300 [media] DocBook: Change DTD schema to version 4.5 According with the docs at docbook.org, no backward compatible changes were done between 4.2 and 4.5 schemas. Some fixes were added, together with new features. So, let's use the latest 4.x schema. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media_api.tmpl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit eda6bc2d4ca480c2b82a3e3b5431f0571674c4de Author: Mauro Carvalho Chehab Date: Tue Jun 2 07:40:53 2015 -0300 [media] DocBook: specify language and encoding for the document Define the usage of UTF-8 encoding and let clear that the document is in English. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media_api.tmpl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 315d27aacf1801b009e8f7ec9f92adba6243aec2 Author: Mauro Carvalho Chehab Date: Mon Jun 1 08:56:49 2015 -0300 [media] DocBook: document DVB net API The DVB network API was not documented. There are just some placeholders there. Replace it by a proper documentation. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/Makefile | 2 +- Documentation/DocBook/media/dvb/dvbapi.xml | 2 +- Documentation/DocBook/media/dvb/net.xml | 374 ++++++++++++++++++----------- Documentation/DocBook/media_api.tmpl | 20 +- 4 files changed, 245 insertions(+), 153 deletions(-) commit b94525bfda1f2d1efc6e3cb0f33be2341ca67385 Author: Peter Ujfalusi Date: Mon Jun 8 15:19:55 2015 +0300 ASoC: tas2552: Use consistent name for 'struct tas2552_data' In tas2552_sw_shutdown() tas_data is used while the rest of the driver uses tas2552 when dealing with the 'struct tas2552_data' Signed-off-by: Peter Ujfalusi Signed-off-by: Mark Brown sound/soc/codecs/tas2552.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 30f40bf6f3ec081a0bcf8e39329892be1c219cca Author: Peter Ujfalusi Date: Mon Jun 8 15:19:54 2015 +0300 ASoC: tas2552: Remove unneeded semicolon Double semicolon was added by the following commit: ea178d1456dc ASoC: tas2552: Make the enable-gpio really optional Signed-off-by: Peter Ujfalusi Signed-off-by: Mark Brown sound/soc/codecs/tas2552.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4785ed89f2ec6ccdd48eae7acab3dbc2c63e4ca6 Author: Peter Ujfalusi Date: Mon Jun 8 15:19:53 2015 +0300 ASoC: tas2552: Call pm_runtime_disable when the module is removed The module can not be loaded again after it has been removed. Signed-off-by: Peter Ujfalusi Signed-off-by: Mark Brown sound/soc/codecs/tas2552.c | 1 + 1 file changed, 1 insertion(+) commit 4afdd89df0bd094015b2cc7504421ec3ece3ae35 Author: Peter Ujfalusi Date: Mon Jun 8 15:19:52 2015 +0300 ASoC: tas2552: Code, define alignment changes for uniformity Align the numbers in the header file to the same column. At the same time change the wrapping of CFG_2 register write in the probe function to be uniform with the other calls. Signed-off-by: Peter Ujfalusi Signed-off-by: Mark Brown sound/soc/codecs/tas2552.c | 4 ++-- sound/soc/codecs/tas2552.h | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) commit 2a9dd1db70688203e5699f6ea074d41a7ac86378 Author: Peter Ujfalusi Date: Mon Jun 8 15:19:51 2015 +0300 ASoC: tas2552: Correct Boost Auto-Pass Through Control register usage Correct the bit definition so the code will change the bits what it supposed to change. Also rename the register define to TAS2552_BOOST_APT_CTRL. Signed-off-by: Peter Ujfalusi Signed-off-by: Mark Brown sound/soc/codecs/tas2552.c | 6 +++--- sound/soc/codecs/tas2552.h | 21 ++++++++++----------- 2 files changed, 13 insertions(+), 14 deletions(-) commit b2822f191a22990f2de80e6eb36000e5f04297f1 Author: Peter Ujfalusi Date: Mon Jun 8 15:19:50 2015 +0300 ASoC: tas2552: Correct Output Data register usage Do not write to DOUT Tristate register at probe time, specially not write data which is defined to be used in Output Data Register. Fix the defines for the Output Data Register and correct the register write at probe time. Signed-off-by: Peter Ujfalusi Signed-off-by: Mark Brown sound/soc/codecs/tas2552.c | 5 +++-- sound/soc/codecs/tas2552.h | 19 +++++++++++++++---- 2 files changed, 18 insertions(+), 6 deletions(-) commit 2962cb5217f2d8defb984f17ac59f576124d8521 Author: Peter Ujfalusi Date: Mon Jun 8 15:19:49 2015 +0300 ASoC: tas2552: Add control for selecting DIN source 'DIN source' enum can be used to select the DIN Source (muted, left, right or average of left and right channels). Signed-off-by: Peter Ujfalusi Signed-off-by: Mark Brown sound/soc/codecs/tas2552.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 1014f7eff9a1d4f3f796c83e933adf2462c79005 Author: Peter Ujfalusi Date: Mon Jun 8 15:19:48 2015 +0300 ASoC: tas2552: Correct the PLL configuration Do not restrict the sampling rate to 44.1/48KHz. The pll_clk clock should be (sampling rate * 512) in all cases. Correct the J.D calculation (the D part was incorrectly calculated). Restore PLL enable status after we are done with the configuration. Implement hardware constraint handling towards the pll_clkin: if D != 0 (in J.D) then 1.1MHz <= pll_clkin <= 9.2MHz needs to be checked. If the PLL setup does not met with this constraint, fall back to BCLK as reference clock, if BCLK fails, use the internal 1.8MHz clock. Signed-off-by: Peter Ujfalusi Signed-off-by: Mark Brown sound/soc/codecs/tas2552.c | 138 ++++++++++++++++++++++++++++++--------------- sound/soc/codecs/tas2552.h | 11 ++-- 2 files changed, 95 insertions(+), 54 deletions(-) commit 19db62ea0558d71844847cdf4c65a655df2ab69f Author: Misael Lopez Cruz Date: Mon Jun 8 16:03:47 2015 +0300 ASoC: davinci-mcasp: Logic low for inactive output slots The default state when serializers are in inactive slots is Hi-Z. In some cases, there are no additional components driving the data lines to a safe state so they might have noise. While in inactive slots, the McASP AXR pins configured as outputs can be driven low through the serializer pin drive mode setting (DISMOD) to prevent such noise. Signed-off-by: Misael Lopez Cruz Signed-off-by: Peter Ujfalusi Signed-off-by: Mark Brown sound/soc/davinci/davinci-mcasp.c | 2 ++ sound/soc/davinci/davinci-mcasp.h | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) commit 00fda1682efdbd62a20a8a21aee52d994c323c7f Merge: 1c4b1d7 d4a4f75 Author: Greg Kroah-Hartman Date: Mon Jun 8 10:49:28 2015 -0700 Merge 4.1-rc7 into tty-next This fixes up a merge issue with the amba-pl011.c driver, and we want the fixes in this branch as well. Signed-off-by: Greg Kroah-Hartman commit 6394d6d01bf0881823522f37601cbf880bc61087 Merge: 0848611 d4a4f75 Author: Greg Kroah-Hartman Date: Mon Jun 8 10:34:44 2015 -0700 Merge 4.1-rc7 into staging-testing We want the staging tree fixes in here too to help with testing and merge issues. Signed-off-by: Greg Kroah-Hartman commit 04d7e098f541769721d7511d56aea4b976fd29fd Author: Josh Stone Date: Fri Jun 5 14:28:03 2015 -0700 arm64: fix missing syscall trace exit If a syscall is entered without TIF_SYSCALL_TRACE set, then it goes on the fast path. It's then possible to have TIF_SYSCALL_TRACE added in the middle of the syscall, but ret_fast_syscall doesn't check this flag again. This causes a ptrace syscall-exit-stop to be missed. For instance, from a PTRACE_EVENT_FORK reported during do_fork, the tracer might resume with PTRACE_SYSCALL, setting TIF_SYSCALL_TRACE. Now the completion of the fork should have a syscall-exit-stop. Russell King fixed this on arm by re-checking _TIF_SYSCALL_WORK in the fast exit path. Do the same on arm64. Reviewed-by: Will Deacon Cc: Russell King Signed-off-by: Josh Stone Signed-off-by: Catalin Marinas arch/arm64/kernel/entry.S | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 987aec39a74373c55c3bedd5c3c83896d78fd0a2 Merge: 303cda0 d4a4f75 Author: Greg Kroah-Hartman Date: Mon Jun 8 10:19:40 2015 -0700 Merge 4.1-rc7 into driver-core-next We want the fixes in this branch as well for testing and merge resolution. Signed-off-by: Greg Kroah-Hartman commit de92c8caf16ca84926fa31b7a5590c0fb9c0d5ca Author: Jan Kara Date: Mon Jun 8 12:46:37 2015 -0400 jbd2: speedup jbd2_journal_get_[write|undo]_access() jbd2_journal_get_write_access() and jbd2_journal_get_create_access() are frequently called for buffers that are already part of the running transaction - most frequently it is the case for bitmaps, inode table blocks, and superblock. Since in such cases we have nothing to do, it is unfortunate we still grab reference to journal head, lock the bh, lock bh_state only to find out there's nothing to do. Improving this is a bit subtle though since until we find out journal head is attached to the running transaction, it can disappear from under us because checkpointing / commit decided it's no longer needed. We deal with this by protecting journal_head slab with RCU. We still have to be careful about journal head being freed & reallocated within slab and about exposing journal head in consistent state (in particular b_modified and b_frozen_data must be in correct state before we allow user to touch the buffer). Signed-off-by: Jan Kara Signed-off-by: Theodore Ts'o fs/jbd2/journal.c | 2 +- fs/jbd2/transaction.c | 76 ++++++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 73 insertions(+), 5 deletions(-) commit 8b00f400eedf91d074f831077003c0d4d9147377 Author: Jan Kara Date: Mon Jun 8 12:44:21 2015 -0400 jbd2: more simplifications in do_get_write_access() Check for the simple case of unjournaled buffer first, handle it and bail out. This allows us to remove one if and unindent the difficult case by one tab. The result is easier to read. Signed-off-by: Jan Kara Signed-off-by: Theodore Ts'o fs/jbd2/transaction.c | 130 +++++++++++++++++++++++--------------------------- 1 file changed, 59 insertions(+), 71 deletions(-) commit d012aa5965160a39b24a4b41139a322f681cdfd7 Author: Jan Kara Date: Mon Jun 8 12:40:39 2015 -0400 jbd2: simplify error path on allocation failure in do_get_write_access() We were acquiring bh_state_lock when allocation of buffer failed in do_get_write_access() only to be able to jump to a label that releases the lock and does all other checks that don't make sense for this error path. Just jump into the right label instead. Signed-off-by: Jan Kara Signed-off-by: Theodore Ts'o fs/jbd2/transaction.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit ee57aba159a5c329dc78c181a3ae0549e59f0925 Author: Jan Kara Date: Mon Jun 8 12:39:07 2015 -0400 jbd2: simplify code flow in do_get_write_access() needs_copy is set only in one place in do_get_write_access(), just move the frozen buffer copying into that place and factor it out to a separate function to make do_get_write_access() slightly more readable. Signed-off-by: Jan Kara Signed-off-by: Theodore Ts'o fs/jbd2/transaction.c | 49 +++++++++++++++++++++++++------------------------ 1 file changed, 25 insertions(+), 24 deletions(-) commit b4ab9e29820bf2e8842281a6b5e645e59c9992a5 Author: Fabian Frederick Date: Mon Jun 8 12:23:21 2015 -0400 ext4 crypto: fix sparse warnings in fs/ext4/ioctl.c [ Added another sparse fix for EXT4_IOC_GET_ENCRYPTION_POLICY while we're at it. --tytso ] Signed-off-by: Fabian Frederick Signed-off-by: Theodore Ts'o fs/ext4/ioctl.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 1bdf45352e1897ab02632a4ed3648db8cc183f71 Author: Abhi Das Date: Mon Jun 8 11:20:50 2015 -0500 gfs2: s64 cast for negative quota value One-line fix to cast quota value to s64 before comparison. By default the quantity is treated as u64. Signed-off-by: Abhi Das Signed-off-by: Bob Peterson Acked-by: Steven Whitehouse fs/gfs2/quota.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8bc3b1e6e8fdc1c605c06c027d999b5cca434779 Author: David Moore Date: Mon Jun 8 11:59:12 2015 -0400 ext4: BUG_ON assertion repeated for inode1, not done for inode2 During a source code review of fs/ext4/extents.c I noted identical consecutive lines. An assertion is repeated for inode1 and never done for inode2. This is not in keeping with the rest of the code in the ext4_swap_extents function and appears to be a bug. Assert that the inode2 mutex is not locked. Signed-off-by: David Moore Signed-off-by: Theodore Ts'o Reviewed-by: Eric Sandeen fs/ext4/extents.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ad0a0ce894d554b112afab6a48fd500e636686a6 Author: Theodore Ts'o Date: Mon Jun 8 11:54:56 2015 -0400 ext4 crypto: fix ext4_get_crypto_ctx()'s calling convention in ext4_decrypt_one Signed-off-by: Theodore Ts'o fs/ext4/crypto.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 42ac1848eac58875ceb081c2ed915d6f07ec1f30 Author: Lukas Czerner Date: Mon Jun 8 11:40:40 2015 -0400 ext4: return error code from ext4_mb_good_group() Currently ext4_mb_good_group() only returns 0 or 1 depending on whether the allocation group is suitable for use or not. However we might get various errors and fail while initializing new group including -EIO which would never get propagated up the call chain. This might lead to an endless loop at writeback when we're trying to find a good group to allocate from and we fail to initialize new group (read error for example). Fix this by returning proper error code from ext4_mb_good_group() and using it in ext4_mb_regular_allocator(). In ext4_mb_regular_allocator() we will always return only the first occurred error from ext4_mb_good_group() and we only propagate it back to the caller if we do not get any other errors and we fail to allocate any blocks. Note that with other modes than errors=continue, we will fail immediately in ext4_mb_good_group() in case of error, however with errors=continue we should try to continue using the file system, that's why we're not going to fail immediately when we see an error from ext4_mb_good_group(), but rather when we fail to find a suitable block group to allocate from due to an problem in group initialization. Signed-off-by: Lukas Czerner Signed-off-by: Theodore Ts'o Reviewed-by: Darrick J. Wong fs/ext4/mballoc.c | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) commit bbdc322f2c600667e3d23dfadf8bbaad08f7edd3 Author: Lukas Czerner Date: Mon Jun 8 11:38:37 2015 -0400 ext4: try to initialize all groups we can in case of failure on ppc64 Currently on the machines with page size > block size when initializing block group buddy cache we initialize it for all the block group bitmaps in the page. However in the case of read error, checksum error, or if a single bitmap is in any way corrupted we would fail to initialize all of the bitmaps. This is problematic because we will not have access to the other allocation groups even though those might be perfectly fine and usable. Fix this by reading all the bitmaps instead of error out on the first problem and simply skip the bitmaps which were either not read properly, or are not valid. Signed-off-by: Lukas Czerner Signed-off-by: Theodore Ts'o fs/ext4/mballoc.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 41e5b7ed3e9597ccc46b6affc81872e6370936d9 Author: Lukas Czerner Date: Mon Jun 8 11:18:52 2015 -0400 ext4: verify block bitmap even after fresh initialization If we want to rely on the buffer_verified() flag of the block bitmap buffer, we have to set it consistently. However currently if we're initializing uninitialized block bitmap in ext4_read_block_bitmap_nowait() we're not going to set buffer verified at all. We can do this by simply setting the flag on the buffer, but I think it's actually better to run ext4_validate_block_bitmap() to make sure that what we did in the ext4_init_block_bitmap() is right. So run ext4_validate_block_bitmap() even after the block bitmap initialization. Also bail out early from ext4_validate_block_bitmap() if we see corrupt bitmap, since we already know it's corrupt and we do not need to verify that. Signed-off-by: Lukas Czerner Signed-off-by: Theodore Ts'o fs/ext4/balloc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 412a19b64ad17f7650ff778fd2cb9032938cf71f Author: Tejun Heo Date: Mon Jun 8 14:57:31 2015 +0900 v9fs: fix error handling in v9fs_session_init() On failure, v9fs_session_init() returns with the v9fs_session_info struct partially initialized and expects the caller to invoke v9fs_session_close() to clean it up; however, it doesn't track whether the bdi is initialized or not and curiously invokes bdi_destroy() in both vfs_session_init() failure path too. A. If v9fs_session_init() fails before the bdi is initialized, the follow-up v9fs_session_close() will invoke bdi_destroy() on an uninitialized bdi. B. If v9fs_session_init() fails after the bdi is initialized, bdi_destroy() will be called twice on the same bdi - once in the failure path of v9fs_session_init() and then by v9fs_session_close(). A is broken no matter what. B used to be okay because bdi_destroy() allowed being invoked multiple times on the same bdi, which BTW was broken in its own way - if bdi_destroy() was invoked on an initialiezd but !registered bdi, it'd fail to free percpu counters. Since f0054bb1e1f3 ("writeback: move backing_dev_info->wb_lock and ->worklist into bdi_writeback"), this no longer work - bdi_destroy() on an initialized but not registered bdi works correctly but multiple invocations of bdi_destroy() is no longer allowed. The obvious culprit here is v9fs_session_init()'s odd and broken error behavior. It should simply clean up after itself on failures. This patch makes the following updates to v9fs_session_init(). * @rc -> @retval error return propagation removed. It didn't serve any purpose. Just use @rc. * Move addition to v9fs_sessionlist to the end of the function so that incomplete sessions are not put on the list or iterated and error path doesn't have to worry about it. * Update error handling so that it cleans up after itself. Signed-off-by: Tejun Heo Reported-by: Sasha Levin Signed-off-by: Jens Axboe fs/9p/v9fs.c | 50 ++++++++++++++++++++++---------------------------- fs/9p/vfs_super.c | 8 ++------ 2 files changed, 24 insertions(+), 34 deletions(-) commit 6ccaf3e2f302b6af8d9e17ce4e7f0af26b6baa0e Author: Michal Hocko Date: Mon Jun 8 10:53:10 2015 -0400 jbd2: revert must-not-fail allocation loops back to GFP_NOFAIL This basically reverts 47def82672b3 (jbd2: Remove __GFP_NOFAIL from jbd2 layer). The deprecation of __GFP_NOFAIL was a bad choice because it led to open coding the endless loop around the allocator rather than removing the dependency on the non failing allocation. So the deprecation was a clear failure and the reality tells us that __GFP_NOFAIL is not even close to go away. It is still true that __GFP_NOFAIL allocations are generally discouraged and new uses should be evaluated and an alternative (pre-allocations or reservations) should be considered but it doesn't make any sense to lie the allocator about the requirements. Allocator can take steps to help making a progress if it knows the requirements. Signed-off-by: Michal Hocko Signed-off-by: Theodore Ts'o Acked-by: David Rientjes fs/jbd2/journal.c | 11 +---------- fs/jbd2/transaction.c | 20 +++++++------------- 2 files changed, 8 insertions(+), 23 deletions(-) commit d711b8b30c803b1b2aedf6a3474758798078f9e1 Author: Borislav Petkov Date: Sat Jun 6 11:30:00 2015 +0200 hrtimers: Make sure hrtimer_resolution is unsigned int ... in the !CONFIG_HIGH_RES_TIMERS case too. And thus fix warnings like this one: net/sched/sch_api.c: In function ‘psched_show’: net/sched/sch_api.c:1891:6: warning: format ‘%x’ expects argument of type ‘unsigned int’, but argument 6 has type ‘long int’ [-Wformat=] (u32)NSEC_PER_SEC / hrtimer_resolution); Signed-off-by: Borislav Petkov Link: http://lkml.kernel.org/r/1433583000-32090-1-git-send-email-bp@alien8.de Signed-off-by: Thomas Gleixner Cc: Thomas Gleixner include/linux/hrtimer.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d3a7c489c7fd2463e3b2c3a2179c7be879dd9cb4 Author: Arnaldo Carvalho de Melo Date: Tue Jun 2 11:53:26 2015 -0300 perf tools: Reference count struct dso This has a different model than the 'thread' and 'map' struct lifetimes: there is not a definitive "don't use this DSO anymore" event, i.e. we may get many 'struct map' holding references to the '/usr/lib64/libc-2.20.so' DSO but then at some point some DSO may have no references but we still don't want to straight away release its resources, because "soon" we may get a new 'struct map' that needs it and we want to reuse its symtab or other resources. So we need some way to garbage collect it when crossing some memory usage threshold, which is left for anoter patch, for now it is sufficient to release it when calling dsos__exit(), i.e. when deleting the whole list as part of deleting the 'struct machine' containing it, which will leave only referenced objects being used. Cc: Adrian Hunter Cc: David Ahern Cc: Jiri Olsa Cc: Namhyung Kim Link: http://lkml.kernel.org/n/tip-majzgz07cm90t2tejrjy4clf@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/dso-data.c | 4 ++-- tools/perf/tests/hists_common.c | 6 +++++- tools/perf/util/dso.c | 37 ++++++++++++++++++++++++++++++++++++- tools/perf/util/dso.h | 14 +++++++++++++- tools/perf/util/header.c | 1 + tools/perf/util/machine.c | 15 +++++++++++---- tools/perf/util/map.c | 11 +++++++++-- tools/perf/util/probe-finder.c | 2 +- tools/perf/util/symbol-elf.c | 2 +- tools/perf/util/symbol.c | 2 +- tools/perf/util/vdso.c | 1 + 11 files changed, 81 insertions(+), 14 deletions(-) commit e88078442232f3bbcb4ff1d24b3f9ab3dca472b9 Author: Arnaldo Carvalho de Melo Date: Mon Jun 1 15:40:01 2015 -0300 perf tools: Protect accesses the dso rbtrees/lists with a rw lock To allow concurrent access, next step: refcount struct dso instances, so that we can ditch unused them when the last map pointing to it goes away. Cc: Adrian Hunter Cc: David Ahern Cc: Jiri Olsa Cc: Namhyung Kim Link: http://lkml.kernel.org/n/tip-yk1k08etpd2aoe3tnrf0oizn@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/dso.c | 52 +++++++++++++++++++++++++++++++++------------- tools/perf/util/dso.h | 10 ++++++--- tools/perf/util/machine.c | 27 ++++++++++++++++++------ tools/perf/util/vdso.c | 53 ++++++++++++++++++++++++++--------------------- 4 files changed, 95 insertions(+), 47 deletions(-) commit 9f2de31542f1ac38a15117f90ee6b8449951d86e Author: Arnaldo Carvalho de Melo Date: Mon Jun 1 12:01:02 2015 -0300 perf machine: Fix up some more method names Calling the function 'machine__new_module' implies a new 'module' will be allocated, when in fact what is returned is a 'struct map' instance, that not necessarily will be instantiated, as if one already exists with the given module name, it will be returned instead. So be consistent with other "find and if not there, create" like functions, like machine__findnew_thread, machine__findnew_dso, etc, and rename it to machine__findnew_module_map(), that in turn will call machine__findnew_module_dso(). Cc: Adrian Hunter Cc: David Ahern Cc: Jiri Olsa Cc: Namhyung Kim Link: http://lkml.kernel.org/n/tip-acv830vd3hwww2ih5vjtbmu3@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/machine.c | 18 +++++++++--------- tools/perf/util/machine.h | 4 ++-- tools/perf/util/probe-event.c | 2 +- tools/perf/util/symbol.c | 2 +- 4 files changed, 13 insertions(+), 13 deletions(-) commit 457ae94ae047330e75c13f28ead6de31eab245ed Author: He Kuang Date: Thu May 28 13:17:30 2015 +0000 perf record: Fix perf.data size in no-buildid mode The size of perf.data is missing update in no-buildid mode, which gives wrong output result. Before this patch: $ perf.perf record -B -e syscalls:sys_enter_open uname Linux [ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 0.000 MB perf.data ] After this patch: $ perf.perf record -B -e syscalls:sys_enter_open uname Linux [ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 0.001 MB perf.data ] Signed-off-by: He Kuang Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Wang Nan Link: http://lkml.kernel.org/r/1432819050-30511-1-git-send-email-hekuang@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-record.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 38e096249b4fca1a26ca8908ea2018a5faf366e2 Author: He Kuang Date: Thu May 28 13:28:55 2015 +0000 tools lib traceevent: Ignore libtrace-dynamic-list file The libtrace-dynamic-list file is used to export symbols used by traceevent plugins. Signed-off-by: He Kuang Cc: Jiri Olsa Cc: Peter Zijlstra Cc: Wang Nan Link: http://lkml.kernel.org/r/1432819735-35040-2-git-send-email-hekuang@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/lib/traceevent/.gitignore | 1 + 1 file changed, 1 insertion(+) commit e3d09ec8126fe2c9a3ade661e2126e215ca27a80 Author: He Kuang Date: Thu May 28 13:28:54 2015 +0000 tools lib traceevent: Export dynamic symbols used by traceevent plugins Traceevent plugins need dynamic symbols exported from libtraceevent.a, otherwise a dlopen error will occur during plugins loading. This patch uses dynamic-list-file to export dynamic symbols which will be used in plugins to perf executable. The problem is covered up if feature-libpython is enabled, because PYTHON_EMBED_LDOPTS contains '-Xlinker --export-dynamic' which adds all symbols to the dynamic symbol table. So we should reproduce the problem by setting NO_LIBPYTHON=1. Before this patch: (Prepare plugins) $ ls /root/.traceevent/plugins/ plugin_sched_switch.so plugin_function.so ... $ perf record -e 'ftrace:function' ls $ perf script Warning: could not load plugin '/mnt/data/root/.traceevent/plugins/plugin_sched_switch.so' /root/.traceevent/plugins/plugin_sched_switch.so: undefined symbol: pevent_unregister_event_handler Warning: could not load plugin '/root/.traceevent/plugins/plugin_function.so' /root/.traceevent/plugins/plugin_function.so: undefined symbol: warning ... :1049 1049 [000] 9666.754487: ftrace:function: ffffffff8118bc50 <-- ffffffff8118c5b3 :1049 1049 [000] 9666.754487: ftrace:function: ffffffff818e2440 <-- ffffffff8118bc75 :1049 1049 [000] 9666.754487: ftrace:function: ffffffff8106eee0 <-- ffffffff811212e2 After this patch: $ perf record -e 'ftrace:function' ls $ perf script :1049 1049 [000] 9666.754487: ftrace:function: __set_task_comm :1049 1049 [000] 9666.754487: ftrace:function: _raw_spin_lock :1049 1049 [000] 9666.754487: ftrace:function: task_tgid_nr_ns ... Signed-off-by: He Kuang Acked-by: Jiri Olsa Cc: Peter Zijlstra Cc: Wang Nan Link: http://lkml.kernel.org/r/1432819735-35040-1-git-send-email-hekuang@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/lib/traceevent/Makefile | 14 +++++++++++++- tools/perf/Makefile.perf | 14 ++++++++++++-- 2 files changed, 25 insertions(+), 3 deletions(-) commit f87027b9689d591ec22720944563a2d43ec835c4 Author: Jiri Olsa Date: Wed Jun 3 16:25:59 2015 +0200 perf stat: Move shadow stat counters into separate object Separating shadow counters code into separate object as a cleanup, but mainly for upcomming changes, so could use it from script command context. Signed-off-by: Jiri Olsa Cc: Andi Kleen Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1433341559-31848-10-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 444 +----------------------------------------- tools/perf/util/Build | 1 + tools/perf/util/stat-shadow.c | 434 +++++++++++++++++++++++++++++++++++++++++ tools/perf/util/stat.h | 16 ++ 4 files changed, 455 insertions(+), 440 deletions(-) commit 7a23f57c89cec0e6d3189d420d992902d4465ff4 Author: Jiri Olsa Date: Wed Jun 3 16:25:58 2015 +0200 perf stat: Add aggr_mode argument to print_shadow_stats function As preparation for moving shadow counters code into its own object. Signed-off-by: Jiri Olsa Cc: Andi Kleen Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1433341559-31848-9-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 4d982740cd598bdd876d9a396cc919724af32bc9 Author: Jiri Olsa Date: Wed Jun 3 16:25:57 2015 +0200 perf stat: Add output file argument to print_shadow_stats function As preparation for moving shadow counters code into its own object. Signed-off-by: Jiri Olsa Cc: Andi Kleen Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1433341559-31848-8-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 112 +++++++++++++++++++++++----------------------- 1 file changed, 56 insertions(+), 56 deletions(-) commit 556b1fb7f9c1a9fd43ea4dacd5d14ec39ac6296a Author: Jiri Olsa Date: Wed Jun 3 16:25:56 2015 +0200 perf stat: Introduce print_shadow_stats function Move shadow counters display code into separate function as preparation for moving it into its own object. Signed-off-by: Jiri Olsa Cc: Andi Kleen Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1433341559-31848-7-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 72 +++++++++++++++++++++++++---------------------- 1 file changed, 39 insertions(+), 33 deletions(-) commit 1eda3b2144391e1ec9e1870bb32d5216ac7b384c Author: Jiri Olsa Date: Wed Jun 3 16:25:55 2015 +0200 perf stat: Introduce reset_shadow_stats function Move shadow counters reset code into separate function as preparation for moving it into its own object. Signed-off-by: Jiri Olsa Cc: Andi Kleen Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1433341559-31848-6-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) commit 3e99e2f5e78e601591dbcf777c67a84aa9ea2ae5 Author: Jiri Olsa Date: Wed Jun 3 16:25:54 2015 +0200 perf stat: Remove transaction_run from shadow update/print code It's no longer needed, because we use nameid to recognize transaction events. Keeping it only in stat code to initialize transaction events. I.e. struct perf_stat::id, accessible via evsel->priv, will be only set for transaction related events. Signed-off-by: Jiri Olsa Cc: Andi Kleen Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1433341559-31848-5-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit a454742c1252d6242e00b5f4f6f9e5fbce3859d7 Author: Jiri Olsa Date: Wed Jun 3 16:25:53 2015 +0200 perf stat: Remove setup_events function We can use already existing parse_events interface. Both transaction_attrs and transaction_limited_attrs are changed to be single strings. Signed-off-by: Jiri Olsa Cc: Andi Kleen Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1433341559-31848-4-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 27 +++++++-------------------- 1 file changed, 7 insertions(+), 20 deletions(-) commit 4c358d5cf36192f22b8d331779cb92e3ede9cddf Author: Jiri Olsa Date: Wed Jun 3 16:25:52 2015 +0200 perf stat: Replace transaction event possition check with id check Using perf_stat::id to check for transaction events, instead of current position based way. Signed-off-by: Jiri Olsa Cc: Andi Kleen Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1433341559-31848-3-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 55 ++++++----------------------------------------- tools/perf/util/stat.c | 6 +++++- tools/perf/util/stat.h | 4 ++++ 3 files changed, 16 insertions(+), 49 deletions(-) commit e2f56da1d6670070f6f55d43007cb7b03ee04c2f Author: Jiri Olsa Date: Thu Jun 4 15:50:55 2015 +0200 perf stat: Add id into perf_stat struct We need fast way to identify evsel as transaction event for shadow counters computation. Currently we are using possition (in evlist) based way. Adding 'id' into 'struct perf_stat' so it can carry transaction event ID and we can use it for shadow counters computations. Signed-off-by: Jiri Olsa Tested-by: Arnaldo Carvalho de Melo Cc: Andi Kleen Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/20150604135055.GB23625@krava.redhat.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 6 ++---- tools/perf/util/stat.c | 31 ++++++++++++++++++++++++++++++- tools/perf/util/stat.h | 20 ++++++++++++++++++++ 3 files changed, 52 insertions(+), 5 deletions(-) commit c58d6d1b6652b0a8db4aef7e93fb21ee869b5387 Author: Vincent Abriou Date: Thu Jun 4 13:59:02 2015 +0200 drm/sti: vtg fix CEA-861E video format timing error HDMI analyzer tests showed that Vsync and Hsync signal were not compliant with the HDMI protocol. HDMI_DELAY should be taken into account in the VTG Vsync programming to reflect the 6 pixels shift introduced in the VTG Hsync programming. Signed-off-by: Vincent Abriou drivers/gpu/drm/sti/sti_vtg.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 8661532a6cf841fdab20d7e1868e6fd99a226d32 Author: Vincent Abriou Date: Fri Jun 5 10:24:43 2015 +0200 drm/sti: hdmi fix CEA-861E video format timing error HDMI analyzer tests showed that Vsync and Hsync signal were not compliant with the HDMI protocol. The first active pixel of a line is defined by HDMI_ACTIVE_VID_XMIN. The last active pixel of a line is defined by HDMI_ACTIVE_VID_XMAX. Signed-off-by: Vincent Abriou drivers/gpu/drm/sti/sti_hdmi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 8b0a99ce9a12a49c96dd06d13141277220bf800c Author: Vincent Abriou Date: Thu Jun 4 10:42:22 2015 +0200 drm/sti: VTG interrupt names are badly displayed VTG interrupt names are badly displayed using "cat /proc/interrupts". Simply use the VTG device name while registering the VTG interrupts to fix it. Signed-off-by: Vincent Abriou drivers/gpu/drm/sti/sti_vtg.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit 8eba270311dd752bde7326dcf9f89e46feb3faa8 Author: Vincent Abriou Date: Fri Jun 5 11:47:49 2015 +0200 drm/sti: missing first pixel column on HDMI display VTG programing updated to fix the shift of one column observed on HDMI display. Signed-off-by: Vincent Abriou drivers/gpu/drm/sti/sti_vtg.c | 42 ++++++++++++++++++++++++++++++++---------- 1 file changed, 32 insertions(+), 10 deletions(-) commit d3c8a0b2becf1015f502bf4b0f50fe18e0ed8a93 Author: Wei Yongjun Date: Mon Jun 8 15:25:52 2015 +0200 drm/sti: correctly test devm_ioremap() return In case of error, the function devm_ioremap_nocache() returns NULL not ERR_PTR(). The IS_ERR() test in the return value check should be replaced with NULL test. Signed-off-by: Wei Yongjun drivers/gpu/drm/sti/sti_dvo.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 01d72a95188880b22190e937ed8718ed4b45bdce Author: Bjorn Helgaas Date: Thu Jun 4 16:38:17 2015 -0500 PCI: Remove unused pci_dma_burst_advice() pci_dma_burst_advice() was added by e24c2d963a60 ("[PATCH] PCI: DMA bursting advice") but apparently never used. Remove it. Signed-off-by: Bjorn Helgaas Acked-by: Michal Simek # microblaze CC: David S. Miller arch/alpha/include/asm/pci.h | 16 ---------------- arch/arm/include/asm/pci.h | 10 ---------- arch/frv/include/asm/pci.h | 10 ---------- arch/ia64/include/asm/pci.h | 19 ------------------- arch/microblaze/include/asm/pci.h | 10 ---------- arch/mips/include/asm/pci.h | 10 ---------- arch/parisc/include/asm/pci.h | 19 ------------------- arch/powerpc/include/asm/pci.h | 30 ------------------------------ arch/sh/include/asm/pci.h | 18 ------------------ arch/sparc/include/asm/pci_32.h | 10 ---------- arch/sparc/include/asm/pci_64.h | 19 ------------------- arch/unicore32/include/asm/pci.h | 10 ---------- arch/x86/include/asm/pci.h | 7 ------- drivers/net/ethernet/sun/cassini.c | 1 - include/linux/pci.h | 11 ----------- 15 files changed, 200 deletions(-) commit d59d36a7fce6707acae644621320a75ab93f1856 Author: Bjorn Helgaas Date: Thu Jun 4 16:38:08 2015 -0500 PCI: Remove unused pcibios_select_root() (again) a6c140969b46 ("Delete pcibios_select_root") removed pcibios_select_root(). But a7db50405216 ("PCI: remove pcibios_scan_all_fns()") added a few copies back, probably with some incorrect merge conflict resolutions. Remove the still-unused pcibios_select_root() definitions. Signed-off-by: Bjorn Helgaas arch/ia64/include/asm/pci.h | 13 ------------- arch/microblaze/include/asm/pci.h | 13 ------------- arch/mn10300/include/asm/pci.h | 13 ------------- include/asm-generic/pci.h | 13 ------------- 4 files changed, 52 deletions(-) commit 633adc711de0bcb6d6e1c071302880e0c8c05d57 Author: Bjorn Helgaas Date: Thu Jun 4 16:37:56 2015 -0500 PCI: Remove unnecessary #includes of In include/linux/pci.h, we already #include , so we don't need to include directly. Remove the unnecessary includes. All the files here already include . Signed-off-by: Bjorn Helgaas Acked-by: Simon Horman # sh Acked-by: Ralf Baechle arch/alpha/kernel/core_irongate.c | 1 - arch/alpha/kernel/sys_eiger.c | 1 - arch/alpha/kernel/sys_nautilus.c | 1 - arch/mips/pci/fixup-cobalt.c | 1 - arch/mips/pci/ops-mace.c | 1 - arch/mips/pci/pci-lantiq.c | 1 - arch/powerpc/kernel/prom.c | 1 - arch/powerpc/kernel/prom_init.c | 1 - arch/sh/drivers/pci/ops-sh5.c | 1 - arch/sh/drivers/pci/pci-sh5.c | 1 - arch/x86/kernel/x86_init.c | 1 - 11 files changed, 11 deletions(-) commit cd11433eda42815ab53c8be44580a0009000b761 Author: Bjorn Helgaas Date: Thu Jun 4 16:37:34 2015 -0500 PCI: Include , not We already include from , so just include directly. Signed-off-by: Bjorn Helgaas CC: linuxppc-dev@lists.ozlabs.org CC: linux-s390@vger.kernel.org arch/powerpc/platforms/52xx/mpc52xx_pci.c | 2 +- arch/s390/kernel/suspend.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 2eeac871697ac24a77b6d7953bd711b490e83ac7 Author: Aleksei Volkov Date: Mon Jun 8 12:02:10 2015 +0300 Bluetooth: btusb: Correct typo in Roper Class 1 Bluetooth Dongle That patch corrects the typo in usb vendor id for Roper Class 1 Bluetooth Dongle. Problem with typo is present since 4.0 kernel. Content /sys/kernel/debug/usb/devices for these dongle: T: Bus=05 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=12 MxCh= 0 D: Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs= 1 P: Vendor=1310 ProdID=0001 Rev=15.00 S: Manufacturer=SiW S: Product=SiW S: SerialNumber=E7BB050D0B00 C:* #Ifs= 2 Cfg#= 1 Atr=a0 MxPwr= 50mA I:* If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=81(I) Atr=03(Int.) MxPS= 16 Ivl=1ms E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms I:* If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 0 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 0 Ivl=1ms I: If#= 1 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 9 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 9 Ivl=1ms I: If#= 1 Alt= 2 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 17 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 17 Ivl=1ms I: If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 25 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 25 Ivl=1ms I: If#= 1 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 33 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 33 Ivl=1ms I: If#= 1 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 49 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 49 Ivl=1ms Signed-off-by: Aleksei Volkov Signed-off-by: Marcel Holtmann Cc: stable@vger.kernel.org # 4.0.x drivers/bluetooth/btusb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 49280625eb826ab07882e91fb84023a54317317f Author: Rafał Miłecki Date: Sun Jun 7 13:15:31 2015 +0200 bcma: lower dependency of BCMA_DRIVER_PCI_HOSTMODE This extension of BCMA_DRIVER_PCI has no reason to depend on BCMA_HOST_PCI. User may just want to have PCI device attached to SoC registered without enabling any extra client mode code. This can be useful when having non-bcma PCI device attached or when using other PCI driver. Signed-off-by: Rafał Miłecki Signed-off-by: Kalle Valo drivers/bcma/Kconfig | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit a8077d6573530a91d5674a28cdedbed39c391ff0 Author: Rafał Miłecki Date: Sun Jun 7 13:15:30 2015 +0200 bcma: make calls to PCI hostmode functions config-safe Signed-off-by: Rafał Miłecki Signed-off-by: Kalle Valo include/linux/bcma/bcma_driver_pci.h | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 90f91b129810c3f169e443252be30ed7c0130326 Author: Rafał Miłecki Date: Sat Jun 6 22:45:59 2015 +0200 b43: fix support for 14e4:4321 PCI dev with BCM4321 chipset It seems Broadcom released two devices with conflicting device id. There are for sure 14e4:4321 PCI devices with BCM4321 (N-PHY) chipset, they can be found in routers, e.g. Netgear WNR834Bv2. However, according to Broadcom public sources 0x4321 is also used for 5 GHz BCM4306 (G-PHY). It's unsure if they meant PCI device id, or "virtual" id (from SPROM). To distinguish these devices lets check PHY type (G vs. N). Signed-off-by: Rafał Miłecki Cc: # 3.16+ Signed-off-by: Kalle Valo drivers/net/wireless/b43/main.c | 4 ++++ 1 file changed, 4 insertions(+) commit 11f09d4b7521554613d61b61a0202a535c081bb8 Author: Rafał Miłecki Date: Thu Jun 4 22:11:07 2015 +0200 brcmfmac: use direct data pointer in NVRAM parser struct As we plan to add support for platform NVRAM we should store direct data pointer without the extra struct firmware layer. This will allow us to support other sources with the only requirement being u8 buffer. Signed-off-by: Rafał Miłecki Acked-by: Arend van Spriel Signed-off-by: Kalle Valo drivers/net/wireless/brcm80211/brcmfmac/firmware.c | 40 +++++++++++----------- 1 file changed, 20 insertions(+), 20 deletions(-) commit 2dea58f62964f80883c8de80c0b5df8dbce0b278 Author: Jakub Kicinski Date: Tue Jun 2 21:11:28 2015 +0200 mt7601u: set promiscous mode based on FIF_OTHER_BSS Most drivers use FIF_OTHER_BSS to set promiscous mode. Let us follow their lead even though it doesn't match exactly the HW filter flags. Signed-off-by: Jakub Kicinski Signed-off-by: Kalle Valo drivers/net/wireless/mediatek/mt7601u/main.c | 1 + 1 file changed, 1 insertion(+) commit 9a15b57e9a2c591a812d979fa3f4f1a763533636 Author: Jakub Kicinski Date: Tue Jun 2 21:11:27 2015 +0200 mt7601u: don't cleanup device second time after .resume() Make sure .disconnect() doesn't cleanup the device if .resume() failed. This may happen when device is removed during suspend. Signed-off-by: Jakub Kicinski Signed-off-by: Kalle Valo drivers/net/wireless/mediatek/mt7601u/init.c | 3 +++ drivers/net/wireless/mediatek/mt7601u/usb.c | 9 ++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) commit 2af6d21fce9990630d2adfda5a329706aa9e3571 Author: Jakub Kicinski Date: Tue Jun 2 21:11:26 2015 +0200 mt7601u: watch out for invalid-length frames Users of older Ralink devices report that received frames sometimes have zero length. Watch out for that. Signed-off-by: Jakub Kicinski Signed-off-by: Kalle Valo drivers/net/wireless/mediatek/mt7601u/dma.c | 14 ++++++++++++-- drivers/net/wireless/mediatek/mt7601u/mac.c | 8 ++++++-- 2 files changed, 18 insertions(+), 4 deletions(-) commit 69647fab13a5cbc305b50305fdd7dd4114c0e8db Author: Jakub Kicinski Date: Tue Jun 2 21:11:25 2015 +0200 mt7601u: unify paged and non-paged RX dma paths Signed-off-by: Jakub Kicinski Signed-off-by: Kalle Valo drivers/net/wireless/mediatek/mt7601u/dma.c | 62 ++++++----------------------- 1 file changed, 12 insertions(+), 50 deletions(-) commit 6896f4fb5a34583b712e5c86777687772c5eeb5d Author: Rafał Miłecki Date: Sun May 31 02:52:26 2015 +0200 brcmfmac: set wiphy perm_addr to hardware MAC address This allows e.g. user space to use /sys/class/ieee80211/*/macaddress Signed-off-by: Rafał Miłecki Signed-off-by: Kalle Valo drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c | 1 + 1 file changed, 1 insertion(+) commit f33d591539bd07ec9cdb8c44b0075fb0423d0329 Author: Rafał Miłecki Date: Thu May 28 14:19:21 2015 +0200 brcmfmac: support NVRAMs containing pci devpaths (instead of pcie) Recently Broadcom added support for NVRAMs with entries for multiple PCIe devices. One of the supported formats is based on prefixes defined like: devpath0=pcie/1/4/ and entries like 0:foo=bar 0:baz=qux etc. Unfortunately there are also a bit older devices using different way of defining prefixes, e.g. SmartRG SR400ac (2 x BCM43602) with entries: devpath0=pci/1/1/ devpath1=pci/2/1 Broadcom stated this old format will never be used/supported by brcmfmac but given the simplicity of this patch I'll insist on supporting it. Signed-off-by: Rafał Miłecki Signed-off-by: Kalle Valo drivers/net/wireless/brcm80211/brcmfmac/firmware.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit e5489d5e9031e34d50f03e3d132f392314e74cf1 Author: Michal Suchanek Date: Wed Jun 3 21:26:41 2015 +0000 dmaengine: pl330: fix wording in mcbufsz message The kernel is not trying to increase mcbufsz. It suggests you should try doing so. Also print the calculated required size of mcbufsz. Signed-off-by: Michal Suchanek Reviewed-by: Krzysztof Kozlowski Signed-off-by: Vinod Koul drivers/dma/pl330.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 7cd84d7209e54b7c6a95572ce09af15126dcacaf Author: Marcel Holtmann Date: Sun Jun 7 10:01:02 2015 +0200 Bluetooth: btusb: Remove unneeded btusb_read_local_version function The btusb_read_local_version function has only a single user and with that just move its functionality in place where it belongs. Signed-off-by: Marcel Holtmann Signed-off-by: Johan Hedberg drivers/bluetooth/btusb.c | 38 +++++++++++++------------------------- 1 file changed, 13 insertions(+), 25 deletions(-) commit 9641d3435f76dfa9255974acebc64d5794889e77 Author: Marcel Holtmann Date: Sun Jun 7 10:01:01 2015 +0200 Bluetooth: btusb: Remove double error check from local version command The __hci_cmd_sync function already handles the command status and command complete errors. No need to check the status field again. Signed-off-by: Marcel Holtmann Signed-off-by: Johan Hedberg drivers/bluetooth/btusb.c | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) commit 3846c15820a1841225d0245afda4875af23dfbbe Author: Peter Jones Date: Fri Jun 5 15:14:54 2015 -0400 efi: Work around ia64 build problem with ESRT driver So, I'm told this problem exists in the world: > Subject: Build error in -next due to 'efi: Add esrt support' > > Building ia64:defconfig ... failed > -------------- > Error log: > > drivers/firmware/efi/esrt.c:28:31: fatal error: asm/early_ioremap.h: No such file or directory > I'm not really sure how it's okay that we have things in asm-generic on some platforms but not others - is having it the same everywhere not the whole point of asm-generic? That said, ia64 doesn't have early_ioremap.h . So instead, since it's difficult to imagine new IA64 machines with UEFI 2.5, just don't build this code there. To me this looks like a workaround - doing something like: generic-y += early_ioremap.h in arch/ia64/include/asm/Kbuild would appear to be more correct, but ia64 has its own early_memremap() decl in arch/ia64/include/asm/io.h , and it's a macro. So adding the above /and/ requiring that asm/io.h be included /after/ asm/early_ioremap.h in all cases would fix it, but that's pretty ugly as well. Since I'm not going to spend the rest of my life rectifying ia64 headers vs "generic" headers that aren't generic, it's much simpler to just not build there. Note that I've only actually tried to build this patch on x86_64, but esrt.o still gets built there, and that would seem to demonstrate that the conditional building is working correctly at all the places the code built before. I no longer have any ia64 machines handy to test that the exclusion actually works there. Signed-off-by: Peter Jones Acked-by: Tony Luck Reviewed-by: Guenter Roeck (Compile-)Tested-by: Guenter Roeck Signed-off-by: Matt Fleming drivers/firmware/efi/Kconfig | 5 +++++ drivers/firmware/efi/Makefile | 3 ++- include/linux/efi.h | 4 ++++ 3 files changed, 11 insertions(+), 1 deletion(-) commit e1d5bbcdc7ca08d8731f5d780f0de342a768d96a Author: Tina Ruchandani Date: Tue May 19 11:38:09 2015 +0530 xen/pcifront: Remove usage of struct timeval struct timeval uses a 32-bit field for representing seconds, which will overflow in the year 2038 and beyond. Replace struct timeval with 64-bit ktime_t which is 2038 safe. This is part of a larger effort to remove instances of 32-bit timekeeping variables (timeval, time_t and timespec) from the kernel. Signed-off-by: Tina Ruchandani Suggested-by: Arnd Bergmann Reviewed-by: Boris Ostrovsky Reviewed-by: Arnd Bergmann Acked-by: Bjorn Helgaas Signed-off-by: David Vrabel drivers/pci/xen-pcifront.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit a966a4edf8d557a37446393439cd0db6612d4db8 Author: Aleksa Sarai Date: Sat Jun 6 10:02:15 2015 +1000 cgroup: replace explicit ss_mask checking with for_each_subsys_which Replace the explicit checking against ss_masks inside a for_each_subsys block with for_each_subsys_which(..., ss_mask), to take advantage of the more readable (and more efficient) macro. Signed-off-by: Aleksa Sarai kernel/cgroup.c | 44 ++++++++++++++++---------------------------- 1 file changed, 16 insertions(+), 28 deletions(-) commit cb4a316752709be4a644f070440a8be470d92b7d Author: Aleksa Sarai Date: Sat Jun 6 10:02:14 2015 +1000 cgroup: use bitmask to filter for_each_subsys Add a new macro for_each_subsys_which that allows all enabled cgroup subsystems to be filtered by a bitmask, such that mask & (1 << ssid) determines if the subsystem is to be processed in the loop body (where ssid is the unique id of the subsystem). Also replace the need_forkexit_callback with two separate bitmasks for each callback to make (ss->{fork,exit}) checks unnecessary. tj: add a short comment for "if (!CGROUP_SUBSYS_COUNT)". Signed-off-by: Aleksa Sarai include/linux/cgroup-defs.h | 2 ++ kernel/cgroup.c | 53 ++++++++++++++++++++++++++++----------------- 2 files changed, 35 insertions(+), 20 deletions(-) commit 39d94eaa76e774f7dc4f3f338bf576d850f2ba11 Author: Avinash Patil Date: Fri Jun 5 01:01:54 2015 +0530 mwifiex: update current config_band info in start_ap It was observed that AP beacons would not reflect correct regulatory information upon starting AP in A band. This was because of missing AP config band update in set_channel of start_ap. Signed-off-by: Avinash Patil Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/uap_cmd.c | 2 ++ 1 file changed, 2 insertions(+) commit 7a56c4168e4453732c35b1e33a683d91f04f379f Author: Zhaoyang Liu Date: Fri Jun 5 01:01:53 2015 +0530 mwifiex: change debug dump issue since skb maybe null This patch fixes semantic warning for debugging data dump feature. Previous code is based on the assumption that skb is not null. New change makes sure that we already have data buffer. Reported-by: Dan Carpenter Signed-off-by: Zhaoyang Liu Signed-off-by: Avinash Patil Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/cmdevt.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit ca7bdd95b26d1424e925f17eb546a491d93afd49 Author: Taehee Yoo Date: Thu Jun 4 09:47:42 2015 +0900 rtlwifi: rtl8192cu: Fix performance issue. After physical reconnect, the rtl8192cu chipset shows low transmission rates.It cause is that variable "iqk_initialized" do not de-initialized. So I add this code. Signed-off-by: Taehee Yoo Acked-by: Larry Finger Signed-off-by: Kalle Valo drivers/net/wireless/rtlwifi/rtl8192cu/hw.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit ec264a43029ff0754270864e5a93dcdaeea276d7 Author: Xinming Hu Date: Wed Jun 3 16:59:47 2015 +0530 mwifiex: do not decrease tx_pending for AMSDU packet once more Negative adapter->tx_pending is observed while running data traffic, because tx_pending is decreased once more for AMSDU packet. since tx_pending have been decreased for all the source MSDU packets, we don't need to update once more for AMSDU packet. Signed-off-by: Xinming Hu Signed-off-by: Cathy Luo Signed-off-by: Avinash Patil Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/txrx.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 719a25e33153bcfe842243710826f1426c7accfc Author: Xinming Hu Date: Wed Jun 3 16:59:46 2015 +0530 mwifiex: using right tid for addressing ra_list This patch fixes issue with the accessing correct ra_list by downgrading corresponding tid number. Alternatively, ra lists are created in mwifiex_wmm_add_buf_txqueue using downgraded tid number. Signed-off-by: Xinming Hu Signed-off-by: Cathy Luo Signed-off-by: Avinash Patil Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/11n.c | 11 ++++++++--- drivers/net/wireless/mwifiex/11n_rxreorder.c | 5 ++++- 2 files changed, 12 insertions(+), 4 deletions(-) commit debfc6008169f324721372e5f6917852ac78291a Author: Avinash Patil Date: Wed Jun 3 16:59:45 2015 +0530 mwifiex: update AP WMM settings from BSS_START event This was missing and would cause issue in WMM handling. Signed-off-by: Avinash Patil Signed-off-by: Cathy Luo Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/uap_event.c | 63 ++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) commit c2b6680f63ff472921e58edd84338aa8e911561f Author: Avinash Patil Date: Wed Jun 3 16:59:44 2015 +0530 mwifiex: advertise PS ON by default support to cfg80211 This would enable driver to enter powersave as soon as connected. Signed-off-by: Avinash Patil Signed-off-by: Cathy Luo Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/cfg80211.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 3e6f8a4b955f260c699d518486494faaad3160c2 Author: Avinash Patil Date: Wed Jun 3 16:59:43 2015 +0530 mwifiex: drop block-ack action frames We often see ADDBA request packets coming to driver because driver has registered for action frame subtype. We dont process BA action frames in host; drop such frames. Signed-off-by: Avinash Patil Signed-off-by: Xinmin Hu Signed-off-by: Cathy Luo Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/util.c | 43 +++++++++++++++++++++++++------------ 1 file changed, 29 insertions(+), 14 deletions(-) commit e4f59aca0b6317cfd567f5050938fb95992109dd Author: Avinash Patil Date: Wed Jun 3 16:59:42 2015 +0530 mwifiex: support downloading IEs from tail Earlier only RSN, WPA and channel switch IEs from tail buffer would be downloaded to FW. This patch adds support for downloading more IEs from tail buffer. Signed-off-by: Avinash Patil Signed-off-by: Cathy Luo Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/ie.c | 102 ++++++++++++++++++++++---------------- 1 file changed, 60 insertions(+), 42 deletions(-) commit 8a73dd6398896caaa3f1260de8294be7492fbc7b Author: Avinash Patil Date: Wed Jun 3 16:59:41 2015 +0530 mwifiex: parse power constraint IE from Tail This patch adds support to parse power constraint IEs from Tail buffer. This power constraint is then set to FW during bss_config download. Signed-off-by: Avinash Patil Signed-off-by: Cathy Luo Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/cfg80211.c | 3 +++ drivers/net/wireless/mwifiex/fw.h | 6 ++++++ drivers/net/wireless/mwifiex/ioctl.h | 1 + drivers/net/wireless/mwifiex/main.h | 3 +++ drivers/net/wireless/mwifiex/uap_cmd.c | 27 +++++++++++++++++++++++++++ 5 files changed, 40 insertions(+) commit 8baca1a34d4c355cbb7fb2f4a4c427a70146580c Author: Xinming Hu Date: Wed Jun 3 16:59:40 2015 +0530 mwifiex: dump station support in uap mode This patch extend cfg80211 dump_station handler, support for dump stations associated to mwifiex micro AP. Signed-off-by: Xinming Hu Signed-off-by: Avinash Patil Signed-off-by: Cathy Luo Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/cfg80211.c | 51 +++++++++++++++++++++++++++++---- 1 file changed, 46 insertions(+), 5 deletions(-) commit b21783e94e20a639186eaf491ccd392b85cafae7 Author: Xinming Hu Date: Wed Jun 3 16:59:39 2015 +0530 mwifiex: add sta_list firmware command This patch add sta_list firmware command, which can be used to get power status and rssi for the stations associated to mwifiex micro AP. Signed-off-by: Xinming Hu Signed-off-by: Avinash Patil Signed-off-by: Cathy Luo Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/cmdevt.c | 1 + drivers/net/wireless/mwifiex/fw.h | 14 ++++++++++++++ drivers/net/wireless/mwifiex/sta_cmdresp.c | 24 ++++++++++++++++++++++++ drivers/net/wireless/mwifiex/uap_cmd.c | 1 + 4 files changed, 40 insertions(+) commit 442f6f9b49c88482b82790eee23fa330e1faf9f6 Author: Xinming Hu Date: Wed Jun 3 16:59:38 2015 +0530 mwifiex: maintain station statistic in uap mode This patch maintain statistic information for the stations associated to the mwifiex micro AP, include tx/rx bytes/packets, signal strength, tx bitrate. Signed-off-by: Xinming Hu Signed-off-by: Avinash Patil Signed-off-by: Cathy Luo Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/fw.h | 7 ++++++- drivers/net/wireless/mwifiex/main.h | 13 +++++++++++++ drivers/net/wireless/mwifiex/txrx.c | 13 +++++++++++-- drivers/net/wireless/mwifiex/uap_txrx.c | 18 +++++++++++++++++- drivers/net/wireless/mwifiex/util.c | 13 +++++++++++++ 5 files changed, 60 insertions(+), 4 deletions(-) commit 7ee38bf4edeac83833cd25b26cda98ff7588359f Author: Xinming Hu Date: Wed Jun 3 16:59:37 2015 +0530 mwifiex: add cfg80211 get_channel handler This patch add cfg80211 get_channel handler for mwifiex. The handler will be used to report current channel to upper layer utility. Signed-off-by: Xinming Hu Signed-off-by: Cathy Luo Signed-off-by: Avinash Patil Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/11h.c | 2 +- drivers/net/wireless/mwifiex/cfg80211.c | 58 ++++++++++++++++++++++++++++++++- drivers/net/wireless/mwifiex/main.h | 5 ++- drivers/net/wireless/mwifiex/uap_cmd.c | 5 ++- 4 files changed, 66 insertions(+), 4 deletions(-) commit 511c8989fe5a280d9cc2140b4bce24a12debd39a Author: Avinash Patil Date: Wed Jun 3 16:59:36 2015 +0530 mwifiex: disable CAC upon radar detection event This patch adds support to disable ongoing CAC in FW upon detecting radar during CAC period. Signed-off-by: Avinash Patil Signed-off-by: Cathy Luo Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/11h.c | 30 ++++++++++++++++++++++++++---- drivers/net/wireless/mwifiex/main.h | 2 ++ 2 files changed, 28 insertions(+), 4 deletions(-) commit 7b7166256d277080a11c0fcee8d8b884f54edd84 Author: Avinash Patil Date: Wed Jun 3 16:59:35 2015 +0530 mwifiex: reset 11h active flag when chandef does not require dfs This patch fixes an issue where we were still setting 11h_active flag to true for channel defs where DFS is not required. Signed-off-by: Avinash Patil Signed-off-by: Cathy Luo Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/cfg80211.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 88af6f053ad8c18e250165ba8b8e14b6fe4a1813 Author: Avinash Patil Date: Wed Jun 3 16:59:34 2015 +0530 mwifiex: enable 11d after bss reset BSS reset would reset all state information in FW. Issue 11d config command after reset to enabled 11d in FW. Signed-off-by: Avinash Patil Signed-off-by: Cathy Luo Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/uap_cmd.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit ed5cfbe6ba2755d5657e62e204ec194e0df9b41e Author: Avinash Patil Date: Wed Jun 3 16:59:33 2015 +0530 mwifiex: support AP reset after bss_stop This would enable clearing of FW bss data structures when AP operations are stopped. Signed-off-by: Avinash Patil Signed-off-by: Cathy Luo Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/cfg80211.c | 7 +++++++ drivers/net/wireless/mwifiex/cmdevt.c | 1 + drivers/net/wireless/mwifiex/fw.h | 1 + drivers/net/wireless/mwifiex/sta_cmdresp.c | 2 ++ drivers/net/wireless/mwifiex/uap_cmd.c | 10 ++++++++-- 5 files changed, 19 insertions(+), 2 deletions(-) commit c951a6671340697c1a0fb22d1310861af979fe53 Author: Avinash Patil Date: Wed Jun 3 16:59:32 2015 +0530 mwifiex: correct bss_type assignment Correct bss_type assignment in add_virtual_interface. This would ensure correct operation in multiple station scenarios. Signed-off-by: Avinash Patil Signed-off-by: Cathy Luo Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/cfg80211.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 12d111097428441905da4d9616406cbb7be3c4ff Author: Avinash Patil Date: Wed Jun 3 16:59:31 2015 +0530 mwifiex: verbose logging for association failure messages This patch adds more detailed information about association failures - reason and states. Signed-off-by: Avinash Patil Signed-off-by: Cathy Luo Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/fw.h | 15 +++++++++++++-- drivers/net/wireless/mwifiex/join.c | 30 +++++++++++++++++++++++++++--- 2 files changed, 40 insertions(+), 5 deletions(-) commit 300f77c08ded96d33f492aaa02549103852f0c12 Author: Felix Fietkau Date: Tue Jun 2 10:38:32 2015 +0200 ath9k: fix DMA stop sequence for AR9003+ AR93xx and newer needs to stop rx before tx to avoid getting the DMA engine or MAC into a stuck state. This should reduce/fix the occurence of "Failed to stop Tx DMA" logspam. Cc: stable@vger.kernel.org Signed-off-by: Felix Fietkau Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/main.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) commit f2a800f5be75b0cc9cb436608d96b2703536480a Author: Julia Lawall Date: Thu May 28 23:02:20 2015 +0200 wl1251: drop unneeded goto Delete jump to a label on the next line, when that label is not used elsewhere. A simplified version of the semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @r@ identifier l; @@ -if (...) goto l; -l: // Signed-off-by: Julia Lawall Signed-off-by: Kalle Valo drivers/net/wireless/ti/wl1251/acx.c | 3 --- 1 file changed, 3 deletions(-) commit ecffc80478cdce122f0ecb6a4e4f909132dd5c47 Author: Marcel Holtmann Date: Sun Jun 7 09:42:19 2015 +0200 Bluetooth: btusb: Fix memory leak in Intel setup routine The SKB returned from the Intel specific version information command is missing a kfree_skb. Signed-off-by: Marcel Holtmann Signed-off-by: Johan Hedberg Cc: stable@vger.kernel.org drivers/bluetooth/btusb.c | 2 ++ 1 file changed, 2 insertions(+) commit 781f899f2f9d8b71e35225a087f90052059486c5 Author: Marcel Holtmann Date: Sat Jun 6 06:06:49 2015 +0200 Bluetooth: Fix race condition with user channel and setup stage During the initial setup stage of a controller, the low-level transport is actually active. This means that HCI_UP is true. To avoid toggling the transport off and back on again for normal operation the kernel holds a grace period with HCI_AUTO_OFF that will turn the low-level transport off in case no user is present. The idea of the grace period is important to avoid having to initialize all of the controller twice. So legacy ioctl and the new management interface knows how to clear this grace period and then start normal operation. For the user channel operation this grace period has not been taken into account which results in the problem that HCI_UP and HCI_AUTO_OFF are set and the kernel will return EBUSY. However from a system point of view the controller is ready to be grabbed by either the ioctl, the management interface or the user channel. This patch brings the user channel to the same level as the other two entries for operating a controller. Signed-off-by: Marcel Holtmann Signed-off-by: Johan Hedberg Cc: stable@vger.kernel.org net/bluetooth/hci_sock.c | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) commit c4fa9a6ae285ec4777d0524a4ee9c9039a5a4c28 Author: Bjorn Helgaas Date: Thu Jun 4 16:49:43 2015 -0500 microblaze/PCI: Remove unnecessary struct pci_dev declaration All users of arch/microblaze/include/asm/pci.h get it by including include/linux/pci.h, which in turn includes after it declares struct pci_dev. The forward declaration here is unnecessary, so remove it. Signed-off-by: Bjorn Helgaas CC: Michal Simek Signed-off-by: Michal Simek arch/microblaze/include/asm/pci.h | 2 -- 1 file changed, 2 deletions(-) commit 99fdc6b9bd022ab5fb0f2e45f11a5a53697221fb Author: Bjorn Helgaas Date: Thu Jun 4 16:49:36 2015 -0500 microblaze/PCI: Remove unnecessary pci_bus_find_capability() declaration pci_bus_find_capability() is declared in include/linux/pci.h. Remove the pci_bus_find_capability() declaration from arch/microblaze/include/asm/pci.h. Signed-off-by: Bjorn Helgaas CC: Michal Simek Signed-off-by: Michal Simek arch/microblaze/include/asm/pci.h | 3 --- 1 file changed, 3 deletions(-) commit de093d3ea1938cc1d1b4c28e3b88b085a110154b Author: Bjorn Helgaas Date: Thu Jun 4 16:49:29 2015 -0500 microblaze/PCI: Remove unused declarations The following declarations were copied from powerpc but are unused on microblaze: struct pci_controller *init_phb_dynamic(struct device_node *dn) int remove_phb_dynamic(struct pci_controller *phb) struct pci_dev *of_create_pci_dev(struct device_node *node, ...) void of_scan_pci_bridge(struct device_node *node, ...) void of_scan_bus(struct device_node *node, struct pci_bus *bus) void of_rescan_bus(struct device_node *node, struct pci_bus *bus) Remove them. Signed-off-by: Bjorn Helgaas CC: Michal Simek Signed-off-by: Michal Simek arch/microblaze/include/asm/pci.h | 12 ------------ 1 file changed, 12 deletions(-) commit 302ebef8894d066b2a41ea8b0ddb875df4e6274b Merge: dc4fdaf cae756f Author: Rafael J. Wysocki Date: Mon Jun 8 09:58:26 2015 +0200 Merge back earlier 'acpi-pci' material for v4.2. commit 55ae2f3b88421256e0a785320f7067bc58c1b0cd Author: Michal Simek Date: Fri Jun 5 10:35:31 2015 +0200 microblaze: Label local function static Warnings found by sparse: arch/microblaze/kernel/dma.c:157:5: warning: symbol 'dma_direct_mmap_coherent' was not declared. Should it be static? arch/microblaze/kernel/kgdb.c:35:14: warning: symbol 'pvr' was not declared. Should it be static? Signed-off-by: Michal Simek arch/microblaze/kernel/dma.c | 1 + arch/microblaze/kernel/kgdb.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) commit 60587dbbe6505df9e02599413f1c1ff6114c4189 Author: Michal Simek Date: Wed May 13 08:21:45 2015 +0200 microblaze: Add missing release version code Add missing release version code for v9.4 and v9.5. Signed-off-by: Michal Simek arch/microblaze/kernel/cpu/cpuinfo.c | 2 ++ 1 file changed, 2 insertions(+) commit a49976d14f780942dafafbbf16f891c27d385ea0 Author: Ingo Molnar Date: Mon Jun 8 09:49:11 2015 +0200 x86/asm/entry/32: Clean up entry_32.S Make the 32-bit syscall entry code a bit more readable: - use consistent assembly coding style similar to entry_64.S - remove old comments that are not true anymore - eliminate whitespace noise - use consistent vertical spacing - fix various comments No code changed: # arch/x86/entry/entry_32.o: text data bss dec hex filename 6025 0 0 6025 1789 entry_32.o.before 6025 0 0 6025 1789 entry_32.o.after md5: f3fa16b2b0dca804f052deb6b30ba6cb entry_32.o.before.asm f3fa16b2b0dca804f052deb6b30ba6cb entry_32.o.after.asm Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar arch/x86/entry/entry_32.S | 1141 ++++++++++++++++++++++----------------------- 1 file changed, 570 insertions(+), 571 deletions(-) commit 6508060232ee78200a2258aefeeb148ce9ed1526 Merge: f38b24c 6270e1a Author: David S. Miller Date: Mon Jun 8 00:50:49 2015 -0700 Merge branch 'phy-micrel' Jaeden Amero says: ==================== net/phy: micrel: Center FLP timing at 16ms In v2, we add an additional cleanup commit to make an array of strings static const and to improve const correctness generally. We also no longer unnecessarily initialize the result variable in ksz9031_center_flp_timing(). In v3, we remove the unnecessary result variable from ksz9031_config_init() introduced by a previous version of "net/phy: micrel: Center FLP timing at 16ms". In v4, we modify the commit message of "net/phy: micrel: Center FLP timing at 16ms" to replace the awkward quotation of the data sheet's programming procedure with an explanation of why we program the FLP burst registers and restart auto-negotiation where we do (config_init). ==================== Signed-off-by: David S. Miller commit 6270e1ae804ae781cdd3cc20eadfa4b6fb090ab7 Author: Jaeden Amero Date: Fri Jun 5 18:00:26 2015 -0500 net/phy: micrel: Center FLP timing at 16ms Link failures have been observed when using the KSZ9031 with HP 1810-8G and HP 1910-8G network switches. Center the FLP timing at 16ms to help avoid intermittent link failures. >From the KSZ9031RNX and KSZ9031MNX data sheets revision 2.2, section "Auto-Negotiation Timing": The KSZ9031[RNX or MNX] Fast Link Pulse (FLP) burst-to-burst transmit timing for Auto-Negotiation defaults to 8ms. IEEE 802.3 Standard specifies this timing to be 16ms +/-8ms. Some PHY link partners need to receive the FLP with 16ms centered timing; otherwise, there can be intermittent link failures and long link-up times. The PHY data sheet recommends configuring the FLP burst registers after power-up/reset and immediately thereafter restarting auto-negotiation, so we center the FLP timing at 16ms and then restart auto-negotiation in the config_init for KSZ9031. Signed-off-by: Jaeden Amero Signed-off-by: David S. Miller drivers/net/phy/micrel.c | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) commit ae6c97bb096df970c8e8095fcc84143a01fa02f2 Author: Jaeden Amero Date: Fri Jun 5 18:00:25 2015 -0500 net/phy: micrel: Comment MMD address of extended registers There are some defines for a few pad skew related extended registers. Specify for which MMD Address (dev_addr) they are for. Signed-off-by: Jaeden Amero Signed-off-by: David S. Miller drivers/net/phy/micrel.c | 1 + 1 file changed, 1 insertion(+) commit 3c9a9f7fb0eee8a29cb64dfbdaef25efed17e22c Author: Jaeden Amero Date: Fri Jun 5 18:00:24 2015 -0500 net/phy: micrel: Be more const correct In a few places in this driver, we weren't using const where we could have. Use const more. In addition, change the arrays of strings in ksz9031_config_init() to be not only const, but also static. Signed-off-by: Jaeden Amero Signed-off-by: David S. Miller drivers/net/phy/micrel.c | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) commit 5fd26c7ecb32082745b0bd33c8e35badd1cb5a91 Author: Ulf Hansson Date: Fri Jun 5 11:40:08 2015 +0200 mmc: sdhci: Restore behavior while creating OCR mask Commit 3a48edc4bd68 ("mmc: sdhci: Use mmc core regulator infrastucture") changed the behavior for how to assign the ocr_avail mask for the mmc host. More precisely it started to mask the bits instead of assigning them. Restore the behavior, but also make it clear that an OCR mask created from an external regulator overrides the other ones. The OCR mask is determined by one of the following with this priority: 1. Supported ranges of external regulator if one supplies VDD 2. Host OCR mask if set by the driver (based on DT properties) 3. The capabilities reported by the controller itself Fixes: 3a48edc4bd68 ("mmc: sdhci: Use mmc core regulator infrastucture") Cc: Tim Kryger Reported-by: Yangbo Lu Signed-off-by: Ulf Hansson Reviewed-by: Tim Kryger drivers/mmc/host/sdhci.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit b2502b418e63fcde0fe1857732a476b5aa3789b1 Author: Ingo Molnar Date: Mon Jun 8 08:42:03 2015 +0200 x86/asm/entry: Untangle 'system_call' into two entry points: entry_SYSCALL_64 and entry_INT80_32 The 'system_call' entry points differ starkly between native 32-bit and 64-bit kernels: on 32-bit kernels it defines the INT 0x80 entry point, while on 64-bit it's the SYSCALL entry point. This is pretty confusing when looking at generic code, and it also obscures the nature of the entry point at the assembly level. So unangle this by splitting the name into its two uses: system_call (32) -> entry_INT80_32 system_call (64) -> entry_SYSCALL_64 As per the generic naming scheme for x86 system call entry points: entry_MNEMONIC_qualifier where 'qualifier' is one of _32, _64 or _compat. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar arch/x86/entry/entry_32.S | 4 ++-- arch/x86/entry/entry_64.S | 10 +++++----- arch/x86/include/asm/proto.h | 5 +++-- arch/x86/kernel/cpu/common.c | 2 +- arch/x86/kernel/traps.c | 5 ++--- arch/x86/xen/xen-asm_64.S | 2 +- 6 files changed, 14 insertions(+), 14 deletions(-) commit 4c8cd0c50d0b1559727bf0ec7ff27caeba2dfe09 Author: Ingo Molnar Date: Mon Jun 8 08:33:56 2015 +0200 x86/asm/entry: Untangle 'ia32_sysenter_target' into two entry points: entry_SYSENTER_32 and entry_SYSENTER_compat So the SYSENTER instruction is pretty quirky and it has different behavior depending on bitness and CPU maker. Yet we create a false sense of coherency by naming it 'ia32_sysenter_target' in both of the cases. Split the name into its two uses: ia32_sysenter_target (32) -> entry_SYSENTER_32 ia32_sysenter_target (64) -> entry_SYSENTER_compat As per the generic naming scheme for x86 system call entry points: entry_MNEMONIC_qualifier where 'qualifier' is one of _32, _64 or _compat. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar arch/x86/entry/entry_32.S | 10 +++++----- arch/x86/entry/entry_64_compat.S | 4 ++-- arch/x86/include/asm/proto.h | 3 ++- arch/x86/kernel/cpu/common.c | 4 ++-- arch/x86/xen/xen-asm_64.S | 2 +- 5 files changed, 12 insertions(+), 11 deletions(-) commit 2cd23553b488589f287457b7396470f5e3c40698 Author: Ingo Molnar Date: Mon Jun 8 08:28:07 2015 +0200 x86/asm/entry: Rename compat syscall entry points Rename the following system call entry points: ia32_cstar_target -> entry_SYSCALL_compat ia32_syscall -> entry_INT80_compat The generic naming scheme for x86 system call entry points is: entry_MNEMONIC_qualifier where 'qualifier' is one of _32, _64 or _compat. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar Documentation/x86/entry_64.txt | 4 ++-- arch/x86/entry/entry_64_compat.S | 8 ++++---- arch/x86/entry/syscall_32.c | 6 +++--- arch/x86/include/asm/proto.h | 4 ++-- arch/x86/kernel/asm-offsets_64.c | 2 +- arch/x86/kernel/cpu/common.c | 2 +- arch/x86/kernel/traps.c | 2 +- arch/x86/xen/xen-asm_64.S | 2 +- 8 files changed, 15 insertions(+), 15 deletions(-) commit f38b24c90528c888915ef6e3bc320bdb30b14cf2 Author: Firo Yang Date: Mon Jun 8 11:54:51 2015 +0800 fib_trie: coding style: Use pointer after check As Alexander Duyck pointed out that: struct tnode { ... struct key_vector kv[1]; } The kv[1] member of struct tnode is an arry that refernced by a null pointer will not crash the system, like this: struct tnode *p = NULL; struct key_vector *kv = p->kv; As such p->kv doesn't actually dereference anything, it is simply a means for getting the offset to the array from the pointer p. This patch make the code more regular to avoid making people feel odd when they look at the code. Signed-off-by: Firo Yang Signed-off-by: David S. Miller net/ipv4/fib_trie.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) commit cbab1510afbb140f7a51d996eafc525ac316c667 Author: Nicholas Mc Guire Date: Sun Jun 7 12:35:46 2015 +0200 wan: dscc4: use msecs_to_jiffies for conversions API compliance scanning with coccinelle flagged: ./drivers/net/wan/dscc4.c:1036:1-33: WARNING: timeout (10) seems HZ dependent ./drivers/net/wan/dscc4.c:554:2-34: WARNING: timeout (10) seems HZ dependent ./drivers/net/wan/dscc4.c:599:2-34: WARNING: timeout (10) seems HZ dependent Numeric constants passed to schedule_timeout_*() make the effective timeout HZ dependent which does not seem to be the intent here. Fixed up by converting the constant to jiffies with msecs_to_jiffies(), passing 100ms (assuming HZ==100 in the original code). Signed-off-by: Nicholas Mc Guire Signed-off-by: David S. Miller drivers/net/wan/dscc4.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit fb79c066bce8620fae04112b33c55f279b60d3e1 Author: Nicholas Mc Guire Date: Sat Jun 6 09:51:51 2015 +0200 cosa: use msecs_to_jiffies for conversions API compliance scanning with coccinelle flagged: ./drivers/net/wan/cosa.c:520:2-18: WARNING: timeout (30) seems HZ dependent Numeric constants passed to schedule_timeout() make the effective timeout HZ dependent which makes little sense in a device probe. Fixed up by converting the constant to jiffies with msecs_to_jiffies() Signed-off-by: Nicholas Mc Guire Signed-off-by: David S. Miller drivers/net/wan/cosa.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0a45dcab22f6aa12cd0a022a69aca10103a43c0c Author: Hao Liu Date: Tue May 26 07:32:28 2015 +0000 dmaengine: sirf: add CSRatlas7 SoC support add support for new CSR atlas7 SoC. atlas7 exists V1 and V2 IP. atlas7 DMAv1 is basically moved from marco, which has never been delivered to customers and renamed in this patch. atlas7 DMAv2 supports chain DMA by a chain table, this patch also adds chain DMA support for atlas7. atlas7 DMAv1 and DMAv2 co-exist in the same chip. there are some HW configuration differences(register offset etc.) with old prima2 chips, so we use compatible string to differentiate old prima2 and new atlas7, then results in different set in HW for them. Signed-off-by: Hao Liu Signed-off-by: Yanchang Li Signed-off-by: Barry Song Signed-off-by: Vinod Koul .../devicetree/bindings/dma/sirfsoc-dma.txt | 3 +- drivers/dma/sirf-dma.c | 423 ++++++++++++++++----- 2 files changed, 336 insertions(+), 90 deletions(-) commit 9330dcdd918a5724af8321127a19a1b171df6bab Author: Hans de Goede Date: Mon Jun 1 11:25:08 2015 +0200 samsung-laptop: Use acpi_video_unregister_backlight instead of acpi_video_unregister acpi_video_unregister() not only unregisters the acpi-video backlight interface but also unregisters the acpi video bus event listener, causing e.g. brightness hotkey presses to no longer generate keypress events. The unregistering of the acpi video bus event listener usually is undesirable, which by itself is a good reason to switch to acpi_video_unregister_backlight(). Another problem with using acpi_video_unregister() rather then using acpi_video_unregister_backlight() is that on systems with an intel video opregion (most systems) and a broken_acpi_video quirk, whether or not the acpi video bus event listener actually gets unregistered depends on module load ordering: Scenario a: 1) acpi/video.ko gets loaded (*), does not do acpi_video_register as there is an intel opregion. 2) intel.ko gets loaded, calls acpi_video_register() which registers both the listener and the acpi backlight interface 3) samsung-laptop.ko gets loaded, calls acpi_video_unregister() causing both the listener and the acpi backlight interface to unregister Scenario b: 1) acpi/video.ko gets loaded (*), does not do acpi_video_register as there is an intel opregion. 2) samsung-laptop.ko gets loaded, calls acpi_video_dmi_promote_vendor(), calls acpi_video_unregister(), which is a nop since acpi_video_register has not yet been called 2) intel.ko gets loaded, calls acpi_video_register() which registers the listener, but does not register the acpi backlight interface due to the call to the preciding call to acpi_video_dmi_promote_vendor() *) acpi/video.ko always loads first as both other modules depend on it. So we end up with or without an acpi video bus event listener depending on module load ordering, not good. Switching to using acpi_video_unregister_backlight() means that independ of ordering we will always have an acpi video bus event listener fixing this. Note that this commit means that systems without an intel video opregion, and systems which were hitting scenario a wrt module load ordering, are now getting an acpi video bus event listener while before they were not! On some systems this may cause the brightness hotkeys to start generating keypresses while before they were not (good), while on other systems this may cause the brightness hotkeys to generate multiple keypress events for a single press (not so good). Since on most systems the acpi video bus is the canonical source for brightness events I believe that the latter case will needs to be handled on a case by case basis by filtering out the duplicate keypresses at the other source for them. Signed-off-by: Hans de Goede Acked-by: Corentin Chary drivers/platform/x86/samsung-laptop.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5f770658747ee1f5730c9cb853e8957d7ba22e1b Author: Hans de Goede Date: Mon Jun 1 11:25:07 2015 +0200 asus-wmi: Use acpi_video_unregister_backlight instead of acpi_video_unregister acpi_video_unregister() not only unregisters the acpi-video backlight interface but also unregisters the acpi video bus event listener, causing e.g. brightness hotkey presses to no longer generate keypress events. The unregistering of the acpi video bus event listener usually is undesirable, which by itself is a good reason to switch to acpi_video_unregister_backlight(). Another problem with using acpi_video_unregister() rather then using acpi_video_unregister_backlight() is that on systems with an intel video opregion (most systems) and a wmi_backlight_power quirk, whether or not the acpi video bus event listener actually gets unregistered depends on module load ordering: Scenario a: 1) acpi/video.ko gets loaded (*), does not do acpi_video_register as there is an intel opregion. 2) intel.ko gets loaded, calls acpi_video_register() which registers both the listener and the acpi backlight interface 3) asus-wmi.ko gets loaded, calls acpi_video_unregister() causing both the listener and the acpi backlight interface to unregister Scenario b: 1) acpi/video.ko gets loaded (*), does not do acpi_video_register as there is an intel opregion. 2) asus-wmi.ko gets loaded, calls acpi_video_dmi_promote_vendor(), calls acpi_video_unregister(), which is a nop since acpi_video_register has not yet been called 2) intel.ko gets loaded, calls acpi_video_register() which registers the listener, but does not register the acpi backlight interface due to the call to the preciding call to acpi_video_dmi_promote_vendor() *) acpi/video.ko always loads first as both other modules depend on it. So we end up with or without an acpi video bus event listener depending on module load ordering, not good. Switching to using acpi_video_unregister_backlight() means that independ of ordering we will always have an acpi video bus event listener fixing this. Note that this commit means that systems without an intel video opregion, and systems which were hitting scenario a wrt module load ordering, are now getting an acpi video bus event listener while before they were not! On some systems this may cause the brightness hotkeys to start generating keypresses while before they were not (good), while on other systems this may cause the brightness hotkeys to generate multiple keypress events for a single press (not so good). Since on most systems the acpi video bus is the canonical source for brightness events I believe that the latter case will needs to be handled on a case by case basis by filtering out the duplicate keypresses at the other source for them. Cc: acpi4asus-user@lists.sourceforge.net Signed-off-by: Hans de Goede Acked-by: Corentin Chary drivers/platform/x86/asus-wmi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 85eaa5fb829a4e4f0806912fc3136c87c5ee9225 Author: Hans de Goede Date: Mon Jun 1 11:25:06 2015 +0200 apple_gmux: Use acpi_video_unregister_backlight instead of acpi_video_unregister acpi_video_unregister() not only unregisters the acpi-video backlight interface but also unregisters the acpi video bus event listener, causing e.g. brightness hotkey presses to no longer generate keypress events. The unregistering of the acpi video bus event listener usually is undesirable, which by itself is a good reason to switch to acpi_video_unregister_backlight(). Another problem with using acpi_video_unregister() rather then using acpi_video_unregister_backlight() is that on systems with an intel video opregion (most systems) whether or not the acpi video bus event listener actually gets unregistered depends on module load ordering: Scenario a: 1) acpi/video.ko gets loaded (*), does not do acpi_video_register as there is an intel opregion. 2) intel.ko gets loaded, calls acpi_video_register() which registers both the listener and the acpi backlight interface 3) apple-gmux.ko gets loaded, calls acpi_video_unregister() causing both the listener and the acpi backlight interface to unregister Scenario b: 1) acpi/video.ko gets loaded (*), does not do acpi_video_register as there is an intel opregion. 2) apple-gmux.ko gets loaded, calls acpi_video_dmi_promote_vendor(), calls acpi_video_unregister(), which is a nop since acpi_video_register has not yet been called 2) intel.ko gets loaded, calls acpi_video_register() which registers the listener, but does not register the acpi backlight interface due to the call to the preciding call to acpi_video_dmi_promote_vendor() *) acpi/video.ko always loads first as both other modules depend on it. So we end up with or without an acpi video bus event listener depending on module load ordering, not good. Switching to using acpi_video_unregister_backlight() means that independ of ordering we will always have an acpi video bus event listener fixing this. Note that this commit means that systems without an intel video opregion, and systems which were hitting scenario a wrt module load ordering, are now getting an acpi video bus event listener while before they were not! On some systems this may cause the brightness hotkeys to start generating keypresses while before they were not (good), while on other systems this may cause the brightness hotkeys to generate multiple keypress events for a single press (not so good). Since on most systems the acpi video bus is the canonical source for brightness events I believe that the latter case will needs to be handled on a case by case basis by filtering out the duplicate keypresses at the other source for them. Cc: Seth Forshee Signed-off-by: Hans de Goede Signed-off-by: Darren Hart drivers/platform/x86/apple-gmux.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 55cd3f01d631b0a3a022393bac234b9a643301f6 Author: Radim Krčmář Date: Fri May 29 22:18:52 2015 +0200 pvpanic: handle missing _STA correctly pvpanic was not properly detected when _STA was missing. ACPI 6.0 April 2015, 6.3.7 _STA (Status) If a device object (including the processor object) does not have an _STA object, then OSPM assumes that all of the above bits are set (i.e., the device is present, enabled, shown in the UI, and functioning). Not adhering to the specification made pvpanic dormant under QEMU 2.3. The original patch used acpi_bus_get_status_handle, which was not being exported, so module build blew up; switch to acpi_bus_get_status and use the status it populates. Populated status is a bitfield so we can make the code self-documenting. We do not check 'present' because 'enabled' has to be false in that case by specification. Older QEMUs set 0xff to status and newer ones do 0xb. Suggested-by: Igor Mammedov Signed-off-by: Radim Krčmář Reviewed-by: Igor Mammedov [dvhart@linux.intel.com: Merge acpi_bug_get_status fix to avoid bisect breakage] Signed-off-by: Darren Hart drivers/platform/x86/pvpanic.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 7cf7fa529d0b6b514949cc67b39e3ce406c37006 Author: Majd Dibbiny Date: Sun Jun 7 15:44:23 2015 +0300 net/mlx5_core: Fix static checker warnings around system guid query flow Fix static checker warnings in the flow of system guid query. Fixes: 707c4602cda6 ('net/mlx5_core: Add new query HCA vport commands') Signed-off-by: Majd Dibbiny Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/fw.c | 3 ++- drivers/net/ethernet/mellanox/mlx5/core/vport.c | 2 +- include/linux/mlx5/vport.h | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) commit 4e2987a188c56d269882d89d37b6128f71d3b2a0 Author: Vaishali Thakkar Date: Sat Jun 6 06:44:00 2015 +0530 isdn/hisax: Convert use of __constant_cpu_to_le16 to cpu_to_le16 In big endian cases, macro cpu_to_le16 unfolds to __swab16 which provides special case for constants. In little endian cases, __constant_cpu_to_le16 and cpu_to_le16 expand directly to the same expression. So, replace __constant_cpu_to_le16 with cpu_to_le16 with the goal of getting rid of the definition of __constant_cpu_to_le16 completely. The semantic patch that performs this transformation is as follows: @@expression x;@@ - __constant_cpu_to_le16(x) + cpu_to_le16(x) Signed-off-by: Vaishali Thakkar Signed-off-by: David S. Miller drivers/isdn/hisax/st5481_usb.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit aa90e9904dbc9d2ae4d333f1ff58018374d545d5 Author: Fabio Estevam Date: Sat May 9 12:15:24 2015 -0300 usb: chipidea: usbmisc_imx: Remove unneeded semicolon Remove unneeded semicolon. The semantic patch that makes this change is available in scripts/coccinelle/misc/semicolon.cocci. More information about semantic patching is available at http://coccinelle.lip6.fr/ Signed-off-by: Fabio Estevam Signed-off-by: Peter Chen drivers/usb/chipidea/usbmisc_imx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit addae62e73cc7c2b0277d5069649be5594f0a5c8 Author: Antonio Murdaca Date: Fri Jun 5 18:58:38 2015 +0200 ethernet: micrel: use time_is_before_eq_jiffies use time_is_before_eq_jiffies macro for time comparison Signed-off-by: Antonio Murdaca Signed-off-by: David S. Miller drivers/net/ethernet/micrel/ksz884x.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 34270f5f6f1bcc2dc9d2e5aa28147667425cc424 Author: Fugang Duan Date: Fri Jun 5 17:22:08 2015 +0800 net: fec: ptp: correct the ENET_ATCOR value The current driver adjust freq formula is: fe * diff = ppb * pc Note: fe: ENET ref clock frequency in Hz diff = inc_corr - inc: difference between default increment and correction increment ppb: parts per billion adjustment from base pc: correction period (in number of fe clock cycles) The correction increment will be used after N cycles of regular increments, not every N cycles (with N being the correction period). For example, set ENET_ATCOR=4, INC=8, INC_CORR=9, there will be 4 increments of 8 (ENET_ATINC[INC]) , followed by 1 increment of 9 (ENET_ATINC[INC_CORR]). So, the correct formula is: fe * diff = ppb * (pc + 1) For ENET_ATCOR, a value 0 disables the correction counter and no corrections occur. So base on the origin formula, set pc = pc > 1 ? pc - 1 : pc. Signed-off-by: Fugang Duan Signed-off-by: Frank Li Signed-off-by: David S. Miller drivers/net/ethernet/freescale/fec_ptp.c | 1 + 1 file changed, 1 insertion(+) commit 84ea0ded3462c6a75f2f9ff898fa736dcab2d737 Author: Michal Simek Date: Fri Jun 5 10:49:17 2015 +0200 net: ll_temac: Remove sparse warnings Remove sparse warnings: drivers/net/ethernet/xilinx/ll_temac_main.c:65:16: warning: cast removes address space of expression drivers/net/ethernet/xilinx/ll_temac_main.c:70:9: warning: cast removes address space of expression drivers/net/ethernet/xilinx/ll_temac_main.c:127:16: warning: cast removes address space of expression drivers/net/ethernet/xilinx/ll_temac_main.c:137:9: warning: cast removes address space of expression drivers/net/ethernet/xilinx/ll_temac_main.c:409:3: warning: symbol 'temac_options' was not declared. Should it be static? drivers/net/ethernet/xilinx/ll_temac_main.c:590:6: warning: symbol 'temac_adjust_link' was not declared. Should it be static? Signed-off-by: Michal Simek Signed-off-by: David S. Miller drivers/net/ethernet/xilinx/ll_temac_main.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit b80c0e78582d4a3a004dc1ade4eb06babc6a4eea Author: Eric Dumazet Date: Thu Jun 4 18:30:43 2015 -0700 tcp: get_cookie_sock() consolidation IPv4 and IPv6 share same implementation of get_cookie_sock(), and there is no point inlining it. We add tcp_ prefix to the common helper name and export it. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller include/net/tcp.h | 3 +++ net/ipv4/syncookies.c | 10 +++++----- net/ipv6/syncookies.c | 19 +------------------ 3 files changed, 9 insertions(+), 23 deletions(-) commit 13ea657806cf73b379a0109f7042182f47c351a7 Author: Florian Fainelli Date: Thu Jun 4 16:15:50 2015 -0700 net: bcmgenet: improve TX timeout Dump useful ring statistics along with interrupt status, software maintained pointers and hardware registers to help troubleshoot TX queue stalls. When a timeout occurs, disable TX NAPI for the rings, dump their states while interrupts are disabled, re-enable interrupts, NAPI and queue flow control to help with the recovery. Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/genet/bcmgenet.c | 67 ++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) commit 80edb722b919500450e83c49c20a9dc706de2fa6 Author: Andrew Lunn Date: Fri Jun 5 01:10:09 2015 +0200 net: dsa: mv88e6xxx: Fix deadlock by double lock ethtool -S on a DSA interface can deadlock for some switches because the same lock is taken twice. Use the register read function which expects the lock to be already held. Signed-off-by: Andrew Lunn Fixes: 31888234b736 ("net: dsa: mv88e6xxx: Replace stats mutex with SMI mutex") Signed-off-by: David S. Miller drivers/net/dsa/mv88e6xxx.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 4861a007bfd71a9fc0a83cc7fad41dda9bf8b5b7 Author: Linus Walleij Date: Tue May 19 15:37:02 2015 +0200 iio: st_accel: support 8bit channel data Some sensors like the LIS331DL only support 8bit data by a single register per axis. These utilize the MSB byte. Make it possible to register these apropriately. A oneliner change is needed in the ST sensors core to handle 8bit reads as this is the first supported 8bit sensor. Signed-off-by: Linus Walleij Acked-by: Denis Ciocca Signed-off-by: Jonathan Cameron drivers/iio/accel/st_accel_core.c | 16 ++++++++++++++++ drivers/iio/common/st_sensors/st_sensors_core.c | 4 +++- 2 files changed, 19 insertions(+), 1 deletion(-) commit bf04c1a367e3d52b2e071cc7c7047c27dc1c3c5f Author: Stefan Agner Date: Wed May 27 14:47:51 2015 +0200 iio: adc: vf610: implement configurable conversion modes Support configurable conversion mode through sysfs. So far, the mode used was low-power, which is enabled by default now. Beside that, the modes normal and high-speed are selectable as well. Use the new device tree property which specifies the maximum ADC conversion clock frequencies. Depending on the mode used, the available resulting conversion frequency are calculated dynamically. Acked-by: Fugang Duan Signed-off-by: Stefan Agner Signed-off-by: Jonathan Cameron Documentation/ABI/testing/sysfs-bus-iio-vf610 | 7 + .../devicetree/bindings/iio/adc/vf610-adc.txt | 9 ++ drivers/iio/adc/vf610_adc.c | 146 +++++++++++++++------ 3 files changed, 120 insertions(+), 42 deletions(-) commit 6c0d48cb29c29b306ba3548afb45154d22eb4d78 Author: Fabio Estevam Date: Sun May 24 17:39:04 2015 -0300 iio: twl4030-madc: Pass the IRQF_ONESHOT flag Since commit 1c6c69525b40 ("genirq: Reject bogus threaded irq requests") threaded IRQs without a primary handler need to be requested with IRQF_ONESHOT, otherwise the request will fail. So pass the IRQF_ONESHOT flag in this case. The semantic patch that makes this change is available in scripts/coccinelle/misc/irqf_oneshot.cocci. Signed-off-by: Fabio Estevam Cc: Signed-off-by: Jonathan Cameron drivers/iio/adc/twl4030-madc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit dc7b8d98ac003c9f1e83a5f927c372dac6f114a1 Author: Heiko Stuebner Date: Mon May 25 22:36:58 2015 +0200 iio: adc: rockchip_saradc: add missing MODULE_* data The module-data is currently missing. This includes the license-information which makes the driver taint the kernel and miss symbols when compiled as module. Fixes: 44d6f2ef94f9 ("iio: adc: add driver for Rockchip saradc") Signed-off-by: Heiko Stuebner Cc: Signed-off-by: Jonathan Cameron drivers/iio/adc/rockchip_saradc.c | 4 ++++ 1 file changed, 4 insertions(+) commit 994bda83dc6facc3fdd2130b0162b2abf09b2100 Author: H. Nikolaus Schaller Date: Thu May 28 21:50:19 2015 +0200 iio: adc: twl4030_madc: Fix description of twl4030_madc_set_current_generator() The @chan parameter can be 0 or 1 and not a bit mask. Fix wrong description. Signed-off-by: H. Nikolaus Schaller Signed-off-by: Marek Belisko Signed-off-by: Jonathan Cameron drivers/iio/adc/twl4030-madc.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 0cbb39f1432096cf00eca21f2d10f6d2057c26ba Author: H. Nikolaus Schaller Date: Thu May 28 21:50:18 2015 +0200 iio: adc: twl4030_madc: Fix calculation of the temperature sense current The bit mask to read the setting of the constant current source for measuring the NTC voltage was the wrong one. Since default value is initialized to the lowest level (000 = 10uA) the difference was probably never noticed in practice. Signed-off-by: H. Nikolaus Schaller Signed-off-by: Marek Belisko Signed-off-by: Jonathan Cameron drivers/iio/adc/twl4030-madc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ae6d9ce05691bf79694074db7c7da980080548af Author: Martin Fuzzey Date: Mon Jun 1 15:39:58 2015 +0200 iio: mma8452: Add support for interrupt driven triggers. Implement interrupt driven trigger for data ready. This allows more efficient access to the sample data. Signed-off-by: Martin Fuzzey Signed-off-by: Jonathan Cameron drivers/iio/accel/mma8452.c | 97 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 91 insertions(+), 6 deletions(-) commit 1e79841a00e46506da887c718dd36a86b24b63e5 Author: Martin Fuzzey Date: Mon Jun 1 15:39:56 2015 +0200 iio: mma8452: Add highpass filter configuration. Allow the cutoff frequency of the high pass filter to be configured. Signed-off-by: Martin Fuzzey Signed-off-by: Jonathan Cameron drivers/iio/accel/mma8452.c | 140 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 136 insertions(+), 4 deletions(-) commit 5dbbd19f11846574e9143ae96da8603017cf823b Author: Martin Fuzzey Date: Mon Jun 1 15:39:54 2015 +0200 iio: mma8452: Add support for transient event debouncing Allow the debouce counter for transient events to be configured using the sysfs attribute events/in_accel_thresh_rising_period Signed-off-by: Martin Fuzzey Signed-off-by: Jonathan Cameron drivers/iio/accel/mma8452.c | 76 ++++++++++++++++++++++++++++++++++++++------- 1 file changed, 65 insertions(+), 11 deletions(-) commit 28e3427824ccc864b2866905eb10278c584b461d Author: Martin Fuzzey Date: Mon Jun 1 15:39:52 2015 +0200 iio: mma8452: Basic support for transient events. The event is triggered when the highpass filtered absolute acceleration exceeds the threshold. Signed-off-by: Martin Fuzzey Signed-off-by: Jonathan Cameron drivers/iio/accel/mma8452.c | 212 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 211 insertions(+), 1 deletion(-) commit 4892688d7004c004765a51976087a8f51ce3586d Author: Daniel Baluta Date: Fri Jun 5 14:03:15 2015 +0300 iio: magnetometer: mmc35240: Add compensation for raw values This patch adds compensation formula to raw readings, borrowed from Memsic's input driver. Signed-off-by: Daniel Baluta Signed-off-by: Jonathan Cameron drivers/iio/magnetometer/mmc35240.c | 62 ++++++++++++++++++++++++++++++++++--- 1 file changed, 58 insertions(+), 4 deletions(-) commit 6b90da4b58b39a80f490479953aa2563c3c41a6d Author: Daniel Baluta Date: Fri Jun 5 14:03:14 2015 +0300 iio: magnetometer: mmc35240: Fix sensitivity on z-axis Datasheet says (Page 2) that typical value for sensitivity for 16 bits mode on Z-axis is 770. Anyhow, looking at the input driver provided by Memsic the value for MMC35240 is 1024. Also, testing shows that using 1024 for Z-axis senzitivity offers better results. Fixes: abeb6b1e7b ("iio: magnetometer: Add support for MEMSIC MMC35240") Signed-off-by: Daniel Baluta Signed-off-by: Jonathan Cameron drivers/iio/magnetometer/mmc35240.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 787f55c4d1842e5fb037a81bca9bd9d9fdfd46fe Author: Daniel Baluta Date: Fri Jun 5 14:03:13 2015 +0300 iio: magnetometer: mmc35240: Use a smaller sleep value According to datasheet, Page 8, minimum wait time to complete measurement is 10ms. Adjusting this value will increase the userspace polling rate. Fixes: abeb6b1e7b ("iio: magnetometer: Add support for MEMSIC MMC35240") Signed-off-by: Daniel Baluta Signed-off-by: Jonathan Cameron drivers/iio/magnetometer/mmc35240.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit c2890547a035e019df646be5d56adc0ee1b0a327 Author: Daniel Baluta Date: Fri Jun 5 14:03:12 2015 +0300 iio: magnetometer: mmc35240: Fix broken processed value The current computation for fractional part of the magnetic field is broken. This patch fixes it by taking a different approach. We expose the raw reading in milli Gauss (to avoid rounding errors) with a scale of 0.001. Thus the final computation is done in userspace where floating point operation are more relaxed. Fixes: abeb6b1e7b ("iio: magnetometer: Add support for MEMSIC MMC35240") Signed-off-by: Daniel Baluta Signed-off-by: Jonathan Cameron drivers/iio/magnetometer/mmc35240.c | 43 +++++++++++++++++++++++-------------- 1 file changed, 27 insertions(+), 16 deletions(-) commit bd35a214f56158d11e46c4a9d8436139f58e7099 Author: Daniel Baluta Date: Fri Jun 5 14:03:11 2015 +0300 iio: magnetometer: mmc35240: NULL terminate attribute array This avoid nasty crashes when registering the IIO device. Fixes: abeb6b1e7b ("iio: magnetometer: Add support for MEMSIC MMC35240") Signed-off-by: Daniel Baluta Signed-off-by: Jonathan Cameron drivers/iio/magnetometer/mmc35240.c | 1 + 1 file changed, 1 insertion(+) commit a52ffebcf19afea27588abe75828f9d300e08f3d Author: Daniel Baluta Date: Fri Jun 5 14:03:10 2015 +0300 iio: magnetometer: mmc35240: i2c device name should be lower case This is the standard convention for i2c device name and also this is the name used in some Intel platforms DT files. Fixes: abeb6b1e7b ("iio: magnetometer: Add support for MEMSIC MMC35240") Signed-off-by: Daniel Baluta Signed-off-by: Jonathan Cameron drivers/iio/magnetometer/mmc35240.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 94d1dd87316fdb7a403a2750e13ec839fd2fadea Author: Antonio Quartulli Date: Mon Mar 31 13:48:10 2014 +0200 batman-adv: change the MAC of each VLAN upon ndo_set_mac_address The MAC address of the soft-interface is used to initialise the "non-purge" TT entry of each existing VLAN. Therefore when the user invokes ndo_set_mac_address() all the "non-purge" TT entries have to be updated, not only the one belonging to the non-tagged network. Signed-off-by: Antonio Quartulli Signed-off-by: Marek Lindner net/batman-adv/soft-interface.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit 7dac6d9391b89fd85bb5eddd18506ae759c9a57b Author: Sven Eckelmann Date: Thu Apr 23 18:22:25 2015 +0200 batman-adv: Remove unused post-VLAN ethhdr in batadv_gw_dhcp_recipient_get Signed-off-by: Sven Eckelmann Signed-off-by: Marek Lindner net/batman-adv/gateway_client.c | 5 ----- 1 file changed, 5 deletions(-) commit a2f2b6cd41f5b4f8b5b7914e4e52e4954f631dd2 Author: Sven Eckelmann Date: Thu Apr 23 18:22:24 2015 +0200 batman-adv: Clarify calculation precedence for '&' and '?' Signed-off-by: Sven Eckelmann Signed-off-by: Marek Lindner net/batman-adv/bat_iv_ogm.c | 2 +- net/batman-adv/main.h | 2 +- net/batman-adv/translation-table.c | 42 +++++++++++++++++++------------------- 3 files changed, 23 insertions(+), 23 deletions(-) commit 1e2c2a4fe4a52cc55a78727778119f9a74283b8a Author: Sven Eckelmann Date: Fri Apr 17 19:40:28 2015 +0200 batman-adv: Add required includes to all files The header files could not be build indepdent from each other. This is happened because headers didn't include the files for things they've used. This was problematic because the success of a build depended on the knowledge about the right order of local includes. Also source files were not including everything they've used explicitly. Instead they required that transitive includes are always stable. This is problematic because some transitive includes are not obvious, depend on config settings and may not be stable in the future. The order for include blocks are: * primary headers (main.h and the *.h file of a *.c file) * global linux headers * required local headers * extra forward declarations for pointers in function/struct declarations The only exceptions are linux/bitops.h and linux/if_ether.h in packet.h. This header file is shared with userspace applications like batctl and must therefore build together with userspace applications. The header linux/bitops.h is not part of the uapi headers and linux/if_ether.h conflicts with the musl implementation of netinet/if_ether.h. The maintainers rejected the use of __KERNEL__ preprocessor checks and thus these two headers are only in main.h. All files using packet.h first have to include main.h to work correctly. Reported-by: Markus Pargmann Signed-off-by: Sven Eckelmann Signed-off-by: Marek Lindner net/batman-adv/bat_iv_ogm.c | 42 +++++++++++++++++++++---- net/batman-adv/bitarray.c | 4 +-- net/batman-adv/bitarray.h | 6 ++++ net/batman-adv/bridge_loop_avoidance.c | 38 ++++++++++++++++++----- net/batman-adv/bridge_loop_avoidance.h | 10 ++++++ net/batman-adv/debugfs.c | 37 +++++++++++++++++----- net/batman-adv/debugfs.h | 7 +++++ net/batman-adv/distributed-arp-table.c | 28 ++++++++++++++--- net/batman-adv/distributed-arp-table.h | 13 ++++++-- net/batman-adv/fragmentation.c | 22 +++++++++++-- net/batman-adv/fragmentation.h | 9 ++++++ net/batman-adv/gateway_client.c | 34 ++++++++++++++++----- net/batman-adv/gateway_client.h | 8 +++++ net/batman-adv/gateway_common.c | 11 ++++++- net/batman-adv/gateway_common.h | 7 +++++ net/batman-adv/hard-interface.c | 38 +++++++++++++++-------- net/batman-adv/hard-interface.h | 11 +++++++ net/batman-adv/hash.c | 6 +++- net/batman-adv/hash.h | 9 ++++++ net/batman-adv/icmp_socket.c | 33 +++++++++++++++++--- net/batman-adv/icmp_socket.h | 7 +++++ net/batman-adv/main.c | 56 +++++++++++++++++++++++----------- net/batman-adv/main.h | 29 ++++++++---------- net/batman-adv/multicast.c | 29 ++++++++++++++++-- net/batman-adv/multicast.h | 6 ++++ net/batman-adv/network-coding.c | 37 +++++++++++++++++++--- net/batman-adv/network-coding.h | 13 ++++++++ net/batman-adv/originator.c | 28 ++++++++++++----- net/batman-adv/originator.h | 13 ++++++++ net/batman-adv/packet.h | 3 ++ net/batman-adv/routing.c | 36 ++++++++++++++++------ net/batman-adv/routing.h | 10 ++++++ net/batman-adv/send.c | 36 ++++++++++++++++------ net/batman-adv/send.h | 13 ++++++++ net/batman-adv/soft-interface.c | 54 +++++++++++++++++++++++--------- net/batman-adv/soft-interface.h | 11 +++++++ net/batman-adv/sysfs.c | 31 +++++++++++++++---- net/batman-adv/sysfs.h | 10 ++++++ net/batman-adv/translation-table.c | 39 ++++++++++++++++++----- net/batman-adv/translation-table.h | 9 ++++++ net/batman-adv/types.h | 18 +++++++++-- 41 files changed, 703 insertions(+), 158 deletions(-) commit bcef1f3c49daee2829cf58e30310427c63038cff Author: Antonio Quartulli Date: Sun Mar 1 00:50:17 2015 +0800 batman-adv: add bat_neigh_free API This API has to be used to let any routing protocol free neighbor specific allocated resources Signed-off-by: Antonio Quartulli Signed-off-by: Marek Lindner net/batman-adv/originator.c | 6 ++++++ net/batman-adv/types.h | 4 ++++ 2 files changed, 10 insertions(+) commit 6f70eb7552abc73584f43b701d71c1c377887af0 Author: Antonio Quartulli Date: Sun Mar 1 00:50:16 2015 +0800 batman-adv: split name from variable for uint mesh attributes Some mesh attributes are behind substructs in the batadv_priv object and for this reason the name cannot be used anymore to refer to them. This patch allows to specify the variable name where the attribute is stored inside batadv_priv instead of using the name Signed-off-by: Antonio Quartulli Signed-off-by: Marek Lindner net/batman-adv/sysfs.c | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) commit 36fd61cb80fcf07c20230face1a0f6e1505c8322 Author: Sven Eckelmann Date: Sun Mar 1 09:46:18 2015 +0100 batman-adv: Use common Jenkins Hash implementation An unoptimized version of the Jenkins one-at-a-time hash function is used and partially copied all over the code wherever an hashtable is used. Instead the optimized version shared between the whole kernel should be used to reduce code duplication and use better optimized code. Only the DAT code must use the old implementation because it is used as distributed hash function which has to be common for all nodes. Signed-off-by: Sven Eckelmann Signed-off-by: Marek Lindner net/batman-adv/bridge_loop_avoidance.c | 16 ++++------------ net/batman-adv/distributed-arp-table.c | 17 +++++++++++++++-- net/batman-adv/hash.h | 22 ---------------------- net/batman-adv/main.h | 1 + net/batman-adv/network-coding.c | 10 ++-------- net/batman-adv/originator.h | 13 +------------ net/batman-adv/translation-table.c | 8 ++------ 7 files changed, 25 insertions(+), 62 deletions(-) commit e48453c386f39ca9ea29e9df6efef78f56746af0 Author: Arianna Avanzini Date: Fri Jun 5 23:38:42 2015 +0200 block, cgroup: implement policy-specific per-blkcg data The block IO (blkio) controller enables the block layer to provide service guarantees in a hierarchical fashion. Specifically, service guarantees are provided by registered request-accounting policies. As of now, a proportional-share and a throttling policy are available. They are implemented, respectively, by the CFQ I/O scheduler and the blk-throttle subsystem. Unfortunately, as for adding new policies, the current implementation of the block IO controller is only halfway ready to allow new policies to be plugged in. This commit provides a solution to make the block IO controller fully ready to handle new policies. In what follows, we first describe briefly the current state, and then list the changes made by this commit. The throttling policy does not need any per-cgroup information to perform its task. In contrast, the proportional share policy uses, for each cgroup, both the weight assigned by the user to the cgroup, and a set of dynamically- computed weights, one for each device. The first, user-defined weight is stored in the blkcg data structure: the block IO controller allocates a private blkcg data structure for each cgroup in the blkio cgroups hierarchy (regardless of which policy is active). In other words, the block IO controller internally mirrors the blkio cgroups with private blkcg data structures. On the other hand, for each cgroup and device, the corresponding dynamically- computed weight is maintained in the following, different way. For each device, the block IO controller keeps a private blkcg_gq structure for each cgroup in blkio. In other words, block IO also keeps one private mirror copy of the blkio cgroups hierarchy for each device, made of blkcg_gq structures. Each blkcg_gq structure keeps per-policy information in a generic array of dynamically-allocated 'dedicated' data structures, one for each registered policy (so currently the array contains two elements). To be inserted into the generic array, each dedicated data structure embeds a generic blkg_policy_data structure. Consider now the array contained in the blkcg_gq structure corresponding to a given pair of cgroup and device: one of the elements of the array contains the dedicated data structure for the proportional-share policy, and this dedicated data structure contains the dynamically-computed weight for that pair of cgroup and device. The generic strategy adopted for storing per-policy data in blkcg_gq structures is already capable of handling new policies, whereas the one adopted with blkcg structures is not, because per-policy data are hard-coded in the blkcg structures themselves (currently only data related to the proportional- share policy). This commit addresses the above issues through the following changes: . It generalizes blkcg structures so that per-policy data are stored in the same way as in blkcg_gq structures. Specifically, it lets also the blkcg structure store per-policy data in a generic array of dynamically-allocated dedicated data structures. We will refer to these data structures as blkcg dedicated data structures, to distinguish them from the dedicated data structures inserted in the generic arrays kept by blkcg_gq structures. To allow blkcg dedicated data structures to be inserted in the generic array inside a blkcg structure, this commit also introduces a new blkcg_policy_data structure, which is the equivalent of blkg_policy_data for blkcg dedicated data structures. . It adds to the blkcg_policy structure, i.e., to the descriptor of a policy, a cpd_size field and a cpd_init field, to be initialized by the policy with, respectively, the size of the blkcg dedicated data structures, and the address of a constructor function for blkcg dedicated data structures. . It moves the CFQ-specific fields embedded in the blkcg data structure (i.e., the fields related to the proportional-share policy), into a new blkcg dedicated data structure called cfq_group_data. Signed-off-by: Paolo Valente Signed-off-by: Arianna Avanzini Acked-by: Tejun Heo Cc: Jens Axboe Signed-off-by: Jens Axboe block/blk-cgroup.c | 92 ++++++++++++++++++++++++++++++++++++++++++++++------- block/blk-cgroup.h | 40 ++++++++++++++++++----- block/cfq-iosched.c | 70 ++++++++++++++++++++++++++++++++++------ 3 files changed, 173 insertions(+), 29 deletions(-) commit a3d86542de8850be52e8589da22b24002941dfb7 Author: Peter Zijlstra Date: Tue May 12 15:18:18 2015 +0200 perf/x86/intel/pebs: Add PEBSv3 decoding PEBSv3 as present on Skylake fixed the long standing issue of the status bits. They now really reflect the events that generated the record. Tested-by: Andi Kleen Tested-by: Kan Liang Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel_ds.c | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) commit c4937a91ea56b546234b0608a413ebad90536d26 Author: Kan Liang Date: Sun May 10 15:13:15 2015 -0400 perf tools: handle PERF_RECORD_LOST_SAMPLES This patch modifies the perf tool to handle the new RECORD type, PERF_RECORD_LOST_SAMPLES. The number of lost-sample events is stored in .nr_events[PERF_RECORD_LOST_SAMPLES]. The exact number of samples which the kernel dropped is stored in total_lost_samples. When the percentage of dropped samples is greater than 5%, a warning is printed. Here are some examples: Eg 1, Recording different frequently-occurring events is safe with the patch. Only a very low drop rate is associated with such actions. $ perf record -e '{cycles:p,instructions:p}' -c 20003 --no-time ~/tchain ~/tchain $ perf report -D | tail SAMPLE events: 120243 MMAP2 events: 5 LOST_SAMPLES events: 24 FINISHED_ROUND events: 15 cycles:p stats: TOTAL events: 59348 SAMPLE events: 59348 instructions:p stats: TOTAL events: 60895 SAMPLE events: 60895 $ perf report --stdio --group # To display the perf.data header info, please use --header/--header-only options. # # # Total Lost Samples: 24 # # Samples: 120K of event 'anon group { cycles:p, instructions:p }' # Event count (approx.): 24048600000 # # Overhead Command Shared Object Symbol # ................ ........... ................ .................................. # 99.74% 99.86% tchain_edit tchain_edit [.] f3 0.09% 0.02% tchain_edit tchain_edit [.] f2 0.04% 0.00% tchain_edit [kernel.vmlinux] [k] ixgbe_read_reg Eg 2, Recording the same thing multiple times can lead to high drop rate, but it is not a useful configuration. $ perf record -e '{cycles:p,cycles:p}' -c 20003 --no-time ~/tchain Warning: Processed 600592 samples and lost 99.73% samples! [perf record: Woken up 148 times to write data] [perf record: Captured and wrote 36.922 MB perf.data (1206322 samples)] [perf record: Woken up 1 times to write data] [perf record: Captured and wrote 0.121 MB perf.data (1629 samples)] Signed-off-by: Kan Liang Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: acme@infradead.org Cc: eranian@google.com Link: http://lkml.kernel.org/r/1431285195-14269-9-git-send-email-kan.liang@intel.com Signed-off-by: Ingo Molnar tools/perf/builtin-report.c | 1 + tools/perf/util/event.c | 9 +++++++++ tools/perf/util/event.h | 17 +++++++++++++++++ tools/perf/util/machine.c | 10 ++++++++++ tools/perf/util/machine.h | 2 ++ tools/perf/util/session.c | 19 +++++++++++++++++++ tools/perf/util/tool.h | 1 + 7 files changed, 59 insertions(+) commit f38b0dbb491a6987e198aa6b428db8692a6480f8 Author: Kan Liang Date: Sun May 10 15:13:14 2015 -0400 perf/x86/intel: Introduce PERF_RECORD_LOST_SAMPLES After enlarging the PEBS interrupt threshold, there may be some mixed up PEBS samples which are discarded by the kernel. This patch makes the kernel emit a PERF_RECORD_LOST_SAMPLES record with the number of possible discarded records when it is impossible to demux the samples. It makes sure the user is not left in the dark about such discards. Signed-off-by: Kan Liang Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: acme@infradead.org Cc: eranian@google.com Link: http://lkml.kernel.org/r/1431285195-14269-8-git-send-email-kan.liang@intel.com Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel_ds.c | 20 ++++++++++++++++--- include/linux/perf_event.h | 3 +++ include/uapi/linux/perf_event.h | 12 +++++++++++ kernel/events/core.c | 33 +++++++++++++++++++++++++++++++ 4 files changed, 65 insertions(+), 3 deletions(-) commit 156174999dd1d0fe8732f5a05f4e9cef921ad487 Author: Yan, Zheng Date: Wed May 6 15:33:52 2015 -0400 perf/intel/x86: Enlarge the PEBS buffer Currently the PEBS buffer size is 4k, it can only hold about 21 PEBS records. This patch enlarges the PEBS buffer size to 64k (the same as the BTS buffer). 64k memory can hold about 330 PEBS records. This will significantly reduce the number of PMIs when batched PEBS interrupts are enabled. Signed-off-by: Yan, Zheng Signed-off-by: Kan Liang Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: acme@infradead.org Cc: eranian@google.com Link: http://lkml.kernel.org/r/1430940834-8964-7-git-send-email-kan.liang@intel.com Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel_ds.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9c964efa4330a58520783effe9847f15126fef1f Author: Yan, Zheng Date: Wed May 6 15:33:51 2015 -0400 perf/x86/intel: Drain the PEBS buffer during context switches Flush the PEBS buffer during context switches if PEBS interrupt threshold is larger than one. This allows perf to supply TID for sample outputs. Signed-off-by: Yan, Zheng Signed-off-by: Kan Liang Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: acme@infradead.org Cc: eranian@google.com Link: http://lkml.kernel.org/r/1430940834-8964-6-git-send-email-kan.liang@intel.com Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event.h | 6 +++++- arch/x86/kernel/cpu/perf_event_intel.c | 11 +++++++++- arch/x86/kernel/cpu/perf_event_intel_ds.c | 32 ++++++++++++++++++++++++++++++ arch/x86/kernel/cpu/perf_event_intel_lbr.c | 3 --- 4 files changed, 47 insertions(+), 5 deletions(-) commit 3569c0d7c5440d6fd06b10e1ef9614588a049bc7 Author: Yan, Zheng Date: Wed May 6 15:33:50 2015 -0400 perf/x86/intel: Implement batched PEBS interrupt handling (large PEBS interrupt threshold) PEBS always had the capability to log samples to its buffers without an interrupt. Traditionally perf has not used this but always set the PEBS threshold to one. For frequently occurring events (like cycles or branches or load/store) this in term requires using a relatively high sampling period to avoid overloading the system, by only processing PMIs. This in term increases sampling error. For the common cases we still need to use the PMI because the PEBS hardware has various limitations. The biggest one is that it can not supply a callgraph. It also requires setting a fixed period, as the hardware does not support adaptive period. Another issue is that it cannot supply a time stamp and some other options. To supply a TID it requires flushing on context switch. It can however supply the IP, the load/store address, TSX information, registers, and some other things. So we can make PEBS work for some specific cases, basically as long as you can do without a callgraph and can set the period you can use this new PEBS mode. The main benefit is the ability to support much lower sampling period (down to -c 1000) without extensive overhead. One use cases is for example to increase the resolution of the c2c tool. Another is double checking when you suspect the standard sampling has too much sampling error. Some numbers on the overhead, using cycle soak, comparing the elapsed time from "kernbench -M -H" between plain (threshold set to one) and multi (large threshold). The test command for plain: "perf record --time -e cycles:p -c $period -- kernbench -M -H" The test command for multi: "perf record --no-time -e cycles:p -c $period -- kernbench -M -H" ( The only difference of test command between multi and plain is time stamp options. Since time stamp is not supported by large PEBS threshold, it can be used as a flag to indicate if large threshold is enabled during the test. ) period plain(Sec) multi(Sec) Delta 10003 32.7 16.5 16.2 20003 30.2 16.2 14.0 40003 18.6 14.1 4.5 80003 16.8 14.6 2.2 100003 16.9 14.1 2.8 800003 15.4 15.7 -0.3 1000003 15.3 15.2 0.2 2000003 15.3 15.1 0.1 With periods below 100003, plain (threshold one) cause much more overhead. With 10003 sampling period, the Elapsed Time for multi is even 2X faster than plain. Signed-off-by: Yan, Zheng Signed-off-by: Kan Liang Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: acme@infradead.org Cc: eranian@google.com Link: http://lkml.kernel.org/r/1430940834-8964-5-git-send-email-kan.liang@intel.com Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event.h | 11 +++++++++++ arch/x86/kernel/cpu/perf_event_intel.c | 5 ++++- arch/x86/kernel/cpu/perf_event_intel_ds.c | 27 +++++++++++++++++++++++---- 3 files changed, 38 insertions(+), 5 deletions(-) commit 21509084f999d7accd32e45961ef76853112e978 Author: Yan, Zheng Date: Wed May 6 15:33:49 2015 -0400 perf/x86/intel: Handle multiple records in the PEBS buffer When the PEBS interrupt threshold is larger than one record and the machine supports multiple PEBS events, the records of these events are mixed up and we need to demultiplex them. Demuxing the records is hard because the hardware is deficient. The hardware has two issues that, when combined, create impossible scenarios to demux. The first issue is that the 'status' field of the PEBS record is a copy of the GLOBAL_STATUS MSR at PEBS assist time. To see why this is a problem let us first describe the regular PEBS cycle: A) the CTRn value reaches 0: - the corresponding bit in GLOBAL_STATUS gets set - we start arming the hardware assist < some unspecified amount of time later -- this could cover multiple events of interest > B) the hardware assist is armed, any next event will trigger it C) a matching event happens: - the hardware assist triggers and generates a PEBS record this includes a copy of GLOBAL_STATUS at this moment - if we auto-reload we (re)set CTRn - we clear the relevant bit in GLOBAL_STATUS Now consider the following chain of events: A0, B0, A1, C0 The event generated for counter 0 will include a status with counter 1 set, even though its not at all related to the record. A similar thing can happen with a !PEBS event if it just happens to overflow at the right moment. The second issue is that the hardware will only emit one record for two or more counters if the event that triggers the assist is 'close'. The 'close' can be several cycles. In some cases even the complete assist, if the event is something that doesn't need retirement. For instance, consider this chain of events: A0, B0, A1, B1, C01 Where C01 is an event that triggers both hardware assists, we will generate but a single record, but again with both counters listed in the status field. This time the record pertains to both events. Note that these two cases are different but undistinguishable with the data as generated. Therefore demuxing records with multiple PEBS bits (we can safely ignore status bits for !PEBS counters) is impossible. Furthermore we cannot emit the record to both events because that might cause a data leak -- the events might not have the same privileges -- so what this patch does is discard such events. The assumption/hope is that such discards will be rare. Here lists some possible ways you may get high discard rate. - when you count the same thing multiple times. But it is not a useful configuration. - you can be unfortunate if you measure with a userspace only PEBS event along with either a kernel or unrestricted PEBS event. Imagine the event triggering and setting the overflow flag right before entering the kernel. Then all kernel side events will end up with multiple bits set. Signed-off-by: Yan, Zheng Signed-off-by: Kan Liang [ Changelog improvements. ] Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: acme@infradead.org Cc: eranian@google.com Link: http://lkml.kernel.org/r/1430940834-8964-4-git-send-email-kan.liang@intel.com Signed-off-by: Ingo Molnar Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel_ds.c | 142 +++++++++++++++++++++--------- include/linux/perf_event.h | 13 +++ kernel/events/core.c | 6 +- kernel/events/internal.h | 9 -- 4 files changed, 116 insertions(+), 54 deletions(-) commit 43cf76312faefed098c057082abac8a3d521e1dc Author: Yan, Zheng Date: Wed May 6 15:33:48 2015 -0400 perf/x86/intel: Introduce setup_pebs_sample_data() Move code that sets up the PEBS sample data to a separate function. Signed-off-by: Yan, Zheng Signed-off-by: Kan Liang Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: acme@infradead.org Cc: eranian@google.com Link: http://lkml.kernel.org/r/1430940834-8964-3-git-send-email-kan.liang@intel.com Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel_ds.c | 95 +++++++++++++++++-------------- 1 file changed, 52 insertions(+), 43 deletions(-) commit 851559e35fd5ab637783ba395e55edd50f761229 Author: Yan, Zheng Date: Wed May 6 15:33:47 2015 -0400 perf/x86/intel: Use the PEBS auto reload mechanism when possible When a fixed period is specified, this patch makes perf use the PEBS auto reload mechanism. This makes normal profiling faster, because it avoids one costly MSR write in the PMI handler. However, the reset value will be loaded by hardware assist. There is a small delay compared to the previous non-auto-reload mechanism. The delay time is arbitrary, but very small. The assist cost is 400-800 cycles, assuming common cases with everything cached. The minimum period the patch currently uses is 10000. In that extreme case it can be ~10% if cycles are used. Signed-off-by: Yan, Zheng Signed-off-by: Kan Liang Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: acme@infradead.org Cc: eranian@google.com Link: http://lkml.kernel.org/r/1430940834-8964-2-git-send-email-kan.liang@intel.com Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event.c | 15 +++++++++------ arch/x86/kernel/cpu/perf_event.h | 1 + arch/x86/kernel/cpu/perf_event_intel.c | 8 ++++++-- arch/x86/kernel/cpu/perf_event_intel_ds.c | 7 +++++++ 4 files changed, 23 insertions(+), 8 deletions(-) commit 5b68164d6a1fdbe02b30bd777d1f686c6d901f28 Author: Stephane Eranian Date: Thu May 14 23:10:00 2015 +0200 perf record: Add support for sampling indirect jumps This patch adds a new branch sampling type support for indirect jumps: perf record -j ind_jmp ....... It enables analysis of indirect jumps targets. It requires kernel and possibly hardware support to operate correctly. Signed-off-by: Stephane Eranian [ Fixup against: f00898f4e20b (perf tools: Move branch option parsing to own file) ] Signed-off-by: Peter Zijlstra (Intel) Reviewed-by: Andi Kleen Cc: Andrew Morton Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: acme@redhat.com Cc: dsahern@gmail.com Cc: jolsa@redhat.com Cc: kan.liang@intel.com Cc: namhyung@kernel.org Link: http://lkml.kernel.org/r/1431637800-31061-4-git-send-email-eranian@google.com Signed-off-by: Ingo Molnar Signed-off-by: Ingo Molnar tools/perf/util/parse-branch-options.c | 1 + 1 file changed, 1 insertion(+) commit 7b74cfb2ecb4d56a25c89cdb561e4926db85feb1 Author: Stephane Eranian Date: Thu May 14 23:09:59 2015 +0200 perf/x86/intel: add support for PERF_SAMPLE_BRANCH_IND_JUMP This patch enables support for branch sampling filter for indirect jumps (IND_JUMP). It enables LBR IND_JMP filtering where available. There is also software filtering support. Signed-off-by: Stephane Eranian Signed-off-by: Peter Zijlstra (Intel) Reviewed-by: Andi Kleen Cc: Andrew Morton Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: acme@redhat.com Cc: dsahern@gmail.com Cc: jolsa@redhat.com Cc: kan.liang@intel.com Cc: namhyung@kernel.org Link: http://lkml.kernel.org/r/1431637800-31061-3-git-send-email-eranian@google.com Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel_lbr.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit c9fdfa14c3792c0160849c484e83aa57afd80ccc Author: Stephane Eranian Date: Thu May 14 23:09:58 2015 +0200 perf: add new PERF_SAMPLE_BRANCH_IND_JUMP branch sample type This patch adds a new branch_sample_type flag to enable filtering branch sampling to indirect jumps. The support is subject to hardware or kernel software support on each architecture. Filtering on indirect jump is useful to study the targets of the jump. Signed-off-by: Stephane Eranian Signed-off-by: Peter Zijlstra (Intel) Reviewed-by: Andi Kleen Cc: Andrew Morton Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: acme@redhat.com Cc: dsahern@gmail.com Cc: jolsa@redhat.com Cc: kan.liang@intel.com Cc: namhyung@kernel.org Link: http://lkml.kernel.org/r/1431637800-31061-2-git-send-email-eranian@google.com Signed-off-by: Ingo Molnar include/uapi/linux/perf_event.h | 2 ++ 1 file changed, 2 insertions(+) commit 6f9aad0bc37286c0441b57f0ba8cffee50715426 Author: Rik van Riel Date: Thu May 28 09:52:49 2015 -0400 sched/numa: Only consider less busy nodes as numa balancing destinations Changeset a43455a1d572 ("sched/numa: Ensure task_numa_migrate() checks the preferred node") fixes an issue where workloads would never converge on a fully loaded (or overloaded) system. However, it introduces a regression on less than fully loaded systems, where workloads converge on a few NUMA nodes, instead of properly staying spread out across the whole system. This leads to a reduction in available memory bandwidth, and usable CPU cache, with predictable performance problems. The root cause appears to be an interaction between the load balancer and NUMA balancing, where the short term load represented by the load balancer differs from the long term load the NUMA balancing code would like to base its decisions on. Simply reverting a43455a1d572 would re-introduce the non-convergence of workloads on fully loaded systems, so that is not a good option. As an aside, the check done before a43455a1d572 only applied to a task's preferred node, not to other candidate nodes in the system, so the converge-on-too-few-nodes problem still happens, just to a lesser degree. Instead, try to compensate for the impedance mismatch between the load balancer and NUMA balancing by only ever considering a lesser loaded node as a destination for NUMA balancing, regardless of whether the task is trying to move to the preferred node, or to another node. This patch also addresses the issue that a system with a single runnable thread would never migrate that thread to near its memory, introduced by 095bebf61a46 ("sched/numa: Do not move past the balance point if unbalanced"). A test where the main thread creates a large memory area, and spawns a worker thread to iterate over the memory (placed on another node by select_task_rq_fair), after which the main thread goes to sleep and waits for the worker thread to loop over all the memory now sees the worker thread migrated to where the memory is, instead of having all the memory migrated over like before. Jirka has run a number of performance tests on several systems: single instance SpecJBB 2005 performance is 7-15% higher on a 4 node system, with higher gains on systems with more cores per socket. Multi-instance SpecJBB 2005 (one per node), linpack, and stream see little or no changes with the revert of 095bebf61a46 and this patch. Reported-by: Artem Bityutski Reported-by: Jirka Hladky Tested-by: Jirka Hladky Tested-by: Artem Bityutskiy Signed-off-by: Rik van Riel Signed-off-by: Peter Zijlstra (Intel) Acked-by: Mel Gorman Cc: Andrew Morton Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Srikar Dronamraju Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/20150528095249.3083ade0@annuminas.surriel.com Signed-off-by: Ingo Molnar kernel/sched/fair.c | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) commit e4991b240c622f0441c21f4869e13209abc08c5e Author: Rik van Riel Date: Wed May 27 15:04:27 2015 -0400 Revert 095bebf61a46 ("sched/numa: Do not move past the balance point if unbalanced") Commit 095bebf61a46 ("sched/numa: Do not move past the balance point if unbalanced") broke convergence of workloads with just one runnable thread, by making it impossible for the one runnable thread on the system to move from one NUMA node to another. Instead, the thread would remain where it was, and pull all the memory across to its location, which is much slower than just migrating the thread to where the memory is. The next patch has a better fix for the issue that 095bebf61a46 tried to address. Reported-by: Jirka Hladky Signed-off-by: Rik van Riel Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: dedekind1@gmail.com Cc: mgorman@suse.de Link: http://lkml.kernel.org/r/1432753468-7785-2-git-send-email-riel@redhat.com Signed-off-by: Ingo Molnar kernel/sched/fair.c | 41 +++++++++++++++-------------------------- 1 file changed, 15 insertions(+), 26 deletions(-) commit 54d27365cae88fbcc853b391dcd561e71acb81fa Author: Ben Segall Date: Mon Apr 6 15:28:10 2015 -0700 sched/fair: Prevent throttling in early pick_next_task_fair() The optimized task selection logic optimistically selects a new task to run without first doing a full put_prev_task(). This is so that we can avoid a put/set on the common ancestors of the old and new task. Similarly, we should only call check_cfs_rq_runtime() to throttle eligible groups if they're part of the common ancestry, otherwise it is possible to end up with no eligible task in the simple task selection. Imagine: /root /prev /next /A /B If our optimistic selection ends up throttling /next, we goto simple and our put_prev_task() ends up throttling /prev, after which we're going to bug out in set_next_entity() because there aren't any tasks left. Avoid this scenario by only throttling common ancestors. Reported-by: Mohammed Naser Reported-by: Konstantin Khlebnikov Signed-off-by: Ben Segall [ munged Changelog ] Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Roman Gushchin Cc: Thomas Gleixner Cc: pjt@google.com Fixes: 678d5718d8d0 ("sched/fair: Optimize cgroup pick_next_task_fair()") Link: http://lkml.kernel.org/r/xm26wq1oswoq.fsf@sword-of-the-dawn.mtv.corp.google.com Signed-off-by: Ingo Molnar kernel/sched/fair.c | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) commit 9a92e3dc6ad02208a014d0d8404ebbd697e3d5ef Author: Frederic Weisbecker Date: Thu Jun 4 17:39:09 2015 +0200 preempt: Reorganize the notrace definitions a bit preempt.h has two seperate "#ifdef CONFIG_PREEMPT" sections: one to define preempt_enable() and another to define preempt_enable_notrace(). Lets gather both. Signed-off-by: Frederic Weisbecker Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Fengguang Wu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1433432349-1021-4-git-send-email-fweisbec@gmail.com Signed-off-by: Ingo Molnar include/linux/preempt.h | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) commit 4eaca0a887eaee04fc7a3866d0f5b51b34030dfa Author: Frederic Weisbecker Date: Thu Jun 4 17:39:08 2015 +0200 preempt: Use preempt_schedule_context() as the official tracing preemption point preempt_schedule_context() is a tracing safe preemption point but it's only used when CONFIG_CONTEXT_TRACKING=y. Other configs have tracing recursion issues since commit: b30f0e3ffedf ("sched/preempt: Optimize preemption operations on __schedule() callers") introduced function based preemp_count_*() ops. Lets make it available on all configs and give it a more appropriate name for its new position. Reported-by: Fengguang Wu Signed-off-by: Frederic Weisbecker Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1433432349-1021-3-git-send-email-fweisbec@gmail.com Signed-off-by: Ingo Molnar arch/x86/include/asm/preempt.h | 8 +++----- arch/x86/kernel/i386_ksyms_32.c | 4 +--- arch/x86/kernel/x8664_ksyms_64.c | 4 +--- arch/x86/lib/thunk_32.S | 4 +--- arch/x86/lib/thunk_64.S | 4 +--- include/asm-generic/preempt.h | 7 ++----- include/linux/preempt.h | 6 +----- kernel/sched/core.c | 8 +++----- 8 files changed, 13 insertions(+), 32 deletions(-) commit be690035df893385ceaac2323b29be1fb7f2a67f Author: Frederic Weisbecker Date: Thu Jun 4 17:39:07 2015 +0200 sched: Make preempt_schedule_context() function-tracing safe Since function tracing disables preemption, it needs a safe preemption point to use when preemption is re-enabled without worrying about tracing recursion. Ie: to avoid tracing recursion, that preemption point can't be traced (use of notrace qualifier) and it can't call any traceable function before that preemption point disables preemption itself, which disarms the recursion. preempt_schedule() was fine until commit: b30f0e3ffedf ("sched/preempt: Optimize preemption operations on __schedule() callers") because PREEMPT_ACTIVE (which has the property to disable preemption and this disarm tracing preemption recursion) was set before calling any further function. But that commit introduced the use of preempt_count_add/sub() functions to set PREEMPT_ACTIVE and because these functions are called before preemption gets a chance to be disabled, we have a tracing recursion. preempt_schedule_context() is one of the possible preemption functions used by tracing. Its special purpose is to avoid tracing recursion against context tracking. Lets enhance this function to become more generally tracing safe by disabling preemption with raw accessors, such that no function is called before preemption gets disabled and disarm the tracing recursion. This function is going to become the specific tracing-safe preemption point in further commit. Reported-by: Fengguang Wu Signed-off-by: Frederic Weisbecker Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1433432349-1021-2-git-send-email-fweisbec@gmail.com Signed-off-by: Ingo Molnar kernel/sched/core.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) commit 7b179b8feba3b887be5ddd501c25d924cf44d70a Author: Andy Shevchenko Date: Thu Jun 4 18:55:28 2015 +0200 x86/microcode: Correct CPU family related variable types Change the type of variables and function prototypes to be in alignment with what the x86_*() / __x86_*() family/model functions return. Signed-off-by: Andy Shevchenko Signed-off-by: Borislav Petkov Cc: Andrew Morton Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1433436928-31903-21-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/include/asm/microcode_amd.h | 4 ++-- arch/x86/kernel/cpu/microcode/amd_early.c | 5 +++-- arch/x86/kernel/cpu/microcode/core_early.c | 3 ++- arch/x86/kernel/cpu/microcode/intel_early.c | 4 ++-- 4 files changed, 9 insertions(+), 7 deletions(-) commit ee38a90709084b1c91279cde8f783e90f85285a1 Author: Borislav Petkov Date: Thu Jun 4 18:55:27 2015 +0200 x86/microcode: Disable builtin microcode loading on 32-bit for now Andy Shevchenko reported machine freezes when booting latest tip on 32-bit setups. Problem is, the builtin microcode handling cannot really work that early, when we haven't even enabled paging. A proper fix would involve handling that case specially as every other early 32-bit boot case in the microcode loader and would require much more involved changes for which it is too late now, more than a week before the upcoming merge window. So, disable the builtin microcode loading on 32-bit for now. Reported-and-tested-by: Andy Shevchenko Signed-off-by: Borislav Petkov Cc: Andrew Morton Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1433436928-31903-20-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/microcode/amd_early.c | 4 ++++ arch/x86/kernel/cpu/microcode/intel_early.c | 4 ++++ 2 files changed, 8 insertions(+) commit b72e7464e4cf80117938e6adb8c22fdc1ca46d42 Author: Borislav Petkov Date: Thu Jun 4 18:55:26 2015 +0200 x86/uapi: Do not export as part of the user API headers This header containing all MSRs and respective bit definitions got exported to userspace in conjunction with the big UAPI shuffle. But, it doesn't belong in the UAPI headers because userspace can do its own MSR defines and exporting them from the kernel blocks us from doing cleanups/renames in that header. Which is ridiculous - it is not kernel's job to export such a header and keep MSRs list and their names stable. Signed-off-by: Borislav Petkov Acked-by: H. Peter Anvin Cc: Andrew Morton Cc: Andy Lutomirski Cc: David Howells Cc: Linus Torvalds Cc: Peter Zijlstra (Intel) Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1433436928-31903-19-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/include/asm/msr-index.h | 665 ++++++++++++++++++++++++++++++++++ arch/x86/include/asm/msr.h | 3 +- arch/x86/include/uapi/asm/msr-index.h | 665 ---------------------------------- arch/x86/include/uapi/asm/msr.h | 2 - tools/power/x86/turbostat/Makefile | 2 +- 5 files changed, 668 insertions(+), 669 deletions(-) commit c2f9b0af8bb4b2a5c020ae88efc9a624f59a7080 Merge: c8e56d2 243d657 Author: Ingo Molnar Date: Sun Jun 7 15:35:27 2015 +0200 Merge branch 'x86/ras' into x86/core, to fix conflicts Conflicts: arch/x86/include/asm/irq_vectors.h Signed-off-by: Ingo Molnar commit c8e56d20f2d190d54c0615775dcb6a23c1091681 Author: Borislav Petkov Date: Thu Jun 4 18:55:25 2015 +0200 x86: Kill CONFIG_X86_HT In talking to Aravind recently about making certain AMD topology attributes available to the MCE injection module, it seemed like that CONFIG_X86_HT thing is more or less superfluous. It is def_bool y, depends on SMP and gets enabled in the majority of .configs - distro and otherwise - out there. So let's kill it and make code behind it depend directly on SMP. Signed-off-by: Borislav Petkov Cc: Andrew Morton Cc: Andy Lutomirski Cc: Aravind Gopalakrishnan Cc: Bartosz Golaszewski Cc: Catalin Marinas Cc: Daniel Walter Cc: Dave Hansen Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Igor Mammedov Cc: Jacob Shin Cc: Linus Torvalds Cc: Mel Gorman Cc: Peter Zijlstra (Intel) Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1433436928-31903-18-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/Kconfig | 8 ++------ arch/x86/include/asm/topology.h | 2 +- arch/x86/kernel/cpu/amd.c | 6 +++--- arch/x86/kernel/cpu/common.c | 4 ++-- arch/x86/kernel/cpu/intel_cacheinfo.c | 8 ++++---- 5 files changed, 12 insertions(+), 16 deletions(-) commit 243d657eaf540db882f73497060da5a4f7d86a90 Author: Ashok Raj Date: Thu Jun 4 18:55:24 2015 +0200 x86/mce: Handle Local MCE events Add the necessary changes to do_machine_check() to be able to process MCEs signaled as local MCEs. Typically, only recoverable errors (SRAR type) will be Signaled as LMCE. The architecture does not restrict to only those errors, however. When errors are signaled as LMCE, there is no need for the MCE handler to perform rendezvous with other logical processors unlike earlier processors that would broadcast machine check errors. Signed-off-by: Ashok Raj Signed-off-by: Borislav Petkov Cc: Andrew Morton Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Tony Luck Cc: linux-edac Link: http://lkml.kernel.org/r/1433436928-31903-17-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/mcheck/mce.c | 32 ++++++++++++++++++++++++++------ arch/x86/kernel/cpu/mcheck/mce_intel.c | 1 + 2 files changed, 27 insertions(+), 6 deletions(-) commit 88d538672ea26223bca08225bc49f4e65e71683d Author: Ashok Raj Date: Thu Jun 4 18:55:23 2015 +0200 x86/mce: Add infrastructure to support Local MCE Initialize and prepare for handling LMCEs. Add a boot-time option to disable LMCEs. Signed-off-by: Ashok Raj [ Simplify stuff, align statements for better readability, reflow comments; kill unused lmce_clear(); save us an MSR write if LMCE is already enabled. ] Signed-off-by: Borislav Petkov Cc: Andrew Morton Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Tony Luck Cc: linux-edac Link: http://lkml.kernel.org/r/1433436928-31903-16-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar Documentation/x86/x86_64/boot-options.txt | 3 +++ arch/x86/include/asm/mce.h | 5 ++++ arch/x86/kernel/cpu/mcheck/mce.c | 3 +++ arch/x86/kernel/cpu/mcheck/mce_intel.c | 43 +++++++++++++++++++++++++++++++ 4 files changed, 54 insertions(+) commit bc12edb8739be10fae9f86691a3708d36d00b4f8 Author: Ashok Raj Date: Thu Jun 4 18:55:22 2015 +0200 x86/mce: Add Local MCE definitions Add required definitions to support Local Machine Check Exceptions. Historically, machine check exceptions on Intel x86 processors have been broadcast to all logical processors in the system. Upcoming CPUs will support an opt-in mechanism to request some machine check exceptions be delivered to a single logical processor experiencing the fault. See http://www.intel.com/sdm Volume 3, System Programming Guide, chapter 15 for more information on MSRs and documentation on Local MCE. Signed-off-by: Ashok Raj Signed-off-by: Borislav Petkov Cc: Andrew Morton Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Tony Luck Cc: linux-edac Link: http://lkml.kernel.org/r/1433436928-31903-15-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/include/asm/mce.h | 5 +++++ arch/x86/include/uapi/asm/msr-index.h | 2 ++ 2 files changed, 7 insertions(+) commit 957561ec0fa8a701f60ca6a0f40cc46f5c554920 Author: Toshi Kani Date: Thu Jun 4 18:55:21 2015 +0200 drivers/block/pmem: Map NVDIMM in Write-Through mode The pmem driver maps NVDIMM uncacheable so that we don't lose data which hasn't reached non-volatile storage in the case of a crash. Change this to Write-Through mode which provides uncached writes but cached reads, thus improving read performance. Signed-off-by: Toshi Kani Signed-off-by: Borislav Petkov Acked-by: Dan Williams Cc: Andrew Morton Cc: Andy Lutomirski Cc: Elliott@hp.com Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Luis R. Rodriguez Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: arnd@arndb.de Cc: hch@lst.de Cc: hmh@hmh.eng.br Cc: jgross@suse.com Cc: konrad.wilk@oracle.com Cc: linux-mm Cc: linux-nvdimm@lists.01.org Cc: stefan.bader@canonical.com Cc: yigal@plexistor.com Link: http://lkml.kernel.org/r/1433436928-31903-14-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar drivers/block/pmem.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 623dffb2a2e059e1ace45b59b3ff21c66c419614 Author: Toshi Kani Date: Thu Jun 4 18:55:20 2015 +0200 x86/mm/pat: Add set_memory_wt() for Write-Through type Now that reserve_ram_pages_type() accepts the WT type, add set_memory_wt(), set_memory_array_wt() and set_pages_array_wt() in order to be able to set memory to Write-Through page cache mode. Also, extend ioremap_change_attr() to accept the WT type. Signed-off-by: Toshi Kani Signed-off-by: Borislav Petkov Cc: Andrew Morton Cc: Andy Lutomirski Cc: Elliott@hp.com Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Luis R. Rodriguez Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: arnd@arndb.de Cc: hch@lst.de Cc: hmh@hmh.eng.br Cc: jgross@suse.com Cc: konrad.wilk@oracle.com Cc: linux-mm Cc: linux-nvdimm@lists.01.org Cc: stefan.bader@canonical.com Cc: yigal@plexistor.com Link: http://lkml.kernel.org/r/1433436928-31903-13-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar Documentation/x86/pat.txt | 9 ++++-- arch/x86/include/asm/cacheflush.h | 6 +++- arch/x86/mm/ioremap.c | 3 ++ arch/x86/mm/pageattr.c | 62 +++++++++++++++++++++++++++++++-------- 4 files changed, 63 insertions(+), 17 deletions(-) commit 35a5a10411d87e24b46a7a9dda8d08ef9961b783 Author: Toshi Kani Date: Thu Jun 4 18:55:19 2015 +0200 x86/mm/pat: Extend set_page_memtype() to support Write-Through type As set_memory_wb() calls free_ram_pages_type(), which then calls set_page_memtype() with -1, _PGMT_DEFAULT is used for tracking the WB type. _PGMT_WB is defined but unused. Thus, rename _PGMT_DEFAULT to _PGMT_WB to clarify the usage, and release the slot used by _PGMT_WB. Furthermore, change free_ram_pages_type() to call set_page_memtype() with _PGMT_WB, and get_page_memtype() to return _PAGE_CACHE_MODE_WB for _PGMT_WB. Then, define _PGMT_WT in the freed slot. This allows set_page_memtype() to track the WT type. Signed-off-by: Toshi Kani Signed-off-by: Borislav Petkov Cc: Andrew Morton Cc: Andy Lutomirski Cc: Elliott@hp.com Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Luis R. Rodriguez Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: arnd@arndb.de Cc: hch@lst.de Cc: hmh@hmh.eng.br Cc: jgross@suse.com Cc: konrad.wilk@oracle.com Cc: linux-mm Cc: linux-nvdimm@lists.01.org Cc: stefan.bader@canonical.com Cc: yigal@plexistor.com Link: http://lkml.kernel.org/r/1433436928-31903-12-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/mm/pat.c | 59 +++++++++++++++++++++++++++---------------------------- 1 file changed, 29 insertions(+), 30 deletions(-) commit d1b4bfbfac32da43bfc8425be1c4303548e20527 Author: Toshi Kani Date: Thu Jun 4 18:55:18 2015 +0200 x86/mm/pat: Add pgprot_writethrough() Add pgprot_writethrough() for setting page protection flags to Write-Through mode. Signed-off-by: Toshi Kani Signed-off-by: Borislav Petkov Cc: Andrew Morton Cc: Andy Lutomirski Cc: Elliott@hp.com Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Luis R. Rodriguez Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: arnd@arndb.de Cc: hch@lst.de Cc: hmh@hmh.eng.br Cc: jgross@suse.com Cc: konrad.wilk@oracle.com Cc: linux-mm Cc: linux-nvdimm@lists.01.org Cc: stefan.bader@canonical.com Cc: yigal@plexistor.com Link: http://lkml.kernel.org/r/1433436928-31903-11-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/include/asm/pgtable_types.h | 3 +++ arch/x86/mm/pat.c | 7 +++++++ include/asm-generic/pgtable.h | 4 ++++ 3 files changed, 14 insertions(+) commit c7c95f19f37976731efca9576f6e4a22067798a2 Author: Toshi Kani Date: Thu Jun 4 18:55:17 2015 +0200 video/fbdev, asm/io.h: Remove ioremap_writethrough() Replace all calls to ioremap_writethrough() with ioremap_wt(). Remove ioremap_writethrough() too. Signed-off-by: Toshi Kani Signed-off-by: Borislav Petkov Acked-by: Geert Uytterhoeven Cc: Andrew Morton Cc: Andy Lutomirski Cc: Elliott@hp.com Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Luis R. Rodriguez Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: arnd@arndb.de Cc: hch@lst.de Cc: hmh@hmh.eng.br Cc: jgross@suse.com Cc: konrad.wilk@oracle.com Cc: linux-mm Cc: linux-nvdimm@lists.01.org Cc: stefan.bader@canonical.com Cc: yigal@plexistor.com Link: http://lkml.kernel.org/r/1433436928-31903-10-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/frv/include/asm/io.h | 5 ----- arch/m68k/include/asm/io_mm.h | 5 ----- arch/m68k/include/asm/io_no.h | 4 ---- arch/microblaze/include/asm/io.h | 1 - arch/tile/include/asm/io.h | 1 - drivers/video/fbdev/amifb.c | 4 ++-- drivers/video/fbdev/atafb.c | 3 +-- drivers/video/fbdev/hpfb.c | 4 ++-- 8 files changed, 5 insertions(+), 22 deletions(-) commit 556269c138a8b2d3f5714b8105fa6119ecc505f2 Author: Toshi Kani Date: Thu Jun 4 18:55:16 2015 +0200 arch/*/io.h: Add ioremap_wt() to all architectures Add ioremap_wt() to all arch-specific asm/io.h headers which define ioremap_wc() locally. These headers do not include . Some of them include , but ioremap_wt() is defined for consistency since they define all ioremap_xxx locally. In all architectures without Write-Through support, ioremap_wt() is defined indentical to ioremap_nocache(). frv and m68k already have ioremap_writethrough(). On those we add ioremap_wt() indetical to ioremap_writethrough() and defines ARCH_HAS_IOREMAP_WT in both architectures. The ioremap_wt() interface is exported to drivers. Signed-off-by: Toshi Kani Signed-off-by: Borislav Petkov Cc: Andrew Morton Cc: Andy Lutomirski Cc: Elliott@hp.com Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Luis R. Rodriguez Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: arnd@arndb.de Cc: hch@lst.de Cc: hmh@hmh.eng.br Cc: jgross@suse.com Cc: konrad.wilk@oracle.com Cc: linux-mm Cc: linux-nvdimm@lists.01.org Cc: stefan.bader@canonical.com Cc: yigal@plexistor.com Link: http://lkml.kernel.org/r/1433436928-31903-9-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/arc/include/asm/io.h | 1 + arch/arm/include/asm/io.h | 1 + arch/arm64/include/asm/io.h | 1 + arch/avr32/include/asm/io.h | 1 + arch/frv/include/asm/io.h | 7 +++++++ arch/m32r/include/asm/io.h | 1 + arch/m68k/include/asm/io_mm.h | 7 +++++++ arch/m68k/include/asm/io_no.h | 6 ++++++ arch/metag/include/asm/io.h | 3 +++ arch/microblaze/include/asm/io.h | 1 + arch/mn10300/include/asm/io.h | 1 + arch/nios2/include/asm/io.h | 1 + arch/s390/include/asm/io.h | 1 + arch/sparc/include/asm/io_32.h | 1 + arch/sparc/include/asm/io_64.h | 1 + arch/tile/include/asm/io.h | 1 + arch/xtensa/include/asm/io.h | 1 + 17 files changed, 36 insertions(+) commit d838270e2516db11084bed4e294017eb7b646a75 Author: Toshi Kani Date: Thu Jun 4 18:55:15 2015 +0200 x86/mm, asm-generic: Add ioremap_wt() for creating Write-Through mappings Add ioremap_wt() for creating Write-Through mappings on x86. It follows the same model as ioremap_wc() for multi-arch support. Define ARCH_HAS_IOREMAP_WT in the x86 version of io.h to indicate that ioremap_wt() is implemented on x86. Also update the PAT documentation file to cover ioremap_wt(). Signed-off-by: Toshi Kani Signed-off-by: Borislav Petkov Cc: Andrew Morton Cc: Andy Lutomirski Cc: Elliott@hp.com Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Luis R. Rodriguez Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: arnd@arndb.de Cc: hch@lst.de Cc: hmh@hmh.eng.br Cc: jgross@suse.com Cc: konrad.wilk@oracle.com Cc: linux-mm Cc: linux-nvdimm@lists.01.org Cc: stefan.bader@canonical.com Cc: yigal@plexistor.com Link: http://lkml.kernel.org/r/1433436928-31903-8-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar Documentation/x86/pat.txt | 4 +++- arch/x86/include/asm/io.h | 2 ++ arch/x86/mm/ioremap.c | 21 +++++++++++++++++++++ include/asm-generic/io.h | 9 +++++++++ include/asm-generic/iomap.h | 4 ++++ 5 files changed, 39 insertions(+), 1 deletion(-) commit ecb2febaaa3945e1578359adc30ca818e78540fb Author: Toshi Kani Date: Thu Jun 4 18:55:14 2015 +0200 x86/mm: Teach is_new_memtype_allowed() about Write-Through type __ioremap_caller() calls reserve_memtype() and the passed down @new_pcm contains the actual page cache type it reserved in the success case. is_new_memtype_allowed() verifies if converting to the new page cache type is allowed when @pcm (the requested type) is different from @new_pcm. When WT is requested, the caller expects that writes are ordered and uncached. Therefore, enhance is_new_memtype_allowed() to disallow the following cases: - If the request is WT, mapping type cannot be WB - If the request is WT, mapping type cannot be WC Signed-off-by: Toshi Kani Signed-off-by: Borislav Petkov Reviewed-by: Thomas Gleixner Cc: Andrew Morton Cc: Andy Lutomirski Cc: Elliott@hp.com Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Luis R. Rodriguez Cc: Peter Zijlstra Cc: arnd@arndb.de Cc: hch@lst.de Cc: hmh@hmh.eng.br Cc: jgross@suse.com Cc: konrad.wilk@oracle.com Cc: linux-mm Cc: linux-nvdimm@lists.01.org Cc: stefan.bader@canonical.com Cc: yigal@plexistor.com Link: http://lkml.kernel.org/r/1433436928-31903-7-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/include/asm/pgtable.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 0d69bdff451a10aa48f80509e8bf18fb24683c06 Author: Toshi Kani Date: Thu Jun 4 18:55:13 2015 +0200 x86/mm/pat: Change reserve_memtype() for Write-Through type When a target range is in RAM, reserve_ram_pages_type() verifies the requested type. Change it to fail WT and WP requests with -EINVAL since set_page_memtype() is limited to handle three types: WB, WC and UC-. Signed-off-by: Toshi Kani Signed-off-by: Borislav Petkov Cc: Andrew Morton Cc: Andy Lutomirski Cc: Elliott@hp.com Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Luis R. Rodriguez Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: arnd@arndb.de Cc: hch@lst.de Cc: hmh@hmh.eng.br Cc: jgross@suse.com Cc: konrad.wilk@oracle.com Cc: linux-mm Cc: linux-nvdimm@lists.01.org Cc: stefan.bader@canonical.com Cc: yigal@plexistor.com Link: http://lkml.kernel.org/r/1433436928-31903-6-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/mm/pat.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) commit d79a40caf8e15a2a15ecdefdc9d05865d4f37baa Author: Toshi Kani Date: Thu Jun 4 18:55:12 2015 +0200 x86/mm/pat: Use 7th PAT MSR slot for Write-Through PAT type Assign Write-Through type to the PA7 slot in the PAT MSR when the processor is not affected by PAT errata. The PA7 slot is chosen to improve robustness in the presence of errata that might cause the high PAT bit to be ignored. This way a buggy PA7 slot access will hit the PA3 slot, which is UC, so at worst we lose performance without causing a correctness issue. The following Intel processors are affected by the PAT errata. Errata CPUID ---------------------------------------------------- Pentium 2, A52 family 0x6, model 0x5 Pentium 3, E27 family 0x6, model 0x7, 0x8 Pentium 3 Xenon, G26 family 0x6, model 0x7, 0x8, 0xa Pentium M, Y26 family 0x6, model 0x9 Pentium M 90nm, X9 family 0x6, model 0xd Pentium 4, N46 family 0xf, model 0x0 Instead of making sharp boundary checks, we remain conservative and exclude all Pentium 2, 3, M and 4 family processors. For those, _PAGE_CACHE_MODE_WT is redirected to UC- per the default setup in __cachemode2pte_tbl[]. Signed-off-by: Toshi Kani Signed-off-by: Borislav Petkov Cc: Andrew Morton Cc: Andy Lutomirski Cc: Elliott@hp.com Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Luis R. Rodriguez Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: arnd@arndb.de Cc: hch@lst.de Cc: hmh@hmh.eng.br Cc: jgross@suse.com Cc: konrad.wilk@oracle.com Cc: linux-mm Cc: linux-nvdimm@lists.01.org Cc: stefan.bader@canonical.com Cc: yigal@plexistor.com Link: https://lkml.kernel.org/r/1433187393-22688-2-git-send-email-toshi.kani@hp.com Signed-off-by: Ingo Molnar arch/x86/mm/pat.c | 59 ++++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 50 insertions(+), 9 deletions(-) commit 7202fdb1b3299ec78dc1e7702260947ec20dd9e9 Author: Borislav Petkov Date: Thu Jun 4 18:55:11 2015 +0200 x86/mm/pat: Remove pat_enabled() checks Now that we emulate a PAT table when PAT is disabled, there's no need for those checks anymore as the PAT abstraction will handle those cases too. Based on a conglomerate patch from Toshi Kani. Signed-off-by: Borislav Petkov Reviewed-by: Toshi Kani Cc: Andrew Morton Cc: Andy Lutomirski Cc: Elliott@hp.com Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Luis R. Rodriguez Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: arnd@arndb.de Cc: hch@lst.de Cc: hmh@hmh.eng.br Cc: jgross@suse.com Cc: konrad.wilk@oracle.com Cc: linux-mm Cc: linux-nvdimm@lists.01.org Cc: stefan.bader@canonical.com Cc: yigal@plexistor.com Link: http://lkml.kernel.org/r/1433436928-31903-4-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/mm/iomap_32.c | 12 ++++++------ arch/x86/mm/ioremap.c | 5 +---- arch/x86/mm/pageattr.c | 3 --- arch/x86/mm/pat.c | 13 +++---------- 4 files changed, 10 insertions(+), 23 deletions(-) commit 9cd25aac1f44f269de5ecea11f7d927f37f1d01c Author: Borislav Petkov Date: Thu Jun 4 18:55:10 2015 +0200 x86/mm/pat: Emulate PAT when it is disabled In the case when PAT is disabled on the command line with "nopat" or when virtualization doesn't support PAT (correctly) - see 9d34cfdf4796 ("x86: Don't rely on VMWare emulating PAT MSR correctly"). we emulate it using the PWT and PCD cache attribute bits. Get rid of boot_pat_state while at it. Based on a conglomerate patch from Toshi Kani. Signed-off-by: Borislav Petkov Reviewed-by: Toshi Kani Acked-by: Juergen Gross Cc: Andrew Morton Cc: Andy Lutomirski Cc: Elliott@hp.com Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Luis R. Rodriguez Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: arnd@arndb.de Cc: hch@lst.de Cc: hmh@hmh.eng.br Cc: konrad.wilk@oracle.com Cc: linux-mm Cc: linux-nvdimm@lists.01.org Cc: stefan.bader@canonical.com Cc: yigal@plexistor.com Link: http://lkml.kernel.org/r/1433436928-31903-3-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/include/asm/pat.h | 2 +- arch/x86/mm/init.c | 6 ++-- arch/x86/mm/pat.c | 81 ++++++++++++++++++++++++++++++---------------- arch/x86/xen/enlighten.c | 5 +-- 4 files changed, 60 insertions(+), 34 deletions(-) commit 9dac6290945142e6b87d9f027edfee676dcfbfda Author: Borislav Petkov Date: Thu Jun 4 18:55:09 2015 +0200 x86/mm/pat: Untangle pat_init() Split it into a BSP and AP version which makes the PAT initialization path actually readable again. Signed-off-by: Borislav Petkov Reviewed-by: Toshi Kani Cc: Andrew Morton Cc: Andy Lutomirski Cc: Elliott@hp.com Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Luis R. Rodriguez Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: arnd@arndb.de Cc: hch@lst.de Cc: hmh@hmh.eng.br Cc: jgross@suse.com Cc: konrad.wilk@oracle.com Cc: linux-mm Cc: linux-nvdimm@lists.01.org Cc: stefan.bader@canonical.com Cc: yigal@plexistor.com Link: http://lkml.kernel.org/r/1433436928-31903-2-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/mm/pat.c | 69 ++++++++++++++++++++++++++++++++----------------------- 1 file changed, 40 insertions(+), 29 deletions(-) commit 138bd56a2164c65f68042ba580d88ab70c036fd1 Author: Ingo Molnar Date: Fri Jun 5 14:11:49 2015 +0200 x86/asm/entry/64/compat: Rename ia32entry.S -> entry_64_compat.S So we now have the following system entry code related files, which define the following system call instruction and other entry paths: entry_32.S # 32-bit binaries on 32-bit kernels entry_64.S # 64-bit binaries on 64-bit kernels entry_64_compat.S # 32-bit binaries on 64-bit kernels Cc: Alexei Starovoitov Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: Frederic Weisbecker Cc: H. Peter Anvin Cc: Josh Triplett Cc: Kees Cook Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Thomas Gleixner Cc: Will Drewry Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar arch/x86/entry/Makefile | 2 +- arch/x86/entry/entry_64.S | 2 +- arch/x86/entry/entry_64_compat.S | 547 +++++++++++++++++++++++++++++++++++++++ arch/x86/entry/ia32entry.S | 547 --------------------------------------- 4 files changed, 549 insertions(+), 549 deletions(-) commit 809fac67c8530704a214e2c476349692e2fb9299 Author: Anshuman Khandual Date: Thu May 21 12:13:13 2015 +0530 selftests/powerpc: Add gitignore file for the new DSCR tests This patch adds .gitignore for all the newly added DSCR tests. Signed-off-by: Anshuman Khandual Signed-off-by: Michael Ellerman tools/testing/selftests/powerpc/dscr/.gitignore | 7 +++++++ 1 file changed, 7 insertions(+) commit af0be08ee6ab83666f2cb3c56285cf7a312eaeab Author: Michael Ellerman Date: Sun Jun 7 19:25:16 2015 +1000 selftests/powerpc: Add thread based stress test for DSCR sysfs interfaces This patch adds a test to update the system wide DSCR value repeatedly and then verifies that any thread on any given CPU on the system must be able to see the same DSCR value whether its is being read through the problem state based SPR or the privilege state based SPR. Signed-off-by: Anshuman Khandual Signed-off-by: Michael Ellerman tools/testing/selftests/powerpc/dscr/Makefile | 3 +- .../powerpc/dscr/dscr_sysfs_thread_test.c | 80 ++++++++++++++++++++++ 2 files changed, 82 insertions(+), 1 deletion(-) commit ebd5858c904b1c795f1511758a7ac043afd44438 Author: Anshuman Khandual Date: Thu May 21 12:13:11 2015 +0530 selftests/powerpc: Add test for all DSCR sysfs interfaces This test continuously updates the system wide DSCR default value in the sysfs interface and makes sure that the same is reflected across all the sysfs interfaces for each individual CPUs present on the system. Acked-by: Shuah Khan Signed-off-by: Anshuman Khandual Signed-off-by: Michael Ellerman tools/testing/selftests/powerpc/dscr/Makefile | 2 +- .../selftests/powerpc/dscr/dscr_sysfs_test.c | 97 ++++++++++++++++++++++ 2 files changed, 98 insertions(+), 1 deletion(-) commit 6f844261e16b3a66ccec29667b2713ce0bb8adc7 Author: Anshuman Khandual Date: Thu May 21 12:13:10 2015 +0530 selftests/powerpc: Add test for DSCR inheritence across fork & exec This patch adds a test case to verify that the changed DSCR value inside any process would be inherited to it's child across the fork and exec system call. Acked-by: Shuah Khan Signed-off-by: Anshuman Khandual Signed-off-by: Anton Blanchard Signed-off-by: Michael Ellerman tools/testing/selftests/powerpc/dscr/Makefile | 2 +- .../powerpc/dscr/dscr_inherit_exec_test.c | 117 +++++++++++++++++++++ 2 files changed, 118 insertions(+), 1 deletion(-) commit cf9c4a5ecf806348940ee26b7ff0ff59f5530059 Author: Anshuman Khandual Date: Thu May 21 12:13:09 2015 +0530 selftests/powerpc: Add test for DSCR value inheritence across fork This patch adds a test to verify that the changed DSCR value inside any process would be inherited to it's child process across the fork system call. Acked-by: Shuah Khan Signed-off-by: Anshuman Khandual Signed-off-by: Anton Blanchard Signed-off-by: Michael Ellerman tools/testing/selftests/powerpc/dscr/Makefile | 3 +- .../selftests/powerpc/dscr/dscr_inherit_test.c | 95 ++++++++++++++++++++++ 2 files changed, 97 insertions(+), 1 deletion(-) commit cc6a93f1c3d6923ebf2f305416d080e9afc7ee95 Author: Anshuman Khandual Date: Thu May 21 12:13:08 2015 +0530 selftests/powerpc: Add test for DSCR SPR numbers This patch adds a test which verifies that the DSCR privilege and problem state SPR read & write accesses while making sure that the results are always the same irrespective of which SPR number is being used. Acked-by: Shuah Khan Signed-off-by: Anshuman Khandual Signed-off-by: Anton Blanchard Signed-off-by: Michael Ellerman tools/testing/selftests/powerpc/dscr/Makefile | 2 +- .../selftests/powerpc/dscr/dscr_user_test.c | 61 ++++++++++++++++++++++ 2 files changed, 62 insertions(+), 1 deletion(-) commit 1554f21a9890301d1b6586474396e7c9de586204 Author: Anshuman Khandual Date: Thu May 21 12:13:07 2015 +0530 selftests/powerpc: Add test for explicitly changing DSCR value This patch adds a test which modifies the DSCR using mtspr instruction and verifies the change using mfspr instruction. It uses both the privilege state SPR as well as the problem state SPR for the purpose. Acked-by: Shuah Khan Signed-off-by: Anshuman Khandual Signed-off-by: Anton Blanchard Signed-off-by: Michael Ellerman tools/testing/selftests/powerpc/dscr/Makefile | 2 +- .../selftests/powerpc/dscr/dscr_explicit_test.c | 71 ++++++++++++++++++++++ 2 files changed, 72 insertions(+), 1 deletion(-) commit 4c6315f8f9387d638ccb1cc3a46a28a82a109928 Author: Anshuman Khandual Date: Thu May 21 12:13:06 2015 +0530 selftests/powerpc: Add test for system wide DSCR default This patch adds a test case for the system wide DSCR default value, which when changed through it's sysfs interface must be visible to all threads reading DSCR either through the privilege state SPR or the problem state SPR. The DSCR value change should be immediate as well. Acked-by: Shuah Khan Signed-off-by: Anshuman Khandual Signed-off-by: Anton Blanchard Signed-off-by: Michael Ellerman tools/testing/selftests/powerpc/Makefile | 2 +- tools/testing/selftests/powerpc/dscr/Makefile | 12 ++ tools/testing/selftests/powerpc/dscr/dscr.h | 127 +++++++++++++++++++++ .../selftests/powerpc/dscr/dscr_default_test.c | 127 +++++++++++++++++++++ 4 files changed, 267 insertions(+), 1 deletion(-) commit 4eb2088c07cdc90d43a5a02d13c2f8aa20c470a9 Author: Anshuman Khandual Date: Thu May 21 12:13:05 2015 +0530 powerpc/dscr: Add documentation for DSCR support This patch adds a new documentation file explaining the DSCR support on powerpc platforms. This explains DSCR related data structure, code paths and also available user interfaces. Any further functional changes to the DSCR support in the kernel should definitely update the documentation here. Signed-off-by: Anshuman Khandual Signed-off-by: Michael Ellerman Documentation/powerpc/00-INDEX | 2 + Documentation/powerpc/dscr.txt | 83 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 85 insertions(+) commit d3cb06e0cdc9841b289a0d68acaffd2868504902 Author: Anshuman Khandual Date: Thu May 21 12:13:04 2015 +0530 powerpc/dscr: Add some in-code documentation This patch adds some in-code documentation to the DSCR related code to make it more readable without having any functional change to it. Signed-off-by: Anshuman Khandual Signed-off-by: Michael Ellerman arch/powerpc/include/asm/processor.h | 9 +++++++++ arch/powerpc/kernel/sysfs.c | 38 ++++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+) commit 1db365258ad9c3624897f48c764f8c557f492b26 Author: Anshuman Khandual Date: Thu May 21 12:13:03 2015 +0530 powerpc/kernel: Rename PACA_DSCR to PACA_DSCR_DEFAULT PACA_DSCR offset macro tracks dscr_default element in the paca structure. Better change the name of this macro to match that of the data element it tracks. Makes the code more readable. Signed-off-by: Anshuman Khandual Signed-off-by: Michael Ellerman arch/powerpc/kernel/asm-offsets.c | 2 +- arch/powerpc/kernel/entry_64.S | 2 +- arch/powerpc/kernel/tm.S | 4 ++-- arch/powerpc/kvm/book3s_hv_rmhandlers.S | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) commit 280e109992831ee16a0f74ae887c08fb26c021f1 Author: Anshuman Khandual Date: Thu May 21 12:13:02 2015 +0530 powerpc/kernel: Remove the unused extern dscr_default The process context switch code no longer uses dscr_default variable from the sysfs.c file. The variable became unused when we started storing the CPU specific DSCR value in the PACA structure instead. This patch just removes this extern declaration. It was originally added by the following commit. Signed-off-by: Anshuman Khandual Signed-off-by: Michael Ellerman arch/powerpc/kernel/process.c | 1 - 1 file changed, 1 deletion(-) commit c952c1c48233b95f838c8743f09feace1f0e6cab Author: Anshuman Khandual Date: Thu May 21 12:13:01 2015 +0530 powerpc: Fix handling of DSCR related facility unavailable exception Currently DSCR (Data Stream Control Register) can be accessed with mfspr or mtspr instructions inside a thread via two different SPR numbers. One being the user accessible problem state SPR number 0x03 and the other being the privilege state SPR number 0x11. All access through the privilege state SPR number get emulated through illegal instruction exception. Any access through the problem state SPR number raises one facility unavailable exception which sets the thread based dscr_inherit bit and enables DSCR facility through FSCR register thus allowing direct access to DSCR without going through this exception in the future. We set the thread.dscr_inherit bit whether the access was with mfspr or mtspr instruction which is neither correct nor does it match the behaviour through the instruction emulation code path driven from privilege state SPR number. User currently observes two different kind of behaviour when accessing the DSCR through these two SPR numbers. This problem can be observed through these two test cases by replacing the privilege state SPR number with the problem state SPR number. (1) http://ozlabs.org/~anton/junkcode/dscr_default_test.c (2) http://ozlabs.org/~anton/junkcode/dscr_explicit_test.c This patch fixes the problem by making sure that the behaviour visible to the user remains the same irrespective of which SPR number is being used. Inside facility unavailable exception, we check whether it was cuased by a mfspr or a mtspr isntrucction. In case of mfspr instruction, just emulate the instruction. In case of mtspr instruction, set the thread based dscr_inherit bit and also enable the facility through FSCR. All user SPR based mfspr instruction will be emulated till one user SPR based mtspr has been executed. Signed-off-by: Anshuman Khandual Signed-off-by: Michael Ellerman arch/powerpc/kernel/traps.c | 45 ++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 40 insertions(+), 5 deletions(-) commit f67b4938af07e3ef3a925027a2fc62199c026e2b Author: Michael Neuling Date: Fri Jun 5 14:38:26 2015 +1000 cxl: Reset default context for vPHB on release When we release the device, we should also invalidate the default context. With this cxl_get_context() will return null after removal. Signed-off-by: Michael Neuling Signed-off-by: Michael Ellerman drivers/misc/cxl/vphb.c | 1 + 1 file changed, 1 insertion(+) commit 502f159c0239863deebfc50e09c0892d0c157101 Author: David Gibson Date: Wed Jun 3 14:52:59 2015 +1000 powerpc/eeh: Fix trivial error in eeh_restore_dev_state() Commit 28158cd "powerpc/eeh: Enhance pcibios_set_pcie_reset_state()" introduced a fix for a problem where certain configurations could lead to pci_reset_function() destroying the state of PCI devices other than the one specified. Unfortunately, the fix has a trivial bug - it calls pci_save_state() again, when it should be calling pci_restore_state(). This corrects the problem. Cc: Gavin Shan Signed-off-by: David Gibson Acked-by: Gavin Shan Signed-off-by: Michael Ellerman arch/powerpc/kernel/eeh.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d691f9e8d4405c334aa10d556e73c8bf44cb0e01 Author: Alexei Starovoitov Date: Thu Jun 4 10:11:54 2015 -0700 bpf: allow programs to write to certain skb fields allow programs read/write skb->mark, tc_index fields and ((struct qdisc_skb_cb *)cb)->data. mark and tc_index are generically useful in TC. cb[0]-cb[4] are primarily used to pass arguments from one program to another called via bpf_tail_call() which can be seen in sockex3_kern.c example. All fields of 'struct __sk_buff' are readable to socket and tc_cls_act progs. mark, tc_index are writeable from tc_cls_act only. cb[0]-cb[4] are writeable by both sockets and tc_cls_act. Add verifier tests and improve sample code. Signed-off-by: Alexei Starovoitov Signed-off-by: David S. Miller include/linux/bpf.h | 3 +- include/uapi/linux/bpf.h | 2 + kernel/bpf/verifier.c | 37 +++++++++++++----- net/core/filter.c | 94 +++++++++++++++++++++++++++++++++++++++------ samples/bpf/sockex3_kern.c | 35 ++++++----------- samples/bpf/test_verifier.c | 84 +++++++++++++++++++++++++++++++++++++++- 6 files changed, 207 insertions(+), 48 deletions(-) commit 3431205e03977aaf32bce6d4b16fb8244b510056 Author: Alexei Starovoitov Date: Thu Jun 4 10:11:53 2015 -0700 bpf: make programs see skb->data == L2 for ingress and egress eBPF programs attached to ingress and egress qdiscs see inconsistent skb->data. For ingress L2 header is already pulled, whereas for egress it's present. This is known to program writers which are currently forced to use BPF_LL_OFF workaround. Since programs don't change skb internal pointers it is safe to do pull/push right around invocation of the program and earlier taps and later pt->func() will not be affected. Multiple taps via packet_rcv(), tpacket_rcv() are doing the same trick around run_filter/BPF_PROG_RUN even if skb_shared. This fix finally allows programs to use optimized LD_ABS/IND instructions without BPF_LL_OFF for higher performance. tc ingress + cls_bpf + samples/bpf/tcbpf1_kern.o w/o JIT w/JIT before 20.5 23.6 Mpps after 21.8 26.6 Mpps Old programs with BPF_LL_OFF will still work as-is. We can now undo most of the earlier workaround commit: a166151cbe33 ("bpf: fix bpf helpers to use skb->mac_header relative offsets") Signed-off-by: Alexei Starovoitov Acked-by: Jamal Hadi Salim Signed-off-by: David S. Miller net/core/filter.c | 26 +++----------------------- net/sched/act_bpf.c | 9 ++++++++- net/sched/cls_bpf.c | 16 +++++++++++++++- samples/bpf/tcbpf1_kern.c | 8 ++++---- 4 files changed, 30 insertions(+), 29 deletions(-) commit 98da81a426a76c351f3c2854d5bc31f17bba3194 Author: Eric Dumazet Date: Thu Jun 4 08:01:12 2015 -0700 tcp: remove redundant checks II For same reasons than in commit 12e25e1041d0 ("tcp: remove redundant checks"), we can remove redundant checks done for timewait sockets. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller net/ipv4/tcp_ipv4.c | 4 ---- net/ipv6/tcp_ipv6.c | 4 ---- 2 files changed, 8 deletions(-) commit 0d0cef6183aec0fb6d0c9f00a09ff51ee086bbe2 Author: Dmitry Tunin Date: Sat Jun 6 20:29:25 2015 +0300 ath3k: add support of 13d3:3474 AR3012 device BugLink: https://bugs.launchpad.net/bugs/1427680 This device requires new firmware files AthrBT_0x11020100.dfu and ramps_0x11020100_40.dfu added to /lib/firmware/ar3k/ that are not included in linux-firmware yet. T: Bus=01 Lev=01 Prnt=01 Port=04 Cnt=01 Dev#= 4 Spd=12 MxCh= 0 D: Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs= 1 P: Vendor=13d3 ProdID=3474 Rev=00.01 C: #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA I: If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb I: If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb Signed-off-by: Dmitry Tunin Signed-off-by: Marcel Holtmann Cc: stable@vger.kernel.org drivers/bluetooth/ath3k.c | 2 ++ drivers/bluetooth/btusb.c | 1 + 2 files changed, 3 insertions(+) commit 908e80d6546813aaf8b546b4b4483fcec24190b6 Author: Colin Ian King Date: Fri Jun 5 19:19:11 2015 +0100 fddi: print an address with %p format specifier rather than %x The debug is printing the struct smt_header * address using the %x format specifier. Fix it to use %p instead. Signed-off-by: Colin Ian King Signed-off-by: David S. Miller drivers/net/fddi/skfp/srf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 692c062e7c282164fd7cda68077f79dafd176eaf Author: Dmitry Tunin Date: Sat Jun 6 20:25:40 2015 +0300 ath3k: Add support of 0489:e076 AR3012 device BugLink: https://bugs.launchpad.net/bugs/1462614 This device requires new firmware files AthrBT_0x11020100.dfu and ramps_0x11020100_40.dfu added to /lib/firmware/ar3k/ that are not included in linux-firmware yet. T: Bus=03 Lev=01 Prnt=01 Port=09 Cnt=06 Dev#= 7 Spd=12 MxCh= 0 D: Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs= 1 P: Vendor=0489 ProdID=e076 Rev= 0.01 C:* #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA I:* If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none) E: Ad=81(I) Atr=03(Int.) MxPS= 16 Ivl=1ms E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms I:* If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none) E: Ad=83(I) Atr=01(Isoc) MxPS= 0 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 0 Ivl=1ms I: If#= 1 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none) E: Ad=83(I) Atr=01(Isoc) MxPS= 9 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 9 Ivl=1ms I: If#= 1 Alt= 2 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none) E: Ad=83(I) Atr=01(Isoc) MxPS= 17 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 17 Ivl=1ms I: If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none) E: Ad=83(I) Atr=01(Isoc) MxPS= 25 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 25 Ivl=1ms I: If#= 1 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none) E: Ad=83(I) Atr=01(Isoc) MxPS= 33 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 33 Ivl=1ms I: If#= 1 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none) E: Ad=83(I) Atr=01(Isoc) MxPS= 49 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 49 Ivl=1ms Signed-off-by: Dmitry Tunin Signed-off-by: Marcel Holtmann Cc: stable@vger.kernel.org drivers/bluetooth/ath3k.c | 2 ++ drivers/bluetooth/btusb.c | 1 + 2 files changed, 3 insertions(+) commit c5726d26b8147030c394964aabfb5d36140c08ef Author: Nicholas Mc Guire Date: Sat Jun 6 10:41:17 2015 +0200 wan: dscc4: fix build warning Wunused-but-set-variable Fix: drivers/net/wan/dscc4.c: In function 'dscc4_open': drivers/net/wan/dscc4.c:1049:25: warning: variable 'ppriv' set but not used [-Wunused-but-set-variable] This has been in there unused since 1da177e4c3f (Linux-2.6.12-rc2) simply remove it. Signed-off-by: Nicholas Mc Guire Signed-off-by: David S. Miller drivers/net/wan/dscc4.c | 3 --- 1 file changed, 3 deletions(-) commit 623c1234a2da2235d6f0bcd09061b6f7776eee93 Author: Alexander Aring Date: Sat Jun 6 17:30:53 2015 +0200 mac802154: change pan_coord type to bool To indicate if it's a coordinator or not a bool is enough. There should no more values available which represent some other state. Signed-off-by: Alexander Aring Reviewed-by: Varka Bhadram Signed-off-by: Marcel Holtmann include/net/mac802154.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a0825b03aed91dd25d31aaff1e6e85c322caf8b2 Author: Alexander Aring Date: Sat Jun 6 17:30:52 2015 +0200 mac802154: add missing structure comments This patch add missing comments to internal mac802154 structures. Signed-off-by: Alexander Aring Reviewed-by: Varka Bhadram Signed-off-by: Marcel Holtmann include/net/mac802154.h | 34 ++++++++++++++++++++++++++++------ 1 file changed, 28 insertions(+), 6 deletions(-) commit af69a34548cb01aefef76aeb3565cebc7a9fb0d6 Author: Alexander Aring Date: Sat Jun 6 17:30:51 2015 +0200 mac802154: rearrange attribute in ieee802154_hw This patch removes the priv attribute in ieee802154_hw to the right section which is commented by attributes which needs to be filled by driver layer. Signed-off-by: Alexander Aring Reviewed-by: Varka Bhadram Signed-off-by: Marcel Holtmann include/net/mac802154.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5661d431c6e65588e813c947117e6d18eb03422f Author: Alexander Aring Date: Sat Jun 6 17:30:50 2015 +0200 mac802154: remove unused hw_filt attribute This patch removed an attribute from ieee802154_hw structure which is never used inside kernel. Address information are stored inside wpan_dev nowadays. Signed-off-by: Alexander Aring Reviewed-by: Varka Bhadram Signed-off-by: Marcel Holtmann include/net/mac802154.h | 1 - 1 file changed, 1 deletion(-) commit bcbfd2078d9b11277d9c9ce0c30ba73c750503c9 Author: Alexander Aring Date: Sat Jun 6 17:30:49 2015 +0200 mac802154: cleanup ieee802154 hardware flags This patch changes the ieee802154 hardware flags to enums and setting the flag values with the BIT macro. Additional this patch changes the commenting style for matching usual kernel style. Signed-off-by: Alexander Aring Reviewed-by: Varka Bhadram Signed-off-by: Marcel Holtmann include/net/mac802154.h | 56 +++++++++++++++++++++++++++++++------------------ 1 file changed, 36 insertions(+), 20 deletions(-) commit f265be3d124a5b62e5a339685b6cfaa0292f1250 Author: Alexander Aring Date: Sat Jun 6 17:30:48 2015 +0200 mac802154: remove aack hw flag This patch removes the hardware auto acknowdledge flag which indicates that the transceiver supports this handling. This flag is never evaluated inside mac802154 and all transceivers should support this handling by default per hardware. Suggested-by: Lennert Buytenhek Cc: Alan Ott Signed-off-by: Alexander Aring Reviewed-by: Varka Bhadram Acked-by: Stefan Schmidt Acked-by: Varka Bhadram Signed-off-by: Marcel Holtmann drivers/net/ieee802154/at86rf230.c | 2 +- drivers/net/ieee802154/atusb.c | 2 +- drivers/net/ieee802154/cc2520.c | 3 +-- drivers/net/ieee802154/mrf24j40.c | 3 +-- include/net/mac802154.h | 2 -- 5 files changed, 4 insertions(+), 8 deletions(-) commit 6b70a43c7e0202cf285c864bc9f20f607c42e432 Author: Alexander Aring Date: Sat Jun 6 17:30:47 2015 +0200 mac802154: cleanup address filtering flags This patch changes the address filtering flags to enums and setting the flag values with the BIT macro. Additional this patch changes the commenting style for matching usual kernel style. Signed-off-by: Alexander Aring Reviewed-by: Varka Bhadram Signed-off-by: Marcel Holtmann include/net/mac802154.h | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) commit ed65963ba0a2bdc330b1d7183f930d1c6a0a6685 Author: Alexander Aring Date: Sat Jun 6 17:30:46 2015 +0200 mac802154: remove unneeded vif struct This patch removes the virtual interface structure from sub if data struct, because it isn't used anywhere. This structure could be useful for give per interface information at softmac driver layer. Nevertheless there exist no use case currently and it contains the interface type information currently. This information is also stored inside wpan dev which is now used to check on the wpan dev interface type. Signed-off-by: Alexander Aring Reviewed-by: Varka Bhadram Acked-by: Varka Bhadram Signed-off-by: Marcel Holtmann drivers/net/ieee802154/at86rf230.c | 1 - drivers/net/ieee802154/cc2520.c | 1 - include/net/mac802154.h | 8 -------- net/mac802154/ieee802154_i.h | 2 -- net/mac802154/iface.c | 9 ++++----- net/mac802154/rx.c | 4 ++-- 6 files changed, 6 insertions(+), 19 deletions(-) commit 90c337da1524863838658078ec34241f45d8394d Author: Eric Dumazet Date: Sat Jun 6 21:17:57 2015 -0700 inet: add IP_BIND_ADDRESS_NO_PORT to overcome bind(0) limitations When an application needs to force a source IP on an active TCP socket it has to use bind(IP, port=x). As most applications do not want to deal with already used ports, x is often set to 0, meaning the kernel is in charge to find an available port. But kernel does not know yet if this socket is going to be a listener or be connected. It has very limited choices (no full knowledge of final 4-tuple for a connect()) With limited ephemeral port range (about 32K ports), it is very easy to fill the space. This patch adds a new SOL_IP socket option, asking kernel to ignore the 0 port provided by application in bind(IP, port=0) and only remember the given IP address. The port will be automatically chosen at connect() time, in a way that allows sharing a source port as long as the 4-tuples are unique. This new feature is available for both IPv4 and IPv6 (Thanks Neal) Tested: Wrote a test program and checked its behavior on IPv4 and IPv6. strace(1) shows sequences of bind(IP=127.0.0.2, port=0) followed by connect(). Also getsockname() show that the port is still 0 right after bind() but properly allocated after connect(). socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 5 setsockopt(5, SOL_IP, IP_BIND_ADDRESS_NO_PORT, [1], 4) = 0 bind(5, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("127.0.0.2")}, 16) = 0 getsockname(5, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("127.0.0.2")}, [16]) = 0 connect(5, {sa_family=AF_INET, sin_port=htons(53174), sin_addr=inet_addr("127.0.0.3")}, 16) = 0 getsockname(5, {sa_family=AF_INET, sin_port=htons(38050), sin_addr=inet_addr("127.0.0.2")}, [16]) = 0 IPv6 test : socket(PF_INET6, SOCK_STREAM, IPPROTO_IP) = 7 setsockopt(7, SOL_IP, IP_BIND_ADDRESS_NO_PORT, [1], 4) = 0 bind(7, {sa_family=AF_INET6, sin6_port=htons(0), inet_pton(AF_INET6, "::1", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = 0 getsockname(7, {sa_family=AF_INET6, sin6_port=htons(0), inet_pton(AF_INET6, "::1", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, [28]) = 0 connect(7, {sa_family=AF_INET6, sin6_port=htons(57300), inet_pton(AF_INET6, "::1", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = 0 getsockname(7, {sa_family=AF_INET6, sin6_port=htons(60964), inet_pton(AF_INET6, "::1", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, [28]) = 0 I was able to bind()/connect() a million concurrent IPv4 sockets, instead of ~32000 before patch. lpaa23:~# ulimit -n 1000010 lpaa23:~# ./bind --connect --num-flows=1000000 & 1000000 sockets lpaa23:~# grep TCP /proc/net/sockstat TCP: inuse 2000063 orphan 0 tw 47 alloc 2000157 mem 66 Check that a given source port is indeed used by many different connections : lpaa23:~# ss -t src :40000 | head -10 State Recv-Q Send-Q Local Address:Port Peer Address:Port ESTAB 0 0 127.0.0.2:40000 127.0.202.33:44983 ESTAB 0 0 127.0.0.2:40000 127.2.27.240:44983 ESTAB 0 0 127.0.0.2:40000 127.2.98.5:44983 ESTAB 0 0 127.0.0.2:40000 127.0.124.196:44983 ESTAB 0 0 127.0.0.2:40000 127.2.139.38:44983 ESTAB 0 0 127.0.0.2:40000 127.1.59.80:44983 ESTAB 0 0 127.0.0.2:40000 127.3.6.228:44983 ESTAB 0 0 127.0.0.2:40000 127.0.38.53:44983 ESTAB 0 0 127.0.0.2:40000 127.1.197.10:44983 Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller include/net/inet_sock.h | 1 + include/uapi/linux/in.h | 1 + net/ipv4/af_inet.c | 3 ++- net/ipv4/ip_sockglue.c | 7 +++++++ net/ipv6/af_inet6.c | 3 ++- 5 files changed, 13 insertions(+), 2 deletions(-) commit 26343bdacfcdbf6ee3303d6078a015b908f90193 Author: Rafał Miłecki Date: Sat May 16 16:55:39 2015 +0200 ARM: BCM5301X: Add DT for Asus RT-AC87U Signed-off-by: Rafał Miłecki Signed-off-by: Álvaro Fernández Rojas Signed-off-by: Florian Fainelli arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts | 65 +++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) commit 1f80de6863ca0e36cabc622e858168fe5beb1e92 Author: Hauke Mehrtens Date: Sun May 24 21:08:14 2015 +0200 ARM: BCM5301X: add IRQ numbers for PCIe controller The driver for the PCIe controller was just added, this adds the missing definition of the IRQ numbers to device tree. The driver itself will be automatically detected by bcma. Signed-off-by: Hauke Mehrtens Signed-off-by: Florian Fainelli arch/arm/boot/dts/bcm5301x.dtsi | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) commit 9faa5960eef3204cae6637b530f5e23e53b5a9ef Author: Hauke Mehrtens Date: Fri May 29 23:39:47 2015 +0200 ARM: BCM5301X: add NAND flash chip description This adds the NAND flash chip description for a standard chip found connected to this SoC. This makes use of generic Broadcom NAND driver with the iProc interface. Signed-off-by: Hauke Mehrtens Signed-off-by: Florian Fainelli arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dts | 1 + arch/arm/boot/dts/bcm4708-asus-rt-ac68u.dts | 1 + arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts | 1 + arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts | 9 +++----- arch/arm/boot/dts/bcm4708-netgear-r6250.dts | 1 + arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dts | 1 + arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts | 1 + arch/arm/boot/dts/bcm47081-asus-rt-n18u.dts | 1 + arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts | 1 + arch/arm/boot/dts/bcm47081-buffalo-wzr-900dhp.dts | 1 + arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts | 1 + arch/arm/boot/dts/bcm4709-netgear-r8000.dts | 1 + arch/arm/boot/dts/bcm5301x-nand-cs0-bch8.dtsi | 24 ++++++++++++++++++++++ arch/arm/boot/dts/bcm5301x.dtsi | 12 +++++++++++ 14 files changed, 50 insertions(+), 6 deletions(-) commit da73b9fb56c14c6d537738e891906006a7960535 Author: Oded Gabbay Date: Sat Jun 6 22:17:44 2015 +0300 drm/amdkfd: remove not used defines from cik_regs.h Signed-off-by: Oded Gabbay drivers/gpu/drm/amd/amdkfd/cik_regs.h | 177 +++------------------------------- 1 file changed, 13 insertions(+), 164 deletions(-) commit eaccd6e7436340c7aba122f4456c6761c8c2dff2 Author: Oded Gabbay Date: Sat Jun 6 21:45:43 2015 +0300 drm/amdkfd: Add missing properties to CZ device info This patch adds two missing properties initializations to the device info structure of CZ. As we don't have CZ support yet, it isn't critical, but its important to fix this now instead of forgetting about it later. Signed-off-by: Oded Gabbay drivers/gpu/drm/amd/amdkfd/kfd_device.c | 3 +++ 1 file changed, 3 insertions(+) commit a82918f18a846e4e2be8613029d03c3cb3e99460 Author: Ben Goz Date: Wed Mar 25 13:12:20 2015 +0200 drm/amdkfd: make reset wavefronts per process per device This commit moves the reset wavefront flag to per process per device data structure, so we can support multiple devices. Signed-off-by: Ben Goz Signed-off-by: Oded Gabbay .../gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 7 ++++--- drivers/gpu/drm/amd/amdkfd/kfd_priv.h | 10 +++++----- drivers/gpu/drm/amd/amdkfd/kfd_process.c | 21 ++++++++++++++++----- 3 files changed, 25 insertions(+), 13 deletions(-) commit 9380f9eacfbbee701daa416edd6625efcd3e29e1 Author: Loic Poulain Date: Thu May 21 16:46:41 2015 +0200 Bluetooth: Reorder HCI user channel socket release The hci close method needs to know if we are in user channel context. Only add the index to mgmt once close is performed. Signed-off-by: Loic Poulain Signed-off-by: Marcel Holtmann net/bluetooth/hci_sock.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6235e15ea6d0f39ef72ecaf9d3add995550c60ee Author: Oded Gabbay Date: Thu Apr 30 18:05:36 2015 +0300 drm/amdkfd: add debug print to kfd_events.c Signed-off-by: Oded Gabbay drivers/gpu/drm/amd/amdkfd/kfd_events.c | 4 ++++ 1 file changed, 4 insertions(+) commit f4e04022edaec32af39db16e08ea316a6bb136f2 Author: Valentin Rothberg Date: Fri Jun 5 10:27:43 2015 +0200 drm/amdkfd: avoid CONFIG_ prefix for non-Kconfig symbols The CONFIG_ prefix is reserved for Kconfig options in Make and CPP syntax. Various static analysis tools rely on this naming convention and check if CONFIG_ prefixed symbols are defined Kconfig. Hence add yet another prefix AMD_ to CONFIG_REG_{BASE,END,SISE} to apply to this convention and make static analysis tools happy. Signed-off-by: Valentin Rothberg Signed-off-by: Oded Gabbay drivers/gpu/drm/amd/amdkfd/kfd_dbgdev.c | 10 +++++----- drivers/gpu/drm/amd/amdkfd/kfd_dbgdev.h | 6 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) commit 839aa56d077972170a074bcbe31bf0d7eba37b24 Author: Hans Verkuil Date: Fri Jun 5 11:28:51 2015 -0300 [media] v4l2-ioctl: log buffer type 0 correctly If userspace passed the invalid buffer type 0 to the kernel, then the kernel log would show 'type=(null)' since there was no string defined for type 0. Fix this. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/v4l2-ioctl.c | 1 + 1 file changed, 1 insertion(+) commit dc8b1c0e89f3473221f35b7aaf7419e2d2c16fe9 Author: Hans Verkuil Date: Fri Jun 5 05:11:15 2015 -0300 [media] DocBook media: correct description of reserved fields Make sure that the documentation clearly states who is zeroing reserved fields: drivers and/or applications. This patch syncs the documentation with the checks that v4l2-compliance and valgrind do. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/v4l/io.xml | 12 ++++++------ Documentation/DocBook/media/v4l/pixfmt.xml | 8 ++++---- Documentation/DocBook/media/v4l/vidioc-create-bufs.xml | 3 ++- .../DocBook/media/v4l/vidioc-enum-frameintervals.xml | 3 ++- Documentation/DocBook/media/v4l/vidioc-enum-framesizes.xml | 3 ++- Documentation/DocBook/media/v4l/vidioc-expbuf.xml | 3 ++- Documentation/DocBook/media/v4l/vidioc-g-selection.xml | 2 +- Documentation/DocBook/media/v4l/vidioc-querybuf.xml | 3 ++- Documentation/DocBook/media/v4l/vidioc-reqbufs.xml | 4 ++-- 9 files changed, 23 insertions(+), 18 deletions(-) commit 5d3512514ae7e21e869ea306f902b6be428e2578 Author: Hans Verkuil Date: Fri Jun 5 05:11:14 2015 -0300 [media] v4l2-ioctl: clear the reserved field of v4l2_create_buffers This field was never cleared by the kernel making future extensions hard to implement. Clear it now. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/v4l2-ioctl.c | 2 ++ 1 file changed, 2 insertions(+) commit afeef4ee23b4865d6c3bf294b5ac9d55dbff5b82 Author: Hans Verkuil Date: Fri Jun 5 03:45:38 2015 -0300 [media] vivid-tpg: improve Y16 color setup Currently the colors for the Y16 and Y16_BE pixelformats are in the range 0x0000-0xff00. So pure white (0xffff) is never created. Improve this by making white really white. For other colors the lsb remains 0 so vivid can be used to detect endian problems. Signed-off-by: Hans Verkuil Reviewed-by: Ricardo Ribalda Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/vivid/vivid-tpg.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) commit 4d38cde776185a78b96f5e3a3e653450050600bd Author: Fabio Estevam Date: Mon Jun 1 14:14:07 2015 -0300 [media] radio-si470x-i2c: Pass the IRQF_ONESHOT flag Since commit 1c6c69525b40 ("genirq: Reject bogus threaded irq requests") threaded IRQs without a primary handler need to be requested with IRQF_ONESHOT, otherwise the request will fail. So pass the IRQF_ONESHOT flag in this case. The semantic patch that makes this change is available in scripts/coccinelle/misc/irqf_oneshot.cocci. Signed-off-by: Fabio Estevam Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/radio/si470x/radio-si470x-i2c.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit ebbb5637558e6ff087f6f4cc74e1847bb6992f02 Author: Hans Verkuil Date: Mon Jun 1 08:18:31 2015 -0300 [media] stk1160: add DMABUF support Implement DMABUF exporting and importing. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/stk1160/stk1160-v4l.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 63344b6592f1d69e13d0e32d8b213137ab6b663e Author: Hans Verkuil Date: Mon Jun 1 07:15:53 2015 -0300 [media] vivid: move video loopback control to the capture device This has been on my TODO list for some time now: the control that enables the video loopback was part of the controls of the video output device instead of the video capture device. In practice this was quite annoying since you expect it at the capture side since that's where you want to make the decision whether to use the TPG or looped video. This patch moves the control from the output to the capture side. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab Documentation/video4linux/vivid.txt | 2 +- drivers/media/platform/vivid/vivid-core.h | 2 +- drivers/media/platform/vivid/vivid-ctrls.c | 81 +++++++++++++++--------------- 3 files changed, 42 insertions(+), 43 deletions(-) commit cc1821964d122c39a80e653163513f11ccc39524 Author: Fabian Frederick Date: Mon May 18 14:54:17 2015 -0300 [media] omap_vout: use swap() in omapvid_init() Use kernel.h macro definition. Signed-off-by: Fabian Frederick Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/omap/omap_vout.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) commit 4aed283c0f7c2b60dc211d2ab8966b3e8c0dddf7 Author: Juergen Gier Date: Thu May 14 08:55:04 2015 -0300 [media] saa7134: switch tuner FMD1216ME_MK3 to analog The tuner FMD1216ME_MK3 suffers the same problem as FMD1216MEX_MK3, as described in saa7134-cards.c (disabled IF, enabled DVB-T). The card does work under MS Windows, after soft reboot into Linux it continues to work, only then tda9887 is loaded as well. I copied the relevant code from the BEHOLD_H6 section to MD7134. The CTX946 TV card doesn't detect a signal after cold boot, seems Signed-off-by: Juergen Gier Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/saa7134/saa7134-cards.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) commit 7a60743f347c9d03811c5a2b9aa92431be19e512 Author: Nikhil Devshatwar Date: Tue May 5 10:49:59 2015 -0300 [media] v4l: of: Correct pclk-sample for BT656 bus Current v4l2_of_parse_parallel_bus function attempts to parse the DT properties for the parallel bus as well as BT656 bus. If the pclk-sample property is defined for the BT656 bus, it is still marked as a parallel bus. Fix this by parsing the pclk after the bus_type is selected. Only when hsync or vsync properties are specified, the bus_type should be set to V4L2_MBUS_PARALLEL. Signed-off-by: Nikhil Devshatwar Acked-by: Sylwester Nawrocki Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/v4l2-of.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 49b7cb5da1867511f10ca9fb7be44c0b2c6a79ee Author: Antti Palosaari Date: Mon Apr 20 17:08:01 2015 -0300 [media] cx23885: Hauppauge WinTV-HVR5525 bind I2C SEC Bind a8293 SEC using I2C binding. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/cx23885/cx23885-dvb.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) commit a4569507039ba5bebe8fdfb9e9b0358b38b17588 Author: Antti Palosaari Date: Mon Apr 20 15:01:51 2015 -0300 [media] cx23885: Hauppauge WinTV-HVR4400/HVR5500 bind I2C demod and SEC Bind tda10071 demod and a8293 SEC using I2C binding. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/cx23885/cx23885-dvb.c | 54 +++++++++++++++++++++------------ 1 file changed, 35 insertions(+), 19 deletions(-) commit 49bf0e67382a9ece55b9693bf0d7c6c64afbbc8e Author: Antti Palosaari Date: Mon Apr 20 14:48:33 2015 -0300 [media] cx23885: Hauppauge WinTV Starburst bind I2C demod and SEC Bind tda10071 demod and a8293 SEC using I2C binding. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/cx23885/cx23885-dvb.c | 52 ++++++++++++++++++++++++++++----- 1 file changed, 44 insertions(+), 8 deletions(-) commit bf5e3ef0ccf241ab85be9fa99cc26893249a94e5 Author: Antti Palosaari Date: Thu Apr 16 13:59:46 2015 -0300 [media] cx23885: add support for DVB I2C SEC client Add support for I2C SEC (satellite equipment controller) client. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/cx23885/cx23885-dvb.c | 16 ++++++++++++++++ drivers/media/pci/cx23885/cx23885.h | 1 + 2 files changed, 17 insertions(+) commit 8022f9afcd876c54252d2d1ef5c59769adb2c2b1 Author: Antti Palosaari Date: Thu Apr 16 13:43:30 2015 -0300 [media] em28xx: bind PCTV 460e using I2C client Load PCTV 460e tda10071 demod and a8293 SEC using I2C client bindings. Remove old unused tda10071 config struct. We are using I2C platform data now. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/em28xx/em28xx-dvb.c | 68 ++++++++++++++++++++++++++--------- 1 file changed, 51 insertions(+), 17 deletions(-) commit 7098f582e07b8cc976a0168cf19ce2219cf76d80 Author: Antti Palosaari Date: Thu Apr 16 13:33:07 2015 -0300 [media] em28xx: add support for DVB SEC I2C client Add support for DVB SEC (satellite equipment controller) I2C client. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/em28xx/em28xx-dvb.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit b561baec11a49b557530736c2a7604a0232f281b Author: Antti Palosaari Date: Thu Apr 16 13:28:39 2015 -0300 [media] a8293: implement I2C client bindings Implement I2C client bindings. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/a8293.c | 87 +++++++++++++++++++++++++++++++++++-- drivers/media/dvb-frontends/a8293.h | 15 +++++++ 2 files changed, 99 insertions(+), 3 deletions(-) commit d69abb79e123c111966fb41fe3c21533e2162f1a Author: Antti Palosaari Date: Thu Apr 16 11:46:24 2015 -0300 [media] tda10071: implement I2C client bindings Implement I2C client bindings. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/tda10071.c | 95 +++++++++++++++++++++++++++++ drivers/media/dvb-frontends/tda10071.h | 29 +++++++++ drivers/media/dvb-frontends/tda10071_priv.h | 1 + 3 files changed, 125 insertions(+) commit 55af8a91640d362b20f2491336fce128c48f4079 Author: Mike Looijmans Date: Wed Jun 3 11:25:31 2015 +0100 ARM: 8387/1: arm/mm/dma-mapping.c: Add arm_coherent_dma_mmap When dma-coherent transfers are enabled, the mmap call must not change the pg_prot flags in the vma struct. Split the arm_dma_mmap into a common and specific parts, and add a "arm_coherent_dma_mmap" implementation that does not alter the page protection flags. Tested on a topic-miami board (Zynq) using the ACP port to transfer data between FPGA and CPU using the Dyplo framework. Without this patch, byte-wise access to mmapped coherent DMA memory was about 20x slower because of the memory being marked as non-cacheable, and transfer speeds would not exceed 240MB/s. After this patch, the mapped memory is cacheable and the transfer speed is again 600MB/s (limited by the FPGA) when the data is in the L2 cache, while data integrity is being maintained. The patch has no effect on non-coherent DMA. Signed-off-by: Mike Looijmans Acked-by: Arnd Bergmann Signed-off-by: Russell King arch/arm/mm/dma-mapping.c | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) commit 0bbe6b5a73c00f8c8e7eb38fb86993f03cd64b70 Author: Michael van der Westhuizen Date: Thu Jun 4 15:14:51 2015 +0100 ARM: 8388/1: tcm: Don't crash when TCM banks are protected by TrustZone Fixes the TCM initialisation code to handle TCM banks that are present but inaccessible due to TrustZone configuration. This is the default case when enabling the non-secure world. It may also be the case that that the user decided to use TCM for TrustZone. This change has exposed a bug in handling of TCM where no TCM bank was usable (the 0 size TCM case). This change addresses the resulting hang. This code only handles the ARMv6 TCMTR register format, and will not work correctly on boards that use the ARMv7 (or any other) format. This is handled by performing an early exit from the initialisation function when the TCMTR reports any format other than v6. Signed-off-by: Michael van der Westhuizen Reviewed-by: Linus Walleij Reviewed-by: Dave Martin Signed-off-by: Russell King arch/arm/kernel/tcm.c | 104 ++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 101 insertions(+), 3 deletions(-) commit d2b30cd4b7223a96e606dfc8120626f66d81e091 Author: Nathan Lynch Date: Wed Jun 3 00:41:15 2015 +0100 ARM: 8384/1: VDSO: force use of BFD linker When using a toolchain with gold as the default linker, the VDSO build fails: VDSO arch/arm/vdso/vdso.so.raw HOSTCC arch/arm/vdso/vdsomunge MUNGE arch/arm/vdso/vdso.so.dbg OBJCOPY arch/arm/vdso/vdso.so BFD: arch/arm/vdso/vdso.so: Not enough room for program headers, try linking with -N For whatever reason, ld.gold is omitting an exidx program header that ld.bfd emits, and even when I work around that, I don't get a working VDSO. For now, instead of supporting gold (which will fail to link the kernel anyway since it does not implement --pic-veneer), direct the compiler to use the traditional bfd linker. This is accomplished by using -fuse-ld, which is implemented in GCC 4.8 and later. Note: one limitation of this is that if the toolchain is configured to use gold by default, and the bfd linker is not in $PATH, the VDSO build will fail: VDSO arch/arm/vdso/vdso.so.raw collect2: fatal error: cannot find 'ld' This will happen if CROSS_COMPILE begins with a path such as /opt/bin/arm-linux-gnu- but /opt/bin is not in $PATH. This is considered an acceptable corner-case limitation and is easily worked around. Additonal note: we use cc-option instead of cc-ldoption so that -fuse-ld=bfd is placed in the command line if the compiler recognizes the option. Using cc-ldoption results in an attempt to link, which fails in the situation just described, causing -fuse-ld=bfd to be omitted and gold to be used for the VDSO link, which is what we're trying to prevent. Reported-by: Stefan Agner Signed-off-by: Nathan Lynch Signed-off-by: Russell King arch/arm/vdso/Makefile | 1 + 1 file changed, 1 insertion(+) commit d33ce23b2160d26b27a47092da5d556b5b11a12a Author: Nathan Lynch Date: Wed Jun 3 00:46:04 2015 +0100 ARM: 8385/1: VDSO: group link options Currently the VDSO's link options are kind of a mess spread between ccflags-y and cmd_vdsold. Collect linker directives into one variable, VDSO_LDFLAGS, and use that in cmd_vdsold. Signed-off-by: Nathan Lynch Signed-off-by: Russell King arch/arm/vdso/Makefile | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) commit 951b6a0717db97ce420547222647bcc40bf1eacd Author: Jaganath Kanakkassery Date: Thu May 14 12:58:08 2015 +0530 Bluetooth: Fix potential NULL dereference in RFCOMM bind callback addr can be NULL and it should not be dereferenced before NULL checking. Signed-off-by: Jaganath Kanakkassery Signed-off-by: Marcel Holtmann net/bluetooth/rfcomm/sock.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) commit 641c43cc6909d949f7c630a5208e76ffbb236521 Author: James Smart Date: Thu May 21 13:55:31 2015 -0400 lpfc: Update driver version for upstream patch set 10.6.0.1. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/lpfc/lpfc_version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f911462fc4aad8885de4844bf0e8e561e77df6a6 Author: James Smart Date: Thu May 21 13:55:30 2015 -0400 lpfc: Change buffer pool empty message to miscellaneous category Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/lpfc/lpfc_scsi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f818ea7ad46222526bcaa3b04208775f371dc03c Author: James Smart Date: Thu May 21 13:55:29 2015 -0400 lpfc: Fix incorrect log message reported for empty FCF record. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/lpfc/lpfc_hbadisc.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 466e840b7809e00ab3a1af9b4a5b5751e681730d Author: James Smart Date: Thu May 21 13:55:28 2015 -0400 lpfc: Fix rport leak. Correct locking and refcounting in tracking our rports Signed-off-by: Dick Kennedy Signed-off-by: James Smart Signed-off-by: James Bottomley drivers/scsi/lpfc/lpfc_disc.h | 4 +- drivers/scsi/lpfc/lpfc_els.c | 12 +++- drivers/scsi/lpfc/lpfc_hbadisc.c | 145 +++++++++++++++++++-------------------- 3 files changed, 79 insertions(+), 82 deletions(-) commit e5abba4c6aa7f094d32c0115193516697da60df8 Author: James Smart Date: Thu May 21 13:55:27 2015 -0400 lpfc: Correct loss of RSCNs during array takeaway/giveback testing. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/lpfc/lpfc_els.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) commit cc82355a6e6cb606125b849db7f9e9a10408d407 Author: James Smart Date: Thu May 21 13:55:26 2015 -0400 lpfc: Fix crash in vport_delete. We inadvertantly took the path to recreate the vport while in a driver teardown path Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/lpfc/lpfc_init.c | 8 +++++++- drivers/scsi/lpfc/lpfc_nportdisc.c | 8 +++++++- drivers/scsi/lpfc/lpfc_vport.c | 9 +++++---- 3 files changed, 19 insertions(+), 6 deletions(-) commit ed243d37be56be3dff4bf51a6f870d36843ed12f Author: James Smart Date: Thu May 21 13:55:25 2015 -0400 lpfc: Fix to remove IRQF_SHARED flag for MSI/MSI-X vectors. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/lpfc/lpfc_init.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 6be09b48ae8bcce8426877b5f89e6218ffb657b0 Author: Frederic Danis Date: Thu May 28 11:25:05 2015 +0200 Bluetooth: hci_uart: Update Broadcom UART setup Use btbcm helpers to perform controller setup. Perform host UART reset to init speed between btbcm_patchram() and btbcm_finalize(). This may be need because firmware loading may have reseted controller UART to init speed. Signed-off-by: Frederic Danis Signed-off-by: Marcel Holtmann drivers/bluetooth/hci_bcm.c | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) commit 6b337e032c398aa9d92222f0709f4e06932acf72 Author: James Smart Date: Thu May 21 13:55:23 2015 -0400 lpfc: Fix discovery issue when changing from Pt2Pt to Fabric. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/lpfc/lpfc_hbadisc.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit c84163d179e561613472a4ee479eb67ba2771177 Author: James Smart Date: Thu May 21 13:55:22 2015 -0400 lpfc: Correct reporting of vport state on fdisc command failure. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/lpfc/lpfc_els.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 86478875eb4d2e7108b914f8a5e53be260816d5c Author: James Smart Date: Thu May 21 13:55:21 2015 -0400 lpfc: Add support for RDP ELS command. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/lpfc/lpfc.h | 1 + drivers/scsi/lpfc/lpfc_crtn.h | 2 + drivers/scsi/lpfc/lpfc_els.c | 420 ++++++++++++++++++++++++++++++++++++++++++ drivers/scsi/lpfc/lpfc_hw.h | 169 +++++++++++++++++ drivers/scsi/lpfc/lpfc_hw4.h | 201 ++++++++++++++++++++ drivers/scsi/lpfc/lpfc_mbox.c | 152 +++++++++++++++ drivers/scsi/lpfc/lpfc_sli4.h | 10 + 7 files changed, 955 insertions(+) commit 75e167e6f0ddcf65567c0a604e4827f0a914a4c1 Author: Frederic Danis Date: Thu May 28 11:25:04 2015 +0200 Bluetooth: btbcm: Add helper functions for UART setup Firmware loading may reset the controller UART speed and needs to set host UART speed back to init speed. UART drivers setup is split in 3 parts: - btbcm_initialize() resets the controller and returns the firmware name based on controller revision and sub_version. - btbtcm_patchram() (already existing and public), which takes the firmware name as parameter, requests the firmware and loads it to the controller. - btbcm_finalize() which resets the controller, reads local version and checks if the controller address is a default one or not. Remove firmware name retrieval for UART controllers from btbcm_setup_patchram(). Signed-off-by: Frederic Danis Signed-off-by: Marcel Holtmann drivers/bluetooth/btbcm.c | 89 +++++++++++++++++++++++++++++++++++++++++++++++ drivers/bluetooth/btbcm.h | 14 ++++++++ 2 files changed, 103 insertions(+) commit 7721383f4199bb704c664f009423bc228bbac52e Author: Frederic Danis Date: Thu May 28 11:25:03 2015 +0200 Bluetooth: hci_uart: Support operational speed during setup Add initial and operational speeds. Change to operational speed as soon as possible. If controller set_baudrate() fails, continue at initial speed. Signed-off-by: Frederic Danis Signed-off-by: Marcel Holtmann drivers/bluetooth/hci_ldisc.c | 26 ++++++++++++++++++++++++++ drivers/bluetooth/hci_uart.h | 4 ++++ 2 files changed, 30 insertions(+) commit a8f3b9418ad2dd8f3efee0c08cdd61ac3763e739 Author: Frederic Danis Date: Thu May 28 11:25:02 2015 +0200 Bluetooth: btbcm: Add BCM4324B3 UART device Add "waiting for configuration" address. Add lmp_subver and firmware name for BCM4324B3 controller. Signed-off-by: Frederic Danis Signed-off-by: Marcel Holtmann drivers/bluetooth/btbcm.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) commit 18aeb4445aa00f6f402ba3a92a2e9ff3d13882b4 Author: Frederic Danis Date: Thu May 28 11:25:01 2015 +0200 Bluetooth: btbcm: Move request/release_firmware() Move request/release_firmware() out of btbcm_patchram(). This allows a better error management, if request_firmware() returns an error then the controller will be used without firmware loading and 0 is returned. This will imply to change btbcm_patchram() to accept a firmware instead of firmware name. Signed-off-by: Frederic Danis Signed-off-by: Marcel Holtmann drivers/bluetooth/btbcm.c | 26 ++++++++++++-------------- drivers/bluetooth/btbcm.h | 4 ++-- drivers/bluetooth/hci_bcm.c | 1 + drivers/bluetooth/hci_ldisc.c | 1 + 4 files changed, 16 insertions(+), 16 deletions(-) commit 513d1a1d1c6be58668188e44cdadcb43061dd43c Author: Hariprasad Shenai Date: Fri Jun 5 14:36:33 2015 +0530 cxgb4: Fix static checker warning The patch e85c9a7abfa4: ("cxgb4/cxgb4vf: Add code to calculate T5 BAR2 Offsets for SGE Queue Registers") from Dec 3, 2014, leads to the following static checker warning: drivers/net/ethernet/chelsio/cxgb4/t4_hw.c:5358 t4_bar2_sge_qregs() warn: should '(qid >> qpp_shift) << page_shift' be a 64 bit type? This patch fixes it Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4da44fdf30676d0260241b7882ca4b5d517d8eb4 Merge: bb62f79 c1e9af0 Author: David S. Miller Date: Fri Jun 5 21:26:07 2015 -0700 Merge branch 'cxgb4-next' Hariprasad Shenai says: ==================== Free VI, flush sge ec and some other misc. fixes This patch series adds the following. Free VI interface during remove, flush SGE ec routine, rename t4_link_start to t4_link_l1cfg since it only does l1 configuration, set mac addr from when we can't contact firmware for debug purpose, set pcie completion timeout and use fw interface to access TP_PIO_XXX registers This patch series has been created against net-next tree and includes patches on cxgb4 driver. We have included all the maintainers of respective drivers. Kindly review the change and let us know in case of any review comments. ==================== Signed-off-by: David S. Miller commit c1e9af0ca1f8adb7f3badfc027fa42ecfcb34956 Author: Hariprasad Shenai Date: Fri Jun 5 14:24:52 2015 +0530 cxgb4: Use FW LDST cmd to access TP_PIO_{ADDR, DATA} register first The TP_PIO_{ADDR,DATA} registers are are in conflict with the firmware's use of these registers. Added a routine to access it through FW LDST cmd. Access all TP_PIO_{ADDR,DATA} register access through new routine if FW is alive. If firmware is dead, than fall back to indirect access. Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 2 +- drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 102 +++++++++++++++++++----- 2 files changed, 83 insertions(+), 21 deletions(-) commit eca0f6eeadec74027a4f940bd6958c41e5259618 Author: Hariprasad Shenai Date: Fri Jun 5 14:24:51 2015 +0530 cxgb4: program pci completion timeout Set pci completion timeout to 0xd. Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) commit 098ef6c28a956ba05c31fb9fbf8bad56165ed415 Author: Hariprasad Shenai Date: Fri Jun 5 14:24:50 2015 +0530 cxgb4: Set mac addr from vpd, when we can't contact firmware Grab the Adapter MAC Address out of the VPD and use it for the "debug" network interface when either we can't contact the firmware Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4.h | 32 +++++++++++++---- drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 21 +++++++++-- drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 47 +++++++++++++++++++------ 3 files changed, 81 insertions(+), 19 deletions(-) commit 4036da9012019f2214be3bc3598a8234953e035f Author: Hariprasad Shenai Date: Fri Jun 5 14:24:49 2015 +0530 cxgb4: Rename t4_link_start() to t4_link_l1cfg t4_link_start() was completely misnamed. It does _not_ start up the link. It merely does the L1 Configuration for the link. The Link Up process is started automatically by the firmware when the number of enabled Virtual Interfaces on a port goes from 0 to 1. So renaming this routine to t4_link_l1cfg() for better documentation. Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4.h | 2 +- drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c | 4 ++-- drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 2 +- drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) commit 5d700ecb06275af22b3db6559eb5b3d7a8e6bf70 Author: Hariprasad Shenai Date: Fri Jun 5 14:24:48 2015 +0530 cxgb4: Add sge ec context flush service Add function to flush the sge ec context cache, and utilize this new function in the driver 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 | 5 +---- drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 26 +++++++++++++++++++++++++ drivers/net/ethernet/chelsio/cxgb4/t4fw_api.h | 6 +++++- 4 files changed, 33 insertions(+), 5 deletions(-) commit 4f3a0fcfb64b107bfbec0779a02438b321cc5dcf Author: Hariprasad Shenai Date: Fri Jun 5 14:24:47 2015 +0530 cxgb4: Free Virtual Interfaces in remove routine Free VI interfaces in remove routine. If we don't do this then the firmware will never drop the physical link to the peer. Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4.h | 3 +++ drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 5 +++++ drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 27 +++++++++++++++++++++++++ 3 files changed, 35 insertions(+) commit c70316f2a193fcd62232cddc1b2d44997ca2c930 Author: Hans Verkuil Date: Fri Jun 5 13:09:31 2015 -0300 [media] vivid: move PRINTSTR to separate functions Commit 84cb7be43cec12868e94163c99fdc34c0297c3b8 broke vivid-tpg (uninitialized variable p). This patch takes a different approach: four different functions are created, one for each PRINTSTR version. In order to avoid the 'the frame size of 1308 bytes is larger than 1024 bytes' warning I had to mark those functions with 'noinline'. For whatever reason gcc seems to inline this aggressively and it is doing weird things with the stack. I tried to read the assembly code, but I couldn't see what exactly it was doing on the stack. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/vivid/vivid-tpg.c | 128 +++++++++++++++++++------------ 1 file changed, 81 insertions(+), 47 deletions(-) commit 41c0126b3f22ef36b97b3c38b8f29569848a5ce2 Author: Tahsin Erdogan Date: Tue May 19 13:55:21 2015 -0700 block: Make CFQ default to IOPS mode on SSDs CFQ idling causes reduced IOPS throughput on non-rotational disks. Since disk head seeking is not applicable to SSDs, it doesn't really help performance by anticipating future near-by IO requests. By turning off idling (and switching to IOPS mode), we allow other processes to dispatch IO requests down to the driver and so increase IO throughput. Following FIO benchmark results were taken on a cloud SSD offering with idling on and off: Idling iops avg-lat(ms) stddev bw ------------------------------------------------------ On 7054 90.107 38.697 28217KB/s Off 29255 21.836 11.730 117022KB/s fio --name=temp --size=100G --time_based --ioengine=libaio \ --randrepeat=0 --direct=1 --invalidate=1 --verify=0 \ --verify_fatal=0 --rw=randread --blocksize=4k --group_reporting=1 \ --filename=/dev/sdb --runtime=10 --iodepth=64 --numjobs=10 And the following is from a local SSD run: Idling iops avg-lat(ms) stddev bw ------------------------------------------------------ On 19320 33.043 14.068 77281KB/s Off 21626 29.465 12.662 86507KB/s fio --name=temp --size=5G --time_based --ioengine=libaio \ --randrepeat=0 --direct=1 --invalidate=1 --verify=0 \ --verify_fatal=0 --rw=randread --blocksize=4k --group_reporting=1 \ --filename=/fio_data --runtime=10 --iodepth=64 --numjobs=10 Reviewed-by: Nauman Rafique Signed-off-by: Tahsin Erdogan Signed-off-by: Jens Axboe block/cfq-iosched.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 86839c56dee28c315a4c19b7bfee450ccd84cd25 Author: Bob Liu Date: Wed Jun 3 13:40:03 2015 +0800 xen/block: add multi-page ring support Extend xen/block to support multi-page ring, so that more requests can be issued by using more than one pages as the request ring between blkfront and backend. As a result, the performance can get improved significantly. We got some impressive improvements on our highend iscsi storage cluster backend. If using 64 pages as the ring, the IOPS increased about 15 times for the throughput testing and above doubled for the latency testing. The reason was the limit on outstanding requests is 32 if use only one-page ring, but in our case the iscsi lun was spread across about 100 physical drives, 32 was really not enough to keep them busy. Changes in v2: - Rebased to 4.0-rc6. - Document on how multi-page ring feature working to linux io/blkif.h. Changes in v3: - Remove changes to linux io/blkif.h and follow the protocol defined in io/blkif.h of XEN tree. - Rebased to 4.1-rc3 Changes in v4: - Turn to use 'ring-page-order' and 'max-ring-page-order'. - A few comments from Roger. Changes in v5: - Clarify with 4k granularity to comment - Address more comments from Roger Signed-off-by: Bob Liu Signed-off-by: Konrad Rzeszutek Wilk drivers/block/xen-blkback/blkback.c | 13 ++++ drivers/block/xen-blkback/common.h | 2 + drivers/block/xen-blkback/xenbus.c | 89 ++++++++++++++++++------ drivers/block/xen-blkfront.c | 135 +++++++++++++++++++++++++----------- 4 files changed, 180 insertions(+), 59 deletions(-) commit 8ab0144a466320cc37c52e7866b5103c5bbd4e90 Author: Bob Liu Date: Wed Jun 3 13:40:02 2015 +0800 driver: xen-blkfront: move talk_to_blkback to a more suitable place The major responsibility of talk_to_blkback() is allocate and initialize the request ring and write the ring info to xenstore. But this work should be done after backend entered 'XenbusStateInitWait' as defined in the protocol file. See xen/include/public/io/blkif.h in XEN git tree: Front Back ================================= ===================================== XenbusStateInitialising XenbusStateInitialising o Query virtual device o Query backend device identification properties. data. o Setup OS device instance. o Open and validate backend device. o Publish backend features and transport parameters. | | V XenbusStateInitWait o Query backend features and transport parameters. o Allocate and initialize the request ring. There is no problem with this yet, but it is an violation of the design and furthermore it would not allow frontend/backend to negotiate 'multi-page' and 'multi-queue' features. Changes in v2: - Re-write the commit message to be more clear. Signed-off-by: Bob Liu Acked-by: Roger Pau Monné Signed-off-by: Konrad Rzeszutek Wilk drivers/block/xen-blkfront.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) commit 69b91ede5cab843dcf345c28bd1f4b5a99dacd9b Author: Bob Liu Date: Wed Jun 3 13:40:01 2015 +0800 drivers: xen-blkback: delay pending_req allocation to connect_ring This is a pre-patch for multi-page ring feature. In connect_ring, we can know exactly how many pages are used for the shared ring, delay pending_req allocation here so that we won't waste too much memory. Signed-off-by: Bob Liu Signed-off-by: Konrad Rzeszutek Wilk drivers/block/xen-blkback/common.h | 2 +- drivers/block/xen-blkback/xenbus.c | 82 ++++++++++++++++++-------------------- 2 files changed, 39 insertions(+), 45 deletions(-) commit 761d3e328c503c8428cec54e33196e49f5c46e55 Author: Dinh Nguyen Date: Fri Jun 5 11:26:14 2015 -0500 clk: socfpga: make use of of_clk_parent_fill helper function Use of_clk_parent_fill to fill in the parent clock's array. Signed-off-by: Dinh Nguyen Signed-off-by: Stephen Boyd drivers/clk/socfpga/clk-gate.c | 6 +----- drivers/clk/socfpga/clk-pll.c | 7 +------ 2 files changed, 2 insertions(+), 11 deletions(-) commit 2e61dfb3602b904966491f260f62c01b9895936a Author: Dinh Nguyen Date: Fri Jun 5 11:26:13 2015 -0500 clk: of: helper for filling parent clock array and return num of parents Sprinkled all through the platform clock drivers are code like this to fill the clock parent array: for (i = 0; i < num_parents; ++i) parent_names[i] = of_clk_get_parent_name(np, i); The of_clk_parent_fill() will do the same as the code above, and while at it, return the number of parents as well since the logic of the function is to the walk the clock node to look for the parent. Signed-off-by: Dinh Nguyen [sboyd@codeaurora.org: Fixed kernel-doc] Signed-off-by: Stephen Boyd drivers/clk/clk.c | 21 +++++++++++++++++++++ include/linux/clk-provider.h | 2 ++ 2 files changed, 23 insertions(+) commit d3000d0d4a2b326a3b98df53b53adcd3beead72e Merge: 4a1caed 28b9fcd Author: Stephen Boyd Date: Fri Jun 5 17:22:36 2015 -0700 Merge branch 'clk-meson8b' into clk-next * clk-meson8b: clk: meson8b: Add support for Meson8b clocks clk: meson: Document bindings for Meson8b clock controller clk: meson: Add support for Meson clock controller commit 28b9fcd016126e6495d486c169fddaf26091a04b Author: Carlo Caione Date: Mon Jun 1 13:13:55 2015 +0200 clk: meson8b: Add support for Meson8b clocks This patch adds support for the basic clocks found on the Amlogic Meson8b SoCs. Signed-off-by: Carlo Caione Signed-off-by: Stephen Boyd drivers/clk/meson/Makefile | 1 + drivers/clk/meson/meson8b-clkc.c | 196 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 197 insertions(+) commit 12545fa33ad3363c639ec56bb84c8a58cfbcf65b Author: Carlo Caione Date: Mon Jun 1 13:13:54 2015 +0200 clk: meson: Document bindings for Meson8b clock controller Add documentation for the clock controller. Signed-off-by: Carlo Caione Signed-off-by: Stephen Boyd .../bindings/clock/amlogic,meson8b-clkc.txt | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit 7a29a869434e8b7a71972227f0920e2f8ea777bd Author: Carlo Caione Date: Mon Jun 1 13:13:53 2015 +0200 clk: meson: Add support for Meson clock controller This patchset adds the infrastructure for registering and managing the core clocks found on Amlogic MesonX SoCs. In particular: - PLLs - CPU clock - Fixed rate clocks, fixed factor clocks, ... Signed-off-by: Carlo Caione Signed-off-by: Stephen Boyd drivers/clk/Makefile | 1 + drivers/clk/meson/Makefile | 5 + drivers/clk/meson/clk-cpu.c | 234 +++++++++++++++++++++++++++++ drivers/clk/meson/clk-pll.c | 227 ++++++++++++++++++++++++++++ drivers/clk/meson/clkc.c | 250 +++++++++++++++++++++++++++++++ drivers/clk/meson/clkc.h | 187 +++++++++++++++++++++++ include/dt-bindings/clock/meson8b-clkc.h | 25 ++++ 7 files changed, 929 insertions(+) commit bcc8fa83136969c340a8057c44b1d5eb2f4b5295 Merge: 4c9e0f7 74cf0bc Author: Russell King Date: Sat Jun 6 01:20:54 2015 +0100 Merge branch 'for-rmk/perf' of git://git.kernel.org/pub/scm/linux/kernel/git/will/linux into devel-stable There's quite a lot here, most of it from Mark Rutland, who has been working on big.LITTLE PMU support for a while now. His work also brings us significantly closer to moving the bulk of the CPU PMU driver out into drivers/, where it can be shared with arm64. As part of this work, there is a small patch to perf/core, which has been Acked-by PeterZ and doesn't conflict with tip/perf/core at present. I've kept that patch on a separate branch, merged in here, so that the tip guys can pull it too if any unexpected issues crop up. Please note that there is a conflict with mainline, since we remove perf_event_cpu.c. The correct resolution is also to remove the file, since the changes there are already reflected in the rework (and this resolution is already included in linux-next). commit b322582fc1cfda977996e315b3c9e83018a39af3 Author: Masanari Iida Date: Fri Jun 5 21:38:19 2015 +0900 Doc:nfc: Fix typo in nfc-hci.txt This patch fix a spelling typo in nfc-hci.txt Signed-off-by: Masanari Iida Signed-off-by: Jonathan Corbet Documentation/nfc/nfc-hci.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a1efe163102fed8a3b5990a67cadb1193e630820 Author: James Smart Date: Thu May 21 13:55:20 2015 -0400 lpfc: Fix ABORTs WQ selection in terminate_rport_io Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/lpfc/lpfc_sli.c | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) commit 7aafb6e75e0212b5aa5b1f79737e6e8de40b1132 Author: James Smart Date: Thu May 21 13:55:19 2015 -0400 lpfc: Correct reference counting of rport Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/lpfc/lpfc_hbadisc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 8b017a30a31390bf7968d60e408f2d38fc7bd254 Author: James Smart Date: Thu May 21 13:55:18 2015 -0400 lpfc: Add support for ELS LCB. Also has a little whitespace fixing. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/lpfc/lpfc.h | 1 + drivers/scsi/lpfc/lpfc_els.c | 239 +++++++++++++++++++++++++++++++++++++++++- drivers/scsi/lpfc/lpfc_hw.h | 32 ++++++ drivers/scsi/lpfc/lpfc_hw4.h | 27 ++++- drivers/scsi/lpfc/lpfc_init.c | 2 + drivers/scsi/lpfc/lpfc_sli4.h | 11 ++ 6 files changed, 306 insertions(+), 6 deletions(-) commit 0290217ad830f2813bb9ed5f51af686c0c591f28 Author: James Smart Date: Thu May 21 13:55:17 2015 -0400 lpfc: Correct loss of target discovery after cable swap. Fix incorrect reference counting Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/lpfc/lpfc_hbadisc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e26422fe91e533cb0a51f5f5bf80856d40592e0d Author: James Smart Date: Thu May 21 13:55:16 2015 -0400 lpfc: The lpfc driver does not issue RFF_ID and RFT_ID in the correct sequence The order (it's a shall, but hard to dictate after the fact) is given in FC-SCM - kind of. SCM indicates what shall be implemented, lists it as (a), (b), (c), but actually doesn't say it has to be in that order. The only hard requirement, called out in FCP-4, is that you must register your FC-4 Type (via RFT_ID) before registering FC-4 Type Features (via RFF_ID), which makes sense. We obviously violated this and there were some switches (or newer fw in them) that enforced it. The other rule of thumbs are: register your data with the switch first, then register for SCRs, then do queries about the fabric, with the SCRs telling you of changes post the queries. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Reviewed-by: Hannes Reinecke Reviewed-by: Sebastian Herbszt Signed-off-by: James Bottomley drivers/scsi/lpfc/lpfc_hbadisc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e1e6e5c4de24cee3b1bdde52661a8c493351d3cb Author: Duc Dang Date: Fri May 29 11:24:31 2015 -0700 arm64: dts: Add APM X-Gene PCIe MSI nodes There is a single MSI block in X-Gene v1 SOC which serves all 5 PCIe ports. Signed-off-by: Duc Dang Signed-off-by: Tanmay Inamdar Signed-off-by: Bjorn Helgaas Reviewed-by: Marc Zyngier arch/arm64/boot/dts/apm/apm-storm.dtsi | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) commit dcd19de36775b689df602139f3e40bfb114d5d12 Author: Duc Dang Date: Fri Jun 5 15:56:34 2015 -0500 PCI: xgene: Add APM X-Gene v1 PCIe MSI/MSIX termination driver APM X-Gene v1 SoC supports its own implementation of MSI, which is not compliant to GIC V2M specification for MSI Termination. There is a single MSI block in X-Gene v1 SOC which serves all 5 PCIe ports. This MSI block supports 2048 MSI termination ports coalesced into 16 physical HW IRQ lines and shared across all 5 PCIe ports. As there are only 16 HW IRQs to serve 2048 MSI vectors, to support set_affinity correctly for each MSI vectors, the 16 HW IRQs are statically allocated to 8 X-Gene v1 cores (2 HW IRQs for each cores). To steer MSI interrupt to target CPU, MSI vector is moved around these HW IRQs lines. With this approach, the total MSI vectors this driver supports is reduced to 256. [bhelgaas: squash doc, driver, maintainer update] Signed-off-by: Duc Dang Signed-off-by: Tanmay Inamdar Signed-off-by: Bjorn Helgaas Reviewed-by: Marc Zyngier .../devicetree/bindings/pci/xgene-pci-msi.txt | 68 +++ MAINTAINERS | 8 + drivers/pci/host/Kconfig | 9 + drivers/pci/host/Makefile | 1 + drivers/pci/host/pci-xgene-msi.c | 596 +++++++++++++++++++++ drivers/pci/host/pci-xgene.c | 21 + 6 files changed, 703 insertions(+) commit 55963c9f20d03124eefb4c365e1ca1f485fc3974 Author: Sudeep Holla Date: Fri Jun 5 11:59:57 2015 +0100 irqchip: gic: Simplify gic_configure_irq by using IRQCHIP_SET_TYPE_MASKED GIC requires to disable the interrupt before changing the trigger type. irqchip core provides IRQCHIP_SET_TYPE_MASKED flag and ensures that the interrupt is masked before calling chip.irq_set_type() if the irqchip sets the flag. This patch adds IRQCHIP_SET_TYPE_MASKED to GIC irqchip so that the core can manage disabling the interrupt while changing the trigger type. Signed-off-by: Sudeep Holla Reviewed-by: Marc Zyngier Cc: Jason Cooper Link: http://lkml.kernel.org/r/1433501997-19205-1-git-send-email-sudeep.holla@arm.com Signed-off-by: Thomas Gleixner drivers/irqchip/irq-gic-common.c | 17 ----------------- drivers/irqchip/irq-gic-v3.c | 1 + drivers/irqchip/irq-gic.c | 1 + drivers/irqchip/irq-hip04.c | 1 + 4 files changed, 3 insertions(+), 17 deletions(-) commit 496c28b13eb9d4f9c751b672daad8b110084cfd8 Author: Geert Uytterhoeven Date: Fri May 29 11:27:43 2015 +0200 irqchip: renesas: intc-irqpin: Improve binding documentation Add missing documentation for required properties: - interrupt-controller, - parent interrupts (one entry per provided interrupt). Add missing documentation for optional properties: - functional clock (managed since commit 705bc96c2c15313c ("irqchip: renesas-intc-irqpin: Add minimal runtime PM support")), - power-domains. Add an example, taken from r8a7740.dtsi. Signed-off-by: Geert Uytterhoeven Acked-by: Simon Horman Cc: Jason Cooper Link: http://lkml.kernel.org/r/1432891663-23641-1-git-send-email-geert%2Brenesas@glider.be Signed-off-by: Thomas Gleixner .../interrupt-controller/renesas,intc-irqpin.txt | 39 ++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) commit 9f61f62544747db5d5c590bfae9dd19f1337e421 Merge: de8d181 086e8dd Author: Thomas Gleixner Date: Fri Jun 5 22:25:01 2015 +0200 Merge branch 'linus' into irq/core Get the urgent fixes from upstream to avoid conflicts. commit 9fc2b4b436cff7d8403034676014f1be9d534942 Author: J. Bruce Fields Date: Thu Jun 4 15:57:25 2015 -0400 selinux: fix setting of security labels on NFS Before calling into the filesystem, vfs_setxattr calls security_inode_setxattr, which ends up calling selinux_inode_setxattr in our case. That returns -EOPNOTSUPP whenever SBLABEL_MNT is not set. SBLABEL_MNT was supposed to be set by sb_finish_set_opts, which sets it only if selinux_is_sblabel_mnt returns true. The selinux_is_sblabel_mnt logic was broken by eadcabc697e9 "SELinux: do all flags twiddling in one place", which didn't take into the account the SECURITY_FS_USE_NATIVE behavior that had been introduced for nfs with eb9ae686507b "SELinux: Add new labeling type native labels". This caused setxattr's of security labels over NFSv4.2 to fail. Cc: stable@kernel.org # 3.13 Cc: Eric Paris Cc: David Quigley Reported-by: Richard Chan Signed-off-by: J. Bruce Fields Acked-by: Stephen Smalley [PM: added the stable dependency] Signed-off-by: Paul Moore security/selinux/hooks.c | 1 + 1 file changed, 1 insertion(+) commit 11e688862c4c8162119a4ca51c3326555966c8bb Merge: 28bedc5 d78395c ed043ae 67f7277 Author: Mark Brown Date: Fri Jun 5 18:55:07 2015 +0100 Merge remote-tracking branches 'asoc/topic/wm8994', 'asoc/topic/wm8996' and 'asoc/topic/zx' into asoc-next commit 28bedc59469e869c1ed9c30384d61798d6c3eb5c Merge: b5a8342 932ae88 208ba89 3d907cc 2d52d17 7a8c786 Author: Mark Brown Date: Fri Jun 5 18:55:05 2015 +0100 Merge remote-tracking branches 'asoc/topic/topology', 'asoc/topic/twl6040', 'asoc/topic/wm5100', 'asoc/topic/wm8741' and 'asoc/topic/wm8960' into asoc-next commit b5a8342c1d940e4b91df2d06904fdc00f3a131ac Merge: 19726b0 c9eac46 a571cb1 a650bb3 97fceb4 Author: Mark Brown Date: Fri Jun 5 18:55:03 2015 +0100 Merge remote-tracking branches 'asoc/topic/sta350', 'asoc/topic/tas2552', 'asoc/topic/tas3a227e' and 'asoc/topic/tas571x' into asoc-next commit 19726b0ed568c178f9c53df82d775a3df468f57f Merge: cee77be e0ae225 aa3a0f2 fa68cfd 9a122de 79ffbf1 Author: Mark Brown Date: Fri Jun 5 18:55:01 2015 +0100 Merge remote-tracking branches 'asoc/topic/simple', 'asoc/topic/ssm2518', 'asoc/topic/ssm2602', 'asoc/topic/ssm4567' and 'asoc/topic/sta32x' into asoc-next commit cee77be0ad7e3730466887a0623456304aef873a Merge: a178831 b3b10e9 1a3e2f1 1f39d93 Author: Mark Brown Date: Fri Jun 5 18:54:59 2015 +0100 Merge remote-tracking branches 'asoc/topic/rt5677', 'asoc/topic/samsung' and 'asoc/topic/sgtl5000' into asoc-next commit a178831a635b1a09316437fcdeb7eca2544a178f Merge: f36795a 16f0acd 0574eab 92ac4c5 6cc8ae9 02299d9 Author: Mark Brown Date: Fri Jun 5 18:54:57 2015 +0100 Merge remote-tracking branches 'asoc/topic/max98095', 'asoc/topic/omap', 'asoc/topic/pxa', 'asoc/topic/qcom' and 'asoc/topic/rcar' into asoc-next commit f36795a60d8231b25e969f74c951294ccff52816 Merge: eb2d8ec 0a8ba6e 40579e0 859c34b 08a1e64 bb13f0e Author: Mark Brown Date: Fri Jun 5 18:54:55 2015 +0100 Merge remote-tracking branches 'asoc/topic/gpiod-flags', 'asoc/topic/gtm601', 'asoc/topic/intel', 'asoc/topic/lm3857' and 'asoc/topic/max98090' into asoc-next commit eb2d8ec37fadb272dae7f1e6c93abf03fec8e3e3 Merge: 698803f 0f9a7fe c5f4823 f490f32 ff9174d e616d2e Author: Mark Brown Date: Fri Jun 5 18:54:53 2015 +0100 Merge remote-tracking branches 'asoc/topic/fsl', 'asoc/topic/fsl-sai', 'asoc/topic/fsl-spdif', 'asoc/topic/fsl-ssi' and 'asoc/topic/gpio-jack' into asoc-next commit 698803f8b9cec4e224bc344f7120f70246457ae0 Merge: 6ba82f9 518f6ba b073ed4 Author: Mark Brown Date: Fri Jun 5 18:54:52 2015 +0100 Merge remote-tracking branches 'asoc/topic/davinci' and 'asoc/topic/dpcm' into asoc-next commit 6ba82f91df1f3b57a2339581f5065d178be7e413 Merge: 202f5ec 6c21919 c778b47 1660706 c682363 Author: Mark Brown Date: Fri Jun 5 18:54:51 2015 +0100 Merge remote-tracking branches 'asoc/topic/au1x', 'asoc/topic/bt-sco', 'asoc/topic/cs35l32' and 'asoc/topic/da7210' into asoc-next commit 202f5ecb4f0e993ed18a760bfcb707665d1cdd24 Merge: 0451b02 1a65864 a34c31a 69a6582 0ef9dc1 Author: Mark Brown Date: Fri Jun 5 18:54:49 2015 +0100 Merge remote-tracking branches 'asoc/topic/adau1977', 'asoc/topic/adav80x', 'asoc/topic/arizona' and 'asoc/topic/atmel' into asoc-next commit 0451b02ef0981227a1bd554a72b91513771afd9e Merge: f3b368d a60abdf 9953a8f f21d1e2 64fcc1f 33c7b14 Author: Mark Brown Date: Fri Jun 5 18:54:47 2015 +0100 Merge remote-tracking branches 'asoc/topic/ac97', 'asoc/topic/ad1836', 'asoc/topic/ada1977', 'asoc/topic/adau1701' and 'asoc/topic/adau17x1' into asoc-next commit f3b368d3b9a22bb1ddc80808a64ecb7559791e87 Merge: 977732b 345b0f5 Author: Mark Brown Date: Fri Jun 5 18:54:46 2015 +0100 Merge remote-tracking branch 'asoc/topic/rt5645' into asoc-next commit 977732b06045a508edc7b105e9fef524163616df Merge: 4b57895 acde50a Author: Mark Brown Date: Fri Jun 5 18:54:45 2015 +0100 Merge remote-tracking branch 'asoc/topic/dma' into asoc-next commit 4b57895522b150966eebcf18f929e1c522d90bb9 Merge: 2914b70 cc76e7d Author: Mark Brown Date: Fri Jun 5 18:54:45 2015 +0100 Merge remote-tracking branch 'asoc/topic/dapm' into asoc-next commit 2914b7004b932a7ddee97c026ebafd16ab841320 Merge: f1363c4 3e0aa8d Author: Mark Brown Date: Fri Jun 5 18:54:44 2015 +0100 Merge remote-tracking branch 'asoc/topic/core' into asoc-next commit f1363c40c7a9a89e513071e4b6b330342fa59a78 Merge: db2ecdf 14ba3ec ebb6ad7 12c3500 Author: Mark Brown Date: Fri Jun 5 18:54:43 2015 +0100 Merge remote-tracking branches 'asoc/fix/wm8737', 'asoc/fix/wm8903' and 'asoc/fix/wm8955' into asoc-linus commit db2ecdfde0ab892563d66a3468a9734c28898640 Merge: 0357fe0 15575ed e712bfc 0b51601 7667f71 72f0095 Author: Mark Brown Date: Fri Jun 5 18:54:41 2015 +0100 Merge remote-tracking branches 'asoc/fix/arizona', 'asoc/fix/fmtbit', 'asoc/fix/max98925', 'asoc/fix/rcar' and 'asoc/fix/ux500' into asoc-linus commit 0357fe0bf52ab43069212702db8028a80d99229f Merge: c65b99f 7ea3470 Author: Mark Brown Date: Fri Jun 5 18:54:41 2015 +0100 Merge remote-tracking branch 'asoc/fix/rt5645' into asoc-linus commit a571cb17acb6156e6ea8d5fe2ff824e713416bae Author: Peter Ujfalusi Date: Thu Jun 4 16:04:30 2015 +0300 ASoC: tas2552: Configure the WCLK frequency based on the stream Instead of hard wiring the WCLK frequency at probe time do it runtime. The hard wired 88_96KHz was not even setting the correct bits since it was defined as (1 << 6) which will change the I2S_OUT_SEL bit and will leave the amplifier configured for 8KHz. At the same time clean up and fix the CFG3 register bits. Signed-off-by: Peter Ujfalusi Signed-off-by: Mark Brown sound/soc/codecs/tas2552.c | 43 +++++++++++++++++++++++++++++++++++++++++-- sound/soc/codecs/tas2552.h | 37 ++++++++++++++++++------------------- 2 files changed, 59 insertions(+), 21 deletions(-) commit d20b098dd98ec9e0a205ad59e32d93a636a783b3 Author: Peter Ujfalusi Date: Thu Jun 4 16:04:29 2015 +0300 ASoC: tas2552: Add support for word length configuration Configure the word length based on the params_width of the stream. Also configure the clock per frame value which is used when tas2552 is bus master. Signed-off-by: Peter Ujfalusi Signed-off-by: Mark Brown sound/soc/codecs/tas2552.c | 38 ++++++++++++++++++++++++++++++++++++++ sound/soc/codecs/tas2552.h | 10 ++++++++++ 2 files changed, 48 insertions(+) commit 7d78502502f3984894c0bb8d330ef894f2c2c04c Author: Peter Ujfalusi Date: Thu Jun 4 16:04:28 2015 +0300 ASoC: tas2552: Implement startup/stop sequence as per TRM Certain sequence need to be followed in order to have smooth power up and power down performance. Execute this sequence via DAPM_POST widget. Remove patching the RESERVED_0D register at probe time since it has to be handled every time when we stop or start the amplifier. In order to be able to execute the sequence at the correct time, the driver need to request to ignore the pmdown time. Signed-off-by: Peter Ujfalusi Signed-off-by: Mark Brown sound/soc/codecs/tas2552.c | 44 ++++++++++++++++++++++++++++---------------- 1 file changed, 28 insertions(+), 16 deletions(-) commit dd6ae3bcfe0fa9cf1bdb6f952c617f2070c57b37 Author: Peter Ujfalusi Date: Thu Jun 4 16:04:27 2015 +0300 ASoC: tas2552: Correct the Speaker Driver Playback Volume (PGA_GAIN) The last parameter for DECLARE_TLV_DB_SCALE() is to tell if the gain will be muted or not when it is set to raw 0. IN this case it is not muted. The PGA_GAIN is in 0-4 bits in the register. Fix the offset in the SOC_SINGLE_TLV() for this. Signed-off-by: Peter Ujfalusi Signed-off-by: Mark Brown sound/soc/codecs/tas2552.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 609e71313bddd217808eea2ddd5d0faecaa07131 Author: Peter Ujfalusi Date: Thu Jun 4 16:04:26 2015 +0300 ASoC: tas2552: Clean up the Digital - Analog DAPM route definition The strings should be: 'static const char * const tas2552_input_texts[]' SOC_DAPM_ENUM should have "Route" in place of xname and no need to have it as an array. Also align the parameters. Signed-off-by: Peter Ujfalusi Signed-off-by: Mark Brown sound/soc/codecs/tas2552.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) commit 3f747a810e19b3ab88c6b303490c66f59e78b80b Author: Peter Ujfalusi Date: Thu Jun 4 16:04:25 2015 +0300 ASoC: tas2552: Add TDM support TDM support is achieved using DSP transfer mode and setting a programmable offset which specifies where data begins with respect to the frame sync. Signed-off-by: Peter Ujfalusi Signed-off-by: Mark Brown sound/soc/codecs/tas2552.c | 59 ++++++++++++++++++++++++++++++++++++++++++---- sound/soc/codecs/tas2552.h | 3 +++ 2 files changed, 58 insertions(+), 4 deletions(-) commit 1b68c7dca2ca7426c758debdbf9dd5f7c308c1c8 Author: Peter Ujfalusi Date: Thu Jun 4 16:04:24 2015 +0300 ASoC: tas2552: Correct and clean up data format and BCLK/WCLK direction Use names from the datasheet for the definitions. Correct the data format definitions since they were not correct. Signed-off-by: Peter Ujfalusi Signed-off-by: Mark Brown sound/soc/codecs/tas2552.c | 18 +++++++++--------- sound/soc/codecs/tas2552.h | 17 ++++++++--------- 2 files changed, 17 insertions(+), 18 deletions(-) commit 4c331373b99de9c65dcba8633f73fa3efc20d01f Author: Peter Ujfalusi Date: Thu Jun 4 16:04:23 2015 +0300 ASoC: tas2552: Correct dai format support DSP_A mode require one bit delay from the FS, DSP_B is without data delay. When checking the requested format, also match the bit and fs inversion flag along with the format since it is not possible to change inversion. Signed-off-by: Peter Ujfalusi Signed-off-by: Mark Brown sound/soc/codecs/tas2552.c | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) commit 9d87a8888c0b2a3b2ec1204e0488935f021d6968 Author: Peter Ujfalusi Date: Thu Jun 4 16:04:22 2015 +0300 ASoC: tas2552: Add support for pll and pdm source clock selection Instead of hard wiring the PLL_CLKIN and PDM_CLK to be sourced from BCLK add proper clock configuration via the set_dai_sysclk callback. Signed-off-by: Peter Ujfalusi Signed-off-by: Mark Brown sound/soc/codecs/tas2552.c | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) commit 3715eda766a290fb8682bc2aabb2f23386f534de Author: Peter Ujfalusi Date: Thu Jun 4 16:04:21 2015 +0300 ASoC: tas2552: bindings header file for tas2552 codec Binding header file for clock input selection and configuration. Signed-off-by: Peter Ujfalusi Signed-off-by: Mark Brown include/dt-bindings/sound/tas2552.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit 2be2a3ff42a52e926cbd1cc1d376a161a9a73667 Author: Marek Szyprowski Date: Thu Jun 4 08:09:27 2015 +0900 ARM: EXYNOS: register power domain driver from core_initcall SYSMMU devices are registered very early in arch_initcall, so ensure that they can get access to power domains by registering power domain driver from earlier initcall. This change requires dropping usage of the platform device associated with each power domain and replacing clock calls with respective of_clk_* equivalents. Signed-off-by: Marek Szyprowski Reviewed-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/mach-exynos/pm_domains.c | 25 +++++++------------------ 1 file changed, 7 insertions(+), 18 deletions(-) commit c4241a582d22a745ce96aae98127c0e6f0f13db3 Author: Marek Szyprowski Date: Mon Feb 9 08:25:41 2015 +0100 ARM: EXYNOS: use PS_HOLD based poweroff for all supported SoCs PS_HOLD based power off procedure is common for all Exynos SoCs, so use it for every Exynos SoCs. Signed-off-by: Marek Szyprowski Tested-by: Krzysztof Kozlowski Reviewed-by: Krzysztof Kozlowski Tested-by: Tobias Jakobi Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/mach-exynos/pmu.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit e6350c575e68aa1d8c1d851729a3e05c7fd25324 Author: Krzysztof Kozlowski Date: Sat May 2 00:06:35 2015 +0900 ARM: SAMSUNG: 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: Kukjin Kim arch/arm/plat-samsung/adc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fc4a2cc7c3ccb6e02337d9d83365032a131c9da1 Author: Krzysztof Kozlowski Date: Mon Apr 27 19:48:59 2015 +0900 ARM: EXYNOS: Constify irq_domain_ops The irq_domain_ops are not modified by the driver and the irqdomain core code accepts pointer to a const data. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/mach-exynos/suspend.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit af9971144dde808338919cb4f3849ea2ac60739f Author: Bartlomiej Zolnierkiewicz Date: Wed Mar 18 14:09:57 2015 +0100 ARM: EXYNOS: add coupled cpuidle support for Exynos3250 The following patch adds coupled cpuidle support for Exynos3250 to an existing cpuidle-exynos driver. As a result it enables AFTR mode to be used by default on Exynos3250 without the need to hot unplug CPU1 first. The detailed changelog: - use exynos_[get,set]_boot_addr() in cpuidle-exynos.c and then make cpu_boot_reg_base() static - use exynos_core_restart() in exynos_cpu0_enter_aftr() - add missing smp_rmb() to exynos_cpu0_enter_aftr() (to make the code in-sync with the platform SMP code) - add call_firmware_op(cpu_boot, 1) to exynos_cpu0_enter_aftr() - use dsb_sev() instead of IPI wakeup for Exynos3250 in exynos_cpu0_enter_aftr() - add CPU0 vs CPU1 synchronization based on S5P_PMU_SPARE2 register for Exynos3250 to cpuidle-exynos.c - add flush_cache_all() for CPU1/0 before powerdown/AFTR for Exynos3250 to exynos_wfi_finisher()/exynos_do_idle() Signed-off-by: Bartlomiej Zolnierkiewicz Cc: Daniel Lezcano Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/mach-exynos/common.h | 4 +++- arch/arm/mach-exynos/exynos.c | 3 ++- arch/arm/mach-exynos/firmware.c | 1 + arch/arm/mach-exynos/platsmp.c | 8 +++---- arch/arm/mach-exynos/pm.c | 51 ++++++++++++++++++++++++++++++++++------- 5 files changed, 53 insertions(+), 14 deletions(-) commit 1225ad72866b440574a22372b9edceb035632f2b Author: Bartlomiej Zolnierkiewicz Date: Wed Mar 18 14:09:56 2015 +0100 ARM: EXYNOS: add exynos_get_boot_addr() helper Add get_cpu_boot_addr() firmware operation and then exynos_get_boot_addr() helper. This is a preparation for adding coupled cpuidle support for Exynos3250 SoC. There should be no functional changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz Cc: Daniel Lezcano Cc: Russell King Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/include/asm/firmware.h | 4 ++++ arch/arm/mach-exynos/firmware.c | 17 +++++++++++++++++ arch/arm/mach-exynos/platsmp.c | 25 +++++++++++++++++++++++++ 3 files changed, 46 insertions(+) commit 955d4cf82fcbda67ff141eebc560a3dc5a77d7ed Author: Bartlomiej Zolnierkiewicz Date: Wed Mar 18 14:09:55 2015 +0100 ARM: EXYNOS: add exynos_set_boot_addr() helper Add exynos_set_boot_addr() helper and covert existing code (exynos_boot_secondary() and exynos_smp_prepare_cpus()) to use it. There should be no functional changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz Cc: Daniel Lezcano Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/mach-exynos/platsmp.c | 53 +++++++++++++++++++++++------------------- 1 file changed, 29 insertions(+), 24 deletions(-) commit 66dc54fd7d1022ef2d55f690d8501c2e2cbb6b4a Author: Bartlomiej Zolnierkiewicz Date: Wed Mar 18 14:09:54 2015 +0100 ARM: EXYNOS: make exynos_core_restart() less verbose There is a kernel message about secondary CPU bootup when exynos_core_restart() is called through CPU hotplug code-path (the only exynos_core_restart() user currently) so there is no need for an extra info on Exynos3250 SoC about software reset. This also prepares exynos_core_restart() to be re-used in coupled cpuidle code-path in the future. Signed-off-by: Bartlomiej Zolnierkiewicz Cc: Daniel Lezcano Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/mach-exynos/platsmp.c | 1 - 1 file changed, 1 deletion(-) commit 9f294c178e03d824a89a85284b04c0770425de76 Author: Bartlomiej Zolnierkiewicz Date: Wed Mar 18 14:09:53 2015 +0100 ARM: EXYNOS: fix exynos_boot_secondary() return value on timeout exynos_boot_secondary() can erroneously return 0 or -ENOSYS even when waiting on pen_release being set to -1 timeouts. Fix it by adjusting ret variable value to -ETIMEDOUT when necessary. Signed-off-by: Bartlomiej Zolnierkiewicz Cc: Daniel Lezcano Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/mach-exynos/platsmp.c | 3 +++ 1 file changed, 3 insertions(+) commit 29e5eea06bc19114b1df668f85b605914766a899 Author: Krzysztof Kozlowski Date: Fri Apr 3 11:25:54 2015 +0200 ARM: EXYNOS: Get current parent clock for power domain on/off Using a fixed (by DTS) parent for clocks when turning on the power domain may introduce issues in other drivers. For example when such driver changes the parent during runtime and expects that he is the only place of such change. Do not rely on DTS providing the fixed parent for such clocks. Instead before switching domain off, grab a current parent of a clock with clk_get_parent(). Signed-off-by: Krzysztof Kozlowski Reviewed-by: Javier Martinez Canillas Tested-by: Javier Martinez Canillas Signed-off-by: Kukjin Kim .../devicetree/bindings/arm/exynos/power_domain.txt | 7 ++++--- arch/arm/mach-exynos/pm_domains.c | 16 +++++++++------- 2 files changed, 13 insertions(+), 10 deletions(-) commit 0c5f989f1fde27df3ddb7ffd84525b4b64eb179c Author: Sergiy Kibrik Date: Mon Apr 27 08:29:44 2015 +0300 ARM: SAMSUNG: fix clk_enable() WARNing in S3C24XX ADC Convert clk_enable/clk_disable to clk_prepare_enable/clk_disable_unprepare calls as required by common clock framework. Removes this warning on probe: ------------[ cut here ]------------ WARNING: CPU: 0 PID: 1 at drivers/clk/clk.c:889 __clk_enable+0x28/0x9c() Modules linked in: CPU: 0 PID: 1 Comm: swapper Not tainted 3.19.0+ #46 [] (unwind_backtrace) from [] (show_stack+0x10/0x14) [] (show_stack) from [] (warn_slowpath_common+0x7c/0xa4) [] (warn_slowpath_common) from [] (warn_slowpath_null+0x18/0x20) [] (warn_slowpath_null) from [] (__clk_enable+0x28/0x9c) [] (__clk_enable) from [] (clk_enable+0x18/0x2c) [] (clk_enable) from [] (s3c_adc_probe+0x11c/0x18c) [] (s3c_adc_probe) from [] (platform_drv_probe+0x30/0x78) [] (platform_drv_probe) from [] (driver_probe_device+0xb0/0x1fc) [] (driver_probe_device) from [] (__driver_attach+0x68/0x88) [] (__driver_attach) from [] (bus_for_each_dev+0x70/0x94) [] (bus_for_each_dev) from [] (bus_add_driver+0xdc/0x1c4) [] (bus_add_driver) from [] (driver_register+0x9c/0xe0) [] (driver_register) from [] (adc_init+0x10/0x34) [] (adc_init) from [] (do_one_initcall+0x110/0x1cc) [] (do_one_initcall) from [] (kernel_init_freeable+0xf4/0x1ac) [] (kernel_init_freeable) from [] (kernel_init+0x8/0xe0) [] (kernel_init) from [] (ret_from_fork+0x14/0x3c) ---[ end trace f4a1ea39a114fecf ]--- Signed-off-by: Sergiy Kibrik Reviewed-by: Krzysztof Kozlowski Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/plat-samsung/adc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit fe4034a3fad748d2fce87fe635359dcde83f188b Author: Krzysztof Kozlowski Date: Fri Mar 27 13:21:28 2015 +0100 ARM: EXYNOS: Add missing of_node_put() when parsing power domains Add missing of_node_put() to: 1. Error return path if allocating memory for exynos_pm_domain failed. 2. Second iteration over power domains if a child domain was not present or was incomplete. Signed-off-by: Krzysztof Kozlowski Reported-by: Karol Wrona Signed-off-by: Kukjin Kim arch/arm/mach-exynos/pm_domains.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit c88cad34d4e63a86d38063b38410371efc3ec350 Author: Krzysztof Kozlowski Date: Fri Mar 27 13:12:00 2015 +0100 ARM: EXYNOS: Handle of_find_device_by_node() and kstrdup() failures Prevent possible NULL pointer dereference of pointer returned by of_find_device_by_node(). Handle this by skipping such power domain. Additionally fail the init on kstrdup() failure. Such case is actually not fatal because the name for power domain allocated by kstrdup() is used only in printk. Still as a precaution handle this as an error condition. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/mach-exynos/pm_domains.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit ef2156cf4be33e099637c753ab46c5b76e15b167 Author: Krzysztof Kozlowski Date: Fri Mar 27 13:10:06 2015 +0100 ARM: EXYNOS: Handle of of_iomap() failure Prevent possible NULL pointer dereference if of_iomap() fails. Handle the error by skipping such power domain. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/mach-exynos/pm_domains.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 7ea3470a7277380248135a592a849e1c27960b2f Author: Nicolas Boichat Date: Fri Jun 5 18:42:12 2015 +0800 ASoC: rt5645: Init jack_detect_work before registering irq Prevents frequent panic on boot, if the irq handler rt5645_irq gets called before the workqueue rt5645_jack_detect_work is initialized. Signed-off-by: Nicolas Boichat Signed-off-by: Mark Brown Cc: stable@vger.kernel.org sound/soc/codecs/rt5645.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a5768aa887fb636f0cc4c83a2f1242506aaf50f6 Author: Keith Busch Date: Mon Jun 1 14:28:14 2015 -0600 NVMe: Automatic namespace rescan Namespaces may be dynamically allocated and deleted or attached and detached. This has the driver rescan the device for namespace changes after each device reset or namespace change asynchronous event. There could potentially be many detached namespaces that we don't want polluting /dev/ with unusable block handles, so this will delete disks if the namespace is not active as indicated by the response from identify namespace. This also skips adding the disk if no capacity is provisioned to the namespace in the first place. Signed-off-by: Keith Busch Signed-off-by: Jens Axboe drivers/block/nvme-core.c | 159 ++++++++++++++++++++++++++++++++++++---------- include/linux/nvme.h | 1 + include/uapi/linux/nvme.h | 4 ++ 3 files changed, 132 insertions(+), 32 deletions(-) commit b281ebb817b009dc586347d7800b80944ba3ec18 Merge: 36a7e99 3f21c26 Author: Jens Axboe Date: Fri Jun 5 10:58:28 2015 -0600 Merge branch 'for-4.2/core' into for-4.2/drivers commit 3f21c265cd5f7ae867cc0e86a1f6d5093f1963cc Author: Jens Axboe Date: Fri Jun 5 10:57:37 2015 -0600 block: add blk_set_queue_dying() to blkdev.h We export this function and NVMe wants to use it, but for some reason it was never added to the block header. Do that. Signed-off-by: Jens Axboe include/linux/blkdev.h | 1 + 1 file changed, 1 insertion(+) commit 36a7e993eedb2c3f11de3b686b351f75e1edbbb5 Author: Jon Derrick Date: Wed May 27 12:26:23 2015 -0600 NVMe: Memory barrier before queue_count is incremented Protects against reordering and/or preempting which would allow the kthread to access the queue descriptor before it is set up Signed-off-by: Jon Derrick Acked-by: Keith Busch Signed-off-by: Jens Axboe drivers/block/nvme-core.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 4cc06521ee1f153e0d292413a5bff7bbbdee92d0 Author: Keith Busch Date: Fri Jun 5 10:30:08 2015 -0600 NVMe: add sysfs and ioctl controller reset We need the ability to perform an nvme controller reset as discussed on the mailing list thread: http://lists.infradead.org/pipermail/linux-nvme/2015-March/001585.html This adds a sysfs entry that when written to will reset perform an NVMe controller reset if the controller was successfully initialized in the first place. This also adds locking around resetting the device in the async probe method so the driver can't schedule two resets. Signed-off-by: Keith Busch Cc: Brandon Schultz Cc: David Sariel Updated by Jens to: 1) Merge this with the ioctl reset patch from David Sariel. The ioctl path now shares the reset code from the sysfs path. 2) Don't flush work if we fail issuing the reset. Signed-off-by: Jens Axboe drivers/block/nvme-core.c | 53 +++++++++++++++++++++++++++++++++++++++++++++++ include/uapi/linux/nvme.h | 1 + 2 files changed, 54 insertions(+) commit e80a4a9426adeaa34c009bc0bc61365e0580bf01 Author: Paolo Bonzini Date: Thu Jun 4 16:32:48 2015 +0200 KVM: x86: mark legacy PCI device assignment as deprecated Follow up to commit e194bbdf362ba7d53cfd23ba24f1a7c90ef69a74. Suggested-by: Bandan Das Suggested-by: Alex Williamson Signed-off-by: Paolo Bonzini Documentation/virtual/kvm/api.txt | 14 +++++++------- arch/x86/kvm/Kconfig | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) commit 6d396b55203969ca61cc8f838db2e68433e13f7b Author: Paolo Bonzini Date: Wed Apr 1 14:25:33 2015 +0200 KVM: x86: advertise KVM_CAP_X86_SMM ... and we're done. :) Because SMBASE is usually relocated above 1M on modern chipsets, and SMM handlers might indeed rely on 4G segment limits, we only expose it if KVM is able to run the guest in big real mode. This includes any of VMX+emulate_invalid_guest_state, VMX+unrestricted_guest, or SVM. Reviewed-by: Radim Krčmář Signed-off-by: Paolo Bonzini arch/x86/include/asm/kvm_host.h | 1 + arch/x86/kvm/svm.c | 6 ++++++ arch/x86/kvm/vmx.c | 6 ++++++ arch/x86/kvm/x86.c | 15 +++++++++++++++ 4 files changed, 28 insertions(+) commit 699023e239658e62da6f42f47d31b54788521ec1 Author: Paolo Bonzini Date: Mon May 18 15:03:39 2015 +0200 KVM: x86: add SMM to the MMU role, support SMRAM address space This is now very simple to do. The only interesting part is a simple trick to find the right memslot in gfn_to_rmap, retrieving the address space from the spte role word. The same trick is used in the auditing code. The comment on top of union kvm_mmu_page_role has been stale forever, so remove it. Speaking of stale code, remove pad_for_nice_hex_output too: it was splitting the "access" bitfield across two bytes and thus had effectively turned into pad_for_ugly_hex_output. Reviewed-by: Radim Krčmář Signed-off-by: Paolo Bonzini Documentation/virtual/kvm/mmu.txt | 6 ++++++ arch/x86/include/asm/kvm_host.h | 26 +++++++++++++++----------- arch/x86/kvm/mmu.c | 15 ++++++++++++--- arch/x86/kvm/mmu_audit.c | 10 +++++++--- arch/x86/kvm/x86.c | 2 ++ 5 files changed, 42 insertions(+), 17 deletions(-) commit 9da0e4d5ac969909f6b435ce28ea28135a9cbd69 Author: Paolo Bonzini Date: Mon May 18 13:33:16 2015 +0200 KVM: x86: work on all available address spaces This patch has no semantic change, but it prepares for the introduction of a second address space for system management mode. A new function x86_set_memory_region (and the "slots_lock taken" counterpart __x86_set_memory_region) is introduced in order to operate on all address spaces when adding or deleting private memory slots. Reviewed-by: Radim Krčmář Signed-off-by: Paolo Bonzini arch/x86/include/asm/kvm_host.h | 5 +++ arch/x86/kvm/mmu.c | 84 ++++++++++++++++++++++------------------- arch/x86/kvm/vmx.c | 6 +-- arch/x86/kvm/x86.c | 40 ++++++++++++++++++-- 4 files changed, 91 insertions(+), 44 deletions(-) commit 54bf36aac520315385fe7623a5c3a698e993ceda Author: Paolo Bonzini Date: Wed Apr 8 15:39:23 2015 +0200 KVM: x86: use vcpu-specific functions to read/write/translate GFNs We need to hide SMRAM from guests not running in SMM. Therefore, all uses of kvm_read_guest* and kvm_write_guest* must be changed to check whether the VCPU is in system management mode and use a different set of memslots. Switch from kvm_* to the newly-introduced kvm_vcpu_*, which call into kvm_arch_vcpu_memslots_id. Reviewed-by: Radim Krčmář Signed-off-by: Paolo Bonzini arch/x86/include/asm/kvm_host.h | 2 +- arch/x86/kvm/mmu.c | 62 ++++++++++++++++++++--------------------- arch/x86/kvm/mmu_audit.c | 2 +- arch/x86/kvm/paging_tmpl.h | 18 ++++++------ arch/x86/kvm/svm.c | 12 ++++---- arch/x86/kvm/vmx.c | 32 ++++++++++----------- arch/x86/kvm/x86.c | 32 ++++++++++----------- 7 files changed, 80 insertions(+), 80 deletions(-) commit e4cd1da944ed9d2acd2e4ccabf61ec443735f6db Author: Paolo Bonzini Date: Mon May 18 15:11:46 2015 +0200 KVM: x86: pass struct kvm_mmu_page to gfn_to_rmap This is always available (with one exception in the auditing code), and with the same auditing exception the level was coming from sp->role.level. Later, the spte's role will also be used to look up the right memslots array. Reviewed-by: Radim Krčmář Signed-off-by: Paolo Bonzini arch/x86/kvm/mmu.c | 10 +++++----- arch/x86/kvm/mmu_audit.c | 8 ++++++-- 2 files changed, 11 insertions(+), 7 deletions(-) commit f481b069e674378758c73761827e83ab05c46b52 Author: Paolo Bonzini Date: Sun May 17 17:30:37 2015 +0200 KVM: implement multiple address spaces Only two ioctls have to be modified; the address space id is placed in the higher 16 bits of their slot id argument. As of this patch, no architecture defines more than one address space; x86 will be the first. Reviewed-by: Radim Krčmář Signed-off-by: Paolo Bonzini Documentation/virtual/kvm/api.txt | 12 ++++++ arch/powerpc/include/asm/kvm_book3s_64.h | 2 +- include/linux/kvm_host.h | 26 ++++++++++-- include/uapi/linux/kvm.h | 1 + virt/kvm/kvm_main.c | 70 ++++++++++++++++++++------------ 5 files changed, 79 insertions(+), 32 deletions(-) commit 8e73485c7959fd25650761eab04db1e72ea14c23 Author: Paolo Bonzini Date: Sun May 17 13:58:53 2015 +0200 KVM: add vcpu-specific functions to read/write/translate GFNs We need to hide SMRAM from guests not running in SMM. Therefore, all uses of kvm_read_guest* and kvm_write_guest* must be changed to use different address spaces, depending on whether the VCPU is in system management mode. We need to introduce a new family of functions for this purpose. For now, the VCPU-based functions have the same behavior as the existing per-VM ones, they just accept a different type for the first argument. Later however they will be changed to use one of many "struct kvm_memslots" stored in struct kvm, through an architecture hook. VM-based functions will unconditionally use the first memslots pointer. Whenever possible, this patch introduces slot-based functions with an __ prefix, with two wrappers for generic and vcpu-based actions. The exceptions are kvm_read_guest and kvm_write_guest, which are copied into the new functions kvm_vcpu_read_guest and kvm_vcpu_write_guest. Reviewed-by: Radim Krčmář Signed-off-by: Paolo Bonzini include/linux/kvm_host.h | 24 +++++++ virt/kvm/kvm_main.c | 167 +++++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 178 insertions(+), 13 deletions(-) commit 0d2a970d0ae55086520e1e58e572a7acd519429c Author: Trond Myklebust Date: Thu Jun 4 15:37:10 2015 -0400 SUNRPC: Fix a backchannel race We need to allow the server to send a new request immediately after we've replied to the previous one. Right now, there is a window between the send and the release of the old request in rpc_put_task(), where the server could send us a new backchannel RPC call, and we have no request to service it. Signed-off-by: Trond Myklebust include/linux/sunrpc/xprt.h | 3 ++- net/sunrpc/backchannel_rqst.c | 37 ++++++++++++++++++++++++------------- net/sunrpc/svc.c | 6 +++++- 3 files changed, 31 insertions(+), 15 deletions(-) commit 1dddda86c056ab4cf49e4206824a9de3e0c4159a Author: Trond Myklebust Date: Mon Jun 1 15:05:38 2015 -0400 SUNRPC: Clean up allocation and freeing of back channel requests Signed-off-by: Trond Myklebust net/sunrpc/backchannel_rqst.c | 95 +++++++++++++++++++++++++------------------ 1 file changed, 55 insertions(+), 40 deletions(-) commit 0f41979164a52a1ca0f0a601f90000fc18e3a396 Author: Trond Myklebust Date: Mon Jun 1 22:59:08 2015 -0400 SUNRPC: Remove unused argument 'tk_ops' in rpc_run_bc_task Signed-off-by: Trond Myklebust include/linux/sunrpc/sched.h | 3 +-- net/sunrpc/clnt.c | 6 ++---- net/sunrpc/svc.c | 3 +-- 3 files changed, 4 insertions(+), 8 deletions(-) commit cab6d57c09ece2ceb03602dd44ea2f4ce9333ec9 Author: Jammy Zhou Date: Sat Jun 6 04:49:22 2015 +0800 drm/amdgpu: remove unused AMDGPU_IB_FLAG_GDS Signed-off-by: Jammy Zhou Reviewed-by: Alex Deucher include/uapi/drm/amdgpu_drm.h | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit 890ee23fc60193d7c2bca17e099569f1510b3053 Author: Chunming Zhou Date: Mon Jun 1 14:35:03 2015 +0800 drm/amdgpu: disable user fence interrupt (v2) amdgpu submits both kernel and user fences, but just need one interrupt, disable user fence interrupt and don't effect user fence. v2: fix merge error Signed-off-by: Chunming Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu.h | 7 +++++-- drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 4 +++- drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 3 ++- drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c | 4 ++-- drivers/gpu/drm/amd/amdgpu/amdgpu_vce.h | 2 +- drivers/gpu/drm/amd/amdgpu/cik_sdma.c | 3 ++- drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 13 +++++++++---- drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 14 ++++++++++---- drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c | 5 +++-- drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 5 +++-- 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 ++-- 13 files changed, 46 insertions(+), 26 deletions(-) commit 85fe946e8c8485d868edcbdcef78f04e4a259a6a Author: Bintian Wang Date: Tue Jan 6 09:30:36 2015 +0800 arm64: Enable Hisilicon ARMv8 SoC family in Kconfig and defconfig This patch introduces ARCH_HISI to enable Hisilicon SoC family in Kconfig and defconfig. Signed-off-by: Bintian Wang Acked-by: Haojian Zhuang Reviewed-by: Wei Xu Tested-by: Will Deacon Tested-by: Tyler Baker Tested-by: Kevin Hilman Acked-by: Will Deacon Signed-off-by: Wei Xu arch/arm64/Kconfig | 5 +++++ arch/arm64/configs/defconfig | 1 + 2 files changed, 6 insertions(+) commit 9298e52f8b51d1e4acd68f502832f3a97f8cf892 Author: Christian König Date: Wed Jun 3 21:31:20 2015 +0200 drm/amdgpu: fix user ptr race condition Signed-off-by: Christian König Reviewed-by: monk liu drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 1 + drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) commit 25f45e633892a45df2edbfd4a5dbbfc70e32487b Author: Jack Xiao Date: Thu Jun 4 12:18:27 2015 +0800 drm/amdgpu: add zero timeout check in amdgpu_fence_wait_seq_timeout Signed-off-by: Jack Xiao Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 4 ++++ 1 file changed, 4 insertions(+) commit 64d5702229d86deacf42a43bc893a981f72d4908 Author: Hans Verkuil Date: Sun May 31 08:10:32 2015 -0300 [media] vivid.txt: update the vivid documentation Document the new Transfer Function control (and fix the documentation for the other colorspace controls which were not quite correct). Mention the support for 4:2:0 and more multiplanar formats. Update the TODO list at the end. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab Documentation/video4linux/vivid.txt | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) commit e1dedcfff1bbaa6b56a40116ee402b6d222e20c9 Author: Hans Verkuil Date: Sun May 31 07:51:51 2015 -0300 [media] cobalt: simplify colorspace code Simplify cobalt_g/try_fmt_vid_cap by not setting the colorspace fields in pix again (since v4l2_fill_pix_format does that already), and by using v4l2_fill_mbus_format in cobalt_s_fmt_vid_out which allows the get_fmt call to be dropped as well. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/cobalt/cobalt-v4l2.c | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) commit 136a5e9e01ed89d8891845027b3ee731bb662926 Author: Hans Verkuil Date: Sun May 31 06:48:00 2015 -0300 [media] cobalt: support transfer function Add support for the transfer function to the cobalt driver: make sure it is passed on to/retrieved from the sub-device correctly. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/cobalt/cobalt-driver.h | 1 + drivers/media/pci/cobalt/cobalt-v4l2.c | 6 ++++++ 2 files changed, 7 insertions(+) commit 78aad7f81aa6dfccdb2804ac35db6fc371d265cf Author: Hans Verkuil Date: Tue Apr 28 10:08:43 2015 -0300 [media] vivid-tpg: precalculate colorspace/xfer_func combinations Precalculate all the colorspace/transfer function combinations in order to easily generate the correct colors. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/vivid/vivid-tpg-colors.c | 478 ++++++++++++++++++------ drivers/media/platform/vivid/vivid-tpg-colors.h | 4 +- drivers/media/platform/vivid/vivid-tpg.c | 6 +- 3 files changed, 371 insertions(+), 117 deletions(-) commit ca5316db08199124bf72b0ed16dc1a83fe0609e2 Author: Hans Verkuil Date: Tue Apr 28 09:41:37 2015 -0300 [media] vivid: add xfer_func support Add support for the transfer function: create a new control for it, and support it for both capture and output sides. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/vivid/vivid-core.h | 1 + drivers/media/platform/vivid/vivid-ctrls.c | 58 ++++++++++++++++++------- drivers/media/platform/vivid/vivid-tpg.c | 7 +++ drivers/media/platform/vivid/vivid-tpg.h | 19 ++++++++ drivers/media/platform/vivid/vivid-vid-cap.c | 9 ++++ drivers/media/platform/vivid/vivid-vid-common.c | 2 + drivers/media/platform/vivid/vivid-vid-out.c | 4 ++ 7 files changed, 85 insertions(+), 15 deletions(-) commit c62cda97c81309aa77fd2d32820f3f5b925e0ce3 Author: Hans Verkuil Date: Tue Apr 28 09:41:03 2015 -0300 [media] am437x-vpfe: add support for xfer_func Make this part of the format check. Signed-off-by: Hans Verkuil Cc: Prabhakar Lad Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/am437x/am437x-vpfe.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit e719a51a46f8e3a3278f160ea29ed5d8e2c23a5d Author: Hans Verkuil Date: Tue Apr 28 09:40:30 2015 -0300 [media] adv7511: add xfer_func support Still preliminary, but the information is at least there. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/adv7511.c | 5 +++++ 1 file changed, 5 insertions(+) commit 22b6ae48c4d4089eac94662a8fb9cb6b9e48727b Author: Hans Verkuil Date: Tue Apr 28 08:43:50 2015 -0300 [media] DocBook/media: document new xfer_func fields Document the new field and defines to set the transfer function needed to correctly decode the colors of an image. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/v4l/pixfmt.xml | 113 +++++++++++++++++---- Documentation/DocBook/media/v4l/subdev-formats.xml | 12 ++- 2 files changed, 101 insertions(+), 24 deletions(-) commit 74fdcb2ee1786a92584e89c91006e449813527ce Author: Hans Verkuil Date: Tue Apr 28 08:49:09 2015 -0300 [media] videodev2.h: add support for transfer functions In the past the transfer function was implied by the colorspace. However, it is an independent entity in its own right. Add support for explicitly choosing the transfer function. This change will allow us to represent linear RGB (as is used by openGL), and it will make it easier to work with decoded video material since most codecs store the transfer function as a separate property as well. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/v4l2-ioctl.c | 9 ++++---- include/media/v4l2-mediabus.h | 2 ++ include/uapi/linux/v4l2-mediabus.h | 4 +++- include/uapi/linux/videodev2.h | 41 +++++++++++++++++++++++++++++++++++- 4 files changed, 50 insertions(+), 6 deletions(-) commit 86e8f528ef325843d9b01ee6d00823e667cab5e2 Author: Bintian Wang Date: Sat Feb 7 14:57:52 2015 +0800 arm64: dts: Add dts files for Hisilicon Hi6220 SoC Add initial dtsi file to support Hisilicon Hi6220 SoC with support of Octal core CPUs in two clusters and each cluster has quard Cortex-A53. Also add dts file to support HiKey development board which based on Hi6220 SoC. Signed-off-by: Bintian Wang Acked-by: Haojian Zhuang Reviewed-by: Yiping Xu Tested-by: Will Deacon Tested-by: Tyler Baker Tested-by: Kevin Hilman Signed-off-by: Wei Xu arch/arm64/boot/dts/Makefile | 1 + arch/arm64/boot/dts/hisilicon/Makefile | 5 + arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts | 31 +++++ arch/arm64/boot/dts/hisilicon/hi6220.dtsi | 171 +++++++++++++++++++++++++ 4 files changed, 208 insertions(+) commit db0f90ef063c058e4179ecf2c66e54971e0a1ec1 Author: Bintian Wang Date: Sat Feb 7 14:48:13 2015 +0800 clk: hi6220: Document devicetree bindings for hi6220 clock Document DT files bindings for Hisilicon hi6220 clock. Signed-off-by: Bintian Wang Acked-by: Haojian Zhuang Suggested-by: Arnd Bergmann Acked-by: Stephen Boyd Acked-by: Michael Turquette Signed-off-by: Wei Xu .../devicetree/bindings/clock/hi6220-clock.txt | 34 ++++++++++++++++++++++ 1 file changed, 34 insertions(+) commit 3833fe5f908f08280610b8e17a184d8c7e218148 Author: Bintian Wang Date: Wed Feb 25 15:23:11 2015 +0800 arm64: hi6220: Document devicetree bindings for Hisilicon hi6220 SoC This patch adds documentation for the devicetree bindings used by the DT files of Hisilicon hi6220 SoC mobile platform. Signed-off-by: Bintian Wang Suggested-by: Arnd Bergmann Acked-by: Haojian Zhuang Acked-by: Stephen Boyd Acked-by: Rob Herring Signed-off-by: Wei Xu .../bindings/arm/hisilicon/hisilicon.txt | 87 ++++++++++++++++++++++ 1 file changed, 87 insertions(+) commit af8a819a2513df4be461c6a29e3bdee6e23cf3be Author: Mauro Carvalho Chehab Date: Fri Jun 5 11:06:46 2015 -0300 [media] lirc_imon: simplify error handling code Instead of using a state machine and a switch with lots of fall-trough, use gotos and cleanup the error handling loop. That removes those two smatch warnings: drivers/staging/media/lirc/lirc_imon.c:933 imon_probe() warn: possible memory leak of 'context' drivers/staging/media/lirc/lirc_imon.c:933 imon_probe() warn: possible memory leak of 'driver' And make the error handling code more standard. Signed-off-by: Mauro Carvalho Chehab drivers/staging/media/lirc/lirc_imon.c | 97 ++++++++++++++-------------------- 1 file changed, 39 insertions(+), 58 deletions(-) commit b295e5c7d84721f76d1728f2ee4152a8cbb6ddaa Author: Mauro Carvalho Chehab Date: Fri Jun 5 10:47:36 2015 -0300 [media] usbvision: cleanup the code There's a dead code on usbvision that makes it harder to read and produces a smatch warning about bad identation. Improve the code readability and add a FIXME to warn about the current hack there. Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/usbvision/usbvision-video.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) commit 6b20cf3c0fbd242a337b15577905785bd95ca529 Author: Mauro Carvalho Chehab Date: Fri Jun 5 10:30:44 2015 -0300 [media] rc: set IR_MAX_DURATION to 500 ms The current definition is weird, and produce lots of sparse warnings: drivers/media/i2c/cx25840/cx25840-ir.c:448 txclk_tx_s_max_pulse_width() warn: impossible condition '(ns > 4294967295) => (0-u32max > u32max)' drivers/media/i2c/cx25840/cx25840-ir.c:461 rxclk_rx_s_max_pulse_width() warn: impossible condition '(ns > 4294967295) => (0-u32max > u32max)' drivers/media/i2c/cx25840/cx25840-ir.c:706 cx25840_ir_rx_read() warn: impossible condition '(v > 4294967295) => (0-u32max > u32max)' drivers/media/pci/ivtv/ivtv-queue.c:145 ivtv_queue_move() error: we previously assumed 'steal' could be null (see line 138) drivers/media/rc/streamzap.c:155 sz_push_full_pulse() warn: impossible condition '(rawir.duration > 4294967295) => (0-u32max > u32max)' drivers/media/rc/streamzap.c:169 sz_push_full_pulse() warn: impossible condition '(rawir.duration > 4294967295) => (0-u32max > u32max)' drivers/media/rc/redrat3.c:325 redrat3_us_to_len() warn: impossible condition '(microsec > 4294967295) => (0-u32max > u32max)' drivers/media/rc/redrat3.c:383 redrat3_process_ir_data() warn: impossible condition '(rawir.duration > 4294967295) => (0-u32max > u32max)' drivers/media/usb/pvrusb2/pvrusb2-hdw.c:3676 pvr2_send_request_ex() error: we previously assumed 'write_data' could be null (see line 3648) drivers/media/usb/pvrusb2/pvrusb2-hdw.c:3829 pvr2_send_request_ex() error: we previously assumed 'read_data' could be null (see line 3649) drivers/media/pci/cx23885/cx23888-ir.c:463 txclk_tx_s_max_pulse_width() warn: impossible condition '(ns > 4294967295) => (0-u32max > u32max)' drivers/media/pci/cx23885/cx23888-ir.c:476 rxclk_rx_s_max_pulse_width() warn: impossible condition '(ns > 4294967295) => (0-u32max > u32max)' drivers/media/pci/cx23885/cx23888-ir.c:696 cx23888_ir_rx_read() warn: impossible condition '(v > 4294967295) => (0-u32max > u32max)' Use a more realistic value for it. Signed-off-by: Mauro Carvalho Chehab include/media/rc-core.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 95cf60aa55d5395a10d0e67a711e42693b89fb1c Author: Mauro Carvalho Chehab Date: Fri Jun 5 10:25:24 2015 -0300 [media] ir: Fix IR_MAX_DURATION enforcement Don't assume that IR_MAX_DURATION is a bitmask. It isn't. Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/redrat3.c | 5 +++-- drivers/media/rc/streamzap.c | 6 ++++-- 2 files changed, 7 insertions(+), 4 deletions(-) commit 485bdbb6b83309505654379153d55746d5996917 Author: Mauro Carvalho Chehab Date: Fri Jun 5 09:33:44 2015 -0300 [media] tm6000: remove needless check Smatch reports a warning: drivers/media/usb/tm6000/tm6000-video.c:646 tm6000_prepare_isoc() error: we previously assumed 'dev->urb_buffer' could be null (see line 624) This is not really a problem, but it actually shows that the check if urb_buffer is NULL is being done twice: at the if and at tm6000_alloc_urb_buffers(). We don't need to do it twice. So, remove the extra check. The code become cleaner, and, as a collateral effect, smatch becomes happy. Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/tm6000/tm6000-video.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5cbe9f3acffb9fd16391b5abf16f947c7d7833da Author: Mauro Carvalho Chehab Date: Fri Jun 5 09:08:09 2015 -0300 [media] ivtv: fix two smatch warnings Smatch currently produces two warnings: drivers/media/pci/ivtv/ivtv-fileops.c:901 ivtv_v4l2_close() warn: suspicious bitop condition drivers/media/pci/ivtv/ivtv-fileops.c:1026 ivtv_open() warn: suspicious bitop condition Those are false positives, but it is not hard to get rid of them by using a different way to evaluate the macro, splitting the logical boolean evaluation from the bitmap one. Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/ivtv/ivtv-driver.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit c65171cf6fb1f9b525ea281b2297a4753c3a049d Author: Mauro Carvalho Chehab Date: Fri Jun 5 08:35:09 2015 -0300 [media] bt8xx: remove needless check As reported by smatch: drivers/media/pci/bt8xx/dst_ca.c:323 ca_get_message() warn: this array is probably non-NULL. 'p_ca_message->msg' drivers/media/pci/bt8xx/dst_ca.c:498 ca_send_message() warn: this array is probably non-NULL. 'p_ca_message->msg' Those two checks are needless/useless, as the ca_msg struct is declared as: typedef struct ca_msg { unsigned int index; unsigned int type; unsigned int length; unsigned char msg[256]; } ca_msg_t; So, if the p_ca_message pointer is not null, msg will also be not null. Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/bt8xx/dst_ca.c | 138 +++++++++++++++++++-------------------- 1 file changed, 67 insertions(+), 71 deletions(-) commit 91aff0c5d90fe57b81e2295437affc34d205a2d2 Author: Mauro Carvalho Chehab Date: Fri Jun 5 08:27:18 2015 -0300 [media] dib0090: Remove a dead code As reported by smatch: drivers/media/dvb-frontends/dib0090.c:1710 dib0090_dc_offset_calibration() warn: missing break? reassigning '*tune_state' There's no need to change tune_state there, as the fall though code will change it again to another state. So, simplify it by removing the dead code. While here, fix a typo: Sart => Start Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/dib0090.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 8dc0a56529f5d60bbb927049d48245b1a7989bf8 Merge: 5160347 0c53493 Author: Tomi Valkeinen Date: Thu Jun 4 09:04:08 2015 +0300 Merge branch 'ti-dra7-dss' into 4.2/fbdev Merge arch/ changes for TI's DRA7 SoC Display Subsystem. commit 4e47dcf78d2fa0b6316b6d563a055fdcc93bd222 Merge: b3d424e f05b7cb Author: Greg Kroah-Hartman Date: Fri Jun 5 22:54:34 2015 +0900 Merge tag 'usb-serial-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial into usb-next Johan writes: USB-serial updates for v4.2-rc1 Just a minor clean up of mos7840 this time. Signed-off-by: Johan Hovold commit 843cb6dc7749a25849797cc9aeeb86f87a8acb84 Author: Joerg Roedel Date: Thu May 28 18:41:28 2015 +0200 iommu: Call remove_device call-back after driver release Do not remove the device from the IOMMU while the driver is still attached. Signed-off-by: Joerg Roedel drivers/iommu/iommu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8da30142a21e2d7595510892a4c99cf294f7e6f1 Author: Joerg Roedel Date: Thu May 28 18:41:27 2015 +0200 iommu: Clean up after a failed bus initialization Make sure we call the ->remove_device call-back on all devices already initialized with ->add_device when the bus initialization fails. Signed-off-by: Joerg Roedel drivers/iommu/iommu.c | 35 ++++++++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 9 deletions(-) commit 19762d7095e6392b6ec56c363a6f29b2119488c2 Author: Joerg Roedel Date: Thu May 28 18:41:26 2015 +0200 iommu: Propagate error in add_iommu_group Make sure any errors reported from the IOMMU drivers get progapated back to the IOMMU core. Signed-off-by: Joerg Roedel drivers/iommu/iommu.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 269aa808a990b3fdd0e7ec9e04322284c40748c4 Author: Joerg Roedel Date: Thu May 28 18:41:25 2015 +0200 iommu: Add a few printk messages to group handling code Write a message to the kernel log when a device is added or removed from a group and add debug messages to group allocation and release routines. Signed-off-by: Joerg Roedel drivers/iommu/iommu.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 92e7066fde31d5ac48a9bccc12d3063d251dd079 Author: Joerg Roedel Date: Thu May 28 18:41:24 2015 +0200 iommu: Remove function name from pr_fmt() Including the function name is only useful for debugging messages. They don't belong into other messages from the iommu core. Signed-off-by: Joerg Roedel drivers/iommu/iommu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f2af7d25b4aa5b01203cc76e7530ea7fd18864a0 Author: Wei Yang Date: Thu Jun 4 14:18:49 2015 +0800 x86/boot/setup: Clean up the e820_reserve_setup_data() code Deobfuscate the 'found' logic, it can be replaced with a simple: if (!pa_data) return; and 'found' can be eliminated. Signed-off-by: Wei Yang Cc: Andrew Morton Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Yinghai Lu Link: http://lkml.kernel.org/r/1433398729-8314-1-git-send-email-weiyang@linux.vnet.ibm.com Signed-off-by: Ingo Molnar arch/x86/kernel/setup.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 6343f22f8255f7b77beade7c3fcb9d89d33084c7 Author: Thierry Reding Date: Tue Apr 14 15:07:38 2015 +0200 drm/panel: ld9040: Remove useless padding There's some useless padding in the struct spi_driver definition. Remove it since it serves no useful purpose. Signed-off-by: Thierry Reding drivers/gpu/drm/panel/panel-ld9040.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 1a8f9056f59e019892c4ce192aa435c15cc37a73 Author: Thierry Reding Date: Tue Apr 14 15:03:26 2015 +0200 drm/panel: Constify OF match tables Both the Samsung LD9040 and Samsung S6E8AA0 panel drivers are missing a const qualifier for their OF match tables. This data is static and never changes, so can be read-only. Signed-off-by: Thierry Reding drivers/gpu/drm/panel/panel-ld9040.c | 2 +- drivers/gpu/drm/panel/panel-s6e8aa0.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit f3f375cd4e411b66511178be9a1dd0256ae41e77 Author: Thierry Reding Date: Tue Apr 14 15:15:34 2015 +0200 drm/bridge: Remove stale ptn3460.h include This header file declares prototypes of functions that are no longer used. Remove this file and all references to it. Signed-off-by: Thierry Reding drivers/gpu/drm/bridge/ptn3460.c | 2 -- drivers/gpu/drm/exynos/exynos_dp_core.c | 1 - include/drm/bridge/ptn3460.h | 45 --------------------------------- 3 files changed, 48 deletions(-) commit dcd43d6483a89210dba8726b3b49a4b3d9efdde7 Author: Geert Uytterhoeven Date: Tue May 5 18:32:18 2015 +0200 drm/bridge: ps8622: Include linux/gpio/consumer.h If GPIOLIB=n and asm-generic/gpio.h is not used: drivers/gpu/drm/bridge/ps8622.c: In function ‘ps8622_pre_enable’: drivers/gpu/drm/bridge/ps8622.c:368: error: implicit declaration of function ‘gpiod_set_value’ drivers/gpu/drm/bridge/ps8622.c: In function ‘ps8622_probe’: drivers/gpu/drm/bridge/ps8622.c:584: error: implicit declaration of function ‘devm_gpiod_get’ drivers/gpu/drm/bridge/ps8622.c:584: warning: assignment makes pointer from integer without a cast drivers/gpu/drm/bridge/ps8622.c:590: error: implicit declaration of function ‘gpiod_direction_output’ drivers/gpu/drm/bridge/ps8622.c:596: warning: assignment makes pointer from integer without a cast Add the missing #include to fix this. Fixes: f1336e6afb ("drm/bridge: Add I2C based driver for ps8622/ps8625 bridge") Signed-off-by: Geert Uytterhoeven Cc: David Airlie Cc: dri-devel@lists.freedesktop.org Signed-off-by: Thierry Reding drivers/gpu/drm/bridge/ps8622.c | 1 + 1 file changed, 1 insertion(+) commit dad3c3503462f59c6bec7edfa19dbde1857962c0 Author: Geert Uytterhoeven Date: Tue May 5 18:32:17 2015 +0200 drm/bridge: ptn3460: Include linux/gpio/consumer.h If GPIOLIB=n and asm-generic/gpio.h is not used: drivers/gpu/drm/bridge/ptn3460.c: In function ‘ptn3460_pre_enable’: drivers/gpu/drm/bridge/ptn3460.c:135: error: implicit declaration of function ‘gpiod_set_value’ drivers/gpu/drm/bridge/ptn3460.c: In function ‘ptn3460_probe’: drivers/gpu/drm/bridge/ptn3460.c:333: error: implicit declaration of function ‘devm_gpiod_get’ drivers/gpu/drm/bridge/ptn3460.c:333: warning: assignment makes pointer from integer without a cast drivers/gpu/drm/bridge/ptn3460.c:340: error: implicit declaration of function ‘gpiod_direction_output’ drivers/gpu/drm/bridge/ptn3460.c:346: warning: assignment makes pointer from integer without a cast Add the missing #include to fix this. Fixes: af478d8823 ("drm/bridge: ptn3460: use gpiod interface") Signed-off-by: Geert Uytterhoeven Cc: David Airlie Cc: dri-devel@lists.freedesktop.org Signed-off-by: Thierry Reding drivers/gpu/drm/bridge/ptn3460.c | 1 + 1 file changed, 1 insertion(+) commit 6c7e66e617d3cc7eb84ee61deb216dcec4899563 Author: Doug Anderson Date: Thu Jun 4 11:04:36 2015 -0700 drm/bridge: dw-hdmi: Return number of EDID modes The dw_hdmi_connector_get_modes() function accidentally forgets to return the number of modes it added, although it has this information stored in a local variable. Let's fix that. Without this fix, drm_helper_probe_single_connector_modes_merge_bits() could get confused and always call drm_add_modes_noedid(). That's not right. Signed-off-by: Doug Anderson Tested-by: Yakir Yang Signed-off-by: Thierry Reding drivers/gpu/drm/bridge/dw_hdmi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 7a5a9824c18f93415944c997dc6bb8eecfddd2e7 Author: Denys Vlasenko Date: Wed Jun 3 15:58:50 2015 +0200 x86/asm/entry/32: Remove unnecessary optimization in stub32_clone Really swap arguments #4 and #5 in stub32_clone instead of "optimizing" it into a move. Yes, tls_val is currently unused. Yes, on some CPUs XCHG is a little bit more expensive than MOV. But a cycle or two on an expensive syscall like clone() is way below noise floor, and this optimization is simply not worth the obfuscation of logic. [ There's also ongoing work on the clone() ABI by Josh Triplett that will depend on this change later on. ] Signed-off-by: Denys Vlasenko Cc: Alexei Starovoitov Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Frederic Weisbecker Cc: H. Peter Anvin Cc: Josh Triplett Cc: Kees Cook Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Thomas Gleixner Cc: Will Drewry Link: http://lkml.kernel.org/r/1433339930-20880-2-git-send-email-dvlasenk@redhat.com Signed-off-by: Ingo Molnar arch/x86/entry/ia32entry.S | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) commit 5cdc683b7d8b3341a3d18e0c5498bc1e4f3fb990 Author: Denys Vlasenko Date: Wed Jun 3 15:58:49 2015 +0200 x86/asm/entry/32: Explain the stub32_clone logic The reason for copying of %r8 to %rcx is quite non-obvious. Add a comment which explains why it is done. Signed-off-by: Denys Vlasenko Cc: Alexei Starovoitov Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Frederic Weisbecker Cc: H. Peter Anvin Cc: Kees Cook Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Thomas Gleixner Cc: Will Drewry Link: http://lkml.kernel.org/r/1433339930-20880-1-git-send-email-dvlasenk@redhat.com Signed-off-by: Ingo Molnar arch/x86/entry/ia32entry.S | 8 ++++++++ 1 file changed, 8 insertions(+) commit 54ad726c51b7f7dffcc1dc379bedadee19f742f7 Author: Ingo Molnar Date: Fri Jun 5 13:02:28 2015 +0200 x86/asm/entry/32: Improve code readability Make the 64-bit compat 32-bit syscall entry code a bit more readable: - eliminate whitespace noise - use consistent vertical spacing - use consistent assembly coding style similar to entry_64.S - fix various comments No code changed: arch/x86/entry/ia32entry.o: text data bss dec hex filename 1391 0 0 1391 56f ia32entry.o.before 1391 0 0 1391 56f ia32entry.o.after md5: f28501dcc366e68b557313942c6496d6 ia32entry.o.before.asm f28501dcc366e68b557313942c6496d6 ia32entry.o.after.asm Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar arch/x86/entry/ia32entry.S | 287 +++++++++++++++++++++++---------------------- 1 file changed, 146 insertions(+), 141 deletions(-) commit 53e9accf0f7682d717c7b578b6e01fd297ba6630 Author: Denys Vlasenko Date: Wed Jun 3 14:56:09 2015 +0200 x86/asm/entry/32: Do not use R9 in SYSCALL32 entry point SYSENTER and SYSCALL 32-bit entry points differ in handling of arg2 and arg6. SYSENTER: * ecx arg2 * ebp user stack * 0(%ebp) arg6 SYSCALL: * ebp arg2 * esp user stack * 0(%esp) arg6 Sysenter code loads 0(%ebp) to %ebp right away. (This destroys %ebp. It means we do not preserve it on return. It's not causing problems since userspace VDSO code does not depend on it, and SYSENTER insn can't be sanely used outside of VDSO). Syscall code loads 0(%ebp) to %r9. This allows to eliminate one MOV insn (r9 is a register where arg6 should be for 64-bit ABI), but on audit/ptrace code paths this requires juggling of r9 and ebp: (1) ptrace expects arg6 to be in pt_regs->bp; (2) r9 is callee-clobbered register and needs to be saved/restored around calls to C functions. This patch changes syscall code to load 0(%ebp) to %ebp, making it more similar to sysenter code. It's a bit smaller: text data bss dec hex filename 1407 0 0 1407 57f ia32entry.o.before 1391 0 0 1391 56f ia32entry.o To preserve ABI compat, we restore ebp on exit. Run-tested. Signed-off-by: Denys Vlasenko Cc: Alexei Starovoitov Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Frederic Weisbecker Cc: H. Peter Anvin Cc: Kees Cook Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Thomas Gleixner Cc: Will Drewry Link: http://lkml.kernel.org/r/1433336169-18964-1-git-send-email-dvlasenk@redhat.com Signed-off-by: Ingo Molnar arch/x86/entry/ia32entry.S | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) commit 73cbf687914fd5f4ef88a42a55784fd28b7450cf Author: Denys Vlasenko Date: Tue Jun 2 21:04:02 2015 +0200 x86/asm/entry/32: Open-code LOAD_ARGS32 This macro is small, has only three callsites, and one of them is slightly different using a conditional parameter. A few saved lines aren't worth the resulting obfuscation. Generated machine code is identical. Signed-off-by: Denys Vlasenko Cc: Alexei Starovoitov Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Frederic Weisbecker Cc: H. Peter Anvin Cc: Kees Cook Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Thomas Gleixner Cc: Will Drewry Link: http://lkml.kernel.org/r/1433271842-9139-2-git-send-email-dvlasenk@redhat.com Signed-off-by: Ingo Molnar arch/x86/entry/ia32entry.S | 54 +++++++++++++++++++++++++--------------------- 1 file changed, 29 insertions(+), 25 deletions(-) commit ef0cd5dc25404594f832dad9133abae52e3b2fa3 Author: Denys Vlasenko Date: Tue Jun 2 21:04:01 2015 +0200 x86/asm/entry/32: Open-code CLEAR_RREGS This macro is small, has only four callsites, and one of them is slightly different using a conditional parameter. A few saved lines aren't worth the resulting obfuscation. Generated machine code is identical. Signed-off-by: Denys Vlasenko [ Added comments. ] Cc: Alexei Starovoitov Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Frederic Weisbecker Cc: H. Peter Anvin Cc: Kees Cook Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Thomas Gleixner Cc: Will Drewry Link: http://lkml.kernel.org/r/1433271842-9139-1-git-send-email-dvlasenk@redhat.com Signed-off-by: Ingo Molnar arch/x86/entry/ia32entry.S | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) commit 61b1e3e782d6784b714c0d80de529e0737d0e79c Author: Denys Vlasenko Date: Tue Jun 2 19:35:10 2015 +0200 x86/asm/entry/32: Simplify the zeroing of pt_regs->r8..r11 in the int80 code path 32-bit syscall entry points do not save the complete pt_regs struct, they leave some fields uninitialized. However, they must be careful to not leak uninitialized data in pt_regs->r8..r11 to ptrace users. CLEAR_RREGS macro is used to zero these fields out when needed. However, in the int80 code path this zeroing is unconditional. This patch simplifies it by storing zeroes there right away, when pt_regs is constructed on stack. This uses shorter instructions: text data bss dec hex filename 1423 0 0 1423 58f ia32entry.o.before 1407 0 0 1407 57f ia32entry.o Compile-tested. Signed-off-by: Denys Vlasenko Cc: Alexei Starovoitov Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Frederic Weisbecker Cc: H. Peter Anvin Cc: Kees Cook Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Thomas Gleixner Cc: Will Drewry Link: http://lkml.kernel.org/r/1433266510-2938-1-git-send-email-dvlasenk@redhat.com Signed-off-by: Ingo Molnar arch/x86/entry/ia32entry.S | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) commit 5ac417efe66ddd7cd70a98f7f4e32a14ae40a651 Author: Mauro Carvalho Chehab Date: Fri Jun 5 08:07:19 2015 -0300 [media] sh_vou: avoid going past arrays Smatch reports two issues: drivers/media/platform/sh_vou.c:670 vou_adjust_output() error: buffer overflow 'vou_scale_v_num' 3 <= 4 drivers/media/platform/sh_vou.c:670 vou_adjust_output() error: buffer overflow 'vou_scale_v_den' 3 <= 4 It seems that there's actually a bug here: the same var (idx) is used as an index for vertical and horizontal scaling arrays. However, there are 4 elements on the h arrays, and only 3 at the v ones. On the first loop, it may select index 4 for the horizontal array. In this case, if the second loop fails to select an index, the code would keep using 4 for the vertical array, with is past of the array sizes. The intent here seems to use index 0, if the scale is not found. So, use a separate var for the vertical index. Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/sh_vou.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 7fdc5561ca705dbecdabbcc33165c73330e4d13b Author: Mauro Carvalho Chehab Date: Fri Jun 5 08:03:01 2015 -0300 [media] em28xx: remove dead code As reported by smatch: drivers/media/usb/em28xx/em28xx-video.c:842 get_ressource() info: ignoring unreachable code. Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/em28xx/em28xx-video.c | 1 - 1 file changed, 1 deletion(-) commit 2f60f13c14b45b311843d2ca09b5e3ef94c16f71 Author: Mauro Carvalho Chehab Date: Fri Jun 5 07:58:52 2015 -0300 [media] drxk: better handle errors As reported by smatch: drivers/media/dvb-frontends/drxk_hard.c:3277 dvbt_sc_command() warn: missing break? reassigning 'status' This is basically because the error handling logic there was crappy. Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/drxk_hard.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 5ca6f70f387b4f82903037cc3c5488e2c97dcdbc Author: Andy Lutomirski Date: Thu Jun 4 13:24:29 2015 -0700 x86/asm/entry/64: Remove pointless jump to irq_return INTERRUPT_RETURN turns into a jmp instruction. There's no need for extra indirection. Signed-off-by: Andy Lutomirski Cc: Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/2f2318653dbad284a59311f13f08cea71298fd7c.1433449436.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/entry/entry_64.S | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 84cb7be43cec12868e94163c99fdc34c0297c3b8 Author: Mauro Carvalho Chehab Date: Fri Jun 5 07:24:22 2015 -0300 [media] vivid: don't use more than 1024 bytes of stack Remove the following compilation warnings: drivers/media/platform/vivid/vivid-tpg.c: In function 'tpg_gen_text': drivers/media/platform/vivid/vivid-tpg.c:1562:1: warning: the frame size of 1308 bytes is larger than 1024 bytes [-Wframe-larger-than=] } ^ This seems to be due to some bad optimization done by gcc. Moving the for() loop to happen inside the macro solves the issue. While here, fix CodingStyle at the switch(). Signed-off-by: Mauro Carvalho Chehab Acked-by: Hans Verkuil drivers/media/platform/vivid/vivid-tpg.c | 33 ++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) commit 82ba2c2ab3e9b9c62327f9441594668b20a1dba2 Author: Jarkko Nikula Date: Thu Jun 4 16:55:12 2015 +0300 spi: pxa2xx: Make LPSS SPI general register optional General register located in LPSS SPI private register space is not found in upcoming Intel LPSS platforms. Access it conditionally depending is it defined in configuration. Signed-off-by: Jarkko Nikula Signed-off-by: Mark Brown drivers/spi/spi-pxa2xx.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit dccf7369652f3934456345aab6a92fa905177886 Author: Jarkko Nikula Date: Thu Jun 4 16:55:11 2015 +0300 spi: pxa2xx: Prepare for new Intel LPSS SPI type Some of the Intel LPSS SPI properties will be different in upcoming platforms compared to existing Lynxpoint and BayTrail/Braswell. LPSS SPI private registers will be at different offset and there will be changes in individual registers and default FIFO thresholds too. Add configuration for these differences and use them in runtime based on LPSS SSP type. With this change private registers offset autodetection becomes needless. Signed-off-by: Jarkko Nikula Signed-off-by: Mark Brown drivers/spi/spi-pxa2xx.c | 107 +++++++++++++++++++++++++-------------------- include/linux/pxa2xx_ssp.h | 2 +- 2 files changed, 60 insertions(+), 49 deletions(-) commit 03fbf488cece461468d3abb795f5e5f055e00040 Author: Jarkko Nikula Date: Thu Jun 4 16:55:10 2015 +0300 spi: pxa2xx: Differentiate Intel LPSS types Intel LPSS SPI properties differ between between platforms. Now private registers offset 0x400 or 0x800 is autodetected but there is need to support also other offset and handle a few other differences. Prepare for that by splitting the LPSS_SSP type into compatible hardware types and set it now based on PCI or ACPI ID. That type will be used to set properties that differ between current and upcoming platforms. Signed-off-by: Jarkko Nikula Signed-off-by: Mark Brown drivers/spi/spi-pxa2xx-pci.c | 8 ++++---- drivers/spi/spi-pxa2xx.c | 44 ++++++++++++++++++++++++++++++-------------- include/linux/pxa2xx_ssp.h | 3 ++- 3 files changed, 36 insertions(+), 19 deletions(-) commit addc8120a784181cc6410973948eee94ea16f2bd Merge: eb7c11e c5a1330 Author: Catalin Marinas Date: Fri Jun 5 11:21:23 2015 +0100 Merge branch 'arm64/psci-rework' of git://git.kernel.org/pub/scm/linux/kernel/git/mark/linux * 'arm64/psci-rework' of git://git.kernel.org/pub/scm/linux/kernel/git/mark/linux: arm64: psci: remove ACPI coupling arm64: psci: kill psci_power_state arm64: psci: account for Trusted OS instances arm64: psci: support unsigned return values arm64: psci: remove unnecessary id indirection arm64: smp: consistently use error codes arm64: smp_plat: add get_logical_index arm/arm64: kvm: add missing PSCI include Conflicts: arch/arm64/kernel/smp.c commit eb7c11ee3c5ce6c45ac28a5015a8e60ed458b412 Author: Marc Zyngier Date: Mon Jun 1 10:47:42 2015 +0100 arm64: alternative: Work around .inst assembler bugs AArch64 toolchains suffer from the following bug: $ cat blah.S 1: .inst 0x01020304 .if ((. - 1b) != 4) .error "blah" .endif $ aarch64-linux-gnu-gcc -c blah.S blah.S: Assembler messages: blah.S:3: Error: non-constant expression in ".if" statement which precludes the use of msr_s and co as part of alternatives. We workaround this issue by not directly testing the labels themselves, but by moving the current output pointer by a value that should always be zero. If this value is not null, then we will trigger a backward move, which is expclicitely forbidden. This triggers the error we're after: AS arch/arm64/kvm/hyp.o arch/arm64/kvm/hyp.S: Assembler messages: arch/arm64/kvm/hyp.S:1377: Error: attempt to move .org backwards scripts/Makefile.build:294: recipe for target 'arch/arm64/kvm/hyp.o' failed make[1]: *** [arch/arm64/kvm/hyp.o] Error 1 Makefile:946: recipe for target 'arch/arm64/kvm' failed Not pretty, but at least works on the current toolchains. Acked-by: Will Deacon Signed-off-by: Marc Zyngier Signed-off-by: Catalin Marinas arch/arm64/include/asm/alternative.h | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) commit 8d883b23aed73cad844ba48051c7e96eddf0f51c Author: Marc Zyngier Date: Mon Jun 1 10:47:41 2015 +0100 arm64: alternative: Merge alternative-asm.h into alternative.h asm/alternative-asm.h and asm/alternative.h are extremely similar, and really deserve to live in the same file (as this makes further modufications a bit easier). Fold the content of alternative-asm.h into alternative.h, and update the few users. Acked-by: Will Deacon Signed-off-by: Marc Zyngier Signed-off-by: Catalin Marinas arch/arm64/include/asm/alternative-asm.h | 29 ----------------------------- arch/arm64/include/asm/alternative.h | 27 +++++++++++++++++++++++++++ arch/arm64/kernel/entry.S | 2 +- arch/arm64/mm/cache.S | 2 +- 4 files changed, 29 insertions(+), 31 deletions(-) commit 7616fc8bcd7ef4975a294337d6cd3007b8c18746 Author: Marc Zyngier Date: Mon Jun 1 10:47:40 2015 +0100 arm64: alternative: Allow immediate branch as alternative instruction Since all branches are PC-relative on AArch64, these instructions cannot be used as an alternative with the simplistic approach we currently have (the immediate has been computed from the .altinstr_replacement section, and end-up being completely off if the target is outside of the replacement sequence). This patch handles the branch instructions in a different way, using the insn framework to recompute the immediate, and generate the right displacement in the above case. Acked-by: Will Deacon Signed-off-by: Marc Zyngier Signed-off-by: Catalin Marinas arch/arm64/kernel/alternative.c | 71 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 66 insertions(+), 5 deletions(-) commit b0dd9c02d476162340ad60fc96befa817fa8fe9f Author: Marc Zyngier Date: Wed Jun 3 14:36:23 2015 +0100 arm64: Rework alternate sequence for ARM erratum 845719 The workaround for erratum 845719 is currently using a branch between two alternate sequences, which is quite fragile, and that we are going to break as we rework the alternative code. This patch reworks the workaround to fit in a single alternative sequence. The generated code itself is unchanged. Signed-off-by: Marc Zyngier Signed-off-by: Catalin Marinas arch/arm64/kernel/entry.S | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) commit 1d03deff82671ae2c6a7ce9e75b69e5e334c0d04 Author: Marek Szyprowski Date: Thu May 28 08:11:47 2015 -0300 [media] media: s5p-mfc: fix sparse warnings Commits a0f10c131cc49d7d84394beb7903e1f246331224 and 6c9fe765360efa97c63b89af685b620baf5e0012 ("media: s5p-mfc: fix broken pointer cast on 64bit arch") fixed issue with lossy cast on 64-bit architectures. However it also removed __iomem attribute from that cast. This leads to sparse warnings. This patch fixes those warnings by adding __iomem cast in case of v6+ code version and replacing readl/writel by simple u32 load/store operations in case of v5 code (which is called on system memory allocated by dma_alloc_coherent() instead of io registers). Reported-by: Hans Verkuil Signed-off-by: Marek Szyprowski Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/s5p-mfc/s5p_mfc_opr_v5.c | 4 ++-- drivers/media/platform/s5p-mfc/s5p_mfc_opr_v6.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit e9763995e71020c55ec877da4f3444abc47e9ce2 Author: Lad, Prabhakar Date: Tue May 26 11:20:27 2015 -0300 [media] media: davinci: vpbe: use v4l2_get_timestamp() this patch makes use of helper function v4l2_get_timestamp() to set the timestamp of vb2 buffer. Signed-off-by: Lad, Prabhakar Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/davinci/vpbe_display.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) commit 4f26aa17860dadbfb861d8701224c52275ca8593 Author: Lad, Prabhakar Date: Mon May 25 12:34:29 2015 -0300 [media] media: davinci_vpfe: use monotonic timestamp V4L2 drivers should use MONOTONIC timestamps instead of gettimeofday, which is affected by daylight savings time. Signed-off-by: Lad, Prabhakar Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/staging/media/davinci_vpfe/vpfe_video.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 171fe6d1270d535eae798e4b5acc9f5d25e6e17e Author: Lad, Prabhakar Date: Mon May 25 12:34:28 2015 -0300 [media] media: davinci_vpfe: set minimum required buffers to three this patch sets nbuffers to three or more and drops the unset member video_limit which just a copy paste from earlier driver. Signed-off-by: Lad, Prabhakar Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/staging/media/davinci_vpfe/vpfe_mc_capture.h | 2 -- drivers/staging/media/davinci_vpfe/vpfe_video.c | 15 +++------------ 2 files changed, 3 insertions(+), 14 deletions(-) commit 694f9963edd831e4ed6fdbcb7134525cf5715a79 Author: Lad, Prabhakar Date: Mon May 25 12:34:27 2015 -0300 [media] media: davinci_vpfe: clear the output_specs clear of the output_specs before passing it to the configure_resizer_out_params(), so that no garbage values are set. This fixes following build warning: drivers/staging/media/davinci_vpfe/dm365_resizer.c: In function 'resizer_set_stream': drivers/staging/media/davinci_vpfe/dm365_resizer.c:190:46: warning: 'output_specs.vst_c' may be used uninitialized in this function [-Wmaybe-uninitialized] param->ext_mem_param[index].rsz_sdr_ptr_s_c = output->vst_c; ^ drivers/staging/media/davinci_vpfe/dm365_resizer.c:316:30: note: 'output_specs.vst_c' was declared here struct vpfe_rsz_output_spec output_specs; ^ Signed-off-by: Lad, Prabhakar Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/staging/media/davinci_vpfe/dm365_resizer.c | 1 + 1 file changed, 1 insertion(+) commit 2f1ea29fca781b8e6600f3ece1f2dd98ae276294 Author: Antti Palosaari Date: Sun Sep 7 11:20:34 2014 -0300 [media] si2157: implement signal strength stats Implement DVBv5 signal strength stats. Returns dBm. Signed-off-by: Antti Palosaari Tested-by: Adam Baker Signed-off-by: Mauro Carvalho Chehab drivers/media/tuners/si2157.c | 40 +++++++++++++++++++++++++++++++++++++- drivers/media/tuners/si2157_priv.h | 1 + 2 files changed, 40 insertions(+), 1 deletion(-) commit d2b72f6482b9a3c57f036c11786a2489dcc81176 Author: Antti Palosaari Date: Fri May 29 16:42:33 2015 -0300 [media] si2168: Implement own I2C adapter locking We need own I2C locking because of tuner I2C adapter/repeater. Firmware command is executed using I2C send + reply message. Default I2C adapter locking protects only single I2C operation, not whole send + reply sequence as needed. Due to that, it was possible tuner I2C message interrupts firmware command sequence. Reported-by: Adam Baker Signed-off-by: Antti Palosaari Reviewed-by: Adam Baker Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/si2168.c | 135 +++++++++++++++++------------- drivers/media/dvb-frontends/si2168_priv.h | 1 - 2 files changed, 79 insertions(+), 57 deletions(-) commit bf546f8158e2df2656494a475e6235634121c87c Author: Rodrigo Vivi Date: Wed Jun 3 16:50:19 2015 -0700 drm/i915/skl: Fix DMC API version in firmware file name 04 is the minor version. API version is ver1. So let's follow same scheme used on published version at 01.org. If really needed the minor version a follow-up updated will be done. But for now we need to move fwd and unblock end users. Signed-off-by: Rodrigo Vivi Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_csr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cf991de2f614f454b3cb2a300c06ecdf69f3a70d Author: Andy Lutomirski Date: Thu Jun 4 17:13:44 2015 -0700 x86/asm/msr: Make wrmsrl_safe() a function The wrmsrl_safe 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. Convert it to a real inline function. For inspiration, see: 7c74d5b7b7b6 ("x86/asm/entry/64: Fix MSR_IA32_SYSENTER_CS MSR value"). Signed-off-by: Andy Lutomirski Cc: Cc: Andrew Morton Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner [ Applied small improvements. ] Signed-off-by: Ingo Molnar arch/x86/include/asm/msr.h | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit f1b3b4450dcbfd0098b6fc3b00f4880701550c83 Author: Geert Uytterhoeven Date: Tue May 26 12:55:51 2015 +0200 powerpc/85xx: Replace CONFIG_USB_ISP1760_HCD by CONFIG_USB_ISP1760 Since commit 100832abf065bc18 ("usb: isp1760: Make HCD support optional"), CONFIG_USB_ISP1760_HCD is automatically selected when needed. Enabling that option in the defconfig is now a no-op, and no longer enables ISP1760 HCD support. Re-enable the ISP1760 driver in the defconfig by enabling USB_ISP1760_HOST_ROLE instead. Signed-off-by: Geert Uytterhoeven Signed-off-by: Scott Wood arch/powerpc/configs/85xx/xes_mpc85xx_defconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 52aeeb3727af9b5ee4c85c42baff92501b5ceae1 Author: Igal Liberman Date: Mon Jun 1 15:06:51 2015 +0300 powerpc/fsl: Add FMan Port 10G compatibles This patch adds two boolean properties to FMan Port. FMan has 3 types of ports: - 1G ports By default, all ports support 1G rate - 10G Ports Port which use 10G hardware, and configured as 10G - 10G Best effort ports Ports which use 1G hardware, configured as 10G, in this case, the rate is not guaranteed. The new properties help to distinguish the different type of ports. Signed-off-by: Igal Liberman Signed-off-by: Scott Wood Documentation/devicetree/bindings/powerpc/fsl/fman.txt | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit ae45577324d1f749c907840247d443696ac3bc7a Author: Dave Airlie Date: Fri Jun 5 12:31:12 2015 +1000 virtgpu: include linux/types.h to avoid warning. Signed-off-by: Dave Airlie include/uapi/linux/virtio_gpu.h | 2 ++ 1 file changed, 2 insertions(+) commit 63a4aea556704acba1529df8f896ed65b93e66c1 Author: Rob Herring Date: Mon Jun 1 08:42:48 2015 -0500 of: clean-up unnecessary libfdt include paths With the libfdt include fixups to use "" instead of <> in the latest dtc import in commit 4760597 (scripts/dtc: Update to upstream version 9d3649bd3be245c9), it is no longer necessary to add explicit include paths to use libfdt. Remove these across the kernel. Signed-off-by: Rob Herring Acked-by: Ralf Baechle Cc: Benjamin Herrenschmidt Cc: Paul Mackerras Acked-by: Michael Ellerman Acked-by: Grant Likely Cc: linux-mips@linux-mips.org Cc: linuxppc-dev@lists.ozlabs.org arch/mips/cavium-octeon/Makefile | 3 --- arch/mips/mti-sead3/Makefile | 2 -- arch/powerpc/kernel/Makefile | 1 - drivers/firmware/efi/libstub/Makefile | 2 -- drivers/of/Makefile | 3 --- 5 files changed, 11 deletions(-) commit 649e0a77e28a7796bf62bfda0fe3f2aee094bd58 Author: Rob Herring Date: Thu May 28 12:58:02 2015 -0500 of: make unittest select OF_EARLY_FLATTREE instead of depend on it The DT unittest currently requires an arch (typically) to select OF_EARLY_FLATTREE. Remove this dependency by selecting it directly so that the unittest can be enabled easily on any architecture. With this and the prior commit, we can easily enable and run unittests starting with x86 defconfig rather than hunting for the combination of config options to enable OF on x86. Signed-off-by: Rob Herring Cc: Geert Uytterhoeven Cc: Pantelis Antoniou Acked-by: Grant Likely drivers/of/Kconfig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 0166dc11be911213e0b1b764488c671be4c48cf3 Author: Rob Herring Date: Thu May 28 12:48:45 2015 -0500 of: make CONFIG_OF user selectable With the addition of overlays, it is now plausible to use DT on any arch and without an arch using it at boot time. It is also desirable to expand the compile coverage of the DT code. Make CONFIG_OF user selectable by converting the menu to menuconfig. Signed-off-by: Rob Herring Acked-by: Geert Uytterhoeven Acked-by: Pantelis Antoniou Acked-by: Grant Likely drivers/of/Kconfig | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) commit a93fe8f8b444499119261914b8870d7f5ac173f8 Merge: ef13169 3ccec53 Author: Dave Airlie Date: Fri Jun 5 11:14:18 2015 +1000 Merge branch 'drm-next-4.2-amdgpu' of git://people.freedesktop.org/~agd5f/linux into drm-next This is the big pull request for amdgpu, the new driver for VI+ AMD asics. I currently supports Tonga, Iceland, and Carrizo and also contains a Kconfig option to build support for CI parts for testing. All major functionality is supported (displays, gfx, compute, dma, video decode/encode, etc.). Power management is working on Carrizo, but is still being worked on for Tonga and Iceland. * 'drm-next-4.2-amdgpu' of git://people.freedesktop.org/~agd5f/linux: (106 commits) drm/amdgpu: only support IBs in the buffer list (v2) drm/amdgpu: add vram_type and vram_bit_width for interface query (v2) drm/amdgpu: add ib_size/start_alignment interface query drm/amdgpu: add me/ce/pfp_feature_version interface query drm/amdgpu add ce_ram_size for interface query drm/amdgpu add max_memory_clock for interface query (v2) drm/amdgpu: add hdp flush for gfx8 compute ring drm/amdgpu: fix no hdp flush for compute ring drm/amdgpu: add HEVC/H.265 UVD support drm/amdgpu: stop loading firmware with pm.mutex locked drm/amdgpu: remove mclk_lock drm/amdgpu: fix description of vm_size module parameter (v2) drm/amdgpu: remove all sh mem register modification in vm flush drm/amdgpu: rename GEM_OP_SET_INITIAL_DOMAIN -> GEM_OP_SET_PLACEMENT drm/amdgpu: fence should be added to shared slot drm/amdgpu: sync fence of clear_invalids (v2) drm/amdgpu: max_pde_used usage should be under protect drm/amdgpu: fix bug of vm_bo_map (v2) drm/amdgpu: implement the allocation range (v3) drm/amdgpu: rename amdgpu_ip_funcs to amd_ip_funcs (v2) ... commit ef1316961048988c6d044a298b5842c8288cc35b Author: Frediano Ziglio Date: Wed Jun 3 12:09:19 2015 +0100 drm/qxl: Propagate correctly errors from qxlhw_handle_to_bo This function could return a NULL pointer in case of handle not present and in case of out of memory conditions however caller function always returned EINVAL error hiding a possible ENOMEM. This patch change the function to return the error instead to be able to propagate the error instead of assuming EINVAL. Signed-off-by: Frediano Ziglio Reviewed-by: Dave Airlie Signed-off-by: Dave Airlie drivers/gpu/drm/qxl/qxl_ioctl.c | 33 ++++++++++++++------------------- 1 file changed, 14 insertions(+), 19 deletions(-) commit 74d9a6335dceb81a55821ac72daaa8f1c1554a83 Author: Frediano Ziglio Date: Wed Jun 3 12:09:18 2015 +0100 drm/qxl: Simplify cleaning qxl processing command In qxlhw_handle_to_bo we incremented counters twice, one time for release object and one for reloc_info. In the main function however reloc_info references was drop much earlier than release so keeping the pointer only on release is safe and make cleaning process easier. Signed-off-by: Frediano Ziglio Reviewed-by: Dave Airlie Signed-off-by: Dave Airlie drivers/gpu/drm/qxl/qxl_ioctl.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) commit e07154e28cb079562fcc0be6915cb7d4890fdba1 Author: Frediano Ziglio Date: Wed Jun 3 12:09:17 2015 +0100 drm/qxl: Move main reference counter to GEM object instead of TTM ones qxl_bo structure has two reference counters, one in the GEM object and another in the TTM object. The GEM object keep a counter to the TTM object so when GEM counter reached zero the TTM counter (using qxl_bo_unref) was decremented. The qxl object is fully freed (both GEM and TTM part are cleaned) when the TTM counter reach zero. One issue was that surface idr structure has no owning on qxl_bo objects however it contains a pointer to qxl_bo object. This caused some nasty race condition for instance qxl_bo object was reaped even after counter was already zero. This patch fix these races moving main counter (the one used by qxl_bo_(un)ref) to GEM object which cleanup routine (qxl_gem_object_free) remove the idr pointer (using qxl_surface_evict) when the counters are still valid. Signed-off-by: Frediano Ziglio Reviewed-by: Dave Airlie Signed-off-by: Dave Airlie drivers/gpu/drm/qxl/qxl_gem.c | 10 ++++++++-- drivers/gpu/drm/qxl/qxl_object.c | 11 ++++------- 2 files changed, 12 insertions(+), 9 deletions(-) commit 72ec5650a85e8337d6364d16c65dd85a208b7986 Author: Frediano Ziglio Date: Wed Jun 3 12:09:16 2015 +0100 drm/qxl: Remove format string errors Enable format string checks for qxl_io_log and remove resulting warnings which could lead to memory errors on different platform or just printing wrong information. Signed-off-by: Frediano Ziglio Reviewed-by: Dave Airlie Signed-off-by: Dave Airlie drivers/gpu/drm/qxl/qxl_cmd.c | 2 +- drivers/gpu/drm/qxl/qxl_display.c | 2 +- drivers/gpu/drm/qxl/qxl_drv.h | 2 +- drivers/gpu/drm/qxl/qxl_release.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) commit de0b523a5a4c99859513238559d62e0dd4a9a67e Author: Frediano Ziglio Date: Wed Jun 3 12:09:15 2015 +0100 drm/qxl: Handle correctly failures in qxl_alloc_relase_reserved Free resources correctly if function fails Signed-off-by: Frediano Ziglio Reviewed-by: Dave Airlie Signed-off-by: Dave Airlie drivers/gpu/drm/qxl/qxl_release.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit 6ecf5c2b571e47b87568446f86b00838fcd0294d Author: Frediano Ziglio Date: Wed Jun 3 12:09:14 2015 +0100 drm/qxl: Fix return for qxl_release_alloc This function return handle to allocated release object which is an int. Signed-off-by: Frediano Ziglio Reviewed-by: Dave Airlie Signed-off-by: Dave Airlie drivers/gpu/drm/qxl/qxl_release.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c610c7137c02eb9812b4e7871abe5b0642ff58d2 Author: Frediano Ziglio Date: Wed Jun 3 12:09:13 2015 +0100 drm/qxl: Handle all errors in qxl_surface_evict Only EBUSY error was handled. This could cause code to believe reserve was successful while it failed. Signed-off-by: Frediano Ziglio Reviewed-by: Dave Airlie Signed-off-by: Dave Airlie drivers/gpu/drm/qxl/qxl_cmd.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit fe2af53baec1b3b64ee343d4e7e6a351e52e3b48 Author: Frediano Ziglio Date: Wed Jun 3 12:09:12 2015 +0100 drm/qxl: Avoid double free on error Is we are not able to get source bo object from handle we free destination bo object and call cleanup code however destination object was already inserted in reloc_info array (num_relocs was already incremented) so on cleanup we free destination again. Signed-off-by: Frediano Ziglio Reviewed-by: Dave Airlie Signed-off-by: Dave Airlie drivers/gpu/drm/qxl/qxl_ioctl.c | 2 -- 1 file changed, 2 deletions(-) commit 55cc3df08a2c6a9c9c20b34ba26de0512a750b5e Author: Frediano Ziglio Date: Wed Jun 3 12:09:11 2015 +0100 drm/qxl: Fix print statement not using uninitialized variable reloc_info[i] is not still initialized in the print statement. Signed-off-by: Frediano Ziglio Reviewed-by: Dave Airlie Signed-off-by: Dave Airlie drivers/gpu/drm/qxl/qxl_ioctl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8451cc964c1d193b989c41a44e5e77109cc696f8 Author: Frediano Ziglio Date: Wed Jun 3 12:09:10 2015 +0100 drm/qxl: Do not leak memory if qxl_release_list_add fails If the function fails reference counter to the object is not decremented causing leaks. This is hard to spot as it happens only on very low memory situations. Signed-off-by: Frediano Ziglio Cc: stable@vger.kernel.org Reviewed-by: Dave Airlie Signed-off-by: Dave Airlie drivers/gpu/drm/qxl/qxl_ioctl.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 2fa19535ca6abcbfd1ccc9ef694db52f49f77747 Author: Frediano Ziglio Date: Wed Jun 3 12:09:09 2015 +0100 drm/qxl: Do not cause spice-server to clean our objects If objects are moved back from system memory to VRAM (and spice id created again) memory is already initialized so we need to set flag to not clear memory. If you don't do it after a while using desktop many images turns to black or transparents. Signed-off-by: Frediano Ziglio Cc: stable@vger.kernel.org Reviewed-by: Dave Airlie Signed-off-by: Dave Airlie drivers/gpu/drm/qxl/qxl_cmd.c | 1 + 1 file changed, 1 insertion(+) commit 42ef89466b0bdfe5b08f8f603e3c924a8d7d9332 Author: Rob Herring Date: Mon Jun 1 08:17:31 2015 -0500 MIPS: prepare for user enabling of CONFIG_OF In preparation to allow users to enable DeviceTree without arch or machine selecting it, we need to fix build errors on MIPS. When CONFIG_OF is enabled, device_tree_init cannot be resolved. This is trivially fixed by using CONFIG_USE_OF instead of CONFIG_OF for prom.h. Signed-off-by: Rob Herring Acked-by: Ralf Baechle Acked-by: Grant Likely Cc: linux-mips@linux-mips.org arch/mips/include/asm/prom.h | 2 +- arch/mips/kernel/prom.c | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) commit 47016077b665b274c6c18f660a9a60898284e700 Author: Andreas Gruenbacher Date: Fri Jun 5 01:11:22 2015 +0200 vfs: Minor documentation fix The check_acl inode operation and the IPERM_FLAG_RCU flag are long gone; update the documentation. Signed-off-by: Andreas Gruenbacher Signed-off-by: Jonathan Corbet Documentation/filesystems/porting | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit bb62f791f922254dc1847d3d0b77c9b066d5280b Merge: 6a0d7a0 4aa17b2 Author: David S. Miller Date: Thu Jun 4 16:41:02 2015 -0700 Merge branch 'mlx5-next' Or Gerlitz says: ==================== mlx5: Add Interface Step Sequence ID support ISSI (Interface Step Sequence ID) defines the step sequence ID of the interface between the driver to the firmware and is incremented by steps of one. ISSI is used to enable deprecating/modifying features, command interfaces and such, while maintaining compatibility. As the driver serves both ConnectIB (CIB) and ConnectX4, we carefully made sure that the IB functionality keeps running also on older CIB firmware releases that don't support ISSI. The Ethernet functionailty is available only on ConnectX4 where all firmware releases support the feature since the very basic ISSI level. So at this point no need for compatility code there. As done prior to this series, when the Ethernet functionlity is enabled, during the initialization flow, the core driver performs a query of the supported ISSIs using the QUERY_ISSI command, and then, if ISSI is supported, sets the actual issi value informing the firmware on which ISSI level to run, using SET_ISSI command. Previously, the IB driver wasn't ready to work on that mode, and hence building both the IB driver and the Ethernet functionality in the core driver were disallowed by Kconfigs, with this series, we allow users to enable them both. ==================== Signed-off-by: David S. Miller commit 4aa17b2879f66e478aa9b81cc3bbade6416126aa Author: Haggai Abramonvsky Date: Thu Jun 4 19:30:48 2015 +0300 mlx5: Enable mutual support for IB and Ethernet Ethernet functionality is only available when working in ISSI > 0 mode. Previously, the IB driver wasn't ready to work on that mode, and hence building both the IB driver and the Ethernet functionality in the core driver were disallowed by Kconfigs. Now, once we have all the pre-steps in place, we can remove this limitation. The last steps in the IB driver for getting that setup to work are: create dummy SRQ for the driver's use (until now we could use XRC_SRQ as SRQ and XRC_SRQ, after moving to ISSI > 0, we separate XRC SRQs from basic SRQs) and adapt the create QP function to be compatible with ISSI > 0. Signed-off-by: Haggai Abramovsky Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/infiniband/hw/mlx5/main.c | 22 ++++++++++++++++++++++ drivers/infiniband/hw/mlx5/mlx5_ib.h | 1 + drivers/infiniband/hw/mlx5/qp.c | 3 ++- drivers/net/ethernet/mellanox/mlx5/core/Kconfig | 2 +- drivers/net/ethernet/mellanox/mlx5/core/qp.c | 7 +++++++ 5 files changed, 33 insertions(+), 2 deletions(-) commit 647241ea10db87ed0448853fa510177dd89a7a63 Author: Majd Dibbiny Date: Thu Jun 4 19:30:47 2015 +0300 IB/mlx5: Don't create IB instance over Ethernet ports Since we still don't have RoCE support in mlx5, avoid creating IB driver instance over Ethernet ports. Signed-off-by: Majd Dibbiny Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/infiniband/hw/mlx5/main.c | 4 ++++ 1 file changed, 4 insertions(+) commit 1b5daf11b015123108686a9060ee6de705a03e76 Author: Majd Dibbiny Date: Thu Jun 4 19:30:46 2015 +0300 IB/mlx5: Avoid using the MAD_IFC command under ISSI > 0 mode In ISSI > 0 mode, most of the MAD_IFC command features are deprecated, and can't be used. Therefore, when in that mode, we replace all of them with other commands that provide the required functionality. Signed-off-by: Majd Dibbiny Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/infiniband/hw/mlx5/mad.c | 297 ++++++++++++++++++++ drivers/infiniband/hw/mlx5/main.c | 517 +++++++++++++++++++++++------------ drivers/infiniband/hw/mlx5/mlx5_ib.h | 16 ++ 3 files changed, 657 insertions(+), 173 deletions(-) commit a124d13ef59e09941fc0924fd7c29ae6d7cd77a3 Author: Majd Dibbiny Date: Thu Jun 4 19:30:45 2015 +0300 net/mlx5_core: Add more query port helpers Add the following helpers: 1. mlx5_query_port_proto_oper -- queries the port speed port mask 2. mlx5_query_port_link_width_oper - queries the port link with bitmask 3. mlx5_query_port_vl_hw_cap - queries the Virtual Lanes supported on this port These helpers will be used from the IB driver when working in ISSI > 0 mode. Signed-off-by: Majd Dibbiny Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/port.c | 67 ++++++++++++++++++++++++++ include/linux/mlx5/driver.h | 8 +++ 2 files changed, 75 insertions(+) commit a05bdefa4081d43f9c86c3bb693d0492a21590da Author: Majd Dibbiny Date: Thu Jun 4 19:30:44 2015 +0300 net/mlx5_core: Use port number when querying port ptys Until now, mlx5_query_port_ptys always queried port number one. Added new argument in the function's prototype so we can also query the second port. This will be needed when thr helper will be invoked from the IB driver on non FPP (Function-Per-Port) devices. Signed-off-by: Majd Dibbiny Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c | 2 +- drivers/net/ethernet/mellanox/mlx5/core/port.c | 8 ++++---- include/linux/mlx5/driver.h | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) commit e760152d08da78aa160e68ac90bf8f3f10aff462 Author: Majd Dibbiny Date: Thu Jun 4 19:30:43 2015 +0300 net/mlx5_core: Use port number in the query port mtu helpers Extend the function prototypes for max and operational mtu to take the local port number. In the Ethernet driver is this hard coded to one, since ConnectX4 Ethernet devices are always function-per-port. The IB driver also serves older devices (ConnectIB) which isn't such, and hence the part can vary. Signed-off-by: Majd Dibbiny Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 4 ++-- drivers/net/ethernet/mellanox/mlx5/core/port.c | 15 +++++++++------ include/linux/mlx5/driver.h | 6 ++++-- 3 files changed, 15 insertions(+), 10 deletions(-) commit 211e6c80e5a68ef39a81484583e8efbf9774627d Author: Majd Dibbiny Date: Thu Jun 4 19:30:42 2015 +0300 net/mlx5_core: Get vendor-id using the query adapter command Add two wrapper functions to the query adapter command: 1. mlx5_query_board_id -- replaces the old mlx5_cmd_query_adapter. 2. mlx5_core_query_vendor_id -- retrieves the vendor_id from the query_adapter command. Signed-off-by: Majd Dibbiny Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/fw.c | 59 ++++++++++++++++------ drivers/net/ethernet/mellanox/mlx5/core/main.c | 4 +- .../net/ethernet/mellanox/mlx5/core/mlx5_core.h | 2 +- include/linux/mlx5/driver.h | 1 + include/linux/mlx5/mlx5_ifc.h | 7 ++- 5 files changed, 53 insertions(+), 20 deletions(-) commit 707c4602cda6624940761b66a4119f1909492385 Author: Majd Dibbiny Date: Thu Jun 4 19:30:41 2015 +0300 net/mlx5_core: Add new query HCA vport commands Added the implementation for the following commands: 1. QUERY_HCA_VPORT_GID 2. QUERY_HCA_VPORT_PKEY 3. QUERY_HCA_VPORT_CONTEXT They will be needed when we move to work with ISSI > 0 in the IB driver too. Signed-off-by: Majd Dibbiny Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/Makefile | 4 +- drivers/net/ethernet/mellanox/mlx5/core/main.c | 10 +- drivers/net/ethernet/mellanox/mlx5/core/vport.c | 259 +++++++++++++++++++++++ include/linux/mlx5/device.h | 13 ++ include/linux/mlx5/driver.h | 45 ++++ include/linux/mlx5/mlx5_ifc.h | 23 +- include/linux/mlx5/vport.h | 14 ++ 7 files changed, 349 insertions(+), 19 deletions(-) commit d18a9470f89727f870db944a36223bf1bb15bdc1 Author: Majd Dibbiny Date: Thu Jun 4 19:30:40 2015 +0300 net/mlx5_core: Make the vport helpers available for the IB driver too Move the vport header file to be under include/linux/mlx5, such that the mlx5 IB can use it as well. Also add nic_ prefix to the vport NIC commands to differeniate between HCA vport commands and NIC vport commands. Signed-off-by: Majd Dibbiny Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en.h | 2 +- drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 2 +- drivers/net/ethernet/mellanox/mlx5/core/vport.c | 6 ++-- drivers/net/ethernet/mellanox/mlx5/core/vport.h | 41 ----------------------- include/linux/mlx5/vport.h | 41 +++++++++++++++++++++++ 5 files changed, 47 insertions(+), 45 deletions(-) commit e74a1db03326ecdc7c3f54a581b197a26ce5eebe Author: Haggai Abramonvsky Date: Thu Jun 4 19:30:39 2015 +0300 net/mlx5_core: Check the return bitmask when querying ISSI The determination of the supported ISSI versions should be conditioned on the returned mask, and not only on the return status of the query ISSI command, fix that. Signed-off-by: Haggai Abramovsky Signed-off-by: Majd Dibbiny Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 01949d0109ee5fae33752f0db99a36f1619e1873 Author: Haggai Abramonvsky Date: Thu Jun 4 19:30:38 2015 +0300 net/mlx5_core: Enable XRCs and SRQs when using ISSI > 0 When working in ISSI > 0 mode, the model exposed by the device for XRCs and SRQs is different. XRCs use XRC SRQs and plain SRQs are based on RPM (Receive Memory Pool). Add helper functions to create, modify, query, and arm XRC SRQs and RMPs. Signed-off-by: Haggai Abramovsky Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/infiniband/hw/mlx5/srq.c | 2 +- drivers/net/ethernet/mellanox/mlx5/core/Makefile | 4 +- drivers/net/ethernet/mellanox/mlx5/core/srq.c | 444 ++++++++++++++++++--- drivers/net/ethernet/mellanox/mlx5/core/transobj.c | 154 +++++++ drivers/net/ethernet/mellanox/mlx5/core/transobj.h | 11 + include/linux/mlx5/driver.h | 6 +- include/linux/mlx5/mlx5_ifc.h | 16 +- 7 files changed, 564 insertions(+), 73 deletions(-) commit 7db22ffb5b09d9b77baf057ca034d966e58df1e1 Author: Haggai Abramonvsky Date: Thu Jun 4 19:30:37 2015 +0300 net/mlx5_core: Apply proper name convention to helpers Some core helper functions were named with mlx5_ only prefix, fix that to mlx5_core_ so we're aligned with the overall scheme used for core services. Signed-off-by: Haggai Abramovsky Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 20 +++++++++--------- drivers/net/ethernet/mellanox/mlx5/core/transobj.c | 22 +++++++++++--------- drivers/net/ethernet/mellanox/mlx5/core/transobj.h | 24 +++++++++++++--------- 3 files changed, 36 insertions(+), 30 deletions(-) commit 5e24851ec502334986c2ac775beb4b7184a0b6c5 Author: Amir Vadai Date: Thu Jun 4 19:30:36 2015 +0300 net/mlx5_en: Add missing check for memory allocation failure The patch afb736e9330a: "net/mlx5: Ethernet resource handling files" from May 28, 2015, leads to the following static checker warning: drivers/net/ethernet/mellanox/mlx5/core/en_flow_table.c:726 mlx5e_create_main_flow_table() error: potential null dereference 'g'. (kcalloc returns null) Fixes: afb736e9330a ("net/mlx5: Ethernet resource handling files") Reported-by: Dan Carpenter Signed-off-by: Amir Vadai Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en_flow_table.c | 2 ++ 1 file changed, 2 insertions(+) commit 03e8f01a67d6fc02fafc1b23394cc750fec290e1 Author: Frans Klaver Date: Thu Jun 4 21:27:38 2015 +0200 Doc: networking: txtimestamp: fix printf format warning Documentation/networking/timestamping/txtimestamp.c: In function ‘__print_timestamp’: Documentation/networking/timestamping/txtimestamp.c:99:3: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 3 has type ‘int64_t’ [-Wformat=] fprintf(stderr, " (%+ld us)", cur_ms - prev_ms); int64_t differs per platform, so a type specifier that differs along with it is required. Signed-off-by: Frans Klaver Signed-off-by: Jonathan Corbet Documentation/networking/timestamping/txtimestamp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1df1b3618d95f7a6668c1a8e749e1be96a7e3fe1 Author: Prarit Bhargava Date: Mon Jun 1 09:36:04 2015 -0400 Documentation, intel_pstate: Improve legacy mode internal governors description The current documentation is incomplete wrt the intel_pstate legacy internal governors. The confusion comes from the general cpufreq governors which also use the names performance and powersave. This patch better differentiates between the two sets of governors and gives an explanation of how the internal P-state governors behave differently from one another. Also fix two minor typos. Cc: Prarit Bhargava Cc: "Rafael J. Wysocki" Cc: Kristen Carlson Accardi Cc: Dirk Brandewie Cc: x86@kernel.org Acked-by: Viresh Kumar Signed-off-by: Prarit Bhargava Signed-off-by: Jonathan Corbet Documentation/cpu-freq/governors.txt | 2 +- Documentation/cpu-freq/intel-pstate.txt | 21 +++++++++++---------- 2 files changed, 12 insertions(+), 11 deletions(-) commit 6a0d7a054f90442ab9788b1435be4b69c262b37f Merge: ffaa31d b3baa0f Author: David S. Miller Date: Thu Jun 4 15:44:32 2015 -0700 Merge branch 'flow_key_hashing' Tom Herbert says: ==================== net: Increase inputs to flow_keys hashing This patch set adds new fields to the flow_keys structure and hashes over these fields to get a better flow hash. In particular, these patches now include hashing over the full IPv6 addresses in order to defend against address spoofing that always results in the same hash. The new input also includes the Ethertype, L4 protocol, VLAN, flow label, GRE keyid, and MPLS entropy label. In order to increase hash inputs, we switch to using jhash2 which operates an an array of u32's. jhash2 operates on multiples of three words. The data in the hash is constructed for that, and there are are two variants for IPv4 and Ipv6 addressing. For IPv4 addresses, jhash is performed over six u32's and for IPv6 it is done over twelve. flow_keys can store either IPv4 or IPv6 addresses (addr_proto field is a selector). ipv6_addr_hash is no longer used to convert addresses for setting in flow table. For legacy uses of flow keys outside of flow_dissector the flow_get_u32_src and flow_get_u32_dst functions have been added to get u32 representation representations of addresses in flow_keys. For flow lables we also eliminate the short circuit in flow_dissector for non-zero flow label. The flow label is now considered additional input to ports. Testing: Ran netperf TCP_RR for 200 flows using IPv4 and IPv6 comparing before the patches and with the patches. Did not detect any performance degradation. v2: - Took out MPLS entropy label. Will add this later. v3: - Ensure hash start offset is a four byte boundary. Add BUG_BUILD_ON to check for this. - Fixes sparse error in GRE to get entropy from keyid. v4: - Rebase to Jiri changes to generalize flow dissection - Support TIPC as its own address - Bring back MPLS entropy label dissection - Remove FLOW_DISSECTOR_KEY_IPV6_HASH_ADDRS v5: - Minor fixes from feedback v6: - Cleanup and sparse issue with flow label - Change keyid to returned by flow_dissector to be __be32 ==================== Signed-off-by: David S. Miller commit b3baa0fbd02a1a9d493d8cb92ae4a4491b9e9d13 Author: Tom Herbert Date: Thu Jun 4 09:16:46 2015 -0700 mpls: Add MPLS entropy label in flow_keys In flow dissector if an MPLS header contains an entropy label this is saved in the new keyid field of flow_keys. The entropy label is then represented in the flow hash function input. Signed-off-by: Tom Herbert Signed-off-by: David S. Miller include/net/flow_dissector.h | 1 + net/core/flow_dissector.c | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) commit 1fdd512c92003cf2d671ba22753d13302bf8cd1d Author: Tom Herbert Date: Thu Jun 4 09:16:45 2015 -0700 net: Add GRE keyid in flow_keys In flow dissector if a GRE header contains a keyid this is saved in the new keyid field of flow_keys. The GRE keyid is then represented in the flow hash function input. Signed-off-by: Tom Herbert Signed-off-by: David S. Miller include/net/flow_dissector.h | 6 ++++++ net/core/flow_dissector.c | 24 +++++++++++++++++++++++- 2 files changed, 29 insertions(+), 1 deletion(-) commit 87ee9e52ffeb168803a76cc07734425227cc2268 Author: Tom Herbert Date: Thu Jun 4 09:16:44 2015 -0700 net: Add IPv6 flow label to flow_keys In flow_dissector set the flow label in flow_keys for IPv6. This also removes the shortcircuiting of flow dissection when a non-zero label is present, the flow label can be considered to provide additional entropy for a hash. Signed-off-by: Tom Herbert Signed-off-by: David S. Miller include/net/flow_dissector.h | 4 +++- net/core/flow_dissector.c | 29 ++++++++++------------------- 2 files changed, 13 insertions(+), 20 deletions(-) commit d34af823ff401c312541aa613c49ea4b872bde9e Author: Tom Herbert Date: Thu Jun 4 09:16:43 2015 -0700 net: Add VLAN ID to flow_keys In flow_dissector set vlan_id in flow_keys when VLAN is found. Signed-off-by: Tom Herbert Signed-off-by: David S. Miller include/net/flow_dissector.h | 6 ++++++ net/core/flow_dissector.c | 14 ++++++++++++++ 2 files changed, 20 insertions(+) commit 45b47fd00ca14df869979dbbe14324625ec93552 Author: Tom Herbert Date: Thu Jun 4 09:16:42 2015 -0700 net: Get rid of IPv6 hash addresses flow keys We don't need to return the IPv6 address hash as part of flow keys. In general, using the IPv6 address hash is risky in a hash value since the underlying use of xor provides no entropy. If someone really needs the hash value they can get it from the full IPv6 addresses in flow keys (e.g. from flow_get_u32_src). Signed-off-by: Tom Herbert Signed-off-by: David S. Miller include/net/flow_dissector.h | 1 - net/core/flow_dissector.c | 17 ----------------- 2 files changed, 18 deletions(-) commit 9f24908901c5f4b1e3b07548106b1790af933476 Author: Tom Herbert Date: Thu Jun 4 09:16:41 2015 -0700 net: Add keys for TIPC address Add a new flow key for TIPC addresses. Signed-off-by: Tom Herbert Signed-off-by: David S. Miller include/net/flow_dissector.h | 10 ++++++++++ net/core/flow_dissector.c | 18 +++++++++++++----- 2 files changed, 23 insertions(+), 5 deletions(-) commit c3f8324188fa80178f20c8209b492ca6191177e8 Author: Tom Herbert Date: Thu Jun 4 09:16:40 2015 -0700 net: Add full IPv6 addresses to flow_keys This patch adds full IPv6 addresses into flow_keys and uses them as input to the flow hash function. The implementation supports either IPv4 or IPv6 addresses in a union, and selector is used to determine how may words to input to jhash2. We also add flow_get_u32_dst and flow_get_u32_src functions which are used to get a u32 representation of the source and destination addresses. For IPv6, ipv6_addr_hash is called. These functions retain getting the legacy values of src and dst in flow_keys. With this patch, Ethertype and IP protocol are now included in the flow hash input. Signed-off-by: Tom Herbert Signed-off-by: David S. Miller drivers/net/bonding/bond_main.c | 9 +- drivers/net/ethernet/cisco/enic/enic_clsf.c | 8 +- drivers/net/ethernet/cisco/enic/enic_ethtool.c | 4 +- include/net/flow_dissector.h | 52 +++++++---- include/net/ip.h | 19 +++- include/net/ipv6.h | 21 ++++- net/core/flow_dissector.c | 116 +++++++++++++++++++++---- net/ethernet/eth.c | 2 +- net/sched/cls_flow.c | 14 ++- net/sched/cls_flower.c | 11 +-- 10 files changed, 193 insertions(+), 63 deletions(-) commit 42aecaa9bb2bd57eb8d61b4565cee5d3640863fb Author: Tom Herbert Date: Thu Jun 4 09:16:39 2015 -0700 net: Get skb hash over flow_keys structure This patch changes flow hashing to use jhash2 over the flow_keys structure instead just doing jhash_3words over src, dst, and ports. This method will allow us take more input into the hashing function so that we can include full IPv6 addresses, VLAN, flow labels etc. without needing to resort to xor'ing which makes for a poor hash. Acked-by: Jiri Pirko Signed-off-by: Tom Herbert Signed-off-by: David S. Miller include/linux/skbuff.h | 2 +- include/net/flow_dissector.h | 21 ++++++++++++++--- include/net/ip.h | 2 ++ include/net/ipv6.h | 2 ++ net/core/flow_dissector.c | 54 +++++++++++++++++++++++++++++++++----------- net/sched/cls_flower.c | 2 ++ 6 files changed, 66 insertions(+), 17 deletions(-) commit c468efe2c7d478bad8855f7d170cf245ee0f1b3f Author: Tom Herbert Date: Thu Jun 4 09:16:38 2015 -0700 net: Remove superfluous setting of key_basic key_basic is set twice in __skb_flow_dissect which seems unnecessary. Remove second one. Acked-by: Jiri Pirko Signed-off-by: Tom Herbert Signed-off-by: David S. Miller net/core/flow_dissector.c | 6 ------ 1 file changed, 6 deletions(-) commit 730fc4371333636a00fed32c587fc1e85c5367e2 Author: Tom Herbert Date: Thu Jun 4 09:16:37 2015 -0700 mpls: Add definition for IPPROTO_MPLS Add uapi define for MPLS over IP. Acked-by: Jiri Pirko Signed-off-by: Tom Herbert Signed-off-by: David S. Miller include/uapi/linux/in.h | 2 ++ 1 file changed, 2 insertions(+) commit ce3b5355477ce99bffa60a6a215f2e11db4b649c Author: Tom Herbert Date: Thu Jun 4 09:16:36 2015 -0700 net: Simplify GRE case in flow_dissector Do break when we see routing flag or a non-zero version number in GRE header. Acked-by: Jiri Pirko Signed-off-by: Tom Herbert Signed-off-by: David S. Miller net/core/flow_dissector.c | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) commit ffaa31d7945f14edb04d7b2792a1dbd3a854a2bc Author: Shailendra Verma Date: Thu Jun 4 20:11:00 2015 +0530 atm:he - Do not initialise statics to 0. According to false is always '0' and Static variables are initialised to 0 by GCC. Signed-off-by: Shailendra Verma Signed-off-by: David S. Miller drivers/atm/he.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 582ed8d51e2b6cb8a168c94852bca482685c2509 Author: Luis R. Rodriguez Date: Thu May 28 11:56:01 2015 -0700 Documentation: extend use case for EXPORT_SYMBOL_GPL() Current documentation over use case for EXPORT_SYMBOL_GPL() only acknowledges functions which are "an internal implementation issue, and not really an interface". In practice these days though we have some maintainers taking on preferences to require all new functionality go in with EXPORT_SYMBOL_GPL(). A maintainer asking developers to use EXPORT_SYMBOL_GPL() for new functionality tends to be a well accepted and understood position that maintainers can take and typically requires the maintainers educating contributing developers on their own positions and requirements. Developers who submit code to maintainers not familiar with these preferences as optional for new functionality need explicit guidence though as existing documentation does not acknowledge this as a valid possibility. Without this being documented some maintainers are reluctant to accept new functionality with EXPORT_SYMBOL_GPL(). This extends the use case documentation for EXPORT_SYMBOL_GPL() to acknowledge acceptance for new functionality. Signed-off-by: Luis R. Rodriguez [jc: wording tweaked with permission] Signed-off-by: Jonathan Corbet Documentation/DocBook/kernel-hacking.tmpl | 2 ++ 1 file changed, 2 insertions(+) commit 0d7cd8550d30906c7461ced654306da30f1590e2 Author: Jeremy Kerr Date: Thu Jun 4 21:51:47 2015 +0800 powerpc/powernv: Add opal-prd channel This change adds a char device to access the "PRD" (processor runtime diagnostics) channel to OPAL firmware. Includes contributions from Vaidyanathan Srinivasan, Neelesh Gupta & Vishal Kulkarni. Signed-off-by: Neelesh Gupta Signed-off-by: Jeremy Kerr Acked-by: Stewart Smith Signed-off-by: Michael Ellerman arch/powerpc/include/asm/opal-api.h | 21 +- arch/powerpc/include/asm/opal.h | 1 + arch/powerpc/include/uapi/asm/opal-prd.h | 58 ++++ arch/powerpc/platforms/powernv/Kconfig | 7 + arch/powerpc/platforms/powernv/Makefile | 1 + arch/powerpc/platforms/powernv/opal-prd.c | 444 +++++++++++++++++++++++++ arch/powerpc/platforms/powernv/opal-wrappers.S | 1 + arch/powerpc/platforms/powernv/opal.c | 4 +- 8 files changed, 535 insertions(+), 2 deletions(-) commit 594fcb9ec9e17215b4f98b5d40ba5e3af618ba82 Author: Jeremy Kerr Date: Wed May 20 11:23:33 2015 +0800 powerpc/powernv: Expose OPAL APIs required by PRD interface The (upcoming) opal-prd driver needs to access the message notifier and xscom code, so add EXPORT_SYMBOL_GPL macros for these. Signed-off-by: Jeremy Kerr Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/opal.c | 4 ++++ 1 file changed, 4 insertions(+) commit 48c06154952a18c5cd4d074ec3de627430cb6d23 Author: Jeremy Kerr Date: Wed May 20 11:23:33 2015 +0800 powerpc/powernv: Merge common platform device initialisation opal_ipmi_init and opal_flash_init are equivalent, except for the compatbile string. Merge these two into a common opal_pdev_init function. Signed-off-by: Jeremy Kerr Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/opal.c | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) commit 4a1caed3d0c2fbf8c9f18909bec69e2aa2638b97 Author: Uwe Kleine-König Date: Thu May 28 10:45:51 2015 +0200 clk: make several parent names const Since commit 2893c379461a ("clk: make strings in parent name arrays const") the name of parent clocks can be const. So add more const in several clock drivers. Signed-off-by: Uwe Kleine-König Acked-by: Heiko Stuebner Acked-by: Sylwester Nawrocki Signed-off-by: Stephen Boyd drivers/clk/hisilicon/clk-hi3620.c | 70 ++++++++++++++-------------- drivers/clk/hisilicon/clk-hix5hd2.c | 6 +-- drivers/clk/hisilicon/clk.h | 2 +- drivers/clk/mxs/clk-imx23.c | 12 ++--- drivers/clk/mxs/clk-imx28.c | 18 ++++---- drivers/clk/mxs/clk.h | 2 +- drivers/clk/pxa/clk-pxa.h | 2 +- drivers/clk/rockchip/clk-cpu.c | 2 +- drivers/clk/rockchip/clk-mmc-phase.c | 2 +- drivers/clk/rockchip/clk-pll.c | 8 ++-- drivers/clk/rockchip/clk.c | 8 ++-- drivers/clk/rockchip/clk.h | 20 ++++---- drivers/clk/samsung/clk-pll.c | 4 +- drivers/clk/samsung/clk-s5pv210.c | 88 ++++++++++++++++++------------------ drivers/clk/samsung/clk.c | 13 +++--- drivers/clk/samsung/clk.h | 18 ++++---- drivers/clk/zynq/clkc.c | 25 ++++++---- 17 files changed, 154 insertions(+), 146 deletions(-) commit 5857cd637bc0d60dc7e37af396b01324f199d89b Author: Tejun Heo Date: Fri Jun 5 06:20:51 2015 +0900 bdi: fix wrong error return value in cgwb_create() On wb_congested_get_create() failure, cgwb_create() forgot to set @ret to -ENOMEM ending up returning 0. Fix it so that it returns -ENOMEM. Signed-off-by: Tejun Heo Reported-by: Dan Carpenter Signed-off-by: Jens Axboe mm/backing-dev.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 90acb40f1874f7b304b1d8d9b07c72aa83337e31 Author: James Liao Date: Thu May 21 15:12:52 2015 +0800 clk: mediatek: Fix apmixedsys clock registration The size of clk_data should be the same as CLK_APMIXED_NR_CLK instead of ARRAY_SIZE(plls). CLK_APMIXED_* is numbered from 1, so CLK_APMIXED_NR_CLK will be greater than ARRAY_SIZE(plls). Signed-off-by: James Liao Acked-by: Sascha Hauer Signed-off-by: Stephen Boyd drivers/clk/mediatek/clk-mt8135.c | 2 +- drivers/clk/mediatek/clk-mt8173.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit ffe1f0df586237a18f9b568597bddabb56e96d5e Author: Chuck Lever Date: Thu Jun 4 11:21:42 2015 -0400 rpcrdma: Merge svcrdma and xprtrdma modules into one Bi-directional RPC support means code in svcrdma.ko invokes a bit of code in xprtrdma.ko, and vice versa. To avoid loader/linker loops, merge the server and client side modules together into a single module. When backchannel capabilities are added, the combined module will register all needed transport capabilities so that Upper Layer consumers automatically have everything needed to create a bi-directional transport connection. Module aliases are added for backwards compatibility with user space, which still may expect svcrdma.ko or xprtrdma.ko to be present. This commit reverts commit 2e8c12e1b765 ("xprtrdma: add separate Kconfig options for NFSoRDMA client and server support") and provides a single CONFIG option for enabling the new module. Signed-off-by: Chuck Lever Signed-off-by: J. Bruce Fields net/sunrpc/Kconfig | 28 +++++++------------------ net/sunrpc/Makefile | 3 +-- net/sunrpc/xprtrdma/Makefile | 14 ++++++------- net/sunrpc/xprtrdma/module.c | 46 +++++++++++++++++++++++++++++++++++++++++ net/sunrpc/xprtrdma/svc_rdma.c | 8 +------ net/sunrpc/xprtrdma/transport.c | 13 ++---------- net/sunrpc/xprtrdma/xprt_rdma.h | 5 +++++ 7 files changed, 69 insertions(+), 48 deletions(-) commit 0380a3f37540ad0582b3c749a74fc127af914689 Author: Chuck Lever Date: Thu Jun 4 11:21:32 2015 -0400 svcrdma: Add a separate "max data segs macro for svcrdma The server and client maximum are architecturally independent. Allow changing one without affecting the other. Signed-off-by: Chuck Lever Signed-off-by: J. Bruce Fields include/linux/sunrpc/svc_rdma.h | 7 +++++++ net/sunrpc/xprtrdma/svc_rdma_transport.c | 2 +- net/sunrpc/xprtrdma/xprt_rdma.h | 6 ------ 3 files changed, 8 insertions(+), 7 deletions(-) commit b7e0b9a965a116341b4ef86ab98ea2843b218271 Author: Chuck Lever Date: Thu Jun 4 11:21:20 2015 -0400 svcrdma: Replace GFP_KERNEL in a loop with GFP_NOFAIL At the 2015 LSF/MM, it was requested that memory allocation call sites that request GFP_KERNEL allocations in a loop should be annotated with __GFP_NOFAIL. Signed-off-by: Chuck Lever Signed-off-by: J. Bruce Fields include/linux/sunrpc/svc_rdma.h | 1 - net/sunrpc/xprtrdma/svc_rdma_sendto.c | 2 +- net/sunrpc/xprtrdma/svc_rdma_transport.c | 32 ++++++-------------------------- 3 files changed, 7 insertions(+), 28 deletions(-) commit 30b7e246a6222f1fbad39b1451273375306fe1e2 Author: Chuck Lever Date: Thu Jun 4 11:21:10 2015 -0400 svcrdma: Keep rpcrdma_msg fields in network byte-order Fields in struct rpcrdma_msg are __be32. Don't byte-swap these fields when decoding RPC calls and then swap them back for the reply. For the most part, they can be left alone. Signed-off-by: Chuck Lever Signed-off-by: J. Bruce Fields include/linux/sunrpc/svc_rdma.h | 2 +- net/sunrpc/xprtrdma/svc_rdma_marshal.c | 84 +++++++++++++++----------------- net/sunrpc/xprtrdma/svc_rdma_recvfrom.c | 2 +- net/sunrpc/xprtrdma/svc_rdma_transport.c | 2 +- 4 files changed, 42 insertions(+), 48 deletions(-) commit 70747c25a701b563a54c20c4a77efe8292aad151 Author: Chuck Lever Date: Thu Jun 4 11:20:39 2015 -0400 svcrdma: Fix byte-swapping in svc_rdma_sendto.c In send_write_chunks(), we have: for (xdr_off = rqstp->rq_res.head[0].iov_len, chunk_no = 0; xfer_len && chunk_no < arg_ary->wc_nchunks; chunk_no++) { . . . } Note that arg_ary->wc_nchunk is in network byte-order. For the comparison to work correctly, both have to be in native byte-order. In send_reply_chunks, we have: write_len = min(xfer_len, htonl(ch->rs_length)); xfer_len is in native byte-order, and ch->rs_length is in network byte-order. be32_to_cpu() is the correct byte swap for ch->rs_length. As an additional clean up, replace ntohl() with be32_to_cpu() in a few other places. This appears to address a problem with large rsize hangs while using PHYSICAL memory registration. I suspect that is the only registration mode that uses more than one chunk element. BugLink: https://bugzilla.linux-nfs.org/show_bug.cgi?id=248 Signed-off-by: Chuck Lever Signed-off-by: J. Bruce Fields net/sunrpc/xprtrdma/svc_rdma_sendto.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) commit f71355b3d14421784f13c44b66fe0fbc7d3dbdb1 Author: Geert Uytterhoeven Date: Fri May 29 11:25:47 2015 +0200 clk: ti: Use of_clk_get_parent_count() instead of open coding Signed-off-by: Geert Uytterhoeven Signed-off-by: Stephen Boyd drivers/clk/ti/clockdomain.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0a65239c280bb0d56d8d84c4a9cc78bc68144925 Author: Geert Uytterhoeven Date: Fri May 29 11:25:46 2015 +0200 clk: st: Use of_clk_get_parent_count() instead of open coding Signed-off-by: Geert Uytterhoeven Signed-off-by: Stephen Boyd drivers/clk/st/clk-flexgen.c | 2 +- drivers/clk/st/clkgen-mux.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 276f03e3ba242ebf2cf201cc3c7058d2884912b7 Author: Kinglong Mee Date: Tue Jun 2 18:59:25 2015 +0800 nfsd: Update callback sequnce id only CB_SEQUENCE success When testing pnfs layout, nfsd got error NFS4ERR_SEQ_MISORDERED. It is caused by nfs return NFS4ERR_DELAY before validate_seqid(), don't update the sequnce id, but nfsd updates the sequnce id !!! According to RFC5661 20.9.3, " If CB_SEQUENCE returns an error, then the state of the slot (sequence ID, cached reply) MUST NOT change. " Signed-off-by: Kinglong Mee Signed-off-by: J. Bruce Fields fs/nfsd/nfs4callback.c | 14 ++++++++++++-- fs/nfsd/state.h | 1 + 2 files changed, 13 insertions(+), 2 deletions(-) commit 51a43be9fa9016e02ef9c4214470c919223d138c Author: Geert Uytterhoeven Date: Fri May 29 11:25:45 2015 +0200 clk: at91: Use of_clk_get_parent_count() instead of open coding Signed-off-by: Geert Uytterhoeven Acked-by: Boris Brezillon Signed-off-by: Stephen Boyd drivers/clk/at91/clk-main.c | 2 +- drivers/clk/at91/clk-master.c | 2 +- drivers/clk/at91/clk-programmable.c | 2 +- drivers/clk/at91/clk-slow.c | 4 ++-- drivers/clk/at91/clk-smd.c | 2 +- drivers/clk/at91/clk-usb.c | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) commit 4399396eecfc586a1d92e64fe49c3c899f080436 Author: Kinglong Mee Date: Tue Jun 2 18:59:19 2015 +0800 nfsd: Reset cb_status in nfsd4_cb_prepare() at retrying nfsd enters a infinite loop and prints message every 10 seconds: May 31 18:33:52 test-server kernel: Error sending entire callback! May 31 18:34:01 test-server kernel: Error sending entire callback! This is caused by a cb_layoutreturn getting error -10008 (NFS4ERR_DELAY), the client crashing, and then nfsd entering the infinite loop: bc_sendto --> call_timeout --> nfsd4_cb_done --> nfsd4_cb_layout_done with error -10008 --> rpc_delay(task, HZ/100) --> bc_sendto ... Reproduced using xfstests 074 with nfs client's kdump on, CONFIG_DEFAULT_HUNG_TASK_TIMEOUT set, and client's blkmapd down: 1. nfs client's write operation will get the layout of file, and then send getdeviceinfo, 2. but layout segment is not recorded by client because blkmapd is down, 3. client writes data by sending WRITE to server, 4. nfs server recalls the layout of the file before WRITE, 5. network error causes the client reset the session and return NFS4ERR_DELAY, 6. so client's WRITE operation is waiting the reply. If the task hangs 120s, the client will crash. 7. so that, the next bc_sendto will fail with TIMEOUT, and cb_status is NFS4ERR_DELAY. Signed-off-by: Kinglong Mee Signed-off-by: J. Bruce Fields fs/nfsd/nfs4callback.c | 1 + 1 file changed, 1 insertion(+) commit 42a9699a9fa179c0054ea3cf5ad3cc67104a6162 Author: Stephen Smalley Date: Thu Jun 4 16:22:17 2015 -0400 selinux: Remove unused permission definitions Remove unused permission definitions from SELinux. Many of these were only ever used in pre-mainline versions of SELinux, prior to Linux 2.6.0. Some of them were used in the legacy network or compat_net=1 checks that were disabled by default in Linux 2.6.18 and fully removed in Linux 2.6.30. Permissions never used in mainline Linux: file swapon filesystem transition tcp_socket { connectto newconn acceptfrom } node enforce_dest unix_stream_socket { newconn acceptfrom } Legacy network checks, removed in 2.6.30: socket { recv_msg send_msg } node { tcp_recv tcp_send udp_recv udp_send rawip_recv rawip_send dccp_recv dccp_send } netif { tcp_recv tcp_send udp_recv udp_send rawip_recv rawip_send dccp_recv dccp_send } Signed-off-by: Stephen Smalley Signed-off-by: Paul Moore security/selinux/include/classmap.h | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) commit 8e01472078763ebc1eaea089a1adab75dd982ccd Author: Stephen Smalley Date: Thu Jun 4 16:22:17 2015 -0400 selinux: enable genfscon labeling for sysfs and pstore files Support per-file labeling of sysfs and pstore files based on genfscon policy entries. This is safe because the sysfs and pstore directory tree cannot be manipulated by userspace, except to unlink pstore entries. This provides an alternative method of assigning per-file labeling to sysfs or pstore files without needing to set the labels from userspace on each boot. The advantages of this approach are that the labels are assigned as soon as the dentry is first instantiated and userspace does not need to walk the sysfs or pstore tree and set the labels on each boot. The limitations of this approach are that the labels can only be assigned based on pathname prefix matching. You can initially assign labels using this mechanism and then change them at runtime via setxattr if allowed to do so by policy. Signed-off-by: Stephen Smalley Suggested-by: Dominick Grift Acked-by: Jeff Vander Stoep Signed-off-by: Paul Moore security/selinux/hooks.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 134509d54e4e98888be2697a92cb4b48957b792b Author: Stephen Smalley Date: Thu Jun 4 16:22:17 2015 -0400 selinux: enable per-file labeling for debugfs files. Add support for per-file labeling of debugfs files so that we can distinguish them in policy. This is particularly important in Android where certain debugfs files have to be writable by apps and therefore the debugfs directory tree can be read and searched by all. Since debugfs is entirely kernel-generated, the directory tree is immutable by userspace, and the inodes are pinned in memory, we can simply use the same approach as with proc and label the inodes from policy based on pathname from the root of the debugfs filesystem. Generalize the existing labeling support used for proc and reuse it for debugfs too. Signed-off-by: Stephen Smalley Signed-off-by: Paul Moore security/selinux/hooks.c | 43 ++++++++++++++++++------------------- security/selinux/include/security.h | 1 + 2 files changed, 22 insertions(+), 22 deletions(-) commit 6c6d2e9bde1c1c87a7ead806f8f5e2181d41a652 Author: Stephen Smalley Date: Thu Jun 4 16:22:16 2015 -0400 selinux: update netlink socket classes Update the set of SELinux netlink socket class definitions to match the set of netlink protocols implemented by the kernel. The ip_queue implementation for the NETLINK_FIREWALL and NETLINK_IP6_FW protocols was removed in d16cf20e2f2f13411eece7f7fb72c17d141c4a84, so we can remove the corresponding class definitions as this is dead code. Add new classes for NETLINK_ISCSI, NETLINK_FIB_LOOKUP, NETLINK_CONNECTOR, NETLINK_NETFILTER, NETLINK_GENERIC, NETLINK_SCSITRANSPORT, NETLINK_RDMA, and NETLINK_CRYPTO so that we can distinguish among sockets created for each of these protocols. This change does not define the finer-grained nlsmsg_read/write permissions or map specific nlmsg_type values to those permissions in the SELinux nlmsgtab; if finer-grained control of these sockets is desired/required, that can be added as a follow-on change. We do not define a SELinux class for NETLINK_ECRYPTFS as the implementation was removed in 624ae5284516870657505103ada531c64dba2a9a. Signed-off-by: Stephen Smalley Signed-off-by: Paul Moore security/selinux/hooks.c | 20 ++++++++++++++++---- security/selinux/include/classmap.h | 22 ++++++++++++++++------ 2 files changed, 32 insertions(+), 10 deletions(-) commit 9e7c8f8c62c1e1cda203b5bfaba4575b141e42e7 Author: Oleg Nesterov Date: Thu Jun 4 16:22:16 2015 -0400 signals: don't abuse __flush_signals() in selinux_bprm_committed_creds() selinux_bprm_committed_creds()->__flush_signals() is not right, we shouldn't clear TIF_SIGPENDING unconditionally. There can be other reasons for signal_pending(): freezing(), JOBCTL_PENDING_MASK, and potentially more. Also change this code to check fatal_signal_pending() rather than SIGNAL_GROUP_EXIT, it looks a bit better. Now we can kill __flush_signals() before it finds another buggy user. Note: this code looks racy, we can flush a signal which was sent after the task SID has been updated. Signed-off-by: Oleg Nesterov Signed-off-by: Paul Moore include/linux/sched.h | 1 - kernel/signal.c | 13 ++++--------- security/selinux/hooks.c | 6 ++++-- 3 files changed, 8 insertions(+), 12 deletions(-) commit cded3fffbeab777e6ad2ec05d4a3b62c5caca0f3 Author: Marek Milkovic Date: Thu Jun 4 16:22:16 2015 -0400 selinux: Print 'sclass' as string when unrecognized netlink message occurs This prints the 'sclass' field as string instead of index in unrecognized netlink message. The textual representation makes it easier to distinguish the right class. Signed-off-by: Marek Milkovic Acked-by: Stephen Smalley [PM: 80-char width fixes] Signed-off-by: Paul Moore security/selinux/hooks.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 17bfa3f7b3cd07e92b41ce7b5bea2dd8c8e2a8c3 Author: Kevin Cernekee Date: Tue May 26 19:01:09 2015 -0300 clk: pistachio: Add sanity checks on PLL configuration When setting the PLL rates, check that: - VCO is within range - PFD is within range - PLL is disabled when postdiv is changed - postdiv2 <= postdiv1 Reviewed-by: Andrew Bresticker Signed-off-by: Kevin Cernekee Signed-off-by: Ezequiel Garcia Signed-off-by: Stephen Boyd drivers/clk/pistachio/clk-pll.c | 83 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 79 insertions(+), 4 deletions(-) commit e0b7a79524771ad368abefbbcbd73f130f8e500e Author: Ezequiel Garcia Date: Tue May 26 19:01:08 2015 -0300 clk: pistachio: Lock the PLL when enabled upon rate change Currently, when the rate is changed, the driver makes sure the PLL is enabled before doing so. This is done because the PLL cannot be locked while disabled. Once locked, the drivers returns the PLL to its previous enable/disable state. This is a bit cumbersome, and can be simplified. This commit reworks the .set_rate() functions for the integer and fractional PLLs. Upon rate change, the PLL is now locked only if it's already enabled. Also, the driver locks the PLL on .enable(). This makes sure the PLL is locked when enabled, and not locked when disabled. Signed-off-by: Andrew Bresticker Signed-off-by: Ezequiel Garcia Signed-off-by: Stephen Boyd drivers/clk/pistachio/clk-pll.c | 28 ++++++++++------------------ 1 file changed, 10 insertions(+), 18 deletions(-) commit 4f4adfbf8e655914bb80daa0252c90b62fd27d78 Author: Ezequiel Garcia Date: Tue May 26 19:01:07 2015 -0300 clk: pistachio: Add a pll_lock() helper for clarity This commit adds a pll_lock() helper making the code more readable. Cosmetic change only, no functionality changes. Signed-off-by: Andrew Bresticker Signed-off-by: Ezequiel Garcia Signed-off-by: Stephen Boyd drivers/clk/pistachio/clk-pll.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 24c65a02b23509284cce5185d81a150d699837b5 Author: Chao Xie Date: Thu Apr 30 09:53:42 2015 +0800 clk: mmp: add timer clock for pxa168/mmp2/pxa910 Timer has external fast clock, and it is a mux clock. Add the timer clock type for timer driver. Signed-off-by: Chao Xie Signed-off-by: Stephen Boyd drivers/clk/mmp/clk-of-mmp2.c | 6 ++++++ drivers/clk/mmp/clk-of-pxa168.c | 7 +++++++ drivers/clk/mmp/clk-of-pxa910.c | 11 +++++++++++ include/dt-bindings/clock/marvell,mmp2.h | 1 + include/dt-bindings/clock/marvell,pxa168.h | 2 ++ include/dt-bindings/clock/marvell,pxa910.h | 3 +++ 6 files changed, 30 insertions(+) commit 6644fddf062e1fa9bd56e74dfeaf864a14bf08cb Author: Chao Xie Date: Thu Apr 30 09:53:41 2015 +0800 clk: mmp: Fix the wrong factor table for uart PLL The suggested value in the mmp2 manual is wrong. There are only 13 bits for numerator, but some suggested value has 14 bits. Fix the factor tabled and remove the unused items. Signed-off-by: Chao Xie Signed-off-by: Stephen Boyd drivers/clk/mmp/clk-mmp2.c | 4 +--- drivers/clk/mmp/clk-of-mmp2.c | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) commit a35247c6ee7265b024d606f7503fef44e88d9d2d Author: Chao Xie Date: Thu Apr 30 09:53:40 2015 +0800 clk: mmp: add fixed clock UBS_PLL for pxa910/pxa168 USB will drive clock from USB_PLL. Signed-off-by: Chao Xie Signed-off-by: Stephen Boyd drivers/clk/mmp/clk-of-pxa168.c | 1 + drivers/clk/mmp/clk-of-pxa910.c | 1 + include/dt-bindings/clock/marvell,pxa168.h | 1 + include/dt-bindings/clock/marvell,pxa910.h | 1 + 4 files changed, 4 insertions(+) commit 94db13fe5ff144ea5afcfa3a3daf38a239090acf Author: Alexei Starovoitov Date: Thu Jun 4 08:33:48 2015 -0700 bpf: fix build due to missing tc_verd fix build error: net/core/filter.c: In function 'bpf_clone_redirect': net/core/filter.c:1429:18: error: 'struct sk_buff' has no member named 'tc_verd' if (G_TC_AT(skb2->tc_verd) & AT_INGRESS) Fixes: 3896d655f4d4 ("bpf: introduce bpf_clone_redirect() helper") Reported-by: Or Gerlitz Reported-by: Fengguang Wu Signed-off-by: Alexei Starovoitov Signed-off-by: David S. Miller net/core/filter.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit f7f31adf07d1c9e66c160e9bdd77e12531cd6996 Author: Colin Ian King Date: Thu Jun 4 17:57:03 2015 +0100 jfs: fix indentation on if statement The if statement and closing brace are indented by 1 extra space, so remove this extra spacing. Cosmetic change only. Signed-off-by: Colin Ian King Signed-off-by: Dave Kleikamp fs/jfs/inode.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5316a64ce518f850afb0fca322b85b6dff3cb59f Author: Chris Metcalf Date: Thu Jun 4 13:55:50 2015 -0400 tile: avoid a "label not used" warning in do_page_fault() There are two different ifdef cases where the label is used, but if neither is true, the label is unused and the compiler generates a warning. Refactor the code the way x86 does so that there is a do_page_fault() that just does exception handling for context tracking, and make __do_page_fault() a static inline so that various cases can just return instead of doing a jump to "done". Signed-off-by: Chris Metcalf arch/tile/mm/fault.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) commit 8eee52af27b96047894bd18649102a0d2de3c3bb Author: Trond Myklebust Date: Thu Jun 4 13:51:13 2015 -0400 NFSv4: nfs4_handle_delegation_recall_error should ignore EAGAIN EAGAIN is a valid return code from nfs4_open_recover(), and should be handled by nfs4_handle_delegation_recall_error by simply passing it through. Signed-off-by: Trond Myklebust fs/nfs/nfs4proc.c | 1 + 1 file changed, 1 insertion(+) commit 9ae4d6bf228ec7f338e8220babb87ee4fae10429 Author: Chris Metcalf Date: Thu Jun 4 13:28:16 2015 -0400 tile: vdso: use raw_read_seqcount_begin() in vdso Previously we were using read_seqcount_begin(), which works fine until lockdep is enabled in the kernel, at which point lockdep locking shows up in the vdso and userspace will take a GPV accessing a kernel-only SPR when calling gettimeofday() etc. Signed-off-by: Chris Metcalf arch/tile/kernel/vdso/vgettimeofday.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 67f72776b6674ca2b4602996bd3e235a4f38c4b4 Author: kbuild test robot Date: Fri Jun 5 01:11:27 2015 +0800 ASoC: zx: fix platform_no_drv_owner.cocci warnings sound/soc/zte/zx296702-i2s.c:428: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/zte/zx296702-i2s.c | 1 - 1 file changed, 1 deletion(-) commit 16bd395259cf3e9966d40478891e0e610da109d4 Author: Peter Ujfalusi Date: Thu Jun 4 16:04:20 2015 +0300 ASoC: tas2552: Rename mclk parameter to pll_clkin to match with the datasheet MCLK is one of the possible source for the pll_clkin frequency. Make this clear by renaming the variable. Signed-off-by: Peter Ujfalusi Signed-off-by: Mark Brown sound/soc/codecs/tas2552.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit dd6e3053405c2fe7baa36e4fe2a12083f508abfc Author: Peter Ujfalusi Date: Thu Jun 4 16:04:19 2015 +0300 ASoC: tas2552: Simplify and reverse the functionality of tas2552_sw_shutdown The function name and parameters of: tas2552_sw_shutdown(struct tas2552_data *tas_data, int sw_shutdown) implies that if sw_shutdown is 1 we should be entering to the software shutdown mode. The code can be simplified as well within the function. Signed-off-by: Peter Ujfalusi Signed-off-by: Mark Brown sound/soc/codecs/tas2552.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit e3606aa496c98595cb206ac8fed9bc8152ffe34e Author: Peter Ujfalusi Date: Thu Jun 4 16:04:18 2015 +0300 ASoC: tas2552: Simplify the tas2552_mute function Initialize the cfg1_reg to 0 and set the mute bit only when it is needed. Signed-off-by: Peter Ujfalusi Signed-off-by: Mark Brown sound/soc/codecs/tas2552.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 7de544fd3275a136b311bfce9fe4406a1518d488 Author: Peter Ujfalusi Date: Thu Jun 4 16:04:17 2015 +0300 ASoC: tas2552: Correct CFG1 register bit definitions Remove the _MASK postfix of the bit definitions, collect the CFG1 bit definition in one place and correct the bit shifts at the same time. Signed-off-by: Peter Ujfalusi Signed-off-by: Mark Brown sound/soc/codecs/tas2552.c | 14 +++++++------- sound/soc/codecs/tas2552.h | 17 ++++++++--------- 2 files changed, 15 insertions(+), 16 deletions(-) commit 89683fdefdd74828145b9d18333761cc975143f8 Author: Peter Ujfalusi Date: Thu Jun 4 16:04:16 2015 +0300 ASoC: tas2552: Correct PDM configuration register bit definitions The PDM clock can be selected via bit0-1. PDM_DATA_ES bit is at bit2. The code were trying to select BCLK as PDM reference clock but instead it was selecting PLL and set the DATA_ES bit to 1. Selecting the PLL output as reference clock as default does make sense, but the driver should not change the PDM data edge. Signed-off-by: Peter Ujfalusi Signed-off-by: Mark Brown sound/soc/codecs/tas2552.c | 2 +- sound/soc/codecs/tas2552.h | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) commit 1cf0f44811b754b64283b11ef0e60cb0de07b29c Author: Peter Ujfalusi Date: Thu Jun 4 16:04:15 2015 +0300 ASoC: tas2552: Fix kernel crash caused by wrong kcontrol entry SOC_DAPM_SINGLE("Playback AMP", ..) should not be under kcontrols. It causes kernel crash (NULL pointer) when the mixers are listed. Signed-off-by: Peter Ujfalusi Signed-off-by: Mark Brown Cc: stable@vger.kernel.org sound/soc/codecs/tas2552.c | 1 - 1 file changed, 1 deletion(-) commit 80ba2669ec8c3e6517aa935001f6cb8809bf3df4 Author: Peter Ujfalusi Date: Thu Jun 4 16:04:14 2015 +0300 ASoC: tas2552: Fix kernel crash when the codec is loaded but not part of a card If the card is not part of any card the tas_data->codec is NULL since it is set only during snd_soc_codec_driver.probe, which is not yet called. Signed-off-by: Peter Ujfalusi Signed-off-by: Mark Brown Cc: stable@vger.kernel.org sound/soc/codecs/tas2552.c | 3 +++ 1 file changed, 3 insertions(+) commit ea178d1456dcf88875d5edd148f2df8ea0de1794 Author: Peter Ujfalusi Date: Thu Jun 4 16:04:13 2015 +0300 ASoC: tas2552: Make the enable-gpio really optional Do not fail the probe if the enable-gpio is not specifiedbut handle deferred probe case. Signed-off-by: Peter Ujfalusi Signed-off-by: Mark Brown sound/soc/codecs/tas2552.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 69ccc50231eca9a57dc06a5514103c0f17ef402e Author: Mark Brown Date: Thu Jun 4 17:11:18 2015 +0100 ASoC: zte: Fix missing dev in devm operation Signed-off-by: Mark Brown sound/soc/zte/zx296702-spdif.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c8d8ff0a9da689d9649ce7b052190abb1e49a930 Author: kbuild test robot Date: Thu Jun 4 23:57:20 2015 +0800 ASoC: zx: fix simple_return.cocci warnings sound/soc/zte/zx296702-spdif.c:191:1-4: WARNING: end returns can be simpified Simplify a trivial if-return sequence. Possibly combine with a preceding function call. Generated by: scripts/coccinelle/misc/simple_return.cocci Signed-off-by: Fengguang Wu Signed-off-by: Mark Brown sound/soc/zte/zx296702-spdif.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit 3898182b500fca6dbc2fa2fc1c16397dba1938c8 Author: kbuild test robot Date: Thu Jun 4 23:57:20 2015 +0800 ASoC: zx: fix platform_no_drv_owner.cocci warnings sound/soc/zte/zx296702-spdif.c:361: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/zte/zx296702-spdif.c | 1 - 1 file changed, 1 deletion(-) commit 8c6cf9cc829fcd0b179b59f7fe288941d0e31108 Author: Eric W. Biederman Date: Fri May 8 23:49:47 2015 -0500 mnt: Modify fs_fully_visible to deal with locked ro nodev and atime Ignore an existing mount if the locked readonly, nodev or atime attributes are less permissive than the desired attributes of the new mount. On success ensure the new mount locks all of the same readonly, nodev and atime attributes as the old mount. The nosuid and noexec attributes are not checked here as this change is destined for stable and enforcing those attributes causes a regression in lxc and libvirt-lxc where those applications will not start and there are no known executables on sysfs or proc and no known way to create exectuables without code modifications Cc: stable@vger.kernel.org Fixes: e51db73532955 ("userns: Better restrictions on when proc and sysfs can be mounted") Signed-off-by: "Eric W. Biederman" fs/namespace.c | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) commit cc76e7def0fa27b5f42aea54e34c96b4bddaf30a Author: Liam Girdwood Date: Thu Jun 4 15:13:09 2015 +0100 ASoC: dapm: fix build errors for missing snd_soc_dapm_new_control symbol Fix the following error:- All error/warnings (new ones prefixed by >>): > > sound/built-in.o: In function `soc_tplg_dapm_widget_create': > >> :(.text+0x25a90): undefined reference to `snd_soc_dapm_new_control' Signed-off-by: Liam Girdwood Signed-off-by: Mark Brown sound/soc/soc-dapm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit fa75a727c01963088299a7fa691e71ed90018a7d Author: Geert Uytterhoeven Date: Tue May 26 13:39:54 2015 +0200 kconfig: Wrap long "make help" text lines Some "make help" text lines extend beyond 80 characters. Wrap them at 79 characters. Signed-off-by: Geert Uytterhoeven Signed-off-by: Michal Marek scripts/kconfig/Makefile | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 3c10c280a003f686613ea24ba8bcf56dc817ec80 Author: kbuild test robot Date: Thu Jun 4 21:00:50 2015 +0800 ASoC: zx: zx_i2s_dai can be static Signed-off-by: Fengguang Wu Signed-off-by: Mark Brown sound/soc/zte/zx296702-i2s.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 660a5d517aaab9187f93854425c4c63f4a09195c Author: Paolo Bonzini Date: Tue May 5 11:50:23 2015 +0200 KVM: x86: save/load state on SMM switch The big ugly one. This patch adds support for switching in and out of system management mode, respectively upon receiving KVM_REQ_SMI and upon executing a RSM instruction. Both 32- and 64-bit formats are supported for the SMM state save area. Reviewed-by: Radim Krčmář Signed-off-by: Paolo Bonzini arch/x86/kvm/cpuid.h | 8 ++ arch/x86/kvm/emulate.c | 248 ++++++++++++++++++++++++++++++++++++++++++++++++- arch/x86/kvm/trace.h | 22 +++++ arch/x86/kvm/x86.c | 222 ++++++++++++++++++++++++++++++++++++++++++- 4 files changed, 498 insertions(+), 2 deletions(-) commit cd7764fe9f73530b20a0f2310fa753af635fabb3 Author: Paolo Bonzini Date: Thu Jun 4 10:41:21 2015 +0200 KVM: x86: latch INITs while in system management mode Do not process INITs immediately while in system management mode, keep it instead in apic->pending_events. Tell userspace if an INIT is pending when they issue GET_VCPU_EVENTS, and similarly handle the new field in SET_VCPU_EVENTS. Note that the same treatment should be done while in VMX non-root mode. Reviewed-by: Radim Krčmář Signed-off-by: Paolo Bonzini arch/x86/kvm/lapic.c | 13 ++++++++++++- arch/x86/kvm/x86.c | 3 +++ 2 files changed, 15 insertions(+), 1 deletion(-) commit 64d6067057d9658acb8675afcfba549abdb7fc16 Author: Paolo Bonzini Date: Thu May 7 11:36:11 2015 +0200 KVM: x86: stubs for SMM support This patch adds the interface between x86.c and the emulator: the SMBASE register, a new emulator flag, the RSM instruction. It also adds a new request bit that will be used by the KVM_SMI ioctl. Reviewed-by: Radim Krčmář Signed-off-by: Paolo Bonzini arch/x86/include/asm/kvm_emulate.h | 4 +++ arch/x86/include/asm/kvm_host.h | 1 + arch/x86/kvm/emulate.c | 10 +++++- arch/x86/kvm/lapic.c | 4 ++- arch/x86/kvm/svm.c | 1 + arch/x86/kvm/x86.c | 64 ++++++++++++++++++++++++++++++++++++-- include/linux/kvm_host.h | 1 + 7 files changed, 81 insertions(+), 4 deletions(-) commit f077825a8758d79838a757dafb79adcdd047ef3a Author: Paolo Bonzini Date: Wed Apr 1 15:06:40 2015 +0200 KVM: x86: API changes for SMM support This patch includes changes to the external API for SMM support. Userspace can predicate the availability of the new fields and ioctls on a new capability, KVM_CAP_X86_SMM, which is added at the end of the patch series. Reviewed-by: Radim Krčmář Signed-off-by: Paolo Bonzini Documentation/virtual/kvm/api.txt | 40 +++++++++++++++++++++++++++++++++------ arch/x86/include/asm/kvm_host.h | 3 +++ arch/x86/include/uapi/asm/kvm.h | 11 ++++++++++- arch/x86/kvm/kvm_cache_regs.h | 5 +++++ arch/x86/kvm/lapic.h | 5 +++++ arch/x86/kvm/x86.c | 40 +++++++++++++++++++++++++++++++++++++-- include/uapi/linux/kvm.h | 5 ++++- 7 files changed, 99 insertions(+), 10 deletions(-) commit a584539b24b87dc8be83a713006396cabec47833 Author: Paolo Bonzini Date: Wed Apr 1 18:18:53 2015 +0200 KVM: x86: pass the whole hflags field to emulator and back The hflags field will contain information about system management mode and will be useful for the emulator. Pass the entire field rather than just the guest-mode information. Reviewed-by: Radim Krčmář Signed-off-by: Paolo Bonzini arch/x86/include/asm/kvm_emulate.h | 5 ++++- arch/x86/kvm/emulate.c | 6 +++--- arch/x86/kvm/x86.c | 10 +++++++++- 3 files changed, 16 insertions(+), 5 deletions(-) commit 609e36d372ad9329269e4a1467bd35311893d1d6 Author: Paolo Bonzini Date: Wed Apr 8 15:30:38 2015 +0200 KVM: x86: pass host_initiated to functions that read MSRs SMBASE is only readable from SMM for the VCPU, but it must be always accessible if userspace is accessing it. Thus, all functions that read MSRs are changed to accept a struct msr_data; the host_initiated and index fields are pre-initialized, while the data field is filled on return. Reviewed-by: Radim Krčmář Signed-off-by: Paolo Bonzini arch/x86/include/asm/kvm_host.h | 6 +-- arch/x86/kvm/svm.c | 54 ++++++++++---------- arch/x86/kvm/vmx.c | 62 ++++++++++++----------- arch/x86/kvm/x86.c | 106 ++++++++++++++++++++++++---------------- 4 files changed, 127 insertions(+), 101 deletions(-) commit 62ef68bb4d00f1a662e487f3fc44ce8521c416aa Author: Paolo Bonzini Date: Tue May 5 12:08:55 2015 +0200 KVM: x86: introduce num_emulated_msrs We will want to filter away MSR_IA32_SMBASE from the emulated_msrs if the host CPU does not support SMM virtualization. Introduce the logic to do that, and also move paravirt MSRs to emulated_msrs for simplicity and to get rid of KVM_SAVE_MSRS_BEGIN. Reviewed-by: Radim Krčmář Signed-off-by: Paolo Bonzini arch/x86/kvm/x86.c | 40 +++++++++++++++++++++++++++------------- 1 file changed, 27 insertions(+), 13 deletions(-) commit 18725226af7a6a0eac8a5bc42a6c9c90af1fb0e7 Author: Anton Blanchard Date: Wed May 13 15:13:18 2015 +1000 powerpc/config: Enable bnx2x on ppc64 and pseries defconfigs Signed-off-by: Anton Blanchard Signed-off-by: Michael Ellerman arch/powerpc/configs/ppc64_defconfig | 1 + arch/powerpc/configs/pseries_defconfig | 1 + 2 files changed, 2 insertions(+) commit 14aae78f084af5241476ede8e28b377fc751b191 Author: Cédric Le Goater Date: Wed Apr 8 09:31:10 2015 +0200 powerpc/powernv: convert OPAL codes returned by sysparam calls The opal_{get,set}_param calls return internal error codes which need to be translated in errnos in Linux. Signed-off-by: Cédric Le Goater Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/opal-sysparam.c | 12 ++++++++---- arch/powerpc/platforms/powernv/opal.c | 1 + 2 files changed, 9 insertions(+), 4 deletions(-) commit dc772a4cf76113d7269e4fb1c45e5d85c0cf458e Author: Jun Nie Date: Thu Jun 4 11:41:21 2015 +0800 dt: Add documentation for the ZTE I2S controller This patch adds the devicetree documentation for the ZTE zx296702 I2S audio controller. Signed-off-by: Jun Nie Signed-off-by: Mark Brown .../devicetree/bindings/sound/zte,zx-i2s.txt | 44 ++++++++++++++++++++++ 1 file changed, 44 insertions(+) commit 0637e965ba20da9cb29cade3a7026db307473f05 Author: Jun Nie Date: Thu Jun 4 11:41:20 2015 +0800 dt: Add documentation for the ZTE SPDIF controller This patch adds the devicetree documentation for the ZTE zx296702 SPDIF audio controller. Signed-off-by: Jun Nie Signed-off-by: Mark Brown .../devicetree/bindings/sound/zte,zx-spdif.txt | 28 ++++++++++++++++++++++ 1 file changed, 28 insertions(+) commit e5d4cd87800ce12c356e7eb571e565e839ab3a90 Author: Jun Nie Date: Thu Jun 4 11:41:23 2015 +0800 ASoC: zx: Add ZTE zx296702 I2S DAI driver Add ZTE zx296702 I2S interface DAI driver Signed-off-by: Jun Nie Signed-off-by: Mark Brown sound/soc/zte/Kconfig | 9 + sound/soc/zte/Makefile | 1 + sound/soc/zte/zx296702-i2s.c | 437 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 447 insertions(+) commit 6fc3d24d4277f40d7cdf13d39c76cdee6d5dfa7d Author: Jun Nie Date: Thu Jun 4 11:41:22 2015 +0800 ASoC: zx: Add zx296702 SPDIF support Add driver for zx296702 SPDIF controller Signed-off-by: Jun Nie Signed-off-by: Mark Brown sound/soc/Kconfig | 1 + sound/soc/Makefile | 1 + sound/soc/zte/Kconfig | 8 + sound/soc/zte/Makefile | 1 + sound/soc/zte/zx296702-spdif.c | 370 +++++++++++++++++++++++++++++++++++++++++ 5 files changed, 381 insertions(+) commit 133be0264f28e59d772c6a259349ba3ee2b183b3 Author: Varka Bhadram Date: Thu Jun 4 13:07:36 2015 +0530 nl802154: export supported commands This patch will export the supported commands by the devices to the userspace. This will be useful to check if HardMAC drivers can support a specific command or not. Signed-off-by: Varka Bhadram Acked-by: Alexander Aring Signed-off-by: Marcel Holtmann include/net/nl802154.h | 2 ++ net/ieee802154/nl802154.c | 40 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) commit 8a70cefa3037d62e7c0b6068a66675def1a330c9 Author: Lennert Buytenhek Date: Wed Jun 3 10:50:19 2015 +0300 ieee802154: Fix sockaddr_ieee802154 implicit padding information leak. The AF_IEEE802154 sockaddr looks like this: struct sockaddr_ieee802154 { sa_family_t family; /* AF_IEEE802154 */ struct ieee802154_addr_sa addr; }; struct ieee802154_addr_sa { int addr_type; u16 pan_id; union { u8 hwaddr[IEEE802154_ADDR_LEN]; u16 short_addr; }; }; On most architectures there will be implicit structure padding here, in two different places: * In struct sockaddr_ieee802154, two bytes of padding between 'family' (unsigned short) and 'addr', so that 'addr' starts on a four byte boundary. * In struct ieee802154_addr_sa, two bytes at the end of the structure, to make the structure 16 bytes. When calling recvmsg(2) on a PF_IEEE802154 SOCK_DGRAM socket, the ieee802154 stack constructs a struct sockaddr_ieee802154 on the kernel stack without clearing these padding fields, and, depending on the addr_type, between four and ten bytes of uncleared kernel stack will be copied to userspace. We can't just insert two 'u16 __pad's in the right places and zero those before copying an address to userspace, as not all architectures insert this implicit padding -- from a quick test it seems that avr32, cris and m68k don't insert this padding, while every other architecture that I have cross compilers for does insert this padding. The easiest way to plug the leak is to just memset the whole struct sockaddr_ieee802154 before filling in the fields we want to fill in, and that's what this patch does. Cc: stable@vger.kernel.org Signed-off-by: Lennert Buytenhek Acked-by: Alexander Aring Signed-off-by: Marcel Holtmann net/ieee802154/socket.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 07bd77fa4c0f1bd21fad0f9fa12ad4e453d3fad8 Author: Varka Bhadram Date: Wed Jun 3 09:21:47 2015 +0530 cfg802154: fix rdev-ops naming convension and format specifiers This patch make to use the same naming convention that mac802154 tracing follows and fixes the format specifier for extended addr. Signed-off-by: Varka Bhadram Acked-by: Alexander Aring Signed-off-by: Marcel Holtmann net/ieee802154/trace.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit ea25525ce0d195724fead07fe6562fe478a3bf6f Author: Ludovic Desroches Date: Thu May 28 11:55:16 2015 +0200 ARM: at91/dt: sama5d4ek: mci0 uses slot 0 Mci0 uses slot 0 not 1. Signed-off-by: Ludovic Desroches Fixes: 7a4752677c44 ("ARM: at91: dt: add device tree file for SAMA5D4ek board") Cc: stable@vger.kernel.org Signed-off-by: Nicolas Ferre arch/arm/boot/dts/at91-sama5d4ek.dts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 87835a4baf41c41d599d4d60987f2dc0f291e611 Author: Gaël PORTAY Date: Wed Jun 3 11:44:23 2015 +0200 ARM: at91/dt: kizbox: fix mismatch LED PWM device The network_red LED uses the 4th PWM device. Signed-off-by: Gaël PORTAY Signed-off-by: Nicolas Ferre arch/arm/boot/dts/at91-kizbox.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a02d46dd60eb92e4b00f434700efad4e87d96e2e Author: Alexandre Belloni Date: Wed Jun 3 14:24:18 2015 +0200 ARM: at91/dt: Add Acme Arietta G25 Add a minimum Device Tree for Acme Arietta G25. http://acme.systems/arietta Signed-off-by: Alexandre Belloni Acked-by: Sergio Tanzilli Signed-off-by: Nicolas Ferre arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/at91-ariettag25.dts | 79 +++++++++++++++++++++++++++++++++++ 2 files changed, 80 insertions(+) commit e2bfba418598951733aff5822ca617efdbc06715 Author: Rojhalat Ibrahim Date: Tue Jun 2 11:38:06 2015 +0200 fix documentation after renaming gpiod_set_array to gpiod_set_array_value Patch "gpiolib: rename gpiod_set_array to gpiod_set_array_value" omitted to also change the function names in the documentation. Let's fix that. Signed-off-by: Rojhalat Ibrahim Signed-off-by: Linus Walleij Documentation/gpio/consumer.txt | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) commit e69fab5df45f993cb3b8cc0625a7791e86450a99 Author: Paolo Bonzini Date: Thu Jun 4 10:44:44 2015 +0200 KVM: x86: clear hidden CPU state at reset time This was noticed by Radim while reviewing the implementation of system management mode. Signed-off-by: Paolo Bonzini arch/x86/kvm/x86.c | 2 ++ 1 file changed, 2 insertions(+) commit 932ae8809469770a07ce19d6967d2ce303befa08 Author: Liam Girdwood Date: Fri May 29 19:06:15 2015 +0100 ALSA: topology: Export ID types for TLV controls. Make sure userspace can define TLV controls for topology using the correct type numbers and channel mappings. Signed-off-by: Liam Girdwood Acked-by: Takashi Iwai Signed-off-by: Mark Brown include/sound/tlv.h | 15 +-------------- include/uapi/sound/tlv.h | 31 +++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 14 deletions(-) commit 8a9782346dccd82cf912552735bda619de4efd8c Author: Liam Girdwood Date: Fri May 29 19:06:14 2015 +0100 ASoC: topology: Add topology core The topology core parses the FW topology file for known block types and instanciates any common ALSA/ASoC objects that it discovers. The core also passes any block that is does not understand to client component drivers for enumeration. The core exports some APIs to client drivers in order to load and unload firmware topology data as use case require. Currently the core deals with the following object types :- o kcontrols. This includes TLV, enumerated and bytes controls. o DAPM widgets. All types with any associated kcontrol. o DAPM graph. o FE PCM. FE PCM capabilities and configuration can be defined. o BE DAI Link. BE DAI link capabilities and configuration can be defined. o Codec <-> codec style links capabilities and configuration. Signed-off-by: Liam Girdwood Signed-off-by: Mark Brown include/sound/soc-dapm.h | 2 + include/sound/soc-topology.h | 168 ++++ include/sound/soc.h | 11 + sound/soc/Makefile | 1 + sound/soc/soc-core.c | 4 + sound/soc/soc-topology.c | 1826 ++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 2012 insertions(+) commit 7164873e7c69d6bab74726debc3b495a86332b1f Author: Vishnu Patekar Date: Tue Jun 2 11:08:40 2015 +0200 pinctrl: sunxi: Add allwinner A33 PIO controller support A33 PIO has 7 ports which starts from PB and has two interrupt ports. Signed-off-by: Vishnu Patekar Acked-by: Hans de Goede Acked-by: Maxime Ripard Signed-off-by: Hans de Goede Signed-off-by: Linus Walleij .../bindings/pinctrl/allwinner,sunxi-pinctrl.txt | 2 + drivers/pinctrl/sunxi/Kconfig | 4 + drivers/pinctrl/sunxi/Makefile | 1 + drivers/pinctrl/sunxi/pinctrl-sun8i-a33.c | 513 +++++++++++++++++++++ 4 files changed, 520 insertions(+) commit ce40cd3fc7fa40a6119e5fe6c0f2bc0eb4541009 Author: Paolo Bonzini Date: Sat May 30 14:31:24 2015 +0200 kvm: x86: fix kvm_apic_has_events to check for NULL pointer Malicious (or egregiously buggy) userspace can trigger it, but it should never happen in normal operation. Signed-off-by: Paolo Bonzini arch/x86/kvm/lapic.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 44a074ffe038a4953d8ff4091599ce997867820c Author: Fabio Estevam Date: Mon Jun 1 09:57:04 2015 -0300 pinctrl: samsung: Fix the pointer in PTR_ERR() 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 Signed-off-by: Linus Walleij drivers/pinctrl/samsung/pinctrl-samsung.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3944e7b78c7b1bfed7808692cc539496b3f94eea Author: Fabio Estevam Date: Mon Jun 1 09:53:59 2015 -0300 pinctrl: Remove .owner field platform_driver does not need to set the owner field, as it will be populated by the driver core, so just remove it. 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-imx7d.c | 1 - drivers/pinctrl/mediatek/pinctrl-mt6397.c | 1 - drivers/pinctrl/mediatek/pinctrl-mt8127.c | 1 - drivers/pinctrl/mediatek/pinctrl-mt8135.c | 1 - drivers/pinctrl/pinctrl-amd.c | 1 - drivers/pinctrl/sirf/pinctrl-atlas7.c | 2 -- drivers/pinctrl/sunxi/pinctrl-sun6i-a31s.c | 1 - 7 files changed, 8 deletions(-) commit c39c4c6abb89d24454b63798ccbae12b538206a5 Author: Wei Liu Date: Wed Jun 3 11:10:42 2015 +0100 tcp: double default TSQ output bytes limit Xen virtual network driver has higher latency than a physical NIC. Having only 128K as limit for TSQ introduced 30% regression in guest throughput. This patch raises the limit to 256K. This reduces the regression to 8%. This buys us more time to work out a proper solution in the long run. Signed-off-by: Wei Liu Cc: David Miller Cc: Eric Dumazet Acked-by: Eric Dumazet Signed-off-by: David S. Miller net/ipv4/tcp_output.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 12e25e1041d044d4204f2b7c54695e14e8ffb282 Author: Eric Dumazet Date: Wed Jun 3 23:49:21 2015 -0700 tcp: remove redundant checks tcp_v4_rcv() checks the following before calling tcp_v4_do_rcv(): if (th->doff < sizeof(struct tcphdr) / 4) goto bad_packet; if (!pskb_may_pull(skb, th->doff * 4)) goto discard_it; So following check in tcp_v4_do_rcv() is redundant and "goto csum_err;" is wrong anyway. if (skb->len < tcp_hdrlen(skb) || ...) goto csum_err; A second check can be removed after no_tcp_socket label for same reason. Same tests can be removed in tcp_v6_do_rcv() Note : short tcp frames are not properly accounted in tcpInErrs MIB, because pskb_may_pull() failure simply drops incoming skb, we might fix this in a separate patch. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller net/ipv4/tcp_ipv4.c | 4 ++-- net/ipv6/tcp_ipv6.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit 83dc9fecd5d4c84e9405c91098ae9dc07c201b90 Author: Jisheng Zhang Date: Tue Jun 2 18:38:35 2015 +0800 mmc: sdhci-pxav3: fix device wakeup initialization MMC_PM_KEEP_POWER doesn't imply MMC_PM_WAKE_SDIO_IRQ, we should only enable device wake up when MMC_PM_WAKE_SDIO_IRQ is set. And "pm_flags" is the requested pm features, we should not set it in the host driver. At the same time, device wakeup is disabled by default, so there's no need to disable device wakeup explicitly. This patch fixes the warning as following: [ 64.616651] ------------[ cut here ]------------ [ 64.616665] WARNING: CPU: 0 PID: 79 at linux/kernel/irq/manage.c:603 irq_set_irq_wake+0xf0/0x11c() [ 64.616667] Unbalanced IRQ 87 wake disable Signed-off-by: Jisheng Zhang Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-pxav3.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit 1ef48e3ded7d25a6c382c4c74f44474e76038275 Author: Ulf Hansson Date: Mon Jun 1 12:18:25 2015 +0200 mmc: core: Attach PM domain prior probing of SDIO func driver Other subsystem buses attach PM domains during probe, but prior calling the driver's ->probe() method. During the removal phase, detaching the PM domain will be done after invoking the driver's ->remove() callback. Convert the SDIO bus to follow this behavior and add error handling. Signed-off-by: Ulf Hansson drivers/mmc/core/sdio_bus.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 3056c49c35c1e8cc303e79c7085579ff0729a83b Author: Ulf Hansson Date: Mon Jun 1 11:14:58 2015 +0200 mmc: core: Remove redundant ->power_restore() callback for SD Since the ->reset() callback is implemented for SD, the ->power_restore() callback has become redundant, let's remove it. Signed-off-by: Ulf Hansson drivers/mmc/core/sd.c | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) commit 364549ddc29dd5490e81039cb85fbf0123365754 Author: Ulf Hansson Date: Mon Jun 1 11:14:57 2015 +0200 mmc: core: Remove redundant ->power_restore() callback for MMC Since the ->reset() callback is implemented for MMC, the ->power_restore() callback has become redundant, let's remove it. Signed-off-by: Ulf Hansson drivers/mmc/core/mmc.c | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) commit e1e6c32248d514278c95d67100eabcab81aaa1ce Author: Alexandre Belloni Date: Wed Jun 3 14:24:17 2015 +0200 ARM: at91/dt: sama5d4 xplained: use stdout-path Use stdout-path to specify the console and remove the console argument from the kernel command line. Signed-off-by: Alexandre Belloni Signed-off-by: Nicolas Ferre arch/arm/boot/dts/at91-sama5d4_xplained.dts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 9e73126e08b98ad965e979a83445e2d6baed2a19 Author: Alexandre Belloni Date: Wed Jun 3 14:24:16 2015 +0200 ARM: at91/dt: sama5d4ek: use stdout-path Use stdout-path to specify the console and remove the console argument from the kernel command line. Signed-off-by: Alexandre Belloni Signed-off-by: Nicolas Ferre arch/arm/boot/dts/at91-sama5d4ek.dts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit a08545db5423dbf6da8d066b120b17497fd034a2 Author: Alexandre Belloni Date: Wed Jun 3 14:24:15 2015 +0200 ARM: at91/dt: sama5d3 xplained: use stdout-path Use stdout-path to specify the console and remove the bootargs. Signed-off-by: Alexandre Belloni Signed-off-by: Nicolas Ferre arch/arm/boot/dts/at91-sama5d3_xplained.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 980853a856055f52580f5d44a97ec8c70659fa61 Author: Alexandre Belloni Date: Wed Jun 3 14:24:14 2015 +0200 ARM: at91/dt: sama5d3xek: use stdout-path Use stdout-path to specify the console and remove the console argument from the kernel command line. Signed-off-by: Alexandre Belloni Signed-off-by: Nicolas Ferre arch/arm/boot/dts/sama5d3xcm.dtsi | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 5bb27f091ed98c26c4a850ddee2142c633f2f2aa Author: Alexandre Belloni Date: Wed Jun 3 14:24:13 2015 +0200 ARM: at91/dt: at91sam9x5ek: use stdout-path Use stdout-path to specify the console and remove the console argument from the kernel command line. Signed-off-by: Alexandre Belloni Signed-off-by: Nicolas Ferre arch/arm/boot/dts/at91sam9x5ek.dtsi | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 956275739edb2745e778e8684faa4b419aba05e5 Author: Alexandre Belloni Date: Wed Jun 3 14:24:12 2015 +0200 ARM: at91/dt: at91sam9rlek: use stdout-path Use stdout-path to specify the console and remove the console argument from the kernel command line. Signed-off-by: Alexandre Belloni Signed-off-by: Nicolas Ferre arch/arm/boot/dts/at91sam9rlek.dts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 7cb5852d9ca8201dbf7cefdc54f0c813c423abff Author: Alexandre Belloni Date: Wed Jun 3 14:24:11 2015 +0200 ARM: at91/dt: at91sam9n12ek: use stdout-path Use stdout-path to specify the console and remove the console argument from the kernel command line. Signed-off-by: Alexandre Belloni Signed-off-by: Nicolas Ferre arch/arm/boot/dts/at91sam9n12ek.dts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit aa070464ba457c6a2a935b79b14a2d63ca742b77 Author: Alexandre Belloni Date: Wed Jun 3 14:24:10 2015 +0200 ARM: at91/dt: at91sam9m10g45ek use stdout-path Use stdout-path to specify the console and remove the console argument from the kernel command line. Signed-off-by: Alexandre Belloni Signed-off-by: Nicolas Ferre arch/arm/boot/dts/at91sam9m10g45ek.dts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 55f1ec71433fa075d34fbeee32340cc0dc6a0a1f Author: Alexandre Belloni Date: Wed Jun 3 14:24:09 2015 +0200 ARM: at91/dt: at91sam9g20ek: use stdout-path Use stdout-path to specify the console and remove the console argument from the kernel command line. Signed-off-by: Alexandre Belloni Signed-off-by: Nicolas Ferre arch/arm/boot/dts/at91sam9g20ek_common.dtsi | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 11cfbde407c184ea62e3ce4355d55aa921a17e28 Author: Alexandre Belloni Date: Wed Jun 3 14:24:08 2015 +0200 ARM: at91/dt: at91sam9263ek: use stdout-path Use stdout-path to specify the console and remove the console argument from the kernel command line. Signed-off-by: Alexandre Belloni Signed-off-by: Nicolas Ferre arch/arm/boot/dts/at91sam9263ek.dts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit a5a51ddc3dc83ad826515ccfdd0d893ab4fca9fa Author: Alexandre Belloni Date: Wed Jun 3 14:24:07 2015 +0200 ARM: at91/dt: at91sam9261ek: use stdout-path Use stdout-path to specify the console and remove the console argument from the kernel command line. Signed-off-by: Alexandre Belloni Signed-off-by: Nicolas Ferre arch/arm/boot/dts/at91sam9261ek.dts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 927ccfe3299685e451fb69fea4b17dd75f3ea1f3 Author: Alexandre Belloni Date: Wed Jun 3 14:24:06 2015 +0200 ARM: at91/dt: at91rm9200ek: use stdout-path Use stdout-path to specify the console. Signed-off-by: Alexandre Belloni Signed-off-by: Nicolas Ferre arch/arm/boot/dts/at91rm9200ek.dts | 4 ++++ 1 file changed, 4 insertions(+) commit 7e5883b5b4a70ea3c12e2ba1c09082bc61ad0242 Author: Alexandre Belloni Date: Wed Jun 3 14:24:05 2015 +0200 ARM: at91/dt: kizbox: use stdout-path The kizbox dts are using the deprecated linux,stdout-path. Replace those by stdout-path. Signed-off-by: Alexandre Belloni Acked-by: Gaël PORTAY Signed-off-by: Nicolas Ferre arch/arm/boot/dts/at91-kizbox.dts | 2 +- arch/arm/boot/dts/at91-kizbox2.dts | 2 +- arch/arm/boot/dts/at91-kizboxmini.dts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit ee3b67ccd25199a8db492f27d25d01518b3103a9 Author: Alexandre Belloni Date: Wed Jun 3 14:24:04 2015 +0200 ARM: at91/dt: at91sam9rlek: add RTC Add RTC support to the at91sam9rlek. Signed-off-by: Alexandre Belloni Signed-off-by: Nicolas Ferre arch/arm/boot/dts/at91sam9rlek.dts | 4 ++++ 1 file changed, 4 insertions(+) commit e24bf9c6ca0223752dc3da459c35f0723c4199d9 Author: Alexandre Belloni Date: Wed Jun 3 14:24:03 2015 +0200 ARM: at91/dt: at91sam9rl: fix rtc node The RTC lives at 0xfffffe00. Also reorder the node properly. Signed-off-by: Alexandre Belloni Signed-off-by: Nicolas Ferre arch/arm/boot/dts/at91sam9rl.dtsi | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) commit e194bbdf362ba7d53cfd23ba24f1a7c90ef69a74 Author: Paolo Bonzini Date: Thu Jun 4 09:51:50 2015 +0200 kvm: x86: default legacy PCI device assignment support to "n" VFIO has proved itself a much better option than KVM's built-in device assignment. It is mature, provides better isolation because it enforces ACS, and even the userspace code is being tested on a wider variety of hardware these days than the legacy support. Disable legacy device assignment by default. Signed-off-by: Paolo Bonzini arch/x86/kvm/Kconfig | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 12f7c14aa602f15ad60e5a9da459271f63b92917 Author: Masanari Iida Date: Thu Jun 4 00:01:21 2015 +0900 crypto: doc - Fix typo in crypto-API.xml This patch fix some typos found in crypto-API.xml. It is because the file is generated from comments in sources, so I had to fix typo in sources. Signed-off-by: Masanari Iida Acked-by: Stephan Mueller Signed-off-by: Herbert Xu include/crypto/aead.h | 2 +- include/crypto/hash.h | 2 +- include/crypto/rng.h | 2 +- include/linux/crypto.h | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) commit 6b212f0f09fa9abdaa62f560b70e64d8f20cd4af Author: Masanari Iida Date: Thu Jun 4 00:01:20 2015 +0900 crypto: doc - Fix typo in crypto-API.tmpl This patch fix some spelling typo found in crypto-API.tmpl Signed-off-by: Masanari Iida Acked-by: Stephan Mueller Signed-off-by: Herbert Xu Documentation/DocBook/crypto-API.tmpl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a5b151d11cdf8b88ccace32fa0bd23962cbca20a Author: Herbert Xu Date: Wed Jun 3 14:49:32 2015 +0800 crypto: rng - Remove krng This patch removes krng so that DRBG can take its place. Signed-off-by: Herbert Xu crypto/Makefile | 1 - crypto/krng.c | 61 --------------------------------------------------------- 2 files changed, 62 deletions(-) commit 401e4238f35c7a21d32bc27370d4d045f7019c20 Author: Herbert Xu Date: Wed Jun 3 14:49:31 2015 +0800 crypto: rng - Make DRBG the default RNG This patch creates a new invisible Kconfig option CRYPTO_RNG_DEFAULT that simply selects the DRBG. This new option is then selected by the IV generators. Signed-off-by: Herbert Xu crypto/Kconfig | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) commit 3491244c62988176cb8029c67aba0cfdf5d7793c Author: Herbert Xu Date: Wed Jun 3 14:49:29 2015 +0800 crypto: echainiv - Set Kconfig default to m As this is required by many IPsec algorithms, let's set the default to m. Signed-off-by: Herbert Xu crypto/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 51ee14227411c713c428f5ff6a70fae8b2b33daa Author: Herbert Xu Date: Wed Jun 3 14:49:28 2015 +0800 crypto: drbg - Add stdrng alias and increase priority This patch adds the stdrng module alias and increases the priority to ensure that it is loaded in preference to other RNGs. Signed-off-by: Herbert Xu crypto/drbg.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit b7dcfab4a7cdc3103c7560cd2386036266b2740e Author: Herbert Xu Date: Wed Jun 3 14:49:27 2015 +0800 crypto: seqiv - Move IV seeding into init function We currently do the IV seeding on the first givencrypt call in order to conserve entropy. However, this does not work with DRBG which cannot be called from interrupt context. In fact, with DRBG we don't need to conserve entropy anyway. So this patch moves the seeding into the init function. Signed-off-by: Herbert Xu crypto/seqiv.c | 113 ++++++++------------------------------------------------- 1 file changed, 15 insertions(+), 98 deletions(-) commit 4ce43ceb71cb5d5cde9f9bd4e51d17b966c462f7 Author: Herbert Xu Date: Wed Jun 3 14:49:25 2015 +0800 crypto: eseqiv - Move IV seeding into init function We currently do the IV seeding on the first givencrypt call in order to conserve entropy. However, this does not work with DRBG which cannot be called from interrupt context. In fact, with DRBG we don't need to conserve entropy anyway. So this patch moves the seeding into the init function. Signed-off-by: Herbert Xu crypto/eseqiv.c | 29 ++++------------------------- 1 file changed, 4 insertions(+), 25 deletions(-) commit f261c5fbe7121fd88198f3ee4be4e34a5a268120 Author: Herbert Xu Date: Wed Jun 3 14:49:24 2015 +0800 crypto: echainiv - Move IV seeding into init function We currently do the IV seeding on the first givencrypt call in order to conserve entropy. However, this does not work with DRBG which cannot be called from interrupt context. In fact, with DRBG we don't need to conserve entropy anyway. So this patch moves the seeding into the init function. Signed-off-by: Herbert Xu crypto/echainiv.c | 30 ++++++------------------------ 1 file changed, 6 insertions(+), 24 deletions(-) commit 65fe6740d472aee158275fd1103586dee2ffc5cb Author: Herbert Xu Date: Wed Jun 3 14:49:23 2015 +0800 crypto: chainiv - Move IV seeding into init function We currently do the IV seeding on the first givencrypt call in order to conserve entropy. However, this does not work with DRBG which cannot be called from interrupt context. In fact, with DRBG we don't need to conserve entropy anyway. So this patch moves the seeding into the init function. Signed-off-by: Herbert Xu crypto/chainiv.c | 66 ++++++++------------------------------------------------ 1 file changed, 9 insertions(+), 57 deletions(-) commit 3154de71258a32040214fda174e67b975b0810ef Author: Dan Streetman Date: Tue Jun 2 15:22:10 2015 -0400 crypto: nx - fix nx-842 pSeries driver minimum buffer size Reduce the nx-842 pSeries driver minimum buffer size from 128 to 8. Also replace the single use of IO_BUFFER_ALIGN macro with the standard and correct DDE_BUFFER_ALIGN. The hw sometimes rejects buffers that contain padding past the end of the 8-byte aligned section where it sees the "end" marker. With the minimum buffer size set too high, some highly compressed buffers were being padded and the hw was incorrectly rejecting them; this sets the minimum correctly so there will be no incorrect padding. Signed-off-by: Dan Streetman Signed-off-by: Herbert Xu drivers/crypto/nx/nx-842-pseries.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit b08b6b779112dd7c862d86780b5155d382f3cef6 Author: Martin Willi Date: Mon Jun 1 13:44:04 2015 +0200 xfrm: Define ChaCha20-Poly1305 AEAD XFRM algo for IPsec users Signed-off-by: Martin Willi Acked-by: Steffen Klassert Signed-off-by: Herbert Xu net/xfrm/xfrm_algo.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 5900758df19afa91026ad61f60a65164a41aac48 Author: Martin Willi Date: Mon Jun 1 13:44:03 2015 +0200 crypto: testmgr - Add draft-ietf-ipsecme-chacha20-poly1305 test vector Signed-off-by: Martin Willi Acked-by: Steffen Klassert Signed-off-by: Herbert Xu crypto/testmgr.c | 15 +++++ crypto/testmgr.h | 179 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 194 insertions(+) commit 4db4ad26096c4c1e579f9a957ca7752fe02bf7b4 Author: Martin Willi Date: Mon Jun 1 13:44:02 2015 +0200 crypto: chacha20poly1305 - Add an IPsec variant for RFC7539 AEAD draft-ietf-ipsecme-chacha20-poly1305 defines the use of ChaCha20/Poly1305 in ESP. It uses additional four byte key material as a salt, which is then used with an 8 byte IV to form the ChaCha20 nonce as defined in the RFC7539. Signed-off-by: Martin Willi Acked-by: Steffen Klassert Signed-off-by: Herbert Xu crypto/chacha20poly1305.c | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) commit af2b76b53a0668ff85b34cb108fefa85d72bb9c6 Author: Martin Willi Date: Mon Jun 1 13:44:01 2015 +0200 crypto: testmgr - Add ChaCha20-Poly1305 test vectors from RFC7539 Signed-off-by: Martin Willi Acked-by: Steffen Klassert Signed-off-by: Herbert Xu crypto/testmgr.c | 15 ++++ crypto/testmgr.h | 269 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 284 insertions(+) commit 71ebc4d1b27d345342bdcb32a29c8cc3da8c6654 Author: Martin Willi Date: Mon Jun 1 13:44:00 2015 +0200 crypto: chacha20poly1305 - Add a ChaCha20-Poly1305 AEAD construction, RFC7539 This AEAD uses a chacha20 ablkcipher and a poly1305 ahash to construct the ChaCha20-Poly1305 AEAD as defined in RFC7539. It supports both synchronous and asynchronous operations, even if we currently have no async chacha20 or poly1305 drivers. Signed-off-by: Martin Willi Acked-by: Steffen Klassert Signed-off-by: Herbert Xu crypto/Kconfig | 12 + crypto/Makefile | 1 + crypto/chacha20poly1305.c | 663 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 676 insertions(+) commit eee9dc6162c537641a9259ae595193fa3c68c96e Author: Martin Willi Date: Mon Jun 1 13:43:59 2015 +0200 crypto: testmgr - Add Poly1305 test vectors from RFC7539 Signed-off-by: Martin Willi Acked-by: Steffen Klassert Signed-off-by: Herbert Xu crypto/testmgr.c | 9 ++ crypto/testmgr.h | 259 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 268 insertions(+) commit f979e014c50ce3f7467f133898dbea2243247a91 Author: Martin Willi Date: Mon Jun 1 13:43:58 2015 +0200 crypto: poly1305 - Add a generic Poly1305 authenticator implementation Poly1305 is a fast message authenticator designed by Daniel J. Bernstein. It is further defined in RFC7539 as a building block for the ChaCha20-Poly1305 AEAD for use in IETF protocols. This is a portable C implementation of the algorithm without architecture specific optimizations, based on public domain code by Daniel J. Bernstein and Andrew Moon. Signed-off-by: Martin Willi Acked-by: Steffen Klassert Signed-off-by: Herbert Xu crypto/Kconfig | 9 ++ crypto/Makefile | 1 + crypto/poly1305_generic.c | 300 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 310 insertions(+) commit 3590ebf2b4c40aa4b663c4f2b9dfeb0a1e0b8f32 Author: Martin Willi Date: Mon Jun 1 13:43:57 2015 +0200 crypto: testmgr - Add ChaCha20 test vectors from RFC7539 We explicitly set the Initial block Counter by prepending it to the nonce in Little Endian. The same test vector is used for both encryption and decryption, ChaCha20 is a cipher XORing a keystream. Signed-off-by: Martin Willi Acked-by: Steffen Klassert Signed-off-by: Herbert Xu crypto/testmgr.c | 15 +++++ crypto/testmgr.h | 177 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 192 insertions(+) commit c08d0e647305c3f8f640010a56c9e4bafb9488d3 Author: Martin Willi Date: Mon Jun 1 13:43:56 2015 +0200 crypto: chacha20 - Add a generic ChaCha20 stream cipher implementation ChaCha20 is a high speed 256-bit key size stream cipher algorithm designed by Daniel J. Bernstein. It is further specified in RFC7539 for use in IETF protocols as a building block for the ChaCha20-Poly1305 AEAD. This is a portable C implementation without any architecture specific optimizations. It uses a 16-byte IV, which includes the 12-byte ChaCha20 nonce prepended by the initial block counter. Some algorithms require an explicit counter value, for example the mentioned AEAD construction. Signed-off-by: Martin Willi Acked-by: Steffen Klassert Signed-off-by: Herbert Xu crypto/Kconfig | 13 +++ crypto/Makefile | 1 + crypto/chacha20_generic.c | 216 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 230 insertions(+) commit 37c8e2b069c7ccff3ff6a356f82ed11abab5fb99 Merge: 9d1dabf 7616dcb Author: David S. Miller Date: Wed Jun 3 23:47:24 2015 -0700 Merge branch 'switchdev-next' Scott Feldman says: ==================== switchdev: documentation updates Update the switchdev documentation to clarify that for IPV4 FIB object, the add op is used for both adding and modifying the FIB entry on the device. I found a few other white-space and grammer issues to fix, and to clarify the static FDB ops. ==================== Signed-off-by: David S. Miller commit 7616dcbb212eeec00c9bcc0fecb953fdee60634c Author: Scott Feldman Date: Wed Jun 3 20:43:43 2015 -0700 switchdev: documentation: use switchdev_port_obj_xxx for IPv4 FIB add/modify/delete ops Clarify in documentation and code that IPV4 FIB add operation is used for both adding a new FIB entry to the device and for modifying an existing FIB entry on the device. Also, remove left-over references to ipv4_fib ops and replace with details on SWITCHDEV_PORT_IPV4_FIB object. Signed-off-by: Scott Feldman Acked-by: Jiri Pirko Signed-off-by: David S. Miller Documentation/networking/switchdev.txt | 53 +++++++++++++++++++--------------- net/switchdev/switchdev.c | 4 +-- 2 files changed, 31 insertions(+), 26 deletions(-) commit 4b5364fbdce7e4b947e6e76d7341675ea2e12f4d Author: Scott Feldman Date: Wed Jun 3 20:43:42 2015 -0700 switchdev: documentation: for static FDB ops, use switchdev_port_fdb_xxx ops Signed-off-by: Scott Feldman Acked-by: Jiri Pirko Signed-off-by: David S. Miller Documentation/networking/switchdev.txt | 4 ++++ 1 file changed, 4 insertions(+) commit d290f1fc7092814ee0e14b80ad09b06af7bd3484 Author: Scott Feldman Date: Wed Jun 3 20:43:41 2015 -0700 switchdev: documentation: fix grammer error Signed-off-by: Scott Feldman Acked-by: Jiri Pirko Signed-off-by: David S. Miller Documentation/networking/switchdev.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f5ed2febda3ae51cc382a1341381506cec09248b Author: Scott Feldman Date: Wed Jun 3 20:43:40 2015 -0700 switchdev: documentation: fix longer-than-80-char lines Signed-off-by: Scott Feldman Acked-by: Jiri Pirko Signed-off-by: David S. Miller Documentation/networking/switchdev.txt | 36 +++++++++++++++++----------------- 1 file changed, 18 insertions(+), 18 deletions(-) commit 9d1dabfbd0760269475a0cbbcc568505aa3ada60 Merge: 22793e5 1690fae Author: David S. Miller Date: Wed Jun 3 23:44:57 2015 -0700 Merge tag 'wireless-drivers-next-for-davem-2015-06-03' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next Kalle Valo says: ==================== new driver mt7601u for MediaTek Wi-Fi devices MT7601U ath10k: * qca6174 power consumption improvements, enable ASPM etc (Michal) wil6210: * support Wi-Fi Simple Configuration in STA mode iwlwifi: * a few fixes (re-enablement of interrupts for certain new platforms that have special power states) * Rework completely the RBD allocation model towards new multi RX hardware. * cleanups * scan reworks continuation (Luca) mwifiex: * improve firmware debug functionality rtlwifi: * update regulatory database brcmfmac: * cleanup and new feature support in PCIe code * alternative nvram loading for router support ==================== Conflicts: drivers/net/wireless/iwlwifi/Kconfig Trivial conflict in iwlwifi Kconfig, two commits adding the same two chip numbers to the help text, but order transposed. Signed-off-by: David S. Miller commit 22793e5d5f65b45e95492a08e0019fd669752607 Merge: cf71f43 e2d14b4 Author: David S. Miller Date: Wed Jun 3 23:40:20 2015 -0700 Merge branch 'cxgb4-next' Hariprasad Shenai says: ==================== cxgb4: Adds support for various ethtool stats This patch series adds the following: Adds support to dump adapter specific stats in ethtool Adds support to dump channel stats in ethtool Adds support to dump loopback port stats in ethtool Remove wake-on-lan get/set ethtool support This patch series has been created against net-next tree and includes patches on cxgb4 driver. We have included all the maintainers of respective drivers. Kindly review the change and let us know in case of any review comments. ==================== Signed-off-by: David S. Miller commit e2d14b42c25cb765df07d585a919b8c1c8b82e78 Author: Hariprasad Shenai Date: Wed Jun 3 21:04:42 2015 +0530 cxgb4: Remove WOL get/set ethtool support Remove ethtool get/set support for wake on lan, adapter doesn't support it. Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4.h | 2 - drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c | 33 ------- drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 100 --------------------- drivers/net/ethernet/chelsio/cxgb4/t4_hw.h | 2 - 4 files changed, 137 deletions(-) commit 65046e84144f5f462107a313b404bcbd52d6dd93 Author: Hariprasad Shenai Date: Wed Jun 3 21:04:41 2015 +0530 cxgb4: Add support to dump loopback port stats Add support in ethtool to dump loopback port statistics 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_ethtool.c | 43 ++++++++++++++++++- drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 48 ++++++++++++++++++++++ drivers/net/ethernet/chelsio/cxgb4/t4_regs.h | 1 + 4 files changed, 92 insertions(+), 1 deletion(-) commit a622297535b675d4444da88c499e1c35167f4622 Author: Hariprasad Shenai Date: Wed Jun 3 21:04:40 2015 +0530 cxgb4: Add support in ethtool to dump channel stats Add support in ethtool to dump adapter channel stats Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4.h | 14 ++++ drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c | 75 +++++++++++++++++++++- drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 43 +++++++++++++ drivers/net/ethernet/chelsio/cxgb4/t4_regs.h | 5 ++ 4 files changed, 136 insertions(+), 1 deletion(-) commit a4cfd929c90afaf26be6aea1989feed068844c68 Author: Hariprasad Shenai Date: Wed Jun 3 21:04:39 2015 +0530 cxgb4: Add ethtool support to get adapter stats Add ethtool support to get adapter specific hardware statistics Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/infiniband/hw/cxgb4/provider.c | 8 +- drivers/net/ethernet/chelsio/cxgb4/cxgb4.h | 58 ++++++--- drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c | 129 ++++++++++++++++++--- drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 10 +- drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 119 +++++++++++++++++-- drivers/net/ethernet/chelsio/cxgb4/t4_regs.h | 10 ++ 6 files changed, 284 insertions(+), 50 deletions(-) commit 0c534938663af8d2ca2a89bed07e8c0e624352a0 Author: Tomi Valkeinen Date: Thu Feb 12 12:23:10 2015 +0200 arm/dts: am57xx-beagle-x15.dts: add HDMI AM57xx Beagle X15 has a HDMI output. This patch adds the device tree nodes required for HDMI. Signed-off-by: Tomi Valkeinen Cc: devicetree@vger.kernel.org Acked-by: Tony Lindgren arch/arm/boot/dts/am57xx-beagle-x15.dts | 81 +++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) commit fadf0d0bba904459bb0e85daae4362d7264388fa Author: Tomi Valkeinen Date: Thu Feb 12 09:55:46 2015 +0200 arm/dts: dra72-evm.dts: add HDMI DRA72 EVM has a HDMI output. This patch adds the device tree nodes required for HDMI. Signed-off-by: Tomi Valkeinen Cc: devicetree@vger.kernel.org Acked-by: Tony Lindgren arch/arm/boot/dts/dra72-evm.dts | 110 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) commit 95c1cd13927ce00fde1714170c780c72ea352fbb Author: Tomi Valkeinen Date: Wed Jul 9 16:15:18 2014 +0530 arm/dts: dra7.dtsi: add DSS support DRA7xxx contains a very similar DSS to OMAP5. The main differences are: * no DSI or RFBI support. * 1 or 2 dedicated video PLLs. * need to do additional configuration to the DRA7 CONTROL module. DRA72xx has only one video PLL, and DRA74xx has two. Signed-off-by: Tomi Valkeinen Cc: devicetree@vger.kernel.org Acked-by: Tony Lindgren arch/arm/boot/dts/dra7.dtsi | 38 ++++++++++++++++++++++++++++++++++++++ arch/arm/boot/dts/dra72x.dtsi | 11 +++++++++++ arch/arm/boot/dts/dra74x.dtsi | 15 +++++++++++++++ 3 files changed, 64 insertions(+) commit 403ee909e44a6cf41060ce02899c07f5907d6af5 Author: Tomi Valkeinen Date: Mon Apr 21 16:08:47 2014 +0530 ARM: OMAP2+: display: detect DRA7 DSS Add platform code to detect DRA7 DSS. Signed-off-by: Tomi Valkeinen Acked-by: Tony Lindgren arch/arm/mach-omap2/display.c | 3 +++ 1 file changed, 3 insertions(+) commit 5b5992ac64a5a609c995807d987459c7759c6fb1 Author: Tomi Valkeinen Date: Thu Dec 11 16:30:07 2014 +0200 ARM: OMAP: display: change compat names to array Simplify the DSS detection logic by creating a list of the omapdss compat strings, instead of checking each separately with an 'if'. Signed-off-by: Tomi Valkeinen Acked-by: Tony Lindgren arch/arm/mach-omap2/display.c | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) commit a3818c6d5718c40e661846c0f6504a7f3f67918a Author: Tomi Valkeinen Date: Thu Oct 9 16:45:56 2014 +0300 ARM: DRA7: hwmod: set DSS submodule parent hwmods Set DSS core hwmod as the parent for all the DSS submodules. This ensures that the parent hwmods are enabled before any DSS submodules are accessed. Signed-off-by: Tomi Valkeinen Acked-by: Paul Walmsley arch/arm/mach-omap2/omap_hwmod_7xx_data.c | 2 ++ 1 file changed, 2 insertions(+) commit 42121688f970e0f01670ad9fba09bf41e41abecc Author: Tomi Valkeinen Date: Mon Sep 15 13:12:18 2014 -0500 ARM: DRA7: hwmod: add DMM hwmod description Add DMM hwmod entries for DRA7. This is identical to DMM on OMAP5. Signed-off-by: Tomi Valkeinen Acked-by: Paul Walmsley arch/arm/mach-omap2/omap_hwmod_7xx_data.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) commit b21a9c3ee83ab26fd33c9a5f3bc2150c95eea975 Author: Tomi Valkeinen Date: Fri Apr 25 14:15:18 2014 +0530 arm/dts: dra7xx: add 'ti,set-rate-parent' for dss_dss_clk We need set-rate-parent flags for the display's clock path so that the DSS driver can change the clock rate of the PLL. This patchs adds the ti,set-rate-parent flag to 'dss_dss_clk' clock node, which is only a gate clock, allowing the setting of the clock rate to propagate to the PLL. Signed-off-by: Tomi Valkeinen Cc: devicetree@vger.kernel.org Acked-by: Tero Kristo arch/arm/boot/dts/dra7xx-clocks.dtsi | 1 + 1 file changed, 1 insertion(+) commit f892b203525acb6af02bddcae95fbb547624a986 Author: Tomi Valkeinen Date: Mon Feb 23 09:11:24 2015 +0200 CLK: TI: always enable DESHDCP clock DESHDCP clock is needed on DRA7 based SoCs to enable the DSS IP. That clock is an odd one, as it is not supposed to be any kind of core clock for DSS, and we don't even support HDCP, but the clock is still needed even for the HWMOD framework to be able to reset the DSS IP. As there's no support for multiple core clocks in the HWMOD framework, we don't have any obvious place to enable this clock when DSS IP is being enabled. Furthermore, the HDMI on OMAP5 DSS is the same as on DRA7, and OMAP5 does not have any such clock configuration bit. This suggests that on OMAP5 the DESHDCP clock is always enabled, and for DRA7 we have the possibility to gate it. So, as we don't have any clean way to enable and disable the clock based on the need, this patch enables the clock at boot time, making it work similarly to OMAP5. Signed-off-by: Tomi Valkeinen Acked-by: Tero Kristo Acked-by: Michael Turquette drivers/clk/ti/clk-7xx.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit ce32f859646bab2ed724393398b90aa50149bb44 Author: Masahiro Yamada Date: Mon Apr 13 10:30:20 2015 +0900 of/fdt: fix argument name and add comments of unflatten_dt_node() Match the name of the third argument in the comment block to the actual function: p -> poffset Add missing comments about the arguments "nodepp" and "dryrun". Signed-off-by: Masahiro Yamada Signed-off-by: Grant Likely drivers/of/fdt.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 519ce9fec9ac2322cacc207bdaae45afa1bc9e9d Merge: 5c9b9bc 1f121b0 Author: Ingo Molnar Date: Thu Jun 4 07:43:29 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 'perf probe' segfault when glob matching function without debuginfo (Wang Nan) - Remove newline char when reading event scale and unit (Madhavan Srinivasan) - Deal with kernel module names in '[]' correctly (Wang Nan) Infrastructure changes: - Fix the search for the kernel DSO on the unified list (Arnaldo Carvalho de Melo) - Move tools/perf/util/include/linux/{kernel.h,list.h,poison.h} to tools/include, to be used in tools/lib/bpf/ (Wang Nan) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit c8fff7bc5bba6bd59cad40441c189c4efe7190f6 Author: Konstantin Khlebnikov Date: Wed Apr 8 19:59:20 2015 +0300 of: return NUMA_NO_NODE from fallback of_node_to_nid() Node 0 might be offline as well as any other numa node, in this case kernel cannot handle memory allocation and crashes. Signed-off-by: Konstantin Khlebnikov Fixes: 0c3f061c195c ("of: implement of_node_to_nid as a weak function") Signed-off-by: Grant Likely drivers/of/base.c | 2 +- include/linux/of.h | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) commit 00398a0018d1334fedabfeaabd0fa563121de612 Author: Ingo Molnar Date: Wed Jun 3 18:41:06 2015 +0200 x86/asm/entry: Move the vsyscall code to arch/x86/entry/vsyscall/ The vsyscall code is entry code too, so move it to arch/x86/entry/vsyscall/. Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Thomas Gleixner Cc: Andy Lutomirski Cc: Denys Vlasenko Cc: Brian Gerst Cc: Peter Zijlstra Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar arch/x86/entry/Makefile | 6 +- arch/x86/entry/syscall_32.c | 33 +++ arch/x86/entry/syscall_64.c | 32 +++ arch/x86/entry/vsyscall/Makefile | 7 + arch/x86/entry/vsyscall/vsyscall_64.c | 335 ++++++++++++++++++++++++++++++ arch/x86/entry/vsyscall/vsyscall_emu_64.S | 37 ++++ arch/x86/entry/vsyscall/vsyscall_gtod.c | 70 +++++++ arch/x86/entry/vsyscall/vsyscall_trace.h | 29 +++ arch/x86/kernel/Makefile | 3 - arch/x86/kernel/syscall_32.c | 33 --- arch/x86/kernel/syscall_64.c | 32 --- arch/x86/kernel/vsyscall_64.c | 335 ------------------------------ arch/x86/kernel/vsyscall_emu_64.S | 37 ---- arch/x86/kernel/vsyscall_gtod.c | 70 ------- arch/x86/kernel/vsyscall_trace.h | 29 --- 15 files changed, 547 insertions(+), 541 deletions(-) commit 1f57d5d85ba7f1f467173ff33f51d01a91f9aaf1 Author: Ingo Molnar Date: Wed Jun 3 18:36:41 2015 +0200 x86/asm/entry: Move the arch/x86/syscalls/ definitions to arch/x86/entry/syscalls/ The build time generated syscall definitions are entry code related, move them into the arch/x86/entry/ directory. Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Thomas Gleixner Cc: Andy Lutomirski Cc: Denys Vlasenko Cc: Brian Gerst Cc: Peter Zijlstra Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar arch/x86/Makefile | 2 +- arch/x86/entry/syscalls/Makefile | 69 ++++++ arch/x86/entry/syscalls/syscall_32.tbl | 367 ++++++++++++++++++++++++++++++++ arch/x86/entry/syscalls/syscall_64.tbl | 370 +++++++++++++++++++++++++++++++++ arch/x86/entry/syscalls/syscallhdr.sh | 27 +++ arch/x86/entry/syscalls/syscalltbl.sh | 15 ++ arch/x86/syscalls/Makefile | 69 ------ arch/x86/syscalls/syscall_32.tbl | 367 -------------------------------- arch/x86/syscalls/syscall_64.tbl | 370 --------------------------------- arch/x86/syscalls/syscallhdr.sh | 27 --- arch/x86/syscalls/syscalltbl.sh | 15 -- scripts/checksyscalls.sh | 2 +- 12 files changed, 850 insertions(+), 850 deletions(-) commit d36f947904dba0935a0e74dc9df2ef57caeb7d03 Author: Ingo Molnar Date: Wed Jun 3 18:29:26 2015 +0200 x86/asm/entry: Move arch/x86/include/asm/calling.h to arch/x86/entry/ asm/calling.h is private to the entry code, make this more apparent by moving it to the new arch/x86/entry/ directory. Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Thomas Gleixner Cc: Andy Lutomirski Cc: Denys Vlasenko Cc: Brian Gerst Cc: Peter Zijlstra Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar arch/x86/entry/calling.h | 243 +++++++++++++++++++++++++++++++++++++++++ arch/x86/entry/entry_64.S | 2 +- arch/x86/entry/ia32entry.S | 2 +- arch/x86/entry/thunk_64.S | 2 +- arch/x86/include/asm/calling.h | 243 ----------------------------------------- 5 files changed, 246 insertions(+), 246 deletions(-) commit e6b93f4e48af8fe8373ec1132b8c7787890e7578 Author: Ingo Molnar Date: Wed Jun 3 18:10:43 2015 +0200 x86/asm/entry: Move the 'thunk' functions to arch/x86/entry/ These are all calling x86 entry code functions, so move them close to other entry code. Change lib-y to obj-y: there's no real difference between the two as we don't really drop any of them during the linking stage, and obj-y is the more common approach for core kernel object code. Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Thomas Gleixner Cc: Andy Lutomirski Cc: Denys Vlasenko Cc: Brian Gerst Cc: Peter Zijlstra Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar arch/x86/entry/Makefile | 3 +-- arch/x86/entry/thunk_32.S | 42 +++++++++++++++++++++++++++++ arch/x86/entry/thunk_64.S | 69 +++++++++++++++++++++++++++++++++++++++++++++++ arch/x86/lib/Makefile | 1 - arch/x86/lib/thunk_32.S | 42 ----------------------------- arch/x86/lib/thunk_64.S | 69 ----------------------------------------------- arch/x86/um/Makefile | 2 +- 7 files changed, 113 insertions(+), 115 deletions(-) commit 4ea79766168b64766d6c9fcdaa9fab83a6cfebcf Merge: 4497f28 f78c390 Author: Dave Chinner Date: Thu Jun 4 13:55:48 2015 +1000 Merge branch 'xfs-commit-cleanup' into for-next Conflicts: fs/xfs/xfs_attr_inactive.c commit f78c3901074e113a04150230087f1d76033bb0a4 Author: Christoph Hellwig Date: Thu Jun 4 13:48:20 2015 +1000 xfs: fix xfs_log_done interface Instead of the confusing flags argument pass a boolean flag to indicate if we want to release or regrant a log reservation. Also ensure that xfs_log_done always drop the reference on the log ticket, to both simplify the code and make the logic in xfs_trans_roll easier to understand. Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/xfs_log.c | 11 ++++------- fs/xfs/xfs_log.h | 11 +---------- fs/xfs/xfs_log_cil.c | 8 ++------ fs/xfs/xfs_trans.c | 33 ++++----------------------------- 4 files changed, 11 insertions(+), 52 deletions(-) commit 70393313dd0b26a6a79e2737b6dff1f1937b936d Author: Christoph Hellwig Date: Thu Jun 4 13:48:08 2015 +1000 xfs: saner xfs_trans_commit interface The flags argument to xfs_trans_commit is not useful for most callers, as a commit of a transaction without a permanent log reservation must pass 0 here, and all callers for a transaction with a permanent log reservation except for xfs_trans_roll must pass XFS_TRANS_RELEASE_LOG_RES. So remove the flags argument from the public xfs_trans_commit interfaces, and introduce low-level __xfs_trans_commit variant just for xfs_trans_roll that regrants a log reservation instead of releasing it. Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_attr.c | 7 +++---- fs/xfs/libxfs/xfs_bmap.c | 5 ++--- fs/xfs/libxfs/xfs_sb.c | 2 +- fs/xfs/libxfs/xfs_shared.h | 5 ----- fs/xfs/xfs_aops.c | 2 +- fs/xfs/xfs_attr_inactive.c | 2 +- fs/xfs/xfs_bmap_util.c | 11 +++++------ fs/xfs/xfs_dquot.c | 2 +- fs/xfs/xfs_file.c | 2 +- fs/xfs/xfs_fsops.c | 2 +- fs/xfs/xfs_inode.c | 14 +++++++------- fs/xfs/xfs_ioctl.c | 6 +++--- fs/xfs/xfs_iomap.c | 6 +++--- fs/xfs/xfs_iops.c | 6 +++--- fs/xfs/xfs_log.h | 2 +- fs/xfs/xfs_log_cil.c | 4 ++-- fs/xfs/xfs_log_recover.c | 4 ++-- fs/xfs/xfs_pnfs.c | 2 +- fs/xfs/xfs_qm.c | 2 +- fs/xfs/xfs_qm_syscalls.c | 9 ++++----- fs/xfs/xfs_rtalloc.c | 6 +++--- fs/xfs/xfs_symlink.c | 4 ++-- fs/xfs/xfs_trans.c | 35 +++++++++++++++++++---------------- fs/xfs/xfs_trans.h | 2 +- 24 files changed, 68 insertions(+), 74 deletions(-) commit 4906e21545814e4129595118287a2f1415483c0b Author: Christoph Hellwig Date: Thu Jun 4 13:47:56 2015 +1000 xfs: remove the flags argument to xfs_trans_cancel xfs_trans_cancel takes two flags arguments: XFS_TRANS_RELEASE_LOG_RES and XFS_TRANS_ABORT. Both of them are a direct product of the transaction state, and can be deducted: - any dirty transaction needs XFS_TRANS_ABORT to be properly canceled, and XFS_TRANS_ABORT is a noop for a transaction that is not dirty. - any transaction with a permanent log reservation needs XFS_TRANS_RELEASE_LOG_RES to be properly canceled, and passing XFS_TRANS_RELEASE_LOG_RES for a transaction without a permanent log reservation is invalid. So just remove the flags argument and do the right thing. Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_attr.c | 18 ++++----- fs/xfs/libxfs/xfs_bmap.c | 11 ++---- fs/xfs/libxfs/xfs_sb.c | 2 +- fs/xfs/libxfs/xfs_shared.h | 1 - fs/xfs/xfs_aops.c | 4 +- fs/xfs/xfs_attr_inactive.c | 4 +- fs/xfs/xfs_bmap_util.c | 24 ++++++------ fs/xfs/xfs_dquot.c | 6 +-- fs/xfs/xfs_file.c | 2 +- fs/xfs/xfs_fsops.c | 4 +- fs/xfs/xfs_inode.c | 93 ++++++++++++++++------------------------------ fs/xfs/xfs_ioctl.c | 8 ++-- fs/xfs/xfs_iomap.c | 12 +++--- fs/xfs/xfs_iops.c | 12 ++---- fs/xfs/xfs_log_recover.c | 4 +- fs/xfs/xfs_pnfs.c | 2 +- fs/xfs/xfs_qm.c | 5 +-- fs/xfs/xfs_qm_syscalls.c | 11 +++--- fs/xfs/xfs_rtalloc.c | 10 +---- fs/xfs/xfs_symlink.c | 13 ++----- fs/xfs/xfs_trans.c | 27 +++++--------- fs/xfs/xfs_trans.h | 2 +- 22 files changed, 104 insertions(+), 171 deletions(-) commit eacb24e73424bdae4aa139ddd459f86ec46f0ad0 Author: Christoph Hellwig Date: Thu Jun 4 13:47:43 2015 +1000 xfs: pass a boolean flag to xfs_trans_free_items The flags value always was 0 or XFS_TRANS_ABORT. Switch to a bool parameter to allow further cleanups. Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/xfs_log_cil.c | 2 +- fs/xfs/xfs_trans.c | 8 ++++---- fs/xfs/xfs_trans_priv.h | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) commit 2e6db6c4c1f71823472651f162f0b355f5b7951e Author: Christoph Hellwig Date: Thu Jun 4 13:47:29 2015 +1000 xfs: switch remaining xfs_trans_dup users to xfs_trans_roll We have three remaining callers of xfs_trans_dup: - xfs_itruncate_extents which open codes xfs_trans_roll - xfs_bmap_finish doesn't have an xfs_inode argument and thus leaves attaching them to it's callers, but otherwise is identical to xfs_trans_roll - xfs_dir_ialloc looks at the log reservations in the old xfs_trans structure instead of the log reservation parameters, but otherwise is identical to xfs_trans_roll. By allowing a NULL xfs_inode argument to xfs_trans_roll we can switch these three remaining users over to xfs_trans_roll and mark xfs_trans_dup static. Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/xfs_bmap_util.c | 31 ++++++------------------ fs/xfs/xfs_inode.c | 66 +++----------------------------------------------- fs/xfs/xfs_trans.c | 8 +++--- fs/xfs/xfs_trans.h | 3 --- 4 files changed, 16 insertions(+), 92 deletions(-) commit 4497f28750cd129a669e32b7810dd755102aebbd Merge: 66e8ac7 46fc58d Author: Dave Chinner Date: Thu Jun 4 13:31:13 2015 +1000 Merge branch 'xfs-misc-fixes-for-4.2-2' into for-next commit cf71f43e44a9d2ba8edde8e81e4b21e6a93670ab Merge: 3349b0b f372d09 Author: David S. Miller Date: Wed Jun 3 20:22:46 2015 -0700 Merge tag 'batman-adv-for-davem' of git://git.open-mesh.org/linux-merge Antonio Quartulli says: ==================== pull request: batman-adv 20150603 here you have our second batch of patches intended for net-next. In this patchset you won't find any new features, but quite some code cleanup work, a bunch of code style fixes and also comments corrections by Markus Pargmann. Moreover you have a patch from Sven Eckelmann removing an unnecessary NULL check in batadv_iv_ogm_update_seqnos(). Please pull or let me know of any problem! ==================== Signed-off-by: David S. Miller commit 3349b0b79e38f740fb794d3989d8bb3dd107fda0 Author: Rasmus Villemoes Date: Wed Jun 3 13:44:03 2015 +0200 net: tulip: rearrange order of searching for substrings Currently, two of the branches are dead code, since an earlier smaller substring would have been found ("TP" in the "TP_NW" case and either of "BNC" and "AUI" in the "BNC_AUI" case). Rearrange the strstr() calls so that the longer strings are searched for first. Signed-off-by: Rasmus Villemoes Signed-off-by: David S. Miller drivers/net/ethernet/dec/tulip/de4x5.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 633cc5fe768c0223f80637527eb9be916bcaa9ee Merge: 3896d65 529498c Author: David S. Miller Date: Wed Jun 3 20:19:16 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-06-03 This series contains updates to e1000e only. Yanir provides 8 fixes and 1 version bump for e1000e. First fix resolves a possible unit hang if multiple descriptors are available in the rings during reset or runtime suspend. Fixed a warning on SPARC compile based on a suggested solution from Alex Duyck. Fixed a logical error, where a "if" condition under which a flush should occur, was revered. Fixed a hardware issue that prevented i219 from working in legacy interrupts mode. Fixed the hardware clock configuration and suprious non-linear increment. Lastly, fixed a system hang which occurred during execution of "ethtool -t ", by disabling MULR for the loopback test to avoid the hand state. ==================== Signed-off-by: David S. Miller commit 3896d655f4d491c67d669a15f275a39f713410f8 Author: Alexei Starovoitov Date: Tue Jun 2 16:03:14 2015 -0700 bpf: introduce bpf_clone_redirect() helper Allow eBPF programs attached to classifier/actions to call bpf_clone_redirect(skb, ifindex, flags) helper which will mirror or redirect the packet by dynamic ifindex selection from within the program to a target device either at ingress or at egress. Can be used for various scenarios, for example, to load balance skbs into veths, split parts of the traffic to local taps, etc. Signed-off-by: Alexei Starovoitov Acked-by: Daniel Borkmann Signed-off-by: David S. Miller include/uapi/linux/bpf.h | 10 ++++++++++ net/core/filter.c | 40 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) commit 613d8c188ffc6f24b7a64dbce74a1b78017c0238 Author: Carol Soto Date: Tue Jun 2 16:07:25 2015 -0500 net/mlx4_core: fix typo in mlx4_set_vf_mac fix typo in mlx4_set_vf_mac Acked-by: Or Gerlitz Signed-off-by: Carol L Soto Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/cmd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ed3d2276ef72be23c6367358d80004130d8c797d Author: Carol Soto Date: Tue Jun 2 16:07:24 2015 -0500 net/mlx4_core: need to call close fw if alloc icm is called twice If mlx4_enable_sriov is called by adapter without this feature MLX4_DEV_CAP_FLAG2_SYS_EQS then during this path the function alloc icm is called twice without freeing the structures from the first time. Acked-by: Or Gerlitz Signed-off-by: Carol L Soto Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/main.c | 1 + 1 file changed, 1 insertion(+) commit 5114a04e6c73a0c6e74737e801b8a3b3d40c7e36 Author: Carol L Soto Date: Tue Jun 2 16:07:23 2015 -0500 net/mlx4_core: double free of dev_vfs If user loads mlx4_core with num_vfs greater than supported then variable dev->dev_vfs is freed 2 times after unloading the driver. Acked-by: Or Gerlitz Signed-off-by: Carol L Soto Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/main.c | 1 + 1 file changed, 1 insertion(+) commit 46fc58dacf6e9b00629c57998a8a23f85c262b3f Author: Brian Foster Date: Thu Jun 4 13:03:34 2015 +1000 xfs: check min blks for random debug mode sparse allocations The inode allocator enables random sparse inode chunk allocations in DEBUG mode to facilitate testing. Sparse inode allocations are not always possible, however, depending on the fs geometry. For example, there is no possibility for a sparse inode allocation on filesystems where the block size is large enough to fit one or more inode chunks within a single block. Fix up the DEBUG mode sparse inode allocation logic to trigger random sparse allocations only when the geometry of the fs allows it. Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_ialloc.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) commit 3cdaa1898ff3b16f69619cb5df2f45158e104817 Author: Brian Foster Date: Thu Jun 4 13:03:34 2015 +1000 xfs: fix sparse inodes 32-bit compile failure The kbuild test robot reports the following compilation failure with a 32-bit kernel configuration: fs/built-in.o: In function `xfs_ifree_cluster': >> xfs_inode.c:(.text+0x17ac84): undefined reference to `__umoddi3' This is due to the use of the modulus operator on a 64-bit variable in the ASSERT() added as part of the following commit: xfs: skip unallocated regions of inode chunks in xfs_ifree_cluster() This ASSERT() simply checks that the offset of the inode in a sparse cluster is appropriately aligned. Since the maximum inode record offset is 63 (for a 64 inode record) and the calculated offset here should be something less than that, just use a 32-bit variable to store the offset and call the do_mod() helper. Reported-by: kbuild test robot Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/xfs_inode.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 4eeab599e1277a8a28b6b8740a29bf7e7a73f829 Author: Prasanna Karthik Date: Tue Jun 2 10:50:15 2015 +0000 Bluetooth: vhci: Clean up coding style fix Fix spaces required around that '=' reported by checkpatch. Signed-off-by: Prasanna Karthik Signed-off-by: Johan Hedberg drivers/bluetooth/hci_vhci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 66e8ac7bfa0a591b8cfaa447db2daa5b6e9221d0 Merge: b9a350a cbe4dab Author: Dave Chinner Date: Thu Jun 4 13:01:49 2015 +1000 Merge branch 'xfs-dax-support' into for-next commit e1395a321eab1a7833d82e952eb8255e0a1f03cb Author: David Malcolm Date: Tue Jun 2 15:31:17 2015 -0400 drivers/net/ethernet/dec/tulip/uli526x.c: fix misleading indentation in uli526x_timer This code in drivers/net/ethernet/dec/tulip/uli526x.c function "uli526x_timer": 1086 } else 1087 if ((tmp_cr12 & 0x3) && db->link_failed) { [...snip...] 1109 } 1110 else if(!(tmp_cr12 & 0x3) && db->link_failed) 1111 { [...snip...] 1117 } 1118 db->init=0; is misleadingly indented: the db->init=0 is indented as if part of the else clause at line 1086, but it is independent of it (no braces before the "if" at line 1087). This patch fixes the indentation to reflect the actual meaning of the code, though is it actually meant to be part of the "else" clause? (I'm a compiler developer, not a kernel person). It also adds spaces around the assignment, to placate checkpatch.pl. Seen via an experimental new gcc warning I'm working on for gcc 6, -Wmisleading-indentation, using gcc r223098 adding -Werror=misleading-indentation to KBUILD_CFLAGS in Makefile. The experimental GCC emits this warning (as an error), rightly IMHO: drivers/net/ethernet/dec/tulip/uli526x.c: In function ‘uli526x_timer’: drivers/net/ethernet/dec/tulip/uli526x.c:1118:3: error: statement is indented as if it were guarded by... [-Werror=misleading-indentation] db->init=0; ^ drivers/net/ethernet/dec/tulip/uli526x.c:1086:4: note: ...this ‘else’ clause, but it is not } else ^ Hope this is helpful Dave Signed-off-by: David Malcolm Signed-off-by: David S. Miller drivers/net/ethernet/dec/tulip/uli526x.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2a10154abcb75ad0d7b6bfea6210ac743ec60897 Author: Dan Murphy Date: Tue Jun 2 09:34:37 2015 -0500 net: phy: dp83867: Add TI dp83867 phy Add support for the TI dp83867 Gigabit ethernet phy device. The DP83867 is a robust, low power, fully featured Physical Layer transceiver with integrated PMD sublayers to support 10BASE-T, 100BASE-TX and 1000BASE-T Ethernet protocols. Signed-off-by: Dan Murphy Signed-off-by: David S. Miller .../devicetree/bindings/net/ti,dp83867.txt | 19 ++ drivers/net/phy/Kconfig | 6 +- drivers/net/phy/Makefile | 1 + drivers/net/phy/dp83867.c | 239 +++++++++++++++++++++ include/dt-bindings/net/ti-dp83867.h | 45 ++++ 5 files changed, 309 insertions(+), 1 deletion(-) commit f6b59f36b463ffdd82fc804f2772194eb8abd030 Author: Antonio Murdaca Date: Tue Jun 2 14:35:52 2015 +0200 ethernet: micrel: use time_after_eq use the time_after_eq macro for jiffies comparison operation Signed-off-by: Antonio Murdaca Signed-off-by: David S. Miller drivers/net/ethernet/micrel/ksz884x.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit db9777e376b0e038fc01d1361c7ea3eaf801c718 Author: Or Gerlitz Date: Tue Jun 2 10:29:48 2015 +0300 net/mlx4_core: Fix build failure introduced by the EQ pool changes When CONFIG_RFS_ACCEL or SMP aren't set, we fail to build, fix it. Also, avoid build warning as of unused function on that setup. Fixes: c66fa19c405a ('net/mlx4: Add EQ pool') Reported-by: Michael Ellerman Signed-off-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, 3 insertions(+), 1 deletion(-) commit 3ccec53c294cbec2af44b6b24f70349637c45428 Author: Marek Olšák Date: Tue Jun 2 17:44:49 2015 +0200 drm/amdgpu: only support IBs in the buffer list (v2) amdgpu_cs_find_mapping doesn't work without all buffers being validated, so the TTM validation must be done first. v2: only use amdgpu_cs_find_mapping for UVD/VCE VM emulation Signed-off-by: Marek Olšák Reviewed-by: Christian König drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 - drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 95 +++++++++------------------------- include/uapi/drm/amdgpu_drm.h | 6 +-- 3 files changed, 25 insertions(+), 77 deletions(-) commit 81c59f54125f9ff84546b6ba26c321662562703d Author: Ken Wang Date: Wed Jun 3 21:02:01 2015 +0800 drm/amdgpu: add vram_type and vram_bit_width for interface query (v2) Track the type of vram on the board and provide a query for it. User mode drivers and tools want this information for determining bandwidth information and form informational purposes. v2: fix build when CI support is not enabled Signed-off-by: Ken Wang Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 2 ++ drivers/gpu/drm/amd/amdgpu/ci_dpm.c | 12 ++++++------ drivers/gpu/drm/amd/amdgpu/cikd.h | 11 ++++++++--- drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c | 32 +++++++++++++++++++++++++------- drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 33 ++++++++++++++++++++++++++------- drivers/gpu/drm/amd/amdgpu/vid.h | 11 ++++++++--- include/uapi/drm/amdgpu_drm.h | 13 +++++++++++++ 8 files changed, 89 insertions(+), 27 deletions(-) commit 71062f435eaf0ff7867a1188e5c7887b0a5871ff Author: Ken Wang Date: Thu Jun 4 21:26:57 2015 +0800 drm/amdgpu: add ib_size/start_alignment interface query Query the IB alignment requirements from the kernel rather than hardcoding them in the user mode drivers. Signed-off-by: Ken Wang Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 14 ++++++++++++++ include/uapi/drm/amdgpu_drm.h | 4 ++++ 2 files changed, 18 insertions(+) commit 02558a006c0cf92e612c9d6d1c6058ca1a6dbe6a Author: Ken Wang Date: Wed Jun 3 19:52:06 2015 +0800 drm/amdgpu: add me/ce/pfp_feature_version interface query Provide this information to usermode drivers. We were previously missing this info. Signed-off-by: Ken Wang Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/amdgpu.h | 3 +++ drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 6 +++--- drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 3 +++ drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 3 +++ 4 files changed, 12 insertions(+), 3 deletions(-) commit a101a8995ab8072125d0bb4d95425c9fb37ff809 Author: Ken Wang Date: Wed Jun 3 17:47:54 2015 +0800 drm/amdgpu add ce_ram_size for interface query Add a query for the CE ram size. User mode drivers will want to use this to determine how much size of the cache on the CE. Signed-off-by: Ken Wang Reviewd-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 ++ drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 1 + drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 2 ++ drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 2 ++ include/uapi/drm/amdgpu_drm.h | 2 ++ 5 files changed, 9 insertions(+) commit 32bf7106e072b59cade754062ed86023309f50d9 Author: Ken Wang Date: Wed Jun 3 17:36:54 2015 +0800 drm/amdgpu add max_memory_clock for interface query (v2) Add a query for the max memory clock. v2: handle the dpm enabled case properly Signed-off-by: Ken Wang Reviewd-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 8 ++++++-- include/uapi/drm/amdgpu_drm.h | 1 + 2 files changed, 7 insertions(+), 2 deletions(-) commit 35074d2d404049c386e7e70a9e48cf77f1379364 Author: monk.liu Date: Wed Jun 3 16:32:49 2015 +0800 drm/amdgpu: add hdp flush for gfx8 compute ring We had forgotten to register the callback. Signed-off-by: monk.liu Reviewed-by: Christian König Reviewed-by: jammy zhou drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 1 + 1 file changed, 1 insertion(+) commit d9b5327ad757164418e8d4e260a343377e99f205 Author: monk.liu Date: Tue Jun 2 15:50:33 2015 +0800 drm/amdgpu: fix no hdp flush for compute ring No pfp on compute. Signed-off-by: monk.liu Reviewed-by: Christian König drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 86fa0bdc6fd7b2debc07ce86f1bcd5fb254822e3 Author: Christian König Date: Tue May 5 16:36:01 2015 +0200 drm/amdgpu: add HEVC/H.265 UVD support Signed-off-by: Christian König Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit faad24cf2372794759b40085aeb3a2504f3fa0c2 Author: Christian König Date: Thu May 28 22:02:26 2015 +0200 drm/amdgpu: stop loading firmware with pm.mutex locked Loading firmware is a rather complicated process, in the end we add a dependency between the pm mutex and the mm semaphore which results in a harmless but annoying error message. Signed-off-by: Christian König Reviewed-by: Alex Deucher Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/ci_dpm.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit e176fe176d3a02d9409e0f36502799083ae13e1b Author: Christian König Date: Wed May 27 10:22:47 2015 +0200 drm/amdgpu: remove mclk_lock Not needed any more. Signed-off-by: Christian König Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 -- drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 1 - drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 2 -- drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c | 2 -- drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 40 +++--------------------------- 5 files changed, 4 insertions(+), 43 deletions(-) commit 8dacc127fcb3b60e6893ec74ee2f615d78dcbc4e Author: Alex Deucher Date: Mon May 11 16:20:58 2015 -0400 drm/amdgpu: fix description of vm_size module parameter (v2) default is 8GB, not 4GB. v2: fix fallback setting when the user provides an invalid input Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 6 +++--- drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) commit b9a7faaeb2b0271ca9a7d8436a055da219a35ec8 Author: monk.liu Date: Wed May 27 14:03:22 2015 +0800 drm/amdgpu: remove all sh mem register modification in vm flush Leave that at the values set during init. No need to update them repeatedly. Signed-off-by: monk.liu Signed-off-by: David Zhang Reviewed-by: Christian König Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/cik_sdma.c | 27 ------------------------ drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 27 ------------------------ drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 30 --------------------------- drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c | 38 ---------------------------------- drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 38 ---------------------------------- 5 files changed, 160 deletions(-) commit d8f65a2376268dfb2963152754d41208dc43d906 Author: Marek Olšák Date: Wed May 27 14:30:38 2015 +0200 drm/amdgpu: rename GEM_OP_SET_INITIAL_DOMAIN -> GEM_OP_SET_PLACEMENT Signed-off-by: Marek Olšák Reviewed-by: Christian König Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 2 +- include/uapi/drm/amdgpu_drm.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit aeb0aeac2e4f23bb58a642c720883ceba407c072 Author: monk.liu Date: Tue May 26 15:03:45 2015 +0800 drm/amdgpu: fence should be added to shared slot Signed-off-by: monk.liu Reviewed-by: Christian König Reviewed-by: jammy zhou drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit cfe2c9780756b63af695078c110b755876b09dfc Author: monk.liu Date: Tue May 26 15:01:54 2015 +0800 drm/amdgpu: sync fence of clear_invalids (v2) bo_va may un-initialized, fix it. Signed-off-by: monk.liu Reviewed-by: Christian König Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 6 ++++-- 3 files changed, 6 insertions(+), 4 deletions(-) commit 3d5a08c114585e5b9f890807b04d2730dafde5e1 Author: monk.liu Date: Tue May 26 10:22:41 2015 +0800 drm/amdgpu: max_pde_used usage should be under protect Need to take the lock when accessing this. Signed-off-by: monk.liu Reviewed-by: Christian König Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit ca95261325cfdff85eb2c9107198c714e266cb5b Author: monk.liu Date: Mon May 25 14:44:05 2015 +0800 drm/amdgpu: fix bug of vm_bo_map (v2) call reservation_object_reserve_shared before amdgpu_bo_fence Signed-off-by: monk.liu Reviewed-by: Christian König Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 4 ++++ 1 file changed, 4 insertions(+) commit 7e5a547f64af66fd906f266f0e8c9bde213d025c Author: Chunming Zhou Date: Fri Apr 24 17:37:30 2015 +0800 drm/amdgpu: implement the allocation range (v3) Pass a ttm_placement pointer to amdgpu_bo_create_restricted add min_offset to amdgpu_bo_pin_restricted. This makes it easier to allocate memory with address restrictions. With this patch we can also enable 2-ended allocation again. v2: fix rebase conflicts v3: memset placements before using Reviewed-by: Jammy Zhou Signed-off-by: Chunming Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu.h | 5 +- drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 176 +++++++++++++++++++--------- drivers/gpu/drm/amd/amdgpu/amdgpu_object.h | 9 +- drivers/gpu/drm/amd/amdgpu/dce_v10_0.c | 2 +- drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | 2 +- drivers/gpu/drm/amd/amdgpu/dce_v8_0.c | 2 +- 8 files changed, 136 insertions(+), 64 deletions(-) commit 5fc3aeeb9e553a20ce62544f7176c6c4aca52d71 Author: yanyang1 Date: Fri May 22 14:39:35 2015 -0400 drm/amdgpu: rename amdgpu_ip_funcs to amd_ip_funcs (v2) The structure is renamed and moved to amd_shared.h to make the component independent. This makes it easier to add new components in the future. v2: fix include path Reviewed-by: Jammy Zhou Signed-off-by: yanyang1 Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/Makefile | 3 +- drivers/gpu/drm/amd/amdgpu/amdgpu.h | 75 ++--------------- drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 50 +++++------ drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 24 +++--- drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c | 2 +- drivers/gpu/drm/amd/amdgpu/ci_dpm.c | 57 ++++++++----- drivers/gpu/drm/amd/amdgpu/cik.c | 130 +++++++++++++++-------------- drivers/gpu/drm/amd/amdgpu/cik.h | 2 +- drivers/gpu/drm/amd/amdgpu/cik_dpm.h | 4 +- drivers/gpu/drm/amd/amdgpu/cik_ih.c | 54 ++++++++---- drivers/gpu/drm/amd/amdgpu/cik_ih.h | 2 +- drivers/gpu/drm/amd/amdgpu/cik_sdma.c | 53 +++++++----- drivers/gpu/drm/amd/amdgpu/cik_sdma.h | 2 +- drivers/gpu/drm/amd/amdgpu/cz_dpm.c | 53 +++++++----- drivers/gpu/drm/amd/amdgpu/cz_ih.c | 53 ++++++++---- drivers/gpu/drm/amd/amdgpu/cz_ih.h | 2 +- drivers/gpu/drm/amd/amdgpu/dce_v10_0.c | 50 ++++++----- drivers/gpu/drm/amd/amdgpu/dce_v10_0.h | 2 +- drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | 50 ++++++----- drivers/gpu/drm/amd/amdgpu/dce_v11_0.h | 2 +- drivers/gpu/drm/amd/amdgpu/dce_v8_0.c | 50 ++++++----- drivers/gpu/drm/amd/amdgpu/dce_v8_0.h | 2 +- drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 57 ++++++++----- drivers/gpu/drm/amd/amdgpu/gfx_v7_0.h | 2 +- drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 51 +++++++---- drivers/gpu/drm/amd/amdgpu/gfx_v8_0.h | 2 +- drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c | 52 +++++++----- drivers/gpu/drm/amd/amdgpu/gmc_v7_0.h | 2 +- drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 51 ++++++----- drivers/gpu/drm/amd/amdgpu/gmc_v8_0.h | 2 +- drivers/gpu/drm/amd/amdgpu/iceland_dpm.c | 34 +++++--- drivers/gpu/drm/amd/amdgpu/iceland_ih.c | 55 +++++++----- drivers/gpu/drm/amd/amdgpu/iceland_ih.h | 2 +- drivers/gpu/drm/amd/amdgpu/kv_dpm.c | 89 +++++++++++--------- drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c | 51 ++++++----- drivers/gpu/drm/amd/amdgpu/sdma_v2_4.h | 2 +- drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 52 +++++++----- drivers/gpu/drm/amd/amdgpu/sdma_v3_0.h | 2 +- drivers/gpu/drm/amd/amdgpu/tonga_dpm.c | 35 +++++--- drivers/gpu/drm/amd/amdgpu/tonga_ih.c | 51 +++++++---- drivers/gpu/drm/amd/amdgpu/tonga_ih.h | 2 +- drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c | 53 ++++++++---- drivers/gpu/drm/amd/amdgpu/uvd_v4_2.h | 2 +- drivers/gpu/drm/amd/amdgpu/uvd_v5_0.c | 52 +++++++----- drivers/gpu/drm/amd/amdgpu/uvd_v5_0.h | 2 +- drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c | 52 +++++++----- drivers/gpu/drm/amd/amdgpu/uvd_v6_0.h | 2 +- drivers/gpu/drm/amd/amdgpu/vce_v2_0.c | 54 +++++++----- drivers/gpu/drm/amd/amdgpu/vce_v2_0.h | 2 +- drivers/gpu/drm/amd/amdgpu/vce_v3_0.c | 52 +++++++----- drivers/gpu/drm/amd/amdgpu/vce_v3_0.h | 2 +- drivers/gpu/drm/amd/amdgpu/vi.c | 96 +++++++++++---------- drivers/gpu/drm/amd/amdgpu/vi.h | 2 +- drivers/gpu/drm/amd/amdgpu/vi_dpm.h | 6 +- drivers/gpu/drm/amd/include/amd_shared.h | 81 ++++++++++++++++++ 55 files changed, 1067 insertions(+), 707 deletions(-) commit dcc357e63727b63995dd869f015a748c9235eb42 Author: Christian König Date: Tue May 19 16:08:02 2015 +0200 drm/amdgpu: drop allocation flag masks Not needed any more. Signed-off-by: Christian König Reviewed-by: Alex Deucher Reviewed-by: Monk Liu include/uapi/drm/amdgpu_drm.h | 8 -------- 1 file changed, 8 deletions(-) commit 9269a606866012c472e6dc614fd7b7c0eaa647a2 Author: Christian König Date: Fri May 22 10:55:47 2015 +0200 drm/amdgpu: drop AMDGPU_FENCE_SIGNALED_SEQ It's causing issues with VMID handling and comparing the fence value two times actually doesn't make handling faster. Port of radeon commit "d6d5c5b8364bcc4d52cddc68bcb0a330d2af20f3". Signed-off-by: Christian König Reviewed-by: Alex Deucher Reviewed-by: Monk Liu drivers/gpu/drm/amd/amdgpu/amdgpu.h | 3 --- drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 12 ------------ 2 files changed, 15 deletions(-) commit 5fb1941d0ce70d8ce56b12edcb1a1f2ba07629dd Author: Christian König Date: Thu May 21 17:03:46 2015 +0200 drm/amdgpu: port fault_reserve_notify changes from radeon Signed-off-by: Christian König Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 55 +++++++++++++++++++----------- 1 file changed, 35 insertions(+), 20 deletions(-) commit 564ea7900cffbe2eddb3bcfb09b700ad7942aef4 Author: Sonny Jiang Date: Tue May 12 16:13:35 2015 -0400 drm/amdgpu: enable uvd dpm and powergating Enable UVD dpm (dynamic power management) and powergating. UVD dpm dynamically scales the UVD clocks on demand. Powergating turns off the power to the block when it's not in use. Signed-off-by: Sonny Jiang Acked-by: Christian König Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/cz_dpm.c | 90 ++++++++++++++++++++++++++++++++++++- drivers/gpu/drm/amd/amdgpu/cz_dpm.h | 2 + drivers/gpu/drm/amd/amdgpu/vi.c | 2 +- 3 files changed, 91 insertions(+), 3 deletions(-) commit 5bbc553a1acce5d1792ba778273ffbea5af1695d Author: Leo Liu Date: Wed May 6 15:20:41 2015 -0400 drm/amdgpu: implement VCE two instances support VCE 3.0 has two indentical instances in the engine, they share the same registers name in differrent memory block distinguished by the grbm_gfx_index, we set to master instance after init, it will dispatch task to slave instance. These two instances will share the same firmware, but have their own stacks and heaps. v2: add mutex for using grbm_gfx_index Signed-off-by: Leo Liu Reviewed-by: Alex Deucher Reviewed-by: Christian König drivers/gpu/drm/amd/amdgpu/vce_v3_0.c | 141 +++++++++++++++++++++------------- 1 file changed, 87 insertions(+), 54 deletions(-) commit e982262214674ce4d4a24ec6088134f4c641930a Author: Leo Liu Date: Wed May 6 14:31:27 2015 -0400 drm/amdgpu: recalculate VCE firmware BO size Firmware required BO size changes in terms of ASIC family Signed-off-by: Leo Liu Reviewed-by: Alex Deucher Reviewed-by: Christian König drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 -- drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c | 5 +---- drivers/gpu/drm/amd/amdgpu/amdgpu_vce.h | 2 +- drivers/gpu/drm/amd/amdgpu/vce_v2_0.c | 13 +++++++++---- drivers/gpu/drm/amd/amdgpu/vce_v3_0.c | 13 +++++++++---- 5 files changed, 20 insertions(+), 15 deletions(-) commit 15a16ff6065b8d51e27ebe24c0393195ab817f27 Author: Alex Deucher Date: Thu May 21 02:24:48 2015 -0400 drm/amdgpu: remove unused TRACE_SYSTEM_STRING define Port of 77cb2fea1e5fc4b083dd967f231bbf6edd96150e to amdgpu. Reviewed-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h | 1 - 1 file changed, 1 deletion(-) commit fbd76d59efe061c89d4ba14eef3a2cac1e3056c2 Author: Marek Olšák Date: Thu May 14 23:48:26 2015 +0200 drm/amdgpu: rework tiling flags Signed-off-by: Marek Olšák Reviewed-by: Alex Deucher Acked-by: Christian König drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c | 3 +- drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 43 +------------- drivers/gpu/drm/amd/amdgpu/dce_v10_0.c | 92 ++++------------------------- drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | 93 ++++-------------------------- drivers/gpu/drm/amd/amdgpu/dce_v8_0.c | 91 ++++------------------------- include/uapi/drm/amdgpu_drm.h | 40 +++++++------ 6 files changed, 58 insertions(+), 304 deletions(-) commit 63ab1c2beefe36d49a19f9f715fefdc293546e39 Author: Marek Olšák Date: Thu May 14 23:03:57 2015 +0200 drm/amdgpu: don't set unused tiling flags Signed-off-by: Marek Olšák Reviewed-by: Alex Deucher Acked-by: Christian König drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) commit 9f7eb5367d0001536c361bd1400e14521f854ff1 Author: Christian König Date: Mon May 18 16:05:57 2015 +0200 drm/amdgpu: actually use the VM map parameters Signed-off-by: Christian König Reviewed-by: Jammy Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 0be52de91c5e275dff61f0ed2314d84c9d68b385 Author: Christian König Date: Mon May 18 14:37:27 2015 +0200 drm/amdgpu: validate amdgpu_vm_bo_map parameters Signed-off-by: Christian König Reviewed-by: Jammy Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 271c81256612b162a9ae0f8c0f0a055a7523cea5 Author: Christian König Date: Wed May 13 14:30:53 2015 +0200 drm/amdgpu: enforce AMDGPU_GEM_CREATE_NO_CPU_ACCESS Deny user and kernel mapping if we said we never want to do so. Signed-off-by: Christian König Reviewed-by: Jammy Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 3 ++- drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) commit 25a595e48261e8d44970b6a5cfafc283f9a9fbc5 Author: Christian König Date: Wed May 13 14:21:06 2015 +0200 drm/amdgpu: fix VM_CONTEXT*_PAGE_TABLE_END_ADDR handling Signed-off-by: Christian König Reviewed-by: Jammy Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c | 4 ++-- drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit 67ed0092328dbc5f88759be9a32a95b151583e1b Author: Alex Deucher Date: Mon May 18 18:15:07 2015 -0400 drm/amdgpu: retry dcpd fetch Retry the dpcd fetch several times. Some eDP panels fail several times before the fetch is successful. bug: https://bugs.freedesktop.org/show_bug.cgi?id=73530 Ported from radeon. Reviewed-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/atombios_dp.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) commit 7af93b506956cd3efbea3c8e79a9420ac8819a7e Author: Alex Deucher Date: Mon May 18 18:12:02 2015 -0400 drm/amdgpu: simplify DPCD debug output Use %*ph rather than walking the array. Reviewed-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/atombios_dp.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit dc5f428d6155ceb3b9045851fd94fd8abff61502 Author: Alex Deucher Date: Mon May 18 18:09:23 2015 -0400 drm/amdgpu: make some DP parameters const Ported from similar radeon patch. Reviewed-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/atombios_dp.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 9e14c65c5715b16bcbf5d5c64de2bb8a973a0afa Author: Alex Deucher Date: Fri May 15 11:52:18 2015 -0400 drm/amdgpu: take the mode_config mutex when handling hpds Since we may modify display state. Reviewed-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c | 2 ++ 1 file changed, 2 insertions(+) commit d94aed5a6c947b1fda346aff1fa316dacf4a1a5a Author: Marek Olšák Date: Tue May 5 21:13:49 2015 +0200 drm/amdgpu: add and implement the GPU reset status query Signed-off-by: Marek Olšák Reviewed-by: Christian König Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/amdgpu.h | 6 ++--- drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 36 +++++++++++++++++++----------- drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 1 + include/uapi/drm/amdgpu_drm.h | 11 ++++++++- 4 files changed, 37 insertions(+), 17 deletions(-) commit 1f8d962513c6d516b51a643d105fc1335f3214d0 Author: Alex Deucher Date: Tue May 12 13:10:05 2015 -0400 drm/amdgpu: add some new tonga pci ids Reviewed-by: Christian König Reviewed-by: Jammy Zhou Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 2 ++ 1 file changed, 2 insertions(+) commit fb4f173734e010f83ce63e9fc33270648bc8d4e9 Author: Alex Deucher Date: Tue May 12 13:06:45 2015 -0400 drm/amdgpu: add new bonaire pci id Reviewed-by: Christian König Reviewed-by: Jammy Zhou Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 1 + 1 file changed, 1 insertion(+) commit 86c2b79062be6a328014d90d1e4ef6a0afae02ad Author: Jammy Zhou Date: Wed May 13 22:52:42 2015 +0800 drm/amdgpu: rewording some left radeons Signed-off-by: Jammy Zhou Reviewed-by: Christian König drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit c65444fe054fb69e95444ddd545adf43f682bb41 Author: Jammy Zhou Date: Wed May 13 22:49:04 2015 +0800 drm/amdgpu: switch to amdgpu folder for firmware files v2 v2: keep using radeon folder for CIK Signed-off-by: Jammy Zhou Reviewed-by: Christian König drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c | 4 +-- drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c | 4 +-- drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 52 ++++++++++++++++---------------- drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 6 ++-- drivers/gpu/drm/amd/amdgpu/iceland_dpm.c | 4 +-- drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c | 8 ++--- drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 12 ++++---- drivers/gpu/drm/amd/amdgpu/tonga_dpm.c | 4 +-- 8 files changed, 47 insertions(+), 47 deletions(-) commit 4b095304ea7f73c178cd906df37185c0b9ad9a60 Author: Jammy Zhou Date: Tue May 12 23:17:19 2015 +0800 drm/amdgpu: do necessary NULL check Signed-off-by: Jammy Zhou Reviewed-by: Christian König drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 02b70c8c9f0351f5ddf70716b9049f3fe50d62e7 Author: Jammy Zhou Date: Tue May 12 22:46:45 2015 +0800 drm/amdgpu: expose the max virtual address Signed-off-by: Jammy Zhou Reviewed-by: Christian König drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 1 + include/uapi/drm/amdgpu_drm.h | 2 ++ 2 files changed, 3 insertions(+) commit 3cb485f34049b7f3a00f6f73d2325e0858f64ddb Author: Christian König Date: Mon May 11 15:34:59 2015 +0200 drm/amdgpu: fix context switch Properly protect the state and also handle submission failures. Signed-off-by: Christian König Reviewed-by: Alex Deucher Reviewed-by: Jammy Zhou Reviewed-by: Monk Liu drivers/gpu/drm/amd/amdgpu/amdgpu.h | 7 +++---- drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 16 ++++++++-------- drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 8 +++++++- drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 8 ++++---- drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 8 ++++---- 5 files changed, 26 insertions(+), 21 deletions(-) commit d919ad49ac04e1e417ea511d61455786a0f0fdb7 Author: Christian König Date: Mon May 11 14:32:17 2015 +0200 drm/amdgpu: fix dereference before check Signed-off-by: Christian König Reviewed-by: Alex Deucher Reviewed-by: Jammy Zhou Reviewed-by: Monk Liu drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit d2edb07b10fce5127a60671b55ca53921c212bc3 Author: Christian König Date: Mon May 11 14:10:34 2015 +0200 drm/amdgpu: cleanup HDP flush handling Signed-off-by: Christian König Reviewed-by: Alex Deucher Reviewed-by: Jammy Zhou Reviewed-by: Monk Liu drivers/gpu/drm/amd/amdgpu/amdgpu.h | 3 ++- drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 6 +++--- drivers/gpu/drm/amd/amdgpu/cik_sdma.c | 15 +++------------ drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 11 +++-------- drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 9 ++------- drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c | 13 ++----------- drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 15 +++------------ 7 files changed, 18 insertions(+), 54 deletions(-) commit 66782cec7ad8f48c09d96ee59b713f694265cfa1 Author: Christian König Date: Mon May 11 13:52:09 2015 +0200 drm/amdgpu: always emit GDS switch Otherwise a process can access the GDS data of another process. Signed-off-by: Christian König Reviewed-by: Alex Deucher Reviewed-by: Jammy Zhou Reviewed-by: Monk Liu drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit aa2bdb2476206c7de4473850039daa705230c27b Author: Jammy Zhou Date: Mon May 11 23:49:34 2015 +0800 drm/amdgpu: add CE preamble flag v3 The CE preamble IB can be dropped for the same context v2: use the flags directly v3: remove 'CE' for potential preamble usage by other rings Signed-off-by: Jammy Zhou Reviewed-by: Christian König drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 7 +++++++ drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 7 +++++++ include/uapi/drm/amdgpu_drm.h | 3 +++ 3 files changed, 17 insertions(+) commit de807f818b953f11b9a132a2d1997711a79bbfa3 Author: Jammy Zhou Date: Mon May 11 23:41:41 2015 +0800 drm/amdgpu: add flags for amdgpu_ib structure Signed-off-by: Jammy Zhou Reviewed-by: Christian König drivers/gpu/drm/amd/amdgpu/amdgpu.h | 3 +-- drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 6 ++---- drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 4 ++-- drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 2 +- drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 2 +- 5 files changed, 7 insertions(+), 10 deletions(-) commit 72efa7ebdea084b96f25021d0ba9c29074c2906f Author: Jammy Zhou Date: Fri May 8 22:18:47 2015 +0800 drm/amdgpu: check context id for context switching (v2) check the filp is not robust, and sometimes different contexts may have same filp value. v2: check both filp and ctx_id Signed-off-by: Jammy Zhou Reviewed-by: Christian König drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 + drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) commit 66b3cf2ab38f47db2d07fe24a00972fbf822cd74 Author: Jammy Zhou Date: Fri May 8 17:29:40 2015 +0800 drm/amdgpu: add ctx_id to the WAIT_CS IOCTL (v4) It is required to support fence per context. v2: add amdgpu_ctx_get/put v3: improve get/put v4: squash hlock fix Signed-off-by: Jammy Zhou Reviewed-by: Christian König 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 | 30 ++++++++++++++++++++++++++++++ include/uapi/drm/amdgpu_drm.h | 2 +- 4 files changed, 39 insertions(+), 1 deletion(-) commit 74a5d1656e165d5457be64b4d78d3259c2946e93 Author: Jack Xiao Date: Fri May 8 14:46:49 2015 +0800 drm/amdgpu: allow unaligned memory access (v2) Set up the CP and SDMA for proper unaligned memory access. Required for OpenCL 2.x v2: udpate commit message Signed-off-by: Jack Xiao Reviewed-by: Monk Liu Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/cik_sdma.c | 6 +++++- drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 6 +++++- drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 4 ++++ drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c | 5 ++++- drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 5 ++++- 5 files changed, 22 insertions(+), 4 deletions(-) commit 0147ee0f5921af606ac0f822107b69b53dd29358 Author: Marek Olšák Date: Tue May 5 20:52:00 2015 +0200 drm/amdgpu: make the CTX ioctl thread-safe The existing locks were protecting the list, but not the elements. v2: rename hlock to lock Signed-off-by: Marek Olšák Reviewed-by: Christian König Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 20 ++++++++++---------- drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 2 +- 3 files changed, 12 insertions(+), 12 deletions(-) commit f11358daa93a8ae9fdee5cfe6ef7a0ed0027edee Author: Marek Olšák Date: Tue May 5 00:56:45 2015 +0200 drm/amdgpu: remove unsafe context releasing If ctx was released between put and get, then "get" would crash. Signed-off-by: Marek Olšák Reviewed-by: Christian König Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) commit a961ea7349d08d5962b6a619f2c2cca670da41ed Author: Christian König Date: Mon May 4 13:20:36 2015 +0200 drm/amdgpu: fix userptr lockup Signed-off-by: Christian König Reviewed-by: Jammy Zhou Reviewed-by: Monk Liu drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c | 3 +++ 1 file changed, 3 insertions(+) commit dd08fae1e9b2466380d9447a0643c182cd142149 Author: monk.liu Date: Thu May 7 14:19:18 2015 -0400 drm/amdgpu: fix userptr BO unpin bug (v2) sg could point to array of contigiouse page*, only free page could lead to memory leak. v2: use iterator Signed-off-by: monk.liu Reviewed-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit 886712881da15b7f455c43a4ce4121f20035c0fa Author: Jammy Zhou Date: Wed May 6 18:44:29 2015 +0800 drm/amdgpu: remove AMDGPU_GEM_CREATE_CPU_GTT_UC This flag isn't used by user mode drivers, remove it to avoid confusion. And rename GTT_WC to GTT_USWC to make it clear. Signed-off-by: Jammy Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 10 ++-------- include/uapi/drm/amdgpu_drm.h | 7 ++----- 2 files changed, 4 insertions(+), 13 deletions(-) commit 46651cc5dbee35dd2f25a02de328d3e7310ce64b Author: Sonny Jiang Date: Thu Apr 30 17:12:14 2015 -0400 drm/amdgpu fix amdgpu.dpm=0 (v2) Fix crash when disabling dpm. v2: agd5f: fix coding style, cleanup commit message Signed-off-by: Sonny Jiang Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/cz_dpm.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) commit c92b90ccc20bb55a3a0bb8fcc55c18d0710f8cb7 Author: Alex Deucher Date: Thu Apr 30 11:47:03 2015 -0400 drm/amdgpu: memset gds_info struct in info ioctl Avoids possibility that info may leak via the uninitialized _pad element. Noticed-by: Dan Carpenter Reviewed-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 1 + 1 file changed, 1 insertion(+) commit 1045745742fc12c1320ccce849ca2810c6563f8d Author: Alex Deucher Date: Thu Apr 30 11:42:54 2015 -0400 drm/amdgpu: fix error handling in cz_dpm_hw_fini/cz_dpm_suspend Need to unlock the mutex on error. Noticed-by: Dan Carpenter Reviewed-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/cz_dpm.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit decee87a88c05980ebc545c19d4ff252052ddc3e Author: monk.liu Date: Mon Apr 27 10:38:16 2015 +0800 drm/amdgpu: let bo_list handler start from 1 this could prevent mis-understanding, because libdrm side will consider no bo_list created if handleis zero Signed-off-by: monk.liu Reviewed-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 840d51445f1527bda37b5d48a203ecff7988ad2b Author: monk.liu Date: Mon Apr 27 15:19:20 2015 +0800 drm/amdgpu: fix bug occurs when bo_list is NULL Still need to handle ibs BO and validate them even bo_list is NULL Signed-off-by: Monk.Liu Reviewed-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit 7ab7e8a4096d2af80613113ae4bea497b4f0baf5 Author: Jack Xiao Date: Mon Apr 27 13:45:40 2015 +0800 drm/amdgpu: fix error check issue in amdgpu_mn_invalidate_range_start Signed-off-by: Jack Xiao Reviewed-by: Monk Liu Reviewed-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 2d8bd23a057234ce8e540a3a08f4e67abcc551a8 Author: Alex Deucher Date: Wed Apr 22 14:00:49 2015 -0400 drm/amdgpu: drop ttm two ended allocation amdgpu_bo_create() calls amdgpu_ttm_placement_from_domain() before ttm_bo_init() is called. amdgpu_ttm_placement_from_domain() uses the ttm bo size to determine when to select top down allocation but since the ttm bo is not initialized yet the check is always false. It only took affect when buffers were validated later. It also seemed to regress suspend and resume on some systems possibly due to it not taking affect in amdgpu_bo_create(). amdgpu_bo_create() and amdgpu_ttm_placement_from_domain() need to be reworked substantially for this to be optimally effective. Re-enable it at that point. Ported from radeon commit: a239118a24b3bf9089751068e431dfb63dc4168b Signed-off-by: Alex Deucher Reviewed-by: Michel Dänzer Reviewed-by: Christian König drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 6 ------ 1 file changed, 6 deletions(-) commit 1256a8b89eeaf444bd08bf4b5ed4c71a397ccdca Author: Alex Deucher Date: Mon Apr 20 17:37:54 2015 -0400 drm/amdgpu: add VI pci ids Acked-by: Christian König Acked-by: Jammy Zhou Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit 89330c391b407f9b94baf2f625de5e71e69071b0 Author: Alex Deucher Date: Mon Apr 20 17:36:52 2015 -0400 drm/amdgpu: add CIK pci ids Acked-by: Christian König Acked-by: Jammy Zhou Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 83 +++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) commit aaa36a976bbb9b02a54c087ff390c0bad1d18e3e Author: Alex Deucher Date: Mon Apr 20 17:31:14 2015 -0400 drm/amdgpu: Add initial VI support This adds initial support for VI asics. This includes Iceland, Tonga, and Carrizo. Our inital focus as been Carrizo, so there are still gaps in support for Tonga and Iceland, notably power management. Acked-by: Christian König Acked-by: Jammy Zhou Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/Makefile | 38 +- drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 15 +- drivers/gpu/drm/amd/amdgpu/clearstate_vi.h | 944 +++++ drivers/gpu/drm/amd/amdgpu/cz_dpm.c | 1712 ++++++++ drivers/gpu/drm/amd/amdgpu/cz_dpm.h | 235 ++ drivers/gpu/drm/amd/amdgpu/cz_ih.c | 435 ++ drivers/gpu/drm/amd/amdgpu/cz_ih.h | 29 + drivers/gpu/drm/amd/amdgpu/cz_ppsmc.h | 185 + drivers/gpu/drm/amd/amdgpu/cz_smc.c | 962 +++++ drivers/gpu/drm/amd/amdgpu/cz_smumgr.h | 94 + drivers/gpu/drm/amd/amdgpu/dce_v10_0.c | 3871 ++++++++++++++++++ drivers/gpu/drm/amd/amdgpu/dce_v10_0.h | 29 + drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | 3871 ++++++++++++++++++ drivers/gpu/drm/amd/amdgpu/dce_v11_0.h | 29 + drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 4286 ++++++++++++++++++++ drivers/gpu/drm/amd/amdgpu/gfx_v8_0.h | 33 + drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 1271 ++++++ drivers/gpu/drm/amd/amdgpu/gmc_v8_0.h | 36 + drivers/gpu/drm/amd/amdgpu/iceland_dpm.c | 172 + drivers/gpu/drm/amd/amdgpu/iceland_ih.c | 435 ++ drivers/gpu/drm/amd/amdgpu/iceland_ih.h | 29 + drivers/gpu/drm/amd/amdgpu/iceland_sdma_pkt_open.h | 2167 ++++++++++ drivers/gpu/drm/amd/amdgpu/iceland_smc.c | 675 +++ drivers/gpu/drm/amd/amdgpu/iceland_smumgr.h | 41 + drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c | 1447 +++++++ drivers/gpu/drm/amd/amdgpu/sdma_v2_4.h | 29 + drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 1514 +++++++ drivers/gpu/drm/amd/amdgpu/sdma_v3_0.h | 29 + drivers/gpu/drm/amd/amdgpu/smu8.h | 72 + drivers/gpu/drm/amd/amdgpu/smu8_fusion.h | 127 + drivers/gpu/drm/amd/amdgpu/smu_ucode_xfer_cz.h | 147 + drivers/gpu/drm/amd/amdgpu/smu_ucode_xfer_vi.h | 100 + drivers/gpu/drm/amd/amdgpu/tonga_dpm.c | 172 + drivers/gpu/drm/amd/amdgpu/tonga_ih.c | 458 +++ drivers/gpu/drm/amd/amdgpu/tonga_ih.h | 29 + drivers/gpu/drm/amd/amdgpu/tonga_ppsmc.h | 198 + drivers/gpu/drm/amd/amdgpu/tonga_sdma_pkt_open.h | 2240 ++++++++++ drivers/gpu/drm/amd/amdgpu/tonga_smc.c | 852 ++++ drivers/gpu/drm/amd/amdgpu/tonga_smumgr.h | 42 + drivers/gpu/drm/amd/amdgpu/uvd_v5_0.c | 830 ++++ drivers/gpu/drm/amd/amdgpu/uvd_v5_0.h | 29 + drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c | 810 ++++ drivers/gpu/drm/amd/amdgpu/uvd_v6_0.h | 29 + drivers/gpu/drm/amd/amdgpu/vce_v3_0.c | 521 +++ drivers/gpu/drm/amd/amdgpu/vce_v3_0.h | 29 + drivers/gpu/drm/amd/amdgpu/vi.c | 1373 +++++++ drivers/gpu/drm/amd/amdgpu/vi.h | 33 + drivers/gpu/drm/amd/amdgpu/vi_dpm.h | 36 + drivers/gpu/drm/amd/amdgpu/vid.h | 363 ++ 49 files changed, 33097 insertions(+), 6 deletions(-) commit a2e73f56fa6282481927ec43aa9362c03c2e2104 Author: Alex Deucher Date: Mon Apr 20 17:09:27 2015 -0400 drm/amdgpu: Add support for CIK parts This patch adds support for CIK parts. These parts are also supported by radeon which is the preferred option, so there is a config option to enable support for CIK parts in amdgpu for testing. Acked-by: Christian König Acked-by: Jammy Zhou Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/Makefile | 3 + drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 19 + drivers/gpu/drm/amd/amdgpu/ci_dpm.c | 6684 ++++++++++++++++++++++++++++ drivers/gpu/drm/amd/amdgpu/ci_dpm.h | 348 ++ drivers/gpu/drm/amd/amdgpu/ci_smc.c | 279 ++ drivers/gpu/drm/amd/amdgpu/cik.c | 2505 +++++++++++ drivers/gpu/drm/amd/amdgpu/cik.h | 33 + drivers/gpu/drm/amd/amdgpu/cik_dpm.h | 30 + drivers/gpu/drm/amd/amdgpu/cik_ih.c | 453 ++ drivers/gpu/drm/amd/amdgpu/cik_ih.h | 29 + drivers/gpu/drm/amd/amdgpu/cik_sdma.c | 1422 ++++++ drivers/gpu/drm/amd/amdgpu/cik_sdma.h | 29 + drivers/gpu/drm/amd/amdgpu/clearstate_ci.h | 944 ++++ drivers/gpu/drm/amd/amdgpu/dce_v8_0.c | 3830 ++++++++++++++++ drivers/gpu/drm/amd/amdgpu/dce_v8_0.h | 29 + drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 5635 +++++++++++++++++++++++ drivers/gpu/drm/amd/amdgpu/gfx_v7_0.h | 37 + drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c | 1307 ++++++ drivers/gpu/drm/amd/amdgpu/gmc_v7_0.h | 36 + drivers/gpu/drm/amd/amdgpu/kv_dpm.c | 3336 ++++++++++++++ drivers/gpu/drm/amd/amdgpu/kv_dpm.h | 229 + drivers/gpu/drm/amd/amdgpu/kv_smc.c | 219 + drivers/gpu/drm/amd/amdgpu/smu7.h | 170 + drivers/gpu/drm/amd/amdgpu/smu7_discrete.h | 514 +++ drivers/gpu/drm/amd/amdgpu/smu7_fusion.h | 300 ++ drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c | 888 ++++ drivers/gpu/drm/amd/amdgpu/uvd_v4_2.h | 29 + drivers/gpu/drm/amd/amdgpu/vce_v2_0.c | 642 +++ drivers/gpu/drm/amd/amdgpu/vce_v2_0.h | 29 + 29 files changed, 30008 insertions(+) commit 18da4340e651dd41d698fc54084b9139b614539b Author: Alex Deucher Date: Fri Apr 17 10:50:02 2015 -0400 drm/amdgpu: Do not directly dereference pointers to BIOS area. Use readb() and memcpy_fromio() accessors instead. Ported from radeon commit: f2c9e560b406f2f6b14b345c7da33467dee9cdf2 Acked-by: Christian König Acked-by: Jammy Zhou Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_bios.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit 17b10f941f939da459072a066c6e5e9af9dda610 Author: Alex Deucher Date: Thu Apr 16 15:48:09 2015 -0400 drm/amdgpu: fix const warnings in amdgpu_connectors.c Acked-by: Christian König Acked-by: Jammy Zhou Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit d38ceaf99ed015f2a0b9af3499791bd3a3daae21 Author: Alex Deucher Date: Mon Apr 20 16:55:21 2015 -0400 drm/amdgpu: add core driver (v4) This adds the non-asic specific core driver code. v2: remove extra kconfig option v3: implement minor fixes from Fengguang Wu v4: fix cast in amdgpu_ucode.c Acked-by: Christian König Acked-by: Jammy Zhou Signed-off-by: Alex Deucher drivers/gpu/drm/Kconfig | 21 + drivers/gpu/drm/Makefile | 1 + drivers/gpu/drm/amd/amdgpu/Kconfig | 17 + drivers/gpu/drm/amd/amdgpu/Makefile | 49 + drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c | 768 ++++++++ drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.h | 445 +++++ drivers/gpu/drm/amd/amdgpu/amdgpu_afmt.c | 105 ++ drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c | 1598 +++++++++++++++++ drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.h | 206 +++ drivers/gpu/drm/amd/amdgpu/amdgpu_atpx_handler.c | 572 ++++++ drivers/gpu/drm/amd/amdgpu/amdgpu_benchmark.c | 221 +++ drivers/gpu/drm/amd/amdgpu/amdgpu_bios.c | 359 ++++ drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c | 268 +++ drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c | 1907 ++++++++++++++++++++ drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.h | 42 + drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 825 +++++++++ drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 161 ++ drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 1971 +++++++++++++++++++++ drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 832 +++++++++ drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.c | 955 ++++++++++ drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.h | 85 + drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 439 +++++ drivers/gpu/drm/amd/amdgpu/amdgpu_drv.h | 48 + drivers/gpu/drm/amd/amdgpu/amdgpu_encoders.c | 245 +++ drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c | 432 +++++ drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 1139 ++++++++++++ drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c | 371 ++++ drivers/gpu/drm/amd/amdgpu/amdgpu_gds.h | 72 + drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 735 ++++++++ drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c | 72 + drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.h | 30 + drivers/gpu/drm/amd/amdgpu/amdgpu_i2c.c | 395 +++++ drivers/gpu/drm/amd/amdgpu/amdgpu_i2c.h | 44 + drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 345 ++++ drivers/gpu/drm/amd/amdgpu/amdgpu_ih.c | 216 +++ drivers/gpu/drm/amd/amdgpu/amdgpu_ih.h | 62 + drivers/gpu/drm/amd/amdgpu/amdgpu_ioc32.c | 47 + drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c | 456 +++++ drivers/gpu/drm/amd/amdgpu/amdgpu_irq.h | 92 + drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 674 +++++++ drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c | 319 ++++ drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h | 586 ++++++ drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 646 +++++++ drivers/gpu/drm/amd/amdgpu/amdgpu_object.h | 196 ++ drivers/gpu/drm/amd/amdgpu/amdgpu_pll.c | 350 ++++ drivers/gpu/drm/amd/amdgpu/amdgpu_pll.h | 38 + drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c | 801 +++++++++ drivers/gpu/drm/amd/amdgpu/amdgpu_pm.h | 35 + drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c | 125 ++ drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c | 561 ++++++ drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c | 419 +++++ drivers/gpu/drm/amd/amdgpu/amdgpu_semaphore.c | 102 ++ drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c | 231 +++ drivers/gpu/drm/amd/amdgpu/amdgpu_test.c | 552 ++++++ drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h | 209 +++ drivers/gpu/drm/amd/amdgpu/amdgpu_trace_points.c | 9 + drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 1249 +++++++++++++ drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c | 317 ++++ drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.h | 176 ++ drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c | 976 ++++++++++ drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.h | 39 + drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c | 727 ++++++++ drivers/gpu/drm/amd/amdgpu/amdgpu_vce.h | 47 + drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 1248 +++++++++++++ drivers/gpu/drm/amd/amdgpu/atom-bits.h | 48 + drivers/gpu/drm/amd/amdgpu/atom-names.h | 100 ++ drivers/gpu/drm/amd/amdgpu/atom-types.h | 42 + drivers/gpu/drm/amd/amdgpu/atom.c | 1408 +++++++++++++++ drivers/gpu/drm/amd/amdgpu/atom.h | 159 ++ drivers/gpu/drm/amd/amdgpu/atombios_crtc.c | 807 +++++++++ drivers/gpu/drm/amd/amdgpu/atombios_crtc.h | 58 + drivers/gpu/drm/amd/amdgpu/atombios_dp.c | 774 ++++++++ drivers/gpu/drm/amd/amdgpu/atombios_dp.h | 42 + drivers/gpu/drm/amd/amdgpu/atombios_encoders.c | 2066 ++++++++++++++++++++++ drivers/gpu/drm/amd/amdgpu/atombios_encoders.h | 73 + drivers/gpu/drm/amd/amdgpu/atombios_i2c.c | 158 ++ drivers/gpu/drm/amd/amdgpu/atombios_i2c.h | 31 + drivers/gpu/drm/amd/amdgpu/cikd.h | 550 ++++++ 78 files changed, 33596 insertions(+) commit 97b2e202fba05b87d720318a6500a337100dab4d Author: Alex Deucher Date: Mon Apr 20 16:51:00 2015 -0400 drm/amdgpu: add amdgpu.h (v2) This is the main header file for amdgpu. v2: remove stable comments Acked-by: Christian König Acked-by: Jammy Zhou Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2387 +++++++++++++++++++++++++++++++++++ 1 file changed, 2387 insertions(+) commit 8a94f39580e4f3c8df82f3e88e9ef1c35d607501 Author: Alex Deucher Date: Mon Apr 20 16:49:21 2015 -0400 drm/amdgpu: add amdgpu_family.h This header defines asic families and attributes. Acked-by: Christian König Acked-by: Jammy Zhou Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_family.h | 62 ++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) commit b111f7e4d27b48164782d4d2f55634cb05dd0c7c Author: Alex Deucher Date: Mon Apr 20 16:48:06 2015 -0400 drm/amdgpu: add ppsmc.h This header provides the smc message interface for the driver. Acked-by: Christian König Acked-by: Jammy Zhou Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/ppsmc.h | 196 +++++++++++++++++++++++++++++++++++++ 1 file changed, 196 insertions(+) commit bd098eb0ee07790a2379aab4d2124f95773d8192 Author: Alex Deucher Date: Mon Apr 20 16:46:13 2015 -0400 drm/amdgpu: add clearstate_defs.h This header provides for format for the GCA blocks clear state (i.e., default state). Each GCA version has a specific clear state. Acked-by: Christian König Acked-by: Jammy Zhou Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/clearstate_defs.h | 44 ++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) commit a02860aa2b2d082ad133067eaea5f33c4ca465e1 Author: Alex Deucher Date: Mon Apr 20 16:44:53 2015 -0400 drm/amdgpu: add atombios headers These headers define the atombios table structure and driver interface. Acked-by: Christian König Acked-by: Jammy Zhou Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/ObjectID.h | 736 +++ drivers/gpu/drm/amd/amdgpu/atombios.h | 8555 +++++++++++++++++++++++++++++++++ drivers/gpu/drm/amd/amdgpu/pptable.h | 698 +++ 3 files changed, 9989 insertions(+) commit 81629cba1f12683f2a312e6fb41a3aa662f99f89 Author: Alex Deucher Date: Mon Apr 20 16:42:01 2015 -0400 drm/amdgpu: add amdgpu uapi header (v4) This header defines the ioctl interface to the driver. v2: remove stale tiling defines v3: add appropriate padding v4: remove executable bits on header Acked-by: Christian König Acked-by: Jammy Zhou Signed-off-by: Alex Deucher include/uapi/drm/amdgpu_drm.h | 590 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 590 insertions(+) commit c481a6802e156a3666f1820674ed0c0828787bfa Author: Alex Deucher Date: Thu Apr 16 15:36:06 2015 -0400 drm/amdgpu: add VCE 3.0 register headers These are register headers for the VCE (Video Codec Engine) block on the GPU. Acked-by: Christian König Acked-by: Jammy Zhou Signed-off-by: Alex Deucher .../gpu/drm/amd/include/asic_reg/vce/vce_3_0_d.h | 73 +++++++++++++ .../drm/amd/include/asic_reg/vce/vce_3_0_sh_mask.h | 120 +++++++++++++++++++++ 2 files changed, 193 insertions(+) commit 683595a6f3c32d86952b57495bdecab370606b09 Author: Alex Deucher Date: Thu Apr 16 15:35:39 2015 -0400 drm/amdgpu: add VCE 2.0 register headers These are register headers for the VCE (Video Codec Engine) block on the GPU. Acked-by: Christian König Acked-by: Jammy Zhou Signed-off-by: Alex Deucher .../gpu/drm/amd/include/asic_reg/vce/vce_2_0_d.h | 68 ++++++++++++++ .../drm/amd/include/asic_reg/vce/vce_2_0_sh_mask.h | 104 +++++++++++++++++++++ 2 files changed, 172 insertions(+) commit 3b1e08cb29565d30d3bb87b26fefb126c1e00d89 Author: Alex Deucher Date: Thu Apr 16 15:34:40 2015 -0400 drm/amdgpu: add UVD 6.0 register headers These are register headers for the UVD (Universal Video Decoder) block on the GPU. Acked-by: Christian König Acked-by: Jammy Zhou Signed-off-by: Alex Deucher .../gpu/drm/amd/include/asic_reg/uvd/uvd_6_0_d.h | 115 +++ .../drm/amd/include/asic_reg/uvd/uvd_6_0_enum.h | 1081 ++++++++++++++++++++ .../drm/amd/include/asic_reg/uvd/uvd_6_0_sh_mask.h | 1034 +++++++++++++++++++ 3 files changed, 2230 insertions(+) commit 7aa27c37739c1bea219b744b351c3a74f6eb6674 Author: Alex Deucher Date: Thu Apr 16 15:34:14 2015 -0400 drm/amdgpu: add UVD 5.0 register headers These are register headers for the UVD (Universal Video Decoder) block on the GPU. Acked-by: Christian König Acked-by: Jammy Zhou Signed-off-by: Alex Deucher .../gpu/drm/amd/include/asic_reg/uvd/uvd_5_0_d.h | 114 ++ .../drm/amd/include/asic_reg/uvd/uvd_5_0_enum.h | 1211 ++++++++++++++++++++ .../drm/amd/include/asic_reg/uvd/uvd_5_0_sh_mask.h | 1046 +++++++++++++++++ 3 files changed, 2371 insertions(+) commit 8630f839e0d0c439098b084d8867b82e3aa6084a Author: Alex Deucher Date: Thu Apr 16 15:33:44 2015 -0400 drm/amdgpu: add UVD 4.2 register headers These are register headers for the UVD (Universal Video Decoder) block on the GPU. Acked-by: Christian König Acked-by: Jammy Zhou Signed-off-by: Alex Deucher .../gpu/drm/amd/include/asic_reg/uvd/uvd_4_2_d.h | 95 +++ .../drm/amd/include/asic_reg/uvd/uvd_4_2_sh_mask.h | 800 +++++++++++++++++++++ 2 files changed, 895 insertions(+) commit 47e6898750169db73219f77fbe467ddacd5aabda Author: Alex Deucher Date: Thu Apr 16 15:32:09 2015 -0400 drm/amdgpu: add SMU 8.0 register headers These are register headers for the SMU (System Management Unit) block on the GPU. Acked-by: Christian König Acked-by: Jammy Zhou Signed-off-by: Alex Deucher .../gpu/drm/amd/include/asic_reg/smu/smu_8_0_d.h | 671 +++++ .../drm/amd/include/asic_reg/smu/smu_8_0_enum.h | 1072 +++++++ .../drm/amd/include/asic_reg/smu/smu_8_0_sh_mask.h | 2964 ++++++++++++++++++++ 3 files changed, 4707 insertions(+) commit bc136e1329f65ad7cd33fdfdb182e72233b4dcb8 Author: Alex Deucher Date: Thu Apr 16 15:31:26 2015 -0400 drm/amdgpu: add SMU 7.1.2 register headers These are register headers for the SMU (System Management Unit) block on the GPU. Acked-by: Christian König Acked-by: Jammy Zhou Signed-off-by: Alex Deucher .../gpu/drm/amd/include/asic_reg/smu/smu_7_1_2_d.h | 1273 +++++ .../drm/amd/include/asic_reg/smu/smu_7_1_2_enum.h | 1246 +++++ .../amd/include/asic_reg/smu/smu_7_1_2_sh_mask.h | 5834 ++++++++++++++++++++ 3 files changed, 8353 insertions(+) commit c4712a10e7bbf109fa3d2dcbfea28e8df3793183 Author: Alex Deucher Date: Thu Apr 16 15:30:46 2015 -0400 drm/amdgpu: add SMU 7.1.1 register headers These are register headers for the SMU (System Management Unit) block on the GPU. Acked-by: Christian König Acked-by: Jammy Zhou Signed-off-by: Alex Deucher .../gpu/drm/amd/include/asic_reg/smu/smu_7_1_1_d.h | 1123 +++++ .../drm/amd/include/asic_reg/smu/smu_7_1_1_enum.h | 1205 +++++ .../amd/include/asic_reg/smu/smu_7_1_1_sh_mask.h | 4864 ++++++++++++++++++++ 3 files changed, 7192 insertions(+) commit 90593ac0dad13e0ff20426a9389836641a54fc98 Author: Alex Deucher Date: Thu Apr 16 15:30:14 2015 -0400 drm/amdgpu: add SMU 7.1.0 register headers These are register headers for the SMU (System Management Unit) block on the GPU. Acked-by: Christian König Acked-by: Jammy Zhou Signed-off-by: Alex Deucher .../gpu/drm/amd/include/asic_reg/smu/smu_7_1_0_d.h | 1344 +++++ .../drm/amd/include/asic_reg/smu/smu_7_1_0_enum.h | 1191 +++++ .../amd/include/asic_reg/smu/smu_7_1_0_sh_mask.h | 5648 ++++++++++++++++++++ 3 files changed, 8183 insertions(+) commit a4efaabae5aa7d3bd17b97fdd5084b31c7af84f5 Author: Alex Deucher Date: Thu Apr 16 15:29:30 2015 -0400 drm/amdgpu: add SMU 7.0.1 register headers These are register headers for the SMU (System Management Unit) block on the GPU. Acked-by: Christian König Acked-by: Jammy Zhou Signed-off-by: Alex Deucher .../gpu/drm/amd/include/asic_reg/smu/smu_7_0_1_d.h | 1314 +++++ .../amd/include/asic_reg/smu/smu_7_0_1_sh_mask.h | 5456 ++++++++++++++++++++ 2 files changed, 6770 insertions(+) commit 9b289c2610c8d0e595c19d4dca318bb43b891841 Author: Alex Deucher Date: Thu Apr 16 15:28:58 2015 -0400 drm/amdgpu: add SMU 7.0.0 register headers These are register headers for the SMU (System Management Unit) block on the GPU. Acked-by: Christian König Acked-by: Jammy Zhou Signed-off-by: Alex Deucher .../gpu/drm/amd/include/asic_reg/smu/smu_7_0_0_d.h | 741 ++++ .../amd/include/asic_reg/smu/smu_7_0_0_sh_mask.h | 3842 ++++++++++++++++++++ 2 files changed, 4583 insertions(+) commit a1ef4a8aa1498156da51a8b46a9a2477aac0fb01 Author: Alex Deucher Date: Thu Apr 16 15:27:02 2015 -0400 drm/amdgpu: add OSS 3.0.1 register headers These are register headers for the OSS (OS Services) block on the GPU. Acked-by: Christian König Acked-by: Jammy Zhou Signed-off-by: Alex Deucher .../gpu/drm/amd/include/asic_reg/oss/oss_3_0_1_d.h | 593 ++++ .../drm/amd/include/asic_reg/oss/oss_3_0_1_enum.h | 1464 ++++++++ .../amd/include/asic_reg/oss/oss_3_0_1_sh_mask.h | 3558 ++++++++++++++++++++ 3 files changed, 5615 insertions(+) commit 6d5506b6174247e69273a68115bf9711531dacdb Author: Alex Deucher Date: Thu Apr 16 15:27:33 2015 -0400 drm/amdgpu: add OSS 3.0 register headers These are register headers for the OSS (OS Services) block on the GPU. Acked-by: Christian König Acked-by: Jammy Zhou Signed-off-by: Alex Deucher .../gpu/drm/amd/include/asic_reg/oss/oss_3_0_d.h | 688 ++++ .../drm/amd/include/asic_reg/oss/oss_3_0_enum.h | 1497 ++++++++ .../drm/amd/include/asic_reg/oss/oss_3_0_sh_mask.h | 3660 ++++++++++++++++++++ 3 files changed, 5845 insertions(+) commit 3f2ec6f51dfa089179ddf37115f9e25aadd31a56 Author: Alex Deucher Date: Thu Apr 16 15:26:30 2015 -0400 drm/amdgpu: add OSS 2.4 register headers These are register headers for the OSS (OS Services) block on the GPU. Acked-by: Christian König Acked-by: Jammy Zhou Signed-off-by: Alex Deucher .../gpu/drm/amd/include/asic_reg/oss/oss_2_4_d.h | 471 ++++ .../drm/amd/include/asic_reg/oss/oss_2_4_enum.h | 1340 +++++++++++ .../drm/amd/include/asic_reg/oss/oss_2_4_sh_mask.h | 2544 ++++++++++++++++++++ 3 files changed, 4355 insertions(+) commit 599bd21552e191913f26f581b549ec41d66984be Author: Alex Deucher Date: Thu Apr 16 15:25:48 2015 -0400 drm/amdgpu: add OSS 2.0 register headers These are register headers for the OSS (OS Services) block on the GPU. Acked-by: Christian König Acked-by: Jammy Zhou Signed-off-by: Alex Deucher .../gpu/drm/amd/include/asic_reg/oss/oss_2_0_d.h | 642 +++++ .../drm/amd/include/asic_reg/oss/oss_2_0_sh_mask.h | 2476 ++++++++++++++++++++ 2 files changed, 3118 insertions(+) commit 8f54b7c9eb87f4b11649ec997005af83c53315bb Author: Alex Deucher Date: Thu Apr 16 15:24:40 2015 -0400 drm/amdgpu: add GMC 8.2 register headers These are register headers for the GMC (Graphics Memory Controller) block on the GPU. Acked-by: Christian König Acked-by: Jammy Zhou Signed-off-by: Alex Deucher .../gpu/drm/amd/include/asic_reg/gmc/gmc_8_2_d.h | 910 +++ .../drm/amd/include/asic_reg/gmc/gmc_8_2_enum.h | 1068 +++ .../drm/amd/include/asic_reg/gmc/gmc_8_2_sh_mask.h | 7850 ++++++++++++++++++++ 3 files changed, 9828 insertions(+) commit bd6a6b43fdfe1755c16ffa787df3b22883617b70 Author: Alex Deucher Date: Thu Apr 16 15:24:04 2015 -0400 drm/amdgpu: add GMC 8.1 register headers These are register headers for the GMC (Graphics Memory Controller) block on the GPU. Acked-by: Christian König Acked-by: Jammy Zhou Signed-off-by: Alex Deucher .../gpu/drm/amd/include/asic_reg/gmc/gmc_8_1_d.h | 1708 ++ .../drm/amd/include/asic_reg/gmc/gmc_8_1_enum.h | 1198 ++ .../drm/amd/include/asic_reg/gmc/gmc_8_1_sh_mask.h | 15682 +++++++++++++++++++ 3 files changed, 18588 insertions(+) commit 973305270b6690feed82ae9ed0694e50a7eeae34 Author: Alex Deucher Date: Thu Apr 16 15:23:29 2015 -0400 drm/amdgpu: add GMC 7.1 register headers These are register headers for the GMC (Graphics Memory Controller) block on the GPU. Acked-by: Christian König Acked-by: Jammy Zhou Signed-off-by: Alex Deucher .../gpu/drm/amd/include/asic_reg/gmc/gmc_7_1_d.h | 1464 ++ .../drm/amd/include/asic_reg/gmc/gmc_7_1_sh_mask.h | 14416 +++++++++++++++++++ 2 files changed, 15880 insertions(+) commit 52fb57e7ee35eb6ff19589391255f7188ebdc434 Author: Alex Deucher Date: Thu Apr 16 15:22:19 2015 -0400 drm/amdgpu: add GMC 7.0 register headers These are register headers for the GMC (Graphics Memory Controller) block on the GPU. Acked-by: Christian König Acked-by: Jammy Zhou Signed-off-by: Alex Deucher .../gpu/drm/amd/include/asic_reg/gmc/gmc_7_0_d.h | 657 +++ .../drm/amd/include/asic_reg/gmc/gmc_7_0_sh_mask.h | 6116 ++++++++++++++++++++ 2 files changed, 6773 insertions(+) commit 675892a184ee337471077e762a26f878f21535ae Author: Alex Deucher Date: Thu Apr 16 15:21:21 2015 -0400 drm/amdgpu: add GCA 8.0 register headers These are register headers for the GCA (Graphics and Compute Array) block on the GPU. Acked-by: Christian König Acked-by: Jammy Zhou Signed-off-by: Alex Deucher .../gpu/drm/amd/include/asic_reg/gca/gfx_8_0_d.h | 2811 +++ .../drm/amd/include/asic_reg/gca/gfx_8_0_enum.h | 6858 ++++++ .../drm/amd/include/asic_reg/gca/gfx_8_0_sh_mask.h | 20776 +++++++++++++++++++ 3 files changed, 30445 insertions(+) commit 46d5a27269af9420b925cbbfdd66d3979abd8092 Author: Alex Deucher Date: Thu Apr 16 15:20:39 2015 -0400 drm/amdgpu: add GCA 7.2 register headers These are register headers for the GCA (Graphics and Compute Array) block on the GPU. Acked-by: Christian König Acked-by: Jammy Zhou Signed-off-by: Alex Deucher .../gpu/drm/amd/include/asic_reg/gca/gfx_7_2_d.h | 2557 +++ .../drm/amd/include/asic_reg/gca/gfx_7_2_enum.h | 6274 +++++++ .../drm/amd/include/asic_reg/gca/gfx_7_2_sh_mask.h | 18444 +++++++++++++++++++ 3 files changed, 27275 insertions(+) commit 9f24d8ce2522808cdb719775dbb32cb296e20f47 Author: Alex Deucher Date: Thu Apr 16 15:19:28 2015 -0400 drm/amdgpu: add GCA 7.0 register headers These are register headers for the GCA (Graphics and Compute Array) block on the GPU. Acked-by: Christian König Acked-by: Jammy Zhou Signed-off-by: Alex Deucher .../gpu/drm/amd/include/asic_reg/gca/gfx_7_0_d.h | 2532 ++++++++++++++++++++ 1 file changed, 2532 insertions(+) commit d180bab3a869c51c76cf90336b70296c36b3f3ef Author: Alex Deucher Date: Thu Apr 16 15:18:28 2015 -0400 drm/amdgpu: add DCE 11.0 register headers These are register headers for the DCE (Display and Composition Engine) block on the GPU. Acked-by: Christian König Acked-by: Jammy Zhou Signed-off-by: Alex Deucher .../gpu/drm/amd/include/asic_reg/dce/dce_11_0_d.h | 7648 ++++++++ .../drm/amd/include/asic_reg/dce/dce_11_0_enum.h | 6129 +++++++ .../amd/include/asic_reg/dce/dce_11_0_sh_mask.h | 17557 +++++++++++++++++++ 3 files changed, 31334 insertions(+) commit 36cfed855daf174f7551f0fdcd3157d8d7c5ba0b Author: Alex Deucher Date: Thu Apr 16 15:17:56 2015 -0400 drm/amdgpu: add DCE 10.0 register headers These are register headers for the DCE (Display and Composition Engine) block on the GPU. Acked-by: Christian König Acked-by: Jammy Zhou Signed-off-by: Alex Deucher .../gpu/drm/amd/include/asic_reg/dce/dce_10_0_d.h | 7350 ++++++++ .../drm/amd/include/asic_reg/dce/dce_10_0_enum.h | 1773 ++ .../amd/include/asic_reg/dce/dce_10_0_sh_mask.h | 16647 +++++++++++++++++++ 3 files changed, 25770 insertions(+) commit 26159c86dd004ef1295da9f68439ae50f3e8e60a Author: Alex Deucher Date: Thu Apr 16 15:17:19 2015 -0400 drm/amdgpu: add DCE 8.0 register headers These are register headers for the DCE (Display and Composition Engine) block on the GPU. Acked-by: Christian König Acked-by: Jammy Zhou Signed-off-by: Alex Deucher .../gpu/drm/amd/include/asic_reg/dce/dce_8_0_d.h | 5703 ++++++++ .../drm/amd/include/asic_reg/dce/dce_8_0_sh_mask.h | 13109 +++++++++++++++++++ 2 files changed, 18812 insertions(+) commit 3e5343bd7c33f3ec00758d5ed8fa1c868eb2fc37 Author: Alex Deucher Date: Thu Apr 16 15:16:08 2015 -0400 drm/amdgpu: add BIF 5.1 register headers These are register headers for the BIF (Bus InterFace) block on the GPU. Acked-by: Christian König Acked-by: Jammy Zhou Signed-off-by: Alex Deucher .../gpu/drm/amd/include/asic_reg/bif/bif_5_1_d.h | 3577 ++ .../drm/amd/include/asic_reg/bif/bif_5_1_enum.h | 1068 + .../drm/amd/include/asic_reg/bif/bif_5_1_sh_mask.h | 33080 +++++++++++++++++++ 3 files changed, 37725 insertions(+) commit 848ebfd731f0fa500b653d2a41af8d5cf769266b Author: Alex Deucher Date: Thu Apr 16 15:15:36 2015 -0400 drm/amdgpu: add BIF 5.0 register headers These are register headers for the BIF (Bus InterFace) block on the GPU. Acked-by: Christian König Acked-by: Jammy Zhou Signed-off-by: Alex Deucher .../gpu/drm/amd/include/asic_reg/bif/bif_5_0_d.h | 1068 ++ .../drm/amd/include/asic_reg/bif/bif_5_0_enum.h | 1198 ++ .../drm/amd/include/asic_reg/bif/bif_5_0_sh_mask.h | 11494 +++++++++++++++++++ 3 files changed, 13760 insertions(+) commit 054e4c60fe7871b95e827097a6b575592beb5bd3 Author: Alex Deucher Date: Thu Apr 16 15:06:12 2015 -0400 drm/amdgpu: add BIF 4.1 register headers These are register headers for the BIF (Bus InterFace) block on the GPU. Acked-by: Christian König Acked-by: Jammy Zhou Signed-off-by: Alex Deucher .../gpu/drm/amd/include/asic_reg/bif/bif_4_1_d.h | 921 ++ .../drm/amd/include/asic_reg/bif/bif_4_1_sh_mask.h | 10250 +++++++++++++++++++ 2 files changed, 11171 insertions(+) commit 63e1456122761745082d325329ccce749a426059 Merge: 6aa6272 4ad6ee9 Author: Dave Airlie Date: Thu Jun 4 09:36:39 2015 +1000 Merge branch 'virtio-gpu-drm-next' of git://git.kraxel.org/linux into drm-next Yay, thanks to Gerd for pull this together. * 'virtio-gpu-drm-next' of git://git.kraxel.org/linux: Add MAINTAINERS entry for virtio-gpu. Add virtio gpu driver. drm_vblank_get: don't WARN_ON in case vblanks are not initialized break kconfig dependency loop commit 6aa627250354c73ec705040b3a327b2915756fac Merge: a8a50fc c87d2453 Author: Dave Airlie Date: Thu Jun 4 09:24:28 2015 +1000 Merge branch 'linux-4.1.0-rc5-tilcdc-refactor' of https://github.com/jsarha/linux into drm-next Please pull the contents of "Use DRM component API in tilcdc to connect to tda998x" patch series. * 'linux-4.1.0-rc5-tilcdc-refactor' of https://github.com/jsarha/linux: drm/tilcdc: Force building of DRM_TILCDC_SLAVE_COMPAT drm/tilcdc: Add DRM_TILCDC_SLAVE_COMPAT for ti,tilcdc,slave binding support drm/tilcdc: use pm_runtime_irq_safe() drm/tilcdc: Add support for external tda998x encoder drm/tilcdc: Remove tilcdc slave support for tda998x driver drm/tilcdc: Fix module unloading commit a8a50fce60e86f82e442bf84b8af20750b3d6105 Merge: 9b5edbf c65b99f Author: Dave Airlie Date: Thu Jun 4 09:23:51 2015 +1000 Merge tag 'v4.1-rc6' into drm-next Linux 4.1-rc6 backmerge 4.1-rc6 as some of the later pull reqs are based on newer bases and I'd prefer to do the fixup myself. commit 9b5edbf7a462b7c846e9d4675b9b72b7a4e84de9 Author: Maarten Lankhorst Date: Mon Jun 1 08:59:53 2015 +0200 drm/atomic: Clear crtc_state->active in drm_atomic_helper_set_config. This fixes some regressions in i915 when converting to atomic. set_config failed with -EINVAL, and I received the following warning in dmesg: [drm:drm_atomic_crtc_check] [CRTC:20] active without enabled Solve this by clearing active when a crtc is disabled. Because crtc_state->enable implies that connectors are active the change from disabled->enabled can only happen for the crtc that's being set_config'd, and checking for !crtc_state->enable is sufficient here. Cc: dri-devel@lists.freedesktop.org Reviewed-by: Rob Clark Signed-off-by: Maarten Lankhorst Signed-off-by: Dave Airlie drivers/gpu/drm/drm_atomic_helper.c | 2 ++ 1 file changed, 2 insertions(+) commit cbe4dab119f211ff6642d617f541087894e99e4f Author: Dave Chinner Date: Thu Jun 4 09:19:18 2015 +1000 xfs: add initial DAX support Add initial DAX support to XFS. To do this we need a new mount option to turn DAX on filesystem, and we need to propagate this into the inode flags whenever an inode is instantiated so that the per-inode checks throughout the code Do The Right Thing. Signed-off-by: Dave Chinner Reviewed-by: Brian Foster Signed-off-by: Dave Chinner fs/xfs/xfs_iops.c | 24 ++++++++++++------------ fs/xfs/xfs_mount.h | 2 ++ fs/xfs/xfs_super.c | 25 +++++++++++++++++++++++-- 3 files changed, 37 insertions(+), 14 deletions(-) commit 6e1ba0bcb84b3f97616feb07c27f974509ba57be Author: Dave Chinner Date: Thu Jun 4 09:19:15 2015 +1000 xfs: add DAX IO path support DAX does not do buffered IO (can't buffer direct access!) and hence all read/write IO is vectored through the direct IO path. Hence we need to add the DAX IO path callouts to the direct IO infrastructure. Signed-off-by: Dave Chinner Reviewed-by: Brian Foster Signed-off-by: Dave Chinner fs/xfs/xfs_aops.c | 36 +++++++++++++++++++++++++++--------- 1 file changed, 27 insertions(+), 9 deletions(-) commit 9969441f9f86a8a7de8c36514fa789e5f5d83145 Author: Dave Chinner Date: Thu Jun 4 09:19:10 2015 +1000 xfs: add DAX truncate support When we truncate a DAX file, we need to call through the DAX page truncation path rather than through block_truncate_page() so that mappings and block zeroing are all handled correctly. Otherwise, truncate does not need to change. Signed-off-by: Dave Chinner Reviewed-by: Brian Foster Signed-off-by: Dave Chinner fs/xfs/xfs_iops.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 4f69f578a87d39c20b1ff70005a125e4594c3de8 Author: Dave Chinner Date: Thu Jun 4 09:19:08 2015 +1000 xfs: add DAX block zeroing support Add initial support for DAX block zeroing operations to XFS. DAX cannot use buffered IO through the page cache for zeroing, nor do we need to issue IO for uncached block zeroing. In both cases, we can simply call out to the dax block zeroing function. Signed-off-by: Dave Chinner Reviewed-by: Brian Foster Signed-off-by: Dave Chinner fs/xfs/xfs_bmap_util.c | 23 +++++++++++++++++++---- fs/xfs/xfs_file.c | 45 +++++++++++++++++++++++++++------------------ 2 files changed, 46 insertions(+), 22 deletions(-) commit 6b698edeeef00c127d73501b386590299f01327a Author: Dave Chinner Date: Thu Jun 4 09:18:53 2015 +1000 xfs: add DAX file operations support Add the initial support for DAX file operations to XFS. This includes the necessary block allocation and mmap page fault hooks for DAX to function. Note that there are changes to the splice interfaces to ensure that for DAX splice avoids direct page cache manipulations and instead takes the DAX IO paths for read/write operations. Signed-off-by: Dave Chinner Reviewed-by: Brian Foster Signed-off-by: Dave Chinner fs/xfs/xfs_aops.c | 116 ++++++++++++++++++++++++++++++++++++++--------------- fs/xfs/xfs_aops.h | 7 +++- fs/xfs/xfs_file.c | 118 +++++++++++++++++++++++++++++++----------------------- 3 files changed, 158 insertions(+), 83 deletions(-) commit ce5c5d554dc47a4fb4360c84b72231fea081e7a0 Author: Dave Chinner Date: Thu Jun 4 09:18:18 2015 +1000 dax: expose __dax_fault for filesystems with locking constraints Some filesystems cannot call dax_fault() directly because they have different locking and/or allocation constraints in the page fault IO path. To handle this, we need to follow the same model as the generic block_page_mkwrite code, where the internals are exposed via __block_page_mkwrite() so that filesystems can wrap the correct locking and operations around the outside. This is loosely based on a patch originally from Matthew Willcox. Unlike the original patch, it does not change ext4 code, error returns or unwritten extent conversion handling. It also adds a __dax_mkwrite() wrapper for .page_mkwrite implementations to do the right thing, too. Signed-off-by: Dave Chinner Reviewed-by: Jan Kara Signed-off-by: Dave Chinner fs/dax.c | 15 +++++++++++++-- include/linux/fs.h | 5 ++++- 2 files changed, 17 insertions(+), 3 deletions(-) commit e842f2903908934187af7232fb5b21da527d1757 Author: Dave Chinner Date: Thu Jun 4 09:18:18 2015 +1000 dax: don't abuse get_block mapping for endio callbacks dax_fault() currently relies on the get_block callback to attach an io completion callback to the mapping buffer head so that it can run unwritten extent conversion after zeroing allocated blocks. Instead of this hack, pass the conversion callback directly into dax_fault() similar to the get_block callback. When the filesystem allocates unwritten extents, it will set the buffer_unwritten() flag, and hence the dax_fault code can call the completion function in the contexts where it is necessary without overloading the mapping buffer head. Note: The changes to ext4 to use this interface are suspect at best. In fact, the way ext4 did this end_io assignment in the first place looks suspect because it only set a completion callback when there wasn't already some other write() call taking place on the same inode. The ext4 end_io code looks rather intricate and fragile with all it's reference counting and passing to different contexts for modification via inode private pointers that aren't protected by locks... Signed-off-by: Dave Chinner Acked-by: Jan Kara Signed-off-by: Dave Chinner fs/dax.c | 21 +++++++++++++++------ fs/ext2/file.c | 4 ++-- fs/ext4/file.c | 16 ++++++++++++++-- fs/ext4/inode.c | 21 +++++++-------------- include/linux/fs.h | 6 ++++-- 5 files changed, 42 insertions(+), 26 deletions(-) commit ec56b1f1fdc69599963574ce94cc5693d535dd64 Author: Dave Chinner Date: Thu Jun 4 09:18:18 2015 +1000 xfs: mmap lock needs to be inside freeze protection Lock ordering for the new mmap lock needs to be: mmap_sem sb_start_pagefault i_mmap_lock page lock Right now xfs_vm_page_mkwrite gets this the wrong way around, While technically it cannot deadlock due to the current freeze ordering, it's still a landmine that might explode if we change anything in future. Hence we need to nest the locks correctly. Signed-off-by: Dave Chinner Reviewed-by: Jan Kara Reviewed-by: Brian Foster Signed-off-by: Dave Chinner fs/xfs/xfs_file.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) commit 531e63e163072e325d9cc82acc095a009f07b6ef Merge: cb2d47a 5ceecb2 Author: Dave Airlie Date: Thu Jun 4 09:17:45 2015 +1000 Merge tag 'topic/drm-misc-2015-05-27' of git://anongit.freedesktop.org/drm-intel into drm-next One more round of drm-misc, again mostly atomic. Big thing is the userspace blob code from Daniel Stone, with support for the mode_id blob now added to the atomic ioctl. Finally we can do atomic modesets! Note that the atomic ioctl is still behind the module knob since the weston patches aren't quite ready yet imo - they lack TEST_ONLY support, which is a fairly crucial bit of the atomic api. But besides that I think it's all good to go. That's also why we didn't bother to hide the new blob ioctls behind the knob, that part won't need to change. And if weston patches get in shape in time we could throw the "atomic by default patch" on top for 4.2. * tag 'topic/drm-misc-2015-05-27' of git://anongit.freedesktop.org/drm-intel: drm: Fix off-by-one in vblank hardware counter wraparound handling drm/atomic: fix out of bounds read in for_each_*_in_state helpers drm/atomic: Add MODE_ID property drm/atomic: Add current-mode blob to CRTC state drm: Add drm_atomic_set_mode_for_crtc drm: check for garbage in unused addfb2 fields drm: Retain reference to blob properties in lookup drm/mode: Add user blob-creation ioctl drm: Return error value from blob creation drm: Allow creating blob properties without copy drm/mode: Unstatic kernel-userspace mode conversion drm/mode: Validate modes inside drm_crtc_convert_umode drm/crtc_helper: Replace open-coded CRTC state helpers drm: kerneldoc fixes for blob properties drm/DocBook: Add more drm_bridge documentation drm: bridge: Allow daisy chaining of bridges drm/atomic: add all affected planes in drm_atomic_helper_check_modeset drm/atomic: add drm_atomic_add_affected_planes drm/atomic: add commit_planes_on_crtc helper commit cb2d47a47c59614821433b25ad3052181334aa18 Merge: 3e8d222 c3447e8 Author: Dave Airlie Date: Thu Jun 4 09:15:39 2015 +1000 Merge tag 'drm-amdkfd-next-2015-06-03' of git://people.freedesktop.org/~gabbayo/linux into drm-next drm-amdkfd-next-2015-06-03: - Add the H/W debugger support module, including new IOCTLs to: - register/unregister a process as a debugged process - Set address watch-point in the debugged process's GPU kernel - Do a wave control operation in the debugged process's waves See the commit messages for more details on the available operations. The debugged process can only perform debug operation on itself. It is blocked by the amdkfd+H/W from performing operations on other processes's waves or GPU kernels. The blocking is done by setting the VMID and PASID of the debugged process in the packets that are sent to the CP with the debug instructions. - Add support for static user-mode queues. These queues are regular queues, but because they belong to the debugged process, we need to make sure the CP doesn't preempt them during a debug operation. Therefore, we mark them as static for the CP ignore them during preemption. - Support killing all the waves when a process is terminated. This is needed in case a process is terminated but we can't UNMAP its queues (can occur due to several reasons). In that case, the CP could be stuck unless we kill all its waves. This function is *very* important as it provides the kernel a high level of control over the GPU. The reason we didn't upstream this function so far, is because it is implemented using the H/W debugger module functions, so we had to wait until we can upstream the H/W debugger module. - Replace declaration of bitmap from unsigned long to standard DECLARE_BITMAP * tag 'drm-amdkfd-next-2015-06-03' of git://people.freedesktop.org/~gabbayo/linux: drm/amdkfd: Enforce kill all waves on process termination drm/radeon: Add ATC VMID<-->PASID functions to kfd->kgd drm/amdkfd: Implement address watch debugger IOCTL drm/amdkfd: Implement wave control debugger IOCTL drm/amdkfd: Implement (un)register debugger IOCTLs drm/amdkfd: Add address watch operation to debugger drm/amdkfd: Add wave control operation to debugger drm/amdkfd: Add skeleton H/W debugger module support drm/amdkfd: Add static user-mode queues support drm/amdkfd: add H/W debugger IOCTL set definitions drm/radeon: Add H/W debugger kfd->kgd functions drm/amdkfd: Use DECLARE_BITMAP commit b7004516781503c0e4782288025ca2ce4a78f020 Author: Marek Szyprowski Date: Thu Jun 4 08:09:42 2015 +0900 ARM: dts: add sysmmu nodes for exynos5420 This patch adds System MMU nodes to all defined devices that are specific to Exynos5420/5800/5422 series. Signed-off-by: Marek Szyprowski Acked-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos5420.dtsi | 183 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 183 insertions(+) commit 6cbfdd73a94f2cb4b9dc30db1d92699126340d5e Author: Marek Szyprowski Date: Thu Jun 4 08:09:41 2015 +0900 ARM: dts: add sysmmu nodes for exynos5250 This patch adds System MMU nodes to all defined devices that are specific to Exynos5250 series. Signed-off-by: Marek Szyprowski Acked-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos5250.dtsi | 250 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 250 insertions(+) commit ecc3f340b666494ec79cb5863865024f697b3ae2 Author: Marek Szyprowski Date: Thu Jun 4 08:09:41 2015 +0900 ARM: dts: add sysmmu nodes for exynos4415 This patch adds System MMU nodes to all defined devices that are specific to Exynos4415 series. Signed-off-by: Marek Szyprowski Acked-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos4415.dtsi | 11 +++++++++++ 1 file changed, 11 insertions(+) commit f5976ce532369d81916b0043630875f96aab3990 Author: Marek Szyprowski Date: Thu Jun 4 08:09:41 2015 +0900 ARM: dts: add sysmmu nodes for exynos3250 This patch adds System MMU nodes to the devices that are specific to Exynos3250 series. Signed-off-by: Marek Szyprowski Acked-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos3250.dtsi | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) commit 71d3a9fbb2f4c8d0f74d25c4fdabcb9bb607f0f6 Author: Marek Szyprowski Date: Thu Jun 4 08:09:41 2015 +0900 ARM: dts: add sysmmu nodes for exynos4 This patch adds System MMU nodes that are specific to Exynos4210/4x12 series. Signed-off-by: Marek Szyprowski Acked-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos4.dtsi | 118 ++++++++++++++++++++++++++++++++++++++ arch/arm/boot/dts/exynos4210.dtsi | 23 ++++++++ arch/arm/boot/dts/exynos4x12.dtsi | 82 ++++++++++++++++++++++++++ 3 files changed, 223 insertions(+) commit 9a5238a9c6c33dd31525f2bba4aa1af4f8374ae1 Author: kongxinwei Date: Wed May 20 19:16:37 2015 +0800 thermal: hisilicon: add new hisilicon thermal sensor driver This patch adds the support for hisilicon thermal sensor, within hisilicon SoC. there will register sensors for thermal framework and use device tree to bind cooling device. Signed-off-by: Leo Yan Signed-off-by: kongxinwei Signed-off-by: Eduardo Valentin drivers/thermal/Kconfig | 8 + drivers/thermal/Makefile | 1 + drivers/thermal/hisi_thermal.c | 421 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 430 insertions(+) commit 59e85635d3e03ef9ac74ec8e39834a25b8e59dc7 Author: kongxinwei Date: Wed May 20 19:16:36 2015 +0800 dt-bindings: Document the hi6220 thermal sensor bindings This adds documentation of device tree bindings for the thermal sensor controller of hi6220 SoC. Signed-off-by: Leo Yan Signed-off-by: kongxinwei Signed-off-by: Eduardo Valentin .../bindings/thermal/hisilicon-thermal.txt | 23 ++++++++++++++++++++++ 1 file changed, 23 insertions(+) commit 6546a02a571c9e8c5c5e5c39b3acc25187002acc Author: Stephen Rothwell Date: Wed Jun 3 18:16:07 2015 +1000 target: explicitly include scsi_proto.h in target_core_fabric_lib.c Signed-off-by: Stephen Rothwell Acked-by: Nicholas A. Bellinger Signed-off-by: James Bottomley drivers/target/target_core_fabric_lib.c | 2 ++ 1 file changed, 2 insertions(+) commit f6725ae2f1ae266589ab177461e308bb2f86f9ee Author: Chris Lesiak Date: Tue Jun 2 15:57:58 2015 -0500 hwmon: (ntc_thermistor) Improve precision of resistance calculation The function get_ohm_of_thermistor has both the measured voltage and the pullup voltage available in microvolts. But it was promptly converting both to millivolts before using them to calculate the thermistor resistance. That conversion unnecessarily hurt the precision of the calculation. For example, take the ncpXXwb473 connected to 5000 mV and pulled down through a 47000 ohm resistor. At 25 C, the resistance of the thermistor is 47000 ohms. The measured voltage will be 2500 mV. If we measure instead 2501 mV, then the calculated resistance will be 46962 ohms -- a difference of 38 ohms. So the precision of the resistance estimate could be increased by 38X by doing the calculations in microvolts. Signed-off-by: Chris Lesiak Signed-off-by: Guenter Roeck drivers/hwmon/ntc_thermistor.c | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) commit ae8d4048fada71a77144e0f05e8612f90b9501f0 Merge: 19fbbbb 72ea486 Author: Michael Turquette Date: Wed Jun 3 15:22:03 2015 -0700 Merge branch 'clk-next-hi6220' into clk-next Conflicts: drivers/clk/Kconfig commit 19fbbbbcd3a3a8e307a4768784166abf7b55b779 Author: Mike Looijmans Date: Wed Jun 3 07:25:19 2015 +0200 Add TI CDCE925 I2C controlled clock synthesizer driver This driver supports the TI CDCE925 programmable clock synthesizer. The chip contains two PLLs with spread-spectrum clocking support and five output dividers. The driver only supports the following setup, and uses a fixed setting for the output muxes: Y1 is derived from the input clock Y2 and Y3 derive from PLL1 Y4 and Y5 derive from PLL2 Given a target output frequency, the driver will set the PLL and divider to best approximate the desired output. Signed-off-by: Mike Looijmans Signed-off-by: Michael Turquette .../devicetree/bindings/clock/ti,cdce925.txt | 42 ++ drivers/clk/Kconfig | 17 + drivers/clk/Makefile | 1 + drivers/clk/clk-cdce925.c | 749 +++++++++++++++++++++ 4 files changed, 809 insertions(+) commit 4d52b2acefdfceae0e47ed08324a96f511dc80b1 Author: Boris Brezillon Date: Tue May 26 14:42:57 2015 +0200 clk: mvebu: add missing CESA gate clk Even if not documented in the datasheet, the Armada 370 SoC can actually gate the CESA (crypto engine) clock. Add an entry in the gating_desc table to be able to reference the CESA gateclk in the crypto node. Signed-off-by: Boris Brezillon Acked-by: Gregory CLEMENT Signed-off-by: Michael Turquette Documentation/devicetree/bindings/clock/mvebu-gated-clock.txt | 1 + drivers/clk/mvebu/armada-370.c | 1 + 2 files changed, 2 insertions(+) commit 72ea48610d43c59507d9ad39083d40085400ba12 Author: Bintian Wang Date: Fri May 29 10:08:38 2015 +0800 clk: hi6220: Clock driver support for Hisilicon hi6220 SoC Add clock drivers for hi6220 SoC, this driver controls the SoC registers to supply different clocks to different IPs in the SoC. We add one divider clock for hi6220 because the divider in hi6220 also has a mask bit but it doesnot obey the rule defined by flag "CLK_DIVIDER_HIWORD_MASK", we can not get index of the mask bit by left shift fixed bits (e.g. 16 bits), so we add this divider clock to handle it. Signed-off-by: Jorge Ramirez-Ortiz Signed-off-by: Bintian Wang Acked-by: Haojian Zhuang Reviewed-by: Zhangfei Gao Tested-by: Will Deacon Tested-by: Tyler Baker Tested-by: Kevin Hilman Signed-off-by: Michael Turquette drivers/clk/Kconfig | 1 + drivers/clk/Makefile | 4 +- drivers/clk/hisilicon/Kconfig | 6 + drivers/clk/hisilicon/Makefile | 3 +- drivers/clk/hisilicon/clk-hi6220.c | 284 ++++++++++++++++++++++++++++++ drivers/clk/hisilicon/clk.c | 29 +++ drivers/clk/hisilicon/clk.h | 17 ++ drivers/clk/hisilicon/clkdivider-hi6220.c | 156 ++++++++++++++++ 8 files changed, 496 insertions(+), 4 deletions(-) commit c147c0e17b532a0d35ab92c86bbce0dfe1c1aaf4 Author: Liam Girdwood Date: Fri May 29 19:06:13 2015 +0100 ASoC: topology: Add topology UAPI header The ASoC topology UAPI header defines the structures required to define any DSP firmware audio topology and control objects from userspace. The following objects are supported :- o kcontrols including TLV controls. o DAPM widgets and graph elements o Vendor bespoke objects. o Coefficient data o FE PCM capabilities and config. o BE link capabilities and config. o Codec <-> codec link capabilities and config. o Topology object manifest. The file format is simple and divided into blocks for each object type and each block has a header that defines it's size and type. Blocks can be in any order of type and can either all be in a single file or spread across more than one file. Blocks also have a group identifier ID so that they can be loaded and unloaded by ID. Signed-off-by: Liam Girdwood Signed-off-by: Mark Brown include/sound/soc-dapm.h | 1 + include/uapi/sound/asoc.h | 388 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 389 insertions(+) commit da7049f834c3582c1ed1a04889bda5b4121973c0 Author: Chuck Lever Date: Tue May 26 13:49:07 2015 -0400 svcrdma: Remove svc_rdma_xdr_decode_deferred_req() svc_rdma_xdr_decode_deferred_req() indexes an array with an un-byte-swapped value off the wire. Fortunately this function isn't used anywhere, so simply remove it. Signed-off-by: Chuck Lever Signed-off-by: J. Bruce Fields include/linux/sunrpc/svc_rdma.h | 1 - net/sunrpc/xprtrdma/svc_rdma_marshal.c | 56 ---------------------------------- 2 files changed, 57 deletions(-) commit 3f87d5d6ace6c4ef1ac36ea4d1848b94e864c0c6 Author: Chuck Lever Date: Tue May 26 13:48:57 2015 -0400 SUNRPC: Move EXPORT_SYMBOL for svc_process Clean up. Signed-off-by: Chuck Lever Signed-off-by: J. Bruce Fields net/sunrpc/svc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d603c8e184d882cc3f55c599f4185bad956ee0a7 Author: Ingo Molnar Date: Wed Jun 3 18:05:44 2015 +0200 x86/asm/entry, x86/vdso: Move the vDSO code to arch/x86/entry/vdso/ Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Thomas Gleixner Cc: Andy Lutomirski Cc: Denys Vlasenko Cc: Brian Gerst Cc: Peter Zijlstra Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar MAINTAINERS | 2 +- arch/x86/Kbuild | 2 +- arch/x86/Makefile | 2 +- arch/x86/entry/Makefile | 2 + arch/x86/entry/vdso/.gitignore | 7 + arch/x86/entry/vdso/Makefile | 209 +++++++++++++++ arch/x86/entry/vdso/checkundef.sh | 10 + arch/x86/entry/vdso/vclock_gettime.c | 351 +++++++++++++++++++++++++ arch/x86/entry/vdso/vdso-layout.lds.S | 118 +++++++++ arch/x86/entry/vdso/vdso-note.S | 12 + arch/x86/entry/vdso/vdso.lds.S | 29 ++ arch/x86/entry/vdso/vdso2c.c | 253 ++++++++++++++++++ arch/x86/entry/vdso/vdso2c.h | 175 ++++++++++++ arch/x86/entry/vdso/vdso32-setup.c | 120 +++++++++ arch/x86/entry/vdso/vdso32/.gitignore | 1 + arch/x86/entry/vdso/vdso32/int80.S | 56 ++++ arch/x86/entry/vdso/vdso32/note.S | 44 ++++ arch/x86/entry/vdso/vdso32/sigreturn.S | 145 ++++++++++ arch/x86/entry/vdso/vdso32/syscall.S | 75 ++++++ arch/x86/entry/vdso/vdso32/sysenter.S | 116 ++++++++ arch/x86/entry/vdso/vdso32/vclock_gettime.c | 30 +++ arch/x86/entry/vdso/vdso32/vdso-fakesections.c | 1 + arch/x86/entry/vdso/vdso32/vdso32.lds.S | 37 +++ arch/x86/entry/vdso/vdsox32.lds.S | 25 ++ arch/x86/entry/vdso/vgetcpu.c | 28 ++ arch/x86/entry/vdso/vma.c | 300 +++++++++++++++++++++ arch/x86/vdso/.gitignore | 7 - arch/x86/vdso/Makefile | 209 --------------- arch/x86/vdso/checkundef.sh | 10 - arch/x86/vdso/vclock_gettime.c | 351 ------------------------- arch/x86/vdso/vdso-layout.lds.S | 118 --------- arch/x86/vdso/vdso-note.S | 12 - arch/x86/vdso/vdso.lds.S | 29 -- arch/x86/vdso/vdso2c.c | 253 ------------------ arch/x86/vdso/vdso2c.h | 175 ------------ arch/x86/vdso/vdso32-setup.c | 120 --------- arch/x86/vdso/vdso32/.gitignore | 1 - arch/x86/vdso/vdso32/int80.S | 56 ---- arch/x86/vdso/vdso32/note.S | 44 ---- arch/x86/vdso/vdso32/sigreturn.S | 145 ---------- arch/x86/vdso/vdso32/syscall.S | 75 ------ arch/x86/vdso/vdso32/sysenter.S | 116 -------- arch/x86/vdso/vdso32/vclock_gettime.c | 30 --- arch/x86/vdso/vdso32/vdso-fakesections.c | 1 - arch/x86/vdso/vdso32/vdso32.lds.S | 37 --- arch/x86/vdso/vdsox32.lds.S | 25 -- arch/x86/vdso/vgetcpu.c | 28 -- arch/x86/vdso/vma.c | 300 --------------------- 48 files changed, 2147 insertions(+), 2145 deletions(-) commit 19a433f45135656d065bdf1bbe543796b194ba3a Author: Ingo Molnar Date: Wed Jun 3 18:00:59 2015 +0200 x86/asm/entry: Move the compat syscall entry code to arch/x86/entry/ Move the ia32entry.S file over into arch/x86/entry/. Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Thomas Gleixner Cc: Andy Lutomirski Cc: Denys Vlasenko Cc: Brian Gerst Cc: Peter Zijlstra Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar arch/x86/entry/Makefile | 5 +- arch/x86/entry/ia32entry.S | 522 +++++++++++++++++++++++++++++++++++++++++++++ arch/x86/ia32/Makefile | 2 +- arch/x86/ia32/ia32entry.S | 522 --------------------------------------------- 4 files changed, 527 insertions(+), 524 deletions(-) commit 905a36a2851838bca5a424fb758e201990234e6e Author: Ingo Molnar Date: Wed Jun 3 13:37:36 2015 +0200 x86/asm/entry: Move entry_64.S and entry_32.S to arch/x86/entry/ Create a new directory hierarchy for the low level x86 entry code: arch/x86/entry/* This will host all the low level glue that is currently scattered all across arch/x86/. Start with entry_64.S and entry_32.S. Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Thomas Gleixner Cc: Andy Lutomirski Cc: Denys Vlasenko Cc: Brian Gerst Cc: Peter Zijlstra Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar arch/x86/Kbuild | 3 + arch/x86/entry/Makefile | 4 + arch/x86/entry/entry_32.S | 1249 ++++++++++++++++++++++++++++++++++++++ arch/x86/entry/entry_64.S | 1442 ++++++++++++++++++++++++++++++++++++++++++++ arch/x86/kernel/Makefile | 2 +- arch/x86/kernel/entry_32.S | 1249 -------------------------------------- arch/x86/kernel/entry_64.S | 1442 -------------------------------------------- 7 files changed, 2699 insertions(+), 2692 deletions(-) commit 2a40a2ea109269def06f991f771c2bf2f6c0f396 Author: Bintian Wang Date: Fri May 29 10:08:37 2015 +0800 dt-bindings: Add header file of hi6220 clock driver Add the header file "hi6220-clock.h" used by both hi6220 clock driver and hi6220 device tree file. Suggested-by: Stephen Boyd Signed-off-by: Bintian Wang Tested-by: Will Deacon Tested-by: Tyler Baker Tested-by: Kevin Hilman Signed-off-by: Michael Turquette include/dt-bindings/clock/hi6220-clock.h | 173 +++++++++++++++++++++++++++++++ 1 file changed, 173 insertions(+) commit 463cfb2c9b9516a710c6320d3f6c609d33331378 Author: Bintian Wang Date: Fri May 29 10:08:36 2015 +0800 clk: hisilicon: Remove __init for marking function prototypes __init markings on function prototypes are useless, so remove them. Suggested-by: Stephen Boyd Signed-off-by: Bintian Wang Tested-by: Will Deacon Tested-by: Tyler Baker Tested-by: Kevin Hilman Signed-off-by: Michael Turquette drivers/clk/hisilicon/clk.h | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) commit 41dd496c8d9f622efff2c3b92ee308e13f58f639 Author: Chris Metcalf Date: Wed Jun 3 10:37:56 2015 -0400 tile: force CONFIG_TILEGX if ARCH != tilepro This allows configuring with allnoconfig (for tilegx) or allyesconfig (for tilepro) without creating an unbuildable configuration. Suggested-by: Peter Zijlstra Signed-off-by: Chris Metcalf arch/tile/Kconfig | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 0451d14d05618e5fcbdc5017a30e3d609ddc8229 Author: Aravind Gopalakrishnan Date: Tue Jun 2 15:35:56 2015 -0500 EDAC, mce_amd_inj: Modify flags attribute to use string arguments Use strings such as "hw" or "sw" to indicate the type of error injection to be performed. Current flags attribute derives the meanings of values that can be programmed into it from asm/mce.h. Moving to defined strings for the attribute allows this module to be self-sufficient and removes the dependency. Also, we can introduce new flags as and when needed without having to worry about conflicting with the flags already defined in asm/mce.h. Also, modify do_inject() to use the newly defined injection_type enum to figure out the injection mechanism we need to use Suggested-by: Borislav Petkov Signed-off-by: Aravind Gopalakrishnan Cc: linux-edac Cc: mchehab@osg.samsung.com Cc: x86-ml Link: http://lkml.kernel.org/r/1433277362-10911-4-git-send-email-Aravind.Gopalakrishnan@amd.com [ Use strstrip() return value. ] Signed-off-by: Borislav Petkov drivers/edac/mce_amd_inj.c | 81 ++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 71 insertions(+), 10 deletions(-) commit 10b48f7ef2a765452a583dbc256ed7da7fe7f1fc Author: Marc Zyngier Date: Mon Jun 1 10:47:39 2015 +0100 arm64: insn: Add aarch64_{get,set}_branch_offset In order to deal with branches located in alternate sequences, but pointing to the main kernel text, it is required to extract the relative displacement encoded in the instruction, and to be able to update said instruction with a new offset (once it is known). For this, we introduce three new helpers: - aarch64_insn_is_branch_imm is a predicate indicating if the instruction is an immediate branch - aarch64_get_branch_offset returns a signed value representing the byte offset encoded in a branch instruction - aarch64_set_branch_offset takes an instruction and an offset, and returns the corresponding updated instruction. Acked-by: Will Deacon Signed-off-by: Marc Zyngier Signed-off-by: Catalin Marinas arch/arm64/include/asm/insn.h | 3 +++ arch/arm64/kernel/insn.c | 60 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+) commit 685d46d72ba456569d739cc3ff43577f4001d52f Author: Aravind Gopalakrishnan Date: Wed May 27 14:03:34 2015 -0500 EDAC, mce_amd_inj: Read out number of MCE banks from the hardware The number of banks for a given processor is encoded in MSR_IA32_MCG_CAP[7:0]. So obtain the value from that MSR and use it for sanity checking in inj_bank_set() instead of doing a family/model check. Signed-off-by: Aravind Gopalakrishnan Cc: linux-edac Cc: mchehab@osg.samsung.com Link: http://lkml.kernel.org/r/1432753418-2985-3-git-send-email-Aravind.Gopalakrishnan@amd.com Signed-off-by: Borislav Petkov drivers/edac/mce_amd_inj.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) commit e7f2ea1dbec30d607f0017706aa25b77477dd69c Author: Aravind Gopalakrishnan Date: Tue Jun 2 15:35:54 2015 -0500 EDAC, mce_amd_inj: Use MCE_INJECT_GET macro for bank node too inj_bank_get() is generic enough that we can use the MCE_INJECT_GET macro instead. No functionality change. Signed-off-by: Aravind Gopalakrishnan Cc: linux-edac Cc: mchehab@osg.samsung.com Cc: x86-ml Link: http://lkml.kernel.org/r/1433277362-10911-2-git-send-email-Aravind.Gopalakrishnan@amd.com Signed-off-by: Borislav Petkov drivers/edac/mce_amd_inj.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) commit f372d09059a67f57b3d2b5eab8c05b0ddb8ca92f Author: Markus Pargmann Date: Fri Dec 26 12:41:41 2014 +0100 batman-adv: Remove unnecessary ret variable in algo_register Remove ret variable and all jumps. Signed-off-by: Markus Pargmann Signed-off-by: Marek Lindner net/batman-adv/main.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit 9fb6c6519b10aee4815591122ce59ce4b63fc44b Author: Markus Pargmann Date: Fri Dec 26 12:41:40 2014 +0100 batman-adv: Remove unnecessary ret variable We can avoid this indirect return variable by directly returning the error values. Signed-off-by: Markus Pargmann Signed-off-by: Marek Lindner net/batman-adv/main.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) commit f2d5cf2add74ac066572b5215ba8a33dfcf0b85c Author: Markus Pargmann Date: Fri Dec 26 12:41:39 2014 +0100 batman-adv: main, batadv_compare_eth return bool Declare the returntype of batadv_compare_eth as bool. The function called inside this helper function (ether_addr_equal_unaligned) also uses bool as return value, so there is no need to return int. Signed-off-by: Markus Pargmann Signed-off-by: Marek Lindner net/batman-adv/main.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e8ad3b1acfbb022b495f12f4ed6e825d5f53546a Author: Markus Pargmann Date: Fri Dec 26 12:41:38 2014 +0100 batman-adv: main, Convert is_my_mac() to bool It is much clearer to see a bool type as return value than 'int' for functions that are supposed to return true or false. Signed-off-by: Markus Pargmann Signed-off-by: Marek Lindner net/batman-adv/main.c | 11 +++++++---- net/batman-adv/main.h | 2 +- 2 files changed, 8 insertions(+), 5 deletions(-) commit a0c77227ffd0ad371cfde84458f440bcde5ab048 Author: Sven Eckelmann Date: Sun Mar 1 16:56:26 2015 +0100 batman-adv: Remove unnecessary check for orig_ifinfo not NULL orig_ifinfo is dereferenced multiple times in batadv_iv_ogm_update_seqnos before the check for NULL is done. The function also exists at the beginning when orig_ifinfo would have been NULL. This makes the check at the end unnecessary and only confuses the reader/code analyzers. Signed-off-by: Sven Eckelmann Signed-off-by: Marek Lindner net/batman-adv/bat_iv_ogm.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 21102626da60a6fcb0458e4040ee4739f04652e8 Author: Markus Pargmann Date: Fri Dec 26 12:41:37 2014 +0100 batman-adv: types, Fix comment on bcast_own batadv_orig_bat_iv->bcast_own is actually not a bitfield, it is an array. Adjust the comment accordingly. Signed-off-by: Markus Pargmann Signed-off-by: Antonio Quartulli Signed-off-by: Marek Lindner net/batman-adv/types.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 3dbb5eb9a3aa04f40e551338eee5e8d06f352fe8 Author: Theodore Ts'o Date: Wed Jun 3 09:32:39 2015 -0400 ext4 crypto: allocate bounce pages using GFP_NOWAIT Previously we allocated bounce pages using a combination of alloc_page() and mempool_alloc() with the __GFP_WAIT bit set. Instead, use mempool_alloc() with GFP_NOWAIT. The mempool_alloc() function will try using alloc_pages() initially, and then only use the mempool reserve of pages if alloc_pages() is unable to fulfill the request. This minimizes the the impact on the mm layer when we need to do a large amount of writeback of encrypted files, as Jaeguk Kim had reported that under a heavy fio workload on a system with restricted amounts memory (which unfortunately, includes many mobile handsets), he had observed the the OOM killer getting triggered several times. Using GFP_NOWAIT If the mempool_alloc() function fails, we will retry the page writeback at a later time; the function of the mempool is to ensure that we can writeback at least 32 pages at a time, so we can more efficiently dispatch I/O under high memory pressure situations. In the future we should make this be a tunable so we can determine the best tradeoff between permanently sequestering memory and the ability to quickly launder pages so we can free up memory quickly when necessary. Signed-off-by: Theodore Ts'o fs/ext4/crypto.c | 27 ++++++--------------------- fs/ext4/ext4_crypto.h | 3 +-- 2 files changed, 7 insertions(+), 23 deletions(-) commit fa2ce64f85be48003e8c88efcb8c3d7e4d0939ff Author: Tony Luck Date: Wed May 20 19:10:35 2015 -0300 sb_edac: support for Broadwell -EP and -EX Basic support for the single socket Broadwell-DE processor was added back in commit 1f39581a9a7a sb_edac: Add support for Broadwell-DE processor This patch extends Broadwell support to cover the two socket "-EP" and four socket "-EX" versions of Broadwell. Only tested on the 2 socket - but this code is largely cloned from the Haswell path. Signed-off-by: Tony Luck Signed-off-by: Mauro Carvalho Chehab drivers/edac/sb_edac.c | 73 +++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 58 insertions(+), 15 deletions(-) commit 7d375bffa52477c1be7db5a5dda99996582512c3 Author: Tony Luck Date: Mon May 18 17:50:42 2015 -0300 sb_edac: Fix support for systems with two home agents per socket First noticed a problem on a 4 socket machine where EDAC only reported half the DIMMS. Tracked this down to the code that assumes that systems with two home agents only have two memory channels on each agent. This is true on 2 sockect ("-EP") machines. But four socket ("-EX") machines have four memory channels on each home agent. The old code would have had problems on two socket systems as it did a shuffling trick to make the internals of the code think that the channels from the first agent were '0' and '1', with the second agent providing '2' and '3'. But the code didn't uniformly convert from {ha,channel} tuples to this internal representation. New code always considers up to eight channels. On a machine with a single home agent these map easily to edac channels 0, 1, 2, 3. On machines with two home agents we map using: edac_channel = 4*ha# + channel So on a -EP machine where each home agent supports only two channels we'll fill in channels 0, 1, 4, 5, and on a -EX machine we use all of 0, 1, 2, 3, 4, 5, 6, 7. [mchehab@osg.samsung.com: fold a fixup patch as per Tony's request and fixed a few CodingStyle issues] Signed-off-by: Tony Luck Acked-by: Aristeu Rozanski Signed-off-by: Mauro Carvalho Chehab drivers/edac/sb_edac.c | 138 +++++++++++++++++++++++-------------------------- 1 file changed, 65 insertions(+), 73 deletions(-) commit bb89e7141a4e5690a046d3bdfa57b8521aab64b0 Author: Tony Luck Date: Mon May 18 17:39:06 2015 -0300 sb_edac: Fix a typo and a thinko in address handling for Haswell typo: "a7mode" chooses whether to use bits {8, 7, 9} or {8, 7, 6} in the algorithm to spread access between memory resources. But the non-a7mode path was incorrectly using GET_BITFIELD(addr, 7, 9) and so picking bits {9, 8, 7} thinko: BIT(1) of the dram_rule registers chooses whether to just use the {8, 7, 6} (or {8, 7, 9}) bits mentioned above as they are, or to XOR them with bits {18, 17, 16} but the code inverted the test. We need the additional XOR when dram_rule{1} == 0. Signed-off-by: Tony Luck Acked-by: Aristeu Rozanski Signed-off-by: Mauro Carvalho Chehab drivers/edac/sb_edac.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c44696fff04ff62f65441afe9ea244b47653dd6d Author: Tony Luck Date: Mon May 18 17:32:37 2015 -0300 EDAC: Remove arbitrary limit on number of channels Currently set to "6", but the reset of the code will dynamically allocate as needed. We need to go to "8" today, but drop the check completely to save doing this again when we need even larger numbers. Signed-off-by: Tony Luck Acked-by: Aristeu Rozanski Signed-off-by: Mauro Carvalho Chehab drivers/edac/edac_mc_sysfs.c | 5 ----- 1 file changed, 5 deletions(-) commit 1f121b03d058dd07199d8924373d3c52a207f63b Author: Wang Nan Date: Wed Jun 3 08:52:21 2015 +0000 perf tools: Deal with kernel module names in '[]' correctly Before patch ba92732e9808 ('perf kmaps: Check kmaps to make code more robust'), 'perf report' and 'perf annotate' will segfault if trace data contains kernel module information like this: # perf report -D -i ./perf.data ... 0 0 0x188 [0x50]: PERF_RECORD_MMAP -1/0: [0xffffffbff1018000(0xf068000) @ 0]: x [test_module] ... # perf report -i ./perf.data --objdump=/path/to/objdump --kallsyms=/path/to/kallsyms perf: Segmentation fault -------- backtrace -------- /path/to/perf[0x503478] /lib64/libc.so.6(+0x3545f)[0x7fb201f3745f] /path/to/perf[0x499b56] /path/to/perf(dso__load_kallsyms+0x13c)[0x49b56c] /path/to/perf(dso__load+0x72e)[0x49c21e] /path/to/perf(map__load+0x6e)[0x4ae9ee] /path/to/perf(thread__find_addr_map+0x24c)[0x47deec] /path/to/perf(perf_event__preprocess_sample+0x88)[0x47e238] /path/to/perf[0x43ad02] /path/to/perf[0x4b55bc] /path/to/perf(ordered_events__flush+0xca)[0x4b57ea] /path/to/perf[0x4b1a01] /path/to/perf(perf_session__process_events+0x3be)[0x4b428e] /path/to/perf(cmd_report+0xf11)[0x43bfc1] /path/to/perf[0x474702] /path/to/perf(main+0x5f5)[0x42de95] /lib64/libc.so.6(__libc_start_main+0xf4)[0x7fb201f23bd4] /path/to/perf[0x42dfc4] This is because __kmod_path__parse treats '[' leading names as kernel name instead of names of kernel module. If perf.data contains build information and the buildid of such modules can be found, the dso->kernel of it will be set to DSO_TYPE_KERNEL by __event_process_build_id(), not kernel module. It will then be passed to dso__load() -> dso__load_kernel_sym() -> dso__load_kcore() if --kallsyms is provided. The refered patch adds NULL pointer checker to avoid segfault. However, such kernel modules are still processed incorrectly. This patch fixes __kmod_path__parse, makes it treat names like '[test_module]' as kernel modules. kmod-path.c is also update to reflect the above changes. Signed-off-by: Wang Nan Acked-by: Jiri Olsa Cc: Namhyung Kim Cc: Zefan Li Link: http://lkml.kernel.org/r/1433321541-170245-1-git-send-email-wangnan0@huawei.com [ Fixed the merged with 0443f36b0de0 ("perf machine: Fix the search for the kernel DSO on the unified list" ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/kmod-path.c | 72 ++++++++++++++++++++++++++++++++++++++++++++ tools/perf/util/dso.c | 47 ++++++++++++++++++++++++++--- tools/perf/util/dso.h | 2 +- tools/perf/util/header.c | 8 ++--- tools/perf/util/machine.c | 22 +++++++++++++- 5 files changed, 140 insertions(+), 11 deletions(-) commit f71f81d70a264ac9924deb9a95a7e0a4578e7648 Merge: b7e60c5 ea2cdd2 Author: Paolo Bonzini Date: Wed Jun 3 14:51:02 2015 +0200 Merge tag 'kvm-s390-next-20150602' of git://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux into kvm-next KVM: s390: Fix and cleanup for 4.2 (kvm/next) One small fix for a commit targetted for 4.2 and one cleanup regarding our printks. commit ff268b56ce8c86be920e1e6a15d68b168bed66c9 Author: Stephen Boyd Date: Mon Jun 1 18:47:54 2015 -0700 regulator: core: Don't spew backtraces on duplicate sysfs We don't consider a failure to add the sysfs node as a problem, so use sysfs_create_link_nowarn() so that we don't print a backtrace when duplicated files exist. Also, downgrade the printk message to a debug statement so that we're quiet here. This allows multiple drivers to request a CPU's regulator so that CPUfreq and AVSish drivers can coexist. Signed-off-by: Stephen Boyd Signed-off-by: Mark Brown drivers/regulator/core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 4ad6ee91aa9f730136eccc02dfc1df4ad56baa57 Author: Gerd Hoffmann Date: Tue Jun 2 10:49:03 2015 +0200 Add MAINTAINERS entry for virtio-gpu. Signed-off-by: Gerd Hoffmann MAINTAINERS | 9 +++++++++ 1 file changed, 9 insertions(+) commit dc5698e80cf724770283e10414054662bdf6ccfa Author: Dave Airlie Date: Mon Sep 9 10:02:56 2013 +1000 Add virtio gpu driver. This patch adds a kms driver for the virtio gpu. The xorg modesetting driver can handle the device just fine, the framebuffer for fbcon is there too. Qemu patches for the host side are under review currently. The pci version of the device comes in two variants: with and without vga compatibility. The former has a extra memory bar for the vga framebuffer, the later is a pure virtio device. The only concern for this driver is that in the virtio-vga case we have to kick out the firmware framebuffer. Initial revision has only 2d support, 3d (virgl) support requires some more work on the qemu side and will be added later. Signed-off-by: Dave Airlie Signed-off-by: Gerd Hoffmann Acked-by: Michael S. Tsirkin drivers/gpu/drm/Kconfig | 2 + drivers/gpu/drm/Makefile | 1 + drivers/gpu/drm/virtio/Kconfig | 14 + drivers/gpu/drm/virtio/Makefile | 11 + drivers/gpu/drm/virtio/virtgpu_debugfs.c | 64 ++++ drivers/gpu/drm/virtio/virtgpu_display.c | 473 ++++++++++++++++++++++++ drivers/gpu/drm/virtio/virtgpu_drm_bus.c | 91 +++++ drivers/gpu/drm/virtio/virtgpu_drv.c | 136 +++++++ drivers/gpu/drm/virtio/virtgpu_drv.h | 350 ++++++++++++++++++ drivers/gpu/drm/virtio/virtgpu_fb.c | 431 ++++++++++++++++++++++ drivers/gpu/drm/virtio/virtgpu_fence.c | 119 ++++++ drivers/gpu/drm/virtio/virtgpu_gem.c | 140 +++++++ drivers/gpu/drm/virtio/virtgpu_kms.c | 173 +++++++++ drivers/gpu/drm/virtio/virtgpu_object.c | 170 +++++++++ drivers/gpu/drm/virtio/virtgpu_plane.c | 120 ++++++ drivers/gpu/drm/virtio/virtgpu_ttm.c | 469 +++++++++++++++++++++++ drivers/gpu/drm/virtio/virtgpu_vq.c | 614 +++++++++++++++++++++++++++++++ include/drm/drmP.h | 1 + include/uapi/linux/Kbuild | 1 + include/uapi/linux/virtio_gpu.h | 204 ++++++++++ include/uapi/linux/virtio_ids.h | 1 + 21 files changed, 3585 insertions(+) commit 516034787e06834816e9a0435499690704f01c47 Author: Misael Lopez Cruz Date: Wed Apr 22 16:23:01 2015 +0300 ASoC: omap-hdmi-audio: Fix invalid combination of DM_INH and CA DM_INH = 1 (stereo downmix prohibited) and CA = 0x00 (Channel Allocation: FR, FL) is an invalid combination according to the HDMI Compliance Test 7.31 "Audio InfoFrame". Signed-off-by: Misael Lopez Cruz Signed-off-by: Jyri Sarha Signed-off-by: Tomi Valkeinen Acked-by: Mark Brown sound/soc/omap/omap-hdmi-audio.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 88359b99d0841d0def5dffff911875dfc78a94fa Author: Misael Lopez Cruz Date: Wed Apr 22 16:23:00 2015 +0300 ASoC: omap-hdmi-audio: Force channel allocation only for OMAP4 There is a constraint in the OMAP4 HDMI IP that requires to use the 8-channel code when transmitting more than two channels. The constraint doesn't apply for OMAP5 so don't force the channel allocation in the sound driver as it can be done specifically for OMAP4 later in the hdmi4 core. Signed-off-by: Misael Lopez Cruz Signed-off-by: Jyri Sarha Signed-off-by: Tomi Valkeinen Acked-by: Mark Brown drivers/video/fbdev/omap2/dss/hdmi4_core.c | 7 +++++++ sound/soc/omap/omap-hdmi-audio.c | 6 ++---- 2 files changed, 9 insertions(+), 4 deletions(-) commit 65c8b46400752d54291e976d60ab13bfe5bb06b8 Author: Misael Lopez Cruz Date: Wed Apr 22 16:22:59 2015 +0300 OMAPDSS: HDMI5: Fix AUDICONF3 bitfield offsets Downmix inhibit in HDMI_CORE_FC_AUDICONF3 register is in bit 4 while CEA861_AUDIO_INFOFRAME_DB5_DM_INH sets bit 7. Signed-off-by: Misael Lopez Cruz Signed-off-by: Jyri Sarha Signed-off-by: Tomi Valkeinen drivers/video/fbdev/omap2/dss/hdmi5_core.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit aae1428c5060055b3ba7d38116aa8505f6b9e168 Author: Misael Lopez Cruz Date: Wed Apr 22 16:22:58 2015 +0300 OMAPDSS: HDMI5: Set valid sample order As per TRM, HDMI_WP_AUDIO_CFG[2] LEFT_BEFORE = 0 is reserved, so it must always be set to 1 (the first sample is the left). Signed-off-by: Misael Lopez Cruz Signed-off-by: Jyri Sarha Signed-off-by: Tomi Valkeinen drivers/video/fbdev/omap2/dss/hdmi5_core.c | 1 + 1 file changed, 1 insertion(+) commit 7877039f67abad68c01583c413667889f0d25584 Author: Misael Lopez Cruz Date: Wed Apr 22 16:22:57 2015 +0300 OMAPDSS: HDMI4: Set correct CC for 8-channels layout OMAP4 HDMI IP uses the 8-channel layout with 8-channel speaker allocation mask when transmitting more than two channels. But the channel count field (CC) of the Audio InfoFrame's DB1 is not updated for 8-channels. As per HDMI Compliance Test 7.31 "Audio InfoFrame", CC = 7 is required for 8-channels CA masks (0x13 and 0x1F). Signed-off-by: Misael Lopez Cruz Signed-off-by: Jyri Sarha Signed-off-by: Tomi Valkeinen drivers/video/fbdev/omap2/dss/hdmi4_core.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit fb323eccbcaff06c1ed21ab989198eb40df6e846 Author: Anda-Maria Nicolae Date: Wed Jun 3 11:47:03 2015 +0300 power_supply: rt9455_charger: Check if CONFIG_USB_PHY is enabled If CONFIG_USB_PHY is not enabled, struct notifier_block is not defined and compilation fails. Therefore, the functions that process USB event notifications are defined only if CONFIG_USB_PHY is enabled. There is no need to define these functions if CONFIG_USB_PHY is not enabled, since no USB notifications are received in this case. Also, since rt9455_set_boost_voltage_before_boost_mode() function is called only if USB_EVENT_ID notification is received, this function should also be defined only if CONFIG_USB_PHY is enabled. Signed-off-by: Anda-Maria Nicolae Signed-off-by: Sebastian Reichel drivers/power/rt9455_charger.c | 4 ++++ 1 file changed, 4 insertions(+) commit 2d5a3c803deedfa60014be8c0d933591c53db419 Author: Tomi Valkeinen Date: Mon Feb 23 12:53:56 2015 +0200 arm: dra7: add DESHDCP clock Add a new Linux clock for DRA7 based SoCs to control DESHDCP clock. Signed-off-by: Tomi Valkeinen Acked-by: Tero Kristo arch/arm/boot/dts/dra7.dtsi | 5 +++++ arch/arm/boot/dts/dra7xx-clocks.dtsi | 10 ++++++++++ arch/arm/mach-omap2/omap_hwmod_7xx_data.c | 1 + drivers/clk/ti/clk-7xx.c | 1 + 4 files changed, 17 insertions(+) commit 529498cde04537211cc3aa8f920c371b91c0f7d8 Author: Yanir Lubetkin Date: Tue Jun 2 17:05:50 2015 +0300 e1000e: Bump the version to 3.2.5 Bump the version to reflect the driver changes and bug fixes for i219. Also update the copyright, while we are at it. Signed-off-by: Yanir Lubetkin Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/e1000e/80003es2lan.c | 2 +- drivers/net/ethernet/intel/e1000e/80003es2lan.h | 2 +- drivers/net/ethernet/intel/e1000e/82571.c | 2 +- drivers/net/ethernet/intel/e1000e/82571.h | 2 +- drivers/net/ethernet/intel/e1000e/defines.h | 2 +- drivers/net/ethernet/intel/e1000e/e1000.h | 2 +- drivers/net/ethernet/intel/e1000e/ethtool.c | 2 +- drivers/net/ethernet/intel/e1000e/hw.h | 2 +- drivers/net/ethernet/intel/e1000e/ich8lan.c | 2 +- drivers/net/ethernet/intel/e1000e/ich8lan.h | 2 +- drivers/net/ethernet/intel/e1000e/mac.c | 2 +- drivers/net/ethernet/intel/e1000e/mac.h | 2 +- drivers/net/ethernet/intel/e1000e/manage.c | 2 +- drivers/net/ethernet/intel/e1000e/manage.h | 2 +- drivers/net/ethernet/intel/e1000e/netdev.c | 6 +++--- drivers/net/ethernet/intel/e1000e/nvm.c | 2 +- drivers/net/ethernet/intel/e1000e/nvm.h | 2 +- drivers/net/ethernet/intel/e1000e/param.c | 2 +- drivers/net/ethernet/intel/e1000e/phy.c | 2 +- drivers/net/ethernet/intel/e1000e/phy.h | 2 +- drivers/net/ethernet/intel/e1000e/ptp.c | 2 +- drivers/net/ethernet/intel/e1000e/regs.h | 2 +- 22 files changed, 24 insertions(+), 24 deletions(-) commit 2ec7d2974c5665780e5f2b532833b76531f0a8d3 Author: Yanir Lubetkin Date: Tue Jun 2 17:05:47 2015 +0300 e1000e: fix unit hang during loopback test System would hang during execution of "ethtool -t " for the same reason that required flushing the descriptor rings. This fix disables MULR for the loopback test to avoid the hang state. Signed-off-by: Yanir Lubetkin Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/e1000e/ethtool.c | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) commit 83129b37ef35bb6a7f01c060129736a8db5d31c4 Author: Yanir Lubetkin Date: Tue Jun 2 17:05:45 2015 +0300 e1000e: fix systim issues Two issues involving systim were reported. 1. Clock is not running in the correct frequency 2. In some situations, systim values were not incremented linearly This patch fixes the hardware clock configuration and the spurious non-linear increment. Signed-off-by: Yanir Lubetkin Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/e1000e/e1000.h | 4 ++++ drivers/net/ethernet/intel/e1000e/netdev.c | 37 +++++++++++++++++++++--------- 2 files changed, 30 insertions(+), 11 deletions(-) commit 6ca0709756710c47ec604dd08b9fc45929d36390 Author: Filipe Manana Date: Tue May 26 00:55:42 2015 +0100 Btrfs: fix hang during inode eviction due to concurrent readahead Zygo Blaxell and other users have reported occasional hangs while an inode is being evicted, leading to traces like the following: [ 5281.972322] INFO: task rm:20488 blocked for more than 120 seconds. [ 5281.973836] Not tainted 4.0.0-rc5-btrfs-next-9+ #2 [ 5281.974818] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. [ 5281.976364] rm D ffff8800724cfc38 0 20488 7747 0x00000000 [ 5281.977506] ffff8800724cfc38 ffff8800724cfc38 ffff880065da5c50 0000000000000001 [ 5281.978461] ffff8800724cffd8 ffff8801540a5f50 0000000000000008 ffff8801540a5f78 [ 5281.979541] ffff8801540a5f50 ffff8800724cfc58 ffffffff8143107e 0000000000000123 [ 5281.981396] Call Trace: [ 5281.982066] [] schedule+0x74/0x83 [ 5281.983341] [] wait_on_state+0xac/0xcd [btrfs] [ 5281.985127] [] ? signal_pending_state+0x31/0x31 [ 5281.986715] [] wait_extent_bit.constprop.32+0x7c/0xde [btrfs] [ 5281.988680] [] lock_extent_bits+0x5d/0x88 [btrfs] [ 5281.990200] [] btrfs_evict_inode+0x24e/0x5be [btrfs] [ 5281.991781] [] evict+0xa0/0x148 [ 5281.992735] [] iput+0x18f/0x1e5 [ 5281.993796] [] do_unlinkat+0x15b/0x1fa [ 5281.994806] [] ? ret_from_sys_call+0x1d/0x58 [ 5281.996120] [] ? trace_hardirqs_on_caller+0x18f/0x1ab [ 5281.997562] [] ? trace_hardirqs_on_thunk+0x3a/0x3f [ 5281.998815] [] SyS_unlinkat+0x29/0x2b [ 5281.999920] [] system_call_fastpath+0x12/0x17 [ 5282.001299] 1 lock held by rm/20488: [ 5282.002066] #0: (sb_writers#12){.+.+.+}, at: [] mnt_want_write+0x24/0x4b This happens when we have readahead, which calls readpages(), happening right before the inode eviction handler is invoked. So the reason is essentially: 1) readpages() is called while a reference on the inode is held, so eviction can not be triggered before readpages() returns. It also locks one or more ranges in the inode's io_tree (which is done at extent_io.c:__do_contiguous_readpages()); 2) readpages() submits several read bios, all with an end io callback that runs extent_io.c:end_bio_extent_readpage() and that is executed by other task when a bio finishes, corresponding to a work queue (fs_info->end_io_workers) worker kthread. This callback unlocks the ranges in the inode's io_tree that were previously locked in step 1; 3) readpages() returns, the reference on the inode is dropped; 4) One or more of the read bios previously submitted are still not complete (their end io callback was not yet invoked or has not yet finished execution); 5) Inode eviction is triggered (through an unlink call for example). The inode reference count was not incremented before submitting the read bios, therefore this is possible; 6) The eviction handler starts executing and enters the loop that iterates over all extent states in the inode's io_tree; 7) The loop picks one extent state record and uses its ->start and ->end fields, after releasing the inode's io_tree spinlock, to call lock_extent_bits() and clear_extent_bit(). The call to lock the range [state->start, state->end] blocks because the whole range or a part of it was locked by the previous call to readpages() and the corresponding end io callback, which unlocks the range was not yet executed; 8) The end io callback for the read bio is executed and unlocks the range [state->start, state->end] (or a superset of that range). And at clear_extent_bit() the extent_state record state is used as a second argument to split_state(), which sets state->start to a larger value; 9) The task executing the eviction handler is woken up by the task executing the bio's end io callback (through clear_state_bit) and the eviction handler locks the range [old value for state->start, state->end]. Shortly after, when calling clear_extent_bit(), it unlocks the range [new value for state->start, state->end], so it ends up unlocking only part of the range that it locked, leaving an extent state record in the io_tree that represents the unlocked subrange; 10) The eviction handler loop, in its next iteration, gets the extent_state record for the subrange that it did not unlock in the previous step and then tries to lock it, resulting in an hang. So fix this by not using the ->start and ->end fields of an existing extent_state record. This is a simple solution, and an alternative could be to bump the inode's reference count before submitting each read bio and having it dropped in the bio's end io callback. But that would be a more invasive/complex change and would not protect against other possible places that are not holding a reference on the inode as well. Something to consider in the future. Many thanks to Zygo Blaxell for reporting, in the mailing list, the issue, a set of scripts to trigger it and testing this fix. Reported-by: Zygo Blaxell Tested-by: Zygo Blaxell Signed-off-by: Filipe Manana Signed-off-by: Chris Mason fs/btrfs/inode.c | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) commit 64c043de466d5746e7ca306dab9d418cd871cefc Author: Liu Bo Date: Mon May 25 17:30:15 2015 +0800 Btrfs: fix up read_tree_block to return proper error The return value of read_tree_block() can confuse callers as it always returns NULL for either -ENOMEM or -EIO, so it's likely that callers parse it to a wrong error, for instance, in btrfs_read_tree_root(). This fixes the above issue. Signed-off-by: Liu Bo Reviewed-by: David Sterba Signed-off-by: Chris Mason fs/btrfs/backref.c | 9 +++++++-- fs/btrfs/ctree.c | 16 ++++++++++------ fs/btrfs/disk-io.c | 28 +++++++++++++++------------- fs/btrfs/extent-tree.c | 11 ++++++++--- fs/btrfs/relocation.c | 19 ++++++++++++++----- 5 files changed, 54 insertions(+), 29 deletions(-) commit 8635eda91ee11690bd8f73b2504ee19431fd6380 Author: Liu Bo Date: Mon May 25 17:30:14 2015 +0800 Btrfs: add missing free_extent_buffer read_tree_block may take a reference on the 'eb', a following free_extent_buffer is necessary. Signed-off-by: Liu Bo Reviewed-by: David Sterba Signed-off-by: Chris Mason fs/btrfs/extent-tree.c | 1 + 1 file changed, 1 insertion(+) commit 0c304304feab8a576ed6ba6ec964255d00d2886e Author: Liu Bo Date: Mon May 25 11:20:22 2015 +0800 Btrfs: remove csum_bytes_left After commit 8407f553268a ("Btrfs: fix data corruption after fast fsync and writeback error"), during wait_ordered_extents(), we wait for ordered extent setting BTRFS_ORDERED_IO_DONE or BTRFS_ORDERED_IOERR, at which point we've already got checksum information, so we don't need to check (csum_bytes_left == 0) in the whole logging path. Signed-off-by: Liu Bo Signed-off-by: Chris Mason fs/btrfs/ordered-data.c | 7 ------- fs/btrfs/ordered-data.h | 3 --- fs/btrfs/tree-log.c | 6 ------ 3 files changed, 16 deletions(-) commit 39c2d7faccc5ca5a1be682b01c0db5fafa8adeda Author: Filipe Manana Date: Wed May 20 14:01:55 2015 +0100 Btrfs: fix -ENOSPC on block group removal Unlike when attempting to allocate a new block group, where we check that we have enough space in the system space_info to update the device items and insert a new chunk item in the chunk tree, we were not checking if the system space_info had enough space for updating the device items and deleting the chunk item in the chunk tree. This often lead to -ENOSPC error when attempting to allocate blocks for the chunk tree (during btree node/leaf COW operations) while updating the device items or deleting the chunk item, which resulted in the current transaction being aborted and turning the filesystem into read-only mode. While running fstests generic/038, which stresses allocation of block groups and removal of unused block groups, with a large scratch device (750Gb) this happened often, despite more than enough unallocated space, and resulted in the following trace: [68663.586604] WARNING: CPU: 3 PID: 1521 at fs/btrfs/super.c:260 __btrfs_abort_transaction+0x52/0x114 [btrfs]() [68663.600407] BTRFS: Transaction aborted (error -28) (...) [68663.730829] Call Trace: [68663.732585] [] dump_stack+0x4f/0x7b [68663.734334] [] ? console_unlock+0x361/0x3ad [68663.739980] [] warn_slowpath_common+0xa1/0xbb [68663.757153] [] ? __btrfs_abort_transaction+0x52/0x114 [btrfs] [68663.760925] [] warn_slowpath_fmt+0x46/0x48 [68663.762854] [] ? btrfs_update_device+0x15a/0x16c [btrfs] [68663.764073] [] __btrfs_abort_transaction+0x52/0x114 [btrfs] [68663.765130] [] btrfs_remove_chunk+0x597/0x5ee [btrfs] [68663.765998] [] ? btrfs_delete_unused_bgs+0x245/0x296 [btrfs] [68663.767068] [] btrfs_delete_unused_bgs+0x258/0x296 [btrfs] [68663.768227] [] ? _raw_spin_unlock_irq+0x2d/0x4c [68663.769081] [] cleaner_kthread+0x13d/0x16c [btrfs] [68663.799485] [] ? btrfs_alloc_root+0x28/0x28 [btrfs] [68663.809208] [] kthread+0xef/0xf7 [68663.828795] [] ? time_hardirqs_on+0x15/0x28 [68663.844942] [] ? __kthread_parkme+0xad/0xad [68663.846486] [] ret_from_fork+0x58/0x90 [68663.847760] [] ? __kthread_parkme+0xad/0xad [68663.849503] ---[ end trace 798477c6d6dbaad6 ]--- [68663.850525] BTRFS: error (device sdc) in btrfs_remove_chunk:2652: errno=-28 No space left So fix this by verifying that enough space exists in system space_info, and reserving the space in the chunk block reserve, before attempting to delete the block group and allocate a new system chunk if we don't have enough space to perform the necessary updates and delete in the chunk tree. Like for the block group creation case, we don't error our if we fail to allocate a new system chunk, since we might end up not needing it (no node/leaf splits happen during the COW operations and/or we end up not needing to COW any btree nodes or leafs because they were already COWed in the current transaction and their writeback didn't start yet). Signed-off-by: Filipe Manana Signed-off-by: Chris Mason fs/btrfs/ctree.h | 4 ++++ fs/btrfs/extent-tree.c | 31 +++++++++++++++++++++++-------- fs/btrfs/volumes.c | 3 +++ 3 files changed, 30 insertions(+), 8 deletions(-) commit 4fbcdf6694544fd9d2aedbc1e73e52b90a4fcc20 Author: Filipe Manana Date: Wed May 20 14:01:54 2015 +0100 Btrfs: fix -ENOSPC when finishing block group creation While creating a block group, we often end up getting ENOSPC while updating the chunk tree, which leads to a transaction abortion that produces a trace like the following: [30670.116368] WARNING: CPU: 4 PID: 20735 at fs/btrfs/super.c:260 __btrfs_abort_transaction+0x52/0x106 [btrfs]() [30670.117777] BTRFS: Transaction aborted (error -28) (...) [30670.163567] Call Trace: [30670.163906] [] dump_stack+0x4f/0x7b [30670.164522] [] ? console_unlock+0x361/0x3ad [30670.165171] [] warn_slowpath_common+0xa1/0xbb [30670.166323] [] ? __btrfs_abort_transaction+0x52/0x106 [btrfs] [30670.167213] [] warn_slowpath_fmt+0x46/0x48 [30670.167862] [] __btrfs_abort_transaction+0x52/0x106 [btrfs] [30670.169116] [] btrfs_create_pending_block_groups+0x101/0x130 [btrfs] [30670.170593] [] __btrfs_end_transaction+0x84/0x366 [btrfs] [30670.171960] [] btrfs_end_transaction+0x10/0x12 [btrfs] [30670.174649] [] btrfs_check_data_free_space+0x11f/0x27c [btrfs] [30670.176092] [] btrfs_fallocate+0x7c8/0xb96 [btrfs] [30670.177218] [] ? __this_cpu_preempt_check+0x13/0x15 [30670.178622] [] vfs_fallocate+0x14c/0x1de [30670.179642] [] ? __fget_light+0x2d/0x4f [30670.180692] [] SyS_fallocate+0x47/0x62 [30670.186737] [] system_call_fastpath+0x12/0x17 [30670.187792] ---[ end trace 0373e6b491c4a8cc ]--- This is because we don't do proper space reservation for the chunk block reserve when we have multiple tasks allocating chunks in parallel. So block group creation has 2 phases, and the first phase essentially checks if there is enough space in the system space_info, allocating a new system chunk if there isn't, while the second phase updates the device, extent and chunk trees. However, because the updates to the chunk tree happen in the second phase, if we have N tasks, each with its own transaction handle, allocating new chunks in parallel and if there is only enough space in the system space_info to allocate M chunks, where M < N, none of the tasks ends up allocating a new system chunk in the first phase and N - M tasks will get -ENOSPC when attempting to update the chunk tree in phase 2 if they need to COW any nodes/leafs from the chunk tree. Fix this by doing proper reservation in the chunk block reserve. The issue could be reproduced by running fstests generic/038 in a loop, which eventually triggered the problem. Signed-off-by: Filipe Manana Signed-off-by: Chris Mason fs/btrfs/ctree.h | 1 + fs/btrfs/extent-tree.c | 44 ++++++++++++++++++++++++++++++++++++++++++-- fs/btrfs/transaction.c | 6 ++++++ fs/btrfs/transaction.h | 1 + 4 files changed, 50 insertions(+), 2 deletions(-) commit 0d2b2372e097cd3b4150d3ec91e79ac3c5cc750e Author: Josef Bacik Date: Tue May 19 10:44:04 2015 -0400 Btrfs: set UNWRITTEN for prealloc'ed extents in fiemap We should be doing this, it's weird we hadn't been doing this. Signed-off-by: Josef Bacik Signed-off-by: Chris Mason fs/btrfs/extent_io.c | 2 ++ 1 file changed, 2 insertions(+) commit c8d3fe028f64054d75c72566efb9ecf3c75ee161 Author: Omar Sandoval Date: Mon May 18 02:16:31 2015 -0700 Btrfs: show subvol= and subvolid= in /proc/mounts Now that we're guaranteed to have a meaningful root dentry, we can just export seq_dentry() and use it in btrfs_show_options(). The subvolume ID is easy to get and can also be useful, so put that in there, too. Reviewed-by: David Sterba Signed-off-by: Omar Sandoval Signed-off-by: Chris Mason fs/btrfs/super.c | 4 ++++ fs/seq_file.c | 1 + 2 files changed, 5 insertions(+) commit 05dbe6837b60465db6a61d1f0cabe745e20aadc9 Author: Omar Sandoval Date: Mon May 18 02:16:30 2015 -0700 Btrfs: unify subvol= and subvolid= mounting Currently, mounting a subvolume with subvolid= takes a different code path than mounting with subvol=. This isn't really a big deal except for the fact that mounts done with subvolid= or the default subvolume don't have a dentry that's connected to the dentry tree like in the subvol= case. To unify the code paths, when given subvolid= or using the default subvolume ID, translate it into a subvolume name by walking ROOT_BACKREFs in the root tree and INODE_REFs in the filesystem trees. Reviewed-by: David Sterba Signed-off-by: Omar Sandoval Signed-off-by: Chris Mason fs/btrfs/super.c | 238 +++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 171 insertions(+), 67 deletions(-) commit bb289b7be62db84b9630ce00367444c810cada2c Author: Omar Sandoval Date: Mon May 18 02:16:29 2015 -0700 Btrfs: fail on mismatched subvol and subvolid mount options There's nothing to stop a user from passing both subvol= and subvolid= to mount, but if they don't refer to the same subvolume, someone is going to be surprised at some point. Error out on this case, but allow users to pass in both if they do match (which they could, for example, get out of /proc/mounts). Reviewed-by: David Sterba Signed-off-by: Omar Sandoval Signed-off-by: Chris Mason fs/btrfs/super.c | 33 +++++++++++++++++++++++++-------- 1 file changed, 25 insertions(+), 8 deletions(-) commit fa3306595071ae03e181c2336d0dcd8f5e3cf9b0 Author: Omar Sandoval Date: Mon May 18 02:16:28 2015 -0700 Btrfs: clean up error handling in mount_subvol() In preparation for new functionality in mount_subvol(), give it ownership of subvol_name and tidy up the error paths. Reviewed-by: David Sterba Signed-off-by: Omar Sandoval Signed-off-by: Chris Mason fs/btrfs/super.c | 61 ++++++++++++++++++++++++++++++-------------------------- 1 file changed, 33 insertions(+), 28 deletions(-) commit e6e4dbe894ef29bd4aa05a7702e0cded1943dd10 Author: Omar Sandoval Date: Mon May 18 02:16:27 2015 -0700 Btrfs: remove all subvol options before mounting top-level Currently, setup_root_args() substitutes 's/subvol=[^,]*/subvolid=0/'. But, this means that if the user passes both a subvol and subvolid for some reason, we won't actually mount the top-level when we recursively mount. For example, consider: mkfs.btrfs -f /dev/sdb mount /dev/sdb /mnt btrfs subvol create /mnt/subvol1 # subvolid=257 btrfs subvol create /mnt/subvol2 # subvolid=258 umount /mnt mount -osubvol=/subvol1,subvolid=258 /dev/sdb /mnt In the final mount, subvol=/subvol1,subvolid=258 becomes subvolid=0,subvolid=258, and the last option takes precedence, so we mount subvol2 and try to look up subvol1 inside of it, which fails. So, instead, do a thorough scan through the argument list and remove any subvol= and subvolid= options, then append subvolid=0 to the end. This implicitly makes subvol= take precedence over subvolid=, but we're about to add a stricter check for that. This also makes setup_root_args() more generic, which we'll need soon. Reviewed-by: David Sterba Signed-off-by: Omar Sandoval Signed-off-by: Chris Mason fs/btrfs/super.c | 56 ++++++++++++++++++++------------------------------------ 1 file changed, 20 insertions(+), 36 deletions(-) commit 773cd04ec1911abb33cf9538b65f55b76cad5d92 Author: Omar Sandoval Date: Mon May 18 02:16:26 2015 -0700 Btrfs: lock superblock before remounting for rw subvol Since commit 0723a0473fb4 ("btrfs: allow mounting btrfs subvolumes with different ro/rw options"), when mounting a subvolume read/write when another subvolume has previously been mounted read-only, we first do a remount. However, this should be done with the superblock locked, as per sync_filesystem(): /* * We need to be protected against the filesystem going from * r/o to r/w or vice versa. */ WARN_ON(!rwsem_is_locked(&sb->s_umount)); This WARN_ON can easily be hit with: mkfs.btrfs -f /dev/vdb mount /dev/vdb /mnt btrfs subvol create /mnt/vol1 btrfs subvol create /mnt/vol2 umount /mnt mount -oro,subvol=/vol1 /dev/vdb /mnt mount -orw,subvol=/vol2 /dev/vdb /mnt2 Fixes: 0723a0473fb4 ("btrfs: allow mounting btrfs subvolumes with different ro/rw options") Reviewed-by: David Sterba Signed-off-by: Omar Sandoval Signed-off-by: Chris Mason fs/btrfs/super.c | 2 ++ 1 file changed, 2 insertions(+) commit 0f31871f4411b5c0d42fb4403dec83a21a96100b Author: Filipe Manana Date: Thu May 14 20:41:07 2015 +0100 Btrfs: wake up extent state waiters on unlock through clear_extent_bits When we clear an extent state's EXTENT_LOCKED bit with clear_extent_bits() through free_io_failure(), we weren't waking up any tasks waiting for the extent's state EXTENT_LOCKED bit, leading to an hang. So make sure clear_extent_bits() ends up waking up any waiters if the bit EXTENT_LOCKED is supplied by its callers. Zygo Blaxell was experiencing such hangs at inode eviction time after file unlinks. Thanks to him for a set of scripts to reproduce the issue. Reported-by: Zygo Blaxell Signed-off-by: Filipe Manana Reviewed-by: Liu Bo Signed-off-by: Chris Mason fs/btrfs/extent_io.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit c152b63efc94d5fd486a39e9df5e61ae77e08e44 Author: Filipe Manana Date: Thu May 14 10:46:03 2015 +0100 Btrfs: fix chunk allocation regression leading to transaction abort With commit 1b9845081633 ("Btrfs: fix find_free_dev_extent() malfunction in case device tree has hole") introduced in the kernel 4.1 merge window, we end up using part of a device hole for which there are already pending chunks or pinned chunks. Before that commit we didn't use the hole and would just move on to the next hole in the device. However when we adjust the start offset for the chunk allocation and we have pinned chunks, we set it blindly to the end offset of the pinned chunk we are currently processing, which is dangerous because we can have a pending chunk that has a start offset that matches the end offset of our pinned chunk - leading us to a case where we end up getting two pending chunks that start at the same physical device offset, which makes us later abort the current transaction with -EEXIST when finishing the chunk allocation at btrfs_create_pending_block_groups(): [194737.659017] ------------[ cut here ]------------ [194737.660192] WARNING: CPU: 15 PID: 31111 at fs/btrfs/super.c:260 __btrfs_abort_transaction+0x52/0x106 [btrfs]() [194737.662209] BTRFS: Transaction aborted (error -17) [194737.663175] Modules linked in: btrfs dm_snapshot dm_bufio dm_flakey dm_mod crc32c_generic xor raid6_pq nfsd auth_rpcgss oid_registry nfs_acl nfs lockd grace fscache sunrpc loop fuse [194737.674015] CPU: 15 PID: 31111 Comm: xfs_io Tainted: G W 4.0.0-rc5-btrfs-next-9+ #2 [194737.675986] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.7.5-0-ge51488c-20140602_164612-nilsson.home.kraxel.org 04/01/2014 [194737.682999] 0000000000000009 ffff8800564c7a98 ffffffff8142fa46 ffffffff8108b6a2 [194737.684540] ffff8800564c7ae8 ffff8800564c7ad8 ffffffff81045ea5 ffff8800564c7b78 [194737.686017] ffffffffa0383aa7 00000000ffffffef ffff88000c7ba000 ffff8801a1f66f40 [194737.687509] Call Trace: [194737.688068] [] dump_stack+0x4f/0x7b [194737.689027] [] ? console_unlock+0x361/0x3ad [194737.690095] [] warn_slowpath_common+0xa1/0xbb [194737.691198] [] ? __btrfs_abort_transaction+0x52/0x106 [btrfs] [194737.693789] [] warn_slowpath_fmt+0x46/0x48 [194737.695065] [] __btrfs_abort_transaction+0x52/0x106 [btrfs] [194737.696806] [] btrfs_create_pending_block_groups+0x101/0x130 [btrfs] [194737.698683] [] __btrfs_end_transaction+0x84/0x366 [btrfs] [194737.700329] [] btrfs_end_transaction+0x10/0x12 [btrfs] [194737.701924] [] btrfs_check_data_free_space+0x11f/0x27c [btrfs] [194737.703675] [] __btrfs_buffered_write+0x16a/0x4c8 [btrfs] [194737.705417] [] ? btrfs_file_write_iter+0x19a/0x431 [btrfs] [194737.707058] [] ? btrfs_file_write_iter+0x1a9/0x431 [btrfs] [194737.708560] [] btrfs_file_write_iter+0x325/0x431 [btrfs] [194737.710673] [] ? get_parent_ip+0xe/0x3e [194737.712076] [] new_sync_write+0x7c/0xa0 [194737.713293] [] vfs_write+0xb2/0x117 [194737.714443] [] SyS_pwrite64+0x64/0x82 [194737.715646] [] system_call_fastpath+0x12/0x17 [194737.717175] ---[ end trace f2d5dc04e56d7e48 ]--- [194737.718170] BTRFS: error (device sdc) in btrfs_create_pending_block_groups:9524: errno=-17 Object already exists The -EEXIST failure comes from btrfs_finish_chunk_alloc(), called by btrfs_create_pending_block_groups(), when it attempts to insert a duplicated device extent item via btrfs_alloc_dev_extent(). This issue was reproducible with fstests generic/038 running in a loop for several hours (it's very hard to hit) and using MOUNT_OPTIONS="-o discard". Applying Jeff's recent patch titled "btrfs: add missing discards when unpinning extents with -o discard" makes the issue much easier to reproduce (usually within 4 to 5 hours), since it pins chunks for longer periods of time when an unused block group is deleted by the cleaner kthread. Fix this by making sure that we never adjust the start offset to a lower value than it currently has. Fixes: 1b9845081633 ("Btrfs: fix find_free_dev_extent() malfunction in case device tree has hole" Signed-off-by: Filipe Manana Signed-off-by: Chris Mason fs/btrfs/volumes.c | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) commit ec945cfbbf918dd862d7574f9b75588ba1f4a729 Author: Yanir Lubetkin Date: Tue Jun 2 17:05:42 2015 +0300 e1000e: fix legacy interrupt handling in i219 This fix handles a hardware issue that prevented i219 from working in legacy interrupts mode (IntMode=0) Signed-off-by: Yanir Lubetkin Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/e1000e/ich8lan.h | 5 ++++- drivers/net/ethernet/intel/e1000e/netdev.c | 14 ++++++++++++++ drivers/net/ethernet/intel/e1000e/regs.h | 1 + 3 files changed, 19 insertions(+), 1 deletion(-) commit 669f6f96c680a741257ada44a28b580df2e1fc25 Author: Ingo Molnar Date: Wed Jun 3 12:39:26 2015 +0200 Documentation/features: Explain kernel feature descriptions and add visualization script The previous patches added arch support matrices for more than 40 generic kernel features that need per architecture support. The structure of the feature descriptions is the following: Each feature has its own directory under Documentation/features/subsystem_name/feature_name/, and the arch-support.txt file shows its current arch porting status. For example, lockdep support is shown the following way: triton:~/tip> cat Documentation/features/locking/lockdep/arch-support.txt # # Feature name: lockdep # Kconfig: LOCKDEP_SUPPORT # description: arch supports the runtime locking correctness debug facility # ----------------------- | arch |status| ----------------------- | alpha: | TODO | | arc: | ok | | arm: | ok | | arm64: | ok | | avr32: | ok | | blackfin: | ok | | c6x: | TODO | | cris: | TODO | | frv: | TODO | | h8300: | TODO | | hexagon: | ok | | ia64: | TODO | | m32r: | TODO | | m68k: | TODO | | metag: | ok | | microblaze: | ok | | mips: | ok | | mn10300: | TODO | | nios2: | TODO | | openrisc: | TODO | | parisc: | TODO | | powerpc: | ok | | s390: | ok | | score: | ok | | sh: | ok | | sparc: | ok | | tile: | ok | | um: | ok | | unicore32: | ok | | x86: | ok | | xtensa: | ok | ----------------------- For generic kernel features that need architecture support, the arch-support.txt file in each feature directory shows the arch support matrix, for all upstream Linux architectures. The meaning of entries in the tables is: | ok | # feature supported by the architecture |TODO| # feature not yet supported by the architecture | .. | # feature cannot be supported by the hardware This directory structure can be used in the future to add other files - such as porting guides, testing description, etc. The Documentation/features/ hierarchy may also include generic kernel features that works on every architecture, in that case the arch-support.txt file will list every architecture as supported. To list an architecture's unsupported features, just do something like: triton:~/tip> git grep -lE 'x86.*TODO' Documentation/features/*/*/arch-support.txt Documentation/features/lib/strncasecmp/arch-support.txt Documentation/features/time/arch-tick-broadcast/arch-support.txt which will print the list of not yet supported features. The Documentation/features/list-arch.sh script will print the current support matrix of one architecture: triton:~/tip> Documentation/features/list-arch.sh # # Kernel feature support matrix of the 'x86' architecture: # core/ BPF-JIT : ok | HAVE_BPF_JIT # arch supports BPF JIT optimizations core/ generic-idle-thread : ok | GENERIC_SMP_IDLE_THREAD # arch makes use of the generic SMP idle thread facility core/ jump-labels : ok | HAVE_ARCH_JUMP_LABEL # arch supports live patched, high efficiency branches core/ tracehook : ok | HAVE_ARCH_TRACEHOOK # arch supports tracehook (ptrace) register handling APIs debug/ gcov-profile-all : ok | ARCH_HAS_GCOV_PROFILE_ALL # arch supports whole-kernel GCOV code coverage profiling debug/ KASAN : ok | HAVE_ARCH_KASAN # arch supports the KASAN runtime memory checker debug/ kgdb : ok | HAVE_ARCH_KGDB # arch supports the kGDB kernel debugger debug/ kprobes : ok | HAVE_KPROBES # arch supports live patched kernel probe debug/ kprobes-on-ftrace : ok | HAVE_KPROBES_ON_FTRACE # arch supports combined kprobes and ftrace live patching debug/ kretprobes : ok | HAVE_KRETPROBES # arch supports kernel function-return probes debug/ optprobes : ok | HAVE_OPTPROBES # arch supports live patched optprobes debug/ stackprotector : ok | HAVE_CC_STACKPROTECTOR # arch supports compiler driven stack overflow protection debug/ uprobes : ok | ARCH_SUPPORTS_UPROBES # arch supports live patched user probes debug/ user-ret-profiler : ok | HAVE_USER_RETURN_NOTIFIER # arch supports user-space return from system call profiler io/ dma-api-debug : ok | HAVE_DMA_API_DEBUG # arch supports DMA debug facilities io/ dma-contiguous : ok | HAVE_DMA_CONTIGUOUS # arch supports the DMA CMA (continuous memory allocator) io/ dma_map_attrs : ok | HAVE_DMA_ATTRS # arch provides dma_*map*_attrs() APIs io/ sg-chain : ok | ARCH_HAS_SG_CHAIN # arch supports chained scatter-gather lists lib/ strncasecmp : TODO | __HAVE_ARCH_STRNCASECMP # arch provides an optimized strncasecmp() function locking/ cmpxchg-local : ok | HAVE_CMPXCHG_LOCAL # arch supports the this_cpu_cmpxchg() API locking/ lockdep : ok | LOCKDEP_SUPPORT # arch supports the runtime locking correctness debug facility locking/ queued-rwlocks : ok | ARCH_USE_QUEUED_RWLOCKS # arch supports queued rwlocks locking/ queued-spinlocks : ok | ARCH_USE_QUEUED_SPINLOCKS # arch supports queued spinlocks locking/ rwsem-optimized : ok | Optimized asm/rwsem.h # arch provides optimized rwsem APIs perf/ kprobes-event : ok | HAVE_REGS_AND_STACK_ACCESS_API # arch supports kprobes with perf events perf/ perf-regs : ok | HAVE_PERF_REGS # arch supports perf events register access perf/ perf-stackdump : ok | HAVE_PERF_USER_STACK_DUMP # arch supports perf events stack dumps sched/ numa-balancing : ok | ARCH_SUPPORTS_NUMA_BALANCING # arch supports NUMA balancing seccomp/ seccomp-filter : ok | HAVE_ARCH_SECCOMP_FILTER # arch supports seccomp filters time/ arch-tick-broadcast : TODO | ARCH_HAS_TICK_BROADCAST # arch provides tick_broadcast() time/ clockevents : ok | GENERIC_CLOCKEVENTS # arch support generic clock events time/ context-tracking : ok | HAVE_CONTEXT_TRACKING # arch supports context tracking for NO_HZ_FULL time/ irq-time-acct : ok | HAVE_IRQ_TIME_ACCOUNTING # arch supports precise IRQ time accounting time/ modern-timekeeping : ok | !ARCH_USES_GETTIMEOFFSET # arch does not use arch_gettimeoffset() anymore time/ virt-cpuacct : ok | HAVE_VIRT_CPU_ACCOUNTING # arch supports precise virtual CPU time accounting vm/ ELF-ASLR : ok | ARCH_HAS_ELF_RANDOMIZE # arch randomizes the stack, heap and binary images of ELF binaries vm/ huge-vmap : ok | HAVE_ARCH_HUGE_VMAP # arch supports the ioremap_pud_enabled() and ioremap_pmd_enabled() VM APIs vm/ ioremap_prot : ok | HAVE_IOREMAP_PROT # arch has ioremap_prot() vm/ numa-memblock : ok | HAVE_MEMBLOCK_NODE_MAP # arch supports NUMA aware memblocks vm/ PG_uncached : ok | ARCH_USES_PG_UNCACHED # arch supports the PG_uncached page flag vm/ pmdp_splitting_flush : ok | __HAVE_ARCH_PMDP_SPLITTING_FLUSH # arch supports the pmdp_splitting_flush() VM API vm/ pte_special : ok | __HAVE_ARCH_PTE_SPECIAL # arch supports the pte_special()/pte_mkspecial() VM APIs vm/ THP : ok | HAVE_ARCH_TRANSPARENT_HUGEPAGE # arch supports transparent hugepages Cc: Cc: Cc: Cc: Andrew Morton Cc: H. Peter Anvin Cc: Jonathan Corbet Cc: Josh Triplett Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar Documentation/features/arch-support.txt | 11 +++++++++++ Documentation/features/list-arch.sh | 24 ++++++++++++++++++++++++ 2 files changed, 35 insertions(+) commit b07b6ecc01fa435d1c5d3fc50ee675ed36dd89d5 Author: Ingo Molnar Date: Wed Jun 3 12:37:44 2015 +0200 Documentation/features/core: Add feature description and arch support status file for 'BPF-JIT' Cc: Cc: Cc: Cc: Andrew Morton Cc: H. Peter Anvin Cc: Jonathan Corbet Cc: Josh Triplett Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar .../features/core/BPF-JIT/arch-support.txt | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit 2eda9972bbd12b9feb92ec057deac8e8846e650d Author: Ingo Molnar Date: Wed Jun 3 12:37:43 2015 +0200 Documentation/features/locking: Add feature description and arch support status file for 'queued-rwlocks' Cc: Cc: Cc: Cc: Andrew Morton Cc: H. Peter Anvin Cc: Jonathan Corbet Cc: Josh Triplett Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar .../locking/queued-rwlocks/arch-support.txt | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit 33006fae4bd7633ba4486a3cf64ad1cd1e8aa093 Author: Ingo Molnar Date: Wed Jun 3 12:37:42 2015 +0200 Documentation/features/locking: Add feature description and arch support status file for 'queued-spinlocks' Cc: Cc: Cc: Cc: Andrew Morton Cc: H. Peter Anvin Cc: Jonathan Corbet Cc: Josh Triplett Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar .../locking/queued-spinlocks/arch-support.txt | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit 5fac5f55f3fd4d9e639778c0d6e412d8ff0b5528 Author: Ingo Molnar Date: Wed Jun 3 12:37:40 2015 +0200 Documentation/features/debug: Add feature description and arch support status file for 'gcov-profile-all' Cc: Cc: Cc: Cc: Andrew Morton Cc: H. Peter Anvin Cc: Jonathan Corbet Cc: Josh Triplett Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar .../debug/gcov-profile-all/arch-support.txt | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit 98008be7e87ffc825551bdafad706de10a61f5bc Author: Ingo Molnar Date: Wed Jun 3 12:37:39 2015 +0200 Documentation/features/locking: Add feature description and arch support status file for 'cmpxchg-local' Cc: Cc: Cc: Cc: Andrew Morton Cc: H. Peter Anvin Cc: Jonathan Corbet Cc: Josh Triplett Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar .../locking/cmpxchg-local/arch-support.txt | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit 05934cad2dd9c4b36261352d2933cc9c2b679f0c Author: Ingo Molnar Date: Wed Jun 3 12:37:38 2015 +0200 Documentation/features/perf: Add feature description and arch support status file for 'perf-stackdump' Cc: Cc: Cc: Cc: Andrew Morton Cc: H. Peter Anvin Cc: Jonathan Corbet Cc: Josh Triplett Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar .../features/perf/perf-stackdump/arch-support.txt | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit e30119a9dab9d407a6cd1143fb2ba6620719abe2 Author: Ingo Molnar Date: Wed Jun 3 12:37:37 2015 +0200 Documentation/features/perf: Add feature description and arch support status file for 'perf-regs' Cc: Cc: Cc: Cc: Andrew Morton Cc: H. Peter Anvin Cc: Jonathan Corbet Cc: Josh Triplett Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar .../features/perf/perf-regs/arch-support.txt | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit 318d10dd83d0c61422f544f9be2634663e094a2c Author: Ingo Molnar Date: Wed Jun 3 12:37:36 2015 +0200 Documentation/features/io: Add feature description and arch support status file for 'dma-api-debug' Cc: Cc: Cc: Cc: Andrew Morton Cc: H. Peter Anvin Cc: Jonathan Corbet Cc: Josh Triplett Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar .../features/io/dma-api-debug/arch-support.txt | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit 8994f7bbe2110dd6fec24f8474392d105d99b253 Author: Ingo Molnar Date: Wed Jun 3 12:37:35 2015 +0200 Documentation/features/perf: Add feature description and arch support status file for 'kprobes-event' Cc: Cc: Cc: Cc: Andrew Morton Cc: H. Peter Anvin Cc: Jonathan Corbet Cc: Josh Triplett Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar .../features/perf/kprobes-event/arch-support.txt | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit 8fa369c0485c843f93045974e2a93cdc09828db1 Author: Ingo Molnar Date: Wed Jun 3 12:37:34 2015 +0200 Documentation/features/core: Add feature description and arch support status file for 'generic-idle-thread' Cc: Cc: Cc: Cc: Andrew Morton Cc: H. Peter Anvin Cc: Jonathan Corbet Cc: Josh Triplett Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar .../core/generic-idle-thread/arch-support.txt | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit 5d5cd30e6a897fead07639d9684e9c6910e2527c Author: Ingo Molnar Date: Wed Jun 3 12:37:33 2015 +0200 Documentation/features/debug: Add feature description and arch support status file for 'user-ret-profiler' Cc: Cc: Cc: Cc: Andrew Morton Cc: H. Peter Anvin Cc: Jonathan Corbet Cc: Josh Triplett Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar .../debug/user-ret-profiler/arch-support.txt | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit a382c9694c2a8fb0d9525fa3289c1c7eeee73ae8 Author: Ingo Molnar Date: Wed Jun 3 12:37:32 2015 +0200 Documentation/features/debug: Add feature description and arch support status file for 'kretprobes' Cc: Cc: Cc: Cc: Andrew Morton Cc: H. Peter Anvin Cc: Jonathan Corbet Cc: Josh Triplett Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar .../features/debug/kretprobes/arch-support.txt | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit 138943ea3aa2b69960250c218637468bb157f49c Author: Ingo Molnar Date: Wed Jun 3 12:37:31 2015 +0200 Documentation/features/debug: Add feature description and arch support status file for 'uprobes' Cc: Cc: Cc: Cc: Andrew Morton Cc: H. Peter Anvin Cc: Jonathan Corbet Cc: Josh Triplett Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar .../features/debug/uprobes/arch-support.txt | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit 9cf5bcc3ddc4f291f54e680b75ad3957e2d468f9 Author: Ingo Molnar Date: Wed Jun 3 12:37:29 2015 +0200 Documentation/features/debug: Add feature description and arch support status file for 'kprobes-on-ftrace' Cc: Cc: Cc: Cc: Andrew Morton Cc: H. Peter Anvin Cc: Jonathan Corbet Cc: Josh Triplett Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar .../debug/kprobes-on-ftrace/arch-support.txt | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit 08716c0da7d6f3f7888dfc2980aec6ec226ddd2d Author: Ingo Molnar Date: Wed Jun 3 12:37:28 2015 +0200 Documentation/features/debug: Add feature description and arch support status file for 'optprobes' Cc: Cc: Cc: Cc: Andrew Morton Cc: H. Peter Anvin Cc: Jonathan Corbet Cc: Josh Triplett Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar .../features/debug/optprobes/arch-support.txt | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit fd7d6cee93aae351b671621ad9024a8f09214284 Author: Ingo Molnar Date: Wed Jun 3 12:37:27 2015 +0200 Documentation/features/debug: Add feature description and arch support status file for 'kprobes' Cc: Cc: Cc: Cc: Andrew Morton Cc: H. Peter Anvin Cc: Jonathan Corbet Cc: Josh Triplett Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar .../features/debug/kprobes/arch-support.txt | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit 6a6787724dc21925f6d289c9a019ed6026db5183 Author: Ingo Molnar Date: Wed Jun 3 12:37:26 2015 +0200 Documentation/features/time: Add feature description and arch support status file for 'arch-tick-broadcast' Cc: Cc: Cc: Cc: Andrew Morton Cc: H. Peter Anvin Cc: Jonathan Corbet Cc: Josh Triplett Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar .../time/arch-tick-broadcast/arch-support.txt | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit 343163ca15954bcd926ced32616821d540612104 Author: Ingo Molnar Date: Wed Jun 3 12:37:25 2015 +0200 Documentation/features/vm: Add feature description and arch support status file for 'ELF-ASLR' Cc: Cc: Cc: Cc: Andrew Morton Cc: H. Peter Anvin Cc: Jonathan Corbet Cc: Josh Triplett Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar .../features/vm/ELF-ASLR/arch-support.txt | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit 28dfffd6d14f9cb2277e9bead011e8d510e2c4fa Author: Ingo Molnar Date: Wed Jun 3 12:37:24 2015 +0200 Documentation/features/time: Add feature description and arch support status file for 'clockevents' Cc: Cc: Cc: Cc: Andrew Morton Cc: H. Peter Anvin Cc: Jonathan Corbet Cc: Josh Triplett Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar .../features/time/clockevents/arch-support.txt | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit 47af18fea1a47aa98f416bc6ba9d67ca557859ab Author: Ingo Molnar Date: Wed Jun 3 12:37:23 2015 +0200 Documentation/features/debug: Add feature description and arch support status file for 'kgdb' Cc: Cc: Cc: Cc: Andrew Morton Cc: H. Peter Anvin Cc: Jonathan Corbet Cc: Josh Triplett Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar Documentation/features/debug/kgdb/arch-support.txt | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit 9df43ac1858ecddd8d380e08263302490232d7ea Author: Ingo Molnar Date: Wed Jun 3 12:37:22 2015 +0200 Documentation/features/time: Add feature description and arch support status file for 'context-tracking' Cc: Cc: Cc: Cc: Andrew Morton Cc: H. Peter Anvin Cc: Jonathan Corbet Cc: Josh Triplett Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar .../time/context-tracking/arch-support.txt | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit 5b8473a6d7d08e9da9bd132c6e8ce12b8cfdbf5f Author: Ingo Molnar Date: Wed Jun 3 12:37:21 2015 +0200 Documentation/features/seccomp: Add feature description and arch support status file for 'seccomp-filter' Cc: Cc: Cc: Cc: Andrew Morton Cc: H. Peter Anvin Cc: Jonathan Corbet Cc: Josh Triplett Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar .../seccomp/seccomp-filter/arch-support.txt | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit d8affc78130a87ea6a4027d6a8ede91486bfef27 Author: Ingo Molnar Date: Wed Jun 3 12:37:19 2015 +0200 Documentation/features/core: Add feature description and arch support status file for 'jump-labels' Cc: Cc: Cc: Cc: Andrew Morton Cc: H. Peter Anvin Cc: Jonathan Corbet Cc: Josh Triplett Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar .../features/core/jump-labels/arch-support.txt | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit 6d6b54cb2187df8b09ce40012648606508be9b18 Author: Ingo Molnar Date: Wed Jun 3 12:37:18 2015 +0200 Documentation/features/debug: Add feature description and arch support status file for 'stackprotector' Cc: Cc: Cc: Cc: Andrew Morton Cc: H. Peter Anvin Cc: Jonathan Corbet Cc: Josh Triplett Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar .../features/debug/stackprotector/arch-support.txt | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit 41b8ea4be1c2fbd152c413d68877318e3a1c76a0 Author: Ingo Molnar Date: Wed Jun 3 12:37:17 2015 +0200 Documentation/features/locking: Add feature description and arch support status file for 'lockdep' Cc: Cc: Cc: Cc: Andrew Morton Cc: H. Peter Anvin Cc: Jonathan Corbet Cc: Josh Triplett Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar .../features/locking/lockdep/arch-support.txt | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit c0512abd5a3fef006975e8e9bb15b1eb99d12d79 Author: Ingo Molnar Date: Wed Jun 3 12:37:16 2015 +0200 Documentation/features/vm: Add feature description and arch support status file for 'ioremap_prot' Cc: Cc: Cc: Cc: Andrew Morton Cc: H. Peter Anvin Cc: Jonathan Corbet Cc: Josh Triplett Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar .../features/vm/ioremap_prot/arch-support.txt | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit f58519e9f7d65c41c17944e25d5343a07454b3a7 Author: Ingo Molnar Date: Wed Jun 3 12:37:15 2015 +0200 Documentation/features/core: Add feature description and arch support status file for 'tracehook' Cc: Cc: Cc: Cc: Andrew Morton Cc: H. Peter Anvin Cc: Jonathan Corbet Cc: Josh Triplett Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar .../features/core/tracehook/arch-support.txt | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit 3c1b5142691f094591b6c1d6e7a9fc5599409c28 Author: Ingo Molnar Date: Wed Jun 3 12:37:14 2015 +0200 Documentation/features/io: Add feature description and arch support status file for 'dma_map_attrs' Cc: Cc: Cc: Cc: Andrew Morton Cc: H. Peter Anvin Cc: Jonathan Corbet Cc: Josh Triplett Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar .../features/io/dma_map_attrs/arch-support.txt | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit cd66af211609bb0cc2ab2f32412be41a7481f211 Author: Ingo Molnar Date: Wed Jun 3 12:37:13 2015 +0200 Documentation/features/io: Add feature description and arch support status file for 'dma-contiguous' Cc: Cc: Cc: Cc: Andrew Morton Cc: H. Peter Anvin Cc: Jonathan Corbet Cc: Josh Triplett Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar .../features/io/dma-contiguous/arch-support.txt | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit 65ee8aeb3759908606486248363026cc9b734d9e Author: Ingo Molnar Date: Wed Jun 3 12:37:12 2015 +0200 Documentation/features/sched: Add feature description and arch support status file for 'numa-balancing' Cc: Cc: Cc: Cc: Andrew Morton Cc: H. Peter Anvin Cc: Jonathan Corbet Cc: Josh Triplett Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar .../features/sched/numa-balancing/arch-support.txt | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit a521dc564bcce456354a01d2603ff946af141d32 Author: Ingo Molnar Date: Wed Jun 3 12:37:10 2015 +0200 Documentation/features/locking: Add feature description and arch support status file for 'rwsem-optimized' Cc: Cc: Cc: Cc: Andrew Morton Cc: H. Peter Anvin Cc: Jonathan Corbet Cc: Josh Triplett Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar .../locking/rwsem-optimized/arch-support.txt | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit cc436a080ad45a0d98c5a37a4fd9c896ea6bcd8a Author: Ingo Molnar Date: Wed Jun 3 12:37:09 2015 +0200 Documentation/features/vm: Add feature description and arch support status file for 'THP' Cc: Cc: Cc: Cc: Andrew Morton Cc: H. Peter Anvin Cc: Jonathan Corbet Cc: Josh Triplett Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar Documentation/features/vm/THP/arch-support.txt | 40 ++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit 1aebadbca627c8840adcf78e68a9ab81c6490307 Author: Ingo Molnar Date: Wed Jun 3 12:37:07 2015 +0200 Documentation/features/time: Add feature description and arch support status file for 'irq-time-acct' Cc: Cc: Cc: Cc: Andrew Morton Cc: H. Peter Anvin Cc: Jonathan Corbet Cc: Josh Triplett Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar .../features/time/irq-time-acct/arch-support.txt | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit 4e3cd4571904933300620f5464872c4e10d3bd4a Author: Ingo Molnar Date: Wed Jun 3 12:37:05 2015 +0200 Documentation/features/time: Add feature description and arch support status file for 'virt-cpuacct' Cc: Cc: Cc: Cc: Andrew Morton Cc: H. Peter Anvin Cc: Jonathan Corbet Cc: Josh Triplett Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar .../features/time/virt-cpuacct/arch-support.txt | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit 44121b9ed0384088a6899cfb2ca4ede1428d412f Author: Ingo Molnar Date: Wed Jun 3 12:37:04 2015 +0200 Documentation/features/time: Add feature description and arch support status file for 'modern-timekeeping' Cc: Cc: Cc: Cc: Andrew Morton Cc: H. Peter Anvin Cc: Jonathan Corbet Cc: Josh Triplett Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar .../time/modern-timekeeping/arch-support.txt | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit 2729924765bcfa9e4cf7595c49b472b561413255 Author: Ingo Molnar Date: Wed Jun 3 12:37:03 2015 +0200 Documentation/features/debug: Add feature description and arch support status file for 'KASAN' Cc: Cc: Cc: Cc: Andrew Morton Cc: H. Peter Anvin Cc: Jonathan Corbet Cc: Josh Triplett Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar .../features/debug/KASAN/arch-support.txt | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit 61e06e71ccbba66c652ab741d43a9c9d0fd6a5a9 Author: Ingo Molnar Date: Wed Jun 3 12:37:02 2015 +0200 Documentation/features/vm: Add feature description and arch support status file for 'pmdp_splitting_flush' Cc: Cc: Cc: Cc: Andrew Morton Cc: H. Peter Anvin Cc: Jonathan Corbet Cc: Josh Triplett Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar .../vm/pmdp_splitting_flush/arch-support.txt | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit f643e6a69a60d1f91bc4bc0375ae2d065081f61b Author: Ingo Molnar Date: Wed Jun 3 12:37:01 2015 +0200 Documentation/features/vm: Add feature description and arch support status file for 'pte_special' Cc: Cc: Cc: Cc: Andrew Morton Cc: H. Peter Anvin Cc: Jonathan Corbet Cc: Josh Triplett Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar .../features/vm/pte_special/arch-support.txt | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit bebcfbb0ceb5228f5931f6869a72b6e92ea10592 Author: Ingo Molnar Date: Wed Jun 3 12:37:00 2015 +0200 Documentation/features/vm: Add feature description and arch support status file for 'huge-vmap' Cc: Cc: Cc: Cc: Andrew Morton Cc: H. Peter Anvin Cc: Jonathan Corbet Cc: Josh Triplett Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar .../features/vm/huge-vmap/arch-support.txt | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit 6c7cca4dc10950ee299ef2cb1db81733679380df Author: Ingo Molnar Date: Wed Jun 3 12:36:59 2015 +0200 Documentation/features/io: Add feature description and arch support status file for 'sg-chain' Cc: Cc: Cc: Cc: Andrew Morton Cc: H. Peter Anvin Cc: Jonathan Corbet Cc: Josh Triplett Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar .../features/io/sg-chain/arch-support.txt | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit b85c92c32739bc6dacb8e1f89a760d4ccf095a0d Author: Ingo Molnar Date: Wed Jun 3 12:36:57 2015 +0200 Documentation/features/lib: Add feature description and arch support status file for 'strncasecmp' Cc: Cc: Cc: Cc: Andrew Morton Cc: H. Peter Anvin Cc: Jonathan Corbet Cc: Josh Triplett Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar .../features/lib/strncasecmp/arch-support.txt | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit c197645c597f6615f7476881789ba97774dac4f5 Author: Ingo Molnar Date: Wed Jun 3 12:36:56 2015 +0200 Documentation/features/vm: Add feature description and arch support status file for 'PG_uncached' Cc: Cc: Cc: Cc: Andrew Morton Cc: H. Peter Anvin Cc: Jonathan Corbet Cc: Josh Triplett Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar .../features/vm/PG_uncached/arch-support.txt | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit 403e27dc1f90ce9ac4833c6d56cb08023b74e804 Author: Ingo Molnar Date: Wed Jun 3 12:36:55 2015 +0200 Documentation/features/vm: Add feature description and arch support status file for 'numa-memblock' Cc: Cc: Cc: Cc: Andrew Morton Cc: H. Peter Anvin Cc: Jonathan Corbet Cc: Josh Triplett Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar .../features/vm/numa-memblock/arch-support.txt | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit ff9174291eddb3f42a1e9429f8b919bebc33533b Author: Yanir Lubetkin Date: Tue Jun 2 17:05:38 2015 +0300 e1000e: fix flush_desc_ring implementation The indication that a descriptor ring flush is required was read from FEXTNVM7 by mistake. It should be read from the PCI config space. Signed-off-by: Yanir Lubetkin Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/e1000e/e1000.h | 2 ++ drivers/net/ethernet/intel/e1000e/ich8lan.h | 1 - drivers/net/ethernet/intel/e1000e/netdev.c | 12 +++++++----- 3 files changed, 9 insertions(+), 6 deletions(-) commit 95f0d950467f1228d4e326c11150e1750a6dd1ef Author: Yanir Lubetkin Date: Wed Apr 22 19:25:17 2015 +0300 e1000e: fix logical error in flush_desc_rings The condition under which the flush should occur was reversed. The fix should be applied before any HW reset (unless followed by bus reset) and before any power state transition from D0. If E1000_FEXTNVM7_NEED_DESCRING_FLUSH bit is set in FEXTNVM7 and TDLEN > 0 the Tx ring should be flushed. (fixes ~95% of the hang states). If the E1000_FEXTNVM7_NEED_DESCRING_FLUSH did not clear, we should also flush the RX ring. Bug was caught by Alexander Duyck during a code review when examining this fix. Signed-off-by: Yanir Lubetkin Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/e1000e/netdev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bfc9473bf90457bf31d3f675d82234897c6480cd Author: Yanir Lubetkin Date: Wed Apr 22 05:55:43 2015 +0300 e1000e: remove call to do_div and sign mismatch warning Fixes a warning that was reported by Yanjiang Jin by implementing the solution suggested by Alexander Duyck . Signed-off-by: Yanir Lubetkin Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/e1000e/ich8lan.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) commit 0ffc56464bbbb8e2a78e319a36e1eafcbaaab9d8 Author: Yanir Lubetkin Date: Wed Apr 22 04:15:01 2015 +0300 e1000e: i219 execute unit hang fix on every reset or power state transition After testing various cases, the conclusion is that the fix MUST be executed BEFORE any event that the HW is reset or transition to D3. To fix that I moved the execution to the relevant places but per Alexander Duyck's review, ensure now that the DMA is valid and was not freed before manipulating the ring. Signed-off-by: Yanir Lubetkin Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/e1000e/netdev.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) commit ad851fbb73a3d6564707281aa253418ef6aab878 Author: Yanir Lubetkin Date: Tue Apr 14 02:20:21 2015 +0300 e1000e: i219 fix unit hang on reset and runtime D3 Unit hang may occur if multiple descriptors are available in the rings during reset or runtime suspend. This state can be detected by testing bit 8 in the FEXTNVM7 register. If this bit is set and there are pending descriptors in one of the rings, we must flush them prior to reset. Same applies entering runtime suspend. Signed-off-by: Yanir Lubetkin Reviewed-by: Alexander Duyck Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/e1000e/ich8lan.h | 5 ++ drivers/net/ethernet/intel/e1000e/netdev.c | 102 ++++++++++++++++++++++++++++ drivers/net/ethernet/intel/e1000e/regs.h | 1 + 3 files changed, 108 insertions(+) commit d6472302f242559d45dcf4ebace62508dc4d8aeb Author: Stephen Rothwell Date: Tue Jun 2 19:01:38 2015 +1000 x86/mm: Decouple from Nothing in uses anything from , so remove it from there and fix up the resulting build problems triggered on x86 {64|32}-bit {def|allmod|allno}configs. The breakages were triggering in places where x86 builds relied on vmalloc() facilities but did not include explicitly and relied on the implicit inclusion via . Also add: - to - to ... which were two other implicit header file dependencies. Suggested-by: David Miller Signed-off-by: Stephen Rothwell [ Tidied up the changelog. ] Acked-by: David Miller Acked-by: Takashi Iwai Acked-by: Viresh Kumar Acked-by: Vinod Koul Cc: Andrew Morton Cc: Anton Vorontsov Cc: Boris Ostrovsky Cc: Colin Cross Cc: David Vrabel Cc: H. Peter Anvin Cc: Haiyang Zhang Cc: James E.J. Bottomley Cc: Jaroslav Kysela Cc: K. Y. Srinivasan Cc: Kees Cook Cc: Konrad Rzeszutek Wilk Cc: Kristen Carlson Accardi Cc: Len Brown Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Rafael J. Wysocki Cc: Suma Ramars Cc: Thomas Gleixner Cc: Tony Luck Signed-off-by: Ingo Molnar arch/x86/include/asm/io.h | 3 +-- arch/x86/kernel/crash.c | 1 + arch/x86/kernel/machine_kexec_64.c | 1 + arch/x86/mm/pageattr-test.c | 1 + arch/x86/mm/pageattr.c | 1 + arch/x86/xen/p2m.c | 1 + drivers/acpi/apei/erst.c | 1 + drivers/cpufreq/intel_pstate.c | 1 + drivers/dma/mic_x100_dma.c | 1 + drivers/net/hyperv/netvsc.c | 1 + drivers/net/hyperv/rndis_filter.c | 1 + drivers/scsi/fnic/fnic_debugfs.c | 1 + drivers/scsi/fnic/fnic_trace.c | 1 + include/linux/io.h | 1 + sound/pci/asihpi/hpioctl.c | 1 + 15 files changed, 15 insertions(+), 2 deletions(-) commit 83b0b677f90a2056a53f1930881bbee2741b048f Author: Jeeja KP Date: Wed Jun 3 12:24:32 2015 +0530 ALSA: hda - add new HDA registers This patch adds new registers as per HD audio Spec like capability registers for processing pipe, software position based FIFO, Multiple Links and Global Time Synchronization. Signed-off-by: Jeeja KP Acked-by: Takashi Iwai Signed-off-by: Vinod Koul Signed-off-by: Takashi Iwai include/sound/hda_register.h | 88 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) commit ec71efc9aaa53b8944b119f8bedd0559c8ed5453 Author: Vinod Koul Date: Wed Jun 3 12:24:31 2015 +0530 ALSA: hda - add HDA default codec match function HDA codec drivers can be matched using vendor id and revision id typically. So provide a match function which does this and is loaded when driver hasn't provided one (default behaviour) Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Takashi Iwai include/sound/hdaudio.h | 14 ++++++++++++++ sound/hda/hda_bus_type.c | 41 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+) commit ca8c67dafdb7eb543015f1f84bb73f4454e41ca6 Author: Uwe Kleine-König Date: Thu May 28 10:05:15 2015 +0200 fbdev: omap2: improve usage of gpiod API Since 39b2bbe3d715 (gpio: add flags argument to gpiod_get*() functions) which appeared in v3.17-rc1, the gpiod_get* functions take an additional parameter that allows to specify direction and initial value for output. Also make use of gpiod_get*_optional where applicable. Apart from simplification of the affected drivers this is another step towards making the flags argument to gpiod_get*() mandatory. Signed-off-by: Uwe Kleine-König Signed-off-by: Tomi Valkeinen drivers/video/fbdev/omap2/displays-new/encoder-opa362.c | 12 +++--------- drivers/video/fbdev/omap2/displays-new/panel-dpi.c | 13 +++---------- .../fbdev/omap2/displays-new/panel-lgphilips-lb035q02.c | 7 +++---- .../fbdev/omap2/displays-new/panel-sharp-ls037v7dw01.c | 9 ++------- 4 files changed, 11 insertions(+), 30 deletions(-) commit 9ccfc4aa6939b06c7d0cd1de04949be1eb2b0836 Author: Luis R. Rodriguez Date: Tue Apr 21 13:16:38 2015 -0700 video: fbdev: geode gxfb: use ioremap_wc() for 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()") Cc: Sudip Mukherjee Cc: Geert Uytterhoeven Cc: Laurent Pinchart Cc: Jingoo Han Cc: Suresh Siddha Cc: Ingo Molnar Cc: Thomas Gleixner Cc: Juergen Gross Cc: Daniel Vetter Cc: Andy Lutomirski Cc: Dave Airlie Cc: Antonino Daplas Cc: Jean-Christophe Plagniol-Villard Cc: Tomi Valkeinen Cc: linux-geode@lists.infradead.org Cc: linux-fbdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Luis R. Rodriguez Reviewed-by: Dave Airlie Signed-off-by: Tomi Valkeinen drivers/video/fbdev/geode/gxfb_core.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 1e43a20396ee34a6b0305fc155cb59af13a89435 Author: Luis R. Rodriguez Date: Tue Apr 21 13:16:37 2015 -0700 video: fbdev: atmel_lcdfb: use ioremap_wc() for 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()") Cc: Nicolas Ferre Cc: Suresh Siddha Cc: Ingo Molnar Cc: Thomas Gleixner Cc: Juergen Gross Cc: Daniel Vetter Cc: Andy Lutomirski Cc: Dave Airlie Cc: Antonino Daplas Cc: Jean-Christophe Plagniol-Villard Cc: Tomi Valkeinen Cc: linux-fbdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Luis R. Rodriguez Acked-by: Nicolas Ferre Reviewed-by: Dave Airlie Signed-off-by: Tomi Valkeinen drivers/video/fbdev/atmel_lcdfb.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit cc9866eb945cdba36efdab0e544140ecd54b8aa4 Author: Luis R. Rodriguez Date: Tue Apr 21 13:16:36 2015 -0700 video: fbdev: tdfxfb: use arch_phys_wc_add() and ioremap_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(). arch_phys_wc_add() will avoid MTRR if write-combining is available, in order to take advantage of that also ensure the ioremap'd 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 its 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 #ifdery 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); Generated-by: Coccinelle SmPL Cc: Rob Clark Cc: Geert Uytterhoeven Cc: Suresh Siddha Cc: Ingo Molnar Cc: Thomas Gleixner Cc: Juergen Gross Cc: Daniel Vetter Cc: Andy Lutomirski Cc: Dave Airlie Cc: Antonino Daplas Cc: Jean-Christophe Plagniol-Villard Cc: Tomi Valkeinen Cc: linux-fbdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Luis R. Rodriguez Reviewed-by: Dave Airlie Signed-off-by: Tomi Valkeinen drivers/video/fbdev/tdfxfb.c | 41 ++++++----------------------------------- include/video/tdfx.h | 2 +- 2 files changed, 7 insertions(+), 36 deletions(-) commit 04dc78b419b3aedb3a40fd0048e8cb4b7ba9d00c Author: Luis R. Rodriguez Date: Tue Apr 21 13:16:35 2015 -0700 video: fbdev: rivafb: use arch_phys_wc_add() and ioremap_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(). arch_phys_wc_add() will avoid MTRR if write-combining is available, in order to take advantage of that also ensure the ioremap'd 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 its 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 #ifdery 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); Generated-by: Coccinelle SmPL Cc: Antonino Daplas Cc: Suresh Siddha Cc: Ingo Molnar Cc: Thomas Gleixner Cc: Juergen Gross Cc: Daniel Vetter Cc: Andy Lutomirski Cc: Dave Airlie Cc: Antonino Daplas Cc: Jean-Christophe Plagniol-Villard Cc: Tomi Valkeinen Cc: linux-fbdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Luis R. Rodriguez Reviewed-by: Dave Airlie Signed-off-by: Tomi Valkeinen drivers/video/fbdev/riva/fbdev.c | 39 +++++++-------------------------------- drivers/video/fbdev/riva/rivafb.h | 4 +--- 2 files changed, 8 insertions(+), 35 deletions(-) commit 26e2506075f0e0b9ed8909e772404e750a13d3f5 Author: Luis R. Rodriguez Date: Tue Apr 21 13:16:34 2015 -0700 video: fbdev: pm3fb: use arch_phys_wc_add() and ioremap_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(). arch_phys_wc_add() will avoid MTRR if write-combining is available, in order to take advantage of that also ensure the ioremap'd 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 its 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 #ifdery 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); Generated-by: Coccinelle SmPL Cc: Jingoo Han Cc: Dan Carpenter Cc: Rob Clark Cc: Laurent Pinchart Cc: Suresh Siddha Cc: Ingo Molnar Cc: Thomas Gleixner Cc: Juergen Gross Cc: Daniel Vetter Cc: Andy Lutomirski Cc: Dave Airlie Cc: Antonino Daplas Cc: Jean-Christophe Plagniol-Villard Cc: Tomi Valkeinen Cc: linux-fbdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Luis R. Rodriguez Reviewed-by: Dave Airlie Signed-off-by: Tomi Valkeinen drivers/video/fbdev/pm3fb.c | 30 ++++++------------------------ 1 file changed, 6 insertions(+), 24 deletions(-) commit f8f05cdc767fa5c7da5ada466b2c5f225e5c818b Author: Luis R. Rodriguez Date: Tue Apr 21 13:16:33 2015 -0700 video: fbdev: pm2fb: use arch_phys_wc_add() and ioremap_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(). arch_phys_wc_add() will avoid MTRR if write-combining is available, in order to take advantage of that also ensure the ioremap'd 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 its 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 #ifdery 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); Generated-by: Coccinelle SmPL Cc: Rob Clark Cc: Jingoo Han Cc: Daniel Vetter Cc: Suresh Siddha Cc: Ingo Molnar Cc: Thomas Gleixner Cc: Juergen Gross Cc: Andy Lutomirski Cc: Dave Airlie Cc: Antonino Daplas Cc: Jean-Christophe Plagniol-Villard Cc: Tomi Valkeinen Cc: linux-fbdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Luis R. Rodriguez Reviewed-by: Dave Airlie Signed-off-by: Tomi Valkeinen drivers/video/fbdev/pm2fb.c | 31 +++++-------------------------- 1 file changed, 5 insertions(+), 26 deletions(-) commit 775a8a564d848643e04e46e6c3b1b78abf920a37 Author: Luis R. Rodriguez Date: Tue Apr 21 13:16:32 2015 -0700 video: fbdev: i810: use arch_phys_wc_add() and ioremap_wc() The same area used for MTRR is used for the ioremap() area. Convert the driver from using the x86 specific MTRR code to the architecture agnostic arch_phys_wc_add(). arch_phys_wc_add() will avoid MTRR if write-combining is available, in order to take advantage of that also ensure the ioremap'd 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 its 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 #ifdery 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); Generated-by: Coccinelle SmPL Cc: Suresh Siddha Cc: Ingo Molnar Cc: Thomas Gleixner Cc: Juergen Gross Cc: Daniel Vetter Cc: Andy Lutomirski Cc: Dave Airlie Cc: Antonino Daplas Cc: Jean-Christophe Plagniol-Villard Cc: Tomi Valkeinen Cc: linux-fbdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: Juergen Gross Cc: Daniel Vetter Cc: Andy Lutomirski Cc: Dave Airlie Cc: Antonino Daplas Cc: Jean-Christophe Plagniol-Villard Cc: Tomi Valkeinen Cc: linux-fbdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Luis R. Rodriguez Reviewed-by: Dave Airlie Signed-off-by: Tomi Valkeinen drivers/video/fbdev/i810/i810.h | 3 +-- drivers/video/fbdev/i810/i810_main.c | 11 +++++++---- drivers/video/fbdev/i810/i810_main.h | 26 -------------------------- 3 files changed, 8 insertions(+), 32 deletions(-) commit f4447dde3c74a02b3e109049f560b03897ca1488 Author: Luis R. Rodriguez Date: Tue Apr 21 13:16:31 2015 -0700 video: fbdev: aty: use arch_phys_wc_add() and ioremap_wc() Convert the driver from using the x86 specific MTRR code to the architecture agnostic arch_phys_wc_add(). arch_phys_wc_add() will avoid MTRR if write-combining is available, in order to take advantage of that also ensure the ioremap'd 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 its 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 #ifdery 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); Generated-by: Coccinelle SmPL Cc: Paul Mackerras Cc: Suresh Siddha Cc: Ingo Molnar Cc: Thomas Gleixner Cc: Juergen Gross Cc: Daniel Vetter Cc: Andy Lutomirski Cc: Dave Airlie Cc: Antonino Daplas Cc: Jean-Christophe Plagniol-Villard Cc: Tomi Valkeinen Cc: linux-fbdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Luis R. Rodriguez Reviewed-by: Dave Airlie Signed-off-by: Tomi Valkeinen drivers/video/fbdev/aty/aty128fb.c | 36 ++++++------------------------------ 1 file changed, 6 insertions(+), 30 deletions(-) commit 2cff64062e513dd32bde585e8dc87796742e8b59 Author: Luis R. Rodriguez Date: Tue Apr 21 13:16:30 2015 -0700 video: fbdev: sisfb: use arch_phys_wc_add() and ioremap_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(). arch_phys_wc_add() will avoid MTRR if write-combining is available, in order to take advantage of that also ensure the ioremap'd 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 its 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 #ifdery 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); Generated-by: Coccinelle SmPL Cc: Thomas Winischhofer Cc: Jean-Christophe Plagniol-Villard Cc: Tomi Valkeinen Cc: Suresh Siddha Cc: Ingo Molnar Cc: Thomas Gleixner Cc: Juergen Gross Cc: Daniel Vetter Cc: Andy Lutomirski Cc: Dave Airlie Cc: Antonino Daplas Cc: linux-fbdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Luis R. Rodriguez Reviewed-by: Dave Airlie Signed-off-by: Tomi Valkeinen drivers/video/fbdev/sis/sis.h | 2 +- drivers/video/fbdev/sis/sis_main.c | 27 ++++++--------------------- 2 files changed, 7 insertions(+), 22 deletions(-) commit 4d811d6c78afd4067a59b952438fb6ed6d7e6853 Author: Luis R. Rodriguez Date: Tue Apr 21 13:16:29 2015 -0700 video: fbdev: savagefb: use arch_phys_wc_add() and ioremap_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(). arch_phys_wc_add() will avoid MTRR if write-combining is available, in order to take advantage of that also ensure the ioremap'd 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 its 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 #ifdery 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); Generated-by: Coccinelle SmPL Cc: Antonino Daplas Cc: Jean-Christophe Plagniol-Villard Cc: Tomi Valkeinen Cc: linux-fbdev@vger.kernel.org Cc: Suresh Siddha Cc: Ingo Molnar Cc: Thomas Gleixner Cc: Juergen Gross Cc: Daniel Vetter Cc: Andy Lutomirski Cc: Dave Airlie Cc: linux-fbdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Luis R. Rodriguez Reviewed-by: Dave Airlie Signed-off-by: Tomi Valkeinen drivers/video/fbdev/savage/savagefb.h | 4 +--- drivers/video/fbdev/savage/savagefb_driver.c | 17 +++-------------- 2 files changed, 4 insertions(+), 17 deletions(-) commit 3b213c2f6f563bf941448d2de48ef33a76675b57 Author: Luis R. Rodriguez Date: Tue Apr 21 13:16:28 2015 -0700 video: fbdev: nvidia: use arch_phys_wc_add() and ioremap_wc() This driver uses the same area for MTRR and ioremap(). Convert the driver from using the x86 specific MTRR code to the architecture agnostic arch_phys_wc_add(). arch_phys_wc_add() will avoid MTRR if write-combining is available, in order to take advantage of that also ensure the ioremap'd 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 its 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 #ifdery 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); Generated-by: Coccinelle SmPL Cc: Antonino Daplas Cc: Jean-Christophe Plagniol-Villard Cc: Tomi Valkeinen Cc: Suresh Siddha Cc: Ingo Molnar Cc: Thomas Gleixner Cc: Juergen Gross Cc: Daniel Vetter Cc: Andy Lutomirski Cc: Dave Airlie Cc: linux-fbdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Luis R. Rodriguez Reviewed-by: Dave Airlie Signed-off-by: Tomi Valkeinen drivers/video/fbdev/nvidia/nv_type.h | 7 +------ drivers/video/fbdev/nvidia/nvidia.c | 37 ++++++------------------------------ 2 files changed, 7 insertions(+), 37 deletions(-) commit f2081b81c51893c7f2fd8b6d569d1b8de620a2fc Author: Luis R. Rodriguez Date: Tue Apr 21 13:16:27 2015 -0700 video: fbdev: neofb: use arch_phys_wc_add() and ioremap_wc() Convert the driver from using the x86 specific MTRR code to the architecture agnostic arch_phys_wc_add(). arch_phys_wc_add() will avoid MTRR if write-combining is available, in order to take advantage of that also ensure the ioremap'd 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 its 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 #ifdery 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); Generated-by: Coccinelle SmPL Cc: Jean-Christophe Plagniol-Villard Cc: Tomi Valkeinen Cc: Laurent Pinchart Cc: Jingoo Han Cc: Suresh Siddha Cc: Ingo Molnar Cc: Thomas Gleixner Cc: Juergen Gross Cc: Daniel Vetter Cc: Andy Lutomirski Cc: Dave Airlie Cc: Antonino Daplas Cc: linux-fbdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Luis R. Rodriguez Reviewed-by: Dave Airlie Signed-off-by: Tomi Valkeinen drivers/video/fbdev/neofb.c | 26 +++++++------------------- include/video/neomagic.h | 5 +---- 2 files changed, 8 insertions(+), 23 deletions(-) commit 888ca5d26ad5975fbe69f0bc1cca5756b529c785 Author: Luis R. Rodriguez Date: Tue Apr 21 13:16:26 2015 -0700 video: fbdev: matrox: use arch_phys_wc_add() and ioremap_wc() This driver uses the same ioremap()'d area for the MTRR. Convert the driver from using the x86 specific MTRR code to the architecture agnostic arch_phys_wc_add(). arch_phys_wc_add() will avoid MTRR if write-combining is available, in order to take advantage of that also ensure the ioremap'd 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 its 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 #ifdery 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); Generated-by: Coccinelle SmPL Cc: Jean-Christophe Plagniol-Villard Cc: Tomi Valkeinen Cc: Rob Clark Cc: Daniel Vetter Cc: Geert Uytterhoeven Cc: Julia Lawall Cc: Mikulas Patocka Cc: Suresh Siddha Cc: Ingo Molnar Cc: Thomas Gleixner Cc: Juergen Gross Cc: Andy Lutomirski Cc: Dave Airlie Cc: Antonino Daplas Cc: linux-fbdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Luis R. Rodriguez Reviewed-by: Dave Airlie Signed-off-by: Tomi Valkeinen drivers/video/fbdev/matrox/matroxfb_base.c | 36 +++++++++++------------------- drivers/video/fbdev/matrox/matroxfb_base.h | 27 +--------------------- 2 files changed, 14 insertions(+), 49 deletions(-) commit 78084dcf2926a646de42041454c13836a6fc44c6 Author: Luis R. Rodriguez Date: Tue Apr 21 13:16:25 2015 -0700 video: fbdev: intelfb: use arch_phys_wc_add() and ioremap_wc() Although this driver gives the framebuffer layer a different size for the framebuffer it uses the entire aperture PCI BAR size for the MTRR. Since the framebuffer is included in that range and MTRR was used on the entire PCI BAR WC will have been preferred on that range as well. This propagates the WC preference on the same entire PCI BAR. Convert the driver from using the x86 specific MTRR code to the architecture agnostic arch_phys_wc_add(). arch_phys_wc_add() will avoid MTRR if write-combining is available, in order to take advantage of that also ensure the ioremap'd 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 its 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 #ifdery 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); Generated-by: Coccinelle SmPL Cc: Maik Broemme Cc: Jean-Christophe Plagniol-Villard Cc: Tomi Valkeinen Cc: Suresh Siddha Cc: Ingo Molnar Cc: Thomas Gleixner Cc: Juergen Gross Cc: Daniel Vetter Cc: Andy Lutomirski Cc: Dave Airlie Cc: Antonino Daplas Cc: linux-fbdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Luis R. Rodriguez Reviewed-by: Dave Airlie Signed-off-by: Tomi Valkeinen drivers/video/fbdev/intelfb/intelfb.h | 4 +--- drivers/video/fbdev/intelfb/intelfbdrv.c | 38 ++++---------------------------- 2 files changed, 5 insertions(+), 37 deletions(-) commit 05314098349747f8adbf6c93b43f3b2d013222be Author: Luis R. Rodriguez Date: Fri May 29 15:07:16 2015 -0700 video: fbdev: gbefb: use arch_phys_wc_add() and devm_ioremap_wc() Convert the driver from using the x86 specific MTRR code to the architecture agnostic arch_phys_wc_add(). arch_phys_wc_add() will avoid MTRR if write-combining is available, in order to take advantage of that also ensure the ioremap'd 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 its 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 #ifdery 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); Generated-by: Coccinelle SmPL Cc: Thomas Gleixner Cc: Juergen Gross Cc: Jingoo Han Cc: Daniel Vetter Cc: Masanari Iida Cc: Suresh Siddha Cc: Ingo Molnar Cc: Andy Lutomirski Cc: Dave Airlie Cc: Antonino Daplas Cc: Jean-Christophe Plagniol-Villard Cc: Tomi Valkeinen Cc: linux-fbdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Luis R. Rodriguez Signed-off-by: Tomi Valkeinen drivers/video/fbdev/gbefb.c | 30 +++++++++--------------------- 1 file changed, 9 insertions(+), 21 deletions(-) commit 1690faef645ea8725fafdfe6451cf7828a676ad8 Merge: fa2ab69 5f4c02e Author: Kalle Valo Date: Wed Jun 3 12:15:51 2015 +0300 Merge tag 'iwlwifi-next-for-kalle-2015-06-03' of https://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-next * a few fixes (re-enablement of interrupts for certain new platforms that have special power states) * Rework completely the RBD allocation model towards new multi RX hardware. * cleanups * scan reworks continuation (Luca) commit e6e29a4eae335059d2cc44ac543de7556ff7ac09 Merge: 8d94eb9 c0d77c8 Author: James Morris Date: Wed Jun 3 19:10:29 2015 +1000 Merge branch 'smack-for-4.2-stacked' of https://github.com/cschaufler/smack-next into next commit 4e415ed8143f7f26f448e932a2d1b52ddc6ecbcd Author: Shawn Guo Date: Wed Jun 3 15:27:39 2015 +0800 ARM: dts: imx6dl: add imx6dl gpt specific compatible string The i.MX6DL/S GPT has a different programming model from i.MX6Q one. Add the compatible string "fsl,imx6dl-gpt" for it, and leave "fsl,imx6q-gpt" there to keep the existing/old kernel happy. Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6dl.dtsi | 4 ++++ 1 file changed, 4 insertions(+) commit d491dbb68b6efd12a27ee10791e27fc5f2bd02ff Author: Markus Pargmann Date: Fri Dec 26 12:41:36 2014 +0100 batman-adv: iv_ogm, fix comment function name This is a small copy paste fix for batadv_ing_buffer_avg. Signed-off-by: Markus Pargmann Signed-off-by: Marek Lindner net/batman-adv/bat_iv_ogm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6c4a1622e21fde1a0287ada3bedcbf75ddbc80ac Author: Markus Pargmann Date: Fri Dec 26 12:41:35 2014 +0100 batman-adv: iv_ogm, fix coding style The kernel coding style says, that there should not be multiple assignments in one row. Signed-off-by: Markus Pargmann Signed-off-by: Marek Lindner net/batman-adv/bat_iv_ogm.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 9f52ee19c3c73763138ccc307858d9877242c0ad Author: Markus Pargmann Date: Fri Dec 26 12:41:34 2014 +0100 batman-adv: iv_ogm, Fix dup_status comment Signed-off-by: Markus Pargmann Signed-off-by: Marek Lindner net/batman-adv/bat_iv_ogm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 23badd6dbe5ed66668b0084950c5f66062923e10 Author: Markus Pargmann Date: Fri Dec 26 12:41:33 2014 +0100 batman-adv: iv_ogm_orig_update, style, add missing brackets CodingStyle describes that either none or both branches of a conditional have to have brackets. Signed-off-by: Markus Pargmann Signed-off-by: Marek Lindner net/batman-adv/bat_iv_ogm.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 564891510eb139dd073a0f1a5a7f5641b5bcc238 Author: Markus Pargmann Date: Fri Dec 26 12:41:32 2014 +0100 batman-adv: iv_ogm_queue_add, Simplify expressions Signed-off-by: Markus Pargmann Signed-off-by: Marek Lindner net/batman-adv/bat_iv_ogm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 940d156f52d27c16f3e0890e82974d500e40e64f Author: Markus Pargmann Date: Fri Dec 26 12:41:31 2014 +0100 batman-adv: iv_ogm_aggregate_new, simplify error handling It is just a bit easier to put the error handling at one place and let multiple error paths use the same calls. Signed-off-by: Markus Pargmann Signed-off-by: Marek Lindner net/batman-adv/bat_iv_ogm.c | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) commit 39c3f1ba5ee3b937c43747f60dfa869d9776a4ac Author: Diego Viola Date: Sun May 31 14:35:51 2015 -0300 scripts/kconfig/Makefile: Cosmetic fixes Signed-off-by: Diego Viola Signed-off-by: Michal Marek scripts/kconfig/Makefile | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 3e48138c2c66d8ff7d96c87a0535cd50078c742f Author: Andrew Duggan Date: Tue Jun 2 14:46:20 2015 -0700 HID: i2c-hid: Do not set the ACPI companion field in the HID device The HID device does not need to know about the ACPI device associated with the underlying i2c device. Setting the ACPI companion field in the HID device also has the side effect of causing HID to be set as wake capable, since acpi_bind_one uses's the companion ACPI device's wakeup flags to set the device as wake capable. Which results in power/wakeup files in sysfs for the HID device which do not do anything. Signed-off-by: Andrew Duggan Reviewed-by: Benson Leung Tested-by: Benson Leung Acked-by: Mika Westerberg Signed-off-by: Jiri Kosina drivers/hid/i2c-hid/i2c-hid.c | 1 - 1 file changed, 1 deletion(-) commit c3447e815062bb48d70a5afa0567fd6f30bc7f1b Author: Ben Goz Date: Wed May 20 18:05:44 2015 +0300 drm/amdkfd: Enforce kill all waves on process termination This commit makes sure that on process termination, after we're destroying all the active queues, we're killing all the existing wave front of the current process. By doing this we're making sure that if any of the CUs were blocked by infinite loop we're enforcing it to end the shader explicitly. Signed-off-by: Ben Goz Signed-off-by: Oded Gabbay drivers/gpu/drm/amd/amdkfd/kfd_dbgdev.c | 65 ++++++++++++++++++++++ .../gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 8 ++- drivers/gpu/drm/amd/amdkfd/kfd_priv.h | 7 +++ drivers/gpu/drm/amd/amdkfd/kfd_process.c | 11 ++++ 4 files changed, 90 insertions(+), 1 deletion(-) commit edad40239ffcaafd7eb56e4060d472aa5af2df21 Author: Alexey Skidanov Date: Tue May 19 19:25:01 2015 +0300 drm/radeon: Add ATC VMID<-->PASID functions to kfd->kgd This patch adds three new interfaces to kfd2kgd interface file of radeon. The interfaces are: - Check if a specific VMID has a valid PASID mapping - Retrieve the PASID which is mapped to a specific VMID - Issue a VMID invalidation request to the ATC Signed-off-by: Alexey Skidanov Signed-off-by: Oded Gabbay drivers/gpu/drm/amd/include/kgd_kfd_interface.h | 8 ++++++ drivers/gpu/drm/radeon/cikd.h | 9 ++++-- drivers/gpu/drm/radeon/radeon_kfd.c | 38 +++++++++++++++++++++++-- 3 files changed, 50 insertions(+), 5 deletions(-) commit f8bd13338a9a42358158954251969e66934ec3d1 Author: Yair Shachar Date: Wed May 20 14:09:39 2015 +0300 drm/amdkfd: Implement address watch debugger IOCTL v2: - rename get_dbgmgr_mutex to kfd_get_dbgmgr_mutex to namespace it - change void* to uint64_t inside ioctl arguments - use kmalloc instead of kzalloc because we use copy_from_user immediately after it Signed-off-by: Yair Shachar Signed-off-by: Oded Gabbay drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | 102 ++++++++++++++++++++++++++++++- 1 file changed, 101 insertions(+), 1 deletion(-) commit 9448458998e27be7fcb9ebc58200be45a6429451 Author: Yair Shachar Date: Wed May 20 14:09:24 2015 +0300 drm/amdkfd: Implement wave control debugger IOCTL v2: - rename get_dbgmgr_mutex to kfd_get_dbgmgr_mutex to namespace it - change void* to uint64_t inside ioctl arguments - use kmalloc instead of kzalloc because we use copy_from_user immediately after it Signed-off-by: Yair Shachar Signed-off-by: Oded Gabbay drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | 88 +++++++++++++++++++++++++++++++- 1 file changed, 87 insertions(+), 1 deletion(-) commit 037ed9a2ac262e496bb0ddc924895e5f72969961 Author: Yair Shachar Date: Wed May 20 14:08:55 2015 +0300 drm/amdkfd: Implement (un)register debugger IOCTLs v2: rename get_dbgmgr_mutex to kfd_get_dbgmgr_mutex to namespace it Signed-off-by: Yair Shachar Signed-off-by: Oded Gabbay drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | 72 +++++++++++++++++++++++++++++++- 1 file changed, 70 insertions(+), 2 deletions(-) commit e2e9afc4a3d4a256da37821992c4de5ad469a010 Author: Yair Shachar Date: Wed May 20 13:59:17 2015 +0300 drm/amdkfd: Add address watch operation to debugger The address watch operation gives the ability to specify watch points which will generate a shader breakpoint, based on a specified single address or range of addresses. There is support for read/write/any access modes. Signed-off-by: Yair Shachar Signed-off-by: Oded Gabbay drivers/gpu/drm/amd/amdkfd/kfd_dbgdev.c | 274 ++++++++++++++++++++++++++++++++ drivers/gpu/drm/amd/amdkfd/kfd_dbgmgr.c | 17 ++ drivers/gpu/drm/amd/amdkfd/kfd_dbgmgr.h | 4 + 3 files changed, 295 insertions(+) commit 788bf83db3017f083ebb84c93f101607c769c3a7 Author: Yair Shachar Date: Wed May 20 13:58:12 2015 +0300 drm/amdkfd: Add wave control operation to debugger The wave control operation supports several command types executed upon existing wave fronts that belong to the currently debugged process. The available commands are: HALT - Freeze wave front(s) execution RESUME - Resume freezed wave front(s) execution KILL - Kill existing wave front(s) Signed-off-by: Yair Shachar Signed-off-by: Oded Gabbay drivers/gpu/drm/amd/amdkfd/kfd_dbgdev.c | 405 +++++++++++++++++++++ drivers/gpu/drm/amd/amdkfd/kfd_dbgmgr.c | 16 + drivers/gpu/drm/amd/amdkfd/kfd_dbgmgr.h | 5 +- .../gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 2 +- drivers/gpu/drm/amd/amdkfd/kfd_priv.h | 4 + 5 files changed, 430 insertions(+), 2 deletions(-) commit fbeb661bfa895dc14ea1f093edc5e6e80f1b6a95 Author: Yair Shachar Date: Wed May 20 13:48:26 2015 +0300 drm/amdkfd: Add skeleton H/W debugger module support This patch adds the skeleton H/W debugger module support. This code enables registration and unregistration of a single HSA process at a time. The module saves the process's pasid and use it to verify that only the registered process is allowed to execute debugger operations through the kernel driver. v2: rename get_dbgmgr_mutex to kfd_get_dbgmgr_mutex to namespace it Signed-off-by: Yair Shachar Signed-off-by: Oded Gabbay drivers/gpu/drm/amd/amdkfd/Makefile | 3 +- drivers/gpu/drm/amd/amdkfd/kfd_dbgdev.c | 142 ++++++++++ drivers/gpu/drm/amd/amdkfd/kfd_dbgdev.h | 193 ++++++++++++++ drivers/gpu/drm/amd/amdkfd/kfd_dbgmgr.c | 135 ++++++++++ drivers/gpu/drm/amd/amdkfd/kfd_dbgmgr.h | 287 ++++++++++++++++++++ drivers/gpu/drm/amd/amdkfd/kfd_device.c | 3 + drivers/gpu/drm/amd/amdkfd/kfd_pm4_headers_diq.h | 290 +++++++++++++++++++++ drivers/gpu/drm/amd/amdkfd/kfd_priv.h | 5 + .../gpu/drm/amd/amdkfd/kfd_process_queue_manager.c | 2 +- 9 files changed, 1058 insertions(+), 2 deletions(-) commit 992839ad64f21ff4e5ed0a71691098ab7cfcb9dc Author: Yair Shachar Date: Wed May 20 13:43:04 2015 +0300 drm/amdkfd: Add static user-mode queues support This patch adds support for static user-mode queues in QCM. Queues which are designated as static can NOT be preempted by the CP microcode when it is executing its scheduling algorithm. This is needed for supporting the debugger feature, because we can't allow the CP to preempt queues which are currently being debugged. The number of queues that can be designated as static is limited by the number of HQDs (Hardware Queue Descriptors). Signed-off-by: Yair Shachar Signed-off-by: Oded Gabbay drivers/gpu/drm/amd/amdkfd/kfd_device.c | 2 + .../gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 38 ++++++++++++++---- .../gpu/drm/amd/amdkfd/kfd_device_queue_manager.h | 6 +++ drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c | 46 +++++++++++++++++----- drivers/gpu/drm/amd/amdkfd/kfd_pm4_headers.h | 6 ++- drivers/gpu/drm/amd/amdkfd/kfd_priv.h | 2 + .../gpu/drm/amd/amdkfd/kfd_process_queue_manager.c | 16 ++++++++ 7 files changed, 97 insertions(+), 19 deletions(-) commit aef11009c45ca594c18ecc822f101e3908ca3fb4 Author: Yair Shachar Date: Sun Dec 7 17:05:22 2014 +0200 drm/amdkfd: add H/W debugger IOCTL set definitions This patch adds four new IOCTLs to amdkfd. These IOCTLs expose a H/W debugger functionality to the userspace. The IOCTLs are: - AMDKFD_IOC_DBG_REGISTER: The purpose of this IOCTL is to notify amdkfd that a process wants to use GPU debugging facilities on itself only. It is expected that this IOCTL would be called before any other H/W debugger requests are sent to amdkfd and for each GPU where the H/W debugging needs to be enabled. The use of this IOCTL ensures that only one instance of a debugger is active in the system. - AMDKFD_IOC_DBG_UNREGISTER: This IOCTL detaches the debugger/debugged process from the H/W Debug which was established by the AMDKFD_IOC_DBG_REGISTER IOCTL. - AMDKFD_IOC_DBG_ADDRESS_WATCH: This IOCTL allows to set different watchpoints with various conditions as indicated by the IOCTL's arguments. The available number of watchpoints is retrieved from topology. This operation is confined to the current debugged process, which was registered through AMDKFD_IOC_DBG_REGISTER. - AMDKFD_IOC_DBG_WAVE_CONTROL: This IOCTL allows to control a wavefront as indicated by the IOCTL's arguments. For example, you can halt/resume or kill either a single wavefront or a set of wavefronts. This operation is confined to the current debugged process, which was registered through AMDKFD_IOC_DBG_REGISTER. Because the arguments for the address watch IOCTL and wave control IOCTL are dynamic, meaning that they could vary in size, the userspace passes a pointer to a structure (in userspace) that contains the value of the arguments. The kernel driver is responsible to parse this structure and validate its contents. v2: change void* to uint64_t inside ioctl arguments Signed-off-by: Yair Shachar Signed-off-by: Oded Gabbay drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | 54 ++++++++++++++++++++++++++++++++ include/uapi/linux/kfd_ioctl.h | 43 +++++++++++++++++++++++-- 2 files changed, 95 insertions(+), 2 deletions(-) commit a6186f4d6f5d4755a38f57005160a30acda8e081 Author: Yair Shachar Date: Sun Sep 28 11:51:15 2014 +0300 drm/radeon: Add H/W debugger kfd->kgd functions This patch adds new interface functions to the kfd2kgd interface file. The new functions allow to perform H/W debugger operations by writing to GPU registers. Signed-off-by: Yair Shachar Signed-off-by: Oded Gabbay drivers/gpu/drm/amd/include/kgd_kfd_interface.h | 13 +++ drivers/gpu/drm/radeon/cik_reg.h | 56 +++++++++++- drivers/gpu/drm/radeon/radeon_kfd.c | 113 ++++++++++++++++++++++++ 3 files changed, 181 insertions(+), 1 deletion(-) commit f761d8bd80e648979a3d189089576bda4a59d6c4 Author: Joe Perches Date: Tue May 19 18:37:51 2015 -0700 drm/amdkfd: Use DECLARE_BITMAP Use the generic mechanism to declare a bitmap instead of unsigned long. It seems that "struct kfd_process.allocated_queue_bitmap" is unused. Maybe it could be deleted instead. Signed-off-by: Joe Perches Signed-off-by: Oded Gabbay drivers/gpu/drm/amd/amdkfd/kfd_priv.h | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 6471b825c41e6fc3cd41caa18d15142d0e121e76 Author: Ingo Molnar Date: Wed Jun 3 10:00:13 2015 +0200 x86/kconfig: Reorganize arch feature Kconfig select's Peter Zijstra noticed that in arch/x86/Kconfig there are a lot of X86_{32,64} clauses in the X86 symbol, plus there are a number of similar selects in the X86_32 and X86_64 config definitions as well - which all overlap in an inconsistent mess. So: - move all select's from X86_32 and X86_64 to the X64 config option - sort their names, so that duplications are easier to spot - align their if clauses, so that they are easier to identify at a glance - and so that weirdnesses stand out more No change in functionality: 105 insertions(+) 105 deletions(-) Originally-from: Peter Zijlstra Cc: Andrew Morton Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/20150602153027.GU3644@twins.programming.kicks-ass.net Signed-off-by: Ingo Molnar arch/x86/Kconfig | 210 +++++++++++++++++++++++++++---------------------------- 1 file changed, 105 insertions(+), 105 deletions(-) commit 71966f3a0b24b408a87a0c475262638fbb71da99 Merge: 34e7724 92ae183 Author: Ingo Molnar Date: Wed Jun 3 10:07:35 2015 +0200 Merge branch 'locking/core' into x86/core, to prepare for dependent patch Signed-off-by: Ingo Molnar commit 92ae18371cb1abb4e186dd9d48de2bb0d9bba626 Author: Borislav Petkov Date: Tue Jun 2 15:38:27 2015 +0200 lockdep: Do not break user-visible string Remove the line-break in the user-visible string and add the missing space in this error message: WARNING: lockdep init error! lock-(console_sem).lock was acquiredbefore lockdep_init Also: - don't yell, it's just a debug warning - denote references to function calls with '()' - standardize the lock name quoting - and finish the sentence. The result: WARNING: lockdep init error: lock '(console_sem).lock' was acquired before lockdep_init(). Signed-off-by: Borislav Petkov Cc: Andrew Morton Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/20150602133827.GD19887@pd.tnic [ Added a few more stylistic tweaks to the error message. ] Signed-off-by: Ingo Molnar Signed-off-by: Ingo Molnar kernel/locking/lockdep.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 34e7724c0767f04f6199f2bd7232e9ab1207e1df Merge: c46a024 1e6277d cad14bb 501b326 956079e Author: Ingo Molnar Date: Wed Jun 3 10:05:18 2015 +0200 Merge branches 'x86/mm', 'x86/build', 'x86/apic' and 'x86/platform' into x86/core, to apply dependent patch Signed-off-by: Ingo Molnar commit 669d3d123395ce00c7a1c4e3ca0254b2f9ec95d0 Author: shengyong Date: Wed Jun 3 01:37:38 2015 +0000 UBI: Remove unnecessary `\' Signed-off-by: Sheng Yong Signed-off-by: Richard Weinberger drivers/mtd/ubi/fastmap.c | 2 +- drivers/mtd/ubi/wl.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 5f4c02e2b8c9251c827abf87c4ead4496c67492a Author: Johannes Berg Date: Wed May 20 16:51:28 2015 +0200 iwlwifi: mvm: advertise only HW-supported ciphers After the new ciphers CCMP-256 and GCMP-128/256 were implemented, wpa_supplicant could start negotiating them and use the software implementation. This, however, breaks D3 behaviour in the driver since it means that WoWLAN will not be possible. To avoid breaking that feature, advertise only ciphers that the hardware supports. Signed-off-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/mac80211.c | 32 ++++++++++++++++++++++------- drivers/net/wireless/iwlwifi/mvm/mvm.h | 2 ++ 2 files changed, 27 insertions(+), 7 deletions(-) commit d94a3d3eace06cf557ac323c6f442e6f71ed5e7f Author: Heiko Schocher Date: Tue May 26 06:06:26 2015 +0200 ARM: dts: imx6: add DT for aristainetos2 board This patch adds support for the imx6dl based aristainetos2 board with following configuration: CPU: Freescale i.MX6DL rev1.1 at 792 MHz MReset cause: POR MBoard: aristaitenos2 DRAM: 1 GiB NAND: 1024 MiB MMC: FSL_SDHC: 0, FSL_SDHC: 1 SF: Detected N25Q128A with page size 256 Bytes, erase size 64 KiB, total 16 MiB Display: lb07wv8 (800x480) As this board can be used with 2 different display types, the differences between them are extracted into 2 DTS files, and the common settings are collected in a common file. Signed-off-by: Heiko Schocher Reviewed-by: Philipp Zabel arch/arm/boot/dts/Makefile | 2 + arch/arm/boot/dts/imx6dl-aristainetos2_4.dts | 159 +++++++ arch/arm/boot/dts/imx6dl-aristainetos2_7.dts | 97 ++++ arch/arm/boot/dts/imx6qdl-aristainetos2.dtsi | 633 +++++++++++++++++++++++++++ 4 files changed, 891 insertions(+) commit f4b5939de0b617fdeb353bb5fdeee91ebc10b89f Author: Fabio Estevam Date: Wed May 20 15:57:02 2015 -0300 ARM: dts: cubox-i/hummingboard: Fix the license text Arrange the license text a bit to make it clear. Signed-off-by: Fabio Estevam Acked-by: Russell King Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6dl-cubox-i.dts | 5 ++--- arch/arm/boot/dts/imx6dl-hummingboard.dts | 5 ++--- arch/arm/boot/dts/imx6q-cubox-i.dts | 5 ++--- arch/arm/boot/dts/imx6q-hummingboard.dts | 5 ++--- arch/arm/boot/dts/imx6qdl-cubox-i.dtsi | 5 ++--- arch/arm/boot/dts/imx6qdl-hummingboard.dtsi | 5 ++--- arch/arm/boot/dts/imx6qdl-microsom-ar8035.dtsi | 5 ++--- arch/arm/boot/dts/imx6qdl-microsom.dtsi | 5 ++--- 8 files changed, 16 insertions(+), 24 deletions(-) commit 4dc633e9b019020dbe9c46757a70506f8ef3972d Author: Eric Nelson Date: Tue May 19 08:50:16 2015 -0700 ARM: dts: sabrelite: use simple-panel instead of display-timings for LVDS0 Also add label for backlight_lvds and connect it to the LVDS display. Signed-off-by: Eric Nelson Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6qdl-sabrelite.dtsi | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) commit 5d5c865128a30170d96f75f0c732ca28d428928a Author: Eric Nelson Date: Tue May 19 08:50:15 2015 -0700 ARM: dts: nitrogen6x: use simple-panel instead of display-timings for LVDS0 Also add label for backlight_lvds and connect it to the display. Signed-off-by: Eric Nelson Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) commit 5db106bc73ca41c0fa0e03d47711e315beecb335 Author: Frank Li Date: Tue May 19 02:45:05 2015 +0800 ARM: dts: add imx7d-sdb support add imx7d sdb board support Signed-off-by: Frank Li Signed-off-by: Shawn Guo arch/arm/boot/dts/Makefile | 2 + arch/arm/boot/dts/imx7d-sdb.dts | 408 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 410 insertions(+) commit 949673450291dea48ec9470cb35fb55f690d97e6 Author: Frank Li Date: Tue May 19 02:45:04 2015 +0800 ARM: dts: add imx7d soc dtsi file imx7d intergrates the unique display controller for EPD panel, pixel engines and graphics engines to make it a ideal solution for EPD based devices such as eReader, Signage, as well as any application rely on the bistable charactersic of the EPD panel. imx7d include two ARM Cortex A7 Core and one Cortex-M4 core. Included Main Peripheral - DDR3\LP-DDR2 - GPMI\BCH\APBH DMA(NAND flash support) - QSPI - WEIM Nor - LCDIF\MIPI DSI - CSI\MIPI CSI - EPDC - PCIe RC\EP - USB OTG\Host - CAN x2 - I2C x4 - SIMv2 x2 - ENET -x2 - uSDHC x3 - eCSPI x1 - PWM x4 - OCOTP (fuse) - GPT x4 - WDOG x4 - Flex Timer x2 Signed-off-by: Anson Huang Signed-off-by: Frank Li Signed-off-by: Shawn Guo arch/arm/boot/dts/imx7d.dtsi | 486 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 486 insertions(+) commit 673254d5b340189ef27b82a136b3d306d3bc6fbb Author: Sébastien Szymanski Date: Fri May 15 15:44:27 2015 +0200 ARM: dts: Armadeus Systems APF6 family support (i.MX6) Add support to the Armadeus Systems APF6 Solo / Dual / Quad SoM and the Armadeus Systems APF6Dev carrier board. For more details see: http://www.armadeus.com/english/products-processor_boards-apf6.html http://www.armadeus.com/english/products-development_boards-apf6_dev.html Signed-off-by: Sébastien Szymanski Signed-off-by: Shawn Guo arch/arm/boot/dts/Makefile | 2 + arch/arm/boot/dts/imx6dl-apf6dev.dts | 60 +++++ arch/arm/boot/dts/imx6q-apf6dev.dts | 64 +++++ arch/arm/boot/dts/imx6qdl-apf6.dtsi | 158 +++++++++++ arch/arm/boot/dts/imx6qdl-apf6dev.dtsi | 479 +++++++++++++++++++++++++++++++++ 5 files changed, 763 insertions(+) commit aa5fec2db1b4e13622e9eb6b0fd7d54f75d7c984 Author: Cory Tusar Date: Wed May 13 23:11:38 2015 -0400 ARM: dts: vf610: Nomenclature fixup for PTC12 pin used in RMII mode. This commit includes a minor nomenclature fixup for boards based on the Freescale VF610 SoC and which make use of the alternate "RMII1_RXD1" functionality for pin PTC12. This brings the macro name in-line with both the datasheet and other similar macros. Signed-off-by: Cory Tusar Acked-by: Stefan Agner Signed-off-by: Shawn Guo arch/arm/boot/dts/vf-colibri.dtsi | 2 +- arch/arm/boot/dts/vf610-cosmic.dts | 2 +- arch/arm/boot/dts/vf610-pinfunc.h | 2 +- arch/arm/boot/dts/vf610-twr.dts | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) commit dca97cee92736e1c48f6c2ecb543200d1353373e Author: Fabio Estevam Date: Mon May 11 12:38:33 2015 -0300 ARM: dts: cubox-i: add support for Broadcom Wifi/Bluetooth devices Add DT support for the Broadcom Wifi/Bluetooth devices found on the microsom board. [Modified original Russell King's patch to use mmc-pwrseq] Signed-off-by: Russell King Signed-off-by: Fabio Estevam Tested-by: Jon Nettleton Tested-by: Russell King Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6qdl-microsom.dtsi | 103 ++++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) commit ef69728f2fe52ec5786c28b1b4fa68689942ad19 Author: Frank Li Date: Fri May 8 01:35:53 2015 +0800 Document: dt: binding: imx: update document for imx7d support This part just add necessary change to boot imx7d. Update clock, pinctrl and gpt for imx7d Signed-off-by: Frank Li Signed-off-by: Shawn Guo .../devicetree/bindings/clock/imx7d-clock.txt | 13 +++++++++++ .../bindings/pinctrl/fsl,imx7d-pinctrl.txt | 27 ++++++++++++++++++++++ 2 files changed, 40 insertions(+) commit 29eea64c1b8122f6c2f64401cd57bee042052dba Author: Philipp Zabel Date: Thu May 7 15:24:16 2015 +0200 ARM: dts: imx6qdl: Add power-domain phandle to CODA device node The CODA960 VPU is part of the PU power domain. Add power-domains phandle so it can be associated with the PU generic pm domain for power gating. Signed-off-by: Philipp Zabel Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6qdl.dtsi | 1 + 1 file changed, 1 insertion(+) commit e9d6d6b62f306ba83e1441af5daf2809a6167474 Author: Tim Harvey Date: Thu May 7 08:38:00 2015 -0700 ARM: dts: Gateworks GW5510 support (i.MX6) Add support for the Gateworks GW5510 board featuring: * i.MX6 SoC * up to 512MB DDR3 * up to 2GB NAND flash * 1x miniPCIe socket (with USB) * HDMI out (micro-HDMI) * HDMI in (micro-HDMI) (currently supported by only vendor kernel) * TTL level I/O (supported by GW16111 breakout board): * I2C * 2x UART * CAN * 2x DIO (GPIO/PWM) * USB OTG For more details see: http://www.gateworks.com/product/item/ventana-gw5510-single-board-computer Signed-off-by: Tim Harvey Reviewed-by: Fabio Estevam Signed-off-by: Shawn Guo arch/arm/boot/dts/Makefile | 2 + arch/arm/boot/dts/imx6dl-gw551x.dts | 55 ++++++ arch/arm/boot/dts/imx6q-gw551x.dts | 55 ++++++ arch/arm/boot/dts/imx6qdl-gw551x.dtsi | 314 ++++++++++++++++++++++++++++++++++ 4 files changed, 426 insertions(+) commit 0c1e18963d49bf41ea13c80ca17dd1e703c49739 Author: Fabio Estevam Date: Thu Apr 30 19:55:30 2015 -0300 ARM: dts: imx6sl-warp: Fix OTG roles USBOTG1 always work on peripheral mode and USBOTG in host mode, so fix their roles accordingly. Tested by mounting the MMC card as a storage device: modprobe g_mass_storage file=/dev/mmcblk0p2 Signed-off-by: Fabio Estevam Acked-by: Otavio Salvador Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6sl-warp.dts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit d000d5e12938886ee7eb4f93f1dda9655ec0051a Author: Fabio Estevam Date: Thu Apr 30 19:55:29 2015 -0300 ARM: dts: imx6sl-warp: Remove USB regulators According to the warp schematics there are no regulators for the USB OTG ports, so let's remove them. Signed-off-by: Fabio Estevam Acked-by: Otavio Salvador Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6sl-warp.dts | 28 ---------------------------- 1 file changed, 28 deletions(-) commit e6c8b3d49c0b602875a6e8b2b22a2002326d64a4 Author: Fabio Estevam Date: Thu Apr 30 19:55:28 2015 -0300 ARM: dts: imx6sl-warp: Remove unused regulator The 'reg_1p8v' regulator is not used anywhere, so let's remove it. Signed-off-by: Fabio Estevam Acked-by: Otavio Salvador Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6sl-warp.dts | 8 -------- 1 file changed, 8 deletions(-) commit e370bff74e12d3453680cf85f0965a79aa58feca Author: Frank Li Date: Wed Apr 29 22:20:01 2015 +0800 ARM: dts: add pinfunc include file to support imx7d Addi i.MX7D support: pinfunc part except GPIO1 Signed-off-by: Frank Li Signed-off-by: Shawn Guo arch/arm/boot/dts/imx7d-pinfunc.h | 1038 +++++++++++++++++++++++++++++++++++++ 1 file changed, 1038 insertions(+) commit 0177ec7ea61087c8101585430126b3447d4ab2ec Author: Thomas Niederprüm Date: Tue Mar 31 20:27:11 2015 +0200 ARM: mxs: fix in tree users of ssd1306 This patch updates the in tree-users of the SSD1306 controller for using the newly introduced DT properties. Signed-off-by: Thomas Niederprüm Signed-off-by: Shawn Guo arch/arm/boot/dts/imx28-cfa10036.dts | 3 +++ 1 file changed, 3 insertions(+) commit b49b9ee08627db6952f4702f33aa25bb962453c2 Author: Fabio Estevam Date: Wed Apr 8 21:41:53 2015 -0300 ARM: dts: imx6qdl-hummingboard: Add PCIe support Add PCIe support. Based on a patch from Rabeeh Khoury from the solid-run tree. Signed-off-by: Fabio Estevam Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6qdl-hummingboard.dtsi | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 27a14c9218b7f0055df74d6a45bf8f5f09beb030 Author: Harald Geyer Date: Fri Apr 17 14:43:25 2015 +0000 ARM: dts: imx23-olinuxino: Add i2c support The imx23-olinuxino board has an i2c interface exposed on UEXT connector. This patch enables i2c and selects the pin group used on UEXT connector. Tested with MOD-LCD1x9 from Olimex. This patch is based on work by Fadil Berisha with his permission. However all bugs are mine. Signed-off-by: Harald Geyer Acked-by: Stefan Wahren Acked-by: Marek Vasut Signed-off-by: Shawn Guo arch/arm/boot/dts/imx23-olinuxino.dts | 6 ++++++ 1 file changed, 6 insertions(+) commit 71a34d829c81bbf2966128e5b9274d8dea38b0ab Author: Harald Geyer Date: Fri Apr 17 14:43:24 2015 +0000 ARM: dts: imx23: Add i2c support The imx23-olinuxino board has an i2c interface exposed on UEXT connector. This patch provides the generic devicetree infrastructure for a follow-up patch to add support to the actual board files. Tested all three possible pin groups with MOD-LCD1x9 from Olimex. This patch is based on work by Fadil Berisha with his permission. However all bugs are mine. Signed-off-by: Harald Geyer Acked-by: Stefan Wahren Acked-by: Marek Vasut Signed-off-by: Shawn Guo arch/arm/boot/dts/imx23.dtsi | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) commit 5ce667989a194b05b94ac19ab624cfb1f9642ec6 Author: Fabio Estevam Date: Wed Apr 1 09:03:45 2015 -0300 ARM: dts: hummingboard: Remove unneeded 'fsl,mode' property imx6qdl-hummingboard boards use sgtl5000 codec and the machine file (imx-sgtl5000) already sets SSI in slave mode and codec in master mode, so there is no need for having the 'fsl,mode' property. Signed-off-by: Fabio Estevam Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6qdl-hummingboard.dtsi | 1 - 1 file changed, 1 deletion(-) commit ac4af82b99bc6dc8d23429397882d035cac49774 Author: Lucas Stach Date: Wed Apr 1 11:26:54 2015 +0200 ARM: dts: imx6qdl: move HDMI controller to right location in DT Currently the HDMI controller is a child device of the AIPS bus in the DT which is clearly wrong. Move it to the right location. This introduces no functional change it just aligns the DT representation with reality. Signed-off-by: Lucas Stach Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6qdl.dtsi | 56 +++++++++++++++++++++--------------------- 1 file changed, 28 insertions(+), 28 deletions(-) commit 42bbd6ecca5065debf99260923689ae52df7230d Author: Emmanuel Grumbach Date: Wed Jun 3 09:54:18 2015 +0300 iwlwifi: bump the iwlmvm API number to 15 The driver is now ready to handle the -15.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 0becb377805c4d060da895e0ce214cee619f1d76 Author: Matti Gottlieb Date: Sun May 31 09:18:30 2015 +0300 iwlwifi: mvm: Add DC2DC_CONFIG_CMD (0x83) cmd & TLV Add DC2DC_CONFIG_CMD (0x83) cmd. Add IWL_UCODE_TLV_CAPA_DC2DC_CONFIG_SUPPORT tlv. The command allows the driver get & set the DCDC's frequency tune. (freq_tune is the divider that is used to calculate the actual DCDC's clock rate) The command always returns the current/updated frequency tune values of the DCDC. Signed-off-by: Matti Gottlieb Reviewed-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/iwl-fw-file.h | 2 ++ drivers/net/wireless/iwlwifi/mvm/fw-api.h | 46 ++++++++++++++++++++++++++++++ drivers/net/wireless/iwlwifi/mvm/ops.c | 1 + 3 files changed, 49 insertions(+) commit 0be5da9dc249391e3310cc2351e7af5ce211ac49 Author: Arnd Bergmann Date: Fri May 29 11:28:05 2015 +0200 ARM: imx: imx7d requires anatop Like i.MX6, the i.MX7 code calls into the anatop driver, which fails if that is disabled: arch/arm/mach-imx/built-in.o: In function `imx7d_init_machine': arch/arm/mach-imx/mach-imx7d.c:24: undefined reference to `imx_anatop_init' arch/arm/mach-imx/built-in.o: In function `imx7d_init_irq': arch/arm/mach-imx/mach-imx7d.c:29: undefined reference to `imx_init_revision_from_anatop' This patch ensures that for an imx7-only build, we still get anatop built-in, matching what we do for imx6. We also need to select HAVE_IMX_MMDC, as that is needed by the anatop code. Signed-off-by: Arnd Bergmann Signed-off-by: Shawn Guo arch/arm/mach-imx/Kconfig | 2 ++ 1 file changed, 2 insertions(+) commit cc013fa8dc302c5835465155da4799a1f0b4b06d Author: Shawn Guo Date: Fri May 29 21:02:36 2015 +0800 clocksource: timer-imx-gpt: remove include of The include of is not needed at all, and causes build error in some cases. Remove it. Reported-by: Stephen Rothwell Signed-off-by: Shawn Guo Acked-by: Daniel Lezcano drivers/clocksource/timer-imx-gpt.c | 2 -- 1 file changed, 2 deletions(-) commit bea5af41dd9b5f127c730c00610756972a616ed4 Author: Shawn Guo Date: Fri May 15 15:41:00 2015 +0800 ARM: imx: move timer driver into drivers/clocksource After the cleanup on imx timer driver, now it's ready to be moved into drivers/clocksource/. Let's do it. Signed-off-by: Shawn Guo Acked-by: Daniel Lezcano arch/arm/mach-imx/Kconfig | 2 +- arch/arm/mach-imx/Makefile | 2 +- arch/arm/mach-imx/time.c | 542 ------------------------------------ drivers/clocksource/Kconfig | 6 + drivers/clocksource/Makefile | 1 + drivers/clocksource/timer-imx-gpt.c | 542 ++++++++++++++++++++++++++++++++++++ 6 files changed, 551 insertions(+), 544 deletions(-) commit 2321f246e54abf544d3b9f781ade482b5471d37c Author: Shawn Guo Date: Fri May 15 15:27:03 2015 +0800 ARM: imx: remove platform headers from timer driver With the cleanup done before, the platform specific headers now can be removed. Signed-off-by: Shawn Guo arch/arm/mach-imx/time.c | 6 ------ 1 file changed, 6 deletions(-) commit db2ae4b4f6b79bd11d6461d41bd0966b0006f20b Author: Shawn Guo Date: Fri May 22 22:42:55 2015 +0800 ARM: imx: provide gpt device specific irq functions It splits irq enable/disable/acknowledge operations into device specific functions as the hooks in imx_gpt_data, so that we can save the use of timer_is_xxx() and cpu_is_xxx() checking in these irq functions. Signed-off-by: Shawn Guo arch/arm/mach-imx/time.c | 80 ++++++++++++++++++++++++++++++++---------------- 1 file changed, 54 insertions(+), 26 deletions(-) commit 89955520851064ff4bd39714aea947fe7104be73 Author: Shawn Guo Date: Fri May 22 22:23:28 2015 +0800 ARM: imx: get rid of variable timer_base We now have pointer to imx_timer structure available where timer base address is needed, so we can just kill global timer_base by using imxtm->base instead. Signed-off-by: Shawn Guo arch/arm/mach-imx/time.c | 55 +++++++++++++++++++++++------------------------- 1 file changed, 26 insertions(+), 29 deletions(-) commit 24f74ad1c75e9893db4386ed9c7f8c20cdbc3198 Author: Shawn Guo Date: Fri May 22 21:39:55 2015 +0800 ARM: imx: define gpt register offset per device type It defines offset of gpt registers TSTAT, TCN and TCMP per device type in imx_gpt_data, so that these registers can be accessed in an way without timer_is_v2() checking. Signed-off-by: Shawn Guo arch/arm/mach-imx/time.c | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) commit e510d2015d38a2bfbaebf9793f28377b6328e409 Author: Shawn Guo Date: Fri May 22 16:38:49 2015 +0800 ARM: imx: move clock event variables into imx_timer Since we now have imx_timer structure, it makes more sense to move those clock event related variables into the structure, so that we can save some global variables. Signed-off-by: Shawn Guo arch/arm/mach-imx/time.c | 64 +++++++++++++++++++++++++----------------------- 1 file changed, 33 insertions(+), 31 deletions(-) commit 5ab0475b70ccdb349812d932a84dec86029a84d7 Author: Shawn Guo Date: Fri May 22 15:51:41 2015 +0800 ARM: imx: set up .set_next_event hook via imx_gpt_data Set up .set_next_event hook via imx_gpt_data, so that we can save the use of timer_is_v2(). Signed-off-by: Shawn Guo arch/arm/mach-imx/time.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit 9c8694bd6c1e9e40a532c5c609288d6bc95d05b4 Author: Shawn Guo Date: Fri May 15 14:24:41 2015 +0800 ARM: imx: setup tctl register in device specific function It creates a gpt device speicific data structure and adds function hook gpt_setup_tctl in there to set up gpt TCTL register. Signed-off-by: Shawn Guo arch/arm/mach-imx/time.c | 98 ++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 78 insertions(+), 20 deletions(-) commit bef11c881ba52a6481b64f9a84cca75c3bf9d325 Author: Shawn Guo Date: Fri May 15 13:38:20 2015 +0800 ARM: imx: initialize gpt device type for DT boot Use different initialization function in CLOCKSOURCE_OF_DECLARE() to initialize gpt device type for DT boot. Signed-off-by: Shawn Guo arch/arm/mach-imx/time.c | 55 ++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 46 insertions(+), 9 deletions(-) commit 0931aff7226abb7e1dab018488e363294385fa66 Author: Shawn Guo Date: Fri May 15 11:41:39 2015 +0800 ARM: imx: define an enum for gpt timer device type Define an enum for gpt timer device type in include/soc/imx/timer.h to tell the gpt block differences among SoCs. Update non-DT users (clock drivers) to pass the device type. As we now have include/soc/imx/timer.h, the declaration of mxc_timer_init() is moved into there as the best fit. Signed-off-by: Shawn Guo arch/arm/mach-imx/time.c | 6 +++++- drivers/clk/imx/clk-imx1.c | 3 ++- drivers/clk/imx/clk-imx21.c | 3 ++- drivers/clk/imx/clk-imx27.c | 3 ++- drivers/clk/imx/clk-imx31.c | 3 ++- drivers/clk/imx/clk-imx35.c | 3 ++- drivers/clk/imx/clk.h | 7 ------- include/soc/imx/timer.h | 26 ++++++++++++++++++++++++++ 8 files changed, 41 insertions(+), 13 deletions(-) commit 6dd747825b206e9863c80c8b311fd2ed0964140a Author: Shawn Guo Date: Fri May 22 13:53:45 2015 +0800 ARM: imx: move timer resources into a structure Instead of passing around as individual argument, let's move timer resources like irq and clocks together with base address into a data structure, and pass pointer of the structure as argument to simplify the function call interface. Signed-off-by: Shawn Guo arch/arm/mach-imx/time.c | 91 +++++++++++++++++++++++++++++------------------- 1 file changed, 56 insertions(+), 35 deletions(-) commit c7770bbae276135ec59370159e60497593cc6b46 Author: Shawn Guo Date: Tue May 19 18:47:47 2015 +0800 ARM: imx: use relaxed IO accessor in timer driver Replace the __raw_readl/__raw_writel with readl_relaxed/writel_relaxed which is endian-safe, as a step of moving the driver code into folder drivers/clocksource. Signed-off-by: Shawn Guo arch/arm/mach-imx/time.c | 48 ++++++++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 24 deletions(-) commit e20d7b5208c86111ead338ded8b25a0970eee661 Author: Arnd Bergmann Date: Thu May 21 14:06:30 2015 +0200 ARM: imx: make imx51/3 suspend optional A recent change to the imx53 power management caused a build regression when CONFIG_SOC_IMX53 is disabled: mach-imx/built-in.o:(.init.rodata+0x60): undefined reference to `imx53_suspend' mach-imx/built-in.o:(.init.rodata+0x64): undefined reference to `imx53_suspend_sz' This avoids the problem by compiling the code in question conditionally on the presence of CONFIG_SOC_IMX53. For consistency, I'm also changing the same thing for CONFIG_SOC_IMX51. An additional benefit of this approach is reduced code size for kernels that only include support for one of the two SoCs. Signed-off-by: Arnd Bergmann Fixes: 1579c7b9fe01 ("ARM: imx53: Set DDR pins to high impedance when in suspend to RAM.") Signed-off-by: Shawn Guo arch/arm/mach-imx/pm-imx5.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 2b4737dd8176f3d384cb9f77353ffdf6de665d3c Author: Matti Gottlieb Date: Sun May 31 11:29:52 2015 +0300 iwlwifi: mvm: Remove old scan commands The firmwares that used these commands is not supported anymore. Remove them. Signed-off-by: Matti Gottlieb Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/fw-api.h | 7 ------- drivers/net/wireless/iwlwifi/mvm/ops.c | 5 ----- 2 files changed, 12 deletions(-) commit da946aeaeadcd24ff0cda9984c6fb8ed2bfd462a Author: Sébastien Szymanski Date: Wed May 20 16:30:37 2015 +0200 ARM: clk-imx6q: refine sata's parent According to IMX6D/Q RM, table 18-3, sata clock's parent is ahb, not ipg. Signed-off-by: Sébastien Szymanski Reviewed-by: Fabio Estevam Signed-off-by: Shawn Guo drivers/clk/imx/clk-imx6q.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fbfd617ea4ff5a1b8a049521eaf69fe554025569 Author: Mirza Krak Date: Wed May 20 11:38:03 2015 +0200 ARM: imx: clk-v610: Add clock for I2C2 and I2C3 Add support for clock gating of I2C2 and I2C3. We use I2C2 in a (not yet mainlined) device tree. Signed-off-by: Mirza Krak Signed-off-by: Shawn Guo drivers/clk/imx/clk-vf610.c | 2 ++ 1 file changed, 2 insertions(+) commit f6d4750298568778bd4ff86ae83983ac41290188 Author: Joe Perches Date: Tue May 19 18:37:49 2015 -0700 ARM: mach-imx: iomux-imx31: Use DECLARE_BITMAP Use the generic mechanism to declare a bitmap instead of unsigned long. Signed-off-by: Joe Perches Acked-by: Uwe Kleine-König Signed-off-by: Shawn Guo arch/arm/mach-imx/iomux-imx31.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8f6d8094b215b5705948262c7076fbe02ae859dc Author: Frank Li Date: Tue May 19 02:45:03 2015 +0800 ARM: imx: add imx7d clk tree support Add i.MX7D clk tree support. Enable all clock to bring up imx7. Clock framework need be modified a little since imx7d change clock design. otherwise system will halt and block the other part upstream. All clock refine need wait for Dong Aisheng's patch clk: support clocks which requires parent clock on during operation Or other solution ready. Signed-off-by: Anson Huang Signed-off-by: Adrian Alonso Signed-off-by: Frank Li Signed-off-by: Shawn Guo drivers/clk/imx/Makefile | 1 + drivers/clk/imx/clk-imx7d.c | 860 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 861 insertions(+) commit f53947456f98085b26d689b63c63c5e60fd1349b Author: Frank Li Date: Tue May 19 02:45:02 2015 +0800 ARM: clk: imx: update pllv3 to support imx7 Add type IMX_PLLV3_ENET_IMX7 Signed-off-by: Frank Li Signed-off-by: Shawn Guo drivers/clk/imx/clk-pllv3.c | 9 ++++++++- drivers/clk/imx/clk.h | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) commit d930d56825e934dc464cdad3f909333f994a89f3 Author: Stefan Agner Date: Mon May 18 00:13:33 2015 +0200 ARM: imx: clk-vf610: enable debug access port by default Enabled DAP (debug access port) by default. This enables the hw- breakpoint framework to make use of the breakpoints and watchpoints supported by hardware. [ 0.215805] hw-breakpoint: found 2 (+1 reserved) breakpoint and 1 watchpoint registers. [ 0.224624] hw-breakpoint: maximum watchpoint size is 4 bytes. Without this clock, the hw-breakpoint driver claims an undefined instruction during initialization: [ 0.227380] hw-breakpoint: Debug register access (0xee003e17) caused undefined instruction on CPU 0 [ 0.227519] hw-breakpoint: CPU 0 failed to disable vector catch Signed-off-by: Stefan Agner Signed-off-by: Shawn Guo drivers/clk/imx/clk-vf610.c | 2 ++ include/dt-bindings/clock/vf610-clock.h | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) commit 1579c7b9fe0105a523440ec13b0c59da53c880e3 Author: Martin Fuzzey Date: Tue May 12 15:31:03 2015 +0200 ARM: imx53: Set DDR pins to high impedance when in suspend to RAM. In order to save power the DDR pins should be put into high impedance when in suspend to RAM. This requires manually requesting self refresh (rather than using the automatic mode implemented by the CCM / ESDCTL), followed by reconfiguring the IOMUXC. Of course the code to do this cannot itself run from DDR so the code is copied to and executed from internal memory. In my tests using a custom i.MX53 board with LPDDR2 RAM this reduced the suspend power consumption from 200mW to 60mW. Signed-off-by: Martin Fuzzey Signed-off-by: Shawn Guo arch/arm/mach-imx/Makefile | 1 + arch/arm/mach-imx/common.h | 4 + arch/arm/mach-imx/pm-imx5.c | 190 +++++++++++++++++++++++++++++++++++++- arch/arm/mach-imx/suspend-imx53.S | 139 ++++++++++++++++++++++++++++ 4 files changed, 333 insertions(+), 1 deletion(-) commit 5739b919cf6c1395f3f58dd7759bf0555fb68769 Author: Anson Huang Date: Fri May 8 01:35:55 2015 +0800 ARM: imx: add msl support for imx7d Add i.MX7D MSL support. Signed-off-by: Anson Huang Signed-off-by: Frank Li Signed-off-by: Shawn Guo arch/arm/mach-imx/Kconfig | 7 +++++++ arch/arm/mach-imx/Makefile | 1 + arch/arm/mach-imx/anatop.c | 5 ++++- arch/arm/mach-imx/cpu.c | 3 +++ arch/arm/mach-imx/mach-imx7d.c | 43 ++++++++++++++++++++++++++++++++++++++++++ arch/arm/mach-imx/mxc.h | 8 +++++++- 6 files changed, 65 insertions(+), 2 deletions(-) commit 52d7aec2b8831deae7c0010ed24664d3544e0098 Author: Anson Huang Date: Wed May 6 23:16:07 2015 +0800 ARM: imx7d: add low level debug uart support Add low level uart debug support for imx7d Signed-off-by: Frank Li Signed-off-by: Bai Ping Signed-off-by: Anson Huang Signed-off-by: Shawn Guo arch/arm/Kconfig.debug | 13 +++++++++++-- arch/arm/include/debug/imx-uart.h | 15 ++++++++++++++- 2 files changed, 25 insertions(+), 3 deletions(-) commit 666c884418f7b314b3ddf3214ec0ad0aadf81c84 Author: Fabio Estevam Date: Thu Apr 2 19:23:32 2015 -0300 ARM: imx: mmdc: Include "common.h" header file Include the "common.h" header file to fix the following sparse warning: arch/arm/mach-imx/mmdc.c:66:5: warning: symbol 'imx_mmdc_get_ddr_type' was not declared. Should it be static? Signed-off-by: Fabio Estevam Signed-off-by: Shawn Guo arch/arm/mach-imx/mmdc.c | 2 ++ 1 file changed, 2 insertions(+) commit a39973a4fdad7be1edaf276334b3a1907fe31025 Author: Fabio Estevam Date: Wed Apr 29 18:34:42 2015 -0300 clk: imx: clk-cpu: Include "clk.h" header file Include the "clk.h" header file to fix the following sparse warning: drivers/clk/imx/clk-cpu.c:77:12: warning: symbol 'imx_clk_cpu' was not declared. Should it be static? Signed-off-by: Fabio Estevam Signed-off-by: Shawn Guo drivers/clk/imx/clk-cpu.c | 1 + 1 file changed, 1 insertion(+) commit 65d0a16dce3c2564b21c13d8492af48959a3c3c3 Author: Shenwei Wang Date: Wed Apr 29 16:40:27 2015 -0500 ARM: imx: Correct the comments in time.c The comments were corrected as the following to reflect the real situation of Freescale MXC timer IP block. There are totally 4 version of the timer on Freescale i.MX SoCs. Signed-off-by: Shenwei Wang Signed-off-by: Shawn Guo arch/arm/mach-imx/time.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit d0185d96c6c61871f090fe51116b6d81b3dd74b9 Author: Shenwei Wang Date: Wed Apr 29 16:18:37 2015 -0500 ARM: imx: Remove the duplicated function declaration Removed the duplicated function declaration of mxc_timer_init which was already declared in drivers/clk/imx/clk.h. Signed-off-by: Shenwei Wang Signed-off-by: Shawn Guo arch/arm/mach-imx/common.h | 1 - 1 file changed, 1 deletion(-) commit 9b589a83cf1b2bb89b6e4af7ffafe5cda33e756c Author: Krzysztof Kozlowski Date: Mon Apr 27 21:51:39 2015 +0900 ARM: imx: Constify irq_domain_ops The irq_domain_ops are not modified by the driver and the irqdomain core code accepts pointer to a const data. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Shawn Guo arch/arm/mach-imx/gpc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7a5568ce08c6f0390c73cc62a6f124e9073ebc97 Author: Anson Huang Date: Fri May 8 00:16:51 2015 +0800 ARM: imx: using unsigned variable for do_div The definition of do_div uses unsigned long long variable as its first parameter, better to pass a u64 variable as first parameter when calling do_div function. Signed-off-by: Anson Huang Acked-by: Uwe Kleine-König Signed-off-by: Shawn Guo drivers/clk/imx/clk-pllv3.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 35e2916f70e3be767c5c8ef6cc80bc5398b8914c Author: Shawn Guo Date: Wed Apr 29 13:07:03 2015 +0800 ARM: imx6: initialize CCM_CLPCR_LPM into RUN mode earlier Commit 4631960d26da ("ARM: imx6: set initial power mode in pm function") moves imx6_set_lpm() from clock init function into imx6_pm_common_init(). This causes a hang when cpuidle support is enabled. The reason for that is ARM core clock is shut down unexpectedly by WAIT mode. It happens with the following call stack: cpuidle_register_governor() cpuidle_switch_governor() cpuidle_uninstall_idle_handler() synchronize_sched() wait_rcu_gp() wait_for_completion() When wait_for_completion() is called as above, all cores are idle/WFI. Hence, the reset value of CCM_CLPCR_LPM - WAIT mode, will trigger a hardware shutdown of the ARM core clock. To fix the regression, we need to ensure that CCM_CLPCR_LPM is initialized into RUN mode earlier than cpuidle governor registration, which is a postcore_initcall. This patch creates function imx6_pm_ccm_init() to map CCM block and initialize CCM_CLPCR_LPM into RUN mode, and have the function called from machine .init_irq hook, which should be early enough. Reported-by: Kevin Hilman Fixes: 8fb76a07e2cb ("ARM: imx6: set initial power mode in pm function") Tested-by: Kevin Hilman Tested-by: Tyler Baker Signed-off-by: Shawn Guo arch/arm/mach-imx/common.h | 1 + arch/arm/mach-imx/mach-imx6q.c | 1 + arch/arm/mach-imx/mach-imx6sl.c | 1 + arch/arm/mach-imx/mach-imx6sx.c | 1 + arch/arm/mach-imx/pm-imx6.c | 28 ++++++++++++++++++---------- 5 files changed, 22 insertions(+), 10 deletions(-) commit 859d914c8f5ca5b3c9274ad69c4c942954f67cda Author: Johannes Berg Date: Mon Jun 1 17:11:11 2015 +0200 iwlwifi: prepare for higher API/CAPA bits Currently, loading the firmware fails when it has higher API or CAPA bits than the driver supports. That's an issue with integration. At the same time, actually using api[0] and capa[0] will become confusing when we also have api[1] and capa[1], and it's almost certain that we'll mix up the bits and use the bits for api[1] with api[0] by accident. Avoid all this by translating the API/CAPA bits to the regular kernel test_bit() format, and also providing wrapper functions. Also use the __bitwise__ facility of sparse to check that we're testing the right one. Signed-off-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/iwl-drv.c | 26 ++++++++--- drivers/net/wireless/iwlwifi/iwl-fw-file.h | 67 ++++++++++++++++------------- drivers/net/wireless/iwlwifi/iwl-fw.h | 20 +++++++-- drivers/net/wireless/iwlwifi/mvm/coex.c | 22 +++++----- drivers/net/wireless/iwlwifi/mvm/debugfs.c | 9 ++-- drivers/net/wireless/iwlwifi/mvm/fw.c | 4 +- drivers/net/wireless/iwlwifi/mvm/mac80211.c | 47 ++++++++++---------- drivers/net/wireless/iwlwifi/mvm/mvm.h | 21 +++++---- drivers/net/wireless/iwlwifi/mvm/nvm.c | 8 ++-- drivers/net/wireless/iwlwifi/mvm/rs.c | 10 ++--- drivers/net/wireless/iwlwifi/mvm/rx.c | 4 +- drivers/net/wireless/iwlwifi/mvm/scan.c | 33 +++++++------- drivers/net/wireless/iwlwifi/mvm/tx.c | 4 +- drivers/net/wireless/iwlwifi/mvm/utils.c | 2 +- 14 files changed, 161 insertions(+), 116 deletions(-) commit de8e434d09f253369621e994da1833703c5c51d6 Author: Shawn Guo Date: Tue Apr 28 09:19:02 2015 +0800 ARM: imx: drop epit timer initialization from imx35 clock driver EPIT provides another timer implementation besides the default GPT timer. The imx35 clock driver will use EPIT timer when option CONFIG_MXC_USE_EPIT is enabled. However, initializing timers from clock driver is a workaround solution and causes problem when we move clock drivers into driver/clk. Let's simply drop the EPIT initialization from there. If people really want this EPIT option, EPIT timer driver needs to be reworked to do the initialization in a standard way - use CLOCKSOURCE_OF_DECLARE() with device tree support. Reported-by: kbuild test robot Signed-off-by: Shawn Guo drivers/clk/imx/clk-imx35.c | 4 ---- 1 file changed, 4 deletions(-) commit cf20968a78c8cc8c1c06f6693a0059d27548656e Author: Shawn Guo Date: Sun Apr 26 21:58:12 2015 +0800 MAINTAINERS: add new folders into IMX entry Add new created folders drivers/clk/imx/ and include/soc/imx/ into IMX entry. Signed-off-by: Shawn Guo MAINTAINERS | 2 ++ 1 file changed, 2 insertions(+) commit 11f68120095d6040abd2eb37bf21bb9450646304 Author: Shawn Guo Date: Sun Apr 26 21:54:29 2015 +0800 ARM: imx: move clock drivers into drivers/clk After the cleanup on clock drivers, they are now ready to be moved into drivers/clk. Let's move them into drivers/clk/imx folder. Signed-off-by: Shawn Guo Acked-by: Stephen Boyd arch/arm/mach-imx/Makefile | 27 +- arch/arm/mach-imx/clk-busy.c | 189 ----------- arch/arm/mach-imx/clk-cpu.c | 107 ------- arch/arm/mach-imx/clk-fixup-div.c | 129 -------- arch/arm/mach-imx/clk-fixup-mux.c | 108 ------- arch/arm/mach-imx/clk-gate-exclusive.c | 94 ------ arch/arm/mach-imx/clk-gate2.c | 160 --------- arch/arm/mach-imx/clk-imx1.c | 121 ------- arch/arm/mach-imx/clk-imx21.c | 174 ---------- arch/arm/mach-imx/clk-imx25.c | 262 --------------- arch/arm/mach-imx/clk-imx27.c | 262 --------------- arch/arm/mach-imx/clk-imx31.c | 220 ------------- arch/arm/mach-imx/clk-imx35.c | 313 ------------------ arch/arm/mach-imx/clk-imx51-imx53.c | 570 --------------------------------- arch/arm/mach-imx/clk-imx6q.c | 538 ------------------------------- arch/arm/mach-imx/clk-imx6sl.c | 443 ------------------------- arch/arm/mach-imx/clk-imx6sx.c | 561 -------------------------------- arch/arm/mach-imx/clk-pfd.c | 158 --------- arch/arm/mach-imx/clk-pllv1.c | 141 -------- arch/arm/mach-imx/clk-pllv2.c | 266 --------------- arch/arm/mach-imx/clk-pllv3.c | 331 ------------------- arch/arm/mach-imx/clk-vf610.c | 412 ------------------------ arch/arm/mach-imx/clk.c | 75 ----- arch/arm/mach-imx/clk.h | 155 --------- drivers/clk/Makefile | 1 + drivers/clk/imx/Makefile | 25 ++ drivers/clk/imx/clk-busy.c | 189 +++++++++++ drivers/clk/imx/clk-cpu.c | 107 +++++++ drivers/clk/imx/clk-fixup-div.c | 129 ++++++++ drivers/clk/imx/clk-fixup-mux.c | 108 +++++++ drivers/clk/imx/clk-gate-exclusive.c | 94 ++++++ drivers/clk/imx/clk-gate2.c | 160 +++++++++ drivers/clk/imx/clk-imx1.c | 121 +++++++ drivers/clk/imx/clk-imx21.c | 174 ++++++++++ drivers/clk/imx/clk-imx25.c | 262 +++++++++++++++ drivers/clk/imx/clk-imx27.c | 262 +++++++++++++++ drivers/clk/imx/clk-imx31.c | 220 +++++++++++++ drivers/clk/imx/clk-imx35.c | 313 ++++++++++++++++++ drivers/clk/imx/clk-imx51-imx53.c | 570 +++++++++++++++++++++++++++++++++ drivers/clk/imx/clk-imx6q.c | 538 +++++++++++++++++++++++++++++++ drivers/clk/imx/clk-imx6sl.c | 443 +++++++++++++++++++++++++ drivers/clk/imx/clk-imx6sx.c | 561 ++++++++++++++++++++++++++++++++ drivers/clk/imx/clk-pfd.c | 158 +++++++++ drivers/clk/imx/clk-pllv1.c | 141 ++++++++ drivers/clk/imx/clk-pllv2.c | 266 +++++++++++++++ drivers/clk/imx/clk-pllv3.c | 331 +++++++++++++++++++ drivers/clk/imx/clk-vf610.c | 412 ++++++++++++++++++++++++ drivers/clk/imx/clk.c | 75 +++++ drivers/clk/imx/clk.h | 155 +++++++++ 49 files changed, 5826 insertions(+), 5805 deletions(-) commit 0c831317e77b55612ffa1b402b262983bc7001d2 Author: Shawn Guo Date: Sat Apr 25 18:43:45 2015 +0800 ARM: imx: remove inclusions of platform headers With the cleanup done before, we now can simply define base address and irq as needed in clock driver, to get those platform header inclusions removed. Signed-off-by: Shawn Guo arch/arm/mach-imx/clk-imx1.c | 7 +++++-- arch/arm/mach-imx/clk-imx21.c | 7 +++++-- arch/arm/mach-imx/clk-imx25.c | 2 -- arch/arm/mach-imx/clk-imx27.c | 8 ++++++-- arch/arm/mach-imx/clk-imx31.c | 21 +++++++++++++++++---- arch/arm/mach-imx/clk-imx35.c | 20 +++++++++++++++++--- arch/arm/mach-imx/clk-imx51-imx53.c | 3 +-- arch/arm/mach-imx/clk-imx6q.c | 3 +-- arch/arm/mach-imx/clk-imx6sl.c | 1 - arch/arm/mach-imx/clk-imx6sx.c | 1 - arch/arm/mach-imx/clk-pllv1.c | 2 -- arch/arm/mach-imx/clk.h | 7 +++++++ 12 files changed, 59 insertions(+), 23 deletions(-) commit 3bec5f8184125ad4441905aee1856ef0a57b66b1 Author: Shawn Guo Date: Sun Apr 26 13:33:39 2015 +0800 ARM: imx: add clk-pllv1 type support Instead of calling cpu_is_xxx() in clk-pllv1 driver, let's add clk-pllv1 type support to handle the difference/quirk in particular SoC designs. Doing so will help get clk-pllv1 driver ready for being moved out of arch/arm/mach-imx folder. Signed-off-by: Shawn Guo arch/arm/mach-imx/clk-imx1.c | 4 ++-- arch/arm/mach-imx/clk-imx21.c | 4 ++-- arch/arm/mach-imx/clk-imx25.c | 4 ++-- arch/arm/mach-imx/clk-imx27.c | 4 ++-- arch/arm/mach-imx/clk-imx31.c | 6 +++--- arch/arm/mach-imx/clk-imx35.c | 4 ++-- arch/arm/mach-imx/clk-pllv1.c | 31 ++++++++++++++++++++++++------- arch/arm/mach-imx/clk.h | 13 +++++++++++-- 8 files changed, 48 insertions(+), 22 deletions(-) commit 961dfd37fa165c8d5019648edcec966f28300959 Author: Shawn Guo Date: Sun Apr 26 10:43:52 2015 +0800 ARM: imx6: do not use cpu_is_xxx() in clock driver As we're about to move clock drivers out of arch/arm/mach-imx, cpu_is_xxx() shouldn't be used any more. Let's avoid the call by looking at the device tree machine compatible string to determine which SoC the clock driver is running on. Signed-off-by: Shawn Guo arch/arm/mach-imx/clk-imx6q.c | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) commit f0b478b5d42ee9d925b45c22cbdc1ad4c90c3cf1 Author: Shawn Guo Date: Sat Apr 25 23:37:12 2015 +0800 ARM: imx6: let pm code map CCM block on its own We are about to move imx6 clock driver into drivers/clk, so let's get imx6 pm code map CCM block on its own rather than relying on clock driver to do the mapping. Signed-off-by: Shawn Guo arch/arm/mach-imx/clk-imx6q.c | 2 -- arch/arm/mach-imx/clk-imx6sl.c | 3 --- arch/arm/mach-imx/clk-imx6sx.c | 2 -- arch/arm/mach-imx/common.h | 1 - arch/arm/mach-imx/pm-imx6.c | 16 +++++++++------- 5 files changed, 9 insertions(+), 15 deletions(-) commit 8fb76a07e2cb08b9f278a6415af4f784bb635a6e Author: Shawn Guo Date: Sat Apr 25 22:59:19 2015 +0800 ARM: imx6: set initial power mode in pm function Rather than setting initial low-power mode in every single i.MX6 clock initialization function, we should really do that in pm code. Let's move imx6q_set_lpm(WAIT_CLOCKED) call into imx6_pm_common_init(). While at it, let's rename the function to imx6_set_lpm() since it's actually common for all i.MX6 SoCs. Signed-off-by: Shawn Guo arch/arm/mach-imx/clk-imx6q.c | 3 --- arch/arm/mach-imx/clk-imx6sl.c | 3 --- arch/arm/mach-imx/clk-imx6sx.c | 3 --- arch/arm/mach-imx/common.h | 2 +- arch/arm/mach-imx/cpuidle-imx6q.c | 4 ++-- arch/arm/mach-imx/cpuidle-imx6sl.c | 4 ++-- arch/arm/mach-imx/cpuidle-imx6sx.c | 4 ++-- arch/arm/mach-imx/pm-imx6.c | 14 ++++++++------ 8 files changed, 15 insertions(+), 22 deletions(-) commit f3a9249d096178d29bba69cece29da99a622ce28 Author: Shawn Guo Date: Sat Apr 25 22:38:19 2015 +0800 ARM: imx5: let pm code map CCM block on its own We are about to move imx5 clock driver into drivers/clk, so let's get imx5 pm code map CCM block on its own rather than relying on clock driver to do the mapping. Signed-off-by: Shawn Guo arch/arm/mach-imx/clk-imx51-imx53.c | 2 -- arch/arm/mach-imx/common.h | 2 -- arch/arm/mach-imx/pm-imx5.c | 9 ++++----- 3 files changed, 4 insertions(+), 9 deletions(-) commit 9bbef18750b34fa1d476e46a7833867b49f856c4 Author: Shawn Guo Date: Sat Apr 25 21:03:15 2015 +0800 ARM: imx: move revision definitions and declarations into a header The revision definitions and declarations are widely used by clock drivers. As a step of moving clock drivers out of arch/arm/mach-imx, let's create header include/soc/imx/revision.h to accommodate them. Signed-off-by: Shawn Guo arch/arm/mach-imx/common.h | 4 ---- arch/arm/mach-imx/hardware.h | 1 + arch/arm/mach-imx/mx27.h | 4 ---- arch/arm/mach-imx/mx3x.h | 7 ------- arch/arm/mach-imx/mxc.h | 16 ---------------- include/soc/imx/revision.h | 37 +++++++++++++++++++++++++++++++++++++ 6 files changed, 38 insertions(+), 31 deletions(-) commit 5ab96a8df094b87673b67e4dce70e31248d663a3 Author: Shawn Guo Date: Sat Apr 25 16:02:53 2015 +0800 ARM: imx: use dynamic mapping for CCM Replace the static mapping of CCM block in clock drivers with dynamic mapping. Signed-off-by: Shawn Guo arch/arm/mach-imx/clk-imx1.c | 3 ++- arch/arm/mach-imx/clk-imx31.c | 5 ++++- arch/arm/mach-imx/clk-imx35.c | 5 ++++- 3 files changed, 10 insertions(+), 3 deletions(-) commit 6c529c499fecfe65da6429917bd9cb319040c69e Author: Shawn Guo Date: Sat Apr 25 15:44:10 2015 +0800 ARM: imx: use dynamic mapping for timer Pass physical address of timer block to mxc_timer_init() call, which in turn does dynamic mapping within the function. Thus, we can avoid using static mapping in clock drivers. Signed-off-by: Shawn Guo arch/arm/mach-imx/clk-imx1.c | 2 +- arch/arm/mach-imx/clk-imx21.c | 2 +- arch/arm/mach-imx/clk-imx27.c | 2 +- arch/arm/mach-imx/clk-imx31.c | 2 +- arch/arm/mach-imx/clk-imx35.c | 2 +- arch/arm/mach-imx/common.h | 2 +- arch/arm/mach-imx/time.c | 5 +++-- 7 files changed, 9 insertions(+), 8 deletions(-) commit ebf17ff9bb46206ca7a4bc7260bff52f593c25db Author: Johannes Berg Date: Mon Jun 1 23:38:23 2015 +0200 iwlwifi: mvm: simplify iwl_mvm_stop_roc() As pointed out by smatch, there's no need for a loop that always immediately terminates. Use an if statement instead and while at it clean up the mvmvif initialization. Signed-off-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/time-event.c | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) commit aa42fb2420d4dc213d8306a9e0fdddf7ba83a10c Author: Johannes Berg Date: Fri Apr 17 15:50:43 2015 +0200 iwlwifi: dvm: enable IEEE80211_HW_SUPPORT_FAST_XMIT Since the firmware is responsible for duration calculation, the driver can easily support fast-xmit. Signed-off-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/dvm/mac80211.c | 1 + 1 file changed, 1 insertion(+) commit 0d060384be7b65cfc33a86be75d5cc41af78c654 Author: Johannes Berg Date: Fri Apr 17 15:50:43 2015 +0200 iwlwifi: mvm: enable IEEE80211_HW_SUPPORT_FAST_XMIT Since the firmware is responsible for duration calculation, the driver can easily support fast-xmit. Signed-off-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/mac80211.c | 1 + 1 file changed, 1 insertion(+) commit 5f17570354f91275b0a37a4da33d29a2ab57d32e Author: Sara Sharon Date: Tue Apr 28 12:56:54 2015 +0300 iwlwifi: pcie: New RBD allocation model As a preperation for multiple RX queues change the RBD allocation model. The new model includes a background allocator. The allocator is called by the interrupt handler when there are two released buffers by the queue, and the allocator starts allocating eight pages per request. When the queue has released 8 pages it tries claiming the request. If the pages are not ready - it keeps claiming. This new model should make sure that RBDs are always available across the multiple queues. The RBDs are transferred between the allocator and the queue. The queue moves the free RBDs upon freeing them to the allocator. The allocator moves them back to the queue's possession when the request is claimed. The allocator has an initial pool to make sure there are always RBDs available for the request completion. Release of the buffers at exit is done per pools - the allocator frees its own initial pool and the queue frees its own pool. Existing code refactor - -Queue's initial pool is the size of the queue only as the allocation of the new buffers no longer uses this pool. -Removal of replenish background work, and replenish calls in the interrupt handler and restock(). -The replenish() and the rxq used_list are used only during initialization. -Moved page allocation to a new function for code reuse. New code - Allocator code - new structure and functions. Interrupt handler uses the allocator functions for replenishing buffers. Reuse of the restock() method. Signed-off-by: Sara Sharon Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/iwl-fh.h | 6 - drivers/net/wireless/iwlwifi/pcie/internal.h | 51 +++- drivers/net/wireless/iwlwifi/pcie/rx.c | 414 +++++++++++++++++++++------ 3 files changed, 374 insertions(+), 97 deletions(-) commit 54154618b5633a2ecb02ba7fe8890c7fec80c404 Author: Eliad Peller Date: Thu May 28 16:50:12 2015 +0300 iwlwifi: pcie: re-enable interrupts on resume On resume, all the interrupts are masked (CSR_INT_MASK is 0), and ict is disabled. Re-configure them both. Signed-off-by: Eliad Peller Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/iwl-trans.h | 2 ++ drivers/net/wireless/iwlwifi/mvm/d3.c | 3 ++- drivers/net/wireless/iwlwifi/pcie/drv.c | 17 ++++++++++++++--- 3 files changed, 18 insertions(+), 4 deletions(-) commit 0ed4668a5fafa922f450fca4b3431610a21626c5 Author: Frank Li Date: Wed Jun 3 14:41:29 2015 +0800 dt-bindings: add imx7d clock ID definitions It adds the imx7d clock ID definitions which will be used by both imx7d clock driver and device tree. Signed-off-by: Frank Li Signed-off-by: Shawn Guo include/dt-bindings/clock/imx7d-clock.h | 450 ++++++++++++++++++++++++++++++++ 1 file changed, 450 insertions(+) commit 15286e26d28aa21754510b86edee67a1d6537449 Author: David Spinadel Date: Tue May 26 10:32:19 2015 +0300 iwlwifi: mvm: don't use EBS for P2P find Don't use EBS for P2P find to make sure we find all GOs in our only attempt. Signed-off-by: David Spinadel Reviewed-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/scan.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) commit f0bf859304a9444e275530a29d4162978c9e8b81 Author: David Spinadel Date: Wed May 20 11:56:59 2015 +0300 iwlwifi: mvm: add inactive state to ebs status Currently EBS status in scan complete notifications is set to success if EBS wasn't activated. FW will add a special return value for cases when EBS wasn't activated and we add a print of this status. This change is needed for debug only, no behavior changes. Signed-off-by: David Spinadel Reviewed-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/fw-api-scan.h | 1 + drivers/net/wireless/iwlwifi/mvm/scan.c | 33 +++++++++++++++++++------- 2 files changed, 25 insertions(+), 9 deletions(-) commit 95411d0455cc522c9f5176d37940a311e0241c42 Author: Avri Altman Date: Mon May 11 11:04:34 2015 +0300 iwlwifi: pcie: Control access to the NIC's PM registers via iwl_cfg Allow a cleaner way to access those hw-dependent registers, instead of using the product family type etc. Signed-off-by: Avri Altman Reviewed-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/iwl-8000.c | 3 ++- drivers/net/wireless/iwlwifi/iwl-config.h | 1 + drivers/net/wireless/iwlwifi/mvm/ops.c | 2 +- drivers/net/wireless/iwlwifi/pcie/rx.c | 1 + drivers/net/wireless/iwlwifi/pcie/trans.c | 16 ++++++++-------- 5 files changed, 13 insertions(+), 10 deletions(-) commit 6a8ac59c80d74df0a6e2280ebec77b307d8c077a Author: Liad Kaufman Date: Tue May 19 13:47:03 2015 +0300 iwlwifi: wrt: add mipi type to debug types This adds the MIPI mode type to the types declared supported by the driver. Without this patch, when using MIPI mode and looking at the logs the user would see the debug destination "UNKNOWN". Signed-off-by: Liad Kaufman Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/iwl-fw-file.h | 2 ++ drivers/net/wireless/iwlwifi/iwl-fw.h | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) commit bb8f44c919309eb638e26e6d5e6b5d1fae8d6748 Author: Eyal Shapira Date: Wed May 27 22:00:03 2015 +0300 iwlwifi: mvm: rs: pass rate directly to column checks A minor refactoring for following patches. This enables the reuse of the checks functions. type=cleanup Signed-off-by: Eyal Shapira Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/rs.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 03b135cebc47d75ea2dc346770374ab741966955 Author: Libin Yang Date: Wed Jun 3 09:30:15 2015 +0800 ALSA: hda - remove controller dependency on i915 power well for SKL For SKL, only the HDMI codec is in the display power well while the HD-A controller isn't. So the controller flag 'need_i915_power' is not set to release the display power after probe, and the codec flag 'link_power_control' is set to request/release the display power via bus link_power ops. Signed-off-by: Libin Yang Signed-off-by: Takashi Iwai sound/pci/hda/hda_intel.c | 9 +++++++-- sound/pci/hda/patch_hdmi.c | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) commit 21bfd1aa9527811408d6073d45e5ac8283a28b72 Author: Robert Richter Date: Sun May 31 13:55:18 2015 +0200 ahci: Store irq number in struct ahci_host_priv Currently, ahci supports only msi and intx. To also support msix the handling of the irq number need to be changed. The irq number for msix devices is taken from msi_list instead of pci_dev. Thus, the irq number of a device needs to be stored in struct ahci_host_priv now. This allows the host controller to be activated in a generic way. This change is only intended for ahci drivers. For that reason the irq number is stored in struct ahci_host_priv used only by ahci drivers. Thus, the ABI changes only for ahci_host_activate(), but existing ata drivers (about 50) are unaffected and keep unchanged. All users of ahci_host_activate() have been updated. While touching drivers/ata/libahci.c, doing a small code cleanup in ahci_port_start(). Signed-off-by: Robert Richter Signed-off-by: Tejun Heo drivers/ata/acard-ahci.c | 4 +++- drivers/ata/ahci.c | 15 ++++++++++----- drivers/ata/ahci.h | 4 ++-- drivers/ata/libahci.c | 16 +++++++--------- drivers/ata/libahci_platform.c | 4 +++- drivers/ata/sata_highbank.c | 3 ++- 6 files changed, 27 insertions(+), 19 deletions(-) commit a1c823117894ed79943a87b1c718139cc1be1b6a Author: Robert Richter Date: Sun May 31 13:55:17 2015 +0200 ahci: Move interrupt enablement code to a separate function This patch refactors ahci_init_interrupts() and moves msi code to a separate function. Need the split since we add msix initialization in a later patch. The initialization for msix will be done after msi but before intx. Signed-off-by: Robert Richter Signed-off-by: Tejun Heo drivers/ata/ahci.c | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) commit b3d424e3dcbb5eba572baae30e1052b2fff7b51e Merge: f504202 692fbb8 Author: Greg Kroah-Hartman Date: Wed Jun 3 14:13:41 2015 +0900 Merge tag 'phy-for-v4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/kishon/linux-phy into usb-next Kishon writes: phy: for 4.2 merge window *) new Broadcom SATA3 PHY driver for Broadcom STB SoCs *) new phy API to get PHY by index which is used in EHCI and OHCI controller drivers *) support specifying supply at port level used for multi-port PHYs *) sparse warning fixes in miphy PHYs *) fix pm_runtime issues in twl4030 driver Signed-off-by: Kishon Vijay Abraham I commit 00465f4c84867975e76fb5fb20f809f3f803e2c3 Merge: 1f656ff f8df880 Author: Greg Kroah-Hartman Date: Wed Jun 3 14:09:12 2015 +0900 Merge tag 'extcon-next-for-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/chanwoo/extcon into char-misc-next Chanwoo writes: Update extcon for v4.2 This patchset include the huge update of extcon core and add the new one extcon driver and fix minor isseu of extcon drivers. Detailed description for patchset: 1. Update the extcon core. - Modify the extcon device name on sysfs from device name name to 'extcon[X]' as following because if same extcon device are included in H/W development board, the one of the two device driver might be failed on the probe(). : /sys/class/extcon/[device name] -> /sys/class/extcon/extcon[X] - Use the unique id for external connectors instead of legacy string name. Previously, extcon used the string name to identify the type of external connectors. This way have the many potential issues. So, extcon core define the unique id for each external connectors as following: enum extcon { EXTCON_NONE = 0x0, /* USB external connector */ EXTCON_USB = 0x1, EXTCON_USB_HOST = 0x2, /* Charger external connector */ EXTCON_TA = 0x10, EXTCON_FAST_CHARGER = 0x11, EXTCON_SLOW_CHARGER = 0x12, EXTCON_CHARGE_DOWNSTREAM = 0x13, /* Audio and video external connector */ EXTCON_LINE_IN = 0x20, EXTCON_LINE_OUT = 0x21, EXTCON_MICROPHONE = 0x22, EXTCON_HEADPHONE = 0x23, ... }; - Update tye prototype of extcon_register_notifier() by using the unique id (enum extcon) of external connectors. - Add extcon_get_edev_name() API to get the name of extcon device on extcon client driver because the name is included in 'struct extcon_dev' and 'struct extcon_dev' should be handled in only drivers/extcon directory. So. if extcon client need the name of extcon device, they could use this function. - Unify the jig/dock and MHL-TA cable name on extcon driver. : JIG-{USB-ON|USB-OFF|UART-ON|UART-OFF} -> JIG : Dock-{Smart|Desk|Audio|Card} -> DOCK : MHL-TA -> TA - Use the capital letter for the name of all external connectors. - Remove the optional print_name() function pointer from struct extcon_dev to maintain the consistent name of extcon device. 2. Add the new extcon-axp288.c extcon driver. - The extcon-axp288.c driver support for AXP288 PMIC which has the BC1.2 charger detection capability. So this extcon driver can detect the EXTCON_SLOW_CHARGER, EXTCON_CHARGE_DOWNSTREAM and EXTCON_FAST_CHARGER. 3. Update the extcon-arizona.c driver. - Add support for selective detection mode when headphone detection. - Apply HP clamps for WM8280 4. Clean-up the extcon core and drivers. - Add manufactor information of each extcon device. - Fix checkpatch warning and minor coding style on extcon.c.c - Fix build break if GPIOLIB is not enabled on extcon-usb-gpiio.c. - Set the direction of gpio when calling devm_gpiod_get() on extcon-usb-gpio.c commit 6f7f0b3df6d49316c6f27390bb5ec250255be548 Author: Michael Neuling Date: Wed May 27 16:07:18 2015 +1000 cxl: Add AFU virtual PHB and kernel API This patch does two things. Firstly it presents the Accelerator Function Unit (AFUs) behind the POWER Service Layer (PSL) as PCI devices on a virtual PCI Host Bridge (vPHB). This in in addition to the PSL being a PCI device itself. As part of the Coherent Accelerator Interface Architecture (CAIA) AFUs can provide an AFU configuration. This AFU configuration recored is architected to be the same as a PCI config space. This patch sets discovers the AFU configuration records, provides AFU config space read/write functions to these configuration records. It then enumerates the PCI bus. It also hooks in PCI ops where appropriate. It also destroys the vPHB when the physical card is removed. Secondly, it add an in kernel API for AFU to use CXL. AFUs must present a driver that firstly binds as a PCI device. This PCI device can then be using to do CXL specific operations (that can't sit in the PCI ops) using this API. Signed-off-by: Michael Neuling Acked-by: Ian Munsie Signed-off-by: Michael Ellerman drivers/misc/cxl/Makefile | 1 + drivers/misc/cxl/api.c | 331 ++++++++++++++++++++++++++++++++++++++++++++++ drivers/misc/cxl/cxl.h | 5 + drivers/misc/cxl/pci.c | 17 ++- drivers/misc/cxl/vphb.c | 269 +++++++++++++++++++++++++++++++++++++ include/misc/cxl.h | 203 ++++++++++++++++++++++++++++ 6 files changed, 822 insertions(+), 4 deletions(-) commit 0520336afe5de76324c73f793bc40732e5c13359 Author: Michael Neuling Date: Wed May 27 16:07:17 2015 +1000 cxl: Export file ops for use by API The cxl kernel API will allow drivers other than cxl to export a file descriptor which has the same userspace API. These file descriptors will be able to be used against libcxl. This exports those file ops for use by other drivers. Signed-off-by: Michael Neuling Acked-by: Ian Munsie Signed-off-by: Michael Ellerman drivers/misc/cxl/cxl.h | 9 +++++++++ drivers/misc/cxl/file.c | 23 ++++++++++++++--------- 2 files changed, 23 insertions(+), 9 deletions(-) commit ec249dd860ed88e15b3e2bd363cbfc76ba8c1884 Author: Michael Neuling Date: Wed May 27 16:07:16 2015 +1000 cxl: Move include file cxl.h -> cxl-base.h This moves the current include file from cxl.h -> cxl-base.h. This current include file is used only to pass information between the base driver that needs to be built into the kernel and the cxl module. This is to make way for a new include/misc/cxl.h which will contain just the kernel API for other driver to use Signed-off-by: Michael Neuling Acked-by: Ian Munsie Signed-off-by: Michael Ellerman MAINTAINERS | 2 +- arch/powerpc/include/asm/pnv-pci.h | 2 +- arch/powerpc/mm/copro_fault.c | 2 +- arch/powerpc/mm/hash_native_64.c | 2 +- arch/powerpc/platforms/powernv/pci-ioda.c | 2 +- drivers/misc/cxl/base.c | 2 +- drivers/misc/cxl/cxl.h | 2 +- drivers/misc/cxl/irq.c | 2 +- drivers/misc/cxl/main.c | 2 +- drivers/misc/cxl/native.c | 2 +- include/misc/cxl-base.h | 48 +++++++++++++++++++++++++++++++ include/misc/cxl.h | 48 ------------------------------- 12 files changed, 58 insertions(+), 58 deletions(-) commit 406e12ec0b645f22b16affc71b8aa429d1777f05 Author: Michael Neuling Date: Wed May 27 16:07:15 2015 +1000 cxl: Cleanup Makefile Cleanup Makefile by fixing line wrapping. Signed-off-by: Michael Neuling Acked-by: Ian Munsie Signed-off-by: Michael Ellerman drivers/misc/cxl/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 7bb5d91a4dda92e28b2704a3e7ebe94260ccd6f1 Author: Michael Neuling Date: Wed May 27 16:07:14 2015 +1000 cxl: Rework context lifetimes This reworks contexts lifetimes a bit to enable the kernel API where we may want to reuse contexts. Here we will want to start and stop contexts without freeing them. Start context does the get pid & ctx so stop context will need to do the puts. Here we move put pid & ctx to the detach context path which will become part of the stop context path. Signed-off-by: Michael Neuling Acked-by: Ian Munsie Signed-off-by: Michael Ellerman drivers/misc/cxl/context.c | 5 +++-- drivers/misc/cxl/file.c | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) commit 2f663527bd6aa94763aafd3a22332903815fbf81 Author: Michael Neuling Date: Wed May 27 16:07:13 2015 +1000 cxl: Configure PSL for kernel contexts and merge code This updates AFU directed and dedicated modes for contexts attached to the kernel. The SR (similar to the MSR in the core) calculation is getting quite complex and is duplicated in AFU directed and dedicated modes. This patch also merges this SR calculation for these modes. Signed-off-by: Michael Neuling Acked-by: Ian Munsie Signed-off-by: Michael Ellerman drivers/misc/cxl/native.c | 63 ++++++++++++++++++++++++++--------------------- 1 file changed, 35 insertions(+), 28 deletions(-) commit c358d84b4e57b060e0287d0c614f8f076d725612 Author: Michael Neuling Date: Wed May 27 16:07:12 2015 +1000 cxl: Split afu_register_irqs() function Split the afu_register_irqs() function so that different parts can be useful elsewhere. Signed-off-by: Michael Neuling Acked-by: Ian Munsie Signed-off-by: Michael Ellerman drivers/misc/cxl/cxl.h | 1 + drivers/misc/cxl/irq.c | 31 ++++++++++++++++++++++++------- 2 files changed, 25 insertions(+), 7 deletions(-) commit a6b07d825750f76eeb2972c70a8f0e6e62566954 Author: Michael Neuling Date: Wed May 27 16:07:11 2015 +1000 cxl: Only check pid for userspace contexts We only need to check the pid attached to this context for userspace contexts. Kernel contexts can skip this check. Signed-off-by: Michael Neuling Acked-by: Ian Munsie Signed-off-by: Michael Ellerman drivers/misc/cxl/fault.c | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) commit 1a1a94b876b9159d2b10675d8f680f7bbedc163e Author: Michael Neuling Date: Wed May 27 16:07:10 2015 +1000 cxl: Export some symbols Export some symbols which will soon be used elsewhere in this driver. Now they are global we rename them so to avoid collisions. Signed-off-by: Michael Neuling Acked-by: Ian Munsie Signed-off-by: Michael Ellerman drivers/misc/cxl/cxl.h | 5 +++++ drivers/misc/cxl/native.c | 10 +++++----- 2 files changed, 10 insertions(+), 5 deletions(-) commit b12994fbfe9362e3b5ed9f360d3cd6fb34d6645a Author: Michael Neuling Date: Wed May 27 16:07:09 2015 +1000 cxl: cxl_afu_reset() -> __cxl_afu_reset() Rename cxl_afu_reset() to __cxl_afu_reset() to we can reuse this function name in the API. Signed-off-by: Michael Neuling Acked-by: Ian Munsie Signed-off-by: Michael Ellerman drivers/misc/cxl/cxl.h | 2 +- drivers/misc/cxl/native.c | 8 ++++---- drivers/misc/cxl/pci.c | 4 ++-- drivers/misc/cxl/sysfs.c | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) commit eda3693c842ed169af66af943554c648633769d0 Author: Michael Neuling Date: Wed May 27 16:07:08 2015 +1000 cxl: Rework detach context functions Rework __detach_context() and cxl_context_detach() so we can reuse them in the kernel API. Signed-off-by: Michael Neuling Acked-by: Ian Munsie Signed-off-by: Michael Ellerman drivers/misc/cxl/context.c | 20 +++++++++++++------- drivers/misc/cxl/cxl.h | 1 + 2 files changed, 14 insertions(+), 7 deletions(-) commit 6428832a7bfae73345706d63a228a6ce60af0081 Author: Michael Neuling Date: Wed May 27 16:07:07 2015 +1000 cxl: Add cookie parameter to afu_release_irqs() Add cookie parameter to afu_release_irqs() so that we can pass in a different cookie than the context structure. This will be useful for other kernel drivers that want to call this but get their own cookie back in the interrupt handler. Update all existing call sites. Signed-off-by: Michael Neuling Acked-by: Ian Munsie Signed-off-by: Michael Ellerman drivers/misc/cxl/context.c | 2 +- drivers/misc/cxl/cxl.h | 2 +- drivers/misc/cxl/file.c | 2 +- drivers/misc/cxl/irq.c | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) commit bfcdc8fffe738c4c06673ed0e447a718b43b7311 Author: Michael Neuling Date: Wed May 27 16:07:06 2015 +1000 cxl: Dump debug info on the AFU configuration record Now that we parse the AFU Configuration record, dump some info on it when in debug mode. Signed-off-by: Michael Neuling Acked-by: Ian Munsie Signed-off-by: Michael Ellerman drivers/misc/cxl/pci.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit 7f436b534d5a2277b4826e252a6f622e7986bbd3 Author: Michael Neuling Date: Wed May 27 16:07:05 2015 +1000 cxl: Fix error path on probe When probing we call pci_enable_device() but don't call pci_disable_device() on fail. This causes refcounting issues in the PCI subsystem if a second driver tries to bind to the same device. This patch adds the pci_disable_device() to the probe error path. This error path is hit when this cxl driver tries to bind to AFUs (on the vPHB) rather than the physical device. Signed-off-by: Michael Neuling Acked-by: Ian Munsie Signed-off-by: Michael Ellerman drivers/misc/cxl/pci.c | 1 + 1 file changed, 1 insertion(+) commit bee30c7045847524be1b4b6b23a303c6763a96f9 Author: Ian Munsie Date: Wed May 27 16:07:04 2015 +1000 cxl: Re-order card init to check the VSEC earlier When we expose AFUs as virtual PCI devices, they may look like the physical CAPI PCI card. ie they may have the same vendor/device IDs. We want to avoid these AFUs binding to this driver and any init this driver may do. Re-order card init to check the VSEC earlier before assigning BARs or activating CXL. Also change the dev used in early prints as the adapter struct may not be inited at this earlier stage. Signed-off-by: Ian Munsie Signed-off-by: Michael Neuling Signed-off-by: Michael Ellerman drivers/misc/cxl/pci.c | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) commit 69c3a73c81a648daeac08225ff08b168472ff27e Author: Michael Neuling Date: Wed May 27 16:07:03 2015 +1000 cxl: Remove unnecessarily verbose print in cxl_remove() Signed-off-by: Michael Neuling Acked-by: Ian Munsie Signed-off-by: Michael Ellerman drivers/misc/cxl/pci.c | 2 -- 1 file changed, 2 deletions(-) commit aa70775e9ae1f7406fcfb877e6dbb9c13aa34840 Author: Michael Neuling Date: Wed May 27 16:07:02 2015 +1000 cxl: Add shutdown hook Signed-off-by: Michael Neuling Acked-by: Ian Munsie Signed-off-by: Michael Ellerman drivers/misc/cxl/pci.c | 1 + 1 file changed, 1 insertion(+) commit aee85fb6ba766dc813ec0211a7340334b27b8f47 Author: Michael Neuling Date: Wed May 27 16:07:01 2015 +1000 cxl: Document external user of existing API Now that libcxl is public, let's document it. Signed-off-by: Michael Neuling Acked-by: Ian Munsie Signed-off-by: Michael Ellerman Documentation/ABI/testing/sysfs-class-cxl | 22 ++++++++++++++++++++++ Documentation/powerpc/cxl.txt | 4 ++++ 2 files changed, 26 insertions(+) commit abeeed6d3d9948b3235a5bb77759d8c1f84de39d Author: Michael Neuling Date: Wed May 27 16:07:00 2015 +1000 powerpc/pci: Add pcibios_disable_device() hook This adds a hook into the powerpc pci code for pci_disable_device() calls. The generic code already provides a weak pcibios_disable_device() symbol, so we just need to provide our own in powerpc and it'll get picked up. This is passed directly to the phb controller ops, provided one exists. Signed-off-by: Michael Neuling Signed-off-by: Michael Ellerman arch/powerpc/include/asm/pci-bridge.h | 2 ++ arch/powerpc/kernel/pci-common.c | 8 ++++++++ 2 files changed, 10 insertions(+) commit 7a8e6bbf8593a9395dd6c61f7c5f421570600017 Author: Michael Neuling Date: Wed May 27 16:06:59 2015 +1000 powerpc/pci: Add shutdown hook to pci_controller_ops Currently pnv_pci_shutdown() calls the PHB shutdown code for all PHBs in the system. It dereferences the private_data assuming it's a powernv PHB, which won't be the case when we have different PHB in the systems (like when we add vPHBs for CXL). This moves the shutdown hook to the pci_controller_ops and fixes the call site to use that instead. Signed-off-by: Michael Neuling Signed-off-by: Michael Ellerman arch/powerpc/include/asm/pci-bridge.h | 2 ++ arch/powerpc/platforms/powernv/pci-ioda.c | 8 ++++---- arch/powerpc/platforms/powernv/pci.c | 9 +++------ arch/powerpc/platforms/powernv/pci.h | 1 - 4 files changed, 9 insertions(+), 11 deletions(-) commit f46580a5cf07b3d35e357bb2401ae3c49cff7e65 Author: Michael Neuling Date: Wed May 27 16:06:58 2015 +1000 powerpc: Add cxl context to device archdata Add cxl context pointer to archdata. We'll want to create one of these for cxl PCI devices. Put them here until we can get a pci_dev specific private data. This location was suggested by benh. Signed-off-by: Michael Neuling Signed-off-by: Michael Ellerman arch/powerpc/include/asm/device.h | 3 +++ 1 file changed, 3 insertions(+) commit 10e796309a670bb2c13eae5aa6f60e10d2d6a6e1 Author: Michael Neuling Date: Wed May 27 16:06:57 2015 +1000 powerpc/pci: Add release_device() hook to phb ops Add release_device() hook to phb ops so we can clean up for specific phbs. Signed-off-by: Michael Neuling Signed-off-by: Michael Ellerman arch/powerpc/include/asm/pci-bridge.h | 2 ++ arch/powerpc/kernel/pci-hotplug.c | 5 +++++ 2 files changed, 7 insertions(+) commit 5b64d2cc41216bef3e19913d1a39c324c2587d11 Author: Daniel Axtens Date: Wed May 27 16:06:56 2015 +1000 powerpc/pci: Export symbols for CXL Export pcibios_claim_one_bus, pcibios_scan_phb and pcibios_alloc_controller. These will be used by the CXL driver. Signed-off-by: Daniel Axtens Signed-off-by: Michael Ellerman arch/powerpc/kernel/pci-common.c | 3 +++ 1 file changed, 3 insertions(+) commit 85a97da9584868b6cd0c54b93c5f65319f615b08 Author: Michael Neuling Date: Wed May 27 16:06:55 2015 +1000 powerpc/copro: Fix faulting kernel segments This fixes calculating the key bits (KP and KS) in the SLB VSID for kernel mappings. I'm not CCing this to stable as there are no uses of this currently. Signed-off-by: Michael Neuling Signed-off-by: Michael Ellerman arch/powerpc/mm/copro_fault.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 8ac75b96be71e20ec1785ca18170890c4dfffe87 Author: Ian Munsie Date: Fri May 8 22:55:18 2015 +1000 cxl: Use call_rcu to reduce latency when releasing the afu fd The afu fd release path was identified as a significant bottleneck in the overall performance of cxl. While an optimal AFU design would minimise the need to close & reopen the AFU fd, it is not always practical to avoid. The bottleneck seems to be down to the call to synchronize_rcu(), which will block until every other thread is guaranteed to be out of an RCU critical section. Replace it with call_rcu() to free the context structures later so we can return to the application sooner. This reduces the time spent in the fd release path from 13356 usec to 13.3 usec - about a 100x speed up. Reported-by: Fei K Chen Signed-off-by: Ian Munsie Signed-off-by: Michael Ellerman drivers/misc/cxl/context.c | 15 ++++++++++----- drivers/misc/cxl/cxl.h | 2 ++ 2 files changed, 12 insertions(+), 5 deletions(-) commit e36f6fe1f7aa4238478d4b253aac7d3fcfff6ee0 Author: Vaibhav Jain Date: Fri May 22 10:56:05 2015 +0530 cxl: Export AFU error buffer via sysfs Export the "AFU Error Buffer" via sysfs attribute (afu_err_buf). AFU error buffer is used by the AFU to report application specific errors. The contents of this buffer are AFU specific and are intended to be interpreted by the application interacting with the afu. Suggested-by: Michael Neuling Signed-off-by: Vaibhav Jain Signed-off-by: Michael Ellerman Documentation/ABI/testing/sysfs-class-cxl | 11 ++++++ drivers/misc/cxl/cxl.h | 7 ++++ drivers/misc/cxl/pci.c | 60 +++++++++++++++++++++++++++++++ drivers/misc/cxl/sysfs.c | 33 +++++++++++++++++ 4 files changed, 111 insertions(+) commit 27d4dc7116eed98775902627ba61b70e9045e321 Author: Vaibhav Jain Date: Wed Apr 29 15:47:23 2015 +0530 cxl: Implement an ioctl to fetch afu card-id, offset-id and mode Given a file descriptor on an afu device, libcxl currently uses the major/minor number obtained from fstat on the fd to construct path to the afu's sysfs directory. However it is possible that rather than using one of the device in /dev/cxl, a kernel driver creates its own device which export generic cxl interface to the userspace. This causes problems with libcxl as it tries to use a wrong major/minor number to construct the sysfs path and fail. So this patch introduces a new ioctl called CXL_IOCTL_GET_AFU_ID on the afu file descriptor to fetch the cxl_afu_id struct that holds the card/offset-id and mode information. These info is then used by libcxl to construct the correct path to the afu sysfs directory. Testing: - Build against pseries be/le configs - Testing with corresponding libcxl changes to verify that it constructs right sysfs path to the afu. Signed-off-by: Vaibhav Jain Acked-by: Ian Munsie Signed-off-by: Michael Ellerman drivers/misc/cxl/cxl.h | 2 -- drivers/misc/cxl/file.c | 22 ++++++++++++++++++++++ include/uapi/misc/cxl.h | 22 ++++++++++++++++++++++ 3 files changed, 44 insertions(+), 2 deletions(-) commit fb43f69401fef8ed2f72d7ea4a25910a0f2138bc Author: Tom Lendacky Date: Mon Jun 1 11:15:53 2015 -0500 crypto: ccp - Protect against poorly marked end of sg list Scatter gather lists can be created with more available entries than are actually used (e.g. using sg_init_table() to reserve a specific number of sg entries, but in actuality using something less than that based on the data length). The caller sometimes fails to mark the last entry with sg_mark_end(). In these cases, sg_nents() will return the original size of the sg list as opposed to the actual number of sg entries that contain valid data. On arm64, if the sg_nents() value is used in a call to dma_map_sg() in this situation, then it causes a BUG_ON in lib/swiotlb.c because an "empty" sg list entry results in dma_capable() returning false and swiotlb trying to create a bounce buffer of size 0. This occurred in the userspace crypto interface before being fixed by 0f477b655a52 ("crypto: algif - Mark sgl end at the end of data") Protect against this by using the new sg_nents_for_len() function which returns only the number of sg entries required to meet the desired length and supplying that value to dma_map_sg(). Signed-off-by: Tom Lendacky Signed-off-by: Herbert Xu drivers/crypto/ccp/ccp-ops.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit cfaed10d1f27d036b72bbdc6b1e59ea28c38ec7f Author: Tom Lendacky Date: Mon Jun 1 11:15:25 2015 -0500 scatterlist: introduce sg_nents_for_len When performing a dma_map_sg() call, the number of sg entries to map is required. Using sg_nents to retrieve the number of sg entries will return the total number of entries in the sg list up to the entry marked as the end. If there happen to be unused entries in the list, these will still be counted. Some dma_map_sg() implementations will not handle the unused entries correctly (lib/swiotlb.c) and execute a BUG_ON. The sg_nents_for_len() function will traverse the sg list and return the number of entries required to satisfy the supplied length argument. This can then be supplied to the dma_map_sg() call to successfully map the sg. Signed-off-by: Tom Lendacky Signed-off-by: Herbert Xu include/linux/scatterlist.h | 1 + lib/scatterlist.c | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) commit 160544075f2a4028209721723a51f16add7b08b9 Author: Herbert Xu Date: Mon Jun 1 16:22:03 2015 +0800 crypto: scatterwalk - Hide PageSlab call to optimise away flush_dcache_page On architectures where flush_dcache_page is not needed, we will end up generating all the code up to the PageSlab call. This is because PageSlab operates on a volatile pointer and thus cannot be optimised away. This patch works around this by checking whether flush_dcache_page is needed before we call PageSlab which then allows PageSlab to be compiled awy. Signed-off-by: Herbert Xu crypto/scatterwalk.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit b7c89d9e2fef1c9f4c9d8bacf0c1459e30561289 Author: Herbert Xu Date: Mon Jun 1 15:53:06 2015 +0800 crypto: aesni - Convert rfc4106 to new AEAD interface This patch converts the low-level __gcm-aes-aesni algorithm to the new AEAD interface. Signed-off-by: Herbert Xu arch/x86/crypto/aesni-intel_glue.c | 250 ++++++++++++------------------------- 1 file changed, 83 insertions(+), 167 deletions(-) commit 3e648cbeb31be5cb84b9ec19822e2b85417f07c4 Author: Dan Streetman Date: Thu May 28 16:21:31 2015 -0400 crypto: nx - prevent nx 842 load if no hw driver Change the nx-842 common driver to wait for loading of both platform drivers, and fail loading if the platform driver pointer is not set. Add an independent platform driver pointer, that the platform drivers set if they find they are able to load (i.e. if they find their platform devicetree node(s)). The problem is currently, the main nx-842 driver will stay loaded even if there is no platform driver and thus no possible way it can do any compression or decompression. This allows the crypto 842-nx driver to load even if it won't actually work. For crypto compression users (e.g. zswap) that expect an available crypto compression driver to actually work, this is bad. This patch fixes that, so the 842-nx crypto compression driver won't load if it doesn't have the driver and hardware available to perform the compression. Signed-off-by: Dan Streetman Signed-off-by: Herbert Xu drivers/crypto/nx/Makefile | 3 +- drivers/crypto/nx/nx-842-platform.c | 84 +++++++++++++++++++++++ drivers/crypto/nx/nx-842-powernv.c | 17 +++-- drivers/crypto/nx/nx-842-pseries.c | 33 ++++++--- drivers/crypto/nx/nx-842.c | 130 ++++++------------------------------ drivers/crypto/nx/nx-842.h | 16 ++--- 6 files changed, 148 insertions(+), 135 deletions(-) commit f614e546f5060813ddf69a090cdf200a9ac28cd3 Author: Herbert Xu Date: Thu May 28 22:08:04 2015 +0800 crypto: cryptd - Convert to new AEAD interface This patch converts cryptd to the new AEAD interface. Signed-off-by: Herbert Xu crypto/cryptd.c | 64 ++++++++++++++++++++++++++------------------------------- 1 file changed, 29 insertions(+), 35 deletions(-) commit af05b3009b6b106db60077db3aeef16ccd214000 Author: Herbert Xu Date: Thu May 28 22:08:03 2015 +0800 crypto: aesni - Convert top-level rfc4106 algorithm to new interface This patch converts rfc4106-gcm-aesni to the new AEAD interface. The low-level interface remains as is for now because we can't touch it until cryptd itself is upgraded. In the conversion I've also removed the duplicate copy of the context in the top-level algorithm. Now all processing is carried out in the low-level __driver-gcm-aes-aesni algorithm. Signed-off-by: Herbert Xu arch/x86/crypto/aesni-intel_glue.c | 172 ++++++++++++++++++------------------- 1 file changed, 83 insertions(+), 89 deletions(-) commit 92b9876bdddb704d44ae29ef5da254b0a403d4af Author: Herbert Xu Date: Thu May 28 22:08:01 2015 +0800 crypto: cryptd - Add setkey/setauthsize functions for AEAD This patch adds setkey and setauthsize for cryptd AEAD. Signed-off-by: Herbert Xu crypto/cryptd.c | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) commit 0496f56065e00f6c3bfcefc4f9b5419847e4a8b5 Author: Herbert Xu Date: Thu May 28 22:08:00 2015 +0800 crypto: pcrypt - Add support for new AEAD interface This patch converts pcrypt over to the new AEAD interface. Signed-off-by: Herbert Xu crypto/pcrypt.c | 135 +++++++++++++++++--------------------------------------- 1 file changed, 40 insertions(+), 95 deletions(-) commit caab94612ac677523d2bf4a4904c8d080c2c7f73 Author: Herbert Xu Date: Thu May 28 22:07:59 2015 +0800 crypto: aead - Add multiple algorithm registration interface This patch adds the helpers that allow the registration and removal of multiple algorithms. Signed-off-by: Herbert Xu crypto/aead.c | 29 +++++++++++++++++++++++++++++ include/crypto/internal/aead.h | 2 ++ 2 files changed, 31 insertions(+) commit 43615369ab79f2c06532ea1607266b8307ccce82 Author: Herbert Xu Date: Thu May 28 22:07:57 2015 +0800 crypto: aead - Ignore return value from crypto_unregister_alg No new code should be using the return value of crypto_unregister_alg as it will become void soon. Signed-off-by: Herbert Xu crypto/aead.c | 4 ++-- include/crypto/internal/aead.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit c2110f28341cec2ecfd9474db15ac090bce1234c Author: Herbert Xu Date: Thu May 28 22:07:56 2015 +0800 crypto: api - Include alignment in crypto_alg_extsize This patch ensures that the tfm context always has enough extra memory to ensure that it is aligned according to cra_alignment. Signed-off-by: Herbert Xu crypto/algapi.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 5c98d62059faf7c59211cb591da671eaac7b7c3c Author: Herbert Xu Date: Thu May 28 22:07:55 2015 +0800 crypto: aead - Add aead_alg_instance Now that type-safe init/exit functions exist, they often need to access the underlying aead_instance. So this patch adds the helper aead_alg_instance to access aead_instance from a crypto_aead object. Signed-off-by: Herbert Xu include/crypto/internal/aead.h | 5 +++++ 1 file changed, 5 insertions(+) commit 5eb8ec6dc857d5027bc8cf7268a199107a583ae5 Author: Herbert Xu Date: Thu May 28 22:07:53 2015 +0800 crypto: aead - Add type-safe init/exit functions As it stands the only non-type safe functions left in the new AEAD interface are the cra_init/cra_exit functions. It means exposing the ugly __crypto_aead_cast to every AEAD implementor. This patch adds type-safe init/exit functions to AEAD. Existing algorithms are unaffected while new implementations can simply fill in these two instead of cra_init/cra_exit. Signed-off-by: Herbert Xu crypto/aead.c | 14 ++++++++++++++ include/crypto/aead.h | 13 +++++++++++++ 2 files changed, 27 insertions(+) commit addfda2fc2ed2fcd7896ef689aa75a7d35a7579b Author: Stephan Mueller Date: Thu May 28 08:52:42 2015 +0200 crypto: doc - cover new AEAD interface The patch updates the DocBook to cover the new AEAD interface implementation. Signed-off-by: Stephan Mueller Signed-off-by: Herbert Xu Documentation/DocBook/crypto-API.tmpl | 23 +++++++++++++++++------ include/crypto/aead.h | 5 ++++- 2 files changed, 21 insertions(+), 7 deletions(-) commit b64a2d95527092ed6d83fd6754ad2e94423d33b8 Author: Herbert Xu Date: Thu May 28 11:30:35 2015 +0800 Revert "crypto: algif_aead - Disable AEAD user-space for now" This reverts commit f858c7bcca8c20761a20593439fe998b4b67e86b as the algif_aead interface has been switched over to the new AEAD interface. Signed-off-by: Herbert Xu crypto/Kconfig | 9 +++++++++ 1 file changed, 9 insertions(+) commit 31ea9d5dfd27b9aa6f92c207041eba8e81f4c497 Author: Xie Xiaobo Date: Fri May 22 13:07:19 2015 +0800 powerpc/85xx: p1025twr: add module conditional to fix QE-uart issue A ioport setting was needed when used the QE uart function on TWR-P1025. Added a conditional definition to avoid missing this setting when the QE-uart driver was bulit to a module. Signed-off-by: Xie Xiaobo Signed-off-by: Li Pengbo Signed-off-by: Scott Wood arch/powerpc/platforms/85xx/twr_p102x.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 379caf606396a13c8da2742e9a6e0bcfaaffa726 Author: Kevin Hao Date: Sun May 17 16:12:37 2015 +0800 powerpc: mpc85xx: flush the l1 cache before cpu down in kexec We observe a "Zero PT_NOTE entries found" warning when vmcore_init() is running on the dump-capture kernel. Actually the PT_NOTE segments is not empty, but the entries generated by crash_save_cpu() are not flushed to the memory before we reset these cores. So we should flush the l1 cache as what we do in cpu hotplug. With this change, we can also kill the mpc85xx_smp_flush_dcache_kexec() since that becomes unnecessary. Please note: this only fix the issue on e500 core, we still need to implement the function to flush the l2 cache for the e500mc core. Fortunately we already had proposing patch for this support [1]. Hope we can fix this issue for e500mc after that merged. [1] https://lists.ozlabs.org/pipermail/linuxppc-dev/2014-March/115830.html Signed-off-by: Kevin Hao Signed-off-by: Scott Wood arch/powerpc/platforms/85xx/smp.c | 51 +-------------------------------------- 1 file changed, 1 insertion(+), 50 deletions(-) commit 5b2753fc3e8a72253310d01a8b0a5bb05d917ef8 Author: LEROY Christophe Date: Wed Apr 22 12:06:45 2015 +0200 powerpc/8xx: Implementation of PAGE_EXEC This patch implements PAGE_EXEC capability on the 8xx. All pages PP exec bits are set to 000, which means Execute for Supervisor and no Execute for User. Then we use the APG to say whether accesses are according to Page rules, "all Supervisor" rules (Exec for all) and "all User" rules (Exec for noone) Therefore, we define 4 APG groups. msb is _PAGE_EXEC, lsb is _PAGE_USER. MI_AP is initialised as follows: GP0 (00) => Not User, no exec => 11 (all accesses performed as user) GP1 (01) => User but no exec => 11 (all accesses performed as user) GP2 (10) => Not User, exec => 01 (rights according to page definition) GP3 (11) => User, exec => 00 (all accesses performed as supervisor) Signed-off-by: Christophe Leroy [scottwood: comments: s/exec/data/ on data side, and s/pages/pages'/] Signed-off-by: Scott Wood arch/powerpc/include/asm/cputable.h | 2 +- arch/powerpc/include/asm/mmu-8xx.h | 26 ++++++++++++++++++++++++++ arch/powerpc/include/asm/pte-8xx.h | 3 ++- arch/powerpc/kernel/head_8xx.S | 12 +++++++++--- 4 files changed, 38 insertions(+), 5 deletions(-) commit e0a8e0d90a9f0be66ba49f4f2380a63c22d4aaae Author: LEROY Christophe Date: Wed Apr 22 12:06:43 2015 +0200 powerpc/8xx: Handle PAGE_USER via APG bits Use of APG for handling PAGE_USER. All pages PP exec bits are set to either 000 or 011, which means respectively RW for Supervisor and no access for User, or RO for Supervisor and no access for user. Then we use the APG to say whether accesses are according to Page rules or "all Supervisor" rules (Access to all) Therefore, we define 2 APG groups corresponding to _PAGE_USER. Mx_AP are initialised as follows: GP0 => No user => 01 (all accesses performed according to page definition) GP1 => User => 00 (all accesses performed as supervisor according to page definition) This removes the special 8xx handling in pte_update() Signed-off-by: Christophe Leroy Signed-off-by: Scott Wood arch/powerpc/include/asm/pgtable-ppc32.h | 19 ------------------- arch/powerpc/include/asm/pte-8xx.h | 27 +++++++++------------------ arch/powerpc/kernel/head_8xx.S | 21 ++++++++++++--------- 3 files changed, 21 insertions(+), 46 deletions(-) commit 83b086c5697169f1e34d2430dad062cc714c5c57 Author: LEROY Christophe Date: Wed Apr 22 12:06:41 2015 +0200 powerpc/8xx: mark _PAGE_SHARED all types of kernel pages All kernel pages have to be marked as shared in order to not perform CASID verification. Signed-off-by: Christophe Leroy Signed-off-by: Scott Wood arch/powerpc/include/asm/pte-8xx.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit eeba1f7c38425cfc0b70ba133ab7e523d5b6d90e Author: LEROY Christophe Date: Mon Apr 20 07:54:46 2015 +0200 powerpc/8xx: Add support for TASK_SIZE greater than 0x80000000 By default, TASK_SIZE is set to 0x80000000 for PPC_8xx, which is most likely sufficient for most cases. However, kernel configuration allows to set TASK_SIZE to another value, so the 8xx shall handle it. This patch also takes into account the case of PAGE_OFFSET lower than 0x80000000, allthought most of the time it is equal to 0xC0000000 Signed-off-by: Christophe Leroy Signed-off-by: Scott Wood arch/powerpc/kernel/head_8xx.S | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) commit b821c5fe84829996e179bba5da30ee33fb8e9f9f Author: LEROY Christophe Date: Mon Apr 20 07:54:44 2015 +0200 powerpc/8xx: Use SPRG2 instead of DAR for saving r3 We now have SPRG2 available as in it not used anymore for saving CR, so we don't need to crash DAR anymore for saving r3 for CPU6 ERRATA handling. Signed-off-by: Christophe Leroy Signed-off-by: Scott Wood arch/powerpc/kernel/head_8xx.S | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit 2eb2fd95001e93c611034f494c7254350ff94d2a Author: LEROY Christophe Date: Mon Apr 20 07:54:42 2015 +0200 powerpc/8xx: dont save CR in SCRATCH registers CR only needs to be preserved when checking if we are handling a kernel address. So we can preserve CR in a register: - In ITLBMiss, check is done only when CONFIG_MODULES is defined. Otherwise we don't need to do anything at all with CR. - We use r10, then we reload SRR0/MD_EPN into r10 when CR is restored Signed-off-by: Christophe Leroy Signed-off-by: Scott Wood arch/powerpc/kernel/head_8xx.S | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) commit d5fd9d7d669e81e024737a198d12ff8af4fd89cf Author: LEROY Christophe Date: Mon Apr 20 07:54:40 2015 +0200 powerpc/8xx: Handle CR out of exception PROLOG/EPILOG In order to be able to reduce scope during which CR is saved, we take CR saving/restoring out of exception PROLOG and EPILOG Signed-off-by: Christophe Leroy Signed-off-by: Scott Wood arch/powerpc/kernel/head_8xx.S | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit 90883a8255148e98026591e52a3495db18b29905 Author: LEROY Christophe Date: Mon Apr 20 07:54:38 2015 +0200 powerpc/8xx: macro for handling CPU15 errata Having a macro will help keep clear code. Signed-off-by: Christophe Leroy Signed-off-by: Scott Wood arch/powerpc/kernel/head_8xx.S | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) commit 7f6972a0d018daacef3b31090057771bc657f18a Author: Kumar Gala Date: Fri Apr 17 17:53:07 2015 -0500 powerpc/mpc85xx: Add FSL QorIQ DPAA QMan support to device tree(s) Signed-off-by: Kumar Gala Signed-off-by: Geoff Thorpe Signed-off-by: Hai-Ying Wang Signed-off-by: Chunhe Lan Signed-off-by: Poonam Aggrwal [Emil Medve: Sync with the upstream binding] Signed-off-by: Emil Medve [Scott Wood: s/fsl,qman-channel-id/cell-index] Signed-off-by: Scott Wood Cc: Madalin-Cristian Bucur arch/powerpc/boot/dts/b4qds.dtsi | 12 + arch/powerpc/boot/dts/fsl/b4860si-post.dtsi | 69 +++++ arch/powerpc/boot/dts/fsl/b4si-post.dtsi | 106 +++++++ arch/powerpc/boot/dts/fsl/p1023si-post.dtsi | 43 +++ arch/powerpc/boot/dts/fsl/p2041si-post.dtsi | 13 + arch/powerpc/boot/dts/fsl/p3041si-post.dtsi | 13 + arch/powerpc/boot/dts/fsl/p4080si-post.dtsi | 13 + arch/powerpc/boot/dts/fsl/p5020si-post.dtsi | 13 + arch/powerpc/boot/dts/fsl/p5040si-post.dtsi | 13 + arch/powerpc/boot/dts/fsl/qoriq-qman1-portals.dtsi | 20 +- arch/powerpc/boot/dts/fsl/t1040si-post.dtsi | 78 +++++ arch/powerpc/boot/dts/fsl/t2081si-post.dtsi | 126 ++++++++ arch/powerpc/boot/dts/fsl/t4240si-post.dtsi | 318 +++++++++++++++++++++ arch/powerpc/boot/dts/kmcoge4.dts | 12 + arch/powerpc/boot/dts/oca4080.dts | 12 + arch/powerpc/boot/dts/p1023rdb.dts | 12 + arch/powerpc/boot/dts/p2041rdb.dts | 12 + arch/powerpc/boot/dts/p3041ds.dts | 12 + arch/powerpc/boot/dts/p4080ds.dts | 12 + arch/powerpc/boot/dts/p5020ds.dts | 12 + arch/powerpc/boot/dts/p5040ds.dts | 12 + arch/powerpc/boot/dts/t104xqds.dtsi | 12 + arch/powerpc/boot/dts/t104xrdb.dtsi | 12 + arch/powerpc/boot/dts/t208xqds.dtsi | 12 + arch/powerpc/boot/dts/t208xrdb.dtsi | 12 + arch/powerpc/boot/dts/t4240qds.dts | 12 + arch/powerpc/boot/dts/t4240rdb.dts | 12 + 27 files changed, 995 insertions(+), 10 deletions(-) commit e9326dea3fe76f38493d1b74999c45707fdc906d Author: Scott Wood Date: Fri Apr 17 17:53:06 2015 -0500 powerpc/qman: Change fsl,qman-channel-id to cell-index It turns out that existing U-Boots will dereference NULL pointers if the device tree does not have cell-index in the portal nodes. No patch has yet been merged adding device tree nodes for this binding (except a dtsi that has not yet been referenced), nor has any driver yet been merged making use of the binding, so it's not too late to change the binding in order to keep compatibility with existing U-Boots. Signed-off-by: Scott Wood Cc: Madalin-Cristian Bucur Documentation/devicetree/bindings/soc/fsl/qman-portals.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6c0cc62715bfd0b26f7d1a79e6e8143085950ca7 Author: Scott Wood Date: Fri Apr 17 16:17:14 2015 -0500 powerpc/mm: Use PFN_PHYS() in devmem_is_allowed() This function can run on systems where physical addresses don't fit in unsigned long, so make sure to use the macro that contains the proper cast. Signed-off-by: Scott Wood arch/powerpc/mm/mem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 86c3b16e9f330c94062c40302ab266f0d932057e Author: LEROY Christophe Date: Fri Apr 17 18:37:17 2015 +0200 powerpc/8xx: mmu_virtual_psize incorrect for 16k pages mmu_virtual_psize shall be set to MMU_PAGE_16K when 16k pages have been selected Signed-off-by: Christophe Leroy Signed-off-by: Scott Wood arch/powerpc/include/asm/mmu-8xx.h | 7 +++++++ 1 file changed, 7 insertions(+) commit 9b6179dc1e1a481026ce7b9222275727ec76aef4 Author: Igal Liberman Date: Thu Apr 16 14:53:36 2015 +0300 powerpc/dts: Fix incorrect clock-names property Signed-off-by: Igal Liberman Signed-off-by: Scott Wood arch/powerpc/boot/dts/fsl/t2081si-post.dtsi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 791b0bfae8408a5b7b9db621ce81bc7b3568981a Author: Igal Liberman Date: Thu Apr 16 14:41:11 2015 +0300 dt/bindings: fsl/guts: Added global-utilities compatibles v3 - Addressed Scott's feedback: Added "fsl,-guts" v2 - Addressed Scott's feedback Signed-off-by: Igal Liberman Signed-off-by: Scott Wood Documentation/devicetree/bindings/powerpc/fsl/guts.txt | 5 +++++ 1 file changed, 5 insertions(+) commit 65bf2a057021b009ff9924b59203993bdff82ecc Author: Shengzhou Liu Date: Thu Apr 9 16:07:45 2015 +0800 powerpc/fsl-booke: Add T1023 RDB board support T1023RDB is a Freescale Reference Design Board that hosts T1023 SoC. T1023RDB board Overview ----------------------- - T1023 SoC integrating two 64-bit e5500 cores up to 1.4GHz - CoreNet fabric supporting coherent and noncoherent transactions with prioritization and bandwidth allocation - Memory: 2GB Micron MT40A512M8HX unbuffered 32-bit fixed DDR4 without ECC - Accelerator: DPAA components consist of FMan, BMan, QMan, DCE and SEC - Ethernet interfaces: - one 1G RGMII port on-board(RTL8211F PHY) - one 1G SGMII port on-board(RTL8211F PHY) - one 2.5G SGMII port on-board(AQR105 PHY) - PCIe: Two Mini-PCIe connectors on-board. - SerDes: 4 lanes up to 10.3125GHz - NOR: 128MB S29GL01GS110TFIV10 Spansion NOR Flash - NAND: 512MB S34MS04G200BFI000 Spansion NAND Flash - eSPI: 64MB S25FL512SAGMFI010 Spansion SPI flash - USB: one Type-A USB 2.0 port with internal PHY - eSDHC: support SD/MMC card and eMMC flash on-board - 256Kbit M24256 I2C EEPROM - RTC: Real-time clock DS1339 on I2C bus - UART: one serial port on-board with RJ45 connector - Debugging: JTAG/COP for T1023 debugging Signed-off-by: Shengzhou Liu Signed-off-by: Scott Wood arch/powerpc/boot/dts/t1023rdb.dts | 151 ++++++++++++++++++++++++++ arch/powerpc/platforms/85xx/corenet_generic.c | 1 + 2 files changed, 152 insertions(+) commit 5afe13fd48c72be61342edbc6ede6e60f6153227 Author: Shengzhou Liu Date: Thu Apr 9 16:07:44 2015 +0800 powerpc/fsl-booke: Add T1024 RDB board support T1024RDB is a Freescale Reference Design Board that hosts the T1024 SoC. Signed-off-by: Shengzhou Liu [scottwood: vendor prefix: s/at24/atmel/ and trimmed detailed board description with too-long lines] Signed-off-by: Scott Wood arch/powerpc/boot/dts/t1024rdb.dts | 185 ++++++++++++++++++++++++++ arch/powerpc/platforms/85xx/Kconfig | 2 +- arch/powerpc/platforms/85xx/corenet_generic.c | 1 + 3 files changed, 187 insertions(+), 1 deletion(-) commit 2b6029e2e026771fb4e2add9b38e91f34725813c Author: Shengzhou Liu Date: Thu Apr 9 16:07:43 2015 +0800 powerpc/fsl-booke: Add T1024 QDS board support Add support for Freescale T1024/T1023 QorIQ Development System Board. T1024QDS is a high-performance computing evaluation, development and test platform for T1024 QorIQ Power Architecture processor. Signed-off-by: Shengzhou Liu [scottwood: vendor prefix: s/at24/atmel/ and trimmed detailed board description with too-long lines] Signed-off-by: Scott Wood arch/powerpc/boot/dts/fsl/t1023si-post.dtsi | 36 ++-- arch/powerpc/boot/dts/t1024qds.dts | 251 ++++++++++++++++++++++++++ arch/powerpc/platforms/85xx/Kconfig | 2 +- arch/powerpc/platforms/85xx/corenet_generic.c | 1 + 4 files changed, 271 insertions(+), 19 deletions(-) commit ec66a97d153306cd35250da419f7f8ead0bc142f Author: Shengzhou Liu Date: Wed Apr 15 11:48:08 2015 +0800 powerpc/fsl-booke: Add device tree support for T1024/T1023 SoC The T1024 SoC includes the following function and features: - Two 64-bit Power architecture e5500 cores, up to 1.4GHz - private 256KB L2 cache each core and shared 256KB CoreNet platform cache (CPC) - 32-/64-bit DDR3L/DDR4 SDRAM memory controller with ECC and interleaving support - Data Path Acceleration Architecture (DPAA) incorporating acceleration - Four MAC for 1G/2.5G/10G network interfaces (RGMII, SGMII, QSGMII, XFI) - High-speed peripheral interfaces - Three PCI Express 2.0 controllers - Additional peripheral interfaces - One SATA 2.0 controller - Two USB 2.0 controllers with integrated PHY - Enhanced secure digital host controller (SD/eSDHC/eMMC) - Enhanced serial peripheral interface (eSPI) - Four I2C controllers - Four 2-pin UARTs or two 4-pin UARTs - Integrated Flash Controller supporting NAND and NOR flash - Two 8-channel DMA engines - Multicore programmable interrupt controller (PIC) - LCD interface (DIU) with 12 bit dual data rate - QUICC Engine block supporting TDM, HDLC, and UART - Deep Sleep power implementaion (wakeup from GPIO/Timer/Ethernet/USB) - Support for hardware virtualization and partitioning enforcement - QorIQ Platform's Trust Architecture 2.0 Signed-off-by: Shengzhou Liu [scottwood@freescale.com: whitespace fixes] Signed-off-by: Scott Wood arch/powerpc/boot/dts/fsl/t1023si-post.dtsi | 330 ++++++++++++++++++++++++++++ arch/powerpc/boot/dts/fsl/t1024si-post.dtsi | 100 +++++++++ arch/powerpc/boot/dts/fsl/t102xsi-pre.dtsi | 87 ++++++++ 3 files changed, 517 insertions(+) commit 86d63363defc0b2f22288b287f75837d48b561fc Author: Scott Wood Date: Mon Apr 6 22:00:38 2015 -0500 powerpc/e500mc: Remove dead L2 flushing code in idle_e500.S This code can never be executed as it is only built when CONFIG_PPC_E500MC is unset, but the only CPUs that have CPU_FTR_L2CSR require CONFIG_PPC_E500MC and do not have the MSR/HID0-based nap mechanism that this file uses. Signed-off-by: Scott Wood arch/powerpc/kernel/idle_e500.S | 9 --------- 1 file changed, 9 deletions(-) commit c89ca8ab7457d891abdffca7e6f5e74cef670d6d Author: Scott Wood Date: Thu Apr 2 22:14:11 2015 -0500 powerpc/e6500: Optimize hugepage TLB misses Some workloads take a lot of TLB misses despite using traditional hugepages. Handle these TLB misses in the asm fastpath rather than going through a bunch of C code. With this patch I measured around a 5x speedup in handling hugepage TLB misses. Signed-off-by: Scott Wood arch/powerpc/mm/tlb_low_64e.S | 51 ++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 48 insertions(+), 3 deletions(-) commit fb326e9841b2000a8d1b115ccd7f5b3b61a4d123 Author: Igal Liberman Date: Mon Jan 12 08:03:57 2015 +0200 powerpc/dts: Unify B4 mux nodes Signed-off-by: Igal Liberman Change-Id: Ic5f28f7b492b708f00a5ff74dda723ce5e1da0ba Signed-off-by: Scott Wood arch/powerpc/boot/dts/fsl/b4420si-post.dtsi | 15 ++------------- arch/powerpc/boot/dts/fsl/b4860si-post.dtsi | 15 ++------------- arch/powerpc/boot/dts/fsl/b4si-post.dtsi | 12 ++++++++++++ 3 files changed, 16 insertions(+), 26 deletions(-) commit 2037a0933bc2894a2f50ae57a1ccf6be192adb76 Author: Sasha Levin Date: Tue May 12 19:31:37 2015 -0400 btrfs: use after free when closing devices __btrfs_close_devices() would call_rcu to free the device, which is racy with list_for_each_entry() accessing the memory to retrieve the next device on the list. Signed-off-by: Sasha Levin Reviewed-by: David Sterba Signed-off-by: Chris Mason fs/btrfs/volumes.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 01b810b889d557257580970e1a7ba9c85b54766b Author: David Sterba Date: Tue May 12 19:14:49 2015 +0200 btrfs: make root id query unprivileged The INO_LOOKUP ioctl can lookup path for a given inode number and is thus restricted. As a sideefect it can find the root id of the containing subvolume and we're using this int the 'btrfs inspect rootid' command. The restriction is unnecessary in case we set the ioctl args args::treeid = 0 args::objectid = 256 (BTRFS_FIRST_FREE_OBJECTID) Then the path will be empty and the treeid is filled with the root id of the inode on which the ioctl is called. This behaviour is unchanged, after the root restriction is removed. Signed-off-by: David Sterba Signed-off-by: Chris Mason fs/btrfs/ioctl.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) commit 2e6e518335f81d651021a8873da1c938ca0bf1fc Author: Filipe Manana Date: Tue May 12 00:28:11 2015 +0100 Btrfs: fix block group ->space_info null pointer dereference When we create a block group we add it to the rbtree of block groups before setting its ->space_info field (while it's NULL). This is problematic since other tasks can access the block group from the rbtree and attempt to use its ->space_info before it is set by btrfs_make_block_group(). This can happen for example when a concurrent fitrim ioctl operation is ongoing, which produces a trace like the following when CONFIG_DEBUG_PAGEALLOC is set. [11509.604369] BUG: unable to handle kernel NULL pointer dereference at 0000000000000018 [11509.606373] IP: [] __lock_acquire+0xb4/0xf02 [11509.608179] PGD 2296a8067 PUD 22f4a2067 PMD 0 [11509.608179] Oops: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC [11509.608179] Modules linked in: btrfs crc32c_generic xor raid6_pq nfsd auth_rpcgss oid_registry nfs_acl nfs lockd grace fscache sunrpc loop fuse acpi_cpufreq processor i2c_piix4 psmou [11509.608179] CPU: 10 PID: 8538 Comm: fstrim Tainted: G W 4.0.0-rc5-btrfs-next-9+ #2 [11509.608179] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.7.5-0-ge51488c-20140602_164612-nilsson.home.kraxel.org 04/01/2014 [11509.608179] task: ffff88009f5c46d0 ti: ffff8801b3edc000 task.ti: ffff8801b3edc000 [11509.608179] RIP: 0010:[] [] __lock_acquire+0xb4/0xf02 [11509.608179] RSP: 0018:ffff8801b3edf9e8 EFLAGS: 00010002 [11509.608179] RAX: 0000000000000046 RBX: 0000000000000000 RCX: 0000000000000000 [11509.608179] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000018 [11509.608179] RBP: ffff8801b3edfaa8 R08: 0000000000000001 R09: 0000000000000000 [11509.608179] R10: 0000000000000000 R11: ffff88009f5c4f98 R12: 0000000000000000 [11509.608179] R13: 0000000000000000 R14: 0000000000000018 R15: ffff88009f5c46d0 [11509.608179] FS: 00007f280a10e840(0000) GS:ffff88023ed40000(0000) knlGS:0000000000000000 [11509.608179] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b [11509.608179] CR2: 0000000000000018 CR3: 00000002119bc000 CR4: 00000000000006e0 [11509.608179] Stack: [11509.608179] 0000000000000000 0000000000000000 0000000000000004 0000000000000000 [11509.608179] ffff880100000000 ffffffff00000000 0000000000000001 ffffffff00000000 [11509.608179] 0000000000000001 0000000000000000 ffff880100000000 00000000000006c4 [11509.608179] Call Trace: [11509.608179] [] ? __lock_acquire+0x696/0xf02 [11509.608179] [] lock_acquire+0xa5/0x116 [11509.608179] [] ? do_trimming+0x51/0x145 [btrfs] [11509.608179] [] _raw_spin_lock+0x34/0x44 [11509.608179] [] ? do_trimming+0x51/0x145 [btrfs] [11509.608179] [] do_trimming+0x51/0x145 [btrfs] [11509.608179] [] btrfs_trim_block_group+0x201/0x491 [btrfs] [11509.608179] [] btrfs_trim_fs+0xe0/0x129 [btrfs] [11509.608179] [] btrfs_ioctl_fitrim+0x138/0x167 [btrfs] [11509.608179] [] btrfs_ioctl+0x50d/0x21e8 [btrfs] [11509.608179] [] ? might_fault+0x58/0xb5 [11509.608179] [] ? might_fault+0x58/0xb5 [11509.608179] [] ? might_fault+0x58/0xb5 [11509.608179] [] ? cp_new_stat+0x147/0x15e [11509.608179] [] do_vfs_ioctl+0x3c6/0x479 [11509.608179] [] ? SYSC_newfstat+0x25/0x2e [11509.608179] [] ? ret_from_sys_call+0x1d/0x58 [11509.608179] [] ? __fget_light+0x2d/0x4f [11509.608179] [] SyS_ioctl+0x5a/0x7f [11509.608179] [] system_call_fastpath+0x12/0x17 [11509.608179] Code: f4 01 00 0f 85 c0 00 00 00 48 c7 c1 f3 1f 7d 81 48 c7 c2 aa cb 7c 81 be fc 0b 00 00 eb 70 83 3d 61 eb 9c 00 00 0f 84 a5 00 00 00 <49> 81 3e 40 a3 2b 82 b8 00 00 00 [11509.608179] RIP [] __lock_acquire+0xb4/0xf02 [11509.608179] RSP [11509.608179] CR2: 0000000000000018 [11509.608179] ---[ end trace 570a5c6769f0e49a ]--- Which corresponds to the following access in fs/btrfs/free-space-cache.c: static int do_trimming(struct btrfs_block_group_cache *block_group, u64 *total_trimmed, u64 start, u64 bytes, u64 reserved_start, u64 reserved_bytes, struct btrfs_trim_range *trim_entry) { struct btrfs_space_info *space_info = block_group->space_info; (...) spin_lock(&space_info->lock); ^^^^^ - block_group->space_info is NULL... Fix this by ensuring the block group's ->space_info is set before adding the block group to the rbtree. Signed-off-by: Filipe Manana Signed-off-by: Chris Mason fs/btrfs/extent-tree.c | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) commit 33b97e43279a60729eee502809cf5269b3a64cf3 Author: Anand Jain Date: Fri May 8 04:34:35 2015 +0800 Btrfs: check error before reporting missing device and add uuid Report missing device when add is successful, otherwise it would exit as ENOMEM. And add uuid to the report. Signed-off-by: Anand Jain Reviewed-by: David Sterba Signed-off-by: Chris Mason fs/btrfs/volumes.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 1f6e4b3f9f7c859fed7ac4c0853e976a1a752873 Author: Qu Wenruo Date: Tue May 5 10:53:15 2015 +0800 btrfs: Fix superblock csum type check. Old csum type check is wrong and can't catch csum_type 1(not supported). Fix it to avoid hostile 0 division. Reported-by: Lukas Lueg Signed-off-by: Qu Wenruo Reviewed-by: David Sterba Signed-off-by: Chris Mason fs/btrfs/ctree.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 619d8c4ef7c5dd346add55da82c9179cd2e3387e Author: Filipe Manana Date: Sun May 3 01:56:00 2015 +0100 Btrfs: incremental send, fix clone operations for compressed extents Marc reported a problem where the receiving end of an incremental send was performing clone operations that failed with -EINVAL. This happened because, unlike for uncompressed extents, we were not checking if the source clone offset and length, after summing the data offset, falls within the source file's boundaries. So make sure we do such checks when attempting to issue clone operations for compressed extents. Problem reproducible with the following steps: $ mkfs.btrfs -f /dev/sdb $ mount -o compress /dev/sdb /mnt $ mkfs.btrfs -f /dev/sdc $ mount -o compress /dev/sdc /mnt2 # Create the file with a single extent of 128K. This creates a metadata file # extent item with a data start offset of 0 and a logical length of 128K. $ xfs_io -f -c "pwrite -S 0xaa 64K 128K" -c "fsync" /mnt/foo # Now rewrite the range 64K to 112K of our file. This will make the inode's # metadata continue to point to the 128K extent we created before, but now # with an extent item that points to the extent with a data start offset of # 112K and a logical length of 16K. # That metadata file extent item is associated with the logical file offset # at 176K and covers the logical file range 176K to 192K. $ xfs_io -c "pwrite -S 0xbb 64K 112K" -c "fsync" /mnt/foo # Now rewrite the range 180K to 12K. This will make the inode's metadata # continue to point the the 128K extent we created earlier, with a single # extent item that points to it with a start offset of 112K and a logical # length of 4K. # That metadata file extent item is associated with the logical file offset # at 176K and covers the logical file range 176K to 180K. $ xfs_io -c "pwrite -S 0xcc 180K 12K" -c "fsync" /mnt/foo $ btrfs subvolume snapshot -r /mnt /mnt/snap1 $ touch /mnt/bar # Calls the btrfs clone ioctl. $ ~/xfstests/src/cloner -s $((176 * 1024)) -d $((176 * 1024)) \ -l $((4 * 1024)) /mnt/foo /mnt/bar $ btrfs subvolume snapshot -r /mnt /mnt/snap2 $ btrfs send /mnt/snap1 | btrfs receive /mnt2 At subvol /mnt/snap1 At subvol snap1 $ btrfs send -p /mnt/snap1 /mnt/snap2 | btrfs receive /mnt2 At subvol /mnt/snap2 At snapshot snap2 ERROR: failed to clone extents to bar Invalid argument A test case for fstests follows soon. Reported-by: Marc MERLIN Tested-by: Marc MERLIN Signed-off-by: Filipe Manana Tested-by: David Sterba Tested-by: Jan Alexander Steffens (heftig) Signed-off-by: Chris Mason fs/btrfs/send.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) commit ab3680dd18f3dea341e32e5020ef16d54a4fb66f Author: Christian Engelmayer Date: Sat May 2 17:19:55 2015 +0200 btrfs: qgroup: Fix possible leak in btrfs_add_qgroup_relation() Commit 9c8b35b1ba21 ("btrfs: quota: Automatically update related qgroups or mark INCONSISTENT flags when assigning/deleting a qgroup relations.") introduced the allocation of a temporary ulist in function btrfs_add_qgroup_relation() and added the corresponding cleanup to the out path. However, the allocation was introduced before the src/dst level check that directly returns. Fix the possible leakage of the ulist by moving the allocation after the input validation. Detected by Coverity CID 1295988. Signed-off-by: Christian Engelmayer Reviewed-by: David Sterba Signed-off-by: Chris Mason fs/btrfs/qgroup.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 35c766425adc8e6cd1bdc8554fa540364f218fb7 Author: Filipe Manana Date: Thu Apr 30 17:47:05 2015 +0100 Btrfs: fix mutex unlock without prior lock on space cache truncation If the call to btrfs_truncate_inode_items() failed and we don't have a block group, we were unlocking the cache_write_mutex without having locked it (we do it only if we have a block group). Fixes: 1bbc621ef284 ("Btrfs: allow block group cache writeout outside critical section in commit") Signed-off-by: Filipe Manana Reviewed-by: David Sterba Signed-off-by: Chris Mason fs/btrfs/free-space-cache.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) commit 816fcebe8f41051b29970e5baed4d4afe462d8a8 Author: Anand Jain Date: Mon Apr 27 12:46:18 2015 +0800 Btrfs: log when missing device is created Signed-off-by: Anand Jain Reviewed-by: David Sterba Signed-off-by: Chris Mason fs/btrfs/volumes.c | 2 ++ 1 file changed, 2 insertions(+) commit 6d13f5497f9c44597ba566f741f7ce66ed099456 Author: David Sterba Date: Fri Apr 24 19:12:01 2015 +0200 btrfs: fix warnings after changes in btrfs_abort_transaction fs/btrfs/volumes.c: In function ‘btrfs_create_uuid_tree’: fs/btrfs/volumes.c:3909:3: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘long int’ [-Wformat=] btrfs_abort_transaction(trans, tree_root, ^ CC [M] fs/btrfs/ioctl.o fs/btrfs/ioctl.c: In function ‘create_subvol’: fs/btrfs/ioctl.c:549:3: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘long int’ [-Wformat=] btrfs_abort_transaction(trans, root, PTR_ERR(new_root)); PTR_ERR returns long, but we're really using 'int' for the error codes everywhere so just set and use the local variable. Signed-off-by: David Sterba Signed-off-by: Chris Mason fs/btrfs/ioctl.c | 2 +- fs/btrfs/volumes.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) commit c0d19e2b9a521bbdc33049ad92c94b517afda1f0 Author: David Sterba Date: Fri Apr 24 19:11:57 2015 +0200 btrfs: add 'cold' compiler annotations to all error handling functions The annotated functios will be placed into .text.unlikely section. The annotation also hints compiler to move the code out of the hot paths, and may implicitly mark if-statement leading to that block as unlikely. This is a heuristic, the impact on the generated code is not significant. Signed-off-by: David Sterba Signed-off-by: Chris Mason fs/btrfs/ctree.h | 4 ++++ fs/btrfs/super.c | 3 +++ 2 files changed, 7 insertions(+) commit 1a9a8a71ed1d457d4f03284ebfd3e40fe1e217ac Author: David Sterba Date: Fri Apr 24 19:11:54 2015 +0200 btrfs: report exact callsite where transaction abort occurs WARN is called from a single location and all bugreports say that's in super.c __btrfs_abort_transaction. This is slightly confusing as we'd rather want to know the exact callsite. Whereas this information is printed in the syslog below the stacktrace, this requires further look and we usually see only the headline from WARNING. Moving the WARN into the macro has to inline some code and increases code by a few kilobytes: text data bss dec hex filename 835481 20305 14120 869906 d4612 btrfs.ko.before 842883 20305 14120 877308 d62fc btrfs.ko.after The delta is +7k (130+ calls), measured on 3.19 x86_64, distro config. The increase is not small and could lead to worse icache use. The code is on error/exit paths that can be recognized by compiler as cold and moved out of the way so the impact is speculated to be low, if measurable at all. Signed-off-by: David Sterba Signed-off-by: Chris Mason fs/btrfs/ctree.h | 12 +++++++++--- fs/btrfs/super.c | 8 -------- 2 files changed, 9 insertions(+), 11 deletions(-) commit 13028901a4a62096e97a0fc44388ea859587f690 Author: David Sterba Date: Fri Apr 24 16:44:30 2015 +0200 btrfs: let tree defrag work in SSD mode Long time ago (2008) the defrag was automatic for new b-tree writes but has been disabled after performance problems. There was a leftover in tree-defrag.c that effectively stops any defragmentation on b-trees. This is a bit unexpected and IMHO undesired. The SSD mode is an optimization and defrag is supposed to work if the users asks for it. Related commits: 6702ed490ca0bb44e17131818a5a18b773957c5a Btrfs: Add run time btree defrag, and an ioctl to force btree defrag e18e4809b10e6c9efb5fe10c1ddcb4ebb690d517 Btrfs: Add mount -o ssd, which includes optimizations for seek free storage b3236e68bf86b3ae87f58984a1822369225211cb Btrfs: Leave on the tree defragger in mount -o ssd, it still helps there 9afbb0b752ef30a429c45b9de6706e28ad1a36e1 Btrfs: Disable tree defrag in SSD mode The last three commits switch the defrag+ssd off/on/off and the last one 3f157a2fd2ad731e1ed9964fecdc5f459f04a4a4 Btrfs: Online btree defragmentation fixes misses the bits from tree-defrag.c to revert to the behaviour introduced in e18e4809b10e. Signed-off-by: David Sterba Signed-off-by: Chris Mason fs/btrfs/tree-defrag.c | 3 --- 1 file changed, 3 deletions(-) commit 53e489bc8cd9dcfe95be3e422121539250aa8221 Author: Filipe Manana Date: Tue Jun 2 14:43:21 2015 +0100 Btrfs: check pending chunks when shrinking fs to avoid corruption When we shrink the usable size of a device (its total_bytes), we go over all the device extent items in the device tree and attempt to relocate the chunk of any device extent that goes beyond the new usable size for the device. We do that after setting the new usable size (total_bytes) in the device object, so that all new allocations (and reallocations) don't use areas of the device that go beyond the new (shorter) size. However we were not considering that before setting the new size in the device, pending chunks might have been created that use device extents that go beyond the new size, and those device extents are not yet in the device tree after we search the device tree - they are still attached to the list of new block group for some ongoing transaction handle, and they are only added to the device tree when the transaction handle is ended (via btrfs_create_pending_block_groups()). So check for pending chunks with device extents that go beyond the new size and if any exists, commit the current transaction and repeat the search in the device tree. Not doing this it would mean we would return success to user space while still having extents that go beyond the new size, and later user space could override those locations on the device while the fs still references them, causing all sorts of corruption and unexpected events. Signed-off-by: Filipe Manana Signed-off-by: Chris Mason fs/btrfs/volumes.c | 49 ++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 40 insertions(+), 9 deletions(-) commit 64ad6c488975d7516230cf7849190a991fd615ae Author: Omar Sandoval Date: Tue Jun 2 17:31:00 2015 -0700 Btrfs: don't invalidate root dentry when subvolume deletion fails Since commit bafc9b754f75 ("vfs: More precise tests in d_invalidate"), mounted subvolumes can be deleted because d_invalidate() won't fail. However, we run into problems when we attempt to delete the default subvolume while it is mounted as the root filesystem: # btrfs subvol list / ID 257 gen 306 top level 5 path rootvol ID 267 gen 334 top level 5 path snap1 # btrfs subvol get-default / ID 267 gen 334 top level 5 path snap1 # btrfs inspect-internal rootid / 267 # mount -o subvol=/ /dev/vda1 /mnt # btrfs subvol del /mnt/snap1 Delete subvolume (no-commit): '/mnt/snap1' ERROR: cannot delete '/mnt/snap1' - Operation not permitted # findmnt / findmnt: can't read /proc/mounts: No such file or directory # ls /proc # Markus reported that this same scenario simply led to a kernel oops. This happens because in btrfs_ioctl_snap_destroy(), we call d_invalidate() before we check may_destroy_subvol(), which means that we detach the submounts and drop the dentry before erroring out. Instead, we should only invalidate the dentry once the deletion has succeeded. Additionally, the shrink_dcache_sb() isn't necessary; d_invalidate() will prune the dcache for the deleted subvolume. Cc: Fixes: bafc9b754f75 ("vfs: More precise tests in d_invalidate") Reported-by: Markus Schauler Signed-off-by: Omar Sandoval Signed-off-by: Chris Mason fs/btrfs/ioctl.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 8b191a684968e24b34c9894024b37532c68e6ae8 Author: Filipe Manana Date: Thu Apr 9 14:09:14 2015 +0100 Btrfs: incremental send, check if orphanized dir inode needs delayed rename If a directory inode is orphanized, because some inode previously processed has a new name that collides with the old name of the current inode, we need to check if it needs its rename operation delayed too, as its ancestor-descendent relationship with some other inode might have been reversed between the parent and send snapshots and therefore its rename operation needs to happen after that other inode is renamed. For example, for the following reproducer where this is needed (provided by Robbie Ko): $ mkfs.btrfs -f /dev/sdb $ mount /dev/sdb /mnt $ mkfs.btrfs -f /dev/sdc $ mount /dev/sdc /mnt2 $ mkdir -p /mnt/data/n1/n2 $ mkdir /mnt/data/n4 $ mkdir -p /mnt/data/t6/t7 $ mkdir /mnt/data/t5 $ mkdir /mnt/data/t7 $ mkdir /mnt/data/n4/t2 $ mkdir /mnt/data/t4 $ mkdir /mnt/data/t3 $ mv /mnt/data/t7 /mnt/data/n4/t2 $ mv /mnt/data/t4 /mnt/data/n4/t2/t7 $ mv /mnt/data/t5 /mnt/data/n4/t2/t7/t4 $ mv /mnt/data/t6 /mnt/data/n4/t2/t7/t4/t5 $ mv /mnt/data/n1/n2 /mnt/data/n4/t2/t7/t4/t5/t6 $ mv /mnt/data/n1 /mnt/data/n4/t2/t7/t4/t5/t6 $ mv /mnt/data/n4/t2/t7/t4/t5/t6/t7 /mnt/data/n4/t2/t7/t4/t5/t6/n2 $ mv /mnt/data/t3 /mnt/data/n4/t2/t7/t4/t5/t6/n2/t7 $ btrfs subvolume snapshot -r /mnt /mnt/snap1 $ mv /mnt/data/n4/t2/t7/t4/t5/t6/n1 /mnt/data/n4 $ mv /mnt/data/n4/t2 /mnt/data/n4/n1 $ mv /mnt/data/n4/n1/t2/t7/t4/t5/t6/n2 /mnt/data/n4/n1/t2 $ mv /mnt/data/n4/n1/t2/n2/t7/t3 /mnt/data/n4/n1/t2 $ mv /mnt/data/n4/n1/t2/t7/t4/t5/t6 /mnt/data/n4/n1/t2 $ mv /mnt/data/n4/n1/t2/t7/t4 /mnt/data/n4/n1/t2/t6 $ mv /mnt/data/n4/n1/t2/t7 /mnt/data/n4/n1/t2/t3 $ mv /mnt/data/n4/n1/t2/n2/t7 /mnt/data/n4/n1/t2 $ btrfs subvolume snapshot -r /mnt /mnt/snap2 $ btrfs send /mnt/snap1 | btrfs receive /mnt2 $ btrfs send -p /mnt/snap1 /mnt/snap2 | btrfs receive /mnt2 ERROR: send ioctl failed with -12: Cannot allocate memory Where the parent snapshot directory hierarchy is the following: . (ino 256) |-- data/ (ino 257) |-- n4/ (ino 260) |-- t2/ (ino 265) |-- t7/ (ino 264) |-- t4/ (ino 266) |-- t5/ (ino 263) |-- t6/ (ino 261) |-- n1/ (ino 258) |-- n2/ (ino 259) |-- t7/ (ino 262) |-- t3/ (ino 267) And the send snapshot's directory hierarchy is the following: . (ino 256) |-- data/ (ino 257) |-- n4/ (ino 260) |-- n1/ (ino 258) |-- t2/ (ino 265) |-- n2/ (ino 259) |-- t3/ (ino 267) | |-- t7 (ino 264) | |-- t6/ (ino 261) | |-- t4/ (ino 266) | |-- t5/ (ino 263) | |-- t7/ (ino 262) While processing inode 262 we orphanize inode 264 and later attempt to rename inode 264 to its new name/location, which resulted in building an incorrect destination path string for the rename operation with the value "data/n4/t2/t7/t4/t5/t6/n2/t7/t3/t7". This rename operation must have been done only after inode 267 is processed and renamed, as the ancestor-descendent relationship between inodes 264 and 267 was reversed between both snapshots, because otherwise it results in an infinite loop when building the path string for inode 264 when we are processing an inode with a number larger than 264. That loop is the following: start inode 264, send progress of 265 for example parent of 264 -> 267 parent of 267 -> 262 parent of 262 -> 259 parent of 259 -> 261 parent of 261 -> 263 parent of 263 -> 266 parent of 266 -> 264 |--> back to first iteration while current path string length is <= PATH_MAX, and fail with -ENOMEM otherwise So fix this by making the check if we need to delay a directory rename regardless of the current inode having been orphanized or not. A test case for fstests follows soon. Thanks to Robbie Ko for providing a reproducer for this problem. Reported-by: Robbie Ko Signed-off-by: Filipe Manana fs/btrfs/send.c | 56 +++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 37 insertions(+), 19 deletions(-) commit 80aa6027561eef12b49031d46fd6724daf1e7fb6 Author: Filipe Manana Date: Fri Mar 27 17:50:45 2015 +0000 Btrfs: incremental send, don't delay directory renames unnecessarily Even though we delay the rename of directories when they become descendents of other directories that were also renamed in the send root to prevent infinite path build loops, we were doing it in cases where this was not needed and was actually harmful resulting in infinite path build loops as we ended up with a circular dependency of delayed directory renames. Consider the following reproducer: $ mkfs.btrfs -f /dev/sdb $ mount /dev/sdb /mnt $ mkfs.btrfs -f /dev/sdc $ mount /dev/sdc /mnt2 $ mkdir /mnt/data $ mkdir /mnt/data/n1 $ mkdir /mnt/data/n1/n2 $ mkdir /mnt/data/n4 $ mkdir /mnt/data/n1/n2/p1 $ mkdir /mnt/data/n1/n2/p1/p2 $ mkdir /mnt/data/t6 $ mkdir /mnt/data/t7 $ mkdir -p /mnt/data/t5/t7 $ mkdir /mnt/data/t2 $ mkdir /mnt/data/t4 $ mkdir -p /mnt/data/t1/t3 $ mkdir /mnt/data/p1 $ mv /mnt/data/t1 /mnt/data/p1 $ mkdir -p /mnt/data/p1/p2 $ mv /mnt/data/t4 /mnt/data/p1/p2/t1 $ mv /mnt/data/t5 /mnt/data/n4/t5 $ mv /mnt/data/n1/n2/p1/p2 /mnt/data/n4/t5/p2 $ mv /mnt/data/t7 /mnt/data/n4/t5/p2/t7 $ mv /mnt/data/t2 /mnt/data/n4/t1 $ mv /mnt/data/p1 /mnt/data/n4/t5/p2/p1 $ mv /mnt/data/n1/n2 /mnt/data/n4/t5/p2/p1/p2/n2 $ mv /mnt/data/n4/t5/p2/p1/p2/t1 /mnt/data/n4/t5/p2/p1/p2/n2/t1 $ mv /mnt/data/n4/t5/t7 /mnt/data/n4/t5/p2/p1/p2/n2/t1/t7 $ mv /mnt/data/n4/t5/p2/p1/t1/t3 /mnt/data/n4/t5/p2/p1/p2/n2/t1/t3 $ mv /mnt/data/n4/t5/p2/p1/p2/n2/p1 /mnt/data/n4/t5/p2/p1/p2/n2/t1/t7/p1 $ mv /mnt/data/t6 /mnt/data/n4/t5/p2/p1/p2/n2/t1/t3/t5 $ mv /mnt/data/n4/t5/p2/p1/t1 /mnt/data/n4/t5/p2/p1/p2/n2/t1/t3/t1 $ mv /mnt/data/n1 /mnt/data/n4/t5/p2/p1/p2/n2/t1/t7/p1/n1 $ btrfs subvolume snapshot -r /mnt /mnt/snap1 $ mv /mnt/data/n4/t1 /mnt/data/n4/t5/p2/p1/p2/n2/t1/t7/p1/t1 $ mv /mnt/data/n4/t5/p2/p1/p2/n2/t1 /mnt/data/n4/ $ mv /mnt/data/n4/t5/p2/p1/p2/n2 /mnt/data/n4/t1/n2 $ mv /mnt/data/n4/t1/t7/p1 /mnt/data/n4/t1/n2/p1 $ mv /mnt/data/n4/t1/t3/t1 /mnt/data/n4/t1/n2/t1 $ mv /mnt/data/n4/t1/t3 /mnt/data/n4/t1/n2/t1/t3 $ mv /mnt/data/n4/t5/p2/p1/p2 /mnt/data/n4/t1/n2/p1/p2 $ mv /mnt/data/n4/t1/t7 /mnt/data/n4/t1/n2/p1/t7 $ mv /mnt/data/n4/t5/p2/p1 /mnt/data/n4/t1/n2/p1/p2/p1 $ mv /mnt/data/n4/t1/n2/t1/t3/t5 /mnt/data/n4/t1/n2/p1/p2/t5 $ mv /mnt/data/n4/t5 /mnt/data/n4/t1/n2/p1/p2/p1/t5 $ mv /mnt/data/n4/t1/n2/p1/p2/p1/t5/p2 /mnt/data/n4/t1/n2/p1/p2/p1/p2 $ mv /mnt/data/n4/t1/n2/p1/p2/p1/p2/t7 /mnt/data/n4/t1/t7 $ btrfs subvolume snapshot -r /mnt /mnt/snap2 $ btrfs send /mnt/snap1 | btrfs receive /mnt2 $ btrfs send -p /mnt/snap1 /mnt/snap2 | btrfs receive -vv /mnt2 ERROR: send ioctl failed with -12: Cannot allocate memory This reproducer resulted in an infinite path build loop when building the path for inode 266 because the following circular dependency of delayed directory renames was created: ino 272 <- ino 261 <- ino 259 <- ino 268 <- ino 267 <- ino 261 Where the notation "X <- Y" means the rename of inode X is delayed by the rename of inode Y (X will be renamed after Y is renamed). This resulted in an infinite path build loop of inode 266 because that inode has inode 261 as an ancestor in the send root and inode 261 is in the circular dependency of delayed renames listed above. Fix this by not delaying the rename of a directory inode if an ancestor of the inode in the send root, which has a delayed rename operation, is not also a descendent of the inode in the parent root. Thanks to Robbie Ko for sending the reproducer example. A test case for xfstests follows soon. Reported-by: Robbie Ko Signed-off-by: Filipe Manana fs/btrfs/send.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 46 insertions(+), 2 deletions(-) commit 3a7c01d75febd5acab30a433723b2051a305f2cc Author: Krzysztof Kozlowski Date: Mon May 25 21:13:17 2015 +0900 ARM: dts: Add Odroid XU3 Lite support The Odroid XU3 Lite is almost the same as XU3, except: 1. Lower CPU frequencies (1.8 GHz for A15 and 1.3 GHz for A7, instead of 2.0 GHz and 1.4 GHz). 2. No DisplayPort. 3. No TI INA231 energy measurement sensors. This patch moves common nodes (which is almost everything) to a common DTSI file and adds a new XU3 Lite DTS. Currently in comparison to XU3, only the INA231 sensors are disabled to remove the warning: ina2xx 0-0040: error configuring the device: -6 Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi | 479 +++++++++++++++++++++ arch/arm/boot/dts/exynos5422-odroidxu3-lite.dts | 20 + arch/arm/boot/dts/exynos5422-odroidxu3.dts | 466 +------------------- 4 files changed, 501 insertions(+), 465 deletions(-) commit 6bebe8daa6cc35853d7a3c42709594f7e225015f Author: Krzysztof Kozlowski Date: Mon May 25 21:20:59 2015 +0900 of: Add vendor prefix for Hardkernel Add Hardkernel Co., Ltd. to the list of device tree vendor prefixes. Signed-off-by: Krzysztof Kozlowski Reviewed-by: Javier Martinez Canillas Signed-off-by: Kukjin Kim Documentation/devicetree/bindings/vendor-prefixes.txt | 1 + 1 file changed, 1 insertion(+) commit aac4e0615341a9d966418c6fc4a3c7caa1f691be Author: Krzysztof Kozlowski Date: Sat May 30 15:33:21 2015 +0900 ARM: dts: odroidxu3: Enable wake alarm of S2MPS11 RTC The IRQB of S2MPS11 PMIC is wired to XEINT4 (GPX0-4) through pull-up resistor. Add interrupt properties and pinctrl configuration to enable RTC wake alarm of rtc-s5m driver. This also removes a warning: sec_pmic 4-0066: No interrupt specified, no interrupts Signed-off-by: Krzysztof Kozlowski Reviewed-by: Javier Martinez Canillas Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos5422-odroidxu3.dts | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 15b7f0871bde2001ea232ac68a53f4f5a1c1c43f Author: Andrzej Pietrasiewicz Date: Mon Mar 9 13:32:45 2015 +0100 ARM: dts: exynos5420: add nodes for jpeg codec Add nodes for jpeg codec in Exynos5420 SoC. Signed-off-by: Andrzej Pietrasiewicz [k.kozlowski: fixed up minor differences for applying] Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos5420.dtsi | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit 5dd6d26fe956566cbff526e1dfc9cfcca66f55d6 Author: Krzysztof Kozlowski Date: Fri Apr 17 21:43:51 2015 +0900 ARM: dts: s3c2416: Use labels for overriding nodes in SMDK2416 Usage of labels instead of full paths reduces possible mistakes when overriding nodes. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/s3c2416-smdk2416.dts | 86 +++++++++++++++++----------------- 1 file changed, 43 insertions(+), 43 deletions(-) commit 3ae9d92f7be923f986c5b3463f3ce7ecd1107b12 Author: Krzysztof Kozlowski Date: Fri Apr 17 21:35:54 2015 +0900 ARM: dts: s3c2416: Add labels to S3C2416 nodes Add new labels to certain nodes on S3C2416 so they could be easily referenced by board DTS files. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/s3c2416.dtsi | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit 8021dda5294ce4667e8538430d37e04e7d66086c Author: Krzysztof Kozlowski Date: Thu May 14 19:47:43 2015 +0900 ARM: dts: Use labels for overriding nodes in exynos5422-odroidxu3 Usage of labels instead of full paths reduces possible mistakes when overriding nodes. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos5422-odroidxu3.dts | 573 +++++++++++++++-------------- 1 file changed, 287 insertions(+), 286 deletions(-) commit 01997e3eb629e4aa82998147a66f10700aad98cb Author: Krzysztof Kozlowski Date: Fri Apr 17 22:53:08 2015 +0900 ARM: dts: Use labels for overriding nodes in exynos5440 boards Usage of labels instead of full paths reduces possible mistakes when overriding nodes. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos5440-sd5v1.dts | 10 ++-- arch/arm/boot/dts/exynos5440-ssdk5440.dts | 85 +++++++++++++++---------------- 2 files changed, 47 insertions(+), 48 deletions(-) commit e7d7ef3030ec53a4bf30406d60cadbd86a20e277 Author: Krzysztof Kozlowski Date: Sun Apr 12 20:59:34 2015 +0900 ARM: dts: Use labels for overriding nodes in exynos5420-smdk5420 Usage of labels instead of full paths reduces possible mistakes when overriding nodes. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos5420-smdk5420.dts | 645 +++++++++++++++--------------- 1 file changed, 323 insertions(+), 322 deletions(-) commit 3a3cf6c4bb14f2b2f6780d187096c6b962a15e69 Author: Krzysztof Kozlowski Date: Sun Apr 12 20:57:36 2015 +0900 ARM: dts: Use labels for overriding nodes in exynos542x Usage of labels instead of full paths reduces possible mistakes when overriding nodes. Additionally remove duplicated serial and uart labels for serial. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos5420-peach-pit.dts | 2 +- arch/arm/boot/dts/exynos5420.dtsi | 82 +++++++++++++++--------------- arch/arm/boot/dts/exynos5800-peach-pi.dts | 2 +- 3 files changed, 43 insertions(+), 43 deletions(-) commit 5e6b2889422a48f05c05997d4602f4f2524f4405 Author: Krzysztof Kozlowski Date: Sun Apr 12 20:56:51 2015 +0900 ARM: dts: Use labels for overriding nodes in exynos5420-arndale-octa Usage of labels instead of full paths reduces possible mistakes when overriding nodes. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos5420-arndale-octa.dts | 634 +++++++++++++------------- 1 file changed, 317 insertions(+), 317 deletions(-) commit 34a2d5aaada9f1d2d1b3ebdf5fe487864b6a9431 Author: Krzysztof Kozlowski Date: Sun Apr 12 20:53:46 2015 +0900 ARM: dts: Remove duplicated I2C7 nodes in exynos5250-snow The i2c_7 node (i2c@12CD0000) with LVDS bridge child node was put in Exynos5250 Snow DTS file twice. Move the LVDS bridge to proper existing i2c_7 node. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos5250-snow.dts | 46 +++++++++++++++++------------------ 1 file changed, 22 insertions(+), 24 deletions(-) commit e9a2f4091fd9b0881344a2add309b9a9cb916878 Author: Krzysztof Kozlowski Date: Sun Apr 12 20:52:49 2015 +0900 ARM: dts: Use labels for overriding nodes in exynos5250 Usage of labels instead of full paths reduces possible mistakes when overriding nodes. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos5250.dtsi | 82 +++++++++++++++++++-------------------- 1 file changed, 41 insertions(+), 41 deletions(-) commit 7c23e7e167ab7f3e70c116af6307a84ed04a7b79 Author: Krzysztof Kozlowski Date: Sun Apr 12 20:39:04 2015 +0900 ARM: dts: Add labels to exynos5 nodes Add new labels to certain nodes so they could be easily referenced by Exynos5 board DTS files. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos5.dtsi | 6 +++--- arch/arm/boot/dts/exynos5440.dtsi | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) commit 719f39fec58637cb141d337f22b35d3b8ccd1ff4 Author: Peter Chubb Date: Thu May 14 09:57:56 2015 +1000 ARM: dts: exynos5422-odroidxu3: Hook up PWM and use it for LEDs PWM output wasn't working because it wasn't hooked up to its pincontrol. This patch: - hooks up PWM to its pincontrol, and documents what the outputs are on the XU3 - switches the LEDs that are on PWM outputs to use PWM rather than GPIO. The main effect is that the brightness of the LEDs can be controlled, and user-mode fan control is enabled via /sys/class/pwm Acked-by: Krzysztof Kozlowski Signed-off-by: Peter Chubb Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos5422-odroidxu3.dts | 50 +++++++++++++++++++++--------- 1 file changed, 36 insertions(+), 14 deletions(-) commit 81ce48162aeea9a4121e3cf7bd46c846ac6218f8 Author: Krzysztof Kozlowski Date: Mon May 11 22:34:30 2015 +0900 ARM: dts: Use labels for overriding nodes in exynos4412-tiny4412 Usage of labels instead of full paths reduces possible mistakes when overriding nodes. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos4412-tiny4412.dts | 54 +++++++++++++++---------------- 1 file changed, 27 insertions(+), 27 deletions(-) commit 1956dd38907552d118e61fe9166ee99f6c2106c7 Author: Krzysztof Kozlowski Date: Mon May 11 22:33:43 2015 +0900 ARM: dts: Use labels for overriding nodes in exynos4412-origen Usage of labels instead of full paths reduces possible mistakes when overriding nodes. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos4412-origen.dts | 892 ++++++++++++++++---------------- 1 file changed, 446 insertions(+), 446 deletions(-) commit 1fe9a9427fd00be4c045a2fde869913edc968a87 Author: Krzysztof Kozlowski Date: Mon Apr 6 21:07:42 2015 +0200 ARM: dts: Use labels for overriding nodes in exynos4412-trats2 Usage of labels instead of full paths reduces possible mistakes when overriding nodes. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos4412-trats2.dts | 1332 ++++++++++++++++--------------- 1 file changed, 667 insertions(+), 665 deletions(-) commit 3d06a5c1d7dd93978e31463d5a270ba6bb49fe91 Author: Krzysztof Kozlowski Date: Mon Apr 6 21:07:18 2015 +0200 ARM: dts: Use labels for overriding nodes in exynos4412-smdk4412 Usage of labels instead of full paths reduces possible mistakes when overriding nodes. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos4412-smdk4412.dts | 210 +++++++++++++++--------------- 1 file changed, 105 insertions(+), 105 deletions(-) commit 49c1a163b3b54faf701d8592b91b5ad769ab7341 Author: Krzysztof Kozlowski Date: Mon Apr 6 21:06:50 2015 +0200 ARM: dts: Use labels for overriding nodes in exynos4412-odroid Usage of labels instead of full paths reduces possible mistakes when overriding nodes. Signed-off-by: Krzysztof Kozlowski For thermal zones: Acked-by: Eduardo Valentin Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos4412-odroid-common.dtsi | 732 ++++++++++++------------ arch/arm/boot/dts/exynos4412-odroidx.dts | 16 +- 2 files changed, 374 insertions(+), 374 deletions(-) commit 08c4b441a66578941f5dfbf70bd2701ce5329711 Author: Krzysztof Kozlowski Date: Mon Apr 6 21:06:21 2015 +0200 ARM: dts: Use labels for overriding nodes in exynos4412 Usage of labels instead of full paths reduces possible mistakes when overriding nodes. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos4412.dtsi | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit 13a866d45fd28cd3e21114bbb203718aa7baaa9c Author: Krzysztof Kozlowski Date: Mon Apr 6 21:05:52 2015 +0200 ARM: dts: Use labels for overriding nodes in exynos4x12 Usage of labels instead of full paths reduces possible mistakes when overriding nodes. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos4x12.dtsi | 216 +++++++++++++++++++------------------- 1 file changed, 108 insertions(+), 108 deletions(-) commit b14cf1276c3c047366abcbd3812edd494cd3e08b Author: Krzysztof Kozlowski Date: Mon Apr 6 21:01:50 2015 +0200 ARM: dts: Use labels for overriding nodes in exynos4212 Usage of labels instead of full paths reduces possible mistakes when overriding nodes. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos4212.dtsi | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 9b70afd9ea22d42a76708be7e011349d3d418342 Author: Krzysztof Kozlowski Date: Mon Apr 6 21:01:17 2015 +0200 ARM: dts: Use labels for overriding nodes in exynos4210-trats Usage of labels instead of full paths reduces possible mistakes when overriding nodes. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos4210-trats.dts | 592 ++++++++++++++++----------------- 1 file changed, 296 insertions(+), 296 deletions(-) commit bad0b9c9ab42c7a7891f253eae28db6f6789f3d6 Author: Krzysztof Kozlowski Date: Mon Apr 6 21:01:05 2015 +0200 ARM: dts: Use labels for overriding nodes in exynos4210-smdkv310 Usage of labels instead of full paths reduces possible mistakes when overriding nodes. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos4210-smdkv310.dts | 280 +++++++++++++++--------------- 1 file changed, 140 insertions(+), 140 deletions(-) commit 165d658e7dcf8a97c6362d3fcbefa420a9e0d668 Author: Krzysztof Kozlowski Date: Mon Apr 6 21:00:44 2015 +0200 ARM: dts: Use labels for overriding nodes in exynos4210-origen Usage of labels instead of full paths reduces possible mistakes when overriding nodes. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos4210-origen.dts | 418 ++++++++++++++++---------------- 1 file changed, 209 insertions(+), 209 deletions(-) commit 070bb0f063a46aebba385a91ce5463e876187916 Author: Krzysztof Kozlowski Date: Mon Apr 6 17:06:44 2015 +0200 ARM: dts: Use labels for overriding nodes in exynos4210 Usage of labels instead of full paths reduces possible mistakes when overriding nodes. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos4210.dtsi | 43 +++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 22 deletions(-) commit 9c41221e742291584d3504aed627aaf8069ed3e6 Author: Krzysztof Kozlowski Date: Wed May 13 19:24:35 2015 +0900 ARM: dts: Add labels to exynos4 nodes Add new labels to certain nodes so they could be easily referenced by Exynos4 board DTS files. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos4.dtsi | 22 +++++++++++----------- arch/arm/boot/dts/exynos4210.dtsi | 6 +++--- arch/arm/boot/dts/exynos4x12-pinctrl.dtsi | 8 ++++---- arch/arm/boot/dts/exynos4x12.dtsi | 2 +- 4 files changed, 19 insertions(+), 19 deletions(-) commit b9974fa208d9175a6d1d21f6b1068e1779295934 Merge: c65b99f 5ec1d44 Author: Kukjin Kim Date: Wed Jun 3 09:56:00 2015 +0900 Merge branch 'v4.2-next/dt-samsung-3rd' into v4.2-next/dt-samsung-4th commit 5ec1d441a4227b2dfdc47fdc13aa7c6c50496194 Author: Krzysztof Kozlowski Date: Sat May 23 12:25:17 2015 +0900 ARM: dts: Add syscon property to the MIPI DPHY for exynos4415 Since e4b3d38088df ("phy: exynos-video-mipi: Fix regression by adding support for PMU regmap") the Exynos PMU driver provides regmap to access the MIPI DPHY registers. The MIPI DPHY driver accesses this regmap through syscon phandle. Signed-off-by: Krzysztof Kozlowski Reviewed-by: Javier Martinez Canillas Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos4415.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 21f5278e114ce2a71bfcabb27c63ce5daa3f4234 Author: Krzysztof Kozlowski Date: Sat May 23 12:24:43 2015 +0900 ARM: dts: Remove obsolete MIPI DPHY 'reg' property for exynos4 Since e4b3d38088df ("phy: exynos-video-mipi: Fix regression by adding support for PMU regmap") the Exynos PMU driver provides regmap to access the MIPI DPHY registers. The MIPI DPHY node uses a phandle to syscon to get this regmap. The 'reg' field is obsolete. Signed-off-by: Krzysztof Kozlowski Reviewed-by: Javier Martinez Canillas Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos4.dtsi | 1 - 1 file changed, 1 deletion(-) commit 8d9321fbe2be1b403ac861930ed87d4b36d9febc Author: Krzysztof Kozlowski Date: Fri Apr 3 11:28:01 2015 +0200 ARM: dts: Use last parent for clocks during power domain on/off Replace fixed parent with last parent (obtained with clk_get_parent()) of clocks for devices in mfc and disp power domains. This should improve behavior if such clocks were reparented by the drivers and new parents are different than those specified in DTS. Signed-off-by: Krzysztof Kozlowski Reviewed-by: Javier Martinez Canillas Tested-by: Javier Martinez Canillas Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos5420.dtsi | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) commit f882d3cfe87800000e5fa91160db401bb7a38d28 Author: Anand Moon Date: Wed May 13 14:32:06 2015 +0930 ARM: exynos_defconfig: Enable CONFIG_SENSORS_INA2XX for Odroid-XU3 Odroid-XU3 board support power monitor sensor. Below is the output of boot log. [ 3.241438] ina2xx 0-0040: power monitor ina231 (Rshunt = 10000 uOhm) [ 3.248068] ina2xx 0-0041: power monitor ina231 (Rshunt = 10000 uOhm) [ 3.254724] ina2xx 0-0044: power monitor ina231 (Rshunt = 10000 uOhm) [ 3.261354] ina2xx 0-0045: power monitor ina231 (Rshunt = 10000 uOhm) ina231-i2c-0-40 Adapter: s3c2410-i2c in0: +0.00 V in1: +1.01 V power1: 175.00 mW curr1: +0.18 A ina231-i2c-0-41 Adapter: s3c2410-i2c in0: +0.00 V in1: +1.21 V power1: 50.00 mW curr1: +0.04 A ina231-i2c-0-44 Adapter: s3c2410-i2c in0: +0.00 V in1: +1.02 V power1: 50.00 mW curr1: +0.04 A ina231-i2c-0-45 Adapter: s3c2410-i2c in0: +0.00 V in1: +1.04 V power1: 75.00 mW curr1: +0.07 A Signed-off-by: Anand Moon Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/configs/exynos_defconfig | 1 + 1 file changed, 1 insertion(+) commit 4ce30874f561faa15e87fcf0592eee14c26cb78b Author: Sagi Grimberg Date: Wed May 20 12:38:58 2015 +0300 iscsi: Fix iscsi endpoints leak When creating a new endpoint, we look for a free id for the new endpoint. We baisically loop on possible ids and use the first id that class_find_device() returns NULL. However, we are missing a reference put when class_find_device() does find an existing device for a given id. Reported-by: Alex Lyakas Signed-off-by: Sagi Grimberg Reviewed-by: Mike Christie Signed-off-by: James Bottomley drivers/scsi/scsi_transport_iscsi.c | 2 ++ 1 file changed, 2 insertions(+) commit 8c7b53801d542a865ea036a48fc98c3acc0c4eba Author: Anand Moon Date: Wed May 13 14:32:05 2015 +0930 ARM: exynos_defconfig: Enable CONFIG_SENSORS_PWM_FAN for Odroid-XU3 Enable CONFIG_SENSORS_PWM_FAN on exynos_defconfig to control fan power on Odroid-XU3. Signed-off-by: Anand Moon Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/configs/exynos_defconfig | 1 + 1 file changed, 1 insertion(+) commit e03c2da6574223081b786960e39c1e5ecf5d492d Author: James Bottomley Date: Tue May 19 11:38:17 2015 -0700 ips: remove pointless #warning non-x86 builds want the #warning in the IPS code about compiling on the wrong architecture removed because it keeps triggering on their platforms build farms. Transform from a compile time warning into a runtime one with taint to preserve the original intent of the authors. Acked-by: Arnd Bergmann Signed-off-by: James Bottomley drivers/scsi/ips.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 35843048e7e979df3b7b9f2ad49e21797a11386b Author: Nilesh Javali Date: Tue May 19 05:51:58 2015 -0400 bnx2i: Fix call trace while device reset The driver waits for command completion event while cleanup of task within the frwd lock and back locks. The frwd lock was still held which caused the call trace while issuing a device reset. Release the frwd lock along with the back lock to avoid waiting in the lock context. Signed-off-by: Nilesh Javali Reviewed-by: Mike Christie Signed-off-by: James Bottomley drivers/scsi/bnx2i/bnx2i_iscsi.c | 2 ++ 1 file changed, 2 insertions(+) commit 5fc956c243852608db1e4ef74b92bb4445313912 Author: Tej Parkash Date: Tue May 19 05:51:57 2015 -0400 bnx2i: Fixed firmware assert, during target logout. Fix the firmware assert, during target logout in case driver received FIN from target before waiting for asyncronous response. Signed-off-by: Tej Parkash Signed-off-by: Nilesh Javali Reviewed-by: Mike Christie Signed-off-by: James Bottomley drivers/scsi/bnx2i/bnx2i_iscsi.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit f56aa1c57ea921e45bb6cf5d83a04cbc8f38fae5 Author: Jaegeuk Kim Date: Tue Jun 2 15:48:20 2015 -0700 f2fs: fix to return exact trimmed size Now, we add all the candidates for trim commands and then finally issue discard commands. So, we should count the trimmed size in back-end. Signed-off-by: Jaegeuk Kim fs/f2fs/segment.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4fc62a89dc607cee4f75f6dbb102cd6215fd0d64 Author: Wang Nan Date: Mon Jun 1 07:37:48 2015 +0000 tools: Move tools/perf/util/include/linux/{list.h,poison.h} to tools/include This patch moves list.h from tools/perf/util/include/linux/list.h to tools/include/linux/list.h to enable other libraries use macros in it, like libbpf which will be introduced by further patches. Since list.h depend on poison.h, poison.h is also moved. Both file use relative path, so one '..' is removed for each header to make them suit for new directory. MANIFEST is also updated for 'make perf-*-src-pkg'. 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/1433144296-74992-3-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/include/linux/list.h | 29 +++++++++++++++++++++++++++++ tools/include/linux/poison.h | 1 + tools/perf/MANIFEST | 2 ++ tools/perf/util/include/linux/list.h | 29 ----------------------------- tools/perf/util/include/linux/poison.h | 1 - 5 files changed, 32 insertions(+), 30 deletions(-) commit 16b2a7d4cb922ee7ec238233d0c4e46be97e9db0 Author: Hans de Goede Date: Mon Jun 1 17:02:59 2015 +0200 ARM: dts: sun6i: Add a dts file for the Mele A1000G quad top set box The Mele A1000G-quad and the Mele M9 have the same PCB, sofar we've been using the same dts for both models. Unfortunately this does not work for the otg controller, on the M9 this is routed to a micro-usb connector on the outside, while as on the A1000G-quad it is connected to an usb to sata bridge (which is not populated on the M9 pcb). This commit adds a new dts for the Mele-A1000G-quad to allow using different otg controller settings on the 2 boards. Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/sun6i-a31-m9.dts | 2 +- arch/arm/boot/dts/sun6i-a31-mele-a1000g-quad.dts | 149 +++++++++++++++++++++++ 3 files changed, 151 insertions(+), 1 deletion(-) commit 19f5c703c5cf9e22b539c773d071f5554c4785fc Author: Hans de Goede Date: Tue Jun 2 22:08:02 2015 +0200 ARM: dts: sun8i: Add dts file for the GA10H-A33 tablet The ga10h is an 10" tablet with an A33 or A23 soc, 1G RAM, 8G or 16G nand, sdio wifi, 2 micro usb ports, 1 otg and 1 host and 1 micro sd slot. This commit adds a dts file for the v1.1 pcb with an a33 soc. Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/sun8i-a33-ga10h-v1.1.dts | 125 +++++++++++++++++++++++++++++ 2 files changed, 126 insertions(+) commit 4eb0f25fa6538c8214e78ac31cdc070f20f78175 Author: Chen-Yu Tsai Date: Tue Jun 2 18:04:03 2015 +0800 ARM: dts: sun8i-a33: Add dts for Sinlinx SinA33 development board. The SinA33 is a core/SDK development board by Sinlinx. The core board does not have any connectors or pads, other than the pads used to connect it to the SDK board. The core board only has the A33 SoC, 2 RAM chips, an eMMC flash chip, the AXP223 PMIC, and supporting discrete components. eMMC is optional. The SDK board has a USB host, USB OTG, volume control and home buttons, audio input/output jacks, a micro-SD slot, camera and SDIO expansion headers, an LCD connector, and a GPIO expansion header, which has UARTs, MIPI DSI and I2C available. Only UART0 is enabled though. Signed-off-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard arch/arm/boot/dts/Makefile | 3 +- arch/arm/boot/dts/sun8i-a33-sinlinx-sina33.dts | 129 +++++++++++++++++++++++++ 2 files changed, 131 insertions(+), 1 deletion(-) commit fd5da2081b070fea6ba355f78cf79bac6e926369 Author: Bjorn Helgaas Date: Tue Jun 2 16:16:44 2015 -0500 PCI: imx6: Rename imx6_pcie_start_link() to imx6_pcie_establish_link() Rename imx6_pcie_start_link() to imx6_pcie_establish_link() to follow the convention of other DesignWare-based host drivers. No functional change. Signed-off-by: Bjorn Helgaas Acked-by: Pratyush Anand drivers/pci/host/pci-imx6.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1e25aa9641e8f3fa39cd5e46b4afcafd7f12a44b Author: Srinivas Pandruvada Date: Mon Jun 1 16:36:27 2015 -0700 hid-sensor: Fix suspend/resume delay By default all the sensors are runtime suspended state (lowest power state). During Linux suspend process, all the run time suspended devices are resumed and then suspended. This caused all sensors to power up and introduced delay in suspend time, when we introduced runtime PM for HID sensors. The opposite process happens during resume process. To fix this, we do powerup process of the sensors only when the request is issued from user (raw or tiggerred). In this way when runtime, resume calls for powerup it will simply return as this will not match user requested state. Note this is a regression fix as the increase in suspend / resume times can be substantial (report of 8 seconds on Len's laptop!) Signed-off-by: Srinivas Pandruvada Tested-by: Len Brown Cc: Signed-off-by: Jonathan Cameron drivers/iio/common/hid-sensors/hid-sensor-trigger.c | 11 ++++++++++- include/linux/hid-sensor-hub.h | 1 + 2 files changed, 11 insertions(+), 1 deletion(-) commit 63c6509b0d8bb48454b7b16b560a1779dec581c1 Author: Chen-Yu Tsai Date: Tue Jun 2 18:04:02 2015 +0800 ARM: dts: sun8i-a33: Add pinmux setting for uart0 on PB pins The A33 adds an additional pinmux option for uart0 on the PB pins. This was not present on the A23. Nor is it available on the H3, which does not have the PB pingroup. Signed-off-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun8i-a33.dtsi | 8 ++++++++ 1 file changed, 8 insertions(+) commit 93b129d6fa2b158e31d3c0e4ed86906eeac0f60c Author: Chen-Yu Tsai Date: Tue Jun 2 18:04:01 2015 +0800 ARM: dts: sun8i: Add pinmux setting for 8bit mmc2 mmc2 is mostly used with eMMC flash chips, as an alternative to raw NAND flash chips. 8 bit mmc is commonly used. Signed-off-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun8i-a23-a33.dtsi | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 4b786458ed99eae9e9d9984a1624a79e9bf6cebb Author: Martin Sperl Date: Mon May 25 10:13:10 2015 +0000 spi: restore rx/tx_buf in case of unset CONFIG_HAS_DMA The case where spi_master sets the flags SPI_MASTER_MUST_RX/TX while CONFIG_HAS_DMA is unset (which is unlikley) together with a driver that reuses spi_messages with rx/tx_buff set to NULL, can result in: * data disclosure over the SPI (for tx_buf == NULL) * memory corruption (for rx_buf == NULL) This happenes when dummy_rx/dummy_tx are changing address due to krealloc or free and an allocation of the memory by a different part of the kernel. Signed-off-by: Martin Sperl Signed-off-by: Mark Brown drivers/spi/spi.c | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) commit 9a1bd63cdae4b623494c4ebaf723a91c35ec49fb Author: Miroslav Benes Date: Mon Jun 1 17:48:37 2015 +0200 livepatch: add module locking around kallsyms calls The list of loaded modules is walked through in module_kallsyms_on_each_symbol (called by kallsyms_on_each_symbol). The module_mutex lock should be acquired to prevent potential corruptions in the list. This was uncovered with new lockdep asserts in module code introduced by the commit 0be964be0d45 ("module: Sanitize RCU usage and locking") in recent next- trees. Signed-off-by: Miroslav Benes Acked-by: Josh Poimboeuf Cc: stable@vger.kernel.org Signed-off-by: Jiri Kosina kernel/livepatch/core.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) commit fa2ab6971844141add8d98a73a0a9679f9067bb5 Author: Shailendra Verma Date: Wed May 27 06:25:57 2015 +0530 ray_cs: Change 1 to true for bool type variable. The variable translate is bool type. So assigning true instead of 1. Signed-off-by: Shailendra Verma Signed-off-by: Kalle Valo drivers/net/wireless/ray_cs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ae977587da4ca9f34dbbae24e5479a3e8da166d0 Author: Yaniv Gardi Date: Sun May 17 18:55:06 2015 +0300 scsi: ufs-qcom: enable UFSHCD_QUIRK_BROKEN_UFS_HCI_VERSION Newer revisions of QUALCOMM Technologies UFS host controller may not advertise the correct version information in UFS HCI VER register. To handle this, enable UFSHCD_QUIRK_BROKEN_UFS_HCI_VERSION to let UFS standard host controller driver call into vendor specific operation to get right UFS HCI VER register value. Signed-off-by: Yaniv Gardi Reviewed-by: Akinobu Mita Signed-off-by: James Bottomley drivers/scsi/ufs/ufs-qcom.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 9949e702e69718965f3c3c6787eb17d420daa7df Author: Yaniv Gardi Date: Sun May 17 18:55:05 2015 +0300 scsi: ufs: add quirk to handle broken UFS HCI version Some host controller hardware controllers may not advertise correct version in UFS HCI VER register. To workaround this, add new quirk and call the host controller hardware vendor specific callback to get the correct UFS HCI version register value. Signed-off-by: Yaniv Gardi Reviewed-by: Akinobu Mita Signed-off-by: James Bottomley drivers/scsi/ufs/ufshcd.c | 5 +++++ drivers/scsi/ufs/ufshcd.h | 10 ++++++++++ drivers/scsi/ufs/ufshci.h | 5 +++-- 3 files changed, 18 insertions(+), 2 deletions(-) commit 2c0cc2e2693b3c13cf007cfd25b6ea43a1eceb45 Author: Yaniv Gardi Date: Sun May 17 18:55:04 2015 +0300 scsi: ufs-qcom: enable UFSHCD_QUIRK_DME_PEER_ACCESS_AUTO_MODE quirk Current version of host controller on QUALCOMM Technologies requires this quirk to be enabled, as DME commands to device must be sent only in AUTO mode (SLOW AUTO or FAST AUTO). Signed-off-by: Yaniv Gardi Reviewed-by: Akinobu Mita Signed-off-by: James Bottomley drivers/scsi/ufs/ufs-qcom.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 874237f7f2aae61d166613cc191238d8335087f8 Author: Yaniv Gardi Date: Sun May 17 18:55:03 2015 +0300 scsi: ufs: introduce UFSHCD_QUIRK_DME_PEER_ACCESS_AUTO_MODE quirk Some UFS host controllers may only allow accessing the peer DME attribute in AUTO mode (FAST AUTO or SLOW AUTO) hence we had added a quirk for switching to AUTO power mode before accessing the peer DME attribute. Signed-off-by: Yaniv Gardi Reviewed-by: Akinobu Mita Signed-off-by: James Bottomley drivers/scsi/ufs/ufshcd.c | 31 +++++++++++++++++++++++++++++++ drivers/scsi/ufs/ufshcd.h | 7 +++++++ 2 files changed, 38 insertions(+) commit 8163743e23035dd2e2ab531878517137033d62bf Author: Yaniv Gardi Date: Sun May 17 18:55:02 2015 +0300 scsi: ufs-qcom: enable quirk to fix gear change to HS With the G3 UFS devices, changing gear into HS is failing in UFS host controllers of version 0x2. The quirk solves the problem of changing gear into HS by enabling the attribute that specifies whether or not the inbound Link supports unterminated line in HS mode. Signed-off-by: Yaniv Gardi Reviewed-by: Akinobu Mita Signed-off-by: James Bottomley drivers/scsi/ufs/ufs-qcom.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 57670ee882d4d879eb1b8e18e72173507c2a4c65 Author: Amitkumar Karwar Date: Tue May 26 06:34:32 2015 -0700 mwifiex: device dump support via devcoredump framework Currently device dump generated in the driver is retrieved using ethtool set/get dump commands. We will get rid of ethtool approach and use devcoredump framework. Device dump can be trigger by cat /debugfs/mwifiex/mlanX/device_dump and when the dump operation is completed, data can be read by cat /sys/class/devcoredump/devcdX/data We have prepared following script to split device dump data into multiple files. [root]# cat mwifiex_split_dump_data.sh #!/bin/bash # usage: ./mwifiex_split_dump_data.sh dump_data fw_dump_data=$1 mem_type="driverinfo ITCM DTCM SQRAM APU CIU ICU MAC" for name in ${mem_type[@]} do sed -n "/Start dump $name/,/End dump/p" $fw_dump_data > tmp.$name.log if [ ! -s tmp.$name.log ] then rm -rf tmp.$name.log else #Remove the describle info "Start dump" and "End dump" sed '1d' tmp.$name.log | sed '$d' > /data/$name.log if [ -s /data/$name.log ] then echo "generate /data/$name.log" else sed '1d' tmp.$name.log | sed '$d' > /var/$name.log echo "generate /var/$name.log" fi rm -rf tmp.$name.log fi done Signed-off-by: Amitkumar Karwar Signed-off-by: Cathy Luo Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/Kconfig | 2 + drivers/net/wireless/mwifiex/ethtool.c | 99 ---------------------------------- drivers/net/wireless/mwifiex/main.c | 90 +++++++++++++++++++++++++++++++ drivers/net/wireless/mwifiex/main.h | 3 +- drivers/net/wireless/mwifiex/pcie.c | 21 +++----- drivers/net/wireless/mwifiex/sdio.c | 5 +- 6 files changed, 103 insertions(+), 117 deletions(-) commit fc697159ad4c403fe0ddf226bf9a082cfecb6854 Author: Amitkumar Karwar Date: Tue May 26 06:34:31 2015 -0700 mwifiex: use generic name 'device dump' Currently we are dumping driver information also inside firmware dump API. We will call it as device dump and dump driver and firmware data separately. Signed-off-by: Amitkumar Karwar Signed-off-by: Cathy Luo Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/README | 6 +++--- drivers/net/wireless/mwifiex/cmdevt.c | 4 ++-- drivers/net/wireless/mwifiex/debugfs.c | 20 ++++++++++---------- drivers/net/wireless/mwifiex/ethtool.c | 12 ++++++------ drivers/net/wireless/mwifiex/main.c | 4 ++-- drivers/net/wireless/mwifiex/main.h | 6 +++--- drivers/net/wireless/mwifiex/pcie.c | 22 +++++++++++++--------- drivers/net/wireless/mwifiex/sdio.c | 22 +++++++++++++--------- 8 files changed, 52 insertions(+), 44 deletions(-) commit 9cc0dbf0436767f0fc24c123aa1ba3aeccd145fb Author: Amitkumar Karwar Date: Tue May 26 06:34:30 2015 -0700 mwifiex: minor changes in debug messages Small letters are used in debug messages to match coding style at other places. Signed-off-by: Amitkumar Karwar Signed-off-by: Cathy Luo Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/main.c | 8 ++++---- drivers/net/wireless/mwifiex/sdio.c | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) commit 38b130e22e40fd81c979952172d9a4be2e0edff9 Author: Amitkumar Karwar Date: Tue May 26 06:34:29 2015 -0700 mwifiex: dump driver information for PCIe interface Currently we are dumping driver information only for SDIO interface. This patch adds missing mwifiex_dump_drv_info() call for PCIe interface. Signed-off-by: Amitkumar Karwar Signed-off-by: Cathy Luo Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/pcie.c | 2 ++ 1 file changed, 2 insertions(+) commit 0769b27739ee420a391ee66a431c1474370aec6b Author: Amitkumar Karwar Date: Tue May 26 06:34:28 2015 -0700 mwifiex: fix a possible double free issue As drv_info_dump pointer doesn't get reset, we may end up freeing the allocated memory twice. Signed-off-by: Amitkumar Karwar Signed-off-by: Cathy Luo Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/init.c | 1 + drivers/net/wireless/mwifiex/main.c | 1 + 2 files changed, 2 insertions(+) commit e065ddb891755c74f73c60989f96784f3aa65f81 Author: Amitkumar Karwar Date: Tue May 26 06:34:27 2015 -0700 mwifiex: fix SDIO firmware dump problem It's been observed that firmware doesn't go back to normal state when all firmware memories are dumped. As a result, further commands are blocked. This happens due to missing driver change of writing READ DONE to control register for SDIO interface. This patch adds a missing change to fix the problem. Signed-off-by: Amitkumar Karwar Signed-off-by: Cathy Luo Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/sdio.c | 7 +++++++ 1 file changed, 7 insertions(+) commit c3a2f9ee93cf2d074dbf0234c2ef5dcdbf84a7d0 Author: Yaniv Gardi Date: Sun May 17 18:55:01 2015 +0300 scsi: ufs: introduce a broken PA_RXHSUNTERMCAP quirk The attribute PA_RXHSUNTERMCAP specifies whether or not the inbound Link supports unterminated line in HS mode. enabling this attribute to 1 fixes moving to HS gear. Signed-off-by: Yaniv Gardi Reviewed-by: Akinobu Mita Signed-off-by: James Bottomley drivers/scsi/ufs/ufshcd.c | 11 +++++++++++ drivers/scsi/ufs/ufshcd.h | 7 +++++++ 2 files changed, 18 insertions(+) commit 2f0183781a77e84bf58b1b375d49f73d3a96d4ee Author: Yaniv Gardi Date: Sun May 17 18:55:00 2015 +0300 scsi: ufs-qcom: enable UFSHCD_QUIRK_BROKEN_LCC LCC (Line Control Command) are being used for communication between UFS host and UFS device. But UFS host controller on QUALCOMM Technologies have an issue with issuing the LCC commands to UFS device and hence this quirk is enabled in order to to disable LCC from the host side. Signed-off-by: Yaniv Gardi Reviewed-by: Akinobu Mita Signed-off-by: James Bottomley drivers/scsi/ufs/ufs-qcom.c | 2 ++ 1 file changed, 2 insertions(+) commit 7ca38cf300eb7fba9010d847baa6a4f5c458dd4e Author: Yaniv Gardi Date: Sun May 17 18:54:59 2015 +0300 scsi: ufs: provide a quirk to disable the LCC LCC (Line Control Command) are being used for communication between UFS host and UFS device. New commercial UFS devices don't have the issues with LCC processing but UFS host controller might still have the issue with LCC processing, hence, added a routine to disable TX LCC on the device. Signed-off-by: Yaniv Gardi Reviewed-by: Akinobu Mita Signed-off-by: James Bottomley drivers/scsi/ufs/ufshcd.c | 42 ++++++++++++++++++++++++++++++++++++++++++ drivers/scsi/ufs/ufshcd.h | 8 ++++++++ drivers/scsi/ufs/ufshci.h | 3 +++ 3 files changed, 53 insertions(+) commit 81c7e06a5ffcca8ac8bbaa2422051bf1d7a87a46 Author: Yaniv Gardi Date: Sun May 17 18:54:58 2015 +0300 scsi: ufs-qcom: don't enable interrupt aggregation Current versions of UFS host controllers on QUALCOMM Technologies have interrupt aggregation logic broken. Interrupt aggregation may not work if both threshold count and timeout is enabled. Hence disable interrupt aggregation by enabling UFSHCD_QUIRK_BROKEN_INTR_AGGR quirk until its fixed in the newer UFS host controller revisions. Signed-off-by: Yaniv Gardi Reviewed-by: Akinobu Mita Signed-off-by: James Bottomley drivers/scsi/ufs/ufs-qcom.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) commit 3e0aa8d83bf8e6d414e538cf1046a3a7b48017bc Author: Jyri Sarha Date: Tue May 26 21:59:05 2015 +0300 ASoC: core: If component doesn't have of_node use parent's node instead If an ASoC component device does not have a device tree node, use its parent's node instead, when looking for a matching DAI based on a device tree reference. This allows video device drivers to register a separate child device for their ASoC side audio functionality. [And MFDs in general -- broonie] Signed-off-by: Jyri Sarha Signed-off-by: Mark Brown sound/soc/soc-core.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) commit b852190e589abe8ad4891251424a636872960f56 Author: Yaniv Gardi Date: Sun May 17 18:54:57 2015 +0300 scsi: ufs: introduce the capability and quirk for interrupt aggregation UFS HCI (Host Controller Interface) allows the transfer requests interrupts to be aggregated to generate the single interrupt but this can impact the performance. Hence introduce the capability which gives choice to use the interrupt aggregation capability or not. By default interrupt aggregation capability is kept disabled. This change also introduces a quirk for broken interrupt aggregation feature, as in some UFS controllers, this feature may not work. Signed-off-by: Yaniv Gardi Reviewed-by: Akinobu Mita Signed-off-by: James Bottomley drivers/scsi/ufs/ufshcd.c | 19 ++++++++++++++++--- drivers/scsi/ufs/ufshcd.h | 21 ++++++++++++++++++++- 2 files changed, 36 insertions(+), 4 deletions(-) commit 69a6582eeb17dc083b2510f1ca2eaa54ff679b49 Author: Richard Fitzgerald Date: Tue Jun 2 11:53:36 2015 +0100 regulator: arizona-ldo1: Do not control DVFS clocking from regulator Using the driver for the internal regulator to also enable/disable the codec internal clock frequency controller is an unexpected side-effect for a regulator, and also means that the core clocks won't be changed as expected if an external regulator is used to power the codec. The DVFS is now handled by the codec driver so can be removed from the LDO1 driver. Signed-off-by: Richard Fitzgerald Signed-off-by: Mark Brown drivers/regulator/arizona-ldo1.c | 5 ----- 1 file changed, 5 deletions(-) commit 2c118b4c277406bbd380c9e4adfdcb4424160546 Author: Richard Fitzgerald Date: Tue Jun 2 11:53:35 2015 +0100 ASoC: arizona: Add DVFS handling for sample rate control The WM8997 and WM5102 codecs need to boost DVFS for higher sample rates. Signed-off-by: Richard Fitzgerald Signed-off-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/arizona.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) commit 81ac58b13f815d7c7838bc347dd5d102707a11b7 Author: Richard Fitzgerald Date: Tue Jun 2 11:53:34 2015 +0100 ASoC: wm_adsp: Move DVFS control into codec driver In theory the ADSP driver should not need to know anything about the codec it is part of. But the WM5102 needs DVFS control based on ADSP clocking speed. This was being handled by bundling part of the knowledge of this into the ADSP driver. This change moves this handling out of the ADSP driver and into the WM5102 driver. Signed-off-by: Richard Fitzgerald Signed-off-by: Mark Brown sound/soc/codecs/wm5102.c | 47 +++++++++++++++++++++++++++-- sound/soc/codecs/wm5110.c | 2 +- sound/soc/codecs/wm_adsp.c | 73 +--------------------------------------------- sound/soc/codecs/wm_adsp.h | 15 +++++----- 4 files changed, 54 insertions(+), 83 deletions(-) commit 346d96836ca4af39dbfe65eceb7db812b1bfe68f Author: Richard Fitzgerald Date: Tue Jun 2 11:53:33 2015 +0100 ASoC: arizona: Export functions to control subsystem DVFS The WM5102 and WM8997 codecs have an internal dynamic clock booster. When this booster is active, the DCVDD voltage must be increased. If all the currently active audio paths can run with the root SYSCLK we can disable the booster, allowing us to turn down DCVDD voltage to save power. Previously this was being done by having the booster enable bit set as a side-effect of the LDO1 regulator driver, which is unexpected behaviour of a regulator and not compatible with using an external regulator. [Originally this was documented as a feature of the internal LDO -- broonie] This patch exports functions to handle the booster enable and DCVDD voltage, with each relevant subsystem flagging whether it can currently run without the booster. Note that these subsystems are stateless and none of them are nestable, so there's no need for reference counting, we only need a simple boolean for each subsystem of whether their current condition could require the booster or will allow us to turn the codec down to lower operating power. Signed-off-by: Richard Fitzgerald Signed-off-by: Mark Brown sound/soc/codecs/arizona.c | 128 +++++++++++++++++++++++++++++++++++++++++++++ sound/soc/codecs/arizona.h | 13 +++++ sound/soc/codecs/wm5102.c | 12 +++-- sound/soc/codecs/wm8997.c | 11 ++-- 4 files changed, 157 insertions(+), 7 deletions(-) commit b601b58785d1440236a4180b1e3ec7bc7c1e5664 Merge: c38a1ff 10337b0 Author: Mark Brown Date: Tue Jun 2 21:06:04 2015 +0100 Merge branch 'topic/adsp' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-arizona commit 7043f5fb20b564f547d187f58725dbe75b942535 Author: dashsriram Date: Wed May 27 00:55:13 2015 +0530 regmap: irq: Fixed a typo error Fixed a typo error in the file Signed-off-by: Sriram Dash Signed-off-by: Mark Brown drivers/base/regmap/regmap-irq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit df905ceae3883f024282d00824ce33040097ac86 Merge: 41d3b5e 6598dad Author: David S. Miller Date: Tue Jun 2 12:57:39 2015 -0700 Merge branch 'sfc-next' Shradha Shah says: ==================== sfc: ndo_get_phys_port_id, vadaptor stats and PF unload when Vf's assigned to guest This is the third and last instalment of SRIOV for EF10 patches. This patch set includes implementation of ndo_get_phys_port_id and changes to the MAC statistics code in order to support vadaptor statistics. It also includes code to deal with PF unload when Vf's are still assigned to the guest. The first couple of patches create sysfs files for physical port and link control flags which are particularly useful when we have enabled a large number of VF's. These patches have been tested with and without CONFIG_SFC_SRIOV. The creation and content of the sysfs files has been tested. The statistics are tested using ethtool for monitoring. ==================== Signed-off-by: David S. Miller commit 6598dad26b7fa39003e4de85d68c584666d5bc21 Author: Daniel Pieczko Date: Tue Jun 2 11:41:00 2015 +0100 sfc: leak vports if a VF is assigned during PF unload If any VF is assigned as the PF is unloaded, do not attempt to remove its vport or the vswitch. These will be removed if the driver binds to the PF again, as an entity reset occurs during probe. A 'force' flag is added to efx_ef10_pci_sriov_disable() to distinguish between disabling SR-IOV and driver unload. SR-IOV cannot be disabled if VFs are assigned to guests. If the PF driver is unloaded while VFs are assigned, the driver may try to bind to the VF again at a later point if the driver has been reloaded and the VF returns to the same domain as the PF. In this case, the PF will not have a VF data structure, so the VF can check this and drop out of probe early. In this case, efx->vf_count will be zero but VFs will be present. The user is advised to remove the VF and re-create it. The check at the beginning of efx_ef10_pci_sriov_disable() that efx->vf_count is non-zero is removed to allow SR-IOV to be disabled in this case. Also, if the PF driver is unloaded, it will disable SR-IOV to remove these unknown VFs. By not disabling bus-mastering if VFs are still assigned, the VF will continue to pass traffic after the PF has been removed. When using the max_vfs module parameter, if VFs are already present do not try to initialise any more. Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10.c | 20 ++++++++++++++++++++ drivers/net/ethernet/sfc/ef10_sriov.c | 35 ++++++++++++++++++++++++----------- drivers/net/ethernet/sfc/ef10_sriov.h | 2 ++ drivers/net/ethernet/sfc/efx.c | 4 +++- 4 files changed, 49 insertions(+), 12 deletions(-) commit 2a3fc3112275e93df2e7e09b37b002ffddfd4ba1 Author: Daniel Pieczko Date: Tue Jun 2 11:40:46 2015 +0100 sfc: force removal of VF and vport on driver removal When the driver unloads, force the unbind and removal of any VFs in the host with the PF. The PF cannot remove vports and vswitches if they are still being used by a VF driver, and when unloading the sfc driver the removal order is not guaranteed, so the instruction from the PF to the VF to unbind enforces a suitable ordering so that vswitches and vports can be removed. As a result of this, manually unbinding the driver from a single PF will result in all of its VFs in the host also being removed. Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10_sriov.c | 9 +++++++++ drivers/net/ethernet/sfc/efx.c | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) commit 71158bf2e748e2710616f59a823619af3c5505a7 Author: Daniel Pieczko Date: Tue Jun 2 11:40:31 2015 +0100 sfc: do not allow VFs to be destroyed if assigned to guests Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10_sriov.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit f00bf2305cabc2313c70575384aee60e8f2a684d Author: Daniel Pieczko Date: Tue Jun 2 11:40:18 2015 +0100 sfc: don't update stats on VF when called in atomic context The ifenslave command to set up a bond runs in an atomic context, and it queries the stats on the devices that are being enslaved. A VF needs to make an MCDI call to update its stats, which is not allowed in atomic context. The releasing of the stats_lock is moved to the beginning of the VF stats update function so that in_interrupt() can be used; it must be taken again before returning from this function. Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) commit d94619cdfc561eee18e2d40ab6563e3f2f072fdd Author: Daniel Pieczko Date: Tue Jun 2 11:40:05 2015 +0100 sfc: suppress vadaptor stats when EVB is not present The raw_mask array is not initialised, so it needs to be explicitly set to zero in the 'else' branch. If the EVB capability is not present, a port cannot have multiple functions so the per-port MAC stats are correct and should match the corresponding vadaptor stats, so this redundancy can be removed from the ethtool stats output. Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10.c | 12 +++++++++--- drivers/net/ethernet/sfc/mcdi_pcol.h | 2 ++ 2 files changed, 11 insertions(+), 3 deletions(-) commit 6dd4859b281700a163caec8ae7826c2558290127 Author: Daniel Pieczko Date: Tue Jun 2 11:39:49 2015 +0100 sfc: suppress ENOENT error messages from MC_CMD_MAC_STATS MC_CMD_MAC_STATS can be called on a function before a vadaptor has been created, as the kernel can call into this through ndo_get_stats/ndo_get_stats64. If MC_CMD_MAC_STATS is called before the DMA queues have been setup, so that a vadaptor has not been created yet, firmware will return ENOENT. This is expected, so suppress the MCDI error message in this case. Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10.c | 11 ++++++++--- drivers/net/ethernet/sfc/mcdi_port.c | 8 ++++++-- 2 files changed, 14 insertions(+), 5 deletions(-) commit 0fc95fca5a95170a3615557218d98b6dff52ad36 Author: Daniel Pieczko Date: Tue Jun 2 11:39:33 2015 +0100 sfc: update netdevice statistics to use vadaptor stats The netdevice statistics (in /proc/net/dev) are per-function stats so they must use the vadaptor stats. Change the use of MAC stats to vadaptor stats, and remove any statistics that can only be measured per-port. All stats that are removed will be shown as zeroes when these statistics are displayed. Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10.c | 41 ++++++++++++++++++++++------------------- 1 file changed, 22 insertions(+), 19 deletions(-) commit d778819609a27efd5358da8151a0ad3507243e19 Author: Daniel Pieczko Date: Tue Jun 2 11:39:20 2015 +0100 sfc: DMA the VF stats only when requested Firmware does not support a periodic DMA of vadaptor-stats on VFs, so only update the stats buffer when stats are requested (when running "ethtool -S" or an ip/ifconfig command that reports stats). Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10.c | 149 +++++++++++++++++++++++++---------- drivers/net/ethernet/sfc/mcdi_pcol.h | 4 +- 2 files changed, 112 insertions(+), 41 deletions(-) commit 3c36a2aded8c9ef06bd09183bd6905f6b55f9886 Author: Daniel Pieczko Date: Tue Jun 2 11:39:06 2015 +0100 sfc: display vadaptor statistics for all interfaces All interfaces will display vadaptor statistics, so set all the relevant bits in the stats bitmask. Only functions with the LINKCTRL flag will see other stats, including (per-port) MAC stats. The vadaptor stats are from rx_unicast to tx_overflow. Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10.c | 39 ++++++++++++++++++++++++++++++++---- drivers/net/ethernet/sfc/mcdi_pcol.h | 20 ++++++++++++++++++ drivers/net/ethernet/sfc/nic.h | 18 +++++++++++++++++ 3 files changed, 73 insertions(+), 4 deletions(-) commit 0a2ab4d988d75a42f3997343d1f0a767b9fdec3d Author: Daniel Pieczko Date: Tue Jun 2 11:38:49 2015 +0100 sfc: set the port-id when calling MC_CMD_MAC_STATS The port-id must be known so that the RMON level can be set for the collection of vadapter stats. Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/mcdi_port.c | 2 ++ 1 file changed, 2 insertions(+) commit e80ca0139929a37a8d2b7fc90625aa5107066f57 Author: Daniel Pieczko Date: Tue Jun 2 11:38:34 2015 +0100 sfc: add "port_" prefix to MAC stats The MAC stats are per-port and will only be displayed on the PF with control of the link (one per physical port). Vadapter stats will also be displayed for this PF, so distinguish the MAC stats by adding a prefix of "port_". Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10.c | 251 ++++++++++++++++++----------------- drivers/net/ethernet/sfc/mcdi_pcol.h | 4 +- drivers/net/ethernet/sfc/nic.h | 106 +++++++-------- 3 files changed, 182 insertions(+), 179 deletions(-) commit 1d051e009851334899e2041c3d8dcde36e2db1c2 Author: Shradha Shah Date: Tue Jun 2 11:38:16 2015 +0100 sfc: Implement ndo_gets_phys_port_id() for EF10 VFs Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10.c | 11 +++++++++++ drivers/net/ethernet/sfc/ef10_sriov.c | 14 ++++++++++++++ drivers/net/ethernet/sfc/ef10_sriov.h | 3 +++ drivers/net/ethernet/sfc/efx.c | 1 + drivers/net/ethernet/sfc/net_driver.h | 2 ++ drivers/net/ethernet/sfc/nic.h | 1 + drivers/net/ethernet/sfc/sriov.c | 11 +++++++++++ drivers/net/ethernet/sfc/sriov.h | 2 ++ 8 files changed, 45 insertions(+) commit 0f5c0845882745bc5fde9dbbf553926435efe887 Author: Shradha Shah Date: Tue Jun 2 11:37:58 2015 +0100 sfc: Add sysfs entry for flags (link control and primary) On every adapter there will be one primary PF per adaptor and one link control PF per port. Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10.c | 58 ++++++++++++++++++++++++++++++++++++----- 1 file changed, 51 insertions(+), 7 deletions(-) commit c9012e002b643790eb0311744cdf13e489397327 Author: Shradha Shah Date: Tue Jun 2 11:37:41 2015 +0100 sfc: Add paranthesis correctly on all branches of the if statement This change is a stylistic change and does not affect functionality. Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 8be41320f346ee8bdcbbc866fcc8c4fdbcb6527d Author: Shradha Shah Date: Tue Jun 2 11:37:25 2015 +0100 sfc: Add code to export port_num in netdev->dev_port In the case where we have multiple functions (PFs and VFs), this sysfs entry is useful to identify the physical port corresponding to the function we are interested in. Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10.c | 2 ++ 1 file changed, 2 insertions(+) commit 6cc8ae94813dffe7ff5ba88da0fe25a697e3e8a3 Author: Arnd Bergmann Date: Fri May 22 16:54:17 2015 +0100 ASoC: qcom: fix STORM board Kconfig This patch is a fixup to correct dependencies in patch 9bae4880acee ("ASoC: qcom: move ipq806x specific bits out of lpass driver.") Originally this change-set was suggested by Arnd on mailing list. Signed-off-by: Arnd Bergmann Signed-off-by: Srinivas Kandagatla Signed-off-by: Mark Brown sound/soc/qcom/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 41d3b5efe9a81aa93267533f9475b0948c0e6e0b Merge: dda922c 86ace69 Author: David S. Miller Date: Tue Jun 2 12:49:39 2015 -0700 Merge branch 'thunderx-next' Aleksey Makarov says: ==================== net: thunderx: fix problems reported by static check tools These are fixes for the problems that were reported by static check tools. ==================== Signed-off-by: David S. Miller commit 86ace693bb5ba54015e88bb637452d2d84f446a4 Author: Aleksey Makarov Date: Tue Jun 2 11:00:27 2015 -0700 net: thunderx: use GFP_KERNEL in thread context GFP_KERNEL should be used in the thread context Signed-off-by: Aleksey Makarov Signed-off-by: David S. Miller drivers/net/ethernet/cavium/thunder/nicvf_queues.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fa1a6c93afbf774d87c04f03e30cf55dc1128906 Author: Aleksey Makarov Date: Tue Jun 2 11:00:26 2015 -0700 net: thunderx: check if memory allocation was successful This fixes a coccinelle warning: coccinelle warnings: (new ones prefixed by >>) >> drivers/net/ethernet/cavium/thunder/nicvf_queues.c:360:1-11: alloc >> with no test, possible model on line 367 vim +360 drivers/net/ethernet/cavium/thunder/nicvf_queues.c 354 err = nicvf_alloc_q_desc_mem(nic, &sq->dmem, q_len, SND_QUEUE_DESC_SIZE, 355 NICVF_SQ_BASE_ALIGN_BYTES); 356 if (err) 357 return err; 358 359 sq->desc = sq->dmem.base; > 360 sq->skbuff = kcalloc(q_len, sizeof(u64), GFP_ATOMIC); 361 sq->head = 0; 362 sq->tail = 0; 363 atomic_set(&sq->free_cnt, q_len - 1); 364 sq->thresh = SND_QUEUE_THRESH; 365 366 /* Preallocate memory for TSO segment's header */ > 367 sq->tso_hdrs = dma_alloc_coherent(&nic->pdev->dev, 368 q_len * TSO_HEADER_SIZE, 369 &sq->tso_hdrs_phys, GFP_KERNEL); 370 if (!sq->tso_hdrs) Reported-by: kbuild test robot Signed-off-by: Aleksey Makarov Signed-off-by: David S. Miller drivers/net/ethernet/cavium/thunder/nicvf_queues.c | 2 ++ 1 file changed, 2 insertions(+) commit 39a0dd0b5e21ce93212a1dd026abb227c92e7651 Author: Aleksey Makarov Date: Tue Jun 2 11:00:25 2015 -0700 net: thunderx: remove unneeded type conversions No need to cast void* to u8*: pointer arithmetics works same way for both. Signed-off-by: Aleksey Makarov Signed-off-by: David S. Miller drivers/net/ethernet/cavium/thunder/nicvf_queues.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 89987844681757f68dd16b96c4d1d0cc1039183c Author: Aleksey Makarov Date: Tue Jun 2 11:00:24 2015 -0700 net: thunderx: fix nicvf_set_rxfh() This fixes a copypaste bug that was discovered by a static analysis tool: The patch 4863dea3fab0: "net: Adding support for Cavium ThunderX network controller" from May 26, 2015, leads to the following static checker warning: drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c:517 nicvf_set_rxfh() warn: we tested 'hkey' before and it was 'false' drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c 506 /* We do not allow change in unsupported parameters */ 507 if (hkey || ^^^^ We return here. 508 (hfunc != ETH_RSS_HASH_NO_CHANGE && hfunc != ETH_RSS_HASH_TOP)) 509 return -EOPNOTSUPP; 510 511 rss->enable = true; 512 if (indir) { 513 for (idx = 0; idx < rss->rss_size; idx++) 514 rss->ind_tbl[idx] = indir[idx]; 515 } 516 517 if (hkey) { ^^^^ So this is dead code. 518 memcpy(rss->key, hkey, RSS_HASH_KEY_SIZE * sizeof(u64)); 519 nicvf_set_rss_key(nic); 520 } 521 522 nicvf_config_rss(nic); 523 return 0; 524 } regards, dan carpenter Reported-by: Dan Carpenter Signed-off-by: Aleksey Makarov Signed-off-by: David S. Miller drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit fd7ec06254b174b1a8170cca66ec35fea299b151 Author: Aleksey Makarov Date: Tue Jun 2 11:00:23 2015 -0700 net: thunderx: add static This fixes sparse messages like this: drivers/net/ethernet/cavium/thunder/nicvf_main.c:1141:26: sparse: symbol 'nicvf_get_stats64' was not declared. Should it be static? Also remove unused declarations Reported-by: kbuild test robot Signed-off-by: Aleksey Makarov Signed-off-by: David S. Miller drivers/net/ethernet/cavium/thunder/nic.h | 2 -- drivers/net/ethernet/cavium/thunder/nicvf_main.c | 28 ++++++++++------------ drivers/net/ethernet/cavium/thunder/nicvf_queues.c | 2 +- drivers/net/ethernet/cavium/thunder/thunder_bgx.c | 6 ++--- 4 files changed, 16 insertions(+), 22 deletions(-) commit 0c886a1dd7a753e423a6577fc0507763d1b5c46f Author: Aleksey Makarov Date: Tue Jun 2 11:00:22 2015 -0700 net: thunderx: delete unused variables They were left from development stage Reported-by: kbuild test robot Signed-off-by: Aleksey Makarov Signed-off-by: David S. Miller drivers/net/ethernet/cavium/thunder/thunder_bgx.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e610cb32b4205c921e26fc8c7e43af7ae3543148 Author: Aleksey Makarov Date: Tue Jun 2 11:00:21 2015 -0700 net: thunderx: rework mac address handling This fixes sparse message: drivers/net/ethernet/cavium/thunder/nicvf_main.c:385:40: sparse: cast to restricted __le64 Reported-by: kbuild test robot Signed-off-by: Aleksey Makarov Signed-off-by: David S. Miller drivers/net/ethernet/cavium/thunder/nic.h | 4 ++-- drivers/net/ethernet/cavium/thunder/nic_main.c | 8 +------- drivers/net/ethernet/cavium/thunder/nicvf_main.c | 8 ++------ drivers/net/ethernet/cavium/thunder/thunder_bgx.c | 4 ++-- drivers/net/ethernet/cavium/thunder/thunder_bgx.h | 4 ++-- 5 files changed, 9 insertions(+), 19 deletions(-) commit 2cd2a196af20784b9f0a464d0f336de01a074a8c Author: Aleksey Makarov Date: Tue Jun 2 11:00:20 2015 -0700 net: thunderx: introduce a function for mailbox access This fixes sparse message: drivers/net/ethernet/cavium/thunder/nicvf_main.c:153:25: sparse: cast to restricted __le64 Reported-by: kbuild test robot Signed-off-by: Aleksey Makarov Signed-off-by: David S. Miller drivers/net/ethernet/cavium/thunder/nicvf_main.c | 27 +++++++++++++++--------- 1 file changed, 17 insertions(+), 10 deletions(-) commit 4a4f87d8ca2e26c224569405e24282f521af9329 Author: Aleksey Makarov Date: Tue Jun 2 11:00:19 2015 -0700 net: thunderx: fix constants This fixes sparse messages like this: drivers/net/ethernet/cavium/thunder/thunder_bgx.c:897:24: sparse: constant 0x300000000000 is so big it is long Reported-by: kbuild test robot Signed-off-by: Aleksey Makarov Signed-off-by: David S. Miller drivers/net/ethernet/cavium/thunder/nicvf_main.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit d768b678a8d9c572ad3c2c6ba71d9e7029b867a2 Author: Robert Richter Date: Tue Jun 2 11:00:18 2015 -0700 net: thunderx: Cleanup duplicate NODE_ID macros, add nic_get_node_id() There are duplicate NODE_ID macro definitions. Move all of them to nic.h for usage in nic and bgx driver and introduce nic_get_node_id() helper function. This patch also fixes 64bit mask which should have been ULL by reworking the node calculation. Signed-off-by: Robert Richter Signed-off-by: David S. Miller drivers/net/ethernet/cavium/thunder/nic.h | 10 ++++++++++ drivers/net/ethernet/cavium/thunder/nic_main.c | 4 +--- drivers/net/ethernet/cavium/thunder/thunder_bgx.c | 4 ++-- drivers/net/ethernet/cavium/thunder/thunder_bgx.h | 3 --- 4 files changed, 13 insertions(+), 8 deletions(-) commit 859c34bd3cabfc79106f9fcb5c55fb4af3eb3ce2 Author: Subhransu S. Prusty Date: Tue May 19 15:00:40 2015 +0530 ASoC: Intel: Allocate for the mailbox with max size Signed-off-by: Subhransu S. Prusty Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/common/sst-ipc.c | 29 ++++++++++++++++++++++++++++- sound/soc/intel/common/sst-ipc.h | 4 ++-- 2 files changed, 30 insertions(+), 3 deletions(-) commit e0e6f74801e1d027fa172d47b3e2515027f4728e Author: Steffen Trumtrar Date: Fri May 29 14:33:03 2015 +0000 ARM: socfpga: socrates: add gpio-leds The SOCrates has three HPS LEDs that can be turned on/off via gpio. Use the first one has heartbeat and add the other two as free LEDs. Signed-off-by: Steffen Trumtrar Signed-off-by: Dinh Nguyen arch/arm/boot/dts/socfpga_cyclone5_socrates.dts | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) commit 81638f1b9f9990b036c63bf20515779a7f41dc6f Author: Steffen Trumtrar Date: Fri May 29 14:33:02 2015 +0000 ARM: socfpga: socrates: enable gpio0/1 Enable the gpio0+1 controller. Signed-off-by: Steffen Trumtrar Signed-off-by: Dinh Nguyen arch/arm/boot/dts/socfpga_cyclone5_socrates.dts | 8 ++++++++ 1 file changed, 8 insertions(+) commit 4c060b89c1af20b3a9d6393072ac85b4a3ccc300 Author: Alan Tull Date: Tue Jun 2 18:35:39 2015 +0000 ARM: socfpga: dts: add sdram controller dt binding doc Add binding doc for Altera SOCFPGA SDRAM controller. Signed-off-by: Alan Tull Signed-off-by: Dinh Nguyen .../bindings/arm/altera/socfpga-sdram-controller.txt | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit ebbce1bbc4f25c0ca68f66df54ea5e8eefa90da5 Author: Dinh Nguyen Date: Fri May 22 23:00:10 2015 -0500 ARM: socfpga: dts: add enable-method property for cpu nodes Add the enable-method property for the cpu node on socfpga.dtsi and socfpga_arria10.dtsi. This is for CPU_METHOD_OF_DECLARE to use to enable the secondary core. Signed-off-by: Dinh Nguyen arch/arm/boot/dts/socfpga.dtsi | 1 + arch/arm/boot/dts/socfpga_arria10.dtsi | 1 + 2 files changed, 2 insertions(+) commit 479f8df04c4b7b1dd53b8c2e5b157b678c8a319c Author: Dinh Nguyen Date: Thu May 14 09:49:14 2015 -0500 ARM: socfpga: dts: add the a9-scu node for arria10 Add a dts node for the A9 SCU on the Arria10 platform. Signed-off-by: Dinh Nguyen arch/arm/boot/dts/socfpga_arria10.dtsi | 5 +++++ 1 file changed, 5 insertions(+) commit bcd56fe1aa97117f8cfad68280d9aa6d403fd815 Author: Heiko Stübner Date: Tue Jun 2 16:48:50 2015 +0200 power: reset: gpio-restart: increase priority slightly gpio-restart uses a priority of 128 and currently most soc-level restart mechanisms use the same - with some exceptions even using 192. But while the soc-level restarts are provided by the soc itself, gpio-restarts will most of the time be board-specfic and be used when some special board condition makes the soc-level restart only a second choice. The problem at hand manifested itself on the rk3288-veyron devices. While the soc-level restart can sucessfully restart all other rockchip boards I have, the veyron devices use an external restart mechanism that seems to not only reset the soc but also some external needed components. With both restart handlers having priority 128 in my tests the soc-specific variant took precedent in all cases. While it could restart the soc sucessfully in all cases, firmware then got an issue when talking to an external component, resulting in the device being put into recovery mode. So, give the board-specific restart handler a slight push and move it to priority 129 to make it more important than the generic soc-specific restart-handler. Signed-off-by: Heiko Stuebner Reviewed-by: Guenter Roeck Signed-off-by: Sebastian Reichel drivers/power/reset/gpio-restart.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 23fa43a28d00bca79b28e145a34c0c7dcafd72bc Author: Laurentiu Palcu Date: Tue Jun 2 13:36:51 2015 +0300 power_supply: bq25890: make chip_id int Smatch static checker correctly detected an impossible condition because chip_id was declared as u8, instead of int: drivers/power/bq25890_charger.c:843 bq25890_probe() warn: impossible condition '(bq->chip_id < 0) => (0-255 < 0)' Also, while at it, fix the return value too. Signed-off-by: Laurentiu Palcu Reported-by: Dan Carpenter Reviewed-by: Krzysztof Kozlowski Signed-off-by: Sebastian Reichel drivers/power/bq25890_charger.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c0d77c884461fc0dec0411e49797dc3f3651c31b Author: Rafal Krypa Date: Tue Jun 2 11:23:48 2015 +0200 Smack: allow multiple labels in onlycap Smack onlycap allows limiting of CAP_MAC_ADMIN and CAP_MAC_OVERRIDE to processes running with the configured label. But having single privileged label is not enough in some real use cases. On a complex system like Tizen, there maybe few programs that need to configure Smack policy in run-time and running them all with a single label is not always practical. This patch extends onlycap feature for multiple labels. They are configured in the same smackfs "onlycap" interface, separated by spaces. Signed-off-by: Rafal Krypa Documentation/security/Smack.txt | 6 +- security/smack/smack.h | 25 +++--- security/smack/smack_access.c | 41 ++++++++++ security/smack/smackfs.c | 163 ++++++++++++++++++++++++++------------- 4 files changed, 163 insertions(+), 72 deletions(-) commit 01fa8474fba7e80f6a2ac31d0790385a993cb7ba Author: Rafal Krypa Date: Thu May 21 18:24:31 2015 +0200 Smack: fix seq operations in smackfs Use proper RCU functions and read locking in smackfs seq_operations. Smack gets away with not using proper RCU functions in smackfs, because it never removes entries from these lists. But now one list will be needed (with interface in smackfs) that will have both elements added and removed to it. This change will also help any future changes implementing removal of unneeded entries from other Smack lists. The patch also fixes handling of pos argument in smk_seq_start and smk_seq_next. This fixes a bug in case when smackfs is read with a small buffer: Kernel panic - not syncing: Kernel mode fault at addr 0xfa0000011b CPU: 0 PID: 1292 Comm: dd Not tainted 4.1.0-rc1-00012-g98179b8 #13 Stack: 00000003 0000000d 7ff39e48 7f69fd00 7ff39ce0 601ae4b0 7ff39d50 600e587b 00000010 6039f690 7f69fd40 00612003 Call Trace: [<601ae4b0>] load2_seq_show+0x19/0x1d [<600e587b>] seq_read+0x168/0x331 [<600c5943>] __vfs_read+0x21/0x101 [<601a595e>] ? security_file_permission+0xf8/0x105 [<600c5ec6>] ? rw_verify_area+0x86/0xe2 [<600c5fc3>] vfs_read+0xa1/0x14c [<600c68e2>] SyS_read+0x57/0xa0 [<6001da60>] handle_syscall+0x60/0x80 [<6003087d>] userspace+0x442/0x548 [<6001aa77>] ? interrupt_end+0x0/0x80 [<6001daae>] ? copy_chunk_to_user+0x0/0x2b [<6002cb6b>] ? save_registers+0x1f/0x39 [<60032ef7>] ? arch_prctl+0xf5/0x170 [<6001a92d>] fork_handler+0x85/0x87 Signed-off-by: Rafal Krypa security/smack/smackfs.c | 52 ++++++++++++++++++++---------------------------- 1 file changed, 22 insertions(+), 30 deletions(-) commit c526a467671960922b5cb5fc385a1813602526bc Author: Johannes Berg Date: Tue Jun 2 20:32:00 2015 +0200 mac80211: rename single hw-scan flag to follow naming convention The naming convention is to always have the flags prefixed with IEEE80211_HW_ so they're 'namespaced', make this flag follow it. Signed-off-by: Johannes Berg drivers/net/wireless/iwlwifi/mvm/mac80211.c | 2 +- include/net/mac80211.h | 4 ++-- net/mac80211/scan.c | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) commit ea1b2b45f513c6f9ee49b465b1a9281feb783532 Author: Johannes Berg Date: Tue Jun 2 20:15:49 2015 +0200 mac80211: remove short slot/short preamble incapable flags There are no drivers setting IEEE80211_HW_2GHZ_SHORT_SLOT_INCAPABLE or IEEE80211_HW_2GHZ_SHORT_PREAMBLE_INCAPABLE, so any code using the two flags is dead; it's also exceedingly unlikely that any new driver could ever need to set these flags. The wcn36xx code is almost certainly broken, but this preserves the previous behaviour. Signed-off-by: Johannes Berg drivers/net/wireless/ath/wcn36xx/smd.c | 4 +--- include/net/mac80211.h | 17 ++--------------- net/mac80211/debugfs.c | 7 ------- net/mac80211/mesh_plink.c | 4 +--- net/mac80211/mlme.c | 6 ++---- net/mac80211/tdls.c | 17 +++++------------ 6 files changed, 11 insertions(+), 44 deletions(-) commit 37fbe0a4a0a9afe3b0fe843a4775a85ccf430deb Author: Wang Nan Date: Mon Jun 1 07:37:47 2015 +0000 perf tools: Move linux/kernel.h to tools/include This patch moves kernel.h from tools/perf/util/include/linux/kernel.h to tools/include/linux/kernel.h to enable other libraries use macros in it, like libbpf which will be introduced by further patches. MANIFEST is also updated for 'make perf-*-src-pkg'. Signed-off-by: Wang Nan Acked-by: Alexei Starovoitov Cc: Brendan Gregg Cc: Daniel Borkmann Cc: David Ahern Cc: He Kuang Cc: Jiri Olsa Cc: Kaixu Xia Cc: Masami Hiramatsu Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1433144296-74992-2-git-send-email-wangnan0@huawei.com [ Fixed up the ifdef guard to match other entries in tools/include/linux ] Signed-off-by: Arnaldo Carvalho de Melo tools/include/linux/kernel.h | 107 +++++++++++++++++++++++++++++++++ tools/perf/MANIFEST | 1 + tools/perf/util/include/linux/kernel.h | 107 --------------------------------- 3 files changed, 108 insertions(+), 107 deletions(-) commit 0443f36b0de026143a78c858aac773572f7dd5db Author: Arnaldo Carvalho de Melo Date: Tue Jun 2 11:28:13 2015 -0300 perf machine: Fix the search for the kernel DSO on the unified list When unifying the user_dsos and kernel_dsos a bug was introduced by inverting the check for dso->kernel, fix it. Fixes: 3d39ac538629 ("perf machine: No need to have two DSOs lists") Cc: Adrian Hunter Cc: David Ahern Cc: Jiri Olsa Cc: Namhyung Kim Link: http://lkml.kernel.org/n/tip-xnrnq0kams3s2z9ek1wjb506@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/machine.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0ee04e91eacd15fa95cd60ccccb513c1a5734916 Author: Ray Jui Date: Thu May 14 15:36:04 2015 -0700 i2c: iproc: Add suspend/resume support Add suspend/resume support to the Broadcom iProc I2C driver Signed-off-by: Ray Jui Reviewed-by: Scott Branden Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-bcm-iproc.c | 57 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) commit 8503ff166504272577e8f4c77d658395e744a2bb Author: Jisheng Zhang Date: Wed May 20 22:33:13 2015 +0800 i2c: designware: Avoid unnecessary resuming during system suspend Commit 1fc2fe204cb9 ("i2c: designware: Add runtime PM hooks") adds runtime pm support using the same ops for system pm and runtime pm. When suspend to ram, the i2c host may have been runtime suspended, thus i2c_dw_disable() hangs. Previously, I fixed this issue by separating ops for system pm and runtime pm, then in the system suspend/resume path, runtime pm apis are used to ensure the device is at correct state. But as Mika Westerberg pointed out: it sounds a bit silly to resume the device just because you want to call i2c_dw_disable() for it before suspending again. He then suggested an elegant solution which keeps the device runtime suspended during system suspend with the help of 'dev->power.direct_complete'. This patch adopted this solution, and in fact Mika provided the main code. Signed-off-by: Jisheng Zhang Acked-by: Mika Westerberg Tested-by: Mika Westerberg Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-designware-platdrv.c | 32 +++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) commit 85919a00e55f90e72405e707eb23c930b8d8db91 Author: Dmitry Tunin Date: Sun May 31 11:26:49 2015 -0700 Input: focaltech - report finger width to userspace Focaltech touchpads report finger width in packet[5] of absolute packet. Range for width in raw format is 0x10 - 0x70. Second half-byte is always 0. 0xff is reported, when a large contact area is detected. This can be handled in userspace. Signed-off-by: Dmitry Tunin Signed-off-by: Dmitry Torokhov drivers/input/mouse/focaltech.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit ffb6e0c9a0572f8e5f8e9337a1b40ac2ec1493a1 Author: Arnd Bergmann Date: Tue May 26 14:45:29 2015 -0700 tty: remove platform_sysrq_reset_seq The platform_sysrq_reset_seq code was intended as a way for an embedded platform to provide its own sysrq sequence at compile time. After over two years, nobody has started using it in an upstream kernel, and the platforms that were interested in it have moved on to devicetree, which can be used to configure the sequence without requiring kernel changes. The method is also incompatible with the way that most architectures build support for multiple platforms into a single kernel. Now the code is producing warnings when built with gcc-5.1: drivers/tty/sysrq.c: In function 'sysrq_init': drivers/tty/sysrq.c:959:33: warning: array subscript is above array bounds [-Warray-bounds] key = platform_sysrq_reset_seq[i]; We could fix this, but it seems unlikely that it will ever be used, so let's just remove the code instead. We still have the option to pass the sequence either in DT, using the kernel command line, or using the /sys/module/sysrq/parameters/reset_seq file. Fixes: 154b7a489a ("Input: sysrq - allow specifying alternate reset sequence") Signed-off-by: Arnd Bergmann Signed-off-by: Dmitry Torokhov drivers/tty/sysrq.c | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) commit 632dda833e28fe43049a01b4bc53e409176e7843 Author: Chuck Lever Date: Mon May 11 14:04:50 2015 -0400 SUNRPC: Clean up bc_send() Clean up: Merge bc_send() into bc_svc_process(). Note: even thought this touches svc.c, it is a client-side change. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust include/linux/sunrpc/bc_xprt.h | 1 - net/sunrpc/Makefile | 2 +- net/sunrpc/bc_svc.c | 63 ------------------------------------------ net/sunrpc/svc.c | 33 ++++++++++++++++------ 4 files changed, 26 insertions(+), 73 deletions(-) commit 1193d58f75faec6ccdaf24cbd3471f5460a0a906 Author: Trond Myklebust Date: Tue Jun 2 11:53:21 2015 -0400 SUNRPC: Backchannel handle socket nospace If the socket was busy due to a socket nospace error, then we should retry the send. Signed-off-by: Trond Myklebust net/sunrpc/clnt.c | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) commit 0ecc4e688b6e33f8314c2b074335e134e0b2c4ae Author: Varka Bhadram Date: Mon Jun 1 14:22:26 2015 +0530 mac802154: add trace functionality for driver ops This patch adds trace events for driver operations. Signed-off-by: Varka Bhadram Acked-by: Alexander Aring Signed-off-by: Marcel Holtmann net/mac802154/Makefile | 4 +- net/mac802154/driver-ops.h | 92 ++++++++++++--- net/mac802154/trace.c | 9 ++ net/mac802154/trace.h | 272 +++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 362 insertions(+), 15 deletions(-) commit 5353f65b859255a07e8bf5c096be4d5d268b46e8 Author: Vladimir Zapolskiy Date: Tue Jun 2 00:57:53 2015 +0300 ASoC: dapm: fix snd_soc_dapm_new_control() implicit declaration The change fixes the following compilation problem: sound/soc/soc-dapm.c: In function 'dapm_kcontrol_data_alloc': sound/soc/soc-dapm.c:388:4: error: implicit declaration of function 'snd_soc_dapm_new_control' [-Werror=implicit-function-declaration] data->widget = snd_soc_dapm_new_control(widget->dapm, ^ sound/soc/soc-dapm.c:387:17: warning: assignment makes pointer from integer without a cast [enabled by default] data->widget = snd_soc_dapm_new_control(widget->dapm, ^ sound/soc/soc-dapm.c: At top level: sound/soc/soc-dapm.c:3269:1: error: conflicting types for 'snd_soc_dapm_new_control' snd_soc_dapm_new_control(struct snd_soc_dapm_context *dapm, ^ In addition to the fix add static qualifier to snd_soc_dapm_new_control() function to silence checkpatch. Fixes: 02aa78abec ("ASoC: DAPM: Add APIs to create individual DAPM controls.") Signed-off-by: Vladimir Zapolskiy Signed-off-by: Mark Brown sound/soc/soc-dapm.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit a650bb3422acb1fc96d7af28dce1ddde2fb8eb86 Author: Fang, Yang A Date: Fri May 29 11:56:11 2015 -0700 ASoC: ts3a227e: use device property api replace of_property_read_u32 with device_property_read_u32 Signed-off-by: Fang, Yang A Signed-off-by: Mark Brown sound/soc/codecs/ts3a227e.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) commit bb13f0e08d16a6a303aab786b2aaf2ca76747cfb Author: Fang, Yang A Date: Fri May 29 11:56:10 2015 -0700 ASoC: max98090: read micbias from device property This patch reads max98090 micbias from acpi or dt Signed-off-by: Fang, Yang A Signed-off-by: Mark Brown Documentation/devicetree/bindings/sound/max98090.txt | 6 ++++++ sound/soc/codecs/max98090.c | 13 ++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) commit 451bb7fbccdc0f5d942227913afa5dea3afd12f7 Author: Arnd Bergmann Date: Mon Jun 1 16:09:35 2015 -0600 EDAC, xgene: Fix cpuid abuse The new x-gene EDAC driver incorrectly tried to figure out the version of one of its IP blocks by looking at the version of the CPU core, which is only vagely related. This removes the incorrect code and instead uses the version of the IP block in the compatible string where it belongs. Found using build testing on x86, which does not provide the arm64 cpuid interface. Signed-off-by: Arnd Bergmann [ Changed subnode to "apm,xgene-edac-pmd-v2", adjusted check. ] Signed-off-by: Loc Ho Cc: devicetree@vger.kernel.org Cc: dougthompson@xmission.com Cc: ijc+devicetree@hellion.org.uk Cc: jcm@redhat.com Cc: linux-arm-kernel@lists.infradead.org Cc: linux-edac Cc: mark.rutland@arm.com Cc: mchehab@osg.samsung.com Cc: patches@apm.com Cc: robh+dt@kernel.org Link: http://lkml.kernel.org/r/3195065.IK73o60xya@wuerfel Signed-off-by: Borislav Petkov .../devicetree/bindings/edac/apm-xgene-edac.txt | 3 +- drivers/edac/xgene_edac.c | 55 ++++------------------ 2 files changed, 10 insertions(+), 48 deletions(-) commit f62185d0e283e9d311e3ac1020f159d95f0aab39 Author: Chao Yu Date: Thu May 28 19:16:57 2015 +0800 f2fs: support FALLOC_FL_INSERT_RANGE FALLOC_FL_INSERT_RANGE flag for ->fallocate was introduced in commit dd46c787788d ("fs: Add support FALLOC_FL_INSERT_RANGE for fallocate"). The effect of FALLOC_FL_INSERT_RANGE command is the opposite of FALLOC_FL_COLLAPSE_RANGE, if this command was performed, all data from offset to EOF in our file will be shifted to right as given length, and then range [offset, offset + length] becomes a hole. This command is useful for our user who wants to add some data in the middle of the file, for example: video/music editor will insert a keyframe in specified position of media file, with this command we can easily create a hole for inserting without removing original data. This patch introduces f2fs_insert_range() to support FALLOC_FL_INSERT_RANGE. Signed-off-by: Chao Yu Signed-off-by: Yuan Zhong Signed-off-by: Jaegeuk Kim fs/f2fs/file.c | 102 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 100 insertions(+), 2 deletions(-) commit 528e34593d6eff11a289ef23452c66175a340f0b Author: Chao Yu Date: Thu May 28 19:15:35 2015 +0800 f2fs: hide common code in f2fs_replace_block This patch clean up codes through: 1.rename f2fs_replace_block to __f2fs_replace_block(). 2.introduce new f2fs_replace_block() to include __f2fs_replace_block() and some common related codes around __f2fs_replace_block(). Then, newly introduced function f2fs_replace_block can be used by following patch. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/f2fs.h | 4 ++-- fs/f2fs/file.c | 12 ++---------- fs/f2fs/recovery.c | 9 ++------- fs/f2fs/segment.c | 18 +++++++++++++++++- 4 files changed, 23 insertions(+), 20 deletions(-) commit 9acdc2af0c0b836183b7f31f630bbed341a7cf4d Author: Ard Biesheuvel Date: Mon Jun 1 13:40:34 2015 +0200 arm64: drop sleep_idmap_phys and clean up cpu_resume() Two cleanups of the asm function cpu_resume(): - The global variable sleep_idmap_phys always points to idmap_pg_dir, so we can just use that value directly in the CPU resume path. - Unclutter the load of sleep_save_sp::save_ptr_stash_phys. Acked-by: Lorenzo Pieralisi Tested-by: Lorenzo Pieralisi Signed-off-by: Ard Biesheuvel Signed-off-by: Catalin Marinas arch/arm64/kernel/sleep.S | 7 ++----- arch/arm64/kernel/suspend.c | 3 --- 2 files changed, 2 insertions(+), 8 deletions(-) commit 5dfe9d7d23c26d029415379630523f141a748c5b Author: Ard Biesheuvel Date: Mon Jun 1 13:40:33 2015 +0200 arm64: reduce ID map to a single page Commit ea8c2e112445 ("arm64: Extend the idmap to the whole kernel image") changed the early page table code so that the entire kernel Image is covered by the identity map. This allows functions that need to enable or disable the MMU to reside anywhere in the kernel Image. However, this change has the unfortunate side effect that the Image cannot cross a physical 512 MB alignment boundary anymore, since the early page table code cannot deal with the Image crossing a /virtual/ 512 MB alignment boundary. So instead, reduce the ID map to a single page, that is populated by the contents of the .idmap.text section. Only three functions reside there at the moment: __enable_mmu(), cpu_resume_mmu() and cpu_reset(). If new code is introduced that needs to manipulate the MMU state, it should be added to this section as well. Reviewed-by: Mark Rutland Tested-by: Mark Rutland Signed-off-by: Ard Biesheuvel Signed-off-by: Catalin Marinas arch/arm64/kernel/head.S | 13 +++++++------ arch/arm64/kernel/sleep.S | 2 ++ arch/arm64/kernel/vmlinux.lds.S | 11 ++++++++++- 3 files changed, 19 insertions(+), 7 deletions(-) commit 9cde2898d04595c3bf24828822b3ea7acff181dd Author: Abhi Das Date: Tue Jun 2 11:03:04 2015 -0500 gfs2: limit quota log messages This patch makes the quota subsystem only report once that a particular user/group has exceeded their allotted quota. Previously, it was possible for a program to continuously try exceeding quota (despite receiving EDQUOT) and in turn trigger gfs2 to issue a kernel log message about quota exceed. In theory, this could get out of hand and flood the log and the filesystem hosting the log files. Signed-off-by: Abhi Das Signed-off-by: Bob Peterson fs/gfs2/incore.h | 1 + fs/gfs2/quota.c | 15 +++++++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) commit 39a725803beeffeb319261df1ab145ef3c1ea0a1 Author: Abhi Das Date: Tue Jun 2 11:02:24 2015 -0500 gfs2: fix quota updates on block boundaries For smaller block sizes (512B, 1K, 2K), some quotas straddle block boundaries such that the usage value is on one block and the rest of the quota is on the previous block. In such cases, the value does not get updated correctly. This patch fixes that by addressing the boundary conditions correctly. This patch also adds a (s64) cast that was missing in a call to gfs2_quota_change() in inode.c Signed-off-by: Abhi Das Signed-off-by: Bob Peterson fs/gfs2/inode.c | 2 +- fs/gfs2/quota.c | 197 +++++++++++++++++++++++++++++++++----------------------- 2 files changed, 119 insertions(+), 80 deletions(-) commit 7e2dc811b4ae70ecfa3c164e3e400a78a3244338 Author: Alexander Sverdlin Date: Wed May 13 11:03:42 2015 +0200 i2c: axxia: Add bus recovery functionality Use recovery framework and implement bus recovery using "Bus Monitor" register. Tests show that shortening SDA to GND results in "completion" timeout with "BUSY" bit still set, so initiate recovery in this case. Signed-off-by: Alexander Sverdlin Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-axxia.c | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) commit 61bd93ce801bb6df36eda257a9d2d16c02863cdd Author: Ard Biesheuvel Date: Mon Jun 1 13:40:32 2015 +0200 arm64: use fixmap region for permanent FDT mapping Currently, the FDT blob needs to be in the same 512 MB region as the kernel, so that it can be mapped into the kernel virtual memory space very early on using a minimal set of statically allocated translation tables. Now that we have early fixmap support, we can relax this restriction, by moving the permanent FDT mapping to the fixmap region instead. This way, the FDT blob may be anywhere in memory. This also moves the vetting of the FDT to mmu.c, since the early init code in head.S does not handle mapping of the FDT anymore. At the same time, fix up some comments in head.S that have gone stale. Reviewed-by: Mark Rutland Tested-by: Mark Rutland Signed-off-by: Ard Biesheuvel Signed-off-by: Catalin Marinas Documentation/arm64/booting.txt | 10 ++++--- arch/arm64/include/asm/boot.h | 14 +++++++++ arch/arm64/include/asm/fixmap.h | 15 ++++++++++ arch/arm64/include/asm/mmu.h | 1 + arch/arm64/kernel/head.S | 39 +----------------------- arch/arm64/kernel/setup.c | 30 +++++++------------ arch/arm64/mm/Makefile | 2 ++ arch/arm64/mm/init.c | 1 - arch/arm64/mm/mmu.c | 66 +++++++++++++++++++++++++++++++++++++++++ 9 files changed, 115 insertions(+), 63 deletions(-) commit 24bbd929e6b9e62afd263c42b4318d3b603c956c Author: Ard Biesheuvel Date: Mon Jun 1 13:40:31 2015 +0200 of/fdt: split off FDT self reservation from memreserve processing This splits off the reservation of the memory occupied by the FDT binary itself from the processing of the memory reservations it contains. This is necessary because the physical address of the FDT, which is needed to perform the reservation, may not be known to the FDT driver core, i.e., it may be mapped outside the linear direct mapping, in which case __pa() returns a bogus value. Cc: Russell King Cc: Benjamin Herrenschmidt Cc: Paul Mackerras Acked-by: Rob Herring Acked-by: Mark Rutland Acked-by: Catalin Marinas Signed-off-by: Ard Biesheuvel Signed-off-by: Catalin Marinas arch/arm/mm/init.c | 1 + arch/arm64/mm/init.c | 1 + arch/powerpc/kernel/prom.c | 1 + drivers/of/fdt.c | 19 ++++++++++++++----- include/linux/of_fdt.h | 2 ++ 5 files changed, 19 insertions(+), 5 deletions(-) commit 7ef85f5fdd081b982d43b95b06272f8646a98818 Author: Jarkko Nikula Date: Wed May 20 16:36:52 2015 +0300 i2c: core: Reduce stack size of acpi_i2c_space_handler() sizeof(struct i2c_client) is 1088 bytes on a CONFIG_X86_64=y build and produces following warning when CONFIG_FRAME_WARN is set to 1024: drivers/i2c/i2c-core.c: In function ‘acpi_i2c_space_handler’: drivers/i2c/i2c-core.c:367:1: warning: the frame size of 1152 bytes is larger than 1024 bytes [-Wframe-larger-than=] This is not critical given that kernel stack is 16 kB on x86_64 but lets reduce the stack usage by allocating the struct i2c_client from the heap. Signed-off-by: Jarkko Nikula Acked-by: Mika Westerberg Signed-off-by: Wolfram Sang drivers/i2c/i2c-core.c | 37 +++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 16 deletions(-) commit d2e73fcceb18570e82cf3f4725b9e4dbd6cb3c31 Author: Jens Axboe Date: Tue Jun 2 09:22:34 2015 -0600 buffer: remove unusued 'ret' variable Merge hickup on my part, due to a clash between the writeback changes and the EOPNOTSUPP removal in _submit_bh(). Signed-off-by: Jens Axboe fs/buffer.c | 1 - 1 file changed, 1 deletion(-) commit 1caf6f476e90f592c2502a82bdef423cf950d011 Author: Alexander Aring Date: Tue Jun 2 15:55:17 2015 +0200 ieee802154: 6lowpan: set ackreq when needed This patch sets the acknowledge request bit inside the 802.15.4 mac header when frame retries is 0 or above. The other frame retries value which is -1 indicates that the transmitter doesn't care about an acknowledge frame which will be ignored after transmitting if the node sends anyway an ack frame after receiving. This is currently unnecessary traffic if the max frame retries parameter is -1. Signed-off-by: Alexander Aring Reviewed-by: Stefan Schmidt Signed-off-by: Marcel Holtmann net/ieee802154/6lowpan/tx.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 45c44b5ff9caa743ed9c2bfd44307c536c9caf1e Author: Brian King Date: Wed May 13 08:50:27 2015 -0500 ipr: Increase default adapter init stage change timeout Increase the default init stage change timeout from 15 seconds to 30 seconds. This resolves issues we have seen with some adapters not transitioning to the first init stage within 15 seconds, which results in adapter initialization failures. Cc: Signed-off-by: Brian King Signed-off-by: James Bottomley drivers/scsi/ipr.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 05545c92db9637318a98d3d59d400beb819decc7 Author: Seymour, Shane M Date: Wed May 6 01:37:20 2015 +0000 st: implement tape statistics This patch implements tape statistics in the st module via sysfs. Current no statistics are available for tape I/O and there is no easy way to reuse the block layer statistics for tape as tape is a character device and does not have perform I/O in sector sized chunks (the size of the data written to tape can change). For tapes we also need extra stats related to things like tape movement (via other I/O). There have been multiple end users requesting statistics including AT&T (and some HP customers who have not given permission to be named). It is impossible for them to investigate any issues related to tape performance in a non-invasive way. [jejb: eliminate PRId64] Signed-off-by: Shane Seymour Tested-by: Shane Seymour Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley Documentation/ABI/testing/sysfs-class-scsi_tape | 109 ++++++++++ Documentation/scsi/st.txt | 59 +++++ drivers/scsi/st.c | 272 +++++++++++++++++++++++- drivers/scsi/st.h | 22 ++ 4 files changed, 461 insertions(+), 1 deletion(-) commit ba929992522b6d1f866b7021bc50da66f8fdd743 Author: Bart Van Assche Date: Fri May 8 10:11:12 2015 +0200 target: Minimize SCSI header #include directives Only include SCSI initiator header files in target code that needs these header files, namely the SCSI pass-through code and the tcm_loop driver. Change SCSI_SENSE_BUFFERSIZE into TRANSPORT_SENSE_BUFFER in target code because the former is intended for initiator code and the latter for target code. With this patch the only initiator include directives in target code that remain are as follows: $ git grep -nHE 'include .scsi/(scsi.h|scsi_host.h|scsi_device.h|scsi_cmnd.h)' drivers/target drivers/infiniband/ulp/{isert,srpt} drivers/usb/gadget/legacy/tcm_*.[ch] drivers/{vhost,xen} include/{target,trace/events/target.h} drivers/target/loopback/tcm_loop.c:29:#include drivers/target/loopback/tcm_loop.c:31:#include drivers/target/loopback/tcm_loop.c:32:#include drivers/target/loopback/tcm_loop.c:33:#include drivers/target/target_core_pscsi.c:39:#include drivers/target/target_core_pscsi.c:40:#include drivers/xen/xen-scsiback.c:52:#include /* SG_ALL */ Signed-off-by: Bart Van Assche Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley Documentation/target/tcm_mod_builder.py | 7 ++----- drivers/infiniband/ulp/srpt/ib_srpt.c | 1 + drivers/infiniband/ulp/srpt/ib_srpt.h | 2 +- drivers/target/iscsi/iscsi_target.c | 2 +- drivers/target/iscsi/iscsi_target_device.c | 1 - drivers/target/iscsi/iscsi_target_tmr.c | 2 +- drivers/target/sbp/sbp_target.c | 2 +- drivers/target/target_core_alua.c | 3 +-- drivers/target/target_core_device.c | 4 ++-- drivers/target/target_core_fabric_lib.c | 2 -- drivers/target/target_core_file.c | 3 +-- drivers/target/target_core_iblock.c | 3 +-- drivers/target/target_core_pr.c | 3 +-- drivers/target/target_core_pscsi.c | 2 -- drivers/target/target_core_pscsi.h | 6 +++--- drivers/target/target_core_rd.c | 3 +-- drivers/target/target_core_sbc.c | 2 +- drivers/target/target_core_spc.c | 3 ++- drivers/target/target_core_stat.c | 3 --- drivers/target/target_core_tmr.c | 2 -- drivers/target/target_core_tpg.c | 3 +-- drivers/target/target_core_transport.c | 4 +--- drivers/target/target_core_ua.c | 3 +-- drivers/target/target_core_user.c | 5 +++-- drivers/target/target_core_xcopy.c | 3 +-- drivers/target/tcm_fc/tfc_cmd.c | 4 ---- drivers/target/tcm_fc/tfc_conf.c | 4 ---- drivers/target/tcm_fc/tfc_io.c | 4 ---- drivers/target/tcm_fc/tfc_sess.c | 4 ---- drivers/usb/gadget/legacy/tcm_usb_gadget.c | 1 - drivers/usb/gadget/legacy/tcm_usb_gadget.h | 1 - drivers/vhost/scsi.c | 3 ++- drivers/xen/xen-scsiback.c | 5 +---- include/target/iscsi/iscsi_target_core.h | 1 - include/target/target_core_base.h | 3 +-- include/trace/events/target.h | 2 +- 36 files changed, 32 insertions(+), 74 deletions(-) commit 8d3a82489107b879f7dc9b5dc6295756a2ac7806 Author: Bart Van Assche Date: Fri May 8 10:08:55 2015 +0200 target: Correct a comment Correct the comment above the definition of TCM_MAX_COMMAND_SIZE. A quote from Christoph: There aren't any legacy issues, we just decided to handle > 16 byte CDBs in the slow path. Signed-off-by: Bart Van Assche Reviewed-by: Christoph Hellwig Reviewed-by: Hannes Reinecke Signed-off-by: James Bottomley include/target/target_core_base.h | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) commit 09cbbf0c169dd81487682622500c81a9012cbeef Merge: be3ef76 d4688bd Author: Thomas Gleixner Date: Tue Jun 2 16:57:47 2015 +0200 Merge branch 'clockevents/4.2' of http://git.linaro.org/people/daniel.lezcano/linux into timers/core Pull clockevents/clocksource changes from Daniel Lezcano: - Removed dead code in the files related to mach-msm for qcom (Stephen Boyd) - Cleaned up code for exynos_mct (Krzysztof Kozlowski) - Added the new timer lpc3220 (Joachim Eastwood) - Added the new timer STM32 and ARM system timer (Maxime Coquelin) commit be3ef76e9d9b97962c70bd6351787d29071ae481 Author: Thomas Gleixner Date: Tue Jun 2 14:30:11 2015 +0200 clockevents: Rename state to state_use_accessors The only sensible way to make abuse of core internal fields obvious and easy to grep for. Signed-off-by: Thomas Gleixner Cc: Viresh Kumar Cc: Peter Zijlstra include/linux/clockchips.h | 14 +++++++------- kernel/time/tick-internal.h | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) commit 4cbb08336f506cde30c0dfb3e49c55a52842fb5c Author: Roger Quadros Date: Tue Jun 2 12:45:11 2015 +0300 ARM: omap2plus_defconfig: Enable TOUCHSCREEN_PIXCIR Some of the OMAP based boards e.g. am437x-gp-evm have the Pixcir touch controller. Enable the related device driver. Signed-off-by: Roger Quadros Signed-off-by: Tony Lindgren arch/arm/configs/omap2plus_defconfig | 1 + 1 file changed, 1 insertion(+) commit 436bbc12452c23b9e7385f3fcabc82fdd387a55a Merge: e260818 a55a744 Author: Tony Lindgren Date: Tue Jun 2 07:42:43 2015 -0700 Merge tag 'for-v4.2/omap-hwmod-a' of git://git.kernel.org/pub/scm/linux/kernel/git/pjw/omap-pending into omap-for-v4.2/soc ARM: OMAP2+: hwmod code and data changes for v4.2 Several OMAP2+ hwmod changes for v4.2. One patch cleans up a nasty interaction between the OMAP GPMC and the hwmod code when debugging is enabled. IP block integration data has been added for the AM43xx EMIF RAM controller. There's also a fix for the omap-aes driver when used in QEMU. And finally, some changes to the OMAP3 hwmod code to support the use of the security IP blocks (AES and SHA) on GP devices, or when they've specifically been enabled in the DT data. Basic build, boot, and power management test results are here: http://www.pwsan.com/omap/testlogs/omap-hwmod-a-for-v4.2/20150601192349/ commit e8a7abf5a5bd302a1e06a3c21a629eaa4cba57d6 Author: Tejun Heo Date: Thu May 28 14:50:57 2015 -0400 writeback: disassociate inodes from dying bdi_writebacks For the purpose of foreign inode detection, wb's (bdi_writeback's) are identified by the associated memcg ID. As we create a separate wb for each memcg, this is enough to identify the active wb's; however, when blkcg is enabled or disabled higher up in the hierarchy, the mapping between memcg and blkcg changes which in turn creates a new wb to service the new mapping. The old wb is unlinked from index and released after all references are drained. The foreign inode detection logic can't detect this condition because both the old and new wb's point to the same memcg and thus never decides to move inodes attached to the old wb to the new one. This patch adds logic to initiate switching immediately in wbc_attach_and_unlock_inode() if the associated wb is dying. We can make the usual foreign detection logic to distinguish the different wb's mapped to the memcg but the dying wb is never gonna be in active service again and there's no point in tracking the usage history and reaching the switch verdict after enough data points are collected. It's already known that the wb has to be switched. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Cc: Wu Fengguang Cc: Greg Thelen Signed-off-by: Jens Axboe fs/fs-writeback.c | 7 +++++++ include/linux/backing-dev-defs.h | 16 ++++++++++++++++ 2 files changed, 23 insertions(+) commit d10c809552659d8a0089062b9d73da6d47e84cbf Author: Tejun Heo Date: Thu May 28 14:50:56 2015 -0400 writeback: implement foreign cgroup inode bdi_writeback switching As concurrent write sharing of an inode is expected to be very rare and memcg only tracks page ownership on first-use basis severely confining the usefulness of such sharing, cgroup writeback tracks ownership per-inode. While the support for concurrent write sharing of an inode is deemed unnecessary, an inode being written to by different cgroups at different points in time is a lot more common, and, more importantly, charging only by first-use can too readily lead to grossly incorrect behaviors (single foreign page can lead to gigabytes of writeback to be incorrectly attributed). To resolve this issue, cgroup writeback detects the majority dirtier of an inode and transfers the ownership to it. The previous patches implemented the foreign condition detection mechanism and laid the groundwork. This patch implements the actual switching. With the previously implemented [unlocked_]inode_to_wb_and_list_lock() and wb stat transaction, grabbing wb->list_lock, inode->i_lock and mapping->tree_lock gives us full exclusion against all wb operations on the target inode. inode_switch_wb_work_fn() grabs all the locks and transfers the inode atomically along with its RECLAIMABLE and WRITEBACK stats. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Cc: Wu Fengguang Cc: Greg Thelen Signed-off-by: Jens Axboe fs/fs-writeback.c | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 84 insertions(+), 2 deletions(-) commit aaa2cacf8184e2a92accb8e443b1608d65f9a13f Author: Tejun Heo Date: Thu May 28 14:50:55 2015 -0400 writeback: add lockdep annotation to inode_to_wb() With the previous three patches, all operations which acquire wb from inode are either under one of inode->i_lock, mapping->tree_lock or wb->list_lock or protected by unlocked_inode_to_wb transaction. This will be depended upon by foreign inode wb switching. This patch adds lockdep assertion to inode_to_wb() so that usages outside the above list locks can be caught easily. There are three exceptions. * locked_inode_to_wb_and_lock_list() is holding wb->list_lock but the wb may not be the inode's. Ensuring that is the function's role after all. Updated to deref inode->i_wb directly. * inode_wb_stat_unlocked_begin() is usually protected by combination of !I_WB_SWITCH and rcu_read_lock(). Updated to deref inode->i_wb directly. * inode_congested() wants to test whether inode->i_wb is set before starting the transaction. Added inode_to_wb_is_valid() which tests inode->i_wb directly. v5: might_lock() removed. It annotates that the lock is grabbed w/ irq enabled which isn't the case and triggering lockdep warning spuriously. v4: might_lock() added to unlocked_inode_to_wb_begin(). v3: inode_congested() conversion added. v2: locked_inode_to_wb_and_lock_list() was missing in the first version. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Cc: Wu Fengguang Cc: Greg Thelen Signed-off-by: Jens Axboe fs/fs-writeback.c | 5 +++-- include/linux/backing-dev.h | 34 ++++++++++++++++++++++++++++++++-- 2 files changed, 35 insertions(+), 4 deletions(-) commit 5cb8b8241e6146c487ca715551ac3a5e80358585 Author: Tejun Heo Date: Thu May 28 14:50:54 2015 -0400 writeback: use unlocked_inode_to_wb transaction in inode_congested() Similar to wb stat updates, inode_congested() accesses the associated wb of an inode locklessly, which will break with foreign inode wb switching. This path updates inode_congested() to use unlocked inode wb access transaction introduced by the previous patch. Combined with the previous two patches, this makes all wb list and access operations to be protected by either of inode->i_lock, wb->list_lock, or mapping->tree_lock while wb switching is in progress. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Cc: Wu Fengguang Cc: Greg Thelen Signed-off-by: Jens Axboe fs/fs-writeback.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) commit 682aa8e1a6a1504a4caaa62e6c2c9daae3757210 Author: Tejun Heo Date: Thu May 28 14:50:53 2015 -0400 writeback: implement unlocked_inode_to_wb transaction and use it for stat updates The mechanism for detecting whether an inode should switch its wb (bdi_writeback) association is now in place. This patch build the framework for the actual switching. This patch adds a new inode flag I_WB_SWITCHING, which has two functions. First, the easy one, it ensures that there's only one switching in progress for a give inode. Second, it's used as a mechanism to synchronize wb stat updates. The two stats, WB_RECLAIMABLE and WB_WRITEBACK, aren't event counters but track the current number of dirty pages and pages under writeback respectively. As such, when an inode is moved from one wb to another, the inode's portion of those stats have to be transferred together; unfortunately, this is a bit tricky as those stat updates are percpu operations which are performed without holding any lock in some places. This patch solves the problem in a similar way as memcg. Each such lockless stat updates are wrapped in transaction surrounded by unlocked_inode_to_wb_begin/end(). During normal operation, they map to rcu_read_lock/unlock(); however, if I_WB_SWITCHING is asserted, mapping->tree_lock is grabbed across the transaction. In turn, the switching path sets I_WB_SWITCHING and waits for a RCU grace period to pass before actually starting to switch, which guarantees that all stat update paths are synchronizing against mapping->tree_lock. This patch still doesn't implement the actual switching. v3: Updated on top of the recent cancel_dirty_page() updates. unlocked_inode_to_wb_begin() now nests inside mem_cgroup_begin_page_stat() to match the locking order. v2: The i_wb access transaction will be used for !stat accesses too. Function names and comments updated accordingly. s/inode_wb_stat_unlocked_{begin|end}/unlocked_inode_to_wb_{begin|end}/ s/switch_wb/switch_wbs/ Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Cc: Wu Fengguang Cc: Greg Thelen Signed-off-by: Jens Axboe fs/fs-writeback.c | 117 +++++++++++++++++++++++++++++++++++++++++--- include/linux/backing-dev.h | 54 ++++++++++++++++++++ include/linux/fs.h | 6 +++ include/linux/mm.h | 3 +- mm/filemap.c | 3 +- mm/page-writeback.c | 27 +++++++--- 6 files changed, 196 insertions(+), 14 deletions(-) commit 87e1d789bf55b12fa7c1cdce024499aee3bc0af0 Author: Tejun Heo Date: Thu May 28 14:50:52 2015 -0400 writeback: implement [locked_]inode_to_wb_and_lock_list() cgroup writeback currently assumes that inode to wb association doesn't change; however, with the planned foreign inode wb switching mechanism, the association will change dynamically. When an inode needs to be put on one of the IO lists of its wb, the current code simply calls inode_to_wb() and locks the returned wb; however, with the planned wb switching, the association may change before locking the wb and may even get released. This patch implements [locked_]inode_to_wb_and_lock_list() which pins the associated wb while holding i_lock, releases it, acquires wb->list_lock and verifies that the association hasn't changed inbetween. As the association will be protected by both locks among other things, this guarantees that the wb is the inode's associated wb until the list_lock is released. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Cc: Wu Fengguang Cc: Greg Thelen Signed-off-by: Jens Axboe fs/fs-writeback.c | 80 +++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 75 insertions(+), 5 deletions(-) commit 2a81490811d0296d390c571bb64eaa93e5ed7def Author: Tejun Heo Date: Thu May 28 14:50:51 2015 -0400 writeback: implement foreign cgroup inode detection As concurrent write sharing of an inode is expected to be very rare and memcg only tracks page ownership on first-use basis severely confining the usefulness of such sharing, cgroup writeback tracks ownership per-inode. While the support for concurrent write sharing of an inode is deemed unnecessary, an inode being written to by different cgroups at different points in time is a lot more common, and, more importantly, charging only by first-use can too readily lead to grossly incorrect behaviors (single foreign page can lead to gigabytes of writeback to be incorrectly attributed). To resolve this issue, cgroup writeback detects the majority dirtier of an inode and will transfer the ownership to it. To avoid unnnecessary oscillation, the detection mechanism keeps track of history and gives out the switch verdict only if the foreign usage pattern is stable over a certain amount of time and/or writeback attempts. The detection mechanism has fairly low space and computation overhead. It adds 8 bytes to struct inode (one int and two u16's) and minimal amount of calculation per IO. The detection mechanism converges to the correct answer usually in several seconds of IO time when there's a clear majority dirtier. Even when there isn't, it can reach an acceptable answer fairly quickly under most circumstances. Please see wb_detach_inode() for more details. This patch only implements detection. Following patches will implement actual switching. v2: wbc_account_io() now checks whether the wbc is associated with a wb before dereferencing it. This can happen when pageout() is writing pages directly without going through the usual writeback path. As pageout() path is single-threaded, we don't want it to be blocked behind a slow cgroup and ultimately want it to delegate actual writing to the usual writeback path. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Cc: Wu Fengguang Cc: Greg Thelen Signed-off-by: Jens Axboe fs/buffer.c | 4 +- fs/fs-writeback.c | 177 +++++++++++++++++++++++++++++++++++++++++++++- fs/mpage.c | 1 + include/linux/fs.h | 5 ++ include/linux/writeback.h | 16 +++++ 5 files changed, 200 insertions(+), 3 deletions(-) commit b16b1deb553adcd7b3b7ce3e6d6fd1b923f314da Author: Tejun Heo Date: Tue Jun 2 08:39:48 2015 -0600 writeback: make writeback_control track the inode being written back Currently, for cgroup writeback, the IO submission paths directly associate the bio's with the blkcg from inode_to_wb_blkcg_css(); however, it'd be necessary to keep more writeback context to implement foreign inode writeback detection. wbc (writeback_control) is the natural fit for the extra context - it persists throughout the writeback of each inode and is passed all the way down to IO submission paths. This patch adds wbc_attach_and_unlock_inode(), wbc_detach_inode(), and wbc_attach_fdatawrite_inode() which are used to associate wbc with the inode being written back. IO submission paths now use wbc_init_bio() instead of directly associating bio's with blkcg themselves. This leaves inode_to_wb_blkcg_css() w/o any user. The function is removed. wbc currently only tracks the associated wb (bdi_writeback). Future patches will add more for foreign inode detection. The association is established under i_lock which will be depended upon when migrating foreign inodes to other wb's. As currently, once established, inode to wb association never changes, going through wbc when initializing bio's doesn't cause any behavior changes. v2: submit_blk_blkcg() now checks whether the wbc is associated with a wb before dereferencing it. This can happen when pageout() is writing pages directly without going through the usual writeback path. As pageout() path is single-threaded, we don't want it to be blocked behind a slow cgroup and ultimately want it to delegate actual writing to the usual writeback path. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Cc: Wu Fengguang Cc: Greg Thelen Signed-off-by: Jens Axboe fs/buffer.c | 25 ++++++++--------- fs/fs-writeback.c | 37 ++++++++++++++++++++++-- fs/mpage.c | 2 +- include/linux/backing-dev.h | 12 -------- include/linux/writeback.h | 68 +++++++++++++++++++++++++++++++++++++++++++++ mm/filemap.c | 2 ++ 6 files changed, 118 insertions(+), 28 deletions(-) commit 21c6321fbb3a3787af07f1bc031d713a707fb69c Author: Tejun Heo Date: Thu May 28 14:50:49 2015 -0400 writeback: relocate wb[_try]_get(), wb_put(), inode_{attach|detach}_wb() Currently, majority of cgroup writeback support including all the above functions are implemented in include/linux/backing-dev.h and mm/backing-dev.c; however, the portion closely related to writeback logic implemented in include/linux/writeback.h and mm/page-writeback.c will expand to support foreign writeback detection and correction. This patch moves wb[_try]_get() and wb_put() to include/linux/backing-dev-defs.h so that they can be used from writeback.h and inode_{attach|detach}_wb() to writeback.h and page-writeback.c. This is pure reorganization and doesn't introduce any functional changes. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Cc: Wu Fengguang Cc: Greg Thelen Signed-off-by: Jens Axboe fs/fs-writeback.c | 31 +++++++++++++++ include/linux/backing-dev-defs.h | 50 ++++++++++++++++++++++++ include/linux/backing-dev.h | 82 ---------------------------------------- include/linux/writeback.h | 46 ++++++++++++++++++++++ mm/backing-dev.c | 30 --------------- 5 files changed, 127 insertions(+), 112 deletions(-) commit d87aef9164a57527f2ac36c226a4e60b20695656 Author: Axel Lin Date: Sun May 31 12:27:38 2015 +0800 regulator: da9063: Fix up irq leak Current code does not set regulators->irq_ldo_lim and regulators->irq_uvov, so it actually calls free_irq(0, regulators) twice in remove() but does not free the irq actually used. Convert to use devm_request_threaded_irq instead and then we don't need to take care the clean up irq so remove irq_ldo_lim and irq_uvov from struct da9063_regulators. Note, regulators->irq_uvov is not used at all in current code. There is a slightly change in this patch, it will return error in probe() if devm_request_threaded_irq fails. If the irq is optional, it should be fine to allow platform_get_irq_byname fails. But current code does not allow platform_get_irq_byname fails. So I think the reason to allow request irq failure is just because the irq leak. Signed-off-by: Axel Lin Signed-off-by: Mark Brown drivers/regulator/da9063-regulator.c | 21 +++------------------ 1 file changed, 3 insertions(+), 18 deletions(-) commit 97c9341f727105c29478da19f1687b0e0a917256 Author: Tejun Heo Date: Fri May 22 18:23:36 2015 -0400 mm: vmscan: disable memcg direct reclaim stalling if cgroup writeback support is in use Because writeback wasn't cgroup aware before, the usual dirty throttling mechanism in balance_dirty_pages() didn't work for processes under memcg limit. The writeback path didn't know how much memory is available or how fast the dirty pages are being written out for a given memcg and balance_dirty_pages() didn't have any measure of IO back pressure for the memcg. To work around the issue, memcg implemented an ad-hoc dirty throttling mechanism in the direct reclaim path by stalling on pages under writeback which are encountered during direct reclaim scan. This is rather ugly and crude - none of the configurability, fairness, or bandwidth-proportional distribution of the normal path. The previous patches implemented proper memcg aware dirty throttling when cgroup writeback is in use making the ad-hoc mechanism unnecessary. This patch disables direct reclaim stalling for such case. Note: I disabled the parts which seemed obvious and it behaves fine while testing but my understanding of this code path is rudimentary and it's quite possible that I got something wrong. Please let me know if I got some wrong or more global_reclaim() sites should be updated. v2: The original patch removed the direct stalling mechanism which breaks legacy hierarchies. Conditionalize instead of removing. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Cc: Wu Fengguang Cc: Greg Thelen Cc: Vladimir Davydov Signed-off-by: Jens Axboe mm/vmscan.c | 51 +++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 41 insertions(+), 10 deletions(-) commit c2aa723a6093633ae4ec15b08a4db276643cab3e Author: Tejun Heo Date: Fri May 22 18:23:35 2015 -0400 writeback: implement memcg writeback domain based throttling While cgroup writeback support now connects memcg and blkcg so that writeback IOs are properly attributed and controlled, the IO back pressure propagation mechanism implemented in balance_dirty_pages() and its subroutines wasn't aware of cgroup writeback. Processes belonging to a memcg may have access to only subset of total memory available in the system and not factoring this into dirty throttling rendered it completely ineffective for processes under memcg limits and memcg ended up building a separate ad-hoc degenerate mechanism directly into vmscan code to limit page dirtying. The previous patches updated balance_dirty_pages() and its subroutines so that they can deal with multiple wb_domain's (writeback domains) and defined per-memcg wb_domain. Processes belonging to a non-root memcg are bound to two wb_domains, global wb_domain and memcg wb_domain, and should be throttled according to IO pressures from both domains. This patch updates dirty throttling code so that it repeats similar calculations for the two domains - the differences between the two are few and minor - and applies the lower of the two sets of resulting constraints. wb_over_bg_thresh(), which controls when background writeback terminates, is also updated to consider both global and memcg wb_domains. It returns true if dirty is over bg_thresh for either domain. This makes the dirty throttling mechanism operational for memcg domains including writeback-bandwidth-proportional dirty page distribution inside them but the ad-hoc memcg throttling mechanism in vmscan is still in place. The next patch will rip it out. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Cc: Wu Fengguang Cc: Greg Thelen Signed-off-by: Jens Axboe include/linux/memcontrol.h | 9 +++ mm/memcontrol.c | 43 ++++++++++++ mm/page-writeback.c | 158 ++++++++++++++++++++++++++++++++++++++------- 3 files changed, 188 insertions(+), 22 deletions(-) commit 2529bb3aadc40a93e642f5f3650f63379a964467 Author: Tejun Heo Date: Fri May 22 18:23:34 2015 -0400 writeback: reset wb_domain->dirty_limit[_tstmp] when memcg domain size changes The amount of available memory to a memcg wb_domain can change as memcg configuration changes. A domain's ->dirty_limit exists to smooth out sudden drops in dirty threshold; however, when a domain's size actually drops significantly, it hinders the dirty throttling from adjusting to the new configuration leading to unexpected behaviors including unnecessary OOM kills. This patch resolves the issue by adding wb_domain_size_changed() which resets ->dirty_limit[_tstmp] and making memcg call it on configuration changes. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Cc: Wu Fengguang Cc: Greg Thelen Signed-off-by: Jens Axboe include/linux/writeback.h | 20 ++++++++++++++++++++ mm/memcontrol.c | 12 ++++++++++++ 2 files changed, 32 insertions(+) commit 841710aa6e4acd066ab9fe8c8cb6f4e4e6709d83 Author: Tejun Heo Date: Fri May 22 18:23:33 2015 -0400 writeback: implement memcg wb_domain Dirtyable memory is distributed to a wb (bdi_writeback) according to the relative bandwidth the wb is writing out in the whole system. This distribution is global - each wb is measured against all other wb's and gets the proportinately sized portion of the memory in the whole system. For cgroup writeback, the amount of dirtyable memory is scoped by memcg and thus each wb would need to be measured and controlled in its memcg. IOW, a wb will belong to two writeback domains - the global and memcg domains. The previous patches laid the groundwork to support the two wb_domains and this patch implements memcg wb_domain. memcg->cgwb_domain is initialized on css online and destroyed on css release, wb->memcg_completions is added, and __wb_writeout_inc() is updated to increment completions against both global and memcg wb_domains. The following patches will update balance_dirty_pages() and its subroutines to actually consider memcg wb_domain for throttling. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Cc: Wu Fengguang Cc: Greg Thelen Signed-off-by: Jens Axboe include/linux/backing-dev-defs.h | 1 + include/linux/memcontrol.h | 12 +++++++++++- include/linux/writeback.h | 3 +++ mm/backing-dev.c | 9 ++++++++- mm/memcontrol.c | 39 +++++++++++++++++++++++++++++++++++++++ mm/page-writeback.c | 25 +++++++++++++++++++++++++ 6 files changed, 87 insertions(+), 2 deletions(-) commit 947e9762a8ddefda38aa21e249e6a4fec215cd12 Author: Tejun Heo Date: Fri May 22 18:23:32 2015 -0400 writeback: update wb_over_bg_thresh() to use wb_domain aware operations wb_over_bg_thresh() currently uses global_dirty_limits() and wb_dirty_limit() both of which are wrappers around operations which take dirty_throttle_control. For cgroup writeback support, the function will be updated to also consider memcg wb_domains which requires the context information carried in dirty_throttle_control. This patch updates wb_over_bg_thresh() so that it uses the underlying wb_domain aware operations directly and builds the global dirty_throttle_control in the process. This patch doesn't introduce any behavioral changes. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Cc: Wu Fengguang Cc: Greg Thelen Signed-off-by: Jens Axboe mm/page-writeback.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) commit aa661bbe1e61ce80ca4ae98804f673ede94b0827 Author: Tejun Heo Date: Fri May 22 18:23:31 2015 -0400 writeback: move over_bground_thresh() to mm/page-writeback.c and rename it to wb_over_bg_thresh(). The function is closely tied to the dirty throttling mechanism implemented in page-writeback.c. This relocation will allow future updates necessary for cgroup writeback support. While at it, add function comment. This is pure reorganization and doesn't introduce any behavioral changes. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Cc: Wu Fengguang Cc: Greg Thelen Signed-off-by: Jens Axboe fs/fs-writeback.c | 20 ++------------------ include/linux/writeback.h | 1 + mm/page-writeback.c | 23 +++++++++++++++++++++++ 3 files changed, 26 insertions(+), 18 deletions(-) commit 9fc3a43e1757ab6de0e8ce83b5d5a83083174e3b Author: Tejun Heo Date: Fri May 22 18:23:30 2015 -0400 writeback: separate out domain_dirty_limits() global_dirty_limits() calculates thresh and bg_thresh (confusingly called *pdirty and *pbackground in the function) assuming global_wb_domain; however, cgroup writeback support requires considering per-memcg wb_domain too. This patch separates out domain_dirty_limits() which takes dirty_throttle_control out of global_dirty_limits(). As thresh and bg_thresh calculation needs the amount of dirtyable memory in the domain, dirty_throttle_control->avail is added. The new function calculates the two thresholds and store them directly in the dirty_throttle_control. Also, as memcg domains can't follow vm_dirty_bytes and dirty_background_bytes settings directly. If those are set and domain_dirty_limits() is invoked for a !global domain, the settings are translated to ratios by scaling them against globally available memory. dirty_throttle_control->gdtc is added to enable this when CONFIG_CGROUP_WRITEBACK. global_dirty_limits() is now a thin wrapper around domain_dirty_limits() and balance_dirty_pages() is updated to use the new function too. This patch doesn't introduce any behavioral changes. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Cc: Wu Fengguang Cc: Greg Thelen Signed-off-by: Jens Axboe mm/page-writeback.c | 111 ++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 86 insertions(+), 25 deletions(-) commit c7981433ef05e67b1b40740b2c40edbd4476b659 Author: Tejun Heo Date: Fri May 22 18:23:29 2015 -0400 writeback: make __wb_writeout_inc() and hard_dirty_limit() take wb_domaas a parameter Currently __wb_writeout_inc() and hard_dirty_limit() assume global_wb_domain; however, cgroup writeback support requires considering per-memcg wb_domain too. This patch separates out domain-specific part of __wb_writeout_inc() into wb_domain_writeout_inc() which takes wb_domain as a parameter and adds the parameter to hard_dirty_limit(). This will allow these two functions to handle per-memcg wb_domains. This patch doesn't introduce any behavioral changes. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Cc: Wu Fengguang Cc: Greg Thelen Signed-off-by: Jens Axboe mm/page-writeback.c | 37 +++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 16 deletions(-) commit e9f07dfd7086a0b7e9ce98bb97b7422861aad40b Author: Tejun Heo Date: Fri May 22 18:23:28 2015 -0400 writeback: add dirty_throttle_control->dom Currently all dirty throttle operations use global_wb_domain; however, cgroup writeback support requires considering per-memcg wb_domain too. This patch adds dirty_throttle_control->dom and updates functions which are directly using globabl_wb_domain to use it instead. As this makes global_update_bandwidth() a misnomer, the function is renamed to domain_update_bandwidth(). This patch doesn't introduce any behavioral changes. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Cc: Wu Fengguang Cc: Greg Thelen Signed-off-by: Jens Axboe mm/page-writeback.c | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) commit e9770b3487328b7e28803caf6c809292dd7adbf0 Author: Tejun Heo Date: Fri May 22 18:23:27 2015 -0400 writeback: add dirty_throttle_control->wb_completions wb->completions measures the wb's proportional write bandwidth in global_wb_domain and thus naturally tied to the wb_domain. This patch adds dirty_throttle_control->wb_completions which is initialized to wb->completions by GDTC_INIT() and updates __wb_dirty_limits() to use it instead of dereferencing wb->completions directly. This will allow dirty_throttle_control to represent different wb_domains and the matching wb completions. This patch doesn't introduce any behavioral changes. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Cc: Wu Fengguang Cc: Greg Thelen Signed-off-by: Jens Axboe mm/page-writeback.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit daddfa3cb30ebfe322d50af146d830fd435ddb1f Author: Tejun Heo Date: Fri May 22 18:23:26 2015 -0400 writeback: add dirty_throttle_control->pos_ratio wb_position_ratio() is used to calculate pos_ratio, which is used for two purposes. wb_update_dirty_ratelimit() uses it to adjust wb->[balanced_]dirty_ratelimit gradually and balance_dirty_pages() to immediately adjust dirty_ratelimit right before applying it to determine pause duration. While wb_update_dirty_ratelimit() is separately rate limited from balance_dirty_pages(), on the run where the ratelimit is updated, we end up calculating pos_ratio twice with the same parameters. This patch adds dirty_throttle_control->pos_ratio. balance_dirty_pages() calculates it once per run and wb_update_dirty_ratelimit() uses the value stored in dirty_throttle_control. This removes the duplicate calculation and also will help implementing memcg wb_domain. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Cc: Wu Fengguang Cc: Greg Thelen Signed-off-by: Jens Axboe mm/page-writeback.c | 36 +++++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 15 deletions(-) commit b1cbc6d40c85639d405fee37c7bb688c3bf468d6 Author: Tejun Heo Date: Fri May 22 18:23:25 2015 -0400 writeback: make __wb_calc_thresh() take dirty_throttle_control wb_calc_thresh() calculates wb_thresh by scaling thresh according to the wb's portion in the system-wide write bandwidth. cgroup writeback support would need to calculate wb_thresh against memcg domain too. This patch renames wb_calc_thresh() to __wb_calc_thresh() and makes it take dirty_throttle_control so that the function can later be updated to calculate against different domains according to dirty_throttle_control. wb_calc_thresh() is now a thin wrapper around __wb_calc_thresh(). v2: The original version was incorrectly scaling dtc->dirty instead of dtc->thresh. This was due to the extremely confusing function and variable names. Added a rename patch and fixed this one. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Cc: Wu Fengguang Cc: Greg Thelen Signed-off-by: Jens Axboe mm/page-writeback.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) commit 970fb01ad3a773b5612a9bba6b366abcefc18eaf Author: Tejun Heo Date: Fri May 22 18:23:24 2015 -0400 writeback: add dirty_throttle_control->wb_bg_thresh wb_bg_thresh is currently treated as a second-class citizen. It's only used when BDI_CAP_STRICTLIMIT is set and balance_dirty_pages() doesn't calculate it unless the cap is set. When the cap is set, the calculated value is not passed around but instead recalculated whenever it's used. wb_position_ratio() calculates it by scaling wb_thresh proportional to bg_thresh / thresh. wb_update_dirty_ratelimit() uses wb_dirty_limit() on bg_thresh, which should generally lead to a similar result as the proportional scaling but can also be way off in the presence of max/min_ratio settings. Avoiding wb_bg_thresh calculation saves us one u64 multiplication and divsion when BDI_CAP_STRICTLIMIT is not set. Given that balance_dirty_pages() is already ratelimited, this doesn't justify the incurred extra complexity. This patch adds wb_bg_thresh to dirty_throttle_control and makes wb_dirty_limits() always calculate it and updates the users to use the pre-calculated value. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Cc: Wu Fengguang Cc: Greg Thelen Signed-off-by: Jens Axboe mm/page-writeback.c | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) commit 2bc00aef030f4f75550d5c88062ce1830e40097f Author: Tejun Heo Date: Fri May 22 18:23:23 2015 -0400 writeback: consolidate dirty throttle parameters into dirty_throttle_control Dirty throttling implemented in balance_dirty_pages() and its subroutines makes use of a number of parameters which are passed around individually. This renders these functions somewhat unwieldy and makes it difficult to add or change the involved parameters. Also some functions use different or conflicting naming schemes for the same parameters making the code confusing to follow. This patch consolidates the main parameters into struct dirty_throttle_control so that they can be passed around easily and adding new paramters isn't painful. This also unifies how a given parameter is named and accessed. The drawback of using this type of control structure rather than explicit paramters is that it isn't immediately obvious which function accesses and modifies what; however, it's fairly clear that the benefits outweigh in this case. GDTC_INIT() macro is provided to ease initializing dirty_throttle_control for the global_wb_domain and balance_dirty_pages() uses a separate pointer to point to its global dirty_throttle_control. This is to make it uniform with memcg domain handling which will be added later. This patch doesn't introduce any behavioral changes. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Cc: Wu Fengguang Cc: Greg Thelen Signed-off-by: Jens Axboe mm/page-writeback.c | 212 +++++++++++++++++++++++++--------------------------- 1 file changed, 101 insertions(+), 111 deletions(-) commit dcc25ae76eb7b8ff883eaaab57e30e8f2f085be3 Author: Tejun Heo Date: Fri May 22 18:23:22 2015 -0400 writeback: move global_dirty_limit into wb_domain This patch is a part of the series to define wb_domain which represents a domain that wb's (bdi_writeback's) belong to and are measured against each other in. This will enable IO backpressure propagation for cgroup writeback. global_dirty_limit exists to regulate the global dirty threshold which is a property of the wb_domain. This patch moves hard_dirty_limit, dirty_lock, and update_time into wb_domain. This is pure reorganization and doesn't introduce any behavioral changes. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Cc: Wu Fengguang Cc: Greg Thelen Signed-off-by: Jens Axboe fs/fs-writeback.c | 2 +- include/linux/writeback.h | 17 ++++++++++++++- include/trace/events/writeback.h | 7 +++--- mm/page-writeback.c | 46 ++++++++++++++++++++-------------------- 4 files changed, 44 insertions(+), 28 deletions(-) commit 380c27ca33ebecc9da35aa90c8b3a9154f90aac2 Author: Tejun Heo Date: Fri May 22 18:23:21 2015 -0400 writeback: implement wb_domain Dirtyable memory is distributed to a wb (bdi_writeback) according to the relative bandwidth the wb is writing out in the whole system. This distribution is global - each wb is measured against all other wb's and gets the proportinately sized portion of the memory in the whole system. For cgroup writeback, the amount of dirtyable memory is scoped by memcg and thus each wb would need to be measured and controlled in its memcg. IOW, a wb will belong to two writeback domains - the global and memcg domains. Currently, what constitutes the global writeback domain are scattered across a number of global states. This patch starts collecting them into struct wb_domain. * fprop_global which serves as the basis for proportional bandwidth measurement and its period timer are moved into struct wb_domain. * global_wb_domain hosts the states for the global domain. * While at it, flatten wb_writeout_fraction() into its callers. This thin wrapper doesn't provide any actual benefits while getting in the way. This is pure reorganization and doesn't introduce any behavioral changes. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Cc: Wu Fengguang Cc: Greg Thelen Signed-off-by: Jens Axboe include/linux/writeback.h | 32 +++++++++++++++++++++ mm/page-writeback.c | 72 ++++++++++++++++++----------------------------- 2 files changed, 59 insertions(+), 45 deletions(-) commit 8a73179956e649df0d4b3250db17734f272d8266 Author: Tejun Heo Date: Fri May 22 18:23:20 2015 -0400 writeback: reorganize [__]wb_update_bandwidth() __wb_update_bandwidth() is called from two places - fs/fs-writeback.c::balance_dirty_pages() and mm/page-writeback.c::wb_writeback(). The latter updates only the write bandwidth while the former also deals with the dirty ratelimit. The two callsites are distinguished by whether @thresh parameter is zero or not, which is cryptic. In addition, the two files define their own different versions of wb_update_bandwidth() on top of __wb_update_bandwidth(), which is confusing to say the least. This patch cleans up [__]wb_update_bandwidth() in the following ways. * __wb_update_bandwidth() now takes explicit @update_ratelimit parameter to gate dirty ratelimit handling. * mm/page-writeback.c::wb_update_bandwidth() is flattened into its caller - balance_dirty_pages(). * fs/fs-writeback.c::wb_update_bandwidth() is moved to mm/page-writeback.c and __wb_update_bandwidth() is made static. * While at it, add a lockdep assertion to __wb_update_bandwidth(). Except for the lockdep addition, this is pure reorganization and doesn't introduce any behavioral changes. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Cc: Wu Fengguang Cc: Greg Thelen Signed-off-by: Jens Axboe fs/fs-writeback.c | 10 ---------- include/linux/writeback.h | 9 +-------- mm/page-writeback.c | 45 ++++++++++++++++++++++----------------------- 3 files changed, 23 insertions(+), 41 deletions(-) commit 0d960a383ae7aa791b2833e122ba7519d264cf92 Author: Tejun Heo Date: Fri May 22 18:23:19 2015 -0400 writeback: clean up wb_dirty_limit() The function name wb_dirty_limit(), its argument @dirty and the local variable @wb_dirty are mortally confusing given that the function calculates per-wb threshold value not dirty pages, especially given that @dirty and @wb_dirty are used elsewhere for dirty pages. Let's rename the function to wb_calc_thresh() and wb_dirty to wb_thresh. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Cc: Wu Fengguang Cc: Greg Thelen Signed-off-by: Jens Axboe fs/fs-writeback.c | 2 +- include/linux/writeback.h | 2 +- mm/backing-dev.c | 6 +++--- mm/page-writeback.c | 30 +++++++++++++++--------------- 4 files changed, 20 insertions(+), 20 deletions(-) commit 733a572e66d2a23c852fdce34dba5bbd40667817 Author: Tejun Heo Date: Fri May 22 18:23:18 2015 -0400 memcg: make mem_cgroup_read_{stat|event}() iterate possible cpus instead of online cpu_possible_mask represents the CPUs which are actually possible during that boot instance. For systems which don't support CPU hotplug, this will match cpu_online_mask exactly in most cases. Even for systems which support CPU hotplug, the number of possible CPU slots is highly unlikely to diverge greatly from the number of online CPUs. The only cases where the difference between possible and online caused problems were when the boot code failed to initialize the possible mask and left it fully set at NR_CPUS - 1. As such, most per-cpu constructs allocate for all possible CPUs and often iterate over the possibles, which also has the benefit of avoiding the blocking CPU hotplug synchronization. memcg open codes per-cpu stat counting for mem_cgroup_read_stat() and mem_cgroup_read_events(), which iterates over online CPUs and handles CPU hotplug operations explicitly. This complexity doesn't actually buy anything. Switch to iterating over the possibles and drop the explicit CPU hotplug handling. Eventually, we want to convert memcg to use percpu_counter instead of its own custom implementation which also benefits from quick access w/o summing for cases where larger error margin is acceptable. This will allow mem_cgroup_read_stat() to be called from non-sleepable contexts which will be used by cgroup writeback. Signed-off-by: Tejun Heo Cc: Michal Hocko Acked-by: Johannes Weiner Signed-off-by: Jens Axboe mm/memcontrol.c | 51 ++------------------------------------------------- 1 file changed, 2 insertions(+), 49 deletions(-) commit 108dad65be9786650c78ed9aea28c9b4a68810d9 Author: Tejun Heo Date: Fri May 22 17:14:05 2015 -0400 ext2: enable cgroup writeback support Writeback now supports cgroup writeback and the generic writeback, buffer, libfs, and mpage helpers that ext2 uses are all updated to work with cgroup writeback. This patch enables cgroup writeback for ext2 by adding FS_CGROUP_WRITEBACK to its ->fs_flags. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Cc: linux-ext4@vger.kernel.org Signed-off-by: Jens Axboe fs/ext2/super.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 429b3fb027492b2b9f96e00bb1a9255fc56d4934 Author: Tejun Heo Date: Fri May 22 17:14:04 2015 -0400 mpage: make __mpage_writepage() honor cgroup writeback __mpage_writepage() is used to implement mpage_writepages() which in turn is used for ->writepages() of various filesystems. All writeback logic is now updated to handle cgroup writeback and the block cgroup to issue IOs for is encoded in writeback_control and can be retrieved from the inode; however, __mpage_writepage() currently ignores the blkcg indicated by the inode and issues all bio's without explicit blkcg association. This patch updates __mpage_writepage() so that the issued bio's are associated with inode_to_writeback_blkcg_css(inode). v2: Updated for per-inode wb association. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Cc: Andrew Morton Cc: Alexander Viro Signed-off-by: Jens Axboe fs/mpage.c | 2 ++ 1 file changed, 2 insertions(+) commit bafc0dba1e20d84578d7098d32caf63441e5743d Author: Tejun Heo Date: Tue Jun 2 08:37:23 2015 -0600 buffer, writeback: make __block_write_full_page() honor cgroup writeback [__]block_write_full_page() is used to implement ->writepage in various filesystems. All writeback logic is now updated to handle cgroup writeback and the block cgroup to issue IOs for is encoded in writeback_control and can be retrieved from the inode; however, [__]block_write_full_page() currently ignores the blkcg indicated by inode and issues all bio's without explicit blkcg association. This patch adds submit_bh_blkcg() which associates the bio with the specified blkio cgroup before issuing and uses it in __block_write_full_page() so that the issued bio's are associated with inode_to_wb_blkcg_css(inode). v2: Updated for per-inode wb association. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Cc: Andrew Morton Signed-off-by: Jens Axboe fs/buffer.c | 26 ++++++++++++++++++++------ include/linux/backing-dev.h | 12 ++++++++++++ 2 files changed, 32 insertions(+), 6 deletions(-) commit 840499aa001313bac50eb43690e5c991b3999217 Author: Axel Lin Date: Sun May 31 14:06:46 2015 +0800 regulator: lp8755: Convert to devm_request_threaded_irq Signed-off-by: Axel Lin Signed-off-by: Mark Brown drivers/regulator/lp8755.c | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) commit edd8ed496b98f1b9d9fda5170a90fe41e7f86e6e Author: Jie Yang Date: Sat May 30 22:33:59 2015 +0800 ASoC: Intel: handle haswell pcm suspend including runtime modules freeing It needs free pcm runtime modules before unloading firmware, here add hsw_pcm_suspend() to handle this procedure: suspends firmware ==> frees runtime modules ==> unloads firmware. This fixes the broadwell module unload failed issue. Signed-off-by: Jie Yang Signed-off-by: Mark Brown sound/soc/intel/haswell/sst-haswell-pcm.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) commit 2dbc80caf7e93c3d49787cf939fc416873125c1b Author: Jie Yang Date: Sat May 30 22:33:58 2015 +0800 ASoC: Intel: check and clear runtime module pointer Add check runtime module pointers before freeing them, and clear them to NULL after freed. With this implemented, we can avoid NULL pointer dereference or double free errors. Signed-off-by: Jie Yang Signed-off-by: Mark Brown sound/soc/intel/haswell/sst-haswell-pcm.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit 6e5132f79a2e441bde4818abdc813859c8064901 Author: Jie Yang Date: Sat May 30 22:33:57 2015 +0800 ASoC: intel: Revert "ASoC: Intel: fix broadwell module removing failed issue" This reverts commit 01f202c7b4b40025f3ea4721c52e7f78545e3b07. We shouldn't leave the device as suspended state after module freed, it is not good to do runtime suspend at driver free, here revert this fixing, and replace it with the procedure: suspends firmware ==> frees runtime modules ==> unloads firmware. Signed-off-by: Jie Yang Signed-off-by: Mark Brown sound/soc/intel/haswell/sst-haswell-pcm.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit a209d322dc803d2bb0c92fe1d0c703ddabae6f28 Author: Jie Yang Date: Sat May 30 22:33:56 2015 +0800 ASoC: intel: Revert "ASoC: Intel: remove unused function hsw_pcm_free_modules()" This reverts commit 506c148ee5e1bfb836116353305927ca4c21a23e. We still need this hsw_pcm_free_modules(), we plan to remove the runtime modules at both fw_unload(D0->D3) and snd_soc_sst_haswell_pcm module removing. Signed-off-by: Jie Yang Signed-off-by: Mark Brown sound/soc/intel/haswell/sst-haswell-pcm.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit 0747259d13febfcc838980a63c414c9b920cea6f Author: Tejun Heo Date: Fri May 22 17:14:02 2015 -0400 writeback: dirty inodes against their matching cgroup bdi_writeback's __mark_inode_dirty() always dirtied the inode against the root wb (bdi_writeback). The previous patches added all the infrastructure necessary to attribute an inode against the wb of the dirtying cgroup. This patch updates __mark_inode_dirty() so that it uses the wb associated with the inode instead of unconditionally using the root one. Currently, none of the filesystems has FS_CGROUP_WRITEBACK and all pages will keep being dirtied against the root wb. v2: Updated for per-inode wb association. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Signed-off-by: Jens Axboe fs/fs-writeback.c | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) commit db125360409fc320790e0d38218bd7a3e9cd2552 Author: Tejun Heo Date: Fri May 22 17:14:01 2015 -0400 writeback: make writeback initiation functions handle multiple bdi_writeback's [try_]writeback_inodes_sb[_nr]() and sync_inodes_sb() currently only handle dirty inodes on the root wb (bdi_writeback) of the target bdi. This patch implements bdi_split_work_to_wbs() and use it to make these functions handle multiple wb's. bdi_split_work_to_wbs() takes a base wb_writeback_work and create clones of it and issue them to the wb's of the target bdi. The base work's nr_pages is distributed using wb_split_bdi_pages() - ie. according to each wb's write bandwidth's proportion in the bdi. Cloning a bdi involves memory allocation which may fail. In such cases, bdi_split_work_to_wbs() issues the base work directly and waits for its completion before proceeding to the next wb to guarantee forward progress and correctness under memory pressure. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Signed-off-by: Jens Axboe fs/fs-writeback.c | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 91 insertions(+), 5 deletions(-) commit f30a7d0cc8d9096d6728fadd0ab024e648010ec0 Author: Tejun Heo Date: Fri May 22 17:14:00 2015 -0400 writeback: restructure try_writeback_inodes_sb[_nr]() try_writeback_inodes_sb_nr() wraps writeback_inodes_sb_nr() so that it handles s_umount locking and skips if writeback is already in progress. The in progress test is performed on the root wb (bdi_writeback) which isn't sufficient for cgroup writeback support. The test must be done per-wb. To prepare for the change, this patch factors out __writeback_inodes_sb_nr() from writeback_inodes_sb_nr() and adds @skip_if_busy and moves the in progress test right before queueing the wb_writeback_work. try_writeback_inodes_sb_nr() now just grabs s_umount and invokes __writeback_inodes_sb_nr() with asserted @skip_if_busy. This way, later addition of multiple wb handling can skip only the wb's which already have writeback in progress. This swaps the order between in progress test and s_umount test which can flip the return value when writeback is in progress and s_umount is being held by someone else but this shouldn't cause any meaningful difference. It's a fringe condition and the return value is an unsynchronized hint anyway. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Signed-off-by: Jens Axboe fs/fs-writeback.c | 52 ++++++++++++++++++++++++++--------------------- include/linux/writeback.h | 6 +++--- 2 files changed, 32 insertions(+), 26 deletions(-) commit 98754bf770c0de4be8242cecba53fae5eeedbebc Author: Tejun Heo Date: Fri May 22 17:13:59 2015 -0400 writeback: implement wb_wait_for_single_work() For cgroup writeback, multiple wb_writeback_work items may need to be issuedto accomplish a single task. The previous patch updated the waiting mechanism such that wb_wait_for_completion() can wait for multiple work items. Issuing mulitple work items involves memory allocation which may fail. As most writeback operations can't fail or blocked on memory allocation, in such cases, we'll fall back to sequential issuing of an on-stack work item, which would need to be waited upon sequentially. This patch implements wb_wait_for_single_work() which waits for a single work item independently from wb_completion waiting so that such fallback mechanism can be used without getting tangled with the usual issuing / completion operation. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Signed-off-by: Jens Axboe fs/fs-writeback.c | 47 +++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 45 insertions(+), 2 deletions(-) commit cc395d7f1f7b9c740ab6d367ef1f6eb248595dff Author: Tejun Heo Date: Fri May 22 17:13:58 2015 -0400 writeback: implement bdi_wait_for_completion() If the completion of a wb_writeback_work can be waited upon by setting its ->done to a struct completion and waiting on it; however, for cgroup writeback support, it's necessary to issue multiple work items to multiple bdi_writebacks and wait for the completion of all. This patch implements wb_completion which can wait for multiple work items and replaces the struct completion with it. It can be defined using DEFINE_WB_COMPLETION_ONSTACK(), used for multiple work items and waited for by wb_wait_for_completion(). Nobody currently issues multiple work items and this patch doesn't introduce any behavior changes. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Signed-off-by: Jens Axboe fs/fs-writeback.c | 58 +++++++++++++++++++++++++++++++--------- include/linux/backing-dev-defs.h | 2 ++ mm/backing-dev.c | 1 + 3 files changed, 49 insertions(+), 12 deletions(-) commit ac7b19a34f332fdf8b13aac8708b14188fd1fbd2 Author: Tejun Heo Date: Fri May 22 17:13:57 2015 -0400 writeback: add wb_writeback_work->auto_free Currently, a wb_writeback_work is freed automatically on completion if it doesn't have ->done set. Add wb_writeback_work->auto_free to make the switch explicit. This will help cgroup writeback support where waiting for completion and whether to free automatically don't necessarily move together. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Signed-off-by: Jens Axboe fs/fs-writeback.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) commit 001fe6f617b1a352ad29cc3643384b3d8141dc07 Author: Tejun Heo Date: Fri May 22 17:13:56 2015 -0400 writeback: make wakeup_dirtytime_writeback() handle multiple bdi_writeback's wakeup_dirtytime_writeback() currently only starts writeback on the root wb (bdi_writeback). For cgroup writeback support, update the function to check all wbs. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Cc: Theodore Ts'o Signed-off-by: Jens Axboe fs/fs-writeback.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit f2b65121607631df0753eedd624262818707af32 Author: Tejun Heo Date: Fri May 22 17:13:55 2015 -0400 writeback: make wakeup_flusher_threads() handle multiple bdi_writeback's wakeup_flusher_threads() currently only starts writeback on the root wb (bdi_writeback). For cgroup writeback support, update the function to wake up all wbs and distribute the number of pages to write according to the proportion of each wb's write bandwidth, which is implemented in wb_split_bdi_pages(). Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Signed-off-by: Jens Axboe fs/fs-writeback.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 46 insertions(+), 2 deletions(-) commit 9ecf4866c018aeb304a7b49216c4d183665becb7 Author: Tejun Heo Date: Fri May 22 17:13:54 2015 -0400 writeback: make bdi_start_background_writeback() take bdi_writeback instead of backing_dev_info bdi_start_background_writeback() currently takes @bdi and kicks the root wb (bdi_writeback). In preparation for cgroup writeback support, make it take wb instead. This patch doesn't make any functional difference. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Signed-off-by: Jens Axboe fs/fs-writeback.c | 12 ++++++------ include/linux/backing-dev.h | 2 +- mm/page-writeback.c | 4 ++-- 3 files changed, 9 insertions(+), 9 deletions(-) commit bc05873dccd27d75d6acdf812c3edfb181f1ba17 Author: Tejun Heo Date: Fri May 22 17:13:53 2015 -0400 writeback: make writeback_in_progress() take bdi_writeback instead of backing_dev_info writeback_in_progress() currently takes @bdi and returns whether writeback is in progress on its root wb (bdi_writeback). In preparation for cgroup writeback support, make it take wb instead. While at it, make it an inline function. This patch doesn't make any functional difference. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Signed-off-by: Jens Axboe fs/fs-writeback.c | 15 +-------------- include/linux/backing-dev.h | 12 +++++++++++- mm/page-writeback.c | 4 ++-- 3 files changed, 14 insertions(+), 17 deletions(-) commit a06fd6b102286e3b727ed42b8fb37825fa7127a2 Author: Tejun Heo Date: Fri May 22 17:13:52 2015 -0400 writeback: make laptop_mode_timer_fn() handle multiple bdi_writeback's For cgroup writeback support, all bdi-wide operations should be distributed to all its wb's (bdi_writeback's). This patch updates laptop_mode_timer_fn() so that it invokes wb_start_writeback() on all wb's rather than just the root one. As the intent is writing out all dirty data, there's no reason to split the number of pages to write. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Signed-off-by: Jens Axboe mm/page-writeback.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit c00ddad39f512b1a81e25b7892217ce10efab0f1 Author: Tejun Heo Date: Fri May 22 17:13:51 2015 -0400 writeback: remove bdi_start_writeback() bdi_start_writeback() is a thin wrapper on top of __wb_start_writeback() which is used only by laptop_mode_timer_fn(). This patches removes bdi_start_writeback(), renames __wb_start_writeback() to wb_start_writeback() and makes laptop_mode_timer_fn() use it instead. This doesn't cause any functional difference and will ease making laptop_mode_timer_fn() cgroup writeback aware. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Signed-off-by: Jens Axboe fs/fs-writeback.c | 68 +++++++++++++++++---------------------------- include/linux/backing-dev.h | 4 +-- mm/page-writeback.c | 4 +-- 3 files changed, 29 insertions(+), 47 deletions(-) commit ebe41ab0c79d5633123f6faa3265a1a63c5f22d8 Author: Tejun Heo Date: Fri May 22 17:13:50 2015 -0400 writeback: implement bdi_for_each_wb() This will be used to implement bdi-wide operations which should be distributed across all its cgroup bdi_writebacks. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Signed-off-by: Jens Axboe include/linux/backing-dev.h | 63 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) commit 693108a8a6672cec88265d83f7187dc83ba1d6a3 Author: Tejun Heo Date: Fri May 22 17:13:49 2015 -0400 writeback: make bdi->min/max_ratio handling cgroup writeback aware bdi->min/max_ratio are user-configurable per-bdi knobs which regulate dirty limit of each bdi. For cgroup writeback, they need to be further distributed across wb's (bdi_writeback's) belonging to the configured bdi. This patch introduces wb_min_max_ratio() which distributes bdi->min/max_ratio according to a wb's proportion in the total active bandwidth of its bdi. v2: Update wb_min_max_ratio() to fix a bug where both min and max were assigned the min value and avoid calculations when possible. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Signed-off-by: Jens Axboe mm/page-writeback.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 46 insertions(+), 4 deletions(-) commit e79729123f6392b36450113c6c52074b7d389c85 Author: Tejun Heo Date: Fri May 22 17:13:48 2015 -0400 writeback: don't issue wb_writeback_work if clean There are several places in fs/fs-writeback.c which queues wb_writeback_work without checking whether the target wb (bdi_writeback) has dirty inodes or not. The only thing wb_writeback_work does is writing back the dirty inodes for the target wb and queueing a work item for a clean wb is essentially noop. There are some side effects such as bandwidth stats being updated and triggering tracepoints but these don't affect the operation in any meaningful way. This patch makes all writeback_inodes_sb_nr() and sync_inodes_sb() skip wb_queue_work() if the target bdi is clean. Also, it moves dirtiness check from wakeup_flusher_threads() to __wb_start_writeback() so that all its callers benefit from the check. While the overhead incurred by scheduling a noop work isn't currently significant, the overhead may be higher with cgroup writeback support as we may end up issuing noop work items to a lot of clean wb's. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Signed-off-by: Jens Axboe fs/fs-writeback.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) commit 95a46c65e3c09edb9f17dabf2dc16670cd328739 Author: Tejun Heo Date: Fri May 22 17:13:47 2015 -0400 writeback: make bdi_has_dirty_io() take multiple bdi_writeback's into account bdi_has_dirty_io() used to only reflect whether the root wb (bdi_writeback) has dirty inodes. For cgroup writeback support, it needs to take all active wb's into account. If any wb on the bdi has dirty inodes, bdi_has_dirty_io() should return true. To achieve that, as inode_wb_list_{move|del}_locked() now keep track of the dirty state transition of each wb, the number of dirty wbs can be counted in the bdi; however, bdi is already aggregating wb->avg_write_bandwidth which can easily be guaranteed to be > 0 when there are any dirty inodes by ensuring wb->avg_write_bandwidth can't dip below 1. bdi_has_dirty_io() can simply test whether bdi->tot_write_bandwidth is zero or not. While this bumps the value of wb->avg_write_bandwidth to one when it used to be zero, this shouldn't cause any meaningful behavior difference. bdi_has_dirty_io() is made an inline function which tests whether ->tot_write_bandwidth is non-zero. Also, WARN_ON_ONCE()'s on its value are added to inode_wb_list_{move|del}_locked(). Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Signed-off-by: Jens Axboe fs/fs-writeback.c | 5 +++-- include/linux/backing-dev-defs.h | 8 ++++++-- include/linux/backing-dev.h | 10 +++++++++- mm/backing-dev.c | 5 ----- mm/page-writeback.c | 10 +++++++--- 5 files changed, 25 insertions(+), 13 deletions(-) commit 766a9d6e60578f1ef6de71f89f022084f8bffc82 Author: Tejun Heo Date: Fri May 22 17:13:46 2015 -0400 writeback: implement backing_dev_info->tot_write_bandwidth cgroup writeback support needs to keep track of the sum of avg_write_bandwidth of all wb's (bdi_writeback's) with dirty inodes to distribute write workload. This patch adds bdi->tot_write_bandwidth and updates inode_wb_list_move_locked(), inode_wb_list_del_locked() and wb_update_write_bandwidth() to adjust it as wb's gain and lose dirty inodes and its avg_write_bandwidth gets updated. As the update events are not synchronized with each other, bdi->tot_write_bandwidth is an atomic_long_t. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Signed-off-by: Jens Axboe fs/fs-writeback.c | 7 ++++++- include/linux/backing-dev-defs.h | 2 ++ mm/page-writeback.c | 3 +++ 3 files changed, 11 insertions(+), 1 deletion(-) commit d6c10f1fc8626dc55946f4768ae322b4c57b07dd Author: Tejun Heo Date: Fri May 22 17:13:45 2015 -0400 writeback: implement WB_has_dirty_io wb_state flag Currently, wb_has_dirty_io() determines whether a wb (bdi_writeback) has any dirty inode by testing all three IO lists on each invocation without actively keeping track. For cgroup writeback support, a single bdi will host multiple wb's each of which will host dirty inodes separately and we'll need to make bdi_has_dirty_io(), which currently only represents the root wb, aggregate has_dirty_io from all member wb's, which requires tracking transitions in has_dirty_io state on each wb. This patch introduces inode_wb_list_{move|del}_locked() to consolidate IO list operations leaving queue_io() the only other function which directly manipulates IO lists (via move_expired_inodes()). All three functions are updated to call wb_io_lists_[de]populated() which keep track of whether the wb has dirty inodes or not and record it using the new WB_has_dirty_io flag. inode_wb_list_moved_locked()'s return value indicates whether the wb had no dirty inodes before. mark_inode_dirty() is restructured so that the return value of inode_wb_list_move_locked() can be used for deciding whether to wake up the wb. While at it, change {bdi|wb}_has_dirty_io()'s return values to bool. These functions were returning 0 and 1 before. Also, add a comment explaining the synchronization of wb_state flags. v2: Updated to accommodate b_dirty_time. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Signed-off-by: Jens Axboe fs/fs-writeback.c | 110 ++++++++++++++++++++++++++++++--------- include/linux/backing-dev-defs.h | 1 + include/linux/backing-dev.h | 8 ++- mm/backing-dev.c | 2 +- 4 files changed, 91 insertions(+), 30 deletions(-) commit 703c270887bb5106c4c46a00cc7477d30d5e04f5 Author: Tejun Heo Date: Fri May 22 17:13:44 2015 -0400 writeback: implement and use inode_congested() In several places, bdi_congested() and its wrappers are used to determine whether more IOs should be issued. With cgroup writeback support, this question can't be answered solely based on the bdi (backing_dev_info). It's dependent on whether the filesystem and bdi support cgroup writeback and the blkcg the inode is associated with. This patch implements inode_congested() and its wrappers which take @inode and determines the congestion state considering cgroup writeback. The new functions replace bdi_*congested() calls in places where the query is about specific inode and task. There are several filesystem users which also fit this criteria but they should be updated when each filesystem implements cgroup writeback support. v2: Now that a given inode is associated with only one wb, congestion state can be determined independent from the asking task. Drop @task. Spotted by Vivek. Also, converted to take @inode instead of @mapping and renamed to inode_congested(). Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Cc: Vivek Goyal Signed-off-by: Jens Axboe fs/fs-writeback.c | 29 +++++++++++++++++++++++++++++ include/linux/backing-dev.h | 22 ++++++++++++++++++++++ mm/fadvise.c | 2 +- mm/readahead.c | 2 +- mm/vmscan.c | 11 +++++------ 5 files changed, 58 insertions(+), 8 deletions(-) commit 482cf79cdf6669667a914ffd4cbc57a762b55fef Author: Tejun Heo Date: Fri May 22 17:13:43 2015 -0400 writeback, blkcg: propagate non-root blkcg congestion state Now that bdi layer can handle per-blkcg bdi_writeback_congested state, blk_{set|clear}_congested() can propagate non-root blkcg congestion state to them. This can be easily achieved by disabling the root_rl tests in blk_{set|clear}_congested(). Note that we still need those tests when !CONFIG_CGROUP_WRITEBACK as otherwise we'll end up flipping root blkcg wb's congestion state for events happening on other blkcgs. v2: Updated for bdi_writeback_congested. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Cc: Vivek Goyal Signed-off-by: Jens Axboe block/blk-core.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) commit d40f75a06dd675808eed385d490ba9468200b23f Author: Tejun Heo Date: Fri May 22 17:13:42 2015 -0400 writeback, blkcg: restructure blk_{set|clear}_queue_congested() blk_{set|clear}_queue_congested() take @q and set or clear, respectively, the congestion state of its bdi's root wb. Because bdi used to be able to handle congestion state only on the root wb, the callers of those functions tested whether the congestion is on the root blkcg and skipped if not. This is cumbersome and makes implementation of per cgroup bdi_writeback congestion state propagation difficult. This patch renames blk_{set|clear}_queue_congested() to blk_{set|clear}_congested(), and makes them take request_list instead of request_queue and test whether the specified request_list is the root one before updating bdi_writeback congestion state. This makes the tests in the callers unnecessary and simplifies them. As there are no external users of these functions, the definitions are moved from include/linux/blkdev.h to block/blk-core.c. This patch doesn't introduce any noticeable behavior difference. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Cc: Vivek Goyal Signed-off-by: Jens Axboe block/blk-core.c | 62 ++++++++++++++++++++++++++++++-------------------- include/linux/blkdev.h | 19 ---------------- 2 files changed, 37 insertions(+), 44 deletions(-) commit ec8a6f2643923ee5b74d24fa8d134240379f436b Author: Tejun Heo Date: Fri May 22 17:13:41 2015 -0400 writeback: make congestion functions per bdi_writeback Currently, all congestion functions take bdi (backing_dev_info) and always operate on the root wb (bdi->wb) and the congestion state from the block layer is propagated only for the root blkcg. This patch introduces {set|clear}_wb_congested() and wb_congested() which take a bdi_writeback_congested and bdi_writeback respectively. The bdi counteparts are now wrappers invoking the wb based functions on @bdi->wb. While converting clear_bdi_congested() to clear_wb_congested(), the local variable declaration order between @wqh and @bit is swapped for cosmetic reason. This patch just adds the new wb based functions. The following patches will apply them. v2: Updated for bdi_writeback_congested. Signed-off-by: Tejun Heo Reviewed-by: Jan Kara Cc: Jens Axboe Signed-off-by: Jens Axboe include/linux/backing-dev-defs.h | 14 +++++++++++-- include/linux/backing-dev.h | 45 +++++++++++++++++++++++----------------- mm/backing-dev.c | 22 ++++++++++---------- 3 files changed, 49 insertions(+), 32 deletions(-) commit dfb8ae567835425d27db8acc6c9fc5db88d38e2b Author: Tejun Heo Date: Fri May 22 17:13:40 2015 -0400 writeback: let balance_dirty_pages() work on the matching cgroup bdi_writeback Currently, balance_dirty_pages() always work on bdi->wb. This patch updates it to work on the wb (bdi_writeback) matching memcg and blkcg of the current task as that's what the inode is being dirtied against. balance_dirty_pages_ratelimited() now pins the current wb and passes it to balance_dirty_pages(). As no filesystem has FS_CGROUP_WRITEBACK yet, this doesn't lead to visible behavior differences. v2: Updated for per-inode wb association. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Signed-off-by: Jens Axboe mm/page-writeback.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) commit 910181343774cd5fed95900d9fd2cb4ff7758162 Author: Tejun Heo Date: Fri May 22 17:13:39 2015 -0400 writeback: attribute stats to the matching per-cgroup bdi_writeback Until now, all WB_* stats were accounted against the root wb (bdi_writeback), now that multiple wb (bdi_writeback) support is in place, let's attributes the stats to the respective per-cgroup wb's. As no filesystem has FS_CGROUP_WRITEBACK yet, this doesn't lead to visible behavior differences. v2: Updated for per-inode wb association. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Signed-off-by: Jens Axboe mm/page-writeback.c | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) commit ce7acfeaf0363c8b75810908448f61af04d38f91 Author: Tejun Heo Date: Fri May 22 17:13:38 2015 -0400 writeback, blkcg: associate each blkcg_gq with the corresponding bdi_writeback_congested A blkg (blkcg_gq) can be congested and decongested independently from other blkgs on the same request_queue. Accordingly, for cgroup writeback support, the congestion status at bdi (backing_dev_info) should be split and updated separately from matching blkg's. This patch prepares by adding blkg->wb_congested and associating a blkg with its matching per-blkcg bdi_writeback_congested on creation. v2: Updated to associate bdi_writeback_congested instead of bdi_writeback. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Cc: Vivek Goyal Signed-off-by: Jens Axboe block/blk-cgroup.c | 17 +++++++++++++++-- include/linux/blk-cgroup.h | 6 ++++++ 2 files changed, 21 insertions(+), 2 deletions(-) commit 52ebea749aaed195245701a8f90a23d672c7a933 Author: Tejun Heo Date: Fri May 22 17:13:37 2015 -0400 writeback: make backing_dev_info host cgroup-specific bdi_writebacks For the planned cgroup writeback support, on each bdi (backing_dev_info), each memcg will be served by a separate wb (bdi_writeback). This patch updates bdi so that a bdi can host multiple wbs (bdi_writebacks). On the default hierarchy, blkcg implicitly enables memcg. This allows using memcg's page ownership for attributing writeback IOs, and every memcg - blkcg combination can be served by its own wb by assigning a dedicated wb to each memcg. This means that there may be multiple wb's of a bdi mapped to the same blkcg. As congested state is per blkcg - bdi combination, those wb's should share the same congested state. This is achieved by tracking congested state via bdi_writeback_congested structs which are keyed by blkcg. bdi->wb remains unchanged and will keep serving the root cgroup. cgwb's (cgroup wb's) for non-root cgroups are created on-demand or looked up while dirtying an inode according to the memcg of the page being dirtied or current task. Each cgwb is indexed on bdi->cgwb_tree by its memcg id. Once an inode is associated with its wb, it can be retrieved using inode_to_wb(). Currently, none of the filesystems has FS_CGROUP_WRITEBACK and all pages will keep being associated with bdi->wb. v3: inode_attach_wb() in account_page_dirtied() moved inside mapping_cap_account_dirty() block where it's known to be !NULL. Also, an unnecessary NULL check before kfree() removed. Both detected by the kbuild bot. v2: Updated so that wb association is per inode and wb is per memcg rather than blkcg. Signed-off-by: Tejun Heo Cc: kbuild test robot Cc: Dan Carpenter Cc: Jens Axboe Cc: Jan Kara Signed-off-by: Jens Axboe block/blk-cgroup.c | 7 +- fs/fs-writeback.c | 8 +- fs/inode.c | 1 + include/linux/backing-dev-defs.h | 59 +++++- include/linux/backing-dev.h | 195 +++++++++++++++++++ include/linux/blk-cgroup.h | 4 + include/linux/fs.h | 4 + include/linux/memcontrol.h | 4 + mm/backing-dev.c | 397 +++++++++++++++++++++++++++++++++++++++ mm/memcontrol.c | 19 +- mm/page-writeback.c | 11 +- 11 files changed, 698 insertions(+), 11 deletions(-) commit 89e9b9e07a390c50980d10aa37a04631db5a23ab Author: Tejun Heo Date: Fri May 22 17:13:36 2015 -0400 writeback: add {CONFIG|BDI_CAP|FS}_CGROUP_WRITEBACK cgroup writeback requires support from both bdi and filesystem sides. Add BDI_CAP_CGROUP_WRITEBACK and FS_CGROUP_WRITEBACK to indicate support and enable BDI_CAP_CGROUP_WRITEBACK on block based bdi's by default. Also, define CONFIG_CGROUP_WRITEBACK which is enabled if both MEMCG and BLK_CGROUP are enabled. inode_cgwb_enabled() which determines whether a given inode's both bdi and fs support cgroup writeback is added. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Jan Kara Signed-off-by: Jens Axboe block/blk-core.c | 2 +- include/linux/backing-dev.h | 32 +++++++++++++++++++++++++++++++- include/linux/fs.h | 1 + init/Kconfig | 5 +++++ 4 files changed, 38 insertions(+), 2 deletions(-) commit 4aa9c692e052cf6db99db62a8fe0543e5c455da7 Author: Tejun Heo Date: Fri May 22 17:13:35 2015 -0400 bdi: separate out congested state into a separate struct Currently, a wb's (bdi_writeback) congestion state is carried in its ->state field; however, cgroup writeback support will require multiple wb's sharing the same congestion state. This patch separates out congestion state into its own struct - struct bdi_writeback_congested. A new field wb field, wb_congested, points to its associated congested struct. The default wb, bdi->wb, always points to bdi->wb_congested. While this patch adds a layer of indirection, it doesn't introduce any behavior changes. Signed-off-by: Tejun Heo Signed-off-by: Jens Axboe include/linux/backing-dev-defs.h | 14 ++++++++++++-- include/linux/backing-dev.h | 2 +- mm/backing-dev.c | 7 +++++-- 3 files changed, 18 insertions(+), 5 deletions(-) commit 8395cd9f813d5d7ed9870e642230acfcfc1e8a0a Author: Tejun Heo Date: Fri May 22 17:13:34 2015 -0400 writeback: add @gfp to wb_init() wb_init() currently always uses GFP_KERNEL but the planned cgroup writeback support needs using other allocation masks. Add @gfp to wb_init(). This patch doesn't introduce any behavior changes. Signed-off-by: Tejun Heo Reviewed-by: Jan Kara Cc: Jens Axboe Signed-off-by: Jens Axboe mm/backing-dev.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit a212b105b07d75b48b1a166378282e8a77fbf53d Author: Tejun Heo Date: Fri May 22 17:13:33 2015 -0400 bdi: make inode_to_bdi() inline Now that bdi definitions are moved to backing-dev-defs.h, backing-dev.h can include blkdev.h and inline inode_to_bdi() without worrying about introducing circular include dependency. The function gets called from hot paths and fairly trivial. This patch makes inode_to_bdi() and sb_is_blkdev_sb() that the function calls inline. blockdev_superblock and noop_backing_dev_info are EXPORT_GPL'd to allow the inline functions to be used from modules. While at it, make sb_is_blkdev_sb() return bool instead of int. v2: Fixed typo in description as suggested by Jan. Signed-off-by: Tejun Heo Reviewed-by: Jens Axboe Cc: Christoph Hellwig Signed-off-by: Jens Axboe fs/block_dev.c | 8 ++------ fs/fs-writeback.c | 16 ---------------- include/linux/backing-dev.h | 18 ++++++++++++++++-- include/linux/fs.h | 8 +++++++- mm/backing-dev.c | 1 + 5 files changed, 26 insertions(+), 25 deletions(-) commit 66114cad64bf76a155fec1f0fff0de771cf909d5 Author: Tejun Heo Date: Fri May 22 17:13:32 2015 -0400 writeback: separate out include/linux/backing-dev-defs.h With the planned cgroup writeback support, backing-dev related declarations will be more widely used across block and cgroup; unfortunately, including backing-dev.h from include/linux/blkdev.h makes cyclic include dependency quite likely. This patch separates out backing-dev-defs.h which only has the essential definitions and updates blkdev.h to include it. c files which need access to more backing-dev details now include backing-dev.h directly. This takes backing-dev.h off the common include dependency chain making it a lot easier to use it across block and cgroup. v2: fs/fat build failure fixed. Signed-off-by: Tejun Heo Reviewed-by: Jan Kara Cc: Jens Axboe Signed-off-by: Jens Axboe block/blk-integrity.c | 1 + block/blk-sysfs.c | 1 + block/bounce.c | 1 + block/genhd.c | 1 + drivers/block/drbd/drbd_int.h | 1 + drivers/block/pktcdvd.c | 1 + drivers/char/raw.c | 1 + drivers/md/bcache/request.c | 1 + drivers/md/dm.h | 1 + drivers/md/md.h | 1 + drivers/mtd/devices/block2mtd.c | 1 + fs/block_dev.c | 1 + fs/ext4/extents.c | 1 + fs/ext4/mballoc.c | 1 + fs/ext4/super.c | 1 + fs/f2fs/segment.h | 1 + fs/fat/file.c | 1 + fs/fat/inode.c | 1 + fs/hfs/super.c | 1 + fs/hfsplus/super.c | 1 + fs/nfs/filelayout/filelayout.c | 1 + fs/ocfs2/file.c | 1 + fs/reiserfs/super.c | 1 + fs/ufs/super.c | 1 + fs/xfs/xfs_file.c | 1 + include/linux/backing-dev-defs.h | 106 +++++++++++++++++++++++++++++++++++++++ include/linux/backing-dev.h | 102 +------------------------------------ include/linux/blkdev.h | 2 +- mm/madvise.c | 1 + 29 files changed, 134 insertions(+), 102 deletions(-) commit 4610007142823307d930ac890d822633a05ce08c Author: Tejun Heo Date: Fri May 22 17:13:31 2015 -0400 writeback: reorganize mm/backing-dev.c Move wb_shutdown(), bdi_register(), bdi_register_dev(), bdi_prune_sb(), bdi_remove_from_list() and bdi_unregister() so that init / exit functions are grouped together. This will make updating init / exit paths for cgroup writeback support easier. This is pure source file reorganization. Signed-off-by: Tejun Heo Reviewed-by: Jan Kara Cc: Jens Axboe Cc: Wu Fengguang Signed-off-by: Jens Axboe mm/backing-dev.c | 174 +++++++++++++++++++++++++++---------------------------- 1 file changed, 87 insertions(+), 87 deletions(-) commit f0054bb1e1f3be03cc33369df640db97f10f6172 Author: Tejun Heo Date: Fri May 22 17:13:30 2015 -0400 writeback: move backing_dev_info->wb_lock and ->worklist into bdi_writeback Currently, a bdi (backing_dev_info) embeds single wb (bdi_writeback) and the role of the separation is unclear. For cgroup support for writeback IOs, a bdi will be updated to host multiple wb's where each wb serves writeback IOs of a different cgroup on the bdi. To achieve that, a wb should carry all states necessary for servicing writeback IOs for a cgroup independently. This patch moves bdi->wb_lock and ->worklist into wb. * The lock protects bdi->worklist and bdi->wb.dwork scheduling. While moving, rename it to wb->work_lock as wb->wb_lock is confusing. Also, move wb->dwork downwards so that it's colocated with the new ->work_lock and ->work_list fields. * bdi_writeback_workfn() -> wb_workfn() bdi_wakeup_thread_delayed(bdi) -> wb_wakeup_delayed(wb) bdi_wakeup_thread(bdi) -> wb_wakeup(wb) bdi_queue_work(bdi, ...) -> wb_queue_work(wb, ...) __bdi_start_writeback(bdi, ...) -> __wb_start_writeback(wb, ...) get_next_work_item(bdi) -> get_next_work_item(wb) * bdi_wb_shutdown() is renamed to wb_shutdown() and now takes @wb. The function contained parts which belong to the containing bdi rather than the wb itself - testing cap_writeback_dirty and bdi_remove_from_list() invocation. Those are moved to bdi_unregister(). * bdi_wb_{init|exit}() are renamed to wb_{init|exit}(). Initializations of the moved bdi->wb_lock and ->work_list are relocated from bdi_init() to wb_init(). * As there's still only one bdi_writeback per backing_dev_info, all uses of bdi->state are mechanically replaced with bdi->wb.state introducing no behavior changes. Signed-off-by: Tejun Heo Reviewed-by: Jan Kara Cc: Jens Axboe Cc: Wu Fengguang Signed-off-by: Jens Axboe fs/fs-writeback.c | 86 +++++++++++++++++++++------------------------ include/linux/backing-dev.h | 12 +++---- mm/backing-dev.c | 59 +++++++++++++++---------------- 3 files changed, 75 insertions(+), 82 deletions(-) commit de1fff37b2781f9caae7bbb7b79fa788a9bb1115 Author: Tejun Heo Date: Fri May 22 17:13:29 2015 -0400 writeback: s/bdi/wb/ in mm/page-writeback.c Writeback operations will now be per wb (bdi_writeback) instead of bdi. Replace the relevant bdi references in symbol names and comments with wb. This patch is purely cosmetic and doesn't make any functional changes. Signed-off-by: Tejun Heo Reviewed-by: Jan Kara Cc: Wu Fengguang Cc: Jens Axboe Signed-off-by: Jens Axboe mm/page-writeback.c | 270 ++++++++++++++++++++++++++-------------------------- 1 file changed, 134 insertions(+), 136 deletions(-) commit a88a341a73be4ef035ca26170c849f002797da27 Author: Tejun Heo Date: Fri May 22 17:13:28 2015 -0400 writeback: move bandwidth related fields from backing_dev_info into bdi_writeback Currently, a bdi (backing_dev_info) embeds single wb (bdi_writeback) and the role of the separation is unclear. For cgroup support for writeback IOs, a bdi will be updated to host multiple wb's where each wb serves writeback IOs of a different cgroup on the bdi. To achieve that, a wb should carry all states necessary for servicing writeback IOs for a cgroup independently. This patch moves bandwidth related fields from backing_dev_info into bdi_writeback. * The moved fields are: bw_time_stamp, dirtied_stamp, written_stamp, write_bandwidth, avg_write_bandwidth, dirty_ratelimit, balanced_dirty_ratelimit, completions and dirty_exceeded. * writeback_chunk_size() and over_bground_thresh() now take @wb instead of @bdi. * bdi_writeout_fraction(bdi, ...) -> wb_writeout_fraction(wb, ...) bdi_dirty_limit(bdi, ...) -> wb_dirty_limit(wb, ...) bdi_position_ration(bdi, ...) -> wb_position_ratio(wb, ...) bdi_update_writebandwidth(bdi, ...) -> wb_update_write_bandwidth(wb, ...) [__]bdi_update_bandwidth(bdi, ...) -> [__]wb_update_bandwidth(wb, ...) bdi_{max|min}_pause(bdi, ...) -> wb_{max|min}_pause(wb, ...) bdi_dirty_limits(bdi, ...) -> wb_dirty_limits(wb, ...) * Init/exits of the relocated fields are moved to bdi_wb_init/exit() respectively. Note that explicit zeroing is dropped in the process as wb's are cleared in entirety anyway. * As there's still only one bdi_writeback per backing_dev_info, all uses of bdi->stat[] are mechanically replaced with bdi->wb.stat[] introducing no behavior changes. v2: Typo in description fixed as suggested by Jan. Signed-off-by: Tejun Heo Reviewed-by: Jan Kara Cc: Jens Axboe Cc: Wu Fengguang Cc: Jaegeuk Kim Cc: Steven Whitehouse Signed-off-by: Jens Axboe fs/f2fs/node.c | 4 +- fs/f2fs/segment.h | 2 +- fs/fs-writeback.c | 17 ++- fs/gfs2/super.c | 2 +- include/linux/backing-dev.h | 20 +-- include/linux/writeback.h | 19 ++- include/trace/events/writeback.h | 8 +- mm/backing-dev.c | 45 +++---- mm/page-writeback.c | 262 ++++++++++++++++++++------------------- 9 files changed, 187 insertions(+), 192 deletions(-) commit 93f78d882865cb90020d0f80a9523c99cf46924c Author: Tejun Heo Date: Fri May 22 17:13:27 2015 -0400 writeback: move backing_dev_info->bdi_stat[] into bdi_writeback Currently, a bdi (backing_dev_info) embeds single wb (bdi_writeback) and the role of the separation is unclear. For cgroup support for writeback IOs, a bdi will be updated to host multiple wb's where each wb serves writeback IOs of a different cgroup on the bdi. To achieve that, a wb should carry all states necessary for servicing writeback IOs for a cgroup independently. This patch moves bdi->bdi_stat[] into wb. * enum bdi_stat_item is renamed to wb_stat_item and the prefix of all enums is changed from BDI_ to WB_. * BDI_STAT_BATCH() -> WB_STAT_BATCH() * [__]{add|inc|dec|sum}_wb_stat(bdi, ...) -> [__]{add|inc}_wb_stat(wb, ...) * bdi_stat[_error]() -> wb_stat[_error]() * bdi_writeout_inc() -> wb_writeout_inc() * stat init is moved to bdi_wb_init() and bdi_wb_exit() is added and frees stat. * As there's still only one bdi_writeback per backing_dev_info, all uses of bdi->stat[] are mechanically replaced with bdi->wb.stat[] introducing no behavior changes. Signed-off-by: Tejun Heo Reviewed-by: Jan Kara Cc: Jens Axboe Cc: Wu Fengguang Cc: Miklos Szeredi Cc: Trond Myklebust Signed-off-by: Jens Axboe fs/fs-writeback.c | 2 +- fs/fuse/file.c | 12 ++++---- fs/nfs/internal.h | 2 +- fs/nfs/write.c | 3 +- include/linux/backing-dev.h | 68 +++++++++++++++++++++------------------------ mm/backing-dev.c | 60 ++++++++++++++++++++++++--------------- mm/page-writeback.c | 55 ++++++++++++++++++------------------ 7 files changed, 106 insertions(+), 96 deletions(-) commit 4452226ea276e74fc3e252c88d9bb7e8f8e44bf0 Author: Tejun Heo Date: Fri May 22 17:13:26 2015 -0400 writeback: move backing_dev_info->state into bdi_writeback Currently, a bdi (backing_dev_info) embeds single wb (bdi_writeback) and the role of the separation is unclear. For cgroup support for writeback IOs, a bdi will be updated to host multiple wb's where each wb serves writeback IOs of a different cgroup on the bdi. To achieve that, a wb should carry all states necessary for servicing writeback IOs for a cgroup independently. This patch moves bdi->state into wb. * enum bdi_state is renamed to wb_state and the prefix of all enums is changed from BDI_ to WB_. * Explicit zeroing of bdi->state is removed without adding zeoring of wb->state as the whole data structure is zeroed on init anyway. * As there's still only one bdi_writeback per backing_dev_info, all uses of bdi->state are mechanically replaced with bdi->wb.state introducing no behavior changes. Signed-off-by: Tejun Heo Reviewed-by: Jan Kara Cc: Jens Axboe Cc: Wu Fengguang Cc: drbd-dev@lists.linbit.com Cc: Neil Brown Cc: Alasdair Kergon Cc: Mike Snitzer Signed-off-by: Jens Axboe block/blk-core.c | 1 - drivers/block/drbd/drbd_main.c | 10 +++++----- drivers/md/dm.c | 2 +- drivers/md/raid1.c | 4 ++-- drivers/md/raid10.c | 2 +- fs/fs-writeback.c | 14 +++++++------- include/linux/backing-dev.h | 24 ++++++++++++------------ mm/backing-dev.c | 20 ++++++++++---------- 8 files changed, 38 insertions(+), 39 deletions(-) commit ad7fa852d3d2816d68a138ebc5bc8967aeb7fd86 Author: Tejun Heo Date: Wed May 27 20:00:02 2015 -0400 memcg: implement mem_cgroup_css_from_page() Implement mem_cgroup_css_from_page() which returns the cgroup_subsys_state of the memcg associated with a given page on the default hierarchy. This will be used by cgroup writeback support. This function assumes that page->mem_cgroup association doesn't change until the page is released, which is true on the default hierarchy as long as replace_page_cache_page() is not used. As the only user of replace_page_cache_page() is FUSE which won't support cgroup writeback for the time being, this works for now, and replace_page_cache_page() will soon be updated so that the invariant actually holds. Note that the RCU protected page->mem_cgroup access is consistent with other usages across memcg but ultimately incorrect. These unlocked accesses are missing required barriers. page->mem_cgroup should be made an RCU pointer and updated and accessed using RCU operations. v4: Instead of triggering WARN, return the root css on the traditional hierarchies. This makes the function a lot easier to deal with especially as there's no light way to synchronize against hierarchy rebinding. v3: s/mem_cgroup_migrate()/mem_cgroup_css_from_page()/ v2: Trigger WARN if the function is used on the traditional hierarchies and add comment about the assumed invariant. Signed-off-by: Tejun Heo Cc: Johannes Weiner Cc: Michal Hocko Signed-off-by: Jens Axboe include/linux/memcontrol.h | 1 + mm/memcontrol.c | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) commit 1d933cf096e3aea15f1aec8297657b7a846fab63 Author: Tejun Heo Date: Fri May 22 17:13:24 2015 -0400 blkcg: implement bio_associate_blkcg() Currently, a bio can only be associated with the io_context and blkcg of %current using bio_associate_current(). This is too restrictive for cgroup writeback support. Implement bio_associate_blkcg() which associates a bio with the specified blkcg. bio_associate_blkcg() leaves the io_context unassociated. bio_associate_current() is updated so that it considers a bio as already associated if it has a blkcg_css, instead of an io_context, associated with it. Signed-off-by: Tejun Heo Cc: Jens Axboe Cc: Vivek Goyal Signed-off-by: Jens Axboe block/bio.c | 24 +++++++++++++++++++++++- include/linux/bio.h | 3 +++ 2 files changed, 26 insertions(+), 1 deletion(-) commit fd383c2d3cae146337cea809de0d622b8b887e6c Author: Tejun Heo Date: Fri May 22 17:13:23 2015 -0400 blkcg: implement task_get_blkcg_css() Implement a wrapper around task_get_css() to acquire the blkcg css for a given task. The wrapper is necessary for cgroup writeback support as there will be places outside blkcg proper trying to acquire blkcg_css and blkio_cgrp_id will be undefined when !CONFIG_BLK_CGROUP. Signed-off-by: Tejun Heo Signed-off-by: Jens Axboe include/linux/blk-cgroup.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit ec438699a9ae0856c2ce20a50dd39cdc7e92a732 Author: Tejun Heo Date: Fri May 22 17:13:22 2015 -0400 cgroup, block: implement task_get_css() and use it in bio_associate_current() bio_associate_current() currently open codes task_css() and css_tryget_online() to find and pin $current's blkcg css. Abstract it into task_get_css() which is implemented from cgroup side. As a task is always associated with an online css for every subsystem except while the css_set update is propagating, task_get_css() retries till css_tryget_online() succeeds. This is a cleanup and shouldn't lead to noticeable behavior changes. Signed-off-by: Tejun Heo Cc: Li Zefan Cc: Jens Axboe Cc: Vivek Goyal Signed-off-by: Jens Axboe block/bio.c | 11 +---------- include/linux/cgroup.h | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 10 deletions(-) commit 496d5e7560dbb84399dbd92316fc33857aa83900 Author: Tejun Heo Date: Fri May 22 17:13:21 2015 -0400 blkcg: add blkcg_root_css Add global constant blkcg_root_css which points to &blkcg_root.css. This will be used by cgroup writeback support. If blkcg is disabled, it's defined as ERR_PTR(-EINVAL). v2: The declarations moved to include/linux/blk-cgroup.h as suggested by Vivek. Signed-off-by: Tejun Heo Cc: Vivek Goyal Cc: Jens Axboe Signed-off-by: Jens Axboe block/blk-cgroup.c | 2 ++ include/linux/blk-cgroup.h | 3 +++ 2 files changed, 5 insertions(+) commit 56161634e4824380a67243a4cf3fa52eb1e5d836 Author: Tejun Heo Date: Fri May 22 17:13:20 2015 -0400 memcg: add mem_cgroup_root_css Add global mem_cgroup_root_css which points to the root memcg css. This will be used by cgroup writeback support. If memcg is disabled, it's defined as ERR_PTR(-EINVAL). Signed-off-by: Tejun Heo Cc: Johannes Weiner aCc: Michal Hocko Signed-off-by: Jens Axboe include/linux/memcontrol.h | 4 ++++ mm/memcontrol.c | 2 ++ 2 files changed, 6 insertions(+) commit ec13b1d6f0a0457312e615335ce8ceb07da50a11 Author: Tejun Heo Date: Fri May 22 17:13:19 2015 -0400 blkcg: always create the blkcg_gq for the root blkcg Currently, blkcg does a minor optimization where the root blkcg is created when the first blkcg policy is activated on a queue and destroyed on the deactivation of the last. On systems where blkcg is configured but not used, this saves one blkcg_gq struct per queue. On systems where blkcg is actually used, there's no difference. The only case where this can lead to any meaninful, albeit still minute, save in memory consumption is when all blkcg policies are deactivated after being widely used in the system, which is a hihgly unlikely scenario. The conditional existence of root blkcg_gq has already created several bugs in blkcg and became an issue once again for the new per-cgroup wb_congested mechanism for cgroup writeback support leading to a NULL dereference when no blkcg policy is active. This is really not worth bothering with. This patch makes blkcg always allocate and link the root blkcg_gq and release it only on queue destruction. Signed-off-by: Tejun Heo Reported-by: Fengguang Wu Signed-off-by: Jens Axboe block/blk-cgroup.c | 96 +++++++++++++++++++++++------------------------------- 1 file changed, 41 insertions(+), 55 deletions(-) commit efa7d1c733d1d2c1a468b85126d70bad9fdf6ba8 Author: Tejun Heo Date: Fri May 22 17:13:18 2015 -0400 update !CONFIG_BLK_CGROUP dummies in include/linux/blk-cgroup.h The header file will be used more widely with the pending cgroup writeback support and the current set of dummy declarations aren't enough to handle different config combinations. Update as follows. * Drop the struct cgroup declaration. None of the dummy defs need it. * Define blkcg as an empty struct instead of just declaring it. * Wrap dummy function defs in CONFIG_BLOCK. Some functions use block data types and none of them are to be used w/o block enabled. Signed-off-by: Tejun Heo Signed-off-by: Jens Axboe include/linux/blk-cgroup.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit eea8f41cc58849e354ecf8b95bd7f806e1d1f703 Author: Tejun Heo Date: Fri May 22 17:13:17 2015 -0400 blkcg: move block/blk-cgroup.h to include/linux/blk-cgroup.h cgroup aware writeback support will require exposing some of blkcg details. In preprataion, move block/blk-cgroup.h to include/linux/blk-cgroup.h. This patch is pure file move. Signed-off-by: Tejun Heo Cc: Vivek Goyal Signed-off-by: Jens Axboe block/blk-cgroup.c | 2 +- block/blk-cgroup.h | 603 --------------------------------------------- block/blk-core.c | 2 +- block/blk-sysfs.c | 2 +- block/blk-throttle.c | 2 +- block/cfq-iosched.c | 2 +- block/elevator.c | 2 +- include/linux/blk-cgroup.h | 603 +++++++++++++++++++++++++++++++++++++++++++++ 8 files changed, 609 insertions(+), 609 deletions(-) commit c4843a7593a9df3ff5b1806084cefdfa81dd7c79 Author: Greg Thelen Date: Fri May 22 17:13:16 2015 -0400 memcg: add per cgroup dirty page accounting When modifying PG_Dirty on cached file pages, update the new MEM_CGROUP_STAT_DIRTY counter. This is done in the same places where global NR_FILE_DIRTY is managed. The new memcg stat is visible in the per memcg memory.stat cgroupfs file. The most recent past attempt at this was http://thread.gmane.org/gmane.linux.kernel.cgroups/8632 The new accounting supports future efforts to add per cgroup dirty page throttling and writeback. It also helps an administrator break down a container's memory usage and provides evidence to understand memcg oom kills (the new dirty count is included in memcg oom kill messages). The ability to move page accounting between memcg (memory.move_charge_at_immigrate) makes this accounting more complicated than the global counter. The existing mem_cgroup_{begin,end}_page_stat() lock is used to serialize move accounting with stat updates. Typical update operation: memcg = mem_cgroup_begin_page_stat(page) if (TestSetPageDirty()) { [...] mem_cgroup_update_page_stat(memcg) } mem_cgroup_end_page_stat(memcg) Summary of mem_cgroup_end_page_stat() overhead: - Without CONFIG_MEMCG it's a no-op - With CONFIG_MEMCG and no inter memcg task movement, it's just rcu_read_lock() - With CONFIG_MEMCG and inter memcg task movement, it's rcu_read_lock() + spin_lock_irqsave() A memcg parameter is added to several routines because their callers now grab mem_cgroup_begin_page_stat() which returns the memcg later needed by for mem_cgroup_update_page_stat(). Because mem_cgroup_begin_page_stat() may disable interrupts, some adjustments are needed: - move __mark_inode_dirty() from __set_page_dirty() to its caller. __mark_inode_dirty() locking does not want interrupts disabled. - use spin_lock_irqsave(tree_lock) rather than spin_lock_irq() in __delete_from_page_cache(), replace_page_cache_page(), invalidate_complete_page2(), and __remove_mapping(). text data bss dec hex filename 8925147 1774832 1785856 12485835 be84cb vmlinux-!CONFIG_MEMCG-before 8925339 1774832 1785856 12486027 be858b vmlinux-!CONFIG_MEMCG-after +192 text bytes 8965977 1784992 1785856 12536825 bf4bf9 vmlinux-CONFIG_MEMCG-before 8966750 1784992 1785856 12537598 bf4efe vmlinux-CONFIG_MEMCG-after +773 text bytes Performance tests run on v4.0-rc1-36-g4f671fe2f952. Lower is better for all metrics, they're all wall clock or cycle counts. The read and write fault benchmarks just measure fault time, they do not include I/O time. * CONFIG_MEMCG not set: baseline patched kbuild 1m25.030000(+-0.088% 3 samples) 1m25.426667(+-0.120% 3 samples) dd write 100 MiB 0.859211561 +-15.10% 0.874162885 +-15.03% dd write 200 MiB 1.670653105 +-17.87% 1.669384764 +-11.99% dd write 1000 MiB 8.434691190 +-14.15% 8.474733215 +-14.77% read fault cycles 254.0(+-0.000% 10 samples) 253.0(+-0.000% 10 samples) write fault cycles 2021.2(+-3.070% 10 samples) 1984.5(+-1.036% 10 samples) * CONFIG_MEMCG=y root_memcg: baseline patched kbuild 1m25.716667(+-0.105% 3 samples) 1m25.686667(+-0.153% 3 samples) dd write 100 MiB 0.855650830 +-14.90% 0.887557919 +-14.90% dd write 200 MiB 1.688322953 +-12.72% 1.667682724 +-13.33% dd write 1000 MiB 8.418601605 +-14.30% 8.673532299 +-15.00% read fault cycles 266.0(+-0.000% 10 samples) 266.0(+-0.000% 10 samples) write fault cycles 2051.7(+-1.349% 10 samples) 2049.6(+-1.686% 10 samples) * CONFIG_MEMCG=y non-root_memcg: baseline patched kbuild 1m26.120000(+-0.273% 3 samples) 1m25.763333(+-0.127% 3 samples) dd write 100 MiB 0.861723964 +-15.25% 0.818129350 +-14.82% dd write 200 MiB 1.669887569 +-13.30% 1.698645885 +-13.27% dd write 1000 MiB 8.383191730 +-14.65% 8.351742280 +-14.52% read fault cycles 265.7(+-0.172% 10 samples) 267.0(+-0.000% 10 samples) write fault cycles 2070.6(+-1.512% 10 samples) 2084.4(+-2.148% 10 samples) As expected anon page faults are not affected by this patch. tj: Updated to apply on top of the recent cancel_dirty_page() changes. Signed-off-by: Sha Zhengju Signed-off-by: Greg Thelen Signed-off-by: Tejun Heo Signed-off-by: Jens Axboe Documentation/cgroups/memory.txt | 1 + fs/buffer.c | 34 +++++++++++++++++++++------ fs/xfs/xfs_aops.c | 12 ++++++++-- include/linux/memcontrol.h | 1 + include/linux/mm.h | 6 +++-- include/linux/pagemap.h | 3 ++- mm/filemap.c | 31 +++++++++++++++++-------- mm/memcontrol.c | 24 ++++++++++++++++++- mm/page-writeback.c | 50 +++++++++++++++++++++++++++++++++------- mm/rmap.c | 2 ++ mm/truncate.c | 14 +++++++---- mm/vmscan.c | 17 ++++++++++---- 12 files changed, 156 insertions(+), 39 deletions(-) commit 11f81becca04bb7d2826a9b65bb8d27b0a1bb543 Author: Tejun Heo Date: Fri May 22 17:13:15 2015 -0400 page_writeback: revive cancel_dirty_page() in a restricted form cancel_dirty_page() had some issues and b9ea25152e56 ("page_writeback: clean up mess around cancel_dirty_page()") replaced it with account_page_cleaned() which makes the caller responsible for clearing the dirty bit; unfortunately, the planned changes for cgroup writeback support requires synchronization between dirty bit manipulation and stat updates. While we can open-code such synchronization in each account_page_cleaned() callsite, that's gonna be unnecessarily awkward and verbose. This patch revives cancel_dirty_page() but in a more restricted form. All it does is TestClearPageDirty() followed by account_page_cleaned() invocation if the page was dirty. This helper covers all account_page_cleaned() usages except for __delete_from_page_cache() which is a special case anyway and left alone. As this leaves no module user for account_page_cleaned(), EXPORT_SYMBOL() is dropped from it. This patch just revives cancel_dirty_page() as a trivial wrapper to replace equivalent usages and doesn't introduce any functional changes. Signed-off-by: Tejun Heo Cc: Konstantin Khlebnikov Signed-off-by: Jens Axboe .../lustre/include/linux/lustre_patchless_compat.h | 4 +--- fs/buffer.c | 4 ++-- include/linux/mm.h | 1 + mm/page-writeback.c | 27 ++++++++++++++++------ mm/truncate.c | 4 +--- 5 files changed, 25 insertions(+), 15 deletions(-) commit cc2e9328ed09cfd07c2b18e7d9d1826f30df9ec0 Author: Hiep Cao Minh Date: Fri May 22 18:59:37 2015 +0900 spi: rspi: Re-do the returning value of qspi_transfer_out_in To reduce complexity of code, drop "ret" then qspi_transfer_out_in function should return the value of "qspi_trigger_transfer_out_in" directly. Signed-off-by: Hiep Cao Minh Acked-by: Geert Uytterhoeven Signed-off-by: Mark Brown drivers/spi/spi-rspi.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit a91bbe7d3fbc448dda9822467561e838cea005f8 Author: Hiep Cao Minh Date: Fri May 22 18:59:36 2015 +0900 spi: rspi: modify the name of "qspi_trigger_transfer_out_int" function The name of "qspi_trigger_transfer_out_int" function should be "qspi_trigger_transfer_out_in" without "t". Signed-off-by: Hiep Cao Minh Acked-by: Geert Uytterhoeven Signed-off-by: Mark Brown drivers/spi/spi-rspi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 0315253b19bbc63eedad2f6125c21e280c76e29b Author: Chris Lesiak Date: Mon Jun 1 11:27:37 2015 -0500 hwmon: (ntc_thermistor) fix iio raw to microvolts conversion The function ntc_adc_iio_read was assuming both a 12 bit ADC and that pullup_uv is the same as the ADC reference voltage. If either assumption is false, then the result is incorrect. Attempt to use iio_convert_raw_to_processed to convert the raw value to microvolts. It will fail for iio channels that don't support support IIO_CHAN_INFO_SCALE; in that case fall back to the assumptions. Signed-off-by: Chris Lesiak Signed-off-by: Guenter Roeck drivers/hwmon/ntc_thermistor.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) commit 3b0213d56eb7f78c9a0e78dfcd9ec077bb1cf4e9 Author: Gregory Fong Date: Thu May 28 19:14:05 2015 -0700 gpio: Add GPIO support for Broadcom STB SoCs This adds support for the GPIO IP "UPG GIO" used on Broadcom STB SoCs (BCM7XXX and some others). Uses basic_mmio_gpio to instantiate a gpio_chip for each bank. The driver assumes that it handles the base set of GPIOs on the system and that it can start its numbering sequence from 0, so any GPIO expanders used with it must dynamically assign GPIO numbers after this driver has finished registering its GPIOs. Does not implement the interrupt-controller portion yet, will be done in a future commit. v2: - change include to use instead of - get rid of unnecessary imask member in struct bank - rename GPIO_PER_BANK -> MAX_GPIO_PER_BANK - always have 32 GPIOs per bank and add 'width' member in struct bank to hold actual number of GPIOs in use - mark of_match table as const List-usage-fixed-by: Brian Norris Signed-off-by: Gregory Fong Signed-off-by: Linus Walleij MAINTAINERS | 7 ++ drivers/gpio/Kconfig | 8 ++ drivers/gpio/Makefile | 1 + drivers/gpio/gpio-brcmstb.c | 252 ++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 268 insertions(+) commit 6d0767c10f491034c875c1af11058f03caef34b1 Author: Rameshwar Prasad Sahu Date: Tue Jun 2 14:33:33 2015 +0530 dmaengine: xgene-dma: Fix "incorrect type in assignement" warnings This patch fixes sparse warnings like incorrect type in assignment (different base types), cast to restricted __le64. Reported-by: kbuild test robot Signed-off-by: Rameshwar Prasad Sahu Signed-off-by: Vinod Koul drivers/dma/xgene-dma.c | 173 ++++++++++++++++++------------------------------ 1 file changed, 66 insertions(+), 107 deletions(-) commit b806ef3bbed39c95b45343bf0fd78802142f6017 Merge: 73cdaae 1156256 Author: Doug Ledford Date: Tue Jun 2 09:33:22 2015 -0400 Merge branch 'for-4.2-misc' into k.o/for-4.2 commit 73cdaaeed10d91441cb946200b5dbbbeb143bace Author: Ira Weiny Date: Sun May 31 17:15:31 2015 -0400 IB/core cleanup: Add const to args - agent_send_response In order to support constant callers of agent_send_response we add const specifiers to the its pointer arguments. Adjust the call tree accordingly. Signed-off-by: Ira Weiny Reviewed-by: Hal Rosenstock Reviewed-by: Jason Gunthorpe Signed-off-by: Doug Ledford drivers/infiniband/core/addr.c | 4 ++-- drivers/infiniband/core/agent.c | 8 ++++---- drivers/infiniband/core/agent.h | 4 ++-- drivers/infiniband/core/cache.c | 8 ++++---- drivers/infiniband/core/verbs.c | 9 +++++---- include/rdma/ib_addr.h | 6 +++--- include/rdma/ib_cache.h | 8 ++++---- include/rdma/ib_verbs.h | 9 +++++---- 8 files changed, 29 insertions(+), 27 deletions(-) commit a97e2d86a9b88ea9e9a280b594b80f0eec2c955b Author: Ira Weiny Date: Sun May 31 17:15:30 2015 -0400 IB/core cleanup: Add const on args - device->process_mad The process_mad device function declares some parameters as "in". Make those parameters const and adjust the call tree under process_mad in the various drivers accordingly. Signed-off-by: Ira Weiny Reviewed-by: Hal Rosenstock Reviewed-by: Jason Gunthorpe Signed-off-by: Doug Ledford drivers/infiniband/hw/amso1100/c2_provider.c | 6 +++--- drivers/infiniband/hw/cxgb3/iwch_provider.c | 6 +++--- drivers/infiniband/hw/cxgb4/provider.c | 5 +++-- drivers/infiniband/hw/ehca/ehca_iverbs.h | 4 ++-- drivers/infiniband/hw/ehca/ehca_sqp.c | 14 +++++++------- drivers/infiniband/hw/ipath/ipath_mad.c | 8 ++++---- drivers/infiniband/hw/ipath/ipath_verbs.h | 6 +++--- drivers/infiniband/hw/mlx4/mad.c | 21 +++++++++++---------- drivers/infiniband/hw/mlx4/mlx4_ib.h | 8 ++++---- drivers/infiniband/hw/mlx5/mad.c | 8 ++++---- drivers/infiniband/hw/mlx5/mlx5_ib.h | 8 ++++---- drivers/infiniband/hw/mthca/mthca_cmd.c | 4 ++-- drivers/infiniband/hw/mthca/mthca_cmd.h | 4 ++-- drivers/infiniband/hw/mthca/mthca_dev.h | 6 +++--- drivers/infiniband/hw/mthca/mthca_mad.c | 10 +++++----- drivers/infiniband/hw/nes/nes_verbs.c | 4 ++-- drivers/infiniband/hw/ocrdma/ocrdma_ah.c | 6 +++--- drivers/infiniband/hw/ocrdma/ocrdma_ah.h | 6 +++--- drivers/infiniband/hw/qib/qib_mad.c | 10 +++++----- drivers/infiniband/hw/qib/qib_verbs.h | 4 ++-- drivers/net/ethernet/mellanox/mlx5/core/mad.c | 2 +- include/linux/mlx5/driver.h | 2 +- include/rdma/ib_verbs.h | 6 +++--- 23 files changed, 80 insertions(+), 78 deletions(-) commit 5ede9289859d94746d1ce55ad5ba038b42b9406c Author: Ira Weiny Date: Sun May 31 17:15:29 2015 -0400 IB/core cleanup: Add const to RDMA helpers The ib_device passed to the new RDMA helpers is constant. Declare the ib_device as const in the following functions. rdma_protocol_ib rdma_protocol_roce rdma_protocol_iwarp rdma_ib_or_roce rdma_cap_ib_mad rdma_cap_ib_smi rdma_cap_ib_cm rdma_cap_iw_cm rdma_cap_ib_sa rdma_cap_ib_mcast rdma_cap_af_ib rdma_cap_eth_ah Signed-off-by: Ira Weiny Reviewed-by: Hal Rosenstock Reviewed-by: Jason Gunthorpe Signed-off-by: Doug Ledford include/rdma/ib_verbs.h | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit 19d643d68bd678449d63209dff53b4585df9f149 Author: Stefan Agner Date: Mon Jun 1 23:53:43 2015 +0200 dmaengine: fix kernel-doc documentation Fix function names in kernel-doc function comments. Signed-off-by: Stefan Agner Signed-off-by: Vinod Koul drivers/dma/dmaengine.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1156256811e42908fd13c4cfcf32965d8b93f2a8 Author: Roland Dreier Date: Fri May 29 23:11:27 2015 -0700 IB/mlx4: Fix error paths in mlx4_ib_create_flow() The unwinding clean up code are err_create_flow starts at the current index i. That means we shouldn't increment i until we're really sure we won't have to destroy the current flow; otherwise we might increment the index, fail inside an is_bonded block, and end up accessing off the end of the reg_id[] array. This was detected by Coverity (CID 1271229). Signed-off-by: Roland Dreier Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx4/main.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 18eaf1f1959add9bbbfa5442fc5d9b59f7d4e1bd Author: Roland Dreier Date: Fri May 29 23:10:31 2015 -0700 RDMA/ocrdma: Fix memory leak in _ocrdma_alloc_pd() If ocrdma_get_pd_num() fails, then we need to free the pd struct we allocated. This was detected by Coverity (CID 1271245). Signed-off-by: Roland Dreier Acked-By: Devesh Sharma Signed-off-by: Doug Ledford drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit d655a9fbc8a51ac8d92db7ff5a599aab17dce3ca Author: Wengang Wang Date: Thu May 21 13:11:40 2015 +0800 rds: re-entry of rds_ib_xmit/rds_iw_xmit The BUG_ON at line 452/453 is triggered in function rds_send_xmit. 441 while (ret) { 442 tmp = min_t(int, ret, sg->length - 443 conn->c_xmit_data_off); 444 conn->c_xmit_data_off += tmp; 445 ret -= tmp; 446 if (conn->c_xmit_data_off == sg->length) { 447 conn->c_xmit_data_off = 0; 448 sg++; 449 conn->c_xmit_sg++; 450 if (ret != 0 && conn->c_xmit_sg == rm->data.op_nents) 451 printk(KERN_ERR "conn %p rm %p sg %p ret %d\n", conn, rm, sg, ret); 452 BUG_ON(ret != 0 && 453 conn->c_xmit_sg == rm->data.op_nents); 454 } 455 } it is complaining the total sent length is bigger that we want to send. rds_ib_xmit() is wrong for the second entry for the same rds_message returning wrong value. the sg and off passed by rds_send_xmit to rds_ib_xmit is based on scatterlist.offset/length, but the rds_ib_xmit action is based on scatterlist.dma_address/dma_length. in case dma_length is larger than length there is problem. for the 2nd and later entries of rds_ib_xmit for same rds_message, at least one of the following two is wrong: 1) the scatterlist to start with, the choosen one can far beyond the correct one. 2) the offset to start with within the scatterlist. fix: add op_dmasg and op_dmaoff to rm_data_op structure indicating the scatterlist and offset within the it to start with for rds_ib_xmit respectively. op_dmasg and op_dmaoff are initialized to zero when doing dma mapping for the first see of the message and are changed when filling send slots. the same applies to rds_iw_xmit too. Signed-off-by: Wengang Wang Signed-off-by: Doug Ledford net/rds/ib_send.c | 17 +++++++++++------ net/rds/iw_send.c | 18 +++++++++++------- net/rds/rds.h | 2 ++ 3 files changed, 24 insertions(+), 13 deletions(-) commit 523749678145e932014394e1fe44759ccedec576 Author: Bart Van Assche Date: Tue May 26 15:03:48 2015 +0200 IB/ipoib: Fix RCU annotations in ipoib_neigh_hash_init() Avoid that sparse complains about ipoib_neigh_hash_init(). This patch does not change any functionality. See also patch "IPoIB: Fix memory leak in the neigh table deletion flow" (commit ID 66172c09938b). Signed-off-by: Bart Van Assche Cc: Shlomo Pongratz Signed-off-by: Doug Ledford drivers/infiniband/ulp/ipoib/ipoib_main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 854ace98e71b68e6e98742f8035315d04288cefe Author: Faisal Latif Date: Mon May 18 15:28:14 2015 -0500 RDMA/nes: Enable the use of the tos field in the nes driver RDMA/nes: Enable the use of the tos field in the nes driver Signed-off-by: Faisal Latif Signed-off-by: Tatyana Nikolova Signed-off-by: Doug Ledford drivers/infiniband/hw/nes/nes_cm.c | 7 +++++++ drivers/infiniband/hw/nes/nes_cm.h | 2 ++ 2 files changed, 9 insertions(+) commit 68cdba068d6b7ecb63106151b3b15be245c78f07 Author: Steve Wise Date: Mon May 18 15:27:10 2015 -0500 RDMA/iw_cm: Export tos field to iwarp providers rdma-cma/iw_cm: Export tos field to iwarp providers Signed-off-by: Steve Wise Signed-off-by: Tatyana Nikolova Signed-off-by: Doug Ledford drivers/infiniband/core/cma.c | 2 ++ include/rdma/iw_cm.h | 1 + 2 files changed, 3 insertions(+) commit 88de6af24f2b48b06c514d3c3d0a8f22fafe30bd Author: Trond Myklebust Date: Mon Jun 1 15:10:25 2015 -0400 SUNRPC: Fix a memory leak in the backchannel code req->rq_private_buf isn't initialised when xprt_setup_backchannel calls xprt_free_allocation. Fixes: fb7a0b9addbdb ("nfs41: New backchannel helper routines") Cc: stable@vger.kernel.org Signed-off-by: Trond Myklebust net/sunrpc/backchannel_rqst.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 13985b1f77d09623f4114ce2d57e69a027ed9a09 Author: Julia Lawall Date: Thu May 28 23:02:18 2015 +0200 NFS: drop unneeded goto Delete jump to a label on the next line, when that label is not used elsewhere. A simplified version of the semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @r@ identifier l; @@ -if (...) goto l; -l: // Also drop the unnecessary ret variable. Signed-off-by: Julia Lawall Signed-off-by: Trond Myklebust fs/nfs/nfs4idmap.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) commit 9300fdba250cbb71574eb3c6af2540219d926717 Author: Stefan Hajnoczi Date: Wed May 6 09:32:03 2015 +0100 SUNRPC: drop stale doc comments in xprtsock.c Several functions have outdated arguments listed in the doc comments. Drop documentation for arguments that no longer exist. Signed-off-by: Stefan Hajnoczi Signed-off-by: Trond Myklebust net/sunrpc/xprtsock.c | 8 -------- 1 file changed, 8 deletions(-) commit d683cc49daf7c5afca8cd9654aaa1bf63cdf2ad9 Author: Chuck Lever Date: Tue May 26 11:53:52 2015 -0400 NFS: Fix size of NFSACL SETACL operations When encoding the NFSACL SETACL operation, reserve just the estimated size of the ACL rather than a fixed maximum. This eliminates needless zero padding on the wire that the server ignores. Fixes: ee5dc7732bd5 ('NFS: Fix "kernel BUG at fs/nfs/nfs3xdr.c:1338!"') Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust fs/nfs/nfs3xdr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7ef5ca4fe41e6a51d9bdcbbf7c66f203675e8500 Author: NeilBrown Date: Fri May 8 13:10:40 2015 +1000 NFS: report more appropriate block size for directories. In glibc 2.21 (and several previous), a call to opendir() will result in a 32K (BUFSIZ*4) buffer being allocated and passed to getdents. However a call to fdopendir() results in an 'fstat' request to determine block size and a matching buffer allocated for subsequent use with getdents. This will typically be 1M. The first getdents call on an NFS directory will always use READDIR_PLUS (or NFSv4 equivalent) if available. Subsequent getdents calls only use this more expensive version if some 'stat' requests are made between the getdents calls. For this reason it is good to keep at least that first getdents call relatively short. When fdopendir() and readdir() is used on a large directory, it takes approximately 32 times as long to complete as using "opendir". Current versions of 'find' use fdopendir() and demonstrate this slowness. 'stat' on a directory currently returns the 'wsize'. This number has no meaning on directories. Actual READDIR requests are limited to ->dtsize, which itself is capped at 4 pages, coincidently the same as BUFSIZ*4. So this is a meaningful number to use as the blocksize on directories, and has the effect of making 'find' on large directories go a lot faster. Signed-off-by: NeilBrown Signed-off-by: Trond Myklebust fs/nfs/inode.c | 2 ++ 1 file changed, 2 insertions(+) commit 5cae02f42793130e1387f4ec09c4d07056ce9fa5 Author: Trond Myklebust Date: Mon Jun 1 10:30:11 2015 -0400 NFSv4: Always drain the slot table before re-establishing the lease While the NFSv4.1 code has always drained the slot tables in order to stop non-recovery related RPC calls when doing lease recovery, the NFSv4 code did not. The reason for the difference in behaviour is that NFSv4 does not have session state, and so RPC calls can in theory proceed while recovery is happening. In practice, however, anything I/O or state related needs to wait until recovery is over. This patch changes the behaviour of NFSv4 to match that of NFSv4.1 so that we can simplify the state recovery code by assuming that we do not have to deal with races between recovery and ordinary I/O. Signed-off-by: Trond Myklebust fs/nfs/nfs4state.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 733cf014f02040b3ad5864f3fd73d50d49c84b49 Author: Y Vo Date: Fri May 29 16:52:41 2015 +0700 gpio: xgene: add ACPI support for APM X-Gene GPIO standby driver Add ACPI support for APM X-Gene GPIO standby driver. Signed-off-by: Y Vo Signed-off-by: Linus Walleij drivers/gpio/gpio-xgene-sb.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) commit 051ebd101b05c09d9b5b673e19fb0586e9bfec56 Author: Thomas Gleixner Date: Tue Jun 2 14:13:46 2015 +0200 clockevents: Use set/get state helper functions Signed-off-by: Thomas Gleixner Cc: Viresh Kumar Cc: Peter Zijlstra kernel/time/clockevents.c | 11 ++++++----- kernel/time/tick-common.c | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) commit d7eb231c71420bc34ac3d35403115600f920cfc2 Author: Thomas Gleixner Date: Tue Jun 2 14:08:46 2015 +0200 clockevents: Provide functions to set and get the state We want to rename dev->state, so provide proper get and set functions. Rename clockevents_set_state() to clockevents_switch_state() to avoid confusion. Signed-off-by: Thomas Gleixner Cc: Viresh Kumar Cc: Peter Zijlstra kernel/time/clockevents.c | 18 +++++++++--------- kernel/time/tick-broadcast.c | 12 ++++++------ kernel/time/tick-common.c | 4 ++-- kernel/time/tick-internal.h | 15 +++++++++++++-- kernel/time/tick-oneshot.c | 10 +++++----- 5 files changed, 35 insertions(+), 24 deletions(-) commit 472c4a9437d3c6a0b1e59df7c5aa14075946aa70 Author: Viresh Kumar Date: Thu May 21 13:33:46 2015 +0530 clockevents: Use helpers to check the state of a clockevent device Use accessor functions to check the state of clockevent devices in core code. Signed-off-by: Viresh Kumar Cc: linaro-kernel@lists.linaro.org Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/fa2b9869fd17f210eaa156ec2b594efd0230b6c7.1432192527.git.viresh.kumar@linaro.org Signed-off-by: Thomas Gleixner kernel/time/clockevents.c | 24 ++++++++++++------------ kernel/time/tick-broadcast.c | 6 +++--- kernel/time/tick-common.c | 2 +- kernel/time/tick-oneshot.c | 2 +- 4 files changed, 17 insertions(+), 17 deletions(-) commit 3434d23b694e5cb6e44e966914563406c31c4053 Author: Viresh Kumar Date: Thu May 21 13:33:45 2015 +0530 clockevents: Add helpers to check the state of a clockevent device Some clockevent drivers, once migrated to use per-state callbacks, need to check the state of the clockevent device in their callbacks or interrupt handler. Add accessor functions clockevent_state_*() to get this information. Signed-off-by: Viresh Kumar Cc: linaro-kernel@lists.linaro.org Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/04a717d490335c688dd7af899fbcede97e1bb8ee.1432192527.git.viresh.kumar@linaro.org Signed-off-by: Thomas Gleixner include/linux/clockchips.h | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) commit 7e9236ff3d92ec326f29a20d86add10f1ff4e9b3 Author: Masahiro Yamada Date: Thu May 28 21:52:59 2015 +0900 pinctrl: fix confusing debug message in pinctrl_register_map() There are two types for pinctrl maps: pinmux and pinconfig This debug message shows the number of maps of both types. The string "pinmux map" is not precise. Let's say "pinctrl map" instead. Signed-off-by: Masahiro Yamada [also fixed %d -> %u] Signed-off-by: Linus Walleij drivers/pinctrl/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4fd24e220e738feb210d0c031eb16de13b87a2df Author: Masahiro Yamada Date: Thu May 28 21:57:53 2015 +0900 pinctrl: zynq: add static const to zynq_pctrl_groups This array is only referenced in this file and never updated. Signed-off-by: Masahiro Yamada Acked-by: Sören Brinkmann Signed-off-by: Linus Walleij drivers/pinctrl/pinctrl-zynq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c0b8555c15cc42b5baeeafd9b171b0b00091d811 Author: Masahiro Yamada Date: Thu May 28 21:57:23 2015 +0900 pinctrl: zynq: add static to zynq_pins This array is only referenced in this file. Signed-off-by: Masahiro Yamada Signed-off-by: Linus Walleij drivers/pinctrl/pinctrl-zynq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 53cd255ce7539eff28d86eafb3416a6d964be4df Author: Takashi Iwai Date: Fri May 15 16:20:05 2015 +0800 UBI: Use static class and attribute groups This patch cleans up the manual device_create_file() or class_create_file() calls by replacing with static attribute groups. It simplifies the code and also avoids the possible races between the device/class registration and sysfs creations. For the simplification, also make ubi_class a static instance with initializers, too. Amend a bit by Hujianyang. Signed-off-by: Takashi Iwai Tested-by: Sheng Yong Signed-off-by: hujianyang Signed-off-by: Richard Weinberger drivers/mtd/ubi/build.c | 103 +++++++++++++++++------------------------------- drivers/mtd/ubi/ubi.h | 2 +- drivers/mtd/ubi/vmt.c | 94 ++++++++++--------------------------------- 3 files changed, 57 insertions(+), 142 deletions(-) commit 050d0f2de1d3c2034ebf6d66ba30fe97019002f2 Author: S Twiss Date: Mon Jun 1 14:00:20 2015 +0100 regulator: da9062: Remove unused variable build warning Remove the unused variable build warning for reg_matches that appears during the compilation of the DA9062 regulator driver. da9062-regulator.c: In function da9062_regulator_probe: da9062-regulator.c:727:29: warning: unused variable reg_matches Signed-off-by: Steve Twiss Signed-off-by: Mark Brown drivers/regulator/da9062-regulator.c | 1 - 1 file changed, 1 deletion(-) commit 3b79af973cf42de059d0e90e20fd145d7ed8c5c1 Author: Johannes Berg Date: Mon Jun 1 23:14:59 2015 +0200 mac80211: stop using pointers as userspace cookies Even if the pointers are really only accessible to root and used pretty much only by wpa_supplicant, this is still not great; even for debugging it'd be easier to have something that's easier to read and guaranteed to never get reused. With the recent change to make mac80211 create an ack_skb for the mgmt-tx path this becomes possible, only the client probe method needs to also allocate an ack_skb, and we can store the cookie in that skb. Signed-off-by: Johannes Berg include/net/mac80211.h | 3 ++ net/mac80211/cfg.c | 115 +++++++++++++++++++++++++++++++------------------ net/mac80211/status.c | 27 ++++++------ 3 files changed, 90 insertions(+), 55 deletions(-) commit b2eb0ee6d0220b47a1f901e4f1c56dd594509d8e Author: Johannes Berg Date: Mon Jun 1 22:54:13 2015 +0200 mac80211: copy nl80211 mgmt TX SKB for status When we return the TX status for an nl80211 mgmt TX SKB, we should also return the original frame with the status to allow userspace to match up the submission (it could also use the cookie but both ways are permissible.) As TX SKBs could be encrypted, at least in the case of ANQP while associated with the AP, copy the original SKB, store it with an ACK frame ID and restructure the status path to use that to return status with the original SKB. Otherwise, userspace (in particular wpa_supplicant) will get confused. Reported-by: Matti Gottlieb Signed-off-by: Johannes Berg net/mac80211/cfg.c | 39 ++++++++++++++++-- net/mac80211/status.c | 109 +++++++++++++++++++++++++++++++------------------- 2 files changed, 104 insertions(+), 44 deletions(-) commit 616268292b274d57aa02d20815f68ad2bd7e1cf7 Author: Jie Yang Date: Sat May 30 15:58:47 2015 +0800 ASoC: Intel: don't need compress offload for broadwell We don't need compress offload feature for broadwell broadwell machine, here remove the non exist dependency. Signed-off-by: Jie Yang Signed-off-by: Mark Brown sound/soc/intel/Kconfig | 1 - 1 file changed, 1 deletion(-) commit 29454738f96233466d5bfacf86c7a8d49f79ae27 Author: Fabio Estevam Date: Mon Jun 1 22:33:53 2015 -0300 regulator: wm831x: Pass the IRQF_ONESHOT flag Since commit 1c6c69525b40 ("genirq: Reject bogus threaded irq requests") threaded IRQs without a primary handler need to be requested with IRQF_ONESHOT, otherwise the request will fail. So pass the IRQF_ONESHOT flag in this case. The semantic patch that makes this change is available in scripts/coccinelle/misc/irqf_oneshot.cocci. Signed-off-by: Fabio Estevam Signed-off-by: Mark Brown drivers/regulator/wm831x-dcdc.c | 12 ++++++++---- drivers/regulator/wm831x-isink.c | 3 ++- drivers/regulator/wm831x-ldo.c | 6 ++++-- 3 files changed, 14 insertions(+), 7 deletions(-) commit d4688bdc6335e9faaf3f0173f96932cd520cee1a Author: Maxime Coquelin Date: Thu May 28 07:05:53 2015 +0200 clockevents/drivers/timer-stm32: Fix build warning spotted by kbuild test robot This patch fixes below warning spotted by kbuild test robot when building with ARCH=powerpc: drivers/clocksource/timer-stm32.c: In function 'stm32_clockevent_init': >> drivers/clocksource/timer-stm32.c:140:9: warning: large integer implicitly truncated to unsigned type [-Woverflow] writel_relaxed(~0UL, data->base + TIM_ARR); The fix consists in using 0U instead of 0UL. Reported-by: kbuild test robot Signed-off-by: Maxime Coquelin Signed-off-by: Daniel Lezcano drivers/clocksource/timer-stm32.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e37e45934afed32f00e16db745c410d5c675456d Author: Maxime Coquelin Date: Fri May 22 23:03:33 2015 +0200 clockevents/drivers: Add STM32 Timer driver STM32 MCUs feature 16 and 32 bits general purpose timers with prescalers. The drivers detects whether the time is 16 or 32 bits, and applies a 1024 prescaler value if it is 16 bits. Reviewed-by: Linus Walleij Tested-by: Chanwoo Choi Signed-off-by: Maxime Coquelin Signed-off-by: Daniel Lezcano drivers/clocksource/Kconfig | 5 ++ drivers/clocksource/Makefile | 1 + drivers/clocksource/timer-stm32.c | 184 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 190 insertions(+) commit 4853914ffcea925ded0ac2be205f55688f302caa Author: Maxime Coquelin Date: Fri May 22 23:03:32 2015 +0200 dt-bindings: Document the STM32 timer bindings This adds documentation of device tree bindings for the STM32 timer. Tested-by: Chanwoo Choi Acked-by: Rob Herring Signed-off-by: Maxime Coquelin Signed-off-by: Daniel Lezcano .../devicetree/bindings/timer/st,stm32-timer.txt | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) commit 4958ebb3d027886c46b936453745dba59b09c578 Author: Maxime Coquelin Date: Sat May 9 09:53:46 2015 +0200 clocksource/drivers/armv7m_systick: Add ARM System timer driver This patch adds clocksource support for ARMv7-M's System timer, also known as SysTick. Tested-by: Chanwoo Choi Acked-by: Daniel Lezcano Signed-off-by: Maxime Coquelin Signed-off-by: Daniel Lezcano drivers/clocksource/Kconfig | 7 ++++ drivers/clocksource/Makefile | 1 + drivers/clocksource/armv7m_systick.c | 79 ++++++++++++++++++++++++++++++++++++ 3 files changed, 87 insertions(+) commit 571fc8e836a1537b87804358c7baa9882d25b754 Author: Maxime Coquelin Date: Sat May 9 09:53:45 2015 +0200 dt-bindings: Document the ARM System timer bindings This adds documentation of device tree bindings for the ARM System timer. Tested-by: Chanwoo Choi Acked-by: Rob Herring Signed-off-by: Maxime Coquelin Signed-off-by: Daniel Lezcano .../devicetree/bindings/arm/armv7m_systick.txt | 26 ++++++++++++++++++++++ 1 file changed, 26 insertions(+) commit 5fc9b49deadc16d088e8fc6ca4fee85644380497 Author: Joachim Eastwood Date: Tue May 12 00:00:49 2015 +0200 doc: dt: Add documentation for lpc3220-timer Add DT bindings documentation for lpc3220-timer. This timer is used as clocksource on many NXP platforms. Signed-off-by: Joachim Eastwood Signed-off-by: Daniel Lezcano Acked-by: Arnd Bergmann .../bindings/timer/nxp,lpc3220-timer.txt | 26 ++++++++++++++++++++++ 1 file changed, 26 insertions(+) commit 050dd3222ba9fe8cadcb5146de052139ffb30b61 Author: Joachim Eastwood Date: Tue May 12 00:00:48 2015 +0200 clocksource/drivers/lpc32xx: Add the lpc32xx timer driver Add support for using the NXP LPC timer as clocksource and clock event. These timers are present on many NXP devices including LPC32xx, LPC17xx, LPC18xx and LPC43xx. The timer has a 32-bit timer counter register with a programmable 32-bit prescaler. It supports up to 4 compare match values with interrupt generation and reset/stop timer counter action. Signed-off-by: Joachim Eastwood Signed-off-by: Daniel Lezcano Reviewed-by: Ezequiel Garcia Acked-by: Arnd Bergmann drivers/clocksource/Kconfig | 5 + drivers/clocksource/Makefile | 1 + drivers/clocksource/time-lpc32xx.c | 272 +++++++++++++++++++++++++++++++++++++ 3 files changed, 278 insertions(+) commit 65ec7b2718719cef0c9e9db853a014db5a102def Author: Krzysztof Kozlowski Date: Thu Apr 30 13:42:53 2015 +0900 clocksource/drivers/exynos_mct: Remove old platform mct_init() Since commit 228e3023eb04 ("Merge tag 'mct-exynos-for-v3.10' of ...") the mct_init() was superseded by mct_init_dt() and is not referenced anywhere. Remove it. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Daniel Lezcano drivers/clocksource/exynos_mct.c | 12 ------------ 1 file changed, 12 deletions(-) commit 6c10bf637207818f3caaea965d4b72007c36fc92 Author: Krzysztof Kozlowski Date: Thu Apr 30 13:42:52 2015 +0900 clocksource/drivers/exynos_mct: Staticize struct clocksource The struct clocksource 'mct_frc' is not exported and used outside so make it static. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Daniel Lezcano drivers/clocksource/exynos_mct.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 37285674f3f14d9f0a7e26565b48e68e3edc635f Author: Krzysztof Kozlowski Date: Thu Apr 30 13:42:51 2015 +0900 clocksource/drivers/exynos_mct: Change exynos4_mct_tick_clear return type to void Return value of exynos4_mct_tick_clear() was never checked so it can be safely changed to void. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Daniel Lezcano drivers/clocksource/exynos_mct.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit 4ba15d1d41ba9a51da2dc986c145b7514cc394be Author: Stephen Boyd Date: Fri Apr 10 16:11:02 2015 -0700 clocksource/drivers/qcom: Remove dead code This code is no longer used now that mach-msm has been removed. Delete it. Cc: David Brown Cc: Bryan Huntsman Cc: Daniel Walker Signed-off-by: Stephen Boyd Signed-off-by: Daniel Lezcano drivers/clocksource/qcom-timer.c | 59 ---------------------------------------- 1 file changed, 59 deletions(-) commit 2848594a20eb179eb591fd2a37d7edfe045811a0 Author: shengyong Date: Tue May 26 10:07:10 2015 +0000 UBI: add a helper function for updatting on-flash layout volumes Signed-off-by: Sheng Yong Signed-off-by: Richard Weinberger drivers/mtd/ubi/vtbl.c | 45 ++++++++++++++++++++++++--------------------- 1 file changed, 24 insertions(+), 21 deletions(-) commit e96a8a3bb671ca02370e85993c3f50ee90691b95 Author: shengyong Date: Tue May 26 10:07:09 2015 +0000 UBI: Fastmap: Do not add vol if it already exists During fastmap attaching, check if a volume already exists when adding the volume to volume tree. NOTE that the issue cannot happen, only if the on-flash fastmap data is modified. Signed-off-by: Sheng Yong Signed-off-by: Richard Weinberger drivers/mtd/ubi/fastmap.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit e8d266cf8d24e52eac65bdab24afd6f4cfc0ad07 Author: shengyong Date: Tue May 26 10:07:08 2015 +0000 UBI: Init vol->reserved_pebs by assignment `vol' is a newly allocated value by kzalloc. Initialize it by assignment instead of `+='. Signed-off-by: Sheng Yong Signed-off-by: Richard Weinberger drivers/mtd/ubi/vmt.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit f6e951af34c515ffc69f4a557cf62533420c8ce4 Author: shengyong Date: Tue May 26 10:07:07 2015 +0000 UBI: Fastmap: Rename variables to make them meaningful s/fmpl1/fmpl s/fmpl2/fmpl_wl Add "WL" to the error message when wrong WL pool magic number is detected. Signed-off-by: Sheng Yong Signed-off-by: Richard Weinberger drivers/mtd/ubi/fastmap.c | 58 +++++++++++++++++++++++------------------------ 1 file changed, 29 insertions(+), 29 deletions(-) commit a18fd672675f50c1a05f8c6c03b9a34ef4f07cae Author: shengyong Date: Tue May 26 10:07:06 2015 +0000 UBI: Fastmap: Remove unnecessary `\' Signed-off-by: Sheng Yong Signed-off-by: Richard Weinberger drivers/mtd/ubi/fastmap.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 212240dfd2d4ad979c1bd6d2318b8637ba24af09 Author: shengyong Date: Tue May 26 10:07:05 2015 +0000 UBI: Fastmap: Use max() to get the larger value Signed-off-by: Sheng Yong Signed-off-by: Richard Weinberger drivers/mtd/ubi/build.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a1fe33af5f8c5f5aebe68d22125d19e48b8e601c Author: Chao Yu Date: Mon May 18 16:43:02 2015 +0800 ubifs: fix to check error code of register_shrinker register_shrinker() in ubifs_init() can fail due to fail to call kzalloc. This patch fixes to check the return value of register_shrinker, otherwise our shrinker may be unregistered after ubifs initialized successfully. Signed-off-by: Chao Yu Signed-off-by: Artem Bityutskiy Signed-off-by: Richard Weinberger fs/ubifs/super.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 2bf50d42f3a418153d2964ca0f25655177f36445 Author: Dan Ehrenberg Date: Tue Mar 17 10:37:26 2015 -0700 UBI: block: Dynamically allocate minor numbers This patch makes ubiblock devices have minor numbers beginning from 0, allocated dynamically independently of the ubi device/volume number. This property becomes useful because, on 32-bit architectures with LFS turned off in a userspace program, device minor numbers over 8 bits cause stat to return -EOVERFLOW. If the device number is high (>1) due to multiple MTD partitions, such an overflow will occur. While enabling LFS is clearly a nicer solution, it's often difficult to turn on in practice globally as many widely distributed packages don't work with LFS on. Other storage systems have their own workarounds, with SCSI making multiple device majors and MMC having a config option for the number of partitions per device. A completely dynamic minor numbering is simpler than these. It is unlikely that anyone is depending on a static minor number since the major is dynamic anyway. In addition, ubiblock is still relatively new, so now is the time to make such changes. Signed-off-by: Dan Ehrenberg Acked-by: Ezequiel Garcia Signed-off-by: Richard Weinberger drivers/mtd/ubi/block.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) commit 81d49ce8a8c1978009ec02963d1b0926a1d5f1d4 Author: Axel Lin Date: Thu May 28 17:26:10 2015 +0800 gpio: tb10x: Drop unneeded free_irq() call Current code uses devm_request_irq() in .probe, so drop the unneeded free_irq() call in .remove. Signed-off-by: Axel Lin Acked-by: Christian Ruppert Signed-off-by: Linus Walleij drivers/gpio/gpio-tb10x.c | 1 - 1 file changed, 1 deletion(-) commit 61e749d7e1627d375156553ea0ae83c4f6bb5a9b Author: Aaron Lu Date: Thu May 28 10:58:49 2015 +0800 gpio: crystalcove: set IRQCHIP_SKIP_SET_WAKE for the irqchip The CrystalCove GPIO irqchip doesn't have irq_set_wake callback defined so we should set IRQCHIP_SKIP_SET_WAKE for it or it would cause an irq desc's wake_depth unbalanced warning during system resume phase from the gpio_keys driver, which is the driver for the power button of the ASUS T100 laptop. Signed-off-by: Aaron Lu Cc: Signed-off-by: Linus Walleij drivers/gpio/gpio-crystalcove.c | 1 + 1 file changed, 1 insertion(+) commit 50f09073932362d29020b03ca8510f14acc0ca17 Author: Martin Blumenstingl Date: Tue May 26 23:12:00 2015 +0200 gpio: stp-xway: Use the of_property_read_u32 helper This removes some redundant code but does not have any functional impact. Signed-off-by: Martin Blumenstingl Signed-off-by: Linus Walleij drivers/gpio/gpio-stp-xway.c | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) commit db388a567ff9600debc2433c1fddf79a8fc38b21 Author: Johannes Berg Date: Mon Jun 1 15:36:51 2015 +0200 mac80211: move TX PN to public part of key struct For drivers supporting TSO or similar features, but that still have PN assignment in software, there's a need to have some memory to store the current PN value. As mac80211 already stores this and it's somewhat complicated to add a per-driver area to the key struct (due to the dynamic sizing thereof) it makes sense to just move the TX PN to the keyconf, i.e. the public part of the key struct. As TKIP is more complicated and we won't able to offload it in this way right now (fast-xmit is skipped for TKIP unless the HW does it all, and our hardware needs MMIC calculation in software) I've not moved that for now - it's possible but requires exposing a lot of the internal TKIP state. As an bonus side effect, we can remove a lot of code by assuming the keyseq struct has a certain layout - with BUILD_BUG_ON to verify it. This might also improve performance, since now TX and RX no longer share a cacheline. Reviewed-by: Emmanuel Grumbach Signed-off-by: Johannes Berg include/net/mac80211.h | 4 +++ net/mac80211/cfg.c | 59 ++++++---------------------------- net/mac80211/debugfs_key.c | 17 +--------- net/mac80211/key.c | 80 +++++++++++++--------------------------------- net/mac80211/key.h | 4 --- net/mac80211/tx.c | 10 +----- net/mac80211/wpa.c | 10 +++--- 7 files changed, 42 insertions(+), 142 deletions(-) commit fc63d854cb55bfe2b6c67317b5bd91aaa2d058c3 Author: Hongzhou Yang Date: Wed May 27 02:43:55 2015 -0700 pinctrl: mediatek: Fix pinctrl register irq fail bug. Since mt6397 is no need to support interrupt controller, I judged "interrupt-controller" property to skip it last patch. But the if judgement should on the contrary, this is a bug. And find of_property_read_bool is better for this case. So using of_property_read_bool instead of of_find_property. Also fix bug of misuse pointer. Signed-off-by: Hongzhou Yang Reviewed-by: Axel Lin Signed-off-by: Linus Walleij drivers/pinctrl/mediatek/pinctrl-mtk-common.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 257e961ddd66998b360447ea27db7936d8defaa0 Author: Hongzhou Yang Date: Wed May 27 02:43:54 2015 -0700 pinctrl: mediatek: Fix bug of ies/smt setting for mt8173. Add ies/smt support for MSDC3. Also fix ies bug for pin 106 and 107. Signed-off-by: Hongzhou Yang Signed-off-by: Linus Walleij drivers/pinctrl/mediatek/pinctrl-mt8173.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit e001bbae7147b111fe1aa42beaf835635f3c016e Author: Russell King Date: Tue May 26 15:41:41 2015 +0100 ARM: cmpxchg: avoid warnings from macro-ized cmpxchg() implementations A recent change in kernel/acct.c added a new warning for many configurations on ARM: kernel/acct.c: In function 'acct_pin_kill': arch/arm/include/asm/cmpxchg.h:122:3: warning: value computed is not used [-Wunused-value] The code is in fact correct, it's just a cmpxchg() call that intentionally ignores the result, and no other code does that. The warning does not show up on x86 because of the way that its cmpxchg() macro is written. This changes the ARM implementation to use a similar construct with a compound expression instead of a typecast, which causes the compiler to not complain about an unused result. Fix the other macros in this file in a similar way, and place them just below their function implementations. Signed-off-by: Russell King arch/arm/include/asm/cmpxchg.h | 66 +++++++++++++++++++++++------------------- 1 file changed, 37 insertions(+), 29 deletions(-) commit 31cd08c3a1db4b3164567a2a424b5e5dba6ce7a3 Author: Russell King Date: Tue May 19 13:39:05 2015 +0100 ARM: remove __bad_xchg definition We want link errors if xchg() is called for a variable size we do not support. Signed-off-by: Russell King arch/arm/include/asm/cmpxchg.h | 1 + arch/arm/kernel/traps.c | 8 -------- 2 files changed, 1 insertion(+), 8 deletions(-) commit 45b0fa09c6e47c02ac0a08bd2b3c6a73480222e0 Author: Stefan Agner Date: Wed May 20 00:16:46 2015 +0100 ARM: 8369/1: ARMv7M: define size of vector table for Vybrid Vybrids has 112 peripheral interrupts which can be routed to the Cortex-M4's NVIC interrupt controller. Signed-off-by: Stefan Agner Signed-off-by: Russell King arch/arm/mm/Kconfig | 1 + 1 file changed, 1 insertion(+) commit e44d89f14227ffa5e96cd158fb2d35fbb40fa97a Author: Sudeep Holla Date: Fri May 29 12:27:46 2015 +0100 ARM: 8382/1: clocksource: make ARM_TIMER_SP804 depend on GENERIC_SCHED_CLOCK Commit 5261ef2ea836 ("ARM: 8366/1: move Dual-Timer SP804 driver to drivers/clocksource") moved SP804 to drivers/clocksource resulting in it being selectable on platforms/architectures without the config GENERIC_SCHED_CLOCK enabled. Due to that, it results in the following build failure(e.g. x86_64 allmodconfig) drivers/built-in.o: In function `__sp804_clocksource_and_sched_clock_init': (.init.text+0x1a0e7): undefined reference to `sched_clock_register' This patch fixes the build by making ARM_TIMER_SP804 depend on GENERIC_SCHED_CLOCK Cc: Daniel Lezcano Cc: Thomas Gleixner Reported-by: Stephen Rothwell Signed-off-by: Sudeep Holla Signed-off-by: Russell King drivers/clocksource/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 0b7402dce445ba0d11401c2cb806e8fc260c9e49 Author: Sudeep Holla Date: Mon May 18 16:29:40 2015 +0100 ARM: 8366/1: move Dual-Timer SP804 driver to drivers/clocksource The ARM Dual-Timer SP804 module is peripheral found not only on ARM32 platforms but also on ARM64 platforms. This patch moves the driver out of arch/arm to driver/clocksource so that it can be used on ARM64 platforms also. Cc: Daniel Lezcano Cc: Rob Herring Cc: Arnd Bergmann Cc: Catalin Marinas Cc: Olof Johansson Acked-by: Thomas Gleixner Signed-off-by: Sudeep Holla Signed-off-by: Russell King arch/arm/Kconfig | 5 - arch/arm/common/Makefile | 1 - arch/arm/common/timer-sp.c | 309 ----------------------------- arch/arm/include/asm/hardware/arm_timer.h | 35 ---- arch/arm/include/asm/hardware/timer-sp.h | 24 --- arch/arm/mach-nspire/nspire.c | 2 - arch/arm/mach-realview/core.c | 4 +- arch/arm/mach-versatile/core.c | 3 +- drivers/clocksource/Kconfig | 5 + drivers/clocksource/Makefile | 1 + drivers/clocksource/timer-integrator-ap.c | 3 +- drivers/clocksource/timer-sp.h | 30 +++ drivers/clocksource/timer-sp804.c | 310 ++++++++++++++++++++++++++++++ include/clocksource/timer-sp804.h | 28 +++ 14 files changed, 380 insertions(+), 380 deletions(-) commit 1e5f0519f4cbf8b8830b88039e16222f186a4ab4 Author: Sudeep Holla Date: Mon May 18 16:29:04 2015 +0100 ARM: 8365/1: introduce sp804_timer_disable and remove arm_timer.h inclusion The header asm/hardware/arm_timer.h is included in various machine specific files to access TIMER_CTRL and initialise to a known state. This patch introduces a new function sp804_timer_disable to disable the SP804 timers and uses the same for initialising the timers to known(off) state, thereby removing the dependency on the header asm/hardware/arm_timer.h This change is in prepartion to move sp804 timer support out of arch/arm so that it can be used on ARM64 platforms. Cc: Daniel Lezcano Cc: Arnd Bergmann Cc: Olof Johansson Acked-by: Thomas Gleixner Signed-off-by: Sudeep Holla Signed-off-by: Russell King arch/arm/common/timer-sp.c | 5 +++++ arch/arm/include/asm/hardware/timer-sp.h | 1 + arch/arm/mach-integrator/integrator_ap.c | 1 - arch/arm/mach-realview/core.c | 9 ++++----- arch/arm/mach-versatile/core.c | 9 ++++----- 5 files changed, 14 insertions(+), 11 deletions(-) commit 73c430bf9ac6cd3a41ccc3c9904e66cc0a5f9420 Author: Arnd Bergmann Date: Mon May 18 16:03:13 2015 +0100 ARM: 8364/1: fix BE32 module loading The new veneer support for loadable modules on ARM uses the __opcode_to_mem_thumb32() function to count R_ARM_THM_CALL and R_ARM_THM_JUMP24 relocations. However, this function is not defined for big-endian kernels on ARMv5 or before, causing a compile-time error: arch/arm/kernel/module-plts.c: In function 'count_plts': arch/arm/kernel/module-plts.c:124:9: error: implicit declaration of function '__opcode_to_mem_thumb32' [-Werror=implicit-function-declaration] __opcode_to_mem_thumb32(0x07ff2fff))) ^ As we know that this part of the function is only needed for Thumb2 kernels, and that those can never happen with BE32, we can avoid the error by enclosing the code in an #ifdef. Fixes: 7d485f647c1 ("ARM: 8220/1: allow modules outside of bl range") Signed-off-by: Arnd Bergmann Acked-by: Ard Biesheuvel Signed-off-by: Russell King arch/arm/kernel/module-plts.c | 2 ++ 1 file changed, 2 insertions(+) commit 29d2e5631ca25fc45d68373817cd3f2b5ee7d8d0 Author: Yingjoe Chen Date: Mon May 18 09:06:13 2015 +0100 ARM: 8360/1: add secondary_startup_arm prototype in header file Put secondary_startup_arm() prototype in arch/arm/include/asm/smp.h so users doesn't have to add extern prototype in their code. Signed-off-by: Yingjoe Chen Reviewed-by: Matthias Brugger Signed-off-by: Russell King arch/arm/include/asm/smp.h | 1 + 1 file changed, 1 insertion(+) commit c07b5fd0268fc2bbaa584548d437f763d20bde77 Author: Yingjoe Chen Date: Mon May 18 09:04:31 2015 +0100 ARM: 8359/1: correct secondary_startup_arm mode secondary_startup_arm is used as ARM mode secondary start up function when ther kernel is compiled in THUMB mode, however the label itself is still in .thumb mode. readelf shows: 160979: c020a581 120 FUNC GLOBAL DEFAULT 2 secondary_startup_arm Make sure the label is in ARM mode as well. Signed-off-by: Yingjoe Chen Tested-by: Matthias Brugger Signed-off-by: Russell King arch/arm/kernel/head.S | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ee098e1aed67715f0ce4651813d0c33ab3a56e0b Author: Borislav Petkov Date: Mon Jun 1 12:06:57 2015 +0200 x86/cpu: Trim model ID whitespace We did try trimming whitespace surrounding the 'model name' field in /proc/cpuinfo since reportedly some userspace uses it in string comparisons and there were discrepancies: [thetango@prarit ~]# grep "^model name" /proc/cpuinfo | uniq -c | sed 's/\ /_/g' ______1_model_name :_AMD_Opteron(TM)_Processor_6272 _____63_model_name :_AMD_Opteron(TM)_Processor_6272_________________ However, there were issues with overlapping buffers, string sizes and non-byte-sized copies in the previous proposed solutions; see Link tags below for the whole farce. So, instead of diddling with this more, let's simply extend what was there originally with trimming any present trailing whitespace. Final result is really simple and obvious. Testing with the most insane model IDs qemu can generate, looks good: .model_id = " My funny model ID CPU ", ______4_model_name :_My_funny_model_ID_CPU .model_id = "My funny model ID CPU ", ______4_model_name :_My_funny_model_ID_CPU .model_id = " My funny model ID CPU", ______4_model_name :_My_funny_model_ID_CPU .model_id = " ", ______4_model_name :__ .model_id = "", ______4_model_name :_15/02 Signed-off-by: Borislav Petkov Cc: Andy Lutomirski Cc: Brian Gerst Cc: Dave Hansen Cc: Denys Vlasenko Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Igor Mammedov Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1432050210-32036-1-git-send-email-prarit@redhat.com Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/common.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) commit ef3476e236bf8c6bbbdc8893699fd6a11d0bea63 Author: Hans de Goede Date: Mon Jun 1 20:23:28 2015 +0200 ARM: dts: sun8i: Add usb_clk node for a23/a33 Add an usb_clk node for a23/a33. Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard Reviewed-by: Chen-Yu Tsai arch/arm/boot/dts/sun8i-a23-a33.dtsi | 10 ++++++++++ 1 file changed, 10 insertions(+) commit ec80749dfd859b560e8864d665d38d7a63e6a7f2 Author: Hans de Goede Date: Mon Jun 1 20:23:27 2015 +0200 clk: sunxi: Add support for the usb-clk on sun8i a23 and a33 SoCs The usb-clk on sun8i a23 and a33 SoCs is similar to the ones found on sun6i-a31 SoCs but instead of a 3th phy the a23 / a33 have a hsic interface which gets enabled by almost the same bits as used on the a31 for the 3rd phy, but not exactly the same bits so we need a new compatible for this. Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard Reviewed-by: Chen-Yu Tsai Documentation/devicetree/bindings/clock/sunxi.txt | 1 + drivers/clk/sunxi/clk-usb.c | 11 +++++++++++ 2 files changed, 12 insertions(+) commit 16e3247da7f71f8c31f4330f739f6192a00c8b51 Author: Gerd Hoffmann Date: Mon Mar 30 12:50:50 2015 +0200 drm_vblank_get: don't WARN_ON in case vblanks are not initialized Signed-off-by: Gerd Hoffmann Reviewed-by: Alex Deucher drivers/gpu/drm/drm_irq.c | 3 +++ 1 file changed, 3 insertions(+) commit 06b718c01208d8f5fff9216c95d5b20984804df7 Author: Gerd Hoffmann Date: Tue Nov 11 09:17:00 2014 +0100 break kconfig dependency loop After adding virtio-gpu I get this funky kconfig dependency loop. scripts/kconfig/conf --oldconfig Kconfig drivers/video/fbdev/Kconfig:5:error: recursive dependency detected! drivers/video/fbdev/Kconfig:5: symbol FB is selected by DRM_KMS_FB_HELPER drivers/gpu/drm/Kconfig:34: symbol DRM_KMS_FB_HELPER is selected by DRM_VIRTIO_GPU drivers/gpu/drm/virtio/Kconfig:1: symbol DRM_VIRTIO_GPU depends on VIRTIO drivers/virtio/Kconfig:1: symbol VIRTIO is selected by REMOTEPROC drivers/remoteproc/Kconfig:4: symbol REMOTEPROC is selected by OMAP_REMOTEPROC drivers/remoteproc/Kconfig:12: symbol OMAP_REMOTEPROC depends on OMAP_IOMMU drivers/iommu/Kconfig:141: symbol OMAP_IOMMU is selected by VIDEO_OMAP3 drivers/media/platform/Kconfig:96: symbol VIDEO_OMAP3 depends on VIDEO_V4L2 drivers/media/v4l2-core/Kconfig:6: symbol VIDEO_V4L2 depends on I2C drivers/i2c/Kconfig:7: symbol I2C is selected by FB_DDC drivers/video/fbdev/Kconfig:59: symbol FB_DDC is selected by FB_CYBER2000_DDC drivers/video/fbdev/Kconfig:374: symbol FB_CYBER2000_DDC depends on FB_CYBER2000 drivers/video/fbdev/Kconfig:362: symbol FB_CYBER2000 depends on FB Making VIDEO_OMAP3 depend on OMAP_IOMMU instead of selecting it breaks the loop, which looks like the best way to handle it to me. Updated OMAP_IOMMU help text accordingly. Signed-off-by: Gerd Hoffmann Acked-by: Mauro Carvalho Chehab drivers/iommu/Kconfig | 3 +++ drivers/media/platform/Kconfig | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) commit 3e8d222f2a95e9d30f13107bf4e48778f79e73b8 Merge: 1c34d82 501fd70 Author: Dave Airlie Date: Tue Jun 2 18:10:50 2015 +1000 Merge tag 'drm-intel-next-fixes-2015-05-29' of git://anongit.freedesktop.org/drm-intel into drm-next Fixes for 4.2. Nothing too serious (given that it's still pre merge window). With that it's off for 2 weeks of vacation for me and taking care of 4.2 fixes for Jani. * tag 'drm-intel-next-fixes-2015-05-29' of git://anongit.freedesktop.org/drm-intel: drm/i915: limit PPGTT size to 2GB in 32-bit platforms drm/i915: Another fbdev hack to avoid PSR on fbcon. drm/i915: Return the frontbuffer flip to enable intel_crtc_enable_planes. drm/i915: disable IPS while getting the sink CRCs drm/i915: Disable 12bpc hdmi for now drm/i915: Adjust sideband locking a bit for CHV/VLV drm/i915: s/dpio_lock/sb_lock/ drm/i915: Kill intel_flush_primary_plane() drm/i915: Throw out WIP CHV power well definitions drm/i915: Use the default 600ns LDO programming sequence delay drm/i915: Remove unnecessary null check in execlists_context_unqueue drm/i915: Use spinlocks for checking when to waitboost drm/i915: Fix the confusing comment about the ioctl limits Revert "drm/i915: Force clean compilation with -Werror" commit 2f63b9db7260beba3c19d66d6c11b0b78ea84a8c Author: Jan Beulich Date: Mon Jun 1 13:03:59 2015 +0100 x86/asm/entry/64: Fold identical code paths retint_kernel doesn't require %rcx to be pointing to thread info (anymore?), and the code on the two alternative paths is - not really surprisingly - identical. Signed-off-by: Jan Beulich Cc: Andy Lutomirski Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/556C664F020000780007FB64@mail.emea.novell.com Signed-off-by: Ingo Molnar arch/x86/kernel/entry_64.S | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) commit 2bf557ea3f49576fabe24cd5daf1a34e9ee22c3c Author: Jan Beulich Date: Mon Jun 1 13:02:55 2015 +0100 x86/asm/entry/64: Use negative immediates for stack adjustments Doing so allows adjustments by 128 bytes (occurring for REMOVE_PT_GPREGS_FROM_STACK 8 uses) to be expressed with a single byte immediate. Signed-off-by: Jan Beulich Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/556C660F020000780007FB60@mail.emea.novell.com Signed-off-by: Ingo Molnar arch/x86/include/asm/calling.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e01d9c75514b04c11151ad4f79a1f246b6286f4a Author: Vishnu Patekar Date: Sat May 30 16:55:05 2015 +0200 ARM: dts: sun8i: Add ET-Q8 A33 support ET-Q8_A33 is A33 based cheap tablet in common Q8 format. It has 512MB RAM, 4GB Nand, 7" Display, RDA5900P wifi, GSL1680 touch, etc. Signed-off-by: Vishnu Patekar Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard Tested-by: Chen-Yu Tsai arch/arm/boot/dts/Makefile | 3 +- arch/arm/boot/dts/sun8i-a33-et-q8-v1.6.dts | 88 ++++++++++++++++++++++++++++++ 2 files changed, 90 insertions(+), 1 deletion(-) commit 35af8e4b38070aa4068168502d30fc8eb991d0dc Author: Vishnu Patekar Date: Sat May 30 16:55:04 2015 +0200 ARM: dts: sun8i: Add sun8i-a33 dtsi Add a dtsi file for use with a33 based boards based on the new sun8i-a23-a33.dtsi file. Signed-off-by: Vishnu Patekar Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard Tested-by: Chen-Yu Tsai arch/arm/boot/dts/sun8i-a33.dtsi | 89 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) commit a0e9e9be6a3c97a6645428a1a583e78cab5c3d59 Author: Vishnu Patekar Date: Sat May 30 16:55:03 2015 +0200 ARM: dts: sun8i: Add sun8i-a23-a33 dtsi Rename sun8i-a23.dtsi to sun8i-a23-a33.dtsi as the base dtsi for the A33 is 99% the same and add a new sun8i-a23.dtsi including sun8i-a23-a33.dtsi and setting the few things not shared with the A33 (mbus-clk, pio compatible and interrupts). Signed-off-by: Vishnu Patekar Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard Tested-by: Chen-Yu Tsai arch/arm/boot/dts/sun8i-a23-a33.dtsi | 616 +++++++++++++++++++++++++++++++++++ arch/arm/boot/dts/sun8i-a23.dtsi | 576 +------------------------------- 2 files changed, 623 insertions(+), 569 deletions(-) commit ea2cdd27dce66dc498c623adacd807ea3a350443 Author: David Hildenbrand Date: Wed May 20 13:24:02 2015 +0200 KVM: s390: introduce KMSG_COMPONENT for kvm-s390 Let's remove "kvm-s390" from our printk messages and make use of pr_fmt instead. Also replace one printk() occurrence by a equivalent pr_warn on the way. Suggested-by: Christian Borntraeger Signed-off-by: David Hildenbrand Signed-off-by: Christian Borntraeger arch/s390/kvm/kvm-s390.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 61a6df54b64913defc64c87a05d5d258a2020fb5 Author: David Hildenbrand Date: Tue May 12 08:41:40 2015 +0200 KVM: s390: call exit_sie() directly on vcpu block/request Thinking about it, I can't find a real use case where we want to block a VCPU and not kick it out of SIE. (except if we want to do the same in batch for multiple VCPUs - but that's a micro optimization) So let's simply perform the exit_sie() calls directly when setting the other magic block bits in the SIE. Otherwise e.g. kvm_s390_set_tod_low() still has other VCPUs running after that call, working with a wrong epoch. Fixes: 27406cd50c ("KVM: s390: provide functions for blocking all CPUs") Acked-by: Christian Borntraeger Signed-off-by: David Hildenbrand Signed-off-by: Christian Borntraeger arch/s390/kvm/kvm-s390.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 1c34d824bd750f4a4287639fee8335ec51530024 Author: Alexandre Courbot Date: Fri May 15 16:09:54 2015 +0900 drm/ttm: dma: Don't crash on memory in the vmalloc range dma_alloc_coherent() can return memory in the vmalloc range. virt_to_page() cannot handle such addresses and crashes. This patch detects such cases and obtains the struct page * using vmalloc_to_page() instead. Signed-off-by: Alexandre Courbot Acked-by: Konrad Rzeszutek Wilk Signed-off-by: Dave Airlie drivers/gpu/drm/ttm/ttm_page_alloc_dma.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 989898b707f74716ec27a4ae2b57e404ca54cbd2 Author: Michael Ellerman Date: Mon Jun 1 19:44:17 2015 +1000 selftests/powerpc: Add install support to more powerpc tests These tests were merged in parallel to the install support, update them now to use it. This also adds cross compile support for the VPHN test which was missing it. Signed-off-by: Michael Ellerman tools/testing/selftests/powerpc/switch_endian/Makefile | 14 ++++---------- tools/testing/selftests/powerpc/vphn/Makefile | 13 +++++-------- 2 files changed, 9 insertions(+), 18 deletions(-) commit ea4d1a87e6dee541a525c822b0b5da160940fc67 Author: Cyril Bur Date: Tue May 26 11:36:57 2015 +1000 powerpc/configs: Replace pseries_le_defconfig with a Makefile target using merge_config Rather than continuing to maintain a copy of pseries_defconfig with CONFIG_CPU_LITTLE_ENDIAN enabled, use the generic merge_config script and use an le.config to enable little endian on top of pseries_defconfig without the need for a duplicated _defconfig file. This method will require less maintenance in the future and will ensure that both 'defconfigs' are always in sync. It is worth noting that the seemingly more simple approach of: pseries_le_defconfig: pseries_defconfig $(Q)$(MAKE) le.config Will not work when building using O=builddir. The obvious fix to that: pseries_le_defconfig: $(Q)$(MAKE) -f $(srctree)/Makefile pseries_defconfig le.config Also does not work. This is because if we have for example: config FOO depends on CPU_BIG_ENDIAN select BAR Then BAR will be enabled by the first call to kconfig (via pseries_defconfig), and then will remain enabled after we merge le.config, even though FOO will have been turned off. The solution is to ensure to only invoke the kconfig logic once, after we have merged all the config fragments. This ensures nothing is select'ed on that should then be disabled by the later merged configs. This is done through the explicit call to make olddefconfig Signed-off-by: Cyril Bur Reviewed-by: Samuel Mendoza-Jonas [mpe: Massage change log, fix white space and use ARCH not SRCARCH] Signed-off-by: Michael Ellerman arch/powerpc/Makefile | 15 ++ arch/powerpc/configs/le.config | 1 + arch/powerpc/configs/pseries_le_defconfig | 319 ------------------------------ 3 files changed, 16 insertions(+), 319 deletions(-) commit a1c97df2787f6542257f1fd85e6a9b055e1125be Author: Cyril Bur Date: Tue May 26 11:36:56 2015 +1000 powerpc/configs: Merge pseries_defconfig and pseries_le_defconfig These two configs should be identical with the exception of big or little endian. The big endian version has XMON_DEFAULT turned on while the little endian has XMON_DEFAULT not set. It makes the most sense for defconfigs not to use xmon by default, production systems should get back up as quickly as possible, not sit in xmon. In the event debugging is required, the option can be enabled or xmon=on can be specified on commandline. Signed-off-by: Cyril Bur Signed-off-by: Michael Ellerman arch/powerpc/configs/pseries_defconfig | 1 - 1 file changed, 1 deletion(-) commit c1231a784acc25ec01d35a019533da9ab8593e2e Author: Jiang Liu Date: Wed May 20 17:59:52 2015 +0800 powerpc: Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc while we already have a pointer to corresponding irq_desc. Signed-off-by: Jiang Liu Signed-off-by: Michael Ellerman arch/powerpc/platforms/52xx/mpc52xx_gpt.c | 2 +- arch/powerpc/platforms/cell/axon_msi.c | 2 +- arch/powerpc/platforms/embedded6xx/hlwd-pic.c | 2 +- arch/powerpc/sysdev/uic.c | 2 +- arch/powerpc/sysdev/xics/xics-common.c | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) commit 6b33033c2482b439674807fe546bf2d4ed94a43e Merge: c46a024 c208358 Author: Ingo Molnar Date: Tue Jun 2 08:38:11 2015 +0200 Merge tag 'efi-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mfleming/efi into x86/efi Pull EFI changes from Matt Fleming: - Use idiomatic negative error values in efivar_create_sysfs_entry() instead of returning '1' to indicate error. (Dan Carpenter) - Implement new support to expose the EFI System Resource Tables in sysfs, which provides information for performing firmware updates. (Peter Jones) - Documentation cleanup in the EFI handover protocol section which falsely claimed that 'cmdline_size' needed to be filled out by the boot loader. (Alex Smith) - Align the order of SMBIOS tables in /sys/firmware/efi/systab to match the way that we do things for ACPI and add documentation to Documentation/ABI. (Jean Delvare) Signed-off-by: Ingo Molnar commit 085c789783f5f95c253740d3d0a1659ec5ff32a8 Merge: c46a024 0868aa2 Author: Ingo Molnar Date: Tue Jun 2 08:10:14 2015 +0200 Merge branch 'for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu into core/rcu Pull RCU changes from Paul E. McKenney: - Initialization/Kconfig updates: hide most Kconfig options from unsuspecting users. There's now a single high level configuration option: * * RCU Subsystem * Make expert-level adjustments to RCU configuration (RCU_EXPERT) [N/y/?] (NEW) Which if answered in the negative, leaves us with a single interactive configuration option: Offload RCU callback processing from boot-selected CPUs (RCU_NOCB_CPU) [N/y/?] (NEW) All the rest of the RCU options are configured automatically. - Remove all uses of RCU-protected array indexes: replace the rcu_[access|dereference]_index_check() APIs with READ_ONCE() and rcu_lockdep_assert(). - RCU CPU-hotplug cleanups. - Updates to Tiny RCU: a race fix and further code shrinkage. - RCU torture-testing updates: fixes, speedups, cleanups and documentation updates. - Miscellaneous fixes. - Documentation updates. Signed-off-by: Ingo Molnar commit f407a8258610169cd8e975dba7f0b2824562014c Merge: 960d447 c46a024 Author: Ingo Molnar Date: Tue Jun 2 08:05:42 2015 +0200 Merge branch 'linus' into sched/core, to resolve conflict Conflicts: arch/sparc/include/asm/topology_64.h Signed-off-by: Ingo Molnar commit 131484c8da97ed600c18dd9d03b661e8ae052df6 Author: Ingo Molnar Date: Thu May 28 12:21:47 2015 +0200 x86/debug: Remove perpetually broken, unmaintainable dwarf annotations So the dwarf2 annotations in low level assembly code have become an increasing hindrance: unreadable, messy macros mixed into some of the most security sensitive code paths of the Linux kernel. These debug info annotations don't even buy the upstream kernel anything: dwarf driven stack unwinding has caused problems in the past so it's out of tree, and the upstream kernel only uses the much more robust framepointers based stack unwinding method. In addition to that there's a steady, slow bitrot going on with these annotations, requiring frequent fixups. There's no tooling and no functionality upstream that keeps it correct. So burn down the sick forest, allowing new, healthier growth: 27 files changed, 350 insertions(+), 1101 deletions(-) Someone who has the willingness and time to do this properly can attempt to reintroduce dwarf debuginfo in x86 assembly code plus dwarf unwinding from first principles, with the following conditions: - it should be maximally readable, and maximally low-key to 'ordinary' code reading and maintenance. - find a build time method to insert dwarf annotations automatically in the most common cases, for pop/push instructions that manipulate the stack pointer. This could be done for example via a preprocessing step that just looks for common patterns - plus special annotations for the few cases where we want to depart from the default. We have hundreds of CFI annotations, so automating most of that makes sense. - it should come with build tooling checks that ensure that CFI annotations are sensible. We've seen such efforts from the framepointer side, and there's no reason it couldn't be done on the dwarf side. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: Frédéric Weisbecker Cc: Jan Beulich Cc: Josh Poimboeuf Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar arch/x86/Makefile | 10 +- arch/x86/ia32/ia32entry.S | 133 ++++----------- arch/x86/include/asm/calling.h | 94 +++++------ arch/x86/include/asm/dwarf2.h | 170 ------------------- arch/x86/include/asm/frame.h | 7 +- arch/x86/kernel/entry_32.S | 368 ++++++++++++----------------------------- arch/x86/kernel/entry_64.S | 288 ++++++-------------------------- arch/x86/lib/atomic64_386_32.S | 7 +- arch/x86/lib/atomic64_cx8_32.S | 61 +++---- arch/x86/lib/checksum_32.S | 52 +++--- arch/x86/lib/clear_page_64.S | 7 - arch/x86/lib/cmpxchg16b_emu.S | 12 +- arch/x86/lib/cmpxchg8b_emu.S | 11 +- arch/x86/lib/copy_page_64.S | 11 -- arch/x86/lib/copy_user_64.S | 15 -- arch/x86/lib/csum-copy_64.S | 17 -- arch/x86/lib/getuser.S | 13 -- arch/x86/lib/iomap_copy_64.S | 3 - arch/x86/lib/memcpy_64.S | 3 - arch/x86/lib/memmove_64.S | 3 - arch/x86/lib/memset_64.S | 5 - arch/x86/lib/msr-reg.S | 44 ++--- arch/x86/lib/putuser.S | 8 +- arch/x86/lib/rwsem.S | 49 +++--- arch/x86/lib/thunk_32.S | 15 +- arch/x86/lib/thunk_64.S | 44 +++-- arch/x86/net/bpf_jit.S | 1 - 27 files changed, 350 insertions(+), 1101 deletions(-) commit dda922c831d1661c11a3ae1051b7160236f6ffb0 Merge: db3397b c46a024 Author: David S. Miller Date: Mon Jun 1 22:33:25 2015 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Conflicts: drivers/net/phy/amd-xgbe-phy.c drivers/net/wireless/iwlwifi/Kconfig include/net/mac80211.h iwlwifi/Kconfig and mac80211.h were both trivial overlapping changes. The drivers/net/phy/amd-xgbe-phy.c file got removed in 'net-next' and the bug fix that happened on the 'net' side is already integrated into the rest of the amd-xgbe driver. Signed-off-by: David S. Miller commit 084861124d00b046cb4159b0158e1b74626b8257 Author: Nicholas Mc Guire Date: Fri May 29 17:31:16 2015 +0200 staging: unisys: use schedule_timeout_interruptible() API consolidation with coccinelle found: ./drivers/staging/unisys/visorbus/periodic_work.c:196:3-19: consolidation with schedule_timeout_*() recommended This is a 1:1 conversion with respect to schedule_timeout() to the schedule_timeout_interruptible() helper only - so only an API consolidation to improve readability. The hard coded timeout of 10 jiffies is HZ dependent which it should not be, so it is converted with msecs_to_jiffies. Patch was compile tested with x86_64_defconfig + CONFIG_STAGING=y, CONFIG_UNISYSSPAR=y, CONFIG_UNISYS_VISORBUS=m Patch is against 4.1-rc5 (localversion-next is -next-20150529) Signed-off-by: Nicholas Mc Guire Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/periodic_work.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 7726f81357f9ddb55611995b1ec2e75abbd733a1 Author: Don Zickus Date: Mon Jun 1 13:00:28 2015 -0400 staging: unisys: Prepare vbus_hdr_info to be public In order to remove bus_info, we need to migrate vbus_hdr_info into the public namespace of visor_device. Because the struct is private, we use a void * to hide the contents. As a result, we need to allocate vbus_hdr_info and manage it. Also work around vbus_valid, as that variable will not be used in the public namespace. Signed-off-by: Don Zickus Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorbus_main.c | 52 ++++++++++++++----------- 1 file changed, 30 insertions(+), 22 deletions(-) commit 0274b5aec1b30f594e2e5975b3bbf672565a6dd7 Author: Don Zickus Date: Mon Jun 1 13:00:27 2015 -0400 staging: unisys: Convert pending_msg_hdr to a pointer In order for bus/dev_info structs to become public structs, one element, pending_msg_hdr, needs to become opaque. This is to keep all the internals of the controlvm struct private to the bus layer. So a simple conversion of embedding the pending_msg_hdr struct into a pointer is done. The rest of the patch is the fallout. The rules are modified slightly. Instead of relying on the 'id' to be CONTROLVM_INVALID to indicate invalid, just use the pointer set to NULL. In addition, because bus/dev_info can be NULL and we still need to send a response, pass pending_msg_hdr to all 'responders' instead of bus/ That change causes some fallout in the success case. Instead of setting state bits and clearing info in the responders, do all that magic in the responder wrappers. Signed-off-by: Don Zickus Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorbus_private.h | 4 +- drivers/staging/unisys/visorbus/visorchipset.c | 185 +++++++++++++-------- 2 files changed, 118 insertions(+), 71 deletions(-) commit b32c4997c03d9d1fcfc1c6771f70d7526ffdbbe4 Author: Don Zickus Date: Mon Jun 1 13:00:26 2015 -0400 staging: unisys: Move channel creation up the stack Instead of creating a channel struct to temporarily hold the channel info and passing it through multiple functions until the device is created, just create the channel from the start. This allows us to remove the channel_info struct. I noticed 'chan_info.addr_type' was not being used, so I just deleted it. Signed-off-by: Don Zickus Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorbus_main.c | 88 +++++++--------------- drivers/staging/unisys/visorbus/visorbus_private.h | 16 +--- drivers/staging/unisys/visorbus/visorchipset.c | 54 ++++++++----- 3 files changed, 63 insertions(+), 95 deletions(-) commit 63d03e47730818afd09d499c3385e56cda5a513e Author: Greg Kroah-Hartman Date: Tue Jun 2 14:16:04 2015 +0900 staging: wilc1000: remove WILC_Uint8 Just use u8, as that's what you really want in a kernel driver. Cc: Johnny Kim Cc: Rachel Kim Cc: Dean Lee Cc: Chris Park Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/coreconfigurator.c | 210 +++++------ drivers/staging/wilc1000/coreconfigurator.h | 52 +-- drivers/staging/wilc1000/fifo_buffer.c | 4 +- drivers/staging/wilc1000/fifo_buffer.h | 8 +- drivers/staging/wilc1000/host_interface.c | 438 +++++++++++----------- drivers/staging/wilc1000/host_interface.h | 150 ++++---- drivers/staging/wilc1000/linux_mon.c | 12 +- drivers/staging/wilc1000/linux_wlan.c | 8 +- drivers/staging/wilc1000/wilc_msgqueue.h | 2 +- drivers/staging/wilc1000/wilc_oswrapper.h | 1 - drivers/staging/wilc1000/wilc_strutils.c | 2 +- drivers/staging/wilc1000/wilc_strutils.h | 10 +- drivers/staging/wilc1000/wilc_timer.h | 2 +- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 100 ++--- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 16 +- drivers/staging/wilc1000/wilc_wlan.c | 2 +- 16 files changed, 508 insertions(+), 509 deletions(-) commit b1413b6084faa677bc122549aba50e38e11343d3 Author: Greg Kroah-Hartman Date: Tue Jun 2 14:11:12 2015 +0900 staging: wilc100: remove WILC_NULL usage Use the "real" NULL value, don't try to be cute and define your own value for something that the compiler obviously supports. Cc: Johnny Kim Cc: Rachel Kim Cc: Dean Lee Cc: Chris Park Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/coreconfigurator.c | 22 +- drivers/staging/wilc1000/host_interface.c | 298 +++++++++++----------- drivers/staging/wilc1000/linux_wlan.c | 2 +- drivers/staging/wilc1000/wilc_errorsupport.h | 2 +- drivers/staging/wilc1000/wilc_memory.c | 6 +- drivers/staging/wilc1000/wilc_memory.h | 30 +-- drivers/staging/wilc1000/wilc_oswrapper.h | 2 - drivers/staging/wilc1000/wilc_strutils.c | 6 +- drivers/staging/wilc1000/wilc_strutils.h | 6 +- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 46 ++-- drivers/staging/wilc1000/wilc_wlan.c | 16 +- 11 files changed, 217 insertions(+), 219 deletions(-) commit 8e1d4e5cf25c2901e8d3f322f1eab17ba193c094 Author: Greg Kroah-Hartman Date: Tue Jun 2 14:03:03 2015 +0900 staging: wilc1000: remove unused data types There's some "custom" data types defined that are never used in the driver, so remove them before we work on converting the rest to be "standard" data types. Cc: Johnny Kim Cc: Rachel Kim Cc: Dean Lee Cc: Chris Park Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_oswrapper.h | 10 ---------- 1 file changed, 10 deletions(-) commit db3397b9aa30d334be237170e048dcd96e1e951d Merge: d895112 41fc2e4 Author: David S. Miller Date: Mon Jun 1 22:14:35 2015 -0700 Merge branch 'cxgb4-next' Hariprasad Shenai says: ==================== cxgb4/cxgb4vf: Adds support for Chelsio T6 adapter This patch series adds the following: Adds NIC driver support for T6 adapter Adds vNIC driver support for T6 adapter This patch series has been created against net-next tree and includes patches on cxgb4 and cxgb4vf driver. We have included all the maintainers of respective drivers. Kindly review the change and let us know in case of any review comments. Thanks V2: Fixed compilation issue, when CHELSIO_T4_FCOE is set ==================== Signed-off-by: David S. Miller commit 41fc2e41d348a7bca768815adf033bbf00de220f Author: Hariprasad Shenai Date: Tue Jun 2 13:59:40 2015 +0530 cxgb4vf: Adds SRIOV driver changes for T6 adapter Adds vnic driver register related changes for T6 adapter Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4vf/sge.c | 45 ++++++++++++++-------- drivers/net/ethernet/chelsio/cxgb4vf/t4vf_common.h | 8 ++++ drivers/net/ethernet/chelsio/cxgb4vf/t4vf_hw.c | 24 ++++++++---- 3 files changed, 54 insertions(+), 23 deletions(-) commit 3ccc6cf74d8c0059ae076aee3bf83c9124815404 Author: Hariprasad Shenai Date: Tue Jun 2 13:59:39 2015 +0530 cxgb4: Adds support for T6 adapter Adds NIC driver related changes for T6 adapter. Register related changes, MC related changes, VF related changes, doorbell related changes, debugfs changes, etc Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4.h | 11 +- drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c | 180 ++++++++++++----- drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 47 ++++- drivers/net/ethernet/chelsio/cxgb4/sge.c | 47 +++-- drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 218 +++++++++++++++------ drivers/net/ethernet/chelsio/cxgb4/t4_msg.h | 3 + drivers/net/ethernet/chelsio/cxgb4/t4_regs.h | 105 ++++++++++ drivers/net/ethernet/chelsio/cxgb4/t4_values.h | 1 + drivers/net/ethernet/chelsio/cxgb4/t4fw_api.h | 56 ++++-- drivers/net/ethernet/chelsio/cxgb4/t4fw_version.h | 5 + 10 files changed, 524 insertions(+), 149 deletions(-) commit ab4b583b8333afb8bdb7e698a49921dfab80d128 Author: Hariprasad Shenai Date: Tue Jun 2 13:59:38 2015 +0530 cxgb4: Add is_t6 macro and T6 register ranges Adds new macro is_t6 and adds the register address range for T6 adapter Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4.h | 10 + drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 344 +++++++++++++++++++++++++++++ 2 files changed, 354 insertions(+) commit 0b85618f3a02994b721975508ec86c185d61a736 Author: Arnd Bergmann Date: Mon Jun 1 21:20:11 2015 +0200 staging: wilc1000: update TODO list I have crossed off one item on the list, but found a few others that should not get lost, so here is an update of the wilc1000 list Signed-off-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/TODO | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 7a8fd84175d245c8ade80404c53f7ed83e03b256 Author: Arnd Bergmann Date: Mon Jun 1 21:06:45 2015 +0200 staging: wilc1000: fix compiler warnings This avoids the remaining warnings that one gets on a normal build: unused variables, unused labels, and invalid printk format strings. Signed-off-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 8 ++++++-- drivers/staging/wilc1000/linux_wlan_spi.c | 3 --- drivers/staging/wilc1000/wilc_spi.c | 4 ++-- drivers/staging/wilc1000/wilc_wlan.c | 6 ++---- 4 files changed, 10 insertions(+), 11 deletions(-) commit 057d1e979392141727397bc7e7eac309124a2fab Author: Arnd Bergmann Date: Mon Jun 1 21:06:44 2015 +0200 staging: wilc1000: fix const cast warnings The wilc1000 driver produces a lot of warnings about invalid casts between const and non-const variables. This reworks the code to avoid all those warnings, by marking variables and function arguments const. A lot of the types use WILC_Uint8, I change them to const u8 for style reasons, as I'm touching them anyway. Signed-off-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 32 ++++++++++++----------- drivers/staging/wilc1000/host_interface.h | 24 ++++++++--------- drivers/staging/wilc1000/linux_mon.c | 2 +- drivers/staging/wilc1000/wilc_memory.c | 2 +- drivers/staging/wilc1000/wilc_memory.h | 2 +- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 12 ++++----- drivers/staging/wilc1000/wilc_wfi_cfgoperations.h | 2 +- 7 files changed, 39 insertions(+), 37 deletions(-) commit 83383ea33c63a622619acf2b979037ee775500dd Author: Arnd Bergmann Date: Mon Jun 1 21:06:43 2015 +0200 staging: wilc1000: remove semaphore wrapper The various semaphore functions all directly translate into sema_init(), down() and up(), so we can just remove the API. This is a mostly automated conversion using simple sed scripts, plus some manual changes to account for down() returning no error. As a positive side-effect, down() no longer hangs after receiving a signal, as the original code did by looping around down_interruptible. The semaphores still need to be turned into mutexes as a follow-up step. Signed-off-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/Makefile | 2 +- drivers/staging/wilc1000/coreconfigurator.c | 29 +--- drivers/staging/wilc1000/fifo_buffer.c | 108 +++++++------- drivers/staging/wilc1000/fifo_buffer.h | 2 +- drivers/staging/wilc1000/host_interface.c | 171 +++++++++------------- drivers/staging/wilc1000/host_interface.h | 16 +- drivers/staging/wilc1000/wilc_msgqueue.c | 32 ++-- drivers/staging/wilc1000/wilc_oswrapper.h | 3 - drivers/staging/wilc1000/wilc_platform.h | 4 +- drivers/staging/wilc1000/wilc_semaphore.c | 56 ------- drivers/staging/wilc1000/wilc_semaphore.h | 99 ------------- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 35 ++--- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 4 +- 13 files changed, 161 insertions(+), 400 deletions(-) commit e14af67d8fb20128927b65d824b389698dd5c663 Author: Arnd Bergmann Date: Mon Jun 1 21:06:42 2015 +0200 staging: wilc1000: remove EXPORT_SYMTAB The EXPORT_SYMTAB symbol has not been used in Linux for a very long time, the driver does not need to set it. Signed-off-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d074f293907c3b53f266a337e1bdf7506a4991c0 Author: Arnd Bergmann Date: Mon Jun 1 21:06:41 2015 +0200 staging: wilc1000: remove unused OS abstraction features All the remaining features from the OS abstraction layer are not used at all in the driver, so we can just remove the remaining references to them. Signed-off-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_errorsupport.h | 17 ---- drivers/staging/wilc1000/wilc_event.h | 123 --------------------------- drivers/staging/wilc1000/wilc_osconfig.h | 14 --- drivers/staging/wilc1000/wilc_oswrapper.h | 22 ----- drivers/staging/wilc1000/wilc_platform.h | 62 -------------- 5 files changed, 238 deletions(-) commit 042f19c9359400f6d31e568416aa484a94513346 Author: Arnd Bergmann Date: Mon Jun 1 21:06:40 2015 +0200 staging: wilc1000: clean up timer feature The driver has a simple wrapper around timer_list, and an optional but unused feature to make the timer periodic. This removes support for the periodic timer and simplifies the code around timers. A follow-up should replace the remaining wrapper with open-coded timers. Signed-off-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_osconfig.h | 2 -- drivers/staging/wilc1000/wilc_oswrapper.h | 2 -- drivers/staging/wilc1000/wilc_platform.h | 4 ---- drivers/staging/wilc1000/wilc_timer.c | 6 ------ drivers/staging/wilc1000/wilc_timer.h | 27 --------------------------- 5 files changed, 41 deletions(-) commit b96ff76a073a4502dd2fb6298d2582823eebc0f7 Author: Arnd Bergmann Date: Mon Jun 1 21:06:39 2015 +0200 staging: wilc1000: clean up sleep wrapper The driver has a simple wrapper around msleep, as well as a more advanced sleep function that is unused. This removes the unused code and the options to turn the feature on or off. A follow-up should rework the code to use msleep directly. Signed-off-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_osconfig.h | 2 -- drivers/staging/wilc1000/wilc_oswrapper.h | 2 -- drivers/staging/wilc1000/wilc_platform.h | 6 ------ drivers/staging/wilc1000/wilc_sleep.c | 10 ---------- drivers/staging/wilc1000/wilc_sleep.h | 30 +----------------------------- 5 files changed, 1 insertion(+), 49 deletions(-) commit 5f928b956760bc34ff314e9c8962066c230a05b9 Author: Arnd Bergmann Date: Mon Jun 1 21:06:38 2015 +0200 staging: wilc1000: simplify semaphore wrapper The driver has its own API for semaphores. This should be replaced with mutexes and completions, but for the moment we can start by removing the obviously unused parts. Signed-off-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_osconfig.h | 1 - drivers/staging/wilc1000/wilc_oswrapper.h | 2 -- drivers/staging/wilc1000/wilc_semaphore.c | 14 -------------- drivers/staging/wilc1000/wilc_semaphore.h | 18 +----------------- 4 files changed, 1 insertion(+), 34 deletions(-) commit 71b13e5990a32e990e41d3478ec6205b94153556 Author: Arnd Bergmann Date: Mon Jun 1 21:06:37 2015 +0200 staging: wilc1000: remove unused memory handling code The driver contains its own abstraction for memory allocation, most of it unused. This removes the unused parts, but the rest should also be removed later. Signed-off-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_memory.c | 5 -- drivers/staging/wilc1000/wilc_memory.h | 93 ------------------------------- drivers/staging/wilc1000/wilc_osconfig.h | 3 - drivers/staging/wilc1000/wilc_oswrapper.h | 2 - drivers/staging/wilc1000/wilc_platform.h | 13 ----- 5 files changed, 116 deletions(-) commit 2ed3dc1d3ca0fcbf94ad087187e3d34e337ecf4d Author: Arnd Bergmann Date: Mon Jun 1 21:06:36 2015 +0200 staging: wilc1000: simplify msgqueue code The driver contains an abstraction for message queues, with optional unused features, while the driver requires the main feature. This makes the msgqueue code unconditional as it's required but removes the unused parts. A later cleanup should remove the entire msgqueue code and replace it with some normal kernel API. Signed-off-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_msgqueue.c | 9 --------- drivers/staging/wilc1000/wilc_msgqueue.h | 30 ------------------------------ drivers/staging/wilc1000/wilc_osconfig.h | 3 --- drivers/staging/wilc1000/wilc_oswrapper.h | 2 -- drivers/staging/wilc1000/wilc_platform.h | 12 ------------ 5 files changed, 56 deletions(-) commit 4ec5d4a4f67771d19ab6a97c2591cbfc3aaba7cc Author: Arnd Bergmann Date: Mon Jun 1 21:06:35 2015 +0200 staging: wilc1000: remove unused string functions The driver provides wrappers for a lot of string operations. Some of them are unused, while others should be replaced with normal kernel functions. This replaces the unused ones for now, and leaves the other ones for a later cleanup. Signed-off-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_osconfig.h | 2 - drivers/staging/wilc1000/wilc_oswrapper.h | 2 - drivers/staging/wilc1000/wilc_platform.h | 4 - drivers/staging/wilc1000/wilc_strutils.c | 351 ------------------------------ drivers/staging/wilc1000/wilc_strutils.h | 282 ------------------------ 5 files changed, 641 deletions(-) commit f155bcf8deb4e93ea63aeb62b504fa6c0b007065 Author: Arnd Bergmann Date: Mon Jun 1 21:06:34 2015 +0200 staging: wilc1000: remove time wrapper The abstraction for time in this driver is completely unused, so remove it. Signed-off-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/Makefile | 2 +- drivers/staging/wilc1000/wilc_osconfig.h | 1 - drivers/staging/wilc1000/wilc_oswrapper.h | 5 - drivers/staging/wilc1000/wilc_platform.h | 12 -- drivers/staging/wilc1000/wilc_time.c | 163 ------------------------ drivers/staging/wilc1000/wilc_time.h | 205 ------------------------------ 6 files changed, 1 insertion(+), 387 deletions(-) commit d20be433e6a8892ecf59ef62636cd1333975347d Author: Anton Blanchard Date: Tue May 26 15:46:55 2015 +1000 powerpc: Non relocatable system call doesn't need a trampoline We need to use a trampoline when using LOAD_HANDLER(), because the destination needs to be in the first 64kB. An absolute branch has no such limitations, so just jump there. Signed-off-by: Anton Blanchard Signed-off-by: Michael Ellerman arch/powerpc/kernel/exceptions-64s.S | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 05b05f28fb3835087b3d4e741fd561b9826fe461 Author: Anton Blanchard Date: Tue May 26 15:46:54 2015 +1000 powerpc: Relocatable system call no longer uses the LR We had some code to restore the LR in the relocatable system call path back when we used the LR to do an indirect branch. Commit 6a404806dfce ("powerpc: Avoid link stack corruption in MMU on syscall entry path") changed this to use the CTR which is volatile across system calls so does not need restoring. Remove the stale comment and the restore of the LR. Signed-off-by: Anton Blanchard Signed-off-by: Michael Ellerman arch/powerpc/kernel/exceptions-64s.S | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) commit 72e349f1124a114435e599479c9b8d14bfd1ebcd Author: Anton Blanchard Date: Tue May 26 15:10:24 2015 +1000 powerpc/perf: Fix book3s kernel to userspace backtraces When we take a PMU exception or a software event we call perf_read_regs(). This overloads regs->result with a boolean that describes if we should use the sampled instruction address register (SIAR) or the regs. If the exception is in kernel, we start with the kernel regs and backtrace through the kernel stack. At this point we switch to the userspace regs and backtrace the user stack with perf_callchain_user(). Unfortunately these regs have not got the perf_read_regs() treatment, so regs->result could be anything. If it is non zero, perf_instruction_pointer() decides to use the SIAR, and we get issues like this: 0.11% qemu-system-ppc [kernel.kallsyms] [k] _raw_spin_lock_irqsave | ---_raw_spin_lock_irqsave | |--52.35%-- 0 | | | |--46.39%-- __hrtimer_start_range_ns | | kvmppc_run_core | | kvmppc_vcpu_run_hv | | kvmppc_vcpu_run | | kvm_arch_vcpu_ioctl_run | | kvm_vcpu_ioctl | | do_vfs_ioctl | | sys_ioctl | | system_call | | | | | |--67.08%-- _raw_spin_lock_irqsave <--- hi mum | | | | | | | --100.00%-- 0x7e714 | | | 0x7e714 Notice the bogus _raw_spin_irqsave when we transition from kernel (system_call) to userspace (0x7e714). We inserted what was in the SIAR. Add a check in regs_use_siar() to check that the regs in question are from a PMU exception. With this fix the backtrace makes sense: 0.47% qemu-system-ppc [kernel.vmlinux] [k] _raw_spin_lock_irqsave | ---_raw_spin_lock_irqsave | |--53.83%-- 0 | | | |--44.73%-- hrtimer_try_to_cancel | | kvmppc_start_thread | | kvmppc_run_core | | kvmppc_vcpu_run_hv | | kvmppc_vcpu_run | | kvm_arch_vcpu_ioctl_run | | kvm_vcpu_ioctl | | do_vfs_ioctl | | sys_ioctl | | system_call | | __ioctl | | 0x7e714 | | 0x7e714 Cc: stable@vger.kernel.org Signed-off-by: Anton Blanchard Signed-off-by: Michael Ellerman arch/powerpc/perf/core-book3s.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit 09f3f326cda6b6e2dfc6471c7f8ac77696c87419 Author: Michael Ellerman Date: Mon Jun 1 21:11:35 2015 +1000 powerpc/mm: Fix build break with STRICT_MM_TYPECHECKS && DEBUG_PAGEALLOC If both STRICT_MM_TYPECHECKS and DEBUG_PAGEALLOC are enabled, the code in kernel_map_linear_page() is built, and so we fail with: arch/powerpc/mm/hash_utils_64.c:1478:2: error: incompatible type for argument 1 of 'htab_convert_pte_flags' Fix it by using pgprot_val(). Reported-by: Geert Uytterhoeven Signed-off-by: Michael Ellerman arch/powerpc/mm/hash_utils_64.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 763d2d8df1ee2b92ff09cd58f6034021e2cabf6d Author: Daniel Axtens Date: Tue Apr 28 15:12:07 2015 +1000 powerpc/powernv: Move dma_set_mask() from pnv_phb to pci_controller_ops Previously, dma_set_mask() on powernv was convoluted: 0) Call dma_set_mask() (a/p/kernel/dma.c) 1) In dma_set_mask(), ppc_md.dma_set_mask() exists, so call it. 2) On powernv, that function pointer is pnv_dma_set_mask(). In pnv_dma_set_mask(), the device is pci, so call pnv_pci_dma_set_mask(). 3) In pnv_pci_dma_set_mask(), call pnv_phb->set_dma_mask() if it exists. 4) It only exists in the ioda case, where it points to pnv_pci_ioda_dma_set_mask(), which is the final function. So the call chain is: dma_set_mask() -> pnv_dma_set_mask() -> pnv_pci_dma_set_mask() -> pnv_pci_ioda_dma_set_mask() Both ppc_md and pnv_phb function pointers are used. Rip out the ppc_md call, pnv_dma_set_mask() and pnv_pci_dma_set_mask(). Instead: 0) Call dma_set_mask() (a/p/kernel/dma.c) 1) In dma_set_mask(), the device is pci, and pci_controller_ops.dma_set_mask() exists, so call pci_controller_ops.dma_set_mask() 2) In the ioda case, that points to pnv_pci_ioda_dma_set_mask(). The new call chain is dma_set_mask() -> pnv_pci_ioda_dma_set_mask() Now only the pci_controller_ops function pointer is used. The fallback paths for p5ioc2 are the same. Previously, pnv_pci_dma_set_mask() would find no pnv_phb->set_dma_mask() function, to it would call __set_dma_mask(). Now, dma_set_mask() finds no ppc_md call or pci_controller_ops call, so it calls __set_dma_mask(). Signed-off-by: Daniel Axtens Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/pci-ioda.c | 7 ++++--- arch/powerpc/platforms/powernv/pci.c | 10 ---------- arch/powerpc/platforms/powernv/pci.h | 2 -- arch/powerpc/platforms/powernv/powernv.h | 6 ------ arch/powerpc/platforms/powernv/setup.c | 8 -------- 5 files changed, 4 insertions(+), 29 deletions(-) commit 3405c2570fd68fc5ccc703c8de9c23abf5e95819 Author: Daniel Axtens Date: Tue Apr 28 15:12:06 2015 +1000 powerpc/pci: add dma_set_mask to pci_controller_ops Some systems only need to deal with DMA masks for PCI devices. For these systems, we can avoid the need for a platform hook and instead use a pci controller based hook. Signed-off-by: Daniel Axtens Signed-off-by: Michael Ellerman arch/powerpc/include/asm/pci-bridge.h | 2 ++ arch/powerpc/kernel/dma.c | 8 ++++++++ 2 files changed, 10 insertions(+) commit 92ae03532619dc24fdb7a5ae8ea63785fbd39f86 Author: Daniel Axtens Date: Tue Apr 28 15:12:05 2015 +1000 powerpc/powernv: Specialise pci_controller_ops for each controller type Remove powernv generic PCI controller operations. Replace it with controller ops for each of the two supported PHBs. As an added bonus, make the two new structs const, which will help guard against bugs such as the one introduced in 65ebf4b63 ("powerpc/powernv: Move controller ops from ppc_md to controller_ops") Signed-off-by: Daniel Axtens Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/pci-ioda.c | 16 ++++++++++++---- arch/powerpc/platforms/powernv/pci-p5ioc2.c | 10 +++++++++- arch/powerpc/platforms/powernv/pci.c | 14 +++----------- arch/powerpc/platforms/powernv/pci.h | 4 ++++ arch/powerpc/platforms/powernv/powernv.h | 2 -- 5 files changed, 28 insertions(+), 18 deletions(-) commit f50420223071b6ff4b586308f5c27eec54694a81 Author: Teunis van Beelen Date: Sun May 31 09:36:22 2015 +0200 USB: usbtmc: add device quirk for Rigol DS6104 Recently we purchased the Rigol DS6104 and when I try to operate it from my Linux pc, everything works well with the default usbtmc driver, except when I want to download a big datachunk like a screenshot. This bitmapfile has a size of 1152054 bytes but I receive a smaller file and no new packets can be read. When I took a look at the driver source, I found this "Rigol quirk" and I added the id of the new DS series oscilloscopes to this list. I compiled it and loaded the new driver and now everything seems to work fine. Signed-off-by: Teunis van Beelen Signed-off-by: Greg Kroah-Hartman drivers/usb/class/usbtmc.c | 1 + 1 file changed, 1 insertion(+) commit 8b70f45e2eb275da886b9c9dee190436d12d876a Author: Akinobu Mita Date: Tue Jun 2 08:35:10 2015 +0900 null_blk: restart request processing on completion handler When irqmode=2 (IRQ completion handler is timer) and queue_mode=1 (Block interface to use is rq), the completion handler should restart request handling for any pending requests on a queue because request processing stops when the number of commands are queued more than hw_queue_depth (null_rq_prep_fn returns BLKPREP_DEFER). Without this change, the following command cannot finish. # modprobe null_blk irqmode=2 queue_mode=1 hw_queue_depth=1 # fio --name=t --rw=read --size=1g --direct=1 \ --ioengine=libaio --iodepth=64 --filename=/dev/nullb0 Signed-off-by: Akinobu Mita Cc: Jens Axboe Signed-off-by: Jens Axboe drivers/block/null_blk.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 419c21a3b6275d40a10901f700efcd40515b6db6 Author: Akinobu Mita Date: Tue Jun 2 08:35:09 2015 +0900 null_blk: prevent timer handler running on a different CPU where started When irqmode=2 (IRQ completion handler is timer), timer handler should be called on the same CPU where the timer has been started. Since completion_queues are per-cpu and the completion handler only touches completion_queue for local CPU, we need to prevent the handler from running on a different CPU where the timer has been started. Otherwise, the IO cannot be completed until another completion handler is executed on that CPU. Signed-off-by: Akinobu Mita Cc: Jens Axboe Signed-off-by: Jens Axboe drivers/block/null_blk.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1f88d5860e0b8244b28e21b63a521915e5c15313 Author: Daniel Axtens Date: Tue Apr 14 14:28:03 2015 +1000 powerpc: Remove MSI-related PCI controller ops from ppc_md Remove unneeded ppc_md functions. Patch callsites to use pci_controller_ops functions exclusively. Signed-off-by: Daniel Axtens Signed-off-by: Michael Ellerman arch/powerpc/include/asm/machdep.h | 6 ------ arch/powerpc/kernel/msi.c | 15 ++++----------- 2 files changed, 4 insertions(+), 17 deletions(-) commit 14f95acda2f3238f3470beea0ddbf78081b3268d Author: Daniel Axtens Date: Tue Apr 14 14:28:02 2015 +1000 powerpc/mpic_u3msi: Move MSI-related ops to pci_controller_ops Move the u3 MPIC msi subsystem to use the pci_controller_ops structure rather than ppc_md for MSI related PCI controller operations. As with fsl_msi, operations are plugged in at the subsys level, after controller creation. Again, we iterate over all controllers and populate them with the MSI ops. Signed-off-by: Daniel Axtens Signed-off-by: Michael Ellerman arch/powerpc/sysdev/mpic_u3msi.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 83922966973e19a48b6e59f9fa1259aa790a33c1 Author: Daniel Axtens Date: Tue Apr 14 14:28:01 2015 +1000 powerpc/pasemi: Move MSI-related ops to pci_controller_ops Move the PaSemi MPIC msi subsystem to use the pci_controller_ops structure rather than ppc_md for MSI related PCI controller operations. As with fsl_msi, operations are plugged in at the subsys level, after controller creation. Again, we iterate over all controllers and populate them with the MSI ops. Signed-off-by: Daniel Axtens Signed-off-by: Michael Ellerman arch/powerpc/platforms/pasemi/msi.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit f2c800aaceb6f26fe78590f971169b1d3d6fe322 Author: Daniel Axtens Date: Tue Apr 14 14:28:00 2015 +1000 powerpc/ppc4xx_hsta_msi: Move MSI-related ops to pci_controller_ops Move the ppc4xx hsta msi subsystem to use the pci_controller_ops structure rather than ppc_md for MSI related PCI controller operations. As with fsl_msi, operations are plugged in at the subsys level, after controller creation. Again, we iterate over all controllers and populate them with the MSI ops. Signed-off-by: Daniel Axtens Signed-off-by: Michael Ellerman arch/powerpc/sysdev/ppc4xx_hsta_msi.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit b7eba2ffccb51d7676a4ddc26658687331feb6a3 Author: Daniel Axtens Date: Tue Apr 14 14:27:59 2015 +1000 powerpc/ppc4xx_msi: Move MSI-related ops to pci_controller_ops Move the ppc4xx msi subsystem to use the pci_controller_ops structure rather than ppc_md for MSI related PCI controller operations. As with fsl_msi, operations are plugged in at the subsys level, after controller creation. Again, we iterate over all controllers and populate them with the MSI ops. Signed-off-by: Daniel Axtens Signed-off-by: Michael Ellerman arch/powerpc/sysdev/ppc4xx_msi.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 00e25397032f590d0a4d0ee89e236a4d1f8c0580 Author: Daniel Axtens Date: Tue Apr 14 14:27:58 2015 +1000 powerpc/fsl_msi: Move MSI-related ops to pci_controller_ops Move the fsl_msi subsystem to use the pci_controller_ops structure rather than ppc_md for MSI related PCI controller operations. Previously, MSI ops were added to ppc_md at the subsys level. However, in fsl_pci.c, PCI controllers are created at the at arch level. So, unlike in e.g. PowerNV/pSeries/Cell, we can't simply populate a platform-level controller ops structure and have it copied into the controllers when they are created. Instead, walk every phb, and attempt to populate it with the MSI ops. Signed-off-by: Daniel Axtens Signed-off-by: Michael Ellerman arch/powerpc/sysdev/fsl_msi.c | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) commit 1d14b8755f0a7d8110f0bdc5b74987f8cc96c18e Author: Daniel Axtens Date: Tue Apr 14 14:27:57 2015 +1000 powerpc/pseries: Move MSI-related ops to pci_controller_ops Move the pseries platform to use the pci_controller_ops structure rather than ppc_md for MSI related PCI controller operations We need to iterate all PHBs because the MSI setup happens later than find_and_init_phbs() - mpe. Signed-off-by: Daniel Axtens Signed-off-by: Michael Ellerman arch/powerpc/platforms/pseries/msi.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) commit e152813ff5fea74094ae296367f477411df1ba24 Merge: 74db22c e18b797 Author: Greg Kroah-Hartman Date: Tue Jun 2 10:47:03 2015 +0900 Merge tag 'usb-for-v4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-next Felipe writes: usb: patches for v4.2 merge window - dwc2 adds hibernation support - preparation for sunxi glue to musb driver - new ULPI bus - new ULPI PHY driver for TUSB1210 - musb patches to support multiple DMA engines on same binary - support for R-Car E2 on renesas_usbhs Signed-off-by: Felipe Balbi commit a55a744582e0dc106537ba5e508c340c39cfe454 Author: Pali Rohár Date: Thu Feb 26 14:49:52 2015 +0100 ARM: OMAP3: Fix crypto support for HS devices Register crypto hwmod links only if they are not disabled in DT. If DT information is missing, enable them only for GP devices. Before this patch crypto hwmod links were always disabled for all HS devices and it was not possible to use omap-aes and omap-sham linux drivers. Signed-off-by: Pali Rohár Acked-by: Pavel Machek [paul@pwsan.com: move the complex IP-block presence heuristics into their own function to simplify the code; fix some checkpatch warnings] Signed-off-by: Paul Walmsley arch/arm/mach-omap2/omap_hwmod_3xxx_data.c | 107 +++++++++++++++++++++++++---- 1 file changed, 94 insertions(+), 13 deletions(-) commit 6da233589f26ebd891d507a5a134ab43267006f2 Author: Pali Rohár Date: Thu Feb 26 14:49:51 2015 +0100 ARM: OMAP2+: Return correct error values from device and hwmod Without this patch function pm_runtime_get_sync() returns 0 even when some omap subfunction fails. This patch properly propagate error codes from omap functions back to caller. This patch fix problem, when loading omap-aes driver in qemu cause kernel oops. Signed-off-by: Pali Rohár [paul@pwsan.com: fix a checkpatch warning] Signed-off-by: Paul Walmsley arch/arm/mach-omap2/omap_device.c | 30 +++++++++++++++++------------- arch/arm/mach-omap2/omap_hwmod.c | 10 ++++++---- 2 files changed, 23 insertions(+), 17 deletions(-) commit fabbe6df130a46d5b5e7484b2273d69c4be3012a Author: Dave Gerlach Date: Mon Jun 1 19:22:11 2015 -0600 ARM: OMAP: AM43xx hwmod: Add data for am43xx emif hwmod Without a hwmod for am43xx emif use counting for emif clockdomain does not happen correctly so it may be shut off by pm code unintentionally. Signed-off-by: Dave Gerlach [paul@pwsan.com: updated to apply] Signed-off-by: Paul Walmsley .../mach-omap2/omap_hwmod_33xx_43xx_common_data.h | 1 + .../mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c | 13 +++++++++++++ arch/arm/mach-omap2/omap_hwmod_33xx_data.c | 13 ------------- arch/arm/mach-omap2/omap_hwmod_43xx_data.c | 22 ++++++++++++++++++++++ arch/arm/mach-omap2/prcm43xx.h | 2 ++ 5 files changed, 38 insertions(+), 13 deletions(-) commit 63aa945b1013c34b145dcf218d4ea323cbd93f86 Author: Tony Lindgren Date: Mon Jun 1 19:22:10 2015 -0600 memory: omap-gpmc: Add Kconfig option for debug We support decoding the bootloader values if DEBUG is defined. But we also need to change the struct omap_hwmod flags to have HWMOD_INIT_NO_RESET to avoid the GPMC being reset during the boot. Otherwise just the default timings will be displayed instead of the bootloader configured timings. This also allows us to clean up the various GPMC related hwmod flags. For debugging, we only need HWMOD_INIT_NO_RESET, and HWMOD_INIT_NO_IDLE is not needed. Cc: Brian Hutchinson Cc: Paul Walmsley Cc: Roger Quadros Signed-off-by: Tony Lindgren Signed-off-by: Paul Walmsley arch/arm/mach-omap2/omap_hwmod.h | 6 ++++++ arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c | 12 ++---------- arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c | 3 ++- arch/arm/mach-omap2/omap_hwmod_3xxx_data.c | 12 ++---------- arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 11 ++--------- arch/arm/mach-omap2/omap_hwmod_7xx_data.c | 4 ++-- arch/arm/mach-omap2/omap_hwmod_81xx_data.c | 2 ++ drivers/memory/Kconfig | 8 ++++++++ drivers/memory/omap-gpmc.c | 6 +++--- 9 files changed, 29 insertions(+), 35 deletions(-) commit d89511251f6519599b109dc6cda87a6ab314ed8c Author: John W. Linville Date: Mon Jun 1 15:51:35 2015 -0400 geneve: allow user to specify TOS info for tunnel frames Signed-off-by: John W. Linville Signed-off-by: David S. Miller drivers/net/geneve.c | 18 ++++++++++++++---- include/uapi/linux/if_link.h | 1 + 2 files changed, 15 insertions(+), 4 deletions(-) commit 8760ce58353c2099be35ead62a572ee2d1e83b5b Author: John W. Linville Date: Mon Jun 1 15:51:34 2015 -0400 geneve: allow user to specify TTL for tunnel frames Signed-off-by: John W. Linville Signed-off-by: David S. Miller drivers/net/geneve.c | 18 ++++++++++++++---- include/uapi/linux/if_link.h | 1 + 2 files changed, 15 insertions(+), 4 deletions(-) commit ff43c28a5ed1262cffbeab639e314beacbb37a57 Merge: 66e5133 2aa2ed0 Author: David S. Miller Date: Mon Jun 1 17:00:09 2015 -0700 Merge branch 'rocker-next' Scott Feldman says: ==================== rocker: enable by default untagged VLAN support This patch set is a followup to Simon Horman's RFC patch: [PATCH/RFC net-next] rocker: by default accept untagged packets Now, on port probe, we install untagged VLAN (vid=0) support for each port as the default. This is equivalent to the command: bridge vlan add vid 0 dev DEV self Accepting untagged VLAN pkts is a reasonable default, but the user could override this with: bridge vlan del vid 0 dev DEV self With this, we no longer need 8021q module to install vid=0 when port interface opens. In fact, we don't need support for legacy VLAN ndo ops at all since they're superseded by bridge_setlink/dellink. So remove legacy VLAN ndo ops support in driver. (The legacy VLAN ndo ops are supported by bonding/team drivers, but don't fit into the transaction model offered by switchdev, so switching all VLAN functions to bridge_setlink/dellink switchdev support gets us stacked driver + transaction model support). ==================== Signed-off-by: David S. Miller commit 2aa2ed0864b3cf96479a401c449dd4a3eea15ce8 Author: Scott Feldman Date: Mon Jun 1 11:39:06 2015 -0700 rocker: remove support for legacy VLAN ndo ops Remove support for legacy ndo ops .ndo_vlan_rx_add_vid/.ndo_vlan_rx_kill_vid. Rocker will use bridge_setlink/dellink exclusively for VLAN add/del operations. The legacy ops are needed if using 8021q driver module to setup VLANs on the port. But an alternative exists in using bridge_setlink/delink to setup VLANs, which doesn't depend on 8021q module. So rocker will switch to the newer setlink/dellink ops. VLANs can added/delete from the port, regardless if port is bridged or not, using the bridge commands: bridge vlan [add|del] vid VID dev DEV self (Yes, I agree it's confusing to use the "bridge" command to set a VLAN on a non-bridged port). Using setlink/dellink over legacy ops let's us handle the stacked driver case automatically. It's built-in. setlink also pass additional flags (PVID, egress untagged) that aren't available with the legacy ops. Signed-off-by: Scott Feldman Signed-off-by: David S. Miller drivers/net/ethernet/rocker/rocker.c | 34 +--------------------------------- 1 file changed, 1 insertion(+), 33 deletions(-) commit 027e00dc0bc7049e66124a3943efa9defa5cd835 Author: Scott Feldman Date: Mon Jun 1 11:39:05 2015 -0700 rocker: install/remove router MAC for untagged VLAN when joining/leaving bridge When the port joins a bridge, the port's internal VLAN ID needs to change to the bridge's internal VLAN ID. Likewise, when leaving the bridge, the internal VLAN ID reverts back the port's original internal VLAN ID. (The internal VLAN ID is used by device to internally mark untagged pkts with some VLAN, which will eventually be removed on egress...think PVID). When the internal VLAN ID changes, we need to update the VLAN table entries and the router MAC entries for IP/IPv6 to reflect the new internal VLAN ID. This patch makes use of the common rocker_port_vlan_add/del functions to make sure the tables are updated for the current internal VLAN ID. Signed-off-by: Scott Feldman Signed-off-by: David S. Miller drivers/net/ethernet/rocker/rocker.c | 42 +++++++++++++++++++++--------------- 1 file changed, 25 insertions(+), 17 deletions(-) commit bcfd780144371fa0156176fa5518d4dabcd5aab9 Author: Scott Feldman Date: Mon Jun 1 11:39:04 2015 -0700 rocker: install untagged VLAN (vid=0) support for each port On port probe, install by default untagged VLAN support. This is equivalent to running the command: bridge vlan add vid 0 dev DEV self A user could, if they wanted, manaully removing untagged support from the port by running the command: bridge vlan del vid 0 dev DEV self But installing it by default on port initialization gives the normal expected behavior. Signed-off-by: Scott Feldman Signed-off-by: David S. Miller drivers/net/ethernet/rocker/rocker.c | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) commit cec04a60bcd72ce43618ca62da5e0f508e694703 Author: Scott Feldman Date: Mon Jun 1 11:39:03 2015 -0700 rocker: cleanup vlan table on error adding vlan Basic house keeping: If there is an error adding the router MAC for this vlan, removing the just installed VLAN table entry to leave device in same state as before failure. Signed-off-by: Scott Feldman Signed-off-by: David S. Miller drivers/net/ethernet/rocker/rocker.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 27b808cbc2ad72608fb2fd9abd81930d32464546 Author: Scott Feldman Date: Mon Jun 1 11:39:02 2015 -0700 rocker: zero allocate ports array When allocating the array of rocker port pointers, zero the array values so we can test for !NULL to see if port is allocated/registered. We'll need this later when installing untagged VLAN support for each port, during port probe. It's a long story, but to install a VLAN (vid=0 for untagged, in this case) on a port, we'll need to scan other ports to see if the VLAN group for that VLAN has been setup. To scan the other ports, we need to walk the port array. Signed-off-by: Scott Feldman Signed-off-by: David S. Miller drivers/net/ethernet/rocker/rocker.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 66e5133f19e901a044fa5eaeeb6ecff4545839e5 Author: Toshiaki Makita Date: Mon Jun 1 21:55:06 2015 +0900 vlan: Add GRO support for non hardware accelerated vlan Currently packets with non-hardware-accelerated vlan cannot be handled by GRO. This causes low performance for 802.1ad and stacked vlan, as their vlan tags are currently not stripped by hardware. This patch adds GRO support for non-hardware-accelerated vlan and improves receive performance of them. Test Environment: vlan device (.1Q) on vlan device (.1ad) on ixgbe (82599) Result: - Before $ netperf -t TCP_STREAM -H 192.168.20.2 -l 60 Recv Send Send Socket Socket Message Elapsed Size Size Size Time Throughput bytes bytes bytes secs. 10^6bits/sec 87380 16384 16384 60.00 5233.17 Rx side CPU usage: %usr %sys %irq %soft %idle 0.27 58.03 0.00 41.70 0.00 - After $ netperf -t TCP_STREAM -H 192.168.20.2 -l 60 Recv Send Send Socket Socket Message Elapsed Size Size Size Time Throughput bytes bytes bytes secs. 10^6bits/sec 87380 16384 16384 60.00 7586.85 Rx side CPU usage: %usr %sys %irq %soft %idle 0.50 25.83 0.00 59.53 14.14 [ Register VLAN offloads with priority 10 -DaveM ] Signed-off-by: Toshiaki Makita Signed-off-by: David S. Miller include/linux/if_vlan.h | 20 +++++++++++ net/8021q/vlan.c | 96 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 116 insertions(+) commit 96c6dd59bf1d8b30afd3681550b321f4183e1914 Author: Chenxi Mao Date: Sat May 30 22:56:46 2015 +0800 f2fs: disable the discard option when device doesn't support Current f2fs check the whether the blk device can support discard. However, the code will cause the discard option cannot be enabled. Because the clear_opt(sbi, DISCARD) will be invoked forever. This patch can fix this issue. Jaegeuk Kim: The original patch was intended to disable the discard option when device does not support trim command. Rather than remaining the buggy patch, let's replace with this patch as an integrated one. Signed-off-by: Chenxi Mao Signed-off-by: Jaegeuk Kim fs/f2fs/super.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 4683ff837c2d000212f72ce72cab22f061e5a77c Author: Jaegeuk Kim Date: Mon Jun 1 12:39:30 2015 -0700 f2fs crypto: remove alloc_page for bounce_page We don't need to call alloc_page() prior to mempool_alloc(), since the mempool_alloc() calls alloc_page() internally. And, if __GFP_WAIT is set, it never fails on page allocation, so let's give GFP_NOWAIT and handle ENOMEM by writepage(). Signed-off-by: Jaegeuk Kim fs/f2fs/crypto.c | 33 ++++++++++++--------------------- fs/f2fs/f2fs_crypto.h | 3 +-- 2 files changed, 13 insertions(+), 23 deletions(-) commit 9236cac5666ea8b3a3b92b132a046c200b99dca8 Author: Jaegeuk Kim Date: Thu May 28 18:19:17 2015 -0700 f2fs: fix a deadlock for summary page lock vs. sentry_lock In f2fs_gc: In f2fs_replace_block: - lock_page(sum_page) - check_valid_map() - mutex_lock(sentry_lock) - mutex_lock(sentry_lock) - change_curseg() - lock_page(sum_page) This patch fixes the deadlock condition. Signed-off-by: Jaegeuk Kim fs/f2fs/gc.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit e5e0906b6b4c517a8622f2ff196c19cbd1068644 Author: Jaegeuk Kim Date: Thu May 28 17:06:40 2015 -0700 f2fs crypto: clean up error handling in f2fs_fname_setup_filename Sync with: ext4 crypto: clean up error handling in ext4_fname_setup_filename Signed-off-by: Jaegeuk Kim fs/f2fs/crypto_fname.c | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) commit e992e238ff93920da65f5aa83d3f3e257530ce8b Author: Jaegeuk Kim Date: Wed May 27 19:51:42 2015 -0700 f2fs crypto: avoid f2fs_inherit_context for symlink This patch fixes to call f2fs_inherit_context twice for newly created symlink. The original one is called by f2fs_add_link(), which invokes f2fs_setxattr. If the second one is called again, f2fs_setxattr is triggered again with same encryption index. Signed-off-by: Jaegeuk Kim fs/f2fs/namei.c | 4 ---- 1 file changed, 4 deletions(-) commit 4637fd11fff7ddca1a1d7d27d2fbfc4dcb8e9791 Author: Chao Yu Date: Wed May 27 15:27:49 2015 +0800 f2fs crypto: do not set encryption policy for non-directory by ioctl Encryption policy should only be set to an empty directory through ioctl, This patch add a judgement condition to verify type of the target inode to avoid incorrectly configuring for non-directory. Additionally, remove unneeded inline data conversion since regular or symlink file should not be processed here. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/crypto_policy.c | 3 +++ fs/f2fs/file.c | 6 ------ 2 files changed, 3 insertions(+), 6 deletions(-) commit 81b0a8ffaa92012e63ea611e8aeb9e74acfcedac Author: Chao Yu Date: Mon May 25 18:09:03 2015 +0800 f2fs crypto: allow setting encryption policy once This patch add XATTR_CREATE flag in setxattr when setting encryption context for inode. Without this flag the context could be set more than once, this should never happen. So, fix it. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/crypto_policy.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit d3baf7c4725601d4689397b9f7dde9e3ddea032d Author: Chao Yu Date: Mon May 25 18:07:02 2015 +0800 f2fs crypto: check context consistent for rename2 For exchange rename, we should check context consistent of encryption between new_dir and old_inode or old_dir and new_inode. Otherwise inheritance of parent's encryption context will be broken. Signed-off-by: Chao Yu [Jaegeuk Kim: sync with ext4 approach] Signed-off-by: Jaegeuk Kim fs/f2fs/namei.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 12377024719f08b7411afe9fc0169b13808dfefa Author: Chao Yu Date: Mon May 25 18:03:38 2015 +0800 f2fs: avoid duplicated code by reusing f2fs_read_end_io This patch tries to clean up code because part code of f2fs_read_end_io and mpage_end_io are the same, so it's better to merge and reuse them. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/data.c | 32 ++++---------------------------- 1 file changed, 4 insertions(+), 28 deletions(-) commit 26bf3dc7e25b813ff5c92234f8165941fdc12a63 Author: Jaegeuk Kim Date: Tue May 19 22:26:54 2015 -0700 f2fs crypto: use per-inode tfm structure This patch applies the following ext4 patch: ext4 crypto: use per-inode tfm structure As suggested by Herbert Xu, we shouldn't allocate a new tfm each time we read or write a page. Instead we can use a single tfm hanging off the inode's crypt_info structure for all of our encryption needs for that inode, since the tfm can be used by multiple crypto requests in parallel. Also use cmpxchg() to avoid races that could result in crypt_info structure getting doubly allocated or doubly freed. Signed-off-by: Theodore Ts'o Signed-off-by: Jaegeuk Kim fs/f2fs/crypto.c | 82 +++---------------------------------- fs/f2fs/crypto_fname.c | 48 +--------------------- fs/f2fs/crypto_key.c | 107 ++++++++++++++++++++++++++++++++++++------------- fs/f2fs/dir.c | 8 ++-- fs/f2fs/f2fs.h | 5 +-- fs/f2fs/f2fs_crypto.h | 4 -- fs/f2fs/inode.c | 2 +- fs/f2fs/namei.c | 4 +- fs/f2fs/super.c | 3 +- 9 files changed, 96 insertions(+), 167 deletions(-) commit da554e48caab95a48afe0d7be8d9eae2bbdaa28d Author: hujianyang Date: Thu May 21 14:42:53 2015 +0800 f2fs: recovering broken superblock during mount This patch recovers a broken superblock with the other valid one. Signed-off-by: hujianyang [Jaegeuk Kim: reinitialize local variables in f2fs_fill_super for retrial] Signed-off-by: Jaegeuk Kim fs/f2fs/super.c | 65 +++++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 52 insertions(+), 13 deletions(-) commit 304eecc3462ed62006433d04e3ad945f92f90d52 Author: Jaegeuk Kim Date: Tue May 19 16:11:40 2015 -0700 f2fs crypto: check encryption for tmpfile This patch adds to check encryption for tmpfile in early stage. Signed-off-by: Jaegeuk Kim fs/f2fs/namei.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 7e01e7ad746bc8198a8b46163ddc73a1c7d22339 Author: Chao Yu Date: Tue May 19 17:37:26 2015 +0800 f2fs: support RENAME_WHITEOUT As the description of rename in manual, RENAME_WHITEOUT is a special operation that only makes sense for overlay/union type filesystem. When performing rename with RENAME_WHITEOUT, dst will be replace with src, and meanwhile, a 'whiteout' will be create with name of src. A "whiteout" is designed to be a char device with 0,0 device number, it has specially meaning for stackable filesystem. In these filesystems, there are multiple layers exist, and only top of these can be modified. So a whiteout in top layer is used to hide a corresponding file in lower layer, as well removal of whiteout will make the file appear. Now in overlayfs, when we rename a file which is exist in lower layer, it will be copied up to upper if it is not on upper layer yet, and then rename it on upper layer, source file will be whiteouted to hide corresponding file in lower layer at the same time. So in upper layer filesystem, implementation of RENAME_WHITEOUT provide a atomic operation for stackable filesystem to support rename operation. There are multiple ways to implement RENAME_WHITEOUT in log of this commit: 7dcf5c3e4527 ("xfs: add RENAME_WHITEOUT support") which pointed out by Dave Chinner. For now, we just try to follow the way that xfs/ext4 use. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/namei.c | 153 ++++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 100 insertions(+), 53 deletions(-) commit 381722d2ac0314f65fd98db9a0eb8bdd1d984925 Author: Chao Yu Date: Tue May 19 17:40:04 2015 +0800 f2fs: introduce update_meta_page Add a help function update_meta_page() to update meta page with specified buffer. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/checkpoint.c | 26 ++++++-------------------- fs/f2fs/f2fs.h | 1 + fs/f2fs/segment.c | 25 +++++++++++++++---------- 3 files changed, 22 insertions(+), 30 deletions(-) commit cb5c94cf3a825a0b64ae84516e7dd5c8a59befe6 Author: Chao Yu Date: Mon May 18 18:00:06 2015 +0800 f2fs crypto: zero next free dnode block Now page cache of meta inode is used by garbage collection for encrypted page, it may contain random data, so we should zero it before issuing discard. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/segment.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cfc4d971df411c68e27d903f749e0f6fffd9da40 Author: Jaegeuk Kim Date: Fri May 15 15:37:24 2015 -0700 f2fs crypto: split f2fs_crypto_init/exit with two parts This patch splits f2fs_crypto_init/exit with two parts: base initialization and memory allocation. Firstly, f2fs module declares the base encryption memory pointers. Then, allocating internal memories is done at the first encrypted inode access. Signed-off-by: Jaegeuk Kim fs/f2fs/crypto.c | 90 ++++++++++++++++++++++++++++++---------------------- fs/f2fs/crypto_key.c | 8 ++--- fs/f2fs/f2fs.h | 6 ++-- fs/f2fs/super.c | 8 ++++- 4 files changed, 65 insertions(+), 47 deletions(-) commit b9da898b05859ac4a0ea4460d798b6bb655790f3 Author: Chao Yu Date: Fri May 15 11:14:34 2015 +0800 f2fs crypto: fix incorrect release for crypto ctx When encryption feature is enable, if we rmmod f2fs module, we will encounter a stack backtrace reported in syslog: "BUG: Bad page state in process rmmod pfn:aaf8a page:f0f4f148 count:0 mapcount:129 mapping:ee2f4104 index:0x80 flags: 0xee2830a4(referenced|lru|slab|private_2|writeback|swapbacked|mlocked) page dumped because: PAGE_FLAGS_CHECK_AT_FREE flag(s) set bad because of flags: flags: 0x2030a0(lru|slab|private_2|writeback|mlocked) Modules linked in: f2fs(O-) fuse bnep rfcomm bluetooth dm_crypt binfmt_misc 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 joydev ppdev mac_hid lp hid_generic i2c_piix4 parport_pc psmouse snd serio_raw parport soundcore ext4 jbd2 mbcache usbhid hid e1000 [last unloaded: f2fs] CPU: 1 PID: 3049 Comm: rmmod Tainted: G B O 4.1.0-rc3+ #10 Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS VirtualBox 12/01/2006 00000000 00000000 c0021eb4 c15b7518 f0f4f148 c0021ed8 c112e0b7 c1779174 c9b75674 000aaf8a 01b13ce1 c17791a4 f0f4f148 ee2830a4 c0021ef8 c112e3c3 00000000 f0f4f148 c0021f34 f0f4f148 ee2830a4 ef9f0000 c0021f20 c112fdf8 Call Trace: [] dump_stack+0x41/0x52 [] bad_page.part.72+0xa7/0x100 [] free_pages_prepare+0x213/0x220 [] free_hot_cold_page+0x28/0x120 [] ? try_to_wake_up+0x2b0/0x2b0 [] __free_pages+0x25/0x30 [] mempool_free_pages+0xd/0x10 [] mempool_free+0x31/0x90 [] f2fs_exit_crypto+0x6f/0xf0 [f2fs] [] exit_f2fs_fs+0x23/0x95f [f2fs] [] SyS_delete_module+0x130/0x180 [] ? vm_munmap+0x46/0x60 [] sysenter_do_call+0x12/0x12" The reason is that: since commit 0827e645fd35 ("f2fs crypto: shrink size of the f2fs_crypto_ctx structure") is merged, some fields in f2fs_crypto_ctx structure are merged into a union as they will never be used simultaneously in write path, read path or on free list. In f2fs_exit_crypto, we traverse each crypto ctx from free list, in this moment, our free_list field in union is valid, but still we will try to release memory space which is pointed by other invalid field in union structure for each ctx. Then the error occurs, let's fix it with this patch. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/crypto.c | 8 -------- 1 file changed, 8 deletions(-) commit 7bf4b5576af816f3f40bf3b99f0257e6c14bd35c Author: Chao Yu Date: Wed May 13 18:20:54 2015 +0800 f2fs crypto: fix to release buffer for fname crypto This patch fixes memory leak issue in error path of f2fs_fname_setup_filename(). Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/crypto_fname.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit ca40b0305209248e5fd05f6ba8a3874656ff0117 Author: Jaegeuk Kim Date: Tue May 12 13:40:20 2015 -0700 f2fs crypto: shrink size of the f2fs_crypto_ctx structure This patch integrates the below patch into f2fs. "ext4 crypto: shrink size of the ext4_crypto_ctx structure Some fields are only used when the crypto_ctx is being used on the read path, some are only used on the write path, and some are only used when the structure is on free list. Optimize memory use by using a union." Signed-off-by: Theodore Ts'o Signed-off-by: Jaegeuk Kim fs/f2fs/crypto.c | 40 ++++++++++++++++++---------------------- fs/f2fs/f2fs_crypto.h | 21 ++++++++++++++------- fs/f2fs/segment.c | 2 +- 3 files changed, 33 insertions(+), 30 deletions(-) commit 640778fbc97b36757bd1f857ba4b599a200517c2 Author: Jaegeuk Kim Date: Tue May 12 13:33:00 2015 -0700 f2fs crypto: get rid of ci_mode from struct f2fs_crypt_info This patch integrates the below patch into f2fs. "ext4 crypto: get rid of ci_mode from struct ext4_crypt_info The ci_mode field was superfluous, and getting rid of it gets rid of an unused hole in the structure." Signed-off-by: Theodore Ts'o Signed-off-by: Jaegeuk Kim fs/f2fs/crypto.c | 11 +++++------ fs/f2fs/crypto_fname.c | 4 ++-- fs/f2fs/crypto_key.c | 12 ++++++------ fs/f2fs/f2fs_crypto.h | 1 - 4 files changed, 13 insertions(+), 15 deletions(-) commit 8bacf6deb02367008cc25244d9c3d23b0f797048 Author: Jaegeuk Kim Date: Tue May 12 13:26:54 2015 -0700 f2fs crypto: use slab caches This patch integrates the below patch into f2fs. "ext4 crypto: use slab caches Use slab caches the ext4_crypto_ctx and ext4_crypt_info structures for slighly better memory efficiency and debuggability." Signed-off-by: Theodore Ts'o Signed-off-by: Jaegeuk Kim fs/f2fs/crypto.c | 58 ++++++++++++++++++++++++++-------------------------- fs/f2fs/crypto_key.c | 6 +++--- fs/f2fs/f2fs.h | 1 + 3 files changed, 33 insertions(+), 32 deletions(-) commit 06e1bc05cad8d06860b52c79d4669483c7e39a4f Author: Jaegeuk Kim Date: Wed May 13 14:35:14 2015 -0700 f2fs: truncate data blocks for orphan inode As Hu reported, F2FS has a space leak problem, when conducting: 1) format a 4GB f2fs partition 2) dd a 3G file, 3) unlink it. So, when doing f2fs_drop_inode(), we need to truncate data blocks before skipping it. We can also drop unused caches assigned to each inode. Reported-by: hujianyang Signed-off-by: Jaegeuk Kim fs/f2fs/super.c | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) commit 912a83b5096eb4a5d8d95124d70585e0e861c564 Author: Dan Carpenter Date: Thu May 14 11:52:28 2015 +0300 f2fs: cleanup a confusing indent The return was not indented far enough so it looked like it was supposed to go with the other if statement. Signed-off-by: Dan Carpenter Signed-off-by: Jaegeuk Kim fs/f2fs/segment.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 7beb428edaacef63d7a7adefa6d0bbb2db91484c Author: Arnd Bergmann Date: Wed May 13 22:49:58 2015 +0200 f2fs: fix building on 32-bit architectures A bug fix to the debug output extended the type of some local variables to 64-bit, which now causes the kernel to fail building because of missing 64-bit division functions: ERROR: "__aeabi_uldivmod" [fs/f2fs/f2fs.ko] undefined! In the kernel, we have to use div_u64 or do_div to do this, in order to annotate that this is an expensive operation. As the function is only called for debug out, we know this is not performance critical, so it is safe to use div_u64. Signed-off-by: Arnd Bergmann Fixes: d1f85bd38db19 ("f2fs: avoid value overflow in showing current status") Signed-off-by: Jaegeuk Kim fs/f2fs/debug.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit e19ef527aa32f057710ec842fe656bffc263b0bb Author: Jaegeuk Kim Date: Mon May 18 11:45:15 2015 -0700 f2fs: avoid buggy functions This patch avoids to use a buggy function for now. It needs to fix them later. Signed-off-by: Jaegeuk Kim fs/f2fs/segment.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit 08b95126c787441e4ef572422a5237dd985147be Author: hujianyang Date: Tue May 12 16:05:57 2015 +0800 f2fs: add compat_ioctl to provide backward compatability introduce compat_ioctl to regular files, but doesn't add this functionality to f2fs_dir_operations. While running a 32-bit busybox, I met an error like this: (A is a directory) chattr: reading flags on A: Inappropriate ioctl for device This patch copies compat_ioctl from f2fs_file_operations and fix this problem. Signed-off-by: hujianyang Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/dir.c | 3 +++ 1 file changed, 3 insertions(+) commit 40a02be1781f726ee015bcf7c8961a71a2a50f05 Author: Jaegeuk Kim Date: Mon May 11 20:03:49 2015 -0700 f2fs: do not issue next dnode discard redundantly We have a discard map, so that we can avoid redundant discard issues. Signed-off-by: Jaegeuk Kim fs/f2fs/segment.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) commit 661b689bbd2e9392c3d9935e791af75ddbc455dc Author: Hariprasad Shenai Date: Mon Jun 1 20:07:41 2015 +0530 cxgb4: remove unused fn to enable/disable db coalescing Remove unused function cxgb4_enable_db_coalescing() and cxgb4_disable_db_coalescing() Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 19 ------------------- drivers/net/ethernet/chelsio/cxgb4/cxgb4_uld.h | 2 -- 2 files changed, 21 deletions(-) commit 534ba6a87d46733b896baa741e8e2f7e722d27c5 Author: Simon Horman Date: Mon Jun 1 13:25:04 2015 +0900 rocker: remove rocker parameter from functions that have rocker_port parameter The rocker (switch) of a rocker_port may be trivially obtained from the latter it seems cleaner not to pass the former to a function when the latter is being passed anyway. rocker_port_rx_proc() is omitted from this change as it is a hot path case. Signed-off-by: Simon Horman Acked-by: Scott Feldman Acked-by: Andy Gospodarek Signed-off-by: David S. Miller drivers/net/ethernet/rocker/rocker.c | 115 ++++++++++++++--------------------- 1 file changed, 45 insertions(+), 70 deletions(-) commit 4cace675d687ebd2d813e90af80ff87ee85202f9 Author: Gabriel Krisman Bertazi Date: Wed May 27 13:51:43 2015 -0300 bnx2x: Alloc 4k fragment for each rx ring buffer element The driver allocates one page for each buffer on the rx ring, which is too much on architectures like ppc64 and can cause unexpected allocation failures when the system is under stress. Now, we keep a memory pool per queue, and if the architecture's PAGE_SIZE is greater than 4k, we fragment pages and assign each 4k segment to a ring element, which reduces the overall memory consumption on such architectures. This helps avoiding errors like the example below: [bnx2x_alloc_rx_sge:435(eth1)]Can't alloc sge [c00000037ffeb900] [d000000075eddeb4] .bnx2x_alloc_rx_sge+0x44/0x200 [bnx2x] [c00000037ffeb9b0] [d000000075ee0b34] .bnx2x_fill_frag_skb+0x1ac/0x460 [bnx2x] [c00000037ffebac0] [d000000075ee11f0] .bnx2x_tpa_stop+0x160/0x2e8 [bnx2x] [c00000037ffebb90] [d000000075ee1560] .bnx2x_rx_int+0x1e8/0xc30 [bnx2x] [c00000037ffebcd0] [d000000075ee2084] .bnx2x_poll+0xdc/0x3d8 [bnx2x] (unreliable) Signed-off-by: Gabriel Krisman Bertazi Acked-by: Yuval Mintz Reviewed-by: Lino Sanfilippo Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnx2x/bnx2x.h | 16 +++++-- drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 57 +++++++++++++++++-------- drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h | 31 ++++++++++++-- 3 files changed, 80 insertions(+), 24 deletions(-) commit c76f238e261b8d088f086c2e8551fa8402d86f42 Author: Russell King Date: Sat Apr 4 21:46:35 2015 +0100 ARM: proc-v7: sanitise and document registers around errata Document that r13 is not a stack in the initialisation function, in case anyone gets other ideas. Document the registers available for the errata workarounds, and specifically which registers contain parts of the MIDR register, as well as which registers must be preserved. Lastly, use the lowest numbered available register (r0) rather than r10 for temporary storage. Signed-off-by: Russell King arch/arm/mm/proc-v7.S | 68 ++++++++++++++++++++++++++++----------------------- 1 file changed, 38 insertions(+), 30 deletions(-) commit 4419496884ed16fdeb122782d41f5ad38f8923cc Author: Russell King Date: Sat Apr 4 21:36:35 2015 +0100 ARM: proc-v7: clean up MIDR access We already have the main ID register available in r9, there's no need to refetch it. Use the saved value. Signed-off-by: Russell King arch/arm/mm/proc-v7.S | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit 17e7bf86690eaad4906d2295f0bd171cc194633b Author: Russell King Date: Sat Apr 4 21:34:33 2015 +0100 ARM: proc-v7: move CPU errata out of line Rather than having a long sprawling __v7_setup function, which is hard to maintain properly, move the CPU errata out of line. While doing this, it was discovered that the Cortex-A15 errata had been incorrectly added: ldr r10, =0x00000c08 @ Cortex-A8 primary part number teq r0, r10 bne 2f /* Cortex-A8 errata */ b 3f 2: ldr r10, =0x00000c09 @ Cortex-A9 primary part number teq r0, r10 bne 3f /* Cortex-A9 errata */ 3: ldr r10, =0x00000c0f @ Cortex-A15 primary part number teq r0, r10 bne 4f /* Cortex-A15 errata */ 4: This results in the Cortex-A15 test always being executed after the Cortex-A8 and Cortex-A9 errata, which is obviously not what is intended. The 'b 3f' labels should have been updated to 'b 4f'. The new structure of: /* Cortex-A8 Errata */ ldr r10, =0x00000c08 @ Cortex-A8 primary part number teq r0, r10 beq __ca8_errata /* Cortex-A9 Errata */ ldr r10, =0x00000c09 @ Cortex-A9 primary part number teq r0, r10 beq __ca9_errata /* Cortex-A15 Errata */ ldr r10, =0x00000c0f @ Cortex-A15 primary part number teq r0, r10 beq __ca15_errata __errata_finish: is much cleaner and easier to see that this kind of thing doesn't happen. Signed-off-by: Russell King arch/arm/mm/proc-v7.S | 143 +++++++++++++++++++++++++++----------------------- 1 file changed, 78 insertions(+), 65 deletions(-) commit b2c3e38a54714e917c9e8675ff5812dca1c0f39d Author: Russell King Date: Sat Apr 4 20:09:46 2015 +0100 ARM: redo TTBR setup code for LPAE Re-engineer the LPAE TTBR setup code. Rather than passing some shifted address in order to fit in a CPU register, pass either a full physical address (in the case of r4, r5 for TTBR0) or a PFN (for TTBR1). This removes the ARCH_PGD_SHIFT hack, and the last dangerous user of cpu_set_ttbr() in the secondary CPU startup code path (which was there to re-set TTBR1 to the appropriate high physical address space on Keystone2.) Tested-by: Murali Karicheri Signed-off-by: Russell King arch/arm/include/asm/memory.h | 16 --------------- arch/arm/include/asm/proc-fns.h | 7 ------- arch/arm/include/asm/smp.h | 2 +- arch/arm/kernel/head-nommu.S | 2 +- arch/arm/kernel/head.S | 42 +++++++++++++++++++++++++++++----------- arch/arm/kernel/smp.c | 10 ++++++---- arch/arm/mach-keystone/platsmp.c | 13 ------------- arch/arm/mm/proc-v7-2level.S | 6 +++--- arch/arm/mm/proc-v7-3level.S | 14 +++++--------- arch/arm/mm/proc-v7.S | 26 ++++++++++++------------- 10 files changed, 60 insertions(+), 78 deletions(-) commit 1221ed10f2a56ecdd8ff75f436f52aca5ba0f1d3 Author: Russell King Date: Sat Apr 4 17:25:20 2015 +0100 ARM: cleanup early_paging_init() calling Eliminate the needless nommu version of this function, and get rid of the proc_info_list structure argument - we no longer need this in order to fix up the page table entries. Acked-by: Santosh Shilimkar Tested-by: Murali Karicheri Signed-off-by: Russell King arch/arm/kernel/setup.c | 7 ++++--- arch/arm/mm/mmu.c | 6 ++---- arch/arm/mm/nommu.c | 9 --------- 3 files changed, 6 insertions(+), 16 deletions(-) commit d8dc7fbd53eeb329a1dda5a19df7058b9c1c413e Author: Russell King Date: Sat Apr 4 16:58:38 2015 +0100 ARM: re-implement physical address space switching Re-implement the physical address space switching to be architecturally compliant. This involves flushing the caches, disabling the MMU, and only then updating the page tables. Once that is complete, the system can be brought back up again. Since we disable the MMU, we need to do the update in assembly code. Luckily, the entries which need updating are fairly trivial, and are all setup by the early assembly code. We can merely adjust each entry by the delta required. Not only does this fix the code to be architecturally compliant, but it fixes a couple of bugs too: 1. The original code would only ever update the first L2 entry covering a fraction of the kernel; the remainder were left untouched. 2. The L2 entries covering the DTB blob were likewise untouched. This solution fixes up all entries. Tested-by: Murali Karicheri Signed-off-by: Russell King arch/arm/mm/Kconfig | 4 ++ arch/arm/mm/Makefile | 1 + arch/arm/mm/mmu.c | 124 +++++++++++++++------------------------------ arch/arm/mm/pv-fixup-asm.S | 88 ++++++++++++++++++++++++++++++++ 4 files changed, 133 insertions(+), 84 deletions(-) commit c0b759d87eab301af0380f5459057656178e78cf Author: Russell King Date: Sat Apr 4 10:01:10 2015 +0100 ARM: keystone2: rename init_meminfo to pv_fixup The init_meminfo() method is not about initialising meminfo - it's about fixing up the physical to virtual translation so that we use a different physical address space, possibly above the 4GB physical address space. Therefore, the name "init_meminfo()" is confusing. Rename it to pv_fixup() instead. Acked-by: Santosh Shilimkar Tested-by: Murali Karicheri Signed-off-by: Russell King arch/arm/include/asm/mach/arch.h | 2 +- arch/arm/mach-keystone/keystone.c | 4 ++-- arch/arm/mm/mmu.c | 8 ++++---- 3 files changed, 7 insertions(+), 7 deletions(-) commit 39b74fe82f734ac0bec726733805bb7d46c95933 Author: Russell King Date: Sat Apr 4 10:25:28 2015 +0100 ARM: keystone2: move address space switch printk into generic code There is no point platform code doing this, let's move it into the generic code so it doesn't get duplicated. Acked-by: Santosh Shilimkar Tested-by: Murali Karicheri Signed-off-by: Russell King arch/arm/mach-keystone/keystone.c | 3 --- arch/arm/mm/mmu.c | 3 +++ 2 files changed, 3 insertions(+), 3 deletions(-) commit c8ca2b4b29282605698968d15667939b23e208e2 Author: Russell King Date: Sat Apr 4 09:53:38 2015 +0100 ARM: keystone2: move update of the phys-to-virt constants into generic code Make the init_meminfo function return the offset to be applied to the phys-to-virt translation constants. This allows us to move the update into generic code, along with the requirements for this update. This avoids platforms having to know the details of the phys-to-virt translation support. Acked-by: Santosh Shilimkar Tested-by: Murali Karicheri Signed-off-by: Russell King arch/arm/include/asm/mach/arch.h | 2 +- arch/arm/mach-keystone/keystone.c | 27 ++++++++++----------------- arch/arm/mm/mmu.c | 26 ++++++++++++++++++++++---- 3 files changed, 33 insertions(+), 22 deletions(-) commit 30b5f4d6128e12c17a0e54cac685a048c3d8d862 Author: Russell King Date: Sat Apr 4 11:30:04 2015 +0100 ARM: keystone2: move platform notifier initialisation into platform init We ideally want the init_meminfo function to do nothing but return the delta to be applied to PHYS_OFFSET - it should do nothing else. As we can detect in platform init code whether we are running in the high physical address space, move the platform notifier initialisation entirely into the platform init code. Acked-by: Santosh Shilimkar Tested-by: Murali Karicheri Signed-off-by: Russell King arch/arm/mach-keystone/keystone.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) commit ccea74457bbdafe33dce8bffcb5cb183aeb5f2bb Author: Neil McKee Date: Tue May 26 20:59:43 2015 -0700 openvswitch: include datapath actions with sampled-packet upcall to userspace If new optional attribute OVS_USERSPACE_ATTR_ACTIONS is added to an OVS_ACTION_ATTR_USERSPACE action, then include the datapath actions in the upcall. This Directly associates the sampled packet with the path it takes through the virtual switch. Path information currently includes mangling, encapsulation and decapsulation actions for tunneling protocols GRE, VXLAN, Geneve, MPLS and QinQ, but this extension requires no further changes to accommodate datapath actions that may be added in the future. Adding path information enhances visibility into complex virtual networks. Signed-off-by: Neil McKee Signed-off-by: David S. Miller include/uapi/linux/openvswitch.h | 4 ++++ net/openvswitch/actions.c | 23 +++++++++++++++-------- net/openvswitch/datapath.c | 18 ++++++++++++++++-- net/openvswitch/datapath.h | 2 ++ 4 files changed, 37 insertions(+), 10 deletions(-) commit e3abe2556b2a689b28926cd1581f0b97e9d2afa4 Author: Nicholas Krause Date: Thu May 28 11:00:05 2015 -0400 ARM: OMAP2+: Remove unnessary return statement from the void function, omap2_show_dma_caps This removes the no longer required return statement at the end of the void function, omap2_show_dma_cap due to no need for a return statement due to this function always running successfully. Signed-off-by: Nicholas Krause Signed-off-by: Tony Lindgren arch/arm/mach-omap2/dma.c | 1 - 1 file changed, 1 deletion(-) commit 28a7eedd1109c9277390f44aa11de76b673996cd Author: Tony Lindgren Date: Mon Jun 1 15:00:44 2015 -0700 memory: omap-gpmc: Fix parsing of devices We currently artificially limit the parsing of GPMC connected devices based on the device name. Let's stop doing that, it's confusing as adding devices to .dts files with using normal names like fpga and usb will currently cause them to not probe. Cc: Roger Quadros Reported-by: Brian Hutchinson Signed-off-by: Tony Lindgren drivers/memory/omap-gpmc.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) commit bdef7de4b8d9be4cf7bf5aea977f827310ab3ff0 Author: David S. Miller Date: Mon Jun 1 14:56:09 2015 -0700 net: Add priority to packet_offload objects. When we scan a packet for GRO processing, we want to see the most common packet types in the front of the offload_base list. So add a priority field so we can handle this properly. IPv4/IPv6 get the highest priority with the implicit zero priority field. Next comes ethernet with a priority of 10, and then we have the MPLS types with a priority of 15. Suggested-by: Eric Dumazet Suggested-by: Toshiaki Makita Signed-off-by: David S. Miller include/linux/netdevice.h | 1 + net/core/dev.c | 8 ++++++-- net/ethernet/eth.c | 1 + net/mpls/mpls_gso.c | 2 ++ 4 files changed, 10 insertions(+), 2 deletions(-) commit 42483228d4c019ffc86b8dbea7dfbc3f9566fe7e Author: Keith Busch Date: Mon Jun 1 09:29:54 2015 -0600 NVMe: Remove hctx reliance for multi-namespace The driver needs to track shared tags to support multiple namespaces that may be dynamically allocated or deleted. Relying on the first request_queue's hctx's is not appropriate as we cannot clear outstanding tags for all namespaces using this handle, nor can the driver easily track all request_queue's hctx as namespaces are attached/detached. Instead, this patch uses the nvme_dev's tagset to get the shared tag resources instead of through a request_queue hctx. Signed-off-by: Keith Busch Signed-off-by: Jens Axboe drivers/block/nvme-core.c | 52 +++++++++++++++++------------------------------ 1 file changed, 19 insertions(+), 33 deletions(-) commit 843e8ddb250b5e8ff157b4096277c0c54102905c Merge: 75619bf f26cdc8 Author: Jens Axboe Date: Mon Jun 1 14:36:02 2015 -0600 Merge branch 'for-4.2/core' into for-4.2/drivers commit f26cdc8536ad50fb802a0445f836b4f94ca09ae7 Author: Keith Busch Date: Mon Jun 1 09:29:53 2015 -0600 blk-mq: Shared tag enhancements Storage controllers may expose multiple block devices that share hardware resources managed by blk-mq. This patch enhances the shared tags so a low-level driver can access the shared resources not tied to the unshared h/w contexts. This way the LLD can dynamically add and delete disks and request queues without having to track all the request_queue hctx's to iterate outstanding tags. Signed-off-by: Keith Busch Signed-off-by: Jens Axboe block/blk-mq-tag.c | 38 ++++++++++++++++++++++++++++++++++++++ block/blk-mq-tag.h | 1 + block/blk-mq.c | 12 ++++++++++-- include/linux/blk-mq.h | 4 ++++ 4 files changed, 53 insertions(+), 2 deletions(-) commit 4fa9dabcffc8e16601307d3d56b58c68d9716ba4 Author: Dmitry Tunin Date: Sun Jan 18 15:44:40 2015 +0300 ideapad_laptop: Lenovo G50-30 fix rfkill reports wireless blocked Lenovo G30-50 does not have a hardware wireless switch and wireless is always blocked. BugLink: https://bugs.launchpad.net/bugs/1397021 Signed-off-by: Dmitry Tunin Cc: stable@vger.kernel.org Signed-off-by: Philippe Coval [dvhart@linux.intel.com: Reordered dmi id per Phillippe's later version] Signed-off-by: Darren Hart drivers/platform/x86/ideapad-laptop.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 55a8d02bbb25edf9589b2f11afec410d053da497 Author: Nan Jia Date: Sun May 31 19:53:28 2015 +1000 jfs: removed a prohibited space after opening parenthesis Fixed a coding style issue. Signed-off-by: Nan Jia Signed-off-by: Dave Kleikamp fs/jfs/file.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7667f716e502f2b3e42085738b205ddc9abcff25 Author: Geert Uytterhoeven Date: Mon Jun 1 12:44:15 2015 +0200 ASoC: rsnd: Document r8a7778-specific binding Add the missing r8a7778-specific compatible value, which is already in use since v4.1-rc1. Signed-off-by: Geert Uytterhoeven Signed-off-by: Mark Brown Documentation/devicetree/bindings/sound/renesas,rsnd.txt | 1 + 1 file changed, 1 insertion(+) commit 7b38951b4e1315d3427b78f2095ced8ed9dbdfda Merge: 697d310 cb2e1a2 Author: Arnd Bergmann Date: Mon Jun 1 18:09:40 2015 +0200 Merge tag 'imx-cleanup-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into next/cleanup Merge "The i.MX cleanup for 4.2" from Shawn Guo: - Remove eukrea_mbimxsd35 non-DT board files - Remove .owner field from gpc platform driver * tag 'imx-cleanup-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: ARM: imx: gpc: Remove .owner field ARM: imx: Remove eukrea_mbimxsd35 non-dt support commit c413d7bab01e88e223efee80b858020164e5eff6 Merge: 3139c90 f218e14 Author: Arnd Bergmann Date: Mon Jun 1 18:08:23 2015 +0200 Merge tag 'imx-defconfig-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into next/defconfig Merge "The i.MX defconfig updates for 4.2" from Shawn Guo: - Enable i.MX7D and LS1021A SoC support - Enable support for WL1271 WIFI/BT, SX8654 I2C touchscreen and PCF8523 RTC, which can be found on Armadeus Systems APF6 and Cubox-i boards. * tag 'imx-defconfig-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: ARM: imx_v6_v7_defconfig: updates for Armadeus Systems APF6 boards ARM: config: imx_v6_v7_defconfig add imx7d support ARM: imx_v6_v7_defconfig: Select LS1021A ARM: imx_v6_v7_defconfig: Enable RTC PCF8523 support commit e897ee70dcf9ee50d801a495f4d66a404d37376e Merge: 8102658 724814b Author: Arnd Bergmann Date: Mon Jun 1 18:02:44 2015 +0200 Merge tag 'dt-for-armsoc' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson into next/dt Merge "Device Tree changes for Ux500 and ARM SOC" from Linus Walleij: - Document Snoop Control Unit (SCU) bindings - Document Ux500 board bindings - Define the backup RAM in the DBx500 device tree * tag 'dt-for-armsoc' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson: ARM: ux500: define the backupram in the device tree ARM: ux500: add board documentation ARM: scu: document Snoop Control Unit DT bindings commit 810265812aca72a034111c3ada73cc1caa0d6990 Merge: 63cb275 e881ad1 Author: Arnd Bergmann Date: Mon Jun 1 17:58:53 2015 +0200 Merge tag 'v4.1-next-arm64' of https://github.com/mbgg/linux-mediatek into next/dt Merge "ARM: mediatek: arm64 updates for v4.2" from Matthias Brugger: - dts: mt8173: fix style convention for pinctrl node - dts: mt8173: fix indentation for some nodes * tag 'v4.1-next-arm64' of https://github.com/mbgg/linux-mediatek: arm64: dts: mt8173: fix some indentation arm64: dts: mt8173: Fixup pinctrl nodes commit 4af34b572a85c44c55491a10693535a79627c478 Author: Maxime Ripard Date: Mon Jun 1 11:04:26 2015 +0200 drivers: soc: sunxi: Introduce SoC driver to map SRAMs The Allwinner SoCs have a handful of SRAM that can be either mapped to be accessible by devices or the CPU. That mapping is controlled by an SRAM controller, and that mapping might not be set by the bootloader, for example if the device wasn't used at all, or if we're using solutions like the U-Boot's Falcon Boot. We could also imagine changing this at runtime for example to change the mapping of these SRAMs to use them for suspend/resume or runtime memory rate change, if that ever happens. These use cases require some API in the kernel to control that mapping, exported through a drivers/soc driver. This driver also implement a debugfs file that shows the SRAM found in the system, the current mapping and the SRAM that have been claimed by some drivers in the kernel. Signed-off-by: Maxime Ripard Acked-by: Arnd Bergmann Acked-by: Hans de Goede Tested-by: Hans de Goede Signed-off-by: Arnd Bergmann .../devicetree/bindings/soc/sunxi/sram.txt | 72 ++++++ drivers/soc/Kconfig | 1 + drivers/soc/Makefile | 1 + drivers/soc/sunxi/Kconfig | 10 + drivers/soc/sunxi/Makefile | 1 + drivers/soc/sunxi/sunxi_sram.c | 284 +++++++++++++++++++++ include/linux/soc/sunxi/sunxi_sram.h | 19 ++ 7 files changed, 388 insertions(+) commit ed6e75c7dc5627c7251002936577052ae73ac2db Author: Dan Carpenter Date: Wed May 27 11:24:25 2015 +0300 iio: light: signedness bug in stk3310_write_raw() "index" needs to be signed for the error handling to work. Fixes: be9e6229d676 ('iio: light: Add support for Sensortek STK3310') Signed-off-by: Dan Carpenter Signed-off-by: Jonathan Cameron drivers/iio/light/stk3310.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2526318638589ec26804f935cf38a7fa1d43cdeb Author: Maxime Coquelin Date: Fri May 22 23:50:52 2015 +0200 ARM: Kconfig: Select clocksource in STM32 entry STM32 clocksource driver needs to be selected if ARCH_STM32. Signed-off-by: Maxime Coquelin Signed-off-by: Arnd Bergmann arch/arm/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 5517547bf44731621338c1a4047196a49c790719 Author: Dan Carpenter Date: Wed May 27 11:20:52 2015 +0300 iio: magnetometer: correct a harmless off by one check The line before limits i to 0-3 so the existing code works fine but the check is still off by one and >= is intended instead of >. Signed-off-by: Dan Carpenter Reviewed-by: Daniel Baluta Signed-off-by: Jonathan Cameron drivers/iio/magnetometer/mmc35240.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c9531b4f1535f88fd82e45d1ffbfa61dbee26fb6 Merge: 4fd8a5a b35d2e5 Author: Arnd Bergmann Date: Mon Jun 1 17:54:31 2015 +0200 Merge tag 'arm-soc/for-4.2/soc-part2' of http://github.com/broadcom/stblinux into next/soc Merge "changes for Broadcom SoCs": - Dan fixes an error path in the BCM63xx SMP code - Ray adds the relevant Kconfig selects to enable the Broadcom NAND driver on Cygnus - Kevin provides a change to the Broadcom GISB arbiter driver to make it work with MIPS-based big-endian STB SoCs (this was a long-standing change that had dependencies on code in drivers/of/*) - Gregory enables the use of GPIOLIB for brcmstb SoCs and bumps the number of GPIOs for these platforms * tag 'arm-soc/for-4.2/soc-part2' of http://github.com/broadcom/stblinux: ARM: brcmstb: Add default gpio number ARM: brcmstb: Select ARCH_WANT_OPTIONAL_GPIOLIB bus: brcmstb_gisb: Honor the "big-endian" and "native-endian" DT properties ARM: BCM: Enable NAND support for iProc SoCs ARM: BCM63xx: fix an error path in bcm63xx_pmb_power_on_cpu() commit 4a6c2aa19d5b6dcd6078d1e0db2a88407b926ded Author: Lars-Peter Clausen Date: Mon Jun 1 10:11:06 2015 +0200 ASoC: wm_hubs: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm with snd_soc_codec_get_dapm(). Signed-off-by: Lars-Peter Clausen Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm_hubs.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 718e23fde529cf7f4f945606217e49c5f2e31537 Author: Lars-Peter Clausen Date: Mon Jun 1 10:11:05 2015 +0200 ASoC: wm9090: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level() and replace all other manual access to codec->dapm with snd_soc_codec_get_dapm(). Signed-off-by: Lars-Peter Clausen Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm9090.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1571f6ecfdb4890a2ba13a6c920694d589b015bb Author: Lars-Peter Clausen Date: Mon Jun 1 10:11:04 2015 +0200 ASoC: wm9081: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm9081.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8383dfd8893a8d4413549d03c55f3c337d6b8f1d Author: Lars-Peter Clausen Date: Mon Jun 1 10:11:03 2015 +0200 ASoC: wm8997: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm with snd_soc_codec_get_dapm(). Signed-off-by: Lars-Peter Clausen Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8997.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 6a141e462ef878fd395e838d8bfc2624104dc66c Author: Lars-Peter Clausen Date: Mon Jun 1 10:11:02 2015 +0200 ASoC: wm8996: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level() and replace all other manual access to codec->dapm with snd_soc_codec_get_dapm(). Signed-off-by: Lars-Peter Clausen Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8996.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) commit a01ddd388d4789af6124889d11cc27f6263a9af1 Author: Lars-Peter Clausen Date: Mon Jun 1 10:11:01 2015 +0200 ASoC: wm8995: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level() and replace all other manual access to codec->dapm with snd_soc_codec_get_dapm(). Signed-off-by: Lars-Peter Clausen Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8995.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 8e09bac78a48f738f3a180fe213198ab225c807e Author: Lars-Peter Clausen Date: Mon Jun 1 10:11:00 2015 +0200 ASoC: wm8994: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level() and replace all other manual access to codec->dapm with snd_soc_codec_get_dapm(). Signed-off-by: Lars-Peter Clausen Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8994.c | 58 +++++++++++++++++++++++------------------------ 1 file changed, 29 insertions(+), 29 deletions(-) commit f8ae3cf81fb866a0d91e3319f53d6ed0a599616e Author: Lars-Peter Clausen Date: Mon Jun 1 10:10:59 2015 +0200 ASoC: wm8993: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level() and replace all other manual access to codec->dapm with snd_soc_codec_get_dapm(). Signed-off-by: Lars-Peter Clausen Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8993.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit bfdd20a4979a5815e4175c896dd7f0ad63bc78db Author: Lars-Peter Clausen Date: Mon Jun 1 10:10:58 2015 +0200 ASoC: wm8991: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8991.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 015ff301935425e1f00194fd3af8fc356cc78c14 Author: Lars-Peter Clausen Date: Mon Jun 1 10:10:57 2015 +0200 ASoC: wm8990: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8990.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 491c04eb86c768f61678fe7169ff13ce57dadef9 Author: Lars-Peter Clausen Date: Mon Jun 1 10:10:56 2015 +0200 ASoC: wm8988: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8988.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4b67780291bef6b7efc4046630f0ab4b8cf06584 Author: Lars-Peter Clausen Date: Mon Jun 1 10:10:55 2015 +0200 ASoC: wm8985: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8985.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 71ffce008c0e78e66c357894725c7934fa81d0eb Author: Lars-Peter Clausen Date: Mon Jun 1 10:10:54 2015 +0200 ASoC: wm8983: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8983.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 547f3f47f541faffa6b2dcec363730999e97445d Author: Lars-Peter Clausen Date: Mon Jun 1 10:10:53 2015 +0200 ASoC: wm8978: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8978.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5c6415d630a6c6b6b1e70aaaf4dba1062bcf8b7c Author: Lars-Peter Clausen Date: Mon Jun 1 10:10:52 2015 +0200 ASoC: wm8974: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8974.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 19773614205be8a60efa50b180758307ad6f16bf Author: Lars-Peter Clausen Date: Mon Jun 1 10:10:51 2015 +0200 ASoC: wm8971: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8971.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 57ef7fa7b2c499ad1aece50b368679fe90fe348f Author: Lars-Peter Clausen Date: Mon Jun 1 10:10:50 2015 +0200 ASoC: wm8962: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level() and replace all other manual access to codec->dapm with snd_soc_codec_get_dapm(). Also drop the unnecessary comparison in the set_bias_level() callback that checks if the device is already at the target level. The core already takes care of this and will not call the callback if the device is already at the target level. Signed-off-by: Lars-Peter Clausen Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8962.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) commit 049e17d7b9c82f2cc1171f7b2c32f0fe9e9fc6d1 Author: Lars-Peter Clausen Date: Mon Jun 1 10:10:49 2015 +0200 ASoC: wm8961: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8961.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 93f32f534e0fcbb5cad0734e599e960454caa303 Author: Lars-Peter Clausen Date: Mon Jun 1 10:10:48 2015 +0200 ASoC: wm8960: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level() and replace all other manual access to codec->dapm with snd_soc_codec_get_dapm(). Signed-off-by: Lars-Peter Clausen Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8960.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit afcd11df6d5acb03339ed96c21e219c510e0de46 Author: Lars-Peter Clausen Date: Mon Jun 1 10:10:47 2015 +0200 ASoC: wm8955: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8955.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2145554fea759a303d31f64e5befc50996f42dd0 Author: Lars-Peter Clausen Date: Mon Jun 1 10:10:46 2015 +0200 ASoC: wm8940: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8940.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f44a9842931a952829b114f846d603e93688a8d3 Author: Lars-Peter Clausen Date: Mon Jun 1 10:10:45 2015 +0200 ASoC: wm8904: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level() and replace all other manual access to codec->dapm with snd_soc_codec_get_dapm(). Signed-off-by: Lars-Peter Clausen Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8904.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 060ea2a0bda408c102421de3d2c645bacb772143 Author: Lars-Peter Clausen Date: Mon Jun 1 10:10:44 2015 +0200 ASoC: wm8903: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8903.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit eee53c35bb0c30340489272412ac7e81ede7da59 Author: Lars-Peter Clausen Date: Mon Jun 1 10:10:43 2015 +0200 ASoC: wm8900: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8900.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e7556037687be97396f1c610dd8cfb78d94fbc92 Author: Lars-Peter Clausen Date: Mon Jun 1 10:10:42 2015 +0200 ASoC: wm8804: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm with snd_soc_codec_get_dapm(). Signed-off-by: Lars-Peter Clausen Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8804.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 265b8ac8b0ac8dd52b81f97615903530de1c750a Author: Lars-Peter Clausen Date: Mon Jun 1 10:10:41 2015 +0200 ASoC: wm8776: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8776.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ef075ca657e1fea66efbce32ff6947f82b3dc9e2 Author: Lars-Peter Clausen Date: Mon Jun 1 10:10:40 2015 +0200 ASoC: wm8770: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8770.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6093e926cc17c6b5da486a85e9f91bd1e70b45fa Author: Lars-Peter Clausen Date: Mon Jun 1 10:10:39 2015 +0200 ASoC: wm8753: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8753.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b31c9ef9f8627d7591bd2248e21cdf4347ad5e72 Author: Lars-Peter Clausen Date: Mon Jun 1 10:10:38 2015 +0200 ASoC: wm8750: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8750.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 11fb3914bd7714971f4ec498ae325d327c6b8f47 Author: Lars-Peter Clausen Date: Mon Jun 1 10:10:37 2015 +0200 ASoC: wm8737: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8737.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fc31fda63b54c7b9574f983a95124abb8474ce0a Author: Lars-Peter Clausen Date: Mon Jun 1 10:10:36 2015 +0200 ASoC: wm8731: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level() and replace all other manual access to codec->dapm with snd_soc_codec_get_dapm(). Signed-off-by: Lars-Peter Clausen Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8731.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 5e80bb92f268078a946bccbb97983f040a128d3e Author: Lars-Peter Clausen Date: Mon Jun 1 10:10:35 2015 +0200 ASoC: wm8728: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8728.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f235d94fcadf185995d7ca57b7c2ae45879e2fe8 Author: Lars-Peter Clausen Date: Mon Jun 1 10:10:34 2015 +0200 ASoC: wm8711: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8711.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e8f48bc8cb7e714c565784b0039fdb88a1f3de76 Author: Lars-Peter Clausen Date: Mon Jun 1 10:10:33 2015 +0200 ASoC: wm8580: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8580.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7db634d918ca72307c4e7445420bc41b94c72847 Author: Lars-Peter Clausen Date: Mon Jun 1 10:10:32 2015 +0200 ASoC: wm8523: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8523.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 38337a9df28464eac07e7df842ffafeb23a9c528 Author: Lars-Peter Clausen Date: Mon Jun 1 10:10:31 2015 +0200 ASoC: wm8510: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8510.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cf25c66c5b699abcd7a3a5862d42df85b346d148 Author: Lars-Peter Clausen Date: Mon Jun 1 10:10:30 2015 +0200 ASoC: wm8400: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8400.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9b142894bec491e16d011733d4115855b5e47dd0 Author: Lars-Peter Clausen Date: Mon Jun 1 10:10:29 2015 +0200 ASoC: wm8350: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8350.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 72945b3d3c78ab2babeb8ed8f00c18441f417bb9 Author: Lars-Peter Clausen Date: Mon Jun 1 10:10:28 2015 +0200 ASoC: wm5110: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm with snd_soc_codec_get_dapm(). While we are at it also remove the duplicated initialization of priv->core.arizona->dapm. Signed-off-by: Lars-Peter Clausen Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm5110.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 0740135a53f04cce7894e1751b34fe660d948cd1 Author: Lars-Peter Clausen Date: Mon Jun 1 10:10:27 2015 +0200 ASoC: wm5102: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm with snd_soc_codec_get_dapm(). Signed-off-by: Lars-Peter Clausen Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm5102.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 002d1c4ed8ca319d638247250ebf3261d92f4e16 Author: Lars-Peter Clausen Date: Mon Jun 1 10:10:26 2015 +0200 ASoC: wm5100: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm with snd_soc_codec_get_dapm(). Signed-off-by: Lars-Peter Clausen Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm5100.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit e566b53251fb394501830397e82b5eb46841f36a Author: Lars-Peter Clausen Date: Mon Jun 1 10:10:25 2015 +0200 ASoC: wm0010: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm0010.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1ac52145053bdddc0c831e11e8b220a958c10741 Author: Lars-Peter Clausen Date: Mon Jun 1 10:10:24 2015 +0200 ASoC: arizona: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm with snd_soc_codec_get_dapm(). Signed-off-by: Lars-Peter Clausen Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/arizona.c | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) commit 02b8c59adedff17a3003a93f3cc395eb6e0d6e8c Author: Lars-Peter Clausen Date: Mon Jun 1 10:10:23 2015 +0200 ASoC: cs42xx8: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm with snd_soc_codec_get_dapm(). Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/cs42xx8.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 353c10a91964a2dfde77224a284abf55d0856da1 Author: Lars-Peter Clausen Date: Mon Jun 1 10:10:22 2015 +0200 ASoC: cs42l73: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Acked-by: Brian Austin Signed-off-by: Mark Brown sound/soc/codecs/cs42l73.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 46a35b0d4d26090aedc0e72ac701d0f5304e29a0 Author: Lars-Peter Clausen Date: Mon Jun 1 10:10:21 2015 +0200 ASoC: cs42l56: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level() and replace all other manual access to codec->dapm with snd_soc_codec_get_dapm(). Signed-off-by: Lars-Peter Clausen Acked-by: Brian Austin Signed-off-by: Mark Brown sound/soc/codecs/cs42l56.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 43a0350f2122f24c3af21ff65574eba84fad13e4 Author: Lars-Peter Clausen Date: Mon Jun 1 10:10:20 2015 +0200 ASoC: cs42l52: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level() and replace all other manual access to codec->dapm with snd_soc_codec_get_dapm(). Signed-off-by: Lars-Peter Clausen Acked-by: Brian Austin Signed-off-by: Mark Brown sound/soc/codecs/cs42l52.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 63cb275e6e7a023f4e25d227a875f06563c9d7e9 Merge: e59bff9 9d7ef1b Author: Arnd Bergmann Date: Mon Jun 1 17:41:46 2015 +0200 Merge tag 'arm-soc/for-4.2/dts-fixes' of http://github.com/broadcom/stblinux into next/dt Merge "This pull request contains a single change" from Florian Fainelli: - fix the NAND controller node on bcm63138, the original change was a mis-merge that did not properly parent it to the "ubus" node * tag 'arm-soc/for-4.2/dts-fixes' of http://github.com/broadcom/stblinux: ARM: dts: BCM63xx: re-parent NAND controller node commit e59bff9af4f8e6093909df605f31400eb8bf6c20 Merge: ad01f31 2d29592 Author: Arnd Bergmann Date: Mon Jun 1 17:38:07 2015 +0200 Merge tag 'mvebu-dt-4.2-2' of git://git.infradead.org/linux-mvebu into next/dt Merge "mvebu dt changes for v4.2 (part #2)" from Gregory CLEMENT: Add 2 new set boards: - Armada 385 based Linksys boards - DLink DNS-327L Update the spi-nor flash compatible strings Use improved armada spi device tree compatible name for each mvebu SoC * tag 'mvebu-dt-4.2-2' of git://git.infradead.org/linux-mvebu: ARM: mvebu: use improved armada spi device tree compatible name for each SoC ARM: mvebu: dts: Add dts file for DLink DNS-327L ARM: mvebu: add "jedec,spi-nor" flash compatible binding ARM: kirkwood: add "jedec,spi-nor" flash compatible binding ARM: mvebu: add support for the new Armada 385 based Linksys boards commit 72275b4c08e7536ed5fe21c8899d99fc9f1fce7b Merge: 9ff3d17 bfa1ce5 Author: Arnd Bergmann Date: Mon Jun 1 17:34:25 2015 +0200 Merge tag 'mvebu-drivers-4.2' of git://git.infradead.org/linux-mvebu into next/drivers Merge "mvebu drivers change for 4.2" from Gregory CLEMENT: mvebu-mbus: add mv_mbus_dram_info_nooverlap() needed for the new Marvell crypto driver * tag 'mvebu-drivers-4.2' of git://git.infradead.org/linux-mvebu: bus: mvebu-mbus: add mv_mbus_dram_info_nooverlap() Based on the earlier bug fixes branch, which contains six other patches already merged into 4.1. commit ffb8e44bd7617ede81d526d33d13d96a2c6a6e20 Author: Geert Uytterhoeven Date: Tue May 26 13:34:02 2015 +0200 gpio: pcf857x: Check for irq_set_irq_wake() failures If an interrupt controller doesn't support wake-up configuration, irq_set_irq_wake() returns an error code. Then any subsequent call trying to deconfigure wake-up will cause an imbalance, and a warning will be printed: WARNING: CPU: 1 PID: 1341 at kernel/irq/manage.c:540 irq_set_irq_wake+0x Unbalanced IRQ 26 wake disable To fix this, refrain from any further parent interrupt controller (de)configuration if irq_set_irq_wake() failed. Signed-off-by: Geert Uytterhoeven Signed-off-by: Linus Walleij drivers/gpio/gpio-pcf857x.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) commit 08b085a07efe12568d86dff064e6f089e2971744 Author: Martin Blumenstingl Date: Mon May 25 22:39:50 2015 +0200 gpio-stp-xway: Fix enabling the highest bit of the PHY LEDs 0x3 only masks two bits, but three bits have to be allowed. This fixes GPHY0 LED2 (which is the highest bit of phy2) on my board. Signed-off-by: Martin Blumenstingl Acked-by: John Crispin Signed-off-by: Linus Walleij drivers/gpio/gpio-stp-xway.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b6ac1280b6969607c5a01e316cc4ab693490c333 Author: Joshua Scott Date: Fri May 22 12:35:12 2015 +1200 gpio: Prevent an integer overflow in the pca953x driver Interrupts were missed if an 8-bit integer overflow occurred. This was observed when bank0,pin7 and bank1,pin7 changed simultaniously. As the 8-bit totals were only checked against zero, replace them with booleans. Name the booleans so that their purpose is clear. Signed-off-by: Joshua Scott Reviewed-by: Alexandre Courbot Signed-off-by: Linus Walleij drivers/gpio/gpio-pca953x.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) commit 121dcb760426ca67ee90a8b2db6a75eee010f8e3 Author: Grygorii Strashko Date: Fri May 22 17:35:52 2015 +0300 gpio: omap: rework omap_gpio_irq_startup to handle current pin state properly The omap_gpio_irq_startup() can be called at time when: - corresponding GPIO has been requested already and in this case it has to be configured as input already. If not - return with -EINVAL and do not try to re-configure it as it could be unsafe. - corresponding GPIO is free: reconfigure GPIO as input. In addition, call omap_enable_gpio_module directly as all needed checks are already present inside it. Signed-off-by: Grygorii Strashko Tested-by: Tony Lindgren Signed-off-by: Linus Walleij drivers/gpio/gpio-omap.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) commit c3518172129a60a1f3071e61a8a4ffc50c7b2a68 Author: Grygorii Strashko Date: Fri May 22 17:35:51 2015 +0300 gpio: omap: rework omap_gpio_request to touch only gpio specific registers The GPIO Chip and GPIO IRQ Chip functionality are essentially orthogonal, so GPIO Chip implementation shouldn't touch GPIO IRQ specific registers and vise versa. Hence, rework omap_gpio_request: - don't reset GPIO IRQ triggering type to IRQ_TYPE_NONE, because GPIO irqchip should be responsible for that; - call directly omap_enable_gpio_module as all needed checks are already present inside it. Signed-off-by: Grygorii Strashko Tested-by: Tony Lindgren Signed-off-by: Linus Walleij drivers/gpio/gpio-omap.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) commit 6e96c1b5e54889cd11ce29723a5c38ba284c1d91 Author: Grygorii Strashko Date: Fri May 22 17:35:50 2015 +0300 gpio: omap: rework omap_x_irq_shutdown to touch only irqs specific registers The GPIO Chip and GPIO IRQ Chip functionality are essentially orthogonal, so GPIO IRQ Chip implementation shouldn't touch GPIO specific registers and vise versa. Hence, rework omap_gpio_irq_shutdown and try to touch only irqs specific registers: - don't configure GPIO as input (it, actually, should be already configured as input). - don't clear debounce configuration if GPIO is still used as GPIO. We need to take in to account here commit c9c55d921115 ("gpio/omap: fix off-mode bug: clear debounce settings on free/reset"). Also remove omap_reset_gpio() function as it is not used any more. Signed-off-by: Grygorii Strashko Tested-by: Tony Lindgren Signed-off-by: Linus Walleij drivers/gpio/gpio-omap.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) commit 1562e4618ded89b07d145d6985f469fe8be04830 Author: Grygorii Strashko Date: Fri May 22 17:35:49 2015 +0300 gpio: omap: fix error handling in omap_gpio_irq_type The GPIO bank will be kept powered in case if input parameters are invalid or error occurred in omap_gpio_irq_type. Hence, fix it by ensuring that GPIO bank will be unpowered in case of errors and add additional check of value returned from omap_set_gpio_triggering(). Signed-off-by: Grygorii Strashko Tested-by: Tony Lindgren Signed-off-by: Linus Walleij drivers/gpio/gpio-omap.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) commit 5f982c70a7c3382d3532ac6d13fdea48ab38b934 Author: Grygorii Strashko Date: Fri May 22 17:35:48 2015 +0300 gpio: omap: fix omap_gpio_free to not clean up irq configuration This patch fixes following issue: - GPIOn is used as IRQ by some dev, for example PCF8575.INT -> gpio6.11 - PCFx driver knows nothing about type of IRQ line (GPIO or not) so it doesn't request gpio and just do request_irq() - If gpio6.11 will be exported through the sysfs and then un-xeported then IRQs from PCFx will not be received any more, because IRQ configuration for gpio6.11 will be cleaned up unconditionally in omap_gpio_free. Fix this by removing all GPIO IRQ specific code from omap_gpio_free() and also do GPIO clean up (change direction to 'in' and disable debounce) only if corresponding GPIO is not used as IRQ too. GPIO IRQ will be properly cleaned up by GPIO irqchip code. Signed-off-by: Grygorii Strashko Tested-by: Tony Lindgren Signed-off-by: Linus Walleij drivers/gpio/gpio-omap.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit f05b7cb6f2beed0869669cc4748341560eba2aef Author: Vaishali Thakkar Date: Mon Jun 1 06:41:57 2015 +0530 USB: serial: mos7840: Use setup_timer Use the timer API function setup_timer instead of structure field assignments to initialize a timer. A simplified version of the Coccinelle semantic patch that performs this transformation is as follows: @change@ expression e1, e2, e3, e4, a, b; @@ -init_timer(&e1); +setup_timer(&e1, a, b); ... when != a = e2 when != b = e3 -e1.function = a; ... when != b = e4 -e1.data = b; Signed-off-by: Vaishali Thakkar Signed-off-by: Johan Hovold drivers/usb/serial/mos7840.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) commit 07e3842055c391e611dd907c81760f4c705f9acb Author: Bart Van Assche Date: Fri May 8 10:07:48 2015 +0200 Move code that is used both by initiator and target drivers Move the functions that are used by both the initiator and target subsystems into scsi_common.c/.h. This change will allow to remove the initiator SCSI header include directives from most SCSI target source files in a later patch. Signed-off-by: Bart Van Assche Reviewed-by: Hannes Reinecke Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/Makefile | 1 + drivers/scsi/scsi.c | 46 ------------ drivers/scsi/scsi_common.c | 178 +++++++++++++++++++++++++++++++++++++++++++++ drivers/scsi/scsi_error.c | 64 ---------------- drivers/scsi/scsi_scan.c | 62 ---------------- include/scsi/scsi.h | 19 +---- include/scsi/scsi_common.h | 64 ++++++++++++++++ include/scsi/scsi_device.h | 2 - include/scsi/scsi_eh.h | 31 -------- 9 files changed, 244 insertions(+), 223 deletions(-) commit c5f1ac8b94bd10f97f5aa1a3279ad8e8bbc6311a Author: Bart Van Assche Date: Fri May 8 10:07:18 2015 +0200 Split SCSI header files Move the constants that are used by both initiator and target drivers into the new header file . This change will allow to remove the initiator SCSI header include directives from most SCSI target source files in a later patch. Signed-off-by: Bart Van Assche Reviewed-by: Hannes Reinecke Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley include/scsi/scsi.h | 272 +------------------------------------------- include/scsi/scsi_proto.h | 281 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 283 insertions(+), 270 deletions(-) commit 2be2a98845e6742a96d48534294d2c5ba582e57f Author: Sumit.Saxena@avagotech.com Date: Wed May 6 19:01:02 2015 +0530 megaraid_sas : Modify return value of megasas_issue_blocked_cmd() and wait_and_poll() to consider command status returned by firmware This patch is rebased on top of recently sent 18 patches(submitted by me) for megaraid_sas driver. Change the return value of wait_and_poll() and megsas_issue_blocked_cmd() based on MFI_STAT returned by firmware for that command. Earlier driver always send return type based on command completion (but never check MFI_STAT_OK for that command), so even if command is failed by firmware still driver will return SUCCESS status from these functions wait_and_poll() and megsas_issue_blocked_cmd() and if caller of these functions does not check command status (MFI_STAT), then it may endup using invalid data returned in DMA buffers(one of the example is megasas_ld_list_query DCMD). Best thing to avoid this type of issue is do error handling and set proper return type from caller function wait_and_poll() and megsas_issue_blocked_cmd(). The change proposed in this patch will fix the regression introduced in patch- "90dc9d9 megaraid_sas : MFI MPT linked list corruption fix" inside function megasas_ld_list_query(). Prior to this MFI MPT linked list corruption fix patch, megasas_ld_list_query() function used to check DCMD status(returned by firmware) but with this linked list corruption fix patch, DCMD status will not be checked inside function megasas_ld_list_query() and introduced this issue of wrong data being used by function megasas_ld_list_query(). Cc: Signed-off-by: Kashyap Desai Signed-off-by: Sumit Saxena Reviewed-by: Tomas Henzl Signed-off-by: James Bottomley drivers/scsi/megaraid/megaraid_sas.h | 2 +- drivers/scsi/megaraid/megaraid_sas_base.c | 67 ++++++++++++----------------- drivers/scsi/megaraid/megaraid_sas_fusion.c | 3 +- 3 files changed, 30 insertions(+), 42 deletions(-) commit e2b836cfb45d27a5efc5b1b65fe2442c53137d9c Author: Andreas Gruenbacher Date: Wed Apr 22 23:59:24 2015 +0200 uapi/nfs: Add NFSv4.1 ACL definitions Add the ACL related protocol definitions which were added in the NFSv4.1 specification. (But we're not using them yet.) Signed-off-by: Andreas Gruenbacher Signed-off-by: J. Bruce Fields include/uapi/linux/nfs4.h | 7 +++++++ 1 file changed, 7 insertions(+) commit e8d975e73e5fa05f983fbf2723120edcf68e0b38 Author: Olga Kornievskaia Date: Fri May 15 11:45:31 2015 -0400 fixing infinite OPEN loop in 4.0 stateid recovery Problem: When an operation like WRITE receives a BAD_STATEID, even though recovery code clears the RECLAIM_NOGRACE recovery flag before recovering the open state, because of clearing delegation state for the associated inode, nfs_inode_find_state_and_recover() gets called and it makes the same state with RECLAIM_NOGRACE flag again. As a results, when we restart looking over the open states, we end up in the infinite loop instead of breaking out in the next test of state flags. Solution: unset the RECLAIM_NOGRACE set because of calling of nfs_inode_find_state_and_recover() after returning from calling recover_open() function. Signed-off-by: Olga Kornievskaia Cc: stable@vger.kernel.org Signed-off-by: Trond Myklebust fs/nfs/nfs4state.c | 2 ++ 1 file changed, 2 insertions(+) commit 5b441eba3ab928ad1a2e9478fae6aa1397048860 Author: Geert Uytterhoeven Date: Thu May 21 14:05:10 2015 +0200 pinctrl: Spelling s/reseved/reserved/ Signed-off-by: Geert Uytterhoeven Reviewed-by: Simon Horman Acked-by: Laurent Pinchart Signed-off-by: Linus Walleij drivers/pinctrl/nomadik/pinctrl-ab8505.c | 2 +- drivers/pinctrl/sh-pfc/pfc-r8a7791.c | 38 ++++++++++++++++---------------- 2 files changed, 20 insertions(+), 20 deletions(-) commit 8b8e658b16336f0f50aba733f51db636ef121f50 Author: Greg Kurz Date: Fri Apr 24 14:50:36 2015 +0200 macvtap/tun: cross-endian support for little-endian hosts The VNET_LE flag was introduced to fix accesses to virtio 1.0 headers that are always little-endian. It can also be used to handle the special case of a legacy little-endian device implemented by a big-endian host. Let's add a flag and ioctls for big-endian devices as well. If both flags are set, little-endian wins. Since this is isn't a common usecase, the feature is controlled by a kernel config option (not set by default). Both macvtap and tun are covered by this patch since they share the same API with userland. Signed-off-by: Greg Kurz Signed-off-by: Michael S. Tsirkin Reviewed-by: David Gibson drivers/net/Kconfig | 14 +++++++++++ drivers/net/macvtap.c | 57 ++++++++++++++++++++++++++++++++++++++++++- drivers/net/tun.c | 59 ++++++++++++++++++++++++++++++++++++++++++++- include/uapi/linux/if_tun.h | 6 +++++ 4 files changed, 134 insertions(+), 2 deletions(-) commit 2751c9882b947292fcfb084c4f604e01724af804 Author: Greg Kurz Date: Fri Apr 24 14:27:24 2015 +0200 vhost: cross-endian support for legacy devices This patch brings cross-endian support to vhost when used to implement legacy virtio devices. Since it is a relatively rare situation, the feature availability is controlled by a kernel config option (not set by default). The vq->is_le boolean field is added to cache the endianness to be used for ring accesses. It defaults to native endian, as expected by legacy virtio devices. When the ring gets active, we force little endian if the device is modern. When the ring is deactivated, we revert to the native endian default. If cross-endian was compiled in, a vq->user_be boolean field is added so that userspace may request a specific endianness. This field is used to override the default when activating the ring of a legacy device. It has no effect on modern devices. Signed-off-by: Greg Kurz Signed-off-by: Michael S. Tsirkin Reviewed-by: Cornelia Huck Reviewed-by: David Gibson drivers/vhost/Kconfig | 15 ++++++++ drivers/vhost/vhost.c | 85 +++++++++++++++++++++++++++++++++++++++++++++- drivers/vhost/vhost.h | 11 ++++-- include/uapi/linux/vhost.h | 14 ++++++++ 4 files changed, 122 insertions(+), 3 deletions(-) commit 7d82410950aa74adccf035c332e409af2bb93e92 Author: Greg Kurz Date: Fri Apr 24 14:26:24 2015 +0200 virtio: add explicit big-endian support to memory accessors The current memory accessors logic is: - little endian if little_endian - native endian (i.e. no byteswap) if !little_endian If we want to fully support cross-endian vhost, we also need to be able to convert to big endian. Instead of changing the little_endian argument to some 3-value enum, this patch changes the logic to: - little endian if little_endian - big endian if !little_endian The native endian case is handled by all users with a trivial helper. This patch doesn't change any functionality, nor it does add overhead. Signed-off-by: Greg Kurz Signed-off-by: Michael S. Tsirkin Reviewed-by: Cornelia Huck Reviewed-by: David Gibson drivers/net/macvtap.c | 3 ++- drivers/net/tun.c | 3 ++- drivers/vhost/vhost.h | 3 ++- include/linux/virtio_byteorder.h | 24 ++++++++++++++---------- include/linux/virtio_config.h | 3 ++- include/linux/vringh.h | 3 ++- 6 files changed, 24 insertions(+), 15 deletions(-) commit ab27c07f607253f928cbc8c64d9c0d273df09e6b Author: Greg Kurz Date: Fri Apr 24 14:25:12 2015 +0200 vhost: introduce vhost_is_little_endian() helper Signed-off-by: Greg Kurz Signed-off-by: Michael S. Tsirkin Acked-by: Cornelia Huck Reviewed-by: David Gibson drivers/vhost/vhost.h | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) commit 5da7b160b36a42f161980c5e20d3960d6d076fb8 Author: Greg Kurz Date: Fri Apr 24 14:24:58 2015 +0200 vringh: introduce vringh_is_little_endian() helper Signed-off-by: Greg Kurz Signed-off-by: Michael S. Tsirkin Acked-by: Cornelia Huck Reviewed-by: David Gibson include/linux/vringh.h | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) commit 5b11e15f24744d2ea6210451529d2b180337965a Author: Greg Kurz Date: Fri Apr 24 14:24:48 2015 +0200 macvtap: introduce macvtap_is_little_endian() helper Signed-off-by: Greg Kurz Signed-off-by: Michael S. Tsirkin Acked-by: Cornelia Huck Reviewed-by: David Gibson drivers/net/macvtap.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit 25bd55bbabd8957693c1ffc2fe1bf16cb4fdabd4 Author: Greg Kurz Date: Fri Apr 24 14:24:38 2015 +0200 tun: add tun_is_little_endian() helper Signed-off-by: Greg Kurz Signed-off-by: Michael S. Tsirkin Acked-by: Cornelia Huck Reviewed-by: David Gibson drivers/net/tun.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit cf561f0d2eb74574ad9985a2feab134267a9d298 Author: Greg Kurz Date: Fri Apr 24 14:24:27 2015 +0200 virtio: introduce virtio_is_little_endian() helper Signed-off-by: Greg Kurz Signed-off-by: Michael S. Tsirkin Acked-by: Cornelia Huck Reviewed-by: David Gibson include/linux/virtio_config.h | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) commit b3da97ee581387cd42dafd76eb2ac23f2335cd92 Author: Masahiro Yamada Date: Fri May 22 15:25:50 2015 +0900 pinctrl: use "const struct ..." rather than "struct ... const" Only this member, pins, is defined as "struct ... const *", but the others in this struct, pinlops, pmxops, confops, etc. are defined as "const struct ... *". Swap the "struct pinctrl_pin_desc" and "const" for consistency. Signed-off-by: Masahiro Yamada Signed-off-by: Linus Walleij include/linux/pinctrl/pinctrl.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5fbf65d5c9c0fd2e5c6c48d69ce34b1c5415f2fd Author: Masahiro Yamada Date: Fri May 22 15:19:37 2015 +0900 pinctrl: remove useless const qualifier This "const" claims the get_function_groups callback never changes the given num_groups pointer. It is always true in C language, so not worth mentioning. Signed-off-by: Masahiro Yamada Signed-off-by: Linus Walleij include/linux/pinctrl/pinmux.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9ecae065f3295d7ea5e1c5492170a848ca255a46 Author: Madhavan Srinivasan Date: Sun May 31 11:36:23 2015 +0530 perf tools: Remove newline char when reading event scale and unit The commit intruduced the perf_event_sysfs_show function to display the event_str value of an attr in kernel/event/core.c. But the function returns the value with a newline char. So, if a event also carries a event.unit file, when printing the counter data perf tool formatting goes for a spin. That is, because of the event unit, event name is printed in the newline because of perf_event_sysfs_show returns with a newline char. Now fixing perf core will break API, hencing proposing a fix in the perf tool. Signed-off-by: Madhavan Srinivasan Cc: Jiri Olsa Cc: Michael Ellerman Cc: Peter Zijlstra Cc: Sukadev Bhattiprolu Link: http://lkml.kernel.org/r/1433052383-21802-1-git-send-email-maddy@linux.vnet.ibm.com [ Add spaces around operators ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/pmu.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) commit 501ef0f95a57e7c32138733c468394a52244c85b Author: Geert Uytterhoeven Date: Thu May 21 13:21:37 2015 +0200 gpio: rcar: Check for irq_set_irq_wake() failures If an interrupt controller doesn't support wake-up configuration, irq_set_irq_wake() returns an error code. Then any subsequent call trying to deconfigure wake-up will cause an imbalance, and a warning will be printed: WARNING: CPU: 1 PID: 1341 at kernel/irq/manage.c:540 irq_set_irq_wake+0x9c/0xf8() Unbalanced IRQ 26 wake disable To fix this, refrain from any further parent interrupt controller (de)configuration if irq_set_irq_wake() failed. Alternative fixes would be: - calling "gic_set_irqchip_flags(IRQCHIP_SKIP_SET_WAKE)" from the platform code, - setting "gic_chip.flags = IRQCHIP_SKIP_SET_WAKE" in the GIC driver code, but these were withheld as the GIC hardware doesn't really support wake-up interrupts. Fixes: ab82fa7da4dce5c7 ("gpio: rcar: Prevent module clock disable when wake-up is enabled") Signed-off-by: Geert Uytterhoeven Signed-off-by: Linus Walleij drivers/gpio/gpio-rcar.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) commit 3fff99bc4e926d9602a7d6e8c008a0175a099ce4 Author: Rojhalat Ibrahim Date: Wed May 13 11:04:56 2015 +0200 gpiolib: rename gpiod_set_array to gpiod_set_array_value There have been concerns that the function names gpiod_set_array() and gpiod_get_array() might be confusing to users. One might expect gpiod_get_array() to return array values, while it is actually the array counterpart of gpiod_get(). To be consistent with the single descriptor API we could rename gpiod_set_array() to gpiod_set_array_value(). This makes some function names a bit lengthy: gpiod_set_raw_array_value_cansleep(). Signed-off-by: Rojhalat Ibrahim Acked-by: Alexandre Courbot Signed-off-by: Linus Walleij drivers/gpio/gpiolib.c | 54 ++++++++++++++++++---------------- drivers/net/phy/mdio-mux-gpio.c | 3 +- drivers/tty/serial/serial_mctrl_gpio.c | 2 +- include/linux/gpio/consumer.h | 37 +++++++++++------------ 4 files changed, 51 insertions(+), 45 deletions(-) commit 5cf021d52026c0e998756a3bdb475aae2e8a68a4 Author: Masahiro Yamada Date: Wed May 20 17:42:31 2015 +0900 pinctrl: zynq: fix offset address for {SD0,SD1}_WP_CD_SEL The address for SD0_WP_CD_SEL, SD1_WP_CD_SEL is 0xf8000830, 0xf8000834, respectively. Each offset address must be prefixed with 0x. Fixes: add958cee967 "pinctrl: Add driver for Zynq" Signed-off-by: Masahiro Yamada Reviewed-by: Sören Brinkmann Signed-off-by: Linus Walleij drivers/pinctrl/pinctrl-zynq.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 4f652cea020aac42972cb7c9788b470ed45aa228 Author: Masahiro Yamada Date: Wed May 20 17:42:30 2015 +0900 pinctrl: zynq: fix DEFINE_ZYNQ_PINMUX_FUNCTION_MUX macro The offset to the mux register is missing. Fixes: add958cee967 "pinctrl: Add driver for Zynq" Signed-off-by: Masahiro Yamada Reviewed-by: Sören Brinkmann Signed-off-by: Linus Walleij drivers/pinctrl/pinctrl-zynq.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 0317a65b94770c953480970f67db0a716778c6a7 Author: Dennis O'Brien Date: Sun May 31 09:19:59 2015 -0700 usb, HID: Remove Vernier devices from lsusb and hid_ignore_list Removes Vernier Software & Technology devices from the ldusb driver and the hid_ignore_list table of the usbhid driver in the Linux tree. These devices will now be supported via the hidraw driver. A user space driver for these devices will be found in the Go! Software Development Kit from Vernier at http://www.vernier.com/downloads/software-development-kits/go-sdk/. These devices are also be supported by the LabQuest2 standalone interface shown at http://www.vernier.com/products/interfaces/labq2/ and the LoggerPro for Linux software shown at http://www.vernier.com/downloads/logger-pro-linux/. Signed-off-by: Dennis O'Brien Acked-by: Greg Kroah-Hartman Signed-off-by: Jiri Kosina drivers/hid/hid-core.c | 5 ----- drivers/hid/hid-ids.h | 7 ------- drivers/usb/misc/ldusb.c | 10 ---------- 3 files changed, 22 deletions(-) commit 8a09b4fadf320cef081e1539975a97793cfb9076 Author: Goffredo Baroncelli Date: Sat May 30 11:00:27 2015 +0200 HID: hidpp: Add driver for mouse logitech M560 The Logitech M560 is a wireless mouse designed for windows 8 which uses the unifying receiver. Compared to a standard one, some buttons (the middle one and the two ones placed on the side) are bound to a key combination instead of a generating classic "mouse" button events. The device shows up as a mouse and keyboard combination: when the middle button is pressed it sends a key (as keyboard) combination, the same happens for the two side button. The left/right/wheel work as expected from a mouse. To complicate things further, the middle button sends different keys combinations between odd and even presses. In the "even" press it also sends a left click. But the worst thing is that no event is generated when the middle button is released. It is possible to re-configure the mouse sending a command (see function m560_send_config_command()). After this command the mouse sends some useful data when the buttons are pressed and/or released. [jkosina@suse.cz: fix build breakage due to leftover from previous patch version] Signed-off-by: Goffredo Baroncelli Reviewed-by: Benjamin Tissoires Signed-off-by: Jiri Kosina drivers/hid/hid-logitech-hidpp.c | 227 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 224 insertions(+), 3 deletions(-) commit 04fba7864ffcceae8a5f78d88ae1fd8d682a5123 Author: Goffredo Baroncelli Date: Sat May 30 11:00:26 2015 +0200 HID: Export hid_field_extract() Rename the function extract() to hid_field_extract(), make it external linkage to allow the use from other modules. Suggested-by: Jiri Kosina Signed-off-by: Goffredo Baroncelli Reviewed-by: Benjamin Tissoires Signed-off-by: Jiri Kosina drivers/hid/hid-core.c | 11 ++++++----- include/linux/hid.h | 2 ++ 2 files changed, 8 insertions(+), 5 deletions(-) commit c9c99f8938e41b878802d5d8481d6f7a212515b0 Author: Johannes Berg Date: Mon Jun 1 14:10:09 2015 +0200 mac80211: act upon and report deauth while associating When trying to associate, the AP could send a deauth frame instead. Currently mac80211 drops that frame and doesn't report it to the supplicant, which, in some versions and/or in certain circumstances will simply keep trying to associate over and over again instead of trying authentication again. Fix this by reacting to deauth frames while associating, reporting them to the supplicant and dropping the association attempt (which is bound to fail.) Signed-off-by: Johannes Berg net/mac80211/mlme.c | 92 ++++++++++++++++++++++++++++++----------------------- 1 file changed, 53 insertions(+), 39 deletions(-) commit 8480c2e7b0484b8ec741bbb908455fce748f9798 Author: Jon Hunter Date: Wed May 27 14:11:54 2015 +0100 pinctrl: tegra-xusb: Fix allocation of pins Commit e5b3b2d9ed20 ("pinctrl: allows not to define the get_group_pins operation") allows pin controllers not to register the get_group_pins() function. However, a side-effect of not registering this function is that pins are not allocated and potentially multiple devices could attempt to configure the same pins [1]. Although this problem exists in the pinctrl core, because only a few devices are impacted by this, fix this for tegra-xusb by adding the get_group_pins() function. Please note that in addition to adding the get_group_pins() functions the pins/lanes for the tegra-xusb also need to be registered when calling pinctrl_register(). This also allows the current pinmux state to be viewed by the debugfs node "pinmux-pins" for the tegra-xusb pad controller. [1] http://www.spinics.net/lists/linux-gpio/msg05810.html Signed-off-by: Jon Hunter Acked-by: Thierry Reding Signed-off-by: Linus Walleij drivers/pinctrl/pinctrl-tegra-xusb.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit 1133c6379c8a2af9d0825db621ce2f16c694a8fe Author: Jon Hunter Date: Wed May 27 14:11:53 2015 +0100 pinctrl: tegra-xusb: Remove unused structure The structure tegra_xusb_padctl_group is defined but never used and so remove this. Signed-off-by: Jon Hunter Acked-by: Thierry Reding Signed-off-by: Linus Walleij drivers/pinctrl/pinctrl-tegra-xusb.c | 5 ----- 1 file changed, 5 deletions(-) commit d00a3810c16207d2541b7796a73cca5a24ea3742 Author: Will Deacon Date: Wed May 27 15:39:40 2015 +0100 arm64: context-switch user tls register tpidr_el0 for compat tasks Since commit a4780adeefd0 ("ARM: 7735/2: Preserve the user r/w register TPIDRURW on context switch and fork"), arch/arm/ has context switched the user-writable TLS register, so do the same for compat tasks running under the arm64 kernel. Reported-by: André Hentschel Tested-by: André Hentschel Signed-off-by: Will Deacon Signed-off-by: Catalin Marinas arch/arm64/include/asm/processor.h | 19 ++++++++++++++- arch/arm64/kernel/process.c | 47 ++++++++++++++++---------------------- 2 files changed, 38 insertions(+), 28 deletions(-) commit 692fbb89fa0b8028f402e33eb912474e11b5f435 Author: NeilBrown Date: Thu Apr 16 18:03:04 2015 +1000 phy: twl4030-usb: add ABI documentation This driver device one local attribute: vbus. Describe that in Documentation/ABI/testing/sysfs-platform/twl4030-usb. Signed-off-by: NeilBrown Signed-off-by: Kishon Vijay Abraham I Documentation/ABI/testing/sysfs-platform-twl4030-usb | 8 ++++++++ 1 file changed, 8 insertions(+) commit 4724e27114c4a7eceeee07db227a17fcab6f165c Author: NeilBrown Date: Thu Apr 16 18:03:04 2015 +1000 phy: twl4030-usb: remove incorrect pm_runtime_get_sync() in probe function. The USB phy should initialize with power-off, and will be powered on by the USB system when a cable connection is detected. Having this pm_runtime_get_sync() during probe causes the phy to *always* be powered on. Removing it returns to sensible power management. Fixes: 96be39ab34b77c6f6f5cd6ae03aac6c6449ee5c4 Signed-off-by: NeilBrown Signed-off-by: Kishon Vijay Abraham I drivers/phy/phy-twl4030-usb.c | 1 - 1 file changed, 1 deletion(-) commit 186ecebeb60d5271c519450d71026901d9741714 Author: NeilBrown Date: Thu Apr 16 18:03:04 2015 +1000 phy: twl4030-usb: remove pointless 'suspended' test in 'suspend' callback. When the runtime_suspend callback is running, 'runtime_status' is always RPM_SUSPENDING, so pm_runtime_suspended() will always fail. Similarly while the runtime_resume callback is running 'runtime_status' is RPM_RESUMING, so pm_runtime_active() will always fail. So remove these two pointless tests. Signed-off-by: NeilBrown Signed-off-by: Kishon Vijay Abraham I drivers/phy/phy-twl4030-usb.c | 4 ---- 1 file changed, 4 deletions(-) commit 56301df6bcaaed31e77b8c500ca1b437f46a3158 Author: NeilBrown Date: Thu Apr 16 18:03:04 2015 +1000 phy: twl4030-usb: make runtime pm more reliable. A construct like: if (pm_runtime_suspended(twl->dev)) pm_runtime_get_sync(twl->dev); is against the spirit of the runtime_pm interface as it makes the internal refcounting useless. In this case it is also racy, particularly as 'put_autosuspend' is used to drop a reference. When that happens a timer is started and the device is runtime-suspended after the timeout. If the above code runs in this window, the device will not be found to be suspended so no pm_runtime reference is taken. When the timer expires the device will be suspended, which is against the intention of the code. So be more direct is taking and dropping references. If twl->linkstat is VBUS_VALID or ID_GROUND, then hold a pm_runtime reference, otherwise don't. Define "cable_present()" to test for this condition. Tested-by: Tony Lindgren Signed-off-by: NeilBrown Signed-off-by: Kishon Vijay Abraham I drivers/phy/phy-twl4030-usb.c | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) commit 1e1ec2861e0d4307267096c3f74c17298c1cde98 Author: Lars-Peter Clausen Date: Fri May 29 18:14:22 2015 +0200 iio: Require strict scan mask matching in hardware mode In hardware mode we can not use the software demuxer, this means that the selected scan mask needs to match one of the available scan masks exactly. It also means that all attached buffers need to use the same scan mask. Given that when operating in hardware mode there is typically only a single buffer attached to the device this not an issue. Add a sanity check to make sure that only a single buffer is attached in hardware mode nevertheless. Signed-off-by: Lars-Peter Clausen Signed-off-by: Jonathan Cameron drivers/iio/industrialio-buffer.c | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) commit 225d59adf1c899176cce0fc80e42b1d1c12f109f Author: Lars-Peter Clausen Date: Fri May 29 18:14:21 2015 +0200 iio: Specify supported modes for buffers For each buffer type specify the supported device modes for this buffer. This allows us for devices which support multiple different operating modes to pick the correct operating mode based on the modes supported by the attached buffers. It also prevents that buffers with conflicting modes are attached to a device at the same time or that a buffer with a non-supported mode is attached to a device (e.g. in-kernel callback buffer to a device only supporting hardware mode). Signed-off-by: Lars-Peter Clausen Signed-off-by: Jonathan Cameron drivers/iio/buffer_cb.c | 2 ++ drivers/iio/industrialio-buffer.c | 18 +++++++++++++++--- drivers/iio/kfifo_buf.c | 2 ++ drivers/staging/iio/accel/sca3000_ring.c | 2 ++ include/linux/iio/buffer.h | 3 +++ 5 files changed, 24 insertions(+), 3 deletions(-) commit 02b4e2756e01c623cc4dbceae4b07be75252db5b Author: Russell King Date: Tue May 19 17:06:44 2015 +0100 ARM: v7 setup function should invalidate L1 cache All ARMv5 and older CPUs invalidate their caches in the early assembly setup function, prior to enabling the MMU. This is because the L1 cache should not contain any data relevant to the execution of the kernel at this point; all data should have been flushed out to memory. This requirement should also be true for ARMv6 and ARMv7 CPUs - indeed, these typically do not search their caches when caching is disabled (as it needs to be when the MMU is disabled) so this change should be safe. ARMv7 allows there to be CPUs which search their caches while caching is disabled, and it's permitted that the cache is uninitialised at boot; for these, the architecture reference manual requires that an implementation specific code sequence is used immediately after reset to ensure that the cache is placed into a sane state. Such functionality is definitely outside the remit of the Linux kernel, and must be done by the SoC's firmware before _any_ CPU gets to the Linux kernel. Changing the data cache clean+invalidate to a mere invalidate allows us to get rid of a lot of platform specific hacks around this issue for their secondary CPU bringup paths - some of which were buggy. Reviewed-by: Florian Fainelli Tested-by: Florian Fainelli Tested-by: Heiko Stuebner Tested-by: Dinh Nguyen Acked-by: Sebastian Hesselbarth Tested-by: Sebastian Hesselbarth Acked-by: Shawn Guo Tested-by: Thierry Reding Acked-by: Thierry Reding Tested-by: Geert Uytterhoeven Tested-by: Michal Simek Tested-by: Wei Xu Signed-off-by: Russell King arch/arm/mach-bcm/Makefile | 2 +- arch/arm/mach-bcm/brcmstb.h | 19 ------------------- arch/arm/mach-bcm/headsmp-brcmstb.S | 33 --------------------------------- arch/arm/mach-bcm/platsmp-brcmstb.c | 4 +--- arch/arm/mach-berlin/headsmp.S | 6 ------ arch/arm/mach-berlin/platsmp.c | 3 +-- arch/arm/mach-hisi/Makefile | 2 +- arch/arm/mach-hisi/core.h | 1 - arch/arm/mach-hisi/headsmp.S | 16 ---------------- arch/arm/mach-hisi/platsmp.c | 4 ++-- arch/arm/mach-imx/headsmp.S | 1 - arch/arm/mach-mvebu/headsmp-a9.S | 1 - arch/arm/mach-prima2/headsmp.S | 1 - arch/arm/mach-rockchip/core.h | 1 - arch/arm/mach-rockchip/headsmp.S | 8 -------- arch/arm/mach-rockchip/platsmp.c | 5 ++--- arch/arm/mach-shmobile/common.h | 1 - arch/arm/mach-shmobile/headsmp-scu.S | 4 ++-- arch/arm/mach-shmobile/headsmp.S | 7 ------- arch/arm/mach-shmobile/platsmp-apmu.c | 2 +- arch/arm/mach-socfpga/core.h | 1 - arch/arm/mach-socfpga/headsmp.S | 5 ----- arch/arm/mach-socfpga/platsmp.c | 2 +- arch/arm/mach-tegra/Makefile | 2 +- arch/arm/mach-tegra/headsmp.S | 12 ------------ arch/arm/mach-tegra/reset.c | 2 +- arch/arm/mach-tegra/reset.h | 1 - arch/arm/mach-zynq/common.h | 2 -- arch/arm/mach-zynq/headsmp.S | 5 ----- arch/arm/mach-zynq/platsmp.c | 5 ++--- arch/arm/mm/proc-v7.S | 2 +- 31 files changed, 17 insertions(+), 143 deletions(-) commit a431c1fa01ff020ecb146c04fbbea974e3eb910f Author: Geert Uytterhoeven Date: Thu May 28 11:33:33 2015 +0200 clk: shmobile: rz: Document mandatory compatible fallback The generic RZ CPG compatible value is mandatory, as the driver uses only this value for matching. Document that this is a fallback that must be present. Signed-off-by: Geert Uytterhoeven Documentation/devicetree/bindings/clock/renesas,rz-cpg-clocks.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit dd734a7e773c6b9d764d2879e715aaf579a99506 Author: Geert Uytterhoeven Date: Thu May 28 11:31:17 2015 +0200 clk: shmobile: rcar-gen2: Document mandatory compatible fallback The generic R-Car Gen2 CPG compatible value is mandatory, as the driver uses only this value for matching. Document that this is a fallback that must be present. Signed-off-by: Geert Uytterhoeven .../devicetree/bindings/clock/renesas,rcar-gen2-cpg-clocks.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 17df1fb2e502371b63ea1b2110584e8a712d6c20 Author: Geert Uytterhoeven Date: Thu May 28 11:28:10 2015 +0200 clk: shmobile: mstp: Document mandatory compatible fallback The generic MSTP gate clocks compatible value is mandatory, as the driver uses only this value for matching. Document that this is a fallback that must be present. Also fix a typo (missing plural "s") in the compatible value. Signed-off-by: Geert Uytterhoeven Documentation/devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 629bc02331f7aae6ef775fb4c15e6d8aa58722f1 Author: Lars-Peter Clausen Date: Fri May 29 18:14:20 2015 +0200 iio: Always compute masklength Even if no userspace consumer buffer is attached to the IIO device at registration we still need to compute the masklength, since it is possible that a in-kernel consumer buffer is going to get attached to the device at a later point. Signed-off-by: Lars-Peter Clausen Signed-off-by: Jonathan Cameron drivers/iio/industrialio-buffer.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) commit 4dcaa5f75473271ea83545eb5a95db8d7a152362 Author: Vladimirs Ambrosovs Date: Sat May 30 11:20:17 2015 +0300 staging: iio_simple_dummy: fix module_param type Fix the module_param "instances" type to uint, since the variable type holding the value is unsigned. Signed-off-by: Vladimirs Ambrosovs Signed-off-by: Jonathan Cameron drivers/staging/iio/iio_simple_dummy.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 62a90da69df1255ba43d3b6595e71e639efd80a8 Author: Vladimirs Ambrosovs Date: Sat May 30 11:20:16 2015 +0300 staging: iio_simple_dummy: fix return types The functions iio_dummy_remove(), iio_simple_dummy_events_unregister() and iio_dummy_evgen_release_irq() were changed to return void instead of int. Signed-off-by: Vladimirs Ambrosovs Signed-off-by: Jonathan Cameron drivers/staging/iio/iio_dummy_evgen.c | 4 +--- drivers/staging/iio/iio_dummy_evgen.h | 2 +- drivers/staging/iio/iio_simple_dummy.c | 10 ++-------- drivers/staging/iio/iio_simple_dummy.h | 8 +++----- drivers/staging/iio/iio_simple_dummy_events.c | 4 +--- 5 files changed, 8 insertions(+), 20 deletions(-) commit 370626288f1a5992951abf825c4b662ba55774c0 Author: Geert Uytterhoeven Date: Mon Jun 1 12:00:08 2015 +0200 clk: shmobile: div6: Document mandatory compatible fallback The generic CPG DIV6 clock compatible value is mandatory, as the driver uses only this value for matching. Document that this is a fallback that must be present. Signed-off-by: Geert Uytterhoeven Documentation/devicetree/bindings/clock/renesas,cpg-div6-clocks.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b3f6af36e52e1e61cf7571c77dba0e905c38297a Author: Vladimirs Ambrosovs Date: Sat May 30 11:20:15 2015 +0300 staging: iio_simple_dummy: fix init function This patch fixes the init function for the iio_simple_dummy driver. The main issues were absence of kfree for the allocated array, and no devices being removed in case the probe function fails, running in a loop. Signed-off-by: Vladimirs Ambrosovs Signed-off-by: Jonathan Cameron drivers/staging/iio/iio_simple_dummy.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit 0c933f3a45be471160bcf3428c1ee8f75f9cd75d Author: Geert Uytterhoeven Date: Mon Jun 1 11:57:48 2015 +0200 clk: shmobile: r8a7794: Document DIV6 clock bindings Signed-off-by: Geert Uytterhoeven Documentation/devicetree/bindings/clock/renesas,cpg-div6-clocks.txt | 1 + 1 file changed, 1 insertion(+) commit 0e0d8b7050372e5b55f5067be8a15bb7577c9b00 Author: Ulrich Hecht Date: Thu May 28 17:17:01 2015 +0200 clk: shmobile: r8a7793: Document DIV6 clock bindings Signed-off-by: Ulrich Hecht Acked-by: Simon Horman Cc: devicetree@vger.kernel.org Signed-off-by: Geert Uytterhoeven Documentation/devicetree/bindings/clock/renesas,cpg-div6-clocks.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit b5405db9df8ea71435336bea8295cc4aa84ee3fa Author: Ulrich Hecht Date: Thu May 28 17:17:00 2015 +0200 clk: shmobile: Add r8a7793 SoC to MSTP bindings Also replaces "R-Car M2" with "R-Car M2-W" to avoid confusion. Signed-off-by: Ulrich Hecht Acked-by: Simon Horman Cc: Michael Turquette Cc: devicetree@vger.kernel.org Signed-off-by: Geert Uytterhoeven Documentation/devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 31a0b5373c7562d5a24f973a2afec1785d72d9c4 Author: Ulrich Hecht Date: Thu Feb 26 17:42:06 2015 +0100 clk: shmobile: Add r8a7778 SoC to MSTP bindings Signed-off-by: Ulrich Hecht Acked-by: Laurent Pinchart Signed-off-by: Geert Uytterhoeven Documentation/devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt | 1 + 1 file changed, 1 insertion(+) commit 0eb14a8dad7d586df1e15702cb76f87a374a88b7 Author: Maxime Ripard Date: Thu Mar 26 15:53:44 2015 +0100 ARM: dts: sun7i: Add A20 SRAM and SRAM controller The A20 has a few SRAM that can be mapped either to a device or to the CPU, with the mapping being controlled by a SRAM controller. Add the SRAM controller, the SRAM that it drives and the section that can be used by the various devices. Signed-off-by: Maxime Ripard Acked-by: Arnd Bergmann Acked-by: Hans de Goede Tested-by: Hans de Goede arch/arm/boot/dts/sun7i-a20.dtsi | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) commit 00f69ba94d39cb3f1804dbb6769768d070336ab3 Author: Maxime Ripard Date: Thu Mar 26 15:53:44 2015 +0100 ARM: dts: sun5i: Add A10s and A13 SRAM and SRAM controller The A10s and A13 have a few SRAM that can be mapped either to a device or to the CPU, with the mapping being controlled by a SRAM controller. Add the SRAM controller, the SRAM that it drives and the section that can be used by the various devices. Signed-off-by: Maxime Ripard Acked-by: Arnd Bergmann Acked-by: Hans de Goede Tested-by: Hans de Goede arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts | 4 ++++ arch/arm/boot/dts/sun5i-a10s.dtsi | 9 +++++++ arch/arm/boot/dts/sun5i.dtsi | 30 ++++++++++++++++++++++++ 3 files changed, 43 insertions(+) commit 1fbc15175df040884cb58d73a8e4198f00891cd4 Author: Maxime Ripard Date: Thu Mar 26 15:53:44 2015 +0100 ARM: dts: sun4i: Add A10 SRAM and SRAM controller The A10 has a few SRAM that can be mapped either to a device or to the CPU, with the mapping being controlled by a SRAM controller. Add the SRAM controller, the SRAM that it drives and the section that can be used by the various devices. Signed-off-by: Maxime Ripard Acked-by: Arnd Bergmann Acked-by: Hans de Goede Tested-by: Hans de Goede arch/arm/boot/dts/sun4i-a10-a1000.dts | 4 +++ arch/arm/boot/dts/sun4i-a10-ba10-tvbox.dts | 4 +++ arch/arm/boot/dts/sun4i-a10-cubieboard.dts | 4 +++ arch/arm/boot/dts/sun4i-a10-hackberry.dts | 4 +++ arch/arm/boot/dts/sun4i-a10-jesurun-q5.dts | 4 +++ arch/arm/boot/dts/sun4i-a10-marsboard.dts | 4 +++ arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts | 4 +++ arch/arm/boot/dts/sun4i-a10-pcduino.dts | 4 +++ arch/arm/boot/dts/sun4i-a10.dtsi | 37 ++++++++++++++++++++++++++ 9 files changed, 69 insertions(+) commit 860c186c7d5998d54ef02ff273804b1eb31a9ba1 Author: Maxime Ripard Date: Mon Jun 1 11:10:14 2015 +0200 ARM: dts: sunxi: Revert SRAM controller drivers patches This patch reverts commit ccb4ada2f193 ("ARM: dts: sun7i: Add A20 SRAM and SRAM controller"), commit e6f51e4bd2a5 ("ARM: dts: sun5i: Add A13 and A10s SRAM and SRAM controller") and commit 6d92b80f356f ("ARM: dts: sun4i: Add A10 SRAM and SRAM controller"). The bindings have been changed in the SRAM driver, and we need to change the DT accordingly. Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun4i-a10.dtsi | 34 ---------------------------------- arch/arm/boot/dts/sun5i.dtsi | 34 ---------------------------------- arch/arm/boot/dts/sun7i-a20.dtsi | 34 ---------------------------------- 3 files changed, 102 deletions(-) commit c1c3c85ddf60a6d97c122d57d385b4929fcec4b3 Author: Mauro Carvalho Chehab Date: Mon Jun 1 06:10:15 2015 -0300 [media] DocBook: fix FE_SET_PROPERTY ioctl arguments FE_SET_PROPERTY/FE_GET_PROPERTY actually expects a struct dtv_properties argument. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/fe-get-property.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6d6693c8a7ca305e531aa3bf6a03e8545e294719 Author: Chen-Yu Tsai Date: Wed May 27 00:54:16 2015 +0800 ARM: dts: sun9i: Add device node for watchdog On A80 there are 2 watchdogs, one in the main block, and one in the R (special) block. We do not have information on the R block watchdog, other than the register layout is the same, and the interrupt number. Both are able to reset the whole system. Add the main watchdog, in case the R block is used for special purposes like running an RTOS. Signed-off-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun9i-a80.dtsi | 6 ++++++ 1 file changed, 6 insertions(+) commit 4528f5314b8be852e7b1c278042a5655375e39b4 Author: Michael Ring Date: Fri May 22 16:33:04 2015 +0200 ARM: dts: sun7i: Add uart4 support for BananaPro, disable uart2 The BananaPro uses uart4 for the default rx/tx pins on the 40 pins connector, so enable uart4. Uart2 is also available at the bananapro io-pins, but like on the bananapi the primary function of the pins is to act as gpios, see: http://forum.lemaker.org/forum.php?mod=viewthread&tid=10852 Remove the uart2 node, people who want to use uart2 can do so with a devicetree-overlay. Signed-off-by: Michael Ring [hdegoede@redhat.com: Remove uart2 node] Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun7i-a20-bananapro.dts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 869afa7f1743e4227c0c63c4200830933bbeec6d Author: Michael Ring Date: Thu May 21 14:32:33 2015 +0200 ARM: dts: sun7i: Add uart4_pins_b definition Some boards (e.g. the BananaPro) use alternative pins for uart4, add a pinmux entry for these. Signed-off-by: Michael Ring Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun7i-a20.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) commit 5f6883898c62d6b50662539ebf10c8c2c8777d7f Author: Maxime Ripard Date: Thu May 7 22:46:53 2015 +0200 ARM: sun8i: Introduce A23 Evaluation Board Support The A23 Evaluation Board has an MMC slot, two UARTs, NAND, a few display connectors (RGB, MIPI, LVDS), a mini-PCIE slot, USB host and OTG and a bunch of embedded sensors. Signed-off-by: Maxime Ripard arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/sun8i-a23-evb.dts | 134 ++++++++++++++++++++++++++++++++++++ 2 files changed, 135 insertions(+) commit 6fd877748a9c4133e37417061e426188fcb00fea Author: Mauro Carvalho Chehab Date: Mon Jun 1 05:54:20 2015 -0300 [media] DocBook: some fixes for DVB FE open() The changeset dc9ef7d11207 change the open() ioctl documentation to match the V4L2 open(). However, some cut-and-pasted stuff doesn't match what actually happens at the DVB core. So, fix the documentation entry to be more accurate with the DVB frontend open() specifics. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/frontend.xml | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) commit 1214c525484cabb27ed37df936c3451682757263 Author: Akinobu Mita Date: Fri May 1 15:47:22 2015 +0900 m68k: Use for_each_sg() This replaces the plain loop over the sglist array with for_each_sg() macro which consists of sg_next() function calls. Since m68k doesn't select ARCH_HAS_SG_CHAIN, it is not necessary to use for_each_sg() in order to loop over each sg element. But this can help find problems with drivers that do not properly initialize their sg tables when CONFIG_DEBUG_SG is enabled. Signed-off-by: Akinobu Mita Cc: Geert Uytterhoeven Cc: linux-m68k@lists.linux-m68k.org Cc: linux-arch@vger.kernel.org Signed-off-by: Geert Uytterhoeven arch/m68k/kernel/dma.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) commit 4d686b02f68f3f821cadb2f3898b07867e3fafde Author: Geert Uytterhoeven Date: Mon Apr 27 09:43:19 2015 +0200 m68k/defconfig: Update defconfigs for v4.1-rc6 Signed-off-by: Geert Uytterhoeven arch/m68k/configs/amiga_defconfig | 8 ++++++-- arch/m68k/configs/apollo_defconfig | 8 ++++++-- arch/m68k/configs/atari_defconfig | 8 ++++++-- arch/m68k/configs/bvme6000_defconfig | 8 ++++++-- arch/m68k/configs/hp300_defconfig | 8 ++++++-- arch/m68k/configs/mac_defconfig | 8 ++++++-- arch/m68k/configs/multi_defconfig | 8 ++++++-- arch/m68k/configs/mvme147_defconfig | 8 ++++++-- arch/m68k/configs/mvme16x_defconfig | 8 ++++++-- arch/m68k/configs/q40_defconfig | 8 ++++++-- arch/m68k/configs/sun3_defconfig | 8 ++++++-- arch/m68k/configs/sun3x_defconfig | 8 ++++++-- 12 files changed, 72 insertions(+), 24 deletions(-) commit dc9ef7d11207a04514ca195f0c9f4d2ac56696e1 Author: Hans Verkuil Date: Sun May 31 09:59:12 2015 -0300 [media] DocBook media: rewrite frontend open/close To fix the last xmllint errors the open and close function reference description was rewritten based on the v4l2 open and close functions. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/frontend.xml | 281 +++++++++++++++------------ 1 file changed, 159 insertions(+), 122 deletions(-) commit 595d041a18ec80702b6d4e01ebb2e47f1a0d3781 Author: Hans Verkuil Date: Sun May 31 09:59:11 2015 -0300 [media] DocBook media: xmllint fixes Fixes a large number of xmllint errors. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/dvbproperty.xml | 20 ++++++++--------- .../media/dvb/fe-diseqc-recv-slave-reply.xml | 2 +- .../DocBook/media/dvb/fe-diseqc-send-burst.xml | 8 +++---- .../media/dvb/fe-diseqc-send-master-cmd.xml | 2 +- .../media/dvb/fe-enable-high-lnb-voltage.xml | 6 ++--- Documentation/DocBook/media/dvb/fe-get-info.xml | 8 +++---- .../DocBook/media/dvb/fe-get-property.xml | 26 +++++++++++----------- Documentation/DocBook/media/dvb/fe-read-status.xml | 4 ++-- .../media/dvb/fe-set-frontend-tune-mode.xml | 6 ++--- Documentation/DocBook/media/dvb/fe-set-tone.xml | 8 +++---- Documentation/DocBook/media/dvb/fe-set-voltage.xml | 6 ++--- Documentation/DocBook/media/dvb/frontend.xml | 16 ++++++------- .../DocBook/media/dvb/frontend_legacy_api.xml | 3 +-- 13 files changed, 56 insertions(+), 59 deletions(-) commit 6fc1cb2ef495df7a505b71dbc660c743043ae7b8 Author: Hans Verkuil Date: Sun May 31 09:59:10 2015 -0300 [media] DocBook media: fix typos satellital -> satellite antena -> antenna Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/dvbproperty.xml | 8 ++++---- Documentation/DocBook/media/dvb/fe-set-tone.xml | 2 +- Documentation/DocBook/media/dvb/fe-set-voltage.xml | 2 +- Documentation/DocBook/media/dvb/frontend.xml | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) commit e881ad1bc6e46fc933fef77cfe587625e30478e9 Author: Daniel Kurtz Date: Wed May 20 18:20:07 2015 +0800 arm64: dts: mt8173: fix some indentation Fix indentation nits to make mt8173.dtsi more consistent. Signed-off-by: Eddie Huang Signed-off-by: Daniel Kurtz Signed-off-by: Matthias Brugger arch/arm64/boot/dts/mediatek/mt8173.dtsi | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) commit 1e5a0a9a58e2977e6542074b25b96be93208dccf Author: Eric Anholt Date: Fri May 29 14:06:12 2015 -0700 mmc: sdhci-bcm2835: Actually enable the clock We're currently using a fixed frequency clock specified in the DT, so enabling is a no-op. However, the RPi firmware-based clocks driver can actually disable unused clocks, so when switching to use it we ended up losing our MMC clock once all devices were probed. Signed-off-by: Eric Anholt Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-bcm2835.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit 475c9e43bfa76198c2d0b4310ad406ea2206aba0 Author: Eric Anholt Date: Fri May 29 14:06:11 2015 -0700 mmc: sdhci-bcm2835: Clean up platform allocations if sdhci init fails. Signed-off-by: Eric Anholt Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-bcm2835.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit ff7d4f5981a8a139ead70adef3c1d0ed574bca01 Author: Laurent Navet Date: Sat May 30 22:35:36 2015 +0200 iio: buffer: remove unneeded test The same code is executed regardless ret value, so this test can be removed. Also fix coverity scan CID 1268786. Signed-off-by: Laurent Navet Signed-off-by: Jonathan Cameron drivers/iio/industrialio-buffer.c | 2 -- 1 file changed, 2 deletions(-) commit 9d4752544d17a10a40be5fc5ef68edcae5363599 Author: Hartmut Knaack Date: Sun May 31 14:40:36 2015 +0200 tools:iio:iio_utils: pass strings as const Mark strings, which are not supposed to be changed (basedir, filename, value), as const in function parameters. Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron tools/iio/iio_utils.c | 22 +++++++++++++--------- tools/iio/iio_utils.h | 15 +++++++++------ 2 files changed, 22 insertions(+), 15 deletions(-) commit e06e3d7112f2ec5494d2d934a8641a53885003ee Author: Hartmut Knaack Date: Sun May 31 14:40:22 2015 +0200 tools:iio: rework program parameters In generic_buffer.c: sort program parameters alphabetically and provide usage information In lsiio.c: drop unused parameters Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron tools/iio/generic_buffer.c | 55 ++++++++++++++++++++++++++++++---------------- tools/iio/lsiio.c | 6 ++--- 2 files changed, 38 insertions(+), 23 deletions(-) commit 1e7c34788de3c0e5b18b6f27c42c191da5811c74 Author: Hartmut Knaack Date: Sun May 31 14:40:21 2015 +0200 tools:iio:iio_utils: initialize count during declaration In build_channel_array(), count can be initialized already during variable declaration. Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron tools/iio/iio_utils.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit ace76e42bcd5d67e5be303997a4dc325d44366ce Author: Hartmut Knaack Date: Sun May 31 14:40:20 2015 +0200 tools:iio:iio_utils: move up reset of sysfsfp In iioutils_get_type() it is logically better fitting to have sysfsfp assigned zero right after closing it. Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron tools/iio/iio_utils.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 33ebcb21a67f257faf1128f08a6d7c0299cb0da2 Author: Hartmut Knaack Date: Sun May 31 14:40:19 2015 +0200 tools:iio:iio_utils: refactor assignment of is_signed Change the assignment of *is_signed in iioutils_get_type() to a one-liner, as already done with *be. Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron tools/iio/iio_utils.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 916e89e4b7272e1eda9eba057cf25197129bcf79 Author: Hartmut Knaack Date: Sun May 31 14:40:18 2015 +0200 tools:iio:iio_event_monitor: refactor events output Refactor the code in print_event() to reduce code duplication and better reflect that the type is output unconditionally, as well as cascade the dependency of the diff-channel. Saves a few lines of code, as well. Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron tools/iio/iio_event_monitor.c | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) commit 0e799878175aa7d08f5882b6a391de4724c52e9e Author: Hartmut Knaack Date: Sun May 31 14:40:17 2015 +0200 tools:iio: return values directly Return directly, if no common cleanup is required. Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron tools/iio/generic_buffer.c | 5 ++--- tools/iio/iio_event_monitor.c | 5 ++--- tools/iio/iio_utils.c | 27 ++++++++++++--------------- 3 files changed, 16 insertions(+), 21 deletions(-) commit 5dc65d791ddafc9f6d944391e379708b6056fc48 Author: Hartmut Knaack Date: Sun May 31 14:40:16 2015 +0200 tools:iio:iio_utils: add missing documentation Fully document public functions and elements. Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron tools/iio/iio_utils.c | 85 +++++++++++++++++++++++++++++++++++++++++++++++---- tools/iio/iio_utils.h | 5 ++- 2 files changed, 83 insertions(+), 7 deletions(-) commit 9e37d042cfcb003b885bb4c531cd6f07f62647d1 Author: Nicholas Bellinger Date: Wed May 20 21:21:08 2015 -0700 target: Drop se_lun->lun_active for existing percpu lun_ref With se_port_t and t10_alua_tg_pt_gp_member being absored into se_lun, there is no need for an extra atomic_t based reference count for PR ALL_TG_PT=1 and ALUA access state transition. Go ahead and use the existing percpu se_lun->lun_ref instead, and convert the two special cases to percpu_ref_tryget_live() to avoid se_lun if transport_clear_lun_ref() has already been invoked to shutdown the se_lun. Cc: Christoph Hellwig Reviewed-by: Hannes Reinecke Signed-off-by: Nicholas Bellinger drivers/target/target_core_alua.c | 5 +++-- drivers/target/target_core_pr.c | 9 +++++---- drivers/target/target_core_tpg.c | 10 ++++++---- include/target/target_core_base.h | 1 - 4 files changed, 14 insertions(+), 11 deletions(-) commit 4cc987eaff9144182cde88d6d132420c28d3f81b Author: Nicholas Bellinger Date: Tue May 19 00:03:07 2015 -0700 target: Drop lun_sep_lock for se_lun->lun_se_dev RCU usage With se_port and t10_alua_tg_pt_gp_member being absored into se_lun, there is no need for an extra lock to protect se_lun->lun_se_dev assignment. This patch also converts backend drivers to use call_rcu() release to allow any se_device readers to complete. The call_rcu() instead of kfree_rcu() is required here because se_device is embedded into the backend driver specific structure. Also, convert se_lun->lun_stats to use atomic_long_t within the target_complete_ok_work() completion callback, and add FIXME for transport_lookup_tmr_lun() with se_lun->lun_ref. Finally, update sbp_update_unit_directory() special case usage with proper rcu_dereference_raw() and configfs symlink comment. Reported-by: Christoph Hellwig Reviewed-by: Hannes Reinecke Cc: Paul E. McKenney Cc: Chris Boot Signed-off-by: Nicholas Bellinger drivers/target/sbp/sbp_target.c | 7 +- drivers/target/target_core_alua.c | 12 +++- drivers/target/target_core_device.c | 47 ++++++++----- drivers/target/target_core_file.c | 11 ++- drivers/target/target_core_iblock.c | 10 ++- drivers/target/target_core_pscsi.c | 11 ++- drivers/target/target_core_rd.c | 10 ++- drivers/target/target_core_spc.c | 2 +- drivers/target/target_core_stat.c | 123 +++++++++++++++++---------------- drivers/target/target_core_tpg.c | 16 ++--- drivers/target/target_core_transport.c | 20 ++---- drivers/target/target_core_user.c | 11 ++- include/target/target_core_base.h | 10 +-- 13 files changed, 175 insertions(+), 115 deletions(-) commit adf653f92f38e80a78bb77e912d49bcc8055330f Author: Christoph Hellwig Date: Mon May 25 21:33:08 2015 -0700 target: Subsume se_port + t10_alua_tg_pt_gp_member into se_lun This patch eliminates all se_port + t10_alua_tg_pt_gp_member usage, and converts current users to direct se_lun pointer dereference. This includes the removal of core_export_port(), core_release_port() core_dev_export() and core_dev_unexport(). Along with conversion of special case se_lun pointer dereference within PR ALL_TG_PT=1 and ALUA access state transition UNIT_ATTENTION handling. Also, update core_enable_device_list_for_node() to reference the new per se_lun->lun_deve_list when creating a new entry, or replacing an existing one via RCU. Signed-off-by: Christoph Hellwig Reviewed-by: Hannes Reinecke Signed-off-by: Nicholas Bellinger drivers/target/target_core_alua.c | 394 ++++++++++----------------- drivers/target/target_core_alua.h | 14 +- drivers/target/target_core_configfs.c | 11 +- drivers/target/target_core_device.c | 179 ++---------- drivers/target/target_core_fabric_configfs.c | 32 +-- drivers/target/target_core_internal.h | 12 +- drivers/target/target_core_pr.c | 56 ++-- drivers/target/target_core_spc.c | 48 ++-- drivers/target/target_core_stat.c | 299 ++++++++------------ drivers/target/target_core_tpg.c | 95 ++++--- drivers/target/target_core_transport.c | 34 +-- drivers/target/target_core_xcopy.c | 17 +- include/target/target_core_base.h | 74 +++-- 13 files changed, 458 insertions(+), 807 deletions(-) commit b3eeea6619a0ed4f37138661c49339b21361d397 Author: Bart Van Assche Date: Tue May 19 16:16:01 2015 +0200 target: Simplify LUN shutdown code Instead of starting a thread from transport_clear_lun_ref() that waits for LUN shutdown, wait in that function for LUN shutdown to finish. Additionally, change the return type of transport_clear_lun_ref() from int to void. Signed-off-by: Bart Van Assche Reviewed-by: Christoph Hellwig Signed-off-by: Nicholas Bellinger drivers/target/target_core_device.c | 1 - drivers/target/target_core_internal.h | 2 +- drivers/target/target_core_tpg.c | 2 -- drivers/target/target_core_transport.c | 23 +---------------------- include/target/target_core_base.h | 1 - 5 files changed, 2 insertions(+), 27 deletions(-) commit 3effdb9094fd06b9c61ecef08d610ae90805fd98 Author: Christoph Hellwig Date: Sun May 10 18:14:58 2015 +0200 target: simplify backend attribute implementation Consolidate the implementation of the backend attributes in a single file and single function per attribute show/store function instead of splitting it into multiple functions in multiple files. Also use the proper strto* helpers for exposed data types, add macros to implement the store methods for the most common data types and share the show methods between the two different attribute implementations. (Fix bogus store_pi_prot_format flag=0 return value - nab) Signed-off-by: Christoph Hellwig Signed-off-by: Nicholas Bellinger drivers/target/target_core_configfs.c | 552 ++++++++++++++++++++++++++++++---- drivers/target/target_core_device.c | 504 ------------------------------- include/target/target_core_backend.h | 29 -- 3 files changed, 486 insertions(+), 599 deletions(-) commit 5873c4d157400ade4052e9d7b6259fa592e1ddbf Author: Christoph Hellwig Date: Sun May 10 18:14:57 2015 +0200 target: consolidate backend attribute implementations Provide a common sets of dev_attrib attributes for all devices using the generic SPC/SBC parsers, and a second one with the minimal required read-only attributes for passthrough devices. The later is only used by pscsi for now, but will be wired up for the full-passthrough TCMU use case as well. Signed-off-by: Christoph Hellwig Signed-off-by: Nicholas Bellinger drivers/target/target_core_configfs.c | 169 ++++++++++++++++++++++++++ drivers/target/target_core_file.c | 38 +----- drivers/target/target_core_iblock.c | 38 +----- drivers/target/target_core_pscsi.c | 23 +--- drivers/target/target_core_rd.c | 38 +----- drivers/target/target_core_user.c | 23 +--- include/target/target_core_backend.h | 3 + include/target/target_core_backend_configfs.h | 118 ------------------ 8 files changed, 177 insertions(+), 273 deletions(-) commit 0a06d4309dc168dfa70cec3cf0cd9eb7fc15a2fd Author: Christoph Hellwig Date: Sun May 10 18:14:56 2015 +0200 target: simplify backend driver registration Rewrite the backend driver registration based on what we did to the fabric drivers: introduce a read-only struct target_bakckend_ops that the driver registers, which is then instanciate as a struct target_backend by the core. This allows the ops vector to be smaller and allows us to mark it const. At the same time the registration function can set up the configfs attributes, avoiding the need to add additional boilerplate code for that to the drivers. Signed-off-by: Christoph Hellwig Signed-off-by: Nicholas Bellinger drivers/target/target_core_configfs.c | 68 +++++++++++++------------ drivers/target/target_core_device.c | 6 +-- drivers/target/target_core_file.c | 16 ++---- drivers/target/target_core_hba.c | 96 ++++++++++++++++++++--------------- drivers/target/target_core_iblock.c | 18 ++----- drivers/target/target_core_internal.h | 16 ++++++ drivers/target/target_core_pscsi.c | 14 ++--- drivers/target/target_core_rd.c | 22 ++------ drivers/target/target_core_user.c | 11 ++-- include/target/target_core_backend.h | 22 ++------ include/target/target_core_base.h | 4 +- 11 files changed, 135 insertions(+), 158 deletions(-) commit 4624773765699ac3f4e0b918306b638cba385713 Author: Nicholas Bellinger Date: Sun May 24 00:48:54 2015 -0700 target: Drop left-over se_lun->lun_status Now that se_portal_group->tpg_lun_hlist is a RCU protected hlist, go ahead and drop the left-over lun->lun_status usage. Reported-by: Christoph Hellwig Reviewed-by: Hannes Reinecke Signed-off-by: Nicholas Bellinger drivers/target/target_core_tpg.c | 6 ------ include/target/target_core_base.h | 8 -------- 2 files changed, 14 deletions(-) commit df9766ca9da5d9c1f2bb4eea9c9f16a2e7e8e1a5 Author: Nicholas Bellinger Date: Fri May 22 02:05:19 2015 +0000 target: Only reset specific dynamic entries during lun_group creation This patch changes core_tpg_add_node_to_devs() to avoid unnecessarly resetting every se_dev_entry in se_node_acl->tpg_lun_hlist when the operation is driven by an explicit configfs se_lun->lun_group creation via core_dev_add_lun() to only update a single se_lun. Otherwise for the second core_tpg_check_initiator_node_acl() case, go ahead and continue to scan the full set of currently active se_lun in se_portal_group->tpg_lun_hlist. Reviewed-by: Hannes Reinecke Cc: Christoph Hellwig Cc: Sagi Grimberg Signed-off-by: Nicholas Bellinger drivers/target/target_core_device.c | 2 +- drivers/target/target_core_internal.h | 3 ++- drivers/target/target_core_tpg.c | 7 +++++-- 3 files changed, 8 insertions(+), 4 deletions(-) commit 84786546b6ff8d50c3e4c1ea877a872cf55d485a Author: Nicholas Bellinger Date: Sun Mar 8 08:04:44 2015 +0000 target: Drop unused se_lun->lun_acl_list Reviewed-by: Hannes Reinecke Cc: Christoph Hellwig Cc: Sagi Grimberg Signed-off-by: Nicholas Bellinger drivers/target/target_core_device.c | 15 --------------- drivers/target/target_core_tpg.c | 4 ---- include/target/target_core_base.h | 3 --- 3 files changed, 22 deletions(-) commit 22793de590ca23a1e49b0ce5353911121fcc32be Author: Nicholas Bellinger Date: Fri Mar 6 10:23:25 2015 +0000 target: Convert core_tpg_deregister to use list splice This patch converts core_tpg_deregister() to perform a list splice for any remaining dynamically generated se_node_acls attached to se_tpg, before calling kfree(nacl) to free memory. Reviewed-by: Hannes Reinecke Cc: Christoph Hellwig Cc: Sagi Grimberg Signed-off-by: Nicholas Bellinger drivers/target/target_core_tpg.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) commit 403edd78a2851ef95b24c0bf5151a4ab640898d7 Author: Nicholas Bellinger Date: Sun Mar 8 22:33:47 2015 +0000 target: Convert se_tpg->acl_node_lock to ->acl_node_mutex This patch converts se_tpg->acl_node_lock to struct mutex, so that ->acl_node_acl walkers in core_clear_lun_from_tpg() can block when calling core_disable_device_list_for_node(). It also updates core_dev_add_lun() to hold ->acl_node_mutex when calling core_tpg_add_node_to_devs() to build ->lun_entry_hlist for dynamically generated se_node_acl. Reviewed-by: Hannes Reinecke Cc: Christoph Hellwig Cc: Sagi Grimberg Signed-off-by: Nicholas Bellinger drivers/target/target_core_device.c | 14 ++++------ drivers/target/target_core_pr.c | 8 +++--- drivers/target/target_core_tpg.c | 51 +++++++++++++++++----------------- drivers/target/target_core_transport.c | 20 ++++++------- drivers/target/tcm_fc/tfc_conf.c | 4 +-- include/target/target_core_base.h | 2 +- 6 files changed, 48 insertions(+), 51 deletions(-) commit 6bb826121be244a5a3c8bd8b7d45c47df18810b7 Author: Nicholas Bellinger Date: Sun May 10 19:31:10 2015 -0700 target: Convert se_portal_group->tpg_lun_list[] to RCU hlist This patch converts the fixed size se_portal_group->tpg_lun_list[] to use modern RCU with hlist_head in order to support an arbitary number of se_lun ports per target endpoint. It includes dropping core_tpg_alloc_lun() from core_dev_add_lun(), and calling it directly from target_fabric_make_lun() to allocate a new se_lun. And add a new target_fabric_port_release() configfs item callback to invoke kfree_rcu() to release memory during se_lun->lun_group shutdown. Also now that se_node_acl->lun_entry_hlist is using RCU, convert existing tpg_lun_lock to struct mutex so core_tpg_add_node_to_devs() can perform RCU updater logic without releasing ->tpg_lun_mutex. Also, drop core_tpg_clear_object_luns() and it's single consumer in iscsi-target, which is duplicating TPG LUN shutdown logic and is current code results in a NOP. Finally, sbp-target and xen-scsiback fabric driver conversions are included, which are required due to the non-standard way they use ->tpg_lun_hlist. Reviewed-by: Hannes Reinecke Cc: Christoph Hellwig Cc: Sagi Grimberg Cc: Paul E. McKenney Cc: Chris Boot Signed-off-by: Nicholas Bellinger drivers/target/iscsi/iscsi_target_tpg.c | 2 - drivers/target/sbp/sbp_target.c | 97 +++++++++----------- drivers/target/sbp/sbp_target.h | 2 +- drivers/target/target_core_device.c | 92 ++----------------- drivers/target/target_core_fabric_configfs.c | 34 ++++--- drivers/target/target_core_internal.h | 6 +- drivers/target/target_core_tpg.c | 132 ++++++--------------------- drivers/xen/xen-scsiback.c | 27 +++--- include/target/target_core_base.h | 6 +- include/target/target_core_fabric.h | 1 - 10 files changed, 122 insertions(+), 277 deletions(-) commit 9fcb57f39c0cde70bcccdc1d998d3060297e911c Author: Christoph Hellwig Date: Sun Mar 29 09:39:03 2015 +0200 target/pr: cleanup core_scsi3_pr_seq_non_holder Clean up the mess of registered variables, and pass the isid mismatch flag explicitly instead of overloading the registration type. Signed-off-by: Christoph Hellwig Reviewed-by: Hannes Reinecke Signed-off-by: Nicholas Bellinger drivers/target/target_core_pr.c | 44 +++++++++++++++++------------------------ 1 file changed, 18 insertions(+), 26 deletions(-) commit 79dc9c9e865a7f8c14737453f112ced25deafdef Author: Nicholas Bellinger Date: Fri Mar 27 04:51:03 2015 +0000 target/pr: Change alloc_registration to avoid pr_reg_tg_pt_lun This patch changes __core_scsi3_do_alloc_registration() code to drop pr_reg->pr_reg_tg_pt_lun pointer usage in favor of a new pr_reg RPTI + existing pr_reg->pr_aptpl_target_lun used by APTPL metadata logic. It also includes changes to REGISTER, REGISTER_AND_MOVE and APTPL feature bit codepaths to use rcu_dereference_check() with the expected non-zero se_dev_entry->pr_kref reference held. Reviewed-by: Hannes Reinecke Cc: Christoph Hellwig Cc: Sagi Grimberg Signed-off-by: Nicholas Bellinger drivers/target/target_core_configfs.c | 6 +- drivers/target/target_core_pr.c | 131 ++++++++++++++++++---------------- include/target/target_core_base.h | 4 +- 3 files changed, 72 insertions(+), 69 deletions(-) commit 80bfdfa92481d431b199eff72788588d13a3988f Author: Nicholas Bellinger Date: Wed Mar 25 01:02:57 2015 -0700 target/pr: Use atomic bitop for se_dev_entry->deve_flags reservation check This patch converts the core_scsi3_pr_seq_non_holder() check for non reservation holding registrations to use an atomic bitop in ->deve_flags to determine if a registration is currently active. It also includes associated a set_bit() in __core_scsi3_add_registration() and clear_bit() in __core_scsi3_free_registration(), if se_dev_entry still exists, and has not already been released via se_dev_entry shutdown path in core_disable_device_list_for_node(). Also, clear_bit in core_disable_device_list_for_node as well to ensure the read-critical path in core_scsi3_pr_seq_non_holder() picks up the new state, preceeding the final kfree_rcu() call. Reported-by: Christoph Hellwig Reviewed-by: Hannes Reinecke Cc: Sagi Grimberg Signed-off-by: Nicholas Bellinger drivers/target/target_core_device.c | 1 + drivers/target/target_core_pr.c | 58 +++++++++++++++++++++++++------------ include/target/target_core_base.h | 3 +- 3 files changed, 42 insertions(+), 20 deletions(-) commit 29a05deebf6c2e3010934fb78ee65cab3d329470 Author: Nicholas Bellinger Date: Sun Mar 22 20:42:19 2015 -0700 target: Convert se_node_acl->device_list[] to RCU hlist This patch converts se_node_acl->device_list[] table for mappedluns to modern RCU hlist_head usage in order to support an arbitrary number of node_acl lun mappings. It converts transport_lookup_*_lun() fast-path code to use RCU read path primitives when looking up se_dev_entry. It adds a new hlist_head at se_node_acl->lun_entry_hlist for this purpose. For transport_lookup_cmd_lun() code, it works with existing per-cpu se_lun->lun_ref when associating se_cmd with se_lun + se_device. Also, go ahead and update core_create_device_list_for_node() + core_free_device_list_for_node() to use ->lun_entry_hlist. It also converts se_dev_entry->pr_ref_count access to use modern struct kref counting, and updates core_disable_device_list_for_node() to kref_put() and block on se_deve->pr_comp waiting for outstanding PR special-case PR references to drop, then invoke kfree_rcu() to wait for the RCU grace period to complete before releasing memory. So now that se_node_acl->lun_entry_hlist fast path access uses RCU protected pointers, go ahead and convert remaining non-fast path RCU updater code using ->lun_entry_lock to struct mutex to allow callers to block while walking se_node_acl->lun_entry_hlist. Finally drop the left-over core_clear_initiator_node_from_tpg() that originally cleared lun_access during se_node_acl shutdown, as post RCU conversion it now becomes duplicated logic. Reviewed-by: Hannes Reinecke Cc: Christoph Hellwig Cc: Sagi Grimberg Cc: Paul E. McKenney Signed-off-by: Nicholas Bellinger drivers/target/target_core_alua.c | 3 +- drivers/target/target_core_device.c | 356 ++++++++++++++------------- drivers/target/target_core_fabric_configfs.c | 43 ++-- drivers/target/target_core_internal.h | 8 +- drivers/target/target_core_pr.c | 72 +++--- drivers/target/target_core_pscsi.c | 7 +- drivers/target/target_core_spc.c | 18 +- drivers/target/target_core_stat.c | 197 +++++++-------- drivers/target/target_core_tpg.c | 75 +----- drivers/target/target_core_ua.c | 51 ++-- include/target/target_core_backend.h | 2 +- include/target/target_core_base.h | 27 +- 12 files changed, 415 insertions(+), 444 deletions(-) commit 0bcbbe679b66fee1b56def5cb30bfb4f616b1127 Author: Michal Kazior Date: Fri May 29 07:35:24 2015 +0200 ath10k: fix possible ps sleep crash If probing failed pci sleep timer could remain running and trigger after ath10k structures were freed causing invalid pointer dereference: BUG: unable to handle kernel paging request at ffffc90001c80004 IP: [] iowrite32+0x38/0x40 ... Call Trace: [] ? __ath10k_pci_sleep+0x48/0x60 [ath10k_pci] [] ath10k_pci_ps_timer+0x5e/0x80 [ath10k_pci] [] call_timer_fn+0x3e/0x120 [] ? ath10k_pci_wake+0x150/0x150 [ath10k_pci] [] run_timer_softirq+0x201/0x2e0 [] __do_softirq+0xaf/0x290 [] irq_exit+0x95/0xa0 [] smp_apic_timer_interrupt+0x46/0x60 [] apic_timer_interrupt+0x6e/0x80 Fixes: 77258d409ce4 ("ath10k: enable pci soc powersaving") Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/pci.c | 1 + 1 file changed, 1 insertion(+) commit 74fd5e30cc0b201a3800eb3743e059f34bd57fbf Author: Yangbo Lu Date: Mon Jun 1 13:47:12 2015 +0800 mmc: sdhci-of-esdhc: enable interrupt mode to detect card Enable interrupt mode to detect card instead of polling mode for P1020/P4080/P5020/P5040/T1040 by removing the quirk SDHCI_QUIRK_BROKEN_CARD_DETECTION. This could improve data transferring performance and avoid the call trace caused by polling card status sometime. Signed-off-by: Yangbo Lu Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-of-esdhc.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 4245afff8b241426792d60b5b9078583f52d4029 Author: Dong Aisheng Date: Wed May 27 18:13:31 2015 +0800 mmc: sdhci-esdhc-imx: add quirk SDHCI_QUIRK2_BROKEN_HS200 for imx6qdl The iMX6Q/DL can not support HS200 mode while iMX6SL and iMX6SX can, so introduce a new flag to distinguish them. Signed-off-by: Dong Aisheng Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-esdhc-imx.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit 913d4951a50fba6acd96491c5b2f089a69308a60 Author: Dong Aisheng Date: Wed May 27 18:13:30 2015 +0800 mmc: sdhci-esdhc-imx: add imx6sx support The imx6sx usdhc is derived from imx6sl, the difference is minor. imx6sx have the errata ESDHC_FLAG_ERR004536 fixed. So introduce a new compatible string for imx6sx to distinguish them. Signed-off-by: Dong Aisheng Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-esdhc-imx.c | 6 ++++++ 1 file changed, 6 insertions(+) commit e4a51cebf4dcae47a1312956fa8a237dc8efcb48 Author: Dong Aisheng Date: Wed May 27 18:13:29 2015 +0800 mmc: sdhci-esdhc-imx: using specific compatible string in binding doc Using specific compatible string in binding doc to make the binding more clear. It's also used to avoid checkpatch warning in the future like follows: WARNING: DT compatible string "fsl,imx6sx-usdhc" appears un-documented -- check ./Documentation/devicetree/bindings/ + { .compatible = "fsl,imx6sx-usdhc", .data = &usdhc_imx6sx_data, }, total: 0 errors, 1 warnings, 18 lines checked Signed-off-by: Dong Aisheng Signed-off-by: Ulf Hansson Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.txt | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit 18094430d6b50432591906784d51bb605982b8d8 Author: Dong Aisheng Date: Wed May 27 18:13:28 2015 +0800 mmc: sdhci-esdhc-imx: add ADMA Length Mismatch errata fix The uSDHC has an ADMA Length Mismatch errata ERR004536 which may cause ADMA work abnormally. The errata has already been fixed for i.MX6Q TO1.2 and i.MX6DL TO1.1 by enable the bit 7 in 0x6c register. Unfortunately this fix is not included in i.MX6SL. So we disable ADMA for i.MX6SL and use SDMA instead. Signed-off-by: Dong Aisheng Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-esdhc-imx.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) commit b7321042aa363daf58912ada174d05a53bf96059 Author: Dong Aisheng Date: Wed May 27 18:13:27 2015 +0800 mmc: sdhci-esdhc-imx: usdhc does not have missing card interrupt issue The usdhc does not have missing card interrupt issue, so don't execute workaround for usdhc. Signed-off-by: Dong Aisheng Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-esdhc-imx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 915be485bdf24f2261b4dc776625c930e1491d7a Author: Dong Aisheng Date: Wed May 27 18:13:26 2015 +0800 mmc: sdhci-esdhc-imx: merge the same register check into one place In esdhc_writel_le() function, there's duplicated checking of the same register as follows: "if (unlikely(reg == SDHCI_INT_ENABLE || reg == SDHCI_SIGNAL_ENABLE))". Merge them into one and remove the duplicated one. Signed-off-by: Dong Aisheng Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-esdhc-imx.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) commit b69587e2d5b09a192c45c604ea1f9e8d51f4c3a1 Author: Adrian Hunter Date: Fri Feb 6 14:13:01 2015 +0200 mmc: sdhci-pci: Enable HS400 for some Intel host controllers Enable detection of HS400 support via capability bit-63 for some Intel host controllers. Signed-off-by: Adrian Hunter Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-pci.c | 1 + 1 file changed, 1 insertion(+) commit e1bfad6d936d7149a83423e2a7244dd5771f27e7 Author: Adrian Hunter Date: Fri Feb 6 14:13:00 2015 +0200 mmc: sdhci-pci: Add support for drive strength selection for SPT Implement the select_drive_strength callback to provide drive strength selection for Intel SPT. Signed-off-by: Adrian Hunter Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-pci-data.c | 3 ++ drivers/mmc/host/sdhci-pci.c | 83 ++++++++++++++++++++++++++++++++++++++ drivers/mmc/host/sdhci-pci.h | 4 ++ include/linux/mmc/sdhci-pci-data.h | 2 + 4 files changed, 92 insertions(+) commit cb8496482e8886bbd6bd79462d8062db572b0473 Author: Adrian Hunter Date: Fri Feb 6 14:12:59 2015 +0200 mmc: sdhci: Add a callback to select drive strength Add a callbak to let host drivers select drive strength. Signed-off-by: Adrian Hunter Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci.c | 13 +++++++++++++ drivers/mmc/host/sdhci.h | 4 ++++ 2 files changed, 17 insertions(+) commit cc4f414c885cd04f7227ad9bcd6b18fd78d718d9 Author: Adrian Hunter Date: Fri Feb 6 14:12:58 2015 +0200 mmc: mmc: Add driver strength selection Add the ability to set eMMC driver strength for HS200 and HS400. Signed-off-by: Adrian Hunter Signed-off-by: Ulf Hansson drivers/mmc/core/mmc.c | 45 ++++++++++++++++++++++++++++++++++++++------- include/linux/mmc/mmc.h | 3 +++ 2 files changed, 41 insertions(+), 7 deletions(-) commit b097e07f57930eda774c83aa46e8e401686d01dc Author: Adrian Hunter Date: Fri Feb 6 14:12:57 2015 +0200 mmc: mmc: Read card's valid driver strength mask In preparation for supporing drive strength selection for eMMC, read the card's valid driver strengths. Note that though the SD spec uses the term "drive strength", the JEDEC eMMC spec uses the term "driver strength". Signed-off-by: Adrian Hunter Signed-off-by: Ulf Hansson drivers/mmc/core/mmc.c | 1 + include/linux/mmc/card.h | 1 + include/linux/mmc/mmc.h | 1 + 3 files changed, 3 insertions(+) commit 3853a042325e8f497c199020979c4fc824528c6e Author: Adrian Hunter Date: Fri Feb 6 14:12:56 2015 +0200 mmc: core: Record card drive strength In preparation for adding drive strength support for eMMC, add drive_strength to struct mmc_card to record the card drive strength for UHS-I modes and HS200 / HS400. For eMMC this will be needed when switching between HS200 and HS400. Signed-off-by: Adrian Hunter Signed-off-by: Ulf Hansson drivers/mmc/core/sd.c | 3 +++ drivers/mmc/core/sdio.c | 3 +++ include/linux/mmc/card.h | 1 + 3 files changed, 7 insertions(+) commit e23350b35deb77ef8e33c35dbb0ed1dab9e8ab86 Author: Adrian Hunter Date: Fri Feb 6 14:12:55 2015 +0200 mmc: core: Factor out common code in drive strength selection Make a new function out of common code used for drive strength selection. Signed-off-by: Adrian Hunter Signed-off-by: Ulf Hansson drivers/mmc/core/core.c | 38 ++++++++++++++++++++++++++++++++++++++ drivers/mmc/core/core.h | 2 ++ drivers/mmc/core/sd.c | 27 +++------------------------ drivers/mmc/core/sdio.c | 25 +++---------------------- 4 files changed, 46 insertions(+), 46 deletions(-) commit f168359efbb99d6f8591bb666d6510bb78df2d07 Author: Adrian Hunter Date: Fri Feb 6 14:12:54 2015 +0200 mmc: core: Add 'card' to drive strength selection callback In preparation for supporting also eMMC drive strength, add the 'card' as a parameter so that the callback can distinguish different types of cards if necessary. Signed-off-by: Adrian Hunter Signed-off-by: Ulf Hansson drivers/mmc/core/sd.c | 2 +- drivers/mmc/core/sdio.c | 2 +- include/linux/mmc/host.h | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) commit fa021cef1af64cb4ba11c3c0910ef45085c58016 Author: Adrian Hunter Date: Fri Feb 6 14:12:53 2015 +0200 mmc: core: Simplify card drive strength mask Card drive strength selection uses a callback to which a mask of supported drive strengths is passed. Currently, the bits are checked against the values in the SD specifications. That is not necessary because the callback will anyway match the mask against a valid value. Simplify by taking the mask as is but still ensuring that the default mandatory value (type B) is always supported. Signed-off-by: Adrian Hunter Signed-off-by: Ulf Hansson drivers/mmc/core/sd.c | 12 ++---------- drivers/mmc/core/sdio.c | 12 ++---------- 2 files changed, 4 insertions(+), 20 deletions(-) commit b4f30a174e1fda8118eda038b5d8d5260db36ad5 Author: Adrian Hunter Date: Fri Feb 6 14:12:52 2015 +0200 mmc: core: Allow card drive strength to be different to host Initialization of UHS-I modes for SD and SDIO cards employs a callback to allow the host driver to choose a drive strength value. Currently that assumes the card drive strength and host driver type must be the same value. Change to let the callback make that decision and return both the card drive strength and host driver type. Signed-off-by: Adrian Hunter Signed-off-by: Ulf Hansson drivers/mmc/core/sd.c | 33 +++++++++++++-------------------- drivers/mmc/core/sdio.c | 43 ++++++++++++++++++------------------------- include/linux/mmc/host.h | 3 ++- 3 files changed, 33 insertions(+), 46 deletions(-) commit 75e8a2288c4fabd6c2f752e8fd3bf7f60be7d3a4 Author: Adrian Hunter Date: Fri Feb 6 14:12:51 2015 +0200 mmc: core: Reset driver type to default IO state variable drv_type could be set during card initialization. Consequently, it must be reset to the default value when setting the initial state. Signed-off-by: Adrian Hunter Signed-off-by: Ulf Hansson drivers/mmc/core/core.c | 1 + 1 file changed, 1 insertion(+) commit 89d49a706ca417c55c046d2580403be578cadaab Author: Kuninori Morimoto Date: Thu May 14 07:22:46 2015 +0000 mmc: sh_mmcif: calculate best clock with parent clock MMCIF IP on R-Car series has parent clock which can be set several rate, and it was not implemented on old SH-Mobile series (= SH-Mobile series parent clock was fixed rate) R-Car series MMCIF can use more high speed access if it setups parent clock. This patch adds parent clock setup method. It will be used if DT has "max-frequency", and then, this driver assumes it is booted on R-Car Gen2 or later SoC. Because SH-Mobile series (which doesn't boot from DT) and R-Car series (which boots from DT) have different divider. Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Ulf Hansson [Ulf: Silence compiler warning] .../devicetree/bindings/mmc/renesas,mmcif.txt | 3 + drivers/mmc/host/sh_mmcif.c | 84 +++++++++++++++++++--- 2 files changed, 78 insertions(+), 9 deletions(-) commit 1b1a694d53cbe42eba4feb260eba4acc316c44f0 Author: Kuninori Morimoto Date: Thu May 14 07:21:36 2015 +0000 mmc: sh_mmcif: use sh_mmcif_xxx prefix for all functions Current sh_mmcif driver is using sh_mmcif_xxx and mmcif_xxx for functions. This patch used sh_mmcif_xxx for all functions. Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Ulf Hansson drivers/mmc/host/sh_mmcif.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) commit 585c3a5a0bccad2f52a37345217db9ab5b5a3273 Author: Kuninori Morimoto Date: Thu May 14 07:21:18 2015 +0000 mmc: sh_mmcif: add sh_mmcif_host_to_dev() macro and use it. Current sh_mmcif driver is directly using &host->pd->dev in all place. It is not big problem, but it is unreadable, and it can be cause of future bug. This patch adds new sh_mmcif_host_to_dev() and use it. Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Ulf Hansson drivers/mmc/host/sh_mmcif.c | 114 +++++++++++++++++++++++++++----------------- 1 file changed, 71 insertions(+), 43 deletions(-) commit 43e943a04049d8f4ee96a940517a5fcb0f558ad2 Author: Petri Gynther Date: Wed May 20 14:35:00 2015 -0700 mmc: sdhci: fix driver type B and D handling in sdhci_do_set_ios() sdhci_do_set_ios() doesn't currently program SDHCI_HOST_CONTROL2 register correctly when host->preset_enabled == false. Add code to handle the missing cases MMC_SET_DRIVER_TYPE_B and MMC_SET_DRIVER_TYPE_D. Signed-off-by: Petri Gynther Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit d9fbe003ead7205cfd6e623f90f3eb9a56a0d445 Author: Yangbo Lu Date: Fri May 15 10:46:02 2015 +0800 powerpc/dts: add eSDHC compatible list Add eSDHC compatible list for P2041/P3041/P4080/P5020/P5040. Signed-off-by: Yangbo Lu Acked-by: Scott Wood Signed-off-by: Ulf Hansson arch/powerpc/boot/dts/fsl/p2041si-post.dtsi | 1 + arch/powerpc/boot/dts/fsl/p3041si-post.dtsi | 1 + arch/powerpc/boot/dts/fsl/p4080si-post.dtsi | 1 + arch/powerpc/boot/dts/fsl/p5020si-post.dtsi | 1 + arch/powerpc/boot/dts/fsl/p5040si-post.dtsi | 1 + 5 files changed, 5 insertions(+) commit 75fda77b258f9aa90ce27fd7c8be2ecbdb7fc5d4 Author: Fabian Frederick Date: Mon May 18 19:52:58 2015 +0200 mmc: mmc-test: use swap() in mmc_test_nonblock_transfer() Use kernel.h macro definition. Signed-off-by: Fabian Frederick Signed-off-by: Ulf Hansson drivers/mmc/card/mmc_test.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 7c5209c315ea0f3102413ed1d6309be94b1e792f Author: Doug Anderson Date: Tue May 12 14:46:11 2015 -0700 mmc: core: Increase delay for voltage to stabilize from 3.3V to 1.8V Since the regulator used for the SDMMC IO voltage is not expected to draw a lot of current, most systems will probably use an inexpensive LDO for it. LDO regulators apparently have the feature that they don't actively drive the voltage down--they wait for other components in the system to drag the voltage down. Thus they will transition faster under heavy loads and slower under light loads. During an SDMMC voltage change from 3.3V to 1.8V, we are almost certainly under a light load. To be specific: * The regulator is hooked through pulls to CMD0-3 and DAT. Probably the CMD pulls are something like 47K and the DAT is something like 10K. * The card is supposed to be driving DAT0-3 low during voltage change which will draw _some_ current, but not a lot. * The regulator is also provided to the SDMMC host controller, but the SDMMC host controller is in open drain mode during the voltage change and so shouldn't be drawing much current. In order to keep the SDMMC host working properly (or for noise reasons), there might also be a capacitor attached to the SDMMC IO regulator. This also will have the effect of slowing down transitions of the regulator, especially under light loads. From experimental evidence, we've seen the voltage change fail if the card doesn't detect that the voltage fell to less than about 2.3V when we turn on the clock. On one device (that admittedly had a 47K CMD pullup instead of a 10K CMD pullup) we saw that the voltage was just about 2.3V after 5ms and thus the voltage change would sometimes fail. Doubling the delay gave margin and made the voltage change work 100% of the time, despite the slightly weaker CMD pull. At the moment submitting this as an RFC patch since my problem _could_ be fixed by increasing the pull strength (or using a smaller capacitor). However being a little bit more lenient to strange hardware could also be a good thing. Signed-off-by: Doug Anderson Acked-by: Mark Brown Signed-off-by: Ulf Hansson drivers/mmc/core/core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e6ac184bddf89be37644c066b3fc819b91f54d94 Author: Zhangfei Gao Date: Thu May 14 16:59:47 2015 +0800 mmc: sdhci-st: Fix modalias to make module auto-loading work Make the modalias match driver name, this is required to make module auto-loading work. Signed-off-by: Zhangfei Gao CC: Peter Griffin Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-st.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a7ca2b1643ee1dc107f2ecb05e0202077ce7a5b4 Author: Zhangfei Gao Date: Thu May 14 16:59:46 2015 +0800 mmc: dw_mmc: rockchip: Fix modalias to make module auto-loading work Make the modalias match driver name, this is required to make module auto-loading work. Signed-off-by: Zhangfei Gao CC: Doug Anderson Reviewed-by: Doug Anderson Signed-off-by: Jaehoon Chung Signed-off-by: Ulf Hansson drivers/mmc/host/dw_mmc-rockchip.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2fc546fd8ed0616bf9ec3172be9d0cbc7052a071 Author: Zhangfei Gao Date: Thu May 14 16:59:45 2015 +0800 mmc: dw_mmc: exynos: Fix modalias to make module auto-loading work Make the modalias match driver name, this is required to make module auto-loading work. Signed-off-by: Zhangfei Gao Signed-off-by: Jaehoon Chung Signed-off-by: Ulf Hansson drivers/mmc/host/dw_mmc-exynos.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7026fd663b9032aed092a40209e959d414ce53b6 Author: Zhangfei Gao Date: Thu May 14 16:59:44 2015 +0800 mmc: dw_mmc: k3: Fix modalias to make module auto-loading work Make the modalias match driver name, this is required to make module auto-loading work. Signed-off-by: Zhangfei Gao Signed-off-by: Jaehoon Chung Signed-off-by: Ulf Hansson drivers/mmc/host/dw_mmc-k3.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit eff8f2f5df1c509c873cdc70c84eb2ee75b41e65 Author: Lars-Peter Clausen Date: Wed May 6 20:31:22 2015 +0200 mmc: dw_mmc: Use core to handle absent write protect line Use the new MMC_CAP2_NO_WRITE_PROTECT to let the core handle the case where no write protect line is present instead of having custom driver code to handle it. dw_mci_of_get_slot_quirks() is slightly refactored to directly modify the mmc_host capabilities instead of returning a quirk mask. Signed-off-by: Lars-Peter Clausen Signed-off-by: Jaehoon Chung Signed-off-by: Ulf Hansson drivers/mmc/host/dw_mmc.c | 53 +++++++++++++++------------------------------- drivers/mmc/host/dw_mmc.h | 3 --- include/linux/mmc/dw_mmc.h | 6 ------ 3 files changed, 17 insertions(+), 45 deletions(-) commit 0293efddaddfcbbbf01ce3537549bc21fcca0a50 Author: Zhangfei Gao Date: Thu May 14 16:45:19 2015 +0800 mmc: dw_mmc: k3: support hi6220 Support hi6220, tested on hikey board emmc: support hs sd: support hs, sdr12, sdr25 Signed-off-by: Jorge A. Ramirez-Ortiz Signed-off-by: Dan Yuan Signed-off-by: Zhangfei Gao Signed-off-by: Jaehoon Chung Signed-off-by: Ulf Hansson drivers/mmc/host/dw_mmc-k3.c | 103 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 101 insertions(+), 2 deletions(-) commit 8f7849c4f9aa2fbed629736c8930d8d1d2c426bc Author: Zhangfei Gao Date: Thu May 14 16:45:18 2015 +0800 mmc: dw_mmc: add switch_voltage switch_voltage is required on some platform since special register accessing Signed-off-by: Jorge A. Ramirez-Ortiz Signed-off-by: Dan Yuan Signed-off-by: Zhangfei Gao Signed-off-by: Jaehoon Chung Signed-off-by: Ulf Hansson drivers/mmc/host/dw_mmc.c | 4 ++++ drivers/mmc/host/dw_mmc.h | 2 ++ 2 files changed, 6 insertions(+) commit d9c7eb3895f755ab0e458a216961964ebffd9edb Author: Zhangfei Gao Date: Thu May 14 16:45:17 2015 +0800 Document: dw_mmc-k3: add document of hi6220 mmc Add bindings for hi6220 mmc support Signed-off-by: Zhangfei Gao Signed-off-by: Jaehoon Chung Signed-off-by: Ulf Hansson .../devicetree/bindings/mmc/k3-dw-mshc.txt | 28 ++++++++++++++++++++++ 1 file changed, 28 insertions(+) commit 087de9ed3d076d071f09b09ef77d6107c1e1df82 Author: Kuninori Morimoto Date: Mon May 11 07:35:28 2015 +0000 mmc: cast unsigned int to typeof(sector_t) to avoid unexpected error card->csd.capacity is defined as "unsigned int", and sector_t is defined as "u64" or "unsigned long" (depends on CONFIG_LBDAF). Thus, sector_t data might have strange data (see below). This patch cast it to typeof(sector_t) Special thanks to coverity ex) if sector_t was u64 unsigned int data; sector_t sector; data = 0x800000; sector = (data << 8); // 0xffffffff80000000 sector = (((typeof(sector_t))data) << 8); // 0x80000000 or data = 0x80000000; sector = (data << 8); // 0x0 sector = (((typeof(sector_t))data) << 8); // 0x8000000000 Signed-off-by: Kuninori Morimoto Signed-off-by: Ulf Hansson drivers/mmc/card/block.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit ded8a5f9613dbb62cd74f9f26a9caa3193eb3764 Author: Kuninori Morimoto Date: Mon May 11 07:34:53 2015 +0000 mmc: cast u8 to unsigned long long to avoid unexpected error card->ext_csd.enhanced_area_offset is defined as "unsigned long long", and, ext_csd[] is defined as u8. unsigned long long data might have strange data if first bit of ext_csd[] was 1. this patch cast it to (unsigned long long) Special thanks to coverity ex) u8 data8; u64 data64; data8 = 0x80; data64 = (data8 << 24); // 0xffffffff80000000 data64 = (((unsigned long long)data8) << 24); // 0x80000000; Signed-off-by: Kuninori Morimoto Signed-off-by: Ulf Hansson drivers/mmc/core/mmc.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit bf3a35ac8038d6f3104c4b9fd8a6970c6b42b56f Author: Fabio Estevam Date: Sat May 9 18:44:51 2015 -0300 mmc: host: sdhci: Use BUG_ON() 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. More information about semantic patching is available at http://coccinelle.lip6.fr/ Signed-off-by: Fabio Estevam Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 6d91641613a66681d0b291e6f848107d289f70e8 Author: Fabio Estevam Date: Sat May 9 18:44:50 2015 -0300 mmc: host: mxcmmc: Simplify a trivial if-return sequence Simplify a trivial if-return sequence. Possibly combine with a preceding function call. The semantic patch that makes this change is available in scripts/coccinelle/misc/simple_return.cocci. More information about semantic patching is available at http://coccinelle.lip6.fr/ Signed-off-by: Fabio Estevam Signed-off-by: Ulf Hansson drivers/mmc/host/mxcmmc.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit 30a9b9e1efe63e883063afc0f44a6f204b90c334 Author: Fabio Estevam Date: Sat May 9 18:44:49 2015 -0300 mmc: card: mmc_test: Simplify a trivial if-return sequence Simplify a trivial if-return sequence. Possibly combine with a preceding function call. The semantic patch that makes this change is available in scripts/coccinelle/misc/simple_return.cocci. More information about semantic patching is available at http://coccinelle.lip6.fr/ Signed-off-by: Fabio Estevam Signed-off-by: Ulf Hansson drivers/mmc/card/mmc_test.c | 100 +++++++------------------------------------- 1 file changed, 15 insertions(+), 85 deletions(-) commit 7ccddeb08a632c713eca0a5f13bcbfa7e6e83982 Author: Fabio Estevam Date: Sat May 9 09:57:09 2015 -0300 mmc: sdhci-esdhc-imx: Do not break platform data boards The only user of this driver that has not been converted to fully device tree is the i.MX35 SoC. There is a i.MX35-based board (mach-pcm043.c) that uses platform data to pass wp_gpio and cd_gpio information. Commit 8d86e4fcccf61ba ("mmc: sdhci-esdhc-imx: Call mmc_of_parse()") broke the platform data case by removing mmc_gpio_request_ro() and mmc_gpio_request_cd(), so restore the functionality for the non-dt case. Also, restore the check for ESDHC_CD_CONTROLLER so that we can still support the "fsl,cd-controller" property. Signed-off-by: Fabio Estevam Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-esdhc-imx.c | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) commit 15064119273735c115fba381823b0746508bae3a Author: Fabio Estevam Date: Sat May 9 09:57:08 2015 -0300 mmc: sdhci-esdhc-imx: Move mmc_of_parse() to the dt probe mmc_of_parse() should be placed inside sdhci_esdhc_imx_probe_dt() as it suits only for the dt case. Signed-off-by: Fabio Estevam Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-esdhc-imx.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit 19f4424677455a01b93163975cfbcffa9adb3336 Author: Lars-Peter Clausen Date: Wed May 6 20:31:20 2015 +0200 mmc: dt: Allow to specify that no write protect signal is present Allow to specify in the device-tree that no physical write-protect signal is connected to a particular instance of a MMC controller. Setting the property will cause the core will assume that the SD card is always read-write. The name for the new property is 'disable-wp' and was chosen based on the property with the same function from the Synopsys designware mobile storage host controller DT bindings specification. Signed-off-by: Lars-Peter Clausen Cc: Rob Herring Cc: Pawel Moll Cc: Mark Rutland Cc: Ian Campbell Cc: Kumar Gala Signed-off-by: Ulf Hansson Documentation/devicetree/bindings/mmc/mmc.txt | 5 +++++ drivers/mmc/core/host.c | 3 +++ 2 files changed, 8 insertions(+) commit 9f6e0bff2afb52a4c29f5ca8a4db01810357974e Author: Lars-Peter Clausen Date: Wed May 6 20:31:19 2015 +0200 mmc: Add support for disabling write-protect detection It is not uncommon to see systems where there is no physical write-protect signal (e.g. when using eMMC or microSD card slots). For some controllers, which have a dedicated write-protection detection logic (like SDHCI controllers), the get_ro() callback can return bogus data in such a case. Instead of handling this on a per controller basis this patch adds a new capability flag to the MMC core that can be set to specify that the result of get_ro() is invalid. When the flag is set the core will not call get_ro() and assume that the card is always read-write. Signed-off-by: Lars-Peter Clausen Signed-off-by: Ulf Hansson drivers/mmc/core/sd.c | 30 +++++++++++++++++++++++------- include/linux/mmc/host.h | 1 + 2 files changed, 24 insertions(+), 7 deletions(-) commit 0250fdf257b1e5febba19b7cc536a3c9431e50bf Author: Adrian Hunter Date: Thu May 7 13:10:25 2015 +0300 mmc: core: Don't print reset warning if reset is not supported Check the error code for EOPNOTSUPP and do not print reset warning in that case. Signed-off-by: Adrian Hunter Signed-off-by: Ulf Hansson drivers/mmc/core/core.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit b8360a4945c49c07568892b5958c08e01bf7d6d2 Author: Adrian Hunter Date: Thu May 7 13:10:24 2015 +0300 mmc: block: Retry errored data requests when re-tuning is needed Retry errored data requests when re-tuning is needed and add a flag to struct mmc_blk_request so that the retry is only done once. Signed-off-by: Adrian Hunter Signed-off-by: Ulf Hansson drivers/mmc/card/block.c | 11 ++++++++++- drivers/mmc/card/queue.h | 1 + 2 files changed, 11 insertions(+), 1 deletion(-) commit 6f398ad2075d9af4158d37442e9ca22e528f06c1 Author: Adrian Hunter Date: Thu May 7 13:10:23 2015 +0300 mmc: block: Check re-tuning in the recovery path If re-tuning is needed, do it in the recovery path to give recovery commands a better chance of success. Signed-off-by: Adrian Hunter Signed-off-by: Ulf Hansson drivers/mmc/card/block.c | 3 +++ 1 file changed, 3 insertions(+) commit bd11e8bd03cae9e0499c34f67c55408566f6a089 Author: Adrian Hunter Date: Thu May 7 13:10:22 2015 +0300 mmc: core: Flag re-tuning is needed on CRC errors CRC errors could possibly be alleviated by re-tuning so flag re-tuning needed in those cases. Note this has no effect if re-tuning has not been enabled. Signed-off-by: Adrian Hunter Signed-off-by: Ulf Hansson drivers/mmc/core/core.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 66c39dfc92f9d35ed9f713833156547842086891 Author: Adrian Hunter Date: Thu May 7 13:10:21 2015 +0300 mmc: sdhci: Change to new way of doing re-tuning Make use of mmc core support for re-tuning instead of doing it all in the sdhci driver. This patch also changes to flag the need for re-tuning always after runtime suspend when tuning has been used at initialization. Previously it was only done if the re-tuning timer was in use. Signed-off-by: Adrian Hunter Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci.c | 112 ++++++----------------------------------------- drivers/mmc/host/sdhci.h | 3 -- 2 files changed, 13 insertions(+), 102 deletions(-) commit 6376f69d20a6905c1d83be451065f70200490b98 Author: Adrian Hunter Date: Thu May 7 13:10:20 2015 +0300 mmc: core: Add support for HS400 re-tuning HS400 re-tuning must be done in HS200 mode. Add the ability to switch from HS400 mode to HS200 mode before re-tuning and switch back to HS400 after re-tuning. Signed-off-by: Adrian Hunter Signed-off-by: Ulf Hansson drivers/mmc/core/core.h | 2 ++ drivers/mmc/core/host.c | 17 ++++++++++ drivers/mmc/core/mmc.c | 88 +++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 107 insertions(+) commit ed16f58dc00d47439c201ab18ca4d981210bcafd Author: Adrian Hunter Date: Thu May 7 13:10:19 2015 +0300 mmc: core: Separate out the mmc_switch status check so it can be re-used Make a separate function to do the mmc_switch status check so it can be re-used. This is preparation for adding support for HS400 re-tuning. Signed-off-by: Adrian Hunter Signed-off-by: Ulf Hansson drivers/mmc/core/mmc_ops.c | 30 ++++++++++++++++-------------- drivers/mmc/core/mmc_ops.h | 1 + 2 files changed, 17 insertions(+), 14 deletions(-) commit 436f8daa6f5a2943a20df8f3447da250b46f0d87 Author: Adrian Hunter Date: Thu May 7 13:10:18 2015 +0300 mmc: mmc: Hold re-tuning in mmc_sleep() The sleep command is issued after deselecting the card, but re-tuning won't work on a deselected card so re-tuning must be held. Signed-off-by: Adrian Hunter Signed-off-by: Ulf Hansson drivers/mmc/core/mmc.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit 66073d8671c41fb0bc8c6e36531b4eafb70c990e Author: Adrian Hunter Date: Thu May 7 13:10:17 2015 +0300 mmc: core: Hold re-tuning while bkops ongoing Hold re-tuning during bkops to prevent it from conflicting with the busy state. Signed-off-by: Adrian Hunter Signed-off-by: Ulf Hansson drivers/mmc/core/core.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 8f11d1064e01e1c8bf33ffef86072c2cb0c05b8c Author: Adrian Hunter Date: Thu May 7 13:10:16 2015 +0300 mmc: core: Hold re-tuning during erase commands Hold re-tuning during erase commands to prevent it from conflicting with the sequence of commands. Signed-off-by: Adrian Hunter Signed-off-by: Ulf Hansson drivers/mmc/core/core.c | 3 +++ 1 file changed, 3 insertions(+) commit c6dbab9cb58f5519c65867c4b371e1ee730a8451 Author: Adrian Hunter Date: Thu May 7 13:10:15 2015 +0300 mmc: core: Hold re-tuning during switch commands Hold re-tuning during switch commands to prevent it from conflicting with the busy state or the CMD13 verification. Signed-off-by: Adrian Hunter Signed-off-by: Ulf Hansson drivers/mmc/core/mmc_ops.c | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) commit 90a81489b0a9d7b56df2dcf68498fd3a03deb354 Author: Adrian Hunter Date: Thu May 7 13:10:14 2015 +0300 mmc: core: Add support for re-tuning before each request At the start of each request, re-tune if needed and then hold off re-tuning again until the request is done. Note that though there is one function that starts requests (mmc_start_request) there are two that wait for the request to be done (mmc_wait_for_req_done and mmc_wait_for_data_req_done). Also note that mmc_wait_for_data_req_done can return even when the request is not done (which allows the block driver to prepare a newly arrived request while still waiting for the previous request). This patch ensures re-tuning is held for the duration of a request. Subsequent patches will also hold re-tuning at other times when it might cause a conflict. In addition, possibly a command is failing because re-tuning is needed. Use mmc_retune_recheck() to check re-tuning. At that point re-tuning is held, at least by the request, so mmc_retune_recheck() flags host->retune_now if the hold count is 1. Signed-off-by: Adrian Hunter Signed-off-by: Ulf Hansson drivers/mmc/core/core.c | 35 ++++++++++++++++++++++++++++------- 1 file changed, 28 insertions(+), 7 deletions(-) commit 79d5a65aeea43920bf3ff60791f317570dd6f54f Author: Adrian Hunter Date: Thu May 7 13:10:13 2015 +0300 mmc: core: Enable / disable re-tuning Enable re-tuning when tuning is executed and disable re-tuning when card is no longer initialized. In the case of SDIO suspend, the card can keep power. In that case, re-tuning need not be disabled, but, if a re-tuning timer is being used, ensure it is disabled and assume that re-tuning will be needed upon resume since it is not known how long the suspend will last. Signed-off-by: Adrian Hunter Signed-off-by: Ulf Hansson drivers/mmc/core/core.c | 4 ++++ drivers/mmc/core/sdio.c | 6 +++++- 2 files changed, 9 insertions(+), 1 deletion(-) commit dfa13ebbe3340e538b988f5608efd9ff2ca7fc35 Author: Adrian Hunter Date: Thu May 7 13:10:12 2015 +0300 mmc: host: Add facility to support re-tuning Currently, there is core support for tuning during initialization. There can also be a need to re-tune periodically (e.g. sdhci) or to re-tune after the host controller is powered off (e.g. after PM runtime suspend / resume) or to re-tune in response to CRC errors. The main requirements for re-tuning are: - ability to enable / disable re-tuning - ability to flag that re-tuning is needed - ability to re-tune before any request - ability to hold off re-tuning if the card is busy - ability to hold off re-tuning if re-tuning is in progress - ability to run a re-tuning timer To support those requirements 7 members are added to struct mmc_host: unsigned int can_retune:1; /* re-tuning can be used */ unsigned int doing_retune:1; /* re-tuning in progress */ unsigned int retune_now:1; /* do re-tuning at next req */ int need_retune; /* re-tuning is needed */ int hold_retune; /* hold off re-tuning */ unsigned int retune_period; /* re-tuning period in secs */ struct timer_list retune_timer; /* for periodic re-tuning */ need_retune is an integer so it can be set without needing synchronization. hold_retune is a integer to allow nesting. Various simple functions are provided to set / clear those variables. Subsequent patches take those functions into use. Signed-off-by: Adrian Hunter Signed-off-by: Ulf Hansson drivers/mmc/core/host.c | 68 ++++++++++++++++++++++++++++++++++++++++++++++++ drivers/mmc/core/host.h | 6 +++++ include/linux/mmc/host.h | 23 ++++++++++++++++ 3 files changed, 97 insertions(+) commit 59d22309c46e807cef8d892316f6d08b715d6652 Author: Axel Lin Date: Tue May 5 17:11:54 2015 +0800 mmc: sdhci-{pxav2,pxav3}: Use of_match_ptr() macro This eliminates having an #ifdef returning NULL for the case when OF is disabled. Signed-off-by: Axel Lin Acked-by: Jisheng Zhang Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-pxav2.c | 4 +--- drivers/mmc/host/sdhci-pxav3.c | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) commit 308f3f8d8112ea9af6e10564f4012f2d1f94f062 Author: Suman Tripathi Date: Mon May 4 19:09:51 2015 +0530 mmc: sdhci-of-arasan: Add the support for sdhci-arasan4.9a This patch adds the quirks and compatible string in sdhci-of-arasan.c to support sdhci-arasan4.9a version of controller. Signed-off-by: Suman Tripathi Reviewed-by: Michal Simek Acked-by: Arnd Bergmann Signed-off-by: Ulf Hansson Documentation/devicetree/bindings/mmc/arasan,sdhci.txt | 3 ++- drivers/mmc/host/sdhci-of-arasan.c | 7 +++++++ 2 files changed, 9 insertions(+), 1 deletion(-) commit 4d0aa49157a38eb2be8a2ed3bf9900afa796b8d5 Author: Krzysztof Kozlowski Date: Sat May 2 00:49:22 2015 +0900 mmc: sdhci-s3c: 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: Ulf Hansson drivers/mmc/host/sdhci-s3c.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f8cbf461f9fa8649ef3aae6068f303024cd4fca8 Author: Krzysztof Kozlowski Date: Sat May 2 00:49:21 2015 +0900 mmc: sdhci-imx: 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: Ulf Hansson drivers/mmc/host/sdhci-esdhc-imx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6a643206ef5bb509a50902aa1b339eee1fc018e6 Author: Krzysztof Kozlowski Date: Sat May 2 00:49:20 2015 +0900 mmc: s3cmci: 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: Ulf Hansson drivers/mmc/host/s3cmci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f2483b0d196ce2d967a92b7b1217553550d6d053 Author: Krzysztof Kozlowski Date: Sat May 2 00:49:19 2015 +0900 mmc: rtsx: 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: Ulf Hansson drivers/mmc/host/rtsx_pci_sdmmc.c | 2 +- drivers/mmc/host/rtsx_usb_sdmmc.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit f61fcc32a989ef8dc1fefbc2fbc4cb6b1b38353a Author: Krzysztof Kozlowski Date: Sat May 2 00:49:18 2015 +0900 mmc: mxs: 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: Ulf Hansson drivers/mmc/host/mxs-mmc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ed425fc46b953876d11e40c1adb24cc42cfd0911 Author: Krzysztof Kozlowski Date: Sat May 2 00:49:17 2015 +0900 mmc: davinci: 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: Ulf Hansson drivers/mmc/host/davinci_mmc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a1b0b977d2b2b9248ae26df0c7987d1696028309 Author: Weijun Yang Date: Mon Apr 27 08:15:14 2015 +0000 mmc: sdhci-sirf: fake version and capbility registers chips have some issues for version and capbility registers, here we fake them. Signed-off-by: Weijun Yang Signed-off-by: Barry Song Signed-off-by: Ulf Hansson drivers/mmc/host/Kconfig | 1 + drivers/mmc/host/sdhci-sirf.c | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) commit d1ba44a4232aa6a95c19b394df53b07b0d61c9c8 Author: Weijun Yang Date: Mon Apr 27 08:15:13 2015 +0000 mmc: sdhci-sirf: fix the tuning count in platform_execute_tuning hardware has 16bit to record the tuning count, so fix it to 16384. at the same time, tuned_phases[SIRF_TUNING_COUNT] is useless as the array is never used, so move it to a variant. Signed-off-by: Weijun Yang Signed-off-by: Barry Song Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-sirf.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit c4b13fb06a03e66d0d05720786b38faa8f8642df Author: Ben Hutchings Date: Mon Apr 27 00:01:53 2015 +0100 MAINTAINERS: mmc: Update Ian Molton's address for tmio_mmc driver Ian no longer works for Codethink so the current address doesn't work. Signed-off-by: Ben Hutchings Signed-off-by: Ulf Hansson MAINTAINERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit de501af98dfab9c41417bbf8b080b79110a4958c Author: Ian Molton Date: Mon Apr 27 00:01:36 2015 +0100 mmc: TMIO: Use devm_request_irq() Clean up resource allocation and freeing. Signed-off-by: Ian Molton Signed-off-by: Ben Hutchings Signed-off-by: Ulf Hansson drivers/mmc/host/tmio_mmc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 7df56bbb0e86f81faaf2ee5bf126c2fb5a0e3980 Author: Ian Molton Date: Mon Apr 27 00:01:17 2015 +0100 mmc: TMIO: Fix I/O mapping leak on error using devm_ioremap() Signed-off-by: Ian Molton [bwh: Forward-ported to 4.0] Signed-off-by: Ben Hutchings Signed-off-by: Ulf Hansson drivers/mmc/host/tmio_mmc_pio.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 25db67e2ce2fdf43a99d89d201c356267ab06bf7 Author: Ian Molton Date: Mon Apr 27 00:01:06 2015 +0100 mmc: TMIO: Ensure MFD cell is disabled on probe error path Signed-off-by: Ian Molton Signed-off-by: Ben Hutchings Signed-off-by: Ulf Hansson drivers/mmc/host/tmio_mmc.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 2dbf1dc305d5881d743a64255c406ce1c970e728 Author: Axel Lin Date: Fri Apr 24 15:02:00 2015 +0800 mmc: sdhci_f_sdh30: Fix the size passed to sdhci_alloc_host sdhci_alloc_host() takes priv_size rather than sizeof(struct sdhci_host) + priv_size. Signed-off-by: Axel Lin Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci_f_sdh30.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit cee4e7a5c0e90bb897238e6e181c7192b691bb7f Author: Axel Lin Date: Fri Apr 24 15:00:29 2015 +0800 mmc: sdhci_f_sdh30: Staticize local functions Make local functions static. Signed-off-by: Axel Lin Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci_f_sdh30.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit bd455029d01cb55dca62129282466ccea3698813 Author: Joakim Tjernlund Date: Mon Apr 20 23:12:13 2015 +0200 mmc: sdhci-of-esdhc: Pre divider starts at 1 For PowerPC esdhc pre divider starts at 1, fixing the increases the actual clock from 40KHz to 50 KHz. Signed-off-by: Joakim Tjernlund Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-of-esdhc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 163f52647a0f7e34e803b51456c60deedd26ca1d Author: Rajkumar Manoharan Date: Fri May 29 17:51:53 2015 +0300 ath10k: bypass PLL setting on target init for QCA9888 Some of of qca988x solutions are having global reset issue during target initialization. Bypassing PLL setting before downloading firmware and letting the SoC run on REF_CLK is fixing the problem. Corresponding firmware change is also needed to set the clock source once the target is initialized. Since 10.2.4 firmware is having this ROM patch, applying skip_clock_init only for 10.2.4 firmware versions. Signed-off-by: Rajkumar Manoharan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.c | 16 ++++++++++++++++ drivers/net/wireless/ath/ath10k/core.h | 3 +++ 2 files changed, 19 insertions(+) commit e892b75ff579a0c07b633f2e234aeecf78a93a37 Author: Guenter Roeck Date: Wed May 27 16:17:19 2015 -0700 hwmon: (atxp1) Drop auto-detection Auto-detection for this chip is highly unreliable, and one of its I2C addresses can also be used by EEPROMs, increasing the risk for false positives even more. Drop auto-detection entirely to remove the risk. Reviewed-by: Jean Delvare Signed-off-by: Guenter Roeck drivers/hwmon/atxp1.c | 55 +++++++++------------------------------------------ 1 file changed, 9 insertions(+), 46 deletions(-) commit ea33a5e7718aa0bd2fa82ff44489ec19badf70f0 Author: Guenter Roeck Date: Thu May 28 10:51:46 2015 -0700 hwmon: (atxp1) Drop FSF mailing address The FSF mailing address may change and does not provide any real value. Reviewed-by: Jean Delvare Signed-off-by: Guenter Roeck drivers/hwmon/atxp1.c | 5 ----- 1 file changed, 5 deletions(-) commit 1376e2c3d7df80c3fa0574a5320f79b84c8fe880 Author: Geert Uytterhoeven Date: Tue May 5 18:32:21 2015 +0200 hwmon: 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: Jean Delvare Cc: Guenter Roeck Cc: lm-sensors@lm-sensors.org Signed-off-by: Guenter Roeck drivers/hwmon/Kconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 9c40723e72ff3c009d2d487b2e8945e4dfe74e62 Author: Krzysztof Kozlowski Date: Sat May 2 00:56:23 2015 +0900 hwmon: (sht15) 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: Guenter Roeck drivers/hwmon/sht15.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9c2cbcec859dcf86dd02662aa12bcd4d6e14c5f4 Author: Krzysztof Kozlowski Date: Sat May 2 00:56:22 2015 +0900 hwmon: (max197) 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: Guenter Roeck drivers/hwmon/max197.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 887ee43477e4e327dbcd2aabc2d78a5116ed8a33 Author: Beomho Seo Date: Thu Apr 30 13:07:43 2015 +0900 hwmon: (ntc_thermistor) Add support for ncpXXwf104 This patch adds support for the ntc thermistor NCPXXWF104 series. Cc: Jean Delvare Cc: Guenter Roeck Signed-off-by: Beomho Seo Signed-off-by: Guenter Roeck .../devicetree/bindings/hwmon/ntc_thermistor.txt | 1 + Documentation/hwmon/ntc_thermistor | 6 ++- drivers/hwmon/Kconfig | 4 +- drivers/hwmon/ntc_thermistor.c | 44 ++++++++++++++++++++++ include/linux/platform_data/ntc_thermistor.h | 1 + 5 files changed, 52 insertions(+), 4 deletions(-) commit 493be55ac3d81f9c32832237288eb397a9993d5d Author: Vaishali Thakkar Date: Mon Jun 1 10:28:37 2015 +0530 xen-netfront: Use setup_timer Use the timer API function setup_timer instead of structure field assignments to initialize a timer. A simplified version of the Coccinelle semantic patch that performs this transformation is as follows: @change@ expression e, func, da; @@ -init_timer (&e); +setup_timer (&e, func, da); -e.data = da; -e.function = func; Signed-off-by: Vaishali Thakkar Signed-off-by: David S. Miller drivers/net/xen-netfront.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit f7f35c0209b579256accb16c63f56510773f6e3e Merge: f16e9d8 8ba3846 Author: David S. Miller Date: Sun May 31 21:47:23 2015 -0700 Merge branch 'rds-next' Sowmini Varadhan says: ==================== net/rds: SOL_RDS socket option to explicitly select transport Today the underlying transport (TCP or IB) for a PF_RDS socket is implicitly selected based on the local address used to bind(2) the PF_RDS socket. This results in some non-deterministic behavior when there are un-numbered and IPoIB interfaces sharing the same IP address. It also places the constraint that the IB interface must have an IP address (and thus, IPoIB) configured on it. The non-determinism may be avoided by providing the user-space application a socket option that allows it to explicitly select the transport prior to bind(2). Patch 1 of this series provides the constant definitions needed by the application via . Patch 2 provides the setsockopt support, and Patch 3 provides the getsockopt support. ==================== Signed-off-by: David S. Miller commit 8ba38460f363e4d26d666aae9bc7fd3afa5f8e43 Author: Sowmini Varadhan Date: Fri May 29 17:28:09 2015 -0400 net/rds Add getsockopt support for SO_RDS_TRANSPORT The currently attached transport for a PF_RDS socket may be obtained from user space by invoking getsockopt(2) using the SO_RDS_TRANSPORT option at the SOL_RDS level. The integer optval returned will be one of the RDS_TRANS_* constants defined in linux/rds.h. Signed-off-by: Sowmini Varadhan Signed-off-by: David S. Miller net/rds/af_rds.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit d97dac54bf83b2a3df85fba37595e355627e0f2b Author: Sowmini Varadhan Date: Fri May 29 17:28:08 2015 -0400 net/rds: Add setsockopt support for SO_RDS_TRANSPORT An application may deterministically attach the underlying transport for a PF_RDS socket by invoking setsockopt(2) with the SO_RDS_TRANSPORT option at the SOL_RDS level. The integer argument to setsockopt must be one of the RDS_TRANS_* transport types, e.g., RDS_TRANS_TCP. The option must be specified before invoking bind(2) on the socket, and may only be used once on the socket. An attempt to set the option on a bound socket, or to invoke the option after a successful SO_RDS_TRANSPORT attachment, will return EOPNOTSUPP. Signed-off-by: Sowmini Varadhan Signed-off-by: David S. Miller net/rds/af_rds.c | 27 +++++++++++++++++++++++++++ net/rds/bind.c | 4 ++++ net/rds/rds.h | 1 + net/rds/transport.c | 21 +++++++++++++++++++++ 4 files changed, 53 insertions(+) commit a28c257c9eb0bd76a4adcac97c07e34044ec71fb Author: Sowmini Varadhan Date: Fri May 29 17:28:07 2015 -0400 net/rds: Declare SO_RDS_TRANSPORT and RDS_TRANS_* constants in uapi/linux/rds.h User space applications that desire to explicitly select the underlying transport for a PF_RDS socket may do so by using the SO_RDS_TRANSPORT socket option at the SOL_RDS level before bind(). The integer argument provided to the socket option would be one of the RDS_TRANS_* values, e.g., RDS_TRANS_TCP. This commit exports the constant values need by such applications via Signed-off-by: Sowmini Varadhan Signed-off-by: David S. Miller include/uapi/linux/rds.h | 10 ++++++++++ net/rds/rds.h | 5 ----- 2 files changed, 10 insertions(+), 5 deletions(-) commit f16e9d86ae435d7ee6e9eaceb8ba1cf3b1895b72 Author: Vaishali Thakkar Date: Mon Jun 1 10:13:49 2015 +0530 ethernet/intel: Use setup_timer Use the timer API function setup_timer instead of structure field assignments to initialize a timer. A simplified version of the Coccinelle semantic patch that performs this transformation is as follows: @change@ expression e1, e2, e3, e4, a, b; @@ -init_timer(&e1); +setup_timer(&e1, a, b); ... when != a = e2 when != b = e3 -e1.function = a; ... when != b = e4 -e1.data = b; Signed-off-by: Vaishali Thakkar Signed-off-by: David S. Miller drivers/net/ethernet/intel/e100.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 3324b584b6f633a24550691c194600bcab7fc899 Author: Daniel Borkmann Date: Fri May 29 23:23:07 2015 +0200 ebpf: misc core cleanup Besides others, move bpf_tail_call_proto to the remaining definitions of other protos, improve comments a bit (i.e. remove some obvious ones, where the code is already self-documenting, add objectives for others), simplify bpf_prog_array_compatible() a bit. Signed-off-by: Daniel Borkmann Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller kernel/bpf/core.c | 72 ++++++++++++++++++++++++++++++---------------------- kernel/bpf/helpers.c | 34 ++++++++++++------------- 2 files changed, 58 insertions(+), 48 deletions(-) commit 17ca8cbf49be3aa94bb1c2b7ee6545fd70094eb4 Author: Daniel Borkmann Date: Fri May 29 23:23:06 2015 +0200 ebpf: allow bpf_ktime_get_ns_proto also for networking As this is already exported from tracing side via commit d9847d310ab4 ("tracing: Allow BPF programs to call bpf_ktime_get_ns()"), we might as well want to move it to the core, so also networking users can make use of it, e.g. to measure diffs for certain flows from ingress/egress. Signed-off-by: Daniel Borkmann Cc: Alexei Starovoitov Cc: Ingo Molnar Signed-off-by: David S. Miller include/linux/bpf.h | 1 + kernel/bpf/core.c | 1 + kernel/bpf/helpers.c | 13 +++++++++++++ kernel/trace/bpf_trace.c | 12 ------------ net/core/filter.c | 2 ++ 5 files changed, 17 insertions(+), 12 deletions(-) commit a24c85abc0815c14d9e5266d06b9acd8a0a57b9a Author: Vaishali Thakkar Date: Mon Jun 1 07:10:15 2015 +0530 isdn/capi: Use setup_timer Use the timer API function setup_timer instead of structure field assignments to initialize a timer. A simplified version of the Coccinelle semantic patch that performs this transformation is as follows: @change@ expression e1, e2, e3, e4, a, b; @@ -init_timer(&e1); +setup_timer(&e1, a, b); ... when != a = e2 when != b = e3 -e1.data = b; ... when != a = e4 -e1.function = a; Signed-off-by: Vaishali Thakkar Signed-off-by: David S. Miller drivers/isdn/capi/capidrv.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 52e0b2b15bdbb605bf38b4ed9cdc5b46587b18d6 Author: Vaishali Thakkar Date: Mon Jun 1 09:55:10 2015 +0530 net: dl2k: Use setup_timer Use the timer API function setup_timer instead of structure field assignments to initialize a timer. A simplified version of the Coccinelle semantic patch that performs this transformation is as follows: @change@ expression e1, e2, e3, e4, a, b; @@ -init_timer(&e1); +setup_timer(&e1, a, b); ... when != a = e2 when != b = e3 -e1.data = b; ... when != a = e4 -e1.function = a; Signed-off-by: Vaishali Thakkar Signed-off-by: David S. Miller drivers/net/ethernet/dlink/dl2k.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 12d5e6fd1d66a8faa14e4922035bfed70bf014d5 Author: Vaishali Thakkar Date: Mon Jun 1 09:36:02 2015 +0530 net: mv643xx_eth: Use setup_timer Use the timer API function setup_timer instead of structure field assignments to initialize a timer. A simplified version of the Coccinelle semantic patch that performs this transformation is as follows: @change@ expression e, func, da; @@ -init_timer (&e); +setup_timer (&e, func, da); -e.data = da; -e.function = func; Signed-off-by: Vaishali Thakkar Signed-off-by: David S. Miller drivers/net/ethernet/marvell/mv643xx_eth.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit 1f656ff3fdddc2f59649cc84b633b799908f1f7b Author: K. Y. Srinivasan Date: Sat May 30 23:37:48 2015 -0700 Drivers: hv: vmbus: Implement NUMA aware CPU affinity for channels Channels/sub-channels can be affinitized to VCPUs in the guest. Implement this affinity in a way that is NUMA aware. The current protocol distributed the primary channels uniformly across all available CPUs. The new protocol is NUMA aware: primary channels are distributed across the available NUMA nodes while the sub-channels within a primary channel are distributed amongst CPUs within the NUMA node assigned to the primary channel. Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/channel_mgmt.c | 72 ++++++++++++++++++++++++++++------------------- include/linux/hyperv.h | 5 ++++ 2 files changed, 48 insertions(+), 29 deletions(-) commit 9c6e64adf200d3bac0dd47d52cdbd3bd428384a5 Author: K. Y. Srinivasan Date: Sat May 30 23:37:47 2015 -0700 Drivers: hv: vmbus: Use the vp_index map even for channels bound to CPU 0 Map target_cpu to target_vcpu using the mapping table. We should use the mapping table to transform guest CPU ID to VP Index as is done for the non-performance critical channels. While the value CPU 0 is special and will map to VP index 0, it is good to be consistent. Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/channel_mgmt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1c4b1d73bacc546ba4e42f7eb4cb88c54139820b Author: Jiri Slaby Date: Wed May 27 13:57:46 2015 +0200 tty: move linux/gsmmux.h to uapi linux/gsmmux.h defines a user interface and therefore should be installed with other headers. Make the file include: * linux/if.h for IFNAMSIZ * linux/ioctl.h for _IO* macros Signed-off-by: Jiri Slaby Cc: Alan Cox Signed-off-by: Greg Kroah-Hartman include/linux/gsmmux.h | 36 ------------------------------------ include/uapi/linux/Kbuild | 1 + include/uapi/linux/gsmmux.h | 39 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 40 insertions(+), 36 deletions(-) commit 0dcacd768ea6fc5bdd7302d43d430b92e047c134 Author: Ludek Hlavacek Date: Wed May 27 00:37:59 2015 +0200 w1: ds2482: Add i2c module alias name Add i2c alias to enable autoloading of the module for device specified in device-tree. Signed-off-by: Ludek Hlavacek Acked-by: Evgeniy Polyakov Signed-off-by: Greg Kroah-Hartman drivers/w1/masters/ds2482.c | 1 + 1 file changed, 1 insertion(+) commit fdd2db290d9bdfe11c6ee408f8727f1211f720d5 Author: Nicholas Mc Guire Date: Wed May 27 18:34:47 2015 +0200 snsc: pass timeout as HZ independent value schedule_timeout takes a timeout in jiffies but the code currently is passing in a constant SCDRV_TIMEOUT which makes this timeout HZ dependent, so pass it through msecs_to_jiffies() to fix this up. patch was compile tested with generic_defconfig (implies CONFIG_SGI_SNSC=y) Patch is against 4.0-rc5 (localversion-next is -next-20150527) Signed-off-by: Nicholas Mc Guire Signed-off-by: Greg Kroah-Hartman drivers/char/snsc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 0e4a566b9e5c7361c31b939649015e13f066fc38 Author: Lee Campbell Date: Sun May 24 14:47:38 2015 -0700 MAINTAINERS: Fix typo in Android drivers git path Fix typo in staging git location for the ANDROID DRIVERS secion. Signed-off-by: Lee Campbell Signed-off-by: Greg Kroah-Hartman MAINTAINERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 303cda0ea7c1c33701812ccb80d37083a4093c7c Author: Luis R. Rodriguez Date: Thu May 28 17:46:42 2015 -0700 firmware: add missing kfree for work on async call The recent fix to use kstrdup_const() failed to add a kfree upon failure of name allocation... Cc: Ming Lei Cc: Seth Forshee Cc: Kyle McMartin Signed-off-by: Luis R. Rodriguez Signed-off-by: Greg Kroah-Hartman drivers/base/firmware_class.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit eaa5cd926345f86e9df1eb6b0490da539f5ce7d0 Author: Vladimir Zapolskiy Date: Fri May 22 00:21:16 2015 +0300 fs: sysfs: don't pass count == 0 to bin file readers If count == 0 bytes are requested by a reader, sysfs_kf_bin_read() deliberately returns 0 without passing a potentially harmful value to some externally defined underlying battr->read() function. However in case of (pos == size && count) the next clause always sets count to 0 and this value is handed over to battr->read(). The change intends to make obsolete (and remove later) a redundant sanity check in battr->read(), if it is present, or add more protection to struct bin_attribute users, who does not care about input arguments. Signed-off-by: Vladimir Zapolskiy Acked-by: Tejun Heo Signed-off-by: Greg Kroah-Hartman fs/sysfs/file.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9ba8af66432cb8e82553f2e273eb11db0cec7d2d Author: Shailendra Verma Date: Mon May 25 23:46:11 2015 +0530 base:dd - Fix for typo in comment to function driver_deferred_probe_trigger(). Signed-off-by: Shailendra Verma Signed-off-by: Greg Kroah-Hartman drivers/base/dd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6d9d4b1469b0d9748145e168fc9ec585e1f3f4b0 Author: Ricardo Ribalda Delgado Date: Tue May 26 09:31:26 2015 +0200 base/platform: Remove code duplication Failure path of platform_device_add was almost the same as platform_device_del. Refactor same code in a function. Acked-by: Rob Herring Signed-off-by: Ricardo Ribalda Delgado Signed-off-by: Greg Kroah-Hartman drivers/base/platform.c | 60 +++++++++++++++++++++---------------------------- 1 file changed, 25 insertions(+), 35 deletions(-) commit b6d2233f2916fa9338786aeab2e936c5a07e4d0c Author: Ricardo Ribalda Delgado Date: Tue May 26 09:31:25 2015 +0200 of/platform: Use platform_device interface of_platform_device_create_pdata() was using of_device_add() to create the devices, but of_platform_device_destroy was using platform_device_unregister() to free them. of_device_add(), do not call insert_resource(), which initializes the parent field of the resource structure, needed by release_resource(), called by of_platform_device_destroy(). This leads to a NULL pointer deference. Instead of fixing the NULL pointer deference, what could hide other bugs, this patch, replaces of_device_add() with platform_device_data(). Signed-off-by: Ricardo Ribalda Delgado Acked-by: Rob Herring Signed-off-by: Greg Kroah-Hartman drivers/of/platform.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit e50e69d1ac4232af0b6890f16929bf5ceee81538 Author: Ricardo Ribalda Delgado Date: Tue May 26 09:31:24 2015 +0200 base/platform: Continue on insert_resource() error insert_resource() can fail when the resource added overlaps (partially or fully) with another. Device tree and AMBA devices may contain resources that overlap, so they could not call platform_device_add (see 02bbde7849e6 ('Revert "of: use platform_device_add"'))" On the other hand, device trees are released using platform_device_unregister(). This function calls platform_device_del(), which calls release_resource(), that crashes when the resource has not been added with with insert_resource. This was not an issue when the device tree could not be modified online, but this is not the case anymore. This patch let the flow continue when there is an insert error, after notifying the user with a dev_err(). r->parent is set to NULL, so platform_device_del() knows that the resource was not added, and therefore it should not be released. Acked-by: Rob Herring Signed-off-by: Ricardo Ribalda Delgado Signed-off-by: Greg Kroah-Hartman drivers/base/platform.c | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) commit 36d4b29260753ad78b1ce4363145332c02519adc Author: Ricardo Ribalda Delgado Date: Tue May 26 09:31:23 2015 +0200 base/platform: Only insert MEM and IO resources platform_device_del only checks the type of the resource in order to call release_resource. On the other hand, platform_device_add calls insert_resource for any resource that has a parent. Make both code branches balanced. Signed-off-by: Ricardo Ribalda Delgado Signed-off-by: Greg Kroah-Hartman drivers/base/platform.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit 64dfff038c2a661424cc69e4dfb32cdce74a4be2 Author: Sudip Mukherjee Date: Wed May 20 20:57:02 2015 +0530 MAINTAINERS: maintain parport Lets give the parport subsystem a proper name and start maintaining the files. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman MAINTAINERS | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit b84b1d522f979fb53ad347605e24b2940fa2ad99 Author: Hannes Reinecke Date: Wed Apr 29 08:57:34 2015 +0200 scsi: Do not set cmd_per_lun to 1 in the host template '0' is now used as the default cmd_per_lun value, so there's no need to explicitly set it to '1' in the host template. Signed-off-by: Hannes Reinecke Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/block/cciss_scsi.c | 1 - drivers/firewire/sbp2.c | 1 - drivers/s390/scsi/zfcp_scsi.c | 1 - drivers/scsi/NCR53c406a.c | 1 - drivers/scsi/a100u2w.c | 1 - drivers/scsi/aha152x.c | 1 - drivers/scsi/aha1542.c | 1 - drivers/scsi/aha1740.c | 1 - drivers/scsi/aha1740.h | 1 - drivers/scsi/aic94xx/aic94xx_init.c | 1 - drivers/scsi/arm/arxescsi.c | 1 - drivers/scsi/arm/cumana_2.c | 1 - drivers/scsi/arm/eesox.c | 1 - drivers/scsi/atp870u.c | 1 - drivers/scsi/atp870u.h | 1 - drivers/scsi/dpt_i2o.c | 1 - drivers/scsi/fdomain.c | 1 - drivers/scsi/imm.c | 1 - drivers/scsi/initio.c | 1 - drivers/scsi/isci/init.c | 1 - drivers/scsi/mac53c94.c | 1 - drivers/scsi/mvsas/mv_init.c | 1 - drivers/scsi/nsp32.c | 1 - drivers/scsi/pcmcia/nsp_cs.c | 1 - drivers/scsi/pcmcia/qlogic_stub.c | 1 - drivers/scsi/pcmcia/sym53c500_cs.c | 1 - drivers/scsi/pm8001/pm8001_init.c | 1 - drivers/scsi/ppa.c | 1 - drivers/scsi/ps3rom.c | 1 - drivers/scsi/qla1280.c | 1 - drivers/scsi/qlogicfas.c | 1 - drivers/scsi/qlogicpti.c | 1 - drivers/scsi/sym53c416.c | 1 - drivers/scsi/wd719x.c | 1 - drivers/scsi/wd719x.h | 2 -- drivers/staging/rts5208/rtsx.c | 1 - drivers/usb/image/microtek.c | 1 - drivers/usb/storage/scsiglue.c | 1 - drivers/usb/storage/uas.c | 1 - include/linux/libata.h | 2 -- 40 files changed, 42 deletions(-) commit b9a350a1183efd7b63e59b6eaa39abfea908d0be Merge: e01c025 22ce1e1 Author: Dave Chinner Date: Mon Jun 1 10:51:38 2015 +1000 Merge branch 'xfs-sparse-inode' into for-next commit e01c025fbdd5584bc2c8f6b88cb014f5f9bd790f Merge: 22419ac 339e4f6 Author: Dave Chinner Date: Mon Jun 1 10:50:18 2015 +1000 Merge branch 'xfs-misc-fixes-for-4.2' into for-next commit 339e4f66d1fa00a0161a2c27f3c9aa256d856979 Author: Nan Jia Date: Mon Jun 1 10:50:00 2015 +1000 xfs: Clean up xfs_trans_dup_dqinfo Fixed two missing spaces. Signed-off-by: Nan Jia Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/xfs_trans_dquot.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit f532a3f9c47a88b5a4a0c1186d9030cde0e120d2 Author: Don Brace Date: Thu Apr 23 09:35:33 2015 -0500 hpsa: change driver version update driver version Reviewed-by: Scott Teel Reviewed-by: Kevin Barnett Reviewed-by: Tomas Henzl Reviewed-by: Hannes Reinecke Signed-off-by: Don Brace Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fdfa4b6dd40a784c8d11296ceedb70f69722be07 Author: Don Brace Date: Thu Apr 23 09:35:27 2015 -0500 hpsa: add in new controller id add in support for latest PMC controller Reviewed-by: Scott Teel Reviewed-by: Tomas Henzl Reviewed-by: Hannes Reinecke Signed-off-by: Don Brace Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 2 ++ 1 file changed, 2 insertions(+) commit d604f5336aee7e67377bdbcd354ea6a7d3979dcb Author: Webb Scales Date: Thu Apr 23 09:35:22 2015 -0500 hpsa: cleanup reset Synchronize completion the reset with completion of outstanding commands Extending the newly-added synchronous abort functionality, now also synchronize resets with the completion of outstanding commands. Rename the wait queue to reflect the fact that it's being used for both types of waits. Also, don't complete commands which are terminated due to a reset operation. fix for controller lockup during reset Reviewed-by: Scott Teel Reviewed-by: Kevin Barnett Reviewed-by: Tomas Henzl Reviewed-by: Hannes Reinecke Signed-off-by: Webb Scales Signed-off-by: Don Brace Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 204 +++++++++++++++++++++++++++++++++++++++++------- drivers/scsi/hpsa.h | 5 +- drivers/scsi/hpsa_cmd.h | 1 + 3 files changed, 181 insertions(+), 29 deletions(-) commit d80373146261326eb207cf98bbdbe33c8c569134 Merge: a9ab218 f7959e9 Author: David S. Miller Date: Sun May 31 17:34:26 2015 -0700 Merge tag 'mac80211-next-for-davem-2015-05-29' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next Johannes Berg says: ==================== As we get closer to the merge window, here are a few more things for -next: * disconnect TDLS stations on CSA to avoid issues * fix a memory leak introduced in a recent commit * switch rfkill and cfg80211 to PM ops * in an unlikely scenario, prevent a bookkeeping value to get corrupted leading to dropped packets * fix a crash in VLAN assignment * switch rfkill-gpio to more modern gpiod API * send disconnected event to userspace with proper local/remote indication ==================== Signed-off-by: David S. Miller commit edc9102a8e00450871ce523da3ad7b6ea2f11069 Author: Shailendra Verma Date: Tue May 19 20:09:41 2015 +0530 i2c: smbus: fix typo in commet Signed-off-by: Shailendra Verma Signed-off-by: Wolfram Sang drivers/i2c/i2c-smbus.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0e6dd6a232e1910b00776318ec8b82589769a64c Author: Shailendra Verma Date: Mon May 18 22:37:54 2015 +0530 i2c: algo-pca: fix typo in comment Signed-off-by: Shailendra Verma Signed-off-by: Wolfram Sang drivers/i2c/algos/i2c-algo-pca.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 95cc1e3d76398c4e8003dafe652285e43be90ee7 Author: Shailendra Verma Date: Mon May 18 22:24:01 2015 +0530 i2c: core: fix typo in comment Signed-off-by: Shailendra Verma Signed-off-by: Wolfram Sang drivers/i2c/i2c-core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 39c53f55a950027fe8e94d56541e21f1a921f7ce Author: Robert Elliott Date: Thu Apr 23 09:35:14 2015 -0500 hpsa: propagate the error code in hpsa_kdump_soft_reset If hpsa_wait_for_board_state fails, hpsa_kdump_soft_reset should propagate its return value (e.g., -ENODEV) rather than just returning -1. Reviewed-by: Scott Teel Reviewed-by: Kevin Barnett Reviewed-by: Hannes Reinecke Signed-off-by: Robert Elliott Signed-off-by: Don Brace Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit 2946e82bdd76568dd6a3ebb49fe977ac222c0a19 Author: Robert Elliott Date: Thu Apr 23 09:35:09 2015 -0500 hpsa: use scsi host_no as hpsa controller number Rather than numbering the hpsa controllers with an incrementing 0..n value (e.g., that shows up in /proc/interrupts), use the scsi midlayer host_no (e.g. matching /sys/class/scsi_host/hostNN). Reviewed-by: Scott Teel Reviewed-by: Kevin Barnett Reviewed-by: Tomas Henzl Reviewed-by: Hannes Reinecke Signed-off-by: Robert Elliott Signed-off-by: Don Brace Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 134 +++++++++++++++++++++++++++++----------------------- 1 file changed, 74 insertions(+), 60 deletions(-) commit b2ed11e224a28b896b52c109657d183059f7a53f Author: Eddie Huang Date: Thu May 21 16:53:30 2015 +0800 I2C: mediatek: Add driver for MediaTek MT8173 I2C controller Add mediatek MT8173 I2C controller driver. Compare to I2C controller of earlier mediatek SoC, MT8173 fix write-then-read limitation, and also increase message size to 64kb. Signed-off-by: Xudong Chen Signed-off-by: Liguo Zhang Signed-off-by: Eddie Huang Acked-by: Sascha Hauer Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-mt65xx.c | 103 +++++++++++++++++++++++++++++----------- 1 file changed, 74 insertions(+), 29 deletions(-) commit ce38815d39eac9c73d37dd4b0039c87f15dcbe18 Author: Xudong Chen Date: Thu May 21 16:53:28 2015 +0800 I2C: mediatek: Add driver for MediaTek I2C controller The mediatek SoCs have I2C controller that handle I2C transfer. This patch include common I2C bus driver. This driver is compatible with I2C controller on mt65xx/mt81xx. Signed-off-by: Xudong Chen Signed-off-by: Liguo Zhang Signed-off-by: Eddie Huang Acked-by: Sascha Hauer Signed-off-by: Wolfram Sang .../devicetree/bindings/i2c/i2c-mt6577.txt | 41 ++ drivers/i2c/busses/Kconfig | 9 + drivers/i2c/busses/Makefile | 1 + drivers/i2c/busses/i2c-mt65xx.c | 686 +++++++++++++++++++++ 4 files changed, 737 insertions(+) commit 4c1344f105b626c222ea64669dc6dcfe100ccf3b Author: Wolfram Sang Date: Tue May 19 18:29:48 2015 +0200 i2c: check for proper length of the reg property int is vague, let's simply use the type of the variable in question. Signed-off-by: Wolfram Sang Reviewed-by: Simon Horman Signed-off-by: Wolfram Sang drivers/i2c/i2c-core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0c7cab96ec413a69af86965d94fb650f01c5887a Author: Wolfram Sang Date: Thu May 14 14:40:05 2015 +0200 i2c: slave: add error messages to slave core Inform users what went wrong from the core, so drivers don't have to do it. Signed-off-by: Wolfram Sang Acked-by: Geert Uytterhoeven Signed-off-by: Wolfram Sang drivers/i2c/i2c-core.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) commit 976cf2056ccf1be1759f8c122d194c117c879e11 Author: Wolfram Sang Date: Thu May 14 14:40:04 2015 +0200 i2c: slave: docs: be more precise about the prerequsites There was some confusion what was needed to utilize the slave support, so let's be more precise about this. Add an introductory paragraph to the development section while we are here. Signed-off-by: Wolfram Sang Acked-by: Geert Uytterhoeven Signed-off-by: Wolfram Sang Documentation/i2c/slave-interface | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) commit 1fb2ad9565be7149cf50d663f47f489a9fcda42d Author: Wolfram Sang Date: Thu May 14 14:40:03 2015 +0200 i2c: rcar: report slave capabilities to users Signed-off-by: Wolfram Sang Acked-by: Geert Uytterhoeven Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-rcar.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 83caf9896a48de5f838227162c25de405c61ea9d Author: Wolfram Sang Date: Thu May 14 14:40:02 2015 +0200 i2c: add FUNC flag for slave capabilities So users can check in advance if there is slave support. Signed-off-by: Wolfram Sang Acked-by: Geert Uytterhoeven Signed-off-by: Wolfram Sang include/uapi/linux/i2c.h | 1 + 1 file changed, 1 insertion(+) commit 1185aaf55c20a1dfea8b7362e954da55e0e84fa7 Author: Oleg Drokin Date: Sun May 31 02:47:22 2015 -0400 staging/lustre/ldlm: Fix up LDLM_POOL_SYSFS_WRITER*_STORE define The store method defined by LDLM_POOL_SYSFS_WRITER_STORE and LDLM_POOL_SYSFS_WRITER_NOLOCK_STORE defines should use size_t count, not unsigned long. This produced a warning on i386 (and other 32bit architectures too, I guess) where unsigned long is not 32 bit. Reported by kbuild test bot. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/ldlm/ldlm_internal.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit f6758e7961e9158c55028f25cfa0c387bb8fe81b Author: Drew Fustini Date: Thu May 28 21:04:23 2015 -0500 staging: unisys: visorbus: add static declarations Add static declarations to statisfy sparse warnings in: drivers/staging/unisys/visorbus/visorbus_main.c warning: symbol 'visorbus_debug' was not declared warning: symbol 'visorbus_forcematch' was not declared warning: symbol 'visorbus_forcenomatch' was not declared warning: symbol 'visorbus_devicetest' was not declared warning: symbol 'visorbus_debugref' was not declared warning: symbol 'visorbus_bus_groups' was not declared warning: symbol 'devmajorminor_create_file' was not declared warning: symbol 'devmajorminor_remove_file' was not declared warning: symbol 'devmajorminor_remove_all_files' was not declared warning: symbol 'unregister_devmajorminor_attributes' was not declared Signed-off-by: Drew Fustini Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorbus_main.c | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) commit 9f4ba6b05869d085aab03ae84ac3ce0f7685008d Author: Sudip Mukherjee Date: Wed May 20 20:57:01 2015 +0530 paride: use new parport device model Modify paride driver to use the new parallel port device model. Tested-by: Alan Cox Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/block/paride/paride.c | 57 ++++++++++++++++++++++++++++++++++++++----- drivers/block/paride/paride.h | 2 ++ drivers/block/paride/pcd.c | 9 +++++++ drivers/block/paride/pd.c | 12 ++++++++- drivers/block/paride/pf.c | 7 ++++++ drivers/block/paride/pg.c | 8 ++++++ drivers/block/paride/pt.c | 8 ++++++ 7 files changed, 96 insertions(+), 7 deletions(-) commit 8891f41a78f27fcecf8faa58ca80dfd4bf336bff Author: Sudip Mukherjee Date: Thu May 21 11:46:31 2015 +0530 i2c-parport: use new parport device model Modify i2c-parport driver to use the new parallel port device model. Tested-by: Jean Delvare Acked-by: Wolfram Sang Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/i2c/busses/i2c-parport.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) commit 19a4fb21f804dbd5a327eba7a1569b6b8e941a54 Author: Sudip Mukherjee Date: Wed May 20 20:56:59 2015 +0530 i2c-parport: define ports to connect As of now i2c-parport was connecting to all the available parallel ports. Lets limit that to maximum of 4 instances and at the same time define which instance connects to which parallel port. Tested-by: Jean Delvare Signed-off-by: Sudip Mukherjee Acked-by: Wolfram Sang Signed-off-by: Greg Kroah-Hartman drivers/i2c/busses/i2c-parport.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) commit 9be83c0a44de0c595734f96393aec847b68da3f1 Author: Sudip Mukherjee Date: Wed May 20 20:56:58 2015 +0530 staging: panel: use new parport device model Converted to use the new device-model parallel port. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/panel/panel.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) commit 6fa45a22689722dac9f0e90c0931d4b34b334ede Author: Sudip Mukherjee Date: Wed May 20 20:56:57 2015 +0530 parport: add device-model to parport subsystem parport subsystem starts using the device-model. Drivers using the device-model has to define devmodel as true and should register the device with parport using parport_register_dev_model(). Tested-by: Jean Delvare Tested-by: Alan Cox Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/parport/parport_pc.c | 4 +- drivers/parport/procfs.c | 15 +- drivers/parport/share.c | 345 ++++++++++++++++++++++++++++++++++++++++--- include/linux/parport.h | 43 +++++- 4 files changed, 379 insertions(+), 28 deletions(-) commit a7a215283703231bcde0740710569f6c0e39ac53 Author: Joachim Eastwood Date: Sat May 30 23:14:45 2015 +0200 doc: dt: add documentation for nxp,lpc1850-uart Add device tree binding documentation for nxp,lpc1850-uart. Signed-off-by: Joachim Eastwood Signed-off-by: Greg Kroah-Hartman .../bindings/serial/nxp,lpc1850-uart.txt | 28 ++++++++++++++++++++++ 1 file changed, 28 insertions(+) commit d2aef35a5cc543292dae7130734c390f2a251f73 Author: Joachim Eastwood Date: Sat May 30 23:14:44 2015 +0200 serial: 8250: add LPC18xx/43xx UART driver Serial port driver for the 8250-based UART found on LPC18xx/43xx devices. The UART is 16550A compatible with additional features like RS485 support, synchronous mode, IrDA, and DMA. For now only basic UART and RS485 operation is supported. Signed-off-by: Joachim Eastwood Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250_lpc18xx.c | 230 +++++++++++++++++++++++++++++++++ drivers/tty/serial/8250/Kconfig | 8 ++ drivers/tty/serial/8250/Makefile | 1 + 3 files changed, 239 insertions(+) commit 1a8d2903cb6a92ce47cfc8841951b8227c09e505 Author: Masahiro Yamada Date: Fri May 29 15:04:31 2015 +0900 serial: 8250_uniphier: add UniPhier serial driver Add the driver for on-chip UART used on UniPhier SoCs. This hardware is similar to 8250, but the register mapping is slightly different: - The offset to FCR, MCR is different. - The divisor latch access bit does not exist. Instead, the divisor latch register is available at offset 9. This driver overrides serial_{in,out}, dl_{read,write} callbacks, but wants to borrow most of code from 8250_core.c. Signed-off-by: Masahiro Yamada Reviewed-by: Matthias Brugger Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250_uniphier.c | 257 ++++++++++++++++++++++++++++++++ drivers/tty/serial/8250/Kconfig | 7 + drivers/tty/serial/8250/Makefile | 1 + 3 files changed, 265 insertions(+) commit 0788c39b955151d92711800ce14f41154095bfa6 Author: Heikki Krogerus Date: Tue May 26 15:59:32 2015 +0300 serial: 8250_dw: support ACPI platforms with integrated DMA engine On many new Intel SoCs the UART has an integrated DMA engine (iDMA). In order to use it a special filter function is needed. Signed-off-by: Heikki Krogerus Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250_dw.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) commit 6f0c3091e73df7ad1393c3400d168b9777b4a63c Author: Masahiro Yamada Date: Mon May 25 15:03:32 2015 +0900 serial: of_serial: check the return value of clk_prepare_enable() The function clk_prepare_enable() may fail, and in that case it does not make sense to proceed. Let's check its return code and error out if it is a negative value. Signed-off-by: Masahiro Yamada Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/of_serial.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 3a63d22425ff229c8fb51e7aec1de1e9a4e19b34 Author: Masahiro Yamada Date: Mon May 25 14:57:43 2015 +0900 serial: of_serial: use devm_clk_get() instead of clk_get() The probe method of this driver calls clk_get(), but clk_put() is missing from the remove callback. Using the managed clk function is easier than fixing other parts. Signed-off-by: Masahiro Yamada Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/of_serial.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6e63be3fee141cc6d122f648b524a66160dbe6aa Author: Noam Camus Date: Mon May 25 06:54:28 2015 +0300 serial: earlycon: Add support for big-endian MMIO accesses Support command line parameters of the form: earlycon=,io|mmio|mmio32|mmio32be,, This commit seem to be needed even after commit: serial: 8250: Add support for big-endian MMIO accesses c627f2ceb692e8a9358b64ac2d139314e7bb0d17 Signed-off-by: Noam Camus Signed-off-by: Greg Kroah-Hartman Documentation/kernel-parameters.txt | 9 +++++---- drivers/tty/serial/earlycon.c | 9 ++++++--- drivers/tty/serial/serial_core.c | 7 +++++-- 3 files changed, 16 insertions(+), 9 deletions(-) commit 0f17e3b478a77e00e873f6ca235644322843c81e Author: Qipan Li Date: Tue May 26 09:36:00 2015 +0000 serial: sirf: use hrtimer for data rx when the serial works as a bluetooth sink, due to audio realtime requirement, the driver should have something similar with ALSA: 1. one big DMA buffer to easy the schedule jitter 2. split this big DMA buffer to multiple small periods, for each period, we get a DMA interrupt, then push the data to userspace. the small periods will easy the audio latency. so ALSA generally uses a cyclic chained DMA. but for sirfsoc, the dma hardware has the limitation: we have only two loops in the cyclic mode, so we can only support two small periods to switch. if we make the DMA buffer too big, we get long latency, if we make the DMA buffer too little, we get miss in scheduling for audio realtime. so this patch moves to use a hrtimer to simulate the cyclic DMA, then we can have a big buffer, and also have a timely data push to users as the hrtimer can generate in small period then actual HW interrupts. with this patch, we also delete a lot of complex codes to handle loop buffers, and RX timeout interrupt since the RX work can be completely handled from hrtimer interrupt. tests show using this way will make our bad audio streaming be- come smooth. Signed-off-by: Qipan Li Signed-off-by: Barry Song Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/sirfsoc_uart.c | 341 ++++++++++++++------------------------ drivers/tty/serial/sirfsoc_uart.h | 20 +-- 2 files changed, 135 insertions(+), 226 deletions(-) commit 86459b0e407798cc16d52d493a624251e05ce6ad Author: Qipan Li Date: Tue May 26 09:35:59 2015 +0000 serial: sirf: correct the fifo empty_bit Signed-off-by: Qipan Li Signed-off-by: Barry Song Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/sirfsoc_uart.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 326707ed88028283cf04d86848a0436cb966b01e Author: Qipan Li Date: Tue May 26 09:35:58 2015 +0000 serial: sirf: fix system hung on console log output A corner case exists in the current driver. if an app opens the console device, and before writing to console device, and there are huge kernel ogs to print out, system will hang on sirfsoc_uart_console_putchar: while (rd_regl(port, ureg->sirfsoc_tx_fifo_status) & ufifo_st->ff_full(port->line)) cpu_relax(); as in sirfsoc_uart_startup(), the driver assigns tx_fifo_op to 0 will stop TX FIFO, this loop will be endless. Signed-off-by: Qipan Li Signed-off-by: Barry Song Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/sirfsoc_uart.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ba02406e9bee5726a604a4c8628aac56cb076fef Author: Masahiro Yamada Date: Mon May 11 12:30:22 2015 +0900 serial: 8250: remove return statements from void function serial8250_set_mctrl() is a void type function. Returning something does not look nice. Signed-off-by: Masahiro Yamada Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250_core.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 478d1051a0293b8a8857267bb0f768ebcb05cfde Author: Jakub Kicinski Date: Fri May 29 21:20:33 2015 +0200 sc16is7xx: use kworker for RS-485 configuration RS-485 configuration is also done under the spinlock so no blocking I/O allowed. Signed-off-by: Jakub Kicinski Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/sc16is7xx.c | 41 +++++++++++++++++++++++++++++------------ 1 file changed, 29 insertions(+), 12 deletions(-) commit 059d5815304bdbe440d0ffc957d832aebf076ca3 Author: Jakub Kicinski Date: Fri May 29 21:20:32 2015 +0200 sc16is7xx: use kworker to update ier bits .stop_rx/tx() are called in atomic context, we cannot use blocking I/O. While at it correct the name of RX bit and '*' placement in pointer declarations. Signed-off-by: Jakub Kicinski Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/sc16is7xx.c | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) commit a0104085362ff90438151e3b96513900a274d241 Author: Jakub Kicinski Date: Fri May 29 21:20:31 2015 +0200 sc16is7xx: use kworker for md_proc Convert md_proc into general async reconfiguration procedure. Signed-off-by: Jakub Kicinski Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/sc16is7xx.c | 47 ++++++++++++++++++++++++++++-------------- 1 file changed, 31 insertions(+), 16 deletions(-) commit dbe5a40cba2de69678401362b7cc9bbbe7bc30be Author: Jakub Kicinski Date: Fri May 29 21:20:30 2015 +0200 sc16is7xx: move RTS delay to workqueue Instead of spinning under port->lock let's just sleep inside the kthread. It should be equivalent as TX cannot proceed when thread is blocked. Signed-off-by: Jakub Kicinski Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/sc16is7xx.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) commit 9e6f4ca3e567d5d9e4133d2da8bae8f476f85873 Author: Jakub Kicinski Date: Fri May 29 21:20:29 2015 +0200 sc16is7xx: use kthread_worker for tx_work and irq Convert workqueue usage to a real-time kworker. The problem with workqueues is that we cannot set real-time priorities on our work and asynchronous reconfiguration can be blocked by less important tasks. We need kthread for the interrupt anyway and because we will now be using single kthread for all TX-related operations we can get rid of the port mutex. Signed-off-by: Jakub Kicinski Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/sc16is7xx.c | 66 +++++++++++++++++++++++++++--------------- 1 file changed, 43 insertions(+), 23 deletions(-) commit 4ae82e5d23961515796d76850499db3866c5e73b Author: Jakub Kicinski Date: Fri May 29 21:20:28 2015 +0200 sc16is7xx: use LSR_TEMT_BIT in .tx_empty() LSR_TEMT_BIT (LSR bit 6) provides us exactly the information we need to determine if transmission is finished - FIFO level and shift register empty. We can save ourselves reading FIFO level explicitly if we use this bit. Signed-off-by: Jakub Kicinski Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/sc16is7xx.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 4117a60c8e4c8d5f9fc05578e359d09d0fdf9d07 Author: Jakub Kicinski Date: Fri May 29 21:20:27 2015 +0200 sc16is7xx: add missing compatible strings Without matching bus-specific strings driver will not be loaded automatically. Signed-off-by: Jakub Kicinski Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/sc16is7xx.c | 4 ++++ 1 file changed, 4 insertions(+) commit 5451bb29f725c099e7ea78262610c8c1b6caf008 Author: Jakub Kicinski Date: Fri May 29 21:20:26 2015 +0200 sc16is7xx: remove RS-485 delay RTS handling Users of RS-485 can request via ioctl that RTS signals should be activated selected number of milliseconds before the actual data transmission or delay reception certain number of milli- seconds after the transmission is finished. In sc16is7xx, however, RTS signalling is handled by the hardware and driver has no way of providing this feature. We still try to provide .delay_rts_before_send by delaying transmission but without actual effect on the RTS line. Note: this change will make the driver return -EINVAL when the feature is requested (.delay_rts_after_send is set). Signed-off-by: Jakub Kicinski Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/sc16is7xx.c | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) commit 8f4a91202203624cbd8fe565cbdd5c876b652a5d Author: Rama Kiran Kumar Indrakanti Date: Mon May 25 11:51:10 2015 +0530 sc16is7xx: spi interface documentation Updated the documentation for spi interface. Signed-off-by: Rama Kiran Kumar Indrakanti Signed-off-by: Greg Kroah-Hartman .../devicetree/bindings/serial/nxp,sc16is7xx.txt | 37 ++++++++++++++++++++++ 1 file changed, 37 insertions(+) commit 2c837a8a8f9f182b0286f5644ed50374b8434867 Author: Rama Kiran Kumar Indrakanti Date: Mon May 25 11:51:09 2015 +0530 sc16is7xx: spi interface is added spi interface for sc16is7xx is added along with Kconfig flag to enable spi or i2c, thus in a instance we can have either spi or i2c or both, in sync to the hw. Signed-off-by: Rama Kiran Kumar Indrakanti Signed-off-by: Jakub Kicinski Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/Kconfig | 43 +++++++++++++---- drivers/tty/serial/Makefile | 2 +- drivers/tty/serial/sc16is7xx.c | 105 ++++++++++++++++++++++++++++++++++++++++- 3 files changed, 140 insertions(+), 10 deletions(-) commit 208250dd4c3dd54963db85340cdc5e4c2acef5b5 Author: Shailendra Verma Date: Tue May 26 01:01:52 2015 +0530 char:pcmcia:synclink_cs - Do not initialise statics to 0. Static variables are initialised to 0 by GCC. Fixes the following checkpatch error: ERROR: do not initialise statics to 0 or NULL FILE: drivers/char/pcmcia/synclink_cs.c:440: static bool break_on_load = 0; Signed-off-by: Shailendra Verma Signed-off-by: Greg Kroah-Hartman drivers/char/pcmcia/synclink_cs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4e4bd36f97b1492f19b3329ac74ed313da13de34 Author: Vitaly Kuznetsov Date: Fri May 29 11:18:02 2015 -0700 Drivers: hv: balloon: check if ha_region_mutex was acquired in MEM_CANCEL_ONLINE case Memory notifiers are being executed in a sequential order and when one of them fails returning something different from NOTIFY_OK the remainder of the notification chain is not being executed. When a memory block is being onlined in online_pages() we do memory_notify(MEM_GOING_ONLINE, ) and if one of the notifiers in the chain fails we end up doing memory_notify(MEM_CANCEL_ONLINE, ) so it is possible for a notifier to see MEM_CANCEL_ONLINE without seeing the corresponding MEM_GOING_ONLINE event. E.g. when CONFIG_KASAN is enabled the kasan_mem_notifier() is being used to prevent memory hotplug, it returns NOTIFY_BAD for all MEM_GOING_ONLINE events. As kasan_mem_notifier() comes before the hv_memory_notifier() in the notification chain we don't see the MEM_GOING_ONLINE event and we do not take the ha_region_mutex. We, however, see the MEM_CANCEL_ONLINE event and unconditionally try to release the lock, the following is observed: [ 110.850927] ===================================== [ 110.850927] [ BUG: bad unlock balance detected! ] [ 110.850927] 4.1.0-rc3_bugxxxxxxx_test_xxxx #595 Not tainted [ 110.850927] ------------------------------------- [ 110.850927] systemd-udevd/920 is trying to release lock (&dm_device.ha_region_mutex) at: [ 110.850927] [] mutex_unlock+0xe/0x10 [ 110.850927] but there are no more locks to release! At the same time we can have the ha_region_mutex taken when we get the MEM_CANCEL_ONLINE event in case one of the memory notifiers after the hv_memory_notifier() in the notification chain failed so we need to add the mutex_is_locked() check. In case of MEM_ONLINE we are always supposed to have the mutex locked. Signed-off-by: Vitaly Kuznetsov Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/hv_balloon.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 6c4e5f9c9ff41ea997fd0f345b3b2b88c113eb68 Author: Keith Mange Date: Tue May 26 14:23:01 2015 -0700 Drivers: hv: vmbus:Update preferred vmbus protocol version to windows 10. Add support for Windows 10. Signed-off-by: Keith Mange Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/connection.c | 8 +++++--- include/linux/hyperv.h | 4 +++- 2 files changed, 8 insertions(+), 4 deletions(-) commit b575f7124ab33b2a4239613bcc870380308fe0a7 Author: Vladimir Zapolskiy Date: Mon May 18 20:11:46 2015 +0300 char: misc: restore MISC_DYNAMIC_MINOR on device_create() failure On attempt to register a dynamic minor misc device its minor number is updated to a virtual minor number prior to device_create() call, however on error path misc->minor == MISC_DYNAMIC_MINOR is not restored. Following the rule of thumb that a function returning an error must not change the state of the caller, assign MISC_DYNAMIC_MINOR back. The problem is met in a sutuation, when subsys_initcall(misc_init) is not yet called and misc_class is not created, but misc_register() modifies statically defined ".minor = MISC_DYNAMIC_MINOR", therefore implicitly changing the client's logic on next attempt (e.g. retrying from deferred list) to register a misc device, whose minor number is converted from dynamic to some unknown static one. Signed-off-by: Vladimir Zapolskiy Signed-off-by: Greg Kroah-Hartman drivers/char/misc.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) commit 512e90312308c5838e36716c28699b340ef75764 Author: Mateusz Kulikowski Date: Sun May 31 20:19:53 2015 +0200 staging: rtl8192e: Fix SPACING error Fix SPACING error in rtl8192_hw_to_sleep(). Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_ps.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f0e5bb2b29e87ab8fc7652fc48c3ca7b594795a1 Author: Mateusz Kulikowski Date: Sun May 31 20:19:52 2015 +0200 staging: rtl8192e: rtl8192E_suspend(): Fix WOL reporting WOL capability was reported in an awkward way - print it nicely. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_pm.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit d9c1fff59ac0ea84410a8ae39f81cd176368ec6e Author: Mateusz Kulikowski Date: Sun May 31 20:19:51 2015 +0200 staging: rtl8192e: Fix trivial LONG_LINE errors Reindent lines to make checkpatch happy. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 83 +++++++++++++++++++----------- drivers/staging/rtl8192e/rtllib_rx.c | 24 +++++---- 2 files changed, 67 insertions(+), 40 deletions(-) commit 3b4140afd9fa3b684572a1d5a7496d5830e8b8d0 Author: Mateusz Kulikowski Date: Sun May 31 20:19:50 2015 +0200 staging: rtl8192e: Replace RT_TRACE(COMP_ERR, ...) with netdev_* - Use netdev_* with log level depending on how serious error is - Rework some messages to be more readable - Pass net_device where needed for pretty prints Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8190P_rtl8256.c | 24 +++-- drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 31 ++++--- .../staging/rtl8192e/rtl8192e/r8192E_firmware.c | 13 +-- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 100 ++++++++++----------- drivers/staging/rtl8192e/rtl8192e/rtl_cam.c | 18 ++-- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 65 ++++++-------- drivers/staging/rtl8192e/rtl8192e/rtl_ps.c | 4 +- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 14 ++- 8 files changed, 127 insertions(+), 142 deletions(-) commit 156b80db36bb64e8c6cbc06dd34b4aafa3276b7a Author: Mateusz Kulikowski Date: Sun May 31 20:19:49 2015 +0200 staging: rtl8192e: rtl8192_phy_checkBBAndRF(): Don't check MAC This function never supported checking of MAC block. Instead of printing several warnings - print it once and exit. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) commit fe1bbfc9b8e478cc13e73e0d7c13026b9ab8ba9c Author: Mateusz Kulikowski Date: Sun May 31 20:19:48 2015 +0200 staging: rtl8192e: Remove unneeded RT_TRACE(COMP_ERR,...) This messages are not needed, as failure is reported earlier in code. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8190P_rtl8256.c | 1 - drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c | 1 - 2 files changed, 2 deletions(-) commit 622fd4942dc301cb9fcd38243c92218cfa5bd7f5 Author: Mateusz Kulikowski Date: Sun May 31 20:19:47 2015 +0200 staging: rtl8192e: Replace ?: with max All get_key implementations return either -1 or small buffers, so cast int->u16 is not a problem. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtllib_wx.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit a5c06ad83bf444dc3219460820bdcd4707dc4c9a Author: Mateusz Kulikowski Date: Sun May 31 20:19:46 2015 +0200 staging: rtl8192e: Replace ?: with min_t Replace :? with min_t for readability. Remove check that is always false. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtllib_softmac_wx.c | 8 +------- drivers/staging/rtl8192e/rtllib_wx.c | 3 +-- 2 files changed, 2 insertions(+), 9 deletions(-) commit a94aa9adb6fe79ddb9181bddd34ade3e8718c582 Author: Mateusz Kulikowski Date: Sun May 31 20:19:45 2015 +0200 staging: rtl8192e: Replace ?: with max_t Improve readability and make checkpatch happy. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtllib_rx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2b2215af34c7bcf737b90d0459560e3716944429 Author: Mateusz Kulikowski Date: Sun May 31 20:19:44 2015 +0200 staging: rtl8192e: Remove unused rtl_crypto.h This header is not used - remove it to make driver code smaller. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_crypto.h | 382 ------------------------- 1 file changed, 382 deletions(-) commit 7c3d2579160659da732a14cf7e8608be85a39e6f Author: Mateusz Kulikowski Date: Sun May 31 20:19:43 2015 +0200 staging: rtl8192e: Fix OOM_MESSAGE warnings Remove alloc failed messages where not needed to make checkpatch.pl happy. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl819x_BAProc.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit 0beee3ba610694d98fb96e9bc22469c5e1fa8206 Author: Mateusz Kulikowski Date: Sun May 31 20:19:42 2015 +0200 staging: rtl8192e: Remove unimplemented iwpriv handlers Remove the following private variables: - force_mic_error - changes force_mic_error that is not used - radio - changes sw_radio_on that is not used - adhoc_peer_list - unimplemented - firm_ver - unimplemented Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 1 - drivers/staging/rtl8192e/rtl8192e/rtl_core.h | 1 - drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 86 ++-------------------------- drivers/staging/rtl8192e/rtllib.h | 1 - 4 files changed, 4 insertions(+), 85 deletions(-) commit 310852327ab3b5182dd9c1b8b7f44831eaa2454a Author: Mateusz Kulikowski Date: Sun May 31 20:19:41 2015 +0200 staging: rtl8192e: Fix LONG_LING in rtllib_parse_info_param() Take out MIFE_TYPE_HT_CAP processing into separate function - rtllib_parse_mfie_ht_cap() Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtllib_rx.c | 49 +++++++++++++++++++++--------------- 1 file changed, 29 insertions(+), 20 deletions(-) commit 35e33b0468ab3b3f5b610bfa4fc9367a3b7c09a8 Author: Mateusz Kulikowski Date: Sun May 31 20:19:40 2015 +0200 staging: rtl8192e: Fix LONG_LINE warnings Fix most of simple LONG_LINE warnings. None of the changes should affect behaviour of code, so several modifications are included in this patch: - Code is reindented where needed - Local variable names are compacted (priv -> p) - Unnecessary casts are removed - Nested ifs are replaced with logical and - a = b = c = d expressions are split - Replace if/then series with clamp_t() - Removed unneeded scopes Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/dot11d.h | 4 +- drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 22 +-- .../staging/rtl8192e/rtl8192e/r8192E_firmware.c | 29 ++-- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 4 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 3 +- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 191 +++++++++++++-------- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 3 +- drivers/staging/rtl8192e/rtl819x_HTProc.c | 3 +- drivers/staging/rtl8192e/rtl819x_TSProc.c | 21 ++- drivers/staging/rtl8192e/rtllib_rx.c | 171 +++++++++++------- drivers/staging/rtl8192e/rtllib_softmac.c | 36 ++-- drivers/staging/rtl8192e/rtllib_tx.c | 41 ++--- 12 files changed, 314 insertions(+), 214 deletions(-) commit 7bdfaa0abfdf4d3189b499585c09de6e941e93a3 Author: Mateusz Kulikowski Date: Sun May 31 20:19:39 2015 +0200 staging: rtl8192e: Fix PREFER_PR_LEVEL warnings Fix most of remaining PREFER_PR_LEVEL warnings in rtllib. Replace printk() with netdev_* if possible, pr_* in other cases. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtllib_crypt_ccmp.c | 2 +- drivers/staging/rtl8192e/rtllib_crypt_tkip.c | 67 +++++++++++++--------------- drivers/staging/rtl8192e/rtllib_rx.c | 5 ++- 3 files changed, 35 insertions(+), 39 deletions(-) commit ca93dcba3a924214e4c0132ef1564ba52f907d94 Author: Mateusz Kulikowski Date: Sun May 31 20:19:38 2015 +0200 staging: rtl8192e: Remove assert() macro Assert macro printed warning message (and was used once). Remove it, and add netdev_warn() in place where it was called. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 5 +++-- drivers/staging/rtl8192e/rtllib_debug.h | 8 -------- 2 files changed, 3 insertions(+), 10 deletions(-) commit db65e4aaf5a050b2c3a91039986e66a18ac97d8d Author: Mateusz Kulikowski Date: Sun May 31 20:19:37 2015 +0200 staging: rtl8192e: Remove remains of RTLLIB_*_DEBUG() (including proc entry) Remove rest of rtllib "debug" system - it is no longer used - proper netdev_* functions are used in most cases. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtllib.h | 45 -------------------------- drivers/staging/rtl8192e/rtllib_module.c | 55 -------------------------------- 2 files changed, 100 deletions(-) commit 7232141526e8c3702984bc5239e283b50c5f3d09 Author: Mateusz Kulikowski Date: Sun May 31 20:19:36 2015 +0200 staging: rtl8192e: Remove RTLLIB_DEBUG_DATA() Use print_hex_dump_bytes() if VERBOSE_DEBUG is enabled. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl819x_BAProc.c | 20 ++++++++++++++++---- drivers/staging/rtl8192e/rtl819x_HTProc.c | 7 +++++-- drivers/staging/rtl8192e/rtllib.h | 11 ----------- drivers/staging/rtl8192e/rtllib_tx.c | 5 ++++- 4 files changed, 25 insertions(+), 18 deletions(-) commit b94436b5d527d06403120be23570343a02b2283b Author: Mateusz Kulikowski Date: Sun May 31 20:19:35 2015 +0200 staging: rtl8192e: Remove RTLLIB_DEBUG() - Use netdev_dbg or netdev_vdbg instead of RTLLIB_DEBUG() - Reformat some messages for better readability - Remove RTLLIB_DEBUG messages that make no sense Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl819x_BAProc.c | 35 +++++++++------------ drivers/staging/rtl8192e/rtl819x_HTProc.c | 21 ++++++------- drivers/staging/rtl8192e/rtl819x_TSProc.c | 35 +++++++++------------ drivers/staging/rtl8192e/rtllib.h | 5 --- drivers/staging/rtl8192e/rtllib_rx.c | 52 +++++++++++++++++-------------- 5 files changed, 67 insertions(+), 81 deletions(-) commit def16d2ee94eccf305214cc4bf1c889462b3734e Author: Mateusz Kulikowski Date: Sun May 31 20:19:34 2015 +0200 staging: rtl8192e: Remove RTLLIB_DEBUG_INFO() Use pr_debug() instead. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtllib.h | 1 - drivers/staging/rtl8192e/rtllib_module.c | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) commit e9fea2ecb018e5ca4dad80ac36b34ba9c320415a Author: Mateusz Kulikowski Date: Sun May 31 20:19:33 2015 +0200 staging: rtl8192e: Remove RTLLIB_DEBUG_MGMT() - Use netdev_dbg() instead of RTLLIB_DEBUG_MGMT() - Remove RTLLIB_DEBUG_MGMT() - Pass net_device to auth_parse(), auth_rq_parse() and assoc_rq_parse() - Remove duplicated messages Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtllib.h | 2 - drivers/staging/rtl8192e/rtllib_rx.c | 78 +++++++++++++++---------------- drivers/staging/rtl8192e/rtllib_softmac.c | 50 +++++++++----------- 3 files changed, 61 insertions(+), 69 deletions(-) commit 8f90dfbf649b53152654562b89074b11c8f4fe7d Author: Mateusz Kulikowski Date: Sun May 31 20:19:32 2015 +0200 staging: rtl8192e: Remove RTLLIB_DEBUG_QOS() - Pass extra argument (rtllib_device) to rtllib_parse_qos_info_param_IE() and update_network() - Replace RTLLIB_DEBUG_QOS() with netdev_dbg() - Remove RTLLIB_DEBUG_QOS() Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtllib.h | 1 - drivers/staging/rtl8192e/rtllib_rx.c | 26 ++++++++++++++------------ 2 files changed, 14 insertions(+), 13 deletions(-) commit e77c752f3917c4d3cec864e3354c0a64fdeba03e Author: Mateusz Kulikowski Date: Sun May 31 20:19:31 2015 +0200 staging: rtl8192e: Remove RTLLIB_DEBUG_(FRAG|EAP|DROP|STATE|TX|RX)() Use netdev_dbg() instead. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtllib.h | 6 ---- drivers/staging/rtl8192e/rtllib_rx.c | 58 ++++++++++++++++++++---------------- drivers/staging/rtl8192e/rtllib_tx.c | 5 ++-- 3 files changed, 35 insertions(+), 34 deletions(-) commit 521a9cbdb27142d7b9a166810807af010dcf6181 Author: Mateusz Kulikowski Date: Sun May 31 20:19:30 2015 +0200 staging: rtl8192e: Remove RTLLIB_DEBUG_SCAN() Use netdev_dbg() instead, remove duplicated logs. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtllib.h | 1 - drivers/staging/rtl8192e/rtllib_rx.c | 101 ++++++++++++++++------------------- drivers/staging/rtl8192e/rtllib_wx.c | 12 +++-- 3 files changed, 54 insertions(+), 60 deletions(-) commit ad5c8e0586bfda28b086472e3336903ca1e4d3d2 Author: Mateusz Kulikowski Date: Sun May 31 20:19:29 2015 +0200 staging: rtl8192e: Simplify rtllib_process_probe_response() - Extract frame_ctl once and use it as variable. - Drop endian conversion in is_beacon() function (used in simplified function only) - Simplify debug messages - Invert STYPE checks in debug messages - it is valid as only BEACON and PROBE_RESP are allowed Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtllib_rx.c | 37 +++++++++++++++--------------------- 1 file changed, 15 insertions(+), 22 deletions(-) commit c6a91aba25eee95cdf371c6bd807ef559172f1d9 Author: Mateusz Kulikowski Date: Sun May 31 20:19:28 2015 +0200 staging: rtl8192e: Remove RTLLIB_DEBUG_WX() Use netdev_dbg() instead of RTLLIB_DEBUG_WX(). Rewrite some messages to be more readable. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtllib.h | 1 - drivers/staging/rtl8192e/rtllib_wx.c | 33 ++++++++++++++++----------------- 2 files changed, 16 insertions(+), 18 deletions(-) commit f0dddb1d0240038b87d32578c3a12ff17e5d8adb Author: Mateusz Kulikowski Date: Sun May 31 20:19:27 2015 +0200 staging: rtl8192e: Remove RTLLIB_ERROR() and RTLLIB_WARNING() Use pr_* where needed (rtllib init code). Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtllib.h | 2 -- drivers/staging/rtl8192e/rtllib_module.c | 8 +++----- 2 files changed, 3 insertions(+), 7 deletions(-) commit 11e672c3e2d2a10189a6292678f5174597927076 Author: Mateusz Kulikowski Date: Sun May 31 20:19:26 2015 +0200 staging: rtl8192e: Replace RTLLIB_DEBUG(DL_ERR) with netdev_*() Replace all RTLLIB_DEBUG(RTLLIB_DL_ERR, *) calls with netdev_err() for errors that really should be reported to user. Use netdev_warn() for the rest. Rephrase some of the messages to make them more readable/compact. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl819x_BAProc.c | 79 +++++++++++++--------------- drivers/staging/rtl8192e/rtl819x_HTProc.c | 23 ++++---- drivers/staging/rtl8192e/rtl819x_TSProc.c | 19 ++++--- drivers/staging/rtl8192e/rtllib_rx.c | 15 ++++-- drivers/staging/rtl8192e/rtllib_softmac.c | 6 +-- drivers/staging/rtl8192e/rtllib_softmac_wx.c | 6 +-- 6 files changed, 75 insertions(+), 73 deletions(-) commit 1af35de29f253f4421d779d55a441697f80e35fe Author: Mateusz Kulikowski Date: Sun May 31 20:19:25 2015 +0200 staging: rtl8192e: Remove rtllib_crypt.[ch] It is neither compiled nor used in rtl8192e. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtllib_crypt.c | 254 -------------------------------- drivers/staging/rtl8192e/rtllib_crypt.h | 34 ----- 2 files changed, 288 deletions(-) commit c2f8b4ab8c05398a08ec91c2958f62ebc55296f4 Author: Mateusz Kulikowski Date: Sun May 31 20:19:24 2015 +0200 staging: rtl8192e: Replace memcmp() with ether_addr_equal() Use dedicated macro to compare ethernet addresses in probe_rq_parse(). Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtllib_softmac.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 80d2579d8608f5f7642776d8dc5c050a087f9d69 Author: Mateusz Kulikowski Date: Sun May 31 20:19:23 2015 +0200 staging: rtl8192e: Fix DEEP_INDENTATION warning in rtllib_parse_info_param() Move MFIE_TYPE_GENERIC handler to rtllib_parse_mife_generic() function. Code was not altered significantly, therefore in some places it generates LONG_LINE checkpatch.pl warnings. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtllib_rx.c | 397 ++++++++++++++++++----------------- 1 file changed, 210 insertions(+), 187 deletions(-) commit b57ceb19aba7d40403ca985ec565db8db20f4331 Author: Mateusz Kulikowski Date: Sun May 31 20:19:22 2015 +0200 staging: rtl8192e: Fix PREFER_ETHER_ADDR_COPY warnings Replace memcpy() with ether_addr_copy() where possible to make checkpatch.pl happy. Change was target tested (download 1Mb file over WPA2 network) with BUG trap for unaligned addresses in ether_addr_copy() Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 2 +- drivers/staging/rtl8192e/rtl819x_BAProc.c | 13 +++--- drivers/staging/rtl8192e/rtllib_crypt_tkip.c | 19 ++++---- drivers/staging/rtl8192e/rtllib_rx.c | 46 +++++++++--------- drivers/staging/rtl8192e/rtllib_softmac.c | 64 +++++++++++++------------- drivers/staging/rtl8192e/rtllib_softmac_wx.c | 4 +- drivers/staging/rtl8192e/rtllib_tx.c | 24 +++++----- 7 files changed, 89 insertions(+), 83 deletions(-) commit 06c111072892d3f5fed9d73d1becb59d3f33410b Author: Mateusz Kulikowski Date: Sun May 31 20:19:21 2015 +0200 staging: rtl8192e: Make ethernet addresses properly aligned Reorder ethernet addresses allocated on stack or in non-packed structures to keep them aligned(2). Use ETH_ALEN as array length in places where it was hardcoded to 6. Alignment verified using pahole where possible and target-tested with BUG_ON() trap in ether_addr_copy. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 3 +-- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 6 ++---- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 4 ++-- drivers/staging/rtl8192e/rtl819x_Qos.h | 4 ++-- drivers/staging/rtl8192e/rtl819x_TS.h | 2 +- drivers/staging/rtl8192e/rtllib.h | 10 +++++----- drivers/staging/rtl8192e/rtllib_crypt_tkip.c | 3 ++- drivers/staging/rtl8192e/rtllib_rx.c | 6 +++++- drivers/staging/rtl8192e/rtllib_softmac.c | 4 ++-- drivers/staging/rtl8192e/rtllib_tx.c | 3 ++- 10 files changed, 24 insertions(+), 21 deletions(-) commit c7ddc288ebf2aee890828cec26b4fb889a246330 Author: Mateusz Kulikowski Date: Sun May 31 20:19:20 2015 +0200 staging: rtl8192e: accept const MAC address Make set_swcam, setKey and rtllib_probe_resp parameter (MAC address) const. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_cam.c | 4 ++-- drivers/staging/rtl8192e/rtl8192e/rtl_cam.h | 4 ++-- drivers/staging/rtl8192e/rtllib_softmac.c | 3 ++- 3 files changed, 6 insertions(+), 5 deletions(-) commit 1eb7c6c70e9d8e86b7083661e91ae8f6cd1bffd4 Author: Richard Weinberger Date: Sun May 31 23:27:26 2015 +0200 um: Fix mconsole dependency mconsole depends on CONFIG_PROC_FS. Signed-off-by: Richard Weinberger arch/um/Kconfig.um | 1 + 1 file changed, 1 insertion(+) commit 9cd491e8c390d403bdf881808ef409d83266f4b2 Author: Heiner Kallweit Date: Sun May 31 14:44:54 2015 +0200 staging: fbtft: Add support for Himax HX8357D controller The Himax HX8357D is used e.g. by the Adafruit PITFT Plus 3.5". Adafruit added HX8357D support to an own fork of fbtft and support Raspbian only (https://github.com/adafruit/adafruit-rpi-fbtft/). They don't intend to push it upstream but gave me the ok to do so. Original author: Sean Cross I just applied small changes to the driver to align it with the other fbtft drivers. - add "compatible" argument to FBTFT_REGISTER_DRIVER call - add missing MODULE_ALIAS declarations Tested successfully with this display on an RPI2 under Arch Linux ARM (kernel 3.18.13). Signed-off-by: Heiner Kallweit Signed-off-by: Greg Kroah-Hartman drivers/staging/fbtft/Kconfig | 6 + drivers/staging/fbtft/Makefile | 1 + drivers/staging/fbtft/fb_hx8357d.c | 222 +++++++++++++++++++++++++++++++++++++ drivers/staging/fbtft/fb_hx8357d.h | 102 +++++++++++++++++ 4 files changed, 331 insertions(+) commit 5df5910b13e423c54930c4e9f662fd94da856d4f Author: Jakub Sitnicki Date: Sun May 31 15:04:14 2015 +0200 staging: rtl8188eu: Kill dead calls to kill_pid() There is no interface to register PIDs of processes the driver should send a signal to. Remove it. Signed-off-by: Jakub Sitnicki Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/include/drv_types.h | 1 - drivers/staging/rtl8188eu/include/osdep_service.h | 2 -- drivers/staging/rtl8188eu/include/rtw_ioctl.h | 2 -- drivers/staging/rtl8188eu/os_dep/mlme_linux.c | 2 -- drivers/staging/rtl8188eu/os_dep/usb_intf.c | 12 ------------ 5 files changed, 19 deletions(-) commit b5eeed8cb6097c8ea660b6598d36fdbb94065a22 Author: Malcolm Priestley Date: Sun May 31 10:35:28 2015 +0100 staging: vt6655: device_rx_srv check sk_buff is NULL There is a small chance that pRD->pRDInfo->skb could go NULL while the interrupt is processing. Put NULL check on loop to break out. Signed-off-by: Malcolm Priestley Cc: Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6655/device_main.c | 4 ++++ 1 file changed, 4 insertions(+) commit 41b9e5e5164da54c4dd77492d2e3909c38de4fc9 Author: Malcolm Priestley Date: Sun May 31 10:35:27 2015 +0100 staging: vt6655: replace and resize dwIsr dwIsr is not used outside vnt_interrupt_process and should be u32. Move to function and resize to u32. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6655/device.h | 1 - drivers/staging/vt6655/device_main.c | 33 +++++++++++++++++---------------- 2 files changed, 17 insertions(+), 17 deletions(-) commit 2995dfe68a0df4e6b4d27b02a600e9a928ce8175 Author: Malcolm Priestley Date: Sun May 31 10:35:26 2015 +0100 staging: vt6655: vnt_interrupt_process remove camel case. pDevice -> priv Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6655/device_main.c | 103 ++++++++++++++++++----------------- 1 file changed, 52 insertions(+), 51 deletions(-) commit f33d8d63fc8e2e2f98abe78db85ace6d28209e3e Author: Malcolm Priestley Date: Sun May 31 10:35:25 2015 +0100 staging: vt6655: vnt_interrupt_process remove page 0 select Page 1 is fully proctected by lock there is no need to check for it. Page 0 is selected at other times. Remove byOrgPageSel and its calls from function. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6655/device_main.c | 11 ----------- 1 file changed, 11 deletions(-) commit ff1ce1a81e6eec82c224e33d3d23ab3f0002547e Author: Malcolm Priestley Date: Sun May 31 10:35:24 2015 +0100 staging: vt6655: use workqueue for interrupt handling Introduce vnt_interrupt to handle interrupt and use workqueue to queue and queue on vif. Convert device_intr to void call vnt_interrupt_process from vnt_interrupt_work providing vif is valid. This removes troublesome heavy code from the interupt handler and allows to remove atomic from other areas of driver. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6655/device.h | 2 ++ drivers/staging/vt6655/device_main.c | 36 ++++++++++++++++++++++++++---------- 2 files changed, 28 insertions(+), 10 deletions(-) commit da74dbac164863685016c3a4ee06cb9db89a6f28 Author: Malcolm Priestley Date: Sun May 31 10:35:23 2015 +0100 staging: vt6655: remove mib.c/h dead code. Remove from makefile and dead variables Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6655/Makefile | 1 - drivers/staging/vt6655/device.h | 4 -- drivers/staging/vt6655/mib.c | 112 ---------------------------------------- drivers/staging/vt6655/mib.h | 76 --------------------------- 4 files changed, 193 deletions(-) commit 7e4786d1ab5835e7a132dfe1d0589ffe1a575bc9 Author: Malcolm Priestley Date: Sun May 31 10:35:22 2015 +0100 staging: vt6655: Remove call to STAvUpdateIsrStatCounter. This function does not provide any data to users. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6655/device.h | 2 -- drivers/staging/vt6655/device_main.c | 1 - 2 files changed, 3 deletions(-) commit 19327367de63e9b6f9f5a68246ab84bd7b31ebdb Author: Malcolm Priestley Date: Sun May 31 10:35:21 2015 +0100 staging: vt6655: dead code remove STAvUpdate802_11Counter This function is nolonger of any future use. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6655/mib.c | 27 --------------------------- drivers/staging/vt6655/mib.h | 6 ------ 2 files changed, 33 deletions(-) commit 700f6c02582ee43b09ea2ae9d619d652ca87a219 Author: Malcolm Priestley Date: Sun May 31 10:35:20 2015 +0100 staging: vt6655: implement ieee80211_low_level_stats Collect low level stats from mib counter for mac80211 call. Replacing the unused function STAvUpdate802_11Counter. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6655/device.h | 2 ++ drivers/staging/vt6655/device_main.c | 24 +++++++++++++++++++++--- 2 files changed, 23 insertions(+), 3 deletions(-) commit 4d66ea091a4dcc39bae70f1bb2148890da2c8ce9 Author: Fanael Linithien Date: Mon Jun 1 07:15:38 2015 +1000 xfs: fix kernel version in docs Linux v3.20 was released as v4.0. Signed-off-by: Fanael Linithien Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner Documentation/filesystems/xfs.txt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 39e56d9219dd46d696e6a5e1e24870392154dd0f Author: Eric Sandeen Date: Mon Jun 1 07:15:38 2015 +1000 xfs: don't cast string literals The commit: a9273ca5 xfs: convert attr to use unsigned names added these (unsigned char *) casts, but then the _SIZE macros return "7" - size of a pointer minus one - not the length of the string. This is harmless in the kernel, because the _SIZE macros are not used, but as we sync up with userspace, this will matter. I don't think the cast is necessary; i.e. assigning the string literal to an unsigned char *, or passing it to a function expecting an unsigned char *, should be ok, right? Signed-off-by: Eric Sandeen Reviewed-by: Brian Foster Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_format.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 7f884dc198c641c95f5c4325f0d782b1efd298b4 Author: Brian Foster Date: Mon Jun 1 07:15:37 2015 +1000 xfs: fix quota block reservation leak when tp allocates and frees blocks Al Viro reports that generic/231 fails frequently on XFS and bisected the problem to the following commit: 5d11fb4b xfs: rework zero range to prevent invalid i_size updates ... which is just the first commit that happens to cause fsx to reproduce the problem. fsx reproduces via zero range calls. The aforementioned commit overhauls zero range to use hole punch and fallocate. As it turns out, the problem is reproducible on demand using basic hole punch as follows: $ mkfs.xfs -f -m crc=1,finobt=1 $ mount /mnt -o uquota $ xfs_io -f -c "falloc 0 50m" /mnt/file $ for i in $(seq 1 20); do xfs_io -c "fpunch ${i}m 32k" /mnt/file; done $ rm -f /mnt/file $ repquota -us /mnt ... User used soft hard grace used soft hard grace ---------------------------------------------------------------------- root -- 32K 0K 0K 3 0 0 A file is allocated with a single 50m extent. The extent count increases via hole punches until the bmap converts to btree format. The file is removed but quota reports 32k of space usage for the user. This reservation is effectively leaked for the lifetime of the mount. The reason this occurs is because the quota block reservation tracking is confused when a transaction happens to free and allocate blocks at the same time. Consider the following sequence of events: - tp is allocated from xfs_free_file_space() and reserves several blocks for btree management. Blocks are reserved against the dquot and marked as such in the transaction (qtrx->qt_blk_res). - 8 blocks are accounted free when the 32k range is punched out. xfs_trans_mod_dquot() is called with XFS_TRANS_DQ_BCOUNT and sets ->qt_bcount_delta to -8. - Subsequently, a block is allocated against the same transaction by xfs_bmap_extents_to_btree() for btree conversion. A call to xfs_trans_mod_dquot() increases qt_blk_res_used to 1 and qt_bcount_delta to -7. - The transaction is dup'd and committed by xfs_bmap_finish(). xfs_trans_dup_dqinfo() sets the first transaction up such that it has a matching qt_blk_res and qt_blk_res_used of 1. The remaining unused reservation is transferred to the duplicate tp. When the transactions are committed, the dquots are fixed up in xfs_trans_apply_dquot_deltas() according to one of two methods: 1.) If the transaction holds a block reservation (->qt_blk_res != 0), _only_ the unused portion reservation is unaccounted from the dquot. Note that the tp duplication behavior of xfs_bmap_finish() makes it such that qt_blk_res is typically 0 for tp's with unused reservation. 2.) Otherwise, the dquot is fixed up based on the block delta (->qt_bcount_delta) created by the transaction. Therefore, if a transaction has a negative qt_bcount_delta and positive qt_blk_res_used, the former set of blocks that have been removed from the file are never factored out of the in-core dquot reservation. Instead, *_apply_dquot_deltas() sees 1 block used out of a 1 block reservation and believes there is nothing to fix up. The on-disk d_bcount is updated independently from qt_bcount_delta, and thus is correct (and allows the quota usage to correct on remount). To deal with this situation, we effectively want the "used reservation" part of the transaction to be consistent with any freed blocks with respect to quota tracking. For example, if 8 blocks are freed, the subsequent single block allocation does not need to consume the initial reservation made by the tp. Instead, it simply borrows one from the previously freed. One possible implementation of such borrowing is to avoid the blks_res_used increment when bcount_delta is negative. This alone is flawed logic in that it only handles the case where blocks are freed before allocated, however. Rather than add more complexity to manage synchronization between bcount_delta and blks_res_used, kill the latter entirely. blk_res_used is only updated in one place and always in sync with delta_bcount. Therefore, the net block reservation consumption of the transaction is always available from bcount_delta. Calculate the reservation consumption on the fly where necessary based on whether the tp has a reservation and results in a positive net block delta on the inode. Reported-by: Al Viro Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/xfs_quota.h | 1 - fs/xfs/xfs_trans_dquot.c | 28 +++++++++++++++++----------- 2 files changed, 17 insertions(+), 12 deletions(-) commit 2e588a46aace858b2baad755c06c66235e152235 Author: Brian Foster Date: Mon Jun 1 07:15:23 2015 +1000 xfs: always log the inode on unwritten extent conversion The fsync() requirements for crash consistency on XFS are to flush file data and force any in-core inode updates to the log. We currently check whether the inode is pinned to identify whether the log needs to be forced, since a non-zero pin count generally represents an inode that has transactions awaiting a flush to the on-disk log. This is not sufficient in all cases, however. Reports of xfstests test generic/311 failures on ppc64/s390x hosts have identified failures to fsync outstanding inode modifications due to the inode not being pinned at the time of the fsync. This occurs because certain bmap updates can complete by logging bmapbt buffers but without ever dirtying (and thus pinning) the core inode. The following is a specific incarnation of this problem: $ mount $dev /mnt -o noatime,nobarrier $ for i in $(seq 0 2 31); do \ xfs_io -f -c "falloc $((i * 32768)) 32k" -c fsync /mnt/file; \ done $ xfs_io -c "pwrite -S 0 80k 16k" -c fsync -c "pwrite 76k 4k" -c fsync /mnt/file; \ hexdump /mnt/file; \ ./xfstests-dev/src/godown /mnt ... 0000000 0000 0000 0000 0000 0000 0000 0000 0000 * 0013000 cdcd cdcd cdcd cdcd cdcd cdcd cdcd cdcd * 0014000 0000 0000 0000 0000 0000 0000 0000 0000 * 00f8000 $ umount /mnt; mount ... $ hexdump /mnt/file 0000000 0000 0000 0000 0000 0000 0000 0000 0000 * 00f8000 In short, the unwritten extent conversion for the last write is lost despite the fact that an fsync executed before the filesystem was shutdown. Note that this is impossible to reproduce on v5 supers due to unconditional time callbacks for di_changecount and highly difficult to reproduce on CONFIG_HZ=1000 kernels due to those same callbacks frequently updating cmtime prior to the bmap update. CONFIG_HZ=100 reduces timer granularity enough to increase the odds that time updates are skipped and allows this to reproduce within a handful of attempts. To deal with this problem, unconditionally log the core in the unwritten extent conversion path. Fix up logflags after the extent conversion to keep the extent update code consistent with the other extent update helpers. This fixup is not necessary for the other (hole, delay) extent helpers because they execute in the block allocation codepath, which already logs the inode for other reasons (e.g., for di_nblocks). Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_bmap.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit 5334cdae407a5778a297a98a75ca61140e37ebfa Author: Richard Weinberger Date: Sun May 31 22:59:03 2015 +0200 um: Handle tracehook_report_syscall_entry() result tracehook_report_syscall_entry() is allowed to fail, in case of failure we have to abort the current syscall. Signed-off-by: Richard Weinberger arch/um/include/asm/ptrace-generic.h | 2 +- arch/um/kernel/ptrace.c | 6 +++--- arch/um/kernel/skas/syscall.c | 6 +++++- 3 files changed, 9 insertions(+), 5 deletions(-) commit 30b11ee9ae23d78de66b9ae315880af17a64ba83 Author: Richard Weinberger Date: Sun May 31 22:15:58 2015 +0200 um: Remove copy&paste code from init.h As we got rid of the __KERNEL__ abuse, we can directly include linux/compiler.h now. This also allows gcc 5 to build UML. Reported-by: Hans-Werner Hilse Signed-off-by: Richard Weinberger arch/um/include/shared/init.h | 22 +--------------------- 1 file changed, 1 insertion(+), 21 deletions(-) commit 298e20ba8c197e8d429a6c8671550c41c7919033 Author: Richard Weinberger Date: Sun May 31 19:50:57 2015 +0200 um: Stop abusing __KERNEL__ Currently UML is abusing __KERNEL__ to distinguish between kernel and host code (os-Linux). It is better to use a custom define such that existing users of __KERNEL__ don't get confused. Signed-off-by: Richard Weinberger arch/um/Makefile | 7 ++++--- arch/um/drivers/mconsole.h | 2 +- arch/um/include/shared/init.h | 4 ++-- arch/um/include/shared/user.h | 2 +- arch/x86/um/shared/sysdep/tls.h | 6 +++--- 5 files changed, 11 insertions(+), 10 deletions(-) commit acf50b3586f8d8a7530b905e111dda41876d38f4 Author: Hartmut Knaack Date: Sun May 31 14:40:15 2015 +0200 tools:iio:lsiio: add error handling Add error handling to calls which can indicate a major problem by returning an error code. This also involves to change the type of dump_devices() from void to int. Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron tools/iio/lsiio.c | 44 ++++++++++++++++++++++++++++++++------------ 1 file changed, 32 insertions(+), 12 deletions(-) commit 73153fe533bc6209802521fc62d3e3648581a121 Author: Webb Scales Date: Thu Apr 23 09:35:04 2015 -0500 hpsa: use block layer tag for command allocation Rework slave allocation: - separate the tagging support setup from the hostdata setup - make the hostdata setup act consistently when the lookup fails - make the hostdata setup act consistently when the device is not added - set up the queue depth consistently across these scenarios - if the block layer mq support is not available, explicitly enable and activate the SCSI layer tcq support (and do this at allocation-time so that the tags will be available for INQUIRY commands) Tweak slave configuration so that devices which are masked are also not attached. Reviewed-by: Scott Teel Reviewed-by: Kevin Barnett Reviewed-by: Tomas Henzl Reviewed-by: Hannes Reinecke Signed-off-by: Webb Scales Signed-off-by: Don Brace Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 159 ++++++++++++++++++++++++++++++++++++++++++---------- drivers/scsi/hpsa.h | 1 - 2 files changed, 128 insertions(+), 32 deletions(-) commit 53118557b6a9c263e4a80825da367b2116529541 Author: Hartmut Knaack Date: Sun May 31 14:40:14 2015 +0200 tools:iio:iio_utils: add error handling Add error handling to calls which can indicate a major problem by returning an error code. This also sets ret to -ENOENT in iioutils_get_type() and iioutils_get_param_float() to indicate if no matching directory entry was found. Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron tools/iio/iio_utils.c | 265 ++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 223 insertions(+), 42 deletions(-) commit 8b47004a55123b38ed6e8b0d4c8e6427f80a4a45 Author: Robert Elliott Date: Thu Apr 23 09:34:58 2015 -0500 hpsa: add interrupt number to /proc/interrupts interrupt name Add the interrupt number to the interrupt names that appear in /proc/interrupts, so they are unique Also, delete the IRQ and DAC prints. Other parts of the kernel already print the IRQ assignments, and dual-address-cycle support has not been interesting since the parallel PCI bus went from 32 to 64 bits wide. Reviewed-by: Scott Teel Reviewed-by: Kevin Barnett Reviewed-by: Tomas Henzl Reviewed-by: Hannes Reinecke Signed-off-by: Robert Elliott Signed-off-by: Don Brace Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 20 ++++++++++++++------ drivers/scsi/hpsa.h | 1 + 2 files changed, 15 insertions(+), 6 deletions(-) commit 2efa5929cb448266fcfc19d50cb6cd32c59524ef Author: Robert Elliott Date: Thu Apr 23 09:34:53 2015 -0500 hpsa: create workqueue after the driver is ready for use Don't create the resubmit workqueue in hpsa_init_one until everything else is ready to use, so everything can be freed in reverse order of when they were allocated without risking freeing things while workqueue items are still active. Destroy the workqueue in the right order in hpsa_undo_allocations_after_kdump_soft_reset too. Reviewed-by: Scott Teel Reviewed-by: Kevin Barnett Reviewed-by: Tomas Henzl Reviewed-by: Hannes Reinecke Signed-off-by: Robert Elliott Signed-off-by: Don Brace Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 60 +++++++++++++++++++++++++++-------------------------- 1 file changed, 31 insertions(+), 29 deletions(-) commit b2ef480c4b6548e8287dd231256f7d5eccd0279d Author: Robert Elliott Date: Thu Apr 23 09:34:48 2015 -0500 hpsa: fix try_soft_reset error handling If registering the special interrupt handlers in hpsa_init_one before a soft reset fails, the error exit needs to deallocate everything that was allocated before. Reviewed-by: Scott Teel Reviewed-by: Kevin Barnett Reviewed-by: Tomas Henzl Reviewed-by: Hannes Reinecke Signed-off-by: Robert Elliott Signed-off-by: Don Brace Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) commit 9ecd953aa8b07819af0f1f561f52cb4bd43e8735 Author: Robert Elliott Date: Thu Apr 23 09:34:43 2015 -0500 hpsa: cleanup for init_one step 2 in kdump In hpsa_undo_allocations_after_kdump_soft_reset, the things allocated in hpsa_init_one step 2 - h->resubmit_wq and h->lockup_detected need to be freed, in the right order. Reviewed-by: Scott Teel Reviewed-by: Kevin Barnett Reviewed-by: Tomas Henzl Reviewed-by: Hannes Reinecke Signed-off-by: Robert Elliott Signed-off-by: Don Brace Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit d498757c5efd41d0add8eb733c6c7e491b51ac8c Author: Robert Elliott Date: Thu Apr 23 09:34:37 2015 -0500 hpsa: skip free_irq calls if irqs are not allocated If try_soft_reset fails to re-allocate irqs, the error exit starts with free_irq calls, which generate kernel WARN messages since they were already freed a few lines earlier. Jump to the next exit label to skip the free_irq calls. Reviewed-by: Scott Teel Reviewed-by: Kevin Barnett Reviewed-by: Tomas Henzl Reviewed-by: Hannes Reinecke Signed-off-by: Robert Elliott Signed-off-by: Don Brace Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 943a7021e89cc83a505732a87703a429ac9b03ba Author: Robert Elliott Date: Thu Apr 23 09:34:32 2015 -0500 hpsa: call pci_release_regions after pci_disable_device Despite the fact that PCI devices are enabled in this order: 1. pci_enable_device 2. pci_request_regions Documentation/PCI/pci.txt specifies that they be undone in this order 1. pci_disable_device 2. pci_release_regions Tested by injecting error in the call to pci_enable_device in hpsa_init_one -> hpsa_pci_init: [ 9.095001] hpsa 0000:04:00.0: failed to enable PCI device [ 9.095005] hpsa: probe of 0000:04:00.0 failed with error -22 (-22 is -EINVAL) and then in the call pci_request_regions: [ 9.178623] hpsa 0000:04:00.0: failed to obtain PCI resources [ 9.178671] hpsa: probe of 0000:04:00.0 failed with error -16 (-16 is -EBUSY) and then by adding reset_devices to the kernel command line and inject errors into the two calls to pci_enable_device and the call to pci_request_regions in hpsa_init_one -> hpsa_init_reset_devices. (inject on 6th call, 1st to hpsa2) [ 62.413750] hpsa 0000:04:00.0: Failed to enable PCI device (inject on 7th call, 2nd to hpsa2) [ 62.807571] hpsa 0000:04:00.0: failed to enable device. (inject on 8th call, 3rd to hpsa2) [ 62.697198] hpsa 0000:04:00.0: failed to obtain PCI resources [ 62.697234] hpsa: probe of 0000:04:00.0 failed with error -16 The reset_devices path calls return -ENODEV on failure rather than passing the result, which apparently doesn't cause the pci driver to print anything. Reviewed-by: Scott Teel Reviewed-by: Kevin Barnett Reviewed-by: Tomas Henzl Reviewed-by: Hannes Reinecke Signed-off-by: Robert Elliott Signed-off-by: Don Brace Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) commit b3a7ba7c942ccac8340a93b2bac2254480b1615f Author: Webb Scales Date: Thu Apr 23 09:34:27 2015 -0500 hpsa: performance tweak for hpsa_scatter_gather() Divide the loop in hpsa_scatter_gather() into two, one for the initial SG list and a second one for the chained list, if any. This allows the conditional check which resets the indicies for the chained list to be performed outside the loop instead of being done on every iteration inside the loop. Reviewed-by: Scott Teel Reviewed-by: Kevin Barnett Reviewed-by: Tomas Henzl Reviewed-by: Hannes Reinecke Signed-off-by: Webb Scales Signed-off-by: Don Brace Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 39 ++++++++++++++++++++++++++++----------- 1 file changed, 28 insertions(+), 11 deletions(-) commit b69324ff93127b1a2042612ff2aa95b42af873a0 Author: Webb Scales Date: Thu Apr 23 09:34:22 2015 -0500 hpsa: refactor and rework support for sending TEST_UNIT_READY Factor out the code which sends the TEST_UNIT_READY from wait_for_device_to_become_ready() into its own function. Move the code which waits for the TEST_UNIT_READY from wait_for_device_to_become_ready() into its own function. If a logical drive has failed, resetting it will ensure outstanding commands are completed, but polling it with TURs after the reset will not work because the TURs will never report good status. So successful TUR should not be a condition of success for the device reset error handler. Reviewed-by: Scott Teel Reviewed-by: Kevin Barnett Reviewed-by: Tomas Henzl Reviewed-by: Hannes Reinecke Signed-off-by: Webb Scales Signed-off-by: Don Brace Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 117 ++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 87 insertions(+), 30 deletions(-) commit a58e7e53b410c8ed05f0b1b0f37411c76b8e253f Author: Webb Scales Date: Thu Apr 23 09:34:16 2015 -0500 hpsa: don't return abort request until target is complete Don't return from the abort request until the target command is complete. Mark outstanding commands which have a pending abort, and do not send them to the host if we can avoid it. If the current command has been aborted, do not call the SCSI command completion routine from the I/O path: when the abort returns successfully, the SCSI mid-layer will handle the completion implicitly. The following race was possible in theory. 1. LLD is requested to abort a scsi command 2. scsi command completes 3. The struct CommandList associated with 2 is made available. 4. new io request to LLD to another LUN re-uses struct CommandList 5. abort handler follows scsi_cmnd->host_scribble and finds struct CommandList and tries to aborts it. Now we have aborted the wrong command. Fix by resetting the scsi_cmd field of struct CommandList upon completion and making the abort handler check that the scsi_cmd pointer in the CommadList struct matches the scsi_cmnd that it has been asked to abort. Reviewed-by: Scott Teel Reviewed-by: Kevin Barnett Reviewed-by: Tomas Henzl Reviewed-by: Hannes Reinecke Signed-off-by: Webb Scales Signed-off-by: Don Brace Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 120 ++++++++++++++++++++++++++++++++++++------------ drivers/scsi/hpsa.h | 1 + drivers/scsi/hpsa_cmd.h | 2 + 3 files changed, 93 insertions(+), 30 deletions(-) commit 8a0ff92cc342e6be0f4db5183b27446796c15d91 Author: Webb Scales Date: Thu Apr 23 09:34:11 2015 -0500 hpsa: use helper routines for finishing commands cleanup command completions Reviewed-by: Scott Teel Reviewed-by: Kevin Barnett Reviewed-by: Tomas Henzl Reviewed-by: Hannes Reinecke Signed-off-by: Webb Scales Signed-off-by: Don Brace Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 78 +++++++++++++++++++++-------------------------------- 1 file changed, 31 insertions(+), 47 deletions(-) commit 8be986cc57f1f802a8cd8542ac309a0e6ac24a4b Author: Stephen Cameron Date: Thu Apr 23 09:34:06 2015 -0500 hpsa: add support sending aborts to physical devices via the ioaccel2 path add support for tmf when in ioaccel2 mode Reviewed-by: Scott Teel Reviewed-by: Kevin Barnett Reviewed-by: Tomas Henzl Reviewed-by: Hannes Reinecke Signed-off-by: Joe Handzik Signed-off-by: Don Brace Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 136 +++++++++++++++++++++++++++++++++++++++++++++--- drivers/scsi/hpsa.h | 1 + drivers/scsi/hpsa_cmd.h | 6 ++- 3 files changed, 135 insertions(+), 8 deletions(-) commit ddcf834fe0aa7153c239d69c7abf005dbf4bf52a Author: Robert Elliott Date: Thu Apr 23 09:34:00 2015 -0500 hpsa: do not print ioaccel2 warning messages about unusual completions. The SCSI midlayer already prints more detail about completions, and has logging level options to filter them if not wanted. These just slow down the system if a lot of errors occur, stressing error handling even more. Reviewed-by: Scott Teel Reviewed-by: Kevin Barnett Reviewed-by: Tomas Henzl Reviewed-by: Hannes Reinecke Signed-off-by: Robert Elliott Signed-off-by: Don Brace Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 24 ------------------------ 1 file changed, 24 deletions(-) commit 4b761557d79a321e51050edc1da01f95872f0e70 Author: Robert Elliott Date: Thu Apr 23 09:33:54 2015 -0500 hpsa: clean up some error reporting output in abort handler report more useful information on aborts Reviewed-by: Scott Teel Reviewed-by: Kevin Barnett Reviewed-by: Tomas Henzl Reviewed-by: Hannes Reinecke Signed-off-by: Robert Elliott Signed-off-by: Don Brace Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) commit 105a3dbc74522c294c0b537d9af46ebb23a82791 Author: Robert Elliott Date: Thu Apr 23 09:33:48 2015 -0500 hpsa: clean up driver init Improve initialization error handling in hpsa_init_one Clean up style and indent issues Rename functions for consistency Improve error messaging on allocations Fix return status from hpsa_put_ctlr_into_performant_mode Correct free order in hpsa_init_one using new function hpsa_free_performant_mode Prevent inadvertent use of null pointers by nulling out the parent structures and zeroing out associated size variables. Reviewed-by: Scott Teel Reviewed-by: Kevin Barnett Reviewed-by: Tomas Henzl Reviewed-by: Hannes Reinecke Signed-off-by: Robert Elliott Signed-off-by: Don Brace Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 243 +++++++++++++++++++++++++++++++++------------------- 1 file changed, 157 insertions(+), 86 deletions(-) commit 2dd02d742535fe0114f1957afe8685856bdfebac Author: Robert Elliott Date: Thu Apr 23 09:33:43 2015 -0500 hpsa: correct return values from driver functions. correct return codes for error conditions Reviewed-by: Scott Teel Reviewed-by: Kevin Barnett Reviewed-by: Tomas Henzl Reviewed-by: Hannes Reinecke Signed-off-by: Robert Elliott Signed-off-by: Don Brace Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit bf43caf316926fced73cfddad9f1b3f4251717e5 Author: Robert Elliott Date: Thu Apr 23 09:33:38 2015 -0500 hpsa: do not check cmd_alloc return value - it cannnot return NULL cmd_alloc can no longer return NULL, so don't check for NULL any more (which is unreachable code). Reviewed-by: Scott Teel Reviewed-by: Kevin Barnett Reviewed-by: Tomas Henzl Reviewed-by: Hannes Reinecke Signed-off-by: Robert Elliott Signed-off-by: Don Brace Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 77 +++++++++++------------------------------------------ 1 file changed, 15 insertions(+), 62 deletions(-) commit c40820d511d4c9bfc8a64f5c920fa0782f5da673 Author: Joe Handzik Date: Thu Apr 23 09:33:32 2015 -0500 hpsa: add more ioaccel2 error handling, including underrun statuses. improve ioaccel2 error handling, including better handling of underrun statuses Reviewed-by: Scott Teel Reviewed-by: Kevin Barnett Signed-off-by: Joe Handzik Signed-off-by: Don Brace Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 31 ++++++++++++++++++++++++++----- drivers/scsi/hpsa_cmd.h | 6 ++++++ 2 files changed, 32 insertions(+), 5 deletions(-) commit d9a729f3e4d23d4fe8ca458d88d7b982ad3a1600 Author: Webb Scales Date: Thu Apr 23 09:33:27 2015 -0500 hpsa: add ioaccel sg chaining for the ioaccel2 path Increase the request size for ioaccel2 path. The error, if any, returned by hpsa_allocate_ioaccel2_sg_chain_blocks to hpsa_alloc_ioaccel2_cmd_and_bft should be returned upstream rather than assumed to be -ENOMEM. This differs slightly from hpsa_alloc_ioaccel1_cmd_and_bft, which does not call another hpsa_allocate function and only has -ENOMEM to return from some kmalloc calls. Reviewed-by: Scott Teel Reviewed-by: Kevin Barnett Signed-off-by: Robert Elliott Signed-off-by: Don Brace Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 125 +++++++++++++++++++++++++++++++++++++++++++++++----- drivers/scsi/hpsa.h | 1 + 2 files changed, 116 insertions(+), 10 deletions(-) commit 1fb7c98aa41b98da6713923d4872e21ce68dd000 Author: Robert Elliott Date: Thu Apr 23 09:33:22 2015 -0500 hpsa: refactor freeing of resources into more logical functions refactor freeing of resources into more logical functions Reviewed-by: Scott Teel Reviewed-by: Kevin Barnett Reviewed-by: Tomas Henzl Reviewed-by: Hannes Reinecke Signed-off-by: Robert Elliott Signed-off-by: Don Brace Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 104 ++++++++++++++++++++++++++++------------------------ 1 file changed, 56 insertions(+), 48 deletions(-) commit 195f2c65f99e0476b64d01d4022cfec70a0b1fe5 Author: Robert Elliott Date: Thu Apr 23 09:33:17 2015 -0500 hpsa: clean up error handling refactor error cleanup and shutdown disable interrupts and pci_disable_device on critical failures add hpsa_free_cfgtables function Reviewed-by: Scott Teel Reviewed-by: Kevin Barnett Reviewed-by: Tomas Henzl Reviewed-by: Hannes Reinecke Signed-off-by: Robert Elliott Signed-off-by: Don Brace Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 92 +++++++++++++++++++++++++++++++++-------------------- 1 file changed, 58 insertions(+), 34 deletions(-) commit cc64c817a8e044f911b2bf36170c49a6dbf776c8 Author: Robert Elliott Date: Thu Apr 23 09:33:12 2015 -0500 hpsa: break hpsa_free_irqs_and_disable_msix into two functions replace calls to hpsa_free_irqs_and_disable_msix with hpsa_free_irqs and hpsa_disable_interrupt_mode Reviewed-by: Scott Teel Reviewed-by: Kevin Barnett Reviewed-by: Tomas Henzl Reviewed-by: Hannes Reinecke Signed-off-by: Robert Elliott Signed-off-by: Don Brace Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) commit ecf418d14fa7ddb28cc7f99c4f7298542b3bd9f3 Author: Joe Handzik Date: Thu Apr 23 09:33:04 2015 -0500 hpsa: Get queue depth from identify physical bmic for physical disks. get drive queue depth to help avoid task set full conditions. Reviewed-by: Scott Teel Reviewed-by: Kevin Barnett Reviewed-by: Tomas Henzl Reviewed-by: Hannes Reinecke Signed-off-by: Joe Handzik Signed-off-by: Don Brace Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 33 +++++++++++++-------------------- 1 file changed, 13 insertions(+), 20 deletions(-) commit a3144e0b7c2d09ec0a60ef4697c7c3c0bb299ecb Author: Joe Handzik Date: Thu Apr 23 09:32:59 2015 -0500 hpsa: use ioaccel2 path to submit IOs to physical drives in HBA mode. use ioaccel2 path to submit I/O to physical drives in HBA mode Reviewed-by: Scott Teel Reviewed-by: Kevin Barnett Reviewed-by: Tomas Henzl Reviewed-by: Hannes Reinecke Signed-off-by: Joe Handzik Signed-off-by: Don Brace Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 10 +++++++++- drivers/scsi/hpsa.h | 1 + 2 files changed, 10 insertions(+), 1 deletion(-) commit a473d86cc9f5a4d4ac758d86bd526c8dce1f7906 Author: Robert Elliott Date: Thu Apr 23 09:32:54 2015 -0500 hpsa: print accurate SSD Smart Path Enabled status offload_enabled changes are deferred until after the added/updated prints occur, so the values are incorrect. defer printing SSD Smart Path Enabled status information until the information is correct Reviewed-by: Scott Teel Reviewed-by: Kevin Barnett Reviewed-by: Tomas Henzl Reviewed-by: Hannes Reinecke Signed-off-by: Robert Elliott Signed-off-by: Don Brace Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 592a0ad5aee754e931a35292e073eb7fd64ddd5e Author: Webb Scales Date: Thu Apr 23 09:32:48 2015 -0500 hpsa: factor out hpsa_ioaccel_submit function clean up command submission Reviewed-by: Scott Teel Reviewed-by: Kevin Barnett Reviewed-by: Tomas Henzl Reviewed-by: Hannes Reinecke Signed-off-by: Webb Scales Signed-off-by: Don Brace Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 91 ++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 66 insertions(+), 25 deletions(-) commit 4a8da22b325da7e7bcea442d1c5d250cfa08c1e8 Author: Stephen Cameron Date: Thu Apr 23 09:32:43 2015 -0500 hpsa: try resubmitting down raid path on task set full allow the controller firmware to queue up commands when the ioaccel device queue is full. Reviewed-by: Scott Teel Reviewed-by: Kevin Barnett Reviewed-by: Tomas Henzl Reviewed-by: Hannes Reinecke Signed-off-by: Don Brace Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 4a4384ceda6cf646f1f0810eefe3f79e8f01e5d8 Author: Stephen Cameron Date: Thu Apr 23 09:32:37 2015 -0500 hpsa: do not ignore return value of hpsa_register_scsi add error handling for failure when registering with SCSI subsystem. Reviewed-by: Scott Teel Reviewed-by: Kevin Barnett Reviewed-by: Tomas Henzl Reviewed-by: Hannes Reinecke Signed-off-by: Don Brace Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 360c73bdde4537397f70b17cadd8139ff1f75ab9 Author: Stephen Cameron Date: Thu Apr 23 09:32:32 2015 -0500 hpsa: factor out hpsa_init_cmd function Factor out hpsa_cmd_init from cmd_alloc(). We also need this for resubmitting commands down the default RAID path when they have returned from the ioaccel paths with errors. In particular, reinitialize the cmd_type and busaddr fields as these will not be correct for submitting down the RAID stack path after ioaccel command completion. This saves time when submitting commands. Reviewed-by: Scott Teel Reviewed-by: Kevin Barnett Reviewed-by: Tomas Henzl Reviewed-by: Hannes Reinecke Signed-off-by: Don Brace Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 77 +++++++++++++++++++++++++++++++++---------------- drivers/scsi/hpsa_cmd.h | 2 +- 2 files changed, 53 insertions(+), 26 deletions(-) commit d37ffbe4d52d4e7003174d9e157cd4dfa59987af Author: Robert Elliott Date: Thu Apr 23 09:32:27 2015 -0500 hpsa: make function names consistent make function names more consistent and meaningful Reviewed-by: Scott Teel Reviewed-by: Kevin Barnett Reviewed-by: Tomas Henzl Reviewed-by: Hannes Reinecke Signed-off-by: Robert Elliott Signed-off-by: Don Brace Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) commit 963f54cef23b7e8c91bbe60b978b5f4a3e990f2c Author: Hartmut Knaack Date: Sun May 31 14:40:05 2015 +0200 tools:iio:iio_event_monitor: add error handling Add error handling to calls which can indicate a major problem by returning an error code. Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron tools/iio/iio_event_monitor.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit e985c58f5129d16793c5dfe17f7d381308a7a981 Author: Stephen Cameron Date: Thu Apr 23 09:32:22 2015 -0500 hpsa: allow lockup detected to be viewed via sysfs expose a detected lockup via sysfs Reviewed-by: Scott Teel Reviewed-by: Kevin Barnett Reviewed-by: Tomas Henzl Reviewed-by: Hannes Reinecke Signed-off-by: Don Brace Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit 6bb7cac8551e2d60edbd25a6d046cc45932c4c3e Author: Hartmut Knaack Date: Sun May 31 14:40:04 2015 +0200 tools:iio:generic_buffer: add error handling Add error handling to calls which can indicate a major problem by returning an error code. Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron tools/iio/generic_buffer.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) commit 9437ac43ed0536efb3ede6c034a0b6f36c19a693 Author: Stephen Cameron Date: Thu Apr 23 09:32:16 2015 -0500 hpsa: hpsa decode sense data for io and tmf In hba mode, we could get sense data in descriptor format so we need to handle that. It's possible for CommandStatus to have value 0x0D "TMF Function Status", which we should handle. We will get this from a P1224 when aborting a non-existent tag, for example. The "ScsiStatus" field of the errinfo field will contain the TMF function status value. Reviewed-by: Scott Teel Reviewed-by: Kevin Barnett Reviewed-by: Tomas Henzl Signed-off-by: Don Brace Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 145 ++++++++++++++++++++++++++++++++++++------------ drivers/scsi/hpsa_cmd.h | 9 +++ 2 files changed, 119 insertions(+), 35 deletions(-) commit 433b5f4dba2307e33ea65169009965f26496b6df Author: Stephen Cameron Date: Thu Apr 23 09:32:11 2015 -0500 hpsa: decrement h->commands_outstanding in fail_all_outstanding_cmds make tracking of outstanding commands more robust Reviewed-by: Scott Teel Reviewed-by: Kevin Barnett Reviewed-by: Tomas Henzl Reviewed-by: Hannes Reinecke Signed-off-by: Don Brace Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 1 + 1 file changed, 1 insertion(+) commit c8ce9903cba202936999c2c9463fbb370ee145ba Author: Hartmut Knaack Date: Sun May 31 14:40:03 2015 +0200 tools:iio:generic_buffer: catch errors for arguments conversion Add handler to catch errors on conversion of numerical arguments. Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron tools/iio/generic_buffer.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 9b5c48c28f5651f5e36150131bd7b29cc85a3512 Author: Stephen Cameron Date: Thu Apr 23 09:32:06 2015 -0500 hpsa: clean up aborts Do not send aborts to logical devices that do not support aborts Instead of relying on what the Smart Array claims for supporting logical drives, simply try an abort and see how it responds at device discovery time. This way devices that do support aborts (e.g. MSA2000) can work and we do not waste time trying to send aborts to logical drives that do not support them (important for high IOPS devices.) While rescanning devices only test whether devices support aborts the first time we encounter a device rather than every time. Some Smart Arrays required aborts to be sent with tags in the wrong endian byte order. To avoid having to know about this, we would send two aborts with tags with each endian order. On high IOPS devices, this turns out to be not such a hot idea. So we now have a list of the devices that got the tag backwards, and we only send it one way. If all available commands are outstanding and the abort handler is invoked, the abort handler may not be able to allocate a command and may busy-wait excessivly. Reserve a small number of commands for the abort handler and limit the number of concurrent abort requests to the number of reserved commands. Reviewed-by: Scott Teel Reviewed-by: Kevin Barnett Reviewed-by: Tomas Henzl Reviewed-by: Hannes Reinecke Signed-off-by: Don Brace Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 176 ++++++++++++++++++++++++++++++++++++++++++---------- drivers/scsi/hpsa.h | 4 ++ 2 files changed, 147 insertions(+), 33 deletions(-) commit 25163bd516afa01e254f90f9c6ae919b3d075fb5 Author: Webb Scales Date: Thu Apr 23 09:32:00 2015 -0500 hpsa: rework controller command submission Allow driver initiated commands to have a timeout. It does not yet try to do anything with timeouts on such commands. We are sending a reset in order to get rid of a command we want to abort. If we make it return on the same reply queue as the command we want to abort, the completion of the aborted command will not race with the completion of the reset command. Rename hpsa_scsi_do_simple_cmd_core() to hpsa_scsi_do_simple_cmd(), since this function is the interface for issuing commands to the controller and not the "core" of that implementation. Add a parameter to it which allows the caller to specify the reply queue to be used. Modify existing callers to specify the default reply queue. Rename __hpsa_scsi_do_simple_cmd_core() to hpsa_scsi_do_simple_cmd_core(), since this routine is the "core" implementation of the "do simple command" function and there is no longer any other function with a similar name. Modify the existing callers of this routine (other than hpsa_scsi_do_simple_cmd()) to instead call hpsa_scsi_do_simple_cmd(), since it will now accept the reply_queue paramenter, and it provides a controller lock-up check. (Also, tweak two related message strings to make them distinct from each other.) Submitting a command to a locked up controller always results in a timeout, so check for controller lock-up before submitting. This is to enable fixing a race between command completions and abort completions on different reply queues in a subsequent patch. We want to be able to specify which reply queue an abort completion should occur on so that it cannot race the completion of the command it is trying to abort. The following race was possible in theory: 1. Abort command is sent to hardware. 2. Command to be aborted simultaneously completes on another reply queue. 3. Hardware receives abort command, decides command has already completed and indicates this to the driver via another different reply queue. 4. driver processes abort completion finds that the hardware does not know about the command, concludes that therefore the command cannot complete, returns SUCCESS indicating to the mid-layer that the scsi_cmnd may be re-used. 5. Command from step 2 is processed and completed back to scsi mid layer (after we already promised that would never happen.) Fix by forcing aborts to complete on the same reply queue as the command they are aborting. Piggybacking device rescanning functionality onto the lockup detection thread is not a good idea because if the controller locks up during device rescanning, then the thread could get stuck, then the lockup isn't detected. Use separate work queues for device rescanning and lockup detection. Detect controller lockup in abort handler. After a lockup is detected, return DO_NO_CONNECT which results in immediate termination of commands rather than DID_ERR which results in retries. Modify detect_controller_lockup() to return the result, to remove the need for a separate check. Reviewed-by: Scott Teel Reviewed-by: Kevin Barnett Signed-off-by: Webb Scales Signed-off-by: Don Brace Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 334 ++++++++++++++++++++++++++++++++++++------------ drivers/scsi/hpsa_cmd.h | 5 + 2 files changed, 254 insertions(+), 85 deletions(-) commit 0d96ef5ff4086a4143eacb036cf28affd1db0cab Author: Webb Scales Date: Thu Apr 23 09:31:55 2015 -0500 hpsa: clean up host, channel, target, lun prints We had a mix of formats used for specifying controller, bus, target, and lun address of devices. change to the format used by the scsi midlayer and upper layer (2:3:0:0) so you can easily follow the information from hpsa to scsi midlayer to sd upper layer. Also add this information: - product ID - vendor ID - RAID level - SSD Smath Path capable and enabled - exposure level (sg-only) Example: hpsa 0000:04:00.0: added scsi 2:0:0:0: Direct-Access HP LOGICAL VOLUME RAID-0 SSDSmartPathCap+ En+ Exp=4 scsi 2:0:0:0: Direct-Access HP LOGICAL VOLUME 10.0 PQ: 0 ANSI: 5 sd 2:0:0:0: [sdr] 12501713072 512-byte logical blocks: (6.40 TB/5.82 TiB) sd 2:0:0:0: [sdr] 4096-byte physical blocks sd 2:0:0:0: [sdr] Attached SCSI disk sd 2:0:0:0: Attached scsi generic sg20 type 0 Reviewed-by: Scott Teel Reviewed-by: Kevin Barnett Reviewed-by: Tomas Henzl Reviewed-by: Hannes Reinecke Signed-off-by: Robert Elliott Signed-off-by: Don Brace Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 70 ++++++++++++++++++++++++++--------------------------- 1 file changed, 35 insertions(+), 35 deletions(-) commit e9e45b43b8f06273d9b78f187042dff0bf5be0a5 Author: Hartmut Knaack Date: Sun May 31 14:40:02 2015 +0200 tools:iio: catch errors in string allocation This patch catches errors in string allocation in generic_buffer.c, iio_event_monitor.c, iio_utils.c and lsiio.c. Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron tools/iio/generic_buffer.c | 4 +++- tools/iio/iio_event_monitor.c | 2 ++ tools/iio/iio_utils.c | 9 ++++++--- tools/iio/lsiio.c | 15 +++++++++++++-- 4 files changed, 24 insertions(+), 6 deletions(-) commit 41ce4c355765a5e0a8e1c8ff8d7257160bbae93d Author: Stephen Cameron Date: Thu Apr 23 09:31:47 2015 -0500 hpsa: add masked physical devices into h->dev[] array Cache the ioaccel handle so that when we need to abort commands sent down the ioaccel2 path, we can look up the LUN ID in h->dev[] instead of having to do I/O to the controller. Add a field to elements in h->dev[] to keep track of how the device is exposed to the SCSI mid layer: Not at all, without an upper level driver (no_uld_attach) or normally exposed. Since masked physical devices are now present in h->dev[] array it would be perfectly possible to do echo scsi add-single-device 2 2 0 0 > /proc/scsi/scsi and bring them online. This was previously not allowed for masked physical devices. Ensure that the mapping of physical disks to logical drives gets updated in a consistent way when a RAID migration occurs and is not touched until updates to it are complete. now instead of doing CISS_REPORT_PHYSICAL to get the LUNID for the physical disk in hpsa_get_pdisk_of_ioaccel2(), just get it out of h->dev[] where we already have it cached. do not touch phys_disk[] for ioaccel enabled logical drives during rescan Reviewed-by: Scott Teel Reviewed-by: Kevin Barnett Reviewed-by: Tomas Henzl Reviewed-by: Hannes Reinecke Signed-off-by: Don Brace Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 253 +++++++++++++++++++++++++----------------------- drivers/scsi/hpsa.h | 6 ++ drivers/scsi/hpsa_cmd.h | 3 + 3 files changed, 141 insertions(+), 121 deletions(-) commit 2156b179993e3d5b422976181ba17d91153313e1 Author: Hartmut Knaack Date: Sun May 31 14:40:01 2015 +0200 tools:iio:iio_utils: mark private function static Functions _write_sysfs_int() and _write_sysfs_string() are supposed to be called only by public wrappers, so make them static. Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron tools/iio/iio_utils.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 096f9b862e605fe08bb30e4f7a381684a8ff82ed Author: Hartmut Knaack Date: Sun May 31 14:40:00 2015 +0200 tools:iio:iio_utils: implement digit calculation Previously, the return value of sscanf() was treated as an indication of the digits it would have read. Yet, sscanf() only returns the amount of valid matches. Therefore, introduce a function to calculate the decimal digits of the read number and use this one to commence a colon search, as originally intended. Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron tools/iio/iio_utils.c | 35 +++++++++++++++++++++++++++++++---- 1 file changed, 31 insertions(+), 4 deletions(-) commit 6b6c1cd7da65225d61107bbe87495450cc0c5b11 Author: Tomas Henzl Date: Thu Apr 2 15:25:54 2015 +0200 hpsa: dont meddle with hw which isn't ours (cciss) The hpsa driver touches the hardware before checking the pci-id table. This way, especially in kdump, it may confuse the proper driver (cciss). Signed-off-by: Tomas Henzl Acked-by: Don Brace Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) commit b9ea9dcdb9ac43cd83c2c9f47116c3852447e72d Author: Tomas Henzl Date: Tue Feb 17 17:40:22 2015 +0100 cciss: correct the non-resettable board list The hpsa driver carries a more recent version, copy the table from there. Signed-off-by: Tomas Henzl Acked-by: Don Brace Signed-off-by: James Bottomley drivers/block/cciss.c | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) commit c854c38559c5b5f920c6ee6448c4a719cdd9ef1d Author: Tomas Henzl Date: Tue Feb 17 17:40:21 2015 +0100 cciss: remove duplicate entries from board_type struct and devices not supported by this driver from unresettable list Signed-off-by: Tomas Henzl Acked-by: Don Brace Signed-off-by: James Bottomley drivers/block/cciss.c | 4 ---- 1 file changed, 4 deletions(-) commit e298e73bd766768707a7af440691ce2f418f5acc Author: Chao Yu Date: Sun May 31 13:37:35 2015 -0400 ext4 crypto: release crypto resource on module exit Crypto resource should be released when ext4 module exits, otherwise it will cause memory leak. Signed-off-by: Chao Yu Signed-off-by: Theodore Ts'o fs/ext4/super.c | 1 + 1 file changed, 1 insertion(+) commit abdd438b26b409eaccf9c847fcf9c3ab52f1959e Author: Theodore Ts'o Date: Sun May 31 13:35:39 2015 -0400 ext4 crypto: handle unexpected lack of encryption keys Fix up attempts by users to try to write to a file when they don't have access to the encryption key. Signed-off-by: Theodore Ts'o fs/ext4/crypto.c | 3 ++- fs/ext4/crypto_policy.c | 3 ++- fs/ext4/file.c | 17 ++++++++++------- 3 files changed, 14 insertions(+), 9 deletions(-) commit 4d3c4e5b8cae3bb45ba933a22670504239958aa1 Author: Theodore Ts'o Date: Sun May 31 13:35:32 2015 -0400 ext4 crypto: allocate the right amount of memory for the on-disk symlink Previously we were taking the required padding when allocating space for the on-disk symlink. This caused a buffer overrun which could trigger a krenel crash when running fsstress. Signed-off-by: Theodore Ts'o fs/ext4/crypto_fname.c | 25 +++++++++++++++---------- fs/ext4/ext4.h | 1 + fs/ext4/namei.c | 32 +++++++++++++++++++++----------- 3 files changed, 37 insertions(+), 21 deletions(-) commit 82d0d3e7e69ab509b5c91b61f12bd3593a7c6dcb Author: Theodore Ts'o Date: Sun May 31 13:35:22 2015 -0400 ext4 crypto: clean up error handling in ext4_fname_setup_filename Fix a potential memory leak where fname->crypto_buf.name wouldn't get freed in some error paths, and also make the error handling easier to understand/audit. Signed-off-by: Theodore Ts'o fs/ext4/crypto_fname.c | 35 ++++++++++++++++------------------- 1 file changed, 16 insertions(+), 19 deletions(-) commit d87f6d78e996bbba27b649c0e0eed7a37d6b73ba Author: Theodore Ts'o Date: Sun May 31 13:35:14 2015 -0400 ext4 crypto: policies may only be set on directories Thanks to Chao Yu for pointing out we were missing this check. Signed-off-by: Theodore Ts'o fs/ext4/crypto_policy.c | 2 ++ 1 file changed, 2 insertions(+) commit c2faccaff6a16d331df832135ede6d4774c2d2a0 Author: Theodore Ts'o Date: Sun May 31 13:35:09 2015 -0400 ext4 crypto: enforce crypto policy restrictions on cross-renames Thanks to Chao Yu for pointing out the need for this check. Signed-off-by: Theodore Ts'o fs/ext4/namei.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit e709e9df64928a99d41da75910b844976a535db7 Author: Theodore Ts'o Date: Sun May 31 13:35:02 2015 -0400 ext4 crypto: encrypt tmpfile located in encryption protected directory Factor out calls to ext4_inherit_context() and move them to __ext4_new_inode(); this fixes a problem where ext4_tmpfile() wasn't calling calling ext4_inherit_context(), so the temporary file wasn't getting protected. Since the blocks for the tmpfile could end up on disk, they really should be protected if the tmpfile is created within the context of an encrypted directory. Signed-off-by: Theodore Ts'o fs/ext4/ext4.h | 9 +++++++++ fs/ext4/ialloc.c | 26 ++++++++++++++++++++------ fs/ext4/namei.c | 29 +---------------------------- 3 files changed, 30 insertions(+), 34 deletions(-) commit 6bc445e0ff44c7e83225124c214d350407e68ccf Author: Theodore Ts'o Date: Sun May 31 13:34:57 2015 -0400 ext4 crypto: make sure the encryption info is initialized on opendir(2) Signed-off-by: Theodore Ts'o fs/ext4/dir.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 5555702955326ac1b9971f81569d8a6851384d49 Author: Theodore Ts'o Date: Sun May 31 13:34:29 2015 -0400 ext4 crypto: set up encryption info for new inodes in ext4_inherit_context() Set up the encryption information for newly created inodes immediately after they inherit their encryption context from their parent directories. Signed-off-by: Theodore Ts'o fs/ext4/crypto_policy.c | 1 + 1 file changed, 1 insertion(+) commit 95ea68b4c7105179f507d31f7bf571623373aa0b Author: Theodore Ts'o Date: Sun May 31 13:34:24 2015 -0400 ext4 crypto: fix memory leaks in ext4_encrypted_zeroout ext4_encrypted_zeroout() could end up leaking a bio and bounce page. Fortunately it's not used much. While we're fixing things up, refactor out common code into the static function alloc_bounce_page() and fix up error handling if mempool_alloc() fails. Signed-off-by: Theodore Ts'o fs/ext4/crypto.c | 62 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 31 insertions(+), 31 deletions(-) commit c936e1ec2879e43599d801dfa6fe58e7ccfee433 Author: Theodore Ts'o Date: Sun May 31 13:34:22 2015 -0400 ext4 crypto: use per-inode tfm structure As suggested by Herbert Xu, we shouldn't allocate a new tfm each time we read or write a page. Instead we can use a single tfm hanging off the inode's crypt_info structure for all of our encryption needs for that inode, since the tfm can be used by multiple crypto requests in parallel. Also use cmpxchg() to avoid races that could result in crypt_info structure getting doubly allocated or doubly freed. Signed-off-by: Theodore Ts'o fs/ext4/crypto.c | 64 ++--------------------------- fs/ext4/crypto_fname.c | 48 +--------------------- fs/ext4/crypto_key.c | 108 +++++++++++++++++++++++++++++++++++-------------- fs/ext4/dir.c | 3 -- fs/ext4/ext4.h | 5 +-- fs/ext4/ext4_crypto.h | 3 -- fs/ext4/namei.c | 17 ++++---- fs/ext4/super.c | 2 +- fs/ext4/symlink.c | 2 +- 9 files changed, 96 insertions(+), 156 deletions(-) commit 71dea01ea2edb73f3c5d9a0cd7ba028bb9313287 Author: Theodore Ts'o Date: Sun May 31 13:31:37 2015 -0400 ext4 crypto: require CONFIG_CRYPTO_CTR if ext4 encryption is enabled On arm64 this is apparently needed for CTS mode to function correctly. Otherwise attempts to use CTS return ENOENT. Change-Id: I732ea9a5157acc76de5b89edec195d0365f4ca63 Signed-off-by: Theodore Ts'o fs/ext4/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 614def7013574ffcd54019b6df40ac1c0df754af Author: Theodore Ts'o Date: Sun May 31 13:31:34 2015 -0400 ext4 crypto: shrink size of the ext4_crypto_ctx structure Some fields are only used when the crypto_ctx is being used on the read path, some are only used on the write path, and some are only used when the structure is on free list. Optimize memory use by using a union. Signed-off-by: Theodore Ts'o fs/ext4/crypto.c | 31 ++++++++++--------------------- fs/ext4/ext4_crypto.h | 21 ++++++++++++++------- fs/ext4/page-io.c | 2 +- fs/ext4/readpage.c | 10 +++++----- 4 files changed, 30 insertions(+), 34 deletions(-) commit d2313084e2c3488e254796617fcda45d69731b21 Author: Richard Weinberger Date: Sun May 31 19:21:51 2015 +0200 um: Catch unprotected user memory access If the kernel tries to access user memory without copy_from_user() a trap will happen as kernel and userspace run in different processes on the host side. Currently this special page fault cannot be resolved and will happen over and over again. As result UML will lockup. This patch allows the page fault code to detect that situation and causes a panic() such that the root cause of the unprotected memory access can be found and fixed. Signed-off-by: Richard Weinberger arch/um/kernel/trap.c | 5 +++++ 1 file changed, 5 insertions(+) commit dc8b5d6e633f8e54f70594d0be87aaf401ea0559 Author: Hartmut Knaack Date: Sun May 31 14:39:59 2015 +0200 tools:iio:iio_utils: check amount of matches fscanf() usually returns the number of input items successfully matched and assigned, which can be fewer than provided (or even zero). Add a check in iioutils_get_type() to make sure all items are matched. Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron tools/iio/iio_utils.c | 4 ++++ 1 file changed, 4 insertions(+) commit 8e926134ef15267f65ddfc7389c8078234610295 Author: Hartmut Knaack Date: Sun May 31 14:39:58 2015 +0200 tools:iio:generic_buffer: sign-extend and shift data Refactor process_scan() to handle signed and unsigned data, respect shifts and the data mask for 2, 4 and 8 byte sized scan elements. Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron tools/iio/generic_buffer.c | 97 +++++++++++++++++++++++++++++----------------- 1 file changed, 62 insertions(+), 35 deletions(-) commit e83a47cf6a5bdbd3d5677db13ae4df22f5e24b08 Author: Hartmut Knaack Date: Sun May 31 14:39:57 2015 +0200 tools:iio:generic_buffer: pass up right error code find_type_by_name() returns a valid error code in case of an error. Pass this code up instead of an artificial one. Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron tools/iio/generic_buffer.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 8749948a1bc0aff24e493f89de40e2ff95a83baf Author: Hartmut Knaack Date: Sun May 31 14:39:56 2015 +0200 tools:iio:generic_buffer: fix check of errno Since errno contains the value of any of the defined error names, a negation will not lead to the desired match. Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron tools/iio/generic_buffer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5fdb8c6127c3c594360fb5f2959a724809c0032e Author: Hartmut Knaack Date: Sun May 31 14:39:49 2015 +0200 tools:iio:iio_event_monitor: save right errno Move up error handling code to preserve the errno coming from ioctl(), before it may be changed by close(). Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron tools/iio/iio_event_monitor.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 2b6a6e67af6f8f644a48f75efc1f44544c0d74f6 Author: Hartmut Knaack Date: Sun May 31 14:39:48 2015 +0200 tools:iio: save errno first The man-page of errno states, that errno should be saved before doing any library call, as that call may have changed the value of errno. So, when encountering any error, save errno first. This patch affects generic_buffer.c, iio_event_monitor.c and iio_utils.c. Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron tools/iio/generic_buffer.c | 2 +- tools/iio/iio_event_monitor.c | 6 +++--- tools/iio/iio_utils.c | 14 +++++++------- 3 files changed, 11 insertions(+), 11 deletions(-) commit f96d055e4b38c64123f211f0521f834d649cd01c Author: Hartmut Knaack Date: Sun May 31 14:39:47 2015 +0200 tools:iio:lsiio: add closedir before exit In dump_channels() the DIR *dp was left open on exit. Close it and check for errors. Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron tools/iio/lsiio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 121b5e505fe86ea52603c946865d658a5fe8130b Author: Hartmut Knaack Date: Sun May 31 14:39:45 2015 +0200 tools:iio:iio_utils: fix allocation handling In build_channel_array(), count needs to be decreased in more places since current->name and current->generic_name would be freed on the error path, although they have not been allocated, yet. This also requires to free current->name, when it is allocated, but current->generic_name is not yet allocated. Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron tools/iio/iio_utils.c | 4 ++++ 1 file changed, 4 insertions(+) commit 63f05c855f3825b89b92cd21df0415e6e32af3dd Author: Hartmut Knaack Date: Sun May 31 14:39:44 2015 +0200 tools:iio: free channel-array completely In iio_utils.c build_channel_array() dynamically allocates the string generic_name in the current iio_channel_info, which doesn't got freed in case of an error. This dynamically allocated channel-array is used by generic_buffer, and needs to be freed on the error/exit path. Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron tools/iio/generic_buffer.c | 8 +++++++- tools/iio/iio_utils.c | 4 +++- 2 files changed, 10 insertions(+), 2 deletions(-) commit 66dd08fde06e5ad6f0f86c7a780d60973e9d9cf0 Author: Hartmut Knaack Date: Sun May 31 14:39:43 2015 +0200 tools:iio:iio_utils: free scan_el_dir on exit In the error path, the string scan_el_dir got freed, while it was missing when build_channel_array() finished without errors. Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron tools/iio/iio_utils.c | 1 + 1 file changed, 1 insertion(+) commit d3ccfc41f971105404694e8478b5e60625e46967 Author: Hartmut Knaack Date: Sun May 31 14:39:42 2015 +0200 tools:iio:generic_buffer: free dev_dir_name on exit Make sure to free dev_dir_name in case of an error or regular exit. Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron tools/iio/generic_buffer.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit a71bfb4a6aabfe5e6f145883020153103c7fdfba Author: Hartmut Knaack Date: Sun May 31 14:39:41 2015 +0200 tools:iio:generic_buffer: fix order of freeing data data gets allocated before buffer_access, so it should be freed in reverse order. Otherwise, if allocating buffer_access fails, an attempt to free it would be taken, which should not happen. Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron tools/iio/generic_buffer.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6c684465587aab2a0d2712ee755c0164fa33efd1 Author: Richard Weinberger Date: Wed May 13 23:02:14 2015 +0200 um: Fix warning in setup_signal_stack_si() Fixes: arch/x86/um/signal.c: In function ‘setup_signal_stack_si’: include/asm-generic/uaccess.h:146:27: warning: initialization from incompatible pointer type [enabled by default] __typeof__(*(ptr)) __x = (x); \ ^ arch/x86/um/signal.c:544:10: note: in expansion of macro ‘__put_user’ err |= __put_user(ksig->ka.sa.sa_restorer, Signed-off-by: Richard Weinberger arch/x86/um/signal.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit f8d65d27e677da0ce33de570e3068308a77ed2b1 Author: Richard Weinberger Date: Tue May 12 00:17:28 2015 +0200 um: Rework uaccess code Rework UML's uaccess code to reuse as much as possible from asm-generic/uaccess.c. Signed-off-by: Richard Weinberger arch/um/include/asm/thread_info.h | 2 +- arch/um/include/asm/uaccess.h | 176 ++++++-------------------------------- arch/um/kernel/skas/uaccess.c | 47 ++++------ arch/x86/um/asm/checksum.h | 1 + arch/x86/um/asm/elf.h | 2 - arch/x86/um/asm/processor.h | 2 + arch/x86/um/asm/segment.h | 8 ++ 7 files changed, 54 insertions(+), 184 deletions(-) commit 1d04c8d77934d9406cc8219d97be2f0188f502d2 Author: Richard Weinberger Date: Tue May 12 00:14:39 2015 +0200 um: Add uaccess.h to ldt.c ...for userspace memory access. Signed-off-by: Richard Weinberger arch/x86/um/ldt.c | 1 + 1 file changed, 1 insertion(+) commit 7017f42f3a6c3222a6f2c26ca44ad07a958cd78d Author: Richard Weinberger Date: Tue May 12 00:13:05 2015 +0200 um: Add uaccess.h to syscalls_64.c It's using put_user() and needs this header. Signed-off-by: Richard Weinberger arch/x86/um/syscalls_64.c | 1 + 1 file changed, 1 insertion(+) commit 9b46e2128e2506d88aa81c3c17eec42a5792089c Author: Richard Weinberger Date: Tue May 12 00:09:52 2015 +0200 um: Add asm/elf.h to vma.c um_vdso_addr is defined in asm/elf.h. Signed-off-by: Richard Weinberger arch/x86/um/vdso/vma.c | 1 + 1 file changed, 1 insertion(+) commit 2779567346fc229fc286d0793f6f5e41f67aafe9 Author: Richard Weinberger Date: Tue May 12 00:07:07 2015 +0200 um: Cleanup mem_32/64.c headers Include only headers we really need. Signed-off-by: Richard Weinberger arch/x86/um/mem_32.c | 3 +-- arch/x86/um/mem_64.c | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) commit d6d244d4df91ee4b468233050542c7482d705e69 Author: Varka Bhadram Date: Fri May 29 10:56:58 2015 +0530 cc2520: update current channel This patch updates the current channel to 11. This is the default value on reset. Signed-off-by: Varka Bhadram Signed-off-by: Marcel Holtmann drivers/net/ieee802154/cc2520.c | 2 ++ 1 file changed, 2 insertions(+) commit 322fe2d1beb7b381640999b48a7fb136e0870bb3 Author: Varka Bhadram Date: Fri May 29 10:56:57 2015 +0530 cc2520: update initial transmit power value CC2520 has the default 0dBm transmit power level on reset. This patch update initial value of transmit power with 0dBm value. Signed-off-by: Varka Bhadram Cc: Brad Campbell Signed-off-by: Marcel Holtmann drivers/net/ieee802154/cc2520.c | 2 ++ 1 file changed, 2 insertions(+) commit e10c1674e31558807fcccfbf3dbebbc1cad9099c Author: Varka Bhadram Date: Fri May 29 10:56:56 2015 +0530 cc2520: add set transmit power setting support This patch adds support for seeting tx power values for cc2520 and also for the combination of CC2520-CC2591. Signed-off-by: Varka Bhadram Cc: Brad Campbell Signed-off-by: Marcel Holtmann drivers/net/ieee802154/cc2520.c | 102 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) commit 1a1bc59c5f7657387d1a4b45d63248fed55ab88c Author: Varka Bhadram Date: Fri May 29 10:56:55 2015 +0530 cc2520: fix CC2591 handling This patch changes tha way of handling of cc2591-cc2520 combination by moving amplified variable from platform data to private data. This will be useful in other sections like tx power support. Signed-off-by: Varka Bhadram Cc: Brad Campbell Signed-off-by: Marcel Holtmann drivers/net/ieee802154/cc2520.c | 10 ++++++++-- include/linux/spi/cc2520.h | 1 - 2 files changed, 8 insertions(+), 3 deletions(-) commit aad1b0b5d3e0e4cdadd695b7188873ba614ca4ef Author: Varka Bhadram Date: Fri May 29 10:56:54 2015 +0530 cc2520: fix in default tx power setting Initially we dont have the tx power settings from the user-space. Now we have the support for seeting the tx power level. So lets use the default tx power setting for the radio. Signed-off-by: Varka Bhadram Cc: Brad Campbell Signed-off-by: Marcel Holtmann drivers/net/ieee802154/cc2520.c | 8 -------- 1 file changed, 8 deletions(-) commit bc6e17b8ccd40895751537579646dae9de8ea7a1 Author: Stefan Schmidt Date: Fri May 29 10:51:28 2015 +0200 MAINTAINERS: Add myself as maintainer for the atusb driver Signed-off-by: Stefan Schmidt Reviewed-by: Varka Bhadram Acked-by: Alexander Aring Signed-off-by: Marcel Holtmann MAINTAINERS | 8 ++++++++ 1 file changed, 8 insertions(+) commit c61c9bd81bea4e2c86058123e8d221a40b9c58a3 Author: Stefan Schmidt Date: Fri May 29 10:51:27 2015 +0200 ieee802154/atusb: Add .set_promiscuous_mode driver operation Allow monitor mode operation with disabled AACK in hardware. Signed-off-by: Stefan Schmidt Reviewed-by: Varka Bhadram Acked-by: Alexander Aring Signed-off-by: Marcel Holtmann drivers/net/ieee802154/atusb.c | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) commit 8702cb0f21905a2a96f61c5106a2c42d41c17999 Author: Stefan Schmidt Date: Fri May 29 10:51:26 2015 +0200 ieee802154/atusb: Add .set_txpower operation to the driver Atusb uses the at86rf231 transceiver so we can use the same calculation for txpower settings for it. Signed-off-by: Stefan Schmidt Reviewed-by: Varka Bhadram Acked-by: Alexander Aring Signed-off-by: Marcel Holtmann drivers/net/ieee802154/atusb.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) commit bdc78737278ee77fdcbccaee5b6f7eda4e0e7602 Author: Stefan Schmidt Date: Fri May 29 10:51:25 2015 +0200 ieee802154/atusb: Add function for partial register writes With this function we can set individual bits in the registers if needed. With the old SR_VALUE macro we could only set one bit in the register which was ok for some scenarios but not for all. With this subreg write function we can now set more bits defined by the mask while not touching the rest. We start using it for the current SR_VALUE use case and will use it more in upcoming patches. Signed-off-by: Stefan Schmidt Reviewed-by: Varka Bhadram Acked-by: Alexander Aring Signed-off-by: Marcel Holtmann drivers/net/ieee802154/atusb.c | 45 +++++++++++++++++++++++++----------------- 1 file changed, 27 insertions(+), 18 deletions(-) commit daf4e2c89254ed6eb8cf7ef60f614edebfdb9f3a Author: Lennert Buytenhek Date: Thu May 28 15:38:43 2015 +0300 ieee802154: Fix EUI-64 station address validation. Refuse to allow setting an EUI-64 group address as an interface address, as those are not valid station addresses. Signed-off-by: Lennert Buytenhek Acked-by: Alexander Aring Signed-off-by: Marcel Holtmann include/linux/ieee802154.h | 10 ++++------ net/mac802154/iface.c | 4 ++-- 2 files changed, 6 insertions(+), 8 deletions(-) commit 3b369bd212d5cabb46cff0e863298971b382bbd6 Author: Lennert Buytenhek Date: Thu May 28 15:38:32 2015 +0300 ieee802154: Fix generation of random EUI-64 addresses. Currently, ieee802154_random_extended_addr() has a 50% chance of generating a group (multicast) address, while this function is used for generating station addresses (which can't be group addresses) for interfaces that don't have a hardware-provided address. Also, in case get_random_bytes() generates the EUI-64 address 00:00:00:00:00:00:00:00 (extremely unlikely), which is an invalid address, ieee802154_random_extended_addr() reacts by changing it to 01:00:00:00:00:00:00:00, which is an invalid station address as well, as it is a group address. This patch changes the address generation procedure to grab eight random bytes, treat that as an EUI-64, and then clear the Group address bit and set the Locally Administered bit, which is in line with how eth_random_addr() generates random EUI-48s. Signed-off-by: Lennert Buytenhek Acked-by: Alexander Aring Signed-off-by: Marcel Holtmann include/linux/ieee802154.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit f74a14e870c80d6261afed66d4bad779c1213e03 Author: Richard Weinberger Date: Tue Apr 21 20:52:26 2015 +0200 um: Remove hppfs hppfs (honeypot procfs) was an attempt to use UML as honeypot. It was never stable nor in heavy use. As Al Viro and Christoph Hellwig pointed some major issues out it is better to let it die. Signed-off-by: Richard Weinberger arch/um/Kconfig.um | 15 -- fs/Makefile | 1 - fs/hppfs/Makefile | 6 - fs/hppfs/hppfs.c | 766 ----------------------------------------------------- 4 files changed, 788 deletions(-) commit 89520d999683cb945d7540efd0944b3af2db9a54 Author: Richard Weinberger Date: Sun May 31 13:11:19 2015 +0200 um: Move syscall() declaration into os.h Signed-off-by: Richard Weinberger arch/um/include/shared/os.h | 2 ++ arch/um/kernel/ksyms.c | 1 - 2 files changed, 2 insertions(+), 1 deletion(-) commit a791b1565f828f926a54f1f5a612890ce0f00e6f Author: Chen Gang Date: Sat Oct 4 21:11:31 2014 +0800 um: kernel: ksyms: Export symbol syscall() for fixing modpost issue syscall() is implemented in libc.so/a (e.g. for glibc, in "syscall.o"), so for normal ".o" files, it is undefined, neither can be found within kernel wide, so will break modpost. Since ".o" files is OK, can simply export 'syscall' symbol, let modpost know about that, then can fix this issue. The related error (with allmodconfig under um): MODPOST 1205 modules ERROR: "syscall" [fs/hostfs/hostfs.ko] undefined! Signed-off-by: Chen Gang Signed-off-by: Richard Weinberger arch/um/kernel/ksyms.c | 3 +++ 1 file changed, 3 insertions(+) commit 5f32943b5e9a48bf3269430e1a7a210411e0cc98 Author: Nicolas Iooss Date: Sun Oct 12 13:02:13 2014 +0200 um/os-Linux: Use char[] for syscall_stub declarations When declaring __syscall_stub_start, use the same type in UML userspace code as in arch/um/include/asm/sections.h. While at it, also declare batch_syscall_stub as char[]. Signed-off-by: Nicolas Iooss Signed-off-by: Richard Weinberger arch/um/os-Linux/skas/mem.c | 6 +++--- arch/um/os-Linux/skas/process.c | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) commit 05eacfd00ccf239a24cfb409b084fa126c2e9468 Author: Nicolas Iooss Date: Sun Oct 12 13:02:12 2014 +0200 um: Use char[] for linker script address declarations The linker script defines some variables which are declared either with type char[] in include/asm-generic/sections.h or with a meaningless integer type in arch/um/include/asm/sections.h. Fix this inconsistency by declaring every variable char[]. Signed-off-by: Nicolas Iooss Signed-off-by: Richard Weinberger arch/um/include/asm/sections.h | 4 ++-- arch/um/kernel/physmem.c | 4 ++-- arch/um/kernel/skas/mmu.c | 4 ++-- arch/um/kernel/um_arch.c | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) commit d5f20be7cab85e6e701751323eea77c7935ae522 Author: Nicolas Iooss Date: Sun Oct 12 13:02:11 2014 +0200 um: Create asm/sections.h arch/um/kernel/dyn.lds.S and arch/um/kernel/uml.lds.S define some UML-specific symbols. These symbols are used in the kernel part of UML with extern declarations. Move these declarations to a new header, asm/sections.h, like other architectures do. Signed-off-by: Nicolas Iooss Signed-off-by: Richard Weinberger arch/um/include/asm/Kbuild | 1 - arch/um/include/asm/sections.h | 9 +++++++++ arch/um/kernel/physmem.c | 3 +-- arch/um/kernel/skas/mmu.c | 3 +-- arch/um/kernel/um_arch.c | 2 -- 5 files changed, 11 insertions(+), 7 deletions(-) commit 2ce39109a5062b06df440fbf2993ce9ab3bf6e08 Author: York Sun Date: Tue May 12 18:03:42 2015 +0800 EDAC, mpc85xx: Extend error address to 64 bit Extend err_addr to cover 64 bits for DDR errors. Signed-off-by: York Sun Acked-by: Johannes Thumshirn Cc: Mingkai.hu@freescale.com Link: http://lkml.kernel.org/r/1431425022-44766-2-git-send-email-Wenbin.Song@freescale.com Signed-off-by: songwenbin Signed-off-by: Borislav Petkov drivers/edac/mpc85xx_edac.c | 10 +++++++--- drivers/edac/mpc85xx_edac.h | 1 + 2 files changed, 8 insertions(+), 3 deletions(-) commit 74210267a56eba10d6252215e72b095c257dcaf7 Author: York Sun Date: Tue May 12 18:03:41 2015 +0800 EDAC, mpc8xxx: Adapt for FSL SoC Remove mpc83xx and mpc85xx as dependency. Signed-off-by: York Sun Acked-by: Johannes Thumshirn Cc: Mingkai.hu@freescale.com Link: http://lkml.kernel.org/r/1431425022-44766-1-git-send-email-Wenbin.Song@freescale.com Signed-off-by: songwenbin Signed-off-by: Borislav Petkov drivers/edac/Kconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a9ab2184f451ec78af245ebb8b663d8700d44672 Merge: abf2e7d 8ea64e2 Author: David S. Miller Date: Sun May 31 01:07:06 2015 -0700 Merge tag 'batman-adv-for-davem' of git://git.open-mesh.org/linux-merge Antonio Quartulli says: ==================== Included changes: - checkpatch fixes - code cleanup - debugfs component is now compiled only if DEBUG_FS is selected - update copyright years - disable by default not-so-user-safe features ==================== Signed-off-by: David S. Miller commit abf2e7d6e2e315b32ee00067a69aaad2cf4e1b3f Author: Alexei Starovoitov Date: Thu May 28 19:26:02 2015 -0700 bpf: add missing rcu protection when releasing programs from prog_array Normally the program attachment place (like sockets, qdiscs) takes care of rcu protection and calls bpf_prog_put() after a grace period. The programs stored inside prog_array may not be attached anywhere, so prog_array needs to take care of preserving rcu protection. Otherwise bpf_tail_call() will race with bpf_prog_put(). To solve that introduce bpf_prog_put_rcu() helper function and use it in 3 places where unattached program can decrement refcnt: closing program fd, deleting/replacing program in prog_array. Fixes: 04fd61ab36ec ("bpf: allow bpf programs to tail-call other bpf programs") Reported-by: Martin Schwidefsky Signed-off-by: Alexei Starovoitov Acked-by: Daniel Borkmann Signed-off-by: David S. Miller include/linux/bpf.h | 6 +++++- kernel/bpf/arraymap.c | 4 ++-- kernel/bpf/syscall.c | 19 ++++++++++++++++++- 3 files changed, 25 insertions(+), 4 deletions(-) commit d1f5f2bb91094c9e6f7c98610d637ffdaedef116 Merge: 282c320 5defde5 Author: David S. Miller Date: Sun May 31 00:23:11 2015 -0700 Merge branch 'hv_netvsc-next' K. Y. Srinivasan says: ==================== hv_netvsc: Implement NUMA aware memory allocation Allocate both receive buffer and send buffer from the NUMA node assigned to the primary channel. ==================== Signed-off-by: David S. Miller commit 5defde5946676ee23cd6a9d0e1de899410f4a33f Author: K. Y. Srinivasan Date: Thu May 28 17:08:07 2015 -0700 hv_netvsc: Allocate the sendbuf in a NUMA aware way Allocate the send buffer in a NUMA aware way. Signed-off-by: K. Y. Srinivasan Signed-off-by: David S. Miller drivers/net/hyperv/netvsc.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 0a726c2b499e390b1c1fc3092bd789f2192a2d03 Author: K. Y. Srinivasan Date: Thu May 28 17:08:06 2015 -0700 hv_netvsc: Allocate the receive buffer from the correct NUMA node Allocate the receive bufer from the NUMA node assigned to the primary channel. Signed-off-by: K. Y. Srinivasan Signed-off-by: David S. Miller drivers/net/hyperv/netvsc.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 34d2e4584ae594eff29d1595d47d7d044e57f834 Author: Masahiro Yamada Date: Tue May 26 13:28:48 2015 +0900 serial: 8250: include from serial_8250.h The header file, include/linux/serial_8250.h, contains references to UART_LSR_BRK_ERROR_BITS and UART_MSR_ANY_DELTA that are defined in . Signed-off-by: Masahiro Yamada Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman include/linux/serial_8250.h | 1 + 1 file changed, 1 insertion(+) commit 74db22cb3a16dcd782a31236eb139f5865804ae6 Author: Ramneek Mehresh Date: Fri May 29 11:28:30 2015 +0530 drivers:usb:fsl: Fix compilation error for fsl ehci drv Fix compilation error in fsl ehci drv because ehci_reset() and ehci_adjust_port_wakeup_flags() were not exported, and are used when PM is enabled Signed-off-by: Ramneek Mehresh Acked-by: Alan Stern Signed-off-by: Greg Kroah-Hartman drivers/usb/host/ehci-hcd.c | 3 ++- drivers/usb/host/ehci-hub.c | 3 ++- drivers/usb/host/ehci.h | 3 +++ 3 files changed, 7 insertions(+), 2 deletions(-) commit c5d496ad98c212e7d074040504b7737afb4d8bd7 Author: Yoshihiro Shimoda Date: Tue May 26 20:13:43 2015 +0900 usb: renesas_usbhs: Don't disable the pipe if Control write status stage This patch fixes an issue that sometimes this controller is not able to complete the Control write status stage. This driver should enable DCPCTR.CCPL and PID_BUF to complete the status stage. However, if this driver detects the ctrl_stage interruption first before the control write data is received, this driver will clear the PID_BUF wrongly in the usbhsf_pio_try_pop(). To avoid this issue, this patch doesn't clear the PID_BUF in the usbhsf_pio_try_pop(). (Since also the privious code doesn't disable the PID_BUF after a control transfer was finished, this patch doesn't have any side efforts.) Signed-off-by: Yoshihiro Shimoda Signed-off-by: Greg Kroah-Hartman drivers/usb/renesas_usbhs/fifo.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit 5e582ff309288898be3744f093ce2d726f4747fe Author: Kazuya Mizuguchi Date: Tue May 26 20:13:42 2015 +0900 usb: renesas_usbhs: Fix fifo unclear in usbhsf_prepare_pop This patch fixes an issue for control write. When usbhsf_prepare_pop() is called after this driver called a gadget setup function, this controller doesn't receive the control write data. So, this patch adds a code to clear the fifo for control write in usbhsf_prepare_pop(). Signed-off-by: Kazuya Mizuguchi Signed-off-by: Yoshihiro Shimoda Signed-off-by: Greg Kroah-Hartman drivers/usb/renesas_usbhs/fifo.c | 5 +++++ 1 file changed, 5 insertions(+) commit 282c320d33541d61f4ab91248448040c4ebab1fc Author: Wang Long Date: Fri May 29 01:02:08 2015 +0000 netevent: remove automatic variable in register_netevent_notifier() Remove automatic variable 'err' in register_netevent_notifier() and return the result of atomic_notifier_chain_register() directly. Signed-off-by: Wang Long Signed-off-by: David S. Miller net/core/netevent.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 583d3f5af2a6dfa7866715d9e062dbfb3b66a6f0 Merge: 5289e4a ed6c413 Author: David S. Miller Date: Sun May 31 00:02:30 2015 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next Pablo Neira Ayuso says: ==================== Netfilter updates for net-next The following patchset contains Netfilter updates for net-next, they are: 1) default CONFIG_NETFILTER_INGRESS to y for easier compile-testing of all options. 2) Allow to bind a table to net_device. This introduces the internal NFT_AF_NEEDS_DEV flag to perform a mandatory check for this binding. This is required by the next patch. 3) Add the 'netdev' table family, this new table allows you to create ingress filter basechains. This provides access to the existing nf_tables features from ingress. 4) Kill unused argument from compat_find_calc_{match,target} in ip_tables and ip6_tables, from Florian Westphal. ==================== Signed-off-by: David S. Miller commit 5289e4a03fb9ba79f0ad065c26024afe379c3d35 Merge: 3d2f6d4 25977ac Author: David S. Miller Date: Sat May 30 23:51:37 2015 -0700 Merge branch 'systemport-next' Florian Fainelli says: ==================== net: systemport: misc improvements These patches are highly inspired by changes from Petri on bcmgenet, last patch is a misc fix that I had pending for a while, but is not a candidate for 'net' at this point. ==================== Signed-off-by: David S. Miller commit 25977ac77d62b3de19908979ac84c8fd5809de6f Author: Florian Fainelli Date: Thu May 28 15:24:44 2015 -0700 net: systemport: Add a check for oversized packets Occasionnaly we may get oversized packets from the hardware which exceed the nomimal 2KiB buffer size we allocate SKBs with. Add an early check which drops the packet to avoid invoking skb_over_panic() and move on to processing the next packet. Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bcmsysport.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 138c3f03b017e261316a4f1ec793e1ff74516def Author: Nikhil Badola Date: Tue May 26 17:15:29 2015 +0530 drivers:usb:fsl: Add support for USB controller version-2.5 Add support for USB controller version-2.5 used in T4240 rev2.0, T1024, T1040, T2080, LS1021A Signed-off-by: Nikhil Badola Signed-off-by: Greg Kroah-Hartman drivers/usb/host/fsl-mph-dr-of.c | 5 +++++ include/linux/fsl_devices.h | 1 + 2 files changed, 6 insertions(+) commit d7c444e5467bab8d703c6c9b41ee615b081ec46c Author: Nikhil Badola Date: Tue May 26 17:14:42 2015 +0530 drivers:usb:fsl: Check IP version 2.4 for mph USB controller Check IP version 2.4 for multi port host USB controller and return FSL_USB_VER_2_4 macro Signed-off-by: Nikhil Badola Signed-off-by: Greg Kroah-Hartman drivers/usb/host/fsl-mph-dr-of.c | 3 +++ 1 file changed, 3 insertions(+) commit fb6d1f7df5d25299fd7b3e84b72b8851d3634764 Author: Robert Schlabbach Date: Tue May 26 00:27:30 2015 +0200 usb: core: Fix USB 3.0 devices lost in NOTATTACHED state after a hub port reset Fix USB 3.0 devices lost in NOTATTACHED state after a hub port reset. Dissolve the function hub_port_finish_reset() completely and divide the actions to be taken into those which need to be done after each reset attempt and those which need to be done after the full procedure is complete, and place them in the appropriate places in hub_port_reset(). Also, remove an unneeded forward declaration of hub_port_reset(). Verbose Problem Description: USB 3.0 devices may be "lost for good" during a hub port reset. This makes Linux unable to boot from USB 3.0 devices in certain constellations of host controllers and devices, because the USB device is lost during initialization, preventing the rootfs from being mounted. The underlying problem is that in the affected constellations, during the processing inside hub_port_reset(), the hub link state goes from 0 to SS.inactive after the initial reset, and back to 0 again only after the following "warm" reset. However, hub_port_finish_reset() is called after each reset attempt and sets the state the connected USB device based on the "preliminary" status of the hot reset to USB_STATE_NOTATTACHED due to SS.inactive, yet when the following warm reset is complete and hub_port_finish_reset() is called again, its call to set the device to USB_STATE_DEFAULT is blocked by usb_set_device_state() which does not allow taking USB devices out of USB_STATE_NOTATTACHED state. Thanks to Alan Stern for guiding me to the proper solution and how to submit it. Link: http://lkml.kernel.org/r/trinity-25981484-72a9-4d46-bf17-9c1cf9301a31-1432073240136%20()%203capp-gmx-bs27 Signed-off-by: Robert Schlabbach Cc: stable Acked-by: Alan Stern Signed-off-by: Greg Kroah-Hartman drivers/usb/core/hub.c | 82 ++++++++++++++++++++------------------------------ 1 file changed, 33 insertions(+), 49 deletions(-) commit f0e6a326deec8b51ee12f82a34057efd3d0979b8 Author: Abhishek Bist Date: Wed May 27 23:54:19 2015 +0530 USB: hcd.h : Removed an unnecessary function prototype usb_find_interface_driver() This function is used to call in early version of linux kernel in order to find out the interface used by a usb device. But now it's use is completely abolished. So,it would be relevant to remove this obselete function from kernel mainline. Signed-off-by: Abhishek Bist Signed-off-by: Greg Kroah-Hartman include/linux/usb/hcd.h | 2 -- 1 file changed, 2 deletions(-) commit c73b01837eeeba91b9c22c67c6372a6b73f08473 Author: Florian Fainelli Date: Thu May 28 15:24:43 2015 -0700 net: systemport: rewrite bcm_sysport_rx_refill Currently, bcm_sysport_desc_rx() calls bcm_sysport_rx_refill() at the end of Rx packet processing loop, after the current Rx packet has already been passed to napi_gro_receive(). However, bcm_sysport_rx_refill() might fail to allocate a new Rx skb, thus leaving a hole on the Rx queue where no valid Rx buffer exists. To eliminate this situation: 1. Rewrite bcm_sysport_rx_refill() to retain the current Rx skb on the Rx queue if a new replacement Rx skb can't be allocated and DMA-mapped. In this case, the data on the current Rx skb is effectively dropped. 2. Modify bcm_sysport_desc_rx() to call bcm_sysport_rx_refill() at the top of Rx packet processing loop, so that the new replacement Rx skb is already in place before the current Rx skb is processed. This is loosely inspired from d6707bec5986 ("net: bcmgenet: rewrite bcmgenet_rx_refill()") Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bcmsysport.c | 81 +++++++++++++++--------------- 1 file changed, 41 insertions(+), 40 deletions(-) commit baf387a8edaa4a55afeaf4f498d3891ddcb03fb7 Author: Florian Fainelli Date: Thu May 28 15:24:42 2015 -0700 net: systemport: Pre-calculate and utilize cb->bd_addr There is a 1:1 mapping between the software maintained control block in priv->rx_cbs and the buffer address in priv->rx_bds, such that there is no need to keep computing the buffer address when refiling a control block. Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bcmsysport.c | 18 +++++++++--------- drivers/net/ethernet/broadcom/bcmsysport.h | 2 -- 2 files changed, 9 insertions(+), 11 deletions(-) commit 3d2f6d41d1588c975d16c5969726d018bba90794 Author: Julia Lawall Date: Thu May 28 23:02:17 2015 +0200 ipv6: drop unneeded goto Delete jump to a label on the next line, when that label is not used elsewhere. A simplified version of the semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @r@ identifier l; @@ -if (...) goto l; -l: // Also remove the unnecessary ret variable. Signed-off-by: Julia Lawall Signed-off-by: David S. Miller net/ipv6/raw.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) commit 02c018af7db9d4e701e78b333dc951dca380633d Author: Chris Bainbridge Date: Fri May 29 17:01:54 2015 +0300 usb: host: xhci: remove incorrect comment about mutex The comment stating that xhci_setup_device() is protected by the address mutex is not true since commit 6fecd4f2a58c ("USB: separate usb_address0 mutexes for each bus") as xhci handles two buses. Signed-off-by: Chris Bainbridge Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman drivers/usb/host/xhci.c | 2 -- 1 file changed, 2 deletions(-) commit 22ae47e65e7c1819e3598b16fcedc469ff97ec58 Author: Mathias Nyman Date: Fri May 29 17:01:53 2015 +0300 xhci: Return correct number of tranferred bytes for stalled control endpoints Fix the xhci driver from bluntly setting the transferred length to 0 if we get a STALL on anything else than the data stage of a control transfer. Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman drivers/usb/host/xhci-ring.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 41485a90d573764738a2d096c01133fe30c2ebca Author: Mathias Nyman Date: Fri May 29 17:01:51 2015 +0300 xhci: optimize xhci bus resume time We used to write the root port state changes in turn for every port, sleeping 20ms after every port state change. Suspended usb2 ports need two state changes, taking minimun 40ms per port. Now instead poll the Port Link State Change (PLC) bit as the state change to U0 will set this bit. Suspended usb2 ports still need the extra 20ms delay, but we now change all the port states at once so we only need to sleep 20ms once all together Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman drivers/usb/host/xhci-hub.c | 65 ++++++++++++++++++++++++++------------------- 1 file changed, 38 insertions(+), 27 deletions(-) commit 9fa733f24bb54dd532b5f5d7abc275c4a547c69f Author: Roger Quadros Date: Fri May 29 17:01:50 2015 +0300 usb: xhci: Fix suspend/resume when used with OTG core In the OTG case, the controller might not yet have been added or is removed before the system suspends. Assign xhci->main_hcd during probe to prevent NULL pointer de-reference in xhci_suspend/resume(). Use the hcd->state flag to check if HCD is halted and if that is so do nothing for xhci_suspend/resume(). [Only for xhci-plat devices, pci devices need it in gen_setup -Mathias] Signed-off-by: Roger Quadros Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman drivers/usb/host/xhci-plat.c | 1 + drivers/usb/host/xhci.c | 6 ++++++ 2 files changed, 7 insertions(+) commit ad6b1d914a9e07f3b9a9ae3396f3c840d0070539 Author: Roger Quadros Date: Fri May 29 17:01:49 2015 +0300 usb: xhci: fix xhci locking up during hcd remove The problem seems to be that if a new device is detected while we have already removed the shared HCD, then many of the xhci operations (e.g. xhci_alloc_dev(), xhci_setup_device()) hang as command never completes. I don't think XHCI can operate without the shared HCD as we've already called xhci_halt() in xhci_only_stop_hcd() when shared HCD goes away. We need to prevent new commands from being queued not only when HCD is dying but also when HCD is halted. The following lockup was detected while testing the otg state machine. [ 178.199951] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller [ 178.205799] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 1 [ 178.214458] xhci-hcd xhci-hcd.0.auto: hcc params 0x0220f04c hci version 0x100 quirks 0x00010010 [ 178.223619] xhci-hcd xhci-hcd.0.auto: irq 400, io mem 0x48890000 [ 178.230677] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002 [ 178.237796] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 178.245358] usb usb1: Product: xHCI Host Controller [ 178.250483] usb usb1: Manufacturer: Linux 4.0.0-rc1-00024-g6111320 xhci-hcd [ 178.257783] usb usb1: SerialNumber: xhci-hcd.0.auto [ 178.267014] hub 1-0:1.0: USB hub found [ 178.272108] hub 1-0:1.0: 1 port detected [ 178.278371] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller [ 178.284171] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 2 [ 178.294038] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003 [ 178.301183] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 178.308776] usb usb2: Product: xHCI Host Controller [ 178.313902] usb usb2: Manufacturer: Linux 4.0.0-rc1-00024-g6111320 xhci-hcd [ 178.321222] usb usb2: SerialNumber: xhci-hcd.0.auto [ 178.329061] hub 2-0:1.0: USB hub found [ 178.333126] hub 2-0:1.0: 1 port detected [ 178.567585] dwc3 48890000.usb: usb_otg_start_host 0 [ 178.572707] xhci-hcd xhci-hcd.0.auto: remove, state 4 [ 178.578064] usb usb2: USB disconnect, device number 1 [ 178.586565] xhci-hcd xhci-hcd.0.auto: USB bus 2 deregistered [ 178.592585] xhci-hcd xhci-hcd.0.auto: remove, state 1 [ 178.597924] usb usb1: USB disconnect, device number 1 [ 178.603248] usb 1-1: new high-speed USB device number 2 using xhci-hcd [ 190.597337] INFO: task kworker/u4:0:6 blocked for more than 10 seconds. [ 190.604273] Not tainted 4.0.0-rc1-00024-g6111320 #1058 [ 190.610228] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. [ 190.618443] kworker/u4:0 D c05c0ac0 0 6 2 0x00000000 [ 190.625120] Workqueue: usb_otg usb_otg_work [ 190.629533] [] (__schedule) from [] (schedule+0x34/0x98) [ 190.636915] [] (schedule) from [] (schedule_preempt_disabled+0xc/0x10) [ 190.645591] [] (schedule_preempt_disabled) from [] (mutex_lock_nested+0x1ac/0x3fc) [ 190.655353] [] (mutex_lock_nested) from [] (usb_disconnect+0x3c/0x208) [ 190.664043] [] (usb_disconnect) from [] (_usb_remove_hcd+0x98/0x1d8) [ 190.672535] [] (_usb_remove_hcd) from [] (usb_otg_start_host+0x50/0xf4) [ 190.681299] [] (usb_otg_start_host) from [] (otg_set_protocol+0x5c/0xd0) [ 190.690153] [] (otg_set_protocol) from [] (otg_set_state+0x170/0xbfc) [ 190.698735] [] (otg_set_state) from [] (otg_statemachine+0x12c/0x470) [ 190.707326] [] (otg_statemachine) from [] (process_one_work+0x1b4/0x4a0) [ 190.716162] [] (process_one_work) from [] (worker_thread+0x154/0x44c) [ 190.724742] [] (worker_thread) from [] (kthread+0xd4/0xf0) [ 190.732328] [] (kthread) from [] (ret_from_fork+0x14/0x24) [ 190.739898] 5 locks held by kworker/u4:0/6: [ 190.744274] #0: ("%s""usb_otg"){.+.+.+}, at: [] process_one_work+0x124/0x4a0 [ 190.752799] #1: ((&otgd->work)){+.+.+.}, at: [] process_one_work+0x124/0x4a0 [ 190.761326] #2: (&otgd->fsm.lock){+.+.+.}, at: [] otg_statemachine+0x18/0x470 [ 190.769934] #3: (usb_bus_list_lock){+.+.+.}, at: [] _usb_remove_hcd+0x90/0x1d8 [ 190.778635] #4: (&dev->mutex){......}, at: [] usb_disconnect+0x3c/0x208 [ 190.786700] INFO: task kworker/1:0:14 blocked for more than 10 seconds. [ 190.793633] Not tainted 4.0.0-rc1-00024-g6111320 #1058 [ 190.799567] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. [ 190.807783] kworker/1:0 D c05c0ac0 0 14 2 0x00000000 [ 190.814457] Workqueue: usb_hub_wq hub_event [ 190.818866] [] (__schedule) from [] (schedule+0x34/0x98) [ 190.826252] [] (schedule) from [] (schedule_timeout+0x13c/0x1ec) [ 190.834377] [] (schedule_timeout) from [] (wait_for_common+0xbc/0x150) [ 190.843062] [] (wait_for_common) from [] (xhci_setup_device+0x164/0x5cc [xhci_hcd]) [ 190.852986] [] (xhci_setup_device [xhci_hcd]) from [] (hub_port_init+0x3f4/0xb10) [ 190.862667] [] (hub_port_init) from [] (hub_event+0x704/0x1018) [ 190.870704] [] (hub_event) from [] (process_one_work+0x1b4/0x4a0) [ 190.878919] [] (process_one_work) from [] (worker_thread+0x154/0x44c) [ 190.887503] [] (worker_thread) from [] (kthread+0xd4/0xf0) [ 190.895076] [] (kthread) from [] (ret_from_fork+0x14/0x24) [ 190.902650] 5 locks held by kworker/1:0/14: [ 190.907023] #0: ("usb_hub_wq"){.+.+.+}, at: [] process_one_work+0x124/0x4a0 [ 190.915454] #1: ((&hub->events)){+.+.+.}, at: [] process_one_work+0x124/0x4a0 [ 190.924070] #2: (&dev->mutex){......}, at: [] hub_event+0x30/0x1018 [ 190.931768] #3: (&port_dev->status_lock){+.+.+.}, at: [] hub_event+0x6f0/0x1018 [ 190.940558] #4: (&bus->usb_address0_mutex){+.+.+.}, at: [] hub_port_init+0x58/0xb10 Signed-off-by: Roger Quadros Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman drivers/usb/host/xhci-ring.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 8a853759c262fd52ff0f5e89f89c65928077fe4a Author: Roger Quadros Date: Fri May 29 17:01:48 2015 +0300 usb: xhci: Allow usb_add/remove_hcd() to be called repeatedly Don't set xhci->shared_hcd to NULL in xhci_stop() as we have still not de-allocated it. It was resulting in a NULL pointer de-reference if usb_add/remove_hcd() is called repeatedly. We want repeated add/remove to work for the OTG use case. Signed-off-by: Roger Quadros Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman drivers/usb/host/xhci.c | 6 ------ 1 file changed, 6 deletions(-) commit 4ac53087d6d48e46e1cf4d0ca9ed9accdf9c928a Author: Roger Quadros Date: Fri May 29 17:01:47 2015 +0300 usb: xhci: plat: Create both HCDs before adding them As xhci_hcd is now allocated by usb_create_hcd(), we don't need to add the primary HCD before creating the shared HCD. Creating the shared HCD before adding the primary HCD is particularly useful for the OTG use case so that we know at the OTG core if the HCD is in single configuration or dual (primary + shared) configuration. Signed-off-by: Roger Quadros [Mathias: rearranged to fit on top of the Marvell Armada 385 phy changes] Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman drivers/usb/host/xhci-plat.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit cd33a32157e42483ffea31e32b1cee4f11ff9592 Author: Roger Quadros Date: Fri May 29 17:01:46 2015 +0300 usb: xhci: cleanup xhci_hcd allocation HCD core allocates memory for HCD private data in usb_create_[shared_]hcd() so make use of that mechanism to allocate the struct xhci_hcd. Introduce struct xhci_driver_overrides to provide the size of HCD private data and hc_driver operation overrides. As of now we only need to override the reset and start methods. Signed-off-by: Roger Quadros Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman drivers/usb/host/xhci-pci.c | 17 ++++++++--------- drivers/usb/host/xhci-plat.c | 18 ++++++++++-------- drivers/usb/host/xhci.c | 30 +++++++++++++++++------------- drivers/usb/host/xhci.h | 19 +++++++++++++++++-- 4 files changed, 52 insertions(+), 32 deletions(-) commit 5e9615bfb9586055adfa32958b5fe69eec622354 Author: Arnd Bergmann Date: Thu May 28 16:00:46 2015 +0200 net: thunderx: add 64-bit dependency The thunderx ethernet driver fails to build on architectures that do not have an atomic readq() and writeq() function for 64-bit PCI bus access: drivers/net/ethernet/cavium/thunder/thunder_bgx.c: In function 'bgx_reg_read': include/asm-generic/io.h:195:23: error: implicit declaration of function 'readq' [-Werror=implicit-function-declaration] It seems impossible to get this driver to work on most 32-bit hardware, so it's better to add an explicit dependency, in order to let us keep building 'allmodconfig' kernels on all architectures. As the driver is meant for the internal hardware on an arm64 SoC, this is not a problem for usability. Allowing the build on all 64-bit architectures rather than just CONFIG_ARM64 on the other hand means that we get the benefit of build testing on x86. Signed-off-by: Arnd Bergmann Signed-off-by: David S. Miller drivers/net/ethernet/cavium/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d9dca9cb266d4a62b36e3150e6a48daf1968471f Merge: 9d52bf0 6d90aa5 Author: David S. Miller Date: Sat May 30 23:35:35 2015 -0700 Merge branch 'mlx4-next' Or Gerlitz says: ==================== mlx4 driver update, May 28, 2015 The 1st patch fixes an issue with a function running DPDK overriding broadcast steering rules set by other functions. Please add this one to your -stable queue. The rest of the series from Matan and Ido deals with scaling the number of IRQs that serve RoCE applications to be in par with the Ethernet driver. changes from V0: - addressed feedback from Sergei, removed extra blank line in patch #4 ==================== Signed-off-by: David S. Miller commit 6d90aa5cf17b1149115a002d7582b5d28ee43359 Author: Matan Barak Date: Sun May 31 09:30:18 2015 +0300 net/mlx4_core: Make sure there are no pending async events when freeing CQ When freeing a CQ, we need to make sure there are no asynchronous events (on the ASYNC EQ) that could relate to this CQ before freeing it. This is done by introducing synchronize_irq. Signed-off-by: Matan Barak Signed-off-by: Ido Shamay Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/cq.c | 3 +++ 1 file changed, 3 insertions(+) commit de1618034ae5704f9e503a20a1c328a0e60f6b5f Author: Ido Shamay Date: Sun May 31 09:30:17 2015 +0300 net/mlx4_core: Move affinity hints to mlx4_core ownership Now that EQs management is in the sole responsibility of mlx4_core, the IRQ affinity hints configuration should be in its hands as well. request_irq is called only once by the first consumer (maybe mlx4_ib), so mlx4_en passes the affinity mask too late. We also need to request vectors according to the cores we want to run on. mlx4_core distribution of IRQs to cores is straight forward, EQ(i)->IRQ will set affinity hint to core i. Consumers need to request EQ vectors, according to their cores considerations (NUMA). Signed-off-by: Ido Shamay Signed-off-by: Matan Barak Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/en_cq.c | 10 +-------- drivers/net/ethernet/mellanox/mlx4/eq.c | 21 +++++++++++++++++ drivers/net/ethernet/mellanox/mlx4/main.c | 36 ++++++++++++++++++++++++++++++ drivers/net/ethernet/mellanox/mlx4/mlx4.h | 1 + 4 files changed, 59 insertions(+), 9 deletions(-) commit c66fa19c405a36673d4aab13658c8246413d5c0f Author: Matan Barak Date: Sun May 31 09:30:16 2015 +0300 net/mlx4: Add EQ pool Previously, mlx4_en allocated EQs and used them exclusively. This affected RoCE performance, as applications which are events sensitive were limited to use only the legacy EQs. Change that by introducing an EQ pool. This pool is managed by mlx4_core. EQs are assigned to ports (when there are limited number of EQs, multiple ports could be assigned to the same EQs). An exception to this rule is the ASYNC EQ which handles various events. Legacy EQs are completely removed as all EQs could be shared. When a consumer (mlx4_ib/mlx4_en) requests an EQ, it asks for EQ serving on a specific port. The core driver calculates which EQ should be assigned to that request. Because IRQs are shared between IB and Ethernet modules, their names only include the PCI device BDF address. Signed-off-by: Matan Barak Signed-off-by: Ido Shamay Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/infiniband/hw/mlx4/main.c | 71 ++--- drivers/infiniband/hw/mlx4/mlx4_ib.h | 1 - drivers/net/ethernet/mellanox/mlx4/cq.c | 10 +- drivers/net/ethernet/mellanox/mlx4/en_cq.c | 48 ++-- drivers/net/ethernet/mellanox/mlx4/en_netdev.c | 7 +- drivers/net/ethernet/mellanox/mlx4/en_rx.c | 13 +- drivers/net/ethernet/mellanox/mlx4/eq.c | 353 +++++++++++++++---------- drivers/net/ethernet/mellanox/mlx4/main.c | 74 ++++-- drivers/net/ethernet/mellanox/mlx4/mlx4.h | 11 +- drivers/net/ethernet/mellanox/mlx4/mlx4_en.h | 2 +- include/linux/mlx4/device.h | 11 +- 11 files changed, 342 insertions(+), 259 deletions(-) commit 48564135cba806bd0d6d1704c0ea317318966d9f Author: Matan Barak Date: Sun May 31 09:30:15 2015 +0300 net/mlx4_core: Demote simple multicast and broadcast flow steering rules In SRIOV, when simple (i.e - Ethernet L2 only) flow steering rules are created, always create them at MLX4_DOMAIN_NIC priority (instead of the real priority the function created them at). This is done in order to let multiple functions add broadcast/multicast rules without affecting other functions, which is necessary for DPDK in SRIOV. Signed-off-by: Matan Barak Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/infiniband/hw/mlx4/main.c | 4 ++-- .../net/ethernet/mellanox/mlx4/resource_tracker.c | 23 ++++++++++++++++++++++ 2 files changed, 25 insertions(+), 2 deletions(-) commit d5be8e1d559a76c22c49bd6770fd340558b21b81 Author: Niranjan Dighe Date: Sun May 31 05:39:07 2015 +0000 Staging: lustre: Replace kzalloc followed by memcpy with kmemdup Replace kzalloc followed by memcpy by kmemdup. This patch was generated by 'make coccicheck' Signed-off-by: Niranjan Dighe Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/obdclass/obd_config.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit f8d199f246f06cec2568e5a5f3d6dc10850a4dfd Author: Greg Kroah-Hartman Date: Sun May 31 15:30:15 2015 +0900 staging: lustre/obdclass/acl: remove unused variable lustre_ext_acl_xattr_reduce_space() declares old_size, but never uses it and gcc 5.x likes to complain about this, so remove it as it's not used at all. Cc: Oleg Drokin Cc: Andreas Dilger Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/obdclass/acl.c | 1 - 1 file changed, 1 deletion(-) commit 9d52bf0a238657ebfddaf5976409ac33174b9f78 Merge: 1dcf3ac b5a61c3 Author: David S. Miller Date: Sat May 30 23:26:45 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-05-28 Here's a set of patches intended for 4.2. The majority of the changes are on the 802.15.4 side of things rather than Bluetooth related: - All sorts of cleanups & fixes to ieee802154 and related drivers - Rework of tx power support in ieee802154 and its drivers - Support for setting ieee802154 tx power through nl802154 - New IDs for the btusb driver - Various cleanups & smaller fixes to btusb - New btrtl driver for Realtec devices - Fix suspend/resume for Realtek devices Please let me know if there are any issues pulling. Thanks. ==================== Signed-off-by: David S. Miller commit e4ba525e8f5f78d5e40ced1f80c50b05aaa01ecb Author: Dmitry Eremin Date: Sat May 30 23:27:05 2015 -0400 staging/lustre/obd: final removal of procfs stuff Signed-off-by: Dmitry Eremin Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman .../lustre/include/linux/libcfs/linux/libcfs.h | 1 - drivers/staging/lustre/lustre/fid/Makefile | 3 +- drivers/staging/lustre/lustre/fld/Makefile | 3 +- drivers/staging/lustre/lustre/include/dt_object.h | 2 - .../lustre/lustre/include/linux/lustre_lite.h | 1 - drivers/staging/lustre/lustre/include/linux/obd.h | 10 +- .../staging/lustre/lustre/include/lprocfs_status.h | 225 +------------------ drivers/staging/lustre/lustre/include/lustre_fid.h | 3 - drivers/staging/lustre/lustre/include/lustre_fld.h | 4 - drivers/staging/lustre/lustre/include/lustre_net.h | 6 - .../staging/lustre/lustre/include/lustre_quota.h | 241 --------------------- drivers/staging/lustre/lustre/include/obd_class.h | 15 -- .../staging/lustre/lustre/include/obd_support.h | 41 ---- drivers/staging/lustre/lustre/ldlm/ldlm_resource.c | 2 +- drivers/staging/lustre/lustre/libcfs/module.c | 1 - drivers/staging/lustre/lustre/llite/Makefile | 3 +- .../staging/lustre/lustre/llite/llite_internal.h | 21 -- drivers/staging/lustre/lustre/llite/vvp_dev.c | 2 +- drivers/staging/lustre/lustre/lmv/Makefile | 3 +- drivers/staging/lustre/lustre/lmv/lmv_internal.h | 8 +- drivers/staging/lustre/lustre/lov/Makefile | 3 +- drivers/staging/lustre/lustre/lov/lov_internal.h | 7 - drivers/staging/lustre/lustre/lov/lov_pool.c | 2 - drivers/staging/lustre/lustre/mdc/Makefile | 3 +- drivers/staging/lustre/lustre/mdc/lproc_mdc.c | 2 +- drivers/staging/lustre/lustre/mdc/mdc_internal.h | 7 - drivers/staging/lustre/lustre/mgc/Makefile | 3 +- drivers/staging/lustre/lustre/mgc/mgc_internal.h | 11 - drivers/staging/lustre/lustre/mgc/mgc_request.c | 2 - drivers/staging/lustre/lustre/obdclass/Makefile | 4 +- drivers/staging/lustre/lustre/obdclass/class_obd.c | 37 ++-- drivers/staging/lustre/lustre/obdclass/dt_object.c | 6 - .../lustre/lustre/obdclass/linux/linux-module.c | 1 - .../lustre/lustre/obdclass/linux/linux-sysctl.c | 1 - .../lustre/lustre/obdclass/lprocfs_status.c | 153 +------------ drivers/staging/lustre/lustre/obdclass/lu_object.c | 4 - drivers/staging/lustre/lustre/osc/Makefile | 3 +- drivers/staging/lustre/lustre/osc/lproc_osc.c | 4 +- drivers/staging/lustre/lustre/osc/osc_internal.h | 8 - drivers/staging/lustre/lustre/ptlrpc/Makefile | 3 +- .../staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c | 5 +- .../staging/lustre/lustre/ptlrpc/ptlrpc_internal.h | 12 - drivers/staging/lustre/lustre/ptlrpc/sec_lproc.c | 8 +- 43 files changed, 54 insertions(+), 830 deletions(-) commit d9528a30a8361a1af1f436129e2eb9165a3cbc5b Author: Oleg Drokin Date: Sat May 30 23:27:04 2015 -0400 staging/lustre/obd: Remove nid_stats tracking This nid_stats tracking only makes sense on the server side, on the client there are no other clients to keep track of anyway. Signed-off-by: Dmitry Eremin Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/include/dt_object.h | 1 - .../staging/lustre/lustre/include/lprocfs_status.h | 15 ---- drivers/staging/lustre/lustre/include/lu_object.h | 2 - .../staging/lustre/lustre/include/lustre_export.h | 29 ------- drivers/staging/lustre/lustre/include/obd.h | 3 - drivers/staging/lustre/lustre/include/obd_class.h | 18 ---- .../lustre/lustre/obdclass/lprocfs_status.c | 96 ---------------------- .../staging/lustre/lustre/obdclass/obd_config.c | 80 ------------------ 8 files changed, 244 deletions(-) commit ade9fb1e7f3bacaeba6942255ea60de170b63686 Author: Oleg Drokin Date: Sat May 30 23:27:03 2015 -0400 staging/lustre/obd: remove unused lprocfs_exp_setup() and related functions This code only made sense on servers. Signed-off-by: Dmitry Eremin Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman .../staging/lustre/lustre/include/lprocfs_status.h | 2 - drivers/staging/lustre/lustre/include/obd.h | 1 - .../lustre/lustre/obdclass/lprocfs_status.c | 182 --------------------- 3 files changed, 185 deletions(-) commit 8c36242b58bb38bf6da5a5cfa207e9d9fdb8c345 Author: Oleg Drokin Date: Sat May 30 23:27:02 2015 -0400 staging/lustre/obd: Rename lprocfs_add_symlink to ldebugfs_add_symlink Signed-off-by: Dmitry Eremin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/include/lprocfs_status.h | 12 ++---------- drivers/staging/lustre/lustre/obdclass/lprocfs_status.c | 16 +++++++++------- 2 files changed, 11 insertions(+), 17 deletions(-) commit 617219c9233402cf340783a41ac6a3ca1c420db5 Author: Dmitry Eremin Date: Sat May 30 23:27:01 2015 -0400 staging/lustre/obd: remove unused proc_lustre_root Signed-off-by: Dmitry Eremin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/include/lprocfs_status.h | 3 --- .../lustre/lustre/obdclass/linux/linux-module.c | 18 ------------------ 2 files changed, 21 deletions(-) commit ae7c0f4833a65b7648cceaf1a60503a89e057f0f Author: Oleg Drokin Date: Sat May 30 23:27:00 2015 -0400 staging/lustre/llite: Move all remaining procfs entries to debugfs This moves all remaining procfs handling in llite layer to debugfs. Signed-off-by: Dmitry Eremin Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman .../staging/lustre/lustre/llite/llite_internal.h | 27 +++++++----- drivers/staging/lustre/lustre/llite/llite_lib.c | 13 +++--- drivers/staging/lustre/lustre/llite/lproc_llite.c | 48 ++++++++++++---------- drivers/staging/lustre/lustre/llite/super25.c | 20 ++++----- drivers/staging/lustre/lustre/llite/vvp_dev.c | 21 +++++----- 5 files changed, 68 insertions(+), 61 deletions(-) commit d2c27f0d0b7eb18f40b9b1a0d793c8ba074e5c23 Author: Christophe Vu-Brugier Date: Mon May 4 11:33:34 2015 +0200 iscsi-target: fix variable name typo in iscsi_check_acceptor_state() Signed-off-by: Christophe Vu-Brugier Signed-off-by: Nicholas Bellinger drivers/target/iscsi/iscsi_target_parameters.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 3a40dede1f0af77fd4d77017a4ee07703fad87ef Author: Christophe Vu-Brugier Date: Mon May 4 11:33:33 2015 +0200 target: fix a log message in se_dev_set_emulate_rest_reord() Signed-off-by: Christophe Vu-Brugier Signed-off-by: Nicholas Bellinger drivers/target/target_core_device.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit afe92323f9df4a2c4a093cd3f2a3f82800498596 Author: Christoph Hellwig Date: Sun May 3 08:54:42 2015 +0200 target: remove ->put_session method The only instance of ->put_session is in qla2xxx, and was added by commit aaf68b ("tcm_qla2xxx: Convert to TFO->put_session() usage") with the following description: This patch converts tcm_qla2xxx code to use an internal kref_put() for se_session->sess_kref in order to ensure that qla_hw_data->hardware_lock can be held while calling qlt_unreg_sess() for the final put. But these day we're already holding the hardware lock over qlt_unreg_sess in the ->close_session callback, so we're fine without this method. (Re-add missing tcm_qla2xxx_release_session + drop put_session usage - nab) Signed-off-by: Christoph Hellwig Acked-by: Himanshu Madhani Signed-off-by: Nicholas Bellinger drivers/scsi/qla2xxx/tcm_qla2xxx.c | 13 ------------- drivers/target/target_core_transport.c | 6 ------ drivers/xen/xen-scsiback.c | 1 - include/target/target_core_fabric.h | 1 - 4 files changed, 21 deletions(-) commit 7ad34a93675e9c5a65711f83c518871317adc2ee Author: Christoph Hellwig Date: Sun May 3 08:50:56 2015 +0200 target: target_core_configfs.h is not needed in fabric drivers Signed-off-by: Christoph Hellwig Signed-off-by: Nicholas Bellinger Documentation/target/tcm_mod_builder.py | 2 -- drivers/infiniband/ulp/srpt/ib_srpt.c | 1 - drivers/scsi/qla2xxx/tcm_qla2xxx.c | 1 - drivers/target/iscsi/iscsi_target.c | 1 - drivers/target/iscsi/iscsi_target_configfs.c | 1 - drivers/target/iscsi/iscsi_target_tpg.c | 1 - drivers/target/iscsi/iscsi_target_util.c | 1 - drivers/target/loopback/tcm_loop.c | 1 - drivers/target/sbp/sbp_target.c | 1 - drivers/target/target_core_alua.c | 1 - drivers/target/target_core_fabric_lib.c | 1 - drivers/target/target_core_hba.c | 1 - drivers/target/target_core_pr.c | 1 - drivers/target/target_core_stat.c | 1 - drivers/target/target_core_tmr.c | 1 - drivers/target/target_core_transport.c | 1 - drivers/target/target_core_ua.c | 1 - drivers/target/target_core_xcopy.c | 1 - drivers/target/tcm_fc/tfc_cmd.c | 1 - drivers/target/tcm_fc/tfc_conf.c | 1 - drivers/target/tcm_fc/tfc_io.c | 1 - drivers/target/tcm_fc/tfc_sess.c | 1 - drivers/usb/gadget/legacy/tcm_usb_gadget.c | 1 - drivers/vhost/scsi.c | 1 - drivers/xen/xen-scsiback.c | 1 - 25 files changed, 26 deletions(-) commit 968ebe752035d14a4c2bb69f8ed0ddf7292dd2f9 Author: Christoph Hellwig Date: Sun May 3 08:50:55 2015 +0200 target: remove struct target_fabric_configfs_template It's only embedded into struct target_fabric_configfs these days, so we might as well remove this layer of abstraction. Signed-off-by: Christoph Hellwig Signed-off-by: Nicholas Bellinger drivers/target/target_core_configfs.c | 7 ++-- drivers/target/target_core_fabric_configfs.c | 46 ++++++++++++-------------- include/target/target_core_configfs.h | 48 +++++++++++++--------------- 3 files changed, 46 insertions(+), 55 deletions(-) commit 0dc2e8d1435318dc448ac390d6d31e6cd2516684 Author: Christoph Hellwig Date: Sun May 3 08:50:54 2015 +0200 target: put struct target_fabric_configfs on a diet Remove all fields that are either unused or can be replaced by trivially following pointers. Signed-off-by: Christoph Hellwig Signed-off-by: Nicholas Bellinger drivers/target/target_core_configfs.c | 24 ++++-------------------- drivers/target/target_core_fabric_configfs.c | 4 ++-- include/target/target_core_configfs.h | 7 ------- 3 files changed, 6 insertions(+), 29 deletions(-) commit ef0caf8dd149992796ee453b65dd0d77ff848f57 Author: Christoph Hellwig Date: Sun May 3 08:50:53 2015 +0200 target: don't copy fabric ops Now that we don't need to set up ->tf_subsys we don't need to copy around the ops vector anymore. Signed-off-by: Christoph Hellwig Signed-off-by: Nicholas Bellinger drivers/target/target_core_configfs.c | 2 +- drivers/target/target_core_fabric_configfs.c | 38 ++++++++++++++-------------- include/target/target_core_configfs.h | 2 +- 3 files changed, 21 insertions(+), 21 deletions(-) commit 45fb94c2925fc7d9b170f2d148f91556428eaa1d Author: Bart Van Assche Date: Tue Apr 14 13:00:58 2015 +0200 target: Remove set-but-not-used-variables Detected these variables by building with W=1. Signed-off-by: Bart Van Assche Signed-off-by: Nicholas Bellinger drivers/target/target_core_configfs.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 2fe6e721b575e308d16e37a0beff107cafd5cf9b Author: Bart Van Assche Date: Tue Apr 14 13:15:29 2015 +0200 ib_srpt: Remove set-but-not-used variables Detected these variables by building with W=1. Signed-off-by: Bart Van Assche Signed-off-by: Nicholas Bellinger drivers/infiniband/ulp/srpt/ib_srpt.c | 7 ------- 1 file changed, 7 deletions(-) commit 649ee05499d1257a3af0e10d961a1c52d9ef95b7 Author: Bart Van Assche Date: Tue Apr 14 13:26:44 2015 +0200 target: Move task tag into struct se_cmd + support 64-bit tags Simplify target core and target drivers by storing the task tag a.k.a. command identifier inside struct se_cmd. For several transports (e.g. SRP) tags are 64 bits wide. Hence add support for 64-bit tags. (Fix core_tmr_abort_task conversion spec warnings - nab) (Fix up usb-gadget to use 16-bit tags - HCH + bart) Signed-off-by: Bart Van Assche Cc: Christoph Hellwig Cc: Andy Grover Cc: Sagi Grimberg Cc: Cc: Felipe Balbi Cc: Michael S. Tsirkin Cc: Juergen Gross Signed-off-by: Nicholas Bellinger Documentation/target/tcm_mod_builder.py | 8 ----- drivers/infiniband/ulp/srpt/ib_srpt.c | 27 +++++---------- drivers/infiniband/ulp/srpt/ib_srpt.h | 1 - drivers/scsi/qla2xxx/qla_target.c | 52 ++++++++++++---------------- drivers/scsi/qla2xxx/qla_target.h | 1 - drivers/scsi/qla2xxx/tcm_qla2xxx.c | 15 -------- drivers/target/iscsi/iscsi_target.c | 2 ++ drivers/target/iscsi/iscsi_target_configfs.c | 9 ----- drivers/target/loopback/tcm_loop.c | 10 +----- drivers/target/sbp/sbp_target.c | 12 ++----- drivers/target/target_core_configfs.c | 4 --- drivers/target/target_core_tmr.c | 21 +++++------ drivers/target/target_core_transport.c | 41 +++++++++++----------- drivers/target/target_core_xcopy.c | 7 +--- drivers/target/tcm_fc/tcm_fc.h | 1 - drivers/target/tcm_fc/tfc_cmd.c | 10 +----- drivers/target/tcm_fc/tfc_conf.c | 1 - drivers/usb/gadget/legacy/tcm_usb_gadget.c | 15 ++------ drivers/vhost/scsi.c | 7 +--- drivers/xen/xen-scsiback.c | 10 +----- include/target/target_core_base.h | 3 +- include/target/target_core_fabric.h | 1 - 22 files changed, 76 insertions(+), 182 deletions(-) commit 2650d71e244fb3637b5f58a0080682a8bf9c7091 Author: Christoph Hellwig Date: Fri May 1 17:47:58 2015 +0200 target: move transport ID handling to the core Now that struct se_portal_group contains a protocol identifier field we can take all the code to format an parse protocol identifiers in CDBs into common code instead of leaving this to low-level drivers. Signed-off-by: Christoph Hellwig Signed-off-by: Nicholas Bellinger Documentation/target/tcm_mod_builder.py | 121 ------------ drivers/infiniband/ulp/srpt/ib_srpt.c | 39 ---- drivers/infiniband/ulp/srpt/ib_srpt.h | 18 -- drivers/scsi/qla2xxx/tcm_qla2xxx.c | 73 -------- drivers/scsi/qla2xxx/tcm_qla2xxx.h | 2 - drivers/target/iscsi/iscsi_target_configfs.c | 3 - drivers/target/loopback/tcm_loop.c | 92 ---------- drivers/target/sbp/sbp_target.c | 70 ------- drivers/target/target_core_configfs.c | 8 - drivers/target/target_core_fabric_lib.c | 263 ++++++++++++++------------- drivers/target/target_core_internal.h | 9 + drivers/target/target_core_pr.c | 49 +++-- drivers/target/tcm_fc/tfc_conf.c | 3 - drivers/usb/gadget/legacy/tcm_usb_gadget.c | 75 +------- drivers/usb/gadget/legacy/tcm_usb_gadget.h | 2 - drivers/vhost/scsi.c | 94 ---------- drivers/xen/xen-scsiback.c | 94 ---------- include/target/target_core_fabric.h | 33 ---- 18 files changed, 173 insertions(+), 875 deletions(-) commit 2aeeafae6bb9f04dbe17b521bcd8f0d03516c393 Author: Christoph Hellwig Date: Fri May 1 17:47:57 2015 +0200 target: remove the get_fabric_proto_ident method Now that we store the protocol identifier in the tpg structure we don't need this method. Signed-off-by: Christoph Hellwig Signed-off-by: Nicholas Bellinger Documentation/target/tcm_mod_builder.py | 31 ---------------------------- drivers/infiniband/ulp/srpt/ib_srpt.c | 6 ------ drivers/scsi/qla2xxx/tcm_qla2xxx.c | 19 ----------------- drivers/target/iscsi/iscsi_target_configfs.c | 1 - drivers/target/loopback/tcm_loop.c | 27 ------------------------ drivers/target/sbp/sbp_target.c | 13 ------------ drivers/target/target_core_configfs.c | 4 ---- drivers/target/target_core_fabric_lib.c | 27 ------------------------ drivers/target/target_core_pr.c | 12 +++++------ drivers/target/target_core_spc.c | 12 ++++------- drivers/target/tcm_fc/tfc_conf.c | 1 - drivers/usb/gadget/legacy/tcm_usb_gadget.c | 18 ---------------- drivers/vhost/scsi.c | 23 --------------------- drivers/xen/xen-scsiback.c | 23 --------------------- include/target/target_core_fabric.h | 4 ---- 15 files changed, 9 insertions(+), 212 deletions(-) commit e4aae5af810eaa61c2cd7ba79d95ebfe0d88fe9b Author: Christoph Hellwig Date: Fri May 1 17:47:56 2015 +0200 target: change core_tpg_register prototype Remove the unneeded fabric_ptr argument, and change the type argument to pass in a SPC protocol identifier. Signed-off-by: Christoph Hellwig Signed-off-by: Nicholas Bellinger Documentation/target/tcm_mod_builder.py | 3 +-- drivers/infiniband/ulp/srpt/ib_srpt.c | 2 +- drivers/scsi/qla2xxx/tcm_qla2xxx.c | 8 +++---- drivers/target/iscsi/iscsi_target_configfs.c | 2 +- drivers/target/iscsi/iscsi_target_tpg.c | 3 +-- drivers/target/loopback/tcm_loop.c | 4 ++-- drivers/target/sbp/sbp_target.c | 3 +-- drivers/target/target_core_tpg.c | 31 ++++++++++++---------------- drivers/target/tcm_fc/tfc_conf.c | 2 +- drivers/usb/gadget/legacy/tcm_usb_gadget.c | 4 ++-- drivers/vhost/scsi.c | 4 ++-- drivers/xen/xen-scsiback.c | 4 ++-- include/target/target_core_base.h | 16 ++++++-------- include/target/target_core_fabric.h | 2 +- 14 files changed, 38 insertions(+), 50 deletions(-) commit 3868e4365f1735698df373733c9d99d7b9a688e8 Author: Christoph Hellwig Date: Fri May 1 17:47:55 2015 +0200 tcm_fc: stop using se_tpg_fabric_ptr Signed-off-by: Christoph Hellwig Signed-off-by: Nicholas Bellinger drivers/target/tcm_fc/tfc_conf.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) commit 1667a459c382d4a90d05b0e8feab2d0b4ff27667 Author: Christoph Hellwig Date: Fri May 1 17:47:54 2015 +0200 tcm_loop: stop using se_tpg_fabric_ptr Signed-off-by: Christoph Hellwig Signed-off-by: Nicholas Bellinger drivers/target/loopback/tcm_loop.c | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) commit 2b6eb609b8fab75707ac3557d195a5a99037e39b Author: Christoph Hellwig Date: Fri May 1 17:47:53 2015 +0200 target/iscsi: stop using se_tpg_fabric_ptr Signed-off-by: Christoph Hellwig Signed-off-by: Nicholas Bellinger drivers/target/iscsi/iscsi_target_configfs.c | 43 ++++++++++------------------ 1 file changed, 15 insertions(+), 28 deletions(-) commit 18213afbd8cee9f8a3ac5294dedf543a06559c8b Author: Akinobu Mita Date: Fri May 1 15:23:51 2015 +0900 target: handle odd SG mapping for data transfer memory sbc_dif_generate() and sbc_dif_verify() currently assume that each SG element for data transfer memory doesn't straddle the block size boundary. However, when using SG_IO ioctl, we can choose the data transfer memory which doesn't satisfy that alignment requirement. In order to handle such cases correctly, this change inverts the outer loop to iterate data transfer memory and the inner loop to iterate protection information and enables to calculate CRC for a block which straddles multiple SG elements. Signed-off-by: Akinobu Mita Cc: Tim Chen Cc: Herbert Xu Cc: "David S. Miller" Cc: linux-crypto@vger.kernel.org Cc: Nicholas Bellinger Cc: Sagi Grimberg Cc: "Martin K. Petersen" Cc: Christoph Hellwig Cc: "James E.J. Bottomley" Cc: target-devel@vger.kernel.org Cc: linux-scsi@vger.kernel.org Signed-off-by: Nicholas Bellinger drivers/target/target_core_sbc.c | 122 ++++++++++++++++++++++++++------------- 1 file changed, 83 insertions(+), 39 deletions(-) commit 10081fb532a2a2216b7d8e4ad585c985075b6f60 Author: Akinobu Mita Date: Fri May 1 15:23:50 2015 +0900 lib: introduce crc_t10dif_update() This introduces crc_t10dif_update() which enables to calculate CRC for a block which straddles multiple SG elements by calling multiple times. This also converts crc_t10dif() to use crc_t10dif_update() as they are almost same. (remove extra function call in crc_t10dif() and crc_t10dif_update - Tim + Herbert) Signed-off-by: Akinobu Mita Acked-by: Martin K. Petersen Cc: Tim Chen Cc: Herbert Xu Cc: "David S. Miller" Cc: linux-crypto@vger.kernel.org Cc: Nicholas Bellinger Cc: Sagi Grimberg Cc: "Martin K. Petersen" Cc: Christoph Hellwig Cc: "James E.J. Bottomley" Cc: target-devel@vger.kernel.org Signed-off-by: Nicholas Bellinger include/linux/crc-t10dif.h | 1 + lib/crc-t10dif.c | 12 +++++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) commit 5835812f13e56483f2c4907664bb43b0a78546b6 Author: Akinobu Mita Date: Fri May 1 15:23:49 2015 +0900 target: ensure se_cmd->t_prot_sg is allocated when required Even if the device backend is initialized with protection info is enabled, some requests don't have the protection info attached for WRITE SAME command issued by block device helpers, WRITE command with WRPROTECT=0 by SG_IO ioctl, etc. So when TCM loopback fabric module is used, se_cmd->t_prot_sg is NULL for these requests and performing WRITE_INSERT of PI using software emulation by sbc_dif_generate() causes kernel crash. To fix this, introduce SCF_PASSTHROUGH_PROT_SG_TO_MEM_NOALLOC for se_cmd_flags, which is used to determine that se_cmd->t_prot_sg needs to be allocated or use pre-allocated protection information by scsi mid-layer. Signed-off-by: Akinobu Mita Cc: Nicholas Bellinger Cc: Sagi Grimberg Cc: "Martin K. Petersen" Cc: Christoph Hellwig Cc: "James E.J. Bottomley" Cc: target-devel@vger.kernel.org Cc: linux-scsi@vger.kernel.org Signed-off-by: Nicholas Bellinger drivers/target/target_core_transport.c | 27 +++++++++++++++------------ include/target/target_core_base.h | 1 + 2 files changed, 16 insertions(+), 12 deletions(-) commit 57636388af32c2c7db3919e8d53f4979b7c7c307 Author: Akinobu Mita Date: Fri May 1 15:23:48 2015 +0900 target: Fix inconsistent address passed to kunmap_atomic() in sbc_dif_copy_prot() In sbc_dif_copy_prot(), the addresses passed to kunmap_atomic() are inconsistent with the addresses which are mapped by kmap_atomic(). That could be problematic if an SG element has its length larger than PAGE_SIZE as kunmap_atomic() will attempt to unmap different page. Signed-off-by: Akinobu Mita Cc: Nicholas Bellinger Cc: Sagi Grimberg Cc: "Martin K. Petersen" Cc: Christoph Hellwig Cc: "James E.J. Bottomley" Cc: target-devel@vger.kernel.org Cc: linux-scsi@vger.kernel.org Signed-off-by: Nicholas Bellinger drivers/target/target_core_sbc.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 144bc4c2a42a0f42a32c106d53f5bf2724fbf098 Author: Christoph Hellwig Date: Mon Apr 13 19:51:16 2015 +0200 target: move node ACL allocation to core code Signed-off-by: Christoph Hellwig Signed-off-by: Nicholas Bellinger Documentation/target/tcm_mod_builder.py | 27 -------------------------- drivers/infiniband/ulp/srpt/ib_srpt.c | 25 +----------------------- drivers/infiniband/ulp/srpt/ib_srpt.h | 4 ++-- drivers/scsi/qla2xxx/tcm_qla2xxx.c | 29 ++-------------------------- drivers/scsi/qla2xxx/tcm_qla2xxx.h | 4 ++-- drivers/target/iscsi/iscsi_target_configfs.c | 26 +------------------------ drivers/target/loopback/tcm_loop.c | 15 -------------- drivers/target/sbp/sbp_target.c | 14 -------------- drivers/target/target_core_configfs.c | 8 -------- drivers/target/target_core_tpg.c | 9 +++++---- drivers/target/target_core_transport.c | 2 +- drivers/target/tcm_fc/tcm_fc.h | 2 +- drivers/target/tcm_fc/tfc_conf.c | 26 +------------------------ drivers/usb/gadget/legacy/tcm_usb_gadget.c | 14 -------------- drivers/vhost/scsi.c | 15 -------------- drivers/xen/xen-scsiback.c | 15 -------------- include/target/iscsi/iscsi_target_core.h | 2 +- include/target/target_core_fabric.h | 5 +---- 18 files changed, 18 insertions(+), 224 deletions(-) commit e413f4727037e826c55a639c713a221006b6d61d Author: Christoph Hellwig Date: Mon Apr 13 19:51:15 2015 +0200 target: refactor node ACL allocation Split out two common helpers to share code for allocating and initializing node ACLs. Signed-off-by: Christoph Hellwig Signed-off-by: Nicholas Bellinger drivers/target/target_core_tpg.c | 133 +++++++++++++++++---------------------- 1 file changed, 56 insertions(+), 77 deletions(-) commit c7d6a803926bae9bbf4510a18fc8dd8957cc0e01 Author: Christoph Hellwig Date: Mon Apr 13 19:51:14 2015 +0200 target: refactor init/drop_nodeacl methods By always allocating and adding, respectively removing and freeing the se_node_acl structure in core code we can remove tons of repeated code in the init_nodeacl and drop_nodeacl routines. Additionally this now respects the get_default_queue_depth method in this code path as well. Signed-off-by: Christoph Hellwig Signed-off-by: Nicholas Bellinger Documentation/target/tcm_mod_builder.py | 77 ---------------------------- Documentation/target/tcm_mod_builder.txt | 4 +- drivers/infiniband/ulp/srpt/ib_srpt.c | 58 +++++---------------- drivers/scsi/qla2xxx/tcm_qla2xxx.c | 59 +++------------------ drivers/target/iscsi/iscsi_target_configfs.c | 49 ++++-------------- drivers/target/sbp/sbp_target.c | 36 ++----------- drivers/target/target_core_fabric_configfs.c | 22 ++++---- drivers/target/target_core_internal.h | 3 ++ drivers/target/target_core_tpg.c | 46 ++++------------- drivers/target/tcm_fc/tfc_conf.c | 48 +++-------------- drivers/usb/gadget/legacy/tcm_usb_gadget.c | 42 ++------------- drivers/vhost/scsi.c | 39 -------------- drivers/xen/xen-scsiback.c | 6 --- include/target/target_core_fabric.h | 9 +--- 14 files changed, 77 insertions(+), 421 deletions(-) commit e1750d20e69477c0d7b26d6e0ba24c3c9ec47530 Author: Christoph Hellwig Date: Mon Apr 13 19:51:13 2015 +0200 target: make the tpg_get_default_depth method optional All fabric drivers except for iSCSI always return 1, so implement that as default behavior. Signed-off-by: Christoph Hellwig Signed-off-by: Nicholas Bellinger Documentation/target/tcm_mod_builder.py | 8 -------- drivers/infiniband/ulp/srpt/ib_srpt.c | 6 ------ drivers/scsi/qla2xxx/tcm_qla2xxx.c | 7 ------- drivers/target/loopback/tcm_loop.c | 6 ------ drivers/target/sbp/sbp_target.c | 6 ------ drivers/target/target_core_configfs.c | 4 ---- drivers/target/target_core_tpg.c | 5 ++++- drivers/target/tcm_fc/tfc_conf.c | 6 ------ drivers/usb/gadget/legacy/tcm_usb_gadget.c | 6 ------ drivers/vhost/scsi.c | 6 ------ drivers/xen/xen-scsiback.c | 6 ------ 11 files changed, 4 insertions(+), 62 deletions(-) commit 55570113a955091af5fafa94cd50914d994e09ae Author: Christoph Hellwig Date: Mon Apr 13 19:51:12 2015 +0200 vhost/scsi: remove struct vhost_scsi_nacl Except for the embedded struct se_node_acl none of the fields were ever used. Signed-off-by: Christoph Hellwig Signed-off-by: Nicholas Bellinger drivers/vhost/scsi.c | 34 +++------------------------------- 1 file changed, 3 insertions(+), 31 deletions(-) commit 16233799e383fc76f20d8142ef55da2308d36c65 Author: Christoph Hellwig Date: Mon Apr 13 19:51:11 2015 +0200 sbp_target: remove struct sbp_nacl Except for the embedded struct se_node_acl none of the fields were ever used. Signed-off-by: Christoph Hellwig Signed-off-by: Nicholas Bellinger drivers/target/sbp/sbp_target.c | 24 +++--------------------- drivers/target/sbp/sbp_target.h | 9 --------- 2 files changed, 3 insertions(+), 30 deletions(-) commit a3b679e7e4369dfb5be735598888fcdef9d35196 Author: Christoph Hellwig Date: Mon Apr 13 19:51:10 2015 +0200 tcm_usb: remove struct usbg_nacl Except for the embedded struct se_node_acl none of the fields were ever used. Signed-off-by: Christoph Hellwig Signed-off-by: Nicholas Bellinger drivers/usb/gadget/legacy/tcm_usb_gadget.c | 24 +++--------------------- drivers/usb/gadget/legacy/tcm_usb_gadget.h | 9 --------- 2 files changed, 3 insertions(+), 30 deletions(-) commit df75b956274b03e09426c1169f913d884d768ee7 Author: Christoph Hellwig Date: Mon Apr 13 19:51:09 2015 +0200 tcm_loop: remove struct tcm_loop_nacl Signed-off-by: Christoph Hellwig Signed-off-by: Nicholas Bellinger drivers/target/loopback/tcm_loop.c | 15 ++------------- drivers/target/loopback/tcm_loop.h | 4 ---- 2 files changed, 2 insertions(+), 17 deletions(-) commit afc16604c06414223478df3e42301ab630b9960a Author: Bart Van Assche Date: Mon Apr 27 13:52:36 2015 +0200 target: Remove first argument of target_{get,put}_sess_cmd() The first argument of these two functions is always identical to se_cmd->se_sess. Hence remove the first argument. Signed-off-by: Bart Van Assche Reviewed-by: Sagi Grimberg Reviewed-by: Christoph Hellwig Cc: Andy Grover Cc: Cc: Felipe Balbi Cc: Michael S. Tsirkin Signed-off-by: Nicholas Bellinger drivers/infiniband/ulp/isert/ib_isert.c | 6 +++--- drivers/infiniband/ulp/srpt/ib_srpt.c | 10 +++++----- drivers/scsi/qla2xxx/tcm_qla2xxx.c | 2 +- drivers/target/iscsi/iscsi_target.c | 15 +++++++-------- drivers/target/iscsi/iscsi_target_configfs.c | 2 +- drivers/target/iscsi/iscsi_target_util.c | 4 ++-- drivers/target/target_core_tmr.c | 2 +- drivers/target/target_core_transport.c | 20 ++++++++++---------- drivers/vhost/scsi.c | 2 +- include/target/target_core_fabric.h | 4 ++-- 10 files changed, 33 insertions(+), 34 deletions(-) commit e4648b014e03baee45d5f5146c1219b19e4e5f2f Author: Ilias Tsitsimpis Date: Thu Apr 23 21:30:09 2015 +0300 target/user: Add support for bidirectional commands Enable TCMU to handle bidirectional SCSI commands. In such cases, entries in iov[] cover both the Data-In and the Data-Out buffers. The first iov_cnt entries correspond to the Data-Out buffer, while the remaining iov_bidi_cnt entries correspond to the Data-In buffer. Signed-off-by: Ilias Tsitsimpis Signed-off-by: Vangelis Koukis Reviewed-by: Andy Grover Signed-off-by: Nicholas Bellinger Documentation/target/tcmu-design.txt | 2 +- drivers/target/target_core_user.c | 29 ++++++++++++++++++++++++----- 2 files changed, 25 insertions(+), 6 deletions(-) commit f97ec7db1606875666366bfcba8476f8c917db96 Author: Ilias Tsitsimpis Date: Thu Apr 23 21:47:00 2015 +0300 target/user: Refactor data area allocation code Introduce alloc_and_scatter_data_area()/gather_and_free_data_area() functions that allocate/deallocate space from the data area and copy data to/from a given scatter-gather list. These functions are needed so the next patch, introducing support for bidirectional commands in TCMU, can use the same code path both for t_data_sg and for t_bidi_data_sg. Signed-off-by: Ilias Tsitsimpis Signed-off-by: Vangelis Koukis Reviewed-by: Andy Grover Signed-off-by: Nicholas Bellinger drivers/target/target_core_user.c | 189 +++++++++++++++++++++----------------- 1 file changed, 106 insertions(+), 83 deletions(-) commit b32bd0a8ee6a19f9b70aa4fcb9bfc802b105ce05 Author: Ilias Tsitsimpis Date: Thu Apr 23 21:30:07 2015 +0300 target/transport: Always initialize bidi fields in se_cmd Fields t_bidi_data_sg and t_bidi_data_nents are set only in the presence of BIDI commands. This means that the underlying code (for example TCMU) cannot inspect them when the SCSI command is not a BIDI one. Ensure the code always initializes these fields with the given values, even when the SCSI command is not a BIDI one. Set t_bidi_data_sg to sgl_bidi (which should be NULL for non-BIDI commands) and t_bidi_data_nents to sgl_bidi_count (which should be 0 for non-BIDI commands). This allows the underlying code to use these fields unconditionally. Signed-off-by: Ilias Tsitsimpis Signed-off-by: Vangelis Koukis Reviewed-by: Andy Grover Signed-off-by: Nicholas Bellinger drivers/target/target_core_transport.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 9736f4ad7c6dd79eea36c7fb537a27bbd802582a Author: Ilias Tsitsimpis Date: Thu Apr 23 21:30:06 2015 +0300 target/loop: Enable VARLEN CDB support Field shost->max_cmd_len is used to inform Linux / the SCSI midlayer of the maximum CDB size an LLD is capable of handling. Set this field to SCSI_MAX_VARLEN_CDB_SIZE for target, to enable support for variable-sized CDBs (0x7E). Also remove the definition of TL_SCSI_MAX_CMD_LEN since it is now redundant. Signed-off-by: Ilias Tsitsimpis Signed-off-by: Vangelis Koukis Reviewed-by: Andy Grover Signed-off-by: Nicholas Bellinger drivers/target/loopback/tcm_loop.c | 2 +- drivers/target/loopback/tcm_loop.h | 5 ----- 2 files changed, 1 insertion(+), 6 deletions(-) commit 2bc396a2529ae8a2287f17a49d893ce790e19110 Author: Ilias Tsitsimpis Date: Thu Apr 23 21:30:05 2015 +0300 driver/user: Don't warn for DMA_NONE data direction Some SCSI commands (for example the TEST UNIT READY command) do not carry data and so data_direction is DMA_NONE. Patch TCMU to not print a warning message about unknown data direction, when it is DMA_NONE. Signed-off-by: Ilias Tsitsimpis Signed-off-by: Vangelis Koukis Reviewed-by: Andy Grover Signed-off-by: Nicholas Bellinger drivers/target/target_core_user.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 814e5b45182f4aaf6c0b0deac7104bc2cba5109e Author: Christoph Hellwig Date: Mon Apr 20 15:00:30 2015 +0200 target: fix DPO and FUA bit checks Drivers may override the WCE flag, in which case the DPOFUA flag in MODE SENSE might differ from the check used to reject invalid FUA bits in sbc_check_dpofua. Also now that we reject invalid FUA bits early there is no need to duplicate the same buggy check down in the fileio code. As the DPOFUA flag controls th support for FUA bits on read and write commands as well as DPO key off all the checks off a single helper, and deprecate the emulate_dpo and emulate_fua_read attributs. This fixes various failures in the libiscsi testsuite. Personally I'd prefer to also remove the emulate_fua_write attribute as there is no good reason to disable it, but I'll leave that for a separate discussion. Signed-off-by: Christoph Hellwig Signed-off-by: Nicholas Bellinger drivers/target/target_core_device.c | 30 +++++++----------------------- drivers/target/target_core_file.c | 4 +--- drivers/target/target_core_internal.h | 2 ++ drivers/target/target_core_sbc.c | 5 +++-- drivers/target/target_core_spc.c | 12 ++++++++---- drivers/target/target_core_transport.c | 19 +++++++++++++++++++ include/target/target_core_base.h | 6 ------ 7 files changed, 40 insertions(+), 38 deletions(-) commit c04a6091c951c88636a569cdd29feb65fb5003af Author: Christophe Vu-Brugier Date: Sun Apr 19 22:18:33 2015 +0200 iscsi-target: remove support for obsolete markers Support for markers is currently broken because of a bug in iscsi_enforce_integrity_rules(): the "IFMarkInt_Reject" and "OFMarkInt_Reject" variables are always equal to 1 in iscsi_enforce_integrity_rules(). Moreover, fixed interval markers keys (IFMarker, OFMarker, IFMarkInt and OFMarkInt) are obsolete according to iSCSI RFC 7143: >From http://tools.ietf.org/html/rfc7143#section-13.25: 13.25. Obsoleted Keys This document obsoletes the following keys defined in [RFC3720]: IFMarker, OFMarker, OFMarkInt, and IFMarkInt. However, iSCSI implementations compliant to this document may still receive these obsoleted keys -- i.e., in a responder role -- in a text negotiation. When an IFMarker or OFMarker key is received, a compliant iSCSI implementation SHOULD respond with the constant "Reject" value. The implementation MAY alternatively respond with a "No" value. However, the implementation MUST NOT respond with a "NotUnderstood" value for either of these keys. When an IFMarkInt or OFMarkInt key is received, a compliant iSCSI implementation MUST respond with the constant "Reject" value. The implementation MUST NOT respond with a "NotUnderstood" value for either of these keys. This patch disables markers by turning the corresponding parameters to read-only. The default value of IFMarker and OFMarker remains "No" but the user cannot change it to "Yes" anymore. The new value of IFMarkInt and OFMarkInt is "Reject". (Drop left-over iscsi_get_value_from_number_range + make configfs parameters attrs R/W nops - nab) Signed-off-by: Christophe Vu-Brugier Signed-off-by: Nicholas Bellinger drivers/target/iscsi/iscsi_target.c | 20 +- drivers/target/iscsi/iscsi_target_erl0.c | 53 ----- drivers/target/iscsi/iscsi_target_erl0.h | 1 - drivers/target/iscsi/iscsi_target_login.c | 58 +----- drivers/target/iscsi/iscsi_target_login.h | 1 - drivers/target/iscsi/iscsi_target_parameters.c | 267 +------------------------ drivers/target/iscsi/iscsi_target_parameters.h | 11 +- drivers/target/iscsi/iscsi_target_util.c | 48 ----- drivers/target/iscsi/iscsi_target_util.h | 1 - include/target/iscsi/iscsi_target_core.h | 10 - 10 files changed, 16 insertions(+), 454 deletions(-) commit 414e4627277e38e3a557c53c9def7fe9f1ec9b2c Author: Sagi Grimberg Date: Sun Apr 19 20:27:21 2015 +0300 target/sbc: Fix sbc_dif_verify inconsistent map/unmap Fix map/unmap consistency and get rid of a redundant local variable psg. Reported-by: Akinobu Mita Signed-off-by: Sagi Grimberg Signed-off-by: Nicholas Bellinger drivers/target/target_core_sbc.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) commit 8287fa5fb43c3fa05748560b8e13b91c4e88f586 Author: Sagi Grimberg Date: Sun Apr 19 20:27:20 2015 +0300 target/file: Remove fd_prot bounce buffer The reason this bounce buffer exists is to allow code reuse between rd_mcp and fileio in DIF mode. But the fact is, that this bounce is really not needed at all, we can simply call sbc_dif_verify on cmd->t_prot_sg and use it for file IO. This also removes fd_do_prot_rw as fd_do_rw was generalised to receive file pointer, block size (8 bytes for DIF data) and total data length. (Fix apply breakage from commit c836777 - nab) Tested-by: Akinobu Mita Signed-off-by: Sagi Grimberg Signed-off-by: Nicholas Bellinger drivers/target/target_core_file.c | 128 +++++++++----------------------------- drivers/target/target_core_file.h | 6 -- 2 files changed, 28 insertions(+), 106 deletions(-) commit f75b6fae1a1d0a79dcbb9cbaed1d06bf3fe57a3c Author: Sagi Grimberg Date: Sun Apr 19 20:27:19 2015 +0300 target: Merge sbc_verify_dif_read|write Instead of providing DIF verify routines for read/write that are almost identical and conditionally copy protection information, just let the caller do the right thing. Have a single sbc_dif_verify that handles an sgl (that does NOT copy any data) and a protection information copy routine used by rd_mcp and fileio backend. In the WRITE case, call sbc_dif_verify with cmd->t_prot_sg and then do the copy from it to local sgl (assuming the verify succeeded of course). In the READ case, call sbc_dif_verify with the local sgl and if it succeeds, copy it to t_prot_sg (or not if we are stripping it). (Fix apply breakage from commit c836777 - nab) Tested-by: Akinobu Mita Signed-off-by: Sagi Grimberg Signed-off-by: Nicholas Bellinger drivers/target/target_core_file.c | 10 ++-- drivers/target/target_core_rd.c | 20 +++++--- drivers/target/target_core_sbc.c | 94 +++------------------------------- drivers/target/target_core_transport.c | 17 +++--- include/target/target_core_backend.h | 8 ++- 5 files changed, 37 insertions(+), 112 deletions(-) commit b144ce2d37619e05afdb0a15676500d76a64b1be Author: Greg Kroah-Hartman Date: Wed May 27 17:17:27 2015 -0700 mei: fix up uuid matching A previous commit, c93b76b34b4d ("mei: bus: report also uuid in module alias") caused a build error as I missed applying a needed patch to add some macros to uapi/linux/uuid.h. Instead of those additional macros, change the mei code to use the existing uuid structure directly. Fixes: c93b76b34b4d Cc: Tomas Winkler Cc: Samuel Ortiz Reported-by: Stephen Rothwell Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/bus.c | 9 ++------- drivers/nfc/mei_phy.h | 2 +- include/linux/mod_devicetable.h | 2 +- scripts/mod/file2alias.c | 7 +++++-- 4 files changed, 9 insertions(+), 11 deletions(-) commit 895875a3d85596e3e2e46aeb382bf14f1419de82 Author: Nicholas Mc Guire Date: Fri May 29 19:02:32 2015 +0200 staging: panel: use schedule_timeout_interruptible() API consolidation with coccinelle found: ./drivers/staging/panel/panel.c:782:2-18: consolidation with schedule_timeout_*() recommended This is a 1:1 conversion with respect to schedule_timeout() to the schedule_timeout_interruptible() helper only - so only an API consolidation to improve readability. The timeout was being passed as (ms * HZ + 999) / 1000 but that simply looks wrong - rather than "manual" converting to jiffies, msecs_to_jiffies which handles all corner-cases correctly, was used. Patch was compile tested with x86_64_defconfig + CONFIG_STAGING=y, CONFIG_PARPORT=m, CONFIG_PANEL=m Signed-off-by: Nicholas Mc Guire Acked-by: Willy Tarreau Signed-off-by: Greg Kroah-Hartman drivers/staging/panel/panel.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit 60c77d1adbff06e6ca568fbd874407f1ae23badc Author: Nicholas Mc Guire Date: Fri May 29 17:58:18 2015 +0200 staging: me_daq: use schedule_timeout_interruptible() API consolidation with coccinelle found: ./drivers/staging/comedi/drivers/me_daq.c:177:1-17: consolidation with schedule_timeout_*() recommended This is a 1:1 conversion of the current calls to an available helper only - so only an API consolidation to improve readability. Signed-off-by: Nicholas Mc Guire Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/me_daq.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 008272072d61a8ce9f9f1e7cf2807a59b2e67b64 Author: Masanari Iida Date: Thu May 28 08:41:16 2015 +0900 staging: sm750fb: Fix typo in sm750.c This patch fix a spelling typo in printk within sm750.c Signed-off-by: Masanari Iida Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/sm750.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c4eacdad9d9a563c0b324123fa5d5e7e07cda33c Author: Michel von Czettritz Date: Tue May 26 17:22:39 2015 +0200 staging: sm750fb: remove duplicate from fb_videomode As suggested by Sudip this patch removes the redundant 1360x768@60 option from the fb_videomode struct array. The removed option and the option one it differ in a typo and a flag. Signed-off-by: Michel von Czettritz Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/sm750.c | 3 --- 1 file changed, 3 deletions(-) commit 63de0eb0bc7c00336f4293724d0d9d1bc10e9228 Author: Isaac Assegai Date: Sun May 24 22:48:42 2015 -0700 Staging: sm750fb: Replace spaces with tabs at the start of lines Replace spaces at the start of lines with tabs to rectify the following warning: WARNING: please, no spaces at the start of a line Signed-off-by: Isaac Assegai Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/ddk750_chip.c | 2 +- drivers/staging/sm750fb/ddk750_chip.h | 69 +++++++++++++++++++---------------- 2 files changed, 38 insertions(+), 33 deletions(-) commit 44af49b63ee6fa2a2beb911b6333e4fdaa1db234 Author: Jakub Sitnicki Date: Fri May 22 07:06:12 2015 +0200 staging: rtl8188eu: Remove redundant CONFIG_88EU_AP_MODE tests Remove #ifdef's enclosed by an #ifdef test for the same macro to improve readability. No code changes: md5, CONFIG_88EU_AP_MODE=y: b819a33f65133607ebc33b8999ee3a79 r8188eu.o.before b819a33f65133607ebc33b8999ee3a79 r8188eu.o.after md5, CONFIG_88EU_AP_MODE=n: 94c84035d59285408b866a57b442276d r8188eu.o.before 94c84035d59285408b866a57b442276d r8188eu.o.after Signed-off-by: Jakub Sitnicki Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/core/rtw_mlme_ext.c | 14 +------------- drivers/staging/rtl8188eu/core/rtw_sta_mgt.c | 2 -- drivers/staging/rtl8188eu/include/rtw_ap.h | 2 -- 3 files changed, 1 insertion(+), 17 deletions(-) commit 7fc0406f4875a414e4243706f98967064a4fa962 Author: Luca Ceresoli Date: Tue May 19 11:35:26 2015 +0200 staging: rtl8188eu: return an error code, not a boolean "If the name of a function is an action or an imperative command, the function should return an error-code integer." (Documentation/CodingStyle) Several action-like functions in this driver return a boolean: _SUCCESS = 1 on success, _FAIL = 0 on error, defined in drivers/staging/rtl8188eu/include/osdep_service.h. Change rtw_start_drv_threads() to return a proper 0-or-error value. Signed-off-by: Luca Ceresoli Cc: Greg Kroah-Hartman Cc: Larry Finger Cc: Dan Carpenter Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/os_dep/os_intfs.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) commit 8b9ffb43ac1deabc80c2622a293a12d5f1a8d0ac Author: Luca Ceresoli Date: Tue May 19 11:35:25 2015 +0200 staging: rtl8188eu: declare internal symbols as static Also remove them from .h files. Signed-off-by: Luca Ceresoli Cc: Greg Kroah-Hartman Cc: Larry Finger Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/include/osdep_intf.h | 2 -- drivers/staging/rtl8188eu/include/recv_osdep.h | 3 --- drivers/staging/rtl8188eu/os_dep/os_intfs.c | 15 +++++++++------ 3 files changed, 9 insertions(+), 11 deletions(-) commit cfaf917e6bb7e0eefa3cfdbba067221f87fdebce Author: Luca Ceresoli Date: Tue May 19 11:35:24 2015 +0200 staging: rtl8188eu: remove useless return value The loadparam() function cannot fail, it's called only once and its return value is ignored there. Signed-off-by: Luca Ceresoli Cc: Greg Kroah-Hartman Cc: Larry Finger Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/os_dep/os_intfs.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit ede000f37563adf5a7906d61d19bdb99cddf4d2e Author: Luca Ceresoli Date: Tue May 19 11:35:23 2015 +0200 staging: rtl8188eu: add missing blank lines after declarations Fixes checkpatch warnings: WARNING: Missing a blank line after declarations Signed-off-by: Luca Ceresoli Cc: Greg Kroah-Hartman Cc: Larry Finger Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/os_dep/os_intfs.c | 3 +++ 1 file changed, 3 insertions(+) commit 79ef68c83b40bb5ec212888806bc909cc62d596e Author: Luca Ceresoli Date: Tue May 19 11:35:22 2015 +0200 staging: rtl8188eu: cosmetic: remove useless spaces Even though these are not reported by checkpatch, they are coding style issues. Signed-off-by: Luca Ceresoli Cc: Greg Kroah-Hartman Cc: Larry Finger Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/os_dep/os_intfs.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit fd90ae2c1ff0863d0295da99aa651d20c4f5b836 Author: Shailendra Verma Date: Wed May 27 07:00:54 2015 +0530 staging:nvec: fix typo in comment Fix spelling error in comment in function tegra_nvec_remove. Signed-off-by: Shailendra Verma Acked-by: Marc Dietrich Signed-off-by: Greg Kroah-Hartman drivers/staging/nvec/nvec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 73b4276365a11a5e67ede758b6e876570d247202 Author: Luca Ceresoli Date: Tue May 19 11:35:19 2015 +0200 staging: rtl8712: remove useless return value The loadparam() function cannot fail, it's called only once and its return value is ignored there. Signed-off-by: Luca Ceresoli Cc: Greg Kroah-Hartman Cc: Larry Finger Cc: Florian Schilhabel Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8712/os_intfs.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit a0825db8d1c196d1699770206c70f021564869bb Author: Luca Ceresoli Date: Tue May 19 11:35:18 2015 +0200 staging: rtl8712: remove unneeded forward declaration Signed-off-by: Luca Ceresoli Cc: Greg Kroah-Hartman Cc: Larry Finger Cc: Florian Schilhabel Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8712/os_intfs.c | 1 - 1 file changed, 1 deletion(-) commit 2ede90f99650cc08ec1807ce07300cc5a4f0402f Author: Luca Ceresoli Date: Tue May 19 11:35:17 2015 +0200 staging: rtl8712: remove useless comment "step 2" does mean much as there is no "step 1" stated anywhere... Signed-off-by: Luca Ceresoli Cc: Greg Kroah-Hartman Cc: Larry Finger Cc: Florian Schilhabel Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8712/os_intfs.c | 1 - 1 file changed, 1 deletion(-) commit cab462140f8a183e3cca0b51c8b59ef715cb6148 Author: Haggai Eran Date: Sat May 23 23:13:51 2015 +0300 staging: rtl8712: prevent buffer overrun in recvbuf2recvframe With an RTL8191SU USB adaptor, sometimes the hints for a fragmented packet are set, but the packet length is too large. Allocate enough space to prevent memory corruption and a resulting kernel panic [1]. [1] http://www.spinics.net/lists/linux-wireless/msg136546.html Cc: Signed-off-by: Haggai Eran ACKed-by: Larry Finger Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8712/rtl8712_recv.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit a1471eb9da4a79650ca30c6038425f90da3b1054 Author: Sudip Mukherjee Date: Fri May 15 14:49:39 2015 +0530 staging: rtl8712: fix stack dump del_timer_sync() is not to be called in the interrupt context unless the timer is irqsafe. but most of the functions where commits 6501c8e7d86cca5f and 382d020f4459cd77 touched were called in interrupt context. And as a result the WARN_ON was getting triggered. Changed to del_timer() in places which were called from interrupt. Fixes: 382d020f4459cd77 ("Staging: rtl8712: Eliminate use of _cancel_timer" Fixes: 6501c8e7d86cca5f ("Staging: rtl8712: Eliminate use of _cancel_timer_ex") Fixes: https://bugzilla.kernel.org/show_bug.cgi?id=97711 Reported-by: Arek Rusniak Tested-by: Arek Rusniak Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8712/rtl8712_led.c | 144 +++++++++++++++--------------- drivers/staging/rtl8712/rtl871x_cmd.c | 2 +- drivers/staging/rtl8712/rtl871x_mlme.c | 6 +- drivers/staging/rtl8712/rtl871x_pwrctrl.c | 2 +- drivers/staging/rtl8712/rtl871x_sta_mgt.c | 2 +- 5 files changed, 78 insertions(+), 78 deletions(-) commit 904998bf542309735f944387c158ceed84f6abc6 Author: Vladimirs Ambrosovs Date: Mon May 25 23:22:44 2015 +0300 staging: fwserial: fix resource leak This patch fixes the leak, which was present in fwserial driver in the init function. In case the tty driver allocation failed the function returned error, leaving debugfs entry in the filesystem. To fix the issue additional error label was added, so that the code will jump to it in case of allocation failure, and free debugfs entries. Signed-off-by: Vladimirs Ambrosovs Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/staging/fwserial/fwserial.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 71d667b800c53f840f516eb7d332186ffee3e84a Author: Jagan Teki Date: Mon May 18 22:02:45 2015 +0530 staging: rtl8712: Use ether_addr_copy() instead of memcpy() Fixes Warning encounter this by applying checkpatch.pl against this file: Prefer ether_addr_copy() over memcpy() if the Ethernet addresses are __aligned(2) pahole output for respective structures: - addr->sa_data struct sockaddr { sa_family_t sa_family; /* 0 2 */ char sa_data[14]; /* 2 14 */ /* size: 16, cachelines: 1, members: 2 */ /* last cacheline: 16 bytes */ }; - pnetdev->dev_addr dev_addr is interface address infor from generic net_device structure which is properly aligned and have some patches with this change as well. "staging: rtl8712: fix Prefer ether_addr_copy() over memcpy()" (sha1: 36e4d8826b317080e283e4edd08bf8d5ac706f38) Signed-off-by: Jagan Teki Cc: Greg Kroah-Hartman Cc: Larry Finger Cc: Florian Schilhabel Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8712/os_intfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0a36d5fbd9e1a2dac7ba65e12cb4e31161c4b37f Author: Jagan Teki Date: Mon May 18 22:34:22 2015 +0530 staging: rtl8188eu: core: Fix line over 80 characters This patch fixes line over 80 characters warninings while running checkpatch.pl - "WARNING: line over 80 characters" Signed-off-by: Jagan Teki Cc: Greg Kroah-Hartman Cc: Larry Finger Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/core/rtw_ap.c | 52 +++++++++++++++++++++++---------- 1 file changed, 36 insertions(+), 16 deletions(-) commit ae33b51453b30b0586c07210ad0715a3dd9378ab Author: Sai.Jiang Date: Wed May 20 16:37:50 2015 +0800 Staging: rtl8188eu: fix coding style Remove two warnings of missing-blank-line-after-declaration. Signed-off-by: Sai.Jiang Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/hal/hal_intf.c | 2 ++ 1 file changed, 2 insertions(+) commit 46d74c38eba22bee848c205e8a98fc4b6b53a081 Author: Dan Carpenter Date: Tue May 19 15:25:24 2015 +0300 staging: slicoss: restore IRQs correctly after slic_cmdq_reset() We can't save two different values in "flags" so it means that IRQs are not enabled properly at the end of this function. This isn't a problem in the current code because it's always called with IRQs disabled so we don't want to enable them at the end. This bug is old but it's thanks to David Matlack's recent cleanups that Smatch can detect it. Signed-off-by: Dan Carpenter Reviewed-by: David Matlack Signed-off-by: Greg Kroah-Hartman drivers/staging/slicoss/slicoss.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 24768169c7929e706150ab34731394e42b5215f3 Author: Masanari Iida Date: Wed May 27 23:51:51 2015 +0900 staging: gdm72xx: Fix typos in printk This patch fix 2 spelling typos in printk within gdm72xx. Signed-off-by: Masanari Iida Signed-off-by: Greg Kroah-Hartman drivers/staging/gdm72xx/gdm_wimax.c | 2 +- drivers/staging/gdm72xx/netlink_k.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 77e8a50149a2e0970db42da27753f7e2244f9fe3 Author: Jaime Arrocha Date: Tue May 26 13:14:05 2015 -0500 staging: gdm724x: Remove test for host endian gdm_endian.c: small changes were done to remove testing for host endianness and in-driver conversion for byte-ordering. The linux/kernel.h functions are used now. gdm_endian.h: removal of code no longer needed with changes in gdm_endian.c. Signed-off-by: Jaime Arrocha Signed-off-by: Greg Kroah-Hartman drivers/staging/gdm724x/gdm_endian.c | 46 +++++++++++++----------------------- drivers/staging/gdm724x/gdm_endian.h | 11 --------- 2 files changed, 17 insertions(+), 40 deletions(-) commit 3f8ded9d9c353cffe36e7d36c2a4bbdcb26bc5c1 Author: Nicholas Mc Guire Date: Wed May 27 18:02:38 2015 +0200 staging: rts5208: pass timeout as HZ independent value schedule_timeout takes a timeout in jiffies but the code currently is passing in a constant POLLING_INTERVAL which makes this timeout HZ dependent, so pass it through msecs_to_jiffies() to fix this up. patch was compile tested for x86_64_defconfig + CONFIG_STAGING=y, CONFIG_RTS5208=m Patch is against 4.0-rc5 (localversion-next is -next-20150527) Signed-off-by: Nicholas Mc Guire Signed-off-by: Greg Kroah-Hartman drivers/staging/rts5208/rtsx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8ee0df0d0695f87075a77b0dc9f5f594b7ec423f Author: Akinobu Mita Date: Sat May 16 16:17:51 2015 +0900 staging: rts5208: fix transfer length 0 for 6-byte r/w commands For 6-byte r/w commands, transfer length 0 means 256 blocks of data, not 0 block. Signed-off-by: Akinobu Mita Cc: Micky Ching Cc: Greg Kroah-Hartman Cc: linux-scsi@vger.kernel.org Signed-off-by: Greg Kroah-Hartman drivers/staging/rts5208/rtsx_scsi.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 07d783fd830a49008f3b2764ae7b6033ee1bf329 Author: Peter Senna Tschudin Date: Tue May 19 11:44:46 2015 +0200 staging: goldfish: Fix pointer cast for 32 bits As the first argument of gf_write64() was of type unsigned long, and as some calls to gf_write64() were casting the first argument from void * to u64 the compiler and/or sparse were printing warnings for casts of wrong sizes when compiling for i386. This patch changes the type of the first argument of gf_write64() to const void *, and update calls to the function. This change fixed the warnings and allowed to remove casts from 3 calls to gf_write64(). In addition gf_write64() was renamed to gf_write_ptr() as the name was misleading because it only writes 32 bits on 32 bit systems. gf_write_dma_addr() was added to handle dma_addr_t values which is used at drivers/staging/goldfish/goldfish_audio.c. Signed-off-by: Dan Carpenter Signed-off-by: Peter Senna Tschudin Signed-off-by: Greg Kroah-Hartman drivers/platform/goldfish/goldfish_pipe.c | 18 +++++++++--------- drivers/staging/goldfish/goldfish_audio.c | 2 +- drivers/staging/goldfish/goldfish_nand.c | 2 +- drivers/tty/goldfish.c | 4 ++-- include/linux/goldfish.h | 19 +++++++++++++++---- 5 files changed, 28 insertions(+), 17 deletions(-) commit e97bc8b220c41cab2e84d7410ece70166bba9fe9 Author: Alex Dowad Date: Sun May 17 19:19:37 2015 +0200 staging: ft1000: Remove empty branch from conditional This fixes a checkpatch style warning in ft1000_ioctl. Signed-off-by: Alex Dowad Signed-off-by: Greg Kroah-Hartman drivers/staging/ft1000/ft1000-usb/ft1000_debug.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 469caabe52aaa051f4a18a14055af459db2dcb01 Author: Colin Cronin Date: Fri May 15 13:02:40 2015 -0700 Staging: dgap: dgap: Fixed spelling errors Fixed comment spelling errors Signed-off-by: Colin Cronin Signed-off-by: Greg Kroah-Hartman drivers/staging/dgap/dgap.c | 2 +- drivers/staging/dgap/dgap.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 7257f9d1ac2e06a10f753d65ce819de70cf678fa Author: Simon Guo Date: Sat May 30 16:10:46 2015 +0800 STAGING: Declare request_cache as static for drivers/staging/lustre/lustre/ptlrpc/client.c Declare request_cache variable as static. It is only used by drivers/staging/lustre/lustre/ptlrpc/client.c, and its naming is common which will lead to namespace pollution. Signed-off-by: Simon Guo Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/ptlrpc/client.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 758ed62b0ee818fc814e85c9680f3f8236e812fe Author: Oleg Drokin Date: Fri May 29 18:27:47 2015 -0400 staging/lustre: Update header license for lustre_dlm_flags.h lustre_dlm_flags.h was autogenerated with a wrong script that mistakenly stated it is GPLv3 when in fact it should be GPLv2. Also since we are no longer autogenerating this header, drop all such mentionings. Reported by: George G. Davis Signed-off-by: Oleg Drokin Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-6599 Reviewed-on: http://review.whamcloud.com/14797 Reviewed-by: Andreas Dilger CC: George G. Davis Signed-off-by: Greg Kroah-Hartman .../staging/lustre/lustre/include/lustre_dlm_flags.h | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) commit c3faa4a192f1e7affec94531d0748e5dc60b8504 Author: Julia Lawall Date: Thu May 28 23:02:23 2015 +0200 staging/lustre/mdc: drop unneeded goto Delete jump to a label on the next line, when that label is not used elsewhere. A simplified version of the semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @r@ identifier l; @@ -if (...) goto l; -l: // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/mdc/mdc_request.c | 3 --- 1 file changed, 3 deletions(-) commit f9aaa43eeea07adb3bf8354d1b36622b9c349c5a Author: Marcus Folkesson Date: Thu May 28 11:21:19 2015 +0200 staging: lustre: fix non-static symbol warnings reported by sparse Warnings reported by sparse: drivers/staging/lustre/lustre/ptlrpc/pinger.c:94:5: warning: symbol 'ptlrpc_ping' was not declared. Should it be static? drivers/staging/lustre/lustre/ptlrpc/pinger.c:113:6: warning: symbol 'ptlrpc_update_next_ping' was not declared. Should it be static drivers/staging/lustre/lustre/ptlrpc/pinger.c:144:6: warning: symbol 'pinger_check_timeout' was not declared. Should it be static? drivers/staging/lustre/lustre/ptlrpc/pinger.c:425:21: warning: symbol 'ptlrpc_new_timeout' was not declared. Should it be static? drivers/staging/lustre/lustre/ptlrpc/pinger.c:551:1: warning: symbol 'pet_list' was not declared. Should it be static? Signed-off-by: Marcus Folkesson Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/ptlrpc/pinger.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 61e87ab0f8b24300f10ea345ebf382d9f93c5bc2 Author: Dmitry Eremin Date: Thu May 21 15:32:27 2015 -0400 staging/lustre/obd: move status files from procfs to debugfs change type of * obd->obd_proc_entry * obd->obd_svc_procroot * lov->lov_pool_proc_entry * obd_type->typ_procroot * pool_desc->pool_proc_entry Signed-off-by: Dmitry Eremin Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman .../staging/lustre/lustre/include/lprocfs_status.h | 4 ++ drivers/staging/lustre/lustre/include/obd.h | 10 ++-- drivers/staging/lustre/lustre/lmv/lmv_obd.c | 14 ++--- drivers/staging/lustre/lustre/lmv/lproc_lmv.c | 2 +- drivers/staging/lustre/lustre/lov/lov_obd.c | 19 +++---- drivers/staging/lustre/lustre/lov/lov_pool.c | 31 +++++------ drivers/staging/lustre/lustre/lov/lproc_lov.c | 2 +- drivers/staging/lustre/lustre/mdc/lproc_mdc.c | 2 +- drivers/staging/lustre/lustre/obdclass/genops.c | 17 +++--- .../lustre/lustre/obdclass/lprocfs_status.c | 63 ++++++++++++++-------- drivers/staging/lustre/lustre/osc/lproc_osc.c | 4 +- .../staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c | 12 ++--- 12 files changed, 98 insertions(+), 82 deletions(-) commit 827650494fbe9390052502d0498c8b90b2e329ec Author: Dmitry Eremin Date: Thu May 21 15:32:26 2015 -0400 staging/lustre/fld: move all files from procfs to debugfs Signed-off-by: Dmitry Eremin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/fld/fld_internal.h | 5 +- drivers/staging/lustre/lustre/fld/fld_request.c | 66 ++++++++-------------- drivers/staging/lustre/lustre/fld/lproc_fld.c | 42 +++++++------- drivers/staging/lustre/lustre/include/lustre_fld.h | 12 ++-- drivers/staging/lustre/lustre/lmv/lmv_obd.c | 2 +- 5 files changed, 55 insertions(+), 72 deletions(-) commit f3aa79fbef7942971825fb2084a88e9527c6b04c Author: Dmitry Eremin Date: Thu May 21 15:32:25 2015 -0400 staging/lustre/fid: move all files from procfs to debugfs Signed-off-by: Dmitry Eremin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/fid/fid_internal.h | 6 +-- drivers/staging/lustre/lustre/fid/fid_request.c | 63 +++++++++------------- drivers/staging/lustre/lustre/fid/lproc_fid.c | 49 +++++++++-------- drivers/staging/lustre/lustre/include/lustre_fid.h | 2 +- 4 files changed, 54 insertions(+), 66 deletions(-) commit 4ed8ddb09b2b11f115845961e280ee9d796ff262 Author: Dmitry Eremin Date: Thu May 21 15:32:24 2015 -0400 staging/lustre/obdclass: remove unused sysctl enum definition Since we are removing lustre sysctls, this enum is no longer needed. Signed-off-by: Dmitry Eremin Signed-off-by: Greg Kroah-Hartman .../lustre/lustre/obdclass/linux/linux-sysctl.c | 24 ---------------------- 1 file changed, 24 deletions(-) commit b5fa70d76fb1c532dd4468b8083e2945c9df9ddb Author: Oleg Drokin Date: Thu May 21 15:32:23 2015 -0400 staging/lustre/lmv: Move suitable entries from procfs to sysfs Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/include/obd.h | 2 +- drivers/staging/lustre/lustre/lmv/lmv_obd.c | 60 ++++------------- drivers/staging/lustre/lustre/lmv/lproc_lmv.c | 92 ++++++++++++++------------- drivers/staging/lustre/sysfs-fs-lustre | 23 +++++++ 4 files changed, 85 insertions(+), 92 deletions(-) commit cb1debff6d8b254536ec6ff642a2bdd22c86cb85 Author: Oleg Drokin Date: Thu May 21 15:32:22 2015 -0400 staging/lustre/lov: Move suitable variables from procfs to sysfs Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/include/obd.h | 2 ++ drivers/staging/lustre/lustre/lov/lov_obd.c | 44 ++++++++++----------------- drivers/staging/lustre/lustre/lov/lproc_lov.c | 39 +++++++++++++++--------- drivers/staging/lustre/sysfs-fs-lustre | 13 ++++++++ 4 files changed, 55 insertions(+), 43 deletions(-) commit aab38b00ac19347bf982cf42c71aab14a9301dee Author: Oleg Drokin Date: Thu May 21 15:32:21 2015 -0400 staging/lustre/osc: move suitable values from procfs to sysfs All single-value controls are moved from /proc/fs/lustre/osc/.../ to /sys/fs/lustre/osc/.../ Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/osc/lproc_osc.c | 371 +++++++++++++++----------- drivers/staging/lustre/sysfs-fs-lustre | 107 +++++++- 2 files changed, 314 insertions(+), 164 deletions(-) commit 2ee26222d497cf75eb9a02f324dee8b6b16e1e67 Author: Oleg Drokin Date: Thu May 21 15:32:20 2015 -0400 staging/lustre/mdc: move mdc-specific procfs files to sysfs This moves max_rpcs_in_flight and max_pages_per_rpc to /proc/fs/lustre/mdc/.../ Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/mdc/lproc_mdc.c | 68 +++++++++++++++++---------- drivers/staging/lustre/sysfs-fs-lustre | 16 +++++++ 2 files changed, 60 insertions(+), 24 deletions(-) commit d8ede3f1d5d94618442a61067c6b98a2afbb0962 Author: Oleg Drokin Date: Thu May 21 15:32:18 2015 -0400 staging/lustre/llite: make llite/lov and lmv symlinks old proc code had /proc/sys/fs/lustre/llite/.../lov and lmv dirs that contained name of the dir in lustre/lov and lustre/lmv to better be able to find correct obd device there, but I imagien a better solution would be to just create a symlink with the same name. The name is then pointless and the target dir would have uuid file just as if it was the old-style dir. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/lproc_llite.c | 49 ++--------------------- 1 file changed, 4 insertions(+), 45 deletions(-) commit 0bc36cb06e4bc5e936f2f442535daf557c7a4200 Author: Oleg Drokin Date: Thu May 21 15:32:17 2015 -0400 staging/lustre/obdclass: Move common obd proc files to sysfs This moves uuid display and also underlying fs statistics. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman .../staging/lustre/lustre/include/lprocfs_status.h | 7 -- drivers/staging/lustre/lustre/lmv/lproc_lmv.c | 3 - drivers/staging/lustre/lustre/lov/lproc_lov.c | 15 ---- drivers/staging/lustre/lustre/mdc/lproc_mdc.c | 14 ---- drivers/staging/lustre/lustre/mgc/lproc_mgc.c | 2 - .../lustre/lustre/obdclass/lprocfs_status.c | 79 ++++++++++++++-------- drivers/staging/lustre/lustre/osc/lproc_osc.c | 14 ---- drivers/staging/lustre/sysfs-fs-lustre | 48 +++++++++++++ 8 files changed, 97 insertions(+), 85 deletions(-) commit 9b8013023cb62360b56c04313687e93a1c2bf3d6 Author: Oleg Drokin Date: Thu May 21 15:32:16 2015 -0400 staging/lustre/obdclass: Prepare for procfs to sysfs migration Add necessary plumbing to register obd types and instances under /sys/fs/lustre Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman .../staging/lustre/lustre/include/lprocfs_status.h | 4 ++- drivers/staging/lustre/lustre/include/obd.h | 4 +++ drivers/staging/lustre/lustre/lmv/lmv_obd.c | 4 +-- drivers/staging/lustre/lustre/lov/lov_obd.c | 2 +- drivers/staging/lustre/lustre/mdc/mdc_request.c | 2 +- drivers/staging/lustre/lustre/mgc/mgc_request.c | 4 +-- drivers/staging/lustre/lustre/obdclass/genops.c | 11 ++++++ .../lustre/lustre/obdclass/lprocfs_status.c | 40 +++++++++++++++++++++- drivers/staging/lustre/lustre/osc/osc_request.c | 2 +- 9 files changed, 64 insertions(+), 9 deletions(-) commit b8c7ceda74e31aa8511e7b334e14e1c6169e8bee Author: Oleg Drokin Date: Thu May 21 15:32:15 2015 -0400 staging/lustre/obdecho: Remove procfs registration obdecho client seems to be only registering useless proc values that are of no use to anybody. Remove them. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/obdecho/Makefile | 2 +- .../staging/lustre/lustre/obdecho/echo_client.c | 8 ---- drivers/staging/lustre/lustre/obdecho/lproc_echo.c | 50 ---------------------- 3 files changed, 1 insertion(+), 59 deletions(-) commit cc551d5da62dc03f4343e879105f77eb3ca402ca Author: Oleg Drokin Date: Thu May 21 15:32:14 2015 -0400 stagng/lustre/obdclass: Remove unused function lprocfs_rd_num_exports This function is unused in client code. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/include/lprocfs_status.h | 1 - drivers/staging/lustre/lustre/obdclass/lprocfs_status.c | 10 ---------- 2 files changed, 11 deletions(-) commit 2962b440dfe0357405a46e2afe1b6ff33de58465 Author: Oleg Drokin Date: Thu May 21 15:32:13 2015 -0400 staging/lustre: Remove useless num_refs procfs variable Every obd type registers it, but it's not really needed by anybody. Remove all the supporting infrastructure too. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/include/lprocfs_status.h | 2 -- drivers/staging/lustre/lustre/include/obd_class.h | 3 +-- drivers/staging/lustre/lustre/llite/lproc_llite.c | 1 - drivers/staging/lustre/lustre/lmv/lmv_obd.c | 2 +- drivers/staging/lustre/lustre/lmv/lproc_lmv.c | 8 -------- drivers/staging/lustre/lustre/lov/lov_obd.c | 2 +- drivers/staging/lustre/lustre/lov/lproc_lov.c | 8 -------- drivers/staging/lustre/lustre/mdc/lproc_mdc.c | 8 -------- drivers/staging/lustre/lustre/mdc/mdc_request.c | 2 +- drivers/staging/lustre/lustre/mgc/lproc_mgc.c | 7 ------- drivers/staging/lustre/lustre/mgc/mgc_request.c | 2 +- drivers/staging/lustre/lustre/obdclass/genops.c | 4 ++-- drivers/staging/lustre/lustre/obdclass/lprocfs_status.c | 10 ---------- drivers/staging/lustre/lustre/obdecho/echo_client.c | 1 - drivers/staging/lustre/lustre/obdecho/lproc_echo.c | 7 ------- drivers/staging/lustre/lustre/osc/lproc_osc.c | 7 ------- drivers/staging/lustre/lustre/osc/osc_request.c | 2 +- 17 files changed, 8 insertions(+), 68 deletions(-) commit 77386b3c0b4470db1ed546de858b31cac66fc943 Author: Dmitry Eremin Date: Thu May 21 15:32:12 2015 -0400 staging/lustre/ptlrpc: move sptlrpc procfs entry to debugfs We might want eventuall split it into a bunch of single-value sysfs entries, I imagine, but there is no urgent need now. Signed-off-by: Dmitry Eremin Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/include/lustre_sec.h | 8 ------- drivers/staging/lustre/lustre/ptlrpc/sec_lproc.c | 27 ++++++++++------------ 2 files changed, 12 insertions(+), 23 deletions(-) commit 700815d47f9da0477229f009b6fa235f20da1e21 Author: Dmitry Eremin Date: Thu May 21 15:32:11 2015 -0400 staging/lustre/ldlm: move all remaining files from procfs to debugfs Move all files except stats. It will be moved later after change type of obddev->obd_proc_entry member. Signed-off-by: Dmitry Eremin Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/include/lustre_dlm.h | 17 +-- drivers/staging/lustre/lustre/include/lustre_net.h | 6 +- drivers/staging/lustre/lustre/ldlm/ldlm_internal.h | 3 +- drivers/staging/lustre/lustre/ldlm/ldlm_lockd.c | 7 +- drivers/staging/lustre/lustre/ldlm/ldlm_pool.c | 50 ++++---- drivers/staging/lustre/lustre/ldlm/ldlm_request.c | 4 +- drivers/staging/lustre/lustre/ldlm/ldlm_resource.c | 128 ++++++++++----------- .../staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c | 65 ++++++----- .../staging/lustre/lustre/ptlrpc/ptlrpc_internal.h | 5 +- drivers/staging/lustre/lustre/ptlrpc/service.c | 6 +- 10 files changed, 136 insertions(+), 155 deletions(-) commit b40881e579588360242bd3f8f79f978d2a871e0e Author: Oleg Drokin Date: Thu May 21 15:32:10 2015 -0400 staging/lustre/ptlrpc: move procfs high_priority_ratio file to sysfs Move ptlrpc service high_priority_ratio entry from procfs to sysfs. Currently in use only by ldlm callback service only in /sys/fs/lustre/ldlm/services/ldlm_cbd/ Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman .../staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c | 33 +++++++++++----------- drivers/staging/lustre/sysfs-fs-lustre | 7 +++++ 2 files changed, 24 insertions(+), 16 deletions(-) commit 673a6796f290fe8079af6a688f20c87e7416bba5 Author: Oleg Drokin Date: Thu May 21 15:32:09 2015 -0400 staging/lustre/ptlrpc: move procfs threads* files to sysfs Move ptlrpc service threads_min, threads_max and threads_running entries from procfs to sysfs. Currently in use only by ldlm callback service only in /sys/fs/lustre/ldlm/services/ldlm_cbd/ Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman .../staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c | 80 ++++++++++------------ drivers/staging/lustre/sysfs-fs-lustre | 18 +++++ 2 files changed, 55 insertions(+), 43 deletions(-) commit 328676f823b49741675f8ae47643669a31c79558 Author: Oleg Drokin Date: Thu May 21 15:32:08 2015 -0400 staging/lustre/ptlrpc: Add infrastructure for sysfs migration Added necessary plumbing for ptlrpc sysfs integration for registered services, sysfs directory registration. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/include/lustre_net.h | 5 +++ drivers/staging/lustre/lustre/ldlm/ldlm_lockd.c | 3 +- .../staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c | 40 ++++++++++++++++++++++ .../staging/lustre/lustre/ptlrpc/ptlrpc_internal.h | 4 +++ drivers/staging/lustre/lustre/ptlrpc/service.c | 8 +++++ 5 files changed, 59 insertions(+), 1 deletion(-) commit 4361a048743f900bb0710bd7cb36a650d7bef93a Author: Oleg Drokin Date: Thu May 21 15:32:07 2015 -0400 staging/lustre: move /proc/fs/lustre/devices to debugfs the devices file prints out status information about all obd devices in the system in human readable form. Signed-off-by: Dmitry Eremin Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/obdclass/linux/linux-module.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) commit 5c8c82f63a11c07a0687d2c71411166017012689 Author: Oleg Drokin Date: Thu May 21 15:32:06 2015 -0400 staging/lustre: Add debugfs root This is just plumbing for migrating remaining procfs to debugfs support Signed-off-by: Dmitry Eremin Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman .../staging/lustre/lustre/include/lprocfs_status.h | 25 ++++- .../lustre/lustre/obdclass/linux/linux-module.c | 32 ++++++- .../lustre/lustre/obdclass/lprocfs_status.c | 103 ++++++++++++++++++++- 3 files changed, 153 insertions(+), 7 deletions(-) commit 24b8c88a7122df35ce6a413cd76e9581411eab8f Author: Oleg Drokin Date: Thu May 21 15:32:05 2015 -0400 staging/lustre/ldlm: move procfs ldlm pool stats to sysfs Suitable contents of /proc/fs/lustre/ldlm/namespaces/.../pools/ is moved to /sys/fs/lustre/ldlm/namespaces/.../pools/: cancel_rate grant_plan grant_speed lock_volume_factor server_lock_volume granted grant_rate limit recalc_period Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/ldlm/ldlm_internal.h | 73 +++++++++++++++++----- drivers/staging/lustre/lustre/ldlm/ldlm_pool.c | 70 +++++++++++---------- drivers/staging/lustre/sysfs-fs-lustre | 62 ++++++++++++++++++ 3 files changed, 159 insertions(+), 46 deletions(-) commit f2825e039e1a6b58411087e1e17638f872d00a93 Author: Oleg Drokin Date: Thu May 21 15:32:04 2015 -0400 staging/lustre/ldlm: Add infrastructure to move ldlm pool controls to sysfs This adds registration of /sys/fs/lustre/ldlm/namespaces/.../pool dir. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/include/lustre_dlm.h | 4 ++ drivers/staging/lustre/lustre/ldlm/ldlm_pool.c | 45 +++++++++++++++++++++- 2 files changed, 47 insertions(+), 2 deletions(-) commit fa0352f0c10a4ee1044de46bbffb4593dca319ba Author: Oleg Drokin Date: Thu May 21 15:32:03 2015 -0400 staging/lustre/ldlm: remove server-side congested locks support This code only makes sense on the server, also while we are at it drop registration of server-side procfs values and as all client side values were already moved to sysfs - also drop now unused procfs helpers. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/include/lustre_dlm.h | 42 ---------------------- drivers/staging/lustre/lustre/ldlm/ldlm_resource.c | 38 -------------------- 2 files changed, 80 deletions(-) commit c841236dda9aa334f7e241e3c526360328f77343 Author: Oleg Drokin Date: Thu May 21 15:32:02 2015 -0400 staging/lustre/ldlm: move namespaces/lru_max_age to sysfs Move ldlm display of lru_max_age from procfs to sysfs Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/ldlm/ldlm_resource.c | 30 ++++++++++++++++++++-- drivers/staging/lustre/sysfs-fs-lustre | 7 +++++ 2 files changed, 35 insertions(+), 2 deletions(-) commit 3dd4598271fc119a4e3c5589be03f88a41c31e64 Author: Oleg Drokin Date: Thu May 21 15:32:01 2015 -0400 staging/lustre/ldlm: move namespaces/lock_unused_count to sysfs Move ldlm display of lock_unused_count from procfs to sysfs Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/ldlm/ldlm_resource.c | 14 ++++++++++++-- drivers/staging/lustre/sysfs-fs-lustre | 7 +++++++ 2 files changed, 19 insertions(+), 2 deletions(-) commit 87d32094efc208f31e4e3b226d25e58058352208 Author: Oleg Drokin Date: Thu May 21 15:32:00 2015 -0400 staging/lustre/ldlm: move namespaces/early_lock_cancel to sysfs Move ldlm display of early_lock_cancel from procfs to sysfs Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/ldlm/ldlm_resource.c | 28 ++++++++++++---------- drivers/staging/lustre/sysfs-fs-lustre | 13 ++++++++++ 2 files changed, 29 insertions(+), 12 deletions(-) commit 6784096b4818636ad512575c701e164e8e6a09d3 Author: Oleg Drokin Date: Thu May 21 15:31:59 2015 -0400 staging/lustre/ldlm: move namespaces/lru_size to sysfs Move ldlm display of lru_size from procfs to sysfs Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/ldlm/ldlm_resource.c | 31 ++++++++++------------ drivers/staging/lustre/sysfs-fs-lustre | 9 +++++++ 2 files changed, 23 insertions(+), 17 deletions(-) commit 63af1f57474fac888116d896a0c5f17aeb6a702d Author: Oleg Drokin Date: Thu May 21 15:31:58 2015 -0400 staging/lustre/ldlm: move namespace/lock_count to sysfs Move ldlm display of lock_count from procfs to sysfs Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/ldlm/ldlm_resource.c | 29 ++++++++++++---------- drivers/staging/lustre/sysfs-fs-lustre | 6 +++++ 2 files changed, 22 insertions(+), 13 deletions(-) commit 61d4a2e4b061179512fd4b240024a14646bb7b09 Author: Oleg Drokin Date: Thu May 21 15:31:57 2015 -0400 staging/lustre/ldlm: move namespaces/resource_count to sysfs Move ldlm display of resource_count from procfs to sysfs Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/ldlm/ldlm_resource.c | 12 +++++++----- drivers/staging/lustre/sysfs-fs-lustre | 7 +++++++ 2 files changed, 14 insertions(+), 5 deletions(-) commit 0f53c823f9664683ce1aadab2d6a4cee950d6f62 Author: Oleg Drokin Date: Thu May 21 15:31:56 2015 -0400 staging/lustre/ldlm: move cancel_unused_locks_before_replay to sysfs /proc/fs/lustre/ldlm/cancel_unused_locks_before_replay is moved to /sys/fs/lustre/ldlm/cancel_unused_locks_before_replay Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/ldlm/ldlm_lockd.c | 29 +++++++++++++++++++++- drivers/staging/lustre/lustre/ldlm/ldlm_resource.c | 4 --- drivers/staging/lustre/sysfs-fs-lustre | 10 ++++++++ 3 files changed, 38 insertions(+), 5 deletions(-) commit 18fd8850a4c8177ecf4870ff38c208d329a21ed0 Author: Oleg Drokin Date: Thu May 21 15:31:55 2015 -0400 staging/lustre/ldlm: Preparation to move /proc/fs/lustre/ldlm to sysfs Add necessary infrastructure, register /sys/fs/lustre/ldlm, /sys/fs/lustre/ldlm/namespaces and /sys/fs/lustre/ldlm/services Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/include/lustre_dlm.h | 6 +++ drivers/staging/lustre/lustre/ldlm/ldlm_lockd.c | 43 ++++++++++++++++++- drivers/staging/lustre/lustre/ldlm/ldlm_resource.c | 48 +++++++++++++++++++++- 3 files changed, 95 insertions(+), 2 deletions(-) commit 070c29ca79ef5a3ba753053928371b257064b15f Author: Oleg Drokin Date: Thu May 21 15:31:54 2015 -0400 staging/lustre/llite: move /proc/fs/lustre/llite/xattr_cache to sysfs Move xattr_cache file from /proc/fs/lustre/llite/* to /sys/fs/lustre/llite/*/ Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/lproc_llite.c | 33 ++++++++++++----------- drivers/staging/lustre/sysfs-fs-lustre | 7 +++++ 2 files changed, 24 insertions(+), 16 deletions(-) commit d36f2b0ba87ef5ad41a2f02e941b8f8897f6c2a5 Author: Oleg Drokin Date: Thu May 21 15:31:53 2015 -0400 staging/lustre/llite: remove llite/*_cookiesize proc files Since Lustre 2.5, cookiesize is unused on the clients since MDS now does final object unlink by itself, so drop these max_cookiesize and default_cookiesize files. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/lproc_llite.c | 34 ----------------------- 1 file changed, 34 deletions(-) commit f5501d042e5dd2b9932f1cad8ad3a71ec4777926 Author: Oleg Drokin Date: Thu May 21 15:31:52 2015 -0400 staging/lustre/llite: move /proc/fs/lustre/llite/*_easize to sysfs Move max_easize and default_easize files from /proc/fs/lustre/llite/* to /sys/fs/lustre/llite/*/ Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/lproc_llite.c | 30 ++++++++++++----------- drivers/staging/lustre/sysfs-fs-lustre | 14 +++++++++++ 2 files changed, 30 insertions(+), 14 deletions(-) commit c7fe64bdd0623f5871800ff42842741175f19562 Author: Oleg Drokin Date: Thu May 21 15:31:51 2015 -0400 staging/lustre/llite: move /proc/fs/lustre/llite/lazystatfs to sysfs Move lazystatfs file from /proc/fs/lustre/llite/* to /sys/fs/lustre/llite/*/ Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/lproc_llite.c | 31 +++++++++++++---------- drivers/staging/lustre/sysfs-fs-lustre | 8 ++++++ 2 files changed, 25 insertions(+), 14 deletions(-) commit 4081a3201ade8b3be715ebb0b7879a2bfe5fcc98 Author: Oleg Drokin Date: Thu May 21 15:31:50 2015 -0400 staging/lustre/llite: move /proc/fs/lustre/llite/statahead_{max, agl} to sysfs Move statahead_max and statahead_agl files from /proc/fs/lustre/llite/* to /sys/fs/lustre/llite/*/ Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/lproc_llite.c | 66 ++++++++++++----------- drivers/staging/lustre/sysfs-fs-lustre | 16 ++++++ 2 files changed, 52 insertions(+), 30 deletions(-) commit 62cf4b1315e86a1f373f77acf32a23d76428ba27 Author: Oleg Drokin Date: Thu May 21 15:31:49 2015 -0400 staging/lustre/llite: move /proc/fs/lustre/llite/stats_track* to sysfs Move stats_track_pid, stats_track_ppid and stats_track_gid files from /proc/fs/lustre/llite/* to /sys/fs/lustre/llite/*/ Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/lproc_llite.c | 99 ++++++++++++----------- drivers/staging/lustre/sysfs-fs-lustre | 21 +++++ 2 files changed, 75 insertions(+), 45 deletions(-) commit 06ed0cd897a8d1b1c9a067b7b726b9a47a4ca7e0 Author: Oleg Drokin Date: Thu May 21 15:31:48 2015 -0400 staging/lustre/llite: remove unused ll_max_rw_chunk ll_max_rw_chunk seems to be unused ever since we implemented CLIO in 2.0, so remove it and all supporting infrastructure. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman .../staging/lustre/lustre/llite/llite_internal.h | 5 ----- drivers/staging/lustre/lustre/llite/llite_lib.c | 1 - drivers/staging/lustre/lustre/llite/lproc_llite.c | 24 ---------------------- 3 files changed, 30 deletions(-) commit 40cc864a9fcd48d7f3a67421a8e578e8d4cbe308 Author: Oleg Drokin Date: Thu May 21 15:31:47 2015 -0400 staging/lustre/llite: move /proc/fs/lustre/llite/checksum_pages to sysfs Move checksum_pages file from /proc/fs/lustre/llite/* to /sys/fs/lustre/llite/*/ Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/llite_lib.c | 2 +- drivers/staging/lustre/lustre/llite/lproc_llite.c | 30 ++++++++++++----------- drivers/staging/lustre/sysfs-fs-lustre | 7 ++++++ 3 files changed, 24 insertions(+), 15 deletions(-) commit ec469235867c22e9bd3e244ddd357202fac20276 Author: Oleg Drokin Date: Thu May 21 15:31:46 2015 -0400 staging/lustre/llite: move llite/max_read_ahead_whole_mb to sysfs Move max_read_ahead_whole_mb file from /proc/fs/lustre/llite/* to /sys/fs/lustre/llite/*/ Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/lproc_llite.c | 34 ++++++++++++----------- drivers/staging/lustre/sysfs-fs-lustre | 7 +++++ 2 files changed, 25 insertions(+), 16 deletions(-) commit 0e6c5a219a6ee69c014c598f3edd04126fecea57 Author: Oleg Drokin Date: Thu May 21 15:31:45 2015 -0400 staging/lustre/llite: move llite/max_read_ahead_per_file_mb to sysfs Move max_read_ahead_per_file_mb file from /proc/fs/lustre/llite/* to /sys/fs/lustre/llite/*/ Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/lproc_llite.c | 35 ++++++++++++----------- drivers/staging/lustre/sysfs-fs-lustre | 6 ++++ 2 files changed, 24 insertions(+), 17 deletions(-) commit e1a1df5e885ccf71cf2037b0c7ac4a5fd3a0e27f Author: Oleg Drokin Date: Thu May 21 15:31:44 2015 -0400 staging/lustre/llite: move /proc/fs/lustre/llite/max_read_ahead_mb to sysfs Move max_read_ahead_mb file from /proc/fs/lustre/llite/* to /sys/fs/lustre/llite/*/ Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/lproc_llite.c | 35 +++++++++++++---------- drivers/staging/lustre/sysfs-fs-lustre | 7 +++++ 2 files changed, 27 insertions(+), 15 deletions(-) commit ec55a6299990efa969dfc00d95c72444ff1e3461 Author: Oleg Drokin Date: Thu May 21 15:31:43 2015 -0400 staging/lustre/llite: move /proc/fs/lustre/llite/uuid to sysfs Move uuid file from /proc/fs/lustre/llite/* to /sys/fs/lustre/llite/*/ Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/lproc_llite.c | 14 +++++++------- drivers/staging/lustre/sysfs-fs-lustre | 6 ++++++ 2 files changed, 13 insertions(+), 7 deletions(-) commit 0cee667682b55d7c389d77877adbd63360415baa Author: Oleg Drokin Date: Thu May 21 15:31:42 2015 -0400 staging/lustre/llite: move /proc/fs/lustre/llite/fstype to sysfs Move fstype file from /proc/fs/lustre/llite/* to /sys/fs/lustre/llite/*/ Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/lproc_llite.c | 14 +++++++------- drivers/staging/lustre/sysfs-fs-lustre | 6 ++++++ 2 files changed, 13 insertions(+), 7 deletions(-) commit 95e1b6b0cff09292158ecc0701f721315167b64e Author: Oleg Drokin Date: Thu May 21 15:31:41 2015 -0400 staging/lustre/llite: move /proc/fs/lustre/llite/client_type to sysfs Move client_type file from /proc/fs/lustre/llite/* to /sys/fs/lustre/llite/*/ Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/lproc_llite.c | 20 ++++++++------------ drivers/staging/lustre/sysfs-fs-lustre | 8 ++++++++ 2 files changed, 16 insertions(+), 12 deletions(-) commit 7267ec0d8726c214aaf24ca9e8baebb443b0da75 Author: Oleg Drokin Date: Thu May 21 15:31:40 2015 -0400 staging/lustre/llite: move /proc/fs/lustre/llite/files* to sysfs Move filestotal and filesfree files from /proc/fs/lustre/llite/* to /sys/fs/lustre/llite/*/ Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/lproc_llite.c | 30 ++++++++++++----------- drivers/staging/lustre/sysfs-fs-lustre | 12 +++++++++ 2 files changed, 28 insertions(+), 14 deletions(-) commit 5804b11e1487558c6740282a01a08bb4ba0c6d06 Author: Oleg Drokin Date: Thu May 21 15:31:39 2015 -0400 staging/lustre/llite: move /proc/fs/lustre/llite/kbytes* to sysfs Move kbytestotal, kbytesavail and kbytesfree files from /proc/fs/lustre/llite/* to /sys/fs/lustre/llite/*/ Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/lproc_llite.c | 45 ++++++++++++----------- drivers/staging/lustre/sysfs-fs-lustre | 20 ++++++++++ 2 files changed, 44 insertions(+), 21 deletions(-) commit 364bcfc8634d5625dbb41683b061bddf307a70e8 Author: Oleg Drokin Date: Thu May 21 15:31:38 2015 -0400 staging/lustre/llite: move /proc/fs/lustre/llite/blocksize to sysfs Move blocksize file from /proc/fs/lustre/llite/*/ to /sys/fs/lustre/llite/*/blocksize Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/lproc_llite.c | 15 ++++++++------- drivers/staging/lustre/sysfs-fs-lustre | 6 ++++++ 2 files changed, 14 insertions(+), 7 deletions(-) commit fd0d04ba85f95169106701397417360541a983b3 Author: Oleg Drokin Date: Thu May 21 15:31:37 2015 -0400 staging/lustre/llite: Preparation to move /proc/fs/lustre/llite to sysfs Add necessary infrastructure, add support for mountpoint registration in /proc/fs/lustre/llite Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman .../staging/lustre/lustre/llite/llite_internal.h | 4 ++++ drivers/staging/lustre/lustre/llite/llite_lib.c | 7 ++++-- drivers/staging/lustre/lustre/llite/lproc_llite.c | 26 ++++++++++++++++++++++ drivers/staging/lustre/lustre/llite/super25.c | 11 ++++++++- 4 files changed, 45 insertions(+), 3 deletions(-) commit 8b82844505699f10f80c7e554364e3d0618cd77d Author: Oleg Drokin Date: Thu May 21 15:31:36 2015 -0400 staging/lustre: Move /proc/fs/lustre root level files to sysfs except devices, for now. Signed-off-by: Oleg Drokin Signed-off-by: Dmitry Eremin Signed-off-by: Greg Kroah-Hartman .../staging/lustre/lustre/include/lprocfs_status.h | 2 + .../lustre/lustre/obdclass/linux/linux-module.c | 111 ++++++++++++--------- drivers/staging/lustre/sysfs-fs-lustre | 41 ++++++++ 3 files changed, 108 insertions(+), 46 deletions(-) commit 5e66f70e963e4ba2266071343f5a153c7db4327b Author: Oleg Drokin Date: Thu May 21 15:31:35 2015 -0400 staging/lustre: Generic helpers for sysfs Add generic helpers to allow displaying oof lustre-specific values in /sys/fs/lustre Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman .../staging/lustre/lustre/include/lprocfs_status.h | 21 +++++++++++++++++++ .../lustre/lustre/obdclass/lprocfs_status.c | 24 ++++++++++++++++++++++ 2 files changed, 45 insertions(+) commit 917bfd93d3c9c644743940deaf8fe0cff77947eb Author: Alex Williamson Date: Tue May 26 15:11:51 2015 -0600 ACPI / PCI: Account for ARI in _PRT lookups The PCIe specification, rev 3.0, section 2.2.8.1, contains the following implementation note: Virtual Wire Mapping for INTx Interrupts From ARI Devices The implied Device Number for an ARI Device is 0. When ARI-aware software (including BIOS and operating system) enables ARI Forwarding in the Downstream Port immediately above an ARI Device in order to access its Extended Functions, software must comprehend that the Downstream Port will use Device Number 0 for the virtual wire mappings of INTx interrupts coming from all Functions of the ARI Device. If non-ARI-aware software attempts to determine the virtual wire mappings for Extended Functions, it can come up with incorrect mappings by examining the traditional Device Number field and finding it to be non-0. We account for this in pci_swizzle_interrupt_pin(), but it looks like we miss it here, looking for a _PRT entry with a slot matching the ARI device slot number. This can cause errors like: pcieport 0000:80:03.0: can't derive routing for PCI INT B sfc 0000:82:01.1: PCI INT B: no GSI pci_dev.irq is then invalid, resulting in errors for drivers that attempt to enable INTx on the device. Fix by using slot 0 for ARI enabled devices. Signed-off-by: Alex Williamson Signed-off-by: Bjorn Helgaas Reviewed-by: Don Dutile Acked-by: Rafael J. Wysocki drivers/acpi/pci_irq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 73f11ecbcbdd86f7150482d7e10d55034480fda9 Author: Pedro Marzo Perez Date: Thu May 21 02:25:19 2015 +0200 Staging: rtl8192u: Correct include indentation and openning braces at new line Opening braces should never be in a new line. Correct include indentation. Signed-off-by: Pedro Marzo Perez Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_wep.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit 590826061d83b327f630fd587239f269a9361a90 Author: Colin Cronin Date: Thu May 14 23:33:34 2015 -0700 Staging: vt6656: device: Fixed spelling error Fixed comment spelling error. Signed-off-by: Colin Cronin Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6656/device.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3fb076717277ccc37262e5669f53cbb9292920c1 Author: Luis R. Rodriguez Date: Thu May 28 12:39:07 2015 -0700 staging: xgifb: use arch_phys_wc_add() and ioremap_wc() The same area used for ioremap() is used for the MTRR area. Convert the driver from using the x86 specific MTRR code to the architecture agnostic arch_phys_wc_add(). arch_phys_wc_add() will avoid MTRR if write-combining is available, in order to take advantage of that also ensure the ioremap'd 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 its 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 #ifdery 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); Generated-by: Coccinelle SmPL Cc: Arnaud Patard Cc: Greg Kroah-Hartman Cc: Aaro Koskinen Cc: Brian Vandre Cc: Thomas Gummerer Cc: Aya Mahfouz Cc: Lubomir Rintel Cc: Vitor Braga Cc: Sudip Mukherjee Cc: Suresh Siddha Cc: Ingo Molnar Cc: Thomas Gleixner Cc: Juergen Gross Cc: Daniel Vetter Cc: Andy Lutomirski Cc: Dave Airlie Cc: Antonino Daplas Cc: Jean-Christophe Plagniol-Villard Cc: Tomi Valkeinen Cc: devel@driverdev.osuosl.org Cc: linux-fbdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Luis R. Rodriguez Signed-off-by: Greg Kroah-Hartman drivers/staging/xgifb/XGI_main_26.c | 27 ++++++--------------------- 1 file changed, 6 insertions(+), 21 deletions(-) commit 64746c0c6a9a168d1e462903b66ff17705964967 Author: Fabian Frederick Date: Mon May 18 19:34:15 2015 +0200 staging: xgifb: use swap() in XGI_WriteDAC() Use kernel.h macro definition. Signed-off-by: Fabian Frederick Signed-off-by: Greg Kroah-Hartman drivers/staging/xgifb/vb_setmode.c | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) commit 3786a0f2bcb2edceabf4cd62833214e96f298609 Author: Colin Cronin Date: Wed May 13 22:35:03 2015 -0700 Staging: xgifb: vb_setmode: Fixed spelling error Fixed spelling error in comment. Signed-off-by: Colin Cronin Signed-off-by: Greg Kroah-Hartman drivers/staging/xgifb/vb_setmode.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 20ba45815649cd4870f6954cf9e2593d91e27c7a Author: Colin Cronin Date: Wed May 13 18:05:42 2015 -0700 Drivers: staging: skein: skein_api: Fixed spelling errors Fixed a few spelling errors in comments. Signed-off-by: Colin Cronin Signed-off-by: Greg Kroah-Hartman drivers/staging/skein/skein_api.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 7960386273f12bb46e3ffde2822a1eb254b66af8 Author: Gujulan Elango, Hari Prasath (H.) Date: Fri May 29 07:17:37 2015 +0000 staging: dgnc: delete all references to 'flipbuf' This patch deletes all references to 'flipbuf'.Memory is allocated and freed but never used anywhere in the driver.Also deleted an ununsed Macro defined in the header file. Signed-off-by: Gujulan Elango Hari Prasath Signed-off-by: Greg Kroah-Hartman drivers/staging/dgnc/dgnc_driver.c | 9 --------- drivers/staging/dgnc/dgnc_driver.h | 3 --- 2 files changed, 12 deletions(-) commit 8ad524ffb215f68d98c25641082369d2ae3cf96c Author: Wim de With Date: Wed May 20 14:27:39 2015 +0200 staging: dgnc: fix line length over 80 chars in dgnc_sysfs.c This patch fixes most of the lines over 80 characters long in dgnc_sysfs.c. I couldn't find a way to break line 202-207 in a sensible way. If there is a way, let me know. Signed-off-by: Wim de With Signed-off-by: Greg Kroah-Hartman drivers/staging/dgnc/dgnc_sysfs.c | 110 +++++++++++++++++++++++++------------- 1 file changed, 74 insertions(+), 36 deletions(-) commit b2d3977f7d983a71106bb91674a61dd1285c0441 Author: Buţiu Alexandru Octavian Date: Sun May 17 22:31:34 2015 +0300 Staging: dgnc: fixed coding style issue in digi.h Fixed coding style issue "warning line over 80 characters" detected by checkpatch.pl in digi.h Signed-off-by: Buţiu Alexandru Octavian Signed-off-by: Greg Kroah-Hartman drivers/staging/dgnc/digi.h | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 1dcf3ac49fb0079ed7d3d3f4a4cf25e9fb9fffc6 Merge: 8ed9b5e f62b8bb Author: David S. Miller Date: Sat May 30 18:25:03 2015 -0700 Merge branch 'mlx5-next' Amir Vadai says: ==================== net/mlx5: ConnectX-4 100G Ethernet driver This patchset extends the mlx5_core driver to support Ethernet functionality. The Ethernet functionality in the mlx5 driver is integrated into the core driver and not as separated driver. The IB functionality remains in the mlx5_ib driver as before. This functionality will enable the Ethernet capability of Mellanox's new famility of cards - ConnectX-4. Due to the fact that backword compatability is being kept, existing Connect-IB cards that are using this driver are fully working with the modified driver, and no issues with current deployments should be seen. Like the ConnectX-3 cards, ConnectX-4 is a VPI (Virtual Port Interface - every port can be configured as Infiniband or Ethernet) card. Unlike previous generations, the ConnectX-4 has a separate PCI function per port. The current code has a limitation that Infiniband and Ethernet port types are mutually exclusive. When the driver is compiled with Ethernet support, the Infiniband functionality is disabled and vice versa. To control that we added the CONFIG_MLX5_CORE_EN config directive which is 'n' by default, but can be changed by the user. This limitation is short-lived and would be addressed soon. As part of this patchset, mlx5_ifc.h was heavily modified [1]. This file is now generated automatically from the device specification document. Since this patch is too big for the mail server, it might be missing in the mailing list, but could be pulled from an external git repository [2]. irq name selection is done at driver initialization and doesn't contain the interface name as part of the irq name. irq_balancer will still work thanks to an improvement introduced by Neil Horman [3] to use sysfs instead of /proc/interrupts. Patchset was applied on top of commit ed2dfd9 ("tcp/dccp: warn user for preferred ip_local_port_range") [1] - Patch 4/11 ("net/mlx5_core: HW data structs/types definitions preparation for mlx5 ehternet driver") [2] - http://git.openfabrics.org/?p=~amirv/linux.git;a=shortlog;h=refs/heads/mlx5e_v1 [3] - kernel: da8d1c8 PCI/sysfs: add per pci device msi[x] irq listing (v5) irq_balancer: 32a7757 Complete rework of how we detect and classify irqs Thanks to Achiad, Saeed, Yevheny, Or and the whole team for making this happen, Amir Changes from V4: - Removed Patch 3/12: net/mlx5_core: Add EQ renaming mechanism - Patch 12/12: net/mlx5: Extend mlx5_core to support ConnectX-4 Ethernet functionality - irq name is created on driver initialization, therefore it won't contain the network interface name in it. This won't effect irq_balancer thanks to patches introduced by Neil Horman to use sysfs instead of /proc/interrupts. Changes from V3: - PATCH 8/11: net/mlx5_core: Set/Query port MTU commands - Return value directly - no need for err. Changes from V2: - Improved changelogs and cover-letter - Added CONFIG_MLX5_EN to disable/enable the Ethernet functionality - Moved en.h and wq.[ch] into the patch with data-path related code Changes from V1: - Added patch 1/12 ("net/mlx5_core,mlx5_ib: Do not use vmap() on coherent memory") Changes from V0: - Removed V0 Patch 1/11 ("net/mlx5_core: Virtually extend work/completion queue buffers by one page") due to misuse of DMA API. Thanks Dave. - Patch 1/11 ("net/mlx5_core: Set irq affinity hints"): - Use kcalloc instead of kzalloc - Fix build error when CONFIG_CPUMASK_OFFSTACK=n. Driver loading will fail now if cpumask allocation is failing. - Using dev_to_node helper. Thanks, Ido. - Patch 3/11 ("net/mlx5_core: HW data structs/types definitions preparation for mlx5 ehternet driver") - Removed Mellanox internal comment at the head of the file. Thanks Joe - Patch 6/11 ("net/mlx5_core: Implement get/set port status") - Use direct return of function's result. Thanks Sergei. - Added Patch 8/11 ("net/mlx5_core: Set/Query port MTU commands") - Patch 9/11 ("net/mlx5: Ethernet Datapath files") - Use rq->wqe_sz instead of skb_end_offset. Thanks Ido. - Use dma_wmb() when possible instead of wmb(). Thanks Alex. - Fix checkpatch issues - Patch 10/11 ("net/mlx5: ethernet resources handling") - checkpatch issues - Added missing include - Patch 11/11 ("net/mlx5: Ethernet driver") - checkpatch issues - fixed typo - Modified use of affinity hint - Using dev_to_node helper. Thanks, Ido. - Use new hardware commands from Patch 8/11 ("net/mlx5_core: Set/Query port MTU commands") to get/set port MTU in hardware. - Removed NETIF_F_SG since hardware ring wraparound is not supported - Use dma_wmb() when possible instead of wmb(). Thanks Alex. ==================== Signed-off-by: David S. Miller commit f62b8bb8f2d30582f30f51e85a8c0e1260125d7e Author: Amir Vadai Date: Thu May 28 22:28:48 2015 +0300 net/mlx5: Extend mlx5_core to support ConnectX-4 Ethernet functionality This is the Ethernet part of the driver for the Mellanox ConnectX(R)-4 Single/Dual-Port Adapter supporting 100Gb/s with VPI. The driver extends the existing mlx5 driver with Ethernet functionality. This patch contains the driver entry points but does not include transmit and receive (see the previous patch in the series) routines. It also adds the option MLX5_CORE_EN to Kconfig to enable/disable the Ethernet functionality. Currently, Kconfig is programmed to make Ethernet and Infiniband functionality mutally exclusive. Also changed MLX5_INFINIBAND to be depandant on MLX5_CORE instead of selecting it, since MLX5_CORE could be selected without MLX5_INFINIBAND being selected. Signed-off-by: Amir Vadai Signed-off-by: David S. Miller drivers/infiniband/hw/mlx5/Kconfig | 4 +- drivers/net/ethernet/mellanox/mlx5/core/Kconfig | 14 +- drivers/net/ethernet/mellanox/mlx5/core/Makefile | 3 + drivers/net/ethernet/mellanox/mlx5/core/cmd.c | 19 - drivers/net/ethernet/mellanox/mlx5/core/en.h | 520 ++++++ .../net/ethernet/mellanox/mlx5/core/en_ethtool.c | 679 +++++++ drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 1899 ++++++++++++++++++++ drivers/net/ethernet/mellanox/mlx5/core/main.c | 74 +- .../net/ethernet/mellanox/mlx5/core/mlx5_core.h | 9 +- include/linux/mlx5/device.h | 19 + include/linux/mlx5/driver.h | 1 + 11 files changed, 3213 insertions(+), 28 deletions(-) commit afb736e9330ad6b2b6935d2f53ded784eb73f12d Author: Amir Vadai Date: Thu May 28 22:28:47 2015 +0300 net/mlx5: Ethernet resource handling files This patch contains the resource handling files: - flow_table.c: This file contains the code to handle the low level API to configure hardware flow table. It is separated from the flow_table_en.c, because it will be used in the future by Raw Ethernet QP in mlx5_ib too. - en_flow_table.[ch]: Ethernet flow steering handling. The flow table object contain a mapping between flow specs and TIRs. This mechanism will be used also to configure e-switch in the future, when SR-IOV support will be added. - transobj.[ch] - Low level functions to create/modify/destroy the transport objects: RQ/SQ/TIR/TIS - vport.[ch] - Handle attributes of a virtual port (vPort) in the embedded switch. Currently this switch is a passthrough, until SR-IOV support will be added. Signed-off-by: Amir Vadai Signed-off-by: David S. Miller .../ethernet/mellanox/mlx5/core/en_flow_table.c | 858 +++++++++++++++++++++ .../net/ethernet/mellanox/mlx5/core/flow_table.c | 422 ++++++++++ drivers/net/ethernet/mellanox/mlx5/core/transobj.c | 169 ++++ drivers/net/ethernet/mellanox/mlx5/core/transobj.h | 47 ++ drivers/net/ethernet/mellanox/mlx5/core/vport.c | 84 ++ drivers/net/ethernet/mellanox/mlx5/core/vport.h | 41 + include/linux/mlx5/flow_table.h | 54 ++ 7 files changed, 1675 insertions(+) commit e586b3b0baee89f4998efd9cc97001c63e3bc744 Author: Amir Vadai Date: Thu May 28 22:28:46 2015 +0300 net/mlx5: Ethernet Datapath files en_[rt]x.c contains the data path related code specific to tx or rx. en_txrx.c contains data path code which is common for both the rx and tx, this is mainly napi related code. Below are the objects that are being used by the hardware and the driver in the data path: Channel - one channel per IRQ. Every channel object contains: RQ - describes the rx queue TIR - One TIR (Transport Interface Receive) object per flow type. TIR contains attributes for a type of rx flow (e.g IPv4, IPv6 etc). A flow is defined in the Flow Table. Currently TIR describes the RSS hash parameters if exists and LRO attributes. SQ - describes the a tx queue. There is one SQ (Send Queue) per TC (traffic class). TIS - There is one TIS (Transport Interface Send) per TC. It describes the TC and may later be extended to describe more transport properties. Both RQ and SQ inherit from the object WQ (work queue). This common code to describe the layout of CQE's WQE's in memory is in the files wq.[cj] For every channel there is one NAPI context that is used for RX and for TX. Driver is using netdev_alloc_skb() to allocate skb's. Signed-off-by: Amir Vadai Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 249 ++++++++++++++++ drivers/net/ethernet/mellanox/mlx5/core/en_tx.c | 344 ++++++++++++++++++++++ drivers/net/ethernet/mellanox/mlx5/core/en_txrx.c | 107 +++++++ drivers/net/ethernet/mellanox/mlx5/core/wq.c | 183 ++++++++++++ drivers/net/ethernet/mellanox/mlx5/core/wq.h | 171 +++++++++++ 5 files changed, 1054 insertions(+) commit e725440e75da8c4d617a31c4e38216acc55c24e3 Author: Saeed Mahameed Date: Thu May 28 22:28:45 2015 +0300 net/mlx5_core: Set/Query port MTU commands Introduce set/Query low level functions to access MTU in hardware. To be used by the netdev. Signed-off-by: Saeed Mahameed Signed-off-by: Amir Vadai Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/port.c | 53 ++++++++++++++++++++++++++ include/linux/mlx5/driver.h | 4 ++ 2 files changed, 57 insertions(+) commit 90b3e38d048f09b22fb50bcd460cea65fd00b2d7 Author: Rana Shahout Date: Thu May 28 22:28:44 2015 +0300 net/mlx5_core: Modify CQ moderation parameters Introduce mlx5_core_modify_cq_moderation() to be used by the netdev, to set hardware coalescing. Signed-off-by: Rana Shahout Signed-off-by: Saeed Mahameed Signed-off-by: Amir Vadai Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/cq.c | 18 ++++++++++++++++++ include/linux/mlx5/cq.h | 3 +++ 2 files changed, 21 insertions(+) commit 4c916a798058c1acf5a980438416020932c24aca Author: Rana Shahout Date: Thu May 28 22:28:43 2015 +0300 net/mlx5_core: Implement get/set port status Implemet get/set port status low level functions to be exposed by the netdev. Signed-off-by: Rana Shahout Signed-off-by: Saeed Mahameed Signed-off-by: Amir Vadai Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/port.c | 32 ++++++++++++++++++++++++++ include/linux/mlx5/driver.h | 8 +++++++ 2 files changed, 40 insertions(+) commit adb0c9545bce6f1b1d563e988e6ee5531861d449 Author: Saeed Mahameed Date: Thu May 28 22:28:42 2015 +0300 net/mlx5_core: Implement access functions of ptys register fields Those registers will be used by the ethtool to set/get settings. Signed-off-by: Rana Shahout Signed-off-by: Saeed Mahameed Signed-off-by: Amir Vadai Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/port.c | 77 ++++++++++++++++++++++++++ include/linux/mlx5/driver.h | 14 +++++ 2 files changed, 91 insertions(+) commit 938fe83c8dcbbf294d167e6163200a8540ae43c4 Author: Saeed Mahameed Date: Thu May 28 22:28:41 2015 +0300 net/mlx5_core: New device capabilities handling - Query all supported types of dev caps on driver load. - Store the Cap data outbox per cap type into driver private data. - Introduce new Macros to access/dump stored caps (using the auto generated data types). - Obsolete SW representation of dev caps (no need for SW copy for each cap). - Modify IB driver to use new macros for checking caps. Signed-off-by: Saeed Mahameed Signed-off-by: Amir Vadai Signed-off-by: David S. Miller drivers/infiniband/hw/mlx5/cq.c | 8 +- drivers/infiniband/hw/mlx5/mad.c | 2 +- drivers/infiniband/hw/mlx5/main.c | 113 ++++++++------- drivers/infiniband/hw/mlx5/mlx5_ib.h | 6 +- drivers/infiniband/hw/mlx5/mr.c | 3 +- drivers/infiniband/hw/mlx5/odp.c | 47 +++---- drivers/infiniband/hw/mlx5/qp.c | 84 +++++------ drivers/infiniband/hw/mlx5/srq.c | 7 +- drivers/net/ethernet/mellanox/mlx5/core/eq.c | 4 +- drivers/net/ethernet/mellanox/mlx5/core/fw.c | 90 +++++++----- drivers/net/ethernet/mellanox/mlx5/core/main.c | 154 +++++++-------------- .../net/ethernet/mellanox/mlx5/core/mlx5_core.h | 10 +- drivers/net/ethernet/mellanox/mlx5/core/uar.c | 7 +- include/linux/mlx5/device.h | 66 ++++++++- include/linux/mlx5/driver.h | 58 +------- 15 files changed, 310 insertions(+), 349 deletions(-) commit e281682bf29438848daac11627216bceb1507b71 Author: Saeed Mahameed Date: Thu May 28 22:28:40 2015 +0300 net/mlx5_core: HW data structs/types definitions cleanup mlx5_ifc.h was heavily modified here since it is now generated by a script from the device specification (PRM rev 0.25). This specification is backward compatible to existing hardware. Some structures/fields were added here in order to enable the Ethernet functionality of the driver. Signed-off-by: Saeed Mahameed Signed-off-by: Amir Vadai Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/cmd.c | 17 +- drivers/net/ethernet/mellanox/mlx5/core/fw.c | 2 +- drivers/net/ethernet/mellanox/mlx5/core/main.c | 7 +- drivers/net/ethernet/mellanox/mlx5/core/mcg.c | 2 +- drivers/net/ethernet/mellanox/mlx5/core/uar.c | 37 + include/linux/mlx5/device.h | 113 +- include/linux/mlx5/driver.h | 4 +- include/linux/mlx5/mlx5_ifc.h | 6608 +++++++++++++++++++++++- include/linux/mlx5/qp.h | 25 + 9 files changed, 6705 insertions(+), 110 deletions(-) commit db058a186f98b057c19c42f7b10d9a96fd3b5d59 Author: Saeed Mahameed Date: Thu May 28 22:28:39 2015 +0300 net/mlx5_core: Set irq affinity hints Preparation for upcoming ethernet driver. - Move msix array from eq_table struct to priv since its not related to eq_table - Intorduce irq_info struct to hold all irq information - Move name from mlx5_eq to irq_info struct since it is irq property. - Set IRQ affinity hints Signed-off-by: Achiad Shochat Signed-off-by: Rana Shahout Signed-off-by: Saeed Mahameed Signed-off-by: Amir Vadai Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/eq.c | 16 ++-- drivers/net/ethernet/mellanox/mlx5/core/main.c | 111 ++++++++++++++++++++++--- include/linux/mlx5/driver.h | 11 ++- 3 files changed, 117 insertions(+), 21 deletions(-) commit 64ffaa2159b752e6c263dc57eaaaed7367d37493 Author: Amir Vadai Date: Thu May 28 22:28:38 2015 +0300 net/mlx5_core,mlx5_ib: Do not use vmap() on coherent memory As David Daney pointed in mlx4_core driver [1], mlx5_core is also misusing the DMA-API. This patch is removing the code that vmap() memory allocated by dma_alloc_coherent(). After this patch, users of this drivers might fail allocating resources on memory fragmeneted systems. This will be fixed later on. [1] - https://patchwork.ozlabs.org/patch/458531/ CC: David Daney Signed-off-by: Amir Vadai Signed-off-by: David S. Miller drivers/infiniband/hw/mlx5/cq.c | 3 +- drivers/infiniband/hw/mlx5/qp.c | 2 +- drivers/infiniband/hw/mlx5/srq.c | 2 +- drivers/net/ethernet/mellanox/mlx5/core/alloc.c | 96 +++++-------------------- drivers/net/ethernet/mellanox/mlx5/core/eq.c | 3 +- include/linux/mlx5/driver.h | 9 +-- 6 files changed, 22 insertions(+), 93 deletions(-) commit 8ed9b5e1c8f3cfc0d8c94f1a19d1167422eea7a8 Merge: 1ea23a2 f029094 Author: David S. Miller Date: Sat May 30 18:09:58 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-05-28 This series contains updates to ethtool, ixgbe, i40e and i40evf. John adds helper routines for ethtool to pass VF to rx_flow_spec. Since the ring_cookie is 64 bits wide which is much larger than what could be used for actual queue index values, provide helper routines to pack a VF index into the cookie. Then John provides a ixgbe patch to allow flow director to use the entire queue space. Neerav provides a i40e patch to collect XOFF Rx stats, where it was not being collected before. Anjali provides ATR support for tunneled packets, as well as stats to count tunnel ATR hits. Cleaned up PF struct members which are unnecessary, since we can use the stat index macro directly. Cleaned up flow director ATR/SB messages to a higher debug level since they are not useful unless silicon validation is happening. Greg provides a patch to disable offline diagnostics if VFs are enabled since ethtool offline diagnostic tests are not designed (out of scope) to disable VF functions for testing and re-enable afterward. Also cleans up TODO comment that is no longer needed. Vasu provides a fix an FCoE EOF case where i40e_fcoe_ctxt_eof() maybe called before i40e_fcoe_eof_is_supported() is called. Jesse adds skb->xmit_more support for i40evf. Then provides a performance enhancement for i40evf by inlining some functions which provides a 15% gain in small packet performance. Also cleans up the use of time_stamp since it is no longer used to determine if there is a tx_hang and was a part of a previous tx_hang design which is no longer used. ==================== Signed-off-by: David S. Miller commit 1ea23a21176e449685a9d0523ab6da83e3779eb1 Author: Ying Xue Date: Thu May 28 13:19:22 2015 +0800 tipc: unconditionally put sock refcnt when sock timer to be deleted is pending As sock refcnt is taken when sock timer is started in sk_reset_timer(), the sock refcnt should be put when sock timer to be deleted is in pending state no matter what "probing_state" value of tipc sock is. Reviewed-by: Erik Hugne Reviewed-by: Jon Maloy Signed-off-by: Ying Xue Signed-off-by: David S. Miller net/tipc/socket.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit d0e2f8f0bea40becbbdea3e53b7bf4ab5f64dc10 Author: Matthew Needes Date: Mon May 25 16:41:21 2015 -0700 staging: comedi/drivers/pcl.* coding style fixes pcl812.c (resend of earlier patch) Fixed lines exceeding 80 columns, correcting some spelling in process Signed-off-by: Matthew Needes Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/pcl812.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 8b4e7da516aa52f2b8dcff1939073beacf63788a Author: Matthew Needes Date: Mon May 25 16:41:20 2015 -0700 staging: comedi/drivers/pcl.* coding style fixes pcl812.c / pcl816.c (resend of earlier patch) Fixed indentation problems. Signed-off-by: Matthew Needes Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/pcl812.c | 2 +- drivers/staging/comedi/drivers/pcl816.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 71f50e25c0073aa0f1d9274643cb216cfa3094be Author: Geliang Tang Date: Mon May 25 14:20:44 2015 +0000 staging: comedi: keep the consistency Changed "register 0x%x" to "register=0x%x" to keep the consistency of this file. Signed-off-by: Geliang Tang Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cdfba23d77b10a4d7a235772fb91787e317a62e6 Author: Geliang Tang Date: Mon May 25 14:20:43 2015 +0000 staging: comedi: fix checkpatch error Fixed an error found by checkpatch.pl. ERROR: space required after that ',' (ctx:VxV) ./drivers/ni_mio_common.c:3764 Signed-off-by: Geliang Tang Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3a62cdb7f64f80579ce18178ecc145f01c1ad746 Author: Ian Abbott Date: Fri May 22 18:45:25 2015 +0100 staging: comedi: comedi_isadma.h: make self-reliant The Comedi "comedi_isadma.h" header is included by the source for the "comedi_isadma" helper module and other modules that use it. It does not compile cleanly when it is the first header file included. It uses the `dma_addr_t` type, so include to declare it. (Also, that indirectly takes care of the use of `NULL`.) It uses `struct comedi_device *` in various function prototypes, so add an incomplete declaration of `struct comedi_device`. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/comedi_isadma.h | 4 ++++ 1 file changed, 4 insertions(+) commit b727255f01fa519e1bfb047e3eefb9bb74512404 Author: Ian Abbott Date: Fri May 22 18:32:31 2015 +0100 staging: comedi: comedi_8254.h: make self-reliant The Comedi "comedi_8254.h" header file is included by various Comedi drivers with timer/counters based on the 8254 chip. The drivers do not compile cleanly if this header file is included first. It uses pointers to the `struct comedi_device`, `struct comedi_subdevice`, and `struct comedi_insn` structures in various function prototypes, so declare those as incomplete types. It use the `bool` type, so include . It also uses the `__iomem` tag, but that seems to be taken care of indirectly by including . Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/comedi_8254.h | 6 ++++++ 1 file changed, 6 insertions(+) commit e57180c85a0b9b471327c69679fb81fd36578897 Author: Ian Abbott Date: Fri May 22 17:32:03 2015 +0100 staging: comedi: addi_watchdog.h: don't include "../comedidev.h" The Comedi "addi_watchdog.h" header doesn't use anything form "comedidev.h" apart from `struct comedi_subdevice`, which it only uses to construct a corresponding pointer type within the parameter list of a function prototype. Just declare the structure type incompletely and don't bother including the header file. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/addi_watchdog.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7da42b5fda090b3e4128624d39bc742ceeff1104 Author: Ian Abbott Date: Fri May 22 18:16:01 2015 +0100 staging: comedi: amplc_dio200_pci.c: reformat copyright comment Reformat the copyright comment at the top of the file to use the preferred block comment style. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/amplc_dio200_pci.c | 35 ++++++++++++----------- 1 file changed, 18 insertions(+), 17 deletions(-) commit 4cb1dec981a6d55cad1c071bed9489670e31f7e2 Author: Ian Abbott Date: Fri May 22 18:16:00 2015 +0100 staging: comedi: amplc_dio200_common.c: fix up brace style Use braces when the single statement following an `if` (or `else`) spans more than one line (including any preceding comments). Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/amplc_dio200_common.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) commit 94ef9718111f8d7687e84c2f9309cc0838e30e9e Author: Ian Abbott Date: Fri May 22 18:15:59 2015 +0100 staging: comedi: amplc_dio200_common.c: reformat copyright comment Reformat the copyright comment at the top of the file to use the preferred block comment style. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman .../staging/comedi/drivers/amplc_dio200_common.c | 38 +++++++++++----------- 1 file changed, 19 insertions(+), 19 deletions(-) commit 158bb7287ea00eff8ca5c2a60a384368dcce1d7c Author: Ian Abbott Date: Fri May 22 18:15:58 2015 +0100 staging: comedi: amplc_dio200.c: reformat copyright comment Reformat the copyright comment at the top of the file to use the preferred block comment style. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/amplc_dio200.c | 37 ++++++++++++++------------- 1 file changed, 19 insertions(+), 18 deletions(-) commit 8ea6663284dc47c5afdd26175f0b7f6992f6b627 Author: Ian Abbott Date: Fri May 22 18:15:57 2015 +0100 staging: comedi: amplc_dio200.h: make self-reliant The Comedi "amplc_dio200.h" header file included by drivers for Amplicon DIO200 series cards does not compile cleanly when it is the first header included by the ".c" file. It uses `struct comedi_device *` in the parameter lists of some function prototypes, so just declare `struct comedi_device` as an incomplete type. It also uses `bool`, so include to declare it. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/amplc_dio200.h | 4 ++++ 1 file changed, 4 insertions(+) commit d94e5c635289e29d1f0f3dd536f07a84378b702c Author: Ian Abbott Date: Fri May 22 18:15:56 2015 +0100 staging: comedi: amplc_dio200.h: reformat copyright comment Reformat the copyright comment at the top of the file to use the preferred block comment style. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/amplc_dio200.h | 40 +++++++++++++-------------- 1 file changed, 20 insertions(+), 20 deletions(-) commit 968d17786d74d2a637ab742a752e9302316f2194 Author: Ian Abbott Date: Fri May 22 16:21:38 2015 +0100 staging: comedi: comedi_8255: new module split from 8255 The Comedi "8255" module is both a standalone Comedi device driver module for simple devices with one or more 8255 "Programmable Peripheral Interface" chips at known I/O base addresses (configured at run-time), and a helper module to configure a 8255-based digital I/O subdevice for other Comedi drivers. Split the "8255 subdevice helper" functionality into a new module: "comedi_8255", leaving the standalone 8255 Comedi driver in the "8255" module. The Comedi "detach" routine of the standalone "8255" driver needs to retrieve the I/O base address passed to the "comedi_8255" module to set up each subdevice in order to release the I/O port regions it requested in its "attach" routine. The "comedi_8255" module stores it in a "subdevice private" data structure that is no longer known to the "8255" module, so add a new, exported function `subdev_8255_regbase()` to retrieve it. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/Kconfig | 18 +- drivers/staging/comedi/drivers/8255.c | 223 +-------------------- drivers/staging/comedi/drivers/8255.h | 2 + drivers/staging/comedi/drivers/Makefile | 3 +- drivers/staging/comedi/drivers/comedi_8255.c | 285 +++++++++++++++++++++++++++ 5 files changed, 305 insertions(+), 226 deletions(-) commit dc54ba4d88c329cfadbaf3523b2f83fcc121ae49 Author: Ian Abbott Date: Fri May 22 16:21:37 2015 +0100 staging: comedi: 8255: document callback parameters better Several Comedi driver modules call `subdev_8255_init()` or `subdev_8255_mm_init()` to set up a digital I/O subdevice based on the "8255" chip. One of the parameters to these functions is an optional pointer to an I/O callback function to perform the actual register accesses (an internal default callback function is used if NULL). The kerneldoc for `subdev_8255_init()` and `subdev_8255_mm_init()` describe the prototype of the optional I/O callback function incorrectly (my fault), adding a non-existent parameter of type `struct comedi_subdevice *`. Fix the kerneldoc. Also add parameter names to the callback function pointer type wherever it occurs to make the usage clearer. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/8255.c | 26 +++++++++++++------------- drivers/staging/comedi/drivers/8255.h | 12 ++++++------ 2 files changed, 19 insertions(+), 19 deletions(-) commit d2c9deac56da9a5a56c32c4cb6ec3d6bad25ad84 Author: Ian Abbott Date: Fri May 22 16:21:36 2015 +0100 staging: comedi: 8255.h: don't include "../comedidev.h" The Comedi "8255.h" header doesn't use anything from "comedidev.h" apart from `struct comedi_device` and `struct comedi_subdevice`, which are only used to construct corresponding pointer types within the parameter lists of function prototypes. Just declare those structure types incompletely and don't bother including "comedidev.h". Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/8255.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 7e0b1b60cb0d7d3ae4c22a891e11ceccca17afee Author: Ian Abbott Date: Fri May 22 16:21:35 2015 +0100 staging: comedi: 8255: fix I/O region leak on failure The Comedi "8255" driver does not clean up properly on failure. It can leave requested I/O port regions unreleased. Specifically, the Comedi "attach" handler (`dev_8255_attach()`) requests a specified I/O port region before calling `subdev_8255_init()` to set up the subdevice. If that fails, the "attach" handler returns an error and the Comedi core will call the "detach" handler (`dev_8255_detach()`) to clean up. The "detach" handler is responsible for releasing the I/O port regions successfully requested by the "attach" handler. Unfortunately, it is unable to obtain the base address of the region if the call to `subdev_8255_init()` failed. Fix the I/O region leak by releasing the region in the "attach" handler directly if the call to `subdev_8255_init()` fails. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/8255.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit 613462e1e4d2ea64a29a06fccd3055328354bf3a Author: chaehyun lim Date: Fri May 15 22:13:43 2015 +0900 staging: wlan-ng: fix checkpatch warnings clean up checkpatch.pl in prism2sta.c WARNING : line over 80 characters Signed-off-by: chaehyun lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wlan-ng/prism2sta.c | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) commit 4bff39dfb75743c44d429b84b3810a955b8192b2 Author: Gujulan Elango, Hari Prasath (H.) Date: Wed May 13 14:35:25 2015 +0000 staging: wlan-ng: check return value of kmalloc check return value of kmalloc before accessing the memory pointer and return -ENOMEM if allocation fails. Signed-off-by: Hari Prasath Gujulan Elango Signed-off-by: Greg Kroah-Hartman drivers/staging/wlan-ng/p80211conv.c | 2 ++ 1 file changed, 2 insertions(+) commit f4fb874cf076f9eafdd15c0a88cd0f0397b95e43 Author: Vivien Didelot Date: Wed May 27 21:07:26 2015 -0400 if_vlan: fix vlaue -> value typo Fixes "vlaue" for "value" in include/linux/if_vlan.h. Signed-off-by: Vivien Didelot Signed-off-by: David S. Miller include/linux/if_vlan.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 37e82c2f974b72c9ab49c787ef7b5bb1aec12768 Author: Alexei Starovoitov Date: Wed May 27 15:30:39 2015 -0700 bpf: allow BPF programs access skb->skb_iif and skb->dev->ifindex fields classic BPF already exposes skb->dev->ifindex via SKF_AD_IFINDEX extension. Allow eBPF program to access it as well. Note that classic aborts execution of the program if 'skb->dev == NULL' (which is inconvenient for program writers), whereas eBPF returns zero in such case. Also expose the 'skb_iif' field, since programs triggered by redirected packet need to known the original interface index. Summary: __skb->ifindex -> skb->dev->ifindex __skb->ingress_ifindex -> skb->skb_iif Signed-off-by: Alexei Starovoitov Acked-by: Daniel Borkmann Signed-off-by: David S. Miller include/uapi/linux/bpf.h | 2 ++ net/core/filter.c | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+) commit 7f804436fbd32c9784a2ae5324e64f9d4717c898 Author: Arnd Bergmann Date: Wed May 20 00:07:27 2015 +0200 staging: lustre: remove unused variable warning A recent patch to simplify the lustre large memory allocation causes new warnings as an unintended side-effect: lustre/lov/lov_request.c: In function 'lov_finish_set': lustre/lov/lov_request.c:78:7: warning: unused variable 'len' [-Wunused-variable] int len = set->set_oabufs * sizeof(*set->set_pga); ^ lustre/obdclass/acl.c: In function 'lustre_ext_acl_xattr_reduce_space': lustre/obdclass/acl.c:123:6: warning: unused variable 'old_size' [-Wunused-variable] int old_size = CFS_ACL_XATTR_SIZE(old_count, ext_acl_xattr); ^ The reason is that the 'size' argument to OBD_FREE_LARGE() is never needed, which was previously hidden by the extra abstractions. This avoids the warnings by adding a cast to void, to tell the compiler that the argument is intentionally unused. A better fix is probably to remove the entire set of allocation macros and open-code the normal kernel interface calls. Signed-off-by: Arnd Bergmann Fixes: 99d56ff7c1c ("staging/lustre: Always try kmalloc first for OBD_ALLOC_LARGE") Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/include/obd_support.h | 1 + 1 file changed, 1 insertion(+) commit e01ec2199ef22e2cabd7d6e68a192f3eb728029f Author: KY Srinivasan Date: Wed May 27 13:16:57 2015 -0700 hv_netvsc: Properly size the vrss queues The current algorithm for deciding on the number of VRSS channels is not optimal since we open up the min of number of CPUs online and the number of VRSS channels the host is offering. So on a 32 VCPU guest we could potentially open 32 VRSS subchannels. Experimentation has shown that it is best to limit the number of VRSS channels to the number of CPUs within a NUMA node. Here is the new algorithm for deciding on the number of sub-channels we would open up: 1) Pick the minimum of what the host is offering and what the driver in the guest is specifying as the default value. 2) Pick the minimum of (1) and the numbers of CPUs in the NUMA node the primary channel is bound to. Signed-off-by: K. Y. Srinivasan Signed-off-by: David S. Miller drivers/net/hyperv/hyperv_net.h | 1 + drivers/net/hyperv/netvsc_drv.c | 4 ++++ drivers/net/hyperv/rndis_filter.c | 16 ++++++++++++++-- 3 files changed, 19 insertions(+), 2 deletions(-) commit 8133534c760d4083f79d2cde42c636ccc0b2792e Author: Sorin Dumitru Date: Wed May 27 22:16:49 2015 +0300 net: limit tcp/udp rmem/wmem to SOCK_{RCV,SND}BUF_MIN This is similar to b1cb59cf2efe(net: sysctl_net_core: check SNDBUF and RCVBUF for min length). I don't think too small values can cause crashes in the case of udp and tcp, but I've seen this set to too small values which triggered awful performance. It also makes the setting consistent across all the wmem/rmem sysctls. Signed-off-by: Sorin Dumitru Signed-off-by: David S. Miller net/ipv4/sysctl_net_ipv4.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit bdd84a6f4baf3e1d02955545cf83c6a7e6a470db Author: Mike Shuey Date: Tue May 19 10:14:39 2015 -0400 staging: lustre: lnet: remove LNET_MUTEX_LOCK macro LNET_MUTEX_LOCK and LNET_MUTEX_UNLOCK are verbose wrappers to mutex_lock and mutex_unlock. Get rid of these. Signed-off-by: Mike Shuey Signed-off-by: Greg Kroah-Hartman .../staging/lustre/include/linux/lnet/lib-lnet.h | 2 -- drivers/staging/lustre/lnet/lnet/api-ni.c | 26 +++++++++++----------- drivers/staging/lustre/lnet/lnet/module.c | 12 +++++----- 3 files changed, 19 insertions(+), 21 deletions(-) commit 74d680116219380ed946bb3ad24237f2424fdb66 Author: Mike Shuey Date: Tue May 19 10:14:38 2015 -0400 staging: lustre: lnet: selftest: code cleanup - variable spacing, indentation Unify spacing in variable declarations, and align indentation in headers. General whitespace cleanups. Signed-off-by: Mike Shuey Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lnet/selftest/brw_test.c | 60 ++--- drivers/staging/lustre/lnet/selftest/conctl.c | 54 ++-- drivers/staging/lustre/lnet/selftest/conrpc.c | 124 ++++----- drivers/staging/lustre/lnet/selftest/conrpc.h | 34 ++- drivers/staging/lustre/lnet/selftest/console.c | 246 +++++++++--------- drivers/staging/lustre/lnet/selftest/console.h | 186 +++++++------- drivers/staging/lustre/lnet/selftest/framework.c | 160 ++++++------ drivers/staging/lustre/lnet/selftest/module.c | 10 +- drivers/staging/lustre/lnet/selftest/ping_test.c | 24 +- drivers/staging/lustre/lnet/selftest/rpc.c | 150 +++++------ drivers/staging/lustre/lnet/selftest/rpc.h | 141 +++++----- drivers/staging/lustre/lnet/selftest/selftest.h | 311 ++++++++++++----------- drivers/staging/lustre/lnet/selftest/timer.c | 20 +- drivers/staging/lustre/lnet/selftest/timer.h | 16 +- 14 files changed, 769 insertions(+), 767 deletions(-) commit 97d10d0a40dddd317f1c659ec42544b4793a140e Author: Mike Shuey Date: Tue May 19 10:14:37 2015 -0400 staging: lustre: lnet: socklnd: code cleanup - align spacing Unify variable declarations to use a single space. Also include several miscellaneous whitespace cleanups, particularly in socklnd.h. Signed-off-by: Mike Shuey Signed-off-by: Greg Kroah-Hartman .../staging/lustre/lnet/klnds/socklnd/socklnd.c | 468 ++++++++--------- .../staging/lustre/lnet/klnds/socklnd/socklnd.h | 560 ++++++++++++--------- .../staging/lustre/lnet/klnds/socklnd/socklnd_cb.c | 396 +++++++-------- .../lustre/lnet/klnds/socklnd/socklnd_lib-linux.c | 150 +++--- .../lustre/lnet/klnds/socklnd/socklnd_modparams.c | 33 +- .../lustre/lnet/klnds/socklnd/socklnd_proto.c | 128 ++--- 6 files changed, 899 insertions(+), 836 deletions(-) commit ec3d17c0ed2e8e8cf111e24aec6586190b5d9b7a Author: Mike Shuey Date: Tue May 19 10:14:36 2015 -0400 staging: lustre: lnet: o2iblnd: code cleanup - align whitespace Unify variable declarations to use a single whitespace. Also line up declarations and comments in o2iblnd.h. Signed-off-by: Mike Shuey Signed-off-by: Greg Kroah-Hartman .../staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c | 458 +++++++------- .../staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h | 680 +++++++++++---------- .../staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c | 484 ++++++++------- .../lustre/lnet/klnds/o2iblnd/o2iblnd_modparams.c | 48 +- 4 files changed, 841 insertions(+), 829 deletions(-) commit 92980ff946fc2cdf160db735751bdbf01e5be39e Author: Mike Shuey Date: Tue May 19 10:14:35 2015 -0400 staging: lustre: lnet: lnet: Module is LNet, not Portals Fix the module version to match upstream development. Signed-off-by: Mike Shuey Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lnet/lnet/module.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7c285a193412cffe5394ff68910cc19852d42cfc Author: Mike Shuey Date: Tue May 19 10:14:34 2015 -0400 staging: lustre: lnet: dead code - remove LNetSetAsync LNetSetAsync() returns 0, and is never called. Doesn't exist in the Intel tree, either. Remove it. Signed-off-by: Mike Shuey Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/include/linux/lnet/api.h | 1 - drivers/staging/lustre/lnet/lnet/lib-move.c | 24 ------------------------ 2 files changed, 25 deletions(-) commit 4de4e73625aa3e067357ad6f956a4cad3255413f Author: Mike Shuey Date: Tue May 19 10:14:33 2015 -0400 staging: lustre: lnet: dead code - remove lnet_fini_locks lnet_fini_locks() does nothing. Remove. Signed-off-by: Mike Shuey Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lnet/lnet/api-ni.c | 8 -------- 1 file changed, 8 deletions(-) commit 7e7ab095cf44476b912a98428a2b69918f0ddeb6 Author: Mike Shuey Date: Tue May 19 10:14:32 2015 -0400 staging: lustre: lnet: lnet: code cleanups - variable declarations Unify variable declarations to use a single space, and any other obvious spacing flaws. Signed-off-by: Mike Shuey Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lnet/lnet/acceptor.c | 32 ++-- drivers/staging/lustre/lnet/lnet/api-ni.c | 198 ++++++++++---------- drivers/staging/lustre/lnet/lnet/config.c | 238 ++++++++++++------------ drivers/staging/lustre/lnet/lnet/lib-eq.c | 42 ++--- drivers/staging/lustre/lnet/lnet/lib-md.c | 26 +-- drivers/staging/lustre/lnet/lnet/lib-me.c | 20 +-- drivers/staging/lustre/lnet/lnet/lib-move.c | 240 ++++++++++++------------- drivers/staging/lustre/lnet/lnet/lib-msg.c | 50 +++--- drivers/staging/lustre/lnet/lnet/lib-ptl.c | 116 ++++++------ drivers/staging/lustre/lnet/lnet/lo.c | 2 +- drivers/staging/lustre/lnet/lnet/module.c | 8 +- drivers/staging/lustre/lnet/lnet/peer.c | 50 +++--- drivers/staging/lustre/lnet/lnet/router.c | 224 +++++++++++------------ drivers/staging/lustre/lnet/lnet/router_proc.c | 210 +++++++++++----------- 14 files changed, 728 insertions(+), 728 deletions(-) commit 4f445e634cd6af72028fd389ede325b1bde04c87 Author: Adrian Remonda Date: Mon May 18 20:34:50 2015 +0200 Staging: lustre: Fixed typo In the explanation of the function the name of the function was incorrect Signed-off-by: Adrian Remonda Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/ptlrpc/nrs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a612b007280192743f52a8fb764aefbeca05f188 Author: Oleg Drokin Date: Sat May 16 03:38:34 2015 -0400 staging/lustre/llite: Fix wrong identing in ll_setxattr_common smatch has highlighted wrong indenting that results from commit 7fc1f831d83f ("staging/lustre/llite: extended attribute cache") Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/xattr.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 3959d0cb7e6e1a00cf815278901929534709e72a Author: Oleg Drokin Date: Sat May 16 03:38:33 2015 -0400 staging/lustre/ptlrpc: Fix potential NULL pointer dereference In lov_unpackmd() there's this strange bit of code where we first try to look inside of lmm striping pattern for it's type, and then we check if the pattern is NULL which cannot be right. Move the check under if (lmm) branch so that it's safe. Found by Coverity version 6.6.1 Signed-off-by: Sebastien Buisson Reviewed-on: http://review.whamcloud.com/7827 Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-4049 Reviewed-by: John L. Hammond Reviewed-by: jacques-Charles Lafoucriere Signed-off: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/lov/lov_pack.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 38bbb63d94cd024d76db7d39594ae0bc605dd16c Author: Oleg Drokin Date: Sat May 16 03:38:32 2015 -0400 staging/lustre/ptlrpc: Fix wrong indenting in plain_authorize() smatch highlighted a wrongly indented bit of code that almost hides the extra assignment. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/ptlrpc/sec_plain.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 65609bd672e4fb232f81010b96ef8892833276b7 Author: Oleg Drokin Date: Sat May 16 03:38:31 2015 -0400 staging/lustre: Only set INTERRUPTIBLE state before calling schedule In __l_wait_event the condition could be a complicated function that does allocations and other potentialy blocking activities, so it sohuld not be called in a task state other than RUNNABLE Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/include/lustre_lib.h | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) commit e630eb48ff320b52ea1a1237e8ed0d23e4e9e900 Author: Luca Ceresoli Date: Tue May 19 11:35:21 2015 +0200 staging: rtl8723au: remove useless comment "step 2" does mean much as there is no "step 1" stated anywhere... Signed-off-by: Luca Ceresoli Cc: Greg Kroah-Hartman Cc: Larry Finger Cc: Jes Sorensen Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8723au/os_dep/os_intfs.c | 1 - 1 file changed, 1 deletion(-) commit b2f23a2d71dd5ed3a0eed70e37db32b99d774c69 Author: Luca Ceresoli Date: Tue May 19 11:35:20 2015 +0200 staging: rtl8723au: remove useless return value The loadparam() function cannot fail, it's called only once and its return value is ignored there. Signed-off-by: Luca Ceresoli Cc: Greg Kroah-Hartman Cc: Larry Finger Cc: Jes Sorensen Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8723au/os_dep/os_intfs.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 711c9b3ce441fc0e373ab0f7487dd6ce01117d61 Author: Juston Li Date: Fri May 22 22:03:04 2015 -0700 staging: rtl8723au: fix sparse warning change cast to __le16 to fix the following warning: drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:1488:20: warning: cast to restricted __le16 Signed-off-by: Juston Li Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 77198552a481192fe9c7ce6cfd8a54231598a71a Author: Gujulan Elango, Hari Prasath (H.) Date: Tue May 12 10:01:18 2015 +0000 staging: rtl8723au: remove redundant initialization The variable pHalData is initialized twice in this same function with same value.So removing one of them. Signed-off-by: Hari Prasath Gujulan Elango Acked-by: Jes Sorensen Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8723au/hal/rtl8723a_cmd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 322489d9d551d20bfa69feef85729b82dc2edebc Author: Pekka Enberg Date: Fri May 15 21:40:20 2015 +0300 staging/lustre: Use roundup_pow_of_two() in LNetEQAlloc() Use roundup_pow_of_two() and drop the private cfs_power2_roundup() implementation. Signed-off-by: Pekka Enberg Signed-off-by: Greg Kroah-Hartman .../staging/lustre/include/linux/libcfs/libcfs_private.h | 13 ------------- drivers/staging/lustre/lnet/lnet/lib-eq.c | 2 +- 2 files changed, 1 insertion(+), 14 deletions(-) commit 36fc24486910d492881f279cb97ad33b69859ebd Author: Pekka Enberg Date: Fri May 15 21:40:19 2015 +0300 staging/lustre: Remove duplicate helpers from libcfs.h Remove bunch of duplicate helpers from libcfs.h that are guaranteed to be present. Signed-off-by: Pekka Enberg Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/include/linux/libcfs/libcfs.h | 19 ------------------- 1 file changed, 19 deletions(-) commit e3bf98f71d25fdf7de4a82f16210e20502b71045 Author: Pekka Enberg Date: Fri May 15 21:40:18 2015 +0300 staging/lustre: Remove __attribute__ definition from libcfs.h Linux requires a GNU C compatible compiler so drop a pointless define. Signed-off-by: Pekka Enberg Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/include/linux/libcfs/libcfs.h | 4 ---- 1 file changed, 4 deletions(-) commit db562e8154035b2dec9fc8e506450bc52a9adbe1 Author: Gujulan Elango, Hari Prasath (H.) Date: Wed May 13 10:36:28 2015 +0000 staging: lustre: check kzalloc return value check the return value of kzalloc before accessing the memory pointer Signed-off-by: Hari Prasath Gujulan Elango Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/llite_lib.c | 4 ++++ 1 file changed, 4 insertions(+) commit 58973deb5b831eafa3eb04efe8ed85dbfe52aa18 Author: Gunasundar, Balamanikandan (B.) Date: Tue May 12 10:35:52 2015 +0000 Staging: lustre: Replace kzalloc and memcpy by kmemdup This patch was generated by 'make coccicheck' Signed-off-by: Balamanikandan Gunasundar Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/obdclass/lprocfs_status.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 109a1624e37fed4b11841daf8ae05395a03a5fde Author: Ankit Garg Date: Wed May 6 11:03:23 2015 +0530 staging: lustre: lclient: lcommon_cl.c fixing coding style issues This patch fixes the checkpatch.pl warning: WARNING: else is not generally useful after a break or return + return result; + } else { Signed-off-by: Ankit Garg Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/lclient/lcommon_cl.c | 35 +++++++++++----------- 1 file changed, 17 insertions(+), 18 deletions(-) commit 907b8a0012934c95f8074f68a018aa0c120409b9 Author: Al Viro Date: Wed May 13 23:25:57 2015 +0100 lustre: kill unused helper Signed-off-by: Al Viro Signed-off-by: Greg Kroah-Hartman .../staging/lustre/lustre/include/linux/lustre_compat25.h | 15 --------------- 1 file changed, 15 deletions(-) commit 24b44e0c0b16405c597a23a3f2b3f70a055e3db8 Author: Al Viro Date: Wed May 13 23:25:56 2015 +0100 lustre: kill unused macro (LOOKUP_CONTINUE) Signed-off-by: Al Viro Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/llite_internal.h | 6 ------ 1 file changed, 6 deletions(-) commit 5befa5e8ad804574520818da6faae9010e2e8590 Merge: a74eab6 95e130a Author: David S. Miller Date: Sat May 30 17:04:44 2015 -0700 Merge branch 'stmmac-IPQ806x' Mathieu Olivari says: ==================== Add support for QCA IPQ806x Ethernet GMAC controller This patch set adds support for the integrated Ethernet GMAC controller on QCA IPQ806x SoC. This controller is based on a Gigabit Synopsys DesignWare IP, already supported in the stmmac driver located in drivers/net/ethernet/stmicro/stmmac. This change is done as a follow-up to the following thread: *http://www.spinics.net/lists/netdev/msg311265.html While previous attempt was creating a new driver to drive this controller, this new post leverages the existing stmmac driver by implementing the SoC specific glue to it. Aside from the pure stmmac glue layer, we have a couple of related patches: *IPQ806x NSS clock addition is cherry-picked and refreshed from the following thread: https://lkml.org/lkml/2014/8/6/390 *phy-handle and fixed-link support are also added in this change set so the driver can be fully functional on platforms using device-trees as well as ethernet switches. V2: *Fix MODULE_LICENSE to "Dual BSD/GPL" as the dwmac-ipq806x.c is using ISC license. ==================== Signed-off-by: David S. Miller commit 95e130af03b103138ae0d188ef012e5994fe970d Author: Mathieu Olivari Date: Wed May 27 11:02:50 2015 -0700 net: stmmac: ipq806x: document device tree bindings Add the device tree bindings documentation for the QCA IPQ806x variant of the Synopsys DesignWare MAC. Signed-off-by: Mathieu Olivari Signed-off-by: David S. Miller .../devicetree/bindings/net/ipq806x-dwmac.txt | 35 ++++++++++++++++++++++ 1 file changed, 35 insertions(+) commit b1c17215d718d8cf7f4443bf3a3033f623affdf1 Author: Mathieu Olivari Date: Wed May 27 11:02:49 2015 -0700 stmmac: add ipq806x glue layer The ethernet controller available in IPQ806x is a Synopsys DesignWare Gigabit MAC IP core, already supported by the stmmac driver. This glue layer implements some platform specific settings required to get the controller working on an IPQ806x based platform. Signed-off-by: Mathieu Olivari Signed-off-by: David S. Miller drivers/net/ethernet/stmicro/stmmac/Kconfig | 14 + drivers/net/ethernet/stmicro/stmmac/Makefile | 1 + .../net/ethernet/stmicro/stmmac/dwmac-ipq806x.c | 365 +++++++++++++++++++++ 3 files changed, 380 insertions(+) commit 277323814e495616dd76409bec855f5c68f54988 Author: Mathieu Olivari Date: Wed May 27 11:02:48 2015 -0700 stmmac: add fixed-link device-tree support In case DT is used, this change adds the ability to the stmmac driver to detect a fixed-link PHY, instanciate it, and use it during phy_connect(). Fixed link PHYs DT usage is described in: Documentation/devicetree/bindings/net/fixed-link.txt Signed-off-by: Mathieu Olivari Signed-off-by: David S. Miller drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 2 +- drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) commit 5790cf3c00c2f92aacba348e13f8a9a8f5dd96bd Author: Mathieu Olivari Date: Wed May 27 11:02:47 2015 -0700 stmmac: add phy-handle support to the platform layer On stmmac driver, PHY specification in device-tree was done using the non-standard property "snps,phy-addr". Specifying a PHY on a different MDIO bus that the one within the stmmac controller doesn't seem to be possible when device-tree is used. This change adds support for the phy-handle property, as specified in Documentation/devicetree/bindings/net/ethernet.txt. Signed-off-by: Mathieu Olivari Signed-off-by: David S. Miller drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 28 ++++++++++++++-------- .../net/ethernet/stmicro/stmmac/stmmac_platform.c | 6 ++++- include/linux/stmmac.h | 1 + 3 files changed, 24 insertions(+), 11 deletions(-) commit f7b81d67d0547c6ce246c89900eaa41303a3f89a Author: Stephen Boyd Date: Wed May 27 11:02:46 2015 -0700 clk: qcom: Add support for NSS/GMAC clocks and resets Add the NSS/GMAC clocks and the TCM clock and NSS resets. Signed-off-by: Stephen Boyd Signed-off-by: Mathieu Olivari Signed-off-by: David S. Miller drivers/clk/qcom/gcc-ipq806x.c | 594 ++++++++++++++++++++++++++- include/dt-bindings/clock/qcom,gcc-ipq806x.h | 2 + include/dt-bindings/reset/qcom,gcc-ipq806x.h | 43 ++ 3 files changed, 638 insertions(+), 1 deletion(-) commit adf1b358a9c97b8d73dc91ade96f2a9f225921e1 Author: Sasha Levin Date: Thu May 28 11:03:56 2015 -0400 staging: wilc1000: off by one in wilc_wfi_cfg80211_mgmt_types NL80211_IFTYPE_MAX represents the largest interface type number defined, so declaring the array with that size will actually leave out the last interface. This causes invalid memory access whenever this array is used, which starts happening at boot. Signed-off-by: Sasha Levin Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_cfgoperations.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 691f1a2f035d345c5a908c5c1e2a158dde6c93fa Author: Arnd Bergmann Date: Fri May 29 22:52:15 2015 +0200 staging: wilc1000: remove __DRIVER_VERSION__ macro The driver version is meaningless, and in particular does not have to be passed from the Makefile. This removes the macros, but leaves the behavior of printing the 10.2 version untouched for the moment. Signed-off-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/Makefile | 6 ------ drivers/staging/wilc1000/linux_wlan.c | 2 +- 2 files changed, 1 insertion(+), 7 deletions(-) commit 1999bd52514f90e0dbfb9d2b8a4d7ecb115bb0a5 Author: Arnd Bergmann Date: Fri May 29 22:52:14 2015 +0200 staging: wilc1000: remove thread wrapper The wilc_thread code is a very thin wrapper around kthread, so just remove it and use kthread directly. Signed-off-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/Makefile | 2 +- drivers/staging/wilc1000/host_interface.c | 16 ++-- drivers/staging/wilc1000/wilc_osconfig.h | 3 - drivers/staging/wilc1000/wilc_oswrapper.h | 5 - drivers/staging/wilc1000/wilc_platform.h | 14 --- drivers/staging/wilc1000/wilc_thread.c | 35 ------- drivers/staging/wilc1000/wilc_thread.h | 153 ------------------------------ 7 files changed, 8 insertions(+), 220 deletions(-) commit 544c69dc83844f9db20af868027df0faf0cf9dd3 Author: Arnd Bergmann Date: Fri May 29 22:52:13 2015 +0200 staging: wilc1000: remove platform version checks For code that is integrated into mainline Linux, checks for the OS platform make no sense, because we know that we are on Linux. This removes all checks and the associated dead code. Signed-off-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/Makefile | 3 +-- drivers/staging/wilc1000/coreconfigurator.c | 2 -- drivers/staging/wilc1000/wilc_osconfig.h | 15 --------------- drivers/staging/wilc1000/wilc_oswrapper.h | 14 -------------- 4 files changed, 1 insertion(+), 33 deletions(-) commit e5af056149ab91c55199e6633b5e69d370b5226c Author: Arnd Bergmann Date: Fri May 29 22:52:12 2015 +0200 staging: wilc1000: remove linux version checks For code that is integrated into mainline Linux, checks for the kernel version make no sense, because we know which version we are compiling against. This removes all checks and the associated dead code. Signed-off-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 88 +--- drivers/staging/wilc1000/wilc_sleep.c | 8 - drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 486 +--------------------- drivers/staging/wilc1000/wilc_wfi_cfgoperations.h | 7 +- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 8 - 5 files changed, 5 insertions(+), 592 deletions(-) commit d511eb7d642aaf513fefeb05514dc6177c53c350 Author: Laurent Pinchart Date: Sun May 24 19:45:38 2015 -0300 [media] uvcvideo: Remove unneeded device disconnected flag The UVC_DEV_DISCONNECTED flag is set when the USB device is disconnected, and checked in the open() handler to refuse opening a device that has been disconnected. This is inherently racy, but the race condition is taken care of in the V4L2 core, which also fails open() calls when the V4L2 device node has been unregistered. As the uvcvideo USB disconnect handler unregisters all its video device nodes, the UVC_DEV_DISCONNECTED flag doesn't serve any purpose anymore and can be removed. Signed-off-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/uvc/uvc_driver.c | 2 -- drivers/media/usb/uvc/uvc_v4l2.c | 3 --- drivers/media/usb/uvc/uvcvideo.h | 5 ----- 3 files changed, 10 deletions(-) commit 37f85b276a36b531234992b05eb057841af46fb4 Author: Laurent Pinchart Date: Tue May 12 18:57:53 2015 -0300 [media] uvcvideo: Fix incorrect bandwidth with Chicony device 04f2:b50b The "TOSHIBA Web Camera - 5M" Chicony device (04f2:b50b) seems to compute the bandwidth on 16 bits and erroneously sign-extend it to 32 bits, resulting in a huge bandwidth value. Detect and fix that condition by setting the 16 MSBs to 0 when they're all equal to 1. Reported-by: Hans de Goede Signed-off-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/uvc/uvc_video.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 7195f61b801104add6453e1d8a39d5c8366fc446 Author: Laurent Pinchart Date: Tue Apr 14 04:19:51 2015 -0300 [media] uvcvideo: Implement DMABUF exporter role Now that videobuf2-vmalloc supports exporting buffers, add support for the DMABUF exporter role by plugging in the videobuf2 ioctl helper. Signed-off-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/uvc/uvc_queue.c | 12 ++++++++++++ drivers/media/usb/uvc/uvc_v4l2.c | 13 +++++++++++++ drivers/media/usb/uvc/uvcvideo.h | 2 ++ 3 files changed, 27 insertions(+) commit baf06b519051047b4ca6bcaa94ee2d85672dd443 Author: Antti Palosaari Date: Thu May 21 16:47:15 2015 -0300 [media] af9035: add USB ID 07ca:0337 AVerMedia HD Volar (A867) It is AF9035 + MxL5007T. Driver reports: prechip_version=00 chip_version=03 chip_type=3802 Not sure if that USB ID is reserved only for HP brand or if it is common, but the stick I have is branded as HP part no. 580715-001 rmn A867. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/dvb-usb-v2/af9035.c | 2 ++ 1 file changed, 2 insertions(+) commit f01919e8f54f645fb00fdb823fe266e21eebe3b1 Author: Antti Palosaari Date: Thu Apr 16 20:04:55 2015 -0300 [media] m88ds3103: add I2C client binding Implement I2C client device binding. Wrap media attach to driver I2C probe. Add wrapper from m88ds3103_attach() to m88ds3103_probe() via driver core in order to provide proper I2C client for legacy media attach binding. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/m88ds3103.c | 268 +++++++++++++++++++-------- drivers/media/dvb-frontends/m88ds3103.h | 63 ++++++- drivers/media/dvb-frontends/m88ds3103_priv.h | 2 + 3 files changed, 245 insertions(+), 88 deletions(-) commit befa0cc1da62d5e27b9001900c397c0dada9b032 Author: Antti Palosaari Date: Tue Apr 14 12:56:24 2015 -0300 [media] m88ds3103: use jiffies when polling DiSEqC TX ready Use jiffies to set timeout for DiSEqC TX ready polling. Using jiffies is more elegant solution than looping N times with sleep. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/m88ds3103.c | 53 +++++++++++++++++++++------------ 1 file changed, 34 insertions(+), 19 deletions(-) commit ce80d713e380581071e4050410fe71a4c926884d Author: Antti Palosaari Date: Tue Apr 14 09:44:20 2015 -0300 [media] m88ds3103: implement DVBv5 BER Implement DVBv5 BER statistics. Wrap legacy DVBv3 BER to DVBv5 BER. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/m88ds3103.c | 165 +++++++++++++++------------ drivers/media/dvb-frontends/m88ds3103_priv.h | 4 +- 2 files changed, 94 insertions(+), 75 deletions(-) commit c1daf6511a5ddd9c6f4855978bb9345beef90937 Author: Antti Palosaari Date: Mon Apr 13 20:56:13 2015 -0300 [media] m88ds3103: implement DVBv5 CNR statistics Implement DVBv5 CNR statistics. Wrap legacy DVBv3 SNR to DVBv5 CNR. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/m88ds3103.c | 154 +++++++++++++++++--------------- 1 file changed, 82 insertions(+), 72 deletions(-) commit 9240c384f1c7cbf7ba15ccf818f37fad69fd4712 Author: Antti Palosaari Date: Mon Apr 13 21:00:09 2015 -0300 [media] m88ds3103: do not return error from get_frontend() when not ready Do not return error from get_frontend() when status is queried, but the frontend didn't lock yet. The proper behavior is to only update the cache after having a lock. [mchehab@osg.samsung.com: fix the patch description] Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/m88ds3103.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d8fd9f56255cfeebe88b987543fd2d1399a35a25 Author: Vasily Khoruzhick Date: Fri Apr 24 04:04:04 2015 -0300 [media] gspca: sn9c2028: Add gain and autogain controls Genius Videocam Live v2 Autogain algorithm is very simple, if average luminance is low - increase gain, if it's high - decrease gain. Gain granularity is low enough for this algo to stabilize quickly. Signed-off-by: Vasily Khoruzhick Signed-off-by: Hans de Goede Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/gspca/sn9c2028.c | 122 +++++++++++++++++++++++++++++++++++++ drivers/media/usb/gspca/sn9c2028.h | 18 +++++- 2 files changed, 137 insertions(+), 3 deletions(-) commit 48c291eda79da46582438ec8d821c6efcd54120d Author: Vasily Khoruzhick Date: Fri Apr 24 04:04:03 2015 -0300 [media] gspca: sn9c2028: Add support for Genius Videocam Live v2 This cam seems to return different values on long commands, so make status check in sn9c2028_long_command() more tolerant. Anyway, read value isn't used anywhere later. Signed-off-by: Vasily Khoruzhick Signed-off-by: Hans de Goede Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/gspca/sn9c2028.c | 119 ++++++++++++++++++++++++++++++++++++- 1 file changed, 118 insertions(+), 1 deletion(-) commit c579401a246328e1a11bd4cce70e6d0b63c3cfdb Author: Geert Uytterhoeven Date: Tue May 5 13:32:26 2015 -0300 [media] wl128x: 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 Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/radio/wl128x/Kconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 2b7eea83a4e694018ddc155078bc36bf702ea466 Author: Florian Echtler Date: Mon May 25 09:04:16 2015 -0300 [media] return BUF_STATE_ERROR if streaming stopped during acquisition When stop_streaming is called while a frame is currently being retrieved, the buffer being filled will still be returned with BUF_STATE_DONE. By resetting the sequence number and checking before returning the buffer, it can now correctly be returned with BUF_STATE_ERROR. Signed-off-by: Martin Kaltenbrunner Signed-off-by: Florian Echtler Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/input/touchscreen/sur40.c | 5 +++++ 1 file changed, 5 insertions(+) commit 0cfdfcc1db13c7b6b6f930ac0528d5b010f45220 Author: Florian Echtler Date: Mon May 25 09:04:15 2015 -0300 [media] add extra debug output, remove noisy warning Add dev_dbg statements for easier future debugging; also change the warning about packet ID mismatches to debug output to avoid flooding the logs. This warning is only important in a very specific/rare use case when trying to correlate input events with video data. Signed-off-by: Martin Kaltenbrunner Signed-off-by: Florian Echtler Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/input/touchscreen/sur40.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit da6e4674b0917d3a76ebb7938e6e2fa9532ce76f Author: Florian Echtler Date: Mon May 25 09:04:14 2015 -0300 [media] add frame size/frame rate query functions Add missing functions to query the single fixed frame size (960x540) and supported frame rates. Technically, the SUR40 supports any arbitrary frame rate up to 60 FPS, as it is polled and not interrupt-driven. For now, we just report 30 and 60 FPS, which is sufficient to make most V4L2 tools work. Signed-off-by: Martin Kaltenbrunner Signed-off-by: Florian Echtler Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/input/touchscreen/sur40.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) commit ca27ab31597c9e3c75f0dd46d85087c0627d748c Author: Florian Echtler Date: Mon May 25 09:04:13 2015 -0300 [media] reduce poll interval to allow full 60 FPS framerate The SUR40 hardware can deliver images at up to 60 FPS; at full USB2 bandwidth, one raw frame will take about 11 ms to transmit. If the poll interval is above 5 ms, fully handling one frame will take longer than 16 ms and the overall frame rate will drop below 60 FPS. To get the full frame rate without blocking all the time and still allowing for a bit of timing jitter, we reduce the poll interval to 4 ms. Signed-off-by: Martin Kaltenbrunner Signed-off-by: Florian Echtler Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/input/touchscreen/sur40.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 48fc10aaf180d71bd7953f9e25b0fd7393b5123a Author: Antti Palosaari Date: Sun May 17 08:38:04 2015 -0300 [media] v4l2: correct two SDR format names U8 and U16LE format human readable names were translated with string containing emulated word. These strings were taken from msi2500 driver, where those formats were emulated (after module parameter is set). But on API correct names should be used, without any special case notes. Signed-off-by: Antti Palosaari Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/v4l2-ioctl.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 7615f4bcfae51a4cc5a5ad9610c02b735496a96b Author: Antti Palosaari Date: Sun May 17 08:34:37 2015 -0300 [media] vivid: SDR cap add 'CU08' Complex U8 format Add complex unsigned 8-bit sample format for SDR capture. Signed-off-by: Antti Palosaari Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/vivid/vivid-core.c | 7 +- drivers/media/platform/vivid/vivid-core.h | 2 + drivers/media/platform/vivid/vivid-sdr-cap.c | 96 ++++++++++++++++++++++++---- drivers/media/platform/vivid/vivid-sdr-cap.h | 2 + 4 files changed, 94 insertions(+), 13 deletions(-) commit 9c54faef71c0dd7ce01ff0c4251d6fdfbf570b09 Author: Hans Verkuil Date: Fri May 15 09:29:10 2015 -0300 [media] vivid: use new V4L2_MAP_*_DEFAULT defines Use these defines instead of hardcoding this in any driver that needs it. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/vivid/vivid-tpg.c | 51 ++++++-------------------------- 1 file changed, 9 insertions(+), 42 deletions(-) commit 3818c4da43af9e67fed66174cc25f8fce4043d99 Author: Hans Verkuil Date: Fri May 15 09:29:09 2015 -0300 [media] videodev2.h: add macros to map colorspace defaults The mapping of COLORSPACE_DEFAULT, YCBCR_ENC_DEFAULT or QUANTIZATION_DEFAULT to proper non-default values is fairly complex, and it is something that needs to be done both in the kernel and in userspace. So add macros that can do this conversion, making this available to both kernel and userspace. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab include/uapi/linux/videodev2.h | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) commit ed9be0b104ea9719f4bdd84ff2e603071153c3dc Author: Hans Verkuil Date: Fri May 15 09:29:08 2015 -0300 [media] DocBook/media: document COLORSPACE_RAW Document this new colorspace define. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/v4l/pixfmt.xml | 7 +++++++ 1 file changed, 7 insertions(+) commit addad1050827136e4f8d22c5c81df42f88f44651 Author: Hans Verkuil Date: Fri May 15 09:29:07 2015 -0300 [media] videodev2.h: add COLORSPACE_RAW V4L2_COLORSPACE_RAW is added for raw image formats where the picture is minimally processed and is in the internal colorspace of the sensor. This is typically used in digital cameras where the image processing is done later. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab include/uapi/linux/videodev2.h | 3 +++ 1 file changed, 3 insertions(+) commit da0c211bb6670c5e8aa9cac7437948e3e6d00ce3 Author: Hans Verkuil Date: Fri May 15 09:29:06 2015 -0300 [media] DocBook/media: document COLORSPACE_DEFAULT Document this new colorspace define. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/v4l/pixfmt.xml | 5 +++++ 1 file changed, 5 insertions(+) commit e01dfc01914ab9a078ca8d08287c19c6663b5438 Author: Hans Verkuil Date: Fri May 15 09:29:05 2015 -0300 [media] videodev2.h: add COLORSPACE_DEFAULT V4L2_COLORSPACE_DEFAULT is added so we have a specific define for the default case where applications do not set it but leave it to 0. In that case the driver will set the colorspace based on what it captures. This is already used, but we never had a define for the value 0. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab include/uapi/linux/videodev2.h | 6 ++++++ 1 file changed, 6 insertions(+) commit 3725d53149e190c6d8da80d458795a396705010e Author: Hans Verkuil Date: Mon May 18 10:29:17 2015 -0300 [media] ivtv: fix incorrect audio mode report in log_status The log_status ioctl should report if the audio input has mode Bilingual. However, the check against the itv->dualwatch_stereo_mode is completely wrong and is a left-over from the distant past. Not only is the bitmask obviously wrong, the test itself is broken too since itv->dualwatch_stereo_mode is no longer a bitmask at all. Fix this code properly. Signed-off-by: Hans Verkuil Reported-by: Dan Carpenter Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/ivtv/ivtv-ioctl.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit ddfa6c63f5b5db14e9fcadc0b259a843fadea234 Author: Hans Verkuil Date: Fri May 15 09:11:13 2015 -0300 [media] DocBook/media: add missing entry for V4L2_PIX_FMT_Y16_BE This format was added but not documented. Do this now. Signed-off-by: Hans Verkuil Acked-by: Ricardo Ribalda Delgado Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/v4l/pixfmt-y16-be.xml | 81 +++++++++++++++++++++++ Documentation/DocBook/media/v4l/pixfmt.xml | 1 + 2 files changed, 82 insertions(+) commit b0ce23f065744ba136e6b059369f51e5ae1fb769 Author: Ricardo Ribalda Date: Mon May 4 05:07:31 2015 -0300 [media] media/vivid: Add support for Y16_BE format Support for V4L2_PIX_FMT_Y16_BE, a 16 bit big endian greyscale format. Signed-off-by: Ricardo Ribalda Delgado Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/vivid/vivid-tpg.c | 9 ++++++++- drivers/media/platform/vivid/vivid-vid-common.c | 8 ++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) commit 2e5e435fb4fdcc64db49e903baddb1ea8827385e Author: Ricardo Ribalda Date: Mon May 4 05:07:30 2015 -0300 [media] media/v4l2-core: Add support for V4L2_PIX_FMT_Y16_BE 16 bit greyscale format, structured in Big Endian. Such a format can be converted into a PMN image just by adding a header. Signed-off-by: Ricardo Ribalda Delgado Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/v4l2-ioctl.c | 3 ++- include/uapi/linux/videodev2.h | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) commit ba81c6ed3dd4717439940cd5f60b152ea924093d Author: Ricardo Ribalda Date: Wed Apr 29 09:00:47 2015 -0300 [media] media/videobuf2-dma-vmalloc: Save output from dma_map_sg dma_map_sg returns the number of areas mapped by the hardware, which could be different than the areas given as an input. The output must be saved to nent. Signed-off-by: Ricardo Ribalda Delgado Reviewed-by: Marek Szyprowski Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/videobuf2-vmalloc.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 60a471923869394a47c10262d080286eb01451b5 Author: Ricardo Ribalda Date: Wed Apr 29 09:00:46 2015 -0300 [media] media/videobuf2-dma-contig: Save output from dma_map_sg dma_map_sg returns the number of areas mapped by the hardware, which could be different than the areas given as an input. The output must be saved to nent. Signed-off-by: Ricardo Ribalda Delgado Reviewed-by: Marek Szyprowski Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/videobuf2-dma-contig.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 6a5d77cbf26078e9ee8f88c7d77fe0a7fa4a0364 Author: Ricardo Ribalda Date: Wed Apr 29 09:00:45 2015 -0300 [media] media/videobuf2-dma-sg: Fix handling of sg_table structure When sg_alloc_table_from_pages() does not fail it returns a sg_table structure with nents and nents_orig initialized to the same value. dma_map_sg returns the number of areas mapped by the hardware, which could be different than the areas given as an input. The output must be saved to nent. The output of dma_map, should be used to transverse the scatter list. dma_unmap_sg needs the value passed to dma_map_sg (nents_orig). sg_free_tables uses also orig_nent. This patch fix the file to follow this paradigm. Signed-off-by: Ricardo Ribalda Delgado Reviewed-by: Marek Szyprowski Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/videobuf2-dma-sg.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) commit 29fba6a84bc73b9250472e4779ca255f585878a6 Author: Hans Verkuil Date: Fri May 22 11:02:45 2015 -0300 [media] adv7604/cobalt: missing GPIOLIB dependency The adv7604 driver depends on GPIOLIB, and therefore cobalt depends on it as well. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/Kconfig | 2 +- drivers/media/pci/cobalt/Kconfig | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 7071b2eaba9fd209a415738cc87857212db93ed1 Author: Hans Verkuil Date: Fri May 22 10:45:28 2015 -0300 [media] saa7164: fix sparse warning drivers/media/pci/saa7164/saa7164-i2c.c:45:33: warning: Using plain integer as NULL pointer Signed-off-by: Hans Verkuil Reviewed-by: Steven Toth Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/saa7164/saa7164-i2c.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit edff2bac9d3c3b94c0e790a49289824ff2c0a68c Author: Hans Verkuil Date: Fri May 22 10:44:49 2015 -0300 [media] cx24120: fix sparse warning drivers/media/dvb-frontends/cx24120.c:837:6: warning: symbol 'cx24120_calculate_ber_window' was not declared. Should it be static? Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/cx24120.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4da707688b1f7628efe26058dffd6dbf3343f8ba Author: Hans Verkuil Date: Fri May 22 06:30:59 2015 -0300 [media] cobalt: fix sparse warnings drivers/media/pci/cobalt/cobalt-v4l2.c:189:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:191:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:192:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:193:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:194:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:195:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:196:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:197:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:198:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:199:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:201:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:202:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:203:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:234:17: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:240:17: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:246:17: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:266:17: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:267:17: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:271:28: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:275:17: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:276:17: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:312:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:313:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:314:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:315:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:317:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:320:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:321:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:321:36: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:324:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:327:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:328:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:328:41: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:329:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:331:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:332:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:334:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:335:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:336:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:362:17: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:367:17: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:368:17: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:420:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:421:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:422:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:423:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:516:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:516:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:518:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:518:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:518:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:525:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:525:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:531:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:531:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:531:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:531:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:531:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:531:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:531:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:546:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:546:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:548:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:549:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:550:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:551:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:552:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:553:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:554:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:555:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:556:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:556:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:556:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:563:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:564:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:564:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:569:9: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:595:16: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-v4l2.c:602:9: warning: dereference of noderef expression Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/cobalt/cobalt-v4l2.c | 234 +++++++++++++++++---------------- 1 file changed, 124 insertions(+), 110 deletions(-) commit 0664fb61a42de62bfac2bbaece693f7ae712a942 Author: Hans Verkuil Date: Fri May 22 05:51:39 2015 -0300 [media] cobalt: fix sparse warnings drivers/media/pci/cobalt/cobalt-i2c.c:130:17: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-i2c.c:147:17: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-i2c.c:151:26: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-i2c.c:156:34: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-i2c.c:206:17: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-i2c.c:210:26: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-i2c.c:215:34: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-i2c.c:225:27: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-i2c.c:335:17: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-i2c.c:336:17: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-i2c.c:337:17: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-i2c.c:348:34: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-i2c.c:352:17: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-i2c.c:353:17: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-i2c.c:356:17: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-i2c.c:357:17: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-i2c.c:359:17: warning: dereference of noderef expression Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/cobalt/cobalt-driver.h | 2 +- drivers/media/pci/cobalt/cobalt-i2c.c | 56 ++++++++++++++++---------------- 2 files changed, 29 insertions(+), 29 deletions(-) commit c0ce6220a5bf7ba892cd1ef9c9d4b622cf6f0894 Author: Hans Verkuil Date: Fri May 22 05:44:23 2015 -0300 [media] cobalt: fix sparse warnings drivers/media/pci/cobalt/cobalt-irq.c:62:33: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-irq.c:64:17: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-irq.c:65:23: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-irq.c:72:21: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-irq.c:73:25: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-irq.c:74:25: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-irq.c:82:33: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-irq.c:83:33: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-irq.c:91:25: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-irq.c:94:23: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-irq.c:103:25: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-irq.c:107:17: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-irq.c:109:17: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-irq.c:116:13: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-irq.c:119:17: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-irq.c:120:17: warning: dereference of noderef expression drivers/media/pci/cobalt/cobalt-irq.c:122:17: warning: dereference of noderef expression Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/cobalt/cobalt-irq.c | 51 +++++++++++++++++++---------------- 1 file changed, 28 insertions(+), 23 deletions(-) commit dd2567c0f9629bddd3cdb6cee3b3b66f963464e5 Author: Hans Verkuil Date: Fri May 22 05:30:02 2015 -0300 [media] cobalt: fix sparse warnings drivers/media/pci/cobalt/cobalt-flash.c:101:5: warning: symbol 'cobalt_flash_probe' was not declared. Should it be static? drivers/media/pci/cobalt/cobalt-flash.c:126:6: warning: symbol 'cobalt_flash_remove' was not declared. Should it be static? drivers/media/pci/cobalt/cobalt-cpld.c:101:6: warning: symbol 'cobalt_cpld_status' was not declared. Should it be static? drivers/media/pci/cobalt/cobalt-cpld.c:240:6: warning: symbol 'cobalt_cpld_set_freq' was not declared. Should it be static? Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/cobalt/cobalt-cpld.c | 2 +- drivers/media/pci/cobalt/cobalt-flash.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 4a561c4b70b908c0b5cbcc8bc95bc796139e63ad Author: Hans Verkuil Date: Fri May 22 05:31:46 2015 -0300 [media] cobalt: fix sparse warnings drivers/media/pci/cobalt/cobalt-flash.c:39:36: warning: incorrect type in initializer (different address spaces) drivers/media/pci/cobalt/cobalt-flash.c:54:36: warning: incorrect type in initializer (different address spaces) drivers/media/pci/cobalt/cobalt-flash.c:63:36: warning: incorrect type in initializer (different address spaces) drivers/media/pci/cobalt/cobalt-flash.c:82:36: warning: incorrect type in initializer (different address spaces) drivers/media/pci/cobalt/cobalt-flash.c:107:19: warning: incorrect type in assignment (different address spaces) Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/cobalt/cobalt-cpld.c | 4 ++-- drivers/media/pci/cobalt/cobalt-driver.c | 4 ++-- drivers/media/pci/cobalt/cobalt-driver.h | 12 ++++++------ drivers/media/pci/cobalt/cobalt-flash.c | 16 ++++++---------- 4 files changed, 16 insertions(+), 20 deletions(-) commit 1ba90492289003e7939574eca8b1ff6cce2d5520 Author: Hans Verkuil Date: Fri May 22 04:39:54 2015 -0300 [media] e4000: fix compiler warning drivers/media/tuners/e4000.c:287:3: warning: this decimal constant is unsigned only in ISO C90 .rangehigh = 2208000000L, ^ Signed-off-by: Hans Verkuil Cc: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/tuners/e4000.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 40c942a1746ffcb632933a2195fa80e6f4c2d6f0 Author: Hans Verkuil Date: Fri May 22 04:37:27 2015 -0300 [media] cobalt: fix compiler warnings on 32 bit OSes Fixes these warnings: drivers/media/pci/cobalt/cobalt-omnitek.c: In function 'omni_sg_dma_start': drivers/media/pci/cobalt/cobalt-omnitek.c:112:28: warning: right shift count >= width of type [-Wshift-count-overflow] iowrite32((u32)(desc->bus >> 32), DESCRIPTOR(s->dma_channel) + 4); ^ drivers/media/pci/cobalt/cobalt-omnitek.c: In function 'descriptor_list_create': drivers/media/pci/cobalt/cobalt-omnitek.c:222:28: warning: right shift count >= width of type [-Wshift-count-overflow] d->next_h = (u32)(next >> 32); ^ drivers/media/pci/cobalt/cobalt-omnitek.c:268:32: warning: right shift count >= width of type [-Wshift-count-overflow] d->next_h = (u32)(desc->bus >> 32); ^ drivers/media/pci/cobalt/cobalt-omnitek.c:275:27: warning: right shift count >= width of type [-Wshift-count-overflow] d->next_h = (u32)(next >> 32); ^ drivers/media/pci/cobalt/cobalt-omnitek.c: In function 'descriptor_list_chain': drivers/media/pci/cobalt/cobalt-omnitek.c:293:31: warning: right shift count >= width of type [-Wshift-count-overflow] d->next_h = (u32)(next->bus >> 32); ^ drivers/media/pci/cobalt/cobalt-omnitek.c: In function 'descriptor_list_loopback': drivers/media/pci/cobalt/cobalt-omnitek.c:332:30: warning: right shift count >= width of type [-Wshift-count-overflow] d->next_h = (u32)(desc->bus >> 32); ^ Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/cobalt/cobalt-omnitek.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 99cabb187100e5bae12ec835431a2868e5d9afc9 Author: Hans Verkuil Date: Thu May 21 09:37:40 2015 -0300 [media] cobalt: fix 64-bit division link error [linuxtv-media:master 1023/1029] ERROR: "__aeabi_uldivmod" [drivers/media/pci/cobalt/cobalt.ko] undefined! Signed-off-by: Hans Verkuil Reported-by: kbuild test robot Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/cobalt/cobalt-v4l2.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 86bad00a2fd5327925417eb05a2b3d1819c42a70 Author: Hans Verkuil Date: Thu May 21 06:19:28 2015 -0300 [media] cobalt: fix irqs used for the adv7511 transmitter The interrupt bit assignments use for the adv7511 were off by one. This means that the current scheme (bit << (4 * stream_index)) can no longer be used. Fix this by precalculating and storing the correct masks in the cobalt_stream struct. This wasn't noticed before because the adv7511 interrupts are very rare. But for CEC support these interrupts are essential, so this made me realize that it wasn't working correctly. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/cobalt/cobalt-driver.c | 14 ++++++++++++-- drivers/media/pci/cobalt/cobalt-driver.h | 8 +++++--- drivers/media/pci/cobalt/cobalt-irq.c | 7 +++---- 3 files changed, 20 insertions(+), 9 deletions(-) commit 1e35c77dd1f8f3c1c8ef419ec422250fecb31fef Author: Mauro Carvalho Chehab Date: Fri May 29 10:52:09 2015 -0300 [media] DocBook: Update DocBook version and fix a few legacy things The DVB part of the media API documentation has several legacy things on it: - Examples that don't work; - APIs unused and deprecated; - places mentioning the wrong API version. Fix them and bump the documentation version, in order to reflect the cleanup efforts to make it more consistent with the current status of the API. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/dvbapi.xml | 32 ++++++++++++++++++++++------ Documentation/DocBook/media/dvb/examples.xml | 6 ++++-- Documentation/DocBook/media/dvb/intro.xml | 2 +- 3 files changed, 30 insertions(+), 10 deletions(-) commit 87db4553a873976f306d98bab5436a4a86d37882 Author: Mauro Carvalho Chehab Date: Fri May 29 10:19:55 2015 -0300 [media] DocBook: Fix arguments on some ioctl documentation Due to a cut-and-paste error, the argument is missing or wrong on 3 ioctl documentation. Fix them. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/fe-diseqc-send-burst.xml | 5 ++++- Documentation/DocBook/media/dvb/fe-set-tone.xml | 5 ++++- Documentation/DocBook/media/dvb/fe-set-voltage.xml | 5 ++++- 3 files changed, 12 insertions(+), 3 deletions(-) commit ac99edd2e13df8d4a5bd3dd2a8b004121f4fb47d Author: Mauro Carvalho Chehab Date: Fri May 29 09:39:55 2015 -0300 [media] DocBook: cleaup the notes about DTV properties The notes there are somewhat confusing and assumes that the reader would have read the DVBv3 way. This is not true anymore, as the DVBv3 is now on a separate section that is marked as deprecated. So, cleanup the notes. While here, add a note about using libdvbv5, instead of using the DVBv5 API directly. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/dvbproperty.xml | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) commit e3dae8623d934611c57bc060c5d588de0fccafa5 Author: Mauro Carvalho Chehab Date: Fri May 29 09:39:51 2015 -0300 [media] DocBook: Add an example for using FE_SET_PROPERTY In order to make it clearer about how to use the DVBv5 calls, add an example of its usage. That should make it clearer about what's actually required for the DVBv5 calls to work. While here, also mentions the libdvbv5 library. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/dvbproperty.xml | 40 +++++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit 38fbb98668817a0f1db39ebb2302d534f44a52fd Author: Mauro Carvalho Chehab Date: Fri May 29 07:34:50 2015 -0300 [media] DocBook: improve documentation of the properties structs Rename the tytle of the struct documentation to reflect the name of the structures, and use links to do cross-ref. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/dvbproperty.xml | 14 +++++++------- Documentation/DocBook/media/dvb/fe-get-property.xml | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) commit 9df4fc5b8f34383d116a160809e782b4ca50a808 Author: Mauro Carvalho Chehab Date: Thu May 28 22:06:56 2015 -0300 [media] DocBook: improve documentation for hierarchy Format it as a table and links it with the legacy API xml. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/dvbproperty.xml | 46 +++++++++++++++++----- Documentation/DocBook/media/dvb/frontend.xml | 18 --------- .../DocBook/media/dvb/frontend_legacy_api.xml | 2 +- include/uapi/linux/dvb/frontend.h | 6 ++- 4 files changed, 42 insertions(+), 30 deletions(-) commit 903142e53c648ee61c00f5c3b420b16bc6336ad7 Author: Mauro Carvalho Chehab Date: Thu May 28 22:01:41 2015 -0300 [media] DocBook: improve documentation for guard interval Format it as a table and add more details, in special for DTMB guard intervals. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/dvbproperty.xml | 68 +++++++++++++++++----- Documentation/DocBook/media/dvb/frontend.xml | 16 ----- .../DocBook/media/dvb/frontend_legacy_api.xml | 2 +- include/uapi/linux/dvb/frontend.h | 5 +- 4 files changed, 57 insertions(+), 34 deletions(-) commit f2e6cf76751d479874216f989f6bef6da6e80119 Author: Joe Perches Date: Fri Oct 10 09:12:47 2014 -0700 pcmcia: Convert dev_printk to dev_ Reduce object size a little by using dev_ calls instead of dev_printk(KERN_. Other miscellanea: o Coalesce formats o Realign arguments o Use pr_cont instead of naked printk reorder test to use "%s\n" Signed-off-by: Joe Perches Signed-off-by: Dominik Brodowski drivers/char/pcmcia/cm4040_cs.c | 5 ++- drivers/pcmcia/cistpl.c | 10 +++--- drivers/pcmcia/cs.c | 29 +++++++-------- drivers/pcmcia/ds.c | 39 +++++++++----------- drivers/pcmcia/pcmcia_cis.c | 4 +-- drivers/pcmcia/pcmcia_resource.c | 11 +++--- drivers/pcmcia/rsrc_nonstatic.c | 44 +++++++++++------------ drivers/pcmcia/ti113x.h | 78 +++++++++++++++++++--------------------- drivers/pcmcia/yenta_socket.c | 61 +++++++++++++++---------------- 9 files changed, 126 insertions(+), 155 deletions(-) commit 6bb536cc4b06df70012cec6168cc1788e200bc9d Author: Wang Nan Date: Fri May 29 09:45:47 2015 +0000 perf probe: Fix segfault when glob matching function without debuginfo Commit 4c859351226c920b227fec040a3b447f0d482af3 ("perf probe: Support glob wildcards for function name") introduces segfault problems when debuginfo is not available: # perf probe 'sys_w*' Added new events: Segmentation fault The first problem resides in find_probe_trace_events_from_map(). In that function, find_probe_functions() is called to match each symbol against glob to find the number of matching functions, but still use map__for_each_symbol_by_name() to find 'struct symbol' for matching functions. Unfortunately, map__for_each_symbol_by_name() does exact matching by searching in an rbtree. It doesn't know glob matching, and not easy for it to support it because it use rbtree based binary search, but we are unable to ensure all names matched by the glob (any glob passed by user) reside in one subtree. This patch drops map__for_each_symbol_by_name(). Since there is no rbtree again, re-matching all symbols costs a lot. This patch avoid it by saving all matching results into an array (syms). The second problem is the lost of tp->realname. In __add_probe_trace_events(), if pev->point.function is glob, the event name should be set to tev->point.realname. This patch ensures its existence by strdup sym->name instead of leaving a NULL pointer there. After this patch: # perf probe 'sys_w*' Added new events: probe:sys_waitid (on sys_w*) probe:sys_wait4 (on sys_w*) probe:sys_waitpid (on sys_w*) probe:sys_write (on sys_w*) probe:sys_writev (on sys_w*) You can now use it in all perf tools, such as: perf record -e probe:sys_writev -aR sleep 1 Signed-off-by: Wang Nan Acked-by: Masami Hiramatsu Cc: Jiri Olsa Cc: Namhyung Kim Cc: Zefan Li Link: http://lkml.kernel.org/r/1432892747-232506-1-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/probe-event.c | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) commit 2d457b8a9054b9c5b1fcfbc5702b7d0e9f6cda2b Author: Mauro Carvalho Chehab Date: Thu May 28 21:38:44 2015 -0300 [media] DocBook: improve documentation for FEC fields Format it as a table and add more details. Also, remove the duplicated occurrences. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/dvbproperty.xml | 123 ++++++++++++--------- Documentation/DocBook/media/dvb/frontend.xml | 28 ----- .../DocBook/media/dvb/frontend_legacy_api.xml | 8 +- include/uapi/linux/dvb/frontend.h | 6 +- 4 files changed, 78 insertions(+), 87 deletions(-) commit b174fb71e82eef2355aabece4b50fe1540e67544 Author: Mauro Carvalho Chehab Date: Thu May 28 20:57:53 2015 -0300 [media] DocBook: move fe_bandwidth to the frontend legacy section fe_bandwidth/fe_bandwidth_t is used only on DVBv3 API. So, move it to the frontend legacy xml, and convert it into a table. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/frontend.xml | 15 -------- .../DocBook/media/dvb/frontend_legacy_api.xml | 44 +++++++++++++++++++++- include/uapi/linux/dvb/frontend.h | 6 ++- 3 files changed, 47 insertions(+), 18 deletions(-) commit 0577a2f6d84a08da96c908a885db16b4d3532dc4 Author: Mauro Carvalho Chehab Date: Thu May 28 20:52:52 2015 -0300 [media] DocBook: improve documentation for OFDM transmission mode Format it as a table and add more details, in special, for the DTMB modes. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/dvbproperty.xml | 69 +++++++++++++++++----- Documentation/DocBook/media/dvb/frontend.xml | 15 ----- .../DocBook/media/dvb/frontend_legacy_api.xml | 2 +- include/uapi/linux/dvb/frontend.h | 6 +- 4 files changed, 59 insertions(+), 33 deletions(-) commit 58e11cc3c1f7d7e9fa70ba6c3d363456151fcffd Author: Mauro Carvalho Chehab Date: Thu May 28 20:00:43 2015 -0300 [media] DocBook: improve documentation for DVB spectral inversion Format it as a table and provide more details. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/dvbproperty.xml | 52 ++++++++++++++++------ Documentation/DocBook/media/dvb/frontend.xml | 17 ------- .../DocBook/media/dvb/frontend_legacy_api.xml | 2 +- include/uapi/linux/dvb/frontend.h | 5 ++- 4 files changed, 43 insertions(+), 33 deletions(-) commit 01f18d9633e9d6db323534ef2863b0f87393ade2 Author: Mauro Carvalho Chehab Date: Thu May 28 20:12:38 2015 -0300 [media] DocBook: cross-reference enum fe_modulation where needed At frontend legacy API description, there are three places where fe_modulation_t is defined. Cross-reference it to point to the right place at the documentation. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/frontend_legacy_api.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit edcf3cdfcd49ef4a178226c9173b88245fb04dec Author: Mauro Carvalho Chehab Date: Thu May 28 20:09:45 2015 -0300 [media] DocBook/Makefile: improve typedef parser The typedef parser is wrong and doesn't get some of the types defined at the DVB API. Improve it, as we want to add cross-references to those types. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 3ce3c1c4fefa48f429a4379f729e44a9e6ba657a Author: Himangi Saraogi Date: Wed Aug 6 22:06:25 2014 +0530 pcmcia/vrc4171: Remove typedefs for enums and struct The Linux kernel coding style guidelines suggest not using typedefs for structure and enum types. This patch gets rid of the typedefs for vrc4171_slot_t, vrc4171_slotb_t and vrc4171_socket_t. Also, the names of the enums and the struct are changed to drop the _t, to make the name look less typedef-like. The following Coccinelle semantic patch detects the cases for struct type: @tn@ identifier i; type td; @@ -typedef struct i { ... } -td ; @@ type tn.td; identifier tn.i; @@ -td + struct i Signed-off-by: Himangi Saraogi Acked-by: Julia Lawall Signed-off-by: Dominik Brodowski drivers/pcmcia/vrc4171_card.c | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) commit 8b0eb8377d3a2cbe242bb4d0a499d21cffe4c8b6 Author: Himangi Saraogi Date: Wed Aug 6 19:35:47 2014 +0530 pcmcia: Remove typedef in structs and emum The Linux kernel coding style guidelines suggest not using typedefs for structure and enum types. This patch gets rid of the typedefs for cirrus_state_t, vg46x_state_t and pcic_id. Also, the names of the structs are changed to drop the _t, to make the name look less typedef-like. The following Coccinelle semantic patch detects the cases for struct type: @tn@ identifier i; type td; @@ -typedef struct i { ... } -td ; @@ type tn.td; identifier tn.i; @@ -td + struct i [linux@dominikbrodowski.net: fix patch to apply cleanly after e632cd94723e was applied first] Signed-off-by: Himangi Saraogi Acked-by: Julia Lawall Signed-off-by: Dominik Brodowski drivers/pcmcia/i82365.c | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) commit 820dc8464e374e3ce1ecc72b0aaab3a935de34fa Author: Himangi Saraogi Date: Wed Aug 6 17:59:48 2014 +0530 pcmcia: Remove typedef tuple_flags The Linux kernel coding style guidelines suggest not using typedefs for structure types. This patch gets rid of the typedef for tuple_flags. The following Coccinelle semantic patch makes the transformation. @tn@ identifier i; type td; @@ -typedef struct i { ... } -td ; @@ type tn.td; identifier tn.i; @@ -td + struct i Signed-off-by: Himangi Saraogi Acked-by: Julia Lawall Signed-off-by: Dominik Brodowski drivers/pcmcia/cistpl.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 0f06abd38ef26007faf7602fd8e0454aa27d9dd8 Author: Laurent Navet Date: Mon Jan 21 22:16:06 2013 +0100 drivers: pcmcia: electra_cf.c fix checkpatch error and warnings fix these checkpatch errors and warning: - ERROR: "foo * bar" should be "foo *bar" - WARNING: please, no space before tabs - WARNING: sizeof *cf should be sizeof(*cf) - WARNING: space prohibited between function name and open parenthesis '('i Signed-off-by: Laurent Navet Signed-off-by: Dominik Brodowski drivers/pcmcia/electra_cf.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 46f533ccb80d32a08b391fc1c45860e46174b814 Author: Laurent Navet Date: Mon Jan 21 22:16:05 2013 +0100 drivers: pcmcia: ds.c fix checkpatch errors fix these checkpatch errors : - ERROR: spaces required around that '<' (ctx:VxW) - ERROR: "foo * bar" should be "foo *bar" - WARNING: please, no space before tabs Signed-off-by: Laurent Navet Signed-off-by: Dominik Brodowski drivers/pcmcia/ds.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) commit 221f7edb732d5b81d0b41b5c4811121e1c400064 Author: Robert P. J. Day Date: Wed Aug 29 10:40:04 2012 -0400 PCMCIA: Remove commented references to dead class_device_create_file() Since this routine doesn't even exist anymore, there's no point leaving in commented code using it. Signed-off-by: Robert P. J. Day Signed-off-by: Dominik Brodowski drivers/pcmcia/i82365.c | 7 ------- drivers/pcmcia/m32r_cfc.c | 7 ------- drivers/pcmcia/m32r_pcc.c | 7 ------- 3 files changed, 21 deletions(-) commit 801421eb7359f086e2b61d3125830bda7ddf5673 Author: Julia Lawall Date: Wed Apr 18 16:02:02 2012 +0200 drivers/pcmcia/electra_cf.c: add missing iounmap and kfree cf and cf->mem_base have been allocated at the point of this failure, so they should be freed before leaving the function. [linux@dominikbrodowski.net: limit call to device_init_wakeup() to the same error paths as before] Signed-off-by: Julia Lawall Signed-off-by: Dominik Brodowski drivers/pcmcia/electra_cf.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit e632cd94723e12083ee5d0c633f37ce504a54c2b Author: Jim Cromie Date: Tue Apr 10 18:56:49 2012 -0600 pcmcia: replace open-coded ARRAY_SIZE with macro Signed-off-by: Jim Cromie Signed-off-by: Dominik Brodowski drivers/pcmcia/i82365.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 704db8050d873b16ec781e69b2928dcc94049684 Author: Mauro Carvalho Chehab Date: Thu May 28 14:32:28 2015 -0300 [media] DocBook: some fixes at FE_GET_INFO There are a few issues at FE_GET_INFO documentation: - name is a string, not a pointer to a string; - the return text should be after the paragraph. While here, better to bold that two fields of the structure used by FE_GET_INFO are actually deprecated. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/fe-get-info.xml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 997eb9039df27dfd5b1901e26ebae09d5dbe6cff Author: Mauro Carvalho Chehab Date: Thu May 28 17:21:05 2015 -0300 [media] DocBook: Better document enum fe_modulation Instead of using programlisting, use a table, as this provides a better view of the structure. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/dvbproperty.xml | 91 +++++++++++++++++++------ Documentation/DocBook/media/dvb/frontend.xml | 26 ------- include/uapi/linux/dvb/frontend.h | 6 +- 3 files changed, 76 insertions(+), 47 deletions(-) commit 2c2bc8ff97d5bde9f2d131d8728facba4a2190e2 Author: Mauro Carvalho Chehab Date: Thu May 28 15:44:55 2015 -0300 [media] DocBook: add a proper description for dvb_frontend_info.fe_type The fe_type is deprecated at the DVB API. However, it may still be used by legacy DVBv3 applications. While this works with old devices, modern devices may support more than one delivery system. Add an explanation about that and a point to what should be used, instead, in order for legacy apps to support newer hardware. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/frontend_legacy_api.xml | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) commit be1ad6e76ecaabe586f5687057eaccd46e71c3b2 Author: Mauro Carvalho Chehab Date: Thu May 28 14:45:17 2015 -0300 [media] DocBook: Provide a high-level description for DVB frontend Instead of just showing ioctls, let's add an introdutory text briefly explaining the DVB frontend API. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/frontend.xml | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) commit d27518ca0c6a33ecc11b7172fb68eb730301a841 Author: Mauro Carvalho Chehab Date: Thu May 28 14:43:06 2015 -0300 [media] DocBook: fix FE_READ_STATUS argument description What's written there about the arguments for this ioctl is bogus: it doesn't return an enum (or a typedef) for enum fe_status. Instead, it returns a bitmask with the values defined by enum fe_status. Also, the size of the integer returned is not 16 bits, but, instead, sizeof(fe_status_t), e. g. sizeof(enum), with is arch-dependent. This should of course be fixed, but this should be done on a separate patch. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/fe-read-status.xml | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) commit b60da5b2037febd80e6ac680365eb828061c83df Author: Mauro Carvalho Chehab Date: Thu May 28 13:10:52 2015 -0300 [media] DocBook: better organize the function descriptions for frontend Move the function ioctl definitions to the end of the chapter, at their importance. That makes the document better organized, as the DVB frontend system call index will look like: open() close() ioctl FE_GET_INFO — Query DVB frontend capabilities and returns information about the front-end. This call only requires read-only access to the device ioctl FE_READ_STATUS — Returns status information about the front-end. This call only requires read-only access to the device ioctl FE_SET_PROPERTY, FE_GET_PROPERTY — FE_SET_PROPERTY sets one or more frontend properties. FE_GET_PROPERTY returns one or more frontend properties. ioctl FE_DISEQC_RESET_OVERLOAD — Restores the power to the antenna subsystem, if it was powered off due to power overload. ioctl FE_DISEQC_SEND_MASTER_CMD — Sends a DiSEqC command ioctl FE_DISEQC_RECV_SLAVE_REPLY — Receives reply from a DiSEqC 2.0 command ioctl FE_DISEQC_SEND_BURST — Sends a 22KHz tone burst for 2x1 mini DiSEqC satellite selection. ioctl FE_SET_TONE — Sets/resets the generation of the continuous 22kHz tone. ioctl FE_SET_VOLTAGE — Allow setting the DC level sent to the antenna subsystem. ioctl FE_ENABLE_HIGH_LNB_VOLTAGE — Select output DC level between normal LNBf voltages or higher LNBf voltages. ioctl FE_SET_FRONTEND_TUNE_MODE — Allow setting tuner mode flags to the frontend. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/dvbproperty.xml | 2 -- Documentation/DocBook/media/dvb/frontend.xml | 7 +++---- 2 files changed, 3 insertions(+), 6 deletions(-) commit 26b2574fbbff393cde9155d37fb8f958927b3758 Author: Mauro Carvalho Chehab Date: Thu May 28 13:10:38 2015 -0300 [media] DocBook: better document FE_DISEQC_RESET_OVERLOAD Use the new format for the ioctl documentation and put the struct dvb_diseqc_slave_reply together with the ioctl. Signed-off-by: Mauro Carvalho Chehab .../DocBook/media/dvb/fe-diseqc-reset-overload.xml | 51 ++++++++++++++++++++++ Documentation/DocBook/media/dvb/frontend.xml | 45 +------------------ 2 files changed, 52 insertions(+), 44 deletions(-) commit db2a4ee870cd2743c908673151444382e78c4e07 Author: Mauro Carvalho Chehab Date: Thu May 28 12:49:34 2015 -0300 [media] DocBook: better document FE_DISEQC_SEND_MASTER_CMD Use the new format for the ioctl documentation and put the struct dvb_diseqc_slave_reply together with the ioctl. Signed-off-by: Mauro Carvalho Chehab .../media/dvb/fe-diseqc-send-master-cmd.xml | 72 ++++++++++++++++++++++ Documentation/DocBook/media/dvb/frontend.xml | 63 +------------------ 2 files changed, 73 insertions(+), 62 deletions(-) commit 32b64436584b402e717450b041a31f1f00a7b107 Author: Mauro Carvalho Chehab Date: Thu May 28 12:37:00 2015 -0300 [media] DocBook: better document FE_DISEQC_RECV_SLAVE_REPLY Use the new format for the ioctl documentation and put the struct dvb_diseqc_slave_reply together with the ioctl. Signed-off-by: Mauro Carvalho Chehab .../media/dvb/fe-diseqc-recv-slave-reply.xml | 78 ++++++++++++++++++++++ Documentation/DocBook/media/dvb/frontend.xml | 64 +----------------- 2 files changed, 79 insertions(+), 63 deletions(-) commit 81959d996a3b6ea542ebffc7e394530f4638c6ca Author: Mauro Carvalho Chehab Date: Wed May 27 22:20:14 2015 -0300 [media] DocBook: better document FE_DISEQC_SEND_BURST ioctl Use the proper format for FE_DISEQC_SEND_BURST documentation and improve the documentation. Keep the enum fe_sec_mini_cmd description together with the ioctl, as both are used together. Signed-off-by: Mauro Carvalho Chehab .../DocBook/media/dvb/fe-diseqc-send-burst.xml | 86 ++++++++++++++++++++++ Documentation/DocBook/media/dvb/frontend.xml | 67 +---------------- include/uapi/linux/dvb/frontend.h | 6 +- 3 files changed, 91 insertions(+), 68 deletions(-) commit 6dc59e7a195fc8852e98d64805f44c46c35e40cd Author: Mauro Carvalho Chehab Date: Wed May 27 07:15:50 2015 -0300 [media] DocBook: better document FE_SET_TONE ioctl Use the proper format for FE_SET_TONE documentation and improve the documentation. Keep the enum fe_sec_tone_mode description together with the ioctl, as both are used together. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/fe-set-tone.xml | 88 +++++++++++++++++++++++++ Documentation/DocBook/media/dvb/frontend.xml | 61 +---------------- include/uapi/linux/dvb/frontend.h | 6 +- 3 files changed, 93 insertions(+), 62 deletions(-) commit d6b6d346e5605ee2af0f0349e71901121b984258 Author: Mauro Carvalho Chehab Date: Tue May 26 19:33:58 2015 -0300 [media] DocBook: better document FE_SET_VOLTAGE ioctl Use the proper format for FE_SET_VOLTAGE documentation and fix the documentation. The description for the enum is not 100%, and it is missing the voltage off value. Also, it is better to keep the enum description together with the ioctl, as both are used together. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/fe-set-voltage.xml | 94 ++++++++++++++++++++++ Documentation/DocBook/media/dvb/frontend.xml | 62 +------------- include/uapi/linux/dvb/frontend.h | 6 +- 3 files changed, 99 insertions(+), 63 deletions(-) commit 50f88f3da09de7e5303b6a22d012d59063141239 Author: Mauro Carvalho Chehab Date: Tue May 26 18:48:33 2015 -0300 [media] DocBook: reformat FE_ENABLE_HIGH_LNB_VOLTAGE ioctl Use the proper format for FE_ENABLE_HIGH_LNB_VOLTAGE documentation. Signed-off-by: Mauro Carvalho Chehab .../media/dvb/fe-enable-high-lnb-voltage.xml | 61 ++++++++++++++++++++++ Documentation/DocBook/media/dvb/frontend.xml | 50 +----------------- 2 files changed, 62 insertions(+), 49 deletions(-) commit 3d7f9c9b175c349df3051ecc852691562f2661c3 Author: Mauro Carvalho Chehab Date: Tue May 26 18:36:26 2015 -0300 [media] DocBook: reformat FE_SET_FRONTEND_TUNE_MODE ioctl Use the proper format for FE_SET_FRONTEND_TUNE_MODE documentation. Signed-off-by: Mauro Carvalho Chehab .../media/dvb/fe-set-frontend-tune-mode.xml | 64 ++++++++++++++++++++++ Documentation/DocBook/media/dvb/frontend.xml | 32 +---------- 2 files changed, 65 insertions(+), 31 deletions(-) commit 0f16290e6fade03dd5aefc9c734b5ad7226b7dfd Author: Mauro Carvalho Chehab Date: Tue May 26 18:15:26 2015 -0300 [media] DocBook: move FE_GET_PROPERTY to its own xml file That helps the xref logic at the Makefile to point to the right place. Also, it becomes more organized and easier to maintain if each ioctl have its own xml file. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/dvbproperty.xml | 84 +--------------------- .../DocBook/media/dvb/fe-get-property.xml | 81 +++++++++++++++++++++ 2 files changed, 83 insertions(+), 82 deletions(-) commit 09c3b4a0af0906c739e2cbe91f97e65d9b096020 Author: Mauro Carvalho Chehab Date: Tue May 26 18:10:43 2015 -0300 [media] DocBook: Rename ioctl xml files for the xml files describing ioctls, use the same nomenclature as on V4L2: the ioctl name, in lower case, using - instead of _. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/fe-get-info.xml | 265 +++++++++++++++++++++ Documentation/DocBook/media/dvb/fe-read-status.xml | 103 ++++++++ Documentation/DocBook/media/dvb/frontend.xml | 4 +- .../DocBook/media/dvb/frontend_get_info.xml | 265 --------------------- .../DocBook/media/dvb/frontend_read_status.xml | 103 -------- 5 files changed, 370 insertions(+), 370 deletions(-) commit 55d4423a2d0bb54386f3a4ee51dabffb5d2a3394 Author: Mauro Carvalho Chehab Date: Tue May 26 17:29:22 2015 -0300 [media] DocBook: Fix false positive undefined ioctl references The new code that detects undocumented ioctls hits some false positives: This one is not documented, nor it should, as this is there just to reserve namespace: Warning: can't find reference for VIDIOC_RESERVED ioctl But those are already documented together with other ioctls: Warning: can't find reference for VIDIOC_UNSUBSCRIBE_EVENT ioctl Warning: can't find reference for FE_GET_PROPERTY ioctl Warning: can't find reference for VIDIOC_SUBDEV_G_EDID ioctl Warning: can't find reference for VIDIOC_SUBDEV_S_EDID ioctl Warning: can't find reference for VIDIOC_SUBDEV_S_DV_TIMINGS ioctl Warning: can't find reference for VIDIOC_SUBDEV_G_DV_TIMINGS ioctl Warning: can't find reference for VIDIOC_SUBDEV_QUERY_DV_TIMINGS ioctl So, we need to just be sure to point to the right documentation. Signed-off-by: Mauro Carvalho Chehab Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/Makefile | 2 +- Documentation/DocBook/media/dvb/dvbproperty.xml | 3 ++- Documentation/DocBook/media/v4l/vidioc-g-dv-timings.xml | 4 +++- Documentation/DocBook/media/v4l/vidioc-g-edid.xml | 4 +++- Documentation/DocBook/media/v4l/vidioc-query-dv-timings.xml | 3 ++- Documentation/DocBook/media/v4l/vidioc-subscribe-event.xml | 3 ++- 6 files changed, 13 insertions(+), 6 deletions(-) commit 3246c385f3cb58974128835c070b2bdd85bd251d Author: Mauro Carvalho Chehab Date: Tue May 26 16:58:26 2015 -0300 [media] DocBook: remove duplicated ioctl from v4l2-subdev Those ioctls are already parsed. No need to explicitly add them. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/Makefile | 7 ------- 1 file changed, 7 deletions(-) commit 87e4d63748796bcc68128f7287925701bc53d6b3 Author: Mauro Carvalho Chehab Date: Tue May 26 12:42:08 2015 -0300 [media] DocBook: Improve xref check for undocumented ioctls There are several badly documented undocumented ioctls. Currently, it just generates an empty link. Instead of doing that, only add references to the ones that exists, and add a warning for all references that weren't found. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/Makefile | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit c569eb707a04772e763d3bfebb9713e93c8b9d61 Author: Mauro Carvalho Chehab Date: Tue May 26 11:35:44 2015 -0300 [media] DocBook: Add xref links for DTV propeties Create xref links for all DTV properties and link the frontend.h to each. Also use them at the DVB frontent API example. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/Makefile | 14 ++++++++++++++ Documentation/DocBook/media/dvb/dvbproperty.xml | 12 ++++++------ 2 files changed, 20 insertions(+), 6 deletions(-) commit e4aa18d33c3a05f9ac51a8c8c7863318c807650f Author: Mauro Carvalho Chehab Date: Tue May 26 11:04:14 2015 -0300 [media] DocBook: Improve the description of the properties API Make the text clearer about what the properties API does. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/dvbproperty.xml | 37 +++++++++++++++++++++---- 1 file changed, 32 insertions(+), 5 deletions(-) commit 277dfcb4e0641f006afd06ef1ce45be424423f37 Author: Mauro Carvalho Chehab Date: Tue May 26 10:28:05 2015 -0300 [media] DocBook: Merge FE_SET_PROPERTY/FE_GET_PROPERTY ioctl description Instead of having two refentries, merge them into just one, like what's done with other similar ioctls at V4L2 side. That makes the entry cleaner and will allow to add the associated structures together with the refentry. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/Makefile | 2 +- Documentation/DocBook/media/dvb/dvbproperty.xml | 100 +++++++-------------- .../DocBook/media/dvb/frontend_legacy_api.xml | 6 +- 3 files changed, 36 insertions(+), 72 deletions(-) commit c130d88b01dba55dcaaa350bff2df3b1776a7bdd Author: Mauro Carvalho Chehab Date: Tue May 26 09:03:55 2015 -0300 [media] DocBook: fix xref to the FE open() function Instead of going to the V4L2 open(), use the xref to the proper place at the frontend ioctls that were already reformatted. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/dvbproperty.xml | 4 ++-- Documentation/DocBook/media/dvb/frontend_get_info.xml | 2 +- Documentation/DocBook/media/dvb/frontend_read_status.xml | 2 +- Documentation/DocBook/media_api.tmpl | 1 + 4 files changed, 5 insertions(+), 4 deletions(-) commit ffec8bceacd605da2a7a273f9ab9c2fff68171e2 Author: Mauro Carvalho Chehab Date: Tue May 26 08:48:51 2015 -0300 [media] DocBook: rewrite FE_GET_PROPERTY/FE_SET_PROPERTY to use the std way Use the standard way of documenting ioctls for FE_GET_PROPERTY and FE_SET_PROPERTY. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/dvbproperty.xml | 214 +++++++++++++----------- 1 file changed, 118 insertions(+), 96 deletions(-) commit 56599d419660682804864e59f8909079a59418ce Author: Mauro Carvalho Chehab Date: Tue May 26 08:47:47 2015 -0300 [media] DocBook: move DVB properties to happen earlier at the document The DVBv5 API uses DVB properties as the main way to set the frontend and collect statistics. Move the definition to happen earlier, in order to reflect its importance. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/frontend.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5b233e1a91f31ec45feffb1ea6a33aae433259e9 Author: Mauro Carvalho Chehab Date: Tue May 26 08:17:53 2015 -0300 [media] DocBook: improve documentation for FE_READ_STATUS Move the ioctl and enum fe_status to a separate xml file and put it into a better format. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/frontend.xml | 119 ++------------------- .../DocBook/media/dvb/frontend_read_status.xml | 103 ++++++++++++++++++ 2 files changed, 113 insertions(+), 109 deletions(-) commit 002563e9914180a176da1ddfdc094bc4fa52db5a Author: Mauro Carvalho Chehab Date: Tue May 26 07:39:46 2015 -0300 [media] DocBook: move FE_GET_INFO to a separate xml file Keeping everything altogether makes harder to reorganize the DocBook. So, move the FE_GET_INFO ioctl and the associated structures into a separate file. No functional changes. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/frontend.xml | 266 +-------------------- .../DocBook/media/dvb/frontend_get_info.xml | 265 ++++++++++++++++++++ 2 files changed, 266 insertions(+), 265 deletions(-) commit bb38c5474e306380c5832625d2178f3005358655 Author: Mauro Carvalho Chehab Date: Mon May 25 22:56:03 2015 -0300 [media] DocBook: reformat FE_GET_INFO ioctl documentation The DVB part of the docbook has a completely different format than the V4L2 part, as it was written as a separate document. As the V4L2 documentation is on better shape, and its format allows adding more information, let's use it for FE_GET_INFO and gradually update the non-legacy DVB ioctls using the new format. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/frontend.xml | 374 +++++++++++++++++++-------- 1 file changed, 267 insertions(+), 107 deletions(-) commit 97f411d9175f018503e67e7552f92bc28844001b Author: Mauro Carvalho Chehab Date: Tue May 26 07:34:21 2015 -0300 [media] dvb: split enum from typedefs at frontend.h Using typedefs is already bad enough, but doing it together with enum declaration is even worse. Also, it breaks the scripts at DocBook that would be generating reference pointers for the enums. Well, we can't get rid of typedef right now, but let's at least declare it on a separate line, and let the scripts to generate the cross-reference, as this is needed for the next DocBook patches. Signed-off-by: Mauro Carvalho Chehab include/uapi/linux/dvb/frontend.h | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit a8d3e4b4d9298bdc36934a0b49a7d540d8eaf8f9 Author: Mauro Carvalho Chehab Date: Mon May 25 16:44:40 2015 -0300 [media] DocBook: move DVBv3 frontend bits to a separate section Although the recommended usage is the DVBv5 API calls, the documentation doesn't make it clear about what's the recommended calls and what's legacy. So, move the legacy API bits to a separate xml, putting them into a new section. Please notice that more changes are needed, since some of the bits there are cross-referenced elsewhere. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/frontend.xml | 605 +-------------------- .../DocBook/media/dvb/frontend_legacy_api.xml | 603 ++++++++++++++++++++ 2 files changed, 618 insertions(+), 590 deletions(-) commit ee072ed7e3acaa2e09051535cbed5ce7a9247879 Author: Mauro Carvalho Chehab Date: Mon May 25 14:24:38 2015 -0300 [media] DocBook: Improve DVB frontend description The DVB frontend API got bitrotten. Update it. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/frontend.xml | 46 ++++++++++++++++++---------- 1 file changed, 29 insertions(+), 17 deletions(-) commit 0b0f1a00564ebc76c9b070236fb182b133ba254e Author: Mauro Carvalho Chehab Date: Mon May 25 14:31:02 2015 -0300 [media] DocBook: fix emphasis at the DVB documentation Currently, it is using 'role="tt"', but this is not defined at the DocBook 4.5 spec. The net result is that no emphasis happens. So, replace them to bold emphasis. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/audio.xml | 6 +++--- Documentation/DocBook/media/dvb/ca.xml | 4 ++-- Documentation/DocBook/media/dvb/demux.xml | 10 +++++----- Documentation/DocBook/media/dvb/frontend.xml | 4 ++-- Documentation/DocBook/media/dvb/intro.xml | 26 +++++++++++++------------- Documentation/DocBook/media/dvb/kdapi.xml | 4 ++-- Documentation/DocBook/media/dvb/net.xml | 4 ++-- Documentation/DocBook/media/dvb/video.xml | 10 +++++----- 8 files changed, 34 insertions(+), 34 deletions(-) commit a1ef3eeabe5278ecbe758ba09d4605b64897c533 Author: Mauro Carvalho Chehab Date: Mon May 25 13:40:28 2015 -0300 [media] DocBook: add drawing with a typical media device An illustration of what's considered a typical media device may help people to better understand the contents of the media infrastructure API docbook. So, add it. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/.gitignore | 1 + Documentation/DocBook/media/Makefile | 2 +- .../DocBook/media/typical_media_device.svg | 28 ++++++++++++++++++++++ Documentation/DocBook/media_api.tmpl | 16 ++++++++++++- 4 files changed, 45 insertions(+), 2 deletions(-) commit 9f67bc5203fa327378a22d37a62c4ef26d861f15 Author: Mauro Carvalho Chehab Date: Mon May 25 13:39:48 2015 -0300 [media] DocBook: add a note about the ALSA API The Docbook mistakenly makes to believe that all needed APIs for media devices are there. Add a note there pointing that some sub-devices are actually be controlled via ALSA API. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media_api.tmpl | 3 +++ 1 file changed, 3 insertions(+) commit 39b9ce2c6c25c5aeb39d0502e714924333a8007a Author: Mauro Carvalho Chehab Date: Mon May 25 13:38:01 2015 -0300 [media] DocBook: Update DVB supported standards at introduction The list of standards at the media docbook is incomplete, and it is mentioning that the DVB-S2 & friends is "currently being updated". That's wrong, as such update occurred back in 2008. So, provide a more complete list of supported standards and add a reference to the actual list. Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media_api.tmpl | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit bf8de2d38a4ba82a69db221915375199c9e5d761 Author: Jemma Denson Date: Wed May 20 11:57:49 2015 -0300 [media] cx24120: Assume ucb registers is a counter The ucblocks register is probably a counter and not a rate; assume it is so and change the calculations as required. Signed-off-by: Jemma Denson Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/cx24120.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit e86d69dd786e94046b8f5be7df1b9a8226a40b2a Author: Anda-Maria Nicolae Date: Fri May 29 17:25:45 2015 +0300 power_supply: Add support for Richtek RT9455 battery charger Based on the datasheet found here: http://www.richtek.com/download_ds.jsp?p=RT9455 Signed-off-by: Anda-Maria Nicolae Reviewed-by: Krzysztof Kozlowski Signed-off-by: Sebastian Reichel drivers/power/Kconfig | 7 + drivers/power/Makefile | 1 + drivers/power/rt9455_charger.c | 1751 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 1759 insertions(+) commit 21472a54a1243fe92161b5b70123dd442da3b4be Author: Anda-Maria Nicolae Date: Fri May 29 17:25:44 2015 +0300 Documentation: devicetree: Add Richtek RT9455 bindings Signed-off-by: Anda-Maria Nicolae Reviewed-by: Krzysztof Kozlowski [added default values to optional properties] Signed-off-by: Sebastian Reichel .../devicetree/bindings/power/rt9455_charger.txt | 48 ++++++++++++++++++++++ 1 file changed, 48 insertions(+) commit eb82b9062bfe1fb63917d122790f2de607b4b6eb Author: Anda-Maria Nicolae Date: Fri May 29 17:25:43 2015 +0300 of: Add vendor prefix for Richtek Technology Corporation Signed-off-by: Anda-Maria Nicolae Reviewed-by: Krzysztof Kozlowski Signed-off-by: Sebastian Reichel Documentation/devicetree/bindings/vendor-prefixes.txt | 1 + 1 file changed, 1 insertion(+) commit 47b98c74fab2d05fd724a6d9fd0efc8987ae3911 Author: Herton R. Krzesinski Date: Sat May 30 02:21:31 2015 +0200 cpupower: mperf monitor: fix output in MAX_FREQ_SYSFS mode There is clearly wrong output when mperf monitor runs in MAX_FREQ_SYSFS mode: average frequency shows in kHz unit (despite the intended output to be in MHz), and percentages for C state information are all wrong (including high/negative values shown). The problem is that the max_frequency read on initialization isn't used where it should have been used on mperf_get_count_percent (to estimate the number of ticks in the given time period), and the value we read from sysfs is in kHz, so we must divide it to get the MHz value to use in current calculations. While at it, also I fixed another small issues in the debug output of max_frequency value in mperf_get_count_freq. Signed-off-by: Herton R. Krzesinski Acked-by: Thomas Renninger Signed-off-by: Rafael J. Wysocki tools/power/cpupower/utils/idle_monitor/mperf_monitor.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit db874c7e10557f8f1af9a6fb1ec6589ae06f349c Author: Tony Lindgren Date: Fri May 29 09:54:02 2015 -0700 PM / wakeirq: Fix typo in prototype for dev_pm_set_dedicated_wake_irq Looks like I only built test the dev_pm_set_wake_irq and not the dev_pm_set_dedicated_wake_irq case on x86. Turns out there's a typo for the dev_pm_set_dedicated_wake_irq prototype that causes a build error if CONFIG_COMPILE_TEST and CONFIG_MMC_OMAP_HS are selected. Reported-by: Jim Davis Signed-off-by: Tony Lindgren Reviewed-by: Felipe Balbi Signed-off-by: Rafael J. Wysocki include/linux/pm_wakeirq.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 7d51d97925e6cbfa2f7f14e3e3aa363b35ee5c24 Author: Rafael J. Wysocki Date: Thu May 28 04:09:24 2015 +0200 cpuidle: Do not use CPUIDLE_DRIVER_STATE_START in cpuidle.c The CPUIDLE_DRIVER_STATE_START symbol is defined as 1 only if CONFIG_ARCH_HAS_CPU_RELAX is set, otherwise it is defined as 0. However, if CONFIG_ARCH_HAS_CPU_RELAX is set, the first (index 0) entry in the cpuidle driver's table of states is overwritten with the default "poll" entry by the core. The "state" defined by the "poll" entry doesn't provide ->enter_dead and ->enter_freeze callbacks and its exit_latency is 0. For this reason, it is not necessary to use CPUIDLE_DRIVER_STATE_START in cpuidle_play_dead() (->enter_dead is NULL, so the "poll state" will be skipped by the loop). It also is arguably unuseful to return states with exit_latency equal to 0 from find_deepest_state(), so the function can be modified to start the loop from index 0 and the "poll state" will be skipped by it as a result of the check against latency_req. Signed-off-by: Rafael J. Wysocki Reviewed-by: Preeti U Murthy drivers/cpuidle/cpuidle.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 3a9ad0b4fdcd57f775d3615004c8c64c021a9e7d Author: Yinghai Lu Date: Wed May 27 17:23:51 2015 -0700 PCI: Add pci_bus_addr_t David Ahern reported that d63e2e1f3df9 ("sparc/PCI: Clip bridge windows to fit in upstream windows") fails to boot on sparc/T5-8: pci 0000:06:00.0: reg 0x184: can't handle BAR above 4GB (bus address 0x110204000) The problem is that sparc64 assumed that dma_addr_t only needed to hold DMA addresses, i.e., bus addresses returned via the DMA API (dma_map_single(), etc.), while the PCI core assumed dma_addr_t could hold *any* bus address, including raw BAR values. On sparc64, all DMA addresses fit in 32 bits, so dma_addr_t is a 32-bit type. However, BAR values can be 64 bits wide, so they don't fit in a dma_addr_t. d63e2e1f3df9 added new checking that tripped over this mismatch. Add pci_bus_addr_t, which is wide enough to hold any PCI bus address, including both raw BAR values and DMA addresses. This will be 64 bits on 64-bit platforms and on platforms with a 64-bit dma_addr_t. Then dma_addr_t only needs to be wide enough to hold addresses from the DMA API. [bhelgaas: changelog, bugzilla, Kconfig to ensure pci_bus_addr_t is at least as wide as dma_addr_t, documentation] Fixes: d63e2e1f3df9 ("sparc/PCI: Clip bridge windows to fit in upstream windows") Fixes: 23b13bc76f35 ("PCI: Fail safely if we can't handle BARs larger than 4GB") Link: http://lkml.kernel.org/r/CAE9FiQU1gJY1LYrxs+ma5LCTEEe4xmtjRG0aXJ9K_Tsu+m9Wuw@mail.gmail.com Link: http://lkml.kernel.org/r/1427857069-6789-1-git-send-email-yinghai@kernel.org Link: https://bugzilla.kernel.org/show_bug.cgi?id=96231 Reported-by: David Ahern Tested-by: David Ahern Signed-off-by: Yinghai Lu Signed-off-by: Bjorn Helgaas Acked-by: David S. Miller CC: stable@vger.kernel.org # v3.19+ Documentation/DMA-API-HOWTO.txt | 29 +++++++++++++++++------------ Documentation/DMA-API.txt | 30 +++++++++++++++--------------- drivers/pci/Kconfig | 4 ++++ drivers/pci/bus.c | 10 +++++----- drivers/pci/probe.c | 12 ++++++------ include/linux/pci.h | 12 +++++++++--- include/linux/types.h | 12 ++++++++++-- 7 files changed, 66 insertions(+), 43 deletions(-) commit 19bdb6e4ec071bc49a9871b41e6a59a1657ed365 Author: Alex Williamson Date: Tue May 26 15:11:44 2015 -0600 PCI: Move pci_ari_enabled() to global header pci_ari_enabled() is useful outside of drivers/pci, particularly for deriving INTx routing via ACPI _PRT, so move it to the global header. Also convert to bool return. Signed-off-by: Alex Williamson Signed-off-by: Bjorn Helgaas Reviewed-by: Don Dutile Acked-by: Rafael J. Wysocki drivers/pci/pci.h | 11 ----------- include/linux/pci.h | 11 +++++++++++ 2 files changed, 11 insertions(+), 11 deletions(-) commit b35d2e561ea711626749fcb511637f0e4604ff18 Author: Gregory Fong Date: Thu May 28 19:14:10 2015 -0700 ARM: brcmstb: Add default gpio number Out of the brcmstb SoCs that I know, BCM3390 has the largest numbers of GPIOs, with its - 320 "peripheral" GPIOs - 5*32 = 160 UPG GPIOs (counting unused lines, which do get counted) - 2*32 = 64 UPG AON GPIOs (counting unused lines) Total: 544 I suspect that the upper limit will only need to be higher in the future, so set it to 1024. Signed-off-by: Gregory Fong Signed-off-by: Florian Fainelli arch/arm/Kconfig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 8820949d21eab614c02419e79385e16f1429b0e7 Author: Gregory Fong Date: Thu May 28 19:14:09 2015 -0700 ARM: brcmstb: Select ARCH_WANT_OPTIONAL_GPIOLIB Select ARCH_WANT_OPTIONAL_GPIOLIB from BRCMSTB to allow GPIOLIB and GPIO_BRCMSTB to be enabled. Signed-off-by: Gregory Fong Signed-off-by: Florian Fainelli arch/arm/mach-bcm/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 777e61ea40e4a94081b3123c76ea3fe977c368a2 Author: Yijing Wang Date: Thu May 21 15:05:04 2015 +0800 PCI: Use dev->has_secondary_link to find downstream PCIe links Previously we assumed that PCIe Root Ports and Downstream Ports had Links on their secondary side. That is true in most systems, but it is possible to connect a switch with either an Upstream or a Downstream Port leading downstream. Instead of relying on the component type to identify devices that have links leading downstream, use the "dev->has_secondary_link" field. [bhelgaas: changelog] Signed-off-by: Yijing Wang Signed-off-by: Bjorn Helgaas drivers/pci/pcie/aer/aerdrv_core.c | 3 +-- drivers/pci/probe.c | 2 +- drivers/pci/vc.c | 3 +-- 3 files changed, 3 insertions(+), 5 deletions(-) commit 5c1390c9ffdaeb9f7e544cea3a1699a341cad1fb Author: Mikhail Klementyev Date: Mon May 25 23:20:38 2015 +0300 audit: obsolete audit_context check is removed in audit_filter_rules() Signed-off-by: Mikhail Klementyev [PM: patch applied by hand due to HTML mangling, rewrote subject line] Signed-off-by: Paul Moore kernel/auditsc.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit cc14c5a80874cc5c5c7758c2f9f8c3153bbe645c Author: Borislav Petkov Date: Fri May 29 22:01:00 2015 +0200 EDAC, edac_stub: Drop arch-specific include contains only the arch-specific scrubbing function and is thus not needed in edac_stub.c. Kill it. Signed-off-by: Borislav Petkov drivers/edac/edac_stub.c | 1 - 1 file changed, 1 deletion(-) commit 2201196479748b84e5526b2f81112fe2d0aaa37a Author: Shailendra Verma Date: Sat May 23 10:40:27 2015 +0530 audit: fix for typo in comment to function audit_log_link_denied() Signed-off-by: Shailendra Verma [PM: tweaked subject line] Signed-off-by: Paul Moore kernel/audit.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e548ca4ee4595f65b262661d166310ad8a149bec Author: Jens Axboe Date: Fri May 29 13:11:32 2015 -0600 block: don't honor chunk sizes for data-less IO We don't need to honor chunk sizes for IO that doesn't carry any data. Signed-off-by: Jens Axboe include/linux/blkdev.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit beefa6ba7bf304d3de3a02cb7366fb0a7d6b27ab Author: Jens Axboe Date: Fri May 29 13:10:23 2015 -0600 block: only honor SG gap prevention for merges that contain data We can safely merge anything that wont generate an SG list entry, so if the bio is data-less (discard), don't look at potential SG gaps. Signed-off-by: Jens Axboe block/blk-merge.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 5c5bc97e2fc819112ece40e7d433039d6df8f7ba Author: Richard Guy Briggs Date: Wed Apr 15 14:08:25 2015 -0400 lsm: rename duplicate labels in LSM_AUDIT_DATA_TASK audit message type The LSM_AUDIT_DATA_TASK pid= and comm= labels are duplicates of those at the start of this function with different values. Rename them to their object counterparts opid= and ocomm= to disambiguate. Signed-off-by: Richard Guy Briggs [PM: minor merging needed due to differences in the tree] Signed-off-by: Paul Moore security/lsm_audit.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 40775257b97e27305cf5c2425be7acaa6edee4ea Author: Joe Thornber Date: Fri May 15 15:29:58 2015 +0100 dm cache: boost promotion of blocks that will be overwritten When considering whether to move a block to the cache we already give preferential treatment to discarded blocks, since they are cheap to promote (no read of the origin required since the data is junk). The same is true of blocks that are about to be completely overwritten, so we likewise boost their promotion chances. Signed-off-by: Joe Thornber Signed-off-by: Mike Snitzer drivers/md/dm-cache-target.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 651f5fa2a3959ff5db60c09a84efd66309fe4035 Author: Joe Thornber Date: Fri May 15 15:26:08 2015 +0100 dm cache: defer whole cells Currently individual bios are deferred to the worker thread if they cannot be processed immediately (eg, a block is in the process of being moved to the fast device). This patch passes whole cells across to the worker. This saves reaquiring the cell, and also collects bios destined for the same block together, which allows them to be mapped with a single look up to the policy. This reduces the overhead of using dm-cache. Signed-off-by: Joe Thornber Signed-off-by: Mike Snitzer drivers/md/dm-cache-target.c | 325 ++++++++++++++++++++++++++++++++++--------- 1 file changed, 262 insertions(+), 63 deletions(-) commit 3cdf93f9d85979b22b6abfd4ab19350860e4dfac Author: Joe Thornber Date: Fri May 15 15:23:35 2015 +0100 dm bio prison: add dm_cell_promote_or_release() Rather than always releasing the prisoners in a cell, the client may want to promote one of them to be the new holder. There is a race here though between releasing an empty cell, and other threads adding new inmates. So this function makes the decision with its lock held. This function can have two outcomes: i) An inmate is promoted to be the holder of the cell (return value of 0). ii) The cell has no inmate for promotion and is released (return value of 1). Signed-off-by: Joe Thornber Signed-off-by: Mike Snitzer drivers/md/dm-bio-prison.c | 26 ++++++++++++++++++++++++++ drivers/md/dm-bio-prison.h | 13 +++++++++++++ 2 files changed, 39 insertions(+) commit 451b9e0071b2833744db7f518115bc085bc7b23c Author: Joe Thornber Date: Fri May 15 15:22:02 2015 +0100 dm cache: pull out some bitset utility functions for reuse Signed-off-by: Joe Thornber Signed-off-by: Mike Snitzer drivers/md/dm-cache-policy-internal.h | 28 ++++++++++++++++++++++++++++ drivers/md/dm-cache-target.c | 24 ------------------------ 2 files changed, 28 insertions(+), 24 deletions(-) commit 20f6814b94fff4a98b123f1c2b691e936be27aaf Author: Joe Thornber Date: Fri May 15 15:20:09 2015 +0100 dm cache: pass a new 'critical' flag to the policies when requesting writeback work We only allow non critical writeback if the origin is idle. It is up to the policy to decide what writeback work is critical. Signed-off-by: Joe Thornber Signed-off-by: Mike Snitzer drivers/md/dm-cache-policy-cleaner.c | 3 ++- drivers/md/dm-cache-policy-internal.h | 5 +++-- drivers/md/dm-cache-policy-mq.c | 2 +- drivers/md/dm-cache-policy.h | 7 +++++-- drivers/md/dm-cache-target.c | 3 ++- 5 files changed, 13 insertions(+), 7 deletions(-) commit 066dbaa386c751164c39ab025e5e8803b4a4d691 Author: Joe Thornber Date: Fri May 15 15:18:01 2015 +0100 dm cache: track IO to the origin device using io_tracker Signed-off-by: Joe Thornber Signed-off-by: Mike Snitzer drivers/md/dm-cache-target.c | 56 ++++++++++++++++++++++++++++++++++++++------ 1 file changed, 49 insertions(+), 7 deletions(-) commit 77289d32073c4eac57fcca2abe6caefc6f3dc7d6 Author: Joe Thornber Date: Fri May 15 13:45:30 2015 +0100 dm cache: add io_tracker A little class that keeps track of the volume of io that is in flight, and the length of time that a device has been idle for. FIXME: rather than jiffes, may be best to use ktime_t (to support faster devices). Signed-off-by: Joe Thornber Signed-off-by: Mike Snitzer drivers/md/dm-cache-target.c | 73 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) commit fb4100ae7f312c3d614b37621c2b17b3b7cf65f8 Author: Joe Thornber Date: Wed May 20 10:30:32 2015 +0100 dm cache: fix race when issuing a POLICY_REPLACE operation There is a race between a policy deciding to replace a cache entry, the core target writing back any dirty data from this block, and other IO threads doing IO to the same block. This sort of problem is avoided most of the time by the core target grabbing a bio prison cell before making the request to the policy. But for a demotion the core target doesn't know which block will be demoted, so can't do this in advance. Fix this demotion race by introducing a callback to the policy interface that allows the policy to grab the cell on behalf of the core target. Signed-off-by: Joe Thornber Signed-off-by: Mike Snitzer Cc: stable@vger.kernel.org drivers/md/dm-cache-policy-cleaner.c | 3 +- drivers/md/dm-cache-policy-internal.h | 5 +-- drivers/md/dm-cache-policy-mq.c | 41 +++++++++++++++++-------- drivers/md/dm-cache-policy.h | 15 ++++++++- drivers/md/dm-cache-target.c | 58 +++++++++++++++++++++++------------ 5 files changed, 85 insertions(+), 37 deletions(-) commit 5c9b9bc67c684e40b3a5e7e9facde0fb7200cd8c Merge: f1942b9 ed42691 Author: Ingo Molnar Date: Fri May 29 20:19: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: - Make Ctrl-C stop processing on TUI, allowing interrupting the load of big perf.data files (Namhyung Kim) - Fix 'perf annotate' -i option, which is currently ignored (Martin Liška) - Add ARM64 perf_regs_load to support libunwind and enable testing (Wang Nan) Infrastructure changes: - Fix thread ref-counting in db-export (Adrian Hunter) - Fix compiler warning about may be accessing uninitialized (Arnaldo Carvalho de Melo) - No need to have two lists for user and kernel DSOs, unify them (Arnaldo Carvalho de Melo) - Function namespace consistency fixups (Arnaldo Carvalho de Melo) - Do not fail on missing Build file, fixing the build on MIPS (Jiri Olsa) - Fix up syscall tests, making those tests pass on ARM64 (Riku Voipio) - Fix 'function unused' warning in 'perf probe' (Wang Nan) Signed-off-by: Arnaldo Carvalho de Melo commit 54cea3f6681ad9360814e2926d1f723bbd0f74ed Author: Milan Broz Date: Fri May 15 17:00:25 2015 +0200 dm crypt: add comments to better describe crypto processing logic A crypto driver can process requests synchronously or asynchronously and can use an internal driver queue to backlog requests. Add some comments to clarify internal logic and completion return codes. Signed-off-by: Milan Broz Signed-off-by: Mike Snitzer drivers/md/dm-crypt.c | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) commit ed63287dd670f8e9d2412a913de7fdc50a689831 Author: Lidong Zhong Date: Wed May 13 14:04:10 2015 +0800 dm raid1: keep issuing IO after leg failure Currently if there is a leg failure, the bio will be put into the hold list until userspace does a remove/replace on the leg. Doing so in a cluster config (clvmd) is problematic because there may be a temporary path failure that results in cluster raid1 remove/replace. Such recovery takes a long time due to a full resync. Update dm-raid1 to optionally ignore these failures so bios continue being issued without interrupton. To enable this feature userspace must pass "keep_log" when creating the dm-raid1 device. Signed-off-by: Lidong Zhong Tested-by: Liuhua Wang Acked-by: Heinz Mauelshagen Signed-off-by: Mike Snitzer drivers/md/dm-raid1.c | 75 +++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 58 insertions(+), 17 deletions(-) commit f4ad317aedf836e7bb67108a119bfec7f3d97ef1 Author: Geert Uytterhoeven Date: Sun Apr 19 00:07:30 2015 +0200 dm log writes: use ULL suffix for 64-bit constants On 32-bit: drivers/md/dm-log-writes.c: In function ‘log_super’: drivers/md/dm-log-writes.c:323: warning: integer constant is too large for ‘long’ type Add a ULL suffix to WRITE_LOG_MAGIC to fix this. Also add a ULL suffix to WRITE_LOG_VERSION as it's stored in a __le64 field. Signed-off-by: Geert Uytterhoeven Signed-off-by: Mike Snitzer drivers/md/dm-log-writes.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e223e1de4f8a586662c4917f6f673126574960dd Author: Luis Henriques Date: Mon Apr 27 21:29:36 2015 +0100 dm stripe: drop useless exit point from dm_stripe_init() Signed-off-by: Luis Henriques Signed-off-by: Mike Snitzer drivers/md/dm-stripe.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 0cf4503174c12025ac7ea61048cb7c1d4d1ed85c Author: Heinz Mauelshagen Date: Wed Apr 29 14:03:04 2015 +0200 dm raid: add support for the MD RAID0 personality Add dm-raid access to the MD RAID0 personality to enable single zone striping. The following changes enable that access: - add type definition to raid_types array - make bitmap creation conditonal in super_validate(), because bitmaps are not allowed in raid0 - set rdev->sectors to the data image size in super_validate() to allow the raid0 personality to calculate the MD array size properly - use mdddev(un)lock() functions instead of direct mutex_(un)lock() (wrapped in here because it's a trivial change) - enhance raid_status() to always report full sync for raid0 so that userspace checks for 100% sync will succeed and allow for resize (and takeover/reshape once added in future paches) - enhance raid_resume() to not load bitmap in case of raid0 - add merge function to avoid data corruption (seen with readahead) that resulted from bio payloads that grew too large. This problem did not occur with the other raid levels because it either did not apply without striping (raid1) or was avoided via stripe caching. - raise version to 1.7.0 because of the raid0 API change Signed-off-by: Heinz Mauelshagen Reviewed-by: Jonathan Brassow Signed-off-by: Mike Snitzer Documentation/device-mapper/dm-raid.txt | 1 + drivers/md/dm-raid.c | 132 ++++++++++++++++++++------------ 2 files changed, 85 insertions(+), 48 deletions(-) commit c76d53f43ec4f9b9f200f031d303f21bdf6927d0 Author: Heinz Mauelshagen Date: Wed Apr 29 14:03:00 2015 +0200 dm raid: a few cleanups - ensure maximum device limit in superblock - rename DMPF_* (print flags) to CTR_FLAG_* (constructor flags) and their respective struct raid_set member - use strcasecmp() in raid10_format_to_md_layout() as in the constructor Signed-off-by: Heinz Mauelshagen Reviewed-by: Jonathan Brassow Signed-off-by: Mike Snitzer drivers/md/dm-raid.c | 91 ++++++++++++++++++++++++++-------------------------- 1 file changed, 46 insertions(+), 45 deletions(-) commit 0f4106b32f36165a4f40b6aad0372e02ff14cf34 Author: Heinz Mauelshagen Date: Wed Apr 29 14:03:07 2015 +0200 dm raid: fixup documentation for discard support Remove comment above parse_raid_params() that claims "devices_handle_discard_safely" is a table line argument when it is actually is a module parameter. Also, backfill dm-raid target version 1.6.0 documentation. Signed-off-by: Heinz Mauelshagen Reviewed-by: Jonathan Brassow Signed-off-by: Mike Snitzer Documentation/device-mapper/dm-raid.txt | 1 + drivers/md/dm-raid.c | 2 -- 2 files changed, 1 insertion(+), 2 deletions(-) commit 49f154c7327139c275c9392b5fd69cad82f106bc Author: Mike Snitzer Date: Thu Apr 23 15:06:27 2015 -0400 dm thin metadata: remove in-core 'read_only' flag Leverage the block manager's read_only flag instead of duplicating it; access with new dm_bm_is_read_only() method. Signed-off-by: Mike Snitzer drivers/md/dm-thin-metadata.c | 6 +----- drivers/md/persistent-data/dm-block-manager.c | 6 ++++++ drivers/md/persistent-data/dm-block-manager.h | 1 + 3 files changed, 8 insertions(+), 5 deletions(-) commit f8ae75253e4174089ffe3046715c679183f1919f Author: Mike Snitzer Date: Thu May 14 11:28:37 2015 -0400 dm thin: cleanup schedule_zero() to read more logically The overwrite has only ever about optimizing away the need to zero a block if the entire block was being overwritten. As such it is only relevant when zeroing is enabled. Signed-off-by: Mike Snitzer Signed-off-by: Joe Thornber drivers/md/dm-thin.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) commit 8b908f8e94540296de95682640281a95ee5d320c Author: Mike Snitzer Date: Wed May 13 17:53:13 2015 -0400 dm thin: cleanup overwrite's endio restore to be centralized Signed-off-by: Mike Snitzer drivers/md/dm-thin.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) commit 0f20972f7bf6922df49ef7ce7a6df802347d2c52 Author: Mike Snitzer Date: Tue Apr 28 11:50:29 2015 -0400 dm: factor out a common cleanup_mapped_device() Introduce a single common method for cleaning up a DM device's mapped_device. No functional change, just eliminates duplication of delicate mapped_device cleanup code. Signed-off-by: Mike Snitzer drivers/md/dm.c | 78 +++++++++++++++++++++++++++++++-------------------------- 1 file changed, 43 insertions(+), 35 deletions(-) commit 2d76fff18fd12284493456b01c998e540b140c23 Author: Mike Snitzer Date: Wed Apr 29 12:07:12 2015 -0400 dm: cleanup methods that requeue requests More often than not a request that is requeued _is_ mapped (meaning the clone request is allocated and clone->q is initialized). Rename dm_requeue_unmapped_original_request() to avoid potential confusion due to function name containing "unmapped". Also, remove dm_requeue_unmapped_request() since callers can easily call the dm_requeue_original_request() directly. Reviewed-by: Christoph Hellwig Signed-off-by: Mike Snitzer drivers/md/dm.c | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) commit cbc4e3c1350beb47beab8f34ad9be3d34a20c705 Author: Mike Snitzer Date: Mon Apr 27 16:37:50 2015 -0400 dm: do not allocate any mempools for blk-mq request-based DM Do not allocate the io_pool mempool for blk-mq request-based DM (DM_TYPE_MQ_REQUEST_BASED) in dm_alloc_rq_mempools(). Also refine __bind_mempools() to have more precise awareness of which mempools each type of DM device uses -- avoids mempool churn when reloading DM tables (particularly for DM_TYPE_REQUEST_BASED). Signed-off-by: Mike Snitzer drivers/md/dm-table.c | 4 +-- drivers/md/dm.c | 69 ++++++++++++++++++++++++++++----------------------- 2 files changed, 40 insertions(+), 33 deletions(-) commit 183f7802e73e26206558864d1b67e64382257277 Merge: 1c220c6 f6454b0 Author: Mike Snitzer Date: Fri May 29 14:17:16 2015 -0400 Merge remote-tracking branch 'jens/for-4.2/core' into dm-4.2 commit b832a055fc4e8f5191415b274d3b7a5895e8162e Author: Tony Lindgren Date: Fri May 29 10:10:23 2015 -0700 ARM: omap2plus_defconfig: Add dm816x USB PHY as a loadable module This is needed for USB on dm816x-evm. Cc: Bin Liu Cc: Brian Hutchinson Cc: George Cherian Acked-by: Felipe Balbi Signed-off-by: Tony Lindgren arch/arm/configs/omap2plus_defconfig | 1 + 1 file changed, 1 insertion(+) commit 501fd70fcaebc911b6b96a7b331e6960e5af67e7 Author: Michel Thierry Date: Fri May 29 14:15:05 2015 +0100 drm/i915: limit PPGTT size to 2GB in 32-bit platforms We already set this limit for the GGTT. This is a temporary patch until a full replacement of size_t variables (inadequate in 32-bit kernel) is in place. Regression from: commit a4e0bedca678c81eea4cd79a4bd502335639f73a Author: Michel Thierry Date: Wed Apr 8 12:13:35 2015 +0100 drm/i915: Use complete address space in true PPGTT v2: Prettify code and explain why this is needed. (Chris) v3: Don't hide the compilation warning in 32-bit. (Chris) Suggested-by: Daniel Vetter Cc: Mika Kuoppala Cc: Chris Wilson Signed-off-by: Michel Thierry Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 92fb4d0c024873b239efcbf5c09b5161348ca050 Author: Anthoine Bourgeois Date: Wed May 27 22:00:14 2015 +0200 ARM: omap2plus_defconifg: Enable DM9000 in omap2plus_defconfig This ethernet device is used on devkit8000 board. Signed-off-by: Anthoine Bourgeois Signed-off-by: Tony Lindgren arch/arm/configs/omap2plus_defconfig | 1 + 1 file changed, 1 insertion(+) commit 75619bfa904d0f2840b4274eb92ce47b2e1c472e Author: Keith Busch Date: Thu May 28 09:48:55 2015 -0600 NVMe: End sync requests immediately on failure Do not retry failed sync commands so the original status may be seen without issuing unnecessary retries. Signed-off-by: Keith Busch Signed-off-by: Jens Axboe drivers/block/nvme-core.c | 1 + 1 file changed, 1 insertion(+) commit f4ff414aeb472397d3b4fc15c22ca65bab219ec8 Author: Keith Busch Date: Thu May 28 09:48:54 2015 -0600 NVMe: Use requested sync command timeout Signed-off-by: Keith Busch Signed-off-by: Jens Axboe drivers/block/nvme-core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ed426915900db3c58c410b8b38f6ff0e46bf6c96 Author: Namhyung Kim Date: Fri May 29 21:53:44 2015 +0900 perf tools: Make Ctrl-C stop processing on TUI It was inconvenient that perf cannot be quit with SIGINT during processing samples on TUI especially for large data files. This was because the first argument of SLang_init_tty(), abort_char, being 0. The manual says it's the ascii value of the control character that will be used to generate the interrupt signal [1]. Passing -1 means to use the default value (Ctrl-C). However, after processing samples, Ctrl-C was used to in other cases as well - like stepping back from annotate. So recover the original behavior after processing. [1] http://jedsoft.org/slang/doc/html/cslang-6.html#ss6.1 Signed-off-by: Namhyung Kim Tested-by: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Jiri Olsa Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1432904024-13170-1-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/ui/browsers/annotate.c | 4 ++++ tools/perf/ui/browsers/hists.c | 4 ++++ tools/perf/ui/tui/setup.c | 2 +- 3 files changed, 9 insertions(+), 1 deletion(-) commit d7a3d85e08477a979933a2bb3b525a8de99543c2 Author: Jiri Olsa Date: Fri May 29 17:42:58 2015 +0200 perf build: Do not fail on missing Build file Allow nesting into directories without Build file. Currently we force include of the Build file, which fails the build when the Build file is missing. We already support empty *-in.o' objects if there's nothing in the directory to be compiled, so we can just use it for missing Build file cases. Also adding this case under tests. Reported-by: Rabin Vincent Signed-off-by: Jiri Olsa Cc: David Ahern Cc: Namhyung Kim Cc: Paul Mackerras Cc: Peter Zijlstra Cc: Rabin Vincent Link: http://lkml.kernel.org/r/1432914178-24086-1-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/build/Makefile.build | 2 +- tools/build/tests/ex/Build | 1 + tools/build/tests/ex/empty2/README | 2 ++ 3 files changed, 4 insertions(+), 1 deletion(-) commit 9a4388c711d07889217b19eaf63485122dec8817 Author: Arnaldo Carvalho de Melo Date: Fri May 29 11:54:08 2015 -0300 perf machine: Fix up vdso methods names To make it consistent with the other dso lifetime routines. For instance: struct dso *vdso__new(struct machine *machine, const char *short_name, const char *long_name) Becomes: struct dso *machine__addnew_vdso(struct machine *machine, const char *short_name, const char *long_name) Because: 1) There is no 'struct vdso' for us to have vdso__ prefixed routines. 2) Because it will not really just create a new instance of 'struct dso', it'll call dso__new() but it will also insert it into the DSO's list/rbtree, and we have a method name for that: 'addnew', just like we have dsos__addnew(). 3) So it is really a 'struct machine' operation, it is the first argument, etc. This way the place where this is used gets consistent: if (vdso) { pgoff = 0; - dso = vdso__dso_findnew(machine, thread); + dso = machine__findnew_vdso(machine, thread); } else dso = machine__findnew_dso(machine, filename); Cc: Adrian Hunter Cc: David Ahern Cc: Jiri Olsa Cc: Namhyung Kim Link: http://lkml.kernel.org/n/tip-r3w3tvh8exm9xfz3p4tz9qbz@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/machine.c | 2 +- tools/perf/util/map.c | 2 +- tools/perf/util/vdso.c | 18 +++++++++--------- tools/perf/util/vdso.h | 4 ++-- 4 files changed, 13 insertions(+), 13 deletions(-) commit aa7cc2ae5ae69aff555793fbfcff514141bb23f3 Author: Arnaldo Carvalho de Melo Date: Fri May 29 11:31:12 2015 -0300 perf machine: Introduce machine__findnew_dso() method Similar to machine__findnew_thread(), also prepping for refcounting and locking, this time for struct dso instances. Cc: Adrian Hunter Cc: David Ahern Cc: Jiri Olsa Cc: Namhyung Kim Link: http://lkml.kernel.org/n/tip-fv3tshv5o1413coh147lszjc@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/hists_common.c | 3 +-- tools/perf/util/dso.c | 2 +- tools/perf/util/header.c | 2 +- tools/perf/util/machine.c | 7 ++++++- tools/perf/util/machine.h | 2 ++ tools/perf/util/map.c | 2 +- 6 files changed, 12 insertions(+), 6 deletions(-) commit 3d39ac538629e4f00a6e1c38d46346f1b8e69505 Author: Arnaldo Carvalho de Melo Date: Thu May 28 13:06:42 2015 -0300 perf machine: No need to have two DSOs lists We can, given a DSO, figure out if it is a kernel, a kernel module or a userlevel DSO, so stop having to process two lists in several functions. If searching becomes an issue at some point, we can have them in a rbtree, etc. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-s4yb0onpdywu6dj2xl9lxi4t@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/hists_common.c | 2 +- tools/perf/util/build-id.c | 59 +++++++++++------------------------------ tools/perf/util/dso.c | 2 +- tools/perf/util/header.c | 6 +---- tools/perf/util/machine.c | 28 ++++++++----------- tools/perf/util/machine.h | 3 +-- tools/perf/util/map.c | 2 +- tools/perf/util/probe-event.c | 5 ++-- tools/perf/util/symbol-elf.c | 6 +---- tools/perf/util/vdso.c | 6 ++--- 10 files changed, 39 insertions(+), 80 deletions(-) commit 459ce518d9b563a99faa73aa340b764e0b3fb143 Author: Arnaldo Carvalho de Melo Date: Thu May 28 12:40:55 2015 -0300 perf machine: Adopt findnew_kernel method It never was a 'struct dso' method, so fix that by rename dso__kernel_findnew() to machine__findnew_kernel(). At some point I'll move it all to the machine.[ch] files, for now lets ease patch review by not moving too much stuff. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-zrxmblgsg5vx0iv4rhvq2f6l@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/dso.c | 4 ++-- tools/perf/util/dso.h | 4 ++-- tools/perf/util/machine.c | 11 +++++------ 3 files changed, 9 insertions(+), 10 deletions(-) commit cec83938707a7055c1f9decd81f2741420518e64 Author: Riku Voipio Date: Thu Apr 16 16:52:55 2015 +0300 perf tests: Remove getpgrp from mmap-basic mmap-basic fails on arm64. 4: read samples using the mmap interface: read samples using the mmap interface: FAILED! This is because arm64 doesn't come with getpgrp() syscall. The syscall is a BSD compatibility wrapper, Archs that don't define __ARCH_WANT_SYS_GETPGRP do not have this. Remove it, since getpgid is already used in the testcase. Signed-off-by: Riku Voipio Reviewed-by: Ingo Molnar Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1429192375-13706-4-git-send-email-riku.voipio@linaro.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/mmap-basic.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit fbb2df231e11d8086dc51df73376b16407463de1 Author: Riku Voipio Date: Fri May 29 12:36:11 2015 -0300 perf tests: Aename open*.c to openat*.c Since the test being tested is now openat rather than open, rename the files to make it explicit. The patch is separeted from the first to make it simpler to deal with any potential conflicts in the Makefile Signed-off-by: Riku Voipio Reviewed-by: Ingo Molnar Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1429192375-13706-3-git-send-email-riku.voipio@linaro.org [ Fixed it up wrt Build files ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/Build | 6 +- tools/perf/tests/open-syscall-all-cpus.c | 115 -------------------------- tools/perf/tests/open-syscall-tp-fields.c | 121 ---------------------------- tools/perf/tests/open-syscall.c | 61 -------------- tools/perf/tests/openat-syscall-all-cpus.c | 115 ++++++++++++++++++++++++++ tools/perf/tests/openat-syscall-tp-fields.c | 121 ++++++++++++++++++++++++++++ tools/perf/tests/openat-syscall.c | 61 ++++++++++++++ 7 files changed, 300 insertions(+), 300 deletions(-) commit 43f322b4ab3f203d8eefbdad6e58e1637221e4a7 Author: Riku Voipio Date: Thu Apr 16 16:52:53 2015 +0300 perf tests: Switch from open to openat Multiple perf tests fail on arm64 due to missing open syscall: 2: detect open syscall event : FAILED! open(2) is a legacy syscall, replaced with openat(2) since 2.6.16. Thus new architectures in kernel, such as arm64, don't implement these legacy syscalls. The patch replaces all sys_enter_open events with sys_enter_openat, renames the related tests and test output to avoid confusion. Signed-off-by: Riku Voipio Reviewed-by: Ingo Molnar Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1429192375-13706-2-git-send-email-riku.voipio@linaro.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/builtin-test.c | 12 ++++++------ tools/perf/tests/open-syscall-all-cpus.c | 12 ++++++------ tools/perf/tests/open-syscall-tp-fields.c | 6 +++--- tools/perf/tests/open-syscall.c | 14 +++++++------- tools/perf/tests/parse-events.c | 12 ++++++------ tools/perf/tests/tests.h | 6 +++--- 6 files changed, 31 insertions(+), 31 deletions(-) commit 3237f28188c3e41a938781a369652772a23e97a9 Author: Wang Nan Date: Fri Mar 27 13:08:01 2015 +0000 perf tools: Add ARM64 perf_regs_load to support libunwind and enable testing Newest libunwind does support ARM64, and perf is able to utilize it also. This patch enables the perf test dwarf unwind for arm64. Test result: # ./perf test unwind 25: Test dwarf unwind : Ok Signed-off-by: Wang Nan Acked-by: Jiri Olsa Cc: Namhyung Kim Cc: Zefan Li Link: http://lkml.kernel.org/r/1427461681-72971-1-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/arch/arm64/Build | 1 + tools/perf/arch/arm64/include/perf_regs.h | 3 ++ tools/perf/arch/arm64/tests/Build | 2 + tools/perf/arch/arm64/tests/dwarf-unwind.c | 61 ++++++++++++++++++++++++++++++ tools/perf/arch/arm64/tests/regs_load.S | 46 ++++++++++++++++++++++ tools/perf/tests/Build | 2 +- tools/perf/tests/builtin-test.c | 2 +- tools/perf/tests/tests.h | 2 +- 8 files changed, 116 insertions(+), 3 deletions(-) commit b236512280fb96dcca45a3f5bbae1839bd673e58 Author: Arnaldo Carvalho de Melo Date: Fri May 29 09:48:13 2015 -0300 perf kmem: Fix compiler warning about may be accessing uninitialized variable The last argument to strtok_r doesn't need to be initialized, its just a placeholder to make this routine reentrant, but gcc doesn't know about that and complains, breaking the build, fix it by setting it to NULL. Cc: Adrian Hunter Cc: David Ahern Cc: Jiri Olsa Cc: Namhyung Kim Link: http://lkml.kernel.org/n/tip-8e8rgbg3aom9uarsyqjrsctg@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-kmem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 427cde3287f2c6349f308d0e22c9223f9ea05ef1 Author: Adrian Hunter Date: Fri May 29 16:33:29 2015 +0300 perf db-export: Fix thread ref-counting Thread ref-counting was not done for get_main_thread() meaning that there was a thread__get() from machine__find_thread() that was not being paired with thread__put(). Fix that. Signed-off-by: Adrian Hunter Cc: Jiri Olsa Link: http://lkml.kernel.org/r/1432906425-9911-2-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/db-export.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) commit 60fb7742928dab3c6a0fec7f2d2cce26d9366a3c Author: Wang Nan Date: Thu May 28 02:25:05 2015 +0000 perf probe: Fix 'function unused' warning By 'make build-test' a warning is found in probe-event.c that, after commit 419e873828 (perf probe: Show the error reason comes from invalid DSO) the only user of kernel_get_module_dso() is open_debuginfo(). Which is not compiled if HAVE_DWARF_SUPPORT not set. 'make build-test' found this problem when make_minimal. This patch moves kernel_get_module_dso() to HAVE_DWARF_SUPPORT ifdef section. Signed-off-by: Wang Nan Acked-by: Masami Hiramatsu Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1432779905-206143-1-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/probe-event.c | 65 ++++++++++++++++++++++--------------------- 1 file changed, 33 insertions(+), 32 deletions(-) commit 44848cdbbd1bacbac2a825920b699adc000d51c7 Author: Martin Liška Date: Fri May 29 14:06:44 2015 +0200 perf annotate: Fix -i option, which is currently ignored. Assign input_name, received from program arguments, to file data structure. Signed-off-by: Martin Liska Tested-by: Arnaldo Carvalho de Melo Cc: Paul Mackerras Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/55685654.2010209@suse.cz Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-annotate.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 0cbf324e90ef0d03b79eade46123479849f6b02b Author: Nicholas Mc Guire Date: Fri May 29 17:11:14 2015 +0200 sound/oss: use schedule_timeout_interruptible() API consolidation with coccinelle found: ./sound/oss/msnd_pinnacle.c:1292:2-18: consolidation with schedule_timeout_*() recommended This is a 1:1 conversion of the current calls to an available helper only - so only an API consolidation to improve readability. Patch was compile tested with x86_64_defconfig Patch is against 4.1-rc5 (localversion-next is -next-20150529) Signed-off-by: Nicholas Mc Guire Signed-off-by: Takashi Iwai sound/oss/msnd_pinnacle.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit e7a9a5bbaa78e92e6b76bdb51d4c4f6da35c0812 Author: Joe Perches Date: Thu Apr 16 15:43:40 2015 -0700 tps6507x.txt: Remove executable permission Documention text files shouldn't be executable. Signed-off-by: Joe Perches Signed-off-by: Rob Herring Documentation/devicetree/bindings/mfd/tps6507x.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) commit e18b7975c885bc3a938b9a76daf32957ea0235fa Author: Felipe Balbi Date: Fri May 29 10:06:38 2015 -0500 usb: dwc3: gadget: don't clear EP_BUSY too early In case of non-Isochronous transfers, we don't want to clear DWC3_EP_BUSY flag until XferComplete event. That's because XferInProgress was only enabled so we can recycle TRBs and usb_requests quicker, but there are still other pending requests being transferred. In order to make sure we don't allow for another StartTransfer command while the HW is still processing other transfers, we must keep DWC3_EP_BUSY flag set and this what this patch does. Fixes: f3af36511e60 (usb: dwc3: gadget: always enable IOC on bulk/interrupt transfers) Cc: # v3.15+ Reported-by: sundeep subbaraya Tested-by: sundeep subbaraya Signed-off-by: Felipe Balbi drivers/usb/dwc3/gadget.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 2f6b3879c24de3404e21be8b76097353caf3bcbd Author: Andreas Gruenbacher Date: Fri Apr 24 13:04:29 2015 +0200 nfsd: Remove dead declarations Signed-off-by: Andreas Gruenbacher Signed-off-by: J. Bruce Fields fs/nfsd/nfs4acl.c | 12 ------------ 1 file changed, 12 deletions(-) commit 6ac75368e1a658903cf57b2bbf66e60d34f55558 Author: Arnd Bergmann Date: Tue May 12 23:31:29 2015 +0200 nfsd: work around a gcc-5.1 warning gcc-5.0 warns about a potential uninitialized variable use in nfsd: fs/nfsd/nfs4state.c: In function 'nfsd4_process_open2': fs/nfsd/nfs4state.c:3781:3: warning: 'old_deny_bmap' may be used uninitialized in this function [-Wmaybe-uninitialized] reset_union_bmap_deny(old_deny_bmap, stp); ^ fs/nfsd/nfs4state.c:3760:16: note: 'old_deny_bmap' was declared here unsigned char old_deny_bmap; ^ This is a false positive, the code path that is warned about cannot actually be reached. This adds an initialization for the variable to make the warning go away. Signed-off-by: Arnd Bergmann Signed-off-by: J. Bruce Fields fs/nfsd/nfs4state.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 0c9d65e76a19ad7c3d7e64fd30bc66b8b6d000ee Author: Andreas Gruenbacher Date: Fri Apr 24 13:04:00 2015 +0200 nfsd: Checking for acl support does not require fetching any acls Whether or not a file system supports acls can be determined with IS_POSIXACL(inode) and does not require trying to fetch any acls; the code for computing the supported_attrs and aclsupport attributes can be simplified. Signed-off-by: Andreas Gruenbacher Signed-off-by: J. Bruce Fields fs/nfsd/nfs4xdr.c | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) commit cc265089ce1b176dde963c74b53593446ee7f99a Author: Andreas Gruenbacher Date: Sat May 9 00:37:57 2015 +0200 nfsd: Disable NFSv2 timestamp workaround for NFSv3+ NFSv2 can set the atime and/or mtime of a file to specific timestamps but not to the server's current time. To implement the equivalent of utimes("file", NULL), it uses a heuristic. NFSv3 and later do support setting the atime and/or mtime to the server's current time directly. The NFSv2 heuristic is still enabled, and causes timestamps to be set wrong sometimes. Fix this by moving the heuristic into the NFSv2 specific code. We can leave it out of the create code path: the owner can always set timestamps arbitrarily, and the workaround would never trigger. Signed-off-by: Andreas Gruenbacher Reviewed-by: Christoph Hellwig Signed-off-by: J. Bruce Fields fs/nfsd/nfsproc.c | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++-- fs/nfsd/vfs.c | 36 ------------------------------------ 2 files changed, 50 insertions(+), 38 deletions(-) commit ad01f311afa24eab6a53746ec1d222d1c737181a Merge: 4815051 4127549 Author: Arnd Bergmann Date: Fri May 22 17:33:12 2015 +0200 Merge branch 'for-upstream/juno-dts' of git://linux-arm.org/linux-ld into next/dt Merge "Documentation: bindings: Add DT bindings for ARM Juno boards" from Liviu Dudau: * 'for-upstream/juno-dts' of git://linux-arm.org/linux-ld: Documentation: bindings: Add DT bindings for ARM Juno boards. arm64: Add DT support for Juno r1 board. arm64: Juno: Add GICv2m support in device tree. arm64: Juno: Add memory mapped timer node arm64: Juno: Split juno.dts into juno-base.dtsi and juno.dts. arm64: Juno: Fix the GIC node address label and the frequency of FAXI clock. commit 3139c907dbc2f20b3d06033115b89ae3c5cdd722 Merge: a5c0afd f2a5cef Author: Arnd Bergmann Date: Fri May 29 16:45:31 2015 +0200 Merge tag 'renesas-defconfig2-for-v4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/defconfig Merge "Second Round of Renesas ARM Based SoC Defconfig Updates for v4.2" from Simon Horman: * Enable shmobile r8a7778/bockw platform * tag 'renesas-defconfig2-for-v4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: ARM: multi_v7_defconfig: Enable shmobile r8a7778/bockw platform commit 9ff3d178ab9e926b3194b266b4a28dc63226552d Merge: e14cfad 9626b69 Author: Arnd Bergmann Date: Fri May 29 16:44:15 2015 +0200 Merge tag 'qcom-soc-for-4.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/galak/linux-qcom into next/drivers Merge "Qualcomm ARM Based SoC Updates for v4.2-1" from Kumar Gala: * Added Subsystem Power Manager (SPM) driver * Split out 32-bit specific SCM code * Added HDCP SCM call * tag 'qcom-soc-for-4.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/galak/linux-qcom: firmware: qcom: scm: Add HDCP Support firmware: qcom: scm: Split out 32-bit specific SCM code ARM: qcom: Add Subsystem Power Manager (SPM) driver commit e14cfad3fef6f1d0a968aca639481139747ffcde Author: Suzuki K. Poulose Date: Tue May 26 10:53:16 2015 +0100 arm-cci: Add aliases for PMU events Each CCI model have different event/source codes and formats. This patch exports this information via the sysfs, which includes the aliases for the events. The aliases are listed by 'perf list', helping the users to specify the name of the event instead of the binary config values. Each event alias must accompany the 'source' code except for the following cases : 1) CCI-400 - cycles event, doesn't relate to an interface. 2) CCI-500 - Global events to the CCI. (Fixed source code = 0xf) Each CCI model provides two sets of attributes(format and event), which are dynamically populated before registering the PMU, to allow for the appropriate information. Cc: Punit Agrawal Cc: Will Deacon Cc: Pawel Moll Cc: Mark Rutland Signed-off-by: Suzuki K. Poulose Acked-by: Punit Agrawal Signed-off-by: Arnd Bergmann drivers/bus/arm-cci.c | 296 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 295 insertions(+), 1 deletion(-) commit a95791efa72a08d3824713a75235d0407c0715dc Author: Suzuki K. Poulose Date: Tue May 26 10:53:15 2015 +0100 arm-cci: Add CCI-500 PMU support CCI-500 provides 8 event counters which can count any of the supported events independently. The PMU event id is a 9-bit value made of two parts. bits [8:5] - Source port 0x0-0x6 Slave Ports 0x8-0xD Master Ports 0xf Global Events to CCI 0x7,0xe Reserved bits [0:4] - Event code (specific to each type of port) The generic CCI-500 controlling interface remains the same with CCI-400. However there are some differences in the PMU event counters. - No cycle counter - Upto 8 counters(4 in CCI-400) - Each counter area is 64K(4K in CCI400) - The counter0 starts at offset 0x10000 from the base of CCI Cc: Punit Agrawal Cc: Mark Rutland Cc: Will Deacon Cc: devicetree@vger.kernel.org Signed-off-by: Suzuki K. Poulose Acked-by: Punit Agrawal Signed-off-by: Arnd Bergmann Documentation/devicetree/bindings/arm/cci.txt | 4 +- drivers/bus/Kconfig | 14 +++ drivers/bus/arm-cci.c | 133 ++++++++++++++++++++++++++ 3 files changed, 150 insertions(+), 1 deletion(-) commit f4d58938adb15ec961e3f694edaffdfcb5758635 Author: Suzuki K. Poulose Date: Tue May 26 10:53:14 2015 +0100 arm-cci: Sanitise CCI400 PMU driver specific code Rename CCI400 specific defintions from CCI_xxx to CCI400_xxx. Introduce generic ARM_CCI_PMU to cover common code for handling the CCI PMU. Cc: Mark Rutland Cc: Will Deacon Cc: Punit Agrawal Signed-off-by: Suzuki K. Poulose Acked-by: Punit Agrawal Signed-off-by: Arnd Bergmann drivers/bus/Kconfig | 5 ++ drivers/bus/arm-cci.c | 157 +++++++++++++++++++++++++++++--------------------- 2 files changed, 97 insertions(+), 65 deletions(-) commit 312162900c2f53a6effa9c0e7987baf970bd45f0 Author: Suzuki K. Poulose Date: Tue May 26 10:53:13 2015 +0100 arm-cci: Abstract handling for CCI events Given that each CCI has different set of interfaces and its associated events, it is good to abstract the validation of the event codes to make it easier to add support for a new CCI model. This patch also abstracts the mapping of a given event to a counter, as there are some special counters for certain specific events. We assume that the fixed hardware counters are always at the beginning, so that we can use cci_model->fixed_hw_events as an upper bound to given idx to check if we need to program the counter for an event. Cc: Punit Agrawal Cc: Mark Rutland Cc: Will Deacon Signed-off-by: Suzuki K. Poulose Acked-by: Punit Agrawal Signed-off-by: Arnd Bergmann drivers/bus/arm-cci.c | 78 ++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 55 insertions(+), 23 deletions(-) commit ab5b316d4b6d2f944ffcb4a742443207eda51cfb Author: Suzuki K. Poulose Date: Tue May 26 10:53:12 2015 +0100 arm-cci: Abstract out the PMU counter details Adds the PMU model specific counters to the PMU model abstraction to make it easier to add a new PMU. The patch cleans up the naming convention used all over the code. e.g, CCI_PMU_MAX_HW_EVENTS => maximum number of events that can be counted at any time, which is in fact the maximum number of counters available. Change all such namings to use 'counters' instead of events. This patch also abstracts the following: 1) Size of a PMU event counter area. 2) Maximum number of programmable counters supported by the PMU model 3) Number of counters which counts fixed events (e.g, cycle counter on CCI-400). Also changes some of the static allocation of the data structures to dynamic, to accommodate the number of events supported by a PMU. Gets rid ofthe CCI_PMU_* defines for the model. All such data should be accessed via the model abstraction. Limits the number of counters to the maximum supported by the 'model'. Cc: Punit Agrawal Cc: Mark Rutland Cc: Will Deacon Signed-off-by: Suzuki K. Poulose Acked-by: Punit Agrawal Signed-off-by: Arnd Bergmann drivers/bus/arm-cci.c | 123 ++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 93 insertions(+), 30 deletions(-) commit a1a076d767f99209fe3ebd1fe394028620914ebe Author: Suzuki K. Poulose Date: Tue May 26 10:53:11 2015 +0100 arm-cci: Cleanup PMU driver code This patch gets rid of the global struct cci_pmu variable and makes the code use the cci_pmu explicitly. Makes code a bit more robust and reader friendly. Cc: Punit Agrawal Cc: Mark Rutland Cc: Will Deacon Signed-off-by: Suzuki K. Poulose Acked-by: Punit Agrawal Signed-off-by: Arnd Bergmann drivers/bus/arm-cci.c | 142 ++++++++++++++++++++++++++++---------------------- 1 file changed, 80 insertions(+), 62 deletions(-) commit 85bbba709d766685613c61fd1dbc5e74f28b1ee7 Author: Suzuki K. Poulose Date: Tue May 26 10:53:10 2015 +0100 arm-cci: Do not enable CCI-400 PMU by default Do not enable CCI-400 PMU by default and fix the dependency on PERF_EVENTS than HW_PERF_EVENTS. Reported-by: Russell King Cc: Will Deacon Cc: arm@kernel.org Cc: Russell King Signed-off-by: Suzuki K. Poulose Signed-off-by: Arnd Bergmann drivers/bus/Kconfig | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) commit e451c1dbe6d54988257ee542471ec03374317d93 Author: Michal Kazior Date: Tue May 26 13:09:22 2015 +0200 ath10k: add missing firmware declarations This could lead userspace initram images getting built without necessary firmware files included leading to probing failures of ath10k on boot with QCA61X4. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/pci.c | 2 ++ 1 file changed, 2 insertions(+) commit 8485187b5e458d17d63a597484391b98bbcdbb7b Author: Masanari Iida Date: Fri May 29 23:11:51 2015 +0900 Doc: libata: Fix spelling typo found in libata.xml This patch fix a spelling typo found in libata.xml. It is because libata.xml is generated from comments in source, I have to fix it in libata-core.c Signed-off-by: Masanari Iida Signed-off-by: Tejun Heo drivers/ata/libata-core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a497adb45b8691f7e477e711a1a4bd54748d64fe Author: Steven Rostedt (Red Hat) Date: Fri May 29 10:32:28 2015 -0400 ring-buffer: Add enum names for the context levels Instead of having hard coded numbers for the context levels, use enums to describe them more. Signed-off-by: Steven Rostedt kernel/trace/ring_buffer.c | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) commit 44b7d483b73df7fb35dc7b426fcb6f133b6273e4 Author: Michal Kazior Date: Mon May 25 14:06:19 2015 +0200 ath10k: fix inconsistent survey reports In some cases some channel survey data was reported incorrect. Channel info events were expected to come in pairs without and with COMPLETE flag set respectively for each channel visit during scan. The known deviation from this is rule for last scan chan info and first (next) scan chan info both have COMPLETE flag set. This was either programmed with the intent of providing BSS cycle count info or this is an artefact of firmware scan state machine. Either way this is useless due to short wraparound time, wraparound quirks and no overflow notification. Survey dumps now include only data gathered during scan channel visits that can be computed correctly. This should improve hostapd ACS a little bit. Reported-by: Srinivasa Duvvuri Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.h | 8 ++++++++ drivers/net/wireless/ath/ath10k/wmi.c | 30 ++++++++++++++++-------------- 2 files changed, 24 insertions(+), 14 deletions(-) commit 587f7031f303bae561caecb0d5b23ba4d2585522 Author: Michal Kazior Date: Mon May 25 14:06:18 2015 +0200 ath10k: handle cycle counter wraparound When QCA988X cycle counter HW register wraps around it resets to 0x7fffffff instead of 0. All other cycle counter related registers are divided by 2 so they never wraparound themselves. QCA61X4 has a uniform CC and it wraparounds in a regular fashion though. Worst case wraparound time is approx 24 seconds (2**31 / 88MHz). Since scan channel visit times are max 5 seconds (offchannel case) it is guaranteed there's been at most 1 wraparound and it is possible to compute survey active time value. It is, however, impossible to determine the point at which Rx Clear Count has been divided by two so it is not reported upon wraparound. This fixes some occasional incorrect survey data on QCA988X as some channels (depending on how/when scan/offchannel requests were requested) would have approx 24 sec active time which wasn't actually the case. This should improve hostapd ACS a little bit. Reported-by: Srinivasa Duvvuri Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.c | 1 + drivers/net/wireless/ath/ath10k/core.h | 7 +++++++ drivers/net/wireless/ath/ath10k/hw.c | 21 +++++++++++++++++++++ drivers/net/wireless/ath/ath10k/hw.h | 3 +++ drivers/net/wireless/ath/ath10k/wmi.c | 17 +++++++++-------- 5 files changed, 41 insertions(+), 8 deletions(-) commit 0936ea3f8d4b5d6cc769123faf12f8a6affde918 Author: Michal Kazior Date: Mon May 25 14:06:17 2015 +0200 ath10k: move cycle_count macro The macro isn't WMI specific. Instead it is related to hardware chip so move the macro accordingly. While at it document the magic value. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/hw.h | 3 +++ drivers/net/wireless/ath/ath10k/wmi.c | 4 ++-- drivers/net/wireless/ath/ath10k/wmi.h | 1 - 3 files changed, 5 insertions(+), 3 deletions(-) commit b721260085533a9bead1fd853c0aead7d82ce763 Author: Alexey Khoroshilov Date: Fri May 29 03:39:31 2015 +0300 HID: lenovo: Remove sysfs group on failure path There is no sysfs_group_remove() on failure path in lenovo_probe_tpkbd(). Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Alexey Khoroshilov Signed-off-by: Jiri Kosina drivers/hid/hid-lenovo.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit 697d310f49fa8d0b0752d98af0f888fa2fc90896 Merge: d7c82da 6a53bc7 Author: Arnd Bergmann Date: Fri May 29 16:26:19 2015 +0200 Merge branch 'for-arm-soc' of git://ftp.arm.linux.org.uk/~rmk/linux-arm into next/cleanup Merge cleanups from Russell King: * 'for-arm-soc' of git://ftp.arm.linux.org.uk/~rmk/linux-arm: ARM: Show proper respect for Heinrich Hertz by using the correct unit for frequency commit a1cab5bb872507cb8594eb4010450fed7c48cdf2 Author: Takeshi Yoshimura Date: Fri May 29 13:16:43 2015 +0000 power_supply: 88pm860x_charger: Do not call free_irq() twice My static checker detected double free_irq() in pm860x_charger_remove(). Unloading this module always causes a warning. This patch removes the first redundant free_irq() call. Signed-off-by: Takeshi Yoshimura Signed-off-by: Sebastian Reichel drivers/power/88pm860x_charger.c | 1 - 1 file changed, 1 deletion(-) commit 402dd89d6cdbeeaab42b810542b487017725c628 Author: Shailendra Verma Date: Sat May 23 10:38:14 2015 +0530 workqueue: fix typos in comments tj: dropped iff -> if, iff is if and only if not a typo. Spotted by Randy Dunlap. Signed-off-by: Shailendra Verma Signed-off-by: Tejun Heo Cc: Randy Dunlap kernel/workqueue.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit c80ef9e0c021ff86771fdd72583c75d8f7b6a720 Author: Arnd Bergmann Date: Fri May 29 10:52:59 2015 +0200 cgroup: add seq_file forward declaration for struct cftype Recent header file changes for cgroup caused lots of warnings about a missing struct seq_file form declaration for every inclusion of include/linux/cgroup-defs.h. As some files are built with -Werror, this leads to build failure like: from /git/arm-soc/drivers/gpu/drm/tilcdc/tilcdc_crtc.c:18: /git/arm-soc/include/linux/cgroup-defs.h:354:25: error: 'struct seq_file' declared inside parameter list [-Werror] cc1: all warnings being treated as errors make[6]: *** [drivers/gpu/drm/tilcdc/tilcdc_crtc.o] Error 1 This patch adds the declaration, which resolves both the warnings and the drm failure. tj: Moved it where other type declarations are. Signed-off-by: Arnd Bergmann Fixes: b4a04ab7a37b ("cgroup: separate out include/linux/cgroup-defs.h") Signed-off-by: Tejun Heo include/linux/cgroup-defs.h | 1 + 1 file changed, 1 insertion(+) commit 4fd8a5a5ac6bc042d9de8847e6b8e9182b9c566c Merge: 499f164 66f72f0 Author: Arnd Bergmann Date: Fri May 29 15:00:02 2015 +0200 Merge tag 'renesas-soc-for-v4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/soc Merge "Renesas ARM Based SoC Updates for v4.2" from Simon Horman: * Only select sound drivers that build * tag 'renesas-soc-for-v4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: ARM: shmobile: only select sound drivers that build commit 7f05a7612e299c0aef8156e70a546ba7e5d5f947 Merge: 0fcbffc 2a910d1 Author: Arnd Bergmann Date: Fri May 29 14:54:13 2015 +0200 Merge tag 'v4.1-next-soc' of https://github.com/mbgg/linux-mediatek into next/drivers Merge "ARM: mediatek: soc updates for v4.2" from Matthias Brugger: - pmic wrapper: fix clock handling - pmic wrapper: fix state machine - pmic wrapper: fix compile dependency * tag 'v4.1-next-soc' of https://github.com/mbgg/linux-mediatek: soc: mediatek: Add compile dependency to pmic-wrapper soc: mediatek: PMIC wrap: Fix register state machine handling soc: mediatek: PMIC wrap: Fix clock rate handling commit a5c0afd85dc8a352e50f66ee20ed7f95faf10d07 Author: Joachim Eastwood Date: Tue May 26 19:39:46 2015 +0200 ARM: lpc18xx: remove DEBUG_LL_UART_8250 from defconfig Remove the generic 8250 config option so that the LPC18xx specific option gets picked instead. Signed-off-by: Joachim Eastwood Signed-off-by: Arnd Bergmann arch/arm/configs/lpc18xx_defconfig | 1 - 1 file changed, 1 deletion(-) commit 4d5e1aa238a3beebeed6c20978ba1b43c47836af Author: Geert Uytterhoeven Date: Fri May 29 11:21:39 2015 +0200 ARM: multi_v7_defconfig: Make media support modular Make media support modular to reduce kernel size (-253 KiB): text data bss dec hex filename 12451039 1396476 339800 14187315 d87b33 vmlinux.before 12202692 1387244 338456 13928392 d487c8 vmlinux.after Signed-off-by: Geert Uytterhoeven Signed-off-by: Arnd Bergmann arch/arm/configs/multi_v7_defconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d82344e068101b1a02f15fe09749815c1ab508ec Author: Geert Uytterhoeven Date: Fri May 29 11:21:38 2015 +0200 ARM: multi_v7_defconfig: Make sound support modular Make sound support modular to reduce kernel size (-571 KiB): text data bss dec hex filename 12990441 1438820 342552 14771813 e16665 vmlinux.before 12451039 1396476 339800 14187315 d87b33 vmlinux.after Signed-off-by: Geert Uytterhoeven Signed-off-by: Arnd Bergmann arch/arm/configs/multi_v7_defconfig | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit ceb798ace01e3f269650c71f645d1527127f9610 Merge: 9482317 e3db12b Author: Arnd Bergmann Date: Fri May 29 14:49:54 2015 +0200 Merge tag 'qcom-defconfig-for-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/galak/linux-qcom into next/defconfig Merge "Qualcomm ARM Based defconfig Updates for v4.2" from Kumar Gala: * Enable cpuidle for QCOM SoCs in qcom & multi_v7_defconfig * tag 'qcom-defconfig-for-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/galak/linux-qcom: ARM: config: multi_v7: Update to enable cpuidle for QCOM SoCs ARM: config: Update qcom_defconfig to enable cpuidle commit d0a601c278de6876f36bcf1b7a9678d93d7dc67b Author: Takashi Iwai Date: Fri May 29 14:06:32 2015 +0200 ALSA: jack: Fix the id uniqueness check snd_kctl_jack_new() tries to assign a unique index number when a name string that has been already registered is passed. However, it checks with the base string without "Jack" suffix, so it never hits. Fix the call with the properly processed name string instead. Fixes: b8dd086674cf 'ALSA: Jack: handle jack embedded kcontrol creating within ctljack') Signed-off-by: Takashi Iwai sound/core/ctljack.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b7e60c5aedd2b63f16ef06fde4f81ca032211bc5 Author: Marcelo Tosatti Date: Thu May 28 20:20:41 2015 -0300 KVM: x86: zero kvmclock_offset when vcpu0 initializes kvmclock system MSR Initialize kvmclock base, on kvmclock system MSR write time, so that the guest sees kvmclock counting from zero. This matches baremetal behaviour when kvmclock in guest sets sched clock stable. Signed-off-by: Marcelo Tosatti [Remove unnecessary comment. - Paolo] Signed-off-by: Paolo Bonzini arch/x86/kvm/x86.c | 4 ++++ 1 file changed, 4 insertions(+) commit 48150514ae58c5dc3cdf1b6d92487024edbecf9e Merge: ff28ea6 a190a1c Author: Arnd Bergmann Date: Fri May 29 14:01:52 2015 +0200 Merge tag 'qcom-arm64-for-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/galak/linux-qcom into next/dt Merge "Qualcomm ARM64 Updates for v4.2" Kumar Gala: * Added SPMI PMIC Arbiter device tree node for MSM8916 * Added 8x16 chipset SPMI PMIC's nodes * Added MSM8916 restart device node * Added initial set of PMIC and SoC pins for APQ8016 SBC board * tag 'qcom-arm64-for-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/galak/linux-qcom: arm64: dts: qcom: Add initial set of PMIC and SoC pins for APQ8016 SBC board arm64: dts: qcom: Add MSM8916 restart device node arm64: dts: qcom: Add 8x16 chipset SPMI PMIC's nodes arm64: dts: qcom: Add SPMI PMIC Arbiter node for MSM8916 commit 0ad83caa21bff9f383c10e73b452425709573042 Author: Luiz Capitulino Date: Thu May 28 20:20:40 2015 -0300 x86: kvmclock: set scheduler clock stable If you try to enable NOHZ_FULL on a guest today, you'll get the following error when the guest tries to deactivate the scheduler tick: WARNING: CPU: 3 PID: 2182 at kernel/time/tick-sched.c:192 can_stop_full_tick+0xb9/0x290() NO_HZ FULL will not work with unstable sched clock CPU: 3 PID: 2182 Comm: kworker/3:1 Not tainted 4.0.0-10545-gb9bb6fb #204 Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 Workqueue: events flush_to_ldisc ffffffff8162a0c7 ffff88011f583e88 ffffffff814e6ba0 0000000000000002 ffff88011f583ed8 ffff88011f583ec8 ffffffff8104d095 ffff88011f583eb8 0000000000000000 0000000000000003 0000000000000001 0000000000000001 Call Trace: [] dump_stack+0x4f/0x7b [] warn_slowpath_common+0x85/0xc0 [] warn_slowpath_fmt+0x46/0x50 [] can_stop_full_tick+0xb9/0x290 [] tick_nohz_irq_exit+0x8d/0xb0 [] irq_exit+0xc5/0x130 [] smp_apic_timer_interrupt+0x4a/0x60 [] apic_timer_interrupt+0x6e/0x80 [] ? _raw_spin_unlock_irqrestore+0x31/0x60 [] __wake_up+0x48/0x60 [] n_tty_receive_buf_common+0x49c/0xba0 [] ? tty_ldisc_ref+0x1f/0x70 [] n_tty_receive_buf2+0x14/0x20 [] flush_to_ldisc+0xe0/0x120 [] process_one_work+0x1d5/0x540 [] ? process_one_work+0x151/0x540 [] worker_thread+0x121/0x470 [] ? process_one_work+0x540/0x540 [] kthread+0xef/0x110 [] ? __kthread_parkme+0xa0/0xa0 [] ret_from_fork+0x42/0x70 [] ? __kthread_parkme+0xa0/0xa0 ---[ end trace 06e3507544a38866 ]--- However, it turns out that kvmclock does provide a stable sched_clock callback. So, let the scheduler know this which in turn makes NOHZ_FULL work in the guest. Signed-off-by: Marcelo Tosatti Signed-off-by: Luiz Capitulino Signed-off-by: Paolo Bonzini arch/x86/kernel/kvmclock.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) commit 611917258f88fb2fa41d1c2826b193f7c3885b54 Author: Marcelo Tosatti Date: Thu May 28 20:20:39 2015 -0300 x86: kvmclock: add flag to indicate pvclock counts from zero Setting sched clock stable for kvmclock causes the printk timestamps to not start from zero, which is different from baremetal and can possibly break userspace. Add a flag to indicate that hypervisor sets clock base at zero when kvmclock is initialized. Signed-off-by: Marcelo Tosatti Signed-off-by: Paolo Bonzini arch/x86/include/asm/pvclock-abi.h | 1 + 1 file changed, 1 insertion(+) commit ff28ea63425d13e4d889bc644dcc76c6f3418a38 Merge: 047d378 acea43f Author: Arnd Bergmann Date: Fri May 29 13:59:55 2015 +0200 Merge tag 'renesas-dt2-for-v4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/dt Merge "Second Round of Renesas ARM Based SoC DT Updates for v4.2" from Simon Horman: * Describe DMA for the serial ports of R-Car Gen2 SoCs * Add MMCIF max-frequency to R-Car Gen2 SoCs * Use "nor-jedec" instead of "jedec,spi-nor" * tag 'renesas-dt2-for-v4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: ARM: shmobile: r8a7790 dtsi: Describe DMA for the serial ports ARM: shmobile: r8a7791 dtsi: Describe DMA for the serial ports ARM: shmobile: r8a7794 dtsi: Describe DMA for the serial ports ARM: shmobile: r8a7791: add MMCIF max-frequency ARM: shmobile: r8a7790: add MMCIF max-frequency ARM: shmobile: bockw dts: Replace "nor-jedec" by "jedec,spi-nor" ARM: shmobile: henninger dts: Replace "nor-jedec" by "jedec,spi-nor" ARM: shmobile: bockw-reference dts: Replace "nor-jedec" by "jedec,spi-nor" ARM: shmobile: koelsch dts: Replace "nor-jedec" by "jedec,spi-nor" ARM: shmobile: lager dts: Replace "nor-jedec" by "jedec,spi-nor" commit 047d378a0075cc1559614270a1c9a5ce56b2a882 Merge: db695b5 4481b18 Author: Arnd Bergmann Date: Fri May 29 13:58:41 2015 +0200 Merge tag 'zynq-dt-for-4.2' of https://github.com/Xilinx/linux-xlnx into next/dt Merge "arm: Xilinx Zynq dt patches for v4.2" from Michal Simek: - Fix aliases and stdout properties - Document current TTC binding - Add Ceva to prefixes - Use new compatible string for MACB * tag 'zynq-dt-for-4.2' of https://github.com/Xilinx/linux-xlnx: ARM: zynq: DT: Use the zynq binding with macb of: Add vendor prefix for Ceva PCI: xilinx: Trivial fix in DT example devicetree: cadence_ttc: Document binding for timer width ARM: dts: zynq: Fix stdout-path and bootargs ARM: dts: zynq: Add missing alias node for zybo and parallella commit db695b5ecfc76c917d48fe443988806c3de7e584 Merge: 0258b15 7d58054 Author: Arnd Bergmann Date: Fri May 29 13:56:58 2015 +0200 Merge tag 'v4.1-next-dts' of https://github.com/mbgg/linux-mediatek into next/dt Merge "ARM: mediatek: dts updates for v4.2" from Matthias Brugger: - dts: add pinctrl/GPIO/EINT to mt8135 - dts: fix uart address for mt8127 * tag 'v4.1-next-dts' of https://github.com/mbgg/linux-mediatek: ARM: dts: mt8127: correct uart instance address ARM: dts: mt8135: Add pinctrl/GPIO/EINT node for mt8135. commit 0258b15d398fcc0206d11715b61be06ab61c21e6 Merge: 542459e b73b315 Author: Arnd Bergmann Date: Fri May 29 13:55:50 2015 +0200 Merge tag 'qcom-dt-for-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/galak/linux-qcom into next/dt Merge "Qualcomm ARM Based Device Tree Updates for v4.2" from Kumar Gala: * Added support for regulators, USB Host & OTG, SATA, and i2c controllers on APQ8064 based platforms * Added PM8841/PM8941/PMA8084 device nodes * Added PMU support on MSM8660 * tag 'qcom-dt-for-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/galak/linux-qcom: ARM: dts: qcom: Add msm8660 PMU node ARM: dts: qcom: Add PMA8084 functions device nodes ARM: dts: qcom: Add PM8941 functions device nodes ARM: dts: qcom: Add PM8841 functions device nodes ARM: dts: qcom: apq8064 - add i2c3 node for panel. ARM: dts: qcom: apq8064 - Move i2c1 pinctrl to apq8064.dtsi ARM: dts: qcom: apq8064-ifc6410 - Add DT alias for serial port ARM: dts: qcom: apq8064 - Add USB OTG support for CM QS-600 ARM: dts: qcom: apq8064 - Add usb host support to CM QS-600 ARM: dts: qcom: apq8064-cm-qs600 - Add basic regulators ARM: dts: qcom: apq8064 - Add SATA controller support ARM: dts: qcom: apq8064 - Add USB OTG support ARM: dts: qcom: apq8064 - Add usb host support. ARM: dts: qcom: apq8064-ifc6410 - Add basic regulators ARM: dts: qcom: apq8064 - add RPM regulators support commit f7959e9c73200f2ae361d0d311aa501f2c6a05c7 Author: Uwe Kleine-König Date: Thu May 28 11:46:12 2015 +0200 net: rfkill: gpio: make better use of gpiod API Since 39b2bbe3d715 (gpio: add flags argument to gpiod_get*() functions) which appeared in v3.17-rc1, the gpiod_get* functions take an additional parameter that allows to specify direction and initial value for output. Furthermore there is devm_gpiod_get_optional which is designed to get optional gpios. Simplify driver accordingly. Note this makes error checking more strict because only -ENOENT is ignored when searching for the GPIOs which is good. Signed-off-by: Uwe Kleine-König Signed-off-by: Johannes Berg net/rfkill/rfkill-gpio.c | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) commit 6cbfb1bb66e4e85da5db78e8ff429a85bd84ce64 Author: Michal Kazior Date: Fri May 22 10:57:22 2015 +0200 cfg80211: ignore netif running state when changing iftype It was possible for mac80211 to be coerced into an unexpected flow causing sdata union to become corrupted. Station pointer was put into sdata->u.vlan.sta memory location while it was really master AP's sdata->u.ap.next_beacon. This led to station entry being later freed as next_beacon before __sta_info_flush() in ieee80211_stop_ap() and a subsequent invalid pointer dereference crash. The problem was that ieee80211_ptr->use_4addr wasn't cleared on interface type changes. This could be reproduced with the following steps: # host A and host B have just booted; no # wpa_s/hostapd running; all vifs are down host A> iw wlan0 set type station host A> iw wlan0 set 4addr on host A> printf 'interface=wlan0\nssid=4addrcrash\nchannel=1\nwds_sta=1' > /tmp/hconf host A> hostapd -B /tmp/conf host B> iw wlan0 set 4addr on host B> ifconfig wlan0 up host B> iw wlan0 connect -w hostAssid host A> pkill hostapd # host A crashed: [ 127.928192] BUG: unable to handle kernel NULL pointer dereference at 00000000000006c8 [ 127.929014] IP: [] __sta_info_flush+0xac/0x158 ... [ 127.934578] [] ieee80211_stop_ap+0x139/0x26c [ 127.934578] [] ? dump_trace+0x279/0x28a [ 127.934578] [] __cfg80211_stop_ap+0x84/0x191 [ 127.934578] [] cfg80211_stop_ap+0x3f/0x58 [ 127.934578] [] nl80211_stop_ap+0x1b/0x1d [ 127.934578] [] genl_family_rcv_msg+0x259/0x2b5 Note: This isn't a revert of f8cdddb8d61d ("cfg80211: check iface combinations only when iface is running") as far as functionality is considered because b6a550156bc ("cfg80211/mac80211: move more combination checks to mac80211") moved the logic somewhere else already. Fixes: f8cdddb8d61d ("cfg80211: check iface combinations only when iface is running") Signed-off-by: Michal Kazior Signed-off-by: Johannes Berg net/wireless/util.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ab499db80fcf07c18e4053f91a619500f663e90e Author: Michal Kazior Date: Fri May 22 10:22:40 2015 +0200 mac80211: prevent possible crypto tx tailroom corruption There was a possible race between ieee80211_reconfig() and ieee80211_delayed_tailroom_dec(). This could result in inability to transmit data if driver crashed during roaming or rekeying and subsequent skbs with insufficient tailroom appeared. This race was probably never seen in the wild because a device driver would have to crash AND recover within 0.5s which is very unlikely. I was able to prove this race exists after changing the delay to 10s locally and crashing ath10k via debugfs immediately after GTK rekeying. In case of ath10k the counter went below 0. This was harmless but other drivers which actually require tailroom (e.g. for WEP ICV or MMIC) could end up with the counter at 0 instead of >0 and introduce insufficient skb tailroom failures because mac80211 would not resize skbs appropriately anymore. Fixes: 8d1f7ecd2af5 ("mac80211: defer tailroom counter manipulation when roaming") Signed-off-by: Michal Kazior Signed-off-by: Johannes Berg net/mac80211/main.c | 3 +++ 1 file changed, 3 insertions(+) commit f8df88081183bd4d3c461c617c3519445eb85642 Author: Chanwoo Choi Date: Wed May 27 23:06:30 2015 +0900 extcon: Remove optional print_name() function pointer of extcon_dev This patch removes the optional print_name() function pointer included in 'struct extcon_dev' because the extcon must maintain the consistent name of extcon device on sysfs instead of inconsistent name. After merged patch[1], extcon can maintain the consistent name of extcon device without any hard-coded device name. [1] https://lkml.org/lkml/2015/4/27/258 Signed-off-by: Chanwoo Choi drivers/extcon/extcon.c | 8 -------- include/linux/extcon.h | 3 --- 2 files changed, 11 deletions(-) commit 28760c195e22856aedbacad5eb7b46ac1d76bb90 Author: Wolfram Sang Date: Sat May 23 18:15:11 2015 +0200 ALSA: ppc: keywest: check if DEQ was already instantiated Due to changes in i2c-powermac, for some Macs the DEQ is instantiated now in i2c-powermac while some need the instantiation here in the keywest sound driver. The proper fix is to convert this driver to AOA. Until then support both ways of instantiation. Before this patch, some Macs lost sound because the sound driver failed when instantiating the DEQ for the second time. Signed-off-by: Wolfram Sang Tested-by: Dan DeVoto Signed-off-by: Takashi Iwai sound/ppc/keywest.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) commit 02aa78abec6ebe2ae4a2ec0687758a4e58ee9507 Author: Liam Girdwood Date: Mon May 25 18:21:17 2015 +0100 ASoC: DAPM: Add APIs to create individual DAPM controls. The topology core needs to be able to create individual widget controls at runtime and driver init. Add a regular locked and unlocked API calls to facilitate this requirement. The unlocked call is used by the topology core during component driver probing where the card dapm_mutex is held by the ASoC core and the locked version at non component driver probe time. Signed-off-by: Liam Girdwood Signed-off-by: Mark Brown sound/soc/soc-dapm.c | 34 ++++++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 8 deletions(-) commit 8f2ae6f30d5e935c9d7f18b869df66e307d41793 Author: Loc Ho Date: Fri May 22 17:33:00 2015 -0600 arm64: Add APM X-Gene SoC EDAC DTS entries Add APM X-Gene SoC EDAC DTS entries. Signed-off-by: Loc Ho Acked-by: Arnd Bergmann Cc: devicetree@vger.kernel.org Cc: dougthompson@xmission.com Cc: ijc+devicetree@hellion.org.uk Cc: jcm@redhat.com Cc: linux-arm-kernel@lists.infradead.org Cc: linux-edac Cc: mark.rutland@arm.com Cc: mchehab@osg.samsung.com Cc: patches@apm.com Cc: robh+dt@kernel.org Link: http://lkml.kernel.org/r/1432337580-3750-6-git-send-email-lho@apm.com Signed-off-by: Borislav Petkov arch/arm64/boot/dts/apm/apm-storm.dtsi | 83 ++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) commit 0d4429301c4aa4028b0b96bf492ddb03e13206e3 Author: Loc Ho Date: Fri May 22 17:32:59 2015 -0600 EDAC: Add APM X-Gene SoC EDAC driver Add support for the APM X-Gene SoC EDAC driver. Signed-off-by: Loc Ho Acked-by: Arnd Bergmann Cc: devicetree@vger.kernel.org Cc: dougthompson@xmission.com Cc: ijc+devicetree@hellion.org.uk Cc: jcm@redhat.com Cc: linux-arm-kernel@lists.infradead.org Cc: linux-edac Cc: mark.rutland@arm.com Cc: mchehab@osg.samsung.com Cc: patches@apm.com Cc: robh+dt@kernel.org Link: http://lkml.kernel.org/r/1432337580-3750-5-git-send-email-lho@apm.com Signed-off-by: Borislav Petkov drivers/edac/Kconfig | 7 + drivers/edac/Makefile | 1 + drivers/edac/xgene_edac.c | 1254 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 1262 insertions(+) commit ee66e6a24bd2f8a294f018ab90f660f23d8a7ff5 Author: Loc Ho Date: Fri May 22 17:32:58 2015 -0600 Documentation: Add documentation for the APM X-Gene SoC EDAC DTS binding Add documentation for the APM X-Gene SoC EDAC DTS binding. Signed-off-by: Loc Ho Acked-by: Arnd Bergmann Cc: devicetree@vger.kernel.org Cc: dougthompson@xmission.com Cc: ijc+devicetree@hellion.org.uk Cc: jcm@redhat.com Cc: linux-arm-kernel@lists.infradead.org Cc: linux-edac Cc: mark.rutland@arm.com Cc: mchehab@osg.samsung.com Cc: patches@apm.com Cc: robh+dt@kernel.org Link: http://lkml.kernel.org/r/1432337580-3750-4-git-send-email-lho@apm.com Signed-off-by: Borislav Petkov .../devicetree/bindings/edac/apm-xgene-edac.txt | 78 ++++++++++++++++++++++ 1 file changed, 78 insertions(+) commit 995e1de45af8ed5c841583a29f94f338f0bd50ba Author: Loc Ho Date: Fri May 22 17:32:57 2015 -0600 MAINTAINERS: Add entry for APM X-Gene SoC EDAC driver Add a MAINTAINERS entry for APM X-Gene SoC EDAC driver. Signed-off-by: Loc Ho Cc: devicetree@vger.kernel.org Cc: dougthompson@xmission.com Cc: ijc+devicetree@hellion.org.uk Cc: jcm@redhat.com Cc: linux-arm-kernel@lists.infradead.org Cc: linux-edac Cc: mark.rutland@arm.com Cc: mchehab@osg.samsung.com Cc: patches@apm.com Cc: robh+dt@kernel.org Link: http://lkml.kernel.org/r/1432337580-3750-3-git-send-email-lho@apm.com Signed-off-by: Borislav Petkov MAINTAINERS | 7 +++++++ 1 file changed, 7 insertions(+) commit 10337b070d3ba7696c8e746bd1f94870c01153ec Author: Richard Fitzgerald Date: Fri May 29 10:23:07 2015 +0100 ASoC: wm_adsp: Dump scratch registers on DSP shutdown The SCRATCH registers are used by firmwares to hold diagnostic information. Log this during shutdown to assist analysis and debug of firmwares. Signed-off-by: Richard Fitzgerald Signed-off-by: Mark Brown sound/soc/codecs/wm_adsp.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) commit 6e681abc88376ae448071cbaa9445c20f2812368 Author: Loc Ho Date: Fri May 22 17:32:56 2015 -0600 arm64: Enable EDAC on ARM64 Select EDAC_SUPPORT for arm64. Signed-off-by: Loc Ho Cc: devicetree@vger.kernel.org Cc: dougthompson@xmission.com Cc: ijc+devicetree@hellion.org.uk Cc: jcm@redhat.com Cc: linux-arm-kernel@lists.infradead.org Cc: linux-edac Cc: mark.rutland@arm.com Cc: mchehab@osg.samsung.com Cc: patches@apm.com Cc: robh+dt@kernel.org Link: http://lkml.kernel.org/r/1432337580-3750-2-git-send-email-lho@apm.com Signed-off-by: Borislav Petkov arch/arm64/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 7ca6759fa5cf97b1d822ec526d625d80482b8d6f Author: Julia Lawall Date: Thu May 28 23:02:24 2015 +0200 regmap: drop unneeded goto Delete jump to a label on the next line, when that label is not used elsewhere. A simplified version of the semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @r@ identifier l; @@ -if (...) goto l; -l: // Signed-off-by: Julia Lawall Signed-off-by: Mark Brown drivers/base/regmap/regmap.c | 3 --- 1 file changed, 3 deletions(-) commit e6aabee05f41c9d18e0b92194819edd84f352ac9 Author: Joerg Roedel Date: Wed May 27 09:26:09 2015 +0200 iommu/amd: Handle integer overflow in dma_ops_area_alloc Handle this case to make sure boundary_size does not become 0 and trigger a BUG_ON later. Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit c91134d9194478144ba579ca6efeddf628055650 Author: Robert Jarzmik Date: Mon May 25 23:29:22 2015 +0200 dmaengine: pxa_dma: add support for legacy transition In order to achieve smooth transition of pxa drivers from old legacy dma handling to new dmaengine, introduce a function to "hide" dma physical channels from dmaengine. This is temporary situation where pxa dma will be handled in 2 places : - arch/arm/plat-pxa/dma.c - drivers/dma/pxa_dma.c The resources, ie. dma channels, will be controlled by pxa_dma. The legacy code will request or release a channel with pxad_toggle_reserved_channel(). This is not very pretty, but it ensures both legacy and dmaengine consumers can live in the same kernel until the conversion is done. Signed-off-by: Robert Jarzmik Acked-by: Arnd Bergmann Signed-off-by: Vinod Koul drivers/dma/pxa_dma.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) commit 8a0a01bff855a6763d937acc70a876cb0bed063d Author: Will Deacon Date: Wed May 27 17:26:00 2015 +0100 drivers/vfio: Allow type-1 IOMMU instantiation on top of an ARM SMMUv3 The ARM SMMUv3 driver is compatible with the notion of a type-1 IOMMU in VFIO. This patch allows VFIO_IOMMU_TYPE1 to be selected if ARM_SMMU_V3=y. Signed-off-by: Will Deacon Acked-by: Alex Williamson Signed-off-by: Joerg Roedel drivers/vfio/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 48ec83bcbcf5090fcdf74a6168f161d247492979 Author: Will Deacon Date: Wed May 27 17:25:59 2015 +0100 iommu/arm-smmu: Add initial driver support for ARM SMMUv3 devices Version three of the ARM SMMU architecture introduces significant changes and improvements over previous versions of the specification, necessitating a new driver in the Linux kernel. The main change to the programming interface is that the majority of the configuration data has been moved from MMIO registers to in-memory data structures, with communication between the CPU and the SMMU being mediated via in-memory circular queues. This patch adds an initial driver for SMMUv3 to Linux. We currently support pinned stage-1 (DMA) and stage-2 (KVM VFIO) mappings using the generic IO-pgtable code. Cc: Robin Murphy Signed-off-by: Will Deacon Signed-off-by: Joerg Roedel MAINTAINERS | 3 +- drivers/iommu/Kconfig | 13 + drivers/iommu/Makefile | 1 + drivers/iommu/arm-smmu-v3.c | 2670 +++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 2686 insertions(+), 1 deletion(-) commit a73e528ab1499505c29e14091b19cb041e20e038 Author: Will Deacon Date: Wed May 27 17:25:58 2015 +0100 Documentation: dt-bindings: Add device-tree binding for ARM SMMUv3 IOMMU This patch adds device-tree bindings for ARM SMMUv3 IOMMU devices. Cc: Mark Rutland Signed-off-by: Will Deacon Signed-off-by: Joerg Roedel .../devicetree/bindings/iommu/arm,smmu-v3.txt | 37 ++++++++++++++++++++++ 1 file changed, 37 insertions(+) commit e3ce0c940e02e4d9d09c1c1377f80d9e90a893a0 Author: Will Deacon Date: Wed May 27 17:09:35 2015 +0100 iommu/arm-smmu: Make force_stage module param read-only in sysfs Changing force_stage dynamically isn't supported by the driver and it also doesn't make a whole lot of sense to change it once the SMMU is up and running. This patch makes the sysfs entry for the parameter read-only. Signed-off-by: Will Deacon Signed-off-by: Joerg Roedel drivers/iommu/arm-smmu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 661d962f19c23df492a03f47b583ef6a540d6031 Author: Robin Murphy Date: Wed May 27 17:09:34 2015 +0100 iommu/arm-smmu: Fix ATS1* register writes The ATS1* address translation registers only support being written atomically - in SMMUv2 where they are 64 bits wide, 32-bit writes to the lower half are automatically zero-extended, whilst 32-bit writes to the upper half are ignored. Thus, the current logic of performing 64-bit writes as two 32-bit accesses is wrong. Since we already limit IOVAs to 32 bits on 32-bit ARM, the lack of a suitable writeq() implementation there is not an issue, and we only need a little preprocessor ugliness to safely hide the 64-bit case. Signed-off-by: Robin Murphy Signed-off-by: Will Deacon Signed-off-by: Joerg Roedel drivers/iommu/arm-smmu.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) commit aa759fd376fbbfc34d5bf21b8f280ce68c17d064 Author: Marek Szyprowski Date: Tue May 19 15:20:37 2015 +0200 iommu/exynos: Add callback for initializing devices from device tree This patch adds implementation of of_xlate callback, which prepares masters device for attaching to IOMMU. This callback is called during creating devices from device tree. Signed-off-by: Marek Szyprowski Tested-by: Javier Martinez Canillas Signed-off-by: Joerg Roedel drivers/iommu/exynos-iommu.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) commit 8ed55c812fa8c8ab790bda52dea4a1a87d94fb2b Author: Marek Szyprowski Date: Tue May 19 15:20:36 2015 +0200 iommu/exynos: Init from dt-specific callback instead of initcall This patch introduces IOMMU_OF_DECLARE-based initialization to the driver, which replaces subsys_initcall-based procedure. exynos_iommu_of_setup ensures that each sysmmu controller is probed before its master device. Signed-off-by: Marek Szyprowski Tested-by: Javier Martinez Canillas Signed-off-by: Joerg Roedel drivers/iommu/exynos-iommu.c | 37 ++++++++++++++++++++++++++++--------- 1 file changed, 28 insertions(+), 9 deletions(-) commit 622015e407b0824805bb07416b8d9cdfbdc00182 Author: Marek Szyprowski Date: Tue May 19 15:20:35 2015 +0200 iommu/exynos: Add system suspend/resume support When system goes into suspend state, iommu should save it's state and restore after system resume. This is handled by 'late' pm ops to ensure that sysmmu will be suspended after its master devices and restored before them. Signed-off-by: Marek Szyprowski Tested-by: Javier Martinez Canillas Signed-off-by: Joerg Roedel drivers/iommu/exynos-iommu.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) commit ce70ca562b8d17cd995e3a3a44ad23d97dfbb38e Author: Marek Szyprowski Date: Tue May 19 15:20:34 2015 +0200 iommu/exynos: Add support for runtime_pm This patch fixes support for runtime power management for SYSMMU controllers, so they are enabled when master device is attached. Signed-off-by: Marek Szyprowski Tested-by: Javier Martinez Canillas Signed-off-by: Joerg Roedel drivers/iommu/exynos-iommu.c | 2 ++ 1 file changed, 2 insertions(+) commit 1b09205436847897da1826a88e5cefd9cde5eed7 Author: Marek Szyprowski Date: Tue May 19 15:20:33 2015 +0200 iommu/exynos: Add support for binding more than one sysmmu to master device This patch adds support for assigning more than one SYSMMU controller to the master device. This has been achieved simply by chaning the struct device pointer in struct exynos_iommu_owner into the list of struct sysmmu_drvdata of all controllers assigned to the given master device. Signed-off-by: Marek Szyprowski Tested-by: Javier Martinez Canillas Signed-off-by: Joerg Roedel drivers/iommu/exynos-iommu.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit 06801db0d3bba2b4e585130981fadf71bbce4159 Author: Marek Szyprowski Date: Tue May 19 15:20:32 2015 +0200 iommu/exynos: Add/remove callbacks should fail if no iommu is available Return fail if given master device passed to add_device/remove_device callbacks doesn't has associated any sysmmu controller. Signed-off-by: Marek Szyprowski Tested-by: Javier Martinez Canillas Signed-off-by: Joerg Roedel drivers/iommu/exynos-iommu.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 2860af3c8f7ac9e2569378653c3948c422bd30c2 Author: Marek Szyprowski Date: Tue May 19 15:20:31 2015 +0200 iommu/exynos: Document internal structures Add a few words of comment to all internal structures used by the driver. Signed-off-by: Marek Szyprowski Tested-by: Javier Martinez Canillas Signed-off-by: Joerg Roedel drivers/iommu/exynos-iommu.c | 53 +++++++++++++++++++++++++++++--------------- 1 file changed, 35 insertions(+), 18 deletions(-) commit 312900c605a7fc108e9d290745a5da6212062bce Author: Marek Szyprowski Date: Tue May 19 15:20:30 2015 +0200 iommu/exynos: Remove excessive includes and sort others alphabetically Removed following unused includes: , , and . Signed-off-by: Marek Szyprowski Tested-by: Javier Martinez Canillas Signed-off-by: Joerg Roedel drivers/iommu/exynos-iommu.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) commit a9133b9936ca43a93c45bfeabf0eef2ce091ee63 Author: Marek Szyprowski Date: Tue May 19 15:20:29 2015 +0200 iommu/exynos: Use struct exynos_iommu_domain in internal structures Replace all remaining usage of struct iommu_domain with struct exynos_iommu_domain in all internal structures and functions. Signed-off-by: Marek Szyprowski Tested-by: Javier Martinez Canillas Signed-off-by: Joerg Roedel drivers/iommu/exynos-iommu.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit bfa004893c55ead8ac1f2784601dac3609deb406 Author: Marek Szyprowski Date: Tue May 19 15:20:28 2015 +0200 iommu/exynos: Rename variables to reflect their purpose This patch renames some variables to make the code easier to understand. 'domain' is replaced by 'iommu_domain' (more generic entity) and really meaningless 'priv' by 'domain' to reflect its purpose. Signed-off-by: Marek Szyprowski Tested-by: Javier Martinez Canillas Signed-off-by: Joerg Roedel drivers/iommu/exynos-iommu.c | 187 ++++++++++++++++++++++--------------------- 1 file changed, 94 insertions(+), 93 deletions(-) commit 469acebe4a68902bf5b43daed61465eae1ce04ec Author: Marek Szyprowski Date: Tue May 19 15:20:27 2015 +0200 iommu/exynos: Refactor function parameters to simplify code This patch simplifies the code by: - refactoring function parameters from struct device pointer to direct pointer to struct sysmmu drvdata - moving list_head enteries from struct exynos_iommu_owner directly to struct sysmmu_drvdata After above refactoring some functions were never used, so remove also them completely. Signed-off-by: Marek Szyprowski Tested-by: Javier Martinez Canillas Signed-off-by: Joerg Roedel drivers/iommu/exynos-iommu.c | 134 ++++++++++++++++--------------------------- 1 file changed, 48 insertions(+), 86 deletions(-) commit 73db56989664c5daccb5424bc99483d3a099659e Author: Marek Szyprowski Date: Tue May 19 15:20:26 2015 +0200 iommu/exynos: Remove useless members from exynos_iommu_owner structure This patch removes useless spinlocks and other unused members from struct exynos_iommu_owner. There is no point is protecting this structure by spinlock because content of this structure doesn't change and other structures have their own spinlocks. Signed-off-by: Marek Szyprowski Tested-by: Javier Martinez Canillas Signed-off-by: Joerg Roedel drivers/iommu/exynos-iommu.c | 21 ++------------------- 1 file changed, 2 insertions(+), 19 deletions(-) commit 3211cf20421c216426a05fc072f6131122800784 Author: Marek Szyprowski Date: Tue May 19 15:20:25 2015 +0200 iommu/exynos: Remove unused functions This patch removes two unneeded functions, which are not a part of generic IOMMU API and were never used by any other driver. Signed-off-by: Marek Szyprowski Tested-by: Javier Martinez Canillas Signed-off-by: Joerg Roedel drivers/iommu/exynos-iommu.c | 31 ------------------------------- 1 file changed, 31 deletions(-) commit 512bd0c6cced8264dae4c7439fef54507548a72d Author: Marek Szyprowski Date: Tue May 19 15:20:24 2015 +0200 iommu/exynos: Don't read version register on every tlb operation This patch removes reading of REG_MMU_VERSION register on every tlb operation and caches SYSMMU version in driver's internal data. Signed-off-by: Marek Szyprowski Tested-by: Javier Martinez Canillas Signed-off-by: Joerg Roedel drivers/iommu/exynos-iommu.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) commit d7ef9995f1d9e394f994b9a1755cccb21ba3e421 Author: Marek Szyprowski Date: Tue May 19 15:20:23 2015 +0200 iommu: Init iommu-groups support earlier, in core_initcall iommu_group_alloc might be called very early in case of iommu controllers activated from of_iommu, so ensure that this part of subsystem is ready when devices are being populated from device-tree (core_initcall seems to be okay for this case). Signed-off-by: Marek Szyprowski Tested-by: Javier Martinez Canillas Signed-off-by: Joerg Roedel drivers/iommu/iommu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 225068ab274dbd5c3a43fd80a6d553ccdf7b2c6f Author: Takashi Iwai Date: Fri May 29 10:42:14 2015 +0200 ALSA: hda - Set patch_ops before calling auto-parser ... so that the parser code can overwrite some optional ops. For Realtek and others, it can be set solely in the spec allocator, so it results in a good code cleanup, too. With this change, we can finally remove the local stream_pm setup and rely on the generic parser's automatic setting. Signed-off-by: Takashi Iwai sound/pci/hda/patch_analog.c | 3 +-- sound/pci/hda/patch_ca0110.c | 3 +-- sound/pci/hda/patch_ca0132.c | 8 +++--- sound/pci/hda/patch_cirrus.c | 12 ++++----- sound/pci/hda/patch_cmedia.c | 4 +-- sound/pci/hda/patch_conexant.c | 3 +-- sound/pci/hda/patch_realtek.c | 61 ++++++++++++++++-------------------------- sound/pci/hda/patch_sigmatel.c | 20 +------------- sound/pci/hda/patch_via.c | 21 +++++---------- 9 files changed, 44 insertions(+), 91 deletions(-) commit ec4292defd42fe45dc9807cedd22b00ffa9f09ae Author: Heiko Stuebner Date: Thu May 21 09:57:29 2015 +0200 iommu/rockchip: Silence attaching and detaching of devices Currently the driver emits a log line every time a device attaches or detaches - which happens at every unblank/blank of the drm for example. The message itself also has no real value to the average user and is merely useful when debugging a problem, so make it a dev_dbg instead. Signed-off-by: Heiko Stuebner Signed-off-by: Joerg Roedel drivers/iommu/rockchip-iommu.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 984a8547052711867332eeaec4141755fc040553 Merge: 3270f0d b47eee2 Author: Takashi Iwai Date: Fri May 29 10:27:50 2015 +0200 Merge branch 'for-linus' into for-next Merge back the latest HD-audio stuff for further development. commit d9a946b52350bb070fe70f92c3ddd13355c0ca08 Author: Rodrigo Vivi Date: Thu May 28 10:26:58 2015 -0700 drm/i915: Another fbdev hack to avoid PSR on fbcon. With unified modeset and flip paths introduced recently when switching to fbcon PSR was being disabled on fb_set_par path but re-enabled on fb_pan_display one, causing missed screen updates and un unusable console. Regression introduced with: commit bb54662350662815b4bfc2ff4464330a2dbd7041 Author: Ander Conselvan de Oliveira Date: Tue Apr 21 17:13:13 2015 +0300 drm/i915: Unify modeset and flip paths of intel_crtc_set_config() Cc: Ander Conselvan de Oliveira Signed-off-by: Rodrigo Vivi Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_fbdev.c | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) commit 2d847d45b2c988038194140fa3def4ac1342cb67 Author: Rodrigo Vivi Date: Thu May 28 10:21:16 2015 -0700 drm/i915: Return the frontbuffer flip to enable intel_crtc_enable_planes. Without this frontbuffer flip when enabling planes PSR got compromised and wasn't being enabled waiting forever on the flush that never arrived. Another solution would to create a enable_cursor function and split this frontbuffer flip among the different plane enable and disable functions. But if necessary this can be done in a follow up work. For now let's just fix the regression. It was removed by: commit 87d4300a7dbc19634018e147b4753f3c9bb5f471 Author: Maarten Lankhorst Date: Tue Apr 21 17:12:54 2015 +0300 drm/i915: Move intel_(pre_disable/post_enable)_primary to intel_display.c, and use it there. Cc: Maarten Lankhorst Signed-off-by: Rodrigo Vivi Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 8ea64e27080eb66dc26f64f28485c0bc9fc06b36 Author: Antonio Quartulli Date: Mon May 11 20:34:52 2015 +0200 batman-adv: Use common declaration order in *_send_skb_(packet|unicast) Signed-off-by: Antonio Quartulli net/batman-adv/send.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 01b97a3eed3fe40e3a007d56935b421023bca2e3 Author: Markus Pargmann Date: Fri Dec 26 12:41:30 2014 +0100 batman-adv: iv_ogm_orig_update, remove unnecessary brackets Remove these unnecessary brackets inside a condition. Signed-off-by: Markus Pargmann Signed-off-by: Marek Lindner net/batman-adv/bat_iv_ogm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8f34b388786a952382c829453f280384f1bf3886 Author: Markus Pargmann Date: Fri Dec 26 12:41:29 2014 +0100 batman-adv: iv_ogm_can_aggregate, code readability This patch tries to increase code readability by negating the first if block and rearranging some of the other conditional blocks. This way we save an indentation level, we also save some allocation that is not necessary for one of the conditions. Signed-off-by: Markus Pargmann Signed-off-by: Marek Lindner net/batman-adv/bat_iv_ogm.c | 102 +++++++++++++++++++++++--------------------- 1 file changed, 53 insertions(+), 49 deletions(-) commit fc1f86936651191ca51e532083206efb351ccd9c Author: Marek Lindner Date: Wed Feb 18 22:19:20 2015 +0800 batman-adv: checkpatch - spaces preferred around that '*' Signed-off-by: Marek Lindner net/batman-adv/main.h | 2 +- net/batman-adv/network-coding.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 00f548bf5494ade996ae9c5e85c497dd2a3fdad5 Author: Marek Lindner Date: Wed Feb 18 22:17:30 2015 +0800 batman-adv: checkpatch - comparison to NULL could be rewritten Signed-off-by: Marek Lindner net/batman-adv/soft-interface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit dab7b62190c5abbe90eef4e9f9e7c28492e77eba Author: Sven Eckelmann Date: Wed Feb 18 18:20:24 2015 +0100 batman-adv: Use safer default config for optional features The current default settings for optional features in batman-adv seems to be based around the idea that the user only compiles what he requires. They will automatically enabled when they are compiled in. For example the network coding part of batman-adv is by default disabled in the out-of-tree module but will be enabled when the code is compiled during the module build. But distributions like Debian just enable all features of the batman-adv kernel module and hope that more experimental features or features with possible negative effects have to be enabled using some runtime configuration interface. The network_coding feature can help in specific setups but also has drawbacks and is not disabled by default in the out-of-tree module. Disabling by default in the runtime config seems to be also quite sane. The bridge_loop_avoidance is the only feature which is disabled by default but may be necessary even in simple setups. Packet loops may even be created during the initial node setup when this is not enabled. This is different than STP on bridges because mesh is usually used on Adhoc WiFi. Having two nodes (by accident) in the same LAN segment and in the same mesh network is rather common in this situation. Signed-off-by: Sven Eckelmann Acked-by: Martin Hundebøll Signed-off-by: Marek Lindner net/batman-adv/network-coding.c | 2 +- net/batman-adv/soft-interface.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit de12baece9b8010d036b4104a9f08d21418b60e8 Author: Markus Pargmann Date: Fri Dec 26 12:41:28 2014 +0100 batman-adv: iv_ogm_send_to_if, declare char* as const This string pointer is later assigned to a constant string, so it should be defined constant at the beginning. Signed-off-by: Markus Pargmann Signed-off-by: Marek Lindner net/batman-adv/bat_iv_ogm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9fd9b19ea03cce2e47544a3b8e0b532485b34758 Author: Markus Pargmann Date: Fri Dec 26 12:41:27 2014 +0100 batman-adv: iv_ogm_aggr_packet, bool return value This function returns bool values, so it should be defined to return them instead of the whole int range. Signed-off-by: Markus Pargmann Signed-off-by: Marek Lindner net/batman-adv/bat_iv_ogm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 42d9f2cbd42e1ba137584da8305cf6f68b84f39d Author: Markus Pargmann Date: Fri Dec 26 12:41:26 2014 +0100 batman-adv: iv_ogm_iface_enable, direct return values Directly return error values. No need to use a return variable. Signed-off-by: Markus Pargmann Signed-off-by: Marek Lindner net/batman-adv/bat_iv_ogm.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit 9fc1883ef25a43b895531ac44a38257ba8c2ca62 Author: Markus Pargmann Date: Fri Dec 26 12:41:25 2014 +0100 batman-adv: Makefile, Sort alphabetically The whole Makefile is sorted, just the multicast rule is not at the right position. Signed-off-by: Markus Pargmann Signed-off-by: Marek Lindner net/batman-adv/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 16b9ce83fb850602794a3bc534693362408a5408 Author: Markus Pargmann Date: Fri Dec 26 12:41:23 2014 +0100 batman-adv: tvlv realloc, move error handling into if block Instead of hiding the normal function flow inside an if block, we should just put the error handling into the if block. Signed-off-by: Markus Pargmann Signed-off-by: Marek Lindner net/batman-adv/main.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 9bb218828c8f4fa6587af93e248903c96ce469d0 Author: Markus Pargmann Date: Fri Dec 26 12:41:18 2014 +0100 batman-adv: debugfs, avoid compiling for !DEBUG_FS Normally the debugfs framework will return error pointer with -ENODEV for function calls when DEBUG_FS is not set. batman does not notice this error code and continues trying to create debugfs files and executes more code. We can avoid this code execution by disabling compiling debugfs.c when DEBUG_FS is not set. Signed-off-by: Markus Pargmann Signed-off-by: Marek Lindner net/batman-adv/Makefile | 2 +- net/batman-adv/debugfs.c | 8 -------- net/batman-adv/debugfs.h | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 35 insertions(+), 9 deletions(-) commit 83e8b87721f21b26b843633caca8ef453e943623 Author: Sven Eckelmann Date: Mon Dec 1 10:37:28 2014 +0100 batman-adv: Use only queued fragments when merging The fragment queueing code now validates the total_size of each fragment, checks when enough fragments are queued to allow to merge them into a single packet and if the fragments have the correct size. Therefore, it is not required to have any other parameter for the merging function than a list of queued fragments. This change should avoid problems like in the past when the different skb from the list and the function parameter were mixed incorrectly. Signed-off-by: Sven Eckelmann Acked-by: Martin Hundebøll Signed-off-by: Marek Lindner net/batman-adv/fragmentation.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) commit 53e771457e823fbc21834f60508c42a4270534fd Author: Sven Eckelmann Date: Mon Dec 1 10:37:27 2014 +0100 batman-adv: Check total_size when queueing fragments The fragmentation code was replaced in 610bfc6bc99bc83680d190ebc69359a05fc7f605 ("batman-adv: Receive fragmented packets and merge") by an implementation which handles the queueing+merging of fragments based on their size and the total_size of the non-fragmented packet. This total_size is announced by each fragment. The new implementation doesn't check if the the total_size information of the packets inside one chain is consistent. This is consistency check is recommended to allow using any of the packets in the queue to decide whether all fragments of a packet are received or not. Signed-off-by: Sven Eckelmann Acked-by: Martin Hundebøll Signed-off-by: Marek Lindner net/batman-adv/fragmentation.c | 7 +++++-- net/batman-adv/types.h | 2 ++ 2 files changed, 7 insertions(+), 2 deletions(-) commit 9f6446c7f9af084763037334d37e85dacfcbd403 Author: Sven Eckelmann Date: Thu Apr 23 13:16:35 2015 +0200 batman-adv: update copyright years for 2015 Signed-off-by: Sven Eckelmann Signed-off-by: Marek Lindner net/batman-adv/Makefile | 2 +- net/batman-adv/bat_algo.h | 2 +- net/batman-adv/bat_iv_ogm.c | 2 +- net/batman-adv/bitarray.c | 2 +- net/batman-adv/bitarray.h | 2 +- net/batman-adv/bridge_loop_avoidance.c | 2 +- net/batman-adv/bridge_loop_avoidance.h | 2 +- net/batman-adv/debugfs.c | 2 +- net/batman-adv/debugfs.h | 2 +- net/batman-adv/distributed-arp-table.c | 2 +- net/batman-adv/distributed-arp-table.h | 2 +- net/batman-adv/fragmentation.c | 2 +- net/batman-adv/fragmentation.h | 2 +- net/batman-adv/gateway_client.c | 2 +- net/batman-adv/gateway_client.h | 2 +- net/batman-adv/gateway_common.c | 2 +- net/batman-adv/gateway_common.h | 2 +- net/batman-adv/hard-interface.c | 2 +- net/batman-adv/hard-interface.h | 2 +- net/batman-adv/hash.c | 2 +- net/batman-adv/hash.h | 2 +- net/batman-adv/icmp_socket.c | 2 +- net/batman-adv/icmp_socket.h | 2 +- net/batman-adv/main.c | 2 +- net/batman-adv/main.h | 2 +- net/batman-adv/multicast.c | 2 +- net/batman-adv/multicast.h | 2 +- net/batman-adv/network-coding.c | 2 +- net/batman-adv/network-coding.h | 2 +- net/batman-adv/originator.c | 2 +- net/batman-adv/originator.h | 2 +- net/batman-adv/packet.h | 2 +- net/batman-adv/routing.c | 2 +- net/batman-adv/routing.h | 2 +- net/batman-adv/send.c | 2 +- net/batman-adv/send.h | 2 +- net/batman-adv/soft-interface.c | 2 +- net/batman-adv/soft-interface.h | 2 +- net/batman-adv/sysfs.c | 2 +- net/batman-adv/sysfs.h | 2 +- net/batman-adv/translation-table.c | 2 +- net/batman-adv/translation-table.h | 2 +- net/batman-adv/types.h | 2 +- 43 files changed, 43 insertions(+), 43 deletions(-) commit 70e717762d2fa80e995303995c80e0abc6419997 Author: Simon Wunderlich Date: Tue Apr 28 20:29:53 2015 +0200 batman-adv: Start new development cycle Signed-off-by: Simon Wunderlich net/batman-adv/main.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3270f0dd1a35d6b785bf39e1ed7ed6e1e43c8ebb Author: Takashi Iwai Date: Fri May 29 08:00:06 2015 +0200 ALSA: pci: Drop superfluous ifdef CONFIG_PROC_FS The compiler can optimize the unused code away, so we can drop ifdefs. Signed-off-by: Takashi Iwai sound/pci/ak4531_codec.c | 6 ------ sound/pci/atiixp.c | 4 ---- sound/pci/atiixp_modem.c | 4 ---- sound/pci/cmipci.c | 5 ----- sound/pci/ice1712/quartet.c | 7 +------ sound/pci/intel8x0.c | 4 ---- sound/pci/intel8x0m.c | 5 ----- sound/pci/oxygen/oxygen_lib.c | 4 ---- 8 files changed, 1 insertion(+), 38 deletions(-) commit 52262b4a5d7c3d3549985a47d96fe7d661220162 Author: Takashi Iwai Date: Fri May 29 07:58:11 2015 +0200 ALSA: emux: Fix/cleanup old ifdef CONFIG_PROC_FS Build emux_proc.o and drop the unneeded ifdefs. Replace the left CONFIG_PROC with the new CONFIG_SND_PROC_FS. Along with this, fix the build of emux_oss.o in Makefile, too. Signed-off-by: Takashi Iwai include/sound/emux_synth.h | 2 +- sound/synth/emux/Makefile | 5 +++-- sound/synth/emux/emux.c | 4 ---- sound/synth/emux/emux_proc.c | 4 ---- sound/synth/emux/emux_voice.h | 6 +++++- 5 files changed, 9 insertions(+), 12 deletions(-) commit 506e6ae2561fbee9a7c8f395178c46616e93bfda Author: Takashi Iwai Date: Fri May 29 07:56:42 2015 +0200 ALSA: emu10k1: Fix/cleanup ifdef CONFIG_PROC_FS Build emuproc.o conditionally and drop the unneeded ifdefs. Some are replaced with the new CONFIG_SND_PROC_FS. Signed-off-by: Takashi Iwai sound/pci/emu10k1/Makefile | 3 ++- sound/pci/emu10k1/emu10k1_main.c | 2 +- sound/pci/emu10k1/emuproc.c | 2 -- 3 files changed, 3 insertions(+), 4 deletions(-) commit 95bb6258d6bd5d6608949e2fdafbd191705175d3 Author: Takashi Iwai Date: Fri May 29 07:55:37 2015 +0200 ALSA: cs46xx: Fix old ifdef CONFIG_PROC_FS Replaced with the new CONFIG_SND_PROC_FS. Signed-off-by: Takashi Iwai sound/pci/cs46xx/cs46xx_lib.c | 4 ++-- sound/pci/cs46xx/cs46xx_lib.h | 4 ++-- sound/pci/cs46xx/dsp_spos.c | 4 ++-- sound/pci/cs46xx/dsp_spos_scb_lib.c | 6 +++--- 4 files changed, 9 insertions(+), 9 deletions(-) commit 1c1784387a8aed1a3ea4686e24205f0383af17ba Author: Takashi Iwai Date: Fri May 29 07:53:52 2015 +0200 ALSA: ca0106: Fix/cleanup ifdef CONFIG_PROC_FS Build ca0106_proc.o conditionally to drop unneeded ifdef. Some are replaced with the new CONFIG_SND_PROC_FS. Signed-off-by: Takashi Iwai sound/pci/ca0106/Makefile | 3 ++- sound/pci/ca0106/ca0106_main.c | 2 +- sound/pci/ca0106/ca0106_proc.c | 4 ---- 3 files changed, 3 insertions(+), 6 deletions(-) commit f68ce629970356943f12d6321a591edb1f719e1a Author: Takashi Iwai Date: Fri May 29 07:52:43 2015 +0200 ALSA: ac97: Fix ifdef CONFIG_PROC_FS Replaced with the new CONFIG_SND_PROC_FS. Signed-off-by: Takashi Iwai sound/pci/ac97/Makefile | 2 +- sound/pci/ac97/ac97_local.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 4bce6fce79b4df8a30478504ca49ebecdffff2b0 Author: Takashi Iwai Date: Fri May 29 07:51:23 2015 +0200 ALSA: ak4xxx-adda: Drop unnecessary ifdef CONFIG_PROC_FS The compiler can optimize it away if not needed. Signed-off-by: Takashi Iwai sound/i2c/other/ak4xxx-adda.c | 4 ---- 1 file changed, 4 deletions(-) commit c43a55d5b1c51436730e2f769f1b90add800a6f1 Author: Takashi Iwai Date: Fri May 29 07:49:55 2015 +0200 ALSA: opl4: Fix / cleanup ifdef CONFIG_PROC_FS Some are replaced with the new ifdef CONFIG_SND_PROC_FS. Some are removed by building opl4_proc.o conditionally. Signed-off-by: Takashi Iwai sound/drivers/opl4/Makefile | 3 ++- sound/drivers/opl4/opl4_lib.c | 4 ---- sound/drivers/opl4/opl4_local.h | 7 +++++-- sound/drivers/opl4/opl4_proc.c | 4 ---- 4 files changed, 7 insertions(+), 11 deletions(-) commit 129a4c9f829d3e2113ce4f2c67cd431b48b2abb7 Author: Takashi Iwai Date: Fri May 29 07:47:50 2015 +0200 ALSA: dummy: Replace CONFIG_PROC_FS with CONFIG_SND_PROC_FS Although there shouldn't be a problem in practice (the compiler should handle well), it's better to follow to the new Kconfig. Signed-off-by: Takashi Iwai sound/drivers/dummy.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 41960d9592a1da97a8b0771897e3d085abf1e428 Author: Takashi Iwai Date: Fri May 29 07:46:05 2015 +0200 ALSA: aloop: Drop unnecessary ifdef CONFIG_PROC_FS Since the compiler can optimize away the unused code, we can reduce the messy ifdef. Signed-off-by: Takashi Iwai sound/drivers/aloop.c | 8 -------- 1 file changed, 8 deletions(-) commit 5944d733f34a9b2a5ce7ab2eb17f41ebfaf90a65 Author: Luis R. Rodriguez Date: Thu May 28 17:30:33 2015 -0700 video: fbdev: gbefb: add missing mtrr_del() calls This driver never removed the MTRRs. Fix that. Cc: Thomas Gleixner Cc: Juergen Gross Cc: Jingoo Han Cc: Daniel Vetter Cc: Masanari Iida Cc: Suresh Siddha Cc: Ingo Molnar Cc: Andy Lutomirski Cc: Dave Airlie Cc: Antonino Daplas Cc: Jean-Christophe Plagniol-Villard Cc: Tomi Valkeinen Cc: linux-fbdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Luis R. Rodriguez Signed-off-by: Tomi Valkeinen drivers/video/fbdev/gbefb.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) commit 5e200b5352ccc40f39b64df5216772780ef03e7f Author: Luis R. Rodriguez Date: Tue Apr 21 13:16:22 2015 -0700 video: fbdev: radeonfb: use arch_phys_wc_add() and ioremap_wc() Convert the driver from using the x86 specific MTRR code to the architecture agnostic arch_phys_wc_add(). arch_phys_wc_add() will avoid MTRR if write-combining is available, in order to take advantage of that also ensure the ioremap'd 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 its 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 #ifdery 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); Generated-by: Coccinelle SmPL Cc: Benjamin Herrenschmidt Cc: Jean-Christophe Plagniol-Villard Cc: Tomi Valkeinen Cc: Suresh Siddha Cc: Ingo Molnar Cc: Thomas Gleixner Cc: Juergen Gross Cc: Daniel Vetter Cc: Andy Lutomirski Cc: Dave Airlie Cc: Antonino Daplas Cc: linux-fbdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Luis R. Rodriguez Reviewed-by: Dave Airlie Signed-off-by: Tomi Valkeinen drivers/video/fbdev/aty/radeon_base.c | 29 ++++++----------------------- drivers/video/fbdev/aty/radeonfb.h | 2 +- 2 files changed, 7 insertions(+), 24 deletions(-) commit b816db9d36d3ff53c0cfa4068cc7e03249e3c45f Author: Takashi Iwai Date: Fri May 29 07:01:28 2015 +0200 ALSA: core: Fix randconfig build wrt CONFIG_PROC_FS There are a few leftover CONFIG_PROC_FS forgotten to replace with CONFIG_SND_PROC_FS. Fixes: cd6a65036f0e ('ALSA: replace CONFIG_PROC_FS with CONFIG_SND_PROC_FS') Reported-by: Jim Davis Signed-off-by: Takashi Iwai sound/core/seq/Makefile | 2 +- sound/core/seq/seq_device.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit fbf4e262bb505a76c5cba227fcb2f4ea657d9921 Author: Kevin Cernekee Date: Tue Nov 25 16:49:53 2014 -0800 bus: brcmstb_gisb: Honor the "big-endian" and "native-endian" DT properties On chips strapped for BE, we'll need to use ioread32be/iowrite32be instead of ioread32/iowrite32. Signed-off-by: Kevin Cernekee Signed-off-by: Florian Fainelli drivers/bus/brcmstb_gisb.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) commit 7dc95b40f599293aedf30432749ad25b51549041 Author: Ray Jui Date: Thu May 28 18:09:14 2015 -0700 ARM: BCM: Enable NAND support for iProc SoCs Select CONFIG_MTD_NAND_BRCMNAND for all iProc SoCs Signed-off-by: Ray Jui Signed-off-by: Florian Fainelli arch/arm/mach-bcm/Kconfig | 1 + 1 file changed, 1 insertion(+) commit a74eab639ec502eb744528ef7c271576d670aa7a Merge: d7a32b6 8faf491 Author: David S. Miller Date: Thu May 28 20:23:01 2015 -0700 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/klassert/ipsec-next Steffen Klassert says: ==================== pull request (net-next): ipsec-next 2015-05-28 1) Remove xfrm_queue_purge as this is the same as skb_queue_purge. 2) Optimize policy and state walk. 3) Use a sane return code if afinfo registration fails. 4) Only check fori a acquire state if the state is not valid. 5) Remove a unnecessary NULL check before xfrm_pol_hold as it checks the input for NULL. 6) Return directly if the xfrm hold queue is empty, avoid to take a lock as it is nothing to do in this case. 7) Optimize the inexact policy search and allow for matching of policies with priority ~0U. All from Li RongQing. Please pull or let me know if there are problems. ==================== Signed-off-by: David S. Miller commit d7a32b6e6b1ad361ea89805855ef82dd1dea9128 Author: Vladimir Zapolskiy Date: Tue May 26 03:49:45 2015 +0300 net: qlcnic: clean up sysfs error codes Replace confusing QL_STATUS_INVALID_PARAM == -1 == -EPERM with -EINVAL and QLC_STATUS_UNSUPPORTED_CMD == -2 == -ENOENT with -EOPNOTSUPP, the latter error code is arguable, but it is already used in the driver, so let it be here as well. Also remove always false (!buf) check on read(), the driver should not care if userspace gets its EFAULT or not. Signed-off-by: Vladimir Zapolskiy Acked-by: Rajesh Borundia Signed-off-by: David S. Miller drivers/net/ethernet/qlogic/qlcnic/qlcnic.h | 3 - drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c | 2 +- drivers/net/ethernet/qlogic/qlcnic/qlcnic_sysfs.c | 77 +++++++++++------------ 3 files changed, 36 insertions(+), 46 deletions(-) commit cd054ee16580690830297dbda0abe9c184276d6a Author: Thomas Elste Date: Thu May 28 11:05:32 2015 +0200 power: bq24190_charger: Change first_time flag reset condition The initial register reset of BQ24190 generates a charger status change whose propagation via power_supply_changed is prevented using a flag. This flag gets never reset so all following events are ignored as well leading for example to userspace not detecting charger connects/disconnects. Therefor change the reset condition of first_time flag, so only the propagation of the first charger status change is prevented. Signed-off-by: Thomas Elste Signed-off-by: Sebastian Reichel drivers/power/bq24190_charger.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit 22ce1e1472fda6ce740cee966bb8e25a3cc662bd Author: Brian Foster Date: Fri May 29 09:26:33 2015 +1000 xfs: enable sparse inode chunks for v5 superblocks Enable mounting of filesystems with sparse inode support enabled. Add the incompat. feature bit to the *_ALL mask. Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_format.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 09b566041344fcfa9ae3c1b010f364137173894a Author: Brian Foster Date: Fri May 29 09:26:03 2015 +1000 xfs: skip unallocated regions of inode chunks in xfs_ifree_cluster() xfs_ifree_cluster() is called to mark all in-memory inodes and inode buffers as stale. This occurs after we've removed the inobt records and dropped any references of inobt data. xfs_ifree_cluster() uses the starting inode number to walk the namespace of inodes expected for a single chunk a cluster buffer at a time. The cluster buffer disk addresses are calculated by decoding the sequential inode numbers expected from the chunk. The problem with this approach is that if the inode chunk being removed is a sparse chunk, not all of the buffer addresses that are calculated as part of this sequence may be inode clusters. Attempting to acquire the buffer based on expected inode characterstics (i.e., cluster length) can lead to errors and is generally incorrect. We already use a couple variables to carry requisite state from xfs_difree() to xfs_ifree_cluster(). Rather than add a third, define a new internal structure to carry the existing parameters through these functions. Add an alloc field that represents the physical allocation bitmap of inodes in the chunk being removed. Modify xfs_ifree_cluster() to check each inode against the bitmap and skip the clusters that were never allocated as real inodes on disk. Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_ialloc.c | 17 +++++++---------- fs/xfs/libxfs/xfs_ialloc.h | 10 ++++++++-- fs/xfs/xfs_inode.c | 28 ++++++++++++++++++++-------- 3 files changed, 35 insertions(+), 20 deletions(-) commit 10ae3dc7f221f9080af5f7f5de54925d6bd248d7 Author: Brian Foster Date: Fri May 29 09:22:52 2015 +1000 xfs: only free allocated regions of inode chunks An inode chunk is currently added to the transaction free list based on a simple fsb conversion and hardcoded chunk length. The nature of sparse chunks is such that the physical chunk of inodes on disk may consist of one or more discontiguous parts. Blocks that reside in the holes of the inode chunk are not inodes and could be allocated to any other use or not allocated at all. Refactor the existing xfs_bmap_add_free() call into the xfs_difree_inode_chunk() helper. The new helper uses the existing calculation if a chunk is not sparse. Otherwise, use the inobt record holemask to free the contiguous regions of the chunk. Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_ialloc.c | 81 ++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 78 insertions(+), 3 deletions(-) commit 26dd5217dee0ecfb95f8015ed8e9deebf8257608 Author: Brian Foster Date: Fri May 29 09:20:10 2015 +1000 xfs: filter out sparse regions from individual inode allocation Inode allocation from an existing record with free inodes traditionally selects the first inode available according to the ir_free mask. With sparse inode chunks, the ir_free mask could refer to an unallocated region. We must mask the unallocated regions out of ir_free before using it to select a free inode in the chunk. Update the xfs_inobt_first_free_inode() helper to find the first free inode available of the allocated regions of the inode chunk. Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_ialloc.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) commit 95872b49ce14169a1ce0dfaac62e284cbdc6eea8 Merge: 2f15791 5296b7f Author: Dave Airlie Date: Fri May 29 09:19:59 2015 +1000 Merge branch 'drm-tda998x-devel' of git://ftp.arm.linux.org.uk/~rmk/linux-arm into drm-next warning fix for tda998x * 'drm-tda998x-devel' of git://ftp.arm.linux.org.uk/~rmk/linux-arm: drm/i2c: tda998x: fix compiler warning for ssize_t commit 1cdadee11f8d44b16f8110cf01498bd7c38474d8 Author: Brian Foster Date: Fri May 29 09:19:29 2015 +1000 xfs: randomly do sparse inode allocations in DEBUG mode Sparse inode allocations generally only occur when full inode chunk allocation fails. This requires some level of filesystem space usage and fragmentation. For filesystems formatted with sparse inode chunks enabled, do random sparse inode chunk allocs when compiled in DEBUG mode to increase test coverage. Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_ialloc.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) commit 56d1115c9bc7853e143f59fb5976cf3de609f657 Author: Brian Foster Date: Fri May 29 09:18:32 2015 +1000 xfs: allocate sparse inode chunks on full chunk allocation failure xfs_ialloc_ag_alloc() makes several attempts to allocate a full inode chunk. If all else fails, reduce the allocation to the sparse length and alignment and attempt to allocate a sparse inode chunk. If sparse chunk allocation succeeds, check whether an inobt record already exists that can track the chunk. If so, inherit and update the existing record. Otherwise, insert a new record for the sparse chunk. Create helpers to align sparse chunk inode records and insert or update existing records in the inode btrees. The xfs_inobt_insert_sprec() helper implements the merge or update semantics required for sparse inode records with respect to both the inobt and finobt. To update the inobt, either insert a new record or merge with an existing record. To update the finobt, use the updated inobt record to either insert or replace an existing record. Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_ialloc.c | 330 +++++++++++++++++++++++++++++++++++++-- fs/xfs/libxfs/xfs_ialloc_btree.c | 31 ++++ fs/xfs/libxfs/xfs_ialloc_btree.h | 7 + fs/xfs/xfs_trace.h | 47 ++++++ 4 files changed, 401 insertions(+), 14 deletions(-) commit 2f15791c28af9b2114cf3422c48aba6701d91df3 Author: Russell King Date: Thu May 28 10:36:27 2015 +0100 drm: clean up drm_mm debugfs output The drm_mm debugfs output is difficult to read as two different formats are used for the addresses: 0x00000080000000-0x0000008000b000: 45056: used 0x8000b000-0x80016000: 45056: free 0x00000080016000-0x0000008001b000: 20480: used 0x8001b000-0x817a1000: 24666112: free 0x000000817a1000-0x000000817a8000: 28672: used 0x000000817a8000-0x00000081ba8000: 4194304: used Fix this by using %#018llx for all addresses, thus making the output: 0x0000000080000000-0x000000008000b000: 45056: used 0x000000008000b000-0x0000000080016000: 45056: free 0x0000000080016000-0x000000008001b000: 20480: used 0x000000008001b000-0x00000000817a1000: 24666112: free 0x00000000817a1000-0x00000000817a8000: 28672: used 0x00000000817a8000-0x0000000081ba8000: 4194304: used Signed-off-by: Russell King Reviewed-by: Alex Deucher Signed-off-by: Dave Airlie drivers/gpu/drm/drm_mm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c99d1530131b2153dabc40be8dcb5d8d50d700e3 Merge: a8a7cf0 82d5b58 Author: Dave Airlie Date: Fri May 29 09:11:49 2015 +1000 Merge tag 'drm-intel-next-2015-05-22' of git://anongit.freedesktop.org/drm-intel into drm-next - cpt modeset sequence fixes from Ville - more rps boosting tuning from Chris - S3 support for skl (Damien) - a pile of w/a for bxt from various people - cleanup of primary plane pixel formats (Damien) - a big pile of small patches with fixes and cleanups all over * tag 'drm-intel-next-2015-05-22' of git://anongit.freedesktop.org/drm-intel: (90 commits) drm/i915: Update DRIVER_DATE to 20150522 drm/i915: Introduce DRM_I915_THROTTLE_JIFFIES drm/i915: Use the correct destructor for freeing requests on error drm/i915/skl: don't fail colorkey + scaler request drm/i915: Enable GTT caching on gen8 drm/i915: Move WaProgramL3SqcReg1Default:bdw to init_clock_gating() drm/i915: Use ilk_init_lp_watermarks() on BDW drm/i915: Disable FDI RX/TX before the ports drm/i915: Disable CRT port after pipe on PCH platforms drm/i915: Disable SDVO port after the pipe on PCH platforms drm/i915: Disable HDMI port after the pipe on PCH platforms drm/i915: Fix the IBX transcoder B workarounds drm/i915: Write the SDVO reg twice on IBX drm/i915: Fix DP enhanced framing for CPT drm/i915: Clean up the CPT DP .get_hw_state() port readout drm/i915: Clarfify the DP code platform checks drm/i915: Remove the double register write from intel_disable_hdmi() drm/i915: Remove a bogus 12bpc "toggle" from intel_disable_hdmi() drm/i915/skl: Deinit/init the display at suspend/resume drm/i915: Free RPS boosts for all laggards ... commit a8a7cf0264d9e1128bbc609a140b42a48dcac7a2 Merge: c6e7e4b 9e5acbc Author: Dave Airlie Date: Fri May 29 09:10:54 2015 +1000 Merge branch 'drm-next-4.2' of git://people.freedesktop.org/~agd5f/linux into drm-next for amdgpu separately next week. Highlights for radeon: - VCE1 support - Bug fixes and misc cleanups * 'drm-next-4.2' of git://people.freedesktop.org/~agd5f/linux: radeon: Deinline indirect register accessor functions drm/radeon: Fix max_vblank_count value for current display engines drm/radeon: stop using addr to check for BO move drm/radeon: clean up radeon_audio_enable drm/radeon: take the mode_config mutex when dealing with hpds (v2) drm/radeon: make dpcd parameters const drm/radeon: Use DECLARE_BITMAP drm/radeon/tn/si: enable/disable vce cg when encoding v2 drm/radeon: add support for vce 1.0 clock gating drm/radeon: add VCE 1.0 support v4 drm/radeon/dpm: add vce support for SI drm/radeon/dpm: add vce dpm support for TN drm/radeon: implement tn_set_vce_clocks drm/radeon: implement si_set_vce_clocks v2 drm/radeon: allow some more VCE firmware versions drm/radeon: rework VCE FW size calculation drm/radeon: add a GPU reset counter queryable by userspace commit 4148c347a42a2aba31f6f4d9a31c647c2d475697 Author: Brian Foster Date: Fri May 29 09:09:05 2015 +1000 xfs: helper to convert holemask to inode alloc. bitmap The inobt record holemask field is a condensed data type designed to fit into the existing on-disk record and is zero based (allocated regions are set to 0, sparse regions are set to 1) to provide backwards compatibility. This makes the type somewhat complex for use in higher level inode manipulations such as individual inode allocation, etc. Rather than foist the complexity of dealing with this field to every bit of logic that requires inode granular information, create a helper to convert the holemask to an inode allocation bitmap. The inode allocation bitmap is inode granularity similar to the inobt record free mask and indicates which inodes of the chunk are physically allocated on disk, irrespective of whether the inode is considered allocated or free by the filesystem. Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_ialloc_btree.c | 51 ++++++++++++++++++++++++++++++++++++++++ fs/xfs/libxfs/xfs_ialloc_btree.h | 3 +++ 2 files changed, 54 insertions(+) commit 7f43c907ad5afe100772249a79fa8cc9b751b28a Author: Brian Foster Date: Fri May 29 09:06:30 2015 +1000 xfs: handle sparse inode chunks in icreate log recovery Recovery of icreate transactions assumes hardcoded values for the inode count and chunk length. Sparse inode chunks are allocated in units of m_ialloc_min_blks. Update the icreate validity checks to allow for appropriately sized inode chunks and verify the inode count matches what is expected based on the extent length rather than assuming a hardcoded count. Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/xfs_log_recover.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) commit 463958af5c92d876fd2fe3c756f18bd0ce70b713 Author: Brian Foster Date: Fri May 29 09:05:49 2015 +1000 xfs: pass inode count through ordered icreate log item v5 superblocks use an ordered log item for logging the initialization of inode chunks. The icreate log item is currently hardcoded to an inode count of 64 inodes. The agbno and extent length are used to initialize the inode chunk from log recovery. While an incorrect inode count does not lead to bad inode chunk initialization, we should pass the correct inode count such that log recovery has enough data to perform meaningful validity checks on the chunk. Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_ialloc.c | 7 ++++--- fs/xfs/libxfs/xfs_ialloc.h | 2 +- fs/xfs/xfs_log_recover.c | 4 ++-- 3 files changed, 7 insertions(+), 6 deletions(-) commit 12d0714d4bdd591d9cd3bce692c831da2c2a0cfc Author: Brian Foster Date: Fri May 29 09:04:19 2015 +1000 xfs: use actual inode count for sparse records in bulkstat/inumbers The bulkstat and inumbers mechanisms make the assumption that inode records consist of a full 64 inode chunk in several places. For example, this is used to track how many inodes have been processed overall as well as to determine whether a record has allocated inodes that must be handled. This assumption is invalid for sparse inode records. While sparse inodes will be marked as free in the ir_free mask, they are not accounted as free in ir_freecount because they cannot be allocated. Therefore, ir_freecount may be less than 64 inodes in an inode record for which all physically allocated inodes are free (and in turn ir_freecount < 64 does not signify that the record has allocated inodes). The new in-core inobt record format includes the ir_count field. This holds the number of true, physical inodes tracked by the record. The in-core ir_count field is always valid as it is hardcoded to XFS_INODES_PER_CHUNK when sparse inodes is not enabled. Use ir_count to handle inode records correctly in bulkstat in a generic manner. Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/xfs_itable.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) commit 5419040fc0f3afc31c857b4d7f006bd9afbdb462 Author: Brian Foster Date: Fri May 29 09:03:04 2015 +1000 xfs: introduce inode record hole mask for sparse inode chunks The inode btrees track 64 inodes per record regardless of inode size. Thus, inode chunks on disk vary in size depending on the size of the inodes. This creates a contiguous allocation requirement for new inode chunks that can be difficult to satisfy on an aged and fragmented (free space) filesystems. The inode record freecount currently uses 4 bytes on disk to track the free inode count. With a maximum freecount value of 64, only one byte is required. Convert the freecount field to a single byte and use two of the remaining 3 higher order bytes left for the hole mask field. Use the final leftover byte for the total count field. The hole mask field tracks holes in the chunks of physical space that the inode record refers to. This facilitates the sparse allocation of inode chunks when contiguous chunks are not available and allows the inode btrees to identify what portions of the chunk contain valid inodes. The total count field contains the total number of valid inodes referred to by the record. This can also be deduced from the hole mask. The count field provides clarity and redundancy for internal record verification. Note that neither of the new fields can be written to disk on fs' without sparse inode support. Doing so writes to the high-order bytes of freecount and causes corruption from the perspective of older kernels. The on-disk inobt record data structure is updated with a union to distinguish between the original, "full" format and the new, "sparse" format. The conversion routines to get, insert and update records are updated to translate to and from the on-disk record accordingly such that freecount remains a 4-byte value on non-supported fs, yet the new fields of the in-core record are always valid with respect to the record. This means that higher level code can refer to the current in-core record format unconditionally and lower level code ensures that records are translated to/from disk according to the capabilities of the fs. Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_format.h | 34 +++++++++++++++++++++++++--- fs/xfs/libxfs/xfs_ialloc.c | 48 +++++++++++++++++++++++++++++++++------- fs/xfs/libxfs/xfs_ialloc_btree.c | 11 ++++++++- 3 files changed, 81 insertions(+), 12 deletions(-) commit 502a4e72b8707f3a45fb51f873c2865928db0771 Author: Brian Foster Date: Fri May 29 08:58:32 2015 +1000 xfs: add fs geometry bit for sparse inode chunks Define an fs geometry bit for sparse inode chunks such that the characteristic of the fs can be identified by userspace. Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_fs.h | 1 + fs/xfs/xfs_fsops.c | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) commit e5376fc15acdd6b03b6d5223391842717148f0d7 Author: Brian Foster Date: Fri May 29 08:57:27 2015 +1000 xfs: sparse inode chunks feature helpers and mount requirements The sparse inode chunks feature uses the helper function to enable the allocation of sparse inode chunks. The incompatible feature bit is set on disk at mkfs time to prevent mount from unsupported kernels. Also, enforce the inode alignment requirements required for sparse inode chunks at mount time. When enabled, full inode chunks (and all inode record) alignment is increased from cluster size to inode chunk size. Sparse inode alignment must match the cluster size of the fs. Both superblock alignment fields are set as such by mkfs when sparse inode support is enabled. Finally, warn that sparse inode chunks is an experimental feature until further notice. Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_format.h | 7 +++++++ fs/xfs/libxfs/xfs_sb.c | 21 +++++++++++++++++++++ fs/xfs/xfs_mount.c | 16 ++++++++++++++++ 3 files changed, 44 insertions(+) commit 066a18845f2a8f3bc0463a5ded44bc3a3ea75ec9 Author: Brian Foster Date: Fri May 29 08:55:20 2015 +1000 xfs: use sparse chunk alignment for min. inode allocation requirement xfs_ialloc_ag_select() iterates through the allocation groups looking for free inodes or free space to determine whether to allow an inode allocation to proceed. If no free inodes are available, it assumes that an AG must have an extent longer than mp->m_ialloc_blks. Sparse inode chunk support currently allows for allocations smaller than the traditional inode chunk size specified in m_ialloc_blks. The current minimum sparse allocation is set in the superblock sb_spino_align field at mkfs time. Create a new m_ialloc_min_blks field in xfs_mount and use this to represent the minimum supported allocation size for inode chunks. Initialize m_ialloc_min_blks at mount time based on whether sparse inodes are supported. Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_ialloc.c | 2 +- fs/xfs/libxfs/xfs_sb.c | 5 +++++ fs/xfs/xfs_mount.h | 2 ++ 3 files changed, 8 insertions(+), 1 deletion(-) commit fb4f2b4e5a82db69e89cb78fb9ef6093543c4b88 Author: Brian Foster Date: Fri May 29 08:54:03 2015 +1000 xfs: add sparse inode chunk alignment superblock field Add sb_spino_align to the superblock to specify sparse inode chunk alignment. This also currently represents the minimum allowable sparse chunk allocation size. Signed-off-by: Brian Foster fs/xfs/libxfs/xfs_format.h | 4 ++-- fs/xfs/libxfs/xfs_sb.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit bfe46d4eb9258cb3340eaf77a07ecc45875b3b17 Author: Brian Foster Date: Fri May 29 08:53:00 2015 +1000 xfs: support min/max agbno args in block allocator The block allocator supports various arguments to tweak block allocation behavior and set allocation requirements. The sparse inode chunk feature introduces a new requirement not supported by the current arguments. Sparse inode allocations must convert or merge into an inode record that describes a fixed length chunk (64 inodes x inodesize). Full inode chunk allocations by definition always result in valid inode records. Sparse chunk allocations are smaller and the associated records can refer to blocks not owned by the inode chunk. This model can result in invalid inode records in certain cases. For example, if a sparse allocation occurs near the start of an AG, the aligned inode record for that chunk might refer to agbno 0. If an allocation occurs towards the end of the AG and the AG size is not aligned, the inode record could refer to blocks beyond the end of the AG. While neither of these scenarios directly result in corruption, they both insert invalid inode records and at minimum cause repair to complain, are unlikely to merge into full chunks over time and set land mines for other areas of code. To guarantee sparse inode chunk allocation creates valid inode records, support the ability to specify an agbno range limit for XFS_ALLOCTYPE_NEAR_BNO block allocations. The min/max agbno's are specified in the allocation arguments and limit the block allocation algorithms to that range. The starting 'agbno' hint is clamped to the range if the specified agbno is out of range. If no sufficient extent is available within the range, the allocation fails. For backwards compatibility, the min/max fields can be initialized to 0 to disable range limiting (e.g., equivalent to min=0,max=agsize). Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_alloc.c | 42 +++++++++++++++++++++++++++++++++++++----- fs/xfs/libxfs/xfs_alloc.h | 2 ++ 2 files changed, 39 insertions(+), 5 deletions(-) commit 999633d304f2467ae48104ea218b1e8fb0303d40 Author: Brian Foster Date: Fri May 29 08:51:37 2015 +1000 xfs: update free inode record logic to support sparse inode records xfs_difree_inobt() uses logic in a couple places that assume inobt records refer to fully allocated chunks. Specifically, the use of mp->m_ialloc_inos can cause problems for inode chunks that are sparsely allocated. Sparse inode chunks can, by definition, define a smaller number of inodes than a full inode chunk. Fix the logic that determines whether an inode record should be removed from the inobt to use the ir_free mask rather than ir_freecount. Fix the agi counters modification to use ir_freecount to add the actual number of inodes freed rather than assuming a full inode chunk. Also make sure that we preserve the behavior to not remove inode chunks if the block size is large enough for multiple inode chunks (e.g., bsize=64k, isize=512). This behavior was previously implicit in that in such configurations, ir.freecount of a single record never matches m_ialloc_inos. Hence, add some comments as well. Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_ialloc.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) commit d4cc540b08e95386777b7e644fb384c2adc0da32 Author: Brian Foster Date: Fri May 29 08:50:21 2015 +1000 xfs: create individual inode alloc. helper Inode allocation from sparse inode records must filter the ir_free mask against ir_holemask. In preparation for this requirement, create a helper to allocate an individual inode from an inode record. Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_ialloc.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) commit 498c5e9fcd10c89404601b222c1dbcb6e4f10a02 Author: Yunlei He Date: Thu May 7 18:11:37 2015 +0800 f2fs: add default mount options to remount I use f2fs filesystem with /data partition on my Android phone by the default mount options. When I remount /data in order to adding discard option to run some benchmarks, I find the default options such as background_gc, user_xattr and acl turned off. So I introduce a function named default_options in super.c. It do some default setting, and both mount and remount operations will call this function to complete default setting. Signed-off-by: Yunlei He Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/super.c | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) commit d690358b2bf43f5cb12ce07d209d09b1decb79c3 Author: Jaegeuk Kim Date: Wed May 6 18:23:21 2015 -0700 f2fs crypto: remove checking key context during lookup No matter what the key is valid or not, readdir shows the dir entries correctly. So, lookup should not failed. But, we expect further accesses should be denied from open, rename, link, and so on. Signed-off-by: Jaegeuk Kim fs/f2fs/namei.c | 10 ---------- 1 file changed, 10 deletions(-) commit edf3fb8e9e5771944815fadbd8ef6a7e43ef0f7c Author: Jaegeuk Kim Date: Tue May 5 20:20:29 2015 -0700 f2fs crypto: fix missing key when reading a page 1. mount $mnt 2. cp data $mnt/ 3. umount $mnt 4. log out 5. log in 6. cat $mnt/data -> panic, due to no i_crypt_info. Signed-off-by: Jaegeuk Kim fs/f2fs/crypto.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit cbaf042a3cc6c37f9005fd6952cbf2013ab7cc15 Author: Jaegeuk Kim Date: Wed Apr 29 15:10:53 2015 -0700 f2fs crypto: add symlink encryption This patch implements encryption support for symlink. Signed-off-by: Uday Savagaonkar Signed-off-by: Theodore Ts'o Signed-off-by: Jaegeuk Kim fs/f2fs/f2fs.h | 1 + fs/f2fs/inode.c | 5 +- fs/f2fs/namei.c | 142 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 142 insertions(+), 6 deletions(-) commit e7d5545285ededcf73dc7cbb9b7c65d0259f2b44 Author: Jaegeuk Kim Date: Wed Apr 29 17:02:18 2015 -0700 f2fs crypto: add filename encryption for roll-forward recovery This patch adds a bit flag to indicate whether or not i_name in the inode is encrypted. If this name is encrypted, we can't do recover_dentry during roll-forward. So, f2fs_sync_file() needs to do checkpoint, if this will be needed in future. Signed-off-by: Jaegeuk Kim fs/f2fs/dir.c | 8 +++++++- fs/f2fs/f2fs.h | 5 ++++- fs/f2fs/file.c | 4 +++- fs/f2fs/namei.c | 20 +++++++++++++++----- fs/f2fs/recovery.c | 13 ++++++++++++- 5 files changed, 41 insertions(+), 9 deletions(-) commit 6e22c691ba0a63ba89f516f0bf1828cf6dce372d Author: Jaegeuk Kim Date: Mon Apr 27 17:12:39 2015 -0700 f2fs crypto: add filename encryption for f2fs_lookup This patch implements filename encryption support for f2fs_lookup. Note that, f2fs_find_entry should be outside of f2fs_(un)lock_op(). Signed-off-by: Jaegeuk Kim fs/f2fs/dir.c | 79 ++++++++++++++++++++++++++++++++------------------------ fs/f2fs/f2fs.h | 9 ++++--- fs/f2fs/inline.c | 9 ++++--- 3 files changed, 56 insertions(+), 41 deletions(-) commit d8c6822a0556a88b13c8483599589752cf3e39f7 Author: Jaegeuk Kim Date: Mon Apr 27 16:26:24 2015 -0700 f2fs crypto: add filename encryption for f2fs_readdir This patch implements filename encryption support for f2fs_readdir. Signed-off-by: Jaegeuk Kim fs/f2fs/dir.c | 57 ++++++++++++++++++++++++++++++++++++++++++++------------ fs/f2fs/f2fs.h | 12 ++++++++---- fs/f2fs/inline.c | 13 +++++++------ 3 files changed, 60 insertions(+), 22 deletions(-) commit 9ea97163c6dad2430e06238acefe7a1d613629cf Author: Jaegeuk Kim Date: Mon Apr 27 14:51:02 2015 -0700 f2fs crypto: add filename encryption for f2fs_add_link This patch adds filename encryption support for f2fs_add_link. Signed-off-by: Jaegeuk Kim fs/f2fs/dir.c | 39 +++++++++++++++++++++++++++------------ 1 file changed, 27 insertions(+), 12 deletions(-) commit 4375a33664de17af9032b5f491a49bd256670927 Author: Jaegeuk Kim Date: Thu Apr 23 12:04:33 2015 -0700 f2fs crypto: add encryption support in read/write paths This patch adds encryption support in read and write paths. Note that, in f2fs, we need to consider cleaning operation. In cleaning procedure, we must avoid encrypting and decrypting written blocks. So, this patch implements move_encrypted_block(). Signed-off-by: Jaegeuk Kim fs/f2fs/checkpoint.c | 4 ++- fs/f2fs/data.c | 93 +++++++++++++++++++++++++++++++++++++++------------- fs/f2fs/f2fs.h | 1 + fs/f2fs/file.c | 2 +- fs/f2fs/gc.c | 79 +++++++++++++++++++++++++++++++++++++++++++- fs/f2fs/inline.c | 1 + fs/f2fs/node.c | 2 ++ fs/f2fs/segment.c | 24 +++++++++++--- 8 files changed, 177 insertions(+), 29 deletions(-) commit fcc85a4d86b5018f08717160c89c0eb50afd1dca Author: Jaegeuk Kim Date: Tue Apr 21 20:39:58 2015 -0700 f2fs crypto: activate encryption support for fs APIs This patch activates the following APIs for encryption support. The rules quoted by ext4 are: - An unencrypted directory may contain encrypted or unencrypted files or directories. - All files or directories in a directory must be protected using the same key as their containing directory. - Encrypted inode for regular file should not have inline_data. - Encrypted symlink and directory may have inline_data and inline_dentry. This patch activates the following APIs. 1. f2fs_link : validate context 2. f2fs_lookup : '' 3. f2fs_rename : '' 4. f2fs_create/f2fs_mkdir : inherit its dir's context 5. f2fs_direct_IO : do buffered io for regular files 6. f2fs_open : check encryption info 7. f2fs_file_mmap : '' 8. f2fs_setattr : '' 9. f2fs_file_write_iter : '' (Called by sys_io_submit) 10. f2fs_fallocate : do not support fcollapse 11. f2fs_evict_inode : free_encryption_info Signed-off-by: Michael Halcrow Signed-off-by: Theodore Ts'o Signed-off-by: Jaegeuk Kim fs/f2fs/data.c | 3 +++ fs/f2fs/dir.c | 6 ++++++ fs/f2fs/f2fs.h | 11 +++++++++++ fs/f2fs/file.c | 41 +++++++++++++++++++++++++++++++++++++++-- fs/f2fs/inline.c | 3 +++ fs/f2fs/inode.c | 4 ++++ fs/f2fs/namei.c | 38 ++++++++++++++++++++++++++++++++------ 7 files changed, 98 insertions(+), 8 deletions(-) commit 6b3bd08f93a849edd56595391a54100d607ad7e4 Author: Jaegeuk Kim Date: Sun Apr 26 00:12:50 2015 -0700 f2fs crypto: filename encryption facilities This patch adds filename encryption infra. Most of codes are copied from ext4 part, but changed to adjust f2fs directory structure. Signed-off-by: Uday Savagaonkar Signed-off-by: Ildar Muslukhov Signed-off-by: Michael Halcrow Signed-off-by: Theodore Ts'o Signed-off-by: Jaegeuk Kim fs/f2fs/Makefile | 3 +- fs/f2fs/crypto_fname.c | 490 +++++++++++++++++++++++++++++++++++++++++++++++++ fs/f2fs/f2fs.h | 50 +++++ 3 files changed, 542 insertions(+), 1 deletion(-) commit 0adda907f23df2e19355b58a20f0a7ff76587c6a Author: Jaegeuk Kim Date: Tue Apr 21 16:23:47 2015 -0700 f2fs crypto: add encryption key management facilities This patch copies from encrypt_key.c in ext4, and modifies for f2fs. Use GFP_NOFS, since _f2fs_get_encryption_info is called under f2fs_lock_op. Signed-off-by: Michael Halcrow Signed-off-by: Ildar Muslukhov Signed-off-by: Theodore Ts'o Signed-off-by: Jaegeuk Kim fs/f2fs/Makefile | 2 +- fs/f2fs/crypto_key.c | 206 ++++++++++++++++++++++++++++++++++++++++++++++++++ fs/f2fs/f2fs.h | 22 ++++++ fs/f2fs/f2fs_crypto.h | 3 + 4 files changed, 232 insertions(+), 1 deletion(-) commit 57e5055b0a5e33267b8be366ee52ce5cdc239bc7 Author: Jaegeuk Kim Date: Mon Apr 20 19:52:47 2015 -0700 f2fs crypto: add f2fs encryption facilities Most of parts were copied from ext4, except: - add f2fs_restore_and_release_control_page which returns control page and restore control page - remove ext4_encrypted_zeroout() - remove sbi->s_file_encryption_mode & sbi->s_dir_encryption_mode - add f2fs_end_io_crypto_work for mpage_end_io Signed-off-by: Michael Halcrow Signed-off-by: Ildar Muslukhov Signed-off-by: Theodore Ts'o Signed-off-by: Jaegeuk Kim fs/f2fs/Makefile | 2 +- fs/f2fs/crypto.c | 560 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ fs/f2fs/f2fs.h | 25 +++ fs/f2fs/super.c | 3 + 4 files changed, 589 insertions(+), 1 deletion(-) commit f424f664f0e8949361d268e2e91c7acc8cf63eb2 Author: Jaegeuk Kim Date: Mon Apr 20 15:19:06 2015 -0700 f2fs crypto: add encryption policy and password salt support This patch adds encryption policy and password salt support through ioctl implementation. It adds three ioctls: F2FS_IOC_SET_ENCRYPTION_POLICY, F2FS_IOC_GET_ENCRYPTION_POLICY, F2FS_IOC_GET_ENCRYPTION_PWSALT, which use xattr operations. Note that, these definition and codes are taken from ext4 crypto support. For f2fs, xattr operations and on-disk flags for superblock and inode were changed. Signed-off-by: Michael Halcrow Signed-off-by: Theodore Ts'o Signed-off-by: Ildar Muslukhov Signed-off-by: Jaegeuk Kim fs/f2fs/Makefile | 1 + fs/f2fs/crypto_policy.c | 206 ++++++++++++++++++++++++++++++++++++++++++++++++ fs/f2fs/f2fs.h | 16 ++++ fs/f2fs/file.c | 93 ++++++++++++++++++++++ fs/f2fs/xattr.c | 3 + 5 files changed, 319 insertions(+) commit b93531dd7b9b39faace22abde2d5296e87b50499 Author: Jaegeuk Kim Date: Fri Apr 10 16:43:31 2015 -0700 f2fs crypto: add encryption xattr support This patch add some definition for enrcyption xattr. Signed-off-by: Jaegeuk Kim fs/f2fs/xattr.h | 4 ++++ 1 file changed, 4 insertions(+) commit d33793fb89c2e3576d1f219e58f59365484f475e Author: Jaegeuk Kim Date: Fri Apr 10 16:28:26 2015 -0700 f2fs crypto: add f2fs encryption Kconfig This patch adds f2fs encryption config. This patch integrates: "ext4 crypto: require CONFIG_CRYPTO_CTR if ext4 encryption is enabled On arm64 this is apparently needed for CTS mode to function correctly. Otherwise attempts to use CTS return ENOENT." Signed-off-by: Michael Halcrow Signed-off-by: Theodore Ts'o Signed-off-by: Jaegeuk Kim fs/f2fs/Kconfig | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) commit cde4de1205770514005663d70a9a7d81cb555085 Author: Jaegeuk Kim Date: Mon Apr 20 13:57:51 2015 -0700 f2fs crypto: declare some definitions for f2fs encryption feature This definitions will be used by inode and superblock for encyption. Signed-off-by: Jaegeuk Kim fs/f2fs/f2fs.h | 55 ++++++++++++++++++ fs/f2fs/f2fs_crypto.h | 147 ++++++++++++++++++++++++++++++++++++++++++++++++ include/linux/f2fs_fs.h | 4 +- 3 files changed, 205 insertions(+), 1 deletion(-) commit 7f63eb77af7bd7580b27b0c3f249f7efaa5c63ae Author: Jaegeuk Kim Date: Fri May 8 19:30:32 2015 -0700 f2fs: report unwritten area in f2fs_fiemap This patch slightly changes f2fs_fiemap function to report unwritten area. Signed-off-by: Jaegeuk Kim fs/f2fs/data.c | 117 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-- fs/f2fs/f2fs.h | 4 +- 2 files changed, 117 insertions(+), 4 deletions(-) commit 3589a9190b927f68339f6c4779196360dd453a70 Author: Jaegeuk Kim Date: Fri May 8 16:37:28 2015 -0700 f2fs: avoid value overflow in showing current status This patch fixes overflow when do cat /sys/kernel/debug/f2fs/status. If a section is relatively large, dist value can be overflowed. Reported-by: Yossi Goldfill Signed-off-by: Jaegeuk Kim fs/f2fs/debug.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 75cd4e098d178433436abce08146a21647bb4585 Author: Chao Yu Date: Wed May 6 13:11:13 2015 +0800 f2fs: support FALLOC_FL_ZERO_RANGE Now, FALLOC_FL_ZERO_RANGE flag in ->fallocate is supported in ext4/xfs. In commit, the semantics of this flag is descripted as following:" 1) Make sure that both offset and len are block size aligned. 2) Update the i_size of inode by len bytes. 3) Compute the file's logical block number against offset. If the computed block number is not the starting block of the extent, split the extent such that the block number is the starting block of the extent. 4) Shift all the extents which are lying between [offset, last allocated extent] towards right by len bytes. This step will make a hole of len bytes at offset." This patch implements fallocate's FALLOC_FL_ZERO_RANGE for f2fs. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/file.c | 106 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 105 insertions(+), 1 deletion(-) commit b4ace33703243fed56f8bfc80a001533acb9decb Author: Chao Yu Date: Wed May 6 13:09:46 2015 +0800 f2fs: support FALLOC_FL_COLLAPSE_RANGE Now, FALLOC_FL_COLLAPSE_RANGE flag in ->fallocate is supported in ext4/xfs. In commit, the semantics of this flag is descripted as following:" 1) It collapses the range lying between offset and length by removing any data blocks which are present in this range and than updates all the logical offsets of extents beyond "offset + len" to nullify the hole created by removing blocks. In short, it does not leave a hole. 2) It should be used exclusively. No other fallocate flag in combination. 3) Offset and length supplied to fallocate should be fs block size aligned in case of xfs and ext4. 4) Collaspe range does not work beyond i_size." This patch implements fallocate's FALLOC_FL_COLLAPSE_RANGE for f2fs. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/file.c | 135 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 132 insertions(+), 3 deletions(-) commit 19f106bc03e62739961249a29916ee3602ac3de9 Author: Chao Yu Date: Wed May 6 13:08:06 2015 +0800 f2fs: introduce f2fs_replace_block() for reuse Introduce a generic function replace_block base on recover_data_page, and export it. So with it we can operate file's meta data which is in CP/SSA area when we invoke fallocate with FALLOC_FL_COLLAPSE_RANGE flag. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/f2fs.h | 4 ++-- fs/f2fs/recovery.c | 2 +- fs/f2fs/segment.c | 31 ++++++++++++++++++++++++------- 3 files changed, 27 insertions(+), 10 deletions(-) commit d5b692b786e1aea68d2c6737dd0abeebc1dad619 Author: Chao Yu Date: Thu Apr 30 18:35:50 2015 +0800 f2fs: do not re-lookup nat cache with same nid In set_node_addr, we try to lookup cached nat entry of inode and then set flag in it. But previously in this function, we have already grabbed nat entry with current node id, if the node id is the same as the one of inode, we do not need to lookup it in cache again. So this patch adds condition judgment for reducing unneeded lookup. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/node.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 402f721d2fa84cae38a403873fb4efdbbca06aff Author: Chao Yu Date: Thu Apr 30 18:34:41 2015 +0800 f2fs: remove unneeded f2fs_make_empty declaration Remove f2fs_make_empty() declaration, since the main body of this function is move into do_make_empty_dir() and the function is obsolete now. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/f2fs.h | 1 - 1 file changed, 1 deletion(-) commit 836b5a6356ac49a4631c06bc87b0ea02f41623ca Author: Jaegeuk Kim Date: Thu Apr 30 22:50:06 2015 -0700 f2fs: issue discard with finally produced len and minlen This patch determines to issue discard commands by comparing given minlen and the length of produced final candidates. Signed-off-by: Jaegeuk Kim fs/f2fs/checkpoint.c | 2 +- fs/f2fs/f2fs.h | 2 +- fs/f2fs/segment.c | 14 ++++++-------- 3 files changed, 8 insertions(+), 10 deletions(-) commit a66cdd985532e69999b79249cd3b4a6bccd0f84b Author: Jaegeuk Kim Date: Thu Apr 30 22:37:50 2015 -0700 f2fs: introduce discard_map for f2fs_trim_fs This patch adds a bitmap for discard issues from f2fs_trim_fs. There-in rule is to issue discard commands only for invalidated blocks after mount. Once mount is done, f2fs_trim_fs trims out whole invalid area. After ehn, it will not issue and discrads redundantly. Signed-off-by: Jaegeuk Kim fs/f2fs/checkpoint.c | 3 ++- fs/f2fs/debug.c | 2 +- fs/f2fs/f2fs.h | 21 ++++++++++++++++ fs/f2fs/segment.c | 71 +++++++++++++++++++++++++++++++--------------------- fs/f2fs/segment.h | 1 + 5 files changed, 68 insertions(+), 30 deletions(-) commit d6c67a4fee866ad95fe1d727f80a56f956737706 Author: Jaegeuk Kim Date: Fri May 1 11:08:59 2015 -0700 f2fs: revmove spin_lock for write_orphan_inodes This patch removes spin_lock, since this is covered by f2fs_lock_op already. And, we should avoid to use page operations inside spin_lock. Signed-off-by: Jaegeuk Kim fs/f2fs/checkpoint.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 43f3eae1d3b1de6a4f7e39ef9c363ec6f8b9c8d4 Author: Jaegeuk Kim Date: Thu Apr 30 17:00:33 2015 -0700 f2fs: split find_data_page according to specific purposes This patch splits find_data_page as follows. 1. f2fs_gc - use get_read_data_page() with read only 2. find_in_level - use find_data_page without locked page 3. truncate_partial_page - In the case cache_only mode, just drop cached page. - Ohterwise, use get_lock_data_page() and guarantee to truncate Signed-off-by: Jaegeuk Kim fs/f2fs/data.c | 127 ++++++++++++++++++++++----------------------------------- fs/f2fs/dir.c | 2 +- fs/f2fs/f2fs.h | 3 +- fs/f2fs/file.c | 26 +++++++----- fs/f2fs/gc.c | 5 +-- 5 files changed, 68 insertions(+), 95 deletions(-) commit 2fb2c954968bedddfeb3895969fbdf2ae0679ed3 Author: Jaegeuk Kim Date: Thu Apr 30 18:58:22 2015 -0700 f2fs: fix counting the number of inline_data inodes This patch fixes to count the missing symlink case. Signed-off-by: Jaegeuk Kim fs/f2fs/namei.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 2dcf51ab2f6ddec795371dad9a8eeca4cda4eee0 Author: Jaegeuk Kim Date: Wed Apr 29 18:31:19 2015 -0700 f2fs: add need_dentry_mark This patch introduces need_dentry_mark() to clean up and avoid redundant node locks. Signed-off-by: Jaegeuk Kim fs/f2fs/f2fs.h | 1 + fs/f2fs/node.c | 35 +++++++++++++++++------------------ 2 files changed, 18 insertions(+), 18 deletions(-) commit 01f28610a1691078d0f7ba62b365567f8799f07c Author: Jaegeuk Kim Date: Wed Apr 29 11:18:42 2015 -0700 f2fs: fix race on allocating and deallocating a dentry block There are two threads: f2fs_delete_entry() get_new_data_page() f2fs_reserve_block() dn.blkaddr = XXX lock_page(dentry_block) truncate_hole() dn.blkaddr = NULL unlock_page(dentry_block) lock_page(dentry_block) fill the block from XXX address add new dentries unlock_page(dentry_block) Later, f2fs_write_data_page() will truncate the dentry_block, since its block address is NULL. The reason for this was due to the wrong lock order. In this case, we should do f2fs_reserve_block() after locking its dentry block. Signed-off-by: Jaegeuk Kim fs/f2fs/data.c | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) commit eaa693f4dcf1ca64b41b02d907e9c401c085cf59 Author: Jaegeuk Kim Date: Sun Apr 26 00:15:29 2015 -0700 f2fs: introduce dot and dotdot name check This patch adds an inline function to check dot and dotdot names. Signed-off-by: Jaegeuk Kim fs/f2fs/f2fs.h | 11 +++++++++++ fs/f2fs/hash.c | 3 +-- 2 files changed, 12 insertions(+), 2 deletions(-) commit c879f90da96c6369080be868162ef96aeef4a439 Author: Jaegeuk Kim Date: Fri Apr 24 14:34:30 2015 -0700 f2fs: move get_page for gc victims This patch moves getting victim page into move_data_page. Signed-off-by: Jaegeuk Kim fs/f2fs/gc.c | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) commit 05ca3632e5a73b493b27ec3e2a337885563abff0 Author: Jaegeuk Kim Date: Thu Apr 23 14:38:15 2015 -0700 f2fs: add sbi and page pointer in f2fs_io_info This patch adds f2fs_sb_info and page pointers in f2fs_io_info structure. With this change, we can reduce a lot of parameters for IO functions. Signed-off-by: Jaegeuk Kim fs/f2fs/checkpoint.c | 9 +++++++-- fs/f2fs/data.c | 47 +++++++++++++++++++++++++++++------------------ fs/f2fs/f2fs.h | 18 ++++++++---------- fs/f2fs/file.c | 2 +- fs/f2fs/gc.c | 4 +++- fs/f2fs/inline.c | 4 +++- fs/f2fs/node.c | 8 ++++++-- fs/f2fs/segment.c | 38 ++++++++++++++++++++------------------ fs/f2fs/super.c | 2 +- fs/f2fs/trace.c | 6 +++--- fs/f2fs/trace.h | 4 ++-- 11 files changed, 83 insertions(+), 59 deletions(-) commit 01b960e94a58d91518d5dd7001c5cd0c57335251 Author: Jaegeuk Kim Date: Thu Apr 23 10:27:21 2015 -0700 f2fs: add f2fs_may_inline_{data, dentry} This patch adds f2fs_may_inline_data and f2fs_may_inline_dentry. Signed-off-by: Jaegeuk Kim fs/f2fs/f2fs.h | 3 ++- fs/f2fs/file.c | 2 +- fs/f2fs/inline.c | 13 ++++++++++++- fs/f2fs/namei.c | 4 ++-- 4 files changed, 17 insertions(+), 5 deletions(-) commit 06957e8fe6945e2d3c4ab01d36e52bf31a93a05c Author: Jaegeuk Kim Date: Wed Apr 22 11:40:27 2015 -0700 f2fs: clean up f2fs_lookup This patch cleans up to avoid deep indentation. Signed-off-by: Jaegeuk Kim fs/f2fs/namei.c | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) commit f1e8866016b53bd0ea108ae9adbb52da1dd53dab Author: Jaegeuk Kim Date: Thu Apr 9 11:20:42 2015 -0700 f2fs: expose f2fs_mpage_readpages This patch implements f2fs_mpage_readpages for further optimization on encryption support. The basic code was taken from fs/mpage.c, and changed to be simple by adjusting that block_size is equal to page_size in f2fs. Signed-off-by: Jaegeuk Kim fs/f2fs/data.c | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 154 insertions(+), 3 deletions(-) commit 26d815ad75156a1cf2f6c7ba94cdfd32849879d7 Author: Jaegeuk Kim Date: Mon Apr 20 18:49:51 2015 -0700 f2fs: introduce f2fs_commit_super This patch introduces f2fs_commit_super to write updated superblock. Signed-off-by: Jaegeuk Kim fs/f2fs/f2fs.h | 1 + fs/f2fs/super.c | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+) commit 003a3e1d60b0bb5cfb4feffb05a2083db2346364 Author: Jaegeuk Kim Date: Mon Apr 6 19:55:34 2015 -0700 f2fs: add f2fs_map_blocks This patch introduces f2fs_map_blocks structure likewise ext4_map_blocks. Now, f2fs uses f2fs_map_blocks when handling get_block. Signed-off-by: Jaegeuk Kim fs/f2fs/data.c | 72 ++++++++++++++++++++++++++------------------- fs/f2fs/f2fs.h | 16 ++++++++++ include/trace/events/f2fs.h | 28 +++++++++--------- 3 files changed, 71 insertions(+), 45 deletions(-) commit 76f105a2dbcd47509bac6ba8d94cb3759a3e6e9d Author: Jaegeuk Kim Date: Mon Apr 13 15:10:36 2015 -0700 f2fs: add feature facility in superblock This patch introduces a feature in superblock, which will indicate any new features for f2fs. Signed-off-by: Jaegeuk Kim fs/f2fs/f2fs.h | 7 +++++++ include/linux/f2fs_fs.h | 3 ++- 2 files changed, 9 insertions(+), 1 deletion(-) commit b5492af78c89b52a8e7273445b2248b397a15333 Author: Jaegeuk Kim Date: Mon Apr 20 13:44:41 2015 -0700 f2fs: move existing definitions into f2fs.h This patch moves some inode-related definitions from node.h to f2fs.h to add new features. Signed-off-by: Jaegeuk Kim fs/f2fs/f2fs.h | 22 ++++++++++++++++++++++ fs/f2fs/node.h | 22 ---------------------- 2 files changed, 22 insertions(+), 22 deletions(-) commit 0040b933187b11f78e83dd162a31d64a46be4e37 Author: Jaegeuk Kim Date: Mon Apr 20 11:52:23 2015 -0700 f2fs: add missing version info in superblock The mkfs.f2fs remains kernel version in superblock, but f2fs module has not added that so far. Signed-off-by: Jaegeuk Kim include/linux/f2fs_fs.h | 5 +++++ 1 file changed, 5 insertions(+) commit 5538d294dd6661de27b567fe69b597c99cb54cdd Author: David S. Miller Date: Thu May 28 11:35:41 2015 -0700 treewide: Add missing vmalloc.h inclusion. All of these files were only building on non-x86 because of the indirect of inclusion of vmalloc.h by, of all things, "net/inet_hashtables.h" None of this got caught during build testing, because on x86 there is an implicit vmalloc.h include via on of the arch asm/ headers. This fixes all of these Reported-by: Stephen Rothwell Signed-off-by: David S. Miller drivers/scsi/qla2xxx/tcm_qla2xxx.c | 1 + drivers/target/iscsi/iscsi_target.c | 1 + drivers/target/target_core_file.c | 1 + drivers/target/target_core_pr.c | 1 + drivers/target/target_core_transport.c | 1 + drivers/target/target_core_user.c | 1 + drivers/vhost/scsi.c | 1 + 7 files changed, 7 insertions(+) commit 3c6296f716ebef704b76070d90567ab4faa8462c Author: Steven Rostedt (Red Hat) Date: Thu May 28 13:21:34 2015 -0400 ring-buffer: Remove useless unused tracing_off_permanent() The tracing_off_permanent() call is a way to disable all ring_buffers. Nothing uses it and nothing should use it, as tracing_off() and friends are better, as they disable the ring buffers related to tracing. The tracing_off_permanent() even disabled non tracing ring buffers. This is a bit drastic, and was added to handle NMIs doing outputs that could corrupt the ring buffer when only tracing used them. It is now obsolete and adds a little overhead, it should be removed. Signed-off-by: Steven Rostedt include/linux/kernel.h | 6 ----- kernel/trace/ring_buffer.c | 61 ---------------------------------------------- 2 files changed, 67 deletions(-) commit 289a5a25c5d0949e4d9b9ca4f334b6af5a83e090 Author: Steven Rostedt (Red Hat) Date: Thu May 28 13:14:51 2015 -0400 ring-buffer: Give NMIs a chance to lock the reader_lock Currently, if an NMI does a dump of a ring buffer, it disables all ring buffers from ever doing any writes again. This is because it wont take the locks for the cpu_buffer and this can cause corruption if it preempted a read, or a read happens on another CPU for the current cpu buffer. This is a bit overkill. First, it should at least try to take the lock, and if it fails then disable it. Also, there's no need to disable all ring buffers, even those that are unrelated to what is being read. Only disable the per cpu ring buffer that is being read if it can not get the lock for it. Signed-off-by: Steven Rostedt kernel/trace/ring_buffer.c | 72 ++++++++++++++++++++++++---------------------- 1 file changed, 37 insertions(+), 35 deletions(-) commit 542459e7ffdd3b3b90eda31a5a80330c6fb4526c Merge: 898a7f3 52dfcbf Author: Arnd Bergmann Date: Thu May 28 22:41:13 2015 +0200 Merge tag 'omap-for-v4.2/dt-pt1' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/dt Merge "Device tree related changes for omaps" from Tony Lindgren: - Configure MMC data lines 4..8 for 1.8V IO on boards that are using them as GPIOs instead of MMC data lines - Add support for Baltos IR5221 - Add device tree support for LogicPD Torpedo devkit - Add 3717 core pinctrl region - Add gta04 1w and GSM audio support - Add wilink and ov2659 support for am437x-gp-evm - Add am335x-evm bluetooth and mmc3 support - Enable omap5-uevm uart wakeup interrupt - Enable I2C2 on BeagleBone as it's used for the capes - Use defines for LDP GPIO keys * tag 'omap-for-v4.2/dt-pt1' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: dts: am335x-evm: add mmc3 and wlan definitions to dts ARM: dts: Enable SDIO card interrupt for 37xx-evm ARM: dts: Fix ldp gpio keys to use defines ARM: dts: Beaglebone i2c definitions ARM: dts: am437x-gp-evm: add DT nodes for ov2659 sensor ARM: dts: add DTS for Baltos IR5221 ARM: dts: omap5-uevm: Add Uart wakeup interrupt ARM: dts: omap3-gta04: Add GSM audio support ARM: dts: am335x-evm: add bluetooth support ARM: dts: am437x-gp-evm: add wilink8 support ARM: dts: omap3-gta04: Add hdqw1 support ARM: dts: add core2 padconf region for am3517 ARM: dts: Add minimal support for LogicPD Torpedo DM3730 devkit ARM: OMAP3: Add support for configuring MMC pins as GPIO pins commit 01f202c7b4b40025f3ea4721c52e7f78545e3b07 Author: Liam Girdwood Date: Thu May 28 14:14:18 2015 +0800 ASoC: Intel: fix broadwell module removing failed issue In haswell-pcm module unloading, we can't free runtime modules directly, for they may be already freed in runtime suspend. Here add executing suspend call to unload runtime modules, only for status not equal to RPM_SUSPEND, to fix broadwell module removing failed issue. Signed-off-by: Liam Girdwood Signed-off-by: Jie Yang Signed-off-by: Mark Brown sound/soc/intel/haswell/sst-haswell-pcm.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit e5babdf928e5d0c432a8d4b99f20421ce14d1ab6 Author: Uwe Kleine-König Date: Thu May 28 10:22:10 2015 +0200 mtd: dc21285: use raw spinlock functions for nw_gpio_lock Since commit bd31b85960a7 (which is in 3.2-rc1) nw_gpio_lock is a raw spinlock that needs usage of the corresponding raw functions. This fixes: drivers/mtd/maps/dc21285.c: In function 'nw_en_write': drivers/mtd/maps/dc21285.c:41:340: warning: passing argument 1 of 'spinlock_check' from incompatible pointer type spin_lock_irqsave(&nw_gpio_lock, flags); In file included from include/linux/seqlock.h:35:0, from include/linux/time.h:5, from include/linux/stat.h:18, from include/linux/module.h:10, from drivers/mtd/maps/dc21285.c:8: include/linux/spinlock.h:299:102: note: expected 'struct spinlock_t *' but argument is of type 'struct raw_spinlock_t *' static inline raw_spinlock_t *spinlock_check(spinlock_t *lock) ^ drivers/mtd/maps/dc21285.c:43:25: warning: passing argument 1 of 'spin_unlock_irqrestore' from incompatible pointer type spin_unlock_irqrestore(&nw_gpio_lock, flags); ^ In file included from include/linux/seqlock.h:35:0, from include/linux/time.h:5, from include/linux/stat.h:18, from include/linux/module.h:10, from drivers/mtd/maps/dc21285.c:8: include/linux/spinlock.h:370:91: note: expected 'struct spinlock_t *' but argument is of type 'struct raw_spinlock_t *' static inline void spin_unlock_irqrestore(spinlock_t *lock, unsigned long flags) Fixes: bd31b85960a7 ("locking, ARM: Annotate low level hw locks as raw") Signed-off-by: Uwe Kleine-König Signed-off-by: Brian Norris drivers/mtd/maps/dc21285.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 9e5acbc21380ca8bd470ec23c139dd4e245a221d Author: Denys Vlasenko Date: Wed May 20 13:02:37 2015 +0200 radeon: Deinline indirect register accessor functions This patch deinlines indirect register accessor functions. These functions perform two mmio accesses, framed by spin lock/unlock. Spin lock/unlock by itself takes more than 50 cycles in ideal case (if lock is exclusively cached on current CPU). With this .config: http://busybox.net/~vda/kernel_config, after uninlining these functions have sizes and callsite counts as follows: r600_uvd_ctx_rreg: 111 bytes, 4 callsites r600_uvd_ctx_wreg: 113 bytes, 5 callsites eg_pif_phy0_rreg: 106 bytes, 13 callsites eg_pif_phy0_wreg: 108 bytes, 13 callsites eg_pif_phy1_rreg: 107 bytes, 13 callsites eg_pif_phy1_wreg: 108 bytes, 13 callsites rv370_pcie_rreg: 111 bytes, 21 callsites rv370_pcie_wreg: 113 bytes, 24 callsites r600_rcu_rreg: 111 bytes, 16 callsites r600_rcu_wreg: 113 bytes, 25 callsites cik_didt_rreg: 106 bytes, 10 callsites cik_didt_wreg: 107 bytes, 10 callsites tn_smc_rreg: 106 bytes, 126 callsites tn_smc_wreg: 107 bytes, 116 callsites eg_cg_rreg: 107 bytes, 20 callsites eg_cg_wreg: 108 bytes, 52 callsites Functions r100_mm_rreg() and r100_mm_rreg() have a fast path and a locked (slow) path. This patch deinlines only slow path. r100_mm_rreg_slow: 78 bytes, 2083 callsites r100_mm_wreg_slow: 81 bytes, 3570 callsites Reduction in code size is more than 65,000 bytes: text data bss dec hex filename 85740176 22294680 20627456 128662312 7ab3b28 vmlinux.before 85674192 22294776 20627456 128598664 7aa4288 vmlinux Signed-off-by: Denys Vlasenko Cc: Christian König Cc: Alex Deucher Cc: linux-kernel@vger.kernel.org Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/cik.c | 25 +++++ drivers/gpu/drm/radeon/evergreen.c | 69 ++++++++++++ drivers/gpu/drm/radeon/ni.c | 25 +++++ drivers/gpu/drm/radeon/r100.c | 22 ++++ drivers/gpu/drm/radeon/r300.c | 25 +++++ drivers/gpu/drm/radeon/r600.c | 47 ++++++++ drivers/gpu/drm/radeon/radeon.h | 225 +++++-------------------------------- 7 files changed, 241 insertions(+), 197 deletions(-) commit bde90062a38160fdce0d51a4340bb93c1a8f1114 Author: Brian Norris Date: Thu May 28 11:07:48 2015 -0700 mtd: chips: fixup dependencies, to prevent build error Commit 4612c715a6ea ("mtd: cfi: deinline large functions") moved some code into the cfi_util library without creating a new dependency. So we can get build failures like the following, when CONFIG_MTD_JEDECPROBE=y and CONFIG_MTD_CFI_UTIL=m. drivers/built-in.o: In function `jedec_read_id': >> jedec_probe.c:(.text+0x187ed8): undefined reference to `cfi_build_cmd_addr' drivers/built-in.o: In function `jedec_read_mfr': >> jedec_probe.c:(.text+0x187f4a): undefined reference to `cfi_build_cmd_addr' drivers/built-in.o: In function `jedec_reset': >> jedec_probe.c:(.text+0x187fe0): undefined reference to `cfi_send_gen_cmd' >> jedec_probe.c:(.text+0x188004): undefined reference to `cfi_send_gen_cmd' >> jedec_probe.c:(.text+0x18802b): undefined reference to `cfi_send_gen_cmd' >> jedec_probe.c:(.text+0x18804e): undefined reference to `cfi_send_gen_cmd' drivers/built-in.o: In function `jedec_probe_chip': >> jedec_probe.c:(.text+0x188130): undefined reference to `cfi_build_cmd_addr' >> jedec_probe.c:(.text+0x18814d): undefined reference to `cfi_build_cmd_addr' >> jedec_probe.c:(.text+0x1881dc): undefined reference to `cfi_send_gen_cmd' >> jedec_probe.c:(.text+0x188203): undefined reference to `cfi_send_gen_cmd' >> jedec_probe.c:(.text+0x18822d): undefined reference to `cfi_send_gen_cmd' >> jedec_probe.c:(.text+0x1884c0): undefined reference to `cfi_send_gen_cmd' >> jedec_probe.c:(.text+0x1884e7): undefined reference to `cfi_send_gen_cmd' drivers/built-in.o:jedec_probe.c:(.text+0x188511): more undefined references to `cfi_send_gen_cmd' follow drivers/built-in.o: In function `jedec_probe_chip': >> jedec_probe.c:(.text+0x188618): undefined reference to `cfi_build_cmd' So let's express the dependency properly. Reported-by: kbuild test robot Signed-off-by: Brian Norris drivers/mtd/chips/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 94a8bf974054e63dfb493f9c22db123c37200955 Author: Geert Uytterhoeven Date: Thu May 21 14:10:26 2015 +0200 of/overlay: Grammar s/an negative/a negative/ Signed-off-by: Geert Uytterhoeven Signed-off-by: Rob Herring drivers/of/overlay.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 3b1a2c97210b1edd1a999ff8c1f72ab28f7609f7 Author: Geert Uytterhoeven Date: Wed May 13 16:33:56 2015 +0200 of/fdt: Make fdt blob input parameters of unflatten functions const Operations to unflatten fdt blobs never modify the input blobs, hence make them const. Now we no longer need to cast arbitrary const data to "void *" when calling of_fdt_unflatten_tree(). Signed-off-by: Geert Uytterhoeven Signed-off-by: Rob Herring drivers/of/fdt.c | 6 +++--- include/linux/of_fdt.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) commit 3386e0fa905c31bf1dafa2cbe2ecceb7e5ce2e66 Author: Joachim Eastwood Date: Wed May 6 20:09:09 2015 +0200 of: add helper function to retrive match data It's a common operation for device drivers to retrive the data member from of_device_id struct in their probe function. Most driver end up doing: const struct of_device_id *match; match = of_match_device(driver_of_match, &pdev->dev); driver->data = match->data; With the of_device_get_match_data helper function all this can done in one go. Signed-off-by: Joachim Eastwood [robh: add missing inline to dummmy declaration] Signed-off-by: Rob Herring drivers/of/device.c | 12 ++++++++++++ include/linux/of_device.h | 7 +++++++ 2 files changed, 19 insertions(+) commit 8584d4fcab2222e2501e1c95b4d063cd4a76891d Author: Enric Balletbo i Serra Date: Thu May 28 09:49:50 2015 -0700 ARM: dts: am335x-sl50: Add Toby-Churchill SL50 board support. Add support for Lightwriter SL50 series board, a small, robust and portable Voice Output Communication Aids (VOCA) designed to meet the particular and changing needs of people with speech loss resulting from a wide range of acquired, progressive and congenital conditions. Signed-off-by: Enric Balletbo i Serra Reviewed-by: Javier Martinez Canillas Reviewed-by: Andy Simpkins Signed-off-by: Tony Lindgren arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/am335x-sl50.dts | 482 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 483 insertions(+) commit 8db087a72334ec40ca4f0c3dcf28444aea4dfe58 Author: Enric Balletbo i Serra Date: Thu May 28 09:49:49 2015 -0700 of: Add vendor prefix for Toby Churchill Ltd. Toby Churchill Ltd is a global provider of assistive technology. Signed-off-by: Enric Balletbo i Serra Signed-off-by: Tony Lindgren Documentation/devicetree/bindings/vendor-prefixes.txt | 1 + 1 file changed, 1 insertion(+) commit e04beeb7b6f4c9f05d5f928c4f87c34f2876cee1 Author: Anthoine Bourgeois Date: Thu May 28 09:49:49 2015 -0700 ARM: dts: omap3-devkit8000: Add dm9000 support Support dm9000 network interface in the device tree of devkit8000 board. Signed-off-by: Anthoine Bourgeois Signed-off-by: Tony Lindgren arch/arm/boot/dts/omap3-devkit8000.dts | 41 ++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) commit 74cf0bc75f1671b8da3b2e6ef7b2dc75cab0016a Author: Mark Rutland Date: Tue May 26 17:23:39 2015 +0100 arm: perf: unify perf_event{,_cpu}.c Now that the arm_pmu framework is only used for CPU PMUs, there's no reason to keep the pseudo-generic and CPU-specific framework portions separate. This patch folds the two into perf_event.c. Signed-off-by: Mark Rutland [will: fixed up irq cfg to match upstream] Signed-off-by: Will Deacon arch/arm/kernel/Makefile | 2 +- arch/arm/kernel/perf_event.c | 340 ++++++++++++++++++++++++++++++++++++ arch/arm/kernel/perf_event_cpu.c | 363 --------------------------------------- 3 files changed, 341 insertions(+), 364 deletions(-) commit 9535ebc5e9cce28825b1919304e04f4af991ba2c Author: Arnd Bergmann Date: Thu May 28 16:35:42 2015 +0200 staging/wilc1000: fix Kconfig dependencies The newly added wilc1000 driver lacks several Kconfig dependencies, resulting in a multitude of randconfig build errors, e.g.: drivers/built-in.o: In function `WILC_WFI_mgmt_tx_cancel_wait': binder.c:(.text+0x12bd28): undefined reference to `cfg80211_remain_on_channel_expired' drivers/built-in.o: In function `WILC_WFI_CfgSetChannel': binder.c:(.text+0x12c9d8): undefined reference to `ieee80211_frequency_to_channel' drivers/built-in.o: In function `WILC_WFI_CfgAlloc': binder.c:(.text+0x132530): undefined reference to `wiphy_new_nm' drivers/built-in.o: In function `wilc_netdev_init': binder.c:(.text+0x1356d0): undefined reference to `register_inetaddr_notifier' drivers/built-in.o: In function `linux_spi_init': binder.c:(.text+0x210a68): undefined reference to `spi_register_driver' This change ensures that we always have at least one of SPI or MMC enabled, and are only able to pick an interface that works. It also adds all the missing dependencies for networking infrastructure (cfg80211, wext, and ipv4). In order to make it readable, I also took the liberty of re-indenting the Kconfig file to the normal conventions. Reported-by: kbuild test robot Signed-off-by: Arnd Bergmann Acked-by: Nicolas Ferre Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/Kconfig | 76 +++++++++++++++++++++------------------- 1 file changed, 39 insertions(+), 37 deletions(-) commit 29ba0f37f1578db268ac805c117365923b9a7663 Author: Mark Rutland Date: Tue May 26 17:23:38 2015 +0100 arm: perf: factor out armv7 pmu driver Now that the core arm perf code maintains no global state and all microarchitecture-specific PMU data can be fed in through the shared probe function, it's possible to use it as a library and get rid of the C file includes we have currently. This patch factors out the ARMv7-specific portions out into the ARMv7 driver. For the moment this is always built if perf event support is enabled, but the preprocessor guards will leave behind an empty file. Now that perf_event_cpu.c contains no microarchitecture-specific data, the associated probing code is removed, completing its relegation to a library file. The vestigal "arm-pmu" platform device ID is removed in this patch, as it has been unused since platform files were updated to specify a more specific PMU variant. Signed-off-by: Mark Rutland Signed-off-by: Will Deacon arch/arm/kernel/Makefile | 3 +- arch/arm/kernel/perf_event_cpu.c | 53 --------------------------- arch/arm/kernel/perf_event_v7.c | 77 +++++++++++++++++++--------------------- 3 files changed, 39 insertions(+), 94 deletions(-) commit 1fe115b303f301916e1430667c5b03451f56c733 Author: Mark Rutland Date: Tue May 26 17:23:37 2015 +0100 arm: perf: factor out armv6 pmu driver Now that the core arm perf code maintains no global state and all microarchitecture-specific PMU data can be fed in through the shared probe function, it's possible to use it as a library and get rid of the C file includes we have currently. This patch factors out the ARMv6-specific portions out into the ARMv6 driver. For the moment this is always built if perf event support is enabled, but the preprocessor guards will leave behind an empty file. Signed-off-by: Mark Rutland Signed-off-by: Will Deacon arch/arm/kernel/Makefile | 3 ++- arch/arm/kernel/perf_event_cpu.c | 9 -------- arch/arm/kernel/perf_event_v6.c | 49 +++++++++++++++++++++++++++++----------- 3 files changed, 38 insertions(+), 23 deletions(-) commit a12c72cc3e6938191cabeefff44b959a823d3d76 Author: Mark Rutland Date: Tue May 26 17:23:36 2015 +0100 arm: perf: factor out xscale pmu driver Now that the core arm perf code maintains no global state and all microarchitecture-specific PMU data can be fed in through the shared probe function, it's possible to use it as a library and get rid of the C file includes we have currently. This patch factors out the xscale-specific portions out into the xscale driver. For the moment this is always built if perf event support is enabled, but the preprocessor guards will leave behind an empty file. Signed-off-by: Mark Rutland Signed-off-by: Will Deacon arch/arm/kernel/Makefile | 2 +- arch/arm/kernel/perf_event_cpu.c | 4 ---- arch/arm/kernel/perf_event_xscale.c | 32 +++++++++++++++++++++++++++----- 3 files changed, 28 insertions(+), 10 deletions(-) commit cfdad2991f7addb1bc0ce3361a5ee980a0482a87 Author: Mark Rutland Date: Tue May 26 17:23:35 2015 +0100 arm: perf: share arm_pmu_device_probe Enable the probe function to be shared with other drivers, which will inject the appropriate of_device_id and pmu_probe_info tables. Signed-off-by: Mark Rutland Signed-off-by: Will Deacon arch/arm/include/asm/pmu.h | 4 ++++ arch/arm/kernel/perf_event_cpu.c | 20 ++++++++++++++------ 2 files changed, 18 insertions(+), 6 deletions(-) commit ed61f9851d0686d56d7a9648b4807d82ad0adce6 Author: Mark Rutland Date: Tue May 26 17:23:34 2015 +0100 arm: perf: kill off unused pm callbacks Currently the arm perf code has platdata callbacks for runtime PM and irq handling, but no platform implements the hooks for the former. Kill these off. Signed-off-by: Mark Rutland Signed-off-by: Will Deacon arch/arm/include/asm/pmu.h | 14 -------------- arch/arm/kernel/perf_event.c | 38 +------------------------------------- arch/arm/kernel/perf_event_cpu.c | 1 - 3 files changed, 1 insertion(+), 52 deletions(-) commit 9626b6993b2e6faf047d2d96958e8474edc9c7a5 Author: jilai wang Date: Fri Apr 10 16:15:59 2015 -0400 firmware: qcom: scm: Add HDCP Support HDCP driver needs to check if secure environment supports HDCP. If it's supported, then it requires to program some registers through SCM. Add qcom_scm_hdcp_available and qcom_scm_hdcp_req to support these requirements. Signed-off-by: Jilai Wang Signed-off-by: Kumar Gala drivers/firmware/qcom_scm-32.c | 25 ++++++++++++++++++++++++- drivers/firmware/qcom_scm.c | 32 +++++++++++++++++++++++++++++++- drivers/firmware/qcom_scm.h | 11 ++++++++++- include/linux/qcom_scm.h | 13 ++++++++++++- 4 files changed, 77 insertions(+), 4 deletions(-) commit 506c148ee5e1bfb836116353305927ca4c21a23e Author: Jie Yang Date: Thu May 28 22:51:54 2015 +0800 ASoC: Intel: remove unused function hsw_pcm_free_modules() Remove the unused function hsw_pcm_free_modules() to fix the compling warning: sound/soc/intel/haswell/sst-haswell-pcm.c:923:13: warning: 'sw_pcm_free_modules' defined but not used [-Wunused-function] static void hsw_pcm_free_modules(struct hsw_priv_data *pdata) Signed-off-by: Jie Yang Signed-off-by: Mark Brown sound/soc/intel/haswell/sst-haswell-pcm.c | 15 --------------- 1 file changed, 15 deletions(-) commit 307c858bc245da5229b30186546590e1d472fc8f Author: Arnd Bergmann Date: Thu May 28 16:08:02 2015 +0200 usb: phy: add static inline wrapper for devm_usb_get_phy_by_node The newly introduced devm_usb_get_phy_by_node function only has an extern declaration, but no alternative for the case that CONFIG_USB_PHY is disabled, which leads to a build error when it is used anyway: drivers/power/twl4030_charger.c: In function 'twl4030_bci_probe': drivers/power/twl4030_charger.c:648:23: error: implicit declaration of function 'devm_usb_get_phy_by_node' [-Werror=implicit-function-declaration] bci->transceiver = devm_usb_get_phy_by_node( This adds the wrapper in the same way that we have one for all other usb-phy API functions. Signed-off-by: Arnd Bergmann Fixes: e842b84c8e7 ("usb: phy: Add interface to get phy give of device_node.") Signed-off-by: Felipe Balbi include/linux/usb/phy.h | 6 ++++++ 1 file changed, 6 insertions(+) commit 01b720f3295b6c1b2dcfc1affd0fedc6f5d28c1e Author: Jan Beulich Date: Thu May 28 13:04:33 2015 +0100 xen/tmem: use BUILD_BUG_ON() in favor of BUG_ON() Signed-off-by: Jan Beulich Signed-off-by: David Vrabel drivers/xen/tmem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 15575ed544910464715df5c45a44b9732e415b93 Author: Richard Fitzgerald Date: Thu May 28 14:28:12 2015 +0100 ASoC: arizona: Fix noise generator gain TLV The Arizona codec drivers had an incorrect dB scaling for the noise generator gain that started at 0dB and went upwards. Actually the highest setting is 0dB. Signed-off-by: Richard Fitzgerald Signed-off-by: Mark Brown Cc: stable@vger.kernel.org sound/soc/codecs/wm5102.c | 2 +- sound/soc/codecs/wm5110.c | 2 +- sound/soc/codecs/wm8997.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 31712c98f8180c7bd3f33eefa461f0e1142e18f5 Author: Geert Uytterhoeven Date: Mon May 4 19:42:19 2015 +0200 of: Grammar s/property exist/property exists/ Signed-off-by: Geert Uytterhoeven Signed-off-by: Rob Herring include/linux/of.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 391b459d7623b26153c7d8c200e8d213440a7d48 Author: Pantelis Antoniou Date: Fri Apr 24 12:41:56 2015 +0300 of: Move OF flags to be visible even when !CONFIG_OF We need those to be visible even when compiling with CONFIG_OF disabled, since even the empty of_node_*_flag() method use the flag. Signed-off-by: Pantelis Antoniou Acked-by: Wolfram Sang Signed-off-by: Rob Herring include/linux/of.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 22b67acd99c00e3fdc66869cd43fd539bab0ef8c Author: Dmitry Eremin-Solenikov Date: Tue May 19 16:17:09 2015 +0100 ARM: 8368/1: sa1100: move irq driver to drivers/irqchip/ Move current sa11x0 IRQ driver to the irqchip subsystem. Signed-off-by: Dmitry Eremin-Solenikov Acked-by: Thomas Gleixner Signed-off-by: Russell King arch/arm/mach-sa1100/Makefile | 2 +- arch/arm/mach-sa1100/irq.c | 177 ------------------------------------------ drivers/irqchip/Makefile | 1 + drivers/irqchip/irq-sa11x0.c | 175 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 177 insertions(+), 178 deletions(-) commit 85e6f09785bd06f0510bdb00c40772c7f8da3c43 Author: Dmitry Eremin-Solenikov Date: Tue May 19 16:16:14 2015 +0100 ARM: 8367/1: sa1100: prepare for moving irq driver to drivers/irqchip Prepare for moving sa1100 irq driver to irqchip infrastructure - split sa1100_init_irq into helper code and irq parts. Signed-off-by: Dmitry Eremin-Solenikov Acked-by: Thomas Gleixner Signed-off-by: Russell King arch/arm/mach-sa1100/generic.c | 13 +++++++++++++ arch/arm/mach-sa1100/irq.c | 21 ++++++--------------- include/linux/irqchip/irq-sa11x0.h | 17 +++++++++++++++++ 3 files changed, 36 insertions(+), 15 deletions(-) commit b01aec9b2c7d32f17a37553df63efa9f7c0fdaa0 Author: Borislav Petkov Date: Thu May 21 19:59:31 2015 +0200 EDAC: Cleanup atomic_scrub mess So first of all, this atomic_scrub() function's naming is bad. It looks like an atomic_t helper. Change it to edac_atomic_scrub(). The bigger problem is that this function is arch-specific and every new arch which doesn't necessarily need that functionality still needs to define it, otherwise EDAC doesn't compile. So instead of doing that and including arch-specific headers, have each arch define an EDAC_ATOMIC_SCRUB symbol which can be used in edac_mc.c for ifdeffery. Much cleaner. And we already are doing this with another symbol - EDAC_SUPPORT. This is also much cleaner than having CONFIG_EDAC enumerate all the arches which need/have EDAC support and drivers. This way I can kill the useless edac.h header in tile too. Acked-by: Ralf Baechle Acked-by: Michael Ellerman Acked-by: Chris Metcalf Acked-by: Ingo Molnar Acked-by: Russell King Cc: Benjamin Herrenschmidt Cc: Doug Thompson Cc: linux-arm-kernel@lists.infradead.org Cc: linux-edac@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: linux-mips@linux-mips.org Cc: linuxppc-dev@lists.ozlabs.org Cc: "Maciej W. Rozycki" Cc: Markos Chandras Cc: Mauro Carvalho Chehab Cc: Paul Mackerras Cc: "Steven J. Hill" Cc: x86@kernel.org Signed-off-by: Borislav Petkov arch/arm/Kconfig | 2 ++ arch/arm/include/asm/edac.h | 5 +++-- arch/mips/Kconfig | 1 + arch/mips/include/asm/edac.h | 4 ++-- arch/powerpc/Kconfig | 2 ++ arch/powerpc/include/asm/edac.h | 4 ++-- arch/tile/Kconfig | 1 + arch/tile/include/asm/edac.h | 29 ----------------------------- arch/x86/Kconfig | 2 ++ arch/x86/include/asm/edac.h | 2 +- drivers/edac/Kconfig | 7 ++++--- drivers/edac/edac_mc.c | 9 +++++++-- 12 files changed, 27 insertions(+), 41 deletions(-) commit 18fe73ef7c96e98668f84c02ebb9ac626f062b67 Author: Takashi Iwai Date: Thu May 28 14:46:55 2015 +0200 ALSA: hda - Drop unused fields from struct hda_codec_preset It's very unlikely that we'd need these fields out of sudden. Let's drop them. Signed-off-by: Takashi Iwai sound/pci/hda/hda_bind.c | 10 +--------- sound/pci/hda/hda_codec.h | 4 ---- 2 files changed, 1 insertion(+), 13 deletions(-) commit c4ace5daf4ff726402b13f1ababf2ad0e0ceec65 Author: Jan Beulich Date: Thu May 28 09:28:22 2015 +0100 hvc_xen: avoid uninitialized variable warning Older compilers don't recognize that "v" can't be used uninitialized; other code using hvm_get_parameter() zeros the value too, so follow suit here. Signed-off-by: Jan Beulich Signed-off-by: David Vrabel drivers/tty/hvc/hvc_xen.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 76ea3cb428c5dc4fd5a415a7651026caf198fb3d Author: Jan Beulich Date: Thu May 28 09:26:37 2015 +0100 xenbus: avoid uninitialized variable warning Older compilers don't recognize that "v" can't be used uninitialized; other code using hvm_get_parameter() zeros the value too, so follow suit here. Signed-off-by: Jan Beulich Signed-off-by: David Vrabel drivers/xen/xenbus/xenbus_probe.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f1dddd118c555508ce383b7262f4e6440927bdf4 Author: Ard Biesheuvel Date: Wed May 6 14:14:22 2015 +0000 xen/arm: allow console=hvc0 to be omitted for guests From: Ard Biesheuvel This patch registers hvc0 as the preferred console if no console has been specified explicitly on the kernel command line. The purpose is to allow platform agnostic kernels and boot images (such as distro installers) to boot in a Xen/ARM domU without the need to modify the command line by hand. Signed-off-by: Ard Biesheuvel Signed-off-by: Stefano Stabellini Reviewed-by: Julien Grall arch/arm/xen/enlighten.c | 4 ++++ 1 file changed, 4 insertions(+) commit 5882bfef6327093bff63569be19795170ff71e5f Author: Stefano Stabellini Date: Wed May 6 14:13:31 2015 +0000 arm,arm64/xen: move Xen initialization earlier Currently, Xen is initialized/discovered in an initcall. This doesn't allow us to support earlyprintk or choosing the preferred console when running on Xen. The current function xen_guest_init is now split in 2 parts: - xen_early_init: Check if there is a Xen node in the device tree and setup domain type - xen_guest_init: Retrieve the information from the device node and initialize Xen (grant table, shared page...) The former is called in setup_arch, while the latter is an initcall. Signed-off-by: Stefano Stabellini Signed-off-by: Julien Grall Acked-by: Ian Campbell Acked-by: Will Deacon arch/arm/include/asm/xen/hypervisor.h | 8 +++++ arch/arm/kernel/setup.c | 2 ++ arch/arm/xen/enlighten.c | 58 ++++++++++++++++++++--------------- arch/arm64/kernel/setup.c | 2 ++ 4 files changed, 46 insertions(+), 24 deletions(-) commit 81e863c3a28e69fd60411bde9f779b0f8ad0212a Author: Julien Grall Date: Wed May 6 14:09:06 2015 +0000 arm/xen: Correctly check if the event channel interrupt is present The function irq_of_parse_and_map returns 0 when the IRQ is not found. Futhermore, move the check before notifying the user that we are running on Xen. Signed-off-by: Julien Grall Signed-off-by: Stefano Stabellini Acked-by: Ian Campbell arch/arm/xen/enlighten.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit f029094e49814b56fdb3261a694c8890983b7a2d Author: Catherine Sullivan Date: Thu Apr 16 20:06:12 2015 -0400 i40e: Bump version to 1.3.4 Bump. Change-ID: I54ec2787a9fead5e18447078f26e5dd27f01da44 Signed-off-by: Catherine Sullivan Tested-by: Jim Young Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 335075989fbb3c3fffc3ba238b893fa92508a6f1 Author: Jesse Brandeburg Date: Thu Apr 16 20:06:11 2015 -0400 i40e/i40evf: remove time_stamp member The driver doesn't use the time_stamp member to determine if there is a tx_hang any more. There really isn't any point to the variable at all so just remove it. It was left over from a previous tx_hang design. Change-ID: I4c814827e1bcb46e45118fe37acdcfa814fb62a0 Signed-off-by: Jesse Brandeburg Tested-by: Jim Young Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_txrx.c | 10 ---------- drivers/net/ethernet/intel/i40e/i40e_txrx.h | 1 - drivers/net/ethernet/intel/i40evf/i40e_txrx.c | 7 ------- drivers/net/ethernet/intel/i40evf/i40e_txrx.h | 1 - 4 files changed, 19 deletions(-) commit 3e587cf3c1cc2996c39f8a19e453cb8233112416 Author: Jesse Brandeburg Date: Thu Apr 16 20:06:10 2015 -0400 i40e/i40evf: force inline transmit functions Inlining these functions gives us about 15% more 64 byte packets per second when using pktgen. 13.3 million to 15 million with a single queue. Also fix the function names in i40evf to i40evf not i40e while we are touching the function header. Change-ID: I3294ae9b085cf438672b6db5f9af122490ead9d0 Signed-off-by: Jesse Brandeburg Signed-off-by: Catherine Sullivan Tested-by: Jim Young Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_txrx.c | 32 ++++++++++++------------ drivers/net/ethernet/intel/i40evf/i40e_txrx.c | 36 ++++++++++++--------------- 2 files changed, 32 insertions(+), 36 deletions(-) commit 8f6a2b05c67d915cef66b2c9636404e0d531def2 Author: Jesse Brandeburg Date: Thu Apr 16 20:06:09 2015 -0400 i40evf: skb->xmit_more support Eric added support for skb->xmit_more in i40e, this ports that into i40evf as well. Support skb->xmit_more in i40evf is straightforward; we need to move around i40e_maybe_stop_tx() call to correctly test netif_xmit_stopped() before taking the decision to not kick the NIC. Change-ID: Idddda6a2e4a7ab335631c91ced51f55b25eb8468 Signed-off-by: Eric Dumazet Signed-off-by: Daniel Borkmann Signed-off-by: Jesse Brandeburg Tested-by: Jim Young Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40evf/i40e_txrx.c | 88 ++++++++++++++------------- 1 file changed, 47 insertions(+), 41 deletions(-) commit 2e4875e38c288702c2002c7bcf527d8aa0083979 Author: Anjali Singhai Jain Date: Thu Apr 16 20:06:06 2015 -0400 i40e: Move the FD ATR/SB messages to a higher debug level These are not useful unless SV is happening as there is a FD flush counter that tracks this. Change-ID: If2655b5a29687247d03a51d35f69854bbeb711ce Signed-off-by: Anjali Singhai Jain Tested-by: Jim Young Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_main.c | 18 ++++++++++++------ drivers/net/ethernet/intel/i40e/i40e_txrx.c | 9 ++++++--- 2 files changed, 18 insertions(+), 9 deletions(-) commit 41837cad54fe22d29f021f6cb0e9d151acb104a0 Author: Vasu Dev Date: Thu Apr 16 20:06:05 2015 -0400 i40e: fix unrecognized FCOE EOF case Because i40e_fcoe_ctxt_eof should never be called without i40e_fcoe_eof_is_supported being called first, the EOF in fcoe_ctxt_eof should always be valid and therefore we do not need to print an error if it is not valid. However, a WARN ON to easily catch any calls to i40e_fcoe_ctxt_eof that aren't preceded with a call to i40e_fcoe_eof_is_supported is helpful. Change-ID: I3b536b1981ec0bce80576a74440b7dea3908bdb9 Signed-off-by: Vasu Dev Tested-by: Jim Young Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_fcoe.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit 6b02a174c1542486eeaa1de94e6c38e9271b89d8 Author: Greg Rose Date: Thu Apr 16 20:06:03 2015 -0400 i40e/i40evf: Remove unneeded TODO There's no need for a counter so remove the TODO comment. Change-ID: I3321dda04934c4f5fda9b279ab666192bda44214 Signed-off-by: Greg Rose Tested-by: Jim Young Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_txrx.c | 3 --- drivers/net/ethernet/intel/i40evf/i40e_txrx.c | 3 --- 2 files changed, 6 deletions(-) commit 0bf4b1b0c3fda4dd72910cba3c40b3273a2de756 Author: Anjali Singhai Jain Date: Thu Apr 16 20:06:02 2015 -0400 i40e: Remove unnecessary pf members We can use the stat index macro directly, a variable is not required. Change-ID: I19f08ac16353dc0cd87a1a8248d714e15a54aa8a Signed-off-by: Anjali Singhai Jain Tested-by: Jim Young Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e.h | 2 -- drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 2 +- drivers/net/ethernet/intel/i40e/i40e_main.c | 10 ++++------ 3 files changed, 5 insertions(+), 9 deletions(-) commit 60ccd45cbabdc058061b860c43c48877558cc176 Author: Anjali Singhai Jain Date: Thu Apr 16 20:06:01 2015 -0400 i40e/i40evf: Add stats to count Tunnel ATR hits Add a 3rd dynamic filter counter to track Tunneled ATR hits separately. Ethtool port stat "fdir_atr_tunnel_match" Change-ID: Idd978b6db2a462b5722397cd2ffd04ef055f8655 Signed-off-by: Anjali Singhai Jain Tested-by: Jim Young Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e.h | 3 +++ drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 1 + drivers/net/ethernet/intel/i40e/i40e_main.c | 4 ++++ drivers/net/ethernet/intel/i40e/i40e_txrx.c | 13 ++++++++++--- drivers/net/ethernet/intel/i40e/i40e_type.h | 1 + drivers/net/ethernet/intel/i40evf/i40e_type.h | 1 + 6 files changed, 20 insertions(+), 3 deletions(-) commit 89232c3bf78b3799699e48201f60892283564b78 Author: Anjali Singhai Jain Date: Thu Apr 16 20:06:00 2015 -0400 i40e/i40evf: Add ATR support for tunneled TCP/IPv4/IPv6 packets. Without this, RSS would have done inner header load balancing. Now we can get the benefits of ATR for tunneled packets to better align TX and RX queues with the right core/interrupt. Change-ID: I07d0e0a192faf28fdd33b2f04c32b2a82ff97ddd Signed-off-by: Anjali Singhai Jain Signed-off-by: Jesse Brandeburg Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_txrx.c | 77 +++++++++++++++------------ drivers/net/ethernet/intel/i40e/i40e_txrx.h | 1 + drivers/net/ethernet/intel/i40evf/i40e_txrx.c | 34 ++++++------ drivers/net/ethernet/intel/i40evf/i40e_txrx.h | 1 + 4 files changed, 62 insertions(+), 51 deletions(-) commit 8b2b9fbf7e4e1b2e866239d46248431f719ba2c1 Author: Arik Nemtsov Date: Wed Mar 4 13:16:03 2015 +0200 iwlwifi: mvm: clean interfaces on drv_stop If a HW recovery was started but not completed since all interfaces went down, make sure to cleanup all interfaces before clearing the HW_RESTART flag. Signed-off-by: Arik Nemtsov Reviewed-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/mac80211.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 4203263d8302be20c5fa8a2ceb1ca3527808ad4e Author: Emmanuel Grumbach Date: Wed Apr 15 12:43:46 2015 +0300 iwlwifi: mvm: implement the BlockAck related debug triggers BlockAck sessions can have events that are interesting to debug. When we send or receive a BAR, it is may indicate that something bad is happening. Even more so when mac80211 tells us that a frame timed out in the reodering buffer. Add a few triggers for BlockAck session debugging. Allow per-TID debugging. Reviewed-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/iwl-drv.c | 6 +- drivers/net/wireless/iwlwifi/iwl-fw-error-dump.h | 6 +- drivers/net/wireless/iwlwifi/iwl-fw-file.h | 27 +++++ drivers/net/wireless/iwlwifi/mvm/mac80211.c | 140 ++++++++++++++++++++++- drivers/net/wireless/iwlwifi/mvm/tx.c | 31 ++++- 5 files changed, 200 insertions(+), 10 deletions(-) commit 31eb07f5f8febab3d68b9d1a350d9e5a4bdf6780 Merge: 262888f bbbe8c8 Author: Emmanuel Grumbach Date: Thu May 28 13:36:49 2015 +0300 Merge tag 'mac80211-next-for-davem-2015-05-06' into iwlwifi-next Lots of updates for net-next for this cycle. As usual, we have a lot of small fixes and cleanups, the bigger items are: * proper mac80211 rate control locking, to fix some random crashes (this required changing other locking as well) * mac80211 "fast-xmit", a mechanism to reduce, in most cases, the amount of code we execute while going from ndo_start_xmit() to the driver * this also clears the way for properly supporting S/G and checksum and segmentation offloads commit e17bc411aea8fbebc51857037f104ab09f765120 Author: Greg Rose Date: Thu Apr 16 20:05:59 2015 -0400 i40e: Disable offline diagnostics if VFs are enabled Require the user to disable virtual functions before running the device offline diagnostics. The offline diagnostics are intended to ensure basic operation of the device - it is beyond the scope of the diagnostic test to handle the additional complexity of bringing all the virtual functions offline and then back online for each test run. Change-ID: Ic0b854851a09fc85df0c9e82c220e45885457c30 Signed-off-by: Greg Rose Tested-by: Jim Young Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 27 ++++++++++++++++++++++ drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 7 ++++++ 2 files changed, 34 insertions(+) commit e120814d74bc805769d18ed7177f43a17a88fd40 Author: Neerav Parikh Date: Thu Apr 16 20:05:58 2015 -0400 i40e: Collect PFC XOFF RX stats even in single TC case When PFC is enabled for any UP in single TC configuration the driver didn't collect the PFC XOFF RX stats. Though a single TC with PFC enabled is not a common scenario do not prevent the driver from collecting stats if firmware indicates that PFC is enabled. Change-ID: Ie20bd58b07608b528f3c6d95894c9ae56b00077a Signed-off-by: Neerav Parikh Tested-by: Jim Young Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_main.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 262888fcc70d42343dfb137a021d45be05183da6 Author: Luciano Coelho Date: Thu May 7 17:21:09 2015 +0300 iwlwifi: mvm: treat scan races also on UMAC scans For UMAC, we were not treating a race condition that happens in the scan flows, because it was not using the same state flags. Now that UMAC and LMAC scans use the same state flags, we can also handle the race conditions for UMAC. Signed-off-by: Luciano Coelho Reviewed-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/mac80211.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) commit 8d14ccd878e52f8d1c60fa2f6f10b5921ee8f4f9 Author: Luciano Coelho Date: Thu May 7 17:05:30 2015 +0300 iwlwifi: mvm: make UMAC scans use the stopping scan status UMAC scans now use the general scan status for almost everything, the only part missing was in the scan complete notifications. Change it to use the stopping flags instead of clearing the flags when the stop comes from above and clean the handler function a bit. Signed-off-by: Luciano Coelho Reviewed-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/scan.c | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) commit c7d42480d799ab3242103427f2619b419d885f5e Author: Luciano Coelho Date: Thu May 7 16:00:26 2015 +0300 iwlwifi: mvm: combine regular and sched scan stop functions The regular and scheduled scan functions are very similar, so they can be combined into one. Signed-off-by: Luciano Coelho Reviewed-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/d3.c | 2 +- drivers/net/wireless/iwlwifi/mvm/mac80211.c | 7 ++-- drivers/net/wireless/iwlwifi/mvm/mvm.h | 9 +++--- drivers/net/wireless/iwlwifi/mvm/scan.c | 50 ++++++++++------------------- 4 files changed, 27 insertions(+), 41 deletions(-) commit 65f4a8e0a8ebfc0b4a3ed29394c578e4818021ba Author: Eliad Peller Date: Mon May 11 15:51:22 2015 +0300 iwlwifi: tracing: add rx cmd header fields Having explicit rx cmd header fields is useful, as it can be used for event filtering (e.g. saving only debug logs, rather than the whole data) Signed-off-by: Eliad Peller Reviewed-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/iwl-devtrace-iwlwifi.h | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) commit 7ccc72410d34911537ddd0a502b4a04472e6e6af Author: Avri Altman Date: Thu May 14 07:55:32 2015 +0300 iwlwifi: pcie: Remove redundant check for family type This check for family type is redundant as the if clause above checks a family-dependent Boolean (which is not set for family 8000 anyway). Signed-off-by: Avri Altman Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/pcie/tx.c | 2 -- 1 file changed, 2 deletions(-) commit f2461796af656f7d1b385f8025c81409dfec8a2f Author: Luciano Coelho Date: Thu May 7 15:23:19 2015 +0300 iwlwifi: mvm: combine UMAC and LMAC scan_stop functions The UMAC and LMAC scan_stop functions are now nearly identical, so they can be combined into a single function instead. Signed-off-by: Luciano Coelho Reviewed-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/scan.c | 57 ++++++++------------------------- 1 file changed, 13 insertions(+), 44 deletions(-) commit 434f3c1bd5571b54e6684194fcb9fd78641fcc78 Author: Luciano Coelho Date: Thu May 7 14:41:44 2015 +0300 iwlwifi: mvm: remove code that stops multiple UMAC scans of a type We can only have one scan per type at the same time, so the code that tries to stop several scans of a type is unnecessary. Remove that to reduce code complexity. Signed-off-by: Luciano Coelho Reviewed-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/scan.c | 74 ++++++++++----------------------- 1 file changed, 21 insertions(+), 53 deletions(-) commit 6185af2aad5b1bd63d962008c6449f3ae3ef896b Author: Luciano Coelho Date: Thu May 7 11:13:24 2015 +0300 iwlwifi: mvm: refactor UMAC scan UID handling We can only have one scan of each type running at the same time, so we can remove one attribute in the UID information we save. We had array index, UID and type, but only UID (== array_index) and type are necessary. Refactor the code to use this simplified array. Signed-off-by: Luciano Coelho Reviewed-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/mac80211.c | 8 +- drivers/net/wireless/iwlwifi/mvm/mvm.h | 3 +- drivers/net/wireless/iwlwifi/mvm/scan.c | 126 ++++++++-------------------- 3 files changed, 39 insertions(+), 98 deletions(-) commit d7afbfc418a66459d1cf2e441aa50854da5e6297 Author: Avraham Stern Date: Tue May 12 12:19:48 2015 +0300 iwlwifi: mvm: add support for 8 level scan priority API Add support for scan priority API with 8 levels instead of the existing 3 levels. This API is needed to define the priority of new ooc activities, e.g. gscan. Add a TLV flag to indicate if the new API is supported so that devices that does not support the new API will continue to use the old one. Signed-off-by: Avraham Stern Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/iwl-fw-file.h | 3 +++ drivers/net/wireless/iwlwifi/mvm/fw-api-scan.h | 11 +++++++++++ drivers/net/wireless/iwlwifi/mvm/scan.c | 26 ++++++++++++++++++++++---- 3 files changed, 36 insertions(+), 4 deletions(-) commit 6e56f01deadd50997ebca899e3260dad554e4c47 Author: Luciano Coelho Date: Wed May 6 16:03:39 2015 +0300 iwlwifi: mvm: rename some LMAC-specific scan functions Some LMAC specific functions had too generic names (i.e. *_scan_offload_*) and were hard to distinguish from functions that are really generic. Rename these functions to *_lmac_scan_* in to make it more consistent and easier to read. Signed-off-by: Luciano Coelho Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/mvm.h | 18 +++++++++--------- drivers/net/wireless/iwlwifi/mvm/ops.c | 6 +++--- drivers/net/wireless/iwlwifi/mvm/scan.c | 22 +++++++++++----------- 3 files changed, 23 insertions(+), 23 deletions(-) commit dfbf156d05a43f5ffb918f25bc75265ed39011f0 Author: Luciano Coelho Date: Tue May 5 11:21:34 2015 +0300 iwlwifi: mvm: rename umac scan stop function For consistency with the LMAC functions, rename the UMAC scan stop function to iwl_mvm_umac_scan_stop(). Additionally, move things around a bit to avoid an unnecessary forward declaration. Signed-off-by: Luciano Coelho Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/scan.c | 126 ++++++++++++++++---------------- 1 file changed, 62 insertions(+), 64 deletions(-) commit 5d2e8d932c1c3d64418842c159862d003135ad0b Author: Luciano Coelho Date: Tue May 5 10:05:42 2015 +0300 iwlwifi: mvm: combine part of the scan stop flows For UMAC scans, we were simply jumping into another function when scan stop functions were called, while for LMAC scans, the flow continued. To make the flows cleaner and more balanced, combine the UMAC part into the main stop functions. This also makes us take one step closer into combining the state flags for both APIs. Note that some STOPPING flags will be dangling in UMAC scans, but it doesn't matter because they are not used in UMAC yet (and this will be fixed in subsequent patches). Signed-off-by: Luciano Coelho Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/scan.c | 40 ++++++++++----------------------- 1 file changed, 12 insertions(+), 28 deletions(-) commit 7576d54f9e372dbbe77c5291e15a67296d502674 Author: Luciano Coelho Date: Tue May 12 09:30:36 2015 +0300 iwlwifi: mvm: don't stop regular scans when going out of idle state It is not necessary to stop regular scans when going out of idle state. Previously, we were doing so for LMAC scans because the iwl_mvm_scan_offload_stop() function was stopping both kinds of scans. Now that we have more granularity, we can skip it. Signed-off-by: Luciano Coelho Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/mac80211.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 62a6b9c8c9483205124f52e35dd5af43eebe3a16 Author: Luciano Coelho Date: Tue Apr 21 13:34:10 2015 +0300 iwlwifi: mvm: reorganize scan stopping functions The iwl_mvm_scan_offload_stop() function is used to stop LMAC regular scan, stop LMAC scheduled scan and stop UMAC scheduled scans (but not UMAC regular scans), making it very difficult to read. Reorganize the scan stopping functions by creating separate functions to stop regular and scheduled scans, separating the LMAC stopping part of the code from the rest and renaming the offload_stop function to iwl_mvm_lmac_scan_stop(). Signed-off-by: Luciano Coelho Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/d3.c | 2 +- drivers/net/wireless/iwlwifi/mvm/mac80211.c | 10 +-- drivers/net/wireless/iwlwifi/mvm/mvm.h | 4 +- drivers/net/wireless/iwlwifi/mvm/scan.c | 101 ++++++++++++++-------------- 4 files changed, 59 insertions(+), 58 deletions(-) commit cb97e415737f524b73b4e0c4475182b313c83bd8 Author: Emmanuel Grumbach Date: Sat May 16 22:47:56 2015 +0300 iwlwifi: mvm: BT Coex - fix shared antenna check with new API The commit below fixed this for the old firmware API only. Since the new firmware API hasn't been released yet, this doesn't fix anything on currently existing firmwares. This completes: commit afcee962b09842d0f4191beb4a2d08251b4c7705 Author: Eyal Shapira Date: Mon Feb 9 15:18:17 2015 +0200 iwlwifi: mvm: fix BT coex shared antenna activity check type=bugfix bug=not-tracked fixes=unknown Reviewed-by: Eyal Shapira Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/coex.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 416c9b50647bc8ac22cb16e3062076f68dafebfe Author: Luciano Coelho Date: Tue May 5 11:32:29 2015 +0300 iwlwifi: mvm: make iwl_mvm_config_sched_scan_profiles() static The iwl_mvm_config_sched_scan_profiles() function is only used in scan.c, so remove the declaration from mvm.h and make it static. Signed-off-by: Luciano Coelho Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/mvm.h | 2 -- drivers/net/wireless/iwlwifi/mvm/scan.c | 5 +++-- 2 files changed, 3 insertions(+), 4 deletions(-) commit ae90c2e5784b465d903106d833afab4f3e139d80 Author: Luciano Coelho Date: Wed May 6 10:45:42 2015 +0300 iwlwifi: mvm: fix the net-detect SSIDs report order After the scan refactor, the order of the SSIDs passed to the firmware in all scans (including net-detect) are inverted. This was causing the reporting code to use the wrong SSIDs. To fix this, invert the array index when accessing the saved match SSIDs to report the wake-up. Signed-off-by: Luciano Coelho Reviewed-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/d3.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit ee9219b2c268b228c0494c98259401e665457b87 Author: Avraham Stern Date: Mon Mar 23 15:09:27 2015 +0200 iwlwifi: mvm: add UMAC scan iteration complete notification Add UMAC scan iteration complete notification. This notification can be enabled by setting scan_iter_notif_enabled through debugfs. Upon receiving this notification, print the list of channels that have been scanned in this iteration. This is useful for debugging. Signed-off-by: Avraham Stern Reviewed-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/fw-api-scan.h | 23 +++++++++++++++++++++++ drivers/net/wireless/iwlwifi/mvm/fw-api.h | 5 +++-- drivers/net/wireless/iwlwifi/mvm/mvm.h | 3 +++ drivers/net/wireless/iwlwifi/mvm/ops.c | 3 +++ drivers/net/wireless/iwlwifi/mvm/scan.c | 21 +++++++++++++++++++++ 5 files changed, 53 insertions(+), 2 deletions(-) commit 1fa1bcc02c158bc8a802907cc01dfa33663ec16c Author: Avraham Stern Date: Tue Mar 31 16:22:33 2015 +0300 iwlwifi: mvm: print scanned channel list on scan iteration complete notification When receiving scan iteration complete notification, print a list of the channels that have been scanned in this iteration. This is useful for debugging. Signed-off-by: Avraham Stern Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/scan.c | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) commit 741c4cfbf7705240e905cb4987bf2c23f25de17e Author: Emmanuel Grumbach Date: Mon May 11 09:05:25 2015 +0300 iwlwifi: mvm: BT Coex - allocate a short command on the stack The BT_CONFIG command used to be very long, hence it was allocated on the heap in the previous API. In the new API, this command is much smaller, and can now safely be allocated on the stack. Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/coex.c | 36 ++++++++++----------------------- 1 file changed, 11 insertions(+), 25 deletions(-) commit c3b389d87a0f655d03f9ee00bdacee8e782fbda5 Author: Emmanuel Grumbach Date: Sun May 10 18:50:37 2015 +0300 iwlwifi: mvm: BT Coex - remove useless code Since we don't need to configure the Ack / CTS kill mask anymore in the new API, we don't need to iterate all the interfaces upon rssi event on one of the interfaces. Remove that code. Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/coex.c | 43 --------------------------------- 1 file changed, 43 deletions(-) commit 9345c5958131078db7b51686505a37f7455f75c8 Author: Luciano Coelho Date: Thu May 7 10:10:57 2015 +0300 iwlwifi: mvm: remove the UMAC specific scan types There is no need to have separate definitions for the UMAC scan types, since they are the same as the LMAC types. Remove UMAC scan types and use the generic ones instead. Signed-off-by: Luciano Coelho Reviewed-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/scan.c | 47 ++++++++++++--------------------- 1 file changed, 17 insertions(+), 30 deletions(-) commit fa7878e76928a2100ca56295fc1ccfce063a842e Author: Andrei Otcheretianski Date: Tue May 5 09:28:16 2015 +0300 iwlwifi: mvm: Configure agg. queue before assigning it to STA In order to imeplement the extended VI session feature for Miracast, the FW requires to detect the VI queue. The detection of the VI queue is done when it is assigned to a STA with ADD_STA command, so by this time the FW expects the queue to be already configured (mapped to VI AC and aggregation enabled). Previously, the queue configuration was done after STA modificaton which broke the extended VI session feature and resulted in higher latencies. Fix this by calling iwl_mvm_enable_agg_txq before station modification. Signed-off-by: Andrei Otcheretianski Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/sta.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit d643c432223270844c4fd8dcfaec85404d36bde7 Author: Johannes Berg Date: Thu May 7 14:47:50 2015 +0200 iwlwifi: mvm: handle device start failure correctly If the device fails to start correctly prior to loading the regular runtime firmware (after having run the INIT firmware), treat that error correctly by actually checking the return value of _iwl_trans_start_hw() and stopping the device again before returning an error. Reported-by: Dan Carpenter Signed-off-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/fw.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 3db93420f780d39dbef22ef6a5485aac009e02dc Author: Johannes Berg Date: Wed May 6 14:56:51 2015 +0200 iwlwifi: mvm: advertise randomised netdetect MAC address According to the nl80211 documentation, we can neither advertise scheduled scan nor netdetect address randomisation. However, all the products that currently require this don't have a need for the full randomisation. Therefore, advertise the feature anyway which results in host- based randomisation, done whenever the system suspends. This is sufficient for the platforms currently requiring this feature. If we ever extend this in the future to do full randomisation in the firmware, then certainly this will still be sufficient for the current requirements, so it doesn't make a lot of sense to split the feature bits. Signed-off-by: Johannes Berg Reviewed-by: Luciano Coelho Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/mac80211.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 8ce7db48645e6def197e038278b702381075a0de Author: Ido Yariv Date: Mon May 4 23:01:46 2015 -0400 iwlwifi: update thermal throttling values for 8000 devices 8000 devices have different thermal throttling values from previous generations. Signed-off-by: Ido Yariv Reviewed-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/iwl-8000.c | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) commit 4fb06283edb573bee139cf358173d3801520c692 Author: Eran Harary Date: Sun Apr 19 10:05:18 2015 +0300 iwlwifi: 8000: fallback to default NVM file Set a default NVM in case the userspace specifies a file that doesn't match the hardware version. This allows not to change the boot scripts when someone replaces the device with a newer hardware step. Signed-off-by: Eran Harary Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/iwl-8000.c | 46 ++++++++++++++++----------------- drivers/net/wireless/iwlwifi/mvm/nvm.c | 8 +++--- drivers/net/wireless/iwlwifi/mvm/ops.c | 17 +++++------- 3 files changed, 33 insertions(+), 38 deletions(-) commit 25870cb75096cbfa7079b200e71e359cf21a9a82 Author: Matti Gottlieb Date: Mon May 4 09:34:37 2015 +0300 iwlwifi: mvm: Add debugfs entry for Tx power limit Add debugfs entry for showing the different Tx power restrictions that are caused due to various reasons. Signed-off-by: Matti Gottlieb Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/debugfs-vif.c | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) commit 47dbab263db205f6bbc6bd10ba45cfb4ad75ec2f Author: Emmanuel Grumbach Date: Tue Apr 28 21:32:47 2015 +0300 iwlwifi: pcie: simplify return value This was spot by Coccinelle. Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/pcie/trans.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit 1899e114822273636fb96c76a9567cf9cfc1dba6 Author: Emmanuel Grumbach Date: Tue May 26 11:59:53 2015 +0300 iwlwifi: bump API to 14 The iwlmvm driver is now able to handle -14.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 7aac84259656c4f2dd805223659067b1504ed619 Author: John Fastabend Date: Tue May 26 08:23:33 2015 -0700 ixgbe: Allow flow director to use entire queue space Flow director is exported to user space using the ethtool ntuple support. However, currently it only supports steering traffic to a subset of the queues in use by the hardware. This change allows flow director to specify queues that have been assigned to virtual functions by partitioning the ring_cookie into a 8bit VF specifier followed by 32bit queue index. At the moment we don't have any ethernet drivers with more than 2^32 queues on a single function as best I can tell and nor do I expect this to happen anytime soon. This way the ring_cookie's normal use for specifying a queue on a specific PCI function continues to work as expected. CC: Alex Duyck Signed-off-by: John Fastabend Tested-by: Krishneil Singh Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 34 +++++++++++++++++------- 1 file changed, 24 insertions(+), 10 deletions(-) commit 7b501d10b18bc34cc486201027fd6fc35779fb0e Author: Johannes Berg Date: Fri May 22 11:28:58 2015 +0200 iwlwifi: refactor common transport alloc/init code The transport modules all need to allocate memory and set up certain values. Refactor that code into a new common function to share it and to simplify the error handling. Signed-off-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/Makefile | 1 + drivers/net/wireless/iwlwifi/iwl-trans.c | 113 ++++++++++++++++++++++++++++++ drivers/net/wireless/iwlwifi/iwl-trans.h | 20 +++--- drivers/net/wireless/iwlwifi/pcie/trans.c | 40 ++--------- 4 files changed, 131 insertions(+), 43 deletions(-) commit a54cb6411b96379e107c364f2f0883c47628d046 Author: Luciano Coelho Date: Mon May 25 09:36:53 2015 +0300 iwlwifi: mvm: small fix in a comment about UMAC scan schedules The UMAC API supports multiple scan schedules, but now we use only a single one. Change the comment to make this clear and avoid confusion. Signed-off-by: Luciano Coelho Reviewed-by: David Spinadel Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/scan.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b8c474d9c51443ed67336ac89450de44dccee6c0 Author: Nicholas Krause Date: Sat May 23 20:53:21 2015 -0400 iwlwifi: Remove use of the deprecacted PTR_RET This removes the use of the two deprecated calls to the macro PTR_RET in iwl_mvm_get_regdomain and replaces them both to PTR_ERR_OR_ZERO. Signed-off-by: Nicholas Krause [Commit message editing] Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/mac80211.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 8cf6f497de405ca9eb87ffb34d90699962d10125 Author: John Fastabend Date: Tue May 26 08:22:49 2015 -0700 ethtool: Add helper routines to pass vf to rx_flow_spec The ring_cookie is 64 bits wide which is much larger than can be used for actual queue index values. So provide some helper routines to pack a VF index into the cookie. This is useful to steer packets to a VF ring without having to know the queue layout of the device. CC: Alex Duyck Signed-off-by: John Fastabend Signed-off-by: Jeff Kirsher include/uapi/linux/ethtool.h | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) commit bfa1ce5f38938cc9e6c7f2d1011f88eba2b9e2b2 Author: Thomas Petazzoni Date: Thu May 28 11:40:54 2015 +0200 bus: mvebu-mbus: add mv_mbus_dram_info_nooverlap() This commit introduces a variant of the mv_mbus_dram_info() function called mv_mbus_dram_info_nooverlap(). Both functions are used by Marvell drivers supporting devices doing DMA, and provide them a description the DRAM ranges that they need to configure their DRAM windows. The ranges provided by the mv_mbus_dram_info() function may overlap with the I/O windows if there is a lot (>= 4 GB) of RAM installed. This is not a problem for most of the DMA masters, except for the upcoming new CESA crypto driver because it does DMA to the SRAM, which is mapped through an I/O window. For this unit, we need to have DRAM ranges that do not overlap with the I/O windows. A first implementation done in commit 1737cac69369 ("bus: mvebu-mbus: make sure SDRAM CS for DMA don't overlap the MBus bridge window"), changed the information returned by mv_mbus_dram_info() to match this requirement. However, it broke the requirement of the other DMA masters than the DRAM ranges should have power of two sizes. To solve this situation, this commit introduces a new mv_mbus_dram_info_nooverlap() function, which returns the same information as mv_mbus_dram_info(), but guaranteed to not overlap with the I/O windows. In the end, it gives us two variants of the mv_mbus_dram_info*() functions: - The normal one, mv_mbus_dram_info(), which has been around for many years. This function returns the raw DRAM ranges, which are guaranteed to use power of two sizes, but will overlap with I/O windows. This function will therefore be used by all DMA masters (SATA, XOR, Ethernet, etc.) except the CESA crypto driver. - The new 'nooverlap' variant, mv_mbus_dram_info_nooverlap(). This function returns DRAM ranges after they have been "tweaked" to make sure they don't overlap with I/O windows. By doing this tweaking, we remove the power of two size guarantee. This variant will be used by the new CESA crypto driver. Signed-off-by: Thomas Petazzoni Signed-off-by: Gregory CLEMENT drivers/bus/mvebu-mbus.c | 117 +++++++++++++++++++++++++++++++++++++++++++++++ include/linux/mbus.h | 5 ++ 2 files changed, 122 insertions(+) commit 4373f0f24ed52549d4d6a0d7e155301476ec0a36 Author: Paulo Zanoni Date: Mon May 25 18:52:29 2015 -0300 drm/i915: disable IPS while getting the sink CRCs This commit is the "sink CRC" version of: commit 8c740dcea254a1472df2c0ac5ac585412a2507ec Author: Paulo Zanoni Date: Fri Oct 17 18:42:03 2014 -0300 drm/i915: disable IPS while getting the pipe CRCs. For some unknown reason, when IPS gets enabled, the sink CRC changes. Since hsw_enable_ips() doesn't really guarantee to enable IPS (it depends on package C-states), we can't really predict if IPS is enabled or disabled while running our CRC tests, so let's just completely disable IPS while sink CRCs are being used. If we find a way to make IPS not change the pipe CRC result, we may want to fix IPS and then revert this patch (and 8c740dcea too). While this doesn't happen, let's merge this patch, so the IGT tests relying on sink CRCs can work properly. This was discovered while developing a new IGT test, which will probably be called kms_frontbuffer_tracking. Testcase: igt/kms_frontbuffer_tracking (not on upstream IGT yet) Cc: Rodrigo Vivi Signed-off-by: Paulo Zanoni Reviewed-by: Rodrigo Vivi Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_dp.c | 66 ++++++++++++++++++++++++++++------------- 1 file changed, 45 insertions(+), 21 deletions(-) commit 5e3daaca09f5158eff9c92290faa1d2001ecc6e4 Author: Daniel Vetter Date: Thu May 28 09:38:45 2015 +0200 drm/i915: Disable 12bpc hdmi for now It's totally broken, and since commit d328c9d78d64ca11e744fe227096990430a88477 Author: Daniel Vetter Date: Fri Apr 10 16:22:37 2015 +0200 drm/i915: Select starting pipe bpp irrespective or the primary plane the kernel will try to use it even for the common rgb888 framebuffers. Ville has patches to fix it all up properly, but unfortunately they're stuck in review limbo. And since the 4.2 feature cutoff has passed we need to somehow handle this regression. Cc: Ville Syrjälä Cc: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_hdmi.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 54433e91a6d92c98f21233b58ffb3ebf053611a8 Author: Ville Syrjälä Date: Tue May 26 20:42:31 2015 +0300 drm/i915: Adjust sideband locking a bit for CHV/VLV chv_enable_pll() doesn't need to hold sb_lock for the entire duration of the function. Drop the lock as soon as possible. valleyview_set_cdclk() does a potential lock+unlock+lock+unlock cycle with sb_lock. Grab the lock a few lines earlier so we can make do with a single lock+unlock cycle always. Signed-off-by: Ville Syrjälä Reviewed-by: Jani Nikula Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit a580516d9fcb09b86337895e483c93ad6c1ce4b5 Author: Ville Syrjälä Date: Tue May 26 20:42:30 2015 +0300 drm/i915: s/dpio_lock/sb_lock/ Rename dpio_lock to sb_lock to inform the reader that its primary purpose is to protect the sideband mailbox rather than some DPIO state. Signed-off-by: Ville Syrjälä Reviewed-by: Jani Nikula Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_dma.c | 2 +- drivers/gpu/drm/i915/i915_drv.h | 4 +-- drivers/gpu/drm/i915/intel_display.c | 56 +++++++++++++++--------------- drivers/gpu/drm/i915/intel_dp.c | 28 +++++++-------- drivers/gpu/drm/i915/intel_dsi.c | 8 ++--- drivers/gpu/drm/i915/intel_dsi_panel_vbt.c | 4 +-- drivers/gpu/drm/i915/intel_dsi_pll.c | 14 ++++---- drivers/gpu/drm/i915/intel_hdmi.c | 24 ++++++------- drivers/gpu/drm/i915/intel_pm.c | 4 +-- drivers/gpu/drm/i915/intel_sideband.c | 18 +++++----- 10 files changed, 81 insertions(+), 81 deletions(-) commit b12ce1d84fd6ba36914ace0d27a0e675e284e6ae Author: Ville Syrjälä Date: Tue May 26 20:27:23 2015 +0300 drm/i915: Kill intel_flush_primary_plane() The primary plane frobbing was removed from the sprite code in commit ecce87ea3ab55ad0dc64460e6422c357d158a55e Author: Maarten Lankhorst Date: Tue Apr 21 17:12:50 2015 +0300 drm/i915: Remove implicitly disabling primary plane for now but the intel_flush_primary_plane() calls were left behind. Replace them with straight forward POSTING_READ() of the sprite surface address register. The other user of intel_flush_primary_plane() is g4x_disable_trickle_feed() where we can just inline the steps directly. This allows intel_flush_primary_plane() to be killed off. Cc: Maarten Lankhorst Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 14 -------------- drivers/gpu/drm/i915/intel_drv.h | 2 -- drivers/gpu/drm/i915/intel_pm.c | 6 ++++-- drivers/gpu/drm/i915/intel_sprite.c | 30 +++++++----------------------- 4 files changed, 11 insertions(+), 41 deletions(-) commit fde61e4b80ff23a379210a5780e59ace4bd915e6 Author: Ville Syrjälä Date: Tue May 26 20:22:39 2015 +0300 drm/i915: Throw out WIP CHV power well definitions Expecting CHV power wells to be just an extended versions of the VLV power wells, a bunch of commented out power wells were added in anticipation when Punit folks would implement it all. Turns out they never did, and instead CHV has fewer power wells than VLV. Rip out all the #if 0'ed junk that's not needed. v2: Rename the "pipe-a" well to "display" to match VLV Clarify the pipe A power well relationship to pipes B and C (Deepak) Reviewed-by: Deepak S Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_reg.h | 4 -- drivers/gpu/drm/i915/intel_runtime_pm.c | 98 ++------------------------------- 2 files changed, 4 insertions(+), 98 deletions(-) commit bc284542dad88046eefa3a8d4d9907529c4af9e0 Author: Ville Syrjälä Date: Tue May 26 20:22:38 2015 +0300 drm/i915: Use the default 600ns LDO programming sequence delay Not sure which LDO programming sequence delay should be used for the CHV PHY, but the spec says that 600ns is "Used by default for initial bringup", and the BIOS seems to use that, so let's do the same. Reviewed-by: Deepak S Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_reg.h | 4 ++++ drivers/gpu/drm/i915/intel_runtime_pm.c | 2 ++ 2 files changed, 6 insertions(+) commit f1942b96b4b44c1ab0e0b82fef93ba7e1fada7af Merge: 09a216e f00898f Author: Ingo Molnar Date: Thu May 28 11:09:22 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 refactorings and improvements from Arnaldo Carvalho de Melo: User visible changes: - Add hint for 'Too many events are opened.' error message (Jiri Olsa) Infrastructure changes: - Protect accesses to map rbtrees with a lock and refcount struct map, reducing memory usage as maps not used get freed. The 'dso' struct is next in line. (Arnaldo Carvalho de Melo) - Annotation and branch related option parsing refactorings to share code with upcoming patches (Andi Kleen) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit 1e6277de3a23373b89e0affc3d179f2173b857a4 Author: Jan Beulich Date: Thu May 28 09:29:27 2015 +0100 x86/mm: Mark arch_ioremap_p{m,u}d_supported() __init ... as their only caller is. Signed-off-by: Jan Beulich Cc: Borislav Petkov Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/5566EE07020000780007E683@mail.emea.novell.com Signed-off-by: Ingo Molnar arch/x86/mm/ioremap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit fc23e81eb8f4231aa8a34c83e95c11d72e494f1d Author: Rafał Miłecki Date: Sat May 23 09:15:33 2015 +0200 brcmfmac: allow NVRAM values to contain spaces Platform NVRAMs often contain values with spaces. Even if right now most firmware-supported entries are simple values, we shouldn't reject these with spaces. It was semi-confirmed by Broadcom in the early patch adding support for platform NVRAMs. Signed-off-by: Rafał Miłecki Acked-by: Arend van Spriel Signed-off-by: Kalle Valo drivers/net/wireless/brcm80211/brcmfmac/firmware.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit 279b4cb7bc143643b6380a7198834f3bfbee7df7 Author: Rafał Miłecki Date: Wed May 20 13:59:54 2015 +0200 brcmfmac: treat \0 as end of comment when parsing NVRAM This fixes brcmfmac dealing with NVRAM coming from platform e.g. from a flash MTD partition. In such cases entries are separated by \0 instead of \n which caused ignoring whole content after the first "comment". While platform NVRAM doesn't usually contain comments, we switch to COMMENT state after e.g. finding an unexpected char in key name. Signed-off-by: Rafał Miłecki Signed-off-by: Kalle Valo drivers/net/wireless/brcm80211/brcmfmac/firmware.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) commit 5d08408b6f6b28d9a57ab7b2c7419ca8bfc6b8a4 Author: Rafał Miłecki Date: Wed May 20 11:01:08 2015 +0200 brcmfmac: simplify check finding NVRAM v1 device path With a simple use of snprintf and small buffer we can compare NVRAM entry value with a full string. This way we avoid checking random chars at magic offsets. Tested on BCM43602 with NVRAM hacked to use v1 format. Signed-off-by: Rafał Miłecki Signed-off-by: Kalle Valo drivers/net/wireless/brcm80211/brcmfmac/firmware.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) commit ae8c2366d77cd7c6de776bcb1dcb6be88f2a1185 Author: Rafał Miłecki Date: Wed May 20 09:34:21 2015 +0200 brcmfmac: simplify check stripping v2 NVRAM Comparing NVRAM entry with a full filtering string is simpler than comparing it with a short prefix and then checking random chars at magic offsets. The cost of snprintf relatively low, we execute it just once. Tested on BCM43602 with NVRAM hacked to use V2 format. Signed-off-by: Rafał Miłecki Signed-off-by: Kalle Valo drivers/net/wireless/brcm80211/brcmfmac/firmware.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) commit 4141259b56cbd5a8614e487366909a02d702b9dd Author: Andrew Morton Date: Wed May 27 11:53:06 2015 +0200 arch/x86/kvm/mmu.c: work around gcc-4.4.4 bug arch/x86/kvm/mmu.c: In function 'kvm_mmu_pte_write': arch/x86/kvm/mmu.c:4256: error: unknown field 'cr0_wp' specified in initializer arch/x86/kvm/mmu.c:4257: error: unknown field 'cr4_pae' specified in initializer arch/x86/kvm/mmu.c:4257: warning: excess elements in union initializer ... gcc-4.4.4 (at least) has issues when using anonymous unions in initializers. Fixes: edc90b7dc4ceef6 ("KVM: MMU: fix SMAP virtualization") Cc: Xiao Guangrong Cc: Paolo Bonzini Signed-off-by: Andrew Morton Signed-off-by: Paolo Bonzini arch/x86/kvm/mmu.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit bc009e43307916f87f0cbd4bc5ec0e8f6b064c9a Author: Paolo Bonzini Date: Tue May 26 12:43:41 2015 +0200 KVM: remove unused argument from mark_page_dirty_in_slot Signed-off-by: Paolo Bonzini virt/kvm/kvm_main.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) commit e453aa0f7e7b10135d7a84742722f5fc799a3df9 Author: Jan Kiszka Date: Sun May 24 17:22:38 2015 +0200 KVM: x86: Allow ARAT CPU feature There is no reason to deny this feature to guests. We are emulating the APIC timer, thus are exposing it without stops in power-saving states. Signed-off-by: Jan Kiszka Signed-off-by: Paolo Bonzini arch/x86/kvm/cpuid.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit c028dd6bb648251b773f900f59e53544278b3b3c Author: Radim Krčmář Date: Fri May 22 19:22:10 2015 +0200 KVM: x86: preserve x2APIC LDR on INIT Logical x2APIC stops working if we rewrite it with zeros. The best references are SDM April 2015: 10.12.10.1 Logical Destination Mode in x2APIC Mode [...], the LDR are initialized by hardware based on the value of x2APIC ID upon x2APIC state transitions. and SDM April 2015: 10.12.10.2 Deriving Logical x2APIC ID from the Local x2APIC ID The LDR initialization occurs whenever the x2APIC mode is enabled Signed-off-by: Radim Krčmář Signed-off-by: Paolo Bonzini arch/x86/kvm/lapic.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 257b9a5faab5849fa61f1a523b429dc279d33cc3 Author: Radim Krčmář Date: Fri May 22 18:45:11 2015 +0200 KVM: x86: use correct APIC ID on x2APIC transition SDM April 2015, 10.12.5 State Changes From xAPIC Mode to x2APIC Mode • Any APIC ID value written to the memory-mapped local APIC ID register is not preserved. Fix it by sourcing vcpu_id (= initial APIC ID) instead of memory-mapped APIC ID. Proper use of apic functions would result in two calls to recalculate_apic_map(), so this patch makes a new helper. Signed-off-by: Radim Krčmář Signed-off-by: Paolo Bonzini arch/x86/kvm/lapic.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) commit 630994b3c798dec3de1fb1d5a3dd9201267036f6 Author: Marcelo Tosatti Date: Tue May 12 22:42:04 2015 -0300 KVM: x86: add module parameter to disable periodic kvmclock sync The periodic kvmclock sync can be an undesired source of latencies. When running cyclictest on a guest, a latency spike is visible. With kvmclock periodic sync disabled, the spike is gone. Guests should use ntp which means the propagations of ntp corrections from the host clock are unnecessary. v2: -> Make parameter read-only (Radim) -> Return early on kvmclock_sync_fn (Andrew) Reported-and-tested-by: Luiz Capitulino Signed-off-by: Marcelo Tosatti Signed-off-by: Paolo Bonzini arch/x86/kvm/x86.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 3ed1a4787617f948631a77903453847142271867 Author: Paolo Bonzini Date: Tue May 19 16:29:22 2015 +0200 KVM: x86: pass struct kvm_mmu_page to account/unaccount_shadowed Prepare for multiple address spaces this way, since a VCPU is not available where unaccount_shadowed is called. We will get to the right kvm_memslots struct through the role field in struct kvm_mmu_page. Reviewed-by: Takuya Yoshikawa Reviewed-by: Radim Krcmar Signed-off-by: Paolo Bonzini arch/x86/kvm/mmu.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit e37afc6ee5a6af9b334e2f214ec795e8bfaaaba5 Author: Paolo Bonzini Date: Tue May 19 16:09:04 2015 +0200 KVM: remove __gfn_to_pfn Most of the function that wrap it can be rewritten without it, except for gfn_to_pfn_prot. Just inline it into gfn_to_pfn_prot, and rewrite the other function on top of gfn_to_pfn_memslot*. Reviewed-by: Radim Krcmar Signed-off-by: Paolo Bonzini virt/kvm/kvm_main.c | 39 +++++++++++++++------------------------ 1 file changed, 15 insertions(+), 24 deletions(-) commit d9ef13c2b3983de8dd1373ef670799dbb6498122 Author: Paolo Bonzini Date: Tue May 19 16:01:50 2015 +0200 KVM: pass kvm_memory_slot to gfn_to_page_many_atomic The memory slot is already available from gfn_to_memslot_dirty_bitmap. Isn't it a shame to look it up again? Plus, it makes gfn_to_page_many_atomic agnostic of multiple VCPU address spaces. Reviewed-by: Radim Krcmar Signed-off-by: Paolo Bonzini arch/x86/kvm/mmu.c | 6 ++++-- include/linux/kvm_host.h | 4 ++-- virt/kvm/kvm_main.c | 6 +++--- 3 files changed, 9 insertions(+), 7 deletions(-) commit 09a216ea5c528356797dc12ab35234922a6c02be Author: Paul Mackerras Date: Thu May 28 16:17:57 2015 +1000 perf: Remove myself from MAINTAINERS entry I haven't been working on perf for a while, so remove my name from the MAINTAINERS entry for it. Signed-off-by: Paul Mackerras Cc: Arnaldo Carvalho de Melo Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/20150528061757.GB27903@iris.ozlabs.ibm.com Signed-off-by: Ingo Molnar MAINTAINERS | 1 - 1 file changed, 1 deletion(-) commit f36f3f2846b5578d62910ee0b6dbef59fdd1cfa4 Author: Paolo Bonzini Date: Mon May 18 13:20:23 2015 +0200 KVM: add "new" argument to kvm_arch_commit_memory_region This lets the function access the new memory slot without going through kvm_memslots and id_to_memslot. It will simplify the code when more than one address space will be supported. Unfortunately, the "const"ness of the new argument must be casted away in two places. Fixing KVM to accept const struct kvm_memory_slot pointers would require modifications in pretty much all architectures, and is left for later. Reviewed-by: Radim Krcmar Signed-off-by: Paolo Bonzini arch/arm/kvm/mmu.c | 1 + arch/mips/kvm/mips.c | 1 + arch/powerpc/include/asm/kvm_ppc.h | 6 ++++-- arch/powerpc/kvm/book3s.c | 5 +++-- arch/powerpc/kvm/book3s_hv.c | 3 ++- arch/powerpc/kvm/book3s_pr.c | 3 ++- arch/powerpc/kvm/booke.c | 3 ++- arch/powerpc/kvm/powerpc.c | 3 ++- arch/s390/kvm/kvm-s390.c | 1 + arch/x86/include/asm/kvm_host.h | 2 +- arch/x86/kvm/mmu.c | 6 ++++-- arch/x86/kvm/x86.c | 13 +++++-------- include/linux/kvm_host.h | 1 + virt/kvm/kvm_main.c | 2 +- 14 files changed, 30 insertions(+), 20 deletions(-) commit 323ddaa84f003a0c1d49f3ce5d106bc3cef070d5 Author: James C Boyd Date: Wed May 27 17:09:08 2015 -0500 HID: hid-input: Fix coding style issue This line is too long; split it up. Signed-off-by: James C Boyd Signed-off-by: Jiri Kosina drivers/hid/hid-input.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 2c54c86a674979e2bd9dc3663d329ee56368a218 Author: James C Boyd Date: Wed May 27 17:09:07 2015 -0500 HID: hid-input: Simplify conditional expression There are too many bangs in this conditional; therefore remove them while still maintaining the same logic. Signed-off-by: James C Boyd Signed-off-by: Jiri Kosina drivers/hid/hid-input.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 09a5c34e8d6b05663ec4c3d22b1fbd9fec89aaf9 Author: James C Boyd Date: Wed May 27 17:09:06 2015 -0500 HID: hid-input: Add parentheses to quell gcc warning GCC reports a -Wlogical-not-parentheses warning here; therefore add parentheses to shut it up and to express our intent more. Signed-off-by: James C Boyd Signed-off-by: Jiri Kosina drivers/hid/hid-input.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c869f77d6abb5d5f9f2f1a661d5c53862a9cad34 Author: Jakub Kicinski Date: Tue May 26 11:16:00 2015 +0200 add mt7601u driver Add support for the simplest of MediaTek Wi-Fi devices - MT7601U. It is a single stream bgn chip with no bells or whistles. This driver is partially based on Felix's mt76 but IMHO it doesn't make sense to merge the two right now because MT7601U is a design somewhere between old Ralink devices and new Mediatek chips. There wouldn't be all that much code sharing with the devices mt76 supports. Situation may obviously change when someone decides to extend m76 with support for the more recent USB dongles. The driver supports only station mode. I'm hoping to add AP support when time allows. This driver sat on GitHub for quite a while and got some testing there: http://github.com/kuba-moo/mt7601u Signed-off-by: Jakub Kicinski Signed-off-by: Kalle Valo MAINTAINERS | 6 + drivers/net/wireless/Kconfig | 1 + drivers/net/wireless/Makefile | 2 + drivers/net/wireless/mediatek/Kconfig | 10 + drivers/net/wireless/mediatek/Makefile | 1 + drivers/net/wireless/mediatek/mt7601u/Kconfig | 6 + drivers/net/wireless/mediatek/mt7601u/Makefile | 9 + drivers/net/wireless/mediatek/mt7601u/core.c | 78 ++ drivers/net/wireless/mediatek/mt7601u/debugfs.c | 172 +++ drivers/net/wireless/mediatek/mt7601u/dma.c | 533 +++++++++ drivers/net/wireless/mediatek/mt7601u/dma.h | 127 ++ drivers/net/wireless/mediatek/mt7601u/eeprom.c | 414 +++++++ drivers/net/wireless/mediatek/mt7601u/eeprom.h | 151 +++ drivers/net/wireless/mediatek/mt7601u/init.c | 625 ++++++++++ drivers/net/wireless/mediatek/mt7601u/initvals.h | 164 +++ .../net/wireless/mediatek/mt7601u/initvals_phy.h | 291 +++++ drivers/net/wireless/mediatek/mt7601u/mac.c | 569 +++++++++ drivers/net/wireless/mediatek/mt7601u/mac.h | 178 +++ drivers/net/wireless/mediatek/mt7601u/main.c | 412 +++++++ drivers/net/wireless/mediatek/mt7601u/mcu.c | 534 +++++++++ drivers/net/wireless/mediatek/mt7601u/mcu.h | 94 ++ drivers/net/wireless/mediatek/mt7601u/mt7601u.h | 390 ++++++ drivers/net/wireless/mediatek/mt7601u/phy.c | 1251 ++++++++++++++++++++ drivers/net/wireless/mediatek/mt7601u/regs.h | 636 ++++++++++ drivers/net/wireless/mediatek/mt7601u/trace.c | 21 + drivers/net/wireless/mediatek/mt7601u/trace.h | 400 +++++++ drivers/net/wireless/mediatek/mt7601u/tx.c | 319 +++++ drivers/net/wireless/mediatek/mt7601u/usb.c | 360 ++++++ drivers/net/wireless/mediatek/mt7601u/usb.h | 77 ++ drivers/net/wireless/mediatek/mt7601u/util.c | 42 + drivers/net/wireless/mediatek/mt7601u/util.h | 77 ++ 31 files changed, 7950 insertions(+) commit 00e27eeb75bb91798225cfb1ab9f6b9e13d3d639 Author: Arend van Spriel Date: Wed May 27 19:31:41 2015 +0200 brcmfmac: fix invalid access to struct acpi_device fields The fields of struct acpi_device are only known when CONFIG_ACPI is defined. Fix this by using a helper function. This will resolve the issue found in linux-next: ../brcmfmac/bcmsdh.c: In function 'brcmf_ops_sdio_probe': ../brcmfmac/bcmsdh.c:1139:7: error: dereferencing pointer to incomplete type adev->flags.power_manageable = 0; ^ Fixes: f0992ace680c ("brcmfmac: prohibit ACPI power management ...") Cc: Fu, Zhonghui Reported-by: Stephen Rothwell Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) commit 092373c2b8cb67b757ec59f3e6251b45ef333b38 Author: Diego Viola Date: Mon Apr 6 06:27:45 2015 -0300 scripts/kconfig/Makefile: Fix spelling of Qt Signed-off-by: Diego Viola Signed-off-by: Michal Marek scripts/kconfig/Makefile | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 815088550342904acd68f43436e1b4d1d78b77c1 Author: Linus Walleij Date: Thu May 28 10:11:19 2015 +0200 pinctrl: improve debugfs for strict controllers If we know we are using a strict pin controller (one that cannot mix device functions+group use and GPIO) we can be a bit more specific in debugfs, just print either device-function-group or GPIO consumer for the pin. Let's do that to be helpful. Cc: Sonic Zhang Signed-off-by: Linus Walleij drivers/pinctrl/pinmux.c | 41 +++++++++++++++++++++++++++++++++-------- 1 file changed, 33 insertions(+), 8 deletions(-) commit 4481b18b7cf023c57085b3c7db762dc4d7f1873b Author: Nathan Sullivan Date: Wed May 27 15:00:01 2015 -0500 ARM: zynq: DT: Use the zynq binding with macb Use the new zynq binding for macb ethernet, since it will disable half duplex gigabit like the Zynq TRM says to do. Also allow the compatible cadence gem binding that won't disable half duplex but works otherwise. Signed-off-by: Nathan Sullivan Acked-by: Sören Brinkmann Signed-off-by: Michal Simek arch/arm/boot/dts/zynq-7000.dtsi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit f8266389c838e919adf941bd91d9cdd837503329 Author: Michal Simek Date: Thu Apr 9 08:22:41 2015 +0200 of: Add vendor prefix for Ceva Signed-off-by: Michal Simek Documentation/devicetree/bindings/vendor-prefixes.txt | 1 + 1 file changed, 1 insertion(+) commit a6e86403d1acb562f7e6c3cd9edcdfdabe0305b2 Author: Michal Simek Date: Thu Oct 2 12:36:45 2014 +0200 PCI: xilinx: Trivial fix in DT example Good to have it properly describe for c&p cases. Signed-off-by: Michal Simek Acked-by: Mark Rutland Documentation/devicetree/bindings/pci/xilinx-pcie.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0385d4464012f5b9a602311acfaa4902183d0ad5 Author: Peter Crosthwaite Date: Mon Jul 21 17:25:26 2014 -0700 devicetree: cadence_ttc: Document binding for timer width Modern TTC implementations can extend the timer width to 32 bit. This feature is not self identifying so the driver needs to be made aware via device tree. Signed-off-by: Peter Crosthwaite Signed-off-by: Michal Simek Documentation/devicetree/bindings/timer/cadence,ttc-timer.txt | 4 ++++ 1 file changed, 4 insertions(+) commit 2221043b75cf572b77450f56203b4fb77d51fc90 Author: Michal Simek Date: Wed Feb 11 13:06:36 2015 +0100 ARM: dts: zynq: Fix stdout-path and bootargs parallella - Remove linux,stdout-path. Use stdout-path to identify kernel console Signed-off-by: Michal Simek Acked-by: Mark Rutland arch/arm/boot/dts/zynq-parallella.dts | 4 ++-- arch/arm/boot/dts/zynq-zc702.dts | 3 ++- arch/arm/boot/dts/zynq-zc706.dts | 3 ++- arch/arm/boot/dts/zynq-zed.dts | 3 ++- arch/arm/boot/dts/zynq-zybo.dts | 3 ++- 5 files changed, 10 insertions(+), 6 deletions(-) commit 1b654bc9d4d82aab754464d7f29a803ad58042ee Author: Michal Simek Date: Wed Feb 11 13:05:11 2015 +0100 ARM: dts: zynq: Add missing alias node for zybo and parallella Add missing alias node. Signed-off-by: Michal Simek Reviewed-by: Andreas Färber arch/arm/boot/dts/zynq-parallella.dts | 5 +++++ arch/arm/boot/dts/zynq-zybo.dts | 5 +++++ 2 files changed, 10 insertions(+) commit e3cb742c3295e7b992d7ecd402fcd5c7675e0e68 Author: Guenter Roeck Date: Wed May 27 21:32:43 2015 -0700 staging: wilc1000: Disable for S390 The wilc1000 driver uses definitions such as DEBUG_LEVEL, DEBUG, and PRINT_INFO. This causes compile errors on S390 which has similar definitions in its core code. Disable the driver for S390 instead of giving the non-standard messaging code credit by trying to fix it. Signed-off-by: Guenter Roeck Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/Kconfig | 1 + 1 file changed, 1 insertion(+) commit b0b9bb4dd51f396dcf843831905f729e74b0c8c0 Author: Michel Dänzer Date: Tue May 26 17:53:39 2015 +0900 drm/radeon: 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. Reviewed-by: Christian König Signed-off-by: Michel Dänzer Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/radeon_irq_kms.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 161ab658a611df14fb0365b7b70a8c5fed3e4870 Author: Christian König Date: Tue May 26 12:24:15 2015 +0200 drm/radeon: stop using addr to check for BO move It is theoretically possible that a swapped out BO gets the same GTT address, but different backing pages while being swapped in. Instead just use another VA state to note updated areas. Signed-off-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/radeon.h | 4 ++- drivers/gpu/drm/radeon/radeon_vm.c | 53 +++++++++++++++++++++----------------- 2 files changed, 32 insertions(+), 25 deletions(-) commit 010621936103fcfc15375ccdc92c0f583923d489 Author: Alex Deucher Date: Mon May 18 11:11:48 2015 -0400 drm/radeon: clean up radeon_audio_enable - make it static - fix mask/bool handling for last param Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/radeon/radeon_audio.c | 18 +++++++++--------- drivers/gpu/drm/radeon/radeon_audio.h | 2 -- 2 files changed, 9 insertions(+), 11 deletions(-) commit cf58fcb1bea9e0fcf3447bdb959ef5bcd22cfbcb Author: Stephan Mueller Date: Wed May 27 13:50:12 2015 +0200 crypto: jitterentropy - remove timekeeping_valid_for_hres The patch removes the use of timekeeping_valid_for_hres which is now marked as internal for the time keeping subsystem. The jitterentropy does not really require this verification as a coarse timer (when random_get_entropy is absent) is discovered by the initialization test of jent_entropy_init, which would cause the jitter rng to not load in that case. Reported-by: kbuild test robot Signed-off-by: Stephan Mueller Signed-off-by: Herbert Xu crypto/jitterentropy.c | 3 --- 1 file changed, 3 deletions(-) commit 19fa77522e45e384be0f0f93b10c928763460ae3 Author: Herbert Xu Date: Wed May 27 17:24:41 2015 +0800 crypto: algif_aead - Switch to new AEAD interface This patch makes use of the new AEAD interface which uses a single SG list instead of separate lists for the AD and plain text. Note that the user-space interface now requires both input and output to be of the same length, and both must include space for the AD as well as the authentication tag. Signed-off-by: Herbert Xu crypto/algif_aead.c | 66 +++++++---------------------------------------------- 1 file changed, 8 insertions(+), 58 deletions(-) commit a3f2185a29df084611641e964aa93d1a6ee2212c Author: Herbert Xu Date: Wed May 27 16:03:51 2015 +0800 crypto: tcrypt - Switch to new AEAD interface This patch makes use of the new AEAD interface which uses a single SG list instead of separate lists for the AD and plain text. Signed-off-by: Herbert Xu crypto/tcrypt.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) commit 957e0fe6292372460bdace9c2a67a857379ad1db Author: Herbert Xu Date: Wed May 27 16:03:50 2015 +0800 mac80211: Switch to new AEAD interface This patch makes use of the new AEAD interface which uses a single SG list instead of separate lists for the AD and plain text. Tested-by: Johannes Berg Signed-off-by: Herbert Xu net/mac80211/aes_ccm.c | 30 ++++++++++++++---------------- net/mac80211/aes_gcm.c | 30 ++++++++++++++---------------- net/mac80211/aes_gmac.c | 12 +++++------- 3 files changed, 33 insertions(+), 39 deletions(-) commit 25528fdae4abb763c446b2e5081f80ba5a4b6f31 Author: Herbert Xu Date: Wed May 27 16:03:48 2015 +0800 mac802154: Switch to new AEAD interface This patch makes use of the new AEAD interface which uses a single SG list instead of separate lists for the AD and plain text. Signed-off-by: Herbert Xu net/mac802154/llsec.c | 41 ++++++++++++++--------------------------- 1 file changed, 14 insertions(+), 27 deletions(-) commit 000ae7b2690e20b45480d2008757d54a66a38397 Author: Herbert Xu Date: Wed May 27 16:03:47 2015 +0800 esp6: Switch to new AEAD interface This patch makes use of the new AEAD interface which uses a single SG list instead of separate lists for the AD and plain text. The IV generation is also now carried out through normal AEAD methods. Signed-off-by: Herbert Xu net/ipv6/esp6.c | 200 ++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 122 insertions(+), 78 deletions(-) commit 7021b2e1cddd318fd07259606b7ecd912a152c09 Author: Herbert Xu Date: Wed May 27 16:03:46 2015 +0800 esp4: Switch to new AEAD interface This patch makes use of the new AEAD interface which uses a single SG list instead of separate lists for the AD and plain text. The IV generation is also now carried out through normal AEAD methods. Signed-off-by: Herbert Xu net/ipv4/esp4.c | 200 ++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 122 insertions(+), 78 deletions(-) commit 69b0137f6164a14993504d4cf5a61dabf79e6c43 Author: Herbert Xu Date: Wed May 27 16:03:45 2015 +0800 ipsec: Add IV generator information to xfrm_state This patch adds IV generator information to xfrm_state. This is currently obtained from our own list of algorithm descriptions. Signed-off-by: Herbert Xu include/net/xfrm.h | 1 + net/key/af_key.c | 1 + net/xfrm/xfrm_user.c | 40 +++++++++++++++++++++++++++++++--------- 3 files changed, 33 insertions(+), 9 deletions(-) commit 165ecc6373c7bfcd63da6dc489980c892fac2db9 Author: Herbert Xu Date: Wed May 27 16:03:44 2015 +0800 xfrm: Add IV generator information to xfrm_algo_desc This patch adds IV generator information for each AEAD and block cipher to xfrm_algo_desc. This will be used to access the new AEAD interface. Signed-off-by: Herbert Xu include/net/xfrm.h | 2 ++ net/xfrm/xfrm_algo.c | 16 ++++++++++++++++ 2 files changed, 18 insertions(+) commit 8a525fcd46751f8538c240baa4d37d55896c5a29 Author: Herbert Xu Date: Wed May 27 16:03:43 2015 +0800 crypto: testmgr - Switch to new AEAD interface This patch makes use of the new AEAD interface which uses a single SG list instead of separate lists for the AD and plain text. Signed-off-by: Herbert Xu crypto/testmgr.c | 87 +++++++++++++++++++++++++++++++------------------------- 1 file changed, 48 insertions(+), 39 deletions(-) commit 056c04ba8bbad4c563c05306cc8a8c66e713f280 Author: Herbert Xu Date: Wed May 27 14:37:40 2015 +0800 crypto: seqiv - Fix module unload/reload crash On module unload we weren't unregistering the seqniv template, thus leading to a crash the next time someone walks the template list. Signed-off-by: Herbert Xu crypto/seqiv.c | 1 + 1 file changed, 1 insertion(+) commit ccdb8a038451e5f8d62c786591902f08308be524 Author: Herbert Xu Date: Wed May 27 14:37:39 2015 +0800 crypto: seqiv - Fix IV size in context size calculation This patch fixes a bug in the context size calculation where we were still referring to the old cra_aead. Signed-off-by: Herbert Xu crypto/seqiv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 661cfd0e5ed22cfd89a09c5f371d8fcb7d302547 Author: Herbert Xu Date: Wed May 27 14:37:37 2015 +0800 crypto: seqiv - Use common IV generation code This patch makes use of the new common IV generation code. Signed-off-by: Herbert Xu crypto/seqiv.c | 92 +++++++++++++++++++++++----------------------------------- 1 file changed, 36 insertions(+), 56 deletions(-) commit d0ad1b246dc3d77df9a931c4a7852ff72e84ce4d Author: Herbert Xu Date: Wed May 27 14:37:36 2015 +0800 crypto: seqiv - Copy AD along with plain/cipher text As the AD does not necessarily exist in the destination buffer it must be copied along with the plain/cipher text. Signed-off-by: Herbert Xu crypto/seqiv.c | 33 ++++++--------------------------- 1 file changed, 6 insertions(+), 27 deletions(-) commit 9d03aee125d73908ddbe9c1b96338c9b69e1abc0 Author: Herbert Xu Date: Wed May 27 14:37:34 2015 +0800 crypto: echainiv - Fix IV size in context size calculation This patch fixes a bug in the context size calculation where we were still referring to the old cra_aead. Signed-off-by: Herbert Xu crypto/echainiv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d97de47ca1d160acdf29f0b4eadf2ae831bd5254 Author: Herbert Xu Date: Wed May 27 14:37:33 2015 +0800 crypto: echainiv - Use common IV generation code This patch makes use of the new common IV generation code. Signed-off-by: Herbert Xu crypto/echainiv.c | 230 +++++------------------------------------------------- 1 file changed, 18 insertions(+), 212 deletions(-) commit 838c9d561aaae4bc3f4b44046ea08b048ecaffe7 Author: Herbert Xu Date: Wed May 27 14:37:31 2015 +0800 crypto: echainiv - Copy AD along with plain text As the AD does not necessarily exist in the destination buffer it must be copied along with the plain text. Signed-off-by: Herbert Xu crypto/echainiv.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) commit 6350449fbf269aa78281b08852e64d5a4845df96 Author: Herbert Xu Date: Wed May 27 14:37:30 2015 +0800 crypto: aead - Add common IV generation code This patch adds some common IV generation code currently duplicated by seqiv and echainiv. For example, the setkey and setauthsize functions are completely identical. Signed-off-by: Herbert Xu crypto/aead.c | 205 +++++++++++++++++++++++++++++++++++++++- include/crypto/internal/geniv.h | 24 +++++ 2 files changed, 226 insertions(+), 3 deletions(-) commit b455eb80f17471797ba9cb904fe86af1df35f073 Author: Herbert Xu Date: Wed May 27 14:37:29 2015 +0800 crypto: aead - Preserve in-place processing in old_crypt This patch tries to preserve in-place processing in old_crypt as various algorithms are optimised for in-place processing where src == dst. Signed-off-by: Herbert Xu crypto/aead.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit fdaef75f66bba5999a94f3cd9156bf353ba2ef98 Author: Herbert Xu Date: Wed May 27 14:37:27 2015 +0800 crypto: scatterwalk - Add missing sg_init_table to scatterwalk_ffwd We need to call sg_init_table as otherwise the first entry may inadvertently become the last. Signed-off-by: Herbert Xu crypto/scatterwalk.c | 1 + 1 file changed, 1 insertion(+) commit 693b549d39ea755abea721eb53b4262f75f41fb9 Author: Herbert Xu Date: Wed May 27 14:37:26 2015 +0800 crypto: aead - Document behaviour of AD in destination buffer This patch defines the behaviour of AD in the new interface more clearly. In particular, it specifies that if the user must copy the AD to the destination manually when src != dst if they wish to guarantee that the destination buffer contains a copy of the AD. The reason for this is that otherwise every AEAD implementation would have to perform such a copy when src != dst. In reality most users do in-place processing where src == dst so this is not an issue. This patch also kills some remaining references to cryptoff. Signed-off-by: Herbert Xu include/crypto/aead.h | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) commit 6d7e3d89954af773c70948a54cfa2aaa15907c1c Merge: d725332 f858c7b Author: Herbert Xu Date: Thu May 28 11:16:41 2015 +0800 Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 Merge the crypto tree for 4.1 to pull in the changeset that disables algif_aead. commit 6727bb9c6abe836d88191ce13bfdd7a53c245e15 Author: Luis R. Rodriguez Date: Wed May 27 11:09:39 2015 +0930 kernel/module.c: avoid ifdefs for sig_enforce declaration There's no need to require an ifdef over the declaration of sig_enforce as IS_ENABLED() can be used. While at it, there's no harm in exposing this kernel parameter outside of CONFIG_MODULE_SIG as it'd be a no-op on non module sig kernels. Now, technically we should in theory be able to remove the #ifdef'ery over the declaration of the module parameter as we are also trusting the bool_enable_only code for CONFIG_MODULE_SIG kernels but for now remain paranoid and keep it. With time if no one can put a bullet through bool_enable_only and if there are no technical requirements over not exposing CONFIG_MODULE_SIG_FORCE with the measures in place by bool_enable_only we could remove this last ifdef. Cc: Rusty Russell Cc: Andrew Morton Cc: Kees Cook Cc: Tejun Heo Cc: Ingo Molnar Cc: linux-kernel@vger.kernel.org Cc: cocci@systeme.lip6.fr Signed-off-by: Luis R. Rodriguez Signed-off-by: Rusty Russell kernel/module.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) commit 552f530cbc34072d824af021e3289fdd195c880d Author: Luis R. Rodriguez Date: Wed May 27 11:09:39 2015 +0930 kernel/workqueue.c: remove ifdefs over wq_power_efficient We can avoid an ifdef over wq_power_efficient's declaration by just using IS_ENABLED(). Cc: Rusty Russell Cc: Jani Nikula Cc: Andrew Morton Cc: Kees Cook Cc: Tejun Heo Cc: Ingo Molnar Cc: linux-kernel@vger.kernel.org Cc: cocci@systeme.lip6.fr Signed-off-by: Luis R. Rodriguez Signed-off-by: Rusty Russell kernel/workqueue.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) commit 154be21c582857c468575e7cab488fe39dc1445b Author: Luis R. Rodriguez Date: Wed May 27 11:09:39 2015 +0930 kernel/params.c: export param_ops_bool_enable_only This will grant access to this helper to code built as modules. Cc: Rusty Russell Cc: David Howells Cc: Ming Lei Cc: Seth Forshee Cc: Kyle McMartin Signed-off-by: Luis R. Rodriguez Signed-off-by: Rusty Russell kernel/params.c | 1 + 1 file changed, 1 insertion(+) commit d19f05d8a8fa221e5d5f4eaca0f3ca5874c990d3 Author: Luis R. Rodriguez Date: Wed May 27 11:09:38 2015 +0930 kernel/params.c: generalize bool_enable_only This takes out the bool_enable_only implementation from the module loading code and generalizes it so that others can make use of it. Cc: Rusty Russell Cc: Jani Nikula Cc: Andrew Morton Cc: Kees Cook Cc: Tejun Heo Cc: Ingo Molnar Cc: linux-kernel@vger.kernel.org Cc: cocci@systeme.lip6.fr Signed-off-by: Luis R. Rodriguez Signed-off-by: Rusty Russell include/linux/moduleparam.h | 6 ++++++ kernel/module.c | 31 ------------------------------- kernel/params.c | 30 ++++++++++++++++++++++++++++++ 3 files changed, 36 insertions(+), 31 deletions(-) commit 05f408dddb013168759cdb4cbd0ba4e189a9504d Author: Luis R. Rodriguez Date: Wed May 27 11:09:38 2015 +0930 kernel/module.c: use generic module param operaters for sig_enforce We're directly checking and modifying sig_enforce when needed instead of using the generic helpers. This prevents us from generalizing this helper so that others can use it. Use indirect helpers to allow us to generalize this code a bit and to make it a bit more clear what this is doing. Cc: Rusty Russell Cc: Jani Nikula Cc: Andrew Morton Cc: Kees Cook Cc: Tejun Heo Cc: Ingo Molnar Cc: linux-kernel@vger.kernel.org Cc: cocci@systeme.lip6.fr Signed-off-by: Luis R. Rodriguez Signed-off-by: Rusty Russell kernel/module.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) commit 9c27847dda9cfae7c273cde62becf364f9fa9ea3 Author: Luis R. Rodriguez Date: Wed May 27 11:09:38 2015 +0930 kernel/params: constify struct kernel_param_ops uses Most code already uses consts for the struct kernel_param_ops, sweep the kernel for the last offending stragglers. Other than include/linux/moduleparam.h and kernel/params.c all other changes were generated with the following Coccinelle SmPL patch. Merge conflicts between trees can be handled with Coccinelle. In the future git could get Coccinelle merge support to deal with patch --> fail --> grammar --> Coccinelle --> new patch conflicts automatically for us on patches where the grammar is available and the patch is of high confidence. Consider this a feature request. Test compiled on x86_64 against: * allnoconfig * allmodconfig * allyesconfig @ const_found @ identifier ops; @@ const struct kernel_param_ops ops = { }; @ const_not_found depends on !const_found @ identifier ops; @@ -struct kernel_param_ops ops = { +const struct kernel_param_ops ops = { }; Generated-by: Coccinelle SmPL Cc: Rusty Russell Cc: Junio C Hamano Cc: Andrew Morton Cc: Kees Cook Cc: Tejun Heo Cc: Ingo Molnar Cc: cocci@systeme.lip6.fr Cc: linux-kernel@vger.kernel.org Signed-off-by: Luis R. Rodriguez Signed-off-by: Rusty Russell arch/s390/kernel/perf_cpum_sf.c | 2 +- arch/x86/kvm/mmu_audit.c | 2 +- arch/x86/platform/uv/uv_nmi.c | 2 +- drivers/block/null_blk.c | 4 ++-- drivers/char/ipmi/ipmi_watchdog.c | 6 +++--- drivers/dma/dmatest.c | 4 ++-- drivers/ide/ide.c | 2 +- drivers/infiniband/ulp/srp/ib_srp.c | 4 ++-- drivers/input/misc/ati_remote2.c | 4 ++-- drivers/input/mouse/psmouse-base.c | 2 +- drivers/misc/lis3lv02d/lis3lv02d.c | 2 +- drivers/mtd/ubi/block.c | 2 +- drivers/net/wireless/ath/wil6210/main.c | 4 ++-- drivers/power/test_power.c | 16 ++++++++-------- drivers/thermal/intel_powerclamp.c | 4 ++-- drivers/tty/hvc/hvc_iucv.c | 2 +- drivers/tty/sysrq.c | 2 +- drivers/video/fbdev/uvesafb.c | 2 +- drivers/virtio/virtio_mmio.c | 2 +- fs/nfs/super.c | 2 +- include/linux/moduleparam.h | 30 +++++++++++++++--------------- kernel/params.c | 14 +++++++------- net/sunrpc/auth.c | 2 +- net/sunrpc/xprtsock.c | 6 +++--- security/apparmor/lsm.c | 6 +++--- security/integrity/ima/ima_crypto.c | 2 +- sound/pci/hda/hda_intel.c | 2 +- 27 files changed, 66 insertions(+), 66 deletions(-) commit 28b8d0c8f560300836dff352348e513cdf328e50 Author: Gobinda Charan Maji Date: Wed May 27 11:09:38 2015 +0930 sysfs: tightened sysfs permission checks There were some inconsistency in restriction to VERIFY_OCTAL_PERMISSIONS(). Previously the test was "User perms >= group perms >= other perms". The permission field of User, Group or Other consists of three bits. LSB is EXECUTE permission, MSB is READ permission and the middle bit is WRITE permission. But logically WRITE is "more privileged" than READ. Say for example, permission value is "0430". Here User has only READ permission whereas Group has both WRITE and EXECUTE permission. So, the checks could be tightened and the tests are separated to USER_READABLE >= GROUP_READABLE >= OTHER_READABLE, USER_WRITABLE >= GROUP_WRITABLE and OTHER_WRITABLE is not permitted. Signed-off-by: Gobinda Charan Maji Signed-off-by: Rusty Russell include/linux/kernel.h | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) commit 4f666546d047752c17265f4641cc9470c1cbaed4 Author: Peter Zijlstra Date: Wed May 27 11:09:38 2015 +0930 module: Rework module_addr_{min,max} __module_address() does an initial bound check before doing the {list/tree} iteration to find the actual module. The bound variables are nowhere near the mod_tree cacheline, in fact they're nowhere near one another. module_addr_min lives in .data while module_addr_max lives in .bss (smarty pants GCC thinks the explicit 0 assignment is a mistake). Rectify this by moving the two variables into a structure together with the latch_tree_root to guarantee they all share the same cacheline and avoid hitting two extra cachelines for the lookup. While reworking the bounds code, move the bound update from allocation to insertion time, this avoids updating the bounds for a few error paths. Cc: Rusty Russell Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Rusty Russell kernel/module.c | 80 +++++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 52 insertions(+), 28 deletions(-) commit b7df4d1b23bfca830f1076412d21524686c5a441 Author: Peter Zijlstra Date: Wed May 27 11:09:37 2015 +0930 module: Use __module_address() for module_address_lookup() Use the generic __module_address() addr to struct module lookup instead of open coding it once more. Cc: Rusty Russell Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Rusty Russell kernel/module.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) commit 6c9692e2d6a2206d8fd75ea247daa47fb75e4a02 Author: Peter Zijlstra Date: Wed May 27 11:09:37 2015 +0930 module: Make the mod_tree stuff conditional on PERF_EVENTS || TRACING Andrew worried about the overhead on small systems; only use the fancy code when either perf or tracing is enabled. Cc: Rusty Russell Cc: Steven Rostedt Requested-by: Andrew Morton Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Rusty Russell include/linux/module.h | 4 +++- init/Kconfig | 4 ++++ kernel/module.c | 30 ++++++++++++++++++++++++++++-- 3 files changed, 35 insertions(+), 3 deletions(-) commit 93c2e105f6bcee231c951ba0e56e84505c4b0483 Author: Peter Zijlstra Date: Wed May 27 11:09:37 2015 +0930 module: Optimize __module_address() using a latched RB-tree Currently __module_address() is using a linear search through all modules in order to find the module corresponding to the provided address. With a lot of modules this can take a lot of time. One of the users of this is kernel_text_address() which is employed in many stack unwinders; which in turn are used by perf-callchain and ftrace (possibly from NMI context). So by optimizing __module_address() we optimize many stack unwinders which are used by both perf and tracing in performance sensitive code. Cc: Rusty Russell Cc: Steven Rostedt Cc: Mathieu Desnoyers Cc: Oleg Nesterov Cc: "Paul E. McKenney" Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Rusty Russell include/linux/module.h | 29 +++++++++++-- kernel/module.c | 115 ++++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 136 insertions(+), 8 deletions(-) commit ade3f510f93a5613b672febe88eff8ea7f1c63b7 Author: Peter Zijlstra Date: Wed May 27 11:09:37 2015 +0930 rbtree: Implement generic latch_tree Implement a latched RB-tree in order to get unconditional RCU/lockless lookups. Cc: Oleg Nesterov Cc: Michel Lespinasse Cc: Andrea Arcangeli Cc: David Woodhouse Cc: Rik van Riel Cc: Mathieu Desnoyers Cc: "Paul E. McKenney" Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Rusty Russell include/linux/rbtree_latch.h | 212 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 212 insertions(+) commit 7fc26327b75685f37f58d64bdb061460f834f80d Author: Peter Zijlstra Date: Wed May 27 11:09:36 2015 +0930 seqlock: Introduce raw_read_seqcount_latch() Because with latches there is a strict data dependency on the seq load we can avoid the rmb in favour of a read_barrier_depends. Suggested-by: Ingo Molnar Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Rusty Russell include/linux/seqlock.h | 9 +++++++-- kernel/time/timekeeping.c | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) commit 0a04b0166929405cd833c1cc40f99e862b965ddc Author: Peter Zijlstra Date: Wed May 27 11:09:36 2015 +0930 rcu: Move lockless_dereference() out of rcupdate.h I want to use lockless_dereference() from seqlock.h, which would mean including rcupdate.h from it, however rcupdate.h already includes seqlock.h. Avoid this by moving lockless_dereference() into compiler.h. This is somewhat tricky since it uses smp_read_barrier_depends() which isn't available there, but its a CPP macro so we can get away with it. The alternative would be moving it into asm/barrier.h, but that would be updating each arch (I can do if people feel that is more appropriate). Cc: Paul McKenney Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Rusty Russell include/linux/compiler.h | 15 +++++++++++++++ include/linux/rcupdate.h | 15 --------------- 2 files changed, 15 insertions(+), 15 deletions(-) commit 6695b92a60bc7160c92d6dc5b17cc79673017c2f Author: Peter Zijlstra Date: Wed May 27 11:09:36 2015 +0930 seqlock: Better document raw_write_seqcount_latch() Improve the documentation of the latch technique as used in the current timekeeping code, such that it can be readily employed elsewhere. Borrow from the comments in timekeeping and replace those with a reference to this more generic comment. Cc: Andrea Arcangeli Cc: David Woodhouse Cc: Rik van Riel Cc: "Paul E. McKenney" Cc: Oleg Nesterov Reviewed-by: Mathieu Desnoyers Acked-by: Michel Lespinasse Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Rusty Russell include/linux/seqlock.h | 76 ++++++++++++++++++++++++++++++++++++++++++++++- kernel/time/timekeeping.c | 27 +---------------- 2 files changed, 76 insertions(+), 27 deletions(-) commit d72da4a4d973d8a0a0d3c97e7cdebf287fbe3a99 Author: Peter Zijlstra Date: Wed May 27 11:09:36 2015 +0930 rbtree: Make lockless searches non-fatal Change the insert and erase code such that lockless searches are non-fatal. In and of itself an rbtree cannot be correctly searched while in-modification, we can however provide weaker guarantees that will allow the rbtree to be used in conjunction with other techniques, such as latches; see 9b0fd802e8c0 ("seqcount: Add raw_write_seqcount_latch()"). For this to work we need the following guarantees from the rbtree code: 1) a lockless reader must not see partial stores, this would allow it to observe nodes that are invalid memory. 2) there must not be (temporary) loops in the tree structure in the modifier's program order, this would cause a lookup which interrupts the modifier to get stuck indefinitely. For 1) we must use WRITE_ONCE() for all updates to the tree structure; in particular this patch only does rb_{left,right} as those are the only element required for simple searches. It generates slightly worse code, probably because volatile. But in pointer chasing heavy code a few instructions more should not matter. For 2) I have carefully audited the code and drawn every intermediate link state and not found a loop. Cc: Mathieu Desnoyers Cc: "Paul E. McKenney" Cc: Oleg Nesterov Cc: Andrea Arcangeli Cc: David Woodhouse Cc: Rik van Riel Reviewed-by: Michel Lespinasse Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Rusty Russell include/linux/rbtree.h | 16 +++++++-- include/linux/rbtree_augmented.h | 21 +++++++---- lib/rbtree.c | 76 ++++++++++++++++++++++++++++------------ 3 files changed, 81 insertions(+), 32 deletions(-) commit 0be964be0d45084245673c971d72a4b51690231d Author: Peter Zijlstra Date: Wed May 27 11:09:35 2015 +0930 module: Sanitize RCU usage and locking Currently the RCU usage in module is an inconsistent mess of RCU and RCU-sched, this is broken for CONFIG_PREEMPT where synchronize_rcu() does not imply synchronize_sched(). Most usage sites use preempt_{dis,en}able() which is RCU-sched, but (most of) the modification sites use synchronize_rcu(). With the exception of the module bug list, which actually uses RCU. Convert everything over to RCU-sched. Furthermore add lockdep asserts to all sites, because it's not at all clear to me the required locking is observed, esp. on exported functions. Cc: Rusty Russell Acked-by: "Paul E. McKenney" Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Rusty Russell include/linux/module.h | 12 ++++++++++-- kernel/module.c | 40 ++++++++++++++++++++++++++++++++-------- lib/bug.c | 7 +++++-- 3 files changed, 47 insertions(+), 12 deletions(-) commit ad5fb870c486d932a1749d7853dd70f436a7e03f Author: Dan Williams Date: Fri Apr 3 12:05:28 2015 -0400 e820, efi: add ACPI 6.0 persistent memory types ACPI 6.0 formalizes e820-type-7 and efi-type-14 as persistent memory. Mark it "reserved" and allow it to be claimed by a persistent memory device driver. This definition is in addition to the Linux kernel's existing type-12 definition that was recently added in support of shipping platforms with NVDIMM support that predate ACPI 6.0 (which now classifies type-12 as OEM reserved). Note, /proc/iomem can be consulted for differentiating legacy "Persistent Memory (legacy)" E820_PRAM vs standard "Persistent Memory" E820_PMEM. Cc: Boaz Harrosh Cc: Ingo Molnar Cc: Christoph Hellwig Cc: Andrew Morton Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Jens Axboe Cc: Linus Torvalds Cc: Matthew Wilcox Cc: Thomas Gleixner Acked-by: Jeff Moyer Acked-by: Andy Lutomirski Reviewed-by: Ross Zwisler Acked-by: Christoph Hellwig Tested-by: Toshi Kani Signed-off-by: Dan Williams arch/arm64/kernel/efi.c | 1 + arch/ia64/kernel/efi.c | 4 ++++ arch/x86/boot/compressed/eboot.c | 4 ++++ arch/x86/include/uapi/asm/e820.h | 1 + arch/x86/kernel/e820.c | 28 ++++++++++++++++++++++++---- arch/x86/platform/efi/efi.c | 3 +++ include/linux/efi.h | 3 ++- 7 files changed, 39 insertions(+), 5 deletions(-) commit f00898f4e20b286877b8d6d96d6e404661fd7985 Author: Andi Kleen Date: Wed May 27 10:51:51 2015 -0700 perf tools: Move branch option parsing to own file .. to allow sharing between builtin-record and builtin-top later. No code changes, just moved code. Signed-off-by: Andi Kleen Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1432749114-904-9-git-send-email-andi@firstfloor.org [ Rename too generic branch.[ch] name to parse-branch-options.[ch] ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-record.c | 89 +------------------------------- tools/perf/util/Build | 1 + tools/perf/util/parse-branch-options.c | 93 ++++++++++++++++++++++++++++++++++ tools/perf/util/parse-branch-options.h | 5 ++ 4 files changed, 100 insertions(+), 88 deletions(-) commit ef07991a95de76b07594448c3521361831ec2cfe Author: Hauke Mehrtens Date: Sun May 24 22:37:03 2015 +0200 PCI: iproc: Free resource list after registration The resource list is only used in the setup process and was never freed. pci_add_resource() allocates a memory area to store the list item. Fix the memory leak. Tested-by: Ray Jui Signed-off-by: Hauke Mehrtens Signed-off-by: Bjorn Helgaas Reviewed-by: Ray Jui drivers/pci/host/pcie-iproc-bcma.c | 8 ++++---- drivers/pci/host/pcie-iproc-platform.c | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) commit 83be34a7a913bdf9f21f524333c63d9c48a28ef4 Author: Andi Kleen Date: Wed May 27 10:51:46 2015 -0700 perf annotation: Add symbol__get_annotation Add a new utility function to get an function annotation out of existing code. Signed-off-by: Andi Kleen Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1432749114-904-4-git-send-email-andi@firstfloor.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/annotate.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) commit 90543ec8290b31b15fc9dd6de8e9c2b6347a9059 Author: Arnd Bergmann Date: Tue May 26 16:10:02 2015 +0100 ARM: 8381/1: fix ARMv4+Feroceon multiplatform build The feroceon copypage implementation cannot be built when targetting an ARMv4 CPU, so we need to pass the march=armv5te flag manually to gcc when building this file. This is obviously safe since that code will not be executed on ARMv4. Signed-off-by: Arnd Bergmann Signed-off-by: Russell King arch/arm/mm/Makefile | 2 ++ 1 file changed, 2 insertions(+) commit 6e27549bbcdb35975d5c157a2170b81bcb1291db Author: Arnd Bergmann Date: Tue May 26 16:08:46 2015 +0100 ARM: 8380/1: bpf: fix NOMMU build arch/arm/net/built-in.o: In function `bpf_jit_compile': :(.text+0x2758): undefined reference to `set_memory_ro' arch/arm/net/built-in.o: In function `bpf_jit_free': :(.text+0x27ac): undefined reference to `set_memory_rw' Signed-off-by: Arnd Bergmann Signed-off-by: Russell King arch/arm/include/asm/cacheflush.h | 7 +++++++ 1 file changed, 7 insertions(+) commit 65ba508d215184746450467ce75685df255720b4 Author: Arnd Bergmann Date: Tue May 26 16:07:51 2015 +0100 ARM: 8379/1: disable CONFIG_PTDUMP on !MMU It's obviously pointless to dump page tables when the MMU is disabled, and even trying to build this code results in numerous build errors like these: ../arch/arm/mm/dump.c:56:11: error: 'L_PTE_USER' undeclared here (not in a function) .mask = L_PTE_USER, ^ ../arch/arm/mm/dump.c:61:11: error: 'L_PTE_RDONLY' undeclared here (not in a function) .mask = L_PTE_RDONLY, ^ ../arch/arm/mm/dump.c:66:11: error: 'L_PTE_XN' undeclared here (not in a function) .mask = L_PTE_XN, ^ Signed-off-by: Arnd Bergmann Signed-off-by: Russell King arch/arm/Kconfig.debug | 1 + 1 file changed, 1 insertion(+) commit cb1293e2f594558ccc3995acf9c9d7400b3add36 Author: Arnd Bergmann Date: Tue May 26 15:40:44 2015 +0100 ARM: 8375/1: disable some options on ARMv7-M Kprobes, irqflags tracing and kexec don't currently build on kernels targetting ARMv7-M, so for now, we should just disallow those combinations. Signed-off-by: Arnd Bergmann Signed-off-by: Russell King arch/arm/Kconfig | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit c32b76557287a032d1a38032f55c50d3a27dc743 Author: Arnd Bergmann Date: Tue May 26 15:40:16 2015 +0100 ARM: 8374/1: no longer expose CPU_ARM7TDMI/CPU_ARM9TDMI Atmel at91x40 is gone, so we no longer have any platform using either of these two, and we get randconfig failures on NOMMU kernels if they accidentally get enabled on something that conflicts with ARMv4T. This stops short of removing the entire CPU support for now, but as nothing selects these, it is basically dead code. Signed-off-by: Arnd Bergmann Signed-off-by: Russell King arch/arm/mm/Kconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 8c36a75748d0208e41e6fe7817c631ac8075eeef Author: Arnd Bergmann Date: Tue May 26 15:39:36 2015 +0100 ARM: 8373/1: disable branch profiling in uncompressor The branch profiling code cannot work outside of the main kernel and just causes link errors if we try to use it in the decompressor. Disabling it here matches what we do for other architectures. Signed-off-by: Arnd Bergmann Signed-off-by: Russell King arch/arm/boot/compressed/Makefile | 2 ++ 1 file changed, 2 insertions(+) commit cfeec79eb2587e0efc43c219558d70939d31bdc9 Author: Arnd Bergmann Date: Tue May 26 15:38:01 2015 +0100 ARM: 8372/1: KGDB does not build on BE32 KGDB requires code patching, which only works on little-endian or newer big-endian (BE8) machines but not on the older big-endian ones (BE32) where it results in this build error: arch/arm/kernel/patch.c: In function '__patch_text_real': arch/arm/kernel/patch.c:93:4: error: implicit declaration of function '__opcode_to_mem_thumb32' [-Werror=implicit-function-declaration] insn = __opcode_to_mem_thumb32(insn); This adds a Kconfig dependency to avoid the broken case and for all other symbols that require code patching. Fixes: 23a4e4050ba9 ("arm: kgdb: Handle read-only text / modules") Signed-off-by: Arnd Bergmann Signed-off-by: Russell King arch/arm/Kconfig | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 18ffdfe8e98f861a39590ef2374ad51fc963567e Author: Jiri Olsa Date: Mon May 25 22:51:54 2015 +0200 perf tools: Add hint for 'Too many events are opened.' error message Enhancing the 'Too many events are opened.' error message with hint to use use 'ulimit -n ' command. Before: $ perf record -e 'sched:*,syscalls:*' ls Error: Too many events are opened. Try again after reducing the number of events. Now: $ perf record -e 'sched:*,syscalls:*' ls Error: Too many events are opened. Probably the maximum number of open file descriptors has been reached. Hint: Try again after reducing the number of events. Hint: Try increasing the limit with 'ulimit -n ' Signed-off-by: Jiri Olsa Cc: David Ahern Cc: Michael Petlan Cc: Namhyung Kim Cc: Paul Mackerras Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1432587114-14924-1-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/evsel.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 18c4342aa56d70176eea85021e6fe8f6f8f39c7b Author: Hauke Mehrtens Date: Sun May 24 22:37:02 2015 +0200 PCI: iproc: Directly add PCI resources The struct iproc_pcie.resources member was pointing to a stack variable and is invalid after the registration function returned. Remove this pointer and add a parameter to the function. Tested-by: Ray Jui Signed-off-by: Hauke Mehrtens Signed-off-by: Bjorn Helgaas Reviewed-by: Ray Jui drivers/pci/host/pcie-iproc-bcma.c | 4 +--- drivers/pci/host/pcie-iproc-platform.c | 4 +--- drivers/pci/host/pcie-iproc.c | 4 ++-- drivers/pci/host/pcie-iproc.h | 3 +-- 4 files changed, 5 insertions(+), 10 deletions(-) commit 84c2cafa288939e11d21c7830e32b2aee21b723e Author: Arnaldo Carvalho de Melo Date: Mon May 25 16:59:56 2015 -0300 perf tools: Reference count struct map We have pointers to struct map instances in several places, like in the hist_entry instances, so we need a way to know when we can destroy them, otherwise we may either keep leaking them or end up referencing deleted instances. Start fixing it by reference counting them. This patch puts the reference count for struct map in place, replacing direct map__delete() calls with map__put() ones and then grabbing a reference count when adding it to the maps struct where maps for a struct thread are kept. Next we'll grab reference counts when setting pointers to struct map instances, in places like in the hist_entry code. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-wi19xczk0t2a41r1i2chuio5@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/machine.c | 3 ++- tools/perf/util/map.c | 21 +++++++++++++++------ tools/perf/util/map.h | 11 +++++++++++ tools/perf/util/probe-event.c | 6 +++--- tools/perf/util/symbol-elf.c | 2 ++ tools/perf/util/symbol.c | 7 +++++-- 6 files changed, 38 insertions(+), 12 deletions(-) commit facf3f0621b2e11957af1aae9085730ea78ccf85 Author: Arnaldo Carvalho de Melo Date: Mon May 25 15:30:09 2015 -0300 perf tools: Check if a map is still in use when deleting it I.e. match RB_CLEAR_NODE() with RB_EMPTY_NODE(), to check that it isn't in a rb tree at the time of its deletion. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-vumvhird765id11zbx00d2r8@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-annotate.c | 4 ++++ tools/perf/util/map.c | 9 +++++---- tools/perf/util/symbol.c | 8 ++++---- 3 files changed, 13 insertions(+), 8 deletions(-) commit 0361748f3b4a1cd73657a0a44fc3bc71ea30e8eb Author: Arnd Bergmann Date: Tue May 26 15:36:58 2015 +0100 ARM: 8371/1: always select IRQ_WORK on SMP Any SMP kernel now requires the irq_work code after generic_smp_call_function_single_interrupt() started using it, or we get: kernel/built-in.o: In function `flush_smp_call_function_queue': :(.text+0x4dc3a): undefined reference to `irq_work_run' Fixes: 478850160636c4f ("irq_work: Implement remote queueing") Signed-off-by: Arnd Bergmann Signed-off-by: Russell King arch/arm/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 6a2ffcddad22ead7ce75c5773e87895b91e7cca7 Author: Arnaldo Carvalho de Melo Date: Fri May 22 13:45:24 2015 -0300 perf tools: Protect accesses the map rbtrees with a rw lock To allow concurrent access, next step: refcount struct map instances, so that we can ditch maps->removed_maps and stop leaking threads, maps, then struct DSO needs the same treatment. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-o45w2w5dzrza38nzqxnqzhyf@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/map.c | 122 +++++++++++++++++++++++++++++++++++------------ tools/perf/util/map.h | 2 + tools/perf/util/symbol.c | 17 +++++-- 3 files changed, 108 insertions(+), 33 deletions(-) commit f1a9983002cd9d849b37b88d44c89edef7a291ee Author: Guenter Roeck Date: Wed May 27 13:02:16 2015 -0700 staging: wilc1000: Include linux/gpio.h instead of asm/gpio.h Fix: drivers/staging/wilc1000/linux_wlan.c:18:22: fatal error: asm/gpio.h: No such file or directory Not every architecture has asm/gpio.h. Include linux/gpio.h instead. Signed-off-by: Guenter Roeck Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4c9e0f76a55a38757390d43c40b2c7c3564a855a Author: Arnd Bergmann Date: Sat May 23 09:31:54 2015 +0100 ARM: 8370/1: hisi: fix hip04 build without HOTPLUG_CPU The hip04 smp implementation provides the hotplug operations (cpu_die and cpu_kill) unconditionally at the moment, which leads to a build error when HOTPLUG_CPU is disabled: mach-hisi/platmcpm.c:242:13: note: (near initialization for 'hip04_smp_ops') mach-hisi/platmcpm.c:242:2: error: unknown field 'cpu_die' specified in initializer mach-hisi/platmcpm.c:243:2: error: unknown field 'cpu_kill' specified in initializer This uses an #ifdef to remove the code from the build when that option is not set. Fixes: 905cdf9dda5d ("ARM: hisi/hip04: remove the MCPM overhead") Signed-off-by: Arnd Bergmann Acked-by: Nicolas Pitre Acked-by: Wei Xu Signed-off-by: Russell King arch/arm/mach-hisi/platmcpm.c | 4 ++++ 1 file changed, 4 insertions(+) commit 1eee78aea9252fabcd333805d5d9fa42a1bf9427 Author: Arnaldo Carvalho de Melo Date: Fri May 22 12:58:53 2015 -0300 perf tools: Introduce struct maps That for now has the maps rbtree and the list for the dead maps, that may be still referenced from some hist_entry, etc. This paves the way for protecting the rbtree with a lock, then refcount the maps and finally remove the removed_maps list, as it'll not ne anymore needed. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-fl0fa6142pj8khj97fow3uw0@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/vmlinux-kallsyms.c | 2 +- tools/perf/util/event.c | 2 +- tools/perf/util/map.c | 64 +++++++++++++++++++++---------------- tools/perf/util/map.h | 16 ++++++---- tools/perf/util/probe-event.c | 2 +- tools/perf/util/symbol.c | 4 +-- 6 files changed, 52 insertions(+), 38 deletions(-) commit 0868aa22167d93dd974c253d259c3e6fd47a16c8 Merge: 29c6820 ed38446 f517700 927da9d 1ce46ee 6e91f8c 7d3bb54 Author: Paul E. McKenney Date: Wed May 27 13:00:49 2015 -0700 Merge branches 'array.2015.05.27a', 'doc.2015.05.27a', 'fixes.2015.05.27a', 'hotplug.2015.05.27a', 'init.2015.05.27a', 'tiny.2015.05.27a' and 'torture.2015.05.27a' into HEAD array.2015.05.27a: Remove all uses of RCU-protected array indexes. doc.2015.05.27a: Docuemntation updates. fixes.2015.05.27a: Miscellaneous fixes. hotplug.2015.05.27a: CPU-hotplug updates. init.2015.05.27a: Initialization/Kconfig updates. tiny.2015.05.27a: Updates to Tiny RCU. torture.2015.05.27a: Torture-testing updates. commit 7d3bb54adeb13bb98badd86c24648d51ebe28331 Author: Paul E. McKenney Date: Mon May 11 13:55:47 2015 -0700 rcutorture: Allow repetition factors in Kconfig-fragment lists Although it is currently possible to run the same test in parallel, '--config "TINY01 TINY01 TINY01"' can get a bit verbose, especially if you want to run 48 instances of TINY01 in parallel. This commit therefore allows prefixing the Kconfig fragment with a repeat count, for example, '--config "48*TINY01"' to run 48 instances in parallel. At least assuming that you have 48 CPUs and also gave '--cpus 48'. Signed-off-by: Paul E. McKenney Reviewed-by: Josh Triplett tools/testing/selftests/rcutorture/bin/kvm.sh | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) commit 8ba8b664d4e43abf6bd896f3f614c8eb22384635 Author: Paul E. McKenney Date: Thu Apr 23 12:55:54 2015 -0700 rcutorture: Display "make oldconfig" errors The current rcutorture scripting fails to dump out errors from "make oldconfig", so this commit addresses this issue. Signed-off-by: Paul E. McKenney Reviewed-by: Josh Triplett tools/testing/selftests/rcutorture/bin/configinit.sh | 2 +- tools/testing/selftests/rcutorture/bin/kvm-recheck.sh | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) commit ccd60ad3f87f6a5f2974a7f206e77b49b251e94c Author: Paul E. McKenney Date: Wed Apr 22 07:20:51 2015 -0700 rcutorture: Update TREE_RCU-kconfig.txt This commit updates TREE_RCU-kconfig.txt to reflect changes in RCU's Kconfig setup. This commit also updates rcutorture's Kconfig fragments to account for Kconfig parameters that are now driven directly off of other Kconfig parameters. The #CHECK# prefix tells the rcutorture scripts to take no action to try to set the Kconfig parameter, but to check that it does in fact get set. This is useful for verifying that Kconfig parameters that are supposed to be automatically set do in fact get set to the required values. Reported-by: Pranith Kumar Signed-off-by: Paul E. McKenney Reviewed-by: Josh Triplett .../selftests/rcutorture/configs/rcu/TASKS01 | 3 +- .../selftests/rcutorture/configs/rcu/TINY02 | 2 +- .../selftests/rcutorture/configs/rcu/TREE04 | 2 +- .../selftests/rcutorture/configs/rcu/TREE05 | 2 +- .../selftests/rcutorture/configs/rcu/TREE06 | 2 +- .../selftests/rcutorture/configs/rcu/TREE07 | 2 +- .../selftests/rcutorture/configs/rcu/TREE08 | 2 +- .../selftests/rcutorture/doc/TREE_RCU-kconfig.txt | 36 ++++++++-------------- 8 files changed, 21 insertions(+), 30 deletions(-) commit c4295bfe7eb867d8159f6b755e96fda06b96c132 Author: Paul E. McKenney Date: Mon Apr 20 12:36:10 2015 -0700 rcutorture: Make rcutorture scripts force RCU_EXPERT This commit causes the rcutorture scripts to force RCU_EXPERT so that these scripts can cause rcutorture to torture RCU in the various required configurations. However, SRCU-P, TASKS03, and TREE09 retain !RCU_EXPERT in order to ensure testing of the vanilla configuration. Signed-off-by: Paul E. McKenney Reviewed-by: Pranith Kumar Reviewed-by: Josh Triplett tools/testing/selftests/rcutorture/configs/rcu/SRCU-N | 1 + tools/testing/selftests/rcutorture/configs/rcu/SRCU-P | 1 + tools/testing/selftests/rcutorture/configs/rcu/TASKS01 | 1 + tools/testing/selftests/rcutorture/configs/rcu/TASKS03 | 1 + tools/testing/selftests/rcutorture/configs/rcu/TREE01 | 1 + tools/testing/selftests/rcutorture/configs/rcu/TREE02 | 1 + tools/testing/selftests/rcutorture/configs/rcu/TREE03 | 1 + tools/testing/selftests/rcutorture/configs/rcu/TREE04 | 1 + tools/testing/selftests/rcutorture/configs/rcu/TREE05 | 1 + tools/testing/selftests/rcutorture/configs/rcu/TREE06 | 1 + tools/testing/selftests/rcutorture/configs/rcu/TREE07 | 1 + tools/testing/selftests/rcutorture/configs/rcu/TREE08 | 1 + tools/testing/selftests/rcutorture/configs/rcu/TREE09 | 1 + 13 files changed, 13 insertions(+) commit c5e8e98cd11950f121e9df19f46a86892412763c Author: Paul E. McKenney Date: Mon Apr 20 10:41:13 2015 -0700 rcutorture: Update configuration fragments for rcutree.rcu_fanout_exact This commit updates rcutortures configuration-fragment files to account for the move from the CONFIG_RCU_FANOUT_EXACT Kconfig parameter to the new rcutree.rcu_fanout_exact= boot parameter. Signed-off-by: Paul E. McKenney Reviewed-by: Pranith Kumar Reviewed-by: Josh Triplett tools/testing/selftests/rcutorture/configs/rcu/TREE02 | 1 - tools/testing/selftests/rcutorture/configs/rcu/TREE02-T | 1 - tools/testing/selftests/rcutorture/configs/rcu/TREE03 | 1 - tools/testing/selftests/rcutorture/configs/rcu/TREE04 | 1 - tools/testing/selftests/rcutorture/configs/rcu/TREE05 | 1 - tools/testing/selftests/rcutorture/configs/rcu/TREE06 | 1 - tools/testing/selftests/rcutorture/configs/rcu/TREE06.boot | 1 + tools/testing/selftests/rcutorture/configs/rcu/TREE07 | 1 - tools/testing/selftests/rcutorture/configs/rcu/TREE08 | 1 - tools/testing/selftests/rcutorture/configs/rcu/TREE08-T | 1 - tools/testing/selftests/rcutorture/configs/rcu/TREE08-T.boot | 1 + tools/testing/selftests/rcutorture/configs/rcu/TREE08.boot | 1 + 12 files changed, 3 insertions(+), 9 deletions(-) commit 9a8e7062f6ee38cf53e4be1d52556fd93fac8b00 Author: Paul E. McKenney Date: Mon Apr 20 06:12:16 2015 -0700 rcutorture: TASKS_RCU set directly, so don't explicitly set it The TASKS01, TASKS02, and TASKS03 rcutorture config fragments currently set CONFIG_TASKS_RCU. However, now that the value of this Kconfig parameter is set via "select" statements, it is no longer necessary to set it explicitly. This commit therefore removes it from the Kconfig fragments. Signed-off-by: Paul E. McKenney Reviewed-by: Pranith Kumar Reviewed-by: Josh Triplett tools/testing/selftests/rcutorture/configs/rcu/TASKS01 | 1 - tools/testing/selftests/rcutorture/configs/rcu/TASKS02 | 1 - tools/testing/selftests/rcutorture/configs/rcu/TASKS03 | 1 - 3 files changed, 3 deletions(-) commit ca1d51ed9809a99d71c23a343b3acd3fd4ad8cbe Author: Paul E. McKenney Date: Tue Apr 14 12:28:22 2015 -0700 rcutorture: Test SRCU cleanup code path The current rcutorture testing does not do any cleanup operations. This works because the srcu_struct is statically allocated, but it does represent a memory leak of the associated dynamically allocated ->per_cpu_ref per-CPU variables. However, rcutorture currently uses a statically allocated srcu_struct, which cannot legally be passed to cleanup_srcu_struct(). Therefore, this commit adds a second form of srcu (called srcud) that dynamically allocates and frees the associated per-CPU variables. This commit also adds a ->cleanup() member to rcu_torture_ops that is invoked at the end of the test, after ->cb_barriers(). This ->cleanup() pointer is NULL for all existing tests, and thus only used for scrud. Finally, the SRCU-P torture-test configuration selects scrud instead of srcu, with SRCU-N continuing to use srcu, thereby testing both static and dynamic srcu_struct structures. Reported-by: "Ahmed, Iftekhar" Signed-off-by: Paul E. McKenney Reviewed-by: Josh Triplett kernel/rcu/rcutorture.c | 77 ++++++++++++++++------ .../selftests/rcutorture/configs/rcu/SRCU-P.boot | 2 +- 2 files changed, 59 insertions(+), 20 deletions(-) commit 6c7ed42c81a2d9a7e0646240599552040375fa02 Author: Paul E. McKenney Date: Mon Apr 13 11:58:08 2015 -0700 rcutorture: Replace barriers with smp_store_release() and smp_load_acquire() The rcutorture.c file uses several explicit memory barriers that can easily be converted to smp_store_release() and smp_load_acquire(), which improves maintainability and also improves performance a bit. Signed-off-by: Paul E. McKenney Reviewed-by: Josh Triplett kernel/rcu/rcutorture.c | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) commit 61d49d2f9888ace06ab127cf6f063bed7c3b2e53 Author: Paul E. McKenney Date: Wed Apr 1 08:42:27 2015 -0700 locktorture: Change longdelay_us to longdelay_ms The locktorture long delays are in milliseconds rather than microseconds, so this commit changes the name of the corresponding variable from longdelay_us to longdelay_ms. Reported-by: Ben Goodwyn Signed-off-by: Paul E. McKenney Cc: Davidlohr Bueso Reviewed-by: Josh Triplett kernel/locking/locktorture.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 3838cc1850ccd09f93e729e9047ec1995026f83e Author: Paul E. McKenney Date: Thu Mar 12 13:55:48 2015 -0700 rcutorture: Allow negative values of nreaders to oversubscribe By default, with rcutorture.nreaders equal to -1, rcutorture provisions N-1 reader kthreads, where N is the number of CPUs. This avoids rcutorture-induced stalls, but also avoids heavier levels of torture. This commit therefore allows negative values of rcutorture.nreaders to specify larger numbers of reader kthreads, so that for example rcutorture.nreaders=-2 provisions N kthreads and rcutorture.nreaders=-5 provisions N+3 kthreads. Signed-off-by: Paul E. McKenney [ paulmck: Update documentation, as suggested by Josh Triplett. ] Documentation/kernel-parameters.txt | 6 +++++- kernel/rcu/rcutorture.c | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) commit 6530b3f4c5043aa8ef66faa8296291b1ea6ba2eb Author: Paul E. McKenney Date: Thu Mar 12 11:42:48 2015 -0700 rcutorture: Exchange TREE03 and TREE08 NR_CPUS, speed up CPU hotplug TREE03 has been especially effective at finding bugs lately. This commit makes it even more effective by speeding up its CPU hotplug testing and increasing its NR_CPUs from 8 to 16. TREE08's NR_CPUS is decreased from 16 to 8 in order to maintain the same test duration. Signed-off-by: Paul E. McKenney Reviewed-by: Josh Triplett tools/testing/selftests/rcutorture/configs/rcu/TREE03 | 2 +- tools/testing/selftests/rcutorture/configs/rcu/TREE03.boot | 1 + tools/testing/selftests/rcutorture/configs/rcu/TREE08 | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) commit f76b244e478f570eaa34daa4034c4380fdda82f6 Author: Paul E. McKenney Date: Wed Mar 11 15:25:53 2015 -0700 rcutorture: Exchange TREE03 and TREE04 geometries Given that the combination of PREEMPT_RCU and HOTPLUG_CPU is producing the most bugs lately, this commit swaps the TREE03 and TREE04 rcu_node-tree geometries so that the test exercising PREEMPT_RCU and HOTPLUG_CPU has three-level rather than two-level rcu_node trees. Signed-off-by: Paul E. McKenney Reviewed-by: Josh Triplett tools/testing/selftests/rcutorture/configs/rcu/TREE03 | 4 ++-- tools/testing/selftests/rcutorture/configs/rcu/TREE04 | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit f548d99ef4f5ec8f7080e88ad07c44d16d058ddc Author: Alexey Kodanev Date: Sat Mar 7 03:06:53 2015 +0300 locktorture: fix deadlock in 'rw_lock_irq' type torture_rwlock_read_unlock_irq() must use read_unlock_irqrestore() instead of write_unlock_irqrestore(). Use read_unlock_irqrestore() instead of write_unlock_irqrestore(). Signed-off-by: Alexey Kodanev Signed-off-by: Paul E. McKenney Reviewed-by: Josh Triplett kernel/locking/locktorture.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6e91f8cb138625be96070b778d9ba71ce520ea7e Author: Paul E. McKenney Date: Mon May 11 11:13:05 2015 -0700 rcu: Correctly handle non-empty Tiny RCU callback list with none ready If, at the time __rcu_process_callbacks() is invoked, there are callbacks in Tiny RCU's callback list, but none of them are ready to be invoked, the current list-management code will knit the non-ready callbacks out of the list. This can result in hangs and possibly worse. This commit therefore inserts a check for there being no callbacks that can be invoked immediately. This bug is unlikely to occur -- you have to get a new callback between the time rcu_sched_qs() or rcu_bh_qs() was called, but before we get to __rcu_process_callbacks(). It was detected by the addition of RCU-bh testing to rcutorture, which in turn was instigated by Iftekhar Ahmed's mutation testing. Although this bug was made much more likely by 915e8a4fe45e (rcu: Remove fastpath from __rcu_process_callbacks()), this did not cause the bug, but rather made it much more probable. That said, it takes more than 40 hours of rcutorture testing, on average, for this bug to appear, so this fix cannot be considered an emergency. Signed-off-by: Paul E. McKenney Cc: Reviewed-by: Josh Triplett kernel/rcu/tiny.c | 5 +++++ 1 file changed, 5 insertions(+) commit f13bad9042dcf9b60b48a0137951b614a2ee24b5 Author: Paul E. McKenney Date: Tue Apr 21 12:11:23 2015 -0700 rcutorture: Test both RCU-sched and RCU-bh for Tiny RCU Tiny RCU supports both RCU-sched and RCU-bh, but only RCU-sched is currently tested by the rcutorture scripts. This commit therefore changes the TINY02 configuration to test RCU-bh, with TINY01 continuing to test RCU-sched. This shortcoming of the current rcutorture tests was located by mutation testing by Iftekhar. The idea behind mutation testing is to automatically mutate the code under test. If a given mutant is not caught by testing, this is a hint that the testing might need to be improved, as was the case here. Note that this is only a hint because it is possible to mutate the code into something else that still works. For example, a mutation that removes (say) a WARN_ON() will not normally result in a test failure. This change resulted in the test failure caused by list mishandling, which is fixed by the next commit. Reported-by: "Ahmed, Iftekhar" Signed-off-by: Paul E. McKenney Reviewed-by: Josh Triplett tools/testing/selftests/rcutorture/configs/rcu/TINY02.boot | 1 + 1 file changed, 1 insertion(+) commit 51952bc633064311410b041fad38da1614f4539e Author: Paul E. McKenney Date: Tue Apr 21 11:15:30 2015 -0700 rcu: Further shrink Tiny RCU by making empty functions static inlines The Tiny RCU counterparts to rcu_idle_enter(), rcu_idle_exit(), rcu_irq_enter(), and rcu_irq_exit() are empty functions, but each has EXPORT_SYMBOL_GPL(), which needlessly consumes extra memory, especially in kernels built with module support. This commit therefore moves these functions to static inlines in rcutiny.h, removing the need for exports. This won't affect the size of the tiniest kernels, which are likely built without module support, but might help semi-tiny kernels that might include module support. Signed-off-by: Paul E. McKenney Reviewed-by: Josh Triplett include/linux/rcupdate.h | 4 ---- include/linux/rcutiny.h | 16 ++++++++++++++++ include/linux/rcutree.h | 5 +++++ kernel/rcu/tiny.c | 33 --------------------------------- 4 files changed, 21 insertions(+), 37 deletions(-) commit 1ce46ee597bc36fde6984e91aecc2d662a754199 Author: Paul E. McKenney Date: Tue May 5 23:04:22 2015 -0700 rcu: Conditionally compile RCU's eqs warnings This commit applies some warning-omission micro-optimizations to RCU's various extended-quiescent-state functions, which are on the kernel/user hotpath for CONFIG_NO_HZ_FULL=y. Reported-by: Rik van Riel Reported by: Mike Galbraith Signed-off-by: Paul E. McKenney kernel/rcu/tree.c | 23 +++++++++++++++-------- lib/Kconfig.debug | 11 +++++++++++ 2 files changed, 26 insertions(+), 8 deletions(-) commit e72aeafc66060d3fc6b4d2120db00058572b3186 Author: Pranith Kumar Date: Tue Apr 21 17:29:42 2015 -0400 rcu: Remove prompt for RCU implementation The RCU implementation is chosen based on PREEMPT and SMP config options and is not really a user-selectable choice. This commit removes the menu entry, given that there is not much point in calling something a choice when there is in fact no choice.. The TINY_RCU, TREE_RCU, and PREEMPT_RCU Kconfig options continue to be selected based solely on the values of the PREEMPT and SMP options. Signed-off-by: Pranith Kumar Signed-off-by: Paul E. McKenney init/Kconfig | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) commit 26730f55c2842b4ee06a5307d58265db7dd26065 Author: Paul E. McKenney Date: Tue Apr 21 09:22:14 2015 -0700 rcu: Make RCU able to tolerate undefined CONFIG_RCU_KTHREAD_PRIO This commit updates the initialization of the kthread_prio boot parameter so that RCU will build even when CONFIG_RCU_KTHREAD_PRIO is undefined. The kthread_prio boot parameter is set to CONFIG_RCU_KTHREAD_PRIO if that is defined, otherwise to 1 if CONFIG_RCU_BOOST is defined and to zero otherwise. This commit then makes CONFIG_RCU_KTHREAD_PRIO depend on CONFIG_RCU_EXPERT, so that Kconfig users won't be asked about CONFIG_RCU_KTHREAD_PRIO unless they want to be. Reported-by: Linus Torvalds Reported-by: Ingo Molnar Signed-off-by: Paul E. McKenney Reviewed-by: Pranith Kumar init/Kconfig | 1 + kernel/rcu/tree.c | 4 ++++ 2 files changed, 5 insertions(+) commit 47d631af58bb9b2f2dd3d0da8c98a79a5e75c738 Author: Paul E. McKenney Date: Tue Apr 21 09:12:13 2015 -0700 rcu: Make RCU able to tolerate undefined CONFIG_RCU_FANOUT_LEAF This commit introduces an RCU_FANOUT_LEAF C-preprocessor macro so that RCU will build even when CONFIG_RCU_FANOUT_LEAF is undefined. The RCU_FANOUT_LEAF macro is set to the value of CONFIG_RCU_FANOUT_LEAF when defined, otherwise it is set to 32 for 32-bit systems and 64 for 64-bit systems. This commit then makes CONFIG_RCU_FANOUT_LEAF depend on CONFIG_RCU_EXPERT, so that Kconfig users won't be asked about CONFIG_RCU_FANOUT_LEAF unless they want to be. Reported-by: Ingo Molnar Signed-off-by: Paul E. McKenney Reviewed-by: Pranith Kumar init/Kconfig | 2 +- kernel/rcu/tree.c | 8 ++++---- kernel/rcu/tree.h | 12 +++++++++++- kernel/rcu/tree_plugin.h | 6 +++--- 4 files changed, 19 insertions(+), 9 deletions(-) commit 05c5df31afd1092ca6322094d22aff6351fa67fe Author: Paul E. McKenney Date: Mon Apr 20 14:27:43 2015 -0700 rcu: Make RCU able to tolerate undefined CONFIG_RCU_FANOUT This commit introduces an RCU_FANOUT C-preprocessor macro so that RCU will build even when CONFIG_RCU_FANOUT is undefined. The RCU_FANOUT macro is set to the value of CONFIG_RCU_FANOUT when defined, otherwise it is set to 32 for 32-bit systems and 64 for 64-bit systems. This commit then makes CONFIG_RCU_FANOUT depend on CONFIG_RCU_EXPERT, so that Kconfig users won't be asked about CONFIG_RCU_FANOUT unless they want to be. Reported-by: Ingo Molnar Signed-off-by: Paul E. McKenney Reviewed-by: Pranith Kumar init/Kconfig | 2 +- kernel/rcu/tree.c | 4 ++-- kernel/rcu/tree.h | 18 +++++++++++++++--- kernel/rcu/tree_plugin.h | 6 +++--- 4 files changed, 21 insertions(+), 9 deletions(-) commit 8739c5cb0fb145aeed8c56ddb5ba79381c74cb97 Author: Paul E. McKenney Date: Mon Apr 20 18:27:54 2015 -0700 rcu: Break dependency of RCU_FANOUT_LEAF on RCU_FANOUT RCU_FANOUT_LEAF's range and default values depend on the value of RCU_FANOUT, which at the time seemed like a cute way to save two lines of Kconfig code. However, adding a dependency from both of these Kconfig parameters on RCU_EXPERT requires that RCU_FANOUT_LEAF operate correctly even if RCU_FANOUT is undefined. This commit therefore allows RCU_FANOUT_LEAF to take on the full range of permitted values, even in cases where RCU_FANOUT is undefined. Signed-off-by: Paul E. McKenney [ paulmck: Eliminate redundant "default" as suggested by Pranith Kumar. ] Reviewed-by: Pranith Kumar init/Kconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 78cae10b3a90438689f8cedb66241ce9cff9c214 Author: Paul E. McKenney Date: Mon Apr 20 12:19:45 2015 -0700 rcu: Create RCU_EXPERT Kconfig and hide booleans behind it This commit creates an RCU_EXPERT Kconfig and hides the independent boolean RCU-related user-visible Kconfig parameters behind it, namely RCU_FAST_NO_HZ and RCU_BOOST. This prevents Kconfig from asking about these parameters unless the user really wants to be asked. Reported-by: Linus Torvalds Signed-off-by: Paul E. McKenney Reviewed-by: Pranith Kumar init/Kconfig | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) commit a3dc2948cec80f20a89e9b646d0c01b121e48e02 Author: Paul E. McKenney Date: Mon Apr 20 11:40:50 2015 -0700 rcu: Enable diagnostic dump of rcu_node combining tree The purpose of this commit is to make it easier to verify that RCU's combining tree is set up correctly, which is useful to have when making changes in how that tree is initialized. Signed-off-by: Paul E. McKenney Reviewed-by: Pranith Kumar [ paulmck: Fold fix found by Fengguang's 0-day test robot. ] Documentation/kernel-parameters.txt | 5 +++++ kernel/rcu/tree.c | 27 +++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) commit 7fa270010e0ddd3693381431f373b3e3135b0695 Author: Paul E. McKenney Date: Mon Apr 20 10:27:15 2015 -0700 rcu: Convert CONFIG_RCU_FANOUT_EXACT to boot parameter The CONFIG_RCU_FANOUT_EXACT Kconfig parameter is used primarily (and perhaps only) by rcutorture to verify that RCU works correctly in specific rcu_node combining-tree configurations. It therefore does not make much sense have this as a question to people attempting to configure their kernels. So this commit creates an rcutree.rcu_fanout_exact= boot parameter that rcutorture can use, and eliminates the original CONFIG_RCU_FANOUT_EXACT Kconfig parameter. Reported-by: Ingo Molnar Signed-off-by: Paul E. McKenney Reviewed-by: Pranith Kumar Documentation/kernel-parameters.txt | 6 ++++++ init/Kconfig | 14 -------------- kernel/rcu/tree.c | 7 +++++-- kernel/rcu/tree_plugin.h | 2 +- 4 files changed, 12 insertions(+), 17 deletions(-) commit 7db21edfecb079b2257ced7a2cf2e32ae5e5d966 Author: Paul E. McKenney Date: Mon Apr 20 06:17:15 2015 -0700 rcu: Directly drive RCU_USER_QS from Kconfig Currently, Kconfig will ask the user whether RCU_USER_QS should be set. This is silly because Kconfig already has all the information that it needs to set this parameter. This commit therefore directly drives the value of RCU_USER_QS via NO_HZ_FULL's "select" statement. Reported-by: Ingo Molnar Signed-off-by: Paul E. McKenney Reviewed-by: Pranith Kumar Acked-by: Frederic Weisbecker init/Kconfig | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) commit 82d0f4c089991e6b302d961f0320282bf91652d7 Author: Paul E. McKenney Date: Mon Apr 20 05:42:50 2015 -0700 rcu: Directly drive TASKS_RCU from Kconfig Currently, Kconfig will ask the user whether TASKS_RCU should be set. This is silly because Kconfig already has all the information that it needs to set this parameter. This commit therefore directly drives the value of TASKS_RCU via "select" statements. Which means that as subsystems require TASKS_RCU, those subsystems will need to add "select" statements of their own. Reported-by: Ingo Molnar Signed-off-by: Paul E. McKenney Cc: Steven Rostedt Reviewed-by: Pranith Kumar init/Kconfig | 4 +--- lib/Kconfig.debug | 1 + 2 files changed, 2 insertions(+), 3 deletions(-) commit 0f41c0ddadfb3d5baffe62351c380e2881aacd58 Author: Paul E. McKenney Date: Tue Mar 10 18:33:20 2015 -0700 rcu: Provide diagnostic option to slow down grace-period scans Grace-period scans of the rcu_node combining tree normally proceed quite quickly, so that it is very difficult to reproduce races against them. This commit therefore allows grace-period pre-initialization and cleanup to be artificially slowed down, increasing race-reproduction probability. A pair of pairs of new Kconfig parameters are provided, RCU_TORTURE_TEST_SLOW_PREINIT to enable the slowing down of propagating CPU-hotplug changes up the combining tree along with RCU_TORTURE_TEST_SLOW_PREINIT_DELAY to specify the delay in jiffies, and RCU_TORTURE_TEST_SLOW_CLEANUP to enable the slowing down of the end-of-grace-period cleanup scan along with RCU_TORTURE_TEST_SLOW_CLEANUP_DELAY to specify the delay in jiffies. Boot-time parameters named rcutree.gp_preinit_delay and rcutree.gp_cleanup_delay allow these delays to be specified at boot time. Signed-off-by: Paul E. McKenney Documentation/kernel-parameters.txt | 16 ++++++- kernel/rcu/tree.c | 29 ++++++++++-- lib/Kconfig.debug | 54 +++++++++++++++++++++- .../selftests/rcutorture/configs/rcu/CFcommon | 2 + 4 files changed, 93 insertions(+), 8 deletions(-) commit 3eaaaf6cd6d7fbaf552cc543ccb93d7da81f43ec Author: Paul E. McKenney Date: Mon Mar 9 16:51:17 2015 -0700 rcu: Shut up spurious gcc uninitialized-variable warning Because gcc doesn't realize that rcu_num_lvls must be strictly greater than zero, some versions give a spurious warning about levelcnt[0] being uninitialized in rcu_init_one(). This commit updates the condition on the pre-existing panic() in order to educate gcc on this point. Signed-off-by: Paul E. McKenney kernel/rcu/tree.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit eab128e8305f2bc4c91406031aab26d86fecced6 Author: Paul E. McKenney Date: Wed Apr 15 12:08:22 2015 -0700 rcu: Modulate grace-period slow init to normalize delay Currently, the larger the gp_init_delay boot parameter, the slower rcutorture will sequence through grace periods. This commit avoids this issue by decreasing the probability of slowing initialization of a given grace period as the degree of slowness increases. Signed-off-by: Paul E. McKenney kernel/rcu/tree.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) commit 927da9dfd13aec358496de9488384f1a663c679a Author: Paul Gortmaker Date: Mon Apr 27 18:47:58 2015 -0400 cpu: Remove new instance of __cpuinit that crept back in We removed __cpuinit support (leaving no-op stubs) quite some time ago. However a new instance was added in commit 00df35f991914db6b8bde8cf0980 ("cpu: Defer smpboot kthread unparking until CPU known to scheduler") Since we want to clobber the stubs soon, get this removed now. Cc: Paul E. McKenney Signed-off-by: Paul Gortmaker Signed-off-by: Paul E. McKenney kernel/cpu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 64eaf974218d576812919c8b1a8d87ded4e695d9 Author: Paul E. McKenney Date: Wed Apr 15 12:45:41 2015 -0700 cpu: Handle smpboot_unpark_threads() uniformly Commit 00df35f99191 (cpu: Defer smpboot kthread unparking until CPU known to scheduler) put the online path's call to smpboot_unpark_threads() into a CPU-hotplug notifier. This commit places the offline-failure paths call into the same notifier for the sake of uniformity. Note that it is not currently possible to place the offline path's call to smpboot_park_threads() into an existing notifier because the CPU_DYING notifiers run in a restricted environment, and the CPU_UP_PREPARE notifiers run too soon. Signed-off-by: Paul E. McKenney kernel/cpu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a738eec6c6082f48cbcf0157fd9f550e286ea04b Author: Paul E. McKenney Date: Tue Mar 10 14:53:29 2015 -0700 rcu: Correctly initialize ->rcu_qs_ctr_snap at online time The rcu_data structure's ->rcu_qs_ctr_snap field is initialized at CPU-online time from the current CPU's element of the per-CPU rcu_qs_ctr variable. Unfortunately, this is at CPU_UP_PREPARE time, so has nothing to do with the CPU being onlined. This commit therefore initializes this variable from the incoming CPU's element of rcu_qs_ctr. Signed-off-by: Paul E. McKenney kernel/rcu/tree.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cce7f1fc015a98ca9263bd5730c00258bc214e53 Author: Paul E. McKenney Date: Mon Mar 9 17:00:56 2015 -0700 rcu: Remove redundant offline check Because offline CPUs are propagated up the rcu_node tree's ->qsmaskinit bits just before each grace period starts, the ->qsmaskinit bit cannot be clear when the corresponding ->qsmask bit is set. Furthermore, this condition used to correspond to a CPU that was on its way offline, and making RCU's notion of an offline CPU more precise has eliminated this situation. This commit therefore removes the now-redundant offline check from force_qs_rnp(). Signed-off-by: Paul E. McKenney kernel/rcu/tree.c | 2 -- 1 file changed, 2 deletions(-) commit c5b5539506f86469dca08310657ca93bbb6c00a5 Author: Paul E. McKenney Date: Mon Mar 9 16:58:41 2015 -0700 rcu: Remove dead code from force_qs_rnp() Because force_qs_rnp() is invoked only from the force-quiescent-state code which runs only in the context of the grace-period kthread, a grace period must always be in progress throughout force_qs_rnp()'s execution. This commit therefore removes the rcu_gp_in_progress() check and the associated dead code. Signed-off-by: Paul E. McKenney kernel/rcu/tree.c | 4 ---- 1 file changed, 4 deletions(-) commit 0a0ba1c93f8a0ff28bacec0d1d018081e762e2f0 Author: Paul E. McKenney Date: Sun Mar 8 14:20:30 2015 -0700 rcu: Adjust ->lock acquisition for tasks no longer migrating Tasks are no longer migrated away from a given rcu_node structure when all CPUs corresponding to that rcu_node structure have gone offline. This means that rcu_read_unlock_special() no longer needs to loop retrying rcu_node ->lock acquisition because the current task is guaranteed to stay put. This commit takes a small and paranoid step towards relying on this guarantee by placing a WARN_ON_ONCE() just after the early exit from the lock-acquisition loop. Signed-off-by: Paul E. McKenney kernel/rcu/tree_plugin.h | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit ea46351cea79f54729d8546e5bd7f091a2e6484b Author: Paul E. McKenney Date: Tue Mar 3 14:05:26 2015 -0800 rcu: Eliminate HOTPLUG_CPU #ifdef in favor of IS_ENABLED() This commit removes a HOTPLUG_CPU #ifdef, replacing it with IS_ENABLED()-protected return statements. This relies on the optimizer to remove any resulting dead code. Signed-off-by: Paul E. McKenney kernel/rcu/tree.c | 39 ++++++++++++++------------------------- 1 file changed, 14 insertions(+), 25 deletions(-) commit f517700cce37ffcb36e7afae0294fd11c72ed134 Author: Ying Xue Date: Thu Mar 26 13:27:08 2015 +0800 rculist: Fix another sparse warning This fixes the following sparse warnings: make C=1 CF=-D__CHECK_ENDIAN__ net/tipc/name_table.o net/tipc/name_table.c:977:17: error: incompatible types in comparison expression (different address spaces) net/tipc/name_table.c:977:17: error: incompatible types in comparison expression (different address spaces) To silence these spare complaints, an RCU annotation should be added to "next" pointer of hlist_node structure through hlist_next_rcu() macro when iterating over a hlist with hlist_for_each_entry_from_rcu(). Signed-off-by: Ying Xue Signed-off-by: Paul E. McKenney include/linux/rculist.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 82072c4fcf095ce03a05860365c157c8bb58945b Author: Nicholas Mc Guire Date: Mon May 11 18:12:27 2015 +0200 rcu: Change function declaration to bool rcu_cpu_has_callbacks() is declared int. The current declaration was introduced in commit c0f4dfd4f90f (rcu: Make RCU_FAST_NO_HZ take advantage of numbered callbacks). But it is actually returning bool and as the function description states " * Return true if the specified CPU has any callback....", this probably should be a bool as all (3) call-sites currently treat it as bool. Type-checking coccinelle spatches are being used to locate type mismatches between function signatures and return values in this case this produced: ./kernel/rcu/tree.c:3538 WARNING: return of wrong type int != bool, Patch was compile tested with x86_64_defconfig (implies CONFIG_TREE_RCU=y) Patch is against 4.1-rc3 (localversion-next is -next-20150511) and fixes Signed-off-by: Nicholas Mc Guire Reviewed-by: Josh Triplett Signed-off-by: Paul E. McKenney kernel/rcu/tree.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c92fb05795f57463cb763a82f9053d294f77ea87 Author: Nicolas Iooss Date: Tue May 5 21:57:06 2015 +0800 rcu: Make rcu_*_data variables static rcu_bh_data, rcu_sched_data and rcu_preempt_data are never used outside kernel/rcu/tree.c and thus can be made static. Doing so fixes a section mismatch warning reported by clang when building LLVMLinux with -Wsection, because these variables were declared in .data..percpu and defined in .data..percpu..shared_aligned since commit 11bbb235c26f ("rcu: Use DEFINE_PER_CPU_SHARED_ALIGNED for rcu_data"). Signed-off-by: Nicolas Iooss Reviewed-by: Josh Triplett Signed-off-by: Paul E. McKenney kernel/rcu/tree.c | 2 +- kernel/rcu/tree.h | 3 --- 2 files changed, 1 insertion(+), 4 deletions(-) commit 30ff1533b8f75255bdf02bc3361f1c558138f471 Author: Paul E. McKenney Date: Fri May 1 13:01:38 2015 -0700 rcu: Make synchronize_sched_expedited() call wait_rcu_gp() Currently, synchronize_sched_expedited() will call synchronize_sched() if there is danger of counter wrap. But if configuration says to always do expedited grace periods, synchronize_sched() will just call synchronize_sched_expedited() right back again. In theory, the old expedited operations will complete, the counters will get back in synch, and the recursion will end. But we could easily run out of stack long before that time. This commit therefore makes synchronize_sched_expedited() invoke the underlying wait_rcu_gp(call_rcu_sched) instead of synchronize_sched(), the same as all the other calls out from synchronize_sched_expedited(). This bug was introduced by commit 1924bcb02597 (Avoid counter wrap in synchronize_sched_expedited()). Reported-by: Rik van Riel Signed-off-by: Paul E. McKenney kernel/rcu/tree.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5af4692a75daf08dddc93dbb4cd2a1b3d3b617af Author: Paul E. McKenney Date: Sat Apr 25 12:48:29 2015 -0700 smp: Make control dependencies work on Alpha, improve documentation The current formulation of control dependencies fails on DEC Alpha, which does not respect dependencies of any kind unless an explicit memory barrier is provided. This means that the current fomulation of control dependencies fails on Alpha. This commit therefore creates a READ_ONCE_CTRL() that has the same overhead on non-Alpha systems, but causes Alpha to produce the needed ordering. This commit also applies READ_ONCE_CTRL() to the one known use of control dependencies. Use of READ_ONCE_CTRL() also has the beneficial effect of adding a bit of self-documentation to control dependencies. Signed-off-by: Paul E. McKenney Acked-by: Peter Zijlstra (Intel) Documentation/memory-barriers.txt | 55 +++++++++++++++++++++++---------------- include/linux/compiler.h | 16 ++++++++++++ kernel/events/ring_buffer.c | 2 +- 3 files changed, 50 insertions(+), 23 deletions(-) commit 81e701e4376232b2779f52f15e3b7413131bd8e4 Author: Paul E. McKenney Date: Thu Apr 16 11:02:25 2015 -0700 rcu: Add more debug info on "kthread starved" RCU CPU stall warnings This commit adds grace number and command-flags information to the "kthread starved" message that is sometimes printed out as part of RCU CPU stall warnings. This message is caused by the corresponding RCU grace-period kthread not having run for at least two seconds, and this added information can be helpful when debugging. Signed-off-by: Paul E. McKenney kernel/rcu/tree.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 82efed06d5e370f1526ec93ff4c2c2496542f615 Author: Patrick Daly Date: Tue Apr 7 15:12:07 2015 -0700 rcu: Fix missing task information during rcu-preempt stall The first item list_for_each_entry_continue(alist) iterates over is alist->next, rather than alist itself. Consequently, rcu_print_detail_task_stall_rnp() skips the task referenced by gp_tasks. Use gp_tasks->prev as the argument to list_for_each_entry_continue() instead. Signed-off-by: Patrick Daly Signed-off-by: Paul E. McKenney kernel/rcu/tree_plugin.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a76ff6884bfedfafcbb0d9c84c7a6b6a546cba6d Author: Paul E. McKenney Date: Wed Apr 1 08:19:59 2015 -0700 powerpc: Fix smp_mb__before_spinlock() Currently, smp_mb__before_spinlock() is defined to be smp_wmb() in core code, but this is not sufficient on PowerPC. This patch therefore supplies an override for the generic definition to strengthen smp_mb__before_spinlock() to smp_mb(), as is needed on PowerPC. Signed-off-by: Paul E. McKenney Cc: arch/powerpc/include/asm/barrier.h | 1 + 1 file changed, 1 insertion(+) commit 5ce035fb7df413a72b6b956d4aa212a866f3b565 Author: Joe Perches Date: Mon Mar 30 16:46:16 2015 -0700 rcu: tree_plugin: Use bool function return values of true/false not 1/0 Use the normal return values for bool functions Signed-off-by: Joe Perches Signed-off-by: Paul E. McKenney kernel/rcu/tree_plugin.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit cd73ca21cd2bb3711b8d80ba74c90d37ef15fe4d Author: Paul E. McKenney Date: Mon Mar 16 11:53:52 2015 -0700 rcu: Force wakeup of rcu_gp_kthread at grace-period end The rcu_gp_kthread_wake() refuses to do a wakeup unless at least one of the ->gp_flags bits are set, which normally will not be the case when the last quiescent state is reported. This results in up to a 3-jiffy delay given default Kconfig settings. This commit therefore has rcu_report_qs_rsp() set RCU_GP_FLAG_FQS before invoking rcu_gp_kthread_wake() in order to force a more immediate wakeup at grace-period end, thus reducing grace-period latencies. Signed-off-by: Paul E. McKenney kernel/rcu/tree.c | 1 + 1 file changed, 1 insertion(+) commit 3382adbc1bb8c80ea512243acf6059564287620b Author: Paul E. McKenney Date: Wed Mar 4 15:41:24 2015 -0800 rcu: Eliminate a few CONFIG_RCU_NOCB_CPU_ALL #ifdefs This commit converts several CONFIG_RCU_NOCB_CPU_ALL #ifdefs to instead use IS_ENABLED(). This change should help avoid hiding code from compiler diagnostics. Signed-off-by: Paul E. McKenney include/linux/rcupdate.h | 4 ++-- include/linux/rcutree.h | 2 -- kernel/rcu/tree_plugin.h | 22 ++++++++++++---------- 3 files changed, 14 insertions(+), 14 deletions(-) commit 2927a689e8ad5c12d6300b41e873d2b7957bc0e1 Author: Paul E. McKenney Date: Wed Mar 4 07:53:04 2015 -0800 rcu: Create an immutable rcu_data_p pointer to default rcu_data structure This commit creates an immutable rcu_data_p pointer that references rcu_preempt_data for TREE_PREEMPT_RCU builds and that references rcu_sched_data for TREE_RCU builds. This rcu_data_p pointer will enable more code to move from #ifdef to IS_ENABLED(). Signed-off-by: Paul E. McKenney kernel/rcu/tree.c | 1 + kernel/rcu/tree_plugin.h | 16 +++++++++------- 2 files changed, 10 insertions(+), 7 deletions(-) commit b28a7c016618e5e32e0703e3dd111dbba02715ff Author: Paul E. McKenney Date: Wed Mar 4 07:39:27 2015 -0800 rcu: Tell the compiler that rcu_state_p is immutable This commit adds a "const" tag to the declarations of rcu_state_p, which should allow the compiler to generate better code and also to catch erroneous assignments to this variable. Signed-off-by: Paul E. McKenney kernel/rcu/tree.c | 2 +- kernel/rcu/tree_plugin.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit 727b705baf7d091a9bc5494d7f1d9699b6932531 Author: Paul E. McKenney Date: Tue Mar 3 14:49:26 2015 -0800 rcu: Eliminate a few RCU_BOOST #ifdefs in favor of IS_ENABLED() This commit removes a few RCU_BOOST #ifdefs, replacing them with IS_ENABLED()-protected return statements. This relies on the optimizer to remove any resulting dead code. There are several other RCU_BOOST #ifdefs, however these rely on some per-CPU variables that are available only under RCU_BOOST. These might be converted later, if the simplification proves to outweigh the increase in memory footprint. One hoped-for advantage is more easily locating compiler errors in obscure combinations of Kconfig parameters. Signed-off-by: Paul E. McKenney Cc: kernel/rcu/tree.h | 2 -- kernel/rcu/tree_plugin.h | 35 ++++++++++++++++++++--------------- 2 files changed, 20 insertions(+), 17 deletions(-) commit e63c887cfed2077b2db29f27024d0a9f88151c40 Author: Paul E. McKenney Date: Tue Mar 3 12:56:43 2015 -0800 rcu: Convert from rcu_preempt_state to *rcu_state_p It would be good to move more code from #ifdef to IS_ENABLED(), but that does not work if the body of the IS_ENABLED() "if" statement references a variable (such as rcu_preempt_state) that does not exist if the IS_ENABLED() Kconfig variable is not set. This commit therefore substitutes *rcu_state_p for all uses of rcu_preempt_state in kernel/rcu/tree_preempt.h, which should enable elimination of a few #ifdefs. Signed-off-by: Paul E. McKenney kernel/rcu/tree_plugin.h | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) commit ed38446424dd531f1b7a167677232a6d400d69d5 Author: Milos Vyletel Date: Fri Apr 17 16:38:04 2015 +0200 documentation: State that rcu_dereference() reloads pointer Make a note stating that repeated calls of rcu_dereference() may not return the same pointer if update happens while in critical section. Reported-by: Jeff Haran Signed-off-by: Milos Vyletel Reviewed-by: Steven Rostedt Signed-off-by: Paul E. McKenney Documentation/RCU/whatisRCU.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit ee7c29be3695996536395f647e8a2ed6b1ab3a0d Author: Paul E. McKenney Date: Tue Apr 7 12:45:41 2015 -0700 documentation: Update rcu_dereference.txt based on WG21 discussions This commit provides another caveat for the care and feeding of pointers returned by rcu_dereference() that was pointed out in discussions within the C++ standards committee. Signed-off-by: Paul E. McKenney Reviewed-by: Mathieu Desnoyers Documentation/RCU/rcu_dereference.txt | 5 +++++ 1 file changed, 5 insertions(+) commit d956028e99b30726b0bce0ca684b40b1ad67b514 Author: Will Deacon Date: Tue Mar 31 09:39:41 2015 +0100 documentation: memory-barriers: Fix smp_mb__before_spinlock() semantics Our current documentation claims that, when followed by an ACQUIRE, smp_mb__before_spinlock() orders prior loads against subsequent loads and stores, which isn't the intent. This commit therefore fixes the documentation to state that this sequence orders only prior stores against subsequent loads and stores. In addition, the original intent of smp_mb__before_spinlock() was to only order prior loads against subsequent stores, however, people have started using it as if it ordered prior loads against subsequent loads and stores. This commit therefore also updates smp_mb__before_spinlock()'s header comment to reflect this new reality. Cc: Oleg Nesterov Cc: "Paul E. McKenney" Cc: Peter Zijlstra Signed-off-by: Will Deacon Signed-off-by: Paul E. McKenney Documentation/memory-barriers.txt | 7 +++---- include/linux/spinlock.h | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) commit 29c6820f5164b1432b1ba60b38175cb24367dd98 Author: Paul E. McKenney Date: Tue Apr 21 14:05:25 2015 -0700 mce: mce_chrdev_write() can be static Signed-off-by: Fengguang Wu Signed-off-by: Paul E. McKenney arch/x86/kernel/cpu/mcheck/mce.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit cf9fbf8017e2ab5cb33b6602b626f7f005718124 Author: Paul E. McKenney Date: Mon Apr 20 06:09:27 2015 -0700 documentation: RCU-protected array indexes no longer supported Signed-off-by: Paul E. McKenney Documentation/RCU/arrayRCU.txt | 20 ++++++++++++++++---- Documentation/RCU/lockdep.txt | 10 ---------- Documentation/RCU/rcu_dereference.txt | 33 ++++++++++++--------------------- Documentation/RCU/whatisRCU.txt | 2 -- 4 files changed, 28 insertions(+), 37 deletions(-) commit 1ebee8017d84ec8a0ba893cf7b8be3f70ead088b Author: Paul E. McKenney Date: Sun Apr 19 18:21:47 2015 -0700 rcu: Eliminate array-index-based RCU primitives Now that rcu_access_index() and rcu_dereference_index_check() are no longer used, the commit removes them from the RCU API. This means that RCU's data dependencies now involve only pointers, give or take the occasional cast to and then back from an integer type to do pointer arithmetic. This in turn eliminates the need for a number of operations on values carrying RCU data dependencies. Signed-off-by: Paul E. McKenney Cc: linux-edac@vger.kernel.org Cc: Tony Luck Acked-by: Borislav Petkov include/linux/rcupdate.h | 50 ------------------------------------------------ 1 file changed, 50 deletions(-) commit e90328b87eeff91574c18815bd6991b03bd6ecc0 Author: Paul E. McKenney Date: Sun Apr 19 18:16:02 2015 -0700 mce: Stop using array-index-based RCU primitives Because mce is arch-specific x86 code, there is little or no performance benefit of using rcu_dereference_index_check() over using smp_load_acquire(). It also turns out that mce is the only place that array-index-based RCU is used, and it would be convenient to drop this portion of the RCU API. This patch therefore changes rcu_dereference_index_check() uses to smp_load_acquire(), but keeping the lockdep diagnostics, and also changes rcu_access_index() uses to READ_ONCE(). Signed-off-by: Paul E. McKenney Cc: linux-edac@vger.kernel.org Cc: Tony Luck Acked-by: Borislav Petkov arch/x86/kernel/cpu/mcheck/mce.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit 7d0ae8086b828311250c6afdf800b568ac9bd693 Author: Paul E. McKenney Date: Tue Mar 3 14:57:58 2015 -0800 rcu: Convert ACCESS_ONCE() to READ_ONCE() and WRITE_ONCE() This commit moves from the old ACCESS_ONCE() API to the new READ_ONCE() and WRITE_ONCE() APIs. Signed-off-by: Paul E. McKenney [ paulmck: Updated to include kernel/torture.c as suggested by Jason Low. ] include/linux/rculist.h | 6 +- include/linux/rcupdate.h | 16 ++--- kernel/rcu/rcutorture.c | 2 +- kernel/rcu/srcu.c | 10 +-- kernel/rcu/tiny_plugin.h | 12 ++-- kernel/rcu/tree.c | 184 +++++++++++++++++++++++------------------------ kernel/rcu/tree_plugin.h | 93 ++++++++++++------------ kernel/rcu/tree_trace.c | 6 +- kernel/rcu/update.c | 30 ++++---- kernel/torture.c | 26 +++---- 10 files changed, 193 insertions(+), 192 deletions(-) commit 636fdbf88efe069f9951d1b7df8d3fd82060dc60 Author: Christian Riesch Date: Tue Mar 31 23:29:22 2015 +0200 mtd: cfi_cmdset_0002: Initialize datum before calling map_word_load_partial In do_otp_write we must initialize the variable datum before calling map_word_load_partial. Otherwise the upper bits of datum may be undefined, which later causes problems in chip_good called by do_write_oneword. Signed-off-by: Christian Riesch Signed-off-by: Brian Norris drivers/mtd/chips/cfi_cmdset_0002.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4612c715a6ea6b3af2aee0163c0721375b2548d7 Author: Denys Vlasenko Date: Mon May 18 12:58:40 2015 +0200 mtd: cfi: deinline large functions With this .config: http://busybox.net/~vda/kernel_config, after uninlining these functions have sizes and callsite counts as follows: cfi_udelay(): 74 bytes, 26 callsites cfi_send_gen_cmd(): 153 bytes, 95 callsites cfi_build_cmd(): 274 bytes, 123 callsites cfi_build_cmd_addr(): 49 bytes, 15 callsites cfi_merge_status(): 230 bytes, 3 callsites Reduction in code size is about 50,000: text data bss dec hex filename 85842882 22294584 20627456 128764922 7accbfa vmlinux.before 85789648 22294616 20627456 128711720 7abfc28 vmlinux Signed-off-by: Denys Vlasenko CC: Dan Carpenter CC: Jingoo Han CC: Brian Norris CC: Aaron Sierra CC: Artem Bityutskiy CC: David Woodhouse CC: linux-mtd@lists.infradead.org CC: linux-kernel@vger.kernel.org Signed-off-by: Brian Norris drivers/mtd/chips/cfi_util.c | 188 +++++++++++++++++++++++++++++++++++++++++++ include/linux/mtd/cfi.h | 188 ++----------------------------------------- 2 files changed, 196 insertions(+), 180 deletions(-) commit c3c263a8a38c277e8867bfc7731ec95846a23b11 Author: Brian Norris Date: Mon May 18 16:17:11 2015 -0700 mtd: lantiq-flash: use default partition parsers The default implementation already probes for cmdlinepart and ofpart. Signed-off-by: Brian Norris drivers/mtd/maps/lantiq-flash.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 8bf57b0dd431e521d7b3f34e0681fbb2536e86b8 Author: Brian Norris Date: Mon May 18 16:15:24 2015 -0700 mtd: plat_nand: use default partition probe It's harmless to add 'ofpart' (the only different parser supported in default mtdpart.c) to plat_nand. That let's us kill off one more custom partition prober listing. Signed-off-by: Brian Norris drivers/mtd/nand/plat_nand.c | 4 +--- drivers/mtd/nand/xway_nand.c | 4 ---- 2 files changed, 1 insertion(+), 7 deletions(-) commit cd6a65036f0eac4ad83dc371bb458e9e6ba6e306 Author: Jie Yang Date: Wed May 27 19:45:45 2015 +0800 ALSA: replace CONFIG_PROC_FS with CONFIG_SND_PROC_FS We may disable proc fs only for sound part, to reduce ALSA memory footprint. So add CONFIG_SND_PROC_FS and replace the old CONFIG_PROC_FSs in alsa code. With sound proc fs disabled, we can save about 9KB memory size on X86_64 platform. Signed-off-by: Jie Yang Reviewed-by: Mark Brown Signed-off-by: Takashi Iwai include/sound/info.h | 8 ++++---- sound/core/Makefile | 2 +- sound/core/hwdep.c | 6 +++--- sound/core/init.c | 8 ++++---- sound/core/oss/mixer_oss.c | 6 +++--- sound/core/pcm.c | 6 +++--- sound/core/seq/oss/seq_oss.c | 6 +++--- sound/core/seq/oss/seq_oss_init.c | 5 ++--- sound/core/seq/oss/seq_oss_midi.c | 4 ++-- sound/core/seq/oss/seq_oss_readq.c | 4 ++-- sound/core/seq/oss/seq_oss_synth.c | 4 ++-- sound/core/seq/seq_clientmgr.c | 4 ++-- sound/core/seq/seq_device.c | 2 +- sound/core/seq/seq_info.h | 2 +- sound/core/seq/seq_queue.c | 4 ++-- sound/core/seq/seq_timer.c | 4 ++-- sound/core/sound.c | 4 ++-- sound/core/sound_oss.c | 4 ++-- sound/core/timer.c | 4 ++-- sound/pci/hda/Makefile | 3 ++- sound/pci/hda/hda_eld.c | 4 ++-- sound/pci/hda/hda_local.h | 4 ++-- sound/pci/hda/patch_hdmi.c | 4 ++-- sound/pci/hda/patch_sigmatel.c | 2 +- 24 files changed, 52 insertions(+), 52 deletions(-) commit e0ecb05a965d0ff77ec65499bbc74eacd8d93452 Author: Jie Yang Date: Wed May 27 19:45:44 2015 +0800 ALSA: Kconfig: add config item SND_PROC_FS for expert For some embedded devices, we need reduce code size and data footprint as much as possible, e.g. disabling procfs, hw/sw params refinement, mmap, dpcm, dapm, compressed API... Here add SND_PROC_FS item for expert, we can unselect it to disable sound proc FS and reduce memory footprint. Signed-off-by: Jie Yang Reviewed-by: Mark Brown Signed-off-by: Takashi Iwai sound/core/Kconfig | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit ed2dfd900992aa7b6b3d0abd8ec9a7e9d2c7f827 Author: Eric Dumazet Date: Wed May 27 11:34:37 2015 -0700 tcp/dccp: warn user for preferred ip_local_port_range After commit 07f4c90062f8f ("tcp/dccp: try to not exhaust ip_local_port_range in connect()") it is advised to have an even number of ports described in /proc/sys/net/ipv4/ip_local_port_range This means start/end values should have a different parity. Let's warn sysadmins of this, so that they can update their settings if they want to. Suggested-by: David S. Miller Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller include/net/netns/ipv4.h | 1 + net/ipv4/sysctl_net_ipv4.c | 6 ++++++ 2 files changed, 7 insertions(+) commit e2baad9e4b153c67dddc5ccf987395b842329c84 Author: Eric Dumazet Date: Wed May 27 10:46:02 2015 -0700 tcp: connect() from bound sockets can be faster __inet_hash_connect() does not use its third argument (port_offset) if socket was already bound to a source port. No need to perform useless but expensive md5 computations. Reported-by: Crestez Dan Leonard Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller net/ipv4/inet_hashtables.c | 9 +++++++-- net/ipv6/inet6_hashtables.c | 8 ++++++-- 2 files changed, 13 insertions(+), 4 deletions(-) commit 5a7e4b48104d390bba323d5cf9764cbbc9819eb7 Merge: c6bfda8 b261272 Author: David S. Miller Date: Wed May 27 14:26:38 2015 -0400 Merge branch 'cxgb4-next' Hariprasad Shenai says: ==================== cxgb4/cxgb4vf: Adds FL starvation support and cleanup This patch series adds the following. Adds debugfs entry to inject freelist starvation and some function and argument cleanup This patch series has been created against net-next tree and includes patches on cxgb4 and cxgb4vf driver. We have included all the maintainers of respective drivers. Kindly review the change and let us know in case of any review comments. Thanks V2: Skipping patch "cxgb4: Add support for loopback between VI of same port". This needs some major code change, since module param is not recommended. ==================== Signed-off-by: David S. Miller commit b261272276777f0af94fa3da07a64ece9e4626e3 Author: Hariprasad Shenai Date: Wed May 27 22:30:24 2015 +0530 cxgb4/cxgb4vf: function and argument name cleanup This patch changes variable name 'fn' to 'pf' of structure adapter. A 'fn' usually stands for PCI function which could be a PF or a VF. However, the use of this particular variable is explicitly limited to PF only. So, be specific about it in the variable name. Also corrects arguments passed for fn t4_ofld_eq_free, t4_ctrl_eq_free, t4_eth_eq_free, t4_iq_free, t4_alloc_vi, t4_fw_hello, t4_wr_mbox and t4_cfg_pfvf function. Also renames cxgb4_t4_bar2_sge_qregs to t4_bar2_sge_qregs and renames the latter function name in cxgb4vf driver to t4vf_bar2_sge_qregs to avoid conflicts. Also fixes alignment for these function. Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4.h | 4 +- drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c | 2 +- drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c | 16 ++--- drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 78 +++++++++++----------- drivers/net/ethernet/chelsio/cxgb4/sge.c | 30 ++++----- drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 22 +++--- drivers/net/ethernet/chelsio/cxgb4vf/sge.c | 4 +- drivers/net/ethernet/chelsio/cxgb4vf/t4vf_common.h | 10 +-- drivers/net/ethernet/chelsio/cxgb4vf/t4vf_hw.c | 12 ++-- 9 files changed, 89 insertions(+), 89 deletions(-) commit 5b377d114f2b9ceed97ed84ef32d2afededfcc31 Author: Hariprasad Shenai Date: Wed May 27 22:30:23 2015 +0530 cxgb4: Add debugfs facility to inject FL starvation Add debugfs entry to inject Freelist starvation, used only for debugging purpose. Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4.h | 1 + drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c | 56 ++++++++++++++++++++++ drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 20 +++++++- drivers/net/ethernet/chelsio/cxgb4/sge.c | 5 ++ 4 files changed, 81 insertions(+), 1 deletion(-) commit c6bfda8d72c485b2eee1642cbcbd92e3fbb93ed3 Author: Eric Dumazet Date: Tue May 26 21:43:44 2015 -0700 qla4xxx: add a missing include vmalloc.h used to be included from include/net/inet_hashtables.h but it is no longer the case. Fixes: 095dc8e0c368 ("tcp: fix/cleanup inet_ehash_locks_alloc()") Reported-by: kbuild test robot Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller drivers/scsi/qla4xxx/ql4_def.h | 1 + 1 file changed, 1 insertion(+) commit 516782aca2e71835c6498006ad1cac6d96665c7c Merge: bde28bc 4863dea Author: David S. Miller Date: Wed May 27 14:19:44 2015 -0400 Merge branch 'thunderx' Aleksey Makarov says: ==================== Adding support for Cavium ThunderX network controller This patchset adds support for the Cavium ThunderX network controller. changes in v6: * unused preprocessor symbols were removed * reduce no of atomic operations in SQ maintenance * support for TCP segmentation at driver level * reset RBDR if fifo state is FAIL * fixed an issue with link state mailbox message changes in v5: * __packed were removed. now we rely on C language ABI * nic_dbg() -> netdev_dbg() * fixes for a typo, constant spelling and using BIT_ULL * use print_hex_dump() * unnecessary conditions in a long if() chain were removed changes in v4: * the patch "pci: Add Cavium PCI vendor id" was attributed correctly * a note that Cavium id is used in many drivers was added * the license comments now match MODULE_LICENSE * a comment explaining usage of writeq_relaxed()/readq_relaxed() was added changes in v3: * code cleanup * issues discovered by reviewers were addressed changes in v2: * non-generic module parameters removed * ethtool support added (nicvf_set_rxnfc()) v5: https://lkml.kernel.org/g/<1432344498-17131-1-git-send-email-aleksey.makarov@caviumnetworks.com> v4: https://lkml.kernel.org/g/<1432000757-28700-1-git-send-email-aleksey.makarov@auriga.com> v3: https://lkml.kernel.org/g/<1431747401-20847-1-git-send-email-aleksey.makarov@auriga.com> v2: https://lkml.kernel.org/g/<1415596445-10061-1-git-send-email-rric@kernel.org> v1: https://lkml.kernel.org/g/<20141030165434.GW20170@rric.localhost> ==================== Signed-off-by: David S. Miller commit 4863dea3fab01734768c9f7fc2c1590a8f1f6266 Author: Sunil Goutham Date: Tue May 26 19:20:15 2015 -0700 net: Adding support for Cavium ThunderX network controller This patch adds support for the Cavium ThunderX network controller. The driver is on the pci bus and thus requires the Thunder PCIe host controller driver to be enabled. Signed-off-by: Maciej Czekaj Signed-off-by: David Daney Signed-off-by: Sunil Goutham Signed-off-by: Ganapatrao Kulkarni Signed-off-by: Aleksey Makarov Signed-off-by: Tomasz Nowicki Signed-off-by: Robert Richter Signed-off-by: Kamil Rytarowski Signed-off-by: Thanneeru Srinivasulu Signed-off-by: Sruthi Vangala Signed-off-by: David S. Miller MAINTAINERS | 7 + drivers/net/ethernet/Kconfig | 1 + drivers/net/ethernet/Makefile | 1 + drivers/net/ethernet/cavium/Kconfig | 40 + drivers/net/ethernet/cavium/Makefile | 5 + drivers/net/ethernet/cavium/thunder/Makefile | 11 + drivers/net/ethernet/cavium/thunder/nic.h | 414 ++++++ drivers/net/ethernet/cavium/thunder/nic_main.c | 940 ++++++++++++ drivers/net/ethernet/cavium/thunder/nic_reg.h | 213 +++ .../net/ethernet/cavium/thunder/nicvf_ethtool.c | 601 ++++++++ drivers/net/ethernet/cavium/thunder/nicvf_main.c | 1332 +++++++++++++++++ drivers/net/ethernet/cavium/thunder/nicvf_queues.c | 1544 ++++++++++++++++++++ drivers/net/ethernet/cavium/thunder/nicvf_queues.h | 381 +++++ drivers/net/ethernet/cavium/thunder/q_struct.h | 701 +++++++++ drivers/net/ethernet/cavium/thunder/thunder_bgx.c | 966 ++++++++++++ drivers/net/ethernet/cavium/thunder/thunder_bgx.h | 223 +++ 16 files changed, 7380 insertions(+) commit e5c4708b2b6fec0300db60ee3cf4b4ae96430a12 Author: Sunil Goutham Date: Tue May 26 19:20:14 2015 -0700 pci: Add Cavium PCI vendor id This vendor id will be used by network (vNIC), USB (xHCI), SATA (AHCI), GPIO, I2C, MMC and maybe other drivers for ThunderX SoC. Acked-by: Bjorn Helgaas Signed-off-by: Sunil Goutham Signed-off-by: Aleksey Makarov Signed-off-by: David S. Miller include/linux/pci_ids.h | 2 ++ 1 file changed, 2 insertions(+) commit bde28bc6ad0c575f8b4eebe8cd27e36d6c3b09c6 Author: Daniel Borkmann Date: Tue May 26 22:35:43 2015 +0200 test_bpf: add similarly conflicting jump test case only for classic While 3b52960266a3 ("test_bpf: add more eBPF jump torture cases") added the int3 bug test case only for eBPF, which needs exactly 11 passes to converge, here's a version for classic BPF with 11 passes, and one that would need 70 passes on x86_64 to actually converge for being successfully JITed. Effectively, all jumps are being optimized out resulting in a JIT image of just 89 bytes (from originally max BPF insns), only returning K. Might be useful as a receipe for folks wanting to craft a test case when backporting the fix in commit 3f7352bf21f8 ("x86: bpf_jit: fix compilation of large bpf programs") while not having eBPF. The 2nd one is delegated to the interpreter as the last pass still results in shrinking, in other words, this one won't be JITed on x86_64. Signed-off-by: Daniel Borkmann Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller lib/test_bpf.c | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) commit 5474b13233eb46ab9b80f12f9c8003aabd383283 Merge: 14e1d0f 42ca087 Author: David S. Miller Date: Wed May 27 13:54:52 2015 -0400 Merge branch 'sfc-next' Edward Cree says: ==================== sfc: add MCDI tracing This patchset adds support for logging MCDI (Management-Controller-to- Driver Interface) interactions between the sfc driver and a bound device, to aid in debugging. Solarflare has a tool to decode the resulting traces and will look to open-source this if there is any external interest, but the protocol is already detailed in drivers/net/ethernet/sfc/mcdi_pcol.h. The logging buffer we allocate per MCDI context is a work area for constructing each individual message before logging it with netif_info. The reason the buffer is long-lived is simply to avoid the overhead of allocating and freeing it every MCDI call, since MCDIs are already known to be serialised for other reasons. -- v4: remove patch #4, which has already been applied via sshah v3: add some explanations to cover letter and patch #4 v2: avoid long lines in cover letter; fix multiline comment style ==================== Signed-off-by: David S. Miller commit 42ca087fbfe4a961cd7ff09bbc31b3e17eabc06b Author: Edward Cree Date: Wed May 27 13:14:26 2015 +0100 sfc: add module parameter to enable MCDI logging on new functions As many issues are encountered at probe time, where MCDI logging can't be enabled through the sysfs node, this change adds a module parameter 'mcdi_logging_default', which defaults to false. When set to true, newly- probed functions will have MCDI logging enabled. The setting can subsequently be changed as normal through the sysfs node. Signed-off-by: Edward Cree Signed-off-by: David S. Miller drivers/net/ethernet/sfc/mcdi.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit e7fef9b45ae188066bb6eb3dde8310d33c2f7d5e Author: Edward Cree Date: Wed May 27 13:14:01 2015 +0100 sfc: add sysfs entry to control MCDI tracing MCDI tracing is enabled per-function with a sysfs file /sys/class/net//device/mcdi_logging Signed-off-by: Edward Cree Signed-off-by: David S. Miller drivers/net/ethernet/sfc/Kconfig | 3 ++- drivers/net/ethernet/sfc/efx.c | 49 ++++++++++++++++++++++++++++++++++------ drivers/net/ethernet/sfc/mcdi.c | 4 ++-- drivers/net/ethernet/sfc/mcdi.h | 2 ++ 4 files changed, 48 insertions(+), 10 deletions(-) commit 75aba2a52d955e6721b798600b115c9d73d8995c Author: Edward Cree Date: Wed May 27 13:13:54 2015 +0100 sfc: add tracing of MCDI commands MCDI tracing is conditional on CONFIG_SFC_MCDI_LOGGING, which is enabled by default. Each MCDI command will produce a console line like sfc dom:bus:dev:fn ifname: MCDI RPC REQ: xxxxxxxx [yyyyyyyy...] where xxxxxxxx etc. are the raw MCDI payload in 32-bit hex chunks. The response will then produce a similar line with "RESP" instead of "REQ", and containing the MCDI response payload (if any). Signed-off-by: Edward Cree Signed-off-by: David S. Miller drivers/net/ethernet/sfc/Kconfig | 8 ++++ drivers/net/ethernet/sfc/ef10.c | 3 ++ drivers/net/ethernet/sfc/mcdi.c | 91 ++++++++++++++++++++++++++++++++++++++-- drivers/net/ethernet/sfc/mcdi.h | 4 ++ 4 files changed, 102 insertions(+), 4 deletions(-) commit 4dacccfac69494ba70248b134352f299171c41b7 Author: Gregory CLEMENT Date: Tue May 26 11:44:43 2015 +0200 spi: orion: Fix extended baud rates for each Armada SoCs The commit df59fa7f4bca "spi: orion: support armada extended baud rates" made the assumptions that all the Armada SoCs supported the same maximum frequency. However, according the hardware datasheet, the maximum frequency supported by the Armada 370 SoC is tclk/4, for the Armada XP, Armada 38x and Armada 39x SoCs the limitation is 50MHz and for the Armada 375 it is tclk/15. This patch introduces new compatible strings to handle all these case. In order to be future proof a compatible was created for each SoC even if currently some SoCs seem using the same IP. Signed-off-by: Gregory CLEMENT Signed-off-by: Mark Brown .../devicetree/bindings/spi/spi-orion.txt | 8 +++- drivers/spi/spi-orion.c | 47 ++++++++++++++++++++-- 2 files changed, 50 insertions(+), 5 deletions(-) commit 14e1d0fa97f821b42e8683500cf4ec817bb5d940 Author: Sorin Dumitru Date: Tue May 26 10:42:04 2015 +0300 vxlan: release lock after each bucket in vxlan_cleanup We're seeing some softlockups from this function when there are a lot fdb entries on a vxlan device. Taking the lock for each bucket instead of the whole table is enough to fix that. Signed-off-by: Sorin Dumitru Signed-off-by: David S. Miller drivers/net/vxlan.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 3cc630564e1ee9cca211ec0f14ef34cab30f21ed Author: Dan Carpenter Date: Wed May 27 11:25:12 2015 +0300 ARM: BCM63xx: fix an error path in bcm63xx_pmb_power_on_cpu() We need to unlock and unmap some resourses before returning. Fixes: 3f2a43c98d72 ('ARM: BCM63xx: Add secondary CPU PMB initialization sequence') Signed-off-by: Dan Carpenter Signed-off-by: Florian Fainelli arch/arm/mach-bcm/bcm63xx_pmb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 07f4c90062f8fc7c8c26f8f95324cbe8fa3145a5 Author: Eric Dumazet Date: Sun May 24 14:49:35 2015 -0700 tcp/dccp: try to not exhaust ip_local_port_range in connect() A long standing problem on busy servers is the tiny available TCP port range (/proc/sys/net/ipv4/ip_local_port_range) and the default sequential allocation of source ports in connect() system call. If a host is having a lot of active TCP sessions, chances are very high that all ports are in use by at least one flow, and subsequent bind(0) attempts fail, or have to scan a big portion of space to find a slot. In this patch, I changed the starting point in __inet_hash_connect() so that we try to favor even [1] ports, leaving odd ports for bind() users. We still perform a sequential search, so there is no guarantee, but if connect() targets are very different, end result is we leave more ports available to bind(), and we spread them all over the range, lowering time for both connect() and bind() to find a slot. This strategy only works well if /proc/sys/net/ipv4/ip_local_port_range is even, ie if start/end values have different parity. Therefore, default /proc/sys/net/ipv4/ip_local_port_range was changed to 32768 - 60999 (instead of 32768 - 61000) There is no change on security aspects here, only some poor hashing schemes could be eventually impacted by this change. [1] : The odd/even property depends on ip_local_port_range values parity Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller Documentation/networking/ip-sysctl.txt | 8 +++++--- net/ipv4/af_inet.c | 2 +- net/ipv4/inet_hashtables.c | 10 ++++++++-- 3 files changed, 14 insertions(+), 6 deletions(-) commit 94a715ed5c57e43f216a4fe85a3604a574c08515 Author: Felipe Balbi Date: Wed May 27 12:29:18 2015 -0500 usb: gadget: atmel: fix build warnings This patch fixes the following build warnings: drivers/usb/gadget/udc/atmel_usba_udc.c:2207:12: warning: ‘usba_udc_suspend’ defined but not used [-Wunused-function] static int usba_udc_suspend(struct device *dev) drivers/usb/gadget/udc/atmel_usba_udc.c:2236:12: warning: ‘usba_udc_resume’ defined but not used [-Wunused-function] static int usba_udc_resume(struct device *dev) Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/atmel_usba_udc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 30d092231d3b0579cb2fecc1ed8b25b329d47f98 Author: Felipe Balbi Date: Wed May 27 12:25:40 2015 -0500 usb: musb: ux500: fix build warnings This patch fixes the following build warnings: drivers/usb/musb/ux500.c:346:12: warning: ‘ux500_suspend’ defined but not used [-Wunused-function] drivers/usb/musb/ux500.c:357:12: warning: ‘ux500_resume’ defined but not used [-Wunused-function] Signed-off-by: Felipe Balbi drivers/usb/musb/ux500.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fea2fc6e21967fc674d218f20710680d814079d2 Author: Felipe Balbi Date: Wed May 27 12:24:23 2015 -0500 usb: musb: am35x: fix build warnings This patch fixes the following build warnings: drivers/usb/musb/am35x.c:573:12: warning: ‘am35x_suspend’ defined but not used [-Wunused-function] drivers/usb/musb/am35x.c:589:12: warning: ‘am35x_resume’ defined but not used [-Wunused-function] drivers/usb/musb/am35x.c:573:12: warning: ‘am35x_suspend’ defined but not used [-Wunused-function] drivers/usb/musb/am35x.c:589:12: warning: ‘am35x_resume’ defined but not used [-Wunused-function] Signed-off-by: Felipe Balbi drivers/usb/musb/am35x.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b5a61c306b0dddb28e3a3ab5d782c73e5f665497 Author: Alexander Aring Date: Wed May 27 14:11:28 2015 +0200 atusb: add support for at86rf230 This patch adds support for the at86rf230 version check which is used by the rzusb stick. Signed-off-by: Alexander Aring Reviewed-by: Stefan Schmidt Signed-off-by: Marcel Holtmann drivers/net/ieee802154/atusb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b69644c1c72e179738dd5c7e52e99d8550189472 Author: Alexander Aring Date: Wed May 27 13:42:10 2015 +0200 nl802154: add support to set cca ed level This patch adds support for setting the current cca ed level value over nl802154. Signed-off-by: Alexander Aring Reviewed-by: Varka Bhadram Signed-off-by: Marcel Holtmann include/net/cfg802154.h | 1 + net/ieee802154/nl802154.c | 30 ++++++++++++++++++++++++++++++ net/ieee802154/rdev-ops.h | 11 +++++++++++ net/ieee802154/trace.h | 15 +++++++++++++++ net/mac802154/cfg.c | 19 +++++++++++++++++++ 5 files changed, 76 insertions(+) commit e4390592a4fc3ee10a8bc4742197fdbac3935f74 Author: Alexander Aring Date: Wed May 27 13:42:09 2015 +0200 nl802154: add support for cca ed level info This patch adds information about the current cca ed level when the phy is dumped over nl802154. Signed-off-by: Alexander Aring Reviewed-by: Varka Bhadram Signed-off-by: Marcel Holtmann net/ieee802154/nl802154.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 24fe86a617c550fb9bdc6c8bd7cf647d3955f8ba Author: Hans de Goede Date: Sun Mar 29 12:50:46 2015 +0200 phy: sun4i-usb: Add a sunxi specific function for setting squelch-detect The sunxi otg phy has a bug where it wrongly detects a high speed squelch when reset on the root port gets de-asserted with a lo-speed device. The workaround for this is to disable squelch detect before de-asserting reset, and re-enabling it after the reset de-assert is done. Add a sunxi specific phy function to allow the sunxi-musb glue to do this. Acked-by: Kishon Vijay Abraham I Signed-off-by: Hans de Goede Signed-off-by: Felipe Balbi drivers/phy/phy-sun4i-usb.c | 9 +++++++++ include/linux/phy/phy-sun4i-usb.h | 26 ++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) commit 837b9955b1dd22719f0c7dcf321690f5392d99c3 Merge: 8c0ce77 d6b915e Author: David S. Miller Date: Wed May 27 13:03:31 2015 -0400 Merge branch 'ip_frag_next' Florian Westphal says: ==================== net: force refragmentation for DF reassembed skbs output path tests: if (skb->len > mtu) ip_fragment() This breaks connectivity in one corner case: If the skb was reassembled, but has the DF bit set and .. .. its reassembled size is <= outdev mtu .. .. we will forward a DF packet larger than what the sender transmitted on wire. If a router later in the path can't forward this packet, it will send an icmp error in response to an mtu that the original sender never exceeded. This changes ipv4 defrag/output path to a) force refragmentation for DF reassembled skbs and b) set DF bit on all fragments when refragmenting if it was set on original frags. tested via: from scapy.all import * dip="10.23.42.2" payload="A"*1400 packet=IP(dst=dip,id=12345,flags='DF')/UDP(sport=42,dport=42)/payload frags=fragment(packet,fragsize=1200) for fragment in frags: send(fragment) Without this patch, we generate fragments without df bit set based on the outgoing device mtu when fragmenting after forwarding, ie. IP (ttl 64, id 12345, offset 0, flags [+, DF], proto UDP (17), length 1204) 192.168.7.1.42 > 10.23.42.2.42: UDP, length 1400 IP (ttl 64, id 12345, offset 1184, flags [DF], proto UDP (17), length 244) 192.168.7.1 > 10.23.42.2: ip-proto-17 on ingress will either turn into IP (ttl 63, id 12345, offset 0, flags [+], proto UDP (17), length 1396) 192.168.7.1.42 > 10.23.42.2.42: UDP, length 1400 IP (ttl 63, id 12345, offset 1376, flags [none], proto UDP (17), length 52) (mtu 1400: We strip df and send larger fragment), or IP (ttl 63, id 12345, offset 0, flags [DF], proto UDP (17), length 1428) 192.168.7.1.42 > 10.23.42.2.42: [udp sum ok] UDP, length 1400 if mtu is 1500. And in this case things break; router with a smaller mtu will send icmp error, but original sender only sent packets <= 1204 byte. With patch, we keep intent of such fragments and will emit DF-fragments that won't exceed 1204 byte in size. Joint work with Hannes Frederic Sowa. Changes since v2: - split unrelated patches from series - rework changelog of patch #2 to better illustrate breakage ==================== Signed-off-by: David S. Miller commit d6b915e29f4adea94bc02ba7675bb4f84e6a1abd Author: Florian Westphal Date: Fri May 22 16:32:51 2015 +0200 ip_fragment: don't forward defragmented DF packet We currently always send fragments without DF bit set. Thus, given following setup: mtu1500 - mtu1500:1400 - mtu1400:1280 - mtu1280 A R1 R2 B Where R1 and R2 run linux with netfilter defragmentation/conntrack enabled, then if Host A sent a fragmented packet _with_ DF set to B, R1 will respond with icmp too big error if one of these fragments exceeded 1400 bytes. However, if R1 receives fragment sizes 1200 and 100, it would forward the reassembled packet without refragmenting, i.e. R2 will send an icmp error in response to a packet that was never sent, citing mtu that the original sender never exceeded. The other minor issue is that a refragmentation on R1 will conceal the MTU of R2-B since refragmentation does not set DF bit on the fragments. This modifies ip_fragment so that we track largest fragment size seen both for DF and non-DF packets, and set frag_max_size to the largest value. If the DF fragment size is larger or equal to the non-df one, we will consider the packet a path mtu probe: We set DF bit on the reassembled skb and also tag it with a new IPCB flag to force refragmentation even if skb fits outdev mtu. We will also set DF bit on each fragment in this case. Joint work with Hannes Frederic Sowa. Reported-by: Jesse Gross Signed-off-by: Florian Westphal Acked-by: Hannes Frederic Sowa Signed-off-by: David S. Miller include/net/inet_frag.h | 2 +- include/net/ip.h | 1 + net/ipv4/ip_fragment.c | 31 ++++++++++++++++++++++++++----- net/ipv4/ip_output.c | 12 ++++++++++-- 4 files changed, 38 insertions(+), 8 deletions(-) commit c5501eb3406d0f88b3efb2c437c4c40b35f865d8 Author: Florian Westphal Date: Fri May 22 16:32:50 2015 +0200 net: ipv4: avoid repeated calls to ip_skb_dst_mtu helper ip_skb_dst_mtu is small inline helper, but its called in several places. before: 17061 44 0 17105 42d1 net/ipv4/ip_output.o after: 16805 44 0 16849 41d1 net/ipv4/ip_output.o Signed-off-by: Florian Westphal Acked-by: Hannes Frederic Sowa Signed-off-by: David S. Miller net/ipv4/ip_output.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) commit 9d7ef1b76c131f9b5e0a31fd1444d4fa6b8a841c Author: Florian Fainelli Date: Tue May 26 20:27:30 2015 -0700 ARM: dts: BCM63xx: re-parent NAND controller node The NAND controller is a child node of the UBUS (legacy) bus, not the AXI (new) bus, re-parent the NAND controller node accordingly. This was a mistake introduced by a failed merge of this NAND node with other changes (PMB). Fixes: b5762cacc411 ("ARM: bcm63138: add NAND DT support") Reported-by: Brian Norris Signed-off-by: Florian Fainelli arch/arm/boot/dts/bcm63138.dtsi | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) commit 6632c4b4e96c668e19173fa17f2c58c60490bac3 Merge: a82d24e dddc7ee Author: Ingo Molnar Date: Wed May 27 18:42:36 2015 +0200 Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo: New features: - Add option in 'perf sched' to merge like comms to lat output (Josef Bacik) - Improve 'perf probe' error messages when not finding a suitable vmlinux (Masami Hiramatsu) Infrastructure changes: - Use atomic.h for various pre-existing reference counts (Arnaldo Carvalho de Melo) - Leg work for refcounting 'struct map' (Arnaldo Carvalho de Melo) - Assign default value for some pointers (Martin Liška) - Improve setting of gcc debug option (Martin Liška) - Separate the tests and tools in installation (Nam T. Nguyen) - Reduce number of arguments of hist_entry_iter__add() (Namhyung Kim) - DSO data cache fixes (Namhyung Kim) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit 528d4bce1078f90352df909e8bcfd457d23797b2 Author: Yijing Wang Date: Tue Apr 28 15:01:37 2015 +0800 PCI: designware: Use pci_scan_root_bus() for simplicity After b97ea289cf6a ("PCI: Assign resources before drivers claim devices (pci_scan_root_bus())"), pci_scan_root_bus() no longer adds the devices, so it is equivalent to: pci_create_root_bus() pci_scan_child_bus() Use pci_scan_root_bus() to simplify the code. [bhelgaas: changelog] Signed-off-by: Yijing Wang Signed-off-by: Bjorn Helgaas Reviewed-by: Lucas Stach Acked-by: Jingoo Han CC: Mohit Kumar drivers/pci/host/pcie-designware.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 915ad861b6dae6b5afa0cd8d0593916ba1ca224f Author: Yijing Wang Date: Tue Apr 28 15:01:36 2015 +0800 PCI: tegra: Remove tegra_pcie_scan_bus() After b97ea289cf6a ("PCI: Assign resources before drivers claim devices (pci_scan_root_bus())"), pci_scan_root_bus() no longer adds the devices, so it is equivalent to tegra_pcie_scan_bus(). Remove tegra_pcie_scan_bus() (the hw.scan method), so we use the generic pci_scan_root_bus() path. [bhelgaas: changelog] Tested-by: Thierry Reding Signed-off-by: Yijing Wang Signed-off-by: Bjorn Helgaas Acked-by: Thierry Reding drivers/pci/host/pci-tegra.c | 16 ---------------- 1 file changed, 16 deletions(-) commit 31ea49baa1aa97f882ee3da8142ec5a9dac509c2 Author: Takashi Sakamoto Date: Thu May 28 00:02:59 2015 +0900 ALSA: firewire-lib: fix buffer-over-run when detecting packet discontinuity When detecting packet discontinuity, handle_in_packet() returns minus value and this value is assigned to unsigned int variable, then the variable has huge value. As a result, the variable causes buffer-over-run in handle_out_packet(). This brings invalid page request and system hangup. This commit fixes the bug to add a new argument into handle_in_packet() and the number of handled data blocks is assignd to it. The function return value is just used to check error. I also considered to change the type of local variable to 'int' in in_stream_callback(). This idea is based on type-conversion in C standard, while it may cause future problems when adding more works. Thus, I dropped this idea. Fixes: 6fc6b9ce41c6('ALSA: firewire-lib: pass the number of data blocks in incoming packets to outgoing packets') Reported-by: Dan Carpenter Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai sound/firewire/amdtp.c | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) commit dddc7ee32fa13efc66afa71ebd83bce545c8392a Author: Masami Hiramatsu Date: Wed May 27 17:37:25 2015 +0900 perf probe: Fix an error when deleting probes successfully Fix a bug in del_perf_probe_events() which returns an error (-ENOENT) even if the probes are successfully deleted. This happens only if the probes are on user-apps and not on kernel, simply because it doesn't clear the previous error. So, without this fix, we get an error even though events are being successfully removed. ------ # ./perf probe -x ./perf del_perf_probe_events Added new event: probe_perf:del_perf_probe_events (on del_perf_probe_events in ... You can now use it in all perf tools, such as: perf record -e probe_perf:del_perf_probe_events -aR sleep 1 # ./perf probe -d \*:\* Removed event: probe_perf:del_perf_probe_events Error: Failed to delete events. ------ This fixes the above error. ------ # ./perf probe -d \*:\* Removed event: probe_perf:del_perf_probe_events ------ Reported-by: Arnaldo Carvalho de Melo Signed-off-by: Masami Hiramatsu Tested-by: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Richard Weinberger Link: http://lkml.kernel.org/r/20150527083725.23880.45209.stgit@localhost.localdomain Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/probe-event.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 419e87382873b11b17cb31e2f21859570a32e0d1 Author: Masami Hiramatsu Date: Wed May 27 17:37:18 2015 +0900 perf probe: Show the error reason comes from invalid DSO Show the reason of error when dso__load* fails. This shows when user gives wrong kernel image or wrong path. Without this, perf probe shows an obscure message: ---- $ perf probe -k ~/kbin/linux-3.x86_64/vmlinux -L vfs_read Failed to find path of kernel module. Error: Failed to show lines. ---- With this, perf shows appropriate error message: ---- $ perf probe -k ~/kbin/linux-3.x86_64/vmlinux -L vfs_read Failed to find the path for kernel: Mismatching build id Error: Failed to show lines. ---- And: ---- $ perf probe -k /non-exist/kernel/vmlinux -L vfs_read Failed to find the path for kernel: No such file or directory Error: Failed to show lines. ---- Signed-off-by: Masami Hiramatsu Tested-by: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Richard Weinberger Link: http://lkml.kernel.org/r/20150527083718.23880.84100.stgit@localhost.localdomain Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/probe-event.c | 47 ++++++++++++++++++++++--------------------- tools/perf/util/probe-event.h | 3 --- 2 files changed, 24 insertions(+), 26 deletions(-) commit 9b5d1c29556989aa9dc1240566e78806ddefd160 Author: Adrian Hunter Date: Fri May 22 14:53:58 2015 +0300 perf tools: Disallow PMU events intel_pt and intel_bts until there is support Disallow PMU events intel_pt and intel_bts until the tools support them. By default any PMU is selectable as an event but until the tools have intel_pt and intel_bts support using them would result in no data being recorded without any indication as to why. Before the change: $ perf record -e intel_bts// sleep 1 [ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 0.008 MB perf.data ] $ perf report --stdio Error: The perf.data file has no samples! After the change: $ perf record -e intel_bts// sleep 1 invalid or unsupported event: 'intel_bts//' Run 'perf list' for a list of valid events Reported-by: Arnaldo Carvalho de Melo Signed-off-by: Adrian Hunter Cc: Jiri Olsa Link: http://lkml.kernel.org/r/1432295653-13989-2-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/pmu.c | 4 ++++ 1 file changed, 4 insertions(+) commit 2f80dd4488c204a4850554746eb31f25f5a84405 Author: Josef Bacik Date: Fri May 22 09:18:40 2015 -0400 perf sched: Add option to merge like comms to lat output Sometimes when debugging large multi-threaded applications it is helpful to collate all of the latency numbers into one bulk record to get an idea of what is going on. This patch does this by merging any entries that belong to the same comm into one entry and then spits out those totals. I've also slightly changed the output so you can see how many threads were merged in the processing. Here is the new default output format ----------------------------------------------------------------------------------------------------------- Task | Runtime ms | Switches | Average delay ms | Maximum delay ms | Maximum delay at | ----------------------------------------------------------------------------------------------------------- chrome:(23) | 740.878 ms | 2612 | avg: 0.022 ms | max: 0.845 ms | max at: 7935.254223 s pulseaudio:1523 | 94.440 ms | 597 | avg: 0.027 ms | max: 0.110 ms | max at: 7934.668372 s threaded-ml:6042 | 72.554 ms | 386 | avg: 0.035 ms | max: 1.186 ms | max at: 7935.330911 s Chrome_IOThread:3832 | 52.388 ms | 456 | avg: 0.021 ms | max: 1.365 ms | max at: 7935.330602 s Chrome_ChildIOT:(7) | 50.694 ms | 743 | avg: 0.021 ms | max: 1.448 ms | max at: 7935.256659 s Compositor:5510 | 30.012 ms | 192 | avg: 0.019 ms | max: 0.131 ms | max at: 7936.636815 s plugin_audio_th:6043 | 24.828 ms | 314 | avg: 0.018 ms | max: 0.143 ms | max at: 7936.205994 s CompositorTileW:(2) | 14.099 ms | 45 | avg: 0.022 ms | max: 0.153 ms | max at: 7937.521800 s the (#) after the task is the number of tasks merged, and then if there were no tasks merged it just shows the pid. Here is the same trace file with the -p option to print the per-pid latency numbers ----------------------------------------------------------------------------------------------------------- Task | Runtime ms | Switches | Average delay ms | Maximum delay ms | Maximum delay at | ----------------------------------------------------------------------------------------------------------- chrome:5500 | 386.872 ms | 387 | avg: 0.023 ms | max: 0.241 ms | max at: 7936.001694 s pulseaudio:1523 | 94.440 ms | 597 | avg: 0.027 ms | max: 0.110 ms | max at: 7934.668372 s threaded-ml:6042 | 72.554 ms | 386 | avg: 0.035 ms | max: 1.186 ms | max at: 7935.330911 s chrome:10226 | 69.710 ms | 251 | avg: 0.023 ms | max: 0.764 ms | max at: 7935.992305 s chrome:4267 | 64.551 ms | 418 | avg: 0.021 ms | max: 0.294 ms | max at: 7937.862427 s chrome:4827 | 62.268 ms | 54 | avg: 0.029 ms | max: 0.666 ms | max at: 7935.992813 s Chrome_IOThread:3832 | 52.388 ms | 456 | avg: 0.021 ms | max: 1.365 ms | max at: 7935.330602 s chrome:3776 | 46.150 ms | 349 | avg: 0.023 ms | max: 0.845 ms | max at: 7935.254223 s Signed-off-by: Josef Bacik Acked-by: Ingo Molnar Cc: Peter Zijlstra Cc: kernel-team@fb.com Link: http://lkml.kernel.org/r/1432300720-30478-1-git-send-email-jbacik@fb.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-sched.c | 77 +++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 72 insertions(+), 5 deletions(-) commit e8b7ea4356fdd3c4de5478f3418eb84f8dce2b61 Author: Martin Liska Date: Tue May 26 12:23:24 2015 -0300 perf tools: Improve setting of gcc debug option Correct debugging experience is given by passing -Og to compiler. Do it in a way that supports older compilers Signed-off-by: Martin Liska Acked-by: Ingo Molnar Link: http://lkml.kernel.org/r/5564393C.1090104@suse.cz Signed-off-by: Arnaldo Carvalho de Melo tools/perf/config/Makefile | 2 ++ tools/perf/config/utilities.mak | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+) commit 5bcaaca3e4d15ce39008a0b9c431c0ac4be784bd Author: Martin Liška Date: Tue May 26 11:41:37 2015 -0300 perf tools: Assign default value for some pointers Assign default value for pointers that are identified by the compiler as non-initialized. Signed-off-by: Martin Liska Acked-by: Ingo Molnar Link: http://lkml.kernel.org/r/5564393C.1090104@suse.cz Signed-off-by: Arnaldo Carvalho de Melo tools/perf/arch/common.c | 2 +- tools/perf/util/symbol.c | 2 +- tools/perf/util/trace-event-parse.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 4bb7123dcfa7aa1d963ad4a8f01b88d54a2bb873 Author: Arnaldo Carvalho de Melo Date: Fri May 22 11:52:22 2015 -0300 perf tools: Use maps__first()/map__next() In a few more remaining places, for consistency. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-c2n7slwtto29wndfttdrhfrx@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/vmlinux-kallsyms.c | 34 +++++++++++++++++----------------- tools/perf/util/event.c | 7 +++---- tools/perf/util/map.c | 7 ++++--- tools/perf/util/probe-event.c | 6 +++--- tools/perf/util/symbol.c | 23 ++++++++++------------- 5 files changed, 37 insertions(+), 40 deletions(-) commit 614c6b570d5157c2cf835d334bc89af071fc2e44 Author: Arnaldo Carvalho de Melo Date: Mon May 25 16:21:53 2015 -0300 perf tools: Leave DSO destruction to the map destruction As the way DSOs are created are normally via dsos__findnew, so that we don't have to load the same dso multiple times for multiple maps (think about /lib64/libc.so.6), so they may be shared and dso__delete() should be left to be done as part of the map destruction process. This will all be properly solved by reference counting struct dso, which will be done soon. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-gbrohe1nvkjxw3u5a1bgj3yh@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/probe-event.c | 3 --- 1 file changed, 3 deletions(-) commit 0170b14f5f5462524d05ee96275b7a0a0d34ae77 Author: Arnaldo Carvalho de Melo Date: Mon May 25 15:23:05 2015 -0300 perf machine: Mark removed threads as such We use: BUG_ON(!RB_EMPTY_NODE(&thread->rb_node)); in the thread destructor as a debugging check to find out about possibly still referenced thread instances being deleted, to do that we need to make sure we use RB_CLEAR_NODE() right after rb_erase(), i.e. that we use the newly introduced rb_erase_init(), that works just like list_del_init(). Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-4fcqo5ypy1cjjf15ilb0hn78@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/machine.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 9402e23f90c5a672db7170e4c0f1fc80ca8c009a Author: Arnaldo Carvalho de Melo Date: Mon May 25 11:49:11 2015 -0300 perf tools: Import rb_erase_init from block/ in the kernel sources I was assuming rb_erase() was setting things up like list_del_init, but the fact that thread__delete() was being sucessfull is because the last thing before deleting is to remove the thread from the machine->dead_threads list, using list_del_init(), that has the same effect as using rb_erase_init()... Introduce this function so that we can use it when removing objects from rb_trees. Then we will be able to BUG_ON(still on a list) in destructors. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-55b16mbtndjyd7zzg8nmnamx@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/include/linux/rbtree.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit f7e365eb61d4d78f2f5e66d859664048c2921df2 Author: Arnaldo Carvalho de Melo Date: Mon May 25 18:03:44 2015 -0300 perf tools: Nuke unused map_groups__flush() Since: 9fdbf671ba7e "perf tools: do not flush maps on COMM for perf report" We have no users of this function, nuke it. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Luigi Semenzato Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-hsac1t42ehtva8gut8qe6hih@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/map.c | 22 ---------------------- tools/perf/util/map.h | 2 -- 2 files changed, 24 deletions(-) commit fdce6a4edaada40136f0e61569b938c9a25f61d5 Author: Arnaldo Carvalho de Melo Date: Fri May 22 17:42:37 2015 -0300 perf tools: Remove redundant initialization of thread linkage members A thread moves from a rb tree to a list, but can't be on both, because those linkage members are in a union. This is leftover from when I was debugging thread refcounting and had nuked that union. It is harmless duplication, as RB_CLEAR_NODE() does again what INIT_LIST_HEAD does. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-hmma9lmip6qlhzhgkhp9tzd1@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/thread.c | 2 -- 1 file changed, 2 deletions(-) commit 4d4dee9a9609819309a84cd3f2d19dcc50ece195 Author: Arnaldo Carvalho de Melo Date: Thu May 21 17:48:33 2015 -0300 perf tools: Rename maps__next It really is a 'struct map' method, and since we're introducing a new 'struct maps' class, fix it to avoid confusion. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-xo9ifhk53cfl30wqcuhxpnvl@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/map.c | 2 +- tools/perf/util/map.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit 4bb11d012ab248d0e383008d725be0d26a74fac2 Author: Namhyung Kim Date: Thu May 21 01:03:41 2015 +0900 perf tools: Add dso__data_get/put_fd() Using dso__data_fd() in multi-thread environment is not safe since returned fd can be closed and/or reused anytime. So convert it to the dso__data_get/put_fd() pair to protect the access with lock. The original dso__data_fd() is deprecated and kept only for testing. Signed-off-by: Namhyung Kim Acked-by: Adrian Hunter Cc: David Ahern Cc: Jiri Olsa Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1432137821-10853-3-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/dso-data.c | 11 +++++++++++ tools/perf/util/dso.c | 31 ++++++++++++++++++++++--------- tools/perf/util/dso.h | 13 +++++++++---- tools/perf/util/unwind-libunwind.c | 11 ++++++++--- 4 files changed, 50 insertions(+), 16 deletions(-) commit e840238d7c6afcde0f6402aac3a74723ee9c448f Author: Namhyung Kim Date: Thu May 21 01:03:40 2015 +0900 perf tools: Get rid of dso__data_fd() from dso__data_size() It seems that the dso__data_fd() was needed to find a binary type since open in data_file_size() alone used to fail. But as it can open the dso fine now, the dso__data_fd() can go away. Signed-off-by: Namhyung Kim Acked-by: Adrian Hunter Cc: David Ahern Cc: Jiri Olsa Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1432137821-10853-2-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/dso.c | 6 ------ 1 file changed, 6 deletions(-) commit 71ff824a60a7b0d9d0746e6e237fe4735077e5b4 Author: Namhyung Kim Date: Thu May 21 01:03:39 2015 +0900 perf tools: Fix dso__data_read_offset() file opening When dso__data_read_offset/addr() is called without prior dso__data_fd() (or other functions which call it internally), it failed to open dso in data_file_size() since its binary type was not identified. However calling dso__data_fd() in dso__data_read_offset() will hurt performance as it grabs a global lock everytime. So factor out the loop on the binary type in dso__data_fd(), and call it from both. Reported-by: Adrian Hunter Signed-off-by: Namhyung Kim Acked-by: Adrian Hunter Cc: David Ahern Cc: Jiri Olsa Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1432137821-10853-1-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/dso.c | 59 ++++++++++++++++++++++++++++----------------------- 1 file changed, 32 insertions(+), 27 deletions(-) commit 8e160b2e1e3efdd84ddef726f9b5136dd192a682 Author: Arnaldo Carvalho de Melo Date: Tue May 19 20:07:14 2015 -0300 perf machine: Do not call map_groups__delete(), drop refcnt instead It could be used somewhere, so just call map__groups_put() to make sure we don't delete it prematurely Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-dxmh8mr12i65p8h909vi88cp@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/machine.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 86c19525b7e953217e5ad2b5496029b1ac6fe26b Author: Arnaldo Carvalho de Melo Date: Tue May 19 19:07:42 2015 -0300 perf comm: Use atomic.h for refcounting Now that we have atomic.h, we should convert all of the existing refcounts to use it. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-quzeuy3jwsyod6e06o39cl6y@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/comm.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) commit e7e0efcdb807a570b11f240e2608d7aed5ccdfb1 Author: Arnaldo Carvalho de Melo Date: Tue May 19 11:31:22 2015 -0300 perf hists: Rename add_hist_entry to hists__findnew_entry To match the convention used elsewhere. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-66oo6yn8upssfeuprwy0il1q@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/hist.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 063bd9363bb8979b2939bdc0412d98a8ac062e3b Author: Namhyung Kim Date: Tue May 19 17:04:10 2015 +0900 perf hists: Reducing arguments of hist_entry_iter__add() The evsel and sample arguments are to set iter for later use. As it also receives an iter as another argument, just set them before calling the function. Signed-off-by: Namhyung Kim Cc: David Ahern Cc: Jiri Olsa Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1432022650-18205-1-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-report.c | 9 +++++---- tools/perf/builtin-top.c | 7 ++++--- tools/perf/tests/hists_cumulate.c | 6 ++++-- tools/perf/tests/hists_filter.c | 4 +++- tools/perf/tests/hists_output.c | 6 ++++-- tools/perf/util/hist.c | 8 ++------ tools/perf/util/hist.h | 1 - 7 files changed, 22 insertions(+), 19 deletions(-) commit 554e92ed8fcdbcad736ef906c393847d44d52692 Author: Adrian Hunter Date: Tue May 19 16:05:45 2015 +0300 perf session: Fix perf_session__peek_event() perf_session__peek_event() generally leverages there being a single mmap of the perf.data file, however on 32-bit platforms when there is more that 32MiB of data, then there are multiple mmaps, so perf_session__peek_event() reads from the file. In that case a couple of bugs were exposed (note how the seg. fault appears with >32M of data): $ perf record --per-thread -e intel_bts// ../rtit-tests/loopy 1000000 [ perf record: Woken up 13 times to write data ] [ perf record: Captured and wrote 24.568 MB perf.data ] $ perf script > /dev/null $ perf record --per-thread -e intel_bts// ../rtit-tests/loopy 10000000 [ perf record: Woken up 136 times to write data ] [ perf record: Captured and wrote 270.794 MB perf.data ] $ perf script > /dev/null Segmentation fault (core dumped) The wrong address was being passed to the readn() function and the buffer size was not being checked. Signed-off-by: Adrian Hunter Cc: Jiri Olsa Cc: Namhyung Kim Link: http://lkml.kernel.org/r/1432040746-1755-5-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/session.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 05b41775e2edd69a83f592e3534930c934d4038e Author: Adrian Hunter Date: Tue May 19 16:05:43 2015 +0300 perf build: Fix libunwind feature detection on 32-bit x86 The libunwind feature would never detect because of the following error: $ cat tools/build/feature/test-libunwind.make.output /usr/lib/gcc/i686-linux-gnu/4.8/../../../i386-linux-gnu/libunwind-x86.so: undefined reference to `lzma_stream_buffer_decode' /usr/lib/gcc/i686-linux-gnu/4.8/../../../i386-linux-gnu/libunwind-x86.so: undefined reference to `lzma_index_uncompressed_size' /usr/lib/gcc/i686-linux-gnu/4.8/../../../i386-linux-gnu/libunwind-x86.so: undefined reference to `lzma_index_end' /usr/lib/gcc/i686-linux-gnu/4.8/../../../i386-linux-gnu/libunwind-x86.so: undefined reference to `lzma_index_buffer_decode' /usr/lib/gcc/i686-linux-gnu/4.8/../../../i386-linux-gnu/libunwind-x86.so: undefined reference to `lzma_stream_footer_decode' /usr/lib/gcc/i686-linux-gnu/4.8/../../../i386-linux-gnu/libunwind-x86.so: undefined reference to `lzma_index_size' collect2: error: ld returned 1 exit status Fix by adding -llzma and re-ordering to match the dependencies. Signed-off-by: Adrian Hunter Cc: Jiri Olsa Cc: Namhyung Kim Link: http://lkml.kernel.org/r/1432040746-1755-3-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/config/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a6ced2be06c302402c52dedba97d169d22cce99c Author: Adrian Hunter Date: Tue May 19 16:05:44 2015 +0300 perf tools: Fix parse_events_error dereferences Parse errors can be reported in struct parse_events_error but the pointer passed is optional and can be NULL. Ensure it is not NULL before dereferencing it. Signed-off-by: Adrian Hunter Cc: Jiri Olsa Cc: Namhyung Kim Link: http://lkml.kernel.org/r/1432040746-1755-4-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/parse-events.c | 2 ++ tools/perf/util/parse-events.y | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) commit bb78ce7d0598fb277290f8ee2443b8f4e0eb7cb2 Author: Adrian Hunter Date: Tue May 19 16:05:42 2015 +0300 perf tools: Fix function declarations needed by parse-events.y Patch "perf tools: Add location to pmu event terms" moved declarations for parse_events_term__num() and parse_events_term__str() so that they were no longer visible in parse-events.y. That can result in segfaults as the arguments no longer need match the function prototype. Move the declarations back, changing YYLTYPE pointers to pointers-to-void because YYLTYPE is not generated until parse-events.y is processed. Signed-off-by: Adrian Hunter Cc: Jiri Olsa Cc: Namhyung Kim Link: http://lkml.kernel.org/r/1432040746-1755-2-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/parse-events.c | 16 ++++++++-------- tools/perf/util/parse-events.h | 6 ++++++ 2 files changed, 14 insertions(+), 8 deletions(-) commit 128c32ed1866e6cf3d3944e7dcdcea06bc060b0d Author: Nam T. Nguyen Date: Mon May 18 11:37:27 2015 -0700 perf tools: Separate the tests and tools in installation This refactors out install-bin to install-tests and install-tools so that downstream could opt to only install the tools, and not the tests. Signed-off-by: Nam T. Nguyen Acked-by: Jiri Olsa Cc: Paul Mackerras Cc: Peter Zijlstra Cc: Simon Que Link: http://lkml.kernel.org/r/1431974247-22275-1-git-send-email-namnguyen@chromium.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Makefile.perf | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 7a2a24cb433e0932828d77e98d5c86606cb09c2a Author: Mark Rutland Date: Wed May 13 17:12:28 2015 +0100 arm: perf: remove singleton PMU restriction Now that we can describe PMUs in heterogeneous systems, the only item in the way of perf support for big.LITTLE is the singleton cpu_pmu variable used for OProfile compatibility. Acked-by: Will Deacon Signed-off-by: Mark Rutland Signed-off-by: Will Deacon arch/arm/kernel/perf_event_cpu.c | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) commit 0e3038d18adcecf375c39ef5b39eb3c613293280 Author: Mark Rutland Date: Wed May 13 17:12:27 2015 +0100 arm: perf: probe number of counters on affine CPUs In heterogeneous systems, the number of counters may differ across clusters. To find the number of counters for a cluster, we must probe the PMU from a CPU in that cluster. Reviewed-by: Will Deacon Signed-off-by: Mark Rutland Signed-off-by: Will Deacon arch/arm/kernel/perf_event_v7.c | 48 ++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 25 deletions(-) commit c904e32a69b7c77905876fc834f474f13f62c138 Author: Mark Rutland Date: Wed May 13 17:12:26 2015 +0100 arm: perf: filter unschedulable events Different CPU microarchitectures implement different PMU events, and thus events which can be scheduled on one microarchitecture cannot be scheduled on another, and vice-versa. Some archicted events behave differently across microarchitectures, and thus cannot be meaningfully summed. Due to this, we reject the scheduling of an event on a CPU of a different microarchitecture to that the event targets. When the core perf code is scheduling events and encounters an event which cannot be scheduled, it stops attempting to schedule events. As the perf core periodically rotates the list of events, for some proportion of the time events which are unschedulable will block events which are schedulable, resulting in low utilisation of the hardware counters. This patch implements a pmu::filter_match callback such that we can detect and skip such events while scheduling early, before they can block the schedulable events. This prevents the low HW counter utilisation issue. Acked-by: Will Deacon Signed-off-by: Mark Rutland Signed-off-by: Will Deacon arch/arm/kernel/perf_event.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit cc88116da0d18b8292f5437dbc0c4683c8a34ac1 Author: Mark Rutland Date: Wed May 13 17:12:25 2015 +0100 arm: perf: treat PMUs as CPU affine In multi-cluster systems, the PMUs can be different across clusters, and so our logical PMU may not be able to schedule events on all CPUs. This patch adds a cpumask to encode which CPUs a PMU driver supports controlling events for, and limits the driver to scheduling events on those CPUs, and enabling and disabling the physical PMUs on those CPUs. The cpumask is built based on the interrupt-affinity property, and in the absence of such a property a homogenous system is assumed. Acked-by: Will Deacon Signed-off-by: Mark Rutland Signed-off-by: Will Deacon arch/arm/include/asm/pmu.h | 1 + arch/arm/kernel/perf_event.c | 25 +++++++++++++++++++++++++ arch/arm/kernel/perf_event_cpu.c | 15 ++++++++++++--- 3 files changed, 38 insertions(+), 3 deletions(-) commit 64d0d3943e14653fcfd5f9b3bd585bc77fa053df Author: Mark Rutland Date: Wed May 13 17:12:24 2015 +0100 arm: perf: make of_pmu_irq_cfg take arm_pmu To support multiple PMUs we'll need to pass the arm_pmu instance around. Update of_pmu_irq_cfg to take an arm_pmu, and acquire the platform device from this. Acked-by: Will Deacon Signed-off-by: Mark Rutland Signed-off-by: Will Deacon arch/arm/kernel/perf_event_cpu.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit d06f23e7637343bb6dfdb5dd216e421be1a893d8 Merge: b3eac02 66eb579 Author: Will Deacon Date: Wed May 27 16:12:18 2015 +0100 Merge branch 'perf/core' into perf/updates commit b3eac0265bf6258f08dcd4ac7fa7f87cc050defc Author: Hou Pengyang Date: Fri May 8 06:43:03 2015 +0100 arm: perf: Fix callchain parse error with kernel tracepoint events For ARM, when tracing with tracepoint events, the IP and cpsr are set to 0, preventing the perf code parsing the callchain and resolving the symbols correctly. ./perf record -e sched:sched_switch -g --call-graph dwarf ls [ perf record: Captured and wrote 0.006 MB perf.data ] ./perf report -f Samples: 5 of event 'sched:sched_switch', Event count (approx.): 5 Children Self Command Shared Object Symbol 100.00% 100.00% ls [unknown] [.] 00000000 The fix is to implement perf_arch_fetch_caller_regs for ARM, which fills several necessary registers used for callchain unwinding, including pc,sp, fp and cpsr. With this patch, callchain can be parsed correctly as : ..... - 100.00% 100.00% ls [kernel.kallsyms] [k] __sched_text_start + __sched_text_start + 20.00% 0.00% ls libc-2.18.so [.] _dl_addr + 20.00% 0.00% ls libc-2.18.so [.] write ..... Jean Pihet found this in ARM and come up with a patch: http://thread.gmane.org/gmane.linux.kernel/1734283/focus=1734280 This patch rewrite Jean's patch in C. Signed-off-by: Hou Pengyang Signed-off-by: Will Deacon arch/arm/include/asm/perf_event.h | 7 +++++++ 1 file changed, 7 insertions(+) commit 66eb579e66ecfea55e2007be0594869ea9e453d4 Author: Mark Rutland Date: Wed May 13 17:12:23 2015 +0100 perf: allow for PMU-specific event filtering In certain circumstances it may not be possible to schedule particular events due to constraints other than a lack of hardware counters (e.g. on big.LITTLE systems where CPUs support different events). The core perf event code does not distinguish these cases and pessimistically assumes that any failure to schedule an event means that it is not worth attempting to schedule later events, even if some hardware counters are still unused. When an event a pmu cannot schedule exists in a flexible group list it can unnecessarily prevent event groups following it in the list from being scheduled (until it is rotated to the end of the list). This means some events are scheduled for only a portion of the time they could be, and for short running programs no events may be scheduled if the list is initially sorted in an unfortunate order. This patch adds a new (optional) filter_match function pointer to struct pmu which a pmu driver can use to tell perf core when an event matches pmu-specific scheduling requirements. This plugs into the existing event_filter_match logic, and makes it possible to avoid the scheduling problem described above. When no filter is provided by the PMU, the existing behaviour is retained. Cc: Paul Mackerras Cc: Ingo Molnar Cc: Arnaldo Carvalho de Melo Acked-by: Will Deacon Acked-by: Peter Zijlstra Signed-off-by: Mark Rutland Signed-off-by: Will Deacon include/linux/perf_event.h | 5 +++++ kernel/events/core.c | 8 +++++++- 2 files changed, 12 insertions(+), 1 deletion(-) commit 985e871b28fc3e73ccd21cb999ce61266dc8c941 Author: Steven Rostedt (Red Hat) Date: Wed May 27 10:48:56 2015 -0400 ring-buffer: Add trace_recursive checks to ring_buffer_write() The ring_buffer_write() function isn't protected by the trace recursive writes. Luckily, this function is not used as much and is unlikely to ever recurse. But it should still have the protection, because even a call to ring_buffer_lock_reserve() could cause ring buffer corruption if called when ring_buffer_write() is being used. Signed-off-by: Steven Rostedt kernel/trace/ring_buffer.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit 6776221bfe50afdc053527055577012a1acaabd5 Author: Steven Rostedt (Red Hat) Date: Wed May 27 10:44:43 2015 -0400 ring-buffer: Allways do the trace_recursive checks Currently the trace_recursive checks are only done if CONFIG_TRACING is enabled. That was because there use to be a dependency with tracing for the recursive checks (it used the task_struct trace recursive variable). But now it uses its own variable and there is no dependency. Signed-off-by: Steven Rostedt kernel/trace/ring_buffer.c | 9 --------- 1 file changed, 9 deletions(-) commit 58a09ec6e3ec88c9c7e061479f1ef7fe93324a87 Author: Steven Rostedt (Red Hat) Date: Wed May 27 10:27:47 2015 -0400 ring-buffer: Move recursive check to per_cpu descriptor Instead of using a global per_cpu variable to perform the recursive checks into the ring buffer, use the already existing per_cpu descriptor that is part of the ring buffer itself. Not only does this simplify the code, it also allows for one ring buffer to be used within the guts of the use of another ring buffer. For example trace_printk() can now be used within the ring buffer to record changes done by an instance into the main ring buffer. The recursion checks will prevent the trace_printk() itself from causing recursive issues with the main ring buffer (it is just ignored), but the recursive checks wont prevent the trace_printk() from recording other ring buffers. Signed-off-by: Steven Rostedt kernel/trace/ring_buffer.c | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) commit c208358c2cc832eeb5b341a465eee30be19cd5a0 Author: Matt Fleming Date: Wed May 27 14:14:22 2015 +0100 efi: Add 'systab' information to Documentation/ABI It's not clear right now that the order in which entries are displayed in /sys/firmware/efi/systab actually forms an ABI that userspace tools rely upon. Document the ABI along with the userspace tool that cares. Suggested-by: Ard Biesheuvel Acked-by: Ard Biesheuvel Reviewed-by: Jean Delvare Cc: Leif Lindholm Cc: Ivan Khoronzhuk Signed-off-by: Matt Fleming Documentation/ABI/testing/sysfs-firmware-efi | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 960d447b94b22ceba286917056871d1dac8da697 Author: Bartosz Golaszewski Date: Tue May 26 15:11:36 2015 +0200 x86: Remove cpu_sibling_mask() and cpu_core_mask() These functions are arch-specific and duplicate the functionality of macros defined in linux/include/topology.h. Remove them as all the callers in x86 have now switched to using the topology_**_cpumask() family. Signed-off-by: Bartosz Golaszewski Reviewed-by: Thomas Gleixner Cc: Benoit Cousson Cc: Catalin Marinas Cc: Fenghua Yu Cc: Guenter Roeck Cc: Jean Delvare Cc: Jonathan Corbet Cc: Linus Torvalds Cc: Oleg Drokin Cc: Peter Zijlstra Cc: Rafael J. Wysocki Cc: Russell King Cc: Viresh Kumar Link: http://lkml.kernel.org/r/1432645896-12588-10-git-send-email-bgolaszewski@baylibre.com Signed-off-by: Ingo Molnar arch/x86/include/asm/smp.h | 10 ---------- 1 file changed, 10 deletions(-) commit 7d79a7bd7554d420313451fb805ebc37a8da97fe Author: Bartosz Golaszewski Date: Tue May 26 15:11:35 2015 +0200 x86: Replace cpu_**_mask() with topology_**_cpumask() The former duplicate the functionalities of the latter but are neither documented nor arch-independent. Signed-off-by: Bartosz Golaszewski Reviewed-by: Thomas Gleixner Cc: Benoit Cousson Cc: Catalin Marinas Cc: Fenghua Yu Cc: Guenter Roeck Cc: Jean Delvare Cc: Jonathan Corbet Cc: Linus Torvalds Cc: Oleg Drokin Cc: Peter Zijlstra Cc: Rafael J. Wysocki Cc: Russell King Cc: Viresh Kumar Link: http://lkml.kernel.org/r/1432645896-12588-9-git-send-email-bgolaszewski@baylibre.com Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/proc.c | 3 ++- arch/x86/kernel/smpboot.c | 42 ++++++++++++++++++++++-------------------- arch/x86/kernel/tsc_sync.c | 2 +- 3 files changed, 25 insertions(+), 22 deletions(-) commit 265ea6248f6df4884c7ab622d3946375701adc54 Author: Bartosz Golaszewski Date: Tue May 26 15:11:34 2015 +0200 speedstep-ich: Replace cpu_sibling_mask() with topology_sibling_cpumask() The former duplicates the functionality of the latter but is neither documented nor arch-independent. Signed-off-by: Bartosz Golaszewski Acked-by: Viresh Kumar Acked-by: Rafael J. Wysocki Cc: Benoit Cousson Cc: Catalin Marinas Cc: Fenghua Yu Cc: Guenter Roeck Cc: Jean Delvare Cc: Jonathan Corbet Cc: Linus Torvalds Cc: Oleg Drokin Cc: Peter Zijlstra Cc: Russell King Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1432645896-12588-8-git-send-email-bgolaszewski@baylibre.com Signed-off-by: Ingo Molnar drivers/cpufreq/speedstep-ich.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3280c3c84d003b2dd37a788a4a6225a909c2d3e1 Author: Bartosz Golaszewski Date: Tue May 26 15:11:33 2015 +0200 acpi-cpufreq: Replace cpu_**_mask() with topology_**_cpumask() The former duplicate the functionalities of the latter but are neither documented nor arch-independent. Signed-off-by: Bartosz Golaszewski Acked-by: Viresh Kumar Acked-by: Rafael J. Wysocki Cc: Benoit Cousson Cc: Catalin Marinas Cc: Fenghua Yu Cc: Guenter Roeck Cc: Jean Delvare Cc: Jonathan Corbet Cc: Linus Torvalds Cc: Oleg Drokin Cc: Peter Zijlstra Cc: Russell King Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1432645896-12588-7-git-send-email-bgolaszewski@baylibre.com Signed-off-by: Ingo Molnar drivers/cpufreq/acpi-cpufreq.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit b60f9a7ea36c45a6bcb10a2ec0a1a3773427637f Author: Bartosz Golaszewski Date: Tue May 26 15:11:32 2015 +0200 p4-clockmod: Replace cpu_sibling_mask() with topology_sibling_cpumask() The former duplicates the functionality of the latter but is neither documented nor arch-independent. Signed-off-by: Bartosz Golaszewski Acked-by: Viresh Kumar Acked-by: Rafael J. Wysocki Cc: Benoit Cousson Cc: Catalin Marinas Cc: Fenghua Yu Cc: Guenter Roeck Cc: Jean Delvare Cc: Jonathan Corbet Cc: Linus Torvalds Cc: Oleg Drokin Cc: Peter Zijlstra Cc: Russell King Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1432645896-12588-6-git-send-email-bgolaszewski@baylibre.com Signed-off-by: Ingo Molnar drivers/cpufreq/p4-clockmod.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 38c52e6343f0e28abc7daf15cbbcd7e450667202 Author: Bartosz Golaszewski Date: Tue May 26 15:11:31 2015 +0200 powernow-k8: Replace cpu_core_mask() with topology_core_cpumask() The former duplicates the functionality of the latter but is neither documented nor arch-independent. Signed-off-by: Bartosz Golaszewski Acked-by: Viresh Kumar Acked-by: Rafael J. Wysocki Cc: Benoit Cousson Cc: Catalin Marinas Cc: Fenghua Yu Cc: Guenter Roeck Cc: Jean Delvare Cc: Jonathan Corbet Cc: Linus Torvalds Cc: Oleg Drokin Cc: Peter Zijlstra Cc: Russell King Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1432645896-12588-5-git-send-email-bgolaszewski@baylibre.com Signed-off-by: Ingo Molnar drivers/cpufreq/powernow-k8.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) commit 19a34eea4ff5ff08d971e3303936c12065f98862 Author: Bartosz Golaszewski Date: Tue May 26 15:11:30 2015 +0200 coretemp: Replace cpu_sibling_mask() with topology_sibling_cpumask() The former duplicates the functionality of the latter but is neither documented nor arch-independent. Signed-off-by: Bartosz Golaszewski Acked-by: Guenter Roeck Cc: Benoit Cousson Cc: Catalin Marinas Cc: Fenghua Yu Cc: Jean Delvare Cc: Jonathan Corbet Cc: Linus Torvalds Cc: Oleg Drokin Cc: Peter Zijlstra Cc: Rafael J. Wysocki Cc: Russell King Cc: Thomas Gleixner Cc: Viresh Kumar Link: http://lkml.kernel.org/r/1432645896-12588-4-git-send-email-bgolaszewski@baylibre.com Signed-off-by: Ingo Molnar drivers/hwmon/coretemp.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 54a5369487fc0a9506bbf31ab2e00e5dc5d6d4cd Author: Bartosz Golaszewski Date: Tue May 26 15:11:29 2015 +0200 Documentation: Update cputopology.txt The documentation on cpu topology seems to be a bit out-of-date. It doesn't mention the **_siblings_list attributes and uses old names for topology_**_cpumask() macros. Add information on missing attributes plus some additional clarifications. Signed-off-by: Bartosz Golaszewski Cc: Benoit Cousson Cc: Catalin Marinas Cc: Fenghua Yu Cc: Guenter Roeck Cc: Jean Delvare Cc: Jonathan Corbet Cc: Linus Torvalds Cc: Oleg Drokin Cc: Peter Zijlstra Cc: Rafael J. Wysocki Cc: Russell King Cc: Thomas Gleixner Cc: Viresh Kumar Link: http://lkml.kernel.org/r/1432645896-12588-3-git-send-email-bgolaszewski@baylibre.com Signed-off-by: Ingo Molnar Documentation/cputopology.txt | 35 ++++++++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 9 deletions(-) commit 06931e62246844c73fba24d7aeb4a5dc897a2739 Author: Bartosz Golaszewski Date: Tue May 26 15:11:28 2015 +0200 sched/topology: Rename topology_thread_cpumask() to topology_sibling_cpumask() Rename topology_thread_cpumask() to topology_sibling_cpumask() for more consistency with scheduler code. Signed-off-by: Bartosz Golaszewski Reviewed-by: Thomas Gleixner Acked-by: Russell King Acked-by: Catalin Marinas Cc: Benoit Cousson Cc: Fenghua Yu Cc: Guenter Roeck Cc: Jean Delvare Cc: Jonathan Corbet Cc: Linus Torvalds Cc: Oleg Drokin Cc: Peter Zijlstra Cc: Rafael J. Wysocki Cc: Russell King Cc: Viresh Kumar Link: http://lkml.kernel.org/r/1432645896-12588-2-git-send-email-bgolaszewski@baylibre.com Signed-off-by: Ingo Molnar Documentation/cputopology.txt | 2 +- arch/arm/include/asm/topology.h | 2 +- arch/arm64/include/asm/topology.h | 2 +- arch/ia64/include/asm/topology.h | 2 +- arch/mips/include/asm/topology.h | 2 +- arch/powerpc/include/asm/topology.h | 2 +- arch/powerpc/mm/tlb_nohash.c | 2 +- arch/s390/include/asm/topology.h | 3 ++- arch/sparc/include/asm/topology_64.h | 2 +- arch/tile/include/asm/topology.h | 2 +- arch/x86/include/asm/topology.h | 2 +- arch/x86/kernel/cpu/perf_event_intel.c | 6 +++--- block/blk-mq-cpumap.c | 2 +- drivers/acpi/acpi_pad.c | 2 +- drivers/base/topology.c | 2 +- drivers/net/ethernet/sfc/efx.c | 2 +- drivers/staging/lustre/lustre/libcfs/linux/linux-cpu.c | 2 +- drivers/staging/lustre/lustre/ptlrpc/service.c | 4 ++-- include/linux/topology.h | 6 +++--- lib/cpu_rmap.c | 2 +- 20 files changed, 26 insertions(+), 25 deletions(-) commit a5edce42184844239bc209c727435654cd0b5f2d Author: Thierry Reding Date: Thu May 21 09:58:03 2015 +0200 fbcon: Avoid deleting a timer in IRQ context Commit 27a4c827c34a ("fbcon: use the cursor blink interval provided by vt") unconditionally removes the cursor blink timer. Unfortunately that wreaks havoc under some circumstances. An easily reproducible way is to use both the framebuffer console and a debug serial port as the console output for kernel messages (e.g. "console=ttyS0 console=tty1" on the kernel command-line. Upon boot this triggers a warning from within the del_timer_sync() function because it is called from IRQ context: [ 5.070096] ------------[ cut here ]------------ [ 5.070110] WARNING: CPU: 0 PID: 0 at ../kernel/time/timer.c:1098 del_timer_sync+0x4c/0x54() [ 5.070115] Modules linked in: [ 5.070120] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.1.0-rc4-next-20150519 #1 [ 5.070123] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree) [ 5.070142] [] (unwind_backtrace) from [] (show_stack+0x10/0x14) [ 5.070156] [] (show_stack) from [] (dump_stack+0x70/0xbc) [ 5.070164] [] (dump_stack) from [] (warn_slowpath_common+0x74/0xb0) [ 5.070169] [] (warn_slowpath_common) from [] (warn_slowpath_null+0x1c/0x24) [ 5.070174] [] (warn_slowpath_null) from [] (del_timer_sync+0x4c/0x54) [ 5.070183] [] (del_timer_sync) from [] (fbcon_del_cursor_timer+0x2c/0x40) [ 5.070190] [] (fbcon_del_cursor_timer) from [] (fbcon_cursor+0x9c/0x180) [ 5.070198] [] (fbcon_cursor) from [] (hide_cursor+0x30/0x98) [ 5.070204] [] (hide_cursor) from [] (vt_console_print+0x2a8/0x340) [ 5.070212] [] (vt_console_print) from [] (call_console_drivers.constprop.23+0xc8/0xec) [ 5.070218] [] (call_console_drivers.constprop.23) from [] (console_unlock+0x498/0x4f0) [ 5.070223] [] (console_unlock) from [] (vprintk_emit+0x1f0/0x508) [ 5.070228] [] (vprintk_emit) from [] (vprintk_default+0x24/0x2c) [ 5.070234] [] (vprintk_default) from [] (printk+0x70/0x88) After which the system starts spewing all kinds of weird and seemingly unrelated error messages. This commit fixes this by restoring the condition under which the call to fbcon_del_cursor_timer() happens. Reported-by: Daniel Stone Reported-by: Kevin Hilman Tested-by: Kevin Hilman Tested-by: Scot Doyle Signed-off-by: Thierry Reding Tested-by: Andrew Vagin Tested-by: Tomeu Vizoso Signed-off-by: Greg Kroah-Hartman drivers/video/console/fbcon.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit fbe7193aa4787f27c84216d130ab877efc310d57 Author: Luis R. Rodriguez Date: Tue May 26 10:28:16 2015 +0200 x86/mm/pat: Export pat_enabled() Two Linux device drivers cannot work with PAT and the work required to make them work is significant. There is not enough motivation to convert these drivers over to use PAT properly, the compromise reached is to let drivers that cannot be ported to PAT check if PAT was enabled and if so fail on probe with a recommendation to boot with the "nopat" kernel parameter. Signed-off-by: Luis R. Rodriguez Signed-off-by: Borislav Petkov Cc: Andy Lutomirski Cc: Andy Walls Cc: Bjorn Helgaas Cc: Borislav Petkov Cc: Brian Gerst Cc: Daniel Vetter Cc: Dave Airlie Cc: Denys Vlasenko Cc: Doug Ledford Cc: H. Peter Anvin Cc: Juergen Gross Cc: Linus Torvalds Cc: Michael S. Tsirkin Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1430425520-22275-4-git-send-email-mcgrof@do-not-panic.com Link: http://lkml.kernel.org/r/1432628901-18044-14-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/mm/pat.c | 1 + 1 file changed, 1 insertion(+) commit cb32edf65bf2197a2d2226e94c7602dc92e295bb Author: Luis R. Rodriguez Date: Tue May 26 10:28:15 2015 +0200 x86/mm/pat: Wrap pat_enabled into a function API We use pat_enabled in x86-specific code to see if PAT is enabled or not but we're granting full access to it even though readers do not need to set it. If, for instance, we granted access to it to modules later they then could override the variable setting... no bueno. This renames pat_enabled to a new static variable __pat_enabled. Folks are redirected to use pat_enabled() now. Code that sets this can only be internal to pat.c. Apart from the early kernel parameter "nopat" to disable PAT, we also have a few cases that disable it later and make use of a helper pat_disable(). It is wrapped under an ifdef but since that code cannot run unless PAT was enabled its not required to wrap it with ifdefs, unwrap that. Likewise, since "nopat" doesn't really change non-PAT systems just remove that ifdef as well. Although we could add and use an early_param_off(), these helpers don't use __read_mostly but we want to keep __read_mostly for __pat_enabled as this is a hot path -- upon boot, for instance, a simple guest may see ~4k accesses to pat_enabled(). Since __read_mostly early boot params are not that common we don't add a helper for them just yet. Signed-off-by: Luis R. Rodriguez Signed-off-by: Borislav Petkov Cc: Andy Lutomirski Cc: Andy Walls Cc: Bjorn Helgaas Cc: Borislav Petkov Cc: Brian Gerst Cc: Christoph Lameter Cc: Daniel Vetter Cc: Dave Airlie Cc: Denys Vlasenko Cc: Doug Ledford Cc: H. Peter Anvin Cc: Juergen Gross Cc: Kyle McMartin Cc: Linus Torvalds Cc: Michael S. Tsirkin Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1430425520-22275-3-git-send-email-mcgrof@do-not-panic.com Link: http://lkml.kernel.org/r/1432628901-18044-13-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/include/asm/pat.h | 7 +------ arch/x86/kernel/cpu/mtrr/main.c | 2 +- arch/x86/mm/iomap_32.c | 2 +- arch/x86/mm/ioremap.c | 4 ++-- arch/x86/mm/pageattr.c | 2 +- arch/x86/mm/pat.c | 33 +++++++++++++++------------------ arch/x86/pci/i386.c | 6 +++--- 7 files changed, 24 insertions(+), 32 deletions(-) commit f9626104a5b6815ec7d65789dfb900af5fa51e64 Author: Luis R. Rodriguez Date: Tue May 26 10:28:14 2015 +0200 x86/mm/mtrr: Generalize runtime disabling of MTRRs It is possible to enable CONFIG_MTRR and CONFIG_X86_PAT and end up with a system with MTRR functionality disabled but PAT functionality enabled. This can happen, for instance, when the Xen hypervisor is used where MTRRs are not supported but PAT is. This can happen on Linux as of commit 47591df50512 ("xen: Support Xen pv-domains using PAT") by Juergen, introduced in v3.19. Technically, we should assume the proper CPU bits would be set to disable MTRRs but we can't always rely on this. At least on the Xen Hypervisor, for instance, only X86_FEATURE_MTRR was disabled as of Xen 4.4 through Xen commit 586ab6a [0], but not X86_FEATURE_K6_MTRR, X86_FEATURE_CENTAUR_MCR, or X86_FEATURE_CYRIX_ARR for instance. Roger Pau Monné has clarified though that although this is technically true we will never support PVH on these CPU types so Xen has no need to disable these bits on those systems. As per Roger, AMD K6, Centaur and VIA chips don't have the necessary hardware extensions to allow running PVH guests [1]. As per Toshi it is also possible for the BIOS to disable MTRR support, in such cases get_mtrr_state() would update the MTRR state as per the BIOS, we need to propagate this information as well. x86 MTRR code relies on quite a bit of checks for mtrr_if being set to check to see if MTRRs did get set up. Instead, lets provide a generic getter for that. This also adds a few checks where they were not before which could potentially safeguard ourselves against incorrect usage of MTRR where this was not desirable. Where possible match error codes as if MTRRs were disabled on arch/x86/include/asm/mtrr.h. Lastly, since disabling MTRRs can happen at run time and we could end up with PAT enabled, best record now in our logs when MTRRs are disabled. [0] ~/devel/xen (git::stable-4.5)$ git describe --contains 586ab6a 4.4.0-rc1~18 [1] http://lists.xenproject.org/archives/html/xen-devel/2015-03/msg03460.html Signed-off-by: Luis R. Rodriguez Signed-off-by: Borislav Petkov Cc: Andy Lutomirski Cc: Antonino Daplas Cc: Borislav Petkov Cc: Brian Gerst Cc: Daniel Vetter Cc: Dave Airlie Cc: Dave Hansen Cc: Davidlohr Bueso Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Jean-Christophe Plagniol-Villard Cc: Juergen Gross Cc: Linus Torvalds Cc: Mel Gorman Cc: Peter Zijlstra Cc: Roger Pau Monné Cc: Stefan Bader Cc: Suresh Siddha Cc: Thomas Gleixner Cc: Tomi Valkeinen Cc: Toshi Kani Cc: Ville Syrjälä Cc: Vlastimil Babka Cc: bhelgaas@google.com Cc: david.vrabel@citrix.com Cc: jbeulich@suse.com Cc: konrad.wilk@oracle.com Cc: venkatesh.pallipadi@intel.com Cc: ville.syrjala@linux.intel.com Cc: xen-devel@lists.xensource.com Link: http://lkml.kernel.org/r/1426893517-2511-3-git-send-email-mcgrof@do-not-panic.com Link: http://lkml.kernel.org/r/1432628901-18044-12-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/mtrr/generic.c | 4 +++- arch/x86/kernel/cpu/mtrr/main.c | 39 ++++++++++++++++++++++++++++++-------- arch/x86/kernel/cpu/mtrr/mtrr.h | 2 +- 3 files changed, 35 insertions(+), 10 deletions(-) commit 7d010fdf299929f9583ce5e17da629dcd83c36ef Author: Luis R. Rodriguez Date: Tue May 26 10:28:13 2015 +0200 x86/mm/mtrr: Avoid #ifdeffery with phys_wc_to_mtrr_index() There is only one user but since we're going to bury MTRR next out of access to drivers, expose this last piece of API to drivers in a general fashion only needing io.h for access to helpers. Signed-off-by: Luis R. Rodriguez Signed-off-by: Borislav Petkov Cc: Abhilash Kesavan Cc: Andrew Morton Cc: Andy Lutomirski Cc: Antonino Daplas Cc: Borislav Petkov Cc: Brian Gerst Cc: Catalin Marinas Cc: Cristian Stoica Cc: Daniel Vetter Cc: Dave Airlie Cc: Dave Hansen Cc: Davidlohr Bueso Cc: Denys Vlasenko Cc: Greg Kroah-Hartman Cc: H. Peter Anvin Cc: Jean-Christophe Plagniol-Villard Cc: Juergen Gross Cc: Linus Torvalds Cc: Matthias Brugger Cc: Mel Gorman Cc: Peter Zijlstra Cc: Suresh Siddha Cc: Thierry Reding Cc: Thomas Gleixner Cc: Tomi Valkeinen Cc: Toshi Kani Cc: Ville Syrjälä Cc: Vlastimil Babka Cc: Will Deacon Cc: dri-devel@lists.freedesktop.org Link: http://lkml.kernel.org/r/1429722736-4473-1-git-send-email-mcgrof@do-not-panic.com Link: http://lkml.kernel.org/r/1432628901-18044-11-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/include/asm/io.h | 3 +++ arch/x86/include/asm/mtrr.h | 5 ----- arch/x86/kernel/cpu/mtrr/main.c | 6 +++--- drivers/gpu/drm/drm_ioctl.c | 14 +------------- include/linux/io.h | 7 +++++++ 5 files changed, 14 insertions(+), 21 deletions(-) commit 2f9e897353fcb99effd6eff22f7b464f8e2a659a Author: Luis R. Rodriguez Date: Tue May 26 10:28:12 2015 +0200 x86/mm/mtrr, pat: Document Write Combining MTRR type effects on PAT / non-PAT pages As part of the effort to phase out MTRR use document write-combining MTRR effects on pages with different non-PAT page attributes flags and different PAT entry values. Extend arch_phys_wc_add() documentation to clarify power of two sizes / boundary requirements as we phase out mtrr_add() use. Lastly hint towards ioremap_uc() for corner cases on device drivers working with devices with mixed regions where MTRR size requirements would otherwise not enable write-combining effective memory types. Signed-off-by: Luis R. Rodriguez Signed-off-by: Borislav Petkov Cc: Andy Lutomirski Cc: Antonino Daplas Cc: Borislav Petkov Cc: Brian Gerst Cc: Daniel Vetter Cc: Dave Airlie Cc: Dave Hansen Cc: Davidlohr Bueso Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Jean-Christophe Plagniol-Villard Cc: Jonathan Corbet Cc: Juergen Gross Cc: Linus Torvalds Cc: Mel Gorman Cc: Peter Zijlstra Cc: Suresh Siddha Cc: Thomas Gleixner Cc: Tomi Valkeinen Cc: Ville Syrjälä Cc: Vlastimil Babka Cc: linux-fbdev@vger.kernel.org Link: http://lkml.kernel.org/r/1430343851-967-3-git-send-email-mcgrof@do-not-panic.com Link: http://lkml.kernel.org/r/1432628901-18044-10-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar Documentation/x86/mtrr.txt | 18 +++++++++++++++--- Documentation/x86/pat.txt | 35 ++++++++++++++++++++++++++++++++++- arch/x86/kernel/cpu/mtrr/main.c | 3 +++ 3 files changed, 52 insertions(+), 4 deletions(-) commit 9e76561f6a8a1a1c4f3152a3fb403ef9d6cfc2ff Author: Luis R. Rodriguez Date: Tue May 26 10:28:11 2015 +0200 x86/mm/pat: Convert to pr_*() usage Use pr_info() instead of the old printk to prefix the component where things are coming from. With this readers will know exactly where the message is coming from. We use pr_* helpers but define pr_fmt to the empty string for easier grepping for those error messages. We leave the users of dprintk() in place, this will print only when the debugpat kernel parameter is enabled. We want to leave those enabled as a debug feature, but also make them use the same prefix. Signed-off-by: Luis R. Rodriguez [ Kill pr_fmt. ] Signed-off-by: Borislav Petkov Cc: Andy Lutomirski Cc: Andy Walls Cc: Bjorn Helgaas Cc: Borislav Petkov Cc: Brian Gerst Cc: Daniel Vetter Cc: Dave Airlie Cc: Denys Vlasenko Cc: Doug Ledford Cc: H. Peter Anvin Cc: Juergen Gross Cc: Linus Torvalds Cc: Michael S. Tsirkin Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: cocci@systeme.lip6.fr Cc: plagnioj@jcrosoft.com Cc: tomi.valkeinen@ti.com Link: http://lkml.kernel.org/r/1430425520-22275-2-git-send-email-mcgrof@do-not-panic.com Link: http://lkml.kernel.org/r/1432628901-18044-9-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/mm/pat.c | 44 ++++++++++++++++++++++---------------------- arch/x86/mm/pat_internal.h | 2 +- arch/x86/mm/pat_rbtree.c | 6 +++--- 3 files changed, 26 insertions(+), 26 deletions(-) commit b73522e0c1be58d3c69b124985b8ccf94e3677f7 Author: Toshi Kani Date: Tue May 26 10:28:10 2015 +0200 x86/mm/mtrr: Enhance MTRR checks in kernel mapping helpers This patch adds the argument 'uniform' to mtrr_type_lookup(), which gets set to 1 when a given range is covered uniformly by MTRRs, i.e. the range is fully covered by a single MTRR entry or the default type. Change pud_set_huge() and pmd_set_huge() to honor the 'uniform' flag to see if it is safe to create a huge page mapping in the range. This allows them to create a huge page mapping in a range covered by a single MTRR entry of any memory type. It also detects a non-optimal request properly. They continue to check with the WB type since it does not effectively change the uniform mapping even if a request spans multiple MTRR entries. pmd_set_huge() logs a warning message to a non-optimal request so that driver writers will be aware of such a case. Drivers should make a mapping request aligned to a single MTRR entry when the range is covered by MTRRs. Signed-off-by: Toshi Kani [ Realign, flesh out comments, improve warning message. ] Signed-off-by: Borislav Petkov Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: Elliott@hp.com Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Luis R. Rodriguez Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: dave.hansen@intel.com Cc: linux-mm Cc: pebolle@tiscali.nl Link: http://lkml.kernel.org/r/1431714237-880-7-git-send-email-toshi.kani@hp.com Link: http://lkml.kernel.org/r/1432628901-18044-8-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/include/asm/mtrr.h | 4 ++-- arch/x86/kernel/cpu/mtrr/generic.c | 40 ++++++++++++++++++++++++++++---------- arch/x86/mm/pat.c | 4 ++-- arch/x86/mm/pgtable.c | 38 +++++++++++++++++++++++------------- 4 files changed, 58 insertions(+), 28 deletions(-) commit 0cc705f56e400764a171055f727d28a48260bb4b Author: Toshi Kani Date: Tue May 26 10:28:08 2015 +0200 x86/mm/mtrr: Clean up mtrr_type_lookup() MTRRs contain fixed and variable entries. mtrr_type_lookup() may repeatedly call __mtrr_type_lookup() to handle a request that overlaps with variable entries. However, __mtrr_type_lookup() also handles the fixed entries, which do not have to be repeated. Therefore, this patch creates separate functions, mtrr_type_lookup_fixed() and mtrr_type_lookup_variable(), to handle the fixed and variable ranges respectively. The patch also updates the function headers to clarify the return values and output argument. It updates comments to clarify that the repeating is necessary to handle overlaps with the default type, since overlaps with multiple entries alone can be handled without such repeating. There is no functional change in this patch. Signed-off-by: Toshi Kani Signed-off-by: Borislav Petkov Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: Elliott@hp.com Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Luis R. Rodriguez Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: dave.hansen@intel.com Cc: linux-mm Cc: pebolle@tiscali.nl Link: http://lkml.kernel.org/r/1431714237-880-6-git-send-email-toshi.kani@hp.com Link: http://lkml.kernel.org/r/1432628901-18044-6-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/mtrr/generic.c | 138 +++++++++++++++++++++++-------------- 1 file changed, 86 insertions(+), 52 deletions(-) commit 3d3ca416d9b0784cfcf244eeeba1bcaf421bc64d Author: Toshi Kani Date: Tue May 26 10:28:07 2015 +0200 x86/mm/mtrr: Use symbolic define as a retval for disabled MTRRs mtrr_type_lookup() returns verbatim 0xFF when MTRRs are disabled. This patch defines MTRR_TYPE_INVALID to clarify the meaning of this value, and documents its usage. Document the return values of the kernel virtual address mapping helpers pud_set_huge(), pmd_set_huge, pud_clear_huge() and pmd_clear_huge(). There is no functional change in this patch. Signed-off-by: Toshi Kani Signed-off-by: Borislav Petkov Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: Elliott@hp.com Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Luis R. Rodriguez Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: dave.hansen@intel.com Cc: linux-mm Cc: pebolle@tiscali.nl Link: http://lkml.kernel.org/r/1431714237-880-5-git-send-email-toshi.kani@hp.com Link: http://lkml.kernel.org/r/1432628901-18044-5-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/include/asm/mtrr.h | 2 +- arch/x86/include/uapi/asm/mtrr.h | 8 +++++++- arch/x86/kernel/cpu/mtrr/generic.c | 14 ++++++------- arch/x86/mm/pgtable.c | 42 +++++++++++++++++++++++++++++--------- 4 files changed, 47 insertions(+), 19 deletions(-) commit 9b3aca620883fc06636737c82a4d024b22182281 Author: Toshi Kani Date: Tue May 26 10:28:06 2015 +0200 x86/mm/mtrr: Fix MTRR state checks in mtrr_type_lookup() 'mtrr_state.enabled' contains the FE (fixed MTRRs enabled) and E (MTRRs enabled) flags in MSR_MTRRdefType. Intel SDM, section 11.11.2.1, defines these flags as follows: - All MTRRs are disabled when the E flag is clear. The FE flag has no affect when the E flag is clear. - The default type is enabled when the E flag is set. - MTRR variable ranges are enabled when the E flag is set. - MTRR fixed ranges are enabled when both E and FE flags are set. MTRR state checks in __mtrr_type_lookup() do not match with SDM. Hence, this patch makes the following changes: - The current code detects MTRRs disabled when both E and FE flags are clear in mtrr_state.enabled. Fix to detect MTRRs disabled when the E flag is clear. - The current code does not check if the FE bit is set in mtrr_state.enabled when looking at the fixed entries. Fix to check the FE flag. - The current code returns the default type when the E flag is clear in mtrr_state.enabled. However, the default type is UC when the E flag is clear. Remove the code as this case is handled as MTRR disabled with the 1st change. In addition, this patch defines the E and FE flags in mtrr_state.enabled as follows. - FE flag: MTRR_STATE_MTRR_FIXED_ENABLED - E flag: MTRR_STATE_MTRR_ENABLED print_mtrr_state() and x86_get_mtrr_mem_range() are also updated accordingly. Signed-off-by: Toshi Kani Signed-off-by: Borislav Petkov Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: Elliott@hp.com Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Luis R. Rodriguez Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: dave.hansen@intel.com Cc: linux-mm Cc: pebolle@tiscali.nl Link: http://lkml.kernel.org/r/1431714237-880-4-git-send-email-toshi.kani@hp.com Link: http://lkml.kernel.org/r/1432628901-18044-4-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/include/asm/mtrr.h | 4 ++++ arch/x86/kernel/cpu/mtrr/cleanup.c | 3 ++- arch/x86/kernel/cpu/mtrr/generic.c | 15 ++++++++------- 3 files changed, 14 insertions(+), 8 deletions(-) commit 7f0431e3dc8953f41e9433581c1fdd7ee45860b0 Author: Toshi Kani Date: Tue May 26 10:28:05 2015 +0200 x86/mm/mtrr: Fix MTRR lookup to handle an inclusive entry When an MTRR entry is inclusive to a requested range, i.e. the start and end of the request are not within the MTRR entry range but the range contains the MTRR entry entirely: range_start ... [mtrr_start ... mtrr_end] ... range_end __mtrr_type_lookup() ignores such a case because both start_state and end_state are set to zero. This bug can cause the following issues: 1) reserve_memtype() tracks an effective memory type in case a request type is WB (ex. /dev/mem blindly uses WB). Missing to track with its effective type causes a subsequent request to map the same range with the effective type to fail. 2) pud_set_huge() and pmd_set_huge() check if a requested range has any overlap with MTRRs. Missing to detect an overlap may cause a performance penalty or undefined behavior. This patch fixes the bug by adding a new flag, 'inclusive', to detect the inclusive case. This case is then handled in the same way as end_state:1 since the first region is the same. With this fix, __mtrr_type_lookup() handles the inclusive case properly. Signed-off-by: Toshi Kani Signed-off-by: Borislav Petkov Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: Elliott@hp.com Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Luis R. Rodriguez Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: dave.hansen@intel.com Cc: linux-mm Cc: pebolle@tiscali.nl Link: http://lkml.kernel.org/r/1431714237-880-3-git-send-email-toshi.kani@hp.com Link: http://lkml.kernel.org/r/1432628901-18044-3-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/mtrr/generic.c | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) commit 10455f64aff0d715dcdfb09b02393df168fe267e Author: Toshi Kani Date: Tue May 26 10:28:04 2015 +0200 x86/mm/kconfig: Simplify conditions for HAVE_ARCH_HUGE_VMAP Simplify the conditions selecting HAVE_ARCH_HUGE_VMAP since X86_PAE depends on X86_32 already. Signed-off-by: Toshi Kani Signed-off-by: Borislav Petkov Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: Elliott@hp.com Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Luis R. Rodriguez Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: dave.hansen@intel.com Cc: linux-mm Cc: pebolle@tiscali.nl Link: http://lkml.kernel.org/r/1431714237-880-2-git-send-email-toshi.kani@hp.com Link: http://lkml.kernel.org/r/1432628901-18044-2-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d563a6bb3d107bf62ec7cd852a142d7e93f0db79 Merge: 1fcb61c ba155e2 Author: Ingo Molnar Date: Wed May 27 14:40:10 2015 +0200 Merge tag 'v4.1-rc5' into x86/mm, to refresh the tree before applying new changes Signed-off-by: Ingo Molnar commit 113b5e3720e79ad938374163c1b8e295521dc9cf Author: Borislav Petkov Date: Tue May 26 10:28:20 2015 +0200 x86/Documentation: Adapt Ingo's explanation on printing backtraces Hold it down for future reference, as the question about the question mark in stack traces keeps popping up. Signed-off-by: Borislav Petkov Cc: Andrew Morton Cc: Andy Lutomirski Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Josh Poimboeuf Cc: Linus Torvalds Cc: Michal Marek Cc: Peter Zijlstra Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: live-patching@vger.kernel.org Link: http://lkml.kernel.org/r/1432628901-18044-18-git-send-email-bp@alien8.de Link: http://lkml.kernel.org/r/20150521101614.GA10889@gmail.com Signed-off-by: Ingo Molnar Documentation/x86/kernel-stacks | 44 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) commit d724a9a52b0026ac6a05440c079c9a618acfd8cf Author: Borislav Petkov Date: Tue May 26 10:28:19 2015 +0200 x86/Documentation: Remove STACKFAULT_STACK bulletpoint Update the documentation after 6f442be2fb22 ("x86_64, traps: Stop using IST for #SS"). Signed-off-by: Borislav Petkov Cc: Andrew Morton Cc: Andy Lutomirski Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Josh Poimboeuf Cc: Linus Torvalds Cc: Michal Marek Cc: Peter Zijlstra Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: live-patching@vger.kernel.org Link: http://lkml.kernel.org/r/1432628901-18044-17-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar Documentation/x86/kernel-stacks | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) commit 54fd15780526c47fa29a85b066cf69996be59a59 Author: Borislav Petkov Date: Tue May 26 10:28:18 2015 +0200 x86/Documentation: Move kernel-stacks doc one level up ... to Documentation/x86/ as it is going to collect more and not only 64-bit specific info. Signed-off-by: Borislav Petkov Cc: Andrew Morton Cc: Andy Lutomirski Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Josh Poimboeuf Cc: Linus Torvalds Cc: Michal Marek Cc: Peter Zijlstra Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: live-patching@vger.kernel.org Link: http://lkml.kernel.org/r/1432628901-18044-16-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar Documentation/x86/kernel-stacks | 101 +++++++++++++++++++++++++++++++++ Documentation/x86/x86_64/kernel-stacks | 101 --------------------------------- 2 files changed, 101 insertions(+), 101 deletions(-) commit 5c31b2800d8d3e735e5ecac8fc13d1cf862fd330 Author: Xie XiuQi Date: Tue May 26 10:28:21 2015 +0200 x86/mce: Fix monarch timeout setting through the mce= cmdline option Using "mce=1,10000000" on the kernel cmdline to change the monarch timeout does not work. The cause is that get_option() does parse a subsequent comma in the option string and signals that with a return value. So we don't need to check for a second comma ourselves. Signed-off-by: Xie XiuQi Signed-off-by: Borislav Petkov Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Tony Luck Link: http://lkml.kernel.org/r/1432120943-25028-1-git-send-email-xiexiuqi@huawei.com Link: http://lkml.kernel.org/r/1432628901-18044-19-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/mcheck/mce.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit adafb98da6a7af5e45362933a7dae6ab0e5076bf Author: Prarit Bhargava Date: Tue May 26 10:28:17 2015 +0200 x86/cpu: Strip any /proc/cpuinfo model name field whitespace When comparing the 'model name' field of each core in /proc/cpuinfo it was noticed that there is a whitespace difference between the cores' model names. After some quick investigation it was noticed that the model name fields were actually different -- processor 0's model name field had trailing whitespace removed, while the other processors did not. Another way of seeing this behaviour is to convert spaces into underscores in the output of /proc/cpuinfo, [thetango@prarit ~]# grep "^model name" /proc/cpuinfo | uniq -c | sed 's/\ /_/g' ______1_model_name :_AMD_Opteron(TM)_Processor_6272 _____63_model_name :_AMD_Opteron(TM)_Processor_6272_________________ which shows the discrepancy. This occurs because the kernel calls strim() on cpu 0's x86_model_id field to output a pretty message to the console in print_cpu_info(), and as a result strips the whitespace at the end of the ->x86_model_id field. But, the ->x86_model_id field should be the same for the all identical CPUs in the box. Thus, we need to remove both leading and trailing whitespace. As a result, the print_cpu_info() output looks like smpboot: CPU0: AMD Opteron(TM) Processor 6272 (fam: 15, model: 01, stepping: 02) and the x86_model_id field is correct on all processors on AMD platforms: _____64_model_name :_AMD_Opteron(TM)_Processor_6272 Output is still correct on an Intel box: ____144_model_name :_Intel(R)_Xeon(R)_CPU_E7-8890_v3_@_2.50GHz Signed-off-by: Prarit Bhargava Signed-off-by: Borislav Petkov Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Dave Hansen Cc: Denys Vlasenko Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Igor Mammedov Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1432050210-32036-1-git-send-email-prarit@redhat.com Link: http://lkml.kernel.org/r/1432628901-18044-15-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/common.c | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) commit 0fb0328d3458ff2d6ffbb280b75053c99a8a4b1f Author: Huang Rui Date: Tue May 26 10:28:09 2015 +0200 sched/x86: Drop repeated word from mwait_idle() comment A single "default" is fine. Signed-off-by: Huang Rui [ Fix another typo and reflow comment. ] Signed-off-by: Borislav Petkov Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1432022472-2224-5-git-send-email-ray.huang@amd.com Link: http://lkml.kernel.org/r/1432628901-18044-7-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/kernel/process.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 83242c515881cc8642d726c3e648e41bf6c24551 Author: Ingo Molnar Date: Wed May 27 12:22:29 2015 +0200 x86/fpu: Make WARN_ON_FPU() more robust in the !CONFIG_X86_DEBUG_FPU case Make sure the WARN_ON_FPU() macro consumes the macro argument, to avoid 'unused variable' build warnings if the only use of a variable is in debugging code. Cc: Andy Lutomirski Cc: Bobby Powers Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c5a1330573c1748179898f4799f130e416ce4738 Author: Mark Rutland Date: Thu Apr 30 14:22:04 2015 +0100 arm64: psci: remove ACPI coupling The 32-bit ARM port doesn't have ACPI headers, and conditionally including them is going to look horrendous. In preparation for sharing the PSCI invocation code with 32-bit, move the acpi_psci_* function declarations and definitions such that the PSCI client code need not include ACPI headers. While it would seem like we could simply hide the ACPI includes in psci.h, the ACPI headers have hilarious circular dependencies which make this infeasible without reorganising most of ACPICA. So rather than doing that, move the acpi_psci_* prototypes into psci.h. The psci_acpi_init function is made dependent on CONFIG_ACPI (with a stub implementation in asm/psci.h) such that it need not be built for 32-bit ARM or kernels without ACPI support. The currently missing __init annotations are added to the prototypes in the header. Signed-off-by: Mark Rutland Acked-by: Catalin Marinas Acked-by: Hanjun Guo Reviewed-by: Al Stone Reviewed-by: Ashwin Chaugule Tested-by: Hanjun Guo Cc: Lorenzo Pieralisi Cc: Will Deacon arch/arm64/include/asm/acpi.h | 15 +-------------- arch/arm64/include/asm/psci.h | 12 ++++++++++-- arch/arm64/kernel/acpi.c | 11 +++++++++++ arch/arm64/kernel/psci.c | 4 ++-- 4 files changed, 24 insertions(+), 18 deletions(-) commit c8cc42737788537ebef810ee22400f757e1819ca Author: Mark Rutland Date: Thu Apr 30 17:59:03 2015 +0100 arm64: psci: kill psci_power_state A PSCI 1.0 implementation may choose to use the new extended StateID format, the presence of which may be queried via the PSCI_FEATURES call. The layout of this new StateID format is incompatible with the existing format, and so to handle both we must abstract attempts to parse the fields. In preparation for PSCI 1.0 support, this patch introduces psci_power_state_loses_context and psci_power_state_is_valid functions to query information from a PSCI power state, which is no longer decomposed (and hence the pack/unpack functions are removed). As it is no longer decomposed, it is now passed round as an opaque u32 token. Signed-off-by: Mark Rutland Acked-by: Catalin Marinas Acked-by: Lorenzo Pieralisi Tested-by: Hanjun Guo Cc: Will Deacon arch/arm64/kernel/psci.c | 89 ++++++++++++++++++++---------------------------- 1 file changed, 37 insertions(+), 52 deletions(-) commit ff3010e6fcdb5f7e6999c6026ab7fcf835d54c5a Author: Mark Rutland Date: Wed Apr 22 18:10:26 2015 +0100 arm64: psci: account for Trusted OS instances Software resident in the secure world (a "Trusted OS") may cause CPU_OFF calls for the CPU it is resident on to be denied. Such a denial would be fatal for the kernel, and so we must detect when this can happen before the point of no return. This patch implements Trusted OS detection for PSCI 0.2+ systems, using MIGRATE_INFO_TYPE and MIGRATE_INFO_UP_CPU. When a trusted OS is detected as resident on a particular CPU, attempts to hot unplug that CPU will be denied early, before they can prove fatal. Trusted OS migration is not implemented by this patch. Implementation of migratable UP trusted OSs seems unlikely, and the right policy for migration is unclear (and will likely differ across implementations). As such, it is likely that migration will require cooperation with Trusted OS drivers. PSCI implementations prior to 0.1 do not provide the facility to detect the presence of a Trusted OS, nor the CPU any such OS is resident on, so without additional information it is not possible to handle Trusted OSs with PSCI 0.1. Signed-off-by: Mark Rutland Acked-by: Catalin Marinas Tested-by: Hanjun Guo Cc: Lorenzo Pieralisi Cc: Will Deacon arch/arm64/kernel/psci.c | 66 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) commit a06eed3e90c272675f2ef50f5bc5b3ec91652d77 Author: Mark Rutland Date: Mon Apr 20 14:51:00 2015 +0100 arm64: psci: support unsigned return values PSCI_VERSION and MIGRATE_INFO_TYPE_UP_CPU return unsigned values, with the latter returning a 64-bit value. However, the PSCI invocation functions have prototypes returning int. This patch upgrades the invocation functions to return unsigned long, with a new typedef to keep things legible. As PSCI_VERSION cannot return a negative value, the erroneous check against PSCI_RET_NOT_SUPPORTED is also removed. The unrelated psci_initcall_t typedef is moved closer to its first user, to avoid confusion with the invocation functions. In preparation for sharing the code with ARM, unsigned long is used in preference of u64. In the SMC32 calling convention, the relevant fields will be 32 bits wide. Signed-off-by: Mark Rutland Acked-by: Catalin Marinas Reviewed-by: Hanjun Guo Tested-by: Hanjun Guo Cc: Lorenzo Pieralisi Cc: Will Deacon arch/arm64/kernel/psci.c | 47 ++++++++++++++++++----------------------------- 1 file changed, 18 insertions(+), 29 deletions(-) commit 2a7cd0ebfc0a5ac2e692e63871e0ff6a50d5de46 Author: Mark Rutland Date: Wed Apr 22 16:22:55 2015 +0100 arm64: psci: remove unnecessary id indirection PSCI 0.1 did not define canonical IDs for CPU_ON, CPU_OFF, CPU_SUSPEND, or MIGRATE, and so these need to be provided when using firmware compliant to PSCI 0.1. However, functions introduced in 0.2 or later have canonical IDs, and these cannot be provided via DT. There's no need to indirect the IDs via a table; they can be used directly at callsites (and already are for SYSTEM_OFF and SYSTEM_RESET). This patch removes the unnecessary function ID indirection for AFFINITY_INFO and MIGRATE_INFO_TYPE. Signed-off-by: Mark Rutland Acked-by: Catalin Marinas Acked-by: Lorenzo Pieralisi Reviewed-by: Hanjun Guo Tested-by: Hanjun Guo Cc: Will Deacon arch/arm64/kernel/psci.c | 20 +++----------------- 1 file changed, 3 insertions(+), 17 deletions(-) commit 6b99c68cb5dd274d79451e5135f9450f7c01ca52 Author: Mark Rutland Date: Mon Apr 20 17:55:30 2015 +0100 arm64: smp: consistently use error codes cpu_kill currently returns one for success and zero for failure, which is unlike all the other cpu_operations, which return zero for success and an error code upon failure. This difference is unnecessarily confusing. Make cpu_kill consistent with the other cpu_operations. Signed-off-by: Mark Rutland Acked-by: Catalin Marinas Acked-by: Lorenzo Pieralisi Reviewed-by: Hanjun Guo Tested-by: Hanjun Guo Cc: Will Deacon arch/arm64/kernel/psci.c | 7 +++---- arch/arm64/kernel/smp.c | 10 +++++++--- 2 files changed, 10 insertions(+), 7 deletions(-) commit 6ee3c78cecc795e87de9552baca76ea88292556d Author: Mark Rutland Date: Wed Apr 22 17:26:18 2015 +0100 arm64: smp_plat: add get_logical_index The PSCI MIGRATE_INFO_UP_CPU call returns a physical ID, which we will need to map back to a Linux logical ID. Implement a reusable get_logical_index to map from a physical ID to a logical ID. Signed-off-by: Mark Rutland Acked-by: Catalin Marinas Acked-by: Lorenzo Pieralisi Reviewed-by: Hanjun Guo Tested-by: Hanjun Guo Cc: Will Deacon arch/arm64/include/asm/smp_plat.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit 538b9b25fa5dd372eeb3eabc85cb24d5df9e317b Author: Mark Rutland Date: Fri May 1 10:53:39 2015 +0100 arm/arm64: kvm: add missing PSCI include We make use of the PSCI function IDs, but don't explicitly include the header which defines them. Relying on transitive header includes is fragile and will be broken as headers are refactored. This patch includes the relevant header file directly so as to avoid future breakage. Signed-off-by: Mark Rutland Acked-by: Christoffer Dall Reviewed-by: Hanjun Guo Tested-by: Hanjun Guo Cc: Marc Zyngier arch/arm/kvm/psci.c | 2 ++ 1 file changed, 2 insertions(+) commit d65fcd608f6a9ac0316bd3efc75956ca329b6571 Author: Ingo Molnar Date: Wed May 27 14:04:44 2015 +0200 x86/fpu: Simplify copy_kernel_to_xregs_booting() copy_kernel_to_xregs_booting() has a second parameter that is the mask of xfeatures that should be copied - but this parameter is always -1. Simplify the call site of this function, this also makes it more similar to the function call signature of other copy_kernel_to*regs() functions. Cc: Andy Lutomirski Cc: Bobby Powers Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 3 ++- arch/x86/kernel/fpu/xstate.c | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) commit 003e2e8b57e79709e4973f6cb48381b2ba396680 Author: Ingo Molnar Date: Mon May 25 11:59:35 2015 +0200 x86/fpu: Standardize the parameter type of copy_kernel_to_fpregs() Bring the __copy_fpstate_to_fpregs() and copy_fpstate_to_fpregs() functions in line with the parameter passing convention of other kernel-to-FPU-registers copying functions: pass around an in-memory FPU register state pointer, instead of struct fpu *. NOTE: This patch also changes the assembly constraint of the FXSAVE-leak workaround from 'fpu->fpregs_active' to 'fpstate' - but that is fine, as we only need a valid memory address there for the FILDL instruction. Cc: Andy Lutomirski Cc: Bobby Powers Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 16 ++++++++-------- arch/x86/kernel/fpu/core.c | 4 ++-- arch/x86/kvm/x86.c | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) commit 9ccc27a5d297503e485373b69688d038a1d8e662 Author: Ingo Molnar Date: Mon May 25 11:27:46 2015 +0200 x86/fpu: Remove error return values from copy_kernel_to_*regs() functions None of the copy_kernel_to_*regs() FPU register copying functions are supposed to fail, and all of them have debugging checks that enforce this. Remove their return values and simplify their call sites, which have redundant error checks and error handling code paths. Cc: Andy Lutomirski Cc: Bobby Powers Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 27 +++++++++------------------ arch/x86/kernel/fpu/core.c | 18 +++++------------- 2 files changed, 14 insertions(+), 31 deletions(-) commit 3e1bf47e5c81c2b895db4bea67f70c3ca8e5b984 Author: Ingo Molnar Date: Wed May 27 13:47:01 2015 +0200 x86/fpu: Rename copy_fpstate_to_fpregs() to copy_kernel_to_fpregs() Bring the __copy_fpstate_to_fpregs() and copy_fpstate_to_fpregs() functions in line with the naming of other kernel-to-FPU-registers copying functions. Cc: Andy Lutomirski Cc: Bobby Powers Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 8 ++++---- arch/x86/kernel/fpu/core.c | 4 ++-- arch/x86/kvm/x86.c | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) commit 43b287b3f4d8665cd5a4909132259b663cc1c0e3 Author: Ingo Molnar Date: Mon May 25 10:59:31 2015 +0200 x86/fpu: Add debugging checks to all copy_kernel_to_*() functions Copying from in-kernel FPU context buffers to FPU registers are never supposed to fault. Add debugging checks to copy_kernel_to_fxregs() and copy_kernel_to_fregs() to double check this assumption. Cc: Andy Lutomirski Cc: Bobby Powers Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) commit ce2a1e67f1738535b011a7b4bd42cc114b1d805f Author: Ingo Molnar Date: Mon May 25 10:57:06 2015 +0200 x86/fpu: Add debugging check to fpu__restore() The copy_fpstate_to_fpregs() function is never supposed to fail, so add a debugging check to its call site in fpu__restore(). Cc: Andy Lutomirski Cc: Bobby Powers Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/core.c | 2 ++ 1 file changed, 2 insertions(+) commit 343763c3b0a4fa2d29f7c3ba405abf8771b90876 Author: Ingo Molnar Date: Wed May 27 12:22:29 2015 +0200 x86/fpu: Optimize fpu__activate_fpstate_write() fpu__activate_fpstate_write() is used before ptrace writes to the fpstate context. Because it expects the modified registers to be reloaded on the nexts context switch, it's only valid to call this function for stopped child tasks. - add a debugging check for this assumption - remove code that only runs if the current task's FPU state needs to be saved, which cannot occur here - update comments to match the implementation Cc: Andy Lutomirski Cc: Bobby Powers Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/core.c | 51 +++++++++++++++++----------------------------- 1 file changed, 19 insertions(+), 32 deletions(-) commit 6a81d7eb330479c908dab3a47ac33cfca8af5a67 Author: Ingo Molnar Date: Wed May 27 12:22:29 2015 +0200 x86/fpu: Rename fpu__activate_fpstate() to fpu__activate_fpstate_write() Remaining users of fpu__activate_fpstate() are all places that want to modify FPU registers, rename the function to fpu__activate_fpstate_write() according to this usage. Cc: Andy Lutomirski Cc: Bobby Powers Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 2 +- arch/x86/kernel/fpu/core.c | 2 +- arch/x86/kernel/fpu/regset.c | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) commit 9ba6b79102a594293c79f30319cabf476c5e300e Author: Ingo Molnar Date: Wed May 27 12:22:29 2015 +0200 x86/fpu: Optimize fpu__activate_fpstate_read() fpu__activate_fpstate_read() is used before FPU registers are read from the fpstate by ptrace and core dumping. It's not necessary to unlazy non-current child tasks in this case, since the reading of registers is non-destructive. Cc: Andy Lutomirski Cc: Bobby Powers Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/core.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 0560281266b313400b622c5ddfafb0ee8e59c702 Author: Ingo Molnar Date: Wed May 27 12:22:29 2015 +0200 x86/fpu: Split out the fpu__activate_fpstate_read() method Currently fpu__activate_fpstate() is used for two distinct purposes: - read access by ptrace and core dumping, where in the core dumping case the current task's FPU state may be examined as well. - write access by ptrace, which modifies FPU registers and expects the modified registers to be reloaded on the next context switch. Split out the reading side into fpu__activate_fpstate_read(). ( Note that this is just a pure duplication of fpu__activate_fpstate() for the time being, we'll optimize the new function in the next patch. ) Cc: Andy Lutomirski Cc: Bobby Powers Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 1 + arch/x86/kernel/fpu/core.c | 29 +++++++++++++++++++++++++++++ arch/x86/kernel/fpu/regset.c | 6 +++--- 3 files changed, 33 insertions(+), 3 deletions(-) commit dec169eccc26b12a533856a7fea87a245c47c11d Author: Varka Bhadram Date: Wed May 27 14:21:06 2015 +0530 ieee802154: fix typo for file name Signed-off-by: Varka Bhadram Signed-off-by: Marcel Holtmann net/ieee802154/trace.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0f999b09f5c1b135e840501840dbcd01fad66f79 Author: Varka Bhadram Date: Wed May 27 09:10:54 2015 +0530 ieee802154: add set transmit power support This patch adds transmission power setting support for IEEE-802.15.4 devices via nl802154. Signed-off-by: Varka Bhadram Acked-by: Alexander Aring Signed-off-by: Marcel Holtmann include/net/cfg802154.h | 1 + net/ieee802154/nl802154.c | 30 ++++++++++++++++++++++++++++++ net/ieee802154/rdev-ops.h | 12 ++++++++++++ net/ieee802154/trace.h | 15 +++++++++++++++ net/mac802154/cfg.c | 19 +++++++++++++++++++ 5 files changed, 77 insertions(+) commit d63f820f39ee7b3f8dd4ac04ff27511fbf653e9a Author: Michel Thierry Date: Mon Apr 27 12:31:44 2015 +0100 drm/i915: Remove unnecessary null check in execlists_context_unqueue commit 53292cdb066950611e5bc2e0eb109c7edb42af78 ("drm/i915: Workaround to avoid lite restore with HEAD==TAIL") added a check for req0 != null which is unnecessary. The only way req0 could be null is if the list was empty, and this is already addressed at the beginning of execlists_context_unqueue(). Reported-by: Dan Carpenter Signed-off-by: Michel Thierry Reviewed-by: Jani Nikula Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_lrc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5ceecb2fa720c01a97e6fa2353c2b8f1e8d69f1f Author: Michel Dänzer Date: Tue May 26 17:53:38 2015 +0900 drm: Fix off-by-one in vblank hardware counter wraparound handling dev->max_vblank_count contains the largest value that can be represented by the hardware counter. When the hardware counter wraps around, we have to add that value + 1 to get the same value as if the hardware counter didn't wrap around. Signed-off-by: Michel Dänzer Reviewed-by: Christian König Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_irq.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 47f01e8cc23f3d041f6b9fb97627369eaf75ba7f Author: Ingo Molnar Date: Wed May 27 12:22:29 2015 +0200 x86/fpu: Fix FPU register read access to the current task Bobby Powers reported the following FPU warning during ELF coredumping: WARNING: CPU: 0 PID: 27452 at arch/x86/kernel/fpu/core.c:324 fpu__activate_stopped+0x8a/0xa0() This warning unearthed an invalid assumption about fpu__activate_stopped() that I added in: 67e97fc2ec57 ("x86/fpu: Rename init_fpu() to fpu__unlazy_stopped() and add debugging check") the old init_fpu() function had an (intentional but obscure) side effect: when FPU registers are accessed for the current task, for reading, then it synchronized live in-register FPU state with the fpstate by saving it. So fix this bug by saving the FPU if we are the current task. We'll still warn in fpu__save() if this is called for not yet stopped child tasks, so the debugging check is still preserved. Also rename the function to fpu__activate_fpstate(), because it's not exclusively used for stopped tasks, but for the current task as well. ( Note that this bug calls for a cleaner separation of access-for-read and access-for-modification FPU methods, but we'll do that in separate patches. ) Reported-by: Bobby Powers Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 2 +- arch/x86/kernel/fpu/core.c | 43 +++++++++++++++++++++---------------- arch/x86/kernel/fpu/regset.c | 12 +++++------ 3 files changed, 32 insertions(+), 25 deletions(-) commit 2421a8cd5faaa9c2c9397123c5a297bab227d965 Author: Anand Jain Date: Tue Mar 10 06:38:40 2015 +0800 Btrfs: sysfs: don't fail seeding for the sake of sysfs kobject issue Signed-off-by: Anand Jain Signed-off-by: David Sterba fs/btrfs/volumes.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 24bd69cb0fb2d90f4ced5f6acfee3688b33bcbdd Author: Anand Jain Date: Tue Mar 10 06:38:39 2015 +0800 Btrfs: sysfs: add support to add parent for fsid To support seed sysfs layout and represent seed fsid under the sprout we need the facility to create fsid under the specified parent. Signed-off-by: Anand Jain Signed-off-by: David Sterba fs/btrfs/sysfs.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b7c35e81adcd593daca2160b5ba0ec62f71a9303 Author: Anand Jain Date: Tue Mar 10 06:38:38 2015 +0800 Btrfs: sysfs: separate kobject and attribute creation Signed-off-by: Anand Jain Signed-off-by: David Sterba fs/btrfs/disk-io.c | 18 +++++++++++++++++- fs/btrfs/sysfs.c | 15 ++------------- 2 files changed, 19 insertions(+), 14 deletions(-) commit 1d1c1be3720c1f4b621c5f90a4f61bdd856a0aa8 Author: Anand Jain Date: Tue Mar 10 06:38:37 2015 +0800 Btrfs: sysfs: btrfs_sysfs_remove_fsid() make it non static Signed-off-by: Anand Jain Signed-off-by: David Sterba fs/btrfs/sysfs.c | 2 +- fs/btrfs/sysfs.h | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) commit ef1a0daadf2b722fc1bb6c2d5cf39239591e78ec Author: Anand Jain Date: Tue Mar 10 06:38:36 2015 +0800 Btrfs: sysfs: make btrfs_sysfs_add_device() non static Signed-off-by: Anand Jain Signed-off-by: David Sterba fs/btrfs/sysfs.h | 1 + 1 file changed, 1 insertion(+) commit 0c10e2d482ba7eafb9806f3ee071c8af5afcde55 Author: Anand Jain Date: Tue Mar 10 06:38:35 2015 +0800 Btrfs: sysfs: make btrfs_sysfs_add_fsid() non static Signed-off-by: Anand Jain Signed-off-by: David Sterba fs/btrfs/sysfs.c | 2 +- fs/btrfs/sysfs.h | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) commit 6c14a1641bfaa213bb3c5bcb7f4d8cde234ada70 Author: Anand Jain Date: Tue Mar 10 06:38:34 2015 +0800 Btrfs: sysfs btrfs_kobj_rm_device() pass fs_devices instead of fs_info since btrfs_kobj_rm_device() does nothing with fs_info Signed-off-by: Anand Jain Signed-off-by: David Sterba fs/btrfs/dev-replace.c | 2 +- fs/btrfs/sysfs.c | 12 ++++++------ fs/btrfs/sysfs.h | 2 +- fs/btrfs/volumes.c | 4 ++-- 4 files changed, 10 insertions(+), 10 deletions(-) commit 1ba43816af921219d596c462baa7674ff0228229 Author: Anand Jain Date: Tue Mar 10 06:38:33 2015 +0800 Btrfs: sysfs btrfs_kobj_add_device() pass fs_devices instead of fs_info btrfs_kobj_add_device() does not need fs_info any more. Signed-off-by: Anand Jain Signed-off-by: David Sterba fs/btrfs/dev-replace.c | 2 +- fs/btrfs/sysfs.c | 7 +++---- fs/btrfs/sysfs.h | 2 +- fs/btrfs/volumes.c | 2 +- 4 files changed, 6 insertions(+), 7 deletions(-) commit 2e3e12815a296f263261b17b3a5781cbd517f7f3 Author: Anand Jain Date: Tue Mar 10 06:38:32 2015 +0800 Btrfs: sysfs: provide framework to remove all fsid sysfs kobject Just a helper function to clean up the sysfs fsid kobjects. Signed-off-by: Anand Jain Signed-off-by: David Sterba fs/btrfs/sysfs.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) commit 5a13f4308c5b4af28c01ca9cacdd8a6db777dfcb Author: Anand Jain Date: Tue Mar 10 06:38:31 2015 +0800 Btrfs: sysfs: add pointer to access fs_info from fs_devices adds fs_info pointer with struct btrfs_fs_devices. Signed-off-by: Anand Jain Signed-off-by: David Sterba fs/btrfs/sysfs.c | 4 ++++ fs/btrfs/volumes.c | 18 ++++++++++++++++++ fs/btrfs/volumes.h | 3 +++ 3 files changed, 25 insertions(+) commit c73eccf75bf92e49be30884da32a169b04eb5bc9 Author: Anand Jain Date: Tue Mar 10 06:38:30 2015 +0800 Btrfs: introduce btrfs_get_fs_uuids to get fs_uuids Signed-off-by: Anand Jain Signed-off-by: David Sterba fs/btrfs/volumes.c | 4 ++++ fs/btrfs/volumes.h | 1 + 2 files changed, 5 insertions(+) commit 2e7910d6ca359ff1dbe05b74e3d7f353b5b65362 Author: Anand Jain Date: Tue Mar 10 06:38:29 2015 +0800 Btrfs: sysfs: move super_kobj and device_dir_kobj from fs_info to btrfs_fs_devices This patch will provide a framework and help to create attributes from the structure btrfs_fs_devices which are available even before fs_info is created. So by moving the parent kobject super_kobj from fs_info to btrfs_fs_devices, it will help to create attributes from the btrfs_fs_devices as well. Patches on top of this patch now will be able to create the sys/fs/btrfs/fsid kobject and attributes from btrfs_fs_devices when devices are scanned and registered to the kernel. Just to note, this does not change any of the existing btrfs sysfs external kobject names and its attributes and not even the life cycle of them. Changes are internal only. And to ensure the same, this path has been tested with various device operations and, checking and comparing the sysfs kobjects and attributes with sysfs kobject and attributes with out this patch, and they remain same. Signed-off-by: Anand Jain Signed-off-by: David Sterba fs/btrfs/ctree.h | 3 -- fs/btrfs/sysfs.c | 88 ++++++++++++++++++++++++++++++------------------------ fs/btrfs/volumes.c | 3 +- fs/btrfs/volumes.h | 5 ++++ 4 files changed, 56 insertions(+), 43 deletions(-) commit 00c921c23f9155597ff4ac1263a6ff46dc9e2206 Author: Anand Jain Date: Tue Mar 10 06:38:28 2015 +0800 Btrfs: sysfs: separate device kobject and its attribute creation Separate device kobject and its attribute creation so that device kobject can be created from the device discovery thread. Signed-off-by: Anand Jain Signed-off-by: David Sterba fs/btrfs/sysfs.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) commit 0dd2906f7229186424cdc80be8654b2c21d9c04c Author: Anand Jain Date: Tue Mar 10 06:38:27 2015 +0800 Btrfs: sysfs: let default_attrs be separate from the kset As of now btrfs_attrs are provided using the default_attrs through the kset. Separate them and create the default_attrs using the sysfs_create_files instead. By doing this we will have the flexibility that device discovery thread could create fsid kobject. Signed-off-by: Anand Jain Signed-off-by: David Sterba fs/btrfs/sysfs.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 720592157eeef627ff9a7c7c55ab1713bc48fb50 Author: Anand Jain Date: Tue Mar 10 06:38:26 2015 +0800 Btrfs: sysfs: introduce function btrfs_sysfs_add_fsid() to create sysfs fsid We need it in a seperate function so that it can be called from the device discovery thread as well. Signed-off-by: Anand Jain Signed-off-by: David Sterba fs/btrfs/sysfs.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) commit 3a08f3b72a4f03e413d89d8505b17c05194e63f9 Author: Anand Jain Date: Tue Mar 10 06:38:25 2015 +0800 Btrfs: sysfs: rename __btrfs_sysfs_remove_one to btrfs_sysfs_remove_fsid Signed-off-by: Anand Jain Signed-off-by: David Sterba fs/btrfs/sysfs.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit aaf13305160490531b0d5ee4d56d32fc09f9bfa0 Author: Anand Jain Date: Tue Mar 10 06:38:24 2015 +0800 Btrfs: sysfs: reorder the kobject creations As of now the order in which the kobjects are created at btrfs_sysfs_add_one() is.. fsid features unknown features (dynamic features) devices. Since we would move fsid and device kobject to fs_devices from fs_info structure, this patch will reorder in which the kobjects are created as below. fsid devices features unknown features (dynamic features) And hence the btrfs_sysfs_remove_one() will follow the same in reverse order. and the device kobject destroy now can be moved into the function __btrfs_sysfs_remove_one() Signed-off-by: Anand Jain Signed-off-by: David Sterba fs/btrfs/sysfs.c | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) commit 4d435731f99db87020730c4b17e1da148908340e Author: Anand Jain Date: Tue Mar 10 06:38:23 2015 +0800 Btrfc: sysfs: fix, check if device_dir_kobj is init before destroy Since the failure code in the btrfs_sysfs_add_one() can call btrfs_sysfs_remove_one() even before device_dir_kobj has been created we need to check if its null. Signed-off-by: Anand Jain Signed-off-by: David Sterba fs/btrfs/sysfs.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit 8345ea31dc6e1772726d1d0b8864dedac55038e0 Author: Anand Jain Date: Fri Mar 20 18:01:20 2015 +0800 Btrfs: sysfs: fix, kobject pointer clean up needed after kobject release The sysfs clean up self test like in the below code fails, since fs_info->device_dir_kobject still points to its stale kobject. Reseting this pointer will help to fix this. open_ctree() { ret = btrfs_sysfs_add_one(fs_info); :: + btrfs_sysfs_remove_one(fs_info); + ret = btrfs_sysfs_add_one(fs_info); + if (ret) { + pr_err("BTRFS: failed to init sysfs interface: %d\n", ret); + goto fail_block_groups; + } Signed-off-by: Anand Jain Signed-off-by: David Sterba fs/btrfs/sysfs.c | 1 + 1 file changed, 1 insertion(+) commit e7e1aa9c913da380fbf1977ac4fa98e464023605 Author: Anand Jain Date: Tue Mar 10 06:38:21 2015 +0800 Btrfs: sysfs: fix, undo sysfs device links Theoritically need to remove the device links attributes, but since its entire device kobject was removed, so there wasn't any issue of about it. Just do it nicely. Signed-off-by: Anand Jain Signed-off-by: David Sterba fs/btrfs/sysfs.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit 4e51f005a22a2c7795351b975437b0cee0acce3e Author: Anand Jain Date: Tue Mar 10 06:38:20 2015 +0800 Btrfs: sysfs: fix, fs_info kobject_unregister has init_completion() twice kobject_unregister is to handle the release of the kobject, its completion init is being called in btrfs_sysfs_add_one(), so we don't have to do the same in the open_ctree() again. Signed-off-by: Anand Jain Signed-off-by: David Sterba fs/btrfs/disk-io.c | 1 - 1 file changed, 1 deletion(-) commit 248d200df34f3e44a4140f32dfc7428c52615332 Author: Anand Jain Date: Tue Mar 10 06:38:19 2015 +0800 Btrfs: sysfs: fix, btrfs_release_super_kobj() should to clean up the kobject data The following test case fails indicating that, thread tried to init an initialized object. kernel: [232104.016513] kobject (ffff880006c1c980): tried to init an initialized object, something is seriously wrong. btrfs_sysfs_remove_one() self test code: open_tree() { :: ret = btrfs_sysfs_add_one(fs_info); if (ret) { pr_err("BTRFS: failed to init sysfs interface: %d\n", ret); goto fail_block_groups; } + btrfs_sysfs_remove_one(fs_info); + ret = btrfs_sysfs_add_one(fs_info); + if (ret) { + pr_err("BTRFS: failed to init sysfs interface: %d\n", ret); + goto fail_block_groups; + } cleaning up the unregistered kobject fixes this. Signed-off-by: Anand Jain Signed-off-by: David Sterba fs/btrfs/sysfs.c | 2 ++ 1 file changed, 2 insertions(+) commit c87d2453a1c08da778103d56fd84df37920889e9 Author: Jyri Sarha Date: Wed Feb 18 12:26:50 2015 +0200 drm/tilcdc: Force building of DRM_TILCDC_SLAVE_COMPAT If I read Documentation/kbuild/makefiles.txt section 3.6 right, this patch should not be needed. However, without this patch the objects needed for DRM_TILCDC_SLAVE_COMPAT are not linked, if DRM_TILCDC is built as module. Signed-off-by: Jyri Sarha Acked-by: Tomi Valkeinen drivers/gpu/drm/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4e7221580223ec779748d3d515ba1435bda69459 Author: Jyri Sarha Date: Wed Feb 18 11:24:03 2015 +0200 drm/tilcdc: Add DRM_TILCDC_SLAVE_COMPAT for ti,tilcdc,slave binding support Adds a CONFIG_DRM_TILCDC_SLAVE_COMPAT module for "ti,tilcdc,slave" node conversion. The implementation is in tilcdc_slave_compat.c and it uses tilcdc_slave_compat.dts as a basis for creating a DTS overlay. The DTS overlay adds an external tda998x encoder to tilcdc that corresponds to the old tda998x based slave encoder. Signed-off-by: Jyri Sarha Acked-by: Tomi Valkeinen drivers/gpu/drm/tilcdc/Kconfig | 12 ++ drivers/gpu/drm/tilcdc/Makefile | 3 + drivers/gpu/drm/tilcdc/tilcdc_slave_compat.c | 270 +++++++++++++++++++++++++ drivers/gpu/drm/tilcdc/tilcdc_slave_compat.dts | 72 +++++++ drivers/gpu/drm/tilcdc/tilcdc_slave_compat.h | 25 +++ 5 files changed, 382 insertions(+) commit e3487e07b88e4a6c3782e87416b62d5d8978936a Author: Tomi Valkeinen Date: Wed May 27 10:39:52 2015 +0300 drm/tilcdc: use pm_runtime_irq_safe() tilcdc calls runtime PM get/put functions everywhere. Some of those places will be called in irq context, crashing the driver. As a quick fix, use pm_runtime_irq_safe() for tilcdc. Signed-off-by: Tomi Valkeinen Signed-off-by: Jyri Sarha drivers/gpu/drm/tilcdc/tilcdc_drv.c | 1 + 1 file changed, 1 insertion(+) commit 103cd8bc1c80ec0a12ef438c4493f7c26edc71bd Author: Jyri Sarha Date: Tue Feb 10 14:13:23 2015 +0200 drm/tilcdc: Add support for external tda998x encoder Add support for an external compontised DRM encoder. The external encoder can be connected to tilcdc trough device tree graph binding. The binding document for tilcdc has been updated. The current implementation supports only tda998x encoder. To be able to filter out the unsupported video modes the tilcdc driver needs to hijack the external connectors helper functions. The tilcdc installes new helper functions that are otherwise identical to orignals, but the mode_valid() call-back check the mode first localy, before calling the original call-back. The tilcdc dirver restores the original helper functions before it is unbound from the external device. I got the idea and some lines of code from Jean-Francois Moine's "drm/tilcdc: Change the interface with the tda998x driver"-patch. Signed-off-by: Jyri Sarha Acked-by: Tomi Valkeinen .../devicetree/bindings/drm/tilcdc/tilcdc.txt | 27 ++++ drivers/gpu/drm/tilcdc/Makefile | 1 + drivers/gpu/drm/tilcdc/tilcdc_crtc.c | 33 ++++ drivers/gpu/drm/tilcdc/tilcdc_drv.c | 85 +++++++++-- drivers/gpu/drm/tilcdc/tilcdc_drv.h | 5 + drivers/gpu/drm/tilcdc/tilcdc_external.c | 166 +++++++++++++++++++++ drivers/gpu/drm/tilcdc/tilcdc_external.h | 25 ++++ 7 files changed, 329 insertions(+), 13 deletions(-) commit 6730201f4fdcfbb1e6ec5ec374e6ef95e5bf9662 Author: Jyri Sarha Date: Tue Feb 24 15:24:31 2015 +0200 drm/tilcdc: Remove tilcdc slave support for tda998x driver Remove tilcdc slave support for tda998x driver. The tilcdc slave support would conflicts with componentized use of tda998x. Signed-off-by: Jyri Sarha Acked-by: Tomi Valkeinen .../devicetree/bindings/drm/tilcdc/slave.txt | 18 - drivers/gpu/drm/tilcdc/Makefile | 1 - drivers/gpu/drm/tilcdc/tilcdc_drv.c | 13 - drivers/gpu/drm/tilcdc/tilcdc_drv.h | 1 - drivers/gpu/drm/tilcdc/tilcdc_slave.c | 411 --------------------- drivers/gpu/drm/tilcdc/tilcdc_slave.h | 26 -- 6 files changed, 470 deletions(-) commit de9cb5f20a50f2811caf909ee254699fd2228910 Author: Jyri Sarha Date: Thu Feb 26 10:12:41 2015 +0200 drm/tilcdc: Fix module unloading Force crtc dpms off before destroying the crtc instead of just checking the dpms state. This fixes warning message and frozen picture after tilcdc module unloading. Signed-off-by: Jyri Sarha Acked-by: Tomi Valkeinen drivers/gpu/drm/tilcdc/tilcdc_crtc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 2d2959286017f5501187cfa47d3854f955c4beae Author: Gregory CLEMENT Date: Tue May 26 11:44:44 2015 +0200 ARM: mvebu: use improved armada spi device tree compatible name for each SoC Use the new compatible introduced in order to benefit of a wider and more accurate range of baud rates to be used. Signed-off-by: Gregory CLEMENT arch/arm/boot/dts/armada-370-xp.dtsi | 2 -- arch/arm/boot/dts/armada-370.dtsi | 4 ++++ arch/arm/boot/dts/armada-375.dtsi | 6 ++++-- arch/arm/boot/dts/armada-38x.dtsi | 6 ++++-- arch/arm/boot/dts/armada-39x.dtsi | 6 ++++-- arch/arm/boot/dts/armada-xp.dtsi | 8 ++++++++ 6 files changed, 24 insertions(+), 8 deletions(-) commit 16b79921e3002ec4e374432a1ceb1986182df71a Author: Andrew Andrianov Date: Tue May 26 18:51:11 2015 +0300 ARM: mvebu: dts: Add dts file for DLink DNS-327L DNS-327L is a 2-bay NAS with the following specs: - 512MiB RAM - 128MiB NAND Flash - 1 GbE interface (Marvell PHY) - 1 rear USB 3.0 port (via PCIe USB 3.0 controller) - 2 internal SATA ports handled by the Armada 370: uses 2 gpios for power control - two front 2-color leds (amber + white) for both discs, controlled by the SoC - One white LED handled by SoC (USB) - 3 buttons. Power handled by weltrend, USB and RESET (on the bottom) are wired via GPIOs - Unidentified i2c device at address 0x13 (via i2cdetect) - UART0 providing serial console - Weltrend MCU serving for RTC, temperature, fan control, and power button handling interfaced via UART1 (Handled via userspace dns320l-daemon) Signed-off-by: Andrew Andrianov Acked-by: Sebastian Hesselbarth Acked-by: Andrew Lunn Signed-off-by: Gregory CLEMENT arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/armada-370-dlink-dns327l.dts | 357 +++++++++++++++++++++++++ 2 files changed, 358 insertions(+) commit 36520841a443d5ee966f9632c417fcc8a25e07e3 Author: Fabian Frederick Date: Mon May 18 19:43:21 2015 +0200 video/console: use swap() in newport_bmove() Use kernel.h macro definition. Signed-off-by: Fabian Frederick Signed-off-by: Tomi Valkeinen drivers/video/console/newport_con.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 1ebd8eccf542ee406a945c8569e362c09c93ee2c Author: Fabian Frederick Date: Mon May 18 19:32:09 2015 +0200 video: fbdev: use swap() in ami_set_sprite() Use kernel.h macro definition. Signed-off-by: Fabian Frederick Acked-by: Geert Uytterhoeven Signed-off-by: Tomi Valkeinen drivers/video/fbdev/amifb.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 889dbc174933895ad28c38bec47e2794a5957ef0 Author: Fabian Frederick Date: Mon May 18 19:31:04 2015 +0200 video: fbdev: matrox: use swap() in matroxfb_decode_var() Use kernel.h macro definition. Signed-off-by: Fabian Frederick Signed-off-by: Tomi Valkeinen drivers/video/fbdev/matrox/matroxfb_base.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit 5e47932be81e860d317498363c13153e7df37625 Author: Thomas Niederprüm Date: Mon May 25 21:29:21 2015 +0200 fbdev: ssd1307fb: fix logical error The logical not needs to be done after the bit masking. Fixes: a3998fe03e87 ("fbdev: ssd1307fb: Unify init code and obtain hw specific bits from DT") Signed-off-by: Thomas Niederprüm Reported-by: Dan Carpenter Signed-off-by: Tomi Valkeinen drivers/video/fbdev/ssd1307fb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ee62eddb1a80e86ccbbbff5a8ecf4c2a2ccf95c9 Author: Arnd Bergmann Date: Fri May 22 16:22:16 2015 +0200 video: omap/h3: fix tps65010 dependency The h3 LCD driver fails to link when tps65010 is configured as a loadable module: drivers/built-in.o: In function `h3_panel_disable': debugfs.c:(.text+0x206ac): undefined reference to `tps65010_set_gpio_out_value' debugfs.c:(.text+0x206cc): undefined reference to `tps65010_set_gpio_out_value' drivers/built-in.o: In function `h3_panel_enable': debugfs.c:(.text+0x206e0): undefined reference to `tps65010_set_gpio_out_value' debugfs.c:(.text+0x20704): undefined reference to `tps65010_set_gpio_out_value' This clarifies the dependency so we can only select it if the dependnecy is built-in. Signed-off-by: Arnd Bergmann Signed-off-by: Tomi Valkeinen drivers/video/fbdev/omap/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c2b00024bc6f3408b0facc87227383e633131900 Author: Dan Carpenter Date: Sat May 23 20:32:35 2015 +0300 fbdev: ssd1307fb: potential ERR_PTR dereference The error handling got shifted down a few lines from where it was supposed to be for some reason. Fixes: a14a7ba8cb0f ('fbdev: ssd1307fb: add backlight controls for setting the contrast') Signed-off-by: Dan Carpenter Acked-by: Maxime Ripard Signed-off-by: Tomi Valkeinen drivers/video/fbdev/ssd1307fb.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 550e768c2a9932e037f2148ecddecd8a5ee0f26e Author: Thomas Niederprüm Date: Tue Mar 31 20:27:16 2015 +0200 fbdev: ssd1307fb: Add blank mode This patch adds ssd1307fb_blank() to make the framebuffer capable of blanking. Signed-off-by: Thomas Niederprüm Signed-off-by: Tomi Valkeinen drivers/video/fbdev/ssd1307fb.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 6ed5e2db52b1e27a70241ef8749780f6f5d553bf Author: Thomas Niederprüm Date: Tue Mar 31 20:27:15 2015 +0200 fbdev: ssd1307fb: add backlight controls for setting the contrast The backlight class is used to create userspace handles for setting the OLED contrast. Signed-off-by: Thomas Niederprüm Acked-by: Maxime Ripard Signed-off-by: Tomi Valkeinen drivers/video/fbdev/Kconfig | 1 + drivers/video/fbdev/ssd1307fb.c | 58 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+) commit 13bad59730c31e876588977534b6b6a46ce876ae Author: Thomas Niederprüm Date: Tue Mar 31 20:27:14 2015 +0200 fbdev: ssd1307fb: Turn off display on driver unload. This patch turns off the display when the driver is unloaded. Signed-off-by: Thomas Niederprüm Acked-by: Maxime Ripard Signed-off-by: Tomi Valkeinen drivers/video/fbdev/ssd1307fb.c | 2 ++ 1 file changed, 2 insertions(+) commit 3277e0bb8fc737174bd5e2fae5598b1595cfcdbe Author: Thomas Niederprüm Date: Tue Mar 31 20:27:13 2015 +0200 fbdev: ssd1307fb: Add a module parameter to set the refresh rate This patch adds the module parameter "refreshrate" to set delay for the deferred io. The refresh rate is given in units of Hertz. The default refresh rate is 1 Hz. The refresh rate set through the newly introduced parameter applies to all instances of the driver and for now it is not possible to change it individually. Signed-off-by: Thomas Niederprüm Acked-by: Maxime Ripard Signed-off-by: Tomi Valkeinen drivers/video/fbdev/ssd1307fb.c | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) commit 5f2d36b3cf629ae1d70ee8476599ff53f0d1d1f1 Author: Thomas Niederprüm Date: Tue Mar 31 20:27:12 2015 +0200 fbdev: ssd1307fb: Add support for SSD1305 This patch adds support for the SSD1305 OLED controller. Signed-off-by: Thomas Niederprüm Acked-by: Maxime Ripard Signed-off-by: Tomi Valkeinen Documentation/devicetree/bindings/video/ssd1307fb.txt | 2 +- drivers/video/fbdev/ssd1307fb.c | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) commit 2040085143c524cde071b3553698915cb3978ea8 Author: Thomas Niederprüm Date: Tue Mar 31 20:27:11 2015 +0200 ARM: mxs: fix in tree users of ssd1306 This patch updates the in tree-users of the SSD1306 controller for using the newly introduced DT properties. Signed-off-by: Thomas Niederprüm Acked-by: Shawn Guo Signed-off-by: Tomi Valkeinen arch/arm/boot/dts/imx28-cfa10036.dts | 3 +++ 1 file changed, 3 insertions(+) commit c89eacfc700675912b53df770953c30930c2554f Author: Thomas Niederprüm Date: Tue Mar 31 20:27:10 2015 +0200 fbdev: ssd1307fb: Unify init code and obtain hw specific bits from DT The 130X controllers are very similar from the configuration point of view. The configuration registers for the SSD1305/6/7 are bit identical (except the the VHCOM register and the the default values for clock setup register). This patch unifies the init code of the controller and adds hardware specific properties to DT that are needed to correctly initialize the device. The SSD130X can be wired to the OLED panel in various ways. Even for the same controller this wiring can differ from one display module to another and can not be probed by software. The added DT properties reflect these hardware decisions of the display module manufacturer. The 'com-sequential', 'com-lrremap' and 'com-invdir' values define different possibilities for the COM signals pin configuration and readout direction of the video memory. The 'segment-no-remap' allows the inversion of the memory-to-pin mapping ultimately inverting the order of the controllers output pins. The 'prechargepX' values need to be adapted according to the capacitance of the OLEDs pixel cells. So far these hardware specific bits are hard coded in the init code, making the driver usable only for one certain wiring of the controller. This patch makes the driver usable with all possible hardware setups, given a valid hw description in DT. If these values are not set in DT the default values, as they are set in the ssd1307 init code right now, are used. This implies that without the corresponding DT property "segment-no-remap" the segment remap of the ssd130X controller gets activated. Even though this is not the default behaviour according to the datasheet it maintains backward compatibility with older DTBs. Note that the SSD1306 does not seem to be using the configuration written to the registers at all. Therefore this patch does not try to maintain these values without changes in DT. For reference an example is added to the DT bindings documentation that reproduces the configuration that is set in the current init code. Signed-off-by: Thomas Niederprüm Tested-by: Olliver Schinagl Acked-by: Maxime Ripard Signed-off-by: Tomi Valkeinen .../devicetree/bindings/video/ssd1307fb.txt | 21 +++ drivers/video/fbdev/ssd1307fb.c | 177 ++++++++++++--------- 2 files changed, 125 insertions(+), 73 deletions(-) commit 7133fb51db0ace5c7563d0169ef1c91f81dc85b7 Author: Thomas Niederprüm Date: Tue Mar 31 20:27:09 2015 +0200 of: Add Solomon Systech vendor prefix. This patch adds the solomon prefix for Solomon Systech Limited. Signed-off-by: Thomas Niederprüm Acked-by: Rob Herring Signed-off-by: Tomi Valkeinen Documentation/devicetree/bindings/vendor-prefixes.txt | 1 + 1 file changed, 1 insertion(+) commit facd94bc458af12e1ebab06cfc3b8e7a41906622 Author: Thomas Niederprüm Date: Tue Mar 31 20:27:08 2015 +0200 fbdev: ssd1307fb: Allocate page aligned video memory. Currently the videomemory is allocated by kmalloc, making it a memory region that is not necessarily page aligend. This leads to problems upon mmap call, where the video memory's address gets aligned to the next page boundary. The result is that the userspace program that issued the mmap call is not able to access the video memory from the start to the next page boundary. This patch changes the allocation of the video memory to use __get_free_pages() in order to obtain memory that is aligned to page boundaries. Signed-off-by: Thomas Niederprüm Acked-by: Maxime Ripard Signed-off-by: Tomi Valkeinen drivers/video/fbdev/ssd1307fb.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 258c0ea21d3aa974b43e5ce6c2f7c94553a3b1cc Author: Thomas Niederprüm Date: Tue Mar 31 20:27:07 2015 +0200 fbdev: ssd1307fb: fix memory address smem_start. the smem_start pointer of the framebuffer info struct needs to hold the physical address rather than the logical address. Right now the logical address returned by kmalloc is stored. This patch converts this address to a physical address and thus fixes a driver crash on mmaping the framebuffer memory due to an access to the wrong memory address. Signed-off-by: Thomas Niederprüm Acked-by: Maxime Ripard Signed-off-by: Tomi Valkeinen drivers/video/fbdev/ssd1307fb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d725332208ef13241fc435eece790c9d0ea16a4e Author: Tom Lendacky Date: Tue May 26 13:06:30 2015 -0500 crypto: ccp - Remove unused structure field Remove the length field from the ccp_sg_workarea since it is unused. Signed-off-by: Tom Lendacky Signed-off-by: Herbert Xu drivers/crypto/ccp/ccp-ops.c | 2 -- 1 file changed, 2 deletions(-) commit d921620e03c58bd83c4b345e36a104988d697f0d Author: Tom Lendacky Date: Tue May 26 13:06:24 2015 -0500 crypto: ccp - Remove manual check and set of dma_mask pointer The underlying device support will set the device dma_mask pointer if DMA is set up properly for the device. Remove the check for and assignment of dma_mask when it is null. Instead, just error out if the dma_set_mask_and_coherent function fails because dma_mask is null. Signed-off-by: Tom Lendacky Signed-off-by: Herbert Xu drivers/crypto/ccp/ccp-platform.c | 2 -- 1 file changed, 2 deletions(-) commit bb5530e4082446aac3a3d69780cd4dbfa4520013 Author: Stephan Mueller Date: Mon May 25 15:10:20 2015 +0200 crypto: jitterentropy - add jitterentropy RNG The CPU Jitter RNG provides a source of good entropy by collecting CPU executing time jitter. The entropy in the CPU execution time jitter is magnified by the CPU Jitter Random Number Generator. The CPU Jitter Random Number Generator uses the CPU execution timing jitter to generate a bit stream which complies with different statistical measurements that determine the bit stream is random. The CPU Jitter Random Number Generator delivers entropy which follows information theoretical requirements. Based on these studies and the implementation, the caller can assume that one bit of data extracted from the CPU Jitter Random Number Generator holds one bit of entropy. The CPU Jitter Random Number Generator provides a decentralized source of entropy, i.e. every caller can operate on a private state of the entropy pool. The RNG does not have any dependencies on any other service in the kernel. The RNG only needs a high-resolution time stamp. Further design details, the cryptographic assessment and large array of test results are documented at http://www.chronox.de/jent.html. CC: Andreas Steffen CC: Theodore Ts'o CC: Sandy Harris Signed-off-by: Stephan Mueller Signed-off-by: Herbert Xu crypto/Kconfig | 10 + crypto/Makefile | 2 + crypto/jitterentropy.c | 909 +++++++++++++++++++++++++++++++++++++++++++++++++ crypto/testmgr.c | 4 + 4 files changed, 925 insertions(+) commit b8ec5ba42c4a3854e27c44e697d9b4f0b84b32bb Author: Stephan Mueller Date: Mon May 25 15:09:59 2015 +0200 crypto: drbg - use Jitter RNG to obtain seed During initialization, the DRBG now tries to allocate a handle of the Jitter RNG. If such a Jitter RNG is available during seeding, the DRBG pulls the required entropy/nonce string from get_random_bytes and concatenates it with a string of equal size from the Jitter RNG. That combined string is now the seed for the DRBG. Written differently, the initial seed of the DRBG is now: get_random_bytes(entropy/nonce) || jitterentropy (entropy/nonce) If the Jitter RNG is not available, the DRBG only seeds from get_random_bytes. CC: Andreas Steffen CC: Theodore Ts'o CC: Sandy Harris Signed-off-by: Stephan Mueller Signed-off-by: Herbert Xu crypto/drbg.c | 52 ++++++++++++++++++++++++++++++++++++++++++++------- include/crypto/drbg.h | 1 + 2 files changed, 46 insertions(+), 7 deletions(-) commit 4c7879907eddd5b3ec09489bc980aab4f44e38dd Author: Stephan Mueller Date: Mon May 25 15:09:36 2015 +0200 crypto: drbg - add async seeding operation The async seeding operation is triggered during initalization right after the first non-blocking seeding is completed. As required by the asynchronous operation of random.c, a callback function is provided that is triggered by random.c once entropy is available. That callback function performs the actual seeding of the DRBG. CC: Andreas Steffen CC: Theodore Ts'o CC: Sandy Harris Signed-off-by: Stephan Mueller Signed-off-by: Herbert Xu crypto/drbg.c | 24 ++++++++++++++++++++++++ include/crypto/drbg.h | 2 ++ 2 files changed, 26 insertions(+) commit 3d6a5f75d1340539dcdcec4609761fa4b836a1f2 Author: Stephan Mueller Date: Mon May 25 15:09:14 2015 +0200 crypto: drbg - prepare for async seeding In order to prepare for the addition of the asynchronous seeding call, the invocation of seeding the DRBG is moved out into a helper function. In addition, a block of memory is allocated during initialization time that will be used as a scratchpad for obtaining entropy. That scratchpad is used for the initial seeding operation as well as by the asynchronous seeding call. The memory must be zeroized every time the DRBG seeding call succeeds to avoid entropy data lingering in memory. CC: Andreas Steffen CC: Theodore Ts'o CC: Sandy Harris Signed-off-by: Stephan Mueller Signed-off-by: Herbert Xu crypto/drbg.c | 81 ++++++++++++++++++++++++++++++++++----------------- include/crypto/drbg.h | 2 ++ 2 files changed, 56 insertions(+), 27 deletions(-) commit 16b369a91d0dd80be214b7f7801fbc51875454cc Author: Stephan Mueller Date: Mon May 25 15:08:47 2015 +0200 random: Blocking API for accessing nonblocking_pool The added API calls provide a synchronous function call get_blocking_random_bytes where the caller is blocked until the nonblocking_pool is initialized. CC: Andreas Steffen CC: Theodore Ts'o CC: Sandy Harris Signed-off-by: Stephan Mueller Signed-off-by: Herbert Xu drivers/char/random.c | 12 ++++++++++++ include/linux/random.h | 1 + 2 files changed, 13 insertions(+) commit 1d9de44e268d880cbe2d0bd3be1ef0661f93fd34 Author: Herbert Xu Date: Thu May 21 16:19:54 2015 +0800 random: Wake up all getrandom(2) callers when pool is ready If more than one application invokes getrandom(2) before the pool is ready, then all bar one will be stuck forever because we use wake_up_interruptible which wakes up a single task. This patch replaces it with wake_up_all. Signed-off-by: Herbert Xu drivers/char/random.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a82d24edfeaf1ed244cf8b969916840c6feb5165 Author: Alexander Shishkin Date: Fri May 22 18:30:26 2015 +0300 perf/x86/intel/pt: Remove redundant variable declaration There is a 'pt' variable in the outer scope of pt_event_stop() with the same type, we don't really need another one in the inner scope. This patch removes the redundant variable declaration. Signed-off-by: Alexander Shishkin Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Paul Mackerras 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/1432308626-18845-8-git-send-email-alexander.shishkin@linux.intel.com Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel_pt.c | 1 - 1 file changed, 1 deletion(-) commit 0a487aad2dfd088bcbbe1766944280b40ff969a5 Author: Alexander Shishkin Date: Tue Apr 21 16:16:17 2015 +0300 perf/x86/intel/pt: Kill pt_is_running() Initially, we were trying to guard against scenarios where somebody attaches to the system with a hardware debugger while PT is enabled from software and pt_is_running() tries to make sure we handle this better, but the truth is, there is still a race window no matter what and people with hardware debuggers should really know what they are doing anyway. In other words, there is no point in keeping this one around, and it's one RDMSR instructions fewer in the fast path. The case when PT is enabled by the BIOS at boot time is handled in the driver initialization path and doesn't use pt_is_running(). This patch gets rid of it. Signed-off-by: Alexander Shishkin Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Paul Mackerras 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/1429622177-22843-6-git-send-email-alexander.shishkin@linux.intel.com Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel_pt.c | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) commit 5b1dbd17c0dee679b154ce47f534677b7e0f7ad6 Author: Alexander Shishkin Date: Tue Apr 21 16:16:16 2015 +0300 perf/x86/intel/pt: Document pt_buffer_reset_offsets() Currently, the description of pt_buffer_reset_offsets() lacks information about its calling constraints and ordering with regards to other buffer management functions. Add a clarification about when this function has to be called. Signed-off-by: Alexander Shishkin Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Paul Mackerras 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/1429622177-22843-5-git-send-email-alexander.shishkin@linux.intel.com Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel_pt.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit cf302bfdf3039853fce812ae1ffd0ac24f5b468f Author: Alexander Shishkin Date: Tue Apr 21 16:16:15 2015 +0300 perf/x86/intel/pt: Document pt_buffer_reset_markers() The comments in the driver don't make it absolutely clear as to what exactly is the calling order and other possible constraints of buffer management functions. Document constraints and calling order for the buffer configuration functions. While at it, replace a redundant check in pt_buffer_reset_markers() with an explanation why it is not needed. Signed-off-by: Alexander Shishkin Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Paul Mackerras 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/1429622177-22843-4-git-send-email-alexander.shishkin@linux.intel.com Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel_pt.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit 74387bcb711b7b2ed65c0ed08953e13d4e31969e Author: Alexander Shishkin Date: Tue Apr 21 16:16:13 2015 +0300 perf/x86/intel/pt: Kill an unused variable Currently, there's a set-but-not-used variable in setup_topa_index(); this patch gets rid of it. And while at it, fixes a style issue with brackets around a one-line block. Signed-off-by: Alexander Shishkin Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Paul Mackerras 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/1429622177-22843-2-git-send-email-alexander.shishkin@linux.intel.com Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel_pt.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit ba040653b48d32afa8b6c3331eae97c6bbb66f03 Author: Peter Zijlstra Date: Fri May 22 11:36:13 2015 +0200 perf/x86/intel: Simplify put_exclusive_constraints() Don't bother with taking locks if we're not actually going to do anything. Also, drop the _irqsave(), this is very much only called from IRQ-disabled context. Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel.c | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) commit 8736e548db0f48244132bc36331496494625bbaf Author: Peter Zijlstra Date: Thu May 21 10:57:43 2015 +0200 perf/x86: Simplify the x86_schedule_events() logic !x && y == ! (x || !y) Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 43ef205bded025432f5eeeb3503c11fe5cd1913e Author: Peter Zijlstra Date: Thu May 21 10:57:39 2015 +0200 perf/x86/intel: Remove intel_excl_states::init_state For some obscure reason intel_{start,stop}_scheduling() copy the HT state to an intermediate array. This would make sense if we ever were to make changes to it which we'd have to discard. Except we don't. By the time we call intel_commit_scheduling() we're; as the name implies; committed to them. We'll never back out. A further hint its pointless is that stop_scheduling() unconditionally publishes the state. So the intermediate array is pointless, modify the state in place and kill the extra array. And remove the pointless array initialization: INTEL_EXCL_UNUSED == 0. Note; all is serialized by intel_excl_cntr::lock. Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event.c | 1 - arch/x86/kernel/cpu/perf_event.h | 1 - arch/x86/kernel/cpu/perf_event_intel.c | 22 ++-------------------- 3 files changed, 2 insertions(+), 22 deletions(-) commit 1fe684e349e904adeed2883cfdeef259a21c94f4 Author: Peter Zijlstra Date: Thu May 21 10:57:36 2015 +0200 perf/x86/intel: Remove pointless tests Both intel_commit_scheduling() and intel_get_excl_contraints() test for cntr < 0. The only way that can happen (aside from a bug) is through validate_event(), however that is already captured by the cpuc->is_fake test. So remove these test and simplify the code. Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) commit 0c41e756b9c5a9899b5cd238226600f8f34c9b82 Author: Peter Zijlstra Date: Thu May 21 10:57:32 2015 +0200 perf/x86/intel: Clean up intel_commit_scheduling() placement Move the code of intel_commit_scheduling() to the right place, which is in between start() and stop(). No change in functionality. Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event.h | 4 +-- arch/x86/kernel/cpu/perf_event_intel.c | 60 +++++++++++++++++----------------- 2 files changed, 32 insertions(+), 32 deletions(-) commit 17186ccda374ae02ef231cbbc8f1825e7c19ddbd Author: Peter Zijlstra Date: Thu May 21 10:57:28 2015 +0200 perf/x86/intel: Make WARN()ings consistent The intel_commit_scheduling() callback is pointlessly different from the start and stop scheduling callback. Furthermore, the constraint should never be NULL, so remove that test. Even though we'll never get called (because we NULL the callbacks) when !is_ht_workaround_enabled() put that test in. Collapse the (pointless) WARN_ON_ONCE() and bail on !cpuc->excl_cntrs -- this is doubly pointless, because its the same condition as is_ht_workaround_enabled() which was already pointless because the whole method won't ever be called. Furthremore, make all the !excl_cntrs test WARN_ON_ONCE(); they're all pointless, because the above, either the function ({get,put}_excl_constraint) are already predicated on it existing or the is_ht_workaround_enabled() thing is the same test. Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel.c | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) commit aaf932e8161e45291cc85085b6d850f1bbdf53c8 Author: Peter Zijlstra Date: Thu May 21 10:57:24 2015 +0200 perf/x86/intel: Simplify the dynamic constraint code somewhat We have two 'struct event_constraint' local variables in intel_get_excl_constraints(): 'cx' and 'c'. Instead of using 'cx' after the dynamic allocation, put all 'cx' inside the dynamic allocation block and use 'c' outside of it. Also use direct assignment to copy the structure; let the compiler figure it out. Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) commit b32ed7f5de262b10633bb6c6dbb7f8ba46598cf4 Author: Peter Zijlstra Date: Thu May 21 12:38:21 2015 +0200 perf/x86/intel: Add lockdep assert Lockdep is very good at finding incorrect IRQ state while locking and is far better at telling us if we hold a lock than the _is_locked() API. It also generates less code for !DEBUG kernels. Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 1c565833ac7950a5ddb3322e9848e0628ceba3b5 Author: Peter Zijlstra Date: Thu May 21 10:57:21 2015 +0200 perf/x86/intel: Correct local vs remote sibling state For some obscure reason the current code accounts the current SMT thread's state on the remote thread and reads the remote's state on the local SMT thread. While internally consistent, and 'correct' its pointless confusion we can do without. Flip them the right way around. Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel.c | 79 ++++++++++++++-------------------- 1 file changed, 33 insertions(+), 46 deletions(-) commit adafa99960ef18b019f001ddee4d9d81c4e25944 Author: Matt Fleming Date: Fri May 22 09:59:42 2015 +0100 perf/x86/intel/cqm: Use 'u32' data type for RMIDs Since we write RMID values to MSRs the correct type to use is 'u32' because that clearly articulates we're writing a hardware register value. Fix up all uses of RMID in this code to consistently use the correct data type. Reported-by: Thomas Gleixner Signed-off-by: Matt Fleming Signed-off-by: Peter Zijlstra (Intel) Acked-by: Thomas Gleixner Cc: Kanaka Juvva Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Vikas Shivappa Cc: Will Auld Link: http://lkml.kernel.org/r/1432285182-17180-1-git-send-email-matt@codeblueprint.co.uk Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel_cqm.c | 37 +++++++++++++++--------------- 1 file changed, 18 insertions(+), 19 deletions(-) commit bf926731e1585ccad029ca2fad1444fee082b78d Author: Thomas Gleixner Date: Tue May 19 00:00:58 2015 +0000 perf/x86/intel/cqm: Add storage for 'closid' and clean up 'struct intel_pqr_state' 'closid' (CLass Of Service ID) is used for the Class based Cache Allocation Technology (CAT). Add explicit storage to the per cpu cache for it, so it can be used later with the CAT support (requires to move the per cpu data). While at it: - Rename the structure to intel_pqr_state which reflects the actual purpose of the struct: cache values which go into the PQR MSR - Rename 'cnt' to rmid_usecnt which reflects the actual purpose of the counter. - Document the structure and the struct members. Signed-off-by: Thomas Gleixner Signed-off-by: Peter Zijlstra (Intel) Acked-by: Matt Fleming Cc: Kanaka Juvva Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Vikas Shivappa Cc: Will Auld Link: http://lkml.kernel.org/r/20150518235150.240899319@linutronix.de Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel_cqm.c | 50 ++++++++++++++++-------------- 1 file changed, 27 insertions(+), 23 deletions(-) commit 43d0c2f6dcd07ffc0de658a7fbeeb63c806e9caa Author: Thomas Gleixner Date: Tue May 19 00:00:56 2015 +0000 perf/x86/intel/cqm: Remove useless wrapper function intel_cqm_event_del() is a 1:1 wrapper for intel_cqm_event_stop(). Remove the useless indirection. Signed-off-by: Thomas Gleixner Signed-off-by: Peter Zijlstra (Intel) Acked-by: Matt Fleming Cc: Kanaka Juvva Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Vikas Shivappa Cc: Will Auld Link: http://lkml.kernel.org/r/20150518235150.159779847@linutronix.de Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel_cqm.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) commit 0bac237845e203dd1439cfc571b1baf1b2274b3b Author: Thomas Gleixner Date: Tue May 19 00:00:55 2015 +0000 perf/x86/intel/cqm: Avoid pointless MSR write If the usage counter is non-zero there is no point to update the rmid in the PQR MSR. Signed-off-by: Thomas Gleixner Signed-off-by: Peter Zijlstra (Intel) Acked-by: Matt Fleming Cc: Kanaka Juvva Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Vikas Shivappa Cc: Will Auld Link: http://lkml.kernel.org/r/20150518235150.080844281@linutronix.de Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel_cqm.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 9e7eaac95af6c1aecaf558b8c7a1757d5f2d2ad7 Author: Thomas Gleixner Date: Tue May 19 00:00:53 2015 +0000 perf/x86/intel/cqm: Remove pointless spinlock from state cache 'struct intel_cqm_state' is a strict per CPU cache of the rmid and the usage counter. It can never be modified from a remote CPU. The three functions which modify the content: intel_cqm_event[start|stop|del] (del maps to stop) are called from the perf core with interrupts disabled which is enough protection for the per CPU state values. Signed-off-by: Thomas Gleixner Signed-off-by: Peter Zijlstra (Intel) Acked-by: Matt Fleming Cc: Kanaka Juvva Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Vikas Shivappa Cc: Will Auld Link: http://lkml.kernel.org/r/20150518235150.001006529@linutronix.de Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel_cqm.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) commit b3df4ec4424f27e55d754cfe586195fecca1c4e4 Author: Thomas Gleixner Date: Tue May 19 00:00:51 2015 +0000 perf/x86/intel/cqm: Use proper data types 'int' is really not a proper data type for an MSR. Use u32 to make it clear that we are dealing with a 32-bit unsigned hardware value. Signed-off-by: Thomas Gleixner Signed-off-by: Peter Zijlstra (Intel) Acked-by: Matt Fleming Cc: Kanaka Juvva Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Vikas Shivappa Cc: Will Auld Link: http://lkml.kernel.org/r/20150518235149.919350144@linutronix.de Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel_cqm.c | 4 ++-- include/linux/perf_event.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit f4d9757ca6f5a2db6919a5b1ab86b8afa16773d0 Author: Thomas Gleixner Date: Tue May 19 00:00:50 2015 +0000 perf/x86/intel/cqm: Document PQR MSR abuse The CQM code acts like it owns the PQR MSR completely. That's not true because only the lower 10 bits are used for CQM. The upper 32 bits are used for the 'CLass Of Service ID' (CLOSID). Document the abuse. Will be fixed in a later patch. Signed-off-by: Thomas Gleixner Signed-off-by: Peter Zijlstra (Intel) Acked-by: Matt Fleming Cc: Kanaka Juvva Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Vikas Shivappa Cc: Will Auld Link: http://lkml.kernel.org/r/20150518235149.823214798@linutronix.de Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel_cqm.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) commit 8d12ded3dd499e38e8022fe3ec53920d085e57a3 Merge: d499c10 68ab747 Author: Ingo Molnar Date: Wed May 27 09:17:21 2015 +0200 Merge branch 'perf/urgent' into perf/core, before applying dependent patches Signed-off-by: Ingo Molnar commit 8c0ce7705ee6ad5a98a715a6b8f0766433cb8388 Merge: ffa915d 32a6416 Author: David S. Miller Date: Wed May 27 00:27:36 2015 -0400 Merge branch 'phy_rgmii' Florian Fainelli says: ==================== net: phy: phy_interface_is_rgmii helper As you suggested, here is the helper function to avoid missing some RGMII interface checks. Had to wait for net to be merged in net-next to avoid submitting the same patch/commit. Dan, you might want to rebase your dp83867 submission to use that helper when you this patchset gets merged into net-next, thanks! ==================== Signed-off-by: David S. Miller commit 32a641615a11f769a0c1092a47ce00ced9665e66 Author: Florian Fainelli Date: Tue May 26 12:19:59 2015 -0700 net: phy: Utilize phy_interface_is_rgmii Update all open-coded tests for all 4 PHY_INTERFACE_MODE_RGMII* values to use the newly introduced helper: phy_interface_is_rgmii. Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/phy/icplus.c | 5 +---- drivers/net/phy/marvell.c | 10 ++-------- drivers/net/phy/phy.c | 3 +-- 3 files changed, 4 insertions(+), 14 deletions(-) commit e463d88c36d42211aa72ed76d32fb8bf37820ef1 Author: Florian Fainelli Date: Tue May 26 12:19:58 2015 -0700 net: phy: Add phy_interface_is_rgmii helper RGMII interfaces come in 4 different flavors that the PHY library needs to care about: regular RGMII (no delays), RGMII with either RX or TX delay, and both. In order to avoid errors of checking only for one type of RGMII interface and miss the 3 others, introduce a convenience function which tests for all values. Suggested-by: David S. Miller Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller include/linux/phy.h | 11 +++++++++++ 1 file changed, 11 insertions(+) commit ffa915d071ce4a05dcd866409df26513d25786f8 Author: David S. Miller Date: Wed May 27 00:19:03 2015 -0400 ipv4: Fix fib_trie.c build, missing linux/vmalloc.h include. We used to get this indirectly I supposed, but no longer do. Either way, an explicit include should have been done in the first place. net/ipv4/fib_trie.c: In function '__node_free_rcu': >> net/ipv4/fib_trie.c:293:3: error: implicit declaration of function 'vfree' [-Werror=implicit-function-declaration] vfree(n); ^ net/ipv4/fib_trie.c: In function 'tnode_alloc': >> net/ipv4/fib_trie.c:312:3: error: implicit declaration of function 'vzalloc' [-Werror=implicit-function-declaration] return vzalloc(size); ^ >> net/ipv4/fib_trie.c:312:3: warning: return makes pointer from integer without a cast cc1: some warnings being treated as errors Reported-by: kbuild test robot Signed-off-by: David S. Miller net/ipv4/fib_trie.c | 1 + 1 file changed, 1 insertion(+) commit d6a4e26afb80c049e7f94e1b7b506dcda61eee88 Author: Eric Dumazet Date: Tue May 26 08:55:28 2015 -0700 tcp: tcp_tso_autosize() minimum is one packet By making sure sk->sk_gso_max_segs minimal value is one, and sysctl_tcp_min_tso_segs minimal value is one as well, tcp_tso_autosize() will return a non zero value. We can then revert 843925f33fcc293d80acf2c5c8a78adf3344d49b ("tcp: Do not apply TSO segment limit to non-TSO packets") and save few cpu cycles in fast path. Signed-off-by: Eric Dumazet Cc: Neal Cardwell Cc: Herbert Xu Acked-by: Neal Cardwell Acked-by: Herbert Xu Signed-off-by: David S. Miller net/core/sock.c | 5 ++++- net/ipv4/sysctl_net_ipv4.c | 2 +- net/ipv4/tcp_output.c | 4 ++-- 3 files changed, 7 insertions(+), 4 deletions(-) commit bed831f9a251968272dae10a83b512c7db256ef0 Author: Peter Zijlstra Date: Wed May 27 11:09:35 2015 +0930 module, jump_label: Fix module locking As per the module core lockdep annotations in the coming patch: [ 18.034047] ---[ end trace 9294429076a9c673 ]--- [ 18.047760] Hardware name: Intel Corporation S2600GZ/S2600GZ, BIOS SE5C600.86B.02.02.0002.122320131210 12/23/2013 [ 18.059228] ffffffff817d8676 ffff880036683c38 ffffffff8157e98b 0000000000000001 [ 18.067541] 0000000000000000 ffff880036683c78 ffffffff8105fbc7 ffff880036683c68 [ 18.075851] ffffffffa0046b08 0000000000000000 ffffffffa0046d00 ffffffffa0046cc8 [ 18.084173] Call Trace: [ 18.086906] [] dump_stack+0x4f/0x7b [ 18.092649] [] warn_slowpath_common+0x97/0xe0 [ 18.099361] [] warn_slowpath_null+0x1a/0x20 [ 18.105880] [] __module_address+0x1d2/0x1e0 [ 18.112400] [] jump_label_module_notify+0x143/0x1e0 [ 18.119710] [] notifier_call_chain+0x4f/0x70 [ 18.126326] [] __blocking_notifier_call_chain+0x5e/0x90 [ 18.134009] [] blocking_notifier_call_chain+0x16/0x20 [ 18.141490] [] load_module+0x1b50/0x2660 [ 18.147720] [] SyS_init_module+0xce/0x100 [ 18.154045] [] system_call_fastpath+0x12/0x17 [ 18.160748] ---[ end trace 9294429076a9c674 ]--- Jump labels is not doing it right; fix this. Cc: Rusty Russell Cc: Jason Baron Acked-by: Paul E. McKenney Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Rusty Russell kernel/jump_label.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit 926a59b1dfe2580e1a00bb2ba1664e5472077cbd Author: Peter Zijlstra Date: Wed May 27 11:09:35 2015 +0930 module: Annotate module version magic Due to the new lockdep checks in the coming patch, we go: [ 9.759380] ------------[ cut here ]------------ [ 9.759389] WARNING: CPU: 31 PID: 597 at ../kernel/module.c:216 each_symbol_section+0x121/0x130() [ 9.759391] Modules linked in: [ 9.759393] CPU: 31 PID: 597 Comm: modprobe Not tainted 4.0.0-rc1+ #65 [ 9.759393] Hardware name: Intel Corporation S2600GZ/S2600GZ, BIOS SE5C600.86B.02.02.0002.122320131210 12/23/2013 [ 9.759396] ffffffff817d8676 ffff880424567ca8 ffffffff8157e98b 0000000000000001 [ 9.759398] 0000000000000000 ffff880424567ce8 ffffffff8105fbc7 ffff880424567cd8 [ 9.759400] 0000000000000000 ffffffff810ec160 ffff880424567d40 0000000000000000 [ 9.759400] Call Trace: [ 9.759407] [] dump_stack+0x4f/0x7b [ 9.759410] [] warn_slowpath_common+0x97/0xe0 [ 9.759412] [] ? section_objs+0x60/0x60 [ 9.759414] [] warn_slowpath_null+0x1a/0x20 [ 9.759415] [] each_symbol_section+0x121/0x130 [ 9.759417] [] find_symbol+0x31/0x70 [ 9.759420] [] load_module+0x20f/0x2660 [ 9.759422] [] ? __do_page_fault+0x190/0x4e0 [ 9.759426] [] ? retint_restore_args+0x13/0x13 [ 9.759427] [] ? retint_restore_args+0x13/0x13 [ 9.759433] [] ? trace_hardirqs_on_caller+0x11d/0x1e0 [ 9.759437] [] ? trace_hardirqs_on_thunk+0x3a/0x3f [ 9.759439] [] ? retint_restore_args+0x13/0x13 [ 9.759441] [] SyS_init_module+0xce/0x100 [ 9.759443] [] system_call_fastpath+0x12/0x17 [ 9.759445] ---[ end trace 9294429076a9c644 ]--- As per the comment this site should be fine, but lets wrap it in preempt_disable() anyhow to placate lockdep. Cc: Rusty Russell Acked-by: Paul E. McKenney Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Rusty Russell kernel/module.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit b5ba75b5fc0e8404e2c50cb68f39bb6a53fc916f Author: Tejun Heo Date: Wed May 13 16:35:18 2015 -0400 cgroup: simplify threadgroup locking Now that threadgroup locking is made global, code paths around it can be simplified. * lock-verify-unlock-retry dancing removed from __cgroup_procs_write(). * Race protection against de_thread() removed from cgroup_update_dfl_csses(). Signed-off-by: Tejun Heo kernel/cgroup.c | 48 +++++++++++++----------------------------------- 1 file changed, 13 insertions(+), 35 deletions(-) commit d59cfc09c32a2ae31f1c3bc2983a0cd79afb3f14 Author: Tejun Heo Date: Wed May 13 16:35:17 2015 -0400 sched, cgroup: replace signal_struct->group_rwsem with a global percpu_rwsem The cgroup side of threadgroup locking uses signal_struct->group_rwsem to synchronize against threadgroup changes. This per-process rwsem adds small overhead to thread creation, exit and exec paths, forces cgroup code paths to do lock-verify-unlock-retry dance in a couple places and makes it impossible to atomically perform operations across multiple processes. This patch replaces signal_struct->group_rwsem with a global percpu_rwsem cgroup_threadgroup_rwsem which is cheaper on the reader side and contained in cgroups proper. This patch converts one-to-one. This does make writer side heavier and lower the granularity; however, cgroup process migration is a fairly cold path, we do want to optimize thread operations over it and cgroup migration operations don't take enough time for the lower granularity to matter. Signed-off-by: Tejun Heo Cc: Ingo Molnar Cc: Peter Zijlstra include/linux/cgroup-defs.h | 27 ++++++++++++++-- include/linux/init_task.h | 8 ----- include/linux/sched.h | 12 ------- init/Kconfig | 1 + kernel/cgroup.c | 77 ++++++++++++--------------------------------- kernel/fork.c | 4 --- 6 files changed, 46 insertions(+), 83 deletions(-) commit 7d7efec368d537226142cbe559f45797f18672f9 Author: Tejun Heo Date: Wed May 13 16:35:16 2015 -0400 sched, cgroup: reorganize threadgroup locking threadgroup_change_begin/end() are used to mark the beginning and end of threadgroup modifying operations to allow code paths which require a threadgroup to stay stable across blocking operations to synchronize against those sections using threadgroup_lock/unlock(). It's currently implemented as a general mechanism in sched.h using per-signal_struct rwsem; however, this never grew non-cgroup use cases and becomes noop if !CONFIG_CGROUPS. It turns out that cgroups is gonna be better served with a different sycnrhonization scheme and is a bit silly to keep cgroups specific details as a general mechanism. What's general here is identifying the places where threadgroups are modified. This patch restructures threadgroup locking so that threadgroup_change_begin/end() become a place where subsystems which need to sycnhronize against threadgroup changes can hook into. cgroup_threadgroup_change_begin/end() which operate on the per-signal_struct rwsem are created and threadgroup_lock/unlock() are moved to cgroup.c and made static. This is pure reorganization which doesn't cause any functional changes. Signed-off-by: Tejun Heo Cc: Ingo Molnar Cc: Peter Zijlstra include/linux/cgroup-defs.h | 10 +++++++++ include/linux/sched.h | 53 +++++++++++++++------------------------------ kernel/cgroup.c | 42 +++++++++++++++++++++++++++++++++++ 3 files changed, 69 insertions(+), 36 deletions(-) commit 2dead00b925eccdc13b7cd915fa0d088b91bcb52 Author: Yijing Wang Date: Tue Apr 28 15:01:35 2015 +0800 PCI: mvebu: Remove mvebu_pcie_scan_bus() After b97ea289cf6a ("PCI: Assign resources before drivers claim devices (pci_scan_root_bus())"), pci_scan_root_bus() no longer adds the devices, so it is equivalent to mvebu_pcie_scan_bus(). Remove mvebu_pcie_scan_bus() (the hw.scan method), so we use the generic pci_scan_root_bus() path. We also need to use pci_common_init_dev() instead of pci_common_init() so we can supply the host bridge device pointer. [bhelgaas: changelog] Tested-by: Gregory CLEMENT Signed-off-by: Yijing Wang Signed-off-by: Bjorn Helgaas Reviewed-by: Gregory CLEMENT CC: Thomas Petazzoni CC: Jason Cooper drivers/pci/host/pci-mvebu.c | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) commit 095dc8e0c3686d586a01a50abc3e1bb9ac633054 Author: Eric Dumazet Date: Tue May 26 07:55:34 2015 -0700 tcp: fix/cleanup inet_ehash_locks_alloc() If tcp ehash table is constrained to a very small number of buckets (eg boot parameter thash_entries=128), then we can crash if spinlock array has more entries. While we are at it, un-inline inet_ehash_locks_alloc() and make following changes : - Budget 2 cache lines per cpu worth of 'spinlocks' - Try to kmalloc() the array to avoid extra TLB pressure. (Most servers at Google allocate 8192 bytes for this hash table) - Get rid of various #ifdef Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller include/net/inet_hashtables.h | 47 +++---------------------------------------- net/ipv4/inet_hashtables.c | 31 ++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 44 deletions(-) commit f3903bcc0091df871ac64261f65ed2e4c3519d39 Author: Jon Paul Maloy Date: Tue May 26 05:40:19 2015 -0400 tipc: fix bug in link protocol message create function In commit dd3f9e70f59f43a5712eba9cf3ee4f1e6999540c ("tipc: add packet sequence number at instant of transmission") we made a change with the consequence that packets in the link backlog queue don't contain valid sequence numbers. However, when we create a link protocol message, we still use the sequence number of the first packet in the backlog, if there is any, as "next_sent" indicator in the message. This may entail unnecessary retransissions or stale packet transmission when there is very low traffic on the link. This commit fixes this issue by only using the current value of tipc_link::snd_nxt as indicator. Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/link.c | 2 -- 1 file changed, 2 deletions(-) commit ac34ad27fc160b5bd31c731cdaaf6e1d1890ccb2 Author: Alexandre Belloni Date: Fri Jan 16 10:05:51 2015 +0100 clockevents: Do not suspend/resume if unused There is no point in calling suspend/resume for unused clockevents as they are already stopped and disabled. This is really important for AT91 as the hardware is a trainwreck and takes ages to synchronize. Reported-by: Sylvain Rochet Signed-off-by: Alexandre Belloni Cc: Daniel Lezcano Cc: Nicolas Ferre Cc: Boris Brezillon Cc: Maxime Ripard Cc: linux-arm-kernel@lists.infradead.org Link: http://lkml.kernel.org/r/1421399151-26800-1-git-send-email-alexandre.belloni@free-electrons.com Signed-off-by: Thomas Gleixner kernel/time/clockevents.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 390db010c96091bd3bd0c5d6c0b667d22290ef41 Author: Martin Kelly Date: Fri May 22 19:56:56 2015 -0700 selftest, x86: fix incorrect comment The current comment indicates it's checking for a 32-bit build environment, but it actually checks for a 64-bit environment. Fix this. Signed-off-by: Martin Kelly Acked-by: Andy Lutomirski Signed-off-by: Shuah Khan tools/testing/selftests/x86/trivial_64bit_program.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 60df4642a83546fa6ea8286f5094ce8c0906c3ec Author: Arnaldo Carvalho de Melo Date: Thu May 14 16:55:18 2015 -0300 tools selftests: Fix 'clean' target with make 3.81 Make 3.81 doesn't have the 'undefine' command. Using undefine to clear LDFLAGS fails when make version 3.81 is used. Fix it to use override to clear LDFLAGS. Tested-by: Shuah Khan Cc: David Ahern Cc: Ingo Molnar Cc: Michael Ellerman Link: http://lkml.kernel.org/r/20150514151225.GH23588@kernel.org Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Shuah Khan tools/testing/selftests/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3dce92845396c26b0e5ad992277cbb8b296e33bd Author: Darren Hart Date: Tue May 12 21:07:57 2015 -0700 selftests/futex: Add .gitignore Add the futex/functional targets to .gitignore. Cc: Shuah Khan Cc: linux-api@vger.kernel.org Cc: Ingo Molnar Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Davidlohr Bueso Cc: KOSAKI Motohiro Signed-off-by: Darren Hart Signed-off-by: Shuah Khan tools/testing/selftests/futex/functional/.gitignore | 7 +++++++ 1 file changed, 7 insertions(+) commit 4100e675a9be8974e00b5dd26be529136a31d519 Author: Darren Hart Date: Tue May 12 21:07:56 2015 -0700 kselftest: Add exit code defines Define the exit codes with KSFT_PASS and similar so tests can use these directly if they choose. Also enable harnesses and other tooling to use the defines instead of hardcoding the return codes. Cc: Shuah Khan Cc: linux-api@vger.kernel.org Cc: Ingo Molnar Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Davidlohr Bueso Cc: KOSAKI Motohiro Signed-off-by: Darren Hart Signed-off-by: Shuah Khan tools/testing/selftests/kselftest.h | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) commit ecac1a7549f81e191588d08a46b81f057cb7cb2f Author: Darren Hart Date: Tue May 12 21:07:55 2015 -0700 selftests: Add futex tests to the top-level Makefile Enable futex tests to be built and run with the make kselftest and associated targets. Most of the tests require escalated privileges. These return ERROR, and run.sh continues. Cc: Shuah Khan Cc: linux-api@vger.kernel.org Cc: Ingo Molnar Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Davidlohr Bueso Cc: KOSAKI Motohiro Signed-off-by: Darren Hart Signed-off-by: Shuah Khan tools/testing/selftests/Makefile | 1 + 1 file changed, 1 insertion(+) commit 33ca2248e9cdd595caab6becda910ef7d2ef9f42 Author: Darren Hart Date: Tue May 12 21:07:54 2015 -0700 selftests/futex: Increment ksft pass and fail counters Add kselftest.h to logging.h and increment the pass and fail counters as part of the print_result routine which is called by all futex tests. Cc: Shuah Khan Cc: linux-api@vger.kernel.org Cc: Ingo Molnar Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Davidlohr Bueso Cc: KOSAKI Motohiro Signed-off-by: Darren Hart Signed-off-by: Shuah Khan tools/testing/selftests/futex/functional/Makefile | 2 +- tools/testing/selftests/futex/include/logging.h | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) commit 9705315b7562cfd2928ac2f3423ec122c3241037 Author: Darren Hart Date: Tue May 12 21:07:53 2015 -0700 selftests/futex: Update Makefile to use lib.mk Adapt the futextest Makefiles to use lib.mk macros for RUN_TESTS and EMIT_TESTS. For now, we reuse the run.sh mechanism provided by futextest. This doesn't provide the standard selftests: [PASS|FAIL] format, but the tests provide very similar output already. This results in the run_kselftest.sh script for futexes including a single line: ./run.sh Cc: Shuah Khan Cc: linux-api@vger.kernel.org Cc: Ingo Molnar Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Davidlohr Bueso Cc: KOSAKI Motohiro Signed-off-by: Darren Hart Signed-off-by: Shuah Khan tools/testing/selftests/futex/Makefile | 20 +++++++++++++++++++- tools/testing/selftests/futex/functional/Makefile | 5 +++-- 2 files changed, 22 insertions(+), 3 deletions(-) commit 2aa8470f02a9b9e6a410d1264fe6c8fa6c402eff Author: Darren Hart Date: Tue May 12 21:07:52 2015 -0700 selftests: Add futex functional tests The futextest testsuite [1] provides functional, stress, and performance tests for the various futex op codes. Those tests will be of more use to futex developers if they are included with the kernel source. Copy the core infrastructure and the functional tests into selftests, but adapt them for inclusion in the kernel: - Update the Makefile to include the run_tests target, remove reference to the performance and stress tests from the contributed sources. - Replace my dead IBM email address with my current Intel email address. - Remove the warrantee and write-to paragraphs from the license blurbs. - Remove the NAME section as the filename is easily determined. ;-) - Make the whitespace usage consistent in a couple of places. - Cleanup various CodingStyle violations. A future effort will explore moving the performance and stress tests into the kernel. 1. http://git.kernel.org/cgit/linux/kernel/git/dvhart/futextest.git Cc: Shuah Khan Cc: linux-api@vger.kernel.org Cc: Ingo Molnar Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Davidlohr Bueso Cc: KOSAKI Motohiro Signed-off-by: Darren Hart Signed-off-by: Shuah Khan tools/testing/selftests/futex/Makefile | 11 + tools/testing/selftests/futex/README | 62 ++++ tools/testing/selftests/futex/functional/Makefile | 24 ++ .../selftests/futex/functional/futex_requeue_pi.c | 409 +++++++++++++++++++++ .../functional/futex_requeue_pi_mismatched_ops.c | 135 +++++++ .../functional/futex_requeue_pi_signal_restart.c | 223 +++++++++++ .../functional/futex_wait_private_mapped_file.c | 125 +++++++ .../futex/functional/futex_wait_timeout.c | 86 +++++ .../functional/futex_wait_uninitialized_heap.c | 124 +++++++ .../futex/functional/futex_wait_wouldblock.c | 79 ++++ tools/testing/selftests/futex/functional/run.sh | 79 ++++ tools/testing/selftests/futex/include/atomic.h | 83 +++++ tools/testing/selftests/futex/include/futextest.h | 266 ++++++++++++++ tools/testing/selftests/futex/include/logging.h | 150 ++++++++ tools/testing/selftests/futex/run.sh | 33 ++ 15 files changed, 1889 insertions(+) commit 61171d0407b537eff299aea2388773b6c760e6eb Author: John Stultz Date: Wed May 13 15:13:05 2015 -0700 kselftests: timers: Check _ALARM clockids are supported before suspending It was reported that the alarmtimer-suspend test hangs on older systems that don't support _ALARM clockids. This is due to the fact that we don't check if the timer_create fails, and thus when we suspend, the system will not programatically resume. Fix this by checking the timer_create call for errors. Cc: Shuah Khan Cc: Prarit Bhargava Cc: Thomas Gleixner Cc: Richard Cochran Signed-off-by: John Stultz Signed-off-by: Shuah Khan tools/testing/selftests/timers/alarmtimer-suspend.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit acd5705d2d17a229b1aa0e549951ec66164b9379 Author: John Stultz Date: Wed May 13 15:13:04 2015 -0700 kselftests: timers: Ease alarmtimer-suspend unreasonable latency value On the hardware I have, resume latency from an alarm is often 2-3 seconds (with a fair amount of variability due to the RTC's single second granularity). Having four seconds be the pass/fail bar is maybe a little too tight, so extend this to 5 seconds. Cc: Shuah Khan Cc: Prarit Bhargava Cc: Thomas Gleixner Cc: Richard Cochran Signed-off-by: John Stultz Signed-off-by: Shuah Khan tools/testing/selftests/timers/alarmtimer-suspend.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 859b1bebe1e0e2e1fdfec77b019b9d7c27588e02 Author: John Stultz Date: Wed May 13 15:13:03 2015 -0700 kselftests: timers: Increase delay between suspends in alarmtimer-suspend When testing on some hardware, waiting only a second before re-triggering suspend can keep TCP connections from re-establishing which after a number of cycles can cause TCP connections to close while the test is running. So extend the delay between suspend calls to 3 seconds to let the connections stay alive. Cc: Shuah Khan Cc: Prarit Bhargava Cc: Thomas Gleixner Cc: Richard Cochran Signed-off-by: John Stultz Signed-off-by: Shuah Khan tools/testing/selftests/timers/alarmtimer-suspend.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 84cbd9e4c4575cbf8155f5c8688eafdd7cc40b57 Author: Tyler Baker Date: Tue Apr 21 15:52:13 2015 -0700 selftests/exec: do not install subdir as it is already created Remove subdir from DEPS as it is already created at runtime. Without this, make install fails. Acked-by: Michael Ellerman Signed-off-by: Tyler Baker Signed-off-by: Shuah Khan tools/testing/selftests/exec/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3bc54b5a016fce02af29ae1023e429faa5423e7f Author: Tyler Baker Date: Tue Apr 21 15:50:01 2015 -0700 selftests/ftrace: install test.d The ftrace test requires the directory test.d and all of it's contents to be present during execution. Use TEST_DIRS to ensure this is copied to the INSTALL_PATH. Acked-by: Michael Ellerman Signed-off-by: Tyler Baker Signed-off-by: Shuah Khan tools/testing/selftests/ftrace/Makefile | 1 + 1 file changed, 1 insertion(+) commit e8c1d7cdf13707a919f5a067c69d37b532cd09ab Author: Tyler Baker Date: Tue Apr 21 15:49:48 2015 -0700 selftests: copy TEST_DIRS to INSTALL_PATH Loop over all TEST_DIRS and recursively copy them to the INSTALL_PATH. Tests such as ftrace require a directory and all of it's contents to execute the test properly, thus these directories and files need to be copied when we perform an install. Acked-by: Michael Ellerman Signed-off-by: Tyler Baker Signed-off-by: Shuah Khan tools/testing/selftests/lib.mk | 3 +++ 1 file changed, 3 insertions(+) commit bd67d5c15cc190f52eb2f2a2f6f6b800ca33d9dd Author: Sri Jayaramappa Date: Thu Apr 23 14:21:41 2015 -0400 Test compaction of mlocked memory Commit commit 5bbe3547aa3b ("mm: allow compaction of unevictable pages") introduced a sysctl that allows userspace to enable scanning of locked pages for compaction. This patch introduces a new test which fragments main memory and attempts to allocate a number of huge pages to exercise this compaction logic. Tested on machines with up to 32 GB RAM. With the patch a much larger number of huge pages can be allocated than on the kernel without the patch. Example output: On a machine with 16 GB RAM: sudo make run_tests vm ... ----------------------- running compaction_test ----------------------- No of huge pages allocated = 3834 [PASS] ... Signed-off-by: Sri Jayaramappa Cc: linux-kernel@vger.kernel.org Cc: linux-api@vger.kernel.org Cc: Andrew Morton Cc: Eric B Munson Reviewed-by: Eric B Munson Acked-by: Andrew Morton Signed-off-by: Shuah Khan tools/testing/selftests/vm/Makefile | 7 +- tools/testing/selftests/vm/compaction_test.c | 225 +++++++++++++++++++++++++++ tools/testing/selftests/vm/run_vmtests | 12 ++ 3 files changed, 243 insertions(+), 1 deletion(-) commit d0bd7f2ac785468ee99e24a0e7b37420e5a242e8 Author: Zhang Zhen Date: Fri Apr 3 09:39:36 2015 +0800 selftests/mount: output WARN messages when mount test skipped If /proc/self/uid_map doesn't exist, mount test case exits wthout any warning. Fix it to print a warning that the test is skipped because /proc/self/uid_map doesn't exist. Signed-off-by: Zhang Zhen Signed-off-by: Shuah Khan tools/testing/selftests/mount/Makefile | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 78000efe6fc9969fbf4827aaf2373392e20b4356 Author: Zhang Zhen Date: Tue Apr 7 15:58:41 2015 +0800 selftests/timers: Make git ignore all binaries in timers test suite This patch includes the timers test binaries into the .gitignore file listing in their respective directories. This will make sure that git ignores all of these test binaries when displaying status. Signed-off-by: Zhang Zhen Signed-off-by: Shuah Khan tools/testing/selftests/timers/.gitignore | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit fc4f80524368dbf3fa2eba639c7b79bb014aea0a Author: Alexander Aring Date: Tue May 26 23:11:31 2015 +0200 nl802154: fix cca mode wpan phy flag This patch fix the handling to call cca mode setting. If the phy isn't flag then the driver doesn't support this setting. Signed-off-by: Alexander Aring Reported-by: Varka Bhadram Signed-off-by: Marcel Holtmann net/ieee802154/nl802154.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e002273b37821941623d231b5c7346778b486c9b Author: Shailendra Verma Date: Tue May 26 14:08:37 2015 -0700 Input: synaptics_i2c - use proper boolean values The variable no_decel is bool type so assigning "true" instead of "1". Also, synaptics_i2c_get_input() has bool return type, so let's use "false" there. Signed-off-by: Shailendra Verma Signed-off-by: Dmitry Torokhov drivers/input/mouse/synaptics_i2c.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit feb9eba80cce00c73a79ba22a5962657afadc476 Author: Shailendra Verma Date: Tue May 26 14:07:12 2015 -0700 Input: psmouse - use true instead of 1 for boolean values The variable psmouse_smartscroll is bool type so assigning true instead of 1. Signed-off-by: Shailendra Verma Signed-off-by: Dmitry Torokhov drivers/input/mouse/psmouse-base.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7debcbb135f9d0e74596039d648f1ff2d87a9305 Author: Shailendra Verma Date: Tue May 26 13:44:06 2015 -0700 Input: cyapa - fix a few typos in comments Signed-off-by: Shailendra Verma Signed-off-by: Dmitry Torokhov drivers/input/mouse/cyapa_gen5.c | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) commit e4b88e19897f1039fd83f1630517becafc0dd163 Author: Dmitry Torokhov Date: Fri May 22 13:44:33 2015 -0700 Input: stmpe-ts - enforce device tree only mode The STMPE MFD is only used with device tree configured systems (and STMPE MFD core depends on OF), so force the configuration to come from device tree only. Tested-by: Heiner Kallweit Reviewed-by: Marek Vasut Acked-by: Lee Jones Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/Kconfig | 1 + drivers/input/touchscreen/stmpe-ts.c | 29 ++++-------------------- include/linux/mfd/stmpe.h | 44 ------------------------------------ 3 files changed, 6 insertions(+), 68 deletions(-) commit 7a64c7283ef83c82cb2125339c5d12092256614e Author: Felipe Balbi Date: Tue May 26 15:34:45 2015 -0500 usb: gadget: atmel: fix build warning This patch fixes the following build warning: drivers/usb/gadget/udc/atmel_usba_udc.c:707:2: warning: format ‘%x’ expects argument of type ‘unsigned int’, but argument 4 has type ‘dma_addr_t’ [-Wformat=] Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/atmel_usba_udc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit f6454b049d81bb3d732b6a8afde08420589c6af9 Author: Julia Lawall Date: Tue May 26 21:59:53 2015 +0200 block: 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: Jens Axboe fs/buffer.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 641459ca336edc009e044b76d16ee3d1ca6464c0 Author: Lennert Buytenhek Date: Mon May 25 15:38:51 2015 +0300 mac802154: mac802154_mlme_start_req() optimisation. mac802154_mlme_start_req() calls ieee802154_mlme_ops(dev)->llsec->set_params() on the net_device passed into it, however, this net_device will always be a mac802154 net_device, so just call mac802154_set_params() directly instead. Signed-off-by: Lennert Buytenhek Acked-by: Alexander Aring Signed-off-by: Marcel Holtmann net/mac802154/mac_cmd.c | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) commit 66a3297f6d3f9dc35e27c3cec6b4437ac13f07ff Author: Lennert Buytenhek Date: Mon May 25 15:38:45 2015 +0300 ieee802154 socket: No need to check for ARPHRD_IEEE802154 in raw_bind(). ieee802154_get_dev() only returns devices that have dev->type == ARPHRD_IEEE802154, therefore, there is no need to check this again in raw_bind(). Signed-off-by: Lennert Buytenhek Acked-by: Alexander Aring Signed-off-by: Marcel Holtmann net/ieee802154/socket.c | 6 ------ 1 file changed, 6 deletions(-) commit 01c8d2bbd407a178f5bfe0312c32aec345066697 Author: Lennert Buytenhek Date: Mon May 25 15:38:39 2015 +0300 ieee802154: Remove 802.15.4/6LoWPAN checks for interface MTU. In the past, 802.15.4 interfaces and 6LoWPAN interfaces used the same dev->type (ARPHRD_IEEE802154), and 802.15.4 interfaces were distinguished from 6LoWPAN interfaces by their differing dev->mtu. 6LoWPAN interfaces have their own ARPHRD type now, so there is no longer any need to check dev->mtu to distinguish 802.15.4 devices from 6LoWPAN devices. Signed-off-by: Lennert Buytenhek Acked-by: Alexander Aring Signed-off-by: Marcel Holtmann net/ieee802154/nl-mac.c | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) commit d0997b44c9081071e39417b188f7db6d1ea37341 Author: Lennert Buytenhek Date: Mon May 25 15:38:33 2015 +0300 ieee802154: Remove ieee802154_reduced_mlme_ops references. As there doesn't seem to be a definition of it or any users of it. Signed-off-by: Lennert Buytenhek Acked-by: Alexander Aring Signed-off-by: Marcel Holtmann include/net/ieee802154_netdev.h | 6 ------ 1 file changed, 6 deletions(-) commit b251d4de671ca0623d19b88a8af7f038499db631 Author: Lennert Buytenhek Date: Mon May 25 15:38:29 2015 +0300 Documentation/networking/ieee802154.txt: fix various inaccuracies. * Update the linux-zigbee git:// repository URL. * Remove the MLME section as the current kernel does not provide a full 802.15.4 MLME implementation. * The hardmac example driver 'fakehard' was removed some time ago. * The IEEE 802.15.4 device drivers live in drivers/net/ieee802154/, not in drivers/ieee802154/. * The IEEE 802.15.4 MTU is 127 bytes, not 128 bytes. * Some of the 6LoWPAN code lives in net/6lowpan/. Signed-off-by: Lennert Buytenhek Reviewed-by: Stefan Schmidt Acked-by: Alexander Aring Signed-off-by: Marcel Holtmann Documentation/networking/ieee802154.txt | 32 +++++++++++--------------------- 1 file changed, 11 insertions(+), 21 deletions(-) commit c8fc9339409df88693742d323819ab8415cd2e9d Author: Yijing Wang Date: Thu May 21 15:05:03 2015 +0800 PCI/ASPM: Use dev->has_secondary_link to find downstream links We allocate pcie_link_state for the component at the upstream end of a Link. Previously we did this by allocating pcie_link_state for Root Ports and Downstream Ports. This works fine for the typical topology: 00:1c.0 Root Port [bridge to bus 02] 02:00.0 Upstream Port [bridge to bus 03] 03:00.0 Downstream Port [bridge to bus 04] 04:00.0 Endpoint or Switch Port However, it is possible to have a Root Port connected to a Downstream Port instead of an Upstream Port, as in Robert White's ATCA system: 00:1c.0 Root Port [bridge to bus 02] 02:00.0 Downstream Port [bridge to bus 03] 03:01.0 Downstream Port [bridge to bus 04] 04:00.0 Endpoint or Switch Port In this topology, we wrongly allocated pcie_link_state for the 02:00.0 Downstream Port, which is actually the *downstream* end of a link. This led to the following NULL pointer dereference when we tried to connect this link into the tree of links starting at the 00:1c.0 Root Port: BUG: unable to handle kernel NULL pointer dereference at 0000000000000088 IP: [] pcie_aspm_init_link_state+0x744/0x850 Hardware name: Kontron B3001/B3001, BIOS 4.6.3 08/07/2012 Call Trace: [] pci_scan_slot+0xd5/0x120 [] pci_scan_child_bus+0x2d/0xd0 ... Instead of relying on the component type to identify the upstream end of a link, use the "dev->has_secondary_link" field. This means it's now possible for an Upstream Port to have a link on its secondary side, so alloc_pcie_link_state() needs to connect links originating from both Upstream and Downstream Ports into the tree. [bhelgaas: changelog, add comment] Link: https://bugzilla.kernel.org/show_bug.cgi?id=94361 Link: http://lkml.kernel.org/r/54EB81B2.4050904@pobox.com Reported-by: Robert White Signed-off-by: Yijing Wang Signed-off-by: Bjorn Helgaas drivers/pci/pcie/aspm.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) commit 0b51601d4504f46f585eed823485101390f0b588 Author: Axel Lin Date: Tue May 26 20:35:08 2015 +0800 ASoC: max98925: Fix mask for setting DAI invert mode The M98925_DAI_WCI_MASK bit is not updated with current code. To properly set the DAI invert mode, the mask should be M98925_DAI_BCI_MASK | M98925_DAI_WCI_MASK. Signed-off-by: Axel Lin Signed-off-by: Mark Brown Cc: stable@vger.kernel.org sound/soc/codecs/max98925.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fda87a4283cf45f33d6a4eae645f6f3238e0e5dd Author: Heiko Stuebner Date: Tue May 26 18:19:45 2015 +0200 regulator: fan53555: fill set_voltage_time_set callback Setting the set_voltage_time_sel callback to the standard function regulator_set_voltage_time_sel enables the regulator to actually honor ramp-delays when during regulator_set_voltage calls. Signed-off-by: Heiko Stuebner Signed-off-by: Mark Brown drivers/regulator/fan53555.c | 1 + 1 file changed, 1 insertion(+) commit 8d3afd7d0e666b932e6fa15901e6280fe829a786 Author: Chris Wilson Date: Thu May 21 21:01:47 2015 +0100 drm/i915: Use spinlocks for checking when to waitboost In commit 1854d5ca0dd7a9fc11243ff220a3e93fce2b4d3e Author: Chris Wilson Date: Tue Apr 7 16:20:32 2015 +0100 drm/i915: Deminish contribution of wait-boosting from clients we removed an atomic timer based check for allowing waitboosting and moved it below the mutex taken during RPS. However, that mutex can be held for long periods of time on Vallyview/Cherryview as communication with the PCU is slow. As clients may frequently wait for results (e.g. such as tranform feedback) we introduced contention between the client and the RPS worker. We can take advantage of the RPS worker, by switching the wait boost decision to use spin locks and defer the actual reclocking to the worker. Fixes a regression of up to 45% on Baytrail and Baswell! v2 (Daniel): - Use max_freq_softlimit instead of the not-yet-merged boost frequency. - Don't inject a fake irq into the boost work, instead treat client_boost as just another legit waker. v3: Drop the now unused mask (Chris). Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90112 Signed-off-by: Chris Wilson (v1) Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_debugfs.c | 17 +++-------------- drivers/gpu/drm/i915/i915_drv.h | 9 +++++++-- drivers/gpu/drm/i915/i915_gem.c | 4 ++-- drivers/gpu/drm/i915/i915_irq.c | 19 +++++++++++++------ drivers/gpu/drm/i915/intel_pm.c | 31 ++++++++++++++++++++----------- 5 files changed, 45 insertions(+), 35 deletions(-) commit ed6c4136f1571bd6ab362afc3410905a8a69ca42 Author: Pablo Neira Ayuso Date: Tue May 26 18:41:40 2015 +0200 netfilter: nf_tables: add netdev table to filter from ingress This allows us to create netdev tables that contain ingress chains. Use skb_header_pointer() as we may see shared sk_buffs at this stage. This change provides access to the existing nf_tables features from the ingress hook. Signed-off-by: Pablo Neira Ayuso include/net/netns/nftables.h | 1 + net/netfilter/Kconfig | 5 ++ net/netfilter/Makefile | 1 + net/netfilter/nf_tables_netdev.c | 183 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 190 insertions(+) commit ebddf1a8d78aa3436353fae75c4396e50cb2d6cf Author: Pablo Neira Ayuso Date: Tue May 26 18:41:20 2015 +0200 netfilter: nf_tables: allow to bind table to net_device This patch adds the internal NFT_AF_NEEDS_DEV flag to indicate that you must attach this table to a net_device. This change is required by the follow up patch that introduces the new netdev table. Signed-off-by: Pablo Neira Ayuso include/net/netfilter/nf_tables.h | 8 ++++++ include/uapi/linux/netfilter/nf_tables.h | 2 ++ net/netfilter/nf_tables_api.c | 46 ++++++++++++++++++++++++++++---- 3 files changed, 51 insertions(+), 5 deletions(-) commit 529985de202276d0d3455d16d284d72efc357d98 Author: Pablo Neira Ayuso Date: Tue May 26 18:41:12 2015 +0200 netfilter: default CONFIG_NETFILTER_INGRESS to y Useful to compile-test all options. Suggested-by: Alexei Stavoroitov Signed-off-by: Pablo Neira Ayuso net/netfilter/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 2f06550b3b0e26f54045337e34ec2a1b666bb6c6 Author: Florian Westphal Date: Sun May 24 01:00:41 2015 +0200 netfilter: remove unused comefrom hookmask argument Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso net/ipv4/netfilter/ip_tables.c | 4 +--- net/ipv6/netfilter/ip6_tables.c | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) commit c779273b37bec14c33feeab11c4d457a24bc64e0 Author: Eliad Peller Date: Sun Apr 19 11:41:04 2015 +0300 iwlwifi: mvm: fix ROC reference accounting commit b112889c5af8124 ("iwlwifi: mvm: add Aux ROC request/response flow") added aux ROC flow in addition to the existing ROC flow. While doing it, it moved the ROC reference release to a common work item, which is being called for both the ROC and aux ROC flows. This resulted in invalid reference accounting, as no reference was taken in case of aux ROC, while a reference was released on completion. Fix it by adding a reference for the aux ROC as well, and release only the relevant references on completion (according to the set bits). While at it, convert cancel_work_sync() to flush_work(), in order to make sure the references are being cleaned properly. Fixes: b112889c5af8 ("iwlwifi: mvm: add Aux ROC request/response flow") Signed-off-by: Eliad Peller Reviewed-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/debugfs.c | 5 +++-- drivers/net/wireless/iwlwifi/mvm/mac80211.c | 2 +- drivers/net/wireless/iwlwifi/mvm/mvm.h | 1 + drivers/net/wireless/iwlwifi/mvm/time-event.c | 15 +++++++++------ 4 files changed, 14 insertions(+), 9 deletions(-) commit a61408e9a48e7634984408e334b125a72726440e Author: Luciano Coelho Date: Mon Apr 27 21:38:10 2015 +0300 iwlwifi: pcie: don't call set_pwr functions for family 8000 We should not call the iwl_pcie_set_pwr() functions in the suspend/resume flows for family 8000, because the register used is locked in devices from this family. Doing this causes an NMI protection error (RT_NMI_INTERRUPT_PREG_PROTECTION). To fix this, skip those calls if the device family is IWL_DEVICE_FAMILY_8000. Signed-off-by: Luciano Coelho Reviewed-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/pcie/trans.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 04c9599d1a4cdd91b4c0bded3b12cc8203b68a2c Merge: 05c3274 2922089 Author: Emmanuel Grumbach Date: Tue May 26 19:20:34 2015 +0300 Merge remote-tracking branch 'iwlwifi-fixes/master' into iwlwifi-next Signed-off-by: Emmanuel Grumbach Conflicts: drivers/net/wireless/iwlwifi/Kconfig commit c032705ebfed32a6dcda72d83c54f060d4bf1e6e Author: Lennert Buytenhek Date: Mon May 25 15:38:24 2015 +0300 ieee802154 socket: Return EMSGSIZE from raw_sendmsg() if packet too big. The proper return code for trying to send a packet that exceeds the outgoing interface's MTU is EMSGSIZE, not EINVAL, so patch ieee802154's raw_sendmsg() to do the right thing. (Its dgram_sendmsg() was already returning EMSGSIZE for this case.) Signed-off-by: Lennert Buytenhek Acked-by: Alexander Aring Signed-off-by: Marcel Holtmann net/ieee802154/socket.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e34fd879f5516496c7241c9c2caf3a108295a30c Author: Lennert Buytenhek Date: Tue May 26 15:06:10 2015 +0300 mac802154: Avoid rtnl deadlock in mac802154_wpan_ioctl(). ->ndo_do_ioctl() can be entered with the rtnl lock already held, for example when sending a wext ioctl to a device (in which case the rtnl lock is taken by wext_ioctl_dispatch()), but mac802154_wpan_ioctl() currently unconditionally takes the rtnl lock on entry, which can cause deadlocks. To fix this, bail out of mac802154_wpan_ioctl() before taking the rtnl lock if the ioctl cmd is not one of the cmds we implement. Signed-off-by: Lennert Buytenhek Acked-by: Alexander Aring Signed-off-by: Marcel Holtmann net/mac802154/iface.c | 3 +++ 1 file changed, 3 insertions(+) commit 47a82730b54c2757ca5c89a82a9727ca0129af9d Author: Hans de Goede Date: Fri Mar 20 20:11:14 2015 +0100 usb: musb: Fix platform code being unable to override ep access ops musb-core was setting the ops to the default indexed or flat handlers after checking for platform overrides. Reverse the order of this so that platform overrides actually work. Signed-off-by: Hans de Goede Signed-off-by: Felipe Balbi drivers/usb/musb/musb_core.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) commit be780381772909ba4a89805945995b9f10c59ca8 Author: Hans de Goede Date: Fri Mar 20 20:11:13 2015 +0100 usb: musb: Do not use musb_read[b|w] / _write[b|w] wrappers in generic fifo functions The generic fifo functions already use non wrapped accesses in various cases through the iowrite#_rep functions, and all platforms which override the default musb_read[b|w] / _write[b|w] functions also provide their own fifo access functions, so we can safely drop the unnecessary indirection from the fifo access functions. Signed-off-by: Hans de Goede Signed-off-by: Felipe Balbi drivers/usb/musb/musb_core.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 6cc2af6d50204e8a1034ecd162378ceea22b09e8 Author: Hans de Goede Date: Fri Mar 20 20:11:12 2015 +0100 usb: musb: Make busctl_offset an io-op rather then a define The Allwinner (sunxi) implementation of the musb has its busctl registers indexed by the MUSB_INDEX register rather then in a flat address space. This commit turns MUSB_BUSCTL_OFFSET from a macro into an io-op which can be overridden from the platform ops. Signed-off-by: Hans de Goede Signed-off-by: Felipe Balbi drivers/usb/musb/musb_core.c | 34 +++++++++++++++--------- drivers/usb/musb/musb_core.h | 5 +++- drivers/usb/musb/musb_host.c | 12 ++++----- drivers/usb/musb/musb_io.h | 2 ++ drivers/usb/musb/musb_regs.h | 63 ++++++++++++++++++++++++-------------------- 5 files changed, 68 insertions(+), 48 deletions(-) commit 0cb74b3dc45a5448161eb481d4709cdda2a889fd Author: Hans de Goede Date: Fri Mar 20 20:11:11 2015 +0100 usb: musb: Make musb_write_rxfun* and musb_write_rxhub* work like their tx versions For some reason the musb_write_rxfun* and musb_write_rxhub* functions had a different function prototype and some extra magic needed on the caller side compared to their tx counterparts, this commit makes them work the same as their tx counterparts. Signed-off-by: Hans de Goede Signed-off-by: Felipe Balbi drivers/usb/musb/musb_core.c | 11 +++-------- drivers/usb/musb/musb_core.h | 2 -- drivers/usb/musb/musb_host.c | 12 ++++++------ drivers/usb/musb/musb_regs.h | 31 ++++++++++++------------------- 4 files changed, 21 insertions(+), 35 deletions(-) commit f5e4edb8c888958a970b2d42c47d2871a1a4fcdf Author: NeilBrown Date: Mon Mar 23 09:52:48 2015 +1100 power: twl4030_charger: find associated phy by more reliable means. twl4030_charger currently finds the associated phy using usb_get_phy() which will return the first USB2 phy. If your platform has multiple such phys (as mine does), this is not reliable (and reliably fails on the GTA04). Change to use devm_usb_get_phy_by_node(), having found the node by looking for an appropriately named sibling in device-tree. This makes usb-charging dependent on correct device-tree configuration. Acked-By: Sebastian Reichel Acked-by: Pavel Machek Signed-off-by: NeilBrown Signed-off-by: Felipe Balbi .../devicetree/bindings/power/twl-charger.txt | 10 ++++++++++ .../devicetree/bindings/usb/twlxxxx-usb.txt | 3 +++ drivers/power/twl4030_charger.c | 21 +++++++++------------ 3 files changed, 22 insertions(+), 12 deletions(-) commit e842b84c8e7221c45c8dbd7de09185c6149e1cf9 Author: NeilBrown Date: Mon Mar 23 09:52:48 2015 +1100 usb: phy: Add interface to get phy give of device_node. Split the "get phy from device_node" functionality out of "get phy by phandle" so it can be used directly. This is useful when a battery-charger is intimately associated with a particular phy but handled by a separate driver. The charger can find the device_node based on sibling relationships without the need for a redundant declaration in the devicetree description. As a peripheral that gets a phy will often want to register a notifier block, and de-register it later, that functionality is included so the de-registration is automatic. Acked-by: Pavel Machek Signed-off-by: NeilBrown Signed-off-by: Felipe Balbi drivers/usb/phy/phy.c | 97 +++++++++++++++++++++++++++++++++++-------------- include/linux/usb/phy.h | 2 + 2 files changed, 72 insertions(+), 27 deletions(-) commit 11bece5e063ca567e631c6ea3b1611c10dbc3282 Author: Mian Yousaf Kaukab Date: Sat May 16 22:33:39 2015 +0200 usb: gadget: net2280: fix pullup handling Gadget must be informed about disconnection when pullup is removed. Tested-by: Ricardo Ribalda Delgado Signed-off-by: Mian Yousaf Kaukab Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/net2280.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) commit 971fe65670400f17f9ba05239ff0e796cffee696 Author: Mian Yousaf Kaukab Date: Sat May 16 22:33:38 2015 +0200 usb: gadget: net2280: physically disable endpoint on disable operation Reset configuration in ep_cfg on disable to physically disable the endpoint. Tested-by: Ricardo Ribalda Delgado Signed-off-by: Mian Yousaf Kaukab Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/net2280.c | 7 +++++++ 1 file changed, 7 insertions(+) commit e9ab4d0ab8f5b1159558b9ab236e408d50962a00 Author: Mian Yousaf Kaukab Date: Sat May 16 22:33:37 2015 +0200 usb: gadget: autoconf: net2280: match hardware and usb ep address USB3380 GPEP can be used in IN and OUT directions however, both directions should use same endpoint address. Fulfil this requirement by mapping usb endpoint to hardware endpoint with the same address. Tested-by: Ricardo Ribalda Delgado Signed-off-by: Mian Yousaf Kaukab Signed-off-by: Felipe Balbi drivers/usb/gadget/epautoconf.c | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) commit c65c4f052bc3b67989bf54914798513685c54988 Author: Mian Yousaf Kaukab Date: Sat May 16 22:33:36 2015 +0200 usb: gadget: net2280: fix use of GPEP in both directions USB3380 enhanced mode allows GPEP to be used in both IN and OUT directions. However, IN and OUT endpoints must use same USB endpoint address (bEndpointAddress). Fix this by setting the ep_cfg.ep_number during initialization and keep it in net2280_enable() Tested-by: Ricardo Ribalda Delgado Signed-off-by: Mian Yousaf Kaukab Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/net2280.c | 41 +++++++++++++++++++++++++++++++--------- include/linux/usb/usb338x.h | 4 ++++ 2 files changed, 36 insertions(+), 9 deletions(-) commit a09e23f53e2c14a65a3b14a00060fea163081e1f Author: Mian Yousaf Kaukab Date: Sat May 16 22:33:35 2015 +0200 usb: gadget: net2280: check interrupts for all endpoints USB3380 in enhanced mode has 4 IN and 4 OUT endpoints. Check interrupts for all of them. Tested-by: Ricardo Ribalda Delgado Signed-off-by: Mian Yousaf Kaukab Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/net2280.c | 57 +++++++++++++++++++++++++++++++--------- include/linux/usb/net2280.h | 3 +++ 2 files changed, 47 insertions(+), 13 deletions(-) commit 463e104fb0ff1374c52bb0a8e0029537799192ac Author: Mian Yousaf Kaukab Date: Sat May 16 22:33:34 2015 +0200 usb: gadget: net2280: set all byte enables on start Default 0 value can result in unintentional zlp for IN endpoints. Tested-by: Ricardo Ribalda Delgado Signed-off-by: Mian Yousaf Kaukab Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/net2280.c | 1 + 1 file changed, 1 insertion(+) commit ea86507fd2ebcf8bfbaf92db279331c9c600e0d2 Author: Mian Yousaf Kaukab Date: Sat May 16 22:33:33 2015 +0200 usb: gadget: net2280: don't set ep_cfg.direction bit USB3380 ep_cfg.direction bit is reserved in enhanced mode. Don't set it. Tested-by: Ricardo Ribalda Delgado Signed-off-by: Mian Yousaf Kaukab Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/net2280.c | 2 -- 1 file changed, 2 deletions(-) commit 3fc0a7c3d3539a4e57b249d1fb5b2ab80c075174 Author: Mian Yousaf Kaukab Date: Sat May 16 22:33:32 2015 +0200 usb: gadget: net2280: unconditionally reset dma in usb_reset If ep->dma is set, abort_dma() takes care of dma clean-up. If ep->dma is not set, unconditionally reset dma channel. Tested-by: Ricardo Ribalda Delgado Signed-off-by: Mian Yousaf Kaukab Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/net2280.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit e6ac4bb0590d6482f48a86a10884a9f2eb66c111 Author: Mian Yousaf Kaukab Date: Sat May 16 22:33:31 2015 +0200 usb: gadget: net2280: reset sequence number on ep enable Sequence number can be out of sync if endpoint is disabled after some data transfers and enabled again. Reset it to stay in sync with host. Tested-by: Ricardo Ribalda Delgado Signed-off-by: Mian Yousaf Kaukab Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/net2280.c | 4 ++++ 1 file changed, 4 insertions(+) commit 25d40ee8189531d9df3ff10e25ddb92b5f075343 Author: Mian Yousaf Kaukab Date: Sat May 16 22:33:30 2015 +0200 usb: gadget: net2280: fix ep_cfg for defect7374 ep_cfg.IN_EP_ENABLE is only valid in advance mode. Tested-by: Ricardo Ribalda Delgado Signed-off-by: Mian Yousaf Kaukab Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/net2280.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit af6e613bb1b60fcbfe48c893b76c104c8952b599 Author: Yoshihiro Shimoda Date: Mon May 18 20:04:15 2015 +0900 usb: renesas_usbhs: Add support for R-Car E2 This patch adds a compatible string to support for R-Car E2. Signed-off-by: Yoshihiro Shimoda Acked-by: Geert Uytterhoeven " in patch 2 Signed-off-by: Felipe Balbi Documentation/devicetree/bindings/usb/renesas_usbhs.txt | 1 + drivers/usb/renesas_usbhs/common.c | 4 ++++ 2 files changed, 5 insertions(+) commit e0213bc5467ca5fe44ab04527f0e47998f30c046 Author: Yoshihiro Shimoda Date: Mon May 18 20:04:14 2015 +0900 usb: renesas_usbhs: Change USBHS_TYPE_R8A779x to USBHS_TYPE_RCAR_GEN2 Since the HSUSB controllers of R-Car Gen2 are the same specification (they have 16 pipes and usb-dmac), this patch changes USBHS_TYPE_R8A7790 and USBHS_TYPE_R8A7791 to USBHS_TYPE_RCAR_GEN2. Signed-off-by: Yoshihiro Shimoda Signed-off-by: Felipe Balbi drivers/usb/renesas_usbhs/common.c | 15 ++++----------- include/linux/usb/renesas_usbhs.h | 3 +-- 2 files changed, 5 insertions(+), 13 deletions(-) commit f14e9ad17f46051b02bffffac2036486097de19e Author: Rui Miguel Silva Date: Wed May 20 14:52:40 2015 +0100 usb: gadget: f_fs: add extra check before unregister_gadget_item ffs_closed can race with configfs_rmdir which will call config_item_release, so add an extra check to avoid calling the unregister_gadget_item with an null gadget item. Signed-off-by: Rui Miguel Silva Signed-off-by: Felipe Balbi drivers/usb/gadget/function/f_fs.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit 76e838c9f7765f9a6205b4d558d75a66104bc60d Author: Subbaraya Sundeep Bhatta Date: Thu May 21 15:46:48 2015 +0530 usb: dwc3: gadget: return error if command sent to DEPCMD register fails We need to return error to caller if command is not sent to controller succesfully. Signed-off-by: Subbaraya Sundeep Bhatta Fixes: 72246da40f37 (usb: Introduce DesignWare USB3 DRD Driver) Cc: Signed-off-by: Felipe Balbi drivers/usb/dwc3/gadget.c | 2 ++ 1 file changed, 2 insertions(+) commit 891b1dc022955d36cf4c0f42d383226a930db7ed Author: Subbaraya Sundeep Bhatta Date: Thu May 21 15:46:47 2015 +0530 usb: dwc3: gadget: return error if command sent to DGCMD register fails We need to return error to caller if command is not sent to controller succesfully. Signed-off-by: Subbaraya Sundeep Bhatta Fixes: b09bb64239c8 (usb: dwc3: gadget: implement Global Command support) Cc: #v3.5+ Signed-off-by: Felipe Balbi drivers/usb/dwc3/gadget.c | 2 ++ 1 file changed, 2 insertions(+) commit 591fa9dd3fee3de8c729febca395beb75c8ee819 Author: Hans de Goede Date: Sun Mar 29 12:50:47 2015 +0200 usb: musb: Add pre and post root port reset end callbacks The sunxi otg phy has a bug where it wrongly detects a high speed squelch when reset on the root port gets de-asserted with a lo-speed device. The workaround for this is to disable squelch detect before de-asserting reset, and re-enabling it after the reset de-assert is done. Signed-off-by: Hans de Goede Signed-off-by: Felipe Balbi drivers/usb/musb/musb_core.h | 16 ++++++++++++++++ drivers/usb/musb/musb_virthub.c | 2 ++ 2 files changed, 18 insertions(+) commit 60f207a5b6d8f23c2e8388b415e8d5c7311cc79d Author: Andrey Ryabinin Date: Mon May 25 13:29:44 2015 +0300 drm/atomic: fix out of bounds read in for_each_*_in_state helpers for_each_*_in_state validate array index after access to array elements, thus perform out of bounds read. Fix this by validating index in the first place and read array element iff validation was successful. Fixes: df63b9994eaf ("drm/atomic: Add for_each_{connector,crtc,plane}_in_state helper macros") Signed-off-by: Andrey Ryabinin Signed-off-by: Daniel Vetter include/drm/drm_atomic.h | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit d6b6c2ca6a2fbbb39051ec1d2763a947e3283683 Author: Takashi Iwai Date: Tue May 26 14:40:14 2015 +0200 ASoC: Simplify format_register_str() without stack usages Instead of allocating two string buffers on stack and copying them back, manipulate directly the target string buffer. This simplifies the code well. Signed-off-by: Takashi Iwai Signed-off-by: Mark Brown sound/soc/soc-core.c | 27 +++++++++------------------ 1 file changed, 9 insertions(+), 18 deletions(-) commit 21631f10ea08a9551eb32651448baad5ef64de6c Author: Damien Lespiau Date: Tue May 26 14:57:19 2015 +0100 drm/i915: Fix the confusing comment about the ioctl limits It was reported that this comment was confusing, and indeed it is. v2: (one year later!) Add the range for the DRM_I915_* iotcl defines (Daniel) Signed-off-by: Damien Lespiau Signed-off-by: Daniel Vetter include/uapi/drm/i915_drm.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 39fa10f7e21574a70cecf1fed0f9b36535aa68a0 Author: Alex Deucher Date: Fri May 15 11:48:52 2015 -0400 drm/radeon: take the mode_config mutex when dealing with hpds (v2) Since we are messing with state in the worker. v2: drop the changes in the mst worker Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/radeon/radeon_irq_kms.c | 2 ++ 1 file changed, 2 insertions(+) commit 0c3a88407ef2be8bb7c302c298d6ff58ebde4a43 Author: Alex Deucher Date: Thu May 14 12:47:45 2015 -0400 drm/radeon: make dpcd parameters const Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/atombios_dp.c | 8 ++++---- drivers/gpu/drm/radeon/radeon_mode.h | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) commit a10e04f4c54f02d397f429765acb09d81d344587 Author: Joe Perches Date: Tue May 19 18:37:52 2015 -0700 drm/radeon: Use DECLARE_BITMAP Use the generic mechanism to declare a bitmap instead of unsigned long. Signed-off-by: Joe Perches Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/radeon.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 84bcd469592eadbf731c07ed7f6654dc71bbe059 Author: Alex Deucher Date: Mon May 11 22:01:55 2015 +0200 drm/radeon/tn/si: enable/disable vce cg when encoding v2 Some of the vce clocks are automatic, others need to be manually enabled. For ease, just disable cg when vce is active. v2: rebased, call vce_v1_0_enable_mgcg directly Signed-off-by: Alex Deucher Signed-off-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/si_dpm.c | 9 ++++++++- drivers/gpu/drm/radeon/trinity_dpm.c | 9 ++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) commit d55a43a3e9258c01a6cac2f3081b3ceaa8e58020 Author: Alex Deucher Date: Mon May 11 22:01:54 2015 +0200 drm/radeon: add support for vce 1.0 clock gating Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/radeon_asic.c | 2 ++ drivers/gpu/drm/radeon/sid.h | 1 + drivers/gpu/drm/radeon/vce_v1_0.c | 57 ++++++++++++++++++++++++++++++++++++ 3 files changed, 60 insertions(+) commit a918efab631a5112d9d168700458317ad77f269c Author: Christian König Date: Mon May 11 22:01:53 2015 +0200 drm/radeon: add VCE 1.0 support v4 Initial support for VCE 1.0 using newest firmware. v2: rebased v3: fix for TN v4: fix FW size calculation Signed-off-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/ni.c | 46 ++++++++++++ drivers/gpu/drm/radeon/radeon.h | 1 + drivers/gpu/drm/radeon/radeon_asic.c | 17 +++++ drivers/gpu/drm/radeon/radeon_asic.h | 3 + drivers/gpu/drm/radeon/radeon_vce.c | 23 +++++- drivers/gpu/drm/radeon/si.c | 46 ++++++++++++ drivers/gpu/drm/radeon/sid.h | 1 + drivers/gpu/drm/radeon/vce_v1_0.c | 140 +++++++++++++++++++++++++++++++++++ 8 files changed, 274 insertions(+), 3 deletions(-) commit 11586cf04030e936e4549c7beb5e87f3f7267f80 Author: Alex Deucher Date: Mon May 11 22:01:52 2015 +0200 drm/radeon/dpm: add vce support for SI Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/si_dpm.c | 102 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 98 insertions(+), 4 deletions(-) commit 11fe3d6edb40b9ea888bf0c5630f2550af60e20d Author: Alex Deucher Date: Mon May 11 22:01:51 2015 +0200 drm/radeon/dpm: add vce dpm support for TN Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/trinity_dpm.c | 76 ++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) commit 0fda42ac40ac7edf62ebb750be41a34902d2fdfb Author: Alex Deucher Date: Mon May 11 22:01:50 2015 +0200 drm/radeon: implement tn_set_vce_clocks This implements the function to set the vce clocks on TN hardware. Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/ni.c | 31 +++++++++++++++++++++++++++++++ drivers/gpu/drm/radeon/nid.h | 7 +++++++ drivers/gpu/drm/radeon/radeon_asic.c | 1 + drivers/gpu/drm/radeon/radeon_asic.h | 1 + 4 files changed, 40 insertions(+) commit b7af630c13adc4be3bd8725f3a6e22fd89cb2938 Author: Christian König Date: Mon May 11 22:01:49 2015 +0200 drm/radeon: implement si_set_vce_clocks v2 For setting clocks with VCE v1.0 v2: (chk) rebased on current tree Signed-off-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/radeon.h | 7 ++ drivers/gpu/drm/radeon/radeon_asic.c | 1 + drivers/gpu/drm/radeon/radeon_asic.h | 1 + drivers/gpu/drm/radeon/si.c | 121 +++++++++++++++++++++++++++++++++++ drivers/gpu/drm/radeon/sid.h | 27 ++++++++ 5 files changed, 157 insertions(+) commit c11d75c87a60c6f6493a55acc029ff644b1bc1a8 Author: Christian König Date: Mon May 11 22:01:48 2015 +0200 drm/radeon: allow some more VCE firmware versions They seem to work fine with the kernel interface. Signed-off-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/radeon_vce.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit fa0cf2f246bb1cac502ba7c36082ad7a7b6deb40 Author: Christian König Date: Mon May 11 22:01:47 2015 +0200 drm/radeon: rework VCE FW size calculation Previously we were completely over allocating, fix this by actually implementing the size calculation. Signed-off-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/radeon.h | 2 -- drivers/gpu/drm/radeon/radeon_asic.h | 1 + drivers/gpu/drm/radeon/radeon_vce.c | 3 +-- drivers/gpu/drm/radeon/vce_v2_0.c | 16 +++++++++++++--- 4 files changed, 15 insertions(+), 7 deletions(-) commit 72b9076b2887add930d3b102760f09d02ffbfbe7 Author: Marek Olšák Date: Wed Apr 29 19:40:33 2015 +0200 drm/radeon: add a GPU reset counter queryable by userspace Userspace will be able to tell whether a GPU reset occured by comparing an old referece value of the counter with a new value. Reviewed-by: Christian König Signed-off-by: Marek Olšák Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/radeon.h | 1 + drivers/gpu/drm/radeon/radeon_device.c | 2 ++ drivers/gpu/drm/radeon/radeon_drv.c | 3 ++- drivers/gpu/drm/radeon/radeon_kms.c | 3 +++ include/uapi/drm/radeon_drm.h | 1 + 5 files changed, 9 insertions(+), 1 deletion(-) commit 955f3c334f0fb2b843efad5cc6d3b7e141e9d666 Author: Daniel Stone Date: Mon May 25 19:11:52 2015 +0100 drm/atomic: Add MODE_ID property Atomic modesetting: now with modesetting support. v2: Moved drm_atomic_set_mode_prop_for_crtc from previous patch; removed state->active fiddling, documented return code. Changed property type to DRM_MODE_PROP_BLOB. Signed-off-by: Daniel Stone Tested-by: Sean Paul Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_atomic.c | 57 +++++++++++++++++++++++++++++++++++++++++++- drivers/gpu/drm/drm_crtc.c | 8 +++++++ include/drm/drm_atomic.h | 3 +++ include/drm/drm_crtc.h | 1 + 4 files changed, 68 insertions(+), 1 deletion(-) commit 99cf4a29fa24461bbfe22125967188a18383eb5c Author: Daniel Stone Date: Mon May 25 19:11:51 2015 +0100 drm/atomic: Add current-mode blob to CRTC state Add a blob property tracking the current mode to the CRTC state, and ensure it is properly updated and referenced. v2: Continue using crtc_state->mode inside getcrtc, instead of reading out the mode blob. Use IS_ERR and PTR_ERR from create_blob. Move set_mode_prop_for_crtc to later patch where it actually gets used. Enforce !!state->enable == !!state->mode_blob inside drm_atomic_crtc_check. Signed-off-by: Daniel Stone Tested-by: Sean Paul Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_atomic.c | 32 +++++++++++++++++++++++++++++++- drivers/gpu/drm/drm_atomic_helper.c | 11 ++++++----- include/drm/drm_crtc.h | 3 +++ 3 files changed, 40 insertions(+), 6 deletions(-) commit 819364da20fd914aba2fd03e95ee0467286752f5 Author: Daniel Stone Date: Tue May 26 14:36:48 2015 +0100 drm: Add drm_atomic_set_mode_for_crtc Add a new helper, to be used later for blob property management, that sets the mode for a CRTC state, as well as updating the CRTC enable/active state at the same time. v2: Do not touch active/mode_changed in CRTC state. Document return value. Remove stray drm_atomic_set_mode_prop_for_crtc declaration. v3: Remove i915 changes, and leave it directly bashing crtc_state->mode for the meantime. Signed-off-by: Daniel Stone Tested-by: Sean Paul Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_atomic.c | 36 ++++++++++++++++++++++++++++++++++++ drivers/gpu/drm/drm_atomic_helper.c | 11 ++++++++--- drivers/gpu/drm/drm_crtc_helper.c | 5 +++-- include/drm/drm_atomic.h | 3 +++ 4 files changed, 50 insertions(+), 5 deletions(-) commit 6e01d531c9603d591826e842298a539d17436fa8 Author: Antonio Ospite Date: Tue Apr 28 13:11:20 2015 +0200 HID: Makefile: fix alignment of objs-* entries Most of the entries are aligned with TABs, fix those which are not. Signed-off-by: Antonio Ospite Signed-off-by: Jiri Kosina drivers/hid/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 79ce48df755e6a5231cc1ac515e7988e1d715ce1 Author: Geert Uytterhoeven Date: Thu May 21 14:11:33 2015 +0200 lpfc: Grammar s/an negative/a negative/ Signed-off-by: Geert Uytterhoeven Reviewed-By: James Smart Signed-off-by: Jiri Kosina drivers/scsi/lpfc/lpfc_debugfs.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 82350ab1670b939efc9fd69ab863ee5a3563a0d6 Author: Antonio Ospite Date: Tue Apr 28 13:11:23 2015 +0200 ARM: lib/lib1funcs.S: fix typo s/substractions/subtractions/ Signed-off-by: Antonio Ospite Cc: Russell King Cc: Christoffer Dall Cc: linux-arm-kernel@lists.infradead.org Acked-by: Russell King Signed-off-by: Jiri Kosina arch/arm/lib/lib1funcs.S | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 947b6f87c7953803dfc28a36bd31f920cc5bb480 Author: Antonio Ospite Date: Tue Apr 28 13:11:26 2015 +0200 cx25821: cx25821-medusa-reg.h: fix 0x0x prefix Fix the 0x0x prefix in integer constants. In this case a padding 0 must also be inserted to make the constants look like all the other 16 bits ones. Signed-off-by: Antonio Ospite Cc: Mauro Carvalho Chehab Cc: linux-media@vger.kernel.org Signed-off-by: Jiri Kosina drivers/media/pci/cx25821/cx25821-medusa-reg.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 94268fcd9aea736d24cbdade16e7f7c9419c489e Author: Antonio Ospite Date: Tue Apr 28 13:11:28 2015 +0200 lib: crc-itu-t.[ch] fix 0x0x prefix in integer constants Signed-off-by: Antonio Ospite Acked-by: Greg Kroah-Hartman Signed-off-by: Jiri Kosina include/linux/crc-itu-t.h | 2 +- lib/crc-itu-t.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 7667928601d2981b20011e357904bcb96c365427 Author: Masanari Iida Date: Fri May 8 00:02:27 2015 +0900 rapidio: Fix kerneldoc and comment This patch fix spelling typos found in DocBook/rapidio.xml Ths file was generated from comments in the source files, I had to fix them, instead of the xml file. Signed-off-by: Masanari Iida Signed-off-by: Jiri Kosina drivers/rapidio/rio-scan.c | 2 +- include/linux/rio.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 8c51931957ff23eb078137a8ad43fcc5e6678618 Author: Masanari Iida Date: Thu May 7 23:27:54 2015 +0900 qla4xxx: Fix printk() in qla4_83xx_read_reset_template() and qla4_83xx_pre_loopback_config() This patch fix spelling typo in printk within drivers/qla4xxx. Signed-off-by: Masanari Iida Acked-by: Nilesh Javali Signed-off-by: Jiri Kosina drivers/scsi/qla4xxx/ql4_83xx.c | 2 +- drivers/scsi/qla4xxx/ql4_bsg.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 80279fb7ba5b71981a60988b0307afa43f78f6b1 Author: Johannes Berg Date: Fri May 22 16:22:20 2015 +0200 cfg80211: properly send NL80211_ATTR_DISCONNECTED_BY_AP in disconnect When we disconnect from the AP, drivers call cfg80211_disconnect(). This doesn't know whether the disconnection was initiated locally or by the AP though, which can cause problems with the supplicant, for example with WPS. This issue obviously doesn't show up with any mac80211 based driver since mac80211 doesn't call this function. Fix this by requiring drivers to indicate whether the disconnect is locally generated or not. I've tried to update the drivers, but may not have gotten the values correct, and some drivers may currently not be able to report correct values. In case of doubt I left it at false, which is the current behaviour. For libertas, make adjustments as indicated by Dan Williams. Reported-by: Matthieu Mauger Tested-by: Matthieu Mauger Signed-off-by: Johannes Berg drivers/net/wireless/ath/ath6kl/cfg80211.c | 4 ++-- drivers/net/wireless/ath/wil6210/main.c | 2 +- drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c | 4 ++-- drivers/net/wireless/libertas/cfg.c | 13 ++++++------- drivers/net/wireless/libertas/cfg.h | 3 ++- drivers/net/wireless/libertas/cmd.h | 3 ++- drivers/net/wireless/libertas/cmdresp.c | 13 ++++++++----- drivers/net/wireless/mwifiex/join.c | 2 +- drivers/net/wireless/mwifiex/sta_event.c | 2 +- drivers/net/wireless/rndis_wlan.c | 2 +- drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c | 2 +- drivers/staging/wlan-ng/cfg80211.c | 2 +- include/net/cfg80211.h | 4 +++- net/wireless/core.h | 1 + net/wireless/sme.c | 4 +++- net/wireless/util.c | 3 ++- 16 files changed, 37 insertions(+), 27 deletions(-) commit 769a12a9c7604aa10fc227726a726a2e79d4f98f Author: Masanari Iida Date: Mon Apr 27 22:52:07 2015 +0900 treewide: Kconfig: fix wording / spelling This patch fix spelling typos in Kconfig. Signed-off-by: Masanari Iida Signed-off-by: Jiri Kosina arch/xtensa/Kconfig | 2 +- drivers/platform/x86/Kconfig | 4 ++-- drivers/scsi/Kconfig | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) commit 2d9b480b1536fc577a81c2aad9d1a141f5befc04 Author: Paul Gortmaker Date: Thu Mar 19 20:24:37 2015 -0400 usb/serial: fix grammar in Kconfig help text for FTDI_SIO Signed-off-by: Paul Gortmaker Signed-off-by: Jiri Kosina drivers/usb/serial/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4b63b2861e7714a68fd1b2d7da7d761a7cea5eb0 Author: Geert Uytterhoeven Date: Tue Mar 3 11:58:07 2015 +0100 megaraid_sas: fix kerneldoc Fix typo in kerneldoc identifier. Signed-off-by: Geert Uytterhoeven Acked-by: Sumit Saxena Cc: James E.J. Bottomley Signed-off-by: Jiri Kosina drivers/scsi/megaraid/megaraid_sas_base.c | 2 +- drivers/scsi/megaraid/megaraid_sas_fusion.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 069d4a7b583274e3fd8712c92a035626e0ebf7be Author: Geert Uytterhoeven Date: Tue Mar 3 11:58:14 2015 +0100 netfilter: ebtables: fix comment grammar s/stongly inspired on/strongly inspired by/ Signed-off-by: Geert Uytterhoeven Cc: David S. Miller Signed-off-by: Jiri Kosina include/linux/netfilter_bridge/ebtables.h | 2 +- include/uapi/linux/netfilter_bridge/ebtables.h | 2 +- net/bridge/netfilter/ebtables.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit e09b50ad7a3312c4fbdc3dce4d5b7c3330734286 Author: Geert Uytterhoeven Date: Tue Mar 3 11:58:10 2015 +0100 drm/radeon: fix comment Fix spelling typo in comment. Signed-off-by: Geert Uytterhoeven Cc: David Airlie Signed-off-by: Jiri Kosina drivers/gpu/drm/radeon/atombios.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 3c7f3092d0dc9288f4ec945c38e8ff0e8a14e9ec Author: Geert Uytterhoeven Date: Tue Mar 3 11:58:08 2015 +0100 isdn: fix grammar in comment Fix grammar / typo in comment. Signed-off-by: Geert Uytterhoeven Cc: Karsten Keil Signed-off-by: Jiri Kosina drivers/isdn/i4l/isdn_net.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 47b2d14294e04918205950f824fe099505cd4a03 Author: Geert Uytterhoeven Date: Tue Mar 3 11:58:06 2015 +0100 ARM: KVM: fix comment Fix spelling in comment. Signed-off-by: Geert Uytterhoeven Signed-off-by: Jiri Kosina arch/arm/include/asm/kvm_asm.h | 2 +- arch/arm64/include/asm/kvm_asm.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit bbe16a40e23a65626904aa22fbfc3240a65d21d1 Author: Daniel Vetter Date: Wed May 20 16:53:53 2015 +0200 drm: check for garbage in unused addfb2 fields Unfortunately old userspace didn't clear this properly, but since we've added fb modifiers that's fixed. Checking properly that unused fields is important for abi extensions, and just right now there's a bunch of discussions going on about how exactly the additional aux planes for render compression should be specified. So let's first make sure that the values in those additional fields can be indeed used. Cc: Thierry Reding Testcase: igt/kms_addfb/unused-* Reviewed-by: Thierry Reding Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_crtc.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) commit 0d769a523a90e3e5cf20c8bb15626f82aea04c90 Author: Takashi Iwai Date: Tue May 26 12:57:56 2015 +0200 sound: sound_firmware: Fix invalid use of vfs_read() It should use kernel_read() instead of vfs_read() to load a firmware binary onto the kernel pages. Signed-off-by: Takashi Iwai sound/sound_firmware.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit f3550aeb7fcd893a52ebf89a064fc95be57f29d1 Author: Franky Lin Date: Wed May 20 14:09:51 2015 +0200 brcmfmac: add support for dma indices feature PCIe full dongle firmware can support a dma indices feature with which firmware can update/fetch the read/write indices of message buffer rings on both host to dongle and dongle to host directions. The support is announced by firmware through shared flags. Reviewed-by: Arend Van Spriel 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/pcie.c | 140 +++++++++++++++++++++---- 1 file changed, 119 insertions(+), 21 deletions(-) commit c2d4182edc0525dc912e166f4fc04cb58c5d5184 Author: Franky Lin Date: Wed May 20 14:09:50 2015 +0200 brcmfmac: remove dummy cache flush/invalidate function brcmf_dma_flush and brcmf_dma_invalidate_cache are not necessary and have never been implemented. Reviewed-by: Pieter-Paul Giesberts Reviewed-by: Hante Meuleman Reviewed-by: Arend Van Spriel Signed-off-by: Franky Lin Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo drivers/net/wireless/brcm80211/brcmfmac/commonring.c | 18 ------------------ drivers/net/wireless/brcm80211/brcmfmac/msgbuf.c | 11 ----------- drivers/net/wireless/brcm80211/brcmfmac/pcie.c | 11 ----------- 3 files changed, 40 deletions(-) commit fd5e8cb8178ac8cb549c207500006538624537d7 Author: Franky Lin Date: Wed May 20 14:09:49 2015 +0200 brcmfmac: remove pci shared structure rev4 support All pcie full dongle chips supported by fmac are using rev 5+ shared structure. This patch removes the rev4 related code. Reviewed-by: Pieter-Paul Giesberts Reviewed-by: Hante Meuleman Reviewed-by: Arend Van Spriel Signed-off-by: Franky Lin Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo drivers/net/wireless/brcm80211/brcmfmac/pcie.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) commit 464a5f3f0429c5a6d38d3b4899d38c4b66b18f02 Author: Hante Meuleman Date: Wed May 20 14:09:48 2015 +0200 brcmfmac: Improve throughput by scheduling msbug flow worker. The tx flow worker in msgbuf gets scheduled at tx till a certain threshold has been reached. Then the tx completes will take over the scheduling. When amsdu and ampdu is used the frames are transferred wireless in a very bulky fashion, in combination with this scheduling algorithm and buffer limiters in the stack this can result in limited throughput. This change causes the flow worker to be scheduled more frequently from tx. 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/flowring.c | 5 +++-- drivers/net/wireless/brcm80211/brcmfmac/flowring.h | 4 ++-- drivers/net/wireless/brcm80211/brcmfmac/msgbuf.c | 9 ++++++--- 3 files changed, 11 insertions(+), 7 deletions(-) commit f58001fa95703ac275efe7d53fb7ca8613618b09 Author: Arend van Spriel Date: Wed May 20 14:09:47 2015 +0200 brcmfmac: allow device tree node without 'interrupts' property As described in the device tree bindings for 'brcm,bcm4329-fmac' nodes, the interrupts property is optional. So adding a check for the presence of this property before attempting to parse and map the interrupt. If not present or parsing fails return and fallback to in-band sdio interrupt. Reviewed-by: Hante Meuleman Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo drivers/net/wireless/brcm80211/brcmfmac/of.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit ec21dc4a00905acb6c51eef0c29073e71e6e7ca1 Author: Avinash Patil Date: Wed May 20 16:36:06 2015 +0530 mwifiex: reduce severity of debug messages for mgmt rx This would ensure dmesg logs are not spammed with "unknown mgmt frame subtype" messages. Reviewed-by: James Cameron Signed-off-by: Avinash Patil Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/util.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 7b457dd0d631ecc39b5ed88d551c76d0471a11b1 Author: Kevin Lo Date: Tue May 19 10:18:34 2015 +0800 rtlwifi: fix typos in Kconfig This patch fixes typos in drivers/net/wirless/rtlwifi/Kconfig. Signed-off-by: Kevin Lo Signed-off-by: Kalle Valo drivers/net/wireless/rtlwifi/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cacce073bfd2b4091fbc58e906e7a9a21f538ff6 Author: Hauke Mehrtens Date: Thu May 14 23:05:49 2015 +0200 bcma: add module_bcma_driver() This makes it possible to save some lines of code in drivers with an simple bcma driver registration. Signed-off-by: Hauke Mehrtens Signed-off-by: Kalle Valo include/linux/bcma/bcma.h | 9 +++++++++ 1 file changed, 9 insertions(+) commit f911085ffa8863c62344876e0ab6073e4258c246 Author: Oleksij Rempel Date: Sun May 17 21:49:19 2015 +0200 ath9k: split ar5008_hw_spur_mitigate and reuse common code in ar9002_hw_spur_mitigate. [ar5008 and ar9002]_hw_spur_mitigate have big portion of identical code. This patch will move common part of ar5008_hw_spur_mitigate to ar5008_hw_cmn_spur_mitigate and reuse it in ar9002_hw_spur_mitigate. As noticed by Joe Perches I reuse ar9002_hw_spur_mitigate (const) version of declarations for pilot_mask_reg and chan_mask_reg. There should be no other difference with original code. Signed-off-by: Oleksij Rempel Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/ar5008_phy.c | 155 +++++++++++++++------------- drivers/net/wireless/ath/ath9k/ar9002_phy.c | 144 +------------------------- drivers/net/wireless/ath/ath9k/hw.h | 2 + 3 files changed, 87 insertions(+), 214 deletions(-) commit 574d69c27b74f0ff18038dc6138b8c1510731cea Author: Takashi Iwai Date: Tue May 26 12:57:09 2015 +0200 ALSA: bcd2000: Make local data static Spotted by sparse: sound/usb/bcd2000/bcd2000.c:73:1: warning: symbol 'devices_used' was not declared. Should it be static? Signed-off-by: Takashi Iwai sound/usb/bcd2000/bcd2000.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e42e748efdb06568d78fb1a47ec66a6c2587412f Author: Takashi Iwai Date: Tue May 26 12:56:21 2015 +0200 ALSA: lx6464es: Use NULL for pointers Spotted by sparse: sound/pci/lx6464es/lx6464es.c:415:47: warning: Using plain integer as NULL pointer sound/pci/lx6464es/lx6464es.c:417:48: warning: Using plain integer as NULL pointer Signed-off-by: Takashi Iwai sound/pci/lx6464es/lx6464es.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1983126f971cf5f58a4bfe393dc131b2191d4024 Author: Takashi Iwai Date: Tue May 26 12:52:54 2015 +0200 ALSA: lx6464es: Fix duplicated SSID entries PCI_DEVICE() macro itself defines SSID entries while we override them after that. Replace with a more appropriate macro, PCI_DEVICE_SUB() to define all ID values properly. Spotted by sparse: sound/pci/lx6464es/lx6464es.c:60:11: warning: Initializer entry defined twice sound/pci/lx6464es/lx6464es.c:61:12: also defined here sound/pci/lx6464es/lx6464es.c:64:11: warning: Initializer entry defined twice sound/pci/lx6464es/lx6464es.c:65:12: also defined here Signed-off-by: Takashi Iwai sound/pci/lx6464es/lx6464es.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit e4c286880e8f8f94f55b9abe26329ab106108230 Author: Takashi Iwai Date: Tue May 26 12:51:35 2015 +0200 ALSA: dummy: make local data static Add missing prefix to make some local data static. Spotted by sparse: sound/drivers/dummy.c:159:20: warning: symbol 'model_emu10k1' was not declared. Should it be static? sound/drivers/dummy.c:165:20: warning: symbol 'model_rme9652' was not declared. Should it be static? .... Signed-off-by: Takashi Iwai sound/drivers/dummy.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 1277fa2ab2f9a624a4b0177119ca13b5fd65edd0 Author: Vincent Fann Date: Fri May 15 21:29:27 2015 -0500 rtlwifi: Remove the clear interrupt routine from all drivers Several of these drivers have there TX randomly blocked for 3~5 seconds while measuring tx throughput (iperf). The root couse happens in rtl_pci_flush(). The function uses a while-loop to wait for TX queue length to decrease to 0. The TX queue length counts the number of packets that are queued in the driver. The driver relys on the TX OK interrupt to return skb and reduce TX queue length. The interrupt subroutine disables interupts, reads the interrupt registers, and then clears the registers in the beginning of _rtl_pci_interrupt(). After all interupts process are finished, the driver invokes enable_interrupt() to enable interupts. This behavior is normal for an interrupt subroutine. But enable_interrupt() invokes clear_interrupt() again. This unexpected interrupt clearing may cleari me fresh TX OK interrupts. These missing interrupts cause TX queue length to never reduce to 0i, which causes rtl_pci_flush() to be stuck in unterminated while-loop. This patch removes clear_interrupt() in enable_interrupt() to avoid this behavior. Signed-off-by: Vincent Fann Signed-off-by: Shao Fu Signed-off-by: Larry Finger Cc: Stable [3.18+] Signed-off-by: Kalle Valo drivers/net/wireless/rtlwifi/rtl8188ee/hw.c | 16 ---------------- drivers/net/wireless/rtlwifi/rtl8192ee/hw.c | 17 ----------------- drivers/net/wireless/rtlwifi/rtl8723ae/hw.c | 13 ------------- drivers/net/wireless/rtlwifi/rtl8723be/hw.c | 17 ----------------- drivers/net/wireless/rtlwifi/rtl8821ae/hw.c | 20 -------------------- 5 files changed, 83 deletions(-) commit d10101a603727474eb7ee16c1b46dcb4931a2dac Author: Shao Fu Date: Fri May 15 16:33:03 2015 -0500 rtlwifi: rtl8821ae: Fix problem with regulatory information The driver was not setting a channel plan. Now it gets it from EEPROM. Signed-off-by: Shao Fu Signed-off-by: Larry Finger Signed-off-by: Kalle Valo drivers/net/wireless/rtlwifi/rtl8821ae/hw.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b23cd22d3923b11e4a8fd1854b52932ac691d7ac Author: Shao Fu Date: Fri May 15 16:33:02 2015 -0500 rtlwifi: rtl8723be: Update driver for regulatory changes The driver is converted to use the channel plan in the EEPROM. Signed-off-by: Shao Fu Signed-off-by: Larry Finger Signed-off-by: Kalle Valo drivers/net/wireless/rtlwifi/rtl8723be/hw.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5620302484d4ef71be0361bea086770d24a73e47 Author: Shao Fu Date: Fri May 15 16:33:01 2015 -0500 rtlwifi: rtl8192ee: Apply the regulatory changes to driver The driver was setting a channel plan for the world. Now it reads it fromi EEPROM. In addition, a typo was fixed. Signed-off-by: Shao Fu Signed-off-by: Larry Finger Signed-off-by: Kalle Valo drivers/net/wireless/rtlwifi/rtl8192ee/hw.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 852ce7805638e3202578b6265b40bfe36b20c1c4 Author: Shao Fu Date: Fri May 15 16:33:00 2015 -0500 rtlwifi: rtl8188ee: Apply the new regulatory information The driver was setting a channel plan for the world. Now it reads it from EEPROM. Signed-off-by: Shao Fu Signed-off-by: Larry Finger Signed-off-by: Kalle Valo drivers/net/wireless/rtlwifi/rtl8188ee/hw.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 02b5fffbe9e02f5d63fa4a801fb807cf0aab4fc9 Author: Shao Fu Date: Fri May 15 16:32:59 2015 -0500 rtlwifi: Update regulatory database Driver rtlwifi maintains its own regulatory information, The Chrome Autotest (https://www.chromium.org/chromium-os/testing/autotest-user-doc) showed some errors. This patch adds the necessary information for rtlwifi. Signed-off-by: Shao Fu Signed-off-by: Larry Finger Signed-off-by: Kalle Valo drivers/net/wireless/rtlwifi/regd.c | 42 +++++++++++++++++++++++++++++++++---- drivers/net/wireless/rtlwifi/regd.h | 1 + 2 files changed, 39 insertions(+), 4 deletions(-) commit e3958e9d60b4570fff709f397ef5c6b8483f40f7 Author: Dan Carpenter Date: Thu May 14 11:37:50 2015 +0300 rndis_wlan: harmless issue calling set_bit() These are used like: set_bit(WORK_LINK_UP, &priv->work_pending); The problem is that set_bit() takes the actual bit number and not a mask so static checkers get upset. It doesn't affect run time because we do it consistently, but we may as well clean it up. Fixes: 6010ce07a66c ('rndis_wlan: do link-down state change in worker thread') Signed-off-by: Dan Carpenter Signed-off-by: Kalle Valo drivers/net/wireless/rndis_wlan.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 191f1aeeb93bb58e56f4d1868294ae22f3f67d4e Author: Dan Carpenter Date: Thu May 14 11:34:48 2015 +0300 ath9k_htc: memory corruption calling set_bit() In d8a2c51cdcae ('ath9k_htc: Use atomic operations for op_flags') we changed things like this: - if (priv->op_flags & OP_TSF_RESET) { + if (test_bit(OP_TSF_RESET, &priv->op_flags)) { The problem is that test_bit() takes a bit number and not a mask. It means that when we do: set_bit(OP_TSF_RESET, &priv->op_flags); Then it sets the (1 << 6) bit instead of the 6 bit so we are setting a bit which is past the end of the unsigned long. Fixes: d8a2c51cdcae ('ath9k_htc: Use atomic operations for op_flags') Signed-off-by: Dan Carpenter Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/htc.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 22f44150aad7a1d6b074ab6cf59abee61c7187c6 Author: Arnd Bergmann Date: Tue May 12 23:54:25 2015 +0200 brcmfmac: avoid gcc-5.1 warning gcc-5.0 gained a new warning in the fwsignal portion of the brcmfmac driver: drivers/net/wireless/brcm80211/brcmfmac/fwsignal.c: In function 'brcmf_fws_txs_process': drivers/net/wireless/brcm80211/brcmfmac/fwsignal.c:1478:8: warning: 'skb' may be used uninitialized in this function [-Wmaybe-uninitialized] This is a false positive, and marking the brcmf_fws_hanger_poppkt function as 'static inline' makes the warning go away. I have checked the object file output and while a little code gets moved around, the size of the binary remains identical. Signed-off-by: Arnd Bergmann Signed-off-by: Kalle Valo drivers/net/wireless/brcm80211/brcmfmac/fwsignal.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4b3e845a0927c5c660f38330522b8089edcd7c40 Author: Nicholas Mc Guire Date: Tue May 12 20:18:38 2015 +0200 carl9170: match wait_for_completion_timeout return type Return type of wait_for_completion_timeout is unsigned long not int. An appropriately named unsigned long is added, and the assignments as well as error checking fixed up. API conformance testing for completions with coccinelle spatches are being used to locate API usage inconsistencies: ./drivers/net/wireless/ath/carl9170/usb.c:675 int return assigned to unsigned long Patch was compile tested with x86_64_defconfig + CONFIG_ATH_CARDS=m, CONFIG_CARL9170=m Patch is against 4.1-rc3 (localversion-next is -next-20150512) Signed-off-by: Nicholas Mc Guire Acked-by: Christian Lamparter Signed-off-by: Kalle Valo drivers/net/wireless/ath/carl9170/usb.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit acebe8c10a6eabdb9c34370a774b5b3fcbae3ff4 Author: Zhaoyang Liu Date: Tue May 12 00:48:20 2015 +0530 mwifiex: change dbg print func to mwifiex_dbg This patch changes all debug print functions from dev_dbg/dev_err/dev_info to mwifiex specific debug functions. Signed-off-by: Zhaoyang Liu Signed-off-by: Cathy Luo Signed-off-by: Avinash Patil Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/11h.c | 48 +-- drivers/net/wireless/mwifiex/11n.c | 24 +- drivers/net/wireless/mwifiex/11n_aggr.c | 7 +- drivers/net/wireless/mwifiex/11n_rxreorder.c | 51 +-- drivers/net/wireless/mwifiex/cfg80211.c | 462 ++++++++++++---------- drivers/net/wireless/mwifiex/cfp.c | 50 ++- drivers/net/wireless/mwifiex/cmdevt.c | 354 +++++++++-------- drivers/net/wireless/mwifiex/debugfs.c | 3 +- drivers/net/wireless/mwifiex/ethtool.c | 6 +- drivers/net/wireless/mwifiex/init.c | 53 +-- drivers/net/wireless/mwifiex/join.c | 208 +++++----- drivers/net/wireless/mwifiex/main.c | 109 +++--- drivers/net/wireless/mwifiex/pcie.c | 550 +++++++++++++++------------ drivers/net/wireless/mwifiex/scan.c | 374 ++++++++++-------- drivers/net/wireless/mwifiex/sdio.c | 424 ++++++++++++--------- drivers/net/wireless/mwifiex/sta_cmd.c | 136 ++++--- drivers/net/wireless/mwifiex/sta_cmdresp.c | 181 ++++----- drivers/net/wireless/mwifiex/sta_event.c | 130 ++++--- drivers/net/wireless/mwifiex/sta_ioctl.c | 145 ++++--- drivers/net/wireless/mwifiex/sta_rx.c | 13 +- drivers/net/wireless/mwifiex/sta_tx.c | 18 +- drivers/net/wireless/mwifiex/tdls.c | 86 +++-- drivers/net/wireless/mwifiex/txrx.c | 25 +- drivers/net/wireless/mwifiex/uap_cmd.c | 20 +- drivers/net/wireless/mwifiex/uap_event.c | 44 ++- drivers/net/wireless/mwifiex/uap_txrx.c | 36 +- drivers/net/wireless/mwifiex/usb.c | 141 ++++--- drivers/net/wireless/mwifiex/util.c | 24 +- drivers/net/wireless/mwifiex/wmm.c | 98 ++--- 29 files changed, 2122 insertions(+), 1698 deletions(-) commit 868093a9df7580d6d50639d58f2c6e334dd73622 Author: Zhaoyang Liu Date: Tue May 12 00:48:19 2015 +0530 mwifiex: add dump data debug support This patch is to add support for data hexdump debug feature. It is controlled by level debug_mask in adapter structure. Signed-off-by: Zhaoyang Liu Signed-off-by: Cathy Luo Signed-off-by: Avinash Patil Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/cmdevt.c | 11 +++++++++-- drivers/net/wireless/mwifiex/main.h | 9 +++++++++ drivers/net/wireless/mwifiex/pcie.c | 2 +- drivers/net/wireless/mwifiex/scan.c | 3 +++ drivers/net/wireless/mwifiex/txrx.c | 5 +++++ 5 files changed, 27 insertions(+), 3 deletions(-) commit c687a0077faa0d24fe97a4434974f32bd359beb7 Author: Zhaoyang Liu Date: Tue May 12 00:48:18 2015 +0530 mwifiex: add prints debug ctrl support This patch adds support for debugging print control in mwifiex driver. The debug level can be controlled via either by modules load parameter debug_mask or by writing to debug_mask in debugfs file. Signed-off-by: Zhaoyang Liu Signed-off-by: Cathy Luo Signed-off-by: Avinash Patil Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/debugfs.c | 63 ++++++++++++++++++++++++++++++++++ drivers/net/wireless/mwifiex/ioctl.h | 1 + drivers/net/wireless/mwifiex/main.c | 5 +++ drivers/net/wireless/mwifiex/main.h | 40 +++++++++++++++++++++ drivers/net/wireless/mwifiex/util.c | 3 ++ 5 files changed, 112 insertions(+) commit c2c6c85fca47f4c5ac99d482b64d59dbd142117c Author: Chin-ran Lo Date: Tue May 12 00:48:17 2015 +0530 mwifiex: add support for FW memory read/write operations This patch adds support for FW memory read/write operations via debugfs. This is useful during debugging FW issues. Examples: For reading FW memory location: echo r 0x01ac > /sys/kernel/debug/mwifiex/mlan0/memrw cat /sys/kernel/debug/mwifiex/mlan0/memrw For writing FW memory location: echo w 0x01ac 0x55aa > /sys/kernel/debug/mwifiex/mlan0/memrw Signed-off-by: Chin-ran Lo Signed-off-by: Cathy Luo Signed-off-by: Avinash Patil Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/debugfs.c | 79 ++++++++++++++++++++++++++++++ drivers/net/wireless/mwifiex/fw.h | 9 ++++ drivers/net/wireless/mwifiex/ioctl.h | 5 ++ drivers/net/wireless/mwifiex/main.h | 1 + drivers/net/wireless/mwifiex/sta_cmd.c | 23 +++++++++ drivers/net/wireless/mwifiex/sta_cmdresp.c | 16 ++++++ 6 files changed, 133 insertions(+) commit 111c61054d86f3c8586146819aa905e14026fc4d Author: Daniel Drake Date: Mon May 11 14:00:27 2015 -0500 rtlwifi: btcoexist: Fix interference between rtl8723be and Bluetooth During usage of the new Bluetooth driver for Realtek devices, it was found that BT scans were inhibited for the RTL8723BE when wireless was active. The exact cause of this interference is not known yet, but a satisfactory work around has been found that does not seem to have any visible side effects. Signed-off-by: Daniel Drake Signed-off-by: Larry Finger Cc: Shao Fu Signed-off-by: Kalle Valo drivers/net/wireless/rtlwifi/btcoexist/halbtc8723b2ant.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit fe0a483ecf4458e94ebe58d7fedc6d56e21eed56 Author: Okash Khawaja Date: Mon May 11 12:58:31 2015 +0100 adm8211: fixed the possible pci cache line sizes inside switch-case The PCI cache line size value was being compared against decimal values prefixed with 0x. Fixed the literals to use the correct hex values. This has not been tested due to lack of hardware. However, the value in `cline` is PCI cache line size, which is the CPU's cache line size. It is less likely for cache line sizes to be 22 or 50, and more likely for them to be 16 or 32. Also, as far as I understand, cache line size is used for things like aligning DMA requests with CPU cache line, which improve performance but wouldn't break anything if the value doesn't match. In this case, we will fall through to the default case which leaves `reg` unchanged. Signed-off-by: Okash Khawaja Signed-off-by: Kalle Valo drivers/net/wireless/adm8211.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit f5c65f38912e38fc035dd1e515c1442bf62a8dab Author: Okash Khawaja Date: Mon May 11 12:53:25 2015 +0100 adm8211: fix checkpatch errors for indentation and new line This patch fixes these checkpatch.pl errors around a single switch-case block: ERROR: switch and case should be at the same indent ERROR: trailing statements should be on next line More specifically, the fix has been applied to the five occurances of the errors listed below. ERROR: switch and case should be at the same indent #1100: FILE: adm8211.c:1100: + switch (cline) { [...] + default: reg |= (0x0 << 14); ERROR: trailing statements should be on next line #1101: FILE: adm8211.c:1101: + case 0x8: reg |= (0x1 << 14); ERROR: trailing statements should be on next line #1103: FILE: adm8211.c:1103: + case 0x16: reg |= (0x2 << 14); ERROR: trailing statements should be on next line #1105: FILE: adm8211.c:1105: + case 0x32: reg |= (0x3 << 14); ERROR: trailing statements should be on next line #1107: FILE: adm8211.c:1107: + default: reg |= (0x0 << 14); Signed-off-by: Okash Khawaja Signed-off-by: Kalle Valo drivers/net/wireless/adm8211.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) commit f0992ace680c7a1b5b62da2103602bd7e6eb63cd Author: Fu, Zhonghui Date: Mon May 11 10:41:32 2015 +0800 brcmfmac: prohibit ACPI power management for brcmfmac driver ACPI will manage WiFi chip's power state during suspend/resume process on some tablet platforms(such as ASUS T100TA). This is not supported by brcmfmac driver now, and the context of WiFi chip will be damaged after resume. This patch informs ACPI not to manage WiFi chip's power state. Signed-off-by: Zhonghui Fu Acked-by: Arend van Spriel Signed-off-by: Kalle Valo drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit bfe3d2bf6c2356fbe6be7c5200053accf35721d4 Author: Taehee Yoo Date: Sat May 9 18:16:51 2015 +0900 rtlwifi: rtl8192cu: Remove rtl92c_init_beacon_max_error's parameter parameter "infra_mode" of rtl92c_init_beacon_max_error() is not used. so i remove this. Signed-off-by: Taehee Yoo Signed-off-by: Kalle Valo drivers/net/wireless/rtlwifi/rtl8192cu/hw.c | 2 +- drivers/net/wireless/rtlwifi/rtl8192cu/mac.c | 2 +- drivers/net/wireless/rtlwifi/rtl8192cu/mac.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit dacc7e1939852b7e85f64720bb1cb4563dbd5489 Author: Taehee Yoo Date: Sat May 9 18:15:23 2015 +0900 rtlwifi: rtl8192cu: Remove setting REG_BCN_MAX_ERR code in _rtl92cu_set_media_status(). Initialization routine set REG_BCN_MAX_ERR to 0xFF. also _rtl92cu_set_media_status set REG_BCN_MAX_ERR to same value. so i remove this code. Signed-off-by: Taehee Yoo Signed-off-by: Kalle Valo drivers/net/wireless/rtlwifi/rtl8192cu/hw.c | 1 - 1 file changed, 1 deletion(-) commit a706b41b8200584f10f6e4cac30c14c536d1299b Author: Lauri Kenttä Date: Fri May 8 22:01:53 2015 +0300 rtlwifi: rtl8188ee: Fix pwrseqcmd.h include path. Signed-off-by: Lauri Kenttä Signed-off-by: Kalle Valo drivers/net/wireless/rtlwifi/rtl8188ee/pwrseq.c | 2 +- drivers/net/wireless/rtlwifi/rtl8188ee/pwrseq.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 15f46015ee17681b542432df21747f5c51857156 Author: Paolo Bonzini Date: Sun May 17 21:26:08 2015 +0200 KVM: add memslots argument to kvm_arch_memslots_updated Prepare for the case of multiple address spaces. Reviewed-by: Radim Krcmar Signed-off-by: Paolo Bonzini arch/arm/kvm/mmu.c | 2 +- arch/mips/include/asm/kvm_host.h | 2 +- arch/powerpc/include/asm/kvm_host.h | 2 +- arch/s390/include/asm/kvm_host.h | 2 +- arch/x86/kvm/x86.c | 2 +- include/linux/kvm_host.h | 2 +- include/linux/kvm_types.h | 1 + virt/kvm/kvm_main.c | 2 +- 8 files changed, 8 insertions(+), 7 deletions(-) commit 09170a49422bd786be3eac5cec1955257c5a34b7 Author: Paolo Bonzini Date: Mon May 18 13:59:39 2015 +0200 KVM: const-ify uses of struct kvm_userspace_memory_region Architecture-specific helpers are not supposed to muck with struct kvm_userspace_memory_region contents. Add const to enforce this. In order to eliminate the only write in __kvm_set_memory_region, the cleaning of deleted slots is pulled up from update_memslots to __kvm_set_memory_region. Reviewed-by: Takuya Yoshikawa Reviewed-by: Radim Krcmar Signed-off-by: Paolo Bonzini arch/arm/kvm/mmu.c | 4 ++-- arch/mips/kvm/mips.c | 4 ++-- arch/powerpc/include/asm/kvm_ppc.h | 8 ++++---- arch/powerpc/kvm/book3s.c | 4 ++-- arch/powerpc/kvm/book3s_hv.c | 4 ++-- arch/powerpc/kvm/book3s_pr.c | 4 ++-- arch/powerpc/kvm/booke.c | 4 ++-- arch/powerpc/kvm/powerpc.c | 4 ++-- arch/s390/kvm/kvm-s390.c | 4 ++-- arch/x86/kvm/x86.c | 4 ++-- include/linux/kvm_host.h | 8 ++++---- virt/kvm/kvm_main.c | 22 +++++++++++----------- 12 files changed, 37 insertions(+), 37 deletions(-) commit 9f6b8029787bb37170d4535e9fc09158f634282c Author: Paolo Bonzini Date: Sun May 17 16:20:07 2015 +0200 KVM: use kvm_memslots whenever possible kvm_memslots provides lockdep checking. Use it consistently instead of explicit dereferencing of kvm->memslots. Reviewed-by: Radim Krcmar Signed-off-by: Paolo Bonzini arch/arm/kvm/mmu.c | 3 ++- arch/mips/kvm/mips.c | 4 +++- arch/powerpc/kvm/book3s_64_mmu_hv.c | 2 +- arch/powerpc/kvm/book3s_hv.c | 8 ++++++-- arch/powerpc/kvm/book3s_pr.c | 4 +++- arch/s390/kvm/kvm-s390.c | 4 +++- arch/x86/kvm/x86.c | 4 +++- virt/kvm/kvm_main.c | 16 ++++++++++------ 8 files changed, 31 insertions(+), 14 deletions(-) commit a47d2b07ea755b1761a93df720d725f464876e72 Author: Paolo Bonzini Date: Sun May 17 11:41:37 2015 +0200 KVM: introduce kvm_alloc/free_memslots kvm_alloc_memslots is extracted out of previously scattered code that was in kvm_init_memslots_id and kvm_create_vm. kvm_free_memslot and kvm_free_memslots are new names of kvm_free_physmem and kvm_free_physmem_slot, but they also take an explicit pointer to struct kvm_memslots. This will simplify the transition to multiple address spaces, each represented by one pointer to struct kvm_memslots. Reviewed-by: Takuya Yoshikawa Reviewed-by: Radim Krcmar Signed-off-by: Paolo Bonzini virt/kvm/kvm_main.c | 104 +++++++++++++++++++++++++++------------------------- 1 file changed, 55 insertions(+), 49 deletions(-) commit 5bcc3b0bbee576acf91bed481549998851c5fe56 Author: Qipan Li Date: Tue May 26 05:21:34 2015 +0000 spi: sirf: add the reset for USP-based SPI USP-based SPI need a disable and enable, otherwise it doesn't work. this patch adds it as HW initialization. Signed-off-by: Qipan Li Signed-off-by: Barry Song Signed-off-by: Mark Brown drivers/spi/spi-sirf.c | 70 ++++++++++++++++++++++++++++++-------------------- 1 file changed, 42 insertions(+), 28 deletions(-) commit 3aa7b1d66f99855e70491136002ca92c819debd8 Author: Qipan Li Date: Tue May 26 05:21:01 2015 +0000 spi: sirf: remove the allocation of dummypage this job has been done by spi core. Signed-off-by: Qipan Li Signed-off-by: Barry Song Acked-by: Geert Uytterhoeven Signed-off-by: Mark Brown drivers/spi/spi-sirf.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) commit ce2f6ea1cbd41d78224f703af980a6ceeb0eb56a Author: Gregory CLEMENT Date: Tue May 26 11:44:42 2015 +0200 spi: orion: Fix maximum baud rates for Armada 370/XP The commit df59fa7f4bca "spi: orion: support armada extended baud rates" was too optimistic for the maximum baud rate that the Armada SoCs can support. According to the hardware datasheet the maximum frequency supported by the Armada 370 SoC is tclk/4. But for the Armada XP, Armada 38x and Armada 39x SoCs the limitation is 50MHz and for the Armada 375 it is tclk/15. Currently the armada-370-spi compatible is only used by the Armada 370 and the Armada XP device tree. On Armada 370, tclk cannot be higher than 200MHz. In order to be able to handle both SoCs, we can take the minimum of 50MHz and tclk/4. A proper solution is adding a compatible string for each SoC, but it can't be done as a fix for compatibility reason (we can't modify device tree that have been already released) and it will be part of a separate patch. Fixes: df59fa7f4bca (spi: orion: support armada extended baud rates) Reported-by: Kostya Porotchkin Signed-off-by: Gregory CLEMENT Signed-off-by: Mark Brown Cc: drivers/spi/spi-orion.c | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) commit 0ef9dc139db2fca304ce4eadb5b8fb40d3dedb5e Author: Alexandre Belloni Date: Tue May 26 00:04:19 2015 +0200 ASoC: atmel: compile pcm driver in snd-soc-atmel_ssc_dai It is currently possible to have CONFIG_SND_ATMEL_SOC_SSC=y with either CONFIG_SND_ATMEL_SOC_PDC=m or CONFIG_SND_ATMEL_SOC_DMA=m. This results in a driver that compiles but does not link with this kind of error: sound/built-in.o: In function `atmel_ssc_set_audio': (.text+0x87d90): undefined reference to `atmel_pcm_pdc_platform_register' sound/built-in.o: In function `atmel_ssc_put_audio': (.text+0x8879a): undefined reference to `atmel_pcm_pdc_platform_unregister' Solve that by compiling the selected PCM driver (PDC, DMA or both) in the Atmel SSC DAI driver. Reported-by: Randy Dunlap Signed-off-by: Alexandre Belloni Acked-by: Nicolas Ferre Signed-off-by: Mark Brown sound/soc/atmel/Kconfig | 4 ++-- sound/soc/atmel/Makefile | 8 +++----- 2 files changed, 5 insertions(+), 7 deletions(-) commit fb67cdfbe52cc56c3b525f1fba16a20d3907585a Author: Alexandre Belloni Date: Tue May 26 00:04:18 2015 +0200 ASoC: atmel: simplify Kconfig Enclose the options in if SND_ATMEL_SOC ... endif to remove the dependency. Also remove the useless description for SND_ATMEL_SOC_SSC. Signed-off-by: Alexandre Belloni Acked-by: Nicolas Ferre Signed-off-by: Mark Brown sound/soc/atmel/Kconfig | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) commit da9b2a381a32c2a287f99e4be2f372587c53ef14 Author: Daniel Stone Date: Mon May 25 19:11:49 2015 +0100 drm: Retain reference to blob properties in lookup When we look up a blob property, make sure we retain a reference to the blob for the lifetime. v2: Use DRM_MODE_PROP_BLOB, not PROP_OBJECT + OBJECT_BLOB. Signed-off-by: Daniel Stone Tested-by: Sean Paul Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_crtc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit c6e7e4bb7ff988e7f915526a80ea866d84aac720 Merge: f025705 a1d0503 Author: Dave Airlie Date: Tue May 26 16:20:26 2015 +1000 Merge branch 'drm/next/adv7511' of git://linuxtv.org/pinchartl/fbdev into drm-next adv7511 fix. * 'drm/next/adv7511' of git://linuxtv.org/pinchartl/fbdev: drm: adv7511: Fix crash in IRQ handler when no encoder is associated commit f025705e738f6124e5f6a737e9a7c67d31a13a48 Merge: bdcddf9 2610abf Author: Dave Airlie Date: Tue May 26 16:19:53 2015 +1000 Merge branch 'drm/next/rcar-du' of git://linuxtv.org/pinchartl/fbdev into drm-next rcar-du fixes * 'drm/next/rcar-du' of git://linuxtv.org/pinchartl/fbdev: drm: rcar-du: Split planes pre-association 4/4 between CRTCs drm: rcar-du: Store the number of CRTCs per group in the group structure drm: rcar-du: Consider plane to CRTC associations in the plane allocator drm: rcar-du: Keep plane to CRTC associations when disabling a plane drm: rcar-du: Add plane allocation debugging drm: rcar-du: Rename to_rcar_du_plane_state to to_rcar_plane_state drm: rcar-du: Embed rcar_du_planes structure into rcar_du_group drm: rcar-du: Move properties from rcar_du_planes to rcar_du_device drm: rcar-du: Document the rcar_du_plane_state structure drm: rcar-du: Document the rcar_du_crtc structure commit 6571fb3f8b7f7e9595174e01b7e7f1b1ba0427d4 Author: Hannes Reinecke Date: Fri Apr 24 13:18:42 2015 +0200 advansys: Update to version 3.5 and remove compilation warning The driver has now been converted to DMA-API, so we should increase the version number and remove the compilation warning. Signed-off-by: Hannes Reinecke Signed-off-by: James Bottomley MAINTAINERS | 1 + drivers/scsi/Kconfig | 2 +- drivers/scsi/advansys.c | 27 +++++++-------------------- 3 files changed, 9 insertions(+), 21 deletions(-) commit bc31ec4df58d0ba0de9dae6f651bc9bfa1c2f19a Author: Hannes Reinecke Date: Fri Apr 24 13:18:41 2015 +0200 advansys: Remove call to dma_cache_sync() Only required if the dma buffer has been allocated via dma_alloc_noncoherent(), which this one is not. With that call removed we can now also compile on ARM. Signed-off-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/Kconfig | 2 +- drivers/scsi/advansys.c | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) commit 00742c91648cee6f5209b3a18e8b6d21e3b4f0e7 Author: Hannes Reinecke Date: Fri Apr 24 13:18:40 2015 +0200 advansys: use spin_lock_irqsave() in interrupt handler We should be using spin_lock_irqsave() when within the interrupt handler. Signed-off-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/advansys.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 2207063443739e934184076cbb23db8973d6b2d4 Author: Hannes Reinecke Date: Fri Apr 24 13:18:39 2015 +0200 advansys: Check for DMA mapping errors DMA mapping might fail, so we need to check for errors here. Signed-off-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/advansys.c | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) commit e14f66e921df944ce4c06b7e6ea8f057a32b6b3a Author: Hannes Reinecke Date: Fri Apr 24 13:18:38 2015 +0200 advansys: Remove cmd_per_lun setting Ancient, and pretty much obsolete by now. Signed-off-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/advansys.c | 18 ------------------ 1 file changed, 18 deletions(-) commit 3754fc642ce1e38a4af4d2d181f5967228c68682 Author: Hannes Reinecke Date: Fri Apr 24 13:18:37 2015 +0200 advansys: Remove obsolete virtual memory mapping comment Signed-off-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/advansys.c | 10 ---------- 1 file changed, 10 deletions(-) commit d9748dbcb1f9b489f4020d42982f620e56dc1327 Author: Hannes Reinecke Date: Fri Apr 24 13:18:36 2015 +0200 advansys: Remove 'a_flag' Unused, so remove it. Signed-off-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/advansys.c | 32 +++++++------------------------- 1 file changed, 7 insertions(+), 25 deletions(-) commit 084e6c3639491b17fe0faee1398edf7aa93867d5 Author: Hannes Reinecke Date: Fri Apr 24 13:18:35 2015 +0200 advansys: rename 'ASC_RQ_XX' to 'ADV_RQ_XX' These definitions are only ever used for the wide-scsi board, so they should be prefixed with 'ADV', not 'ASC'. Signed-off-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/advansys.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit 96aabb2aacdfce8215fe0d43ba64c94f8d319621 Author: Hannes Reinecke Date: Fri Apr 24 13:18:34 2015 +0200 advansys: Remove CC_VERY_LONG_SG_LIST Was uncommented in the original driver, and I'm too lazy to figure out the conversion. Signed-off-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/advansys.c | 243 +----------------------------------------------- 1 file changed, 5 insertions(+), 238 deletions(-) commit 9fef6ba4c2cb311b3a68cc12786c5836fe6a4ae9 Author: Hannes Reinecke Date: Fri Apr 24 13:18:33 2015 +0200 advansys: Remove ASC_SCSI_REQ_Q Removed unused structure ASC_SCSI_REQ_Q and update the comments to 'ADV_SCSI_REQ_Q'. Signed-off-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/advansys.c | 31 ++++++++++--------------------- 1 file changed, 10 insertions(+), 21 deletions(-) commit 37f6460867ef3a40d5385a924780ffdd2a6b750a Author: Hannes Reinecke Date: Fri Apr 24 13:18:32 2015 +0200 advansys: scsi_q1->data_addr is little endian The 'data_addr' field is accessed by the board, and needs to be kept in little endian format. Signed-off-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/advansys.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit f33134e54b074bf2c6bbe67889058fc15ec36d9e Author: Hannes Reinecke Date: Fri Apr 24 13:18:31 2015 +0200 advansys: cleanup function return codes Signed-off-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/advansys.c | 35 +++++++++++++---------------------- 1 file changed, 13 insertions(+), 22 deletions(-) commit 6f0d2e1def218f1e98ed87f00ec10e2535fe69c6 Author: Hannes Reinecke Date: Fri Apr 24 13:18:30 2015 +0200 advansys: Make AscIsrChipHalted() a void function AscIsrChipHalted will only ever return '0', so make it a void function. Signed-off-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/advansys.c | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-) commit 908d759b210effb33d927a8cb6603a16448474e4 Author: Daniel Vetter Date: Tue May 26 07:46:21 2015 +0200 Revert "drm/i915: Force clean compilation with -Werror" This reverts commit 118182e9d7d5afa0c7c10f568afb46ab78b462e9. It's causing too much trouble when compile-testing for non-i915 folks. Cc: Chris Wilson Cc: Jani Nikula Cc: Andrew Morton Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/Kconfig | 8 -------- drivers/gpu/drm/i915/Kconfig.debug | 5 ----- drivers/gpu/drm/i915/Makefile | 2 -- 3 files changed, 15 deletions(-) commit c01d1b5159425dce61f5835122c3e2950dba1bd1 Author: Robert Jarzmik Date: Mon May 25 23:29:21 2015 +0200 dmaengine: pxa_dma: add debug information Reuse the debugging features which were available in pxa architecture. This is a copy of the code from arch/arm/plat-pxa/dma, which is doomed to disappear once the conversion is completed towards dmaengine. This is a transfer of the commit "[ARM] pxa/dma: add debugfs entries" (d294948c2ce4e1c85f452154469752cc9b8e876d). Signed-off-by: Robert Jarzmik Signed-off-by: Vinod Koul drivers/dma/pxa_dma.c | 244 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 244 insertions(+) commit a57e16cf03339c20b09642f46f60190069ff70c7 Author: Robert Jarzmik Date: Mon May 25 23:29:20 2015 +0200 dmaengine: pxa: add pxa dmaengine driver This is a new driver for pxa SoCs, which is also compatible with the former mmp_pdma. The rationale behind a new driver (as opposed to incremental patching) was : - the new driver relies on virt-dma, which obsoletes all the internal structures of mmp_pdma (sw_desc, hw_desc, ...), and by consequence all the functions - mmp_pdma allocates dma coherent descriptors containing not only hardware descriptors but linked list information The new driver only puts the dma hardware descriptors (ie. 4 u32) into the dma pool allocated memory. This changes completely the way descriptors are handled - the architecture behind the interrupt/tasklet management was rewritten to be more conforming to virt-dma - the buffers alignment is handled differently The former driver assumed that the DMA channel stopped between each descriptor. The new one chains descriptors to let the channel running. This is a necessary guarantee for real-time high bandwidth usecases such as video capture on "old" architectures such as pxa. - hot chaining / cold chaining / no chaining Whenever possible, submitting a descriptor "hot chains" it to a running channel. There is still no guarantee that the descriptor will be issued, as the channel might be stopped just before the descriptor is submitted. Yet this allows to submit several video buffers, and resubmit a buffer while another is under handling. As before, dma_async_issue_pending() is the only guarantee to have all the buffers issued. When an alignment issue is detected (ie. one address in a descriptor is not a multiple of 8), if the already running channel is in "aligned mode", the channel will stop, and restarted in "misaligned mode" to finished the issued list. - descriptors reusing A submitted, issued and completed descriptor can be reused, ie resubmitted if it was prepared with the proper flag (DMA_PREP_ACK). Only a channel resources release will in this case release that buffer. This allows a rolling ring of buffers to be reused, where there are several thousands of hardware descriptors used (video buffer for example). Additionally, a set of more casual features is introduced : - debugging traces - lockless way to know if a descriptor is terminated or not The driver was tested on zylonite board (pxa3xx) and mioa701 (pxa27x), with dmatest, pxa_camera and pxamci. Signed-off-by: Robert Jarzmik Signed-off-by: Vinod Koul drivers/dma/Kconfig | 11 + drivers/dma/Makefile | 1 + drivers/dma/pxa_dma.c | 1195 +++++++++++++++++++++++++++++++++++++++++++ include/linux/dma/pxa-dma.h | 27 + 4 files changed, 1234 insertions(+) commit 820439f13e29b13695bd833da6b006deb1de0d43 Author: Robert Jarzmik Date: Mon May 25 23:29:19 2015 +0200 MAINTAINERS: add pxa dma driver to pxa architecture Add the pxa dma driver as maintained by the pxa architecture maintainers, as it is part of the core IP. Signed-off-by: Robert Jarzmik Signed-off-by: Vinod Koul MAINTAINERS | 1 + 1 file changed, 1 insertion(+) commit 16eea6b487de81228ced60eca3ac2977d8400812 Author: Robert Jarzmik Date: Mon May 25 23:29:18 2015 +0200 Documentation: dmaengine: pxa-dma design Document the new design of the pxa dma driver. Signed-off-by: Robert Jarzmik Signed-off-by: Vinod Koul Documentation/dmaengine/pxa_dma.txt | 153 ++++++++++++++++++++++++++++++++++++ 1 file changed, 153 insertions(+) commit 05c985436dfe81ab784251a54dd69be5b2dea98a Author: Eric Dumazet Date: Mon May 25 18:50:01 2015 -0700 net: fix inet_proto_csum_replace4() sparse errors make C=2 CF=-D__CHECK_ENDIAN__ net/core/utils.o ... net/core/utils.c:307:72: warning: incorrect type in argument 2 (different base types) net/core/utils.c:307:72: expected restricted __wsum [usertype] addend net/core/utils.c:307:72: got restricted __be32 [usertype] from net/core/utils.c:308:34: warning: incorrect type in argument 2 (different base types) net/core/utils.c:308:34: expected restricted __wsum [usertype] addend net/core/utils.c:308:34: got restricted __be32 [usertype] to net/core/utils.c:310:70: warning: incorrect type in argument 2 (different base types) net/core/utils.c:310:70: expected restricted __wsum [usertype] addend net/core/utils.c:310:70: got restricted __be32 [usertype] from net/core/utils.c:310:77: warning: incorrect type in argument 2 (different base types) net/core/utils.c:310:77: expected restricted __wsum [usertype] addend net/core/utils.c:310:77: got restricted __be32 [usertype] to net/core/utils.c:312:72: warning: incorrect type in argument 2 (different base types) net/core/utils.c:312:72: expected restricted __wsum [usertype] addend net/core/utils.c:312:72: got restricted __be32 [usertype] from net/core/utils.c:313:35: warning: incorrect type in argument 2 (different base types) net/core/utils.c:313:35: expected restricted __wsum [usertype] addend net/core/utils.c:313:35: got restricted __be32 [usertype] to Note we can use csum_replace4() helper Fixes: 58e3cac5613aa ("net: optimise inet_proto_csum_replace4()") Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller net/core/utils.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) commit 68319052d10d18462fbfd5571a5062cb7ec50788 Author: Eric Dumazet Date: Mon May 25 18:55:48 2015 -0700 net: remove a sparse error in secure_dccpv6_sequence_number() make C=2 CF=-D__CHECK_ENDIAN__ net/core/secure_seq.o net/core/secure_seq.c:157:50: warning: restricted __be32 degrades to integer Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller net/core/secure_seq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f72186d22aad44100e2dd17ccdcf13c4418ec3cb Author: Florian Grandel Date: Tue May 26 03:31:09 2015 +0200 Bluetooth: mgmt: fix typos A few comments had minor typos. These are being fixed. Signed-off-by: Florian Grandel Signed-off-by: Marcel Holtmann net/bluetooth/mgmt.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit acea43fcb02746e907725c6dbd2eb95b32d79ea5 Author: Geert Uytterhoeven Date: Wed May 20 19:46:25 2015 +0200 ARM: shmobile: r8a7790 dtsi: Describe DMA for the serial ports Add DMA properties to all SCIF, SCIFA, SCIFB, and HSCIF device nodes. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7790.dtsi | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit 558d656513cd481f65f492ab8685605aa85577cf Author: Geert Uytterhoeven Date: Wed May 20 19:46:26 2015 +0200 ARM: shmobile: r8a7791 dtsi: Describe DMA for the serial ports Add DMA properties to all SCIF, SCIFA, SCIFB, and HSCIF device nodes. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7791.dtsi | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) commit 8233a0dee931a9ba7eb3991682538234fbe2729b Author: Geert Uytterhoeven Date: Wed May 20 19:46:27 2015 +0200 ARM: shmobile: r8a7794 dtsi: Describe DMA for the serial ports Add DMA properties to all SCIF, SCIFA, SCIFB, and HSCIF device nodes. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7794.dtsi | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) commit eb8d7baae21584a7b27e79c2deca3eee72376ff0 Author: Wilson Kok Date: Mon May 25 06:39:31 2015 -0700 bridge: skip fdb add if the port shouldn't learn Check in fdb_add_entry() if the source port should learn, similar check is used in br_fdb_update. Note that new fdb entries which are added manually or as local ones are still permitted. This patch has been tested by running traffic via a bridge port and switching the port's state, also by manually adding/removing entries from the bridge's fdb. Signed-off-by: Wilson Kok Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller net/bridge/br_fdb.c | 6 ++++++ 1 file changed, 6 insertions(+) commit d4969581452be430135ba5040c5b6c9023c1d461 Author: Eric Dumazet Date: Mon May 25 16:06:37 2015 -0700 pktgen: remove one sparse error net/core/pktgen.c:2672:43: warning: incorrect type in assignment (different base types) net/core/pktgen.c:2672:43: expected unsigned short [unsigned] [short] [usertype] net/core/pktgen.c:2672:43: got restricted __be16 [usertype] protocol Let's use proper struct ethhdr instead of hard coding everything. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller net/core/pktgen.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 7f1598678d4c05e3e085bf780a5ab3119637ac3c Author: Eric Dumazet Date: Mon May 25 16:02:21 2015 -0700 ipv6: ipv6_select_ident() returns a __be32 ipv6_select_ident() returns a 32bit value in network order. Fixes: 286c2349f666 ("ipv6: Clean up ipv6_select_ident() and ip6_fragment()") Signed-off-by: Eric Dumazet Reported-by: kbuild test robot Acked-by: Martin KaFai Lau Signed-off-by: David S. Miller include/net/ipv6.h | 6 +++--- net/ipv6/output_core.c | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) commit c13aff32135f96e2d53373c807260b96a62cfead Author: Shailendra Verma Date: Tue May 26 01:38:25 2015 +0530 ata:sata_nv - Change 1 to true for bool type variable. The variable swncq_enabled is bool type. Hence initialize it with true instead of 1. Signed-off-by: Shailendra Verma Signed-off-by: Tejun Heo drivers/ata/sata_nv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit eedf4c66d06b6c3dbc3abe774d00e3a68cf9ef16 Merge: d1a0ed7 61d2259 Author: David S. Miller Date: Mon May 25 18:19:10 2015 -0400 Merge branch 'cpsw-cleanups' Richard Cochran says: ==================== cpsw cleanups While working on an out-of-tree customization, I noticed a few minor problems in the cpsw code. This series cleans up the issues I found. ==================== Signed-off-by: David S. Miller commit 61d22596a760091b51d93853b3a303c2241193be Author: Richard Cochran Date: Mon May 25 11:02:16 2015 +0200 net: cpsw: remove redundant calls disabling dma interrupts. The function, cpsw_intr_disable, already calls cpdma_ctlr_int_ctrl. There is no need to disable the dma interrupts twice. This patch removes the extra calls. Signed-off-by: Richard Cochran Signed-off-by: David S. Miller drivers/net/ethernet/ti/cpsw.c | 3 --- 1 file changed, 3 deletions(-) commit 071f1a960c67be004c4fa34e0b079c7747038693 Author: Richard Cochran Date: Mon May 25 11:02:15 2015 +0200 net: cpsw: remove redundant calls enabling dma interrupts. The function, cpsw_intr_enable, already calls cpdma_ctlr_int_ctrl. There is no need to enable the dma interrupts twice. This patch removes the extra call. Signed-off-by: Richard Cochran Signed-off-by: David S. Miller drivers/net/ethernet/ti/cpsw.c | 2 -- 1 file changed, 2 deletions(-) commit 202c5919e2bbc3dcd02ea82041a51f52c497fe73 Author: Richard Cochran Date: Mon May 25 11:02:14 2015 +0200 net: cpsw: remove two unused global functions The funtions, cpsw_ale_flush and cpsw_ale_set_ageout, have never been used since they were first introduced. This patch removes the dead code. Signed-off-by: Richard Cochran Signed-off-by: David S. Miller drivers/net/ethernet/ti/cpsw_ale.c | 45 -------------------------------------- drivers/net/ethernet/ti/cpsw_ale.h | 2 -- 2 files changed, 47 deletions(-) commit 26fe7eb862344e7a8276b7bdb306d6eb23bb28da Author: Richard Cochran Date: Mon May 25 11:02:13 2015 +0200 net: cpsw: fix misplaced break statements. Having the breaks too far to the left makes parsing the dense switch/case block unnecessarily harder. Signed-off-by: Richard Cochran Signed-off-by: David S. Miller drivers/net/ethernet/ti/cpsw.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit d1a0ed795a4c22a8104c91210a02d9f6e3c8737b Merge: 005e870 e505464 Author: David S. Miller Date: Mon May 25 18:17:09 2015 -0400 Merge branch 'rocker-cleanups' Simon Horman says: ==================== rocker: unused parameter and const cleanups This series provides some minor though verbose cleanup of rocker. The second patch depends on the first though it could be rebased. I had previously asked for v2 to be put on hold while some bugs I had found in the rocker driver were shaken out. That has now happened and the bugs turned out to be unrelated. Accordingly I am reposting the series. * Changes v2 -> v3 - Rebase and update for new variables and parameters that may be const * Changes v1 -> v2 - Found quite a few more variables and parameters to make const ==================== Signed-off-by: David S. Miller commit e5054643551f183e1aefb03f5a1f3e903b98368b Author: Simon Horman Date: Mon May 25 14:28:36 2015 +0900 rocker: mark parameters and local variables as const Mark parameters and local variables as const where possible. Signed-off-by: Simon Horman Acked-by: Scott Feldman Acked-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/rocker/rocker.c | 415 ++++++++++++++++++----------------- 1 file changed, 215 insertions(+), 200 deletions(-) commit 0985df7390fd7285eb1aeed788107fa56ffdae1f Author: Simon Horman Date: Mon May 25 14:28:35 2015 +0900 rocker: remove unused rocker_port parameter from rocker_port_kfree Remove unused rocker_port parameter from rocker_port_kfree. Also remove the rocker_port parameter from callers of rocker_port_kfree where the parameter it is now unused. Signed-off-by: Simon Horman Acked-by: Scott Feldman Acked-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/rocker/rocker.c | 54 +++++++++++++++++------------------- 1 file changed, 25 insertions(+), 29 deletions(-) commit d5eefa8280a8bb1e8aef059154bc1d63e1ac3336 Author: Rafael J. Wysocki Date: Thu May 21 04:19:49 2015 +0200 ACPI / PM: Turn power resources on and off in the right order during resume According to Section 7.2 of ACPI 6.0, power resources should always be enabled and disabled in order given by the "resourceorder" field of the corresponding Power Resource objects: "Power Resource levels are enabled from low values to high values and are disabled from high values to low values." However, this is not what happens during system resume, because in that case the enabling/disabling is carried out in the power resource registration order which may not reflect the ordering required by the platform. For this reason, make the ordering of the global list of all power resources in the system (used by the system resume code) reflect the one given by the "resourceorder" attributes of the Power Resource objects in the ACPI namespace and modify acpi_resume_power_resources() to walk the list in the reverse order when turning off the power resources that had been off before the system was suspended. Signed-off-by: Rafael J. Wysocki drivers/acpi/power.c | 40 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 36 insertions(+), 4 deletions(-) commit 005e8709c6179b75830971efa891c7ed33e02d1e Author: Nicholas Mc Guire Date: Mon May 25 08:16:50 2015 +0200 irda: use msecs_to_jiffies for conversion to jiffies API compliance scanning with coccinelle flagged: ./net/irda/timer.c:63:35-37: use of msecs_to_jiffies probably perferable Converting milliseconds to jiffies by "val * HZ / 1000" technically is not a clean solution as it does not handle all corner cases correctly. By changing the conversion to use msecs_to_jiffies(val) conversion is correct in all cases. Further the () around the arithmetic expression was dropped. Patch was compile tested for x86_64_defconfig + CONFIG_IRDA=m Patch is against 4.1-rc4 (localversion-next is -next-20150522) Signed-off-by: Nicholas Mc Guire Signed-off-by: David S. Miller net/irda/timer.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit d07ce242e69190b6f033ffd49b8c77931deba4b3 Author: Joe Perches Date: Sat May 23 10:32:55 2015 -0700 neterion: s2io: Fix kernel doc formatting These two uses seem to have had carriage returns removed. Make these entries like all the others in this file. Signed-off-by: Joe Perches Signed-off-by: David S. Miller drivers/net/ethernet/neterion/s2io.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit f3b6ced236259a87829b829e8e542ff53bfb9a4f Author: Bob Moore Date: Mon May 25 08:15:35 2015 +0800 ACPICA: Fix for ill-formed GUID strings for NFIT tables. ACPICA commit 60052949ba2aa7377106870da69b237193d10dc1 Error in transcription from the ACPI spec. Link: https://github.com/acpica/acpica/commit/60052949 Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki include/acpi/acuuid.h | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 6c0d14680e247849cdb870c995a332781bdb93f2 Author: Bob Moore Date: Mon May 25 08:15:27 2015 +0800 ACPICA: acpihelp: Update for new NFIT table GUIDs. ACPICA commit 83727bed8f715685a63a9f668e73c60496a06054 Add original UUIDs/GUIDs to the acuuid.h file. Cleanup acpihelp output for UUIDs/GUIDs. Link: https://github.com/acpica/acpica/commit/83727bed Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki include/acpi/acuuid.h | 43 ++++++++++++++++++++++++++++++++++--------- 1 file changed, 34 insertions(+), 9 deletions(-) commit bbfe0f37aee52d39999d5e475e1172a58f958a82 Author: Nicholas Mc Guire Date: Sat May 23 14:46:30 2015 +0200 irda: irda-usb: use msecs_to_jiffies for conversions API compliance scanning with coccinelle flagged: Converting milliseconds to jiffies by "val * HZ / 1000" is technically is not a clean solution as it does not handle all corner cases correctly. By changing the conversion to use msecs_to_jiffies(val) conversion is correct in all cases. in the current code: mod_timer(&self->rx_defer_timer, jiffies + (10 * HZ / 1000)); for HZ < 100 (e.g. CONFIG_HZ == 64|32 in alpha) this effectively results in no delay at all. Patch was compile tested for x86_64_defconfig (implies CONFIG_USB_IRDA=m) Patch is against 4.1-rc4 (localversion-next is -next-20150522) Signed-off-by: Nicholas Mc Guire Signed-off-by: David S. Miller drivers/net/irda/irda-usb.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 6ae4ae8e512bd229f806c22f8a2cd751e4f987c2 Author: Linus Lüssing Date: Sat May 23 03:12:34 2015 +0200 bridge: allow setting hash_max + multicast_router if interface is down Network managers like netifd (used in OpenWRT for instance) try to configure interface options after creation but before setting the interface up. Unfortunately the sysfs / bridge currently only allows to configure the hash_max and multicast_router options when the bridge interface is up. But since br_multicast_init() doesn't start any timers and only sets default values and initializes timers it should be save to reconfigure the default values after that, before things actually get active after the bridge is set up. Signed-off-by: Linus Lüssing Signed-off-by: David S. Miller net/bridge/br_multicast.c | 24 +++--------------------- 1 file changed, 3 insertions(+), 21 deletions(-) commit 485fca664d76c47fb2a17dcd2ce705a0f137cc3b Author: Florian Westphal Date: Fri May 22 00:44:16 2015 +0200 ipv6: don't increase size when refragmenting forwarded ipv6 skbs since commit 6aafeef03b9d ("netfilter: push reasm skb through instead of original frag skbs") we will end up sometimes re-fragmenting skbs that we've reassembled. ipv6 defrag preserves the original skbs using the skb frag list, i.e. as long as the skb frag list is preserved there is no problem since we keep original geometry of fragments intact. However, in the rare case where the frag list is munged or skb is linearized, we might send larger fragments than what we originally received. A router in the path might then send packet-too-big errors even if sender never sent fragments exceeding the reported mtu: mtu 1500 - 1500:1400 - 1400:1280 - 1280 A R1 R2 B 1 - A sends to B, fragment size 1400 2 - R2 sends pkttoobig error for 1280 3 - A sends to B, fragment size 1280 4 - R2 sends pkttoobig error for 1280 again because it sees fragments of size 1400. make sure ip6_fragment always caps MTU at largest packet size seen when defragmented skb is forwarded. Acked-by: Hannes Frederic Sowa Signed-off-by: Florian Westphal Signed-off-by: David S. Miller net/ipv6/ip6_output.c | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) commit 376cd36dc7b68ec7f7de1428fa055ce706a33bbf Author: Shailendra Verma Date: Tue May 26 01:17:23 2015 +0530 atm:he - Change 1 to true for bool type variable. The variable irq_coalesce is bool type. So assign the value true instead of 1. Signed-off-by: Shailendra Verma Signed-off-by: David S. Miller drivers/atm/he.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c489dbb1892ed02fa01e1423968f7dfea462a486 Author: Shailendra Verma Date: Mon May 25 23:19:31 2015 +0530 net:xen-netback - Change 1 to true for bool type variable. The variable separate_tx_rx_irq is bool type so assigning true instead of 1. Signed-off-by: Shailendra Verma Signed-off-by: David S. Miller drivers/net/xen-netback/netback.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 589fca16c14adec7ebeb601e22850826e18b8f8d Author: Álvaro Fernández Rojas Date: Thu May 21 10:11:10 2015 -0700 leds: add BCM6358 LED driver This adds support for the LED controller on Broadcom's BCM6358. Signed-off-by: Álvaro Fernández Rojas Acked-by: Jacek Anaszewski Signed-off-by: Bryan Wu drivers/leds/Kconfig | 8 ++ drivers/leds/Makefile | 1 + drivers/leds/leds-bcm6358.c | 243 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 252 insertions(+) commit c87cc34273dae2774d24d1ddd4edcadcce571a4e Author: Álvaro Fernández Rojas Date: Thu May 21 10:11:09 2015 -0700 leds: add DT binding for BCM6358 LED controller This adds device tree binding documentation for the Broadcom BCM6358 LED controller. Signed-off-by: Álvaro Fernández Rojas Acked-by: Jacek Anaszewski Signed-off-by: Bryan Wu .../devicetree/bindings/leds/leds-bcm6358.txt | 145 +++++++++++++++++++++ 1 file changed, 145 insertions(+) commit 76931edd54f87d1e49536cd068df4783fae24d45 Author: Stas Sergeev Date: Thu May 14 08:24:02 2015 -0700 leds: fix brightness changing when software blinking is active The following sequence: echo timer >/sys/class/leds//trigger echo 1 >/sys/class/leds//brightness should change the ON brightness for blinking. The function led_set_brightness() was mistakenly initiating the delayed blink stop procedure, which resulted in no blinking with the timer trigger still active. This patch fixes the problem by changing led_set_brightness() to not initiate the delayed blink stop when brightness is not 0. CC: Richard Purdie CC: Kyungmin Park CC: linux-leds@vger.kernel.org CC: linux-kernel@vger.kernel.org Acked-by: Jacek Anaszewski Signed-off-by: Stas Sergeev Signed-off-by: Bryan Wu drivers/leds/led-class.c | 5 +++++ drivers/leds/led-core.c | 5 +++-- 2 files changed, 8 insertions(+), 2 deletions(-) commit 7ff6b23251955dc1cf108eb4619b4a2eeac75bca Author: Toshi Kikuchi Date: Tue May 12 18:15:14 2015 -0700 Documentation: leds-lp5523: describe master fader attributes Add the usage of the new attributes for master faders. Signed-off-by: Toshi Kikuchi Acked-by: Milo Kim Acked-by: Jacek Anaszewski Signed-off-by: Bryan Wu Documentation/leds/leds-lp5523.txt | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) commit 52da81eafaff1388b2df97b79d317c93a048899c Author: Toshi Kikuchi Date: Mon May 11 12:10:54 2015 -0700 leds: lp5523: add master_fader support This patch introduces 4 new attributes: master_fader_leds master_fader1 master_fader2 master_fader3 Fo example, to map channel 0,6 to master_fader1, map channel 1,7 to master_fader2, map channel 2,8 to master_fader3, and map channel 3,4,5 to none echo "123000123" > master_fader_leds A different factor can be set to each master_fader: echo 255 > master_fader1 echo 100 > master_fader2 echo 0 > master_fader3 Signed-off-by: Toshi Kikuchi Acked-by: Milo Kim Tested-by: Milo Kim Acked-by: Jacek Anaszewski Signed-off-by: Bryan Wu drivers/leds/leds-lp5523.c | 148 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 148 insertions(+) commit 9ab1963d83fd5709037f2ef62cfe0062c538fe83 Author: Geert Uytterhoeven Date: Thu May 7 01:08:10 2015 -0700 leds: leds-gpio: Allow compile test if !GPIOLIB The GPIO subsystem provides dummy GPIO consumer functions if GPIOLIB is not enabled. Hence drivers that depend on GPIOLIB, but use GPIO consumer functionality only, can still be compiled if GPIOLIB is not enabled. Relax the dependency of LEDS_GPIO on GPIOLIB if COMPILE_TEST is enabled. Signed-off-by: Geert Uytterhoeven Acked-by: Jacek Anaszewski Acked-by: Linus Walleij Signed-off-by: Bryan Wu drivers/leds/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 403097f7205dcf8e6a53091063b6a4b847d35484 Author: Geert Uytterhoeven Date: Thu May 7 01:08:09 2015 -0700 leds: leds-gpio: Add missing #include Signed-off-by: Geert Uytterhoeven Acked-by: Jacek Anaszewski Signed-off-by: Bryan Wu drivers/leds/leds-gpio.c | 1 + 1 file changed, 1 insertion(+) commit 496e7ce2a46562938edcb74f65b26068ee8895f6 Author: Geert Uytterhoeven Date: Thu May 7 01:08:08 2015 -0700 gpiolib: Add missing dummies for the unified device properties interface If GPIOLIB=n: drivers/leds/leds-gpio.c: In function ‘gpio_leds_create’: drivers/leds/leds-gpio.c:187: error: implicit declaration of function ‘devm_get_gpiod_from_child’ drivers/leds/leds-gpio.c:187: warning: assignment makes pointer from integer without a cast Add dummies for fwnode_get_named_gpiod() and devm_get_gpiod_from_child() for the !GPIOLIB case to fix this. Signed-off-by: Geert Uytterhoeven Fixes: 40b7318319281b1b ("gpio: Support for unified device properties interface") Acked-by: Alexandre Courbot Acked-by: Linus Walleij Signed-off-by: Bryan Wu include/linux/gpio/consumer.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit b7da8c5c725cc2db97d1944cc34c08692aeacc85 Author: Ingi Kim Date: Tue May 12 01:37:57 2015 -0700 leds: Add ktd2692 flash LED driver This patch adds a driver to support the ktd2692 flash LEDs. ktd2692 can control flash current by ExpressWire interface. Signed-off-by: Ingi Kim Acked-by: Seung-Woo Kim Reviewed-by: Varka Bhadram Acked-by: Jacek Anaszewski Signed-off-by: Bryan Wu drivers/leds/Kconfig | 9 + drivers/leds/Makefile | 1 + drivers/leds/leds-ktd2692.c | 443 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 453 insertions(+) commit 84b5def48fde3468539b9c81c6cdf2799e04913e Author: Ingi Kim Date: Tue May 12 01:37:56 2015 -0700 leds: ktd2692: add device tree bindings for ktd2692 This patch adds the device tree bindings for ktd2692 flash LEDs. Add Optional properties of child node for Flash LED Signed-off-by: Ingi Kim Acked-by: Seung-Woo Kim Reviewed-by: Varka Bhadram Acked-by: Jacek Anaszewski Signed-off-by: Bryan Wu .../devicetree/bindings/leds/leds-ktd2692.txt | 50 ++++++++++++++++++++++ 1 file changed, 50 insertions(+) commit d4855eeb9f7b71b1338ea0d66efbecceea840824 Author: Ingi Kim Date: Tue May 12 01:37:55 2015 -0700 of: Add vendor prefix for Kinetic technologies This patch adds vendor prefix for Kinetic technologies Signed-off-by: Ingi Kim Acked-by: Rob Herring Acked-by: Seung-Woo Kim Reviewed-by: Varka Bhadram Signed-off-by: Bryan Wu Documentation/devicetree/bindings/vendor-prefixes.txt | 1 + 1 file changed, 1 insertion(+) commit f1138a84a314d95bece2dea91487a733de31d6e8 Author: Hannes Reinecke Date: Fri Apr 24 13:18:29 2015 +0200 advansys: remove 'ERR' definition Signed-off-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/advansys.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit ae26759e1ceb686ce725e91f0048b90dd98c91ee Author: Hannes Reinecke Date: Fri Apr 24 13:18:28 2015 +0200 advansys: Remove 'TRUE' and 'FALSE' definitions Use 'bool' type instead. Signed-off-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/advansys.c | 79 ++++++++++++++++++++++++------------------------- 1 file changed, 38 insertions(+), 41 deletions(-) commit 95cfab6c11180f13f0dc47cfef36092189e05801 Author: Hannes Reinecke Date: Fri Apr 24 13:18:27 2015 +0200 advansys: use standard data types No point in defining our own. Signed-off-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/advansys.c | 172 +++++++++++++++++++----------------------------- 1 file changed, 66 insertions(+), 106 deletions(-) commit d647c78346ea15103b31dcd8cc3eff8099943a14 Author: Hannes Reinecke Date: Fri Apr 24 13:18:26 2015 +0200 advansys: use 'bool' instead of 'int' Signed-off-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/advansys.c | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) commit 0ce538226b7a9cbddf812ff94d9f94f8445b0eeb Author: Hannes Reinecke Date: Fri Apr 24 13:18:25 2015 +0200 advansys: Use dma_pool for sg elements The sg elements should be allocated from a dma pool. And rename the structure to 'adv_sg_block' as they are only used by the wide board. Signed-off-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/advansys.c | 108 ++++++++++++++++++++---------------------------- 1 file changed, 45 insertions(+), 63 deletions(-) commit 4b47e464510c524bcf043f0a66172894abf8801a Author: Hannes Reinecke Date: Fri Apr 24 13:18:24 2015 +0200 advansys: Use DMA-API for mapping request blocks Signed-off-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/advansys.c | 108 ++++++++++++++++++++++++------------------------ 1 file changed, 54 insertions(+), 54 deletions(-) commit 98b96a7d99c86d4097db57fa38fc265f17c9d134 Author: Hannes Reinecke Date: Fri Apr 24 13:18:23 2015 +0200 advansys: Use DMA-API for carrier buffer Signed-off-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/advansys.c | 236 +++++++++++++++++++++--------------------------- 1 file changed, 103 insertions(+), 133 deletions(-) commit 811ddc057aac7228858fbb9cdd88137714dd807a Author: Hannes Reinecke Date: Fri Apr 24 13:18:22 2015 +0200 advansys: use DMA-API for mapping sense buffer Signed-off-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/advansys.c | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) commit 04b8c8143d46453a443ac32bfcd76ec952605765 Author: Daniel Drake Date: Thu May 21 08:23:50 2015 -0600 Bluetooth: btusb: fix Realtek suspend/resume Realtek btusb devices don't currently work after suspend/resume because the updated firmware is quietly lost - the USB hub doesn't notice any status change upon resume, but some kind of reset has definitely happened as the LMP subversion has reverted to its original value. Set the reset_resume flag to trigger probe and upload the new firmware again. Like the vendor code, I assume this is not needed when the device is selected as a wakeup source and hence will retain power during suspend. On the 2 products I have to hand, when trying this configuration the hardware seems unable to keep the device powered up during suspend. The USB hub then detects a status change on resume and does a reset, so we do not end up in broken state. Signed-off-by: Daniel Drake Signed-off-by: Marcel Holtmann drivers/bluetooth/btusb.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) commit bff6b89f86f5f4884e844300c5dc729b3d405681 Author: Shailendra Verma Date: Tue May 26 00:00:57 2015 +0530 Bluetooth: hci_uart: Change 1 to true for bool type variables assignments The variables txcrc and hciextn are bool type. So assigning true instead of 1. Signed-off-by: Shailendra Verma Signed-off-by: Marcel Holtmann drivers/bluetooth/hci_bcsp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 917a33379258c137324cb9204e2f2f6ed8dc2b78 Author: Shailendra Verma Date: Mon May 25 23:53:40 2015 +0530 Bluetooth: btusb: Change 1 to true in bool type variable assignment The reset is a bool type variable. So assigning true to reset instead of 1. Signed-off-by: Shailendra Verma Signed-off-by: Marcel Holtmann drivers/bluetooth/btusb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7f6e63631dbd7fd6689b4ee301d0eea0f34c5535 Author: Chan-yeol Park Date: Thu May 21 11:24:27 2015 +0900 Bluetooth: btusb: Support QCA61x4 ROME v2.0 The previous commit(3267c88) missed QCA61x4 ROME v2.0 info on Samsung so its BT is not activated and the below message is shown. [ 8.009638] usb 1-1: New USB device found, idVendor=0cf3, idProduct=e300 [ 8.012637] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0 [ 8.102901] Bluetooth: hci0: don't support firmware rome 0x200 This patch adds QCA61x4 ROME v2.0 info in qca_devices_table[], and is verified on Samsung with the firmware provided by Kim, Ben Young Tae . T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=12 MxCh= 0 D: Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs= 1 P: Vendor=0cf3 ProdID=e300 Rev= 0.01 C:* #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA I:* If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=81(I) Atr=03(Int.) MxPS= 16 Ivl=1ms E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms I:* If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 0 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 0 Ivl=1ms I: If#= 1 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 9 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 9 Ivl=1ms I: If#= 1 Alt= 2 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 17 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 17 Ivl=1ms I: If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 25 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 25 Ivl=1ms I: If#= 1 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 33 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 33 Ivl=1ms I: If#= 1 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 49 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 49 Ivl=1ms Signed-off-by: Chan-yeol Park Signed-off-by: Marcel Holtmann drivers/bluetooth/btusb.c | 1 + 1 file changed, 1 insertion(+) commit c1a34035506d3a7ad62403125d59c86b763c477d Merge: 01b6961 d52d399 Author: David S. Miller Date: Mon May 25 13:25:35 2015 -0400 Merge branch 'ipv6_route_sharing' Martin KaFai Lau says: ==================== ipv6: Only create RTF_CACHE route after encountering pmtu exception v4 -> v5: - Patch 1 is new. Clean up the ipv6_select_ident() and ip6_fragment(). - Further simplify the newly added rt6_get_pcpu_route(). If there is a 'prev' after cmpxchg, return prev instead of the newly created percpu clone. v3 -> v4: - Patch 8 is new. It keeps track of the DST_NOCACHE routes in a list to handle the iface down/unregister event. - Remove rcu from the newly added rt6i_pcpu variable. It is not needed because it has already been protected by the existing reader/writer lock. - Thanks to 'Julian Anastasov ' for testing the FLOWI_FLAG_KNOWN_NH patches. v2 -> v3: - Patch 5 to 7 are new. They take care of cases where the daddr in skb is not the one used to do the route look-up. There is also related changes to rt6_nexthop() since v2 which is in patch 2/9. Thanks to 'Julian Anastasov ' for pointing it out. - Fix a few problems in __ip6_rt_update_pmtu(), like setting the expire and mtu before inserting to the tree and don't do dst_destroy() after tree insertion failure. Also update the rt6i_pmtu in fib6_add_rt2node(). Thanks to 'Steffen Klassert ' for pointing it out. - Merge ip6_pmtu_rt_cache_alloc() into ip6_rt_cache_alloc(). v1 -> v2: - Move the /128 route bug fixes to another series (accepted). - Create a function for checking (rt6i_flags & (RTF_NONEXTHOP | RTF_GATEWAY)). - Avoid shuffling the skb network_header. Instead, change the function signature to take iph instead of skb. - Many Thanks to 'Hannes Frederic Sowa ' on reviewing v1 and v2 and giving advice. --Martin ~~~ start: v1 compose message (with the out-dated parts removed) ~~~ This series is to avoid creating a RTF_CACHE route whenever we are consulting the fib6 tree with a new destination. Instead, only create RTF_CACHE route when we see a pmtu exception. Out of all ipv6 RTF_CACHE routes that are created, the percentage that has a different mtu is very small. In one of our end-user facing proxy server, only 1k out of 80k RTF_CACHE routes have a smaller MTU. For our DC traffic, there is no mtu exception. A large fib6 tree has problems like, 'ip -6 r show' takes a long time. gc may kick in too often. Also, when a service has restarted and a lot of new TCP conn requests come in, it creates pressure on the tree by inserting a lot of RTF_CACHE in a short time and it currently requires a write lock to do that. The first few patches are prep works to remove assumption that the returned rt is always RTF_CACHE. The patch 'ipv6: Only create RTF_CACHE routes after encountering pmtu exception' do the lazy RTF_CACHE route creation. The following patches added percpu rt to compensate the performance loss after doing the RTF_CACHE lazy creation. Here is some numbers of the udpflood test. The udpflood has been slightly modified to have a time limit instead of count limit. A /64 via gateway route is used for the test. Each udpflood uses 10000 dst addresses. The dst addresses of different udpflood processes do not overlap with each other. 1 16M 15M 10 61M 61M 20 65M 62M 40 88M 83M ~~~ end: v1 compose message ~~~ ==================== Signed-off-by: David S. Miller commit d52d3997f843ffefaa8d8462790ffcaca6c74192 Author: Martin KaFai Lau Date: Fri May 22 20:56:06 2015 -0700 ipv6: Create percpu rt6_info After the patch 'ipv6: Only create RTF_CACHE routes after encountering pmtu exception', we need to compensate the performance hit (bouncing dst->__refcnt). Signed-off-by: Martin KaFai Lau Cc: Hannes Frederic Sowa Cc: Steffen Klassert Cc: Julian Anastasov Signed-off-by: David S. Miller include/net/ip6_fib.h | 3 +- include/uapi/linux/ipv6_route.h | 1 + net/ipv6/ip6_fib.c | 24 +++++++- net/ipv6/route.c | 132 +++++++++++++++++++++++++++++++++++----- 4 files changed, 142 insertions(+), 18 deletions(-) commit 83a09abd1a8badbbb715f928d07c65ac47709c47 Author: Martin KaFai Lau Date: Fri May 22 20:56:05 2015 -0700 ipv6: Break up ip6_rt_copy() This patch breaks up ip6_rt_copy() into ip6_rt_copy_init() and ip6_rt_cache_alloc(). In the later patch, we need to create a percpu rt6_info copy. Hence, refactor the common rt6_info init codes to ip6_rt_copy_init(). Signed-off-by: Martin KaFai Lau Cc: Hannes Frederic Sowa Cc: Steffen Klassert Cc: Julian Anastasov Signed-off-by: David S. Miller net/ipv6/route.c | 90 ++++++++++++++++++++++++++------------------------------ 1 file changed, 41 insertions(+), 49 deletions(-) commit 8d0b94afdca84598912347e61defa846a0988d04 Author: Martin KaFai Lau Date: Fri May 22 20:56:04 2015 -0700 ipv6: Keep track of DST_NOCACHE routes in case of iface down/unregister This patch keeps track of the DST_NOCACHE routes in a list and replaces its dev with loopback during the iface down/unregister event. Signed-off-by: Martin KaFai Lau Cc: Hannes Frederic Sowa Cc: Steffen Klassert Cc: Julian Anastasov Signed-off-by: David S. Miller include/net/ip6_fib.h | 3 ++ net/ipv6/route.c | 78 +++++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 79 insertions(+), 2 deletions(-) commit 3da59bd94583d1239e4fbdee452265a160b9cd71 Author: Martin KaFai Lau Date: Fri May 22 20:56:03 2015 -0700 ipv6: Create RTF_CACHE clone when FLOWI_FLAG_KNOWN_NH is set This patch always creates RTF_CACHE clone with DST_NOCACHE when FLOWI_FLAG_KNOWN_NH is set so that the rt6i_dst is set to the fl6->daddr. Signed-off-by: Martin KaFai Lau Acked-by: Julian Anastasov Tested-by: Julian Anastasov Cc: Hannes Frederic Sowa Cc: Steffen Klassert Signed-off-by: David S. Miller include/net/ip6_fib.h | 3 +++ net/ipv6/route.c | 59 ++++++++++++++++++++++++++++++++++++++++++--------- 2 files changed, 52 insertions(+), 10 deletions(-) commit 48e8aa6e3137692d38f20e8bfff100e408c6bc53 Author: Martin KaFai Lau Date: Fri May 22 20:56:02 2015 -0700 ipv6: Set FLOWI_FLAG_KNOWN_NH at flowi6_flags The neighbor look-up used to depend on the rt6i_gateway (if there is a gateway) or the rt6i_dst (if it is a RTF_CACHE clone) as the nexthop address. Note that rt6i_dst is set to fl6->daddr for the RTF_CACHE clone where fl6->daddr is the one used to do the route look-up. Now, we only create RTF_CACHE clone after encountering exception. When doing the neighbor look-up with a route that is neither a gateway nor a RTF_CACHE clone, the daddr in skb will be used as the nexthop. In some cases, the daddr in skb is not the one used to do the route look-up. One example is in ip_vs_dr_xmit_v6() where the real nexthop server address is different from the one in the skb. This patch is going to follow the IPv4 approach and ask the ip6_pol_route() callers to set the FLOWI_FLAG_KNOWN_NH properly. In the next patch, ip6_pol_route() will honor the FLOWI_FLAG_KNOWN_NH and create a RTF_CACHE clone. Signed-off-by: Martin KaFai Lau Acked-by: Julian Anastasov Tested-by: Julian Anastasov Cc: Hannes Frederic Sowa Cc: Steffen Klassert Signed-off-by: David S. Miller net/ipv6/raw.c | 3 +++ net/netfilter/ipvs/ip_vs_xmit.c | 13 +++++++++---- net/netfilter/xt_TEE.c | 1 + 3 files changed, 13 insertions(+), 4 deletions(-) commit b197df4f0f3782782e9ea8996e91b65ae33e8dd9 Author: Martin KaFai Lau Date: Fri May 22 20:56:01 2015 -0700 ipv6: Add rt6_get_cookie() function Instead of doing the rt6->rt6i_node check whenever we need to get the route's cookie. Refactor it into rt6_get_cookie(). It is a prep work to handle FLOWI_FLAG_KNOWN_NH and also percpu rt6_info later. Signed-off-by: Martin KaFai Lau Cc: Hannes Frederic Sowa Cc: Steffen Klassert Cc: Julian Anastasov Signed-off-by: David S. Miller include/net/ip6_fib.h | 5 +++++ include/net/ip6_route.h | 2 +- net/ipv6/ip6_tunnel.c | 2 +- net/ipv6/tcp_ipv6.c | 3 +-- net/ipv6/xfrm6_policy.c | 6 ++---- net/netfilter/ipvs/ip_vs_xmit.c | 2 +- net/sctp/ipv6.c | 2 +- 7 files changed, 12 insertions(+), 10 deletions(-) commit 45e4fd26683c9a5f88600d91b08a484f7f09226a Author: Martin KaFai Lau Date: Fri May 22 20:56:00 2015 -0700 ipv6: Only create RTF_CACHE routes after encountering pmtu exception This patch creates a RTF_CACHE routes only after encountering a pmtu exception. After ip6_rt_update_pmtu() has inserted the RTF_CACHE route to the fib6 tree, the rt->rt6i_node->fn_sernum is bumped which will fail the ip6_dst_check() and trigger a relookup. Signed-off-by: Martin KaFai Lau Cc: Hannes Frederic Sowa Cc: Steffen Klassert Cc: Julian Anastasov Signed-off-by: David S. Miller include/net/ip6_route.h | 2 +- net/ipv6/ip6_fib.c | 1 + net/ipv6/route.c | 100 ++++++++++++++++++++++++------------------------ 3 files changed, 53 insertions(+), 50 deletions(-) commit 8b9df2657704dd313333a79497dde429f9190caa Author: Martin KaFai Lau Date: Fri May 22 20:55:59 2015 -0700 ipv6: Combine rt6_alloc_cow and rt6_alloc_clone A prep work for creating RTF_CACHE on exception only. After this patch, the same condition (rt->rt6i_flags & (RTF_NONEXTHOP | RTF_GATEWAY)) is checked twice. This redundancy will be removed in the later patch. Signed-off-by: Martin KaFai Lau Cc: Hannes Frederic Sowa Cc: Steffen Klassert Cc: Julian Anastasov Signed-off-by: David S. Miller net/ipv6/route.c | 45 ++++++++++++++++++++------------------------- 1 file changed, 20 insertions(+), 25 deletions(-) commit 2647a9b07032c5a95ddee1fcb65d95bddbc6b7f9 Author: Martin KaFai Lau Date: Fri May 22 20:55:58 2015 -0700 ipv6: Remove external dependency on rt6i_gateway and RTF_ANYCAST When creating a RTF_CACHE route, RTF_ANYCAST is set based on rt6i_dst. Also, rt6i_gateway is always set to the nexthop while the nexthop could be a gateway or the rt6i_dst.addr. After removing the rt6i_dst and rt6i_src dependency in the last patch, we also need to stop the caller from depending on rt6i_gateway and RTF_ANYCAST. Signed-off-by: Martin KaFai Lau Cc: Hannes Frederic Sowa Cc: Steffen Klassert Cc: Julian Anastasov Signed-off-by: David S. Miller include/net/ip6_route.h | 19 ++++++++++++++----- net/bluetooth/6lowpan.c | 2 +- net/ipv6/icmp.c | 4 ++-- net/ipv6/ip6_output.c | 5 +++-- net/ipv6/route.c | 6 +----- net/netfilter/nf_conntrack_h323_main.c | 4 ++-- net/netfilter/xt_addrtype.c | 2 +- 7 files changed, 24 insertions(+), 18 deletions(-) commit fd0273d7939f2ce3247f6aac5f6b9a0135d4cd39 Author: Martin KaFai Lau Date: Fri May 22 20:55:57 2015 -0700 ipv6: Remove external dependency on rt6i_dst and rt6i_src This patch removes the assumptions that the returned rt is always a RTF_CACHE entry with the rt6i_dst and rt6i_src containing the destination and source address. The dst and src can be recovered from the calling site. We may consider to rename (rt6i_dst, rt6i_src) to (rt6i_key_dst, rt6i_key_src) later. Signed-off-by: Martin KaFai Lau Reviewed-by: Hannes Frederic Sowa Cc: Steffen Klassert Cc: Julian Anastasov Signed-off-by: David S. Miller drivers/scsi/cxgbi/libcxgbi.c | 2 +- include/net/ipv6.h | 4 +++- net/ipv6/icmp.c | 2 +- net/ipv6/ip6_output.c | 13 ++++++++----- net/ipv6/ndisc.c | 2 +- net/ipv6/output_core.c | 10 ++++++---- net/ipv6/tcp_ipv6.c | 2 +- net/netfilter/ipvs/ip_vs_xmit.c | 4 ++-- net/sctp/ipv6.c | 3 ++- 9 files changed, 25 insertions(+), 17 deletions(-) commit 286c2349f6665c3e67f464a5faa14a0e28be4842 Author: Martin KaFai Lau Date: Fri May 22 20:55:56 2015 -0700 ipv6: Clean up ipv6_select_ident() and ip6_fragment() This patch changes the ipv6_select_ident() signature to return a fragment id instead of taking a whole frag_hdr as a param to only set the frag_hdr->identification. It also cleans up ip6_fragment() to obtain the fragment id at the beginning instead of using multiple "if" later to check fragment id has been generated or not. Signed-off-by: Martin KaFai Lau Cc: Hannes Frederic Sowa Cc: Steffen Klassert Cc: Julian Anastasov Signed-off-by: David S. Miller include/net/ipv6.h | 3 +-- net/ipv6/ip6_output.c | 17 ++++++----------- net/ipv6/output_core.c | 5 ++--- 3 files changed, 9 insertions(+), 16 deletions(-) commit 08acf38e3615a5cf641d84f815f3f3ebd2953243 Author: Joe Perches Date: Tue May 19 18:37:50 2015 -0700 dmaengine: rcar-dmac: Use DECLARE_BITMAP Use the generic mechanism to declare a bitmap instead of unsigned long. Signed-off-by: Joe Perches Signed-off-by: Vinod Koul drivers/dma/sh/rcar-dmac.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f5636854f3fcee3dcb45a9d0122cf099e72615e5 Author: Maninder Singh Date: Tue May 26 00:40:05 2015 +0530 dmaengine: pl330: Initialize pl330 for pl330_prep_dma_memcpy after NULL check of pch Currently pch pointer is already dereferenced before NULL check and thus we are getting below warning: warn: variable dereferenced before check 'pch' So initialize struct pl330_dmac *pl330 after NULL check of dma_pl330_chan *pch. Signed-off-by: Maninder Singh Reviewed-by: Vaneet Narang Signed-off-by: Vinod Koul drivers/dma/pl330.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 8f64b276702269288d975385e2284de62173e414 Author: Geert Uytterhoeven Date: Thu May 21 13:58:30 2015 +0200 dmaengine: shdma: r8a73a4: Make dma_ts_shift[] static dma_ts_shift[] isn't used outside this source file. All other users use the definition from arch/arm/mach-shmobile/dma-register.h. Signed-off-by: Geert Uytterhoeven Reviewed-by: Simon Horman Signed-off-by: Vinod Koul drivers/dma/sh/shdma-r8a73a4.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9c17c62aedb003cb7ea644c15f8cbb249c29c8ae Author: Hannes Reinecke Date: Fri Apr 24 13:18:21 2015 +0200 advansys: use shared host tag map for command lookup Convert to use a shared host tag map for command lookup. This saves us having an internal structure and avoid the command pointer abuse. Signed-off-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/advansys.c | 225 +++++++++++++++++------------------------------- 1 file changed, 79 insertions(+), 146 deletions(-) commit eac0b0c76ff904e66b115777cb3e40a98cca6764 Author: Hannes Reinecke Date: Fri Apr 24 13:18:20 2015 +0200 advansys: use host_reset The advansys_reset() function is actually a host reset, not a bus reset. And there is no need to have a 'last_reset' value; the same value exists in struct Scsi_Host. Signed-off-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/advansys.c | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) commit c5c2567fd360cfefd011cfbd82ede5ea8ca392a7 Author: Christoph Hellwig Date: Mon Apr 27 14:56:14 2015 +0200 virtio_scsi: don't select CONFIG_BLK_DEV_INTEGRITY T10 PI is just another optional feature, LLDDs should work without the infrastructure. Signed-off-by: Christoph Hellwig Reviewed-by: Paolo Bonzini Reviewed-by: Martin K. Petersen Signed-off-by: James Bottomley drivers/scsi/Kconfig | 1 - drivers/scsi/virtio_scsi.c | 11 ++++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) commit d56dfb41f5354209e077479a8b75271e550c034b Author: John Soni Jose Date: Sat Apr 25 08:18:25 2015 +0530 be2iscsi : Bump the driver version Bump the driver version [jejb: resolve conflict with 4627de9 MAINTAINERS, be2iscsi: change email domain] Signed-off-by: John Soni Jose Signed-off-by: Jayamohan Kallickal Reviewed-by: Mike Christie Signed-off-by: James Bottomley drivers/scsi/be2iscsi/be_main.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3f4134c12af8d76eb87e12bc47dd33a4fb1555d8 Author: John Soni Jose Date: Sat Apr 25 08:18:13 2015 +0530 be2iscsi : Logout of FW Boot Session Once be2iscsi driver is loaded and operational close Boot session established by FW. Signed-off-by: John Soni Jose Signed-off-by: Jayamohan Kallickal Reviewed-by: Mike Christie Signed-off-by: James Bottomley drivers/scsi/be2iscsi/be_cmds.h | 12 +++++++ drivers/scsi/be2iscsi/be_main.c | 3 ++ drivers/scsi/be2iscsi/be_mgmt.c | 69 +++++++++++++++++++++++++++++++++++++++++ drivers/scsi/be2iscsi/be_mgmt.h | 3 ++ 4 files changed, 87 insertions(+) commit eb1c46924dfb48489272e8dc561bed9693e143d4 Author: John Soni Jose Date: Sat Apr 25 08:17:45 2015 +0530 be2iscsi : Fix memory check before unmapping. Check DMA memory before it is unmapped. Signed-off-by: John Soni Jose Signed-off-by: Jayamohan Kallickal Reviewed-by: Mike Christie Signed-off-by: James Bottomley drivers/scsi/be2iscsi/be_main.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit 4e2bdf7a2b841422f207bb6d74819955e386a175 Author: John Soni Jose Date: Sat Apr 25 08:17:31 2015 +0530 be2iscsi : Fix memory leak in the unload path Driver was not freeing the DMA memory allocated for EQ/CQ in the unload path. This patch frees the DMA memory during the driver unload. Signed-off-by: John Soni Jose Signed-off-by: Jayamohan Kallickal Reviewed-by: Mike Christie Signed-off-by: James Bottomley drivers/scsi/be2iscsi/be_main.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) commit e307f3ac1294a399cd55ff4d25ae039bb6f53f16 Author: John Soni Jose Date: Sat Apr 25 08:17:19 2015 +0530 be2iscsi : Fix the PCI request region reserving. Reserve device PCI I/O and Memory resources. Signed-off-by: John Soni Jose Signed-off-by: Jayamohan Kallickal Reviewed-by: Mike Christie Signed-off-by: James Bottomley drivers/scsi/be2iscsi/be_main.c | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) commit 3efde86222098a301168df5f72ab774511298bca Author: John Soni Jose Date: Sat Apr 25 08:16:57 2015 +0530 be2iscsi : Fix the retry count for boot targets Increment the retry count to get the boot target info when port async event is received by the driver. Update sysfs enteries with the boot target parameters. Signed-off-by: Minh Tran Signed-off-by: John Soni Jose Signed-off-by: Jayamohan Kallickal Reviewed-by: Mike Christie Signed-off-by: James Bottomley drivers/scsi/be2iscsi/be_cmds.c | 4 ++++ drivers/scsi/be2iscsi/be_main.c | 23 ++++++++++++++++++++--- drivers/scsi/be2iscsi/be_main.h | 4 ++++ 3 files changed, 28 insertions(+), 3 deletions(-) commit a9555534d52a058a6cc4bff51b51a790b6943eeb Author: Christoph Hellwig Date: Thu Apr 23 16:34:24 2015 +0530 megaraid_sas : swap whole register in megasas_register_aen Swap the whole 32 bits we read from the hardware instead of swapping just the 16bits we care about in place later. Signed-off-by: Christoph Hellwig Signed-off-by: Sumit Saxena Reviewed-by: Hannes Reinecke Reviewed-by: Tomas Henzl Signed-off-by: James Bottomley drivers/scsi/megaraid/megaraid_sas_base.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 01d7f03ba00796bda4ffee6767785e9a0eb80962 Author: Christoph Hellwig Date: Thu Apr 23 16:34:09 2015 +0530 megaraid_sas : fix megasas_fire_cmd_fusion calling convention The fusion HBAs don't really use the instance template like the other variants, as it branches off at a much higher level. So instead of trying to squeeze megasas_fire_cmd_fusion into the wrong calling convention call it locally with argument data types that match what is passed. [jejb: fix up 32 bit compile failure] Signed-off-by: Christoph Hellwig Signed-off-by: Sumit Saxena Reviewed-by: Hannes Reinecke Reviewed-by: Tomas Henzl Signed-off-by: James Bottomley drivers/scsi/megaraid/megaraid_sas_fusion.c | 72 +++++++++++++---------------- 1 file changed, 31 insertions(+), 41 deletions(-) commit 2213a4673e46c951ed317792c095e4216e0d6b46 Author: Christoph Hellwig Date: Thu Apr 23 16:33:54 2015 +0530 megaraid_sas : add missing byte swaps to the sriov code Signed-off-by: Christoph Hellwig Signed-off-by: Sumit Saxena Reviewed-by: Hannes Reinecke Reviewed-by: Tomas Henzl Signed-off-by: James Bottomley drivers/scsi/megaraid/megaraid_sas_base.c | 46 +++++++++++++++++-------------- 1 file changed, 25 insertions(+), 21 deletions(-) commit 48433bd77b386bbf0abe6f065fe7cd021564651c Author: Christoph Hellwig Date: Thu Apr 23 16:33:39 2015 +0530 megaraid_sas : bytewise or should be done on native endian variables Signed-off-by: Christoph Hellwig Signed-off-by: Sumit Saxena Reviewed-by: Hannes Reinecke Reviewed-by: Tomas Henzl Signed-off-by: James Bottomley drivers/scsi/megaraid/megaraid_sas_fusion.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 48100b0ed0e5a34873828c0cdae8708804d57ee5 Author: Christoph Hellwig Date: Thu Apr 23 16:33:24 2015 +0530 megaraid_sas : move endianness conversion into caller of megasas_get_seq_num Converting structure fields in place is always a bad idea, and in this case by moving it into the only caller we also only have to do a single byte swap as most fields of this structure are never used. Signed-off-by: Christoph Hellwig Signed-off-by: Sumit Saxena Reviewed-by: Hannes Reinecke Reviewed-by: Tomas Henzl Signed-off-by: James Bottomley drivers/scsi/megaraid/megaraid_sas_base.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit c6f5bf814f0ad7ff11bd0054d1b0ff15df20d4b5 Author: Christoph Hellwig Date: Thu Apr 23 16:33:09 2015 +0530 megaraid_sas : add endianness conversions for all ones Add noop conversions for all ones to make sparse happy. Signed-off-by: Christoph Hellwig Signed-off-by: Sumit Saxena Reviewed-by: Hannes Reinecke Reviewed-by: Tomas Henzl Signed-off-by: James Bottomley drivers/scsi/megaraid/megaraid_sas_base.c | 2 +- drivers/scsi/megaraid/megaraid_sas_fp.c | 7 ++++--- drivers/scsi/megaraid/megaraid_sas_fusion.c | 9 +++++---- 3 files changed, 10 insertions(+), 8 deletions(-) commit 9ab9ed38f6186ca79ff151419e243440a1a002de Author: Christoph Hellwig Date: Thu Apr 23 16:32:54 2015 +0530 megaraid_sas : add endianness annotations This adds endianness annotations to all data structures, and a few variables directly referencing them. Signed-off-by: Christoph Hellwig Signed-off-by: Sumit Saxena Reviewed-by: Hannes Reinecke Reviewed-by: Tomas Henzl Signed-off-by: James Bottomley drivers/scsi/megaraid/megaraid_sas.h | 302 ++++++++++++++-------------- drivers/scsi/megaraid/megaraid_sas_base.c | 2 +- drivers/scsi/megaraid/megaraid_sas_fp.c | 10 +- drivers/scsi/megaraid/megaraid_sas_fusion.c | 2 +- drivers/scsi/megaraid/megaraid_sas_fusion.h | 276 ++++++++++++------------- 5 files changed, 296 insertions(+), 296 deletions(-) commit 8a232bb39917bf94c6e4224ae9ef3178c90fe352 Author: Christoph Hellwig Date: Thu Apr 23 16:32:39 2015 +0530 megaraid_sas : add missing __iomem annotations Signed-off-by: Christoph Hellwig Signed-off-by: Sumit Saxena Reviewed-by: Hannes Reinecke Reviewed-by: Tomas Henzl Signed-off-by: James Bottomley drivers/scsi/megaraid/megaraid_sas.h | 2 +- drivers/scsi/megaraid/megaraid_sas_base.c | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) commit 6a6981fea3b8a6e6ab6a533991e474270602b9e1 Author: kbuild test robot Date: Thu Apr 23 16:33:23 2015 +0530 megaraid_sas : megasas_complete_outstanding_ioctls() can be static drivers/scsi/megaraid/megaraid_sas_base.c:1701:6: sparse: symbol 'megasas_complete_outstanding_ioctls' was not declared. Should it be static? From: Christoph Hellwig Signed-off-by: Fengguang Wu Signed-off-by: Christoph Hellwig Signed-off-by: Sumit Saxena Reviewed-by: Hannes Reinecke Reviewed-by: Tomas Henzl Signed-off-by: James Bottomley drivers/scsi/megaraid/megaraid_sas_base.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5765c5b8b38ad8a5e2c5716ea9af29ff3f1d2a62 Author: Sumit.Saxena@avagotech.com Date: Thu Apr 23 16:32:09 2015 +0530 megaraid_sas : Support for Avago's Single server High Availability product This patch will add support for Single Server High Availability(SSHA) cluster support. Here is the short decsription of changes done to add support for SSHA- 1) Host will send system's Unique ID based on DMI_PRODUCT_UUID to firmware. 2) Toggle the devhandle in LDIO path for Remote LDs. Signed-off-by: Kashyap Desai Signed-off-by: Sumit Saxena Reviewed-by: Hannes Reinecke Reviewed-by: Tomas Henzl Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/megaraid/megaraid_sas.h | 17 +++++++++++++++-- drivers/scsi/megaraid/megaraid_sas_base.c | 15 ++++++++++++++- drivers/scsi/megaraid/megaraid_sas_fusion.c | 20 ++++++++++++++++++++ 3 files changed, 49 insertions(+), 3 deletions(-) commit 09fced191739963ff7ca8e61b67f80bd55c205f0 Author: Sumit.Saxena@avagotech.com Date: Thu Apr 23 16:31:54 2015 +0530 megaraid_sas : Add release date and update driver version This patch will upgrade the driver version and add back the release date and sysfs hook for the same. Some internal applications uses sysfs parameter for release date, so they were broken because of removal of release date from sysfs. Signed-off-by: Sumit Saxena Reviewed-by: Hannes Reinecke Reviewed-by: Tomas Henzl Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/megaraid/megaraid_sas.h | 3 ++- drivers/scsi/megaraid/megaraid_sas_base.c | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) commit 43cd7fe4957f29cb21d8feb60744f60cbbea030b Author: Sumit.Saxena@avagotech.com Date: Thu Apr 23 16:31:39 2015 +0530 megaraid_sas : Modify driver's meta data to reflect Avago Signed-off-by: Sumit Saxena Reviewed-by: Hannes Reinecke Reviewed-by: Tomas Henzl Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/megaraid/megaraid_sas_base.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 4026e9aac3ff108fd1885a7f05dd4b5a374b0bf8 Author: Sumit.Saxena@avagotech.com Date: Thu Apr 23 16:31:24 2015 +0530 megaraid_sas : Use Block layer tag support for internal command indexing megaraid_sas driver will use block layer provided tag for indexing internal MPT frames to get any unique MPT frame tied with tag. Each IO request submitted from SCSI mid layer will get associated MPT frame from MPT framepool (retrieved and return back using spinlock inside megaraid_sas driver's submission/completion call back). Getting MPT frame from MPT Frame pool is very expensive operation because of associated spin lock operation (spinlock overhead increase on multi NUMA node). This type of locking in driver is very expensive call considering each IO request need - Acquire and Release of the same lock. With this support, in IO path driver will directly provide the unique command index(which is based on block layer tag) and will get the MPT frame tied to the tag and this way driver can get rid off lock, which synchronizes the access to MPT frame pool while fetching and returning MPT frame from the pool. This support in driver provides siginificant performance improvement(on multi NUMA node system)on latest upstream with SCSI.MQ as well as on existing linux distributions. Here is the data for test executed at Avago- - IO Tool- FIO - 4 Socket SMC server. (4 NUMA node server) - 12 SSDs in JBOD mode . - 4K Rand READ, QD=32 - SCSI MQ x86_64 (Latest Upstream kernel) - upto 300% Performance Improvement. If IOs are running on single Node, perfromance gain is less, but as soon as increase number of nodes, performance improvement is significant. IOs running on all 4 NUMA nodes, with this patch applied IOPs observed was 1170K vs 344K IOPs seen without this patch. Logically, there are two parts of this patch- 1) Block layer tag support 2) changes in calling convention of return_cmd. part 2 will revert the changes done by patch- 90dc9d9 megaraid_sas : MFI MPT linked list corruption fix because changes done in part 1 has fixed the problem of MFI MPT linked list corruption. part 2 is very much dependent on part 1, so we decided to have single patch for these two logical changes. [jejb: remove chatty printk pointed out by hch] Signed-off-by: Kashyap Desai Signed-off-by: Sumit Saxena Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/megaraid/megaraid_sas.h | 13 +-- drivers/scsi/megaraid/megaraid_sas_base.c | 172 +++++++++------------------- drivers/scsi/megaraid/megaraid_sas_fusion.c | 151 ++++++------------------ drivers/scsi/megaraid/megaraid_sas_fusion.h | 5 - 4 files changed, 99 insertions(+), 242 deletions(-) commit d88da09a538d3a4b56fd1cc080983ae69cc2cee2 Author: Sumit.Saxena@avagotech.com Date: Thu Apr 23 16:31:09 2015 +0530 megaraid_sas : Enhanced few prints Signed-off-by: Sumit Saxena Reviewed-by: Hannes Reinecke Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/megaraid/megaraid_sas_base.c | 49 +++++++++++++++---------------- 1 file changed, 24 insertions(+), 25 deletions(-) commit f26ac3a1a5108df2bd1e30ee1c8bb6f7664929b5 Author: Sumit.Saxena@avagotech.com Date: Thu Apr 23 16:30:54 2015 +0530 megaraid_sas : Move controller's queue depth calculation in adapter specific function Signed-off-by: Kashyap Desai Signed-off-by: Sumit Saxena Reviewed-by: Hannes Reinecke Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/megaraid/megaraid_sas.h | 1 + drivers/scsi/megaraid/megaraid_sas_base.c | 39 +++++++++++------------------ drivers/scsi/megaraid/megaraid_sas_fusion.c | 9 +++++++ 3 files changed, 25 insertions(+), 24 deletions(-) commit 4a5c814d933911bcbeb33e238e1e427baf0802b2 Author: Sumit.Saxena@avagotech.com Date: Thu Apr 23 16:30:39 2015 +0530 megaraid_sas : Add separate functions for building sysPD IOs and non RW LDIOs Signed-off-by: Kashyap Desai Signed-off-by: Sumit Saxena Reviewed-by: Tomas Henzl Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/megaraid/megaraid_sas.h | 10 +- drivers/scsi/megaraid/megaraid_sas_base.c | 4 +- drivers/scsi/megaraid/megaraid_sas_fusion.c | 230 ++++++++++++++++------------ 3 files changed, 138 insertions(+), 106 deletions(-) commit 9b828182866d30f4a27f355d5e9bee95cf35ca46 Author: Sumit.Saxena@avagotech.com Date: Thu Apr 23 16:30:24 2015 +0530 megaraid_sas : Add separate function for refiring MFI commands This patch will add separate function for refiring MFI commands in Fusion adapters's OCR code. Signed-off-by: Kashyap Desai Signed-off-by: Sumit Saxena Reviewed-by: Hannes Reinecke Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/megaraid/megaraid_sas_fusion.c | 80 ++++++++++++++--------------- 1 file changed, 39 insertions(+), 41 deletions(-) commit d3557fc8be11d25f316884581f487684f8e7dad3 Author: Sumit.Saxena@avagotech.com Date: Thu Apr 23 16:30:09 2015 +0530 megaraid_sas : Add separate function for setting up IRQs This patch will create separate functions for- 1) setting up IRQs for MSI-x interrupts 2) setting up IRQs for legacy interrupts 3) freeing up IRQs. and enable interrupts after adapter's initialization. The reason behind initialising adapter earlier is: by that time firmware is operational and can send interrupts, so better to use interrupt based interface to send internal DCMD to firmware instead of using polling method, since MFI frames' pool size is reduced and polling method does not free up MFI frame for fusion adapters, so sending more DCMDs with polled method may cause MFI frames's pool go out of frames and end up failing DCMD. Signed-off-by: Kashyap Desai Signed-off-by: Sumit Saxena Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/megaraid/megaraid_sas_base.c | 281 ++++++++++++++---------------- 1 file changed, 135 insertions(+), 146 deletions(-) commit ea47ebf15d68d616cf0daef31e7f694d11b59f7f Author: Dan Carpenter Date: Tue Apr 14 17:32:19 2015 +0300 csiostor: fix an error code in csio_hw_init() We should return -ENOMEM if kzalloc() fails here instead of returning success. Signed-off-by: Dan Carpenter Reviewed-by: Tomas Henzl Signed-off-by: James Bottomley drivers/scsi/csiostor/csio_hw.c | 1 + 1 file changed, 1 insertion(+) commit 0d143c69a32d062ee859b75cab982a926ef79817 Author: Stephen Boyd Date: Fri Apr 10 16:11:06 2015 -0700 ufs-qcom: Switch dependency to ARCH_QCOM This device only exists on platforms under ARCH_QCOM, not ARCH_MSM. Signed-off-by: Stephen Boyd Reviewed-by: Yaniv Gardi Signed-off-by: James Bottomley drivers/scsi/ufs/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 305974fe011d9c2061b8da668c7da63ef0a4346d Author: kbuild test robot Date: Fri Apr 10 16:53:38 2015 +0800 aacraid: aac_src_intr_message() can be static Signed-off-by: Fengguang Wu Acked-by: Mahesh Rajashekhara Signed-off-by: James Bottomley drivers/scsi/aacraid/src.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1eb88a5d4af49bf5851b110d493b9007076fe24e Author: Karen Xie Date: Fri Apr 10 13:57:21 2015 -0700 cxgb4i: set the initial sequence number set the initial sequence number so the 1st byte of payload is aligned on the 8-byte boundary. Signed-off-by: Karen Xie Reviewed-by: Mike Christie Signed-off-by: James Bottomley drivers/scsi/cxgbi/cxgb4i/cxgb4i.c | 8 ++++++-- drivers/scsi/cxgbi/cxgb4i/cxgb4i.h | 2 ++ 2 files changed, 8 insertions(+), 2 deletions(-) commit 0ea5bf3dc16c868e302e85d627f885fcf1aa6e81 Author: Karen Xie Date: Fri Apr 10 13:57:18 2015 -0700 cxgbi: update driver versions Change driver version to follow the same format as other Chelsio drivers. Added missing release date back to cxgb4i and version string back to libcxgbi. Signed-off-by: Karen Xie Reviewed-by: Mike Christie Signed-off-by: James Bottomley drivers/scsi/cxgbi/cxgb3i/cxgb3i.c | 4 ++-- drivers/scsi/cxgbi/cxgb4i/cxgb4i.c | 5 +++-- drivers/scsi/cxgbi/libcxgbi.c | 10 ++++++++-- 3 files changed, 13 insertions(+), 6 deletions(-) commit 1149a5ed72548dfb3ca0cf328b3737ebc678262b Author: Karen Xie Date: Fri Apr 10 13:57:15 2015 -0700 cxgbi: update copyright to 2015 Signed-off-by: Karen Xie Reviewed-by: Mike Christie Signed-off-by: James Bottomley drivers/scsi/cxgbi/cxgb3i/cxgb3i.c | 2 +- drivers/scsi/cxgbi/cxgb3i/cxgb3i.h | 2 +- drivers/scsi/cxgbi/cxgb4i/cxgb4i.c | 2 +- drivers/scsi/cxgbi/cxgb4i/cxgb4i.h | 2 +- drivers/scsi/cxgbi/libcxgbi.c | 2 +- drivers/scsi/cxgbi/libcxgbi.h | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) commit 81daf10c76770ef9fbb59f4d024f67517edf21d3 Author: Karen Xie Date: Fri Apr 10 13:57:12 2015 -0700 cxgbi: use per-connection link-speed dependent send/recv windows For adapters supporting both 10G and 40G use per-connection send/recv window and calculate the size based on the link speed. Signed-off-by: Karen Xie Reviewed-by: Mike Christie Signed-off-by: James Bottomley drivers/scsi/cxgbi/cxgb3i/cxgb3i.c | 14 +++++++------- drivers/scsi/cxgbi/cxgb4i/cxgb4i.c | 37 +++++++++++++++++++++++++++---------- drivers/scsi/cxgbi/libcxgbi.c | 8 ++++---- drivers/scsi/cxgbi/libcxgbi.h | 4 ++-- 4 files changed, 40 insertions(+), 23 deletions(-) commit dee0586e15d5d5796dd76bdc0ecfb7df7c5ee1c8 Author: Dan Carpenter Date: Mon Jan 19 17:41:12 2015 +0300 sd: fix an error return in probe() If device_add() fails then it should return the error code but instead the current code returns success. Signed-off-by: Dan Carpenter Reviewed-by: Tomas Henzl Signed-off-by: James Bottomley drivers/scsi/sd.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit ef10b16948bc0db51a0140be5109ad73b170a011 Author: James Bottomley Date: Sun Apr 26 11:52:46 2015 -0700 scsi_scan: fix queue depth initialisation problem Currently we blindly use the value of cmd_per_lun as the initial setting for queue_depth. This fails miserably (hangs the system) if it is zero, which is the default value for anything uninitialised in the template. The net result is that every host template has to set a value for cmd_per_lun. Instead, use a default value of 1 if the actual value is unset. This should pave the way for removing cmd_per_lun from all the templates and eventually from SCSI itself. Signed-off-by: James Bottomley drivers/scsi/scsi_scan.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 26029d88ad1ba6ad7d1f16f22dc67aa8eac0d391 Author: Minfei Huang Date: Fri May 22 22:26:29 2015 +0800 livepatch: annotate klp_init() with __init module_init() function should be marked __init. [jkosina@suse.cz: remove overly verbose changelog] Signed-off-by: Minfei Huang Acked-by: Josh Poimboeuf Signed-off-by: Jiri Kosina kernel/livepatch/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e9f3ed4ac464de5a0cf277d0bf8457ea9f547dcf Author: Rafał Miłecki Date: Tue May 19 13:30:46 2015 +0200 ARM: mvebu: add "jedec,spi-nor" flash compatible binding Starting with commit 8947e396a829 ("Documentation: dt: mtd: replace "nor-jedec" binding with "jedec, spi-nor"") we have "jedec,spi-nor" binding indicating support for JEDEC identification. Use it for all flashes that are supposed to support READ ID op according to the datasheets. Signed-off-by: Rafał Miłecki Signed-off-by: Gregory CLEMENT arch/arm/boot/dts/armada-370-db.dts | 2 +- arch/arm/boot/dts/armada-370-synology-ds213j.dts | 2 +- arch/arm/boot/dts/armada-375-db.dts | 2 +- arch/arm/boot/dts/armada-385-db-ap.dts | 2 +- arch/arm/boot/dts/armada-388-db.dts | 2 +- arch/arm/boot/dts/armada-388-gp.dts | 2 +- arch/arm/boot/dts/armada-388-rd.dts | 2 +- arch/arm/boot/dts/armada-398-db.dts | 2 +- arch/arm/boot/dts/armada-xp-axpwifiap.dts | 2 +- arch/arm/boot/dts/armada-xp-db.dts | 2 +- arch/arm/boot/dts/armada-xp-gp.dts | 2 +- arch/arm/boot/dts/armada-xp-synology-ds414.dts | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) commit 943d45aafd1f5758d3a8d02ae7dd5ea288d240cb Author: Rafał Miłecki Date: Tue May 19 13:40:16 2015 +0200 ARM: kirkwood: add "jedec,spi-nor" flash compatible binding Starting with commit 8947e396a829 ("Documentation: dt: mtd: replace "nor-jedec" binding with "jedec, spi-nor"") we have "jedec,spi-nor" binding indicating support for JEDEC identification. Use it for all flashes that are supposed to support READ ID op according to the datasheets. Signed-off-by: Rafał Miłecki Signed-off-by: Gregory CLEMENT arch/arm/boot/dts/kirkwood-b3.dts | 2 +- arch/arm/boot/dts/kirkwood-cloudbox.dts | 2 +- arch/arm/boot/dts/kirkwood-dir665.dts | 2 +- arch/arm/boot/dts/kirkwood-dreamplug.dts | 2 +- arch/arm/boot/dts/kirkwood-lsxl.dtsi | 2 +- arch/arm/boot/dts/kirkwood-mv88f6281gtw-ge.dts | 2 +- arch/arm/boot/dts/kirkwood-netxbig.dtsi | 2 +- arch/arm/boot/dts/kirkwood-ns2-common.dtsi | 2 +- arch/arm/boot/dts/kirkwood-rd88f6192.dts | 2 +- arch/arm/boot/dts/kirkwood-synology.dtsi | 2 +- arch/arm/boot/dts/kirkwood-t5325.dts | 2 +- arch/arm/boot/dts/kirkwood-ts219.dtsi | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) commit 3abdd583312a2830129dc42e1e3d98368a8fda47 Author: Imre Kaloz Date: Wed May 20 23:14:16 2015 +0200 ARM: mvebu: add support for the new Armada 385 based Linksys boards This patch adds support for the Linksys WRT1200AC (Caiman) and the Linksys WRT1900AC v2 (Cobra). Both boards have: - 2 Marvell 88W8864 radios - 1 USB 3.0 port - 1 USB 2.0/eSATAp port - 2 Ethernet interfaces connected to a 88E6176 switch (1x WAN + 4x LAN) - 128MB NAND flash - 512MB RAM gregory.clement@free-electrons.com: use serial0:115200n8 in stdout-path and remove the bootargs part in the chosen node Signed-off-by: Imre Kaloz Acked-by: Andrew Lunn Signed-off-by: Gregory CLEMENT arch/arm/boot/dts/Makefile | 2 + arch/arm/boot/dts/armada-385-linksys-caiman.dts | 114 ++++++++ arch/arm/boot/dts/armada-385-linksys-cobra.dts | 114 ++++++++ arch/arm/boot/dts/armada-385-linksys.dtsi | 332 ++++++++++++++++++++++++ 4 files changed, 562 insertions(+) commit dc1ebd1811e984301f98f3f9edd192327d2e35e1 Author: Srinivas Kandagatla Date: Fri May 22 16:53:52 2015 +0100 ASoC: qcom: Add apq8016 lpass driver support This patch adds apq8016 lpass driver support. APQ8016 has 4 MI2S which can be routed to one internal codec and 2 external codec interfaces. Primary, Secondary, Quaternary I2S can do Rx(playback) and Tertiary and Quaternary can do Tx(capture). Tested-by: Kenneth Westfield Acked-by: Kenneth Westfield Signed-off-by: Srinivas Kandagatla Signed-off-by: Mark Brown include/dt-bindings/sound/apq8016-lpass.h | 9 ++ sound/soc/qcom/Kconfig | 6 + sound/soc/qcom/Makefile | 2 + sound/soc/qcom/lpass-apq8016.c | 242 ++++++++++++++++++++++++++++++ sound/soc/qcom/lpass.h | 4 + 5 files changed, 263 insertions(+) commit 2610abfb3a72f6e5444a710b695c9460138f9326 Author: Laurent Pinchart Date: Tue Apr 28 22:00:28 2015 +0300 drm: rcar-du: Split planes pre-association 4/4 between CRTCs If we have more than one CRTCs in a group pre-associate planes 0-3 with CRTC 0 and planes 4-7 with CRTC 1 to minimize flicker occurring when the association is changed. The pre-association could be controlled by a module parameter if needed. Signed-off-by: Laurent Pinchart drivers/gpu/drm/rcar-du/rcar_du_crtc.c | 3 --- drivers/gpu/drm/rcar-du/rcar_du_kms.c | 7 ++++--- 2 files changed, 4 insertions(+), 6 deletions(-) commit fe6fbe9a024e149e4230a338700d24db8806183a Author: Laurent Pinchart Date: Tue Apr 28 17:36:33 2015 +0300 drm: rcar-du: Store the number of CRTCs per group in the group structure The number of CRTCs in a group is only used to implement plane initialization for now, but is also needed to implement pre-association of planes to CRTCs. Store it in the group structure instead of computing it on demand. Signed-off-by: Laurent Pinchart drivers/gpu/drm/rcar-du/rcar_du_group.h | 2 ++ drivers/gpu/drm/rcar-du/rcar_du_kms.c | 1 + drivers/gpu/drm/rcar-du/rcar_du_plane.c | 6 ++---- 3 files changed, 5 insertions(+), 4 deletions(-) commit c8af99b60421c184cab1c3a849debce1463ec792 Author: Laurent Pinchart Date: Wed Apr 29 00:51:01 2015 +0300 drm: rcar-du: Consider plane to CRTC associations in the plane allocator Hardware planes are driven by the timing generator of the CRTC they are associated to. Changing the association requires restarting the CRTC group that the plane belongs to, resulting in flicker on the other CRTC. To avoid flicker as much as possible, try to allocate planes first from the free planes already associated with the target CRTC. If allocation fails then fall back to allocation from all free planes. Signed-off-by: Laurent Pinchart drivers/gpu/drm/rcar-du/rcar_du_kms.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) commit 2a57e9b5af2b96c45d8c73d34416e5dfa5dd38d9 Author: Laurent Pinchart Date: Tue Apr 28 18:01:45 2015 +0300 drm: rcar-du: Keep plane to CRTC associations when disabling a plane Changing the plane to CRTC associations requires restarting the CRTC group, creating visible flicker. Mitigate the issue by changing plane association only when a plane becomes enabled, not when it get disabled. Signed-off-by: Laurent Pinchart drivers/gpu/drm/rcar-du/rcar_du_crtc.c | 48 +++++++++++++++++++-------------- drivers/gpu/drm/rcar-du/rcar_du_group.c | 6 +++++ drivers/gpu/drm/rcar-du/rcar_du_group.h | 4 ++- 3 files changed, 37 insertions(+), 21 deletions(-) commit 08058611958bc161b1de991b494373b8bce56e6b Author: Laurent Pinchart Date: Wed Feb 25 22:31:52 2015 +0200 drm: rcar-du: Add plane allocation debugging Plane allocation is a complex process, add debugging statements to help finding out what could might wrong. Signed-off-by: Laurent Pinchart drivers/gpu/drm/rcar-du/rcar_du_kms.c | 38 ++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) commit ec69a40645c829fcec613b437f72451205ff601f Author: Laurent Pinchart Date: Wed Apr 29 00:48:17 2015 +0300 drm: rcar-du: Rename to_rcar_du_plane_state to to_rcar_plane_state All other cast functions are named without using "du", make the plane state cast consistent with them. Signed-off-by: Laurent Pinchart drivers/gpu/drm/rcar-du/rcar_du_crtc.c | 6 +++--- drivers/gpu/drm/rcar-du/rcar_du_kms.c | 8 ++++---- drivers/gpu/drm/rcar-du/rcar_du_plane.c | 16 ++++++++-------- drivers/gpu/drm/rcar-du/rcar_du_plane.h | 2 +- 4 files changed, 16 insertions(+), 16 deletions(-) commit 99caede11d84af4c0a16fd07f7d7ce9de94f6109 Author: Laurent Pinchart Date: Wed Apr 29 00:05:56 2015 +0300 drm: rcar-du: Embed rcar_du_planes structure into rcar_du_group The rcar_du_planes structure contains a single field and is only instantiated in the rcar_du_group structure. Embed it directly and remove the rcar_du_planes structure. Signed-off-by: Laurent Pinchart drivers/gpu/drm/rcar-du/rcar_du_crtc.c | 10 +++++----- drivers/gpu/drm/rcar-du/rcar_du_group.h | 2 +- drivers/gpu/drm/rcar-du/rcar_du_kms.c | 6 +++--- drivers/gpu/drm/rcar-du/rcar_du_plane.c | 3 +-- drivers/gpu/drm/rcar-du/rcar_du_plane.h | 4 ---- 5 files changed, 10 insertions(+), 15 deletions(-) commit 9f6aee952b18d9910912d7cedae9bd26bd901ac3 Author: Laurent Pinchart Date: Tue Apr 28 23:59:29 2015 +0300 drm: rcar-du: Move properties from rcar_du_planes to rcar_du_device The plane property objects are instantiated once per CRTC group, while they should be instantiated once globally for the device. Fix this and move them to the rcar_du_device structure. Signed-off-by: Laurent Pinchart drivers/gpu/drm/rcar-du/rcar_du_drv.h | 6 +++++ drivers/gpu/drm/rcar-du/rcar_du_kms.c | 29 +++++++++++++++++++++ drivers/gpu/drm/rcar-du/rcar_du_plane.c | 46 +++++++++------------------------ drivers/gpu/drm/rcar-du/rcar_du_plane.h | 4 --- 4 files changed, 47 insertions(+), 38 deletions(-) commit 0855c6827f822b51b2b4fc86d1085f47463cb5c9 Author: Laurent Pinchart Date: Wed Apr 29 00:12:40 2015 +0300 drm: rcar-du: Document the rcar_du_plane_state structure Document the structure fields using kerneldoc. Signed-off-by: Laurent Pinchart drivers/gpu/drm/rcar-du/rcar_du_plane.h | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit bce9936a0d7f6570aaa64a41e6ff902716aabfa6 Author: Laurent Pinchart Date: Wed Apr 29 01:11:57 2015 +0300 drm: rcar-du: Document the rcar_du_crtc structure Document the structure fields using kerneldoc. Signed-off-by: Laurent Pinchart drivers/gpu/drm/rcar-du/rcar_du_crtc.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit a1d0503d26ea2ef04f3f013d379e8f4d29c27127 Author: Laurent Pinchart Date: Thu May 14 00:31:07 2015 +0300 drm: adv7511: Fix crash in IRQ handler when no encoder is associated The ADV7511 is probed before its slave encoder init function associates it with an encoder. This creates a time window during which hot plug detection interrupts can occur with an encoder, resulting in a crash in the IRQ handler. Fix this by ignoring hot plug detection IRQs when no encoder is associated yet. Signed-off-by: Laurent Pinchart Acked-by: Lars-Peter Clausen drivers/gpu/drm/i2c/adv7511.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1d36f46b4e61ae7bd2ce013317cb3ca0298bbb6e Merge: 01b6961 48f4ca3 Author: Kalle Valo Date: Mon May 25 15:12:21 2015 +0300 Merge ath-next from ath.git Major changes: ath10k: * qca6174 power consumption improvements, enable ASPM etc (Michal) wil6210: * support Wi-Fi Simple Configuration in STA mode commit e616d2eba6d1ac8f3268cdf5d7b0424072c89a8d Author: Dylan Reid Date: Fri May 22 15:09:20 2015 -0700 ASoC: jack - add_gpiods accepts filled descriptors Allow for the desc field to be pre-filled when adding gpios to a jack. This allows drivers to get the gpios and decide if they should be added to the list or not. Specifically this will allow the gpio jack driver to add gpios based on device property specifications. Signed-off-by: Dylan Reid Signed-off-by: Mark Brown sound/soc/soc-jack.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 1fb1e0ec9a8ab87985448e8b82b20884a186ec31 Author: Dylan Reid Date: Fri May 22 15:09:19 2015 -0700 ASoC: Add jack types to dt-bindings Adding the jack type to the dt-bindings directory will allow for device tree files to specify the type of audio jacks that are present for a board. Signed-off-by: Dylan Reid Signed-off-by: Mark Brown include/dt-bindings/sound/audio-jack-events.h | 9 +++++++++ 1 file changed, 9 insertions(+) commit e712bfca1ac1f63f622f87c2f33b57608f2a4d19 Author: Maciej S. Szmigiero Date: Sat May 23 18:32:29 2015 +0200 ASoC: codecs: use SNDRV_PCM_FMTBIT_* for format bitmask snd_soc_pcm_stream.formats is a bitmask of SNDRV_PCM_FMTBIT_*, not of SNDRV_PCM_FORMAT_* (which are sequential integers), however some of ASoC CODEC drivers use these values instead. Found out by sparse on 0-day kernel tester. Signed-off-by: Maciej Szmigiero Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/88pm860x-codec.c | 16 ++++++++-------- sound/soc/codecs/stac9766.c | 2 +- sound/soc/codecs/wm8900.c | 4 ++-- sound/soc/codecs/wm9713.c | 4 ++-- 4 files changed, 13 insertions(+), 13 deletions(-) commit c4339ac775b0558373bb6882b8355cf6e85d5709 Author: Michael Welling Date: Sat May 23 21:13:45 2015 -0500 spi: omap2-mcspi: Handle error on gpio_request If a valid GPIO is specified but cannot be requested by the driver, print a message and error out of omap2_mcspi_setup. Signed-off-by: Michael Welling Signed-off-by: Mark Brown drivers/spi/spi-omap2-mcspi.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit a06b430fd82c816bf76fb6f6f63f1ae1ced3b897 Author: Michael Welling Date: Sat May 23 21:13:44 2015 -0500 spi: omap2-mcspi: Fix GPIO chip select support The OMAP2_MCSPI_CHCONF_FORCE must be toggled even when using GPIO chip selects. This patch conditionally calls the omap2_mcspi_set_cs function to do so when using GPIO chip selects. Signed-off-by: Michael Welling Signed-off-by: Mark Brown drivers/spi/spi-omap2-mcspi.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 4373f8b6dab0de16e5ecf527626d958d20a45b3b Author: Michael Welling Date: Sat May 23 21:13:43 2015 -0500 spi: omap2-mcspi: Fix set_cs function for active high The core spi driver swaps the polarity of the enable based on SPI_CS_HIGH. The omap2 controller has an internal configuration register bit called OMAP2_MCSPI_CHCONF_EPOL to handle active high chip selects as well. So we have to revert swap the polarity back for the correct setting of the OMAP2_MCSPI_CHCONF_FORCE bit in omap2_mcspi_set_cs. Signed-off-by: Michael Welling Signed-off-by: Mark Brown drivers/spi/spi-omap2-mcspi.c | 7 +++++++ 1 file changed, 7 insertions(+) commit be632f658462f5c80817a383c6d9b9790c0e7d1f Author: Michael Welling Date: Sat May 23 21:13:42 2015 -0500 spi: omap2-mcspi: Remove unnecessary delay The core spi driver handles the delay between transactions. This is a remanant from the transfer_one conversion. Signed-off-by: Michael Welling Signed-off-by: Mark Brown drivers/spi/spi-omap2-mcspi.c | 3 --- 1 file changed, 3 deletions(-) commit f490f326178a6fec87a9bc3d35525bc9cb96ef0e Author: Nicolin Chen Date: Sun May 24 01:12:41 2015 -0700 ASoC: fsl_spdif: Don't try to round-up for clock divisor calculation As commit 6c8ca30eec7b ("ASoC: fsl_ssi: Don't try to round-up for PM divisor calculation") mentioned that there's no more need to use a round up work around to get a better divisor since the clk-divider driver has been refined a lot. So this patch applies the same modification to fsl_spdif driver. Signed-off-by: Nicolin Chen Signed-off-by: Mark Brown sound/soc/fsl/fsl_spdif.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) commit ea6254e5c8e54cc43daea4c13b6c66de18b5295b Author: Axel Lin Date: Mon May 25 16:32:38 2015 +0800 regulator: da9062: Fix modalias Remove extra space between platform prefix and driver name in MODULE_ALIAS. Signed-off-by: Axel Lin Signed-off-by: Mark Brown drivers/regulator/da9062-regulator.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7250dc3fee806eb2b7560ab7d6072302e7ae8cf8 Author: Herton R. Krzesinski Date: Thu May 21 15:04:15 2015 -0300 HID: usbhid: add Chicony/Pixart usb optical mouse that needs QUIRK_ALWAYS_POLL I received a report from an user of following mouse which needs this quirk: usb 1-1.6: USB disconnect, device number 58 usb 1-1.6: new low speed USB device number 59 using ehci_hcd usb 1-1.6: New USB device found, idVendor=04f2, idProduct=1053 usb 1-1.6: New USB device strings: Mfr=1, Product=2, SerialNumber=0 usb 1-1.6: Product: USB Optical Mouse usb 1-1.6: Manufacturer: PixArt usb 1-1.6: configuration #1 chosen from 1 choice input: PixArt USB Optical Mouse as /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.6/1-1.6:1.0/input/input5887 generic-usb 0003:04F2:1053.16FE: input,hidraw2: USB HID v1.11 Mouse [PixArt USB Optical Mouse] on usb-0000:00:1a.0-1.6/input0 The quirk was tested by the reporter and it fixed the frequent disconnections etc. [jkosina@suse.cz: reorder the position in hid-ids.h] Signed-off-by: Herton R. Krzesinski Reviewed-by: Benjamin Tissoires Signed-off-by: Jiri Kosina drivers/hid/hid-ids.h | 1 + drivers/hid/usbhid/hid-quirks.c | 1 + 2 files changed, 2 insertions(+) commit 8c05f05edb7795ecd1fa95d5d44bc5b22fd85287 Author: Ingo Molnar Date: Sun May 24 09:23:25 2015 +0200 x86/fpu: Micro-optimize the copy_xregs_to_kernel*() and copy_kernel_to_xregs*() functions The copy_xregs_to_kernel*() and copy_kernel_to_xregs*() functions are used to copy FPU registers to kernel memory and vice versa. They are never expected to fail, yet they have a return code, mostly because that way they can share the assembly macros with the copy*user*() functions. This error code is then silently ignored by the context switching and other code - which made the bug in: b8c1b8ea7b21 ("x86/fpu: Fix FPU state save area alignment bug") harder to fix than necessary. So remove the return values and check for no faults when FPU debugging is enabled in the .config. This improves the eagerfpu context switching fast path by a couple of instructions, when FPU debugging is disabled: ffffffff810407fa: 89 c2 mov %eax,%edx ffffffff810407fc: 48 0f ae 2f xrstor64 (%rdi) ffffffff81040800: 31 c0 xor %eax,%eax -ffffffff81040802: eb 0a jmp ffffffff8104080e <__switch_to+0x321> +ffffffff81040802: eb 16 jmp ffffffff8104081a <__switch_to+0x32d> ffffffff81040804: 31 c0 xor %eax,%eax ffffffff81040806: 48 0f ae 8b c0 05 00 fxrstor64 0x5c0(%rbx) ffffffff8104080d: 00 Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 37 +++++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 14 deletions(-) commit 685c9616248c4f0d57e0d81d3236c80bdce1af46 Author: Ingo Molnar Date: Mon May 25 11:59:35 2015 +0200 x86/fpu: Improve the initialization logic of 'err' around xstate_fault() constraints There's a confusing aspect of how xstate_fault() constraints are handled by the FPU register/memory copying functions in fpu/internal.h: they use "0" (0) to signal that the asm code will not always set 'err' to a valid value. But 'err' is already initialized to 0 in C code, which is duplicated by the asm() constraint. Should the initialization value ever be changed, it might become subtly inconsistent with the not too clear asm() constraint. Use 'err' as the value of the input variable instead, to clarify this all. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 87b6559d0a37cd82b4b2ffe38f88c0d4ac6ee7e2 Author: Ingo Molnar Date: Mon May 25 11:27:46 2015 +0200 x86/fpu: Improve xstate_fault() handling There are two problems with xstate_fault handling: - The xstate_fault() macro takes an argument, but that's propagated into the assembly named label as well. This is technically correct currently but might result in failures if anytime a more complex argument is used. So use a separate '_err' name instead for the label. - All the xstate_fault() using functions have an error variable named 'err', which is an output variable to the asm() they are using. The problem is, it's not always set by the asm(), in which case the compiler might optimize out its initialization, so that the C variable 'err' might become corrupted after the asm() - confusing anyone who tries to take advantage of this variable after the asm(). Mark it an input variable as well. This is a latent bug currently, but an upcoming debug patch will make use of 'err'. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit 87dafd41a4423c6f730e5f4b0d56a1aa3fdcf3fc Author: Ingo Molnar Date: Mon May 25 10:57:06 2015 +0200 x86/fpu: Rename xstate related 'fx' references to 'xstate' So the xstate code was probably first copied from the fxregs code, hence it carried over the 'fx' naming for the state pointer variable. But this is slightly confusing, as we usually on call the (legacy) MMX/SSE state 'fx', both in data structures and in the functions build around FXSAVE/FXRSTOR. So rename it to 'xstate' to make it more apparent what it is related to. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit 6e5535940fcc2608e58af997236ce5e0391ccfc6 Author: Ingo Molnar Date: Sun May 24 09:58:12 2015 +0200 x86/fpu: Fix fpu__init_system_xstate() comments Remove obsolete comment about __init limitations: in the new code there aren't any. Also standardize the comment style in the function while at it. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/xstate.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) commit fd169b05415485bf47606d820194c39cb2f53201 Author: Ingo Molnar Date: Mon May 25 09:55:39 2015 +0200 x86/fpu: Move the xstate copying functions into fpu/internal.h All the other register<-> memory copying functions are defined in fpu/internal.h, so move the xstate variants there too. Beyond being more consistent, this also allows FPU debugging checks to be added to them. (Because they can now use the macros defined in fpu/internal.h.) Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 192 ++++++++++++++++++++++++++++++++++++ arch/x86/include/asm/fpu/xstate.h | 192 ------------------------------------ 2 files changed, 192 insertions(+), 192 deletions(-) commit 374d4ad18a0c4bc844dee42b3b43916e5f46608d Author: Herbert Xu Date: Sat May 23 15:41:57 2015 +0800 crypto: aead - Remove unused cryptoff parameter This patch removes the cryptoff parameter now that all users set it to zero. Signed-off-by: Herbert Xu crypto/aead.c | 6 ++---- crypto/echainiv.c | 4 ++-- crypto/seqiv.c | 8 ++++---- include/crypto/aead.h | 7 +------ 4 files changed, 9 insertions(+), 16 deletions(-) commit dd04446e48e859c913a395497ba1a289e707269a Author: Herbert Xu Date: Sat May 23 15:41:56 2015 +0800 crypto: seqiv - Stop using cryptoff The cryptoff parameter was added to facilitate the skipping of IVs that sit between the AD and the plain/cipher text. However, it was never implemented correctly as and we do not handle users such as IPsec setting cryptoff. It is simply ignored. Implementing correctly is in fact more trouble than what it's worth. This patch removes the uses of cryptoff by moving the AD forward to fill the gap left by the IV. The AD is moved back after the underlying AEAD processing is finished. This is in fact beter than the cryptoff solution because it allows algorithms that use seqniv (i.e., GCM and CCM) to hash the whole packet as a single piece, while cryptoff meant that there was guaranteed to be a gap. Signed-off-by: Herbert Xu crypto/seqiv.c | 225 ++++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 158 insertions(+), 67 deletions(-) commit 823655c99bdb990d687d8f293185dcc505be38c2 Author: Herbert Xu Date: Sat May 23 15:41:54 2015 +0800 crypto: echainiv - Stop using cryptoff The cryptoff parameter was added to facilitate the skipping of IVs that sit between the AD and the plain/cipher text. However, it was never implemented correctly as and we do not handle users such as IPsec setting cryptoff. It is simply ignored. Implementing correctly is in fact more trouble than what it's worth. This patch removes the uses of cryptoff and simply falls back to using the old AEAD interface as it's only needed for old AEAD implementations. Signed-off-by: Herbert Xu crypto/echainiv.c | 35 +++++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 12 deletions(-) commit d1ee1f02b7a207e757cbd78a9865a69234a0d867 Author: Herbert Xu Date: Sat May 23 15:41:53 2015 +0800 crypto: aead - Do not set cra_type for new style instances The function aead_geniv_alloc currently sets cra_type even for new style instances. This is unnecessary and may hide bugs such as when our caller uses crypto_register_instance instead of the correct aead_register_instance. Signed-off-by: Herbert Xu crypto/aead.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 1e419c7970f124113c443b6154f1f8a049cf6e00 Author: Herbert Xu Date: Sat May 23 15:41:52 2015 +0800 crypto: echainiv - Use aead_register_instance New style AEAD instances must use aead_register_instance. This worked by chance because aead_geniv_alloc is still setting things the old way. This patch converts the template over to the create model where we are responsible for instance registration so that we can call the correct function. Signed-off-by: Herbert Xu crypto/echainiv.c | 42 +++++++++++++++++++++++------------------- 1 file changed, 23 insertions(+), 19 deletions(-) commit 0677157b2b0458c7c906b063e4504d9e24ed8e8a Author: Herbert Xu Date: Sat May 23 15:41:51 2015 +0800 crypto: seqiv - Use aead_register_instance New style AEAD instances must use aead_register_instance. This worked by chance because aead_geniv_alloc is still setting things the old way. This patch converts the template over to the create model where we are responsible for instance registration so that we can call the correct function. Signed-off-by: Herbert Xu crypto/seqiv.c | 135 +++++++++++++++++++++++++++++++++------------------------ 1 file changed, 79 insertions(+), 56 deletions(-) commit 72af865d3413c319226b6ef5f6956b7f84980a4c Author: Herbert Xu Date: Sat May 23 15:41:49 2015 +0800 crypto: aead - Use tmpl->create Newer templates use tmpl->create and have a NULL tmpl->alloc. So we must use tmpl->create if it is set. Signed-off-by: Herbert Xu crypto/aead.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 56e34378bbbb7af21cf73d98a92c0411386e091c Author: Herbert Xu Date: Sat May 23 15:41:48 2015 +0800 crypto: skcipher - Use tmpl->create Newer templates use tmpl->create and have a NULL tmpl->alloc. So we must use tmpl->create if it is set. Signed-off-by: Herbert Xu crypto/ablkcipher.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 622ff8752756d4fbbf7975d9ef27a1a07820f55e Author: Wu Fengguang Date: Sat May 23 11:22:47 2015 +0800 crypto: echainiv - echainiv_read_iv() can be static Signed-off-by: Fengguang Wu Signed-off-by: Herbert Xu crypto/echainiv.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 2ea376a3adf8ddf30c50c2709bbf3cdab9baa6a8 Author: Boris BREZILLON Date: Fri May 22 15:33:47 2015 +0200 crypto: mv_cesa - request registers memory region The mv_cesa driver does not request the CESA registers memory region. Since we're about to add a new CESA driver, we need to make sure only one of these drivers probe the CESA device, and requesting the registers memory region is a good way to achieve that. Signed-off-by: Boris Brezillon Signed-off-by: Herbert Xu drivers/crypto/mv_cesa.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) commit a5a22e57f6d8f6f84bcf98dc11d44813e35caa11 Author: Herbert Xu Date: Fri May 22 20:34:22 2015 +0800 crypto: pcrypt - Make tfm_count an atomic_t The variable tfm_count is accessed by multiple threads without locking. This patch converts it to an atomic_t. Signed-off-by: Herbert Xu crypto/pcrypt.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 30e4c010aefdbb81b2aaf64758850432eb289f47 Author: Herbert Xu Date: Fri May 22 16:30:48 2015 +0800 crypto: aead - Add crypto_aead_alg_ivsize/maxauthsize AEAD algorithm implementors need to figure out a given algorithm's IV size and maximum authentication size. During the transition this is difficult to do as an algorithm could be new style or old style. This patch creates two helpers to make this easier. Signed-off-by: Herbert Xu crypto/aead.c | 15 +++------------ include/crypto/aead.h | 21 ++++++++++++++++++--- include/crypto/internal/aead.h | 19 +++++++------------ 3 files changed, 28 insertions(+), 27 deletions(-) commit 445a8e0df3ef80f3696014187a463d6c0772331b Author: Harald Freudenberger Date: Thu May 21 17:34:31 2015 +0200 crypto: testmgr - Added one larger ghash testvector (400 bytes) to the testmgr. Signed-off-by: Harald Freudenberger Signed-off-by: Herbert Xu crypto/testmgr.h | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 58 insertions(+), 1 deletion(-) commit e911503085ae8a6bb826588076f66df05890253c Author: Martin Walch Date: Fri May 22 13:41:52 2015 +0200 Kconfig: Remove bad inference rules expr_eliminate_dups2() expr_eliminate_dups2() in scripts/kconfig/expr.c applies two invalid inference rules: (FOO || BAR) && (!FOO && !BAR) -> n (FOO && BAR) || (!FOO || !BAR) -> y They would be correct in propositional logic, but this is a three-valued logic, and here it is wrong in that it changes semantics. It becomes immediately visible when assigning the value 1 to both, FOO and BAR: (FOO || BAR) && (!FOO && !BAR) -> min(max(1, 1), min(2-1, 2-1)) = min(1, 1) = 1 while n evaluates to 0 and (FOO && BAR) || (!FOO || !BAR) -> max(min(1, 1), max(2-1, 2-1)) = max(1, 1) = 1 with y evaluating to 2. Fix it by removing expr_eliminate_dups2() and the functions that have no use anywhere else: expr_extract_eq_and(), expr_extract_eq_or(), and expr_extract_eq() from scripts/kconfig/expr.c Currently the bug is not triggered in mainline, so this patch does not modify the configuration space there. To observe the bug consider this example: config MODULES def_bool y option modules config FOO def_tristate m config BAR def_tristate m config TEST1 def_tristate y depends on (FOO || BAR) && (!FOO && !BAR) if TEST1 = n comment "TEST1 broken" endif config TEST2 def_tristate y depends on (FOO && BAR) || (!FOO || !BAR) if TEST2 = y comment "TEST2 broken" endif config TEST3 def_tristate y depends on m && !m if TEST3 = n comment "TEST3 broken" endif TEST1, TEST2 and TEST3 should all evaluate to m, but without the patch, none of them does. It is probably not obvious that TEST3 is the same bug, but it becomes clear when considering what happens internally to the expression m && !m": First it expands to (m && MODULES) && !(m && MODULES), then it is transformed into (m && MODULES) && (!m || !MODULES), and finally due to the bug it is replaced with n. As a side effect, this patch reduces code size in expr.c by roughly 10% and slightly improves startup time for all configuration frontends. Signed-off-by: Martin Walch Signed-off-by: Michal Marek scripts/kconfig/expr.c | 111 ------------------------------------------------- 1 file changed, 111 deletions(-) commit 3152657f104ce9b0f80793c92a745d5e97b43812 Merge: b8c1b8e ba155e2 Author: Ingo Molnar Date: Sat May 23 16:47:12 2015 +0200 Merge branch 'linus' into x86/fpu Resolve semantic conflict in arch/x86/kvm/cpuid.c with: c447e76b4cab ("kvm/fpu: Enable eager restore kvm FPU for MPX") By removing the FPU internal include files. Signed-off-by: Ingo Molnar commit b8c1b8ea7b219a7ba6d58d97bfdf1403b741f8d5 Author: Ingo Molnar Date: Sun May 24 09:58:12 2015 +0200 x86/fpu: Fix FPU state save area alignment bug On most configs task-struct is cache line aligned, which makes the XSAVE area's 64-byte required alignment work out fine. But on some .config's task_struct is aligned only to 16 bytes (enforced by ARCH_MIN_TASKALIGN), which makes things like fpu__copy() (that XSAVEOPT uses) not work so well. I broke this in: 7366ed771f6e ("x86/fpu: Simplify FPU handling by embedding the fpstate in task_struct (again)") which embedded the fpstate in the task_struct. The alignment requirements of the FPU code were originally present in ARCH_MIN_TASKALIGN, which still has a value of 16, which was the alignment requirement of the FPU state area prior XSAVE. But this link was not documented (and not required) and the link got lost when the FPU state area was made dynamic years ago. With XSAVEOPT the minimum alignment requirment went up to 64 bytes, and the embedding of the FPU state area in task_struct exposed it again - and '16' was not increased to '64'. So fix this bug, but also try to address the underlying lost link of information that made it easier to happen: - document ARCH_MIN_TASKALIGN a bit better - use alignof() to recover the current alignment requirements. This would work in the future as well, should the alignment requirements go up to 128 bytes with things like AVX512. ( We should probably also use the vSMP alignment rules for all of x86, but that's for another patch. ) Reported-by: Peter Zijlstra Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/processor.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 035ff831cdf3e3bbee61d5292d284a24f1035052 Author: Wolfram Sang Date: Mon Apr 20 15:51:42 2015 +0200 mmc: host: sdhci-esdhc-imx: fix broken email address My Pengutronix address is not valid anymore, redirect people to the Pengutronix kernel team. Reported-by: Harald Geyer Signed-off-by: Wolfram Sang Acked-by: Robert Schwebel Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-esdhc-imx.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 638a9818f2bfd9ada6d4319116097e4ed70815cf Author: Andreas Fenkart Date: Thu Apr 16 10:03:14 2015 +0200 mmc: pwrseq: dt: example with reset clock and active low pin Signed-off-by: Andreas Fenkart Signed-off-by: Ulf Hansson Documentation/devicetree/bindings/mmc/mmc-pwrseq-simple.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 9bb09a30ee38dcb0db9f4c5de805fe11d286db9d Author: Kuninori Morimoto Date: Thu Apr 23 08:16:04 2015 +0000 mmc: sh_mmcif: separate sh_mmcif_clk_update() into setup and prepare Current sh_mmcif_clk_update() is called from probe() and set_ios(), but, the purpose of later one is just clk_prepare_enable(). No need to setup mmc->f_max/f_min in many times. This patch separe sh_mmcif_clk_update() into clk_prepare_enable() and mmc->f_max/f_min setup. Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Acked-by: Geert Uytterhoeven Acked-by: Laurent Pinchart Signed-off-by: Ulf Hansson drivers/mmc/host/sh_mmcif.c | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) commit 6aed678bcdee61ba8fb0b149dc4303b2f24993a2 Author: Kuninori Morimoto Date: Thu Apr 23 08:15:08 2015 +0000 mmc: sh_mmcif: remove unnecessary int clk from struct sh_mmcif_host struct sh_mmcif_host has 1) int clk, 2) struct clock *hclk, and host->clk = clk_get_rate(host->hclk). This int clk is not necessary. Let's remove it. And, current hclk is confusable naming. Let's rename it to clk. Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Acked-by: Geert Uytterhoeven Acked-by: Laurent Pinchart Signed-off-by: Ulf Hansson drivers/mmc/host/sh_mmcif.c | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) commit 60985c39cf85696cc408706193ab7bc80f0833e7 Author: Kuninori Morimoto Date: Thu Apr 23 08:14:12 2015 +0000 mmc: sh_mmcif: cleanup to use dev instead of &pdev->dev Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Acked-by: Geert Uytterhoeven Acked-by: Laurent Pinchart Signed-off-by: Ulf Hansson drivers/mmc/host/sh_mmcif.c | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) commit 70830b4182ddbb6f7f29d632e0c6cc5405a8cd16 Author: Kuninori Morimoto Date: Thu Apr 23 08:13:25 2015 +0000 mmc: sh_mmcif: move mmcif_of_match to upside Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Acked-by: Geert Uytterhoeven Acked-by: Laurent Pinchart Signed-off-by: Ulf Hansson drivers/mmc/host/sh_mmcif.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 1fb654fd97ff0c56ff1646dc9e73543abeb912df Author: Andreas Fenkart Date: Thu Apr 23 13:15:42 2015 +0200 mmc: sdio: add reset callback to bus operations Some drivers schedule automatic hw resets. An example is mwifiex, which schedules a card reset if the command handler between driver and card firmware becomes out of sync Signed-off-by: Andreas Fenkart Signed-off-by: Ulf Hansson drivers/mmc/core/sdio.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 01b6961410b76af228eb993220024ff6db6ba80c Author: Hariprasad Shenai Date: Fri May 22 21:58:21 2015 +0530 cxgb4: Add PHY firmware support for T420-BT cards Add support for flashing 10GBaseT adapter with BCM 84834 PHY and Aquantia AQ1202 PHY. Updating of the PHY firmware must happen before the INITIALIZE_CMD. Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4.h | 39 ++++- drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 155 ++++++++++++++++- drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 217 ++++++++++++++++++++---- drivers/net/ethernet/chelsio/cxgb4/t4fw_api.h | 6 + 4 files changed, 375 insertions(+), 42 deletions(-) commit 3b52960266a36f7f2b577eb35cd97d2f64a5df26 Author: Daniel Borkmann Date: Sat May 23 01:10:07 2015 +0200 test_bpf: add more eBPF jump torture cases Add two more eBPF test cases for JITs, i.e. the second one revealed a bug in the x86_64 JIT compiler, where only an int3 filled image from the allocator was emitted and later wrongly set by the compiler as the bpf_func program code since optimization pass boundary was surpassed w/o actually emitting opcodes. Interpreter: [ 45.782892] test_bpf: #242 BPF_MAXINSNS: Very long jump backwards jited:0 11 PASS [ 45.783062] test_bpf: #243 BPF_MAXINSNS: Edge hopping nuthouse jited:0 14705 PASS After x86_64 JIT (fixed): [ 80.495638] test_bpf: #242 BPF_MAXINSNS: Very long jump backwards jited:1 6 PASS [ 80.495957] test_bpf: #243 BPF_MAXINSNS: Edge hopping nuthouse jited:1 17157 PASS Reference: http://thread.gmane.org/gmane.linux.network/364729 Signed-off-by: Daniel Borkmann Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller lib/test_bpf.c | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) commit cff497c8701ba5133e3407fd41430dc6159a3541 Merge: cf82624 d5c7839 Author: David S. Miller Date: Mon May 25 00:13:58 2015 -0400 Merge branch 'amd-xgbe-next' Tom Lendacky says: ==================== amd-xgbe: AMD XGBE driver updates 2015-05-22 The following patches are included in this driver update series: - Retrieve and set an additional hardware feature setting - Fix the initial mode/speed determination when auto-negotiation is disabled - Add additional netif_dbg support to the driver This patch series is based on net-next. ==================== Signed-off-by: David S. Miller commit d5c78399b0e1e2a457375a0d7d2ac61bd41e9be4 Author: Lendacky, Thomas Date: Fri May 22 16:32:21 2015 -0500 amd-xgbe: Add more netif_dbg output to the driver Change more netdev_dbg statements over to netif_dbg and add some new netif_dbg statements to the driver. Signed-off-by: Tom Lendacky Signed-off-by: David S. Miller drivers/net/ethernet/amd/xgbe/xgbe-mdio.c | 68 ++++++++++++++++++++++++++++--- 1 file changed, 62 insertions(+), 6 deletions(-) commit 471e14b232d13463ae24212bec63d0a455eff16b Author: Lendacky, Thomas Date: Fri May 22 16:32:14 2015 -0500 amd-xgbe: Fix initial mode when auto-negotiation is disabled When the ethtool command is used to set the speed of the device while the device is down, the check to set the initial mode may fail when the device is brought up, causing failure to bring the device up. Update the code to set the initial mode based on the desired speed if auto-negotiation is disabled. Signed-off-by: Tom Lendacky Signed-off-by: David S. Miller drivers/net/ethernet/amd/xgbe/xgbe-mdio.c | 45 ++++++++++++++++++++++++++++--- 1 file changed, 42 insertions(+), 3 deletions(-) commit 73c259165e2648638e959844434d899f58108567 Author: Lendacky, Thomas Date: Fri May 22 16:32:09 2015 -0500 amd-xgbe: Add setting of a missing hardware feature The device private data structure contains all the defined hardware features for the device. However one of the features is not set. Even though the feature is not currently used, set it to avoid future issues of the feature being checked thinking it has been properly set. Signed-off-by: Tom Lendacky Signed-off-by: David S. Miller drivers/net/ethernet/amd/xgbe/xgbe-drv.c | 1 + 1 file changed, 1 insertion(+) commit cf826244322443215c156c0751fa2c982969a9c9 Author: Florian Westphal Date: Fri May 22 00:06:40 2015 +0200 ip: reject too-big defragmented DF-skb when forwarding Send icmp pmtu error if we find that the largest fragment of df-skb exceeded the output path mtu. The ip output path will still catch this later on but we can avoid the forward/postrouting hook traversal by rejecting right away. This is what ipv6 already does. Acked-by: Hannes Frederic Sowa Signed-off-by: Florian Westphal Signed-off-by: David S. Miller net/ipv4/ip_forward.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) commit b10e3d6c2e557e1dd62c0b6276707b68aa0e5287 Merge: d98c3ed 2b51457 Author: David S. Miller Date: Mon May 25 00:06:59 2015 -0400 Merge branch 'af_unix_sendpage' Hannes Frederic Sowa says: ==================== net: af_unix: zerocopy stream bits This series implements zerocopy support for AF_UNIX SOCK_STREAM sockets. Changelog in the specific patches. Thanks to all the reviewers! ==================== Signed-off-by: David S. Miller commit 2b514574f7e88c8498027ee366fd6e7aae5aa4b5 Author: Hannes Frederic Sowa Date: Thu May 21 17:00:01 2015 +0200 net: af_unix: implement splice for stream af_unix sockets unix_stream_recvmsg is refactored to unix_stream_read_generic in this patch and enhanced to deal with pipe splicing. The refactoring is inneglible, we mostly have to deal with a non-existing struct msghdr argument. Signed-off-by: Hannes Frederic Sowa Signed-off-by: David S. Miller fs/splice.c | 1 + net/core/skbuff.c | 1 + net/unix/af_unix.c | 140 +++++++++++++++++++++++++++++++++++++++++++++-------- 3 files changed, 121 insertions(+), 21 deletions(-) commit a60e3cc7c92973a31fad0fd04dc5cf4355d3d1ef Author: Hannes Frederic Sowa Date: Thu May 21 17:00:00 2015 +0200 net: make skb_splice_bits more configureable Prepare skb_splice_bits to be able to deal with AF_UNIX sockets. AF_UNIX sockets don't use lock_sock/release_sock and thus we have to use a callback to make the locking and unlocking configureable. Signed-off-by: Hannes Frederic Sowa Acked-by: Eric Dumazet Signed-off-by: David S. Miller include/linux/skbuff.h | 11 +++++++++-- net/core/skbuff.c | 45 ++++++++++++++++++++++++++++----------------- net/ipv4/tcp.c | 5 +++-- 3 files changed, 40 insertions(+), 21 deletions(-) commit 869e7c62486ec0e170a9771acaa251d1a33b5871 Author: Hannes Frederic Sowa Date: Thu May 21 16:59:59 2015 +0200 net: af_unix: implement stream sendpage support This patch implements sendpage support for AF_UNIX SOCK_STREAM sockets. This is also required for a complete splice implementation. The implementation is a bit tricky because we append to already existing skbs and so have to hold unix_sk->readlock to protect the reading side from either advancing UNIXCB.consumed or freeing the skb at the socket receive tail. Signed-off-by: Hannes Frederic Sowa Acked-by: Eric Dumazet Signed-off-by: David S. Miller net/unix/af_unix.c | 99 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 98 insertions(+), 1 deletion(-) commit be12a1fe298e8be04d5215364f94654dff81b0bc Author: Hannes Frederic Sowa Date: Thu May 21 16:59:58 2015 +0200 net: skbuff: add skb_append_pagefrags and use it Signed-off-by: Hannes Frederic Sowa Acked-by: Eric Dumazet Signed-off-by: David S. Miller include/linux/skbuff.h | 3 +++ net/core/skbuff.c | 18 ++++++++++++++++++ net/ipv4/ip_output.c | 15 ++++----------- 3 files changed, 25 insertions(+), 11 deletions(-) commit d98c3edcbbbfae903f138edd7855544cd8d09bc2 Merge: 4029685 6e65104 Author: David S. Miller Date: Sun May 24 23:23:01 2015 -0400 Merge tag 'wireless-drivers-next-for-davem-2015-05-21' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next Kalle Valo says: ==================== ath10k: * enable channel 144 on 5 GHz * enable Adaptive Noise Immunity (ANI) by default * add Wake on Wireless LAN (WOW) patterns support * add basic Tunneled Direct Link Setup (TDLS) support * add multi-channel support for QCA6174 * enable IBSS RSN support * enable Bluetooth Coexistance whenever firmware supports it * add more versatile way to set bitrates used by the firmware ath9k: * spectral scan: add support for multiple FFT frames per report iwlwifi: * major rework of the scan code (Luca) * some work on the thermal code (Chaya Rachel) * some work on the firwmare debugging infrastructure brcmfmac: * SDIO suspend and resume fixes * wiphy band info and changes in regulatory settings * add support for BCM4324 SDIO and BCM4358 PCIe * enable support of PCIe devices on router platforms (Hante) ==================== Signed-off-by: David S. Miller commit 4029685acc45a0b75c582932788e09bde16e0c65 Merge: 29044b5 be9b9ec Author: David S. Miller Date: Sun May 24 23:05:10 2015 -0400 Merge branch 'mlx4-next' Or Gerlitz says: ==================== mlx4: Enable single ported VFs over IB ports This series further enhances the support for mlx4 single ported VFs introduced in 3.15 to work over IB ports too. Just as quick reminder, the ConnectX3 device family exposes one PCI device which serves both ports. This can be non-optimal under virtualization schemes where the admin would like the VF to expose one interface to the VM, etc. Since all the VF interaction with the firmware passes through the PF driver, we can emulate to the VF they have one port, and further create a set of the VFs which act on port1 of the device and another set which acts on port2. ==================== Signed-off-by: David S. Miller commit be9b9eca257138b65c2864482a9edf6e2a8cedb6 Author: Or Gerlitz Date: Thu May 21 15:14:10 2015 +0300 net/mlx4_core: Enable single ported IB VFs Remove the limitation that disallows configuring single ported VFs in the presence of IB ports, after addressing the issues that prevented that to work. SMI (QP0) requests/responses are still not supported for single ported IB VFs. Signed-off-by: Or Gerlitz Signed-off-by: Jack Morgenstein Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/cmd.c | 11 +++++++++++ drivers/net/ethernet/mellanox/mlx4/main.c | 12 ------------ 2 files changed, 11 insertions(+), 12 deletions(-) commit e5dfbf9a7904b3e21e665bed923eda49ced732d4 Author: Or Gerlitz Date: Thu May 21 15:14:09 2015 +0300 net/mlx4_core: Adjust the schedule queue port in reset-to-init too It's legal for drivers to provide the QP port through the QPC schedule-queue field on the reset-to-init QP state change. Add adjusting of the schedule queue port in the SRIOV wrapper for that operation too. Signed-off-by: Or Gerlitz Signed-off-by: Jack Morgenstein Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/resource_tracker.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit f40e99e927c00356025c70adf2060eaaf35151a6 Author: Or Gerlitz Date: Thu May 21 15:14:08 2015 +0300 net/mlx4_core: Adjust the schedule queue port for single ported IB VFs Some VF drivers flow set the schedule queue in the QP context but without setting none of OPTPAR_SCHED_QUEUE or OPTPAR_PRIMARY_ADDR_PATH. To allow for such non-modified drivers to function as single ported IB VFs, we must adjust the schedule queue port whenever being set, e.g as currently done for single ported Eth VFs. Signed-off-by: Or Gerlitz Signed-off-by: Jack Morgenstein Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/resource_tracker.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 74d4943fbb8c2fd32440a0bb4a6a01290d15709b Author: Or Gerlitz Date: Thu May 21 15:14:07 2015 +0300 net/mlx4_core: Modify port values when generting EQEs for VFs As part of enabling single ported VFs over IB ports we need to handle some of the flows for generting EQ events for VFs which don't come into play under Eth ports. This mainly includes port management events derived from changes of the phyiscal port (lid change, client re-register, down/up, etc), VF pkey table changes and VF guid changes initiated by the IB driver. (1) make sure that events are generated only for VFs sitting on the relevant physical port (under the ALL_SLAVES flow). (2) before generating the event, convert from physical (one or two) to VF port (always equals one). Signed-off-by: Or Gerlitz Signed-off-by: Jack Morgenstein Signed-off-by: David S. Miller drivers/infiniband/hw/mlx4/alias_GUID.c | 7 ++++++- drivers/net/ethernet/mellanox/mlx4/eq.c | 24 ++++++++++++++++++++---- 2 files changed, 26 insertions(+), 5 deletions(-) commit 430910b1b93292d3a724c91123bb15bd32df1b5b Author: Or Gerlitz Date: Thu May 21 15:14:06 2015 +0300 IB/mlx4: Convert slave port before building address-handle When multiplexling a MAD sent from VF, we should convert the port used by the guest to send the packet to the actual physical port which will be used to transmit the packet, before building the relevant address-handle (AH). This is needed under VPI for single ported VFs, since the code that builds the AH (mlx4_ib_query_ah()) makes decisions based on the input port. If we use the port number provided by the guest, it might have different protocol vs. the one this packat has to go from, and hence the result could be wrong. So far, the conversion was done after the AH was built and it worked for single ported Eth VFs which were not enabled under VPI. When adding support for single ported IB VFs and VPI, we hit that. Fixes: 449fc48866f7 ('net/mlx4: Adapt code for N-Port VF') Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/infiniband/hw/mlx4/mad.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit 7c35ef4525c3255c747b935fe5af9ef4d1fbbf93 Author: Or Gerlitz Date: Thu May 21 15:14:05 2015 +0300 net/mlx4_core: Enhance the MAD_IFC wrapper to convert VF port to physical Single port VFs always provide port = 1 (even if the actual physical port used is port 2). As such, we need to convert the port provided by the VF to the physical port before calling into the firmware. It turns out that the Linux mlx4 VF RoCE driver maintains a copy of the GID table and hence this change became critical only for single ported IB VFs, but it could be needed for other RoCE VF drivers too. Fixes: 449fc48866f7 ('net/mlx4: Adapt code for N-Port VF') Signed-off-by: Or Gerlitz Signed-off-by: Jack Morgenstein Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/cmd.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit 29044b58869b60b18071154446d39e83f31d9b67 Author: Geert Uytterhoeven Date: Thu May 21 14:09:14 2015 +0200 enic: Grammar s/an negative/a negative/ Signed-off-by: Geert Uytterhoeven Signed-off-by: David S. Miller drivers/net/ethernet/cisco/enic/enic_clsf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 66f72f0c8e0d37339b6be1373c61d2a133c8b422 Author: Arnd Bergmann Date: Tue May 19 15:40:37 2015 +0200 ARM: shmobile: only select sound drivers that build A couple of codec drivers are selected by shmobile platform code, but depend on I2C, which results in a build error: sound/soc/codecs/ak4642.c:638:1: warning: data definition has no type or storage class module_i2c_driver(ak4642_i2c_driver); ^ sound/soc/codecs/ak4642.c:638:1: error: type defaults to 'int' in declaration of 'module_i2c_driver' [-Werror=implicit-int] sound/soc/codecs/ak4642.c:638:1: warning: parameter names (without types) in function declaration sound/soc/codecs/ak4642.c:627:26: warning: 'ak4642_i2c_driver' defined but not used [-Wunused-variable] This ensures that we do not enable the respective drivers when I2C is disabled. Signed-off-by: Arnd Bergmann Acked-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/mach-shmobile/Kconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit f2a5cefbbb2c69253a8a8aa7f7f77b22f0595811 Author: Geert Uytterhoeven Date: Wed Mar 4 13:14:21 2015 +0100 ARM: multi_v7_defconfig: Enable shmobile r8a7778/bockw platform Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/configs/multi_v7_defconfig | 3 +++ 1 file changed, 3 insertions(+) commit d957ab8dbd79ccd32f6f7c42651b956bb892858d Author: Kuninori Morimoto Date: Thu May 14 07:23:20 2015 +0000 ARM: shmobile: r8a7791: add MMCIF max-frequency Signed-off-by: Kuninori Morimoto Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7791.dtsi | 1 + 1 file changed, 1 insertion(+) commit 96370057bd47e8785312e151e3b32ad712693910 Author: Kuninori Morimoto Date: Thu May 14 07:23:04 2015 +0000 ARM: shmobile: r8a7790: add MMCIF max-frequency Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7790.dtsi | 2 ++ 1 file changed, 2 insertions(+) commit 766a2d9796327b9fe7581b51601c15dec5082885 Author: Brian Norris Date: Tue May 12 16:28:21 2015 -0700 ata: add Broadcom AHCI SATA3 driver for STB chips Pretty straightforward driver, using the nice library-ization of the generic ahci_platform driver. Signed-off-by: Brian Norris Signed-off-by: Tejun Heo drivers/ata/Kconfig | 9 ++ drivers/ata/Makefile | 1 + drivers/ata/ahci_brcmstb.c | 322 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 332 insertions(+) commit e3e694f8217ecff7f6f6f3e9d98a32b235161b49 Author: Brian Norris Date: Tue May 12 16:28:19 2015 -0700 Documentation: devicetree: add Broadcom SATA binding Signed-off-by: Brian Norris Signed-off-by: Tejun Heo .../devicetree/bindings/ata/brcm,sata-brcmstb.txt | 34 ++++++++++++++++++++++ 1 file changed, 34 insertions(+) commit a30baec189f7db458696118ae02cedd517feff43 Author: Johnny Kim Date: Mon May 11 14:30:57 2015 +0900 staging: MAINTAINERS: add maintainer for wilc1000 device Add myself as maintainer for atmel wilc1000 Signed-off-by: Johnny Kim Signed-off-by: Rachel Kim Signed-off-by: Dean Lee Signed-off-by: Chris Park Acked-by: Nicolas Ferre Signed-off-by: Greg Kroah-Hartman MAINTAINERS | 9 +++++++++ 1 file changed, 9 insertions(+) commit c5c77ba18ea66aa05441c71e38473efb787705a4 Author: Johnny Kim Date: Mon May 11 14:30:56 2015 +0900 staging: wilc1000: Add SDIO/SPI 802.11 driver This driver is for the wilc1000 which is a single chip IEEE 802.11 b/g/n device. The driver works together with cfg80211, which is the kernel side of configuration management for wireless devices because the wilc1000 chipset is fullmac where the MLME is managed in hardware. The driver worked from kernel version 2.6.38 and being now ported to several others since then. A TODO file is included as well in this commit. Signed-off-by: Johnny Kim Signed-off-by: Rachel Kim Signed-off-by: Dean Lee Signed-off-by: Chris Park Acked-by: Nicolas Ferre Signed-off-by: Greg Kroah-Hartman drivers/staging/Kconfig | 2 + drivers/staging/Makefile | 1 + drivers/staging/wilc1000/Kconfig | 55 + drivers/staging/wilc1000/Makefile | 41 + drivers/staging/wilc1000/TODO | 8 + drivers/staging/wilc1000/coreconfigsimulator.h | 20 + drivers/staging/wilc1000/coreconfigurator.c | 2201 ++++++ drivers/staging/wilc1000/coreconfigurator.h | 498 ++ drivers/staging/wilc1000/fifo_buffer.c | 142 + drivers/staging/wilc1000/fifo_buffer.h | 23 + drivers/staging/wilc1000/host_interface.c | 8074 +++++++++++++++++++++ drivers/staging/wilc1000/host_interface.h | 1344 ++++ drivers/staging/wilc1000/itypes.h | 60 + drivers/staging/wilc1000/linux_mon.c | 643 ++ drivers/staging/wilc1000/linux_wlan.c | 2953 ++++++++ drivers/staging/wilc1000/linux_wlan_common.h | 170 + drivers/staging/wilc1000/linux_wlan_sdio.c | 249 + drivers/staging/wilc1000/linux_wlan_sdio.h | 14 + drivers/staging/wilc1000/linux_wlan_spi.c | 510 ++ drivers/staging/wilc1000/linux_wlan_spi.h | 14 + drivers/staging/wilc1000/wilc_debugfs.c | 185 + drivers/staging/wilc1000/wilc_errorsupport.h | 84 + drivers/staging/wilc1000/wilc_event.h | 123 + drivers/staging/wilc1000/wilc_exported_buf.c | 76 + drivers/staging/wilc1000/wilc_log.h | 47 + drivers/staging/wilc1000/wilc_memory.c | 63 + drivers/staging/wilc1000/wilc_memory.h | 330 + drivers/staging/wilc1000/wilc_msgqueue.c | 211 + drivers/staging/wilc1000/wilc_msgqueue.h | 133 + drivers/staging/wilc1000/wilc_osconfig.h | 55 + drivers/staging/wilc1000/wilc_oswrapper.h | 133 + drivers/staging/wilc1000/wilc_platform.h | 181 + drivers/staging/wilc1000/wilc_sdio.c | 1298 ++++ drivers/staging/wilc1000/wilc_semaphore.c | 70 + drivers/staging/wilc1000/wilc_semaphore.h | 115 + drivers/staging/wilc1000/wilc_sleep.c | 36 + drivers/staging/wilc1000/wilc_sleep.h | 45 + drivers/staging/wilc1000/wilc_spi.c | 1475 ++++ drivers/staging/wilc1000/wilc_strutils.c | 431 ++ drivers/staging/wilc1000/wilc_strutils.h | 412 ++ drivers/staging/wilc1000/wilc_thread.c | 35 + drivers/staging/wilc1000/wilc_thread.h | 153 + drivers/staging/wilc1000/wilc_time.c | 163 + drivers/staging/wilc1000/wilc_time.h | 205 + drivers/staging/wilc1000/wilc_timer.c | 51 + drivers/staging/wilc1000/wilc_timer.h | 153 + drivers/staging/wilc1000/wilc_type.h | 34 + drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 4592 ++++++++++++ drivers/staging/wilc1000/wilc_wfi_cfgoperations.h | 134 + drivers/staging/wilc1000/wilc_wfi_netdevice.c | 960 +++ drivers/staging/wilc1000/wilc_wfi_netdevice.h | 277 + drivers/staging/wilc1000/wilc_wlan.c | 2434 +++++++ drivers/staging/wilc1000/wilc_wlan.h | 321 + drivers/staging/wilc1000/wilc_wlan_cfg.c | 643 ++ drivers/staging/wilc1000/wilc_wlan_cfg.h | 33 + drivers/staging/wilc1000/wilc_wlan_if.h | 991 +++ 56 files changed, 33704 insertions(+) commit 7d98c63edc45e4ab3096af2c8d98fd2d94249640 Author: Sudip Mukherjee Date: Tue May 12 17:36:08 2015 +0530 staging: panel: fix stackdump if we load the module, unload and then again try to load the module, we will get a stackdump. In the module_exit function we are unregistering the device and releasing the parport. So when we reach the detach function parport is already null and the unregister_reboot_notifier() is never called. When we again try to load the module it again tries register_reboot_notifier() and gives us a stackdump as its earlier registration is still not removed. It was caused by the commit bb046fef9668 ('staging: panel: register reboot') Fix this by moving all the unregistering and releasing in the detach function, which should be the ideal case as the detach will be called if we try to unregister the driver or if the parport is removed. Fixes: bb046fef9668 ('staging: panel: register reboot') Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/panel/panel.c | 44 +++++++++++++++++++++---------------------- 1 file changed, 21 insertions(+), 23 deletions(-) commit 288ef567ab7b43f19838afbe12b471f1ff5fdfa3 Author: Huacai Chen Date: Mon May 11 11:08:22 2015 +0800 staging: sm750: Fix lynxfb_ops_imageblit() if image->depth != 1 If image->depth != 1, lynxfb_ops_imageblit() should fallback to call cfb_imageblit(), not return directly. Otherwise it can't display the boot logo. Cc: Teddy Wang Acked-by: Sudip Mukherjee Signed-off-by: Huacai Chen Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/TODO | 1 + drivers/staging/sm750fb/sm750.c | 3 +++ 2 files changed, 4 insertions(+) commit 2e043a923eb25c2ebeb33c1053357cc69ce2494e Author: Luis R. Rodriguez Date: Thu May 14 07:07:55 2015 -0700 staging: sm750fb: use arch_phys_wc_add() and ioremap_wc() The same area used for ioremap() is used for the MTRR area. Convert the driver from using the x86 specific MTRR code to the architecture agnostic arch_phys_wc_add(). arch_phys_wc_add() will avoid MTRR if write-combining is available, in order to take advantage of that also ensure the ioremap'd 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 its 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 #ifdery 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); Generated-by: Coccinelle SmPL Cc: Sudip Mukherjee Cc: Teddy Wang Cc: Greg Kroah-Hartman Cc: Suresh Siddha Cc: Ingo Molnar Cc: Thomas Gleixner Cc: Juergen Gross Cc: Daniel Vetter Cc: Andy Lutomirski Cc: Dave Airlie Cc: Antonino Daplas Cc: Jean-Christophe Plagniol-Villard Cc: Tomi Valkeinen Cc: devel@driverdev.osuosl.org Cc: linux-fbdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Luis R. Rodriguez Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/sm750.c | 36 ++++-------------------------------- drivers/staging/sm750fb/sm750.h | 3 --- drivers/staging/sm750fb/sm750_hw.c | 3 +-- 3 files changed, 5 insertions(+), 37 deletions(-) commit f6abdb502925b7e6e83180709fad9f6f857715c3 Author: Valentin Rothberg Date: Thu May 14 15:43:59 2015 +0200 staging: I2O cleanup Remove the last reference on menuconfig I20 that has been removed by commit 4a72a7af462d ("staging: remove i2o subsystem"). Signed-off-by: Valentin Rothberg Signed-off-by: Greg Kroah-Hartman drivers/Makefile | 1 - 1 file changed, 1 deletion(-) commit b99464b1da04657f52b9c35f320da727fc534e4b Author: Valentin Rothberg Date: Thu May 14 15:50:32 2015 +0200 staging: unisys: cleanup UNISYS_VISORUTIL Commit 53490b545cb0 ("staging: unisys: move periodic_work.c into the visorbus directory") removed the Kconfig option UNISYS_VISORUTIL, but left one reference in a Kconfig select. Remove this last reference. Signed-off-by: Valentin Rothberg Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorchannel/Kconfig | 1 - 1 file changed, 1 deletion(-) commit b4b598fdde2773f0f0498d7c1e41b088db781f11 Author: Don Zickus Date: Wed May 13 13:22:25 2015 -0400 staging: unisys: Convert device functions to pass dev_info pointer around Most device functions pass bus_no and dev_no around and then do a lookup inside each function to find the dev_info struct. Instead just pass the pointer. This prepares us for a later conversion to using visor device. No real technical changes. Just function header changes and little cleanups as a result. Signed-off-by: Don Zickus Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/include/visorbus.h | 8 +- drivers/staging/unisys/visorbus/visorbus_main.c | 95 ++++++++++++---------- drivers/staging/unisys/visorbus/visorbus_private.h | 17 ++-- drivers/staging/unisys/visorbus/visorchipset.c | 74 ++++++++--------- 4 files changed, 103 insertions(+), 91 deletions(-) commit 3032aeddd85e6499cd118246ceb44b03dd393356 Author: Don Zickus Date: Wed May 13 13:22:24 2015 -0400 staging: unisys: Convert bus functions to pass bus_info pointer around Most bus functions pass bus_no around and then do a lookup inside each function to find the bus_info struct. Instead just pass the pointer. This prepares us for a later conversion to using visor_device. Signed-off-by: Don Zickus Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorbus_main.c | 44 ++++++++++------------ drivers/staging/unisys/visorbus/visorbus_private.h | 11 +++--- drivers/staging/unisys/visorbus/visorchipset.c | 39 +++++++++---------- 3 files changed, 42 insertions(+), 52 deletions(-) commit 5ecbd5d46d8ce16df024d15cd8dee9e536770552 Author: Don Zickus Date: Wed May 13 13:22:23 2015 -0400 staging: unisys: Convert the device attributes to visor_device Convert the device attribute files to properly use visor_device. This removes a whole bunch of checks and assumptions and simplifies the code. Everything is straightforward. No testing down as I can't mimic channel info correctl. Signed-off-by: Don Zickus Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorbus_main.c | 80 +++++++++---------------- 1 file changed, 28 insertions(+), 52 deletions(-) commit 24c5a74e7d1792fc5921577676aea5f11a15bd45 Author: Don Zickus Date: Wed May 13 13:22:22 2015 -0400 staging: unisys: Remove unused intr The conversion to visor_device caused some compile issues.The main problem was the new fields in 'struct visor_device' were not public. Remove one that wasn't being used for now. struct irq_info intr Signed-off-by: Don Zickus Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorchannel.c | 1 - drivers/staging/unisys/visorbus/visorchipset.c | 1 - 2 files changed, 2 deletions(-) commit d5531f3701d7e1b1bef5f8a567d4ed6175f78202 Author: Don Zickus Date: Wed May 13 13:22:21 2015 -0400 staging: unisys: Add checks for creation There was a bunch of channel creation checks before the visorchannel_create function was called, moving some of those checks inside. This keeps the outside code cleaner and handles the situation where a caller forgets to make these checks. Signed-off-by: Don Zickus Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorchannel.c | 3 +++ 1 file changed, 3 insertions(+) commit 4f6d8a97833f4640991f696d471486e5442eb0b2 Author: Don Zickus Date: Wed May 13 13:22:20 2015 -0400 staging: unisys: Add a function to set the clientpartition This patch is an attempt to help hide the channel info behind accessory functions. I was trying to keep visorchannel as private as possible. The only function missing that seemed to be needed for now was the ability to set the clientpartition. So I expose that here. Signed-off-by: Don Zickus Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/include/visorbus.h | 2 ++ drivers/staging/unisys/visorbus/visorchannel.c | 9 +++++++++ 2 files changed, 11 insertions(+) commit ab0592b9fb9b933f97b3795d21ce4356035aead8 Author: Don Zickus Date: Wed May 13 13:22:19 2015 -0400 staging: unisys: Add visor device find routine If we are going to remove the bus_info structs than we need a way to find the devices when the *_create/destroy cmds are sent over the vmchannel. This function crudely impements what pci has. It takes a bus_no and dev_no and finds the matching 'struct visor_device'. This function can/should be optimzed later once we get our heads wrapped around its needs. For now, I am using dev_no=0 to mean the visorbus itself. The function is limited to chipset.c only because it is only needed to do the lookups upon receiving a vmchannel command. Future patches will make sure the resulting 'struct visor_device' is used every where else. Also allow visorbus_type to be more visible for use. Signed-off-by: Don Zickus Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorchipset.c | 39 ++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) commit 1fb3016eab6950b547e6ae794830c51165485b13 Author: Don Zickus Date: Wed May 13 13:22:18 2015 -0400 staging: unisys: Prep for removing 'info' structs The visorbus driver has three _info structs lying around (device, bus, channel) that store subsets of info from the bigger structs. Having these structs around make resource handling very difficult and more complicated than it needs to be. Use the device infrastructure and instead pass 'struct visor_device' all over the place. In order to do that 'struct visor_device' needs to get smarter. This patch adds the pieces to prep for it. The new elements will be used in later patches. Signed-off-by: Don Zickus Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/include/visorbus.h | 19 +++++++++++++++++++ drivers/staging/unisys/visorbus/visorbus_main.c | 2 +- drivers/staging/unisys/visorbus/visorbus_private.h | 9 --------- drivers/staging/unisys/visorbus/visorchannel.c | 4 ++++ 4 files changed, 24 insertions(+), 10 deletions(-) commit 795731627c74f2bcf6b289bcc5c06d7d822f11a5 Author: Don Zickus Date: Wed May 13 13:22:17 2015 -0400 staging: unisys: Clean up device sysfs attributes Properly hook into the struct device groups element. This allows the core infrastructure to manage the files instead of the bus layer. And makes the code easier to read. I didn't clean up the _show functions just modified them a bit to handle the different args for now and to prevent a build warning. Signed-off-by: Don Zickus Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/include/visorbus.h | 1 - drivers/staging/unisys/visorbus/visorbus_main.c | 225 +++++++----------------- 2 files changed, 68 insertions(+), 158 deletions(-) commit 5ace402e390e99e72d4c4d15bfd1fe9b0bdfec58 Author: Don Zickus Date: Wed May 13 13:22:16 2015 -0400 staging: unisys: Remove dead kobj structs Remove stale code. Signed-off-by: Don Zickus Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorbus_main.c | 32 ------------------------- 1 file changed, 32 deletions(-) commit 68b04f1f342d35d439f11b675c5adbcaa85a75be Author: Don Zickus Date: Wed May 13 13:22:15 2015 -0400 staging: unisys: Properly move version file into bus attr Simplify things by moving the version file handling into the core. Signed-off-by: Don Zickus Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorbus_main.c | 66 +++++++++++-------------- 1 file changed, 30 insertions(+), 36 deletions(-) commit f3aa5fe83f35d13be84e162c6cbceb534c9f5591 Author: Don Zickus Date: Wed May 13 13:22:14 2015 -0400 staging: unisys: Move the visorbus device underneath devices Mimicing what other drivers do, this seems appropriate. Yeah, it is a bus, but it is a bus _device_. This makes things work better and smoother. Now the sysfs looks like [root@dhcp-17-174 visorbus]# ls -l /sys/bus/visorbus/devices/ total 0 lrwxrwxrwx. 1 root root 0 Apr 17 16:09 vbus1:dev2 -> ../../../devices/visorbus1/vbus1:dev2 lrwxrwxrwx. 1 root root 0 Apr 17 16:09 visorbus1 -> ../../../devices/visorbus1 Which looks correct. All the attributes are still correct too, based on my very minimal testing of 'ls -lR'. :-) Signed-off-by: Don Zickus Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorbus_main.c | 1 + 1 file changed, 1 insertion(+) commit d181dd03715b4aeed77c933ca4d5306539e41e03 Author: Don Zickus Date: Wed May 13 13:22:13 2015 -0400 staging: unisys: Wire up proper device attr for bus This patch moves the attributes to underneath the bus device correctly. This will help remove a bunch of cruft from the code and let the kernel infrastructure manage the sysfs files instead of the driver. After the move remove all the leftover code. Signed-off-by: Don Zickus Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorbus_main.c | 266 +++++------------------- 1 file changed, 55 insertions(+), 211 deletions(-) commit 03274d38c39e13f075b2b318646acd5518331c31 Author: Don Zickus Date: Wed May 13 13:22:12 2015 -0400 staging: unisys: Embed struct device for easier handling of attr Handling the sysfs attributes become easier to deal with when you can just run container_of(dev) to get devdata. Signed-off-by: Don Zickus Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorbus_main.c | 28 ++++++++----------------- 1 file changed, 9 insertions(+), 19 deletions(-) commit 1b56ac48c1c643aacd078b9f100ba448376a0183 Author: Don Zickus Date: Wed May 13 13:22:11 2015 -0400 staging: unisys: Remove temporarily added visorbus/ include in Makefile Now that the header file movement is complete, remove the temporary ccflags include Signed-off-by: Don Zickus Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/Makefile | 1 - 1 file changed, 1 deletion(-) commit 5f3a7e364608e9be2e97725f86bd14ff827b5c6a Author: David Kershner Date: Wed May 13 13:22:10 2015 -0400 staging: unisys: remove remaining utility headers remove uisqueue.h, uisthread.h, and uisutils.h replace HOSTADDRESS with u64 remove "uisutils.h" from header list in visorchipset.c Signed-off-by: David Kershner Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/include/uisqueue.h | 396 ------------------------- drivers/staging/unisys/include/uisthread.h | 42 --- drivers/staging/unisys/include/uisutils.h | 293 ------------------ drivers/staging/unisys/visorbus/visorchipset.c | 37 ++- 4 files changed, 36 insertions(+), 732 deletions(-) commit 2d4752dde3da65fbc91814bc408d722b08d97b04 Author: David Kershner Date: Wed May 13 13:22:09 2015 -0400 staging: unisys: get rid of sparstop Signed-off-by: David Kershner Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/include/sparstop.h | 29 ----------------------------- 1 file changed, 29 deletions(-) commit 634213ca155c6526aa216047b3f8c6b3b83dc7ce Author: David Kershner Date: Wed May 13 13:22:08 2015 -0400 staging: unisys: Get rid of references to common-spar Makefiles still had common-spar listed in ccflags. This gets rid of them. Signed-off-by: David Kershner Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/Makefile | 2 -- drivers/staging/unisys/visorchannel/Makefile | 2 -- 2 files changed, 4 deletions(-) commit a2713631515c2be2d43595ac20e8944b298b1801 Author: David Kershner Date: Wed May 13 13:22:07 2015 -0400 staging: unisys: Move files out of common-spar Move last three files out of common-spar iochannel.h --> include (will be used by visorhba and visornic) version.h --> moved to include controlvmcompletionstatus.h --> moved to visorbus, part of controlvmchannel.h Signed-off-by: David Kershner Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman .../common-spar/include/channels/iochannel.h | 651 --------------------- .../include/controlvmcompletionstatus.h | 94 --- .../staging/unisys/common-spar/include/version.h | 45 -- drivers/staging/unisys/include/iochannel.h | 651 +++++++++++++++++++++ drivers/staging/unisys/include/version.h | 45 ++ .../unisys/visorbus/controlvmcompletionstatus.h | 94 +++ 6 files changed, 790 insertions(+), 790 deletions(-) commit 6264451f7e650ee3937606ad61ecdadc7f31bc76 Author: David Kershner Date: Wed May 13 13:22:06 2015 -0400 staging: unisys: Move diagchannel to include Diagchannel needs to go to standard include. Signed-off-by: David Kershner Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman .../common-spar/include/channels/diagchannel.h | 427 --------------------- drivers/staging/unisys/include/diagchannel.h | 427 +++++++++++++++++++++ 2 files changed, 427 insertions(+), 427 deletions(-) commit 199093a74710e39d93900c78a7028e07da31532f Author: David Kershner Date: Wed May 13 13:22:05 2015 -0400 staging: unisys: vbuschannel belonsg to visorbus Move vbuschannel.h into visorbus. Signed-off-by: David Kershner Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman .../common-spar/include/channels/vbuschannel.h | 94 ---------------------- drivers/staging/unisys/visorbus/vbuschannel.h | 94 ++++++++++++++++++++++ 2 files changed, 94 insertions(+), 94 deletions(-) commit 63b0179c397b70029dc28d166211354697fb1382 Author: David Kershner Date: Wed May 13 13:22:04 2015 -0400 staging: unisys: Move channel.h to include. Controvlm to visorbus Channel.h is used by all channels, it needs to be in include. Controlvm Channel is only used by visorbus, it needs to just be there. Signed-off-by: David Kershner Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman .../unisys/common-spar/include/channels/channel.h | 590 --------------------- .../common-spar/include/channels/channel_guid.h | 61 --- .../include/channels/controlvmchannel.h | 485 ----------------- drivers/staging/unisys/include/channel.h | 555 +++++++++++++++++++ drivers/staging/unisys/include/channel_guid.h | 61 +++ drivers/staging/unisys/visorbus/controlvmchannel.h | 485 +++++++++++++++++ 6 files changed, 1101 insertions(+), 1136 deletions(-) commit 389f55920bee9e00ce4007e62ef9ceac39caec3b Author: David Kershner Date: Wed May 13 13:22:03 2015 -0400 staging: unisys: Move controlframework into controlvmchannel.h Controlframework was only needed by controlvmchannel, move the structures into that header file. Signed-off-by: David Kershner Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman .../include/channels/controlframework.h | 62 ---------------------- .../include/channels/controlvmchannel.h | 32 ++++++++++- 2 files changed, 31 insertions(+), 63 deletions(-) commit 512a67bc09d4194792cfaa100631fb628fbb3ff0 Author: David Kershner Date: Wed May 13 13:22:02 2015 -0400 staging: unisys: move hypervisor calls into visorbus Move hypervisor calls into visorbus and move vbusdeviceinfo.h into visorbus. Drivers will call into that to update clientInfo field. Signed-off-by: David Kershner Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman .../unisys/common-spar/include/iovmcall_gnuc.h | 49 ----- .../unisys/common-spar/include/vbusdeviceinfo.h | 213 --------------------- .../unisys/common-spar/include/vmcallinterface.h | 163 ---------------- drivers/staging/unisys/visorbus/iovmcall_gnuc.h | 49 +++++ drivers/staging/unisys/visorbus/vbusdeviceinfo.h | 213 +++++++++++++++++++++ drivers/staging/unisys/visorbus/vmcallinterface.h | 161 ++++++++++++++++ 6 files changed, 423 insertions(+), 425 deletions(-) commit 30058c7477d383d105735e56e9112ae879e17ea2 Author: Don Zickus Date: Wed May 13 13:22:01 2015 -0400 staging: unisys: Temporarily add visorbus/ ccflags To prep for the moving of include files, temporarily add the visorbus/ as a ccflags -I. Once the header files are all transitioned, we can remove this. Signed-off-by: Don Zickus Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/Makefile | 1 + 1 file changed, 1 insertion(+) commit 0f41c727fc5c9b634dd8dfa985d1f73e0286cf1d Author: Jes Sorensen Date: Wed May 13 13:22:00 2015 -0400 staging: unisys: Include missing headers This preps for the possible build breakage in the next few patches. Signed-off-by: Jes Sorensen [updated changelog to reflect new patch order; instead of 'fixes' the patch 'prevents' - dcz] Signed-off-by: Don Zickus Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/include/guestlinuxdebug.h | 1 - drivers/staging/unisys/include/vbushelper.h | 2 -- drivers/staging/unisys/visorbus/visorbus_main.c | 2 +- 3 files changed, 1 insertion(+), 4 deletions(-) commit 372d872a0012408cac6973d72dda0cec13ccb9e6 Author: David Kershner Date: Wed May 13 13:21:59 2015 -0400 staging: unisys: Remove appos_subsystems.h Get rid of common-spar/include/diagnostics/appos_subsystems.h. No one is using it. Signed-off-by: David Kershner Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman .../include/diagnostics/appos_subsystems.h | 310 --------------------- drivers/staging/unisys/include/uisutils.h | 1 - 2 files changed, 311 deletions(-) commit 5d0adb24181cda13cab63c863647ec19a7f5dc9f Author: Jes Sorensen Date: Wed May 13 13:21:58 2015 -0400 staging: unisys: Remove unused livedump_info Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorchipset.c | 18 ------------------ 1 file changed, 18 deletions(-) commit d3368a58776bfdd7ca22db35ea83567e9657b6e5 Author: Jes Sorensen Date: Wed May 13 13:21:57 2015 -0400 staging: unisys: visorchipset_init(): Simplify initial checks Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorchipset.c | 40 +++++++++++--------------- 1 file changed, 17 insertions(+), 23 deletions(-) commit fa2cc0af658afbee8fa16fd3f40d53c58493da1d Author: Jes Sorensen Date: Wed May 13 13:21:56 2015 -0400 staging: unisys: Remove unused visorchipset_save_message() Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorchipset.c | 56 -------------------------- 1 file changed, 56 deletions(-) commit 0f570fc0ae56a5b7c8cdd1d1dff4e77ea2b8fa1c Author: Jes Sorensen Date: Wed May 13 13:21:55 2015 -0400 staging: unisys: visorchipset_file_{init, cleanup}(): mark static Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorchipset.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 283d93041a424a6152626940f4bc0deb78faacae Author: Shailendra Verma Date: Tue May 19 20:29:00 2015 +0530 Staging:Android:ion - Fix for memory leak if ion device registration get failed. Fix to avoid possible memory leak if the ion device registration get failed.Free the allocated device creation memory before return in case the ion device registration get failed. Signed-off-by: Shailendra Verma Signed-off-by: Greg Kroah-Hartman drivers/staging/android/ion/ion.c | 1 + 1 file changed, 1 insertion(+) commit ad5b0d07b1ae1bc82d7dbca943ebae95361a10fb Author: Jagan Teki Date: Mon May 18 19:50:17 2015 +0530 staging: android: Add more help description on Kconfig This patch adds more help description on android Kconfig for - lowmemory killer - Timed gpio (same for timed output) Signed-off-by: Jagan Teki Cc: Greg Kroah-Hartman Cc: Brian Swetland Signed-off-by: Greg Kroah-Hartman drivers/staging/android/Kconfig | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit 85c12b82c6090c04838cf3ba7216afdfae6157cb Author: Amaury Denoyelle Date: Tue May 19 19:57:50 2015 +0200 Staging: comedi: fix style for multi-line comments in cb_pcidas64.c This patch reformat multi-line comments which are not properly written according to the kernel coding style in cb_pcidas64.c Signed-off-by: Amaury Denoyelle Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/cb_pcidas64.c | 140 ++++++++++++++++++--------- 1 file changed, 93 insertions(+), 47 deletions(-) commit f51ff7e40645891b211ed349d142e5c028a1c5e5 Author: Amaury Denoyelle Date: Tue May 19 19:57:49 2015 +0200 Staging: comedi: fix line longer than 80 chars in cb_pcidas64.c This patch fixes coding style errors reported by checkpatch.pl for cb_pcidas64.c, about too long source code lines. Signed-off-by: Amaury Denoyelle Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/cb_pcidas64.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) commit 163a1f19f45b4ee3cf7180bf78ea7f71948b33c8 Author: Colin Cronin Date: Wed May 13 18:05:15 2015 -0700 Drivers: staging: comedi: comedi: Fixed comment spelling error Fixed a spelling error in a comment. Signed-off-by: Colin Cronin Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/comedi.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3db9ab0b6d8a293435a78c048f877099e040f72c Author: Graeme Gregory Date: Thu May 21 17:26:24 2015 +0100 drivers: PL011: add ACPI probing for SBSA UART Add the necessary driver boilerplate to let the driver be used when the respective ACPI table is discovered by the ACPI subsystem. [Andre: change table name, add MODULE_DEVICE_TABLE entry and improve commit message] Reviewed-by: Hanjun Guo Signed-off-by: Graeme Gregory Tested-by: Mark Langsdorf Tested-by: Naresh Bhat Signed-off-by: Andre Przywara Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/amba-pl011.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 0dd1e247fd39aed20fd2baacc62ca44d82534798 Author: Andre Przywara Date: Thu May 21 17:26:23 2015 +0100 drivers: PL011: add support for the ARM SBSA generic UART The ARM Server Base System Architecture[1] document describes a generic UART which is a subset of the PL011 UART. It lacks DMA support, baud rate control and modem status line control, among other things. The idea is to move the UART initialization and setup into the firmware (which does this job today already) and let the kernel just use the UART for sending and receiving characters. We use the recent refactoring to build a new struct uart_ops variable which points to some new functions avoiding access to the missing registers. We reuse as much existing PL011 code as possible. In contrast to the PL011 the SBSA UART does not define any AMBA or PrimeCell relations, so we go with a pretty generic probe function which only uses platform device functions. A DT binding is provided with this patch, ACPI support is added in a separate one. Signed-off-by: Andre Przywara Tested-by: Mark Langsdorf Tested-by: Naresh Bhat Signed-off-by: Greg Kroah-Hartman .../devicetree/bindings/serial/arm_sbsa_uart.txt | 10 ++ drivers/tty/serial/amba-pl011.c | 171 +++++++++++++++++++++ 2 files changed, 181 insertions(+) commit cefc2d1d66f0e0f9fbe72558c27ceeb076073f38 Author: Andre Przywara Date: Thu May 21 17:26:22 2015 +0100 drivers: PL011: allow to supply fixed option string The SBSA UART has a fixed baud rate and flow control setting, which cannot be changed or queried by software. Add a vendor specific property to always return fixed values when trying to read the console options. Signed-off-by: Andre Przywara Tested-by: Mark Langsdorf Tested-by: Naresh Bhat Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/amba-pl011.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) commit 71eec4836b834b992e0cefeefc8b85efe4cb185b Author: Andre Przywara Date: Thu May 21 17:26:21 2015 +0100 drivers: PL011: allow avoiding UART enabling/disabling The SBSA UART should not be enabled or disabled (it is always on), and consequently the spec lacks the UART_CR register. Add a vendor specific property to skip disabling or enabling of the UART. This will be used later by the SBSA UART support. Signed-off-by: Andre Przywara Tested-by: Mark Langsdorf Tested-by: Naresh Bhat Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/amba-pl011.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) commit 9c4ef4b0301673c6fa48b5ad138b6ce94e34c841 Author: Andre Przywara Date: Thu May 21 17:26:20 2015 +0100 drivers: PL011: move cts_event workaround into separate function To avoid lines with more than 80 characters and to make the pl011_int() function more readable, move the workaround out into a separate function. Signed-off-by: Andre Przywara Tested-by: Mark Langsdorf Tested-by: Naresh Bhat Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/amba-pl011.c | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) commit 075167ed71b7bd9fdeaa5c2f69179471d17e3712 Author: Andre Przywara Date: Thu May 21 17:26:19 2015 +0100 drivers: PL011: replace UART_MIS reading with _RIS & _IMSC The PL011 register UART_MIS is actually a bitwise AND of the UART_RIS and the UART_MISC register. Since the SBSA UART does not include the _MIS register, use the two separate registers to get the same behaviour. Since we are inside the spinlock and we read the _IMSC register only once, there should be no race issue. Signed-off-by: Andre Przywara Tested-by: Mark Langsdorf Tested-by: Naresh Bhat Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/amba-pl011.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 3873e2d7f63a9da3098b28c405d13f15667a01b0 Author: Andre Przywara Date: Thu May 21 17:26:18 2015 +0100 drivers: PL011: refactor pl011_probe() Currently the pl011_probe() function is relying on some AMBA IDs and a device tree node to initialize the driver and a port. Both features are not necessarily required for the driver: - we lack AMBA IDs in the ARM SBSA generic UART and - we lack a DT node in ACPI systems. So lets refactor the function to ease later reuse. Signed-off-by: Andre Przywara Tested-by: Mark Langsdorf Tested-by: Naresh Bhat Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/amba-pl011.c | 96 ++++++++++++++++++++++++++--------------- 1 file changed, 61 insertions(+), 35 deletions(-) commit ef5a9358844a2e6f466facaca3247b64c72ef417 Author: Andre Przywara Date: Thu May 21 17:26:17 2015 +0100 drivers: PL011: refactor pl011_set_termios() Split the pl011_set_termios() function into smaller chunks to allow easier reuse later when adding SBSA support. Signed-off-by: Andre Przywara Tested-by: Mark Langsdorf Tested-by: Naresh Bhat Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/amba-pl011.c | 60 ++++++++++++++++++++++------------------- 1 file changed, 33 insertions(+), 27 deletions(-) commit 95166a3fd5dc1f06321abb28b5713afd2bcc87c4 Author: Andre Przywara Date: Thu May 21 17:26:16 2015 +0100 drivers: PL011: refactor pl011_shutdown() Split the pl011_shutdown() function into smaller chunks to allow easier reuse later when adding SBSA support. Signed-off-by: Andre Przywara Tested-by: Mark Langsdorf Tested-by: Naresh Bhat Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/amba-pl011.c | 57 +++++++++++++++++++++++------------------ 1 file changed, 32 insertions(+), 25 deletions(-) commit 867b8e8e89f2f72882d267be3e035978fdd45a4a Author: Andre Przywara Date: Thu May 21 17:26:15 2015 +0100 drivers: PL011: refactor pl011_startup() Split the pl011_startup() function into smaller chunks to allow easier reuse later when adding SBSA support. Signed-off-by: Andre Przywara Tested-by: Mark Langsdorf Tested-by: Naresh Bhat Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/amba-pl011.c | 48 ++++++++++++++++++++++++----------------- 1 file changed, 28 insertions(+), 20 deletions(-) commit 49bb3c862cc418e3bc9464654e4ccb8ebb5cc2ec Author: Andre Przywara Date: Thu May 21 17:26:14 2015 +0100 drivers: PL011: avoid potential unregister_driver call Although we care about not unregistering the driver if there are still ports connected during the .remove callback, we do miss this check in the pl011_probe function. So if the current port allocation fails, but there are other ports already registered, we will kill those. So factor out the port removal into a separate function and use that in the probe function, too. Signed-off-by: Andre Przywara Tested-by: Mark Langsdorf Tested-by: Naresh Bhat Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/amba-pl011.c | 36 ++++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 16 deletions(-) commit 7798edeebc8101b1e8b1d7fb9eee3710f0877cbc Author: Arnd Bergmann Date: Tue May 19 22:11:09 2015 +0200 tty: serial/8250: remove console dependency for mediatek If the mediatek serial port driver is built-in, but serial console is disabled in Kconfig (e.g. when the serial driver itself is a loadable module), we get this build error: drivers/built-in.o: In function `early_mtk8250_setup': undefined reference to `early_serial8250_setup' To avoid that problem, this patch encloses the early_mtk8250_setup function in #ifdef CONFIG_SERIAL_8250_CONSOLE, the same symbol that guards the early_serial8250_setup function. Signed-off-by: Arnd Bergmann Acked-by: Eddie Huang Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250_mtk.c | 2 ++ 1 file changed, 2 insertions(+) commit 357d56151976a78d90dc3dfac01777de0ef05212 Author: Arnd Bergmann Date: Tue May 19 22:26:04 2015 +0200 serial: samsung: only use earlycon for console A configuration that enables earlycon but not the core console code causes a link error: drivers/built-in.o: In function `setup_earlycon': drivers/tty/serial/earlycon.c:70: undefined reference to `uart_parse_earlycon' That error can be triggered by the newly added samsung earlycon support, which is missing a 'select' statement. As suggested by Peter Hurley, solves the problem by moving the 'select SERIAL_EARLYCON' statement to the samsung console driver option, as it is done by all other console drivers. Signed-off-by: Arnd Bergmann Fixes: b94ba0328d3b3 ("serial: samsung: Add support for early console") Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit abab381feea7e61a0b5125504aa955cf339676ca Author: Arnd Bergmann Date: Fri May 22 21:59:36 2015 +0200 tty: remove platform_sysrq_reset_seq The platform_sysrq_reset_seq code was intended as a way for an embedded platform to provide its own sysrq sequence at compile time. After over two years, nobody has started using it in an upstream kernel, and the platforms that were interested in it have moved on to devicetree, which can be used to configure the sequence without requiring kernel changes. The method is also incompatible with the way that most architectures build support for multiple platforms into a single kernel. Now the code is producing warnings when built with gcc-5.1: drivers/tty/sysrq.c: In function 'sysrq_init': drivers/tty/sysrq.c:959:33: warning: array subscript is above array bounds [-Warray-bounds] key = platform_sysrq_reset_seq[i]; We could fix this, but it seems unlikely that it will ever be used, so let's just remove the code instead. We still have the option to pass the sequence either in DT, using the kernel command line, or using the /sys/module/sysrq/parameters/reset_seq file. Signed-off-by: Arnd Bergmann Fixes: 154b7a489a ("Input: sysrq - allow specifying alternate reset sequence") ---- v2: moved sysrq_reset_downtime_ms variable to avoid introducing a compile warning when CONFIG_INPUT is disabled Signed-off-by: Greg Kroah-Hartman drivers/tty/sysrq.c | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) commit 445df7ff3fd1a0a914a434881c116b856e236d78 Author: Uwe Kleine-König Date: Tue May 19 21:56:29 2015 +0200 serial: mctrl-gpio: drop usages of IS_ERR_OR_NULL The function mctrl_gpio_init returns failure if the assignment to any member of the gpio array results in an error pointer. So there is no need to check for such error values in the other functions. Signed-off-by: Uwe Kleine-König Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/serial_mctrl_gpio.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit c33eecc7abce688208430b2bb28be9442673ebef Author: Geert Uytterhoeven Date: Thu May 21 14:06:11 2015 +0200 tty: Spelling s/reseved/reserved/ Signed-off-by: Geert Uytterhoeven Signed-off-by: Greg Kroah-Hartman drivers/tty/n_gsm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fe54e93ba86686c57521ec5436e459df23610c9f Author: Geert Uytterhoeven Date: Wed May 20 19:46:27 2015 +0200 ARM: shmobile: r8a7794 dtsi: Describe DMA for the serial ports Add DMA properties to all SCIF, SCIFA, SCIFB, and HSCIF device nodes. Signed-off-by: Geert Uytterhoeven Signed-off-by: Greg Kroah-Hartman arch/arm/boot/dts/r8a7794.dtsi | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) commit 0c35004808c25da508b6efade365e78da5991983 Author: Geert Uytterhoeven Date: Wed May 20 19:46:26 2015 +0200 ARM: shmobile: r8a7791 dtsi: Describe DMA for the serial ports Add DMA properties to all SCIF, SCIFA, SCIFB, and HSCIF device nodes. Signed-off-by: Geert Uytterhoeven Signed-off-by: Greg Kroah-Hartman arch/arm/boot/dts/r8a7791.dtsi | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) commit a1706ed92e9d28990e1a78f697b09e8996f9af71 Author: Geert Uytterhoeven Date: Wed May 20 19:46:25 2015 +0200 ARM: shmobile: r8a7790 dtsi: Describe DMA for the serial ports Add DMA properties to all SCIF, SCIFA, SCIFB, and HSCIF device nodes. Signed-off-by: Geert Uytterhoeven Signed-off-by: Greg Kroah-Hartman arch/arm/boot/dts/r8a7790.dtsi | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit 3c99121ca5c5f79959c172a6297572a273f54fb6 Author: Geert Uytterhoeven Date: Wed May 20 19:46:24 2015 +0200 serial: sh-sci: Add DMA support to the DT binding documentation Signed-off-by: Geert Uytterhoeven Signed-off-by: Greg Kroah-Hartman Documentation/devicetree/bindings/serial/renesas,sci-serial.txt | 7 +++++++ 1 file changed, 7 insertions(+) commit 9e91597f24234062c8bb4278ba7c6197be84e668 Author: Sebastian Andrzej Siewior Date: Wed May 20 22:07:35 2015 +0200 serial: 8250_omap: provide complete custom startup & shutdown callbacks The currently in-use port->startup and port->shutdown are "okay". The startup part for instance does the tiny omap extra part and invokes serial8250_do_startup() for the remaining pieces. The workflow in serial8250_do_startup() is okay except for the part where UART_RX is read without a check if there is something to read. I tried to workaround it in commit 0aa525d11859 ("tty: serial: 8250_core: read only RX if there is something in the FIFO") but then reverted it later in commit ca8bb4aefb9 ("serial: 8250: Revert "tty: serial: 8250_core: read only RX if there is something in the FIFO""). This is the second attempt to get it to work on older OMAPs without breaking other chips this time Peter Hurley suggested to pull in the few needed lines from serial8250_do_startup() and drop everything else that is not required including making it simpler like using just request_irq() instead the chain handler like it is doing now. So lets try that. Fixes: ca8bb4aefb93 ("serial: 8250: Revert "tty: serial: 8250_core: read only RX if there is something in the FIFO"") Tested-by: Tony Lindgren Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250_omap.c | 82 +++++++++++++++++++++++++++++++++---- 1 file changed, 73 insertions(+), 9 deletions(-) commit 8f8e48f4d6f722a35aac9c990fa54f7bb07b4d5b Author: Jon Hunter Date: Wed May 20 12:21:04 2015 +0100 serial: tegra: Fix memory leak on DMA setup failure If the call to dmaengine_slave_config() fails, then the DMA buffer will not be freed/unmapped. Fix this by moving the code that stores the address of the buffer in the tegra_uart_port structure to before the call to dmaengine_slave_config(). Reported-by: Alexandre Courbot Signed-off-by: Jon Hunter Reviewed-by: Alexandre Courbot Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/serial-tegra.c | 32 +++++++++++--------------------- 1 file changed, 11 insertions(+), 21 deletions(-) commit c35b49b7166b8054ce33827d5dfd8d6041f5b4df Author: Qipan Li Date: Thu May 14 06:45:26 2015 +0000 serial: sirf: assign console default index if users not set a valid one it seems this is a more typical behaviour from reviewing other console drivers. Signed-off-by: Qipan Li Signed-off-by: Barry Song Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/sirfsoc_uart.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7f60f2fe16206d5db6a228dfe1de5ea0a9e5da46 Author: Qipan Li Date: Thu May 14 06:45:25 2015 +0000 serial: sirf: add serial loopback function support Signed-off-by: Qipan Li Signed-off-by: Barry Song Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/sirfsoc_uart.c | 20 ++++++++++++++++++++ drivers/tty/serial/sirfsoc_uart.h | 2 +- 2 files changed, 21 insertions(+), 1 deletion(-) commit d9e8e976faef867f9be579d6a76e1271d5d30da8 Author: Qipan Li Date: Thu May 14 06:45:24 2015 +0000 serial: sirf: add uart receive's some error counter and mark add overrun error's flag mark and parity's counter, we can show the statistic from procfs node. BTW, let the indentation of stick bits configuration look better. Signed-off-by: Qipan Li Signed-off-by: Barry Song Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/sirfsoc_uart.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) commit 36c0991089ef190ee5e3f72e1346c623b24a0e7d Author: Qipan Li Date: Thu May 14 06:45:23 2015 +0000 serial: sirf: fix endless loop bug in uart receive tasklet In special condition, when cpu schedule into rx_tmo_process_tl or rx_dma_complete_tl and all the receive dma tasks have done, it will go into endless loop because no dma task cookie status be changed. Signed-off-by: Qipan Li Signed-off-by: Barry Song Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/sirfsoc_uart.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit eab192ae56fd52416af485e3d7ba2c6982200d71 Author: Qipan Li Date: Thu May 14 06:45:22 2015 +0000 serial: sirf: fix the issue that HW flow control doesn't work for BT >From HW spec, when rxfifo's data is less than AFC_RX_THD(RX threshhold), RTS signal is active. otherwise, RTS signal is inactive. Crrently the RX threshhold is set as zero, so RTS has no chance to be active. This patch replaces the default 0 by a positive number. Signed-off-by: Qipan Li Signed-off-by: Barry Song Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/sirfsoc_uart.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit c1b7ac6f4dab63e14ead6a715bc64d39f4a02b2b Author: Qipan Li Date: Thu May 14 06:45:21 2015 +0000 serial: sirf: enable ATLAS7 USP serial support differentiate difference port types by re-defining the status MARCO or putting HW differences into private data of the related ports. Signed-off-by: Qipan Li Signed-off-by: Barry Song Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/sirfsoc_uart.c | 129 ++++++++++++++++++++++++++++---------- drivers/tty/serial/sirfsoc_uart.h | 33 +++++----- 2 files changed, 115 insertions(+), 47 deletions(-) commit 113c62ee49d212ecb934147c6ba84cfa79c26121 Author: Masahiro Yamada Date: Mon May 11 10:23:38 2015 +0900 tty: fix comment of ASYNCB_SPD_HI This comment does not reflect the actual code. It should be 57600, not 56000. Signed-off-by: Masahiro Yamada Signed-off-by: Greg Kroah-Hartman include/uapi/linux/tty_flags.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 98b3f0d535d72e80235aa8b4f7727ff0c89db6b1 Author: Masahiro Yamada Date: Mon May 11 10:25:58 2015 +0900 tty: rocket: fix comment of ROCKET_SPD_HI This comment does not reflect the actual code. It should be 57600, not 56000. Signed-off-by: Masahiro Yamada Signed-off-by: Greg Kroah-Hartman drivers/tty/rocket.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8687634b7908c42eb700e0469e110e02833611d1 Author: Nicolas Ferre Date: Mon May 11 13:00:31 2015 +0200 tty/serial: at91: RS485 mode: 0 is valid for delay_rts_after_send In RS485 mode, we may want to set the delay_rts_after_send value to 0. In the datasheet, the 0 value is said to "disable" the Transmitter Timeguard but this is exactly the expected behavior if we want no delay... Moreover, if the value was set to non-zero value by device-tree or earlier ioctl command, it was impossible to change it back to zero. Reported-by: Sami Pietikäinen Signed-off-by: Nicolas Ferre Cc: stable@vger.kernel.org # 3.2+ Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/atmel_serial.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit 039ae58503f3349157a852c2cd5555a630f0bfaf Author: Pali Rohár Date: Thu May 14 13:16:37 2015 +0200 hwmon: Allow to compile dell-smm-hwmon driver without /proc/i8k This patch splits CONFIG_I8K compile option to SENSORS_DELL_SMM and CONFIG_I8K. Option SENSORS_DELL_SMM is now used to enable compilation of dell-smm-hwmon driver and old CONFIG_I8K option to enable /proc/i8k interface in driver. So this change allows to compile dell-smm-hwmon driver without legacy /proc/i8k interface which is needed only for old Dell Inspirion models or for userspace i8kutils package. For backward compatibility when CONFIG_I8K is enabled then also SENSORS_DELL_SMM is enabled and so driver dell-smm-hwmon (with /proc/i8k) is compiled. Signed-off-by: Pali Rohár Signed-off-by: Greg Kroah-Hartman arch/x86/Kconfig | 25 +++---- drivers/hwmon/Kconfig | 11 +++ drivers/hwmon/Makefile | 2 +- drivers/hwmon/dell-smm-hwmon.c | 150 +++++++++++++++++++++++------------------ 4 files changed, 106 insertions(+), 82 deletions(-) commit a5afba16c641dc1dda837cfc32dea1e37666d31a Author: Pali Rohár Date: Thu May 14 13:16:36 2015 +0200 hwmon: Rename i8k driver to dell-smm-hwmon and move it to hwmon tree This commit moves i8k driver to hwmon tree under name dell-smm-hwmon which is better name then abbreviation i8k. For backward compatibility is added macro MODULE_ALIAS("i8k") so modprobe will load driver also old name i8k. CONFIG_I8K compile option was not changed. This commit also adds me as maintainer of this new dell-smm-hwmon driver and remove Guenter Roeck from list who is implicit maintainer all hwmon drivers. Signed-off-by: Pali Rohár Signed-off-by: Greg Kroah-Hartman MAINTAINERS | 4 +- drivers/char/Makefile | 1 - drivers/char/i8k.c | 1007 --------------------------------------- drivers/hwmon/Makefile | 1 + drivers/hwmon/dell-smm-hwmon.c | 1009 ++++++++++++++++++++++++++++++++++++++++ 5 files changed, 1012 insertions(+), 1010 deletions(-) commit e0fd9b1d9c44c0966e322046912a0a0bce237d42 Author: Luis R. Rodriguez Date: Tue May 12 14:49:43 2015 -0700 firmware: use const for remaining firmware names We currently use flexible arrays with a char at the end for the remaining internal firmware name uses. There are two limitations with the way we use this. Since we're using a flexible array for a string on the struct if we wanted to use two strings it means we'd have a disjoint means of handling the strings, one using the flexible array, and another a char * pointer. We're also currently not using 'const' for the string. We wish to later extend some firmware data structures with other string/char pointers, but we also want to be very pedantic about const usage. Since we're going to change things to use 'const' we might as well also address unified way to use multiple strings on the structs. Replace the flexible array practice for strings with kstrdup_const() and kfree_const(), this will avoid allocations when the vmlinux .rodata is used, and just allocate a new proper string for us when needed. This also means we can simplify the struct allocations by removing the string length from the allocation size computation, which would otherwise get even more complicated when supporting multiple strings. Cc: Linus Torvalds Cc: Rusty Russell Cc: David Howells Cc: Ming Lei Cc: Seth Forshee Cc: Kyle McMartin Signed-off-by: Luis R. Rodriguez Signed-off-by: Greg Kroah-Hartman drivers/base/firmware_class.c | 40 ++++++++++++++++++++++++++++------------ 1 file changed, 28 insertions(+), 12 deletions(-) commit f9692b2699bd82ae0df1d7d495d9fb9c4bd45ad9 Author: Luis R. Rodriguez Date: Tue May 12 14:49:42 2015 -0700 firmware: fix possible use after free on name on asynchronous request Asynchronous firmware loading copies the pointer to the name passed as an argument only to be scheduled later and used. This behaviour works well for synchronous calling but in asynchronous mode there's a chance the caller could immediately free the passed string after making the asynchronous call. This could trigger a use after free having the kernel look on disk for arbitrary file names. In order to force-test the issue you can use a test-driver designed to illustrate this issue on github [0], use the next-20150505-fix-use-after-free branch. With this patch applied you get: [ 283.512445] firmware name: test_module_stuff.bin [ 287.514020] firmware name: test_module_stuff.bin [ 287.532489] firmware found Without this patch applied you can end up with something such as: [ 135.624216] firmware name: \xffffff80BJ [ 135.624249] platform fake-dev.0: Direct firmware load for \xffffff80Bi failed with error -2 [ 135.624252] No firmware found [ 135.624252] firmware found Unfortunatley in the worst and most common case however you can typically crash your system with a page fault by trying to free something which you cannot, and/or a NULL pointer dereference [1]. The fix and issue using schedule_work() for asynchronous runs is generalized in the following SmPL grammar patch, when applied to next-20150505 only the firmware_class code is affected. This grammar patch can and should further be generalized to vet for for other kernel asynchronous mechanisms. @ calls_schedule_work @ type T; T *priv_work; identifier func, work_func; identifier work; identifier priv_name, name; expression gfp; @@ func(..., const char *name, ...) { ... priv_work = kzalloc(sizeof(T), gfp); ... - priv_work->priv_name = name; + priv_work->priv_name = kstrdup_const(name, gfp); ... (... when any if (...) { ... + kfree_const(priv_work->priv_name); kfree(priv_work); ... } ) ... when any INIT_WORK(&priv_work->work, work_func); ... schedule_work(&priv_work->work); ... } @ the_work_func depends on calls_schedule_work @ type calls_schedule_work.T; T *priv_work; identifier calls_schedule_work.work_func; identifier calls_schedule_work.priv_name; identifier calls_schedule_work.work; identifier some_work; @@ work_func(...) { ... priv_work = container_of(some_work, T, work); ... + kfree_const(priv_work->priv_name); kfree(priv_work); ... } [0] https://github.com/mcgrof/fake-firmware-test.git [1] The following kernel ring buffer splat: firmware name: test_module_stuff.bin firmware name: firmware found general protection fault: 0000 [#1] SMP Modules linked in: test(O) <...etc-it-does-not-matter> drm sr_mod cdrom xhci_pci xhci_hcd rtsx_pci mfd_core video button sg CPU: 3 PID: 87 Comm: kworker/3:2 Tainted: G O 4.0.0-00010-g22b5bb0-dirty #176 Hardware name: LENOVO 20AW000LUS/20AW000LUS, BIOS GLET43WW (1.18 ) 12/04/2013 Workqueue: events request_firmware_work_func task: ffff8800c7f8e290 ti: ffff8800c7f94000 task.ti: ffff8800c7f94000 RIP: 0010:[] [] fw_free_buf+0xc/0x40 RSP: 0000:ffff8800c7f97d78 EFLAGS: 00010286 RAX: ffffffff81ae3700 RBX: ffffffff816d1181 RCX: 0000000000000006 RDX: 0001ee850ff68500 RSI: 0000000000000246 RDI: c35d5f415e415d41 RBP: ffff8800c7f97d88 R08: 000000000000000a R09: 0000000000000000 R10: 0000000000000358 R11: ffff8800c7f97a7e R12: ffff8800c7ec1e80 R13: ffff88021e2d4cc0 R14: ffff88021e2dff00 R15: 00000000000000c0 FS: 0000000000000000(0000) GS:ffff88021e2c0000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00000000034b8cd8 CR3: 000000021073c000 CR4: 00000000001407e0 Stack: ffffffff816d1181 ffff8800c7ec1e80 ffff8800c7f97da8 ffffffff814a58f8 000000000000000a ffffffff816d1181 ffff8800c7f97dc8 ffffffffa047002c ffff88021e2dff00 ffff8802116ac1c0 ffff8800c7f97df8 ffffffff814a65fe Call Trace: [] ? __schedule+0x361/0x940 [] release_firmware+0x58/0x80 [] ? __schedule+0x361/0x940 [] test_mod_cb+0x2c/0x43 [test] [] request_firmware_work_func+0x5e/0x80 [] ? __schedule+0x361/0x940 [] process_one_work+0x14a/0x3f0 [] worker_thread+0x121/0x460 [] ? rescuer_thread+0x310/0x310 [] kthread+0xc9/0xe0 [] ? kthread_create_on_node+0x180/0x180 [] ret_from_fork+0x58/0x90 [] ? kthread_create_on_node+0x180/0x180 Code: c7 c6 dd ad a3 81 48 c7 c7 20 97 ce 81 31 c0 e8 0b b2 ed ff e9 78 ff ff ff 66 0f 1f 44 00 00 0f 1f 44 00 00 55 48 89 e5 41 54 53 <4c> 8b 67 38 48 89 fb 4c 89 e7 e8 85 f7 22 00 f0 83 2b 01 74 0f RIP [] fw_free_buf+0xc/0x40 RSP ---[ end trace 4e62c56a58d0eac1 ]--- BUG: unable to handle kernel paging request at ffffffffffffffd8 IP: [] kthread_data+0x10/0x20 PGD 1c13067 PUD 1c15067 PMD 0 Oops: 0000 [#2] SMP Modules linked in: test(O) <...etc-it-does-not-matter> drm sr_mod cdrom xhci_pci xhci_hcd rtsx_pci mfd_core video button sg CPU: 3 PID: 87 Comm: kworker/3:2 Tainted: G D O 4.0.0-00010-g22b5bb0-dirty #176 Hardware name: LENOVO 20AW000LUS/20AW000LUS, BIOS GLET43WW (1.18 ) 12/04/2013 task: ffff8800c7f8e290 ti: ffff8800c7f94000 task.ti: ffff8800c7f94000 RIP: 0010:[] [] kthread_data+0x10/0x20 RSP: 0018:ffff8800c7f97b18 EFLAGS: 00010096 RAX: 0000000000000000 RBX: 0000000000000003 RCX: 000000000000000d RDX: 0000000000000003 RSI: 0000000000000003 RDI: ffff8800c7f8e290 RBP: ffff8800c7f97b18 R08: 000000000000bc00 R09: 0000000000007e76 R10: 0000000000000001 R11: 000000000000002f R12: ffff8800c7f8e290 R13: 00000000000154c0 R14: 0000000000000003 R15: 0000000000000000 FS: 0000000000000000(0000) GS:ffff88021e2c0000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000028 CR3: 0000000210675000 CR4: 00000000001407e0 Stack: ffff8800c7f97b38 ffffffff8108dcd5 ffff8800c7f97b38 ffff88021e2d54c0 ffff8800c7f97b88 ffffffff816d1500 ffff880213d42368 ffff8800c7f8e290 ffff8800c7f97b88 ffff8800c7f97fd8 ffff8800c7f8e710 0000000000000246 Call Trace: [] wq_worker_sleeping+0x15/0xa0 [] __schedule+0x6e0/0x940 [] schedule+0x37/0x90 [] do_exit+0x6bc/0xb40 [] oops_end+0x9f/0xe0 [] die+0x4b/0x70 [] do_general_protection+0xe2/0x170 [] general_protection+0x28/0x30 [] ? __schedule+0x361/0x940 [] ? fw_free_buf+0xc/0x40 [] ? __schedule+0x361/0x940 [] release_firmware+0x58/0x80 [] ? __schedule+0x361/0x940 [] test_mod_cb+0x2c/0x43 [test] [] request_firmware_work_func+0x5e/0x80 [] ? __schedule+0x361/0x940 [] process_one_work+0x14a/0x3f0 [] worker_thread+0x121/0x460 [] ? rescuer_thread+0x310/0x310 [] kthread+0xc9/0xe0 [] ? kthread_create_on_node+0x180/0x180 [] ret_from_fork+0x58/0x90 [] ? kthread_create_on_node+0x180/0x180 Code: 00 48 89 e5 5d 48 8b 40 c8 48 c1 e8 02 83 e0 01 c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 48 8b 87 30 05 00 00 55 48 89 e5 <48> 8b 40 d8 5d c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 RIP [] kthread_data+0x10/0x20 RSP CR2: ffffffffffffffd8 ---[ end trace 4e62c56a58d0eac2 ]--- Fixing recursive fault but reboot is needed! Cc: Linus Torvalds Cc: Rusty Russell Cc: David Howells Cc: Ming Lei Cc: Seth Forshee Cc: Kyle McMartin Generated-by: Coccinelle SmPL Signed-off-by: Luis R. Rodriguez Signed-off-by: Greg Kroah-Hartman drivers/base/firmware_class.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 1ba4de17e0cb9cc3e03ce5b1fafebdd01c48c1f2 Author: Luis R. Rodriguez Date: Tue May 12 14:49:41 2015 -0700 firmware: check for file truncation on direct firmware loading When direct firmware loading is used we iterate over a list of possible firmware paths and concatenate the desired firmware name with each path and look for the file there. Should the passed firmware name be too long we end up truncating the file we want to look for, the search however is still done. Add a check for truncation instead of looking for a truncated firmware filename. Cc: Linus Torvalds Cc: Ming Lei Cc: Rusty Russell Cc: David Howells Cc: Kyle McMartin Signed-off-by: Luis R. Rodriguez Signed-off-by: Greg Kroah-Hartman drivers/base/firmware_class.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit f5727b05d221796baf69667ed5c891d4bd53711e Author: Luis R. Rodriguez Date: Tue May 12 14:49:40 2015 -0700 firmware: fix __getname() missing failure check The request_firmware*() APIs uses __getname() to iterate over the list of paths possible for firmware to be found, the code however never checked for failure on __getname(). Although *very unlikely*, this can still happen. Add the missing check. There is still no checks on the concatenation of the path and filename passed, that requires a bit more work and subsequent patches address this. The commit that introduced this is abb139e7 ("firmware: teach the kernel to load firmware files directly from the filesystem"). mcgrof@ergon ~/linux (git::firmware-fixes) $ git describe --contains abb139e7 v3.7-rc1~120 Cc: Linus Torvalds Cc: Ming Lei Cc: Rusty Russell Cc: David Howells Cc: Kyle McMartin Signed-off-by: Luis R. Rodriguez Signed-off-by: Greg Kroah-Hartman drivers/base/firmware_class.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit f4445f8b204de44a8baa4326b0e56537be867427 Author: Sudeep Holla Date: Thu May 14 15:28:24 2015 +0100 drivers: of/base: move of_init to driver_init Commit 5590f3196b29 ("drivers/core/of: Add symlink to device-tree from devices with an OF node") adds the symlink `of_node` for each device pointing to it's device tree node while creating/initialising it. However the devicetree sysfs is created and setup in of_init which is executed at core_initcall level. For all the devices created before of_init, the following error is thrown: "Error -2(-ENOENT) creating of_node link" Like many other components in driver model, initialize the sysfs support for OF/devicetree from driver_init so that it's ready before any devices are created. Fixes: 5590f3196b29 ("drivers/core/of: Add symlink to device-tree from devices with an OF node") Suggested-by: Rob Herring Cc: Grant Likely Cc: Pawel Moll Cc: Benjamin Herrenschmidt Signed-off-by: Sudeep Holla Tested-by: Robert Schwebel Acked-by: Rob Herring Signed-off-by: Greg Kroah-Hartman drivers/base/init.c | 2 ++ drivers/of/base.c | 8 +++----- include/linux/of.h | 6 ++++++ 3 files changed, 11 insertions(+), 5 deletions(-) commit 2539b258ec028351af954c169ea1b0ff72023a9f Author: Will Deacon Date: Fri May 8 14:45:34 2015 +0100 drivers/base: cacheinfo: fix annoying typo when DT nodes are absent s/hierarcy/hierarchy/ Maybe the typo will annoy people enough so that they add the missing nodes to their device-tree files, but I still think this is better off fixed. Signed-off-by: Will Deacon Acked-by: Sudeep Holla Signed-off-by: Greg Kroah-Hartman Documentation/ABI/testing/sysfs-devices-system-cpu | 2 +- drivers/base/cacheinfo.c | 4 ++-- include/linux/cacheinfo.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) commit ed1dc8a89454218a2471f67284765e8c03bdfc6b Author: Antonio Ospite Date: Wed Apr 29 10:55:46 2015 +0200 sysfs: disambiguate between "error code" and "failure" in comments The sentence "Returns 0 on success or error" might be misinterpreted as "the function will always returns 0", make it less ambiguous. Also, use the word "failure" as the contrary of "success". Signed-off-by: Antonio Ospite Cc: Greg Kroah-Hartman Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Signed-off-by: Greg Kroah-Hartman fs/sysfs/group.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 80c6e1465948c2e91214f01764f427d31ebedb26 Author: Dmitry Torokhov Date: Thu May 21 15:49:37 2015 -0700 driver-core: fix build for !CONFIG_MODULES Commit f2411da74698 ("driver-core: add driver module asynchronous probe support") broke build in case modules are disabled, because in this case "struct module" is not defined and we can't dereference it. Let's define module_requested_async_probing() helper and stub it out if modules are disabled. Reported-by: kbuild test robot Reported-by: Stephen Rothwell Signed-off-by: Dmitry Torokhov Signed-off-by: Greg Kroah-Hartman drivers/base/dd.c | 2 +- include/linux/module.h | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) commit 802a87fd5be9cac1d05879bcdae2620e46b0dbe6 Author: Dmitry Torokhov Date: Wed May 20 16:36:31 2015 -0700 driver-core: make __device_attach() static It is only used within dd.c and thus need not be global. Reported-by: kbuild test robot Signed-off-by: Dmitry Torokhov Signed-off-by: Greg Kroah-Hartman drivers/base/dd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit dc7dfcd838985947ee1a66cdaa41c4968404e0ed Author: Wolfram Sang Date: Thu Apr 23 17:20:54 2015 +0200 MAINTAINERS: add kernfs entry My kernfs patch slipped through because I didn't know which maintainer to CC. Have been told it's gkh. Add an entry, and sort the file patterns while we are here. Signed-off-by: Wolfram Sang Signed-off-by: Greg Kroah-Hartman MAINTAINERS | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit ba50150e80088e159ac80f0e71243ae2fa0c4901 Author: Wolfram Sang Date: Thu Apr 23 17:14:31 2015 +0200 kernfs: remove outdated and confusing comment Grabbing the parent is not happening anymore since 2010 (e72ceb8ccac5f7 "sysfs: Remove sysfs_get/put_active_two"). Remove this confusing comment. Signed-off-by: Wolfram Sang Acked-by: Tejun Heo Signed-off-by: Greg Kroah-Hartman fs/kernfs/file.c | 1 - 1 file changed, 1 deletion(-) commit db1700685c0ad2ecb9e42af6a568435a03bbc3fd Author: Dan Carpenter Date: Fri May 8 12:16:25 2015 +0300 virtio_console: silence a static checker warning My static checker complains that this sprintf() can overflow but really it can't. Just silence the warning by using snprintf(). Signed-off-by: Dan Carpenter Reviewed-by: Amit Shah Signed-off-by: Greg Kroah-Hartman drivers/char/virtio_console.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 45c554ece9cffbdf67299b87ba785529276cd2dd Author: Geert Uytterhoeven Date: Sun Apr 26 10:11:38 2015 +0200 xillybus: XILLYBUS_OF should depend on HAS_DMA If NO_DMA=y: drivers/built-in.o: In function `xilly_of_unmap': xillybus_of.c:(.text+0xa860e): undefined reference to `dma_unmap_single' drivers/built-in.o: In function `xilly_map_single_of': xillybus_of.c:(.text+0xa8668): undefined reference to `dma_map_single' xillybus_of.c:(.text+0xa8676): undefined reference to `dma_mapping_error' xillybus_of.c:(.text+0xa86ca): undefined reference to `dma_unmap_single' drivers/built-in.o: In function `xilly_dma_sync_single_for_device_of': xillybus_of.c:(.text+0xa8700): undefined reference to `dma_sync_single_for_cpu' drivers/built-in.o: In function `xilly_dma_sync_single_for_cpu_of': xillybus_of.c:(.text+0xa8726): undefined reference to `dma_sync_single_for_cpu' Signed-off-by: Geert Uytterhoeven Acked-by: Eli Billauer -- v2: - Add Acked-by, send to char and misc drivers maintainers. Signed-off-by: Greg Kroah-Hartman drivers/char/xillybus/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3411d035eb31138b8b756a788056b9e9ccd5f656 Author: Joe Perches Date: Fri Apr 10 16:47:35 2015 -0700 goldfish_pipe: Fix unlikely() misuse Move the close parenthesis. Signed-off-by: Joe Perches Signed-off-by: Greg Kroah-Hartman drivers/platform/goldfish/goldfish_pipe.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d3046ba809ce4a3c34d605000cdce48c6ba54b6c Author: Dmitry Eremin-Solenikov Date: Mon Mar 30 14:33:45 2015 +0300 pcmcia: fix a boot time warning in pcmcia cs code During bootup pcmcia (pccardd) code enforces the following warning backtrace: do not call blocking ops when !TASK_RUNNING; state=1 set at [] pccardd+0xb8/0x3fc Modules linked in: CPU: 0 PID: 14 Comm: pccardd Not tainted 4.0.0-rc6+ #11 Hardware name: Sharp-Collie [] (unwind_backtrace) from [] (show_stack+0x10/0x14) [] (show_stack) from [] (warn_slowpath_common+0x74/0xac) [] (warn_slowpath_common) from [] (warn_slowpath_fmt+0x30/0x40) [] (warn_slowpath_fmt) from [] (__might_sleep+0x84/0xa0) [] (__might_sleep) from [] (mutex_lock_nested+0x24/0x388) [] (mutex_lock_nested) from [] (pccardd+0xf8/0x3fc) [] (pccardd) from [] (kthread+0xdc/0xfc) [] (kthread) from [] (ret_from_fork+0x14/0x2c) ---[ end trace fd94911637eed4ba ]--- This happens due to kthread trying to lock mutex in a TASK_INTERRUPTIBLE state. Limit TASK_INTERRUPTIBLE task state to the schedule() call only, so that the rest of the code runs in TASK_RUNNING state. Signed-off-by: Dmitry Eremin-Solenikov Signed-off-by: Greg Kroah-Hartman drivers/pcmcia/cs.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit 7879b1d94badb5c34fa777244091c2304191dddf Author: Alan Date: Wed Apr 8 13:59:21 2015 +0100 um,ethertap: use strncpy [um maintainers appear to be vanished] I can't prove the case pointed out in https://bugzilla.kernel.org/show_bug.cgi?id=82341 is correct so let us play safe. Signed-off-by: Alan Cox Signed-off-by: Greg Kroah-Hartman arch/um/os-Linux/drivers/ethertap_user.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f0c7b474665ebd3ebb17394eb7339ee24a46580b Author: Stephen Boyd Date: Fri Apr 10 16:11:03 2015 -0700 drivers/char: Remove msm_smd_pkt driver This code is no longer used now that mach-msm has been removed. Delete it. Cc: David Brown Cc: Bryan Huntsman Cc: Daniel Walker Signed-off-by: Stephen Boyd Signed-off-by: Greg Kroah-Hartman drivers/char/Kconfig | 8 - drivers/char/Makefile | 1 - drivers/char/msm_smd_pkt.c | 465 --------------------------------------------- 3 files changed, 474 deletions(-) commit ce59fec836a9b4dc51cbcf9cb245b59e0ef53bea Author: Vitaly Kuznetsov Date: Wed May 6 17:47:46 2015 -0700 Drivers: hv: vmbus: distribute subchannels among all vcpus Primary channels are distributed evenly across all vcpus we have. When the host asks us to create subchannels it usually makes us num_cpus-1 offers and we are supposed to distribute the work evenly among the channel itself and all its subchannels. Make sure they are all assigned to different vcpus. Signed-off-by: Vitaly Kuznetsov Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/channel_mgmt.c | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) commit f38e7dd72337d83cced910cfbf6016475ef85bf7 Author: Vitaly Kuznetsov Date: Wed May 6 17:47:45 2015 -0700 Drivers: hv: vmbus: move init_vp_index() call to vmbus_process_offer() We need to call init_vp_index() after we added the channel to the appropriate list (global or subchannel) to be able to use this information when assigning the channel to the particular vcpu. To do so we need to move a couple of functions around. The only real change is the init_vp_index() call. This is a small refactoring without a functional change. Signed-off-by: Vitaly Kuznetsov Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/channel_mgmt.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 357e836a609812ab28fb56df28555295191bd330 Author: Vitaly Kuznetsov Date: Wed May 6 17:47:44 2015 -0700 Drivers: hv: vmbus: decrease num_sc on subchannel removal It is unlikely that that host will ask us to close only one subchannel for a device but let's be consistent. Do both num_sc++ and num_sc-- with channel->lock to be on the safe side. Signed-off-by: Vitaly Kuznetsov Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/channel_mgmt.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit fea844a2b0edd6540d5cde2cd54a8a3c86e9c53f Author: Vitaly Kuznetsov <[mailto:vkuznets@redhat.com]> Date: Wed May 6 17:47:43 2015 -0700 Drivers: hv: vmbus: briefly comment num_sc and next_oc next_oc and num_sc fields of struct vmbus_channel deserve a description. Move them closer to sc_list as these fields are related to it. Signed-off-by: Vitaly Kuznetsov Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman include/linux/hyperv.h | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit 8dfd332674758135039d0d2d2a7479934ff0b9c5 Author: Vitaly Kuznetsov Date: Wed May 6 17:47:42 2015 -0700 Drivers: hv: vmbus: unify calls to percpu_channel_enq() Remove some code duplication, no functional change intended. Signed-off-by: Vitaly Kuznetsov Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/channel_mgmt.c | 51 +++++++++++++++++------------------------------ 1 file changed, 18 insertions(+), 33 deletions(-) commit 1959a28e2671004c1e9c30ccd2914b868f100742 Author: Vitaly Kuznetsov Date: Wed May 6 17:47:41 2015 -0700 Drivers: hv: vmbus: kill tasklets on module unload Explicitly kill tasklets we create on module unload. Signed-off-by: Vitaly Kuznetsov Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/vmbus_drv.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit ffc151f3c83c25ec06d5ad13a78d0fc066c7167e Author: Vitaly Kuznetsov Date: Wed May 6 17:47:40 2015 -0700 Drivers: hv: vmbus: do cleanup on all vmbus_open() failure paths In case there was an error reported in the response to the CHANNELMSG_OPENCHANNEL call we need to do the cleanup as a vmbus_open() user won't be doing it after receiving an error. The cleanup should be done on all failure paths. We also need to avoid returning open_info->response.open_result.status as the return value as all other errors we return from vmbus_open() are -EXXX and vmbus_open() callers are not supposed to analyze host error codes. Signed-off-by: Vitaly Kuznetsov Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/channel.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) commit 2db84eff127e3f4b3635edc589cd6a56db8755a3 Author: K. Y. Srinivasan Date: Wed Apr 22 21:31:32 2015 -0700 Drivers: hv: vmbus: Implement the protocol for tearing down vmbus state Implement the protocol for tearing down the monitor state established with the host. Signed-off-by: K. Y. Srinivasan Tested-by: Vitaly Kuznetsov Signed-off-by: Greg Kroah-Hartman drivers/hv/channel_mgmt.c | 25 +++++++++++++++++++++++++ drivers/hv/connection.c | 5 +++++ drivers/hv/hyperv_vmbus.h | 2 ++ drivers/hv/vmbus_drv.c | 2 +- include/linux/hyperv.h | 1 + 5 files changed, 34 insertions(+), 1 deletion(-) commit db9ba2088f6507fee370904f02db1eb9b49bd088 Author: K. Y. Srinivasan Date: Wed Apr 22 21:31:31 2015 -0700 drivers: hv: vmbus: Get rid of some unused definitions Get rid of some unused definitions. Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman include/linux/hyperv.h | 19 ------------------- 1 file changed, 19 deletions(-) commit 813c5b7958a288c4333ef1eb2fa4b486cdcdda9a Author: Dexuan Cui Date: Wed Apr 22 21:31:30 2015 -0700 hv: vmbus_free_channels(): remove the redundant free_channel() free_channel() has been invoked in vmbus_remove() -> hv_process_channel_removal(), or vmbus_remove() -> ... -> vmbus_close_internal() -> hv_process_channel_removal(). We also change to use list_for_each_entry_safe(), because the entry is removed in hv_process_channel_removal(). This patch fixes a bug in the vmbus unload path. Thank Dan Carpenter for finding the issue! Signed-off-by: Dexuan Cui Reported-by: Dan Carpenter Cc: K. Y. Srinivasan Cc: Vitaly Kuznetsov Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/channel_mgmt.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) commit 096c605feb3d85b309e95db2afc01584b967cc23 Author: Vitaly Kuznetsov Date: Wed Apr 22 21:31:29 2015 -0700 Drivers: hv: vmbus: unregister panic notifier on module unload Commit 96c1d0581d00f7abe033350edb021a9d947d8d81 ("Drivers: hv: vmbus: Add support for VMBus panic notifier handler") introduced atomic_notifier_chain_register() call on module load. We also need to call atomic_notifier_chain_unregister() on module unload as otherwise the following crash is observed when we bring hv_vmbus back: [ 39.788877] BUG: unable to handle kernel paging request at ffffffffa00078a8 [ 39.788877] IP: [] notifier_call_chain+0x3f/0x80 ... [ 39.788877] Call Trace: [ 39.788877] [] __atomic_notifier_call_chain+0x5d/0x90 ... [ 39.788877] [] ? atomic_notifier_chain_register+0x38/0x70 [ 39.788877] [] ? atomic_notifier_chain_register+0x17/0x70 [ 39.788877] [] hv_acpi_init+0x14f/0x1000 [hv_vmbus] [ 39.788877] [] do_one_initcall+0xd4/0x210 Signed-off-by: Vitaly Kuznetsov Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/vmbus_drv.c | 4 ++++ 1 file changed, 4 insertions(+) commit e4ecb41cf96f4468202498593cc08e3e9dd3df58 Author: Vitaly Kuznetsov Date: Wed Apr 22 21:31:28 2015 -0700 Drivers: hv: vmbus: introduce vmbus_acpi_remove In case we do request_resource() in vmbus_acpi_add() we need to tear it down to be able to load the driver again. Otherwise the following crash in observed when hv_vmbus unload/load sequence is performed on a Generation2 instance: [ 38.165701] BUG: unable to handle kernel paging request at ffffffffa00075a0 [ 38.166315] IP: [] __request_resource+0x2f/0x50 [ 38.166315] PGD 1f34067 PUD 1f35063 PMD 3f723067 PTE 0 [ 38.166315] Oops: 0000 [#1] SMP [ 38.166315] Modules linked in: hv_vmbus(+) [last unloaded: hv_vmbus] [ 38.166315] CPU: 0 PID: 267 Comm: modprobe Not tainted 3.19.0-rc5_bug923184+ #486 [ 38.166315] Hardware name: Microsoft Corporation Virtual Machine/Virtual Machine, BIOS Hyper-V UEFI Release v1.0 11/26/2012 [ 38.166315] task: ffff88003f401cb0 ti: ffff88003f60c000 task.ti: ffff88003f60c000 [ 38.166315] RIP: 0010:[] [] __request_resource+0x2f/0x50 [ 38.166315] RSP: 0018:ffff88003f60fb58 EFLAGS: 00010286 Signed-off-by: Vitaly Kuznetsov Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/vmbus_drv.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 7c959127581d420ec692344ee905504fdeecec1a Author: Vitaly Kuznetsov Date: Sat Apr 11 18:07:59 2015 -0700 Drivers: hv: utils: unify driver registration reporting Unify driver registration reporting and move it to debug level as normally daemons write to syslog themselves and these kernel messages are useless. Signed-off-by: Vitaly Kuznetsov Tested-by: Alex Ng Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/hv_fcopy.c | 3 +-- drivers/hv/hv_kvp.c | 3 ++- drivers/hv/hv_snapshot.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) commit a4d1ee5b0255a135fead1d62a7fc7e6fe718b66e Author: Vitaly Kuznetsov Date: Sat Apr 11 18:07:58 2015 -0700 Drivers: hv: fcopy: full handshake support Introduce FCOPY_VERSION_1 to support kernel replying to the negotiation message with its own version. Signed-off-by: Vitaly Kuznetsov Tested-by: Alex Ng Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/hv_fcopy.c | 16 +++++++++++++++- include/uapi/linux/hyperv.h | 3 ++- tools/hv/hv_fcopy_daemon.c | 15 +++++++++++++++ 3 files changed, 32 insertions(+), 2 deletions(-) commit cd8dc0548511efff7a97d978f989ce67a883f9a5 Author: Vitaly Kuznetsov Date: Sat Apr 11 18:07:57 2015 -0700 Drivers: hv: vss: full handshake support Introduce VSS_OP_REGISTER1 to support kernel replying to the negotiation message with its own version. Signed-off-by: Vitaly Kuznetsov Tested-by: Alex Ng Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/hv_snapshot.c | 49 ++++++++++++++++++++++++++++++++++----------- include/uapi/linux/hyperv.h | 5 +++++ tools/hv/hv_vss_daemon.c | 14 +++++++++++++ 3 files changed, 56 insertions(+), 12 deletions(-) commit f5722b9bd418e29b7429bd9a43bd100599b26d4f Author: Vitaly Kuznetsov Date: Sat Apr 11 18:07:56 2015 -0700 Tools: hv: vss: use misc char device to communicate with kernel Use /dev/vmbus/hv_vss instead of netlink. Signed-off-by: Vitaly Kuznetsov Tested-by: Alex Ng Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman tools/hv/hv_vss_daemon.c | 139 +++++++++-------------------------------------- 1 file changed, 25 insertions(+), 114 deletions(-) commit 8ddca8088586303cfe3db4209a4682f7a4cf7d2d Author: Vitaly Kuznetsov Date: Sat Apr 11 18:07:55 2015 -0700 Tools: hv: kvp: use misc char device to communicate with kernel Use /dev/vmbus/hv_kvp instead of netlink. Signed-off-by: Vitaly Kuznetsov Tested-by: Alex Ng Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman tools/hv/hv_kvp_daemon.c | 166 +++++++++-------------------------------------- 1 file changed, 31 insertions(+), 135 deletions(-) commit 11bc3a5fa91f193b3d947a4cf51e21c4aa13292d Author: Vitaly Kuznetsov Date: Sat Apr 11 18:07:54 2015 -0700 Drivers: hv: kvp: convert to hv_utils_transport Convert to hv_utils_transport to support both netlink and /dev/vmbus/hv_kvp communication methods. Signed-off-by: Vitaly Kuznetsov Tested-by: Alex Ng Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/hv_kvp.c | 91 +++++++++++++++++++++++++---------------------------- 1 file changed, 42 insertions(+), 49 deletions(-) commit c7e490fc23eb44e6ae6ab41b9fd450e361f8a01f Author: Vitaly Kuznetsov Date: Sat Apr 11 18:07:53 2015 -0700 Drivers: hv: fcopy: convert to hv_utils_transport Unify the code with the recently introduced hv_utils_transport. Netlink communication is disabled for fcopy. Signed-off-by: Vitaly Kuznetsov Tested-by: Alex Ng Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/hv_fcopy.c | 194 ++++++++++++-------------------------------------- 1 file changed, 46 insertions(+), 148 deletions(-) commit 6472f80a2eeb34b442542bccd4d600e9251d9c36 Author: Vitaly Kuznetsov Date: Sat Apr 11 18:07:52 2015 -0700 Drivers: hv: vss: convert to hv_utils_transport Convert to hv_utils_transport to support both netlink and /dev/vmbus/hv_vss communication methods. Signed-off-by: Vitaly Kuznetsov Tested-by: Alex Ng Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/hv_snapshot.c | 52 +++++++++++++++++++++++++----------------------- 1 file changed, 27 insertions(+), 25 deletions(-) commit 14b50f80c32dd4e84b6baeaa8bf4049cc5ecf56d Author: Vitaly Kuznetsov Date: Sat Apr 11 18:07:51 2015 -0700 Drivers: hv: util: introduce hv_utils_transport abstraction The intention is to make KVP/VSS drivers work through misc char devices. Introduce an abstraction for kernel/userspace communication to make the migration smoother. Transport operational mode (netlink or char device) is determined by the first received message. To support driver upgrades the switch from netlink to chardev operational mode is supported. Every hv_util daemon is supposed to register 2 callbacks: 1) on_msg() to get notified when the userspace daemon sent a message; 2) on_reset() to get notified when the userspace daemon drops the connection. Signed-off-by: Vitaly Kuznetsov Tested-by: Alex Ng Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/Makefile | 2 +- drivers/hv/hv_utils_transport.c | 276 ++++++++++++++++++++++++++++++++++++++++ drivers/hv/hv_utils_transport.h | 51 ++++++++ 3 files changed, 328 insertions(+), 1 deletion(-) commit 3f0dccf86cab38d96b67efdfc944954f5490d057 Author: Vitaly Kuznetsov Date: Sat Apr 11 18:07:50 2015 -0700 Drivers: hv: fcopy: set .owner reference for file operations Get an additional reference otherwise a crash is observed when hv_utils module is being unloaded while fcopy daemon is still running. .owner gives us an additional reference when someone holds a descriptor for the device. Signed-off-by: Vitaly Kuznetsov Tested-by: Alex Ng Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/hv_fcopy.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 4c93ccccf47e32d605b81207eb575cce3b12facc Author: Vitaly Kuznetsov Date: Sat Apr 11 18:07:49 2015 -0700 Drivers: hv: fcopy: switch to using the hvutil_device_state state machine Switch to using the hvutil_device_state state machine from using 3 different state variables: fcopy_transaction.active, opened, and in_hand_shake. State transitions are: -> HVUTIL_DEVICE_INIT when driver loads or on device release -> HVUTIL_READY if the handshake was successful -> HVUTIL_HOSTMSG_RECEIVED when there is a non-negotiation message from the host -> HVUTIL_USERSPACE_REQ after userspace daemon read the message -> HVUTIL_USERSPACE_RECV after/if userspace has replied -> HVUTIL_READY after we respond to the host -> HVUTIL_DEVICE_DYING on driver unload In hv_fcopy_onchannelcallback() process ICMSGTYPE_NEGOTIATE messages even when the userspace daemon is disconnected, otherwise we can make the host think we don't support FCOPY and disable the service completely. Signed-off-by: Vitaly Kuznetsov Tested-by: Alex Ng Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/hv_fcopy.c | 70 ++++++++++++++++++++++----------------------------- 1 file changed, 30 insertions(+), 40 deletions(-) commit 086a6f68d6933d3c48b3898752cd6ca1a0e02aec Author: Vitaly Kuznetsov Date: Sat Apr 11 18:07:48 2015 -0700 Drivers: hv: vss: switch to using the hvutil_device_state state machine Switch to using the hvutil_device_state state machine from using kvp_transaction.active. State transitions are: -> HVUTIL_DEVICE_INIT when driver loads or on device release -> HVUTIL_READY if the handshake was successful -> HVUTIL_HOSTMSG_RECEIVED when there is a non-negotiation message from the host -> HVUTIL_USERSPACE_REQ after we sent the message to the userspace daemon -> HVUTIL_USERSPACE_RECV after/if the userspace daemon has replied -> HVUTIL_READY after we respond to the host -> HVUTIL_DEVICE_DYING on driver unload In hv_vss_onchannelcallback() process ICMSGTYPE_NEGOTIATE messages even when the userspace daemon is disconnected, otherwise we can make the host think we don't support VSS and disable the service completely. Unfortunately there is no good way we can figure out that the userspace daemon has died (unless we start treating all timeouts as such), add a protection against processing new VSS_OP_REGISTER messages while being in the middle of a transaction (HVUTIL_USERSPACE_REQ or HVUTIL_USERSPACE_RECV state). Signed-off-by: Vitaly Kuznetsov Tested-by: Alex Ng Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/hv_snapshot.c | 87 ++++++++++++++++++++++++++++++++---------------- 1 file changed, 58 insertions(+), 29 deletions(-) commit 97bf16cd309805ebf82ffcc4063a65e06169651f Author: Vitaly Kuznetsov Date: Sat Apr 11 18:07:47 2015 -0700 Drivers: hv: kvp: switch to using the hvutil_device_state state machine Switch to using the hvutil_device_state state machine from using 2 different state variables: kvp_transaction.active and in_hand_shake. State transitions are: -> HVUTIL_DEVICE_INIT when driver loads or on device release -> HVUTIL_READY if the handshake was successful -> HVUTIL_HOSTMSG_RECEIVED when there is a non-negotiation message from the host -> HVUTIL_USERSPACE_REQ after we sent the message to the userspace daemon -> HVUTIL_USERSPACE_RECV after/if the userspace daemon has replied -> HVUTIL_READY after we respond to the host -> HVUTIL_DEVICE_DYING on driver unload In hv_kvp_onchannelcallback() process ICMSGTYPE_NEGOTIATE messages even when the userspace daemon is disconnected, otherwise we can make the host think we don't support KVP and disable the service completely. Unfortunately there is no good way we can figure out that the userspace daemon has died (unless we start treating all timeouts as such). In case the daemon restarts we skip the negotiation procedure (so the daemon is supposed to has the same version). This behavior is unchanged from in_handshake approach. Signed-off-by: Vitaly Kuznetsov Tested-by: Alex Ng Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/hv_kvp.c | 87 ++++++++++++++++++++++++++++++----------------------- 1 file changed, 49 insertions(+), 38 deletions(-) commit 636c88da6df3bb2f978b48d3a7ed55423da84d19 Author: Vitaly Kuznetsov Date: Sat Apr 11 18:07:46 2015 -0700 Drivers: hv: util: introduce state machine for util drivers KVP/VSS/FCOPY drivers work in fully serialized mode: we wait till userspace daemon registers, wait for a message from the host, send this message to the daemon, get the reply, send it back to host, wait for another message. Introduce enum hvutil_device_state to represend this state in all 3 drivers. Signed-off-by: Vitaly Kuznetsov Tested-by: Alex Ng Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/hyperv_vmbus.h | 9 +++++++++ 1 file changed, 9 insertions(+) commit 1d072339fa9e32365d282d8ade32822de7d21e5f Author: Vitaly Kuznetsov Date: Sat Apr 11 18:07:45 2015 -0700 Drivers: hv: fcopy: rename fcopy_work -> fcopy_timeout_work 'fcopy_work' (and fcopy_work_func) is a misnomer as it sounds like we expect this useful work to happen and in reality it is just an emergency escape when timeout happens. Signed-off-by: Vitaly Kuznetsov Tested-by: Alex Ng Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/hv_fcopy.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 68c8b39a0db71e0e76295bf277e8280ae36e7c10 Author: Vitaly Kuznetsov Date: Sat Apr 11 18:07:44 2015 -0700 Drivers: hv: kvp: rename kvp_work -> kvp_timeout_work 'kvp_work' (and kvp_work_func) is a misnomer as it sounds like we expect this useful work to happen and in reality it is just an emergency escape when timeout happens. Signed-off-by: Vitaly Kuznetsov Tested-by: Alex Ng Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/hv_kvp.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 38c06c29bada78c4805000bfb9b7f19cd691461b Author: Vitaly Kuznetsov Date: Sat Apr 11 18:07:43 2015 -0700 Drivers: hv: vss: process deferred messages when we complete the transaction In theory, the host is not supposed to issue any requests before be reply to the previous one. In KVP we, however, support the following scenarios: 1) A message was received before userspace daemon registered; 2) A message was received while the previous one is still being processed. In VSS we support only the former. Add support for the later, use hv_poll_channel() to do the job. Signed-off-by: Vitaly Kuznetsov Tested-by: Alex Ng Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/hv_snapshot.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) commit 242f31221d48793d07e161bc668e1aabd502c18b Author: Vitaly Kuznetsov Date: Sat Apr 11 18:07:42 2015 -0700 Drivers: hv: fcopy: process deferred messages when we complete the transaction In theory, the host is not supposed to issue any requests before be reply to the previous one. In KVP we, however, support the following scenarios: 1) A message was received before userspace daemon registered; 2) A message was received while the previous one is still being processed. In FCOPY we support only the former. Add support for the later, use hv_poll_channel() to do the job. Signed-off-by: Vitaly Kuznetsov Tested-by: Alex Ng Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/hv_fcopy.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit 8efe78fdb1490e271615fab32433ebc0f15fa822 Author: Vitaly Kuznetsov Date: Sat Apr 11 18:07:41 2015 -0700 Drivers: hv: kvp: move poll_channel() to hyperv_vmbus.h Move poll_channel() to hyperv_vmbus.h and make it inline and rename it to hv_poll_channel() so it can be reused in other hv_util modules. Signed-off-by: Vitaly Kuznetsov Tested-by: Alex Ng Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/hv_kvp.c | 17 +++-------------- drivers/hv/hyperv_vmbus.h | 12 ++++++++++++ 2 files changed, 15 insertions(+), 14 deletions(-) commit 5fa97480b9b125bb9bdb446930289b3274ed7eb7 Author: Vitaly Kuznetsov Date: Sat Apr 11 18:07:40 2015 -0700 Drivers: hv: kvp: reset kvp_context We set kvp_context when we want to postpone receiving a packet from vmbus due to the previous transaction being unfinished. We, however, never reset this state, all consequent kvp_respond_to_host() calls will result in poll_channel() calling hv_kvp_onchannelcallback(). This doesn't cause real issues as: 1) Host is supposed to serialize transactions as well 2) If no message is pending vmbus_recvpacket() will return 0 recvlen. This is just a cleanup. Signed-off-by: Vitaly Kuznetsov Tested-by: Alex Ng Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/hv_kvp.c | 1 + 1 file changed, 1 insertion(+) commit 3647a83d9dcf00b8e17777ec8aa1e48f1ed4fe06 Author: Vitaly Kuznetsov Date: Sat Apr 11 18:07:39 2015 -0700 Drivers: hv: util: move kvp/vss function declarations to hyperv_vmbus.h These declarations are internal to hv_util module and hv_fcopy_* declarations already reside there. Signed-off-by: Vitaly Kuznetsov Tested-by: Alex Ng Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/hv_kvp.c | 1 + drivers/hv/hv_snapshot.c | 2 ++ drivers/hv/hyperv_vmbus.h | 8 ++++++++ include/linux/hyperv.h | 7 ------- 4 files changed, 11 insertions(+), 7 deletions(-) commit 0810f18fce92afc827d5c7c1d4f146b72b8052d6 Author: Colin Ian King Date: Tue May 12 22:37:23 2015 +0100 ti-st: handle null allocation return correctly. static analysis with smatch picked up the following error: get_platform_data() error: potential null dereference 'dt_pdata'. (kzalloc returns null) Instead, the code should return NULL to avoid the following null pointer deference. Also, remove the error message as it is redundant, the caller emits an error message to alert of a failure anyhow. Signed-off-by: Colin Ian King Signed-off-by: Greg Kroah-Hartman drivers/misc/ti-st/st_kim.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 4b6fda0b809cca084b23c0842d713ba1d9c686da Author: Valentin Rothberg Date: Wed May 13 10:40:52 2015 +0200 checkkconfigsymbols.py: set python2 as default interpreter Some more recent distributions set the default interpreter to python3, causing the script to break since it's written for python2. Signed-off-by: Valentin Rothberg Signed-off-by: Greg Kroah-Hartman scripts/checkkconfigsymbols.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cf132e4a8e070872e3b170a6cc7429b62e441d99 Author: Valentin Rothberg Date: Wed Apr 29 16:58:27 2015 +0200 checkkconfigsymbols.py: add option -i to ignore files Sometimes a user might be interested to filter certain reports (e.g., the many defconfigs). Now, this can be achieved by specifying a Python regex with -i / --ignore. Signed-off-by: Valentin Rothberg Signed-off-by: Greg Kroah-Hartman scripts/checkkconfigsymbols.py | 32 ++++++++++++++++++++++++++------ 1 file changed, 26 insertions(+), 6 deletions(-) commit f5c48149b961012caf3bd0986fc500325647d5d7 Author: Sudeep Dutt Date: Wed Apr 29 05:32:40 2015 -0700 misc: mic: add support for loading/unloading SCIF driver modprobe SCIF driver upon start and remove it upon unload Reviewed-by: Nikhil Rao Reviewed-by: Ashutosh Dixit Signed-off-by: Sudeep Dutt Signed-off-by: Greg Kroah-Hartman Documentation/mic/mpssd/mpss | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) commit dd8d8d44df643a8f55ec2e854cc3c2dd892654cb Author: Sudeep Dutt Date: Wed Apr 29 05:32:39 2015 -0700 misc: mic: MIC card driver specific changes to enable SCIF MIC card driver specific changes to enable SCIF. This patch implements the SCIF hardware bus operations and registers a SCIF device on the SCIF hardware bus. Reviewed-by: Nikhil Rao Signed-off-by: Ashutosh Dixit Signed-off-by: Sudeep Dutt Signed-off-by: Greg Kroah-Hartman drivers/misc/mic/Kconfig | 2 +- drivers/misc/mic/card/mic_device.c | 132 ++++++++++++++++++++++++++++++++++++- drivers/misc/mic/card/mic_device.h | 11 +++- drivers/misc/mic/card/mic_x100.c | 61 ++++++++++++++++- drivers/misc/mic/card/mic_x100.h | 1 + 5 files changed, 201 insertions(+), 6 deletions(-) commit 74321d4c99fc1d2582085cbb614d5a3ea9da962d Author: Sudeep Dutt Date: Wed Apr 29 05:32:38 2015 -0700 misc: mic: MIC host driver specific changes to enable SCIF MIC host driver specific changes to enable SCIF. This patch implements the SCIF hardware bus operations and registers a SCIF device on the SCIF hardware bus. Reviewed-by: Nikhil Rao Reviewed-by: Ashutosh Dixit Signed-off-by: Sudeep Dutt Signed-off-by: Greg Kroah-Hartman drivers/misc/mic/Kconfig | 2 +- drivers/misc/mic/host/mic_boot.c | 264 ++++++++++++++++++++++++++++++++++-- drivers/misc/mic/host/mic_debugfs.c | 13 ++ drivers/misc/mic/host/mic_device.h | 11 +- drivers/misc/mic/host/mic_intr.h | 3 +- drivers/misc/mic/host/mic_main.c | 6 + drivers/misc/mic/host/mic_smpt.c | 7 +- drivers/misc/mic/host/mic_smpt.h | 1 + drivers/misc/mic/host/mic_virtio.c | 6 +- drivers/misc/mic/host/mic_x100.c | 3 +- 10 files changed, 292 insertions(+), 24 deletions(-) commit fdd9fd5c38afe732258a0af4c6be14f3fbd1585c Author: Sudeep Dutt Date: Wed Apr 29 05:32:37 2015 -0700 misc: mic: SCIF messaging and node enumeration APIs SCIF messaging APIs which allow sending messages between the SCIF endpoints via a byte stream based ring buffer which has been optimized to avoid reads across PCIe. The SCIF messaging APIs are typically used for short < 1024 byte messages for best performance while the RDMA APIs which will be submitted in a future patch series is recommended for larger transfers. The node enumeration API enables a user to query for the number of nodes online in the SCIF network and their node ids. Reviewed-by: Ashutosh Dixit Signed-off-by: Nikhil Rao Signed-off-by: Sudeep Dutt Signed-off-by: Greg Kroah-Hartman drivers/misc/mic/scif/scif_api.c | 402 ++++++++++++++++++++++++++++++++++++ drivers/misc/mic/scif/scif_epd.c | 32 +++ drivers/misc/mic/scif/scif_epd.h | 4 + drivers/misc/mic/scif/scif_fd.c | 93 +++++++++ drivers/misc/mic/scif/scif_nm.c | 17 ++ drivers/misc/mic/scif/scif_nodeqp.c | 36 +++- 6 files changed, 583 insertions(+), 1 deletion(-) commit 76371c7c0d8642ef30a865df57bf6d186855802d Author: Nikhil Rao Date: Wed Apr 29 05:32:36 2015 -0700 misc: mic: SCIF connections APIs i.e. accept and connect SCIF connection APIs which establish a SCIF connection between a pair of SCIF endpoints. A SCIF connection consists of a dedicated queue-pair between the endpoints. Client messages are sent over the queue-pair whereas the signaling associated with the message is multiplexed over the node queue-pair. Similarly other control messages such as exposing registered memory are also sent over the node queue-pair. The SCIF endpoints must be in connected state to exchange messages, register memory, map remote memory and trigger DMA transfers. SCIF connections can be set up asynchronously or synchronously. Thanks to Johnnie S Peters for authoring parts of this patch during early bring up of the SCIF driver. Reviewed-by: Ashutosh Dixit Signed-off-by: Sudeep Dutt Signed-off-by: Nikhil Rao Signed-off-by: Greg Kroah-Hartman drivers/misc/mic/scif/scif_api.c | 457 ++++++++++++++++++++++++++++++++++++ drivers/misc/mic/scif/scif_epd.c | 229 ++++++++++++++++++ drivers/misc/mic/scif/scif_epd.h | 8 + drivers/misc/mic/scif/scif_fd.c | 106 +++++++++ drivers/misc/mic/scif/scif_main.c | 1 + drivers/misc/mic/scif/scif_nm.c | 36 +++ drivers/misc/mic/scif/scif_nodeqp.c | 16 +- 7 files changed, 852 insertions(+), 1 deletion(-) commit e9089f43c9a79fe97e242de8b5530eceeb5ae8b5 Author: Sudeep Dutt Date: Wed Apr 29 05:32:35 2015 -0700 misc: mic: SCIF open close bind and listen APIs SCIF character device file operations and kernel APIs for opening and closing a user and kernel mode SCIF endpoint. This patch also enables binding to a SCIF port and listening for incoming SCIF connections. Reviewed-by: Nikhil Rao Reviewed-by: Ashutosh Dixit Signed-off-by: Sudeep Dutt Signed-off-by: Greg Kroah-Hartman drivers/misc/mic/Kconfig | 19 ++ drivers/misc/mic/Makefile | 1 + drivers/misc/mic/scif/Makefile | 15 ++ drivers/misc/mic/scif/scif_api.c | 417 ++++++++++++++++++++++++++++++++++++ drivers/misc/mic/scif/scif_epd.c | 92 ++++++++ drivers/misc/mic/scif/scif_epd.h | 148 +++++++++++++ drivers/misc/mic/scif/scif_fd.c | 104 +++++++++ drivers/misc/mic/scif/scif_main.h | 2 + drivers/misc/mic/scif/scif_nodeqp.h | 12 +- drivers/misc/mic/scif/scif_ports.c | 124 +++++++++++ 10 files changed, 933 insertions(+), 1 deletion(-) commit 40cb59428c842e6f14be1fe0cb8cfa295080c2e5 Author: Sudeep Dutt Date: Wed Apr 29 05:32:34 2015 -0700 misc: mic: SCIF node queue pair setup management SCIF node queue pair setup creates the SCIF driver kernel mode private node queue pairs between all the nodes to enable internal control message communication once SCIF gets probed by the SCIF hardware bus. Peer to peer communication between MIC Coprocessor nodes is supported. Reviewed-by: Nikhil Rao Reviewed-by: Ashutosh Dixit Signed-off-by: Sudeep Dutt Signed-off-by: Greg Kroah-Hartman drivers/misc/mic/scif/scif_nm.c | 184 +++++ drivers/misc/mic/scif/scif_nodeqp.c | 1264 +++++++++++++++++++++++++++++++++++ drivers/misc/mic/scif/scif_nodeqp.h | 173 +++++ 3 files changed, 1621 insertions(+) commit fb4d0e3d4fbb46fd1324545eeb086b4ba59d9750 Author: Sudeep Dutt Date: Wed Apr 29 05:32:33 2015 -0700 misc: mic: SCIF module initialization SCIF module initialization, DMA mapping, ioremap wrapper APIs and debugfs hooks. SCIF gets probed by the SCIF hardware bus if SCIF devices were registered by base drivers. A MISC device is registered to provide the SCIF character device interface. Reviewed-by: Nikhil Rao Reviewed-by: Ashutosh Dixit Signed-off-by: Sudeep Dutt Signed-off-by: Greg Kroah-Hartman drivers/misc/mic/scif/scif_debugfs.c | 85 ++++++++ drivers/misc/mic/scif/scif_main.c | 391 +++++++++++++++++++++++++++++++++++ drivers/misc/mic/scif/scif_main.h | 252 ++++++++++++++++++++++ drivers/misc/mic/scif/scif_map.h | 113 ++++++++++ 4 files changed, 841 insertions(+) commit c9d5c53db959e587d8b59c6a202e2dca741baac4 Author: Sudeep Dutt Date: Wed Apr 29 05:32:32 2015 -0700 misc: mic: Common MIC header file changes in preparation for SCIF Update mic_bootparam and define the maximum number of DMA channels Reviewed-by: Nikhil Rao Reviewed-by: Ashutosh Dixit Signed-off-by: Sudeep Dutt Signed-off-by: Greg Kroah-Hartman drivers/misc/mic/common/mic_dev.h | 3 +++ include/uapi/linux/mic_common.h | 12 ++++++++++++ 2 files changed, 15 insertions(+) commit b55f0359c19bae3be8fbda1281c071bc72c0dd55 Author: Sudeep Dutt Date: Wed Apr 29 05:32:31 2015 -0700 misc: mic: SCIF Peer Bus The SCIF peer bus is used to register and unregister SCIF peer devices internally by the SCIF driver to signify the addition and removal of peer nodes respectively from the SCIF network. This simplifies remote node handling within SCIF and will also be used to support device probe/remove for SCIF client drivers (e.g. netdev over SCIF) Reviewed-by: Nikhil Rao Reviewed-by: Ashutosh Dixit Signed-off-by: Sudeep Dutt Signed-off-by: Greg Kroah-Hartman drivers/misc/mic/scif/scif_peer_bus.c | 124 ++++++++++++++++++++++++++++++++++ drivers/misc/mic/scif/scif_peer_bus.h | 65 ++++++++++++++++++ 2 files changed, 189 insertions(+) commit 5ec4ca6adb6abcd4479fa8d4e657748da0043f15 Author: Sudeep Dutt Date: Wed Apr 29 05:32:30 2015 -0700 misc: mic: SCIF Hardware Bus The SCIF hardware bus abstracts the low level hardware driver details like interrupts and mapping remote memory so that the same SCIF driver can work without any changes with the MIC host or card driver as long as the hardware bus operations are implemented. The SCIF hardware device is registered by the host and card drivers on the SCIF hardware bus resulting in probing the SCIF driver. Reviewed-by: Nikhil Rao Reviewed-by: Ashutosh Dixit Signed-off-by: Sudeep Dutt Signed-off-by: Greg Kroah-Hartman drivers/misc/mic/Kconfig | 17 ++++ drivers/misc/mic/Makefile | 2 +- drivers/misc/mic/bus/Makefile | 1 + drivers/misc/mic/bus/scif_bus.c | 210 ++++++++++++++++++++++++++++++++++++++++ drivers/misc/mic/bus/scif_bus.h | 129 ++++++++++++++++++++++++ 5 files changed, 358 insertions(+), 1 deletion(-) commit 9ad8b64820c92704326148fe9138b7ece181b440 Author: Sudeep Dutt Date: Wed Apr 29 05:32:29 2015 -0700 misc: mic: SCIF ring buffer infrastructure SCIF ring buffer is a single producer, single consumer byte stream ring buffer optimized for avoiding reads across the PCIe bus while adding the required barriers and hardware workarounds for the MIC Coprocessor. The ring buffer is used to implement a receive queue for SCIF driver messaging between two nodes and for byte stream messaging between SCIF endpoints. The existing in-kernel ring buffer was not reused since it has not been designed for our use across the PCIe bus where each node runs an independent OS. Each SCIF node has a receive queue for every other SCIF node, and each connected endpoint has a receive queue for messages from its peer. This pair of receive queues is referred to as a SCIF queue pair. Reviewed-by: Nikhil Rao Reviewed-by: Ashutosh Dixit Signed-off-by: Sudeep Dutt Signed-off-by: Greg Kroah-Hartman drivers/misc/mic/scif/scif_rb.c | 248 ++++++++++++++++++++++++++++++++++++++++ drivers/misc/mic/scif/scif_rb.h | 100 ++++++++++++++++ 2 files changed, 348 insertions(+) commit 7df20f2d893db42eaa1ea1e30a2573c971ec9238 Author: Sudeep Dutt Date: Wed Apr 29 05:32:28 2015 -0700 misc: mic: SCIF header file and IOCTL interface This patch introduces the SCIF documentation in the header file and describes the IOCTL interface for user mode. mic_overview.txt is updated with documentation on SCIF and a new document describing SCIF in more details is available in scif_overview.txt. Reviewed-by: Nikhil Rao Reviewed-by: Ashutosh Dixit Signed-off-by: Sudeep Dutt Signed-off-by: Greg Kroah-Hartman Documentation/mic/mic_overview.txt | 28 +- Documentation/mic/scif_overview.txt | 98 ++++ include/linux/scif.h | 993 ++++++++++++++++++++++++++++++++++++ include/uapi/linux/Kbuild | 1 + include/uapi/linux/scif_ioctl.h | 130 +++++ 5 files changed, 1238 insertions(+), 12 deletions(-) commit 0d09f1a54d9710548c9af72dc1564c8291a5307c Author: Ira Snyder Date: Sat May 2 10:05:59 2015 -0700 misc: remove drivers for CARMA hardware The CARMA project has ended, and the hardware has all been moved into storage. It is unlikely to ever be used again. Remove the drivers so that there is no more maintenance burden from ongoing upstream kernel changes. Signed-off-by: Ira W. Snyder Signed-off-by: Greg Kroah-Hartman drivers/misc/Kconfig | 1 - drivers/misc/Makefile | 1 - drivers/misc/carma/Kconfig | 15 - drivers/misc/carma/Makefile | 2 - drivers/misc/carma/carma-fpga-program.c | 1182 ------------------------ drivers/misc/carma/carma-fpga.c | 1507 ------------------------------- 6 files changed, 2708 deletions(-) commit 898bc2824ece39a769b40e94579f5fc277689aba Author: Tal Shorer Date: Fri May 1 14:53:09 2015 +0300 drivers: char: misc.c: remove trailing whitespace Remove trailing whitespace from several lines in drivers/char/misc.c This was done using scripts/cleanfile Signed-off-by: Tal Shorer Signed-off-by: Greg Kroah-Hartman drivers/char/misc.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit d9411e57dc7fcdbf28eb825d090b06b4248a95bc Author: Matt Campbell Date: Tue Apr 28 07:44:17 2015 -0400 w1: Add support for DS28EA00 sequence to w1-therm This patch provides support for the DS28EA00 digital thermometer. The DS28EA00 provides an additional two pins for implementing a sequence detection algorithm. This feature allows you to determine the physical location of the chip in the 1-wire bus without needing pre-existing knowledge of the bus ordering. Support is provided through the sysfs w1_seq file. The file will contain a single line with an integer value representing the device index in the bus starting at 0. Signed-off-by: Matt Campbell Acked-by: Evgeniy Polyakov Signed-off-by: Greg Kroah-Hartman Documentation/ABI/stable/sysfs-driver-w1_ds28ea00 | 6 ++ Documentation/w1/slaves/w1_therm | 11 ++- drivers/w1/slaves/w1_therm.c | 102 +++++++++++++++++++++- 3 files changed, 117 insertions(+), 2 deletions(-) commit f7134eea05b2fb4a2c0935f8a540539fff01f3eb Author: David Fries Date: Fri May 8 19:51:50 2015 -0500 w1_therm reference count family data A temperature conversion can take 750 ms and when possible the w1_therm slave driver drops the bus_mutex to allow other bus operations, but that includes operations such as a periodic slave search, which can remove this slave when it is no longer detected. If that happens the sl->family_data will be freed and set to NULL causing w1_slave_show to crash when it wakes up. Signed-off-by: David Fries Reported-By: Thorsten Bschorr Tested-by: Thorsten Bschorr Acked-by: Evgeniy Polyakov Cc: stable Signed-off-by: Greg Kroah-Hartman drivers/w1/slaves/w1_therm.c | 62 +++++++++++++++++++++++++++++++++----------- 1 file changed, 47 insertions(+), 15 deletions(-) commit c3098356927254be270e5dc186a2ca144b64463b Author: Dmitry Khromov Date: Tue May 12 22:29:44 2015 +0300 w1: introduce an ability to specify microseconds bus scanning intervals Some of 1-Wire devices commonly associated with physical access control systems are attached/generate presence for as short as 100 ms - hence the tens-to-hundreds milliseconds scan intervals are required. Signed-off-by: Dmitry Khromov Acked-by: Evgeniy Polyakov Signed-off-by: Greg Kroah-Hartman Documentation/ABI/stable/sysfs-bus-w1 | 11 +++++++++++ Documentation/w1/w1.generic | 30 +++++++++++++++++++----------- drivers/w1/w1.c | 17 ++++++++++++++++- 3 files changed, 46 insertions(+), 12 deletions(-) commit 99b7e93c95c78952724a9783de6c78def8fbfc3f Author: Krzysztof Kolasa Date: Sun May 3 22:58:59 2015 -0500 lz4: fix system halt at boot kernel on x86_64 Sometimes, on x86_64, decompression fails with the following error: Decompressing Linux... Decoding failed -- System halted This condition is not needed for a 64bit kernel(from commit d5e7caf): if( ... || (op + COPYLENGTH) > oend) goto _output_error macro LZ4_SECURE_COPY() tests op and does not copy any data when op exceeds the value. added by analogy to lz4_uncompress_unknownoutputsize(...) Signed-off-by: Krzysztof Kolasa Tested-by: Alexander Kuleshov Tested-by: Caleb Jorden Signed-off-by: Greg Kroah-Hartman lib/lz4/lz4_decompress.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit 61a590fa67ac3c897e7c21fd75a5c85a4671b384 Author: Richard Weinberger Date: Mon May 4 21:00:46 2015 +0200 spmi: Add dependency on HAS_IOMEM Not all architectures have io memory. Fixes: drivers/built-in.o: In function `spmi_pmic_arb_probe': spmi-pmic-arb.c:(.text+0x1ed399): undefined reference to `devm_ioremap_resource' Signed-off-by: Richard Weinberger Signed-off-by: Greg Kroah-Hartman drivers/spmi/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 9ff2c132345cab8972a2bd29069aa52a3cadbbcc Author: Stephen Hemminger Date: Thu May 14 09:19:13 2015 -0700 uio: don't free irq that was not requested UIO base driver should only free_irq that it has requested. UIO supports drivers without interrupts (irq == 0) or custom handlers. This fixes warnings like: WARNING: CPU: 1 PID: 5478 at kernel/irq/manage.c:1244 __free_irq+0xa9/0x1e0() Trying to free already-free IRQ 0 Signed-off-by: Stephen Hemminger Signed-off-by: Greg Kroah-Hartman drivers/uio/uio.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 61e331202f1ad57ccd2f08e4cea91dccb8591809 Merge: 936a0cd 884ca45 Author: Greg Kroah-Hartman Date: Sun May 24 11:45:21 2015 -0700 Merge tag 'iio-for-v4.2b' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into staging-next Jonathan writes: Second set of new driver, functionality and cleanups for IIO in the 4.2 cycle. Core functionality * i and q modifiers from quadrature channels. * IIO_CHAN_INFO_OVERSAMPLING_RATIO added. * High pass filter attributes added to mirror the existing low pass filter ones. Core cleanups * Make IIO tools building more cross compiler friendly. * Substantial rework of the function __iio_update_buffers to greatly simplify a hideously evolved function. New drivers and support * ACPI0008 ambient light sensor driver. This one has been around a long time to will be good to finally get it into mainline. * Berlin SOC ADC support. * BMC150 magnetometer. The accelerometer in the same package has been supported for quite some time, so good to have this half as well. * m62332 DAC driver * MEMSIC MMC35420 magnetometer. * ROHM BH1710 and similar ambient light sensors. * Sensortek STK3310 light sensor. * Sensortek STK8312 accelerometer. * Sensortek STK8BA50 accelerometer. * ti-adc128s052 gains support form the adc122s021 2 channel ADC. Driver cleanups and functionality. * Allow various drivers to compile with !GPIOLIB if COMPILE_TEST enabled. * bmc150 - decouple trigger from buffer to allow other triggers to be used. * bmg160 - decouple trigger from buffer to allow other triggers to be used. Fix a trivial unused field. * Constify a load of platform_device_id structures. * inv_mpu6050 - device tree bindings. * hid-sensors - fix a memory leak during probe if certain errors occur. * ltr501 - illuminance channel derived (in an non obvious fashion) from the intensity channels. * ltr501 - fix a boundary check on the proximity threshold. * mlx90614 - drop a pointless return. * mma8452 - Debugfs register access and fix a bug that had no effect (by coincidence) * ti_am335x_adc - add device tree bindings for sample-delay, open-delay and averaging. The ideal settings for these tend to be board design specific. commit 5b20a028faa15477dcd195c85173bb118eb23b3d Author: Tomas Winkler Date: Thu May 21 13:35:48 2015 +0300 mei: export hbm features to debugfs under devstate Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/debugfs.c | 7 +++++++ 1 file changed, 7 insertions(+) commit dbac993f6a6df24d5edc362667e524ba43543472 Author: Tomas Winkler Date: Thu May 7 15:54:07 2015 +0300 mei: export mei client device struct to external use Cc: Samuel Ortiz Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/mei_dev.h | 35 ----------------------------------- include/linux/mei_cl_bus.h | 38 ++++++++++++++++++++++++++++++++++++-- 2 files changed, 36 insertions(+), 37 deletions(-) commit 1d3ff76721fbb04e69abe8abbae1a77ed02bd36f Author: Tomas Winkler Date: Thu May 7 15:54:06 2015 +0300 NFC: mei_phy: adjust mei nfc header according the spec 1. mei_nfc_hci_hdr and mei_nfc_hdr are just the same thing so drop one 2. use mei_nfc_hdr structure as the member of the command and the reply instead of replicating all header fields. 3. dump the header for easier debugging Cc: Samuel Ortiz Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman drivers/nfc/mei_phy.c | 58 +++++++++++++++++++++++++++------------------------ 1 file changed, 31 insertions(+), 27 deletions(-) commit d4b78c7290dd0aa41596ad527877a6d70bf64110 Author: Tomas Winkler Date: Thu May 7 15:54:05 2015 +0300 mei: bus: kill mei_cl_ops since we move all nfc hanling to the mei_phy module we can kill mei_cl_ops Cc: Samuel Ortiz Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/mei_dev.h | 24 ------------------------ 1 file changed, 24 deletions(-) commit be9b720a0ccba096d669bc86634f900b82b9bf71 Author: Tomas Winkler Date: Thu May 7 15:54:04 2015 +0300 NFC: mei_phy: move all nfc logic from mei driver to nfc move nfc logic to mei_phy module, we prefer as much as possible not to deal with a particualr client protocol in the mei generic infrasutcutre Cc: Samuel Ortiz Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/bus.c | 36 +----- drivers/misc/mei/mei_dev.h | 7 +- drivers/misc/mei/nfc.c | 175 +-------------------------- drivers/nfc/mei_phy.c | 293 ++++++++++++++++++++++++++++++++++++++++----- drivers/nfc/mei_phy.h | 35 ++++-- 5 files changed, 304 insertions(+), 242 deletions(-) commit 007d64eb2232b91aa86b51abc1742936807e0bd4 Author: Tomas Winkler Date: Thu May 7 15:54:03 2015 +0300 mei: bus: add name and uuid into device attributes Export name and uuid via sysfs and uevent Cc: linux-api@vger.kernel.org Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman Documentation/ABI/testing/sysfs-bus-mei | 14 ++++++++++++++ drivers/misc/mei/bus.c | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+) commit c93b76b34b4d8dbe8e3443eb27e49ac60034342b Author: Tomas Winkler Date: Thu May 7 15:54:02 2015 +0300 mei: bus: report also uuid in module alias In order to automate modules matching add device uuid which is reported in client enumeration, keep also the name that is needed in for nfc distinguishing radio vendor Report mei:name:uuid Cc: linux-api@vger.kernel.org Cc: Samuel Ortiz Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman Documentation/ABI/testing/sysfs-bus-mei | 2 +- drivers/misc/mei/bus.c | 42 ++++++++++++++++++++++++++------- drivers/misc/mei/mei_dev.h | 2 ++ drivers/nfc/mei_phy.h | 3 +++ drivers/nfc/microread/mei.c | 2 +- drivers/nfc/pn544/mei.c | 2 +- include/linux/mod_devicetable.h | 13 ++++++++++ scripts/mod/devicetable-offsets.c | 1 + scripts/mod/file2alias.c | 18 ++++++++++++-- 9 files changed, 72 insertions(+), 13 deletions(-) commit 41c95b04385863f694fcf96e08994ebc722b7b9f Author: Tomas Winkler Date: Thu May 7 15:54:00 2015 +0300 mei: add also write waiting list to runtime pm blockers The io callback is clear from write_waitling_list after we receive interrupt from the hw to ack the write completion. We need to wait for this interrupt deliver before we try to enter low power state Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/init.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit a1809d38900cff016b2bac9d82766f7420f8eb5d Author: Alexander Usyskin Date: Thu May 7 15:53:59 2015 +0300 mei: request autosuspend at the end of write On longer non-blocking write might not complete at the end of autosuspend expiration, therefore we request autosuspend again on the write completion. Signed-off-by: Alexander Usyskin Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/client.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit b8b730357967ac2ec49dcffd2dc2b354f0fdd011 Author: Alexander Usyskin Date: Thu May 7 15:53:58 2015 +0300 mei: consume flow control on the first chunk of writing Consume the write flow control on the first chunk of the write instead of on the buffer completion. We can safely assume that the consequent chunks have the flow control granted. This addresses two issues: 1. Blocks other callbacks from the same client riding on the client's flow control and prevents interleaving of messages as FW cannot distinguish between two messages from the same client. 2. Fixes single buffer flow control arbitration in a clean way, without connection/disconnection book keeping Signed-off-by: Alexander Usyskin Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/client.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) commit 292f82c86c94c3d419c799e5e3e94e8cf34c69de Author: Alexander Usyskin Date: Mon May 4 09:44:00 2015 +0300 mei: debug prints with client info in read Add client info to debug prints in the read function to ease on debugging efforts. Signed-off-by: Alexander Usyskin Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/main.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit 900f4450dbeac805448d0cf10bedc41c237bdf0e Author: Tomas Winkler Date: Mon May 4 09:43:59 2015 +0300 mei: txe: fix incorrect indentation Remove spurious blank Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/pci-txe.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9e23936279ad339bb1eeb73d298d95b4d986459e Author: Alexander Usyskin Date: Mon May 4 09:43:58 2015 +0300 mei: drop iamthif_mtu from device structure We can receive mtu with one call now, no need to store it. Signed-off-by: Alexander Usyskin Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/amthif.c | 9 +-------- drivers/misc/mei/mei_dev.h | 2 -- 2 files changed, 1 insertion(+), 10 deletions(-) commit eeabfcf5a92ae3316b23f2da6a2bb5ba60a1b072 Author: Alexander Usyskin Date: Mon May 4 09:43:57 2015 +0300 mei: connection to fixed address clients from user-space This should be used for debug only. The feaure is gated by "allow_fixed_address" control exposed in debugfs. Signed-off-by: Alexander Usyskin Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/debugfs.c | 6 ++++++ drivers/misc/mei/main.c | 8 +++++++- drivers/misc/mei/mei_dev.h | 4 ++++ 3 files changed, 17 insertions(+), 1 deletion(-) commit 1df629ef4d553cc2bebde565462b36465521284f Author: Alexander Usyskin Date: Mon May 4 09:43:56 2015 +0300 mei: support for fixed address clients Fixed address is simplified FW client that doesn't require connection and doesn't support flow control. So it can be only one host client per fixed FW client. Fixed client access is available only for drivers on mei bus, connection from user-space is blocked. Signed-off-by: Alexander Usyskin Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/client.c | 69 ++++++++++++++++++++++++++++++++++---------- drivers/misc/mei/client.h | 12 ++++++++ drivers/misc/mei/hbm.c | 4 +-- drivers/misc/mei/interrupt.c | 2 +- 4 files changed, 68 insertions(+), 19 deletions(-) commit a03d77f6ed7dc74d6244e4d8681ba669d7c414aa Author: Alexander Usyskin Date: Mon May 4 09:43:55 2015 +0300 mei: fix flow control for single buffer clients For ME clients that use single receiving buffer the driver tracks credentials on mei_me_clients structure for all connections. The driver needs to book keep the shared resource correctly and track the connections, particularly the credit has to be cleaned when there is no active connection to a particular me client. This solves issue when subsequent connection will not get an ill impression that it can write. We add active connection counter the particular ME client and when the counter reach zero, we clear the credits. Signed-off-by: Alexander Usyskin Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/client.c | 29 +++++++++++++++++++++++------ drivers/misc/mei/mei_dev.h | 4 ++++ 2 files changed, 27 insertions(+), 6 deletions(-) commit d49ed64a6e3f73975b7eb570c4ea8f37e87d7e5d Author: Alexander Usyskin Date: Mon May 4 09:43:54 2015 +0300 mei: add a reference from the host client to the me client Keep a pointer to associated me client in the host client object to eliminate me client searches. Check if the me client is active in the firmware by checking if its is linked on the me clients list Add accessors for the me client properties from host client. Signed-off-by: Alexander Usyskin Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/amthif.c | 19 ++----- drivers/misc/mei/bus.c | 38 ++++++++------ drivers/misc/mei/client.c | 118 +++++++++++++++++++------------------------ drivers/misc/mei/client.h | 96 ++++++++++++++++++++++++++++++++--- drivers/misc/mei/debugfs.c | 2 +- drivers/misc/mei/hbm.c | 4 +- drivers/misc/mei/interrupt.c | 4 +- drivers/misc/mei/main.c | 31 +++++------- drivers/misc/mei/mei_dev.h | 20 +++++--- drivers/misc/mei/nfc.c | 50 ++++++++---------- drivers/misc/mei/wd.c | 22 ++------ 11 files changed, 225 insertions(+), 179 deletions(-) commit 0c53357ca4b3a03aafc211de663e84dba7c628e2 Author: Tomas Winkler Date: Mon May 4 09:43:53 2015 +0300 mei: revamp client connection Simplify connect state machine by changing the logic around Connection request in progress - only check if we have a callback in relevant queue. Extract common code into mei_cl_send_connect() function Signed-off-by: Tomas Winkler Signed-off-by: Alexander Usyskin Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/bus.c | 6 +++ drivers/misc/mei/client.c | 97 ++++++++++++++++++++++++++++++++++---------- drivers/misc/mei/client.h | 3 +- drivers/misc/mei/interrupt.c | 43 -------------------- 4 files changed, 83 insertions(+), 66 deletions(-) commit 3c66618295ca5fb0fde32e60e5f26557a5fcad5e Author: Tomas Winkler Date: Mon May 4 09:43:52 2015 +0300 mei: revamp client disconnection flow Split disconnected state into two parts first reception disconnect response from the firmware and second actually setting of disconnected state. Book keeping data are needed for processing and after firmware disconnected the client and are cleaned when setting the disconnected state in mei_cl_set_disconneted() function. Add mei_cl_send_disconnect to reduce code duplication. Signed-off-by: Tomas Winkler Signed-off-by: Alexander Usyskin Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/bus.c | 2 - drivers/misc/mei/client.c | 159 ++++++++++++++++++++++++++++++++----------- drivers/misc/mei/client.h | 3 + drivers/misc/mei/hbm.c | 8 +-- drivers/misc/mei/interrupt.c | 46 +------------ drivers/misc/mei/main.c | 9 +-- drivers/misc/mei/mei_dev.h | 3 +- 7 files changed, 134 insertions(+), 96 deletions(-) commit fe292283c23329218e384bffc6cb4bfa3fd92277 Author: Tomas Winkler Date: Tue Apr 14 10:27:26 2015 +0300 mei: txe: reduce suspend/resume time HW has to be in known state before the initialisation sequence is started. The polling step for settling aliveness was set to 200ms while in practise this can be done in up to 30msecs. Cc: #3.18+ Signed-off-by: Tomas Winkler Signed-off-by: Barak Yoresh Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/hw-txe.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit 620cf787c121f39b5223e43bad3d1b7c66ecead5 Author: Pratik Patel Date: Tue May 19 10:55:21 2015 -0600 coresight: replicator: Add Qualcomm CoreSight Replicator driver This driver manages Qualcomm CoreSight Replicator device, which resides on the AMBA bus. Replicator has been made programmable to allow software to turn of the replicator branch to sink that is not being used. This avoids trace traffic to the unused/non-current sink from causing back pressure that results in overflows at the source. Signed-off-by: Pratik Patel Signed-off-by: Ivan T. Ivanov Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman .../devicetree/bindings/arm/coresight.txt | 1 + drivers/hwtracing/coresight/Kconfig | 8 + drivers/hwtracing/coresight/Makefile | 1 + .../coresight/coresight-replicator-qcom.c | 214 +++++++++++++++++++++ 4 files changed, 224 insertions(+) commit 437012368c9fdd2e631f851f349d36bdd0873166 Author: Pankaj Dubey Date: Tue May 19 10:55:20 2015 -0600 coresight: fix typo in of_coresight.c fixes obvious typo in of_coresight.c %s/non-configuable/non-configurable Signed-off-by: Pankaj Dubey Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman drivers/hwtracing/coresight/of_coresight.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 70dd9d2f0af0e9ebe1c508dfa9a2ba0524f56cd5 Author: Linus Walleij Date: Tue May 19 10:55:19 2015 -0600 coresight: document the bindings for the ATCLK Put in a blurb in the device tree bindings indicating that coresight blocks may have an optional ATCLK. Signed-off-by: Linus Walleij Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman Documentation/devicetree/bindings/arm/coresight.txt | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) commit 9875cd9ce2b5363528b5518ddd3e3b670da74161 Author: Linus Walleij Date: Tue May 19 10:55:18 2015 -0600 coresight: replicator: retrieve and handle atclk As can be seen from the datasheet of the CoreSight Components, DDI0314 table A-4 the funnel has a clock signal apart from the AHB interconnect ("amba_pclk", that we're already handling) called ATCLK, ARM Trace Clock, that SoC implementers may provide from an entirely different clock source. So to model this correctly create an optional path for handling ATCLK alongside the PCLK so we don't break old platforms that only define PCLK ("amba_pclk") but still makes it possible for SoCs that have both clock signals (such as the DB8500) to fetch and prepare/enable/disable/ unprepare both clocks. The ATCLK is enabled and disabled using the runtime PM callbacks. As the replicator is a platform device, the code is a bit different from the other CoreSight components and the bus core does not activate runtime PM by default, so we need a few extra calls. Reviewed-by: Ulf Hansson Signed-off-by: Linus Walleij Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman drivers/hwtracing/coresight/coresight-replicator.c | 71 ++++++++++++++++++++-- 1 file changed, 67 insertions(+), 4 deletions(-) commit 2e5f75d1a41cdc62c43596d3c5c5d2d5b72a5606 Author: Linus Walleij Date: Tue May 19 10:55:17 2015 -0600 coresight: funnel: retrieve and handle atclk As can be seen from the datasheet of the CoreSight Components, DDI0314 table A-6 the funnel has a clock signal apart from the AHB interconnect ("amba_pclk", that we're already handling) called ATCLK, ARM Trace Clock, that SoC implementers may provide from an entirely different clock source. So to model this correctly create an optional path for handling ATCLK alongside the PCLK so we don't break old platforms that only define PCLK ("amba_pclk") but still makes it possible for SoCs that have both clock signals (such as the DB8500) to fetch and prepare/enable/disable/ unprepare both clocks. The ATCLK is enabled and disabled using the runtime PM callbacks. Reviewed-by: Ulf Hansson Signed-off-by: Linus Walleij Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman drivers/hwtracing/coresight/coresight-funnel.c | 37 ++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) commit 267b2c2358255ab7e709079fbe46f518d73df3a2 Author: Linus Walleij Date: Tue May 19 10:55:16 2015 -0600 coresight: etb: retrieve and handle atclk As can be seen from the datasheet of the CoreSight Components, DDI0314 table A-8 the ETB has a clock signal apart from the AHB interconnect ("amba_pclk", that we're already handling) called ATCLK, ARM Trace Clock, that SoC implementers may provide from an entirely different clock source. So to model this correctly create an optional path for handling ATCLK alongside the PCLK so we don't break old platforms that only define PCLK ("amba_pclk") but still makes it possible for SoCs that have both clock signals (such as the DB8500) to fetch and prepare/enable/disable/ unprepare both clocks. The ATCLK is enabled and disabled using the runtime PM callbacks. Reviewed-by: Ulf Hansson Signed-off-by: Linus Walleij Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman drivers/hwtracing/coresight/coresight-etb10.c | 37 +++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) commit db341d3d516a1ae23746f61ea67c5e9918c43bb8 Author: Linus Walleij Date: Tue May 19 10:55:15 2015 -0600 coresight: tpiu: retrieve and handle atclk As can be seen from the datasheet of the CoreSight Components, DDI0314H page A-19 the TPIU has a clock signal apart from the AHB interconnect ("amba_pclk", that we're already handling) called ATCLK, ARM Trace Clock, that SoC implementers may provide from an entirely different clock source. So to model this correctly create an optional path for handling ATCLK alongside the PCLK so we don't break old platforms that only define PCLK ("amba_pclk") but still makes it possible for SoCs that have both clock signals (such as the DB8500) to fetch and prepare/enable/disable/ unprepare both clocks in conjunction. The ATCLK is enabled and disabled using the runtime PM callbacks. Reviewed-by: Ulf Hansson Signed-off-by: Linus Walleij Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman drivers/hwtracing/coresight/coresight-tpiu.c | 37 ++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) commit d1839e68777316cc607d1d3f82579046ca945958 Author: Linus Walleij Date: Tue May 19 10:55:14 2015 -0600 coresight: etm: retrieve and handle atclk As can be seen from the datasheet of the CoreSight Components, DDI0401C A.1.1 the ETM has a clock signal apart from the AHB interconnect ("amba_pclk", that we're already handling) called ATCLK, ARM Trace Clock, that SoC implementers may provide from an entirely different clock source. So to model this correctly create an optional path for handling ATCLK alongside the PCLK so we don't break old platforms that only define PCLK ("amba_pclk") but still makes it possible for SoCs that have both clock signals (such as the DB8500) to fetch and prepare/enable/disable/ unprepare both clocks. The ATCLK is enabled and disabled using the runtime PM callbacks. Reviewed-by: Ulf Hansson Signed-off-by: Linus Walleij Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman drivers/hwtracing/coresight/coresight-etm.h | 2 ++ drivers/hwtracing/coresight/coresight-etm3x.c | 36 ++++++++++++++++++++++++++- 2 files changed, 37 insertions(+), 1 deletion(-) commit 32398ef6f4745b2098d93f32e2c89e0286ab45fe Author: Linus Walleij Date: Tue May 19 10:55:13 2015 -0600 coresight: tmc: let runtime PM handle core clock This uses runtime PM to manage the PCLK ("amba_pclk") instead of screwing around with the framework by going in and taking a copy from the amba device. The amba bus core will unprepare and disable the clock when the device is unused when CONFIG_PM is selected, else the clock will be always on. Prior to this patch, as the AMBA primecell bus code enables the PCLK, it would be left on after probe as the clk_prepare_enable() and clk_disable_unprepare() was called and thus just increase and decreas the refcount by one, without it reaching zero and actually disabling the clock. Now the runtime PM callbacks will make sure the PCLK is properly disabled after probe. Reviewed-by: Ulf Hansson Signed-off-by: Linus Walleij Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman drivers/hwtracing/coresight/coresight-tmc.c | 31 ++++++++--------------------- 1 file changed, 8 insertions(+), 23 deletions(-) commit e2d08f96d48dcca844ec1d50188c7a975bed1ded Author: Linus Walleij Date: Tue May 19 10:55:12 2015 -0600 coresight: funnel: let runtime PM handle core clock This uses runtime PM to manage the PCLK ("amba_pclk") instead of screwing around with the framework by going in and taking a copy from the amba device. The amba bus core will unprepare and disable the clock when the device is unused when CONFIG_PM is selected, else the clock will be always on. Prior to this patch, as the AMBA primecell bus code enables the PCLK, it would be left on after probe as clk_disable_unprepare() was not called. Now the runtime PM callbacks will make sure the PCLK is properly disabled after probe. Reviewed-by: Ulf Hansson Signed-off-by: Linus Walleij Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman drivers/hwtracing/coresight/coresight-funnel.c | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) commit 1b19f59dca70d802cee8a7d324c2340fdf0bd258 Author: Linus Walleij Date: Tue May 19 10:55:11 2015 -0600 coresight: etb: let runtime PM handle core clock This uses runtime PM to manage the PCLK ("amba_pclk") instead of screwing around with the framework by going in and taking a copy from the amba device. The amba bus core will unprepare and disable the clock when the device is unused when CONFIG_PM is selected, else the clock will be always on. Prior to this patch, as the AMBA primecell bus code enables the PCLK, it would be left on after probe as the clk_prepare_enable() and clk_disable_unprepare() was called and thus just increase and decreas the refcount by one, without it reaching zero and actually disabling the clock. Now the runtime PM callbacks will make sure the PCLK is properly disabled after probe. Reviewed-by: Ulf Hansson Signed-off-by: Linus Walleij Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman drivers/hwtracing/coresight/coresight-etb10.c | 35 +++++++-------------------- 1 file changed, 9 insertions(+), 26 deletions(-) commit b5913d64366925c78cbe25e28a0599c89ef23bcd Author: Linus Walleij Date: Tue May 19 10:55:10 2015 -0600 coresight: tpiu: let runtime PM handle core clock This uses runtime PM to manage the PCLK ("amba_pclk") instead of screwing around with the framework by going in and taking a copy from the amba device. The amba bus core will unprepare and disable the clock when the device is unused when CONFIG_PM is selected, else the clock will be always on. Prior to this patch, as the AMBA primecell bus code enables the PCLK, it would be left on after probe as the clk_prepare_enable() and clk_disable_unprepare() was called and thus just increase and decreas the refcount by one, without it reaching zero and actually disabling the clock. Now the runtime PM callbacks will make sure the PCLK is properly disabled after probe. Reviewed-by: Ulf Hansson Signed-off-by: Linus Walleij Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman drivers/hwtracing/coresight/coresight-tpiu.c | 21 ++++----------------- 1 file changed, 4 insertions(+), 17 deletions(-) commit ec36005910c70678505b54d60e6df3e6faefb80f Author: Linus Walleij Date: Tue May 19 10:55:09 2015 -0600 coresight: etm: let runtime PM handle core clock This uses runtime PM to manage the PCLK ("amba_pclk") instead of screwing around with the framework by going in and taking a copy from the amba device. The amba bus core will unprepare and disable the clock when the device is unused when CONFIG_PM is selected, else the clock will be always on. Prior to this patch, as the AMBA primecell bus code enables the PCLK, it would be left on after probe as the clk_prepare_enable() and clk_disable_unprepare() was called and thus just increase and decreas the refcount by one, without it reaching zero and actually disabling the clock. Now the runtime PM callbacks will make sure the PCLK is properly disabled after probe. Reviewed-by: Ulf Hansson Signed-off-by: Linus Walleij Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman drivers/hwtracing/coresight/coresight-etm.h | 2 - drivers/hwtracing/coresight/coresight-etm3x.c | 60 +++++++-------------------- 2 files changed, 16 insertions(+), 46 deletions(-) commit 4339b6999703c11d31875371f5dedfba12f5938a Author: Linus Walleij Date: Tue May 19 10:55:08 2015 -0600 coresight: support the TPIU version found in Ux500 The Ux500 has a PrimeCell version 4B instead of the 3B as supported by the driver, extend the match table to cover this version. Signed-off-by: Linus Walleij Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman drivers/hwtracing/coresight/coresight-tpiu.c | 4 ++++ 1 file changed, 4 insertions(+) commit 1c65b3885ad9b635d5bc6ded43361fd84b55cd09 Author: Linus Walleij Date: Tue May 19 10:55:07 2015 -0600 coresight: etm: print what version of ETM/PTM is detected Helpfully report a bit more about the hardware found in the silicon when matching the AMBA device IDs by using the associated .data pointer in the AMBA match. Signed-off-by: Linus Walleij Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman drivers/hwtracing/coresight/coresight-etm3x.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 899867ee6c1ccaa4f4580c5b14e25505e6e17b7d Author: Mathieu Poirier Date: Tue May 19 10:55:06 2015 -0600 coresight-etm3x: use module_amba_driver to simplify the code Using function "module_amba_driver()" makes the code simpler by eliminating boilerplate code. Wei Yongjun sent out a set of patches addressing those in all the coresight driver but missed ETMv3. Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman drivers/hwtracing/coresight/coresight-etm3x.c | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) commit 5625988e1e21261e20e18a64f275236eb47a9944 Author: Mathieu Poirier Date: Wed May 13 10:34:21 2015 -0600 coresight-etm4x: Read only access to the tracer's ID registers ETM ID registers contain valuable information about the capabilities of the implementation and are very useful when configuring the device for various trace scenarios. Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman .../ABI/testing/sysfs-bus-coresight-devices-etm4x | 90 ++++++++++++++++++++++ drivers/hwtracing/coresight/coresight-etm4x.c | 37 +++++++++ 2 files changed, 127 insertions(+) commit a467dae11d57c60dabf9f85d7691e6ce097fc424 Author: Mathieu Poirier Date: Wed May 13 10:34:20 2015 -0600 coresight-etm4x: Read only access to the main management registers Having access to the ETMv4 management registers is very useful as they give meaningful information on how the IP block has been configured at synthesis time. Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman .../ABI/testing/sysfs-bus-coresight-devices-etm4x | 77 ++++++++++++++++++++++ drivers/hwtracing/coresight/coresight-etm4x.c | 53 ++++++++++++++- 2 files changed, 129 insertions(+), 1 deletion(-) commit 40d8ebf0715f86b0231927a80bbc068869cc5ef1 Author: Pratik Patel Date: Wed May 13 10:34:19 2015 -0600 coresight-etm4x: Controls pertaining to the VM ID functions Adding sysfs entries to access and configure specifics about the virtual machine ID comparator functions. Signed-off-by: Pratik Patel Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman .../ABI/testing/sysfs-bus-coresight-devices-etm4x | 20 +++ drivers/hwtracing/coresight/coresight-etm4x.c | 178 +++++++++++++++++++++ 2 files changed, 198 insertions(+) commit 4a584be1d0061f7992a661f7c1a20c8688a50a19 Author: Pratik Patel Date: Wed May 13 10:34:18 2015 -0600 coresight-etm4x: Controls pertaining to the context ID functions Adding sysfs entries to access and configure specifics about the context ID comparator functions. Signed-off-by: Pratik Patel Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman .../ABI/testing/sysfs-bus-coresight-devices-etm4x | 19 +++ drivers/hwtracing/coresight/coresight-etm4x.c | 187 +++++++++++++++++++++ 2 files changed, 206 insertions(+) commit 6afa8a1387aa4af73e8c3b81019d958ef8a2a4d0 Author: Pratik Patel Date: Wed May 13 10:34:17 2015 -0600 coresight-etm4x: Controls pertaining to the selection of resources Adding sysfs entries to control the selection of the resources the trace unit will use as triggers to perform a trace run. Signed-off-by: Pratik Patel Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman .../ABI/testing/sysfs-bus-coresight-devices-etm4x | 12 ++++ drivers/hwtracing/coresight/coresight-etm4x.c | 75 ++++++++++++++++++++++ 2 files changed, 87 insertions(+) commit add2d5d0d15fe391e42b8b220590ed02ba0aad16 Author: Pratik Patel Date: Wed May 13 10:34:16 2015 -0600 coresight-etm4x: Controls pertaining to the counter functions Adding sysfs entries related to the counter functionality, more specifically to set, control and reload the counters. Signed-off-by: Pratik Patel Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman .../ABI/testing/sysfs-bus-coresight-devices-etm4x | 26 ++++ drivers/hwtracing/coresight/coresight-etm4x.c | 144 +++++++++++++++++++++ 2 files changed, 170 insertions(+) commit 5e5ff3440633b07b47f58ddda1d984e367e12e90 Author: Pratik Patel Date: Wed May 13 10:34:15 2015 -0600 coresight-etm4x: Controls pertaining to the sequencer functions Adding sysfs entries to access the sequencers related registers, more specifically the sequencer state, the sequencer state transition and the sequencer reset control registers. Signed-off-by: Pratik Patel Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman .../ABI/testing/sysfs-bus-coresight-devices-etm4x | 25 ++++ drivers/hwtracing/coresight/coresight-etm4x.c | 129 +++++++++++++++++++++ 2 files changed, 154 insertions(+) commit 35c9b29bc8367fe9fdd8eb65492d485a5eeddf79 Author: Pratik Patel Date: Wed May 13 10:34:14 2015 -0600 coresight-etm4x: Controls pertaining to the address comparator functions Adding sysfs entries to control the various mode the address comparator registers can enact, i.e, start/top, single, and range. Also supplementing with address comparator types configuration registers access, mandatory to complete the configuration of the comparator functions. Signed-off-by: Pratik Patel Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman .../ABI/testing/sysfs-bus-coresight-devices-etm4x | 25 ++ drivers/hwtracing/coresight/coresight-etm4x.c | 423 +++++++++++++++++++++ 2 files changed, 448 insertions(+) commit 43ba6a7b00ebca1f95bd5a64ceed4f3bae8aeca4 Author: Pratik Patel Date: Wed May 13 10:34:13 2015 -0600 coresight-etm4x: Controls pertaining to the ViewInst register Adding sysfs entries to control the ViewInst register's event selector along with secure and non-secure exception level instruction tracing. Signed-off-by: Pratik Patel Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman .../ABI/testing/sysfs-bus-coresight-devices-etm4x | 20 +++++ drivers/hwtracing/coresight/coresight-etm4x.c | 98 ++++++++++++++++++++++ 2 files changed, 118 insertions(+) commit b460daf87b42f83f5c7030589f190a3215167bb8 Author: Pratik Patel Date: Wed May 13 10:34:12 2015 -0600 coresight-etm4x: Controls pertaining to various configuration options Adding sysfs entries to configure: . global timestamp. . how often trace synchronisation occur. . the threashold value for cycle counting. . branch and broadcasting regions. Signed-off-by: Pratik Patel Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman .../ABI/testing/sysfs-bus-coresight-devices-etm4x | 26 +++++ drivers/hwtracing/coresight/coresight-etm4x.c | 124 +++++++++++++++++++++ 2 files changed, 150 insertions(+) commit d8c66962084f83c00fd0aecb243d6d074a5bba0f Author: Pratik Patel Date: Wed May 13 10:34:11 2015 -0600 coresight-etm4x: Controls pertaining to the reset, mode, pe and events Adding sysfs entries to: . set the tracing entity with default values. . set various mode associated to the tracing entity. . select the processing entity the tracing entity relates to. . select various events of interest. Signed-off-by: Pratik Patel Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman .../ABI/testing/sysfs-bus-coresight-devices-etm4x | 33 ++ drivers/hwtracing/coresight/coresight-etm4x.c | 441 +++++++++++++++++++++ 2 files changed, 474 insertions(+) commit c0ddbfea722298db7fa66b921c30f2ee9190da04 Author: Pratik Patel Date: Wed May 13 10:34:10 2015 -0600 coresight-etm4x: Controls pertaining to tracer configuration Tracers can be configured with various options at synthesis time and knowing what resources are available is important for SW configuration purposes. As such adding RO sysfs entries for characteristics related to the tracer implementation. Signed-off-by: Pratik Patel Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman .../ABI/testing/sysfs-bus-coresight-devices-etm4x | 62 +++++++++++ drivers/hwtracing/coresight/coresight-etm4x.c | 117 +++++++++++++++++++++ 2 files changed, 179 insertions(+) commit 2e1cdfe184b5202d51e0611d7a051e2bea303946 Author: Pratik Patel Date: Wed May 13 10:34:09 2015 -0600 coresight-etm4x: Adding CoreSight ETM4x driver This driver manages the CoreSight ETMv4 (Embedded Trace Macrocell) IP block to support HW assisted tracing on ARMv7 and ARMv8 architectures. Signed-off-by: Pratik Patel Signed-off-by: Kaixu Xia Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman .../ABI/testing/sysfs-bus-coresight-devices-etm4x | 15 + drivers/hwtracing/coresight/Kconfig | 11 + drivers/hwtracing/coresight/Makefile | 1 + drivers/hwtracing/coresight/coresight-etm4x.c | 697 +++++++++++++++++++++ drivers/hwtracing/coresight/coresight-etm4x.h | 391 ++++++++++++ 5 files changed, 1115 insertions(+) commit 2cfef79ddce42e9604293424381b2e59913f600c Author: Fabian Frederick Date: Mon May 18 19:59:37 2015 +0200 cdc-acm: use swap() in acm_probe() Use kernel.h macro definition. Signed-off-by: Fabian Frederick Acked-by: Oliver Neukum Signed-off-by: Greg Kroah-Hartman drivers/usb/class/cdc-acm.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) commit 65c35dd59002798cc87212d23ff3c87fd3a5d721 Author: Johan Hovold Date: Mon May 18 17:34:12 2015 +0200 USB: cdc-acm: add support for up to 256 devices Increase the minor range to enable support for up to 256 devices. Some people are hitting the current 32 device limit. Hopefully 256 minors will be enough for while still. Signed-off-by: Johan Hovold Acked-by: Oliver Neukum Signed-off-by: Greg Kroah-Hartman drivers/usb/class/cdc-acm.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6cb4f4df686e6515f43d9fec3f43226d408999b3 Author: Johan Hovold Date: Mon May 18 17:34:11 2015 +0200 USB: cdc-acm: use idr to manage minor numbers Use the idr-interface rather than a static table to manage minor-number allocations. This allows us to easily switch over to fully dynamic minor allocations when the TTY-layer can handle that. Signed-off-by: Johan Hovold Acked-by: Oliver Neukum Signed-off-by: Greg Kroah-Hartman drivers/usb/class/cdc-acm.c | 38 +++++++++++++++++--------------------- 1 file changed, 17 insertions(+), 21 deletions(-) commit 83ed07c5db71bc02bd646d6eb60b48908235cdf9 Author: Dan Carpenter Date: Mon May 18 15:29:51 2015 +0300 USB: devio: fix a condition in async_completed() Static checkers complain that the current condition is never true. It seems pretty likely that it's a typo and "URB" was intended instead of "USB". Fixes: 3d97ff63f899 ('usbdevfs: Use scatter-gather lists for large bulk transfers') Signed-off-by: Dan Carpenter Acked-by: Alan Stern Signed-off-by: Greg Kroah-Hartman drivers/usb/core/devio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 40f2f2a3255314fc826325f49add1a2fbfc811bd Author: Joachim Eastwood Date: Sat May 16 17:17:40 2015 +0200 USB: ehci-platform: support EHCIs with transaction translator Some EHCI controllers have a Transaction Translator built into the root hub. Support this feature in device tree when using the ehci-platform driver by adding a feature flag for it. This is needed to get USB working on NXP LPC18xx/43xx platforms. Signed-off-by: Joachim Eastwood Acked-by: Alan Stern Signed-off-by: Greg Kroah-Hartman Documentation/devicetree/bindings/usb/usb-ehci.txt | 2 ++ drivers/usb/host/ehci-platform.c | 4 ++++ 2 files changed, 6 insertions(+) commit ca07e1c1e4a6aed2b2576256b1fdc53a9f87bb40 Author: Ramneek Mehresh Date: Thu May 14 19:04:46 2015 +0530 drivers:usb:fsl:Make fsl ehci drv an independent driver module Make Freescale EHCI driver an independent entity from ehci-hcd.c. This involves - using module_init/module_exit functions - using overrides structure - some necessary code cleanup Signed-off-by: Ramneek Mehresh Acked-by: Alan Stern Signed-off-by: Greg Kroah-Hartman drivers/usb/host/Kconfig | 2 +- drivers/usb/host/Makefile | 1 + drivers/usb/host/ehci-fsl.c | 168 +++++++++++++++++++------------------------- drivers/usb/host/ehci-hcd.c | 5 -- 4 files changed, 74 insertions(+), 102 deletions(-) commit 146a5e3c1ef999f1b1ec841fd86db421f4ca8d6a Author: Takashi Sakamoto Date: Sun May 24 20:51:45 2015 +0900 ALSA: bebob: add Digidesign Mbox 2 Pro support This device is based on DM1000E, and BeBoB version 1 firmware is installed. $ cat /proc/asound/cards 0 [Pro ]: BeBoB - Mbox 2 Pro DIGIDESIGN Mbox 2 Pro (id:1, rev:1), GUID 00a07e0100a90000 at fw1.0, S400 $ cat /proc/asound/Pro/firewire/firmware Manufacturer: bridgeCo Protocol Ver: 1 Build Ver: 0 GUID: 0x00A07E0100A90000 Model ID: 0x01 Model Rev: 1 Firmware Date: 20071031 Firmware Time: 034402 Firmware ID: 0xA9 Firmware Ver: 16777215 Base Addr: 0x20080000 Max Size: 1572864 Loader Date: 20051207 Loader Time: 205554 With this patch, ALSA BeBoB driver can start packet streaming to/from this model, while as a default, internal multiplexer of this model is not initialized and generates no sound even if the driver transfers any packets with PCM samples. To hear any sounds from this model, userspace applications should be developed to set parameters to the internal multiplexer. You can see raw information in FFADO website: http://subversion.ffado.org/wiki/AvcModels/DigiDesignMboxPro2 Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai sound/firewire/Kconfig | 1 + sound/firewire/bebob/bebob.c | 3 +++ 2 files changed, 4 insertions(+) commit 843735b788a4e49c453f4aefdae80e6dfbe9ee85 Author: Ramakrishna Pallala Date: Mon May 4 22:16:07 2015 +0530 power: axp288_charger: axp288 charger driver This patch adds new power supply charger driver support for X-Power AXP288 PMIC integrated charger. This driver interfaces with the axp20x mfd driver as a cell and listens to extcon cable events for setting up charging. Signed-off-by: Ramakrishna Pallala Acked-by: Lee Jones Signed-off-by: Sebastian Reichel drivers/power/Kconfig | 7 + drivers/power/Makefile | 1 + drivers/power/axp288_charger.c | 941 +++++++++++++++++++++++++++++++++++++++++ include/linux/mfd/axp20x.h | 7 + 4 files changed, 956 insertions(+) commit cdeb6048940fa4bfb429e2f1cba0d28a11e20cd5 Author: Andy Lutomirski Date: Fri May 22 16:15:47 2015 -0700 x86/asm/irq: Stop relying on magic JMP behavior for early_idt_handlers The early_idt_handlers asm code generates an array of entry points spaced nine bytes apart. It's not really clear from that code or from the places that reference it what's going on, and the code only works in the first place because GAS never generates two-byte JMP instructions when jumping to global labels. Clean up the code to generate the correct array stride (member size) explicitly. This should be considerably more robust against screw-ups, as GAS will warn if a .fill directive has a negative count. Using '. =' to advance would have been even more robust (it would generate an actual error if it tried to move backwards), but it would pad with nulls, confusing anyone who tries to disassemble the code. The new scheme should be much clearer to future readers. While we're at it, improve the comments and rename the array and common code. Binutils may start relaxing jumps to non-weak labels. If so, this change will fix our build, and we may need to backport this change. Before, on x86_64: 0000000000000000 : 0: 6a 00 pushq $0x0 2: 6a 00 pushq $0x0 4: e9 00 00 00 00 jmpq 9 5: R_X86_64_PC32 early_idt_handler-0x4 ... 48: 66 90 xchg %ax,%ax 4a: 6a 08 pushq $0x8 4c: e9 00 00 00 00 jmpq 51 4d: R_X86_64_PC32 early_idt_handler-0x4 ... 117: 6a 00 pushq $0x0 119: 6a 1f pushq $0x1f 11b: e9 00 00 00 00 jmpq 120 11c: R_X86_64_PC32 early_idt_handler-0x4 After: 0000000000000000 : 0: 6a 00 pushq $0x0 2: 6a 00 pushq $0x0 4: e9 14 01 00 00 jmpq 11d ... 48: 6a 08 pushq $0x8 4a: e9 d1 00 00 00 jmpq 120 4f: cc int3 50: cc int3 ... 117: 6a 00 pushq $0x0 119: 6a 1f pushq $0x1f 11b: eb 03 jmp 120 11d: cc int3 11e: cc int3 11f: cc int3 Signed-off-by: Andy Lutomirski Acked-by: H. Peter Anvin Cc: Binutils Cc: Borislav Petkov Cc: H.J. Lu Cc: Jan Beulich Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/ac027962af343b0c599cbfcf50b945ad2ef3d7a8.1432336324.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/include/asm/segment.h | 14 ++++++++++++-- arch/x86/kernel/head64.c | 2 +- arch/x86/kernel/head_32.S | 33 ++++++++++++++++++--------------- arch/x86/kernel/head_64.S | 20 +++++++++++--------- 4 files changed, 42 insertions(+), 27 deletions(-) commit a900705491e6f377966711aa95df753b5ae16dd3 Author: Takashi Sakamoto Date: Fri May 22 23:21:14 2015 +0900 ALSA: firewire-lib: use protocol error when detecting wrong value in CIP header When detecting zero in 'dbs' field of CIP header, this packet streaming should be aborted because of avoiding division-by-zero. This is an error in an aspect of IEC 61883-1, thus protocol error. This commit use EPROTO instead of EIO. Actually, the returned value is not used for userspace and this commit has no effect. Signed-off-by: Takashi Sakamoto Acked-by: Clemens Ladisch Signed-off-by: Takashi Iwai sound/firewire/amdtp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 12e0f438d312fd40815249198ec1e4f3abddacc5 Author: Takashi Sakamoto Date: Fri May 22 23:21:13 2015 +0900 ALSA: firewire-lib: use dev_err() when detecting incoming streaming error When detecting invalid value in 'dbs' field of CIP header or packet discontinuity, current implementation reports the status by err_info(). In most cases this state is caused by model-specific issue due to vendor's customization and should be reported to developers. This commit use dev_err() instead of dev_info() for this purpose. In the cases, packet streaming is aborted, thus no message floading occurs. Signed-off-by: Takashi Sakamoto Acked-by: Clemens Ladisch Signed-off-by: Takashi Iwai sound/firewire/amdtp.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 9a2820c1189bd3165accd7663783e32935bb9055 Author: Takashi Sakamoto Date: Fri May 22 23:21:12 2015 +0900 ALSA: firewire-lib: macro arrangement for code cleanup Some macros include my misunderstanding for IEC 61883-1 or -6. Additionally, some fixed values appear on codes. This commit replaces these with macros with proper names. Signed-off-by: Takashi Sakamoto Acked-by: Clemens Ladisch Signed-off-by: Takashi Iwai sound/firewire/amdtp.c | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) commit 29bcae208179416048c49c7039c9d7a362b6c5bf Author: Takashi Sakamoto Date: Fri May 22 23:21:11 2015 +0900 ALSA: firewire-lib: rename local functions for code cleanup The naming rule for local functions was inconsistent. This commit rename them with a consistent manner. Signed-off-by: Takashi Sakamoto Acked-by: Clemens Ladisch Signed-off-by: Takashi Iwai sound/firewire/amdtp.c | 60 +++++++++++++++++++++++++------------------------- 1 file changed, 30 insertions(+), 30 deletions(-) commit edd4ab0559316a1efe0881a4e2ccaeb4fec73142 Author: Ramakrishna Pallala Date: Sun May 24 09:11:58 2015 +0530 power: max17042_battery: add HEALTH and TEMP_* properties support This patch adds the support for following battery properties to max17042 fuel gauge driver. POWER_SUPPLY_PROP_TEMP_ALERT_MIN POWER_SUPPLY_PROP_TEMP_ALERT_MAX POWER_SUPPLY_PROP_TEMP_MIN POWER_SUPPLY_PROP_TEMP_MAX POWER_SUPPLY_PROP_HEALTH Signed-off-by: Ramakrishna Pallala Reviewed-by: Krzysztof Kozlowski Signed-off-by: Sebastian Reichel drivers/power/max17042_battery.c | 190 +++++++++++++++++++++++++++++++-- include/linux/power/max17042_battery.h | 4 + 2 files changed, 183 insertions(+), 11 deletions(-) commit 4aeae9cb0dad117f055add68c48decaf489aecf3 Author: Laurentiu Palcu Date: Tue May 19 16:24:40 2015 +0300 power_supply: Add support for TI BQ25890 charger chip More details about the chip can be found here: http://www.ti.com/product/bq25890 Signed-off-by: Laurentiu Palcu Reviewed-by: Krzysztof Kozlowski Signed-off-by: Sebastian Reichel drivers/power/Kconfig | 7 + drivers/power/Makefile | 1 + drivers/power/bq25890_charger.c | 999 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 1007 insertions(+) commit 7e9f8a25a94e21adbcfbe89843a552da191c0079 Author: Laurentiu Palcu Date: Tue May 19 16:24:39 2015 +0300 Documentation: devicetree: Add TI BQ25890 bindings Signed-off-by: Laurentiu Palcu Reviewed-by: Krzysztof Kozlowski Signed-off-by: Sebastian Reichel .../devicetree/bindings/power/bq25890.txt | 46 ++++++++++++++++++++++ 1 file changed, 46 insertions(+) commit 4970d839aa1574e4e998cdc423864a50743931ff Author: Krzysztof Kozlowski Date: Tue May 19 16:16:30 2015 +0900 power_supply: charger-manager: Add parent for power supply The 'parent' argument passed to power_supply_register() is now used to postpone callbacks to the driver until the driver's probe end. Pass current device from charger-manager to utilize that. This will move created power supply from virtual to platform devices. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Sebastian Reichel drivers/power/charger-manager.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit a9f6a19b57c4f37dfd6aa322071948245fecbd91 Author: Krzysztof Kozlowski Date: Tue May 19 16:16:29 2015 +0900 power_supply: Use wrappers to avoid races when registering power supply Use wrappers over get_property() and set_property() internally in power supply and for sysfs interface. The wrappers provide safe access if power supply is not yet registered or t is being destroyed. In case of syfs the theoretical race could happen between ending of driver's probe and parallel sysfs access: some_driver_probe() userspace ==================================== =========================== drv->psy = power_supply_register() device_add() sysfs entries are created atomic_inc(&psy->use_cnt); store on sysfs attributes drv->set_property() dereference of drv->psy drv->psy = returned psy; For leds the race could happen between power supply being destroyed and ongoing power_supply_changed_work(). Signed-off-by: Krzysztof Kozlowski Signed-off-by: Sebastian Reichel drivers/power/power_supply_leds.c | 4 ++-- drivers/power/power_supply_sysfs.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit 9f6cd98fc3c64ebcebf63c04f16246f79bcc4c70 Author: Uwe Kleine-König Date: Mon May 18 22:45:07 2015 +0200 power: reset: ltc2952: use _optional variant of devm_gpiod_get devm_gpiod_get_optional returns NULL if devm_gpiod_get would return an ENOENT error pointer. There is no semantic change intended. Signed-off-by: Uwe Kleine-König Signed-off-by: Sebastian Reichel drivers/power/reset/ltc2952-poweroff.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit a34c0a8bf8caae7a82de08dbcca2c7c11907c805 Author: Uwe Kleine-König Date: Mon May 18 22:45:06 2015 +0200 power: reset: gpio-poweroff: let devm_gpiod_get set direction of gpio Since 39b2bbe3d715 (gpio: add flags argument to gpiod_get*() functions) which appeared in v3.17-rc1, the gpiod_get* functions take an additional parameter that allows to specify direction and initial value for output. Signed-off-by: Uwe Kleine-König Reviewed-by: Linus Walleij Signed-off-by: Sebastian Reichel drivers/power/reset/gpio-poweroff.c | 25 ++++++++----------------- 1 file changed, 8 insertions(+), 17 deletions(-) commit b01e7c3b803e6f0498d4db0b124e3b4efb5ac728 Author: Anda-Maria Nicolae Date: Tue May 12 12:11:33 2015 +0300 power_supply: bq2415x_charger: Add ACPI support Replace of_property_read_u32() with device_property_read_u32(), which is a wrapper over ACPI and device tree enumeration methods. When ACPI enumeration is used, automode is not supported. Therefore, bq2415x_charger does not update its input current automatically, depending on the USB port type that is connected to. Input current may be updated via sysfs. Signed-off-by: Anda-Maria Nicolae Signed-off-by: Sebastian Reichel drivers/power/bq2415x_charger.c | 73 +++++++++++++++++++++++++++++++---------- 1 file changed, 55 insertions(+), 18 deletions(-) commit f6d8b7744f692def009b9b354a39daf503bc9e00 Author: Anda-Maria Nicolae Date: Tue May 12 12:11:32 2015 +0300 power_supply: bq2415x_charger: Fix coding style issues This patch fixes the following issues reported by checkpatch.pl: - use -EINVAL instead of -ENOSYS, to fix warning message: "ENOSYS means 'invalid syscall nr' and nothing else" - remove unnecessary log message - split lines whose length is greater than 80 characters - if an arm statement uses braces, add braces to the other arms of the respective statement, too - match alignment with open parenthesis Signed-off-by: Anda-Maria Nicolae Signed-off-by: Sebastian Reichel drivers/power/bq2415x_charger.c | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) commit 323667209223368b50e16994e0fa8cf833940ce6 Author: Krzysztof Kozlowski Date: Sat May 2 00:46:44 2015 +0900 power: at91-reset: 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 Acked-by: Alexandre Belloni Signed-off-by: Sebastian Reichel drivers/power/reset/at91-reset.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f1f27a4acf7c5be41dccf3ce2e509e2e9fcc6e6f Author: Krzysztof Kozlowski Date: Sat May 2 00:46:43 2015 +0900 power: axp288_fuel_gauge: 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: Sebastian Reichel drivers/power/axp288_fuel_gauge.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2219a935963e5eeb19e5abfb99475fcc06bbb804 Author: Laurentiu Palcu Date: Thu Apr 16 12:31:16 2015 +0300 power_supply: Add TI BQ24257 charger driver Based on the datasheet found here: http://www.ti.com/lit/ds/symlink/bq24257.pdf Signed-off-by: Laurentiu Palcu Reviewed-by: Krzysztof Kozlowski Signed-off-by: Sebastian Reichel .../devicetree/bindings/power/bq24257.txt | 21 + drivers/power/Kconfig | 7 + drivers/power/Makefile | 1 + drivers/power/bq24257_charger.c | 863 +++++++++++++++++++++ 4 files changed, 892 insertions(+) commit c947f7e1e31a708f5a4ea8c1a627bec578cd9223 Author: Alexander Aring Date: Fri May 22 17:43:54 2015 +0200 mac802154: remove mib lock This patch removes the mib lock. The new locking mechanism is to protect the mib values with the rtnl lock. Note that this isn't always necessary if we have an interface up the most mib values are readonly (e.g. address settings). With this behaviour we can remove locking in hotpath like frame parsing completely. It depends on context if we need to hold the rtnl lock or not, this makes the callbacks of ieee802154_mlme_ops unnecessary because these callbacks hols always the locks. Signed-off-by: Alexander Aring Reviewed-by: Stefan Schmidt Signed-off-by: Marcel Holtmann include/net/ieee802154_netdev.h | 9 -------- net/ieee802154/6lowpan/core.c | 20 ----------------- net/ieee802154/6lowpan/tx.c | 2 +- net/ieee802154/nl-mac.c | 14 ++++++++---- net/ieee802154/socket.c | 12 +++++----- net/mac802154/ieee802154_i.h | 6 ----- net/mac802154/iface.c | 8 ------- net/mac802154/mac_cmd.c | 6 ++--- net/mac802154/mib.c | 50 ----------------------------------------- net/mac802154/rx.c | 5 ----- 10 files changed, 18 insertions(+), 114 deletions(-) commit 344f8c119df742f2bf7098cf8fc326351f583249 Author: Alexander Aring Date: Fri May 22 17:43:53 2015 +0200 mac802154: use atomic ops for sequence incrementation This patch will use atomic operations for sequence number incrementation while MAC header generation. Upper layers like af_802154 or 6LoWPAN could call this function in a parallel context while generating 802.15.4 MAC header before queuing into wpan interfaces transmit queue. Signed-off-by: Alexander Aring Reviewed-by: Stefan Schmidt Signed-off-by: Marcel Holtmann include/net/cfg802154.h | 4 ++-- include/net/ieee802154_netdev.h | 1 - net/ieee802154/6lowpan/core.c | 8 -------- net/mac802154/ieee802154_i.h | 1 - net/mac802154/iface.c | 9 ++++++--- net/mac802154/mac_cmd.c | 1 - net/mac802154/mib.c | 9 --------- 7 files changed, 8 insertions(+), 25 deletions(-) commit 4a3a8c0c3a613e481bea931f0d65dc4a7efaa9b9 Author: Alexander Aring Date: Fri May 22 17:43:52 2015 +0200 mac802154: remove pib lock This patch removes the pib lock which is now replaced by rtnl lock. The new interface already use the rtnl lock only. Nevertheless this patch will fix issues while using new and old interface at the same time. Signed-off-by: Alexander Aring Reviewed-by: Stefan Schmidt Signed-off-by: Marcel Holtmann include/net/cfg802154.h | 2 -- net/ieee802154/core.c | 2 -- net/ieee802154/nl-phy.c | 6 +++--- net/mac802154/iface.c | 7 ------- net/mac802154/mib.c | 4 ++-- 5 files changed, 5 insertions(+), 16 deletions(-) commit 4a669f7d72535017dd03cbcdf5af6e85edfdf90c Author: Alexander Aring Date: Fri May 22 17:43:51 2015 +0200 mac802154: fix hold rtnl while ioctl This patch fixes an issue to set address configuration with ioctl. Accessing the mib requires rtnl lock and the ndo_do_ioctl doesn't hold the rtnl lock while this callback is called. This patch do that manually. Signed-off-by: Alexander Aring Reported-by: Matteo Petracca Reviewed-by: Stefan Schmidt Signed-off-by: Marcel Holtmann net/mac802154/iface.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 884ca45613c47efe4b0b1238f6ee677d74fe3419 Author: Tiberiu Breana Date: Mon May 18 14:49:50 2015 +0300 iio: accel: Add support for Sensortek STK8BA50 Minimal implementation of an IIO driver for the Sensortek STK8BA50 3-axis accelerometer. Datasheet: http://szgsensor.com/uploads/soft/141229/STK8BA50%D2%E5%BC%CE.pdf Includes: - ACPI support; - read_raw for x,y,z axes; - reading and setting the scale (range) parameter. - power management Signed-off-by: Tiberiu Breana Signed-off-by: Jonathan Cameron drivers/iio/accel/Kconfig | 10 ++ drivers/iio/accel/Makefile | 1 + drivers/iio/accel/stk8ba50.c | 302 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 313 insertions(+) commit 1250186a936a169a32f5101392deec18788877b9 Author: Lars-Peter Clausen Date: Mon May 18 13:34:49 2015 +0200 iio: __iio_update_buffers: Leave device in sane state on error Currently when something goes wrong at some step when disabling the buffers we immediately abort. This has the effect that the enable/disable calls are no longer balanced. So make sure that even if one step in the disable sequence fails the other steps are still executed. The other issue is that when either enable or disable fails buffers that were active at that time stay active while the device itself is disabled. This leaves things in a inconsistent state and can cause unbalanced enable/disable calls. Furthermore when enable fails we restore the old scan mask, but still keeps things disabled. Given that verification of the configuration was performed earlier and it is valid at the point where we try to enable/disable the most likely reason of failure is a communication failure with the device or maybe a out-of-memory situation. There is not really a good recovery strategy in such a case, so it makes sense to leave the device disabled, but we should still leave it in a consistent state. What the patch does if disable/enable fails is to deactivate all buffers and make sure that the device will be in the same state as if all buffers had been manually disabled. Signed-off-by: Lars-Peter Clausen Signed-off-by: Jonathan Cameron drivers/iio/industrialio-buffer.c | 82 ++++++++++++++++++++++----------------- 1 file changed, 46 insertions(+), 36 deletions(-) commit 623d74e37f12c9276b15c2c0540b438e684af0d2 Author: Lars-Peter Clausen Date: Mon May 18 13:34:48 2015 +0200 iio: __iio_update_buffers: Split enable and disable path into helper functions __iio_update_buffers is already a rather large function with many different error paths and it is going to get even larger. This patch factors out the device enable and device disable paths into separate helper functions. The patch also re-implements iio_disable_all_buffers() using the new iio_disable_buffers() function removing a fair bit of redundant code. Signed-off-by: Lars-Peter Clausen Signed-off-by: Jonathan Cameron drivers/iio/industrialio-buffer.c | 191 ++++++++++++++++++++------------------ 1 file changed, 103 insertions(+), 88 deletions(-) commit 6e509c4d91632b6f8f05f0bee3a20fd50ca2263b Author: Lars-Peter Clausen Date: Mon May 18 13:34:47 2015 +0200 iio: __iio_update_buffers: Verify configuration before starting to apply it Currently __iio_update_buffers() verifies whether the new configuration will work in the middle of the update sequence. This means if the new configuration is invalid we need to rollback the changes already made. This patch moves the validation of the new configuration at the beginning of __iio_update_buffers() and will not start to make any changes if the new configuration is invalid. Signed-off-by: Lars-Peter Clausen Signed-off-by: Jonathan Cameron drivers/iio/industrialio-buffer.c | 164 +++++++++++++++++++++++--------------- 1 file changed, 101 insertions(+), 63 deletions(-) commit 2a67dfba7fae36af0233452d19b40594f62bc019 Author: Urs Fässler Date: Mon May 18 15:22:44 2015 +0200 iio:adc128s052: add support for adc122s021 Signed-off-by: Urs Fässler Signed-off-by: Jonathan Cameron .../devicetree/bindings/iio/adc/ti-adc128s052.txt | 4 +-- drivers/iio/adc/Kconfig | 4 +-- drivers/iio/adc/ti-adc128s052.c | 30 +++++++++++++++++----- 3 files changed, 28 insertions(+), 10 deletions(-) commit 1ce87f21edf6a071a7cc6bc77d628d7c7650d0d8 Author: Lars-Peter Clausen Date: Fri May 22 18:17:38 2015 +0200 iio: Add I/Q modifiers I/Q modifiers can be used to denote signals which are represented by a in-phase and a quadrature component. The ABI documentation describes the I and Q modifiers for current and voltage channels for now as those will be the most likely users. Signed-off-by: Lars-Peter Clausen Signed-off-by: Jonathan Cameron Documentation/ABI/testing/sysfs-bus-iio | 46 +++++++++++++++++++++++++++++++++ drivers/iio/industrialio-core.c | 2 ++ include/uapi/linux/iio/types.h | 2 ++ 3 files changed, 50 insertions(+) commit 2f4adaeebfb6f30fd6cd7a1a1dffe31f8e93a4c9 Author: Antoine Tenart Date: Mon May 18 11:19:19 2015 +0200 Documentation: bindings: document the Berlin ADC driver Following the addition of a Berlin ADC driver, this patch adds the corresponding bindings documentation. Signed-off-by: Antoine Tenart Acked-by: Jonathan Cameron Signed-off-by: Jonathan Cameron .../devicetree/bindings/iio/adc/berlin2_adc.txt | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) commit 70f1937911caebd961833314b41a618a33a5130a Author: Antoine Tenart Date: Mon May 18 11:19:18 2015 +0200 iio: adc: add support for Berlin This patch adds the support of the Berlin ADC, available on Berlin SoCs. This ADC has 8 channels available, with one connected to a temperature sensor. The particularity here, is that the temperature sensor connected to the ADC has its own registers, and both the ADC and the temperature sensor must be configured when using it. Signed-off-by: Antoine Tenart Signed-off-by: Jonathan Cameron drivers/iio/adc/Kconfig | 7 + drivers/iio/adc/Makefile | 1 + drivers/iio/adc/berlin2-adc.c | 378 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 386 insertions(+) commit 727d3a0b1f97404eb1c3c136ba7fd41ab7ea6a22 Author: Takashi Sakamoto Date: Fri May 22 23:00:54 2015 +0900 ALSA: firewire-lib: remove restriction for non-blocking mode Former patches allow non-blocking streams to synchronize with timestamp. This patch removes the restriction. Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai sound/firewire/amdtp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a4103bd7fdd59548580bdbc8e995ef9621ef670e Author: Takashi Sakamoto Date: Fri May 22 23:00:53 2015 +0900 ALSA: firewire-lib: set streaming error outside of packetization In previous commit, error handling for incoming packet processing is outside of packetization. This is nice for reading the codes. This commit applies this idea for outgoing packet processing, too. Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai sound/firewire/amdtp.c | 39 ++++++++++++++++++++++++--------------- 1 file changed, 24 insertions(+), 15 deletions(-) commit 6fc6b9ce41c6e6ee123f0da5d3bfd7b628be2bd0 Author: Takashi Sakamoto Date: Fri May 22 23:00:52 2015 +0900 ALSA: firewire-lib: pass the number of data blocks in incoming packets to outgoing packets Current implementation reuses the value of syt field in incoming packet to outgoing packet for full duplex timestamp synchronization, while the number of data blocks in outgoing packets refers to hard-coded table and the synchronization cannot be applied to non-blocking stream. This commit passes the number of data blocks from incoming packet processing to outgoing packet processing for the synchronization. For normal mode, isochronous callback handler is changed to generate the values of syt and data blocks. Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai sound/firewire/amdtp.c | 54 ++++++++++++++++++++++++++++---------------------- 1 file changed, 30 insertions(+), 24 deletions(-) commit 875be09160345442196d0889ddf48f747701e12c Author: Takashi Sakamoto Date: Fri May 22 23:00:51 2015 +0900 ALSA: firewire-lib: simplify function to calculate the number of data blocks This function is called according to conditions between the value of syt and streaming mode(blocking or non-blocking). To simplify caller's work, this commit push these conditions to the function. Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai sound/firewire/amdtp.c | 49 +++++++++++++++++++++++++++---------------------- 1 file changed, 27 insertions(+), 22 deletions(-) commit a2064710ba2b38a4f07c1b273c389b70b14b2d18 Author: Takashi Sakamoto Date: Fri May 22 23:00:50 2015 +0900 ALSA: firewire-lib: add buffer-over-run protection at receiving more data blocks than expected In IEC 61883-6, the number of data blocks in a packet is limited up to the value of SYT_INTERVAL. Current implementation is compliant to the limitation, while it can cause buffer-over-run when the value of dbs field in received packet is illegally large. This commit adds a validator to detect such illegal packets to prevent the buffer-over-run. Actually, the buffer is aligned to the size of memory page, thus this issue hardly causes system errors due to the room to page alignment, as long as a few packets includes such jumbo payload; i.e. a packet to several received packets. Here, Behringer F-Control Audio 202 (based on OXFW 960) has a quirk to postpone transferring isochronous packet till finish handling any asynchronous packets. In this case, this model is lazy, transfers no packets according to several cycle-start packets. After finishing, this model pushes required data in next isochronous packet. As a result, the packet include more data blocks than IEC 61883-6 defines. To continue to support this model, this commit adds a new flag to extend the length of calculated payload. This flag allows the size of payload 5 times as large as IEC 61883-6 defines. As a result, packets from this model passed the validator successfully. Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai sound/firewire/amdtp.c | 21 +++++++++++++++++++-- sound/firewire/amdtp.h | 4 ++++ sound/firewire/oxfw/oxfw-stream.c | 10 ++++++++-- 3 files changed, 31 insertions(+), 4 deletions(-) commit 36583eb54d46c36a447afd6c379839f292397429 Merge: fa7912b cf539cb Author: David S. Miller Date: Sat May 23 01:22:35 2015 -0400 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Conflicts: drivers/net/ethernet/cadence/macb.c drivers/net/phy/phy.c include/linux/skbuff.h net/ipv4/tcp.c net/switchdev/switchdev.c Switchdev was a case of RTNH_H_{EXTERNAL --> OFFLOAD} renaming overlapping with net-next changes of various sorts. phy.c was a case of two changes, one adding a local variable to a function whilst the second was removing one. tcp.c overlapped a deadlock fix with the addition of new tcp_info statistic values. macb.c involved the addition of two zyncq device entries. skbuff.h involved adding back ipv4_daddr to nf_bridge_info whilst net-next changes put two other existing members of that struct into a union. Signed-off-by: David S. Miller commit fa7912be967102cdbecd8ef172571b28eb22099e Merge: fe59384 05a14d5 Author: David S. Miller Date: Fri May 22 23:59:23 2015 -0400 Merge branch 'pktgen-new-scripts' Jesper Dangaard Brouer says: ==================== pktgen: cleanups and introducing new samples/pktgen scripts v3: - Aborted v2 send due it was not generating diff stat (this is a bug in stg-mail, if not in the root directory) v2: address nitpicks from Cong Wang - Remove useless cat's, but keep them for old pgset() - Comment on: Due to pgctrl, cannot use exit code $? from grep - Use arithmetic compare in pktgen_sample03_burst_single_flow.sh This patchset is focused on making pktgen easier to use and better documented. It contains a number of documentation updates and minor changes to pktgen. The major contribution is introduction of common helper function for sample scripts. Instead of the old pgset() function, three new shell functions for configuring the different components of pktgen are introduced: pg_ctrl(), pg_thread() and pg_set(). The new functions correspond to pktgens different components. * pg_ctrl() control "pgctrl" (/proc/net/pktgen/pgctrl) * pg_thread() control the kernel threads and binding to devices * pg_set() control setup of individual devices Helpers also provide consistent parameter parsing across the sample scripts. Usage example: ./pktgen_sample01_simple.sh -i eth41 -m 00:12:C0:02:AC:5A -d 192.168.41.2 Usage: ./pktgen_sample01_simple.sh [-vx] -i ethX -i : ($DEV) output interface/device (required) -s : ($PKT_SIZE) packet size -d : ($DEST_IP) destination IP -m : ($DST_MAC) destination MAC-addr -t : ($THREADS) threads to start -c : ($SKB_CLONE) SKB clones send before alloc new SKB -b : ($BURST) HW level bursting of SKBs -v : ($VERBOSE) verbose -x : ($DEBUG) debug These scripts are borrowed from: https://github.com/netoptimizer/network-testing/tree/master/pktgen ==================== Signed-off-by: David S. Miller commit 05a14d5e17c21817946b6a50140c4a45257ad592 Author: Jesper Dangaard Brouer Date: Thu May 21 12:18:29 2015 +0200 pktgen: add benchmark script pktgen_bench_xmit_mode_netif_receive.sh This script pktgen_bench_xmit_mode_netif_receive.sh is a benchmark script, which can be used for benchmarking part of the network stack. This can be used for performance improving or catching regression in that area. The script is developed for benchmarking ingress qdisc path, original idea by Alexei Starovoitov. This script don't really need any hardware. This is achieved via the recently introduced stack inject feature "xmit_mode netif_receive". See commit 62f64aed622b6 ("pktgen: introduce xmit_mode ''"). Signed-off-by: Jesper Dangaard Brouer Signed-off-by: David S. Miller .../pktgen/pktgen_bench_xmit_mode_netif_receive.sh | 86 ++++++++++++++++++++++ 1 file changed, 86 insertions(+) commit 1d73ba16ad3975a2eb27e47e52fc215c0c5b8d83 Author: Jesper Dangaard Brouer Date: Thu May 21 12:18:12 2015 +0200 pktgen: add sample script pktgen_sample03_burst_single_flow.sh Add the pktgen samples script pktgen_sample03_burst_single_flow.sh that demonstrates how to acheive maximum performance. If correctly tuned[1] single CPU 10Gbit/s wirespeed small pkts is possible[2] which is 14.88Mpps. The trick is to take advantage of the "burst" feature introduced in commit 38b2cf2982dc73 ("net: pktgen: packet bursting via skb->xmit_more"). [1] http://netoptimizer.blogspot.dk/2014/06/pktgen-for-network-overload-testing.html [2] http://netoptimizer.blogspot.dk/2014/10/unlocked-10gbps-tx-wirespeed-smallest.html Signed-off-by: Jesper Dangaard Brouer Signed-off-by: David S. Miller .../pktgen/pktgen_sample03_burst_single_flow.sh | 82 ++++++++++++++++++++++ 1 file changed, 82 insertions(+) commit 282fb58947e129dea8badf48972ea89d027a76dc Author: Jesper Dangaard Brouer Date: Thu May 21 12:17:48 2015 +0200 pktgen: add sample script pktgen_sample02_multiqueue.sh Add the pktgen samples script pktgen_sample02_multiqueue.sh that demonstrates generating packets on multiqueue NICs. Specifically notice the options "-t" that specifies how many kernel threads to activate. Also notice the flag QUEUE_MAP_CPU, which cause the SKB TX queue to be mapped to the CPU running the kernel thread. For best scalability people are also encourage to map NIC IRQ /proc/irq/*/smp_affinity to CPU number. Usage example with "-t" 4 threads and help: ./pktgen_sample02_multiqueue.sh -i eth4 -m 00:1B:21:3C:9D:F8 -t 4 Usage: ./pktgen_sample02_multiqueue.sh [-vx] -i ethX -i : ($DEV) output interface/device (required) -s : ($PKT_SIZE) packet size -d : ($DEST_IP) destination IP -m : ($DST_MAC) destination MAC-addr -t : ($THREADS) threads to start -c : ($SKB_CLONE) SKB clones send before alloc new SKB -b : ($BURST) HW level bursting of SKBs -v : ($VERBOSE) verbose -x : ($DEBUG) debug Removing pktgen.conf-2-1 and pktgen.conf-2-2 as these examples should be covered now. Signed-off-by: Jesper Dangaard Brouer Signed-off-by: David S. Miller Documentation/networking/pktgen.txt | 2 - samples/pktgen/pktgen.conf-2-1 | 66 ------------------------ samples/pktgen/pktgen.conf-2-2 | 73 --------------------------- samples/pktgen/pktgen_sample02_multiqueue.sh | 75 ++++++++++++++++++++++++++++ 4 files changed, 75 insertions(+), 141 deletions(-) commit 6f09479758be247fef02188a275383ebaddbe291 Author: Jesper Dangaard Brouer Date: Thu May 21 12:17:33 2015 +0200 pktgen: add sample script pktgen_sample01_simple.sh Add the first basic pktgen samples script pktgen_sample01_simple.sh, which demonstrates the a simple use of the helper functions. Removing pktgen.conf-1-1 as that example should be covered now. The naming scheme pktgen_sampleNN, where NN is a number, should encourage reading the samples in a specific order. Script cause pktgen sending with a single thread and single interface, and introduce flow variation via random UDP source port. Usage example and help: ./pktgen_sample01_simple.sh -i eth4 -m 00:1B:21:3C:9D:F8 -d 192.168.8.2 Usage: ./pktgen_sample01_simple.sh [-vx] -i ethX -i : ($DEV) output interface/device (required) -s : ($PKT_SIZE) packet size -d : ($DEST_IP) destination IP -m : ($DST_MAC) destination MAC-addr -c : ($SKB_CLONE) SKB clones send before alloc new SKB -v : ($VERBOSE) verbose -x : ($DEBUG) debug Signed-off-by: Jesper Dangaard Brouer Signed-off-by: David S. Miller Documentation/networking/pktgen.txt | 29 ++++++++++--- samples/pktgen/pktgen.conf-1-1 | 59 -------------------------- samples/pktgen/pktgen_sample01_simple.sh | 71 ++++++++++++++++++++++++++++++++ 3 files changed, 94 insertions(+), 65 deletions(-) commit b64b0d1e64959691c1f4067a05fdb541d453ed6a Author: Jesper Dangaard Brouer Date: Thu May 21 12:17:19 2015 +0200 pktgen: new pktgen helper functions for samples scripts Preparing for removing existing samples/pktgen/ scripts, and replacing these with easier to use samples. This commit provides two helper shell files, that can be "included" by shell source'ing. Namely "functions.sh" and "parameters.sh". The parameters.sh file support easy and consistant parameter parsing across the sample scripts. Usage example is printed on errors. The functions.sh file provides, three new shell functions for configuring the different components of pktgen: pg_ctrl(), pg_thread() and pg_set(). A slightly improved version of the old pgset() function is also provided for backwards compat. The new functions correspond to pktgens different components. * pg_ctrl() control "pgctrl" (/proc/net/pktgen/pgctrl) * pg_thread() control the kernel threads and binding to devices * pg_set() control setup of individual devices These changes are borrowed from: https://github.com/netoptimizer/network-testing/tree/master/pktgen Signed-off-by: Jesper Dangaard Brouer Signed-off-by: David S. Miller samples/pktgen/README.rst | 43 +++++++++++++++ samples/pktgen/functions.sh | 121 +++++++++++++++++++++++++++++++++++++++++++ samples/pktgen/parameters.sh | 97 ++++++++++++++++++++++++++++++++++ 3 files changed, 261 insertions(+) commit 4020726479ff799318a5aa188b81d79df86a0ea3 Author: Jesper Dangaard Brouer Date: Thu May 21 12:16:56 2015 +0200 pktgen: make /proc/net/pktgen/pgctrl report fail on invalid input Giving /proc/net/pktgen/pgctrl an invalid command just returns shell success and prints a warning in dmesg. This is not very useful for shell scripting, as it can only detect the error by parsing dmesg. Instead return -EINVAL when the command is unknown, as this provides userspace shell scripting a way of detecting this. Also bump version tag to 2.75, because (1) reading /proc/net/pktgen/pgctrl output this version number which would allow to detect this small semantic change, and (2) because the pktgen version tag have not been updated since 2010. Signed-off-by: Jesper Dangaard Brouer Signed-off-by: David S. Miller net/core/pktgen.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 2a1ddf27e8189e1d68336c55dd2f305b224ae8f1 Author: Jesper Dangaard Brouer Date: Thu May 21 12:16:40 2015 +0200 pktgen: document ability to add same device to several threads The pktgen.txt documentation still claimed that adding same device to multiple threads were not supported, but it have been since 2008 via commit e6fce5b916cd7 ("pktgen: multiqueue etc."). Document this and describe the naming scheme dev@X, as the procfile name still need to be unique. Fixes: e6fce5b916cd7 ("pktgen: multiqueue etc.") Signed-off-by: Jesper Dangaard Brouer Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller Documentation/networking/pktgen.txt | 77 ++++++++++++++++++++++++------------- 1 file changed, 50 insertions(+), 27 deletions(-) commit 91db4b3c89ac2fc33baa6ed0481037115de80beb Author: Jesper Dangaard Brouer Date: Thu May 21 12:16:26 2015 +0200 pktgen: doc were missing several config options The pktgen.txt documentation over available config options were not complete. Making the list complete by adding the following. Pgcontrol commands: reset Device commands: burst queue_map_min queue_map_max skb_priority tos traffic_class node spi dst6_max dst6_min vlan_cfi vlan_id vlan_p svlan_cfi svlan_id svlan_p Signed-off-by: Jesper Dangaard Brouer Signed-off-by: David S. Miller Documentation/networking/pktgen.txt | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) commit d079abd181950a44cdf31daafd1662388a6c4d2e Author: Jesper Dangaard Brouer Date: Thu May 21 12:16:11 2015 +0200 pktgen: adjust spacing in proc file interface output Too many spaces were introduced in commit 63adc6fb8ac0 ("pktgen: cleanup checkpatch warnings"), thus misaligning "src_min:" to other columns. Fixes: 63adc6fb8ac0 ("pktgen: cleanup checkpatch warnings") Signed-off-by: Jesper Dangaard Brouer Signed-off-by: David S. Miller net/core/pktgen.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d012827e8171193e89be83f78b51c9c3fa8f74e4 Author: Jesper Dangaard Brouer Date: Thu May 21 12:15:56 2015 +0200 pktgen: remove obsolete "max_before_softirq" from pktgen doc And cleanup some whitespaces in pktgen.txt. Signed-off-by: Jesper Dangaard Brouer Signed-off-by: David S. Miller Documentation/networking/pktgen.txt | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) commit 23ef5450429f0c729e3519680c3957838bc3cc58 Author: Kukjin Kim Date: Sat May 23 12:29:53 2015 +0900 ARM: exynos_defconfig: savedefconfig This patch does 'savedefconfig' for exynos_defconfig to remove useless configs and check its dependencies. Sometimes some configs could be ignored because of the dependencies even they are enabled in defconfig file manually. So checking the dependencies would be better. Signed-off-by: Kukjin Kim arch/arm/configs/exynos_defconfig | 50 +++++++++++---------------------------- 1 file changed, 14 insertions(+), 36 deletions(-) commit 29bdf97a3fe872889568655979c054fec10743d5 Author: Krzysztof Kozlowski Date: Sat May 23 12:27:56 2015 +0900 ARM: exynos_defconfig: Enable display on Trats2 board Enable the Exynos DSI and S6E8AA0 panel for full X11 display on Trats2. Signed-off-by: Krzysztof Kozlowski Reviewed-by: Javier Martinez Canillas Signed-off-by: Kukjin Kim arch/arm/configs/exynos_defconfig | 2 ++ 1 file changed, 2 insertions(+) commit 0824965140fff1bf640a987dc790d1594a8e0699 Author: Rafael J. Wysocki Date: Mon Apr 13 16:23:36 2015 +0200 PCI: Propagate the "ignore hotplug" setting to parent Refine the mechanism introduced by commit f244d8b623da ("ACPIPHP / radeon / nouveau: Fix VGA switcheroo problem related to hotplug") to propagate the ignore_hotplug setting of the device to its parent bridge in case hotplug notifications related to the graphics adapter switching are given for the bridge rather than for the device itself (they need to be ignored in both cases). Link: https://bugzilla.kernel.org/show_bug.cgi?id=61891 Link: https://bugs.freedesktop.org/show_bug.cgi?id=88927 Fixes: b440bde74f04 ("PCI: Add pci_ignore_hotplug() to ignore hotplug events for a device") Reported-and-tested-by: tiagdtd-lava Signed-off-by: Rafael J. Wysocki Signed-off-by: Bjorn Helgaas CC: stable@vger.kernel.org # v3.17+ drivers/pci/pci.c | 11 +++++++++++ include/linux/pci.h | 6 +----- 2 files changed, 12 insertions(+), 5 deletions(-) commit 9d16f207112f77711600fb0770182a06e056e5de Author: Saravana Kannan Date: Mon May 18 10:43:31 2015 +0530 cpufreq: Track cpu managing sysfs kobjects separately In order to prepare for the next few commits, that will stop migrating sysfs files on cpu hotplug, this patch starts managing sysfs-cpu separately. The behavior is still the same as we are still migrating sysfs files on hotplug, later commits would change that. Signed-off-by: Saravana Kannan Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq.c | 11 +++++++---- include/linux/cpufreq.h | 4 +++- 2 files changed, 10 insertions(+), 5 deletions(-) commit d41be3466f4243f1b198b76fe3bcd91d88194f12 Author: Rafael J. Wysocki Date: Wed May 20 02:14:13 2015 +0200 ACPI / hotplug / PCI: Check ignore_hotplug for all downstream devices If the ignore_hotplug flag is set for a PCI device without an ACPI companion and a bus check notification is received for an ancestor bridge that is not the device's parent, ACPIPHP will ignore that flag. Namely, in that case acpiphp_check_bridge() is called for the target bridge and if all of the devices immediately below the bridge are still present, trim_stale_devices() will be called for each of them. That function recursively walks the hierarchy downwards and removes device objects corresponding to devices that don't appear to be present any more. Unfortunately, it only checks ignore_hotplug for devices having ACPI companions, so it will remove the others (if they don't respond) regardless of the ignore_hotplug value. Fix the problem by making trim_stale_devices() take ignore_hotplug into consideration regardless of whether or not an ACPI companion is present for the device it has been called for. [bhelgaas: This may fix bug 61891, depending on whether the bridge above a device is removed along with the device] Link: https://bugzilla.kernel.org/show_bug.cgi?id=61891 Signed-off-by: Rafael J. Wysocki Signed-off-by: Bjorn Helgaas drivers/pci/hotplug/acpiphp_glue.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 2af31f415fa177dd11bc76f2a292b09330803c89 Author: Rafael J. Wysocki Date: Sat May 23 00:38:57 2015 +0200 PCI: pciehp: Drop pointless label from pciehp_probe() The err_out_none label in pciehp_probe() only leads to a return statement, so use return statements instead of jumps to it and drop it. Signed-off-by: Rafael J. Wysocki Signed-off-by: Bjorn Helgaas drivers/pci/hotplug/pciehp_core.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit f91a3f08b741e3c5ecf501c160e51f6032718f52 Author: Dmitry Torokhov Date: Fri May 22 13:09:11 2015 -0700 Input: stmpe-ts - fix automatic module loading When STMPE is instantiated via device tree individual MFD cells rae formed with OF modaliases, not platform modaliases, and so we need to add OF device table to the driver if we want it to load automatically: of:Nstmpe_touchscreenTCst,stmpe-ts Reported-by: Heiner Kallweit Tested-by: Heiner Kallweit Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/stmpe-ts.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit 58405af6321a6d69de838f7a2d3115b85c987416 Author: Shailendra Verma Date: Fri May 22 22:48:22 2015 +0530 cpufreq: Fix for typos in two comments Signed-off-by: Shailendra Verma Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit ee89209402e0b9a733169901063afdf0ae7909db Author: Rafael J. Wysocki Date: Fri May 22 04:24:34 2015 +0200 ACPI / property: Define a symbol for PRP0001 Use a #defined symbol ACPI_DT_NAMESPACE_HID instead of the PRP0001 string. Signed-off-by: Rafael J. Wysocki Acked-by: Mika Westerberg Reviewed-by: Hanjun Guo drivers/acpi/internal.h | 2 ++ drivers/acpi/property.c | 8 ++++---- drivers/acpi/scan.c | 28 +++++++++++++++------------- 3 files changed, 21 insertions(+), 17 deletions(-) commit a0a931d6a2c1fbc5d5966ebf0e7a043748692c22 Author: Keith Busch Date: Fri May 22 12:28:31 2015 -0600 NVMe: Fix obtaining command result Replaces req->sense_len usage, which is not owned by the LLD, to req->special to contain the command result for driver created commands, and sets the result unconditionally on completion. Signed-off-by: Keith Busch Cc: Christoph Hellwig Cc: Jens Axboe Fixes: d29ec8241c10 ("nvme: submit internal commands through the block layer") Signed-off-by: Jens Axboe drivers/block/nvme-core.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit fe593844957a7ce092ee14e085ee8ddfd6c3b73f Author: Michael Holzheu Date: Fri May 22 08:36:40 2015 -0700 test_bpf: Add backward jump test case Currently the testsuite does not have a test case with a backward jump. The s390x JIT (kernel 4.0) had a bug in that area. So add one new test case for this now. Signed-off-by: Michael Holzheu Signed-off-by: Alexei Starovoitov Acked-by: Daniel Borkmann Signed-off-by: David S. Miller lib/test_bpf.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit d0e72cc0ac3dcebf0de179ba1dd33a276642c5bb Author: Subhransu S. Prusty Date: Tue May 19 15:00:39 2015 +0530 ASoC: Intel: Initialize max mailbox size for haswell Signed-off-by: Subhransu S. Prusty Signed-off-by: Vinod Koul Acked-by: Liam Girdwood Signed-off-by: Mark Brown sound/soc/intel/haswell/sst-haswell-ipc.c | 3 +++ 1 file changed, 3 insertions(+) commit f99b26f0b4472f4359d123e11530ad43fcd6702d Author: Subhransu S. Prusty Date: Tue May 19 15:00:38 2015 +0530 ASoC: Intel: Initialize max mailbox size for baytrail Signed-off-by: Subhransu S. Prusty Signed-off-by: Vinod Koul Acked-by: Liam Girdwood Signed-off-by: Mark Brown sound/soc/intel/baytrail/sst-baytrail-ipc.c | 2 ++ 1 file changed, 2 insertions(+) commit 1925e219610d283901b21a4468e86421baa580b8 Author: Subhransu S. Prusty Date: Tue May 19 15:00:37 2015 +0530 ASoC: Intel: Allow to configure max size for mailbox data Mailbox size can be different for different platforms. So allow the drivers to configure the size. Signed-off-by: Subhransu S. Prusty Signed-off-by: Vinod Koul Acked-by: Liam Girdwood Signed-off-by: Mark Brown sound/soc/intel/common/sst-ipc.h | 2 ++ 1 file changed, 2 insertions(+) commit a63faa58bd90477f143f6a9700db91a17593796e Author: Subhransu S. Prusty Date: Tue May 19 15:00:36 2015 +0530 ASoC: Intel: Remove the direct register reference from common ipc Signed-off-by: Subhransu S. Prusty Signed-off-by: Vinod Koul Acked-by: Liam Girdwood Signed-off-by: Mark Brown sound/soc/intel/common/sst-ipc.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 40fea92107ce0d7465e52cd7b1a2b7883618ba1b Author: Subhransu S. Prusty Date: Tue May 19 15:00:35 2015 +0530 ASoC: Intel: Move the busy check to ops for HSW Signed-off-by: Subhransu S. Prusty Signed-off-by: Vinod Koul Acked-by: Liam Girdwood Signed-off-by: Mark Brown sound/soc/intel/haswell/sst-haswell-ipc.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 2709bdbc4d7ffae3bcd3e24e214475fcc3d4f77e Author: Subhransu S. Prusty Date: Tue May 19 15:00:34 2015 +0530 ASoC: Intel: Move the busy check to ops for Baytrail Signed-off-by: Subhransu S. Prusty Signed-off-by: Vinod Koul Acked-by: Liam Girdwood Signed-off-by: Mark Brown sound/soc/intel/baytrail/sst-baytrail-ipc.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 6022d330a59735adbdcb917d1428a306dbba577b Author: Subhransu S. Prusty Date: Tue May 19 15:00:33 2015 +0530 ASoC: Intel: Create an ops to check for DSP busy Created an ops to check if DSP busy, to avoid using platform specific registers in common IPC. Signed-off-by: Subhransu S. Prusty Signed-off-by: Vinod Koul Acked-by: Liam Girdwood Signed-off-by: Mark Brown sound/soc/intel/common/sst-ipc.h | 1 + 1 file changed, 1 insertion(+) commit 25d238b2260973bfca0b82181824340c7aeae45a Author: Rajeev Kumar Date: Fri May 22 09:58:30 2015 -0700 Input: update email-id of Rajeev Kumar rajeev-dlh.kumar@st.com email-id doesn't exist anymore as I have left the company. Signed-off-by: Rajeev Kumar Signed-off-by: Dmitry Torokhov drivers/input/keyboard/spear-keyboard.c | 2 +- include/linux/platform_data/keyboard-spear.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit bde304575f3ecaa9570a9329196dffaadf3adafa Author: Khem Raj Date: Fri May 22 09:56:29 2015 -0700 Input: sentelic - use "static inline" instead of "inline" gcc-5 defaults to gnu11 which used c99 inline semantics in c99 'inline' is not externally visible unlike gnu89, therefore we use 'static inline' which has same semantics between gnu89 and c99 Signed-off-by: Khem Raj Signed-off-by: Dmitry Torokhov drivers/input/mouse/sentelic.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 12c227ec89a70c14e3efcf102c5babece381e172 Author: Jiri Pirko Date: Fri May 22 11:05:58 2015 +0200 flow_dissector: do not break if ports are not needed in flowlabel This restored previous behaviour. If caller does not want ports to be filled, we should not break. Fixes: 06635a35d13d ("flow_dissect: use programable dissector in skb_flow_dissect and friends") Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller net/core/flow_dissector.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit db5b09f6ed9d7617e43d7140e8bd8649ec067862 Author: Brian Norris Date: Fri May 22 10:43:12 2015 -0700 mtd: nand: correct indentation within conditional We had an extra tab. Signed-off-by: Brian Norris drivers/mtd/nand/nand_base.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b74bdbe5884d83b3bd8dc774eb43f555a5088d5d Author: Brian Norris Date: Fri May 22 10:42:01 2015 -0700 mtd: remove incorrect file name This is an example of why it doesn't make much sense to put this information here in the first place. I don't really know what purpose it serves. Signed-off-by: Brian Norris drivers/mtd/devices/spear_smi.c | 4 ++-- drivers/mtd/nand/nand_base.c | 2 -- drivers/mtd/nand/nand_bbt.c | 2 -- drivers/mtd/nand/nand_ids.c | 2 -- drivers/mtd/nand/ndfc.c | 2 -- 5 files changed, 2 insertions(+), 10 deletions(-) commit 82d5b58f13fcc5459cd9c61a9d6d4a07328a31dc Author: Daniel Vetter Date: Fri May 22 19:45:27 2015 +0200 drm/i915: Update DRIVER_DATE to 20150522 Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e83d0a4106d81dd08b70318f078f3bad6acdc110 Author: Xunlei Pang Date: Thu Apr 9 09:04:42 2015 +0800 time: Remove read_boot_clock() Now that we have a read_boot_clock64() function available on every architecture, and converted all the users to it, it's time to remove the (now unused) read_boot_clock() completely from the kernel. Cc: Thomas Gleixner Cc: Ingo Molnar Signed-off-by: Xunlei Pang [jstultz: Minor commit message tweak suggested by Ingo] Signed-off-by: John Stultz include/linux/timekeeping.h | 1 - kernel/time/timekeeping.c | 14 +++----------- 2 files changed, 3 insertions(+), 12 deletions(-) commit 689911c734ca77d682b6507354c704e06a64b1b6 Author: Xunlei Pang Date: Thu Apr 9 09:04:41 2015 +0800 s390: time: Provide read_boot_clock64() and read_persistent_clock64() As part of addressing the "y2038 problem" for in-kernel uses, this patch converts read_boot_clock() to read_boot_clock64() and read_persistent_clock() to read_persistent_clock64() using timespec64. Rename some instances of 'timespec' to 'timespec64' in time.c and related references Cc: Thomas Gleixner Cc: Ingo Molnar Cc: Martin Schwidefsky Cc: Heiko Carstens Cc: linux390@de.ibm.com Signed-off-by: Xunlei Pang [jstultz: Fixed minor style and grammer tweaks pointed out by Ingo] Signed-off-by: John Stultz arch/s390/include/asm/timex.h | 5 +++-- arch/s390/kernel/debug.c | 11 ++++++----- arch/s390/kernel/time.c | 6 +++--- 3 files changed, 12 insertions(+), 10 deletions(-) commit 30f3b3f9836c7c7e1f42ca855bbe8127fff4b99a Author: Xunlei Pang Date: Thu Apr 9 09:04:40 2015 +0800 time: Include math64.h in time64.h On 32-bit systems, timespec64_add_ns() calls __iter_div_u64_rem() which needs math64.h, and we want to include time64.h in some cases. Cc: Thomas Gleixner Cc: Ingo Molnar Signed-off-by: Xunlei Pang Signed-off-by: John Stultz include/linux/time64.h | 1 + 1 file changed, 1 insertion(+) commit 4e413e8526aa53393d0b3d9ecbdb0436203586ee Author: Badhri Jagan Sridharan Date: Thu May 7 16:20:34 2015 -0700 tracing: timer: Add deferrable flag to timer_start The timer_start event now shows whether the timer is deferrable in case of a low-res timer. The debug_activate function now includes a deferrable flag while calling the trace_timer_start event. Cc: Thomas Gleixner Cc: Ingo Molnar Acked-by: Steven Rostedt Signed-off-by: Badhri Jagan Sridharan [jstultz: Fixed minor whitespace and grammer tweaks pointed out by Ingo] Signed-off-by: John Stultz include/trace/events/timer.h | 13 +++++++++---- kernel/time/timer.c | 2 +- 2 files changed, 10 insertions(+), 5 deletions(-) commit 57d05a93ada77c4f8a6112cbc867a2948dce7991 Author: John Stultz Date: Wed May 13 16:04:47 2015 -0700 time: Rework debugging variables so they aren't global Ingo suggested that the timekeeping debugging variables recently added should not be global, and should be tied to the timekeeper's read_base. Thus this patch implements that suggestion. This version is different from the earlier versions as it keeps the variables in the timekeeper structure rather then in the tkr. Cc: Ingo Molnar Cc: Thomas Gleixner Cc: Peter Zijlstra Cc: Prarit Bhargava Cc: Richard Cochran Signed-off-by: John Stultz include/linux/timekeeper_internal.h | 15 +++++++++++++++ kernel/time/timekeeping.c | 33 +++++++++++---------------------- 2 files changed, 26 insertions(+), 22 deletions(-) commit 6374f9124efea5fae9cba263108583c39e22f86b Author: Harald Geyer Date: Tue Apr 7 11:12:35 2015 +0000 timekeeping: Provide new API to get the current time resolution This patch series introduces a new function u32 ktime_get_resolution_ns(void) which allows to clean up some driver code. In particular the IIO subsystem has a function to provide timestamps for events but no means to get their resolution. So currently the dht11 driver tries to guess the resolution in a rather messy and convoluted way. We can do much better with the new code. This API is not designed to be exposed to user space. This has been tested on i386, sunxi and mxs. Cc: Thomas Gleixner Cc: Ingo Molnar Signed-off-by: Harald Geyer [jstultz: Tweaked to make it build after upstream changes] Signed-off-by: John Stultz include/linux/timekeeping.h | 1 + kernel/time/timekeeping.c | 17 +++++++++++++++++ 2 files changed, 18 insertions(+) commit 6f7d79849a00bba82d3139ff91ff2aaabd12841e Author: Sasha Levin Date: Mon Dec 1 23:04:06 2014 -0500 time: Make sure tz_minuteswest is set to a valid value when setting time Invalid values may overflow later, leading to undefined behaviour when multiplied by 60 to get the amount of seconds. Cc: Thomas Gleixner Cc: Ingo Molnar Signed-off-by: Sasha Levin Signed-off-by: John Stultz kernel/time/time.c | 4 ++++ 1 file changed, 4 insertions(+) commit bde1b29420d71a17d87332db8e20229f251d6c14 Author: Christoffer Dall Date: Wed May 13 22:01:07 2015 +0200 stable: Update documentation to clarify preferred procedure Clearly specify that "Cc: stable@vger.kernel.org" is strongly preferred so that developers understand that the other options should only be used when absolutely required. Also specify how upstream commit ids should be referenced in patches submitted directly to stable (I gathered this from looking at the stable archives), and specify that any modified patches for stable should be clearly documented in the patch description. Signed-off-by: Christoffer Dall Signed-off-by: Jonathan Corbet Documentation/stable_kernel_rules.txt | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) commit 41275490f7479be6a32a7b019ec13f3b4ff8c232 Merge: 898a7f3 41e177b Author: Arnd Bergmann Date: Fri May 22 17:33:12 2015 +0200 Merge branch 'for-upstream/juno-dts' of git://linux-arm.org/linux-ld into next/dt Merge "Documentation: bindings: Add DT bindings for ARM Juno boards" from Liviu Dudau: * 'for-upstream/juno-dts' of git://linux-arm.org/linux-ld: Documentation: bindings: Add DT bindings for ARM Juno boards. arm64: Add DT support for Juno r1 board. arm64: Juno: Add GICv2m support in device tree. arm64: Juno: Add memory mapped timer node arm64: Juno: Split juno.dts into juno-base.dtsi and juno.dts. arm64: Juno: Fix the GIC node address label and the frequency of FAXI clock. commit cbfa2c52818ada02ca3084e0c50aba8745311bc1 Author: Geert Uytterhoeven Date: Thu May 21 14:07:50 2015 +0200 gpiolib: Grammar s/an negative/a negative/ Signed-off-by: Geert Uytterhoeven Signed-off-by: Jonathan Corbet Documentation/gpio/consumer.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 11e285d8ff3289ce976d4b5b9748c87ac3db8c9d Author: Geert Uytterhoeven Date: Thu May 21 13:57:07 2015 +0200 DMA-API: Spelling s/This/Think/ Also remove spaces before TABs while we're at it. Signed-off-by: Geert Uytterhoeven Signed-off-by: Jonathan Corbet Documentation/DMA-API-HOWTO.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 41e177b37bd558980d50609116f7810b46fe4ce0 Author: Liviu Dudau Date: Wed May 20 11:42:37 2015 +0100 Documentation: bindings: Add DT bindings for ARM Juno boards. List the required properties and nodes used to describe the ARM Juno boards. Signed-off-by: Liviu Dudau Documentation/devicetree/bindings/arm/arm-boards | 66 ++++++++++++++++++++++++ 1 file changed, 66 insertions(+) commit 796c2b35a4105aa02c6a7af6de659086363d47f7 Author: Liviu Dudau Date: Tue Mar 10 15:31:37 2015 +0000 arm64: Add DT support for Juno r1 board. This board is based on Juno r0 with updated Cortex A5x revisions and board errata fixes. It also contains coherent ThinLinks ports on the expansion slot that allow for an AXI master on the daughter card to participate in a coherency domain. Support for SoC PCIe host bridge will be added as a separate series. Signed-off-by: Liviu Dudau Acked-by: Jon Medhurst Acked-by: Sudeep Holla arch/arm64/boot/dts/arm/Makefile | 2 +- arch/arm64/boot/dts/arm/juno-r1.dts | 116 ++++++++++++++++++++++++++++++++++++ 2 files changed, 117 insertions(+), 1 deletion(-) commit 9e6f374f99a0c83c6f58cb6f6356645ef8591d1e Author: Liviu Dudau Date: Thu Mar 26 12:16:31 2015 +0000 arm64: Juno: Add GICv2m support in device tree. Juno contains a GICv2m extension for handling PCIe MSI messages. Add a node declaring the first frame of the extension. Signed-off-by: Liviu Dudau Acked-by: Jon Medhurst Acked-by: Sudeep Holla arch/arm64/boot/dts/arm/juno-base.dtsi | 35 ++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) commit 7950235568dad46683e14aa36678366b43e56fac Author: Liviu Dudau Date: Tue Mar 10 15:21:23 2015 +0000 arm64: Juno: Add memory mapped timer node Juno based boards have a memory mapped timer @ 0x2a810000. This is disabled on r0 version of the board due to an SoC errata. Signed-off-by: Liviu Dudau Acked-by: Jon Medhurst Acked-by: Sudeep Holla arch/arm64/boot/dts/arm/juno-base.dtsi | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit e802087437c120b2bf0f213aba5c88c175d7019c Author: Liviu Dudau Date: Tue Mar 10 15:18:18 2015 +0000 arm64: Juno: Split juno.dts into juno-base.dtsi and juno.dts. Prepare the device tree for adding more boards based on Juno r0. Signed-off-by: Liviu Dudau Acked-by: Jon Medhurst Acked-by: Sudeep Holla arch/arm64/boot/dts/arm/juno-base.dtsi | 132 +++++++++++++++++++++++++++++++++ arch/arm64/boot/dts/arm/juno.dts | 129 +------------------------------- 2 files changed, 133 insertions(+), 128 deletions(-) commit 18c0b015305edd97c2b31e0ce7211a960d08f62f Author: Liviu Dudau Date: Thu Apr 30 16:45:57 2015 +0100 arm64: Juno: Fix the GIC node address label and the frequency of FAXI clock. During the review of the Juno DT files I've noticed that the GIC node label had two digits swapped leading to a different address being shown in the /sys/devices fs. Sudeep also pointed that public revisions of the Juno documentation list a different frequency for the FAXI system than what the one I've been using when creating the DT file. Verified with the firmware people to be the correct value in the shipped systems. Reported-by: Sudeep Holla Signed-off-by: Liviu Dudau Acked-by: Sudeep Holla Acked-by: Jon Medhurst arch/arm64/boot/dts/arm/juno-clocks.dtsi | 4 ++-- arch/arm64/boot/dts/arm/juno.dts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit 898a7f36c661a2121f77212f1337115b9e3527b5 Merge: 220684f f807370 Author: Arnd Bergmann Date: Fri May 22 17:17:17 2015 +0200 Merge tag 'at91-dt3' of git://git.kernel.org/pub/scm/linux/kernel/git/nferre/linux-at91 into next/dt Merge "Third batch of DT changes for 4.2" from Nicolas Ferre: - USB host clock refine following changes in drivers - one little fix for usart pinctrl * tag 'at91-dt3' of git://git.kernel.org/pub/scm/linux/kernel/git/nferre/linux-at91: ARM: at91/dt: remove useless usb clock ARM: at91/dt: remove useless uhpck clock references from ehci defintions USB: atmel: update DT bindings documentation ARM: at91/dt: at91sam9x5: fix usart1 sck pin definition commit 220684f3cd5198a02f232f3811d55380a375a9cb Merge: 54458fb cdcc8b6 Author: Arnd Bergmann Date: Fri May 22 17:16:20 2015 +0200 Merge tag 'v4.2-rockchip-dts2' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into next/dt Merge "ARM: rockchip: dts relicensing for 4.2" from Heiko Stuebner: Relicense all Rockchip-related devicetree files to the GPL2/X11 combo. I've now finally aquired necessary Acks from all contributors. * tag 'v4.2-rockchip-dts2' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip: ARM: dts: rockchip: relicense rk3288-evb* under GPLv2/X11 ARM: dts: rockchip: relicense rk3288.dtsi under GPLv2/X11 ARM: dts: rockchip: relicense rk3188-radxarock.dts under GPLv2/X11 ARM: dts: rockchip: relicense rk3066a-bqcurie2.dts under GPLv2/X11 ARM: dts: rockchip: relicense rk3288-thermal.dtsi under GPLv2/X11 ARM: dts: rockchip: relicense rk3188.dtsi under GPLv2/X11 ARM: dts: rockchip: relicense rk3066a.dtsi under GPLv2/X11 ARM: dts: rockchip: relicense rk3xxx.dtsi under GPLv2/X11 commit 9482317340ce75f9c0030b8fe2188b6b330064e3 Author: Krzysztof Kozlowski Date: Tue May 19 15:09:41 2015 +0900 ARM: multi_v7_defconfig: Enable OHCI on exynos SoCs Enable the USB OHCI driver for Exynos SoCs: S5PV210, Exynos4 family, Exynos5250, Exynos5440 and Exynos542x/5800 family. Signed-off-by: Krzysztof Kozlowski Reviewed-by: Javier Martinez Canillas Signed-off-by: Kukjin Kim Signed-off-by: Arnd Bergmann arch/arm/configs/multi_v7_defconfig | 1 + 1 file changed, 1 insertion(+) commit a5112b6bfc1ac3e70da21599225d2bfe611dd34d Author: Krzysztof Kozlowski Date: Tue May 19 15:07:55 2015 +0900 ARM: multi_v7_defconfig: Enable TMU for exynos SoCs Enable support for Thermal Monitoring Unit present on Exynos SoCs. This allows detection of overheat and handling this gracefully. Signed-off-by: Krzysztof Kozlowski Reviewed-by: Javier Martinez Canillas Signed-off-by: Kukjin Kim Signed-off-by: Arnd Bergmann arch/arm/configs/multi_v7_defconfig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit dcf9a03bff4ee5ad5795d1f233c6880f49d298c2 Author: Krzysztof Kozlowski Date: Tue May 19 15:06:10 2015 +0900 ARM: multi_v7_defconfig: Enable PMIC and MUIC drivers for exynos Enable drivers for PMICs and MUICs present on Exynos-based devices: - max14577: charger, fuel gauge (max17040), regulator, used on: Gear 1, Gear 2, - max77693: charger, fuel gauge (max17042), used on: Trats2, - s5m/s2mps: RTC, clock, used on: Arndale, Arndale Octa, Gear 1, Gear 2 This allows full usage of charging stack on these devices along with RTC and 32 kHz clocks. Signed-off-by: Krzysztof Kozlowski Reviewed-by: Javier Martinez Canillas [kgene@kernel.org: savedefconfig] Signed-off-by: Kukjin Kim Signed-off-by: Arnd Bergmann arch/arm/configs/multi_v7_defconfig | 11 +++++++++++ 1 file changed, 11 insertions(+) commit f020ee16eea4e2f327a8b4973505abf0215043cc Author: Krzysztof Kozlowski Date: Tue May 19 15:00:07 2015 +0900 ARM: multi_v7_defconfig: Enable CPU idle for exynos SoCs Current Exynos CPU idle driver supports entering AFTR (Arm Off, Top Running) mode on Exynos3250, Exynos4210 (coupled), Exynos4x12 and Exynos5250. Enable it in default configuration to reduce energy consumption. Signed-off-by: Krzysztof Kozlowski Reviewed-by: Javier Martinez Canillas Signed-off-by: Kukjin Kim Signed-off-by: Arnd Bergmann arch/arm/configs/multi_v7_defconfig | 1 + 1 file changed, 1 insertion(+) commit 1dbba598b5c7128e50e2ed30398452f80f746448 Author: Javier Martinez Canillas Date: Tue May 19 13:12:33 2015 +0900 ARM: multi_v7_defconfig: Enable Cypress APA I2C Trackpad support The Cypress All Points Addressable (APA) I2C Trackpad is used in the Samsung Exynos 5250 Snow Chromebook. Build the driver as a module so the device is supported. Signed-off-by: Javier Martinez Canillas Reviewed-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim Signed-off-by: Arnd Bergmann arch/arm/configs/multi_v7_defconfig | 1 + 1 file changed, 1 insertion(+) commit 50bc2ad87c693e7fa1945ad0de91659c772858f0 Author: Javier Martinez Canillas Date: Tue May 19 13:11:49 2015 +0900 ARM: multi_v7_defconfig: Enable GPIO-based I2C arbitration support The I2C GPIO arbitration driver is used on the Exynos5250 Snow Chromebook to arbitrate the access to a I2C bus by the Application Processor or a EC. Signed-off-by: Javier Martinez Canillas Reviewed-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim Signed-off-by: Arnd Bergmann arch/arm/configs/multi_v7_defconfig | 1 + 1 file changed, 1 insertion(+) commit 56579f52aa37206d211263c253274896e99c6c28 Author: Javier Martinez Canillas Date: Tue May 19 13:10:05 2015 +0900 ARM: multi_v7_defconfig: Enable options for Exynos display support Many Exynos devices have devices attached to their display ports. This patch enables the needed Kconfig options to support different configuration such as simple panel, embedded DisplayPort (eDP) to LVDS bridges and HDMI displays. Signed-off-by: Javier Martinez Canillas Reviewed-by: Krzysztof Kozlowski [kgene@kernel.org: savedefconfig] Signed-off-by: Kukjin Kim Signed-off-by: Arnd Bergmann arch/arm/configs/multi_v7_defconfig | 6 ++++++ 1 file changed, 6 insertions(+) commit aaf8977ff417aeea05a7dae2bb3bd6e24feb7dfe Author: Javier Martinez Canillas Date: Tue May 19 13:07:57 2015 +0900 ARM: multi_v7_defconfig: Enable Samsung S3C SoC RTC The rtc-s3c driver supports a range of S3C series Real-Time-Clocks found on many Samsung SoCs. Build the driver as a module to support these RTC. Signed-off-by: Javier Martinez Canillas Reviewed-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim Signed-off-by: Arnd Bergmann arch/arm/configs/multi_v7_defconfig | 1 + 1 file changed, 1 insertion(+) commit 1cbdc6c1bd76618d16bc33f127414fb7364f4849 Author: Javier Martinez Canillas Date: Tue May 19 13:05:57 2015 +0900 ARM: multi_v7_defconfig: Enable Samsung PWM support Build the Generic PWM Samsung driver as a module to support PWM devices used in platforms with a Samsung SoC. Signed-off-by: Javier Martinez Canillas Reviewed-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim Signed-off-by: Arnd Bergmann arch/arm/configs/multi_v7_defconfig | 1 + 1 file changed, 1 insertion(+) commit c3e4b72db160c79b36a95b77da5956a1b7d7750c Author: Javier Martinez Canillas Date: Tue May 19 13:03:05 2015 +0900 ARM: multi_v7_defconfig: Enable support for missing ChromeOS EC drivers Enable the needed Kconfig options to have support for the ChromeOS EC I2C transport, I2C tunnel and chardev user-space interface. Signed-off-by: Javier Martinez Canillas Reviewed-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim Signed-off-by: Arnd Bergmann arch/arm/configs/multi_v7_defconfig | 4 ++++ 1 file changed, 4 insertions(+) commit 7de7c6717f2c80ba64292cfc537c893947115cae Author: Javier Martinez Canillas Date: Tue May 19 13:00:49 2015 +0900 ARM: multi_v7_defconfig: Enable Exynos USB PHY drivers support Enable the needed kconfig options to have support for Samsung USB 2.0 and USB 3.0 PHY drivers to support the USB PHYs found on Exynos SoCs. Signed-off-by: Javier Martinez Canillas Reviewed-by: Krzysztof Kozlowski [kgene@kernel.org: savedefconfig] Signed-off-by: Kukjin Kim Signed-off-by: Arnd Bergmann arch/arm/configs/multi_v7_defconfig | 1 + 1 file changed, 1 insertion(+) commit f3caa529c6f5db9a6f10891cfc6231ba6fe461ab Author: Javier Martinez Canillas Date: Tue May 19 12:56:37 2015 +0900 ARM: multi_v7_defconfig: Enable max77802 regulator, rtc and clock drivers The Maxim max77802 Power Management IC is used on many Exynos machines. Besides a bunch of regulators, this chip has a Real-Time-Clock (RTC) and 2-channel 32kHz clock outputs. Enable the kernel config options to have the drivers for these devices built as a module. Signed-off-by: Javier Martinez Canillas Reviewed-by: Krzysztof Kozlowski [kgene@kernel.org: removing useless REGULATOR_MAX77802 config] Signed-off-by: Kukjin Kim Signed-off-by: Arnd Bergmann arch/arm/configs/multi_v7_defconfig | 2 ++ 1 file changed, 2 insertions(+) commit eb2209b4a97ab5d751f0feaa223f222a7c4dc3e1 Author: Javier Martinez Canillas Date: Mon May 18 15:30:16 2015 +0900 ARM: multi_v7_defconfig: Enable support for Samsung S3C64XX SPI Build the spi-s3c64xx driver as a module to have support for the SPI controller in several Samsung SoCs. Signed-off-by: Javier Martinez Canillas Reviewed-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim Signed-off-by: Arnd Bergmann arch/arm/configs/multi_v7_defconfig | 1 + 1 file changed, 1 insertion(+) commit d0751b98dfa391f862e02dc36a233a54615e3f1d Author: Yijing Wang Date: Thu May 21 15:05:02 2015 +0800 PCI: Add dev->has_secondary_link to track downstream PCIe links A PCIe Port is an interface to a Link. A Root Port is a PCI-PCI bridge in a Root Complex and has a Link on its secondary (downstream) side. For other Ports, the Link may be on either the upstream (closer to the Root Complex) or downstream side of the Port. The usual topology has a Root Port connected to an Upstream Port. We previously assumed this was the only possible topology, and that a Downstream Port's Link was always on its downstream side, like this: +---------------------+ +------+ | Downstream | | Root | | Upstream Port +--Link-- | Port +--Link--+ Port | +------+ | Downstream | | Port +--Link-- +---------------------+ But systems do exist (see URL below) where the Root Port is connected to a Downstream Port. In this case, a Downstream Port's Link may be on either the upstream or downstream side: +---------------------+ +------+ | Upstream | | Root | | Downstream Port +--Link-- | Port +--Link--+ Port | +------+ | Downstream | | Port +--Link-- +---------------------+ We can't use the Port type to determine which side the Link is on, so add a bit in struct pci_dev to keep track. A Root Port's Link is always on the Port's secondary side. A component (Endpoint or Port) on the other end of the Link obviously has the Link on its upstream side. If that component is a Port, it is part of a Switch or a Bridge. A Bridge has a PCI or PCI-X bus on its secondary side, not a Link. The internal bus of a Switch connects the Port to another Port whose Link is on the downstream side. [bhelgaas: changelog, comment, cache "type", use if/else] Link: http://lkml.kernel.org/r/54EB81B2.4050904@pobox.com Link: https://bugzilla.kernel.org/show_bug.cgi?id=94361 Suggested-by: Bjorn Helgaas Signed-off-by: Yijing Wang Signed-off-by: Bjorn Helgaas drivers/pci/probe.c | 18 ++++++++++++++++++ include/linux/pci.h | 1 + 2 files changed, 19 insertions(+) commit 5f1b670d0bef508a5554d92525f5f6d00d640b38 Author: Christoph Hellwig Date: Fri May 22 09:14:04 2015 -0400 block, dm: don't copy bios for request clones Currently dm-multipath has to clone the bios for every request sent to the lower devices, which wastes cpu cycles and ties down memory. This patch instead adds a new REQ_CLONE flag that instructs req_bio_endio to not complete bios attached to a request, which we set on clone requests similar to bios in a flush sequence. With this change I/O errors on a path failure only get propagated to dm-multipath, which can then either resubmit the I/O or complete the bios on the original request. I've done some basic testing of this on a Linux target with ALUA support, and it survives path failures during I/O nicely. Signed-off-by: Christoph Hellwig Signed-off-by: Mike Snitzer Signed-off-by: Jens Axboe block/blk-core.c | 94 +++---------------------- drivers/md/dm-table.c | 25 ++++--- drivers/md/dm.c | 171 +++++++++++----------------------------------- drivers/md/dm.h | 5 +- include/linux/blk_types.h | 2 + include/linux/blkdev.h | 6 +- 6 files changed, 73 insertions(+), 230 deletions(-) commit 326e1dbb57368087a36607aaebe9795b8d5453e5 Author: Mike Snitzer Date: Fri May 22 09:14:03 2015 -0400 block: remove management of bi_remaining when restoring original bi_end_io Commit c4cf5261 ("bio: skip atomic inc/dec of ->bi_remaining for non-chains") regressed all existing callers that followed this pattern: 1) saving a bio's original bi_end_io 2) wiring up an intermediate bi_end_io 3) restoring the original bi_end_io from intermediate bi_end_io 4) calling bio_endio() to execute the restored original bi_end_io The regression was due to BIO_CHAIN only ever getting set if bio_inc_remaining() is called. For the above pattern it isn't set until step 3 above (step 2 would've needed to establish BIO_CHAIN). As such the first bio_endio(), in step 2 above, never decremented __bi_remaining before calling the intermediate bi_end_io -- leaving __bi_remaining with the value 1 instead of 0. When bio_inc_remaining() occurred during step 3 it brought it to a value of 2. When the second bio_endio() was called, in step 4 above, it should've called the original bi_end_io but it didn't because there was an extra reference that wasn't dropped (due to atomic operations being optimized away since BIO_CHAIN wasn't set upfront). Fix this issue by removing the __bi_remaining management complexity for all callers that use the above pattern -- bio_chain() is the only interface that _needs_ to be concerned with __bi_remaining. For the above pattern callers just expect the bi_end_io they set to get called! Remove bio_endio_nodec() and also remove all bio_inc_remaining() calls that aren't associated with the bio_chain() interface. Also, the bio_inc_remaining() interface has been moved local to bio.c. Fixes: c4cf5261 ("bio: skip atomic inc/dec of ->bi_remaining for non-chains") Reviewed-by: Christoph Hellwig Reviewed-by: Jan Kara Signed-off-by: Mike Snitzer Signed-off-by: Jens Axboe block/bio-integrity.c | 4 ++-- block/bio.c | 35 ++++++++++++++--------------------- drivers/md/bcache/io.c | 2 +- drivers/md/dm-cache-target.c | 6 ------ drivers/md/dm-raid1.c | 2 -- drivers/md/dm-snap.c | 1 - drivers/md/dm-thin.c | 9 +++------ drivers/md/dm-verity.c | 2 +- fs/btrfs/disk-io.c | 2 +- fs/btrfs/volumes.c | 16 +++++----------- fs/btrfs/volumes.h | 2 -- include/linux/bio.h | 12 ------------ 12 files changed, 27 insertions(+), 66 deletions(-) commit 4737130e670e0dac9ec783f4d56a7c34780bf725 Author: Stefan Agner Date: Thu May 21 00:38:21 2015 +0200 ARM: add ARM_SINGLE_ARMV7M in ARMv7-M defconfigs Select ARM_SINGLE_ARMV7M in defconfigs of the converted ARMv7-M platforms. [arnd: moved the efm32_defconfig change to the patch that originally introduces the symbol, to avoid intermittent regression] Signed-off-by: Stefan Agner Signed-off-by: Arnd Bergmann arch/arm/configs/efm32_defconfig | 1 - arch/arm/configs/lpc18xx_defconfig | 1 + arch/arm/configs/stm32_defconfig | 1 + 3 files changed, 2 insertions(+), 1 deletion(-) commit 499f164020786a721e96a114c2715e2c8e2a89d9 Author: Stefan Agner Date: Thu May 21 00:35:44 2015 +0200 ARM: use ARM_SINGLE_ARMV7M for ARMv7-M platforms Use the new config symbol ARM_SINGLE_ARMV7M which groups config symbols used by modern ARMv7-M platforms. This allows supporting multiple ARMv7-M platforms in one kernel image. However, a common kernel image requires the combined platforms to share the same main memory layout to be bootable. Signed-off-by: Stefan Agner Acked-by: Uwe Kleine-König Acked-by: Joachim Eastwood Acked-by: Maxime Coquelin Signed-off-by: Arnd Bergmann arch/arm/Kconfig | 86 ++++++++++++++-------------------------- arch/arm/Kconfig.debug | 5 +-- arch/arm/configs/efm32_defconfig | 1 + 3 files changed, 33 insertions(+), 59 deletions(-) commit 247de694349c2eeea11b8d8936541f5012a09318 Author: Sakari Ailus Date: Fri May 22 00:03:38 2015 +0300 PCI: Add function 1 DMA alias quirk for Marvell 9120 Marvell 9120 SATA controller has the same issue as a number of others, so use the same quirk for this one. The other quirks were added by cc346a4714a5 ("PCI: Add function 1 DMA alias quirk for Marvell devices"). Signed-off-by: Sakari Ailus Signed-off-by: Bjorn Helgaas Acked-by: Alex Williamson drivers/pci/quirks.c | 2 ++ 1 file changed, 2 insertions(+) commit 993198a641a8feedcb2186f201dac0717d299152 Author: Arnd Bergmann Date: Thu May 21 10:36:42 2015 +0200 ARM: zx: fix building with CONFIG_THUMB2_KERNEL The newly added zx platform causes a build error when CONFIG_THUMB2_KERNEL is enabled: arch/arm/mach-zx/headsmp.S:16: Error: invalid immediate for address calculation (value = 0x00000004) I'm assuming that the ROM code that is calling these entry points runs in ARM mode, so there would be another problem in the same file, and we can solve both problems at once by adding a '.arm' statement that will make zx_resume_jump and zx_secondary_startup both be built as ARM code. Signed-off-by: Arnd Bergmann Acked-by: Jun Nie Tested-by: Jun Nie arch/arm/mach-zx/headsmp.S | 1 + 1 file changed, 1 insertion(+) commit d7c82daf4fbf3692ef4b2fd2056221733599ce5b Merge: 2ed2558 196b44e Author: Arnd Bergmann Date: Fri May 22 16:39:20 2015 +0200 Merge tag 'at91-cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux into next/cleanup Merge "First batch of cleanup for 4.2" from Alexandre Belloni: - use syscon in the ata and cf drivers to configure the SMC and drop sam9_smc.c - switch the at91rm9200 memory controller to syscon - remove last useless headers - remove now useless Makefile.boot * tag 'at91-cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux: ARM: at91: remove useless Makefile.boot ARM: at91: remove at91rm9200_sdramc.h ARM: at91: remove mach/at91_ramc.h and mach/at91rm9200_mc.h ARM: at91/pm: use the atmel-mc syscon defines pcmcia: at91_cf: Use syscon to configure the MC/smc ARM: at91: declare the at91rm9200 memory controller as a syscon mfd: syscon: Add Atmel MC (Memory Controller) registers definition ARM: at91: drop sam9_smc.c ata: at91: use syscon to configure the smc commit 2ed25580870190b26b0add8a3dc58dfaf5bed8cb Merge: cbdf76a fd0dbc8 Author: Arnd Bergmann Date: Fri May 22 16:37:35 2015 +0200 Merge tag 'omap-for-v4.2/clean' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/cleanup Merge "Clean-up for omaps for v4.2 merge window" from Tony Lindgren: Drop more omap3 legacy board-*.c files for v4.2. This time we're dropping the board files for beagle, overo and cm-t35. The reason for dropping these now rather than later is that now we can simply revert the patches in case of unexpected issues as we are not dropping any platform data at this point. This leaves us with only the following board-*.c files: BOARD REASON NEEDED board-ldp.c Still used in RMKs boot test system board-omap3logic.c Getting a .dts file for v4.2 board-omap3pandora.c Got a .dts file for v4.1 board-rx51-*.c Needs /proc/atags support for user space I'm hoping we can drop the remaining board-*.c for v4.3 merge window, then keep the platform data around for one more merge window in case of reverting needed, then drop the platform data too for v4.4 if no issues needing reverting are found. Also, few patches to clean-up the usage of Linux generic macros: - Use define for console loglevel - Use const for struct irq_domain_ops - Use PTR_ERR_OR_ZERO instead of PTR_RET * tag 'omap-for-v4.2/clean' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: mach-omap2: Remove use of deprecated marco, PTR_RET in devices.c ARM: OMAP2+: Remove calls to deprecacted marco,PTR_RET in the files,fb.c and pmu.c ARM: OMAP2+: Constify irq_domain_ops ARM: OMAP2+: use symbolic defines for console loglevels instead of numbers ARM: OMAP2+: Remove legacy booting support for Beagleboards ARM: OMAP2+: Remove legacy booting support for Overo ARM: OMAP2+: Remove legacy booting support for cm-t35 commit d29ec8241c10eacf59c23b3828a88dbae06e7e3f Author: Christoph Hellwig Date: Fri May 22 11:12:46 2015 +0200 nvme: submit internal commands through the block layer Use block layer queues with an internal cmd_type to submit internally generated NVMe commands. This both simplifies the code a lot and allow for a better structure. For example now the LighNVM code can construct commands without knowing the details of the underlying I/O descriptors. Or a future NVMe over network target could inject commands, as well as could the SCSI translation and ioctl code be reused for such a beast. Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe drivers/block/nvme-core.c | 399 +++++++++++++++++++------------------------ drivers/block/nvme-scsi.c | 422 +++++++++++++--------------------------------- include/linux/nvme.h | 24 +-- 3 files changed, 300 insertions(+), 545 deletions(-) commit 772ce43559e076730ddff5907fabcb3485545e38 Author: Christoph Hellwig Date: Fri May 22 11:12:45 2015 +0200 nvme: fail SCSI read/write command with unsupported protection bit Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe drivers/block/nvme-scsi.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 908517684807f3b3d93893da78c7906f5ff2c49b Author: Christoph Hellwig Date: Fri May 22 11:12:44 2015 +0200 nvme: report the DPOFUA in MODE_SENSE NVMe device always support the FUA bit, and the SCSI translations accepts the DPO bit, which doesn't have much of a meaning for us. Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe drivers/block/nvme-scsi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit cbbb7a2ec6001a0c15297c85184c9cc7fae5f11e Author: Christoph Hellwig Date: Fri May 22 11:12:43 2015 +0200 nvme: simplify and cleanup the READ/WRITE SCSI CDB parsing code Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe drivers/block/nvme-scsi.c | 78 +++++++++++++++-------------------------------- 1 file changed, 24 insertions(+), 54 deletions(-) commit 3726897efde1d7a43b6f966ab81b0c143a176556 Author: Christoph Hellwig Date: Fri May 22 11:12:42 2015 +0200 nvme: first round at deobsfucating the SCSI translation code Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe drivers/block/nvme-scsi.c | 326 ++++++++++++---------------------------------- 1 file changed, 82 insertions(+), 244 deletions(-) commit e61b0a86cac83c3bf501705c8d52a0a29cecf091 Author: Christoph Hellwig Date: Fri May 22 11:12:41 2015 +0200 nvme: fix scsi translation error handling Erorr handling for the scsi translation was completely broken, as there were two different positive error number spaces overlapping. Fix this up by removing one of them, and centralizing the generation of the other positive values in a single place. Also fix up a few places that didn't handle the NVMe error codes properly. Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe drivers/block/nvme-scsi.c | 378 ++++++++++++++++------------------------------ 1 file changed, 127 insertions(+), 251 deletions(-) commit b90c48d0c11efe373a42a60e66e2ac2a503c287b Author: Christoph Hellwig Date: Fri May 22 11:12:40 2015 +0200 nvme: split nvme_trans_send_fw_cmd This function handles two totally different opcodes, so split it. Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe drivers/block/nvme-scsi.c | 93 ++++++++++++++++++++++++----------------------- 1 file changed, 47 insertions(+), 46 deletions(-) commit e75ec752d725b7b612c0b2db1bca50a9e53c0879 Author: Christoph Hellwig Date: Fri May 22 11:12:39 2015 +0200 nvme: store a struct device pointer in struct nvme_dev Most users want the generic device, so store that in struct nvme_dev instead of the pci_dev. This also happens to be a nice step towards making some code reusable for non-PCI transports. Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe drivers/block/nvme-core.c | 110 ++++++++++++++++++++++------------------------ drivers/block/nvme-scsi.c | 63 +++++++++++--------------- include/linux/nvme.h | 2 +- 3 files changed, 79 insertions(+), 96 deletions(-) commit f705f837c58ebe1ea69dfffff4dcc234e2fbc8dd Author: Christoph Hellwig Date: Fri May 22 11:12:38 2015 +0200 nvme: consolidate synchronous command submission helpers Note that we keep the unused timeout argument, but allow callers to pass 0 instead of a timeout if they want the default. This will allow adding a timeout to the pass through path later on. Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe drivers/block/nvme-core.c | 96 ++++++++++++++++------------------------------- drivers/block/nvme-scsi.c | 17 ++++----- include/linux/nvme.h | 6 +-- 3 files changed, 42 insertions(+), 77 deletions(-) commit ac0b20926d73ad50e72bfc503026fee6bef73b2a Merge: a452691 7bf15c4 Author: Arnd Bergmann Date: Fri May 22 16:34:06 2015 +0200 Merge tag 'omap-for-v4.2/omap1-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/soc Merge fixed up omap1 sparse irq support for v4.2 from Tony Lindgren: Add support for CONFIG_SPARSE_IRQ for omap1. This takes us a bit closer to making omap1 support multiarch. After this series we still need to make omap1 use the common clock framework and fix up the drivers to not rely on includes from mach and plat directories. Note that this branch depends on a GPIO driver fix in v4.1-rc3 d2d05c65c40e ("gpio: omap: Fix regression for MPUIO interrupts"). * tag 'omap-for-v4.2/omap1-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: OMAP1: Fix section mismatch warnings for omap_cfg_reg ARM: OMAP1: Fix randconfig builds if ARCH_OMAP15XX not selected ARM: OMAP1: Change interrupt numbering for sparse IRQ ARM: omap1: Switch to use MULTI_IRQ ARM: OMAP1: Switch to use generic irqchip in preparation for sparse IRQ ARM: OMAP1: Move UART defines to prepare for sparse IRQ commit a4526915b67afb09c60bece6bc395e58ba83e271 Merge: 8064887 ed5cd81 Author: Arnd Bergmann Date: Fri May 22 16:32:02 2015 +0200 Merge tag 'arm-soc/for-4.2/soc-take2' of http://github.com/broadcom/stblinux into next/soc Merge mach-bcm changes from Florian Fainelli: This pull request contains the following changes: - Rafal adds an additional fault code to be ignored by the kernel on BCM5301X SoC - BCM63138 SMP support which: * common code to control the PMB bus, to be shared with a reset controller driver in drivers/reset * secondary CPU initialization sequence using PMB helpers * small changes suggested by Russell King to allow platforms to disable VFP * tag 'arm-soc/for-4.2/soc-take2' of http://github.com/broadcom/stblinux: ARM: BCM63xx: Add SMP support for BCM63138 ARM: vfp: Add vfp_disable for problematic platforms ARM: vfp: Add include guards ARM: BCM63xx: Add secondary CPU PMB initialization sequence ARM: BCM63xx: Add Broadcom BCM63xx PMB controller helpers ARM: BCM5301X: Ignore another (BCM4709 specific) fault code commit e2f5d2ea479b9b2619965d43db70939589afe43a Author: Daniel Stone Date: Fri May 22 13:34:51 2015 +0100 drm/mode: Add user blob-creation ioctl Add an ioctl which allows users to create blob properties from supplied data. Currently this only supports modes, creating a drm_display_mode from the userspace drm_mode_modeinfo. v2: Removed size/type checks. Rebased on new patches to allow error propagation from create_blob, as well as avoiding double-allocation. Signed-off-by: Daniel Stone Reviewed-by: Maarten Lankhorst Tested-by: Sean Paul Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_crtc.c | 139 +++++++++++++++++++++++++++++++++++++++++++- drivers/gpu/drm/drm_fops.c | 5 +- drivers/gpu/drm/drm_ioctl.c | 2 + include/drm/drmP.h | 4 ++ include/drm/drm_crtc.h | 9 ++- include/uapi/drm/drm.h | 2 + include/uapi/drm/drm_mode.h | 20 +++++++ 7 files changed, 176 insertions(+), 5 deletions(-) commit 10e8cb7e79391071b950a28a4d85790dd38fb714 Author: Daniel Stone Date: Fri May 22 13:34:50 2015 +0100 drm: Return error value from blob creation Change drm_property_create_blob to return an ERR_PTR-encoded error on failure, so we can pass the failure reason down. Signed-off-by: Daniel Stone Cc: Maarten Lankhorst Tested-by: Sean Paul Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_crtc.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) commit 99531d9bb76c649df15311c717deefdff7cc5b7b Author: Daniel Stone Date: Fri May 22 13:34:49 2015 +0100 drm: Allow creating blob properties without copy Make the data parameter to drm_property_create_blob optional; if omitted, the copy will be skipped and the data will be empty. Signed-off-by: Daniel Stone Reviewed-by: Maarten Lankhorst Tested-by: Sean Paul Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_crtc.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) commit 934a8a899a7275ed187810fe9a15a93397e88c6b Author: Daniel Stone Date: Fri May 22 13:34:48 2015 +0100 drm/mode: Unstatic kernel-userspace mode conversion Move the drm_display_mode <-> drm_mode_modeinfo conversion functions from drm_crtc.c to drm_modes.c, and make them non-static so that others can use them. Signed-off-by: Daniel Stone Tested-by: Sean Paul Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_crtc.c | 95 ++------------------------------------------- drivers/gpu/drm/drm_modes.c | 87 +++++++++++++++++++++++++++++++++++++++++ include/drm/drm_modes.h | 4 ++ 3 files changed, 95 insertions(+), 91 deletions(-) commit 7dec9a9648f825a0698fd875d2834b597f122bd6 Author: Daniel Stone Date: Fri May 22 13:34:47 2015 +0100 drm/mode: Validate modes inside drm_crtc_convert_umode The only user of convert_umode was also performing mode validation, so do that in the same place. Signed-off-by: Daniel Stone Tested-by: Sean Paul Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_crtc.c | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) commit 9f658b7b62e7aefc1ee067136126eca3f58cabfd Author: Daniel Stone Date: Fri May 22 13:34:45 2015 +0100 drm/crtc_helper: Replace open-coded CRTC state helpers Rather than open-coding our own CRTC state helpers, use the atomic helpers added in f5e7840b0c, and make our freeing behaviour consistent as well. Signed-off-by: Daniel Stone Tested-by: Sean Paul Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_crtc_helper.c | 42 ++++++++++++++++++--------------------- 1 file changed, 19 insertions(+), 23 deletions(-) commit f102c16ebbeb40ba2f2a7ba4703ed3e2fc013c68 Author: Daniel Stone Date: Fri May 22 13:34:44 2015 +0100 drm: kerneldoc fixes for blob properties Change '@param foo' to '@foo:' to fit kerneldoc style. 672cb1d6ae mistakenly added an extra parameter to the kerneldoc for drm_property_unreference_blob which wasn't actually present. Signed-off-by: Daniel Stone Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_crtc.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit 181a152a09ccbf977ea69405cde4d87b5585de6c Merge: 6ab97f2 9203dd0 Author: Takashi Iwai Date: Fri May 22 16:04:45 2015 +0200 Merge branch 'topic/hdmi' into for-next commit 9203dd016a5d8ffb2eb6acdca60cd0b5dfe38c2b Author: Russell King Date: Sat May 9 11:26:47 2015 +0100 ALSA: pcm: add IEC958 channel status helper Add a helper to create the IEC958 channel status from an ALSA snd_pcm_runtime structure, taking account of the sample rate and sample size. Signed-off-by: Russell King Reviwed-by: Mark Brown Signed-off-by: Takashi Iwai include/sound/pcm_iec958.h | 9 +++++ sound/core/Kconfig | 3 ++ sound/core/Makefile | 1 + sound/core/pcm_iec958.c | 95 ++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 108 insertions(+) commit 838d1631b766529213684f07dd71cdf2e92f0623 Author: Russell King Date: Sat May 9 11:26:42 2015 +0100 ALSA: pcm: add DRM ELD helper Add a helper for the EDID like data structure, which is typically passed from a HDMI adapter to its associated audio driver. This informs the audio driver of the capabilities of the attached HDMI sink. Signed-off-by: Russell King Reviewed-by: Mark Brown Signed-off-by: Takashi Iwai include/sound/pcm_drm_eld.h | 6 +++ sound/core/Kconfig | 3 ++ sound/core/Makefile | 1 + sound/core/pcm_drm_eld.c | 99 +++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 109 insertions(+) commit 672bfdaa310004368a0d493478e2a40f2f2f914f Author: Arnd Bergmann Date: Fri May 22 13:06:35 2015 +0200 usb: renesas_usbhs: avoid uninitialized variable use After the renesas_usbhs driver is enabled in ARM multi_v7_defconfig, we now get a new warning: renesas_usbhs/mod.c: In function 'usbhs_interrupt': renesas_usbhs/mod.c:246:7: warning: 'intenb1' may be used uninitialized in this function [-Wmaybe-uninitialized] gcc correctly points to a problem here, for the case that the device is in host mode, we use the intenb1 variable without having assigned it first. The state->intsts1 has a similar problem, but gcc cannot know that. This avoids the problem by initializing both sides of the comparison to zero when we don't read them from the respective registers. Signed-off-by: Arnd Bergmann Fixes: 88a25e02f3 ("usb: renesas_usbhs: Add access control for INTSTS1 and INTENB1 register") Acked-by: Yoshihiro Shimoda Signed-off-by: Felipe Balbi drivers/usb/renesas_usbhs/mod.c | 2 ++ 1 file changed, 2 insertions(+) commit 02299d9875bab5b1e9d87ce9ae4aecf537eb12a4 Author: Kuninori Morimoto Date: Thu May 21 03:50:23 2015 +0000 ASoC: rsnd: spin lock for interrupt handler Renesas R-Car driver interrupt handler was not locked before. But now, SSI/SRC interrupt handler calls restart function which should be called under spin lock. Below error might happen witout this patch. Unable to handle kernel NULL pointer dereference at virtual address 00000048 pgd = edfac000 [00000048] *pgd=6e0f0831, *pte=00000000, *ppte=00000000 Internal error: Oops: 17 [#1] SMP ARM CPU: 0 PID: 2009 Comm: aplay Not tainted 4.1.0-rc2-dirty #4 Hardware name: Generic R8A7790 (Flattened Device Tree) task: eeac9040 ti: eebe8000 task.ti: eebe8000 PC is at rsnd_get_adinr+0x28/0x60 LR is at rsnd_src_ssiu_start+0xdc/0x19c pc : [] lr : [] psr: a0000193 sp : eebe9e58 ip : eebe9e68 fp : eebe9e64 r10: c06ed9d0 r9 : ee919d10 r8 : 00000001 r7 : 00000001 r6 : ee1cb090 r5 : 00000000 r4 : edcaa418 r3 : 00000000 r2 : eea8ce00 r1 : 80000193 r0 : edcaa418 ... Reported-by: Cao Minh Hiep Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Tested by: Cao Minh Hiep Signed-off-by: Mark Brown sound/soc/sh/rcar/core.c | 12 ++++++++++-- sound/soc/sh/rcar/rsnd.h | 3 +-- sound/soc/sh/rcar/src.c | 11 ++++++++--- sound/soc/sh/rcar/ssi.c | 14 +++++++++++--- 4 files changed, 30 insertions(+), 10 deletions(-) commit e8a07d60c932efbd44bee50e3fa95f133b8c28be Merge: b723550 d23c9a0 Author: Mark Brown Date: Fri May 22 14:15:16 2015 +0100 Merge branch 'topic/rcar-dma' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-rcar commit d23c9a0a5c237210bccb82a2e9dc0d26e75920ee Author: Kuninori Morimoto Date: Thu May 21 03:48:38 2015 +0000 dmaengine: rcar-dmac: fixup spinlock in rcar-dmac Current rcar-dmac driver is using spin_lock_irq() / spin_unlock_irq() in some functions. But, some other driver might call DMAEngine API during interrupt disabled. In such case, rcar-dmac side spin_unlock_irq() forcefully allows all interrupts. Therefore, other driver receives unexpected interruption, and its exclusive access control will be broken. This patch replaces spin_lock_irq() to spin_lock_irqsave(), and spin_unlock_irq() to spin_unlock_irqrestore(). Reported-by: Cao Minh Hiep Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Acked-by: Vinod Koul Signed-off-by: Mark Brown drivers/dma/sh/rcar-dmac.c | 37 +++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 16 deletions(-) commit b723550d7e84b6b59d427d560be49d8ab177ea89 Author: Kuninori Morimoto Date: Tue May 12 02:03:51 2015 +0000 ASoC: rsnd: rsrc-card uses FE/BE merged format when DPCM Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown sound/soc/sh/rcar/rsrc-card.c | 1 + 1 file changed, 1 insertion(+) commit 96a5d3f017dbbb3947f701984f729249fc0f49a8 Merge: 5626ad0 b073ed4 Author: Mark Brown Date: Fri May 22 14:12:56 2015 +0100 Merge branch 'topic/dpcm' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-rcar commit dd0150026901b3fc73bd76bb423bacf5cc10393d Author: Heiko Schocher Date: Fri May 22 10:25:57 2015 +0200 drm/panel: simple: Add support for LG LB070WV8 800x480 7" panel This adds support for the LG LB070WV8 7" 800x480 panel to the DRM simple panel driver. Signed-off-by: Heiko Schocher Signed-off-by: Thierry Reding .../devicetree/bindings/panel/lg,lb070wv8.txt | 7 ++++++ drivers/gpu/drm/panel/panel-simple.c | 27 ++++++++++++++++++++++ 2 files changed, 34 insertions(+) commit 69eb0980ab4ced06f7c2b4774575337ce32912fb Author: Laxman Dewangan Date: Thu Apr 23 16:10:24 2015 +0530 regulator: max8973: add mechanism to enable/disable through GPIO MAX8973 supports the voltage output enable/disable through its EN pin. This EN pin can be connected through GPIO from host processor. Add support to provide GPIO number from platform/DT and if it is valid GPIO then enable external control default. Signed-off-by: Laxman Dewangan Signed-off-by: Mark Brown .../bindings/regulator/max8973-regulator.txt | 2 ++ drivers/regulator/max8973-regulator.c | 29 +++++++++++++++++----- include/linux/regulator/max8973-regulator.h | 4 +++ 3 files changed, 29 insertions(+), 6 deletions(-) commit c2ffa9737878ad9843d1e0e904dc9a086438aff8 Author: Laxman Dewangan Date: Thu Apr 23 16:10:23 2015 +0530 regulator: max8973: add DT parsing of platform specific parameter There are some platform specific parameter required to configure the device like enable external control, DVS gpio etc. Add DT parsing of such properties to make platform specific data. Update DT binding doc accordingly. Signed-off-by: Laxman Dewangan Signed-off-by: Mark Brown .../bindings/regulator/max8973-regulator.txt | 14 ++++ drivers/regulator/max8973-regulator.c | 85 +++++++++++++++++----- 2 files changed, 79 insertions(+), 20 deletions(-) commit a60abdf93b6935d523874badee62f538739d055c Author: Maciej S. Szmigiero Date: Sun May 10 00:12:04 2015 +0200 ASoC: ac97: make selectable in config Make generic ASoC AC'97 CODEC selectable in config. This way this driver can be used for platforms which don't need specialized AC'97 CODEC drivers but which are not directly selectable in config themselves (for example DT based ones). Signed-off-by: Maciej Szmigiero Signed-off-by: Mark Brown sound/soc/codecs/Kconfig | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit b073ed4e21268da59c40a4fc5d56e3af808ecc4d Author: Kuninori Morimoto Date: Tue May 12 02:03:33 2015 +0000 ASoC: soc-pcm: DPCM cares BE format Current DPCM is caring only FE format. but it will be no sound if FE/BE was below style, and user selects S24_LE format. FE: S16_LE/S24_LE BE: S16_LE DPCM can rewrite the format, so basically we don't want to constrain with the BE constraints. But sometimes it will be trouble. This patch adds new .dpcm_merged_format on struct snd_soc_dai_link. DPCM will use FE / BE merged format if .struct snd_soc_dai_link has it. We can have other .dpcm_merged_xxx in the future .dpcm_merged_foramt .dpcm_merged_rate .dpcm_merged_chan Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown include/sound/soc.h | 3 +++ sound/soc/soc-pcm.c | 47 ++++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 45 insertions(+), 5 deletions(-) commit b202836a548c1985137b5b648a4afe3cc5959f4b Author: Srinivas Kandagatla Date: Thu May 21 22:53:45 2015 +0100 ASoC: qcom: Document apq8016 bindings. This patch updates lpass bindings with apq8016 specific bindings. Tested-by: Kenneth Westfield Acked-by: Kenneth Westfield Signed-off-by: Srinivas Kandagatla Signed-off-by: Mark Brown Documentation/devicetree/bindings/sound/qcom,lpass-cpu.txt | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) commit 89cdfa06d9fdaa97e8c6c688383e4f38310d1e92 Author: Srinivas Kandagatla Date: Thu May 21 22:53:21 2015 +0100 ASoC: qcom: add bit map to track static dma channel allocations This patch adds dma channel bit mask to lpass data to keep track of dma channel allocations. This flag would be used in apq8016 lpass driver. Tested-by: Kenneth Westfield Acked-by: Kenneth Westfield Signed-off-by: Srinivas Kandagatla Signed-off-by: Mark Brown sound/soc/qcom/lpass.h | 3 +++ 1 file changed, 3 insertions(+) commit 4f629e4b8705fb02e9618ca257fb077f0022921b Author: Srinivas Kandagatla Date: Thu May 21 22:53:14 2015 +0100 ASoC: qcom: Add ability to handle interrupts per dma channel This patch adds ablity to lpass driver to handle interrupt per dma channel. Without this patch its not possible to use multipl ports on the lpass. Tested-by: Kenneth Westfield Acked-by: Kenneth Westfield Signed-off-by: Srinivas Kandagatla Signed-off-by: Mark Brown sound/soc/qcom/lpass-platform.c | 94 ++++++++++++++++++++++++++--------------- sound/soc/qcom/lpass.h | 4 ++ 2 files changed, 63 insertions(+), 35 deletions(-) commit 0054055c590ae5ca69f027d42cf171493476f6d8 Author: Srinivas Kandagatla Date: Thu May 21 22:53:05 2015 +0100 ASoC: qcom: add dma channel control offset to variant data This patch adds ability to pass dma channel control bits start offset, which differ in differnet qcom SOCs. On apq8016 dma channel control bits start after an offset of 1. Tested-by: Kenneth Westfield Acked-by: Kenneth Westfield Signed-off-by: Srinivas Kandagatla Signed-off-by: Mark Brown sound/soc/qcom/lpass-platform.c | 2 +- sound/soc/qcom/lpass.h | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) commit 3e53ac8230c1af075402bb3c1c89777791c2055e Author: Srinivas Kandagatla Date: Thu May 21 22:52:57 2015 +0100 ASoC: qcom: make osr clock optional Some LPASS integrations like on APQ8016 do not have OSR clk, so making osr clk optional would allow such integrations to use lpass driver. Tested-by: Kenneth Westfield Acked-by: Kenneth Westfield Signed-off-by: Srinivas Kandagatla Signed-off-by: Mark Brown sound/soc/qcom/lpass-cpu.c | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) commit 9a127cff91e43af807c96ca4ec7c855d382cc23d Author: Srinivas Kandagatla Date: Thu May 21 22:52:49 2015 +0100 ASoC: qcom: support bitclk and osrclk per i2s port This patch adds support to allow bitclk and osrclk per i2s dai port. on APQ8016 there are 4 i2s ports each one has its own bit clks. Without this patch its not possible to support multiple i2s ports in the lpass driver. Tested-by: Kenneth Westfield Acked-by: Kenneth Westfield Signed-off-by: Srinivas Kandagatla Signed-off-by: Mark Brown sound/soc/qcom/lpass-cpu.c | 60 ++++++++++++++++++++++++++++++---------------- sound/soc/qcom/lpass.h | 5 ++-- 2 files changed, 43 insertions(+), 22 deletions(-) commit 0d486806ffd0de672f151763b38c19c0a357bf56 Author: Brian Norris Date: Wed May 20 17:18:40 2015 -0700 phy: add Broadcom SATA3 PHY driver for Broadcom STB SoCs Supports up to two ports which can each be powered on/off and configured independently. Signed-off-by: Brian Norris Signed-off-by: Kishon Vijay Abraham I drivers/phy/Kconfig | 9 ++ drivers/phy/Makefile | 1 + drivers/phy/phy-brcmstb-sata.c | 216 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 226 insertions(+) commit 5972edbd8386020347656a37dc014ae838a0adff Author: Brian Norris Date: Tue May 12 16:28:20 2015 -0700 Documentation: devicetree: add Broadcom SATA PHY binding For 28nm STB chips, based on BCM7445. Signed-off-by: Brian Norris Signed-off-by: Kishon Vijay Abraham I .../bindings/phy/brcm,brcmstb-sata-phy.txt | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit a2f776cbb8271d7149784207da0b0c51e8b1847c Author: Srinivas Kandagatla Date: Thu May 21 17:42:54 2015 +0100 regmap: Introduce regmap_get_reg_stride This patch introduces regmap_get_reg_stride() function which would be used by the infrastructures like nvmem framework built on top of regmap. Mostly this function would be used for sanity checks on inputs within such infrastructure. Signed-off-by: Srinivas Kandagatla Signed-off-by: Mark Brown drivers/base/regmap/regmap.c | 12 ++++++++++++ include/linux/regmap.h | 7 +++++++ 2 files changed, 19 insertions(+) commit 668abc729fcb9d034eccadf63166d2c76cd645d1 Author: Srinivas Kandagatla Date: Thu May 21 17:42:43 2015 +0100 regmap: Introduce regmap_get_max_register This patch introduces regmap_get_max_register() function which would be used by the infrastructures like nvmem framework built on top of regmap. Signed-off-by: Srinivas Kandagatla Signed-off-by: Mark Brown drivers/base/regmap/regmap.c | 12 ++++++++++++ include/linux/regmap.h | 7 +++++++ 2 files changed, 19 insertions(+) commit 7cc24b169fa176618c654e50cb27640b75fe68d6 Author: kbuild test robot Date: Fri May 22 07:12:27 2015 +0800 ASoC: qcom: ipq806x_lpass_alloc_dma_channel() can be static Signed-off-by: Fengguang Wu Signed-off-by: Mark Brown sound/soc/qcom/lpass-ipq806x.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 48f4ca34f36bb947d8a7cd4ff8c8e282f14d51e6 Author: Michal Kazior Date: Tue May 19 14:09:34 2015 +0200 ath10k: add new 4addr related fw_feature Some firmware revisions pad 4th hw address in Native Wifi Rx decap. This is the case with 10.x and it was assumed that this is true for all firmware images. However QCA988X with 999.999.0.636 and QCA61X4 with WLAN.RM.2.0-00088 don't have the padding. Hence add a feature flag indicating that the padding isn't present so firmware images can advertise it appropriately. This way driver will behave as it was before with old firmware blobs and doesn't cause any regressions from user perspective. Effectively this patch enables QCA988X with 999.999.0.636 and QCA61X4 with WLAN.RM.2.0-00088 to set up client bridging provided user has an updated firmware blob. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.h | 5 +++++ drivers/net/wireless/ath/ath10k/htt_rx.c | 14 ++++++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) commit 77258d409ce45890104e3da11d0261402c49aee1 Author: Michal Kazior Date: Mon May 18 09:38:18 2015 +0000 ath10k: enable pci soc powersaving By using SOC_WAKE register it is possible to bring down power consumption of QCA61X4 from 36mA to 16mA when associated and idle. Currently the sleep threshold/grace period is at a very conservative value of 60ms. Contrary to QCA61X4 the QCA988X firmware doesn't have Rx/beacon filtering available for client mode and SWBA events are used for beaconing in AP/IBSS so the SoC needs to be woken up at least every ~100ms in most cases. This means that QCA988X is at a disadvantage and the power consumption won't drop as much as for QCA61X4. Due to putting irq-safe spinlocks on every MMIO read/write it is expected this can cause a little performance regression on some systems. I haven't done any thorough measurements but some of my tests don't show any extreme degradation. The patch removes some explicit pci_wake calls that were added in 320e14b8db51aa ("ath10k: fix some pci wake/sleep issues"). This is safe because all MMIO accesses are now wrapped and the device is woken up automatically if necessary. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/debug.h | 1 + drivers/net/wireless/ath/ath10k/pci.c | 304 +++++++++++++++++++++++--------- drivers/net/wireless/ath/ath10k/pci.h | 89 +++++----- 3 files changed, 260 insertions(+), 134 deletions(-) commit 917826be9f46b13604fdfc9954dd9ce69dea93f3 Author: Janusz Dziedzic Date: Mon May 18 09:38:17 2015 +0000 ath10k: fix idle power consumption mac80211 can update vif powersave state while disconnected. Firmware doesn't behave nicely and consumes more power than necessary if PS is disabled on a non-started vdev. Hence force-enable PS for non-running vdevs. This reduces power drain on QCA61X4 from 88mA to 36mA when interface is up and not associated. QCA988X wasn't measured. Signed-off-by: Janusz Dziedzic Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit 76d870ed09ab34154454b1adb823ae75f173c2d2 Author: Janusz Dziedzic Date: Mon May 18 09:38:16 2015 +0000 ath10k: enable ASPM It is actually safe to enable ASPM after the device is booted up. This reduces power drain of QCA61X4 when driver is simply loaded (no interface is up) from 31mA to 14mA. QCA988X wasn't measured but doesn't seem to regress in any other way. Signed-off-by: Janusz Dziedzic Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/pci.c | 15 ++++++++++----- drivers/net/wireless/ath/ath10k/pci.h | 6 ++++++ 2 files changed, 16 insertions(+), 5 deletions(-) commit 80714b09bc574c5b23e50264e76e6e0f78d23549 Author: Vladimir Kondratiev Date: Mon May 11 19:10:48 2015 +0300 wil6210: fix format specifier for dma_addr_t Fix format specifier used for dma_addr_t, namely use %pad Debug print virtual address for the same buffer as well. Fixes: dc16427bbe65 ("wil6210: Add pmc debug mechanism memory management") Signed-off-by: Vladimir Kondratiev Signed-off-by: Kalle Valo drivers/net/wireless/ath/wil6210/pmc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 046050f6e623e442e9c71c525462ebd395dae526 Author: Chanwoo Choi Date: Tue May 19 20:01:12 2015 +0900 extcon: Update the prototype of extcon_register_notifier() with enum extcon Previously, extcon consumer driver used the extcon_register_interest() to register the notifier chain and then to receive the notifier event when external connector's state is changed. When registering the notifier chain for specific external connector with extcon_register_interest(), it used the the string name of external connector directly. There are potential problem because of unclear, non-standard and inconsequent cable name. Namely, it is not appropriate method to identify each external connector. So, this patch modify the prototype of extcon_register_notifier() by using the 'enum extcon' which are the unique id for each external connector instead of unclear string method. - Previously, the extcon consumer driver used the extcon_register_interest() with 'cable_name' to point out the specific external connector. Also. it used the un-needed structure (struct extcon_specific_cable_nb). : int extcon_register_interest(struct extcon_specific_cable_nb *obj, const char *extcon_name, const char *cable_name, struct notifier_block *nb) - Newly, the updated extcon_register_notifier() would definitely support the same feature to detech the changed state of external connector without any specific structure (struct extcon_specific_cable_nb). : int extcon_register_notifier(struct extcon_dev *edev, enum extcon id, struct notifier_block *nb) This patch support the both extcon_register_interest() and new extcon_register_ notifier(). But the extcon_{register|unregister}_interest() will be deprecated because extcon core would support the notifier event for extcon consumer driver with only updated extcon_register_notifier() and 'extcon_specific_cable_nb' will be removed if there are no extcon consumer driver with legacy extcon_{register|unregister}_interest(). Signed-off-by: Chanwoo Choi Reviewed-by: Krzysztof Kozlowski drivers/extcon/extcon.c | 91 ++++++++++++++++++++++++++----------------------- include/linux/extcon.h | 17 +++++---- 2 files changed, 56 insertions(+), 52 deletions(-) commit 8e9bc36df56d6fa1db78032533c0e167f8a0bdcf Author: Chanwoo Choi Date: Tue May 19 19:58:49 2015 +0900 extcon: Use capital letter for the name of external connectors This patch uses the capital letter for the name of external connectors to improve the readability instead of small letter. Cc: MyungJoo Ham Signed-off-by: Chanwoo Choi drivers/extcon/extcon.c | 37 +++++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 14 deletions(-) commit 2a9de9c0f08d61fbe3764a21d22d0b72df97d6ae Author: Chanwoo Choi Date: Fri Apr 24 19:16:05 2015 +0900 extcon: Use the unique id for external connector instead of string This patch uses the unique id to identify the type of external connector instead of string name. The string name have the many potential issues. So, this patch defines the 'extcon' enumeration which includes all supported external connector on EXTCON subsystem. If new external connector is necessary, the unique id of new connector have to be added in 'extcon' enumeration. There are current supported external connector in 'enum extcon' as following: enum extcon { EXTCON_NONE = 0x0, /* USB external connector */ EXTCON_USB = 0x1, EXTCON_USB_HOST = 0x2, /* Charger external connector */ EXTCON_TA = 0x10, EXTCON_FAST_CHARGER = 0x11, EXTCON_SLOW_CHARGER = 0x12, EXTCON_CHARGE_DOWNSTREAM = 0x13, /* Audio and video external connector */ EXTCON_LINE_IN = 0x20, EXTCON_LINE_OUT = 0x21, EXTCON_MICROPHONE = 0x22, EXTCON_HEADPHONE = 0x23, EXTCON_HDMI = 0x30, EXTCON_MHL = 0x31, EXTCON_DVI = 0x32, EXTCON_VGA = 0x33, EXTCON_SPDIF_IN = 0x34, EXTCON_SPDIF_OUT = 0x35, EXTCON_VIDEO_IN = 0x36, EXTCON_VIDEO_OUT = 0x37, /* Miscellaneous external connector */ EXTCON_DOCK = 0x50, EXTCON_JIG = 0x51, EXTCON_MECHANICAL = 0x52, EXTCON_END, }; For example in extcon-arizona.c: To use unique id removes the potential issue about handling the inconsistent name of external connector with string. - Previously, use the string to register the type of arizona jack connector static const char *arizona_cable[] = { "Mechanical", "Microphone", "Headphone", "Line-out", }; - Newly, use the unique id to register the type of arizona jack connector static const enum extcon arizona_cable[] = { EXTCON_MECHANICAL, EXTCON_MICROPHONE, EXTCON_HEADPHONE, EXTCON_LINE_OUT, EXTCON_NONE, }; And this patch modify the prototype of extcon_{get|set}_cable_state_() which uses the 'enum extcon id' instead of 'cable_index'. Because although one more extcon drivers support USB cable, each extcon driver might has the differnt 'cable_index' for USB cable. All extcon drivers can use the unique id number for same external connector with modified extcon_{get|set}_cable_state_(). - Previously, use 'cable_index' on these functions: extcon_get_cable_state_(struct extcon_dev*, int cable_index) extcon_set_cable_state_(struct extcon_dev*, int cable_index, bool state) -Newly, use 'enum extcon id' on these functions: extcon_get_cable_state_(struct extcon_dev*, enum extcon id) extcon_set_cable_state_(struct extcon_dev*, enum extcon id, bool state) Cc: Arnd Bergmann Cc: Felipe Balbi Signed-off-by: Chanwoo Choi Acked-by: Roger Quadros Acked-by: Charles Keepax Acked-by: Ramakrishna Pallala Reviewed-by: Krzysztof Kozlowski [arnd: Report the build break about drivers/usb/phy/phy-tahvo.c after using the unique id for external connector insteadf of string] Reported-by: Arnd Bergmann [dan.carpenter: Report the build warning of extcon_{set|get}_cable_state_()] Reported-by: Dan Carpenter drivers/extcon/extcon-arizona.c | 38 +++----- drivers/extcon/extcon-axp288.c | 24 ++--- drivers/extcon/extcon-max14577.c | 45 ++++----- drivers/extcon/extcon-max77693.c | 95 +++++++++---------- drivers/extcon/extcon-max77843.c | 56 +++++------ drivers/extcon/extcon-max8997.c | 59 +++++------- drivers/extcon/extcon-palmas.c | 22 +++-- drivers/extcon/extcon-rt8973a.c | 40 +++----- drivers/extcon/extcon-sm5502.c | 32 ++----- drivers/extcon/extcon-usb-gpio.c | 32 ++----- drivers/extcon/extcon.c | 163 ++++++++++++++++++--------------- drivers/usb/phy/phy-tahvo.c | 9 +- include/linux/extcon.h | 111 ++++++++++------------ include/linux/extcon/extcon-adc-jack.h | 5 +- 14 files changed, 320 insertions(+), 411 deletions(-) commit f80737082c210fae8ce15ad5d615da381889d5e9 Author: Boris Brezillon Date: Tue Mar 17 17:15:50 2015 +0100 ARM: at91/dt: remove useless usb clock The ohci driver now calls clk_set_rate on the uhpck clock (which forwards set_rate requests to its parent: the usb clock). Remove useless references to usb clocks from ohci definitions. Signed-off-by: Boris Brezillon Signed-off-by: Nicolas Ferre arch/arm/boot/dts/at91rm9200.dtsi | 4 ++-- arch/arm/boot/dts/at91sam9260.dtsi | 4 ++-- arch/arm/boot/dts/at91sam9261.dtsi | 4 ++-- arch/arm/boot/dts/at91sam9263.dtsi | 4 ++-- arch/arm/boot/dts/at91sam9g45.dtsi | 4 ++-- arch/arm/boot/dts/at91sam9n12.dtsi | 5 ++--- arch/arm/boot/dts/at91sam9x5.dtsi | 4 ++-- arch/arm/boot/dts/sama5d3.dtsi | 5 ++--- arch/arm/boot/dts/sama5d4.dtsi | 5 ++--- 9 files changed, 18 insertions(+), 21 deletions(-) commit 855868a5d79c7bf441fe01eb55a9a16345e81b72 Author: Boris Brezillon Date: Tue Mar 17 17:15:49 2015 +0100 ARM: at91/dt: remove useless uhpck clock references from ehci defintions The uhpck is useless for High-Speed communications, remove the reference to this clock in all ehci definitions. Signed-off-by: Boris Brezillon Signed-off-by: Nicolas Ferre arch/arm/boot/dts/at91sam9g45.dtsi | 4 ++-- arch/arm/boot/dts/at91sam9x5.dtsi | 4 ++-- arch/arm/boot/dts/sama5d3.dtsi | 4 ++-- arch/arm/boot/dts/sama5d4.dtsi | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) commit b34e96bdcf2908086a5993827bce1114576a2e75 Author: Boris Brezillon Date: Tue Mar 17 17:15:48 2015 +0100 USB: atmel: update DT bindings documentation Add documentation for the missing clocks, clock-names, reg and interrupts properties. Signed-off-by: Boris Brezillon Signed-off-by: Nicolas Ferre .../devicetree/bindings/usb/atmel-usb.txt | 25 ++++++++++++++++++++++ 1 file changed, 25 insertions(+) commit de8d1810fda5463ee60ba2937ca68e55a52bd9e7 Author: Geert Uytterhoeven Date: Fri May 22 09:58:49 2015 +0200 genirq: Set IRQCHIP_SKIP_SET_WAKE for no_irq_chip If no_irq_chip is used for wake up (e.g. gpio-keys with a simple GPIO controller), the following warning is printed on resume from s2ram: WANING: CPU: 0 PID: 1046 at kernel/irq/manage.c:537 irq_set_irq_wake+0x9c/0xf8() Unbalanced IRQ 113 wake disable This happens because no_irq_chip does not implement irq_chip.irq_set_wake(), causing set_irq_wake_real() to return -ENXIO, and irq_set_irq_wake() to reset the wake_depth to zero. Set IRQCHIP_SKIP_SET_WAKE to indicate that irq_chip.irq_set_wake() is not implemented. Cfr. commit 10a50f1ab5f06c9a ("genirq: Set IRQCHIP_SKIP_SET_WAKE flag for dummy_irq_chip"). Signed-off-by: Geert Uytterhoeven Cc: Roger Quadros Cc: Gregory Clement Link: http://lkml.kernel.org/r/1432281529-23325-1-git-send-email-geert%2Brenesas@glider.be Signed-off-by: Thomas Gleixner kernel/irq/dummychip.c | 1 + 1 file changed, 1 insertion(+) commit e1a96fb861b0781c8ef66a76d0fc6fb6f628f84c Author: Axel Lin Date: Thu May 21 22:57:34 2015 +0800 irqchip: mtk-sysirq: Make mtk_sysirq_of_init return error if ioremap fails PTR_ERR(NULL) returns 0 so current code returns 0 if ioremap fails, fix it. Signed-off-by: Axel Lin Reviewed-by: Matthias Brugger Cc: Yingjoe Chen Cc: linux-mediatek@lists.infradead.org Cc: Jason Cooper Link: http://lkml.kernel.org/r/1432220254.29544.1.camel@ingics.com Signed-off-by: Thomas Gleixner drivers/irqchip/irq-mtk-sysirq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b54b4bbbf5e9313acc681129ab332e33a397cd13 Author: Ingo Molnar Date: Fri May 22 10:58:45 2015 +0200 x86/fpu, crypto: Fix AVX2 feature tests For some CPU models I broke the AVX2 feature detection in: 7bc371faa9cd ("x86/fpu, crypto x86/camellia_aesni_avx2: Simplify the camellia_aesni_init() xfeature checks") 534ff06e3929 ("x86/fpu, crypto x86/serpent_avx2: Simplify the init() xfeature checks") ... because I did not realize that it's possible for a CPU to support the xstate necessary for AVX2 execution (XSTATE_YMM), but not have the AVX2 instructions themselves. Restore the necessary CPUID checks as well. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar arch/x86/crypto/camellia_aesni_avx2_glue.c | 5 +++++ arch/x86/crypto/serpent_avx2_glue.c | 4 ++++ 2 files changed, 9 insertions(+) commit d0bc54f2f012d8c8c3b4315f51f408ff3d938031 Author: Chris Wilson Date: Thu May 21 21:01:48 2015 +0100 drm/i915: Introduce DRM_I915_THROTTLE_JIFFIES As Daniel commented on commit b7ffe1362c5f468b853223acc9268804aa92afc8 Author: Chris Wilson Date: Mon Apr 27 13:41:24 2015 +0100 drm/i915: Free RPS boosts for all laggards it is better to be explicit when sharing hardcoded values such as throttle/boost timeouts. Make it so! Signed-off-by: Chris Wilson Cc: Daniel Vetter Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 6 ++++++ drivers/gpu/drm/i915/i915_gem.c | 2 +- drivers/gpu/drm/i915/intel_pm.c | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) commit 9a0c1e2770b839b806bae6bc8f93001f86bc0cf3 Author: Chris Wilson Date: Thu May 21 21:01:45 2015 +0100 drm/i915: Use the correct destructor for freeing requests on error After allocating from the slab cache, we then need to free the request back into the slab cache upon error (and not call kfree as that leads to eventual memory corruption). Fixes regression from commit efab6d8dd158fdccbe6a030f89fbf9ca0a9564e4 Author: Chris Wilson Date: Tue Apr 7 16:20:57 2015 +0100 drm/i915: Use a separate slab for requests Signed-off-by: Chris Wilson Cc: Daniel Vetter Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 225c228a028388b215e1f8a18546af2c2802bbb5 Author: Chandra Konduru Date: Mon May 18 16:18:44 2015 -0700 drm/i915/skl: don't fail colorkey + scaler request There is a mplayer video failure reported with xv. This is because there is a request to do both plane scaling and colorkey. Because skl hw doesn't support plane scaling and colorkey at the same time, request is failed which is expected behavior. To make xv operate, this patch allows colorkey continue to work without using scaler. Then behavior would be similar to platforms without plane scaler support. Signed-off-by: Chandra Konduru Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90449 [danvet: change can_scale to bool as requested by Ville.] Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 14 +++++++++----- drivers/gpu/drm/i915/intel_sprite.c | 30 +++++++++++++++++++++--------- 2 files changed, 30 insertions(+), 14 deletions(-) commit 6d50b0650fb46050d883d1b439a8681178cb2326 Author: Ville Syrjälä Date: Tue May 19 20:32:57 2015 +0300 drm/i915: Enable GTT caching on gen8 GTT caching was disabled by default on gen8 due to not working with big pages. Some information suggests that it got fixed, but still GTT caching has been left disabled by default. Or could be it just meant that the default was changed to off, and hence the problem got solved. Enable GTT caching in the hopes of some performance increase. Whether or not the big pages issue has been fixed is irrelevant at this stage since we don't use big pages. This gives me a 1-2% improvement in xonotic on my BSW. Haven't tried BDW, but supposedly it has larger TLBs so might not benefit as much. On HSW GTT caching is enabled by default. Signed-off-by: Ville Syrjälä Reviewed-by: Jesse Barnes Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_reg.h | 2 ++ drivers/gpu/drm/i915/intel_pm.c | 13 +++++++++++++ 2 files changed, 15 insertions(+) commit 4d487cff19975d65234902e4abed8724a7b5b94b Author: Ville Syrjälä Date: Tue May 19 20:32:56 2015 +0300 drm/i915: Move WaProgramL3SqcReg1Default:bdw to init_clock_gating() GEN8_L3SQCREG1 isn't saved in the context (verified by going through a context dump), and so we shouldn't be using the ring w/a code to initialize it. Also Bspec explicitly talks about MMIO and writing it with the CPU. Additionally there's another w/a WaTempDisableDOPClkGating:bdw which tells us to disable DOP clock gating around the GEN8_L3SQCREG1 write to make sure everyone notices the change. So let's do that as well. Cc: Rodrigo Vivi Signed-off-by: Ville Syrjälä Reviewed-by: Jesse Barnes Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_pm.c | 10 ++++++++++ drivers/gpu/drm/i915/intel_ringbuffer.c | 3 --- 2 files changed, 10 insertions(+), 3 deletions(-) commit 7ad0dbab20678709ca268afa54189cf49b058f15 Author: Ville Syrjälä Date: Tue May 19 20:32:55 2015 +0300 drm/i915: Use ilk_init_lp_watermarks() on BDW We're not using ilk_init_lp_watermarks() on BDW for some reason. Probably due to the BDW patches and the relevant WM patches landing roughlly at the same time. Fix it up. Signed-off-by: Ville Syrjälä Reviewed-by: Jesse Barnes Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_pm.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 7e3d6c5a4be45769a9d439a4b62ad85cfe9e6754 Author: Daniel Axtens Date: Tue Apr 14 14:27:56 2015 +1000 powerpc/cell: Move MSI-related ops to pci_controller_ops Move the Cell platform to use the pci_controller_ops structure rather than ppc_md for MSI related PCI controller operations. We can be confident that the functions will be added to the platform's ops struct before any PCI controller's ops struct is populated because: 1) These ops are added to the struct in a subsys initcall. We populate the ops in axon_msi_probe, which is the probe call for the axon-msi driver. However the driver is registered in axon_msi_init, which is a subsys initcall, so this will happen at the subsys level. 2) The controller recieves the struct later, in a device initcall. Cell populates the controller in cell_setup_phb, which is hooked up to ppc_md.pci_setup_phb. ppc_md.pci_setup_phb is only ever called in of_platform.c, as part of the OpenFirmware PCI driver's probe routine. That driver is registered in a device initcall, so it will occur *after* the struct is properly populated. Signed-off-by: Daniel Axtens Signed-off-by: Michael Ellerman arch/powerpc/platforms/cell/axon_msi.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit d6381119a415316c5602710cf7fbf388d15d6d3c Author: Daniel Axtens Date: Tue Apr 14 14:27:55 2015 +1000 powerpc/powernv: Move MSI-related ops to pci_controller_ops Move the PowerNV/BML platform to use the pci_controller_ops structure rather than ppc_md for MSI related PCI controller operations. Signed-off-by: Daniel Axtens Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/pci.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) commit e059b105d157d0231e2f0a7fba996724d856114b Author: Daniel Axtens Date: Tue Apr 14 14:27:54 2015 +1000 powerpc: Add MSI operations to pci_controller_ops struct Add MSI setup and teardown functions to pci_controller_ops. Patch the callsites (arch_{setup,teardown}_msi_irqs) to prefer the controller ops version if it's available. Signed-off-by: Daniel Axtens Signed-off-by: Michael Ellerman arch/powerpc/include/asm/pci-bridge.h | 6 ++++++ arch/powerpc/kernel/msi.c | 18 +++++++++++++++--- 2 files changed, 21 insertions(+), 3 deletions(-) commit 81f2f7ce4c5bb688ad691cb3ee37e81ca26a8a3b Author: Alistair Popple Date: Fri May 15 14:06:44 2015 +1000 opal: Remove events notifier All users of the old opal events notifier have been converted over to the irq domain so remove the event notifier functions. Signed-off-by: Alistair Popple Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/opal-irqchip.c | 16 ++--- arch/powerpc/platforms/powernv/opal.c | 84 +-------------------------- arch/powerpc/platforms/powernv/powernv.h | 1 - arch/powerpc/platforms/powernv/setup.c | 2 +- 4 files changed, 8 insertions(+), 95 deletions(-) commit 8034f715f0a5fce97b14bacd47eefb1513316b17 Author: Alistair Popple Date: Fri May 15 14:06:43 2015 +1000 powernv/opal-dump: Convert to irq domain Convert the opal dump driver to the new opal irq domain. Signed-off-by: Alistair Popple Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/opal-dump.c | 56 +++++++++--------------------- 1 file changed, 17 insertions(+), 39 deletions(-) commit 74159a70283ba685cd4d856cfc4438596524b1f2 Author: Alistair Popple Date: Fri May 15 14:06:42 2015 +1000 powernv/elog: Convert elog to opal irq domain This patch converts the elog code to use the opal irq domain instead of notifier events. Signed-off-by: Alistair Popple Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/opal-elog.c | 32 +++++++++++++++--------------- 1 file changed, 16 insertions(+), 16 deletions(-) commit a295af24d0d2af238d74a994603407b72de157b3 Author: Alistair Popple Date: Fri May 15 14:06:41 2015 +1000 powernv/opal: Convert opal message events to opal irq domain This patch converts the opal message event to use the new opal irq domain. Signed-off-by: Alistair Popple Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/opal.c | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) commit 79231448c929cc0870f6e5cc10c485661dfb4a9f Author: Alistair Popple Date: Fri May 15 14:06:40 2015 +1000 powernv/eeh: Update the EEH code to use the opal irq domain The eeh code currently uses the old notifier method to get eeh events from OPAL. It also contains some logic to filter opal events which has been moved into the virtual irqchip. This patch converts the eeh code to the new event interface which simplifies event handling. Signed-off-by: Alistair Popple Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/eeh-powernv.c | 58 +++++++++++++++------------- 1 file changed, 31 insertions(+), 27 deletions(-) commit 2def86a7200ca3a9828926eef927a89adb82ce32 Author: Alistair Popple Date: Fri May 15 14:06:39 2015 +1000 hvc: Convert to using interrupts instead of opal events Convert the opal hvc driver to use the new irqchip to register for opal events. As older firmware versions may not have device tree bindings for the interrupt parent we just use a hardcoded hwirq based on the event number. Signed-off-by: Alistair Popple Signed-off-by: Michael Ellerman drivers/tty/hvc/hvc_opal.c | 33 ++++++++++----------------------- 1 file changed, 10 insertions(+), 23 deletions(-) commit dce143c3381c355ef73be3dd97cf3ca1b15359b8 Author: Alistair Popple Date: Fri May 15 14:06:38 2015 +1000 ipmi/powernv: Convert to irq event interface Convert the opal ipmi driver to use the new irq interface for events. Signed-off-by: Alistair Popple Acked-by: Corey Minyard Cc: Corey Minyard Cc: openipmi-developer@lists.sourceforge.net Signed-off-by: Michael Ellerman drivers/char/ipmi/ipmi_powernv.c | 39 ++++++++++++++++++++++----------------- 1 file changed, 22 insertions(+), 17 deletions(-) commit 9f0fd0499d30dbd61632463f293e2e826fa363b1 Author: Alistair Popple Date: Fri May 15 14:06:37 2015 +1000 powerpc/powernv: Add a virtual irqchip for opal events Whenever an interrupt is received for opal the linux kernel gets a bitfield indicating certain events that have occurred and need handling by the various device drivers. Currently this is handled using a notifier interface where we call every device driver that has registered to receive opal events. This approach has several drawbacks. For example each driver has to do its own checking to see if the event is relevant as well as event masking. There is also no easy method of recording the number of times we receive particular events. This patch solves these issues by exposing opal events via the standard interrupt APIs by adding a new interrupt chip and domain. Drivers can then register for the appropriate events using standard kernel calls such as irq_of_parse_and_map(). Signed-off-by: Alistair Popple Signed-off-by: Michael Ellerman arch/powerpc/include/asm/opal.h | 3 + arch/powerpc/platforms/powernv/Makefile | 2 +- arch/powerpc/platforms/powernv/opal-irqchip.c | 253 ++++++++++++++++++++++++++ arch/powerpc/platforms/powernv/opal.c | 78 ++------ arch/powerpc/platforms/powernv/powernv.h | 4 + 5 files changed, 273 insertions(+), 67 deletions(-) commit 96e023e7534c16ab54e236c114340e2447c36d2f Author: Alistair Popple Date: Fri May 15 14:06:36 2015 +1000 powerpc/powernv: Reorder OPAL subsystem initialisation Most of the OPAL subsystems are always compiled in for PowerNV and many of them need to be initialised before or after other OPAL subsystems. Rather than trying to control this ordering through machine initcalls it is clearer and easier to control initialisation order with explicit calls in opal_init. Signed-off-by: Alistair Popple Cc: Mahesh Jagannath Salgaonkar Signed-off-by: Michael Ellerman arch/powerpc/include/asm/opal.h | 3 +++ arch/powerpc/platforms/powernv/opal-async.c | 3 +-- arch/powerpc/platforms/powernv/opal-hmi.c | 3 +-- arch/powerpc/platforms/powernv/opal-memory-errors.c | 2 +- arch/powerpc/platforms/powernv/opal-sensor.c | 3 +-- arch/powerpc/platforms/powernv/opal.c | 13 ++++++++++++- 6 files changed, 19 insertions(+), 8 deletions(-) commit 5703d2f4a1da6d23b3be896947ce255226fc4295 Author: Shreyas B. Prabhu Date: Mon Apr 20 10:32:58 2015 +0530 powerpc/powernv: Introduce sysfs control for fastsleep workaround behavior Fastsleep is one of the idle state which cpuidle subsystem currently uses on power8 machines. In this state L2 cache is brought down to a threshold voltage. Therefore when the core is in fastsleep, the communication between L2 and L3 needs to be fenced. But there is a bug in the current power8 chips surrounding this fencing. OPAL provides a workaround which precludes the possibility of hitting this bug. But running with this workaround applied causes checkstop if any correctable error in L2 cache directory is detected. Hence OPAL also provides a way to undo the workaround. In the existing implementation, workaround is applied by the last thread of the core entering fastsleep and undone by the first thread waking up. But this has a performance cost. These OPAL calls account for roughly 4000 cycles everytime the core has to enter or wakeup from fastsleep. This patch introduces a sysfs attribute (fastsleep_workaround_applyonce) to choose the behavior of this workaround. By default, fastsleep_workaround_applyonce = 0. In this case, workaround is applied/undone everytime the core enters/exits fastsleep. fastsleep_workaround_applyonce = 1. In this case the workaround is applied once on all the cores and never undone. This can be triggered by echo 1 > /sys/devices/system/cpu/fastsleep_workaround_applyonce For simplicity this attribute can be modified only once. Implying, once fastsleep_workaround_applyonce is changed to 1, it cannot be reverted to the default state. Signed-off-by: Shreyas B. Prabhu Reviewed-by: Preeti U Murthy Signed-off-by: Michael Ellerman arch/powerpc/include/asm/opal-api.h | 7 ++ arch/powerpc/include/asm/opal.h | 1 + arch/powerpc/platforms/powernv/idle.c | 101 +++++++++++++++++++++++++ arch/powerpc/platforms/powernv/opal-wrappers.S | 1 + 4 files changed, 110 insertions(+) commit d405a98c70ebbaa6ef276d7307d034a682321b95 Author: Shreyas B. Prabhu Date: Mon Apr 20 10:32:57 2015 +0530 powerpc/powernv: Move cpuidle related code from setup.c to new file This is a cleanup patch; doesn't change any functionality. Moves all cpuidle related code from setup.c to a new file. Signed-off-by: Shreyas B. Prabhu Reviewed-by: Preeti U Murthy [mpe: Fix the SMP=n build by including asm/smp.h in idle.c] Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/Makefile | 2 +- arch/powerpc/platforms/powernv/idle.c | 192 ++++++++++++++++++++++++++++++++ arch/powerpc/platforms/powernv/setup.c | 171 ---------------------------- 3 files changed, 193 insertions(+), 172 deletions(-) commit e602ffb2fa6b5533acd6847bd19a135e14ed4c54 Author: Shreyas B. Prabhu Date: Mon Apr 20 10:32:56 2015 +0530 powerpc: Fix cpu_online_cores_map to return only online threads mask Currently, cpu_online_cores_map returns a mask, which for every core with at least one online thread, has the bit for thread 0 of the core set to 1, and the bits for all other threads of the core set to 0. But thread 0 of the core itself may not be online always. In such cases, if the returned mask is used for IPI, then it'll cause IPIs to be skipped on cores where the first thread is offline, because the IPI code refuses to send IPIs to offline threads. Fix this by setting the bit of the first online thread in the core. This is done by fixing this in the underlying function cpu_thread_mask_to_cores. The result has the property that for all cores with online threads, there is one bit set in the returned map. And further, all bits that are set in the returned map correspond to online threads. Signed-off-by: Shreyas B. Prabhu Reviewed-by: Preeti U Murthy [ Changelog from Michael Ellerman ] Reviewed-by: Gautham R. Shenoy Signed-off-by: Michael Ellerman arch/powerpc/include/asm/cputhreads.h | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) commit bd5850d39f10f9d216bff69bcbf5938680b862ae Author: Florian Westphal Date: Thu May 21 02:26:24 2015 +0200 net: sched: pkt_cls: remove unused macros from uapi Jamal points out that this header also contains kernel internal magic that cannot be used from userspace for anything meaningful. Lets remove what the kernel doesn't use anymore and wrap remainder with __KERNEL__. Suggested-by: Jamal Hadi Salim Suggested-by: Alexei Starovoitov Signed-off-by: Florian Westphal Signed-off-by: Jamal Hadi Salim Signed-off-by: David S. Miller include/uapi/linux/pkt_cls.h | 32 +++++--------------------------- 1 file changed, 5 insertions(+), 27 deletions(-) commit a10f554fa7e09ad236cfa0bdabaf6549c0b073a4 Author: Herbert Xu Date: Thu May 21 15:11:15 2015 +0800 crypto: echainiv - Add encrypted chain IV generator This patch adds a new AEAD IV generator echainiv. It is intended to replace the existing skcipher IV generator eseqiv. If the underlying AEAD algorithm is using the old AEAD interface, then echainiv will simply use its IV generator. Otherwise, echainiv will encrypt a counter just like eseqiv but it'll first xor it against a previously stored IV similar to chainiv. Signed-off-by: Herbert Xu crypto/Kconfig | 10 + crypto/Makefile | 1 + crypto/echainiv.c | 531 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 542 insertions(+) commit 3c08fee7b5ce471a7114478ac8c6e546787bd8c2 Author: Herbert Xu Date: Thu May 21 15:11:14 2015 +0800 crypto: seqiv - Add seqniv This patch adds a new IV generator seqniv which is identical to seqiv except that it skips the IV when authenticating. This is intended to be used by algorithms such as rfc4106 that does the IV authentication implicitly. Note that the code used for seqniv is in fact identical to the compatibility case for seqiv. Signed-off-by: Herbert Xu crypto/seqiv.c | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 70 insertions(+), 1 deletion(-) commit 856e3f4092cfd9ea6d6564e73f5bce5a0ac3cae3 Author: Herbert Xu Date: Thu May 21 15:11:13 2015 +0800 crypto: seqiv - Add support for new AEAD interface This patch converts the seqiv IV generator to work with the new AEAD interface where IV generators are just normal AEAD algorithms. Full backwards compatibility is paramount at this point since no users have yet switched over to the new interface. Nor can they switch to the new interface until IV generation is fully supported by it. So this means we are adding two versions of seqiv alongside the existing one. The first one is the one that will be used when the underlying AEAD algorithm has switched over to the new AEAD interface. The second one handles the current case where the underlying AEAD algorithm still uses the old interface. Both versions export themselves through the new AEAD interface. Signed-off-by: Herbert Xu crypto/Kconfig | 1 + crypto/aead.c | 100 +++++++---- crypto/seqiv.c | 386 +++++++++++++++++++++++++++++++++++++++-- include/crypto/internal/aead.h | 7 +- 4 files changed, 443 insertions(+), 51 deletions(-) commit 74412fd5d71b6eda0beb302aa467da000f0d530c Author: Herbert Xu Date: Thu May 21 15:11:12 2015 +0800 crypto: scatterwalk - Check for same address in map_and_copy This patch adds a check for in scatterwalk_map_and_copy to avoid copying from the same address to the same address. This is going to be used for IV copying in AEAD IV generators. There is no provision for partial overlaps. This patch also uses the new scatterwalk_ffwd instead of doing it by hand in scatterwalk_map_and_copy. Signed-off-by: Herbert Xu crypto/scatterwalk.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) commit 17db8546997023ba5c931c1f250bb23bf8d0b958 Author: Herbert Xu Date: Thu May 21 15:11:11 2015 +0800 crypto: gcm - Use default null skcipher This patch makes gcm use the default null skcipher instead of allocating a new one for each tfm. Signed-off-by: Herbert Xu crypto/gcm.c | 23 ++++++----------------- 1 file changed, 6 insertions(+), 17 deletions(-) commit 330234638e16b7b95e8e5e6be719a61a93f074b8 Author: Herbert Xu Date: Thu May 21 15:11:09 2015 +0800 crypto: null - Add default null skcipher This patch adds a default null skcipher for users such as gcm to perform copies on SG lists. Signed-off-by: Herbert Xu crypto/crypto_null.c | 39 +++++++++++++++++++++++++++++++++++++++ include/crypto/null.h | 3 +++ 2 files changed, 42 insertions(+) commit 63293c61133447249d7e5b49d333f68825d30e43 Author: Herbert Xu Date: Thu May 21 15:11:08 2015 +0800 crypto: aead - Add support for new AEAD implementations This patch adds the basic structure of the new AEAD type. Unlike the current version, there is no longer any concept of geniv. IV generation will still be carried out by wrappers but they will be normal AEAD algorithms that simply take the IPsec sequence number as the IV. Signed-off-by: Herbert Xu crypto/aead.c | 152 +++++++++++++++++++++++++++++++++++++---- include/crypto/aead.h | 44 +++++++++++- include/crypto/internal/aead.h | 36 +++++++++- 3 files changed, 213 insertions(+), 19 deletions(-) commit 56fcf73a29007aa7bec2e3fc5da2962f3f72d610 Author: Herbert Xu Date: Thu May 21 15:11:07 2015 +0800 crypto: nx - Remove unnecessary maxauthsize check The crypto layer already checks maxauthsize when setauthsize is called. So there is no need to check it again within setauthsize. Signed-off-by: Herbert Xu drivers/crypto/nx/nx-aes-gcm.c | 3 --- 1 file changed, 3 deletions(-) commit 6da9c2335e5f7124521a701e2a883b46e3d6a215 Author: Herbert Xu Date: Thu May 21 15:11:06 2015 +0800 crypto: ixp4xx - Use crypto_aead_maxauthsize This patch uses the helper crypto_aead_maxauthsize instead of directly dereferencing aead_alg. Signed-off-by: Herbert Xu drivers/crypto/ixp4xx_crypto.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit f569525911d3dce024ff2b1908e16a20e9052338 Author: Herbert Xu Date: Thu May 21 15:11:05 2015 +0800 crypto: aead - Add crypto_aead_maxauthsize This patch adds the helper crypto_aead_maxauthsize to remove the need to directly dereference aead_alg internals by AEAD implementors. Signed-off-by: Herbert Xu include/crypto/internal/aead.h | 5 +++++ 1 file changed, 5 insertions(+) commit ae13ed44382c8d67321bc789166be98fbb7061d9 Author: Herbert Xu Date: Thu May 21 15:11:03 2015 +0800 crypto: caam - Use old_aead_alg This patch replaces references to aead_alg with old_aead_alg. Signed-off-by: Herbert Xu drivers/crypto/caam/caamalg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2d0f230fe0649758394466cb69b553c0e8184df9 Author: Herbert Xu Date: Thu May 21 15:11:02 2015 +0800 crypto: aead - Rename aead_alg to old_aead_alg This patch is the first step in the introduction of a new AEAD alg type. Unlike normal conversions this patch only renames the existing aead_alg structure because there are external references to it. Those references will be removed after this patch. Signed-off-by: Herbert Xu crypto/aead.c | 25 +++++++++++++------------ include/crypto/aead.h | 2 ++ include/crypto/internal/aead.h | 5 +++++ include/linux/crypto.h | 6 +++--- 4 files changed, 23 insertions(+), 15 deletions(-) commit 996d98d85ccc27d9c592ad7dc1371c60cd6585cc Author: Herbert Xu Date: Thu May 21 15:11:01 2015 +0800 crypto: aead - Add new interface with single SG list The primary user of AEAD, IPsec includes the IV in the AD in most cases, except where it is implicitly authenticated by the underlying algorithm. The way it is currently implemented is a hack because we pass the data in piecemeal and the underlying algorithms try to stitch them back up into one piece. This is why this patch is adding a new interface that allows a single SG list to be passed in that contains everything so the algorithm implementors do not have to stitch. The new interface accepts a single source SG list and a single destination SG list. Both must be laid out as follows: AD, skipped data, plain/cipher text, ICV The ICV is not present from the source during encryption and from the destination during decryption. For the top-level IPsec AEAD algorithm the plain/cipher text will contain the generated (or received) IV. Signed-off-by: Herbert Xu crypto/aead.c | 58 +++++++++++++++++++++++++++++++++++++++++++++++++-- include/crypto/aead.h | 35 +++++++++++++++++++++++++------ 2 files changed, 85 insertions(+), 8 deletions(-) commit fc42bcba97bae738f905b83741134a63af7e6c02 Author: Herbert Xu Date: Thu May 21 15:10:59 2015 +0800 crypto: scatterwalk - Add scatterwalk_ffwd helper This patch adds the scatterwalk_ffwd helper which can create an SG list that starts in the middle of an existing SG list. The new list may either be part of the existing list or be a chain that latches onto part of the existing list. Signed-off-by: Herbert Xu crypto/scatterwalk.c | 22 ++++++++++++++++++++++ include/crypto/scatterwalk.h | 4 ++++ 2 files changed, 26 insertions(+) commit 66d948e732f665c905678d810833d4f0a5071537 Author: Herbert Xu Date: Thu May 21 15:10:58 2015 +0800 crypto: pcrypt - Use crypto_grab_aead As AEAD has switched over to using frontend types, the function crypto_init_spawn must not be used since it does not specify a frontend type. Otherwise it leads to a crash when the spawn is used. This patch fixes it by switching over to crypto_grab_aead instead. Fixes: 5d1d65f8bea6 ("crypto: aead - Convert top level interface to new style") Signed-off-by: Herbert Xu crypto/pcrypt.c | 71 ++++++++++++++++++++++++++++----------------------------- 1 file changed, 35 insertions(+), 36 deletions(-) commit 9b8c456e081e7eca856ad9b2a92980a68887f533 Author: Herbert Xu Date: Thu May 21 15:10:57 2015 +0800 crypto: cryptd - Use crypto_grab_aead As AEAD has switched over to using frontend types, the function crypto_init_spawn must not be used since it does not specify a frontend type. Otherwise it leads to a crash when the spawn is used. This patch fixes it by switching over to crypto_grab_aead instead. Fixes: 5d1d65f8bea6 ("crypto: aead - Convert top level interface to new style") Signed-off-by: Herbert Xu crypto/cryptd.c | 60 +++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 37 insertions(+), 23 deletions(-) commit 0576722919f13da8430d00e47aa58ba151505d90 Author: Stephan Mueller Date: Wed May 20 15:21:54 2015 +0200 crypto: doc - change header file locations Due to the recent update of the kernel crypto API header files, locations of function definitions and their documentation have changed. Signed-off-by: Stephan Mueller Signed-off-by: Herbert Xu Documentation/DocBook/crypto-API.tmpl | 40 +++++++++++++++++------------------ 1 file changed, 20 insertions(+), 20 deletions(-) commit 2efd055c53c06b7e89c167c98069bab9afce7e59 Author: Marcelo Ricardo Leitner Date: Wed May 20 16:35:41 2015 -0700 tcp: add tcpi_segs_in and tcpi_segs_out to tcp_info This patch tracks the total number of inbound and outbound segments on a TCP socket. One may use this number to have an idea on connection quality when compared against the retransmissions. RFC4898 named these : tcpEStatsPerfSegsIn and tcpEStatsPerfSegsOut These are a 32bit field each and can be fetched both from TCP_INFO getsockopt() if one has a handle on a TCP socket, or from inet_diag netlink facility (iproute2/ss patch will follow) Note that tp->segs_out was placed near tp->snd_nxt for good data locality and minimal performance impact, while tp->segs_in was placed near tp->bytes_received for the same reason. Join work with Eric Dumazet. Note that received SYN are accounted on the listener, but sent SYNACK are not accounted. Signed-off-by: Marcelo Ricardo Leitner Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller include/linux/tcp.h | 7 ++++++- include/uapi/linux/tcp.h | 4 +++- net/ipv4/tcp.c | 2 ++ net/ipv4/tcp_ipv4.c | 1 + net/ipv4/tcp_minisocks.c | 1 + net/ipv4/tcp_output.c | 1 + net/ipv6/tcp_ipv6.c | 1 + 7 files changed, 15 insertions(+), 2 deletions(-) commit 48ed7b26faa758e6612cd1fb11c07f25cd54f771 Author: Florian Westphal Date: Thu May 21 00:25:41 2015 +0200 ipv6: reject locally assigned nexthop addresses ip -6 addr add dead::1/128 dev eth0 sleep 5 ip -6 route add default via dead::1/128 -> fails ip -6 addr add dead::1/128 dev eth0 ip -6 route add default via dead::1/128 -> succeeds reason is that if (nonsensensical) route above is added, dead::1 is still subject to DAD, so the route lookup will pick eth0 as outdev due to the prefix route that is added before DAD work is started. Add explicit test that checks if nexthop gateway is a local address. Link: https://bugzilla.redhat.com/show_bug.cgi?id=1167969 Signed-off-by: Florian Westphal Acked-by: Hannes Frederic Sowa Signed-off-by: David S. Miller net/ipv6/route.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit cae756fbaa02a24f868330e68631b3f5ea345cb8 Author: Hanjun Guo Date: Thu May 21 23:29:26 2015 +0800 ACPI / PCI: remove stale list_head in struct acpi_prt_entry list_head "list" in struct acpi_prt_entry was used to connect _PRT entries for PCI irq, but after commit 181380b702ee ("PCI/ACPI: Don't cache _PRT, and don't associate them with bus numbers"), the list head for _PRT entries was removed, but left "list" in struct acpi_prt_entry which is useless and stale, remove it now. Signed-off-by: Hanjun Guo Acked-by: Bjorn Helgaas Signed-off-by: Rafael J. Wysocki drivers/acpi/pci_irq.c | 1 - 1 file changed, 1 deletion(-) commit 1aebaa021f3eb0a9854183e7bf65d0d96d939a27 Author: Bob Moore Date: Thu May 21 10:32:05 2015 +0800 ACPICA: Update version to 20150515. ACPICA commit ed4de2e8b0a5dd6fc17773a055590bff0e995588 Version 20150515. Link: https://github.com/acpica/acpica/commit/ed4de2e8 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 04f8e38497b02cd5596ff9af278e62cd057fff68 Author: Bob Moore Date: Thu May 21 10:31:58 2015 +0800 ACPICA: ACPI 6.0: Add support for NFIT table. ACPICA commit e4e17ca361373e9b81494bb4ca697a12cef3cba6 NVDIMM Firmware Interface Table. Link: https://github.com/acpica/acpica/commit/e4e17ca3 Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/uthex.c | 4 +- include/acpi/actbl1.h | 154 ++++++++++++++++++++++++++++++++++++++++++++ include/acpi/acuuid.h | 64 ++++++++++++++++++ 3 files changed, 220 insertions(+), 2 deletions(-) commit 0bb346cca1899542cdad470f2416070881d54437 Author: Bob Moore Date: Thu May 21 10:31:52 2015 +0800 ACPICA: acpi_help: Add option to display all known/supported ACPI tables. ACPICA commit d6d003556c6fc22e067d5d511577128a661266c3 -t option displays all ACPI tables. Link: https://github.com/acpica/acpica/commit/d6d00355 Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/aclocal.h | 5 +++++ 1 file changed, 5 insertions(+) commit 5b0bbfbd56118d2f5dca2b56ea47103470fa7aaa Author: Bob Moore Date: Thu May 21 10:31:44 2015 +0800 ACPICA: iASL/disassembler - fix possible fault for -e option. ACPICA commit 403b8b0023fd7549b2f9bf818fcc1ba481047b69 If non-AML files are used with the -e option, the disassembler can fault. The fix is to ensure that all -e files are either SSDTs or a DSDT. ACPICA BZ 1158. Link: https://github.com/acpica/acpica/commit/403b8b00 Reference: https://bugs.acpica.org/show_bug.cgi?id=1158 Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/acdebug.h | 4 +++- drivers/acpi/acpica/utfileio.c | 2 +- drivers/acpi/acpica/utxferror.c | 11 +++++++++-- 3 files changed, 13 insertions(+), 4 deletions(-) commit 80fa6cf95e71d56333c89c92dbf74465a9505421 Author: Lv Zheng Date: Thu May 21 10:31:37 2015 +0800 ACPICA: ACPI 6.0: Add changes for DRTM table. ACPICA commit b02b754a2b7afcd0384cb3b31f29eb1be028fe90 This patch adds support for DRTM (Dynamic Root of Trust for Measurement table) in iasl. Lv Zheng. Link: https://github.com/acpica/acpica/commit/b02b754a Signed-off-by: Lv Zheng Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki include/acpi/actbl3.h | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) commit 874f6a723e56d0da9e481629b17482bcd3801ecf Author: Lv Zheng Date: Thu May 21 10:31:30 2015 +0800 ACPICA: ACPI 6.0: Add support for IORT table. ACPICA commit 5de82757aef5d6163e37064033aacbce193abbca This patch adds support for IORT (IO Remapping Table) in iasl. Note that some field names are modified to shrink their length or the decompiled IORT ASL will contain fields with ugly ":" alignment. The IORT contains field definitions around "Memory Access Properties". This patch also adds support to encode/decode it using inline table. This patch doesn't add inline table support for the SMMU interrupt fields due to a limitation in current ACPICA data table support. Lv Zheng. Link: https://github.com/acpica/acpica/commit/5de82757 Signed-off-by: Lv Zheng Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki include/acpi/actbl2.h | 126 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 126 insertions(+) commit 69ee810cbbca8d6834cdbbb31a8a00fa9ad91c47 Author: Lv Zheng Date: Thu May 21 10:31:24 2015 +0800 ACPICA: ACPI 6.0: Add ACPI_SUB_PTR(). ACPICA commit 5de82757aef5d6163e37064033aacbce193abbca Using a minus number with ACPI_ADD_PTR() will cause compiler warnings, such warnings cannot be eliminated by force casting an unsigned value to a signed value. This patch thus introduces ACPI_SUB_PTR() to be used with minus numbers. Lv Zheng. Link: https://github.com/acpica/acpica/commit/5de82757 Signed-off-by: Lv Zheng Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki include/acpi/actypes.h | 1 + 1 file changed, 1 insertion(+) commit 0cff8dc0099f6d4f7431181918b37a472bcd1bbb Author: Bob Moore Date: Thu May 21 10:31:18 2015 +0800 ACPICA: ACPI 6.0: Add changes for MADT table. ACPICA commit 02cbb41232bccf7a91967140cab95d5f48291f21 New subtable type. Some additions to existing subtables. Link: https://github.com/acpica/acpica/commit/02cbb412 Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki include/acpi/actbl1.h | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) commit 2900d56ffb3bd23646db0d2562b6483329632e8a Author: Lv Zheng Date: Thu May 21 10:31:12 2015 +0800 ACPICA: Hardware: Fix a resource leak issue in acpi_hw_build_pci_list(). ACPICA commit e4f0b73c107680841d7dd01cc04ec108df6580bd There is code in acpi_hw_build_pci_list() destructing returned object (return_list_head) before touching it while the allocated new object (list_head) is not tracked correctly to be destructed on the error case, which is detected as unsecure code by the "Coverity" tool. This patch fixes this issue by always intializing the returned object in acpi_hw_build_pci_list() so that the caller of acpi_hw_build_pci_list() needn't initialize it and always using the returned object to track the new allocated objects. Lv Zheng. Link: https://github.com/acpica/acpica/commit/e4f0b73c Link: https://jira01.devtools.intel.com/browse/LCK-2143 Signed-off-by: Lv Zheng Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/hwpci.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit c8dec7459d9fcb880e5c42929d01c308bea9f823 Author: Lv Zheng Date: Thu May 21 10:31:06 2015 +0800 ACPICA: Dispatcher: Fix a resource leak issue in acpi_ds_auto_serialize_method(). ACPICA commit 29d03840cbab435e8ea82e9339ff9d84535c647d This patch fixes a resource leak issue in acpi_ds_auto_serialize_method(). It is reported by the "Coverity" tool as unsecure code. Lv Zheng. Link: https://github.com/acpica/acpica/commit/29d03840 Link: https://jira01.devtools.intel.com/browse/LCK-2142 Signed-off-by: Lv Zheng Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/dsmethod.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 9ab8cf1b699758d502411ad9d131ff521ca01cd6 Author: Bob Moore Date: Thu May 21 10:30:59 2015 +0800 ACPICA: ACPI 6.0: Add changes for LPIT table. ACPICA commit d527908bb33a3ed515cfb349cbec57121deafcc8 Second subtable type was removed from the July 2014 LPIT document. Link: https://github.com/acpica/acpica/commit/d527908b Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki include/acpi/actbl2.h | 20 ++------------------ 1 file changed, 2 insertions(+), 18 deletions(-) commit aeb823bbacc2a3aaee29eda5875b58a049fa1f78 Author: Bob Moore Date: Thu May 21 10:30:52 2015 +0800 ACPICA: ACPI 6.0: Add changes for FADT table. ACPICA commit 72b0b6741990f619f6aaa915302836b7cbb41ac4 One new 64-bit field at the end of the table. FADT version is now 6. Link: https://github.com/acpica/acpica/commit/72b0b674 Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki include/acpi/actbl.h | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) commit 68edb038231ada9ab39701b776224e4bb23f928e Author: Bob Moore Date: Thu May 21 10:30:44 2015 +0800 ACPICA: ACPI 6.0: Add support for WPBT table. ACPICA commit a6ccb4033b49f7aa33a17ddc41dd69d57e799fbd Windows Platform Binary Table. Link: https://github.com/acpica/acpica/commit/a6ccb403 Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki include/acpi/actbl3.h | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) commit a737222240848c771b2bc44880d3253fb7c03e13 Author: Bob Moore Date: Thu May 21 10:30:38 2015 +0800 ACPICA: iASL: Enhance detection of non-ascii or corrupted input files. ACPICA commit 08170904011f1e8f817d9e3a9f2bb2438aeacf60 For the compiler part (not disassembler). - Characters not within a comment must be be ASCII (0-0x7F), and now either printable or a "space" character. Provides better detection of files that cannot be compiled. This patch only affects iASL which is not in the Linux upstream. Link: https://github.com/acpica/acpica/commit/08170904 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/utfileio.c | 7 ++----- 2 files changed, 3 insertions(+), 6 deletions(-) commit b0e01c7241560b4e62b43e397b2bb3484e30e670 Author: Bob Moore Date: Thu May 21 10:30:31 2015 +0800 ACPICA: Parser: Move a couple externals to the proper header. ACPICA commit 7325b59c8b5d1522ded51ae6a76b804f6e8da5d2 Moved from a C module. Link: https://github.com/acpica/acpica/commit/7325b59c Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/acparser.h | 3 +++ drivers/acpi/acpica/psopinfo.c | 3 --- 2 files changed, 3 insertions(+), 3 deletions(-) commit b6944efd638d746653f69bc6cbbef7986c0ff962 Author: Bob Moore Date: Thu May 21 10:30:24 2015 +0800 ACPICA: ACPI 6.0: Add support for XENV table. ACPICA commit 08c4197cf4ddd45f0c961078220b0fc19c10745c Xen Environment table. Link: https://github.com/acpica/acpica/commit/08c4197c Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki include/acpi/actbl3.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit e34a7813cf7841ab351d1cb4152c2f4ceaa00070 Author: Bob Moore Date: Thu May 21 10:30:18 2015 +0800 ACPICA: ACPI 6.0: Add support for new predefined names. ACPICA commit 7ba68f2eafa12fe75ee7aa0df7543d5ea2443051 Compiler, Interpreter, acpi_help. _BTH, _CR3, _DSD, _LPI, _MTL, _PRR, _RDI, _RST, _TFP, _TSN. Link: https://github.com/acpica/acpica/commit/7ba68f2e Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/aclocal.h | 10 ++++++++++ drivers/acpi/acpica/acpredef.h | 45 +++++++++++++++++++++++++++++++++++++++--- drivers/acpi/acpica/nsprepkg.c | 13 ++++++++++++ drivers/acpi/acpica/nsrepair.c | 2 +- 4 files changed, 66 insertions(+), 4 deletions(-) commit 37e12657f8922ebc62f696494c56c81db509053e Author: Bob Moore Date: Thu May 21 10:30:11 2015 +0800 ACPICA: ACPI 6.0: Add support for STAO table. ACPICA commit 532bf402a503061afd9d80a23e1d3c8fd99b052c _STA override table. Link: https://github.com/acpica/acpica/commit/532bf402 Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki include/acpi/actbl3.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit f38a437862c61530d014a55db082d6c906edd5df Author: Bob Moore Date: Thu May 21 10:30:03 2015 +0800 ACPICA: Additional dragon_fly BSD support. ACPICA commit 3e93431674abe947202b0f9a0afa7b625b17caa6 Makefiles and environment defines. This commit doesn't affect Linux builds. Link: https://github.com/acpica/acpica/commit/3e934316 Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki include/acpi/platform/acenv.h | 3 +++ include/acpi/platform/acenvex.h | 3 +++ 2 files changed, 6 insertions(+) commit 3a38958d2477b718d1011fb88c24c4f264ee9700 Author: Laurent Pinchart Date: Thu May 21 16:07:37 2015 -0700 Input: adxl34x - add OF match support The I2C subsystem can match devices without explicit OF support based on the part of their compatible property after the comma. However, this mechanism uses the first compatible value only. For adxl34x OF device nodes the compatible property will contain the more specific "adi,adxl345" or "adi,adxl346" value first. This prevents the device node from being matched with the adxl34x driver. Fix this by adding an OF match table with an "adi,adxl345" compatible entry. There's no need to add the "adi,adxl346" entry as the ADXL346 is backward-compatible with the ADXL345 with differences handled by runtime detection of the device model. Signed-off-by: Laurent Pinchart Reviewed-by: Wolfram Sang Signed-off-by: Geert Uytterhoeven Signed-off-by: Dmitry Torokhov drivers/input/misc/adxl34x-i2c.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) commit e465bf6fc55d5ce21fb45a75c3fa613505e6be20 Author: Laurent Pinchart Date: Thu May 21 16:06:49 2015 -0700 DT: i2c: Deprecate adi,adxl34x compatible string DT nodes should use the more specific adi,adxl345 and adi,adxl346 compatible values instead. As the ADXL346 is backward-compatible with the ADXL345, ADXL346 nodes must list both adi,adxl346 and adi,adxl345, in that order. Signed-off-by: Laurent Pinchart Acked-by: Wolfram Sang Signed-off-by: Geert Uytterhoeven Signed-off-by: Dmitry Torokhov Documentation/devicetree/bindings/i2c/trivial-devices.txt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit b53d750884b26561a3e37f1a49775540120930e5 Author: Dmitry Torokhov Date: Tue Apr 14 17:46:43 2015 -0700 Input: cyapa - do not set otherwise unused variable As the name suggests, always_unused argument in cyapa_gen3_set_power_mode() is never used, so there is no reason for setting it to 0. Signed-off-by: Dmitry Torokhov drivers/input/mouse/cyapa_gen3.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit b66ba8d5a4d7ebcd140de808574c4c93fc71acaf Merge: 614919c3 def5cd3 Author: David S. Miller Date: Thu May 21 18:57:26 2015 -0400 Merge branch 'stmmac-probe-refactoring' Joachim Eastwood says: ==================== stmmac: probe code refactoring and clean up part 1 This patch set refactor the code in stmmac_pci_probe and stmmac_pltfr_probe and moves the common bits into stmmac_dvr_probe. Along the way some clean- ups are applied to stmmac_pltfr_probe. The code has been tested on the LPC18xx platform. I am still working on more refactoring of the platform probe code, hence part 1, but I need some more time on this. ==================== Signed-off-by: David S. Miller commit def5cd3cfd01704ca9bad1c32e75f0144b746511 Author: Joachim Eastwood Date: Wed May 20 20:03:09 2015 +0200 stmmac: drop unnecessary dt checks in stmmac_probe_config_dt Since the caller already check the presence of a of_node there is no need to repeat the check in stmmac_probe_config_dt. There is also no point in checking the return value of the of_match_device function since if there wasn't match in the first place we would never be in this function. Signed-off-by: Joachim Eastwood Signed-off-by: David S. Miller drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c | 6 ------ 1 file changed, 6 deletions(-) commit 15ffac73bb3e029e9f86deb45837b9a4999a9a46 Author: Joachim Eastwood Date: Wed May 20 20:03:08 2015 +0200 stmmac: change the stmmac_dvr_probe return type to int Since stmmac_dvr_probe takes care of setting driver data and assign resources to the priv structure there is no need to access the priv structure from the other probe functions. This mean that this function can be changed into just return an int and thus simplifying the callers. Signed-off-by: Joachim Eastwood Signed-off-by: David S. Miller drivers/net/ethernet/stmicro/stmmac/stmmac.h | 6 +++--- drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 15 +++++++-------- drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c | 11 +---------- drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c | 11 +---------- 4 files changed, 12 insertions(+), 31 deletions(-) commit e56788cf13eef6e998bc03200df9e00f64a3202d Author: Joachim Eastwood Date: Wed May 20 20:03:07 2015 +0200 stmmac: let stmmac_dvr_probe take a struct of resources Creat a struct that contain all the resources that needs to be assigned to the priv struct in stmmac_dvr_probe. This makes it possible to factor out more common code from the other probe functions and also use this struct to hold the resources as they are fetched. Signed-off-by: Joachim Eastwood Signed-off-by: David S. Miller drivers/net/ethernet/stmicro/stmmac/stmmac.h | 10 ++++- drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 15 ++++++-- drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c | 10 +++-- .../net/ethernet/stmicro/stmmac/stmmac_platform.c | 45 +++++++++------------- 4 files changed, 45 insertions(+), 35 deletions(-) commit 803f8fc46274bbd15757961be44a58ea6f3032d4 Author: Joachim Eastwood Date: Wed May 20 20:03:06 2015 +0200 stmmac: move driver data setting into stmmac_dvr_probe Move setting of driver data into stmmac_dvr_probe so the other probe functions don't have to. This will help to simplify the other probe functions later. Signed-off-by: Joachim Eastwood Signed-off-by: David S. Miller drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 2 ++ drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c | 2 -- drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c | 2 -- 3 files changed, 2 insertions(+), 4 deletions(-) commit 614919c3d9b38465e0aa377312f3f015fdd228b6 Merge: ce5ec44 946f9eb Author: David S. Miller Date: Thu May 21 18:55:32 2015 -0400 Merge branch 'tcp_src_port_selection' Eric Dumazet says: ==================== tcp: improve source port selection With increase of TCP sockets in hosts, we often hit limitations caused by port selection, due to randomization and poor strategy. ==================== Signed-off-by: David S. Miller commit 946f9eb226c296da0d6c630bdad282ca11d77f60 Author: Eric Dumazet Date: Wed May 20 10:59:02 2015 -0700 tcp: improve REUSEADDR/NOREUSEADDR cohabitation inet_csk_get_port() randomization effort tends to spread sockets on all the available range (ip_local_port_range) This is unfortunate because SO_REUSEADDR sockets have less requirements than non SO_REUSEADDR ones. If an application uses SO_REUSEADDR hint, it is to try to allow source ports being shared. So instead of picking a random port number in ip_local_port_range, lets try first in first half of the range. This gives more chances to use upper half of the range for the sockets with strong requirements (not using SO_REUSEADDR) Note this patch does not add a new sysctl, and only changes the way we try to pick port number. Signed-off-by: Eric Dumazet Cc: Marcelo Ricardo Leitner Cc: Flavio Leitner Acked-by: Flavio Leitner Signed-off-by: David S. Miller net/ipv4/inet_connection_sock.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit f5af1f57a2914e290de40e2c93716da8885c4965 Author: Eric Dumazet Date: Wed May 20 10:59:01 2015 -0700 inet_hashinfo: remove bsocket counter We no longer need bsocket atomic counter, as inet_csk_get_port() calls bind_conflict() regardless of its value, after commit 2b05ad33e1e624e ("tcp: bind() fix autoselection to share ports") This patch removes overhead of maintaining this counter and double inet_csk_get_port() calls under pressure. Signed-off-by: Eric Dumazet Cc: Marcelo Ricardo Leitner Cc: Flavio Leitner Acked-by: Flavio Leitner Signed-off-by: David S. Miller include/net/inet_hashtables.h | 2 -- net/ipv4/inet_connection_sock.c | 5 ----- net/ipv4/inet_hashtables.c | 7 ------- 3 files changed, 14 deletions(-) commit ce5ec440994b7b2b714633b516b9e0a4f6a98dfe Author: Jason Baron Date: Wed May 20 15:52:53 2015 +0000 tcp: ensure epoll edge trigger wakeup when write queue is empty We currently rely on the setting of SOCK_NOSPACE in the write() path to ensure that we wake up any epoll edge trigger waiters when acks return to free space in the write queue. However, if we fail to allocate even a single skb in the write queue, we could end up waiting indefinitely. Fix this by explicitly issuing a wakeup when we detect the condition of an empty write queue and a return value of -EAGAIN. This allows userspace to re-try as we expect this to be a temporary failure. I've tested this approach by artificially making sk_stream_alloc_skb() return NULL periodically. In that case, epoll edge trigger waiters will hang indefinitely in epoll_wait() without this patch. Signed-off-by: Jason Baron Acked-by: Eric Dumazet Signed-off-by: David S. Miller net/ipv4/tcp.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 5b83b2234be6733cfe22036c38031b2c890b3db8 Author: Tony Lindgren Date: Thu May 21 15:51:52 2015 -0700 mmc: omap_hsmmc: Change wake-up interrupt to use generic wakeirq We can now use generic wakeirq handling and remove the custom handling for the wake-up interrupts. Acked-by: Ulf Hansson Signed-off-by: Tony Lindgren drivers/mmc/host/omap_hsmmc.c | 49 ++++++------------------------------------- 1 file changed, 6 insertions(+), 43 deletions(-) commit b92d581499417556c3baa8161d1f983f96610939 Merge: 4e7b3be 9f5ac48 Author: David S. Miller Date: Thu May 21 18:46:36 2015 -0400 Merge branch 'cxgb4-next' Hariprasad Shenai says: ==================== cxgb4: Cleanup and update T4/T4 register ranges This series cleans and optimizes setup_memwin function and also updates T4/T5 adapter register ranges by removing incorrect register addresses This patch series has been created against net-next tree and includes patches on cxgb4 driver. We have included all the maintainers of respective drivers. Kindly review the change and let us know in case of any review comments. ==================== Signed-off-by: David S. Miller commit 9f5ac48de331734db41c70ff2c64ff187fbe422c Author: Hariprasad Shenai Date: Wed May 20 17:53:46 2015 +0530 cxgb4: Update T4/T5 adapter register ranges Remove some T4/T5 registers that were included incorrectly. Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 75 ++++++++++++++++++------------ 1 file changed, 44 insertions(+), 31 deletions(-) commit b562fc3713d807a8ae66aeabe18fd9eb3f5e7f48 Author: Hariprasad Shenai Date: Wed May 20 17:53:45 2015 +0530 cxgb4: Optimize and cleanup setup memory window code Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4.h | 4 ++ drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 79 +------------------- drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 96 +++++++++++++++++++++++++ 3 files changed, 102 insertions(+), 77 deletions(-) commit 4e7b3be4064249140ab34361a9df4897b27e3648 Merge: 4ec49a3 910c878 Author: David S. Miller Date: Thu May 21 18:43:55 2015 -0400 Merge branch 'sfc-next' Shradha Shah says: ==================== sfc: Get/Set MAC address and ndo_[set/get]_vf_* entrypoint functions This is the second installment of patches towards supporting EF10 SRIOV. This patch series implements the ndo_get_vf_config, ndo_set_vf_mac, ndo_set_vf_vlan and ndo_set_vf_spoofcheck function callbacks for EF10. This patch series also introduces privileges for the MCDI commands based on which functions are allowed to call them, i.e. Link control or primary function. The patch series has been tested with and without CONFIG_SFC_SRIOV. The ndo function callbacks are tested using ip link. ==================== Signed-off-by: David S. Miller commit 910c8789a777c0a18cd997765de291b49bd26906 Author: Shradha Shah Date: Wed May 20 11:12:48 2015 +0100 sfc: set the MAC address using MC_CMD_VADAPTOR_SET_MAC Add a set_mac_address() NIC-type function for EF10 only, and use this to set the MAC address on the vadaptor. For Siena and earlier, the MAC address continues to be set by MC_CMD_SET_MAC; this is still called on EF10, and including a MAC address in this command has no effect. The sriov_mac_address_changed() NIC-type function is no longer needed on EF10, but it is needed for Siena where it is used to update the peer address of the PF for VFDI. Change this to use the new set_mac_address function pointer. efx_ef10_sriov_mac_address_changed() is no longer called, as VFs will try to change the MAC address on their vadaptor rather than trying to change to the context of the PF to alter the vport. When a VF is running in direct passthrough mode with MAC spoofing enabled, it will be able to change the MAC address on its vadaptor. In this case, there is a link to the PF, so find the correct VF in its ef10_vf array and update the MAC address. ndo_set_mac_address() can be called during driver unload while bonding, and in this case the device has already been stopped, so don't call efx_net_open() to restart it after reconfiguration. efx->port_enabled is set to false in efx_stop_port(), so it is indicator of whether the device needs to be restarted. Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10.c | 75 ++++++++++++++++++++++++++++++++++- drivers/net/ethernet/sfc/ef10_sriov.h | 4 -- drivers/net/ethernet/sfc/efx.c | 4 +- drivers/net/ethernet/sfc/mcdi_pcol.h | 40 +++++++++++++++++++ drivers/net/ethernet/sfc/mcdi_port.c | 1 + drivers/net/ethernet/sfc/net_driver.h | 3 +- drivers/net/ethernet/sfc/siena.c | 2 +- 7 files changed, 120 insertions(+), 9 deletions(-) commit 860d2ffa755974d04e196aec700a68b940df10ef Author: Shradha Shah Date: Wed May 20 11:12:30 2015 +0100 sfc: Implement dummy disable of VF spoof check for EF10 Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10_sriov.c | 6 ++++++ drivers/net/ethernet/sfc/ef10_sriov.h | 7 ++----- 2 files changed, 8 insertions(+), 5 deletions(-) commit 4392dc6900618c1d5137a3cd43805d746a2c563a Author: Edward Cree Date: Wed May 20 11:12:13 2015 +0100 sfc: add ndo_set_vf_link_state() function for EF10 Exercised with "ip link set vf state {auto|enable|disable}" Sets the reporting policy for VF link state to either - mirror physical link state - always up - always down get VF link state mode in efx_ef10_sriov_get_vf_config Exercised by "ip link show "; output will include a line like vf 0 MAC 12:34:56:78:9a:bc, link-state auto Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10.c | 1 + drivers/net/ethernet/sfc/ef10_sriov.c | 40 +++++++++++++++++++++++++++++++++++ drivers/net/ethernet/sfc/ef10_sriov.h | 3 +++ drivers/net/ethernet/sfc/efx.c | 1 + drivers/net/ethernet/sfc/mcdi_pcol.h | 32 ++++++++++++++++++++++++++++ drivers/net/ethernet/sfc/net_driver.h | 2 ++ drivers/net/ethernet/sfc/sriov.c | 12 +++++++++++ drivers/net/ethernet/sfc/sriov.h | 2 ++ 8 files changed, 93 insertions(+) commit 2d432f20d27c1813a2746008e16dd6ce12a14dc1 Author: Shradha Shah Date: Wed May 20 11:11:54 2015 +0100 sfc: add ndo_set_vf_vlan() function for EF10 The max vlan tags that can be offloaded is 2, including any upstream VLAN aggregator. Currently there is no way for the net driver to know whether the upstream vswitch (if any) is using vlan tags, so there is no way to know how many tags we can request. Along with the implementation for the ndo_set_vf_vlan callback, this patch also adds 2 VLAN tags for the driver created VEB switch if possible, that way it is possible to offload as many tags as are allowed. Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10_sriov.c | 159 ++++++++++++++++++++++++++++++++-- drivers/net/ethernet/sfc/ef10_sriov.h | 10 +-- 2 files changed, 157 insertions(+), 12 deletions(-) commit 087e90255035f914f5be2eb2a7ae3a3850066138 Author: Jon Cooper Date: Wed May 20 11:11:35 2015 +0100 sfc: Change entity reset on MC reboot to a new datapath-only reset. Currently we do an entity reset when we detect an MC reboot. This messes up SRIOV because it leaves VFs orphaned. The extra reset is rather redundant anyway, since the MC reboot will have basically reset everything. This change replaces the entity reset after MC reboot with a simpler datapath reset that reallocates resources but doesn't perform the entity reset. Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10.c | 12 ++++++++++-- drivers/net/ethernet/sfc/efx.c | 8 ++++++-- drivers/net/ethernet/sfc/enum.h | 2 ++ drivers/net/ethernet/sfc/mcdi.c | 4 +++- 4 files changed, 21 insertions(+), 5 deletions(-) commit b9af90499a9ac3b42f364216ec65e9c096c3a076 Author: Shradha Shah Date: Wed May 20 11:11:18 2015 +0100 sfc: Add ndo_get_vf_config() function for EF10 rtnetlink calls ndo_get_vf_config when compiling information about a network interface, so that the VFs associated with a PF can be listed (eg: ip link show). Implement a response to this entry point and return PF-set MAC address for VF in ndo_get_vf_config Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10_sriov.c | 24 ++++++++++++++++++++++++ drivers/net/ethernet/sfc/ef10_sriov.h | 7 ++----- 2 files changed, 26 insertions(+), 5 deletions(-) commit e340be923012bfbc8935aa0af5638349939c82d2 Author: Shradha Shah Date: Wed May 20 11:11:03 2015 +0100 sfc: add ndo_set_vf_mac() function for EF10 Implement a response to this entrypoint. The ndo_set_vf_mac() entrypoint is only exposed in the driver if CONFIG_SFC_SRIOV is defined. Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10_sriov.c | 90 +++++++++++++++++++++++++++++++++++ drivers/net/ethernet/sfc/ef10_sriov.h | 6 +-- drivers/net/ethernet/sfc/efx.c | 4 +- drivers/net/ethernet/sfc/efx.h | 3 ++ 4 files changed, 96 insertions(+), 7 deletions(-) commit aa09a3da70a45a5030034b8ec8a8b945da44ebd4 Author: Jon Cooper Date: Wed May 20 11:10:41 2015 +0100 sfc: Initialise MCDI buffers to 0 on declaration. In order to avoid MC bugs the flags field needs to be set to 0. Instead of explicitly clearing out the flags individually, a better way to do this is to memset the MCDI_BUF to 0. Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10.c | 28 +++++++++++++++------------- drivers/net/ethernet/sfc/mcdi.c | 8 ++++---- drivers/net/ethernet/sfc/mcdi.h | 8 +++++--- drivers/net/ethernet/sfc/ptp.c | 6 +++--- 4 files changed, 27 insertions(+), 23 deletions(-) commit 0d5e0fbba0ced95cc642d89a95120dcc9ec5be57 Author: Daniel Pieczko Date: Wed May 20 11:10:20 2015 +0100 sfc: Enable a VF to get its own MAC address A VF's MAC address is set by its parent PF and added to its vport. To get this MAC address, the VF must use MC_CMD_ VPORT_GET_MAC_ADDRESSES. In the current scheme, a VF's vport should only have one MAC address, so warn if this is not the case. Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10.c | 35 +++++++++++++++++++++++++++++++++-- drivers/net/ethernet/sfc/net_driver.h | 1 + 2 files changed, 34 insertions(+), 2 deletions(-) commit 0d322413d6cff0bd2ccafc03ab9314dc55417e9d Author: Edward Cree Date: Wed May 20 11:10:03 2015 +0100 sfc: protect filter table against use-after-free If MCDI timeouts are encountered during efx_ef10_filter_table_remove(), an FLR will be queued, but efx->filter_state will still be kfree()d. The queued FLR will then call efx_ef10_filter_table_restore(), which will try to use efx->filter_state. This previously caused a panic. This patch adds an rwsem to protect the existence of efx->filter_state, separately from the spinlock protecting its contents. Users which can race against efx_ef10_filter_table_remove() should down_read this rwsem. Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10.c | 19 +++++++++++++++++ drivers/net/ethernet/sfc/efx.c | 39 ++++++++++++++++++++++++++--------- drivers/net/ethernet/sfc/efx.h | 2 ++ drivers/net/ethernet/sfc/ethtool.c | 2 +- drivers/net/ethernet/sfc/net_driver.h | 5 ++++- 5 files changed, 55 insertions(+), 12 deletions(-) commit f1122a345b96713eb6e059121c592b3c0612f5be Author: Shradha Shah Date: Wed May 20 11:09:46 2015 +0100 sfc: Store the efx_nic struct of the current VF in the VF data struct Initialised in efx_probe_vf and removal is dealt with in efx_ef10_remove. vf->efx is needed in future patches to change the MAC address of the VF via the parent PF, while the driver is bound to the VF. Example: ip link set dev vf NUM mac LLADDR Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10.c | 32 ++++++++++++++++++++++++++++++++ drivers/net/ethernet/sfc/ef10_sriov.c | 3 +++ drivers/net/ethernet/sfc/ef10_sriov.h | 2 ++ 3 files changed, 37 insertions(+) commit cfc77c2fbadf5b806fea2e35738c7437fc62f522 Author: Shradha Shah Date: Wed May 20 11:09:30 2015 +0100 sfc: save old MAC address in case sriov_mac_address_changed fails Otherwise the PF and VF can disagree on the VF's MAC address and this leads to strange behaviour, up to and including kernel panics. Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10_sriov.h | 5 ++++- drivers/net/ethernet/sfc/efx.c | 13 +++++++++++-- drivers/net/ethernet/sfc/net_driver.h | 2 +- drivers/net/ethernet/sfc/siena_sriov.c | 6 ++++-- drivers/net/ethernet/sfc/siena_sriov.h | 2 +- 5 files changed, 21 insertions(+), 7 deletions(-) commit 88a37de674f8a7c7622bb00d78437153b31e3797 Author: Shradha Shah Date: Wed May 20 11:09:15 2015 +0100 sfc: Store vf_index in nic_data for Ef10. Added function efx_ef10_get_vf_index to store the vf_index in nic_data during probe vf_index is needed in future patches to access a particular VF in the VF data structure. Moved efx_ef10_probe_pf and efx_ef10_probe_vf in order to used efx_ef10_remove Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10.c | 68 ++++++++++++++++++++++++++++++----------- drivers/net/ethernet/sfc/nic.h | 1 + 2 files changed, 52 insertions(+), 17 deletions(-) commit 862f894cb98c50d037d0c62da2aab3b9a2428c34 Author: Shradha Shah Date: Wed May 20 11:08:56 2015 +0100 sfc: MC_CMD_SET_MAC can only be called by the link control Function MC_CMD_SET_MAC is privileged and can only by called by the link control function. This patch adds efx_ef10_mac_reconfigure_vf which avoids the call to MC_CMD_SET_MAC by the Virtual function Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit af6a074d125558e420453c0068f9bdf13f42cadf Author: Shradha Shah Date: Wed May 20 11:08:40 2015 +0100 sfc: change definition of MC_CMD_VADAPTOR_ALLOC Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/mcdi_pcol.h | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) commit 75122ec8ffd498caddac0771a1446ac3b84b7897 Author: Shradha Shah Date: Wed May 20 11:08:23 2015 +0100 sfc: Add permissions to MCDI commands There is one primary function per adaptor, one link control function per port and the rest as categorised as general. This patch adds privileges to the MCDI commands based on which functions are allowed to call them. Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/mcdi_pcol.h | 294 +++++++++++++++++++++++++++++++++++ 1 file changed, 294 insertions(+) commit 4ec49a372c2e732975be57987f695b89b930f20a Author: Vineet Gupta Date: Wed May 20 12:04:40 2015 +0530 stmmac: replace open coded __netdev_alloc_skb_ip_align() with actual call This also matches with the sibling call netdev_alloc_skb_ip_align() made in rx fast path. Signed-off-by: Vineet Gupta Signed-off-by: David S. Miller drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 5343325ff3dd299f459fa9dacbd95dca5c9bf215 Author: Dinh Nguyen Date: Tue May 19 22:22:42 2015 -0500 clk: socfpga: add a clock driver for the Arria 10 platform The clocks on the Arria 10 platform is a bit different than the Cyclone/Arria 5 platform that it should just have it's own driver. Signed-off-by: Dinh Nguyen Signed-off-by: Stephen Boyd drivers/clk/socfpga/Makefile | 1 + drivers/clk/socfpga/clk-gate-a10.c | 190 +++++++++++++++++++++++++++++++++++ drivers/clk/socfpga/clk-periph-a10.c | 138 +++++++++++++++++++++++++ drivers/clk/socfpga/clk-pll-a10.c | 129 ++++++++++++++++++++++++ drivers/clk/socfpga/clk.c | 7 +- drivers/clk/socfpga/clk.h | 5 + 6 files changed, 469 insertions(+), 1 deletion(-) commit 5611a5ba8e5435740df99235b262b553f687b13b Author: Dinh Nguyen Date: Tue May 19 22:22:41 2015 -0500 clk: socfpga: update clk.h so for Arria10 platform to use There are 5 possible parent clocks for the SoCFPGA Arria10. Move the define SYSMGR_SDMMC_CTRL_SET and streq() to clk.h so that the Arria clock driver can use. Signed-off-by: Dinh Nguyen Signed-off-by: Stephen Boyd drivers/clk/socfpga/clk-gate.c | 4 ---- drivers/clk/socfpga/clk.h | 6 +++++- 2 files changed, 5 insertions(+), 5 deletions(-) commit eab6ee1ce3c4678224d70338134f7a02005768cb Author: Martin K. Petersen Date: Tue May 19 19:44:17 2015 -0400 libata: Fix regression when the NCQ Send and Receive log page is absent Commit 5d3abf8ff67f ("libata: Fall back to unqueued READ LOG EXT if the DMA variant fails") allowed us to fall back to the unqueued READ LOG variant if the queued version failed. However, if the device did not support the page at all we would end up looping due to a merge snafu. Ensure we only take the fallback path once. Signed-off-by: Martin K. Petersen Reported-by: Sergey Senozhatsky Tested-by: Sergey Senozhatsky Signed-off-by: Tejun Heo drivers/ata/libata-eh.c | 1 + 1 file changed, 1 insertion(+) commit 7bf15c4360b384e34d685616a77a8abf7dd8aea5 Author: Tony Lindgren Date: Thu May 21 14:50:23 2015 -0700 ARM: OMAP1: Fix section mismatch warnings for omap_cfg_reg This is cleary used after init time too for example for configuring UART wake-up events during runtime. This fixes section mismatch warnings for randconfig builds that happen because __init_or_module. Signed-off-by: Tony Lindgren arch/arm/mach-omap1/mux.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit e99b32e27147fd02d5a17b4d39b12e7a6562610c Author: Tony Lindgren Date: Thu May 21 14:50:23 2015 -0700 ARM: OMAP1: Fix randconfig builds if ARCH_OMAP15XX not selected With the omap1 SPARSE_IRQ changes mach/irqs.h is no longer automatically included. Turns out now we rely on ARCH_OMAP15XX including hardware.h from memory.h, so without ARCH_OMAP15XX we get build failures. As we have legacy drivers still relying on these indirect includes, let's not add more mach includes to the drivers. Those have to be removed anyways for multiplatform support. Let's fix up mach-omap1 to include soc.h where cpu_is_omap checks are done, and common.h for board-*.c files. But let's keep the indirect memory.h include for now to avoid unnecessary churn in the drivers. Signed-off-by: Tony Lindgren arch/arm/mach-omap1/board-h3-mmc.c | 1 + arch/arm/mach-omap1/common.h | 2 ++ arch/arm/mach-omap1/gpio16xx.c | 2 ++ arch/arm/mach-omap1/gpio7xx.c | 2 ++ arch/arm/mach-omap1/include/mach/memory.h | 4 +++- arch/arm/mach-omap1/pm.c | 1 + arch/arm/mach-omap1/serial.c | 1 + 7 files changed, 12 insertions(+), 1 deletion(-) commit 3205f8063b6cc54b20d5080fb79dfcbd9c39e93d Author: Steven Rostedt (Red Hat) Date: Thu May 21 17:39:29 2015 -0400 ring-buffer: Add unlikelys to make fast path the default I was running the trace_event benchmark and noticed that the times to record a trace_event was all over the place. I looked at the assembly of the ring_buffer_lock_reserver() and saw this: : 31 c0 xor %eax,%eax 48 83 3d 76 47 bd 00 cmpq $0x1,0xbd4776(%rip) # ffffffff81d10d60 01 55 push %rbp 48 89 e5 mov %rsp,%rbp 75 1d jne ffffffff8113c60d 65 ff 05 69 e3 ec 7e incl %gs:0x7eece369(%rip) # a960 <__preempt_count> 8b 47 08 mov 0x8(%rdi),%eax 85 c0 test %eax,%eax +---- 74 12 je ffffffff8113c610 | 65 ff 0d 5b e3 ec 7e decl %gs:0x7eece35b(%rip) # a960 <__preempt_count> | 0f 84 85 00 00 00 je ffffffff8113c690 | 31 c0 xor %eax,%eax | 5d pop %rbp | c3 retq | 90 nop +---> 65 44 8b 05 48 e3 ec mov %gs:0x7eece348(%rip),%r8d # a960 <__preempt_count> 7e 41 81 e0 ff ff ff 7f and $0x7fffffff,%r8d b0 08 mov $0x8,%al 65 8b 0d 58 36 ed 7e mov %gs:0x7eed3658(%rip),%ecx # fc80 41 f7 c0 00 ff 1f 00 test $0x1fff00,%r8d 74 1e je ffffffff8113c64f 41 f7 c0 00 00 10 00 test $0x100000,%r8d b0 01 mov $0x1,%al 75 13 jne ffffffff8113c64f 41 81 e0 00 00 0f 00 and $0xf0000,%r8d 49 83 f8 01 cmp $0x1,%r8 19 c0 sbb %eax,%eax 83 e0 02 and $0x2,%eax 83 c0 02 add $0x2,%eax 85 c8 test %ecx,%eax 75 ab jne ffffffff8113c5fe 09 c8 or %ecx,%eax 65 89 05 24 36 ed 7e mov %eax,%gs:0x7eed3624(%rip) # fc80 The arrow is the fast path. After adding the unlikely's, the fast path looks a bit better: : 31 c0 xor %eax,%eax 48 83 3d 76 47 bd 00 cmpq $0x1,0xbd4776(%rip) # ffffffff81d10d60 01 55 push %rbp 48 89 e5 mov %rsp,%rbp 75 7b jne ffffffff8113c66b 65 ff 05 69 e3 ec 7e incl %gs:0x7eece369(%rip) # a960 <__preempt_count> 8b 47 08 mov 0x8(%rdi),%eax 85 c0 test %eax,%eax 0f 85 9f 00 00 00 jne ffffffff8113c6a1 65 8b 0d 57 e3 ec 7e mov %gs:0x7eece357(%rip),%ecx # a960 <__preempt_count> 81 e1 ff ff ff 7f and $0x7fffffff,%ecx b0 08 mov $0x8,%al 65 8b 15 68 36 ed 7e mov %gs:0x7eed3668(%rip),%edx # fc80 f7 c1 00 ff 1f 00 test $0x1fff00,%ecx 75 50 jne ffffffff8113c670 85 d0 test %edx,%eax 75 7d jne ffffffff8113c6a1 09 d0 or %edx,%eax 65 89 05 53 36 ed 7e mov %eax,%gs:0x7eed3653(%rip) # fc80 65 8b 05 fc da ec 7e mov %gs:0x7eecdafc(%rip),%eax # a130 89 c2 mov %eax,%edx Signed-off-by: Steven Rostedt kernel/trace/ring_buffer.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 6ec0a86c645be3fce7ade42f165a6a417c3503b1 Author: Arnd Bergmann Date: Tue May 19 16:34:05 2015 +0200 ata: hpt366: fix constant cast warning gcc-5.x warns about a preexisting problem in the hpt36x pata driver: drivers/ata/pata_hpt366.c: In function 'hpt36x_init_one': drivers/ata/pata_hpt366.c:376:9: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-array-qualifiers] Other ata drivers have the same problem, as ata_pci_bmdma_init_one takes a non-const pointer, and they solve it by using a cast to turn that pointer into a normal non-const pointer. I also tried to change the ata core code to make host->private_data a const pointer, but that quickly got out of hand, as some other drivers expect it to be writable, so I ended up using the same hack as the others here. Signed-off-by: Arnd Bergmann Acked-by: Bartlomiej Zolnierkiewicz Signed-off-by: Tejun Heo drivers/ata/pata_hpt366.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 81dff8692865292aa70ec3fd93489ae9f33f709e Author: Andrzej Pietrasiewicz Date: Mon May 18 17:40:04 2015 +0200 usb: gadget: rndis: use signed type for a signed value rndis_get_nr() returns either a non-negative value on success or a negative value on failure. In case of failure an error code is returned to the caller of rndis_register(). If the "i" is unsigned, the information about error from rndis_get_nr() is lost. If there is no error but rndis_get_nr() returns a value greater than 256 the least significant bits of i are zero effectively limiting the number of configs to 256. This patch fixes that. Signed-off-by: Andrzej Pietrasiewicz Signed-off-by: Felipe Balbi drivers/usb/gadget/function/rndis.c | 4 ++-- drivers/usb/gadget/function/rndis.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit c0d96af2e0427cc90b1f0d3c6a5294d90f93fcf4 Author: Andrzej Pietrasiewicz Date: Mon May 18 17:40:03 2015 +0200 usb: gadget: rndis: don't duplicate the "i" variable If CONFIG_USB_GADGET_DEBUG_FILES is set then a block is opened and inside it there is a local variable "i" which hides the "i" local to the rndis_deregister(). Consequently, a random value is formatted into the "name" buffer. This patch removes the block-local i. Signed-off-by: Andrzej Pietrasiewicz Signed-off-by: Felipe Balbi drivers/usb/gadget/function/rndis.c | 1 - 1 file changed, 1 deletion(-) commit 868055fdd2399cbb0cb3fe0cd7b5047a3a77b8b9 Author: Andrzej Pietrasiewicz Date: Mon May 18 17:40:02 2015 +0200 usb: gadget: rndis: change the value passed to rndis_signal_(dis)connect() The patch: 83210e59ee1527f229af6aef78c95b747bdcf9c4 usb: gadget: rndis: use rndis_params instead of configNr should change all invocations of rndis_signal_(dis)connect(). This patch fixes that. Signed-off-by: Andrzej Pietrasiewicz Signed-off-by: Felipe Balbi drivers/usb/gadget/function/rndis.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 37b1ef31a568fc02e53587620226e5f3c66454c8 Author: Lai Jiangshan Date: Wed May 20 14:41:19 2015 +0800 workqueue: move flush_scheduled_work() to workqueue.h flush_scheduled_work() is just a simple call to flush_work(). Signed-off-by: Lai Jiangshan Signed-off-by: Tejun Heo include/linux/workqueue.h | 30 +++++++++++++++++++++++++++++- kernel/workqueue.c | 30 ------------------------------ 2 files changed, 29 insertions(+), 31 deletions(-) commit 899a94fe15a8e928277ff0d0402c086fa67fe16f Author: Lai Jiangshan Date: Wed May 20 14:41:18 2015 +0800 workqueue: remove the lock from wq_sysfs_prep_attrs() Reading to wq->unbound_attrs requires protection of either wq_pool_mutex or wq->mutex, and wq_sysfs_prep_attrs() is called with wq_pool_mutex held, so we don't need to grab wq->mutex here. Signed-off-by: Lai Jiangshan Signed-off-by: Tejun Heo kernel/workqueue.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit da7f91b2e2c6176f95ca7b538d74dc70c5d11ded Author: Lai Jiangshan Date: Wed May 20 14:41:17 2015 +0800 workqueue: remove the declaration of copy_workqueue_attrs() This pre-declaration was unneeded since a previous refactor patch 6ba94429c8e7 ("workqueue: Reorder sysfs code"). Signed-off-by: Lai Jiangshan Signed-off-by: Tejun Heo kernel/workqueue.c | 2 -- 1 file changed, 2 deletions(-) commit 5a74f70a733fc79a37ee8462ae59de6897d17eed Author: Ville Syrjälä Date: Tue May 5 17:17:38 2015 +0300 drm/i915: Disable FDI RX/TX before the ports Bspec says we should disable the FDI RX/TX before disabling the PCH ports. Do so. Signed-off-by: Ville Syrjälä Reviewed-by: Jesse Barnes Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 3f6e785fe113febd037af6351fc375eb428ff65b Author: Joe Perches Date: Tue May 19 21:44:52 2015 -0700 qlge: Move jiffies_to_usecs immediately before loop 30 usecs (or really, 1 jiffy) can go by pretty fast. Move the set of the timeout immediately before the loop. Remove the unnecessary max(1ul, usecs_to_jiffies(30)) as usecs_to_jiffies with a non-zero constant is guaranteed to be non-zero. Signed-off-by: Joe Perches Signed-off-by: David S. Miller drivers/net/ethernet/qlogic/qlge/qlge_main.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 1ea56e269e136544c0a76dc831c5edc27c47cb3c Author: Ville Syrjälä Date: Tue May 5 17:17:37 2015 +0300 drm/i915: Disable CRT port after pipe on PCH platforms Follow the BSpec sequence for the CRT port as well on PCH platforms, ie. disable the pipe before the port. Didn't bother looking at DDI in detail yet, so leave that one be even though the CRT is a PCH port there. Signed-off-by: Ville Syrjälä Reviewed-by: Jesse Barnes Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_crt.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) commit 9e4980896c46ed84d0aa27382e18d1cacb7cb86e Author: Srinivas Kandagatla Date: Fri May 15 10:38:27 2015 +0100 ASoC: skip legacy dai naming if dai driver has all the information Original issue is that the id field in the dai is not same as the id in dai_driver when dai driver count == 1. This is due to the legacy dai naming check, which could possibly cause issues if the audio drivers written in assumption that dai->id would be always equal to dai_driver->id. This assumption is true only if the dai driver count is greater than 1, and false if dai driver count is 1. On Qcom Lpass driver we hit such issue while adding support to apq8016. The code path which falls back to legacy naming for cases where num_dai == 1 does not check if there is any valid information in the dai_driver. This patch fixes that by checking if the dai_driver has valid id and name before falling back to legacy dai naming Although the drivers can work around this issue by only using dai->driver->id, but this patch attempts to fix the actual issue. Suggested-by: Lars-Peter Clausen Signed-off-by: Srinivas Kandagatla Acked-by: Kenneth Westfield Signed-off-by: Mark Brown sound/soc/soc-core.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 3c65d1d1bb92ea959e8bce3eeae90fe5c3daa58a Author: Ville Syrjälä Date: Tue May 5 17:17:36 2015 +0300 drm/i915: Disable SDVO port after the pipe on PCH platforms While at it also remove the redundant/unneeded w/a like done for hdmi already. Signed-off-by: Ville Syrjälä Reviewed-by: Jesse Barnes [danvet: Mention that this also removes the unneeded w/a, as suggested by Jesse.] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_sdvo.c | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) commit a4790cec3adf5eec91f397b1884706a71c70730f Author: Ville Syrjälä Date: Tue May 5 17:17:35 2015 +0300 drm/i915: Disable HDMI port after the pipe on PCH platforms BSpec says we should disable all ports after the pipe on PCH platforms. Do so. Fixes a pipe off timeout on ILK now caused by the transcoder B workaround. Signed-off-by: Ville Syrjälä Reviewed-by: Jesse Barnes Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_hdmi.c | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) commit 4ac2dc8928d186f93572398b3897c59e9eb591e5 Merge: e26cc7f df6a206 Author: David S. Miller Date: Thu May 21 17:20:55 2015 -0400 Merge branch 'rocker-transaction-fixes' Simon Horman says: ==================== rocker: transaction fixes this series addresses what appear to be errors in the handling of prepare and then commit transactions in the rocker driver. In all cases the problem is that data structures visible outside of the transaction are modified during the prepare phase. In the case of the first two patches this results in the kernel reporting a BUG. I have noted test-cases in the change logs. The third patch is also a bug fix, as noted by Toshiaki Makita, however I have not been able to reliably reproduce the problem and thus have not provided a test case. The last patch is a correctness fix that does not fix a bug that manifests as far as I can tell. Changes: v3->v4 * All patches - Add Jiri Pirko's ack * "rocker: do not make neighbour entry changes when preparing transactions" - Setting of entry values in all transaction phases as suggested by Toshiaki Makita * "rocker: make rocker_port_internal_vlan_id_{get,put}() non-transactional" - Remove Fixes tag as I believe this is a correctness rather than a bug fix Changes: v2->v3 * "rocker: do not make neighbour entry changes when preparing transactions" - Correct inverted logic - Added ack from Scott Feldman Changes: v1->v2 * "rocker: do not make neighbour entry changes when preparing transactions" - Revised changelog to reflect information from Toshiaki Makita that there is a bug that can manifest - Update address and ttl regardless of the value of the transaction state * All other patches - Added acks from Scott Feldman ==================== Signed-off-by: David S. Miller commit df6a20673011e89f7fbe3d667eee0a9550679841 Author: Simon Horman Date: Thu May 21 12:40:17 2015 +0900 rocker: make rocker_port_internal_vlan_id_{get, put}() non-transactional The motivation for this is that rocker_port_internal_vlan_id_{get,put} appear to only partially implement the transaction model: memory allocation and freeing is transactional, but hash and bitmap manipulation is not. The latter could be fixed, however, as it is not currently exercised due to trans always being SWITCHDEV_TRANS_NONE it seems cleaner to make rocker_port_internal_vlan_id_get non-transactional. This problem was introduced by c4f20321d968 ("rocker: support prepare-commit transaction model"). Found by inspection. I do not believe that this change should have any run-time effect. Acked-by: Scott Feldman Acked-by: Jiri Pirko Signed-off-by: Simon Horman Signed-off-by: David S. Miller drivers/net/ethernet/rocker/rocker.c | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) commit 550ecc92feb10fdb7ab1d052707b11bca955de5f Author: Simon Horman Date: Thu May 21 12:40:16 2015 +0900 rocker: do not make neighbour entry changes when preparing transactions rocker_port_ipv4_nh() and in turn rocker_port_ipv4_neigh() may be be called with trans == SWITCHDEV_TRANS_PREPARE and then trans == SWITCHDEV_TRANS_COMMIT from switchdev_port_obj_set() via fib_table_insert(). The first time that rocker_port_ipv4_nh() is called, with trans == SWITCHDEV_TRANS_PREPARE, _rocker_neigh_add() adds a new entry to the neigh table. And the second time rocker_port_ipv4_nh() is called, with trans == SWITCHDEV_TRANS_COMMIT, that entry is found. This causes rocker_port_ipv4_nh() to believe it is not adding an entry and thus it frees "entry", which is still present in rocker driver's neigh table. This problem does not appear to affect deletion as my analysis is that deletion is always performed with trans == SWITCHDEV_TRANS_NONE. For completeness _rocker_neigh_{add,del,prepare} are updated not to manipulate fib table entries if trans == SWITCHDEV_TRANS_PREPARE. Fixes: c4f20321d968 ("rocker: support prepare-commit transaction model") Reported-by: Toshiaki Makita Acked-by: Scott Feldman Acked-by: Jiri Pirko Signed-off-by: Simon Horman Signed-off-by: David S. Miller drivers/net/ethernet/rocker/rocker.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) commit 42e9488971f26c07719e99e33d14811488d31632 Author: Simon Horman Date: Thu May 21 12:40:15 2015 +0900 rocker: do not modify fdb table in rocker_port_fdb() when preparing transactions rocker_port_fdb_flush() may be called be called with trans == SWITCHDEV_TRANS_PREPARE and then trans == SWITCHDEV_TRANS_COMMIT from switchdev_port_attr_set() via switchdev_port_obj_add(). Adding the new entry to the FDB table when trans == SWITCHDEV_TRANS_PREPARE may result in a memory leak because when trans == SWITCHDEV_TRANS_PREPARE rocker_flow_tbl_bridge() will allocate memory when called via rocker_port_fdb_learn(). However, when trans == SWITCHDEV_TRANS_COMMIT the presence of the FDB entry in the FDB table causes rocker_port_fdb() to set the ROCKER_OP_FLAG_REFRESH flag which results in rocker_port_fdb_learn() skipping the call to rocker_flow_tbl_bridge() which would free the memory allocated by it when trans == SWITCHDEV_TRANS_PREPARE. ip link add br0 type bridge ip link set up dev eth0 ip link set dev eth0 master br0 bridge fdb add 52:54:00:12:35:08 dev eth0 bridge fdb add 52:54:00:12:35:09 dev eth0 [ 2.600730] ------------[ cut here ]------------ [ 2.601002] kernel BUG at drivers/net/ethernet/rocker/rocker.c:4369! [ 2.601373] invalid opcode: 0000 [#1] SMP [ 2.601963] Modules linked in: [ 2.602355] CPU: 0 PID: 64 Comm: bridge Not tainted 4.1.0-rc3-01048-g6d0f50c50211-dirty #1075 [ 2.602721] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.8.0-0-g4c59f5d-20150219_092859-nilsson.home.kraxel.org 04/01/2014 [ 2.602721] task: ffff880019facef0 ti: ffff88001f96c000 task.ti: ffff88001f96c000 [ 2.602721] RIP: 0010:[] [] rocker_port_obj_add+0x150/0x160 [ 2.602721] RSP: 0018:ffff88001f96fa98 EFLAGS: 00000212 [ 2.602721] RAX: ffff880019d4fa68 RBX: ffff88001f96fb18 RCX: 0000000000000000 [ 2.602721] RDX: ffff880019d4f000 RSI: ffff88001f96fb18 RDI: ffff880019d4f000 [ 2.602721] RBP: 0000000000000001 R08: 0000000000000000 R09: ffff88001f904620 [ 2.602721] R10: ffff88001f96fb60 R11: ffff880019e9d100 R12: ffff88001f96fb18 [ 2.602721] R13: ffff880019d4f680 R14: ffff88001f904610 R15: ffff8800198f7b80 [ 2.602721] FS: 00007f3eee917700(0000) GS:ffff88001b000000(0000) knlGS:0000000000000000 [ 2.602721] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 2.602721] CR2: 00007f3eee4a15cb CR3: 000000001f933000 CR4: 00000000000006b0 [ 2.602721] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 2.602721] DR3: 0000000000000000 DR6: 0000000000000000 DR7: 0000000000000000 [ 2.602721] Stack: [ 2.602721] 0000000000000000 ffff88001f96fb18 ffff880019d4f000 ffff88001f96fb18 [ 2.602721] ffff880019d4f000 ffffffff81332105 ffff88001f96fb50 ffffffff814464c0 [ 2.602721] ffff88001f96fb18 ffff88001f904600 ffff880019d4f000 ffffffff813326e5 [ 2.602721] Call Trace: [ 2.602721] [] ? __switchdev_port_obj_add+0x25/0x90 [ 2.602721] [] ? switchdev_port_obj_add+0x25/0xc0 [ 2.602721] [] ? switchdev_port_fdb_add+0x31/0x40 [ 2.602721] [] ? rtnl_fdb_add+0xff/0x1e0 [ 2.602721] [] ? rtnetlink_rcv_msg+0x7e/0x250 [ 2.602721] [] ? __skb_recv_datagram+0xfe/0x4b0 [ 2.602721] [] ? rtnetlink_rcv+0x30/0x30 [ 2.602721] [] ? netlink_rcv_skb+0xa8/0xd0 [ 2.602721] [] ? rtnetlink_rcv+0x1f/0x30 [ 2.602721] [] ? netlink_unicast+0x150/0x200 [ 2.602721] [] ? netlink_sendmsg+0x374/0x3e0 [ 2.602721] [] ? sock_sendmsg+0xf/0x30 [ 2.602721] [] ? ___sys_sendmsg+0x1f3/0x200 [ 2.602721] [] ? ___sys_recvmsg+0x105/0x140 [ 2.602721] [] ? SyS_readahead+0x90/0x90 [ 2.602721] [] ? filemap_map_pages+0x1ed/0x210 [ 2.602721] [] ? handle_mm_fault+0x5fc/0xe50 [ 2.602721] [] ? __sys_sendmsg+0x39/0x70 [ 2.602721] [] ? system_call_fastpath+0x12/0x6a [ 2.602721] Code: b7 8f a0 06 00 00 48 83 bf 88 06 00 00 00 74 1d 48 83 c4 08 89 ee 4c 89 ef 5b 5d 41 5c 41 5d 0f b7 c9 45 31 c0 e9 51 db ff ff 90 <0f> 0b b8 ea ff ff ff e9 cf fe ff ff 0f 1f 40 00 41 57 41 56 b9 [ 2.602721] RIP [] rocker_port_obj_add+0x150/0x160 [ 2.602721] RSP [ 2.615848] ---[ end trace 4f7b4f1c98077108 ]--- The above is resolved by not adding the new FDB entry to the FDB table if trans == SWITCHDEV_TRANS_PREPARE. For symmetry this patch also skips deleting FDB entries from the FDB table trans == SWITCHDEV_TRANS_PREPARE. However, my analysis is that this never occurs as trans is always SWITCHDEV_TRANS_NONE when removing FDB entries. Fixes: c4f20321d968 ("rocker: support prepare-commit transaction model") Acked-by: Scott Feldman Acked-by: Jiri Pirko Signed-off-by: Simon Horman Signed-off-by: David S. Miller drivers/net/ethernet/rocker/rocker.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 3098ac39630c8908fb13cd3137a4629c04df9fe3 Author: Simon Horman Date: Thu May 21 12:40:14 2015 +0900 rocker: do not delete fdb entries in rocker_port_fdb_flush() when preparing transactions rocker_port_fdb_flush() is called by rocker_port_stp_update() which in turn may be called with trans == SWITCHDEV_TRANS_PREPARE and then trans == SWITCHDEV_TRANS_COMMIT from switchdev_port_attr_set() via br_set_state(). When rocker_port_fdb_flush() is called with trans == SWITCHDEV_TRANS_PREPARE it calls rocker_port_fdb_learn() for each entry in the FDB table which in turn calls rocker_flow_tbl_bridge() which will allocate memory using rocker_port_kzalloc(). rocker_port_fdb_learn() will then remove the entry from the FDB table. Then when rocker_port_fdb_learn() is called with trans == SWITCHDEV_TRANS_PREPARE no calls are made to rocker_port_fdb_learn() because there are no longer any entries present in the FDB table. Thus the memory previously allocated by rocker_port_fdb_learn() is leaked resulting in the kernel BUG() below. Furthermore, it looks like the driver ends up with an incorrect view of the fdb table as the FDB entries are purged from the driver's table but not the hardware's table. ip link add br0 type bridge ip link set up dev eth0 sleep 1 ip link set dev eth0 master br0 [ 3.704360] ------------[ cut here ]------------ [ 3.704611] kernel BUG at drivers/net/ethernet/rocker/rocker.c:4289! [ 3.704962] invalid opcode: 0000 [#1] SMP [ 3.705537] Modules linked in: [ 3.705919] CPU: 0 PID: 63 Comm: ip Not tainted 4.1.0-rc3-01046-gb9fbe709de4d #1044 [ 3.706191] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.8.0-0-g4c59f5d-20150219_092859-nilsson.home.kraxel.org 04/01/2014 [ 3.706820] task: ffff880019f70150 ti: ffff88001f92c000 task.ti: ffff88001f92c000 [ 3.707138] RIP: 0010:[] [] rocker_port_attr_set+0xe0/0xf0 [ 3.707990] RSP: 0018:ffff88001f92f808 EFLAGS: 00000212 [ 3.708200] RAX: ffff880019d4fa68 RBX: ffff880019d4f000 RCX: 0000000000000000 [ 3.708471] RDX: 000000000000000c RSI: ffff88001f92f890 RDI: ffff880019d4f680 [ 3.708740] RBP: 0000000000000001 R08: 0000000000000000 R09: 0000000000000004 [ 3.708999] R10: ffff880000034024 R11: 0000000000000000 R12: ffff88001f92f890 [ 3.709276] R13: ffff88001f8f1c00 R14: 000000000000000b R15: 0000000000000000 [ 3.709303] FS: 00007f8ab66bd700(0000) GS:ffff88001b000000(0000) knlGS:0000000000000000 [ 3.709303] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 3.709303] CR2: 0000000000654988 CR3: 000000001f8f3000 CR4: 00000000000006b0 [ 3.709303] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 3.709303] DR3: 0000000000000000 DR6: 0000000000000000 DR7: 0000000000000000 [ 3.709303] Stack: [ 3.709303] ffff88001f8f1c00 000000000000000b ffff88001f92f890 ffff880019d4f000 [ 3.709303] ffff88001f92f890 ffffffff813332f5 ffff88001f92f880 0000000000000000 [ 3.709303] ffff88001f92f890 0000000000000001 ffff880019d4f000 ffffffff81333627 [ 3.709303] Call Trace: [ 3.709303] [] ? __switchdev_port_attr_set+0x25/0x90 [ 3.709303] [] ? switchdev_port_attr_set+0x27/0x120 [ 3.709303] [] ? br_set_state+0x36/0x50 [ 3.709303] [] ? br_add_if+0x37c/0x400 [ 3.709303] [] ? do_setlink+0x7e1/0x800 [ 3.709303] [] ? radix_tree_lookup_slot+0x10/0x30 [ 3.709303] [] ? nla_parse+0xaa/0x110 [ 3.709303] [] ? rtnl_newlink+0x548/0x870 [ 3.709303] [] ? __radix_tree_lookup+0x40/0xb0 [ 3.709303] [] ? nla_parse+0x2e/0x110 [ 3.709303] [] ? rtnetlink_rcv_msg+0x7e/0x250 [ 3.709303] [] ? __skb_recv_datagram+0xfe/0x4b0 [ 3.709303] [] ? rtnetlink_rcv+0x30/0x30 [ 3.709303] [] ? netlink_rcv_skb+0xa8/0xd0 [ 3.709303] [] ? rtnetlink_rcv+0x1f/0x30 [ 3.709303] [] ? netlink_unicast+0x150/0x200 [ 3.709303] [] ? netlink_sendmsg+0x374/0x3e0 [ 3.709303] [] ? sock_sendmsg+0xf/0x30 [ 3.709303] [] ? ___sys_sendmsg+0x1f3/0x200 [ 3.709303] [] ? ___sys_recvmsg+0x105/0x140 [ 3.709303] [] ? dev_get_by_name_rcu+0x69/0x90 [ 3.709303] [] ? dev_get_by_name_rcu+0x69/0x90 [ 3.709303] [] ? skb_dequeue+0x4d/0x60 [ 3.709303] [] ? skb_queue_purge+0x20/0x30 [ 3.709303] [] ? __inode_wait_for_writeback+0x5f/0xb0 [ 3.709303] [] ? autoremove_wake_function+0x30/0x30 [ 3.709303] [] ? __sys_sendmsg+0x39/0x70 [ 3.709303] [] ? system_call_fastpath+0x12/0x6a [ 3.709303] Code: bb 90 06 00 00 48 c7 04 24 00 00 00 00 45 31 c9 45 31 c0 48 c7 c1 c0 b7 1e 81 89 ea e8 da da ff ff eb 95 0f 1f 84 00 00 00 00 00 <0f> 0b 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 48 83 fe 15 75 [ 3.709303] RIP [] rocker_port_attr_set+0xe0/0xf0 [ 3.709303] RSP [ 3.721409] ---[ end trace b7481fcb7cb032aa ]--- Segmentation fault Fixes: c4f20321d968 ("rocker: support prepare-commit transaction model") Acked-by: Scott Feldman Acked-by: Jiri Pirko Signed-off-by: Simon Horman Signed-off-by: David S. Miller drivers/net/ethernet/rocker/rocker.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 7a0a1759f7b157f56b8f291f3664db4b65963c8a Author: Jane Wan Date: Fri May 1 16:37:42 2015 -0700 spi: fsl-espi: Fix an error that can cause fsl espi task blocked Incorrect condition is used in spin_event_timeout(). When the TX is done, the SPIE_NF bit in ESPI_SPIE register is set to 1 to indicate the Tx FIFO is not full. If the bit is 0, it indicates the Tx FIFO is full. Due to this error, if the Tx FIFO is full at the beginning, but becomes not full after handling the Rx FIFO (the SPIE_NF bit is set), the spin_event_timeout() returns with timeout occurred. It causes the interrupt handler not to send completion notification to the thread that called wait_for_complete() waiting for the notification. Signed-off-by: Jane Wan Signed-off-by: Mark Brown drivers/spi/spi-fsl-espi.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit e26cc7ff77ac9726c05e9595998121a7e17d32ee Author: Joe Perches Date: Tue May 19 18:37:55 2015 -0700 spider_net: Use DECLARE_BITMAP Use the generic mechanism to declare a bitmap instead of unsigned long. Signed-off-by: Joe Perches Signed-off-by: David S. Miller drivers/net/ethernet/toshiba/spider_net.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit fa5f509fb5a9d189de9fe59d41be25f6b350b7cb Author: Laxman Dewangan Date: Wed May 6 18:20:10 2015 +0530 regulator: max8973: get rid of extra variable for gpio validity To find that dvs-gpio is valid or not, gpio API gpio_is_valid() can be directly used instead of intermediate variable. Removing the extra variable and using the gpio_is_valid(). Signed-off-by: Laxman Dewangan Signed-off-by: Mark Brown drivers/regulator/max8973-regulator.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit eaacaa09e42ab9ae0ebc25fc2b72aef02e3f284a Author: Laxman Dewangan Date: Wed May 6 18:20:09 2015 +0530 regulator: max8973: make default/unset dvs gpio as invalid gpio If platform data has dvs-gpio value 0 as default/unset then make this as invalid gpio so that function gpio_is_valid() can return false on this case. Signed-off-by: Laxman Dewangan Signed-off-by: Mark Brown drivers/regulator/max8973-regulator.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3f55b7ed5e5d4aa7291e3a1e2f7224eeba5810ba Merge: e7582ba 530b2c8 Author: David S. Miller Date: Thu May 21 17:08:00 2015 -0400 Merge branch 'ebpf-tail-call' Alexei Starovoitov says: ==================== bpf: introduce bpf_tail_call() helper introduce bpf_tail_call(ctx, &jmp_table, index) helper function which can be used from BPF programs like: int bpf_prog(struct pt_regs *ctx) { ... bpf_tail_call(ctx, &jmp_table, index); ... } that is roughly equivalent to: int bpf_prog(struct pt_regs *ctx) { ... if (jmp_table[index]) return (*jmp_table[index])(ctx); ... } The important detail that it's not a normal call, but a tail call. The kernel stack is precious, so this helper reuses the current stack frame and jumps into another BPF program without adding extra call frame. It's trivially done in interpreter and a bit trickier in JITs. Use cases: - simplify complex programs - dispatch into other programs (for example: index in jump table can be syscall number or network protocol) - build dynamic chains of programs The chain of tail calls can form unpredictable dynamic loops therefore tail_call_cnt is used to limit the number of calls and currently is set to 32. patch 1 - support bpf_tail_call() in interpreter patch 2 - support in x64 JIT We've discussed what's neccessary to support it in arm64/s390 JITs and it looks fine. patch 3 - sample example for tracing patch 4 - sample example for networking More details in every patch. This set went through several iterations of reviews/fixes and older attempts can be seen: https://git.kernel.org/cgit/linux/kernel/git/ast/bpf.git/log/?h=tail_call_v[123456] - tail_call_v1 does it without touching JITs but introduces overhead for all programs that don't use this helper function. - tail_call_v2 still has some overhead and x64 JIT does full stack unwind (prologue skipping optimization wasn't there) - tail_call_v3 reuses 'call' instruction encoding and has interpreter overhead for every normal call - tail_call_v4 fixes above architectural shortcomings and v5,v6 fix few more bugs This last tail_call_v6 approach seems to be the best. ==================== Signed-off-by: David S. Miller commit 530b2c8619f25f9c332c85510579943aa46df515 Author: Alexei Starovoitov Date: Tue May 19 16:59:06 2015 -0700 samples/bpf: bpf_tail_call example for networking Usage: $ sudo ./sockex3 IP src.port -> dst.port bytes packets 127.0.0.1.42010 -> 127.0.0.1.12865 1568 8 127.0.0.1.59526 -> 127.0.0.1.33778 11422636 173070 127.0.0.1.33778 -> 127.0.0.1.59526 11260224828 341974 127.0.0.1.12865 -> 127.0.0.1.42010 1832 12 IP src.port -> dst.port bytes packets 127.0.0.1.42010 -> 127.0.0.1.12865 1568 8 127.0.0.1.59526 -> 127.0.0.1.33778 23198092 351486 127.0.0.1.33778 -> 127.0.0.1.59526 22972698518 698616 127.0.0.1.12865 -> 127.0.0.1.42010 1832 12 this example is similar to sockex2 in a way that it accumulates per-flow statistics, but it does packet parsing differently. sockex2 inlines full packet parser routine into single bpf program. This sockex3 example have 4 independent programs that parse vlan, mpls, ip, ipv6 and one main program that starts the process. bpf_tail_call() mechanism allows each program to be small and be called on demand potentially multiple times, so that many vlan, mpls, ip in ip, gre encapsulations can be parsed. These and other protocol parsers can be added or removed at runtime. TLVs can be parsed in similar manner. Note, tail_call_cnt dynamic check limits the number of tail calls to 32. Signed-off-by: Alexei Starovoitov Signed-off-by: David S. Miller samples/bpf/Makefile | 4 + samples/bpf/bpf_helpers.h | 2 + samples/bpf/sockex3_kern.c | 303 +++++++++++++++++++++++++++++++++++++++++++++ samples/bpf/sockex3_user.c | 66 ++++++++++ 4 files changed, 375 insertions(+) commit 5bacd7805ab4f07a69c7ef4b1d45ce553d2b1c3a Author: Alexei Starovoitov Date: Tue May 19 16:59:05 2015 -0700 samples/bpf: bpf_tail_call example for tracing kprobe example that demonstrates how future seccomp programs may look like. It attaches to seccomp_phase1() function and tail-calls other BPF programs depending on syscall number. Existing optimized classic BPF seccomp programs generated by Chrome look like: if (sd.nr < 121) { if (sd.nr < 57) { if (sd.nr < 22) { if (sd.nr < 7) { if (sd.nr < 4) { if (sd.nr < 1) { check sys_read } else { if (sd.nr < 3) { check sys_write and sys_open } else { check sys_close } } } else { } else { } else { } else { } else { } the future seccomp using native eBPF may look like: bpf_tail_call(&sd, &syscall_jmp_table, sd.nr); which is simpler, faster and leaves more room for per-syscall checks. Usage: $ sudo ./tracex5 <...>-366 [001] d... 4.870033: : read(fd=1, buf=00007f6d5bebf000, size=771) <...>-369 [003] d... 4.870066: : mmap <...>-369 [003] d... 4.870077: : syscall=110 (one of get/set uid/pid/gid) <...>-369 [003] d... 4.870089: : syscall=107 (one of get/set uid/pid/gid) sh-369 [000] d... 4.891740: : read(fd=0, buf=00000000023d1000, size=512) sh-369 [000] d... 4.891747: : write(fd=1, buf=00000000023d3000, size=512) sh-369 [000] d... 4.891747: : read(fd=1, buf=00000000023d3000, size=512) Signed-off-by: Alexei Starovoitov Signed-off-by: David S. Miller samples/bpf/Makefile | 4 +++ samples/bpf/bpf_helpers.h | 2 ++ samples/bpf/bpf_load.c | 57 +++++++++++++++++++++++++++-------- samples/bpf/tracex5_kern.c | 75 ++++++++++++++++++++++++++++++++++++++++++++++ samples/bpf/tracex5_user.c | 46 ++++++++++++++++++++++++++++ 5 files changed, 172 insertions(+), 12 deletions(-) commit b52f00e6a7154308a08d0a2edab621f277801a2c Author: Alexei Starovoitov Date: Tue May 19 16:59:04 2015 -0700 x86: bpf_jit: implement bpf_tail_call() helper bpf_tail_call() arguments: ctx - context pointer jmp_table - one of BPF_MAP_TYPE_PROG_ARRAY maps used as the jump table index - index in the jump table In this implementation x64 JIT bypasses stack unwind and jumps into the callee program after prologue, so the callee program reuses the same stack. The logic can be roughly expressed in C like: u32 tail_call_cnt; void *jumptable[2] = { &&label1, &&label2 }; int bpf_prog1(void *ctx) { label1: ... } int bpf_prog2(void *ctx) { label2: ... } int bpf_prog1(void *ctx) { ... if (tail_call_cnt++ < MAX_TAIL_CALL_CNT) goto *jumptable[index]; ... and pass my 'ctx' to callee ... ... fall through if no entry in jumptable ... } Note that 'skip current program epilogue and next program prologue' is an optimization. Other JITs don't have to do it the same way. >From safety point of view it's valid as well, since programs always initialize the stack before use, so any residue in the stack left by the current program is not going be read. The same verifier checks are done for the calls from the kernel into all bpf programs. Signed-off-by: Alexei Starovoitov Signed-off-by: David S. Miller arch/x86/net/bpf_jit_comp.c | 150 +++++++++++++++++++++++++++++++++++++------- 1 file changed, 126 insertions(+), 24 deletions(-) commit 04fd61ab36ec065e194ab5e74ae34a5240d992bb Author: Alexei Starovoitov Date: Tue May 19 16:59:03 2015 -0700 bpf: allow bpf programs to tail-call other bpf programs introduce bpf_tail_call(ctx, &jmp_table, index) helper function which can be used from BPF programs like: int bpf_prog(struct pt_regs *ctx) { ... bpf_tail_call(ctx, &jmp_table, index); ... } that is roughly equivalent to: int bpf_prog(struct pt_regs *ctx) { ... if (jmp_table[index]) return (*jmp_table[index])(ctx); ... } The important detail that it's not a normal call, but a tail call. The kernel stack is precious, so this helper reuses the current stack frame and jumps into another BPF program without adding extra call frame. It's trivially done in interpreter and a bit trickier in JITs. In case of x64 JIT the bigger part of generated assembler prologue is common for all programs, so it is simply skipped while jumping. Other JITs can do similar prologue-skipping optimization or do stack unwind before jumping into the next program. bpf_tail_call() arguments: ctx - context pointer jmp_table - one of BPF_MAP_TYPE_PROG_ARRAY maps used as the jump table index - index in the jump table Since all BPF programs are idenitified by file descriptor, user space need to populate the jmp_table with FDs of other BPF programs. If jmp_table[index] is empty the bpf_tail_call() doesn't jump anywhere and program execution continues as normal. New BPF_MAP_TYPE_PROG_ARRAY map type is introduced so that user space can populate this jmp_table array with FDs of other bpf programs. Programs can share the same jmp_table array or use multiple jmp_tables. The chain of tail calls can form unpredictable dynamic loops therefore tail_call_cnt is used to limit the number of calls and currently is set to 32. Use cases: Acked-by: Daniel Borkmann ========== - simplify complex programs by splitting them into a sequence of small programs - dispatch routine For tracing and future seccomp the program may be triggered on all system calls, but processing of syscall arguments will be different. It's more efficient to implement them as: int syscall_entry(struct seccomp_data *ctx) { bpf_tail_call(ctx, &syscall_jmp_table, ctx->nr /* syscall number */); ... default: process unknown syscall ... } int sys_write_event(struct seccomp_data *ctx) {...} int sys_read_event(struct seccomp_data *ctx) {...} syscall_jmp_table[__NR_write] = sys_write_event; syscall_jmp_table[__NR_read] = sys_read_event; For networking the program may call into different parsers depending on packet format, like: int packet_parser(struct __sk_buff *skb) { ... parse L2, L3 here ... __u8 ipproto = load_byte(skb, ... offsetof(struct iphdr, protocol)); bpf_tail_call(skb, &ipproto_jmp_table, ipproto); ... default: process unknown protocol ... } int parse_tcp(struct __sk_buff *skb) {...} int parse_udp(struct __sk_buff *skb) {...} ipproto_jmp_table[IPPROTO_TCP] = parse_tcp; ipproto_jmp_table[IPPROTO_UDP] = parse_udp; - for TC use case, bpf_tail_call() allows to implement reclassify-like logic - bpf_map_update_elem/delete calls into BPF_MAP_TYPE_PROG_ARRAY jump table are atomic, so user space can build chains of BPF programs on the fly Implementation details: ======================= - high performance of bpf_tail_call() is the goal. It could have been implemented without JIT changes as a wrapper on top of BPF_PROG_RUN() macro, but with two downsides: . all programs would have to pay performance penalty for this feature and tail call itself would be slower, since mandatory stack unwind, return, stack allocate would be done for every tailcall. . tailcall would be limited to programs running preempt_disabled, since generic 'void *ctx' doesn't have room for 'tail_call_cnt' and it would need to be either global per_cpu variable accessed by helper and by wrapper or global variable protected by locks. In this implementation x64 JIT bypasses stack unwind and jumps into the callee program after prologue. - bpf_prog_array_compatible() ensures that prog_type of callee and caller are the same and JITed/non-JITed flag is the same, since calling JITed program from non-JITed is invalid, since stack frames are different. Similarly calling kprobe type program from socket type program is invalid. - jump table is implemented as BPF_MAP_TYPE_PROG_ARRAY to reuse 'map' abstraction, its user space API and all of verifier logic. It's in the existing arraymap.c file, since several functions are shared with regular array map. Signed-off-by: Alexei Starovoitov Signed-off-by: David S. Miller include/linux/bpf.h | 22 +++++++++ include/linux/filter.h | 2 +- include/uapi/linux/bpf.h | 10 +++++ kernel/bpf/arraymap.c | 113 ++++++++++++++++++++++++++++++++++++++++++++--- kernel/bpf/core.c | 73 +++++++++++++++++++++++++++++- kernel/bpf/syscall.c | 23 +++++++++- kernel/bpf/verifier.c | 17 +++++++ kernel/trace/bpf_trace.c | 2 + net/core/filter.c | 2 + 9 files changed, 255 insertions(+), 9 deletions(-) commit 1612c8bd4cef20dd06e8622bb8ab9bbe9f90c0e5 Author: Ville Syrjälä Date: Tue May 5 17:17:34 2015 +0300 drm/i915: Fix the IBX transcoder B workarounds Currently the IBX transcoder B workarounds are not working correctly. Well, the HDMI one seems to be working somewhat, but the DP one is definitely busted. After a bit of experimentation it looks like the best way to make this work is first disable the port on transcoder B, and then re-enable it transcoder A, and immediately disable it again. We can also clean up the code by noting that we can't be called without a valid crtc. And also note that port A on ILK does not need the workaround, so let's check for that one too. Signed-off-by: Ville Syrjälä Reviewed-by: Jesse Barnes Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_dp.c | 37 ++++++++++++++++------------- drivers/gpu/drm/i915/intel_hdmi.c | 50 ++++++++++++++++++--------------------- drivers/gpu/drm/i915/intel_sdvo.c | 41 +++++++++++++------------------- 3 files changed, 60 insertions(+), 68 deletions(-) commit e7582bab5d28ea72e07cf2c74632eaf46a6c1a50 Author: Daniel Borkmann Date: Tue May 19 22:33:25 2015 +0200 net: dev: reduce both ingress hook ifdefs Reduce ifdef pollution slightly, no functional change. We can simply remove the extra alternative definition of handle_ing() and nf_ingress(). Signed-off-by: Daniel Borkmann Acked-by: Pablo Neira Ayuso Signed-off-by: David S. Miller net/core/dev.c | 22 ++++------------------ 1 file changed, 4 insertions(+), 18 deletions(-) commit e8504ee293f62b380b55b727d2da7aa429db8f8d Author: Ville Syrjälä Date: Tue May 5 17:17:33 2015 +0300 drm/i915: Write the SDVO reg twice on IBX On IBX the SDVO/HDMI register write may be masked when enabling the port, so it may need to written twice. The HDMI code does this, but the SDVO code does not. Add the workaround to the SDVO code as well. Signed-off-by: Ville Syrjälä Reviewed-by: Jesse Barnes Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_sdvo.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit e3ef4479bb05dce255750ff10ec97c8675c0771b Author: Ville Syrjälä Date: Tue May 5 17:17:31 2015 +0300 drm/i915: Fix DP enhanced framing for CPT Currently we're always enabling enhanced framing on CPT even if the sink doesn't support it. Fix this up by actaully looking at what the sink tells us. Signed-off-by: Ville Syrjälä Reviewed-by: Jesse Barnes Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 3 +-- drivers/gpu/drm/i915/intel_dp.c | 9 +++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) commit adc289d749cf5b70bc5476045cc683f68898dba2 Author: Ville Syrjälä Date: Tue May 5 17:17:30 2015 +0300 drm/i915: Clean up the CPT DP .get_hw_state() port readout Define a TRANS_DP_PIPE_TO_PORT() to make the CPT DP .get_hw_state() pipe readout neater. Signed-off-by: Ville Syrjälä Reviewed-by: Jesse Barnes Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_reg.h | 1 + drivers/gpu/drm/i915/intel_dp.c | 26 +++++--------------------- 2 files changed, 6 insertions(+), 21 deletions(-) commit eb9344781a2f8381ed60cd9e662d9ced2d168ecb Author: Eric Dumazet Date: Tue May 19 13:26:55 2015 -0700 tcp: add a force_schedule argument to sk_stream_alloc_skb() In commit 8e4d980ac215 ("tcp: fix behavior for epoll edge trigger") we fixed a possible hang of TCP sockets under memory pressure, by allowing sk_stream_alloc_skb() to use sk_forced_mem_schedule() if no packet is in socket write queue. It turns out there are other cases where we want to force memory schedule : tcp_fragment() & tso_fragment() need to split a big TSO packet into two smaller ones. If we block here because of TCP memory pressure, we can effectively block TCP socket from sending new data. If no further ACK is coming, this hang would be definitive, and socket has no chance to effectively reduce its memory usage. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller include/net/sock.h | 3 ++- net/ipv4/tcp.c | 19 +++++++++++-------- net/ipv4/tcp_output.c | 10 +++++----- 3 files changed, 18 insertions(+), 14 deletions(-) commit 39e5fa8886f9d52e5ebbd70af3e0fd14492e8c60 Author: Ville Syrjälä Date: Tue May 5 17:17:29 2015 +0300 drm/i915: Clarfify the DP code platform checks intel_dp.c is a mess with all the checks for different platform/PCH variants and ports. Try to clean it up by recognizing the following facts: - IVB port A, and CPT port B/C/D are always the special cases - VLV/CHV don't have port A - Using the same kind of logic everywhere makes things much easier to parse So let's move the IVB port A and PCH port B/C/D checks to be done first, and let the other cases fall through, and always check for these things using the same logic. Signed-off-by: Ville Syrjälä Reviewed-by: Jesse Barnes Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_dp.c | 46 ++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 23 deletions(-) commit c52bcef72afafd89cc3bb71313581ad56eecf725 Author: Ville Syrjälä Date: Tue May 5 17:17:28 2015 +0300 drm/i915: Remove the double register write from intel_disable_hdmi() IBX can have problems with the first write to the port register getting masked when enabling the port. We are trying to apply the workaround also when disabling the port where it's not needed, and we also try to apply it for CPT/PPT as well which don't need it. Just kill it. Signed-off-by: Ville Syrjälä Reviewed-by: Jesse Barnes [danvet: Resolve conflict with the remove CHV if block.] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_hdmi.c | 8 -------- 1 file changed, 8 deletions(-) commit 9deef024a12ebae4965c89837f662905ac88944b Author: Haikun Wang Date: Wed May 13 18:12:15 2015 +0800 spi: spi-fsl-dspi: Bug fix incorrect CS de-assert SPI chip select signal need to keep asserted between several spi_transfer in the same spi_message usually. But the driver will de-assert CS signal and the assert it between serval spi_transfer in the same spi_message under some condiations. This patch fix the bug. Here is an example: Assume you have two variables like the following, struct spi_transfer a; struct spi_transfer b; if you send a spi_message only includes 'a' first, and then you send a spi_message includes 'a' and 'b' but without resetting 'a'. Driver will de-assert CS and then assert CS between 'a' and 'b'. Signed-off-by: Haikun Wang Signed-off-by: Mark Brown drivers/spi/spi-fsl-dspi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit ccbaefa09d73f8724b3040b80a2521454af61ae4 Author: Ville Syrjälä Date: Tue May 5 17:17:27 2015 +0300 drm/i915: Remove a bogus 12bpc "toggle" from intel_disable_hdmi() The IBX 12bpc port enable toggle is only relevant when enabling the port, not when disabling it. Also this code doesn't actually toggle anything, and essentially just writes the port register one extra time. Furthermore CPT/PPT don't need such workarounds and yet we include them. Just kill it. Signed-off-by: Ville Syrjälä Reviewed-by: Jesse Barnes Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_hdmi.c | 8 -------- 1 file changed, 8 deletions(-) commit 765c9c639fbb132af0cafc6e1da22fe6cea26bb8 Author: Erik Kline Date: Mon May 18 19:44:41 2015 +0900 neigh: Better handling of transition to NUD_PROBE state [1] When entering NUD_PROBE state via neigh_update(), perhaps received from userspace, correctly (re)initialize the probes count to zero. This is useful for forcing revalidation of a neighbor (for example if the host is attempting to do DNA [IPv4 4436, IPv6 6059]). [2] Notify listeners when a neighbor goes into NUD_PROBE state. By sending notifications on entry to NUD_PROBE state listeners get more timely warnings of imminent connectivity issues. The current notifications on entry to NUD_STALE have somewhat limited usefulness: NUD_STALE is a perfectly normal state, as is NUD_DELAY, whereas notifications on entry to NUD_FAILURE come after a neighbor reachability problem has been confirmed (typically after three probes). Signed-off-by: Erik Kline Acked-By: Lorenzo Colitti Acked-by: Hannes Frederic Sowa Signed-off-by: David S. Miller net/core/neighbour.c | 3 +++ 1 file changed, 3 insertions(+) commit 5d96d8afcfbb1500272756747e0bfcdbebf3b070 Author: Damien Lespiau Date: Thu May 21 16:37:48 2015 +0100 drm/i915/skl: Deinit/init the display at suspend/resume We need to re-init the display hardware when going out of suspend. This includes: - Hooking the PCH to the reset logic - Restoring CDCDLK - Enabling the DDB power Among those, only the CDCDLK one is a bit tricky. There's some complexity in that: - DPLL0 (which is the source for CDCLK) has two VCOs, each with a set of supported frequencies. As eDP also uses DPLL0 for its link rate, once DPLL0 is on, we restrict the possible eDP link rates the chosen VCO. - CDCLK also limits the bandwidth available to push pixels. So, as a first step, this commit restore what the BIOS set, until I can do more testing. In case that's of interest for the reviewer, I've unit tested the function that derives the decimal frequency field: #include #include #include #define ARRAY_SIZE(x) (sizeof(x) / sizeof(*(x))) static const struct dpll_freq { unsigned int freq; unsigned int decimal; } freqs[] = { { .freq = 308570, .decimal = 0b01001100111}, { .freq = 337500, .decimal = 0b01010100001}, { .freq = 432000, .decimal = 0b01101011110}, { .freq = 450000, .decimal = 0b01110000010}, { .freq = 540000, .decimal = 0b10000110110}, { .freq = 617140, .decimal = 0b10011010000}, { .freq = 675000, .decimal = 0b10101000100}, }; static void intbits(unsigned int v) { int i; for(i = 10; i >= 0; i--) putchar('0' + ((v >> i) & 1)); } static unsigned int freq_decimal(unsigned int freq /* in kHz */) { return (freq - 1000) / 500; } static void test_freq(const struct dpll_freq *entry) { unsigned int decimal = freq_decimal(entry->freq); printf("freq: %d, expected: ", entry->freq); intbits(entry->decimal); printf(", got: "); intbits(decimal); putchar('\n'); assert(decimal == entry->decimal); } int main(int argc, char **argv) { int i; for (i = 0; i < ARRAY_SIZE(freqs); i++) test_freq(&freqs[i]); return 0; } v2: - Rebase on top of -nightly - Use (freq - 1000) / 500 for the decimal frequency (Ville) - Fix setting the enable bit of HSW_NDE_RSTWRN_OPT (Ville) - Rename skl_display_{resume,suspend} to skl_{init,uninit}_cdclk to be consistent with the BXT code (Ville) - Store boot CDCLK in ddi_pll_init (Ville) - Merge dev_priv's skl_boot_cdclk into cdclk_freq - Use LCPLL_PLL_LOCK instead of (1 << 30) (Ville) - Replace various '0' by SKL_DPLL0 to be a bit more explicit that we're programming DPLL0 - Busy poll the PCU before doing the frequency change. It takes about 3/4 cycles, each separated by 10us, to get the ACK from the CPU (Ville) v3: - Restore dev_priv->skl_boot_cdclk, leaving unification with dev_priv->cdclk_freq for a later patch (Daniel, Ville) Reviewed-by: Ville Syrjälä Signed-off-by: Damien Lespiau Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.c | 3 + drivers/gpu/drm/i915/i915_drv.h | 1 + drivers/gpu/drm/i915/i915_reg.h | 3 + drivers/gpu/drm/i915/intel_ddi.c | 8 +- drivers/gpu/drm/i915/intel_display.c | 208 +++++++++++++++++++++++++++++++++++ drivers/gpu/drm/i915/intel_drv.h | 2 + 6 files changed, 223 insertions(+), 2 deletions(-) commit e61b995841e6d165b77209c2bdf9c96ae0c16b89 Author: Chris Wilson Date: Mon Apr 27 13:41:24 2015 +0100 drm/i915: Free RPS boosts for all laggards If the client stalls on a congested request, chosen to be 20ms old to match throttling, allow the client a free RPS boost. Signed-off-by: Chris Wilson [danvet: s/rq/req/] [danvet: s/0/NULL/ reported by 0-day build] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem.c | 2 +- drivers/gpu/drm/i915/intel_drv.h | 3 ++- drivers/gpu/drm/i915/intel_pm.c | 20 ++++++++++++++++---- 3 files changed, 19 insertions(+), 6 deletions(-) commit 6db1c6ba9544e99778e0fdebe2d62c917fe1811c Author: Srinivas Kandagatla Date: Sat May 16 13:32:34 2015 +0100 ASoC: qcom: remove hardcoded dma channel This patch removes hardcoded dma channel value in lpass driver, Now the dma channel allocation happens in the SOC specific layer. This will allow different LPASS integrations to use the lpass driver in more generic way. Signed-off-by: Srinivas Kandagatla Tested-by: Kenneth Westfield Acked-by: Kenneth Westfield Signed-off-by: Mark Brown sound/soc/qcom/lpass-ipq806x.c | 12 ++++++ sound/soc/qcom/lpass-platform.c | 93 ++++++++++++++++++++++++++++------------- sound/soc/qcom/lpass.h | 2 + 3 files changed, 77 insertions(+), 30 deletions(-) commit 0ae9fd3b2c99099d5a800057b4092fdaa0e973a7 Author: Srinivas Kandagatla Date: Sat May 16 13:32:25 2015 +0100 ASoC: qcom: remove hardcoded i2s port number This patch attempts to remove the hardcoded i2s port number in lpass driver. Now the the port number comes from the dai id field. This will allow other SOCs to use different port numbers on the lpass driver. Signed-off-by: Srinivas Kandagatla Tested-by: Kenneth Westfield Acked-by: Kenneth Westfield Signed-off-by: Mark Brown sound/soc/qcom/lpass-cpu.c | 16 +++++++--------- sound/soc/qcom/lpass-ipq806x.c | 1 + 2 files changed, 8 insertions(+), 9 deletions(-) commit 9bae4880acee1cd7340d0566b55b927f92de89fb Author: Srinivas Kandagatla Date: Sat May 16 13:32:17 2015 +0100 ASoC: qcom: move ipq806x specific bits out of lpass driver. This patch tries to make the lpass driver more generic by moving the ipq806x specific bits out of the cpu and platform driver, also allows the SOC specific drivers to add the correct register offsets. This patch also renames the register definition header file into more generic header file. Signed-off-by: Srinivas Kandagatla Tested-by: Kenneth Westfield Acked-by: Kenneth Westfield Signed-off-by: Mark Brown sound/soc/qcom/Kconfig | 9 +- sound/soc/qcom/Makefile | 2 + sound/soc/qcom/lpass-cpu.c | 157 ++++++++++++++++---------------- sound/soc/qcom/lpass-ipq806x.c | 96 +++++++++++++++++++ sound/soc/qcom/lpass-lpaif-ipq806x.h | 172 ----------------------------------- sound/soc/qcom/lpass-lpaif-reg.h | 126 +++++++++++++++++++++++++ sound/soc/qcom/lpass-platform.c | 49 ++++++---- sound/soc/qcom/lpass.h | 28 ++++++ 8 files changed, 364 insertions(+), 275 deletions(-) commit 05e8fd9202247ac6cdc26f6bafb5453120065490 Author: Jason Gerecke Date: Thu May 21 10:44:32 2015 -0700 HID: wacom: Handle failing HID_DG_CONTACTMAX requests Hardware may not respond to a request for the HID_DG_CONTACTMAX feature and we should be tolerant of such a failure. This is especially true when using hid-replay where the hardware doesn't exist, but also for devices attached to a flaky bus. This patch increases the number of allowable retries to match other calls to 'wacom_get_report' and also provides a fallback which forces 'touch_max = 16' (enough for any Wacom device seen so far). Signed-off-by: Jason Gerecke Reviewed-by: Benjamin Tissoires Signed-off-by: Jiri Kosina drivers/hid/wacom_sys.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) commit aef3156d7294ac878c10ca8f02539b49adee9624 Author: Jason Gerecke Date: Thu May 21 10:44:31 2015 -0700 HID: wacom: Have wacom_{get,set}_report retry on -EAGAIN, not -EPIPE Retrying on -EPIPE makes very little sense since this typically indicates a problem that will not just disappear on its own. For instance, the USB documentation states that it will be sent if the endpoint is stalled or the device has disconnected. Instead, we should retry if -EAGAIN is received since this indicates a temporary error condition such as a busy bus. In addition to adjusting the conditions we retry under, we also log an error on failure so that we can be aware of what's going on. Signed-off-by: Jason Gerecke Reviewed-by: Benjamin Tissoires Signed-off-by: Jiri Kosina drivers/hid/wacom_sys.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit 52dfcbfc94833b0192d439127ee9ff46023cdbb2 Author: Eyal Reizer Date: Sun May 3 15:19:28 2015 +0300 ARM: dts: am335x-evm: add mmc3 and wlan definitions to dts This includes the wlan regulator, pinmux, DMA and wlcore bindings. Signed-off-by: Arik Nemtsov Signed-off-by: Eliad Peller Signed-off-by: Eyal Reizer Signed-off-by: Tony Lindgren arch/arm/boot/dts/am335x-evm.dts | 65 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) commit 004cbb475fb0164665d66c68e509a4af64f7f5f1 Author: Shailendra Verma Date: Thu May 21 23:32:56 2015 +0530 clk: clk-conf: Fix typo in comment Signed-off-by: Shailendra Verma Signed-off-by: Stephen Boyd drivers/clk/clk-conf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c306317a0e285670d8cceab067d5aceff4593ec8 Author: Shailendra Verma Date: Thu May 21 23:26:03 2015 +0530 clk: samsung: Fix typo in panic log Signed-off-by: Shailendra Verma Signed-off-by: Stephen Boyd drivers/clk/samsung/clk.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8cdea5022dade063a10ffb0f768a18bfabab40e3 Author: Axel Lin Date: Thu May 21 22:26:13 2015 +0800 clk: cdce706: Add missing of_clk_del_provider call in cdce706_remove Remove a previously registered clock provider when unload the module. Signed-off-by: Axel Lin Acked-by: Max Filippov Signed-off-by: Stephen Boyd drivers/clk/clk-cdce706.c | 1 + 1 file changed, 1 insertion(+) commit 8d94eb9b5cff350ba170848c862ca0006d33d496 Author: Roberto Sassu Date: Sat Apr 11 17:12:39 2015 +0200 ima: pass iint to ima_add_violation() This patch adds the iint associated to the current inode as a new parameter of ima_add_violation(). The passed iint is always not NULL if a violation is detected. This modification will be used to determine the inode for which there is a violation. Since the 'd' and 'd-ng' template field init() functions were detecting a violation from the value of the iint pointer, they now check the new field 'violation', added to the 'ima_event_data' structure. Changelog: - v1: - modified an old comment (Roberto Sassu) Signed-off-by: Roberto Sassu Signed-off-by: Mimi Zohar security/integrity/ima/ima.h | 2 ++ security/integrity/ima/ima_api.c | 8 +++++--- security/integrity/ima/ima_init.c | 2 +- security/integrity/ima/ima_main.c | 5 +++-- security/integrity/ima/ima_template_lib.c | 5 ++--- 5 files changed, 13 insertions(+), 9 deletions(-) commit 23b5741932ca44856762fa24cc7e01307ab8af1f Author: Roberto Sassu Date: Sat Apr 11 17:09:50 2015 +0200 ima: wrap event related data to the new ima_event_data structure All event related data has been wrapped into the new 'ima_event_data' structure. The main benefit of this patch is that a new information can be made available to template fields initialization functions by simply adding a new field to the new structure instead of modifying the definition of those functions. Changelog: - v2: - f_dentry replaced with f_path.dentry (Roberto Sassu) - removed declaration of temporary variables in template field functions when possible (suggested by Dmitry Kasatkin) Signed-off-by: Roberto Sassu Signed-off-by: Mimi Zohar security/integrity/ima/ima.h | 25 ++++++----- security/integrity/ima/ima_api.c | 18 ++++---- security/integrity/ima/ima_init.c | 5 ++- security/integrity/ima/ima_template_lib.c | 70 +++++++++++++------------------ security/integrity/ima/ima_template_lib.h | 22 +++------- 5 files changed, 61 insertions(+), 79 deletions(-) commit 9d03a721a3a4a5120de790a0e67dc324c2ed9184 Author: Dmitry Kasatkin Date: Wed Nov 26 16:55:00 2014 +0200 integrity: add validity checks for 'path' parameter This patch adds validity checks for 'path' parameter and makes it const. Signed-off-by: Dmitry Kasatkin Signed-off-by: Mimi Zohar security/integrity/digsig.c | 2 +- security/integrity/iint.c | 3 +++ security/integrity/integrity.h | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) commit f2b3dee484f9cee967a54ef05a66866282337519 Author: Mimi Zohar Date: Wed Feb 11 07:33:34 2015 -0500 KEYS: fix "ca_keys=" partial key matching The call to asymmetric_key_hex_to_key_id() from ca_keys_setup() silently fails with -ENOMEM. Instead of dynamically allocating memory from a __setup function, this patch defines a variable and calls __asymmetric_key_hex_to_key_id(), a new helper function, directly. This bug was introduced by 'commit 46963b774d44 ("KEYS: Overhaul key identification when searching for asymmetric keys")'. Changelog: - for clarification, rename hexlen to asciihexlen in asymmetric_key_hex_to_key_id() - add size argument to __asymmetric_key_hex_to_key_id() - David Howells - inline __asymmetric_key_hex_to_key_id() - David Howells - remove duplicate strlen() calls Acked-by: David Howells Signed-off-by: Mimi Zohar Cc: stable@vger.kernel.org # 3.18 crypto/asymmetric_keys/asymmetric_keys.h | 3 +++ crypto/asymmetric_keys/asymmetric_type.c | 20 ++++++++++++++------ crypto/asymmetric_keys/x509_public_key.c | 23 ++++++++++++++++++----- 3 files changed, 35 insertions(+), 11 deletions(-) commit c4a3f13c2ab997617eaf7020af33b057a68285fd Author: Brian Norris Date: Thu May 21 10:44:32 2015 -0700 mtd: blktrans: use better error code for unimplemented ioctl() In commit 50183936254b ("mtd: blktrans: change blktrans_getgeo return value") we fixed the problem that ioctl(HDIO_GETGEO) might return 0 (success) for mtdblock devices which did not implement the feature and would leave a blank (zero) result. But now, let's get the error code right. Other code paths on this ioctl tend to use -ENOTTY to notify the user that the ioctl() is not supported for the device, so let's use that instead of -EOPNOTSUPP. Suggested-by: Richard Weinberger Signed-off-by: Brian Norris drivers/mtd/mtd_blkdevs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 01d0afddf37cbb4da8581d6dc9bfa5b63bae3390 Author: Geert Uytterhoeven Date: Thu May 21 14:03:41 2015 +0200 mtd: maps: Spelling s/reseved/reserved/ Signed-off-by: Geert Uytterhoeven Signed-off-by: Brian Norris drivers/mtd/maps/amd76xrom.c | 2 +- drivers/mtd/maps/esb2rom.c | 2 +- drivers/mtd/maps/ichxrom.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 7c51bb00c40e5608fb2cdac5230f51aeb56a28df Author: Dmitry Kasatkin Date: Thu Nov 20 16:31:01 2014 +0200 evm: fix potential race when removing xattrs EVM needs to be atomically updated when removing xattrs. Otherwise concurrent EVM verification may fail in between. This patch fixes by moving i_mutex unlocking after calling EVM hook. fsnotify_xattr() is also now called while locked the same way as it is done in __vfs_setxattr_noperm. Changelog: - remove unused 'inode' variable. Signed-off-by: Dmitry Kasatkin Signed-off-by: Mimi Zohar fs/xattr.c | 10 +++++----- security/integrity/evm/evm_main.c | 7 +++---- 2 files changed, 8 insertions(+), 9 deletions(-) commit 5101a1850bb7ccbf107929dee9af0cd2f400940f Author: Mimi Zohar Date: Tue Apr 21 13:59:31 2015 -0400 evm: labeling pseudo filesystems exception To prevent offline stripping of existing file xattrs and relabeling of them at runtime, EVM allows only newly created files to be labeled. As pseudo filesystems are not persistent, stripping of xattrs is not a concern. Some LSMs defer file labeling on pseudo filesystems. This patch permits the labeling of existing files on pseudo files systems. Signed-off-by: Mimi Zohar security/integrity/evm/evm_main.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit a18d0cbfabd1d17e11ec2ae54804284298462125 Author: Dmitry Kasatkin Date: Wed Nov 26 16:59:54 2014 +0200 ima: remove definition of IMA_X509_PATH CONFIG_IMA_X509_PATH is always defined. This patch removes the IMA_X509_PATH definition and uses CONFIG_IMA_X509_PATH. Signed-off-by: Dmitry Kasatkin Signed-off-by: Mimi Zohar security/integrity/ima/ima_init.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) commit c68ed80c97d9720f51ef31fe91560fdd1e121533 Author: Dmitry Kasatkin Date: Thu Oct 23 15:53:21 2014 +0300 ima: limit file hash setting by user to fix and log modes File hashes are automatically set and updated and should not be manually set. This patch limits file hash setting to fix and log modes. Signed-off-by: Dmitry Kasatkin Signed-off-by: Mimi Zohar security/integrity/ima/ima_appraise.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit cd025f7f94108995383edddfb61fc8afea6c66a9 Author: Mimi Zohar Date: Tue Apr 21 16:54:24 2015 -0400 ima: do not measure or appraise the NSFS filesystem Include don't appraise or measure rules for the NSFS filesystem in the builtin ima_tcb and ima_appraise_tcb policies. Changelog: - Update documentation Signed-off-by: Mimi Zohar Cc: stable@vger.kernel.org # 3.19 Documentation/ABI/testing/ima_policy | 3 +++ security/integrity/ima/ima_policy.c | 2 ++ 2 files changed, 5 insertions(+) commit 6438de9f3fb5180d78a0422695d0b88c687757d3 Author: Roberto Sassu Date: Sat Apr 11 17:13:06 2015 +0200 ima: skip measurement of cgroupfs files and update documentation This patch adds a rule in the default measurement policy to skip inodes in the cgroupfs filesystem. Measurements for this filesystem can be avoided, as all the digests collected have the same value of the digest of an empty file. Furthermore, this patch updates the documentation of IMA policies in Documentation/ABI/testing/ima_policy to make it consistent with the policies set in security/integrity/ima/ima_policy.c. Signed-off-by: Roberto Sassu Signed-off-by: Mimi Zohar Documentation/ABI/testing/ima_policy | 17 ++++++++++++----- security/integrity/ima/ima_policy.c | 2 ++ 2 files changed, 14 insertions(+), 5 deletions(-) commit 078550569eafc6631d333488045159badbeb911a Author: Wang Long Date: Thu May 21 09:52:29 2015 -0700 ramoops: make it possible to change mem_type param. If we set ramoops.mem_type=1 in command line, the current code can not change mem_type to 1, because it is assigned to 0 in function ramoops_register_dummy. This patch make it possible to change mem_type parameter in command line. Signed-off-by: Wang Long Acked-by: Tony Lindgren Signed-off-by: Tony Luck fs/pstore/ram.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e036bd330d21e929e94ed4d5432f9d279b19ce47 Author: Ben Zhang Date: Thu May 21 09:50:34 2015 -0700 pstore/ram: verify ramoops header before saving record On some devices the persistent memory contains junk after a cold boot, and /dev/pstore/dmesg-ramoops-* are created with random data which is not the result of a kernel crash. This patch adds a ramoops header check and skips any persistent_ram_zone that does not have a valid header. Signed-off-by: Ben Zhang Signed-off-by: Tony Luck fs/pstore/ram.c | 40 ++++++++++++++++++++++++++++------------ 1 file changed, 28 insertions(+), 12 deletions(-) commit 07239fc854ec61b3cdc400d2a50d322d39c673f6 Author: long.wanglong Date: Thu May 21 09:47:22 2015 -0700 fs/pstore: Optimization function ramoops_init_przs The value of cxt->record_size does not change in the loop, so this patch optimize the assign statement by dropping sz entirely and using cxt->record_size in its place. Signed-off-by: Wang Long Acked-by: Kees Cook Signed-off-by: Tony Luck fs/pstore/ram.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit 42222c2a5d5da7fe4839491d5c44034f40761071 Author: Wang Long Date: Thu May 21 09:34:22 2015 -0700 fs/pstore: update the backend parameter in pstore module This patch update the module parameter backend, so it is visible through /sys/module/pstore/parameters/backend. For example: if pstore backend is ramoops, with this patch: # cat /sys/module/pstore/parameters/backend ramoops and without this patch: # cat /sys/module/pstore/parameters/backend (null) Signed-off-by: Wang Long Acked-by: Mark Salyzyn Signed-off-by: Tony Luck fs/pstore/platform.c | 6 ++++++ 1 file changed, 6 insertions(+) commit f0e2efcfd271733119cfe499f5811968544cbe7b Author: Konstantin Khlebnikov Date: Thu May 21 09:26:19 2015 -0700 pstore: do not use message compression without lock pstore_compress() uses static stream buffer for zlib-deflate which easily crashes when several concurrent threads use one shared state. Signed-off-by: Konstantin Khlebnikov Signed-off-by: Tony Luck fs/pstore/platform.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e705c2959b06b9db184842852da619a0b1672bbc Author: Rafael J. Wysocki Date: Tue May 19 15:27:58 2015 +0200 PCI: pciehp: Drop pointless ACPI-based "slot detection" check Jarod Wilson reports that ExpressCard hotplug doesn't work on HP ZBook G2. The problem turns out to be the ACPI-based "slot detection" code called from pciehp_probe() which uses questionable heuristics based on what ACPI objects are present for the PCIe port device to figure out whether to register a hotplug slot for that port. That code is used if there is at least one PCIe port having an ACPI device configuration object related to hotplug (such as _EJ0 or _RMV), and the Thunderbolt port on the ZBook has _RMV. Of course, Thunderbolt and PCIe native hotplug need not be mutually exclusive (as they aren't on the ZBook), so that rule is simply incorrect. Moreover, the ACPI-based "slot detection" check does not add any value if pciehp_probe() is called at all and the service type of the device object it has been called for is PCIE_PORT_SERVICE_HP, because PCIe hotplug services are only registered if the _OSC handshake in acpi_pci_root_add() allows the kernel to control the PCIe native hotplug feature. No more checks need to be carried out to decide whether or not to register a native PCIe hotlug slot in that case. For the above reasons, make pciehp_probe() check if it has been called for the right service type and drop the pointless ACPI-based "slot detection" check from it. Also remove the entire code whose only user is that check (the entire pciehp_acpi.c file goes away as a result) and drop function headers related to it from the internal pciehp header file. Link: http://lkml.kernel.org/r/1431632038-39917-1-git-send-email-jarod@redhat.com Link: https://bugzilla.kernel.org/show_bug.cgi?id=98581 Reported-by: Jarod Wilson Signed-off-by: Rafael J. Wysocki Signed-off-by: Bjorn Helgaas Reviewed-by: Jarod Wilson Tested-by: Jarod Wilson drivers/pci/hotplug/Makefile | 3 - drivers/pci/hotplug/pciehp.h | 17 ----- drivers/pci/hotplug/pciehp_acpi.c | 137 -------------------------------------- drivers/pci/hotplug/pciehp_core.c | 10 +-- 4 files changed, 3 insertions(+), 164 deletions(-) commit 2d8cbd31dd5d4fe7825e1ab88f39c283849db946 Author: Stefan Schmidt Date: Thu May 21 16:51:37 2015 +0200 ieee802154/atusb: Set default ed level to 0xbe like the rest of these drivers Signed-off-by: Stefan Schmidt Acked-by: Alexander Aring Signed-off-by: Marcel Holtmann drivers/net/ieee802154/atusb.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit f1a71886c59f1d981d3848c744e617d2f7e4149e Author: Stefan Schmidt Date: Thu May 21 16:51:36 2015 +0200 ieee802154/atusb: Mark driver as AACK enabled in hardware. Since firmware version 0.2 we use AACK handling directly in the firmware. Inform the stack that the hardware supports and uses it. Signed-off-by: Stefan Schmidt Acked-by: Alexander Aring Signed-off-by: Marcel Holtmann drivers/net/ieee802154/atusb.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 33a238ae65cee561b3eb78694a41cd3e196fe59c Author: Stefan Schmidt Date: Thu May 21 16:51:35 2015 +0200 ieee802154/atusb: Warn about outdated device firmware. Together with mainlining the driver we released a first public binary version of the device firmware. This is version 0.2. With this change we warn users who run outdated versions of the firmware. While we have not seen problems with it yet (thus no error, but a warning only) it would be better to run the released and tested firmware. You can find released versions here: http://downloads.qi-hardware.com/people/werner/wpan/web/ Signed-off-by: Stefan Schmidt Acked-by: Alexander Aring Signed-off-by: Marcel Holtmann drivers/net/ieee802154/atusb.c | 6 ++++++ 1 file changed, 6 insertions(+) commit cccb94543c8299e0bc7564cc6f8b26e0f15bafde Author: Javier Martinez Canillas Date: Thu May 14 02:32:31 2015 +0200 pwm: samsung: Use MODULE_DEVICE_TABLE() to include OF modalias If the pwm-samsung driver is built as a module, modalias information is not filled so the module is not autoloaded. Use the MODULE_DEVICE_TABLE() macro to export the OF device ID so the module contains that information. Signed-off-by: Javier Martinez Canillas Reviewed-by: Krzysztof Kozlowski Signed-off-by: Thierry Reding drivers/pwm/pwm-samsung.c | 1 + 1 file changed, 1 insertion(+) commit 7f1a57fdd6cb6e7be2ed31878a34655df38e1861 Author: Krzysztof Kozlowski Date: Tue May 19 16:13:02 2015 +0900 power_supply: Fix possible NULL pointer dereference on early uevent Don't call the power_supply_changed() from power_supply_register() when parent is still probing because it may lead to accessing parent too early. In bq27x00_battery this caused NULL pointer exception because uevent of power_supply_changed called back the the get_property() method provided by the driver. The get_property() method accessed pointer which should be returned by power_supply_register(). Starting from bq27x00_battery_probe(): di->bat = power_supply_register() power_supply_changed() kobject_uevent() power_supply_uevent() power_supply_show_property() power_supply_get_property() bq27x00_battery_get_property() dereference of di->bat which is NULL here The dereference of di->bat (value returned by power_supply_register()) is the currently visible problem. However calling back the methods provided by driver before ending the probe may lead to accessing other driver-related data which is not yet initialized. The call to power_supply_changed() is postponed till probing ends - mutex of parent device is released. Reported-by: H. Nikolaus Schaller Signed-off-by: Krzysztof Kozlowski Fixes: 297d716f6260 ("power_supply: Change ownership from driver to core") Tested-By: Dr. H. Nikolaus Schaller Signed-off-by: Sebastian Reichel drivers/power/power_supply_core.c | 50 +++++++++++++++++++++++++++++++++++---- include/linux/power_supply.h | 1 + 2 files changed, 46 insertions(+), 5 deletions(-) commit 8e59c7f23410d5ca6b350a178b861a3d68c49edf Author: Krzysztof Kozlowski Date: Tue May 19 16:13:01 2015 +0900 power_supply: Fix NULL pointer dereference during bq27x00_battery probe Power supply is often registered during probe of a driver. The power_supply_register() returns pointer to newly allocated structure as return value. However before returning the power_supply_register() calls back the get_property() method provided by the driver through uevent. In that time the driver probe is still in progress and driver did not assigned pointer to power supply to its local variables. This leads to NULL pointer dereference from get_property() function. Starting from bq27x00_battery_probe(): di->bat = power_supply_register() device_add() kobject_uevent() power_supply_uevent() power_supply_show_property() power_supply_get_property() bq27x00_battery_get_property() dereference of (di->bat) which is NULL here The first uevent of power supply (the one coming from device creation) should not call back to the driver. To prevent that from happening, increment the atomic use counter at the end of power_supply_register(). This means that power_supply_get_property() will return -ENODEV. IMPORTANT: The patch has impact on this first uevent sent from power supply because it will not contain properties from power supply. The uevent with properties will be sent later after indicating that power supply has changed. This also has a race now, but will be fixed in other patches. Reported-by: H. Nikolaus Schaller Signed-off-by: Krzysztof Kozlowski Fixes: 297d716f6260 ("power_supply: Change ownership from driver to core") Tested-By: Dr. H. Nikolaus Schaller Signed-off-by: Sebastian Reichel drivers/power/power_supply_core.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit 05981277a4de1ad631a4b2c39c4fbc1db69b6f23 Author: Paul E. McKenney Date: Tue May 12 14:50:05 2015 -0700 arm64: Use common outgoing-CPU-notification code This commit removes the open-coded CPU-offline notification with new common code. In particular, this change avoids calling scheduler code using RCU from an offline CPU that RCU is ignoring. This is a minimal change. A more intrusive change might invoke the cpu_check_up_prepare() and cpu_set_state_online() functions at CPU-online time, which would allow onlining throw an error if the CPU did not go offline properly. Signed-off-by: Paul E. McKenney Cc: linux-arm-kernel@lists.infradead.org Acked-by: Will Deacon Signed-off-by: Catalin Marinas arch/arm64/kernel/smp.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 792352cb160e654f0b64182550ee702a790fe4d0 Author: Dan Carpenter Date: Wed May 20 11:13:15 2015 +0300 udf: fix udf_load_pvoldesc() There are some missing braces here which means this function never succeeds. Fixes: e9d4cf411f75 ('udf: improve error management in udf_CS0toUTF8()') Signed-off-by: Dan Carpenter Signed-off-by: Jan Kara fs/udf/super.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit f5a4c67d52e42ad4e76c27287fb7e4a06e11e3fc Author: Chris Wilson Date: Mon Apr 27 13:41:23 2015 +0100 drm/i915: Don't downclock whilst we have clients waiting for GPU results If we have clients stalled waiting for requests, ignore the GPU if it signals that it should downclock due to low load. This helps prevent the automatic timeout from causing extremely long running batches from taking even longer. Signed-off-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_debugfs.c | 21 +++++++++++++++++++++ drivers/gpu/drm/i915/i915_irq.c | 14 ++++++++++++++ 2 files changed, 35 insertions(+) commit 2e1b873072dfe3bbcc158a9c21acde1ab0d36c55 Author: Chris Wilson Date: Mon Apr 27 13:41:22 2015 +0100 drm/i915: Convert RPS tracking to a intel_rps_client struct Now that we have internal clients, rather than faking a whole drm_i915_file_private just for tracking RPS boosts, create a new struct intel_rps_client and pass it along when waiting. Signed-off-by: Chris Wilson [danvet: s/rq/req/] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_debugfs.c | 12 ++++++++---- drivers/gpu/drm/i915/i915_drv.h | 13 +++++++------ drivers/gpu/drm/i915/i915_gem.c | 24 +++++++++++++++--------- drivers/gpu/drm/i915/intel_drv.h | 2 +- drivers/gpu/drm/i915/intel_pm.c | 14 +++++++------- 5 files changed, 38 insertions(+), 27 deletions(-) commit bcafc4e38b6ad03f48989b7ecaff03845b5b7acf Author: Chris Wilson Date: Mon Apr 27 13:41:21 2015 +0100 drm/i915: Limit mmio flip RPS boosts Since we will often pageflip to an active surface, we will often have to wait for the surface to be written before issuing the flip. Also we are likely to wait on that surface in plenty of time before the vblank. Since we have a mechanism for boosting when a flip misses the expected vblank, curtain the number of times we RPS boost when simply waiting for mmioflip. Signed-off-by: Chris Wilson [danvet: s/rq/req/] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_debugfs.c | 1 + drivers/gpu/drm/i915/i915_drv.h | 1 + drivers/gpu/drm/i915/intel_display.c | 4 +++- drivers/gpu/drm/i915/intel_drv.h | 1 + drivers/gpu/drm/i915/intel_pm.c | 1 + 5 files changed, 7 insertions(+), 1 deletion(-) commit a6f766f3975185af66a31a2cea2cd38721645999 Author: Chris Wilson Date: Mon Apr 27 13:41:20 2015 +0100 drm/i915: Limit ring synchronisation (sw sempahores) RPS boosts Ring switches can occur many times per frame, and are often out of control, causing frequent RPS boosting for no practical benefit. Treat the sw semaphore synchronisation as a separate client and only allow it to boost once per busy/idle cycle. Signed-off-by: Chris Wilson [danvet: s/rq/req/] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_debugfs.c | 1 + drivers/gpu/drm/i915/i915_drv.h | 34 ++++++++++++++++++---------------- drivers/gpu/drm/i915/i915_gem.c | 7 +++++-- drivers/gpu/drm/i915/intel_pm.c | 1 + 4 files changed, 25 insertions(+), 18 deletions(-) commit 03ade51185596a1d1028531c78fda557f244d676 Author: Chris Wilson Date: Mon Apr 27 13:41:18 2015 +0100 drm/i915: Inline check required for object syncing prior to execbuf This trims a little overhead from the common case of not needing to synchronize between rings. v2: execlists is special and likes to duplicate code. Signed-off-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_execbuffer.c | 10 +++++++--- drivers/gpu/drm/i915/intel_lrc.c | 9 ++++++--- 2 files changed, 13 insertions(+), 6 deletions(-) commit b47161858ba13c9c7e03333132230d66e008dd55 Author: Chris Wilson Date: Mon Apr 27 13:41:17 2015 +0100 drm/i915: Implement inter-engine read-read optimisations Currently, we only track the last request globally across all engines. This prevents us from issuing concurrent read requests on e.g. the RCS and BCS engines (or more likely the render and media engines). Without semaphores, we incur costly stalls as we synchronise between rings - greatly impacting the current performance of Broadwell versus Haswell in certain workloads (like video decode). With the introduction of reference counted requests, it is much easier to track the last request per ring, as well as the last global write request so that we can optimise inter-engine read read requests (as well as better optimise certain CPU waits). v2: Fix inverted readonly condition for nonblocking waits. v3: Handle non-continguous engine array after waits v4: Rebase, tidy, rewrite ring list debugging v5: Use obj->active as a bitfield, it looks cool v6: Micro-optimise, mostly involving moving code around v7: Fix retire-requests-upto for execlists (and multiple rq->ringbuf) v8: Rebase v9: Refactor i915_gem_object_sync() to allow the compiler to better optimise it. Benchmark: igt/gem_read_read_speed hsw:gt3e (with semaphores): Before: Time to read-read 1024k: 275.794µs After: Time to read-read 1024k: 123.260µs hsw:gt3e (w/o semaphores): Before: Time to read-read 1024k: 230.433µs After: Time to read-read 1024k: 124.593µs bdw-u (w/o semaphores): Before After Time to read-read 1x1: 26.274µs 10.350µs Time to read-read 128x128: 40.097µs 21.366µs Time to read-read 256x256: 77.087µs 42.608µs Time to read-read 512x512: 281.999µs 181.155µs Time to read-read 1024x1024: 1196.141µs 1118.223µs Time to read-read 2048x2048: 5639.072µs 5225.837µs Time to read-read 4096x4096: 22401.662µs 21137.067µs Time to read-read 8192x8192: 89617.735µs 85637.681µs Testcase: igt/gem_concurrent_blit (read-read and friends) Cc: Lionel Landwerlin Signed-off-by: Chris Wilson Cc: Tvrtko Ursulin Reviewed-by: Tvrtko Ursulin [v8] [danvet: s/\/req/g] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_debugfs.c | 16 +- drivers/gpu/drm/i915/i915_drv.h | 19 +- drivers/gpu/drm/i915/i915_gem.c | 540 ++++++++++++++++++++------------ drivers/gpu/drm/i915/i915_gem_context.c | 2 - drivers/gpu/drm/i915/i915_gem_debug.c | 92 ++---- drivers/gpu/drm/i915/i915_gpu_error.c | 19 +- drivers/gpu/drm/i915/intel_display.c | 6 +- drivers/gpu/drm/i915/intel_lrc.c | 19 +- drivers/gpu/drm/i915/intel_overlay.c | 2 - drivers/gpu/drm/i915/intel_ringbuffer.c | 26 +- 10 files changed, 416 insertions(+), 325 deletions(-) commit eed29a5b21557476bbd8b141946a8dfe5aacc4f3 Author: Daniel Vetter Date: Thu May 21 14:21:25 2015 +0200 drm/i915: s/\/req/g The merged seqno->request conversion from John called request variables req, but some (not all) of Chris' recent patches changed those to just rq. We've had a lenghty (and inconclusive) discussion on irc which is the more meaningful name with maybe at most a slight bias towards req. Given that the "don't change names without good reason to avoid conflicts" rule applies, so lets go back to a req everywhere for consistency. I'll sed any patches for which this will cause conflicts before applying. Cc: Chris Wilson Cc: John Harrison [danvet: s/origina/merged/ as pointed out by Chris - the first mass-conversion patch was from Chris, the merged one from John.] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_debugfs.c | 14 +++++++------- drivers/gpu/drm/i915/i915_gem.c | 32 ++++++++++++++++---------------- drivers/gpu/drm/i915/intel_display.c | 8 ++++---- drivers/gpu/drm/i915/intel_drv.h | 4 ++-- drivers/gpu/drm/i915/intel_pm.c | 16 ++++++++-------- 5 files changed, 37 insertions(+), 37 deletions(-) commit 9d699bf4dbe29d8f26769ea81dec4a8c91edcd5a Author: Yoshihiro Shimoda Date: Mon May 18 18:33:47 2015 +0900 phy: rcar-gen2: Add support for R-Car E2 This patch adds a compatible string to support for R-Car E2. Signed-off-by: Yoshihiro Shimoda Acked-by: Geert Uytterhoeven Acked-by: Simon Horman Signed-off-by: Kishon Vijay Abraham I Documentation/devicetree/bindings/phy/rcar-gen2-phy.txt | 1 + drivers/phy/phy-rcar-gen2.c | 1 + 2 files changed, 2 insertions(+) commit 4068e5182ada260d8a09f35db79fc2582e08baec Author: S Twiss Date: Tue May 19 14:10:30 2015 +0100 regulator: da9062: DA9062 regulator driver Add BUCK and LDO regulator driver support for DA9062 Signed-off-by: Steve Twiss Signed-off-by: Mark Brown drivers/regulator/Kconfig | 10 + drivers/regulator/Makefile | 1 + drivers/regulator/da9062-regulator.c | 843 +++++++++++++++++++++++++++++++++++ 3 files changed, 854 insertions(+) commit 8ea6f8926b367725f0c13ff82f251074de9d95b4 Author: Imre Deak Date: Tue May 19 17:05:42 2015 +0300 drm/i915/skl: enable WaForceContextSaveRestoreNonCoherent v2: - set the override disable flag too on stepping F0 (mika) Signed-off-by: Imre Deak Reviewed-by: Mika Kuoppala Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_ringbuffer.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) commit 2a0ee94fef9aa87f23070693764175982700f0f5 Author: Imre Deak Date: Tue May 19 17:05:41 2015 +0300 drm/i915/bxt: fix WaForceContextSaveRestoreNonCoherent on steppings B0+ On B0 and C0 steppings the workaround enable bit would be overriden by default, so the overriding must be disabled. The WA was added in commit 83a24979c40ebbf0fa0cd14df16f74142f373cd3 Author: Nick Hoath Date: Fri Apr 10 13:12:26 2015 +0100 drm/i915/bxt: Add WaForceContextSaveRestoreNonCoherent Spotted-by: Mika Kuoppala Signed-off-by: Imre Deak Reviewed-by: Mika Kuoppala Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_reg.h | 1 + drivers/gpu/drm/i915/intel_ringbuffer.c | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-) commit 2331b4e476e0dc705825c8f5462fa1274b6d3b97 Author: Archit Taneja Date: Thu May 21 11:03:17 2015 +0530 drm/DocBook: Add more drm_bridge documentation Add DOC sections giving an overview of drm_bridge and how to fill up the drm_bridge_funcs ops. Add these to drm.tpml in DocBook. Add headerdocs for funcs in drm_bridge.c that don't have them yet. Signed-off-by: Archit Taneja [danvet: Amend kerneldoc as discussed with Archit.] Signed-off-by: Daniel Vetter Documentation/DocBook/drm.tmpl | 12 ++++++ drivers/gpu/drm/drm_bridge.c | 95 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 107 insertions(+) commit 862e686ce40299250d21ba425ea5078e947397ff Author: Archit Taneja Date: Thu May 21 11:03:16 2015 +0530 drm: bridge: Allow daisy chaining of bridges Allow drm_bridge objects to link to each other in order to form an encoder chain. The requirement for creating a chain of bridges comes because the MSM drm driver uses up its encoder and bridge objects for blocks within the SoC itself. There isn't anything left to use if the SoC display output is connected to an external encoder IC. Having an additional bridge connected to the existing bridge helps here. In general, it is possible for platforms to have multiple devices between the encoder and the connector/panel that require some sort of configuration. We create drm bridge helper functions corresponding to each op in 'drm_bridge_funcs'. These helpers call the corresponding 'drm_bridge_funcs' op for the entire chain of bridges. These helpers are used internally by drm_atomic_helper.c and drm_crtc_helper.c. The drm_bridge_enable/pre_enable helpers execute enable/pre_enable ops of the bridge closet to the encoder, and proceed until the last bridge in the chain is enabled. The same holds for drm_bridge_mode_set/mode_fixup helpers. The drm_bridge_disable/post_disable helpers disable the last bridge in the chain first, and proceed until the first bridge in the chain is disabled. drm_bridge_attach() remains the same. As before, the driver calling this function should make sure it has set the links correctly. The order in which the bridges are connected to each other determines the order in which the calls are made. One requirement is that every bridge in the chain should point the parent encoder object. This is required since bridge drivers expect a valid encoder pointer in drm_bridge. For example, consider a chain where an encoder's output is connected to bridge1, and bridge1's output is connected to bridge2: /* Like before, attach bridge to an encoder */ bridge1->encoder = encoder; ret = drm_bridge_attach(dev, bridge1); .. /* * set the first bridge's 'next' bridge to bridge2, set its encoder * as bridge1's encoder */ bridge1->next = bridge2 bridge2->encoder = bridge1->encoder; ret = drm_bridge_attach(dev, bridge2); ... ... This method of bridge chaining isn't intrusive and existing drivers that use drm_bridge will behave the same way as before. The bridge helpers also cleans up the atomic and crtc helper files a bit. Reviewed-by: Jani Nikula Reviewed-by: Rob Clark Reviewed-by: Daniel Vetter Signed-off-by: Archit Taneja Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_atomic_helper.c | 29 +++---- drivers/gpu/drm/drm_bridge.c | 147 ++++++++++++++++++++++++++++++++++++ drivers/gpu/drm/drm_crtc_helper.c | 54 +++++-------- include/drm/drm_crtc.h | 14 ++++ 4 files changed, 191 insertions(+), 53 deletions(-) commit cc8475305203ddfd117b81e2e732194b67d8f310 Author: Maxime Coquelin Date: Thu May 21 19:17:44 2015 +0800 scripts: link-vmlinux: Don't pass page offset to kallsyms if XIP Kernel When Kernel is executed in place from ROM, the symbol addresses can be lower than the page offset. Tested-by: Chanwoo Choi Signed-off-by: Maxime Coquelin Tested-by: Andreas Färber Signed-off-by: Michal Marek scripts/link-vmlinux.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 72f0095e7993dd9af8d5531740bf549359314bf0 Author: Rajan Vaja Date: Wed May 20 10:20:54 2015 +0530 ASoC: mop500_ab8500: Add a NULL pointer check in mop500_ab8500_machine_init() Avoid possible crash (NULL pointer dereference) by making sure that dem_kzalloc() is successful. Signed-off-by: Rajan Vaja Signed-off-by: Mark Brown sound/soc/ux500/mop500_ab8500.c | 4 ++++ 1 file changed, 4 insertions(+) commit a7310c496f376b945e7e61f64d69c9c0a93ee1ee Author: Arnd Bergmann Date: Thu May 21 11:07:08 2015 +0200 ASoC: qcom: remove incorrect dependencies Compile-tests show a warning for the newly added SND_SOC_STORM symbol: warning: (SND_SOC_STORM) selects SND_SOC_LPASS_CPU which has unmet direct dependencies (SOUND && !M68K && !UML && SND && SND_SOC && SND_SOC_QCOM) The problem is that it can be selected for COMPILE_TEST on non-QCOM builds, but the symbols it selects have a dependency. Dropping the dependencies makes it work without warnings and no other side-effects, because these are not user-visible. Signed-off-by: Arnd Bergmann Fixes: f380dd3f3cd ("ASoC: qcom: Add ability to build QCOM drivers") Signed-off-by: Mark Brown sound/soc/qcom/Kconfig | 2 -- 1 file changed, 2 deletions(-) commit 5626ad0866657c4758958040589b395d2a58816d Author: Kuninori Morimoto Date: Thu May 21 03:49:54 2015 +0000 ASoC: rsnd: add rsnd_dai_stream_quit() Current Renesas R-Car sound driver calls rsnd_dai_stream_init() when start, but it didn't call paired function. This patch adds rsnd_dai_stream_quit() for it. This is prepare for interrupt error status check feature support. Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Tested by: Cao Minh Hiep Signed-off-by: Mark Brown sound/soc/sh/rcar/core.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) commit b847357979048f718aa7e218050982ec9c306285 Author: Kuninori Morimoto Date: Thu May 21 03:49:13 2015 +0000 ASoC: rsnd: indicate unknown HW start rsnd_ssi_hw_stop() should be called after rsnd_ssi_hw_start(). This patch indicates unknown hw_stop as error Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Tested by: Cao Minh Hiep Signed-off-by: Mark Brown sound/soc/sh/rcar/ssi.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 118182e9d7d5afa0c7c10f568afb46ab78b462e9 Author: Chris Wilson Date: Wed May 20 14:12:47 2015 +0100 drm/i915: Force clean compilation with -Werror Our driver compiles clean (nowadays thanks to 0day) but for me, at least, it would be beneficial if the compiler threw an error rather than a warning when it found a piece of suspect code. (I use this to compile-check patch series and want to break on the first compiler error in order to fix the patch.) v2: Kick off a new "Debugging" submenu for i915.ko Signed-off-by: Chris Wilson Acked-by: Jani Nikula [danvet: Add "DRM i915" to the menu name as requested by Chris.] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/Kconfig | 8 ++++++++ drivers/gpu/drm/i915/Kconfig.debug | 5 +++++ drivers/gpu/drm/i915/Makefile | 2 ++ 3 files changed, 15 insertions(+) commit 6ab97f25ad1c3883f0dc20d2d5b7dae30acade74 Author: Takashi Iwai Date: Thu May 21 11:31:40 2015 +0200 ALSA: jack: Remove MODULE_*() macros The jack interface is statically included in sound core. Having doubly module information is rather confusing. Signed-off-by: Takashi Iwai sound/core/jack.c | 4 ---- 1 file changed, 4 deletions(-) commit 57744aa7cfb5969c5a0621f4cfa45bb83d391064 Author: Maarten Lankhorst Date: Tue May 19 16:41:03 2015 +0200 drm/atomic: add all affected planes in drm_atomic_helper_check_modeset Drivers may need to recalculate plane state when a modeset occurs, not reliably adding them might cause hard to debug bugs. Signed-off-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_atomic_helper.c | 4 ++++ 1 file changed, 4 insertions(+) commit e01e9f75a0c4e6cdbf1f139e37e9161408e49b7c Author: Maarten Lankhorst Date: Tue May 19 16:41:02 2015 +0200 drm/atomic: add drm_atomic_add_affected_planes This is a convenience function to add all planes for a crtc, similar to add_affected_connectors. This will be used in drm_atomic_helper_check_modeset, but drivers can call it too when they need to recalculate all state. Signed-off-by: Maarten Lankhorst [danvet: Amend kerneldoc a bit.] Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_atomic.c | 39 +++++++++++++++++++++++++++++++++++++++ include/drm/drm_atomic.h | 4 ++++ 2 files changed, 43 insertions(+) commit de28d0212a3ea7b92a9795cd0e5bfc7d15214677 Author: Maarten Lankhorst Date: Tue May 19 16:41:01 2015 +0200 drm/atomic: add commit_planes_on_crtc helper drm_atomic_helper_commit_planes calls all atomic_begin's first, then updates all planes, finally calling atomic_flush. Some drivers may want to things like disabling irq's from their atomic_begin, in which case a second call to atomic_begin will splat. By using commit_planes_on_crtc on each crtc in the atomic state they'll evade that issue. Signed-off-by: Maarten Lankhorst [danvet: Extend kerneldoc a bit as discussed with Maarten on irc.] [danvet: Squash in fixup to check for crtc_funcs in all places. Reported by Dan Carpenter.] Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_atomic_helper.c | 62 +++++++++++++++++++++++++++++++++++++ include/drm/drm_atomic_helper.h | 1 + 2 files changed, 63 insertions(+) commit 50183936254b76997d222cd36bac997ebf8115de Author: Wenlin Kang Date: Thu May 21 14:49:38 2015 +0800 mtd: blktrans: change blktrans_getgeo return value Modify function blktrans_getgeo()'s return value to -EOPNOTSUPP when dev->tr->getgeo == NULL. We shouldn't make the return value to 0 when dev->tr->getgeo == NULL, because the function blktrans_getgeo() has an output value "hd_geometry" which is usually used by some application, if returns 0 (i.e., "success"), it will make some application get the wrong information. Signed-off-by: Wenlin Kang Signed-off-by: Brian Norris drivers/mtd/mtd_blkdevs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5136629dc5a19701746abd7c8ad98ce0b84dda1d Author: Jagan Teki Date: Thu May 21 01:09:31 2015 +0530 dma-buf: Minor coding style fixes - WARNING: Missing a blank line after declarations - WARNING: line over 80 characters - WARNING: please, no space before tabs Signed-off-by: Jagan Teki Cc: Sumit Semwal Signed-off-by: Sumit Semwal drivers/dma-buf/dma-buf.c | 9 +++++++-- drivers/dma-buf/reservation.c | 9 ++++++--- drivers/dma-buf/seqno-fence.c | 8 +++++++- 3 files changed, 20 insertions(+), 6 deletions(-) commit 8eeb4c521a8047ea73da0d6eb2d87a7f60cdd99a Author: Baruch Siach Date: Wed May 13 11:17:39 2015 +0300 mtd: mxc_nand: generate nand_ecclayout for 8 bit ECC Hardware 8 bit ECC requires a different nand_ecclayout. Instead of adding yet another static struct nand_ecclayout, generate it in code. Reviewed-by: Sascha Hauer Signed-off-by: Baruch Siach Acked-by: Uwe Kleine-König Signed-off-by: Brian Norris drivers/mtd/nand/mxc_nand.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) commit 9cc785702d9f6367fdecf0fba6e425198e0754c8 Author: Geert Uytterhoeven Date: Wed May 20 20:16:51 2015 +0200 ARM: shmobile: bockw dts: Replace "nor-jedec" by "jedec,spi-nor" Cfr. commit 8947e396a8296c52 ('Documentation: dt: mtd: replace "nor-jedec" binding with "jedec, spi-nor"') Signed-off-by: Geert Uytterhoeven Acked-by: Brian Norris Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7778-bockw.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit aad8afc7ac3d9af6f7c43961fc6f41d401207b00 Author: Geert Uytterhoeven Date: Wed May 20 20:16:53 2015 +0200 ARM: shmobile: henninger dts: Replace "nor-jedec" by "jedec,spi-nor" Cfr. commit 8947e396a8296c52 ('Documentation: dt: mtd: replace "nor-jedec" binding with "jedec, spi-nor"') Signed-off-by: Geert Uytterhoeven Acked-by: Brian Norris Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7791-henninger.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 49633bbbebcd2e398799389542d621bd9b8c5c56 Author: Geert Uytterhoeven Date: Wed May 20 20:16:50 2015 +0200 ARM: shmobile: bockw-reference dts: Replace "nor-jedec" by "jedec,spi-nor" Cfr. commit 8947e396a8296c52 ('Documentation: dt: mtd: replace "nor-jedec" binding with "jedec, spi-nor"') Signed-off-by: Geert Uytterhoeven Acked-by: Brian Norris Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7778-bockw-reference.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cc3db02c9c7cb0c322263b3a6983023b04e3944f Author: Geert Uytterhoeven Date: Wed May 20 20:16:54 2015 +0200 ARM: shmobile: koelsch dts: Replace "nor-jedec" by "jedec,spi-nor" Cfr. commit 8947e396a8296c52 ('Documentation: dt: mtd: replace "nor-jedec" binding with "jedec, spi-nor"') Signed-off-by: Geert Uytterhoeven Acked-by: Brian Norris Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7791-koelsch.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 755185b279171d78a12f879d06502866c6173b04 Author: Geert Uytterhoeven Date: Wed May 20 20:16:52 2015 +0200 ARM: shmobile: lager dts: Replace "nor-jedec" by "jedec,spi-nor" Cfr. commit 8947e396a8296c52 ('Documentation: dt: mtd: replace "nor-jedec" binding with "jedec, spi-nor"') Signed-off-by: Geert Uytterhoeven Acked-by: Brian Norris Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7790-lager.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6f066d4d2621affdbc510b5b0bd624af7ae74e1b Author: Dasaratharaman Chandramouli Date: Tue May 19 15:37:49 2015 -0700 powercap / RAPL: Support Knights Landing This patch enables intel_rapl driver to run on the next-generation Intel(R) Xeon Phi Microarchitecture code named "Knights Landing" Signed-off-by: Dasaratharaman Chandramouli Acked-by: Jacob Pan Signed-off-by: Rafael J. Wysocki drivers/powercap/intel_rapl.c | 1 + 1 file changed, 1 insertion(+) commit c19900edff983cfa2ddb92830d59f8e9550fde4f Author: Rafał Miłecki Date: Sat Apr 25 12:41:30 2015 +0200 mtd: spi-nor: Properly set SECT_4K for recently added flashes Few recently added entries are missing SECT_4K flag despite of these flashes supporting 4 KiB erase sectors and 0x20 erase command. Also add a comment to help avoiding such mistakes in the future. Signed-off-by: Rafał Miłecki Cc: Knut Wohlrab Cc: Huang Shijie Cc: Shengzhou Liu Signed-off-by: Brian Norris drivers/mtd/spi-nor/spi-nor.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) commit 413780d7d7040ce0c45dbe40afa69917a946856d Author: Rafał Miłecki Date: Sat Apr 25 12:01:35 2015 +0200 mtd: spi-nor: Add support for Spansion S25FL164K It's an 8 MiB flash with 4 KiB erase sectors. Signed-off-by: Rafał Miłecki Signed-off-by: Brian Norris drivers/mtd/spi-nor/spi-nor.c | 1 + 1 file changed, 1 insertion(+) commit f650ce24b320d061ab1ff7023cd9abee773d9672 Author: Geert Uytterhoeven Date: Tue May 5 18:32:29 2015 +0200 mtd: 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: David Woodhouse Cc: linux-mtd@lists.infradead.org Signed-off-by: Brian Norris drivers/mtd/maps/Kconfig | 2 +- drivers/mtd/nand/Kconfig | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit a59a516398750dc3477a81df34e655b596e352b3 Author: Shailendra Verma Date: Thu May 21 00:06:48 2015 +0530 clk: Fix typo in clk_register() comment Signed-off-by: Shailendra Verma Signed-off-by: Stephen Boyd drivers/clk/clk.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9c684e290d1741e068cc226418a26a39663db010 Author: Guo Zeng Date: Wed May 20 08:50:34 2015 +0000 ARM: dts: atlas7: add fixed frequency clocks in car node This patch adds the fixed clocks of external crystal oscillators. Signed-off-by: Guo Zeng Signed-off-by: Barry Song [sboyd@codeaurora.org: Remove size-cells/address-cells] Signed-off-by: Stephen Boyd arch/arm/boot/dts/atlas7.dtsi | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit 301c5d29402e590ea893fe7ddc83a00a71994cba Author: Zhiwu Song Date: Wed May 20 08:50:33 2015 +0000 clk: sirf: add CSR atlas7 clk and reset support the hardware node includes both clock and reset support, so it is named as "car". this patch implements Flexible clocks(mux, divider, gate), Selectable clock(mux, divider, gate), root clock(gate),leaf clock(gate), others. it also implements the reset controller functionality. Signed-off-by: Zhiwu Song Signed-off-by: Guo Zeng Signed-off-by: Barry Song Signed-off-by: Stephen Boyd .../devicetree/bindings/clock/csr,atlas7-car.txt | 55 + drivers/clk/sirf/Makefile | 2 +- drivers/clk/sirf/clk-atlas7.c | 1632 ++++++++++++++++++++ 3 files changed, 1688 insertions(+), 1 deletion(-) commit 0d17fc3e998357469700e0782d253c31a6997505 Author: Baruch Siach Date: Wed May 13 11:17:38 2015 +0300 mtd: mxc_nand: fix truncate of unaligned oob copying Copy to/from oob io area might not be aligned to 4 bytes. When 8 bit ECC is used, the buffer size is 26. Add memcpy16_{to,from}io, and use them to avoid truncating the buffer. Prefer memcpy32_{to,from}io when the buffer is properly aligned for better performance. Reviewed-by: Sascha Hauer Acked-by: Uwe Kleine-König Signed-off-by: Baruch Siach Signed-off-by: Brian Norris drivers/mtd/nand/mxc_nand.c | 40 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 36 insertions(+), 4 deletions(-) commit 7e7e4730c178f32a14b781f7c55564d99c4dda3f Author: Baruch Siach Date: Wed May 13 11:17:37 2015 +0300 mtd: mxc_nand: limit the size of used oob For 4k pages the i.MX NFC hardware uses no more than 218 bytes for 8bit ECC data. Larger oobsize confuses the logic of copy_spare(). Limit the size of used oob size to avoid that. Reviewed-by: Sascha Hauer Acked-by: Uwe Kleine-König Signed-off-by: Baruch Siach Signed-off-by: Brian Norris drivers/mtd/nand/mxc_nand.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) commit 35d5d20efad8a04c8c002c7f31241dff973977a6 Author: Uwe Kleine-König Date: Wed May 13 11:17:36 2015 +0300 mtd: mxc_nand: cleanup copy_spare function To give people without the reference manual at hand a chance to understand how spare area is handled in the i.MX nand controller, improve commenting, naming of variables and coding style. No functional change intended. Reviewed-by: Sascha Hauer Signed-off-by: Uwe Kleine-König [baruch: declare oob_chunk_size; update comments; reword commit log] Signed-off-by: Baruch Siach Signed-off-by: Brian Norris drivers/mtd/nand/mxc_nand.c | 46 ++++++++++++++++++++++++++++++--------------- 1 file changed, 31 insertions(+), 15 deletions(-) commit ed5cd8163da8d3e02ef83b84e42d555d40bab96a Author: Florian Fainelli Date: Thu Aug 14 19:37:45 2014 -0700 ARM: BCM63xx: Add SMP support for BCM63138 Add support for booting the secondary CPU on BCM63138, this involves: - locating the bootlut to write the reset vector - powering up the second CPU when we need to using the DT-supplied PMB references - disabling VFP when enabled such that we can keep having SMP Signed-off-by: Florian Fainelli arch/arm/mach-bcm/Makefile | 7 +- arch/arm/mach-bcm/bcm63xx_headsmp.S | 23 +++++ arch/arm/mach-bcm/bcm63xx_smp.c | 169 ++++++++++++++++++++++++++++++++++++ arch/arm/mach-bcm/bcm63xx_smp.h | 9 ++ 4 files changed, 207 insertions(+), 1 deletion(-) commit 7d7d7a413c5b8dddfde56dce1dd42e2199033c6c Author: Florian Fainelli Date: Fri Apr 17 16:53:58 2015 -0700 ARM: vfp: Add vfp_disable for problematic platforms Some platforms might not be able to fully utilize VFP when e.g: one CPU out of two in a SMP complex lacks a VFP unit. Adding code to migrate task to the CPU which has a VFP unit would be cumbersome and not performant, instead, just add the ability to disable VFP. Signed-off-by: Florian Fainelli arch/arm/include/asm/vfp.h | 4 ++++ arch/arm/vfp/vfpmodule.c | 13 +++++++++++++ 2 files changed, 17 insertions(+) commit e7f0f376490f754baf49976002b32c4daaaf323a Author: Florian Fainelli Date: Fri Apr 17 16:53:02 2015 -0700 ARM: vfp: Add include guards Signed-off-by: Florian Fainelli arch/arm/include/asm/vfp.h | 5 +++++ 1 file changed, 5 insertions(+) commit 3f2a43c98d72bcb236f3db7e3a8355dd5e1311d8 Author: Florian Fainelli Date: Fri Apr 17 10:50:40 2015 -0700 ARM: BCM63xx: Add secondary CPU PMB initialization sequence The sequence to initialize a secondary CPU using the BCM63138 PMB is extremely specific and represents much more code than any other on-chip peripheral (AHCI, USB 3.0 or integrated Ethernet switch), as such we keep that code local and utilize Device Tree to lookup all the resources we need from the CPU device tree node. Signed-off-by: Florian Fainelli arch/arm/mach-bcm/bcm63xx_pmb.c | 221 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 221 insertions(+) commit 6e844b035360294636271f4f0fd4a5a685e03c06 Author: Florian Fainelli Date: Fri Apr 17 10:45:55 2015 -0700 ARM: BCM63xx: Add Broadcom BCM63xx PMB controller helpers This patch adds both common register definitions and helper functions used to issue read/write commands to the Broadcom BCM63xx PMB controller which is used to power on and release from reset internal on-chip peripherals such as the integrated Ethernet switch, AHCI, USB, as well as the secondary CPU core. This is going to be utilized by the BCM63138 SMP code, as well as by the BCM63138 reset controller later. Signed-off-by: Florian Fainelli include/linux/reset/bcm63xx_pmb.h | 88 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) commit fd0dbc83c6602ad57f34d1ec0b120fea25fcca56 Merge: e44be50 d203c57 Author: Tony Lindgren Date: Wed May 20 14:51:05 2015 -0700 Merge branch 'omap-for-v4.2/legacy' into omap-for-v4.2/cleanup commit c37f6d3879634ca44ef93659690bb1732bbfaab9 Author: Dmitry Torokhov Date: Wed Apr 15 10:31:10 2015 -0700 Input: atmel_mxt_ts - use BIT() macro when reporting button state This makes the intent a tad more clear. Reviewed-by: Javier Martinez Canillas Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/atmel_mxt_ts.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 3704aae9e00d3310dead07588a09b1a1427b4ac8 Author: Tony Lindgren Date: Wed May 20 14:48:35 2015 -0700 ARM: dts: Enable SDIO card interrupt for 37xx-evm This allows to use the MMC1 slot with SDIO cards. Signed-off-by: Tony Lindgren arch/arm/boot/dts/omap3-evm-common.dtsi | 1 + 1 file changed, 1 insertion(+) commit 5c0a366d33b38d6844213bc2b81c578b98e5061b Author: Tony Lindgren Date: Wed May 20 14:48:34 2015 -0700 ARM: dts: Fix ldp gpio keys to use defines Fix ldp gpio keys to use defines. Signed-off-by: Tony Lindgren arch/arm/boot/dts/omap3-ldp.dts | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit dccf1dd8458236a28552510b83a06a8cc0f1c473 Author: Hans de Goede Date: Wed May 20 14:43:09 2015 -0700 Input: alps - use the generic process_bitmap function for v5 touchpads Now that the generic process_bitmap function has been improved to offer accurate coordinates for the first touch we can use it for v5 (dolphin) touchpads too. Besides being a nice code cleanup this also fixes the saw tooth pattern in the coordinates for the second touch the dolphin specific version had. Signed-off-by: Hans de Goede Signed-off-by: Dmitry Torokhov drivers/input/mouse/alps.c | 74 ++++++++-------------------------------------- 1 file changed, 12 insertions(+), 62 deletions(-) commit 688ea364b2e73ae4d757e550ec06663a4903b334 Author: Hans de Goede Date: Wed May 20 14:42:50 2015 -0700 Input: alps - rename alps_set_abs_params_mt to alps_set_abs_params_semi_mt Rename alps_set_abs_params_mt to alps_set_abs_params_semi_mt, to make it clear that it is only (to be) used for semi-mt devices. Signed-off-by: Hans de Goede Signed-off-by: Dmitry Torokhov drivers/input/mouse/alps.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 1662c03387a777be0a00efaf8665de77bc898158 Author: Hans de Goede Date: Wed May 20 14:42:15 2015 -0700 Input: alps - do not use input-mt finger tracking for semi-mt devices With the recent process_bitmap() changes all semi-mt devices always report the first finger down in slot 0, so stop using input-mt finger tracking for these. Signed-off-by: Hans de Goede Signed-off-by: Dmitry Torokhov drivers/input/mouse/alps.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 4dd265730710bd881c45d6ccf41050c3738ffccd Author: Hans de Goede Date: Wed May 20 14:41:10 2015 -0700 Input: alps - use more accurate coordinates for first touch in semi-mt mode All alps semi-mt touchpads give us the following data when 2 (or more) fingers are touching: 1 more or less accurate touch for the first finger down, and a bitmap with columns and rows in which 1 or more fingers are seen resulting in a crude (low res) bounding box. So far for v3, rushmore and v4 touchpads we've been reporting the coordinates of 2 opposite corners of the box when 2 fingers are touching. Ignoring the much better resolution data given in the normal position packet. This commit actually uses this data for the first touch, figures out which corner of the bounding box is closest to the first touch, and reports the coordinates of the opposite corner for the second touch, resulting in much better data for the first touch and for the single touch pointer-emulation events. This approach is similar to the one in alps_process_bitmap_dolphin, that function takes the single accurate touch info, calculates the distance to the center of the bounding box, and then puts the 2nd touch mirrored to the center. The downside of that approach is that if both touches move slowly in the same direction, the bounding box will stay the same for a while (as it is low res) and the second touch will thus been seen moving in the opposite direction until the bounding box actually changes, and then the second touch snaps to its new position resulting in a saw tooth pattern in the coordinates for the second touch, hence this new approach. This commit fixes 2 finger scrolling being choppy / jumpy on these touchpads. Signed-off-by: Hans de Goede Signed-off-by: Dmitry Torokhov drivers/input/mouse/alps.c | 59 ++++++++++++++++++++++++++++++++++++++++------ drivers/input/mouse/alps.h | 1 + 2 files changed, 53 insertions(+), 7 deletions(-) commit 44b77f38dce59f57a679083df12509deab02cfcc Author: Hans de Goede Date: Wed May 20 14:40:06 2015 -0700 Input: alps - decode the position packet first We should decode the position packet before the packet with the bitmap data. This way we can use the more accurate position info in process_bitmap() to get better results. Signed-off-by: Hans de Goede Signed-off-by: Dmitry Torokhov drivers/input/mouse/alps.c | 35 ++++++++++++++--------------------- 1 file changed, 14 insertions(+), 21 deletions(-) commit a839cd579b64e41779a24c691d0c88c6a16c63e0 Author: Hans de Goede Date: Wed May 20 14:39:21 2015 -0700 Input: alps - only set fields that are actually present Pinnacle / Rushmore packets contain either position info, or bitmap info, never both. So far we've in essence been storing garbage in the position / bitmap fields of the fields struct when decoding a bitmap / pos packet. We've been relying on the following sequence to get away with this: 1) Decode bitmap packet 2) Process bitmap packet 3) Decode position packet 4) Use position / button info This patch allows us to change this sequence, which will allow using the position info when processing the bitmap for more accurate results. Signed-off-by: Hans de Goede Signed-off-by: Dmitry Torokhov drivers/input/mouse/alps.c | 62 ++++++++++++++++++++++++---------------------- 1 file changed, 33 insertions(+), 29 deletions(-) commit aab9cf7b0349b2f6f3d8a32d3f2414981777ebdc Author: Hans de Goede Date: Wed May 20 14:38:33 2015 -0700 Input: alps - change alps_decode_rushmore to do all decoding itself Change alps_decode_rushmore to do all decoding itself, rather then relying on alps_decode_pinnacle and then overriding some fields + or-ing in some bits. This is a preparation patch for modifying the decode functions to properly differentiate between position and bitmap packets. Signed-off-by: Hans de Goede Signed-off-by: Dmitry Torokhov drivers/input/mouse/alps.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) commit 4e3e4629e4c6ef755ce246e4d848eaad6eec7080 Author: Shailendra Verma Date: Mon May 18 10:45:58 2015 -0700 Input: ff-core - fix typo in comment to input_ff_erase() Signed-off-by: Shailendra Verma Signed-off-by: Dmitry Torokhov drivers/input/ff-core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ec8beff9647897659df5e1ad120a00cfc8c7a98e Author: Shailendra Verma Date: Mon May 18 10:44:33 2015 -0700 Input: fix typo in comment to input_handler_for_each_handle() Signed-off-by: Shailendra Verma Signed-off-by: Dmitry Torokhov drivers/input/input.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b4423bb834bb25947426d8db9095cd2dc286e341 Author: Stefan Agner Date: Wed May 20 00:06:22 2015 +0200 ARM: vf610m4: add defconfig for Linux on Vybrids Cortex-M4 Add defconfig for Linux on Vybrid (vf610) on the secondary Cortex- M4 CPU. The use of a XIP image has been tested which needs to be loaded (e.g. using the custom m4boot loader) to the end of the available RAM at address 0x8f000000. The Cortex-M4 has a code-alias which makes sure that the instructions get fetched through the code bus (alias starts at 0x00800000 => 0x80800000 in system address). Hence, to get optimal performance, use 0x0f000000 as XIP_PHYS_ADDR. This address is additionally shifted by the length of the minimal loader which is inserted by m4boot. Currently, this offset is 0x80. The standard DRAM base address is configured to 0x8C000000, which gives the Cortex-M4 48MiB of RAM. Signed-off-by: Stefan Agner Signed-off-by: Arnd Bergmann arch/arm/configs/vf610m4_defconfig | 42 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) commit 8064887e02fd684fa0576cbbcdbc29ceab125c4c Author: Stefan Agner Date: Wed May 20 00:03:52 2015 +0200 ARM: vf610: enable Cortex-M4 configuration on Vybrid SoC This patch allows to build the Kernel for Vybrid (VF6xx) SoC when ARMv7-M CPU is selected. The resulting image runs on the secondary Cortex-M4 core. This core has equally access to all peripherals as the main Cortex-A5 core. However, there is no resource control mechanism, hence when both cores are used simultaneously, orthogonal device tree's are required. The boot CPU is dependent on the SoC variant. The available boards use mostly variants where the Cortex-A5 is the primary and hence the boot CPU. Booting the secondary Cortex-M4 CPU needs SoC specific registers written. There is no in kernel support for this right now, a external userspace utility called "m4boot" can be used to boot the kernel: m4boot xipImage initramfs.cpio.lzo vf610m4-colibri.dtb Signed-off-by: Stefan Agner Signed-off-by: Arnd Bergmann Documentation/devicetree/bindings/arm/fsl.txt | 3 +++ arch/arm/mach-imx/Kconfig | 38 +++++++++++++++------------ arch/arm/mach-imx/Makefile.boot | 0 arch/arm/mach-imx/mach-vf610.c | 1 + 4 files changed, 25 insertions(+), 17 deletions(-) commit 9c77bc438f88366e2e42c229b4aff52d4693e5c9 Author: Stefan Agner Date: Wed May 20 00:03:51 2015 +0200 ARM: introduce ARM_SINGLE_ARMV7M for ARMv7-M platforms This introduces a new top level config symbol ARM_SINGLE_ARMV7M for non-MMU, ARMv7-M platforms. It also support multiple ARMv7-M platforms in one kernel image since the cores share the same basic memory layout and interrupt controller. However, this works only if the combined platforms also have a similar (main) memory layout. Signed-off-by: Stefan Agner Signed-off-by: Arnd Bergmann arch/arm/Kconfig | 13 +++++++++++++ arch/arm/Kconfig.debug | 5 +++-- 2 files changed, 16 insertions(+), 2 deletions(-) commit 7505f0428fdedca11be9647cb411628ec7cb9a1a Author: Stefan Agner Date: Wed May 20 00:03:50 2015 +0200 ARM: unify MMU/!MMU addruart calls Remove the needless differences between MMU/!MMU addruart calls. This allows to use the same addruart macro on SoC level. Useful for SoC consisting of multiple CPUs with and without MMU such as Freescale Vybrid. Signed-off-by: Stefan Agner Signed-off-by: Arnd Bergmann arch/arm/include/debug/efm32.S | 2 +- arch/arm/kernel/debug.S | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 1b0c50973378ac5d0440aaa28d3cb5fda27989dd Merge: e2a604e b5cc5cb Author: Arnd Bergmann Date: Wed May 20 23:09:12 2015 +0200 Merge branch 'irq/for-arm' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into next/soc * 'irq/for-arm' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: irqchip: vf610-mscm: Support NVIC parent chip irqchip: nvic: Support hierarchy irq domain genirq: generic chip: Support hierarchy domain genirq: Add irq_chip_(enable/disable)_parent irqdomain: Add non-hierarchy helper irq_domain_set_info commit 54458fb7fa8a1f2a83b41b493be108f89f692388 Author: Stefan Agner Date: Wed May 20 00:05:18 2015 +0200 ARM: dts: add support for Vybrid running on Cortex-M4 This adds an initial device tree to run Linux on the Cortex-M4 on the Vybrid based Colibri VF61 module. Signed-off-by: Stefan Agner Signed-off-by: Arnd Bergmann arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/vf610m4-colibri.dts | 99 +++++++++++++++++++++++++++++++++++ arch/arm/boot/dts/vf610m4.dtsi | 50 ++++++++++++++++++ 3 files changed, 150 insertions(+) commit 7eb68a2a0519a77b93184c695d4d293c92dc2286 Author: Rafał Miłecki Date: Wed Feb 11 16:40:58 2015 +0100 ARM: BCM5301X: Ignore another (BCM4709 specific) fault code Broadcom ARM devices seem to generate some fault once per boot. We already have an ignoring handler for BCM4707/BCM4708, but BCM4709 generates different code. Signed-off-by: Rafał Miłecki Signed-off-by: Florian Fainelli arch/arm/mach-bcm/bcm_5301x.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 0fcbffc4bdc262bd9d5802dc61fb0dcf54102f4e Merge: e532ffe 5be2361 Author: Arnd Bergmann Date: Wed May 20 23:04:54 2015 +0200 Merge tag 'berlin-simple-mfd-4.2-1' of git://git.infradead.org/users/hesselba/linux-berlin into next/drivers Merge "Berlin simple-mfd for v4.2" from Sebastian Hesselbarth: - based on arm-soc drivers/simple-mfd branch - rework of chip/system ctrl nodes to simple-mfd probing for clk, pinctrl, and reset - add adc node * tag 'berlin-simple-mfd-4.2-1' of git://git.infradead.org/users/hesselba/linux-berlin: ARM: berlin: add an ADC node for the BG2Q ARM: berlin: remove useless chip and system ctrl compatibles clk: berlin: drop direct of_iomap of nodes reg property ARM: berlin: move BG2Q clock node ARM: berlin: move BG2CD clock node ARM: berlin: move BG2 clock node clk: berlin: prepare simple-mfd conversion pinctrl: berlin: drop SoC stub provided regmap ARM: berlin: move pinctrl to simple-mfd nodes pinctrl: berlin: prepare to use regmap provided by syscon reset: berlin: drop arch_initcall initialization ARM: berlin: move reset to simple-mfd nodes reset: berlin: convert to a platform driver ARM: berlin: prepare simple-mfd/syscon conversion of sys/chip ctrl nodes ARM: berlin: select MFD_SYSCON by default commit a8f0abb90281d3adda5678ca6f0c062decf19df8 Merge: 378bda6 576efe3 Author: Arnd Bergmann Date: Wed May 20 23:03:25 2015 +0200 Merge tag 'berlin-dt-4.2-1' of git://git.infradead.org/users/hesselba/linux-berlin into next/dt Merge "Berlin DT changes for v4.2" from Sebastian Hesselbarth: - GPLv2/X11 dual licensing - Mark Berlin DT bindings as unstable - Updated binding documentation for reworked chip/system ctrl nodes * tag 'berlin-dt-4.2-1' of git://git.infradead.org/users/hesselba/linux-berlin: Documentation: bindings: update the berlin chip and system ctrl doc Documentation: bindings: move the Berlin clock documentation Documentation: bindings: move the Berlin pinctrl documentation Documentation: bindings: move the Berlin reset documentation Documentation: bindings: update the Berlin controllers documentation Documentation: bindings: berlin: consider our dt bindings as unstable ARM: dts: berlin: relicense the BG2CD Google Chromecast dts under GPLv2/X11 ARM: dts: berlin: relicense the berlin2cd dtsi under GPLv2/X11 ARM: dts: berlin: relicense the BG2 Sony NSZ-GS7 dts under GPLv2/X11 ARM: dts: berlin: relicense the berlin2 dtsi under GPLv2/X11 ARM: dts: berlin: relicense the BG2Q Marvell DMP dts under GPLv2/X11 ARM: dts: berlin: relicense the berlin2q dtsi under GPLv2/X11 commit e44be50cba8b29f373bb8d744e91eaa30c4dd178 Author: Nicholas Krause Date: Wed May 20 15:32:26 2015 -0400 mach-omap2: Remove use of deprecated marco, PTR_RET in devices.c This removes the deprecacted marco, PTR_RET and changes the functions that use this marco in their return statement to instead use the non deprecacted function, PTR_ERR_OR_ZERO for the file devices.c. Signed-off-by: Nicholas Krause Signed-off-by: Tony Lindgren arch/arm/mach-omap2/devices.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e2a604eb46f7da3f8ef2f6f7997eed431785fd1b Merge: e0f8864 5009a28 Author: Arnd Bergmann Date: Wed May 20 22:37:26 2015 +0200 Merge tag 'arm-soc/for-4.2/maintainers' of http://github.com/broadcom/stblinux into next/soc This pull request for the MAINTAINERS file contains the following changes: - Brian adds a general "brcmstb" regexp to catch Broadcom Set Top Box related changes throughout the Linux tree * tag 'arm-soc/for-4.2/maintainers' of http://github.com/broadcom/stblinux: MAINTAINERS: add brcmstb regex commit 5296b7f9d0e1ac31a9bc3044f04af18a521b9459 Author: Russell King Date: Wed May 20 20:51:41 2015 +0100 drm/i2c: tda998x: fix compiler warning for ssize_t Stephen Rothwell reports that he sees a compiler warning on x86_64: drivers/gpu/drm/i2c/tda998x_drv.c: In function 'tda998x_write_avi': drivers/gpu/drm/i2c/tda998x_drv.c:647:3: warning: format '%d' expects argument of type 'int', but argument 3 has type 'ssize_t' [-Wformat=] dev_err(&priv->hdmi->dev, "hdmi_avi_infoframe_pack() failed: %d\n", len); ^ Fix this by using the appropriate length modifier. Signed-off-by: Russell King drivers/gpu/drm/i2c/tda998x_drv.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 175e8efe69974e240a89fb3a4bbeeb0b892de10d Merge: 985aa49 3c88f3d f766c58 5d9fb04 Author: Doug Ledford Date: Wed May 20 16:12:40 2015 -0400 Merge branches 'bart-srp', 'generic-errors', 'ira-cleanups' and 'mwang-v8' into k.o/for-4.2 commit 2d91b491d5be13602a73be789bb8a3c28d06b7f2 Author: Jisheng Zhang Date: Thu Apr 30 16:22:29 2015 +0800 PCI: designware: Use iATU0 for cfg and IO, iATU1 for MEM Most transactions' type are cfg0 and MEM, so the current iATU usage is not balanced: iATU0 is hot while iATU1 is rarely used. Refactor the iATU usage so we use iATU0 for cfg and IO and iATU1 for MEM. This allocation idea comes from Minghuan Lian : [bhelgaas: use link with Message-ID] Link: http://lkml.kernel.org/r/1429091315-31891-3-git-send-email-Minghuan.Lian@freescale.com Signed-off-by: Jisheng Zhang Signed-off-by: Bjorn Helgaas Acked-by: Pratyush Anand drivers/pci/host/pcie-designware.c | 81 +++++++++++++++++++++----------------- 1 file changed, 45 insertions(+), 36 deletions(-) commit 63503c87f06e0f2c8c951cada81221c5500188d8 Author: Jisheng Zhang Date: Thu Apr 30 16:22:28 2015 +0800 PCI: designware: Consolidate outbound iATU programming functions Currently, the outbound iATU programming functions are similar: the only difference is index, type, addr and size. Consolidate these functions into one. This saves about 1700 bytes in text: text data bss dec hex filename 9276 204 4 9484 250c pcie-designware.o-before 7532 204 4 7740 1e3c pcie-designware.o Signed-off-by: Jisheng Zhang Signed-off-by: Bjorn Helgaas Acked-by: Pratyush Anand drivers/pci/host/pcie-designware.c | 109 +++++++++++++------------------------ 1 file changed, 39 insertions(+), 70 deletions(-) commit 5d9fb0440698a8b9e8595353d60cfac7ab30efae Author: Ira Weiny Date: Thu May 14 15:01:46 2015 -0400 IB/core: Change rdma_protocol_iboe to roce After discussion upstream, it was agreed to transition the usage of iboe in the kernel to roce. This keeps our terminology consistent with what was finalized in the IBTA Annex 16 and IBTA Annex 17 publications. Signed-off-by: Ira Weiny Signed-off-by: Doug Ledford drivers/infiniband/core/cma.c | 12 ++++++------ drivers/infiniband/core/ucma.c | 2 +- include/rdma/ib_verbs.h | 4 ++-- net/sunrpc/xprtrdma/svc_rdma_transport.c | 2 +- 4 files changed, 10 insertions(+), 10 deletions(-) commit 5d1a2961adf906f965b00eb8059fd2e0585e0e09 Author: Pantelis Antoniou Date: Wed May 13 11:04:34 2015 +0300 ARM: dts: Beaglebone i2c definitions The beaglebone family of boards contain two I2C busses enabled. The first one with a baseboard identification EEPROM and a cape I2C bus. Signed-off-by: Pantelis Antoniou Signed-off-by: Tony Lindgren arch/arm/boot/dts/am335x-bone-common.dtsi | 66 +++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) commit 3aa59200f8d24a533c5b6e1f46d2d8ff205b0207 Author: Lad, Prabhakar Date: Thu Mar 12 23:38:21 2015 +0000 ARM: dts: am437x-gp-evm: add DT nodes for ov2659 sensor this patch does the following: 1: adds DT node for fixed oscillator. 2: adds DT node entries for ov2659 sensor 3: adds remote-endpoint entry for VPFE. Signed-off-by: Lad, Prabhakar Signed-off-by: Tony Lindgren arch/arm/boot/dts/am437x-gp-evm.dts | 42 +++++++++++++++++++++++++++++++++++-- 1 file changed, 40 insertions(+), 2 deletions(-) commit 99d89e3da31c0c2596553e0a324c526f4fbd66cb Author: Yegor Yefremov Date: Tue May 19 10:29:48 2015 +0200 ARM: dts: add DTS for Baltos IR5221 This device is an industrial PC based on AM335x SoC. [ balbi@ti.com : updated to fit current mainline ] Signed-off-by: Yegor Yefremov Signed-off-by: Felipe Balbi Signed-off-by: Tony Lindgren arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/am335x-baltos-ir5221.dts | 532 +++++++++++++++++++++++++++++ 2 files changed, 533 insertions(+) commit ba6304609879c6e342cfb8bbdc8b0dc71344c17b Author: Nishanth Menon Date: Fri May 15 17:16:40 2015 -0500 ARM: dts: omap5-uevm: Add Uart wakeup interrupt UART3 wakeup takes place with iodaisy chain. enable the wakeup pin. Reported-by: Suman Anna Signed-off-by: Nishanth Menon [tony@atomide.com: tabify uart pins properly while at it] Signed-off-by: Tony Lindgren arch/arm/boot/dts/omap5-uevm.dts | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) commit f6ae941e710f4228bc13d3aefe0fbefb4012ab71 Author: Marek Belisko Date: Thu May 7 21:35:05 2015 +0200 ARM: dts: omap3-gta04: Add GSM audio support Add voice audio card which is used for telephony on gta04 board. gtm601 codec is UMTS modem with pcm interface which get samples from microphone and provide data from other party side. Use simple audio card to describe audio card. Signed-off-by: Marek Belisko Signed-off-by: Tony Lindgren arch/arm/boot/dts/omap3-gta04.dtsi | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) commit ab159d234d2eb0cf142a68c8f96e88fa082b96e6 Author: Eliad Peller Date: Mon May 4 15:41:13 2015 +0300 ARM: dts: am335x-evm: add bluetooth support uart1 is used for connecting to wilink8 bluetooth subsystem. add the needed muxes and definitions. Signed-off-by: Eliad Peller Signed-off-by: Eyal Reizer Signed-off-by: Tony Lindgren arch/arm/boot/dts/am335x-evm.dts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit c53403a37cf083ce85da720f18918f73580d0064 Author: Joe Perches Date: Mon May 18 10:01:03 2015 -0700 regulator: max77686: fix gpio_enabled shift wrapping bug The code should handle more than 32 bits here because "id" can be a value up to MAX77686_REGULATORS (currently 34). Convert the gpio_enabled type to DECLARE_BITMAP and use test_bit/set_bit. Fixes: 3307e9025d29 ("regulator: max77686: Add GPIO control") Reported-by: Dan Carpenter Signed-off-by: Joe Perches Reviewed-by: Krzysztof Kozlowski Signed-off-by: Mark Brown Cc: stable@vger.kernel.org drivers/regulator/max77686.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 0a8ba6eeb6501a77619f49440c85dad14fe9c7a2 Author: Uwe Kleine-König Date: Tue May 19 09:48:08 2015 +0200 ASoC: rx51: use flags argument of devm_gpiod_get to set direction Since 39b2bbe3d715 (gpio: add flags argument to gpiod_get*() functions) which appeared in v3.17-rc1, the gpiod_get* functions take an additional parameter that allows to specify direction and initial value for output. Use this to simplify the driver. Furthermore this is one caller less that stops us making the flags argument to gpiod_get*() mandatory. Signed-off-by: Uwe Kleine-König Acked-by: Jarkko Nikula Signed-off-by: Mark Brown sound/soc/omap/rx51.c | 30 ++++++++---------------------- 1 file changed, 8 insertions(+), 22 deletions(-) commit 5edf1e06927caba17ffa4489f2d81700cc932969 Author: Uwe Kleine-König Date: Tue May 19 08:58:09 2015 +0200 ASoC: max98357a: use flags argument of devm_gpiod_get to set direction Since 39b2bbe3d715 (gpio: add flags argument to gpiod_get*() functions) which appeared in v3.17-rc1, the gpiod_get* functions take an additional parameter that allows to specify direction and initial value for output. Use this to simplify the driver. Furthermore this is one caller less that stops us making the flags argument to gpiod_get*() mandatory. Signed-off-by: Uwe Kleine-König Acked-by: Kenneth Westfield Signed-off-by: Mark Brown sound/soc/codecs/max98357a.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 1137e58069ac8ce8df5d691f340b7e184616c84a Author: Uwe Kleine-König Date: Tue May 19 08:54:27 2015 +0200 ASoC: sta32x: use devm_gpiod_get_optional for optional reset gpio Since 39b2bbe3d715 (gpio: add flags argument to gpiod_get*() functions) which appeared in v3.17-rc1, the gpiod_get* functions take an additional parameter that allows to specify direction and initial value for output. Also there is a variant to find optional gpios that returns NULL if there is no gpio instead of -ENOENT. Make use of both features to simplify the driver. This changes behaviour if gpiod_get returns -ENOSYS which is the case if CONFIG_GPIOLIB is not enabled. This is a good change because without GPIOLIB there is no way to determine if the reset gpio is specified in the device tree. And if it is it must be handled, so erroring out is the right thing to do. Furthermore this is one caller less that stops us making the flags argument to gpiod_get*() mandatory. Signed-off-by: Uwe Kleine-König Signed-off-by: Mark Brown sound/soc/codecs/sta32x.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) commit 0574eab363ace70ef275d4caad6eadc458d33728 Author: Arnd Bergmann Date: Tue May 19 14:47:32 2015 +0200 ASoC: omap: fix up SND_OMAP_SOC_OMAP_ABE_TWL6040 dependency, again I tried to fix this before and submitted a working patch, but after some discussion we came up with what seemed to be a nicer solution, resulting in commit 3d4cf65e2d ("ASoC: omap: fix up SND_OMAP_SOC_OMAP_ABE_TWL6040 dependency"). Unfortunately, that version was incomplete, and we still get this build error: drivers/clk/clk-palmas.c:46:16: error: field 'hw' has incomplete type drivers/clk/clk-palmas.c: In function 'to_palmas_clks_info': drivers/clk/clk-palmas.c:54:74: warning: initialization from incompatible pointer type [-Winc This happens only in randconfig builds that turn on MFD_PALMAS on a platform other than OMAP2+ when COMPILE_TEST is set but COMMON_CLK is not. The new approach is only 'select COMMON_CLK_PALMAS' if we know that we are on an OMAP5 platform and MFD_PALMAS is already set. This patch has survived thousands of randconfig builds and I don't see a remaining hole in the logic. Fixes: 3d4cf65e2d ("ASoC: omap: fix up SND_OMAP_SOC_OMAP_ABE_TWL6040 dependency") Signed-off-by: Arnd Bergmann Acked-by: Peter Ujfalusi Signed-off-by: Mark Brown sound/soc/omap/Kconfig | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit e3fb57c83239c84ca06ed5b06eb224db3e48d17e Author: Qipan Li Date: Tue May 19 14:41:12 2015 +0000 spi: sirf: add support for USP-based SPI USP is a general purpose serial port in SiRFSoC, which can work as SPI. the most data flow of USP and pure SPI is same with main differences in registers layout. this patch moves registers layout to private data, and use flags to differentiate other minor differences between prima2-spi, prima2-usp and atlas7-usp for hardware configuration. Signed-off-by: Qipan Li Signed-off-by: Barry Song Signed-off-by: Mark Brown Documentation/devicetree/bindings/spi/spi-sirf.txt | 3 +- drivers/spi/spi-sirf.c | 792 +++++++++++++++------ 2 files changed, 586 insertions(+), 209 deletions(-) commit b6bbf59899f91fe38d36c20defcee84dd5c19195 Author: Eyal Reizer Date: Mon May 4 15:24:24 2015 +0300 ARM: dts: am437x-gp-evm: add wilink8 support enable mmc3 used for wlan and uart3 used for bluetooth configure the gpios used for wlan and bluetooth controls add fixed voltage regulator used for wlan power control Signed-off-by: Eyal Reizer Signed-off-by: Tony Lindgren arch/arm/boot/dts/am437x-gp-evm.dts | 102 +++++++++++++++++++++++++++++++++++ include/dt-bindings/pinctrl/am43xx.h | 1 + 2 files changed, 103 insertions(+) commit 3221dfb7fb49b2a0dfd695e74be1a76dfad8bb12 Author: Marek Belisko Date: Tue Apr 28 22:54:27 2015 +0200 ARM: dts: omap3-gta04: Add hdqw1 support Enable omap-hdq for battery fuel gauge access. Signed-off-by: Marek Belisko Signed-off-by: H. Nikolaus Schaller Signed-off-by: Tony Lindgren arch/arm/boot/dts/omap3-gta04.dtsi | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 87a2028f2329b8f091046316ee1910b97d3854b1 Author: Nicholas Krause Date: Sun May 10 00:57:34 2015 -0400 ARM: OMAP2+: Remove calls to deprecacted marco,PTR_RET in the files,fb.c and pmu.c This removes two calls to the deprecated marco,PTR_RET in the files,fb.c and pmu.c for the functions,omap_init_vrfb and omap_init_pmu respectfully. Furthermore these are now replaced by calling the correctly non deprecacted function, PTR_ERR_OR_ZERO in both functions. Signed-off-by: Nicholas Krause Signed-off-by: Tony Lindgren arch/arm/mach-omap2/fb.c | 2 +- arch/arm/mach-omap2/pmu.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 8297955f3bd44b7b5a69549ed95e851b473bb675 Author: Krzysztof Kozlowski Date: Mon Apr 27 21:49:44 2015 +0900 ARM: OMAP2+: Constify irq_domain_ops The irq_domain_ops are not modified by the driver and the irqdomain core code accepts pointer to a const data. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Tony Lindgren arch/arm/mach-omap2/omap-wakeupgen.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f9b8cd7c2710813746f86eec6bbf12c869504285 Author: Yijing Wang Date: Tue May 19 11:41:34 2015 +0800 PCI/ASPM: Remove redundant PCIe port type checking We decide in alloc_pcie_link_state() whether to allocate a pcie_link_state for a device. After that, it's sufficient to check pdev->link_state. We don't need to check the PCIe port type again. Remove the redundant PCIe port type checking. [bhelgaas: changelog] Signed-off-by: Yijing Wang Signed-off-by: Bjorn Helgaas drivers/pci/pcie/aspm.c | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) commit 026df6ca90cf56aa756dd5ed077a6e90a523eff7 Author: Alexander Kuleshov Date: Tue Mar 17 16:45:44 2015 +0600 ARM: OMAP2+: use symbolic defines for console loglevels instead of numbers provides macros for console log level, let's use it instead of numbers. Signed-off-by: Alexander Kuleshov Signed-off-by: Tony Lindgren arch/arm/mach-omap2/serial.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e127a04f222fc4ad958a9bca35100883b8b1373b Author: Bjorn Helgaas Date: Wed May 20 12:13:05 2015 -0500 PCI/ASPM: Drop __pci_disable_link_state() useless "force" parameter After 387d37577fdd ("PCI: Don't clear ASPM bits when the FADT declares it's unsupported"), the "force" parameter to __pci_disable_link_state() is always "false". Remove the "force" parameter and assume it's always false. Signed-off-by: Bjorn Helgaas drivers/pci/pcie/aspm.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit 32ace039452b6fdec7394a32bbea7a483da9c4ed Author: Andrey Skvortsov Date: Mon May 11 00:27:53 2015 +0300 ARM: dts: add core2 padconf region for am3517 According to the technical reference manual for AM35xx system controller module (SCM) PADCONFS core registers are divided in two regions: 0x48002030..0x48002268 and 0x480025d8..0x480025fc. First region is the same for all omap3 SoC and is described in omap3.dtsi. The second region is the same as in omap34xx (see omap34xx.dtsi) and omap35xx. The patch adds missing description for the second region. This patch was tested on AM3517. Signed-off-by: Andrey Skvortsov Signed-off-by: Tony Lindgren arch/arm/boot/dts/am3517.dtsi | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 2a80f296422a01178d0a993479369e94f5830127 Author: Antti Palosaari Date: Tue Apr 14 15:12:54 2015 -0300 [media] dvb-core: fix 32-bit overflow during bandwidth calculation Frontend bandwidth calculation overflows on very high DVB-S/S2 symbol rates. Use mult_frac() macro in order to keep calculation correct. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-core/dvb_frontend.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 13b019bbd170d788b1461c2e00b4578a07541dc5 Author: Mauro Carvalho Chehab Date: Wed May 20 13:52:48 2015 -0300 [media] e4000: Fix rangehigh value As reported by smatch: drivers/media/tuners/e4000.c:287:32: warning: constant 2208000000 is so big it is long long drivers/media/tuners/e4000.c:287:32: warning: decimal constant 2208000000 is between LONG_MAX and ULONG_MAX. For C99 that means long long, C90 compilers are very likely to produce unsigned long (and a warning) here drivers/media/tuners/e4000.c:287:3: warning: this decimal constant is unsigned only in ISO C90 .rangehigh = 2208000000, ^ Cc: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/tuners/e4000.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c7861bb048669540ff51e2e1bf84d60f165007ad Author: Antti Palosaari Date: Tue May 12 14:26:07 2015 -0300 [media] e4000: implement V4L2 subdevice tuner and core ops Implement V4L2 subdevice tuner and core ops. After that this driver is hybrid driver implementing both V4L2 and DVB ops. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/tuners/e4000.c | 216 +++++++++++++++++++++++++++++++------- drivers/media/tuners/e4000_priv.h | 2 + 2 files changed, 182 insertions(+), 36 deletions(-) commit f8b9b871f832a618f71be17fe7d90034e0862862 Author: Antti Palosaari Date: Tue Apr 21 17:13:39 2015 -0300 [media] e4000: various small changes * Rename device state from 's' to 'dev'. * Move single include to driver private header. * Change error handling type of each function to one I tend use nowadays. * Remove dummy register write from init. Even Windows driver does this multiple times remove it as I have never seen any I2C errors. * Define I2C client pointer for each function and use it. * Do not clean tuner ops during driver remove - not needed. * Disable sysfs device bind / unbind. We are not allowed manually bind / unbind device from the driver currently. * Rename some other variables. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/tuners/e4000.c | 358 +++++++++++++++++++------------------- drivers/media/tuners/e4000.h | 1 - drivers/media/tuners/e4000_priv.h | 5 +- 3 files changed, 178 insertions(+), 186 deletions(-) commit 0e3a71c3749fa451505a67a61d61e142a96ceb23 Author: Antti Palosaari Date: Tue Apr 21 21:18:45 2015 -0300 [media] e4000: revise synthesizer calculation Update synthesizer calculation to model I prefer nowadays. It is mostly just renaming some variables to ones I think are most standard. Also add 'schematic' of synthesizer following my current understanding. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/tuners/e4000.c | 44 +++++++++++++++++++++++++++------------ drivers/media/tuners/e4000_priv.h | 4 ++-- 2 files changed, 33 insertions(+), 15 deletions(-) commit e4d131d392073e498d23bb0e52198258c3637116 Author: Dan Carpenter Date: Thu May 14 05:39:17 2015 -0300 [media] rtl2832_sdr: cleanup some set_bit() calls This code works fine but static checkers complain. The test_bit() function takes the bit number and not a mask. Then the other issue is that we were using USB_STATE_URB_BUF which is BIT(0) instead of URB_BUF. Also we were open coding that instead of using the test/clear/set_bit() functions. Signed-off-by: Dan Carpenter Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/rtl2832_sdr.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 85756a069c55e0315ac5990806899cfb607b987f Author: Hans Verkuil Date: Tue May 12 08:52:21 2015 -0300 [media] cobalt: add new driver The cobalt device is a PCIe card with 4 HDMI inputs (adv7604) and a connector that can be used to hook up an adv7511 transmitter or an adv7842 receiver daughterboard. This device is used within Cisco but is sadly not available outside of Cisco. Nevertheless it is a very interesting driver that can serve as an example of how to support HDMI hardware and how to use the popular adv devices. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab MAINTAINERS | 8 + drivers/media/pci/Kconfig | 1 + drivers/media/pci/Makefile | 1 + drivers/media/pci/cobalt/Kconfig | 18 + drivers/media/pci/cobalt/Makefile | 5 + drivers/media/pci/cobalt/cobalt-alsa-main.c | 162 +++ drivers/media/pci/cobalt/cobalt-alsa-pcm.c | 603 ++++++++++ drivers/media/pci/cobalt/cobalt-alsa-pcm.h | 22 + drivers/media/pci/cobalt/cobalt-alsa.h | 41 + drivers/media/pci/cobalt/cobalt-cpld.c | 341 ++++++ drivers/media/pci/cobalt/cobalt-cpld.h | 29 + drivers/media/pci/cobalt/cobalt-driver.c | 821 +++++++++++++ drivers/media/pci/cobalt/cobalt-driver.h | 377 ++++++ drivers/media/pci/cobalt/cobalt-flash.c | 132 ++ drivers/media/pci/cobalt/cobalt-flash.h | 29 + drivers/media/pci/cobalt/cobalt-i2c.c | 396 ++++++ drivers/media/pci/cobalt/cobalt-i2c.h | 25 + drivers/media/pci/cobalt/cobalt-irq.c | 254 ++++ drivers/media/pci/cobalt/cobalt-irq.h | 25 + drivers/media/pci/cobalt/cobalt-omnitek.c | 341 ++++++ drivers/media/pci/cobalt/cobalt-omnitek.h | 62 + drivers/media/pci/cobalt/cobalt-v4l2.c | 1260 ++++++++++++++++++++ drivers/media/pci/cobalt/cobalt-v4l2.h | 22 + .../cobalt/m00233_video_measure_memmap_package.h | 115 ++ .../pci/cobalt/m00235_fdma_packer_memmap_package.h | 44 + .../media/pci/cobalt/m00389_cvi_memmap_package.h | 59 + .../media/pci/cobalt/m00460_evcnt_memmap_package.h | 44 + .../pci/cobalt/m00473_freewheel_memmap_package.h | 57 + .../m00479_clk_loss_detector_memmap_package.h | 53 + .../m00514_syncgen_flow_evcnt_memmap_package.h | 88 ++ 30 files changed, 5435 insertions(+) commit 48519838cc915d1af7083662471d2eb939a024c9 Author: Hans Verkuil Date: Thu May 7 10:37:57 2015 -0300 [media] adv7604/adv7842: replace FMT_CHANGED by V4L2_DEVICE_NOTIFY_EVENT This makes it easier for the bridge driver to just passthrough such events to the corresponding device node. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/adv7604.c | 12 +++++++++--- drivers/media/i2c/adv7842.c | 11 +++++++++-- include/media/adv7604.h | 1 - include/media/adv7842.h | 3 --- 4 files changed, 18 insertions(+), 9 deletions(-) commit 17e484686be2e9ecb88cc7913a4baaf6783275e3 Author: jean-michel.hautbois@vodalys.com Date: Wed Mar 18 07:21:47 2015 -0300 [media] v4l2-subdev: allow subdev to send an event to the v4l2_device notify function All drivers use custom notifications, in particular when source changes. The bridge only has to map the subdev that sends it to whatever video node it is connected to. Signed-off-by: Jean-Michel Hautbois Signed-off-by: Mauro Carvalho Chehab Documentation/video4linux/v4l2-framework.txt | 4 ++++ include/media/v4l2-subdev.h | 2 ++ 2 files changed, 6 insertions(+) commit f9b22e355d38c8dbfa19a2d9d5ef9bf07e7c17e6 Author: Ira Weiny Date: Wed May 13 20:02:59 2015 -0400 IB/core: Convert core to use bitfield for caps Remove query_protocol callback Use the new Core Capability bits for: rdma_protocol_* rdma_cap_ib_mad rdma_cap_ib_smi rdma_cap_ib_cm rdma_cap_iw_cm rdma_cap_ib_sa rdma_cap_ib_mcast rdma_cap_af_ib rdma_cap_eth_ah Signed-off-by: Ira Weiny Signed-off-by: Doug Ledford drivers/infiniband/core/device.c | 1 - drivers/infiniband/hw/amso1100/c2_provider.c | 8 +--- drivers/infiniband/hw/cxgb3/iwch_provider.c | 8 +--- drivers/infiniband/hw/cxgb4/provider.c | 8 +--- drivers/infiniband/hw/ehca/ehca_hca.c | 6 --- drivers/infiniband/hw/ehca/ehca_main.c | 2 +- drivers/infiniband/hw/ipath/ipath_verbs.c | 8 +--- drivers/infiniband/hw/mlx4/main.c | 15 +++---- drivers/infiniband/hw/mlx5/main.c | 8 +--- drivers/infiniband/hw/mthca/mthca_provider.c | 8 +--- drivers/infiniband/hw/nes/nes_verbs.c | 8 +--- drivers/infiniband/hw/ocrdma/ocrdma_main.c | 2 +- drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 6 --- drivers/infiniband/hw/qib/qib_verbs.c | 8 +--- drivers/infiniband/hw/usnic/usnic_ib_main.c | 1 - drivers/infiniband/hw/usnic/usnic_ib_verbs.c | 6 --- include/rdma/ib_verbs.h | 64 +++++++++++++++++++++------- 17 files changed, 63 insertions(+), 104 deletions(-) commit ce0eff016f7272faa6dc6eec722b1ca1970ff9aa Author: Hans Verkuil Date: Tue Jan 20 12:18:16 2015 -0300 [media] vb2: allow requeuing buffers while streaming vb2_buffer_done() already allows STATE_QUEUED, but currently only when not streaming. It is useful to allow it while streaming as well, as this makes it possible for drivers to requeue buffers while waiting for a stable video signal. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/videobuf2-core.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) commit 7738613e7cb419179545910744b1777d87edac5c Author: Ira Weiny Date: Wed May 13 20:02:58 2015 -0400 IB/core: Add per port immutable struct to ib_device As of commit 5eb620c81ce3 "IB/core: Add helpers for uncached GID and P_Key searches"; pkey_tbl_len and gid_tbl_len are immutable data which are stored in the ib_device. The per port core capability flags to be added later are also immutable data to be stored in the ib_device object. In preparation for this create a structure for per port immutable data and place the pkey and gid table lengths within this structure. "get_port_immutable" is added as a mandatory device function to allow the drivers to fill in this data. Signed-off-by: Ira Weiny Signed-off-by: Doug Ledford drivers/infiniband/core/device.c | 63 +++++++++++++--------------- drivers/infiniband/core/sysfs.c | 1 + drivers/infiniband/hw/amso1100/c2_provider.c | 17 ++++++++ drivers/infiniband/hw/cxgb3/iwch_provider.c | 17 ++++++++ drivers/infiniband/hw/cxgb4/provider.c | 17 ++++++++ drivers/infiniband/hw/ehca/ehca_main.c | 17 ++++++++ drivers/infiniband/hw/ipath/ipath_verbs.c | 17 ++++++++ drivers/infiniband/hw/mlx4/main.c | 17 ++++++++ drivers/infiniband/hw/mlx5/main.c | 17 ++++++++ drivers/infiniband/hw/mthca/mthca_provider.c | 17 ++++++++ drivers/infiniband/hw/nes/nes_verbs.c | 16 +++++++ drivers/infiniband/hw/ocrdma/ocrdma_main.c | 17 ++++++++ drivers/infiniband/hw/qib/qib_verbs.c | 17 ++++++++ drivers/infiniband/hw/usnic/usnic_ib_main.c | 17 ++++++++ include/rdma/ib_verbs.h | 19 ++++++++- 15 files changed, 249 insertions(+), 37 deletions(-) commit f888ae7e6a9e7c0ddc2aa78adc1299747f202516 Author: Hans Verkuil Date: Fri May 1 11:31:30 2015 -0300 [media] adv7842: Make output format configurable through pad format operations Replace the dummy video format operations by pad format operations that configure the output format. Copied from the adv7604 driver. Note: while arch/blackfin/mach-bf609/boards/ezkit.c uses adv7842_platform_data this source has not been updated because it is broken since the very beginning. It depends on a struct adv7842_output_format that does not exist. And besides that gcc has no support for bf609 so nobody can compile it except by installing a toolchain from ADI. Signed-off-by: Hans Verkuil Cc: Scott Jiang Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/adv7842.c | 269 +++++++++++++++++++++++++++++++++++++++----- include/media/adv7842.h | 89 ++++++--------- 2 files changed, 276 insertions(+), 82 deletions(-) commit 26c454288a4beac774ea31c15284783fcd75721d Author: Ira Weiny Date: Wed May 13 20:02:57 2015 -0400 IB/user_mad: Fix buggy usage of port index The addition of the rdma_cap_ib_mad is technically broken in ib_umad_remove_one because the loop "i" value is not a port value. This bug resulted in the ib_umad failing to properly remove its resources when the core capability functions were converted to bit fields. NOTE: e17371d73908 did not result in broken behavior on its own. It was only an issue when the implementation of rdma_cap_ib_mad was changed. Pass the port value to rdma_cap_ib_mad. Fixes: e17371d73908 ("IB/Verbs: Use management helper rdma_cap_ib_mad()") Signed-off-by: Ira Weiny Signed-off-by: Doug Ledford drivers/infiniband/core/user_mad.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ab8be619b81a0d83706294bd791407e0f497d646 Author: Ira Weiny Date: Wed May 13 20:02:56 2015 -0400 IB/user_mad: Use new start/end port functions Use the new common rdma_[start|end]_port functions instead of using local variables and figuring it out on the fly. Signed-off-by: Ira Weiny Signed-off-by: Doug Ledford drivers/infiniband/core/user_mad.c | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) commit f766c58fa3ea38a30912df8b5af3ca40637fe5e9 Author: Ira Weiny Date: Fri May 8 14:27:24 2015 -0400 IB/mad: Add const qualifiers to query only functions The following functions only need read access to the data passed to them. ib_mad_kernel_rmpp_agent is_rmpp_data_mad rcv_has_same_gid ib_find_send_mad Clarify with const specifiers Signed-off-by: Ira Weiny Signed-off-by: Doug Ledford drivers/infiniband/core/mad.c | 16 ++++++++-------- drivers/infiniband/core/mad_priv.h | 4 ++-- include/rdma/ib_mad.h | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) commit 8bf4b30c24df184528261e252227debf611b4c11 Author: Ira Weiny Date: Fri May 8 14:27:23 2015 -0400 IB/mad: Clean up rcv_has_same_class rcv_has_same_class only needs access to the MAD header specify WR and Receive WC as const Reviewed-By: Jason Gunthorpe Reviewed-by: Sean Hefty Signed-off-by: Ira Weiny Signed-off-by: Doug Ledford drivers/infiniband/core/mad.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 96909308542006215980874ce496101ea51aa031 Author: Ira Weiny Date: Fri May 8 14:27:22 2015 -0400 IB/mad: Change ib_response_mad signature arguments ib_response_mad only needs read access to the MAD header, not write access to the entire mad struct, so replace struct ib_mad with const struct ib_mad_hdr Reviewed-By: Jason Gunthorpe Reviewed-by: Sean Hefty Signed-off-by: Ira Weiny Signed-off-by: Doug Ledford drivers/infiniband/core/mad.c | 20 ++++++++++---------- drivers/infiniband/core/user_mad.c | 6 +++--- include/rdma/ib_mad.h | 2 +- 3 files changed, 14 insertions(+), 14 deletions(-) commit 77f60833b8e75c72e133c38a33d12ecf0689206a Author: Ira Weiny Date: Fri May 8 14:27:21 2015 -0400 IB/mad: Change validate_mad signature arguments validate_mad only needs read access to the MAD header, not write access to the entire mad struct, so replace struct ib_mad with const struct ib_mad_hdr Reviewed-By: Jason Gunthorpe Reviewed-by: Sean Hefty Signed-off-by: Ira Weiny Signed-off-by: Doug Ledford drivers/infiniband/core/mad.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 687c27676151b1fd8ee10d4f6d603d0c8288badf Author: Tony Lindgren Date: Wed May 20 09:23:43 2015 -0700 ARM: dts: Add minimal support for LogicPD Torpedo DM3730 devkit The LogicPD Torpedo DM3730 devkit consists of a base board and two processor boards. One of the processor boards has a WLAN and the other one does not. Let's set up basic dts file so we can move to device tree only based booting over next few merge windows. So far I've tested that UARTs, MMC1, USB OTG, smsc911x, and basic PM support works. Note that the wireless support in kernel for wl1283 seems to be broken, it tries to load wl127x-nvs.bin instead of wl128x-nvs.bin with firmware. Cc: Tim Nordell Signed-off-by: Tony Lindgren arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/logicpd-torpedo-37xx-devkit.dts | 157 +++++++++++++++++++++ arch/arm/boot/dts/logicpd-torpedo-som.dtsi | 162 ++++++++++++++++++++++ 3 files changed, 320 insertions(+) commit b96b332fd518cd4d08104bc5ca552ac1ade7e2c7 Author: Tony Lindgren Date: Wed May 20 09:23:43 2015 -0700 ARM: OMAP3: Add support for configuring MMC pins as GPIO pins Some devices are using the MMC1 pins 4..8 as GPIO pins, and in this case they need to be configured for 1.8V IO voltage if not done by the bootloader as otherwise some devices like smsc911x won't work properly. Let's also make sure this register is saved and restored for idle. Cc: Tim Nordell Signed-off-by: Tony Lindgren arch/arm/mach-omap2/control.c | 3 +++ arch/arm/mach-omap2/control.h | 3 +++ arch/arm/mach-omap2/pdata-quirks.c | 22 ++++++++++++++++++++++ 3 files changed, 28 insertions(+) commit 685e2d08c54b1a1bf31bbe6562f06db089d31c7b Author: Tony Lindgren Date: Wed May 20 09:01:21 2015 -0700 ARM: OMAP1: Change interrupt numbering for sparse IRQ Change interrupt numbering for sparse IRQ. We do this using a fixed offset until we can drop irqs.h once all it's users have been updated. Note that this depends on the GPIO fix for the MPUIO IRQs "gpio: omap: Fix regression for MPUIO interrupts". Also note that this patch adds some extra irq alloc warnings that will go away when we stop calling irq_alloc_descs in gpio-omap.c with a follow-up patch. Cc: Aaro Koskinen Signed-off-by: Tony Lindgren arch/arm/Kconfig | 1 + arch/arm/mach-omap1/ams-delta-fiq-handler.S | 3 +- arch/arm/mach-omap1/dma.c | 2 +- arch/arm/mach-omap1/i2c.c | 3 +- arch/arm/mach-omap1/include/mach/irqs.h | 124 ++++++++++++++-------------- arch/arm/mach-omap1/include/mach/soc.h | 4 + arch/arm/mach-omap1/irq.c | 1 + arch/arm/mach-omap1/timer.c | 4 +- arch/arm/plat-omap/dma.c | 4 + 9 files changed, 75 insertions(+), 71 deletions(-) commit b694331cfb2ec3bc2225a0ea9fddbb7e24d81c37 Author: Tony Lindgren Date: Wed May 20 09:01:21 2015 -0700 ARM: omap1: Switch to use MULTI_IRQ This allows us to get a bit further with SPARSE_IRQ and MULTIARCH support. Note that we now also rename omap_irq_flags to omap_l2_irq as that's the omap_irq_flags naming is confusing. It just contains the interrupt number for the l2 irq. Cc: Aaro Koskinen Signed-off-by: Tony Lindgren arch/arm/Kconfig | 1 + arch/arm/mach-omap1/board-ams-delta.c | 1 + arch/arm/mach-omap1/board-fsample.c | 1 + arch/arm/mach-omap1/board-generic.c | 1 + arch/arm/mach-omap1/board-h2.c | 1 + arch/arm/mach-omap1/board-h3.c | 1 + arch/arm/mach-omap1/board-htcherald.c | 1 + arch/arm/mach-omap1/board-innovator.c | 1 + arch/arm/mach-omap1/board-nokia770.c | 1 + arch/arm/mach-omap1/board-osk.c | 1 + arch/arm/mach-omap1/board-palmte.c | 1 + arch/arm/mach-omap1/board-palmtt.c | 1 + arch/arm/mach-omap1/board-palmz71.c | 1 + arch/arm/mach-omap1/board-perseus2.c | 1 + arch/arm/mach-omap1/board-sx1.c | 1 + arch/arm/mach-omap1/board-voiceblue.c | 1 + arch/arm/mach-omap1/common.h | 5 ++-- arch/arm/mach-omap1/include/mach/entry-macro.S | 39 ------------------------- arch/arm/mach-omap1/irq.c | 40 ++++++++++++++++++++++---- 19 files changed, 53 insertions(+), 47 deletions(-) commit 55b44774438959a957e717ecbdd9f2874b07ab31 Author: Tony Lindgren Date: Wed May 20 09:01:21 2015 -0700 ARM: OMAP1: Switch to use generic irqchip in preparation for sparse IRQ Let's set up things ready for enabling sparse IRQ and remove the omap_read/write usage. Cc: Aaro Koskinen Signed-off-by: Tony Lindgren arch/arm/mach-omap1/irq.c | 118 +++++++++++++++++++++++----------------------- 1 file changed, 60 insertions(+), 58 deletions(-) commit 928f81aa619d845d6faa5a459cdbc18b7a78ddce Author: Tony Lindgren Date: Wed May 20 09:01:20 2015 -0700 ARM: OMAP1: Move UART defines to prepare for sparse IRQ These have been indirectly included via asm/irqs.h that has included mach/hardware.h unless SPARSE_IRQ is specified. Let's move them to where the other OMAP serial defines for 8250 are. Cc: Aaro Koskinen Cc: Greg Kroah-Hartman Signed-off-by: Tony Lindgren arch/arm/mach-omap1/include/mach/serial.h | 5 ----- include/uapi/linux/serial_reg.h | 3 +++ 2 files changed, 3 insertions(+), 5 deletions(-) commit 6a9270075858a0586bc1a8415263e8d1134550f6 Author: Jens Axboe Date: Wed May 20 09:54:35 2015 -0600 loop: remove (now) unused 'out' label gcc, righfully, complains: drivers/block/loop.c:1369:1: warning: label 'out' defined but not used [-Wunused-label] Kill it. Signed-off-by: Jens Axboe drivers/block/loop.c | 1 - 1 file changed, 1 deletion(-) commit 16e44e3e93c429b44a1441049ce89208fd3e0d28 Author: Damien Lespiau Date: Wed May 20 14:45:16 2015 +0100 drm/i915: Kill the dev variable in intel_suspend_complete() The macros we use there are the magic ones that can take either dev or dev_priv. We'd like to move as much as possible towards dev_priv though. Signed-off-by: Damien Lespiau Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit ff0b187f92f61503c8af67d3dc5e6e91fbe2f9cc Author: Damien Lespiau Date: Wed May 20 14:45:15 2015 +0100 drm/i915: Add a space after ', ' and don't capitalize mid-sentence Couldn't let it go! Signed-off-by: Damien Lespiau Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit a9a6b73a1c1191ef9e1339c61231144dd2cb1f2b Author: Damien Lespiau Date: Wed May 20 14:45:14 2015 +0100 drm/i915/bxt: Also add bxt_resume_prepare() to the S3/S4 path Currently bxt_resume_prepare() is only used in the runtime-resume path. Add it to the full S3/S4 path as well. v2: Rebase on top of the vlv_resume_prepare() shuffling around Cc: Imre Deak Reviewed-by: Imre Deak (v1) Signed-off-by: Damien Lespiau Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit e0f8864fb4ac0bdf5633c3ff8064d2c775af64f4 Merge: 80f3e65 ef6ca1a Author: Arnd Bergmann Date: Wed May 20 17:41:15 2015 +0200 Merge tag 'zynq-soc-for-4.2' of https://github.com/Xilinx/linux-xlnx into next/soc Merge "arm: Xilinx Zynq SoC patches for v4.2" from Michal Simek: - Change SoC reset path - Fix SLCR unlock scheme * tag 'zynq-soc-for-4.2' of https://github.com/Xilinx/linux-xlnx: ARM: zynq: Drop use of slcr_unlock in zynq_slcr_system_restart ARM: zynq: Use restart_handler mechanism for slcr reset commit cbdf76abe3707b31e9b064a9319f9737cfecf066 Merge: bf300af 1da4d13 Author: Arnd Bergmann Date: Wed May 20 17:39:28 2015 +0200 Merge tag 'ux500-cleanup-v4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson into next/cleanup Merge "Ux500 cleanups for the v4.2 merge window" from Linus Walleij: * tag 'ux500-cleanup-v4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson: ARM: ux500: delete static resource defines ARM: ux500: rename ux500_map_io ARM: ux500: look up PRCMU resource from DT ARM: ux500: kill off L2CC static map ARM: ux500: get rid of SCU and backupram static maps ARM: ux500: get rid of static GIC dist base ARM: ux500: get SCU base from device tree ARM: ux500: remap BB offset dynamically ARM: ux500: remove static maps from platsmp ARM: ux500: delete UART static map commit 378bda66b90ee37d7712648bdab994235b2bedb8 Merge: 7dfc635 8d545f3 Author: Arnd Bergmann Date: Wed May 20 17:38:02 2015 +0200 Merge tag 'at91-dt2' of git://git.kernel.org/pub/scm/linux/kernel/git/nferre/linux-at91 into next/dt Merge "Second batch of DT changes for 4.2:" from Nicolas Ferre: - sama5d4: more peripherals: usarts, uarts, spi, pioD access - sama5d3: phy address for gmac - change NFC register map - regulator additions for the sd/mmc * tag 'at91-dt2' of git://git.kernel.org/pub/scm/linux/kernel/git/nferre/linux-at91: ARM: at91/dt: sama5d4 xplained: add regulators for v(q)mmc1 supplies ARM: at91/dt: sama5d3 xplained: add fixed regulator for vmmc0 ARM: at91/dt: sama5d3 xplained: add mmc0 vqmmc entry ARM: at91/dt: sama5d3 xplained: fill in mmc1 and set it to disabled ARM: at91/dt: sama5: reduce the NFC command register map ARM: at91/dt: sama5d4: update pinctrl ranges ARM: at91/dt: sama5d3 xplained: add phy address for macb0 ARM: at91/dt: sama5d4 xplained: add spi1 on j14 connector ARM: at91/dt: sama5d4: add spi1, spi2 dt nodes ARM: at91/dt: sama5d4: add uart0, uart1 dt nodes ARM: at91/dt: sama5d4: add usart0, usart1 dt nodes commit 03c1fb7e96a3154dbcbbc16883c4693ead3d558a Merge: addcbe2 822cfdf Author: Arnd Bergmann Date: Wed May 20 17:31:33 2015 +0200 Merge tag 'at91-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/nferre/linux-at91 into next/defconfig Merge "First batch of defconfig changes for 4.2" from Nicolas Ferre: - fixed regulators for sd/mmc - addition of AT91 to the multi_v7_defconfig * tag 'at91-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/nferre/linux-at91: ARM: multi_v7_defconfig: Add Atmel SAMA5 family ARM: at91/defconfig: add CONFIG_REGULATOR_FIXED_VOLTAGE for mmc driver Conflicts: arch/arm/configs/multi_v7_defconfig commit addcbe2ae91ceaff149ceb07cf61d1bb3998276e Author: Arnd Bergmann Date: Mon May 18 17:19:16 2015 +0200 ARM: stm32: do not try to use a ramdisk in defconfig The original stm32 defconfig file looks for a ./rootfs.cpio file, but that breaks with ../scripts/gen_initramfs_list.sh: Cannot open './rootfs.cpio' when trying to build this kernel. Anybody who relies on the current behavior should change their build scripts to append the initramfs manually, as this patch removes that default in order to help autmatic testing. Signed-off-by: Arnd Bergmann Acked-by: Maxime Coquelin arch/arm/configs/stm32_defconfig | 1 - 1 file changed, 1 deletion(-) commit c4e24bfc405a94c3fbdf82d5650793473ab8088b Author: Arnd Bergmann Date: Mon May 18 17:24:41 2015 +0200 ARM: xz: do not try to use a ramdisk in defconfig The original zx defconfig file looks for a ./rootfs.cpio file, but that breaks with scripts/gen_initramfs_list.sh: Cannot open 'initramfs.cpio.gz' when trying to build this kernel. Anybody who relies on the current behavior should change their build scripts to append the initramfs manually, as this patch removes that default in order to help autmatic testing. Signed-off-by: Arnd Bergmann Acked-by: Jun Nie arch/arm/configs/zx_defconfig | 1 - 1 file changed, 1 deletion(-) commit 80f3e6557e43ee795e4060d8ae033a26d415cd8b Author: Arnd Bergmann Date: Mon May 18 17:55:16 2015 +0200 ARM: uniphier: only select TWD for SMP This makes uniphier behave like all the other platforms that support TWD, and only select this driver when SMP is enabled. Without this, we get a compile error on UP builds: arch/arm/kernel/smp_twd.c: In function 'twd_local_timer_of_register': arch/arm/kernel/smp_twd.c:391:20: error: 'setup_max_cpus' undeclared (first use in this function) Signed-off-by: Arnd Bergmann Acked-by: Masahiro Yamada arch/arm/mach-uniphier/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0aed6a37b5ec742b4b2ebb474df509044bd0d40e Author: Joachim Eastwood Date: Tue May 19 20:55:03 2015 +0200 ARM: lpc18xx: define low-level debug symbol for LPC18xx/43xx Using a dedicated symbol for low-level debugging instead of the arch symbol will make this platform play nice when enabled on a kernel that supports multiple platforms. Signed-off-by: Joachim Eastwood Acked-by: Geert Uytterhoeven Signed-off-by: Arnd Bergmann arch/arm/Kconfig.debug | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit 3143875f35952b4fc3052e7af45d7337f6a7919d Author: Joachim Eastwood Date: Tue May 19 20:59:21 2015 +0200 MAINTAINERS: Add entry for NXP LPC18xx/43xx MCUs Add a MAINTAINER entry covering all NXP LPC18xx/43xx machine and drivers files. Signed-off-by: Joachim Eastwood Signed-off-by: Arnd Bergmann MAINTAINERS | 6 ++++++ 1 file changed, 6 insertions(+) commit a05e578055d7f9ec2d5c4465933eb424c4e8e25b Author: Jarod Wilson Date: Wed May 6 12:26:28 2015 +0800 s390/block/dasd: remove obsolete while -EBUSY loop With the mutex_trylock bit gone from blkdev_reread_part(), the retry logic in dasd_scan_partitions() shouldn't be necessary. CC: Christoph Hellwig CC: Jens Axboe CC: Tejun Heo CC: Alexander Viro CC: Markus Pargmann CC: Stefan Weinhuber CC: Stefan Haberland CC: Sebastian Ott CC: Fabian Frederick CC: Ming Lei CC: David Herrmann CC: Andrew Morton CC: Peter Zijlstra CC: nbd-general@lists.sourceforge.net CC: linux-s390@vger.kernel.org Reviewed-by: Christoph Hellwig Acked-by: Sebastian Ott Signed-off-by: Ming Lei Signed-off-by: Jarod Wilson Signed-off-by: Jens Axboe drivers/s390/block/dasd_genhd.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) commit 6029a06c88b925467cb43e4b57dcede88f0457eb Author: Ming Lei Date: Wed May 6 12:26:26 2015 +0800 block: dasd_genhd: convert to blkdev_reread_part Also remove the obsolete comment. Reviewed-by: Christoph Hellwig Tested-by: Jarod Wilson Acked-by: Jarod Wilson Acked-by: Sebastian Ott Signed-off-by: Ming Lei Signed-off-by: Jens Axboe drivers/s390/block/dasd_genhd.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit 9dcd13795342f51994fc23a4949d31c77919271c Author: Ming Lei Date: Wed May 6 12:26:25 2015 +0800 block: nbd: convert to blkdev_reread_part() Reviewed-by: Christoph Hellwig Tested-by: Jarod Wilson Acked-by: Jarod Wilson Signed-off-by: Ming Lei Signed-off-by: Jens Axboe drivers/block/nbd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 06f0e9e68c0d81c7d822a405f6e35686a711c1fe Author: Ming Lei Date: Wed May 6 12:26:24 2015 +0800 block: loop: fix another reread part failure loop_clr_fd() can be run piggyback with lo_release(), and under this situation, reread partition may always fail because bd_mutex has been held already. This patch detects the situation by the reference count, and call __blkdev_reread_part() to avoid acquiring the lock again. In the meantime, this patch switches to new kernel APIs of blkdev_reread_part() and __blkdev_reread_part(). Reviewed-by: Christoph Hellwig Tested-by: Jarod Wilson Acked-by: Jarod Wilson Signed-off-by: Jarod Wilson Signed-off-by: Ming Lei Signed-off-by: Jens Axboe drivers/block/loop.c | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) commit f8933667953e8e61bb6104f5ca88e32e85656a93 Author: Ming Lei Date: Wed May 6 12:26:23 2015 +0800 block: loop: don't hold lo_ctl_mutex in lo_open The lo_ctl_mutex is held for running all ioctl handlers, and in some ioctl handlers, ioctl_by_bdev(BLKRRPART) is called for rereading partitions, which requires bd_mutex. So it is easy to cause failure because trylock(bd_mutex) may fail inside blkdev_reread_part(), and follows the lock context: blkid or other application: ->open() ->mutex_lock(bd_mutex) ->lo_open() ->mutex_lock(lo_ctl_mutex) losetup(set fd ioctl): ->mutex_lock(lo_ctl_mutex) ->ioctl_by_bdev(BLKRRPART) ->trylock(bd_mutex) This patch trys to eliminate the ABBA lock dependency by removing lo_ctl_mutext in lo_open() with the following approach: 1) make lo_refcnt as atomic_t and avoid acquiring lo_ctl_mutex in lo_open(): - for open vs. add/del loop, no any problem because of loop_index_mutex - freeze request queue during clr_fd, so I/O can't come until clearing fd is completed, like the effect of holding lo_ctl_mutex in lo_open - both open() and release() have been serialized by bd_mutex already 2) don't hold lo_ctl_mutex for decreasing/checking lo_refcnt in lo_release(), then lo_ctl_mutex is only required for the last release. Reviewed-by: Christoph Hellwig Tested-by: Jarod Wilson Acked-by: Jarod Wilson Signed-off-by: Ming Lei Signed-off-by: Jens Axboe drivers/block/loop.c | 21 ++++++++++++--------- drivers/block/loop.h | 2 +- 2 files changed, 13 insertions(+), 10 deletions(-) commit b816d45fd56c57180b63a03412b9f898d5736c58 Merge: cddcd72 b04a5636 Author: Jens Axboe Date: Wed May 20 09:05:57 2015 -0600 Merge branch 'for-4.2/core' into for-4.2/drivers We need the blkdev_reread_part() changes for drivers to adapt. commit b04a5636a665f5529fdf69ee7e5512156196f31c Author: Ming Lei Date: Wed May 6 12:26:27 2015 +0800 block: replace trylock with mutex_lock in blkdev_reread_part() The only possible problem of using mutex_lock() instead of trylock is about deadlock. If there aren't any locks held before calling blkdev_reread_part(), deadlock can't be caused by this conversion. If there are locks held before calling blkdev_reread_part(), and if these locks arn't required in open, close handler and I/O path, deadlock shouldn't be caused too. Both user space's ioctl(BLKRRPART) and md_setup_drive() from init/do_mounts_md.c belongs to the 1st case, so the conversion is safe for the two cases. For loop, the previous patches in this pathset has fixed the ABBA lock dependency, so the conversion is OK. For nbd, tx_lock is held when calling the function: - both open and release won't hold the lock - when blkdev_reread_part() is run, I/O thread has been stopped already, so tx_lock won't be acquired in I/O path at that time. - so the conversion won't cause deadlock for nbd For dasd, both dasd_open(), dasd_release() and request function don't acquire any mutex/semphone, so the conversion should be safe. Reviewed-by: Christoph Hellwig Tested-by: Jarod Wilson Acked-by: Jarod Wilson Signed-off-by: Ming Lei Signed-off-by: Jens Axboe block/ioctl.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit be32417796c2b8a83fe4cbece83bea96ab9e378f Author: Jarod Wilson Date: Wed May 6 12:26:22 2015 +0800 block: export blkdev_reread_part() and __blkdev_reread_part() This patch exports blkdev_reread_part() for block drivers, also introduce __blkdev_reread_part(). For some drivers, such as loop, reread of partitions can be run from the release path, and bd_mutex may already be held prior to calling ioctl_by_bdev(bdev, BLKRRPART, 0), so introduce __blkdev_reread_part for use in such cases. CC: Christoph Hellwig CC: Jens Axboe CC: Tejun Heo CC: Alexander Viro CC: Markus Pargmann CC: Stefan Weinhuber CC: Stefan Haberland CC: Sebastian Ott CC: Fabian Frederick CC: Ming Lei CC: David Herrmann CC: Andrew Morton CC: Peter Zijlstra CC: nbd-general@lists.sourceforge.net CC: linux-s390@vger.kernel.org Reviewed-by: Christoph Hellwig Signed-off-by: Jarod Wilson Signed-off-by: Ming Lei Signed-off-by: Jens Axboe block/ioctl.c | 28 +++++++++++++++++++++++++--- include/linux/fs.h | 3 +++ 2 files changed, 28 insertions(+), 3 deletions(-) commit 4785ffbdc9b52e308e43b9e2dcc1dca44f056d76 Author: Hauke Mehrtens Date: Tue May 12 23:23:01 2015 +0200 PCI: iproc: Add BCMA PCIe driver This driver adds support for the PCIe 2.0 controller found on the BCMA bus. This controller can be found on (mostly) all Broadcom BCM470X / BCM5301X ARM SoCs. The driver found in the Broadcom SDK does some more stuff, like setting up some DMA memory areas, chaining MPS and MRRS to 512 and also some PHY changes like "improving" the PCIe jitter and doing some special initialization for the 3rd PCIe port. This was tested on a bcm4708 board with 2 PCIe ports and wireless cards connected to them. PCI_DOMAINS is needed by this driver, because normally there is more than one PCIe controller and without PCI_DOMAINS only the first controller gets registered. This controller gets 6 IRQs; the last one is trigged by all IRQ events. [bhelgaas: fix "GPLv2" MODULE_LICENSE typo] Signed-off-by: Hauke Mehrtens Signed-off-by: Bjorn Helgaas Acked-by: Rafał Miłecki Acked-by: Ray Jui drivers/pci/host/Kconfig | 11 ++++ drivers/pci/host/Makefile | 1 + drivers/pci/host/pcie-iproc-bcma.c | 112 +++++++++++++++++++++++++++++++++++++ 3 files changed, 124 insertions(+) commit 196b44ea0f7582290e84dbb37f10d2468f726fbf Author: Alexandre Belloni Date: Mon Mar 23 17:48:57 2015 +0100 ARM: at91: remove useless Makefile.boot Makefile.boot is not used anymore, remove it. Signed-off-by: Alexandre Belloni Acked-by: Nicolas Ferre arch/arm/mach-at91/Makefile.boot | 8 -------- 1 file changed, 8 deletions(-) commit a11683b72da7552b724ee21760df5d19cf53f031 Author: Alexandre Belloni Date: Mon Mar 16 15:25:01 2015 +0100 ARM: at91: remove at91rm9200_sdramc.h include/soc/at91/at91rm9200_sdramc.h is replaced by include/linux/mfd/syscon/atmel-smc.h as this is actually a syscon device. Signed-off-by: Alexandre Belloni Acked-by: Nicolas Ferre include/soc/at91/at91rm9200_sdramc.h | 63 ------------------------------------ 1 file changed, 63 deletions(-) commit 09099f1942e993b1c63408b5a385883876e3e35e Author: Alexandre Belloni Date: Mon Mar 16 15:13:39 2015 +0100 ARM: at91: remove mach/at91_ramc.h and mach/at91rm9200_mc.h mach/at91_ramc.h and mach/at91rm9200_mc.h aren't necessary anymore, remove them. Signed-off-by: Alexandre Belloni Acked-by: Nicolas Ferre arch/arm/mach-at91/Makefile | 3 - arch/arm/mach-at91/include/mach/at91_ramc.h | 28 ------ arch/arm/mach-at91/include/mach/at91rm9200_mc.h | 116 ------------------------ arch/arm/mach-at91/pm.h | 14 ++- arch/arm/mach-at91/pm_suspend.S | 1 - 5 files changed, 13 insertions(+), 149 deletions(-) commit d7d45f25557e70c467ffd10d59f99e37463bb833 Author: Alexandre Belloni Date: Mon Mar 16 15:14:50 2015 +0100 ARM: at91/pm: use the atmel-mc syscon defines Use the defines from atmel-mc.h instead of at91rm9200_sdramc.h Signed-off-by: Alexandre Belloni Acked-by: Nicolas Ferre arch/arm/mach-at91/include/mach/at91_ramc.h | 2 +- arch/arm/mach-at91/pm.c | 8 ++++---- arch/arm/mach-at91/pm_suspend.S | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) commit eaa9a21dd14be8f4fdc6dbdb3732e2f5c3f49fa9 Author: Alexandre Belloni Date: Mon Mar 16 14:17:50 2015 +0100 pcmcia: at91_cf: Use syscon to configure the MC/smc Use syscon/regmap to configure the smc part of the memory controller. This allows to avoid using mach/at91rm9200_mc.h and mach/at91_ramc.h and to compile the driver in a multiplatform configuration. Signed-off-by: Alexandre Belloni Acked-by: Nicolas Ferre drivers/pcmcia/Kconfig | 1 - drivers/pcmcia/at91_cf.c | 25 ++++++++++++++----------- 2 files changed, 14 insertions(+), 12 deletions(-) commit 0506b2986c0971a987d7c63ac728f39c722f358a Author: Alexandre Belloni Date: Mon Mar 16 21:04:06 2015 +0100 ARM: at91: declare the at91rm9200 memory controller as a syscon The at91rm9200 memory controller is not simply an SDRAM controller. It also controls the EBI (External Bus Interface), the SMC (Static Memory Controller)and the Burst Flash Controller. Signed-off-by: Alexandre Belloni Acked-by: Nicolas Ferre Documentation/devicetree/bindings/arm/atmel-at91.txt | 2 +- arch/arm/boot/dts/at91rm9200.dtsi | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 985eba3aba77a997f65109e1418837b1d8b8512a Author: Boris Brezillon Date: Wed Dec 3 16:46:14 2014 +0100 mfd: syscon: Add Atmel MC (Memory Controller) registers definition The at91rm9200 SoC embeds a Memory Controller block which is used to configure several aspects of the platform: - AHB/APB Bus behavior - SDRAM Controller - EBI (External Bus Interface) and SMC (Static Memory Controller) config Those registers might be accessed by different drivers, hence we need to define it as a syscon device. Signed-off-by: Boris Brezillon Signed-off-by: Alexandre Belloni Acked-by: Lee Jones Acked-by: Nicolas Ferre include/linux/mfd/syscon/atmel-mc.h | 144 ++++++++++++++++++++++++++++++++++++ 1 file changed, 144 insertions(+) commit b8ccd9c39a3a4d8c816f323ac201f96bcc111f26 Author: Alexandre Belloni Date: Mon Mar 16 12:44:36 2015 +0100 ARM: at91: drop sam9_smc.c sam9_smc.c has no users anymore, remove it along with both sam9_smc.h and mach/at91sam9_smc.h Signed-off-by: Alexandre Belloni Acked-by: Nicolas Ferre arch/arm/mach-at91/Makefile | 2 - arch/arm/mach-at91/include/mach/at91sam9_smc.h | 98 ------------------ arch/arm/mach-at91/sam9_smc.c | 136 ------------------------- arch/arm/mach-at91/sam9_smc.h | 11 -- 4 files changed, 247 deletions(-) commit 5a90f8d3b193407dfa8c2e47163f569d5343b3ee Author: Alexandre Belloni Date: Mon Mar 16 12:37:58 2015 +0100 ata: at91: use syscon to configure the smc Use syscon/regmap to configure the smc. This allows to avoid using at91sam9_smc.h and to compile the driver in a multiplatform configuration. The driver will still not probe until the proper DT bindings are added. That binding will include an atmel,smc property that is a phandle to the SMC the CF controller is connected to. Signed-off-by: Alexandre Belloni Acked-by: Nicolas Ferre drivers/ata/Kconfig | 1 - drivers/ata/pata_at91.c | 92 ++++++++++++++++++++++++++++++++++++++----------- 2 files changed, 71 insertions(+), 22 deletions(-) commit c1e02ceaf5739d32f092ac07bf886a0281ec40b1 Author: Hauke Mehrtens Date: Tue May 12 23:23:00 2015 +0200 PCI: iproc: Allow override of device tree IRQ mapping function The iProc core PCIe driver defaults to using of_irq_parse_and_map_pci() for IRQ mapping. Add iproc_pcie.map_irq so bus interfaces that don't use device tree can override this by supplying their own IRQ mapping function. [bhelgaas: changelog] Posting: http://lkml.kernel.org/r/1431465781-10753-1-git-send-email-hauke@hauke-m.de Signed-off-by: Hauke Mehrtens Signed-off-by: Bjorn Helgaas Reviewed-by: Ray Jui drivers/pci/host/pcie-iproc-platform.c | 2 ++ drivers/pci/host/pcie-iproc.c | 2 +- drivers/pci/host/pcie-iproc.h | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) commit c5a71688e1e56e155fb79b8d699322f4f0793cc8 Author: Arik Nemtsov Date: Tue May 19 14:36:48 2015 +0300 mac80211: disconnect TDLS stations on STA CSA When a station does a channel switch, it's not well defined what its TDLS peers would do. Avoid a situation when the local side marks a potentially disconnected peer as a TDLS peer. Keeping peers connected through CSA is doubly problematic with the upcoming TDLS WIDER-BW feature which allows peers to widen the BSS channel. The new channel transitioned-to might not be compatible and would require a re-negotiation anyway. Make sure to disallow new TDLS link during CSA. Signed-off-by: Arik Nemtsov Signed-off-by: Emmanuel Grumbach Signed-off-by: Johannes Berg net/mac80211/mlme.c | 26 ++++++++++++++++++++++++++ net/mac80211/tdls.c | 6 ++++++ 2 files changed, 32 insertions(+) commit 464daaf04cb633ae1530652fd23cdea0f0d21dd5 Author: Michal Kazior Date: Tue May 19 14:13:36 2015 +0200 mac80211: check fast-xmit on station change Drivers with fast-xmit (e.g. ath10k) running in AP_VLAN setups would fail to communicate with connected 4addr stations. The reason was when new station associates it first goes into master AP interface. It is not until later that a dedicated AP_VLAN is created for it and the station itself is moved there. After that Tx directed at the station should use 4addr header. However fast-xmit wasn't recalculated and 3addr header remained to be used. This in turn caused the connected 4addr stations to drop packets coming from the AP until some other event would cause fast-xmit to recalculate for that station (which could never come). Signed-off-by: Michal Kazior Signed-off-by: Johannes Berg net/mac80211/cfg.c | 1 + 1 file changed, 1 insertion(+) commit f8bdbb584749420da1a7fea8cc1df18e5c2c4d6c Author: Johannes Berg Date: Wed May 20 15:04:53 2015 +0200 mac80211: add missing drv_priv description for TXQ struct The kernel-doc description for the drv_priv member of struct ieee80211_txq was missing, leading to errors. Add a suitable description to fix that. Signed-off-by: Johannes Berg include/net/mac80211.h | 1 + 1 file changed, 1 insertion(+) commit 262918d847c0f66a0ec05db9de7571ed72e422af Author: Lars-Peter Clausen Date: Sat May 16 14:35:54 2015 +0200 cfg80211: Switch to PM ops Use dev_pm_ops instead of the legacy suspend/resume callbacks for the wiphy class suspend and resume operations. Signed-off-by: Lars-Peter Clausen Signed-off-by: Johannes Berg net/wireless/sysfs.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) commit 28f297a7af7e00500d72e6c0421c7e10ec96f627 Author: Lars-Peter Clausen Date: Sat May 16 14:23:55 2015 +0200 net: rfkill: Switch to PM ops Use dev_pm_ops instead of the legacy suspend/resume callbacks for the rfkill class suspend and resume operations. Signed-off-by: Lars-Peter Clausen Signed-off-by: Johannes Berg net/rfkill/core.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit 441cf98aee11f38116cfdb3806ceacdf4d5bc6ec Author: Nicolas Ferre Date: Wed May 20 14:31:49 2015 +0200 ARM: at91/dt: at91sam9x5: fix usart1 sck pin definition SCK1 pin is pioC 29. Comment was okay. Signed-off-by: Nicolas Ferre arch/arm/boot/dts/at91sam9x5.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 71df673132cd5eef9ae2d9c79e3a446249de4961 Author: Patrick Boettcher Date: Wed May 20 04:58:49 2015 -0300 [media] cx24120: fix minor checkpatch-error Remove multiple blank likes. Signed-off-by: Patrick Boettcher Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/cx24120.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c9adafa3b2fd4bc5f15cdf95e6cbd25256ae0f28 Author: Jemma Denson Date: Tue May 19 17:32:55 2015 -0300 [media] cx24120: Update comment & fix typo These state vars are used for more than just ber calculation, also fix typo. Signed-off-by: Jemma Denson Signed-off-by: Patrick Boettcher Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/cx24120.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e3f2f63e8cc8a9b9a16f351b55a108ab82de6d2e Author: Jemma Denson Date: Tue May 19 17:23:14 2015 -0300 [media] cx24120: Check for lock before updating BER & UCB BER & UCB aren't available unless we're locked; don't update dvbv5 stats when not locked and mark these counters as unavailable. Signed-off-by: Jemma Denson Signed-off-by: Patrick Boettcher Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/cx24120.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 80e9710b34550ae906424feb2cf40dee0422ce46 Author: Jemma Denson Date: Tue May 19 15:52:46 2015 -0300 [media] cx24120: Convert ucblocks to dvbv5 stats DVBv3 is a legacy API. Drivers should use DVBv5, in order to support modern applications. So, implement UCB using dvbv5. Signed-off-by: Jemma Denson Signed-off-by: Patrick Boettcher Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/cx24120.c | 49 +++++++++++++++++++++++++++-------- 1 file changed, 38 insertions(+), 11 deletions(-) commit fc4432847866baf1d3ad3348cce976c0299be081 Author: Jemma Denson Date: Tue May 19 15:29:44 2015 -0300 [media] cx24120: Convert read_ber to retrieve from cache Instead of reading BER again for DVBv3 call, use the value from the cache. Signed-off-by: Jemma Denson Signed-off-by: Patrick Boettcher Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/cx24120.c | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) commit ddcb252e41c15b360c0e9a172fbd29d3f0ed18cd Author: Jemma Denson Date: Tue May 19 15:17:23 2015 -0300 [media] cx24120: Add in dvbv5 stats for bit error rate DVBv3 is a legacy API. Drivers should use DVBv5, in order to support modern applications. So, implement BER using dvbv5. Signed-off-by: Jemma Denson Signed-off-by: Patrick Boettcher Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/cx24120.c | 71 +++++++++++++++++++++++++++++++---- 1 file changed, 63 insertions(+), 8 deletions(-) commit ec8fe6c92576a0d6e2b04df2ef139125c3f341b5 Author: Mauro Carvalho Chehab Date: Tue May 19 08:19:47 2015 -0300 [media] cx24120: constify static data Use const on the static data, as gcc may optimize better the code. Also, would prevent that some code would override the data there. Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Patrick Boettcher drivers/media/dvb-frontends/cx24120.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) commit 5b8bc802e79f4f1df7fcf6999c910d6e231e3c95 Author: Mauro Carvalho Chehab Date: Tue May 19 08:06:52 2015 -0300 [media] cx24120: declare cx24120_init() as static drivers/media/dvb-frontends/cx24120.c:1182:5: warning: no previous prototype for 'cx24120_init' [-Wmissing-prototypes] int cx24120_init(struct dvb_frontend *fe) ^ Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Patrick Boettcher drivers/media/dvb-frontends/cx24120.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 65b01665a98a8738371d945230f4bd6fb41a3594 Author: Mauro Carvalho Chehab Date: Tue May 19 08:04:35 2015 -0300 [media] cx24120: don't initialize a var that won't be used As reported by smatch: drivers/media/dvb-frontends/cx24120.c: In function 'cx24120_message_send': drivers/media/dvb-frontends/cx24120.c:368:6: warning: variable 'ret' set but not used [-Wunused-but-set-variable] int ret, ficus; ^ The values written by cx24120 are never checked. So, remove the check here too. That's said, the best would be to do the reverse, but globally: to properly handle the error codes. Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Patrick Boettcher drivers/media/dvb-frontends/cx24120.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit d499c106843afa0703a68c64662bf42a16421aec Merge: aa89100 2d8e405 Author: Ingo Molnar Date: Wed May 20 13:23:55 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 "Command" sort_entry's cmp and collapse function (Jiri Olsa) - Load map's symtab before 'perf probe' glob matching (Wang Nan) - Set vmlinux_path__nr_entries to 0 in vmlinux_path__exit, to fix the use case where this code is called multiple times, which wasn't that common when it was introduced but seems to be now (Wang Nan). Infrastructure changes: - Protect dso symtab and cache operations with a mutex (Namhyung Kim) - Make all refcnt operations use atomic.h (Arnaldo Carvalho de Melo) - Install libtraceevent.a into libdir (Wang Nan) Build fixes: - Fix one build failure on RHEL5 by making 'perf bench numa' use the __weak sched_getcpu() provided by cloexec.h (Arnaldo Carvalho de Melo) - Fix dwarf-aux.c compilation on i386 (Jiri Olsa) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit a9b4fb7e79e7624c97c55e9c7562e3fe866ce70f Merge: ed3cf15 c447e76 Author: Paolo Bonzini Date: Wed May 20 11:46:12 2015 +0200 Merge branch 'kvm-master' into kvm-next Grab MPX bugfix, and fix conflicts against Rik's adaptive FPU deactivation patch. Signed-off-by: Paolo Bonzini commit 6b43c2eb9a7907c3e7ab9210ff6c62322d81e18c Author: Lars-Peter Clausen Date: Tue May 19 21:49:11 2015 +0200 ASoC: rt5677: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level() and replace all other manual access to codec->dapm with snd_soc_codec_get_dapm(). Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/rt5677.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit 6d8135ff00385c6b5149e19615c031ab3021df04 Author: Lars-Peter Clausen Date: Tue May 19 21:49:10 2015 +0200 ASoC: rt5670: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level() and replace all other manual access to codec->dapm with snd_soc_codec_get_dapm(). Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/rt5670.c | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) commit eb13bd563a21c34696c942690586e64389b3e054 Author: Lars-Peter Clausen Date: Tue May 19 21:49:09 2015 +0200 ASoC: rt5651: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/rt5651.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 76aad74bdd050037bd28a02a56c30460532cdce6 Author: Lars-Peter Clausen Date: Tue May 19 21:49:08 2015 +0200 ASoC: rt5640: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level() and replace all other manual access to codec->dapm with snd_soc_codec_get_dapm(). Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/rt5640.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit 61aad0b91c537436932d399b14d1e9412e58c438 Author: Lars-Peter Clausen Date: Tue May 19 21:49:07 2015 +0200 ASoC: rt5631: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level() and snd_soc_codec_init_bias_level(). Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/rt5631.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b1cd8457dadd52bdd3e38c6f34b5465f4430b34f Author: Lars-Peter Clausen Date: Tue May 19 21:49:06 2015 +0200 ASoC: rt286: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level() and replace all other manual access to codec->dapm with snd_soc_codec_get_dapm(). Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/rt286.c | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) commit ff344dcd80cf8a27eb6cb9b38d810fe5e1b6c34f Author: Lars-Peter Clausen Date: Tue May 19 21:49:05 2015 +0200 ASoC: alc5623: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm with snd_soc_codec_get_dapm(). Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/alc5623.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6f56a8d024757e2f3bda8bf3bdf6aa1a21e6810b Merge: 5856afe e88221c Author: Ingo Molnar Date: Wed May 20 11:59:45 2015 +0200 Merge branch 'x86/urgent' into x86/fpu, to resolve a conflict Conflicts: arch/x86/kernel/i387.c This commit is conflicting: e88221c50cad ("x86/fpu: Disable XSAVES* support for now") These functions changed a lot, move the quirk to arch/x86/kernel/fpu/init.c's fpu__init_system_xstate_size_legacy(). Signed-off-by: Ingo Molnar commit 2d52d172398249f523b24cff9b84aee4e7b8e1b6 Author: Dan Carpenter Date: Wed May 20 10:40:35 2015 +0300 ASoC: wm8741: check for error returns from wm8741_set_pdata() Static checkers complain that "ret" is always zero so the conditions are never true. The intention here was clearly to check for errors from wm8741_set_pdata(). Although, since wm8741_set_pdata() never returns errors, it doesn't affect runtime. Fixes: c354b54cfdf6 ('ASoC: wm8741: Add differential mono mode support') Signed-off-by: Dan Carpenter Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8741.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 179655fcd2f40edeae515da1f4361c7ddc56b8ed Author: Alexander Aring Date: Wed May 20 09:27:03 2015 +0200 at86rf230: add missing cca ed level values This patch add missing values for at86rf212 ed level values. Currently there are 15 values and the register setting supports 16 different ed level values. Signed-off-by: Alexander Aring Reported-by: Craig Younkins Signed-off-by: Marcel Holtmann drivers/net/ieee802154/at86rf230.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit ed3cf15271fa150320b46f03d369777b71786298 Author: Nicholas Krause Date: Wed May 20 00:24:10 2015 -0400 kvm: x86: Make functions that have no external callers static This makes the functions kvm_guest_cpu_init and kvm_init_debugfs static now due to having no external callers outside their declarations in the file, kvm.c. Signed-off-by: Nicholas Krause Signed-off-by: Paolo Bonzini arch/x86/kernel/kvm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5856afed0c8c419286d9f0c8e57e83e2875eec4b Author: Ingo Molnar Date: Wed May 20 11:39:35 2015 +0200 x86/fpu/init: Clean up and comment the __setup() functions Explain the functions and also standardize their style and naming. No change in functionality. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/init.c | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) commit 94c78cb4523c246ec37959436f04e7c946f7494b Author: Johannes Berg Date: Wed May 20 11:31:47 2015 +0200 mac80211: fix memory leak My recent change here introduced a possible memory leak if the driver registers an invalid cipher schemes. This won't really happen in practice, but fix the leak nonetheless. Fixes: e3a55b5399d55 ("mac80211: validate cipher scheme PN length better") Signed-off-by: Johannes Berg net/mac80211/main.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 7cf82d33b613780a79fda91babf7b9e6c5c82d75 Author: Ingo Molnar Date: Wed May 20 11:35:02 2015 +0200 x86/fpu/init: Move __setup() functions to fpu/init.c We had a number of FPU init related boot option handlers in arch/x86/kernel/cpu/common.c - move them over into arch/x86/kernel/fpu/init.c to have them all in a single place. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/common.c | 36 ------------------------------------ arch/x86/kernel/fpu/init.c | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 36 deletions(-) commit 1e8df16778b0d8fd8102b3ee799b028f8f961089 Author: Sonika Jindal Date: Wed May 20 13:40:48 2015 +0530 drm/i915/skl: Swapping 90 and 270 to be compliant with Xrandr Since DRM_ROTATE is counter clockwise (which is compliant with Xrandr), and HW rotation is clockwise, swapping 90/270 to work as expected from userspace. v2: Rebased Suggested-by: Ville Syrjälä Cc: Ville Syrjälä Signed-off-by: Sonika Jindal Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 7546a38411fc3eb9e0ff1252718b0bf6579c87f6 Author: Ander Conselvan de Oliveira Date: Wed May 20 09:03:27 2015 +0300 drm/i915: Update comment in clear_intel_crtc_state() Explain why a few fields of the new pipe_config have their values preserved, while the others are zeroed. Signed-off-by: Ander Conselvan de Oliveira Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit b88baa2a4616bd8fcd6203b3bc1b8cd90e232cb0 Author: Imre Deak Date: Tue May 19 15:05:00 2015 +0300 drm/i915/skl: add F0 stepping ID Signed-off-by: Imre Deak Reviewed-by: Damien Lespiau Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 1 + 1 file changed, 1 insertion(+) commit 5a2ae95e0b80d1769c24a0c7fbc7ae766cb706c1 Author: Imre Deak Date: Tue May 19 15:04:59 2015 +0300 drm/i915/bxt: limit WaDisableMaskBasedCammingInRCC to stepping A Also make the WA comment consistent with the rest, where the stepping info is not shown. Signed-off-by: Imre Deak Reviewed-by: Damien Lespiau Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_ringbuffer.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit 6c0fd451bdde9a6d0ac408bd078351890228e465 Author: Damien Lespiau Date: Tue May 19 12:29:16 2015 +0100 drm/i915: Tighten the exposure ARGB/ABGR 8888 formats ARGB8888 is used for cursors on all platforms so we need to allow it everywhere. ABGR8888 is currently only honoured: - on VLV/CHV in sprite planes - on SKL+ for primary and sprite planes so only allow it for those platforms. Note that we only support ARGB8888/ABGR8888 on the primary plane for SKL/BXT because we have in line of sight the pipe bottom color on those platforms and because the primary plane programming on VLV/CHV doesn't anything different for those formats today. v2: Fix the logic to forbid the creation ABGR2101010 fbs (Ville) v3: Still allow the creation of ARGB8888 fbs now that cursor planes use real fb objects (found by PRTS). Reviewed-by: Ville Syrjälä Signed-off-by: Damien Lespiau Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) commit c965d99557fd48e8c57d793ec22458e508cbf676 Author: Damien Lespiau Date: Mon May 18 19:53:48 2015 +0100 drm/i915: Fix 'suspedn' typo Signed-off-by: Damien Lespiau Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e0681e3841118b470b312b7c62c90af9364fce8d Author: Vandana Kannan Date: Wed May 13 12:20:35 2015 +0530 drm/i915/bxt: Move around lane stagger calculation Making lane stagger calculation common for HDMI and DP v2: Imre's comments addressed - Remove lane stagger from bxt_clk_div and make it a local variable in ddi_pll_select Signed-off-by: Vandana Kannan Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_ddi.c | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) commit b6dc71f38a84e36c5445b95f9f7a2dac6b25636f Author: Vandana Kannan Date: Wed May 13 12:18:52 2015 +0530 drm/i915/bxt: Port PLL programming BUN BUN 1: prop_coeff, int_coeff, tdctargetcnt programming updated and tied to VCO frequencies. Program i_lockthresh in PORT_PLL_9. VCO calculated based on the formula: Desired Output = Port bit rate in MHz (DisplayPort HBR2 is 5400 MHz) Fast Clock = Desired Output / 2 VCO = Fast Clock * P1 * P2 Prop_coeff, int_coeff, and tdctargetcnt modified according to above calculation. BUN 2: Port PLLs require additional programming at certain frequencies - DCO amplitude in PORT_PLL_10 Review comments from Siva which were addressed in the initial version of the patch. - Change PORT_PLL_LOCK_THRESHOLD to PORT_PLL_LOCK_THRESHOLD_MASK - Calculate for HDMI - Correct values for vco = 5.4 - return in case of invalid vco range v2: Imre's review comments addressed - change dcoampovr_en to dcoampovr_en_h - change PORT_PLL_DCO_AMP_OVR_EN to PORT_PLL_DCO_AMP_OVR_EN_H - Correct lane stagger value for 324MHz - Make coef common for HDMI and DP - remove superfluous comments v3: Imre's comments addressed - Remove Prop_coeff, int_coeff, tdctargetcnt, dcoampovr_en, gain_ctl, dcoampovr_en_h from bxt_clk_div and make them local variables. Signed-off-by: Vandana Kannan Reviewed-by: Sivakumar Thulasimani [v1] Cc: Sivakumar Thulasimani Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 2 +- drivers/gpu/drm/i915/i915_reg.h | 6 +++ drivers/gpu/drm/i915/intel_ddi.c | 79 ++++++++++++++++++++++++++++------------ 3 files changed, 63 insertions(+), 24 deletions(-) commit 0c9b371550f40f8273a835f1e1055445cc3e2498 Author: Jani Nikula Date: Mon May 18 17:10:01 2015 +0300 drm/i915: add HAS_DP_MST feature test macro Be in line with other features that we have. Signed-off-by: Jani Nikula Reviewed-by: Damien Lespiau Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 3 +++ drivers/gpu/drm/i915/intel_dp.c | 10 ++++------ 2 files changed, 7 insertions(+), 6 deletions(-) commit b2f505be3e5f41306b02bb570a74d71348756ced Author: Jani Nikula Date: Mon May 18 16:01:45 2015 +0300 drm/i915/dp: make link rate printing prettier Turn [drm:intel_dp_print_rates] source rates: 162000,270000,540000, [drm:intel_dp_print_rates] sink rates: 162000,270000, [drm:intel_dp_print_rates] common rates: 162000,270000, into [drm:intel_dp_print_rates] source rates: 162000, 270000, 540000 [drm:intel_dp_print_rates] sink rates: 162000, 270000 [drm:intel_dp_print_rates] common rates: 162000, 270000 Signed-off-by: Jani Nikula Reviewed-by: Damien Lespiau Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_dp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ee87697f8bc4da0aea6fe1a825c734fb5e4a5b3b Author: Damien Lespiau Date: Fri May 15 19:43:56 2015 +0100 drm/i915/bxt: Update the Broxton PCI ids Cc: Imre Deak Signed-off-by: Damien Lespiau Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter include/drm/i915_pciids.h | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 54f0ceef2c66cb6fa5f349c28b94cd1fae9ddab2 Author: Damien Lespiau Date: Fri May 15 19:06:03 2015 +0100 drm/i915: Don't expose ARGB1555 on gen2/3 Signed-off-by: Damien Lespiau Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 3 --- 1 file changed, 3 deletions(-) commit 7531208b16a22415aea44a5774931a0783c19daa Author: Damien Lespiau Date: Fri May 15 19:06:01 2015 +0100 drm/i915: Remove ARBG/ABGR 2101010 on platform not supporting those formats We just have have VLV and CHV sprites programming the hardware differently for the ABGR2101010 so keep them working. Signed-off-by: Damien Lespiau Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) commit 67fe7dc5d928de6111062cf73cf13e287b2d55c4 Author: Damien Lespiau Date: Fri May 15 19:06:00 2015 +0100 drm/i915: Remove the COMMON_PRIMARY_FORMATS defines That define makes it hard to figure out what is the actual list of formats at a glance. Expand it then. Suggested-by: Ville Syrjälä Signed-off-by: Damien Lespiau Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) commit 281400ff0fff07fc37af5ccccc79f47a8d7e8929 Author: Chris Wilson Date: Fri May 15 11:42:21 2015 +0100 drm/i915: Use uninterruptible mutex_lock for userptr bo creation Mika encountered one pathological scenario under X where acquiring all the mm locks (required to insert a mmu notifier) was very slow, so slow that by the time we tried to lock the struct_mutex with the usual call to i915_mutex_lock_interruptible(), X's signal timer had fired causing us to restart the ioctl (and so looped indefinitely). While I suspect this is the result of another bug (something leaking mm perhaps?) we can forgo the error checking and interuptible nature of the lock here so we only have to pay the expense once and get on with it. This does expose the userptr creation routine to a driver livelock though by not being interruptible. Signed-off-by: Chris Wilson Cc: Mika Kuoppala [danvet: Init ret to avoid issues reported by PRTS.] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_userptr.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) 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 When the modeset code is reached with a CRTC that only needs a flip, the code that assigns PLLs is skipped. But since there is still a state swap for that CRTC, the current PLL assignment needs to be preserved. I missed the ddi_pll_sel field in the following commit, which causes warnings in DDI platforms. commit 4978cc93d9ac240b435ce60431aef24239b4c270 Author: Ander Conselvan de Oliveira Date: Tue Apr 21 17:13:21 2015 +0300 drm/i915: Preserve shared DPLL information in new pipe_config Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90410 Signed-off-by: Ander Conselvan de Oliveira Reviewed-by: Damien Lespiau Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 3 +++ 1 file changed, 3 insertions(+) commit 415ff0f6eb612465e5b7dd3b8a440aa2601b60a5 Author: Tvrtko Ursulin Date: Thu May 14 13:38:31 2015 +0100 drm/i915: Dump some DPLL fields in pipe config debug v2: Split strings to 80 char, add ddi_pll_sel and fixed typo. (Damien Lespiau) Signed-off-by: Tvrtko Ursulin Cc: Damien Lespiau Reviewed-by: Damien Lespiau Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) commit dd3cd74acf12723045a64f1f2c6298ac7b34a5d5 Author: Ander Conselvan de Oliveira Date: Fri May 15 13:34:29 2015 +0300 drm/i915: Don't overwrite (e)DP PLL selection on SKL In the following commit, the place where the contents of dpll_hw_state in crtc_state where zeroed was changed. Prior to that commit, it happened when the new state was allocated, but now that happens just before the call the .crtc_compute_clock() hook. The DP code for SKL, however, sets up the (private) PLL in the encoder compute config function that has already run by the time that memset() is reached, causing the previous value to be lost. This patch fixes the issue by moving the memset() down the call chain, so that it is only called if the values in dpll_hw_state are going to be updated. commit 4978cc93d9ac240b435ce60431aef24239b4c270 Author: Ander Conselvan de Oliveira Date: Tue Apr 21 17:13:21 2015 +0300 drm/i915: Preserve shared DPLL information in new pipe_config Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90462 Signed-off-by: Ander Conselvan de Oliveira Reviewed-by: Damien Lespiau Reported-and-tested-by: Tvrtko Ursulin Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_ddi.c | 9 +++++++++ drivers/gpu/drm/i915/intel_display.c | 8 ++++++-- drivers/gpu/drm/i915/intel_dp.c | 3 +++ 3 files changed, 18 insertions(+), 2 deletions(-) commit acbb47939011f9f64b68592045350c15259e4bd4 Author: Jani Nikula Date: Wed May 13 15:34:05 2015 +0300 drm/i915/bios: be more explicit about discarding iomem address space Add one explicit discard of __iomem address space qualifier in validate_vbt(), and respect it otherwise. This adds clarity in the code, and reduces the sparse warnings from the module to just one. Quoting Daniel, "The vbt really is plain old memory. Except that it's reserved in the e820 table as something special and hence treated as io range by the kernel. But it is memory, hence casting away the __iomem is imo the right approach." Signed-off-by: Jani Nikula Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_bios.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) commit 0ec463d3102f379443fa6429298461f73aa5db41 Author: Tvrtko Ursulin Date: Wed May 13 16:51:08 2015 +0100 drm/i915: Output scaler related pipe config debug in a single line Just so it is grouped logically in line with other data and makes a rather verbose output a bit shorter. Signed-off-by: Tvrtko Ursulin Cc: Chandra Konduru Reviewed-by: Damien Lespiau Reviewed-by: Chandra Konduru Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit b34a991a2bf5b9bf0b8abcae7d0f8593fd59e909 Author: Jani Nikula Date: Wed May 13 15:34:04 2015 +0300 drm/i915/bios: abstract finding VBT in BIOS to a separate function Improve clarity. No functional changes. Signed-off-by: Jani Nikula Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_bios.c | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) commit 4d70f38a760ad2879d2ebd84001c92980180f630 Author: Jani Nikula Date: Wed May 13 15:34:03 2015 +0300 drm/i915/bios: remove a redundant NULL pointer check We never pass a non-NULL vbt to validate_vbt, and we can safely expect the callers to not change. Signed-off-by: Jani Nikula Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_bios.c | 5 ----- 1 file changed, 5 deletions(-) commit c34ce3d19544dc5595938816af675e1e05b95920 Author: Damien Lespiau Date: Fri May 15 15:07:02 2015 +0100 drm/i915/skl: Remove unnecessary local variables in skl_plane_ctl*() Ville noticed in another patch we we didn't need them at all, so remove them. It's worth saying that it makes no difference to code generated as gcc is clever enough to optimize it out. v2: Remove 'break' after 'return' in switches (Ville) Suggested-by: Ville Syrjälä Reviewed-by: Ville Syrjälä Signed-off-by: Damien Lespiau Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 66 ++++++++++++------------------------ 1 file changed, 21 insertions(+), 45 deletions(-) commit a856c5bdf40c218ef1875147455d9d24d01c11c9 Author: Jani Nikula Date: Wed May 13 10:35:25 2015 +0300 drm/i915/dsi: add support for DSI PLL N1 divisor values Currently DSI PLL N1 is hardcoded off. Make it possible to use it later. This should have no functional changes for now. v2: s/ffz(~(n))/ffs(n) - 1/ (Ville) Signed-off-by: Jani Nikula Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_dsi_pll.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) commit aa9145c4fa283da09adb88d65784a39bc454b239 Author: Animesh Manna Date: Wed May 13 22:13:29 2015 +0530 drm/i915/skl: Documentation for CSR firmware Added docbook info regarding context save and restore (CSR) firmware support added from gen9 onwards to drive newly added DMC (Display microcontroller) in display engine. v1: Initial version as RFC. v2: Used "DOC:" tag for csr description based on review comment from Daniel. Signed-off-by: Animesh Manna Signed-off-by: A.Sunil Kamath Signed-off-by: Daniel Vetter Documentation/DocBook/drm.tmpl | 7 +++++- drivers/gpu/drm/i915/intel_csr.c | 53 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+), 1 deletion(-) commit 5c1a88754c766b6a66bcd5600de15e4b4baa795a Author: Mika Kuoppala Date: Fri May 15 13:09:21 2015 +0300 drm/i915: Don't read dpcd for disconnected ports Reading from disconnected ports will spit out timeout error on the dmesg. Skip the attempted read if the port is not connected and avoid confusing users/testcases about expected timeouts. This new dpcd debugfs entry was introduced by commit aa7471d228eb ("drm/i915: add i915 specific connector debugfs file for DPCD") v2 by Jani: move the check at the top, out of the loop. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90060 Tested-by: yex.tian@intel.com Cc: Jani Nikula Cc: Bob Paauwe Signed-off-by: Mika Kuoppala Signed-off-by: Jani Nikula Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_debugfs.c | 3 +++ 1 file changed, 3 insertions(+) commit 5a1cc6550dc6620e67b792a27da8bbd03a09cafb Author: Dan Carpenter Date: Tue May 12 21:07:37 2015 +0300 drm/edid: fix a debug message There is an extra semi-colon on the if statement so the debug output always says "Failed to write EDID checksum" even when it didn't fail. Fixes: 559be30cb74d ('drm/i915: Implement the intel_dp_autotest_edid function for DP EDID complaince tests') Signed-off-by: Dan Carpenter Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_dp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit dada2d53d88a0071aa75a81023a177411fc6c54d Author: Damien Lespiau Date: Tue May 12 16:13:22 2015 +0100 drm/i915: Make the sprite formats const Signed-off-by: Damien Lespiau Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_sprite.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 568db4f2536fe5a1a9ce491b17c3d0011d5506d2 Author: Damien Lespiau Date: Tue May 12 16:13:18 2015 +0100 drm/i915: Don't use the intel_ prefix for gen-specific data We now prefix our functions/enums/data with the first platform it has been introduced. Do that for the primary plane formats. Signed-off-by: Damien Lespiau [danvet: s/gen2/i8xx/ and s/gen4/i965/ ...] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit d161cf7a6e7e2a134e0f0b393c197e5eb8554a97 Author: Damien Lespiau Date: Tue May 12 16:13:17 2015 +0100 drm/i915/skl: Support the advertized index format We advertize C8 in the primary plane formats didn't have the corresponding code to set PLANE_CTL accordingly. Signed-off-by: Damien Lespiau Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 3 +++ 1 file changed, 3 insertions(+) commit 4249eeef4e0f8b81683930a028cb839cc748786e Author: Damien Lespiau Date: Tue May 12 16:13:16 2015 +0100 drm/i915/skl: Replace BUG() by MISSING_CASE() in skl_plane_ctl_format() Let's be consistent with the others skl_plane_ctl_*() functions and use a MISSING_CASE(). Not only that, but it's a rude to BUG() the whole machine here. Signed-off-by: Damien Lespiau Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 65438bcce59756d06d4df398cb1e4b7d82b4c7bc Author: Damien Lespiau Date: Tue May 12 16:13:15 2015 +0100 drm/i915/skl: Rename a local variable to fit in 80 chars No reason to not follow the 80 chars rule, renaming the local variable makes it easy. Cc: Chandra Konduru Signed-off-by: Damien Lespiau Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) commit 8cfcba415e8c0b29fc99d2b0316b868a6a88c2c5 Author: Damien Lespiau Date: Tue May 12 16:13:14 2015 +0100 drm/i915/skl: Add a new line before return We usually use a new line before those kind of return statements. Also the various skl_plane_ctl*() functions weren't consistent. Cc: Chandra Konduru Signed-off-by: Damien Lespiau Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 2 ++ 1 file changed, 2 insertions(+) commit b250a4c43c0c3c3f1831d81e7292468ca02f7a5e Author: Damien Lespiau Date: Tue May 12 16:13:13 2015 +0100 drm/i915/skl: Leave a new line between variable declarations and code Cc: Chandra Konduru Signed-off-by: Damien Lespiau Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 3 +++ 1 file changed, 3 insertions(+) commit 7471bf4e0e7ef6c71e1fc7b2574fb8fb19ffb6ee Author: Jani Nikula Date: Tue May 12 15:23:09 2015 +0300 drm/i915: clean up dsi pll calculation Improve readability. No functional changes. v2: use more rational types (Ville) Signed-off-by: Jani Nikula Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_dsi_pll.c | 53 ++++++++++++------------------------ 1 file changed, 17 insertions(+), 36 deletions(-) commit 6364e67e4a2013cae4c7415d0398033cfed21cc3 Author: Jani Nikula Date: Wed May 6 15:33:44 2015 +0300 drm/i915: don't register invalid gmbus pins for skl Do not expose invalid gmbus pins as i2c devices to userspace. Signed-off-by: Jani Nikula Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_i2c.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit c1bad5b6524b2da842f34862ff9c9c57434b35a8 Author: Jani Nikula Date: Wed May 6 15:33:43 2015 +0300 drm/i915: don't register invalid gmbus pins for bdw Do not expose invalid gmbus pins as i2c devices to userspace. Signed-off-by: Jani Nikula Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_i2c.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit dcb58a40caeb77b937d7930eafc5bd22373a754e Author: Jani Nikula Date: Tue May 12 15:41:32 2015 +0300 drm/i915: constify validate_vbt in VBT parsing Make input and output of validate_vbt const, and fix the fallout. We shouldn't modify the VBT, so make the compiler help us here. v2: use pointer arithmetics on void* to simplify (Ville) Signed-off-by: Jani Nikula Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_bios.c | 49 ++++++++++++++++++++------------------- 1 file changed, 25 insertions(+), 24 deletions(-) commit e8ef3b4c9dadd4ca4a58282927cd2a9b34804089 Author: Jani Nikula Date: Wed Apr 15 15:18:28 2015 +0300 drm/i915: constify find_section in VBT parsing Make input and output of find_section const, and fix the fallout. We shouldn't modify the VBT, so make the compiler help us here. Signed-off-by: Jani Nikula Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_bios.c | 60 ++++++++++++++++++++------------------- 1 file changed, 31 insertions(+), 29 deletions(-) commit 4bca26d0a6518d51a9abe64fbde4b12f04c74053 Author: Ville Syrjälä Date: Mon May 11 20:49:10 2015 +0300 drm/i915: Use HOTPLUG_INT_STATUS_G4X on VLV/CHV Use HOTPLUG_INT_STATUS_G4X instead of HOTPLUG_INT_STATUS_I915 on VLV/CHV so that we don't confuse the AUX status bits with SDVO status bits. Avoid pointless log spam as below while handling AUX interrupts: [drm:intel_hpd_irq_handler] hotplug event received, stat 0x00000040, dig 0x00000000 [drm:intel_hpd_irq_handler] hotplug event received, stat 0x00000040, dig 0x00000000 [drm:intel_hpd_irq_handler] hotplug event received, stat 0x00000040, dig 0x00000000 [drm:intel_hpd_irq_handler] hotplug event received, stat 0x00000040, dig 0x00000000 [drm:intel_hpd_irq_handler] hotplug event received, stat 0x00000040, dig 0x00000000 [drm:intel_dp_aux_ch] dp_aux_ch timeout status 0x71450064 Note that there's no functional issue, it's just that the sdvo bits overlap with the dp aux bits. Hence every time we receive an aux interrupt we also think there's an sdvo hpd interrupt, but due to lack of any sdvo encoders nothing ever happens because of that. Signed-off-by: Ville Syrjälä Reviewed-by: Jani Nikula [danvet: Add Ville's explanation why nothing functional really changes.] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_irq.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 8fc3b42ef3818d463f70d2df7c3ffd08faf39055 Author: Ville Syrjälä Date: Mon May 11 20:49:09 2015 +0300 drm/i915: Remove excess inline keywords Remove some inline keywords. One of the functions has clearly outgrown it anyway, so let's just leave it to the compiler. Signed-off-by: Ville Syrjälä Reviewed-by: Jani Nikula Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_irq.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit f3e06f1156f1adf17dc44144ad3b774c2d414e47 Author: Mika Kuoppala Date: Tue May 12 10:35:08 2015 +0300 drm/i915/gtt: Fix the boundary check for vm area The check for start + length >= total_vm_size is wrong since start + length can be exactly the size of the vm. Fix the check to allow allocation to boundary. Fixes a regression in commit 4dd738e9cd79 ("drm/i915: Fix 32b overflow check in gen8_ppgtt_alloc_page_directories") Testcase: igt/gem_evict_everything/swapping-interruptible Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90399 Tested-by: Lu Hua Cc: Chris Wilson Cc: Dave Gordon Cc: Ville Syrjälä Cc: Michel Thierry Signed-off-by: Mika Kuoppala Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit af99ceda2d09ca57f6f3de2f71ae0d32a51c7016 Author: Chandra Konduru Date: Mon May 11 14:35:47 2015 -0700 drm/i915: Make scaler_id check in check_crtc_state work for all gens During check_crtc_state, scaler_id mispatch is being reported for HSW. This is applicable for skl+ and not for HSW. It is introduced by commit id: commit a1b2278e4dfcd2dbea85e319ebf73a6b7b2f180b Author: Chandra Konduru Date: Tue Apr 7 15:28:45 2015 -0700 drm/i915: skylake panel fitting using shared scalers This patch will make sure that we leave scaler_id as 0 for platforms before skl and set for skl+ only. This way scaler_id check during check_crtc_state will pass for both prior to skl and skl+ platforms. v2: -Leave scaler_id as 0 for gen < 9 (Daniel) Signed-off-by: Chandra Konduru References: http://lists.freedesktop.org/archives/intel-gfx/2015-May/065741.html Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) commit b2cfe0ab63ad2de90a72ae6e5c05d05600f8c144 Author: Chris Wilson Date: Mon Apr 27 13:41:16 2015 +0100 drm/i915: Fix race on unreferencing the wrong mmio-flip-request As we perform the mmio-flip without any locking and then try to acquire the struct_mutex prior to dereferencing the request, it is possible for userspace to queue a new pageflip before the worker can finish clearing the old state - and then it will clear the new flip request. The result is that the new flip could be completed before the GPU has finished rendering. The bugs stems from removing the seqno checking in commit 536f5b5e86b225dab94c7ff8061ae482b6077387 Author: Ander Conselvan de Oliveira Date: Thu Nov 6 11:03:40 2014 +0200 drm/i915: Make mmio flip wait for seqno in the work function Signed-off-by: Chris Wilson Cc: Ander Conselvan de Oliveira Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 6 ++++-- drivers/gpu/drm/i915/intel_display.c | 39 ++++++++++++++++++------------------ drivers/gpu/drm/i915/intel_drv.h | 4 ++-- 3 files changed, 25 insertions(+), 24 deletions(-) commit d94b5030d26b4f45510a092262bc2b542a00bd7c Author: Chris Wilson Date: Mon Apr 27 13:41:15 2015 +0100 drm/i915: Ensure cache flushes prior to doing CS flips Synchronising to an object active on the same ring is a no-op, for the benefit of execbuffer scheduler. However, for CS flips this means that we can forgo checking whether the last write request of the object is actually queued and more importantly whether the cache flush for the write was emitted. Signed-off-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 2e2f351dbf29681d54a3a0f1003c5bb9bc832072 Author: Chris Wilson Date: Mon Apr 27 13:41:14 2015 +0100 drm/i915: Remove domain flubbing from i915_gem_object_finish_gpu() We no longer interpolate domains in the same manner, and even if we did, we should trust setting either of the other write domains would trigger an invalidation rather than force it. Remove the tweaking of the read_domains since it serves no purpose and use i915_gem_object_wait_rendering() directly. Note that this goes back to commit a8198eea156df47e0e843ac5c7d4c8774e121c42 Author: Chris Wilson Date: Wed Apr 13 22:04:09 2011 +0100 drm/i915: Introduce i915_gem_object_finish_gpu() and gpu domain tracking died in commit cc889e0f6ce6a63c62db17d702ecfed86d58083f Author: Daniel Vetter Date: Wed Jun 13 20:45:19 2012 +0200 drm/i915: disable flushing_list/gpu_write_list which is more than 1 year older. Signed-off-by: Chris Wilson [danvet: Add notes with information dug out of git history.] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 4 +++- drivers/gpu/drm/i915/i915_gem.c | 26 +++----------------------- drivers/gpu/drm/i915/intel_display.c | 13 ++++++++----- 3 files changed, 14 insertions(+), 29 deletions(-) commit 779949f4b1968d28229e7375fd199f54ed883dc4 Author: Peter Antoine Date: Mon May 11 16:03:27 2015 +0100 drm/i915: Warn when execlists changes context without IRQs If an batch ends while the IRQs are not turned on the notification can go missing and the GPU can hang. So generate a warning in this case. Signed-off-by: Peter Antoine Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_lrc.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 2614f17d2d2dcf2f8c1a2f4f0ada056ed60d7d8f Author: Chandra Konduru Date: Fri May 8 20:22:46 2015 -0700 drm/i915: call intel_tile_height with correct parameter In skylake update plane functions, intel_tile_height() is called with bits_per_pixel instead of pixel_format. Correcting it. Signed-off-by: Chandra Konduru Reviewed-by: Tvrtko Ursulin [danvet: Fixup alignment.] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 2 +- drivers/gpu/drm/i915/intel_sprite.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit 2eb49a69b47fb6d8dd17ad3d75620f6ed3f3e0b8 Author: Tvrtko Ursulin Date: Fri May 8 13:02:36 2015 +0100 drm/i915: Remove duplicated intel_tile_height declaration Signed-off-by: Tvrtko Ursulin Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_drv.h | 3 --- 1 file changed, 3 deletions(-) commit 5b7c91b78b1ce6663e0f1f037f6cb4d7c9537d44 Author: Deepak S Date: Sat May 9 18:15:46 2015 +0530 drm/i915/chv: Set min freq to efficient frequency on chv After feedback from the hardware team, now we set the GPU min/idel freq to RPe. Punit is expecting us to operate GPU between Rpe & Rp0. If we drop the frequency to RPn, punit is failing to change the vgg input voltage to minimum :( Since Punit validates the rps range [RPe, RP0]. This patch removes unused cherryview_rps_min_freq function. v2: Change commit message v3: set min_freq before idle_freq (chris) v4: Squash 'Remove unused rps min function' patch Signed-off-by: Deepak S Acked-by: Chris Wilson Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_pm.c | 21 ++------------------- 1 file changed, 2 insertions(+), 19 deletions(-) commit 4a7624f664a239a11dfa71ccd9e741df29047508 Author: Deepak S Date: Sat May 9 18:11:54 2015 +0530 drm/i915/chv: Extend set idle rps wa to chv It is observed on BSW that requesting a new frequency from Punit does nothing when the GPU is in rc6, and if we let GPU enter rc6 with a high frequency, Vnn remains slightly higher than at minimum frequency. Extending vlv_set_rps_idle() workaround on CHV/BSW. v2: Update commit msg (Ville) suggested-by: Ville Syrjälä Signed-off-by: Deepak S Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_pm.c | 7 ------- 1 file changed, 7 deletions(-) commit a7f6e231150c93c4e15f258f0d4b1ffe97da3971 Author: Deepak S Date: Sat May 9 18:04:44 2015 +0530 drm/i915/vlv: Remove wait for for punit to updates freq. When GPU is idle on VLV, Request freq to punit should be good enough to get the voltage back to VNN. Also, make sure gfx clock force applies before requesting the freq fot vlv. v2: Do forcewake before setting idle frequency (ville) Update function comments to match the code (Deepak) v3: Fix get/put across idle frequency Request. (Ville) Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=75244 suggested-by: Jesse Barnes Signed-off-by: Deepak S Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_pm.c | 41 +++++++++++------------------------------ 1 file changed, 11 insertions(+), 30 deletions(-) commit b6e742f652791919ce5c8e05a1d664bcbc5111a6 Author: Damien Lespiau Date: Sat May 9 02:05:55 2015 +0100 drm/i915: Be optimistic about future display engines having 7 WM levels As we're doing throughout the code, being optimistic that platform n + 1 will mostly reuse the same things as platform n allows us to minimize the enabling work needed. This time, it's about the number of WM levels. Signed-off-by: Damien Lespiau Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_pm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 49d6fa210e9a87bd83697692753604cbcaf103ae Author: Maarten Lankhorst Date: Mon May 11 10:45:15 2015 +0200 drm/i915: Always keep crtc_state->active in sync with enable With the recent modeset internal rework, we wind up setting crtc_state->enable to false, but leave crtc_state->active as true following a drmModeSetCrtc(fb=0), which is incorrect. This mismatch gets caught by drm_atomic_crtc_check() and causes subsequent atomic operations (such as plane updates while the CRTC is disabled) to fail. Bisect points to commit dad9a7d6d96630182fb52aae7c3856e9e7285e13 Author: Ander Conselvan de Oliveira Date: Tue Apr 21 17:13:19 2015 +0300 drm/i915: Use atomic helpers for computing changed flags as the commit that actually triggers the regression. The difference compared to (which this patch reverts) commit 90d469067d0808ddbd9be2c97a4a8e14037b5e46 Author: Matt Roper Date: Thu May 7 14:31:28 2015 -0700 drm/i915: Set crtc_state->active to false when CRTC is disabled (v2) is that we know keep state->active/enable in sync for all legacy modeset paths, as it should be. Cc: Matt Roper Cc: Ander Conselvan de Oliveira Reported-and-Tested-by: Kenneth Graunke Signed-off-by: Maarten Lankhorst [danvet: Directly squash in the revert and augment the commit message.] Signed-off-by: Daniel Vetter Revert "drm/i915: Set crtc_state->active to false when CRTC is disabled (v2)" This reverts commit 90d469067d0808ddbd9be2c97a4a8e14037b5e46. drivers/gpu/drm/i915/intel_display.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) commit 2cd601c620ccf7be1e8e317e2e208d395d309237 Author: Chandra Konduru Date: Mon Apr 27 15:47:37 2015 -0700 drm/i915: Adding dbuf support for skl nv12 format. Skylake nv12 format requires dbuf (aka. ddb) calculations and programming for each of y and uv sub-planes. Made minor changes to reuse current dbuf calculations and programming for uv plane. i.e., with this change, existing computation is used for either packed format or uv portion of nv12 depending on incoming format. Added new code for dbuf computation and programming for y plane. This patch is a pre-requisite for adding NV12 format support. Actual nv12 support is coming in later patches. Signed-off-by: Chandra Konduru Reviewed-by: Damien Lespiau Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 3 +- drivers/gpu/drm/i915/i915_reg.h | 11 ++++++ drivers/gpu/drm/i915/intel_drv.h | 8 ++++ drivers/gpu/drm/i915/intel_pm.c | 79 ++++++++++++++++++++++++++++++++++------ 4 files changed, 88 insertions(+), 13 deletions(-) commit 7e35ab88d8ec652803eb2965c00e3ed9967c4f9d Author: Masanari Iida Date: Sun May 10 01:00:23 2015 +0900 drm/i915: Fix typo in intel_runtime_pm.c This patch fix spelling typo in intel_runtime_pm.c Signed-off-by: Masanari Iida Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_runtime_pm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5e024f31be3734aed0a5ead7002de16029ec3bc1 Author: Daniel Vetter Date: Fri May 8 17:46:40 2015 +0200 drm/i915: Remove unused variable from i915_gem_mmap_gtt Lost in commit c5ad54cf7dd8922bd1cee2d5871aebf73dc9638e Author: Joonas Lahtinen Date: Wed May 6 14:36:09 2015 +0300 drm/i915: Use partial view in mmap fault handler Cc: Joonas Lahtinen Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem.c | 1 - 1 file changed, 1 deletion(-) commit b11ca7fbc735aca5ab78ce8130603bbf4fefd3f7 Author: Ingo Molnar Date: Wed May 20 09:59:30 2015 +0200 x86/fpu/xstate: Use explicit parameter in xstate_fault() While looking at xstate.h it took me some time to realize that 'xstate_fault' uses 'err' as a silent parameter. This is not obvious at the call site, at all. Make it an explicit macro argument, so that the syntactic connection is easier to see. Also explain xstate_fault() a bit. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/xstate.h | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) commit ec0ccc16a09fc32f7142ef3ddf1c2276fbbb35d0 Author: Dmitry Torokhov Date: Mon Mar 30 16:20:09 2015 -0700 module: add core_param_unsafe Similarly to module_param_unsafe(), add the helper to be used by core code wishing to expose unsafe debugging or testing parameters that taint the kernel when set. Acked-by: Rusty Russell Signed-off-by: Dmitry Torokhov Signed-off-by: Greg Kroah-Hartman include/linux/moduleparam.h | 9 +++++++++ 1 file changed, 9 insertions(+) commit 735c0f8f12402774eff2320657cbb1e7d945164a Author: Luis R. Rodriguez Date: Mon Mar 30 16:20:08 2015 -0700 amd64_edac: enforce synchronous probe While testing asynchronous PCI probe on this driver I noticed it failed because the driver checks if any of the PCI devices have been bound to the driver after registering it, which obviously does not work if probing is asynchronous. While there are patches and discussions on how the driver should behave are ongoing, let's enforce synchronous probe for this driver for now. Reviewed-by: Tejun Heo Signed-off-by: Luis R. Rodriguez Signed-off-by: Dmitry Torokhov Signed-off-by: Greg Kroah-Hartman drivers/edac/amd64_edac.c | 1 + 1 file changed, 1 insertion(+) commit 5c36eb2a9ecc0bc5228451b1eeb83e70b6bb7473 Author: Dmitry Torokhov Date: Mon Mar 30 16:20:07 2015 -0700 driver-core: platform_driver_probe() must probe synchronously Because platform_driver_probe() checks, after trying to register driver, if there are any devices that driver successfully bound to, driver's probe routine must be run synchronously. Signed-off-by: Dmitry Torokhov Signed-off-by: Greg Kroah-Hartman drivers/base/platform.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit d173a137c5bd95ee29d02705e5fa8890ef149718 Author: Luis R. Rodriguez Date: Mon Mar 30 16:20:06 2015 -0700 driver-core: enable drivers to opt-out of async probe There are drivers that can not be probed asynchronously. One such group is platform drivers registered with platform_driver_probe(), which expects driver's probe routine be discarded after the driver has been registered and initial binding attempt executed. Also platform_driver_probe() an error when no devices were bound to the driver, allowing failing to load such driver module altogether. Other drivers do not work well with asynchronous probing because of driver bug or not optimal driver organization. To allow using such drivers even when user requests asynchronous probing as default boot strategy, let's allow them to opt out. Signed-off-by: Luis R. Rodriguez Signed-off-by: Dmitry Torokhov Signed-off-by: Greg Kroah-Hartman drivers/base/dd.c | 14 ++++++++++---- include/linux/device.h | 13 +++++++------ 2 files changed, 17 insertions(+), 10 deletions(-) commit f2411da746985e60d4d087f3a43e271c61785927 Author: Luis R. Rodriguez Date: Mon Mar 30 16:20:05 2015 -0700 driver-core: add driver module asynchronous probe support Some init systems may wish to express the desire to have device drivers run their probe() code asynchronously. This implements support for this and allows userspace to request async probe as a preference through a generic shared device driver module parameter, async_probe. Implementation for async probe is supported through a module parameter given that since synchronous probe has been prevalent for years some userspace might exist which relies on the fact that the device driver will probe synchronously and the assumption that devices it provides will be immediately available after this. Signed-off-by: Luis R. Rodriguez Signed-off-by: Dmitry Torokhov Signed-off-by: Greg Kroah-Hartman Documentation/kernel-parameters.txt | 3 +++ drivers/base/dd.c | 8 +++++++- include/linux/device.h | 8 +++++--- include/linux/module.h | 2 ++ kernel/module.c | 12 ++++++++++-- 5 files changed, 27 insertions(+), 6 deletions(-) commit 765230b5f084863183aa8adb3405ab3f32c0b16e Author: Dmitry Torokhov Date: Mon Mar 30 16:20:04 2015 -0700 driver-core: add asynchronous probing support for drivers Some devices take a long time when initializing, and not all drivers are suited to initialize their devices when they are open. For example, input drivers need to interrogate their devices in order to publish device's capabilities before userspace will open them. When such drivers are compiled into kernel they may stall entire kernel initialization. This change allows drivers request for their probe functions to be called asynchronously during driver and device registration (manual binding is still synchronous). Because async_schedule is used to perform asynchronous calls module loading will still wait for the probing to complete. Note that the end goal is to make the probing asynchronous by default, so annotating drivers with PROBE_PREFER_ASYNCHRONOUS is a temporary measure that allows us to speed up boot process while we validating and fixing the rest of the drivers and preparing userspace. This change is based on earlier patch by "Luis R. Rodriguez" Signed-off-by: Dmitry Torokhov Signed-off-by: Greg Kroah-Hartman drivers/base/base.h | 1 + drivers/base/bus.c | 31 +++++++--- drivers/base/dd.c | 149 ++++++++++++++++++++++++++++++++++++++++++------- include/linux/device.h | 28 ++++++++++ 4 files changed, 182 insertions(+), 27 deletions(-) commit ecc8617053e0a97272ef2eee138809f30080e84b Author: Luis R. Rodriguez Date: Mon Mar 30 16:20:03 2015 -0700 module: add extra argument for parse_params() callback This adds an extra argument onto parse_params() to be used as a way to make the unused callback a bit more useful and generic by allowing the caller to pass on a data structure of its choice. An example use case is to allow us to easily make module parameters for every module which we will do next. @ parse @ identifier name, args, params, num, level_min, level_max; identifier unknown, param, val, doing; type s16; @@ extern char *parse_args(const char *name, char *args, const struct kernel_param *params, unsigned num, s16 level_min, s16 level_max, + void *arg, int (*unknown)(char *param, char *val, const char *doing + , void *arg )); @ parse_mod @ identifier name, args, params, num, level_min, level_max; identifier unknown, param, val, doing; type s16; @@ char *parse_args(const char *name, char *args, const struct kernel_param *params, unsigned num, s16 level_min, s16 level_max, + void *arg, int (*unknown)(char *param, char *val, const char *doing + , void *arg )) { ... } @ parse_args_found @ expression R, E1, E2, E3, E4, E5, E6; identifier func; @@ ( R = parse_args(E1, E2, E3, E4, E5, E6, + NULL, func); | R = parse_args(E1, E2, E3, E4, E5, E6, + NULL, &func); | R = parse_args(E1, E2, E3, E4, E5, E6, + NULL, NULL); | parse_args(E1, E2, E3, E4, E5, E6, + NULL, func); | parse_args(E1, E2, E3, E4, E5, E6, + NULL, &func); | parse_args(E1, E2, E3, E4, E5, E6, + NULL, NULL); ) @ parse_args_unused depends on parse_args_found @ identifier parse_args_found.func; @@ int func(char *param, char *val, const char *unused + , void *arg ) { ... } @ mod_unused depends on parse_args_found @ identifier parse_args_found.func; expression A1, A2, A3; @@ - func(A1, A2, A3); + func(A1, A2, A3, NULL); Generated-by: Coccinelle SmPL Cc: cocci@systeme.lip6.fr Cc: Tejun Heo Cc: Arjan van de Ven Cc: Greg Kroah-Hartman Cc: Rusty Russell Cc: Christoph Hellwig Cc: Felipe Contreras Cc: Ewan Milne Cc: Jean Delvare Cc: Hannes Reinecke Cc: Jani Nikula Cc: linux-kernel@vger.kernel.org Reviewed-by: Tejun Heo Acked-by: Rusty Russell Signed-off-by: Luis R. Rodriguez Signed-off-by: Greg Kroah-Hartman arch/powerpc/mm/hugetlbpage.c | 4 ++-- include/linux/moduleparam.h | 3 ++- init/main.c | 25 +++++++++++++++---------- kernel/module.c | 6 ++++-- kernel/params.c | 11 +++++++---- lib/dynamic_debug.c | 4 ++-- 6 files changed, 32 insertions(+), 21 deletions(-) commit 6570a9a1ce3a1dd227a065fd8ad16778d827b753 Author: Rik van Riel Date: Fri Apr 24 15:24:28 2015 -0400 show nohz_full cpus in sysfs Currently there is no way to query which CPUs are in nohz_full mode from userspace. Export the CPU list running in nohz_full mode in sysfs, specifically in the file /sys/devices/system/cpu/nohz_full This can be used by system management tools like libvirt, openstack, and others to ensure proper task placement. Signed-off-by: Rik van Riel Acked-by: Mike Galbraith Acked-by: Chris Metcalf Signed-off-by: Greg Kroah-Hartman drivers/base/cpu.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit 59f30abe94bff50636c8cad45207a01fdcb2ee49 Author: Rik van Riel Date: Fri Apr 24 15:24:27 2015 -0400 show isolated cpus in sysfs After system bootup, there is no totally reliable way to see which CPUs are isolated, because the kernel may modify the CPUs specified on the isolcpus= kernel command line option. Export the CPU list that actually got isolated in sysfs, specifically in the file /sys/devices/system/cpu/isolated This can be used by system management tools like libvirt, openstack, and others to ensure proper placement of tasks. Suggested-by: Li Zefan Signed-off-by: Rik van Riel Acked-by: Mike Galbraith Acked-by: Chris Metcalf Signed-off-by: Greg Kroah-Hartman drivers/base/cpu.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit a2202a4c762bedb56bcaafd3200deceac1c2e7b5 Author: Linus Walleij Date: Wed May 20 09:11:23 2015 +0200 pinctrl: mediatek: add OF dependency to MT6397 X86_64 allmodconfig screams like so: warning: (PINCTRL_MT6397) selects PINCTRL_MTK_COMMON which has unmet direct dependencies (PINCTRL && (ARCH_MEDIATEK || COMPILE_TEST) && OF) So add OF to dependencies to shut up this warning. Cc: Hongzhou Yang Signed-off-by: Linus Walleij drivers/pinctrl/mediatek/Kconfig | 1 + 1 file changed, 1 insertion(+) commit bdcddf95e82b1c4e370fc1196b1f4f50f775dab4 Merge: 91d9f98 e260818 Author: Dave Airlie Date: Wed May 20 16:23:53 2015 +1000 Backmerge v4.1-rc4 into into drm-next We picked up a silent conflict in amdkfd with drm-fixes and drm-next, backmerge v4.1-rc5 and fix the conflicts Signed-off-by: Dave Airlie Conflicts: drivers/gpu/drm/drm_irq.c commit 98d8fc6c5d3652e91c61d78941e0fa6f94771d67 Author: Mengdong Lin Date: Tue May 19 22:29:30 2015 +0800 ALSA: hda - Move hda_i915.c from sound/pci/hda to sound/hda The file is moved to hda core and renamed to hdac_i915.c, so can be used by both legacy HDA driver and new Skylake audio driver. - Add snd_hdac_ prefix to the public APIs. - The i915 audio component is moved to core bus and dynamically allocated. - A static pointer hdac_acomp is used to help bind/unbind callbacks to get this component, because the sound card's private_data is used by the azx chip pointer, which is a legacy structure. It could be removed if private _data changes to some core structure which can be extended to find the bus. - snd_hdac_get_display_clk() is added to get the display core clock for HSW/BDW. - haswell_set_bclk() is moved to hda_intel.c because it needs to write the controller registers EM4/EM5, and only legacy HD-A needs it for HSW/BDW. - Move definition of HSW/BDW-specific registers EM4/EM5 to hda_register.h and rename them to HSW_EM4/HSW_EM5, because other HD-A controllers have different layout for the extended mode registers. Signed-off-by: Mengdong Lin Signed-off-by: Takashi Iwai include/sound/hda_i915.h | 36 +++++++ include/sound/hda_register.h | 4 + include/sound/hdaudio.h | 5 + sound/hda/Kconfig | 6 ++ sound/hda/Makefile | 3 + sound/hda/hdac_i915.c | 193 ++++++++++++++++++++++++++++++++++++ sound/pci/hda/Kconfig | 5 - sound/pci/hda/Makefile | 2 - sound/pci/hda/hda_i915.c | 227 ------------------------------------------- sound/pci/hda/hda_intel.c | 82 +++++++++++++--- sound/pci/hda/hda_intel.h | 30 ------ 11 files changed, 313 insertions(+), 280 deletions(-) commit 95f589814c8af85fa673320bf319ffe8d721dd74 Author: Ricky Liang Date: Mon May 18 22:00:26 2015 +0800 clk: mediatek: Initialize clk_init_data The variable init (struct clk_init_data) is allocated on the stack. We weren't initializing the .flags field, so it contains random junk, which can cause all kinds of interesting issues when the flags are parsed by clk_register. Signed-off-by: Ricky Liang Acked-by: Sascha Hauer Signed-off-by: Stephen Boyd drivers/clk/mediatek/clk-gate.c | 2 +- drivers/clk/mediatek/clk-pll.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 35eed7a0768886e2f66db3cdbf3faf6435275e6b Author: Uwe Kleine-König Date: Tue May 19 14:18:30 2015 +0200 extcon: usb-gpio: use flags argument of devm_gpiod_get to set direction Since 39b2bbe3d715 (gpio: add flags argument to gpiod_get*() functions) which appeared in v3.17-rc1, the gpiod_get* functions take an additional parameter that allows to specify direction and initial value for output. Without this patch there is no call to gpiod_direction_input but the gpio is used for irq reporting and for that the line should be in input mode. Signed-off-by: Uwe Kleine-König Signed-off-by: Chanwoo Choi drivers/extcon/extcon-usb-gpio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7978f76c4495c194183e03f65406f78cdda37882 Author: Laurent Dufour Date: Tue May 5 17:30:21 2015 +0200 powerpc: Enable sys_kcmp() for CRIU The commit 8170a83f15ee ("powerpc: Wireup the kcmp syscall to sys_ni") has disabled the kcmp syscall for powerpc. This has been done due to the use of unsigned long parameters which may require a dedicated wrapper to handle 32bit process on top of 64bit kernel. However in the kcmp() case, the 2 unsigned long parameters are currently only used to carry file descriptors from user space to the kernel. Since such a parameter is passed through register, and file descriptor doesn't need to get extended, there is, today, no need for a wrapper. In the case there will be a need to pass address in or out of this system call, then a wrapper could be required, it will then be to care of it. As today this is not the case, it is safe to enable kcmp() on powerpc. Tested (by Laurent) on 64-bit, 32-bit, and 32-bit userspace on 64-bit kernel using tools/testing/selftests/kcmp [mpe]. Signed-off-by: Laurent Dufour Signed-off-by: Michael Ellerman arch/powerpc/include/asm/systbl.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4990d4fe327b9d9a7a3be7103a82699406fdde69 Author: Tony Lindgren Date: Mon May 18 15:40:29 2015 -0700 PM / Wakeirq: Add automated device wake IRQ handling Turns out we can automate the handling for the device_may_wakeup() quite a bit by using the kernel wakeup source list as suggested by Rafael J. Wysocki . And as some hardware has separate dedicated wake-up interrupt in addition to the IO interrupt, we can automate the handling by adding a generic threaded interrupt handler that just calls the device PM runtime to wake up the device. This allows dropping code from device drivers as we currently are doing it in multiple ways, and often wrong. For most drivers, we should be able to drop the following boilerplate code from runtime_suspend and runtime_resume functions: ... device_init_wakeup(dev, true); ... if (device_may_wakeup(dev)) enable_irq_wake(irq); ... if (device_may_wakeup(dev)) disable_irq_wake(irq); ... device_init_wakeup(dev, false); ... We can replace it with just the following init and exit time code: ... device_init_wakeup(dev, true); dev_pm_set_wake_irq(dev, irq); ... dev_pm_clear_wake_irq(dev); device_init_wakeup(dev, false); ... And for hardware with dedicated wake-up interrupts: ... device_init_wakeup(dev, true); dev_pm_set_dedicated_wake_irq(dev, irq); ... dev_pm_clear_wake_irq(dev); device_init_wakeup(dev, false); ... Signed-off-by: Tony Lindgren Signed-off-by: Rafael J. Wysocki drivers/base/power/Makefile | 2 +- drivers/base/power/main.c | 3 + drivers/base/power/power.h | 48 ++++++++ drivers/base/power/runtime.c | 5 + drivers/base/power/wakeirq.c | 273 +++++++++++++++++++++++++++++++++++++++++++ drivers/base/power/wakeup.c | 92 +++++++++++++++ include/linux/pm.h | 2 + include/linux/pm_wakeirq.h | 52 +++++++++ include/linux/pm_wakeup.h | 9 ++ 9 files changed, 485 insertions(+), 1 deletion(-) commit 56f487c78015936097474fd89b2ccb229d500d0f Author: Tony Lindgren Date: Wed May 13 16:36:32 2015 -0700 PM / Runtime: Update last_busy in rpm_resume If we don't update last_busy in rpm_resume, devices can go back to sleep immediately after resume. This happens at least in cases where the device has been powered off and does not have any interrupt pending until there's something in the FIFO. Signed-off-by: Tony Lindgren Signed-off-by: Rafael J. Wysocki drivers/base/power/runtime.c | 1 + 1 file changed, 1 insertion(+) commit fa8cd0f61fe17a8b202a23b68b2d0393c872372b Author: Dave Martin Date: Tue May 19 11:51:14 2015 +0100 serial/amba-pl011: Fix mismerge between v4.1-rc4 and tty-next In commit 02730d3c053a9af1d402e1c8dc8bbbc5a1340406 (Merge 4.1-rc4 into tty-next), git mismerged some lines, reintroducing a reference to the removed field uart_amba_port.tx_irq_seen. This causes a build failure. This patch removes the mismerged lines, restoring the code to what was in tty-next (which was the intention). Signed-off-by: Dave Martin Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/amba-pl011.c | 3 --- 1 file changed, 3 deletions(-) commit 91d9f9856f91c82ac6289a0fff65dd12cfa07e34 Merge: 9c37bf2 7591cd2 Author: Dave Airlie Date: Wed May 20 09:20:48 2015 +1000 Merge tag 'drm-amdkfd-next-2015-05-19' of git://people.freedesktop.org/~gabbayo/linux into drm-next - Add the interrupts & events modules, including new IOCTLs to create and wait on events. The HSA RT open source stack is mainly using events to know when a dispatched work has been completed. In addition, this module is a pre-requisite for the next module I'm going to upstream - debugger support This module also handles H/W exceptions, such as memory exception received through the IOMMUv2 H/W and Bad Opcode exception receieved from the GPU. - Adding a new kernel module parameter to let the user decide whether he wants to receive a SIGTERM when a memory exception occurs inside the GPU kernel and the HSA application doesn't wait on an appropriate event, or if he just want to receive notification about this event in dmesg. The default is the latter. - Additional improvements for SDMA code - Update my email address in Maintainers file. * tag 'drm-amdkfd-next-2015-05-19' of git://people.freedesktop.org/~gabbayo/linux: drm/amdkfd: change driver version to 0.7.2 drm/amdkfd: Implement events IOCTLs drm/amdkfd: Add module parameter of send_sigterm drm/amdkfd: Add bad opcode exception handling drm/amdkfd: Add memory exception handling drm/amdkfd: Add the events module drm/amdkfd: add events IOCTL set definitions drm/amdkfd: Add interrupt handling module drm/radeon: Add init interrupt kfd->kgd interface MAINTAINERS: update amdkfd Oded's email address drm/amdkfd: make the sdma vm init to be asic specific drm/amdkfd: Use new struct for asic specific ops drm/amdkfd: reformat some debug prints drm/amdkfd: Remove unessary void pointer cast commit 9c37bf2db0a707be4a3025240b009cf63691e0d7 Merge: d009340 036ef57 Author: Dave Airlie Date: Wed May 20 09:19:58 2015 +1000 Merge tag 'topic/drm-misc-2015-05-19' of git://anongit.freedesktop.org/drm-intel into drm-next Scattering of random drm core patches. Bunch of atomic prep work too, but the final bits for blob properties, atomic modesets and lifting the experimental tag on the atomic ioctl are still blocked on Daniel Stone finalizing and testing the weston support for it. I hope that we can get it all ready for 4.2 though. * tag 'topic/drm-misc-2015-05-19' of git://anongit.freedesktop.org/drm-intel: (22 commits) drm/atomic: Allow drivers to subclass drm_atomic_state, v3 drm/atomic: remove duplicated assignment of old_plane_state drm/dp: Fix comment in DP helper drm/atomic: add drm_atomic_get_existing_*_state helpers drm/core: get rid of -Iinclude/drm drm/i915: get rid of -Iinclude/drm drm/atomic-helpers: Export drm_atomic_helper_update_legacy_modeset_state drm/atomic-helpers: Update vblank timestamping constants drm/sysfs: remove unnecessary connector type checks drm/sysfs: split DVI-I and TV-out attributes drm/sysfs: make optional attribute groups per connector type drm/sysfs: add a helper for extracting connector type from kobject drm/edid: Add CEA modes before inferred modes drm/prime: Allow internal imports without import_sg_table drm: Add reference counting to blob properties drm: Introduce blob_lock drm: Introduce helper for replacing blob properties drm: Don't leak path blob property when updating drm/atomic: Don't open-code CRTC state destroy drm/edid: Add DMT modes with ID > 0x50 ... commit 5b0f073899c4b229a6c40186ca7b37569840948e Author: Zhou Wang Date: Wed May 13 14:44:34 2015 +0800 PCI: designware: Add support for x8 links Add support for x8 links. Signed-off-by: Zhou Wang Signed-off-by: Bjorn Helgaas Acked-by: Jingoo Han Acked-by: Pratyush Anand drivers/pci/host/pcie-designware.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 8cdd043ab32c2ff28d2a77c514a768a9edce244c Author: Jiri Slaby Date: Tue May 19 12:01:19 2015 +0200 livepatch: introduce patch/func-walking helpers klp_for_each_object and klp_for_each_func are now used all over the code. One need not think what is the proper condition to check in the for loop now. Signed-off-by: Jiri Slaby Acked-by: Josh Poimboeuf Signed-off-by: Jiri Kosina include/linux/livepatch.h | 6 ++++++ kernel/livepatch/core.c | 18 +++++++++--------- 2 files changed, 15 insertions(+), 9 deletions(-) commit cad706df7e4a00a595f2662f32c0fc174aa4e61f Author: Miroslav Benes Date: Tue May 19 12:01:18 2015 +0200 livepatch: make kobject in klp_object statically allocated Make kobj variable (of type struct kobject) statically allocated in klp_object structure. It will allow us to move in the func-object-patch hierarchy through kobject links. The only reason to have it dynamic was to not have empty release callback in the code. However we have empty callbacks for function and patch in the code now, so it is no longer valid and the advantage of static allocation is clear. Signed-off-by: Miroslav Benes Signed-off-by: Jiri Slaby Acked-by: Josh Poimboeuf Signed-off-by: Jiri Kosina include/linux/livepatch.h | 2 +- kernel/livepatch/core.c | 22 ++++++++++++++++------ 2 files changed, 17 insertions(+), 7 deletions(-) commit d4d3e2579756e3a5f4fbf8eac211f0696e253bcd Author: Lai Jiangshan Date: Tue May 19 18:03:48 2015 +0800 workqueue: ensure attrs changes are properly synchronized Current modification to attrs via sysfs is not fully synchronized. Process A (change cpumask) | Process B (change numa affinity) wq_cpumask_store() | wq_sysfs_prep_attrs() | | apply_workqueue_attrs() apply_workqueue_attrs() | It results that the Process B's operation is totally reverted without any notification, it is a buggy behavior. So this patch moves wq_sysfs_prep_attrs() into the protection under wq_pool_mutex to ensure attrs changes are properly synchronized. Signed-off-by: Lai Jiangshan Signed-off-by: Tejun Heo kernel/workqueue.c | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) commit a0111cf6710bd1b4145ef313d3f4772602af051b Author: Lai Jiangshan Date: Tue May 19 18:03:47 2015 +0800 workqueue: separate out and refactor the locking of applying attrs Applying attrs requires two locks: get_online_cpus() and wq_pool_mutex, and this code is duplicated at two places (apply_workqueue_attrs() and workqueue_set_unbound_cpumask()). So we separate out this locking code into apply_wqattrs_[un]lock() and do a minor refactor on apply_workqueue_attrs(). The apply_wqattrs_[un]lock() will be also used on later patch for ensuring attrs changes are properly synchronized. tj: minor updates to comments Signed-off-by: Lai Jiangshan Signed-off-by: Tejun Heo kernel/workqueue.c | 78 +++++++++++++++++++++++++++++++----------------------- 1 file changed, 45 insertions(+), 33 deletions(-) commit 06b2c61c92a9942769ee8da22d3ce8b8b935c038 Author: Andy Zhou Date: Tue May 19 12:41:47 2015 -0700 ip: remove unused function prototype ip_do_nat() function was removed prior to kernel 3.4. Remove the unnecessary function prototype as well. Reported-by: Florian Westphal Signed-off-by: Andy Zhou Signed-off-by: David S. Miller include/net/ip.h | 1 - 1 file changed, 1 deletion(-) commit 492135557dc090a1abb2cfbe1a412757e3ed68ab Author: Daniel Borkmann Date: Tue May 19 21:04:22 2015 +0200 tcp: add rfc3168, section 6.1.1.1. fallback This work as a follow-up of commit f7b3bec6f516 ("net: allow setting ecn via routing table") and adds RFC3168 section 6.1.1.1. fallback for outgoing ECN connections. In other words, this work adds a retry with a non-ECN setup SYN packet, as suggested from the RFC on the first timeout: [...] A host that receives no reply to an ECN-setup SYN within the normal SYN retransmission timeout interval MAY resend the SYN and any subsequent SYN retransmissions with CWR and ECE cleared. [...] Schematic client-side view when assuming the server is in tcp_ecn=2 mode, that is, Linux default since 2009 via commit 255cac91c3c9 ("tcp: extend ECN sysctl to allow server-side only ECN"): 1) Normal ECN-capable path: SYN ECE CWR -----> <----- SYN ACK ECE ACK -----> 2) Path with broken middlebox, when client has fallback: SYN ECE CWR ----X crappy middlebox drops packet (timeout, rtx) SYN -----> <----- SYN ACK ACK -----> In case we would not have the fallback implemented, the middlebox drop point would basically end up as: SYN ECE CWR ----X crappy middlebox drops packet (timeout, rtx) SYN ECE CWR ----X crappy middlebox drops packet (timeout, rtx) SYN ECE CWR ----X crappy middlebox drops packet (timeout, rtx) In any case, it's rather a smaller percentage of sites where there would occur such additional setup latency: it was found in end of 2014 that ~56% of IPv4 and 65% of IPv6 servers of Alexa 1 million list would negotiate ECN (aka tcp_ecn=2 default), 0.42% of these webservers will fail to connect when trying to negotiate with ECN (tcp_ecn=1) due to timeouts, which the fallback would mitigate with a slight latency trade-off. Recent related paper on this topic: Brian Trammell, Mirja Kühlewind, Damiano Boppart, Iain Learmonth, Gorry Fairhurst, and Richard Scheffenegger: "Enabling Internet-Wide Deployment of Explicit Congestion Notification." Proc. PAM 2015, New York. http://ecn.ethz.ch/ecn-pam15.pdf Thus, when net.ipv4.tcp_ecn=1 is being set, the patch will perform RFC3168, section 6.1.1.1. fallback on timeout. For users explicitly not wanting this which can be in DC use case, we add a net.ipv4.tcp_ecn_fallback knob that allows for disabling the fallback. tp->ecn_flags are not being cleared in tcp_ecn_clear_syn() on output, but rather we let tcp_ecn_rcv_synack() take that over on input path in case a SYN ACK ECE was delayed. Thus a spurious SYN retransmission will not prevent ECN being negotiated eventually in that case. Reference: https://www.ietf.org/proceedings/92/slides/slides-92-iccrg-1.pdf Reference: https://www.ietf.org/proceedings/89/slides/slides-89-tsvarea-1.pdf Signed-off-by: Daniel Borkmann Signed-off-by: Florian Westphal Signed-off-by: Mirja Kühlewind Signed-off-by: Brian Trammell Cc: Eric Dumazet Cc: Dave That Acked-by: Eric Dumazet Signed-off-by: David S. Miller Documentation/networking/dctcp.txt | 1 + Documentation/networking/ip-sysctl.txt | 9 +++++++++ include/net/netns/ipv4.h | 2 ++ include/net/tcp.h | 2 ++ net/ipv4/sysctl_net_ipv4.c | 7 +++++++ net/ipv4/tcp_ipv4.c | 5 ++++- net/ipv4/tcp_output.c | 13 +++++++++++++ 7 files changed, 38 insertions(+), 1 deletion(-) commit 134e0dbe72bfa1059c610743fc8102fdef913bf8 Merge: b7a3a8e f404f80 Author: David S. Miller Date: Tue May 19 16:47:32 2015 -0400 Merge branch 'cxgb4-next' Hariprasad Shenai says: ==================== cxgb4: Remove dead code and replace byte-oder functions This series removes dead fn t4_read_edc and t4_read_mc, also replaces ntoh{s,l} and hton{s,l} calls with the generic byteorder. PATCH 2/2 was sent as a single PATCH, but had some byte-ordering issues in t4_read_edc and t4_read_mc function. Found that t4_read_edc and t4_read_mc is unused, so PATCH 1/2 is added to remove it. This patch series is created against net-next tree and includes patches on cxgb4 driver. We have included all the maintainers of respective drivers. Kindly review the change and let us know in case of any review comments. ==================== Signed-off-by: David S. Miller commit f404f80c707e373af7423c56ce40099021d86ecd Author: Hariprasad Shenai Date: Tue May 19 18:20:44 2015 +0530 cxgb4: replace ntoh{s, l} and hton{s, l} calls with the generic byteorder replace ntoh{s,l} and hton{s,l} calls with the generic byteorder in cxgb4/t4_hw.c file Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 399 ++++++++++++++++------------- 1 file changed, 217 insertions(+), 182 deletions(-) commit 75daacc7eae9cc7b3bdebb854c26840a48e0586a Author: Hariprasad Shenai Date: Tue May 19 18:20:43 2015 +0530 cxgb4: Remove dead function t4_read_edc and t4_read_mc Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4.h | 4 -- drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 110 ----------------------------- 2 files changed, 114 deletions(-) commit b7a3a8e31f6e74822939bbc5bd0e21f90eb319f9 Merge: 9a03259 658358c Author: David S. Miller Date: Tue May 19 16:43:17 2015 -0400 Merge tag 'mac80211-next-for-davem-2015-05-19' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next Johannes Berg says: ==================== This just has a few fixes: * LED throughput trigger was crashing * fast-xmit wasn't treating QoS changes in IBSS correctly * TDLS could use the wrong channel definition * using a reserved channel context could use the wrong channel width ==================== Signed-off-by: David S. Miller commit 9a03259c3d30d4b1b582072211dc571a68340054 Author: Arnd Bergmann Date: Mon May 18 23:06:45 2015 +0200 be2net: make hwmon interface optional The hwmon interface in the be2net driver causes a link error when be2net is built-in while the hwmon subsystem is a loadable module: drivers/built-in.o: In function `be_probe': drivers/net/ethernet/emulex/benet/be_main.c:5761: undefined reference to `devm_hwmon_device_register_with_groups' This adds a new Kconfig symbol, following the example of multiple other drivers that have the same problem. The new CONFIG_BE2NET_HWMON will not be available when (BE2NET=y && HWMON=m) to avoid this problem. We have to also mark be_hwmon_show_temp as 'static' to ensure the compiler can optimize out all the unused code. Signed-off-by: Arnd Bergmann Fixes: 29e9122b3a ("be2net: Export board temperature using hwmon-sysfs interface.") Signed-off-by: David S. Miller drivers/net/ethernet/emulex/benet/Kconfig | 9 +++++++++ drivers/net/ethernet/emulex/benet/be_main.c | 8 ++++---- 2 files changed, 13 insertions(+), 4 deletions(-) commit aea0929e516a1ff4c4458203d1f3375eee9acc26 Author: Eric B Munson Date: Mon May 18 14:35:58 2015 -0400 tcp: Return error instead of partial read for saved syn headers Currently the getsockopt() requesting the cached contents of the syn packet headers will fail silently if the caller uses a buffer that is too small to contain the requested data. Rather than fail silently and discard the headers, getsockopt() should return an error and report the required size to hold the data. Signed-off-by: Eric B Munson Cc: Eric Dumazet Cc: Alexey Kuznetsov Cc: James Morris Cc: Hideaki YOSHIFUJI Cc: Patrick McHardy Cc: netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: David S. Miller net/ipv4/tcp.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit c9a70d43461d83818825ae065bb8fc887421e150 Author: Parav Pandit Date: Mon May 18 16:31:47 2015 +0530 net-next: ethtool: Added port speed macros. Signed-off-by: Parav Pandit Signed-off-by: David S. Miller include/uapi/linux/ethtool.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 011c391a090e243ef0116805a6ad77df74c22cc0 Author: Johan Hedberg Date: Tue May 19 21:06:04 2015 +0300 Bluetooth: Add debug logs for legacy SMP crypto functions To help debug legacy SMP crypto functions add debug logs of the various values involved. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann net/bluetooth/smp.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) commit 3520469d65f26a1cd2f610f5d5de976f78db74fe Author: Paolo Bonzini Date: Thu Apr 2 11:20:48 2015 +0200 KVM: export __gfn_to_pfn_memslot, drop gfn_to_pfn_async gfn_to_pfn_async is used in just one place, and because of x86-specific treatment that place will need to look at the memory slot. Hence inline it into try_async_pf and export __gfn_to_pfn_memslot. The patch also switches the subsequent call to gfn_to_pfn_prot to use __gfn_to_pfn_memslot. This is a small optimization. Finally, remove the now-unused async argument of __gfn_to_pfn. Signed-off-by: Paolo Bonzini arch/x86/kvm/mmu.c | 9 +++++---- include/linux/kvm_host.h | 4 ++-- virt/kvm/kvm_main.c | 26 ++++++++------------------ 3 files changed, 15 insertions(+), 24 deletions(-) commit 69a1220060c1523fd0515216eaa29e22f133b894 Author: Paolo Bonzini Date: Mon May 18 08:35:43 2015 +0200 KVM: mips: use id_to_memslot correctly The argument to KVM_GET_DIRTY_LOG is a memslot id; it may not match the position in the memslots array, which is sorted by gfn. Cc: stable@vger.kernel.org Reviewed-by: James Hogan Signed-off-by: Paolo Bonzini arch/mips/kvm/mips.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d81135a57aa66e5bec55cdfe4dda79633f9082dd Author: Xiao Guangrong Date: Wed May 13 14:42:28 2015 +0800 KVM: x86: do not reset mmu if CR0.CD and CR0.NW are changed CR0.CD and CR0.NW are not used by shadow page table so that need not adjust mmu if these two bit are changed Signed-off-by: Xiao Guangrong Signed-off-by: Paolo Bonzini arch/x86/kvm/x86.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit efdfe536d8c643391e19d5726b072f82964bfbdb Author: Xiao Guangrong Date: Wed May 13 14:42:27 2015 +0800 KVM: MMU: fix MTRR update Currently, whenever guest MTRR registers are changed kvm_mmu_reset_context is called to switch to the new root shadow page table, however, it's useless since: 1) the cache type is not cached into shadow page's attribute so that the original root shadow page will be reused 2) the cache type is set on the last spte, that means we should sync the last sptes when MTRR is changed This patch fixs this issue by drop all the spte in the gfn range which is being updated by MTRR Signed-off-by: Xiao Guangrong Signed-off-by: Paolo Bonzini arch/x86/kvm/mmu.c | 24 ++++++++++++++++++++++ arch/x86/kvm/mmu.h | 1 + arch/x86/kvm/x86.c | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 83 insertions(+), 1 deletion(-) commit d69afbc6b1b5d0579f13d1a6339d952c4f60a9f4 Author: Xiao Guangrong Date: Wed May 13 14:42:19 2015 +0800 KVM: MMU: fix decoding cache type from MTRR There are some bugs in current get_mtrr_type(); 1: bit 1 of mtrr_state->enabled is corresponding bit 11 of IA32_MTRR_DEF_TYPE MSR which completely control MTRR's enablement that means other bits are ignored if it is cleared 2: the fixed MTRR ranges are controlled by bit 0 of mtrr_state->enabled (bit 10 of IA32_MTRR_DEF_TYPE) 3: if MTRR is disabled, UC is applied to all of physical memory rather than mtrr_state->def_type Signed-off-by: Xiao Guangrong Reviewed-by: Wanpeng Li Signed-off-by: Paolo Bonzini arch/x86/kvm/mmu.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) commit 6a49f85c7ac83c1918d138d40492a5cef40b5ff8 Author: Xiao Guangrong Date: Wed May 13 14:42:25 2015 +0800 KVM: MMU: introduce kvm_zap_rmapp Split kvm_unmap_rmapp and introduce kvm_zap_rmapp which will be used in the later patch Signed-off-by: Xiao Guangrong Signed-off-by: Paolo Bonzini arch/x86/kvm/mmu.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) commit d77aa73c7072c598a6d1f3a781c0e4fae067df76 Author: Xiao Guangrong Date: Wed May 13 14:42:24 2015 +0800 KVM: MMU: use slot_handle_level and its helper to clean up the code slot_handle_level and its helper functions are ready now, use them to clean up the code Signed-off-by: Xiao Guangrong Signed-off-by: Paolo Bonzini arch/x86/kvm/mmu.c | 128 +++++++---------------------------------------------- 1 file changed, 16 insertions(+), 112 deletions(-) commit 1bad2b2a3b158fbb19fef6cd563301b94b5c28b2 Author: Xiao Guangrong Date: Wed May 13 14:42:23 2015 +0800 KVM: MMU: introduce slot_handle_level_range() and its helpers There are several places walking all rmaps for the memslot so that introduce common functions to cleanup the code Signed-off-by: Xiao Guangrong Signed-off-by: Paolo Bonzini arch/x86/kvm/mmu.c | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) commit 6ce1f4e295dd06b19443341b1684d361739ec117 Author: Xiao Guangrong Date: Wed May 13 14:42:22 2015 +0800 KVM: MMU: introduce for_each_slot_rmap_range It's used to abstract the code from kvm_handle_hva_range and it will be used by later patch Signed-off-by: Xiao Guangrong Signed-off-by: Paolo Bonzini arch/x86/kvm/mmu.c | 97 +++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 75 insertions(+), 22 deletions(-) commit 8a3d08f16fc63400f637dfa69aa5c7ea016ee18a Author: Xiao Guangrong Date: Wed May 13 14:42:21 2015 +0800 KVM: MMU: introduce PT_MAX_HUGEPAGE_LEVEL Suggested-by: Paolo Bonzini Signed-off-by: Xiao Guangrong Signed-off-by: Paolo Bonzini arch/x86/kvm/mmu.c | 24 +++++++++--------------- arch/x86/kvm/mmu.h | 1 + 2 files changed, 10 insertions(+), 15 deletions(-) commit 0d5367900a319ab8971817b0ca15a8b9f7c47e6f Author: Xiao Guangrong Date: Wed May 13 14:42:20 2015 +0800 KVM: MMU: introduce for_each_rmap_spte() It's used to walk all the sptes on the rmap to clean up the code Signed-off-by: Xiao Guangrong Signed-off-by: Paolo Bonzini arch/x86/kvm/mmu.c | 53 ++++++++++++++++-------------------------------- arch/x86/kvm/mmu_audit.c | 4 +--- 2 files changed, 19 insertions(+), 38 deletions(-) commit c35ebbeade127e7bca1f21ef5bf1a39deffba9de Author: Paolo Bonzini Date: Wed May 13 15:59:26 2015 +0200 Revert "kvmclock: set scheduler clock stable" This reverts commit ff7bbb9c6ab6e6620429daeff39424bbde1a94b4. Sasha Levin is seeing odd jump in time values during boot of a KVM guest: [...] [ 0.000000] tsc: Detected 2260.998 MHz processor [3376355.247558] Calibrating delay loop (skipped) preset value.. [...] and bisected them to this commit. Reported-by: Sasha Levin Signed-off-by: Paolo Bonzini arch/x86/kernel/kvmclock.c | 3 --- 1 file changed, 3 deletions(-) commit edc90b7dc4ceef62ef0ad9cc6c3f5dc770e83ad2 Author: Xiao Guangrong Date: Mon May 11 22:55:21 2015 +0800 KVM: MMU: fix SMAP virtualization KVM may turn a user page to a kernel page when kernel writes a readonly user page if CR0.WP = 1. This shadow page entry will be reused after SMAP is enabled so that kernel is allowed to access this user page Fix it by setting SMAP && !CR0.WP into shadow page's role and reset mmu once CR4.SMAP is updated Signed-off-by: Xiao Guangrong Signed-off-by: Paolo Bonzini Documentation/virtual/kvm/mmu.txt | 18 ++++++++++++++---- arch/x86/include/asm/kvm_host.h | 1 + arch/x86/kvm/mmu.c | 16 ++++++++++++---- arch/x86/kvm/mmu.h | 2 -- arch/x86/kvm/x86.c | 8 +++----- 5 files changed, 30 insertions(+), 15 deletions(-) commit 428e3d08574b77876ea5e71f294f91bd8afa51b5 Author: Nadav Amit Date: Tue Apr 28 13:06:01 2015 +0300 KVM: x86: Fix zero iterations REP-string When a REP-string is executed in 64-bit mode with an address-size prefix, ECX/EDI/ESI are used as counter and pointers. When ECX is initially zero, Intel CPUs clear the high 32-bits of RCX, and recent Intel CPUs update the high bits of the pointers in MOVS/STOS. This behavior is specific to Intel according to few experiments. As one may guess, this is an undocumented behavior. Yet, it is observable in the guest, since at least VMX traps REP-INS/OUTS even when ECX=0. Note that VMware appears to get it right. The behavior can be observed using the following code: #include #define LOW_MASK (0xffffffff00000000ull) #define ALL_MASK (0xffffffffffffffffull) #define TEST(opcode) \ do { \ asm volatile(".byte 0xf2 \n\t .byte 0x67 \n\t .byte " opcode "\n\t" \ : "=S"(s), "=c"(c), "=D"(d) \ : "S"(ALL_MASK), "c"(LOW_MASK), "D"(ALL_MASK)); \ printf("opcode %s rcx=%llx rsi=%llx rdi=%llx\n", \ opcode, c, s, d); \ } while(0) void main() { unsigned long long s, d, c; iopl(3); TEST("0x6c"); TEST("0x6d"); TEST("0x6e"); TEST("0x6f"); TEST("0xa4"); TEST("0xa5"); TEST("0xa6"); TEST("0xa7"); TEST("0xaa"); TEST("0xab"); TEST("0xae"); TEST("0xaf"); } Signed-off-by: Nadav Amit Signed-off-by: Paolo Bonzini arch/x86/kvm/emulate.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) commit ee122a7109e42313caadf6038ab773d1f68fcce1 Author: Nadav Amit Date: Tue Apr 28 13:06:00 2015 +0300 KVM: x86: Fix update RCX/RDI/RSI on REP-string When REP-string instruction is preceded with an address-size prefix, ECX/EDI/ESI are used as the operation counter and pointers. When they are updated, the high 32-bits of RCX/RDI/RSI are cleared, similarly to the way they are updated on every 32-bit register operation. Fix it. Signed-off-by: Nadav Amit Signed-off-by: Paolo Bonzini arch/x86/kvm/emulate.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit 3db176d5b4170284d9ce1e1e9c441ebfa9a37417 Author: Nadav Amit Date: Sun Apr 19 21:12:59 2015 +0300 KVM: x86: Fix DR7 mask on task-switch while debugging If the host sets hardware breakpoints to debug the guest, and a task-switch occurs in the guest, the architectural DR7 will not be updated. The effective DR7 would be updated instead. This fix puts the DR7 update during task-switch emulation, so it now uses the standard DR setting mechanism instead of the one that was previously used. As a bonus, the update of DR7 will now be effective for AMD as well. Signed-off-by: Nadav Amit Signed-off-by: Paolo Bonzini arch/x86/kvm/emulate.c | 6 +++++- arch/x86/kvm/vmx.c | 3 --- 2 files changed, 5 insertions(+), 4 deletions(-) commit 73e85ed36a96324a2ba5990024f621bf9907fbd5 Author: Arnd Bergmann Date: Tue May 19 14:18:35 2015 +0200 mac802154: select CRYPTO when needed The mac802154 subsystem uses functions from the crypto layer and correctly selects the individual crypto algorithms, but fails to build when the crypto layer is disabled altogether: crypto/built-in.o: In function `crypto_ctr_free': :(.text+0x80): undefined reference to `crypto_drop_spawn' crypto/built-in.o: In function `crypto_rfc3686_free': :(.text+0xac): undefined reference to `crypto_drop_spawn' crypto/built-in.o: In function `crypto_ctr_crypt': :(.text+0x2f0): undefined reference to `blkcipher_walk_virt_block' :(.text+0x2f8): undefined reference to `crypto_inc' To solve that, this patch also selects the core crypto code, like all other users of that code do. Signed-off-by: Arnd Bergmann Reviewed-by: Stefan Schmidt Signed-off-by: Marcel Holtmann net/mac802154/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 5b09a094f2fb768c76c8d4a82503df6fc7e1df63 Author: Hou Pengyang Date: Sun May 10 11:07:40 2015 +0000 arm64: perf: Fix callchain parse error with kernel tracepoint events For ARM64, when tracing with tracepoint events, the IP and pstate are set to 0, preventing the perf code parsing the callchain and resolving the symbols correctly. ./perf record -e sched:sched_switch -g --call-graph dwarf ls [ perf record: Captured and wrote 0.146 MB perf.data ] ./perf report -f Samples: 194 of event 'sched:sched_switch', Event count (approx.): 194 Children Self Command Shared Object Symbol 100.00% 100.00% ls [unknown] [.] 0000000000000000 The fix is to implement perf_arch_fetch_caller_regs for ARM64, which fills several necessary registers used for callchain unwinding, including pc,sp, fp and spsr . With this patch, callchain can be parsed correctly as follows: ...... + 2.63% 0.00% ls [kernel.kallsyms] [k] vfs_symlink + 2.63% 0.00% ls [kernel.kallsyms] [k] follow_down + 2.63% 0.00% ls [kernel.kallsyms] [k] pfkey_get + 2.63% 0.00% ls [kernel.kallsyms] [k] do_execveat_common.isra.33 - 2.63% 0.00% ls [kernel.kallsyms] [k] pfkey_send_policy_notify pfkey_send_policy_notify pfkey_get v9fs_vfs_rename page_follow_link_light link_path_walk el0_svc_naked ....... Signed-off-by: Hou Pengyang Acked-by: Will Deacon Signed-off-by: Catalin Marinas arch/arm64/include/asm/perf_event.h | 7 +++++++ 1 file changed, 7 insertions(+) commit 343df3c79c62b644ce6ff5dff96c9e0be1ecb242 Author: Christoph Hellwig Date: Tue May 19 09:23:23 2015 +0200 suspend: simplify block I/O handling Stop abusing struct page functionality and the swap end_io handler, and instead add a modified version of the blk-lib.c bio_batch helpers. Also move the block I/O code into swap.c as they are directly tied into each other. Signed-off-by: Christoph Hellwig Tested-by: Pavel Machek Tested-by: Ming Lin Acked-by: Pavel Machek Acked-by: Rafael J. Wysocki Signed-off-by: Jens Axboe include/linux/swap.h | 1 - kernel/power/Makefile | 3 +- kernel/power/block_io.c | 103 ------------------------------- kernel/power/power.h | 9 --- kernel/power/swap.c | 159 ++++++++++++++++++++++++++++++++++++------------ mm/page_io.c | 2 +- 6 files changed, 122 insertions(+), 155 deletions(-) commit b2dbe0a60f1bcf4db5c701f1577b3135c3159eb5 Author: Jens Axboe Date: Tue May 19 09:18:28 2015 -0600 block: collapse bio bit space Various previous patches removed bits and left holes, collapse them all. Leave the reset start bit where it is, we don't need to change that. Signed-off-by: Jens Axboe include/linux/blk_types.h | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit 4e3d9cb0134fea035e6eb1707e5e7d8aaffa186d Author: Thomas Gleixner Date: Tue May 19 17:14:51 2015 +0200 jiffies: Remove the extra indentation level Somehow I missed to clean that up when applying the patches. Fix it up now. Reported-by: Joe Perches Signed-off-by: Thomas Gleixner Cc: Nicholas Mc Guire include/linux/jiffies.h | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) commit 97ca223c3b37ed12a5b67a5dc6247e5a4799d337 Author: Christoph Hellwig Date: Fri Apr 24 21:41:02 2015 +0200 block: remove unused BIO_RW_BLOCK and BIO_EOF flags Signed-off-by: Christoph Hellwig Acked-by: Tejun Heo Signed-off-by: Jens Axboe block/blk-core.c | 2 -- include/linux/blk_types.h | 2 -- 2 files changed, 4 deletions(-) commit b25de9d6da49b1a8760a89672283128aa8c78345 Author: Christoph Hellwig Date: Fri Apr 24 21:41:01 2015 +0200 block: remove BIO_EOPNOTSUPP Since the big barrier rewrite/removal in 2007 we never fail FLUSH or FUA requests, which means we can remove the magic BIO_EOPNOTSUPP flag to help propagating those to the buffer_head layer. Signed-off-by: Christoph Hellwig Reviewed-by: Jeff Moyer Acked-by: Tejun Heo Signed-off-by: Jens Axboe block/bounce.c | 3 --- fs/btrfs/disk-io.c | 11 ++--------- fs/btrfs/extent_io.c | 2 -- fs/buffer.c | 10 ---------- fs/ext4/page-io.c | 1 - fs/nilfs2/segbuf.c | 12 ------------ include/linux/blk_types.h | 1 - 7 files changed, 2 insertions(+), 38 deletions(-) commit e1d2c88639407ed16d932e56f292267ea3264eea Merge: e985ad1 0f07833 Author: Catalin Marinas Date: Tue May 19 16:15:22 2015 +0100 Merge branch 'for-next/cpu-init' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux * 'for-next/cpu-init' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: ARM64: kernel: unify ACPI and DT cpus initialization ARM64: kernel: make cpu_ops hooks DT agnostic commit c546d5db75b452737e554bb9c33dedb46847c4fd Author: Christoph Hellwig Date: Tue May 19 08:36:29 2015 +0200 remove scatterlist.h generation from arch Kbuild files Signed-off-by: Christoph Hellwig Reported-by: Geert Uytterhoeven Signed-off-by: Jens Axboe arch/alpha/include/asm/Kbuild | 1 - arch/arc/include/asm/Kbuild | 1 - arch/arm/include/asm/Kbuild | 1 - arch/arm64/include/asm/Kbuild | 1 - arch/avr32/include/asm/Kbuild | 1 - arch/blackfin/include/asm/Kbuild | 1 - arch/c6x/include/asm/Kbuild | 1 - arch/cris/include/asm/Kbuild | 1 - arch/frv/include/asm/Kbuild | 1 - arch/hexagon/include/asm/Kbuild | 1 - arch/ia64/include/asm/Kbuild | 1 - arch/m32r/include/asm/Kbuild | 1 - arch/m68k/include/asm/Kbuild | 1 - arch/metag/include/asm/Kbuild | 1 - arch/microblaze/include/asm/Kbuild | 1 - arch/mips/include/asm/Kbuild | 1 - arch/mn10300/include/asm/Kbuild | 1 - arch/nios2/include/asm/Kbuild | 1 - arch/openrisc/include/asm/Kbuild | 1 - arch/parisc/include/asm/Kbuild | 1 - arch/powerpc/include/asm/Kbuild | 1 - arch/s390/include/asm/Kbuild | 1 - arch/score/include/asm/Kbuild | 1 - arch/sh/include/asm/Kbuild | 1 - arch/sparc/include/asm/Kbuild | 1 - arch/tile/include/asm/Kbuild | 1 - arch/um/include/asm/Kbuild | 1 - arch/unicore32/include/asm/Kbuild | 1 - arch/x86/include/asm/Kbuild | 1 - arch/xtensa/include/asm/Kbuild | 1 - 30 files changed, 30 deletions(-) commit cddcd72bcec3b1dc9cef7f17d724a7fe42d64cc1 Author: Christoph Hellwig Date: Thu May 7 09:38:14 2015 +0200 nvme: disable irqs in nvme_freeze_queues The queue_lock needs to be taken with irqs disabled. This is mostly due to the old pre blk-mq usage pattern, but we've also picked it up in most of the few places where we use the queue_lock with blk-mq. Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe drivers/block/nvme-core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 4ecd4fef3a074c8bb43c391a57742c422469ebbd Author: Christoph Hellwig Date: Thu May 7 09:38:13 2015 +0200 block: use an atomic_t for mq_freeze_depth lockdep gets unhappy about the not disabling irqs when using the queue_lock around it. Instead of trying to fix that up just switch to an atomic_t and get rid of the lock. Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe block/blk-mq.c | 24 ++++++++++-------------- include/linux/blkdev.h | 2 +- 2 files changed, 11 insertions(+), 15 deletions(-) commit 0f0783365cbb7ec13a8f02198f6e1a146d94a5a9 Author: Lorenzo Pieralisi Date: Wed May 13 14:12:47 2015 +0100 ARM64: kernel: unify ACPI and DT cpus initialization The code that initializes cpus on arm64 is currently split in two different code paths that carry out DT and ACPI cpus initialization. Most of the code executing SMP initialization is common and should be merged to reduce discrepancies between ACPI and DT initialization and to have code initializing cpus in a single common place in the kernel. This patch refactors arm64 SMP cpus initialization code to merge ACPI and DT boot paths in a common file and to create sanity checks that can be reused by both boot methods. Current code assumes PSCI is the only available boot method when arm64 boots with ACPI; this can be easily extended if/when the ACPI parking protocol is merged into the kernel. Signed-off-by: Sudeep Holla Signed-off-by: Lorenzo Pieralisi Acked-by: Hanjun Guo Acked-by: Mark Rutland Tested-by: Hanjun Guo Tested-by: Mark Rutland [DT] Cc: Will Deacon Signed-off-by: Catalin Marinas arch/arm64/include/asm/acpi.h | 4 + arch/arm64/include/asm/cpu_ops.h | 1 - arch/arm64/include/asm/smp.h | 2 +- arch/arm64/kernel/acpi.c | 124 ------------------------- arch/arm64/kernel/cpu_ops.c | 65 ++++++++----- arch/arm64/kernel/setup.c | 7 +- arch/arm64/kernel/smp.c | 191 ++++++++++++++++++++++++++++++--------- 7 files changed, 196 insertions(+), 198 deletions(-) commit 819a88263d5dbe398edd59cc1cf725ed1fdcfd79 Author: Lorenzo Pieralisi Date: Wed May 13 14:12:46 2015 +0100 ARM64: kernel: make cpu_ops hooks DT agnostic ARM64 CPU operations such as cpu_init and cpu_init_idle take a struct device_node pointer as a parameter, which corresponds to the device tree node of the logical cpu on which the operation has to be applied. With the advent of ACPI on arm64, where MADT static table entries are used to initialize cpus, the device tree node parameter in cpu_ops hooks become useless when booting with ACPI, since in that case cpu device tree nodes are not present and can not be used for cpu initialization. The current cpu_init hook requires a struct device_node pointer parameter because it is called while parsing the device tree to initialize CPUs, when the cpu_logical_map (that is used to match a cpu node reg property to a device tree node) for a given logical cpu id is not set up yet. This means that the cpu_init hook cannot rely on the of_get_cpu_node function to retrieve the device tree node corresponding to the logical cpu id passed in as parameter, so the cpu device tree node must be passed in as a parameter to fix this catch-22 dependency cycle. This patch reshuffles the cpu_logical_map initialization code so that the cpu_init cpu_ops hook can safely use the of_get_cpu_node function to retrieve the cpu device tree node, removing the need for the device tree node pointer parameter. In the process, the patch removes device tree node parameters from all cpu_ops hooks, in preparation for SMP DT/ACPI cpus initialization consolidation. Signed-off-by: Lorenzo Pieralisi Acked-by: Hanjun Guo Acked-by: Sudeep Holla Acked-by: Mark Rutland Tested-by: Hanjun Guo Tested-by: Mark Rutland [DT] Cc: Will Deacon Signed-off-by: Catalin Marinas arch/arm64/include/asm/cpu_ops.h | 26 ++++++++++++++----------- arch/arm64/kernel/acpi.c | 2 +- arch/arm64/kernel/cpu_ops.c | 23 +++++++++++----------- arch/arm64/kernel/cpuidle.c | 7 +------ arch/arm64/kernel/psci.c | 11 +++++++---- arch/arm64/kernel/smp.c | 39 +++++++++++++++++++++++++++----------- arch/arm64/kernel/smp_spin_table.c | 8 +++++++- 7 files changed, 70 insertions(+), 46 deletions(-) commit 20a8a96873f69dc915e872e291f4376f436b295a Author: Colin Cronin Date: Mon May 18 11:41:43 2015 -0700 Drivers: gpio: Fix spelling errors Fixed several spelling errors in gpio-lynxpoint, gpio-pca953x, gpio-tegra, gpio-zynq, gpiolib-of, gpiolib. Signed-off-by: Colin Cronin Signed-off-by: Linus Walleij drivers/gpio/gpio-lynxpoint.c | 2 +- drivers/gpio/gpio-pca953x.c | 2 +- drivers/gpio/gpio-tegra.c | 2 +- drivers/gpio/gpio-zynq.c | 2 +- drivers/gpio/gpiolib-of.c | 2 +- drivers/gpio/gpiolib.c | 10 +++++----- 6 files changed, 10 insertions(+), 10 deletions(-) commit e985ad17cbbb55e10e2139eb25c087ef92fcdd48 Author: Michal Simek Date: Mon May 18 13:10:48 2015 +0200 arm64: Rename temp variable in read*_relaxed() This resolves the following sparse warning from readl() and other macros, which ends up embedding readl_relaxed() using the same variable. Warning log: include/asm-generic/io.h:364:16: warning: symbol '__v' shadows an earlier one include/asm-generic/io.h:364:16: originally declared here include/asm-generic/io.h:372:16: warning: symbol '__v' shadows an earlier one include/asm-generic/io.h:372:16: originally declared here include/asm-generic/io.h:380:16: warning: symbol '__v' shadows an earlier one include/asm-generic/io.h:380:16: originally declared here include/asm-generic/io.h:568:16: warning: symbol '__v' shadows an earlier one include/asm-generic/io.h:568:16: originally declared here include/asm-generic/io.h:576:16: warning: symbol '__v' shadows an earlier one include/asm-generic/io.h:576:16: originally declared here include/asm-generic/io.h:584:16: warning: symbol '__v' shadows an earlier one include/asm-generic/io.h:584:16: originally declared here The same patch was already applied to arm32 as "ARM: 7118/1: rename temp variable in read*_relaxed()" (sha1: b0c1264f534a1cb3c52036a23a04d238434a0df6) Acked-by: Liviu Dudau Signed-off-by: Michal Simek Signed-off-by: Catalin Marinas arch/arm64/include/asm/io.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 68234df4ea7939f98431aa81113fbdce10c4a84b Author: Mark Rutland Date: Mon Apr 20 10:24:35 2015 +0100 arm64: kill flush_cache_all() The documented semantics of flush_cache_all are not possible to provide for arm64 (short of flushing the entire physical address space by VA), and there are currently no users; KVM uses VA maintenance exclusively, cpu_reset is never called, and the only two users outside of arch code cannot be built for arm64. While cpu_soft_reset and related functions (which call flush_cache_all) were thought to be useful for kexec, their current implementations only serve to mask bugs. For correctness kexec will need to perform maintenance by VA anyway to account for system caches, line migration, and other subtleties of the cache architecture. As the extent of this cache maintenance will be kexec-specific, it should probably live in the kexec code. This patch removes flush_cache_all, and related unused components, preventing further abuse. Signed-off-by: Mark Rutland Cc: AKASHI Takahiro Cc: Geoff Levand Acked-by: Ard Biesheuvel Acked-by: Catalin Marinas Acked-by: Lorenzo Pieralisi Acked-by: Marc Zyngier Acked-by: Will Deacon Signed-off-by: Catalin Marinas arch/arm64/include/asm/cacheflush.h | 5 --- arch/arm64/include/asm/proc-fns.h | 4 -- arch/arm64/include/asm/system_misc.h | 1 - arch/arm64/kernel/process.c | 12 +----- arch/arm64/mm/cache.S | 73 ------------------------------------ arch/arm64/mm/flush.c | 1 - arch/arm64/mm/proc.S | 46 ----------------------- 7 files changed, 1 insertion(+), 141 deletions(-) commit e8557d1f0c4d06260b8aed5d2400806a8e7ac21c Author: Anders Roxell Date: Mon Apr 27 22:53:09 2015 +0200 arm64: Allow forced irq threading Now its safe to allow forced interrupt threading for arm64, all timer interrupts and the perf interrupt are marked NO_THREAD, as is the case with arch/arm: da0ec6f ARM: 7814/2: Allow forced irq threading Acked-by: Sebastian Andrzej Siewior Suggested-by: Sebastian Andrzej Siewior Signed-off-by: Anders Roxell Signed-off-by: Catalin Marinas arch/arm64/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 96045ed486b09b2dc21c3d09edb13f22dff875bf Author: Anders Roxell Date: Mon Apr 27 22:53:08 2015 +0200 arm64: Mark PMU interrupt IRQF_NO_THREAD Mark the PMU interrupts as non-threadable, as is the case with arch/arm: d9c3365 ARM: 7813/1: Mark pmu interupt IRQF_NO_THREAD Acked-by: Will Deacon Suggested-by: Sebastian Andrzej Siewior Signed-off-by: Anders Roxell Signed-off-by: Catalin Marinas arch/arm64/kernel/perf_event.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d25408756accbd2171abaa0678f986adae139e6f Author: Viresh Kumar Date: Fri Apr 3 09:04:05 2015 +0530 clockevents: Stop unused clockevent devices To avoid getting spurious interrupts on a tickless CPU, clockevent device can now be stopped by switching to ONESHOT_STOPPED state. The natural place for handling this transition is tick_program_event(). On 'expires == KTIME_MAX', we skip programming the event and so we need to fix such call sites as well, to always call tick_program_event() irrespective of the expires value. Once the clockevent device is required again, check if it was earlier put into ONESHOT_STOPPED state. If yes, switch its state to ONESHOT before programming its event. To make sure we haven't missed any corner case, add a WARN() for the case where we try to reprogram clockevent device while we aren't configured in ONESHOT_STOPPED state. Signed-off-by: Viresh Kumar Cc: linaro-kernel@lists.linaro.org Cc: Frederic Weisbecker Cc: Kevin Hilman Cc: Daniel Lezcano Cc: Preeti U Murthy Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/5146b07be7f0bc497e0ebae036590ec2fa73e540.1428031396.git.viresh.kumar@linaro.org Signed-off-by: Thomas Gleixner kernel/time/clockevents.c | 4 ++++ kernel/time/hrtimer.c | 6 ++---- kernel/time/tick-oneshot.c | 16 ++++++++++++++++ 3 files changed, 22 insertions(+), 4 deletions(-) commit 8fff52fd50934580c5108afed12043a774edf728 Author: Viresh Kumar Date: Fri Apr 3 09:04:04 2015 +0530 clockevents: Introduce CLOCK_EVT_STATE_ONESHOT_STOPPED state When no timers/hrtimers are pending, the expiry time is set to a special value: 'KTIME_MAX'. This normally happens with NO_HZ_{IDLE|FULL} in both LOWRES/HIGHRES modes. When 'expiry == KTIME_MAX', we either cancel the 'tick-sched' hrtimer (NOHZ_MODE_HIGHRES) or skip reprogramming clockevent device (NOHZ_MODE_LOWRES). But, the clockevent device is already reprogrammed from the tick-handler for next tick. As the clock event device is programmed in ONESHOT mode it will at least fire one more time (unnecessarily). Timers on few implementations (like arm_arch_timer, etc.) only support PERIODIC mode and their drivers emulate ONESHOT over that. Which means that on these platforms we will get spurious interrupts periodically (at last programmed interval rate, normally tick rate). In order to avoid spurious interrupts, the clockevent device should be stopped or its interrupts should be masked. A simple (yet hacky) solution to get this fixed could be: update hrtimer_force_reprogram() to always reprogram clockevent device and update clockevent drivers to STOP generating events (or delay it to max time) when 'expires' is set to KTIME_MAX. But the drawback here is that every clockevent driver has to be hacked for this particular case and its very easy for new ones to miss this. However, Thomas suggested to add an optional state ONESHOT_STOPPED to solve this problem: lkml.org/lkml/2014/5/9/508. This patch adds support for ONESHOT_STOPPED state in clockevents core. It will only be available to drivers that implement the state-specific callbacks instead of the legacy ->set_mode() callback. Signed-off-by: Viresh Kumar Reviewed-by: Preeti U. Murthy Cc: linaro-kernel@lists.linaro.org Cc: Frederic Weisbecker Cc: Kevin Hilman Cc: Daniel Lezcano Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/b8b383a03ac07b13312c16850b5106b82e4245b5.1428031396.git.viresh.kumar@linaro.org Signed-off-by: Thomas Gleixner include/linux/clockchips.h | 7 ++++++- kernel/time/clockevents.c | 14 +++++++++++++- kernel/time/timer_list.c | 6 ++++++ 3 files changed, 25 insertions(+), 2 deletions(-) commit c3b5d3cea508d2c8ff493ef18c45a9cc58fb7015 Merge: daa67b4 e260818 Author: Thomas Gleixner Date: Tue May 19 16:12:32 2015 +0200 Merge branch 'linus' into timers/core Make sure the upstream fixes are applied before adding further modifications. commit f9784298e2b4a95be3bd7200075a2fdc61fd9f3b Author: Yoshihiro Shimoda Date: Mon May 18 10:41:05 2015 +0900 pinctrl: sh-pfc: r8a7791: Add PWM pin groups and functions Signed-off-by: Yoshihiro Shimoda Acked-by: Geert Uytterhoeven Acked-by: Laurent Pinchart Signed-off-by: Linus Walleij drivers/pinctrl/sh-pfc/pfc-r8a7791.c | 125 +++++++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) commit f9367793293d2262460942b0a4904c21857a1a8b Author: Wei Chen Date: Mon May 18 07:28:32 2015 +0000 pinctrl: sirf: add sirf atlas7 pinctrl and gpio support The Pinctrl module (ioc) controls the Pad's function select (each pad can have 8 functions), Pad's Drive Strength, Pad's Pull Select and Pad's Input Disable status. The ioc has two modules, ioc_top & ioc_rtc. Both of these two modules have function select/clear, Pull select and Drive Strength registers. But only ioc_rtc has input-disable registers. The Pads on ioc_top have to access ioc_rtc to set their input-disable status and intpu-disable-value. So have to use one ioc driver instance to drive these two ioc modules at the same time, and each ioc module will be treat as one bank on the "IOC Device". The GPIO Controller controls the GPIO status if the Pad has been config as GPIO by Pinctrl already. Includes the GPIO Input/output, Interrupt type, Interrupt Status, and Set/Get Values. The GPIO pull up/down are controlled by Pinctrl. There are 7 GPIO Groups and splited into 3 MACROs in atlas7. The GPIO Groups in one MACRO share one GPIO controllers, each GPIO Group are treated as one GPIO bank. For example: In VDIFM macro, there is one GPIO Controller, it has 3 banks to control 3 gpio groups. Its gpio name space is from 0 to 95. The Device Tree can be written as following: gpio-ranges = <&pinctrl 0 0 0>, <&pinctrl 32 0 0>, <&pinctrl 64 0 0>; gpio-ranges-group-names = "gnss_gpio_grp", "lcd_vip_gpio_grp", "sdio_i2s_gpio_grp"; bank#0 is from 0~31, the pins are from pinctrl's "gnss_gpio_grp". bank#2 is from 32~63, the pins are from pinctrl's "lcd_vip_gpio_grp". bank#3 is from 64~95, the pins are from pinctrl's "sdio_i2s_gpio_grp". Signed-off-by: Wei Chen Signed-off-by: Barry Song Signed-off-by: Linus Walleij .../devicetree/bindings/gpio/gpio-atlas7.txt | 50 + .../devicetree/bindings/pinctrl/pinctrl-atlas7.txt | 109 + drivers/pinctrl/Kconfig | 2 + drivers/pinctrl/sirf/Makefile | 1 + drivers/pinctrl/sirf/pinctrl-atlas7.c | 4639 ++++++++++++++++++++ 5 files changed, 4801 insertions(+) commit 5ceb41ad1d7521f6fefe2f2f86aeda6727d9736f Author: Masahiro Yamada Date: Fri May 15 12:31:38 2015 +0900 pinctrl: zynq: add static to platform_driver remove callback This function is only referenced in this file. Signed-off-by: Masahiro Yamada Reviewed-by: Sören Brinkmann Signed-off-by: Linus Walleij drivers/pinctrl/pinctrl-zynq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5c89c15b748c011332d855d13f4159d3e06378d9 Author: Yoshihiro Shimoda Date: Thu May 14 19:48:54 2015 +0900 pinctrl: sh-pfc: r8a7790: Add PWM pin groups and functions Signed-off-by: Yoshihiro Shimoda Reviewed-by: Geert Uytterhoeven Acked-by: Laurent Pinchart Signed-off-by: Linus Walleij drivers/pinctrl/sh-pfc/pfc-r8a7790.c | 101 +++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) commit 501b32653ebf49114cccb9afbf9150cf18fd8700 Author: Feng Wu Date: Tue May 19 17:07:17 2015 +0800 x86/irq: Show statistics information for posted-interrupts Show the statistics information for notification event and wakeup event for posted-interrupt in /proc/interrupts. [ tglx: Named the short identifiers PIN and PIW to match the long identifiers ] Signed-off-by: Feng Wu Cc: jiang.liu@linux.intel.com Link: http://lkml.kernel.org/r/1432026437-16560-5-git-send-email-feng.wu@intel.com Signed-off-by: Thomas Gleixner arch/x86/kernel/irq.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit f6b3c72c23661e5534cd2eede16e9bac7ebb761c Author: Feng Wu Date: Tue May 19 17:07:16 2015 +0800 x86/irq: Define a global vector for VT-d Posted-Interrupts Currently, we use a global vector as the Posted-Interrupts Notification Event for all the vCPUs in the system. We need to introduce another global vector for VT-d Posted-Interrtups, which will be used to wakeup the sleep vCPU when an external interrupt from a direct-assigned device happens for that vCPU. [ tglx: Removed a gazillion of extra newlines ] Signed-off-by: Feng Wu Cc: jiang.liu@linux.intel.com Link: http://lkml.kernel.org/r/1432026437-16560-4-git-send-email-feng.wu@intel.com Suggested-by: Yang Zhang Acked-by: H. Peter Anvin Signed-off-by: Thomas Gleixner arch/x86/include/asm/entry_arch.h | 2 ++ arch/x86/include/asm/hardirq.h | 1 + arch/x86/include/asm/hw_irq.h | 2 ++ arch/x86/include/asm/irq.h | 4 ++++ arch/x86/include/asm/irq_vectors.h | 1 + arch/x86/kernel/entry_64.S | 2 ++ arch/x86/kernel/irq.c | 26 ++++++++++++++++++++++++++ arch/x86/kernel/irqinit.c | 2 ++ 8 files changed, 40 insertions(+) commit a2f1c8bdc02bfcaa5a658283b883fdb54e328b36 Author: Feng Wu Date: Tue May 19 17:07:15 2015 +0800 x86/irq/msi: Implement irq_set_vcpu_affinity for remapped MSI irqs Implement irq_set_vcpu_affinity for pci_msi_ir_controller. Signed-off-by: Feng Wu Reviewed-by: Jiang Liu Link: http://lkml.kernel.org/r/1432026437-16560-3-git-send-email-feng.wu@intel.com Signed-off-by: Thomas Gleixner arch/x86/kernel/apic/msi.c | 1 + 1 file changed, 1 insertion(+) commit b1b64dc3558b7bde2917f9fc4f573f6a4787a95c Author: Ingo Molnar Date: Tue May 5 15:56:33 2015 +0200 x86/fpu: Reorganize fpu/internal.h fpu/internal.h has grown organically, with not much high level structure, which hurts its readability. Organize the various definitions into 5 sections: - high level FPU state functions - FPU/CPU feature flag helpers - fpstate handling functions - FPU context switching helpers - misc helper functions Other related changes: - Move MXCSR_DEFAULT to fpu/types.h. - drop the unused X87_FSW_ES define No change in functionality. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 159 +++++++++++++++++++----------------- arch/x86/include/asm/fpu/types.h | 3 + 2 files changed, 87 insertions(+), 75 deletions(-) commit e97131a8391e9fce5126ed54dc66c9d8965d3b4e Author: Ingo Molnar Date: Tue May 5 11:34:49 2015 +0200 x86/fpu: Add CONFIG_X86_DEBUG_FPU=y FPU debugging code There are various internal FPU state debugging checks that never trigger in practice, but which are useful for FPU code development. Separate these out into CONFIG_X86_DEBUG_FPU=y, and also add a couple of new ones. The size difference is about 0.5K of code on defconfig: text data bss filename 15028906 2578816 1638400 vmlinux 15029430 2578816 1638400 vmlinux ( Keep this enabled by default until the new FPU code is debugged. ) Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/Kconfig.debug | 12 ++++++++++++ arch/x86/include/asm/fpu/internal.h | 17 ++++++++++++++++- arch/x86/kernel/fpu/core.c | 18 +++++++++--------- arch/x86/kernel/fpu/init.c | 12 +++++++++++- arch/x86/kernel/fpu/xstate.c | 11 ++++++++++- 5 files changed, 58 insertions(+), 12 deletions(-) commit d364a7656c1855c940dfa4baf4ebcc3c6a9e6fd2 Author: Ingo Molnar Date: Tue May 5 11:43:02 2015 +0200 x86/fpu: Fix the 'nofxsr' boot parameter to also clear X86_FEATURE_FXSR_OPT I tried to simulate an ancient CPU via this option, and found that it still has fxsr_opt enabled, confusing the FPU code. Make the 'nofxsr' option also clear FXSR_OPT flag. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/common.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) commit e1884d69f643c743806ebb9bc9292863ef39e894 Author: Ingo Molnar Date: Mon May 4 11:49:58 2015 +0200 x86/fpu: Pass 'struct fpu' to fpu__restore() This cleans up the call sites and the function a bit, and also makes it more symmetric with the other high level FPU state handling functions. It's still only valid for the current task, as we copy to the FPU registers of the current CPU. No change in functionality. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 2 +- arch/x86/kernel/fpu/core.c | 9 +++------ arch/x86/kernel/fpu/signal.c | 2 +- arch/x86/kernel/traps.c | 2 +- drivers/lguest/x86/core.c | 2 +- 5 files changed, 7 insertions(+), 10 deletions(-) commit 32231879f66162352fc6f3041c5c2b1d965879b2 Author: Ingo Molnar Date: Mon May 4 09:52:42 2015 +0200 x86/fpu/init: Propagate __init annotations Now that all the FPU init function call dependencies are cleaned up we can propagate __init annotations deeper. This shrinks the runtime size of the kernel a bit, and also addresses a few section warnings. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/bugs.c | 2 +- arch/x86/kernel/fpu/init.c | 12 ++++++------ arch/x86/kernel/fpu/xstate.c | 10 +++++----- 3 files changed, 12 insertions(+), 12 deletions(-) commit 5fd402dfa7fc97f8e8d74c92d24abadbdc4002ca Author: Ingo Molnar Date: Mon May 4 09:43:55 2015 +0200 x86/fpu/xstate: Clean up setup_xstate_comp() call So call setup_xstate_comp() from the xstate init code, not from the generic fpu__init_system() code. This allows us to remove the protytype from xstate.h as well. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/xstate.h | 1 - arch/x86/kernel/fpu/init.c | 1 - arch/x86/kernel/fpu/xstate.c | 6 ++---- 3 files changed, 2 insertions(+), 6 deletions(-) commit 489e9c018854158722eb7123f9efefe67af5c4bd Author: Ingo Molnar Date: Mon May 4 09:04:56 2015 +0200 x86/fpu: Clean up xstate feature reservation Put MPX support into its separate high level structure, and also replace the fixed YMM, LWP and MPX structures in xregs_state with just reservations - their exact offsets in the structure will depend on the CPU and no code actually relies on those fields. No change in functionality. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/types.h | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) commit 39f1acd243725b4b20caa37a81b6c8f641b505b8 Author: Ingo Molnar Date: Mon May 4 07:37:47 2015 +0200 x86/fpu/xstate: Don't assume the first zero xfeatures zero bit means the end The current xstate code in setup_xstate_features() assumes that the first zero bit means the end of xfeatures - but that is not so, the SDM clearly states that an arbitrary set of xfeatures might be enabled - and it is also clear from the description of the compaction feature that holes are possible: "13-6 Vol. 1MANAGING STATE USING THE XSAVE FEATURE SET [...] Compacted format. Each state component i (i ≥ 2) is located at a byte offset from the base address of the XSAVE area based on the XCOMP_BV field in the XSAVE header: — If XCOMP_BV[i] = 0, state component i is not in the XSAVE area. — If XCOMP_BV[i] = 1, the following items apply: • If XCOMP_BV[j] = 0 for every j, 2 ≤ j < i, state component i is located at a byte offset 576 from the base address of the XSAVE area. (This item applies if i is the first bit set in bits 62:2 of the XCOMP_BV; it implies that state component i is located at the beginning of the extended region.) • Otherwise, let j, 2 ≤ j < i, be the greatest value such that XCOMP_BV[j] = 1. Then state component i is located at a byte offset X from the location of state component j, where X is the number of bytes required for state component j as enumerated in CPUID.(EAX=0DH,ECX=j):EAX. (This item implies that state component i immediately follows the preceding state component whose bit is set in XCOMP_BV.)" So don't assume that the first zero xfeatures bit means the end of all xfeatures - iterate through all of them. I'm not aware of hardware that triggers this currently. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/xstate.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) commit 63c6680cd09b8803f428ec606d764229cb78eca6 Author: Ingo Molnar Date: Fri May 1 10:54:22 2015 +0200 x86/fpu: Move debugging check from kernel_fpu_begin() to __kernel_fpu_begin() kernel_fpu_begin() is __kernel_fpu_begin() with a preempt_disable(). Move the kernel_fpu_begin() debugging check into __kernel_fpu_begin(), so that users of __kernel_fpu_begin() may benefit from it as well. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/core.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit bdf80d104021d3405e5ec8ecc08f189b74ae022a Author: Ingo Molnar Date: Sat May 2 10:22:45 2015 +0200 x86/fpu: Document the various fpregs state formats Document all the structures that make up 'struct fpu'. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/types.h | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) commit aeb997b9f2a2199c72b89b7a304cafc394e4202b Author: Ingo Molnar Date: Fri May 1 09:59:04 2015 +0200 x86/fpu: Change fpu->fpregs_active from 'int' to 'char', add lazy switching comments Improve the memory layout of 'struct fpu': - change ->fpregs_active from 'int' to 'char' - it's just a single flag and modern x86 CPUs can do efficient byte accesses. - pack related fields closer to each other: often 'fpu->state' will not be touched, while the other fields will - so pack them into a group. Also add comments to each field, describing their purpose, and add some background information about lazy restores. Also fix an obsolete, lazy switching related comment in fpu_copy()'s description. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/types.h | 82 +++++++++++++++++++++++++++++++++++----- arch/x86/kernel/fpu/core.c | 6 +-- arch/x86/kernel/fpu/xstate.c | 9 +++-- 3 files changed, 79 insertions(+), 18 deletions(-) commit c47ada305de3803517ae64aa50686f644c5456fa Author: Ingo Molnar Date: Thu Apr 30 17:15:32 2015 +0200 x86/fpu: Harmonize FPU register state types Use these consistent names: struct fregs_state # was: i387_fsave_struct struct fxregs_state # was: i387_fxsave_struct struct swregs_state # was: i387_soft_struct struct xregs_state # was: xsave_struct union fpregs_state # was: thread_xstate Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 22 +++++++++++----------- arch/x86/include/asm/fpu/types.h | 24 ++++++++++++------------ arch/x86/include/asm/fpu/xstate.h | 16 ++++++++-------- arch/x86/include/asm/mpx.h | 8 ++++---- arch/x86/kernel/fpu/core.c | 6 +++--- arch/x86/kernel/fpu/init.c | 8 ++++---- arch/x86/kernel/fpu/regset.c | 10 +++++----- arch/x86/kernel/fpu/signal.c | 32 ++++++++++++++++---------------- arch/x86/kernel/fpu/xstate.c | 6 +++--- arch/x86/kernel/traps.c | 2 +- arch/x86/kvm/x86.c | 12 ++++++------ arch/x86/math-emu/fpu_aux.c | 2 +- arch/x86/math-emu/fpu_entry.c | 10 +++++----- arch/x86/mm/mpx.c | 6 +++--- 14 files changed, 82 insertions(+), 82 deletions(-) commit 0c306bcfba288296dc34d00d514546915234bc90 Author: Ingo Molnar Date: Thu Apr 30 12:59:30 2015 +0200 x86/fpu: Factor out the FPU regset code into fpu/regset.c So much of fpu/core.c is the regset code, but it just obscures the generic FPU state machine logic. Factor out the regset code into fpu/regset.c, where it can be read in isolation. This affects one API: fpu__activate_stopped() has to be made available from the core to fpu/regset.c. No change in functionality. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 4 +- arch/x86/kernel/fpu/Makefile | 2 +- arch/x86/kernel/fpu/core.c | 352 +---------------------------------- arch/x86/kernel/fpu/regset.c | 356 ++++++++++++++++++++++++++++++++++++ 4 files changed, 360 insertions(+), 354 deletions(-) commit b992c660d3b3161ddb992e1b0cac727de574709c Author: Ingo Molnar Date: Thu Apr 30 12:45:38 2015 +0200 x86/fpu: Factor out fpu/signal.c fpu/xstate.c has a lot of generic FPU signal frame handling routines, move them into a separate file: fpu/signal.c. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/signal.h | 2 + arch/x86/kernel/fpu/Makefile | 2 +- arch/x86/kernel/fpu/signal.c | 404 ++++++++++++++++++++++++++++++++++++++ arch/x86/kernel/fpu/xstate.c | 394 +------------------------------------ 4 files changed, 409 insertions(+), 393 deletions(-) commit c681314421c7c70c418190f3b4ffb4d3257ea5be Author: Ingo Molnar Date: Thu Apr 30 11:34:09 2015 +0200 x86/fpu: Rename all the fpregs, xregs, fxregs and fregs handling functions Standardize the naming of the various functions that copy register content in specific FPU context formats: copy_fxregs_to_kernel() # was: fpu_fxsave() copy_xregs_to_kernel() # was: xsave_state() copy_kernel_to_fregs() # was: frstor_checking() copy_kernel_to_fxregs() # was: fxrstor_checking() copy_kernel_to_xregs() # was: fpu_xrstor_checking() copy_kernel_to_xregs_booting() # was: xrstor_state_booting() copy_fregs_to_user() # was: fsave_user() copy_fxregs_to_user() # was: fxsave_user() copy_xregs_to_user() # was: xsave_user() copy_user_to_fregs() # was: frstor_user() copy_user_to_fxregs() # was: fxrstor_user() copy_user_to_xregs() # was: xrestore_user() copy_user_to_fpregs_zeroing() # was: restore_user_xstate() Eliminate fpu_xrstor_checking(), because it was just a wrapper. No change in functionality. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 30 +++++++++++++++--------------- arch/x86/include/asm/fpu/xstate.h | 20 ++++++-------------- arch/x86/kernel/fpu/core.c | 4 ++-- arch/x86/kernel/fpu/xstate.c | 28 ++++++++++++++-------------- arch/x86/mm/mpx.c | 2 +- 5 files changed, 38 insertions(+), 46 deletions(-) commit 815418890e2a3984d8b04c433072df1a42573f96 Author: Ingo Molnar Date: Thu Apr 30 11:21:59 2015 +0200 x86/fpu: Move restore_init_xstate() out of fpu/internal.h Move restore_init_xstate() next to its sole caller. Also rename it to copy_init_fpstate_to_fpregs() and add some comments about what it does. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 8 -------- arch/x86/kernel/fpu/core.c | 14 +++++++++++++- 2 files changed, 13 insertions(+), 9 deletions(-) commit 6f57502310c85b60bdea78228e9b5bb3e82dc3b7 Author: Ingo Molnar Date: Thu Apr 30 11:07:06 2015 +0200 x86/fpu: Generalize 'init_xstate_ctx' So the handling of init_xstate_ctx has a layering violation: both 'struct xsave_struct' and 'union thread_xstate' have a 'struct i387_fxsave_struct' member: xsave_struct::i387 thread_xstate::fxsave The handling of init_xstate_ctx is generic, it is used on all CPUs, with or without XSAVE instruction. So it's confusing how the generic code passes around and handles an XSAVE specific format. What we really want is for init_xstate_ctx to be a proper fpstate and we use its ::fxsave and ::xsave members, as appropriate. Since the xsave_struct::i387 and thread_xstate::fxsave aliases each other this is not a functional problem. So implement this, and move init_xstate_ctx to the generic FPU code in the process. Also, since init_xstate_ctx is not XSAVE specific anymore, rename it to init_fpstate, and mark it __read_mostly, because it's only modified once during bootup, and used as a reference fpstate later on. There's no change in functionality. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 6 ++++-- arch/x86/include/asm/fpu/xstate.h | 1 - arch/x86/kernel/fpu/core.c | 6 ++++++ arch/x86/kernel/fpu/init.c | 2 +- arch/x86/kernel/fpu/xstate.c | 19 +++++++------------ 5 files changed, 18 insertions(+), 16 deletions(-) commit bf935b0b526ffa0607476dfc6198593553957dd9 Author: Ingo Molnar Date: Thu Apr 30 10:23:42 2015 +0200 x86/fpu: Create 'union thread_xstate' helper for fpstate_init() fpstate_init() only uses fpu->state, so pass that in to it. This enables the cleanup we will do in the next patch. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 2 +- arch/x86/kernel/fpu/core.c | 14 +++++++------- arch/x86/kernel/fpu/xstate.c | 2 +- arch/x86/kvm/x86.c | 2 +- 4 files changed, 10 insertions(+), 10 deletions(-) commit 0aba69789452faab6f6bd7cd293489bab66352bc Author: Ingo Molnar Date: Thu Apr 30 10:08:36 2015 +0200 x86/fpu: Harmonize the names of the fpstate_init() helper functions Harmonize the inconsistent naming of these related functions: fpstate_init() finit_soft_fpu() => fpstate_init_fsoft() fx_finit() => fpstate_init_fxstate() fx_finit() => fpstate_init_fstate() # split out Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 23 +++++++++++------------ arch/x86/kernel/fpu/core.c | 26 ++++++++++++++++---------- arch/x86/kernel/fpu/init.c | 2 +- arch/x86/math-emu/fpu_aux.c | 4 ++-- 4 files changed, 30 insertions(+), 25 deletions(-) commit e1cebad49c54e0241e101ebf63d5238fe1137749 Author: Ingo Molnar Date: Thu Apr 30 09:29:38 2015 +0200 x86/fpu: Factor out the exception error code handling code Factor out the FPU error code handling code from traps.c and fpu/internal.h and move them close to each other. Also convert the helper functions to 'struct fpu *', which further simplifies them. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 33 +------------- arch/x86/kernel/fpu/core.c | 88 +++++++++++++++++++++++++++++++++++++ arch/x86/kernel/traps.c | 67 +++++----------------------- 3 files changed, 102 insertions(+), 86 deletions(-) commit acd58a3ad0ed5875fb88bbb078309a3d7ee147a0 Author: Ingo Molnar Date: Thu Apr 30 09:17:50 2015 +0200 x86/fpu: Remove run-once init quirks Remove various boot quirks that came from the old code. The new code is cleanly split up into per-system and per-cpu init sequences, and system init functions are only called once. Remove the run-once quirks. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/init.c | 6 ------ arch/x86/kernel/fpu/xstate.c | 11 ----------- 2 files changed, 17 deletions(-) commit 59a36d16be8f9f68410f1bd396577fb7f31ae877 Author: Ingo Molnar Date: Thu Apr 30 08:53:18 2015 +0200 x86/fpu: Factor out fpu/regset.h from fpu/internal.h Only a few places use the regset definitions, so factor them out. Also fix related header dependency assumptions. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 13 ------------- arch/x86/include/asm/fpu/regset.h | 21 +++++++++++++++++++++ arch/x86/include/asm/fpu/xstate.h | 1 + arch/x86/kernel/fpu/core.c | 1 + arch/x86/kernel/fpu/xstate.c | 2 ++ arch/x86/kernel/ptrace.c | 2 +- 6 files changed, 26 insertions(+), 14 deletions(-) commit fcbc99c403c4a1a24ac4744e08c04da3ec18a68c Author: Ingo Molnar Date: Thu Apr 30 08:45:02 2015 +0200 x86/fpu: Split out fpu/signal.h from fpu/internal.h for signal frame handling functions Most of the FPU does not use them, so split it out and include them in signal.c and ia32_signal.c Also fix header file dependency assumption in fpu/core.c. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/ia32/ia32_signal.c | 1 + arch/x86/include/asm/fpu/internal.h | 24 ------------------------ arch/x86/include/asm/fpu/signal.h | 31 +++++++++++++++++++++++++++++++ arch/x86/kernel/fpu/core.c | 2 ++ arch/x86/kernel/fpu/xstate.c | 1 + arch/x86/kernel/ptrace.c | 1 + arch/x86/kernel/signal.c | 1 + 7 files changed, 37 insertions(+), 24 deletions(-) commit 05012c13f69d67be8a6a7e65726eeb70899ad6ad Author: Ingo Molnar Date: Thu Apr 30 07:26:04 2015 +0200 x86/fpu: Move is_ia32*frame() helpers out of fpu/internal.h Move them to their only user. This makes the code easier to read, the header is less cluttered, and it also speeds up the build a bit. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 16 ---------------- arch/x86/kernel/signal.c | 16 ++++++++++++++++ 2 files changed, 16 insertions(+), 16 deletions(-) commit fbce7782467553d09cfde39473d23bde4ad78270 Author: Ingo Molnar Date: Thu Apr 30 07:12:46 2015 +0200 x86/fpu: Merge fpu__reset() and fpu__clear() With recent cleanups and fixes the fpu__reset() and fpu__clear() functions have become almost identical in functionality: the only difference is that fpu__reset() assumed that the fpstate was already active in the eagerfpu case, while fpu__clear() activated it if it was inactive. This distinction almost never matters, the only case where such fpstate activation happens if if the init thread (PID 1) gets exec()-ed for the first time. So keep fpu__clear() and change all fpu__reset() uses to fpu__clear() to simpify the logic. ( In a later patch we'll further simplify fpu__clear() by making sure that all contexts it is called on are already active. ) Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 3 +-- arch/x86/kernel/fpu/core.c | 21 ++++++--------------- arch/x86/kernel/fpu/xstate.c | 4 ++-- arch/x86/kernel/signal.c | 2 +- 4 files changed, 10 insertions(+), 20 deletions(-) commit 82c0e45eb5c839a8cee3d8d8a82d0592c4f42773 Author: Ingo Molnar Date: Wed Apr 29 21:09:18 2015 +0200 x86/fpu: Move the signal frame handling code closer to each other Consolidate more signal frame related functions: text data bss dec filename 14108070 2575280 1634304 18317654 vmlinux.before 14107944 2575344 1634304 18317592 vmlinux.after Also, while moving it, rename alloc_mathframe() to fpu__alloc_mathframe(). Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/ia32/ia32_signal.c | 2 +- arch/x86/include/asm/fpu/internal.h | 38 ++++-------------------------------- arch/x86/kernel/fpu/xstate.c | 39 ++++++++++++++++++++++++++++++++++++- arch/x86/kernel/signal.c | 4 ++-- 4 files changed, 45 insertions(+), 38 deletions(-) commit 9dfe99b755a263f9f6ac1dfdb5512bd6e22c28e8 Author: Ingo Molnar Date: Wed Apr 29 20:55:19 2015 +0200 x86/fpu: Rename restore_xstate_sig() to fpu__restore_sig() restore_xstate_sig() is a misnomer: it's not limited to 'xstate' at all, it is the high level 'restore FPU state from a signal frame' function that works with all legacy FPU formats as well. Rename it (and its helper) accordingly, and also move it to the fpu__*() namespace. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/ia32/ia32_signal.c | 2 +- arch/x86/include/asm/fpu/internal.h | 6 +++--- arch/x86/kernel/fpu/xstate.c | 2 +- arch/x86/kernel/signal.c | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) commit 04c8e01d50ae1f2b33a46459e8b1e776b747e97d Author: Ingo Molnar Date: Wed Apr 29 20:35:33 2015 +0200 x86/fpu: Move fpu__clear() to 'struct fpu *' parameter passing Do it like all other high level FPU state handling functions: they only know about struct fpu, not about the task. (Also remove a dead prototype while at it.) Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 5 ++--- arch/x86/kernel/fpu/core.c | 6 ++---- arch/x86/kernel/process.c | 2 +- 3 files changed, 5 insertions(+), 8 deletions(-) commit 6ffc152e4606c7f9149940d36a83e786f7f0a4f9 Author: Ingo Molnar Date: Wed Apr 29 20:24:14 2015 +0200 x86/fpu: Move all the fpu__*() high level methods closer to each other The fpu__*() methods are closely related, but they are defined in scattered places within the FPU code. Concentrate them, and also uninline fpu__save(), fpu__drop() and fpu__reset() to save about 5K of kernel text on 64-bit kernels: text data bss dec filename 14113063 2575280 1634304 18322647 vmlinux.before 14108070 2575280 1634304 18317654 vmlinux.after Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 53 +++++++------------------------------ arch/x86/kernel/fpu/core.c | 38 ++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 43 deletions(-) commit 0e75c54f1703e83e6cdf239491bf7294f6c34777 Author: Ingo Molnar Date: Wed Apr 29 20:10:43 2015 +0200 x86/fpu: Rename restore_fpu_checking() to copy_fpstate_to_fpregs() fpu_restore_checking() is a helper function of restore_fpu_checking(), but this is not apparent from the naming. Both copy fpstate contents to fpregs, while the fuller variant does a full copy without leaking information. So rename them to: copy_fpstate_to_fpregs() __copy_fpstate_to_fpregs() Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 8 ++++---- arch/x86/kernel/fpu/core.c | 4 ++-- arch/x86/kvm/x86.c | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) commit 5033861575df08a04090cc7b785b2b7aadcbde82 Author: Ingo Molnar Date: Wed Apr 29 19:04:31 2015 +0200 x86/fpu: Synchronize the naming of drop_fpu() and fpu_reset_state() drop_fpu() and fpu_reset_state() are similar in functionality and in scope, yet this is not apparent from their names. drop_fpu() deactivates FPU contents (both the fpregs and the fpstate), but leaves register contents intact in the eager-FPU case, mostly as an optimization. It disables fpregs in the lazy FPU case. The drop_fpu() method can be used to destroy FPU state in an optimized way, when we know that a new state will be loaded before user-space might see any remains of the old FPU state: - such as in sys_exit()'s exit_thread() where we know this task won't execute any user-space instructions anymore and the next context switch cleans up the FPU. The old FPU state might still be around in the eagerfpu case but won't be saved. - in __restore_xstate_sig(), where we use drop_fpu() before copying a new state into the fpstate and activating that one. No user-pace instructions can execute between those steps. - in sys_execve()'s fpu__clear(): there we use drop_fpu() in the !eagerfpu case, where it's equivalent to a full reinit. fpu_reset_state() is a stronger version of drop_fpu(): both in the eagerfpu and the lazy-FPU case it guarantees that fpregs are reinitialized to init state. This method is used in cases where we need a full reset: - handle_signal() uses fpu_reset_state() to reset the FPU state to init before executing a user-space signal handler. While we have already saved the original FPU state at this point, and always restore the original state, the signal handling code still has to do this reinit, because signals may interrupt any user-space instruction, and the FPU might be in various intermediate states (such as an unbalanced x87 stack) that is not immediately usable for general C signal handler code. - __restore_xstate_sig() uses fpu_reset_state() when the signal frame has no FP context. Since the signal handler may have modified the FPU state, it gets reset back to init state. - in another branch __restore_xstate_sig() uses fpu_reset_state() to handle a restoration error: when restore_user_xstate() fails to restore FPU state and we might have inconsistent FPU data, fpu_reset_state() is used to reset it back to a known good state. - __kernel_fpu_end() uses fpu_reset_state() in an error branch. This is in a 'must not trigger' error branch, so on bug-free kernels this never triggers. - fpu__restore() uses fpu_reset_state() in an error path as well: if the fpstate was set up with invalid FPU state (via ptrace or via a signal handler), then it's reset back to init state. - likewise, the scheduler's switch_fpu_finish() uses it in a restoration error path too. Move both drop_fpu() and fpu_reset_state() to the fpu__*() namespace and harmonize their naming with their function: fpu__drop() fpu__reset() This clearly shows that both methods operate on the full state of the FPU, just like fpu__restore(). Also add comments to explain what each function does. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 23 ++++++++++++++--------- arch/x86/kernel/fpu/core.c | 6 +++--- arch/x86/kernel/fpu/xstate.c | 6 +++--- arch/x86/kernel/process.c | 2 +- arch/x86/kernel/signal.c | 2 +- 5 files changed, 22 insertions(+), 17 deletions(-) commit 5e907bb0459399b0d1cc8d4c7e9f363a995b748a Author: Ingo Molnar Date: Thu Apr 30 09:09:26 2015 +0200 x86/alternatives, x86/fpu: Add 'alternatives_patched' debug flag and use it in xsave_state() We'd like to use xsave_state() earlier, but its SYSTEM_BOOTING check is too imprecise. The real condition that xsave_state() would like to check is whether alternative XSAVE instructions were patched into the kernel image already. Add such a (read-mostly) debug flag and use it in xsave_state(). Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/alternative.h | 6 ++++++ arch/x86/include/asm/fpu/xstate.h | 2 +- arch/x86/kernel/alternative.c | 5 +++++ 3 files changed, 12 insertions(+), 1 deletion(-) commit 2e85591a6ca2ad84741d2859753be5497d74bd42 Author: Ingo Molnar Date: Wed Apr 29 08:46:26 2015 +0200 x86/fpu: Better document fpu__clear() state handling So prior to this fix: c88d47480d30 ("x86/fpu: Always restore_xinit_state() when use_eager_cpu()") we leaked FPU state across execve() boundaries on eagerfpu systems: $ /host/home/mingo/dump-xmm-regs-exec # XMM state before execve(): XMM0 : 000000000000dede XMM1 : 000000000000dedf XMM2 : 000000000000dee0 XMM3 : 000000000000dee1 XMM4 : 000000000000dee2 XMM5 : 000000000000dee3 XMM6 : 000000000000dee4 XMM7 : 000000000000dee5 XMM8 : 000000000000dee6 XMM9 : 000000000000dee7 XMM10: 000000000000dee8 XMM11: 000000000000dee9 XMM12: 000000000000deea XMM13: 000000000000deeb XMM14: 000000000000deec XMM15: 000000000000deed # XMM state after execve(), in the new task context: XMM0 : 0000000000000000 XMM1 : 2f2f2f2f2f2f2f2f XMM2 : 0000000000000000 XMM3 : 0000000000000000 XMM4 : 00000000000000ff XMM5 : 00000000ff000000 XMM6 : 000000000000dee4 XMM7 : 000000000000dee5 XMM8 : 0000000000000000 XMM9 : 0000000000000000 XMM10: 0000000000000000 XMM11: 0000000000000000 XMM12: 0000000000000000 XMM13: 000000000000deeb XMM14: 000000000000deec XMM15: 000000000000deed Better explain what this function is supposed to do and why. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/core.c | 4 ++++ 1 file changed, 4 insertions(+) commit b1276c48e91bee869454301d3678cc49d8f57ab4 Author: Ingo Molnar Date: Wed Apr 29 10:58:03 2015 +0200 x86/fpu: Initialize fpregs in fpu__init_cpu_generic() FPU fpregs do not get initialized during bootup on secondary CPUs, on non-xsave capable CPUs. For example on one of my systems, the secondary CPU has this FPU state on bootup: x86: Booting SMP configuration: .... node #0, CPUs: #1 x86/fpu ###################### x86/fpu # FPU register dump on CPU#1: x86/fpu # ... CWD: ffff0040 x86/fpu # ... SWD: ffff0000 x86/fpu # ... TWD: ffff555a x86/fpu # ... FIP: 00000000 x86/fpu # ... FCS: 00000000 x86/fpu # ... FOO: 00000000 x86/fpu # ... FOS: ffff0000 x86/fpu # ... FP0: 02 57 00 00 00 00 00 00 ff ff x86/fpu # ... FP1: 1b e2 00 00 00 00 00 00 ff ff x86/fpu # ... FP2: 00 00 00 00 00 00 00 00 00 00 x86/fpu # ... FP3: 00 00 00 00 00 00 00 00 00 00 x86/fpu # ... FP4: 00 00 00 00 00 00 00 00 00 00 x86/fpu # ... FP5: 00 00 00 00 00 00 00 00 00 00 x86/fpu # ... FP6: 00 00 00 00 00 00 00 00 00 00 x86/fpu # ... FP7: 00 00 00 00 00 00 00 00 00 00 x86/fpu # ... SW: dadadada x86/fpu ###################### Note how CWD and TWD are off their usual init state (0x037f and 0xffff), and how FP0 and FP1 has non-zero content. This is normally not a problem, because any user-space FPU state is initalized properly - but it can complicate the use of FPU instructions in kernel code via kernel_fpu_begin()/end(): if the FPU using code does not initialize registers itself, it might generate spurious exceptions depending on which CPU it executes on. Fix this by initializing the x87 state via the FNINIT instruction. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/init.c | 3 +++ 1 file changed, 3 insertions(+) commit 3c6dffa93be9f82f2566dcc948285d6f79fb9ce2 Author: Ingo Molnar Date: Tue Apr 28 12:28:08 2015 +0200 x86/fpu: Rename user_has_fpu() to fpregs_active() Rename this function in line with the new FPU nomenclature. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 4 ++-- arch/x86/kernel/fpu/xstate.c | 2 +- arch/x86/kvm/vmx.c | 2 +- drivers/lguest/x86/core.c | 6 +++--- 4 files changed, 7 insertions(+), 7 deletions(-) commit be7436d519970365775d3d2d7b73e75c233e1994 Author: Ingo Molnar Date: Tue Apr 28 12:53:45 2015 +0200 x86/fpu: Clarify ancient comments in fpu__restore() So this function still had ancient language about 'saving current math information' - but we haven't been doing lazy FPU saves for quite some time, we are doing lazy FPU restores. Also remove IRQ13 related comment, which we don't support anymore either. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/core.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 2a52af8b8adc498b3cccbc219ec997cad6cafb9c Author: Ingo Molnar Date: Tue Apr 28 12:09:27 2015 +0200 x86/fpu: Rename save_user_xstate() to copy_fpregs_to_sigframe() Move the naming in line with existing names, so that we now have: copy_fpregs_to_fpstate() copy_fpstate_to_sigframe() copy_fpregs_to_sigframe() ... where each function does what its name suggests. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/xstate.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c8e1404120d55876d2dedd3a541bc484ef692c58 Author: Ingo Molnar Date: Tue Apr 28 11:35:20 2015 +0200 x86/fpu: Rename save_xstate_sig() to copy_fpstate_to_sigframe() Standardize the naming of save_xstate_sig() by renaming it to copy_fpstate_to_sigframe(): this tells us at a glance that the function copies an FPU fpstate to a signal frame. This naming also follows the naming of copy_fpregs_to_fpstate(). Don't put 'xstate' into the name: since this is a generic name, it's expected that the function is able to handle xstate frames as well, beyond legacy frames. xstate used to be the odd case in the x86 FPU code - now it's the common case. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/ia32/ia32_signal.c | 2 +- arch/x86/include/asm/fpu/internal.h | 2 +- arch/x86/kernel/fpu/xstate.c | 2 +- arch/x86/kernel/signal.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) commit 36e49e7f2ec8fa2cdf1ec0439374583ea0a82c47 Author: Ingo Molnar Date: Tue Apr 28 11:25:02 2015 +0200 x86/fpu: Pass 'struct fpu' to fpstate_sanitize_xstate() Currently fpstate_sanitize_xstate() has a task_struct input parameter, but it only uses the fpu structure from it - so pass in a 'struct fpu' pointer only and update all call sites. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 2 +- arch/x86/kernel/fpu/core.c | 9 ++++----- arch/x86/kernel/fpu/xstate.c | 8 ++++---- 3 files changed, 9 insertions(+), 10 deletions(-) commit 1ac91a767f1d2ac049dc11e5b7e4342c63c21538 Author: Ingo Molnar Date: Tue Apr 28 11:17:55 2015 +0200 x86/fpu: Simplify fpstate_sanitize_xstate() calls Remove the extra layer of __fpstate_sanitize_xstate(): if (!use_xsaveopt()) return; __fpstate_sanitize_xstate(tsk); and move the check for use_xsaveopt() into fpstate_sanitize_xstate(). In general we optimize for the presence of CPU features, not for the absence of them. Furthermore there's little point in this inlining, as the call sites are not super hot code paths. Doing this uninlining shrinks the code a bit: text data bss dec hex filename 14108751 2573624 1634304 18316679 1177d87 vmlinux.before 14108627 2573624 1634304 18316555 1177d0b vmlinux.after Also remove a pointless '!fx' check from fpstate_sanitize_xstate(). Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 9 +-------- arch/x86/kernel/fpu/xstate.c | 4 ++-- 2 files changed, 3 insertions(+), 10 deletions(-) commit d0903193124132c6bb59a895eeb0656f86013da1 Author: Ingo Molnar Date: Tue Apr 28 11:11:10 2015 +0200 x86/fpu: Rename sanitize_i387_state() to fpstate_sanitize_xstate() So the sanitize_i387_state() function has the following purpose: on CPUs that support optimized xstate saving instructions, an FPU fpstate might end up having partially uninitialized data. This function initializes that data. Note that the function name is a misnomer and confusing on two levels, not only is it not i387 specific at all, but it is the exact opposite: it only matters on xstate CPUs. So rename sanitize_i387_state() and __sanitize_i387_state() to fpstate_sanitize_xstate() and __fpstate_sanitize_xstate(), to clearly express the purpose and usage of the function. We'll further clean up this function in the next patch. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 6 +++--- arch/x86/kernel/fpu/core.c | 8 ++++---- arch/x86/kernel/fpu/xstate.c | 4 ++-- 3 files changed, 9 insertions(+), 9 deletions(-) commit befc61ad3c097bb6ace3da0c73ad56272ccee02d Author: Ingo Molnar Date: Tue Apr 28 10:56:54 2015 +0200 x86/fpu: Move asm/xcr.h to asm/fpu/internal.h Now that all FPU internals using drivers are converted to public APIs, move xcr.h's definitions into fpu/internal.h and remove xcr.h. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 25 +++++++++++++++++++ arch/x86/include/asm/xcr.h | 49 ------------------------------------- arch/x86/kernel/fpu/xstate.c | 1 - arch/x86/kvm/vmx.c | 1 - arch/x86/kvm/x86.c | 1 - 5 files changed, 25 insertions(+), 52 deletions(-) commit 57dd083e0cd0bb1ce447941b6438bf0a8372fc19 Author: Ingo Molnar Date: Tue Apr 28 10:59:00 2015 +0200 x86/fpu, crypto x86/sha1_mb: Remove FPU internal headers from sha1_mb.c This file only uses the public FPU APIs, so remove the xcr.h, fpu/xstate.h and fpu/internal.h headers and add the fpu/api.h include. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/crypto/sha-mb/sha1_mb.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 534ff06e39292b66b46d6318191b552b5bb2d1e7 Author: Ingo Molnar Date: Tue Apr 28 10:11:24 2015 +0200 x86/fpu, crypto x86/serpent_avx2: Simplify the init() xfeature checks Use the new 'cpu_has_xfeatures()' function to query AVX CPU support. This has the following advantages to the driver: - Decouples the driver from FPU internals: it's now only using . - Removes detection complexity from the driver, no more raw XGETBV instruction - Shrinks the code a bit. - Standardizes feature name error message printouts across drivers There are also advantages to the x86 FPU code: once all drivers are decoupled from internals we can move them out of common headers and we'll also be able to remove xcr.h. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/crypto/serpent_avx2_glue.c | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) commit d1e509660c690597edb7e15efd22a5e78b8e2fd5 Author: Ingo Molnar Date: Tue Apr 28 10:11:24 2015 +0200 x86/fpu, crypto x86/sha1_ssse3: Simplify the sha1_ssse3_mod_init() xfeature checks Use the new 'cpu_has_xfeatures()' function to query AVX CPU support. This has the following advantages to the driver: - Decouples the driver from FPU internals: it's now only using . - Removes detection complexity from the driver, no more raw XGETBV instruction - Shrinks the code a bit. - Standardizes feature name error message printouts across drivers There are also advantages to the x86 FPU code: once all drivers are decoupled from internals we can move them out of common headers and we'll also be able to remove xcr.h. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/crypto/sha1_ssse3_glue.c | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) commit 1debf7db2b9e156ecd69830244285b854e85a71c Author: Ingo Molnar Date: Tue Apr 28 10:11:24 2015 +0200 x86/fpu, crypto x86/cast6_avx: Simplify the cast6_init() xfeature checks Use the new 'cpu_has_xfeatures()' function to query AVX CPU support. This has the following advantages to the driver: - Decouples the driver from FPU internals: it's now only using . - Removes detection complexity from the driver, no more raw XGETBV instruction - Shrinks the code a bit. - Standardizes feature name error message printouts across drivers There are also advantages to the x86 FPU code: once all drivers are decoupled from internals we can move them out of common headers and we'll also be able to remove xcr.h. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/crypto/cast6_avx_glue.c | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) commit c93b8a3963242e034a4d1ec87090c62bb25a575c Author: Ingo Molnar Date: Tue Apr 28 10:11:24 2015 +0200 x86/fpu, crypto x86/sha512_ssse3: Simplify the sha512_ssse3_mod_init() xfeature checks Use the new 'cpu_has_xfeatures()' function to query AVX CPU support. This has the following advantages to the driver: - Decouples the driver from FPU internals: it's now only using . - Removes detection complexity from the driver, no more raw XGETBV instruction - Shrinks the code a bit. - Standardizes feature name error message printouts across drivers There are also advantages to the x86 FPU code: once all drivers are decoupled from internals we can move them out of common headers and we'll also be able to remove xcr.h. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/crypto/sha512_ssse3_glue.c | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) commit d5d34d98d2df01766854c7eb7044943b596d824f Author: Ingo Molnar Date: Tue Apr 28 10:11:24 2015 +0200 x86/fpu, crypto x86/cast5_avx: Simplify the cast5_init() xfeature checks Use the new 'cpu_has_xfeatures()' function to query AVX CPU support. This has the following advantages to the driver: - Decouples the driver from FPU internals: it's now only using . - Removes detection complexity from the driver, no more raw XGETBV instruction - Shrinks the code a bit. - Standardizes feature name error message printouts across drivers There are also advantages to the x86 FPU code: once all drivers are decoupled from internals we can move them out of common headers and we'll also be able to remove xcr.h. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/crypto/cast5_avx_glue.c | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) commit c1c23f7e5e1ef5e72c21f0615fbed560be5b8fa9 Author: Ingo Molnar Date: Tue Apr 28 10:11:24 2015 +0200 x86/fpu, crypto x86/serpent_avx: Simplify the serpent_init() xfeature checks Use the new 'cpu_has_xfeatures()' function to query AVX CPU support. This has the following advantages to the driver: - Decouples the driver from FPU internals: it's now only using . - Removes detection complexity from the driver, no more raw XGETBV instruction - Shrinks the code a bit. - Standardizes feature name error message printouts across drivers There are also advantages to the x86 FPU code: once all drivers are decoupled from internals we can move them out of common headers and we'll also be able to remove xcr.h. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/crypto/serpent_avx_glue.c | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) commit 4eecd2616d6a6e91b57659281ca6bf243264f8db Author: Ingo Molnar Date: Tue Apr 28 10:11:24 2015 +0200 x86/fpu, crypto x86/twofish_avx: Simplify the twofish_init() xfeature checks Use the new 'cpu_has_xfeatures()' function to query AVX CPU support. This has the following advantages to the driver: - Decouples the driver from FPU internals: it's now only using . - Removes detection complexity from the driver, no more raw XGETBV instruction - Shrinks the code a bit. - Standardizes feature name error message printouts across drivers There are also advantages to the x86 FPU code: once all drivers are decoupled from internals we can move them out of common headers and we'll also be able to remove xcr.h. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/crypto/twofish_avx_glue.c | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) commit 7bc371faa9cd661589d13575cd48aa168e04e208 Author: Ingo Molnar Date: Tue Apr 28 10:11:24 2015 +0200 x86/fpu, crypto x86/camellia_aesni_avx2: Simplify the camellia_aesni_init() xfeature checks Use the new 'cpu_has_xfeatures()' function to query AVX CPU support. This has the following advantages to the driver: - Decouples the driver from FPU internals: it's now only using . - Removes detection complexity from the driver, no more raw XGETBV instruction - Shrinks the code a bit. - Standardizes feature name error message printouts across drivers There are also advantages to the x86 FPU code: once all drivers are decoupled from internals we can move them out of common headers and we'll also be able to remove xcr.h. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/crypto/camellia_aesni_avx2_glue.c | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) commit 70d51eb65ddf53a00e6801c2ee541a7219e5685a Author: Ingo Molnar Date: Tue Apr 28 10:11:24 2015 +0200 x86/fpu, crypto x86/sha256_ssse3: Simplify the sha256_ssse3_mod_init() xfeature checks Use the new 'cpu_has_xfeatures()' function to query AVX CPU support. This has the following advantages to the driver: - Decouples the driver from FPU internals: it's now only using . - Removes detection complexity from the driver, no more raw XGETBV instruction - Shrinks the code a bit. - Standardizes feature name error message printouts across drivers There are also advantages to the x86 FPU code: once all drivers are decoupled from internals we can move them out of common headers and we'll also be able to remove xcr.h. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/crypto/sha256_ssse3_glue.c | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) commit ce4f5f9b65ae3d630e375b5e406feca31f682886 Author: Ingo Molnar Date: Tue Apr 28 09:59:44 2015 +0200 x86/fpu, crypto x86/camellia_aesni_avx: Simplify the camellia_aesni_init() xfeature checks Use the new 'cpu_has_xfeatures()' function to query AVX CPU support. This has the following advantages to the driver: - Decouples the driver from FPU internals: it's now only using . - Removes detection complexity from the driver, no more raw XGETBV instruction - Shrinks the code a bit: text data bss dec hex filename 2128 2896 0 5024 13a0 camellia_aesni_avx_glue.o.before 2067 2896 0 4963 1363 camellia_aesni_avx_glue.o.after - Standardizes feature name error message printouts across drivers There are also advantages to the x86 FPU code: once all drivers are decoupled from internals we can move them out of common headers and we'll also be able to remove xcr.h. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/crypto/camellia_aesni_avx_glue.c | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) commit 91969d690f594f22c15055daf89cecd33584d65e Author: Ingo Molnar Date: Tue Apr 28 09:46:04 2015 +0200 x86/fpu: Move xfeature type enumeration to fpu/types.h So xsave.h is an internal header that FPU using drivers commonly include, to get access to the xstate feature names, amongst other things. Move these type definitions to fpu/fpu.h to allow simplification of FPU using driver code. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/types.h | 28 ++++++++++++++++++++++++++++ arch/x86/include/asm/fpu/xstate.h | 28 ---------------------------- 2 files changed, 28 insertions(+), 28 deletions(-) commit 677b98bdd5b93d89ad58b8a4679db086dfbaa854 Author: Ingo Molnar Date: Tue Apr 28 09:40:26 2015 +0200 x86/fpu: Enumerate xfeature bits Transform the xstate masks into an enumerated list of xfeature bits. This removes the hard coding of XFEATURES_NR_MAX. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/xstate.h | 38 ++++++++++++++++++++++++++------------ 1 file changed, 26 insertions(+), 12 deletions(-) commit 33588b52228f6e94e970a05ead10f524f363ee44 Author: Ingo Molnar Date: Tue Apr 28 09:17:26 2015 +0200 x86/fpu: Simplify print_xstate_features() We do a boot time printout of xfeatures in print_xstate_features(), simplify this code to make use of the recently introduced cpu_has_xfeature() method. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/xstate.c | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) commit 5b07343034ec9ebb0d443743c7381b25875d0067 Author: Ingo Molnar Date: Tue Apr 28 08:51:17 2015 +0200 x86/fpu: Introduce cpu_has_xfeatures(xfeatures_mask, feature_name) A lot of FPU using driver code is querying complex CPU features to be able to figure out whether a given set of xstate features is supported by the CPU or not. Introduce a simplified API function that can be used on any CPU type to get this information. Also add an error string return pointer, so that the driver can print a meaningful error message with a standardized feature name. Also mark xfeatures_mask as __read_only. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/api.h | 9 +++++++ arch/x86/kernel/fpu/xstate.c | 53 +++++++++++++++++++++++++++++++++++++++++- 2 files changed, 61 insertions(+), 1 deletion(-) commit 62784854502895321d100b1004b486131b9dd286 Author: Ingo Molnar Date: Tue Apr 28 08:46:23 2015 +0200 x86/fpu: Rename fpu/xsave.c to fpu/xstate.c Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/Makefile | 2 +- arch/x86/kernel/fpu/xsave.c | 714 ------------------------------------------- arch/x86/kernel/fpu/xstate.c | 714 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 715 insertions(+), 715 deletions(-) commit 669ebabb79906302ba6e6922a683893788a134e8 Author: Ingo Molnar Date: Tue Apr 28 08:41:33 2015 +0200 x86/fpu: Rename fpu/xsave.h to fpu/xstate.h 'xsave' is an x86 instruction name to most people - but xsave.h is about a lot more than just the XSAVE instruction: it includes definitions and support, both internal and external, related to xstate and xfeatures support. As a first step in cleaning up the various xstate uses rename this header to 'fpu/xstate.h' to better reflect what this header file is about. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/crypto/camellia_aesni_avx2_glue.c | 2 +- arch/x86/crypto/camellia_aesni_avx_glue.c | 2 +- arch/x86/crypto/cast5_avx_glue.c | 2 +- arch/x86/crypto/cast6_avx_glue.c | 2 +- arch/x86/crypto/serpent_avx2_glue.c | 2 +- arch/x86/crypto/serpent_avx_glue.c | 2 +- arch/x86/crypto/sha-mb/sha1_mb.c | 2 +- arch/x86/crypto/sha1_ssse3_glue.c | 2 +- arch/x86/crypto/sha256_ssse3_glue.c | 2 +- arch/x86/crypto/sha512_ssse3_glue.c | 2 +- arch/x86/crypto/twofish_avx_glue.c | 2 +- arch/x86/include/asm/fpu/internal.h | 2 +- arch/x86/include/asm/fpu/xsave.h | 254 ----------------------------- arch/x86/include/asm/fpu/xstate.h | 254 +++++++++++++++++++++++++++++ arch/x86/kvm/cpuid.c | 2 +- 15 files changed, 267 insertions(+), 267 deletions(-) commit b16529004f5cc0debf8073d21b560a4677a03a2a Author: Ingo Molnar Date: Mon Apr 27 10:08:39 2015 +0200 x86/fpu: Optimize fpu_copy() some more on lazy switching systems The current fpu_copy() code on lazy switching CPUs always saves into the current fpstate and then copies it over into the child context: preempt_disable(); if (!copy_fpregs_to_fpstate(src_fpu)) fpregs_deactivate(src_fpu); preempt_enable(); memcpy(&dst_fpu->state, &src_fpu->state, xstate_size); That memcpy() can be avoided on all lazy switching setups except really old FNSAVE-only systems: change fpu_copy() to directly save into the child context, for both the lazy and the eager context switching case. Note that we still have to do a memcpy() back into the parent context in the FNSAVE case, but this won't be executed on the majority of x86 systems that got built in the last 10 years or so. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/core.c | 35 +++++++++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 8 deletions(-) commit 68271c6ae726d7ab51e39b7342c838761bf0a25c Author: Ingo Molnar Date: Mon Apr 27 09:59:11 2015 +0200 x86/fpu: Optimize fpu_copy() Optimize fpu_copy() a bit by expanding the ->fpstate_active == 1 portion of fpu__save() into it. ( The main purpose of this change is to enable another, larger optimization that will be done in the next patch. ) Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/core.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 48c4717f30cc1f83d02f045c3b47a2885863bff2 Author: Ingo Molnar Date: Mon Apr 27 09:45:12 2015 +0200 x86/fpu: Optimize fpu__save() So fpu__save() does this currently: copy_fpregs_to_fpstate(fpu); if (!use_eager_fpu()) fpregs_deactivate(fpu); ... which deactivates the FPU on lazy switching systems unconditionally. Both usecases of fpu__save() use this function to save the FPU state into a fpstate: fork()/clone() and math error signal handling. The unconditional disabling of FPU registers in the lazy switching case is probably a mistaken conversion of old FNSAVE code (that had to disable FPU registers). So speed up this code by only disabling FPU registers when absolutely necessary: when indicated by the copy_fpregs_to_fpstate() return code: if (!copy_fpregs_to_fpstate(fpu)) fpregs_deactivate(fpu); Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/core.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit fea435a2027a88407181c387f62daabf30bb5ea7 Author: Ingo Molnar Date: Mon Apr 27 09:38:21 2015 +0200 x86/fpu: Simplify fpu__save() Factor out a common call. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/core.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit 9f876d67663c8412a386321d94b17b68105b13ac Author: Ingo Molnar Date: Mon Apr 27 09:26:41 2015 +0200 x86/fpu: Eliminate __save_fpu() The current implementation of __save_fpu(): if (use_xsave()) { xsave_state(&fpu->state.xsave); } else { fpu_fxsave(fpu); } Is actually a simplified version of copy_fpregs_to_fpstate(), if use_eager_fpu() is true. But all call sites of __save_fpu() call it only it when use_eager_fpu() is true. So we can eliminate __save_fpu() altogether and use the standard copy_fpregs_to_fpstate() function. This cleans up the code by making it use fewer variants of FPU register saving. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/core.c | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) commit 72ee6f87adcb7b7bdb71cc81c22858811ee1a069 Author: Ingo Molnar Date: Mon Apr 27 09:23:43 2015 +0200 x86/fpu: Simplify __save_fpu() __save_fpu() has this pattern: if (unlikely(system_state == SYSTEM_BOOTING)) xsave_state_booting(&fpu->state.xsave); else xsave_state(&fpu->state.xsave); ... but it does not actually get called during system bootup. So remove the complication and always call xsave_state(). To make sure this assumption is correct, add a WARN_ONCE() debug check to xsave_state(). Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/xsave.h | 2 ++ arch/x86/kernel/fpu/core.c | 5 +---- 2 files changed, 3 insertions(+), 4 deletions(-) commit 32b49b3c83cad1ba60494a00dad2f511a647fb5a Author: Ingo Molnar Date: Mon Apr 27 08:58:45 2015 +0200 x86/fpu: Factor out FPU hw activation/deactivation We have repeat patterns of: if (!use_eager_fpu()) clts(); ... to activate FPU registers, and: if (!use_eager_fpu()) stts(); ... to deactivate them. Encapsulate these in: __fpregs_activate_hw(); __fpregs_activate_hw(); and use them accordingly. Doing this synchronizes the idiom with the fpu->fpregs_active software-flag's handling functions, creating clear patterns of: __fpregs_activate_hw(); __fpregs_activate(fpu); etc., which improves readability. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 32 ++++++++++++++++++++++++-------- arch/x86/kernel/fpu/core.c | 7 +++---- 2 files changed, 27 insertions(+), 12 deletions(-) commit 67ee658e6fb8611a64dd8406b0081b1fba9dec1b Author: Ingo Molnar Date: Mon Apr 27 07:22:58 2015 +0200 x86/fpu: Rename fpu__unlazy_stopped() to fpu__activate_stopped() In line with the fpstate_activate() change, name fpu__unlazy_stopped() in a similar fashion as well: its purpose is to make the fpstate of a stopped task the current and active FPU context, which may require unlazying and initialization. The unlazying is just part of the job, the main concept is to make the fpstate active. Also clarify the function's description to clarify its exact usage and the background behind it all. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/core.c | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) commit c4d72e2db3a36bf560b506df8a3490f140aeae26 Author: Ingo Molnar Date: Mon Apr 27 07:18:17 2015 +0200 x86/fpu: Simplify fpstate_init_curr() usage Now that fpstate_init_curr() is not doing implicit allocations anymore, almost all uses of it involve a very simple pattern: if (!fpu->fpstate_active) fpstate_init_curr(fpu); which is basically activating the FPU fpstate if it was not active before. So propagate the check into the function itself, and rename the function according to its new purpose: fpu__activate_curr(fpu); Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 2 +- arch/x86/kernel/fpu/core.c | 21 +++++++++++---------- arch/x86/kernel/fpu/xsave.c | 3 +-- arch/x86/kvm/x86.c | 3 +-- arch/x86/math-emu/fpu_entry.c | 3 +-- 5 files changed, 15 insertions(+), 17 deletions(-) commit 0ee6a5172573aea06ef41f4e48737dcfab0099bb Author: Ingo Molnar Date: Mon Apr 27 06:58:22 2015 +0200 x86/fpu, kvm: Simplify fx_init() Now that fpstate_init() cannot fail the error return of fx_init() has lost its purpose. Eliminate the error return and propagate this change to all callers. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/kvm_host.h | 2 -- arch/x86/kvm/x86.c | 14 +++----------- 2 files changed, 3 insertions(+), 13 deletions(-) commit 2fb29fc7c690d3d318471c42a62a05153d433cc1 Author: Ingo Molnar Date: Mon Apr 27 06:55:54 2015 +0200 x86/fpu: Simplify fpu__unlazy_stopped() error handling Now that FPU contexts are always allocated, fpu__unlazy_stopped() cannot fail. Remove its error return and propagate the changes to the callers. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/core.c | 48 +++++++++++++--------------------------------- 1 file changed, 13 insertions(+), 35 deletions(-) commit e62bb3d894d312a37009fb07dc83fd1cc7bed37c Author: Ingo Molnar Date: Mon Apr 27 06:50:29 2015 +0200 x86/fpu: Rename fpstate_alloc_init() to fpstate_init_curr() Now that there are no FPU context allocations, rename fpstate_alloc_init() to fpstate_init_curr(), to signal that it initializes the fpstate and marks it active, for the current task. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 2 +- arch/x86/kernel/fpu/core.c | 8 ++++---- arch/x86/kernel/fpu/xsave.c | 2 +- arch/x86/kvm/x86.c | 2 +- arch/x86/math-emu/fpu_entry.c | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) commit 91d93d0e206432b9fe4c88e64577b93aef018f98 Author: Ingo Molnar Date: Mon Apr 27 06:46:52 2015 +0200 x86/fpu: Remove failure return from fpstate_alloc_init() Remove the failure code and propagate this down to callers. Note that this function still has an 'init' aspect, which must be called. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 2 +- arch/x86/kernel/fpu/core.c | 37 +++++++------------------------------ arch/x86/kernel/fpu/xsave.c | 4 ++-- arch/x86/kvm/x86.c | 4 ++-- arch/x86/math-emu/fpu_entry.c | 8 ++------ 5 files changed, 14 insertions(+), 41 deletions(-) commit c4d6ee6e2e52ec604cc1d76877791f8e8f5c79b5 Author: Ingo Molnar Date: Mon Apr 27 05:52:40 2015 +0200 x86/fpu: Remove failure paths from fpstate-alloc low level functions Now that we always allocate the FPU context as part of task_struct there's no need for separate allocations - remove them and their primary failure handling code. ( Note that there's still secondary error codes that have become superfluous, those will be removed in separate patches. ) Move the somewhat misplaced setup_xstate_comp() call to the core. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 4 --- arch/x86/kernel/fpu/core.c | 51 ++----------------------------------- arch/x86/kernel/fpu/init.c | 1 + arch/x86/kernel/process.c | 10 -------- arch/x86/kvm/x86.c | 11 -------- 5 files changed, 3 insertions(+), 74 deletions(-) commit 7366ed771f6ed95e4c4525c335722888a83b4b6c Author: Ingo Molnar Date: Mon Apr 27 04:19:39 2015 +0200 x86/fpu: Simplify FPU handling by embedding the fpstate in task_struct (again) So 6 years ago we made the FPU fpstate dynamically allocated: aa283f49276e ("x86, fpu: lazy allocation of FPU area - v5") 61c4628b5386 ("x86, fpu: split FPU state from task struct - v5") In hindsight this was a mistake: - it complicated context allocation failure handling, such as: /* kthread execs. TODO: cleanup this horror. */ if (WARN_ON(fpstate_alloc_init(fpu))) force_sig(SIGKILL, tsk); - it caused us to enable irqs in fpu__restore(): local_irq_enable(); /* * does a slab alloc which can sleep */ if (fpstate_alloc_init(fpu)) { /* * ran out of memory! */ do_group_exit(SIGKILL); return; } local_irq_disable(); - it (slightly) slowed down task creation/destruction by adding slab allocation/free pattens. - it made access to context contents (slightly) slower by adding one more pointer dereference. The motivation for the dynamic allocation was two-fold: - reduce memory consumption by non-FPU tasks - allocate and handle only the necessary amount of context for various XSAVE processors that have varying hardware frame sizes. These days, with glibc using SSE memcpy by default and GCC optimizing for SSE/AVX by default, the scope of FPU using apps on an x86 system is much larger than it was 6 years ago. For example on a freshly installed Fedora 21 desktop system, with a recent kernel, all non-kthread tasks have used the FPU shortly after bootup. Also, even modern embedded x86 CPUs try to support the latest vector instruction set - so they'll too often use the larger xstate frame sizes. So remove the dynamic allocation complication by embedding the FPU fpstate in task_struct again. This should make the FPU a lot more accessible to all sorts of atomic contexts. We could still optimize for the xstate frame size in the future, by moving the state structure to the last element of task_struct, and allocating only a part of that. This change is kept minimal by still keeping the ctx_alloc()/free() routines (that now do nothing substantial) - we'll remove them in the following patches. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 34 ++++++++++++------------ arch/x86/include/asm/fpu/types.h | 2 +- arch/x86/kernel/fpu/core.c | 52 ++++++++++++++----------------------- arch/x86/kernel/fpu/xsave.c | 12 ++++----- arch/x86/kernel/traps.c | 2 +- arch/x86/kvm/x86.c | 14 +++++----- arch/x86/math-emu/fpu_aux.c | 2 +- arch/x86/math-emu/fpu_entry.c | 4 +-- arch/x86/math-emu/fpu_system.h | 2 +- arch/x86/mm/mpx.c | 2 +- 10 files changed, 57 insertions(+), 69 deletions(-) commit 1bc6b056d8f90f0a710ff1201964c1fffc9ddd3c Author: Ingo Molnar Date: Mon Apr 27 03:32:18 2015 +0200 x86/fpu: Optimize copy_fpregs_to_fpstate() by removing the FNCLEX synchronization with FP exceptions So we have the following ancient code in copy_fpregs_to_fpstate(): if (unlikely(fpu->state->fxsave.swd & X87_FSW_ES)) { asm volatile("fnclex"); goto drop_fpregs; } which clears pending FPU exceptions and then drops registers, which causes the next FP instruction of the saved context to re-load the saved FPU state, with all pending exceptions marked properly, and will re-start the exception handling mechanism in the hardware. Since FPU exceptions are always issued on instruction boundaries, in particular on the next FP instruction following the exception generating instruction, there's no fear of getting an FP exception asynchronously. They were truly asynchronous back in the IRQ13 days, when the FPU was a weird and expensive co-processor that did its own processing, and we had to synchronize with them, but that code is not working anymore: we don't have IRQ13 mapped in the IDT anymore. With the introduction of optimized XSAVE support there's a new complication: if the xstate features bit indicates that a particular state component is unused (in 'init state'), then the hardware does not guarantee that the XSAVE (et al) instruction keeps the underlying FPU state image in memory valid and current. In practice this means that the hardware won't write it, and the exceptions flag in the state might be an older version, with it still being set. This meant that we had to check the xfeatures flag as well, adding another memory load and branch to a critical hot path of the scheduler. So optimize all this by removing both the old quirk and the new check, and straight-line optimizing the most common cases with likely() hints. Quite a bit of code gets removed this way: arch/x86/kernel/process_64.o: text data bss dec filename 5484 8 0 5492 process_64.o.before 5416 8 0 5424 process_64.o.after Now there's also a chance that some weird behavior or erratum was masked by our IRQ13 handling quirk (or that I misunderstood the nature of the quirk), and that this change triggers some badness. There's no real good way to protect against that possibility other than keeping this change well isolated, well commented and well bisectable. If you bisect a weird (or not so weird) breakage to this commit then please let us know! Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 40 ++++++++++--------------------------- 1 file changed, 10 insertions(+), 30 deletions(-) commit 4f83634710a1a7024b8acaa3b589dc5d8ca03ab0 Author: Ingo Molnar Date: Mon Apr 27 02:53:16 2015 +0200 x86/fpu: Rename fpu_save_init() to copy_fpregs_to_fpstate() So fpu_save_init() is a historic name that got its name when the only way the FPU state was FNSAVE, which cleared (well, destroyed) the FPU state after saving it. Nowadays the name is misleading, because ever since the introduction of FXSAVE (and more modern FPU saving instructions) the 'we need to reload the FPU state' part is only true if there's a pending FPU exception [*], which is almost never the case. So rename it to copy_fpregs_to_fpstate() to make it clear what's happening. Also add a few comments about why we cannot keep registers in certain cases. Also clean up the control flow a bit, to make it more apparent when we are dropping/keeping FP registers, and to optimize the common case (of keeping fpregs) some more. [*] Probably not true anymore, modern instructions always leave the FPU state intact, even if exceptions are pending: because pending FP exceptions are posted on the next FP instruction, not asynchronously. They were truly asynchronous back in the IRQ13 case, and we had to synchronize with them, but that code is not working anymore: we don't have IRQ13 mapped in the IDT anymore. But a cleanup patch is obviously not the place to change subtle behavior. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 34 ++++++++++++++++++++++++---------- arch/x86/kernel/fpu/core.c | 4 ++-- arch/x86/kernel/traps.c | 2 +- arch/x86/kvm/x86.c | 2 +- arch/x86/mm/mpx.c | 2 +- 5 files changed, 29 insertions(+), 15 deletions(-) commit 910665882fc00dc5bab0f846fe707174ff289615 Author: Ingo Molnar Date: Sun Apr 26 16:57:55 2015 +0200 x86/fpu: Uninline the irq_ts_save()/restore() functions Especially the irq_ts_save() function is pretty bloaty, generating over a dozen instructions, so uninline them. Even though the API is used rarely, the space savings are measurable: text data bss dec hex filename 13331995 2572920 1634304 17539219 10ba093 vmlinux.before 13331739 2572920 1634304 17538963 10b9f93 vmlinux.after ( This also allows the removal of an include file inclusion from fpu/api.h, speeding up the kernel build slightly. ) Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/api.h | 27 ++------------------------- arch/x86/kernel/fpu/core.c | 30 ++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 25 deletions(-) commit 952f07ecbd4d9bac77c003ba136f8ee8ce631591 Author: Ingo Molnar Date: Sun Apr 26 16:56:05 2015 +0200 x86/fpu: Move various internal function prototypes to fpu/internal.h There are a number of FPU internal function prototypes and an inline function in fpu/api.h, mostly placed so historically as the code grew over the years. Move them over into fpu/internal.h where they belong. (Add sched.h include to stackprotector.h which incorrectly relied on getting it from fpu/api.h.) fpu/api.h is now a pure file that only contains FPU APIs intended for driver use. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/api.h | 31 +------------------------------ arch/x86/include/asm/fpu/internal.h | 25 +++++++++++++++++++++++++ arch/x86/include/asm/stackprotector.h | 2 ++ arch/x86/kernel/cpu/bugs.c | 2 +- arch/x86/kvm/vmx.c | 2 +- arch/x86/math-emu/fpu_entry.c | 2 +- arch/x86/power/cpu.c | 1 + drivers/lguest/x86/core.c | 2 +- 8 files changed, 33 insertions(+), 34 deletions(-) commit d63e79b114c0208bc2b7712c879568e180909d60 Author: Ingo Molnar Date: Sun Apr 26 12:07:18 2015 +0200 x86/fpu: Uninline kernel_fpu_begin()/end() Both inline functions call an inline function unconditionally, so we already pay the function call based clobbering cost. Uninline them. This saves quite a bit of code in various performance sensitive code paths: text data bss dec hex filename 13321334 2569888 1634304 17525526 10b6b16 vmlinux.before 13320246 2569888 1634304 17524438 10b66d6 vmlinux.after Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/api.h | 15 ++------------- arch/x86/kernel/fpu/core.c | 15 +++++++++++++++ 2 files changed, 17 insertions(+), 13 deletions(-) commit e229537543fba3de4026cb6e12b75946d9f3430f Author: Ingo Molnar Date: Sun Apr 26 16:43:43 2015 +0200 x86/fpu: Move fpu__save() to fpu/internals.h It's an internal method, not a driver API, so move it from fpu/api.h to fpu/internal.h. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/api.h | 2 -- arch/x86/include/asm/fpu/internal.h | 2 ++ 2 files changed, 2 insertions(+), 2 deletions(-) commit ae02679c566fb1c2f76d3c6dffef977a9d69474a Author: Ingo Molnar Date: Sun Apr 26 15:36:46 2015 +0200 x86/fpu: Add more comments to the FPU init code Extend the comments of the FPU init code, and fix old ones. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/init.c | 70 ++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 58 insertions(+), 12 deletions(-) commit 41e78410d89cc0e60d90e6a62a060d5d4084accb Author: Ingo Molnar Date: Sun Apr 26 15:32:40 2015 +0200 x86/fpu: Reorder init methods Reorder init methods in order of their relationship and usage, to form coherent blocks throughout the whole file. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/init.c | 96 +++++++++++++++++++++++----------------------- 1 file changed, 49 insertions(+), 47 deletions(-) commit 7638b74b56640d9c266b5b3622109128e30bdc1a Author: Ingo Molnar Date: Sun Apr 26 15:23:37 2015 +0200 x86/fpu: Rename fpstate_xstate_init_size() to fpu__init_system_xstate_size_legacy() To bring it in line with the other init_system*() methods. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/init.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c66e3f28237199629358e9e5a76973c400a54041 Author: Ingo Molnar Date: Sun Apr 26 15:12:44 2015 +0200 x86/fpu: Remove the extra fpu__detect() layer Now that fpu__detect() has become an empty layer around fpu__init_system(), eliminate it and make fpu__init_system() the main system initialization routine. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/processor.h | 1 - arch/x86/kernel/cpu/common.c | 2 +- arch/x86/kernel/fpu/init.c | 6 ------ 3 files changed, 1 insertion(+), 8 deletions(-) commit dd863880acd24a23d71576e402f999375d0b4b80 Author: Ingo Molnar Date: Sun Apr 26 15:07:18 2015 +0200 x86/fpu: Move fpu__init_system_early_generic() out of fpu__detect() Move the fpu__init_system_early_generic() call into fpu__init_system(), which hosts all the system init calls. Expose fpu__init_system() to other modules - this will be our main and only system init function. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 1 + arch/x86/kernel/fpu/init.c | 16 ++++++++-------- 2 files changed, 9 insertions(+), 8 deletions(-) commit 71eb3c6d155c54fb74d2f95166162296a8f9af12 Author: Ingo Molnar Date: Tue May 5 10:54:04 2015 +0200 x86/fpu: Make check_fpu() init ordering independent check_fpu() currently relies on being called early in the init sequence, when CR0::TS has not been set up yet. Save/restore CR0::TS across this function, to make it invariant to init ordering. This way we'll be able to move the generic FPU setup routines earlier in the init sequence. Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/bugs.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 0bf23f3d6cadb2f0961d0ea370371cf35480bcb5 Author: Ingo Molnar Date: Sun Apr 26 14:48:08 2015 +0200 x86/fpu: Factor out FPU bug checks into fpu/bugs.c Create separate fpu/bugs.c code so that if we read generic FPU code we don't have to wade through all the bugcheck related code first. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/Makefile | 2 +- arch/x86/kernel/fpu/bugs.c | 64 ++++++++++++++++++++++++++++++++++++++++++++ arch/x86/kernel/fpu/init.c | 60 ----------------------------------------- 3 files changed, 65 insertions(+), 61 deletions(-) commit e83ab9ad97a702917cb018e6c5a7d1176ff95305 Author: Ingo Molnar Date: Sun Apr 26 14:43:44 2015 +0200 x86/fpu: Move !FPU check ingo fpu__init_system_early_generic() There's a !FPU related sanity check in fpu__init_cpu_generic(), which is executed on every CPU onlining - even though we should do this only once, and during system init. Move this check to fpu__init_system_early_generic(). Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/init.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) commit 2e2f3da7714f323a0db65baa19b2b8110cc23f95 Author: Ingo Molnar Date: Sun Apr 26 14:40:54 2015 +0200 x86/fpu: Factor out fpu__init_system_early_generic() Move the generic bits of fpu__detect() into fpu__init_system_early_generic(). We'll move some other code here too in a followup patch. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/init.c | 41 ++++++++++++++++++++++++----------------- 1 file changed, 24 insertions(+), 17 deletions(-) commit 7218e8b723dc9ceb71cf2fbd3d019e9e11b7d3cf Author: Ingo Molnar Date: Sun Apr 26 14:35:54 2015 +0200 x86/fpu: Factor out fpu__init_system_generic() Factor out the generic bits from fpu__init_system(). Rename mxcsr_feature_mask_init() to fpu__init_system_mxcsr() to bring it in line with the rest of the nomenclature. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/init.c | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) commit b11316ed9ed9e453562d9f89a39d344331a3ec1d Author: Ingo Molnar Date: Sun Apr 26 14:32:34 2015 +0200 x86/fpu: Factor out fpu__init_cpu_generic() Factor out the generic bits from fpu__init_cpu(), to create a flat sequence of per CPU initialization function calls: fpu__init_cpu_generic(); fpu__init_cpu_xstate(); fpu__init_cpu_ctx_switch(); Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/init.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) commit 21c4cd108a1b144ad645355bfee1f8be937f03a2 Author: Ingo Molnar Date: Sun Apr 26 14:27:17 2015 +0200 x86/fpu: Simplify fpu__cpu_init() After the latest round of cleanups, fpu__cpu_init() has become a simple call to fpu__init_cpu(). Rename fpu__init_cpu() to fpu__cpu_init() and remove the extra layer. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 2 +- arch/x86/kernel/cpu/common.c | 4 ++-- arch/x86/kernel/fpu/init.c | 5 ----- arch/x86/xen/enlighten.c | 2 +- 4 files changed, 4 insertions(+), 9 deletions(-) commit 7202ab46f7392265c1ecbf03f600393bf32a8bdf Author: Ingo Molnar Date: Fri Apr 24 12:17:57 2015 +0200 x86/fpu: Remove fpu__init_cpu_ctx_switch() call from fpu__init_system() We are now doing the fpu__init_cpu_ctx_switch() call from fpu__init_cpu(), so there's no need to call it from fpu__init_system() anymore. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/init.c | 1 - 1 file changed, 1 deletion(-) commit 067051ccd209623cb56152cf4cb06616ee2bcc5c Author: Ingo Molnar Date: Sat Apr 25 08:27:44 2015 +0200 x86/fpu: Do system-wide setup from fpu__detect() fpu__cpu_init() is called on every CPU, so it is the wrong place to call fpu__init_system() from. Call it from fpu__detect(): this is early CPU init code, but we already have CPU features detected, so we can call the system-wide FPU init code from here. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/init.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3960fccf2e22c3b3d61bd5a45b6172e66e660d8b Author: Ingo Molnar Date: Sat Apr 25 08:27:44 2015 +0200 x86/fpu: Call fpu__init_cpu_ctx_switch() from fpu__init_cpu() fpu__init_cpu() is currently called from fpu__init_system(), which is the wrong place for it: call it from the proper high level per CPU init function, fpu__init_cpu(). Note, we still keep the old call site as well, because it depends on having proper CR0::TS setup. We'll fix this in the next patch. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/init.c | 1 + 1 file changed, 1 insertion(+) commit 997578b14c2730226a804d53ce681d3506f2f876 Author: Ingo Molnar Date: Sun Apr 26 10:35:57 2015 +0200 x86/fpu: Move the fpstate_xstate_init_size() call into fpu__init_system() The fpstate_xstate_init_size() function sets up a basic xstate_size, called during fpu__detect() currently. Its real dependency is to be called before fpu__init_system_xstate(). So move the function call site into fpu__init_system(), to right before the fpu__init_system_xstate() call. Also add a once-per-boot flag to fpstate_xstate_init_size(), we'll remove this quirk later once we've cleaned up the init dependencies. This moves the two related functions closer to each other and makes them both part of the _init_system() functionality. Currently we do the fpstate_xstate_init_size() Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/init.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) commit 530b37e43ce3f0bb9969308c0a64901b442f8e0a Author: Ingo Molnar Date: Sat Apr 25 08:27:44 2015 +0200 x86/fpu: Do CLTS fpu__init_system() mxcsr_feature_mask_init() depends on TS being cleared, as it executes an FXSAVE instruction. After later changes we will move the TS setup into fpu__init_cpu(), which will interact with this - so clear the TS flag explicitly. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/init.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 011545b570be22191047d07299515c1d711eeb38 Author: Ingo Molnar Date: Sun Apr 26 08:28:31 2015 +0200 x86/fpu: Split fpu__ctx_switch_init() into _cpu() and _system() portions So fpu__ctx_switch_init() has two aspects: a once per bootup functionality that sets up a capability flag, and a per CPU functionality that sets CR0::TS. Split the function. Note that at this stage we still have duplicate calls into these methods, as both the _system() and the _cpu() methods are run on all CPUs, with lower level on_boot_cpu flags filtering out the duplicates where needed. So add TS flag clearing as well, to handle the aftermath of early CPU init sequences that might call in without having eager-fpu set - don't assume the TS flag is cleared. Calling each from its respective init level will happen later on. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/init.c | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) commit 064e51e3c8aee6cfb03ab75e9f9551db3924eb07 Author: Ingo Molnar Date: Sat Apr 25 08:48:54 2015 +0200 x86/fpu: Clean up eager_fpu_init() and rename it to fpu__ctx_switch_init() It's not an xsave specific function anymore, so rename it accordingly and also clean it up a bit: - remove the obsolete __init_refok, as the code paths are not mixed anymore - rename it from eager_fpu_init() to fpu__ctx_switch_init() - remove stray 'return;' - make it static to its only user Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/init.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit 6f5d265afffb5968e25a8951a085c0467558c073 Author: Ingo Molnar Date: Sat Apr 25 20:11:05 2015 +0200 x86/fpu: Move eager_fpu_init() to fpu/init.c Move eager_fpu_init() and the 'eagerfpu' boot parameter handling function to the generic FPU init file: it's generic FPU functionality. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/init.c | 48 +++++++++++++++++++++++++++++++++++++++++++++ arch/x86/kernel/fpu/xsave.c | 48 --------------------------------------------- 2 files changed, 48 insertions(+), 48 deletions(-) commit 89abbe01a46a9f47f8d07e2817704bfcbd8f6f9e Author: Ingo Molnar Date: Sat Apr 25 09:02:51 2015 +0200 x86/fpu: Move all eager-fpu setup code to eager_fpu_init() The FPU context switch type (lazy or eager) setup code is split into two places currently - move it all to eager_fpu_init(). Note that the code we move will now be executed on non-xstate CPUs as well, but this should be safe: both xfeatures_mask and cpu_has_xsaveopt is 0 there. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/xsave.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) commit a5cb56e9a68aa0e19281ad93f1fce6e6802e3206 Author: Ingo Molnar Date: Sat Apr 25 08:42:47 2015 +0200 x86/fpu: Remove setup_init_fpu_buf() call from eager_fpu_init() It's a pure xstate method now, no need for this duplicate call. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/xsave.c | 2 -- 1 file changed, 2 deletions(-) commit 2507e1c03f577173d613d6728329eb220724c577 Author: Ingo Molnar Date: Sat Apr 25 08:35:53 2015 +0200 x86/fpu: Set up the legacy FPU init image from fpu__init_system() The legacy FPU init image is used on older CPUs who don't run xstate init. But the init code is called within setup_init_fpu_buf(), an xstate method. Move this legacy init out of the xstate code and put it into fpu/init.c. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/init.c | 6 ++++++ arch/x86/kernel/fpu/xsave.c | 6 ------ 2 files changed, 6 insertions(+), 6 deletions(-) commit 429ced50a0e5f863f95b100749043451e1968c4c Author: Ingo Molnar Date: Sat Apr 25 08:21:08 2015 +0200 x86/fpu: Do fpu__init_system_xstate only from fpu__init_system() Only call xstate system setup routines from fpu__init_system(). Likewise, don't call fpu__init_cpu_xstate() from fpu__init_system(). Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/init.c | 2 -- 1 file changed, 2 deletions(-) commit c42103b22652dae50e1aaacb5c2767145027ab3e Author: Ingo Molnar Date: Sat Apr 25 06:52:53 2015 +0200 x86/fpu: Remove xsave_init() Expand fpu__init_system_xstate() and fpu__init_cpu_xstate() calls into xsave_init() calls. (This will allow us to call the proper versions in higher level FPU init code later on.) No change in functionality. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/xsave.h | 1 - arch/x86/kernel/fpu/init.c | 8 +++++--- arch/x86/kernel/fpu/xsave.c | 13 +------------ 3 files changed, 6 insertions(+), 16 deletions(-) commit 62db6871ae862fbd7f7abfebffe501b170698a8b Author: Ingo Molnar Date: Sat Apr 25 06:50:09 2015 +0200 x86/fpu: Propagate once per boot quirk into fpu__init_system_xstate() Linearize the call sequence in xsave_init(): fpu__init_system_xstate(); fpu__init_cpu_xstate(); We do this by propagating the boot-once quirk into fpu__init_system_xstate(). fpu__init_cpu_xstate() is safe to be called multiple time. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/xsave.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) commit e9dbfd673a9cc9d3ef90e3ea4e136a833dab3674 Author: Ingo Molnar Date: Sat Apr 25 06:47:24 2015 +0200 x86/fpu: Move legacy check to fpu__init_system_xstate() Now that legacy code can execute fpu__init_cpu_xstate() in xsave_init(), we can move the once per boot legacy check into fpu__init_system_xstate(), where it belongs. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/xsave.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) commit e84611fc96c67d3a073e327be44d0f9ee3e981ef Author: Ingo Molnar Date: Sat Apr 25 06:41:07 2015 +0200 x86/fpu: Move CPU capability check into fpu__init_cpu_xstate() fpu__init_system_xstate() does an FPU capability check that is better done in fpu__init_cpu_xstate(). This will allow us to call fpu__init_cpu_xstate() directly on legacy CPUs as well. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/xsave.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 55cc4678b7ee2edd3e6a9411250530eb871bc61d Author: Ingo Molnar Date: Sat Apr 25 06:26:36 2015 +0200 x86/fpu: Make the system/cpu init distinction clear in the xstate code as well Rename existing xstate init functions along the system/cpu init principles: fpu__init_system_xstate(): called once per system bootup fpu__init_cpu_xstate(): called per CPU onlining Also make the fpu__init_cpu_xstate() early code invariant: if xfeatures_mask is not set yet then don't crash but return. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 3 +++ arch/x86/kernel/fpu/xsave.c | 22 ++++++++++++++-------- 2 files changed, 17 insertions(+), 8 deletions(-) commit e35f6f14148c09ad534d122ed32722dd431ac184 Author: Ingo Molnar Date: Sat Apr 25 04:34:48 2015 +0200 x86/fpu: Split fpu__cpu_init() into early-boot and cpu-boot parts There are two kinds of FPU initialization sequences necessary to bring FPU functionality up: once per system bootup activities, such as detection, feature initialization, etc. of attributes that are shared by all CPUs in the system - and per cpu initialization sequences run when a CPU is brought online (either during bootup or during CPU hotplug onlining), such as CR0/CR4 register setting, etc. The FPU code is mixing these roles together, with no clear distinction. Start sorting this out by splitting the main FPU detection routine (fpu__cpu_init()) into two parts: fpu__init_system() for one per system init activities, and fpu__init_cpu() for the per CPU onlining init activities. Note that xstate_init() is called from both variants for the time being, because it has a dual nature as well. We'll fix that in upcoming patches. Just do the split and call it as we used to before, don't introduce any change in initialization behavior yet, beyond duplicate (and harmless) fpu__init_cpu() and xstate_init() calls - which we'll fix in later patches. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/init.c | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) commit 3e5e1267740f47b1616aff5187b668cadd950047 Author: Ingo Molnar Date: Sat Apr 25 05:08:17 2015 +0200 x86/fpu: Remove 'init_xstate_buf' bootmem allocation Make init_xstate_buf allocated statically at build time. This structure's maximum size is around 1KB - and it's allocated even on most modern embedded x86 CPUs which strive for FPU instruction set parity with desktop and server CPUs, so it's not like we can save much on smaller systems. This removes the last bootmem allocation from the FPU init path, allowing it to be called earlier in the boot sequence. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 4 ++-- arch/x86/include/asm/fpu/xsave.h | 2 +- arch/x86/kernel/fpu/xsave.c | 26 +++++++++++--------------- 3 files changed, 14 insertions(+), 18 deletions(-) commit 26b1f5d05a81a0e60eed718d2d073f050b0afc8f Author: Ingo Molnar Date: Sat Apr 25 05:27:26 2015 +0200 x86/fpu: Make setup_init_fpu_buf() run-once explicitly Remove the dependency on the init_xstate_buf == NULL check to implement once-per-bootup logic in eager_fpu_init(), by making setup_init_fpu_buf() run once per bootup explicitly. This is in preparation to make init_xstate_buf statically allocated. The various boot-once quirks in the FPU init code will be removed in a later cleanup stage. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/xsave.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) commit 966ece619eaeae9b5cb6cede7fe6303b7031a51f Author: Ingo Molnar Date: Sat Apr 25 05:04:41 2015 +0200 x86/fpu: Remove xsave_init() bootmem allocations There's only 8 xstate bits at the moment, and it's not like we can support unknown bits - so put xstate_offsets[] and xstate_sizes[] into static allocation. This is in preparation to be able to call the FPU init code earlier, when there's no bootmem available yet. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/xsave.h | 3 +++ arch/x86/kernel/fpu/xsave.c | 4 +--- 2 files changed, 4 insertions(+), 3 deletions(-) commit 6a133207587bce64efdd0fda9bea09ed994fa690 Author: Ingo Molnar Date: Sat Apr 25 04:29:26 2015 +0200 x86/fpu: Remove fpstate_xstate_init_size() boot quirk fpstate_xstate_init_size() is called in fpu__cpu_init(), which is run on every CPU, every time they are brought online. But we want to call fpstate_xstate_init_size() only once. Move it to fpu__detect(), which only runs once, on the boot CPU. Also clean up the flow of fpstate_xstate_init_size() a bit, by removing a 'return' from the middle of the function. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/init.c | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) commit 66af8e276409196abd59e33919f928e4d002d4f8 Author: Ingo Molnar Date: Fri Apr 24 14:31:27 2015 +0200 x86/fpu: Rename __thread_fpu_end() to fpregs_deactivate() Propagate the 'fpu->fpregs_active' naming to the high level function that clears it. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 14 +++++++------- arch/x86/kernel/fpu/core.c | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) commit 232f62cdd7c7162168a445cbc718a82e7f6e36c1 Author: Ingo Molnar Date: Fri Apr 24 14:30:38 2015 +0200 x86/fpu: Rename __thread_fpu_begin() to fpregs_activate() Propagate the 'fpu->fpregs_active' naming to the high level function that sets it. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 6 +++--- arch/x86/kernel/fpu/core.c | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) commit 723c58e428fbcbc9f16864edf740ec3bfaf3703c Author: Ingo Molnar Date: Fri Apr 24 14:28:01 2015 +0200 x86/fpu: Rename __thread_clear_has_fpu() to __fpregs_deactivate() Propagate the 'fpu->fpregs_active' naming to the functions that clears it. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit dfaea4e6a27afffb0cc6da7aaaae81abc127fdb3 Author: Ingo Molnar Date: Fri Apr 24 14:26:47 2015 +0200 x86/fpu: Rename __thread_set_has_fpu() to __fpregs_activate() Propagate the 'fpu->fpregs_active' naming to the functions that sets it. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit d5cea9b0af1509f170337ba8f47160d0699ff374 Author: Ingo Molnar Date: Fri Apr 24 14:19:26 2015 +0200 x86/fpu: Rename fpu->has_fpu to fpu->fpregs_active So the current code uses fpu->has_cpu to determine whether a given user FPU context is actively loaded into the FPU's registers [*] and that those registers represent the task's current FPU state. But this term is not unambiguous: especially the distinction between fpu->has_fpu, PF_USED_MATH and fpu_fpregs_owner_ctx is not clear. Increase clarity by unambigously signalling that it's about hardware registers being active right now, by renaming it to fpu->fpregs_active. ( In later patches we'll use more of the 'fpregs' naming, which will make it easier to grep for as well. ) [*] There's the kernel_fpu_begin()/end() primitive that also activates FPU hw registers as well and uses them, without touching the fpu->fpregs_active flag. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/api.h | 2 +- arch/x86/include/asm/fpu/internal.h | 12 ++++++------ arch/x86/include/asm/fpu/types.h | 2 +- arch/x86/kernel/fpu/core.c | 10 +++++----- 4 files changed, 13 insertions(+), 13 deletions(-) commit 73a3aeb3ac5312122d5a261c7acb0ab9be93857a Author: Ingo Molnar Date: Fri Apr 24 11:32:59 2015 +0200 x86/fpu: Improve the __sanitize_i387_state() documentation Improve the comments and add new ones, as this code isn't very obvious. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/xsave.c | 36 +++++++++++++++++++++++------------- 1 file changed, 23 insertions(+), 13 deletions(-) commit e783e8167ddf275782ef448eb139fafff3ac3af2 Author: Ingo Molnar Date: Fri Apr 24 11:43:47 2015 +0200 x86/fpu: Explain the AVX register layout in the xsave area The previous explanation was rather cryptic. Also transform "u32 [64]" to the more readable "u8[256]" form. No change in implementation. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/types.h | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) commit 678eaf603460180260a645de359050fd6568cf74 Author: Ingo Molnar Date: Fri Apr 24 14:48:24 2015 +0200 x86/fpu: Rename regset FPU register accessors Rename regset accessors to prefix them with 'regset_', because we want to start using the 'fpregs_active' name elsewhere. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 8 ++++---- arch/x86/kernel/fpu/core.c | 6 +++--- arch/x86/kernel/ptrace.c | 6 +++--- 3 files changed, 10 insertions(+), 10 deletions(-) commit 91a8c2a5b43fc4be4adb4bda50cd331697e289e0 Author: Ingo Molnar Date: Fri Apr 24 10:49:11 2015 +0200 x86/fpu: Clean up and fix MXCSR handling The code has the following problems: - it uses a single global 'fx_scratch' area that multiple CPUs could write into simultaneously, in theory. - it wastes 512 bytes of .data for something that is only rarely used. Fix this by moving the state buffer to the stack. Note that while this is 512 bytes, we don't ever call this function in very deep callchains, so its stack usage should not be a problem. Also add comments to explain the magic 0x0000ffbf default value. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/init.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) commit 400e4b209166dcd3e3a155401c57bdc6413bf715 Author: Ingo Molnar Date: Fri Apr 24 10:19:47 2015 +0200 x86/fpu: Rename xsave.header::xstate_bv to 'xfeatures' 'xsave.header::xstate_bv' is a misnomer - what does 'bv' stand for? It probably comes from the 'XGETBV' instruction name, but I could not find in the Intel documentation where that abbreviation comes from. It could mean 'bit vector' - or something else? But how about - instead of guessing about a weird name - we named the field in an obvious and descriptive way that tells us exactly what it does? So rename it to 'xfeatures', which is a bitmask of the xfeatures that are fpstate_active in that context structure. Eyesore like: fpu->state->xsave.xsave_hdr.xstate_bv |= XSTATE_FP; is now much more readable: fpu->state->xsave.header.xfeatures |= XSTATE_FP; Which form is not just infinitely more readable, but is also shorter as well. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 2 +- arch/x86/include/asm/fpu/types.h | 2 +- arch/x86/include/asm/user.h | 8 +++--- arch/x86/include/uapi/asm/sigcontext.h | 4 +-- arch/x86/kernel/fpu/core.c | 6 ++-- arch/x86/kernel/fpu/xsave.c | 52 +++++++++++++++++----------------- arch/x86/kvm/x86.c | 4 +-- 7 files changed, 39 insertions(+), 39 deletions(-) commit 3a54450b5ed1671a6adecf501a0b4d4c1d27235d Author: Ingo Molnar Date: Fri Apr 24 10:14:36 2015 +0200 x86/fpu: Rename 'xsave_hdr' to 'header' Code like: fpu->state->xsave.xsave_hdr.xstate_bv |= XSTATE_FP; is an eyesore, because not only is the words 'xsave' and 'state' are repeated twice times (!), but also because of the 'hdr' and 'bv' abbreviations that are pretty meaningless at a first glance. Start cleaning this up by renaming 'xsave_hdr' to 'header'. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 2 +- arch/x86/include/asm/fpu/types.h | 4 ++-- arch/x86/include/asm/fpu/xsave.h | 2 +- arch/x86/include/asm/user.h | 10 +++++----- arch/x86/include/uapi/asm/sigcontext.h | 4 ++-- arch/x86/kernel/fpu/core.c | 8 ++++---- arch/x86/kernel/fpu/xsave.c | 22 +++++++++++----------- arch/x86/kvm/x86.c | 8 ++++---- 8 files changed, 30 insertions(+), 30 deletions(-) commit 8dcea8db793150ba7d56d56f0a397260db490abe Author: Ingo Molnar Date: Fri Apr 24 10:11:24 2015 +0200 x86/fpu: Clean up regset functions Clean up various regset handlers: use the 'fpu' pointer which is available in most cases. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/core.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) commit 9254aaa0fea4e8aa4e83539c379aecb41a975ca6 Author: Ingo Molnar Date: Fri Apr 24 10:02:32 2015 +0200 x86/fpu: Move XCR0 manipulation to the FPU code proper The suspend code accesses FPU state internals, add a helper for it and isolate it. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/api.h | 1 + arch/x86/kernel/fpu/xsave.c | 12 ++++++++++++ arch/x86/power/cpu.c | 10 ++-------- 3 files changed, 15 insertions(+), 8 deletions(-) commit 84246fe4e3a0e412a9602983ba37f4e4dbebb3e8 Author: Ingo Molnar Date: Fri Apr 24 09:23:59 2015 +0200 x86/fpu: Rename 'xstate_features' to 'xfeatures_nr' The name 'xstate_features' does not tell us whether it's a bitmap or any other value. That it's a count of features is only obvious if you read the code that calculates it. Rename it to the more descriptive 'xfeatures_nr' name. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/xsave.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) commit 614df7fb8a661b0881f9709206350b59de3f84ab Author: Ingo Molnar Date: Fri Apr 24 09:20:33 2015 +0200 x86/fpu: Rename 'pcntxt_mask' to 'xfeatures_mask' So the 'pcntxt_mask' is a misnomer, it's essentially meaningless to anyone who doesn't know what it does exactly. Name it more descriptively as 'xfeatures_mask'. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/xsave.h | 2 +- arch/x86/kernel/fpu/core.c | 2 +- arch/x86/kernel/fpu/xsave.c | 58 ++++++++++++++++++++-------------------- arch/x86/power/cpu.c | 4 +-- 4 files changed, 33 insertions(+), 33 deletions(-) commit 69496e10f87cec182a9263046c1b251235b8c38e Author: Ingo Molnar Date: Fri Apr 24 08:48:01 2015 +0200 x86/fpu: Print supported xstate features in human readable way Inform the user/admin about which xstate features the kernel supports. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/xsave.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) commit 32d4d9ccb0f3209425d6e8aefa484bf00a5dc183 Author: Ingo Molnar Date: Fri Apr 24 03:25:18 2015 +0200 x86/fpu: Improve FPU detection kernel messages Standardize the various boot time messages printed during FPU detection: - Use a common 'x86/fpu: ' prefix for consistency and to make it easy to grep boot logs for FPU related messages - Correct speling errors - Add printout for the legacy FPU case as well - Clarify messages Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/xsave.c | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) commit 7b302e6731ac37fc688bc3085c11f5a886c90c08 Author: Ingo Molnar Date: Fri Apr 24 02:39:22 2015 +0200 x86/fpu: Remove assembly guard from asm/fpu/api.h asm/fpu/api.h does not contain any defines useful to assembly code, and no assembly code includes asm/fpu/api.h. Remove the historic #ifndef __ASSEMBLY__ leftover guard. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/api.h | 4 ---- 1 file changed, 4 deletions(-) commit c0841e34fd9bbcef58c537151de8c83d2c910099 Author: Ingo Molnar Date: Fri Apr 24 03:18:28 2015 +0200 x86/fpu: Remove xsave_init() __init obfuscation So this code surprised me - and being surprised when reading FPU code does not help maintainability of an already overly complex subsystem. Remove the obfuscation and just don't use __init annotation for now. Anyone who wants to free these ~600 bytes of xstate_enable_boot_cpu() should implement it cleanly. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/xsave.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) commit df6397525cbe096d0eab0c1530fd25429d26f11b Author: Ingo Molnar Date: Fri Apr 24 03:06:56 2015 +0200 x86/fpu: Move MXCSR_DEFAULT to fpu/internal.h fpu/types.h gets included everywhere, move the MXCSR_DEFAULT to fpu/internal.h, the place where it's used. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/internal.h | 2 ++ arch/x86/include/asm/fpu/types.h | 2 -- 2 files changed, 2 insertions(+), 2 deletions(-) commit 78f7f1e54bac032b98956862a5bcf8c28ed22d07 Author: Ingo Molnar Date: Fri Apr 24 02:54:44 2015 +0200 x86/fpu: Rename fpu-internal.h to fpu/internal.h This unifies all the FPU related header files under a unified, hiearchical naming scheme: - asm/fpu/types.h: FPU related data types, needed for 'struct task_struct', widely included in almost all kernel code, and hence kept as small as possible. - asm/fpu/api.h: FPU related 'public' methods exported to other subsystems. - asm/fpu/internal.h: FPU subsystem internal methods - asm/fpu/xsave.h: XSAVE support internal methods (Also standardize the header guard in asm/fpu/internal.h.) Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/crypto/crc32c-intel_glue.c | 2 +- arch/x86/crypto/sha-mb/sha1_mb.c | 2 +- arch/x86/ia32/ia32_signal.c | 2 +- arch/x86/include/asm/fpu-internal.h | 556 ------------------------------------ arch/x86/include/asm/fpu/internal.h | 556 ++++++++++++++++++++++++++++++++++++ arch/x86/kernel/cpu/common.c | 2 +- arch/x86/kernel/fpu/core.c | 2 +- arch/x86/kernel/fpu/init.c | 2 +- arch/x86/kernel/fpu/xsave.c | 2 +- arch/x86/kernel/process.c | 2 +- arch/x86/kernel/process_32.c | 2 +- arch/x86/kernel/process_64.c | 2 +- arch/x86/kernel/ptrace.c | 2 +- arch/x86/kernel/signal.c | 2 +- arch/x86/kernel/smpboot.c | 2 +- arch/x86/kernel/traps.c | 2 +- arch/x86/kvm/x86.c | 2 +- arch/x86/mm/mpx.c | 2 +- arch/x86/power/cpu.c | 2 +- 19 files changed, 573 insertions(+), 573 deletions(-) commit a137fb6bbf4f10b8ef1452e9b190d8bc76c04d0f Author: Ingo Molnar Date: Mon Apr 27 03:58:37 2015 +0200 x86/fpu: Move xsave.h to fpu/xsave.h Move the xsave.h header file to the FPU directory as well. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/crypto/camellia_aesni_avx2_glue.c | 2 +- arch/x86/crypto/camellia_aesni_avx_glue.c | 2 +- arch/x86/crypto/cast5_avx_glue.c | 2 +- arch/x86/crypto/cast6_avx_glue.c | 2 +- arch/x86/crypto/serpent_avx2_glue.c | 2 +- arch/x86/crypto/serpent_avx_glue.c | 2 +- arch/x86/crypto/sha-mb/sha1_mb.c | 2 +- arch/x86/crypto/sha1_ssse3_glue.c | 2 +- arch/x86/crypto/sha256_ssse3_glue.c | 2 +- arch/x86/crypto/sha512_ssse3_glue.c | 2 +- arch/x86/crypto/twofish_avx_glue.c | 2 +- arch/x86/include/asm/fpu-internal.h | 2 +- arch/x86/include/asm/fpu/xsave.h | 250 +++++++++++++++++++++++++++++ arch/x86/include/asm/xsave.h | 250 ----------------------------- arch/x86/kvm/cpuid.c | 2 +- 15 files changed, 263 insertions(+), 263 deletions(-) commit df6b35f409af0a8ff1ef62f552b8402f3fef8665 Author: Ingo Molnar Date: Fri Apr 24 02:46:00 2015 +0200 x86/fpu: Rename i387.h to fpu/api.h We already have fpu/types.h, move i387.h to fpu/api.h. The file name has become a misnomer anyway: it offers generic FPU APIs, but is not limited to i387 functionality. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/crypto/aesni-intel_glue.c | 2 +- arch/x86/crypto/crc32-pclmul_glue.c | 2 +- arch/x86/crypto/crct10dif-pclmul_glue.c | 2 +- arch/x86/crypto/fpu.c | 2 +- arch/x86/crypto/ghash-clmulni-intel_glue.c | 2 +- arch/x86/crypto/sha1_ssse3_glue.c | 2 +- arch/x86/crypto/sha256_ssse3_glue.c | 2 +- arch/x86/crypto/sha512_ssse3_glue.c | 2 +- arch/x86/crypto/twofish_avx_glue.c | 2 +- arch/x86/include/asm/crypto/glue_helper.h | 2 +- arch/x86/include/asm/efi.h | 2 +- arch/x86/include/asm/fpu-internal.h | 2 +- arch/x86/include/asm/fpu/api.h | 107 +++++++++++++++++++++++++++++ arch/x86/include/asm/i387.h | 107 ----------------------------- arch/x86/include/asm/simd.h | 2 +- arch/x86/include/asm/suspend_32.h | 2 +- arch/x86/include/asm/suspend_64.h | 2 +- arch/x86/include/asm/xor.h | 2 +- arch/x86/include/asm/xor_32.h | 2 +- arch/x86/include/asm/xor_avx.h | 2 +- arch/x86/kernel/cpu/bugs.c | 2 +- arch/x86/kernel/fpu/xsave.c | 2 +- arch/x86/kvm/vmx.c | 2 +- arch/x86/lguest/boot.c | 2 +- arch/x86/lib/mmx_32.c | 2 +- arch/x86/math-emu/fpu_entry.c | 2 +- drivers/char/hw_random/via-rng.c | 2 +- drivers/crypto/padlock-aes.c | 2 +- drivers/crypto/padlock-sha.c | 2 +- drivers/lguest/x86/core.c | 2 +- lib/raid6/x86.h | 2 +- 31 files changed, 136 insertions(+), 136 deletions(-) commit e11267c13fab2c8b0e5ed3f3ae8f6167f03f8953 Author: Ingo Molnar Date: Fri Apr 24 02:34:05 2015 +0200 x86/fpu: Clean up fpu__clear() a bit Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 2e8a3102662233dfac92fe70f56429b4050f674a Author: Ingo Molnar Date: Fri Apr 24 02:28:23 2015 +0200 x86/fpu: Rename fpu__flush_thread() to fpu__clear() The primary purpose of this function is to clear the current task's FPU before an exec(), to not leak information from the previous task, and to allow the new task to start with freshly initialized FPU registers. Rename the function to reflect this primary purpose. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/i387.h | 2 +- arch/x86/kernel/fpu/core.c | 4 ++-- arch/x86/kernel/process.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) commit cc08d5459905a4155cb77e5fe25f396b4c622b7d Author: Ingo Molnar Date: Fri Apr 24 02:18:23 2015 +0200 x86/fpu: Use 'struct fpu' in fpu__unlazy_stopped() Migrate this function to pure 'struct fpu' usage. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/core.c | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) commit db2b1d3ad1cdae9f268d6db54b6127b09933da3d Author: Ingo Molnar Date: Fri Apr 24 02:13:09 2015 +0200 x86/fpu: Use 'struct fpu' in fpstate_alloc_init() Migrate this function to pure 'struct fpu' usage. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/i387.h | 2 +- arch/x86/kernel/fpu/core.c | 13 ++++++------- arch/x86/kernel/fpu/xsave.c | 2 +- arch/x86/kvm/x86.c | 2 +- arch/x86/math-emu/fpu_entry.c | 2 +- 5 files changed, 10 insertions(+), 11 deletions(-) commit c69e098b1f90c0d520c4d5b5bff9f2ede95b13a8 Author: Ingo Molnar Date: Fri Apr 24 02:07:15 2015 +0200 x86/fpu: Use 'struct fpu' in fpu__copy() Migrate this function to pure 'struct fpu' usage. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu-internal.h | 2 +- arch/x86/kernel/fpu/core.c | 13 +++++-------- arch/x86/kernel/process.c | 2 +- 3 files changed, 7 insertions(+), 10 deletions(-) commit f9bc977fe734772a7ca4a467fe4fd74e1ea3a849 Author: Ingo Molnar Date: Fri Apr 24 02:07:33 2015 +0200 x86/fpu: Use 'struct fpu' in fpu_copy() Migrate this function to pure 'struct fpu' usage. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/core.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) commit 0c070595ceccb391100127a28ff837c50356ad67 Author: Ingo Molnar Date: Thu Apr 23 17:57:24 2015 +0200 x86/fpu: Use 'struct fpu' in fpu__save() Migrate this function to pure 'struct fpu' usage. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/i387.h | 2 +- arch/x86/kernel/fpu/core.c | 8 +++----- arch/x86/kernel/traps.c | 2 +- 3 files changed, 5 insertions(+), 7 deletions(-) commit a4d8fc2e0652613426920aac429541127f8b26d8 Author: Ingo Molnar Date: Thu Apr 23 17:52:36 2015 +0200 x86/fpu: Use 'struct fpu' in __fpu_save() Migrate this function to pure 'struct fpu' usage. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/core.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit 2d75bcf31470b15205f915aae725a284bc8f2da8 Author: Ingo Molnar Date: Thu Apr 23 17:49:29 2015 +0200 x86/fpu: Move __save_fpu() into fpu/core.c This helper function is only used in fpu/core.c, move it there. This slightly speeds up compilation. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu-internal.h | 11 ----------- arch/x86/kernel/fpu/core.c | 12 ++++++++++++ 2 files changed, 12 insertions(+), 11 deletions(-) commit 384a23f939912d368d2b42e1b41992be09aaf266 Author: Ingo Molnar Date: Thu Apr 23 17:43:27 2015 +0200 x86/fpu: Use 'struct fpu' in switch_fpu_finish() Migrate this function to pure 'struct fpu' usage. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu-internal.h | 6 ++---- arch/x86/kernel/process_32.c | 10 ++++++---- arch/x86/kernel/process_64.c | 8 +++++--- 3 files changed, 13 insertions(+), 11 deletions(-) commit cb8818b6acb45a4e0acc2308df216f36cc5b950c Author: Ingo Molnar Date: Thu Apr 23 17:39:04 2015 +0200 x86/fpu: Use 'struct fpu' in switch_fpu_prepare() Migrate this function to pure 'struct fpu' usage. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu-internal.h | 27 +++++++++++++-------------- arch/x86/kernel/process_32.c | 2 +- arch/x86/kernel/process_64.c | 2 +- 3 files changed, 15 insertions(+), 16 deletions(-) commit af2d94fddcf41e879908b35a8a5308fb94e989c5 Author: Ingo Molnar Date: Thu Apr 23 17:34:20 2015 +0200 x86/fpu: Use 'struct fpu' in fpu_reset_state() Migrate this function to pure 'struct fpu' usage. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu-internal.h | 6 ++---- arch/x86/kernel/fpu/core.c | 7 +++---- arch/x86/kernel/fpu/xsave.c | 4 ++-- arch/x86/kernel/signal.c | 2 +- 4 files changed, 8 insertions(+), 11 deletions(-) commit 11f2d50b10289f49676ec07bf3fef932473ef6d5 Author: Ingo Molnar Date: Thu Apr 23 17:30:59 2015 +0200 x86/fpu: Use 'struct fpu' in restore_fpu_checking() Migrate this function to pure 'struct fpu' usage. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu-internal.h | 10 ++++++---- arch/x86/kernel/fpu/core.c | 4 ++-- 2 files changed, 8 insertions(+), 6 deletions(-) commit 66ddc2cb0f598818b39b66867007634244322843 Author: Ingo Molnar Date: Thu Apr 23 17:25:44 2015 +0200 x86/fpu: Use 'struct fpu' in fpu_lazy_restore() Also rename it to fpu_want_lazy_restore(), to better indicate that this function just tests whether we can do a lazy restore. (The old name suggested that it was doing the lazy restore, which is not the case.) Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu-internal.h | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit eb6a3251bfe34f327570993e9a95dbf3a592b912 Author: Ingo Molnar Date: Thu Apr 23 17:08:41 2015 +0200 x86/fpu: Remove task_disable_lazy_fpu_restore() Replace task_disable_lazy_fpu_restore() with easier to read open-coded uses: we already update the fpu->last_cpu field explicitly in other cases. (This also removes yet another task_struct using FPU method.) Better explain the fpu::last_cpu field in the structure definition. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu-internal.h | 14 ++------------ arch/x86/include/asm/fpu/types.h | 11 +++++++++++ arch/x86/kernel/fpu/core.c | 5 ++--- 3 files changed, 15 insertions(+), 15 deletions(-) commit ca6787ba0fcc875cfb06dc2a538ac23210b7d251 Author: Ingo Molnar Date: Thu Apr 23 12:33:50 2015 +0200 x86/fpu: Remove 'struct task_struct' usage from drop_fpu() Migrate this function to pure 'struct fpu' usage. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu-internal.h | 9 +++++---- arch/x86/kernel/fpu/core.c | 2 +- arch/x86/kernel/fpu/xsave.c | 2 +- arch/x86/kernel/process.c | 3 ++- 4 files changed, 9 insertions(+), 7 deletions(-) commit c5bedc6847c3be6efe0e671a6155c9a25fd468bf Author: Ingo Molnar Date: Thu Apr 23 12:49:20 2015 +0200 x86/fpu: Get rid of PF_USED_MATH usage, convert it to fpu->fpstate_active Introduce a simple fpu->fpstate_active flag in the fpu context data structure and use that instead of PF_USED_MATH in task->flags. Testing for this flag byte should be slightly more efficient than testing a bit in a bitmask, but the main advantage is that most FPU functions can now be performed on a 'struct fpu' alone, they don't need access to 'struct task_struct' anymore. There's a slight linecount increase, mostly due to the 'fpu' local variables and due to extra comments. The local variables will go away once we move most of the FPU methods to pure 'struct fpu' parameters. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/ia32/ia32_signal.c | 3 ++- arch/x86/include/asm/fpu-internal.h | 4 ++-- arch/x86/include/asm/fpu/types.h | 6 ++++++ arch/x86/include/asm/processor.h | 6 ++++-- arch/x86/kernel/fpu/core.c | 38 ++++++++++++++++++++++++------------- arch/x86/kernel/fpu/xsave.c | 11 ++++++----- arch/x86/kernel/signal.c | 8 +++++--- arch/x86/kvm/x86.c | 3 ++- arch/x86/math-emu/fpu_entry.c | 3 ++- 9 files changed, 54 insertions(+), 28 deletions(-) commit af7f8721f1f1252473b154c38dd7583abfe3206b Author: Ingo Molnar Date: Thu Apr 23 14:06:05 2015 +0200 x86/fpu: Document fpu__unlazy_stopped() Explain its usage and also document a TODO item. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/core.c | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) commit 4c1384100ebf51651d02430a7f70661ef1ef06ac Author: Ingo Molnar Date: Thu Apr 23 12:46:20 2015 +0200 x86/fpu: Open code PF_USED_MATH usages PF_USED_MATH is used directly, but also in a handful of helper inlines. To ease the elimination of PF_USED_MATH, convert all inline helpers to open-coded PF_USED_MATH usage. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/ia32/ia32_signal.c | 2 +- arch/x86/include/asm/fpu-internal.h | 5 +++-- arch/x86/kernel/fpu/core.c | 14 ++++++++------ arch/x86/kernel/fpu/xsave.c | 10 +++++----- arch/x86/kernel/signal.c | 6 +++--- arch/x86/kvm/x86.c | 2 +- arch/x86/math-emu/fpu_entry.c | 2 +- 7 files changed, 22 insertions(+), 19 deletions(-) commit 4540d3faa7c3fca6a6125448861de0e2e485658b Author: Ingo Molnar Date: Thu Apr 23 12:31:17 2015 +0200 x86/fpu: Remove 'struct task_struct' usage from __thread_fpu_begin() Migrate this function to pure 'struct fpu' usage. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu-internal.h | 10 ++++++---- arch/x86/kernel/fpu/core.c | 3 ++- 2 files changed, 8 insertions(+), 5 deletions(-) commit 35191e3f073c442b201f8beb5315561271d2327a Author: Ingo Molnar Date: Thu Apr 23 12:26:55 2015 +0200 x86/fpu: Remove 'struct task_struct' usage from __thread_fpu_end() Migrate this function to pure 'struct fpu' usage. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu-internal.h | 6 +++--- arch/x86/kernel/fpu/core.c | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) commit c0311f63e3cc8b29b6006ac8c1d4e3f6fbb2e357 Author: Ingo Molnar Date: Thu Apr 23 12:24:59 2015 +0200 x86/fpu: Remove 'struct task_struct' usage from __thread_set_has_fpu() Migrate this function to pure 'struct fpu' usage. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu-internal.h | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit 36b544dcd3f935bd33ada700d070433a57982771 Author: Ingo Molnar Date: Thu Apr 23 12:18:28 2015 +0200 x86/fpu: Change fpu_owner_task to fpu_fpregs_owner_ctx Track the FPU owner context instead of the owner task: this change, together with other changes, will allow in subsequent patches the elimination of 'struct task_struct' usage in various FPU code: we'll be able to use 'struct fpu' only. There's no change in code size: text data bss dec hex filename 13066467 2545248 1626112 17237827 1070743 vmlinux.before 13066467 2545248 1626112 17237827 1070743 vmlinux.after Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu-internal.h | 14 +++++++------- arch/x86/kernel/fpu/core.c | 9 ++++----- 2 files changed, 11 insertions(+), 12 deletions(-) commit b0c050c5ba130c0ccb1b86b64f162a4601d160c7 Author: Ingo Molnar Date: Thu Apr 23 12:13:04 2015 +0200 x86/fpu: Move 'PER_CPU(fpu_owner_task)' to fpu/core.c Move it closer to other per-cpu FPU data structures. This also unifies the 32-bit and 64-bit code. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/common.c | 3 --- arch/x86/kernel/fpu/core.c | 5 +++++ 2 files changed, 5 insertions(+), 3 deletions(-) commit 36fe6175be15d33fec7c6aa53e6e202ad44f0b25 Author: Ingo Molnar Date: Thu Apr 23 12:08:58 2015 +0200 x86/fpu: Change __thread_clear_has_fpu() to 'struct fpu' parameter We do this to make the code more readable, and also to be able to eliminate task_struct usage from most of the FPU code. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu-internal.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 276983f8085db4a5f4e2cdcda6bce29a1da97eb0 Author: Ingo Molnar Date: Thu Apr 23 11:55:18 2015 +0200 x86/fpu: Eliminate the __thread_has_fpu() wrapper Start migrating FPU methods towards using 'struct fpu *fpu' directly. __thread_has_fpu() is just a trivial wrapper around fpu->has_fpu, eliminate it. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu-internal.h | 16 ++++------------ arch/x86/kernel/fpu/core.c | 17 ++++++++++------- 2 files changed, 14 insertions(+), 19 deletions(-) commit 9a89b02918c03d91e685d06e49a652da5f35befc Author: Ingo Molnar Date: Thu Apr 23 11:26:08 2015 +0200 x86/fpu: Print out whether we are doing lazy/eager FPU context switches Ever since the kernel started defaulting to eager FPU switches on modern Intel CPUs it's not been obvious whether a given system is using the lazy or the eager FPU context switching logic. So generate a boot message about which mode the FPU code is in: x86/fpu: Using 'lazy' FPU context switches. or: x86/fpu: Using 'eager' FPU context switches. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/xsave.c | 2 ++ 1 file changed, 2 insertions(+) commit bfd6fc0581e7e2f3fa0b3e5e21cd6e54c3fbd16f Author: Ingo Molnar Date: Thu Apr 23 08:55:34 2015 +0200 x86/fpu: Add debugging check to fpu_copy() Also add a bit of documentation. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/core.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit e102f30f4e22b7eb8f3dfbe7fec334cffb350fd8 Author: Ingo Molnar Date: Wed Apr 22 20:09:29 2015 +0200 x86/fpu: Move fpu_copy() to fpu/core.c Move fpu_copy() where its only user is. Beyond readability this also speeds up compilation, as fpu-internal.h is included in over a dozen .c files. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu-internal.h | 14 -------------- arch/x86/kernel/fpu/core.c | 14 ++++++++++++++ 2 files changed, 14 insertions(+), 14 deletions(-) commit 6522d783773d0d61f9f35cae890f8c11c4510d9a Author: Ingo Molnar Date: Wed Apr 22 19:54:09 2015 +0200 x86/fpu: Remove __save_init_fpu() __save_init_fpu() is just a trivial wrapper around fpu_save_init(). Remove the extra layer of obfuscation. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu-internal.h | 7 +------ arch/x86/kernel/fpu/core.c | 4 ++-- 2 files changed, 3 insertions(+), 8 deletions(-) commit 085cc281a04633761bac361f26dcee2800d58077 Author: Ingo Molnar Date: Wed Apr 22 16:52:03 2015 +0200 x86/fpu: Add kernel_fpu_disabled() Instead of open-coded in_kernel_fpu access, Use kernel_fpu_disabled() in interrupted_kernel_fpu_idle(), matching the other kernel_fpu_*() methods. Also add some documentation for in_kernel_fpu. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/core.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) commit 3103ae3a6d3e66d51bb883bb17b55574e163b77d Author: Ingo Molnar Date: Wed Apr 22 16:40:56 2015 +0200 x86/fpu: Add debug check to kernel_fpu_disable() We are not supposed to call kernel_fpu_disable() if we have not previously enabled it. Also use kernel_fpu_disable()/enable() in the __kernel_fpu_begin/end() primitives, instead of writing to in_kernel_fpu directly, so that we get the debugging checks. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/core.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 416d49ac67ae3af8c98ecee2ebe0a883b95e213a Author: Ingo Molnar Date: Wed Apr 22 16:33:08 2015 +0200 x86/fpu: Make kernel_fpu_disable/enable() static This allows the compiler to inline them and to eliminate them: arch/x86/kernel/fpu/core.o: text data bss dec hex filename 6741 4 8 6753 1a61 core.o.before 6716 4 8 6728 1a48 core.o.after Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/i387.h | 4 ---- arch/x86/kernel/fpu/core.c | 8 ++++---- 2 files changed, 4 insertions(+), 8 deletions(-) commit f55f88e25e9b5232054a82d47de7aaf67179b78b Author: Ingo Molnar Date: Wed Apr 22 16:02:33 2015 +0200 x86/fpu: Make task_xstate_cachep static It's now local to fpu/core.c, make it static. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/processor.h | 1 - arch/x86/kernel/fpu/core.c | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) commit 5a12bf6332da40310eff5575ca1ba20339d74e48 Author: Ingo Molnar Date: Wed Apr 22 15:58:37 2015 +0200 x86/fpu: Uninline fpstate_free() and move it next to the allocation function Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu-internal.h | 9 +-------- arch/x86/kernel/fpu/core.c | 9 +++++++++ 2 files changed, 10 insertions(+), 8 deletions(-) commit a752b53d9dcbae28a3a22b5577f0571acf53d5aa Author: Ingo Molnar Date: Wed Apr 22 15:47:05 2015 +0200 x86/fpu: Factor out fpu__copy() Introduce fpu__copy() and use it in arch_dup_task_struct(), thus moving another chunk of FPU logic to fpu/core.c. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu-internal.h | 1 + arch/x86/kernel/fpu/core.c | 18 ++++++++++++++++++ arch/x86/kernel/process.c | 12 +----------- 3 files changed, 20 insertions(+), 11 deletions(-) commit 8ffb53ab986ccb4421b1060182c6e084edd7b9d8 Author: Ingo Molnar Date: Wed Apr 22 15:41:56 2015 +0200 x86/fpu: Move task_xstate_cachep handling to core.c This code was historically in process.c, now we have FPU core internals in fpu/core.c instead - move it there. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu-internal.h | 2 ++ arch/x86/kernel/fpu/core.c | 15 +++++++++++++++ arch/x86/kernel/process.c | 9 +-------- 3 files changed, 18 insertions(+), 8 deletions(-) commit 0afc4a941c0e7b8f6f619fe576f7c5ddbe78d304 Author: Ingo Molnar Date: Wed Apr 22 15:14:44 2015 +0200 x86/fpu: Remove fpu_xsave() It's a pointless wrapper now - use xsave_state(). Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu-internal.h | 2 +- arch/x86/include/asm/xsave.h | 8 -------- arch/x86/mm/mpx.c | 2 +- 3 files changed, 2 insertions(+), 10 deletions(-) commit 3e261c14e41b3a3cc1da54190d56b8609bedd873 Author: Ingo Molnar Date: Wed Apr 22 15:08:34 2015 +0200 x86/fpu: Simplify the xsave_state*() methods These functions (xsave_state() and xsave_state_booting()) have a 'mask' argument that is always -1. Propagate this into the functions instead and eliminate the extra argument. Does not change the generated code, because these were inlined functions. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu-internal.h | 4 ++-- arch/x86/include/asm/xsave.h | 8 +++++--- arch/x86/kernel/fpu/xsave.c | 3 ++- 3 files changed, 9 insertions(+), 6 deletions(-) commit 4d1640927bd54aa118f91c2bcfe6c2de0e2ba2a3 Author: Ingo Molnar Date: Wed Apr 22 13:44:25 2015 +0200 x86/fpu: Factor out the FPU bug detection code into fpu__init_check_bugs() Move the boot-time FPU bug detection code to the other FPU boot time init code in fpu/init.c. No change in code size: text data bss dec hex filename 13044568 1884440 1130496 16059504 f50c70 vmlinux.before 13044568 1884440 1130496 16059504 f50c70 vmlinux.after Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/i387.h | 1 + arch/x86/kernel/cpu/bugs.c | 53 +------------------------------------- arch/x86/kernel/fpu/init.c | 63 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 65 insertions(+), 52 deletions(-) commit 3a0aee4801d475b64a408539c01ec0d17d52192b Author: Ingo Molnar Date: Wed Apr 22 13:16:47 2015 +0200 x86/fpu: Rename math_state_restore() to fpu__restore() Move to the new fpu__*() namespace. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar Documentation/preempt-locking.txt | 2 +- arch/x86/include/asm/i387.h | 2 +- arch/x86/kernel/fpu/core.c | 6 +++--- arch/x86/kernel/fpu/xsave.c | 2 +- arch/x86/kernel/process_32.c | 2 +- arch/x86/kernel/process_64.c | 2 +- arch/x86/kernel/traps.c | 2 +- drivers/lguest/x86/core.c | 4 ++-- 8 files changed, 11 insertions(+), 11 deletions(-) commit 93b90712c64ca2db4b39fcb2e7dffcf0d478468d Author: Ingo Molnar Date: Wed Apr 22 12:50:13 2015 +0200 x86/fpu: Move math_state_restore() to fpu/core.c It's another piece of FPU internals that is better off close to the other FPU internals. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/core.c | 42 ++++++++++++++++++++++++++++++++++++++++++ arch/x86/kernel/traps.c | 42 ------------------------------------------ 2 files changed, 42 insertions(+), 42 deletions(-) commit 81683cc8277e79decff4d0cf82ae0e17d2fe465f Author: Ingo Molnar Date: Wed Apr 22 11:52:13 2015 +0200 x86/fpu: Factor out fpu__flush_thread() from flush_thread() flush_thread() open codes a lot of FPU internals - create a separate function for it in fpu/core.c. Turns out that this does not hurt performance: text data bss dec hex filename 11843039 1884440 1130496 14857975 e2b6f7 vmlinux.before 11843039 1884440 1130496 14857975 e2b6f7 vmlinux.after and since this is a slowpath clarity comes first anyway. We can reconsider inlining decisions after the FPU code has been cleaned up. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/i387.h | 1 + arch/x86/kernel/fpu/core.c | 17 +++++++++++++++++ arch/x86/kernel/process.c | 14 +------------- 3 files changed, 19 insertions(+), 13 deletions(-) commit 11ad19277e025f914518bc2943a240cdd37cf844 Author: Ingo Molnar Date: Wed Apr 22 11:44:46 2015 +0200 x86/fpu: Remove the free_thread_xstate() complication Use fpstate_free() directly to manage FPU state. Only process.c was using this method, so this is a speedup as well, as it removes the extra function call and related clobbers. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/processor.h | 1 - arch/x86/kernel/process.c | 9 ++------- 2 files changed, 2 insertions(+), 8 deletions(-) commit 146ed598d12ac173bf5fed05ba7046812b8a8978 Author: Ingo Molnar Date: Wed Apr 22 11:36:14 2015 +0200 x86/fpu: Move the no_387 handling and FPU detection code into init.c Both no_387() and fpu__detect() run at boot time, so they belong into init.c. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/core.c | 34 ---------------------------------- arch/x86/kernel/fpu/init.c | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 34 deletions(-) commit 4445e6e9a549823a2c2a188e500389532e1ed501 Author: Ingo Molnar Date: Wed Apr 22 11:33:25 2015 +0200 x86/fpu: Remove unnecessary includes from core.c fpu/core.c includes a lot of files for mostly historic reasons. It only needs fpu-internal.h, which already includes all the required headers. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/core.c | 13 ------------- 1 file changed, 13 deletions(-) commit 0c8675379048f36c76ad3a46519310ee2d626b2f Author: Ingo Molnar Date: Wed Apr 22 10:53:34 2015 +0200 x86/fpu: Split out the boot time FPU init code into fpu/init.c Move boot time FPU initialization code into init.c, to better isolate it into its own domain. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/fpu/Makefile | 2 +- arch/x86/kernel/fpu/core.c | 88 ----------------------------------------- arch/x86/kernel/fpu/init.c | 93 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 94 insertions(+), 89 deletions(-) commit f89e32e0a3df2f29d61fdc120ac62654ef267111 Author: Ingo Molnar Date: Wed Apr 22 10:58:10 2015 +0200 x86/fpu: Fix header file dependencies of fpu-internal.h Fix a minor header file dependency bug in asm/fpu-internal.h: it relies on i387.h but does not include it. All users of fpu-internal.h included it explicitly. Also remove unnecessary includes, to reduce compilation time. This also makes it easier to use it as a standalone header file for FPU internals, such as an upcoming C module in arch/x86/kernel/fpu/. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/crypto/crc32c-intel_glue.c | 1 - arch/x86/crypto/sha-mb/sha1_mb.c | 1 - arch/x86/ia32/ia32_signal.c | 1 - arch/x86/include/asm/fpu-internal.h | 9 ++------- arch/x86/kernel/cpu/common.c | 1 - arch/x86/kernel/process.c | 1 - arch/x86/kernel/process_32.c | 1 - arch/x86/kernel/process_64.c | 1 - arch/x86/kernel/ptrace.c | 1 - arch/x86/kernel/signal.c | 1 - arch/x86/kernel/smpboot.c | 1 - arch/x86/kernel/traps.c | 1 - arch/x86/kvm/x86.c | 2 +- arch/x86/mm/mpx.c | 1 - 14 files changed, 3 insertions(+), 20 deletions(-) commit ce4c4c26241f9ab08f14b028d40736f319ed2445 Author: Ingo Molnar Date: Wed Apr 22 10:39:11 2015 +0200 x86/fpu: Move i387.c and xsave.c to arch/x86/kernel/fpu/ Create a new subdirectory for the FPU support code in arch/x86/kernel/fpu/. Rename 'i387.c' to 'core.c' - as this really collects the core FPU support code, nothing i387 specific. We'll better organize this directory in later patches. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/Makefile | 2 +- arch/x86/kernel/fpu/Makefile | 5 + arch/x86/kernel/fpu/core.c | 718 ++++++++++++++++++++++++++++++++++++++++++ arch/x86/kernel/fpu/xsave.c | 724 +++++++++++++++++++++++++++++++++++++++++++ arch/x86/kernel/i387.c | 718 ------------------------------------------ arch/x86/kernel/xsave.c | 724 ------------------------------------------- 6 files changed, 1448 insertions(+), 1443 deletions(-) commit 47bc5106342b0c98ce5cc851173c201554d256d3 Author: Ingo Molnar Date: Wed Apr 22 10:17:06 2015 +0200 x86/fpu: Clean up asm/fpu/types.h - add header guards - standardize vertical alignment - add comments about MPX No code changed. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/types.h | 50 ++++++++++++++++++++++++---------------- 1 file changed, 30 insertions(+), 20 deletions(-) commit 14b9675ae9c83c764c0c1fdf4b33f0e9156a4e4f Author: Ingo Molnar Date: Wed Apr 22 09:57:24 2015 +0200 x86/fpu: Move FPU data structures to asm/fpu_types.h Move the FPU details to asm/fpu_types.h, to further factor out the FPU code. ( As an added bonus, the 'struct orig_ist' definition now moves next to its other data types - the FPU definitions were slapped in the middle of them for some mysterious reason. ) No code changed. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu/types.h | 132 +++++++++++++++++++++++++++++++++++++++ arch/x86/include/asm/processor.h | 132 +-------------------------------------- 2 files changed, 133 insertions(+), 131 deletions(-) commit 126009993faa7a750835e67f3ccb90cee124ffa7 Author: Ingo Molnar Date: Wed Apr 22 09:57:24 2015 +0200 x86/fpu: Improve the comment for the fpu::counter field This was pretty hard to read, improve it. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/processor.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit c0c2803dee21bef08ef5aacdf96fe2f1759ccc62 Author: Ingo Molnar Date: Wed Apr 22 09:52:56 2015 +0200 x86/fpu: Move thread_info::fpu_counter into thread_info::fpu.counter This field is kept separate from the main FPU state structure for no good reason. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu-internal.h | 10 +++++----- arch/x86/include/asm/processor.h | 18 +++++++++--------- arch/x86/kernel/process.c | 2 +- arch/x86/kernel/traps.c | 2 +- 4 files changed, 16 insertions(+), 16 deletions(-) commit 3f6a0bce90289e0980b4250ccb03b765860247ee Author: Ingo Molnar Date: Fri Apr 3 13:22:42 2015 +0200 x86/fpu: Rename init_thread_xstate() to fpstate_xstate_init_size() So init_thread_xstate() is a misnomer in that it's not really related to a specific thread - it determines, once during initial bootup, the size of the xstate context. Also improve the comments. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/i387.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 3a9c4b0d7e1a693beeac24d749f6938444148e86 Author: Ingo Molnar Date: Fri Apr 3 13:16:51 2015 +0200 x86/fpu: Rename fpu_init() to fpu__cpu_init() fpu_init() is a bit of a misnomer in that it (falsely) creates the impression that it's related to the (old) fpu_finit() function, which initializes FPU ctx state. Rename it to fpu__cpu_init() to make its boot time initialization clear, and to move it to the fpu__*() namespace. Also fix and extend its comment block to point out that it's called not only on the boot CPU, but on secondary CPUs as well. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu-internal.h | 2 +- arch/x86/kernel/cpu/common.c | 4 ++-- arch/x86/kernel/i387.c | 10 ++++++---- arch/x86/xen/enlighten.c | 2 +- 4 files changed, 10 insertions(+), 8 deletions(-) commit c0ee2cf61be0bd3db2a30d76056a2e09fa48272e Author: Ingo Molnar Date: Fri Apr 3 13:01:52 2015 +0200 x86/fpu: Rename fpu_finit() to fpstate_init() Make it clear that we are initializing the in-memory FPU context area, no the FPU registers. Also move it to the fpu__*() namespace. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/i387.h | 2 +- arch/x86/kernel/i387.c | 8 ++++---- arch/x86/kernel/xsave.c | 2 +- arch/x86/kvm/x86.c | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) commit a7c2a83364c0d882a2d850c4c183c6de42d5c02b Author: Ingo Molnar Date: Fri Apr 3 12:55:22 2015 +0200 x86/fpu: Rename fpu_free() to fpstate_free() Use the fpu__*() namespace. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu-internal.h | 2 +- arch/x86/kernel/process.c | 2 +- arch/x86/kvm/x86.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit ed97b085461ca6bdc22162b68b4cba69459ce1c8 Author: Ingo Molnar Date: Fri Apr 3 12:41:14 2015 +0200 x86/fpu: Rename fpu_alloc() to fpstate_alloc() Use the fpu__*() namespace for fpstate_alloc() as well. Also add a comment about FPU state alignment. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu-internal.h | 2 +- arch/x86/kernel/i387.c | 12 ++++++++---- arch/x86/kernel/process.c | 2 +- arch/x86/kvm/x86.c | 2 +- 4 files changed, 11 insertions(+), 7 deletions(-) commit 6fbe67124869be10e8b0ceedc4ee7c5691d78c40 Author: Ingo Molnar Date: Fri Apr 3 12:37:30 2015 +0200 x86/fpu: Move fpu_alloc() out of line This is not a small function, and it's used in several places, one of them a popular module (KVM). Move the function out of line. This saves a bit of text, even with the symbol export overhead: text data bss dec hex filename 12566052 1619504 1089536 15275092 e91454 vmlinux.before 12566046 1619504 1089536 15275086 e9144e vmlinux.after Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu-internal.h | 11 +---------- arch/x86/kernel/i387.c | 12 ++++++++++++ 2 files changed, 13 insertions(+), 10 deletions(-) commit 373244221ade7c4d8d4fa970355ca3803711fbff Author: Ingo Molnar Date: Fri Apr 3 12:34:26 2015 +0200 x86/fpu: Remove fpu_allocated() It's an unnecessary obfuscation of a very simple allocation pattern. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu-internal.h | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) commit 071ae621ec51153d740c9a2252d2d46e03e80d58 Author: Ingo Molnar Date: Fri Apr 3 12:29:47 2015 +0200 x86/fpu: Simplify fpu__unlazy_stopped() Open code the PF_USED_MATH logic, to make the logic more obvious. (We'll slowly convert the other users of *_used_math() methods as well.) Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/i387.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 8694c3e793810de3f7ff612d0fc23b70dc5a7e4d Author: Ingo Molnar Date: Fri Apr 3 12:28:15 2015 +0200 x86/fpu: Optimize fpu__unlazy_stopped() This function is only called for stopped child tasks, so the fpu__save() branch will never get called - remove it. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/i387.c | 2 -- 1 file changed, 2 deletions(-) commit 67e97fc2ec575adaacca296834f9ea0e1e34b563 Author: Ingo Molnar Date: Fri Apr 3 12:21:03 2015 +0200 x86/fpu: Rename init_fpu() to fpu__unlazy_stopped() and add debugging check This function name is a misnomer now that we've split out all the other users from it. Rename it accordingly: it's used to save the FPU state of (ptrace-)stopped child tasks. Add debugging check to double check this intended usage: that this function is only called for non-current, stopped child tasks. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/i387.c | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) commit bda283796b38baae3ec5c8c788b143b1fb9dcc77 Author: Ingo Molnar Date: Fri Apr 3 12:17:28 2015 +0200 x86/fpu: Make init_fpu() static Now that the allocation users have been split off into a separate function, init_fpu() has become local to i387.c: make it static. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/i387.h | 2 -- arch/x86/kernel/i387.c | 3 +-- 2 files changed, 1 insertion(+), 4 deletions(-) commit 97185c95f7ab7f752473c34672dab0925758094b Author: Ingo Molnar Date: Fri Apr 3 12:02:02 2015 +0200 x86/fpu: Split an fpstate_alloc_init() function out of init_fpu() Most init_fpu() users don't want the register-saving aspect of the function, they are calling it for 'current' and when FPU registers are not allocated and initialized yet. Split out a simplified API that does just that (and add debug-checks for these conditions): fpstate_alloc_init(). Use it where appropriate. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/i387.h | 3 +++ arch/x86/kernel/i387.c | 31 +++++++++++++++++++++++++++++++ arch/x86/kernel/process.c | 2 +- arch/x86/kernel/traps.c | 2 +- arch/x86/kernel/xsave.c | 2 +- arch/x86/kvm/x86.c | 2 +- arch/x86/math-emu/fpu_entry.c | 2 +- 7 files changed, 39 insertions(+), 5 deletions(-) commit 68ad8b9feae583cc5102ec86ad410fce542a5311 Author: Ingo Molnar Date: Fri Apr 3 11:50:20 2015 +0200 x86/fpu: Remove stale init_fpu() prototype We are going to split init_fpu() so keep only a single prototype, in i387.h. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/xsave.h | 1 - 1 file changed, 1 deletion(-) commit 1a7dc0db7181ebc8b9ec17e5a15ad4c766c7d3d4 Author: Ingo Molnar Date: Fri Apr 3 11:33:52 2015 +0200 x86/fpu: Rename fpu_detect() to fpu__detect() Use the fpu__*() namespace to organize FPU ops better. Also document fpu__detect() a bit. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/processor.h | 2 +- arch/x86/kernel/cpu/common.c | 2 +- arch/x86/kernel/i387.c | 6 +++++- 3 files changed, 7 insertions(+), 3 deletions(-) commit 87cdb98affe54b6f390f4622b254569b90820817 Author: Ingo Molnar Date: Fri Apr 3 11:06:43 2015 +0200 x86/fpu: Add debugging check to fpu__save() Document the function a bit more and add debugging check that we are only running this with the current task. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/i387.c | 4 ++++ 1 file changed, 4 insertions(+) commit 4af08f2f47f0ed3c48e557ac47ed2ae616d6866b Author: Ingo Molnar Date: Fri Apr 3 11:01:36 2015 +0200 x86/fpu: Add comments to fpu__save() and restrict its export Add an explanation to fpu__save() and also don't export it to random modules - we don't want them to futz around with deep kernel internals. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/i387.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 0a7815515471a80379bfefc9f1913e0d8c87fbfb Author: Ingo Molnar Date: Fri Apr 3 10:58:52 2015 +0200 x86/fpu: Rename unlazy_fpu() to fpu__save() This function is a misnomer on two levels: 1) it doesn't really manipulate TS on modern CPUs anymore, its primary purpose is to save FPU state, used: - when executing fork()/clone(): to copy current FPU state to the child's FPU state. - when handling math exceptions: to generate the math error si_code in the signal frame. 2) even on legacy CPUs it doesn't actually 'unlazy', if then it lazies the FPU state: as a side effect of the old FNSAVE instruction which clears (destroys) FPU state it's necessary to set CR0::TS. So rename it to fpu__save() to better reflect its purpose. Reviewed-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/fpu-internal.h | 2 +- arch/x86/include/asm/i387.h | 2 +- arch/x86/kernel/i387.c | 6 +++--- arch/x86/kernel/traps.c | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) commit a9a3f5c26ae578d210a33e05e15bb599ce53df4e Merge: ea6cd25 0a4377d Author: Thomas Gleixner Date: Tue May 19 15:43:01 2015 +0200 Merge branch 'irq/for-x86' into x86/apic Pull the irq core change which is required to merge the preparatory patches for posted interrupts. commit fbc9f16a23a307f1ffbd498100f36a3e99367432 Author: Peter Zijlstra Date: Tue May 19 13:53:29 2015 +0200 mm/fault, um: Fix compile error A missing include file caused build fail. Reported-by: Ingo Molnar Signed-off-by: Peter Zijlstra (Intel) Cc: David Hildenbrand Cc: David.Laight@ACULAB.COM Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Zijlstra (Intel) Cc: airlied@linux.ie Cc: akpm@linux-foundation.org Cc: benh@kernel.crashing.org Cc: bigeasy@linutronix.de Cc: borntraeger@de.ibm.com Cc: daniel.vetter@intel.com Cc: heiko.carstens@de.ibm.com Cc: herbert@gondor.apana.org.au Cc: hocko@suse.cz Cc: hughd@google.com Cc: mst@redhat.com Cc: paulus@samba.org Cc: ralf@linux-mips.org Cc: schwidefsky@de.ibm.com Cc: yang.shi@windriver.com Fixes: 70ffdb9393a7 ("mm/fault, arch: Use pagefault_disable() to check for disabled pagefaults in the handler") Signed-off-by: Ingo Molnar arch/um/kernel/trap.c | 1 + 1 file changed, 1 insertion(+) commit a6c761e44cfdeffc31785c698aa04d310e7cd686 Merge: 939ef66 0a4377d Author: Thomas Gleixner Date: Tue May 19 15:41:30 2015 +0200 Merge branch 'irq/for-x86' into irq/core Pull in the branch which can be consumed by x86 to build their changes on top. commit 0a4377de305684c883bf90ad21e3cbdeead70f5c Author: Jiang Liu Date: Tue May 19 17:07:14 2015 +0800 genirq: Introduce irq_set_vcpu_affinity() to target an interrupt to a VCPU With Posted-Interrupts support in Intel CPU and IOMMU, an external interrupt from assigned-devices could be directly delivered to a virtual CPU in a virtual machine. Instead of hacking KVM and Intel IOMMU drivers, we propose a platform independent interface to target an interrupt to a specific virtual CPU in a virtual machine, or set virtual CPU affinity for an interrupt. By adopting this new interface and the hierarchy irqdomain, we could easily support posted-interrupts on Intel platforms, and also provide flexible enough interfaces for other platforms to support similar features. Here is the usage scenario for this interface: Guest update MSI/MSI-X interrupt configuration -->QEMU and KVM handle this -->KVM call this interface (passing posted interrupts descriptor and guest vector) -->irq core will transfer the control to IOMMU -->IOMMU will do the real work of updating IRTE (IRTE has new format for VT-d Posted-Interrupts) Signed-off-by: Jiang Liu Signed-off-by: Feng Wu Link: http://lkml.kernel.org/r/1432026437-16560-2-git-send-email-feng.wu@intel.com Signed-off-by: Thomas Gleixner include/linux/irq.h | 6 ++++++ kernel/irq/chip.c | 14 ++++++++++++++ kernel/irq/manage.c | 31 +++++++++++++++++++++++++++++++ 3 files changed, 51 insertions(+) commit 822cfdfb9511c2658a10a21b0323144c632aa08c Author: Alexandre Belloni Date: Fri Apr 3 11:01:18 2015 +0200 ARM: multi_v7_defconfig: Add Atmel SAMA5 family Add the Atmel sama5d3 and sama5d4 and their peripherals to multi_v7_defconfig. Note that the console will be ttyAT0 instead of the usual ttyS0. Signed-off-by: Alexandre Belloni Signed-off-by: Nicolas Ferre arch/arm/configs/multi_v7_defconfig | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) commit daa67b4b70568a07fef3cffacb2055891bf42ddb Author: Nicholas Mc Guire Date: Mon May 18 14:19:14 2015 +0200 time: Allow gcc to fold constants when possible To allow constant folding in msecs_to_jiffies() conditionally calls the HZ dependent _msecs_to_jiffies() helpers or, when gcc can not figure out constant folding, __msecs_to_jiffies which is the renamed original msecs_to_jiffies() function. Signed-off-by: Nicholas Mc Guire Cc: Masahiro Yamada Cc: Sam Ravnborg Cc: Joe Perches Cc: John Stultz Cc: Andrew Hunter Cc: Paul Turner Cc: Michal Marek Link: http://lkml.kernel.org/r/1431951554-5563-3-git-send-email-hofrat@osadl.org Signed-off-by: Thomas Gleixner include/linux/jiffies.h | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) commit ca42aaf0c8616cde6161ea4391dff364efeee46a Author: Nicholas Mc Guire Date: Mon May 18 14:19:13 2015 +0200 time: Refactor msecs_to_jiffies Refactor the msecs_to_jiffies conditional code part in time.c and jiffies.h putting it into conditional functions rather than #ifdefs to improve readability. [ tglx: Verified that there is no binary code change ] Signed-off-by: Nicholas Mc Guire Cc: Masahiro Yamada Cc: Sam Ravnborg Cc: Joe Perches Cc: John Stultz Cc: Andrew Hunter Cc: Paul Turner Cc: Michal Marek Link: http://lkml.kernel.org/r/1431951554-5563-2-git-send-email-hofrat@osadl.org Signed-off-by: Thomas Gleixner include/linux/jiffies.h | 64 ++++++++++++++++++++++++++++++++++++++++++++++++- kernel/time/time.c | 59 +++++++++++++++------------------------------ 2 files changed, 82 insertions(+), 41 deletions(-) commit 0a227985d4a993a322ff72ecbaeee2611d624216 Author: Nicholas Mc Guire Date: Mon May 18 14:19:12 2015 +0200 time: Move timeconst.h into include/generated kernel/time/timeconst.h is moved to include/generated/ and generated by the top level Kbuild. This allows using timeconst.h in an earlier build stage. Signed-off-by: Nicholas Mc Guire Cc: Masahiro Yamada Cc: Sam Ravnborg Cc: Joe Perches Cc: John Stultz Cc: Andrew Hunter Cc: Paul Turner Cc: Michal Marek Link: http://lkml.kernel.org/r/1431951554-5563-1-git-send-email-hofrat@osadl.org Signed-off-by: Thomas Gleixner Kbuild | 34 +++++++++++++++++++++++++++------- kernel/time/Makefile | 17 +---------------- kernel/time/time.c | 2 +- kernel/time/timeconst.bc | 3 ++- 4 files changed, 31 insertions(+), 25 deletions(-) commit 3fc3a0be0dab352e065d1dad7d3f81953ed0d4bc Author: Geert Uytterhoeven Date: Fri May 8 10:47:43 2015 +0200 PM / clk: Fix clock error check in __pm_clk_add() In the final iteration of commit 245bd6f6af8a62a2 ("PM / clock_ops: Add pm_clk_add_clk()"), a refcount increment was added by Grygorii Strashko. However, the accompanying IS_ERR() check operates on the wrong clock pointer, which is always zero at this point, i.e. not an error. This may lead to a NULL pointer dereference later, when __clk_get() tries to dereference an error pointer. Check the passed clock pointer instead to fix this. Signed-off-by: Geert Uytterhoeven Fixes: 245bd6f6af8a62a2 ("PM / clock_ops: Add pm_clk_add_clk()") Signed-off-by: Rafael J. Wysocki drivers/base/power/clock_ops.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 17a487f10442056a1ad1f890a80bc761dcc358dc Author: Nicolas Ferre Date: Tue May 19 10:00:57 2015 +0200 ARM: at91/defconfig: add CONFIG_REGULATOR_FIXED_VOLTAGE for mmc driver As an update of the sd/mmc DT definition needs the fixed voltage regulator, add it to the at91 defconfigs. Signed-off-by: Nicolas Ferre arch/arm/configs/at91_dt_defconfig | 2 ++ arch/arm/configs/sama5_defconfig | 1 + 2 files changed, 3 insertions(+) commit 8d545f32bd77c10c2ab85fce4ddf1273d325d7d3 Author: Ludovic Desroches Date: Mon Apr 27 15:27:52 2015 +0200 ARM: at91/dt: sama5d4 xplained: add regulators for v(q)mmc1 supplies Add vcc_mmc1 fixed regulator to remove the 'no vmmc regulator found' warning when probing the mmc1 device. Signed-off-by: Ludovic Desroches Signed-off-by: Nicolas Ferre arch/arm/boot/dts/at91-sama5d4_xplained.dts | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit 1b53e3416dd05dd515d90ef8e587119da57328fe Author: Ben Dooks Date: Mon Apr 27 15:19:12 2015 +0200 ARM: at91/dt: sama5d3 xplained: add fixed regulator for vmmc0 Add fixed regulator for vmmc0 and attach the vmmc for it to the mmc0 node on the SAM5D3 Xplained board. This will remove the following warning from the kernel: atmel_mci f0000000.mmc: No vmmc regulator found Note, atmel_defconfig will need fixed regulator support enabled if this is to be used properly. Signed-off-by: Ben Dooks [use a fixed regulator instead of gpio one] Signed-off-by: Ludovic Desroches Signed-off-by: Nicolas Ferre arch/arm/boot/dts/at91-sama5d3_xplained.dts | 9 +++++++++ 1 file changed, 9 insertions(+) commit ed8d177b3f6f7ec86f599d2f19d0b3ca321f11cb Author: Ben Dooks Date: Mon Apr 27 15:19:11 2015 +0200 ARM: at91/dt: sama5d3 xplained: add mmc0 vqmmc entry The SAM5D3 Xplained device tree is missing the vqmmc node which is tied to 3.3V on the board. Add this to avoid the kernel warning that there is no vqmmc node. atmel_mci f0000000.mmc: No vqmmc regulator found Signed-off-by: Ben Dooks Signed-off-by: Ludovic Desroches Signed-off-by: Nicolas Ferre arch/arm/boot/dts/at91-sama5d3_xplained.dts | 1 + 1 file changed, 1 insertion(+) commit 6f4728c5e5c633b3df618bdec067c80cbb446d3b Author: Ben Dooks Date: Mon Apr 27 15:19:10 2015 +0200 ARM: at91/dt: sama5d3 xplained: fill in mmc1 and set it to disabled The mmc1 channel is not populated on the SAM5D3 Xplained board, however it is enabled and therefore the driver is attaching to it. The node configuration for mmc1 is missing, so add an mmc1 node in the device tree and set its status to disabled. Also add the vmmc and the necessary slot configuration if this node were enabled to avoid the following warnings from the driver: atmel_mci f8000000.mmc: No vmmc regulator found atmel_mci f8000000.mmc: No vqmmc regulator found Signed-off-by: Ben Dooks Signed-off-by: Ludovic Desroches Signed-off-by: Nicolas Ferre arch/arm/boot/dts/at91-sama5d3_xplained.dts | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 55d6cbaabc757381834c783af48d2e85b52e2b76 Author: Josh Wu Date: Thu Apr 2 14:17:56 2015 +0800 ARM: at91/dt: sama5: reduce the NFC command register map commit 111573ccd89b ("mtd: atmel_nand: check NFC busy flag by HSMC_SR instead of NFC cmd regs") check NFC busy by nfc SR instead of NFC cmd regs. So we don't need to map NFC cmd registers to include NFCBUSY bit. That means we only need map 0x08000000 instead of 0x10000000 for NFC cmd regs. This patch reduce the NFC cmd regs map for sama5d3 & sama5d4. Signed-off-by: Josh Wu Signed-off-by: Nicolas Ferre arch/arm/boot/dts/sama5d3.dtsi | 2 +- arch/arm/boot/dts/sama5d4.dtsi | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 1606f9de2ae9b369fa85dce3ef7a6c1de5b06fac Author: Ludovic Desroches Date: Mon Apr 27 11:15:06 2015 +0200 ARM: at91/dt: sama5d4: update pinctrl ranges Update the pinctrl ranges property to support pioD controller whose mapping is not contiguous with other pio controllers. Without this update, getting resource will fail, then pinctrl probe will fail too because there is a missing pio controller. Signed-off-by: Ludovic Desroches Signed-off-by: Nicolas Ferre arch/arm/boot/dts/sama5d4.dtsi | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 9e65adb4f65d621a90e989af4e8d17d3f2bab92a Author: Nicolas Ferre Date: Tue Mar 31 11:01:12 2015 +0200 ARM: at91/dt: sama5d3 xplained: add phy address for macb0 Specify the phy address on macb0 node aka GEM. Signed-off-by: Nicolas Ferre arch/arm/boot/dts/at91-sama5d3_xplained.dts | 6 ++++++ 1 file changed, 6 insertions(+) commit 50f2472a51f97ab1fdcb56417c6549b97ca05bec Author: Nicolas Ferre Date: Mon May 18 12:18:03 2015 +0200 ARM: at91/dt: sama5d4 xplained: add spi1 on j14 connector Route SPI1 on the Arduino "in the middle" spi connector. Signed-off-by: Nicolas Ferre arch/arm/boot/dts/at91-sama5d4_xplained.dts | 5 +++++ 1 file changed, 5 insertions(+) commit df2453fe0d635eaf59c9e56b9091efbc71b65281 Author: Suchang Ko Date: Tue May 12 15:34:43 2015 +0900 ARM: at91/dt: sama5d4: add spi1, spi2 dt nodes Add sama5d4 spi1, spi2 dt nodes & pinctrl. Signed-off-by: Suchang Ko [nicolas.ferre@atmel.com: split patch, reorder & whitespace fixes] Signed-off-by: Nicolas Ferre arch/arm/boot/dts/sama5d4.dtsi | 60 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) commit 692768c4b28ddfc96f5ff752048826b859bd71ca Author: Nicolas Boichat Date: Thu May 14 08:43:31 2015 +0800 ASoC: rt5645: Rename HP control to Headphone Use the standard name "Headphone" instead of "HP" for better userspace integration. Signed-off-by: Nicolas Boichat Acked-by: Bard Liao Signed-off-by: Mark Brown sound/soc/codecs/rt5645.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 345b0f50e74671fd8299e26c73ab50c5a0cf6ed9 Author: John Lin Date: Mon May 18 10:34:03 2015 +0800 ASoC: rt5645: fix kernel hang when call rt5645_set_jack_detect() rt5645_set_jack_detect() is usually called from snd_soc_dai_link.init() and it calls snd_soc_jack_report() from rt5645_irq_detection() if jack is inserted. snd_soc_jack_report() results in kernel hang if it is called from a context which cannot sleep. This patch makes sure snd_soc_jack_report() is called from workqueue. It can fix the kernel hang issue. Signed-off-by: John Lin Signed-off-by: Mark Brown sound/soc/codecs/rt5645.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 5c0a1c28c064e5998f6d6f48826e9701e9f68af2 Author: Jemma Denson Date: Fri May 15 16:08:26 2015 -0300 [media] cx24120: Complete modfec_table Add in all the likely values for setting fec on tuning. Some values yet to be tested but very likely to be correct. In the very unlikely event that these are wrong tuning with FEC_AUTO will still work. Signed-off-by: Jemma Denson Signed-off-by: Patrick Boettcher Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/cx24120.c | 44 +++++++++++++++++++---------------- 1 file changed, 24 insertions(+), 20 deletions(-) commit 7591cd2cd59d77c52141d9c2c759c14f981c1a13 Author: Oded Gabbay Date: Tue Apr 21 15:09:48 2015 +0300 drm/amdkfd: change driver version to 0.7.2 Signed-off-by: Oded Gabbay drivers/gpu/drm/amd/amdkfd/kfd_module.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 8377396b5db166c56a90b400317f26954901c994 Author: Andrew Lewycky Date: Tue Sep 9 15:22:05 2014 +0300 drm/amdkfd: Implement events IOCTLs Signed-off-by: Andrew Lewycky Signed-off-by: Oded Gabbay drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | 36 +++++++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 5 deletions(-) commit 81663016dbfd53e29d1b5c5ddbc9b12ae1d66474 Author: Oded Gabbay Date: Wed Dec 24 13:30:52 2014 +0200 drm/amdkfd: Add module parameter of send_sigterm This patch adds a new kernel module parameter to amdkfd, called send_sigterm. This parameter specifies whether amdkfd should send the SIGTERM signal to an HSA process, when the following conditions occur: 1. The GPU triggers an exception regarding a kernel that was issued by this process. 2. The HSA process isn't waiting on an event that handles this exception. The default behavior is not to send a SIGTERM and suffice with a dmesg error print. Reviewed-by: Ben Goz Signed-off-by: Oded Gabbay drivers/gpu/drm/amd/amdkfd/kfd_events.c | 12 +++++++++--- drivers/gpu/drm/amd/amdkfd/kfd_module.c | 5 +++++ drivers/gpu/drm/amd/amdkfd/kfd_priv.h | 6 ++++++ 3 files changed, 20 insertions(+), 3 deletions(-) commit 930c5ff4390221cccf368b305c04351fbcf0dfcf Author: Alexey Skidanov Date: Tue Nov 25 10:34:31 2014 +0200 drm/amdkfd: Add bad opcode exception handling Signed-off-by: Alexey Skidanov Signed-off-by: Oded Gabbay drivers/gpu/drm/amd/amdkfd/cik_event_interrupt.c | 5 ++++- drivers/gpu/drm/amd/amdkfd/cik_int.h | 1 + drivers/gpu/drm/amd/amdkfd/kfd_events.c | 21 +++++++++++++++++++++ drivers/gpu/drm/amd/amdkfd/kfd_events.h | 1 + drivers/gpu/drm/amd/amdkfd/kfd_priv.h | 2 ++ 5 files changed, 29 insertions(+), 1 deletion(-) commit 59d3e8be87a14c6a0d91c683e63d9b31734525ae Author: Alexey Skidanov Date: Tue Apr 14 18:05:49 2015 +0300 drm/amdkfd: Add memory exception handling This patch adds Peripheral Page Request (PPR) failure processing and reporting. Bad address or pointer to a system memory block with inappropriate read/write permission cause such PPR failure during a user queue processing. PPR request handling is done by IOMMU driver notifying AMDKFD module on PPR failure. The process triggering a PPR failure will be notified by appropriate event or SIGTERM signal will be sent to it. v3: - Change all bool fields in struct kfd_memory_exception_failure to uint32_t Signed-off-by: Alexey Skidanov Signed-off-by: Oded Gabbay drivers/gpu/drm/amd/amdkfd/kfd_device.c | 29 ++++++ drivers/gpu/drm/amd/amdkfd/kfd_events.c | 155 ++++++++++++++++++++++++++++++-- drivers/gpu/drm/amd/amdkfd/kfd_events.h | 7 ++ drivers/gpu/drm/amd/amdkfd/kfd_priv.h | 5 +- 4 files changed, 187 insertions(+), 9 deletions(-) commit f3a398183f7b9ef78f6b71ee9f7641e046403bcb Author: Andrew Lewycky Date: Sun May 10 12:15:46 2015 +0300 drm/amdkfd: Add the events module This patch adds the events module (kfd_events.c) and the interrupt handle module for Kaveri (cik_event_interrupt.c). The patch updates the interrupt_is_wanted(), so that it now calls the interrupt isr function specific for the device that received the interrupt. That function(implemented in cik_event_interrupt.c) returns whether this interrupt is of interest to us or not. The patch also updates the interrupt_wq(), so that it now calls the device's specific wq function, which checks the interrupt source and tries to signal relevant events. v2: Increase limit of signal events to 4096 per process Remove bitfields from struct cik_ih_ring_entry Rename radeon_kfd_event_mmap to kfd_event_mmap Add debug prints to allocate_free_slot and allocate_signal_page Make allocate_event_notification_slot return a correct value Add warning prints to create_signal_event Remove error print from IOCTL path Reformatted debug prints in kfd_event_mmap Map correct size (as received from mmap) in kfd_event_mmap v3: Reduce limit of signal events back to 256 per process Fix allocation of kernel memory for signal events Signed-off-by: Andrew Lewycky Signed-off-by: Oded Gabbay drivers/gpu/drm/amd/amdkfd/Makefile | 2 +- drivers/gpu/drm/amd/amdkfd/cik_event_interrupt.c | 63 ++ drivers/gpu/drm/amd/amdkfd/cik_int.h | 40 ++ drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | 16 +- drivers/gpu/drm/amd/amdkfd/kfd_device.c | 1 + drivers/gpu/drm/amd/amdkfd/kfd_events.c | 799 +++++++++++++++++++++++ drivers/gpu/drm/amd/amdkfd/kfd_events.h | 76 +++ drivers/gpu/drm/amd/amdkfd/kfd_interrupt.c | 11 +- drivers/gpu/drm/amd/amdkfd/kfd_priv.h | 47 ++ drivers/gpu/drm/amd/amdkfd/kfd_process.c | 24 + 10 files changed, 1074 insertions(+), 5 deletions(-) commit 29a5d3eb9a7612b26ba098a0db65e54372612d07 Author: Andrew Lewycky Date: Sun Dec 7 17:05:11 2014 +0200 drm/amdkfd: add events IOCTL set definitions - AMDKFD_IOC_CREATE_EVENT: Creates a new event of a specified type - AMDKFD_IOC_DESTROY_EVENT: Destroys an existing event - AMDKFD_IOC_SET_EVENT: Signal an existing event - AMDKFD_IOC_RESET_EVENT: Reset an existing event - AMDKFD_IOC_WAIT_EVENTS: Wait on event(s) until they are signaled v2: - Move the limit of the signal events to kfd_ioctl.h so it can be used by userspace v3: - Change all bool fields in struct kfd_memory_exception_failure to uint32_t Signed-off-by: Andrew Lewycky Signed-off-by: Oded Gabbay drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | 45 +++++++++++++++ include/uapi/linux/kfd_ioctl.h | 96 +++++++++++++++++++++++++++++++- 2 files changed, 139 insertions(+), 2 deletions(-) commit 39572ab30feb92a8d49bf2a59c9a492ba858c008 Author: Alexander Aring Date: Sun May 17 21:45:10 2015 +0200 fakelb: cleanup code This patch just cleanups the code at several places. Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann drivers/net/ieee802154/fakelb.c | 29 ++++++++++++----------------- 1 file changed, 12 insertions(+), 17 deletions(-) commit a09c07a8c89ee910f97d09577ec30b3084fb1d6a Author: Alexander Aring Date: Sun May 17 21:45:09 2015 +0200 fakelb: add support for async xmit handling This patch will add async xmit support for the fakelb driver. Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann drivers/net/ieee802154/fakelb.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 98be165b4355f750a62ca5ad280e04a135fe9bbd Author: Alexander Aring Date: Sun May 17 21:45:08 2015 +0200 fakelb: remove fakelb_hw_deliver This patch cleanups the fakelb_hw_deliver function by removing them. Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann drivers/net/ieee802154/fakelb.c | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) commit e214a9040a602552d40d0c71cdb38fac8f619cd6 Author: Alexander Aring Date: Sun May 17 21:45:07 2015 +0200 fakelb: add virtual phy reset defaults This patch adds reset defaults for the fakelb phy. I used the channel 13 and page 0 which is the same default like at86rf233. Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann drivers/net/ieee802154/fakelb.c | 5 +++++ 1 file changed, 5 insertions(+) commit 12da8d97ab3239101077a415c2587bfbf6725216 Author: Alexander Aring Date: Sun May 17 21:45:06 2015 +0200 fakelb: use own channel and page attributes This patch adds an own phy attribute for page and channel into fakelb_phy. The current way is to use the internal mac802154 stored phy pib values which can occur in locking issues while using it inside the driver layer. Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann drivers/net/ieee802154/fakelb.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) commit e369dc8f1aa95cd490e1ab75043dcf50d2190453 Author: Alexander Aring Date: Sun May 17 21:45:05 2015 +0200 fakelb: introduce fakelb ifup phys list This patch introduce a fakelb ifup phys list, which stores all registered phys which are in an operated mode. This will reduce the iterations of non-operated phys while transmit frames. There exists two locks now, one rwlock for the operated interfaces and the spinlock for protecting the list for all registered virtual phys. Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann drivers/net/ieee802154/fakelb.c | 58 ++++++++++++++++++----------------------- 1 file changed, 25 insertions(+), 33 deletions(-) commit 6fa2cffe8cf937fc10be362a2dcac8a5965f618e Author: Alexander Aring Date: Sun May 17 21:45:04 2015 +0200 fakelb: move lock out of iteration The list need to be protected while iteration which is need when other list iterates at the same time over this list. Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann drivers/net/ieee802154/fakelb.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit b82b99f16bc207291b14228441cfffbfd23d5f49 Author: Alexander Aring Date: Sun May 17 21:45:03 2015 +0200 fakelb: declare fakelb list static This patch moves the fakelb list of all registered phy's in a static declaration in the fakelb driver. Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann drivers/net/ieee802154/fakelb.c | 32 +++++++------------------------- 1 file changed, 7 insertions(+), 25 deletions(-) commit 3335d98c69b1b09b963d09c8475c40bd8988c994 Author: Alexander Aring Date: Sun May 17 21:45:02 2015 +0200 fakelb: declare rwlock static This patch moves the rwlock declarition into a static variable. Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann drivers/net/ieee802154/fakelb.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) commit 9f8b97f888445b737ea3716ca53498663e18d971 Author: Alexander Aring Date: Sun May 17 21:45:01 2015 +0200 fakelb: don't deliver when one phy A real phy don't transmit the transmitted frame back to the phy. This behaviour will confuse the 6LoWPAN and the upper IPv6 neighbour discovery cache. We need now at least two virtual phy's to creating a virtual wpan network. Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann drivers/net/ieee802154/fakelb.c | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) commit db3f5d0df9af1e5965e64595595a6a719c42fcf3 Author: Alexander Aring Date: Sun May 17 21:45:00 2015 +0200 fakelb: rename fakelb_dev_priv to fakelb_phy This patch renames fakelb_dev_priv to fakelb_phy. We don't faking devices here, we fake wpan phys. This avoids also confusing with the variable priv, which is used several times in this driver to represent this structure. Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann drivers/net/ieee802154/fakelb.c | 93 +++++++++++++++++++++-------------------- 1 file changed, 47 insertions(+), 46 deletions(-) commit 3186d3d7aec3b2f242abbc0a0219226e7705c905 Author: Alexander Aring Date: Sun May 17 21:44:59 2015 +0200 fakelb: use list_for_each_entry_safe Iterate and removing items from a list, we should use list_for_each_entry_safe instead list_for_each_entry to avoid accidents by removing. Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann drivers/net/ieee802154/fakelb.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 7e57905ba6c825f38f146b5f8974c2ce27f299bb Author: Alexander Aring Date: Sun May 17 21:44:58 2015 +0200 fakelb: creating two virtual phys per default This patch change the default virtual wpan phys of fakelb driver from one to two. To have one virtual phy makes no sense, because it need at least two virtual phy's to speak to each other. Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann drivers/net/ieee802154/fakelb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7490b008d123f9bd781f51ad86b543aed49f6200 Author: Alexander Aring Date: Sun May 17 21:44:57 2015 +0200 ieee802154: add support for atusb transceiver This patch adds support for the atusb transceiver. The current driver supports basic functionality only. Possible further tasks would be to sync functionality with the at86rf230 driver, because the atusb use internally an at86rf231 transceiver. Some of these features need a firmware update like AACK and ARET handling. I did small changes to this driver to work with xmit_async callback and setting of a random extended perm address. Signed-off-by: Alexander Aring Cc: Werner Almesberger Cc: Stefan Schmidt Cc: Richard Sharpe Signed-off-by: Marcel Holtmann drivers/net/ieee802154/Kconfig | 10 + drivers/net/ieee802154/Makefile | 1 + drivers/net/ieee802154/at86rf230.c | 199 +---------- drivers/net/ieee802154/at86rf230.h | 220 ++++++++++++ drivers/net/ieee802154/atusb.c | 692 +++++++++++++++++++++++++++++++++++++ drivers/net/ieee802154/atusb.h | 84 +++++ 6 files changed, 1009 insertions(+), 197 deletions(-) commit 3862eba691e3928338e188915676dd4fa7cefcaa Author: Alexander Aring Date: Sun May 17 21:44:56 2015 +0200 mac802154: tx: allow xmit complete from hard irq Replace consume_skb with dev_consume_skb_any in ieee802154_xmit_complete which can be called in hard irq and other contexts. Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann net/mac802154/util.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit a2c390aa3d67f0c3a1465e246d1b7468c37abae4 Author: Alexander Aring Date: Sun May 17 21:44:55 2015 +0200 at86rf230: fix callback for aret handling This patch fix the complete callback for going into aret on. Currently we starting after a state change into aret on again a state change into aret on which is not necessary. Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann drivers/net/ieee802154/at86rf230.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cb97d9a3eb0be1e33db5535955e6629e800f3f0e Author: Martin Townsend Date: Sun May 17 21:44:54 2015 +0200 mac802154: fakelb: Fix potential NULL pointer dereference. fakelb_hw_deliver creates a copy of the skb's header which can potentially return NULL so we now check for this before actually delivering to the 802.15.4 MAC layer. Signed-off-by: Martin Townsend Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann drivers/net/ieee802154/fakelb.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 0e66545701014814360b08a7a43ca652f82b6e5a Author: Alexander Aring Date: Sun May 17 21:44:53 2015 +0200 nl802154: add support for dump phy capabilities This patch add support to nl802154 to dump all phy capabilities which is inside the wpan_phy_supported struct. Also we introduce a new method to dumping supported channels. The new method will offer a easier interface and has lesser netlink traffic. Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann include/net/nl802154.h | 57 ++++++++++++++++++++++ net/ieee802154/nl802154.c | 117 +++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 173 insertions(+), 1 deletion(-) commit 392f4e67ad96e1d686c700cba5e218d40347426d Author: Alexander Aring Date: Sun May 17 21:44:52 2015 +0200 at86rf230: add reset states of tx power level This patch adds the reset states for tx power levels after running reset procedure. Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann drivers/net/ieee802154/at86rf230.c | 1 + 1 file changed, 1 insertion(+) commit cc643496c0c3f242e5df9dc2bc243764d269d4f1 Author: Alexander Aring Date: Sun May 17 21:44:51 2015 +0200 at86rf230: add cca ed level reset value This patch adds reset values for cca ed level values after running reset procedure. Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann drivers/net/ieee802154/at86rf230.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 2d9fe7ab372a75c0148027bc48a18a64f150a7e7 Author: Alexander Aring Date: Sun May 17 21:44:50 2015 +0200 at86rf230: rework tx cca energy detection level This patch reworks the cca energy detection level handling. This contains a calculation which works on all transceiver types and add support for dump cca energy detection levels. Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann drivers/net/ieee802154/at86rf230.c | 79 ++++++++++++++++++++++++++++---------- 1 file changed, 59 insertions(+), 20 deletions(-) commit 6f4da3f897906d0e1f27e3e44bd445f8e6d7bd85 Author: Alexander Aring Date: Sun May 17 21:44:49 2015 +0200 at86rf230: rework tx power support This patch adds support for get transmit power levels and reworks the set of transmit power levels which was broken before. Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann drivers/net/ieee802154/at86rf230.c | 83 +++++++++++++++++++++++++++++--------- 1 file changed, 64 insertions(+), 19 deletions(-) commit 8377d22c0385b4a08ddeb1029b80674eb5db38b4 Author: Alexander Aring Date: Sun May 17 21:44:48 2015 +0200 at86rf230: set cca_modes supported flags This patch sets the at86rf230 supported cca modes. In case of at86rf212 it also can support listen before transmit. Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann drivers/net/ieee802154/at86rf230.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 65318680c97cca15e3678148b3a5acaa33e991ec Author: Alexander Aring Date: Sun May 17 21:44:47 2015 +0200 ieee802154: add iftypes capability This patch adds capability flags for supported interface types. Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann include/net/cfg802154.h | 2 +- net/ieee802154/nl802154.c | 3 ++- net/mac802154/main.c | 6 ++++++ 3 files changed, 9 insertions(+), 2 deletions(-) commit edea8f7c75ec6c238130bd7e74d9f6f4c26e97b0 Author: Alexander Aring Date: Sun May 17 21:44:46 2015 +0200 cfg802154: introduce wpan phy flags This patch introduce a flag property for the wpan phy structure. The current flag settings in ieee802154_hw are accessable in mac802154 layer only which is okay for flags which indicates MAC handling which are done by phy. For real PHY layer settings like cca mode, transmit power, cca energy detection level. The difference between these flags are that the MAC handling flags are only handled in mac802154/HardMac layer e.g. on an interface up. The phy settings are direct netlink calls from nl802154 into the driver layer and the nl802154 need to have a chance to check if the driver supports this handling before sending to the next layer. We also check now on PHY flags while dumping and setting pib attributes. In comparing with MIB attributes the 802.15.4 gives us an default value which we assume when a transceiver implement less functionality. In case of MIB settings the nl802154 layer doesn't need to check on the ieee802154_hw flags then. Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann drivers/net/ieee802154/at86rf230.c | 9 +++++++-- include/net/cfg802154.h | 16 ++++++++++++++++ include/net/mac802154.h | 29 +++++++---------------------- net/ieee802154/nl802154.c | 27 +++++++++++++++++---------- net/mac802154/mac_cmd.c | 6 +++--- 5 files changed, 50 insertions(+), 37 deletions(-) commit 8329fcf11f5c2ae2fb7b1f56f05b0bb899babc85 Author: Alexander Aring Date: Sun May 17 21:44:45 2015 +0200 mac802154: remove check if operation is supported This patch removes the check if operation is supported by driver layer. This is done now by capabilities flags, if these are valid then the driver should support the operation, otherwise a WARN_ON occurs. Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann net/mac802154/cfg.c | 24 ------------------------ 1 file changed, 24 deletions(-) commit 791021bf13ec9d0fc14bfd8c9c4b368ace568239 Author: Alexander Aring Date: Sun May 17 21:44:44 2015 +0200 mac802154: check for really changes This patch adds check if the value is really changed inside pib/mib. If a transceiver do support only one value for e.g. max_be then this will also handle that the driver layer doesn't need to care about handling to set one value only. Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann include/net/cfg802154.h | 12 ++++++++++++ net/mac802154/cfg.c | 26 ++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) commit fea3318d20776a94afeea0460c6ee9904e60569e Author: Alexander Aring Date: Sun May 17 21:44:43 2015 +0200 ieee802154: add several phy supported handling This patch adds support for phy supported handling for all other already existing handling 802.15.4 functionality. We assume now a fully 802.15.4 complaint transceiver at phy allocation. If a transceiver can support 802.15.4 default values only, then the values should be overwirtten by values the transceiver supports. If the transceiver doesn't set the according hardware flags, we assume the 802.15.4 defaults now which cannot be changed. Signed-off-by: Alexander Aring Suggested-by: Phoebe Buckheister Signed-off-by: Marcel Holtmann include/net/cfg802154.h | 26 +++++++++++++++++++++++++- include/net/nl802154.h | 22 ++++++++++++++++++++++ net/ieee802154/nl802154.c | 22 +++++++++++++++++----- net/mac802154/main.c | 26 ++++++++++++++++++++++++++ 4 files changed, 90 insertions(+), 6 deletions(-) commit 72f655e44db9c7e835ceba96dc03cbe979d3f80d Author: Alexander Aring Date: Sun May 17 21:44:42 2015 +0200 ieee802154: introduce wpan_phy_supported This patch introduce the wpan_phy_supported struct for wpan_phy. There is currently no way to check if a transceiver can handle IEEE 802.15.4 complaint values. With this struct we can check before if the transceiver supports these values before sending to driver layer. Signed-off-by: Alexander Aring Suggested-by: Phoebe Buckheister Acked-by: Varka Bhadram Cc: Alan Ott Signed-off-by: Marcel Holtmann drivers/net/ieee802154/at86rf230.c | 8 ++++---- drivers/net/ieee802154/cc2520.c | 2 +- drivers/net/ieee802154/fakelb.c | 30 +++++++++++++++--------------- drivers/net/ieee802154/mrf24j40.c | 2 +- include/net/cfg802154.h | 6 +++++- net/ieee802154/nl-phy.c | 4 ++-- net/ieee802154/nl802154.c | 4 ++-- 7 files changed, 30 insertions(+), 26 deletions(-) commit 32b23550ad64d9676f2218b3d5de46bacf98ef1d Author: Alexander Aring Date: Sun May 17 21:44:41 2015 +0200 ieee802154: change cca ed level to mbm This patch change the handling of cca energy detection level from dbm to mbm. This prepares to handle floating point cca energy detection levels values. The old netlink 802.15.4 will convert the dbm value to mbm for handling backward compatibility. Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann drivers/net/ieee802154/at86rf230.c | 3 ++- include/net/cfg802154.h | 1 + include/net/mac802154.h | 5 ++--- net/ieee802154/nl-mac.c | 4 ++-- net/mac802154/driver-ops.h | 4 ++-- 5 files changed, 9 insertions(+), 8 deletions(-) commit e2eb173aaacd1a1bcd255d3e74ffb719e47eeadb Author: Alexander Aring Date: Sun May 17 21:44:40 2015 +0200 ieee802154: change transmit power to mbm This patch change the handling of transmit power level from dbm to mbm. This prepares to handle floating point transmit power levels values. The old netlink 802.15.4 will convert the dbm value to mbm for handling backward compatibility. Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann drivers/net/ieee802154/at86rf230.c | 3 ++- include/net/cfg802154.h | 1 + include/net/mac802154.h | 4 ++-- net/ieee802154/nl-mac.c | 4 ++-- net/mac802154/driver-ops.h | 4 ++-- 5 files changed, 9 insertions(+), 7 deletions(-) commit 1a19cb680be0d4b06ce9a9d6516b8f45f544d3e8 Author: Alexander Aring Date: Sun May 17 21:44:39 2015 +0200 ieee802154: change transmit power to s32 This patch change the transmit power from s8 to s32. This prepares to store a mbm value instead dbm inside the transmit power variable. The old interface keep the a s8 dbm value, which should be backward compatibility when assign s8 to s32. Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann drivers/net/ieee802154/at86rf230.c | 2 +- include/net/cfg802154.h | 2 +- include/net/mac802154.h | 2 +- net/ieee802154/nl802154.c | 6 +++--- net/mac802154/driver-ops.h | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) commit 673692faf3fb42ec73ef7210238b5869d6e2873d Author: Alexander Aring Date: Sun May 17 21:44:38 2015 +0200 ieee802154: move validation check out of softmac This patch moves the value validation out of softmac layer. We need to be sure now that this value is accepted by the transceiver/mac802154 or "possible" hardmac drivers before calling rdev-ops. Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann net/ieee802154/nl802154.c | 28 +++++++++++++++++++++++++++- net/mac802154/cfg.c | 29 ----------------------------- 2 files changed, 27 insertions(+), 30 deletions(-) commit 0cf0879acdbeff695963d78940b89497803ae55c Author: Alexander Aring Date: Sun May 17 21:44:37 2015 +0200 nl802154: cleanup invalid argument handling This patch cleanups the -EINVAL cases by combining them in one condition. Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann net/ieee802154/nl802154.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) commit 4214c5349c20005b7a83916801394eb7270896b2 Author: Takashi Iwai Date: Tue May 19 11:35:13 2015 +0200 ALSA: hda - Fix NULL dereference from CA0132 DSP loader The CA0132 DSP loader leads to NULL deference since the recent transition to HDA core code, as it unconditionally accesses hdac_stream->substream->runtime. For DSP loading, the substream shouldn't be assigned. This patch addresses the NULL dereference above in addition to assure the substream is cleared while DSP loading. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=98151 Signed-off-by: Takashi Iwai sound/hda/hdac_stream.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit ea6cd25058f39ac69623efdcbd94a7fc7d4d13f0 Author: Paul Gortmaker Date: Sat May 9 20:27:37 2015 -0400 x86: Rename eisa_set_level_irq to elcr_set_level_irq This routine has been around for over a decade, but with EISA being dead and abandoned for about twice that long, the name can be kind of confusing. The function is going at the PIC Edge/Level Configuration Registers (ELCR), so rename it as such and mentally decouple it from the long since dead EISA bus. Signed-off-by: Paul Gortmaker Reviewed-by: Maciej W. Rozycki Acked-by: Pavel Machek Cc: Rafael J. Wysocki Cc: Len Brown Cc: Bjorn Helgaas Cc: x86@kernel.org Link: http://lkml.kernel.org/r/1431217657-934-1-git-send-email-paul.gortmaker@windriver.com Signed-off-by: Thomas Gleixner arch/x86/include/asm/hw_irq.h | 3 +-- arch/x86/kernel/acpi/boot.c | 2 +- arch/x86/pci/irq.c | 13 +++++++------ 3 files changed, 9 insertions(+), 9 deletions(-) commit 6acdee8c1325ce3b02006f7ed6047f42273c9d44 Author: Yingjoe Chen Date: Mon May 18 20:01:32 2015 -0700 pinctrl: mediatek: add pinctrl/GPIO/EINT driver for mt8127 MT8127 pinctrl/eint are similar to mt8135 and mt8173, add support for mt8127 using mediatek common pinctrl driver. Signed-off-by: Yingjoe Chen Signed-off-by: Hongzhou Yang Signed-off-by: Linus Walleij drivers/pinctrl/mediatek/Kconfig | 6 + drivers/pinctrl/mediatek/Makefile | 1 + drivers/pinctrl/mediatek/pinctrl-mt8127.c | 359 +++++++ drivers/pinctrl/mediatek/pinctrl-mtk-mt8127.h | 1318 +++++++++++++++++++++++++ 4 files changed, 1684 insertions(+) commit fc59e66c4284a420f9a1b3a0f99f784847bf3ef8 Author: Hongzhou Yang Date: Mon May 18 23:11:17 2015 -0700 pinctrl: mediatek: Add Pinctrl/GPIO driver for mt6397. Add mt6397 support using mediatek common pinctrl driver. mt6397 is a PMIC, and pinctrl/GPIO is part of 6397 chip. Pinctrl/GPIO driver should obtain regmap from PMIC, so adding this support to common code. Also, mt6397 is no need to support interrupt controller, so changing common code to skip it. Signed-off-by: Hongzhou Yang Signed-off-by: Linus Walleij drivers/pinctrl/mediatek/Kconfig | 6 + drivers/pinctrl/mediatek/Makefile | 1 + drivers/pinctrl/mediatek/pinctrl-mt6397.c | 78 +++++ drivers/pinctrl/mediatek/pinctrl-mt8135.c | 2 +- drivers/pinctrl/mediatek/pinctrl-mt8173.c | 2 +- drivers/pinctrl/mediatek/pinctrl-mtk-common.c | 13 +- drivers/pinctrl/mediatek/pinctrl-mtk-common.h | 3 +- drivers/pinctrl/mediatek/pinctrl-mtk-mt6397.h | 424 ++++++++++++++++++++++++++ 8 files changed, 524 insertions(+), 5 deletions(-) commit 25d76b21b1b959b37520931fb6c4b8319a021705 Author: Hongzhou Yang Date: Mon May 18 23:11:16 2015 -0700 pinctrl: mediatek: add ies/smt control to common code. Input enable and smt setting have different register, modify code to fix it. Several mediatek soc use similar input enable/smt setting procedure as mt8173, some soc use generic input enable/smt setting, some soc has no input enable/smt setting. Adding common code to handle all those cases, so future soc driver can use it. Signed-off-by: Hongzhou Yang Signed-off-by: Linus Walleij drivers/pinctrl/mediatek/pinctrl-mt8173.c | 201 ++++++++++++++------------ drivers/pinctrl/mediatek/pinctrl-mtk-common.c | 82 ++++++++--- drivers/pinctrl/mediatek/pinctrl-mtk-common.h | 31 +++- 3 files changed, 198 insertions(+), 116 deletions(-) commit e73fe2713fc9e8ab8d2d039abc48f7684b60f5ac Author: Yingjoe Chen Date: Mon May 18 23:11:15 2015 -0700 pinctrl: mediatek: add mtk_pctrl_spec_pull_set_samereg common code Several mediatek soc use similar pull setting procedure as mt8173, the pupd enable and resistance setting are in the same register. Add common code mtk_pctrl_spec_pull_set_samereg out of spec_pull_set in mt8173 to handle this case, so future soc driver can use it. Signed-off-by: Yingjoe Chen Signed-off-by: Hongzhou Yang Signed-off-by: Linus Walleij drivers/pinctrl/mediatek/pinctrl-mt8173.c | 166 +++++++------------------- drivers/pinctrl/mediatek/pinctrl-mtk-common.c | 60 ++++++++++ drivers/pinctrl/mediatek/pinctrl-mtk-common.h | 31 +++++ 3 files changed, 136 insertions(+), 121 deletions(-) commit 2249d55827c9e5d5731d7a8622ecd366d8756bbb Author: Andrew Lewycky Date: Thu Jul 17 01:37:30 2014 +0300 drm/amdkfd: Add interrupt handling module This patch adds the interrupt handling module, kfd_interrupt.c, and its related members in different data structures to the amdkfd driver. The amdkfd interrupt module maintains an internal interrupt ring per amdkfd device. The internal interrupt ring contains interrupts that needs further handling. The extra handling is deferred to a later time through a workqueue. There's no acknowledgment for the interrupts we use. The hardware simply queues a new interrupt each time without waiting. The fixed-size internal queue means that it's possible for us to lose interrupts because we have no back-pressure to the hardware. However, only interrupts that are "wanted" by amdkfd, are copied into the amdkfd s/w interrupt ring, in order to minimize the chances for overflow of the ring. Signed-off-by: Andrew Lewycky Signed-off-by: Oded Gabbay drivers/gpu/drm/amd/amdkfd/Makefile | 1 + drivers/gpu/drm/amd/amdkfd/kfd_device.c | 22 ++- .../gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 15 ++ drivers/gpu/drm/amd/amdkfd/kfd_interrupt.c | 181 +++++++++++++++++++++ drivers/gpu/drm/amd/amdkfd/kfd_priv.h | 17 ++ 5 files changed, 235 insertions(+), 1 deletion(-) commit d36b94fcf0c812b04fff483e1b423f7d5042766e Author: Oded Gabbay Date: Thu Mar 5 15:13:18 2015 +0200 drm/radeon: Add init interrupt kfd->kgd interface This patch adds a new interface function to the kfd->kgd interface. The function is kgd_init_interrupts() and its function is to initialize a pipe's interrupts. The function currently enables the timestamp interrupt and the bad opcode interrupt. Signed-off-by: Oded Gabbay drivers/gpu/drm/amd/include/kgd_kfd_interface.h | 2 ++ drivers/gpu/drm/radeon/cik_reg.h | 2 ++ drivers/gpu/drm/radeon/cikd.h | 1 + drivers/gpu/drm/radeon/radeon_kfd.c | 21 ++++++++++++++++++++- 4 files changed, 25 insertions(+), 1 deletion(-) commit 1241e0b48f9337320a65560192f53406832eff2c Author: Oded Gabbay Date: Sun May 10 12:37:28 2015 +0300 MAINTAINERS: update amdkfd Oded's email address Leaving AMD soon so need to update my email address to @gmail.com Signed-off-by: Oded Gabbay MAINTAINERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3e3f6e1a90a890e0cea4ec6d6f98e1fa94255de8 Author: Oded Gabbay Date: Tue May 5 11:51:39 2015 +0300 drm/amdkfd: make the sdma vm init to be asic specific Signed-off-by: Oded Gabbay Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 15 +-------------- drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.h | 3 +++ .../gpu/drm/amd/amdkfd/kfd_device_queue_manager_cik.c | 16 ++++++++++++++++ drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager_vi.c | 8 ++++++++ 4 files changed, 28 insertions(+), 14 deletions(-) commit d42af779fb2cf23bbe218c91b44f4979f18bc910 Author: Oded Gabbay Date: Tue May 5 11:51:31 2015 +0300 drm/amdkfd: Use new struct for asic specific ops This patch creates a new structure for asic specific operations, instead of using the existing structure of operations. This is done to make the code flow more logic, readable and maintainable. The change is done only to the device queue manager module at this point. Signed-off-by: Oded Gabbay Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.h | 18 +++++++++++++++--- .../gpu/drm/amd/amdkfd/kfd_device_queue_manager_cik.c | 2 +- .../gpu/drm/amd/amdkfd/kfd_device_queue_manager_vi.c | 2 +- 3 files changed, 17 insertions(+), 5 deletions(-) commit 8856d8e048aa12ee056e24046e22fea7c77817a6 Author: Oded Gabbay Date: Mon May 4 15:53:15 2015 +0300 drm/amdkfd: reformat some debug prints Signed-off-by: Oded Gabbay drivers/gpu/drm/amd/amdkfd/kfd_doorbell.c | 15 +++++++-------- drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.c | 5 +++-- 2 files changed, 10 insertions(+), 10 deletions(-) commit 1549fcd15cab5e59beb7203583e0a70349dda7c1 Author: Firo Yang Date: Thu Apr 23 17:58:05 2015 +0800 drm/amdkfd: Remove unessary void pointer cast kmalloc() returns a void pointer - no need to cast it in drivers/gpu/drm/amd/amdkfd/kfd_process.c::kfd_process_destroy_delayed() Signed-off-by: Firo Yang Signed-off-by: Oded Gabbay drivers/gpu/drm/amd/amdkfd/kfd_process.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 4b9b5268460cbc85270b309559b8f3f48295709a Author: Yingjoe Chen Date: Mon May 18 23:11:14 2015 -0700 pinctrl: mediatek: data struct optimize and remove unused member struct mtk_desc_pin.chip, mtk_pinctrl_devdata.invser_offset and mtk_pinctrl_devdata.chip_type are never used in code. Remove them. Some per-pin data are using int for pin number and offsets. Change to short and rearrange to reduce const data size. Signed-off-by: Yingjoe Chen Signed-off-by: Hongzhou Yang Signed-off-by: Linus Walleij drivers/pinctrl/mediatek/pinctrl-mt8135.c | 10 ++++------ drivers/pinctrl/mediatek/pinctrl-mtk-common.h | 10 ++-------- 2 files changed, 6 insertions(+), 14 deletions(-) commit 0dcdbd2b66704509a1e20b1545c936d8d4390aa7 Author: Hongzhou Yang Date: Mon May 18 20:01:27 2015 -0700 pinctrl: mt6397: Add pinfunc header file for mt6397. Add pinfunc header file, mt8135/mt8173 relate dts will include it. Signed-off-by: Hongzhou Yang Signed-off-by: Linus Walleij include/dt-bindings/pinctrl/mt6397-pinfunc.h | 256 +++++++++++++++++++++++++++ 1 file changed, 256 insertions(+) commit 8a88375c3866901753adc4f957f25540cbe11521 Author: Hongzhou Yang Date: Mon May 18 23:11:12 2015 -0700 pinctrl: mediatek: Modify pinctrl bindings for mt6397. Since 6397 is no need to support interrupt controller, moving interrupt controller relate property to optional list. Also adding mt8173 and mt8127 to bindings. Signed-off-by: Hongzhou Yang Signed-off-by: Linus Walleij Documentation/devicetree/bindings/pinctrl/pinctrl-mt65xx.txt | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit 16a4851d8c0c508f0e75a2b4b5e9195524dae600 Author: Joachim Eastwood Date: Thu May 14 14:45:58 2015 +0200 pinctrl: lpc18xx: add the missing group function map Add the required group function map and fill it at probe using the pin capabilities information already present in the driver. Signed-off-by: Joachim Eastwood Signed-off-by: Linus Walleij drivers/pinctrl/pinctrl-lpc18xx.c | 83 +++++++++++++++++++++++++++++++++++---- 1 file changed, 76 insertions(+), 7 deletions(-) commit 6dce6d24956c57e5e6aeeaab87849d1856cc1620 Author: Ray Jui Date: Wed May 13 17:06:22 2015 -0700 pinctrl: cygnus: fixed typo in the gpio driver Fixed a small typo in the Cygnus GPIO driver Signed-off-by: Jason Uy Signed-off-by: Ray Jui Signed-off-by: Linus Walleij drivers/pinctrl/bcm/pinctrl-cygnus-gpio.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1882b0577b5b67e7b663be4e8126997423b6cb6f Author: Takashi Iwai Date: Tue May 19 10:21:57 2015 +0200 ALSA: hda - Sync HD-Audio-Models.txt for Realtek codecs Added missing model entries and updated the codec names. Signed-off-by: Takashi Iwai Documentation/sound/alsa/HD-Audio-Models.txt | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit b016951e897b5bd06abfb732012f67b461fb1e2e Author: Takashi Iwai Date: Tue May 19 10:20:13 2015 +0200 ALSA: hda - Add headset-mode* model options for ALC269 & co Modern machines tend to have only one headset jack nowadays, and they often need these quirks. Let's allow them applicable via model option for ease of debugging. Signed-off-by: Takashi Iwai Documentation/sound/alsa/HD-Audio-Models.txt | 2 ++ sound/pci/hda/patch_realtek.c | 2 ++ 2 files changed, 4 insertions(+) commit c06ea0ada75bd0ea6b92d592e7f69e64455520b4 Author: Uwe Kleine-König Date: Tue May 19 09:15:56 2015 +0200 drm/bridge: ptn3460: Pass flags to devm_gpiod_get() Since 39b2bbe3d715 (gpio: add flags argument to gpiod_get*() functions) which appeared in v3.17-rc1, the gpiod_get* functions take an additional parameter that allows to specify direction and initial value for output. Use this to simplify the driver. Furthermore this is one caller less that stops us making the flags argument to gpiod_get*() mandatory. Signed-off-by: Uwe Kleine-König Signed-off-by: Thierry Reding drivers/gpu/drm/bridge/ptn3460.c | 23 +++++++---------------- 1 file changed, 7 insertions(+), 16 deletions(-) commit a92bf307b56288c056dea7dc3dc05bb6d3cf71d8 Author: Uwe Kleine-König Date: Tue May 19 09:03:49 2015 +0200 drm/bridge: ps8622: Pass flags to devm_gpiod_get() Since 39b2bbe3d715 (gpio: add flags argument to gpiod_get*() functions) which appeared in v3.17-rc1, the gpiod_get* functions take an additional parameter that allows to specify direction and initial value for output. Use this to simplify the driver. Furthermore this is one caller less that stops us making the flags argument to gpiod_get*() mandatory. Signed-off-by: Uwe Kleine-König Signed-off-by: Thierry Reding drivers/gpu/drm/bridge/ps8622.c | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) commit d71aadda19f83521eca301cb154b81a7bcca78a2 Author: Chanwoo Choi Date: Mon May 4 20:20:27 2015 +0900 extcon: Remove the optional name of extcon device This patch removes the optional name of extcon device. Instead, extcon_dev_register() set the device name as 'extcon[number]' naming pattern. - /sys/class/extcon/[hardcoded device name] -> /sys/class/extcon/extcon[number] Signed-off-by: Chanwoo Choi Acked-by: Krzysztof Kozlowski Cc: MyungJoo Ham Cc: Charles Keepax Cc: Graeme Gregory Cc: Kishon Vijay Abraham I Cc: Krzysztof Kozlowski Cc: Jaewon Kim drivers/extcon/extcon-adc-jack.c | 1 - drivers/extcon/extcon-gpio.c | 1 - drivers/extcon/extcon-max14577.c | 2 -- drivers/extcon/extcon-max77693.c | 1 - drivers/extcon/extcon-max8997.c | 1 - drivers/extcon/extcon-palmas.c | 1 - drivers/extcon/extcon-rt8973a.c | 1 - drivers/extcon/extcon-sm5502.c | 1 - 8 files changed, 9 deletions(-) commit 638f958baeaf9d50f42cd09993f518b3a7a0f52e Author: Geert Uytterhoeven Date: Tue May 5 18:32:20 2015 +0200 extcon: 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. If GPIOLIB=n and asm-generic/gpio.h is not used: drivers/extcon/extcon-usb-gpio.c: In function ‘usb_extcon_detect_cable’: drivers/extcon/extcon-usb-gpio.c:63: error: implicit declaration of function ‘gpiod_get_value_cansleep’ drivers/extcon/extcon-usb-gpio.c: In function ‘usb_extcon_probe’: drivers/extcon/extcon-usb-gpio.c:116: error: implicit declaration of function ‘devm_gpiod_get’ drivers/extcon/extcon-usb-gpio.c:116: warning: assignment makes pointer from integer without a cast drivers/extcon/extcon-usb-gpio.c:122: error: implicit declaration of function ‘gpiod_set_debounce’ drivers/extcon/extcon-usb-gpio.c:129: error: implicit declaration of function ‘gpiod_to_irq’ Add the missing #include to fix this. Signed-off-by: Geert Uytterhoeven Signed-off-by: Chanwoo Choi drivers/extcon/Kconfig | 4 ++-- drivers/extcon/extcon-usb-gpio.c | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) commit c571bbb4b699cfd3af5b4c1027b04eb4290e6726 Author: Chanwoo Choi Date: Sat Apr 25 18:44:47 2015 +0900 extcon: adc-jack: Remove the unneeded num_cables field This patch removes the 'num_cables' filed from 'struct adc_jack_pdata' because 'struct extcon_dev' contains the 'max_supported' field which means the number of supported cable of extcon device. Signed-off-by: Chanwoo Choi drivers/extcon/extcon-adc-jack.c | 12 ------------ 1 file changed, 12 deletions(-) commit 942e0239d51185d6532f3ac846e5ab06db0a86cf Author: Chanwoo Choi Date: Sat Apr 25 19:06:18 2015 +0900 extcon: Alter MHL-TA cable name to TA cable name This patch alters the MHL-TA cable name to TA cable name because MHL-TA is not standard name. The MHL-TA is MHL cable with charger cable (TA or USB). So, this patch use the TA cable instead of MHL-TA to inform the charger cable state. - MHL-TA -> TA Signed-off-by: Chanwoo Choi Reviewed-by: Krzysztof Kozlowski drivers/extcon/extcon-max77693.c | 12 +++++------- drivers/extcon/extcon-max77843.c | 6 ++---- 2 files changed, 7 insertions(+), 11 deletions(-) commit d519c423ff4f1de2fd48778eacef1696a03ed934 Author: Chanwoo Choi Date: Sat Apr 25 19:05:10 2015 +0900 extcon: Unify the dock device names on max8997/77693 This patch change the name of various dock devices as 'DOCK' because the name of various dock devices have not the standard naming rules. The name of dock devices include the differenct word but it is ambiguous and never important information on user-space aspect. This patch unifies the name of dock devices as following: - Dock-Smart -->|--> DOCK - Dock-Desk -->| - Dock-Audio -->| - Dock-Card -->| Signed-off-by: Chanwoo Choi Reviewed-by: Krzysztof Kozlowski drivers/extcon/extcon-max77693.c | 31 +++++++++++++------------------ drivers/extcon/extcon-max8997.c | 10 +++------- 2 files changed, 16 insertions(+), 25 deletions(-) commit 41b3c0154c48940c39401f3ba74ade74badb17c5 Author: Chanwoo Choi Date: Fri Apr 24 19:50:48 2015 +0900 extcon: Unify the jig cable names on rt8973 and max14577/77693/77843 This patch change the name of various jig cables as 'JIG' because the name of various jig cables are strange and ambiguous on user-space aspect. They include the different information of either USB and UART state. It is never important for user-space process. This patch unifies the name of jig cables as following: - JIG-USB-ON -->|--> JIG - JIG-USB-OFF -->| - JIG-UART-ON -->| - JIG-UART-OFF -->| Signed-off-by: Chanwoo Choi drivers/extcon/extcon-max14577.c | 19 +++---------------- drivers/extcon/extcon-max77693.c | 23 +++-------------------- drivers/extcon/extcon-max77843.c | 37 ++++++++++++------------------------- drivers/extcon/extcon-rt8973a.c | 22 +++++----------------- 4 files changed, 23 insertions(+), 78 deletions(-) commit 9bf63cf858a5530df4fb48ab170cb7dbcab18d5e Author: Inha Song Date: Mon May 4 13:42:14 2015 +0900 mfd: arizona: Update DT binding to support hpdet channel This patch add device tree bindings for the pdata needed to configure the Accessory Detect Mode select when Headphone detection. Signed-off-by: Inha Song Acked-by: Lee Jones Acked-by: Charles Keepax Signed-off-by: Chanwoo Choi Documentation/devicetree/bindings/mfd/arizona.txt | 6 ++++++ 1 file changed, 6 insertions(+) commit 9e86b2ad4c11fd52ee8133abce7a29e0b32d29a7 Author: Inha Song Date: Mon May 4 13:42:13 2015 +0900 extcon: arizona: Add support for select accessory detect mode when headphone detection This patch add support for select accessory detect mode to HPDETL or HPDETR. Arizona provides a headphone detection circuit on the HPDETL and HPDETR pins to measure the impedance of an external load connected to the headphone. Depending on board design, headphone detect pins can change to HPDETR or HPDETL. Signed-off-by: Inha Song Acked-by: Lee Jones Acked-by: Charles Keepax Signed-off-by: Chanwoo Choi drivers/extcon/extcon-arizona.c | 38 ++++++++++++++++++++++++++++++-------- include/dt-bindings/mfd/arizona.h | 4 ++++ include/linux/mfd/arizona/pdata.h | 3 +++ 3 files changed, 37 insertions(+), 8 deletions(-) commit 2b51f9c2f1bd43907e1dc75912de6f06c6f59860 Author: Charles Keepax Date: Thu Apr 30 23:43:37 2015 +0900 extcon: arizona: Apply HP clamps correctly for WM8280 The headphone clamping is not set correctly currently, this was missed because the wm8280 patches and the patch fixing the clamping for wm5110 went upstream at very similar times. This patch sets the headphone clamping correctly for wm8280. Signed-off-by: Charles Keepax Signed-off-by: Chanwoo Choi drivers/extcon/extcon-arizona.c | 1 + 1 file changed, 1 insertion(+) commit a71fbc1525c4fbe894c52256404575c5f697c571 Author: Chanwoo Choi Date: Wed Apr 15 15:33:44 2015 +0900 extcon: arizona: Remove the setting of device name This patch removes the setting of device name. Instead, extcon_dev_register() set the device name such as 'extcon[number]' naming method. - /sys/class/extcon/Headset Jack -> /sys/class/extcon/extcon[number] Cc: Charles Keepax Signed-off-by: Chanwoo Choi Acked-by: Charles Keepax drivers/extcon/extcon-arizona.c | 1 - 1 file changed, 1 deletion(-) commit b9ec23c08a0274d31ee626f14b359563ea0cae46 Author: Chanwoo Choi Date: Fri Apr 24 14:48:52 2015 +0900 extcon: Fix the checkpatch warning and minor coding style issue This patch clean up the extcon core driver by fixing the checkpatch warning and minor coding style issue. Signed-off-by: Chanwoo Choi drivers/extcon/extcon.c | 10 +++++----- include/linux/extcon.h | 7 ++++--- 2 files changed, 9 insertions(+), 8 deletions(-) commit 707d7550875a9bd245ce5f1077d2d2cb44eab218 Author: Chanwoo Choi Date: Wed Apr 15 13:57:51 2015 +0900 extcon: Add extcon_get_edev_name() API to get the extcon device name This patch adds the extcon_get_edev_name() API to get the name of extcon device because all information inclued in the structure extcon_dev should be accessed by extcon core API instead of directly accessing the data. Signed-off-by: Chanwoo Choi drivers/extcon/extcon.c | 9 +++++++++ include/linux/extcon.h | 4 ++++ 2 files changed, 13 insertions(+) commit 71c3ffa5d23af0554c27010cf12710da9bf85950 Author: Chanwoo Choi Date: Wed Apr 15 15:02:01 2015 +0900 extcon: Modify the device name as extcon[X] for sysfs This patch modify the device name as extcon[X] for sysfs by using the 'extcon' prefix word instead of separate device name. On user-space aspect, user would find the some extcon drvier with extcon[X] pattern. So, this patch modify the device name as following: - /sys/class/extcon/[device name] -> /sys/class/extcon/extcon[X] Signed-off-by: Chanwoo Choi drivers/extcon/extcon.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit f03123783d4e43cd59df58e23e963136e04f8280 Author: Ramakrishna Pallala Date: Thu Apr 30 20:44:45 2015 +0530 extcon: axp288: Add axp288 extcon driver support This patch adds the extcon support for AXP288 PMIC which has the BC1.2 charger detection capability. Additionally it also adds the USB mux switching support b/w SOC and PMIC based on GPIO control. Signed-off-by: Ramakrishna Pallala Acked-by: Lee Jones [cw00.choi: Modify the log message to keep the consistent log message pattern] Signed-off-by: Chanwoo Choi drivers/extcon/Kconfig | 7 + drivers/extcon/Makefile | 1 + drivers/extcon/extcon-axp288.c | 385 +++++++++++++++++++++++++++++++++++++++++ include/linux/mfd/axp20x.h | 5 + 4 files changed, 398 insertions(+) commit d0fd5fbc09b17e26408f7e3db22511b57f6bf22e Author: Richard Fitzgerald Date: Tue Apr 28 13:34:27 2015 +0100 extcon: arizona: Rename hpdet_ip to make its purpose clearer Renamed to hpdet_ip_version to make it clearer what it does and that the value in it is simply a version number. Signed-off-by: Richard Fitzgerald Signed-off-by: Chanwoo Choi drivers/extcon/extcon-arizona.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit ed2c0604ace93a2c9b8fc055ab61fff68704cd1e Author: Chanwoo Choi Date: Fri Apr 3 09:51:26 2015 +0900 extcon: Add manufactor name of each extcon device This patch adds the manufactor name of each extcon device and removes un-necessary comment in Kconfig. Signed-off-by: Chanwoo Choi drivers/extcon/Kconfig | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 6aaa10254dfe61c8c5e87c26e21be0664782a5b4 Author: Luca Abeni Date: Mon May 18 15:00:32 2015 +0200 sched/dl/Documentation: Split Section 3 Introduce 4 subsections to make Section 3 more readable. Signed-off-by: Luca Abeni Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: henrik@austad.us Cc: juri.lelli@gmail.com Cc: raistlin@linux.it Link: http://lkml.kernel.org/r/1431954032-16473-10-git-send-email-luca.abeni@unitn.it Signed-off-by: Ingo Molnar Documentation/scheduler/sched-deadline.txt | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit 78740858903460d4b926b9a90c705fcb6103da54 Author: Luca Abeni Date: Mon May 18 15:00:31 2015 +0200 sched/dl/Documentation: Clarify the relationship between tasks' deadlines and absolute scheduling deadlines Clarify what is the relationship between tasks' parameters and scheduling parameters, explaining how to set the scheduling parameters so that all the absolute deadlines of a task are respected. Signed-off-by: Luca Abeni Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: henrik@austad.us Cc: juri.lelli@gmail.com Cc: raistlin@linux.it Link: http://lkml.kernel.org/r/1431954032-16473-9-git-send-email-luca.abeni@unitn.it Signed-off-by: Ingo Molnar Documentation/scheduler/sched-deadline.txt | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) commit 134136c4b730c1a4830a8b74e2717d858291361b Author: Luca Abeni Date: Mon May 18 15:00:30 2015 +0200 sched/dl/Documentation: Add some references Add a description of the Dhall's effect, some discussion about schedulability tests for global EDF, and references to real-time literature. Signed-off-by: Luca Abeni Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: henrik@austad.us Cc: juri.lelli@gmail.com Cc: raistlin@linux.it Link: http://lkml.kernel.org/r/1431954032-16473-8-git-send-email-luca.abeni@unitn.it Signed-off-by: Ingo Molnar Documentation/scheduler/sched-deadline.txt | 73 +++++++++++++++++++++++++++--- 1 file changed, 67 insertions(+), 6 deletions(-) commit e0deda8142a60e4a39d5ba2ea47294a851b4309a Author: Luca Abeni Date: Mon May 18 15:00:29 2015 +0200 sched/dl/Documentation: Add some notes on EDF schedulability Add a short discussion about sufficient and necessary schedulability tests, and add a simple example showing that if D_i != P_i then density based tests are only sufficient. Also add some references to scientific papers on schedulability tests for EDF that are both necessary and sufficient, and on their computational complexity. Signed-off-by: Luca Abeni Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: henrik@austad.us Cc: juri.lelli@gmail.com Cc: raistlin@linux.it Link: http://lkml.kernel.org/r/1431954032-16473-7-git-send-email-luca.abeni@unitn.it Signed-off-by: Ingo Molnar Documentation/scheduler/sched-deadline.txt | 45 ++++++++++++++++++++++++++++-- 1 file changed, 42 insertions(+), 3 deletions(-) commit c2a684930fce07f19d1a52d7bbe7474fe64fde31 Author: Luca Abeni Date: Mon May 18 15:00:28 2015 +0200 sched/dl/Documentation: Clarify indexing notation The "_i" index is used in this document to to denote a particular task, so "sum_i", "max_i" and "min_i" might be confusing. Signed-off-by: Luca Abeni Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: henrik@austad.us Cc: juri.lelli@gmail.com Cc: raistlin@linux.it Link: http://lkml.kernel.org/r/1431954032-16473-6-git-send-email-luca.abeni@unitn.it Signed-off-by: Ingo Molnar Documentation/scheduler/sched-deadline.txt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 48355c4775741ee15b66bad7d09b263d93ce86f8 Author: Luca Abeni Date: Mon May 18 15:00:27 2015 +0200 sched/dl/Documentation: Use consistent naming The name "C_i" was used (without previously defining it) instead of "WCET_i". Signed-off-by: Luca Abeni Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: henrik@austad.us Cc: juri.lelli@gmail.com Cc: raistlin@linux.it Link: http://lkml.kernel.org/r/1431954032-16473-5-git-send-email-luca.abeni@unitn.it Signed-off-by: Ingo Molnar Documentation/scheduler/sched-deadline.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 3aa2dbe27f76528660e18b21f88a2c78ea8996ba Author: Luca Abeni Date: Mon May 18 15:00:26 2015 +0200 sched/dl/Documentation: Fix typos Signed-off-by: Luca Abeni Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: henrik@austad.us Cc: juri.lelli@gmail.com Cc: raistlin@linux.it Link: http://lkml.kernel.org/r/1431954032-16473-4-git-send-email-luca.abeni@unitn.it Signed-off-by: Ingo Molnar Documentation/scheduler/sched-deadline.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 3a3a58d4068382cf2e05f5c8fd3a0587836dacec Author: Luca Abeni Date: Mon May 18 15:00:25 2015 +0200 sched/dl/Documentation: Switch to American English This file previously mixed American and British English; switch to American for consistency. Signed-off-by: Luca Abeni Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: henrik@austad.us Cc: juri.lelli@gmail.com Cc: raistlin@linux.it Link: http://lkml.kernel.org/r/1431954032-16473-3-git-send-email-luca.abeni@unitn.it Signed-off-by: Ingo Molnar Documentation/scheduler/sched-deadline.txt | 32 +++++++++++++++--------------- 1 file changed, 16 insertions(+), 16 deletions(-) commit 3aed357ee499c71f589a2537af6ec7785029873f Author: Zhiqiang Zhang Date: Mon May 18 15:00:24 2015 +0200 sched/dl/Documentation: Correct the definition of density as C_i/min{D_i,P_i} C_i/min{D_i,T_i}, where T_i is not referred before, should be substituted with C_i/min{D_i,P_i}. Signed-off-by: Zhiqiang Zhang Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: henrik@austad.us Cc: juri.lelli@gmail.com Cc: raistlin@linux.it Link: http://lkml.kernel.org/r/1431954032-16473-2-git-send-email-luca.abeni@unitn.it Signed-off-by: Ingo Molnar Documentation/scheduler/sched-deadline.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c1ceac6276e4ee12e4129afd380db10fae0db7df Author: Rik van Riel Date: Thu May 14 22:59:36 2015 -0400 sched/numa: Reduce conflict between fbq_classify_rq() and migration It is possible for fbq_classify_rq() to indicate that a CPU has tasks that should be moved to another NUMA node, but for migrate_improves_locality and migrate_degrades_locality to not identify those tasks. This patch always gives preference to preferred node evaluations, and only checks the number of faults when evaluating moves between two non-preferred nodes on a larger NUMA system. On a two node system, the number of faults is never evaluated. Either a task is about to be pulled off its preferred node, or migrated onto it. Signed-off-by: Rik van Riel Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: mgorman@suse.de Link: http://lkml.kernel.org/r/20150514225936.35b91717@annuminas.surriel.com Signed-off-by: Ingo Molnar kernel/sched/fair.c | 60 +++++++++++++++++++++++++++++------------------------ 1 file changed, 33 insertions(+), 27 deletions(-) commit 80ed87c8a9ca0cad7ca66cf3bbdfb17559a66dcf Author: Peter Zijlstra Date: Fri May 8 14:23:45 2015 +0200 sched/wait: Introduce TASK_NOLOAD and TASK_IDLE Currently people use TASK_INTERRUPTIBLE to idle kthreads and wait for 'work' because TASK_UNINTERRUPTIBLE contributes to the loadavg. Having all idle kthreads contribute to the loadavg is somewhat silly. Now mostly this works OK, because kthreads have all their signals masked. However there's a few sites where this is causing problems and TASK_UNINTERRUPTIBLE should be used, except for that loadavg issue. This patch adds TASK_NOLOAD which, when combined with TASK_UNINTERRUPTIBLE avoids the loadavg accounting. As most of imagined usage sites are loops where a thread wants to idle, waiting for work, a helper TASK_IDLE is introduced. Signed-off-by: Peter Zijlstra (Intel) Cc: Julian Anastasov Cc: Linus Torvalds Cc: NeilBrown Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar include/linux/sched.h | 10 +++++++--- include/trace/events/sched.h | 3 ++- 2 files changed, 9 insertions(+), 4 deletions(-) commit 8222dbe21e79338de92d5e1956cd1e3994cc9f93 Author: David Hildenbrand Date: Mon May 11 17:52:20 2015 +0200 sched/preempt, mm/fault: Decouple preemption from the page fault logic As the fault handlers now all rely on the pagefault_disabled() checks and implicit preempt_disable() calls by pagefault_disable() have been made explicit, we can completely rely on the pagefault_disableD counter. So let's no longer touch the preempt count when disabling/enabling pagefaults. After a call to pagefault_disable(), pagefault_disabled() will return true, but in_atomic() won't. Reviewed-and-tested-by: Thomas Gleixner Signed-off-by: David Hildenbrand Signed-off-by: Peter Zijlstra (Intel) Cc: David.Laight@ACULAB.COM Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: airlied@linux.ie Cc: akpm@linux-foundation.org Cc: benh@kernel.crashing.org Cc: bigeasy@linutronix.de Cc: borntraeger@de.ibm.com Cc: daniel.vetter@intel.com Cc: heiko.carstens@de.ibm.com Cc: herbert@gondor.apana.org.au Cc: hocko@suse.cz Cc: hughd@google.com Cc: mst@redhat.com Cc: paulus@samba.org Cc: ralf@linux-mips.org Cc: schwidefsky@de.ibm.com Cc: yang.shi@windriver.com Link: http://lkml.kernel.org/r/1431359540-32227-16-git-send-email-dahi@linux.vnet.ibm.com Signed-off-by: Ingo Molnar include/linux/uaccess.h | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) commit 76deabd1867d6d2895152f31fdec819e3505738b Author: David Hildenbrand Date: Mon May 11 17:52:19 2015 +0200 sched/preempt, MIPS: Properly lock access to the FPU Let's always disable preemption and pagefaults when locking the fpu, so we can be sure that the owner won't change in between. This is a preparation for pagefault_disable() not touching preemption anymore. Reviewed-and-tested-by: Thomas Gleixner Signed-off-by: David Hildenbrand Signed-off-by: Peter Zijlstra (Intel) Cc: David.Laight@ACULAB.COM Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: airlied@linux.ie Cc: akpm@linux-foundation.org Cc: benh@kernel.crashing.org Cc: bigeasy@linutronix.de Cc: borntraeger@de.ibm.com Cc: daniel.vetter@intel.com Cc: heiko.carstens@de.ibm.com Cc: herbert@gondor.apana.org.au Cc: hocko@suse.cz Cc: hughd@google.com Cc: mst@redhat.com Cc: paulus@samba.org Cc: ralf@linux-mips.org Cc: schwidefsky@de.ibm.com Cc: yang.shi@windriver.com Link: http://lkml.kernel.org/r/1431359540-32227-15-git-send-email-dahi@linux.vnet.ibm.com Signed-off-by: Ingo Molnar arch/mips/kernel/signal-common.h | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) commit 5f76eea88dcbe75506d98e0207b9e3bd47941f2d Author: David Hildenbrand Date: Mon May 11 17:52:18 2015 +0200 sched/preempt, powerpc: Disable preemption in enable_kernel_altivec() explicitly enable_kernel_altivec() has to be called with disabled preemption. Let's make this explicit, to prepare for pagefault_disable() not touching preemption anymore. Reviewed-and-tested-by: Thomas Gleixner Signed-off-by: David Hildenbrand Signed-off-by: Peter Zijlstra (Intel) Acked-by: Benjamin Herrenschmidt Cc: David.Laight@ACULAB.COM Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: airlied@linux.ie Cc: akpm@linux-foundation.org Cc: bigeasy@linutronix.de Cc: borntraeger@de.ibm.com Cc: daniel.vetter@intel.com Cc: heiko.carstens@de.ibm.com Cc: herbert@gondor.apana.org.au Cc: hocko@suse.cz Cc: hughd@google.com Cc: mst@redhat.com Cc: paulus@samba.org Cc: ralf@linux-mips.org Cc: schwidefsky@de.ibm.com Cc: yang.shi@windriver.com Link: http://lkml.kernel.org/r/1431359540-32227-14-git-send-email-dahi@linux.vnet.ibm.com Signed-off-by: Ingo Molnar arch/powerpc/lib/vmx-helper.c | 11 ++++++----- drivers/crypto/vmx/aes.c | 8 +++++++- drivers/crypto/vmx/aes_cbc.c | 6 ++++++ drivers/crypto/vmx/ghash.c | 8 ++++++++ 4 files changed, 27 insertions(+), 6 deletions(-) commit 2f09b227eeed4b3a072fe818c82a4c773b778cde Author: David Hildenbrand Date: Mon May 11 17:52:17 2015 +0200 sched/preempt, futex: Update comments to clarify that preemption doesn't have to be disabled As arm64 and arc have no special implementations for !CONFIG_SMP, mutual exclusion doesn't seem to rely on preemption. Let's make it clear in the comments that preemption doesn't have to be disabled when accessing user space in the futex code, so we can remove preempt_disable() from pagefault_disable(). Reviewed-and-tested-by: Thomas Gleixner Signed-off-by: David Hildenbrand Signed-off-by: Peter Zijlstra (Intel) Cc: David.Laight@ACULAB.COM Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: airlied@linux.ie Cc: akpm@linux-foundation.org Cc: benh@kernel.crashing.org Cc: bigeasy@linutronix.de Cc: borntraeger@de.ibm.com Cc: daniel.vetter@intel.com Cc: heiko.carstens@de.ibm.com Cc: herbert@gondor.apana.org.au Cc: hocko@suse.cz Cc: hughd@google.com Cc: mst@redhat.com Cc: paulus@samba.org Cc: ralf@linux-mips.org Cc: schwidefsky@de.ibm.com Cc: yang.shi@windriver.com Link: http://lkml.kernel.org/r/1431359540-32227-13-git-send-email-dahi@linux.vnet.ibm.com Signed-off-by: Ingo Molnar arch/arc/include/asm/futex.h | 10 +++++----- arch/arm64/include/asm/futex.h | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) commit 388b0e0adbc98a1b12a077dc92851a3ce016db42 Author: David Hildenbrand Date: Mon May 11 17:52:16 2015 +0200 sched/preempt, arm/futex: Disable preemption in UP futex_atomic_op_inuser() explicitly The !CONFIG_SMP implementation of futex_atomic_op_inuser() seems to rely on disabled preemption to guarantee mutual exclusion. From commit e589ed23dd27 ("[ARM] 5218/1: arm: improved futex support"): "For UP it's enough to disable preemption to ensure mutual exclusion..." From the code itself: "!SMP, we can work around lack of atomic ops by disabling preemption" Let's make this explicit, to prepare for pagefault_disable() not touching preemption anymore. Reviewed-and-tested-by: Thomas Gleixner Signed-off-by: David Hildenbrand Signed-off-by: Peter Zijlstra (Intel) Cc: David.Laight@ACULAB.COM Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: airlied@linux.ie Cc: akpm@linux-foundation.org Cc: benh@kernel.crashing.org Cc: bigeasy@linutronix.de Cc: borntraeger@de.ibm.com Cc: daniel.vetter@intel.com Cc: heiko.carstens@de.ibm.com Cc: herbert@gondor.apana.org.au Cc: hocko@suse.cz Cc: hughd@google.com Cc: mst@redhat.com Cc: paulus@samba.org Cc: ralf@linux-mips.org Cc: schwidefsky@de.ibm.com Cc: yang.shi@windriver.com Link: http://lkml.kernel.org/r/1431359540-32227-12-git-send-email-dahi@linux.vnet.ibm.com Signed-off-by: Ingo Molnar arch/arm/include/asm/futex.h | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit 39919b01ae4c1949736b40b79e27178d0c0bc406 Author: David Hildenbrand Date: Mon May 11 17:52:15 2015 +0200 sched/preempt, arm/futex: Disable preemption in UP futex_atomic_cmpxchg_inatomic() explicitly The !CONFIG_SMP implementation of futex_atomic_cmpxchg_inatomic() requires preemption to be disabled to guarantee mutual exclusion. Let's make this explicit. This patch is based on a patch by Sebastian Andrzej Siewior on the -rt branch. Reviewed-and-tested-by: Thomas Gleixner Signed-off-by: David Hildenbrand Signed-off-by: Peter Zijlstra (Intel) Cc: David.Laight@ACULAB.COM Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: airlied@linux.ie Cc: akpm@linux-foundation.org Cc: benh@kernel.crashing.org Cc: bigeasy@linutronix.de Cc: borntraeger@de.ibm.com Cc: daniel.vetter@intel.com Cc: heiko.carstens@de.ibm.com Cc: herbert@gondor.apana.org.au Cc: hocko@suse.cz Cc: hughd@google.com Cc: mst@redhat.com Cc: paulus@samba.org Cc: ralf@linux-mips.org Cc: schwidefsky@de.ibm.com Cc: yang.shi@windriver.com Link: http://lkml.kernel.org/r/1431359540-32227-11-git-send-email-dahi@linux.vnet.ibm.com Signed-off-by: Ingo Molnar arch/arm/include/asm/futex.h | 3 +++ 1 file changed, 3 insertions(+) commit d9b9ff8c18891d74dc7076800bde81b774f7d032 Author: David Hildenbrand Date: Mon May 11 17:52:14 2015 +0200 sched/preempt, futex: Disable preemption in UP futex_atomic_cmpxchg_inatomic() explicitly Let's explicitly disable/enable preemption in the !CONFIG_SMP version of futex_atomic_cmpxchg_inatomic(), to prepare for pagefault_disable() not touching preemption anymore. This is needed for this function to be callable from both, atomic and non-atomic context. Otherwise we might break mutual exclusion when relying on a get_user()/ put_user() implementation. Reviewed-and-tested-by: Thomas Gleixner Signed-off-by: David Hildenbrand Signed-off-by: Peter Zijlstra (Intel) Cc: David.Laight@ACULAB.COM Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: airlied@linux.ie Cc: akpm@linux-foundation.org Cc: benh@kernel.crashing.org Cc: bigeasy@linutronix.de Cc: borntraeger@de.ibm.com Cc: daniel.vetter@intel.com Cc: heiko.carstens@de.ibm.com Cc: herbert@gondor.apana.org.au Cc: hocko@suse.cz Cc: hughd@google.com Cc: mst@redhat.com Cc: paulus@samba.org Cc: ralf@linux-mips.org Cc: schwidefsky@de.ibm.com Cc: yang.shi@windriver.com Link: http://lkml.kernel.org/r/1431359540-32227-10-git-send-email-dahi@linux.vnet.ibm.com Signed-off-by: Ingo Molnar include/asm-generic/futex.h | 2 ++ 1 file changed, 2 insertions(+) commit f3dae07e442a8131a5485b6a38db2aa22a7a48cf Author: David Hildenbrand Date: Mon May 11 17:52:13 2015 +0200 sched/preempt, futex: Disable preemption in UP futex_atomic_op_inuser() explicitly Let's explicitly disable/enable preemption in the !CONFIG_SMP version of futex_atomic_op_inuser, to prepare for pagefault_disable() not touching preemption anymore. Otherwise we might break mutual exclusion when relying on a get_user()/ put_user() implementation. Reviewed-and-tested-by: Thomas Gleixner Signed-off-by: David Hildenbrand Signed-off-by: Peter Zijlstra (Intel) Cc: David.Laight@ACULAB.COM Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: airlied@linux.ie Cc: akpm@linux-foundation.org Cc: benh@kernel.crashing.org Cc: bigeasy@linutronix.de Cc: borntraeger@de.ibm.com Cc: daniel.vetter@intel.com Cc: heiko.carstens@de.ibm.com Cc: herbert@gondor.apana.org.au Cc: hocko@suse.cz Cc: hughd@google.com Cc: mst@redhat.com Cc: paulus@samba.org Cc: ralf@linux-mips.org Cc: schwidefsky@de.ibm.com Cc: yang.shi@windriver.com Link: http://lkml.kernel.org/r/1431359540-32227-9-git-send-email-dahi@linux.vnet.ibm.com Signed-off-by: Ingo Molnar include/asm-generic/futex.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 32d8206725bcf6e3ce7832ac39e61a6ecfd558db Author: David Hildenbrand Date: Mon May 11 17:52:12 2015 +0200 mm/fault, drm/i915: Use pagefault_disabled() to check for disabled pagefaults Now that the pagefault disabled counter is in place, we can replace the in_atomic() check by a pagefault_disabled() checks. Reviewed-and-tested-by: Thomas Gleixner Signed-off-by: David Hildenbrand Signed-off-by: Peter Zijlstra (Intel) Cc: David.Laight@ACULAB.COM Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: airlied@linux.ie Cc: akpm@linux-foundation.org Cc: benh@kernel.crashing.org Cc: bigeasy@linutronix.de Cc: borntraeger@de.ibm.com Cc: daniel.vetter@intel.com Cc: heiko.carstens@de.ibm.com Cc: herbert@gondor.apana.org.au Cc: hocko@suse.cz Cc: hughd@google.com Cc: mst@redhat.com Cc: paulus@samba.org Cc: ralf@linux-mips.org Cc: schwidefsky@de.ibm.com Cc: yang.shi@windriver.com Link: http://lkml.kernel.org/r/1431359540-32227-8-git-send-email-dahi@linux.vnet.ibm.com Signed-off-by: Ingo Molnar drivers/gpu/drm/i915/i915_gem_execbuffer.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 70ffdb9393a7264a069265edded729078dcf0425 Author: David Hildenbrand Date: Mon May 11 17:52:11 2015 +0200 mm/fault, arch: Use pagefault_disable() to check for disabled pagefaults in the handler Introduce faulthandler_disabled() and use it to check for irq context and disabled pagefaults (via pagefault_disable()) in the pagefault handlers. Please note that we keep the in_atomic() checks in place - to detect whether in irq context (in which case preemption is always properly disabled). In contrast, preempt_disable() should never be used to disable pagefaults. With !CONFIG_PREEMPT_COUNT, preempt_disable() doesn't modify the preempt counter, and therefore the result of in_atomic() differs. We validate that condition by using might_fault() checks when calling might_sleep(). Therefore, add a comment to faulthandler_disabled(), describing why this is needed. faulthandler_disabled() and pagefault_disable() are defined in linux/uaccess.h, so let's properly add that include to all relevant files. This patch is based on a patch from Thomas Gleixner. Reviewed-and-tested-by: Thomas Gleixner Signed-off-by: David Hildenbrand Signed-off-by: Peter Zijlstra (Intel) Cc: David.Laight@ACULAB.COM Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: airlied@linux.ie Cc: akpm@linux-foundation.org Cc: benh@kernel.crashing.org Cc: bigeasy@linutronix.de Cc: borntraeger@de.ibm.com Cc: daniel.vetter@intel.com Cc: heiko.carstens@de.ibm.com Cc: herbert@gondor.apana.org.au Cc: hocko@suse.cz Cc: hughd@google.com Cc: mst@redhat.com Cc: paulus@samba.org Cc: ralf@linux-mips.org Cc: schwidefsky@de.ibm.com Cc: yang.shi@windriver.com Link: http://lkml.kernel.org/r/1431359540-32227-7-git-send-email-dahi@linux.vnet.ibm.com Signed-off-by: Ingo Molnar arch/alpha/mm/fault.c | 5 ++--- arch/arc/mm/fault.c | 2 +- arch/arm/mm/fault.c | 2 +- arch/arm64/mm/fault.c | 2 +- arch/avr32/mm/fault.c | 4 ++-- arch/cris/mm/fault.c | 6 +++--- arch/frv/mm/fault.c | 4 ++-- arch/ia64/mm/fault.c | 4 ++-- arch/m32r/mm/fault.c | 8 ++++---- arch/m68k/mm/fault.c | 4 ++-- arch/metag/mm/fault.c | 2 +- arch/microblaze/mm/fault.c | 8 ++++---- arch/mips/mm/fault.c | 4 ++-- arch/mn10300/mm/fault.c | 4 ++-- arch/nios2/mm/fault.c | 2 +- arch/parisc/kernel/traps.c | 4 ++-- arch/parisc/mm/fault.c | 4 ++-- arch/powerpc/mm/fault.c | 9 +++++---- arch/s390/mm/fault.c | 2 +- arch/score/mm/fault.c | 3 ++- arch/sh/mm/fault.c | 5 +++-- arch/sparc/mm/fault_32.c | 4 ++-- arch/sparc/mm/fault_64.c | 4 ++-- arch/sparc/mm/init_64.c | 2 +- arch/tile/mm/fault.c | 4 ++-- arch/um/kernel/trap.c | 4 ++-- arch/unicore32/mm/fault.c | 2 +- arch/x86/mm/fault.c | 5 +++-- arch/xtensa/mm/fault.c | 4 ++-- include/linux/uaccess.h | 12 ++++++++++++ 30 files changed, 72 insertions(+), 57 deletions(-) commit ce01948eb85da733558fa77c2a554144a57ab0fb Author: David Hildenbrand Date: Mon May 11 17:52:10 2015 +0200 sched/preempt, mm/kmap, MIPS: Disable preemption in kmap_coherent() explicitly k(un)map_coherent relies on pagefault_disable() to also disable preemption. Let's make this explicit, to prepare for pagefault_disable() not touching preemption anymore. This patch is based on a patch by Yang Shi on the -rt tree: "k{un}map_coherent are just called when cpu_has_dc_aliases == 1 with VIPT cache. However, actually, the most modern MIPS processors have PIPT dcache without dcache alias issue. In such case, k{un}map_atomic will be called with preempt enabled." Reviewed-and-tested-by: Thomas Gleixner Signed-off-by: David Hildenbrand Signed-off-by: Peter Zijlstra (Intel) Cc: David.Laight@ACULAB.COM Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: airlied@linux.ie Cc: akpm@linux-foundation.org Cc: benh@kernel.crashing.org Cc: bigeasy@linutronix.de Cc: borntraeger@de.ibm.com Cc: daniel.vetter@intel.com Cc: heiko.carstens@de.ibm.com Cc: herbert@gondor.apana.org.au Cc: hocko@suse.cz Cc: hughd@google.com Cc: mst@redhat.com Cc: paulus@samba.org Cc: ralf@linux-mips.org Cc: schwidefsky@de.ibm.com Cc: yang.shi@windriver.com Link: http://lkml.kernel.org/r/1431359540-32227-6-git-send-email-dahi@linux.vnet.ibm.com Signed-off-by: Ingo Molnar arch/mips/mm/init.c | 2 ++ 1 file changed, 2 insertions(+) commit 2cb7c9cb426660b5ed58b643d9e7dd5d50ba901f Author: David Hildenbrand Date: Mon May 11 17:52:09 2015 +0200 sched/preempt, mm/kmap: Explicitly disable/enable preemption in kmap_atomic_* The existing code relies on pagefault_disable() implicitly disabling preemption, so that no schedule will happen between kmap_atomic() and kunmap_atomic(). Let's make this explicit, to prepare for pagefault_disable() not touching preemption anymore. Reviewed-and-tested-by: Thomas Gleixner Signed-off-by: David Hildenbrand Signed-off-by: Peter Zijlstra (Intel) Cc: David.Laight@ACULAB.COM Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: airlied@linux.ie Cc: akpm@linux-foundation.org Cc: benh@kernel.crashing.org Cc: bigeasy@linutronix.de Cc: borntraeger@de.ibm.com Cc: daniel.vetter@intel.com Cc: heiko.carstens@de.ibm.com Cc: herbert@gondor.apana.org.au Cc: hocko@suse.cz Cc: hughd@google.com Cc: mst@redhat.com Cc: paulus@samba.org Cc: ralf@linux-mips.org Cc: schwidefsky@de.ibm.com Cc: yang.shi@windriver.com Link: http://lkml.kernel.org/r/1431359540-32227-5-git-send-email-dahi@linux.vnet.ibm.com Signed-off-by: Ingo Molnar arch/arm/mm/highmem.c | 3 +++ arch/frv/mm/highmem.c | 2 ++ arch/metag/mm/highmem.c | 4 +++- arch/microblaze/mm/highmem.c | 4 +++- arch/mips/mm/highmem.c | 5 ++++- arch/mn10300/include/asm/highmem.h | 3 +++ arch/parisc/include/asm/cacheflush.h | 2 ++ arch/powerpc/mm/highmem.c | 4 +++- arch/sparc/mm/highmem.c | 4 +++- arch/tile/mm/highmem.c | 3 ++- arch/x86/mm/highmem_32.c | 3 ++- arch/x86/mm/iomap_32.c | 2 ++ arch/xtensa/mm/highmem.c | 2 ++ include/linux/highmem.h | 2 ++ include/linux/io-mapping.h | 2 ++ 15 files changed, 38 insertions(+), 7 deletions(-) commit b3c395ef5556a6c60f4426cc060f5b7bdcf82d5b Author: David Hildenbrand Date: Mon May 11 17:52:08 2015 +0200 mm/uaccess, mm/fault: Clarify that uaccess may only sleep if pagefaults are enabled In general, non-atomic variants of user access functions must not sleep if pagefaults are disabled. Let's update all relevant comments in uaccess code. This also reflects the might_sleep() checks in might_fault(). Reviewed-and-tested-by: Thomas Gleixner Signed-off-by: David Hildenbrand Signed-off-by: Peter Zijlstra (Intel) Cc: David.Laight@ACULAB.COM Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: airlied@linux.ie Cc: akpm@linux-foundation.org Cc: benh@kernel.crashing.org Cc: bigeasy@linutronix.de Cc: borntraeger@de.ibm.com Cc: daniel.vetter@intel.com Cc: heiko.carstens@de.ibm.com Cc: herbert@gondor.apana.org.au Cc: hocko@suse.cz Cc: hughd@google.com Cc: mst@redhat.com Cc: paulus@samba.org Cc: ralf@linux-mips.org Cc: schwidefsky@de.ibm.com Cc: yang.shi@windriver.com Link: http://lkml.kernel.org/r/1431359540-32227-4-git-send-email-dahi@linux.vnet.ibm.com Signed-off-by: Ingo Molnar arch/avr32/include/asm/uaccess.h | 12 ++++++---- arch/hexagon/include/asm/uaccess.h | 3 ++- arch/m32r/include/asm/uaccess.h | 30 +++++++++++++++-------- arch/microblaze/include/asm/uaccess.h | 6 +++-- arch/mips/include/asm/uaccess.h | 45 +++++++++++++++++++++++------------ arch/s390/include/asm/uaccess.h | 15 ++++++++---- arch/score/include/asm/uaccess.h | 15 ++++++++---- arch/tile/include/asm/uaccess.h | 18 +++++++++----- arch/x86/include/asm/uaccess.h | 15 ++++++++---- arch/x86/include/asm/uaccess_32.h | 6 +++-- arch/x86/lib/usercopy_32.c | 6 +++-- lib/strnlen_user.c | 6 +++-- 12 files changed, 118 insertions(+), 59 deletions(-) commit 9ec23531fd48031d1b6ca5366f5f967d17a8bc28 Author: David Hildenbrand Date: Mon May 11 17:52:07 2015 +0200 sched/preempt, mm/fault: Trigger might_sleep() in might_fault() with disabled pagefaults Commit 662bbcb2747c ("mm, sched: Allow uaccess in atomic with pagefault_disable()") removed might_sleep() checks for all user access code (that uses might_fault()). The reason was to disable wrong "sleep in atomic" warnings in the following scenario: pagefault_disable() rc = copy_to_user(...) pagefault_enable() Which is valid, as pagefault_disable() increments the preempt counter and therefore disables the pagefault handler. copy_to_user() will not sleep and return an error code if a page is not available. However, as all might_sleep() checks are removed, CONFIG_DEBUG_ATOMIC_SLEEP would no longer detect the following scenario: spin_lock(&lock); rc = copy_to_user(...) spin_unlock(&lock) If the kernel is compiled with preemption turned on, preempt_disable() will make in_atomic() detect disabled preemption. The fault handler would correctly never sleep on user access. However, with preemption turned off, preempt_disable() is usually a NOP (with !CONFIG_PREEMPT_COUNT), therefore in_atomic() will not be able to detect disabled preemption nor disabled pagefaults. The fault handler could sleep. We really want to enable CONFIG_DEBUG_ATOMIC_SLEEP checks for user access functions again, otherwise we can end up with horrible deadlocks. Root of all evil is that pagefault_disable() acts almost as preempt_disable(), depending on preemption being turned on/off. As we now have pagefault_disabled(), we can use it to distinguish whether user acces functions might sleep. Convert might_fault() into a makro that calls __might_fault(), to allow proper file + line messages in case of a might_sleep() warning. Reviewed-and-tested-by: Thomas Gleixner Signed-off-by: David Hildenbrand Signed-off-by: Peter Zijlstra (Intel) Cc: David.Laight@ACULAB.COM Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: airlied@linux.ie Cc: akpm@linux-foundation.org Cc: benh@kernel.crashing.org Cc: bigeasy@linutronix.de Cc: borntraeger@de.ibm.com Cc: daniel.vetter@intel.com Cc: heiko.carstens@de.ibm.com Cc: herbert@gondor.apana.org.au Cc: hocko@suse.cz Cc: hughd@google.com Cc: mst@redhat.com Cc: paulus@samba.org Cc: ralf@linux-mips.org Cc: schwidefsky@de.ibm.com Cc: yang.shi@windriver.com Link: http://lkml.kernel.org/r/1431359540-32227-3-git-send-email-dahi@linux.vnet.ibm.com Signed-off-by: Ingo Molnar include/linux/kernel.h | 3 ++- mm/memory.c | 18 ++++++------------ 2 files changed, 8 insertions(+), 13 deletions(-) commit 8bcbde5480f9777f8b74d71493722c663e22c21b Author: David Hildenbrand Date: Mon May 11 17:52:06 2015 +0200 sched/preempt, mm/fault: Count pagefault_disable() levels in pagefault_disabled Until now, pagefault_disable()/pagefault_enabled() used the preempt count to track whether in an environment with pagefaults disabled (can be queried via in_atomic()). This patch introduces a separate counter in task_struct to count the level of pagefault_disable() calls. We'll keep manipulating the preempt count to retain compatibility to existing pagefault handlers. It is now possible to verify whether in a pagefault_disable() envionment by calling pagefault_disabled(). In contrast to in_atomic() it will not be influenced by preempt_enable()/preempt_disable(). This patch is based on a patch from Ingo Molnar. Reviewed-and-tested-by: Thomas Gleixner Signed-off-by: David Hildenbrand Signed-off-by: Peter Zijlstra (Intel) Cc: David.Laight@ACULAB.COM Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: airlied@linux.ie Cc: akpm@linux-foundation.org Cc: benh@kernel.crashing.org Cc: bigeasy@linutronix.de Cc: borntraeger@de.ibm.com Cc: daniel.vetter@intel.com Cc: heiko.carstens@de.ibm.com Cc: herbert@gondor.apana.org.au Cc: hocko@suse.cz Cc: hughd@google.com Cc: mst@redhat.com Cc: paulus@samba.org Cc: ralf@linux-mips.org Cc: schwidefsky@de.ibm.com Cc: yang.shi@windriver.com Link: http://lkml.kernel.org/r/1431359540-32227-2-git-send-email-dahi@linux.vnet.ibm.com Signed-off-by: Ingo Molnar include/linux/sched.h | 1 + include/linux/uaccess.h | 36 +++++++++++++++++++++++++++++------- kernel/fork.c | 3 +++ 3 files changed, 33 insertions(+), 7 deletions(-) commit 3e51f3c4004c9b01f66da03214a3e206f5ed627b Author: Frederic Weisbecker Date: Tue May 12 16:41:51 2015 +0200 sched/preempt: Remove PREEMPT_ACTIVE unmasking off in_atomic() Now that PREEMPT_ACTIVE implies PREEMPT_DISABLE_OFFSET, ignoring PREEMPT_ACTIVE from in_atomic() check isn't useful anymore. Signed-off-by: Frederic Weisbecker Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1431441711-29753-7-git-send-email-fweisbec@gmail.com Signed-off-by: Ingo Molnar include/linux/preempt.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e017cf21ae82e0b36f026b22083a8ae67926f465 Author: Frederic Weisbecker Date: Tue May 12 16:41:50 2015 +0200 sched/preempt: Fix out of date comment Signed-off-by: Frederic Weisbecker Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1431441711-29753-6-git-send-email-fweisbec@gmail.com Signed-off-by: Ingo Molnar include/linux/preempt.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b30f0e3ffedfa52b1d67a302ae5860c49998e5e2 Author: Frederic Weisbecker Date: Tue May 12 16:41:49 2015 +0200 sched/preempt: Optimize preemption operations on __schedule() callers __schedule() disables preemption and some of its callers (the preempt_schedule*() family) also set PREEMPT_ACTIVE. So we have two preempt_count() modifications that could be performed at once. Lets remove the preemption disablement from __schedule() and pull this responsibility to its callers in order to optimize preempt_count() operations in a single place. Suggested-by: Linus Torvalds Signed-off-by: Frederic Weisbecker Signed-off-by: Peter Zijlstra (Intel) Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1431441711-29753-5-git-send-email-fweisbec@gmail.com Signed-off-by: Ingo Molnar include/linux/preempt.h | 12 ++++++++++++ kernel/sched/core.c | 29 +++++++++-------------------- 2 files changed, 21 insertions(+), 20 deletions(-) commit 90b62b5129d5cb50f62f40e684de7a1961e57197 Author: Frederic Weisbecker Date: Tue May 12 16:41:48 2015 +0200 sched/preempt: Rename PREEMPT_CHECK_OFFSET to PREEMPT_DISABLE_OFFSET "CHECK" suggests it's only used as a comparison mask. But now it's used further as a config-conditional preempt disabler offset. Lets disambiguate this name. Signed-off-by: Frederic Weisbecker Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1431441711-29753-4-git-send-email-fweisbec@gmail.com Signed-off-by: Ingo Molnar include/linux/preempt.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 2e10e71ce88e3eaccfd09a045ae6ecebe657ba09 Author: Frederic Weisbecker Date: Tue May 12 16:41:47 2015 +0200 sched/preempt: Rearrange a few symbols after headers merge Adjust a few comments, and further integrate a few definitions after the dumb headers copy. Signed-off-by: Frederic Weisbecker Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1431441711-29753-3-git-send-email-fweisbec@gmail.com Signed-off-by: Ingo Molnar include/linux/preempt.h | 34 +++++++++++++++------------------- 1 file changed, 15 insertions(+), 19 deletions(-) commit 92cf211874e954027b8e91cc9a15485a50b58d6b Author: Frederic Weisbecker Date: Tue May 12 16:41:46 2015 +0200 sched/preempt: Merge preempt_mask.h into preempt.h preempt_mask.h defines all the preempt_count semantics and related symbols: preempt, softirq, hardirq, nmi, preempt active, need resched, etc... preempt.h defines the accessors and mutators of preempt_count. But there is a messy dependency game around those two header files: * preempt_mask.h includes preempt.h in order to access preempt_count() * preempt_mask.h defines all preempt_count semantic and symbols except PREEMPT_NEED_RESCHED that is needed by asm/preempt.h Thus we need to define it from preempt.h, right before including asm/preempt.h, instead of defining it to preempt_mask.h with the other preempt_count symbols. Therefore the preempt_count semantics happen to be spread out. * We plan to introduce preempt_active_[enter,exit]() to consolidate preempt_schedule*() code. But we'll need to access both preempt_count mutators (preempt_count_add()) and preempt_count symbols (PREEMPT_ACTIVE, PREEMPT_OFFSET). The usual place to define preempt operations is in preempt.h but then we'll need symbols in preempt_mask.h which already includes preempt.h. So we end up with a ressource circle dependency. Lets merge preempt_mask.h into preempt.h to solve these dependency issues. This way we gather semantic symbols and operation definition of preempt_count in a single file. This is a dumb copy-paste merge. Further merge re-arrangments are performed in a subsequent patch to ease review. Signed-off-by: Frederic Weisbecker Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1431441711-29753-2-git-send-email-fweisbec@gmail.com Signed-off-by: Ingo Molnar arch/m68k/include/asm/irqflags.h | 3 - include/linux/bottom_half.h | 1 - include/linux/hardirq.h | 2 +- include/linux/preempt.h | 111 +++++++++++++++++++++++++++++++++++++ include/linux/preempt_mask.h | 117 --------------------------------------- include/linux/sched.h | 2 +- lib/radix-tree.c | 2 +- 7 files changed, 114 insertions(+), 124 deletions(-) commit a22ae718067c233af790b8690b3d8f6190859ead Merge: 58ac93e e260818 Author: Ingo Molnar Date: Tue May 19 08:37:30 2015 +0200 Merge tag 'v4.1-rc4' into sched/core, before applying new patches Signed-off-by: Ingo Molnar commit b92b8b35a2e38bde319fd1d68ec84628c1f1b0fb Author: Peter Zijlstra Date: Tue May 12 10:51:55 2015 +0200 locking/arch: Rename set_mb() to smp_store_mb() Since set_mb() is really about an smp_mb() -- not a IO/DMA barrier like mb() rename it to match the recent smp_load_acquire() and smp_store_release(). Suggested-by: Linus Torvalds Signed-off-by: Peter Zijlstra (Intel) Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar Documentation/memory-barriers.txt | 6 +++--- arch/arm/include/asm/barrier.h | 2 +- arch/arm64/include/asm/barrier.h | 2 +- arch/ia64/include/asm/barrier.h | 7 +------ arch/metag/include/asm/barrier.h | 2 +- arch/mips/include/asm/barrier.h | 2 +- arch/powerpc/include/asm/barrier.h | 2 +- arch/s390/include/asm/barrier.h | 2 +- arch/sh/include/asm/barrier.h | 2 +- arch/sparc/include/asm/barrier_64.h | 2 +- arch/x86/include/asm/barrier.h | 4 ++-- arch/x86/um/asm/barrier.h | 3 ++- fs/select.c | 6 +++--- include/asm-generic/barrier.h | 4 ++-- include/linux/sched.h | 8 ++++---- kernel/futex.c | 2 +- kernel/locking/qspinlock_paravirt.h | 2 +- kernel/sched/wait.c | 4 ++-- 18 files changed, 29 insertions(+), 33 deletions(-) commit ab3f02fc237211f0583c1e7ba3bf504747be9b8d Author: Peter Zijlstra Date: Tue May 12 10:52:27 2015 +0200 locking/arch: Add WRITE_ONCE() to set_mb() Since we assume set_mb() to result in a single store followed by a full memory barrier, employ WRITE_ONCE(). Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar arch/arm/include/asm/barrier.h | 2 +- arch/arm64/include/asm/barrier.h | 2 +- arch/ia64/include/asm/barrier.h | 2 +- arch/metag/include/asm/barrier.h | 2 +- arch/mips/include/asm/barrier.h | 2 +- arch/powerpc/include/asm/barrier.h | 2 +- arch/s390/include/asm/barrier.h | 2 +- arch/sparc/include/asm/barrier_64.h | 2 +- arch/x86/include/asm/barrier.h | 2 +- arch/x86/um/asm/barrier.h | 2 +- include/asm-generic/barrier.h | 2 +- include/linux/compiler.h | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) commit 7c42eaf6c5eb6fad56a77d90c0e25da8be39948d Author: Vineet Gupta Date: Mon May 18 12:50:02 2015 +0530 ARC: switch to simpler CROSS_COMPILE prefix ARC GNU tools have had support for arc-linux-* driver for some time now. This is functionally similar to arc-linux-uclibc-* but uclibc prefix seemed weird at best when trying to compile the kernel itself. Signed-off-by: Vineet Gupta arch/arc/Makefile | 2 +- arch/arc/configs/nsim_700_defconfig | 2 +- arch/arc/configs/nsimosci_defconfig | 2 +- arch/arc/configs/tb10x_defconfig | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) commit 45309493509b5acd667246c8232dd4911a7a168c Author: Vineet Gupta Date: Mon May 18 12:46:37 2015 +0530 ARC: fold ___flush_dcache_page into __flush_dcache_page Signed-off-by: Vineet Gupta arch/arc/include/asm/cacheflush.h | 4 +--- arch/arc/mm/cache_arc700.c | 12 ++++++------ 2 files changed, 7 insertions(+), 9 deletions(-) commit 1269f4d5c9022ddd53d62e9bfa89b2af08c934ea Author: Vineet Gupta Date: Sat Apr 25 10:40:52 2015 +0530 ARC: fix warning in sched due to thread_saved_pc() Signed-off-by: Vineet Gupta arch/arc/include/asm/processor.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f218e14b62339c6c28aa0c419eba200463cec99a Author: Sébastien Szymanski Date: Fri May 15 15:44:28 2015 +0200 ARM: imx_v6_v7_defconfig: updates for Armadeus Systems APF6 boards APF6 Dual and Quad SoM have an wl1271 wifi/bt chip. This chip needs CONFIG_BT_HCIUART_LL. APF6Dev carrier board has a SX8654 I2C touchscreen controller. Signed-off-by: Sébastien Szymanski Signed-off-by: Shawn Guo arch/arm/configs/imx_v6_v7_defconfig | 6 ++++++ 1 file changed, 6 insertions(+) commit d5c016b56cb08d5b043033010df958ba7bb384cc Author: Gabriele Martino Date: Mon May 18 21:15:13 2015 +0200 ALSA: hda/ca0132: support for Alienware 15 Creative Sound Core3D-EX This patch adds quirks detection to the Creative CA0132 codec, and the quirk for Alienware 15 (2015). Some quirks may need different pin configuration, so the relevant compile-time configuration has been removed. The pin configuration and related initialization verbs are generated at runtime instead, in ca0132_config() and ca0132_prepare_verbs(). Signed-off-by: Gabriele Martino Signed-off-by: Takashi Iwai sound/pci/hda/patch_ca0132.c | 118 +++++++++++++++++++++++++++++++++---------- 1 file changed, 92 insertions(+), 26 deletions(-) commit 76d7c457659dfc05d5a23cd0b21fea333d1788cd Merge: a2ad5d2 49d16b2 Author: David S. Miller Date: Tue May 19 00:15:50 2015 -0400 Merge branch 'icmp_frag' Andy Zhou says: ==================== fragmentation ICMP Currently, we send ICMP packets when errors occur during fragmentation or de-fragmentation. However, it is a bug when sending those ICMP packets in the context of using netfilter for bridging. Those ICMP packets are only expected in the context of routing, not in bridging mode. The local stack is not involved in bridging forward decisions, thus should be not used for deciding the reverse path for those ICMP messages. This bug only affects IPV4, not in IPv6. v1->v2: restructure the patches into two patches that fix defragmentation and fragmentation respectively. A bit is add in IPCB to control whether ICMP packet should be generated for defragmentation. Fragmentation ICMP is now removed by restructuring the ip_fragment() API. v2->v3: Add droping icmp for bridging contrack users drop exporting ip_fragment() API. v3->v4: Remove unnecessary parentheses in 'return' statements v4->v5: Drop the patch that sets and checks a bit in IPCB that prevents ip_defrag to send ICMP. ==================== Signed-off-by: David S. Miller commit 49d16b23cd1e61c028ee088c5a64e9ac6a9c6147 Author: Andy Zhou Date: Fri May 15 14:15:37 2015 -0700 bridge_netfilter: No ICMP packet on IPv4 fragmentation error When bridge netfilter re-fragments an IP packet for output, all packets that can not be re-fragmented to their original input size should be silently discarded. However, current bridge netfilter output path generates an ICMP packet with 'size exceeded MTU' message for such packets, this is a bug. This patch refactors the ip_fragment() API to allow two separate use cases. The bridge netfilter user case will not send ICMP, the routing output will, as before. Signed-off-by: Andy Zhou Acked-by: Florian Westphal Signed-off-by: David S. Miller include/net/ip.h | 4 ++-- net/bridge/br_netfilter.c | 21 ++++++++++++++++++++- net/ipv4/ip_output.c | 40 ++++++++++++++++++++++++++++------------ 3 files changed, 50 insertions(+), 15 deletions(-) commit 8bc04864ac89616e55fc8a196dd32b7066433ea8 Author: Andy Zhou Date: Fri May 15 14:15:36 2015 -0700 IPv4: skip ICMP for bridge contrack users when defrag expires users in [IP_DEFRAG_CONNTRACK_BRIDGE_IN, __IP_DEFRAG_CONNTRACK_BR_IN] should not ICMP message also. Reported-by: Florian Westphal Signed-off-by: Andy Zhou Signed-off-by: David S. Miller net/ipv4/ip_fragment.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 5cf422808244ca8f1177c72fe6e1ce8322794b57 Author: Andy Zhou Date: Fri May 15 14:15:35 2015 -0700 ipv4: introduce frag_expire_skip_icmp() Improve readability of skip ICMP for de-fragmentation expiration logic. This change will also make the logic easier to maintain when the following patches in this series are applied. Signed-off-by: Andy Zhou Signed-off-by: David S. Miller include/net/ip.h | 10 ++++++++++ net/ipv4/ip_fragment.c | 13 +++++++++---- 2 files changed, 19 insertions(+), 4 deletions(-) commit 7f436055cb0c0e17c430fb81197b42e20c2e812c Author: Jin Qian Date: Fri May 15 18:10:37 2015 -0700 PM / wakeup: add a dummy wakeup_source to record statistics After a wakeup_source is destroyed, we lost all information such as how long this wakeup_source has been active. Add a dummy wakeup_source to record such info. Signed-off-by: Jin Qian Signed-off-by: Rafael J. Wysocki drivers/base/power/wakeup.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) commit 87e9b9f1d86c2ee9a10c2a4186a72d0af4cc963e Author: Rafael J. Wysocki Date: Sat May 16 01:38:15 2015 +0200 PM / sleep: Make suspend-to-idle-specific code depend on CONFIG_SUSPEND Since idle_should_freeze() is defined to always return 'false' for CONFIG_SUSPEND unset, all of the code depending on it in cpuidle_idle_call() is not necessary in that case. Make that code depend on CONFIG_SUSPEND too to avoid building it when it is not going to be used. Signed-off-by: Rafael J. Wysocki Acked-by: Thomas Gleixner drivers/cpuidle/cpuidle.c | 2 ++ include/linux/cpuidle.h | 16 ++++++++++------ include/linux/tick.h | 12 ++++++++---- kernel/time/tick-common.c | 2 ++ 4 files changed, 22 insertions(+), 10 deletions(-) commit 671767360db8fdd1f082d15fb4b0107c1bb94a0b Author: Ruchi Kandoi Date: Thu May 7 19:07:42 2015 -0700 PM / sleep: Return -EBUSY from suspend_enter() on wakeup detection If a wakeup source is found to be pending in the last stage of suspend after syscore suspend, then the machine won't suspend, but suspend_enter() will return 0. That is confusing, as wakeup detection elsewhere causes -EBUSY to be returned from suspend_enter(). To avoid the confusion, make suspend_enter() return -EBUSY in that case too. Signed-off-by: Ruchi Kandoi [ rjw: Subject and changelog ] Signed-off-by: Rafael J. Wysocki kernel/power/suspend.c | 2 ++ 1 file changed, 2 insertions(+) commit 9c82e83e6b9d999f13c93083ab47b14209662c4b Author: Lv Zheng Date: Wed May 6 10:57:53 2015 +0800 ACPICA: Divergence: Remove redundant definitions. There are two same "define"s in the actypes.h for ACPI_USE_NATIVE_DIVIDE, this patch removes one of them as it is useless and is not in the ACPICA upstream. It is likely that the useless block is there because of the issues in the old ACPICA release process. Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki include/acpi/actypes.h | 5 ----- 1 file changed, 5 deletions(-) commit d0093404f808e23a480dbb4e05c083f1cfeddfd9 Merge: dde1006 214a2b7 Author: Dave Airlie Date: Tue May 19 10:18:13 2015 +1000 Merge tag 'drm-intel-next-2015-05-08' of git://anongit.freedesktop.org/drm-intel into drm-next - skl plane scaler support (Chandra Kondru) - enable hsw cmd parser (Daniel and fix from Rebecca Palmer) - skl dc5/6 support (low power display modes) from Suketu&Sunil - dp compliance testing patches (Todd Previte) - dp link training optimization (Mika Kahola) - fixes to make skl resume work (Damien) - rework modeset code to fully use atomic state objects (Ander&Maarten) - pile of bxt w/a patchs from Nick Hoath - (linear) partial gtt mmap support (Joonas Lahtinen) * tag 'drm-intel-next-2015-05-08' of git://anongit.freedesktop.org/drm-intel: (103 commits) drm/i915: Update DRIVER_DATE to 20150508 drm/i915: Only wait for required lanes in vlv_wait_port_ready() drm/i915: Fix possible security hole in command parsing drm/edid: Kerneldoc for newly added edid_corrupt drm/i915: Reject huge tiled objects Revert "drm/i915: Hack to tie both common lanes together on chv" drm/i915: Work around DISPLAY_PHY_CONTROL register corruption on CHV drm/i915: Implement chv display PHY lane stagger setup drm/i915/vlv: remove wait for previous GFX clk disable request drm/i915: Set crtc_state->active to false when CRTC is disabled (v2) drm/i915/skl: Re-indent part of skl_ddi_calculate_wrpll() drm/i915: Use partial view in mmap fault handler drm/i915: Add a partial GGTT view type drm/i915: Consider object pinned if any VMA is pinned drm/i915: Do not make assumptions on GGTT VMA sizes drm/i915/bxt: Mark WaCcsTlbPrefetchDisable as for Broxton also. drm/i915/bxt: Mark WaDisablePartialResolveInVc as for Broxton also. drm/i915/bxt: Mark Wa4x4STCOptimizationDisable as for Broxton also. drm/i915/bxt: Move WaForceEnableNonCoherent to Skylake only drm/i915/bxt: Enable WaEnableYV12BugFixInHalfSliceChicken7 for Broxton ... commit 909eacd748b3c8d15e6a239aa67f7828885d798e Merge: aa519be e260818 Author: Greg Kroah-Hartman Date: Mon May 18 15:33:09 2015 -0700 Merge 4.1-rc4 into usb-next We want the fixes in here as well. Signed-off-by: Greg Kroah-Hartman commit 939ef66848ea2b069d938146332fe07e8b6c84af Merge: 3c646f2 b5cc5cb Author: Thomas Gleixner Date: Mon May 18 23:59:13 2015 +0200 Merge branch 'irq/for-arm' into irq/core Pull in the branch which can be consumed by ARM to build their changes on top. commit b5cc5cbc116975812917db6de023cde928935910 Author: Stefan Agner Date: Sat May 16 11:44:17 2015 +0200 irqchip: vf610-mscm: Support NVIC parent chip Support the NVIC interrupt controller as node parent of the MSCM interrupt router. On the dual-core variants of Vybird (VF6xx), the NVIC interrupt controller is used by the Cortex-M4. To support running Linux on this core too, MSCM needs NVIC parent support too. Signed-off-by: Stefan Agner Cc: marc.zyngier@arm.com Cc: linux@arm.linux.org.uk Cc: u.kleine-koenig@pengutronix.de Cc: olof@lixom.net Cc: arnd@arndb.de Cc: daniel.lezcano@linaro.org Cc: mark.rutland@arm.com Cc: pawel.moll@arm.com Cc: robh+dt@kernel.org Cc: ijc+devicetree@hellion.org.uk Cc: galak@codeaurora.org Cc: mcoquelin.stm32@gmail.com Cc: linux-arm-kernel@lists.infradead.org Cc: shawn.guo@linaro.org Cc: kernel@pengutronix.de Cc: jason@lakedaemon.net Link: http://lkml.kernel.org/r/1431769465-26867-6-git-send-email-stefan@agner.ch Signed-off-by: Thomas Gleixner drivers/irqchip/irq-vf610-mscm-ir.c | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) commit 8ab456ac3697dbd1d3eae5d5817dba941faf89ee Author: Aleksa Sarai Date: Tue May 19 00:51:00 2015 +1000 cgroup: switch to unsigned long for bitmasks Switch the type of all internal cgroup masks to (unsigned long), which is the correct type for bitmasks. This is in preparation for the for_each_subsys_which patch. Signed-off-by: Aleksa Sarai Signed-off-by: Tejun Heo kernel/cgroup.c | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) commit 8a0ee3b52df73c7b89376b03c789232b78dd2aff Author: Tomas Henzl Date: Tue Feb 17 17:40:22 2015 +0100 cciss: correct the non-resettable board list The hpsa driver carries a more recent version, copy the table from there. Signed-off-by: Tomas Henzl Signed-off-by: Jens Axboe drivers/block/cciss.c | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) commit 5aea3288d3706e812a8d6c4078669f38b7b72bda Author: Tomas Henzl Date: Tue Feb 17 17:40:21 2015 +0100 cciss: remove duplicate entries from board_type struct and devices not supported by this driver from unresettable list Signed-off-by: Tomas Henzl Signed-off-by: Jens Axboe drivers/block/cciss.c | 4 ---- 1 file changed, 4 deletions(-) commit 02730d3c053a9af1d402e1c8dc8bbbc5a1340406 Merge: 77232f7 e260818 Author: Greg Kroah-Hartman Date: Mon May 18 14:08:58 2015 -0700 Merge 4.1-rc4 into tty-next This resolves some tty driver merge issues. Signed-off-by: Greg Kroah-Hartman commit a2ad5d2ad96e8d5b3b8f33583a82eae78dce4d49 Author: Willem de Bruijn Date: Mon May 18 15:42:11 2015 -0400 selftests/net: expect headroom in psock_fanout rollover psock_fanout tests the various fanout modes. Change the test for rollover mode to expect early rollover due to socket pressure as implemented in 2ccdbaa6d55b ("packet: rollover lock contention avoidance"). Signed-off-by: Willem de Bruijn Signed-off-by: David S. Miller tools/testing/selftests/net/psock_fanout.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 60c06c4c6f85676a86826c7e9bbd727224a2795f Author: Dmitry Eremin-Solenikov Date: Mon May 18 16:02:47 2015 +0100 ARM: 8363/1: sa1100: use ioremapped memory to access SC registers Use ioremap() and readl/writel_relaxed() to access IRQ controller registers. Signed-off-by: Dmitry Eremin-Solenikov Signed-off-by: Russell King arch/arm/mach-sa1100/irq.c | 52 ++++++++++++++++++++++++++++++---------------- 1 file changed, 34 insertions(+), 18 deletions(-) commit a657d7f679e841664c132cb691ffa44a6cd0bdb3 Author: Dmitry Eremin-Solenikov Date: Mon May 18 16:01:19 2015 +0100 ARM: 8362/1: sa1100: use sa11x0_sc_set_wake() in irq driver Use new function controlling PWER register in IRQ driver. Signed-off-by: Dmitry Eremin-Solenikov Signed-off-by: Russell King arch/arm/mach-sa1100/irq.c | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) commit 982b465a2f7c90a11761a483d78594566619e405 Author: Dmitry Eremin-Solenikov Date: Mon May 18 15:58:57 2015 +0100 ARM: 8361/1: sa1100: add platform functions to handle PWER settings PWER settings logically belongs neither to GPIO nor to system IRQ code. Add special functions to handle PWER (for GPIO and for system IRQs) from platform code. Signed-off-by: Dmitry Eremin-Solenikov Signed-off-by: Russell King arch/arm/mach-sa1100/generic.c | 24 ++++++++++++++++++++++++ include/soc/sa1100/pwer.h | 15 +++++++++++++++ 2 files changed, 39 insertions(+) commit 936a0cd52aa5d024c583e36e2f21bf6ec2e527e4 Merge: 36bf51a e260818 Author: Greg Kroah-Hartman Date: Mon May 18 13:52:44 2015 -0700 Merge 4.1-rc4 into staging-next We want the fixes in here for testing and merge issues. Signed-off-by: Greg Kroah-Hartman commit cf4f8114794cce3ccbf038c8ebcc16392caac485 Author: Jemma Denson Date: Fri May 15 15:40:29 2015 -0300 [media] b2c2: Reset no_base_addr on skystarS2 attach failure If set, all the other drivers reset no_base_addr on failure to attach - git commit for this being added to some of them seems to be eccd15aad72f774b2059f708bc422dbb8493bb30 This driver has been floating around outside the mainline for so long it hasn't had this fix, so add it in. Whilst here tidy surrounding code to fix style issues. Signed-off-by: Jemma Denson Signed-off-by: Patrick Boettcher Signed-off-by: Mauro Carvalho Chehab drivers/media/common/b2c2/flexcop-fe-tuner.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 4133601c31adcbcd3affc40e1035c25787cc5cd1 Author: Jemma Denson Date: Fri May 8 17:36:19 2015 -0300 [media] cx24120: More tidying in cx24120_init Remove reg1 by refactoring for loops Change ret into an int as it's only used for return values now, and remove reset_result by using ret instead. Signed-off-by: Jemma Denson Signed-off-by: Patrick Boettcher Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/cx24120.c | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) commit 1668797d176d384c5148bd903b534125eae8d377 Author: Jemma Denson Date: Fri May 8 17:26:34 2015 -0300 [media] cx24120: Tidy cx24120_init Use reg instead of ret for all calls to readreg, remove ret_EA as it doesn't need to be a separate var anymore. Signed-off-by: Jemma Denson Signed-off-by: Patrick Boettcher Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/cx24120.c | 36 +++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) commit 92443cdb2362557e879ddcea10cb65bafe47153f Author: Jemma Denson Date: Fri May 8 16:57:56 2015 -0300 [media] cx24120: Remove unneccesary assignments in cx24120_init Probably a remnant of this driver being reverse engineered, cx24120_init assigned ret on each call to writereg - they're not used for anything so remove them to clear up the codebase. Signed-off-by: Jemma Denson Signed-off-by: Patrick Boettcher Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/cx24120.c | 74 +++++++++++++++++------------------ 1 file changed, 37 insertions(+), 37 deletions(-) commit 2f3f07fbe28c245bc4a86c735664d57a6e3b197d Author: Jemma Denson Date: Fri May 8 16:34:31 2015 -0300 [media] cx24120: Tidy up calls to dev_dbg Remove __func__ from calls to dev_dbg as dynamic debug can add in the function name anyway. Remove debug call in dvbv3 read_signal_strength as userspace has this value anyway. Reword some strings to make them simpler / more obvious. Signed-off-by: Jemma Denson Signed-off-by: Patrick Boettcher Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/cx24120.c | 138 +++++++++++++--------------------- 1 file changed, 53 insertions(+), 85 deletions(-) commit 3b5eb504fe7efc0637f43f6a641ee6e163800f98 Author: Jemma Denson Date: Fri May 8 15:52:45 2015 -0300 [media] cx24120: Move CNR to DVBv5 stats Better to report CNR via DVBv5 stats, as scale can be used. Signed-off-by: Jemma Denson Signed-off-by: Patrick Boettcher Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/cx24120.c | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) commit 7c95e25e38c03a64659343ddbb64fdbb5ff2e25a Author: Jemma Denson Date: Tue May 5 18:33:27 2015 -0300 [media] cx24120: Fix disecq_send_burst command Previous version of this driver had a memset before every call to cmd. This meant the default value of cmd.arg[1] was zero unless burst is set. Make sure it remains zero. Also fe_sec_mini_cmd_t is an enum, so test against it. Signed-off-by: Jemma Denson Signed-off-by: Patrick Boettcher Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/cx24120.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit fbdbab72969b48367dcf5f0d42112b6f78fae794 Author: Jemma Denson Date: Tue May 5 18:31:10 2015 -0300 [media] cx24120: More coding style fixes Signed-off-by: Jemma Denson Signed-off-by: Patrick Boettcher Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/cx24120.c | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) commit 2d32d10103bc94ad2461864664b61ea98c930619 Author: Dan Carpenter Date: Fri May 15 12:24:15 2015 +0300 ata: ahci_xgene: potential NULL dereference in probe Smatch complains about this potential NULL dereference of "acpi_id". Fixes: c9802a4be661 ('ata: ahci_xgene: Add AHCI Support for 2nd HW version of APM X-Gene SoC AHCI SATA Host controller.') Signed-off-by: Dan Carpenter Signed-off-by: Tejun Heo drivers/ata/ahci_xgene.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit a3e3213676d8208328ef9f79936f94e583c0ec90 Author: Fabian Frederick Date: Mon May 18 15:23:03 2015 -0500 gfs2: fix shadow warning in gfs2_rbm_find() bi was already declared and initialized globally in gfs2_rbm_find() Signed-off-by: Fabian Frederick Signed-off-by: Bob Peterson fs/gfs2/rgrp.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit f7142ed483f49f9108bea1be0c1afcd5d9098e05 Author: Lai Jiangshan Date: Tue May 12 20:32:30 2015 +0800 workqueue: simplify wq_update_unbound_numa() wq_update_unbound_numa() is known be called with wq_pool_mutex held. But wq_update_unbound_numa() requests wq->mutex before reading wq->unbound_attrs, wq->numa_pwq_tbl[] and wq->dfl_pwq. But these fields were changed to be allowed being read with wq_pool_mutex held. So we simply remove the mutex_lock(&wq->mutex). Without the dependence on the the mutex_lock(&wq->mutex), the test of wq->unbound_attrs->no_numa can also be moved upward. The old code need a long comment to describe the stableness of @wq->unbound_attrs which is also guaranteed by wq_pool_mutex now, so we don't need this such comment. Signed-off-by: Lai Jiangshan Signed-off-by: Tejun Heo kernel/workqueue.c | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) commit 5b95e1af8d17d85a17728f6de7dbff538e6e3c49 Author: Lai Jiangshan Date: Tue May 12 20:32:29 2015 +0800 workqueue: wq_pool_mutex protects the attrs-installation Current wq_pool_mutex doesn't proctect the attrs-installation, it results that ->unbound_attrs, ->numa_pwq_tbl[] and ->dfl_pwq can only be accessed under wq->mutex and causes some inconveniences. Example, wq_update_unbound_numa() has to acquire wq->mutex before fetching the wq->unbound_attrs->no_numa and the old_pwq. attrs-installation is a short operation, so this change will no cause any latency for other operations which also acquire the wq_pool_mutex. The only unprotected attrs-installation code is in apply_workqueue_attrs(), so this patch touches code less than comments. It is also a preparation patch for next several patches which read wq->unbound_attrs, wq->numa_pwq_tbl[] and wq->dfl_pwq with only wq_pool_mutex held. Signed-off-by: Lai Jiangshan Signed-off-by: Tejun Heo kernel/workqueue.c | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) commit 7e91a210b405a2a700959a341c761fc2561ddaf4 Author: Edward Cree Date: Mon May 18 14:18:27 2015 +0100 sfc: nicer log message on Siena SR-IOV probe fail We expect that MC_CMD_SRIOV will fail if the card has no VFs configured. So output a readable message instead of a cryptic MCDI error. Signed-off-by: Edward Cree Signed-off-by: David S. Miller drivers/net/ethernet/sfc/siena_sriov.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit f5da7cb24b78f2398c80a3ba25438602a68fc3e4 Author: Mark Brown Date: Fri Apr 10 09:25:37 2015 -0600 coresight: etb10: Fix check for bogus buffer depth We attempt to sanity check the buffer depth reported by the hardware by making sure it is not less than zero however this check will never be true since the buffer depth is stored in an unsigned integer. Instead change the check to look for the top bit being set which was the intention. Signed-off-by: Mark Brown Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman drivers/hwtracing/coresight/coresight-etb10.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cc5454490b514a87ccf99fce7ee224cc95980d99 Author: Mark Brown Date: Fri Apr 10 09:25:36 2015 -0600 coresight: etb10: Print size of buffer we fail to allocate When we initialise the ETB driver we attempt to allocate a buffer suitable for storing the data buffered in the hardware based on sizing information reported by the hardware. Unfortunately if the hardware is not properly configured (for example if power domains are not set up correctly) then we may read back a nonsensically large value and therefore the allocation will be too big to succeed. Print an error message showing the amount of memory we tried to allocate if the buffer allocation fails to help users diagnose such problems. Normally it is bad practice to print an error message on memory allocation failures since there are verbose core messages reported for this but in this case where the allocation size might be incorrect it is a useful hint. Signed-off-by: Mark Brown Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman drivers/hwtracing/coresight/coresight-etb10.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit c326aa2bb2209e10df4a381801bb34ca0f923038 Author: Tejun Heo Date: Wed May 13 16:24:16 2015 -0400 cgroup: reorganize include/linux/cgroup.h From c4d440938b5e2015c70594fe6666a099c844f929 Mon Sep 17 00:00:00 2001 From: Tejun Heo Date: Wed, 13 May 2015 16:21:40 -0400 Over time, cgroup.h grew organically and doesn't have much logical structure at this point. Separation of cgroup-defs.h in the previous patch gives us a good chance for reorganizing cgroup.h as changes to the header are likely to cause conflicts anyway. This patch reorganizes cgroup.h so that it has consistent logical grouping. This is pure reorganization. v2: Relocating #ifdef CONFIG_CGROUPS caused build failure when cgroup is disabled. Dropped. Signed-off-by: Tejun Heo include/linux/cgroup.h | 552 ++++++++++++++++++++++++------------------------- 1 file changed, 271 insertions(+), 281 deletions(-) commit b4a04ab7a37b490cad48e69abfe14288cacb669c Author: Tejun Heo Date: Wed May 13 15:38:40 2015 -0400 cgroup: separate out include/linux/cgroup-defs.h From 2d728f74bfc071df06773e2fd7577dd5dab6425d Mon Sep 17 00:00:00 2001 From: Tejun Heo Date: Wed, 13 May 2015 15:37:01 -0400 This patch separates out cgroup-defs.h from cgroup.h which has grown a lot of dependencies. cgroup-defs.h currently only contains constant and type definitions and can be used to break circular include dependency. While moving, definitions are reordered so that cgroup-defs.h has consistent logical structure. This patch is pure reorganization. Signed-off-by: Tejun Heo include/linux/cgroup-defs.h | 464 ++++++++++++++++++++++++++++++++++++++++++++ include/linux/cgroup.h | 455 +------------------------------------------ 2 files changed, 466 insertions(+), 453 deletions(-) commit b0cdf1a16f4058ac1c6c595455f276c5e3c54db3 Author: Jemma Denson Date: Tue May 5 18:09:45 2015 -0300 [media] cx24120: Improve cooked signal strength value Algorithm copied from cx24117.c - it seems to work. Showing 95% on a signal I know to be somewhere around 74dBuV. [mchehab@osg.samsung.net: merged two patches, to avoid breaking compilation] Signed-off-by: Jemma Denson Signed-off-by: Patrick Boettcher Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/cx24120.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit 34ce475d3272f3645561eb67048faf5537bae621 Author: Jemma Denson Date: Tue May 5 17:47:55 2015 -0300 [media] cx24120: Return DVBv3 signal strength from cache This patch changes DVBv3 signal strength to read from the cache by moving the signal strength reading routine into get_stat, and reducing read_signal_strength to just returning the cached value. Signed-off-by: Jemma Denson Signed-off-by: Patrick Boettcher Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/cx24120.c | 50 +++++++++++++++++++---------------- 1 file changed, 27 insertions(+), 23 deletions(-) commit 1462612cb3172068c3f4dca1778e5fb115191c70 Author: Jemma Denson Date: Tue May 5 17:18:11 2015 -0300 [media] cx24120: Remove additional calls to read_status get_frontend was making a call to read_status, which is being called periodically anyway. Have read_status store fe_status in the state struct instead and use that within get_frontend. Signed-off-by: Jemma Denson Signed-off-by: Patrick Boettcher Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/cx24120.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) commit d3cf06bbe3088e0b6ede1cc0a91ff9b60d837be9 Author: Jemma Denson Date: Tue May 5 17:10:13 2015 -0300 [media] cx24120: Enable DVBv5 signal strength stats Previous patch added in collection, this patch enables them by signalling they are available. Signed-off-by: Jemma Denson Signed-off-by: Patrick Boettcher Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/cx24120.c | 5 +++++ 1 file changed, 5 insertions(+) commit 9fc18f18a568a944e93de6f6c2148a688623429b Author: Jemma Denson Date: Tue May 5 16:59:27 2015 -0300 [media] cx24120: Add DVBv5 signal strength stats Add new get_stats function, called from read_status, for collecting DVBv5 stats into the frontend cache. Only signal strength for now, can add others later. Not currently marked as available, future patch will enable. Signed-off-by: Jemma Denson Signed-off-by: Patrick Boettcher Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/cx24120.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) commit c84251bb122d6abcb0178f2c922f9ef51740e7ad Author: Jemma Denson Date: Sun May 3 08:55:15 2015 -0300 [media] cx24120: Rework vco function to remove xxyyzz variable Change calculate_vco function to send_vco to tidy up cx24120_init function. xxyyzz variable is remnants of a manual div & remainder codepath to perform a u64 rounded div; replace with kernel macro DIV_ROUND_CLOSEST_ULL Hex values provided to the message are mainly variables calculated within this function, replace with these to remove hardcoding. Signed-off-by: Jemma Denson Signed-off-by: Patrick Boettcher Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/cx24120.c | 63 ++++++++++++++++------------------- 1 file changed, 29 insertions(+), 34 deletions(-) commit 6ce412292a2ae15eea55c70f43449a9857404c00 Author: Jemma Denson Date: Fri May 1 16:20:16 2015 -0300 [media] cx24120: Fix hexdump length in writeregs msg.len has been ++'d so msg.len is one too many. Signed-off-by: Jemma Denson Signed-off-by: Patrick Boettcher Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/cx24120.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 270e70713b3a52fcd0a2f39f14b78b109ccfb944 Author: Jemma Denson Date: Thu Apr 30 17:05:14 2015 -0300 [media] cx24120: Add missing command to cx24120_check_cmd This patch adds in a missing command to cx24120_check_cmd. This part of the old reverse engineered driver was quite hard to follow - it's presumed the compiler did some neat optimisation that wasn't easy to decode. This command was checked for in that version but not copied across to the new switch statement. For reference, old reverse engineered code: xxzz = cmd->id - 0x11; // look for specific message id if ( xxzz <= 0x13 ) { msg_cmd_mask = 1 << xxzz; //0x0F8021 // if cmd_id 17 or 22 or 33-36, 42, 47, 57-61 etc. disable mpeg output if ( msg_cmd_mask & 0x0F8021 ) { // 000011111000000000100001b cx24120_msg_mpeg_output_global_config(state, 0); msleep(100); state->dvb_s2_mode &= 0xFD; // reset mpeg out enable flag } } Signed-off-by: Jemma Denson Signed-off-by: Patrick Boettcher Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/cx24120.c | 1 + 1 file changed, 1 insertion(+) commit 6138dc2f5f4f1eb02ac05a002de267d4e130c0cd Author: Jemma Denson Date: Thu Apr 30 16:37:42 2015 -0300 [media] cx24120: Move clock set to read_status This patch removes the requirement of waiting for tune in set_frontend by moving the clock set call into read_status Signed-off-by: Jemma Denson Signed-off-by: Patrick Boettcher Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/cx24120.c | 87 +++++++++-------------------------- 1 file changed, 23 insertions(+), 64 deletions(-) commit cd20c596b5d2ec70a00945fbc7d8eb218b85cf84 Author: Jemma Denson Date: Thu Apr 30 15:01:11 2015 -0300 [media] cx24120: Fix minor style typo in Kconfig This patch changes DVB-S/DVB-S2 to the more commonly used DVB-S/S2 in the description for DVB_CX24120 Signed-off-by: Jemma Denson Signed-off-by: Patrick Boettcher Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1ff2e8ed28e96f49b0f98b9a86e755ddd1a1078b Author: Patrick Boettcher Date: Tue Apr 28 13:39:20 2015 -0300 [media] cx24120: fix strict checkpatch-errors This patches fixes all checkpatch-errors. Even the ones created --strict. Signed-off-by: Patrick Boettcher Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/cx24120.c | 167 +++++++++++----------------------- drivers/media/dvb-frontends/cx24120.h | 11 +-- 2 files changed, 59 insertions(+), 119 deletions(-) commit 2e89a5e085ca301506fb28793dd16f9f147ccc06 Author: Patrick Boettcher Date: Tue Apr 28 13:18:05 2015 -0300 [media] cx24120: fix codingstyle issue first round Mauro pointed out some coding style issues in his review. This patch fixes them. Signed-off-by: Patrick Boettcher Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/cx24120.c | 287 ++++++++++++++++------------------ 1 file changed, 135 insertions(+), 152 deletions(-) commit b8fe6e2c46aed321fa60c0415c34c4519d7817e7 Author: Patrick Boettcher Date: Tue Apr 28 02:53:13 2015 -0300 [media] MAINTAINERS: add cx24120-maintainer Add maintainer for the cx24120 frontend-driver. Signed-off-by: Patrick Boettcher Signed-off-by: Mauro Carvalho Chehab MAINTAINERS | 9 +++++++++ 1 file changed, 9 insertions(+) commit f7a77ebf08536da5cafd4494855001be74176efb Author: Patrick Boettcher Date: Tue Apr 28 02:47:42 2015 -0300 [media] cx24120: i2c-max-write-size is now configurable Some i2c-hosts are quite limited regarding maximum i2c-burst-write-sizes. This patch makes the previously hardcoded field configurable by users of the driver. Signed-off-by: Patrick Boettcher Signed-off-by: Mauro Carvalho Chehab drivers/media/common/b2c2/flexcop-fe-tuner.c | 1 + drivers/media/dvb-frontends/cx24120.c | 38 ++++++++++++++++------------ drivers/media/dvb-frontends/cx24120.h | 3 +++ 3 files changed, 26 insertions(+), 16 deletions(-) commit c5fb0f5f545cdf90c451ea7c9a6fb98ae4c64e49 Author: Patrick Boettcher Date: Fri Apr 17 06:04:53 2015 -0300 [media] cx24120: minor checkpatch fixes This patch fixes printk-related checkpatch warnings. All printks have been converted to pr_warn or pr_info or pr_err. Signed-off-by: Patrick.Boettcher Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/cx24120.c | 7 ++----- drivers/media/dvb-frontends/cx24120.h | 2 +- 2 files changed, 3 insertions(+), 6 deletions(-) commit 5afc9a25be8d4e627cf07aa8a7500eafe3664b94 Author: Jemma Denson Date: Tue Apr 14 09:04:50 2015 -0300 [media] Add support for TechniSat Skystar S2 This patch adds support for the Technisat Skystar S2 - this has been tried before but the cx24120 driver was a bit out of shape and it didn't got any further: https://patchwork.linuxtv.org/patch/10575/ It is an old card, but currently being sold off for next to nothing, so it's proving quite popular of late. Noticing it's quite similar to the cx24116 and cx24117 I've rewritten the driver in a similar way. There were a few registers and commands from those drivers missing from this one I've tested out and found they do something so they've been added in to speed up tuning and to make get_frontend return something useful. Signed-off-by: Jemma Denson Signed-off-by: Patrick.Boettcher Signed-off-by: Mauro Carvalho Chehab drivers/media/common/b2c2/Kconfig | 1 + drivers/media/common/b2c2/flexcop-fe-tuner.c | 51 +- drivers/media/common/b2c2/flexcop-misc.c | 1 + drivers/media/common/b2c2/flexcop-reg.h | 1 + drivers/media/dvb-frontends/Kconfig | 7 + drivers/media/dvb-frontends/Makefile | 1 + drivers/media/dvb-frontends/cx24120.c | 1577 ++++++++++++++++++++++++++ drivers/media/dvb-frontends/cx24120.h | 56 + 8 files changed, 1688 insertions(+), 7 deletions(-) commit 9cae84b32dd52768cf2fd2fcb214c3f570676c4b Author: Hans Verkuil Date: Fri May 15 07:28:02 2015 -0300 [media] DocBook/media: fix syntax error Missing varlistentry tags. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/v4l/vidioc-qbuf.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 200a28050953d7ba6df434e8315e31f542556680 Author: Hans Verkuil Date: Fri May 8 07:55:01 2015 -0300 [media] DocBook/media: improve timestamp documentation Explain which clock was used to make the timestamp. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/v4l/vidioc-dqevent.xml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit ffe2a8536c556042d7f03edd45c8cc6a5fc32be5 Author: Hans Verkuil Date: Fri May 8 07:54:35 2015 -0300 [media] DocBook/media: remove spurious space Looks ugly, a space before a period at the end of a sentence. Remove it. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/v4l/io.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b9143e5ac5089561e857e223f7750b85a1951547 Author: Hans Verkuil Date: Thu May 7 03:26:21 2015 -0300 [media] rcar-vin: use monotonic timestamps Even though the rcar-vin driver tells userspace that it will give a monotonic timestamp, it is actually using gettimeofday. Replace this with a proper monotonic timestamp. Signed-off-by: Hans Verkuil Acked-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/soc_camera/rcar_vin.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b59b100c91ff4e742ebbc759dfca7057708da091 Author: Hans Verkuil Date: Thu May 7 03:22:14 2015 -0300 [media] sta2x11: use monotonic timestamp V4L2 drivers should use MONOTONIC timestamps instead of gettimeofday, which is affected by daylight savings time. Signed-off-by: Hans Verkuil Acked-by: Federico Vaga Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/sta2x11/sta2x11_vip.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit c9bc9f50753d20d24836831d40e1efe74c21b0ef Author: Prashant Laddha Date: Tue May 5 10:16:27 2015 -0300 [media] v4l2-dv-timings: fix overflow in gtf timings calculation The intermediate calculation in the expression for hblank can exceed 32 bit signed range. This overflow can lead to negative values for hblank. Typecasting intermediate variable to higher precision. Cc: Martin Bugge Signed-off-by: Prashant Laddha [hans.verkuil@cisco.com: made the denominator u32, since that's what div_u64 expects] Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/v4l2-dv-timings.c | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) commit ed1bc664daf58af7da47581fe43d42b95a1de65a Author: Ricardo Ribalda Date: Mon May 4 05:07:32 2015 -0300 [media] media/vivid: Code cleanout Remove code duplication by merging two cases in a switch. Signed-off-by: Ricardo Ribalda Delgado Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/vivid/vivid-tpg.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 18b3b3b8edb136d90e5d16d986ce9ae7eaeb0776 Author: Ricardo Ribalda Date: Mon May 4 05:07:29 2015 -0300 [media] media/vivid: Add support for Y16 format Support for V4L2_PIX_FMT_Y16, a 16 bit greyscale format. Signed-off-by: Ricardo Ribalda Delgado Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/vivid/vivid-tpg.c | 9 ++++++++- drivers/media/platform/vivid/vivid-vid-common.c | 8 ++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) commit 9ea964f369f109580c3ae5bbe3405c79fc855203 Author: Antti Palosaari Date: Sun May 3 21:48:47 2015 -0300 [media] rtl28xxu: load SDR module for fc2580 based devices Load rtl2832_sdr driver for devices having fc2580 tuner. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/dvb-usb-v2/rtl28xxu.c | 2 ++ 1 file changed, 2 insertions(+) commit fc3a0497b9d84018f13f7af5868c0089d52f6006 Author: Antti Palosaari Date: Sun May 3 21:45:43 2015 -0300 [media] rtl2832_sdr: add support for fc2580 tuner Add initial support for fc2580 tuner based devices. Tuner is controlled via V4L2 subdevice API. Passes v4l2-compliance tests. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/rtl2832_sdr.c | 110 ++++++++++++++++++++++++------ drivers/media/dvb-frontends/rtl2832_sdr.h | 1 + 2 files changed, 92 insertions(+), 19 deletions(-) commit 252fad1cee34d6613a44ff218d7a80fd5f4b0987 Author: Antti Palosaari Date: Sun May 3 21:42:02 2015 -0300 [media] fc2580: implement V4L2 subdevice for SDR control Implement V4L2 subdevice for bandwidth and frequency controls of SDR usage. That driver now implements both DVB frontend and V4L2 subdevice. Driver itself is I2C driver. Lets see how it works. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/tuners/fc2580.c | 262 +++++++++++++++++++++++++++++++++---- drivers/media/tuners/fc2580.h | 5 + drivers/media/tuners/fc2580_priv.h | 11 ++ 3 files changed, 249 insertions(+), 29 deletions(-) commit 8b302d43e84dc863729010a1ea9a5a2bc83d25de Author: Antti Palosaari Date: Sun May 3 15:16:52 2015 -0300 [media] fc2580: calculate filter control word dynamically Calculate low-pass filter control word dynamically from given radio channel bandwidth. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/tuners/fc2580.c | 8 ++++---- drivers/media/tuners/fc2580_priv.h | 9 ++++----- 2 files changed, 8 insertions(+), 9 deletions(-) commit 7e33f8a282d4c98710db7423d637b799b52eb477 Author: Antti Palosaari Date: Thu Apr 23 22:54:03 2015 -0300 [media] rtl28xxu: set correct FC2580 tuner for RTL2832 demod rtl2832 demod driver has support for FC2580 tuner config, no need to abuse FC0012 settings anymore. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/dvb-usb-v2/rtl28xxu.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit f88aae9d07ab1612c37cf52fee3a98e1e1eeea69 Author: Antti Palosaari Date: Thu Apr 23 22:52:07 2015 -0300 [media] rtl2832: add inittab for FC2580 tuner Add reg/val inittab for FC2580 tuner. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/rtl2832.c | 4 ++++ drivers/media/dvb-frontends/rtl2832.h | 1 + drivers/media/dvb-frontends/rtl2832_priv.h | 24 ++++++++++++++++++++++++ 3 files changed, 29 insertions(+) commit 47f95dbdb3adefb927851c8737de66894f58b14d Author: Antti Palosaari Date: Thu Apr 16 07:36:51 2015 -0300 [media] tua9001: use div_u64() for frequency calculation Use div_u64() to simplify and remove home made divides. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/tuners/tua9001.c | 9 +-------- drivers/media/tuners/tua9001_priv.h | 1 + 2 files changed, 2 insertions(+), 8 deletions(-) commit dd219a87e4ba963c8208a3ef0a38fbc14074ad70 Author: Antti Palosaari Date: Wed Apr 15 20:38:43 2015 -0300 [media] tua9001: use regmap for I2C register access Use regmap for I2C register access. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/tuners/Kconfig | 1 + drivers/media/tuners/tua9001.c | 41 +++++++++++-------------------------- drivers/media/tuners/tua9001_priv.h | 2 ++ 3 files changed, 15 insertions(+), 29 deletions(-) commit 465433fa378a6e0248461f03df6bfd754832a87b Author: Antti Palosaari Date: Wed Apr 15 20:26:06 2015 -0300 [media] tua9001: various minor changes Fix logging. Style issues. Rename things. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/tuners/Kconfig | 2 +- drivers/media/tuners/tua9001.c | 153 ++++++++++++++++++------------------ drivers/media/tuners/tua9001.h | 6 +- drivers/media/tuners/tua9001_priv.h | 16 ++-- 4 files changed, 83 insertions(+), 94 deletions(-) commit 96676239f59ca7d3db6afaf4911a4139dbeff858 Author: Antti Palosaari Date: Wed Apr 15 19:33:13 2015 -0300 [media] tua9001: remove media attach We are using I2C client binding now, so remove old media attach. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/tuners/tua9001.c | 88 ++---------------------------------------- drivers/media/tuners/tua9001.h | 20 ---------- 2 files changed, 4 insertions(+), 104 deletions(-) commit 88ffe55ae3e5d012ddb80488d8bd1104d7b6e0aa Author: Antti Palosaari Date: Wed Apr 15 19:25:32 2015 -0300 [media] rtl28xxu: bind tua9001 using I2C binding Change tua9001 driver from media binding to I2C client binding. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/dvb-usb-v2/rtl28xxu.c | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) commit b6c5fe70a7902dc9749991ac57e6e47d4471ecce Author: Antti Palosaari Date: Wed Apr 15 19:18:40 2015 -0300 [media] af9035: bind tua9001 using I2C binding Change tua9001 driver from media binding to I2C client binding. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/dvb-usb-v2/af9035.c | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) commit fc851c66b275e4092bb79c888a80dcdd1920c0b8 Author: Antti Palosaari Date: Wed Apr 15 19:12:34 2015 -0300 [media] tua9001: add I2C bindings Add I2C bindings. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/tuners/tua9001.c | 100 +++++++++++++++++++++++++++++++++++- drivers/media/tuners/tua9001.h | 13 +++++ drivers/media/tuners/tua9001_priv.h | 4 +- 3 files changed, 114 insertions(+), 3 deletions(-) commit b3f02270b2618833fd44f8e5a8c1f82ab47741c2 Author: Antti Palosaari Date: Wed Apr 15 15:01:22 2015 -0300 [media] af9035: fix device order in ID list Driver supports multiple chipset versions. Devices are ordered to ID table per used chipset type. "ITE 9303 Generic" device uses IT9303 chipset and was added mistakenly between IT9135 IDs. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/dvb-usb-v2/af9035.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 35fe4c65334bc88321450a8418ce37b69e2e09cb Author: Antti Palosaari Date: Wed Apr 15 13:51:29 2015 -0300 [media] fc2580: use regmap for register I2C access Replace home made register access routines with regmap. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/tuners/Kconfig | 1 + drivers/media/tuners/fc2580.c | 216 +++++++++++-------------------------- drivers/media/tuners/fc2580_priv.h | 4 +- 3 files changed, 66 insertions(+), 155 deletions(-) commit 154cdfb03df77dc09ab07243dc531ad0ff1cc044 Author: Antti Palosaari Date: Wed Apr 15 12:35:47 2015 -0300 [media] fc2580: cleanups and variable renames Rename driver state from priv to dev. Remove legacy i2c-gate control. Use I2C client for proper dev_() logging. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/tuners/fc2580.c | 172 ++++++++++++++++--------------------- drivers/media/tuners/fc2580_priv.h | 2 +- 2 files changed, 76 insertions(+), 98 deletions(-) commit 46de761572b86953133776db494f6aa870183319 Author: Antti Palosaari Date: Wed Apr 15 12:10:54 2015 -0300 [media] fc2580: improve set params logic Calculate PLL dividers slightly differently, most likely it is now correct. Move some register values to innitab. Use jiffies to poll filter lock. Fix logging. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/tuners/fc2580.c | 179 +++++++++++++++++-------------------- drivers/media/tuners/fc2580_priv.h | 8 +- 2 files changed, 88 insertions(+), 99 deletions(-) commit 0bc4c07046de5ce2a2f25ef2192b6f5878c80f83 Merge: 17032ae 861fb10 Author: David S. Miller Date: Mon May 18 14:47:36 2015 -0400 Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next Pablo Neira Ayuso says: ==================== Netfilter updates for net-next The following patchset contains Netfilter updates for net-next. Briefly speaking, cleanups and minor fixes for ipset from Jozsef Kadlecsik and Serget Popovich, more incremental updates to make br_netfilter a better place from Florian Westphal, ARP support to the x_tables mark match / target from and context Zhang Chunyu and the addition of context to know that the x_tables runs through nft_compat. More specifically, they are: 1) Fix sparse warning in ipset/ip_set_hash_ipmark.c when fetching the IPSET_ATTR_MARK netlink attribute, from Jozsef Kadlecsik. 2) Rename STREQ macro to STRNCMP in ipset, also from Jozsef. 3) Use skb->network_header to calculate the transport offset in ip_set_get_ip{4,6}_port(). From Alexander Drozdov. 4) Reduce memory consumption per element due to size miscalculation, this patch and follow up patches from Sergey Popovich. 5) Expand nomatch field from 1 bit to 8 bits to allow to simplify mtype_data_reset_flags(), also from Sergey. 6) Small clean for ipset macro trickery. 7) Fix error reporting when both ip_set_get_hostipaddr4() and ip_set_get_extensions() from per-set uadt functions. 8) Simplify IPSET_ATTR_PORT netlink attribute validation. 9) Introduce HOST_MASK instead of hardcoded 32 in ipset. 10) Return true/false instead of 0/1 in functions that return boolean in the ipset code. 11) Validate maximum length of the IPSET_ATTR_COMMENT netlink attribute. 12) Allow to dereference from ext_*() ipset macros. 13) Get rid of incorrect definitions of HKEY_DATALEN. 14) Include linux/netfilter/ipset/ip_set.h in the x_tables set match. 15) Reduce nf_bridge_info size in br_netfilter, from Florian Westphal. 16) Release nf_bridge_info after POSTROUTING since this is only needed from the physdev match, also from Florian. 17) Reduce size of ipset code by deinlining ip_set_put_extensions(), from Denys Vlasenko. 18) Oneliner to add ARP support to the x_tables mark match/target, from Zhang Chunyu. 19) Add context to know if the x_tables extension runs from nft_compat, to address minor problems with three existing extensions. 20) Correct return value in several seqfile *_show() functions in the netfilter tree, from Joe Perches. ==================== Signed-off-by: David S. Miller commit ef39830dda3dfa16a7fade96c0625cda55eb6209 Author: Antti Palosaari Date: Tue Apr 14 20:15:09 2015 -0300 [media] fc2580: remove obsolete media attach All users are using driver via I2C client binding so lets remove unneeded media binding. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/tuners/fc2580.c | 72 ------------------------------------------- drivers/media/tuners/fc2580.h | 26 ---------------- 2 files changed, 98 deletions(-) commit 7a893ba9c8aea4d2bd802c030cbec9dd921ef613 Author: Antti Palosaari Date: Tue Apr 14 20:07:16 2015 -0300 [media] af9035: bind fc2580 using I2C binding Change fc2580 driver from media binding to I2C client binding. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/dvb-usb-v2/af9035.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) commit 35fc0e0fcb9479a15422240050ca39aa68796a41 Author: Antti Palosaari Date: Tue Apr 14 19:55:51 2015 -0300 [media] rtl28xxu: bind fc2580 using I2C binding Change fc2580 driver from media binding to I2C client binding. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/dvb-usb-v2/rtl28xxu.c | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) commit 6802fc0b8126d8e2e5e982a9772d757e61e47c72 Author: Antti Palosaari Date: Tue Apr 14 19:52:16 2015 -0300 [media] fc2580: implement I2C client bindings Add I2C client bindings to driver. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/tuners/fc2580.c | 101 +++++++++++++++++++++++++++++++++---- drivers/media/tuners/fc2580.h | 15 ++++++ drivers/media/tuners/fc2580_priv.h | 4 +- 3 files changed, 110 insertions(+), 10 deletions(-) commit bcb83a19d3ac95fe3c0e79e942fb628120738853 Author: Hauke Mehrtens Date: Sun May 17 17:41:01 2015 +0200 mtd: brcmnand: do not make local variable static Remove static in front of ctrl. This variable should not be shared between different instances of brcmnand_probe(), it should be local to this function and stored on the stack. Signed-off-by: Hauke Mehrtens Signed-off-by: Brian Norris drivers/mtd/nand/brcmnand/brcmnand.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 802041247a0abbeaf1dddb8a8d56f491762ae357 Author: Hauke Mehrtens Date: Sun May 17 17:41:00 2015 +0200 mtd: brcmnand: remove double new line from print The caller already adds a new line and in the other cases there is no new line added. Signed-off-by: Hauke Mehrtens Signed-off-by: Brian Norris drivers/mtd/nand/brcmnand/brcmnand.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2ddd8db90a22fc4ac708cd8497ed5e46b7f24d49 Merge: 02787da e260818 Author: Brian Norris Date: Mon May 18 10:50:43 2015 -0700 Merge tag 'v4.1-rc4' into MTD's -next commit 3c88f3dcff7bfd5059b704bdede2bfe972c0cec9 Author: Sagi Grimberg Date: Mon May 18 13:40:33 2015 +0300 RDS: Switch to generic logging helpers Signed-off-by: Sagi Grimberg Signed-off-by: Doug Ledford net/rds/af_rds.c | 9 --------- net/rds/ib.h | 1 - net/rds/ib_cm.c | 36 +++--------------------------------- net/rds/ib_recv.c | 4 ++-- net/rds/ib_send.c | 38 ++------------------------------------ net/rds/rdma_transport.c | 34 +++------------------------------- net/rds/rds.h | 1 - 7 files changed, 10 insertions(+), 113 deletions(-) commit 76357c715f32b61ce4d6b0c9daaf85a356498dfd Author: Sagi Grimberg Date: Mon May 18 13:40:32 2015 +0300 xprtrdma, svcrdma: Switch to generic logging helpers Reviewed-by: Chuck Lever Signed-off-by: Sagi Grimberg Signed-off-by: Anna Schumaker Signed-off-by: Doug Ledford net/sunrpc/xprtrdma/frwr_ops.c | 4 +- net/sunrpc/xprtrdma/svc_rdma_transport.c | 29 ++++++---- net/sunrpc/xprtrdma/verbs.c | 90 ++------------------------------ 3 files changed, 25 insertions(+), 98 deletions(-) commit ea8a1616a7dda6310ba2327e4906f4b5744caa12 Author: Sagi Grimberg Date: Mon May 18 13:40:31 2015 +0300 iser-target: Align to generic logging helpers Signed-off-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/ulp/isert/ib_isert.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) commit 871e00afa444be6908c887e61f0070c3524b3f68 Author: Sagi Grimberg Date: Mon May 18 13:40:30 2015 +0300 IB/iser: Align to generic logging helpers Signed-off-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/ulp/iser/iser_verbs.c | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) commit 57363d98cf558c196051de08f6c8bc336b3588f2 Author: Sagi Grimberg Date: Mon May 18 13:40:29 2015 +0300 IB/srp: Align to generic logging helpers Reviewed-by: Bart Van Assche Signed-off-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/ulp/srp/ib_srp.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) commit 2b1b5b601230ae4356be4724ea7a058ed7203c63 Author: Sagi Grimberg Date: Mon May 18 13:40:28 2015 +0300 IB/core, cma: Nice log-friendly string helpers Some of us keep revisiting the code to decode enumerations that appear in out logs. Let's borrow the nice logging helpers that exists in xprtrdma and rds for CMA events, IB events and WC statuses. Reviewd-by: Sean Hefty Signed-off-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/core/cma.c | 28 ++++++++++++++++++ drivers/infiniband/core/verbs.c | 65 +++++++++++++++++++++++++++++++++++++++++ include/rdma/ib_verbs.h | 4 +++ include/rdma/rdma_cm.h | 2 ++ 4 files changed, 99 insertions(+) commit 985aa49556a576416d3f960f8fc1c6513863e33e Author: Bart Van Assche Date: Mon May 18 13:27:14 2015 +0200 IB/srp: Add 64-bit LUN support The SCSI standard defines 64-bit values for LUNs. Large arrays employing large or hierarchical LUN numbers become more and more common. So update the SRP initiator to use 64-bit LUN numbers. See also Hannes Reinecke, commit 9cb78c16f5da ("scsi: use 64-bit LUNs"), June 2014. The largest LUN number that has been tested is 0xd2003fff00000000. Checked the following structure sizes with gdb: * sizeof(struct srp_cmd) = 48 * sizeof(struct srp_tsk_mgmt) = 48 * sizeof(struct srp_aer_req) = 36 The ibmvscsi changes have been compile tested only (on a PPC system). Signed-off-by: Bart Van Assche Reviewed-by: Hannes Reinecke Reviewed-by: Sagi Grimberg Reviewed-by: Yann Droneaud Cc: Sebastian Parschauer Cc: Brian King Cc: Nathan Fontenot Cc: Tyrel Datwyler Signed-off-by: Doug Ledford drivers/infiniband/ulp/srp/ib_srp.c | 12 ++++++------ drivers/infiniband/ulp/srp/ib_srp.h | 1 - drivers/scsi/ibmvscsi/ibmvscsi.c | 6 +++--- include/scsi/srp.h | 7 ++++--- 4 files changed, 13 insertions(+), 13 deletions(-) commit bbac5ccff43cdcb5fc9346669ec67ea47fca3de0 Author: Bart Van Assche Date: Mon May 18 13:26:17 2015 +0200 IB/srp: Remove !ch->target tests from the reconnect code Remove the !ch->target tests from the reconnect code. These tests are not needed: upon entry of srp_rport_reconnect() it is guaranteed that all ch->target pointers are non-NULL. None of the functions srp_new_cm_id(), srp_finish_req(), srp_create_ch_ib() nor srp_connect_ch() modifies this pointer. srp_free_ch_ib() is never called concurrently with srp_rport_reconnect(). Signed-off-by: Bart Van Assche Reviewed-by: Sagi Grimberg Cc: Sebastian Parschauer Signed-off-by: Doug Ledford drivers/infiniband/ulp/srp/ib_srp.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) commit 47513cf4f4a4a9d1db2823de9c5864f834dbaecf Author: Bart Van Assche Date: Mon May 18 13:25:54 2015 +0200 IB/srp: Remove a superfluous check from srp_free_req_data() The function srp_free_req_data() does not use ch->target. Hence remove the ch->target != NULL check. Signed-off-by: Bart Van Assche Cc: Sagi Grimberg Cc: Sebastian Parschauer Signed-off-by: Doug Ledford drivers/infiniband/ulp/srp/ib_srp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 33ab3e5ba2f7d647812dbca573ee3ba5baf58284 Author: Bart Van Assche Date: Mon May 18 13:25:27 2015 +0200 IB/srp: Rearrange module description Move the module version and release date into separate fields. This makes the modinfo output easier to read. Signed-off-by: Bart Van Assche Reviewed-by: Sagi Grimberg Cc: Sebastian Parschauer Signed-off-by: Doug Ledford drivers/infiniband/ulp/srp/ib_srp.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 45c37cad40beb42ccaeb4835ff4a69c6b83524a1 Author: Bart Van Assche Date: Mon May 18 13:25:10 2015 +0200 IB/srp: Remove superfluous casts A long time ago the data type int64_t was declared as long long on x86 systems and as long on PPC systems. Today that data type is declared as long long on all Linux architectures. This means that the casts from uint64_t into unsigned long long are superfluous. Remove these superfluous casts. Signed-off-by: Bart Van Assche Reviewed-by: Sagi Grimberg Cc: Sebastian Parschauer Signed-off-by: Doug Ledford drivers/infiniband/ulp/srp/ib_srp.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) commit e68ca75200fed4700471fb84ea0d09e25f269654 Author: Bart Van Assche Date: Mon May 18 13:24:38 2015 +0200 scsi_transport_srp: Reduce failover time Unlike FC, there is no risk that SCSI devices will be offlined by the SCSI error handler if the SCSI error handler is started while a reconnect attempt is ongoing. Hence report timeout errors as soon as possible if a higher software layer (e.g. multipathd) needs to be informed about a timeout. It is assumed that if both fast_io_fail_tmo < 0 and rport->dev_loss_tmo < 0 that this means that there is no need to report timeouts quickly. Signed-off-by: Bart Van Assche Cc: James Bottomley Cc: Sagi Grimberg Cc: Sebastian Parschauer Signed-off-by: Doug Ledford drivers/scsi/scsi_transport_srp.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit a44074f14ba1ea0747ea737026eb929b81993dc3 Author: Bart Van Assche Date: Mon May 18 13:24:17 2015 +0200 IB/srp: Fix reconnection failure handling Although it is possible to let SRP I/O continue if a reconnect results in a reduction of the number of channels, the current code does not handle this scenario correctly. Instead of making the reconnect code more complex, consider this as a reconnection failure. 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 | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit c014c8cd31b161e12deb81c0f7f477811bd1eddc Author: Bart Van Assche Date: Mon May 18 13:23:57 2015 +0200 IB/srp: Fix connection state tracking Reception of a DREQ message only causes the state of a single channel to change. Hence move the 'connected' member variable from the target to the channel data structure. This patch avoids that following false positive warning can be reported by srp_destroy_qp(): WARNING: at drivers/infiniband/ulp/srp/ib_srp.c:617 srp_destroy_qp+0xa6/0x120 [ib_srp]() Call Trace: [] warn_slowpath_common+0x7f/0xc0 [] warn_slowpath_null+0x1a/0x20 [] srp_destroy_qp+0xa6/0x120 [ib_srp] [] srp_free_ch_ib+0x82/0x1e0 [ib_srp] [] srp_create_target+0x7ab/0x998 [ib_srp] [] dev_attr_store+0x20/0x30 [] sysfs_write_file+0xef/0x170 [] vfs_write+0xc8/0x190 [] sys_write+0x51/0x90 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 | 60 ++++++++++++++++++------------------- drivers/infiniband/ulp/srp/ib_srp.h | 2 +- 2 files changed, 30 insertions(+), 32 deletions(-) commit 8de9fe3a1d4ac8c3e4953fa4b7d81f863f5196ad Author: Bart Van Assche Date: Mon May 18 13:23:36 2015 +0200 IB/srp: Fix a connection setup race Avoid that receiving a DREQ while RDMA channels are being established causes target->qp_in_error to be reset. 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 | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit fb49c8bbaae70b14fea2b4590a90a21539f88526 Author: Bart Van Assche Date: Mon May 18 13:23:14 2015 +0200 IB/srp: Remove an extraneous scsi_host_put() from an error path Fix a scsi_get_host() / scsi_host_put() imbalance in the error path of srp_create_target(). See also patch "IB/srp: Avoid that I/O hangs due to a cable pull during LUN scanning" (commit ID 34aa654ecb8e). Signed-off-by: Bart Van Assche Reviewed-by: Sagi Grimberg Cc: Sebastian Parschauer Cc: #v3.19 Signed-off-by: Doug Ledford drivers/infiniband/ulp/srp/ib_srp.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) commit 535fb906225fb7436cb658144d0c0cea14a26f3e Author: Bart Van Assche Date: Mon May 18 13:22:44 2015 +0200 scsi_transport_srp: Fix a race condition Avoid that srp_terminate_io() can get invoked while srp_queuecommand() is in progress. This patch avoids that an I/O timeout can trigger the following kernel warning: WARNING: at drivers/infiniband/ulp/srp/ib_srp.c:1447 srp_terminate_io+0xef/0x100 [ib_srp]() Call Trace: [] dump_stack+0x4e/0x68 [] warn_slowpath_common+0x81/0xa0 [] warn_slowpath_null+0x1a/0x20 [] srp_terminate_io+0xef/0x100 [ib_srp] [] __rport_fail_io_fast+0xba/0xc0 [scsi_transport_srp] [] rport_fast_io_fail_timedout+0xe0/0xf0 [scsi_transport_srp] [] process_one_work+0x1db/0x780 [] worker_thread+0x11b/0x450 [] kthread+0xe4/0x100 [] ret_from_fork+0x7c/0xb0 See also patch "scsi_transport_srp: Add transport layer error handling" (commit ID 29c17324803c). Signed-off-by: Bart Van Assche Cc: James Bottomley Cc: Sagi Grimberg Cc: Sebastian Parschauer Cc: #v3.13 Signed-off-by: Doug Ledford drivers/scsi/scsi_transport_srp.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit be34c62ddf39d1931780b07a6f4241393e4ba2ee Author: Bart Van Assche Date: Mon May 18 13:22:19 2015 +0200 scsi_transport_srp: Introduce srp_wait_for_queuecommand() Introduce the helper function srp_wait_for_queuecommand(). Move the definition of scsi_request_fn_active(). Add a comment above srp_wait_for_queuecommand() that support for scsi-mq needs to be added. This patch does not change any functionality. A second call to srp_wait_for_queuecommand() will be introduced in the next patch. Signed-off-by: Bart Van Assche Cc: James Bottomley Cc: Sagi Grimberg Cc: Sebastian Parschauer Cc: #v3.13 Signed-off-by: Doug Ledford drivers/scsi/scsi_transport_srp.c | 54 ++++++++++++++++++++++----------------- 1 file changed, 31 insertions(+), 23 deletions(-) commit b78d28a2af52584e43ff253603b26e38dee3f747 Author: Ira Weiny Date: Fri May 8 13:10:04 2015 -0400 IB/mad: Clean up comments in smi.c Return values of 0 do not make sense for functions which return enum smi_action Reviewed-By: Jason Gunthorpe Acked-by: Sean Hefty Signed-off-by: Ira Weiny Signed-off-by: Doug Ledford drivers/infiniband/core/smi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c597eee506a0108c59cb73195014344d57528090 Author: Ira Weiny Date: Fri May 8 13:10:03 2015 -0400 IB/mad: Rename is_data_mad to is_rmpp_data_mad is_rmpp_data_mad is more descriptive for this function. Reviewed-By: Jason Gunthorpe Reviewed-by: Sean Hefty Signed-off-by: Ira Weiny Signed-off-by: Doug Ledford drivers/infiniband/core/mad.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 0cf18d7723055709faf51b50f5a33253b480637f Author: Ira Weiny Date: Wed May 13 20:02:55 2015 -0400 IB/core: Create common start/end port functions Previously start_port and end_port were defined in 2 places, cache.c and device.c and this prevented their use in other modules. Make these common functions, change the name to reflect the rdma name space, and update existing users. Signed-off-by: Ira Weiny Signed-off-by: Doug Ledford drivers/infiniband/core/cache.c | 61 ++++++++++++++++------------------------ drivers/infiniband/core/device.c | 26 +++++------------ include/rdma/ib_verbs.h | 27 ++++++++++++++++++ 3 files changed, 59 insertions(+), 55 deletions(-) commit 296ec00995fb28c4e34b41f80b5a876f3a25c134 Author: Michael Wang Date: Mon May 18 10:41:45 2015 +0200 IB/Verbs: Improve docs for rdma-helpers Increase the level of documentation for the rdma_cap_* helpers introduced by Michael Wang . This patch is loosely based on a patch Michael wrote to enhance the documentation of these functions, but has been significantly modified in terms of verbiage. In addition, the comments were moved from a kernel Documentation/infiniband/ file to being inline in the header file itself for the functions in question. Finally, the documentation was formated in proper kdoc format. Signed-off-by: Michael Wang Signed-off-by: Doug Ledford include/rdma/ib_verbs.h | 132 +++++++++++++++++++++++++++++++++--------------- 1 file changed, 92 insertions(+), 40 deletions(-) commit 227128fc68401d8e36b660ffeef4320c5fb492d7 Author: Michael Wang Date: Tue May 5 14:50:40 2015 +0200 IB/Verbs: Use management helper rdma_cap_eth_ah() Introduce helper rdma_cap_eth_ah() to help us check if the port of an IB device support Ethernet Address Handler. Signed-off-by: Michael Wang Reviewed-by: Ira Weiny Tested-by: Ira Weiny Reviewed-by: Sean Hefty Reviewed-by: Jason Gunthorpe Tested-by: Doug Ledford Signed-off-by: Doug Ledford drivers/infiniband/core/cma.c | 2 +- drivers/infiniband/core/sa_query.c | 2 +- drivers/infiniband/core/verbs.c | 4 ++-- include/rdma/ib_verbs.h | 15 +++++++++++++++ 4 files changed, 19 insertions(+), 4 deletions(-) commit 30a74ef41d5293cb2f85fcce120fe869a672ade4 Author: Michael Wang Date: Tue May 5 14:50:39 2015 +0200 IB/Verbs: Use management helper rdma_cap_af_ib() Introduce helper rdma_cap_af_ib() to help us check if the port of an IB device support Native Infiniband Address. Signed-off-by: Michael Wang Reviewed-by: Ira Weiny Tested-by: Ira Weiny Reviewed-by: Sean Hefty Reviewed-by: Jason Gunthorpe Tested-by: Doug Ledford Signed-off-by: Doug Ledford drivers/infiniband/core/cma.c | 2 +- include/rdma/ib_verbs.h | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) commit bc0f1d71536063f8b2df966625e0136bca03b3e6 Author: Michael Wang Date: Tue May 5 14:50:38 2015 +0200 IB/Verbs: Use management helper rdma_cap_read_multi_sge() Introduce helper rdma_cap_read_multi_sge() to help us check if the port of an IB device support RDMA Read Multiple Scatter-Gather Entries. Signed-off-by: Michael Wang Reviewed-by: Ira Weiny Tested-by: Ira Weiny Reviewed-by: Sean Hefty Reviewed-by: Jason Gunthorpe Tested-by: Doug Ledford Signed-off-by: Doug Ledford include/rdma/ib_verbs.h | 16 ++++++++++++++++ net/sunrpc/xprtrdma/svc_rdma_recvfrom.c | 4 ++-- 2 files changed, 18 insertions(+), 2 deletions(-) commit a31ad3b0e35f7e340c1ab6668080cff91d48c90a Author: Michael Wang Date: Tue May 5 14:50:37 2015 +0200 IB/Verbs: Use management helper rdma_cap_ib_mcast() Introduce helper rdma_cap_ib_mcast() to help us check if the port of an IB device support Infiniband Multicast. Signed-off-by: Michael Wang Reviewed-by: Ira Weiny Tested-by: Ira Weiny Reviewed-by: Sean Hefty Reviewed-by: Jason Gunthorpe Tested-by: Doug Ledford Signed-off-by: Doug Ledford drivers/infiniband/core/cma.c | 6 +++--- drivers/infiniband/core/multicast.c | 6 +++--- include/rdma/ib_verbs.h | 15 +++++++++++++++ 3 files changed, 21 insertions(+), 6 deletions(-) commit fe53ba2f0c3de0416422407bab2c1982a2e85b6a Author: Michael Wang Date: Tue May 5 14:50:36 2015 +0200 IB/Verbs: Use management helper rdma_cap_ib_sa() Introduce helper rdma_cap_ib_sa() to help us check if the port of an IB device support Infiniband Subnet Administration. Signed-off-by: Michael Wang Reviewed-by: Ira Weiny Tested-by: Ira Weiny Reviewed-by: Sean Hefty Reviewed-by: Jason Gunthorpe Tested-by: Doug Ledford Signed-off-by: Doug Ledford drivers/infiniband/core/cma.c | 4 ++-- drivers/infiniband/core/sa_query.c | 10 +++++----- drivers/infiniband/core/ucma.c | 2 +- include/rdma/ib_verbs.h | 15 +++++++++++++++ 4 files changed, 23 insertions(+), 8 deletions(-) commit 042153306d9d08da67459f187d63a68aefd97388 Author: Michael Wang Date: Tue May 5 14:50:35 2015 +0200 IB/Verbs: Use management helper rdma_cap_iw_cm() Introduce helper rdma_cap_iw_cm() to help us check if the port of an IB device support IWARP Communication Manager. Signed-off-by: Michael Wang Reviewed-by: Ira Weiny Tested-by: Ira Weiny Reviewed-by: Sean Hefty Reviewed-by: Jason Gunthorpe Tested-by: Doug Ledford Signed-off-by: Doug Ledford drivers/infiniband/core/cma.c | 14 +++++++------- include/rdma/ib_verbs.h | 15 +++++++++++++++ 2 files changed, 22 insertions(+), 7 deletions(-) commit 72219cea8e246a55bff92e5ff6ec21f331a8791e Author: Michael Wang Date: Tue May 5 14:50:34 2015 +0200 IB/Verbs: Use management helper rdma_cap_ib_cm() Introduce helper rdma_cap_ib_cm() to help us check if the port of an IB device support Infiniband Communication Manager. Signed-off-by: Michael Wang Reviewed-by: Ira Weiny Tested-by: Ira Weiny Reviewed-by: Sean Hefty Reviewed-by: Jason Gunthorpe Tested-by: Doug Ledford Signed-off-by: Doug Ledford drivers/infiniband/core/cm.c | 6 +++--- drivers/infiniband/core/cma.c | 19 +++++++++---------- drivers/infiniband/core/ucm.c | 2 +- include/rdma/ib_verbs.h | 15 +++++++++++++++ 4 files changed, 28 insertions(+), 14 deletions(-) commit 29541e3add4d03682b78311823a5426e82019cda Author: Michael Wang Date: Tue May 5 14:50:33 2015 +0200 IB/Verbs: Use management helper rdma_cap_ib_smi() Introduce helper rdma_cap_ib_smi() to help us check if the port of an IB device support Infiniband Subnet Management Interface. Signed-off-by: Michael Wang Reviewed-by: Ira Weiny Tested-by: Ira Weiny Reviewed-by: Sean Hefty Reviewed-by: Jason Gunthorpe Tested-by: Doug Ledford Signed-off-by: Doug Ledford drivers/infiniband/core/agent.c | 2 +- drivers/infiniband/core/mad.c | 2 +- include/rdma/ib_verbs.h | 15 +++++++++++++++ 3 files changed, 17 insertions(+), 2 deletions(-) commit c757dea816407dc472452091e3ea941cef6638a2 Author: Michael Wang Date: Tue May 5 14:50:32 2015 +0200 IB/Verbs: Use management helper rdma_cap_ib_mad() Introduce helper rdma_cap_ib_mad() to help us check if the port of an IB device support Infiniband Management Datagrams. Signed-off-by: Michael Wang Reviewed-by: Ira Weiny Tested-by: Ira Weiny Reviewed-by: Sean Hefty Reviewed-by: Jason Gunthorpe Tested-by: Doug Ledford Signed-off-by: Doug Ledford drivers/infiniband/core/mad.c | 6 +++--- drivers/infiniband/core/user_mad.c | 6 +++--- include/rdma/ib_verbs.h | 15 +++++++++++++++ 3 files changed, 21 insertions(+), 6 deletions(-) commit fef60902ef7f3066a62377f8d37753314d7c8351 Author: Michael Wang Date: Tue May 5 14:50:31 2015 +0200 IB/Verbs: Reform rest part in IB-core cma Use raw management helpers to reform rest part in IB-core cma. Signed-off-by: Michael Wang Reviewed-by: Ira Weiny Tested-by: Ira Weiny Reviewed-by: Sean Hefty Reviewed-by: Jason Gunthorpe Tested-by: Doug Ledford Signed-off-by: Doug Ledford drivers/infiniband/core/cma.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) commit 7c11147da2f1a1f14f9b6b307e80d5c0617b88e6 Author: Michael Wang Date: Tue May 5 14:50:30 2015 +0200 IB/Verbs: Reform cma_acquire_dev() Reform cma_acquire_dev() with management helpers, introduce cma_validate_port() to make the code more clean. Signed-off-by: Michael Wang Reviewed-by: Ira Weiny Tested-by: Ira Weiny Reviewed-by: Sean Hefty Reviewed-by: Jason Gunthorpe Tested-by: Doug Ledford Signed-off-by: Doug Ledford drivers/infiniband/core/cma.c | 68 +++++++++++++++++++++++++------------------ 1 file changed, 40 insertions(+), 28 deletions(-) commit 5c9a52828a9d2ebbfc91f1d97e8c9b647f9923f0 Author: Michael Wang Date: Tue May 5 14:50:29 2015 +0200 IB/Verbs: Reform mcast related part in IB-core cma Use raw management helpers to reform mcast related part in IB-core cma. Signed-off-by: Michael Wang Reviewed-by: Ira Weiny Tested-by: Ira Weiny Reviewed-by: Sean Hefty Reviewed-by: Jason Gunthorpe Tested-by: Doug Ledford Signed-off-by: Doug Ledford drivers/infiniband/core/cma.c | 56 ++++++++++++++----------------------------- 1 file changed, 18 insertions(+), 38 deletions(-) commit c72f21893e125b40daebd55ae9b7084d64600455 Author: Michael Wang Date: Tue May 5 14:50:28 2015 +0200 IB/Verbs: Reform route related part in IB-core cma Use raw management helpers to reform route related part in IB-core cma. Signed-off-by: Michael Wang Reviewed-by: Ira Weiny Tested-by: Ira Weiny Reviewed-by: Sean Hefty Reviewed-by: Jason Gunthorpe Tested-by: Doug Ledford Signed-off-by: Doug Ledford drivers/infiniband/core/cma.c | 31 ++++++++----------------------- drivers/infiniband/core/ucma.c | 25 ++++++------------------- 2 files changed, 14 insertions(+), 42 deletions(-) commit 21655afc627c2f93661617ed9022830cb9248034 Author: Michael Wang Date: Tue May 5 14:50:27 2015 +0200 IB/Verbs: Reform cm related part in IB-core cma/ucm Use raw management helpers to reform cm related part in IB-core cma/ucm. Few checks focus on the device cm type rather than the port capability, directly pass port 1 works currently, but can't support mixing cm type device in future. Signed-off-by: Michael Wang Reviewed-by: Ira Weiny Tested-by: Ira Weiny Reviewed-by: Sean Hefty Reviewed-by: Jason Gunthorpe Tested-by: Doug Ledford Signed-off-by: Doug Ledford drivers/infiniband/core/cma.c | 81 +++++++++++++------------------------------ drivers/infiniband/core/ucm.c | 3 +- 2 files changed, 26 insertions(+), 58 deletions(-) commit 55045b2577affdb68c4d70128f47751e07db75b8 Author: Michael Wang Date: Tue May 5 14:50:26 2015 +0200 IB/Verbs: Reform IB-core verbs Use raw management helpers to reform IB-core verbs Signed-off-by: Michael Wang Reviewed-by: Ira Weiny Tested-by: Ira Weiny Reviewed-by: Sean Hefty Reviewed-by: Jason Gunthorpe Tested-by: Doug Ledford Signed-off-by: Doug Ledford drivers/infiniband/core/verbs.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 3de2c31ce799ded48727f591521f5115457f343d Author: Michael Wang Date: Tue May 5 14:50:25 2015 +0200 IB/Verbs: Reform IB-ulp xprtrdma Use raw management helpers to reform IB-ulp xprtrdma. Signed-off-by: Michael Wang Reviewed-by: Ira Weiny Tested-by: Ira Weiny Reviewed-by: Sean Hefty Reviewed-by: Jason Gunthorpe Tested-by: Doug Ledford Signed-off-by: Doug Ledford net/sunrpc/xprtrdma/svc_rdma_recvfrom.c | 4 +-- net/sunrpc/xprtrdma/svc_rdma_transport.c | 45 +++++++++++++------------------- 2 files changed, 20 insertions(+), 29 deletions(-) commit 8e37ab68fe4d9ee47f2d7c5f45e04216ff68b2d7 Author: Michael Wang Date: Tue May 5 14:50:24 2015 +0200 IB/Verbs: Reform IB-ulp ipoib Use raw management helpers to reform IB-ulp ipoib. Signed-off-by: Michael Wang Reviewed-by: Ira Weiny Tested-by: Ira Weiny Reviewed-by: Sean Hefty Reviewed-by: Jason Gunthorpe Tested-by: Doug Ledford Signed-off-by: Doug Ledford drivers/infiniband/ulp/ipoib/ipoib_main.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) commit 613466cb7f67ed01c2345071abf26d981fadc2bf Author: Michael Wang Date: Tue May 5 14:50:23 2015 +0200 IB/Verbs: Reform IB-core multicast Use raw management helpers to reform IB-core multicast. Signed-off-by: Michael Wang Reviewed-by: Ira Weiny Tested-by: Ira Weiny Reviewed-by: Sean Hefty Reviewed-by: Jason Gunthorpe Tested-by: Doug Ledford Signed-off-by: Doug Ledford drivers/infiniband/core/multicast.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) commit 08e3681ab8deddb3770cf8beef599b68c3530e5a Author: Michael Wang Date: Tue May 5 14:50:22 2015 +0200 IB/Verbs: Reform IB-core sa_query Use raw management helpers to reform IB-core sa_query. Signed-off-by: Michael Wang Reviewed-by: Ira Weiny Tested-by: Ira Weiny Reviewed-by: Sean Hefty Reviewed-by: Jason Gunthorpe Tested-by: Doug Ledford Signed-off-by: Doug Ledford drivers/infiniband/core/sa_query.c | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) commit 091e6a4c42a1afea82e1d4314c5191b81085dee8 Author: Michael Wang Date: Tue May 5 14:50:21 2015 +0200 IB/Verbs: Reform IB-core cm Use raw management helpers to reform IB-core cm. Signed-off-by: Michael Wang Reviewed-by: Ira Weiny Tested-by: Ira Weiny Reviewed-by: Sean Hefty Reviewed-by: Jason Gunthorpe Tested-by: Doug Ledford Signed-off-by: Doug Ledford drivers/infiniband/core/cm.c | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) commit 827f2a8b0a05846b8500c7db5f737238c03e71aa Author: Michael Wang Date: Tue May 5 14:50:20 2015 +0200 IB/Verbs: Reform IB-core mad/agent/user_mad Use raw management helpers to reform IB-core mad/agent/user_mad. Signed-off-by: Michael Wang Reviewed-by: Ira Weiny Tested-by: Ira Weiny Reviewed-by: Sean Hefty Reviewed-by: Jason Gunthorpe Tested-by: Doug Ledford Signed-off-by: Doug Ledford drivers/infiniband/core/agent.c | 2 +- drivers/infiniband/core/mad.c | 43 +++++++++++++++++++------------------- drivers/infiniband/core/user_mad.c | 26 ++++++++++++++++------- 3 files changed, 41 insertions(+), 30 deletions(-) commit de66be94749d75c2f3578f3d01f91d31a8eb85ef Author: Michael Wang Date: Tue May 5 14:50:19 2015 +0200 IB/Verbs: Implement raw management helpers Add raw helpers: rdma_protocol_ib rdma_protocol_iboe rdma_protocol_iwarp rdma_ib_or_iboe (transition, clean up later) To help us detect which technology the port supported. Signed-off-by: Michael Wang Reviewed-by: Ira Weiny Tested-by: Ira Weiny Reviewed-by: Sean Hefty Reviewed-by: Jason Gunthorpe Tested-by: Doug Ledford Signed-off-by: Doug Ledford include/rdma/ib_verbs.h | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) commit 6b90a6d66b17bfe09351e18c705cb4a2ed147300 Author: Michael Wang Date: Tue May 5 14:50:18 2015 +0200 IB/Verbs: Implement new callback query_protocol() Add new callback query_protocol() and implement for each HW. Mapping List: node-type link-layer transport protocol nes RNIC ETH IWARP IWARP amso1100 RNIC ETH IWARP IWARP cxgb3 RNIC ETH IWARP IWARP cxgb4 RNIC ETH IWARP IWARP usnic USNIC_UDP ETH USNIC_UDP USNIC_UDP ocrdma IB_CA ETH IB IBOE mlx4 IB_CA IB/ETH IB IB/IBOE mlx5 IB_CA IB IB IB ehca IB_CA IB IB IB ipath IB_CA IB IB IB mthca IB_CA IB IB IB qib IB_CA IB IB IB Signed-off-by: Michael Wang Reviewed-by: Ira Weiny Tested-by: Ira Weiny Reviewed-by: Sean Hefty Reviewed-by: Jason Gunthorpe Tested-by: Doug Ledford Signed-off-by: Doug Ledford drivers/infiniband/core/device.c | 1 + drivers/infiniband/hw/amso1100/c2_provider.c | 7 +++++++ drivers/infiniband/hw/cxgb3/iwch_provider.c | 7 +++++++ drivers/infiniband/hw/cxgb4/provider.c | 7 +++++++ drivers/infiniband/hw/ehca/ehca_hca.c | 6 ++++++ drivers/infiniband/hw/ehca/ehca_iverbs.h | 3 +++ drivers/infiniband/hw/ehca/ehca_main.c | 1 + drivers/infiniband/hw/ipath/ipath_verbs.c | 7 +++++++ drivers/infiniband/hw/mlx4/main.c | 10 ++++++++++ drivers/infiniband/hw/mlx5/main.c | 7 +++++++ drivers/infiniband/hw/mthca/mthca_provider.c | 7 +++++++ drivers/infiniband/hw/nes/nes_verbs.c | 6 ++++++ drivers/infiniband/hw/ocrdma/ocrdma_main.c | 1 + drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 6 ++++++ drivers/infiniband/hw/ocrdma/ocrdma_verbs.h | 3 +++ drivers/infiniband/hw/qib/qib_verbs.c | 7 +++++++ drivers/infiniband/hw/usnic/usnic_ib_main.c | 1 + drivers/infiniband/hw/usnic/usnic_ib_verbs.c | 6 ++++++ drivers/infiniband/hw/usnic/usnic_ib_verbs.h | 2 ++ include/rdma/ib_verbs.h | 9 +++++++++ 20 files changed, 104 insertions(+) commit 1aaa6e8b24114757a836ae0e62d2096deb76f274 Author: Theodore Ts'o Date: Mon May 18 13:20:47 2015 -0400 ext4 crypto: get rid of ci_mode from struct ext4_crypt_info The ci_mode field was superfluous, and getting rid of it gets rid of an unused hole in the structure. Signed-off-by: Theodore Ts'o fs/ext4/crypto.c | 11 +++++------ fs/ext4/crypto_fname.c | 4 ++-- fs/ext4/crypto_key.c | 11 +++++------ fs/ext4/ext4_crypto.h | 1 - 4 files changed, 12 insertions(+), 15 deletions(-) commit 8ee0371470038371729a39ee6669a2132ac47649 Author: Theodore Ts'o Date: Mon May 18 13:19:47 2015 -0400 ext4 crypto: use slab caches Use slab caches the ext4_crypto_ctx and ext4_crypt_info structures for slighly better memory efficiency and debuggability. Signed-off-by: Theodore Ts'o fs/ext4/crypto.c | 60 +++++++++++++++++++++++++--------------------------- fs/ext4/crypto_key.c | 12 ++++++++--- fs/ext4/ext4.h | 1 + 3 files changed, 39 insertions(+), 34 deletions(-) commit f5aed2c2a825618553b20e8a67109570489b40d7 Author: Theodore Ts'o Date: Mon May 18 13:18:47 2015 -0400 ext4: clean up superblock encryption mode fields The superblock fields s_file_encryption_mode and s_dir_encryption_mode are vestigal, so remove them as a cleanup. While we're at it, allow file systems with both encryption and inline_data enabled at the same time to work correctly. We can't have encrypted inodes with inline data, but there's no reason to prohibit unencrypted inodes from using the inline data feature. Signed-off-by: Theodore Ts'o fs/ext4/crypto_policy.c | 9 +++++++-- fs/ext4/ext4.h | 6 ------ fs/ext4/ialloc.c | 19 ------------------- fs/ext4/super.c | 5 ----- 4 files changed, 7 insertions(+), 32 deletions(-) commit b7236e21d55ff9008737621c84dd8ee6c37c7c6d Author: Theodore Ts'o Date: Mon May 18 13:17:47 2015 -0400 ext4 crypto: reorganize how we store keys in the inode This is a pretty massive patch which does a number of different things: 1) The per-inode encryption information is now stored in an allocated data structure, ext4_crypt_info, instead of directly in the node. This reduces the size usage of an in-memory inode when it is not using encryption. 2) We drop the ext4_fname_crypto_ctx entirely, and use the per-inode encryption structure instead. This remove an unnecessary memory allocation and free for the fname_crypto_ctx as well as allowing us to reuse the ctfm in a directory for multiple lookups and file creations. 3) We also cache the inode's policy information in the ext4_crypt_info structure so we don't have to continually read it out of the extended attributes. 4) We now keep the keyring key in the inode's encryption structure instead of releasing it after we are done using it to derive the per-inode key. This allows us to test to see if the key has been revoked; if it has, we prevent the use of the derived key and free it. 5) When an inode is released (or when the derived key is freed), we will use memset_explicit() to zero out the derived key, so it's not left hanging around in memory. This implies that when a user logs out, it is important to first revoke the key, and then unlink it, and then finally, to use "echo 3 > /proc/sys/vm/drop_caches" to release any decrypted pages and dcache entries from the system caches. 6) All this, and we also shrink the number of lines of code by around 100. :-) Signed-off-by: Theodore Ts'o fs/ext4/crypto.c | 9 +- fs/ext4/crypto_fname.c | 284 +++++++++++++----------------------------------- fs/ext4/crypto_key.c | 74 ++++++++++--- fs/ext4/crypto_policy.c | 76 +++++++------ fs/ext4/dir.c | 21 ++-- fs/ext4/ext4.h | 44 +++++--- fs/ext4/ext4_crypto.h | 16 +-- fs/ext4/file.c | 4 +- fs/ext4/namei.c | 42 +++---- fs/ext4/super.c | 7 +- fs/ext4/symlink.c | 15 +-- 11 files changed, 246 insertions(+), 346 deletions(-) commit e2881b1b51d871a72911faf2fc7e090655940506 Author: Theodore Ts'o Date: Mon May 18 13:16:47 2015 -0400 ext4 crypto: separate kernel and userspace structure for the key Use struct ext4_encryption_key only for the master key passed via the kernel keyring. For internal kernel space users, we now use struct ext4_crypt_info. This will allow us to put information from the policy structure so we can cache it and avoid needing to constantly looking up the extended attribute. We will do this in a spearate patch. This patch is mostly mechnical to make it easier for patch review. Signed-off-by: Theodore Ts'o fs/ext4/crypto.c | 18 +++++++++--------- fs/ext4/crypto_fname.c | 33 ++++++++++----------------------- fs/ext4/crypto_key.c | 21 +++++++++++---------- fs/ext4/ext4.h | 2 +- fs/ext4/ext4_crypto.h | 15 +++++++++++---- fs/ext4/super.c | 2 +- 6 files changed, 43 insertions(+), 48 deletions(-) commit d229959072eba40e1c2a4f53f8af17f1e770eb66 Author: Theodore Ts'o Date: Mon May 18 13:15:47 2015 -0400 ext4 crypto: don't allocate a page when encrypting/decrypting file names Signed-off-by: Theodore Ts'o fs/ext4/crypto_fname.c | 72 ++++++++++++++------------------------------------ fs/ext4/dir.c | 3 +++ fs/ext4/ext4_crypto.h | 2 -- fs/ext4/namei.c | 4 +++ fs/ext4/symlink.c | 1 + 5 files changed, 28 insertions(+), 54 deletions(-) commit 5b643f9ce34df945e58c7176275d406aa0db704f Author: Theodore Ts'o Date: Mon May 18 13:14:47 2015 -0400 ext4 crypto: optimize filename encryption Encrypt the filename as soon it is passed in by the user. This avoids our needing to encrypt the filename 2 or 3 times while in the process of creating a filename. Similarly, when looking up a directory entry, encrypt the filename early, or if the encryption key is not available, base-64 decode the file syystem so that the hash value and the last 16 bytes of the encrypted filename is available in the new struct ext4_filename data structure. Signed-off-by: Theodore Ts'o fs/ext4/crypto_fname.c | 155 +++++++++++--------------- fs/ext4/ext4.h | 63 +++++++---- fs/ext4/inline.c | 31 +++--- fs/ext4/namei.c | 294 ++++++++++++++++++------------------------------- 4 files changed, 230 insertions(+), 313 deletions(-) commit 17032ae32d1a3c5426be026092cdfa7d8e177f02 Merge: b9fbe70 89a2a8e Author: David S. Miller Date: Mon May 18 12:14:18 2015 -0400 Merge branch 'qeth-next' Ursula Braun says: ==================== s390: network patches for net-next here are s390 related patches for net-next ==================== Signed-off-by: David S. Miller commit 89a2a8e76b8193fe282c472f1da259e0075476f7 Author: Peter Oberparleiter Date: Mon May 18 14:27:59 2015 +0200 s390/lcs: Fix null-pointer access in msg An attempt to configure a CTC device as LCS results in the following error message: (null): Detecting a network adapter for LCS devices failed with rc=-5 (0xfffffffb) "(null)" results from access to &card->dev->dev in lcs_new_device() which is only initialized later in the function. Fix this by using &ccwgdev->dev instead which is initialized before lcs_new_device() is called. Signed-off-by: Peter Oberparleiter Signed-off-by: Ursula Braun Signed-off-by: David S. Miller drivers/s390/net/lcs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ffb9525141bc2f16badef715bd0fabd0cd66450e Author: Eugene Crosser Date: Mon May 18 14:27:58 2015 +0200 qeth: replace ENOSYS with EOPNOTSUPP Since recently, `checkpatch.pl` advices that ENOSYS should not be used for anything other than "invalid syscall nr". This patch replaces ENOSYS return code with EOPNOTSUPP for the "unsupported function" conditions. Signed-off-by: Eugene Crosser Signed-off-by: Ursula Braun Signed-off-by: David S. Miller drivers/s390/net/qeth_l2_main.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit ff1d929110424cd432955e3d1e005442179192b8 Author: Eugene Crosser Date: Mon May 18 14:27:57 2015 +0200 qeth: BRIDGEPORT "sanity check" Forbid enabling IFF_PROMISC reflection to BRIDGEPORT when a role is already assigned, and forbid direct manipulation of the role when reflection mode is engaged. Reviewed-by: Thomas Richter Signed-off-by: Eugene Crosser Signed-off-by: Ursula Braun Signed-off-by: David S. Miller drivers/s390/net/qeth_l2_sys.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) commit 9c23f4dab1a467f41a27c7d7b87a987c5a3cfc2d Author: Eugene Crosser Date: Mon May 18 14:27:56 2015 +0200 qeth: OSA version of SETBRIDGEPORT command OSA Ethernet hardware is introducing BRIDGEPORT functionality similar (but not identical) to HiperSockets BRIDGEPORT. This patch makes HiperSockets BRIDGEPORT related sysfs attributes and udev events work with OSA hardware too. Reviewed-by: Thomas Richter Signed-off-by: Eugene Crosser Signed-off-by: Ursula Braun Signed-off-by: David S. Miller Documentation/s390/qeth.txt | 4 +-- drivers/s390/net/qeth_core_main.c | 3 +- drivers/s390/net/qeth_core_mpc.c | 3 +- drivers/s390/net/qeth_core_mpc.h | 3 +- drivers/s390/net/qeth_l2_main.c | 68 +++++++++++++++++++++++++-------------- 5 files changed, 51 insertions(+), 30 deletions(-) commit 0db587b065cb3d0417c4e84be851e787d207e8e0 Author: Eugene Crosser Date: Mon May 18 14:27:55 2015 +0200 qeth: IFF_PROMISC flag to BRIDGE PORT mode OSA and HiperSocket devices do not support promiscuous mode proper, but they support "BRIDGE PORT" mode that is functionally similar. This update introduces sysfs attribute that, when set, makes the driver try to "reflect" setting and resetting of the IFF_PROMISC flag on the interface into setting and resetting PRIMARY or SECONDARY bridge port role on the underlying OSA or HiperSocket device. Reviewed-by: Thomas Richter Signed-off-by: Eugene Crosser Signed-off-by: Ursula Braun Signed-off-by: David S. Miller drivers/s390/net/qeth_core.h | 2 ++ drivers/s390/net/qeth_l2_main.c | 40 ++++++++++++++++++++++++++--- drivers/s390/net/qeth_l2_sys.c | 56 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 95 insertions(+), 3 deletions(-) commit d3c29a5c3fb81b9e2eef65c9edd3b43e7f7510f2 Author: Eugene Crosser Date: Mon May 18 14:27:54 2015 +0200 qeth: remove locks from sysfs _show Locking is probably unnecessary in this case, and the rest of the qeth sysfs code does not use locks in the *_show() functions. Remove locks from the layer2 *_show() functions in which they where accidentally introduced. Signed-off-by: Eugene Crosser Signed-off-by: Ursula Braun Signed-off-by: David S. Miller drivers/s390/net/qeth_l2_sys.c | 8 -------- 1 file changed, 8 deletions(-) commit c88394e7ee5ecf425754f78d38b4968eb60ffba5 Author: Eugene Crosser Date: Mon May 18 14:27:53 2015 +0200 qeth: fix handling of IPA return codes Function that executes IPA commands returns the result code from the IPA response block. If non-negative, it needs to be transformed into errno-compatible code before returning to the caller. Signed-off-by: Eugene Crosser Signed-off-by: Ursula Braun Signed-off-by: David S. Miller drivers/s390/net/qeth_l2_main.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) commit c7258d8637be2ac1e4cbf276ac5145da456303d0 Author: Thomas Richter Date: Mon May 18 14:27:52 2015 +0200 qeth: fix rx checksum offload handling ethtool is used to change some device driver features such as RX/TX hardware checksum offloading. The qeth device driver callback function to turn on/off RX hardware check sum handling never changes the hardware configuration. The NETIF_F_RXCSUM bit is cleared when the feature bitset type netdev_features_t(64bit) is assigned to 32 a bit variable. This patch fixes the NETIF_F_RXCSUM handling. Also there is no need to manipulate the device's features bit set as this is done by the caller when no error occurs. Signed-off-by: Thomas Richter Signed-off-by: Ursula Braun Signed-off-by: David S. Miller drivers/s390/net/qeth_l3_main.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) commit 5be2361160cdbbfcc580b82a440218c115c15504 Author: Antoine Tenart Date: Mon May 18 11:19:20 2015 +0200 ARM: berlin: add an ADC node for the BG2Q This patch adds the ADC node for the Berlin BG2Q, using the newly added Berlin IIO ADC driver. Signed-off-by: Antoine Tenart Signed-off-by: Sebastian Hesselbarth arch/arm/boot/dts/berlin2q.dtsi | 6 ++++++ 1 file changed, 6 insertions(+) commit f3f94f71a88343d3c1af63e32fc7ea74ab4ce7eb Author: Antoine Tenart Date: Sat May 16 01:54:58 2015 +0200 ARM: berlin: remove useless chip and system ctrl compatibles Now that the rework to have one sub-node per device in the chip and system controllers is done, their dedicated compatible can be removed. Signed-off-by: Antoine Tenart Signed-off-by: Sebastian Hesselbarth arch/arm/boot/dts/berlin2.dtsi | 4 ++-- arch/arm/boot/dts/berlin2cd.dtsi | 4 ++-- arch/arm/boot/dts/berlin2q.dtsi | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) commit fd26031ba6356d2b0f7aa214ebff4b12736b6529 Author: Antoine Tenart Date: Sat May 16 01:50:34 2015 +0200 clk: berlin: drop direct of_iomap of nodes reg property The Berlin clock driver was sharing a DT node with the pin controller and the reset driver. All these devices are now sub-nodes of the chip controller. This patch rework the Berlin clock driver to allow moving the Berlin clock DT bindings into their own sub-node of the chip controller node. Signed-off-by: Antoine Tenart Acked-by: Stephen Boyd Signed-off-by: Sebastian Hesselbarth drivers/clk/berlin/bg2.c | 9 +-------- drivers/clk/berlin/bg2q.c | 9 ++------- 2 files changed, 3 insertions(+), 15 deletions(-) commit a457b86caec6ff6465e75c6b65e7eab82f74676d Author: Antoine Tenart Date: Sat May 16 01:48:21 2015 +0200 ARM: berlin: move BG2Q clock node With the introduction of the Berlin simple-mfd controller driver, all drivers previously sharing the chip and system controller nodes now have their own sub-node. Signed-off-by: Antoine Tenart Signed-off-by: Sebastian Hesselbarth arch/arm/boot/dts/berlin2q.dtsi | 50 ++++++++++++++++++++++------------------- 1 file changed, 27 insertions(+), 23 deletions(-) commit b8b59d4cb7a3d1f5b048a2e33563773e9b1183f5 Author: Antoine Tenart Date: Sat May 16 01:48:08 2015 +0200 ARM: berlin: move BG2CD clock node With the introduction of the Berlin simple-mfd controller driver, all drivers previously sharing the chip and system controller nodes now have their own sub-node. Signed-off-by: Antoine Tenart Signed-off-by: Sebastian Hesselbarth arch/arm/boot/dts/berlin2cd.dtsi | 38 +++++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 17 deletions(-) commit 18df8165a022d83ec928c0fca5590310f4b61ec4 Author: Antoine Tenart Date: Sat May 16 01:47:05 2015 +0200 ARM: berlin: move BG2 clock node With the introduction of the Berlin simple-mfd controller driver, all drivers previously sharing the chip and system controller nodes now have their own sub-node. Signed-off-by: Antoine Tenart Signed-off-by: Sebastian Hesselbarth arch/arm/boot/dts/berlin2.dtsi | 42 +++++++++++++++++++++++------------------- 1 file changed, 23 insertions(+), 19 deletions(-) commit 26b3b6b959b25603944cb3bb70a72484e8ef775f Author: Antoine Tenart Date: Sat May 16 01:40:15 2015 +0200 clk: berlin: prepare simple-mfd conversion Prepare conversion of berlin clk drivers to a simple-mfd sub-node by checking for parent node compatible. If parent node is "syscon" compatible use it for of_iomap instead of the own node. Signed-off-by: Antoine Tenart Acked-by: Stephen Boyd Signed-off-by: Sebastian Hesselbarth drivers/clk/berlin/bg2.c | 6 ++++++ drivers/clk/berlin/bg2q.c | 6 ++++++ 2 files changed, 12 insertions(+) commit f90bec209ca54d799e69fc30c1b04c14baab980a Author: Antoine Tenart Date: Sat May 16 01:21:39 2015 +0200 pinctrl: berlin: drop SoC stub provided regmap With convertsion to simple-mfd sub-nodes, drop the regmap registration by SoC stubs. Signed-off-by: Antoine Tenart Acked-by: Linus Walleij Signed-off-by: Sebastian Hesselbarth drivers/pinctrl/berlin/berlin-bg2.c | 30 ------------------------------ drivers/pinctrl/berlin/berlin-bg2cd.c | 30 ------------------------------ drivers/pinctrl/berlin/berlin-bg2q.c | 30 ------------------------------ drivers/pinctrl/berlin/berlin.c | 4 +--- 4 files changed, 1 insertion(+), 93 deletions(-) commit 630c986b102a22740d789e552171ba897e7c143d Author: Antoine Tenart Date: Sat May 16 01:18:07 2015 +0200 ARM: berlin: move pinctrl to simple-mfd nodes Now with proper support for simple-mfd probed pinctrl driver, move to the new soc-pinctrl and system-pinctrl nodes. Signed-off-by: Antoine Tenart Signed-off-by: Sebastian Hesselbarth arch/arm/boot/dts/berlin2.dtsi | 38 ++++++++++++++++------------- arch/arm/boot/dts/berlin2cd.dtsi | 14 ++++++++--- arch/arm/boot/dts/berlin2q.dtsi | 52 +++++++++++++++++++++++----------------- 3 files changed, 63 insertions(+), 41 deletions(-) commit f52bf55cba63811e1a9e16318557caa19670fbe0 Author: Antoine Tenart Date: Sat May 16 01:16:09 2015 +0200 pinctrl: berlin: prepare to use regmap provided by syscon The Berlin pin controller nodes will be simple-mfd probed sub-nodes of soc-controller and system-controller nodes. The register bank is managed by syscon, which provides a regmap. Prepare to get the regmap from syscon parent node instead of SoC stub provided regmap. Signed-off-by: Antoine Tenart Acked-by: Linus Walleij Signed-off-by: Sebastian Hesselbarth drivers/pinctrl/berlin/berlin-bg2.c | 8 ++++++++ drivers/pinctrl/berlin/berlin-bg2cd.c | 8 ++++++++ drivers/pinctrl/berlin/berlin-bg2q.c | 8 ++++++++ drivers/pinctrl/berlin/berlin.c | 7 ++++++- 4 files changed, 30 insertions(+), 1 deletion(-) commit bfff6296180c56ccaf4ac36808440f8849aad7c1 Author: Antoine Tenart Date: Sat May 16 00:53:44 2015 +0200 reset: berlin: drop arch_initcall initialization With proper platform driver probing for berlin reset driver, drop the arch_initcall workaround. Signed-off-by: Antoine Tenart Acked-by: Philipp Zabel Signed-off-by: Sebastian Hesselbarth drivers/reset/reset-berlin.c | 71 +------------------------------------------- 1 file changed, 1 insertion(+), 70 deletions(-) commit 432257287c01a7f8bd40c443959ebf9e846852f0 Author: Antoine Tenart Date: Sat May 16 00:50:40 2015 +0200 ARM: berlin: move reset to simple-mfd nodes Now with a proper platform driver for reset and simple-mfd, move to the new marvell,berlin-reset node. Signed-off-by: Antoine Tenart Signed-off-by: Sebastian Hesselbarth arch/arm/boot/dts/berlin2.dtsi | 6 +++++- arch/arm/boot/dts/berlin2cd.dtsi | 10 +++++++--- arch/arm/boot/dts/berlin2q.dtsi | 12 ++++++++---- 3 files changed, 20 insertions(+), 8 deletions(-) commit aed6f3cadc860ddeec598ed82041c1f3773071b1 Author: Antoine Tenart Date: Sat May 16 00:41:25 2015 +0200 reset: berlin: convert to a platform driver The Berlin reset controller was introduced without being a platform driver because of a needed DT rework: the node describing the reset controller also describes the pinctrl and clk controllers... Prepare conversion by adding a platform driver probe to a new compatible "marvell,berlin2-reset" with syscon regmap. Signed-off-by: Antoine Tenart Acked-by: Philipp Zabel Signed-off-by: Sebastian Hesselbarth drivers/reset/reset-berlin.c | 53 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 52 insertions(+), 1 deletion(-) commit ffcc33a5d496d03a0ccd7542f9b65a7aec67072d Author: Antoine Tenart Date: Sat May 16 00:30:15 2015 +0200 ARM: berlin: prepare simple-mfd/syscon conversion of sys/chip ctrl nodes The chip and system controller nodes will be handled by simple-mfd based driver probing. Prepare the conversion by adding "simple-mfd" and "syscon" compatibles to the corresponding nodes. Signed-off-by: Antoine Tenart Signed-off-by: Sebastian Hesselbarth arch/arm/boot/dts/berlin2.dtsi | 4 ++-- arch/arm/boot/dts/berlin2cd.dtsi | 4 ++-- arch/arm/boot/dts/berlin2q.dtsi | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) commit 9f69e8a71026839d4bd2e0c6d269600bfaa6f84d Author: Antoine Tenart Date: Mon Apr 27 21:40:35 2015 +0200 ARM: berlin: select MFD_SYSCON by default The chip and system controller nodes handle sub-devices, such as the clock, pinctrl or reset controllers. The drivers handling them need a regmap provided by syscon. Select it by default when using a Berlin SoC. Signed-off-by: Antoine Tenart Signed-off-by: Sebastian Hesselbarth arch/arm/mach-berlin/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 2d8e405acd787f4b975f73e0f8d9804b272c00f0 Author: Arnaldo Carvalho de Melo Date: Mon May 18 12:24:41 2015 -0300 perf bench numa: Share sched_getcpu() __weak def with cloexec.c We really should move the sched_getcpu() to some more suitable place, but this one-liner fixes this build problem on ancient distros like RHEL5. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Cc: Vinson Lee Link: http://lkml.kernel.org/n/tip-5yqg4p11f9uii6yremz3r35v@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/bench/numa.c | 1 + 1 file changed, 1 insertion(+) commit 8135c8c750cf018cd43bf955117529467ba178db Author: Wang Nan Date: Sun May 17 10:56:29 2015 +0000 tools build: Change FEATURE_TESTS and FEATURE_DISPLAY to weak binding Replace strong binding of FEATURE_TESTS and FEATURE_DISPLAY by weak binding. This patch enables other makefiles which include tools/build/Makefile.feature enable only limited feathres to check. Signed-off-by: Wang Nan Acked-by: Jiri Olsa Cc: Alexei Starovoitov Cc: Brendan Gregg Cc: Daniel Borkmann Cc: David Ahern Cc: Ingo Molnar Cc: Masami Hiramatsu Cc: Namhyung Kim Cc: Paul Mackerras Cc: Peter Zijlstra Cc: pi3orama@163.com Cc: Zefan Li Link: http://lkml.kernel.org/r/1431860222-61636-5-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/build/Makefile.feature | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit bb53e176fed9b6c9321904558b4e605b4770e454 Author: Wang Nan Date: Sun May 17 10:56:28 2015 +0000 tools lib traceevent: Install libtraceevent.a into libdir Before this patch, 'make install' installs libraries into bindir: $ make install DESTDIR=./tree INSTALL trace_plugins INSTALL libtraceevent.a INSTALL libtraceevent.so $ find ./tree ./tree/ ./tree/usr ./tree/usr/local ./tree/usr/local/bin ./tree/usr/local/bin/libtraceevent.a ./tree/usr/local/bin/libtraceevent.so ... /usr/local/lib( or lib64) should be a better place. This patch replaces 'bin' with libdir. For __LP64__ building, libraries are installed to /usr/local/lib64. For other building, to /usr/local/lib instead. After applying this patch: $ make install DESTDIR=./tree INSTALL trace_plugins INSTALL libtraceevent.a INSTALL libtraceevent.so $ find ./tree ./tree ./tree/usr ./tree/usr/local ./tree/usr/local/lib64 ./tree/usr/local/lib64/libtraceevent.a ./tree/usr/local/lib64/traceevent ./tree/usr/local/lib64/traceevent/plugins ./tree/usr/local/lib64/traceevent/plugins/plugin_mac80211.so ./tree/usr/local/lib64/traceevent/plugins/plugin_hrtimer.so ... ./tree/usr/local/lib64/libtraceevent.so Signed-off-by: Wang Nan Acked-by: Jiri Olsa Acked-by: Steven Rostedt Cc: Alexei Starovoitov Cc: Brendan Gregg Cc: Daniel Borkmann Cc: David Ahern Cc: Masami Hiramatsu Cc: Namhyung Kim Cc: Paul Mackerras Cc: Peter Zijlstra Cc: pi3orama@163.com Cc: Zefan Li Link: http://lkml.kernel.org/r/1431860222-61636-4-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/lib/traceevent/Makefile | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) commit 2d9f59f7bf8ef5704b0b6ca8406be12568a1c2da Author: Stefan Agner Date: Sat May 16 11:44:16 2015 +0200 irqchip: nvic: Support hierarchy irq domain Add support for hierarchy irq domains. This is required to stack the MSCM interrupt router and the NVIC controller found in Vybrid SoC. Signed-off-by: Stefan Agner Cc: marc.zyngier@arm.com Cc: linux@arm.linux.org.uk Cc: u.kleine-koenig@pengutronix.de Cc: olof@lixom.net Cc: arnd@arndb.de Cc: daniel.lezcano@linaro.org Cc: mark.rutland@arm.com Cc: pawel.moll@arm.com Cc: robh+dt@kernel.org Cc: ijc+devicetree@hellion.org.uk Cc: galak@codeaurora.org Cc: mcoquelin.stm32@gmail.com Cc: linux-arm-kernel@lists.infradead.org Cc: shawn.guo@linaro.org Cc: kernel@pengutronix.de Cc: jason@lakedaemon.net Link: http://lkml.kernel.org/r/1431769465-26867-5-git-send-email-stefan@agner.ch Signed-off-by: Thomas Gleixner drivers/irqchip/Kconfig | 1 + drivers/irqchip/irq-nvic.c | 28 +++++++++++++++++++++++++++- 2 files changed, 28 insertions(+), 1 deletion(-) commit c5863484c16b37a266ef9c0d728352b4e115a46a Author: Stefan Agner Date: Sat May 16 11:44:15 2015 +0200 genirq: generic chip: Support hierarchy domain Use the new helper function irq_domain_set_info to make sure the function irq_domain_set_hwirq_and_chip is being called, which is crucial to save irqdomain specific data to irq_data. Signed-off-by: Stefan Agner Cc: marc.zyngier@arm.com Cc: linux@arm.linux.org.uk Cc: u.kleine-koenig@pengutronix.de Cc: olof@lixom.net Cc: arnd@arndb.de Cc: daniel.lezcano@linaro.org Cc: mark.rutland@arm.com Cc: pawel.moll@arm.com Cc: robh+dt@kernel.org Cc: ijc+devicetree@hellion.org.uk Cc: galak@codeaurora.org Cc: mcoquelin.stm32@gmail.com Cc: linux-arm-kernel@lists.infradead.org Cc: shawn.guo@linaro.org Cc: kernel@pengutronix.de Cc: jason@lakedaemon.net Link: http://lkml.kernel.org/r/1431769465-26867-4-git-send-email-stefan@agner.ch Signed-off-by: Thomas Gleixner kernel/irq/generic-chip.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 3cfeffc265791bc953527458e0a44ea77c459340 Author: Stefan Agner Date: Sat May 16 11:44:14 2015 +0200 genirq: Add irq_chip_(enable/disable)_parent Add helper irq_chip_enable_parent and irq_chip_disable_parent. The helper implement the default behavior in case irq_enable or irq_disable is not implemented for the parent interrupt chip, which is calling the irq_mask or irq_unmask respectively. Signed-off-by: Stefan Agner Cc: marc.zyngier@arm.com Cc: linux@arm.linux.org.uk Cc: u.kleine-koenig@pengutronix.de Cc: olof@lixom.net Cc: arnd@arndb.de Cc: daniel.lezcano@linaro.org Cc: mark.rutland@arm.com Cc: pawel.moll@arm.com Cc: robh+dt@kernel.org Cc: ijc+devicetree@hellion.org.uk Cc: galak@codeaurora.org Cc: mcoquelin.stm32@gmail.com Cc: linux-arm-kernel@lists.infradead.org Cc: shawn.guo@linaro.org Cc: kernel@pengutronix.de Cc: jason@lakedaemon.net Link: http://lkml.kernel.org/r/1431769465-26867-3-git-send-email-stefan@agner.ch Signed-off-by: Thomas Gleixner include/linux/irq.h | 2 ++ kernel/irq/chip.c | 28 ++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) commit 5f22f5c668204f3af7557018b2ad6cf2074defac Author: Stefan Agner Date: Sat May 16 11:44:13 2015 +0200 irqdomain: Add non-hierarchy helper irq_domain_set_info This adds the helper irq_domain_set_info() in a non-domain hierarchy variant. This allows to use the helper for generic chip since not all chips using generic chip support domain hierarchy. Signed-off-by: Stefan Agner Cc: marc.zyngier@arm.com Cc: linux@arm.linux.org.uk Cc: u.kleine-koenig@pengutronix.de Cc: olof@lixom.net Cc: arnd@arndb.de Cc: daniel.lezcano@linaro.org Cc: mark.rutland@arm.com Cc: pawel.moll@arm.com Cc: robh+dt@kernel.org Cc: ijc+devicetree@hellion.org.uk Cc: galak@codeaurora.org Cc: mcoquelin.stm32@gmail.com Cc: linux-arm-kernel@lists.infradead.org Cc: shawn.guo@linaro.org Cc: kernel@pengutronix.de Cc: jason@lakedaemon.net Link: http://lkml.kernel.org/r/1431769465-26867-2-git-send-email-stefan@agner.ch Signed-off-by: Thomas Gleixner include/linux/irqdomain.h | 8 ++++---- kernel/irq/irqdomain.c | 21 +++++++++++++++++++++ 2 files changed, 25 insertions(+), 4 deletions(-) commit 3c646f2c6aa9e918d7fc77867df7f430059f9ccc Author: NeilBrown Date: Sun May 17 15:19:34 2015 +1000 genirq: Don't suspend nested_thread irqs over system suspend Nested IRQs can only fire when the parent irq fires. So when the parent is suspended, there is no need to suspend the child irq. Suspending nested irqs can cause a problem is they are suspended or resumed in the wrong order. If an interrupt fires while the parent is active but the child is suspended, then the interrupt will not be acknowledged properly and so an interrupt storm can result. This is particularly likely if the parent is resumed before the child, and the interrupt was raised during suspend. Ensuring correct ordering would be possible, but it is simpler to just never suspend nested interrupts. Signed-off-by: NeilBrown Cc: GTA04 owners Cc: Kalle Jokiniemi Acked-by: Peter Zijlstra Cc: Rafael J. Wysocki Link: http://lkml.kernel.org/r/20150517151934.2393e8f8@notabene.brown Signed-off-by: Thomas Gleixner kernel/irq/pm.c | 4 ++++ 1 file changed, 4 insertions(+) commit 4cfafd3082afc707653aeb82e9f8e7b596fbbfd6 Author: Peter Zijlstra Date: Thu May 14 12:23:11 2015 +0200 sched,perf: Fix periodic timers In the below two commits (see Fixes) we have periodic timers that can stop themselves when they're no longer required, but need to be (re)-started when their idle condition changes. Further complications is that we want the timer handler to always do the forward such that it will always correctly deal with the overruns, and we do not want to race such that the handler has already decided to stop, but the (external) restart sees the timer still active and we end up with a 'lost' timer. The problem with the current code is that the re-start can come before the callback does the forward, at which point the forward from the callback will WARN about forwarding an enqueued timer. Now, conceptually its easy to detect if you're before or after the fwd by comparing the expiration time against the current time. Of course, that's expensive (and racy) because we don't have the current time. Alternatively one could cache this state inside the timer, but then everybody pays the overhead of maintaining this extra state, and that is undesired. The only other option that I could see is the external timer_active variable, which I tried to kill before. I would love a nicer interface for this seemingly simple 'problem' but alas. Fixes: 272325c4821f ("perf: Fix mux_interval hrtimer wreckage") Fixes: 77a4d1a1b9a1 ("sched: Cleanup bandwidth timers") Cc: pjt@google.com Cc: tglx@linutronix.de Cc: klamm@yandex-team.ru Cc: mingo@kernel.org Cc: bsegall@google.com Cc: hpa@zytor.com Cc: Sasha Levin Signed-off-by: Peter Zijlstra (Intel) Link: http://lkml.kernel.org/r/20150514102311.GX21418@twins.programming.kicks-ass.net include/linux/perf_event.h | 4 ++++ kernel/events/core.c | 29 ++++++++++++++++------------- kernel/sched/core.c | 12 ------------ kernel/sched/fair.c | 17 +++++++++++++---- kernel/sched/rt.c | 8 +++++++- kernel/sched/sched.h | 5 ++--- 6 files changed, 42 insertions(+), 33 deletions(-) commit 036ef5733ba433760a3512bb5f7a155946e2df05 Author: Maarten Lankhorst Date: Mon May 18 10:06:40 2015 +0200 drm/atomic: Allow drivers to subclass drm_atomic_state, v3 Drivers may need to store the state of shared resources, such as PLLs or FIFO space, into the atomic state. Allow this by making it possible to subclass drm_atomic_state. Changes since v1: - Change member names for functions to atomic_state_(alloc,clear) - Change __drm_atomic_state_new to drm_atomic_state_init - Allow free function to be overridden too, in case extra memory is allocated in alloc. Changes since v2: - Rename *_default_free to default_release, to make clear it doesn't free the state object itself. Cc: dri-devel@lists.freedesktop.org Acked-by: Ander Conselvan de Oliveira Signed-off-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_atomic.c | 116 ++++++++++++++++++++++++++++++++----------- include/drm/drm_atomic.h | 5 ++ include/drm/drm_crtc.h | 6 +++ 3 files changed, 99 insertions(+), 28 deletions(-) commit 724814b4fada4a353728c3caa8ad2809c64893b6 Author: Linus Walleij Date: Thu May 14 18:02:05 2015 +0200 ARM: ux500: define the backupram in the device tree The Ux500 SOCs have a special backup RAM that needs to be defined in the device tree. Acked-by: Arnd Bergmann Signed-off-by: Linus Walleij arch/arm/boot/dts/ste-dbx5x0.dtsi | 9 +++++++++ 1 file changed, 9 insertions(+) commit a3355a236d7d6363bb10813d5e84d23a3b409dad Author: Linus Walleij Date: Thu May 14 18:01:19 2015 +0200 ARM: ux500: add board documentation This documents the device tree bindings on the top level of the Ux500 boards. Acked-by: Arnd Bergmann Signed-off-by: Linus Walleij .../devicetree/bindings/arm/ux500/boards.txt | 83 ++++++++++++++++++++++ 1 file changed, 83 insertions(+) commit 07db781dcaa59e497eb5b8642fee86201d256ecc Author: Linus Walleij Date: Thu May 14 17:57:39 2015 +0200 ARM: scu: document Snoop Control Unit DT bindings This adds device tree bindings for the ARM Cortex-A5 and Cortex-A9 Snoop Control Units. Acked-by: Arnd Bergmann Signed-off-by: Linus Walleij Documentation/devicetree/bindings/arm/scu.txt | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) commit c4f035473d93c1594d8225f6dd97332317820801 Author: Wang Nan Date: Sun May 17 10:56:27 2015 +0000 perf tools: Set vmlinux_path__nr_entries to 0 in vmlinux_path__exit Original vmlinux_path__exit() doesn't revert vmlinux_path__nr_entries to its original state. After the while loop vmlinux_path__nr_entries becomes -1 instead of 0. This makes a problem that, if runs twice, during the second run vmlinux_path__init() will set vmlinux_path[-1] to strdup("vmlinux"), corrupts random memory. This patch reset vmlinux_path__nr_entries to 0 after the while loop. Signed-off-by: Wang Nan Acked-by: Namhyung Kim Cc: Alexei Starovoitov Cc: Daniel Borkmann Cc: David Ahern Cc: Jiri Olsa Cc: Masami Hiramatsu Cc: Paul Mackerras Cc: Peter Zijlstra Cc: pi3orama@163.com Cc: Zefan Li Link: http://lkml.kernel.org/r/1431860222-61636-3-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/symbol.c | 1 + 1 file changed, 1 insertion(+) commit 33bdedcea2d77231fe46b1204cf6fc3a7d7c96c9 Author: Namhyung Kim Date: Mon May 18 09:30:42 2015 +0900 perf tools: Protect dso cache fd with a mutex When dso cache is accessed in multi-thread environment, it's possible to close other dso->data.fd during operation due to open file limit. Protect the file descriptors using a separate mutex. Signed-off-by: Namhyung Kim Cc: Adrian Hunter Cc: Andi Kleen Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1431909055-21442-28-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/dso.c | 98 +++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 72 insertions(+), 26 deletions(-) commit 8e67b7258e582998ab635bdc3c884d7a8077af5b Author: Namhyung Kim Date: Mon May 18 09:30:41 2015 +0900 perf symbols: Protect dso cache tree using dso->lock The dso cache is accessed during dwarf callchain unwind and it might be processed concurrently. Protect it under dso->lock. Note that it doesn't protect dso_cache__find(). I think it's safe to access to the cache tree without the lock since we don't delete nodes. It it missed an existing node due to rotation, it'll find it during dso_cache__insert() anyway. Signed-off-by: Namhyung Kim Cc: Adrian Hunter Cc: Andi Kleen Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1431909055-21442-27-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/dso.c | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) commit 4a936edc317005e8cd2b501e7865721bec104544 Author: Namhyung Kim Date: Mon May 18 09:30:40 2015 +0900 perf symbols: Protect dso symbol loading using a mutex Add mutex to protect it from concurrent dso__load(). Signed-off-by: Namhyung Kim Cc: Adrian Hunter Cc: Andi Kleen Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1431909055-21442-26-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/dso.c | 2 ++ tools/perf/util/dso.h | 1 + tools/perf/util/symbol.c | 34 ++++++++++++++++++++++++---------- 3 files changed, 27 insertions(+), 10 deletions(-) commit 9c9f5a2f1944e8b6bf2b618d04b31e1c1760637e Author: Namhyung Kim Date: Mon May 18 09:30:18 2015 +0900 perf tools: Introduce copyfile_offset() function The copyfile_offset() function is to copy source data from given offset to a destination file with an offset. It'll be used to build an indexed data file. Signed-off-by: Namhyung Kim Acked-by: Jiri Olsa Cc: Adrian Hunter Cc: Andi Kleen Cc: David Ahern Cc: Frederic Weisbecker Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/20150304145824.GD7519@krava.brq.redhat.com Link: http://lkml.kernel.org/r/1431909055-21442-4-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/util.c | 38 +++++++++++++++++++++++++++++--------- tools/perf/util/util.h | 1 + 2 files changed, 30 insertions(+), 9 deletions(-) commit 0b1de0be1eac7b23e89cb43c17b02d38ead6b6c8 Author: Namhyung Kim Date: Mon May 18 09:30:17 2015 +0900 perf tools: Add rm_rf() utility function The rm_rf() function does same as the shell command 'rm -rf' which removes all directory entries recursively. Signed-off-by: Namhyung Kim Acked-by: Jiri Olsa Cc: Adrian Hunter Cc: Andi Kleen Cc: David Ahern Cc: Frederic Weisbecker Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1431909055-21442-3-git-send-email-namhyung@kernel.org Link: http://lkml.kernel.org/r/20150130150256.GF6188@krava.brq.redhat.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/util.c | 43 +++++++++++++++++++++++++++++++++++++++++++ tools/perf/util/util.h | 1 + 2 files changed, 44 insertions(+) commit 86066064e3e545338e9b48b49256d5e51213915a Author: Arnaldo Carvalho de Melo Date: Fri May 15 17:29:56 2015 -0300 perf tools: Elliminate alignment holes perf_evsel: Before: /* size: 320, cachelines: 5, members: 35 */ /* sum members: 304, holes: 3, sum holes: 16 */ After: /* size: 304, cachelines: 5, members: 35 */ /* last cacheline: 48 bytes */ perf_evlist: Before: /* size: 2544, cachelines: 40, members: 17 */ /* sum members: 2533, holes: 2, sum holes: 11 */ /* last cacheline: 48 bytes */ After: /* size: 2536, cachelines: 40, members: 17 */ /* sum members: 2533, holes: 1, sum holes: 3 */ /* last cacheline: 40 bytes */ timechart: Before: /* size: 288, cachelines: 5, members: 21 */ /* sum members: 271, holes: 2, sum holes: 10 */ /* padding: 7 */ /* last cacheline: 32 bytes */ After: /* size: 272, cachelines: 5, members: 21 */ /* sum members: 271, holes: 1, sum holes: 1 */ /* last cacheline: 16 bytes */ thread: Before: /* size: 112, cachelines: 2, members: 15 */ /* sum members: 101, holes: 2, sum holes: 11 */ /* last cacheline: 48 bytes */ After: /* size: 104, cachelines: 2, members: 15 */ /* sum members: 101, holes: 1, sum holes: 3 */ /* last cacheline: 40 bytes */ Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-a543w7zjl9yyrg9nkf1teukp@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-timechart.c | 4 ++-- tools/perf/util/evlist.h | 2 +- tools/perf/util/evsel.h | 4 ++-- tools/perf/util/thread.h | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) commit 70ba6b8f975bcff56e180e2c7550d2302fcbf923 Author: Wang Nan Date: Fri May 15 07:50:57 2015 +0000 tools include: add __aligned_u64 to types.h. Following patches will introduce linux/bpf.h to a new libbpf library, which requires definition of __aligned_u64. This patch add it to the common types.h for tools. Signed-off-by: Wang Nan Cc: Adrian Hunter Cc: Alexei Starovoitov Cc: Brendan Gregg Cc: Daniel Borkmann Cc: David Ahern Cc: Jiri Olsa Cc: Masami Hiramatsu Cc: Namhyung Kim Cc: Paul Mackerras Cc: Peter Zijlstra Cc: pi3orama@163.com Cc: Zefan Li Link: http://lkml.kernel.org/r/1431676290-1230-5-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/include/linux/types.h | 4 ++++ 1 file changed, 4 insertions(+) commit 75e4a2a6af15e956993913314ced2582b350a647 Author: Wang Nan Date: Fri May 15 12:14:44 2015 +0000 perf probe: Load map before glob matching Commit 4c859351226c920b227fec040a3b447f0d482af3 ("perf probe: Support glob wildcards for function name") introduces a problem: # /root/perf probe kmem_cache_free Failed to find symbol kmem_cache_free in kernel Error: Failed to add events. The reason is the replacement of map__for_each_symbol_by_name() (by map__for_each_symbol()). Although their names are similar, map__for_each_symbol doesn't call map__load() and dso__sort_by_name() before searching. The missing of map__load() causes this problem because it search symbol before load dso map. This patch ensures map__load() is called before using map__for_each_symbol(). After this patch: # /root/perf probe kmem_cache_free Added new event: probe:kmem_cache_free (on kmem_cache_free%return) You can now use it in all perf tools, such as: perf record -e probe:kmem_cache_free -aR sleep 1 Signed-off-by: Wang Nan Acked-by: Masami Hiramatsu Cc: Namhyung Kim Cc: Paul Mackerras Cc: Peter Zijlstra Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1431692084-46287-1-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/probe-event.c | 3 +++ 1 file changed, 3 insertions(+) commit 1da4d13912e773523ef095fa05704d6962babe90 Author: Linus Walleij Date: Thu May 14 10:42:32 2015 +0200 ARM: ux500: delete static resource defines These macros were used in the past to define static resources, but are not used anymore and have no future, delete them. Signed-off-by: Linus Walleij arch/arm/mach-ux500/setup.h | 14 -------------- 1 file changed, 14 deletions(-) commit 9bac89e069e2aa7c4602a2d76a76f3d8ba8a3aa3 Author: Linus Walleij Date: Thu May 14 10:37:05 2015 +0200 ARM: ux500: rename ux500_map_io This function is not mapping any I/O other than for probing the chip ID. Rename it to make the function graspable. Signed-off-by: Linus Walleij arch/arm/mach-ux500/cpu-db8500.c | 2 +- arch/arm/mach-ux500/id.c | 2 +- arch/arm/mach-ux500/setup.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 6252bd35782a3bf636b665c0d5700dd449492ca2 Author: Linus Walleij Date: Thu May 14 10:29:59 2015 +0200 ARM: ux500: look up PRCMU resource from DT This removes the static map for the PRCMU in favor of looking up that resource from the device tree. Signed-off-by: Linus Walleij arch/arm/mach-ux500/cpu-db8500.c | 18 ------------------ arch/arm/mach-ux500/cpu.c | 20 +++++++++++++------- 2 files changed, 13 insertions(+), 25 deletions(-) commit 583ecab9e36ec3077228cc4e303276856ee7519e Author: Linus Walleij Date: Thu May 14 10:06:55 2015 +0200 ARM: ux500: kill off L2CC static map The l2x0 level 2 cache initialization used a static map to get at the l2x0 registers. Get rid of this by getting the register range from the device tree and just remap it for the short time we need it. Signed-off-by: Linus Walleij arch/arm/mach-ux500/cache-l2x0.c | 11 ++++++++++- arch/arm/mach-ux500/cpu-db8500.c | 7 ------- 2 files changed, 10 insertions(+), 8 deletions(-) commit c1424803f6467fbbf269a5dfa830d9c60ae32181 Author: Linus Walleij Date: Thu May 14 09:53:32 2015 +0200 ARM: ux500: get rid of SCU and backupram static maps After moving the SMP and PM code to use dynamic mappings from the device tree, we can delete the static maps for SCU and backup RAM. Signed-off-by: Linus Walleij arch/arm/mach-ux500/cpu-db8500.c | 3 --- 1 file changed, 3 deletions(-) commit 26ef94dc8b97156ce1ce3fb74855a598dac067aa Author: Linus Walleij Date: Thu May 14 09:48:37 2015 +0200 ARM: ux500: get rid of static GIC dist base The GIC distributor was mapped statically for the PM code but the driver already get the base address from the DT. Augment the PM code to get the base from the device tree and remove the static map. Signed-off-by: Linus Walleij arch/arm/mach-ux500/cpu-db8500.c | 1 - arch/arm/mach-ux500/pm.c | 15 +++++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) commit 58202033faca18198af21dabb7e75481d4a2cd8a Author: Linus Walleij Date: Thu May 14 09:46:40 2015 +0200 ARM: ux500: get SCU base from device tree The SMP startup/shutdown code relied on a static SCU base address, let's get this from the device tree instead. Signed-off-by: Linus Walleij arch/arm/mach-ux500/platsmp.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit 80757f2335c93fbb9a8fa5a2e68f8ef46d2d5081 Author: Linus Walleij Date: Thu May 14 09:35:46 2015 +0200 ARM: ux500: remap BB offset dynamically Instead of relying on static maps, remap the BB chip ID offset dynamically. Signed-off-by: Linus Walleij arch/arm/mach-ux500/cpu-db8500.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 2d6dd1711346d1708eacdbb1b5e8a5a573562fd1 Author: Linus Walleij Date: Thu May 14 09:20:23 2015 +0200 ARM: ux500: remove static maps from platsmp This removes the reliance on static maps for SCU and backupram for the SMP startup of the Ux500 SoC. Signed-off-by: Linus Walleij arch/arm/mach-ux500/platsmp.c | 28 +++++++--------------------- 1 file changed, 7 insertions(+), 21 deletions(-) commit 951b833ee88c2b6df4346414dc9d88a96076ff2d Author: Linus Walleij Date: Wed May 13 15:01:48 2015 +0200 ARM: ux500: delete UART static map Delete the static maps for the Ux500 UARTs and rely on debug_ll_io_init() to do the trick. commit f87b95dd2e4a8832b1d6034f15a5324db42608a0 "ARM: ux500: move debugmacro to debug includes" defined the necessary addruart macro two years ago. Signed-off-by: Linus Walleij arch/arm/mach-ux500/cpu-db8500.c | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) commit ef6ca1a84a3da9bf45d31399090153e00fc6cd68 Author: Josh Cartwright Date: Thu Mar 19 08:33:53 2015 -0500 ARM: zynq: Drop use of slcr_unlock in zynq_slcr_system_restart The SLCR is unconditionally unlocked early on boot in zynq_slcr_init() and not ever re-locked. As such, it is not necessary to explicitly unlock in the restart codepath. Signed-off-by: Josh Cartwright Signed-off-by: Michal Simek arch/arm/mach-zynq/slcr.c | 7 ------- 1 file changed, 7 deletions(-) commit 64e686176007de9b9aa735b71e8fa1c2979a00ce Author: Josh Cartwright Date: Thu Mar 19 09:24:38 2015 -0500 ARM: zynq: Use restart_handler mechanism for slcr reset By making use of the restart_handler chain mechanism, the SLCR-based reset mechanism can be prioritized amongst other mechanisms available on a particular board. Choose a default high-ish priority of 192 for this restart mechanism. Signed-off-by: Josh Cartwright Signed-off-by: Michal Simek arch/arm/mach-zynq/common.c | 6 ------ arch/arm/mach-zynq/common.h | 1 - arch/arm/mach-zynq/slcr.c | 21 +++++++++++++++++++-- 3 files changed, 19 insertions(+), 9 deletions(-) commit 7cb685982157567dcc55eb92d1c38d237465203b Author: Ingo Molnar Date: Mon May 18 12:05:13 2015 +0200 x86/smp/boot: Fix legacy SMP bootup slow-boot bug So while testing kernels using tools/kvm/ (kvmtool) I noticed that it booted super slow: [ 0.142991] Performance Events: no PMU driver, software events only. [ 0.149265] x86: Booting SMP configuration: [ 0.149765] .... node #0, CPUs: #1 [ 0.148304] kvm-clock: cpu 1, msr 2:1bfe9041, secondary cpu clock [ 10.158813] KVM setup async PF for cpu 1 [ 10.159000] #2 [ 10.159000] kvm-stealtime: cpu 1, msr 211a4d400 [ 10.158829] kvm-clock: cpu 2, msr 2:1bfe9081, secondary cpu clock [ 20.167805] KVM setup async PF for cpu 2 [ 20.168000] #3 [ 20.168000] kvm-stealtime: cpu 2, msr 211a8d400 [ 20.167818] kvm-clock: cpu 3, msr 2:1bfe90c1, secondary cpu clock [ 30.176902] KVM setup async PF for cpu 3 [ 30.177000] #4 [ 30.177000] kvm-stealtime: cpu 3, msr 211acd400 One CPU booted up per 10 seconds. With 120 CPUs that takes a while. Bisection pinpointed this commit: 853b160aaafb ("Revert f5d6a52f5111 ("x86/smpboot: Skip delays during SMP initialization similar to Xen")") But that commit just restores previous behavior, so it cannot cause the problem. After some head scratching it turns out that these two commits: 1a744cb356c5 ("x86/smp/boot: Remove 10ms delay from cpu_up() on modern processors") d68921f9bd14 ("x86/smp/boot: Add cmdline "cpu_init_udelay=N" to specify cpu_up() delay") added the following code to smpboot.c: - mdelay(10); + mdelay(init_udelay); Note the mismatch in the units: the delay is called 'udelay' and is set to microseconds - while the function used here is actually 'mdelay', which counts in milliseconds ... So the delay for legacy systems is off by a factor of 1,000, so instead of 10 msecs we waited for 10 seconds ... The reason bisection pointed to 853b160aaafb was that 853b160aaafb removed a (broken) boot-time speedup patch, which masked the factor 1,000 bug. Fix it by using udelay(). This fixes my bootup problems. Cc: Len Brown Cc: Alan Cox Cc: Arjan van de Ven Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Jan H. Schönherr Cc: Linus Torvalds Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar arch/x86/kernel/smpboot.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ac397c80de895094cbb72264c279fade45447cbf Author: Wolfram Sang Date: Sat May 9 19:42:22 2015 +0200 ALSA: ppc: keywest: drop using attach adapter As we now have deferred probing, we can use a custom mechanism and finally get rid of this legacy interface from the i2c core. Signed-off-by: Wolfram Sang Tested-by: Dan DeVoto Tested-by: Mark Elliott Signed-off-by: Takashi Iwai sound/ppc/keywest.c | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) commit 942d702e719607da308c00af1b63804bf88cb030 Author: Fabian Frederick Date: Fri May 15 23:26:28 2015 +0200 udf: remove double err declaration in udf_file_write_iter() Use first err declaration for generic_write_sync() return value. Signed-off-by: Fabian Frederick Signed-off-by: Jan Kara fs/udf/file.c | 2 -- 1 file changed, 2 deletions(-) commit 92acca45428f28c0b387f85b52b230d526dd0ecc Author: NeilBrown Date: Fri May 8 10:16:23 2015 +1000 UDF: 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 Signed-off-by: Jan Kara fs/udf/namei.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 4649f6b36214bd0707eda6e28afd594db4e19f98 Author: Adir Kuhn Date: Fri May 1 03:25:27 2015 +0000 fs: ext3: super: fixed a space coding style issue Fixed a coding style issue Signed-off-by: Adir Kuhn Signed-off-by: Jan Kara fs/ext3/super.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 18e25fa40331364759bc2a48cffc5d7772b89c78 Author: Jan Kara Date: Tue Apr 14 10:08:15 2015 +0200 quota: Update documentation Mention that quota netlink messages are sent only in initial network namespace. Signed-off-by: Jan Kara Documentation/filesystems/quota.txt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 231473f6ddcef9c01993e0bfe36acc6f8e425c31 Author: Fabian Frederick Date: Wed Apr 8 21:23:58 2015 +0200 udf: Return error from udf_find_entry() Return appropriate error from udf_find_entry() instead of just NULL. That way we can distinguish the fact that some error happened when looking up filename (and return error to userspace) from the fact that we just didn't find the filename. Also update callers of udf_find_entry() accordingly. [JK: Improved udf_find_entry() documentation] Suggested-by: Jan Kara Signed-off-by: Fabian Frederick Signed-off-by: Jan Kara fs/udf/namei.c | 91 +++++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 71 insertions(+), 20 deletions(-) commit 6ce638367382ea8015cf64619e9bca4e207ef36f Author: Fabian Frederick Date: Wed Apr 8 21:23:57 2015 +0200 udf: Make udf_get_filename() return error instead of 0 length file name Zero length file name isn't really valid. So check the length of the final file name generated by udf_translate_to_linux() and return -EINVAL instead of zero length file name. Update caller of udf_get_filename() to not check for 0 return value. Signed-off-by: Fabian Frederick Signed-off-by: Jan Kara fs/udf/dir.c | 2 +- fs/udf/unicode.c | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) commit 5dce54b71e6185dae07ad12ca17ce30aa64022cd Author: Fabian Frederick Date: Wed Apr 8 21:23:56 2015 +0200 udf: bug on exotic flag in udf_get_filename() UDF volume is only mounted with UDF_FLAG_UTF8 or UDF_FLAG_NLS_MAP (see fill udf_fill_super(). BUG() if we have something different in udf_get_filename() Suggested-by: Jan Kara Signed-off-by: Fabian Frederick Signed-off-by: Jan Kara fs/udf/unicode.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 78fc2e694f35d1d027448e5b7641f32719073320 Author: Fabian Frederick Date: Wed Apr 8 21:23:55 2015 +0200 udf: improve error management in udf_CS0toNLS() Only callsite udf_get_filename() now returns error code as well. Suggested-by: Jan Kara Signed-off-by: Fabian Frederick Signed-off-by: Jan Kara fs/udf/unicode.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit e9d4cf411f7582537ed0038d0f32a8743b75e58a Author: Fabian Frederick Date: Wed Apr 8 21:23:54 2015 +0200 udf: improve error management in udf_CS0toUTF8() udf_CS0toUTF8() now returns -EINVAL on error. udf_load_pvoldesc() and udf_get_filename() do the same. Suggested-by: Jan Kara Signed-off-by: Fabian Frederick Signed-off-by: Jan Kara fs/udf/super.c | 23 ++++++++++++++--------- fs/udf/unicode.c | 7 ++++--- 2 files changed, 18 insertions(+), 12 deletions(-) commit d67e4a481425106a43c8d3cef82a82cc31b4edd8 Author: Fabian Frederick Date: Wed Apr 8 21:23:53 2015 +0200 udf: unicode: update function name in comments Signed-off-by: Fabian Frederick Signed-off-by: Jan Kara fs/udf/unicode.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 31f2566f33a6a25ac0baf402316e37e76632445f Author: Fabian Frederick Date: Wed Apr 8 21:23:52 2015 +0200 udf: remove unnecessary test in udf_build_ustr_exact() We can remove parameter checks: udf_build_ustr_exact() is only called by udf_get_filename() which now assures dest is not NULL udf_find_entry() and udf_readdir() call udf_get_filename() after checking sname udf_symlink_filler() calls udf_pc_to_char() with sname=kmap(page). udf_find_entry() and udf_readdir() call udf_get_filename with UDF_NAME_LEN udf_pc_to_char() with PAGE_SIZE Suggested-by: Jan Kara Signed-off-by: Fabian Frederick Signed-off-by: Jan Kara fs/udf/unicode.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) commit 5ceb8b554dcaaf6844415cd2616ce2e0132530fa Author: Fabian Frederick Date: Wed Apr 8 21:23:51 2015 +0200 udf: Return -ENOMEM when allocation fails in udf_get_filename() Return -ENOMEM when allocation fails in udf_get_filename(). Update udf_pc_to_char(), udf_readdir(), and udf_find_entry() to handle the error appropriately. This allows us to pass appropriate error to userspace instead of corrupting symlink contents by omitting some path elements. Signed-off-by: Fabian Frederick Signed-off-by: Jan Kara fs/udf/dir.c | 2 +- fs/udf/namei.c | 2 +- fs/udf/symlink.c | 3 +++ fs/udf/unicode.c | 12 +++++++----- 4 files changed, 12 insertions(+), 7 deletions(-) commit c8fd51dc12c6e22bb97d5e273babcf339770aba5 Author: Dan Carpenter Date: Thu May 14 11:33:30 2015 +0300 HID: i2c-hid: fix harmless test_bit() issue These defines are used like this: if (test_bit(I2C_HID_STARTED, &ihid->flags)) The intent was to use bits 0, 1, and 2 but because of the extra shifts we're using bits 1, 2, and 4. It's harmless becuase it's done consistently but it's not the intent and static checkers will complain. Fixes: 4a200c3b9a40 ('HID: i2c-hid: introduce HID over i2c specification implementation') Signed-off-by: Dan Carpenter Reviewed-by: Benjamin Tissoires Signed-off-by: Jiri Kosina drivers/hid/i2c-hid/i2c-hid.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit af43c4086cf24c3eb74a968195351163750c82b6 Author: Dan Carpenter Date: Thu May 14 11:32:56 2015 +0300 HID: rmi: fix some harmless BIT() mistakes These defines are used like this: if (!(test_bit(RMI_STARTED, &hdata->flags))) So the intent was to use bits 0, 1 and 2 but because of the extra BIT() shifts we're actually using 1, 2 and 4. It's harmless because it's done consistently but static checkers will complain. Fixes: 9fb6bf02e3ad ('HID: rmi: introduce RMI driver for Synaptics touchpads') Signed-off-by: Dan Carpenter Reviewed-by: Benjamin Tissoires Signed-off-by: Jiri Kosina drivers/hid/hid-rmi.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 36e505c16e610403c110bab76a95cbfa0436a928 Author: Minfei Huang Date: Fri May 15 10:22:48 2015 +0800 livepatch: Prevent patch inconsistencies if the coming module notifier fails The previous patches can be applied, once the corresponding module is loaded. In general, the patch will do relocation (if necessary) and obtain/verify function address before we start to enable patch. There are three different situations in which the coming module notifier can fail: 1) relocations are not applied for some reason. In this case kallsyms for module symbol is not called at all. The patch is not applied to the module. If the user disable and enable patch again, there is possible bug in klp_enable_func. If the user specified func->old_addr for some function in the module (and he shouldn't do that, but nevertheless) our warning would not catch it, ftrace will reject to register the handler because of wrong address or will register the handler for wrong address. 2) relocations are applied successfully, but kallsyms lookup fails. In this case func->old_addr can be correct for all previous lookups, 0 for current failed one, and "unspecified" for the rest. If we undergo the same scenario as in 1, the behaviour differs for three cases, but the patch is not enabled anyway. 3) the object is initialized, but klp_enable_object fails in the notifier due to possible ftrace error. Since it is improbable that ftrace would heal itself in the future, we would get those errors everytime the patch is enabled. In order to fix above situations, we can make obj->mod to NULL, if the coming modified notifier fails. Signed-off-by: Minfei Huang Acked-by: Josh Poimboeuf Reviewed-by: Miroslav Benes Signed-off-by: Jiri Kosina kernel/livepatch/core.c | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) commit 30ee72f0d28721da4bbe2be850fcd0bd269f238f Author: Srinivas Pandruvada Date: Fri May 15 11:35:38 2015 -0700 HID: MAINTAINERS: Add HID SENSOR HUB drivers Added additional entry for hid sensor hub drivers, which includes core hid sensor hub MFD driver and IIO drivers for individual sensors. Signed-off-by: Srinivas Pandruvada Acked-by: Jonathan Cameron Signed-off-by: Jiri Kosina MAINTAINERS | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 8faf491e642011f449d6405be52bedb70964aed6 Author: Li RongQing Date: Thu May 14 11:16:59 2015 +0800 xfrm: optimise to search the inexact policy list The policies are organized into list by priority ascent of policy, so it is unnecessary to continue to loop the policy if the priority of current looped police is larger than or equal priority which is from the policy_bydst list. This allows to match policy with ~0U priority in inexact list too. Signed-off-by: Li RongQing Signed-off-by: Steffen Klassert net/xfrm/xfrm_policy.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) commit 108c5df14a5fcc4a5470df2de091c48d54a553a3 Author: Sudip Mukherjee Date: Thu May 14 16:42:59 2015 +0530 sound: oss: fix build warning while building with allyesconfig it was giving a build warning about unused variable. declare the variable only if the driver is built as a module. Signed-off-by: Sudip Mukherjee Signed-off-by: Takashi Iwai sound/oss/ad1848.c | 2 ++ 1 file changed, 2 insertions(+) commit 785d8c4be82b45d10ff0d5cebfddadb1e1f6ae15 Author: Libin Yang Date: Tue May 12 09:43:22 2015 +0800 ALSA: hda - add hda_intel_trace.h This patch creates hda_intel_trace.h to add some pm trace functions used in hda_intel.c Signed-off-by: Libin Yang Signed-off-by: Takashi Iwai sound/pci/hda/Makefile | 1 + sound/pci/hda/hda_intel.c | 9 +++++++ sound/pci/hda/hda_intel_trace.h | 53 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 63 insertions(+) commit 184865085b88789fc8a355cc16ceff25f82f63ba Author: Libin Yang Date: Tue May 12 09:43:21 2015 +0800 ALSA: hda - rename hda_intel_trace.h to hda_controller_trace.h This patch does: 1. Rename the hda_intel_trace.h to hda_controller_trace.h as this trace is used in hda_controller.c 2. Add some trace function for pcm flow. Signed-off-by: Libin Yang Signed-off-by: Takashi Iwai sound/pci/hda/hda_controller.c | 6 ++- sound/pci/hda/hda_controller_trace.h | 98 ++++++++++++++++++++++++++++++++++++ sound/pci/hda/hda_intel_trace.h | 62 ----------------------- 3 files changed, 103 insertions(+), 63 deletions(-) commit 598dfb56b016615f5f49848b58a1ce151acd3bd3 Author: Libin Yang Date: Tue May 12 09:43:20 2015 +0800 ALSA: hda - add hdac stream trace Add the trace of snd_hdac_stream_start and snd_hdac_stream_stop. Signed-off-by: Libin Yang Signed-off-by: Takashi Iwai sound/hda/hdac_stream.c | 5 +++++ sound/hda/trace.h | 27 +++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) commit 5c03be00cd9eb164be7c7e3bd9065c7ac2df4a29 Author: Thierry Reding Date: Tue May 5 14:56:24 2015 +0200 ALSA: hda/hdmi - Add Tegra210 support Tegra210 contains a similar codec as Tegra124 and can be supported using the same patch function. Signed-off-by: Thierry Reding Signed-off-by: Takashi Iwai sound/pci/hda/patch_hdmi.c | 1 + 1 file changed, 1 insertion(+) commit e40bd3732cf1f62bf0fa9263411b09ee7fe30ae2 Author: Thierry Reding Date: Tue May 5 14:56:23 2015 +0200 ALSA: hda/hdmi - Add Tegra114 support Tegra114 contains the same codec as Tegra124 and can be supported using the same patch function. Signed-off-by: Thierry Reding Signed-off-by: Takashi Iwai sound/pci/hda/patch_hdmi.c | 1 + 1 file changed, 1 insertion(+) commit 1387f42abfe4bf49852ea52cd4db12044a656ee1 Author: Thierry Reding Date: Tue May 5 14:56:22 2015 +0200 ALSA: hda/hdmi - Add Tegra30 support Tegra30 contains the same codec as Tegra124 and can be supported using the same patch function. Signed-off-by: Thierry Reding Signed-off-by: Takashi Iwai sound/pci/hda/patch_hdmi.c | 1 + 1 file changed, 1 insertion(+) commit 6a464a4ccb674a61eeec296bcc9b999b9252247f Author: Thierry Reding Date: Tue May 5 14:56:21 2015 +0200 ALSA: hda/tegra - Improve error reporting When probing, provide accurate error messages to help with debugging failures. Signed-off-by: Thierry Reding Signed-off-by: Takashi Iwai sound/pci/hda/hda_tegra.c | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) commit 26e9a960b22413c6a0b8775ff43a6a42c9d30919 Author: Thierry Reding Date: Tue May 5 14:56:20 2015 +0200 ALSA: hda/hdmi - Implement Tegra-specific patch The HDMI codec on NVIDIA Tegra SoCs has a feature that doesn't exist on the MCP or GPU variants. The highest bit in the vendor-defined scratch registers can be used to trigger an interrupt in the HDMI codec, which is signalled to the HDMI driver. This can be used to pass information, such as the HDA format, to the HDMI driver so that it can reconfigure itself accordingly. While at it, change the name of the codec to Tegra124 since there are no other SoCs in the Tegra12x family. There isn't really a Tegra12x family. Signed-off-by: Thierry Reding Signed-off-by: Takashi Iwai sound/pci/hda/patch_hdmi.c | 167 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 166 insertions(+), 1 deletion(-) commit 88871dd25f64b9bf16222e829ad766fac201866a Author: Thierry Reding Date: Tue May 5 14:56:19 2015 +0200 ALSA: hda/tegra - Set CORBRP self-clear flag This is set for the MCP variants of the NVIDIA HDA controller, which the Tegra variant was derived from. This fixes the following warning at boot time: [ 2.486610] tegra-hda 70030000.hda: CORB reset timeout#1, CORBRP = 0 Signed-off-by: Thierry Reding Signed-off-by: Takashi Iwai sound/pci/hda/hda_tegra.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 977e627684df0f60bdf2a768ec4772f42fe843fc Author: Kailang Yang Date: Mon May 18 15:31:20 2015 +0800 ALSA: hda/realtek - Support Dell headset mode for ALC298 Dell create new platform with ALC298 codec. This patch will enable headset mode for ALC298/ALC3266 platform. Signed-off-by: Kailang Yang Signed-off-by: Takashi Iwai sound/pci/hda/patch_realtek.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) commit c309c467edbe006f335af5947f89636bc5473a1b Author: Takashi Iwai Date: Mon May 18 09:45:11 2015 +0200 ALSA: info: Drop kerneldoc comment from snd_info_create_entry() It's no longer a part of API but merely a local function. Signed-off-by: Takashi Iwai sound/core/info.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8e7ccb7ba3b67245e7be0cadbdd2aaf4a3ba1f40 Author: Takashi Iwai Date: Mon May 18 09:43:30 2015 +0200 ALSA: info: Move list addition to snd_info_create_entry() Just a minor refactoring, no functional changes. Signed-off-by: Takashi Iwai sound/core/info.c | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) commit e774eaa9f6069b70b5208aa50539a09f41cf7e73 Author: Borislav Petkov Date: Sun May 17 12:55:01 2015 +0200 x86/microcode/intel: Rename get_matching_sig() ... to find_matching_signature() which is exactly what it does. No functionality change. Signed-off-by: Borislav Petkov Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Quentin Casasnovas Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1431860101-14847-5-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/include/asm/microcode_intel.h | 2 +- arch/x86/kernel/cpu/microcode/intel_early.c | 2 +- arch/x86/kernel/cpu/microcode/intel_lib.c | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) commit 9e5aed83bbd95ca2dee732f56a7a278350cef807 Author: Borislav Petkov Date: Sun May 17 12:55:00 2015 +0200 x86/microcode/intel: Simplify get_matching_sig() Unclutter function, make it a bit more readable, drop local variables. No functionality change. Signed-off-by: Borislav Petkov Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Quentin Casasnovas Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1431860101-14847-4-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/microcode/intel_lib.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) commit 6b2d469f5b5dd1d39548f2e79557b9b5ffe00eb1 Author: Borislav Petkov Date: Sun May 17 12:54:59 2015 +0200 x86/microcode/intel: Simplify update_match_cpu() Drop unreadable macro, deconstruct compound conditional statement into single ones and return early if they match. Add comments. There should be no functionality change resulting from this patch. Signed-off-by: Borislav Petkov Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Quentin Casasnovas Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1431860101-14847-3-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/include/asm/microcode_intel.h | 3 --- arch/x86/kernel/cpu/microcode/intel_lib.c | 19 +++++++++++++------ 2 files changed, 13 insertions(+), 9 deletions(-) commit 8de3eafc161022dd094fa009346509c712e9c4b0 Author: Borislav Petkov Date: Sun May 17 12:54:58 2015 +0200 x86/microcode/intel: Rename get_matching_microcode ... to has_newer_microcode() as it does exactly that: checks whether binary data @mc has newer microcode patch than the applied one. Move @mc to be the first function arg too. Signed-off-by: Borislav Petkov Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Quentin Casasnovas Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1431860101-14847-2-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/include/asm/microcode_intel.h | 2 +- arch/x86/kernel/cpu/microcode/intel.c | 4 ++-- arch/x86/kernel/cpu/microcode/intel_early.c | 8 ++++---- arch/x86/kernel/cpu/microcode/intel_lib.c | 4 ++-- 4 files changed, 9 insertions(+), 9 deletions(-) commit 2471b6c80a70e80de69f5ff4c37187c3912e5874 Author: Takashi Iwai Date: Mon May 18 09:20:24 2015 +0200 ALSA: info: Register proc entries recursively, too The commit [c560a6797e3b: ALSA: core: Remove child proc file elements recursively] converted snd_card_proc_new() with the normal snd_info_*() call and removed snd_device chain for such info entries. However, it misses one point: the creation of the proc entry was managed by snd_device chain in the former code, and now it's also gone, which results in no proc files creation at all. Mea culpa. This patch makes snd_info_card_register() creating the all pending child proc entries in a shot. Also, since snd_card_register() might be called multiple times, this function is also changed to be callable multiple times. Along with the changes above, now the linked list of snd_info_entry is added at creation time instead of snd_info_register() for keeping eyes of pending info entries. Fixes: c560a6797e3b ('ALSA: core: Remove child proc file elements recursively') Reported-by: "Lu, Han" Signed-off-by: Takashi Iwai sound/core/info.c | 37 ++++++++++++++++++++++++++++++++++--- sound/core/init.c | 18 ++++++------------ 2 files changed, 40 insertions(+), 15 deletions(-) commit 90a409aad45dedc41129e0ec257b41de901b8897 Author: Takashi Iwai Date: Mon May 18 08:59:12 2015 +0200 ALSA: info: Fix leaks of child entries at snd_info_free_entry() snd_info_free_entry() releases the all children nodes as well, but due to the wrong timing of releasing the link, the children nodes may be disconnected but left unreleased. This patch fixes it by moving the link free at the right position. Also it eases list_for_each_entry() without _safe option in snd_info_disconnect() because it no longer frees the children nodes there. Fixes: c560a6797e3b ('ALSA: core: Remove child proc file elements recursively') Signed-off-by: Takashi Iwai sound/core/info.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 744b058827b3db9a4f6027522dd9c73a208c2d31 Author: Gustavo Padovan Date: Fri May 15 16:12:27 2015 -0300 drm/atomic: remove duplicated assignment of old_plane_state old_plane_state is already assigned to old_state->plane_states[i] inside for_each_plane_in_state(). Here we remove an the extra assignment. Signed-off-by: Gustavo Padovan Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_atomic_helper.c | 2 -- 1 file changed, 2 deletions(-) commit d4d4add9eacf0a3e642228a22df722f00921a184 Author: Michael Ellerman Date: Wed Apr 22 15:36:50 2015 +1000 powerpc: Little endian should depend on PPC_BOOK3S_64 The only little endian configuration we support is ppc64le, all other configurations are big endian. So we should only offer a choice of endian if we're building for 64-bit Book3S, ie. PPC_BOOK3S_64. Signed-off-by: Michael Ellerman arch/powerpc/platforms/Kconfig.cputype | 1 + 1 file changed, 1 insertion(+) commit 6921f88ba85338b0a78ef50d2be79ef3f6c6f647 Author: Jon Hunter Date: Wed May 13 12:30:46 2015 +0100 drm/dp: Fix comment in DP helper Commit 4f71d0cb76339 ("drm/dp: add a hw mutex around the transfer functions. (v2)"), renamed the functions drm_dp_aux_register_i2c_bus() and drm_dp_aux_unregister_i2c_bus() to drm_dp_aux_register() and drm_dp_aux_unregister(), respectively. However, a comment referring to the original names was not updated in the DP helper header file. Hence, correct these names. Signed-off-by: Jon Hunter Signed-off-by: Daniel Vetter include/drm/drm_dp_helper.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 6007ccb57744fdd393385b135e7b7cea9bd4bd6b Author: Maxime Ripard Date: Thu May 7 17:38:11 2015 +0200 dmaengine: xdmac: Add interleaved transfer support The XDMAC supports interleaved tranfers through its flexible descriptor configuration. Add support for that kind of transfers to the dmaengine driver. Signed-off-by: Maxime Ripard Signed-off-by: Vinod Koul drivers/dma/at_xdmac.c | 233 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 233 insertions(+) commit 0d0ee751f7f7cd7d44eeb596f3b430ed0b178e07 Author: Maxime Ripard Date: Thu May 7 17:38:10 2015 +0200 dmaengine: xdmac: Rework the chaining logic So far, we were setting the NDE bit in our descriptors through some logic to try to see if we were the last descriptor in the chain. However, that was turning out to be rather complex to get right, while this information is also available when we actually chain a new descriptor after an already existing one. Simplify this by never setting NDE unless when we actually chain a descriptor. Signed-off-by: Maxime Ripard Acked-by: Ludovic Desroches Signed-off-by: Vinod Koul drivers/dma/at_xdmac.c | 41 ++++++++++++++++++++--------------------- 1 file changed, 20 insertions(+), 21 deletions(-) commit f0816a36887b5b6acb387d8a554c5f5ed4069d33 Author: Maxime Ripard Date: Thu May 7 17:38:09 2015 +0200 dmaengine: xdmac: Add function to align width The code has some logic to compute the burst width according to the alignment of the address we're using. Move that in a function of its own to reduce code duplication. Signed-off-by: Maxime Ripard Acked-by: Ludovic Desroches Signed-off-by: Vinod Koul drivers/dma/at_xdmac.c | 63 +++++++++++++++++++++++++------------------------- 1 file changed, 32 insertions(+), 31 deletions(-) commit ee0fe35c8dcde29e7f65c34c286378750c075bf3 Author: Maxime Ripard Date: Thu May 7 17:38:08 2015 +0200 dmaengine: xdmac: Handle descriptor's view 3 registers The XDMAC DMA controller uses a concept of views to be able to handle descriptors of different sizes. So far, only the views 1 and 2 were handled by the driver. Unfortunately, we need some of the configuration fields found in the view 3 in order to support memset and interleaved transfers. Add the definition for the view 3 registers, and the needed code to handle view 3 descriptors. Signed-off-by: Maxime Ripard Acked-by: Ludovic Desroches Signed-off-by: Vinod Koul drivers/dma/at_xdmac.c | 6 ++++++ 1 file changed, 6 insertions(+) commit e1031dc1f7ba5c8724ba211062134076df292791 Author: Maxime Ripard Date: Thu May 7 17:38:07 2015 +0200 dmaengine: Support different source and destination stride In interleaved mode, we can expect to have different source and destination strides. Add support for such case to dmaengine. Signed-off-by: Maxime Ripard Signed-off-by: Vinod Koul include/linux/dmaengine.h | 8 ++++++++ 1 file changed, 8 insertions(+) commit eddca85b1a9ab451772791d03af1f016e9c4ea0b Author: Pali Rohár Date: Thu Feb 26 14:49:53 2015 +0100 crypto: omap-sham - Add support for omap3 devices omap3 support is same as omap2, just with different IO address (specified in DT) Signed-off-by: Pali Rohár Acked-by: Pavel Machek Signed-off-by: Herbert Xu drivers/crypto/omap-sham.c | 4 ++++ 1 file changed, 4 insertions(+) commit 1beb6b92e06e618d2213240bd5f8946dd89b1e5e Author: LABBE Corentin Date: Sun May 17 12:54:17 2015 +0200 crypto: octeon - use md5 IV MD5_HX instead of their raw value Since MD5 IV are now available in crypto/md5.h, use them. Signed-off-by: LABBE Corentin Signed-off-by: Herbert Xu arch/mips/cavium-octeon/crypto/octeon-md5.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit d0bb9ee316b0c1a22fc3b9e6d1fef1e4521cbf5e Author: LABBE Corentin Date: Sun May 17 12:54:16 2015 +0200 crypto: n2 - use md5 IV MD5_HX instead of their raw value Since MD5 IV are now available in crypto/md5.h, use them. Signed-off-by: LABBE Corentin Signed-off-by: Herbert Xu drivers/crypto/n2_core.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit c20fc09a7509b0a3aa24df9199fbe5ba6c8ab8b9 Author: LABBE Corentin Date: Sun May 17 12:54:15 2015 +0200 crypto: sparc/md5 - use md5 IV MD5_HX instead of their raw value Since MD5 IV are now available in crypto/md5.h, use them. Signed-off-by: LABBE Corentin Signed-off-by: Herbert Xu arch/sparc/crypto/md5_glue.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit a401521321925c02733515cd7f9f13ae4597a743 Author: LABBE Corentin Date: Sun May 17 12:54:14 2015 +0200 crypto: powerpc/md5 - use md5 IV MD5_HX instead of their raw value Since MD5 IV are now available in crypto/md5.h, use them. Signed-off-by: LABBE Corentin Signed-off-by: Herbert Xu arch/powerpc/crypto/md5-glue.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 6a185016f4997b8b5c2dcf8162b7f48c22cc12f3 Author: LABBE Corentin Date: Sun May 17 12:54:13 2015 +0200 crypto: md5 - use md5 IV MD5_HX instead of their raw value Since MD5 IV are now available in crypto/md5.h, use them. Signed-off-by: LABBE Corentin Signed-off-by: Herbert Xu crypto/md5.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit f79f1f7289b8e46763beedc9fd68f3072f1643e4 Author: LABBE Corentin Date: Sun May 17 12:54:12 2015 +0200 crypto: md5 - add MD5 initial vectors This patch simply adds the MD5 IV in the md5 header. Signed-off-by: LABBE Corentin Signed-off-by: Herbert Xu include/crypto/md5.h | 5 +++++ 1 file changed, 5 insertions(+) commit 9358eac06b8fcf9fcaf566ec825fc05e2b1acd10 Author: Dan Streetman Date: Fri May 15 11:07:33 2015 -0400 crypto: nx - remove 842-nx null checks Remove the null checks for tfm, src, slen, dst, dlen; tfm will never be null and the other fields are always expected to be set correctly. Reported-by: Dan Carpenter Signed-off-by: Dan Streetman Signed-off-by: Herbert Xu drivers/crypto/nx/nx-842-crypto.c | 6 ------ 1 file changed, 6 deletions(-) commit 3054716d4ff720378cda96dbafcd87e99164782c Author: Lars-Peter Clausen Date: Thu May 14 11:20:03 2015 +0200 ASoC: max9850: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/max9850.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1179a3685022e954b0de1df12b5711229918c4ae Author: Lars-Peter Clausen Date: Thu May 14 11:20:02 2015 +0200 ASoC: max98095: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/max98095.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) commit 29ca43bc548e1b0060c8426b98a2ce9601cd5a17 Author: Lars-Peter Clausen Date: Thu May 14 11:20:01 2015 +0200 ASoC: max98090: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level() and all other manual access to codec->dapm with snd_soc_codec_get_dapm(). Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/max98090.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) commit b0b80c8075add488ca2632393670da31b174195d Author: Lars-Peter Clausen Date: Thu May 14 11:20:00 2015 +0200 ASoC: max98090: Remove unnecessary snd_soc_dapm_sync() max98090_jack_work() doesn't modify the DAPM graph other than what's done in snd_soc_jack_report(). snd_soc_jack_report() already calls snd_soc_dapm_sync() internally, so there is no need to call it manually and can be removed. Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/max98090.c | 3 --- 1 file changed, 3 deletions(-) commit 0fbcbef98d2209fde25463f12c8b9ca07f750974 Author: Lars-Peter Clausen Date: Thu May 14 11:19:59 2015 +0200 ASoC: max98088: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/max98088.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ed3347e83cce7edf6cd9b5e530b9da11908d2f83 Author: Lars-Peter Clausen Date: Thu May 14 11:19:58 2015 +0200 ASoC: da9055: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/da9055.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a3ea8a66f64ace02f91006f06fe904be5780b7d1 Author: Lars-Peter Clausen Date: Thu May 14 11:19:57 2015 +0200 ASoC: da732x: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/da732x.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9c414c62461d09e6dd64887a3db793b5163d82c0 Author: Lars-Peter Clausen Date: Thu May 14 11:19:56 2015 +0200 ASoC: da7213: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/da7213.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 95fcb384e6738bcc37b4f7bf6d1272aba4e7d2b9 Author: Lars-Peter Clausen Date: Thu May 14 11:19:55 2015 +0200 ASoC: sta529: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/sta529.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ea85b45b11b38ecc81edd1e42d22e2f7155db57a Author: Lars-Peter Clausen Date: Thu May 14 11:19:54 2015 +0200 ASoC: sta350: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/sta350.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cc740ec84dc888144fe31b44e3af7ad467ccfc70 Author: Lars-Peter Clausen Date: Thu May 14 11:19:53 2015 +0200 ASoC: sta32x: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/sta32x.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b9fbe709de4dbe663613ebb852f35aef2467872c Author: Herbert Xu Date: Sun May 17 10:45:34 2015 +0800 netlink: Use random autobind rover Currently we use a global rover to select a port ID that is unique. This used to work consistently when it was protected with a global lock. However as we're now lockless, the global rover can exhibit pathological behaviour should multiple threads all stomp on it at the same time. Granted this will eventually resolve itself but the process is suboptimal. This patch replaces the global rover with a pseudorandom starting point to avoid this issue. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller net/netlink/af_netlink.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) commit de133464c9e70808d3e5a861294bc55940988178 Author: WANG Cong Date: Fri May 15 14:47:32 2015 -0700 netns: make nsid_lock per net The spinlock is used to protect netns_ids which is per net, so there is no need to use a global spinlock. Cc: Nicolas Dichtel Signed-off-by: Cong Wang Acked-by: Nicolas Dichtel Signed-off-by: David S. Miller include/net/net_namespace.h | 1 + net/core/net_namespace.c | 32 ++++++++++++++++---------------- 2 files changed, 17 insertions(+), 16 deletions(-) commit 4ab7f9138147efbb3efab32a51a8da646769d740 Author: Florian Fainelli Date: Fri May 15 12:38:01 2015 -0700 net: dsa: bcm_sf2: properly propagate carrier down state for MoCA MoCA interfaces require the use of an user-space daemon (mocad) which will typically use cmd->autoneg to force the link. This is causing other network manager applications not to get proper carrier down notifications because of the following sequence of events: - link down interrupt is received, link is set to 0 by the interrupt handler - fixed_link update callback runs and updates the BMSR register accordingly - PHY library polls the PHY for link status, sees the link is down, proceeds with reporting that - mocad gets notified of the link state and call phy_ethtool_sset() with cmd->autoneg set to the link status (0) - phy_start_aneg() is called at the end of phy_ethtool_sset() and sets the PHY state to PHY_FORCING Just make sure we notify the interface carrier appropriately when we detect that the link is down in our fixed_link update callback. This is made local to the bcm_sf2 driver as the PHY library does the right thing in any case. This is similar to the GENET change introduced in 54d7c01d3ed699cfc213115eaecfe1175cfaff8f ("net: bcmgenet: enable MoCA link state change detection"). Fixes: 246d7f773c13 ("net: dsa: add Broadcom SF2 switch driver") Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/dsa/bcm_sf2.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 74b80e841b4da2f83d8f548f32cfe421fde85aca Author: Jiri Pirko Date: Fri May 15 13:27:32 2015 +0200 flow_dissector: remove bogus return in tipc section Fixes: 06635a35d13d42b9 ("flow_dissect: use programable dissector in skb_flow_dissect and friends") Reported-by: Dan Carpenter Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller net/core/flow_dissector.c | 1 - 1 file changed, 1 deletion(-) commit 4b02b58b52fab385e120c4b4f0d90f5f3076352d Author: sixiao@microsoft.com Date: Fri May 15 02:33:03 2015 -0700 hv_netvsc: change member name of struct netvsc_stats Currently the struct netvsc_stats has a member s_sync of type u64_stats_sync. This definition will break kernel build as the macro netdev_alloc_pcpu_stats requires this member name to be syncp. (see netdev_alloc_pcpu_stats definition in ./include/linux/netdevice.h) This patch changes netvsc_stats's member name from s_sync to syncp to fix the build break. Signed-off-by: Simon Xiao Signed-off-by: David S. Miller drivers/net/hyperv/hyperv_net.h | 2 +- drivers/net/hyperv/netvsc_drv.c | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) commit 45d4122ca7cdb3a4b91f392605cd22cfa75f1d99 Author: Samudrala, Sridhar Date: Wed May 13 21:55:43 2015 -0700 switchdev: add support for fdb add/del/dump via switchdev_port_obj ops. - introduce port fdb obj and generic switchdev_port_fdb_add/del/dump() - use switchdev_port_fdb_add/del/dump in rocker/team/bonding ndo ops. - add support for fdb obj in switchdev_port_obj_add/del/dump() - switch rocker to implement fdb ops via switchdev_ops v3: updated to sync with named union changes. Signed-off-by: Sridhar Samudrala Signed-off-by: Scott Feldman Signed-off-by: David S. Miller drivers/net/bonding/bond_main.c | 3 + drivers/net/ethernet/rocker/rocker.c | 188 +++++++++++++++-------------------- drivers/net/team/team.c | 3 + include/net/switchdev.h | 50 ++++++++++ net/switchdev/switchdev.c | 175 ++++++++++++++++++++++++++++++++ 5 files changed, 312 insertions(+), 107 deletions(-) commit 5d48ef3e954cae2f237ff8e006322d2f3b672375 Merge: 4633c9e b66e91c Author: David S. Miller Date: Sun May 17 22:45:49 2015 -0400 Merge branch 'tcp_mem_pressure' Eric Dumazet says: ==================== tcp: better handling of memory pressure When testing commit 790ba4566c1a ("tcp: set SOCK_NOSPACE under memory pressure") using edge triggered epoll applications, I found various issues under memory pressure and thousands of active sockets. This patch series is a first round to solve these issues, in send and receive paths. There are probably other fixes needed, but with this series, my tests now all succeed. v2: fix typo in "allow one skb to be received per socket under memory pressure", as spotted by Jason Baron. ==================== Acked-by: Jason Baron Signed-off-by: David S. Miller commit b66e91ccbc34ebd5a2f90f9e1bc1597e2924a500 Author: Eric Dumazet Date: Fri May 15 12:39:30 2015 -0700 tcp: halves tcp_mem[] limits Allowing tcp to use ~19% of physical memory is way too much, and allowed bugs to be hidden. Add to this that some drivers use a full page per incoming frame, so real cost can be twice the advertized one. Reduce tcp_mem by 50 % as a first step to sanity. tcp_mem[0,1,2] defaults are now 4.68%, 6.25%, 9.37% of physical memory. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller net/ipv4/tcp.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 76dfa6082032b5c179864816fa508879421678eb Author: Eric Dumazet Date: Fri May 15 12:39:29 2015 -0700 tcp: allow one skb to be received per socket under memory pressure While testing tight tcp_mem settings, I found tcp sessions could be stuck because we do not allow even one skb to be received on them. By allowing one skb to be received, we introduce fairness and eventuallu force memory hogs to release their allocation. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller net/ipv4/tcp_input.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit 8e4d980ac21596a9b91d8e720c77ad081975a0a8 Author: Eric Dumazet Date: Fri May 15 12:39:28 2015 -0700 tcp: fix behavior for epoll edge trigger Under memory pressure, tcp_sendmsg() can fail to queue a packet while no packet is present in write queue. If we return -EAGAIN with no packet in write queue, no ACK packet will ever come to raise EPOLLOUT. We need to allow one skb per TCP socket, and make sure that tcp sockets can release their forward allocations under pressure. This is a followup to commit 790ba4566c1a ("tcp: set SOCK_NOSPACE under memory pressure") Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller net/ipv4/tcp.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) commit b8da51ebb1aa93908350f95efae73aecbc2e266c Author: Eric Dumazet Date: Fri May 15 12:39:27 2015 -0700 tcp: introduce tcp_under_memory_pressure() Introduce an optimized version of sk_under_memory_pressure() for TCP. Our intent is to use it in fast paths. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller include/net/tcp.h | 8 ++++++++ net/ipv4/tcp_input.c | 8 ++++---- net/ipv4/tcp_output.c | 4 ++-- net/ipv4/tcp_timer.c | 2 +- 4 files changed, 15 insertions(+), 7 deletions(-) commit a6c5ea4ccf0033591e6e476d7a273c0074c07aa7 Author: Eric Dumazet Date: Fri May 15 12:39:26 2015 -0700 tcp: rename sk_forced_wmem_schedule() to sk_forced_mem_schedule() We plan to use sk_forced_wmem_schedule() in input path as well, so make it non static and rename it. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller include/net/tcp.h | 2 ++ net/ipv4/tcp_output.c | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) commit 1a24e04e4b50939daa3041682b38b82c896ca438 Author: Eric Dumazet Date: Fri May 15 12:39:25 2015 -0700 net: fix sk_mem_reclaim_partial() sk_mem_reclaim_partial() goal is to ensure each socket has one SK_MEM_QUANTUM forward allocation. This is needed both for performance and better handling of memory pressure situations in follow up patches. SK_MEM_QUANTUM is currently a page, but might be reduced to 4096 bytes as some arches have 64KB pages. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller include/net/sock.h | 6 +++--- net/core/sock.c | 9 +++++---- 2 files changed, 8 insertions(+), 7 deletions(-) commit 4633c9e07b3b7d7fc262a5f59ff635c1f702af6f Author: Willem de Bruijn Date: Sun May 17 19:44:02 2015 -0400 net-packet: fix null pointer exception in rollover mode Rollover can be enabled as flag or mode. Allocate state in both cases. This solves a NULL pointer exception in fanout_demux_rollover on referencing po->rollover if using mode rollover. Also make sure that in rollover mode each silo is tried (contrary to rollover flag, where the main socket is excluded after an initial try_self). Tested: Passes tools/testing/net/psock_fanout.c, which tests both modes and flag. My previous tests were limited to bench_rollover, which only stresses the flag. The test now completes safely. it still gives an error for mode rollover, because it does not expect the new headroom (ROOM_NORMAL) requirement. I will send a separate patch to the test. Fixes: 0648ab70afe6 ("packet: rollover prepare: per-socket state") Signed-off-by: Willem de Bruijn ---- I should have run this test and caught this before submission, of course. Apologies for the oversight. Signed-off-by: David S. Miller net/packet/af_packet.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit c91d46065209bfe6124396fc409765ced0601b59 Author: Eric Dumazet Date: Fri May 15 05:48:07 2015 -0700 net: fix two sparse errors First one in __skb_checksum_validate_complete() fixes the following (and other callers) make C=2 CF=-D__CHECK_ENDIAN__ net/ipv4/tcp_ipv4.o CHECK net/ipv4/tcp_ipv4.c include/linux/skbuff.h:3052:24: warning: incorrect type in return expression (different base types) include/linux/skbuff.h:3052:24: expected restricted __sum16 include/linux/skbuff.h:3052:24: got int Second is fixing gso_make_checksum() : CHECK net/ipv4/gre_offload.c include/linux/skbuff.h:3360:14: warning: incorrect type in assignment (different base types) include/linux/skbuff.h:3360:14: expected unsigned short [unsigned] [usertype] csum include/linux/skbuff.h:3360:14: got restricted __sum16 include/linux/skbuff.h:3365:16: warning: incorrect type in return expression (different base types) include/linux/skbuff.h:3365:16: expected restricted __sum16 include/linux/skbuff.h:3365:16: got unsigned short [unsigned] [usertype] csum Fixes: 5a21232983aa7 ("net: Support for csum_bad in skbuff") Fixes: 7e2b10c1e52ca ("net: Support for multiple checksums with gso") Signed-off-by: Eric Dumazet CC: Tom Herbert Acked-by: Tom Herbert Signed-off-by: David S. Miller include/linux/skbuff.h | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit ba6d05641c8a22272a181ffbdacde139d4b986b5 Author: Eric Dumazet Date: Fri May 15 09:07:31 2015 -0700 netfilter: synproxy: fix sparse errors Fix verbose sparse errors : make C=2 CF=-D__CHECK_ENDIAN__ net/ipv4/netfilter/ipt_SYNPROXY.o Signed-off-by: Eric Dumazet Acked-by: Pablo Neira Ayuso Signed-off-by: David S. Miller net/ipv4/netfilter/ipt_SYNPROXY.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 252a8fbe819d041b29789e2035cd1760f373345f Author: Eric Dumazet Date: Fri May 15 08:58:45 2015 -0700 ipip: fix one sparse error make C=2 CF=-D__CHECK_ENDIAN__ net/ipv4/ipip.o CHECK net/ipv4/ipip.c net/ipv4/ipip.c:254:27: warning: incorrect type in assignment (different base types) net/ipv4/ipip.c:254:27: expected restricted __be32 [addressable] [usertype] o_key net/ipv4/ipip.c:254:27: got restricted __be16 [addressable] [usertype] i_flags Fixes: 3b7b514f44bf ("ipip: fix a regression in ioctl") Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller net/ipv4/ipip.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit d53a2aa3a116609c7db8799da31541c4ba5999eb Author: Eric Dumazet Date: Fri May 15 08:52:19 2015 -0700 net: fix sparse error in csum_replace4() make C=2 CF=-D__CHECK_ENDIAN__ net/ipv4/netfilter/nf_nat_l3proto_ipv4.o CHECK net/ipv4/netfilter/nf_nat_l3proto_ipv4.c include/net/checksum.h:125:64: warning: incorrect type in argument 2 (different base types) include/net/checksum.h:125:64: expected restricted __wsum [usertype] addend include/net/checksum.h:125:64: got restricted __be32 [usertype] from include/net/checksum.h:125:71: warning: incorrect type in argument 2 (different base types) include/net/checksum.h:125:71: expected restricted __wsum [usertype] addend include/net/checksum.h:125:71: got restricted __be32 [usertype] to include/net/checksum.h:125:64: warning: incorrect type in argument 2 (different base types) include/net/checksum.h:125:64: expected restricted __wsum [usertype] addend include/net/checksum.h:125:64: got restricted __be32 [usertype] from include/net/checksum.h:125:71: warning: incorrect type in argument 2 (different base types) include/net/checksum.h:125:71: expected restricted __wsum [usertype] addend include/net/checksum.h:125:71: got restricted __be32 [usertype] to Fixes: 4565af0d406b ("net: optimise csum_replace4()") Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller include/net/checksum.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 861fb1078fd4ea09b442987b3e20fced0f15eb92 Author: Joe Perches Date: Tue May 12 18:28:23 2015 -0700 netfilter: Use correct return for seq_show functions Using seq_has_overflowed doesn't produce the right return value. Either 0 or -1 is, but 0 is much more common and works well when seq allocation retries. I believe this doesn't matter as the initial allocation is always sufficient, this is just a correctness patch. Miscellanea: o Don't use strlen, use *ptr to determine if a string should be emitted like all the other tests here o Delete unnecessary return statements Signed-off-by: Joe Perches Signed-off-by: Pablo Neira Ayuso net/netfilter/nfnetlink_queue_core.c | 2 +- net/netfilter/x_tables.c | 18 ++++++------------ 2 files changed, 7 insertions(+), 13 deletions(-) commit 90bad33acbd82437cbf54eb1cefa6f6153fab927 Author: Tiberiu Breana Date: Tue May 12 18:48:42 2015 +0300 iio: accel: Add support for Sensortek STK8312 Minimal implementation of an IIO driver for the Sensortek STK8312 3-axis accelerometer. Datasheet: http://www.syi-group.com/uploadpic/data/201361817562681623.pdf Includes: - ACPI support; - read_raw for x,y,z axes; - reading and setting the scale (range) parameter. - power management Signed-off-by: Tiberiu Breana Signed-off-by: Jonathan Cameron drivers/iio/accel/Kconfig | 11 ++ drivers/iio/accel/Makefile | 2 + drivers/iio/accel/stk8312.c | 390 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 403 insertions(+) commit c16bff4844ffa678ba0c9d077e9797506924ccdd Author: Vlad Dogaru Date: Tue May 12 17:03:24 2015 +0300 iio: accel: bmc150: decouple buffer and triggers If the interrupt pins are not available, we should still be able to use the buffer with an external trigger. However, we won't be able to use the hardware fifo since we have no means of signalling when the watermark is reached. I also added a comment to indicate that the timestamps in bmc150_accel_data are only used for hardware fifo, since initially I was confused about duplication with pf->timestamp. Signed-off-by: Vlad Dogaru Reviewed-by: Octavian Purdila Reviewed-by: Srinivas Pandruvada Signed-off-by: Jonathan Cameron drivers/iio/accel/bmc150-accel.c | 55 +++++++++++++++++++++++++--------------- 1 file changed, 35 insertions(+), 20 deletions(-) commit 3f7f642b9bc46453e1435e8b67f1c4f7949be7ff Author: Martin Fuzzey Date: Wed May 13 12:26:42 2015 +0200 iio: core: add high pass filter attributes Add a high pass filter attribute for measurements (like the existing low pass) Also add both high and low pass attributes for events. Signed-off-by: Martin Fuzzey Signed-off-by: Jonathan Cameron Documentation/ABI/testing/sysfs-bus-iio | 30 ++++++++++++++++++++++++++++++ drivers/iio/industrialio-core.c | 2 ++ drivers/iio/industrialio-event.c | 2 ++ include/linux/iio/iio.h | 1 + include/linux/iio/types.h | 2 ++ 5 files changed, 37 insertions(+) commit 2a17698c0e23f3548db2c698e0da80a00814361d Author: Martin Fuzzey Date: Wed May 13 12:26:40 2015 +0200 iio: mma8452: Add access to registers via DebugFS Signed-off-by: Martin Fuzzey Signed-off-by: Jonathan Cameron drivers/iio/accel/mma8452.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) commit ecabae71319695fd1434f72840dd00898cb1c4dd Author: Martin Fuzzey Date: Wed May 13 12:26:38 2015 +0200 iio: mma8452: Initialise before activating Many of the hardware configuration registers may only be modified while the device is inactive. Currently the probe code first activates the device and then modifies the registers (eg to set the scale). This doesn't actually work but is not noticed since the scale used is the default value. While at it also issue a hardware reset command at probe time. Signed-off-by: Martin Fuzzey Signed-off-by: Jonathan Cameron drivers/iio/accel/mma8452.c | 37 +++++++++++++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 4 deletions(-) commit 00e0c8e8e865730b34f2e5f46b5d745f74346065 Author: Vlad Dogaru Date: Wed May 13 16:30:09 2015 +0300 iio: gyro: bmg160: decouple buffer and triggers Make it possible to use buffering with an external trigger, such as one based on sysfs or hrtimer. Signed-off-by: Vlad Dogaru Signed-off-by: Jonathan Cameron drivers/iio/gyro/bmg160.c | 56 +++++++++++++++++++++++++++-------------------- 1 file changed, 32 insertions(+), 24 deletions(-) commit eb2191017e3063c7269be81e1543ccd157bb1e8b Author: Vlad Dogaru Date: Wed May 13 16:30:08 2015 +0300 iio: gyro: bmg160: remove redundant field Replace the 'timestamp' field in struct bmg160_data with the identically named field in iio_poll_func and with calls to iio_get_time_ns(). The reported timestamps may be slightly different, but the advantage is that we no longer assume that the buffer of bmg160 is triggered by its own trigger. Signed-off-by: Vlad Dogaru Signed-off-by: Jonathan Cameron drivers/iio/gyro/bmg160.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) commit fcc1b2f57d89142acf6173a8e6ffb19f5f5ec876 Author: Lars-Peter Clausen Date: Wed May 13 16:04:46 2015 +0200 iio: __iio_update_buffers: Perform request_update() only for new buffers We only have to call the request_update() callback for a newly inserted buffer. The configuration of the already previously active buffers will not have changed. This also allows us to move the request_update() call to the beginning of __iio_update_buffers(), before any currently active buffers are stopped. This makes the error handling a lot easier since no changes were made to the buffer list and no rollback needs to be performed. Signed-off-by: Lars-Peter Clausen Signed-off-by: Jonathan Cameron drivers/iio/industrialio-buffer.c | 36 +++++++++++++++++++++++++----------- 1 file changed, 25 insertions(+), 11 deletions(-) commit 248be5aafc7cfe860b8f310bfc3f433e51f9fb11 Author: Lars-Peter Clausen Date: Wed May 13 16:04:45 2015 +0200 iio: __iio_update_buffers: Slightly refactor scan mask memory management Add a small helper function iio_free_scan_mask() that takes a mask and frees its memory if the scan masks for the device are dynamically allocated, otherwise does nothing. This means we don't have to open-code the same check over and over again in __iio_update_buffers. Also free compound_mask as soon a we are done using it. This constrains its usage to a specific region of the function will make further refactoring and splitting the function into smaller sub-parts more easier. Signed-off-by: Lars-Peter Clausen Signed-off-by: Jonathan Cameron drivers/iio/industrialio-buffer.c | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) commit 63223c5f5c11b832586edca28cfc7d2850bc3e44 Author: Lars-Peter Clausen Date: Wed May 13 16:04:44 2015 +0200 iio: Replace printk in __iio_update_buffers with dev_dbg While more verbose error messages are useful for debugging we should really not put those error messages into the kernel log for normal errors that are already reported to the application via the error code, when running in non-debug mode. Otherwise application authors might expect that this is part of the ABI and to get the error they should scan the kernel log. Which would be rather error prone itself since there is no direct mapping between a operation and the error message so it is impossible to find out which error message belongs to which error. Signed-off-by: Lars-Peter Clausen Signed-off-by: Jonathan Cameron drivers/iio/industrialio-buffer.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) commit b87b0c0f81e8d11c881b726b886b7502ab67d884 Author: Dmitry Eremin-Solenikov Date: Thu May 14 17:21:16 2015 +0300 iio: add m62332 DAC driver m62332 is a simple 2-channel DAC used on several Sharp Zaurus boards to control LCD voltage, backlight and sound. The driver use regulators to control the reference voltage and enabling/disabling the DAC. Signed-off-by: Dmitry Eremin-Solenikov Signed-off-by: Jonathan Cameron drivers/iio/dac/Kconfig | 10 ++ drivers/iio/dac/Makefile | 1 + drivers/iio/dac/m62332.c | 269 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 280 insertions(+) commit c06cee8d0865b7478484d9472155d8df83a10c06 Author: Kuppuswamy Sathyanarayanan Date: Fri May 15 18:23:21 2015 -0700 iio: ltr501: Add light channel support Added support to calculate lux value from visible and IR spectrum adc count values. Also added IIO_LIGHT channel to enable user read the lux value directly from device using illuminance input ABI. Signed-off-by: Kuppuswamy Sathyanarayanan Signed-off-by: Jonathan Cameron drivers/iio/light/ltr501.c | 51 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) commit c24e7daf823256c83ce3efe6fa9b9b8ab5b78480 Author: Fabio Estevam Date: Wed May 13 15:06:14 2015 -0300 iio: pressure: hid-sensor-press: Fix memory leak in probe() 'channels' is allocated via kmemdup and it is never freed in the subsequent error paths. Use 'indio_dev->channels' directly instead, so that we avoid such memory leak problem. Signed-off-by: Fabio Estevam Reviewed-by: Srinivas Pandruvada Signed-off-by: Jonathan Cameron drivers/iio/pressure/hid-sensor-press.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 2bd04628435ff57a2fefa71e7d3e5c005db5c978 Author: Fabio Estevam Date: Wed May 13 15:06:13 2015 -0300 iio: orientation: hid-sensor-rotation: Fix memory leak in probe() 'channels' is allocated via kmemdup and it is never freed in the subsequent error paths. Use 'indio_dev->channels' directly instead, so that we avoid such memory leak problem. Signed-off-by: Fabio Estevam Reviewed-by: Srinivas Pandruvada Signed-off-by: Jonathan Cameron drivers/iio/orientation/hid-sensor-rotation.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) commit 32ee56e306b09568619466efe109ab9722e89245 Author: Fabio Estevam Date: Wed May 13 15:06:12 2015 -0300 iio: orientation: hid-sensor-incl-3d: Fix memory leak in probe() 'channels' is allocated via kmemdup and it is never freed in the subsequent error paths. Use 'indio_dev->channels' directly instead, so that we avoid such memory leak problem. Signed-off-by: Fabio Estevam Reviewed-by: Srinivas Pandruvada Signed-off-by: Jonathan Cameron drivers/iio/orientation/hid-sensor-incl-3d.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 9ecdbed7903921f29adae63a3155814b453e7186 Author: Fabio Estevam Date: Wed May 13 15:06:11 2015 -0300 iio: light: hid-sensor-als.c: Fix memory leak in probe() 'channels' is allocated via kmemdup and it is never freed in the subsequent error paths. Use 'indio_dev->channels' directly instead, so that we avoid such memory leak problem. Signed-off-by: Fabio Estevam Reviewed-by: Srinivas Pandruvada Signed-off-by: Jonathan Cameron drivers/iio/light/hid-sensor-als.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit d8c9d23e29e3d758ea477adaa95e28cbf3556518 Author: Fabio Estevam Date: Wed May 13 15:06:10 2015 -0300 iio: gyro: hid-sensor-gyro-3d: Fix memory leak in probe() 'channels' is allocated via kmemdup and it is never freed in the subsequent error paths. Use 'indio_dev->channels' directly instead, so that we avoid such memory leak problem. Signed-off-by: Fabio Estevam Reviewed-by: Srinivas Pandruvada Signed-off-by: Jonathan Cameron drivers/iio/gyro/hid-sensor-gyro-3d.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) commit b136faff9bc2f4adea050ed2119c01199f9a86a5 Author: Fabio Estevam Date: Wed May 13 15:06:09 2015 -0300 iio: accel: hid-sensor-accel-3d: Fix memory leak in probe() 'channels' is allocated via kmemdup and it is never freed in the subsequent error paths. Use 'indio_dev->channels' directly instead, so that we avoid such memory leak problem. Signed-off-by: Fabio Estevam Reviewed-by: Srinivas Pandruvada Signed-off-by: Jonathan Cameron drivers/iio/accel/hid-sensor-accel-3d.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) commit cffc32975da7df2ef909299c47ff644e1357e0ac Merge: 6dc1787 adeb553 Author: Ingo Molnar Date: Sun May 17 07:58:08 2015 +0200 Merge branch 'x86/asm' into x86/apic, to resolve conflicts Signed-off-by: Ingo Molnar commit adeb5537849d9db428fe0ddc3562e5a765a347e2 Author: Denys Vlasenko Date: Fri May 15 22:39:06 2015 +0200 x86/asm/entry/64: Use shorter MOVs from segment registers The "movw %ds,%cx" instruction needs a 0x66 prefix, while "movl %ds,%ecx" does not. The difference is that latter form (on 64-bit CPUs) overwrites the entire %ecx, not only its lower half. But subsequent code doesn't depend on the value of upper half of %ecx, so we can safely use the shorter instruction. The new code is also faster than the old one - now we don't depend on the old value of %ecx, but this code fragment is not performance-critical so it does not matter much. Signed-off-by: Denys Vlasenko Cc: Alexei Starovoitov Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Frederic Weisbecker Cc: H. Peter Anvin Cc: Kees Cook Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Thomas Gleixner Cc: Will Drewry Link: http://lkml.kernel.org/r/1431722346-26585-1-git-send-email-dvlasenk@redhat.com Signed-off-by: Ingo Molnar arch/x86/kernel/entry_64.S | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit e839004b49c571e20006092cbe9da8f2c95d2e71 Author: Borislav Petkov Date: Sat May 16 18:17:59 2015 +0200 x86/asm/head*.S: Change global labels to local Make the disassembly look less confusing: -- head_64.o.before.asm ++ head_64.o.after.asm 0000000000000120 : 120: fc cld 121: 83 3c 24 02 cmpl $0x2,(%rsp) - 125: 0f 84 9d 00 00 00 je 1c8 + 125: 0f 84 9d 00 00 00 je 1c8 12b: 83 3d 00 00 00 00 02 cmpl $0x2,0x0(%rip) # 132 132: 74 7e je 1b2 134: ff 05 00 00 00 00 incl 0x0(%rip) # 13a @@ -1198,9 +1198,7 @@ Disassembly of section .init.text: 1bf: 5a pop %rdx 1c0: 59 pop %rcx 1c1: 58 pop %rax - 1c2: ff 0d 00 00 00 00 decl 0x0(%rip) # 1c8 - -00000000000001c8 : + 1c2: ff 0d 00 00 00 00 decl 0x0(%rip) # 1c8 1c8: 48 83 c4 10 add $0x10,%rsp 1cc: 48 cf iretq -- head_32.o.before.asm ++ head_32.o.after.asm 0000016c : 16c: fc cld 16d: 83 3c 24 02 cmpl $0x2,(%esp) - 171: 74 73 je 1e6 + 171: 74 73 je 1e6 173: 36 83 3d 00 00 00 00 cmpl $0x2,%ss:0x0 17a: 02 17b: 74 5a je 1d7 @@ -483,8 +483,6 @@ Disassembly of section .init.text: 1dd: 59 pop %ecx 1de: 58 pop %eax 1df: 36 ff 0d 00 00 00 00 decl %ss:0x0 - -000001e6 : 1e6: 83 c4 08 add $0x8,%esp 1e9: cf iret 1ea: 66 90 xchg %ax,%ax No functionality change. Signed-off-by: Borislav Petkov Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1431793079-11153-1-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/kernel/head_32.S | 4 ++-- arch/x86/kernel/head_64.S | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit 75d95d84888cbd0024eb62ca7e72b3f7fe67dbdd Merge: 52648e8 c0655fe Author: Ingo Molnar Date: Sun May 17 07:57:31 2015 +0200 Merge branch 'linus' into x86/asm, to resolve conflicts Conflicts: tools/testing/selftests/x86/Makefile tools/testing/selftests/x86/run_x86_tests.sh commit 52648e83c9a6b9f7fc3dd272d4d10175e93aa62a Author: Ingo Molnar Date: Sun May 17 07:56:54 2015 +0200 x86: Pack loops tightly as well Packing loops tightly (-falign-loops=1) is beneficial to code size: text data bss dec filename 12566391 1617840 1089536 15273767 vmlinux.align.16-byte 12224951 1617840 1089536 14932327 vmlinux.align.1-byte 11976567 1617840 1089536 14683943 vmlinux.align.1-byte.funcs-1-byte 11903735 1617840 1089536 14611111 vmlinux.align.1-byte.funcs-1-byte.loops-1-byte Which reduces the size of the kernel by another 0.6%, so the the total combined size reduction of the alignment-packing patches is ~5.5%. The x86 decoder bandwidth and caching arguments laid out in: be6cb02779ca ("x86: Align jump targets to 1-byte boundaries") apply to loop alignment as well. Furtermore, modern CPU uarchs have a loop cache/buffer that is a L0 cache before even any uop cache, covering a few dozen most recently executed instructions. This loop cache generally does not have the 16-byte alignment restrictions of the uop cache. Now loop alignment can still be beneficial if: - a loop is cache-hot and its surroundings are not. - if the loop is so cache hot that the instruction flow becomes x86 decoder bandwidth limited But loop alignment is harmful if: - a loop is cache-cold - a loop's surroundings are cache-hot as well - two cache-hot loops are close to each other - if the loop fits into the loop cache - if the code flow is not decoder bandwidth limited and I'd argue that the latter five scenarios are much more common in the kernel, as our hottest loops are typically: - pointer chasing: this should fit into the loop cache in most cases and is typically data cache and address generation limited - generic memory ops (memset, memcpy, etc.): these generally fit into the loop cache as well, and are likewise data cache limited. So this patch packs loop addresses tightly as well. Acked-by: Denys Vlasenko Cc: Andy Lutomirski Cc: Aswin Chandramouleeswaran Cc: Borislav Petkov Cc: Brian Gerst Cc: Davidlohr Bueso Cc: H. Peter Anvin Cc: Jason Low Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Tim Chen Link: http://lkml.kernel.org/r/20150410123017.GB19918@gmail.com Signed-off-by: Ingo Molnar arch/x86/Makefile | 3 +++ 1 file changed, 3 insertions(+) commit 58ac93e4f2e4b15beffdf0e3749b7fea3208ef66 Author: Nicholas Mc Guire Date: Fri May 15 21:05:42 2015 +0200 sched: Fix function declaration return type mismatch static code checking was unhappy with: ./kernel/sched/fair.c:162 WARNING: return of wrong type int != unsigned int get_update_sysctl_factor() is declared to return int but is currently returning an unsigned int. The first few preprocessed lines are: static int get_update_sysctl_factor(void) { unsigned int cpus = ({ int __min1 = (cpumask_weight(cpu_online_mask)); int __min2 = (8); __min1 < __min2 ? __min1: __min2; }); unsigned int factor; The type used by min_t() should be 'unsigned int' and the return type of get_update_sysctl_factor() should also be 'unsigned int' as its call-site update_sysctl() is expecting 'unsigned int' and the values utilizing: 'factor' 'sysctl_sched_min_granularity' 'sched_nr_latency' 'sysctl_sched_wakeup_granularity' ... are also all 'unsigned int', plus cpumask_weight() is also returning 'unsigned int'. So the natural type to use around here is 'unsigned int'. ( Patch was compile tested with x86_64_defconfig + CONFIG_SCHED_DEBUG=y and the changed sections in kernel/sched/fair.i were reviewed. ) Signed-off-by: Nicholas Mc Guire [ Improved the changelog a bit. ] Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1431716742-11077-1-git-send-email-hofrat@osadl.org Signed-off-by: Ingo Molnar kernel/sched/fair.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit a1c0013c71e191f0fe256db42c92a6b26909224a Author: Jacek Anaszewski Date: Fri Jan 23 16:39:57 2015 +0100 ARM: dts: add support JPEG codec for exynos3250-rinato This patch adds support jpeg for exynos3250-rinato board. Signed-off-by: Jacek Anaszewski Acked-by: Kyungmin Park Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos3250-rinato.dts | 4 ++++ 1 file changed, 4 insertions(+) commit 7a548b1f466dbfebd7dacbfaa9394f2596737ecc Author: Inha Song Date: Fri Apr 10 16:32:58 2015 +0900 ARM: dts: support simple-audio-card for exynos5420 and exynos5422-odroidxu3 Add MAX98090 audio codec, I2S interface and the sound nodes to support audio on exynos5422-odroidxu3 board. Now we can support audio using simple-audio-card DT binding. Signed-off-by: Inha Song Reviewed-by: Sylwester Nawrocki Tested-by: Markus Reichl Tested-by: Anand Moon Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos5420.dtsi | 9 +++++ arch/arm/boot/dts/exynos5422-odroidxu3.dts | 59 ++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+) commit f470b859507be65ac67fd8961b7b26a9f98e9b53 Author: Marek Szyprowski Date: Thu Mar 5 13:48:40 2015 +0100 ARM: dts: add jpeg-codec node for exynos4 and exynos4x12 This patch adds nodes for hardware JPEG codec found in exynos4210 and exynos4x12 SoCs. Signed-off-by: Marek Szyprowski Reviewed by: Javier Martinez Canillas Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos4.dtsi | 9 +++++++++ arch/arm/boot/dts/exynos4x12.dtsi | 4 ++++ 2 files changed, 13 insertions(+) commit ce9940a9a4aec5f1cec2ba8b8dc8a9bbbabd54fe Author: Krzysztof Kozlowski Date: Sat May 2 14:40:08 2015 +0900 ARM: dts: Enable S3C RTC on exynos4412-trats2 and exynos5420-arndale-octa Extend the S3C RTC node with rtc_src clock so it could be operational. The rtc_src clock is provided by MAX77686 (Trats2) or S2MPS11 (Arndale Octa). Signed-off-by: Krzysztof Kozlowski Reviewed-by: Javier Martinez Canillas Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos4.dtsi | 2 +- arch/arm/boot/dts/exynos4412-trats2.dts | 9 ++++++++- arch/arm/boot/dts/exynos5420-arndale-octa.dts | 11 +++++++---- 3 files changed, 16 insertions(+), 6 deletions(-) commit c5abf61999e337f166ee8382c11d9542514d772d Author: Krzysztof Kozlowski Date: Thu Apr 2 12:20:32 2015 +0200 ARM: dts: Use define for s3c-rtc clock id for exynos3250-monk Use a define instead of raw number as a ID for "rtc_src" clock. Signed-off-by: Krzysztof Kozlowski Reviewed-by: Javier Martinez Canillas Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos3250-monk.dts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 9f802938bf569d2502ad00a14e994411f458cc04 Author: Krzysztof Kozlowski Date: Mon Mar 30 17:15:52 2015 +0200 ARM: dts: Use define for s3c-rtc clock id for exynos3250-rinato Use a define instead of raw number as a ID for "rtc_src" clock. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos3250-rinato.dts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 062f49c460d7ea585e0279be55daa66d1b375e8c Author: Krzysztof Kozlowski Date: Sat May 2 14:33:55 2015 +0900 ARM: dts: Use s3c6410-rtc instead of exynos3250-rtc for exynos3250/4415 Mark "samsung,exynos3250-rtc" compatible as deprecated because it duplicates the "samsung,s3c6410-rtc". Use "samsung,s3c6410-rtc" on Exynos3250 and Exynos4415 boards. Signed-off-by: Krzysztof Kozlowski Reviewed-by: Chanwoo Choi Reviewed-by: Javier Martinez Canillas Signed-off-by: Kukjin Kim Documentation/devicetree/bindings/rtc/s3c-rtc.txt | 3 ++- arch/arm/boot/dts/exynos3250.dtsi | 2 +- arch/arm/boot/dts/exynos4415.dtsi | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) commit 4edf606cd633d0f6e24785231ad7396b29372ba0 Author: Markus Reichl Date: Sun May 3 18:34:29 2015 +0200 ARM: dts: add 'rtc_src' clock to rtc node for exynos5422-odroidxu3 The Exynos5422 SoC has a s3c6410 RTC where the source clock is now a mandatory property. This patch fixes probe failure of s3c-rtc on Odroid-XU3 boards. Signed-off-by: Markus Reichl Tested-by: Anand Moon Reviewed-by: Chanwoo Choi Reviewed-by: Javier Martinez Canillas Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos5422-odroidxu3.dts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit b6025b10403fdcabdfc521d41adb35775f57ea8b Author: Markus Reichl Date: Tue Mar 31 13:57:20 2015 +0200 clk: samsung: Add bindings for 32kHz clocks from s2mps11 This creates include/dt-bindings/clock/samsung,s2mps11.h with the three 32kHz clock outputs from the s2mps11 mfd. Signed-off-by: Markus Reichl Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim include/dt-bindings/clock/samsung,s2mps11.h | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) commit 1fed2252713eee81f30c7b09eb64a468bd2e7916 Author: Krzysztof Kozlowski Date: Thu Apr 2 16:15:20 2015 +0200 ARM: dts: fix pinctrl for s2mps11-irq on exynos5420-arndale-octa On Arndale Octa the S2MPS11 RTC alarm interrupt was not handled at all because of wrong configuration of interrupt and gpx3-2. 1. Interrupt is signaled by falling edge. 2. This GPIO line is hard-wired on the board to PVDD_APIO_1V8 through a resistor so pull-up/down must be disabled. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos5420-arndale-octa.dts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) commit d1ed0d21695f632f8ec7bf8588abcf6a8da2b105 Author: Tomeu Vizoso Date: Sat May 16 12:36:29 2015 +0900 ARM: dts: Add syscon property to the MIPI phy in exynos5420 Since commit e4b3d38088df ("phy: exynos-video-mipi: Fix regression by adding support for PMU regmap") the syscon property is required in samsung,s5pv210-mipi-video-phy nodes, but this DTS hadn't been updated yet. Signed-off-by: Tomeu Vizoso Reviewed-by: Javier Martinez Canillas Cc: Sylwester Nawrocki Reviewed-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos5420.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3e2186e021125cc84560ed3633df1dc6341e9f6f Author: Florian Fainelli Date: Sat May 16 10:17:56 2015 -0700 net: phy: Add state machine state transitions debug prints It can be useful to debug the PHY state machine, add dynamic debug prints of the old and new PHY devices state under a friendly format. Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/phy/phy.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) commit 5dbb4c6167229c8d4f528e8ec26699a7305000a3 Author: Zhichang Yuan Date: Fri Apr 24 17:05:09 2015 +0800 of/pci: Fix pci_address_to_pio() conversion of CPU address to I/O port 41f8bba7f555 ("of/pci: Add pci_register_io_range() and pci_pio_to_address()") added support for systems with several I/O ranges described by OF bindings. It modified pci_address_to_pio() look up the io_range for a given CPU physical address, but the conversion was wrong. Fix the conversion of address to I/O port. [bhelgaas: changelog] Fixes: 41f8bba7f555 ("of/pci: Add pci_register_io_range() and pci_pio_to_address()") Signed-off-by: Zhichang Yuan Signed-off-by: Bjorn Helgaas Acked-by: Liviu Dudau CC: stable@vger.kernel.org # v3.18+ drivers/of/address.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 12c350050538c7dc779c083b7342bfd20f74949c Author: Axel Lin Date: Fri May 15 09:15:16 2015 +0800 ASoC: wm8955: Fix setting wrong register for WM8955_K_8_0_MASK bits WM8955_K_8_0_MASK bits is controlled by WM8955_PLL_CONTROL_3 rather than WM8955_PLL_CONTROL_2. Signed-off-by: Axel Lin Acked-by: Charles Keepax Signed-off-by: Mark Brown Cc: stable@vger.kernel.org sound/soc/codecs/wm8955.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b3b10e99b73b5e079fdb9bdaa1dad43b53e330cd Author: Anatol Pomozov Date: Wed May 13 08:25:15 2015 -0700 ASoC: rt5677: Add reset-gpio dts option It allows to configure codec's RESET pin gpio Signed-off-by: Anatol Pomozov Signed-off-by: Mark Brown Documentation/devicetree/bindings/sound/rt5677.txt | 2 ++ sound/soc/codecs/rt5677.c | 32 ++++++++++++++++++++-- sound/soc/codecs/rt5677.h | 1 + 3 files changed, 33 insertions(+), 2 deletions(-) commit 01e537f73335339196be3ef2bbfe53c20a6cb200 Author: Kuppuswamy Sathyanarayanan Date: Fri May 15 16:42:56 2015 -0700 iio: ltr501: Fix proximity threshold boundary check Currently, proximity sensor boundary check is done inside the switch block but outside the case statement.Since this code will never get executed, moved the check outside the switch case statement. 867 case IIO_PROXIMITY: 868 switch (dir) { // Following line has been moved outside the switch block. 869 if (val > LTR501_PS_THRESH_MASK) 870 return -EINVAL; 871 case IIO_EV_DIR_RISING: Signed-off-by: Kuppuswamy Sathyanarayanan Signed-off-by: Jonathan Cameron drivers/iio/light/ltr501.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7d580545387b20735d31b7307aa39483526a19cd Author: Yingjoe Chen Date: Sat May 16 15:30:11 2015 +0800 ARM: dts: mt8127: correct uart instance address The instance address for uart nodes are incorrect. Correct them. Signed-off-by: Yingjoe Chen Signed-off-by: Matthias Brugger arch/arm/boot/dts/mt8127.dtsi | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 20dacb71ad283b9506ee7e01286a424999fb8309 Author: Rafael J. Wysocki Date: Sat May 16 01:55:35 2015 +0200 ACPI / PM: Rework device power management to follow ACPI 6 The ACPI 6 specification has made some changes in the device power management area. In particular: * The D3hot power state is now supposed to be always available (instead of D3cold) and D3cold is only regarded as valid if the _PR3 object is present for the given device. * The required ordering of transitions into power states deeper than D0 is now such that for a transition into state Dx the _PSx method is supposed to be executed first, if present, and the states of the power resources the device depends on are supposed to be changed after that. * It is now explicitly forbidden to transition devices from lower-power (deeper) into higher-power (shallower) power states other than D0. Those changes have been made so the specification reflects the Windows' device power management code that the vast majority of systems using ACPI is validated against. To avoid artificial differences in ACPI device power management between Windows and Linux, modify the ACPI device power management code to follow the new specification. Add comments explaining the code flow in some unclear places. This only may affect some real corner cases in which the OS behavior expected by the firmware is different from the Windows one, but that's quite unlikely. The transition ordering change affects transitions to D1 and D2 which are rarely used (if at all) and into D3hot and D3cold for devices actually having _PR3, but those are likely to be validated against Windows anyway. The other changes may affect code calling acpi_device_get_power() or acpi_device_update_power() where ACPI_STATE_D3_HOT may be returned instead of ACPI_STATE_D3_COLD (that's why the ACPI fan driver needs to be updated too) and since transitions into ACPI_STATE_D3_HOT may remove power now, it is better to avoid this one in acpi_pm_device_sleep_state() if the "no power off" PM QoS flag is set. The only existing user of acpi_device_can_poweroff() really cares about the case when _PR3 is present, so the change in that function should not cause any problems to happen too. A plus is that PCI_D3hot can be mapped to ACPI_STATE_D3_HOT now and the compatibility with older systems should be covered automatically. In any case, if any real problems result from this, it still will be better to follow the Windows' behavior (which now is reflected by the specification too) in general and handle the cases when it doesn't work via quirks. Signed-off-by: Rafael J. Wysocki drivers/acpi/device_pm.c | 97 +++++++++++++++++++++++++++++------------------- drivers/acpi/fan.c | 5 ++- drivers/acpi/power.c | 3 +- drivers/acpi/scan.c | 26 +++---------- drivers/pci/pci-acpi.c | 2 +- include/acpi/acpi_bus.h | 3 +- 6 files changed, 71 insertions(+), 65 deletions(-) commit 3174abcfea6a05aa25038156d6722b6c8876fb36 Author: Lv Zheng Date: Fri May 15 14:37:11 2015 +0800 ACPI / EC: Remove non-root-caused busy polling quirks. { Update to correct 1 patch subject in the description } We have fixed a lot of race issues in the EC driver recently. The following commit introduces MSI udelay()/msleep() quirk to MSI laptops to make EC firmware working for bug 12011 without root causing any EC driver race issues: Commit: 5423a0cb3f74c16e90683f8ee1cec6c240a9556e Subject: ACPI: EC: Add delay for slow MSI controller Commit: 34ff4dbccccce54c83b1234d39b7ad9e548a75dd Subject: ACPI: EC: Separate delays for MSI hardware The following commit extends ECDT validation quirk to MSI laptops to make EC driver locating EC registers properly for bug 12461: Commit: a5032bfdd9c80e0231a6324661e123818eb46ecd Subject: ACPI: EC: Always parse EC device This is a different quirk than the MSI udelay()/msleep() quirk. This patch keeps validating ECDT for only "Micro-Star MS-171F" as reported. The following commit extends MSI udelay()/msleep() quirk to Quanta laptops to make EC firmware working for bug 20242, there is no requirement to validate ECDT for Quanta laptops: Commit: 534bc4e3d27096e2f3fc00c14a20efd597837a4f Mon Sep 17 00:00:00 2001 Subject: ACPI EC: enable MSI workaround for Quanta laptops The following commit extends MSI udelay()/msleep() quirk to Clevo laptops to make EC firmware working for bug 77431, there is no requirement to validate ECDT for Clevo laptops: Commit: 777cb382958851c88763253fe00a26529be4c0e9 Subject: ACPI / EC: Add msi quirk for Clevo W350etq All udelay()/msleep() quirks for MSI/Quanta/Clevo seem to be the wrong fixes generated without fixing the EC driver race issues. And even if it is not wrong, the guarding can be covered by the following commits in wait polling mode: Commit: 9e295ac14d6a59180beed0735e6a504c2ee87761 Subject: ACPI / EC: Reduce ec_poll() by referencing the last register access timestamp. Commit: commit in the same series Subject: ACPI / EC: Fix and clean up register access guarding logics. The only case that is not covered is the inter-transaction guarding. And there is no evidence that we need the inter-transaction guarding upon reading the noted bug entries. So it is time to remove the quirks and let the users to try again. If there is a regression, the only thing we need to do is to restore the inter-transaction guarding for the reported platforms. Link: https://bugzilla.kernel.org/show_bug.cgi?id=12011 Link: https://bugzilla.kernel.org/show_bug.cgi?id=12461 Link: https://bugzilla.kernel.org/show_bug.cgi?id=20242 Link: https://bugzilla.kernel.org/show_bug.cgi?id=77431 Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/ec.c | 35 +++-------------------------------- 1 file changed, 3 insertions(+), 32 deletions(-) commit 15de603b04b229b5582fd148fd851801a79472cc Author: Lv Zheng Date: Fri May 15 14:16:48 2015 +0800 ACPI / EC: Add module params for polling modes. We have 2 polling modes in the EC driver: 1. busy polling: originally used for the MSI quirks. udelay() is used to perform register access guarding. 2. wait polling: normal code path uses wait_event_timeout() and it can be woken up as soon as the transaction is completed in the interrupt mode. It also contains the register acces guarding logic in case the interrupt doesn't arrive and the EC driver is about to advance the transaction in task context (the polling mode). The wait polling is useful for interrupt mode to allow other tasks to use the CPU during the wait. But for the polling mode, the busy polling takes less time than the wait polling, because if no interrupt arrives, the wait polling has to wait the minimal HZ interval. We have a new use case for using the busy polling mode. Some GPIO drivers initialize PIN configuration which cause a GPIO multiplexed EC GPE to be disabled out of the GPE register's control. Busy polling mode is useful here as it takes less time than the wait polling. But the guarding logic prevents it from responding even faster. We should spinning around the EC status rather than spinning around the nop execution lasted a determined period. This patch introduces 2 module params for the polling mode switch and the guard time, so that users can use the busy polling mode without the guarding in case the guarding is not necessary. This is an example to use the 2 module params for this purpose: acpi.ec_busy_polling acpi.ec_polling_guard=0 We've tested the patch on a test platform. The platform suffers from such kind of the GPIO PIN issue. The GPIO driver resets all PIN configuration and after that, EC interrupt cannot arrive because of the multiplexing. Then the platform suffers from a long delay carried out by the wait_event_timeout() as all further EC transactions will run in the polling mode. We switched the EC driver to use the busy polling mechanism instead of the wait timeout polling mechanism and the delay is still high: [ 44.283005] calling PNP0C0B:00+ @ 1305, parent: platform [ 44.417548] call PNP0C0B:00+ returned 0 after 131323 usecs And this patch can significantly reduce the delay: [ 44.502625] calling PNP0C0B:00+ @ 1308, parent: platform [ 44.503760] call PNP0C0B:00+ returned 0 after 1103 usecs Tested-by: Chen Yu Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/ec.c | 39 +++++++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 16 deletions(-) commit d8d031a605bff183b76611e0d18e2ca7021fb99f Author: Lv Zheng Date: Fri May 15 14:16:42 2015 +0800 ACPI / EC: Fix and clean up register access guarding logics. In the polling mode, EC driver shouldn't access the EC registers too frequently. Though this statement is concluded from the non-root caused bugs (see links below), we've maintained the register access guarding logics in the current EC driver. The guarding logics can be found here and there, makes it hard to root cause real timing issues. This patch collects the guarding logics into one single function so that all hidden logics related to this can be seen clearly. The current guarding related code also has several issues: 1. Per-transaction timestamp prevents inter-transaction guarding from being implemented in the same place. We have an inter-transaction udelay() in acpi_ec_transaction_unblocked(), this logic can be merged into ec_poll() if we can use per-device timestamp. This patch completes such merge to form a new ec_guard() function and collects all guarding related hidden logics in it. One hidden logic is: there is no inter-transaction guarding performed for non MSI quirk (wait polling mode), this patch skips inter-transaction guarding before wait_event_timeout() for the wait polling mode to reveal the hidden logic. The other hidden logic is: there is msleep() inter-transaction guarding performed when the GPE storming is observed. As after merging this commit: Commit: e1d4d90fc0313d3d58cbd7912c90f8ef24df45ff Subject: ACPI / EC: Refine command storm prevention support EC_FLAGS_COMMAND_STORM is ensured to be cleared after invoking acpi_ec_transaction_unlocked(), the msleep() guard logic will never happen now. Since no one complains such change, this logic is likely added during the old times where the EC race issues are not fixed and the bugs are false root-caused to the timing issue. This patch simply removes the out-dated logic. We can restore it by stop skipping inter-transaction guarding for wait polling mode. Two different delay values are defined for msleep() and udelay() while they are merged in this patch to 550us. 2. time_after() causes additional delay in the polling mode (can only be observed in noirq suspend/resume processes where polling mode is always used) before advance_transaction() is invoked ("wait polling" log is added before wait_event_timeout()). We can see 2 wait_event_timeout() invocations. This is because time_after() ensures a ">" validation while we only need a ">=" validation here: [ 86.739909] ACPI: Waking up from system sleep state S3 [ 86.742857] ACPI : EC: 2: Increase command [ 86.742859] ACPI : EC: ***** Command(RD_EC) started ***** [ 86.742861] ACPI : EC: ===== TASK (0) ===== [ 86.742871] ACPI : EC: EC_SC(R) = 0x20 SCI_EVT=1 BURST=0 CMD=0 IBF=0 OBF=0 [ 86.742873] ACPI : EC: EC_SC(W) = 0x80 [ 86.742876] ACPI : EC: ***** Event started ***** [ 86.742880] ACPI : EC: ~~~~~ wait polling ~~~~~ [ 86.743972] ACPI : EC: ~~~~~ wait polling ~~~~~ [ 86.747966] ACPI : EC: ===== TASK (0) ===== [ 86.747977] ACPI : EC: EC_SC(R) = 0x20 SCI_EVT=1 BURST=0 CMD=0 IBF=0 OBF=0 [ 86.747978] ACPI : EC: EC_DATA(W) = 0x06 [ 86.747981] ACPI : EC: ~~~~~ wait polling ~~~~~ [ 86.751971] ACPI : EC: ~~~~~ wait polling ~~~~~ [ 86.755969] ACPI : EC: ===== TASK (0) ===== [ 86.755991] ACPI : EC: EC_SC(R) = 0x21 SCI_EVT=1 BURST=0 CMD=0 IBF=0 OBF=1 [ 86.755993] ACPI : EC: EC_DATA(R) = 0x03 [ 86.755994] ACPI : EC: ~~~~~ wait polling ~~~~~ [ 86.755995] ACPI : EC: ***** Command(RD_EC) stopped ***** [ 86.755996] ACPI : EC: 1: Decrease command This patch corrects this by using time_before() instead in ec_guard(): [ 54.283146] ACPI: Waking up from system sleep state S3 [ 54.285414] ACPI : EC: 2: Increase command [ 54.285415] ACPI : EC: ***** Command(RD_EC) started ***** [ 54.285416] ACPI : EC: ~~~~~ wait polling ~~~~~ [ 54.285417] ACPI : EC: ===== TASK (0) ===== [ 54.285424] ACPI : EC: EC_SC(R) = 0x20 SCI_EVT=1 BURST=0 CMD=0 IBF=0 OBF=0 [ 54.285425] ACPI : EC: EC_SC(W) = 0x80 [ 54.285427] ACPI : EC: ***** Event started ***** [ 54.285429] ACPI : EC: ~~~~~ wait polling ~~~~~ [ 54.287209] ACPI : EC: ===== TASK (0) ===== [ 54.287218] ACPI : EC: EC_SC(R) = 0x20 SCI_EVT=1 BURST=0 CMD=0 IBF=0 OBF=0 [ 54.287219] ACPI : EC: EC_DATA(W) = 0x06 [ 54.287222] ACPI : EC: ~~~~~ wait polling ~~~~~ [ 54.291190] ACPI : EC: ===== TASK (0) ===== [ 54.291210] ACPI : EC: EC_SC(R) = 0x21 SCI_EVT=1 BURST=0 CMD=0 IBF=0 OBF=1 [ 54.291213] ACPI : EC: EC_DATA(R) = 0x03 [ 54.291214] ACPI : EC: ~~~~~ wait polling ~~~~~ [ 54.291215] ACPI : EC: ***** Command(RD_EC) stopped ***** [ 54.291216] ACPI : EC: 1: Decrease command After cleaning up all guarding logics, we have one single function ec_guard() collecting all old, non-root-caused, hidden logics. Then we can easily tune the logics in one place to respond to the bug reports. Except the time_before() change, all other changes do not change the behavior of the EC driver. Link: https://bugzilla.kernel.org/show_bug.cgi?id=12011 Link: https://bugzilla.kernel.org/show_bug.cgi?id=20242 Link: https://bugzilla.kernel.org/show_bug.cgi?id=77431 Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/ec.c | 82 ++++++++++++++++++++++++++++++++----------------- drivers/acpi/internal.h | 1 + 2 files changed, 55 insertions(+), 28 deletions(-) commit 373783e6e9394b0dd5050eba152f436e08577d69 Author: Lv Zheng Date: Fri May 15 14:16:34 2015 +0800 ACPI / EC: Remove irqs_disabled() check. The following commit merges polling and interrupt modes for EC driver: Commit: 2a84cb9852f52c0cd1c48bca41a8792d44ad06cc Mon Sep 17 00:00:00 2001 Subject: ACPI: EC: Merge IRQ and POLL modes The irqs_disabled() check introduced in it tries to fall into busy polling mode when the context of ec_poll() cannot sleep. Actually ec_poll() is ensured to be invoked in the contexts that can sleep (from a sysfs /sys/kernel/debug/ec/ec0/io access, or from acpi_evaluate_object(), or from acpi_ec_gpe_poller()). Without the MSI quirk, we never saw the udelay() logic invoked. Thus this check is useless and can be removed. Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/ec.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 5ab82a11e58b6af704976f5d50ce098472f8abbd Author: Lv Zheng Date: Fri May 15 14:16:27 2015 +0800 ACPI / EC: Remove storming threashold enlarging quirk. This patch removes the storming threashold enlarging quirk. After applying the following commit, we can notice that there is no no-op GPE handling invocation can be observed, thus it is unlikely that the no-op counts can exceed the storming threashold: Commit: ca37bfdfbc8d0a3ec73e4b97bb26dcfa51d515aa Subject: ACPI / EC: Fix several GPE handling issues by deploying ACPI_GPE_DISPATCH_RAW_HANDLER mode. Even when the storming happens, we have already limited its affection to the only transaction and no further transactions will be affected. This is done by this commit: Commit: e1d4d90fc0313d3d58cbd7912c90f8ef24df45ff Subject: ACPI / EC: Refine command storm prevention support So it's time to remove this quirk. Link: https://bugzilla.kernel.org/show_bug.cgi?id=45151 Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/ec.c | 15 --------------- 1 file changed, 15 deletions(-) commit 7c0b2595dabb25f96813a12940fb156134be1102 Author: Lv Zheng Date: Fri May 15 14:16:17 2015 +0800 ACPI / EC: Update acpi_ec_is_gpe_raised() with new GPE status flag. This patch updates acpi_ec_is_gpe_raised() according to the following commit: Commit: 09af8e8290deaff821ced01ea83594ee4c21e8df Subject: ACPICA: Events: Add support to return both enable/status register values for GPE and fixed event. This is actually a no-op change as both the flags are defined to a same value. Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/ec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ca8ff6ac455d6138be7228afd8590c6ddc46524f Author: Fabio Estevam Date: Fri May 15 15:55:52 2015 -0700 Input: wm831x-on - pass the IRQF_ONESHOT flag Since commit 1c6c69525b40eb76de8adf039409722015927dc3 ("genirq: Reject bogus threaded irq requests") threaded IRQs without a primary handler need to be requested with IRQF_ONESHOT, otherwise the request will fail. So pass the IRQF_ONESHOT flag in this case. The semantic patch that makes this change is available in scripts/coccinelle/misc/irqf_oneshot.cocci. Signed-off-by: Fabio Estevam Signed-off-by: Dmitry Torokhov drivers/input/misc/wm831x-on.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 4be01a2935fa3d745e023011cef3dd70e88f15f9 Author: Fabio Estevam Date: Fri May 15 15:55:42 2015 -0700 Input: twl6040-vibra - pass the IRQF_ONESHOT flag Since commit 1c6c69525b40eb76de8adf039409722015927dc3 ("genirq: Reject bogus threaded irq requests") threaded IRQs without a primary handler need to be requested with IRQF_ONESHOT, otherwise the request will fail. So pass the IRQF_ONESHOT flag in this case. The semantic patch that makes this change is available in scripts/coccinelle/misc/irqf_oneshot.cocci. Signed-off-by: Fabio Estevam Signed-off-by: Dmitry Torokhov drivers/input/misc/twl6040-vibra.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 6b36d8f6a2ef0e8d3bf52660554c476b926d2b22 Author: Fabio Estevam Date: Fri May 15 15:55:34 2015 -0700 Input: retu-pwrbutton - pass the IRQF_ONESHOT flag Since commit 1c6c69525b40eb76de8adf039409722015927dc3 ("genirq: Reject bogus threaded irq requests") threaded IRQs without a primary handler need to be requested with IRQF_ONESHOT, otherwise the request will fail. So pass the IRQF_ONESHOT flag in this case. The semantic patch that makes this change is available in scripts/coccinelle/misc/irqf_oneshot.cocci. Signed-off-by: Fabio Estevam Signed-off-by: Dmitry Torokhov drivers/input/misc/retu-pwrbutton.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 5f4eedef77307768a5ea59485aa518b991660142 Author: Fabio Estevam Date: Fri May 15 15:55:23 2015 -0700 Input: twl4030-pwrbutton - pass the IRQF_ONESHOT flag Since commit 1c6c69525b40eb76de8adf039409722015927dc3 ("genirq: Reject bogus threaded irq requests") threaded IRQs without a primary handler need to be requested with IRQF_ONESHOT, otherwise the request will fail. So pass the IRQF_ONESHOT flag in this case. The semantic patch that makes this change is available in scripts/coccinelle/misc/irqf_oneshot.cocci. Signed-off-by: Fabio Estevam Signed-off-by: Dmitry Torokhov drivers/input/misc/twl4030-pwrbutton.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 68aeee98eeb311958be4dfeb03f1da2d90a270d9 Author: Evgeniy Dushistov Date: Fri May 15 13:49:00 2015 -0700 Input: max7359_keypad - switch to using matrix_keypad_build_keymap() max7359_build_keycode() does the same thing as matrix_keypad_build_keymap(), but the latter can also handle DT bindings. Tested on beagleboard-xm. Signed-off-by: Evgeniy A. Dushistov Signed-off-by: Dmitry Torokhov drivers/input/keyboard/Kconfig | 1 + drivers/input/keyboard/max7359_keypad.c | 30 +++++++++--------------------- 2 files changed, 10 insertions(+), 21 deletions(-) commit ee3514b2256ef6aaa3b9f353af88d831dd596d09 Author: Evgeniy Dushistov Date: Fri May 15 13:47:46 2015 -0700 Input: max7359_keypad - do not set MAX7359_CFG_INTERRUPT flag In datasheet of max7359 there is the following description of this flag: 0 - INT cleared when FIFO empty, 1 - INT cleared after host read. In this mode, I2C should read FIFO until interrupt condition removed, or further INT may be lost. So, if we set this flag, we have to read FIFO until it becomes empty. But in interrupt we read FIFO just once. This lead to "keyboard" hang until reboot, if we press several keys, because of interrupt handler read just one "press" from FIFO and clear interrupt. Signed-off-by: Evgeniy A. Dushistov Signed-off-by: Dmitry Torokhov drivers/input/keyboard/max7359_keypad.c | 1 - 1 file changed, 1 deletion(-) commit 67367fd259f26d15e7e3ec15d0d8b8ab5601bbbb Author: Pekka Enberg Date: Fri May 15 13:45:40 2015 -0700 Input: evdev - use kvfree() in evdev_release() Use kvfree() instead of open-coding it. Signed-off-by: Pekka Enberg Signed-off-by: Dmitry Torokhov drivers/input/evdev.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit dca230d162e27386d2ff24438ef56c645e55bf44 Author: Alex Williamson Date: Fri May 1 13:20:13 2015 -0600 PCI: Add ACS quirks for Intel 9-series PCH root ports Intel confirms that 9-series chipset root ports provide ACS-equivalent isolation when configured via the existing Intel PCH ACS quirk setup. Signed-off-by: Alex Williamson Signed-off-by: Bjorn Helgaas Acked-by: Don Dugger drivers/pci/quirks.c | 2 ++ 1 file changed, 2 insertions(+) commit 576efe38000dc81d8140925d9725a4f4e789514a Author: Antoine Tenart Date: Tue Apr 7 16:45:06 2015 +0200 Documentation: bindings: update the berlin chip and system ctrl doc Now that the rework to have one sub-node per device in the chip and system controllers is done, their dedicated compatible can be removed. Signed-off-by: Antoine Tenart Signed-off-by: Sebastian Hesselbarth Documentation/devicetree/bindings/arm/marvell,berlin.txt | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) commit c1f86f2fded23f337bb9e5dab1b42634784bf883 Author: Antoine Tenart Date: Tue Apr 7 16:45:02 2015 +0200 Documentation: bindings: move the Berlin clock documentation The Berlin clock documentation was part of the Marvell Berlin SoC documentation because the Berlin clock configuration was inside the chip controller. With the recent rework of the chip and system controller handling (now all sub-devices of the soc and system controller nodes are registred with simple-mfd, and each device has its own sub-node), the documentation of the Berlin clock driver can be moved to the generic clock documentation directory. Signed-off-by: Antoine Tenart Acked-by: Stephen Boyd Signed-off-by: Sebastian Hesselbarth .../devicetree/bindings/arm/marvell,berlin.txt | 27 +++---------------- .../devicetree/bindings/clock/marvell,berlin.txt | 31 ++++++++++++++++++++++ 2 files changed, 35 insertions(+), 23 deletions(-) commit 66fa300e60728ddbf7f9e8291c94c6c6691b00de Author: Antoine Tenart Date: Mon Apr 27 21:39:48 2015 +0200 Documentation: bindings: move the Berlin pinctrl documentation The Berlin pinctrl documentation was part of the Marvell Berlin SoC documentation because the Berlin pinctrl configuration was inside the chip and the system controllers. With the recent rework of the chip and system controller handling (now an MFD driver registers all sub-devices of the two soc and system controller nodes and each device has its own sub-node), the documentation of the Berlin pinctrl driver can be moved to the generic pinctrl documentation directory. Signed-off-by: Antoine Tenart Signed-off-by: Sebastian Hesselbarth .../devicetree/bindings/arm/marvell,berlin.txt | 37 ------------------- .../devicetree/bindings/pinctrl/berlin,pinctrl.txt | 43 ++++++++++++++++++++++ 2 files changed, 43 insertions(+), 37 deletions(-) commit 185cff3d661ab7ad56a09005c2874a9a0b25c109 Author: Antoine Tenart Date: Mon Apr 27 21:39:48 2015 +0200 Documentation: bindings: move the Berlin reset documentation The Berlin reset documentation was part of the Marvell Berlin SoC documentation because the Berlin reset configuration was inside the chip controller. With the recent rework of the chip and system controller handling (now an MFD driver registers all sub-devices of the two soc and system controller nodes and each device has its own sub-node), the documentation of the Berlin reset driver can be moved to the generic reset documentation directory. Signed-off-by: Antoine Tenart Acked-by: Philipp Zabel Signed-off-by: Sebastian Hesselbarth .../devicetree/bindings/arm/marvell,berlin.txt | 10 ---------- .../devicetree/bindings/reset/berlin,reset.txt | 23 ++++++++++++++++++++++ 2 files changed, 23 insertions(+), 10 deletions(-) commit 7c90a5a9af6f02e04980958ef3f8d5f254364cca Author: Antoine Tenart Date: Mon Apr 27 21:39:48 2015 +0200 Documentation: bindings: update the Berlin controllers documentation We're moving from a single node for multiple devices to a node with one sub-node per sub-device, registered by simple-mfd. Update the documentation to reflect the changes. Signed-off-by: Antoine Tenart Signed-off-by: Sebastian Hesselbarth .../devicetree/bindings/arm/marvell,berlin.txt | 26 +++++++++++++--------- 1 file changed, 16 insertions(+), 10 deletions(-) commit f07b4e49d27e8c085f0021093a612034bc0c75c6 Author: Antoine Tenart Date: Mon Apr 27 21:39:47 2015 +0200 Documentation: bindings: berlin: consider our dt bindings as unstable Because the support of Marvell Berlin SoCs is still a work in progress, add a statement to explicitly consider our device tree files and bindings as unstable. Signed-off-by: Antoine Tenart Signed-off-by: Sebastian Hesselbarth Documentation/devicetree/bindings/arm/marvell,berlin.txt | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 923f83b8d2e013ffcd7bb3022ae264e38ef4c568 Author: Antoine Tenart Date: Mon Apr 27 21:39:47 2015 +0200 ARM: dts: berlin: relicense the BG2CD Google Chromecast dts under GPLv2/X11 The current GPLv2 only licensing on this dts makes it very impractical for other software components licensed under another license. In order to make it easier for them to reuse our device trees, relicense this dts under a GPLv2/X11 dual-license. Signed-off-by: Antoine Tenart Signed-off-by: Sebastian Hesselbarth arch/arm/boot/dts/berlin2cd-google-chromecast.dts | 34 +++++++++++++++++++++-- 1 file changed, 31 insertions(+), 3 deletions(-) commit 94b08521737e588ee6da8f33faf944da29e5da99 Author: Antoine Tenart Date: Mon Apr 27 21:39:47 2015 +0200 ARM: dts: berlin: relicense the berlin2cd dtsi under GPLv2/X11 The current GPLv2 only licensing on this dtsi makes it very impractical for other software components licensed under another license. In order to make it easier for them to reuse our device trees, relicense this dtsi under a GPLv2/X11 dual-license. Signed-off-by: Antoine Tenart Acked-by: Jisheng Zhang Signed-off-by: Sebastian Hesselbarth arch/arm/boot/dts/berlin2cd.dtsi | 34 +++++++++++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) commit 9746e1091f3910805dd3c2258a10e1077d612311 Author: Antoine Tenart Date: Mon Apr 27 21:39:47 2015 +0200 ARM: dts: berlin: relicense the BG2 Sony NSZ-GS7 dts under GPLv2/X11 The current GPLv2 only licensing on this dts makes it very impractical for other software components licensed under another license. In order to make it easier for them to reuse our device trees, relicense this dts under a GPLv2/X11 dual-license. Signed-off-by: Antoine Tenart Signed-off-by: Sebastian Hesselbarth arch/arm/boot/dts/berlin2-sony-nsz-gs7.dts | 34 +++++++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) commit 267f91075f73d425d3794485127f8c9df2ac9e67 Author: Antoine Tenart Date: Mon Apr 27 21:39:47 2015 +0200 ARM: dts: berlin: relicense the berlin2 dtsi under GPLv2/X11 The current GPLv2 only licensing on this dtsi makes it very impractical for other software components licensed under another license. In order to make it easier for them to reuse our device trees, relicense this dtsi under a GPLv2/X11 dual-license. Signed-off-by: Antoine Tenart Acked-by: Jisheng Zhang Signed-off-by: Sebastian Hesselbarth arch/arm/boot/dts/berlin2.dtsi | 34 +++++++++++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) commit 9098a169af9ec0e12c86453744c4cc07c2083cb3 Author: Antoine Tenart Date: Mon Apr 27 21:39:46 2015 +0200 ARM: dts: berlin: relicense the BG2Q Marvell DMP dts under GPLv2/X11 The current GPLv2 only licensing on this dts makes it very impractical for other software components licensed under another license. In order to make it easier for them to reuse our device trees, relicense this dts under a GPLv2/X11 dual-license. Signed-off-by: Antoine Tenart Acked-by: Jisheng Zhang Signed-off-by: Sebastian Hesselbarth arch/arm/boot/dts/berlin2q-marvell-dmp.dts | 34 +++++++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) commit af98945e1542ca957aa1c1fe8f1bd55a866eba51 Author: Antoine Tenart Date: Mon Apr 27 21:39:46 2015 +0200 ARM: dts: berlin: relicense the berlin2q dtsi under GPLv2/X11 The current GPLv2 only licensing on this dtsi makes it very impractical for other software components licensed under another license. In order to make it easier for them to reuse our device trees, relicense this dtsi under a GPLv2/X11 dual-license. Signed-off-by: Antoine Tenart Acked-by: Jisheng Zhang Acked-by: Alexandre Belloni Signed-off-by: Sebastian Hesselbarth arch/arm/boot/dts/berlin2q.dtsi | 34 +++++++++++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) commit 4133fc0952cbe724161b729fb4cc63a29b5bbbfe Author: Ying Xue Date: Fri May 15 12:53:21 2015 +0800 rocker: fix a neigh entry leak issue Once we get a neighbour through looking up arp cache or creating a new one in rocker_port_ipv4_resolve(), the neighbour's refcount is already taken. But as we don't put the refcount again after it's used, this makes the neighbour entry leaked. Suggested-by: Eric Dumazet Acked-by: Jiri Pirko Acked-by: Eric Dumazet Signed-off-by: Ying Xue Acked-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/rocker/rocker.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 7dfc635894d1de84145fb02b210e6dfa5f50b6cc Author: Ariel D'Alessandro Date: Tue May 12 00:00:52 2015 +0200 ARM: dts: Add DT for Hitex LPC4350 Evaluation Board Add basic support for Hitex LPC4350 Evaluation Board. Board features a LPC4350 Soc, 8 MB SDRAM, 8 MB SPI Flash, USB and Ethernet. More information can be found on: http://www.hitex.com/index.php?id=3212 Signed-off-by: Ariel D'Alessandro Signed-off-by: Joachim Eastwood Signed-off-by: Arnd Bergmann .../devicetree/bindings/vendor-prefixes.txt | 1 + arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/lpc4350-hitex-eval.dts | 45 ++++++++++++++++++++++ arch/arm/boot/dts/lpc4350.dtsi | 39 +++++++++++++++++++ 4 files changed, 86 insertions(+) commit 56bd3771e61bd5059c151ad0138c40e56688eba1 Author: Joachim Eastwood Date: Tue May 12 00:00:51 2015 +0200 ARM: dts: Add DT for Embedded Artists LPC4357 Developers Kit Adds basic support for Embedded Artists' LPC4357 Developer's Kit. Board features a LPC4357 Soc, 32 MB SDRAM, 128 MB NAND Flash, 16 MB SPI Flash, USB and Ethernet. More information can be found on: http://www.embeddedartists.com/products/kits/lpc4357_kit.php Signed-off-by: Joachim Eastwood Signed-off-by: Arnd Bergmann .../devicetree/bindings/vendor-prefixes.txt | 1 + arch/arm/boot/dts/Makefile | 2 ++ arch/arm/boot/dts/lpc4357-ea4357-devkit.dts | 41 ++++++++++++++++++++++ arch/arm/boot/dts/lpc4357.dtsi | 39 ++++++++++++++++++++ 4 files changed, 83 insertions(+) commit 804a5dd6edd763caa8912e6f17645ebc3ade96d4 Author: Joachim Eastwood Date: Tue May 12 00:00:50 2015 +0200 ARM: dts: Add base DT for NXP LPC18xx NXP LPC18xx/43xx SoCs are very similar devices and should be able to share a common base (lpc18xx.dtsi). Diffences between the devices are put in a dtsi which is specific to that device. Signed-off-by: Joachim Eastwood Signed-off-by: Arnd Bergmann arch/arm/boot/dts/lpc18xx.dtsi | 114 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) commit 02787daadbdad80c9c79487b5ef8284aff734a7b Author: Brian Norris Date: Tue May 12 17:16:50 2015 -0700 MAINTAINERS: add entry for new brcmnand/ directory Signed-off-by: Brian Norris MAINTAINERS | 6 ++++++ 1 file changed, 6 insertions(+) commit f628ece6636c2f0354a52566cafdea6d2f963b3d Author: Brian Norris Date: Tue May 12 12:13:14 2015 -0700 mtd: brcmnand: add BCM63138 support Signed-off-by: Brian Norris Reviewed-by: Florian Fainelli Tested-by: Florian Fainelli drivers/mtd/nand/brcmnand/Makefile | 1 + drivers/mtd/nand/brcmnand/bcm63138_nand.c | 111 ++++++++++++++++++++++++++++++ 2 files changed, 112 insertions(+) commit ca22f040dd145fc4d8069ce174f6eb0bc3ebd19f Author: Brian Norris Date: Tue May 12 12:12:02 2015 -0700 mtd: brcmnand: add support for Broadcom's IPROC family Signed-off-by: Brian Norris drivers/mtd/nand/brcmnand/Makefile | 3 + drivers/mtd/nand/brcmnand/iproc_nand.c | 150 +++++++++++++++++++++++++++++++++ 2 files changed, 153 insertions(+) commit c26211d37f11d5913d9803fdede6d053f918ba7b Author: Brian Norris Date: Tue May 12 12:09:28 2015 -0700 mtd: brcmnand: add extra SoC support to library There are a few small hooks required for chips like BCM63138 and the iProc family. Let's introduce those now. Signed-off-by: Brian Norris Reviewed-by: Florian Fainelli Tested-by: Florian Fainelli drivers/mtd/nand/brcmnand/brcmnand.c | 61 +++++++++++++++++++++++++++++++++--- drivers/mtd/nand/brcmnand/brcmnand.h | 15 +++++++++ 2 files changed, 71 insertions(+), 5 deletions(-) commit 3a52be8a79a6777c0595e8655b22077a1bebec81 Author: Brian Norris Date: Tue May 5 15:51:12 2015 -0700 Documentation: devicetree: brcmstb_nand: add BCM63138 and Cygnus/iProc Add notes to describe how some SoCs integrate this NAND core a little differently, and so we define extra compatibility strings and register resources/names. Signed-off-by: Brian Norris Reviewed-by: Florian Fainelli .../devicetree/bindings/mtd/brcm,brcmnand.txt | 48 ++++++++++++++++++++-- 1 file changed, 44 insertions(+), 4 deletions(-) commit ca9341d470e264327989a58ae537759f6e64e913 Author: Maxime Coquelin Date: Sat May 9 09:53:55 2015 +0200 ARM: dts: Add ARM System timer as clocksource in armv7m Tested-by: Chanwoo Choi Signed-off-by: Maxime Coquelin Signed-off-by: Arnd Bergmann arch/arm/boot/dts/armv7-m.dtsi | 6 ++++++ 1 file changed, 6 insertions(+) commit 303b4420ff1896b444017b5b0eb8252ce197797d Author: Brian Norris Date: Tue May 12 17:00:57 2015 -0700 mtd: brcmnand: add support for STB chips BCM7xxx chips are supported entirely by the library code, since they use generic irqchip interfaces and don't need any extra SoC-specific configuration. Signed-off-by: Brian Norris drivers/mtd/nand/brcmnand/Makefile | 1 + drivers/mtd/nand/brcmnand/brcmstb_nand.c | 44 ++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) commit 27c5b17cd1b10564fa36f8f51e4b4b41436ecc32 Author: Brian Norris Date: Fri Mar 6 11:38:08 2015 -0800 mtd: nand: add NAND driver "library" for Broadcom STB NAND controller This core originated in Set-Top Box chips (BCM7xxx) but is used in a variety of other Broadcom chips, including some BCM63xxx, BCM33xx, and iProc/Cygnus. It's been used only on ARM and MIPS SoCs, so restrict it to those architectures. There are multiple revisions of this core throughout the years, and almost every version broke register compatibility in some small way, but with some effort, this driver is able to support v4.0, v5.0, v6.x, v7.0, and v7.1. It's been tested on v5.0, v6.0, v6.1, v7.0, and v7.1 recently, so there hopefully are no more lurking inconsistencies. This patch adds just some library support, on which platform drivers can be built. Signed-off-by: Brian Norris Reviewed-by: Florian Fainelli Tested-by: Florian Fainelli drivers/mtd/nand/Kconfig | 8 + drivers/mtd/nand/Makefile | 1 + drivers/mtd/nand/brcmnand/Makefile | 1 + drivers/mtd/nand/brcmnand/brcmnand.c | 2195 ++++++++++++++++++++++++++++++++++ drivers/mtd/nand/brcmnand/brcmnand.h | 58 + 5 files changed, 2263 insertions(+) commit 2f15bd8c6c6e80f15c899ea84b53fa607a2f08b2 Author: Jiri Olsa Date: Fri May 15 17:54:28 2015 +0200 perf tools: Fix "Command" sort_entry's cmp and collapse function Currently the se_cmp and se_collapse use pointer comparison, which is ok for for testing equality of strings. It's not ok as comparing function for rbtree insertion, because it gives different results based on current pointer values. We saw test 32 (hists cumulation test) failing based on different environment setup. Having all sort functions straightened fix the test for us. Reported-by: Jan Stancek Signed-off-by: Jiri Olsa Cc: David Ahern Cc: Jan Stancek Cc: Namhyung Kim Cc: Paul Mackerras Cc: Peter Zijlstra Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/sort.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c1b9034db7c85428f96db4ecf77abbf02d96de71 Author: Jiri Olsa Date: Fri May 15 18:23:11 2015 +0200 perf tools: Fix dwarf-aux.c compilation on i386 Replacing %lu format strings for Dwarf_Addr type with PRIu64 as it fits for Dwarf_Addr (defined as uint64_t) type and works also on both 32/64 bits. Signed-off-by: Jiri Olsa Cc: David Ahern Cc: He Kuang Cc: Namhyung Kim Cc: Paul Mackerras Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1431706991-15646-1-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/dwarf-aux.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 7e348e0bafc70e59cf49cb0b46ae9242ce352cdf Author: Maxime Coquelin Date: Sat May 9 09:53:57 2015 +0200 ARM: configs: Add STM32 defconfig This patch adds a new config for STM32 MCUs. STM32F429 Discovery board boots successfully with this config applied. Tested-by: Chanwoo Choi Signed-off-by: Maxime Coquelin Signed-off-by: Arnd Bergmann arch/arm/configs/stm32_defconfig | 70 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) commit a203a1a26006ff1c82258cd7989fa9f9fad1fc21 Author: Jun Nie Date: Tue Apr 28 17:18:11 2015 +0800 ARM: zx: Add basic defconfig support for ZX296702 Add basic defconfig support to zx SOC, including uart, mmc and other common config Signed-off-by: Jun Nie Signed-off-by: Arnd Bergmann arch/arm/configs/zx_defconfig | 130 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 130 insertions(+) commit c72c13b9a3a1944d3b918e440ad4b21a1ea6f717 Author: Joachim Eastwood Date: Tue May 12 00:00:53 2015 +0200 ARM: lpc18xx: add kernel config Kernel configuration for NXP LPC18xx and LPC43xx devices. Signed-off-by: Joachim Eastwood Signed-off-by: Arnd Bergmann arch/arm/configs/lpc18xx_defconfig | 151 +++++++++++++++++++++++++++++++++++++ 1 file changed, 151 insertions(+) commit ee6e7879a4c149aa1d2953080fe126caf44d6709 Author: Maxime Coquelin Date: Sat May 9 09:53:58 2015 +0200 MAINTAINERS: Add entry for STM32 MCUs Add a MAINTAINER entry covering all STM32 machine and drivers files. Signed-off-by: Maxime Coquelin Signed-off-by: Arnd Bergmann MAINTAINERS | 8 ++++++++ 1 file changed, 8 insertions(+) commit 5ecc4b5352ba38d269fa4c5adc343c4097bce55f Author: Jun Nie Date: Tue Apr 28 17:18:06 2015 +0800 MAINTAINERS: add entry for ARM ZTE architecture Add entry for ZTE ARM architecture Signed-off-by: Jun Nie Signed-off-by: Arnd Bergmann MAINTAINERS | 9 +++++++++ 1 file changed, 9 insertions(+) commit 71bc724300e636d213cac2d971f35aaa6362876e Author: Jun Nie Date: Tue Apr 28 17:18:10 2015 +0800 ARM: zx: enable SMP and hotplug for zx296702 Bring up the secondary core. Enable hotplug with supporting powering off secondary core. Signed-off-by: Jun Nie Signed-off-by: Arnd Bergmann arch/arm/mach-zx/Makefile | 1 + arch/arm/mach-zx/core.h | 19 +++++ arch/arm/mach-zx/headsmp.S | 32 ++++++++ arch/arm/mach-zx/platsmp.c | 189 +++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 241 insertions(+) commit 58d0398535647e1bb03e552d2f571d1dee55398c Author: Jun Nie Date: Tue Apr 28 17:18:07 2015 +0800 ARM: zx: add low level debug support for zx296702 Use the UART0 peripheral for low level debug. Only the UART port 0 is currently supported. Signed-off-by: Jun Nie Signed-off-by: Arnd Bergmann arch/arm/Kconfig.debug | 14 ++++++++++++++ arch/arm/include/debug/pl01x.S | 7 +++++++ 2 files changed, 21 insertions(+) commit acede515b3a5997becc5736657e11f4f410a8235 Author: Jun Nie Date: Tue Apr 28 17:18:05 2015 +0800 ARM: zx: add basic support for ZTE ZX296702 Add basic code for ZTE ZX296702 platform. [arnd: removed unused zx296702_init_machine function, and changed l2c aux val to default] Signed-off-by: Jun Nie Signed-off-by: Arnd Bergmann arch/arm/Kconfig | 2 ++ arch/arm/Makefile | 1 + arch/arm/mach-zx/Kconfig | 18 ++++++++++++++++++ arch/arm/mach-zx/Makefile | 1 + arch/arm/mach-zx/zx296702.c | 25 +++++++++++++++++++++++++ 5 files changed, 47 insertions(+) commit e8d235d4d8fb8957bae5f6ed4521115203a00d8b Author: Joachim Eastwood Date: Tue May 12 00:00:47 2015 +0200 ARM: lpc18xx: add basic support for NXP LPC18xx/43xx SoCs Add support for NXP's LPC18xx (Cortex-M3) and LPC43xx (Cortex-M4) SoCs. These SoCs are NXP's high preformance MCU line and can run at clock speeds up to 180 MHz for LPC18xx and 204 MHz for LPC43xx. LPC43xx is more or less a LPC18xx with a Cortex-M4F core and a few extra peripherals. The LPC43xx series also features one or two Cortex-M0 cores that can be used to offload the main M4 core. Signed-off-by: Joachim Eastwood Reviewed-by: Ezequiel Garcia Signed-off-by: Arnd Bergmann arch/arm/Kconfig | 20 ++++++++++++++++++++ arch/arm/Kconfig.debug | 3 ++- arch/arm/Makefile | 1 + arch/arm/mach-lpc18xx/Makefile | 1 + arch/arm/mach-lpc18xx/Makefile.boot | 3 +++ arch/arm/mach-lpc18xx/board-dt.c | 22 ++++++++++++++++++++++ 6 files changed, 49 insertions(+), 1 deletion(-) commit 9b799b78372c925d3204567741e3ff8fe0cc1c7d Author: Maxime Coquelin Date: Sat May 9 09:53:54 2015 +0200 ARM: Add STM32 family machine STMicrolectronics's STM32 series is a family of Cortex-M microcontrollers. It is used in various applications, and proposes a wide range of peripherals. Tested-by: Chanwoo Choi Signed-off-by: Maxime Coquelin Signed-off-by: Arnd Bergmann Documentation/arm/stm32/overview.txt | 32 ++++++++++++++++++++++++++ Documentation/arm/stm32/stm32f429-overview.txt | 22 ++++++++++++++++++ arch/arm/Kconfig | 18 +++++++++++++++ arch/arm/Makefile | 1 + arch/arm/mach-stm32/Makefile | 1 + arch/arm/mach-stm32/Makefile.boot | 3 +++ arch/arm/mach-stm32/board-dt.c | 19 +++++++++++++++ 7 files changed, 96 insertions(+) commit df5338d9fe5d607cdbc68d8432cbfdc9a942a679 Author: Rob Herring Date: Mon May 11 17:25:20 2015 -0500 clk: mmp: add PXA1928 clock support Add initial clock support for Marvell PXA1928. The PXA1928 is a mobile SOC and is similar to other MMP/PXA series of SOCs, so a lot of the existing infrastructure is reused here. Currently the PLLs are just fixed clocks, and not all leaf clocks are implemented. Signed-off-by: Rob Herring Cc: Mike Turquette Signed-off-by: Stephen Boyd drivers/clk/mmp/Makefile | 2 + drivers/clk/mmp/clk-of-pxa1928.c | 265 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 267 insertions(+) commit 8a3d9c164152e461e5f80db65aaaa0fbfdb2eed3 Author: Rob Herring Date: Mon May 11 17:25:19 2015 -0500 dt-bindings: Add pxa1928 clock binding This adds the clock binding documentation for the Marvell PXA1928 SOC. The PXA1928 has 3 clock control blocks for different subsystems of the chip. Signed-off-by: Rob Herring Cc: Pawel Moll Cc: Mark Rutland Cc: Ian Campbell Cc: Kumar Gala Signed-off-by: Stephen Boyd .../devicetree/bindings/clock/marvell,pxa1928.txt | 21 ++++++++ include/dt-bindings/clock/marvell,pxa1928.h | 57 ++++++++++++++++++++++ 2 files changed, 78 insertions(+) commit 5b290ec2074c68b9f4f8f8789fa9b3e1782869e7 Author: Russell King Date: Fri May 15 12:03:29 2015 +0100 ARM: l2c: avoid passing auxiliary control register through enable method Avoid passing the auxiliary control register value through the enable method. In the resume path, we have to read the value stored in l2x0_saved_regs.aux_ctrl, only to have it immediately written back by l2c_enable(). We can avoid this if we have __l2c_init() save the value directly to l2x0_saved_regs.aux_ctrl before calling the specific enable method. Signed-off-by: Russell King arch/arm/mm/cache-l2x0.c | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) commit e946a8cbe4a47a7c2615ffb0d45712e72c7d0f3a Author: Russell King Date: Fri May 15 11:51:51 2015 +0100 ARM: l2c: only unlock caches if NS_LOCKDOWN bit is set Some L2C caches have a bit which allows non-secure software to control the cache lockdown. Some platforms are unable to set this bit. To avoid receiving an abort while trying to unlock the cache lines, check the state of this bit before unlocking. We do this by providing a new method in the l2c_init_data to perform the unlocking. Signed-off-by: Russell King arch/arm/mm/cache-l2x0.c | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) commit 54eac85057fdc3f1a2100963e0ab292b72fea3d6 Merge: 6eaf9d1 fc7aabf Author: David S. Miller Date: Fri May 15 15:21:44 2015 -0400 Merge branch 'amd-xgbe-next' Tom Lendacky says: ==================== amd-xgbe: AMD XGBE driver updates 2015-05-12 The following series of patches includes functional updates and changes to the driver. - Add additional statistics to be collected and reported - Use the netif_* functions for issuing some debug and informational driver messages - Rx path SKB allocation cleanup/simplification - Remove stand-alone phylib driver and incorporate function into the nic driver - Simplify device tree support while maintaining backwards compatibility - Fix the flow control negotiation logic to properly configure flow control - Remove the checking and setting of the device dma_mask field This patch series is based on net-next. Changes in v2: - Change from using the netif_msg_*/netdev_* combination for issuing messages to the more concise netif_* ==================== Signed-off-by: David S. Miller commit fc7aabf0072fb9540f275f07afaf0724fbf6a176 Author: Lendacky, Thomas Date: Thu May 14 11:44:33 2015 -0500 amd-xgbe: Remove manual check and set of dma_mask pointer The underlying device support will set the device dma_mask pointer if DMA is set up properly for the device. Remove the check for and assignment of dma_mask when it is null. Instead, just error out if the dma_set_mask_and_coherent function fails because dma_mask is null. Signed-off-by: Tom Lendacky Signed-off-by: David S. Miller drivers/net/ethernet/amd/xgbe/xgbe-main.c | 2 -- 1 file changed, 2 deletions(-) commit c1ce2f77366bb7cde153596e9406fc7727d5726c Author: Lendacky, Thomas Date: Thu May 14 11:44:27 2015 -0500 amd-xgbe: Fix flow control setting logic The flow control negotiation logic is flawed and does not properly advertise and process auto-negotiation of the flow control settings. Update the flow control support to properly set the flow control auto-negotiation settings and process the results approrpriately. Signed-off-by: Tom Lendacky Signed-off-by: David S. Miller drivers/net/ethernet/amd/xgbe/xgbe-drv.c | 2 - drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c | 29 ++++++----- drivers/net/ethernet/amd/xgbe/xgbe-mdio.c | 73 +++++++++++++++++++--------- drivers/net/ethernet/amd/xgbe/xgbe.h | 8 +-- 4 files changed, 72 insertions(+), 40 deletions(-) commit 34bfff404ca2eb2f0e60f82f301ad6abcdd22150 Author: Lendacky, Thomas Date: Thu May 14 11:44:21 2015 -0500 amd-xgbe: Support defining PHY resources in ETH device node Simplify the device tree support of the amd-xgbe driver by defining the PHY-related resources within the ethernet device node. The support provides backwards compatibility with the original way. Update the driver version to 1.0.2. Signed-off-by: Tom Lendacky Signed-off-by: David S. Miller Documentation/devicetree/bindings/net/amd-xgbe.txt | 41 +++++++--------------- drivers/net/ethernet/amd/xgbe/xgbe-main.c | 23 +++++++----- drivers/net/ethernet/amd/xgbe/xgbe.h | 2 +- 3 files changed, 29 insertions(+), 37 deletions(-) commit 7c12aa08779cfa8e0a64943bd6d823c5c110766b Author: Lendacky, Thomas Date: Thu May 14 11:44:15 2015 -0500 amd-xgbe: Move the PHY support into amd-xgbe The AMD XGBE device is intended to work with a specific integrated PHY and that PHY is not meant to be a standalone PHY for use by other devices. As such this patch removes the phylib driver and implements the PHY support in the amd-xgbe driver (the majority of the logic from the phylib driver is moved into the amd-xgbe driver). Update the driver version to 1.0.1. Signed-off-by: Tom Lendacky Signed-off-by: David S. Miller .../devicetree/bindings/net/amd-xgbe-phy.txt | 48 - Documentation/devicetree/bindings/net/amd-xgbe.txt | 51 +- MAINTAINERS | 1 - drivers/net/ethernet/amd/Kconfig | 4 +- drivers/net/ethernet/amd/xgbe/xgbe-common.h | 155 ++ drivers/net/ethernet/amd/xgbe/xgbe-dev.c | 17 - drivers/net/ethernet/amd/xgbe/xgbe-drv.c | 176 +- drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c | 50 +- drivers/net/ethernet/amd/xgbe/xgbe-main.c | 360 +++- drivers/net/ethernet/amd/xgbe/xgbe-mdio.c | 1165 ++++++++++-- drivers/net/ethernet/amd/xgbe/xgbe.h | 205 ++- drivers/net/phy/Kconfig | 7 - drivers/net/phy/Makefile | 1 - drivers/net/phy/amd-xgbe-phy.c | 1862 -------------------- 14 files changed, 1828 insertions(+), 2274 deletions(-) commit 7d9ca345b50881097eeac9d88a2899dd5e150927 Author: Lendacky, Thomas Date: Thu May 14 11:44:09 2015 -0500 amd-xgbe: Rework the Rx path SKB allocation Rework the SKB allocation so that all of the buffers of the first descriptor are handled in the SKB allocation routine. After copying the data in the header buffer (which can be just the header if split header processing succeeded for header plus data if split header processing did not succeed) into the SKB, check for remaining data in the receive buffer. If there is data remaining in the receive buffer, add that as a frag to the SKB. Once an SKB has been allocated, all other descriptors are added as frags to the SKB. Signed-off-by: Tom Lendacky Signed-off-by: David S. Miller drivers/net/ethernet/amd/xgbe/xgbe-desc.c | 2 - drivers/net/ethernet/amd/xgbe/xgbe-drv.c | 66 +++++++++++++++++-------------- drivers/net/ethernet/amd/xgbe/xgbe.h | 2 - 3 files changed, 37 insertions(+), 33 deletions(-) commit 34bf65dfa34369d283582cfff2ec916f62043043 Author: Lendacky, Thomas Date: Thu May 14 11:44:03 2015 -0500 amd-xgbe: Add netif_* message support to the driver Add support for the network interface message level settings for determining whether to issue some of the driver messages. Make use of the netif_* interface where appropriate. Signed-off-by: Tom Lendacky Signed-off-by: David S. Miller drivers/net/ethernet/amd/xgbe/xgbe-dcb.c | 17 +++-- drivers/net/ethernet/amd/xgbe/xgbe-desc.c | 33 ++++++---- drivers/net/ethernet/amd/xgbe/xgbe-dev.c | 70 ++++++++++++--------- drivers/net/ethernet/amd/xgbe/xgbe-drv.c | 101 +++++++++++++++++------------- drivers/net/ethernet/amd/xgbe/xgbe-main.c | 15 ++++- drivers/net/ethernet/amd/xgbe/xgbe-mdio.c | 83 ++++++++++++------------ drivers/net/ethernet/amd/xgbe/xgbe.h | 23 ++----- 7 files changed, 191 insertions(+), 151 deletions(-) commit 5452b2dfe685ba6774ceca19ec1df1fa499702fb Author: Lendacky, Thomas Date: Thu May 14 11:43:57 2015 -0500 amd-xgbe: Add additional stats to be reported via ethtool Add additional/extended statistics beyond what is provided by the hardware to be reported via ethtool. The new stats focus on the calls into ndo_start_xmit and the napi_poll routine. Signed-off-by: Tom Lendacky Signed-off-by: David S. Miller drivers/net/ethernet/amd/xgbe/xgbe-dev.c | 12 +++++++++--- drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c | 8 ++++++++ drivers/net/ethernet/amd/xgbe/xgbe.h | 6 ++++++ 3 files changed, 23 insertions(+), 3 deletions(-) commit f812d3045c2385ac16237e68b156859c4005526e Author: Arnaldo Carvalho de Melo Date: Fri May 15 16:12:20 2015 -0300 perf cgroup: Use atomic.h for refcounting Now that we have atomic.h, we should convert all of the existing refcounts to use it. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-t3v2uma5digcj2tpkrs3m84u@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/cgroup.c | 10 +++------- tools/perf/util/cgroup.h | 4 +++- 2 files changed, 6 insertions(+), 8 deletions(-) commit 7143849a5d6a5c623d81790d92f0033507c5b14f Author: Arnaldo Carvalho de Melo Date: Fri May 15 15:45:16 2015 -0300 perf evlist: Use atomic.h for the perf_mmap refcount Now that we have atomic.h, we should convert all of the existing refcounts to use it. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-qhpv2etncj3hfofgj1aitkyv@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/evlist.c | 12 ++++++------ tools/perf/util/evlist.h | 3 ++- 2 files changed, 8 insertions(+), 7 deletions(-) commit 59a51c1dc9fbb3fb4af928b852d7b35df83edd74 Author: Arnaldo Carvalho de Melo Date: Fri May 15 15:32:55 2015 -0300 perf machine: Stop accessing atomic_t::counter directly Use atomic_read(&counter) instead. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-k3hvfvpaut8wp02lzq27muhb@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/machine.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 848cbd2562bb85953884be72b3bdbee0b2f32474 Author: Arnaldo Carvalho de Melo Date: Fri May 15 15:20:44 2015 -0300 perf tools: Use atomic.h for the map_groups refcount Now that we have atomic.h, we should convert all of the existing refcounts to use it. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-onm5u3pioba1hqqhjs8on03e@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/thread-mg-share.c | 12 ++++++------ tools/perf/util/map.c | 4 ++-- tools/perf/util/map.h | 6 ++++-- 3 files changed, 12 insertions(+), 10 deletions(-) commit 55917a21d0cc012bb6073bb05bb768fd51d8e237 Author: Pablo Neira Ayuso Date: Thu May 14 14:57:23 2015 +0200 netfilter: x_tables: add context to know if extension runs from nft_compat Currently, we have four xtables extensions that cannot be used from the xt over nft compat layer. The problem is that they need real access to the full blown xt_entry to validate that the rule comes with the right dependencies. This check was introduced to overcome the lack of sufficient userspace dependency validation in iptables. To resolve this problem, this patch introduces a new field to the xt_tgchk_param structure that tell us if the extension is run from nft_compat context. The three affected extensions are: 1) CLUSTERIP, this target has been superseded by xt_cluster. So just bail out by returning -EINVAL. 2) TCPMSS. Relax the checking when used from nft_compat. If used with the wrong configuration, it will corrupt !syn packets by adding TCP MSS option. 3) ebt_stp. Relax the check to make sure it uses the reserved destination MAC address for STP. Signed-off-by: Pablo Neira Ayuso Tested-by: Arturo Borrero Gonzalez include/linux/netfilter/x_tables.h | 2 ++ net/bridge/netfilter/ebt_stp.c | 6 ++++-- net/ipv4/netfilter/ipt_CLUSTERIP.c | 5 +++++ net/netfilter/nft_compat.c | 2 ++ net/netfilter/xt_TCPMSS.c | 6 ++++++ 5 files changed, 19 insertions(+), 2 deletions(-) commit 13696e0a735d0ae2d1fc16ff7e607aafdc5896a6 Author: Masanari Iida Date: Sat May 16 02:16:43 2015 +0900 Doc: Fix description of nomce in kernel-parameters.txt Description of nomce tells opposite. Signed-off-by: Masanari Iida Signed-off-by: Jonathan Corbet Documentation/kernel-parameters.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2885c3b2a3da7902314fa1d0a5b603eeea7c7302 Author: Chanwoo Choi Date: Mon Apr 27 18:29:52 2015 +0900 clk: Show correct information when fail to set clock rate This patch shows the correct information for debugging when fail to set clock rate because original error message shows the error value instead of current clock rate. Cc: Mike Turquette Signed-off-by: Chanwoo Choi Acked-by: Sylwester Nawrocki Signed-off-by: Stephen Boyd drivers/clk/clk-conf.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 6eaf9d1892e27ee4c661c61fbc3e90281370b358 Merge: 7eafd9b 50649ab Author: David S. Miller Date: Fri May 15 12:44:23 2015 -0400 Merge branch 'stmmac-platform-glue' Joachim Eastwood says: ==================== convert stmmac glue layers into platform drivers This patch set aims to convert the current dwmac glue layers into proper platform drivers as request by Arnd[1]. These changes start from patch 3 and onwards. Overview: Platform driver functions like probe and remove are exported from the stmmac platform and then used in subsequent glue later conversions. The conversion involes adding the platform driver boiler plate code and adding it to the build system. The last patch removes the driver from the stmmac platform code thus making it into a library for common platform driver functions. The two first patches adds glue layer for my platform. I chose to first add old style glue layer and then convert it. The churn this creates is just 3 lines. I would be very nice if people could test this patch set on their respective platform. My testing has been limited to compiling and testing on my (LPC18xx) platform. Thanks! Next I will look into cleaning up the stmmac platform code. [1] http://marc.info/?l=linux-arm-kernel&m=143059524606459&w=2 ==================== Tested-by: Chen-Yu Tsai Tested-by: Dinh Nguyen Signed-off-by: David S. Miller commit 50649ab14982a321f116ad11bb6202cb23e7557d Author: Joachim Eastwood Date: Thu May 14 12:11:06 2015 +0200 stmmac: drop driver from stmmac platform code The dwmac-generic replaces the driver inside the stmmac platform code. This turns stmmac platform into a library used by drivers for common platform driver functions. Signed-off-by: Joachim Eastwood Signed-off-by: David S. Miller .../net/ethernet/stmicro/stmmac/dwmac-generic.c | 4 +++- .../net/ethernet/stmicro/stmmac/stmmac_platform.c | 22 ---------------------- 2 files changed, 3 insertions(+), 23 deletions(-) commit 4198b7db47b29a4fff8f77ccc94ce0208084f3fb Author: Joachim Eastwood Date: Thu May 14 12:11:05 2015 +0200 stmmac: convert dwmac-sunxi to platform driver Convert platform glue layer into a proper platform driver and add it to the build system. Signed-off-by: Joachim Eastwood Signed-off-by: David S. Miller drivers/net/ethernet/stmicro/stmmac/Kconfig | 10 +++++++++ drivers/net/ethernet/stmicro/stmmac/Makefile | 3 ++- drivers/net/ethernet/stmicro/stmmac/dwmac-sunxi.c | 25 +++++++++++++++++++++- .../net/ethernet/stmicro/stmmac/stmmac_platform.c | 1 - .../net/ethernet/stmicro/stmmac/stmmac_platform.h | 2 -- 5 files changed, 36 insertions(+), 5 deletions(-) commit 2a3217988e1597335e1fd5a9d1e3c67c370cfc0f Author: Joachim Eastwood Date: Thu May 14 12:11:04 2015 +0200 stmmac: convert dwmac-sti to platform driver Convert platform glue layer into a proper platform driver and add it to the build system. Signed-off-by: Joachim Eastwood Signed-off-by: David S. Miller drivers/net/ethernet/stmicro/stmmac/Kconfig | 12 +++++++++ drivers/net/ethernet/stmicro/stmmac/Makefile | 2 +- drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c | 29 ++++++++++++++++++++-- .../net/ethernet/stmicro/stmmac/stmmac_platform.c | 4 --- .../net/ethernet/stmicro/stmmac/stmmac_platform.h | 2 -- 5 files changed, 40 insertions(+), 9 deletions(-) commit c7c52ae74f0bd3ae78d7db7898b52de4282b094c Author: Joachim Eastwood Date: Thu May 14 12:11:03 2015 +0200 stmmac: convert dwmac-socfpga to platform driver Convert platform glue layer into a proper platform driver and add it to the build system. Signed-off-by: Joachim Eastwood Signed-off-by: David S. Miller drivers/net/ethernet/stmicro/stmmac/Kconfig | 12 ++++++++++++ drivers/net/ethernet/stmicro/stmmac/Makefile | 3 ++- drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c | 21 ++++++++++++++++++++- .../net/ethernet/stmicro/stmmac/stmmac_platform.c | 1 - .../net/ethernet/stmicro/stmmac/stmmac_platform.h | 1 - 5 files changed, 34 insertions(+), 4 deletions(-) commit e0fb4013c2f53cb67190366c4af8714f9c3d43a5 Author: Joachim Eastwood Date: Thu May 14 12:11:02 2015 +0200 stmmac: convert dwmac-rk to platform driver Convert platform glue layer into a proper platform driver and add it to the build system. Signed-off-by: Joachim Eastwood Signed-off-by: David S. Miller drivers/net/ethernet/stmicro/stmmac/Kconfig | 11 +++++++++ drivers/net/ethernet/stmicro/stmmac/Makefile | 3 ++- drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c | 27 +++++++++++++++++++++- .../net/ethernet/stmicro/stmmac/stmmac_platform.c | 1 - .../net/ethernet/stmicro/stmmac/stmmac_platform.h | 1 - 5 files changed, 39 insertions(+), 4 deletions(-) commit 40e6b0ba9183ae9fdab38e3e9fa852374aa3b6c5 Author: Joachim Eastwood Date: Thu May 14 12:11:01 2015 +0200 stmmac: convert dwmac-meson to platform driver Convert platform glue layer into a proper platform driver and add it to the build system. Signed-off-by: Joachim Eastwood Signed-off-by: David S. Miller drivers/net/ethernet/stmicro/stmmac/Kconfig | 11 ++++++++++ drivers/net/ethernet/stmicro/stmmac/Makefile | 3 ++- drivers/net/ethernet/stmicro/stmmac/dwmac-meson.c | 24 +++++++++++++++++++++- .../net/ethernet/stmicro/stmmac/stmmac_platform.c | 1 - .../net/ethernet/stmicro/stmmac/stmmac_platform.h | 1 - 5 files changed, 36 insertions(+), 4 deletions(-) commit 69bdd2d40d1e5fd9f7b92d39d129a0d057daf5fd Author: Joachim Eastwood Date: Thu May 14 12:11:00 2015 +0200 stmmac: convert dwmac-lpc18xx to a platform driver Convert platform glue layer into a proper platform driver and add it to the build system. Signed-off-by: Joachim Eastwood Signed-off-by: David S. Miller drivers/net/ethernet/stmicro/stmmac/Kconfig | 8 +++++++ drivers/net/ethernet/stmicro/stmmac/Makefile | 2 +- .../net/ethernet/stmicro/stmmac/dwmac-lpc18xx.c | 27 +++++++++++++++++++++- .../net/ethernet/stmicro/stmmac/stmmac_platform.c | 1 - .../net/ethernet/stmicro/stmmac/stmmac_platform.h | 1 - 5 files changed, 35 insertions(+), 4 deletions(-) commit ba25020e2725308562d60f3d0247218b07a49b9f Author: Joachim Eastwood Date: Thu May 14 12:10:59 2015 +0200 stmmac: add a generic dwmac driver Create a new driver around the generic device tree match strings in the stmmac platform code. This driver is intended to be used by all platforms that doesn't require any platform specific code to function or is using platform data. Signed-off-by: Joachim Eastwood Signed-off-by: David S. Miller drivers/net/ethernet/stmicro/stmmac/Kconfig | 12 +++++++ drivers/net/ethernet/stmicro/stmmac/Makefile | 4 ++- .../net/ethernet/stmicro/stmmac/dwmac-generic.c | 39 ++++++++++++++++++++++ .../net/ethernet/stmicro/stmmac/stmmac_platform.c | 5 --- 4 files changed, 54 insertions(+), 6 deletions(-) commit 902b1607f4fd184de4d1518d19d377528207861e Author: Joachim Eastwood Date: Thu May 14 12:10:58 2015 +0200 stmmac: prepare stmmac platform to support stand alone drivers Prepare the stmmac platform code to support standalone drivers by exporting the need functions and having of_match_device use the match table reference already present in the driver struct. This will allow us to reuse the platform driver functions from this code easily in other stand alone platform drivers. Signed-off-by: Joachim Eastwood Signed-off-by: David S. Miller drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c | 14 +++++++++----- drivers/net/ethernet/stmicro/stmmac/stmmac_platform.h | 4 ++++ 2 files changed, 13 insertions(+), 5 deletions(-) commit f8cff12b6fb62ef124bc1e06502d987c6da71731 Author: Joachim Eastwood Date: Thu May 14 12:10:57 2015 +0200 doc: dt: add documentation for nxp,lpc1850-dwmac Add device tree binding documentation for nxp,lpc1850-dwmac. Signed-off-by: Joachim Eastwood Signed-off-by: David S. Miller .../devicetree/bindings/net/nxp,lpc1850-dwmac.txt | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit d58617ea66b1135fc6efcb3036a7a23471c96eaa Author: Joachim Eastwood Date: Thu May 14 12:10:56 2015 +0200 stmmac: add dwmac glue for NXP 18xx/43xx family Add support for Ethernet on NXP LPC18xx and LPC43xx using the dwmac driver. This glue is required to setup phy interface mode, MII or RMII, on the SoC. Signed-off-by: Joachim Eastwood Signed-off-by: David S. Miller drivers/net/ethernet/stmicro/stmmac/Makefile | 3 +- .../net/ethernet/stmicro/stmmac/dwmac-lpc18xx.c | 74 ++++++++++++++++++++++ .../net/ethernet/stmicro/stmmac/stmmac_platform.c | 1 + .../net/ethernet/stmicro/stmmac/stmmac_platform.h | 1 + 4 files changed, 78 insertions(+), 1 deletion(-) commit b8faaba4a655d58b67ba28598c22a48aa844b489 Author: Lars-Peter Clausen Date: Fri May 15 12:41:30 2015 +0200 ASoC: Drop unnecessary bias level check on resume The suspended flag will only be set if the CODEC bias level was either STANDBY or OFF. This means we don't need to check for that on resume since the condition will always be true. Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/soc-core.c | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) commit d9dd37305e9d230856e851ea720eaba68d92a252 Author: Lars-Peter Clausen Date: Fri May 15 12:33:00 2015 +0200 ASoC: twl6040: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm with snd_soc_codec_get_dapm(). Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/twl6040.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1682c8e5708ecbd9409123877784e82ca9557588 Author: Lars-Peter Clausen Date: Fri May 15 12:32:59 2015 +0200 ASoC: twl4030: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/twl4030.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 37e931c17926c4a5268afa134be9d4a09c230e06 Author: Lars-Peter Clausen Date: Fri May 15 12:32:58 2015 +0200 ASoC: tlv320dac33: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/tlv320dac33.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 650a18acacf431cf979a49c904028afe636de6b9 Author: Lars-Peter Clausen Date: Fri May 15 12:32:57 2015 +0200 ASoC: tlv320aic3x: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level() and replace all other manual access to codec->dapm with snd_soc_codec_get_dapm(). Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/tlv320aic3x.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 378d1e432d9b1504d7ced936837e66dd7d246d45 Author: Lars-Peter Clausen Date: Fri May 15 12:32:56 2015 +0200 ASoC: tlv320aix31xx: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level() and replace all other manual access to codec->dapm with snd_soc_codec_get_dapm(). Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/tlv320aic31xx.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit b6070c11cdaa31ecc5273bdfb8d2239026f10a90 Author: Lars-Peter Clausen Date: Fri May 15 12:32:55 2015 +0200 ASoC: pcm512x: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/pcm512x.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit edc20cadcccc19953fe0ab117d854af04f4d9c8c Author: Lars-Peter Clausen Date: Fri May 15 12:32:54 2015 +0200 ASoC: lm49453: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/lm49453.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 22310d320e352c5dd08b40bcabaefa62e71ed652 Author: Lars-Peter Clausen Date: Fri May 15 12:32:53 2015 +0200 ASoC: sn95031: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). While we are at it also replace the if(x == A) ... else if(x == B) ... construct with a switch-case. Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/sn95031.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) commit 7448adca9361b4ad97614a08c487e215f1990ad7 Merge: e3abcb2 6422711 Author: Arnd Bergmann Date: Fri May 15 17:40:15 2015 +0200 Merge tag 'pxa-for-4.2' of https://github.com/rjarzmik/linux into next/soc Merge "pxa changes for v4.2 cycle" from Robert Jarzmik: The main and only feature is the conversion of all pxa variants to clock framework. This encompasses pxa25x, pxa27x and pxa3xx, for all boards. This should be a disruptive cycle in the normally quiet pxa history, as the change can break any platform, and the test were performed on only 4 boards (lubbock, zylonite, mioa701, cm-x300). * tag 'pxa-for-4.2' of https://github.com/rjarzmik/linux: ARM: pxa: Constify irq_domain_ops ARM: pxa: Transition pxa25x, pxa27x, pxa3xx to clk framework ARM: pxa: convert eseries to clock framework ARM: pxa: Transition pxa25x and pxa27x to clk framework ARM: pxa: pxa27x skip default device initialization with DT clk: pxa: add missing pxa27x clocks for Irda and sa1100-rtc ARM: pxa: move gpio11 clock to board files ARM: pxa: change clocks init sequence commit e3abcb25d2aec8411ec1b197712b1085df5bfee3 Merge: 2516a93 33a9f5b Author: Arnd Bergmann Date: Fri May 15 17:38:05 2015 +0200 Merge tag 'rpi-soc-for-armsoc-v4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/rpi/linux-rpi into next/soc Merge "RaspberryPi SoC (mach) changes due for v4.2" from Lee Jones: * tag 'rpi-soc-for-armsoc-v4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/rpi/linux-rpi: ARM: bcm2835: Move the restart/power_off handling to the WDT driver ARM: bcm2835: Drop the init_irq() hook ARM: bcm2835: Skip doing our own iotable_init() initialization commit ef8d00abca1a6de4f2d896a9cdcee4ee5b04373b Merge: e355eb0a2 9003755 Author: Arnd Bergmann Date: Fri May 15 17:36:53 2015 +0200 Merge tag 'renesas-defconfig-for-v4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/defconfig Merge "Renesas ARM Based SoC Defconfig Updates for v4.2" from Simon Horman: * Replace legacy-only USB_RCAR_GEN2_PHY with DT-only PHY_RCAR_GEN2 * tag 'renesas-defconfig-for-v4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: ARM: shmobile: defconfig: Replace USB_RCAR_GEN2_PHY by PHY_RCAR_GEN2 commit e774ad683f425a51f87711164ea166d9dcc41477 Author: Lukasz Pawelczyk Date: Mon Apr 20 17:12:54 2015 +0200 smack: pass error code through pointers This patch makes the following functions to use ERR_PTR() and related macros to pass the appropriate error code through returned pointers: smk_parse_smack() smk_import_entry() smk_fetch() It also makes all the other functions that use them to handle the error cases properly. This ways correct error codes from places where they happened can be propagated to the user space if necessary. Doing this it fixes a bug in onlycap and unconfined files handling. Previously their content was cleared on any error from smk_import_entry/smk_parse_smack, be it EINVAL (as originally intended) or ENOMEM. Right now it only reacts on EINVAL passing other codes properly to userspace. Comments have been updated accordingly. Signed-off-by: Lukasz Pawelczyk security/smack/smack_access.c | 27 ++++++---- security/smack/smack_lsm.c | 93 +++++++++++++++++++-------------- security/smack/smackfs.c | 116 +++++++++++++++++++++++++----------------- 3 files changed, 139 insertions(+), 97 deletions(-) commit 9777582e8d604f69ce3a93805065e451487e26b4 Author: Seung-Woo Kim Date: Fri Apr 17 15:25:04 2015 +0900 Smack: ignore private inode for smack_file_receive The dmabuf fd can be shared between processes via unix domain socket. The file of dmabuf fd is came from anon_inode. The inode has no set and get xattr operations, so it can not be shared between processes with smack. This patch fixes just to ignore private inode including anon_inode for smack_file_receive. Signed-off-by: Seung-Woo Kim security/smack/smack_lsm.c | 3 +++ 1 file changed, 3 insertions(+) commit 78876691b2869811dff74cdf51d3c888c01b8c6d Merge: 0e5e584 973ed08 Author: Arnd Bergmann Date: Fri May 15 17:27:55 2015 +0200 Merge tag 'mvebu-dt-4.2' of git://git.infradead.org/linux-mvebu into next/dt Merge "mvebu dt changes for v4.2 (part #1)" from Gregory CLEMENT: - A series adding support for the Compulab CM-A510 - Add alias for mdio on Armada 38x * tag 'mvebu-dt-4.2' of git://git.infradead.org/linux-mvebu: ARM: mvebu: add alias for mdio on Armada 38x ARM: dts: dove: Add Compulab SBC-A510 to Makefile ARM: dts: dove: Add proper support for Compulab CM-A510/SBC-A510 ARM: dts: dove: Remove Compulab CM-A510 from Makefile ARM: dts: dove: Add internal i2c multiplexer node commit 0e5e5845304158a672e7af806e4b1b6363ae70c1 Merge: d0d89bb 2cdce7a Author: Arnd Bergmann Date: Fri May 15 17:26:31 2015 +0200 Merge tag 'sti-dt-for-v4.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mcoquelin/sti into next/dt Merge "STi DT updates for v4.2, round 2." from Maxime Coquelin: Highlights: ----------- - Add USB3 support to STiH410 & STiH418 - Add PWM support to STiH416 & STiH407 family - Add restart support to STiH416 & STiH407 family - Add PMU support to STiH416 & STiH407 family - Reorder includes in STiH407 DT files * tag 'sti-dt-for-v4.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mcoquelin/sti: ARM: STi: DT: STih407: Re-order #include <*.dtsi> files ARM: STi: Ensure requested STi's SysCfg Controlled IRQs are enabled at boot ARM: STi: STiH407: Enable PMU IRQs ARM: STi: STiH407: Enable Cortex-A9 PMU support ARM: STi: STiH416: Enable PMU IRQs ARM: STi: STiH416: Enable Cortex-A9 PMU support ARM: STi: STiH416: Add Restart support for STiH416 ARM: STi: STiH407: Add Restart support for STiH407 ARM: STi: STiH416-b2020e: Enable PWM on the B2020 Rev-E ARM: STi: STiH416: Add DT nodes for PWM ARM: STi: STiH416: Add Pinctrl settings for PWM ARM: STi: STiH407: Add DT nodes for for PWM ARM: DT: STi: STiH418: Enable USB3 port on stih418-b2199. ARM: DT: STi: STiH418: Add miphy28lp optional oscillator clock properties ARM: DT: STi: stihxxx-b2120: Enable USB3 port on stih407-b2120 and stih410-b2120 ARM: DT: STi: STiH407: Add dwc3 usb3 DT node. ARM: DT: STi: STiH407: Update picophyreset for the usb3 controllers usb2 phy commit d0d89bb6f438ca9a54b82c1ecf89e328d95b9652 Merge: 4879341 1215baa Author: Arnd Bergmann Date: Fri May 15 17:23:29 2015 +0200 Merge tag 'rpi-dt-for-armsoc-v4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/rpi/linux-rpi into next/dt Merge "RaspberryPi Device Tree changes due for v4.2" from Lee Jones: * tag 'rpi-dt-for-armsoc-v4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/rpi/linux-rpi: ARM: bcm2835: dt: Use 0x4 prefix for DMA bus addresses to SDRAM. ARM: bcm2835: dt: Add the mailbox to the device tree ARM: bcm2835: dt: Fix i2c0 node name ARM: bcm2835: dt: Use pinctrl header ARM: bcm2835: dt: Add header file for pinctrl constants ARM: bcm2835: dt: Add root properties for Raspberry Pi ARM: bcm2835: dt: Add vendor prefix for Raspberry Pi commit 487934109d33e1749d3034899685111bca6ffd0b Author: Linus Walleij Date: Thu May 14 11:22:34 2015 +0200 ARM: ux500: add SCU and WD to device tree The Ux500 like other Cortex-A9 SoC's has a Snoop Control Unit (SCU) and a Watchdog in the same address range as the local timers. Add these to the SoC device tree. Signed-off-by: Linus Walleij Signed-off-by: Arnd Bergmann arch/arm/boot/dts/ste-dbx5x0.dtsi | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit bc2ad8ffd834eb9ba71e965907257998b8fea339 Merge: 144ed97 7706993 Author: Arnd Bergmann Date: Fri May 15 17:21:10 2015 +0200 Merge tag 'renesas-dt-for-v4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/dt Merge "Renesas ARM Based SoC DT Updates for v4.2" from Simon Horman: * Enable DMA for HSUSB on r8a7790 and r8a7791 SoCs * Configure the HOME key as wake-up source on kzm9g board * Use generic names for device nodes on SH Mobile SoCs and boards * Add "nor-jedec" compatible value to SH Mobile boards * Add IRQC clock to r8a73a4, r8a779* SoCs * Remove MSIOF address from r8a7790 and r8a7791 SoCs * tag 'renesas-dt-for-v4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: (31 commits) ARM: shmobile: r8a7791: Enable DMA for HSUSB ARM: shmobile: r8a7791: add USB-DMAC device nodes ARM: shmobile: r8a7790: Enable DMA for HSUSB ARM: shmobile: r8a7790: add USB-DMAC device nodes ARM: shmobile: kzm9g dts: Configure the HOME key as wake-up source ARM: shmobile: koelsch dts: Use generic names for device nodes ARM: shmobile: lager dts: Use generic names for device nodes ARM: shmobile: bockw dts: Use generic names for device nodes ARM: shmobile: koelsch dts: Add "nor-jedec" compatible value ARM: shmobile: bockw dts: Add "nor-jedec" compatible value ARM: shmobile: lager dts: Add "nor-jedec" compatible value ARM: shmobile: bockw-reference dts: Add "nor-jedec" compatible value ARM: shmobile: henninger dts: Add "nor-jedec" compatible value ARM: shmobile: armadillo800eva dts: Use generic names for device nodes ARM: shmobile: marzen dts: Use generic names for device nodes ARM: shmobile: kzm9d dts: Use generic names for device nodes ARM: shmobile: ape6evm dts: Use generic names for device nodes ARM: shmobile: sh73a0 dtsi: Use generic names for device nodes ARM: shmobile: r8a7791 dtsi: Use generic names for device nodes ARM: shmobile: r8a7790 dtsi: Use generic names for device nodes ... commit 144ed9708e67d28b116f4cd9e3106c08341a8959 Merge: 830f5a5 8dd3075 Author: Arnd Bergmann Date: Fri May 15 17:18:57 2015 +0200 Merge tag 'pxa-dt-4.2' of https://github.com/rjarzmik/linux into next/dt Merge "device-tree pxa update" from Robert Jarzmik: - clocks descriptions (pxa27x, pxa3xx) - timer descriptions (pxa27x, pxa3xx) - IPs which are embedded on the SoC - keypad - udc (USB client) - power I2C These are amongst the building blocks for future pxa device-tree board description. * tag 'pxa-dt-4.2' of https://github.com/rjarzmik/linux: ARM: dts: pxa: add pxa-timer to pxa27x and pxa3xx ARM: dts: pxa: add pxa27x-keypad to pxa27x ARM: dts: pxa: add pxa27x-udc to pxa27x ARM: dts: pxa: add clocks ARM: dts: pxa: add pwri2c to pxa device-tree commit 830f5a5a1e2f37881e2f7d61ffca43f9c8225a11 Merge: a258e3f 16dc3ba Author: Arnd Bergmann Date: Fri May 15 17:17:24 2015 +0200 Merge tag 'arm-soc/for-4.2/dts' of http://github.com/broadcom/stblinux into next/dt Merge "Device Tree changes" from Florian Fainelli: New devices: - Felix adds support for the Buffalo WXR-1900DHP and adds the USB led on Buffalo WZR-1750DHP - Rafal adds support for the SmartRG SR400ac, Asus RT-AC68U and RT-AC56U New peripheral support: - Brian adds Device Tree nodes for the Broadcom NAND controller found on BCM7xxx, BCM63138 and Cygnus SoCs - Brian adds Device Tree nodes for the SATA AHCI and PHY controller found on BCM7xxx - I add the Device Tree nodes and bindings documents for bringing-up secondary CPUs and timer/syscon-reboot on BCM63138 * tag 'arm-soc/for-4.2/dts' of http://github.com/broadcom/stblinux: ARM: BCM5301X: Add DT for Asus RT-AC56U ARM: BCM5301X: Add DT for Asus RT-AC68U ARM: dts: BCM63xx: Add timer and syscon-reboot nodes dt-bindings: Add documentation for the BCM63138 timer and syscon-reboot ARM: dts: brcmstb: add nodes for SATA controller and PHY ARM: dts: cygnus: Enable NAND support for Cygnus ARM: bcm63138: add NAND DT support ARM: bcm7445: add NAND to DTS ARM: BCM5301X: Add DT for SmartRG SR400ac ARM: BCM5301X: Add DT for Buffalo WXR-1900DHP ARM: BCM5301X: Add USB LED for Buffalo WZR-1750DHP ARM: dts: BCM63xx: Add SMP nodes and required properties Documentation: DT: Document SMP DT nodes and properties for BCM63138 ARM: dts: BCM63xx: Add PMB busses nodes Documentation: DT: Add Broadcom BCM63138 PMB binding commit 43b79209b5be533173eea08535558cf517b334ca Author: Frederic Danis Date: Fri May 15 11:58:42 2015 +0200 Bluetooth: btbcm: Fix calls to __hci_cmd_sync() Remove test of command reply status as it is already performed by __hci_cmd_sync(). __hci_cmd_sync_ev() function already returns an error if it got a non-zero status either through a Command Complete or a Command Status event. For both of these events the status is collected up in the event handlers called by hci_event_packet() and then passed as the second parameter to req_complete_skb(). The req_complete_skb() callback in turn is hci_req_sync_complete() for __hci_cmd_sync_ev() which stores the status in hdev->req_result. The hdev->req_result is then further converted through bt_to_errno() back in __hci_cmd_sync_ev(). Signed-off-by: Frederic Danis Signed-off-by: Marcel Holtmann drivers/bluetooth/btbcm.c | 6 ------ 1 file changed, 6 deletions(-) commit 6dc178760553605c58d78bd403dfcb4e042c5b72 Author: Thomas Gleixner Date: Fri May 15 15:50:45 2015 +0200 x86: Consolidate irq entering inlines smp.c and irq_work.c implement the same inline helper. Move it to apic.h and use it everywhere. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra arch/x86/include/asm/apic.h | 6 ++++++ arch/x86/kernel/irq_work.c | 10 ++-------- arch/x86/kernel/smp.c | 19 ++++++------------- 3 files changed, 14 insertions(+), 21 deletions(-) commit b1f5cf0cae090dae9ac045670fec2d0c5253592a Author: Frederic Danis Date: Fri May 15 11:58:41 2015 +0200 Bluetooth: btintel: Fix calls to __hci_cmd_sync() Remove test of command reply status as it is already performed by __hci_cmd_sync(). __hci_cmd_sync_ev() function already returns an error if it got a non-zero status either through a Command Complete or a Command Status event. For both of these events the status is collected up in the event handlers called by hci_event_packet() and then passed as the second parameter to req_complete_skb(). The req_complete_skb() callback in turn is hci_req_sync_complete() for __hci_cmd_sync_ev() which stores the status in hdev->req_result. The hdev->req_result is then further converted through bt_to_errno() back in __hci_cmd_sync_ev(). Signed-off-by: Frederic Danis Signed-off-by: Marcel Holtmann drivers/bluetooth/btintel.c | 6 ------ 1 file changed, 6 deletions(-) commit 5e13441ca413f5a8d04601d675accb35d37c6b08 Author: Frederic Danis Date: Fri May 15 11:58:40 2015 +0200 Bluetooth: btusb: Fix calls to __hci_cmd_sync() Remove test of command reply status as it is already performed by __hci_cmd_sync(). __hci_cmd_sync_ev() function already returns an error if it got a non-zero status either through a Command Complete or a Command Status event. For both of these events the status is collected up in the event handlers called by hci_event_packet() and then passed as the second parameter to req_complete_skb(). The req_complete_skb() callback in turn is hci_req_sync_complete() for __hci_cmd_sync_ev() which stores the status in hdev->req_result. The hdev->req_result is then further converted through bt_to_errno() back in __hci_cmd_sync_ev(). Signed-off-by: Frederic Danis Signed-off-by: Marcel Holtmann drivers/bluetooth/btusb.c | 36 ------------------------------------ 1 file changed, 36 deletions(-) commit cffd2eedf91aa9e459b8640807ee6ea7bd8ee145 Author: Frederic Danis Date: Fri May 15 11:58:39 2015 +0200 Bluetooth: Fix calls to __hci_cmd_sync() Remove test of command reply status as it is already performed by __hci_cmd_sync(). __hci_cmd_sync_ev() function already returns an error if it got a non-zero status either through a Command Complete or a Command Status event. For both of these events the status is collected up in the event handlers called by hci_event_packet() and then passed as the second parameter to req_complete_skb(). The req_complete_skb() callback in turn is hci_req_sync_complete() for __hci_cmd_sync_ev() which stores the status in hdev->req_result. The hdev->req_result is then further converted through bt_to_errno() back in __hci_cmd_sync_ev(). Signed-off-by: Frederic Danis Signed-off-by: Marcel Holtmann net/bluetooth/hci_core.c | 5 ----- 1 file changed, 5 deletions(-) commit 6af7faf6076697a39438cf38e21b4035e2ebdac9 Author: Thomas Gleixner Date: Fri May 15 15:48:25 2015 +0200 x86: Use entering[_ack]_irq() instead of open coding it Signed-off-by: Thomas Gleixner arch/x86/kernel/apic/vector.c | 6 ++---- arch/x86/kernel/cpu/mshyperv.c | 6 ++---- arch/x86/kernel/irq.c | 16 ++++------------ 3 files changed, 8 insertions(+), 20 deletions(-) commit 50beefde30224888d6d63224405ace4bdd4b32a0 Author: Russell King Date: Fri May 15 11:05:54 2015 +0100 ARM: l2c: clean up l2c_configure() l2c_configure() does not follow the pattern of other l2c_* functions. Fix this so that it does to avoid future confusion. Signed-off-by: Russell King arch/arm/mm/cache-l2x0.c | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) commit 7705dd256ce363f8b01429efb2f0dc4d1ee23c89 Author: Russell King Date: Fri May 15 11:07:14 2015 +0100 ARM: l2c: write auxiliary control register first Before calling the controller specific configuration function, write the auxiliary control register first, so that bits shared with other registers (such as the prefetch control register) are not overwritten by the later write to the auxctrl register. Signed-off-by: Russell King arch/arm/mm/cache-l2x0.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit d965b0fca7dcde3f82c982e0bf1631069fdeb8c9 Author: Russell King Date: Fri May 15 11:56:45 2015 +0100 ARM: l2c: restore the behaviour documented above l2c_enable() l2c_enable() is documented that it must not be called if the cache has already been enabled. Unfortunately, commit 6b49241ac252 ("ARM: 8259/1: l2c: Refactor the driver to use commit-like interface") changed this without updating the comment, for very little reason. Revert this change and restore the expected behaviour. Signed-off-by: Russell King arch/arm/mm/cache-l2x0.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit cdcc8b6b241912fe0fd60e447453d87c644b1619 Author: Heiko Stuebner Date: Fri Mar 6 19:04:06 2015 +0100 ARM: dts: rockchip: relicense rk3288-evb* under GPLv2/X11 GPLv2-only devicetrees make reuse difficult for software components licensed under a different license. The consensus is that a GPL/X11 dual-license should allow all necessary uses, so relicense the rk3288-evb files to this combination. CCs were aquired by git shortlog -sne so it should've hopefully catched every contributor. Signed-off-by: Heiko Stuebner Acked-by: Doug Anderson Acked-by: Kever Yang Acked-by: Caesar Wang Acked-by: Romain Perier Acked-by: Chris Zhong Acked-by: Roger Chen Acked-by: Yunzhi Li on behalf of Rockchip Acked-by: Eddie Cai arch/arm/boot/dts/rk3288-evb-act8846.dts | 44 ++++++++++++++++++++++++++------ arch/arm/boot/dts/rk3288-evb-rk808.dts | 44 ++++++++++++++++++++++++++------ arch/arm/boot/dts/rk3288-evb.dtsi | 44 ++++++++++++++++++++++++++------ 3 files changed, 108 insertions(+), 24 deletions(-) commit b1772506206ffd1937668d5b2e7c5c0ddf484872 Author: Heiko Stuebner Date: Fri Mar 6 19:04:02 2015 +0100 ARM: dts: rockchip: relicense rk3288.dtsi under GPLv2/X11 GPLv2-only devicetrees make reuse difficult for software components licensed under a different license. The consensus is that a GPL/X11 dual-license should allow all necessary uses, so relicense the rk3288.dtsi to this combination. CCs were aquired by git shortlog -sne so it should've hopefully catched every contributor. Signed-off-by: Heiko Stuebner Acked-by: Doug Anderson Acked-by: Sonny Rao Acked-by: Daniel Lezcano Acked-by: Kever Yang Acked-by: Caesar Wang Acked-by: Lin Huang Acked-by: Chris Zhong Acked-by: Jianqun Xu Acked-by: Daniel Kurtz Acked-by: Roger Chen Acked-by: Yunzhi Li on behalf of Rockchip Acked-by: Eddie Cai arch/arm/boot/dts/rk3288.dtsi | 44 +++++++++++++++++++++++++++++++++++-------- 1 file changed, 36 insertions(+), 8 deletions(-) commit 394e5b6d8651db92fd55eac78747a3b13d40f7b7 Author: Javier Martinez Canillas Date: Thu May 14 16:31:29 2015 +0200 drm/bridge: ptn3460: Fix I2C ID table to match the reported modalias I2C drivers that support OF, have both an I2C and OF device ID tables that are used to fill the supported module aliases. But currently the I2C core only uses the OF table to match a device with a driver and the aliases information are always reported in the form i2c:. The client->name is used as the name postfix and when booting with OF this is obtained with of_modalias_node() which drops the compatible string vendor prefix. So for I2C drivers, the I2C and OF device ID tables should be keep in sync in order to make module auto-loading to work but the I2C device entries shouldn't have the vendor prefix since that is not reported. Before this patch: MODALIAS=i2c:ptn3460 $ modinfo | grep alias alias: i2c:nxp,ptn3460 alias: of:N*T*Cnxp,ptn3460* After this patch: MODALIAS=i2c:ptn3460 $ modinfo | grep alias alias: i2c:ptn3460 alias: of:N*T*Cnxp,ptn3460* Signed-off-by: Javier Martinez Canillas Reviewed-by: Doug Anderson Signed-off-by: Thierry Reding drivers/gpu/drm/bridge/ptn3460.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cf88fca50230042d97651ed71a2bffec111956f4 Author: Fabio Estevam Date: Thu Apr 2 19:11:04 2015 -0300 drm/bridge: dw-hdmi: Staticize dw_hdmi_bridge_funcs Staticize dw_hdmi_bridge_funcs to fix the following sparse warning: drivers/gpu/drm/bridge/dw_hdmi.c:1458:25: warning: symbol 'dw_hdmi_bridge_funcs' was not declared. Should it be static? Signed-off-by: Fabio Estevam Signed-off-by: Thierry Reding drivers/gpu/drm/bridge/dw_hdmi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit be6cb02779ca74d83481f017db21578cfe92891c Author: Ingo Molnar Date: Fri Apr 10 14:08:46 2015 +0200 x86: Align jump targets to 1-byte boundaries The following NOP in a hot function caught my attention: > 5a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) That's a dead NOP that bloats the function a bit, added for the default 16-byte alignment that GCC applies for jump targets. I realize that x86 CPU manufacturers recommend 16-byte jump target alignments (it's in the Intel optimization manual), to help their relatively narrow decoder prefetch alignment and uop cache constraints, but the cost of that is very significant: text data bss dec filename 12566391 1617840 1089536 15273767 vmlinux.align.16-byte 12224951 1617840 1089536 14932327 vmlinux.align.1-byte By using 1-byte jump target alignment (i.e. no alignment at all) we get an almost 3% reduction in kernel size (!) - and a probably similar reduction in I$ footprint. Now, the usual justification for jump target alignment is the following: - modern decoders tend to have 16-byte (effective) decoder prefetch windows. (AMD documents it higher but measurements suggest the effective prefetch window on curretn uarchs is still around 16 bytes) - on Intel there's also the uop-cache with cachelines that have 16-byte granularity and limited associativity. - older x86 uarchs had a penalty for decoder fetches that crossed 16-byte boundaries. These limits are mostly gone from recent uarchs. So if a forward jump target is aligned to cacheline boundary then prefetches will start from a new prefetch-cacheline and there's higher chance for decoding in fewer steps and packing tightly. But I think that argument is flawed for typical optimized kernel code flows: forward jumps often go to 'cold' (uncommon) pieces of code, and aligning cold code to cache lines does not bring a lot of advantages (they are uncommon), while it causes collateral damage: - their alignment 'spreads out' the cache footprint, it shifts followup hot code further out - plus it slows down even 'cold' code that immediately follows 'hot' code (like in the above case), which could have benefited from the partial cacheline that comes off the end of hot code. But even in the cache-hot case the 16 byte alignment brings disadvantages: - it spreads out the cache footprint, possibly making the code fall out of the L1 I$. - On Intel CPUs, recent microarchitectures have plenty of uop cache (typically doubling every 3 years) - while the size of the L1 cache grows much less aggressively. So workloads are rarely uop cache limited. The only situation where alignment might matter are tight loops that could fit into a single 16 byte chunk - but those are pretty rare in the kernel: if they exist they tend to be pointer chasing or generic memory ops, which both tend to be cache miss (or cache allocation) intensive and are not decoder bandwidth limited. So the balance of arguments strongly favors packing kernel instructions tightly versus maximizing for decoder bandwidth: this patch changes the jump target alignment from 16 bytes to 1 byte (tightly packed, unaligned). Acked-by: Denys Vlasenko Cc: Andy Lutomirski Cc: Aswin Chandramouleeswaran Cc: Borislav Petkov Cc: Brian Gerst Cc: Davidlohr Bueso Cc: H. Peter Anvin Cc: Jason Low Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Tim Chen Link: http://lkml.kernel.org/r/20150410120846.GA17101@gmail.com Signed-off-by: Ingo Molnar arch/x86/Makefile | 3 +++ 1 file changed, 3 insertions(+) commit 42cb0c7bdf9ddd33b33d195414f9171e7fa7472c Author: Paulo Flabiano Smorigo Date: Thu May 14 12:21:04 2015 -0300 crypto: vmx - fix two mistyped texts One mistyped description and another mistyped target were corrected. Signed-off-by: Paulo Flabiano Smorigo Signed-off-by: Herbert Xu drivers/crypto/vmx/Makefile | 2 +- drivers/crypto/vmx/vmx.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 3848d3478669f5d8b3d03dcf758960d2d1870f4a Author: Tadeusz Struk Date: Wed May 13 14:45:31 2015 -0700 crypto: qat - rm unneeded header include Don't need proc_fs.h Signed-off-by: Tadeusz Struk Signed-off-by: Herbert Xu drivers/crypto/qat/qat_common/adf_accel_devices.h | 1 - 1 file changed, 1 deletion(-) commit 733a82e24e7aa405b4698bf21e57ec7c77cab2cf Author: Tadeusz Struk Date: Wed May 13 14:45:30 2015 -0700 crypto: qat - remove unused structure members Cleanup unused structure members. Signed-off-by: Tadeusz Struk Signed-off-by: Herbert Xu drivers/crypto/qat/qat_common/adf_cfg_user.h | 12 ------------ 1 file changed, 12 deletions(-) commit 604c31039dae4653f33003d08c91ef58b70b5e63 Author: Pali Rohár Date: Sun Mar 8 11:01:01 2015 +0100 crypto: omap-sham - Check for return value from pm_runtime_get_sync Function pm_runtime_get_sync could fail and we need to check return value to prevent kernel crash. Signed-off-by: Pali Rohár Acked-by: Pavel Machek Signed-off-by: Herbert Xu drivers/crypto/omap-sham.c | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) commit aa891009ee8863944a96ba4a348102f3d5f5f931 Merge: a41f3c8 70923bd Author: Ingo Molnar Date: Fri May 15 08:36:33 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 --range option to show a variable's location range in 'perf probe', helping in collecting variables in probes when there is a mismatch between assembly and source code (He Kuang) - Show better error message when failed to find variable in 'perf probe' (He Kuang) - Fix 'perf report --thread' handling and document it better (Namhyung Kim) Infrastructure changes: - Fix to get negative exit codes in 'perf test' test routines (He Kuang) - Make flex/bison calls honour V=1 (Jiri Olsa) - Ignore tail calls to probed functions in 'perf probe' (Naveen N. Rao) - Fix refcount expectations in map_group share 'perf test' (Arnaldo Carvalho de Melo) Build Fixes: - Fix 'perf kmem' build due to compiler thinking uninitialized var is being accessed (Arnaldo Carvalho de Melo) - Provide le16toh if not defined, to fix the libtraceevent build on older distros (Arnaldo Carvalho de Melo) - Fix 'perf trace' build on older distros by providing some CLOEXEC, NONBLOCK defines (Arnaldo Carvalho de Melo) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit dde10068e1a4798fa44e68a5d08b5dfe3602cbba Merge: 72a8168 38bf3ae Author: Dave Airlie Date: Fri May 15 15:24:41 2015 +1000 Merge branch 'drm-armada-devel' of git://ftp.arm.linux.org.uk/~rmk/linux-arm into drm-next some minor cleanups * 'drm-armada-devel' of git://ftp.arm.linux.org.uk/~rmk/linux-arm: drm/armada: armada_drv: Remove unused function drm/armada: armada_output: Remove some unused functions commit 72a81683a8feac3c67bac24dfd88f81bac077be0 Merge: cc7297d 8c7a075 Author: Dave Airlie Date: Fri May 15 15:23:10 2015 +1000 Merge branch 'drm-tda998x-devel' of git://ftp.arm.linux.org.uk/~rmk/linux-arm into drm-next tda998x: use helpers for infoframe. * 'drm-tda998x-devel' of git://ftp.arm.linux.org.uk/~rmk/linux-arm: drm/i2c: tda998x: use drm_hdmi_avi_infoframe_from_display_mode() commit b853a16176cf3e02c57e215743015614152c2428 Author: Al Viro Date: Wed May 13 09:12:02 2015 -0400 turn user_{path_at,path,lpath,path_dir}() into static inlines Signed-off-by: Al Viro fs/namei.c | 8 +------- include/linux/namei.h | 34 ++++++++++++++++++++++++---------- 2 files changed, 25 insertions(+), 17 deletions(-) commit 9883d1855ecfafc60045a93abcee6c42e0a5f571 Author: Al Viro Date: Wed May 13 07:28:08 2015 -0400 namei: move saved_nd pointer into struct nameidata these guys are always declared next to each other; might as well put the former (pointer to previous instance) into the latter and simplify the calling conventions for {set,restore}_nameidata() Signed-off-by: Al Viro fs/namei.c | 46 ++++++++++++++++++++++++---------------------- 1 file changed, 24 insertions(+), 22 deletions(-) commit 520ae6874726dbfdf52c779d387b584d95cfed7f Author: Al Viro Date: Wed May 13 07:00:28 2015 -0400 inline user_path_create() Signed-off-by: Al Viro fs/namei.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a2ec4a2d5cf35972b0e4dd84f66142bc76bb6cb2 Author: Al Viro Date: Wed May 13 06:57:49 2015 -0400 inline user_path_parent() Signed-off-by: Al Viro fs/namei.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 76ae2a5ab13c4413dd403c940c16bd0b1e609346 Author: Al Viro Date: Tue May 12 18:44:32 2015 -0400 namei: trim do_last() arguments now that struct filename is stashed in nameidata we have no need to pass it in Signed-off-by: Al Viro fs/namei.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit c8a53ee5ee4fcab5ee252f61a69609b65e5e74b8 Author: Al Viro Date: Tue May 12 18:43:07 2015 -0400 namei: stash dfd and name into nameidata fewer arguments to pass around... Signed-off-by: Al Viro fs/namei.c | 96 ++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 46 insertions(+), 50 deletions(-) commit 102b8af266fbce07b7f8d2396bf2286ba80c93bd Author: Al Viro Date: Tue May 12 17:35:52 2015 -0400 namei: fold path_cleanup() into terminate_walk() they are always called next to each other; moreover, terminate_walk() is more symmetrical that way. Signed-off-by: Al Viro fs/namei.c | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) commit 5c31b6cedb675199bfd18c08a1223c9b39daedd7 Author: Al Viro Date: Tue May 12 17:32:54 2015 -0400 namei: saner calling conventions for filename_parentat() a) make it reject ERR_PTR() for name b) make it putname(name) on all other failure exits c) make it return name on success again, simplifies the callers Signed-off-by: Al Viro fs/namei.c | 60 ++++++++++++++++++++++-------------------------------------- 1 file changed, 22 insertions(+), 38 deletions(-) commit 181c37b6e4c1bdb061ed0d884c54f9a6e6cdac89 Author: Al Viro Date: Tue May 12 17:21:25 2015 -0400 namei: saner calling conventions for filename_create() a) make it reject ERR_PTR() for name b) make it putname(name) upon return in all other cases. seriously simplifies the callers... Signed-off-by: Al Viro fs/namei.c | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) commit 391172c46e6f9d5d03855ff3ae5720d9826f3b59 Author: Al Viro Date: Sat May 9 11:19:16 2015 -0400 namei: shift nameidata down into filename_parentat() Signed-off-by: Al Viro fs/namei.c | 84 ++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 43 insertions(+), 41 deletions(-) commit abc9f5beb1ca97b5157914c83c85d67a6b665d74 Author: Al Viro Date: Tue May 12 16:53:42 2015 -0400 namei: make filename_lookup() reject ERR_PTR() passed as name makes for much easier life in callers Signed-off-by: Al Viro fs/namei.c | 30 ++++++++++-------------------- 1 file changed, 10 insertions(+), 20 deletions(-) commit 9ad1aaa61522ffba001a5599623182fe23083a94 Author: Al Viro Date: Tue May 12 16:44:39 2015 -0400 namei: shift nameidata inside filename_lookup() pass root instead; non-NULL => copy to nd.root and set LOOKUP_ROOT in flags Signed-off-by: Al Viro fs/namei.c | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) commit e4bd1c1a95409131ad3948accab98f0d6b8093f0 Author: Al Viro Date: Tue May 12 16:40:39 2015 -0400 namei: move putname() call into filename_lookup() Signed-off-by: Al Viro fs/namei.c | 38 +++++++++++++++----------------------- 1 file changed, 15 insertions(+), 23 deletions(-) commit 625b6d105446e82e95ddb28d6fd3d25f84f6c479 Author: Al Viro Date: Tue May 12 16:36:12 2015 -0400 namei: pass the struct path to store the result down into path_lookupat() Signed-off-by: Al Viro fs/namei.c | 72 +++++++++++++++++++++++++++++--------------------------------- 1 file changed, 34 insertions(+), 38 deletions(-) commit 18d8c860112f96b62899819f933912833398cd58 Author: Al Viro Date: Tue May 12 16:32:34 2015 -0400 namei: uninline set_root{,_rcu}() Signed-off-by: Al Viro fs/namei.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit aed434ada68573549d9f5106cde26b94c48e51c2 Author: Al Viro Date: Tue May 12 12:22:47 2015 -0400 namei: be careful with mountpoint crossings in follow_dotdot_rcu() Otherwise we are risking a hard error where nonlazy restart would be the right thing to do; it's a very narrow race with mount --move and most of the time it ends up being completely harmless, but it's possible to construct a case when we'll get a bogus hard error instead of falling back to non-lazy walk... For one thing, when crossing _into_ overmount of parent we need to check for mount_lock bumps when we get NULL from __lookup_mnt() as well. For another, and less exotically, we need to make sure that the data fetched in follow_up_rcu() had been consistent. ->mnt_mountpoint is pinned for as long as it is a mountpoint, but we need to check mount_lock after fetching to verify that. Signed-off-by: Al Viro fs/namei.c | 51 +++++++++++++++++++++------------------------------ 1 file changed, 21 insertions(+), 30 deletions(-) commit 99ff6cf0e67ada025ba8054a055862383355ec0e Author: NeilBrown Date: Mon Mar 23 13:37:38 2015 +1100 Documentation: remove outdated information from automount-support.txt The guidelines for adding automount support to a filesystem in filesystems/automount-support.txt is out or date. filesystems/autofs4.txt contains more current text, so replace the out-of-date content with a reference to that. Signed-off-by: NeilBrown Signed-off-by: Al Viro Documentation/filesystems/automount-support.txt | 51 +++++++------------------ 1 file changed, 13 insertions(+), 38 deletions(-) commit 89076bc31950eee576ecc06460c23466e2d50939 Author: Al Viro Date: Tue May 12 08:29:38 2015 -0400 get rid of assorted nameidata-related debris pointless forward declarations, stale comments Signed-off-by: Al Viro fs/9p/vfs_inode.c | 3 +-- fs/9p/vfs_inode_dotl.c | 3 +-- fs/ecryptfs/inode.c | 3 +-- fs/ntfs/namei.c | 2 +- include/linux/fs.h | 1 - include/linux/namei.h | 1 - include/linux/sched.h | 1 + 7 files changed, 5 insertions(+), 9 deletions(-) commit 322105e2fe20b51587a328e7121dc04ea361b083 Author: Al Viro Date: Tue May 12 08:29:13 2015 -0400 lustre: kill unused helper Signed-off-by: Al Viro .../staging/lustre/lustre/include/linux/lustre_compat25.h | 15 --------------- 1 file changed, 15 deletions(-) commit 539fcc0109346fca363257aa75c5e5a3916bf124 Author: Al Viro Date: Mon Feb 23 00:20:40 2015 -0500 lustre: kill unused macro (LOOKUP_CONTINUE) Signed-off-by: Al Viro drivers/staging/lustre/lustre/llite/llite_internal.h | 6 ------ 1 file changed, 6 deletions(-) commit 5a8d87e8ed1d6aabdb865fea31e337b2c627dbe0 Author: Al Viro Date: Tue May 12 00:10:18 2015 -0400 namei: unlazy_walk() doesn't need to mess with current->fs anymore now that we have ->root_seq, legitimize_path(&nd->root, nd->root_seq) will do just fine... Signed-off-by: Al Viro fs/namei.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) commit 203bc643db59e2538e9a3f19be1636cdfd2bb2db Author: Al Viro Date: Mon May 11 08:29:30 2015 -0400 update Documentation/filesystems/ regarding the follow_link/put_link changes Signed-off-by: Al Viro Documentation/filesystems/porting | 17 +++++++++++++++++ Documentation/filesystems/vfs.txt | 18 ++++++++++-------- 2 files changed, 27 insertions(+), 8 deletions(-) commit 8f47a0167c567de4ef552e26101b4f54a9b8ad48 Author: Al Viro Date: Sat May 9 19:02:01 2015 -0400 namei: handle absolute symlinks without dropping out of RCU mode Signed-off-by: Al Viro fs/namei.c | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) commit 8c1b456689ac0b27e8e16b35190e89a02fd1f121 Author: Al Viro Date: Sat May 9 18:15:21 2015 -0400 enable passing fast relative symlinks without dropping out of RCU mode Signed-off-by: Al Viro fs/namei.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) commit 8fa9dd24667f2d6997ec21341019657342859d31 Author: NeilBrown Date: Mon Mar 23 13:37:40 2015 +1100 VFS/namei: make the use of touch_atime() in get_link() RCU-safe. touch_atime is not RCU-safe, and so cannot be called on an RCU walk. However, in situations where RCU-walk makes a difference, the symlink will likely to accessed much more often than it is useful to update the atime. So split out the test of "Does the atime actually need to be updated" into atime_needs_update(), and have get_link() unlazy if it finds that it will need to do that update. Signed-off-by: NeilBrown Signed-off-by: Al Viro fs/inode.c | 30 +++++++++++++++++++++--------- fs/namei.c | 12 +++++++++--- include/linux/fs.h | 1 + 3 files changed, 31 insertions(+), 12 deletions(-) commit bc40aee053be1c2c443e812034f41e1a3cf34752 Author: Al Viro Date: Sat May 9 13:04:24 2015 -0400 namei: don't unlazy until get_link() Signed-off-by: Al Viro fs/namei.c | 37 ++++++++++++++++++++++++++----------- 1 file changed, 26 insertions(+), 11 deletions(-) commit 7973387a2f629c6ed0283920da44c6539c69aca0 Author: Al Viro Date: Sat May 9 12:55:43 2015 -0400 namei: make unlazy_walk and terminate_walk handle nd->stack, add unlazy_link We are almost done - primitives for leaving RCU mode are aware of nd->stack now, a new primitive for going to non-RCU mode when we have a symlink on hands added. The thing we are heavily relying upon is that *any* unlazy failure will be shortly followed by terminate_walk(), with no access to nameidata in between. So it's enough to leave the things in a state terminate_walk() would cope with. Signed-off-by: Al Viro fs/namei.c | 138 ++++++++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 100 insertions(+), 38 deletions(-) commit 7eafd9b4005643cfc24f1daf78f4dd56ff71f559 Author: sixiao@microsoft.com Date: Thu May 14 01:00:25 2015 -0700 hv_netvsc: use per_cpu stats to calculate TX/RX data Current code does not lock anything when calculating the TX and RX stats. As a result, the RX and TX data reported by ifconfig are not accuracy in a system with high network throughput and multiple CPUs (in my test, RX/TX = 83% between 2 HyperV VM nodes which have 8 vCPUs and 40G Ethernet). This patch fixed the above issue by using per_cpu stats. netvsc_get_stats64() summarizes TX and RX data by iterating over all CPUs to get their respective stats. This v2 patch addressed David's comments on the cleanup path when netdev_alloc_pcpu_stats() failed. Signed-off-by: Simon Xiao Reviewed-by: K. Y. Srinivasan Reviewed-by: Haiyang Zhang Signed-off-by: David S. Miller drivers/net/hyperv/hyperv_net.h | 9 +++++ drivers/net/hyperv/netvsc_drv.c | 85 +++++++++++++++++++++++++++++++++++++---- 2 files changed, 86 insertions(+), 8 deletions(-) commit 56cbaa45dde2356d46c3d9a26c5f09f91156e5a7 Author: Michael Holzheu Date: Wed May 13 20:40:39 2015 -0700 test_bpf: fix sparse warnings Fix several sparse warnings like: lib/test_bpf.c:1824:25: sparse: constant 4294967295 is so big it is long lib/test_bpf.c:1878:25: sparse: constant 0x0000ffffffff0000 is so big it is long Fixes: cffc642d93f9 ("test_bpf: add 173 new testcases for eBPF") Reported-by: Fengguang Wu Signed-off-by: Michael Holzheu Signed-off-by: Alexei Starovoitov Acked-by: Daniel Borkmann Signed-off-by: David S. Miller lib/test_bpf.c | 122 ++++++++++++++++++++++++++++----------------------------- 1 file changed, 61 insertions(+), 61 deletions(-) commit 3365495c1883561e4a8811f46a3800c512a3c00a Author: Florian Westphal Date: Thu May 14 00:36:28 2015 +0200 net: core: set qdisc pkt len before tc_classify commit d2788d34885d4ce5ba ("net: sched: further simplify handle_ing") removed the call to qdisc_enqueue_root(). However, after this removal we no longer set qdisc pkt length. This breaks traffic policing on ingress. This is the minimum fix: set qdisc pkt length before tc_classify. Only setting the length does remove support for 'stab' on ingress, but as Alexei pointed out: "Though it was allowed to add qdisc_size_table to ingress, it's useless. Nothing takes advantage of recomputed qdisc_pkt_len". Jamal suggested to use qdisc_pkt_len_init(), but as Eric mentioned that would result in qdisc_pkt_len_init to no longer get inlined due to the additional 2nd call site. ingress policing is rare and GRO doesn't really work that well with police on ingress, as we see packets > mtu and drop skbs that -- without aggregation -- would still have fitted the policier budget. Thus to have reliable/smooth ingress policing GRO has to be turned off. Cc: Alexei Starovoitov Cc: Eric Dumazet Cc: Jamal Hadi Salim Fixes: d2788d34885d ("net: sched: further simplify handle_ing") Acked-by: Daniel Borkmann Signed-off-by: Florian Westphal Acked-by: Eric Dumazet Acked-by: Alexei Starovoitov Acked-by: Jamal Hadi Salim Signed-off-by: David S. Miller net/core/dev.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 0c58a2db91747c841d042b1d56615fb1eaf138c7 Author: Nicolas Dichtel Date: Wed May 13 13:43:09 2015 +0200 netns: fix unbalanced spin_lock on error Unlock was missing on error path. Fixes: 95f38411df05 ("netns: use a spin_lock to protect nsid management") Reported-by: Dan Carpenter Signed-off-by: Nicolas Dichtel Signed-off-by: David S. Miller net/core/net_namespace.c | 1 + 1 file changed, 1 insertion(+) commit ef7f3a5c7149ad2dbd1d8a71d0aa88a02d1dbcb8 Author: Bert Vermeulen Date: Wed May 13 13:35:39 2015 +0200 mdio-gpio: Propagate mii_bus.phy_ignore_ta_mask This also changes mii_bus.phy_mask to u32 for consistency. Signed-off-by: Bert Vermeulen Signed-off-by: David S. Miller drivers/net/phy/mdio-gpio.c | 1 + include/linux/mdio-gpio.h | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) commit a4afd37b26f4b9f640310a89b7f8d176ae3460b1 Author: Daniel Borkmann Date: Wed May 13 13:12:43 2015 +0200 test_bpf: add tests related to BPF_MAXINSNS Couple of torture test cases related to the bug fixed in 0b59d8806a31 ("ARM: net: delegate filter to kernel interpreter when imm_offset() return value can't fit into 12bits."). I've added a helper to allocate and fill the insn space. Output on x86_64 from my laptop: test_bpf: #233 BPF_MAXINSNS: Maximum possible literals jited:0 7 PASS test_bpf: #234 BPF_MAXINSNS: Single literal jited:0 8 PASS test_bpf: #235 BPF_MAXINSNS: Run/add until end jited:0 11553 PASS test_bpf: #236 BPF_MAXINSNS: Too many instructions PASS test_bpf: #237 BPF_MAXINSNS: Very long jump jited:0 9 PASS test_bpf: #238 BPF_MAXINSNS: Ctx heavy transformations jited:0 20329 20398 PASS test_bpf: #239 BPF_MAXINSNS: Call heavy transformations jited:0 32178 32475 PASS test_bpf: #240 BPF_MAXINSNS: Jump heavy test jited:0 10518 PASS test_bpf: #233 BPF_MAXINSNS: Maximum possible literals jited:1 4 PASS test_bpf: #234 BPF_MAXINSNS: Single literal jited:1 4 PASS test_bpf: #235 BPF_MAXINSNS: Run/add until end jited:1 1625 PASS test_bpf: #236 BPF_MAXINSNS: Too many instructions PASS test_bpf: #237 BPF_MAXINSNS: Very long jump jited:1 8 PASS test_bpf: #238 BPF_MAXINSNS: Ctx heavy transformations jited:1 3301 3174 PASS test_bpf: #239 BPF_MAXINSNS: Call heavy transformations jited:1 24107 23491 PASS test_bpf: #240 BPF_MAXINSNS: Jump heavy test jited:1 8651 PASS Signed-off-by: Daniel Borkmann Cc: Alexei Starovoitov Cc: Nicolas Schichan Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller include/linux/filter.h | 8 ++ lib/test_bpf.c | 317 +++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 316 insertions(+), 9 deletions(-) commit 264ea103a7473f51aced838e68ed384ea2c759f5 Author: Eric Dumazet Date: Thu May 14 14:26:56 2015 -0700 tcp: syncookies: extend validity range Now we allow storing more request socks per listener, we might hit syncookie mode less often and hit following bug in our stack : When we send a burst of syncookies, then exit this mode, tcp_synq_no_recent_overflow() can return false if the ACK packets coming from clients are coming three seconds after the end of syncookie episode. This is a way too strong requirement and conflicts with rest of syncookie code which allows ACK to be aged up to 2 minutes. Perfectly valid ACK packets are dropped just because clients might be in a crowded wifi environment or on another planet. So let's fix this, and also change tcp_synq_overflow() to not dirty a cache line for every syncookie we send, as we are under attack. Signed-off-by: Eric Dumazet Acked-by: Florian Westphal Acked-by: Yuchung Cheng Signed-off-by: David S. Miller include/net/tcp.h | 38 ++++++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 14 deletions(-) commit c24a59649f3c8f4f78adc2d0e31423fa883b012b Author: Alexander Duyck Date: Thu May 14 14:31:28 2015 -0700 ip_tunnel: Report Rx dropped in ip_tunnel_get_stats64 The rx_dropped stat wasn't being reported when ip_tunnel_get_stats64 was called. This was leading to some confusing results in my debug as I was seeing rx_errors increment but no other value which pointed me toward the type of error being seen. This change corrects that by using netdev_stats_to_stats64 to copy all available dev stats instead of just the few that were hand picked. Signed-off-by: Alexander Duyck Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller net/ipv4/ip_tunnel_core.c | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) commit 18bf3a124ef87fe43045cbf13dff7ea7e3a94aa3 Author: Viresh Kumar Date: Tue May 12 12:22:51 2015 +0530 cpufreq: Mark policy->governor = NULL for inactive policies Later commits would change the way policies are managed today. Policies wouldn't be freed on cpu hotplug (currently they aren't freed on suspend), and while the CPU is offline, the sysfs cpufreq files would still be present. Because we don't mark policy->governor as NULL, it still contains pointer of the last used governor. And if the governor is removed, while all the CPUs of a policy are hotplugged out, this pointer wouldn't be valid anymore. And if we try to read the 'scaling_governor', etc. from sysfs, it will result in kernel OOPs. To prevent this, mark policy->governor as NULL for all inactive policies while the governor is removed from kernel. Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 4573237b01221881702fbe6655f3ae5135be1c18 Author: Viresh Kumar Date: Tue May 12 12:22:34 2015 +0530 cpufreq: Manage governor usage history with 'policy->last_governor' History of which governor was used last is common to all CPUs within a policy and maintaining it per-cpu isn't the best approach for sure. Apart from wasting memory, this also increases the complexity of managing this data structure as it has to be updated for all CPUs. To make that somewhat simpler, lets store this information in a new field 'last_governor' in struct cpufreq_policy and update it on removal of last cpu of a policy. As a side-effect it also solves an old problem, consider a system with two clusters 0 & 1. And there is one policy per cluster. Cluster 0: CPU0 and 1. Cluster 1: CPU2 and 3. - CPU2 is first brought online, and governor is set to performance (default as cpufreq_cpu_governor wasn't set). - Governor is changed to ondemand. - CPU2 is taken offline and cpufreq_cpu_governor is updated for CPU2. - CPU3 is brought online. - Because cpufreq_cpu_governor wasn't set for CPU3, the default governor performance is picked for CPU3. This patch fixes the bug as we now have a single variable to update for policy. Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq.c | 30 +++++++++++++++--------------- include/linux/cpufreq.h | 1 + 2 files changed, 16 insertions(+), 15 deletions(-) commit 64a12c56addcb2d15ff752874abbe553a5f2a45b Author: Stephen Boyd Date: Thu May 14 17:38:21 2015 -0700 clk: Kconfig: Move bcm Kconfig into clk menu Having this Kconfig sourced outside the clk menu means the option is under the "Device Drivers" menu instead of the "Common Clock Framework" menu. Move it so that the bcm clock config options are in the right place. Cc: Alex Elder Signed-off-by: Stephen Boyd drivers/clk/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9104bb26c740cd4b2c9ee927f3caabbde0414558 Author: Viresh Kumar Date: Tue May 12 12:22:12 2015 +0530 cpufreq: Don't traverse all active policies to find policy for a cpu We reach here while adding policy for a CPU and enter into the 'if' block only if a policy already exists for the CPU. As cpufreq_cpu_data is set for all policy->related_cpus now, when the policy is first added, we can use that to find the CPU's policy instead of traversing the list of all active policies. Acked-by: Saravana Kannan Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) commit 3914d37910af2cd0cc992ae546b8308e05759d2b Author: Viresh Kumar Date: Fri May 8 11:53:46 2015 +0530 cpufreq: Get rid of cpufreq_cpu_data_fallback We can extract the same information from cpufreq_cpu_data as it is also available for inactive policies now. And so don't need cpufreq_cpu_data_fallback anymore. Also add a WARN_ON() for the case where we try to restore from an active policy. Acked-by: Saravana Kannan Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq.c | 25 ++++++------------------- 1 file changed, 6 insertions(+), 19 deletions(-) commit 988bed09d35a8533eb59868692b827dfae7b66fe Author: Viresh Kumar Date: Fri May 8 11:53:45 2015 +0530 cpufreq: Don't clear cpufreq_cpu_data and policy list for inactive policies Now that we can check policy->cpus to find if policy is active or not, we don't need to clean cpufreq_cpu_data and delete policy from the list on light weight tear down of policies (like in suspend). To make it consistent and clean, set cpufreq_cpu_data for all related CPUs when the policy is first created and clean it only while it is freed. Also update cpufreq_cpu_get_raw() to check if cpu is part of policy->cpus mask, so that we don't end up getting policies for offline CPUs. In order to make sure that no users of 'policy' are using an inactive policy, use cpufreq_cpu_get_raw() instead of directly accessing cpufreq_cpu_data. Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq.c | 79 ++++++++++++++++++++--------------------------- 1 file changed, 34 insertions(+), 45 deletions(-) commit f963735a3ca388da4893fc2d463eca6b58667add Author: Viresh Kumar Date: Tue May 12 12:20:11 2015 +0530 cpufreq: Create for_each_{in}active_policy() policy->cpus is cleared unconditionally now on hotplug-out of a CPU and it can be checked to know if a policy is active or not. Create helper routines to iterate over all active/inactive policies, based on policy->cpus field. Replace all instances of for_each_policy() with for_each_active_policy() to make them iterate only for active policies. (We haven't made changes yet to keep inactive policies in the same list, but that will be followed in a later patch). Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq.c | 66 ++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 59 insertions(+), 7 deletions(-) commit 6c4178163a872cbeef70fd3354222ee4b238e7a2 Author: Stephen Boyd Date: Fri May 1 16:10:28 2015 -0700 clk: u300: Silence sparse warnings drivers/clk/clk-u300.c:1175:13: warning: symbol 'u300_clk_init' was not declared. Should it be static? Acked-by: Linus Walleij Signed-off-by: Stephen Boyd drivers/clk/clk-u300.c | 1 + 1 file changed, 1 insertion(+) commit 61ad23a14ac11002addd2b7f9235e15c033f6e3b Author: Stephen Boyd Date: Fri May 1 16:09:33 2015 -0700 clk: moxart: Silence sparse warnings drivers/clk/clk-moxart.c:18:13: warning: symbol 'moxart_of_pll_clk_init' was not declared. Should it be static? drivers/clk/clk-moxart.c:56:13: warning: symbol 'moxart_of_apb_clk_init' was not declared. Should it be static? Cc: Jonas Jensen Signed-off-by: Stephen Boyd drivers/clk/clk-moxart.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6ae5fd381251993a650a7fad51bd9318c19a6c80 Author: Stephen Boyd Date: Fri May 1 14:14:57 2015 -0700 clk: xgene: Silence sparse warnings drivers/clk/clk-xgene.c:77:43: warning: incorrect type in argument 1 (different address spaces) drivers/clk/clk-xgene.c:77:43: expected void *csr drivers/clk/clk-xgene.c:77:43: got void [noderef] * ... drivers/clk/clk-xgene.c: In function ‘xgene_clk_enable’: drivers/clk/clk-xgene.c:237:3: warning: format ‘%LX’ expects argument of type ‘long long unsigned int’, but argument 4 has type ‘phys_addr_t’ [-Wformat] drivers/clk/clk-xgene.c:248:3: warning: format ‘%LX’ expects argument of type ‘long long unsigned int’, but argument 4 has type ‘phys_addr_t’ [-Wformat] Signed-off-by: Stephen Boyd drivers/clk/clk-xgene.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) commit 52127755fe6bc5a7a6d28540938ccdfa2a7b5f90 Author: Stephen Boyd Date: Fri May 1 14:03:08 2015 -0700 clk: mmp: Silence sparse warnings drivers/clk/mmp/clk-apbc.c:118:16: warning: symbol 'clk_apbc_ops' was not declared. Should it be static? drivers/clk/mmp/clk-apmu.c:64:16: warning: symbol 'clk_apmu_ops' was not declared. Should it be static? Cc: Chao Xie Signed-off-by: Stephen Boyd drivers/clk/mmp/clk-apbc.c | 2 +- drivers/clk/mmp/clk-apmu.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit e45310bfcd21d797f9d36bd4883e600bab645723 Author: Stephen Boyd Date: Fri May 1 13:11:31 2015 -0700 clk: socfpga: Silence sparse warning drivers/clk/socfpga/clk-periph.c:79:39: warning: Using plain integer as NULL pointer Cc: Dinh Nguyen Signed-off-by: Stephen Boyd drivers/clk/socfpga/clk-periph.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 11bee5e19afd11a42a03df9025f82a1bab4d5595 Author: Stephen Boyd Date: Fri May 1 13:02:26 2015 -0700 clk: versatile: Silence sparse warnings drivers/clk/versatile/clk-sp810.c:159:29: error: incompatible types for operation (<=) drivers/clk/versatile/clk-sp810.c:159:29: left side has type char const * drivers/clk/versatile/clk-sp810.c:159:29: right side has type int drivers/clk/versatile/clk-sp810.c:159:53: error: incompatible types for operation (<=) drivers/clk/versatile/clk-sp810.c:159:53: left side has type char const * drivers/clk/versatile/clk-sp810.c:159:53: right side has type int drivers/clk/versatile/clk-sp810.c:138:13: warning: symbol 'clk_sp810_of_setup' was not declared. Should it be static? Acked: Pawel Moll Signed-off-by: Stephen Boyd drivers/clk/versatile/clk-sp810.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 412d6b47cc6e33a04fe03be1db725202417f4d72 Author: Stephen Boyd Date: Fri May 1 12:59:32 2015 -0700 clk: ti: Silence sparse warnings drivers/clk/ti/clk.c:125:31: warning: incorrect type in return expression (different address spaces) drivers/clk/ti/clk.c:125:31: expected void [noderef] * drivers/clk/ti/clk.c:125:31: got void * drivers/clk/ti/clk.c:132:31: warning: incorrect type in return expression (different address spaces) drivers/clk/ti/clk.c:132:31: expected void [noderef] * drivers/clk/ti/clk.c:132:31: got void * drivers/clk/ti/dpll.c:180:14: warning: symbol '_get_reg' was not declared. Should it be static? drivers/clk/ti/fapll.c:624:32: warning: Using plain integer as NULL pointer drivers/clk/ti/fapll.c:625:31: warning: Using plain integer as NULL pointer drivers/clk/ti/fapll.c:630:40: warning: Using plain integer as NULL pointer drivers/clk/ti/clk-dra7-atl.c:158:22: warning: symbol 'atl_clk_ops' was not declared. Should it be static? drivers/clk/ti/clk-dra7-atl.c:170:39: warning: Using plain integer as NULL pointer Acked-by: Peter Ujfalusi Acked-by: Tero Kristo Signed-off-by: Stephen Boyd drivers/clk/ti/clk-dra7-atl.c | 4 ++-- drivers/clk/ti/clk.c | 4 ++-- drivers/clk/ti/dpll.c | 2 +- drivers/clk/ti/fapll.c | 6 +++--- 4 files changed, 8 insertions(+), 8 deletions(-) commit 8e6dd77ccc324a57d5f37c7f8b1e37319fb2e2b3 Author: Stephen Boyd Date: Fri May 1 12:45:53 2015 -0700 clk: st: Silence sparse warnings drivers/clk/st/clkgen-mux.c:134:4: warning: symbol 'clkgena_divmux_get_parent' was not declared. Should it be static? drivers/clk/st/clkgen-mux.c:171:15: warning: symbol 'clkgena_divmux_recalc_rate' was not declared. Should it be static? drivers/clk/st/clkgen-mux.c:218:12: warning: symbol 'clk_register_genamux' was not declared. Should it be static? drivers/clk/st/clkgen-mux.c:388:13: warning: symbol 'st_of_clkgena_divmux_setup' was not declared. Should it be static? drivers/clk/st/clkgen-mux.c:488:13: warning: symbol 'st_of_clkgena_prediv_setup' was not declared. Should it be static? drivers/clk/st/clkgen-mux.c:625:13: warning: symbol 'st_of_clkgen_mux_setup' was not declared. Should it be static? drivers/clk/st/clkgen-mux.c:702:13: warning: symbol 'st_of_clkgen_vcc_setup' was not declared. Should it be static? drivers/clk/st/clkgen-pll.c:273:15: warning: symbol 'recalc_stm_pll800c65' was not declared. Should it be static? drivers/clk/st/clkgen-pll.c:300:15: warning: symbol 'recalc_stm_pll1600c65' was not declared. Should it be static? drivers/clk/st/clkgen-pll.c:324:15: warning: symbol 'recalc_stm_pll3200c32' was not declared. Should it be static? drivers/clk/st/clkgen-pll.c:346:15: warning: symbol 'recalc_stm_pll1200c32' was not declared. Should it be static? drivers/clk/st/clkgen-pll.c:565:19: warning: incorrect type in assignment (different address spaces) drivers/clk/st/clkgen-pll.c:565:19: expected void [noderef] *reg drivers/clk/st/clkgen-pll.c:565:19: got void * drivers/clk/st/clkgen-pll.c:576:18: warning: incorrect type in assignment (different address spaces) drivers/clk/st/clkgen-pll.c:576:18: expected void [noderef] *reg drivers/clk/st/clkgen-pll.c:576:18: got void * drivers/clk/st/clkgen-pll.c:693:53: warning: incorrect type in argument 2 (different address spaces) drivers/clk/st/clkgen-pll.c:693:53: expected void *[noderef] reg drivers/clk/st/clkgen-pll.c:693:53: got void [noderef] *[assigned] pll_base drivers/clk/st/clkgen-fsyn.c:495:5: warning: symbol 'clk_fs660c32_vco_get_rate' was not declared. Should it be static? drivers/clk/st/clkgen-fsyn.c:522:5: warning: symbol 'clk_fs660c32_vco_get_params' was not declared. Should it be static? drivers/clk/st/clk-flexgen.c:119:15: warning: symbol 'flexgen_recalc_rate' was not declared. Should it be static? drivers/clk/st/clk-flexgen.c:177:12: warning: symbol 'clk_register_flexgen' was not declared. Should it be static? drivers/clk/st/clk-flexgen.c:263:13: warning: symbol 'st_of_flexgen_setup' was not declared. Should it be static? Signed-off-by: Stephen Boyd drivers/clk/st/clk-flexgen.c | 6 +++--- drivers/clk/st/clkgen-fsyn.c | 4 ++-- drivers/clk/st/clkgen-mux.c | 14 +++++++------- drivers/clk/st/clkgen-pll.c | 10 +++++----- 4 files changed, 17 insertions(+), 17 deletions(-) commit b011d386e9efdef6f5776435aad97a5bf302c041 Author: Stephen Boyd Date: Fri May 1 12:39:52 2015 -0700 clk: socfpga: Silence sparse warning drivers/clk/socfpga/clk-gate.c:227:40: warning: Using plain integer as NULL pointer Cc: Dinh Nguyen Signed-off-by: Stephen Boyd drivers/clk/socfpga/clk-gate.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f53f551b11d112f6cdd6ab9ca320bfd890a9b021 Author: Stephen Boyd Date: Fri May 1 12:36:24 2015 -0700 clk: sirf: Silence sparse warnings These are __iomem pointers. Mark them appropriately so we don't get sparse errors like drivers/clk/sirf/clk-common.c:60:16: warning: incorrect type in argument 1 (different address spaces) drivers/clk/sirf/clk-common.c:60:16: expected void const volatile [noderef] *addr drivers/clk/sirf/clk-common.c:60:16: got void * Cc: Barry Song Signed-off-by: Stephen Boyd drivers/clk/sirf/clk-common.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 43f535702bb2c7b96091c0267fc105d44c18348c Author: Stephen Boyd Date: Fri May 1 12:33:49 2015 -0700 clk: emev2: Silence sparse warnings drivers/clk/shmobile/clk-emev2.c:37:14: warning: symbol 'smu_base' was not declared. Should it be static? Cc: Takashi Yoshii Cc: Magnus Damm Acked-by: Simon Horman Signed-off-by: Stephen Boyd drivers/clk/shmobile/clk-emev2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f6704f9e1995c862d5281fc9efc0b4e95ee9f9b9 Author: Stephen Boyd Date: Fri May 1 12:32:17 2015 -0700 clk: samsung: Silence sparse warnings drivers/clk/samsung/clk-exynos5260.c:138:40: warning: Using plain integer as NULL pointer drivers/clk/samsung/clk-exynos5260.c:328:40: warning: Using plain integer as NULL pointer drivers/clk/samsung/clk-exynos5260.c:392:40: warning: Using plain integer as NULL pointer drivers/clk/samsung/clk-exynos5260.c:494:40: warning: Using plain integer as NULL pointer drivers/clk/samsung/clk-exynos5260.c:583:40: warning: Using plain integer as NULL pointer drivers/clk/samsung/clk-exynos5260.c:644:40: warning: Using plain integer as NULL pointer drivers/clk/samsung/clk-exynos5260.c:779:40: warning: Using plain integer as NULL pointer drivers/clk/samsung/clk-exynos5260.c:898:40: warning: Using plain integer as NULL pointer drivers/clk/samsung/clk-exynos5260.c:962:40: warning: Using plain integer as NULL pointer drivers/clk/samsung/clk-exynos5260.c:1018:40: warning: Using plain integer as NULL pointer drivers/clk/samsung/clk-exynos5260.c:1165:40: warning: Using plain integer as NULL pointer drivers/clk/samsung/clk-exynos5260.c:1373:40: warning: Using plain integer as NULL pointer drivers/clk/samsung/clk-exynos5260.c:1829:40: warning: Using plain integer as NULL pointer Acked-by: Sylwester Nawrocki Signed-off-by: Stephen Boyd drivers/clk/samsung/clk-exynos5260.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) commit 4a77f817b32031aa13992710dfd5c2ec4f3949be Author: Stephen Boyd Date: Fri May 1 12:25:53 2015 -0700 clk: hix5hd2: Silence sparse warnings drivers/clk/hisilicon/clk-hix5hd2.c:255:13: warning: symbol 'hix5hd2_clk_register_complex' was not declared. Should it be static? Acked-by: Zhangfei Gao Signed-off-by: Stephen Boyd drivers/clk/hisilicon/clk-hix5hd2.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 47c18e4cd99463241fb8dfd9ac37a59cc4b65c82 Author: Stephen Boyd Date: Fri May 1 12:24:44 2015 -0700 clk: berlin: Silence sparse warning drivers/clk/berlin/berlin2-pll.c:94:12: warning: symbol 'berlin2_pll_register' was not declared. Should it be static? Cc: Alexandre Belloni Acked-by: Sebastian Hesselbarth Signed-off-by: Stephen Boyd drivers/clk/berlin/berlin2-pll.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) commit 7926b3f8c62628f51a85bbc5fd806087d3fdfbac Author: Stephen Boyd Date: Fri May 1 12:23:08 2015 -0700 clk: bcm/kona: Remove ccu_list This list doesn't look to be used. Let's remove it and any associated code that would be manipulating this list. This also silences this error: drivers/clk/bcm/clk-kona-setup.c:24:1: warning: symbol 'ccu_list' was not declared. Should it be static? Reviewed-by: Alex Elder Cc: Tim Kryger Signed-off-by: Stephen Boyd drivers/clk/bcm/clk-kona-setup.c | 4 ---- drivers/clk/bcm/clk-kona.h | 2 -- 2 files changed, 6 deletions(-) commit 4cca1be4bca4b21657e2d99c43710dec14658673 Author: Stephen Boyd Date: Fri May 1 12:21:53 2015 -0700 clk: bcm/kona: Silence sparse warnings drivers/clk/bcm/clk-kona.c:1243:16: warning: odd constant _Bool cast (ffffffffffffffea becomes 1) Reviewed-by: Alex Elder Cc: Tim Kryger Signed-off-by: Stephen Boyd drivers/clk/bcm/clk-kona.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9a39222db60cca13c78effbff745801c7b3c17a9 Author: Stephen Boyd Date: Fri May 1 12:17:37 2015 -0700 clk: max-gen: Silence sparse warnings drivers/clk/clk-max-gen.c:82:16: warning: symbol 'max_gen_clk_ops' was not declared. Should it be static? drivers/clk/clk-max-gen.c:109:5: warning: symbol 'max_gen_clk_probe' was not declared. Should it be static? drivers/clk/clk-max-gen.c:183:5: warning: symbol 'max_gen_clk_remove' was not declared. Should it be static? Acked-by: Javier Martinez Canillas Signed-off-by: Stephen Boyd drivers/clk/clk-max-gen.c | 2 ++ 1 file changed, 2 insertions(+) commit 562ef0b098552970fd25e9c960691e6c2bcb1181 Author: Stephen Boyd Date: Fri May 1 12:16:14 2015 -0700 clk: Silence sparse warnings about __clk_{get,put}() drivers/clk/clk.c:2700:5: warning: symbol '__clk_get' was not declared. Should it be static? drivers/clk/clk.c:2713:6: warning: symbol '__clk_put' was not declared. Should it be static? Signed-off-by: Stephen Boyd drivers/clk/clk.c | 1 + 1 file changed, 1 insertion(+) commit 2bb5d1b88bb5c8dc929d3a24d5ad327c0281fdbf Author: Stephen Boyd Date: Fri May 1 12:14:24 2015 -0700 clk: gpio-gate: Don't export __init functions This function is marked as __init, so exposing it to modules doesn't make any sense and it isn't used by modules anyway. drivers/clk/clk-gpio-gate.c:192:13: warning: symbol 'of_gpio_gate_clk_setup' was not declared. Should it be static? Cc: Jyri Sarha Signed-off-by: Stephen Boyd drivers/clk/clk-gpio-gate.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 147301450248d51c5913aff8476cd326f1de557e Author: Sudeep Holla Date: Wed May 13 13:35:52 2015 +0100 cpufreq: arm_big_little: remove compile-time dependency on BIG_LITTLE With the addition of switcher code, there's compile-time dependency on BIG_LITTLE to get arm_big_little driver compiling on ARM64. Since ARM64 will never add support for bL switcher, it's better to remove the dependency so that the driver can be reused on ARM64 platforms. This patch adds stubs to remove BIG_LITTLE dependency in the driver. Signed-off-by: Sudeep Holla Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/Kconfig.arm | 2 +- drivers/cpufreq/arm_big_little.c | 27 ++++++++++++++++++++++----- 2 files changed, 23 insertions(+), 6 deletions(-) commit d122db7e86669244759226bfdd2b9d623d5c6ae8 Author: Stephen Boyd Date: Thu May 14 16:47:10 2015 -0700 clk: basic-types: Remove useless allocation failure printks Printing an error on kmalloc() failures is unnecessary. Remove the print and use *ptr in sizeof() for future-proof code. Signed-off-by: Stephen Boyd drivers/clk/clk-composite.c | 4 +--- drivers/clk/clk-divider.c | 6 ++---- drivers/clk/clk-fixed-factor.c | 4 +--- drivers/clk/clk-fixed-rate.c | 6 ++---- drivers/clk/clk-fractional-divider.c | 4 +--- drivers/clk/clk-gate.c | 6 ++---- 6 files changed, 9 insertions(+), 21 deletions(-) commit 0fae1997f09796aca8ada5edc028aef587f6716c Author: Mauro Carvalho Chehab Date: Wed May 13 18:51:19 2015 -0300 [media] dib0700: avoid the risk of forgetting to add the adapter's size For every frontend entry, we need to add the adapter's size. There are already two patches fixing it. So, it doesn't seem trivial to keep it there at the right place. Also, currently, the indentation is wrong on all places. So, it seems that keeping it right is not too trivial. Better to use a macro that would do it for us, at least while this is not converted to dvb-usb-v2. Compile-tested only. Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/dvb-usb/dib0700_devices.c | 117 +++++++++------------------- 1 file changed, 35 insertions(+), 82 deletions(-) commit 70923bd26c732ac2d9e248d80214df6dfd75f78c Author: Jiri Olsa Date: Thu May 14 12:31:48 2015 -0300 perf tools: Make flex/bison calls honour V=1 Reported-by: Arnaldo Carvalho de Melo Signed-off-by: Jiri Olsa Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-dnc2ggwhffdpuvijwq4rkic9@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/Build | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit c188e7acd24f132279a91f4fe1fb3b078e0329dd Author: Arnaldo Carvalho de Melo Date: Thu May 14 17:39:03 2015 -0300 perf trace: Fix the build on older distros Such as RHEL5, where CLOEXEC, NONBLOCK flags are not present, use a ifdef+define approach instead to make it build on all distros. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Cc: Vinson Lee Link: http://lkml.kernel.org/n/tip-pioazikk9d9oz5qdeor3eldu@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-trace.c | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) commit 75e0678e7095c486a1b39ea560f8eb51a2714d6d Author: Rafael J. Wysocki Date: Sun May 10 01:23:35 2015 +0200 PM / tick: Add tracepoints for suspend-to-idle diagnostics Add suspend/resume tracepoints to tick_freeze() and tick_unfreeze() to catch when timekeeping is suspended and resumed during suspend-to-idle so as to be able to check whether or not we enter the "frozen" state and to measure the time spent in it. Signed-off-by: Rafael J. Wysocki Acked-by: Thomas Gleixner kernel/time/tick-common.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) commit 54d7c01d3ed699cfc213115eaecfe1175cfaff8f Author: Willem de Bruijn Date: Thu May 14 15:25:02 2015 -0400 packet: fix warnings in rollover lock contention Avoid two xchg calls whose return values were unused, causing a warning on some architectures. The relevant variable is a hint and read without mutual exclusion. This fix makes all writers hold the receive_queue lock. Suggested-by: David S. Miller Signed-off-by: Willem de Bruijn Signed-off-by: David S. Miller net/packet/af_packet.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) commit 4ffd3c730e7ba2eb53a427f1a2bba2eec5f2d97b Author: françois romieu Date: Thu May 14 20:17:22 2015 +0200 net: batch of last_rx update avoidance in ethernet drivers. None of those drivers uses last_rx for its own needs. See 4dc89133f49b8cfd77ba7e83f5960aed63aaa99e ("net: add a comment on netdev->last_rx") for reference. Signed-off-by: Francois Romieu Cc: Tom Lendacky Cc: Zhangfei Gao Cc: Jeff Kirsher Cc: Wingman Kwok Cc: Murali Karicheri Cc: Chris Metcalf Signed-off-by: David S. Miller drivers/net/ethernet/amd/xgbe/xgbe-drv.c | 1 - drivers/net/ethernet/hisilicon/hix5hd2_gmac.c | 1 - drivers/net/ethernet/intel/i40e/i40e_txrx.c | 2 -- drivers/net/ethernet/intel/i40evf/i40e_txrx.c | 2 -- drivers/net/ethernet/moxa/moxart_ether.c | 1 - drivers/net/ethernet/ti/netcp_core.c | 1 - drivers/net/ethernet/tile/tilepro.c | 3 --- 7 files changed, 11 deletions(-) commit 77978089ddc90347644cc057e6b6cd169ac9abd4 Author: Brendan McGrath Date: Fri Apr 10 03:39:22 2015 -0300 [media] saa7164: use an MSI interrupt when available Enhances driver to use an MSI interrupt when available. Adds the module option 'enable_msi' (type bool) which by default is enabled. Can be set to 'N' to disable. Fixes (or can reduce the occurrence of) a crash which is most commonly reported when both digital tuners of the saa7164 chip is in use. A reported example can be found here: http://permalink.gmane.org/gmane.linux.drivers.video-input-infrastructure/83948 Reviewed-by: Steven Toth Signed-off-by: Brendan McGrath Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/saa7164/saa7164-core.c | 66 ++++++++++++++++++++++++++++---- drivers/media/pci/saa7164/saa7164.h | 1 + 2 files changed, 60 insertions(+), 7 deletions(-) commit 4c12adad26f059fa207d6b07aa61f39bc459211b Author: David Howells Date: Thu Apr 9 16:36:49 2015 -0300 [media] dvb: Document FE_SCALE_DECIBEL units consistently In comments and in the documentation, the units of properties marked with the FE_SCALE_DECIBEL scale are specified in terms of 1/1000 dB or 0.0001 dB. This is inconsistent, however, as 1/1000 is 0.001, not 0.0001. Note that the v4l-utils divide the value by 1000 for the signal strength suggesting that the 1/1000 is correct. Settle on millidecibels, ie. 1/1000dB or 0.001dB. Signed-off-by: David Howells Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/dvbproperty.xml | 4 ++-- include/uapi/linux/dvb/frontend.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit 24d795d361b2cd5cb6a6915ad4df61db7a2a9bef Author: Laurent Navet Date: Thu Apr 2 17:33:28 2015 -0300 [media] fc0013: remove unneeded test The same code is executed if ret is true or false, so this test can be removed. Fix Coverity CID 1268782. Signed-off-by: Laurent Navet Signed-off-by: Mauro Carvalho Chehab drivers/media/tuners/fc0013.c | 2 -- 1 file changed, 2 deletions(-) commit e0cdcda508f110b7ec190dc7c5eb2869ba73a535 Author: Krzysztof Kozlowski Date: Wed May 13 15:54:40 2015 +0900 clk: ti: dra7-atl-clock: Fix possible ERR_PTR dereference of_clk_get_from_provider() returns ERR_PTR on failure. The dra7-atl-clock driver was not checking its return value and immediately used it in __clk_get_hw(). __clk_get_hw() dereferences supplied clock, if it is not NULL, so in that case it would dereference an ERR_PTR. Fixes: 9ac33b0ce81f ("CLK: TI: Driver for DRA7 ATL (Audio Tracking Logic)") Signed-off-by: Krzysztof Kozlowski Signed-off-by: Stephen Boyd drivers/clk/ti/clk-dra7-atl.c | 5 +++++ 1 file changed, 5 insertions(+) commit ef69449b1c06668c3f08ae6d147833cf52c6381c Author: Dominik Brodowski Date: Thu May 14 15:31:28 2015 +0200 ACPI: fix kernel-parameters ordering in Documentation Signed-off-by: Dominik Brodowski Signed-off-by: Rafael J. Wysocki Documentation/kernel-parameters.txt | 62 ++++++++++++++++++------------------- 1 file changed, 31 insertions(+), 31 deletions(-) commit 2bad7e27e02ce0984c17e4074c63e7691291244f Author: Dominik Brodowski Date: Thu May 14 15:31:25 2015 +0200 ACPI / osl: use same type for acpi_predefined_names values as in definition In the definition of struct acpi_predefined_names, value is of type char *. Make the OSL override function also work with type char * (or, more precisely, with a pointer to it). Signed-off-by: Dominik Brodowski Signed-off-by: Rafael J. Wysocki drivers/acpi/osl.c | 2 +- include/acpi/acpiosxf.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 0d94039fabccaa81d87eafdac509d0dda4df2f7b Author: Rafael J. Wysocki Date: Sun May 10 01:19:52 2015 +0200 cpuidle: Select a different state on tick_broadcast_enter() failures If tick_broadcast_enter() fails in cpuidle_enter_state(), try to find another idle state to enter instead of invoking default_idle_call() immediately and returning -EBUSY which should increase the chances of saving some energy in those cases. Signed-off-by: Rafael J. Wysocki Reviewed-by: Preeti U Murthy Tested-by: Preeti U Murthy Tested-by: Sudeep Holla Acked-by: Kevin Hilman drivers/cpuidle/cpuidle.c | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) commit 827a5aefc542b8fb17c00de06118e5cd0e3800f2 Author: Rafael J. Wysocki Date: Sun May 10 01:18:46 2015 +0200 sched / idle: Call default_idle_call() from cpuidle_enter_state() The check of the cpuidle_enter() return value against -EBUSY made in call_cpuidle() will not be necessary any more if cpuidle_enter_state() calls default_idle_call() directly when it is about to return -EBUSY, so make that happen and eliminate the check. Signed-off-by: Rafael J. Wysocki Reviewed-by: Preeti U Murthy Tested-by: Preeti U Murthy Tested-by: Sudeep Holla Acked-by: Kevin Hilman drivers/cpuidle/cpuidle.c | 4 +++- include/linux/cpuidle.h | 1 + kernel/sched/idle.c | 20 +++++++------------- 3 files changed, 11 insertions(+), 14 deletions(-) commit faad38492814112e3e7ce94d90123bbe301fff33 Author: Rafael J. Wysocki Date: Sun May 10 01:18:03 2015 +0200 sched / idle: Call idle_set_state() from cpuidle_enter_state() Introduce a wrapper function around idle_set_state() called sched_idle_set_state() that will pass this_rq() to it as the first argument and make cpuidle_enter_state() call the new function before and after entering the target state. At the same time, remove direct invocations of idle_set_state() from call_cpuidle(). This will allow the invocation of default_idle_call() to be moved from call_cpuidle() to cpuidle_enter_state() safely and call_cpuidle() to be simplified a bit as a result. Signed-off-by: Rafael J. Wysocki Reviewed-by: Preeti U Murthy Tested-by: Preeti U Murthy Tested-by: Sudeep Holla Acked-by: Kevin Hilman drivers/cpuidle/cpuidle.c | 6 ++++++ include/linux/cpuidle.h | 3 +++ kernel/sched/idle.c | 15 +++++++++------ 3 files changed, 18 insertions(+), 6 deletions(-) commit 8cda4c3ad480a974324532b6dacc67b9c1deb207 Author: Luke Dashjr Date: Thu May 14 18:58:01 2015 +0000 SubmittingPatches: Clarify requirements for patches directed toward stable I misunderstood this section as simply asking me to add an email Cc, and was unaware of the existence of Documentation/stable_kernel_rules.txt. Hopefully this clarification will help save maintainers and new/rare submitters time in the future. Signed-off-by: Luke Dashjr Signed-off-by: Jonathan Corbet Documentation/SubmittingPatches | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 8c8a457a60050d5922676f81913d87e4af6fd97b Author: Nikolay Borisov Date: Thu May 14 14:31:01 2015 +0300 sched: Remove redundant #ifdef Two adjacent members in task_struct were guarded by the same #define, so we can merge the two blocks. Signed-off-by: Nikolay Borisov Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1431603061-29408-1-git-send-email-kernel@kyup.com Signed-off-by: Ingo Molnar include/linux/sched.h | 2 -- 1 file changed, 2 deletions(-) commit 7852dada15ecc8fab1447fab9f075046b5f11e50 Merge: fa787ae ea48b2b Author: David S. Miller Date: Thu May 14 13:40:55 2015 -0400 Merge branch 'phy_turn_around' Florian Fainelli says: ==================== net: phy: broken turn-around support This is an attempt at solving the broken turn-around problem in a way that is not specific to the mdio-gpio driver, since it affects different kinds of platforms. We cannot make that localized to PHY device drivers because probing the PHY device which has a broken turn-around can fail as early as in get_phy_id(), therefore we need a bit of help from Device Tree/platform_data. ==================== Signed-off-by: David S. Miller commit ea48b2b8ada594e985b86da98b0c966d1ae23a4b Author: Florian Fainelli Date: Tue May 12 10:33:26 2015 -0700 net: phy: mdio-gpio: Handle phy_ignore_ta_mask Update mdiobb_read() to read whether the PHY has a broken turn-around, and if it does, ignore it to make the read succeeed. Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/phy/mdio-bitbang.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit ab6016e0c134c3a564e6750f5b246ba17ada4686 Author: Florian Fainelli Date: Tue May 12 10:33:25 2015 -0700 of: mdio: Add a "broken-turn-around" property Some Ethernet PHY devices/switches may not properly release the MDIO bus during turn-around time, and fail to drive it low, which can be seen by some controllers as a read failure, while the data clocked in is still correct. Add a boolean property "broken-turn-around" which is parsed by the generic MDIO bus probing code and will set the corresponding bit in the MDIO bus phy_ignore_ta_mask bitmask for MDIO bus drivers to utilize that information. Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller Documentation/devicetree/bindings/net/phy.txt | 3 +++ drivers/of/of_mdio.c | 3 +++ 2 files changed, 6 insertions(+) commit 922f2dd1b65a888e34c472979460dc23211750a2 Author: Florian Fainelli Date: Tue May 12 10:33:24 2015 -0700 net: phy: Add phy_ignore_ta_mask to account for broken turn-around Some PHY devices/switches will not release the turn-around line as they should do at the end of a MDIO transaction. To help with such situations, allow MDIO bus drivers to be made aware of such restrictions. Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller include/linux/phy.h | 3 +++ 1 file changed, 3 insertions(+) commit fa787ae0624c46d0c894c19ae74f53d7bb4406f8 Author: Ying Xue Date: Wed May 13 11:20:38 2015 +0800 tipc: use sock_create_kern interface to create kernel socket After commit eeb1bd5c40ed ("net: Add a struct net parameter to sock_create_kern"), we should use sock_create_kern() to create kernel socket as the interface doesn't reference count struct net any more. Signed-off-by: Ying Xue Signed-off-by: David S. Miller net/tipc/server.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit da7ee60b03bd66bb10974d7444aa444de6391312 Author: Antti Seppälä Date: Tue Mar 31 14:48:12 2015 -0300 [media] rc: nuvoton-cir: Add support for writing wakeup samples via sysfs filter callback Nuvoton-cir utilizes the encoding capabilities of rc-core to convert scancodes from user space to pulse/space format understood by the underlying hardware. Converted samples are then written to the wakeup fifo along with other necessary configuration to enable wake up functionality. Signed-off-by: Antti Seppälä Signed-off-by: James Hogan Cc: Jarod Wilson Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/nuvoton-cir.c | 127 +++++++++++++++++++++++++++++++++++++++++ drivers/media/rc/nuvoton-cir.h | 1 + include/media/rc-core.h | 1 + 3 files changed, 129 insertions(+) commit 2e4ebde269236da2a41183522127715b6d9d80ce Author: James Hogan Date: Tue Mar 31 14:48:11 2015 -0300 [media] rc: rc-loopback: Add loopback of filter scancodes Add the s_wakeup_filter callback to the rc-loopback driver, which instead of setting the filter just feeds the scancode back through the input device so that it can be verified. Signed-off-by: James Hogan Signed-off-by: Antti Seppälä Cc: David Härdeman Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/rc-loopback.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) commit 0d830b2d1295fee82546d57185da5a6604f11ae2 Author: James Hogan Date: Tue Mar 31 14:48:10 2015 -0300 [media] rc: rc-core: Add support for encode_wakeup drivers Add support in rc-core for drivers which implement the wakeup scancode filter by encoding the scancode using the raw IR encoders. This is by way of rc_dev::encode_wakeup which should be set to true to make the allowed wakeup protocols the same as the set of raw IR encoders. As well as updating the sysfs interface to know which wakeup protocols are allowed for encode_wakeup drivers, also ensure that the IR decoders/encoders are loaded when an encode_wakeup driver is registered. Signed-off-by: James Hogan Signed-off-by: Antti Seppälä Cc: David Härdeman Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/rc-core-priv.h | 1 + drivers/media/rc/rc-ir-raw.c | 17 +++++++++++++++++ drivers/media/rc/rc-main.c | 7 ++++++- include/media/rc-core.h | 3 +++ 4 files changed, 27 insertions(+), 1 deletion(-) commit dd3aa3b5fbf61adb0ef5d44a6753646b767b9c77 Author: Brian Haley Date: Thu May 14 13:20:15 2015 -0400 cls_flower: Fix compile error Fix compile error in net/sched/cls_flower.c net/sched/cls_flower.c: In function ‘fl_set_key’: net/sched/cls_flower.c:240:3: error: implicit declaration of function ‘tcf_change_indev’ [-Werror=implicit-function-declaration] err = tcf_change_indev(net, tb[TCA_FLOWER_INDEV]); Introduced in 77b9900ef53ae Fixes: 77b9900ef53ae ("tc: introduce Flower classifier") Signed-off-by: Brian Haley Signed-off-by: David S. Miller net/sched/cls_flower.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit cf257e288ad3a134d4bb809c542a3ae6c87ddfa3 Author: Antti Seppälä Date: Tue Mar 31 14:48:09 2015 -0300 [media] rc: ir-rc6-decoder: Add encode capability Add the capability to encode RC-6 and RC-6A scancodes as raw events. The protocol is chosen based on the specified protocol mask, and whether all the required bits are set in the scancode mask, and none of the unused bits are set in the scancode data. The Manchester modulation helper is used several times with various timings so that RC-6 header preamble, the header, header trailing bit and the data itself can be modulated correctly. Signed-off-by: Antti Seppälä Cc: James Hogan Cc: David Härdeman Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/ir-rc6-decoder.c | 122 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 122 insertions(+) commit a0466f15b4654cf1ac9e387d7c1a401eff494b4f Author: James Hogan Date: Tue Mar 31 14:48:08 2015 -0300 [media] rc: ir-rc5-decoder: Add encode capability Add the capability to encode RC-5, RC-5X and RC-5-SZ scancodes as raw events. The protocol is chosen based on the specified protocol mask, and whether all the required bits are set in the scancode mask, and none of the unused bits are set in the scancode data. For example a scancode filter with bit 16 set in both data and mask is unambiguously RC-5X. The Manchester modulation helper is used, and for RC-5X it is used twice with two sets of timings, the first with a short trailer space for the space in the middle, and the second with no leader so that it can continue the space. The encoding in RC-5-SZ first inserts a pulse and then simply utilizes the generic Manchester encoder available in rc-core. Signed-off-by: James Hogan Signed-off-by: Antti Seppälä Cc: David Härdeman Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/ir-rc5-decoder.c | 116 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 116 insertions(+) commit 1d971d927efa2e10194c96ed0475b6d6054342d8 Author: Antti Seppälä Date: Tue Mar 31 14:48:07 2015 -0300 [media] rc: rc-ir-raw: Add Manchester encoder (phase encoder) helper Adding a simple Manchester encoder to rc-core. Manchester coding is used by at least RC-5 and RC-6 protocols and their variants. Signed-off-by: Antti Seppälä Signed-off-by: James Hogan Cc: David Härdeman Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/rc-core-priv.h | 33 ++++++++++++++++ drivers/media/rc/rc-ir-raw.c | 85 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 118 insertions(+) commit 9869da5bacc5c9b865a183bd36c04be76cdd325d Author: James Hogan Date: Tue Mar 31 14:48:06 2015 -0300 [media] rc: rc-ir-raw: Add scancode encoder callback Add a callback to raw ir handlers for encoding and modulating a scancode to a set of raw events. This could be used for transmit, or for converting a wakeup scancode filter to a form that is more suitable for raw hardware wake up filters. Signed-off-by: James Hogan Signed-off-by: Antti Seppälä Cc: David Härdeman Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/rc-core-priv.h | 2 ++ drivers/media/rc/rc-ir-raw.c | 37 +++++++++++++++++++++++++++++++++++++ include/media/rc-core.h | 3 +++ 3 files changed, 42 insertions(+) commit b55b10bebb86a436bebd5c754f80076ad51f4068 Merge: c16ead7 dd3f9e7 Author: David S. Miller Date: Thu May 14 12:24:46 2015 -0400 Merge branch 'tipc-next' Jon Maloy says: ==================== tipc: some link layer improvements We continue eliminating redundant complexity at the link layer, and add a couple of improvements to the packet sending functionality. ==================== Signed-off-by: David S. Miller commit dd3f9e70f59f43a5712eba9cf3ee4f1e6999540c Author: Jon Paul Maloy Date: Thu May 14 10:46:18 2015 -0400 tipc: add packet sequence number at instant of transmission Currently, the packet sequence number is updated and added to each packet at the moment a packet is added to the link backlog queue. This is wasteful, since it forces the code to traverse the send packet list packet by packet when adding them to the backlog queue. It would be better to just splice the whole packet list into the backlog queue when that is the right action to do. In this commit, we do this change. Also, since the sequence numbers cannot now be assigned to the packets at the moment they are added the backlog queue, we do instead calculate and add them at the moment of transmission, when the backlog queue has to be traversed anyway. We do this in the function tipc_link_push_packet(). Reviewed-by: Erik Hugne Reviewed-by: Ying Xue Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/bcast.c | 6 +----- net/tipc/link.c | 37 ++++++++++++++++++++++++++++--------- net/tipc/msg.c | 44 +++++++++++++++++++++----------------------- net/tipc/msg.h | 6 +++--- net/tipc/node.c | 2 +- 5 files changed, 54 insertions(+), 41 deletions(-) commit f21e897eccb5a236f4191ecc1b4391eda895d6ed Author: Jon Paul Maloy Date: Thu May 14 10:46:17 2015 -0400 tipc: improve link congestion algorithm The link congestion algorithm used until now implies two problems. - It is too generous towards lower-level messages in situations of high load by giving "absolute" bandwidth guarantees to the different priority levels. LOW traffic is guaranteed 10%, MEDIUM is guaranted 20%, HIGH is guaranteed 30%, and CRITICAL is guaranteed 40% of the available bandwidth. But, in the absence of higher level traffic, the ratio between two distinct levels becomes unreasonable. E.g. if there is only LOW and MEDIUM traffic on a system, the former is guaranteed 1/3 of the bandwidth, and the latter 2/3. This again means that if there is e.g. one LOW user and 10 MEDIUM users, the former will have 33.3% of the bandwidth, and the others will have to compete for the remainder, i.e. each will end up with 6.7% of the capacity. - Packets of type MSG_BUNDLER are created at SYSTEM importance level, but only after the packets bundled into it have passed the congestion test for their own respective levels. Since bundled packets don't result in incrementing the level counter for their own importance, only occasionally for the SYSTEM level counter, they do in practice obtain SYSTEM level importance. Hence, the current implementation provides a gap in the congestion algorithm that in the worst case may lead to a link reset. We now refine the congestion algorithm as follows: - A message is accepted to the link backlog only if its own level counter, and all superior level counters, permit it. - The importance of a created bundle packet is set according to its contents. A bundle packet created from messges at levels LOW to CRITICAL is given importance level CRITICAL, while a bundle created from a SYSTEM level message is given importance SYSTEM. In the latter case only subsequent SYSTEM level messages are allowed to be bundled into it. This solves the first problem described above, by making the bandwidth guarantee relative to the total number of users at all levels; only the upper limit for each level remains absolute. In the example described above, the single LOW user would use 1/11th of the bandwidth, the same as each of the ten MEDIUM users, but he still has the same guarantee against starvation as the latter ones. The fix also solves the second problem. If the CRITICAL level is filled up by bundle packets of that level, no lower level packets will be accepted any more. Suggested-by: Gergely Kiss Reviewed-by: Ying Xue Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/link.c | 11 ++++++----- net/tipc/msg.c | 7 +++++++ net/tipc/msg.h | 14 +++++++++----- 3 files changed, 22 insertions(+), 10 deletions(-) commit cd4eee3c2e3e01590df5cada0d56b396dd726d05 Author: Jon Paul Maloy Date: Thu May 14 10:46:16 2015 -0400 tipc: simplify link supervision checkpointing We change the sequence number checkpointing that is performed by the timer in order to discover if the peer is active. Currently, we store a checkpoint of the next expected sequence number "rcv_nxt" at each timer expiration, and compare it to the current expected number at next timeout expiration. Instead, we now use the already existing field "silent_intv_cnt" for this task. We step the counter at each timeout expiration, and zero it at each valid received packet. If no valid packet has been received from the peer after "abort_limit" number of silent timer intervals, the link is declared faulty and reset. We also remove the multiple instances of timer activation from inside the FSM function "link_state_event()", and now do it at only one place; at the end of the timer function itself. Reviewed-by: Erik Hugne Reviewed-by: Ying Xue Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/link.c | 81 ++++++++++++++++----------------------------------------- net/tipc/link.h | 2 -- 2 files changed, 22 insertions(+), 61 deletions(-) commit a97b9d3fa9bce0d78dc83a14a9e1ebb3bf5cc414 Author: Jon Paul Maloy Date: Thu May 14 10:46:15 2015 -0400 tipc: rename fields in struct tipc_link We rename some fields in struct tipc_link, in order to give them more descriptive names: next_in_no -> rcv_nxt next_out_no-> snd_nxt fsm_msg_cnt-> silent_intv_cnt cont_intv -> keepalive_intv last_retransmitted -> last_retransm There are no functional changes in this commit. Reviewed-by: Erik Hugne Reviewed-by: Ying Xue Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/bcast.c | 18 +++---- net/tipc/link.c | 155 ++++++++++++++++++++++++++++--------------------------- net/tipc/link.h | 20 +++---- 3 files changed, 97 insertions(+), 96 deletions(-) commit e4bf4f76962b0869d1048ac6c52a46e7d90eb46f Author: Jon Paul Maloy Date: Thu May 14 10:46:14 2015 -0400 tipc: simplify packet sequence number handling Although the sequence number in the TIPC protocol is 16 bits, we have until now stored it internally as an unsigned 32 bits integer. We got around this by always doing explicit modulo-65535 operations whenever we need to access a sequence number. We now make the incoming and outgoing sequence numbers to unsigned 16-bit integers, and remove the modulo operations where applicable. We also move the arithmetic inline functions for 16 bit integers to core.h, and the function buf_seqno() to msg.h, so they can easily be accessed from anywhere in the code. Reviewed-by: Erik Hugne Reviewed-by: Ying Xue Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/core.h | 20 ++++++++++++++++++++ net/tipc/link.c | 37 ++++++++++++++++++------------------- net/tipc/link.h | 41 ++++------------------------------------- net/tipc/msg.h | 17 +++++++++++------ 4 files changed, 53 insertions(+), 62 deletions(-) commit a6bf70f792963b32e410e5c3d2f96903265b090a Author: Jon Paul Maloy Date: Thu May 14 10:46:13 2015 -0400 tipc: simplify include dependencies When we try to add new inline functions in the code, we sometimes run into circular include dependencies. The main problem is that the file core.h, which really should be at the root of the dependency chain, instead is a leaf. I.e., core.h includes a number of header files that themselves should be allowed to include core.h. In reality this is unnecessary, because core.h does not need to know the full signature of any of the structs it refers to, only their type declaration. In this commit, we remove all dependencies from core.h towards any other tipc header file. As a consequence of this change, we can now move the function tipc_own_addr(net) from addr.c to addr.h, and make it inline. There are no functional changes in this commit. Reviewed-by: Erik Hugne Reviewed-by: Ying Xue Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/addr.c | 7 ------- net/tipc/addr.h | 8 ++++++++ net/tipc/bearer.h | 2 +- net/tipc/core.h | 17 ++++++++++------- net/tipc/net.c | 1 + net/tipc/node.c | 1 + net/tipc/node.h | 2 -- net/tipc/socket.c | 1 + 8 files changed, 22 insertions(+), 17 deletions(-) commit 75b44b018eb086fb461aa0351d2ecb1eba684302 Author: Jon Paul Maloy Date: Thu May 14 10:46:12 2015 -0400 tipc: simplify link timer handling Prior to this commit, the link timer has been running at a "continuity interval" of configured link tolerance/4. When a timer wakes up and discovers that there has been no sign of life from the peer during the previous interval, it divides its own timer interval by another factor four, and starts sending one probe per new interval. When the configured link tolerance time has passed without answer, i.e. after 16 unacked probes, the link is declared faulty and reset. This is unnecessary complex. It is sufficient to continue with the original continuity interval, and instead reset the link after four missed probe responses. This makes the timer handling in the link simpler, and opens up for some planned later changes in this area. This commit implements this change. Reviewed-by: Richard Alpe Reviewed-by: Erik Hugne Reviewed-by: Ying Xue Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/link.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit b1c29f6b10d5981c89d3ea9b9991ca97141ed6d0 Author: Jon Paul Maloy Date: Thu May 14 10:46:11 2015 -0400 tipc: simplify resetting and disabling of bearers Since commit 4b475e3f2f8e4e241de101c8240f1d74d0470494 ("tipc: eliminate delayed link deletion at link failover") the extra boolean parameter "shutting_down" is not any longer needed for the functions bearer_disable() and tipc_link_delete_list(). Furhermore, the function tipc_link_reset_links(), called from bearer_reset() is now unnecessary. We can just as well delete all the links, as we do in bearer_disable(), and start over with creating new links. This commit introduces those changes. Reviewed-by: Erik Hugne Reviewed-by: Ying Xue Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/bearer.c | 18 ++++++++---------- net/tipc/link.c | 20 +------------------- net/tipc/link.h | 4 +--- 3 files changed, 10 insertions(+), 32 deletions(-) commit c16ead798ee31f154eb230a728de6c60d0786aab Merge: 5a99e7f 760c295 Author: David S. Miller Date: Thu May 14 12:21:42 2015 -0400 Merge branch 'be2net-next' Venkat Duvvuru says: ==================== be2net: patch-set The following patch set has one new feature addition and two fixes. Patch 1 adds support for hwmon sysfs interface to display board temperature. Board temperature display through ethtool statistics is removed. Patch 2 reports "link down" in a few more error cases which are not handled currently. Patch 3 adds support for os2bmc. OS2BMC feature will allow the server to communicate with the on-board BMC/idrac (Baseboard Management Controller) over the LOM via standard Ethernet. More details are added in the commit log. Please review. ==================== Signed-off-by: David S. Miller commit 760c295e0e8d982917d004c9095cff61c0cbd803 Author: Venkata Duvvuru Date: Wed May 13 13:00:14 2015 +0530 be2net: Support for OS2BMC. OS2BMC feature will allow the server to communicate with the on-board BMC/idrac (Baseboard Management Controller) over the LOM via standard Ethernet. When OS2BMC feature is enabled, the LOM will filter traffic coming from the host. If the destination MAC address matches the iDRAC MAC address, it will forward the packet to the NC-SI side band interface for iDRAC processing. Otherwise, it would send it out on the wire to the external network. Broadcast and multicast packets are sent on the side-band NC-SI channel and on the wire as well. Some of the packet filters are not supported in the NIC and hence driver will identify such packets and will hint the NIC to send those packets to the BMC. This is done by duplicating packets on the management ring. Packets are sent to the management ring, by setting mgmt bit in the wrb header. The NIC will forward the packets on the management ring to the BMC through the side-band NC-SI channel. Please refer to this online document for more details, http://www.dell.com/downloads/global/products/pedge/ os_to_bmc_passthrough_a_new_chapter_in_system_management.pdf Signed-off-by: Venkat Duvvuru Signed-off-by: David S. Miller drivers/net/ethernet/emulex/benet/be.h | 8 +- drivers/net/ethernet/emulex/benet/be_cmds.c | 19 ++++ drivers/net/ethernet/emulex/benet/be_cmds.h | 17 ++++ drivers/net/ethernet/emulex/benet/be_main.c | 138 ++++++++++++++++++++++++++++ 4 files changed, 181 insertions(+), 1 deletion(-) commit 954f6825eeeecd0d83af9e11a0a54c80d7e0bfad Author: Venkata Duvvuru Date: Wed May 13 13:00:13 2015 +0530 be2net: Report a "link down" to the stack when a fatal error or fw reset happens. When an error (related to HW or FW) is detected on a function, the driver must pro-actively report a "link down" to the stack so that a possible failover can be initiated. This is being done currently only for some HW errors. This patch reports a "link down" even for fatal FW errors and EEH errors. Signed-off-by: Venkat Duvvuru Signed-off-by: David S. Miller drivers/net/ethernet/emulex/benet/be.h | 31 ++++++++++++++------- drivers/net/ethernet/emulex/benet/be_cmds.c | 10 +++---- drivers/net/ethernet/emulex/benet/be_main.c | 42 ++++++++++++++++------------- 3 files changed, 49 insertions(+), 34 deletions(-) commit 29e9122b3ab2aa7160e54c2bbea242b99588325c Author: Venkata Duvvuru Date: Wed May 13 13:00:12 2015 +0530 be2net: Export board temperature using hwmon-sysfs interface. Ethtool statistics is not the right place to display board temperature. This patch adds support to export die temperature of devices supported by be2net driver via the sysfs hwmon interface. Signed-off-by: Venkat Duvvuru Signed-off-by: David S. Miller drivers/net/ethernet/emulex/benet/be.h | 10 +++++++- drivers/net/ethernet/emulex/benet/be_cmds.c | 4 ++- drivers/net/ethernet/emulex/benet/be_ethtool.c | 1 - drivers/net/ethernet/emulex/benet/be_main.c | 34 ++++++++++++++++++++++++++ 4 files changed, 46 insertions(+), 3 deletions(-) commit 2cdce7a98b1fbd3839aec5fc79a0f237c9b75dcc Author: Lee Jones Date: Mon May 11 16:12:00 2015 +0200 ARM: STi: DT: STih407: Re-order #include <*.dtsi> files This patch fixes a regression where serial is enabled by the first (board) DTSI, then disabled by the second (SoC) file. To enable serial and keep it enabled, we need to include the file which enables it last. Reported-by: LAVA [via Peter Griffin ] Signed-off-by: Lee Jones Signed-off-by: Maxime Coquelin arch/arm/boot/dts/stih407-b2120.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b390d850607346162467bf1805a365e07de7c079 Author: Arnaldo Carvalho de Melo Date: Thu May 14 12:28:11 2015 -0300 tools lib traceevent: Provide le16toh define for older systems Where such macro is not present, so just copy its definition from glibc's endian.h and define it if not already. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Cc: Steven Rostedt Link: http://lkml.kernel.org/n/tip-4j90i2na07ppidt0z6cbuxr7@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/lib/traceevent/plugin_cfg80211.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 6a53bc750004fdab11494e9e6c864b4a425fc1a1 Author: Russell King Date: Thu May 14 16:18:46 2015 +0100 ARM: Show proper respect for Heinrich Hertz by using the correct unit for frequency The SI unit of frequency is Hertz, named after Heinrich Hertz, and is given the symbol "Hz" to denote this. "hz" is not the unit of frequency, and is in fact meaningless. Fix arch/arm to correctly use "Hz", thereby acknowledging Heinrich Hertz' contribution to the modern world. Acked-by: Tony Lindgren Acked-by: Robert Jarzmik Reviewed-by: Andreas Färber Signed-off-by: Russell King arch/arm/boot/dts/exynos5260-xyref5260.dts | 2 +- arch/arm/boot/dts/omap3-cm-t3517.dts | 2 +- arch/arm/mach-davinci/include/mach/da8xx.h | 2 +- arch/arm/mach-imx/clk-imx6sx.c | 4 ++-- arch/arm/mach-iop13xx/include/mach/time.h | 2 +- arch/arm/mach-ixp4xx/include/mach/platform.h | 2 +- arch/arm/mach-ks8695/include/mach/hardware.h | 2 +- arch/arm/mach-omap2/gpmc-onenand.c | 4 ++-- arch/arm/mach-omap2/hsmmc.c | 2 +- arch/arm/mach-omap2/opp2430_data.c | 4 ++-- arch/arm/mach-omap2/sdrc2xxx.c | 2 +- arch/arm/mach-omap2/sram242x.S | 2 +- arch/arm/mach-omap2/sram243x.S | 2 +- arch/arm/mach-pxa/mp900.c | 2 +- 14 files changed, 17 insertions(+), 17 deletions(-) commit a074ae38f859b90bd259f5df43784834b44412d1 Author: Peter Ujfalusi Date: Thu Apr 9 12:35:49 2015 +0300 dmaengine: Add driver for TI DMA crossbar on DRA7x The DRA7x has more peripherals with DMA requests than the sDMA can handle: 205 vs 127. All DMA requests are routed through the DMA crossbar, which can be configured to route selected incoming DMA requests to specific sDMA request. Signed-off-by: Peter Ujfalusi Signed-off-by: Vinod Koul drivers/dma/Kconfig | 4 + drivers/dma/Makefile | 1 + drivers/dma/ti-dma-crossbar.c | 188 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 193 insertions(+) commit 88a25e02f35e56a6686d94fa334b7f00e9b72623 Author: Nobuhiro Iwamatsu Date: Fri Jan 9 09:28:41 2015 +0900 usb: renesas_usbhs: Add access control for INTSTS1 and INTENB1 register INTSTS1 and INTENB1 register of renesas_usbhs can access only Host mode. This adds process of accessing INTSTS1 and INTENB1 only when renesas_usbhs is Host mode. Signed-off-by: Nobuhiro Iwamatsu Signed-off-by: Felipe Balbi drivers/usb/renesas_usbhs/mod.c | 61 +++++++++++++++++++++++------------------ 1 file changed, 34 insertions(+), 27 deletions(-) commit 4fd113b5ce803da0b8fa0494513bedfdf2feb483 Author: Namhyung Kim Date: Thu May 14 00:03:26 2015 +0900 perf report: Fix some option handling on --stdio There's a bug that perf report sometimes ignore some options on --stdio output. This bug is triggered only if a related config variable is set. For example, let's assume we have a following config file. $ cat ~/.perfconfig [call-graph] print-type = graph [hist] percentage = absolute Then, following perf config will not honor some options. $ perf record -ag sleep 1 [ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 0.199 MB perf.data (77 samples) ] $ perf report -g none --stdio # To display the perf.data header info, please use --header/--header-only options. # # Samples: 77 of event 'cycles' # Event count (approx.): 25425383 # # Overhead Command Shared Object Symbol # ........ ............... ....................... .............. # 16.34% swapper [kernel.vmlinux] [k] intel_idle | ---intel_idle cpuidle_enter_state cpuidle_enter cpu_startup_entry ... With '-g none' option, it should not show callchains, but it still shows callchains. However it works as expected on --tui output. Similarly, '--percentage relative' option is not work and still shows a absolute percentage values. Looking at the source, I found that those setting were overwritten by config variables when setup_pager() called. The setup_pager() is to start a pager process so that it can manage long lines of output on the stdio mode. But as it calls the perf_config() after parsing arguments, the settings were overwritten regardless of command line options. The reason it calls perf_config() is to find the 'pager_program' which might be set by a config variable, I guess. However current perf code does not provide the config variable for it, so it's just meaningless IMHO. Eliminating the call makes the option working as expected. Signed-off-by: Namhyung Kim Cc: David Ahern Cc: Jiri Olsa Cc: Peter Zijlstra Cc: Taeung Song Link: http://lkml.kernel.org/r/1431529406-6762-1-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/cache.h | 1 - tools/perf/util/environment.c | 1 - tools/perf/util/pager.c | 5 ----- 3 files changed, 7 deletions(-) commit d4c537e6bf860c12262cb936eef663180d7a3d45 Author: Naveen N. Rao Date: Thu Apr 30 17:12:31 2015 +0530 perf probe: Ignore tail calls to probed functions perf probe currently errors out if there are any tail calls to probed functions: [root@rhel71be]# perf probe do_fork Failed to find probe point in any functions. Error: Failed to add events. Fix this by teaching perf to ignore tail calls. Without patch: [root@rhel71be perf]# ./perf probe -v do_fork probe-definition(0): do_fork symbol:do_fork file:(null) line:0 offset:0 return:0 lazy:(null) 0 arguments Looking at the vmlinux_path (7 entries long) symsrc__init: build id mismatch for /boot/vmlinux. Using /usr/lib/debug/lib/modules/3.10.0-201.el7.ppc64/vmlinux for symbols Open Debuginfo file: /usr/lib/debug/lib/modules/3.10.0-201.el7.ppc64/vmlinux Try to find probe point from debuginfo. found inline addr: 0xc0000000000bb9b0 Probe point found: do_fork+0 found inline addr: 0xc0000000000bbe20 Probe point found: kernel_thread+48 found inline addr: 0xc0000000000bbe5c Probe point found: sys_fork+28 found inline addr: 0xc0000000000bbfac Probe point found: sys_vfork+44 found inline addr: 0xc0000000000bc27c Failed to find probe point in any functions. An error occurred in debuginfo analysis (-2). Error: Failed to add events. Reason: No such file or directory (Code: -2) With patch: [root@rhel71be perf]# ./perf probe -v do_fork probe-definition(0): do_fork symbol:do_fork file:(null) line:0 offset:0 return:0 lazy:(null) 0 arguments Looking at the vmlinux_path (7 entries long) symsrc__init: build id mismatch for /boot/vmlinux. Using /usr/lib/debug/lib/modules/3.10.0-201.el7.ppc64/vmlinux for symbols Open Debuginfo file: /usr/lib/debug/lib/modules/3.10.0-201.el7.ppc64/vmlinux Try to find probe point from debuginfo. found inline addr: 0xc0000000000bb9b0 Probe point found: do_fork+0 found inline addr: 0xc0000000000bbe20 Probe point found: kernel_thread+48 found inline addr: 0xc0000000000bbe5c Probe point found: sys_fork+28 found inline addr: 0xc0000000000bbfac Probe point found: sys_vfork+44 found inline addr: 0xc0000000000bc27c Ignoring tail call from SyS_clone Found 4 probe_trace_events. Opening /sys/kernel/debug/tracing/kprobe_events write=1 No kprobe blacklist support, ignored Added new events: Writing event: p:probe/do_fork _text+768432 Failed to write event: Invalid argument Error: Failed to add events. Reason: Invalid argument (Code: -22) [Ignore the error about failure to write event - this kernel is missing a patch to resolve _text properly] The reason to ignore tail calls is that the address does not belong to any function frame. In the example above, the address in SyS_clone is 0xc0000000000bc27c, but looking at the debug-info: <1><830081>: Abbrev Number: 133 (DW_TAG_subprogram) <830083> DW_AT_external : 1 <830083> DW_AT_name : (indirect string, offset: 0x3cea3): SyS_clone <830087> DW_AT_decl_file : 7 <830088> DW_AT_decl_line : 1689 <83008a> DW_AT_prototyped : 1 <83008a> DW_AT_type : <0x8110eb> <83008e> DW_AT_low_pc : 0xc0000000000bc270 <830096> DW_AT_high_pc : 0xc <83009e> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa) <8300a0> DW_AT_GNU_all_call_sites: 1 <8300a0> DW_AT_sibling : <0x830178> <3><830147>: Abbrev Number: 125 (DW_TAG_GNU_call_site) <830148> DW_AT_low_pc : 0xc0000000000bc27c <830150> DW_AT_GNU_tail_call: 1 <830150> DW_AT_abstract_origin: <0x82e7e1> The frame ends at 0xc0000000000bc27c. I suppose this is why this particular call is a "tail" call. FWIW, systemtap seems to ignore these as well and requires users to explicitly place probes at these call sites if necessary. I print out the caller so that users know. Signed-off-by: Naveen N. Rao Acked-by: Masami Hiramatsu Link: http://lkml.kernel.org/r/1430394151-15928-1-git-send-email-naveen.n.rao@linux.vnet.ibm.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/dwarf-aux.c | 37 +++++++++++++++++++++++++++++++++++++ tools/perf/util/dwarf-aux.h | 4 ++++ tools/perf/util/probe-finder.c | 12 +++++++++--- 3 files changed, 50 insertions(+), 3 deletions(-) commit f7e5a6559640dfac9d96bee74d02066a28107aef Author: Antti Palosaari Date: Wed Apr 29 13:37:34 2015 -0300 [media] msi2500: cleanups Rename state to dev. Correct some indentations. Remove FSF address. Fix some style issues reported by checkpatch.pl. Correct some style issues I liked. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/msi2500/msi2500.c | 610 ++++++++++++++++++------------------ 1 file changed, 306 insertions(+), 304 deletions(-) commit 12b7ed29bdea2d6dde58f304321d4e8ca453f13c Author: Zhang Chunyu Date: Fri Apr 17 10:21:32 2015 +0800 netfilter: xt_MARK: Add ARP support Add arpt_MARK to xt_mark. The corresponding userspace update is available at: http://git.netfilter.org/arptables/commit/?id=4bb2f8340783fd3a3f70aa6f8807428a280f8474 Signed-off-by: Zhang Chunyu Signed-off-by: Pablo Neira Ayuso net/netfilter/xt_mark.c | 1 + 1 file changed, 1 insertion(+) commit faf22b13ee7335129e236804b0e532b1872d1fd8 Author: Antti Palosaari Date: Wed Apr 29 13:13:31 2015 -0300 [media] msi2500: revise synthesizer calculation Update synthesizer calculation to model I prefer nowadays. It is mostly just renaming some variables, but also minor functionality change how integer and fractional part are divided (using div_u64_rem()). Also, add 'schematic' of synthesizer following my current understanding. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/msi2500/msi2500.c | 49 +++++++++++++++++++++++++------------ 1 file changed, 34 insertions(+), 15 deletions(-) commit 83e64b4d3fafc8af32173a72b011a958e83d45b4 Author: Antti Palosaari Date: Wed Apr 29 10:57:12 2015 -0300 [media] msi001: cleanups / renames Rename state from s to dev. Rename some other things. Fix indentations. Disable driver unbind via sysfs. indentation prevent unload Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/tuners/msi001.c | 195 ++++++++++++++++++++++-------------------- 1 file changed, 101 insertions(+), 94 deletions(-) commit 9195e5b2467b258413750526d5c65c6c22fafb11 Author: Antti Palosaari Date: Wed Apr 29 10:10:01 2015 -0300 [media] msi001: revise synthesizer calculation Update synthesizer calculation to model I prefer nowadays. It is mostly just renaming some variables, but also minor functionality change how integer and fractional part are divided (using div_u64_rem()). Also, add 'schematic' of synthesizer following my current understanding. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/tuners/msi001.c | 74 +++++++++++++++++++++++++------------------ 1 file changed, 44 insertions(+), 30 deletions(-) commit a3b1c1eb50f9b3e0c73c37157d0c61b2e90ae580 Author: Denys Vlasenko Date: Wed May 6 16:28:57 2015 +0200 netfilter: ipset: deinline ip_set_put_extensions() On x86 allyesconfig build: The function compiles to 489 bytes of machine code. It has 25 callsites. text data bss dec hex filename 82441375 22255384 20627456 125324215 7784bb7 vmlinux.before 82434909 22255384 20627456 125317749 7783275 vmlinux Signed-off-by: Denys Vlasenko CC: Jozsef Kadlecsik CC: Eric W. Biederman CC: David S. Miller CC: Jan Engelhardt CC: Jiri Pirko CC: linux-kernel@vger.kernel.org CC: netdev@vger.kernel.org CC: netfilter-devel@vger.kernel.org Signed-off-by: Pablo Neira Ayuso include/linux/netfilter/ipset/ip_set.h | 24 ++---------------------- net/netfilter/ipset/ip_set_core.c | 25 +++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 22 deletions(-) commit a9fcc6a41de947108898bc9807f25fa326467365 Author: Florian Westphal Date: Sun May 3 22:06:07 2015 +0200 netfilter: bridge: free nf_bridge info on xmit nf_bridge information is only needed for -m physdev, so we can always free it after POST_ROUTING. This has the advantage that allocation and free will typically happen on the same cpu. Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso net/bridge/br_netfilter.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) commit 7fb48c5bc3100f7674a8e26f42c1518196500728 Author: Florian Westphal Date: Sun May 3 22:05:28 2015 +0200 netfilter: bridge: neigh_head and physoutdev can't be used at same time The neigh_header is only needed when we detect DNAT after prerouting and neigh cache didn't have a mac address for us. The output port has not been chosen yet so we can re-use the storage area, bringing struct size down to 32 bytes on x86_64. Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso include/linux/skbuff.h | 8 +++++--- net/bridge/br_netfilter.c | 2 ++ 2 files changed, 7 insertions(+), 3 deletions(-) commit af6c235d1a5c112964c3029eb0ed4b52c7aa33bf Author: Linus Walleij Date: Wed May 13 13:03:21 2015 +0200 gpio: discourage passing base to gpio_chip Passing a fixed base in struct gpio_chip is done for legacy systems that cannot handle dynamic allocation. Discourage this behaviour in the kerneldoc. Acked-by: Alexandre Courbot Signed-off-by: Linus Walleij include/linux/gpio/driver.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit db33c77dddc2ed2cff3061d0b096a9f5ab0c3647 Author: Carlo Caione Date: Thu May 14 10:49:09 2015 +0200 Bluetooth: btrtl: Create separate module for Realtek BT driver As already done for btintel and btbcm export setup as separate function in a vendor-specific module to hold all the Realtek specific commands. Signed-off-by: Carlo Caione Signed-off-by: Marcel Holtmann drivers/bluetooth/Kconfig | 15 ++ drivers/bluetooth/Makefile | 1 + drivers/bluetooth/btrtl.c | 390 +++++++++++++++++++++++++++++++++++++++++++++ drivers/bluetooth/btrtl.h | 52 ++++++ drivers/bluetooth/btusb.c | 377 +------------------------------------------ 5 files changed, 462 insertions(+), 373 deletions(-) commit 33a9f5bc1547b563b072b8ac1c453d861aeef0b8 Author: Eric Anholt Date: Fri Apr 24 12:08:54 2015 -0700 ARM: bcm2835: Move the restart/power_off handling to the WDT driver Since the WDT is what's used to drive restart and power off, it makes more sense to keep it there, where the regs are already mapped and definitions for them provided. Note that this means you may need to add CONFIG_BCM2835_WDT to retain functionality of your kernel. Signed-off-by: Eric Anholt Acked-by: Guenter Roeck Signed-off-by: Lee Jones arch/arm/mach-bcm/board_bcm2835.c | 73 --------------------------------------- drivers/watchdog/bcm2835_wdt.c | 62 +++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+), 73 deletions(-) commit ba9acf9c0f66e09b6947d96d517083736e1c60d0 Author: Eric Anholt Date: Fri Apr 24 12:08:53 2015 -0700 ARM: bcm2835: Drop the init_irq() hook This is the default function that gets called if the hook is NULL. Signed-off-by: Eric Anholt Acked-by: Stephen Warren Tested-by: Stephen Warren Signed-off-by: Lee Jones arch/arm/mach-bcm/board_bcm2835.c | 1 - 1 file changed, 1 deletion(-) commit 2383321183cf6c1f0e6dcb435c751ef5ebe285a0 Author: Eric Anholt Date: Thu Apr 23 10:49:11 2015 -0700 ARM: bcm2835: Skip doing our own iotable_init() initialization The only thing we were using this 16MB mapping of IO peripherals for was the uart's early debug mapping. If we just drop the map_io hook, the kernel will call debug_ll_io_init() for us, which maps the single page needed for the device. Signed-off-by: Eric Anholt Tested-by: Stephen Warren Acked-by: Stephen Warren Signed-off-by: Lee Jones arch/arm/mach-bcm/board_bcm2835.c | 17 ----------------- 1 file changed, 17 deletions(-) commit 1215baa7a391713dd1d015c209bd87c0a5d89db6 Author: Eric Anholt Date: Tue May 5 13:10:11 2015 -0700 ARM: bcm2835: dt: Use 0x4 prefix for DMA bus addresses to SDRAM. There exists a tiny MMU, configurable only by the VC (running the closed firmware), which maps from the ARM's physical addresses to bus addresses. These bus addresses determine the caching behavior in the VC's L1/L2 (note: separate from the ARM's L1/L2) according to the top 2 bits. The bits in the bus address mean: From the VideoCore processor: 0x0... L1 and L2 cache allocating and coherent 0x4... L1 non-allocating, but coherent. L2 allocating and coherent 0x8... L1 non-allocating, but coherent. L2 non-allocating, but coherent 0xc... SDRAM alias. Cache is bypassed. Not L1 or L2 allocating or coherent From the GPU peripherals (note: all peripherals bypass the L1 cache. The ARM will see this view once through the VC MMU): 0x0... Do not use 0x4... L1 non-allocating, and incoherent. L2 allocating and coherent. 0x8... L1 non-allocating, and incoherent. L2 non-allocating, but coherent 0xc... SDRAM alias. Cache is bypassed. Not L1 or L2 allocating or coherent The 2835 firmware always configures the MMU to turn ARM physical addresses with 0x0 top bits to 0x4, meaning present in L2 but incoherent with L1. However, any bus addresses we were generating in the kernel to be passed to a device had 0x0 bits. That would be a reserved (possibly totally incoherent) value if sent to a GPU peripheral like USB, or L1 allocating if sent to the VC (like a firmware property request). By setting dma-ranges, all of the devices below it get a dev->dma_pfn_offset, so that dma_alloc_coherent() and friends return addresses with 0x4 bits and avoid cache incoherency. This matches the behavior in the downstream 2708 kernel (see BUS_OFFSET in arch/arm/mach-bcm2708/include/mach/memory.h). Signed-off-by: Eric Anholt Tested-by: Noralf Trønnes Acked-by: Stephen Warren Signed-off-by: Lee Jones arch/arm/boot/dts/bcm2835.dtsi | 1 + 1 file changed, 1 insertion(+) commit 05b682b7a3b28dfd27f810cbb509f7211c208b1f Author: Eric Anholt Date: Tue May 5 13:27:46 2015 -0700 ARM: bcm2835: dt: Add the mailbox to the device tree Signed-off-by: Eric Anholt Acked-by: Lee Jones Acked-by: Stephen Warren Signed-off-by: Lee Jones arch/arm/boot/dts/bcm2835.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) commit 64146f20eb05bb193060ba50dddacaf0d7a48f83 Author: Baruch Siach Date: Wed Mar 18 11:00:22 2015 +0200 ARM: bcm2835: dt: Fix i2c0 node name Device tree node names should contain the node's reg property address value. The i2c0 node was apparently forgotten in commit 25b2f1bd0b7e0 (ARM: bcm2835: node name unit address cleanup). Acked-by: Stephen Warren Signed-off-by: Baruch Siach Signed-off-by: Lee Jones arch/arm/boot/dts/bcm2835.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 120911120911e0f84eea4fd7d1e9d6c4c65f1586 Author: Stefan Wahren Date: Thu Jan 29 18:10:50 2015 +0000 ARM: bcm2835: dt: Use pinctrl header This patch converts all bcm2835 dts and dtsi files to use the pinctrl header file. Reviewed-by: Stephen Warren Signed-off-by: Stefan Wahren Signed-off-by: Lee Jones arch/arm/boot/dts/bcm2835-rpi-b-plus.dts | 4 ++-- arch/arm/boot/dts/bcm2835-rpi-b.dts | 4 ++-- arch/arm/boot/dts/bcm2835-rpi.dtsi | 8 ++++---- arch/arm/boot/dts/bcm2835.dtsi | 3 ++- 4 files changed, 10 insertions(+), 9 deletions(-) commit 62c69d7635d6f12377897429f98baf504a6d000f Author: Stefan Wahren Date: Thu Jan 29 18:10:49 2015 +0000 ARM: bcm2835: dt: Add header file for pinctrl constants This new header file defines pincontrol constants to use from bcm2835 DTS files for pincontrol properties option. Reviewed-by: Stephen Warren Signed-off-by: Stefan Wahren Signed-off-by: Lee Jones include/dt-bindings/pinctrl/bcm2835.h | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) commit 4c059b0b2b59b16c1d053b781056b7e934a36121 Author: Stefan Wahren Date: Thu Jan 29 18:10:48 2015 +0000 ARM: bcm2835: dt: Add root properties for Raspberry Pi This patch adds root compatible properties for the following boards: - Raspberry Pi Model A - Raspberry Pi Model A+ - Raspberry Pi Model B - Raspberry Pi Model B (no P5) - Raspberry Pi Model B rev2 - Raspberry Pi Model B+ - Raspberry Pi Compute Module Reviewed-by: Stephen Warren Acked-by: Rob Herring Signed-off-by: Stefan Wahren Signed-off-by: Lee Jones .../devicetree/bindings/arm/bcm/brcm,bcm2835.txt | 31 ++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) commit 6f1b5605f3d0b6325c69c2be288a93c5d5c294dc Author: Stefan Wahren Date: Thu Jan 29 18:10:47 2015 +0000 ARM: bcm2835: dt: Add vendor prefix for Raspberry Pi Since the prefix is already in use, we need to add it in the vendor list. Reviewed-by: Stephen Warren Acked-by: Rob Herring Signed-off-by: Stefan Wahren Signed-off-by: Lee Jones Documentation/devicetree/bindings/vendor-prefixes.txt | 1 + 1 file changed, 1 insertion(+) commit b41e6ec242cba0151f0b32041cfa728e7ca6e0b7 Author: Borislav Petkov Date: Wed May 13 19:42:24 2015 +0200 x86/asm/uaccess: Get rid of copy_user_nocache_64.S Move __copy_user_nocache() to arch/x86/lib/copy_user_64.S and kill the containing file. No functionality change. Signed-off-by: Borislav Petkov Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1431538944-27724-4-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/lib/Makefile | 2 +- arch/x86/lib/copy_user_64.S | 92 +++++++++++++++++++++++++++++++ arch/x86/lib/copy_user_nocache_64.S | 107 ------------------------------------ 3 files changed, 93 insertions(+), 108 deletions(-) commit 9e6b13f761d5914a8c9b83610e8d459653515c94 Author: Borislav Petkov Date: Wed May 13 19:42:23 2015 +0200 x86/asm/uaccess: Unify the ALIGN_DESTINATION macro Pull it up into the header and kill duplicate versions. Separately, both macros are identical: 35948b2bd3431aee7149e85cfe4becbc /tmp/a 35948b2bd3431aee7149e85cfe4becbc /tmp/b Signed-off-by: Borislav Petkov Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1431538944-27724-3-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/include/asm/asm.h | 25 +++++++++++++++++++++++++ arch/x86/lib/copy_user_64.S | 24 ------------------------ arch/x86/lib/copy_user_nocache_64.S | 24 ------------------------ 3 files changed, 25 insertions(+), 48 deletions(-) commit 26e7d9dee8a5b6c844178c8e2d91be540ce311c0 Author: Borislav Petkov Date: Wed May 13 19:42:22 2015 +0200 x86/asm/uaccess: Remove FIX_ALIGNMENT define from copy_user_nocache_64.S: No code changed: # arch/x86/lib/copy_user_nocache_64.o: text data bss dec hex filename 390 0 0 390 186 copy_user_nocache_64.o.before 390 0 0 390 186 copy_user_nocache_64.o.after md5: 7fa0577b28700af89d3a67a8b590426e copy_user_nocache_64.o.before.asm 7fa0577b28700af89d3a67a8b590426e copy_user_nocache_64.o.after.asm Signed-off-by: Borislav Petkov Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1431538944-27724-2-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/lib/copy_user_nocache_64.S | 5 ----- 1 file changed, 5 deletions(-) commit 5a99e7f22b0d0f8ba65b7fb19ad3511e2497356c Merge: a104a6b e687ad6 Author: David S. Miller Date: Thu May 14 01:10:06 2015 -0400 Merge branch 'nf-ingress' Pablo Neira Ayuso says: ==================== Netfilter ingress support (v4) This is the v4 round of patches to add the Netfilter ingress hook, it basically comes in two steps: 1) Add the CONFIG_NET_INGRESS switch to wrap the ingress static key around it. The idea is to use the same global static key to avoid adding more code to the hot path. 2) Add the Netfilter ingress hook after the tc ingress hook, under the global ingress_needed static key. As I said, the netfilter ingress hook also has its own static key, that is nested under the global static key. Please, see patch 5/5 for performance numbers and more information. I originally started this next round, as it was suggested, exploring the independent static key for netfilter ingress just after tc ingress, but the results that I gathered from that patch are not good for non-users: Result: OK: 6425927(c6425843+d83) usec, 100000000 (60byte,0frags) 15561955pps 7469Mb/sec (7469738400bps) errors: 100000000 this roughly means 500Kpps less performance wrt. the base numbers, so that's the reason why I discarded that approach and I focused on this. The idea of this patchset is to open the window to nf_tables, which comes with features that will work out-of-the-box (once the boiler plate code to support the 'netdev' table family is in place), to avoid repeating myself [1], the most relevant features are: 1) Multi-dimensional key dictionary lookups. 2) Arbitrary stateful flow tables. 3) Transactions and good support for dynamic updates. But there are also interest aspects to consider from userspace, such as the ability to support new layer 2 protocols without kernel updates, a well-defined netlink interface, userspace libraries and utilities for third party applications, among others. I hope we can be happy with this approach. Please, apply. Thanks. [1] http://marc.info/?l=netfilter-devel&m=143033337020328&w=2 ==================== Signed-off-by: David S. Miller commit e687ad60af09010936bbd0b2a3b5d90a8ee8353c Author: Pablo Neira Date: Wed May 13 18:19:38 2015 +0200 netfilter: add netfilter ingress hook after handle_ing() under unique static key This patch adds the Netfilter ingress hook just after the existing tc ingress hook, that seems to be the consensus solution for this. Note that the Netfilter hook resides under the global static key that enables ingress filtering. Nonetheless, Netfilter still also has its own static key for minimal impact on the existing handle_ing(). * Without this patch: Result: OK: 6216490(c6216338+d152) usec, 100000000 (60byte,0frags) 16086246pps 7721Mb/sec (7721398080bps) errors: 100000000 42.46% kpktgend_0 [kernel.kallsyms] [k] __netif_receive_skb_core 25.92% kpktgend_0 [kernel.kallsyms] [k] kfree_skb 7.81% kpktgend_0 [pktgen] [k] pktgen_thread_worker 5.62% kpktgend_0 [kernel.kallsyms] [k] ip_rcv 2.70% kpktgend_0 [kernel.kallsyms] [k] netif_receive_skb_internal 2.34% kpktgend_0 [kernel.kallsyms] [k] netif_receive_skb_sk 1.44% kpktgend_0 [kernel.kallsyms] [k] __build_skb * With this patch: Result: OK: 6214833(c6214731+d101) usec, 100000000 (60byte,0frags) 16090536pps 7723Mb/sec (7723457280bps) errors: 100000000 41.23% kpktgend_0 [kernel.kallsyms] [k] __netif_receive_skb_core 26.57% kpktgend_0 [kernel.kallsyms] [k] kfree_skb 7.72% kpktgend_0 [pktgen] [k] pktgen_thread_worker 5.55% kpktgend_0 [kernel.kallsyms] [k] ip_rcv 2.78% kpktgend_0 [kernel.kallsyms] [k] netif_receive_skb_internal 2.06% kpktgend_0 [kernel.kallsyms] [k] netif_receive_skb_sk 1.43% kpktgend_0 [kernel.kallsyms] [k] __build_skb * Without this patch + tc ingress: tc filter add dev eth4 parent ffff: protocol ip prio 1 \ u32 match ip dst 4.3.2.1/32 Result: OK: 9269001(c9268821+d179) usec, 100000000 (60byte,0frags) 10788648pps 5178Mb/sec (5178551040bps) errors: 100000000 40.99% kpktgend_0 [kernel.kallsyms] [k] __netif_receive_skb_core 17.50% kpktgend_0 [kernel.kallsyms] [k] kfree_skb 11.77% kpktgend_0 [cls_u32] [k] u32_classify 5.62% kpktgend_0 [kernel.kallsyms] [k] tc_classify_compat 5.18% kpktgend_0 [pktgen] [k] pktgen_thread_worker 3.23% kpktgend_0 [kernel.kallsyms] [k] tc_classify 2.97% kpktgend_0 [kernel.kallsyms] [k] ip_rcv 1.83% kpktgend_0 [kernel.kallsyms] [k] netif_receive_skb_internal 1.50% kpktgend_0 [kernel.kallsyms] [k] netif_receive_skb_sk 0.99% kpktgend_0 [kernel.kallsyms] [k] __build_skb * With this patch + tc ingress: tc filter add dev eth4 parent ffff: protocol ip prio 1 \ u32 match ip dst 4.3.2.1/32 Result: OK: 9308218(c9308091+d126) usec, 100000000 (60byte,0frags) 10743194pps 5156Mb/sec (5156733120bps) errors: 100000000 42.01% kpktgend_0 [kernel.kallsyms] [k] __netif_receive_skb_core 17.78% kpktgend_0 [kernel.kallsyms] [k] kfree_skb 11.70% kpktgend_0 [cls_u32] [k] u32_classify 5.46% kpktgend_0 [kernel.kallsyms] [k] tc_classify_compat 5.16% kpktgend_0 [pktgen] [k] pktgen_thread_worker 2.98% kpktgend_0 [kernel.kallsyms] [k] ip_rcv 2.84% kpktgend_0 [kernel.kallsyms] [k] tc_classify 1.96% kpktgend_0 [kernel.kallsyms] [k] netif_receive_skb_internal 1.57% kpktgend_0 [kernel.kallsyms] [k] netif_receive_skb_sk Note that the results are very similar before and after. I can see gcc gets the code under the ingress static key out of the hot path. Then, on that cold branch, it generates the code to accomodate the netfilter ingress static key. My explanation for this is that this reduces the pressure on the instruction cache for non-users as the new code is out of the hot path, and it comes with minimal impact for tc ingress users. Using gcc version 4.8.4 on: Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 8 [...] L1d cache: 16K L1i cache: 64K L2 cache: 2048K L3 cache: 8192K Signed-off-by: Pablo Neira Ayuso Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller include/linux/netdevice.h | 3 +++ include/linux/netfilter.h | 1 + include/linux/netfilter_ingress.h | 41 +++++++++++++++++++++++++++++++++++++++ include/uapi/linux/netfilter.h | 6 ++++++ net/core/dev.c | 36 ++++++++++++++++++++++++++++++++++ net/netfilter/Kconfig | 7 +++++++ net/netfilter/core.c | 31 ++++++++++++++++++++++++++++- 7 files changed, 124 insertions(+), 1 deletion(-) commit 1cf51900f8545b358b5deaacfda348d990f671db Author: Pablo Neira Date: Wed May 13 18:19:37 2015 +0200 net: add CONFIG_NET_INGRESS to enable ingress filtering This new config switch enables the ingress filtering infrastructure that is controlled through the ingress_needed static key. This prepares the introduction of the Netfilter ingress hook that resides under this unique static key. Note that CONFIG_SCH_INGRESS automatically selects this, that should be no problem since this also depends on CONFIG_NET_CLS_ACT. Signed-off-by: Pablo Neira Ayuso Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller include/linux/rtnetlink.h | 2 +- net/Kconfig | 3 +++ net/core/dev.c | 7 ++++--- net/sched/Kconfig | 1 + 4 files changed, 9 insertions(+), 4 deletions(-) commit b8d0aad0c77f488d1d51a02d871a5cbc2d8032b9 Author: Pablo Neira Date: Wed May 13 18:19:36 2015 +0200 netfilter: add nf_hook_list_active() In preparation to have netfilter ingress per-device hook list. Signed-off-by: Pablo Neira Ayuso Signed-off-by: David S. Miller include/linux/netfilter.h | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) commit f7191483461ce2ae579b6f7227fa7ce49e006656 Author: Pablo Neira Date: Wed May 13 18:19:35 2015 +0200 netfilter: add hook list to nf_hook_state Signed-off-by: Pablo Neira Ayuso Signed-off-by: David S. Miller include/linux/netfilter.h | 7 +++++-- net/netfilter/core.c | 6 ++---- 2 files changed, 7 insertions(+), 6 deletions(-) commit 87d5c18ce1f41a2410d4fb26d5d68c55867450f5 Author: Pablo Neira Date: Wed May 13 18:19:34 2015 +0200 netfilter: cleanup struct nf_hook_ops indentation Signed-off-by: Pablo Neira Ayuso Signed-off-by: David S. Miller include/linux/netfilter.h | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit a104a6b309715495ac29dd1ba9317a91a67e9808 Author: Dan Carpenter Date: Tue May 12 21:15:24 2015 +0300 net: macb: OR vs AND typos The bitwise tests are always true here because it uses '|' where '&' is intended. Fixes: 98b5a0f4a228 ('net: macb: Add support for jumbo frames') Signed-off-by: Dan Carpenter Signed-off-by: David S. Miller drivers/net/ethernet/cadence/macb.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 1b852bceb0d111e510d1a15826ecc4a19358d512 Author: Eric W. Biederman Date: Fri May 8 23:22:29 2015 -0500 mnt: Refactor the logic for mounting sysfs and proc in a user namespace Fresh mounts of proc and sysfs are a very special case that works very much like a bind mount. Unfortunately the current structure can not preserve the MNT_LOCK... mount flags. Therefore refactor the logic into a form that can be modified to preserve those lock bits. Add a new filesystem flag FS_USERNS_VISIBLE that requires some mount of the filesystem be fully visible in the current mount namespace, before the filesystem may be mounted. Move the logic for calling fs_fully_visible from proc and sysfs into fs/namespace.c where it has greater access to mount namespace state. Cc: stable@vger.kernel.org Signed-off-by: "Eric W. Biederman" fs/namespace.c | 8 +++++++- fs/proc/root.c | 5 +---- fs/sysfs/mount.c | 5 +---- include/linux/fs.h | 2 +- 4 files changed, 10 insertions(+), 10 deletions(-) commit d0ee8f4a1f5f3df933cdc9a80f5dea13e2fb5022 Author: Steven Rostedt (Red Hat) Date: Wed May 13 15:40:23 2015 -0400 tracing: Rename ftrace_get_offsets_##call() to trace_event_get_offsets_##call() The name "ftrace" really refers to the function hook infrastructure. It is not about the trace_events. The function ftrace_get_offsets_##call() is used to find the offset into dynamically allocated trace event fields for printing. It has nothing to do with function tracing. Rename it. Signed-off-by: Steven Rostedt include/trace/perf.h | 6 +++--- include/trace/trace_events.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) commit 33d0f35eea7ac9027dee4fff819fc54afc8615e5 Author: Steven Rostedt (Red Hat) Date: Wed May 13 15:37:57 2015 -0400 tracing: Rename ftrace_define_fields_##call() to trace_event_define_fields_##call() The name "ftrace" really refers to the function hook infrastructure. It is not about the trace_events. The function ftrace_define_fields_##call() is used to define how to process the trace_event fields. It has nothing to do with function tracing. Rename it. Signed-off-by: Steven Rostedt include/trace/perf.h | 4 ++-- include/trace/trace_events.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit 3ad017bac94ac86edf18d0e2218ebafe71e23d45 Author: Steven Rostedt (Red Hat) Date: Wed May 13 15:35:44 2015 -0400 tracing: Rename ftrace_event_type_funcs_##call to trace_event_type_funcs_##call The name "ftrace" really refers to the function hook infrastructure. It is not about the trace_events. The structure ftrace_event_type_funcs_##call is used to define how the trace_events will be printed. It has nothing to do with function tracing. Rename it. Signed-off-by: Steven Rostedt include/trace/perf.h | 4 ++-- include/trace/trace_events.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit 62323a148fbeb0258be2c92854d758572bee2a46 Author: Steven Rostedt (Red Hat) Date: Wed May 13 15:33:52 2015 -0400 tracing: Rename ftrace_data_offset_##call to trace_event_data_offset_##call The name "ftrace" really refers to the function hook infrastructure. It is not about the trace_events. The structure ftrace_data_offset_##call is used to find the offsets of dynamically allocated fields in trace_events. It has nothing to do with function tracing. Rename it. Signed-off-by: Steven Rostedt include/trace/perf.h | 6 +++--- include/trace/trace_events.h | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) commit a7237765730a10d429736f47ac4b89779ec6c534 Author: Steven Rostedt (Red Hat) Date: Wed May 13 15:27:47 2015 -0400 tracing: Rename ftrace_raw_##call event structures to trace_event_raw_##call The name "ftrace" really refers to the function hook infrastructure. It is not about the trace_events. The ftrace_raw_##call structures are built by macros for trace events. They have nothing to do with function tracing. Rename them. Signed-off-by: Steven Rostedt include/trace/perf.h | 16 ++++++++-------- include/trace/trace_events.h | 14 +++++++------- kernel/trace/trace_events_filter.c | 2 +- kernel/trace/trace_events_trigger.c | 2 +- 4 files changed, 17 insertions(+), 17 deletions(-) commit 36bf51acc89d113f101e40f40af4ab53fbf5b60a Author: David Matlack Date: Mon May 11 20:40:36 2015 -0700 staging: slicoss: fix occasionally writing out only half of a dma address curaddrupper caches the last written upper 32-bits of a dma address (the device has one register for the upper 32-bits of all dma address registers). The problem is, not every dma address write checks and sets curaddrupper. This causes the driver to occasionally not write the upper 32-bits of a dma address to the device when it really should. I've seen this manifest particularly when the driver is trying to read config data from the device (RCONFIG) in order to checksum the device's eeprom. Since the device writes its config data to the wrong DMA address the driver reads 0 as the eeprom size and the eeprom checksum fails. This patch fixes the issue by removing curaddrupper and always writing the upper 32-bits of dma addresses. Signed-off-by: David Matlack Signed-off-by: Greg Kroah-Hartman drivers/staging/slicoss/slic.h | 1 - drivers/staging/slicoss/slicoss.c | 5 +---- 2 files changed, 1 insertion(+), 5 deletions(-) commit eafe600205cb9299bf32a3117e03046f09a71190 Author: David Matlack Date: Mon May 11 20:40:35 2015 -0700 staging: slicoss: remove slic_spinlock wrapper As per TODO. This commit introduces no functional changes. Signed-off-by: David Matlack Signed-off-by: Greg Kroah-Hartman drivers/staging/slicoss/TODO | 1 - drivers/staging/slicoss/slic.h | 19 +++--- drivers/staging/slicoss/slicoss.c | 125 ++++++++++++++++++-------------------- 3 files changed, 65 insertions(+), 80 deletions(-) commit e068f49811523a05aa31f3b590214adcadda3c2e Author: Heiko Stuebner Date: Fri Mar 6 19:04:05 2015 +0100 ARM: dts: rockchip: relicense rk3188-radxarock.dts under GPLv2/X11 GPLv2-only devicetrees make reuse difficult for software components licensed under a different license. The consensus is that a GPL/X11 dual-license should allow all necessary uses, so relicense the rk3188-radxarock.dts to this combination. CCs were aquired by git shortlog -sne so it should've hopefully catched every contributor. Signed-off-by: Heiko Stuebner Acked-by: Beniamino Galvani Acked-by: Romain Perier Acked-by: Jaehoon Chung Acked-by: Julien Chauveau arch/arm/boot/dts/rk3188-radxarock.dts | 44 +++++++++++++++++++++++++++------- 1 file changed, 36 insertions(+), 8 deletions(-) commit 38fed8601a36023a65a9b4082175675ba0dc4a16 Author: Heiko Stuebner Date: Fri Mar 6 19:04:04 2015 +0100 ARM: dts: rockchip: relicense rk3066a-bqcurie2.dts under GPLv2/X11 GPLv2-only devicetrees make reuse difficult for software components licensed under a different license. The consensus is that a GPL/X11 dual-license should allow all necessary uses, so relicense the rk3066a-bqcurie2.dts to this combination. CCs were aquired by git shortlog -sne so it should've hopefully catched every contributor. Signed-off-by: Heiko Stuebner Acked-by: Beniamino Galvani Acked-by: Jaehoon Chung arch/arm/boot/dts/rk3066a-bqcurie2.dts | 44 +++++++++++++++++++++++++++------- 1 file changed, 36 insertions(+), 8 deletions(-) commit eca21d9167213bc9217450613a671553ab45c225 Author: Luis Henriques Date: Mon May 11 22:49:05 2015 +0100 ACPI / battery: ensure acpi_battery_init() has finish Make sure that async function scheduled with async_schedule() has already been executed. Signed-off-by: Luis Henriques Signed-off-by: Rafael J. Wysocki drivers/acpi/battery.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 479faaf00fde35e80a5be1389938b38e422d799d Author: Luis Henriques Date: Mon May 11 22:48:46 2015 +0100 ACPI / battery: drop useless return statements Signed-off-by: Luis Henriques Signed-off-by: Rafael J. Wysocki drivers/acpi/battery.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit e234b074c8ebe736f74cc40a8953accb66b82d04 Author: Luis Henriques Date: Mon May 11 22:48:38 2015 +0100 ACPI / battery: abort initialization earlier if acpi_disabled If ACPI is disabled there's no need to schedule an async function call, the driver initialization can be aborted earlier in acpi_battery_init(). Signed-off-by: Luis Henriques Signed-off-by: Rafael J. Wysocki drivers/acpi/battery.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit a080e7bd0a8e56519d451eaea4ab05212d90e010 Author: Alexander Duyck Date: Wed May 13 13:34:13 2015 -0700 net: Reserve skb headroom and set skb->dev even if using __alloc_skb When I had inlined __alloc_rx_skb into __netdev_alloc_skb and __napi_alloc_skb I had overlooked the fact that there was a return in the __alloc_rx_skb. As a result we weren't reserving headroom or setting the skb->dev in certain cases. This change corrects that by adding a couple of jump labels to jump to depending on __alloc_skb either succeeding or failing. Fixes: 9451980a6646 ("net: Use cached copy of pfmemalloc to avoid accessing page") Reported-by: Felipe Balbi Signed-off-by: Alexander Duyck Tested-by: Kevin Hilman Signed-off-by: David S. Miller net/core/skbuff.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) commit ddcc18f5bdd1aafd457032ec693fd9d0af764d61 Author: Hanjun Guo Date: Wed May 13 16:19:30 2015 +0800 ACPI / processor: Introduce invalid_phys_cpuid() Introduce invalid_phys_cpuid() to identify cpu with invalid physical ID, then used it as replacement of the direct comparisons with PHYS_CPUID_INVALID. Signed-off-by: Hanjun Guo Signed-off-by: Rafael J. Wysocki drivers/acpi/acpi_processor.c | 4 ++-- drivers/acpi/processor_core.c | 4 ++-- include/linux/acpi.h | 5 +++++ 3 files changed, 9 insertions(+), 4 deletions(-) commit d3da7cb9d243c484fcb05e6c16f55090fba99702 Author: Hanjun Guo Date: Mon May 11 12:17:18 2015 +0800 ACPI / processor: return specific error instead of -1 Since invalid_logical_cpuid() can check error values, so return specific error instead of -1 for acpi_map_cpuid(). Signed-off-by: Hanjun Guo Signed-off-by: Rafael J. Wysocki drivers/acpi/processor_core.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 8416c5bda17c1c4f5bd710ef6ebba8827a719e74 Author: Hanjun Guo Date: Mon May 11 12:17:17 2015 +0800 ACPI / processor: remove phys_id in acpi_processor_get_info() Use pr->phys_id to replace phys_id to simplify the code. Signed-off-by: Hanjun Guo Signed-off-by: Rafael J. Wysocki drivers/acpi/acpi_processor.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 05eb3cd8b4f2dc5b694bd17b20df5b6aa4ffdae3 Author: Hanjun Guo Date: Mon May 11 12:17:16 2015 +0800 ACPI / processor: remove cpu_index in acpi_processor_get_info() Just use pr->id instead of cpu_index to simplify the code. Signed-off-by: Hanjun Guo Signed-off-by: Rafael J. Wysocki drivers/acpi/acpi_processor.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) commit c867d83855a6c50ac1a33960c9d50a77ff636f64 Author: Hanjun Guo Date: Mon May 11 12:17:15 2015 +0800 Xen / ACPI / processor: Remove unneeded NULL check Before xen_acpi_processor_enable() is called, struct acpi_processor *pr is allocated in xen_acpi_processor_add() and checked if it's NULL, so no need to check again when passed to xen_acpi_processor_enable(), just remove it. Signed-off-by: Hanjun Guo CC: Boris Ostrovsky CC: Stefano Stabellini Reviewed-by: Konrad Rzeszutek Wilk Signed-off-by: Rafael J. Wysocki drivers/xen/xen-acpi-cpuhotplug.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) commit 16eac059a6800f640423b7b6e2e9fc7091bad102 Author: Hanjun Guo Date: Mon May 11 12:17:14 2015 +0800 Xen / ACPI / processor: use invalid_logical_cpuid() Use invalid_logical_cpuid(pr->id) instead of direct comparison. Signed-off-by: Hanjun Guo CC: Boris Ostrovsky CC: Stefano Stabellini Reviewed-by: Konrad Rzeszutek Wilk Signed-off-by: Rafael J. Wysocki drivers/xen/xen-acpi-cpuhotplug.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 25956b6612601cf36022392ffa83f6bf97939bcd Author: Hanjun Guo Date: Mon May 11 12:17:13 2015 +0800 ACPI / processor: Introduce invalid_logical_cpuid() In ACPI processor drivers, we use direct comparisons of cpu logical id with -1 which are error prone in case logical cpuid is accidentally assinged an error code and prevents us from returning an error-encoding cpuid directly in some cases. So introduce invalid_logical_cpuid() to identify cpu with invalid logical cpu num, then it will be used to replace the direct comparisons with -1. Signed-off-by: Hanjun Guo Signed-off-by: Rafael J. Wysocki drivers/acpi/acpi_processor.c | 5 +++-- drivers/acpi/processor_pdc.c | 5 +---- include/linux/acpi.h | 5 +++++ 3 files changed, 9 insertions(+), 6 deletions(-) commit e989a73ebd09d22c22ead51fa363a2f56f70f28a Author: Thomas Reitmayr Date: Fri May 1 20:18:04 2015 -0300 [media] media: Fix regression in some more dib0700 based devices Fix an oops during device initialization by correctly setting size_of_priv instead of leaving it 0. The regression was introduced by 8abe4a0a3f6d4217b16a ("[media] dib7000: export just one symbol") and only fixed for one type of dib0700 based devices in 9e334c75642b6e5bfb95 ("[media] Fix regression in some dib0700 based devices"). Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=92301 Fixes: 8abe4a0a3f6d4217b16a ("[media] dib7000: export just one symbol") Cc: stable@vger.kernel.org # for version 3.17+ Signed-off-by: Thomas Reitmayr Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/dvb-usb/dib0700_devices.c | 6 ++++++ 1 file changed, 6 insertions(+) commit a1e85f04d8c73f885de1cca46515f66b82049231 Author: Xinming Hu Date: Tue Apr 21 06:59:56 2015 -0700 Bluetooth: btmrvl: fix compilation warning This patch fixes a compile warnning "dump_num maybe used uninitialized in this function". Signed-off-by: Xinming Hu Signed-off-by: Amitkumar Karwar Signed-off-by: Marcel Holtmann drivers/bluetooth/btmrvl_sdio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4541c561b6abeb52ad5d9428e4a23e037bbe2b49 Author: Leo Yan Date: Tue May 5 15:09:17 2015 +0800 Bluetooth: btwilink: remove DEBUG define Remove the DEBUG define as the debug code; so can remove mass debug info from log buffer when using dmesg. Signed-off-by: Leo Yan Signed-off-by: Marcel Holtmann drivers/bluetooth/btwilink.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 824973bfaa781c1b0fcd90d15a5fbc9b69bf2f7b Author: Heiko Stuebner Date: Fri Mar 6 19:04:03 2015 +0100 ARM: dts: rockchip: relicense rk3288-thermal.dtsi under GPLv2/X11 GPLv2-only devicetrees make reuse difficult for software components licensed under a different license. The consensus is that a GPL/X11 dual-license should allow all necessary uses, so relicense the rk3288-thermal.dtsi to this combination. CCs were aquired by git shortlog -sne so it should've hopefully catched every contributor. Signed-off-by: Heiko Stuebner Acked-by: Caesar Wang arch/arm/boot/dts/rk3288-thermal.dtsi | 40 ++++++++++++++++++++++++++++++++--- 1 file changed, 37 insertions(+), 3 deletions(-) commit 0892fed70f610bc8f075b7ea09f875629f3537e9 Author: Heiko Stuebner Date: Fri Mar 6 19:04:01 2015 +0100 ARM: dts: rockchip: relicense rk3188.dtsi under GPLv2/X11 GPLv2-only devicetrees make reuse difficult for software components licensed under a different license. The consensus is that a GPL/X11 dual-license should allow all necessary uses, so relicense the rk3188.dtsi to this combination. CCs were aquired by git shortlog -sne so it should've hopefully catched every contributor. Signed-off-by: Heiko Stuebner Acked-by: Beniamino Galvani Acked-by: Romain Perier Acked-by: Julien Chauveau Acked-by: Max Schwarz arch/arm/boot/dts/rk3188.dtsi | 44 +++++++++++++++++++++++++++++++++++-------- 1 file changed, 36 insertions(+), 8 deletions(-) commit 5218c6bcb8b7ad75a6202b3dd95c8a1a529766d0 Author: Heiko Stuebner Date: Fri Mar 6 19:04:00 2015 +0100 ARM: dts: rockchip: relicense rk3066a.dtsi under GPLv2/X11 GPLv2-only devicetrees make reuse difficult for software components licensed under a different license. The consensus is that a GPL/X11 dual-license should allow all necessary uses, so relicense the rk3066a.dtsi to this combination. CCs were aquired by git shortlog -sne so it should've hopefully catched every contributor. Signed-off-by: Heiko Stuebner Acked-by: Beniamino Galvani Acked-by: Romain Perier Acked-by: Julien Chauveau arch/arm/boot/dts/rk3066a.dtsi | 44 ++++++++++++++++++++++++++++++++++-------- 1 file changed, 36 insertions(+), 8 deletions(-) commit d6250a1fdd66de5d46d172f529e28ad87507438b Author: Heiko Stuebner Date: Fri Mar 6 19:03:59 2015 +0100 ARM: dts: rockchip: relicense rk3xxx.dtsi under GPLv2/X11 GPLv2-only devicetrees make reuse difficult for software components licensed under a different license. The consensus is that a GPL/X11 dual-license should allow all necessary uses, so relicense the rk3xxx.dtsi to this combination. CCs were aquired by git shortlog -sne so it should've hopefully catched every contributor. Signed-off-by: Heiko Stuebner Acked-by: Beniamino Galvani Acked-by: Romain Perier Acked-by: Julien Chauveau arch/arm/boot/dts/rk3xxx.dtsi | 44 +++++++++++++++++++++++++++++++++++-------- 1 file changed, 36 insertions(+), 8 deletions(-) commit 6ce47fd961fa8fb206433789d7754c73cab3b5d0 Author: Thomas Gleixner Date: Wed May 13 22:49:12 2015 +0200 rtmutex: Warn if trylock is called from hard/softirq context rt_mutex_trylock() must be called from thread context. It can be called from atomic regions (preemption or interrupts disabled), but not from hard/softirq/nmi context. Add a warning to alert abusers. The reasons for this are: 1) There is a potential deadlock in the slowpath 2) Another cpu which blocks on the rtmutex will boost the task which allegedly locked the rtmutex, but that cannot work because the hard/softirq context borrows the task context. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra Cc: Sebastian Siewior kernel/locking/rtmutex.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 356484cabe44984d2dc66a90bd5e3465ba1f64fb Author: Olli Salonen Date: Tue May 5 13:33:55 2015 -0300 [media] dw2102: resync fifo when demod locks If the streaming_ctrl is called to enable TS before demod has locked the TS will be empty. Copied the solution from the dvbsky driver for the TechnoTrend S2-4600 device: when the state changes from unlock to lock, call su3000_streaming_ctrl again. Signed-off-by: Olli Salonen Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/dvb-usb/dw2102.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) commit c636bd0bce374f3beed8a071032d807f61f0f5c4 Author: Olli Salonen Date: Tue May 5 13:33:52 2015 -0300 [media] dw2102: remove unnecessary printing of MAC address While reading the MAC address for SU3000-based devices the system was printing excessive debug information in the logs: Output before the patch: [ 1515.780692] bc 00 00 00 00 00 [ 1515.781440] bc ea 00 00 00 00 [ 1515.782251] bc ea 2b 00 00 00 [ 1515.783094] bc ea 2b 46 00 00 [ 1515.783816] bc ea 2b 46 12 00 [ 1515.784565] bc ea 2b 46 12 92 [ 1515.784571] dvb-usb: MAC address: bc:ea:2b:46:12:92 Output after the patch: [ 3803.495706] dvb-usb: MAC address: bc:ea:2b:46:12:92 Signed-off-by: Olli Salonen Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/dvb-usb/dw2102.c | 2 -- 1 file changed, 2 deletions(-) commit f5d39078824fdd16f710e710e58f1cb937ab9553 Author: Fabian Frederick Date: Sat May 2 17:07:45 2015 -0300 [media] siano: define SRVM_MAX_PID_FILTERS only once SRVM_MAX_PID_FILTERS was defined in 2 sms_tx_stats structures Signed-off-by: Fabian Frederick Signed-off-by: Mauro Carvalho Chehab drivers/media/common/siano/smscoreapi.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 59af132bb68860de035388dcb531ac4ef46ccfa5 Merge: f0b5e8a 2d07dc7 Author: David S. Miller Date: Wed May 13 15:59:14 2015 -0400 Merge branch 'geneve_tunnel_driver' John W. Linville says: ==================== add GENEVE netdev tunnel driver This 5-patch kernel series adds a netdev implementation of a GENEVE tunnel driver, and the single iproute2 patch enables creation and such for those netdevs. This makes use of the existing GENEVE infrastructure already used by the OVS code. The net/ipv4/geneve.c file is renamed as net/ipv4/geneve_core.c as part of these changes. drivers/net/Kconfig | 14 + drivers/net/Makefile | 1 drivers/net/geneve.c | 503 +++++++++++++++++++++++++++++++++++++++++ include/net/geneve.h | 5 include/uapi/linux/if_link.h | 9 net/ipv4/Kconfig | 4 net/ipv4/Makefile | 2 net/ipv4/geneve.c | 6 net/ipv4/geneve_core.c | 4 net/openvswitch/Kconfig | 2 net/openvswitch/vport-geneve.c | 5 11 files changed, 538 insertions(+), 17 deletions(-) The overall structure of the GENEVE netdev driver is strongly influenced by the VXLAN netdev driver. This is not surprising, as the two drivers are intended to serve similar purposes. As development of the GENEVE driver continues, it is likely that those similarities will grow stronger. This will include both simple configuration options (e.g. TOS and TTL settings) and new control plane support. The current implementation is very simple, restricting itself to point to point links over IPv4. This is due only to the simplicity of the implementation, and no such limit is inherent to GENEVE in any way. Support for IPv6 links and more sophisticated control plane options are predictable enhancements. Using the included iproute2 patch, a GENEVE tunnel is created thusly: ip link add dev gnv0 type geneve remote 192.168.22.1 vni 1234 ip link set gnv0 up ip addr add 10.1.1.1/24 dev gnv0 After a corresponding tunnel interface is created at the link partner, traffic should proceed as expected. Please let me know if anyone has problems...thanks! ==================== Signed-off-by: David S. Miller commit 2d07dc79fe04a43d82a346ced6bbf07bdb523f1b Author: John W. Linville Date: Wed May 13 12:57:30 2015 -0400 geneve: add initial netdev driver for GENEVE tunnels This is an initial implementation of a netdev driver for GENEVE tunnels. This implementation uses a fixed UDP port, and only supports point-to-point links with specific partner endpoints. Only IPv4 links are supported at this time. Signed-off-by: John W. Linville Signed-off-by: David S. Miller drivers/net/Kconfig | 14 ++ drivers/net/Makefile | 1 + drivers/net/geneve.c | 503 +++++++++++++++++++++++++++++++++++++++++++ include/uapi/linux/if_link.h | 9 + 4 files changed, 527 insertions(+) commit d37d29c30509854d15401277f39aab0336525f27 Author: John W. Linville Date: Wed May 13 12:57:29 2015 -0400 geneve_core: identify as driver library in modules description Signed-off-by: John W. Linville Signed-off-by: David S. Miller net/ipv4/geneve_core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 11e1fa46b43216458e0f67f1f0b257586c5d8e5c Author: John W. Linville Date: Wed May 13 12:57:28 2015 -0400 geneve: Rename support library as geneve_core net/ipv4/geneve.c -> net/ipv4/geneve_core.c This name better reflects the purpose of the module. Signed-off-by: John W. Linville Signed-off-by: David S. Miller net/ipv4/Kconfig | 4 +- net/ipv4/Makefile | 2 +- net/ipv4/geneve.c | 447 ------------------------------------------------ net/ipv4/geneve_core.c | 447 ++++++++++++++++++++++++++++++++++++++++++++++++ net/openvswitch/Kconfig | 2 +- 5 files changed, 451 insertions(+), 451 deletions(-) commit 35d32e8fe4ab44180e46a0dd54abea6985398d00 Author: John W. Linville Date: Wed May 13 12:57:27 2015 -0400 geneve: move definition of geneve_hdr() to geneve.h This is a static inline with identical definitions in multiple places... Signed-off-by: John W. Linville Signed-off-by: David S. Miller include/net/geneve.h | 5 +++++ net/ipv4/geneve.c | 5 ----- net/openvswitch/vport-geneve.c | 5 ----- 3 files changed, 5 insertions(+), 10 deletions(-) commit 125907ae5ef000a3855b33f6545d672275413836 Author: John W. Linville Date: Wed May 13 12:57:26 2015 -0400 geneve: remove MODULE_ALIAS_RTNL_LINK from net/ipv4/geneve.c This file is essentially a library for implementing the geneve encapsulation protocol. The file does not register any rtnl_link_ops, so the MODULE_ALIAS_RTNL_LINK macro is inappropriate here. Signed-off-by: John W. Linville Signed-off-by: David S. Miller net/ipv4/geneve.c | 1 - 1 file changed, 1 deletion(-) commit 44d6ac60816c25374b84b11ec71e44e01c5f1a3c Author: Krzysztof Kozlowski Date: Fri May 1 12:43:07 2015 -0300 [media] staging: media: omap4iss: 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 Acked-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/staging/media/omap4iss/iss.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f0b5e8a42f37a880b8467e59dc814f4f21581d3d Author: Pablo Neira Date: Tue May 12 20:28:07 2015 +0200 net: kill useless net_*_ingress_queue() definitions when NET_CLS_ACT is unset This fixes 4577139b2dabf589 ("net: use jump label patching for ingress qdisc in __netif_receive_skb_core"). The only client of this is sch_ingress and it depends on NET_CLS_ACT. So there is no way these definition can be of any help. Cc: Daniel Borkmann Signed-off-by: Pablo Neira Ayuso Acked-by: Daniel Borkmann Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller include/linux/rtnetlink.h | 8 -------- 1 file changed, 8 deletions(-) commit 1a4de1b5e915b6ccc2b9b177b9e99af84660f045 Author: Antonio Ospite Date: Tue Apr 28 08:11:26 2015 -0300 [media] cx25821: cx25821-medusa-reg.h: fix 0x0x prefix Fix the 0x0x prefix in integer constants. In this case a padding 0 must also be inserted to make the constants look like all the other 16 bits ones. Signed-off-by: Antonio Ospite Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/cx25821/cx25821-medusa-reg.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 9f0a74d7b645e0059b58f2e041d28c283c71b794 Merge: 7d771aa a9b6391 Author: David S. Miller Date: Wed May 13 15:43:01 2015 -0400 Merge branch 'packet_rollover' Willem de Bruijn says: ==================== refine packet socket rollover: 1. mitigate a case of lock contention 2. avoid exporting resource exhaustion to other sockets, by migrating only to a victim socket that has ample room 3. avoid reordering of most flows on the socket, by migrating first the flow responsible for load imbalance 4. help processes detect load imbalance, by exporting rollover counters Context: rollover implements flow migration in packet socket fanout groups in case of extreme load imbalance. It is a specific implementation of migration that minimizes reordering by selecting the same victim socket when possible (and by selecting subsequent victims in a round robin fashion, from which its name derives). Changes: v2 -> v3: - statistics: replace unsigned long with __aligned_u64 v1 -> v2: - huge flow detection: run lockless - huge flow detection: replace stored index with random - contention avoidance: test in packet_poll while lock held - contention avoidance: clear pressure sooner packet_poll and packet_recvmsg would clear only if the sock is empty to avoid taking the necessary lock. But, * packet_poll already holds this lock, so a lockless variant __packet_rcv_has_room is cheap. * packet_recvmsg is usually called only for non-ring sockets, which also runs lockless. - preparation: drop "single return" patch packet_rcv_has_room is now a locked wrapper around __packet_rcv_has_room, achieving the same (single footer). The benchmark mentioned in the patches is at https://github.com/wdebruij/kerneltools/blob/master/tests/bench_rollover.c ==================== Signed-off-by: David S. Miller commit a9b6391814d5d6b8668fca2dace86949b7244e2e Author: Willem de Bruijn Date: Tue May 12 11:56:50 2015 -0400 packet: rollover statistics Rollover indicates exceptional conditions. Export a counter to inform socket owners of this state. If no socket with sufficient room is found, rollover fails. Also count these events. Finally, also count when flows are rolled over early thanks to huge flow detection, to validate its correctness. Tested: Read counters in bench_rollover on all other tests in the patchset Signed-off-by: Willem de Bruijn Signed-off-by: David S. Miller include/uapi/linux/if_packet.h | 7 +++++++ net/packet/af_packet.c | 19 ++++++++++++++++++- net/packet/internal.h | 3 +++ 3 files changed, 28 insertions(+), 1 deletion(-) commit 3b3a5b0aab5b9ad345d4beb9a364a7dd02c23d40 Author: Willem de Bruijn Date: Tue May 12 11:56:49 2015 -0400 packet: rollover huge flows before small flows Migrate flows from a socket to another socket in the fanout group not only when the socket is full. Start migrating huge flows early, to divert possible 4-tuple attacks without affecting normal traffic. Introduce fanout_flow_is_huge(). This detects huge flows, which are defined as taking up more than half the load. It does so cheaply, by storing the rxhashes of the N most recent packets. If over half of these are the same rxhash as the current packet, then drop it. This only protects against 4-tuple attacks. N is chosen to fit all data in a single cache line. Tested: Ran bench_rollover for 10 sec with 1.5 Mpps of single flow input. lpbb5:/export/hda3/willemb# ./bench_rollover -l 1000 -r -s cpu rx rx.k drop.k rollover r.huge r.failed 0 14 14 0 0 0 0 1 20 20 0 0 0 0 2 16 16 0 0 0 0 3 6168824 6168824 0 4867721 4867721 0 4 4867741 4867741 0 0 0 0 5 12 12 0 0 0 0 6 15 15 0 0 0 0 7 17 17 0 0 0 0 Signed-off-by: Willem de Bruijn Signed-off-by: David S. Miller net/packet/af_packet.c | 25 ++++++++++++++++++++++--- net/packet/internal.h | 2 ++ 2 files changed, 24 insertions(+), 3 deletions(-) commit 2ccdbaa6d55b0656244ba57c4b56765a0af76c0a Author: Willem de Bruijn Date: Tue May 12 11:56:48 2015 -0400 packet: rollover lock contention avoidance Rollover has to call packet_rcv_has_room on sockets in the fanout group to find a socket to migrate to. This operation is expensive especially if the packet sockets use rings, when a lock has to be acquired. Avoid pounding on the lock by all sockets by temporarily marking a socket as "under memory pressure" when such pressure is detected. While set, only the socket owner may call packet_rcv_has_room on the socket. Once it detects normal conditions, it clears the flag. The socket is not used as a victim by any other socket in the meantime. Under reasonably balanced load, each socket writer frequently calls packet_rcv_has_room and clears its own pressure field. As a backup for when the socket is rarely written to, also clear the flag on reading (packet_recvmsg, packet_poll) if this can be done cheaply (i.e., without calling packet_rcv_has_room). This is only for edge cases. Tested: Ran bench_rollover: a process with 8 sockets in a single fanout group, each pinned to a single cpu that receives one nic recv interrupt. RPS and RFS are disabled. The benchmark uses packet rx_ring, which has to take a lock when determining whether a socket has room. Sent 3.5 Mpps of UDP traffic with sufficient entropy to spread uniformly across the packet sockets (and inserted an iptables rule to drop in PREROUTING to avoid protocol stack processing). Without this patch, all sockets try to migrate traffic to neighbors, causing lock contention when searching for a non- empty neighbor. The lock is the top 9 entries. perf record -a -g sleep 5 - 17.82% bench_rollover [kernel.kallsyms] [k] _raw_spin_lock - _raw_spin_lock - 99.00% spin_lock + 81.77% packet_rcv_has_room.isra.41 + 18.23% tpacket_rcv + 0.84% packet_rcv_has_room.isra.41 + 5.20% ksoftirqd/6 [kernel.kallsyms] [k] _raw_spin_lock + 5.15% ksoftirqd/1 [kernel.kallsyms] [k] _raw_spin_lock + 5.14% ksoftirqd/2 [kernel.kallsyms] [k] _raw_spin_lock + 5.12% ksoftirqd/7 [kernel.kallsyms] [k] _raw_spin_lock + 5.12% ksoftirqd/5 [kernel.kallsyms] [k] _raw_spin_lock + 5.10% ksoftirqd/4 [kernel.kallsyms] [k] _raw_spin_lock + 4.66% ksoftirqd/0 [kernel.kallsyms] [k] _raw_spin_lock + 4.45% ksoftirqd/3 [kernel.kallsyms] [k] _raw_spin_lock + 1.55% bench_rollover [kernel.kallsyms] [k] packet_rcv_has_room.isra.41 On net-next with this patch, this lock contention is no longer a top entry. Most time is spent in the actual read function. Next up are other locks: + 15.52% bench_rollover bench_rollover [.] reader + 4.68% swapper [kernel.kallsyms] [k] memcpy_erms + 2.77% swapper [kernel.kallsyms] [k] packet_lookup_frame.isra.51 + 2.56% ksoftirqd/1 [kernel.kallsyms] [k] memcpy_erms + 2.16% swapper [kernel.kallsyms] [k] tpacket_rcv + 1.93% swapper [kernel.kallsyms] [k] mlx4_en_process_rx_cq Looking closer at the remaining _raw_spin_lock, the cost of probing in rollover is now comparable to the cost of taking the lock later in tpacket_rcv. - 1.51% swapper [kernel.kallsyms] [k] _raw_spin_lock - _raw_spin_lock + 33.41% packet_rcv_has_room + 28.15% tpacket_rcv + 19.54% enqueue_to_backlog + 6.45% __free_pages_ok + 2.78% packet_rcv_fanout + 2.13% fanout_demux_rollover + 2.01% netif_receive_skb_internal Signed-off-by: Willem de Bruijn Signed-off-by: David S. Miller net/packet/af_packet.c | 38 +++++++++++++++++++++++++++++++------- net/packet/internal.h | 1 + 2 files changed, 32 insertions(+), 7 deletions(-) commit 9954729bc3896998d53040c46a28830a3a3d5063 Author: Willem de Bruijn Date: Tue May 12 11:56:47 2015 -0400 packet: rollover only to socket with headroom Only migrate flows to sockets that have sufficient headroom, where sufficient is defined as having at least 25% empty space. The kernel has three different buffer types: a regular socket, a ring with frames (TPACKET_V[12]) or a ring with blocks (TPACKET_V3). The latter two do not expose a read pointer to the kernel, so headroom is not computed easily. All three needs a different implementation to estimate free space. Tested: Ran bench_rollover for 10 sec with 1.5 Mpps of single flow input. bench_rollover has as many sockets as there are NIC receive queues in the system. Each socket is owned by a process that is pinned to one of the receive cpus. RFS is disabled. RPS is enabled with an identity mapping (cpu x -> cpu x), to count drops with softnettop. lpbb5:/export/hda3/willemb# ./bench_rollover -r -l 1000 -s Press [Enter] to exit cpu rx rx.k drop.k rollover r.huge r.failed 0 16 16 0 0 0 0 1 21 21 0 0 0 0 2 5227502 5227502 0 0 0 0 3 18 18 0 0 0 0 4 6083289 6083289 0 5227496 0 0 5 22 22 0 0 0 0 6 21 21 0 0 0 0 7 9 9 0 0 0 0 Signed-off-by: Willem de Bruijn Signed-off-by: David S. Miller net/packet/af_packet.c | 76 +++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 59 insertions(+), 17 deletions(-) commit 0648ab70afe6c3bf2369a6d779b44a85121c063d Author: Willem de Bruijn Date: Tue May 12 11:56:46 2015 -0400 packet: rollover prepare: per-socket state Replace rollover state per fanout group with state per socket. Future patches will add fields to the new structure. Signed-off-by: Willem de Bruijn Signed-off-by: David S. Miller net/packet/af_packet.c | 21 ++++++++++++++++++--- net/packet/internal.h | 6 +++++- 2 files changed, 23 insertions(+), 4 deletions(-) commit ad377cab4966e2f9162f05be1f7eeae466d411a8 Author: Willem de Bruijn Date: Tue May 12 11:56:45 2015 -0400 packet: rollover prepare: move code out of callsites packet_rcv_fanout calls fanout_demux_rollover twice. Move all rollover logic into the callee to simplify these callsites, especially with upcoming changes. The main differences between the two callsites is that the FLAG variant tests whether the socket previously selected by another mode (RR, RND, HASH, ..) has room before migrating flows, whereas the rollover mode has no original socket to test. Signed-off-by: Willem de Bruijn Signed-off-by: David S. Miller net/packet/af_packet.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) commit 8547aa131495b081ef3e5ada8bc726251e23d2e0 Author: Rabin Vincent Date: Mon May 4 19:48:54 2015 +0200 Documentation: tracing: fix grammar 4a88d44ab17da ("tracing: Remove mentioning of legacy latency_trace file from documentation") changed a sentence to refer to only one file instead of two, but the sentence still uses "they". Fix it. Signed-off-by: Rabin Vincent Acked-by: Steven Rostedt Signed-off-by: Jonathan Corbet Documentation/trace/ftrace.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit dd7e283308a162f2fe50dec25bb864b2dc3cde3f Author: Geert Uytterhoeven Date: Mon May 4 19:39:51 2015 +0200 Documentation/magic-number: Remove SCC_MAGIC The SCC_MAGIC define was removed in commit 1ec3ba93c5fad9dc ("Staging: remove drivers/char/scc.h as it should have gone a while ago"), while its actual last user was removed before in commit bb2a97e9ccd525dd ("Staging: delete generic_serial drivers"). Signed-off-by: Geert Uytterhoeven Signed-off-by: Jonathan Corbet Documentation/magic-number.txt | 1 - Documentation/zh_CN/magic-number.txt | 1 - 2 files changed, 2 deletions(-) commit 9b88798c8e2db5d146508fe3b299e352388b9a25 Author: Geert Uytterhoeven Date: Mon May 4 19:39:50 2015 +0200 Documentation/magic-number: Remove SCI_MAGIC The SCI_MAGIC define was removed in commit f8e53553f452dcbf ("serial: sh-sci: Kill off more unused defines."). Its last user was the old drivers/char sh-sci driver, which was removed in 2004. Signed-off-by: Geert Uytterhoeven Signed-off-by: Jonathan Corbet Documentation/magic-number.txt | 1 - Documentation/zh_CN/magic-number.txt | 1 - 2 files changed, 2 deletions(-) commit beb7a2a97103ce31df639b35b6f3a07ca7f77188 Author: Alexander Sverdlin Date: Wed May 13 18:27:40 2015 +0200 clk: axm55xx: Use %zu in pr_info for size_t Fix the following compiler warning: drivers/clk/clk-axm5516.c: In function 'axmclk_probe': drivers/clk/clk-axm5516.c:559:2: warning: format '%u' expects argument of type 'unsigned int', but argument 2 has type 'size_t' [-Wformat=] pr_info("axmclk: supporting %u clocks\n", num_clks); ^ Signed-off-by: Alexander Sverdlin Signed-off-by: Stephen Boyd drivers/clk/clk-axm5516.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b1ed311baf66d7e826f07f456b9f7945fa300aaf Author: Maxime Ripard Date: Sat May 2 17:03:21 2015 +0200 clk: asm9260: Fix of_io_request_and_map error check of_io_request_and map returns an error pointer, but the current code assumes that on error the returned pointer will be NULL. Obviously, that makes the check completely useless. Change the test to actually check for the proper error code. Signed-off-by: Maxime Ripard Cc: Mike Turquette Cc: Stephen Boyd Cc: linux-clk@vger.kernel.org Signed-off-by: Stephen Boyd drivers/clk/clk-asm9260.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 42801ca46719b189d4090b76268e6db90fc01e3c Author: Daniel Thompson Date: Mon May 11 11:20:06 2015 +0100 clk: Update docs after removal of clk-private.h Currently Documentation/clk.txt describes an obsolete techinique to statically define struct clk objects. This capability was removed by b09d6d991025("clk: remove clk-private.h") and is no longer supported. The documentation describing the feature should be removed. Signed-off-by: Daniel Thompson Cc: Jonathan Corbet Cc: Michael Turquette Cc: Stephen Boyd Signed-off-by: Stephen Boyd Documentation/clk.txt | 27 ++------------------------- 1 file changed, 2 insertions(+), 25 deletions(-) commit dbc3976d9123a00925e3c9893b3f40f58f82636c Author: Stephen Boyd Date: Thu May 7 23:43:26 2015 -0700 clk: bindings: Fix assigned-clock-rates description The binding uses assigned-clock-parents when it should use assigned-clock-rates. Furthermore, the part that describes how they relate to the assigned-clocks property is not clear about what is related. Correct and clarify this part of the binding. Reported-by: Krzysztof Kozlowski Signed-off-by: Stephen Boyd Documentation/devicetree/bindings/clock/clock-bindings.txt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 550f45bc83e7fb4ff454516c20ccfa674f771e37 Author: Dan Carpenter Date: Tue Apr 21 06:31:10 2015 -0300 [media] v4l: xilinx: harmless buffer overflow My static checker warns that the name of the port can be 15 characters when you consider the NUL terminator and that's one more than the 14 characters in name[]. Maybe it's an off-by-one? It's unlikely that we hit the limit and even if we do the overflow will only affect one of the two bytes of padding so it's harmless. Still let's fix it and also change the sprintf() to snprintf(). Signed-off-by: Dan Carpenter Acked-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/xilinx/xilinx-dma.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 09a5059aa1a2cbf8c8993e61b013cc83a0dd5833 Author: Steven Rostedt (Red Hat) Date: Wed May 13 15:21:25 2015 -0400 tracing: Rename ftrace_trigger_soft_disabled() to trace_trigger_soft_disabled() The name "ftrace" really refers to the function hook infrastructure. It is not about the trace_events. The ftrace_trigger_soft_disabled() tests if a trace_event is soft disabled (called but not traced), and returns true if it is. It has nothing to do with function tracing and should be renamed. Signed-off-by: Steven Rostedt include/linux/trace_events.h | 4 ++-- include/trace/perf.h | 2 +- kernel/trace/trace_kprobe.c | 4 ++-- kernel/trace/trace_syscalls.c | 4 ++-- kernel/trace/trace_uprobe.c | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) commit 5d6ad960a71f0b36d95d74ef93285733b9f62f59 Author: Steven Rostedt (Red Hat) Date: Wed May 13 15:12:33 2015 -0400 tracing: Rename FTRACE_EVENT_FL_* flags to EVENT_FILE_FL_* The name "ftrace" really refers to the function hook infrastructure. It is not about the trace_events. The FTRACE_EVENT_FL_* flags are flags to do with the trace_event files in the tracefs directory. They are not related to function tracing. Rename them to a more descriptive name. Signed-off-by: Steven Rostedt include/linux/trace_events.h | 50 +++++++++++++++--------------- include/trace/perf.h | 10 +++--- kernel/trace/trace.c | 4 +-- kernel/trace/trace_events.c | 62 ++++++++++++++++++------------------- kernel/trace/trace_events_filter.c | 10 +++--- kernel/trace/trace_events_trigger.c | 14 ++++----- 6 files changed, 75 insertions(+), 75 deletions(-) commit 2235cf63400928a2deeccf65735e611a2d8aae30 Author: Fabio Estevam Date: Tue Apr 14 16:24:15 2015 -0300 [media] st_rc: fix build warning Building for avr32 leads the following build warning: drivers/media/rc/st_rc.c:270: warning: passing argument 1 of 'IS_ERR' discards qualifiers from pointer target type drivers/media/rc/st_rc.c:271: warning: passing argument 1 of 'PTR_ERR' discards qualifiers from pointer target type devm_ioremap_resource() returns void __iomem *, so change 'base' and 'rx_base' definitions accordingly. Reported-by: kbuild test robot Signed-off-by: Fabio Estevam Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/st_rc.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 7d771aaac7b2459013e9a246f16c06d4f2b819e1 Author: Eric Dumazet Date: Tue May 12 06:31:48 2015 -0700 ipv4: __ip_local_out_sk() is static __ip_local_out_sk() is only used from net/ipv4/ip_output.c net/ipv4/ip_output.c:94:5: warning: symbol '__ip_local_out_sk' was not declared. Should it be static? Fixes: 7026b1ddb6b8 ("netfilter: Pass socket pointer down through okfn().") Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller net/ipv4/ip_output.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 216f8bb9f67ff636769064f86812e1ce6466e4af Author: Eric Dumazet Date: Tue May 12 06:22:56 2015 -0700 tcp/dccp: tw_timer_handler() is static tw_timer_handler() is only used from net/ipv4/inet_timewait_sock.c Fixes: 789f558cfb36 ("tcp/dccp: get rid of central timewait timer") Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller net/ipv4/inet_timewait_sock.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit dd58c6359b38cff91100593ea4926adb19e85636 Merge: 212da1f 77b9900 Author: David S. Miller Date: Wed May 13 15:19:48 2015 -0400 Merge branch 'cls_flower' Jiri Pirko says: ==================== introduce programable flow dissector and cls_flower Per Davem's request, I prepared this patchset which introduces programmable flow dissector. For current users of flow_keys, there is a wrapper skb_flow_dissect_flow_keys which maintains the previous behaviour. For purposes of cls_flower, couple of new dissection keys were introduced. Note that this dissector can be also eventually used by openvswitch code. Also, as a next step, I plan to get rid of *skb_flow_get_ports(export) and *__skb_get_poff as their functionality can be now implemented by skb_flow_dissect as well. v2->v3: - remove TCA_FLOWER_POLICE attr suggested by Jamal v1->v2: - move __skb_tx_hash rather to dev.c as suggested by Alex ==================== Signed-off-by: David S. Miller commit 77b9900ef53ae047e36a37d13a2aa33bb2d60641 Author: Jiri Pirko Date: Tue May 12 14:56:21 2015 +0200 tc: introduce Flower classifier This patch introduces a flow-based filter. So far, the very essential packet fields are supported. This patch is only the first step. There is a lot of potential performance improvements possible to implement. Also a lot of features are missing now. They will be addressed in follow-up patches. Signed-off-by: Jiri Pirko Acked-by: Jamal Hadi Salim Signed-off-by: David S. Miller include/uapi/linux/pkt_cls.h | 30 ++ net/sched/Kconfig | 10 + net/sched/Makefile | 1 + net/sched/cls_flower.c | 688 +++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 729 insertions(+) commit 59346afe7a5548ab3e9730aeff33993faa76abbe Author: Jiri Pirko Date: Tue May 12 14:56:20 2015 +0200 flow_dissector: change port array into src, dst tuple Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/cisco/enic/enic_clsf.c | 4 ++-- drivers/net/ethernet/cisco/enic/enic_ethtool.c | 4 ++-- include/net/flow_dissector.h | 9 ++++++--- include/net/ip.h | 4 ++-- include/net/ipv6.h | 4 ++-- net/core/flow_dissector.c | 4 ++-- net/sched/cls_flow.c | 4 ++-- 7 files changed, 18 insertions(+), 15 deletions(-) commit 67a900cc0436d74e7ff89042371760def087680d Author: Jiri Pirko Date: Tue May 12 14:56:19 2015 +0200 flow_dissector: introduce support for Ethernet addresses Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller include/net/flow_dissector.h | 13 +++++++++++++ net/core/flow_dissector.c | 12 ++++++++++++ 2 files changed, 25 insertions(+) commit b924933cbbfbdcaa2831a39780c116ec6e48c397 Author: Jiri Pirko Date: Tue May 12 14:56:18 2015 +0200 flow_dissector: introduce support for ipv6 addressses So far, only hashes made out of ipv6 addresses could be dissected. This patch introduces support for dissection of full ipv6 addresses. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller include/net/flow_dissector.h | 13 +++++++++++++ net/core/flow_dissector.c | 29 +++++++++++++++++++++-------- 2 files changed, 34 insertions(+), 8 deletions(-) commit c3f8eaeb6ea501bd0e2e424f5dfecf952b12a06f Author: Jiri Pirko Date: Tue May 12 14:56:17 2015 +0200 flow_dissector: add missing header includes Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller include/net/flow_dissector.h | 3 +++ 1 file changed, 3 insertions(+) commit 06635a35d13d42b95422bba6633f175245cc644e Author: Jiri Pirko Date: Tue May 12 14:56:16 2015 +0200 flow_dissect: use programable dissector in skb_flow_dissect and friends Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/bonding/bond_main.c | 18 +-- drivers/net/ethernet/cisco/enic/enic_clsf.c | 27 ++-- drivers/net/ethernet/cisco/enic/enic_ethtool.c | 10 +- drivers/net/hyperv/netvsc_drv.c | 8 +- include/linux/skbuff.h | 4 +- include/net/flow_dissector.h | 63 ++++---- include/net/ip.h | 8 +- include/net/ipv6.h | 8 +- net/core/flow_dissector.c | 199 +++++++++++++++++-------- net/ethernet/eth.c | 6 +- net/sched/cls_flow.c | 20 +-- net/sched/sch_choke.c | 4 +- 12 files changed, 229 insertions(+), 146 deletions(-) commit fbff949e3bc7f3f7d9e8b3ef4855ec7138276a25 Author: Jiri Pirko Date: Tue May 12 14:56:15 2015 +0200 flow_dissector: introduce programable flow_dissector Introduce dissector infrastructure which allows user to specify which parts of skb he wants to dissect. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller include/net/flow_dissector.h | 61 ++++++++++++++++++++++++++++++++++++++++++++ net/core/flow_dissector.c | 48 ++++++++++++++++++++++++++++++++++ 2 files changed, 109 insertions(+) commit 0db89b8b3243829704225e756ca7417e06812bba Author: Jiri Pirko Date: Tue May 12 14:56:14 2015 +0200 flow_dissector: fix doc for skb_get_poff Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller net/core/flow_dissector.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 638b2a699fd3ec926d6dda2d2bd96e8f1c49e463 Author: Jiri Pirko Date: Tue May 12 14:56:13 2015 +0200 net: move netdev_pick_tx and dependencies to net/core/dev.c next to its user. No relation to flow_dissector so it makes no sense to have it in flow_dissector.c Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller net/core/dev.c | 78 +++++++++++++++++++++++++++++++++++++++++++++++ net/core/flow_dissector.c | 78 ----------------------------------------------- 2 files changed, 78 insertions(+), 78 deletions(-) commit 5605c76240aadc823e3d46ac9afde2f26fbcf019 Author: Jiri Pirko Date: Tue May 12 14:56:12 2015 +0200 net: move __skb_tx_hash to dev.c __skb_tx_hash function has no relation to flow_dissect so just move it to dev.c Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller include/linux/netdevice.h | 3 +++ include/linux/skbuff.h | 3 --- net/core/dev.c | 28 ++++++++++++++++++++++++++++ net/core/flow_dissector.c | 28 ---------------------------- 4 files changed, 31 insertions(+), 31 deletions(-) commit 9c684b5083bc191c4b7b189c73d75587e167a474 Author: Jiri Pirko Date: Tue May 12 14:56:11 2015 +0200 net: move __skb_get_hash function declaration to flow_dissector.h Since the definition of the function is in flow_dissector.c, it makes sense to have the declaration in flow_dissector.h Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller include/linux/skbuff.h | 1 - include/net/flow_dissector.h | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) commit d4fd32757176d1b03533770ef75aa2b781fa5667 Author: Jiri Pirko Date: Tue May 12 14:56:10 2015 +0200 flow_dissector: fix doc for __skb_get_hash and remove couple of empty lines Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller net/core/flow_dissector.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 10b89ee43e849544eddfe34e535341fc077464ec Author: Jiri Pirko Date: Tue May 12 14:56:09 2015 +0200 net: move *skb_get_poff declarations into correct header Since these functions are defined in flow_dissector.c, move header declarations from skbuff.h into flow_dissector.h Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller include/linux/skbuff.h | 4 ---- include/net/flow_dissector.h | 3 +++ net/core/filter.c | 1 + net/ethernet/eth.c | 1 + 4 files changed, 5 insertions(+), 4 deletions(-) commit b0a31431b4d81fb1ccc36ce64ce3fe6a0aca4031 Author: Jiri Pirko Date: Tue May 12 14:56:08 2015 +0200 flow_dissector: remove unused function flow_get_hlen declaration commit 56193d1bce ("net: Add function for parsing the header length out of linear ethernet frames") added this function declaration but it is defined nowhere. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller include/net/flow_dissector.h | 3 --- 1 file changed, 3 deletions(-) commit 1bd758eb1cab2fa5b71a23f9e5d3c8076f4ed650 Author: Jiri Pirko Date: Tue May 12 14:56:07 2015 +0200 net: change name of flow_dissector header to match the .c file name add couple of empty lines on the way. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/bonding/bond_main.c | 2 +- drivers/net/ethernet/cisco/enic/enic_clsf.c | 2 +- include/linux/skbuff.h | 2 +- include/net/flow_dissector.h | 68 +++++++++++++++++++++++++++++ include/net/flow_keys.h | 61 -------------------------- include/net/ip.h | 2 +- include/net/ipv6.h | 2 +- net/core/flow_dissector.c | 2 +- net/sched/cls_flow.c | 2 +- net/sched/sch_choke.c | 2 +- 10 files changed, 76 insertions(+), 69 deletions(-) commit 3ea0f28559076982ae02935c27ea1a58dece65ab Author: Fabio Estevam Date: Tue Apr 14 15:21:39 2015 -0300 [media] ir-hix5hd2: Fix build warning Building for avr32 leads the following build warning: drivers/media/rc/ir-hix5hd2.c:221: warning: passing argument 1 of 'IS_ERR' discards qualifiers from pointer target type drivers/media/rc/ir-hix5hd2.c:222: warning: passing argument 1 of 'PTR_ERR' discards qualifiers from pointer target type devm_ioremap_resource() returns void __iomem *, so change 'base' definition accordingly. Reported-by: kbuild test robot Signed-off-by: Fabio Estevam Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/ir-hix5hd2.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 212da1fa60a822f5a7f20d52d11524dadd192a91 Merge: e578d9c 3de1b51 Author: David S. Miller Date: Wed May 13 15:11:52 2015 -0400 Merge branch 'sfc-next' Edward Cree says: ==================== sfc: Bowdlerise PTP MCDI errors When the NIC doesn't support PTP, probe-time MCDI commands fail in predictable ways. Instead of logging cryptic MCDI errors, just log that PTP isn't supported. v2: Hopefully stop Thunderbird mangling the patches. ==================== Signed-off-by: David S. Miller commit 3de1b5137cbe84688c9503b67d874854e44b6622 Author: Edward Cree Date: Tue May 12 13:05:09 2015 +0100 sfc: suppress some MCDI error messages in PTP Also, remove a needless netif_err() from efx_ptp_update_stats() - if the MCDI fails it'll print its own error message, we don't need another that adds no information. Signed-off-by: Edward Cree Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ptp.c | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) commit b1336389091b33cd147903480a878eeab1421090 Author: Edward Cree Date: Tue May 12 13:04:52 2015 +0100 sfc: nicer log message on PTP probe fail Signed-off-by: Edward Cree Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ptp.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit e578d9c02587d57bfa7b560767c698a668a468c6 Author: Florian Westphal Date: Mon May 11 19:50:41 2015 +0200 net: sched: use counter to break reclassify loops Seems all we want here is to avoid endless 'goto reclassify' loop. tc_classify_compat even resets this counter when something other than TC_ACT_RECLASSIFY is returned, so this skb-counter doesn't break hypothetical loops induced by something other than perpetual TC_ACT_RECLASSIFY return values. skb_act_clone is now identical to skb_clone, so just use that. Tested with following (bogus) filter: tc filter add dev eth0 parent ffff: \ protocol ip u32 match u32 0 0 police rate 10Kbit burst \ 64000 mtu 1500 action reclassify Acked-by: Daniel Borkmann Signed-off-by: Florian Westphal Acked-by: Alexei Starovoitov Acked-by: Jamal Hadi Salim Signed-off-by: David S. Miller Documentation/networking/tc-actions-env-rules.txt | 4 ---- include/net/sch_generic.h | 15 --------------- include/uapi/linux/pkt_cls.h | 2 +- net/sched/act_mirred.c | 2 +- net/sched/sch_api.c | 12 +++--------- 5 files changed, 5 insertions(+), 30 deletions(-) commit 0fd355c8bf8eaafdcb9617877297e74c43213126 Author: Arnd Bergmann Date: Fri Apr 10 17:22:08 2015 -0300 [media] R820T tuner needs CONFIG_BITREVERSE In a rarely hit randconfig case, the r820t tuner driver can get built when CONFIG_BITREVERSE is not selected by any other driver, resulting in this error: drivers/built-in.o: In function `r820t_read.constprop.3': :(.text+0xa0594): undefined reference to `byte_rev_table' For consistency, this adds the 'select BITREVERSE' that all other similar drivers have. Signed-off-by: Arnd Bergmann Signed-off-by: Mauro Carvalho Chehab drivers/media/tuners/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 2aae557e1d690b401cf9d5abac5015fac26f3f6c Author: Arnd Bergmann Date: Fri Apr 10 17:30:14 2015 -0300 [media] exynos4_is: exynos4-fimc requires i2c Without i2c, we can get a build error: drivers/media/platform/exynos4-is/fimc-is-i2c.c: In function 'fimc_is_i2c_probe': drivers/media/platform/exynos4-is/fimc-is-i2c.c:58:8: error: implicit declaration of function 'i2c_add_adapter' [-Werror=implicit-function-declaration] The dependency already exists for exynos-fimc-lite and s5p-fimc, but is missing for exynos4-fimc. Signed-off-by: Arnd Bergmann Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/exynos4-is/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 7967b3e0c40ff72fb2cf44d3b50e2cb388ef6c67 Author: Steven Rostedt (Red Hat) Date: Wed May 13 14:59:40 2015 -0400 tracing: Rename struct ftrace_subsystem_dir to trace_subsystem_dir The name "ftrace" really refers to the function hook infrastructure. It is not about the trace_events. The structure ftrace_subsystem_dir holds the information about trace event subsystems. It should not be named ftrace, rename it to trace_subsystem_dir. Signed-off-by: Steven Rostedt include/linux/trace_events.h | 4 ++-- kernel/trace/trace.h | 4 ++-- kernel/trace/trace_events.c | 26 +++++++++++++------------- kernel/trace/trace_events_filter.c | 10 +++++----- 4 files changed, 22 insertions(+), 22 deletions(-) commit 45b03d3e88c2068644e377cf08fc480208700b85 Author: Sergej Sawazki Date: Mon May 11 10:44:59 2015 +0200 clk: si5351: fix .recalc_rate for multisynth 6-7 MS6 and MS7 do not have the MSx_P3 field. Do the 'params.p3 == 0' check for MS0-M5 only. See [AN619, p. 6] for details. Referenced document: [AN619] Manually Generating an Si5351 Register Map, Rev. 0.4 Signed-off-by: Sergej Sawazki Signed-off-by: Michael Turquette drivers/clk/clk-si5351.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 2073b5e909b96f8fbc9b8a40b89c1fa316fb092c Author: Sergej Sawazki Date: Mon May 11 10:44:50 2015 +0200 clk: si5351: fix .round_rate for multisynth 6-7 The divider calculation for multisynth 6 and 7 differs from the calculation for multisynth 0-5. For MS6 and MS7, set MSx_P1 directly, MSx_P1=divide value [AN619, p. 6]. Referenced document: [AN619] Manually Generating an Si5351 Register Map, Rev. 0.4 Signed-off-by: Sergej Sawazki Signed-off-by: Michael Turquette drivers/clk/clk-si5351.c | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) commit 1645b55b50f032888fef7855e80a23d78dfa067b Author: H Hartley Sweeten Date: Mon May 11 10:22:45 2015 -0700 staging: comedi: ni_mio_common: fix build warning The kbuild test robot detected a build warning causes by commit f878071a. >> drivers/staging/comedi/drivers/ni_mio_common.c:2274:34: warning: right-hand operand of comma expression has no effect [-Wunused-value] That line should have been terminated by ';' and the following line removed. Not sure why it even builds on my test system... Reported-by: kbuild test robot Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 16dc3bac722252a10e396546f44135ae1b6a7ff3 Author: Rafał Miłecki Date: Tue Mar 31 17:29:18 2015 +0200 ARM: BCM5301X: Add DT for Asus RT-AC56U Signed-off-by: Rafał Miłecki Signed-off-by: Florian Fainelli arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dts | 96 +++++++++++++++++++++++++++++ 2 files changed, 97 insertions(+) commit b5f350c790ae6aaf3dda5a825d7e3fdeed731164 Author: Rafał Miłecki Date: Sat Mar 28 15:01:38 2015 +0100 ARM: BCM5301X: Add DT for Asus RT-AC68U Signed-off-by: Rafał Miłecki Signed-off-by: Florian Fainelli arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/bcm4708-asus-rt-ac68u.dts | 83 +++++++++++++++++++++++++++++ 2 files changed, 84 insertions(+) commit b04096ff33a977c01c8780ca3ee129dbd641bad4 Merge: 7f460d3 110bc76 Author: David S. Miller Date: Wed May 13 14:31:43 2015 -0400 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Four minor merge conflicts: 1) qca_spi.c renamed the local variable used for the SPI device from spi_device to spi, meanwhile the spi_set_drvdata() call got moved further up in the probe function. 2) Two changes were both adding new members to codel params structure, and thus we had overlapping changes to the initializer function. 3) 'net' was making a fix to sk_release_kernel() which is completely removed in 'net-next'. 4) In net_namespace.c, the rtnl_net_fill() call for GET operations had the command value fixed, meanwhile 'net-next' adjusted the argument signature a bit. This also matches example merge resolutions posted by Stephen Rothwell over the past two days. Signed-off-by: David S. Miller commit 7f460d30c8e130382de1443fdbc4d040a9e062ec Author: Justin Cormack Date: Wed May 13 19:19:02 2015 +0100 fix missing copy_from_user in macvtap Fix missing copy_from_user in macvtap SIOCSIFHWADDR ioctl. Signed-off-by: Justin Cormack Signed-off-by: David S. Miller drivers/net/macvtap.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 42275bd8fcb351f951781d8882f359d25976824b Author: Scott Feldman Date: Wed May 13 11:16:50 2015 -0700 switchdev: don't use anonymous union on switchdev attr/obj structs Older gcc versions (e.g. gcc version 4.4.6) don't like anonymous unions which was causing build issues on the newly added switchdev attr/obj structs. Fix this by using named union on structs. Signed-off-by: Scott Feldman Reported-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/rocker/rocker.c | 18 ++++++++--------- include/net/switchdev.h | 4 ++-- net/bridge/br_stp.c | 2 +- net/core/net-sysfs.c | 4 ++-- net/core/rtnetlink.c | 3 ++- net/dsa/slave.c | 6 +++--- net/switchdev/switchdev.c | 39 ++++++++++++++++++------------------ 7 files changed, 39 insertions(+), 37 deletions(-) commit 687fcc4aee4567df14e31e82d6993418b826f408 Author: Steven Rostedt (Red Hat) Date: Wed May 13 14:20:14 2015 -0400 tracing: Rename ftrace_event_name() to trace_event_name() The name "ftrace" really refers to the function hook infrastructure. It is not about the trace_events. ftrace_event_name() returns the name of an event tracepoint, has nothing to do with function tracing. Rename it to trace_event_name(). Signed-off-by: Steven Rostedt include/linux/trace_events.h | 2 +- kernel/trace/trace_events.c | 26 +++++++++++++------------- kernel/trace/trace_events_trigger.c | 2 +- kernel/trace/trace_kprobe.c | 16 ++++++++-------- kernel/trace/trace_output.c | 2 +- kernel/trace/trace_uprobe.c | 14 +++++++------- 6 files changed, 31 insertions(+), 31 deletions(-) commit 8ab1428864d39e94b4d7842fe1e81b4f08bffd66 Author: Florian Fainelli Date: Thu Apr 23 15:57:21 2015 -0700 ARM: dts: BCM63xx: Add timer and syscon-reboot nodes Add a "brcm,bcm6328-timer" and "syscon-reboot" nodes to allow the generic syscon-reboot driver to reset a BCM63138 SoC. Signed-off-by: Florian Fainelli arch/arm/boot/dts/bcm63138.dtsi | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit ac61cf8a01924b0794d0eda80688714368e27d0b Author: Florian Fainelli Date: Thu Apr 23 15:55:00 2015 -0700 dt-bindings: Add documentation for the BCM63138 timer and syscon-reboot A timer node and a syscon-reboot node are required for software reboot to work on BCM63138, document these two nodes in the platform binding. Signed-off-by: Florian Fainelli .../devicetree/bindings/arm/bcm/brcm,bcm63138.txt | 34 ++++++++++++++++++++++ 1 file changed, 34 insertions(+) commit 609a74045238c303bbe9396775eacf5bac1f51cc Author: Steven Rostedt (Red Hat) Date: Wed May 13 13:44:36 2015 -0400 tracing: Rename FTRACE_MAX_EVENT to TRACE_EVENT_TYPE_MAX The name "ftrace" really refers to the function hook infrastructure. It is not about the trace_events. Rename the max trace_event type size to something more descriptive and appropriate. Signed-off-by: Steven Rostedt include/linux/trace_events.h | 2 +- kernel/trace/trace_output.c | 4 ++-- tools/perf/util/scripting-engines/trace-event-perl.c | 4 ++-- tools/perf/util/scripting-engines/trace-event-python.c | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) commit 892c505aac2bdded3c8ec2ec27abc6d74fd210f5 Author: Steven Rostedt (Red Hat) Date: Tue May 5 14:18:11 2015 -0400 tracing: Rename ftrace_output functions to trace_output The name "ftrace" really refers to the function hook infrastructure. It is not about the trace_events. The ftrace_output_*() and ftrace_raw_output_*() functions represent the trace_event code. Rename them to just trace_output or trace_raw_output. Signed-off-by: Steven Rostedt include/linux/trace_events.h | 6 +++--- include/trace/perf.h | 2 +- include/trace/trace_events.h | 16 ++++++++-------- kernel/trace/trace_output.c | 16 ++++++++-------- 4 files changed, 20 insertions(+), 20 deletions(-) commit 3f795dcfc7364cd811c3f6f03d115fcefbbdc1ca Author: Steven Rostedt (Red Hat) Date: Tue May 5 13:18:46 2015 -0400 tracing: Rename ftrace_event_buffer to trace_event_buffer. The name "ftrace" really refers to the function hook infrastructure. It is not about the trace_events. The ftrace_event_buffer functions and data structures are for trace_events and not for function hooks. Rename them to trace_event_buffer*. Signed-off-by: Steven Rostedt include/linux/trace_events.h | 6 +++--- include/trace/perf.h | 6 +++--- kernel/trace/trace_events.c | 14 +++++++------- 3 files changed, 13 insertions(+), 13 deletions(-) commit 2425bcb9240f8c97d793cb31c8e8d8d0a843fa29 Author: Steven Rostedt (Red Hat) Date: Tue May 5 11:45:27 2015 -0400 tracing: Rename ftrace_event_{call,class} to trace_event_{call,class} The name "ftrace" really refers to the function hook infrastructure. It is not about the trace_events. The structures ftrace_event_call and ftrace_event_class have nothing to do with the function hooks, and are really trace_event structures. Rename ftrace_event_* to trace_event_*. Signed-off-by: Steven Rostedt include/linux/module.h | 2 +- include/linux/perf_event.h | 2 +- include/linux/syscalls.h | 12 +++--- include/linux/trace_events.h | 38 ++++++++--------- include/trace/perf.h | 22 +++++----- include/trace/syscall.h | 4 +- include/trace/trace_events.h | 6 +-- kernel/trace/trace.c | 12 +++--- kernel/trace/trace.h | 10 ++--- kernel/trace/trace_branch.c | 2 +- kernel/trace/trace_event_perf.c | 20 ++++----- kernel/trace/trace_events.c | 80 ++++++++++++++++++------------------ kernel/trace/trace_events_filter.c | 34 +++++++-------- kernel/trace/trace_export.c | 10 ++--- kernel/trace/trace_functions_graph.c | 4 +- kernel/trace/trace_kprobe.c | 18 ++++---- kernel/trace/trace_mmiotrace.c | 4 +- kernel/trace/trace_output.c | 4 +- kernel/trace/trace_probe.h | 4 +- kernel/trace/trace_sched_wakeup.c | 4 +- kernel/trace/trace_syscalls.c | 40 +++++++++--------- kernel/trace/trace_uprobe.c | 12 +++--- 22 files changed, 172 insertions(+), 172 deletions(-) commit 53e755c21afc230dd93fddda5a2db9609e6f07d0 Author: Kast Bernd Date: Wed May 13 16:24:16 2015 +0200 asus-wmi: add fan control This patch is partially based on Felipe Contrera's earlier patch, that was discussed here: https://lkml.org/lkml/2013/10/8/800 Some problems of that patch are solved, now: 1) The main obstacle for the earlier patch seemed to be the use of virt_to_phys, which is accepted, now 2) random memory corruption occurred on my notebook, thus DMA-able memory is allocated now, which solves this problem 3) hwmon interface is used instead of the thermal interface, as a hwmon device is already set up by this driver and seemed more appropriate than the thermal interface 4) Calling the ACPI-functions was modularized thus it's possible to call some multifunctions easily, now (by using asus_wmi_evaluate_method_agfn). Unfortunately the WMI doesn't support controlling both fans on a dual-fan notebook because of an restriction in the acpi-method "SFNS", that is callable through the wmi. If "SFNV" would be called directly even dual fan configurations could be controlled, but not by using wmi. Speed readings only work on auto-mode, thus "-1" will be reported in manual mode. Additionally the speed readings are reported as hundreds of RPM thus they are not too precise. This patch is tested only on one notebook (N551JK) but a similar module, that contained some code to try to control the second fan also, was reported to work on an UX32VD, at least for the first fan. As Felipe already mentioned the low-level functions are described here: http://forum.notebookreview.com/threads/fan-control-on-asus-prime-ux31-ux31a-ux32a-ux32vd.705656/ Signed-off-by: Kast Bernd Acked-by: Corentin Chary Cc: Corentin Chary Cc: Darren Hart Cc: Matthew Garrett Cc: Rafael J. Wysocki Signed-off-by: Darren Hart drivers/platform/x86/asus-wmi.c | 344 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 323 insertions(+), 21 deletions(-) commit 7f1d2f8210195c8c309d424a77dbf06a6d2186f4 Author: Steven Rostedt (Red Hat) Date: Tue May 5 10:09:53 2015 -0400 tracing: Rename ftrace_event_file to trace_event_file The name "ftrace" really refers to the function hook infrastructure. It is not about the trace_events. The structure ftrace_event_file is really about trace events and not "ftrace". Rename it to trace_event_file. Signed-off-by: Steven Rostedt include/linux/trace_events.h | 24 +++++----- include/trace/perf.h | 24 +++++----- kernel/trace/trace.c | 8 ++-- kernel/trace/trace.h | 24 +++++----- kernel/trace/trace_events.c | 92 ++++++++++++++++++------------------- kernel/trace/trace_events_filter.c | 30 ++++++------ kernel/trace/trace_events_trigger.c | 52 ++++++++++----------- kernel/trace/trace_kprobe.c | 32 ++++++------- kernel/trace/trace_probe.h | 4 +- kernel/trace/trace_syscalls.c | 32 ++++++------- kernel/trace/trace_uprobe.c | 16 +++---- 11 files changed, 169 insertions(+), 169 deletions(-) commit 9023c930902fbbcf0cebf6110828700f792989a4 Author: Steven Rostedt (Red Hat) Date: Tue May 5 09:39:12 2015 -0400 tracing: Rename (un)register_ftrace_event() to (un)register_trace_event() The name "ftrace" really refers to the function hook infrastructure. It is not about the trace_events. The functions (un)register_ftrace_event() is really about trace_events, and the name should be register_trace_event() instead. Also renamed ftrace_event_reg() to trace_event_reg() for the same reason. Signed-off-by: Steven Rostedt include/linux/trace_events.h | 6 +++--- include/trace/perf.h | 4 ++-- kernel/trace/blktrace.c | 4 ++-- kernel/trace/trace_branch.c | 2 +- kernel/trace/trace_events.c | 10 +++++----- kernel/trace/trace_functions_graph.c | 4 ++-- kernel/trace/trace_kprobe.c | 4 ++-- kernel/trace/trace_output.c | 18 +++++++++--------- kernel/trace/trace_output.h | 2 +- kernel/trace/trace_uprobe.c | 4 ++-- 10 files changed, 29 insertions(+), 29 deletions(-) commit 645df987f7c1740bb1ba783ab907001720a20cf7 Author: Steven Rostedt (Red Hat) Date: Mon May 4 18:12:44 2015 -0400 tracing: Rename ftrace_print_*() functions ta trace_print_*() The name "ftrace" really refers to the function hook infrastructure. It is not about the trace_events. The functions ftrace_print_*() are not part of the function infrastructure, and the names can be confusing. Rename them to be trace_print_*(). Signed-off-by: Steven Rostedt include/linux/trace_events.h | 30 +++++++++++++++--------------- include/trace/trace_events.h | 12 ++++++------ kernel/trace/trace_output.c | 34 +++++++++++++++++----------------- 3 files changed, 38 insertions(+), 38 deletions(-) commit af658dca221207174fc0a7bcdcd4cff7c589fdd8 Author: Steven Rostedt (Red Hat) Date: Wed Apr 29 14:36:05 2015 -0400 tracing: Rename ftrace_event.h to trace_events.h The term "ftrace" is really the infrastructure of the function hooks, and not the trace events. Rename ftrace_event.h to trace_events.h to represent the trace_event infrastructure and decouple the term ftrace from it. Signed-off-by: Steven Rostedt arch/x86/kvm/mmutrace.h | 2 +- arch/x86/kvm/svm.c | 2 +- arch/x86/kvm/vmx.c | 2 +- include/linux/ftrace_event.h | 616 ------------------------------------------- include/linux/trace_events.h | 616 +++++++++++++++++++++++++++++++++++++++++++ include/trace/events/power.h | 2 +- include/trace/syscall.h | 2 +- include/trace/trace_events.h | 2 +- kernel/events/core.c | 2 +- kernel/module.c | 2 +- kernel/rcu/tiny.c | 2 +- kernel/rcu/tree.c | 2 +- kernel/trace/ring_buffer.c | 2 +- kernel/trace/trace.h | 4 +- mm/debug.c | 2 +- 15 files changed, 630 insertions(+), 630 deletions(-) commit ee53bbd172571c944bc2d01b4846fc7c49ebd353 Author: Steven Rostedt (Red Hat) Date: Wed Apr 29 13:11:00 2015 -0400 tracing: Move the perf code out of trace_event.h The trace_event.h file is for the generic trace event code. Move the perf related code into its own trace header file perf.h Signed-off-by: Steven Rostedt include/trace/define_trace.h | 1 + include/trace/perf.h | 350 ++++++++++++++++++++++++++++++++++++++++++ include/trace/trace_events.h | 351 ------------------------------------------- 3 files changed, 351 insertions(+), 351 deletions(-) commit 2167ae727215714d25fe44945cdbe6157f7ac481 Author: Steven Rostedt (Red Hat) Date: Wed Apr 29 09:57:36 2015 -0400 tracing: Rename trace/ftrace.h to trace/trace_events.h The name "ftrace" really refers to the function hook infrastructure. It is not about the TRACE_EVENT() macros. The file trace/ftrace.h was originally written to be mostly focused toward the "ftrace" code (that in kernel/trace/) but ended up being generic and used by perf and others. Rename the file to be less confusing about what infrastructure it belongs to. Signed-off-by: Steven Rostedt include/trace/define_trace.h | 2 +- include/trace/ftrace.h | 859 ------------------------------------------- include/trace/trace_events.h | 859 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 860 insertions(+), 860 deletions(-) commit f267caab44451baa70d25fa3191a68bb79ad1b08 Author: Steven Rostedt (Red Hat) Date: Wed May 13 14:03:51 2015 -0400 tracing: Remove unused prototype ftrace_event_define_field() ftrace_event_define_field() has a prototype defined but never used. Remove it. Signed-off-by: Steven Rostedt include/linux/ftrace_event.h | 8 -------- 1 file changed, 8 deletions(-) commit 592e2ddfdee7cdbc3dca64db7fef5d48ec93654a Author: Brian Norris Date: Tue May 12 16:28:23 2015 -0700 ARM: dts: brcmstb: add nodes for SATA controller and PHY Signed-off-by: Brian Norris Signed-off-by: Florian Fainelli arch/arm/boot/dts/bcm7445.dtsi | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) commit 874d5f1be80ca498c224f3830aa6ed2f5c762db6 Author: Ray Jui Date: Tue May 12 17:53:43 2015 -0700 ARM: dts: cygnus: Enable NAND support for Cygnus Enable NAND support for Broadcom Cygnus SoC Signed-off-by: Ray Jui Signed-off-by: Brian Norris Signed-off-by: Florian Fainelli arch/arm/boot/dts/bcm-cygnus.dtsi | 12 ++++++++++++ arch/arm/boot/dts/bcm958300k.dts | 16 ++++++++++++++++ 2 files changed, 28 insertions(+) commit b5762cacc4119ad0c1cd3160f0f3e10a052ad06b Author: Brian Norris Date: Tue May 12 17:53:42 2015 -0700 ARM: bcm63138: add NAND DT support Signed-off-by: Brian Norris Reviewed-by: Florian Fainelli Tested-by: Florian Fainelli Signed-off-by: Florian Fainelli arch/arm/boot/dts/bcm63138.dtsi | 11 +++++++++++ arch/arm/boot/dts/bcm963138dvt.dts | 12 ++++++++++++ 2 files changed, 23 insertions(+) commit 3420ab38c45cd593beda39b47863c96978115a97 Author: Brian Norris Date: Tue May 12 17:53:37 2015 -0700 ARM: bcm7445: add NAND to DTS Signed-off-by: Brian Norris Reviewed-by: Florian Fainelli Signed-off-by: Florian Fainelli arch/arm/boot/dts/bcm7445-bcm97445svmb.dts | 23 +++++++++++++++++++++++ arch/arm/boot/dts/bcm7445.dtsi | 22 ++++++++++++++++++++++ 2 files changed, 45 insertions(+) commit 5009a289ccb58b35425a9bc06e4f071e5ff27038 Author: Brian Norris Date: Wed Mar 18 18:09:05 2015 -0700 MAINTAINERS: add brcmstb regex This could probably consolidate a few file listings. And it satisfies the spirit of the highly annoying [1] checkpatch warning for every new file, though it sadly won't quash it. [1] https://lkml.org/lkml/2014/12/17/24 Signed-off-by: Brian Norris Signed-off-by: Florian Fainelli MAINTAINERS | 1 + 1 file changed, 1 insertion(+) commit f2c714a0a230c9b4ffdf45c5d203b8cd35126353 Author: Jonathan Cameron Date: Sat May 2 11:35:02 2015 +0100 iio:temp:mlx90614 trivial drop of unnecessary ret return from write_raw. This is mostly part of an effort to clean out our current warnings and make the autobuilder build reports more useful. Still a worthwhile if trivial cleanup! Signed-off-by: Jonathan Cameron Reported-by: kbuild test robot Cc: Vianney le Clément de Saint-Marcq Cc: Peter Meerwald drivers/iio/temperature/mlx90614.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 5dc11e810676ec4a5acb4423ccd33314bf74f4e5 Author: Vignesh R Date: Tue Mar 31 16:42:37 2015 +0530 iio: adc: ti_am335x_adc: make sample delay, open delay, averaging DT parameters Add optional DT properties to set open delay, sample delay and number of averages per sample for each adc step. Open delay, sample delay and averaging are some of the parameters that affect the sampling rate and accuracy of the sample. Making these parameters configurable via DT will help in balancing speed vs accuracy. Signed-off-by: Vignesh R Signed-off-by: Jonathan Cameron .../bindings/input/touchscreen/ti-tsc-adc.txt | 24 ++++++++++ drivers/iio/adc/ti_am335x_adc.c | 54 +++++++++++++++++++--- 2 files changed, 72 insertions(+), 6 deletions(-) commit 6dd063353f9317955a67bc23249eac43128f7ff7 Author: Wei Yongjun Date: Thu Apr 16 13:38:00 2015 -0700 Input: soc_button_array - remove duplicated include Remove duplicated include for acpi.h. Signed-off-by: Wei Yongjun Signed-off-by: Dmitry Torokhov drivers/input/misc/soc_button_array.c | 1 - 1 file changed, 1 deletion(-) commit 755bab5b804d4873001c608bda5f18ab6a2d3372 Author: Wei Yongjun Date: Thu Apr 16 13:36:59 2015 -0700 Input: zforce - remove duplicated include Remove duplicated include for delay.h. Signed-off-by: Wei Yongjun Reviewed-by: Heiko Stuebner Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/zforce_ts.c | 1 - 1 file changed, 1 deletion(-) commit 691917f20cae813d242f7123a4dc97e7d48e6ff1 Author: Rafał Miłecki Date: Wed May 13 09:10:53 2015 +0200 ARM: BCM5301X: Add DT for SmartRG SR400ac Signed-off-by: Rafał Miłecki Signed-off-by: Florian Fainelli arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts | 119 ++++++++++++++++++++++++++ 2 files changed, 120 insertions(+) commit 35eecd10ee57b9d4f31e12598296b235ed2b34ae Author: Felix Fietkau Date: Wed May 13 09:10:52 2015 +0200 ARM: BCM5301X: Add DT for Buffalo WXR-1900DHP Signed-off-by: Felix Fietkau Signed-off-by: Rafał Miłecki Signed-off-by: Florian Fainelli arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts | 127 ++++++++++++++++++++++ 2 files changed, 128 insertions(+) commit 35ad0e50bd6683c6699586e3bd5045f0695586d9 Author: Felix Fietkau Date: Wed May 13 09:10:51 2015 +0200 ARM: BCM5301X: Add USB LED for Buffalo WZR-1750DHP Signed-off-by: Felix Fietkau Signed-off-by: Florian Fainelli arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts | 6 ++++++ 1 file changed, 6 insertions(+) commit 6139ebc65807e6d3bf60128cc42e85bcb7f578ba Author: Mauro Carvalho Chehab Date: Wed May 13 14:09:42 2015 -0300 [media] saa7134: fix CodingStyle issues on the lines touched by pr_foo refactor Several lines touched by the pr_foo refactoring patches are not following the Linux Coding style. While we won't be fixing the style globally at the driver, we should, at least, fix on the lines we touched. Basically, this patch add (or remove) whitespaces and blank lines where needed. No functional changes. Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/saa7134/saa7134-alsa.c | 9 ++++++--- drivers/media/pci/saa7134/saa7134-cards.c | 10 ++++++---- drivers/media/pci/saa7134/saa7134-core.c | 13 +++++++------ drivers/media/pci/saa7134/saa7134-dvb.c | 27 ++++++++++++++++++--------- drivers/media/pci/saa7134/saa7134-empress.c | 4 ++-- drivers/media/pci/saa7134/saa7134-i2c.c | 5 +++-- drivers/media/pci/saa7134/saa7134-ts.c | 6 +++--- drivers/media/pci/saa7134/saa7134-tvaudio.c | 7 ++++--- drivers/media/pci/saa7134/saa7134-video.c | 11 ++++++----- 9 files changed, 55 insertions(+), 37 deletions(-) commit 45f38cb3b80311ade3c87000f7d7a8f6ebd60a43 Author: Mauro Carvalho Chehab Date: Wed May 13 14:09:25 2015 -0300 [media] saa7134: avoid complex macro warnings The debug macros are not properly defined, as they generate warnings like: ERROR: Macros with complex values should be enclosed in parentheses +#define core_dbg(fmt, arg...) if (core_debug) \ + printk(KERN_DEBUG pr_fmt("core: " fmt), ## arg) Use do { } while (0) for those macros. Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/saa7134/saa7134-core.c | 14 +++++++++----- drivers/media/pci/saa7134/saa7134-i2c.c | 14 +++++++++----- drivers/media/pci/saa7134/saa7134-input.c | 12 ++++++++---- drivers/media/pci/saa7134/saa7134-ts.c | 6 ++++-- drivers/media/pci/saa7134/saa7134-tvaudio.c | 6 ++++-- drivers/media/pci/saa7134/saa7134-vbi.c | 6 ++++-- drivers/media/pci/saa7134/saa7134-video.c | 6 ++++-- 7 files changed, 42 insertions(+), 22 deletions(-) commit 1c14905ef951fb968c8da90e4e64be02c309a2ae Author: Heikki Krogerus Date: Wed May 13 15:26:53 2015 +0300 phy: add driver for TI TUSB1210 ULPI PHY TUSB1210 ULPI PHY has vendor specific register for eye diagram tuning. On some platforms the system firmware has set optimized value to it. In order to not loose the optimized value, the driver stores it during probe and restores it every time the PHY is powered back on. Signed-off-by: Heikki Krogerus Acked-by: David Cohen Acked-by: Kishon Vijay Abraham I Signed-off-by: Felipe Balbi drivers/phy/Kconfig | 7 +++ drivers/phy/Makefile | 1 + drivers/phy/phy-tusb1210.c | 153 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 161 insertions(+) commit 723487a6ff50bb88c628a859aeac3fe721f0d1fa Author: Heikki Krogerus Date: Wed May 13 15:26:52 2015 +0300 phy: helpers for USB ULPI PHY registering ULPI PHYs need to be bound to their controllers with a lookup. This adds helpers that the ULPI drivers can use to do both, the registration of the PHY and the lookup, at the same time. Signed-off-by: Heikki Krogerus Acked-by: David Cohen Acked-by: Kishon Vijay Abraham I Signed-off-by: Felipe Balbi drivers/phy/ulpi_phy.h | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) commit 88bc9d194ff69875a4d3c958d969ed2a053c8308 Author: Heikki Krogerus Date: Wed May 13 15:26:51 2015 +0300 usb: dwc3: add ULPI interface support Registers DWC3's ULPI interface with the ULPI bus when it's available. Signed-off-by: Heikki Krogerus Acked-by: David Cohen Signed-off-by: Felipe Balbi drivers/usb/dwc3/Kconfig | 7 ++++ drivers/usb/dwc3/Makefile | 4 +++ drivers/usb/dwc3/core.c | 34 ++++++++++++++++-- drivers/usb/dwc3/core.h | 14 ++++++++ drivers/usb/dwc3/ulpi.c | 91 +++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 147 insertions(+), 3 deletions(-) commit a89d977cc04c77d9aa45d426dbf8de9dd1326c77 Author: Heikki Krogerus Date: Wed May 13 15:26:50 2015 +0300 usb: dwc3: pci: add quirk for Baytrails On some BYT platforms the USB2 PHY needs to be put into operational mode by the controller driver with GPIOs controlling the PHYs reset and cs signals. Signed-off-by: Heikki Krogerus Signed-off-by: Felipe Balbi drivers/usb/dwc3/dwc3-pci.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) commit 3e10a2ce98d1a57992a44ed40325af60ab7b0f5d Author: Heikki Krogerus Date: Wed May 13 15:26:49 2015 +0300 usb: dwc3: add hsphy_interface property Platforms that have configured DWC_USB3_HSPHY_INTERFACE with value 3, i.e. UTMI+ and ULPI, need to inform the driver of the actual HSPHY interface type with the property. "utmi" if the interface is UTMI+ or "ulpi" if the interface is ULPI. Signed-off-by: Heikki Krogerus Acked-by: David Cohen Signed-off-by: Felipe Balbi Documentation/devicetree/bindings/usb/dwc3.txt | 2 ++ drivers/usb/dwc3/core.c | 20 ++++++++++++++++++++ drivers/usb/dwc3/core.h | 3 +++ drivers/usb/dwc3/platform_data.h | 2 ++ 4 files changed, 27 insertions(+) commit 45bb7de213d86d491840e9c3ae139475ab3fa493 Author: Heikki Krogerus Date: Wed May 13 15:26:48 2015 +0300 usb: dwc3: setup phys earlier This allows dwc3_phy_setup() to be more useful later. There is nothing preventing the PHY configuration registers from being programmed early. They do not loose their context in soft reset. There are however other PHY related operations that should be executed before the driver request handles to the PHYs, such as registering DWC3's ULPI interface, which can now be done in dwc3_phy_setup(). Also, if there ever was need for the two 100ms delays in dwc3_phy_setup() there isn't anymore. The PHYs are now reset after the PHY interfaces are setup. Signed-off-by: Heikki Krogerus Acked-by: David Cohen Signed-off-by: Felipe Balbi drivers/usb/dwc3/core.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit c5cc74e8c12be67ef7f09f77c2b9df6faf7904f0 Author: Heikki Krogerus Date: Wed May 13 15:26:47 2015 +0300 usb: dwc3: soft reset to it's own function So it can be called from other places later. Signed-off-by: Heikki Krogerus Acked-by: David Cohen Signed-off-by: Felipe Balbi drivers/usb/dwc3/core.c | 46 ++++++++++++++++++++++++++++++---------------- 1 file changed, 30 insertions(+), 16 deletions(-) commit 2917e7181589f859ac1e00ba1b3decbbfc2549bb Author: Heikki Krogerus Date: Wed May 13 15:26:46 2015 +0300 usb: dwc3: cache hwparams earlier So they are available when ULPI interface support is added. Signed-off-by: Heikki Krogerus Acked-by: David Cohen Signed-off-by: Felipe Balbi drivers/usb/dwc3/core.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 6c89cce0476f309689549c74717445e624e0de04 Author: Heikki Krogerus Date: Wed May 13 15:26:45 2015 +0300 usb: dwc3: store driver data earlier We need to store it before phys are handled, so we can later use it in ULPI interface support code. Signed-off-by: Heikki Krogerus Acked-by: David Cohen Signed-off-by: Felipe Balbi drivers/usb/dwc3/core.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit f699b94789a64bec66e45c2dc39f06ae1208d852 Author: Heikki Krogerus Date: Wed May 13 15:26:44 2015 +0300 usb: dwc3: ULPI or UTMI+ select Make selection between ULPI and UTMI+ interfaces possible by providing definition for the bit in Global USB2 PHY Configuration Register that controls it. Signed-off-by: Heikki Krogerus Acked-by: David Cohen Signed-off-by: Felipe Balbi drivers/usb/dwc3/core.h | 1 + 1 file changed, 1 insertion(+) commit b5699eeee68f7667f200b05f57bcf8124ddba9fc Author: Heikki Krogerus Date: Wed May 13 15:26:43 2015 +0300 usb: dwc3: USB2 PHY register access bits Definitions for Global USB2 PHY Vendor Control Register bits. We will need them to access ULPI PHY registers later. Signed-off-by: Heikki Krogerus Acked-by: David Cohen Signed-off-by: Felipe Balbi drivers/usb/dwc3/core.h | 8 ++++++++ 1 file changed, 8 insertions(+) commit 289fcff4bcdb1dcc0ce8788b7ea0f58a9e4a495f Author: Heikki Krogerus Date: Wed May 13 15:26:42 2015 +0300 usb: add bus type for USB ULPI UTMI+ Low Pin Interface (ULPI) is a commonly used PHY interface for USB 2.0. The ULPI specification describes a standard set of registers which the vendors can extend for their specific needs. ULPI PHYs provide often functions such as charger detection and ADP sensing and probing. There are two major issues that the bus type is meant to tackle: Firstly, ULPI registers are accessed from the controller. The bus provides convenient method for the controller drivers to share that access with the actual PHY drivers. Secondly, there are already platforms that assume ULPI PHYs are runtime detected, such as many Intel Baytrail based platforms. They do not provide any kind of hardware description for the ULPI PHYs like separate ACPI device object that could be used to enumerate a device from. Signed-off-by: Heikki Krogerus Acked-by: David Cohen Signed-off-by: Felipe Balbi MAINTAINERS | 7 ++ drivers/usb/common/Makefile | 1 + drivers/usb/common/ulpi.c | 255 ++++++++++++++++++++++++++++++++++++++ drivers/usb/core/Kconfig | 20 +++ include/linux/mod_devicetable.h | 6 + include/linux/ulpi/driver.h | 60 +++++++++ include/linux/ulpi/interface.h | 23 ++++ include/linux/ulpi/regs.h | 130 +++++++++++++++++++ include/linux/usb/ulpi.h | 134 +------------------- scripts/mod/devicetable-offsets.c | 4 + scripts/mod/file2alias.c | 13 ++ 11 files changed, 521 insertions(+), 132 deletions(-) commit 3521a399dae8d66fc784cef70a78e65ce73e364f Author: Felipe Balbi Date: Fri May 8 13:30:12 2015 -0500 usb: dwc2: hcd: fix build warning commit db62b9a804b4 (usb: dwc2: host: don't use dma_alloc_coherent with irqs disabled) introduced a build warning by using NULL as an integer. Fix that by just using 0 instead of NULL. Signed-off-by: Felipe Balbi drivers/usb/dwc2/hcd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9f98802911cf784433546791838102a9d3c97d92 Author: Florian Fainelli Date: Fri Apr 17 11:27:51 2015 -0700 ARM: dts: BCM63xx: Add SMP nodes and required properties Update bcm63138.dtsi with the following: - enable-method for both CPU nodes - brcm,bcm63138-bootlut node - resets properties to point to the correct PMB controller to release the secondary CPU from reset Signed-off-by: Florian Fainelli arch/arm/boot/dts/bcm63138.dtsi | 8 ++++++++ 1 file changed, 8 insertions(+) commit a4cdbb96edd975a88688c2464dbb0de8dfe25e3d Author: Florian Fainelli Date: Fri Apr 17 11:21:39 2015 -0700 Documentation: DT: Document SMP DT nodes and properties for BCM63138 Add binding documentation for the additional nodes and properties required to get the secondary CPU online on the BCM63138 SoC. Signed-off-by: Florian Fainelli .../devicetree/bindings/arm/bcm/brcm,bcm63138.txt | 42 ++++++++++++++++++++++ 1 file changed, 42 insertions(+) commit 39afb9809ca2da30f266369c5620f5d6230a3558 Author: Florian Fainelli Date: Thu Apr 16 11:37:51 2015 -0700 ARM: dts: BCM63xx: Add PMB busses nodes Add the two BCM63138 PMB busses nodes found on this System-on-a-Chip as described in their corresponding binding document. Signed-off-by: Florian Fainelli arch/arm/boot/dts/bcm63138.dtsi | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit b3e913bed6ac8ea0cd01233252699fb43de754a5 Author: Florian Fainelli Date: Fri Apr 17 10:48:46 2015 -0700 Documentation: DT: Add Broadcom BCM63138 PMB binding Add a Device Tree binding for the Broadcom BCM63138 Processor Monitor Bus, which is an internal bus used to access different power and reset signals within a BCM63138 System-on-a-Chip. Signed-off-by: Florian Fainelli .../devicetree/bindings/reset/brcm,bcm63138-pmb.txt | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) commit 1f7bd29bc0559aedae857639ca391c815e47f1d9 Merge: 9449c3c 1f5dc44 Author: David S. Miller Date: Wed May 13 12:26:28 2015 -0400 Merge branch 'switchdev-cleanups' Scott Feldman says: ==================== switchdev: more (minor) cleanups Fix some sparse warnings and include some documentation review comments that didn't get picked up in the switchdev Spring Cleanup series. ==================== Signed-off-by: David S. Miller commit 1f5dc44c881281c6573b73366bcfde575074d1b0 Author: Scott Feldman Date: Tue May 12 23:03:54 2015 -0700 switchdev: apply review comments on documentation There were a few review comments on the switchdev.txt documentation that didn't get included with the Spring Cleanup series, so include them now. Signed-off-by: Scott Feldman Signed-off-by: David S. Miller Documentation/networking/switchdev.txt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 5eb764edee52e837638b8d55ceace2c68e248cd2 Author: Scott Feldman Date: Tue May 12 23:03:53 2015 -0700 switchdev: align comment with other comments in block Signed-off-by: Scott Feldman Signed-off-by: David S. Miller include/net/switchdev.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7a7ee5312d133a01cb23626c133ae30692ecb748 Author: Scott Feldman Date: Tue May 12 23:03:52 2015 -0700 switchdev: sparse warning: pass ipv4 fib dst as network-byte order And let driver convert it to host-byte order as needed. Signed-off-by: Scott Feldman Signed-off-by: David S. Miller drivers/net/ethernet/rocker/rocker.c | 7 ++++--- net/switchdev/switchdev.c | 4 ++-- 2 files changed, 6 insertions(+), 5 deletions(-) commit 22c1f67ea5cd3296ee82df7397fb5e5f81eccb98 Author: Scott Feldman Date: Tue May 12 23:03:51 2015 -0700 switchdev: sparse warning: make __switchdev_port_obj_add static Signed-off-by: Scott Feldman Signed-off-by: David S. Miller net/switchdev/switchdev.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit a9756e6f63518c6da319904ded5050ec1780b800 Author: Jozsef Kadlecsik Date: Sat May 2 19:28:23 2015 +0200 netfilter: ipset: Use better include files in xt_set.c Signed-off-by: Jozsef Kadlecsik Signed-off-by: Pablo Neira Ayuso net/netfilter/xt_set.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 1823fb79e5b6e3950fd24d2990b3b5c45283f15c Author: Sergey Popovich Date: Sat May 2 19:28:19 2015 +0200 netfilter: ipset: Improve preprocessor macros checks Check if mandatory MTYPE, HTYPE and HOST_MASK macros defined. Signed-off-by: Sergey Popovich Signed-off-by: Jozsef Kadlecsik Signed-off-by: Pablo Neira Ayuso net/netfilter/ipset/ip_set_hash_gen.h | 13 ++++++++++++- net/netfilter/ipset/ip_set_hash_ipmark.c | 6 +++--- net/netfilter/ipset/ip_set_hash_ipport.c | 6 +++--- 3 files changed, 18 insertions(+), 7 deletions(-) commit 58cc06daeacc8158f7471f3331965ec34aa5a172 Author: Sergey Popovich Date: Sat May 2 19:28:18 2015 +0200 netfilter: ipset: Fix hashing for ipv6 sets HKEY_DATALEN remains defined after first inclusion of ip_set_hash_gen.h, so it is incorrectly reused for IPv6 code. Undefine HKEY_DATALEN in ip_set_hash_gen.h at the end. Also remove some useless defines of HKEY_DATALEN in ip_set_hash_{ip{,mark,port},netiface}.c as ip_set_hash_gen.h defines it correctly for such set types anyway. Signed-off-by: Sergey Popovich Signed-off-by: Jozsef Kadlecsik Signed-off-by: Pablo Neira Ayuso net/netfilter/ipset/ip_set_hash_gen.h | 2 ++ net/netfilter/ipset/ip_set_hash_ip.c | 1 - net/netfilter/ipset/ip_set_hash_ipmark.c | 3 --- net/netfilter/ipset/ip_set_hash_ipport.c | 3 --- net/netfilter/ipset/ip_set_hash_netiface.c | 1 - 5 files changed, 2 insertions(+), 8 deletions(-) commit 275e2bc0f25d5eb99c99ebb7293fc3722533124b Author: Sergey Popovich Date: Sat May 2 19:28:17 2015 +0200 netfilter: ipset: Fix ext_*() macros So pointers returned by these macros could be referenced with -> directly. Signed-off-by: Sergey Popovich Signed-off-by: Jozsef Kadlecsik Signed-off-by: Pablo Neira Ayuso include/linux/netfilter/ipset/ip_set.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit e532ffea4ae598d04552dd1138a2367660f6dd5e Author: Pawel Moll Date: Wed May 13 16:21:24 2015 +0100 bus: arm-ccn: Use hrtimer_start() again hrtimer_start() will no longer defer already expired timers to the softirq in 4.2, and the __hrtimer_start_range_ns() function is getting removed, causing build errors when both the tip tree and the arm-ccn changes are merged. This changes the code back to using hrtimer_start, which will do the right thing after this branch gets merged with the timers update from tip. As pointed out after a discussion on the mailing list, the result will not be worse than the what was there before you pulled my updates, as the code was using normal hrtimer_start(). It's just when I realised that it should be pinned I looked at what x86 uncore pmu is doing and shamelessly (and probably a bit mindlessly) copied the "do not wakeup" version from there. [arnd: update commit message] Reported-by: Mark Brown Signed-off-by: Pawel Moll Signed-off-by: Arnd Bergmann drivers/bus/arm-ccn.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit e355eb0a28c02da54b02b391d513142a0eee2447 Merge: 33bb01d 5f9c218 Author: Arnd Bergmann Date: Wed May 13 18:10:17 2015 +0200 Merge tag 'tegra-for-4.2-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into next/defconfig Merge "ARM: tegra: Default configuration updates for v4.2-rc1" from Thierry Reding: This is a set of changes to the Tegra default configuration that enable various new features (HDMI audio, watchdog) on Toradex Apalis T30. * tag 'tegra-for-4.2-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux: ARM: tegra: Update default configuration commit a258e3f811fcedb314b1ca9254e6e97ec6c6d37c Merge: 2cac46a 869bd18 Author: Arnd Bergmann Date: Wed May 13 18:02:49 2015 +0200 Merge tag 'tegra-for-4.2-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into next/dt Merge "ARM: tegra: Devicetree changes for v4.2-rc1" from Thierry Reding: Contains a couple of fixes and additions to device tree files. The most notable change is a fix for a misapplied patch that was only exposed by a recent change in the regulator subsystem that caused USB to break on Tegra124 recently. Other than that there are a more or less random assortment of additions to enable various features on a couple of boards. * tag 'tegra-for-4.2-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux: ARM: tegra: Fix hda2codec_2x clock and reset names ARM: tegra: Add Tegra30 HDA support ARM: tegra: Cardhu device-tree comment spelling fix ARM: tegra: venice2: Set min-/max-microvolt for VDD_LED supply ARM: tegra: venice2: Mark eMMC as non-removable ARM: tegra: jetson-tk1: Enable HDA support ARM: tegra: Add missing HDMI +5V regulator ARM: tegra: cardhu: Add power and volume keys ARM: tegra: Correct which USB controller has the UTMI pad registers commit 2516a932efff0573de271ed3e6ad2327aa34c887 Merge: 94db5b9 7892158 Author: Arnd Bergmann Date: Wed May 13 18:01:18 2015 +0200 Merge tag 'tegra-for-4.2-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into next/soc Merge "ARM: tegra: Core SoC changes for v4.2-rc1" from Thierry Reding: A couple of changes to the core SoC support code. Perhaps the most important part is a fix for a regression in LP1 suspend/resume code that was introduced a while back. * tag 'tegra-for-4.2-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux: soc/tegra: pmc: move to using a restart handler ARM: tegra20: Store CPU "resettable" status in IRAM soc/tegra: Watch wait_for_completion_timeout() return type commit 44fb3026ad28d2a2b935dc9c47ec2dffadca3f35 Merge: 92d19e2 9c77a81 Author: Arnd Bergmann Date: Wed May 13 17:59:35 2015 +0200 Merge tag 'tegra-for-4.2-emc' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into next/drivers Merge "ARM: tegra: Add EMC driver for v4.2-rc1" from Thierry Reding: This introduces the EMC driver that's required to scale the external memory frequency. * tag 'tegra-for-4.2-emc' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux: memory: tegra: Add EMC frequency debugfs entry memory: tegra: Add EMC (external memory controller) driver memory: tegra: Add API needed by the EMC driver of: Add Tegra124 EMC bindings of: Document timings subnode of nvidia,tegra-mc commit 92d19e26d67704397b70cf5728fd77bd13b74c43 Merge: fe7a5bf 6ea2609 Author: Arnd Bergmann Date: Wed May 13 17:56:47 2015 +0200 Merge tag 'tegra-for-4.2-ramcode' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into next/drivers Merge "ARM: tegra: RAM code access for v4.2-rc1" from Thierry Reding: The RAM code is used by the memory and external memory controllers to determine which set of timings to use for memory frequency scaling. * tag 'tegra-for-4.2-ramcode' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux: soc/tegra: fuse: Add RAM code reader helper of: Document long-ram-code property in nvidia,tegra20-apbmisc commit fe7a5bfe18f06a418705098f6212bda2cbdcadb5 Merge: 11f5200 6f0a4d0 Author: Arnd Bergmann Date: Wed May 13 17:54:39 2015 +0200 Merge tag 'tegra-for-4.2-memory' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into next/drivers Merge "ARM: tegra: Memory controller updates for v4.2-rc1" from Thierry Reding: Adds support for Tegra132 (which is mostly the same as for Tegra124, except for cache maintenance). debugfs support is also introduced for the SMMU part of the memory controller, which allows users to inspect the translation state for SWGROUPs and memory clients. * tag 'tegra-for-4.2-memory' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux: memory: tegra: Disable ARBITRATION_EMEM interrupt memory: tegra: Add Tegra132 support iommu/tegra-smmu: Add debugfs support memory: tegra: Add SWGROUP names commit bf300afa3ff388d659381d7b363d4c1d560c943e Merge: 16ec30e 85aa504 Author: Arnd Bergmann Date: Wed May 13 17:52:57 2015 +0200 Merge tag 'tegra-for-4.2-cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into next/cleanup Merge "ARM: tegra: Cleanup patches for v4.2-rc1" from Thierry Reding: Just a couple of trivial cleanups such as a typofix and conversion of hexadecimal numbers to all lower-case in DTS files for consistency. * tag 'tegra-for-4.2-cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux: ARM: tegra: Fix typo (reset -> rest) in comment ARM: tegra: Use lower-case hexadecimal digits commit 94db5b98d0bc56729e8f3cf2e1673017860c4a3a Merge: 73e601e 122694a Author: Arnd Bergmann Date: Wed May 13 17:49:03 2015 +0200 Merge tag 'socfpga_updates_for_v4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux into next/soc Merge "SoCFPGA updates for v4.2" from Dinh Nguyen: - Add big endian support - Add earlyprintk support on UART1 that is used on Arria10 - Remove the need to map uart_io_desc - Use of_iomap to map the SCU - Remove socfpga_smp_init_cpus as arm_dt_init_cpu_maps is already doing the CPU mapping. * tag 'socfpga_updates_for_v4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux: ARM: socfpga: use of_iomap to map the SCU ARM: socfpga: remove the need to map uart_io_desc ARM: socfpga: Add support for UART1 debug uart for earlyprintk ARM: socfpga: support big endian for socfpga ARM: socfpga: enable big endian for secondary core(s) ARM: debug: fix big endian operation for 8250 word mode commit 2cac46a4157e3c541bfe007f4d8f2c6ebb07911c Merge: 2b424c7 8508452 Author: Arnd Bergmann Date: Wed May 13 17:47:47 2015 +0200 Merge tag 'socfpga_dts_for_v4.2_part_2' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux into next/dt Merge "SoCFPGA update for v4.2 part 2" from Dinh Nguyen: - Add a DTS node for the A9 SCU * tag 'socfpga_dts_for_v4.2_part_2' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux: ARM: socfpga: dts: add the a9-scu node commit 2b424c7a0b4d6b54e7e6d09855bdf0b3929580cd Merge: 9d8a71f 9ab79be Author: Arnd Bergmann Date: Wed May 13 17:41:54 2015 +0200 Merge tag 'v4.2-rockchip-dts1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into next/dt Merge "ARM: rockchip: dts changes for 4.2" from Heiko Stuebner: Some misc improvements defining additional supply regulators, enabling the Cortex-A12 HW PMU on the rk3288 and the tsadc on some more rk3288 boards, as well as some usb properties and marking the radxarock pmic as system-power-controller. * tag 'v4.2-rockchip-dts1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip: ARM: dts: rockchip: add system-power-controller to act8846 on radxarock ARM: dts: rockchip: add properties for dwc2 usb otg controller ARM: dts: rockchip: enable tsadc on rk3288 boards ARM: dts: rockchip: add act8846 supplies on rk3288-firefly ARM: dts: rockchip: Specify VMMC and VQMMC on rk3288-evb ARM: dts: rockchip: Enable Cortex-A12 HW PMU events on rk3288 commit 6d4fa89dcd85e2427da83319ce75e5df5febcc96 Author: Chen-Yu Tsai Date: Fri Apr 10 12:09:06 2015 +0800 mfd: axp20x: Enable AXP22X regulators Now that the axp20x-regulators driver supports different variants of the AXP family, we can enable regulator support for AXP22X without the risk of incorrectly configuring regulators. Signed-off-by: Chen-Yu Tsai Signed-off-by: Lee Jones drivers/mfd/axp20x.c | 2 ++ 1 file changed, 2 insertions(+) commit 97ba5ac1f2a5e3e07b67133215b2958bd4f1b41a Author: Chen-Yu Tsai Date: Fri Apr 10 12:09:05 2015 +0800 mfd: axp20x: Add AXP22x regulator information to DT bindings Add the list of regulators for AXP22x to the DT bindings. This includes the names and supply names. Signed-off-by: Chen-Yu Tsai Signed-off-by: Lee Jones Documentation/devicetree/bindings/mfd/axp20x.txt | 25 ++++++++++++++++++++++++ 1 file changed, 25 insertions(+) commit 1b82b4e4f9546fbed0b61ee68cdae5db7518dd28 Author: Boris BREZILLON Date: Fri Apr 10 12:09:04 2015 +0800 regulator: axp20x: Add support for AXP22X regulators Add AXP22X regulator definitions and variant id associations. This introduces a new "switch" type output for one of the regulators. It is a switchable secondary output of one regulator, with the same voltage level as the primary output. Signed-off-by: Boris BREZILLON [wens@csie.org: Moved variant choosing to multi family support patch] [wens@csie.org: Add dc-dc work frequency range] [wens@csie.org: Add "switch" type output regulator DC1SW] Signed-off-by: Chen-Yu Tsai Reviewed-by: Mark Brown Signed-off-by: Lee Jones drivers/regulator/axp20x-regulator.c | 96 ++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) commit 866bd951f2205ce36ebf2dd6f88c2ecd3ce245a8 Author: Boris BREZILLON Date: Fri Apr 10 12:09:03 2015 +0800 regulator: axp20x: Prepare support for multiple AXP chip families Rework the AXP20X_ macros and probe function to support the several chip families, so that each family can define it's own set of regulators. Signed-off-by: Boris BREZILLON [wens@csie.org: Support different DC-DC work frequency ranges] Signed-off-by: Chen-Yu Tsai Reviewed-by: Mark Brown Signed-off-by: Lee Jones drivers/regulator/axp20x-regulator.c | 143 +++++++++++++++++++++++------------ 1 file changed, 94 insertions(+), 49 deletions(-) commit 768a87c8e12e17b44ab2163be70739ec5889f06f Author: Chen-Yu Tsai Date: Fri Apr 10 12:09:02 2015 +0800 mfd: axp20x: Update DT bindings with AXP22x compatibles Add AXP221 to the list of supported devices. Also replace any mention of AXP20x in the document with a generic "PMIC". Signed-off-by: Chen-Yu Tsai Signed-off-by: Lee Jones Documentation/devicetree/bindings/mfd/axp20x.txt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit f05be589ff32e87821b86845625ed3d402d37dc7 Author: Boris BREZILLON Date: Fri Apr 10 12:09:01 2015 +0800 mfd: axp20x: Add AXP22x PMIC support Add support for the AXP22x PMIC devices to the existing AXP20x driver. This includes the AXP221 and AXP223, which are identical except for the external data bus. Only AXP221 is added for now. AXP223 will be added after it's Reduced Serial Bus (RSB) interface is supported. AXP22x defines a new set of registers, power supplies and regulators, but most of the API is similar to the AXP20x ones. A new irq chip definition is used, even though the available interrupts on AXP22x is a subset of those on AXP20x. This is done so the interrupt numbers match those on the datasheet. This patch only enables the interrupts, system power-off function, and PEK sub-device. The regulator driver must first support different variants before we enable it from the mfd driver. Signed-off-by: Boris BREZILLON [wens@csie.org: fix interrupts and move regulators to separate patch] Signed-off-by: Chen-Yu Tsai Signed-off-by: Lee Jones drivers/mfd/axp20x.c | 98 ++++++++++++++++++++++++++++++++++++++++++++++ include/linux/mfd/axp20x.h | 86 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 184 insertions(+) commit c354b54cfdf63587154da4fa0731c1fbda44c589 Author: Sergej Sawazki Date: Wed May 13 11:39:01 2015 +0200 ASoC: wm8741: Add differential mono mode support The WM8741 DAC supports several differential output modes (stereo, stereo reversed, mono left, mono right). Add platform data and DT bindings to configure it. Signed-off-by: Sergej Sawazki Acked-by: Charles Keepax Signed-off-by: Mark Brown Documentation/devicetree/bindings/sound/wm8741.txt | 11 ++ sound/soc/codecs/wm8741.c | 129 ++++++++++++++++++--- sound/soc/codecs/wm8741.h | 10 ++ 3 files changed, 137 insertions(+), 13 deletions(-) commit b749b1b67351bd9be1aa640cadf66d32dfcccfd1 Author: Chen Hanxiao Date: Wed May 13 06:10:05 2015 -0400 workqueue: fix a typo s/detemined/determined Signed-off-by: Chen Hanxiao Signed-off-by: Tejun Heo kernel/workqueue.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 122694a0c71281cf2b349af41309c3caf5f31d61 Author: Dinh Nguyen Date: Tue May 12 16:49:21 2015 -0500 ARM: socfpga: use of_iomap to map the SCU Use of_iomap to map the "arm,cortex-a9-scu". By doing this, we can remove map_io in socfpga.c. Also, we can remove socfpga_smp_init_cpus, as arm_dt_init_cpu_maps is already doing the CPU mapping. Signed-off-by: Dinh Nguyen arch/arm/mach-socfpga/core.h | 1 - arch/arm/mach-socfpga/platsmp.c | 33 ++++++++++----------------------- arch/arm/mach-socfpga/socfpga.c | 25 ------------------------- 3 files changed, 10 insertions(+), 49 deletions(-) commit 819b1bb30d2fb1b3a2b8016e83f02dfc85ada1e0 Author: Rafael J. Wysocki Date: Wed May 13 15:31:12 2015 +0200 PM / sleep: Fix symbol name in a comment in kernel/power/main.c Signed-off-by: Rafael J. Wysocki kernel/power/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8508452e57f7d50216338c28db6d42dfe585389a Author: Dinh Nguyen Date: Tue May 12 15:48:13 2015 -0500 ARM: socfpga: dts: add the a9-scu node Add the dts node for the A9 SCU. Signed-off-by: Dinh Nguyen arch/arm/boot/dts/socfpga.dtsi | 5 +++++ 1 file changed, 5 insertions(+) commit 36b7be6d3ea8f434f1e0723f3fb0e85c3e00ebc2 Author: Marcel Ziswiler Date: Fri Apr 10 23:35:57 2015 +0200 clk: tegra: Fix hda2codec_2x clock name for Tegra30 The HDA to codec clock is named hda2codec_2x, so use the proper name in the clock table. Signed-off-by: Marcel Ziswiler Signed-off-by: Thierry Reding drivers/clk/tegra/clk-tegra30.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 31b52ba42d71e9ed8ee544e64c340ec6c571272f Author: Thierry Reding Date: Wed Apr 1 09:10:58 2015 +0200 clk: tegra: EMC clock driver depends on EMC driver The EMC clock driver uses symbols exported by the EMC driver, so it needs the corresponding dependency to avoid build breakage. Signed-off-by: Thierry Reding drivers/clk/Kconfig | 1 + drivers/clk/tegra/Kconfig | 3 +++ drivers/clk/tegra/Makefile | 3 ++- drivers/clk/tegra/clk.h | 9 +++++++++ 4 files changed, 15 insertions(+), 1 deletion(-) commit 890d6a54ead9dafdfdeebe65cbb10056e14c835a Author: Tomeu Vizoso Date: Tue Mar 17 10:36:13 2015 +0100 clk: tegra: Have EMC clock implement determine_rate() As opposed to round_rate(), determine_rate() can take rate constraints into account when choosing the best rate. Signed-off-by: Tomeu Vizoso Signed-off-by: Thierry Reding drivers/clk/tegra/clk-emc.c | 35 +++++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 12 deletions(-) commit ac67477f8f4163a6e7678f252030051f4eef2d5f Author: Tomeu Vizoso Date: Thu Mar 12 15:48:07 2015 +0100 clk: tegra: Set the EMC clock as the parent of the MC clock On Tegra124, as we now have a proper driver for the EMC. Signed-off-by: Tomeu Vizoso Signed-off-by: Thierry Reding drivers/clk/tegra/clk-tegra124.c | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) commit 2db04f16b589c6c96bd07df3f1ef8558bfdb6810 Author: Mikko Perttunen Date: Thu Mar 12 15:48:05 2015 +0100 clk: tegra: Add EMC clock driver The driver is currently only tested on Tegra124 Jetson TK1, but should work with other Tegra124 boards, provided that correct EMC tables are provided through the device tree. Older chip models have differing timing change sequences, so they are not currently supported. Signed-off-by: Mikko Perttunen Signed-off-by: Tomeu Vizoso [treding@nvidia.com: use more consistent function names] Signed-off-by: Thierry Reding drivers/clk/tegra/Makefile | 2 +- drivers/clk/tegra/clk-emc.c | 527 +++++++++++++++++++++++++++++++++++++++ drivers/clk/tegra/clk-tegra124.c | 5 +- drivers/clk/tegra/clk.h | 3 + 4 files changed, 535 insertions(+), 2 deletions(-) commit 374ffadaf3abd4bf77073bd8f1acf0ada7dc797e Author: Mikko Perttunen Date: Thu Mar 12 15:47:53 2015 +0100 clk: tegra: Remove old Tegra124 EMC clock This clock has never been able to do anything. Signed-off-by: Mikko Perttunen Signed-off-by: Tomeu Vizoso Signed-off-by: Thierry Reding drivers/clk/tegra/clk-tegra124.c | 1 - 1 file changed, 1 deletion(-) commit ef03b35a9a2cadd6b3abc758dab4c580a454760c Author: Tomeu Vizoso Date: Thu Mar 12 15:47:59 2015 +0100 of: document external-memory-controller property in tegra124-car This property contains a phandle to the EMC driver that is needed by the EMC clock to request the EMC driver to do its part of the clock change sequence. Signed-off-by: Tomeu Vizoso Signed-off-by: Thierry Reding Documentation/devicetree/bindings/clock/nvidia,tegra124-car.txt | 2 ++ 1 file changed, 2 insertions(+) commit e34812c5bac8de641a2551b5ccb601627c10e772 Author: Tomeu Vizoso Date: Thu Mar 12 15:47:56 2015 +0100 of: document new emc-timings subnode in nvidia,tegra124-car The EMC clock needs some extra information for changing its rate. Signed-off-by: Tomeu Vizoso Signed-off-by: Thierry Reding .../bindings/clock/nvidia,tegra124-car.txt | 42 +++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) commit 42c86547f4e5c2e81616c76ce9a2badce515c41f Author: Tomeu Vizoso Date: Wed Mar 11 11:34:25 2015 +0100 clk: Expose clk_hw_reparent() to providers To be used by clock implementations for switching to a new parent during rate change. Signed-off-by: Tomeu Vizoso Signed-off-by: Thierry Reding drivers/clk/clk.c | 8 ++++++++ include/linux/clk-provider.h | 1 + 2 files changed, 9 insertions(+) commit 07aaa0e5632d3434d1a8e88f0db0bee1c84eb1d7 Merge: b787f68 6ea2609 Author: Thierry Reding Date: Wed May 13 15:16:55 2015 +0200 Merge branch 'for-4.2/ramcode' into for-4.2/clk commit 2bb3e2eec50c4cc7e0aefc4ef4cc9a1c371038ae Author: Mauro Carvalho Chehab Date: Thu Apr 30 09:17:34 2015 -0300 [media] saa7134: replace remaining occurences or printk() Instead of using printk(), use pr_foo() macros. Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/saa7134/saa7134-i2c.c | 8 ++++---- drivers/media/pci/saa7134/saa7134-input.c | 3 +-- drivers/media/pci/saa7134/saa7134-tvaudio.c | 11 +++++------ 3 files changed, 10 insertions(+), 12 deletions(-) commit 3e0051c5a40a5a29e1919361f45cd1e103d0b1fa Author: Mauro Carvalho Chehab Date: Thu Apr 30 09:15:08 2015 -0300 [media] saa7134-i2c: simplify debug dump and use pr_info() Instead of implement its own hexdump logic, use the printk format, and convert to use pr_info(). Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/saa7134/saa7134-i2c.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit 6be5b1a19a4abe1b3c66af0bde3d7e3ed3005faa Author: Mauro Carvalho Chehab Date: Thu Apr 30 09:02:03 2015 -0300 [media] saa7134: change the debug macros for IR input Rename the macros to input_dbg() and ir_dbg(), using pr_fmt() on both, to be coherent with the other debug macro changes. The ir_dbg() also prints the IR name. I'm not sure if it is a good idea to keep both macros here, but merging them would require tests on different flavors of saaa7134-based boards. So, for now, let's keep both. Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/saa7134/saa7134-input.c | 44 +++++++++++++++---------------- 1 file changed, 22 insertions(+), 22 deletions(-) commit 630983b759eb1a92c30547470c8bd934a2c61fb9 Author: Mauro Carvalho Chehab Date: Thu Apr 30 08:52:35 2015 -0300 [media] saa7134: change the debug macros for video and vbi rename the macro to vbi_dbg()/video_dbg() and use pr_fmt(), to be coherent with the other debug macro changes. Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/saa7134/saa7134-vbi.c | 6 +++--- drivers/media/pci/saa7134/saa7134-video.c | 26 +++++++++++++------------- 2 files changed, 16 insertions(+), 16 deletions(-) commit e67bcf3ebec17897e9a1ba7acf49772c37f5d418 Author: Mauro Carvalho Chehab Date: Thu Apr 30 08:45:18 2015 -0300 [media] saa7134: change the debug macros for saa7134-tvaudio use just one macro instead of 2, naming it as audio_dbg() and using pr_fmt(). Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/saa7134/saa7134-tvaudio.c | 144 ++++++++++++++-------------- 1 file changed, 70 insertions(+), 74 deletions(-) commit af5d20ceb359bcd6a76c156a99ff5100c4b05401 Author: Mauro Carvalho Chehab Date: Thu Apr 30 08:38:02 2015 -0300 [media] saa7134-ts: use pr_fmt() at the debug macro instead of using dev->name, let's use pr_fmt() like on the other parts of saa7134. Also, rename the debug macro to ts_dbg() to match the namespace for the debug macros. Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/saa7134/saa7134-ts.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 30693f346e4f5c0720de66c424b38053f9e34a08 Author: Mauro Carvalho Chehab Date: Thu Apr 30 08:21:14 2015 -0300 [media] saa7134-i2c: make debug macros to use pr_fmt() Converting debug prints to use pr_foo() is not trivial, as the result will be a way worse than what's provided here, due to the pieces of the code that prints the I2C transfers. Those use a lot pr_cont(), and, depending on using either level 1 or 2, a different set of macros are selected. So, let's replace d1printk() and d2printk() macros by i2c_dbg() and i2c_count() adding a debug level there. Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/saa7134/saa7134-i2c.c | 54 ++++++++++++++++----------------- 1 file changed, 27 insertions(+), 27 deletions(-) commit c6c62cce324c96a74a84c419ff8f2f847fd4a918 Author: Mauro Carvalho Chehab Date: Thu Apr 30 08:03:30 2015 -0300 [media] saa7134: better handle core debug messages On media drivers, debugging messages should be grouped into categories, as this makes easier to debug the driver. In the case of saa7134, the core has 2 debug categories, one for IRQ, and another one for the core itself. The IRQ have actually 2 levels of debug. So, instead of using pr_dbg(), where everything would be in the same box, let's define two macros that use pr_fmt(), one for the core, and another one for irq. With that, we can replace the remaining printk() occurrences at the core to use either core_dbg() or irq_dbg(), depending on the group of debug macros that need to be enabled. Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/saa7134/saa7134-core.c | 68 ++++++++++++++++---------------- 1 file changed, 33 insertions(+), 35 deletions(-) commit 51626557ace26ebc48d5d56c85675fb106d839c9 Author: Mauro Carvalho Chehab Date: Thu Apr 30 07:15:20 2015 -0300 [media] saa7134: use pr_warn() on some places where no KERN_foo were used On a few places, mostly during board detection, some printk() macros were called without especifying any message level. Those are actually warnings. So, use pr_warn() for them. Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/saa7134/saa7134-cards.c | 28 ++++++++++++++-------------- drivers/media/pci/saa7134/saa7134-core.c | 2 +- 2 files changed, 15 insertions(+), 15 deletions(-) commit e43c1732addce62ba50ce1a37009c104b585ac45 Author: Mauro Carvalho Chehab Date: Thu Apr 30 07:12:19 2015 -0300 [media] saa7134-empress: use pr_debug() for the saa7134 empress module As this module doesn't use any debug level, it is easy to just replace all debug printks by pr_debug(). Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/saa7134/saa7134-empress.c | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) commit 7516657af08d4a35abec6807701933d48bcac7c6 Author: Mauro Carvalho Chehab Date: Thu Apr 30 07:09:02 2015 -0300 [media] saa7134-dvb: use pr_debug() for the saa7134 dvb module As this module doesn't use any debug level, it is easy to just replace all debug printks by pr_debug(). Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/saa7134/saa7134-dvb.c | 29 ++++++++++------------------- 1 file changed, 10 insertions(+), 19 deletions(-) commit ae618919f10588046c0c91117348f2ed49414a1e Author: Mauro Carvalho Chehab Date: Thu Apr 30 07:06:23 2015 -0300 [media] saa7134-dvb: get rid of wprintk() macro wprintk() macro is now just a wrapper for pr_warn(). Get rid of it! Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/saa7134/saa7134-dvb.c | 59 +++++++++++++++------------------ 1 file changed, 27 insertions(+), 32 deletions(-) commit 7592eefc1ce14d7d699f18d57da4868761bdd92c Author: Mauro Carvalho Chehab Date: Thu Apr 30 06:59:53 2015 -0300 [media] saa7134-alsa: use pr_debug() instead of printk On saa7134-alsa, there is just one printk macro that use a different debug level. It should be easy to enable/disable this one using dynamic_printk, if one need to individually control it. So, this module can easily use pr_debug() instead of using its own macros. Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/saa7134/saa7134-alsa.c | 32 +++++++++++--------------------- 1 file changed, 11 insertions(+), 21 deletions(-) commit bea8630e5db47f458788848092678da3e8021f44 Author: Mauro Carvalho Chehab Date: Thu Apr 30 06:55:53 2015 -0300 [media] saa7134: fix a few other occurrences of KERN_INFO/KERN_WARNING On a few places, the search expression used on the script that replaced pr_info/pr_warn didn't match, because the string were on the next line. It is best to manually edit those lines, and re-indent the paragraphs. Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/saa7134/saa7134-cards.c | 15 ++++++--------- drivers/media/pci/saa7134/saa7134-core.c | 28 +++++++++++++--------------- 2 files changed, 19 insertions(+), 24 deletions(-) commit 83582009164b9e293e4b8c34b198c4ac0d2a82dd Author: Mauro Carvalho Chehab Date: Thu Apr 30 06:46:34 2015 -0300 [media] saa7134: instead of using printk KERN_foo, use pr_foo Replaces all occurrences of printk with KERN_INFO, KERN_WARNING and KERN_ERR to pr_info/pr_warning, pr_err, using this small shell script: for i in drivers/media/pci/saa7134/*.[ch]; do sed s,'printk(KERN_INFO ','pr_info(',g <$i >a && mv a $i; done for i in drivers/media/pci/saa7134/*.[ch]; do sed s,'printk(KERN_ERR ','pr_err(',g <$i >a && mv a $i; done for i in drivers/media/pci/saa7134/*.[ch]; do sed s,'printk(KERN_WARNING ','pr_warn(',g <$i >a && mv a $i; done Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/saa7134/saa7134-alsa.c | 14 ++++---- drivers/media/pci/saa7134/saa7134-cards.c | 32 +++++++++--------- drivers/media/pci/saa7134/saa7134-core.c | 52 ++++++++++++++--------------- drivers/media/pci/saa7134/saa7134-dvb.c | 10 +++--- drivers/media/pci/saa7134/saa7134-empress.c | 4 +-- drivers/media/pci/saa7134/saa7134-i2c.c | 6 ++-- drivers/media/pci/saa7134/saa7134-tvaudio.c | 4 +-- drivers/media/pci/saa7134/saa7134-video.c | 8 ++--- 8 files changed, 65 insertions(+), 65 deletions(-) commit 9a12ccfc8054e69895c7773176bb2c89e3a195f6 Author: Mauro Carvalho Chehab Date: Thu Apr 30 06:44:56 2015 -0300 [media] saa7134: prepare to use pr_foo macros Add a pr_fmt macro, and move saa7134.h header to the beginning, to avoid warnings when using the pr_foo macros. Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/saa7134/saa7134-alsa.c | 6 +++--- drivers/media/pci/saa7134/saa7134-cards.c | 5 +++-- drivers/media/pci/saa7134/saa7134-core.c | 6 +++--- drivers/media/pci/saa7134/saa7134-dvb.c | 5 +++-- drivers/media/pci/saa7134/saa7134-empress.c | 6 +++--- drivers/media/pci/saa7134/saa7134-go7007.c | 5 +++-- drivers/media/pci/saa7134/saa7134-i2c.c | 5 +++-- drivers/media/pci/saa7134/saa7134-input.c | 6 +++--- drivers/media/pci/saa7134/saa7134-ts.c | 6 +++--- drivers/media/pci/saa7134/saa7134-tvaudio.c | 6 +++--- drivers/media/pci/saa7134/saa7134-vbi.c | 6 +++--- drivers/media/pci/saa7134/saa7134-video.c | 6 +++--- drivers/media/pci/saa7134/saa7134.h | 2 ++ 13 files changed, 38 insertions(+), 32 deletions(-) commit ebb6ad73e645b8f2d098dd3c41d2ff0da4146a02 Author: Axel Lin Date: Mon May 11 09:04:06 2015 +0800 ASoC: wm8903: Fix define for WM8903_VMID_RES_250K VMID Control 0 BIT[2:1] is VMID Divider Enable and Select 00 = VMID disabled (for OFF mode) 01 = 2 x 50kΩ divider (for normal operation) 10 = 2 x 250kΩ divider (for low power standby) 11 = 2 x 5kΩ divider (for fast start-up) So WM8903_VMID_RES_250K should be 2 << 1, which is 4. Signed-off-by: Axel Lin Signed-off-by: Mark Brown Cc: stable@vger.kernel.org sound/soc/codecs/wm8903.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 14ba3ec1de043260cecd9e828ea2e3a0ad302893 Author: Axel Lin Date: Sun May 10 11:35:06 2015 +0800 ASoC: wm8737: Fixup setting VMID Impedance control register According to the datasheet: R10 (0Ah) VMID Impedance Control BIT 3:2 VMIDSEL DEFAULT 00 DESCRIPTION: VMID impedance selection control 00: 75kΩ output 01: 300kΩ output 10: 2.5kΩ output WM8737_VMIDSEL_MASK is 0xC (VMIDSEL - [3:2]), so it needs to left shift WM8737_VMIDSEL_SHIFT bits for setting these bits. Signed-off-by: Axel Lin Signed-off-by: Mark Brown Cc: stable@vger.kernel.org sound/soc/codecs/wm8737.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 16ec30ef99b886d9dcaa3bd272a94a4bd1f660f4 Author: Linus Walleij Date: Wed May 13 12:53:07 2015 +0200 ARM: ux500: get rid of static maps The static mappings of the GPIO blocks, clock/reset controller and MTU timer are clearly superfluous. These are all probed exclusively from the device tree. Tested on the U8500. Signed-off-by: Linus Walleij Signed-off-by: Arnd Bergmann arch/arm/mach-ux500/cpu-db8500.c | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) commit 33bb01da7c82d9945e1f9a2fac228be10409a58b Author: Linus Walleij Date: Wed May 13 12:51:50 2015 +0200 ARM: ux500: enable CoreSight in defconfig This enables the CoreSight blocks found on the Ux500 SoC into the Ux500 defconfig. Signed-off-by: Linus Walleij Signed-off-by: Arnd Bergmann arch/arm/configs/u8500_defconfig | 4 ++++ 1 file changed, 4 insertions(+) commit 9e6fd7549e007d57dd10f657884482cab4aa4c2b Author: Linus Walleij Date: Wed May 13 12:29:22 2015 +0200 ARM: ux500: add PERF_EVENTS to defconfig The Ux500 has a perfectly working PMU so let's put the perf events into the defconfig. This will activate HW_PERF_EVENTS by default. Signed-off-by: Linus Walleij Signed-off-by: Arnd Bergmann arch/arm/configs/u8500_defconfig | 1 + 1 file changed, 1 insertion(+) commit 9d8a71ff5cb2025f4f56cdce2c7d5b426bad5247 Merge: 58d2bc7 df44ad8 Author: Arnd Bergmann Date: Wed May 13 13:37:26 2015 +0200 Merge tag 'ux500-v4.2-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson into next/dt Merge "Ux500 Device Tree changes for the v4.2 series" form Linus Walleij: Define CPU topology, connect that with CoreSight blocks, add sensor information to DT boards. * tag 'ux500-v4.2-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson: ARM: ux500: add the sensors to the STUIB board ARM: ux500: assign the sensor trigger IRQs ARM: ux500: fix lsm303dlh magnetometer compat string ARM: ux500: add CoreSight blocks to DTS file ARM: ux500: define CPU topology commit 037261866c8dd164c426580160973eb2d68f688c Author: Sergey Popovich Date: Sat May 2 19:28:16 2015 +0200 netfilter: ipset: Check for comment netlink attribute length Ensure userspace supplies string not longer than IPSET_MAX_COMMENT_SIZE. Signed-off-by: Sergey Popovich Signed-off-by: Jozsef Kadlecsik Signed-off-by: Pablo Neira Ayuso net/netfilter/ipset/ip_set_bitmap_ip.c | 3 ++- net/netfilter/ipset/ip_set_bitmap_ipmac.c | 3 ++- net/netfilter/ipset/ip_set_bitmap_port.c | 3 ++- net/netfilter/ipset/ip_set_hash_ip.c | 3 ++- net/netfilter/ipset/ip_set_hash_ipmark.c | 3 ++- net/netfilter/ipset/ip_set_hash_ipport.c | 3 ++- net/netfilter/ipset/ip_set_hash_ipportip.c | 3 ++- net/netfilter/ipset/ip_set_hash_ipportnet.c | 3 ++- net/netfilter/ipset/ip_set_hash_mac.c | 3 ++- net/netfilter/ipset/ip_set_hash_net.c | 3 ++- net/netfilter/ipset/ip_set_hash_netiface.c | 3 ++- net/netfilter/ipset/ip_set_hash_netnet.c | 3 ++- net/netfilter/ipset/ip_set_hash_netport.c | 3 ++- net/netfilter/ipset/ip_set_hash_netportnet.c | 3 ++- net/netfilter/ipset/ip_set_list_set.c | 3 ++- 15 files changed, 30 insertions(+), 15 deletions(-) commit 728a7e6903af6f901eeff9a2d9ffb06d55e9b1e4 Author: Sergey Popovich Date: Sat May 2 19:28:15 2015 +0200 netfilter: ipset: Return bool values instead of int Signed-off-by: Sergey Popovich Signed-off-by: Jozsef Kadlecsik Signed-off-by: Pablo Neira Ayuso net/netfilter/ipset/ip_set_hash_ip.c | 10 +++++----- net/netfilter/ipset/ip_set_hash_ipmark.c | 8 ++++---- net/netfilter/ipset/ip_set_hash_ipport.c | 8 ++++---- net/netfilter/ipset/ip_set_hash_ipportip.c | 8 ++++---- net/netfilter/ipset/ip_set_hash_ipportnet.c | 8 ++++---- net/netfilter/ipset/ip_set_hash_mac.c | 7 ++++++- net/netfilter/ipset/ip_set_hash_net.c | 8 ++++---- net/netfilter/ipset/ip_set_hash_netiface.c | 8 ++++---- net/netfilter/ipset/ip_set_hash_netport.c | 8 ++++---- net/netfilter/ipset/ip_set_hash_netportnet.c | 8 ++++---- 10 files changed, 43 insertions(+), 38 deletions(-) commit cabfd139aa9863ebafe0bbba3f203d0c4e43e2cf Author: Sergey Popovich Date: Sat May 2 19:28:11 2015 +0200 netfilter: ipset: Use HOST_MASK literal to represent host address CIDR len Signed-off-by: Sergey Popovich Signed-off-by: Jozsef Kadlecsik Signed-off-by: Pablo Neira Ayuso net/netfilter/ipset/ip_set_bitmap_ip.c | 7 ++++--- net/netfilter/ipset/ip_set_bitmap_ipmac.c | 3 ++- net/netfilter/ipset/ip_set_hash_ip.c | 2 +- net/netfilter/ipset/ip_set_hash_ipmark.c | 2 +- net/netfilter/ipset/ip_set_hash_ipport.c | 2 +- net/netfilter/ipset/ip_set_hash_ipportip.c | 2 +- net/netfilter/ipset/ip_set_hash_ipportnet.c | 2 +- 7 files changed, 11 insertions(+), 9 deletions(-) commit d25472e4706329f595377aca38ccb664bdd14531 Author: Sergey Popovich Date: Sat May 2 19:28:10 2015 +0200 netfilter: ipset: Check IPSET_ATTR_PORT only once We do not need to check tb[IPSET_ATTR_PORT] != NULL before retrieving port, as this attribute is known to exist due to ip_set_attr_netorder() returning true only when attribute exists and it is in network byte order. Signed-off-by: Sergey Popovich Signed-off-by: Jozsef Kadlecsik Signed-off-by: Pablo Neira Ayuso net/netfilter/ipset/ip_set_hash_ipport.c | 10 ++-------- net/netfilter/ipset/ip_set_hash_ipportip.c | 10 ++-------- net/netfilter/ipset/ip_set_hash_ipportnet.c | 10 ++-------- net/netfilter/ipset/ip_set_hash_netport.c | 10 ++-------- net/netfilter/ipset/ip_set_hash_netportnet.c | 10 ++-------- 5 files changed, 10 insertions(+), 40 deletions(-) commit 8e55d2e5903e4698a964163e0cf81261eee086ee Author: Sergey Popovich Date: Sat May 2 19:28:07 2015 +0200 netfilter: ipset: Return ipset error instead of bool Statement ret = func1() || func2() returns 0 when both func1() and func2() return 0, or 1 if func1() or func2() returns non-zero. However in our case func1() and func2() returns error code on failure, so it seems good to propagate such error codes, rather than returning 1 in case of failure. Signed-off-by: Sergey Popovich Signed-off-by: Jozsef Kadlecsik Signed-off-by: Pablo Neira Ayuso net/netfilter/ipset/ip_set_bitmap_ip.c | 7 +++++-- net/netfilter/ipset/ip_set_bitmap_ipmac.c | 7 +++++-- net/netfilter/ipset/ip_set_hash_ip.c | 14 ++++++++++---- net/netfilter/ipset/ip_set_hash_ipmark.c | 14 ++++++++++---- net/netfilter/ipset/ip_set_hash_ipport.c | 14 ++++++++++---- net/netfilter/ipset/ip_set_hash_ipportip.c | 14 ++++++++++---- net/netfilter/ipset/ip_set_hash_ipportnet.c | 14 ++++++++++---- net/netfilter/ipset/ip_set_hash_net.c | 14 ++++++++++---- net/netfilter/ipset/ip_set_hash_netiface.c | 14 ++++++++++---- net/netfilter/ipset/ip_set_hash_netnet.c | 24 ++++++++++++++++++------ net/netfilter/ipset/ip_set_hash_netport.c | 14 ++++++++++---- net/netfilter/ipset/ip_set_hash_netportnet.c | 24 ++++++++++++++++++------ 12 files changed, 126 insertions(+), 48 deletions(-) commit 43ef29c91a247e9e0cc4d4538c1d1f5b8ca728c1 Author: Sergey Popovich Date: Sat May 2 19:28:06 2015 +0200 netfilter: ipset: Preprocessor directices cleanup * Undefine mtype_data_reset_elem before defining. * Remove duplicated mtype_gc_init undefine, move mtype_gc_init define closer to mtype_gc define. * Use htype instead of HTYPE in IPSET_TOKEN(HTYPE, _create)(). * Remove PF definition from sets: no more used. Signed-off-by: Sergey Popovich Signed-off-by: Jozsef Kadlecsik Signed-off-by: Pablo Neira Ayuso net/netfilter/ipset/ip_set_hash_gen.h | 7 ++++--- net/netfilter/ipset/ip_set_hash_ip.c | 3 --- net/netfilter/ipset/ip_set_hash_ipmark.c | 3 --- net/netfilter/ipset/ip_set_hash_ipport.c | 3 --- net/netfilter/ipset/ip_set_hash_ipportip.c | 3 --- net/netfilter/ipset/ip_set_hash_ipportnet.c | 3 --- net/netfilter/ipset/ip_set_hash_mac.c | 1 - net/netfilter/ipset/ip_set_hash_net.c | 3 --- net/netfilter/ipset/ip_set_hash_netiface.c | 3 --- net/netfilter/ipset/ip_set_hash_netnet.c | 3 --- net/netfilter/ipset/ip_set_hash_netport.c | 3 --- net/netfilter/ipset/ip_set_hash_netportnet.c | 3 --- 12 files changed, 4 insertions(+), 34 deletions(-) commit 2b67d6e01de1fa220e3f6a4ee63d7ee07d959f55 Author: Sergey Popovich Date: Sat May 2 19:28:05 2015 +0200 netfilter: ipset: No need to make nomatch bitfield We do not store cidr packed with no match, so there is no need to make nomatch bitfield. This simplifies mtype_data_reset_flags() a bit. Signed-off-by: Sergey Popovich Signed-off-by: Jozsef Kadlecsik Signed-off-by: Pablo Neira Ayuso net/netfilter/ipset/ip_set_hash_netportnet.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit caed0ed35b1e3f3f05dfcb386bcb26df7d47f0ae Author: Sergey Popovich Date: Sat May 2 19:28:03 2015 +0200 netfilter: ipset: Properly calculate extensions offsets and total length Offsets and total length returned by the ip_set_elem_len() calculated incorrectly as initial set element length (i.e. len parameter) is used multiple times in offset calculations, also affecting set element total length. Use initial set element length as start offset, do not add aligned extension offset to the offset. Return offset as total length of the set element. This reduces memory requirements on per element basic for the hash:* type of sets. For example output from 'ipset -terse list test-1' on 64-bit PC, where test-1 is generated via following script: #!/bin/bash set_name='test-1' ipset create "$set_name" hash:net family inet \ timeout 10800 counters comment \ hashsize 65536 maxelem 65536 declare -i o3 o4 fmt="add $set_name 192.168.%u.%u\n" for ((o3 = 0; o3 < 256; o3++)); do for ((o4 = 0; o4 < 256; o4++)); do printf "$fmt" $o3 $o4 done done |ipset -exist restore BEFORE this patch is applied # ipset -terse list test-1 Name: test-1 Type: hash:net Revision: 6 Header: family inet hashsize 65536 maxelem 65536 timeout 10800 counters comment Size in memory: 26348440 and AFTER applying patch # ipset -terse list test-1 Name: test-1 Type: hash:net Revision: 6 Header: family inet hashsize 65536 maxelem 65536 timeout 10800 counters comment Size in memory: 7706392 References: 0 Signed-off-by: Sergey Popovich Signed-off-by: Jozsef Kadlecsik Signed-off-by: Pablo Neira Ayuso net/netfilter/ipset/ip_set_core.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 3e4e8d126c2934803006aa8437cc444f0dc9f438 Author: Alexander Drozdov Date: Sat May 2 19:28:01 2015 +0200 netfilter: ipset: make ip_set_get_ip*_port to use skb_network_offset All the ipset functions respect skb->network_header value, except for ip_set_get_ip4_port() & ip_set_get_ip6_port(). The functions should use skb_network_offset() to get the transport header offset. Signed-off-by: Alexander Drozdov Signed-off-by: Jozsef Kadlecsik Signed-off-by: Pablo Neira Ayuso net/netfilter/ipset/ip_set_getport.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 22496f098bb80480c13636c6b66b316685eeea04 Author: Jozsef Kadlecsik Date: Sat May 2 19:27:58 2015 +0200 netfilter: ipset: Give a better name to a macro in ip_set_core.c Signed-off-by: Jozsef Kadlecsik Signed-off-by: Pablo Neira Ayuso net/netfilter/ipset/ip_set_core.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit 2006aa4a8c3571e861070b4524dc554e302924bd Author: Jozsef Kadlecsik Date: Sat May 2 19:27:56 2015 +0200 netfilter: ipset: Fix sparse warning "warning: cast to restricted __be32" warnings are fixed Signed-off-by: Jozsef Kadlecsik Signed-off-by: Pablo Neira Ayuso net/netfilter/ipset/ip_set_hash_ipmark.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 130daa3f3570890d9082a06b8c36951a9ef630b6 Author: Stephen Boyd Date: Tue May 12 14:42:07 2015 -0700 regulator: of: Skip disabled regulator nodes If a regulator is listed in devicetree, but the node is marked as "disabled" we should skip parsing the regulator init data and deny consumers from interacting with the regulator. This simplifies devicetree maintenance where we can have one dtsi file with all regulators supported by a PMIC and then select what regulators are used depending on the board configuration. Signed-off-by: Stephen Boyd Signed-off-by: Mark Brown drivers/regulator/of_regulator.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 25e4fe92a20bbffde87500615250f1d54bfb832f Author: Dmitry Eremin-Solenikov Date: Tue May 12 20:12:23 2015 +0300 gpiolib: cleanup chained handler and data Clean up chained handler and handler data if they were set by gpiochip_set_chained_irqchip(). Signed-off-by: Dmitry Eremin-Solenikov Signed-off-by: Linus Walleij drivers/gpio/gpiolib.c | 7 +++++++ include/linux/gpio/driver.h | 1 + 2 files changed, 8 insertions(+) commit df44ad87abcbe3bbba18b7e34555f343256e7b21 Author: Linus Walleij Date: Wed Apr 23 10:40:10 2014 +0200 ARM: ux500: add the sensors to the STUIB board This adds the device tree data for the LIS331DL and the AK8974 magnetometer to the STUIB board device tree include file. Signed-off-by: Linus Walleij arch/arm/boot/dts/ste-href-stuib.dtsi | 50 +++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) commit 22a93167025b2b4ae4476bc01645dccb96ff0742 Author: Linus Walleij Date: Mon Apr 27 11:28:33 2015 +0200 ARM: ux500: assign the sensor trigger IRQs The ST sensors on the Ux500 boards were not utilizing the IRQs for data ready sample triggers. Enable this by assigning the right GPIO lines and interrupt lines (when the GPIO lines are used for IRQs) to the accelerometer, gyro and magnetometer sensors. Signed-off-by: Linus Walleij arch/arm/boot/dts/ste-href-tvk1281618.dtsi | 3 +++ arch/arm/boot/dts/ste-snowball.dts | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+) commit 93deea9a60041e9c56bba97b6d3fb0bd147f5ebe Author: Linus Walleij Date: Wed Apr 29 14:08:38 2015 +0200 ARM: ux500: fix lsm303dlh magnetometer compat string The magnetometer found on the Ux500 TVK and Snowball boards is a LSM303DLH not a LSM303DLM, small differences but still different. Put in the right compatible strings and things start working smoothly. Signed-off-by: Linus Walleij arch/arm/boot/dts/ste-href-tvk1281618.dtsi | 4 ++-- arch/arm/boot/dts/ste-snowball.dts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit b557457f638b3357471674eabcb701bb4fee6400 Author: Linus Walleij Date: Thu Apr 16 09:08:15 2015 +0200 ARM: ux500: add CoreSight blocks to DTS file This registers all the CoreSight blocks on the DB8500 SoC: each core has a PTM (v1.0, r1p0-00rel0) connected, both connected to a funnel (DK-TM908-r0p1-00rel0) which in turn connects to a replicator (DM-TM909-r0p1-00rel0). The replicator has two outputs, port 0 to a TPIU interface and port 1 to an ETB (DK-TM907-r0p3-00rel0). The CoreSight blocks are all clocked by the APEATCLK from the PRCMU and their AHB interconnect is clocked from a separate clock called APETRACECLK. The SoC also has a CTI/CTM block which can be added later as we have upstream support in the CoreSight subsystem. Acked-by: Mathieu Poirier Signed-off-by: Linus Walleij arch/arm/boot/dts/ste-dbx5x0.dtsi | 128 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 128 insertions(+) commit 8265a2f89c8ecf526931951fa240982d1f438736 Author: Roberto Sassu Date: Sat Apr 11 17:07:03 2015 +0200 ima: added ima-sig template among choices in kernel-parameters.txt This patch adds the template 'ima-sig' among choices for the kernel parameter 'ima_template'. Signed-off-by: Roberto Sassu Signed-off-by: Mimi Zohar Documentation/kernel-parameters.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5577857f8e26e9027271f10daf96361640907300 Author: Dan Carpenter Date: Tue Apr 7 12:22:11 2015 +0300 ima: cleanup ima_init_policy() a little It's a bit easier to read this if we split it up into two for loops. Signed-off-by: Dan Carpenter Signed-off-by: Mimi Zohar security/integrity/ima/ima_policy.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) commit 1b26a5e1932beb34c4213934d8faf02217fc40e4 Author: Maarten Lankhorst Date: Wed May 13 10:37:25 2015 +0200 drm/atomic: add drm_atomic_get_existing_*_state helpers There are cases where we want to test if a given object is part of the state, but don't want to add them if they're not. Signed-off-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_atomic.c | 18 +++++++--------- include/drm/drm_atomic.h | 50 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+), 10 deletions(-) commit f9be5f20115441488c8ef1391ef70b681135f0ad Author: Maarten Lankhorst Date: Wed May 13 09:56:01 2015 +0200 drm/core: get rid of -Iinclude/drm This results in a warning when building out of tree: "cc1: warning: include/drm: No such file or directory [enabled by default]" Most code already uses #include correctly, so fix the instances that don't. Reported-by: Ville Syrjälä Signed-off-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/Makefile | 2 -- drivers/gpu/drm/drm_flip_work.c | 4 ++-- 2 files changed, 2 insertions(+), 4 deletions(-) commit b588c92b66c52b6dca293ce554878e8af8fb58cb Author: Maarten Lankhorst Date: Wed May 13 09:56:00 2015 +0200 drm/i915: get rid of -Iinclude/drm This results in a warning when building out of tree: "cc1: warning: include/drm: No such file or directory [enabled by default]" Most code already uses #include correctly, so fix the instances that don't. Reported-by: Ville Syrjälä Signed-off-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/Makefile | 2 -- drivers/gpu/drm/i915/i915_gem_userptr.c | 4 ++-- 2 files changed, 2 insertions(+), 4 deletions(-) commit 4c18d3010bb722e6ab7d0b80fcf78dd6f95a5a15 Author: Daniel Vetter Date: Tue May 12 15:27:37 2015 +0200 drm/atomic-helpers: Export drm_atomic_helper_update_legacy_modeset_state This is useful for drivers which have their own modeset infrastructure but want to reuse most of the legacy state frobbery from the helpers. i915 wants this. v2: Add header declaration. Cc: Maarten Lankhorst Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_atomic_helper.c | 23 ++++++++++++++++++++--- include/drm/drm_atomic_helper.h | 4 ++++ 2 files changed, 24 insertions(+), 3 deletions(-) commit 3d51d2d2f52cb4a4d903f6a604027dc94c5bb9eb Author: Daniel Vetter Date: Tue May 12 15:21:06 2015 +0200 drm/atomic-helpers: Update vblank timestamping constants The atomic helpers don't call drm_calc_timestamping_constants, which is a regression compared to the crtc helpers. Fix this. Noticed while reviewing i915 atomic patches from Maarten. v2: Also check state->enable to avoid a warning in dmesg. Reported by Maarten. Cc: Maarten Lankhorst Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_atomic_helper.c | 4 ++++ 1 file changed, 4 insertions(+) commit 9abdffe286c1532a54d5aee31571d3029be4026c Author: Sumit Semwal Date: Tue May 5 14:56:15 2015 +0530 dma-buf: add ref counting for module as exporter Add reference counting on a kernel module that exports dma-buf and implements its operations. This prevents the module from being unloaded while DMABUF file is in use. The original patch [1] was submitted by Tomasz Stanislawski, but this is a simpler way to do it. v3: call module_put() as late as possible, per gregkh's comment. v2: move owner to struct dma_buf, and use DEFINE_DMA_BUF_EXPORT_INFO macro to simplify the change. Acked-by: Greg Kroah-Hartman Signed-off-by: Sumit Semwal [1]: https://lkml.org/lkml/2012/8/8/163 drivers/dma-buf/dma-buf.c | 10 +++++++++- include/linux/dma-buf.h | 10 ++++++++-- 2 files changed, 17 insertions(+), 3 deletions(-) commit a22e5f579b98f16e24b7184d01c35de26eb5a7f7 Author: Thomas Gleixner Date: Wed May 13 10:54:25 2015 +0200 arch: Remove __ARCH_HAVE_CMPXCHG We removed the only user of this define in the rtmutex code. Get rid of it. Signed-off-by: Thomas Gleixner Cc: Sebastian Andrzej Siewior arch/alpha/include/asm/cmpxchg.h | 2 -- arch/avr32/include/asm/cmpxchg.h | 2 -- arch/hexagon/include/asm/cmpxchg.h | 1 - arch/ia64/include/uapi/asm/cmpxchg.h | 2 -- arch/m32r/include/asm/cmpxchg.h | 2 -- arch/m68k/include/asm/cmpxchg.h | 1 - arch/metag/include/asm/cmpxchg.h | 2 -- arch/mips/include/asm/cmpxchg.h | 2 -- arch/parisc/include/asm/cmpxchg.h | 2 -- arch/powerpc/include/asm/cmpxchg.h | 1 - arch/s390/include/asm/cmpxchg.h | 2 -- arch/score/include/asm/cmpxchg.h | 2 -- arch/sh/include/asm/cmpxchg.h | 2 -- arch/sparc/include/asm/cmpxchg_32.h | 1 - arch/sparc/include/asm/cmpxchg_64.h | 2 -- arch/tile/include/asm/atomic_64.h | 3 --- arch/x86/include/asm/cmpxchg.h | 2 -- 17 files changed, 31 deletions(-) commit cede88418b385b50f6841e4b2f1586888b8ab924 Author: Sebastian Andrzej Siewior Date: Wed Feb 25 18:56:13 2015 +0100 locking/rtmutex: Drop usage of __HAVE_ARCH_CMPXCHG The rtmutex code is the only user of __HAVE_ARCH_CMPXCHG and we have a few other user of cmpxchg() which do not care about __HAVE_ARCH_CMPXCHG. This define was first introduced in 23f78d4a0 ("[PATCH] pi-futex: rt mutex core") which is v2.6.18. The generic cmpxchg was introduced later in 068fbad288 ("Add cmpxchg_local to asm-generic for per cpu atomic operations") which is v2.6.25. Back then something was required to get rtmutex working with the fast path on architectures without cmpxchg and this seems to be the result. It popped up recently on rt-users because ARM (v6+) does not define __HAVE_ARCH_CMPXCHG (even that it implements it) which results in slower locking performance in the fast path. To put some numbers on it: preempt -RT, am335x, 10 loops of 100000 invocations of rt_spin_lock() + rt_spin_unlock() (time "total" is the average of the 10 loops for the 100000 invocations, "loop" is "total / 100000 * 1000"): cmpxchg | slowpath used || cmpxchg used | total | loop || total | loop --------|-----------|-------||------------|------- ARMv6 | 9129.4 us | 91 ns || 3311.9 us | 33 ns generic | 9360.2 us | 94 ns || 10834.6 us | 108 ns ----------------------------||-------------------- Forcing it to generic cmpxchg() made things worse for the slowpath and even worse in cmpxchg() path. It boils down to 14ns more per lock+unlock in a cache hot loop so it might not be that much in real world. The last test was a substitute for pre ARMv6 machine but then I was able to perform the comparison on imx28 which is ARMv5 and therefore is always is using the generic cmpxchg implementation. And the numbers: | total | loop -------- |----------- |-------- slowpath | 263937.2 us | 2639 ns cmpxchg | 16934.2 us | 169 ns -------------------------------- The numbers are larger since the machine is slower in general. However, letting rtmutex use cmpxchg() instead the slowpath seem to improve things. Since from the ARM (tested on am335x + imx28) point of view always using cmpxchg() in rt_mutex_lock() + rt_mutex_unlock() makes sense I would drop the define. Signed-off-by: Sebastian Andrzej Siewior Cc: Arnd Bergmann Cc: Peter Zijlstra Cc: will.deacon@arm.com Cc: linux-arm-kernel@lists.infradead.org Link: http://lkml.kernel.org/r/20150225175613.GE6823@linutronix.de Signed-off-by: Thomas Gleixner include/asm-generic/cmpxchg.h | 3 --- kernel/locking/rtmutex.c | 6 +++--- 2 files changed, 3 insertions(+), 6 deletions(-) commit 63781394c540dd9e666a6b21d70b64dd52bce76e Author: Axel Lin Date: Mon May 11 17:02:58 2015 +0800 genirq: devres: Fix testing return value of request_any_context_irq() request_any_context_irq() returns a negative value on failure. It returns either IRQC_IS_HARDIRQ or IRQC_IS_NESTED on success. So fix testing return value of request_any_context_irq(). Also fixup the return value of devm_request_any_context_irq() to make it consistent with request_any_context_irq(). Fixes: 0668d3065128 ("genirq: Add devm_request_any_context_irq()") Signed-off-by: Axel Lin Reviewed-by: Stephen Boyd Cc: stable@vger.kernel.org Link: http://lkml.kernel.org/r/1431334978.17783.4.camel@ingics.com Signed-off-by: Thomas Gleixner kernel/irq/devres.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 56439ab0e3ba2e62fe824f879ebea980f6a0e072 Author: Lee Jones Date: Tue May 12 14:51:00 2015 +0200 ARM: STi: Ensure requested STi's SysCfg Controlled IRQs are enabled at boot This driver is used to enable System Configuration Register controlled External, CTI (Core Sight), PMU (Performance Management), and PL310 L2 Cache IRQs prior to use. Signed-off-by: Lee Jones Signed-off-by: Maxime Coquelin arch/arm/mach-sti/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 107dea0c2b393bc5b45f23ddb2b154f38489f46c Author: Lee Jones Date: Tue May 12 14:51:00 2015 +0200 ARM: STi: STiH407: Enable PMU IRQs This driver is used to enable System Configuration Register controlled External, CTI (Core Sight), PMU (Performance Management), and PL310 L2 Cache IRQs prior to use. Here we are enabling PMU IRQs on both channels. Signed-off-by: Lee Jones Signed-off-by: Maxime Coquelin arch/arm/boot/dts/stih407-family.dtsi | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 00133b915396a1d2f321a3266198b2e56fa801fc Author: Lee Jones Date: Tue May 12 14:51:00 2015 +0200 ARM: STi: STiH407: Enable Cortex-A9 PMU support This is ARM's generic Performance Monitoring Unit. Signed-off-by: Lee Jones Signed-off-by: Maxime Coquelin arch/arm/boot/dts/stih407-family.dtsi | 6 ++++++ 1 file changed, 6 insertions(+) commit 3c7dd7ce4898c6f0e2c3de9add93ddf96cd32cbe Author: Lee Jones Date: Tue May 12 14:51:00 2015 +0200 ARM: STi: STiH416: Enable PMU IRQs This driver is used to enable System Configuration Register controlled External, CTI (Core Sight), PMU (Performance Management), and PL310 L2 Cache IRQs prior to use. Here we are enabling PMU IRQs on both channels. Signed-off-by: Lee Jones Signed-off-by: Maxime Coquelin arch/arm/boot/dts/stih416.dtsi | 10 ++++++++++ 1 file changed, 10 insertions(+) commit c2808eeb28b1a732cd2f5805af2406c8f1c38740 Author: Lee Jones Date: Tue May 12 14:51:00 2015 +0200 ARM: STi: STiH416: Enable Cortex-A9 PMU support This is ARM's generic Performance Monitoring Unit. Signed-off-by: Lee Jones Signed-off-by: Maxime Coquelin arch/arm/boot/dts/stih416.dtsi | 6 ++++++ 1 file changed, 6 insertions(+) commit fb54eb10afd646177ffcab6e86ef0e56e48cae86 Author: Lee Jones Date: Tue May 12 14:51:00 2015 +0200 ARM: STi: STiH416: Add Restart support for STiH416 Signed-off-by: Lee Jones Signed-off-by: Maxime Coquelin arch/arm/boot/dts/stih416.dtsi | 6 ++++++ 1 file changed, 6 insertions(+) commit 48f3fe6b1ee26e44781974aacba96b4eba003b73 Author: Lee Jones Date: Tue May 12 14:51:00 2015 +0200 ARM: STi: STiH407: Add Restart support for STiH407 Signed-off-by: Lee Jones Signed-off-by: Maxime Coquelin arch/arm/boot/dts/stih407-family.dtsi | 6 ++++++ 1 file changed, 6 insertions(+) commit bc7dbcd08e6e450e37e1caa1e86f7205c6f32016 Author: Lee Jones Date: Tue May 12 14:51:00 2015 +0200 ARM: STi: STiH416-b2020e: Enable PWM on the B2020 Rev-E All the infrastructure is now in place for ST's PWM controller. This patch takes the final step and enables the IP on the 2020 Rev-E development platform. Signed-off-by: Ajit Pal Singh Signed-off-by: Lee Jones Signed-off-by: Maxime Coquelin arch/arm/boot/dts/stih416-b2020e.dts | 10 ++++++++++ 1 file changed, 10 insertions(+) commit c66b2969758061b8107764de9809c1a1c4fd100d Author: Lee Jones Date: Tue May 12 14:51:00 2015 +0200 ARM: STi: STiH416: Add DT nodes for PWM Supply top level nodes for the STiH416 based development boards. The Pinctrl configuration has already been applied, so the only missing piece of the DT puzzle is for a board's DTB to enable the nodes. Signed-off-by: Ajit Pal Singh Signed-off-by: Lee Jones Signed-off-by: Maxime Coquelin arch/arm/boot/dts/stih416.dtsi | 44 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) commit 9723bac00bb71475ff96e1b1252e5c5cff3e116b Author: Lee Jones Date: Tue May 12 14:51:00 2015 +0200 ARM: STi: STiH416: Add Pinctrl settings for PWM Supply the Pinctrl configuration to enable PWM{0,1} lines on STiH416 based development boards. Signed-off-by: Ajit Pal Singh Signed-off-by: Lee Jones Signed-off-by: Maxime Coquelin arch/arm/boot/dts/stih416-pinctrl.dtsi | 50 ++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) commit 416ef034cbc5280aab16a64cbb1116c588cd02b4 Author: Lee Jones Date: Tue May 12 14:51:00 2015 +0200 ARM: STi: STiH407: Add DT nodes for for PWM Supply top level nodes for the STiH407 based development boards. The Pinctrl configuration has already been applied, so the only missing piece of the DT puzzle is for a board's DTB to enable the nodes. Signed-off-by: Ajit Pal Singh Signed-off-by: Lee Jones Signed-off-by: Maxime Coquelin arch/arm/boot/dts/stih407.dtsi | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) commit 845c877009cf014b971aab7f54613f9185a824b0 Author: Mika Westerberg Date: Wed May 6 13:29:08 2015 +0300 i2c / ACPI: Assign IRQ for devices that have GpioInt automatically Following what DT already does. If the device does not have ACPI Interrupt resource but instead it has one or more GpioInt resources listed below it, we take the first GpioInt resource, convert it to suitable Linux IRQ number and pass it to the driver instead. This makes drivers simpler because the don't need to care about GPIOs at all if only thing they need is interrupt. Signed-off-by: Mika Westerberg Acked-by: Wolfram Sang Signed-off-by: Linus Walleij drivers/i2c/i2c-core.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit dab472eb931bc2916fa779e56deccd0ec319cf5b Author: Mika Westerberg Date: Wed May 6 13:29:07 2015 +0300 i2c / ACPI: Use 0 to indicate that device does not have interrupt assigned This is the convention used in most parts of the kernel including DT counterpart of I2C slave enumeration. To make things consistent do the same for ACPI I2C slave enumeration path as well. Signed-off-by: Mika Westerberg Acked-by: Wolfram Sang Signed-off-by: Linus Walleij drivers/i2c/i2c-core.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 8864afaa635be099c5c73a2f0d640a12e58f1d14 Author: Johan Hovold Date: Tue May 12 15:20:25 2015 +0200 gpio: dln2: fix build breakage The dln2 driver was initialising a gpiolib private field, which is now gone. Reported-by: kbuild test robot Signed-off-by: Johan Hovold Acked-by: Alexandre Courbot Signed-off-by: Linus Walleij drivers/gpio/gpio-dln2.c | 1 - 1 file changed, 1 deletion(-) commit 7c53fcb39fddb59a9e32c10e96133049ed90930b Author: Peter Oberparleiter Date: Mon May 11 13:08:05 2015 +0200 s390/dasd: Enable automatic loading of dasd_diag_mod Enabling a DASD that was configured to use the DIAG250 access method while the corresponding kernel module dasd_diag_mod has not been loaded fails with an error message. To fix this, users need to manually load the dasd_diag_mod module. This procedure can be simplified by automatically loading the dasd_diag_mod from within the kernel when a DASD configured for DIAG250 is set online. Signed-off-by: Peter Oberparleiter Signed-off-by: Martin Schwidefsky drivers/s390/block/dasd.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit 78335a30e0ea2ac79db5a9915fdf6edd9e8ded9b Author: David Hildenbrand Date: Wed May 6 09:17:51 2015 +0200 s390/sclp: move sclp_facilities into "struct sclp" Let's also move the facilities into the sclp struct, so we can avoid another separate external variable. Acked-by: Martin Schwidefsky Signed-off-by: David Hildenbrand Signed-off-by: Martin Schwidefsky arch/s390/include/asm/sclp.h | 1 + drivers/s390/char/sclp.c | 2 +- drivers/s390/char/sclp.h | 12 +++++------- drivers/s390/char/sclp_cmd.c | 2 +- drivers/s390/char/sclp_early.c | 3 +-- 5 files changed, 9 insertions(+), 11 deletions(-) commit 3a9f3fe69eab40d9de948230a6789bd7ea68d5e9 Author: David Hildenbrand Date: Wed May 6 13:19:29 2015 +0200 s390/sclp: get rid of sclp_get_mtid() and sclp_get_mtid_max() As all relevant sclp data is now directly accessible, let's move the logic of these two functions to the single caller. Acked-by: Martin Schwidefsky Signed-off-by: David Hildenbrand Signed-off-by: Martin Schwidefsky arch/s390/include/asm/sclp.h | 2 -- arch/s390/kernel/smp.c | 5 +++-- drivers/s390/char/sclp_early.c | 12 ------------ 3 files changed, 3 insertions(+), 16 deletions(-) commit 37c5f6c86cf5cda66c71c3bb1672e3b09d81c6da Author: David Hildenbrand Date: Wed May 6 13:18:59 2015 +0200 s390/sclp: unify basic sclp access by exposing "struct sclp" Let's unify basic access to sclp fields by storing the data in an external struct in asm/sclp.h. The values can now directly be accessed by other components, so there is no need for most accessor functions and external variables anymore. The mtid, mtid_max and facility part will be cleaned up separately. Acked-by: Martin Schwidefsky Signed-off-by: David Hildenbrand Signed-off-by: Martin Schwidefsky arch/s390/hypfs/hypfs_sprp.c | 4 +- arch/s390/include/asm/sclp.h | 31 +++++++----- arch/s390/kernel/crash_dump.c | 8 ++-- arch/s390/kernel/setup.c | 10 ++-- arch/s390/kernel/smp.c | 4 +- arch/s390/kvm/interrupt.c | 4 +- arch/s390/kvm/kvm-s390.c | 8 ++-- arch/s390/mm/init.c | 2 +- arch/s390/mm/mem_detect.c | 4 +- drivers/s390/char/sclp.h | 3 -- drivers/s390/char/sclp_cmd.c | 25 ++++------ drivers/s390/char/sclp_early.c | 105 +++++++++-------------------------------- drivers/s390/char/zcore.c | 10 ++-- drivers/s390/kvm/kvm_virtio.c | 4 +- 14 files changed, 79 insertions(+), 143 deletions(-) commit 9747bc47b340228a007efcc262c0bc4d2e94116d Author: David Hildenbrand Date: Wed May 6 09:29:53 2015 +0200 s390/sclp: prepare smp_fill_possible_mask for global "struct sclp" We need to rename sclp -> sclp_max to prepare for using the global variable "sclp" for sclp access later in this function. Acked-by: Martin Schwidefsky Signed-off-by: David Hildenbrand Signed-off-by: Martin Schwidefsky arch/s390/kernel/smp.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 486ca539caa082c7f2929c207af1b3ce2a304489 Author: Jiang Liu Date: Thu May 7 10:53:56 2015 +0800 x86, irq: Allocate CPU vectors from device local CPUs if possible On NUMA systems, an IO device may be associated with a NUMA node. It may improve IO performance to allocate resources, such as memory and interrupts, from device local node. This patch introduces a mechanism to support CPU vector allocation policies. It tries to allocate CPU vectors from CPUs on device local node first, and then fallback to all online(global) CPUs. This mechanism may be used to support NumaConnect systems to allocate CPU vectors from device local node. Signed-off-by: Jiang Liu Tested-by: Daniel J Blueman Cc: Konrad Rzeszutek Wilk Cc: Tony Luck Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Link: http://lkml.kernel.org/r/1430967244-28905-1-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/kernel/apic/vector.c | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) commit 4a00c95dcdba45c9592af2e908c0816fd54f5544 Author: Sergey Senozhatsky Date: Mon May 11 18:56:49 2015 +0900 x86/hpet: Pass proper pointer to irq_alloc_info Fix the following oops: hpet_msi_get_hwirq+0x1f/0x27 msi_domain_alloc+0x35/0xfe ? trace_hardirqs_on_caller+0x16c/0x188 irq_domain_alloc_irqs_recursive+0x51/0x95 __irq_domain_alloc_irqs+0x151/0x223 hpet_assign_irq+0x5d/0x68 hpet_msi_capability_lookup+0x121/0x1cb ? hpet_enable+0x2b4/0x2b4 hpet_late_init+0x5f/0xf2 ? hpet_enable+0x2b4/0x2b4 do_one_initcall+0x184/0x199 kernel_init_freeable+0x1af/0x237 ? rest_init+0x13a/0x13a kernel_init+0xe/0xd4 ret_from_fork+0x3f/0x70 ? rest_init+0x13a/0x13a Since 3cb96f0c9733 ('x86/hpet: Enhance HPET IRQ to support hierarchical irqdomains') hpet_msi_capability_lookup() uses hpet_assign_irq(). The latter initializes irq_alloc_info on stack, but passes a NULL pointer to irq_domain_alloc_irqs(), which causes a NULL pointer dereference later in hpet_msi_get_hwirq(). Pass the pointer to the irq_alloc_info irq_domain_alloc_irqs(). Fixes: 3cb96f0c9733 'x86/hpet: Enhance HPET IRQ to support hierarchical irqdomains' Signed-off-by: Sergey Senozhatsky Reviewed-by: Jiang Liu Cc: Sergey Senozhatsky Link: http://lkml.kernel.org/r/20150512041444.GA1094@swordfish Signed-off-by: Thomas Gleixner arch/x86/kernel/apic/msi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 853b160aaafbe27d6304c8832bb7340d57c6b04e Author: Ingo Molnar Date: Wed May 13 08:40:49 2015 +0200 Revert f5d6a52f5111 ("x86/smpboot: Skip delays during SMP initialization similar to Xen") Huang Ying reported x86 boot hangs due to this commit. Turns out that the change, despite its changelog, does more than just change timeouts: it also changes the way we assert/deassert INIT via the APIC_DM_INIT IPI, in the x2apic case it skips the deassert step. This is historically fragile code and the patch did not improve it, so revert these changes. This commit: 1a744cb356c5 ("x86/smp/boot: Remove 10ms delay from cpu_up() on modern processors") independently removes the worst of the delays (the 10 msec delay). The remaining delays can be addressed one by one, combined with careful testing. Reported-by: Huang Ying Cc: Anthony Liguori Cc: Arjan van de Ven Cc: Borislav Petkov Cc: Gang Wei Cc: H. Peter Anvin Cc: Jan H. Schönherr Cc: Len Brown Cc: Linus Torvalds Cc: Thomas Gleixner Cc: Tim Deegan Link: http://lkml.kernel.org/r/1430732554-7294-1-git-send-email-jschoenh@amazon.de Signed-off-by: Ingo Molnar arch/x86/kernel/smpboot.c | 58 ++++++++++++++++++----------------------------- 1 file changed, 22 insertions(+), 36 deletions(-) commit f77ceb717d0955f1df20601683ea55675101bab6 Author: Wei Yang Date: Mon Apr 27 09:25:12 2015 +0800 powerpc/eeh: remove unused macro IS_BRIDGE Currently, the macro IS_BRIDGE is not used any where. This patch just removes it. Signed-off-by: Wei Yang Acked-by: Gavin Shan Signed-off-by: Michael Ellerman arch/powerpc/kernel/eeh.c | 2 -- 1 file changed, 2 deletions(-) commit e17866d5593dc6ea7bff9ee56751fae6c3f56223 Author: Wei Yang Date: Mon Apr 27 09:25:11 2015 +0800 powerpc/eeh: fix powernv_eeh_wait_state delay logic As the comment indicates, powernv_eeh_get_state() will inform EEH core to delay 1 second. This means the delay doesn't happen when powernv_eeh_get_state() returns. This patch moves the delay subtraction just before msleep(), which is the same logic in pseries_eeh_wait_state(). Signed-off-by: Wei Yang Acked-by: Gavin Shan Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/eeh-powernv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2ac3990cc36b1e42feca733b25254fb6dae15431 Author: Wei Yang Date: Mon Apr 27 09:25:10 2015 +0800 powerpc/eeh: fix comment for wait_state() To retrieve the PCI slot state, EEH driver would set a timeout for that. While current comment is not aligned to what the code does. This patch fixes those comments according to the code. Signed-off-by: Wei Yang Acked-by: Gavin Shan Signed-off-by: Michael Ellerman arch/powerpc/kernel/eeh_driver.c | 2 +- arch/powerpc/platforms/powernv/eeh-powernv.c | 2 +- arch/powerpc/platforms/pseries/eeh_pseries.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 3721352990ba5eafa7e92a1c9cf86af3a46de151 Author: Wei Yang Date: Mon Apr 27 09:25:09 2015 +0800 powerpc/eeh: fix start/end/flags type in struct pci_io_addr_range{} struct pci_io_addr_range{} stores the information of pci resources. It would be better to keep these related fields have the same type as in struct resource{}. This patch fixes the start/end/flags type in struct pci_io_addr_range{} to have the same type as in struct resource{}. Signed-off-by: Wei Yang Acked-by: Gavin Shan Signed-off-by: Michael Ellerman arch/powerpc/kernel/eeh_cache.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 9449c3cd90472141cf081af88181a56163ff7132 Author: Ying Xue Date: Tue May 12 18:29:44 2015 +0800 net: make skb_dst_pop routine static As xfrm_output_one() is the only caller of skb_dst_pop(), we should make skb_dst_pop() localized. Signed-off-by: Ying Xue Signed-off-by: David S. Miller include/net/dst.h | 12 ------------ net/xfrm/xfrm_output.c | 12 ++++++++++++ 2 files changed, 12 insertions(+), 12 deletions(-) commit cffc642d93f9324a06dfbd7da9af29652952a248 Author: Michael Holzheu Date: Mon May 11 22:22:44 2015 -0700 test_bpf: add 173 new testcases for eBPF add an exhaustive set of eBPF tests bringing total to: test_bpf: Summary: 233 PASSED, 0 FAILED, [0/226 JIT'ed] Signed-off-by: Michael Holzheu Signed-off-by: Alexei Starovoitov Acked-by: Daniel Borkmann Signed-off-by: David S. Miller include/linux/filter.h | 10 + lib/test_bpf.c | 2192 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 2202 insertions(+) commit b88c06e36dcb9b4ae285f7821f62d68dc34b25d3 Author: Brenden Blanco Date: Mon May 11 21:25:51 2015 -0700 samples/bpf: fix in-source build of samples with clang in-source build of 'make samples/bpf/' was incorrectly using default compiler instead of invoking clang/llvm. out-of-source build was ok. Fixes: a80857822b0c ("samples: bpf: trivial eBPF program in C") Signed-off-by: Brenden Blanco Signed-off-by: Alexei Starovoitov Signed-off-by: David S. Miller samples/bpf/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1ecc7b7a5998eb8fc4e9f79979638e77436b0b0b Author: Hariprasad Shenai Date: Tue May 12 04:43:43 2015 +0530 cxgb4/cxgb4vf: Cleanup macros, add comments and add new MACROS Cleanup few MACROS left out in t4_hw.h to be consistent with the existing ones. Also replace few hardcoded values with MACROS. Also update comments for some code Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c | 2 +- drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 2 +- drivers/net/ethernet/chelsio/cxgb4/sge.c | 160 ++++++++++++--------- drivers/net/ethernet/chelsio/cxgb4/t4_hw.h | 34 +++-- drivers/net/ethernet/chelsio/cxgb4/t4_msg.h | 83 +++++++---- drivers/net/ethernet/chelsio/cxgb4/t4_values.h | 14 ++ drivers/net/ethernet/chelsio/cxgb4/t4fw_api.h | 1 + .../net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c | 13 +- drivers/net/ethernet/chelsio/cxgb4vf/sge.c | 73 +++++----- 9 files changed, 235 insertions(+), 147 deletions(-) commit 82fa3c776e5abba7ed6e4b4f4983d14731c37d6a Author: KY Srinivasan Date: Mon May 11 15:39:46 2015 -0700 hv_netvsc: Use the xmit_more skb flag to optimize signaling the host Based on the information given to this driver (via the xmit_more skb flag), we can defer signaling the host if more packets are on the way. This will help make the host more efficient since it can potentially process a larger batch of packets. Implement this optimization. Signed-off-by: K. Y. Srinivasan Signed-off-by: David S. Miller drivers/net/hyperv/netvsc.c | 43 +++++++++++++++++++++++++++---------------- 1 file changed, 27 insertions(+), 16 deletions(-) commit 9eea92226407e7a117ef1ceef45380ebd000a0e2 Author: Alexei Starovoitov Date: Mon May 11 15:19:48 2015 -0700 pktgen: fix packet generation pkt_gen->last_ok was not set properly, so after the first burst pktgen instead of allocating new packet, will reuse old one, advance eth_type_trans further, which would mean the stack will be seeing very short bogus packets. Fixes: 62f64aed622b ("pktgen: introduce xmit_mode ''") Signed-off-by: Alexei Starovoitov Acked-by: Jesper Dangaard Brouer Signed-off-by: David S. Miller net/core/pktgen.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit 147ef3e218eab03e84f165e8352728719f5d7be4 Merge: a202924 d063486 Author: David S. Miller Date: Tue May 12 23:08:47 2015 -0400 Merge branch 'systemport-irq-coalesce' Florian Fainelli says: ==================== net: systemport: interrupt coalescing support This patch series adds support for RX & TX interrupt coalescing in the systemport driver. ==================== Signed-off-by: David S. Miller commit d0634868d30ed2c511b45c63efe8eeb85c62c7f6 Author: Florian Fainelli Date: Mon May 11 15:12:42 2015 -0700 net: systemport: Implement RX coalescing control knobs Similarly to the TX path, allow the RX path to be configured with both 'rx-frames' and 'rx-usecs' coalescing parameters. Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bcmsysport.c | 27 +++++++++++++++++++++------ drivers/net/ethernet/broadcom/bcmsysport.h | 2 +- 2 files changed, 22 insertions(+), 7 deletions(-) commit b1a15e8643c444f9fc185d296e99424618ad1180 Author: Florian Fainelli Date: Mon May 11 15:12:41 2015 -0700 net: systemport: Implement TX coalescing control knobs Add the ability to configure both 'tx-frames' which controls how many frames are doing to trigger a single interrupt and 'tx-usecs' which dictates how long to wait before an interrupt should be services. Since our timer resolution is close to 8.192 us, we round up to the nearest value the 'tx-usecs' timeout value. Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bcmsysport.c | 48 ++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) commit a2029240e5836e73ebcc1a8ddb8c22d636f89c9a Author: Denys Vlasenko Date: Mon May 11 21:17:53 2015 +0200 net: deinline netif_tx_stop_all_queues(), remove WARN_ON in netif_tx_stop_queue() These functions compile to 60 bytes of machine code each. With this .config: http://busybox.net/~vda/kernel_config there are 617 calls of netif_tx_stop_queue() and 49 calls of netif_tx_stop_all_queues() in vmlinux. To fix this, remove WARN_ON in netif_tx_stop_queue() as suggested by davem, and deinline netif_tx_stop_all_queues(). Change in code size is about 20k: text data bss dec hex filename 82426986 22255416 20627456 125309858 77813a2 vmlinux.before 82406248 22255416 20627456 125289120 777c2a0 vmlinux gcc-4.7.2 still creates deinlined version of netif_tx_stop_queue sometimes: $ nm --size-sort vmlinux | grep netif_tx_stop_queue | wc -l 190 ffffffff81b558a8 : ffffffff81b558a8: 55 push %rbp ffffffff81b558a9: 48 89 e5 mov %rsp,%rbp ffffffff81b558ac: f0 80 8f e0 01 00 00 lock orb $0x1,0x1e0(%rdi) ffffffff81b558b3: 01 ffffffff81b558b4: 5d pop %rbp ffffffff81b558b5: c3 retq This needs additional fixing. Signed-off-by: Denys Vlasenko CC: Alexei Starovoitov CC: Alexander Duyck CC: Joe Perches CC: David S. Miller CC: Jiri Pirko CC: linux-kernel@vger.kernel.org CC: netdev@vger.kernel.org CC: netfilter-devel@vger.kernel.org Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller include/linux/netdevice.h | 14 +------------- net/core/dev.c | 11 +++++++++++ 2 files changed, 12 insertions(+), 13 deletions(-) commit b5082083392224eca4c46abde908ab0e4210510c Author: Justin Cormack Date: Mon May 11 20:00:10 2015 +0100 macvtap add missing ioctls - fix wrapping The macvtap driver tries to emulate all the ioctls supported by a normal tun/tap driver, however it was missing the generic SIOCGIFHWADDR and SIOCSIFHWADDR ioctls to get and set the mac address that are supported by tun/tap. This patch adds these. Signed-off-by: Justin Cormack Signed-off-by: David S. Miller drivers/net/macvtap.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) commit ca7fc7e962fa067ba31f76a6e5828537394f6481 Author: Dan Streetman Date: Mon May 11 18:53:36 2015 -0400 lib: correct 842 decompress for 32 bit Avoid 64 bit mod operation, which won't work on 32 bit systems. Simple subtraction can be used instead in this case. Reported-By: Fengguang Wu Signed-off-by: Dan Streetman Signed-off-by: Herbert Xu lib/842/842_decompress.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 42e8b0d7fed0628e21ec93e8cd547aef616e68f7 Author: Horia Geant? Date: Mon May 11 20:04:56 2015 +0300 crypto: talitos - static code checker fixes -change req_ctx->nbuf from u64 to unsigned int to silence checker warnings; this is safe since nbuf value is <= HASH_MAX_BLOCK_SIZE -remove unused value read from TALITOS_CCPSR; there is no requirement to read upper 32b before reading lower 32b of a 64b register; SEC RM mentions: "reads can always be done by byte, word, or dword" -remove unused return value of sg_to_link_tbl() -change "len" parameter of map_single_talitos_ptr() and to_talitos_ptr_len() to unsigned int; later, cpu_to_be16 will __force downcast the value to unsigned short without any checker warning Signed-off-by: Horia Geanta Signed-off-by: Herbert Xu drivers/crypto/talitos.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) commit bde9079f3cd5e4275be2169cf7b0c74bfb464f78 Author: Horia Geant? Date: Tue May 12 11:28:05 2015 +0300 crypto: talitos - avoid out of bound scatterlist iterator Check return value of scatterlist_sg_next(), i.e. don't rely solely on number of bytes to be processed or number of scatterlist entries. Signed-off-by: Horia Geanta Signed-off-by: Herbert Xu drivers/crypto/talitos.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 69d9cd8c592f1abce820dbce7181bbbf6812cfbd Author: Horia Geant? Date: Mon May 11 20:04:49 2015 +0300 Revert "crypto: talitos - convert to use be16_add_cpu()" This reverts commit 7291a932c6e27d9768e374e9d648086636daf61c. The conversion to be16_add_cpu() is incorrect in case cryptlen is negative due to premature (i.e. before addition / subtraction) implicit conversion of cryptlen (int -> u16) leading to sign loss. Cc: # 3.10+ Cc: Wei Yongjun Signed-off-by: Horia Geanta Signed-off-by: Herbert Xu drivers/crypto/talitos.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 5fa7dadc898567ce14d6d6d427e7bd8ce6eb5d39 Author: Horia Geant? Date: Mon May 11 20:03:24 2015 +0300 crypto: talitos - avoid memleak in talitos_alg_alloc() Cc: # 3.2+ Fixes: 1d11911a8c57 ("crypto: talitos - fix warning: 'alg' may be used uninitialized in this function") Signed-off-by: Horia Geanta Signed-off-by: Herbert Xu drivers/crypto/talitos.c | 1 + 1 file changed, 1 insertion(+) commit f7ead7b47a758bbee6fdc66f95f27fdb866e5e9d Author: Dan Streetman Date: Mon May 11 07:22:35 2015 -0400 lib: make lib/842 decompress functions static Make the do_index and do_op functions static. They are used only internally by the 842 decompression function, and should be static. Reported-By: Fengguang Wu Signed-off-by: Fengguang Wu Signed-off-by: Dan Streetman Signed-off-by: Herbert Xu lib/842/842_decompress.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 608f37d0f83e4359f48121949778bf912cd56800 Author: Dan Carpenter Date: Mon May 11 13:10:09 2015 +0300 crypto: talitos - fix size calculation in talitos_edesc_alloc() The + operation has higher precedence than ?: so we need parentheses here. Otherwise we may end up allocating a max of only one "cryptlen" instead of two. Fixes: 6f65f6ac5fb3 ('crypto: talitos - implement scatter/gather copy for SEC1') Signed-off-by: Dan Carpenter Acked-by: Christophe Leroy Signed-off-by: Herbert Xu drivers/crypto/talitos.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5d1d65f8bea6de3d9c2c60fdfdd2da02da5ea672 Author: Herbert Xu Date: Mon May 11 17:48:12 2015 +0800 crypto: aead - Convert top level interface to new style This patch converts the top-level aead interface to the new style. All user-level AEAD interface code have been moved into crypto/aead.h. The allocation/free functions have switched over to the new way of allocating tfms. This patch also removes the double indrection on setkey so the indirection now exists only at the alg level. Apart from these there are no user-visible changes. Signed-off-by: Herbert Xu crypto/aead.c | 161 +++++---------- include/crypto/aead.h | 436 +++++++++++++++++++++++++++++++++++++++- include/crypto/algapi.h | 33 +-- include/crypto/internal/aead.h | 38 +++- include/linux/crypto.h | 442 +---------------------------------------- 5 files changed, 516 insertions(+), 594 deletions(-) commit 53033d4d36b0299ef02e28155913414ec1089aac Author: Herbert Xu Date: Mon May 11 17:48:11 2015 +0800 crypto: cryptd - Add missing aead.h inclusion cryptd.h needs to include crypto/aead.h because it uses crypto_aead. Signed-off-by: Herbert Xu include/crypto/cryptd.h | 1 + 1 file changed, 1 insertion(+) commit 97cacb9f7a1e7502e7e8e7964b00dc191be565eb Author: Herbert Xu Date: Mon May 11 17:48:09 2015 +0800 crypto: qat - Use crypto_aead_set_reqsize helper This patch uses the crypto_aead_set_reqsize helper to avoid directly touching the internals of aead. Signed-off-by: Herbert Xu drivers/crypto/qat/qat_common/qat_algs.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 9611ef63c27709f57639ab49fe3977c5947038a5 Author: Herbert Xu Date: Mon May 11 17:48:08 2015 +0800 crypto: picoxcell - Use crypto_aead_set_reqsize helper This patch uses the crypto_aead_set_reqsize helper to avoid directly touching the internals of aead. Signed-off-by: Herbert Xu drivers/crypto/picoxcell_crypto.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 71b311d6108ecc69bf6034e03cb6bdf09335dd2c Author: Herbert Xu Date: Mon May 11 17:48:06 2015 +0800 crypto: ixp4xx - Use crypto_aead_set_reqsize helper This patch uses the crypto_aead_set_reqsize helper to avoid directly touching the internals of aead. Signed-off-by: Herbert Xu drivers/crypto/ixp4xx_crypto.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit a5a2b4da012d3ed92476b169a66e17507abe1a48 Author: Herbert Xu Date: Mon May 11 17:48:04 2015 +0800 crypto: aesni - Use crypto_aead_set_reqsize helper This patch uses the crypto_aead_set_reqsize helper to avoid directly touching the internals of aead. Signed-off-by: Herbert Xu arch/x86/crypto/aesni-intel_glue.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit ba6d8e395800e37bb0e6234f2bd7b3fe343ab8bb Author: Herbert Xu Date: Mon May 11 17:48:03 2015 +0800 crypto: seqiv - Use crypto_aead_set_reqsize helper This patch uses the crypto_aead_set_reqsize helper to avoid directly touching the internals of aead. Signed-off-by: Herbert Xu crypto/seqiv.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit fd0de97890d88b979c2731bd5b70d504175fc2ed Author: Herbert Xu Date: Mon May 11 17:48:01 2015 +0800 crypto: pcrypt - Use crypto_aead_set_reqsize helper This patch uses the crypto_aead_set_reqsize helper to avoid directly touching the internals of aead. Signed-off-by: Herbert Xu crypto/pcrypt.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 5d72336f1b2c8516828c4c7748bdd3ec8a4938da Author: Herbert Xu Date: Mon May 11 17:47:59 2015 +0800 crypto: gcm - Use crypto_aead_set_reqsize helper This patch uses the crypto_aead_set_reqsize helper to avoid directly touching the internals of aead. Signed-off-by: Herbert Xu crypto/gcm.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) commit 529a0b625b68d7db1ca1e8540e3fb034f674a166 Author: Herbert Xu Date: Mon May 11 17:47:58 2015 +0800 crypto: cryptd - Use crypto_aead_set_reqsize helper This patch uses the crypto_aead_set_reqsize helper to avoid directly touching the internals of aead. Signed-off-by: Herbert Xu crypto/cryptd.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 2c221ad39424cf8c72abe42a7f989a8d38d181d2 Author: Herbert Xu Date: Mon May 11 17:47:56 2015 +0800 crypto: ccm - Use crypto_aead_set_reqsize helper This patch uses the crypto_aead_set_reqsize helper to avoid directly touching the internals of aead. Signed-off-by: Herbert Xu crypto/ccm.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 6650d09b3a0fea2c1f03f28f7a49309050529718 Author: Herbert Xu Date: Mon May 11 17:47:55 2015 +0800 crypto: authencesn - Use crypto_aead_set_reqsize helper This patch uses the crypto_aead_set_reqsize helper to avoid directly touching the internals of aead. Signed-off-by: Herbert Xu crypto/authencesn.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) commit 25df91943018ca173fcd77998096b3621e987499 Author: Herbert Xu Date: Mon May 11 17:47:53 2015 +0800 crypto: authenc - Use crypto_aead_set_reqsize helper This patch uses the crypto_aead_set_reqsize helper to avoid directly touching the internals of aead. Signed-off-by: Herbert Xu crypto/authenc.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) commit 21b7013414db320be418d5f28f72af5c0665dc18 Author: Herbert Xu Date: Mon May 11 17:47:52 2015 +0800 crypto: aead - Add crypto_aead_set_reqsize helper This patch adds the helper crypto_aead_set_reqsize so that people don't have to directly access the aead internals to set the reqsize. Signed-off-by: Herbert Xu include/crypto/internal/aead.h | 6 ++++++ 1 file changed, 6 insertions(+) commit add86d55768e5e301be38b2961df35f26f9d5fbe Author: Herbert Xu Date: Mon May 11 17:47:50 2015 +0800 crypto: caam - Remove unnecessary reference to crt_aead crt_aead is an internal implementation detail and must not be used outside of the crypto API itself. This patch replaces the unnecessary uses of crt_aead with crypto_aead_ivsize. Signed-off-by: Herbert Xu drivers/crypto/caam/caamalg.c | 96 +++++++++++++++++++++---------------------- 1 file changed, 48 insertions(+), 48 deletions(-) commit d1a2fd500cc7c90504df52017edbb9f1f7763449 Author: Herbert Xu Date: Mon May 11 17:47:49 2015 +0800 crypto: blkcipher - Include crypto/aead.h All users of AEAD should include crypto/aead.h instead of include/linux/crypto.h. Signed-off-by: Herbert Xu crypto/blkcipher.c | 1 + 1 file changed, 1 insertion(+) commit e98014abd84884ba0c6db1320de87fac1529b47e Author: Herbert Xu Date: Mon May 11 17:47:48 2015 +0800 crypto: talitos - Include internal/aead.h All AEAD implementations must include internal/aead.h in order to access required helpers. Signed-off-by: Herbert Xu drivers/crypto/talitos.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0ed6264b60fc5b59dc0dc26a29139d9dcd759a67 Author: Herbert Xu Date: Mon May 11 17:47:46 2015 +0800 crypto: qat - Include internal/aead.h All AEAD implementations must include internal/aead.h in order to access required helpers. Signed-off-by: Herbert Xu drivers/crypto/qat/qat_common/qat_algs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2d78db0935d183fcc1be02fe76d86e1594d99195 Author: Herbert Xu Date: Mon May 11 17:47:45 2015 +0800 crypto: nx - Include internal/aead.h All AEAD implementations must include internal/aead.h in order to access required helpers. Signed-off-by: Herbert Xu drivers/crypto/picoxcell_crypto.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5290b4283098820a3d28cd1bf72730a9bdeef031 Author: Herbert Xu Date: Mon May 11 17:47:44 2015 +0800 crypto: ixp4xx - Include internal/aead.h All AEAD implementations must include internal/aead.h in order to access required helpers. Signed-off-by: Herbert Xu drivers/crypto/ixp4xx_crypto.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b579d42672b41dc7f1641df7790dfd906fee7aa8 Author: Herbert Xu Date: Mon May 11 17:47:43 2015 +0800 crypto: caam - Include internal/aead.h All AEAD implementations must include internal/aead.h in order to access required helpers. Signed-off-by: Herbert Xu drivers/crypto/caam/compat.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7fb2a4bdce6b609cf8df44f409b0b853ff39b585 Author: Herbert Xu Date: Mon May 11 17:47:42 2015 +0800 crypto: authencesn - Include internal/aead.h All AEAD implementations must include internal/aead.h in order to access required helpers. Signed-off-by: Herbert Xu crypto/authencesn.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 68acbf843c1c6f11e4e534b5df33517e8870b55a Author: Herbert Xu Date: Mon May 11 17:47:41 2015 +0800 crypto: authenc - Include internal/aead.h All AEAD implementations must include internal/aead.h in order to access required helpers. Signed-off-by: Herbert Xu crypto/authenc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d6ef2f198d4c9d95b77ee4918b97fc8a53c8a7b7 Author: Herbert Xu Date: Mon May 11 17:47:39 2015 +0800 crypto: api - Add crypto_grab_spawn primitive This patch adds a new primitive crypto_grab_spawn which is meant to replace crypto_init_spawn and crypto_init_spawn2. Under the new scheme the user no longer has to worry about reference counting the alg object before it is subsumed by the spawn. It is pretty much an exact copy of crypto_grab_aead. Prior to calling this function spawn->frontend and spawn->inst must have been set. Signed-off-by: Herbert Xu crypto/algapi.c | 16 ++++++++++++++++ include/crypto/algapi.h | 2 ++ 2 files changed, 18 insertions(+) commit bd1b40fe584e64f40fbb57e98dcfaf3b6e583642 Author: Brian Norris Date: Fri Mar 6 11:36:21 2015 -0800 Documentation: devicetree: add binding doc for Broadcom NAND controller Signed-off-by: Brian Norris Reviewed-by: Florian Fainelli .../devicetree/bindings/mtd/brcm,brcmnand.txt | 110 +++++++++++++++++++++ 1 file changed, 110 insertions(+) commit a62b70ddd13993e3706acf3021bf2680461195f4 Merge: a3eb95f 4ceec22 Author: David S. Miller Date: Tue May 12 18:43:56 2015 -0400 Merge branch 'switchdev_spring_cleanup' Scott Feldman says: ==================== switchdev: spring cleanup v7: Address review comments: - [Jiri] split the br_setlink and br_dellink reverts into their own patches - [Jiri] some parameter cleanup of rocker's memory allocators - [Jiri] pass trans mode as formal parameter rather than hanging off of rocker_port. v6: Address review comments: - [Jiri] split a couple of patches into one-logical-change per patch - [Joe Perches] revert checkpatch -f changes for wrapped lines with long symbols. v5: Address review comments: - [Jiri] include Jiri's s/swdev/switchdev rename patches up front. - [Jiri] squash some patches. Now setlink/dellink/getlink patches are in three parts: new implementation, convert drivers to new, delete old impl. - [Jiri] some minor variable renames - [Jiri] use BUG_ON rather than WARN when COMMIT phase fails when PREPARE phase said it was safe to come into the water. - [Simon] rocker: fix a few transaction prepare-commit cases that were wrong. This was the bulk of the changes in v5. v4: Well, it was a lot of work, but now prepare-commit transaction model is how davem advises: if prepare fails, abort the transaction. The driver must do resource reservations up front in prepare phase and return those resources if aborting. Commit phase would use reserved resources. The good news is the driver code (for rocker) now handles resource allocation failures better by not leaving partially device or driver states. This is a side-effect of the prepare phase where state isn't modified; only validation of inputs and resource reservations happen in the prepare phase. Since we're supporting setting attrs and add objs across lower devs in the stacked case, we need to hold rtnl_lock (or ensure rtnl_lock is held) so lower devs don't move on us during the prepare-commit transaction. DSA driver code skips the prepare phase and goes straight for the commit phase since no up-front allocations are done and no device failures (that could be detected in the prepare phase) can happen. Remove NETIF_F_HW_SWITCH_OFFLOAD from rocker and the swdev_attr_set/get wrappers. DSA doesn't set NETIF_F_HW_SWITCH_OFFLOAD, so it can't be in swdev_attr_set/get. rocker doesn't need it; or rather can't support NETIF_F_HW_SWITCH_OFFLOAD being set/cleared at run-time after the device port is already up and offloading L2/L3. NETIF_F_HW_SWITCH_OFFLOAD is still left as a feature flag for drivers that can use it. Drop the renaming patch for netdev_switch_notifier. Other renames are a result of moving to the attr get/set or obj add/del model. Everything but the netdev_switch_notifier is still prefixed with "swdev_". v3: Move to two-phase prepare-commit transaction model for attr set and obj add. Driver gets a change in prepare phase to NACK transaction if lack of resources or support in device. v2: Address review comments: - [Jiri] squash a few related patches - [Roopa] don't remove NETIF_F_HW_SWITCH_OFFLOAD - [Roopa] address VLAN setlink/dellink - [Ronen] print warning is attr set revert fails Not address: - Using something other than "swdev_" prefix - Vendor extentions The patch set grew a bit to not only support port attr get/set but also add support for port obj add/del. Example of port objs are VLAN, FDB entries, and FIB entries. The VLAN support now allows the swdev driver to get VLAN ranges and flags like PVID and "untagged". Sridhar will be adding FDB obj support in follow-on patch. v1: The main theme of this patch set is to cleanup swdev in preparation for new features or fixes to be added soon. We have a pretty good idea now how to handle stacked drivers in swdev, but there where some loose ends. For example, if a set failed in the middle of walking the lower devs, we would leave the system in an undefined state...there was no way to recover back to the previous state. Speaking of sets, also recognize a pattern that most swdev API accesses are gets or sets of port attributes, so go ahead and make port attr get/set the central swdev API, and convert everything that is set-ish/get-ish to this new API. Features/fixes that should follow from this cleanup: - solve the duplicate pkt forwarding issue - get/set bridge attrs, like ageing_time, from/to device - get/set more bridge port attrs from/to device There are some rename cleanups tagging along at the end, to give swdev consistent naming. And finally, some much needed updates to the switchdev.txt documentation to hopefully capture the state-of-the-art of swdev. Hopefully, we can do a better job keeping this document up-to-date. Tested with rocker, of course, to make sure nothing functional broke. There are a couple minor tweaks to DSA code for getting switch ID and setting STP updates to use new API, but not expecting amy breakage there. ==================== Signed-off-by: David S. Miller commit 4ceec22d6d89360ff7ebbf53dd3ab4e29e3d8a09 Author: Scott Feldman Date: Sun May 10 09:48:09 2015 -0700 switchdev: bring documentation up-to-date Much need updated of switchdev documentation to cover what's been implmented to-date. There are some XXX comments in the text for unimplemented or broken items. I'd like to keep these in there (poor-man's TODO list) and update the document once each issue is resolved. Signed-off-by: Scott Feldman Acked-by: Jiri Pirko Signed-off-by: David S. Miller Documentation/networking/switchdev.txt | 414 ++++++++++++++++++++++++++++----- 1 file changed, 355 insertions(+), 59 deletions(-) commit 4725ceb9b70115b210a01d73318ce4430e4f0125 Author: Scott Feldman Date: Sun May 10 09:48:08 2015 -0700 rocker: make checkpatch -f clean Well almost clean: ignore the CHECKs for space after cast operator and some longer-than-80 char cases where for readability it's better to keep as-is. Signed-off-by: Scott Feldman Acked-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/rocker/rocker.c | 19 +++++++++---------- drivers/net/ethernet/rocker/rocker.h | 28 ++++++++++++++-------------- 2 files changed, 23 insertions(+), 24 deletions(-) commit 7889cbee8357aaed85898d028829dfb4f75bae2c Author: Scott Feldman Date: Sun May 10 09:48:07 2015 -0700 switchdev: remove NETIF_F_HW_SWITCH_OFFLOAD feature flag Roopa said remove the feature flag for this series and she'll work on bringing it back if needed at a later date. Signed-off-by: Scott Feldman Acked-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/bonding/bond_main.c | 5 +---- drivers/net/ethernet/rocker/rocker.c | 3 +-- drivers/net/team/team.c | 2 +- include/linux/netdev_features.h | 5 +---- net/core/ethtool.c | 1 - 5 files changed, 4 insertions(+), 12 deletions(-) commit 58c2cb16b116d7feace621bd6b647bbabacfa225 Author: Scott Feldman Date: Sun May 10 09:48:06 2015 -0700 switchdev: convert fib_ipv4_add/del over to switchdev_port_obj_add/del The IPv4 FIB ops convert nicely to the switchdev objs and we're left with only four switchdev ops: port get/set and port add/del. Other objs will follow, such as FDB. So go ahead and convert IPv4 FIB over to switchdev obj for consistency, anticipating more objs to come. Signed-off-by: Scott Feldman Acked-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/rocker/rocker.c | 41 +++++++++++------------------- include/net/switchdev.h | 21 ++++++++-------- net/switchdev/switchdev.c | 49 +++++++++++++++++++++++------------- 3 files changed, 55 insertions(+), 56 deletions(-) commit 85fdb956726ff2af609e2f6ea7be781e4db74a07 Author: Scott Feldman Date: Sun May 10 09:48:05 2015 -0700 switchdev: cut over to new switchdev_port_bridge_getlink Signed-off-by: Scott Feldman Acked-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/bonding/bond_main.c | 1 + drivers/net/ethernet/rocker/rocker.c | 15 +-------------- drivers/net/team/team.c | 1 + 3 files changed, 3 insertions(+), 14 deletions(-) commit 8793d0a664a8a2c5e18e929c1f995c784c105705 Author: Scott Feldman Date: Sun May 10 09:48:04 2015 -0700 switchdev: add new switchdev_port_bridge_getlink Like bridge_setlink, add switchdev wrapper to handle bridge_getlink and call into port driver to get port attrs. For now, only BR_LEARNING and BR_LEARNING_SYNC are returned. To add more, we'll probably want to break away from ndo_dflt_bridge_getlink() and build the netlink skb directly in the switchdev code. Signed-off-by: Scott Feldman Acked-by: Jiri Pirko Signed-off-by: David S. Miller include/net/switchdev.h | 10 ++++++++++ net/switchdev/switchdev.c | 28 ++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) commit 8508025c598bdee33d9afa153e9c00c7771e7d63 Author: Scott Feldman Date: Sun May 10 09:48:03 2015 -0700 bridge: revert br_dellink change back to original This is revert of: commit 68e331c785b8 ("bridge: offload bridge port attributes to switch asic if feature flag set") Restore br_dellink back to original and don't call into SELF port driver. rtnetlink.c:bridge_dellink() already does a call into port driver for SELF. bridge vlan add/del cmd defaults to MASTER. From man page for bridge vlan add/del cmd: self the vlan is configured on the specified physical device. Required if the device is the bridge device. master the vlan is configured on the software bridge (default). Signed-off-by: Scott Feldman Acked-by: Jiri Pirko Signed-off-by: David S. Miller net/bridge/br_netlink.c | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) commit 87a5dae59e7abaad911ab719caa5548dd6df5557 Author: Scott Feldman Date: Sun May 10 09:48:02 2015 -0700 switchdev: remove unused switchdev_port_bridge_dellink Now we can remove old wrappers for dellink. Signed-off-by: Scott Feldman Acked-by: Jiri Pirko Signed-off-by: David S. Miller include/net/switchdev.h | 15 --------------- net/switchdev/switchdev.c | 30 ------------------------------ 2 files changed, 45 deletions(-) commit 54ba5a0bbc739ae77a217d7340149e6f35934c4b Author: Scott Feldman Date: Sun May 10 09:48:01 2015 -0700 switchdev: cut over to new switchdev_port_bridge_dellink Rocker, bonding and team and switch over to the new switchdev_port_bridge_dellink to avoid duplicating code in each driver. Signed-off-by: Scott Feldman Acked-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/bonding/bond_main.c | 2 +- drivers/net/ethernet/rocker/rocker.c | 1 + drivers/net/team/team.c | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) commit 5c34e0221423aeabc0b085adc5fccda3f91e2c49 Author: Scott Feldman Date: Sun May 10 09:48:00 2015 -0700 switchdev: add new switchdev_port_bridge_dellink Same change as setlink. Provide the wrapper op for SELF ndo_bridge_dellink and call into the switchdev driver to delete afspec VLANs. Signed-off-by: Scott Feldman Acked-by: Jiri Pirko Signed-off-by: David S. Miller include/net/switchdev.h | 6 ++++++ net/switchdev/switchdev.c | 24 ++++++++++++------------ 2 files changed, 18 insertions(+), 12 deletions(-) commit 41c498b9359e360f08723b7605ec0c40926ec415 Author: Scott Feldman Date: Sun May 10 09:47:59 2015 -0700 bridge: restore br_setlink back to original This is revert of: commit 68e331c785b8 ("bridge: offload bridge port attributes to switch asic if feature flag set") Restore br_setlink back to original and don't call into SELF port driver. rtnetlink.c:bridge_setlink() already does a call into port driver for SELF. bridge set link cmd defaults to MASTER. From man page for bridge link set cmd: self link setting is configured on specified physical device master link setting is configured on the software bridge (default) The link setting has two values: the device-side value and the software bridge-side value. These are independent and settable using the bridge link set cmd by specifying some combination of [master] | [self]. Furthermore, the device-side and bridge-side settings have their own initial value, viewable from bridge -d link show cmd. Restoring br_setlink back to original makes rocker (the only in-kernel user of SELF link settings) work as first implement: two-sided values. It's true that when both MASTER and SELF are specified from the command, two netlink notifications are generated, one for each side of the settings. The user-space app can distiquish between the two notifications by observing the MASTER or SELF flag. Signed-off-by: Scott Feldman Acked-by: Jiri Pirko Signed-off-by: David S. Miller net/bridge/br_netlink.c | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) commit e71f220b342d78cfb8ee9f1b60f1351f7183f2a5 Author: Scott Feldman Date: Sun May 10 09:47:58 2015 -0700 switchdev: remove old switchdev_port_bridge_setlink New attr-based bridge_setlink can recurse lower devs and recover on err, so remove old wrapper (including ndo_dflt_switchdev_port_bridge_setlink). Signed-off-by: Scott Feldman Acked-by: Jiri Pirko Signed-off-by: David S. Miller include/net/switchdev.h | 9 --------- net/switchdev/switchdev.c | 30 ------------------------------ 2 files changed, 39 deletions(-) commit fc8f40d8644f15f0fd5fbc49012802a00f36ad55 Author: Scott Feldman Date: Sun May 10 09:47:57 2015 -0700 switchdev: cut over to new switchdev_port_bridge_setlink Rocker, bonding, and team can now use the switchdev bridge setlink to parse raw netlink; no need to duplicate this code in each driver. Signed-off-by: Scott Feldman Acked-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/bonding/bond_main.c | 2 +- drivers/net/ethernet/rocker/rocker.c | 42 +----------------------------------- drivers/net/team/team.c | 2 +- 3 files changed, 3 insertions(+), 43 deletions(-) commit 47f8328bb1a4115413e35b9b20d04b061ed544f8 Author: Scott Feldman Date: Sun May 10 09:47:56 2015 -0700 switchdev: add new switchdev bridge setlink Add new switchdev_port_bridge_setlink that can be used by drivers implementing .ndo_bridge_setlink to set switchdev bridge attributes. Basically turn the raw rtnl_bridge_setlink netlink into switchdev attr sets. Proper netlink attr policy checking is done on the protinfo part of the netlink msg. Currently, for protinfo, only bridge port attrs BR_LEARNING and BR_LEARNING_SYNC are parsed and passed to port driver. For afspec, VLAN objs are passed so switchdev driver can set VLANs assigned to SELF. To illustrate with iproute2 cmd, we have: bridge vlan add vid 10 dev sw1p1 self master To add VLAN 10 to port sw1p1 for both the bridge (master) and the device (self). Signed-off-by: Scott Feldman Acked-by: Jiri Pirko Signed-off-by: David S. Miller net/switchdev/switchdev.c | 151 ++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 140 insertions(+), 11 deletions(-) commit 6004c86718998aee1337efd3b087d6e17284632d Author: Scott Feldman Date: Sun May 10 09:47:55 2015 -0700 switchdev: add bridge port flags attr rocker: use switchdev get/set attr for bridge port flags Signed-off-by: Scott Feldman Acked-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/rocker/rocker.c | 25 +++++++++++++++++++++++++ include/net/switchdev.h | 2 ++ 2 files changed, 27 insertions(+) commit 9228ad26abeec99caf139e6d641e0199c95fd677 Author: Scott Feldman Date: Sun May 10 09:47:54 2015 -0700 rocker: use switchdev add/del obj for bridge port vlans Signed-off-by: Scott Feldman Acked-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/rocker/rocker.c | 130 +++++++++++++++++++++++++++++++++-- 1 file changed, 123 insertions(+), 7 deletions(-) commit 6fc3016da7c1587aa59e71f8c4dbc4cf1343eab2 Author: Scott Feldman Date: Sun May 10 09:47:53 2015 -0700 switchdev: add port vlan obj VLAN obj has flags (PVID and untagged) as well as start and end vid ranges. The switchdev driver can optimize programing the device using the ranges. Signed-off-by: Scott Feldman Acked-by: Jiri Pirko Signed-off-by: David S. Miller include/net/switchdev.h | 8 ++++++++ 1 file changed, 8 insertions(+) commit 491d0f1533ac750260406dbf84cdad44fd3d8a29 Author: Scott Feldman Date: Sun May 10 09:47:52 2015 -0700 switchdev: introduce switchdev add/del obj ops Like switchdev attr get/set, add new switchdev obj add/del. switchdev objs will be things like VLANs or FIB entries, so add/del fits better for objects than get/set used for attributes. Use same two-phase prepare-commit transaction model as in attr set. Signed-off-by: Scott Feldman Acked-by: Sridhar Samudrala Acked-by: Jiri Pirko Signed-off-by: David S. Miller include/net/switchdev.h | 31 ++++++++++++++ net/switchdev/switchdev.c | 107 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 138 insertions(+) commit 3563606258cf3b8f02eabddb1cb45a94c44d9611 Author: Scott Feldman Date: Sun May 10 09:47:51 2015 -0700 switchdev: convert STP update to switchdev attr set STP update is just a settable port attribute, so convert switchdev_port_stp_update to an attr set. For DSA, the prepare phase is skipped and STP updates are only done in the commit phase. This is because currently the DSA drivers don't need to allocate any memory for STP updates and the STP update will not fail to HW (unless something horrible goes wrong on the MDIO bus, in which case the prepare phase wouldn't have been able to predict anyway). Signed-off-by: Scott Feldman Acked-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/rocker/rocker.c | 14 +++++--------- include/net/switchdev.h | 13 ++----------- net/bridge/br_stp.c | 6 +++++- net/dsa/slave.c | 20 +++++++++++++++++++- net/switchdev/switchdev.c | 28 ---------------------------- 5 files changed, 31 insertions(+), 50 deletions(-) commit c4f20321d9680760a291991d77bc5b6d0eb2ed78 Author: Scott Feldman Date: Sun May 10 09:47:50 2015 -0700 rocker: support prepare-commit transaction model For rocker, support prepare-commit transaction model for setting attributes (and for adding objects). This requires rocker to preallocate memory needed for the commit up front in the prepare phase. Since rtnl_lock is held between prepare-commit, store the allocated memory on a queue hanging off of the rocker_port. Also, in prepare phase, do everything right up to calling into HW. The same code paths are tranversed in the driver for both prepare and commit phases. In some cases, any state modified in the prepare phase must be reverted before returning so the commit phase makes the same decisions. As a consequence of holding rtnl_lock in process context for all attr sets (and obj adds), all memory is GFP_KERNEL allocated and we don't need to busy spin waiting for the device to complete the command. So the bulk of this patch is simplifying the memory allocations to only use GFP_KERNEL and to remove the nowait flag and busy spin loop. Signed-off-by: Scott Feldman Acked-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/rocker/rocker.c | 700 ++++++++++++++++++++++------------- 1 file changed, 451 insertions(+), 249 deletions(-) commit f8e20a9f87d33865cc1d67f13da0db8d457fc3c9 Author: Scott Feldman Date: Sun May 10 09:47:49 2015 -0700 switchdev: convert parent_id_get to switchdev attr get Switch ID is just a gettable port attribute. Convert switchdev op switchdev_parent_id_get to a switchdev attr. Note: for sysfs and netlink interfaces, SWITCHDEV_ATTR_PORT_PARENT_ID is called with SWITCHDEV_F_NO_RECUSE to limit switch ID user-visiblity to only port netdevs. So when a port is stacked under bond/bridge, the user can only query switch id via the switch ports, but not via the upper devices Signed-off-by: Scott Feldman Acked-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/rocker/rocker.c | 17 +++++++++++----- include/net/switchdev.h | 18 ++++------------- net/core/net-sysfs.c | 10 +++++++--- net/core/rtnetlink.c | 9 ++++++--- net/dsa/slave.c | 16 ++++++++++----- net/switchdev/switchdev.c | 38 +++++++++++------------------------- 6 files changed, 51 insertions(+), 57 deletions(-) commit 3094333d9089d43e8b8f0418676fa6ae06c27b51 Author: Scott Feldman Date: Sun May 10 09:47:48 2015 -0700 switchdev: introduce get/set attrs ops Add two new swdev ops for get/set switch port attributes. Most swdev interactions on a port are gets or sets on port attributes, so rather than adding ops for each attribute, let's define clean get/set ops for all attributes, and then we can have clear, consistent rules on how attributes propagate on stacked devs. Add the basic algorithms for get/set attr ops. Use the same recusive algo to walk lower devs we've used for STP updates, for example. For get, compare attr value for each lower dev and only return success if attr values match across all lower devs. For sets, set the same attr value for all lower devs. We'll use a two-phase prepare-commit transaction model for sets. In the first phase, the driver(s) are asked if attr set is OK. If all OK, the commit attr set in second phase. A driver would NACK the prepare phase if it can't set the attr due to lack of resources or support, within it's control. RTNL lock must be held across both phases because we'll recurse all lower devs first in prepare phase, and then recurse all lower devs again in commit phase. If any lower dev fails the prepare phase, we need to abort the transaction for all lower devs. If lower dev recusion isn't desired, allow a flag SWITCHDEV_F_NO_RECURSE to indicate get/set only work on port (lowest) device. Signed-off-by: Scott Feldman Acked-by: Jiri Pirko Signed-off-by: David S. Miller include/net/switchdev.h | 43 ++++++++++++ net/switchdev/switchdev.c | 169 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 212 insertions(+) commit 9d47c0a2d958e06322c88245749278633d333cca Author: Jiri Pirko Date: Sun May 10 09:47:47 2015 -0700 switchdev: s/swdev_/switchdev_/ Turned out that "switchdev" sticks. So just unify all related terms to use this prefix. Signed-off-by: Jiri Pirko Signed-off-by: Scott Feldman Acked-by: Roopa Prabhu Acked-by: Andy Gospodarek Signed-off-by: David S. Miller drivers/net/ethernet/rocker/rocker.c | 37 +++++++++++++++++---------------- include/linux/netdevice.h | 2 +- include/net/switchdev.h | 30 +++++++++++++-------------- net/dsa/slave.c | 8 ++++---- net/switchdev/switchdev.c | 40 ++++++++++++++++++------------------ 5 files changed, 59 insertions(+), 58 deletions(-) commit ebb9a03a590e2325f747be43c8db450e92509501 Author: Jiri Pirko Date: Sun May 10 09:47:46 2015 -0700 switchdev: s/netdev_switch_/switchdev_/ and s/NETDEV_SWITCH_/SWITCHDEV_/ Turned out that "switchdev" sticks. So just unify all related terms to use this prefix. Signed-off-by: Jiri Pirko Signed-off-by: Scott Feldman Acked-by: Roopa Prabhu Acked-by: Andy Gospodarek Signed-off-by: David S. Miller drivers/net/bonding/bond_main.c | 4 +- drivers/net/ethernet/rocker/rocker.c | 10 +-- drivers/net/team/team.c | 4 +- include/net/switchdev.h | 111 +++++++++++++++-------------- net/bridge/br.c | 22 +++--- net/bridge/br_netlink.c | 6 +- net/bridge/br_stp.c | 2 +- net/core/net-sysfs.c | 2 +- net/core/rtnetlink.c | 2 +- net/ipv4/fib_trie.c | 40 +++++------ net/switchdev/switchdev.c | 134 +++++++++++++++++------------------ 11 files changed, 166 insertions(+), 171 deletions(-) commit a3eb95f891d6130b1fc03dd07a8b54cf0a5c8ab8 Author: David Ward Date: Sat May 9 22:01:46 2015 -0400 net_sched: gred: add TCA_GRED_LIMIT attribute In a GRED qdisc, if the default "virtual queue" (VQ) does not have drop parameters configured, then packets for the default VQ are not subjected to RED and are only dropped if the queue is larger than the net_device's tx_queue_len. This behavior is useful for WRED mode, since these packets will still influence the calculated average queue length and (therefore) the drop probability for all of the other VQs. However, for some drivers tx_queue_len is zero. In other cases the user may wish to make the limit the same for all VQs (including the default VQ with no drop parameters). This change adds a TCA_GRED_LIMIT attribute to set the GRED queue limit, in bytes, during qdisc setup. (This limit is in bytes to be consistent with the drop parameters.) The default limit is the same as for a bfifo queue (tx_queue_len * psched_mtu). If the drop parameters of any VQ are configured with a smaller limit than the GRED queue limit, that VQ will still observe the smaller limit instead. Signed-off-by: David Ward Signed-off-by: David S. Miller include/uapi/linux/pkt_sched.h | 3 ++- net/sched/sch_gred.c | 28 ++++++++++++++++++++++++---- 2 files changed, 26 insertions(+), 5 deletions(-) commit 24e737c1ebacf0a19cb1d2671949de12b3361f4d Author: Nicolas Schichan Date: Thu May 7 15:00:13 2015 +0200 ARM: net: add JIT support for loads from struct seccomp_data. Signed-off-by: Nicolas Schichan Signed-off-by: David S. Miller arch/arm/net/bpf_jit_32.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit f6a2fbb903d51b1e328d6e358048426ca97932ad Author: Ben Dooks Date: Fri Apr 17 01:14:15 2015 +0100 PM / runtime: add note about re-calling in during device probe() The sh_eth driver has come up with an issue where the runtime_pm code suspends it during the probe() method due to the network device registration re-calling into the driver. Add a note about this into the documentation. Signed-off-by: Ben Dooks Signed-off-by: Ben Hutchings Signed-off-by: Rafael J. Wysocki Documentation/power/runtime_pm.txt | 6 ++++++ 1 file changed, 6 insertions(+) commit 084609bf727981c7a2e6e69aefe0052c9d793300 Author: Grygorii Strashko Date: Fri Apr 24 14:57:10 2015 +0300 leds / PM: fix hibernation on arm when gpio-led used with CPU led trigger Setting a dev_pm_ops suspend/resume pair of callbacks but not a set of hibernation callbacks means those pm functions will not be called upon hibernation - that leads to system crash on ARM during freezing if gpio-led is used in combination with CPU led trigger. It may happen after freeze_noirq stage (GPIO is suspended) and before syscore_suspend stage (CPU led trigger is suspended) - usually when disable_nonboot_cpus() is called. Log: PM: noirq freeze of devices complete after 1.425 msecs Disabling non-boot CPUs ... ^ system may crash or stuck here with message (TI AM572x) WARNING: CPU: 0 PID: 3100 at drivers/bus/omap_l3_noc.c:148 l3_interrupt_handler+0x22c/0x370() 44000000.ocp:L3 Custom Error: MASTER MPU TARGET L4_PER1_P3 (Idle): Data Access in Supervisor mode during Functional access CPU1: shutdown ^ or here Fix this by using SIMPLE_DEV_PM_OPS, which appropriately assigns the suspend and hibernation callbacks and move led_suspend/led_resume under CONFIG_PM_SLEEP to avoid build warnings. Fixes: 73e1ab41a80d (leds: Convert led class driver from legacy pm ops to dev_pm_ops) Signed-off-by: Grygorii Strashko Acked-by: Jacek Anaszewski Cc: 3.11+ # 3.11+ Signed-off-by: Rafael J. Wysocki drivers/leds/led-class.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit d2c4b43d8848afaf968ed1f3cea0c99296ff5ff3 Author: Rajendra Nayak Date: Thu Apr 23 14:03:13 2015 +0530 drivers: sh: remove boilerplate code and use USE_PM_CLK_RUNTIME_OPS USE_PM_CLK_RUNTIME_OPS is introduced so we don't repeat the same code to do runtime_suspend and runtime_resume across users of PM clocks. Use it to remove the boilerplate code. Signed-off-by: Rajendra Nayak Reviewed-by: Kevin Hilman Acked-by: Santosh Shilimkar Acked-by: Geert Uytterhoeven Signed-off-by: Rafael J. Wysocki drivers/sh/pm_runtime.c | 47 ++--------------------------------------------- 1 file changed, 2 insertions(+), 45 deletions(-) commit ea6f83346ecbe65e061a8c66c5486d3f2c9964e9 Author: Rajendra Nayak Date: Thu Apr 23 14:03:12 2015 +0530 arm: davinci: remove boilerplate code and use USE_PM_CLK_RUNTIME_OPS USE_PM_CLK_RUNTIME_OPS is introduced so we don't repeat the same code to do runtime_suspend and runtime_resume across users of PM clocks. Use it to remove the boilerplate code. Signed-off-by: Rajendra Nayak Reviewed-by: Kevin Hilman Acked-by: Santosh Shilimkar Acked-by: Geert Uytterhoeven Signed-off-by: Rafael J. Wysocki arch/arm/mach-davinci/pm_domain.c | 32 +------------------------------- 1 file changed, 1 insertion(+), 31 deletions(-) commit 2d3dc933e0575f1e5e07d222ffd95d8517562b38 Author: Rajendra Nayak Date: Thu Apr 23 14:03:11 2015 +0530 arm: omap1: remove boilerplate code and use USE_PM_CLK_RUNTIME_OPS USE_PM_CLK_RUNTIME_OPS is introduced so we don't repeat the same code to do runtime_suspend and runtime_resume across users of PM clocks. Use it to remove the boilerplate code. Signed-off-by: Rajendra Nayak Reviewed-by: Kevin Hilman Acked-by: Santosh Shilimkar Acked-by: Geert Uytterhoeven Acked-by: Tony Lindgren Signed-off-by: Rafael J. Wysocki arch/arm/mach-omap1/pm_bus.c | 37 ++----------------------------------- 1 file changed, 2 insertions(+), 35 deletions(-) commit 1f51b0c6461eb72595c2b69b79ca69a322ed1d0e Author: Rajendra Nayak Date: Thu Apr 23 14:03:10 2015 +0530 arm: keystone: remove boilerplate code and use USE_PM_CLK_RUNTIME_OPS USE_PM_CLK_RUNTIME_OPS is introduced so we don't repeat the same code to do runtime_suspend and runtime_resume across users of PM clocks. Use it to remove the boilerplate code. Signed-off-by: Rajendra Nayak Reviewed-by: Kevin Hilman Acked-by: Santosh Shilimkar Acked-by: Geert Uytterhoeven Signed-off-by: Rafael J. Wysocki arch/arm/mach-keystone/pm_domain.c | 33 +-------------------------------- 1 file changed, 1 insertion(+), 32 deletions(-) commit 75f504004ab866c8f84749303b0f70953724e259 Author: Rajendra Nayak Date: Thu Apr 23 14:03:09 2015 +0530 PM / clock_ops: Provide default runtime ops to users Most users of PM clocks do the extact same things in the runtime suspend/resume callbacks. Provide them USE_PM_CLK_RUNTIME_OPS so as to avoid/remove boilerplate code. Signed-off-by: Rajendra Nayak Reviewed-by: Kevin Hilman Acked-by: Santosh Shilimkar Acked-by: Geert Uytterhoeven Signed-off-by: Rafael J. Wysocki drivers/base/power/clock_ops.c | 38 ++++++++++++++++++++++++++++++++++++++ include/linux/pm_clock.h | 10 ++++++++++ 2 files changed, 48 insertions(+) commit c381f22947ea9afa55311dfe672dd73b92f01e6e Author: Grygorii Strashko Date: Mon Apr 27 21:24:32 2015 +0300 ARM: omap-device: use SET_NOIRQ_SYSTEM_SLEEP_PM_OPS Use recently introduced macro SET_NOIRQ_SYSTEM_SLEEP_PM_OPS to set up PM callbacks. This also fixes missed assignment of .poweroff_noirq() callback. Signed-off-by: Grygorii Strashko Acked-by: Santosh Shilimkar Reviewed-by: Ulf Hansson Acked-by: Pavel Machek Reviewed-by: Kevin Hilman Signed-off-by: Rafael J. Wysocki arch/arm/mach-omap2/omap_device.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit 258d2a1095eebd1d061f84925b05f0d13bd5fcad Author: Grygorii Strashko Date: Mon Apr 27 21:24:31 2015 +0300 bus: omap_l3_noc: add missed callbacks for suspend-to-disk Add missed callbacks needed for proper supporting of suspend-to-disk by using recently introduced macro SET_NOIRQ_SYSTEM_SLEEP_PM_OPS. Signed-off-by: Grygorii Strashko Acked-by: Nishanth Menon Acked-by: Santosh Shilimkar Reviewed-by: Ulf Hansson Acked-by: Pavel Machek Reviewed-by: Kevin Hilman Signed-off-by: Rafael J. Wysocki drivers/bus/omap_l3_noc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 020af89a41c41fd2c92d0da524968dfaba6269f0 Author: Grygorii Strashko Date: Mon Apr 27 21:24:30 2015 +0300 PM / sleep: Add macro to define common noirq system PM callbacks The same approach is used as for the existing SET_SYSTEM_SLEEP_PM_OPS, but for noirq callbacks. New SET_NOIRQ_SYSTEM_SLEEP_PM_OPS, defined for CONFIG_PM_SLEEP, will point ->suspend_noirq, ->freeze_noirq and ->poweroff_noirq to the same function. Vice versa happens for ->resume_noirq, ->thaw_noirq and ->restore_noirq. Signed-off-by: Grygorii Strashko Acked-by: Santosh Shilimkar Reviewed-by: Ulf Hansson Acked-by: Pavel Machek Reviewed-by: Kevin Hilman Signed-off-by: Rafael J. Wysocki include/linux/pm.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit a921504588cfe0e11d9306536bdf131b5b957fd3 Author: Rafael J. Wysocki Date: Tue May 5 23:42:25 2015 +0200 PM / sleep: Refine diagnostic messages in enter_state() Some of the system suspend diagnostic messages related to suspend-to-idle refer to it as "freeze sleep" or "freeze state" while the others say "suspend-to-idle". To reduce the possible confusion that may result from that, refine the former either to say "suspend to idle" too or to make it clearer that what is printed is a state string written to /sys/power/state ("mem", "standby", or "freeze"). Signed-off-by: Rafael J. Wysocki kernel/power/suspend.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 0dd23f94251f49da99a6cbfb22418b2d757d77d6 Author: Joe Konno Date: Tue May 12 07:59:42 2015 -0700 intel_pstate: set BYT MSR with wrmsrl_on_cpu() Commit 007bea098b86 (intel_pstate: Add setting voltage value for baytrail P states.) introduced byt_set_pstate() with the assumption that it would always be run by the CPU whose MSR is to be written by it. It turns out, however, that is not always the case in practice, so modify byt_set_pstate() to enforce the MSR write done by it to always happen on the right CPU. Fixes: 007bea098b86 (intel_pstate: Add setting voltage value for baytrail P states.) Signed-off-by: Joe Konno Acked-by: Kristen Carlson Accardi Cc: 3.14+ # 3.14+ Signed-off-by: Rafael J. Wysocki drivers/cpufreq/intel_pstate.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4d298b8539ed59f1d69d3aa6e41a2c4908137612 Author: David Härdeman Date: Mon Mar 30 17:51:01 2015 -0300 [media] rc-core: fix dib0700 scancode generation for RC5 commit af3a4a9bbeb0 ("[media] dib0700: NEC scancode cleanup") cleaned up the NEC scancode logic but overlooked the RC5 case. This patch brings the RC5 case in line with the NEC code and makes the struct self-documenting. Signed-off-by: David Härdeman Reported-by: David Cimbůrek Cc: stable@vger.kernel.org Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/dvb-usb/dib0700_core.c | 70 ++++++++++++++++++-------------- 1 file changed, 40 insertions(+), 30 deletions(-) commit 64227114c676d9b1fefa4d5070534f3d82d23711 Author: Krzysztof Kozlowski Date: Mon Apr 27 21:50:46 2015 +0900 ARM: pxa: Constify irq_domain_ops The irq_domain_ops are not modified by the driver and the irqdomain core code accepts pointer to a const data. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Robert Jarzmik arch/arm/mach-pxa/irq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a1c0a6adbc705a9a760416796ce9cb3349fd476f Author: Robert Jarzmik Date: Sat Feb 7 22:54:03 2015 +0100 ARM: pxa: Transition pxa25x, pxa27x, pxa3xx to clk framework Transition the PXA25x, PXA27x and PXA3xx CPUs to the clock framework. This transition still enables legacy platforms to run without device tree as before, ie relying on platform data encoded in board specific files. This is the last step of clock framework transition for pxa platforms. It was tested on lubbock (pxa25x), mioa701 (pxa27x) and zylonite (pxa3xx). Signed-off-by: Robert Jarzmik arch/arm/Kconfig | 2 +- arch/arm/mach-pxa/Makefile | 2 +- arch/arm/mach-pxa/clock-pxa2xx.c | 55 ---------- arch/arm/mach-pxa/clock-pxa3xx.c | 212 --------------------------------------- arch/arm/mach-pxa/clock.c | 86 ---------------- arch/arm/mach-pxa/clock.h | 80 --------------- arch/arm/mach-pxa/eseries.c | 1 - arch/arm/mach-pxa/generic.c | 2 + arch/arm/mach-pxa/generic.h | 1 + arch/arm/mach-pxa/lubbock.c | 1 - arch/arm/mach-pxa/pxa25x.c | 1 - arch/arm/mach-pxa/pxa300.c | 20 +--- arch/arm/mach-pxa/pxa320.c | 10 -- arch/arm/mach-pxa/pxa3xx.c | 59 ----------- arch/arm/mach-pxa/raumfeld.c | 1 - arch/arm/mach-pxa/tosa.c | 1 - 16 files changed, 6 insertions(+), 528 deletions(-) commit 8e3afafe999ed37a6ce7ca843f540e0e7a95f856 Author: Robert Jarzmik Date: Sat Feb 7 22:54:02 2015 +0100 ARM: pxa: convert eseries to clock framework As pxa architecture transitions to clock framework, the previously available INIT_CLKREG is no more. Use the fixed clock rate initializer to declare the "fake" CLK_CK32K in eseries. Signed-off-by: Robert Jarzmik arch/arm/mach-pxa/eseries.c | 21 ++------------------- 1 file changed, 2 insertions(+), 19 deletions(-) commit 48a17db28c64369e3c6a8a2b415ad4030fac77e4 Author: Robert Jarzmik Date: Sat Dec 27 14:55:26 2014 +0100 ARM: pxa: Transition pxa25x and pxa27x to clk framework Transition the PXA25x and PXA27x CPUs to the clock framework. This transition still enables legacy platforms to run without device tree as before, ie relying on platform data encoded in board specific files. The transition breaks the previous clocks activation of pin control (gpio11 and gpio12). Machine files should be amended to take that into account. This is the last step of clock framework transition for pxa25x and pxa27x, leaving only pxa3xx for further work. Reviewed-by: Michael Turquette Signed-off-by: Robert Jarzmik arch/arm/Kconfig | 1 + arch/arm/mach-pxa/Makefile | 9 +-- arch/arm/mach-pxa/pxa25x.c | 182 --------------------------------------------- arch/arm/mach-pxa/pxa27x.c | 174 +------------------------------------------ 4 files changed, 7 insertions(+), 359 deletions(-) commit 24e32a5528fb5f398f0844759568e14f2c7ed3e9 Author: Robert Jarzmik Date: Sat Feb 7 22:18:34 2015 +0100 ARM: pxa: pxa27x skip default device initialization with DT When booting via DT, the default PXA devices must not have been probed before, otherwise the augmented information from the device tree is ignored. This is the twin commit of commit 82ce44d104dc ("ARM: pxa3xx: skip default device initialization when booting via DT"). Signed-off-by: Robert Jarzmik Acked-by: Daniel Mack arch/arm/mach-pxa/pxa27x.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 8b6d10345e161cafceee864acfa11b8bb8ed5c98 Author: Robert Jarzmik Date: Sat Dec 27 14:55:28 2014 +0100 clk: pxa: add missing pxa27x clocks for Irda and sa1100-rtc Add 2 clocks which were erronously forgotten by the clock framework port, namely : - sa1100-rtc - irda for pxa2xx-ir:UARTCLK Signed-off-by: Robert Jarzmik Acked-by: Michael Turquette drivers/clk/pxa/clk-pxa27x.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) commit 70d64048c4291933ce2175a638ff96b00e09aa58 Author: Robert Jarzmik Date: Sat Dec 27 14:55:27 2014 +0100 ARM: pxa: move gpio11 clock to board files The pxa25x gpio11 clock output was previously selected on its pin by the clock enabling, toggling the pin function. As we transition to common clock framework, the pin function is moved to board file for the 2 users, ie. lubbock and eseries. Reviewed-by: Michael Turquette Signed-off-by: Robert Jarzmik arch/arm/mach-pxa/eseries.c | 5 ++++- arch/arm/mach-pxa/lubbock.c | 3 +++ 2 files changed, 7 insertions(+), 1 deletion(-) commit 5e1d01285140a8cd90676ba15c06c8ec700fd618 Author: Robert Jarzmik Date: Sat Dec 27 14:55:25 2014 +0100 ARM: pxa: change clocks init sequence Since pxa clocks were ported to the clock framework, an ordering issue appears between clocks and clocksource initialization. As a consequence, the pxa timer clock cannot be acquired in pxa_timer, and is disabled by clock framework because it is "unused". The ordering issue is that in the kernel boot sequence : start_kernel() ... time_init() -> pxa_timer() -> here the clocksource is initialized ... rest_init() kernel_init() initcalls -> here the clocks are initialized In the current sequence, the clocks are initialized way after pxa_timer, which cannot acquire the OSTIMER0 clock. To solve this issue, the clocks initialization is moved to pxa_timer(), so that clocks are initialized before clocksource for non device-tree. For device-tree, the standard arm time_init() will take care of the ordering. Reviewed-by: Michael Turquette Signed-off-by: Robert Jarzmik arch/arm/mach-pxa/generic.c | 4 ++++ arch/arm/mach-pxa/generic.h | 2 ++ drivers/clk/pxa/clk-pxa27x.c | 3 +-- 3 files changed, 7 insertions(+), 2 deletions(-) commit 8dd3075c489ba19a8f2795199352334e52f34bed Author: Robert Jarzmik Date: Sun Oct 12 22:11:08 2014 +0200 ARM: dts: pxa: add pxa-timer to pxa27x and pxa3xx Each pxa has an embedded OS Timers IP. The kernel cannot work without a valid clocksource, and this adds the OS Timers to the pxa device-tree description. Signed-off-by: Robert Jarzmik arch/arm/boot/dts/pxa27x.dtsi | 8 ++++++++ arch/arm/boot/dts/pxa3xx.dtsi | 8 ++++++++ 2 files changed, 16 insertions(+) commit 8dcba81724ae7aae922b01926478f536870524d2 Author: Robert Jarzmik Date: Sat Feb 7 13:19:38 2015 +0100 ARM: dts: pxa: add pxa27x-keypad to pxa27x Each pxa27x has an embedded keypad controller. Add it in the pxa27x device-tree description. Signed-off-by: Robert Jarzmik arch/arm/boot/dts/pxa27x.dtsi | 8 ++++++++ 1 file changed, 8 insertions(+) commit 361818cd4b51bd23b2274456f6fc62b74596472e Author: Robert Jarzmik Date: Sat Feb 7 13:27:55 2015 +0100 ARM: dts: pxa: add pxa27x-udc to pxa27x Each pxa27x has an embedded usb udc controller. Add it in the pxa27x device-tree description. Signed-off-by: Robert Jarzmik arch/arm/boot/dts/pxa27x.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) commit d96672e6207f09a25a9cc908400c1ac6f7a5190c Author: Robert Jarzmik Date: Sat Feb 7 13:13:24 2015 +0100 ARM: dts: pxa: add clocks Add clocks to the IPs already described in the pxa device-tree files. There are more clocks in the clock tree than IPs described in the current pxa device-tree. This patch ensures that : - the current description is correct - the clocks are actually claimed, so that clock framework doesn't disable them automatically (unused clocks shutdown) Signed-off-by: Robert Jarzmik arch/arm/boot/dts/pxa27x.dtsi | 18 ++++++++++++++---- arch/arm/boot/dts/pxa2xx.dtsi | 7 ++++++- arch/arm/boot/dts/pxa3xx.dtsi | 21 ++++++++++++++++++++- 3 files changed, 40 insertions(+), 6 deletions(-) commit f374d1e7ef988bc23387079255924c262f4e6768 Author: Robert Jarzmik Date: Sat Feb 7 13:26:09 2015 +0100 ARM: dts: pxa: add pwri2c to pxa device-tree pxa27x variant has 2 I2C busses on the SoC : - the casual I2C - the power I2C, normally driving power regulators, and capable of receiving orders on core frequency modifications Add the missing pwri2c to pxa27x description. Signed-off-by: Robert Jarzmik arch/arm/boot/dts/pxa27x.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) commit 9ab79be0da98e371f1d2f9c01ac25745639718d1 Author: Michael Niewöhner Date: Mon May 11 22:57:21 2015 +0200 ARM: dts: rockchip: add system-power-controller to act8846 on radxarock The act8846 is the main pmic and system-power-controller on radxarock boards, so add the necessary property. Signed-off-by: Michael Niewoehner Signed-off-by: Heiko Stuebner arch/arm/boot/dts/rk3188-radxarock.dts | 1 + 1 file changed, 1 insertion(+) commit f6505fbabc426b9e293da5bb702ace2eb1ccf87d Author: Feng Kan Date: Fri Apr 24 15:17:50 2015 -0700 i2c: add SLIMpro I2C device driver on APM X-Gene platform Add SLIMpro I2C device driver on APM X-Gene platform. This I2C device driver use the SLIMpro Mailbox driver to tunnel message to the SLIMpro coprocessor to do the work of accessing I2C components. Signed-off-by: Feng Kan Signed-off-by: Hieu Le Signed-off-by: Wolfram Sang .../devicetree/bindings/i2c/i2c-xgene-slimpro.txt | 15 + drivers/i2c/busses/Kconfig | 9 + drivers/i2c/busses/Makefile | 1 + drivers/i2c/busses/i2c-xgene-slimpro.c | 469 +++++++++++++++++++++ 4 files changed, 494 insertions(+) commit 73e601ea57020c42d989120061dfc83ce9c85360 Merge: 3d00d04 7917d14 Author: Arnd Bergmann Date: Tue May 12 22:04:54 2015 +0200 Merge tag 'sunxi-core-for-4.2' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux into next/soc Merge "Allwinner core additions for 4.2" from Maxime Ripard: This pull request contains only the changes needed to support the SMP on the Allwinner A23. * tag 'sunxi-core-for-4.2' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux: ARM: sun8i: Add SMP support for the Allwinner A23 commit 7b57472fb6cbd87a8b10209897636df3c7bff087 Author: Ard Biesheuvel Date: Mon May 11 12:06:38 2015 +0200 ARM: multi_v7_defconfig: enable asm and NEON accelerated crypto modules Enable all drivers under CONFIG_ARM_CRYPTO as modules. Enable CONFIG_KERNEL_MODE_NEON as well so that the modules that either contain a NEON alternative or consist solely of a NEON (or ARMv8 crypto extensions) accelerated implementation are enabled fully as well. Note that the ARMv8 modules will only be built if the detected toolchain version is recent enough (binutils 2.23 or higher). Signed-off-by: Ard Biesheuvel Signed-off-by: Arnd Bergmann arch/arm/configs/multi_v7_defconfig | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit aabfa5f28f717d3e53102ab088e9cc903741221a Author: Drew Richardson Date: Fri May 8 07:30:39 2015 -0700 ftrace: Provide trace clock monotonic raw Expose the NMI safe accessor to the monotonic raw clock to the tracer. The mono clock was added with commit 1b3e5c0936046e7e023149ddc8946d21c2ea20eb. The advantage of the monotonic raw clock is that it will advance more constantly than the monotonic clock. Imagine someone is trying to optimize a particular program to reduce instructions executed for a given workload while minimizing the effect on runtime. Also suppose that NTP is running and potentially making larger adjustments to the monotonic clock. If NTP is adjusting the monotonic clock to advance more rapidly, the program will appear to use fewer instructions per second but run longer than if the monotonic raw clock had been used. The total number of instructions observed would be the same regardless of the clock source used, but how it's attributed to time would be affected. Conversely if NTP is adjusting the monotonic clock to advance more slowly, the program will appear to use more instructions per second but run more quickly. Of course there are many sources that can cause jitter in performance measurements on modern processors, but let's remove NTP from the list. The monotonic raw clock can also be useful for tracing early boot, e.g. when debugging issues with NTP. Link: http://lkml.kernel.org/r/20150508143037.GB1276@dreric01-Precision-T1650 Acked-by: Thomas Gleixner Acked-by: Peter Zijlstra Acked-by: John Stultz Acked-by: Mathieu Desnoyers Signed-off-by: Drew Richardson Signed-off-by: Steven Rostedt kernel/trace/trace.c | 1 + 1 file changed, 1 insertion(+) commit 7e255d346c12888f7cce4b89a03a5fe5e9196ab1 Author: Jerry Snitselaar Date: Thu Apr 30 08:10:24 2015 -0700 tracing: Export tracing clock functions Critical tracepoint hooks should never call anything that takes a lock, so they are unable to call getrawmonotonic() or ktime_get(). Export the rest of the tracing clock functions so can be used in tracepoint hooks. Background: We have a customer that adds their own module and registers a tracepoint hook to sched_wakeup. They were using ktime_get() for a time source, but it grabs a seq lock and caused a deadlock to occur. Link: http://lkml.kernel.org/r/1430406624-22609-1-git-send-email-jsnitsel@redhat.com Signed-off-by: Jerry Snitselaar Signed-off-by: Steven Rostedt kernel/trace/trace_clock.c | 3 +++ 1 file changed, 3 insertions(+) commit 755a27e7e4c817dd51ade41668b380f26026899c Author: Nicolas Iooss Date: Sun May 3 18:18:02 2015 +0800 tracing: remove unused ftrace_output_event() prototype The prototype of ftrace_output_event was added by commit 1d6bae966e90 ("tracing: Move raw output code from macro to standalone function") but this function was not defined anywhere, and is still nowhere to be found. Link: http://lkml.kernel.org/r/1430648282-25792-1-git-send-email-nicolas.iooss_linux@m4x.org Signed-off-by: Nicolas Iooss Signed-off-by: Steven Rostedt include/linux/ftrace_event.h | 3 --- 1 file changed, 3 deletions(-) commit ddcad7e9068ebc6526728df1f34f1dde4b7dbbab Author: Michael Welling Date: Tue May 12 12:38:57 2015 -0500 spi: omap2-mcspi: Fix native cs with new set_cs GPIO chip select patch series appears to have broken the native chip select support. This patch pulls the manual native chip select toggling out of the transfer_one routine and adds a set_cs routine. Tested natively on AM3354 with SPI serial flash on spi0cs0. Reported-by: Nishanth Menon Signed-off-by: Michael Welling Tested-by: Nishanth Menon Signed-off-by: Mark Brown drivers/spi/spi-omap2-mcspi.c | 33 +++++++++++---------------------- 1 file changed, 11 insertions(+), 22 deletions(-) commit 9dcb0e7b999db6c420c70fd32497a979a044fcdf Author: Felipe Balbi Date: Wed May 6 11:50:27 2015 -0500 i2c: omap: implement bus recovery implement bus recovery methods for i2c-omap so we can recover from situations where SCL/SDA are stuck low. Signed-off-by: Felipe Balbi Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-omap.c | 69 ++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 65 insertions(+), 4 deletions(-) commit 7a8c78675f3c81760cde8ef31a9fcb0cb9ace231 Author: Zidan Wang Date: Tue May 12 14:58:21 2015 +0800 ASoC: wm8960: add 32 bit word length support According to referance manual, right justify mode can't support 32 bit word length. Signed-off-by: Zidan Wang Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8960.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 0e50b51aa22fea0b6762f9d932541ec6f922928f Author: Zidan Wang Date: Tue May 12 14:58:08 2015 +0800 ASoC: wm8960: Let wm8960 driver configure its bit clock and frame clock wm8960 codec driver missing configure its bit clock and frame clock for codec master mode, so add support for it. It will calculate a appropriate frequency dividing ratio according to the system clock, bit clock and frame clock, then set the corresponding registers. Signed-off-by: Zidan Wang Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8960.c | 101 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) commit 05a9b46a718f664fce5d236abe72bffb8200d616 Author: John Lin Date: Tue May 12 20:43:05 2015 +0800 ASoC: rt5645: fix jack type detect error rt5645_jack_detect doesn't report the correct jack type consistently. It mistakes OMTP type headset to CTIA type in particular HW design. Register changes are needed for this issue. This patch can make it more stable. Signed-off-by: John Lin Signed-off-by: Mark Brown sound/soc/codecs/rt5645.c | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) commit b7f22478c01dbb44545f7b8192a6111d5e992a59 Author: John Lin Date: Tue May 12 20:43:04 2015 +0800 ASoC: rt5645: fix IRQ error in jack detection IRQ of jack and button detection is abnormal if "LDO2" and "Mic Det Power" power disable in rt5645_jack_detect. This patch make these two power keep enabled until jack out. Signed-off-by: John Lin Signed-off-by: Mark Brown sound/soc/codecs/rt5645.c | 38 ++++++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 14 deletions(-) commit 47ba5bb295431c7d2bd0e48b63b4cdce600248d3 Author: John Lin Date: Tue May 12 20:43:03 2015 +0800 ASoC: rt5645: remove unnecessary power in JD function The power of "micbias1" and "micbias2" are unnecessary for jack detection. So, we remove it in rt5645_set_jack_detect function. Signed-off-by: John Lin Signed-off-by: Mark Brown sound/soc/codecs/rt5645.c | 11 ----------- 1 file changed, 11 deletions(-) commit d12d6c4ef252dd2c40786860c859ab09e0311857 Author: John Lin Date: Tue May 12 20:43:02 2015 +0800 ASoC: rt5645: improve headphone depop function We add a calibration function and call it at the beginning of i2c_probe. The calibration value will be kept until codec is shutdown. We will reset the codec after the calibration is finished. So, we set cache_bypass in the calibration function. The benefit is we can shorter the delay time in headphone depop. We also change the register setting in the depop sequence which will reduce the pop noise in headphone playback. Signed-off-by: John Lin Signed-off-by: Mark Brown sound/soc/codecs/rt5645.c | 252 ++++++++++++++++++++++++++++++++-------------- 1 file changed, 174 insertions(+), 78 deletions(-) commit 16f0acd0ca5dd6103df5b789553da86ff3d5c505 Author: Fabio Estevam Date: Tue May 12 01:23:00 2015 -0300 ASoC: max98095: Pass the IRQF_ONESHOT flag Since commit 1c6c69525b40eb76de8adf039409722015927dc3 ("genirq: Reject bogus threaded irq requests") threaded IRQs without a primary handler need to be requested with IRQF_ONESHOT, otherwise the request will fail. So pass the IRQF_ONESHOT flag in this case. The semantic patch that makes this change is available in scripts/coccinelle/misc/irqf_oneshot.cocci. Signed-off-by: Fabio Estevam Signed-off-by: Mark Brown sound/soc/codecs/max98095.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 208ba89b402d4f63a1352ae289fb8428cb92e7ec Author: Fabio Estevam Date: Tue May 12 01:22:59 2015 -0300 ASoC: twl6040: Pass the IRQF_ONESHOT flag Since commit 1c6c69525b40eb76de8adf039409722015927dc3 ("genirq: Reject bogus threaded irq requests") threaded IRQs without a primary handler need to be requested with IRQF_ONESHOT, otherwise the request will fail. So pass the IRQF_ONESHOT flag in this case. The semantic patch that makes this change is available in scripts/coccinelle/misc/irqf_oneshot.cocci. Signed-off-by: Fabio Estevam Signed-off-by: Mark Brown sound/soc/codecs/twl6040.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit d78395ce7825a74c4cbd1aebdd6cc6912d834f47 Author: Fabio Estevam Date: Tue May 12 01:22:58 2015 -0300 ASoC: wm8994: Pass the IRQF_ONESHOT flag Since commit 1c6c69525b40eb76de8adf039409722015927dc3 ("genirq: Reject bogus threaded irq requests") threaded IRQs without a primary handler need to be requested with IRQF_ONESHOT, otherwise the request will fail. So pass the IRQF_ONESHOT flag in this case. The semantic patch that makes this change is available in scripts/coccinelle/misc/irqf_oneshot.cocci. Signed-off-by: Fabio Estevam Signed-off-by: Mark Brown sound/soc/codecs/wm8994.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 3d907cc30d072829b6682fda791005de5768f34e Author: Fabio Estevam Date: Tue May 12 01:22:57 2015 -0300 ASoC: wm5100: Pass the IRQF_ONESHOT flag Since commit 1c6c69525b40eb76de8adf039409722015927dc3 ("genirq: Reject bogus threaded irq requests") threaded IRQs without a primary handler need to be requested with IRQF_ONESHOT, otherwise the request will fail. So pass the IRQF_ONESHOT flag in this case. The semantic patch that makes this change is available in scripts/coccinelle/misc/irqf_oneshot.cocci. Signed-off-by: Fabio Estevam Signed-off-by: Mark Brown sound/soc/codecs/wm5100.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit ed043aebe6ece3e13a02b6574447f150c3557378 Author: Fabio Estevam Date: Tue May 12 01:22:56 2015 -0300 ASoC: wm8996: Pass the IRQF_ONESHOT flag Since commit 1c6c69525b40eb76de8adf039409722015927dc3 ("genirq: Reject bogus threaded irq requests") threaded IRQs without a primary handler need to be requested with IRQF_ONESHOT, otherwise the request will fail. So pass the IRQF_ONESHOT flag in this case. The semantic patch that makes this change is available in scripts/coccinelle/misc/irqf_oneshot.cocci. Signed-off-by: Fabio Estevam Signed-off-by: Mark Brown sound/soc/codecs/wm8996.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit d51f746961ec896ce23c0fb8b3ce7e873ef14648 Author: Markus Reichl Date: Wed May 13 03:45:22 2015 +0900 ARM: dts: Add HS400 support for exynos5422-odroidxu3 HS400 timing values are added for exynos5422-odroidxu3 board. Signed-off-by: Markus Reichl Acked-by: Jaehoon Chung Acked-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos5422-odroidxu3.dts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit c5f4823babfd5e1b34494310e0a9f7cab44cadb9 Author: Zidan Wang Date: Mon May 11 18:24:43 2015 +0800 ASoC: fsl_sai: add 12kHz, 24kHz, 176.4kHz and 192kHz sample rate support Normally we don't support 12kHz, 24kHz in audio driver, alsa didn't have formal definition of 12kHz, 24kHz, but alsa supply a way to support these sample rates. And add 176.4kHz and 192kHz support. Signed-off-by: Zidan Wang Signed-off-by: Mark Brown sound/soc/fsl/fsl_sai.c | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) commit c3ecef21c3f26bf4737fc0887964127accfa8a0e Author: Zidan Wang Date: Mon May 11 18:24:41 2015 +0800 ASoC: fsl_sai: add sai master mode support When sai works on master mode, set its bit clock and frame clock. SAI has 4 MCLK source, bus clock, MCLK1, MCLK2 and MCLK3. fsl_sai_set_bclk will select proper MCLK source, then calculate and set the bit clock divider. After fsl_sai_set_bclk, enable the selected mclk in hw_params(), and add hw_free() to disable the mclk. Signed-off-by: Zidan Wang Signed-off-by: Mark Brown sound/soc/fsl/fsl_sai.c | 117 ++++++++++++++++++++++++++++++++++++++++++++++-- sound/soc/fsl/fsl_sai.h | 9 +++- 2 files changed, 121 insertions(+), 5 deletions(-) commit c778b4726a13ed38f8d36c926b7b0d5144c562de Author: Marek Belisko Date: Fri May 8 21:02:34 2015 +0200 ASoC: bt-sco: Add devicetree support for bt-sco codec Add devicetree support for bluetooth SCO link codec. Signed-off-by: Marek Belisko Signed-off-by: Mark Brown Documentation/devicetree/bindings/sound/bt-sco.txt | 13 +++++++++++++ Documentation/devicetree/bindings/vendor-prefixes.txt | 1 + sound/soc/codecs/bt-sco.c | 9 +++++++++ 3 files changed, 23 insertions(+) commit 073db4a51ee43ccb827f54a4261c0583b028d5ab Author: Brian Norris Date: Thu May 7 17:55:16 2015 -0700 mtd: fix: avoid race condition when accessing mtd->usecount On A MIPS 32-cores machine a BUG_ON was triggered because some acesses to mtd->usecount were done without taking mtd_table_mutex. kernel: Call Trace: kernel: [] __put_mtd_device+0x20/0x50 kernel: [] blktrans_release+0x8c/0xd8 kernel: [] __blkdev_put+0x1a8/0x200 kernel: [] blkdev_close+0x1c/0x30 kernel: [] __fput+0xac/0x250 kernel: [] task_work_run+0xd8/0x120 kernel: [] work_notifysig+0x10/0x18 kernel: kernel: Code: 2442ffff ac8202d8 000217fe <00020336> dc820128 10400003 00000000 0040f809 00000000 kernel: ---[ end trace 080fbb4579b47a73 ]--- Fixed by taking the mutex in blktrans_open and blktrans_release. Note that this locking is already suggested in include/linux/mtd/blktrans.h: struct mtd_blktrans_ops { ... /* Called with mtd_table_mutex held; no race with add/remove */ int (*open)(struct mtd_blktrans_dev *dev); void (*release)(struct mtd_blktrans_dev *dev); ... }; But we weren't following it. Originally reported by (and patched by) Zhang and Giuseppe, independently. Improved and rewritten. Cc: stable@vger.kernel.org Reported-by: Zhang Xingcai Reported-by: Giuseppe Cantavenera Tested-by: Giuseppe Cantavenera Acked-by: Alexander Sverdlin Signed-off-by: Brian Norris drivers/mtd/mtd_blkdevs.c | 5 +++++ 1 file changed, 5 insertions(+) commit df82ca70bfae7c168edc31b2387205b71bb887a9 Author: Maciej S. Szmigiero Date: Sun May 10 00:09:57 2015 +0200 ASoC: ac97: Remove rate constraints Remove rate constraints from generic ASoC AC'97 CODEC. Supported rates should be detected and constrained anyway by AC'97 generic code - was tested with VT1613 CODEC and iMX6 SSI controller. This way this driver can be used for platforms which don't need specialized AC'97 CODEC drivers while at the same avoiding code duplication from implementing equivalent functionality in a controller driver. Signed-off-by: Maciej Szmigiero Signed-off-by: Mark Brown sound/soc/codecs/ac97.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit c9eac46254f06b89e082fafefea389aaca8584bd Author: Axel Lin Date: Sat May 9 23:09:32 2015 +0800 ASoC: sta350: Use devm_gpiod_get_optional at appropriate place devm_gpiod_get_optional is equivalent to devm_gpiod_get(), except that when no GPIO was assigned to the requested function it will return NULL. This is convenient for drivers that need to handle optional GPIOs. I just checked the code in commit 34d7c3905adb9a9 ("ASoC: improve usage of gpiod API") and found that it should use devm_gpiod_get_optional rather than devm_gpiod_get here. Signed-off-by: Axel Lin Signed-off-by: Mark Brown sound/soc/codecs/sta350.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 79ffbf11b77d4ded9935cdd291a84936b7f003ef Author: Axel Lin Date: Sat May 9 23:08:33 2015 +0800 ASoC: sta32x: Use devm_gpiod_get_optional at appropriate place devm_gpiod_get_optional() is equivalent to devm_gpiod_get(), except that when no GPIO was assigned to the requested function it will return NULL. This is convenient for drivers that need to handle optional GPIOs. Signed-off-by: Axel Lin Signed-off-by: Mark Brown sound/soc/codecs/sta32x.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) commit cbfa9faea1f6cb2b5d271acb1d4a08295f075b87 Author: Jani Nikula Date: Tue May 12 12:14:55 2015 +0300 drm/sysfs: remove unnecessary connector type checks These attributes should be exposed for the matching connector types only, so checking is redundant. Signed-off-by: Jani Nikula Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_sysfs.c | 32 -------------------------------- 1 file changed, 32 deletions(-) commit 4bb4637b26a28c724a9edaed2290ffed7e0dcc8f Author: Jani Nikula Date: Tue May 12 12:14:54 2015 +0300 drm/sysfs: split DVI-I and TV-out attributes The show methods for the attributes of DVI-I and TV-out types have a bunch of code to deal with the differences between the two. Just split the attributes into connector type specific ones. No functional changes. Signed-off-by: Jani Nikula Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_sysfs.c | 148 ++++++++++++++++++++++++++++++-------------- 1 file changed, 101 insertions(+), 47 deletions(-) commit fe6fcdd61d31eec8aad8cea66a4e826d5c5561b1 Author: Jani Nikula Date: Tue May 12 12:14:53 2015 +0300 drm/sysfs: make optional attribute groups per connector type Split DVI-I and TV-out (which remains a group of types). As an intermediate step, still share the attributes themselves between the two. No user visible changes. Signed-off-by: Jani Nikula Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_sysfs.c | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) commit 7d4d3a5849126e64867185d651c76a2998dcdf3a Author: Jani Nikula Date: Tue May 12 12:14:52 2015 +0300 drm/sysfs: add a helper for extracting connector type from kobject This reduces duplication in the patches to follow. No functional changes. Signed-off-by: Jani Nikula Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_sysfs.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit 4d53dc0c02c1ad74dbeda89a9245f7fe15d45d02 Author: Ville Syrjälä Date: Fri May 8 17:45:07 2015 +0300 drm/edid: Add CEA modes before inferred modes Currently we're adding CEA modes after the inferred modes, which means we might get multiple modes that are very close to each other, but slightly different, which seems a bit silly. That's because duplicate mode check that occurs when adding inferred modes would not consider CEA modes as potential duplicates. Reverse the order so that CEA modes get added before inferred modes, and are thus considered potential duplicates. Or as ajax put it on irc: "< ajax> the point of the "pick a timing formula" heuristic was to generate something the sink could _likely_ sink. if it tells us timings it can sink explicitly then second-guessing seems dumb." Cc: Adam Jackson Signed-off-by: Ville Syrjälä Reviewed-by: Adam Jackson Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_edid.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 8e95dba6fbdb978a1f3836331c9cc063cb57efc0 Author: Michael S. Tsirkin Date: Mon Mar 30 07:59:32 2015 -0300 [media] media/fintek: drop pci_ids dependency This driver does not use any PCI IDs, don't include the pci_ids.h header. Signed-off-by: Michael S. Tsirkin Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/fintek-cir.c | 1 - 1 file changed, 1 deletion(-) commit e9a02a3d89b9d16eafc540d1dc78476a3bb5d4eb Author: Krzysztof Kozlowski Date: Sat May 2 00:54:25 2015 +0900 i2c: constify platform_device_id The platform_device_id is not modified by these drivers and core uses it as const. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-imx.c | 2 +- drivers/i2c/busses/i2c-mxs.c | 2 +- drivers/i2c/busses/i2c-rcar.c | 2 +- drivers/i2c/busses/i2c-s3c2410.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) commit 250d2ff01623e80943c4ffed0308b0d19fe6625d Author: Wei Yongjun Date: Thu Apr 16 09:22:46 2015 -0300 [media] rtl28xxu: fix return value check in rtl2832u_tuner_attach() In case of error, the function platform_device_register_data() returns ERR_PTR() and never returns NULL. The NULL test in the return value check should be replaced with IS_ERR(). Signed-off-by: Wei Yongjun Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/dvb-usb-v2/rtl28xxu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 59c0d7b1e46cbadca60f98f87906dd5f2d681764 Author: Christian Engelmayer Date: Sat May 2 18:59:29 2015 -0300 [media] mn88472: Fix possible leak in mn88472_init() Commit 307e95c92257 ("[media] mn88472: implement firmware parity check") introduced the usage of exit paths that do not free the already allocated firmware data in case the parity handling fails. Go through the correct exit paths. Detected by Coverity CID 1295989. Signed-off-by: Christian Engelmayer Acked-by: Benjamin Larsson Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/staging/media/mn88472/mn88472.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 699dcffc5244388a38f6323afc15ed3833c1ad96 Author: Olli Salonen Date: Tue May 5 13:54:19 2015 -0300 [media] rtl2832: add support for GoTView MasterHD 3 USB tuner GoTView MasterHD 3 is a DVB-T2/C USB 2.0 tuner. It's based on the following components: - USB bridge: RTL2832P (contains also DVB-T demodulator) - Demodulator: Si2168-A30 - Tuner: Si2148-A20 The demodulator and the tuner will need firmwares. The Si2148 uses Si2158 firmware. Antti has the firmwares available for download: http://palosaari.fi/linux/v4l-dvb/firmware/ Do note that for DVB-T either of the demodulators can be used. DVB-C and DVB-T2 are only supported by the Si2168 demodulator. The driver will register 2 frontends for the same adapter. Frontend 0 will be the RTL2832 demodulator and frontend 1 will be the Si2168 demodulator. The same tuner is used for both. As a consequence of the above, it's recommended to use application that does implement proper DVBv5 support. For some reason, the old I2C write method sporadically fails. Thus the need for an option to only use the new I2C write method supported by the RTL2832. Signed-off-by: Olli Salonen Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/rtl2832.c | 4 + drivers/media/dvb-frontends/rtl2832.h | 1 + drivers/media/dvb-frontends/rtl2832_priv.h | 25 ++++++ drivers/media/usb/dvb-usb-v2/rtl28xxu.c | 117 ++++++++++++++++++++++++++++- drivers/media/usb/dvb-usb-v2/rtl28xxu.h | 5 ++ 5 files changed, 149 insertions(+), 3 deletions(-) commit d744a0cb8a819e93ad3852705a8df7bbe4599ad4 Author: Olli Salonen Date: Tue May 5 13:54:18 2015 -0300 [media] rtl28xxu: add I2C read without write Add support for I2C read operation without a preceeding write. While here, change the error code to EOPNOTSUPP in case an unsupported I2C operation is attempted. Signed-off-by: Olli Salonen Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/dvb-usb-v2/rtl28xxu.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit ee3c3e46885946cc041f08ec68e7c5b91b087cbe Author: Olli Salonen Date: Tue May 5 13:54:17 2015 -0300 [media] si2157: support selection of IF interface The chips supported by the si2157 driver have two IF outputs (either pins 12+13 or pins 9+11). Instead of hardcoding the output to be used add an option to choose which output shall be used. As this patch changes the default behaviour, the IF interface is specified in each driver currently using si2157 driver. This is to keep bisectability. Signed-off-by: Olli Salonen Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/cx23885/cx23885-dvb.c | 4 ++++ drivers/media/pci/saa7164/saa7164-dvb.c | 3 +++ drivers/media/pci/smipcie/smipcie.c | 1 + drivers/media/tuners/si2157.c | 4 +++- drivers/media/tuners/si2157.h | 6 ++++++ drivers/media/tuners/si2157_priv.h | 1 + drivers/media/usb/cx231xx/cx231xx-dvb.c | 2 ++ drivers/media/usb/dvb-usb-v2/af9035.c | 1 + drivers/media/usb/dvb-usb-v2/dvbsky.c | 2 ++ drivers/media/usb/dvb-usb/cxusb.c | 1 + drivers/media/usb/em28xx/em28xx-dvb.c | 2 ++ 11 files changed, 26 insertions(+), 1 deletion(-) commit 7adf99d20ce0e96a70755f452e3a63824b14060f Author: Olli Salonen Date: Tue May 5 13:54:16 2015 -0300 [media] si2168: add I2C error handling Return error from si2168_cmd_execute in case the demodulator returns an error. Signed-off-by: Olli Salonen Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/si2168.c | 6 ++++++ 1 file changed, 6 insertions(+) commit c060f9329f4a5aa94d8e61c8f2bb8996a8180059 Author: Olli Salonen Date: Tue May 5 13:54:15 2015 -0300 [media] dvbsky: use si2168 config option ts_clock_gapped Change the dvbsky driver to support gapped clock instead of the current hack. Signed-off-by: Olli Salonen Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/dvb-usb-v2/dvbsky.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 8117a3121da1881f8730d38ed9ebfc1c1a6ffda9 Author: Olli Salonen Date: Tue May 5 13:54:14 2015 -0300 [media] si2168: add support for gapped clock Add a parameter in si2168_config to support gapped clock. This might be necessary on some devices with higher bitrates. Signed-off-by: Olli Salonen Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/si2168.c | 3 +++ drivers/media/dvb-frontends/si2168.h | 3 +++ drivers/media/dvb-frontends/si2168_priv.h | 1 + 3 files changed, 7 insertions(+) commit 096ea30c91b521c77964ee8c214f7ce3b9d08e7b Author: Pascal Huerst Date: Wed May 6 15:07:04 2015 +0200 i2c: omap: Add calls for pinctrl state select This adds calls to pinctrl subsystem in order to switch pin states on suspend/resume if you provide a "sleep" state in DT. If no "sleep" state is provided in the DT, these calls turn to NOPs, so we don't need error checking here. Signed-off-by: Pascal Huerst Reviewed-by: Sekhar Nori Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-omap.c | 5 +++++ 1 file changed, 5 insertions(+) commit 58d2bc7b29fe1fe1a50fd0d318d2be800331eaf2 Merge: 03d6d70 f3022c6 Author: Arnd Bergmann Date: Tue May 12 17:23:34 2015 +0200 Merge tag 'sunxi-dt-for-4.2' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux into next/dt Pull "Allwinner DT additions for 4.1, take 1" from Maxime Ripard: All the device tree related changes for the 4.1 merge window. It has a rather big diffstat, because of a lot of mechanical and harmless changes, as described below. There is mostly: - The end of the DT relicensing. All our DT should now be under the dual X11/GPL license. - Convertion of all the DT to a label based syntax, instead of duplicating the tree like was done before. - Rework of the A10s and A13 DTSI to share the common devices - A few drivers enablings: A80 USB, the A31 PMIC, A31 and A23 arch timers, etc - Fix the checkpatch warnings - A few new boards : cubieboard4, mele i7, utoo p66, auxtex t004, pcduino3 nano, gemei G9, mk808c, jesurun q5, orange pi, orange pi mini * tag 'sunxi-dt-for-4.2' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux: (84 commits) ARM: sunxi: dt: Split the SPI pinctrl groups ARM: sunxi: dt: Fix whitespace errors ARM: sunxi: DT: Fix lines over 80 characters ARM: sunxi: dt: Remove the FSF address ARM: sunxi: dts: split IR pins for A10 and A20 ARM: sun7i: dt: Add new MK808C device ARM: dts: sun6i: Set PLL6 as parent to AHB1 clock in AHB1 clock node ARM: dts: sunxi: Update ahb clocks for sun5i and sun7i ARM: dts: sun7i: Add dts file for the Jesurun Q5 top set box ARM: dts: sun5i: Enable touchscreen on Utoo P66 ARM: dts: sun7i: Add dts file for the Orangepi mini SBC ARM: dts: sun7i: Add dts file for the Orangepi SBC ARM: dts: sun7i: Add A20 SRAM and SRAM controller ARM: dts: sun5i: Add A13 and A10s SRAM and SRAM controller ARM: dts: sun4i: Add A10 SRAM and SRAM controller ARM: dts: sun5i: Add broken-hpi property for Utoo-P66 eMMC ARM: sun8i: dt: Enable A23 SMP support ARM: dts: sun6i: Add cpu thermal zones to dtsi ARM: dts: sun6i: Add cpu clock reference and operating points to dtsi ARM: sunxi: DT: Add stdout-path property ... commit 03d6d706a20b2b456a11cb898b62c45ec9310b32 Merge: 9ef1375 da29d82 Author: Arnd Bergmann Date: Tue May 12 17:22:11 2015 +0200 Merge tag 'socfpga_dts_for_v4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux into next/dt Pull "SoCFPGA DTS updates for v4.2" from Dinh Nguyen: - Add accelerometer to sockit - Update and clean up support for the Arria10 platform - Add sdmmc_clk/4 clock node SoCFPGA Cyclone5/Arria5 - Update ethernet nodes with multicast/unicast/fifo-depth properties - Add clocks for Arria10 platform * tag 'socfpga_dts_for_v4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux: ARM: socfpga: dts: add clocks to the Arria10 platform ARM: socfpga: dts: Add tx-fifo-depth and rx-fifo-depth properties ARM: socfpga: dts: Add multicast bins and unicast filter entries ARM: socfpga: dts: Add a clock node for sdmmc CIU ARM: socfpga: dts: rename socdk board file to socdk_sdmmc ARM: socfpga: dts: enable UART1 for the debug uart ARM: socfpga: dts: disable the sdmmc, and uart nodes in the base arria10 ARM: socfpga: dts: add cpu1-start-addr for Arria 10 ARM: socfpga: dts: Add adxl34x commit 9ef1375d0016287060a50382b5a222d7174378ec Merge: 0b14801 7107bb0 Author: Arnd Bergmann Date: Tue May 12 17:19:06 2015 +0200 Merge tag 'at91-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/nferre/linux-at91 into next/dt Pull "First batch of DT changes for 4.2" from Nicolas Ferre: - cleanup and addition of Overkiz boards - at91sam9x5: pwm0 pinctrl definition - delete deprecated mainck nodes * tag 'at91-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/nferre/linux-at91: ARM: at91/dt: drop deprecated mainck node from pmc ARM: at91/dt: add support for kizbox2 ARM: at91/dt: add support for kizboxmini ARM: at91/dt: sam9x5: add pinctrl for pwm0 ARM: at91/dt: at91-kizbox: update chosen node ARM: at91/dt: at91-kizbox: re-size nand partitions ARM: at91/dt: at91-kizbox: leds related changes ARM: at91/dt: at91-kizbox: gpio-keys related changes ARM: at91/dt: at91-kizbox: user proper serial uart ARM: at91/dt: at91-kizbox: sanitize file ARM: at91/dt: kizbox: rename to at91-kizbox commit 3ebee5a2e141496bb8bf6a3225ffcd703ac1dd4d Author: Mark Rutland Date: Thu May 7 16:14:59 2015 +0100 arm64: dts: kill skeleton.dtsi While skeleton.dtsi was initially conceived as a simple way to bootstrap writing a dts, it has proven to be problematic: * The #address-cells and #size-cells values used in skeleton.dtsi may not match what a user wants (e.g. when they need to describe a range larger than 4GB). * For dts files where memory nodes have unit-addresses, it adds a redundant /memory node, for which the reg entry may not be appropriately sized (e.g. where #size-cells has been overridden). * For dts files which assume that a bootloader will fill in the memory node(s), no node is present in the dts (and hence there is no attached comment), making it hard to distinguish these cases from bad dts files, and masking any warnings dtc may produce w.r.t. missing nodes. * The default empty /chosen and /aliases are somewhat useless, and it would be preferable for dts to fill these in (e.g. for /aliases/serial0 and /chosen/stdout-path). This patch removes skeleton.dtsi from arm64. There are currently no users, so we can remove it before any appear. Signed-off-by: Mark Rutland Acked-by: Rob Herring Cc: Arnd Bergmann Cc: Catalin Marinas Cc: Olof Johansson Cc: Will Deacon Signed-off-by: Arnd Bergmann arch/arm64/boot/dts/skeleton.dtsi | 13 ------------- 1 file changed, 13 deletions(-) commit 1290a447cf53b5a303d06f74dfb3b65497c92439 Author: Geert Uytterhoeven Date: Tue Apr 28 14:08:04 2015 +0200 ARM: multi_v7_defconfig: Replace USB_RCAR_GEN2_PHY by PHY_RCAR_GEN2 The legacy-only USB_RCAR_GEN2_PHY driver was replaced by the DT-only PHY_RCAR_GEN2 driver. Signed-off-by: Geert Uytterhoeven Signed-off-by: Arnd Bergmann arch/arm/configs/multi_v7_defconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0b1480103f9dc1b590d29d6e9a7b29754e157536 Merge: 8e678e0 9fac45c Author: Arnd Bergmann Date: Tue May 12 17:05:39 2015 +0200 Merge tag 'hip04-dt-for-4.2' of git://github.com/hisilicon/linux-hisi into next/dt Merge "ARM: DT: Hisilicon hip04 soc and D01 board updates for 4.2" from Wei Xu: - Add hip04 GPIO nodes - Add NANDC nodes for hip04 and D01 board - Add hip04 ethernet related nodes * tag 'hip04-dt-for-4.2' of git://github.com/hisilicon/linux-hisi: ARM: dts: add HiSilicon hip04 ethernet controller resource mtd: hisilicon: add device tree node for NAND controller ARM: dts: hip04: add GPIO pieces commit 3ef9866f2d645634cab65a5846e78fd27f69e2aa Merge: 1a7f447 ecda654 Author: Arnd Bergmann Date: Tue May 12 17:03:34 2015 +0200 Merge tag 'hip04-config-for-4.2' of git://github.com/hisilicon/linux-hisi into next/defconfig Merge "ARM: HIP04: configure updates for 4.2" from Wei Xu: - Enable ethernet on hip04 SoC - Enable Sysnopsis GPIO controller on hip04 SoC * tag 'hip04-config-for-4.2' of git://github.com/hisilicon/linux-hisi: ARM: defconfig: hisi: enable HiSilicon hip04 ethernet controller ARM: hip04: add GPIO configure in hisi_defconfig commit 1a7f4473dd4d51736a8c99d7b5c050d88dcf7e9a Author: Masahiro Yamada Date: Fri May 8 13:07:12 2015 +0900 ARM: multi_v7_defconfig: enable UniPhier SoC family Add UniPhier, a new citizen in the ARM multi platform. Signed-off-by: Masahiro Yamada Signed-off-by: Arnd Bergmann arch/arm/configs/multi_v7_defconfig | 1 + 1 file changed, 1 insertion(+) commit 8e678e06e7d4926a4b3427359a6b13ab4b6dce73 Author: Masahiro Yamada Date: Fri May 8 13:07:13 2015 +0900 ARM: dts: UniPhier: add support for UniPhier SoCs and boards Initial device trees for UniPhier SoCs: PH1-sLD3, PH1-LD4, PH1-Pro4, and PH1-sLD8. Signed-off-by: Masahiro Yamada Signed-off-by: Arnd Bergmann arch/arm/boot/dts/Makefile | 5 ++ arch/arm/boot/dts/uniphier-ph1-ld4-ref.dts | 79 ++++++++++++++++++ arch/arm/boot/dts/uniphier-ph1-ld4.dtsi | 110 +++++++++++++++++++++++++ arch/arm/boot/dts/uniphier-ph1-pro4-ref.dts | 79 ++++++++++++++++++ arch/arm/boot/dts/uniphier-ph1-pro4.dtsi | 117 +++++++++++++++++++++++++++ arch/arm/boot/dts/uniphier-ph1-sld3-ref.dts | 80 ++++++++++++++++++ arch/arm/boot/dts/uniphier-ph1-sld3.dtsi | 117 +++++++++++++++++++++++++++ arch/arm/boot/dts/uniphier-ph1-sld8-ref.dts | 79 ++++++++++++++++++ arch/arm/boot/dts/uniphier-ph1-sld8.dtsi | 110 +++++++++++++++++++++++++ arch/arm/boot/dts/uniphier-support-card.dtsi | 65 +++++++++++++++ 10 files changed, 841 insertions(+) commit 3d00d04f60b7b0859d877c6a4d728d84db4c5914 Author: Masahiro Yamada Date: Fri May 8 13:07:14 2015 +0900 MAINTAINERS: add myself as ARM/UniPhier maintainer Signed-off-by: Masahiro Yamada Signed-off-by: Arnd Bergmann MAINTAINERS | 7 +++++++ 1 file changed, 7 insertions(+) commit ba56a9876decc99f361ff4e8c7e15253c2b1930d Author: Masahiro Yamada Date: Fri May 8 13:07:11 2015 +0900 ARM: UniPhier: add basic support for UniPhier architecture Initial commit for a new SoC family, UniPhier, developed by Socionext Inc. (formerly, System LSI Business Division of Panasonic Corporation). This commit includes a minimal set of components for booting the kernel, including SMP support. Signed-off-by: Masahiro Yamada Signed-off-by: Arnd Bergmann arch/arm/Kconfig | 2 + arch/arm/Makefile | 1 + arch/arm/mach-uniphier/Kconfig | 11 +++++ arch/arm/mach-uniphier/Makefile | 2 + arch/arm/mach-uniphier/platsmp.c | 90 +++++++++++++++++++++++++++++++++++++++ arch/arm/mach-uniphier/uniphier.c | 30 +++++++++++++ 6 files changed, 136 insertions(+) commit 4752e2076f574445cddb146df3d183394131585c Merge: dfee815 cb6a7a9 Author: Arnd Bergmann Date: Tue May 12 16:53:39 2015 +0200 Merge tag 'sti-defconfig-for-v4.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mcoquelin/sti into next/defconfig Merge "STi defconfig for v4.2, round 1" from Maxime Coquelin: Highlights: ----------- - Enable ST's LPC Watchdog driver - Enable ST's LPC RTC driver * tag 'sti-defconfig-for-v4.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mcoquelin/sti: ARM: multi_v7_defconfig: Enable support for ST's LPC RTC ARM: multi_v7_defconfig: Enable support for ST's LPC Watchdog commit 3b2cd4d08a8abb43e0fb5b0b2489a63097da1383 Merge: 905ea44 b3d37f9 Author: Arnd Bergmann Date: Tue May 12 16:50:28 2015 +0200 Merge tag 'sti-dt-for-v4.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mcoquelin/sti into next/dt Pull "STi DT updates for v4.2, round 1." from Maxime Coquelin: Highlights: ----------- - Add DT nodes for SSC on STiH407 family - Add DT nodes for SD/MMC on STiH407 & STiH418 - Add DT node for LPC on STiH407 - Add Sata DT nodes for STiH407 - Fix PIO3 & PIO35 pins retiming on STiH407 * tag 'sti-dt-for-v4.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mcoquelin/sti: ARM: DT: STi: STiH407: Add sata DT nodes. ARM: STi: DT: STiH407: Fix retime pin mask for PIO5 and PIO35 ARM: STi: DT: STiH407: Add Device Tree node for the LPC mfd: dt-bindings: Provide human readable defines for LPC mode choosing ARM: STi: DT: STiH418: Add dt nodes for sdhci and emmc. ARM: STi: DT: STiH407: Add dt nodes for sdhci and emmc. ARM: sti: Provide DT nodes for SBC SSC[0..2] ARM: sti: Provide DT nodes for SSC[0..4] commit 11f52002bfb4ceef26f04ab46cabd37e90f6b1ed Merge: a746568 57006d3 Author: Arnd Bergmann Date: Tue May 12 16:47:51 2015 +0200 Merge tag 'ccn/updates-for-4.2' of git://git.linaro.org/people/pawel.moll/linux into next/drivers Pull "Set of ARM CCN PMU driver updates" from Pawel Moll: - fixed a nasty bitfield mangling bug - added new hints to the perf userspace tool - pinned events processing to a single PMU - modified events initialisation so they can be rotated now * tag 'ccn/updates-for-4.2' of git://git.linaro.org/people/pawel.moll/linux: bus: arm-ccn: Allocate event when it is being added, not initialised bus: arm-ccn: Do not group CCN events with other PMUs bus: arm-ccn: Provide required event arguments bus: arm-ccn: cpumask attribute bus: arm-ccn: Fix node->XP config conversion commit 8df2914598c5300a937760daa271fdbddce1108c Merge: b396cca e51423d Author: David S. Miller Date: Tue May 12 10:39:27 2015 -0400 Merge branch 'netdev_page_frags' Alexander Duyck says: ==================== Refactor netdev page frags and move them into mm/ This patch series addresses several things. First I found an issue in the performance of the pfmemalloc check from build_skb. To work around it I have provided a cached copy of pfmemalloc to be used in __netdev_alloc_skb and __napi_alloc_skb. Second I moved the page fragment allocation logic into the mm tree and added functionality for freeing page fragments. I had to fix igb before I could do this as it was using a reference to NETDEV_FRAG_PAGE_MAX_SIZE incorrectly. Finally I went through and replaced all of the duplicate code that was calling put_page and replaced it with calls to skb_free_frag. With these changes in place a simple receive and drop test increased from a packet rate of 8.9Mpps to 9.8Mpps. The gains breakdown as follows: 8.9Mpps Before 9.8Mpps After ------------------------ ------------------------ 7.8% put_compound_page 9.1% __free_page_frag 3.9% skb_free_head 1.1% put_page 4.9% build_skb 3.8% __napi_alloc_skb 2.5% __alloc_rx_skb 1.9% __napi_alloc_skb ==================== Signed-off-by: David S. Miller commit e51423d9959df283c5af4ff13703f87e39d6e144 Author: Alexander Duyck Date: Wed May 6 21:12:31 2015 -0700 bnx2x, tg3: Replace put_page(virt_to_head_page()) with skb_free_frag() Signed-off-by: Alexander Duyck Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 2 +- drivers/net/ethernet/broadcom/tg3.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit edea5845781c3a87a577755c22eb1f0851fbf944 Author: Alexander Duyck Date: Wed May 6 21:12:25 2015 -0700 hisilicon: Replace put_page(virt_to_head_page()) with skb_free_frag() Signed-off-by: Alexander Duyck Signed-off-by: David S. Miller drivers/net/ethernet/hisilicon/hip04_eth.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6bf93ba89ea22bec5f9d88bf458a230de59d141e Author: Alexander Duyck Date: Wed May 6 21:12:20 2015 -0700 e1000: Replace e1000_free_frag with skb_free_frag Signed-off-by: Alexander Duyck Acked-by: Jeff Kirsher Signed-off-by: David S. Miller drivers/net/ethernet/intel/e1000/e1000_main.c | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) commit 13dc0d2bc66ffed3a27471415ff4c4cb974c3263 Author: Alexander Duyck Date: Wed May 6 21:12:14 2015 -0700 mvneta: Replace put_page(virt_to_head_page(ptr)) w/ skb_free_frag Signed-off-by: Alexander Duyck Signed-off-by: David S. Miller drivers/net/ethernet/marvell/mvneta.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7d525c4edf10e3dc334347f39da74b53a18e21ca Author: Alexander Duyck Date: Wed May 6 21:12:08 2015 -0700 netcp: Replace put_page(virt_to_head_page(ptr)) w/ skb_free_frag Signed-off-by: Alexander Duyck Signed-off-by: David S. Miller drivers/net/ethernet/ti/netcp_core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 181edb2bfa22b50817684135ab6430ed2808abf0 Author: Alexander Duyck Date: Wed May 6 21:12:03 2015 -0700 net: Add skb_free_frag to replace use of put_page in freeing skb->head This change adds a function called skb_free_frag which is meant to compliment the function netdev_alloc_frag. The general idea is to enable a more lightweight version of page freeing since we don't actually need all the overhead of a put_page, and we don't quite fit the model of __free_pages. Signed-off-by: Alexander Duyck Signed-off-by: David S. Miller include/linux/skbuff.h | 5 +++++ net/core/skbuff.c | 10 ++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) commit b63ae8ca096dfdbfeef6a209c30a93a966518853 Author: Alexander Duyck Date: Wed May 6 21:11:57 2015 -0700 mm/net: Rename and move page fragment handling from net/ to mm/ This change moves the __alloc_page_frag functionality out of the networking stack and into the page allocation portion of mm. The idea it so help make this maintainable by placing it with other page allocation functions. Since we are moving it from skbuff.c to page_alloc.c I have also renamed the basic defines and structure from netdev_alloc_cache to page_frag_cache to reflect that this is now part of a different kernel subsystem. I have also added a simple __free_page_frag function which can handle freeing the frags based on the skb->head pointer. The model for this is based off of __free_pages since we don't actually need to deal with all of the cases that put_page handles. I incorporated the virt_to_head_page call and compound_order into the function as it actually allows for a signficant size reduction by reducing code duplication. Signed-off-by: Alexander Duyck Signed-off-by: David S. Miller include/linux/gfp.h | 5 +++ include/linux/mm_types.h | 18 +++++++++ include/linux/skbuff.h | 3 -- mm/page_alloc.c | 98 ++++++++++++++++++++++++++++++++++++++++++++++ net/core/skbuff.c | 100 +++-------------------------------------------- 5 files changed, 127 insertions(+), 97 deletions(-) commit 0e39250845c0f91acc64264709b25f7f9b85c2c3 Author: Alexander Duyck Date: Wed May 6 21:11:51 2015 -0700 net: Store virtual address instead of page in netdev_alloc_cache This change makes it so that we store the virtual address of the page in the netdev_alloc_cache instead of the page pointer. The idea behind this is to avoid multiple calls to page_address since the virtual address is required for every access, but the page pointer is only needed at allocation or reset of the page. While I was at it I also reordered the netdev_alloc_cache structure a bit so that the size is always 16 bytes by dropping size in the case where PAGE_SIZE is greater than or equal to 32KB. Signed-off-by: Alexander Duyck Signed-off-by: David S. Miller include/linux/skbuff.h | 5 ++--- net/core/skbuff.c | 55 +++++++++++++++++++++++++++++--------------------- 2 files changed, 34 insertions(+), 26 deletions(-) commit 2ee52ad4962b32797bac33fa29ec8159e64c4ee3 Author: Alexander Duyck Date: Wed May 6 21:11:45 2015 -0700 igb: Don't use NETDEV_FRAG_PAGE_MAX_SIZE in descriptor calculation This change updates igb so that it will correctly perform the descriptor count calculation. Previously it was taking NETDEV_FRAG_PAGE_MAX_SIZE into account with isn't really correct since a different value is used to determine the size of the pages used for TCP. That is actually determined by SKB_FRAG_PAGE_ORDER. Signed-off-by: Alexander Duyck Signed-off-by: David S. Miller drivers/net/ethernet/intel/igb/igb_main.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) commit 9451980a6646ed487efce04a9df28f450935683e Author: Alexander Duyck Date: Wed May 6 21:11:40 2015 -0700 net: Use cached copy of pfmemalloc to avoid accessing page While testing I found that the testing for pfmemalloc in build_skb was rather expensive. I found the issue to be two-fold. First we have to get from the virtual address to the head page and that comes at the cost of something like 11 cycles. Then there is the cost for reading pfmemalloc out of the head page which can be cache cold due to the fact that put_page_testzero is likely invalidating the cache-line on one or more CPUs as the fragments can be shared. To avoid this extra expense I have added a pfmemalloc member to the netdev_alloc_cache. I then pushed pieces of __alloc_rx_skb into __napi_alloc_skb and __netdev_alloc_skb so that I could rewrite them to make use of the cached pfmemalloc value. The result is that my perf traces show a reduction from 9.28% overhead to 3.7% for the code covered by build_skb, __alloc_rx_skb, and __napi_alloc_skb when performing a test with the packet being dropped instead of being handed to napi_gro_receive. Signed-off-by: Alexander Duyck Signed-off-by: David S. Miller net/core/skbuff.c | 141 ++++++++++++++++++++++++++++++------------------------ 1 file changed, 79 insertions(+), 62 deletions(-) commit 29ad1a7a9e08f1d2b6795c5278a0c0fd23679ded Author: kbuild test robot Date: Tue May 12 19:43:59 2015 +0800 spi: bcm2835: bcm2835_dma_release() can be static Signed-off-by: Fengguang Wu Signed-off-by: Mark Brown drivers/spi/spi-bcm2835.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a746568e5173214f0fa1b532c6c2f12482bc637f Merge: 030bbdb 48f1a9a Author: Arnd Bergmann Date: Tue May 12 16:35:29 2015 +0200 Merge tag 'simple-mfd' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator into next/drivers Merge "Simple MFD base patches and cleanups" from Linus Walleij: - Document MFD DT bindings - Instantiate subdevices for simple MFDs - Switch Integrator and RealView to use the simple MFD - Augment LED driver to probe from platform device - Add LEDs to Juno Vexpress64 * tag 'simple-mfd' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator: arm64: add LEDs and some trigger support to defconfig arm64: juno: Add APB registers and LEDs using syscon leds: syscon: instantiate from platform device ARM: dts: update syscons to use simple-mfd MFD/OF: document MFD devices and handle simple-mfd commit d0091f5749eadfce87ce0436994584637a353e2c Author: Sean Young Date: Fri May 8 10:29:58 2015 +0100 HID: core: remove phidgets from ignore list Once there were kernel drivers for some of the phidgets devices, and for those kernel drivers to work the hid system needed exceptions. Now the kernel drivers are long gone in favour of the user-space drivers. The user-space drivers support many more phidget devices and uses libusb. The udev rules set up permissions so that the kernel hid driver can be unbound from libusb, as it does for many devices not in hid_ignore_list. http://www.phidgets.com/docs/OS_-_Linux Signed-off-by: Sean Young Signed-off-by: Jiri Kosina drivers/hid/hid-core.c | 11 ----------- drivers/hid/hid-ids.h | 13 ------------- 2 files changed, 24 deletions(-) commit 7e5cd69a9152c70985ebf820e357da59dfa8f152 Author: Geert Uytterhoeven Date: Tue May 5 18:32:22 2015 +0200 i2c: 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 Signed-off-by: Wolfram Sang drivers/i2c/busses/Kconfig | 4 ++-- drivers/i2c/muxes/Kconfig | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) commit bea6ff020f3a7228bc6b625071674c5129ffc185 Author: Shubhrajyoti Datta Date: Tue May 5 18:06:05 2015 +0530 i2c: xiic: Fix kerneldoc warnings info(drivers/i2c/busses/i2c-xiic.c:55): Scanning doc for struct xiic_i2c Warning(drivers/i2c/busses/i2c-xiic.c:79): No description found for parameter 'endianness' Signed-off-by: Shubhrajyoti Datta Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-xiic.c | 1 + 1 file changed, 1 insertion(+) commit 905ea449c6bf0d3d6d0c89363f4e5e84a56783d8 Author: Baruch Siach Date: Tue Apr 28 13:59:42 2015 +0300 ARM: digicolor: add i2c master controller support Signed-off-by: Baruch Siach Signed-off-by: Arnd Bergmann arch/arm/boot/dts/cx92755.dtsi | 11 +++++++++++ arch/arm/boot/dts/cx92755_equinox.dts | 4 ++++ 2 files changed, 15 insertions(+) commit f4e18ae33f65e1a6ad56d58abca0bde57ef5bb0d Author: Baruch Siach Date: Tue Apr 28 13:59:41 2015 +0300 ARM: digicolor: enable CX92755 on-chip RTC device Signed-off-by: Baruch Siach Signed-off-by: Arnd Bergmann arch/arm/boot/dts/cx92755.dtsi | 6 ++++++ 1 file changed, 6 insertions(+) commit dfee81513cc42d08e40b0532076ce9ced65b82bd Author: Baruch Siach Date: Tue Apr 28 13:59:44 2015 +0300 ARM: multi_v7_defconfig: enable Conexant Digicolor platform This enables the digicolor drivers that are already merged as part of the multi_v7_defconfig file. [arnd: change rtc and i2c to loadable modules] Signed-off-by: Baruch Siach Signed-off-by: Arnd Bergmann arch/arm/configs/multi_v7_defconfig | 5 +++++ 1 file changed, 5 insertions(+) commit 4489750fa56e5c2ed49b3bf3590c0bfdab1a8a08 Author: Doug Anderson Date: Mon May 11 12:44:28 2015 -0700 i2c: rk3x: Increase wait timeout to 1 second Although unlikely, it is remotely possible for an i2c command to need more than 200ms complete. Unlike smbus, i2c devices can clock stretch for an unspecified amount of time. The longest time I've seen specified for a device is 144ms (bq27541 battery gas), but one could imagine a device taking a bit slower. 1 second "ought to be enough for anyone." The above is not the only justifcation for going above 200ms for a timeout, though. It turns out that if you've got a large number of printks going out to a serial console, interrupts on a CPU can be disabled for hundreds of milliseconds. That's not a great situation to be in to start with (maybe we should put a cap in vprintk_emit()) but it's pretty annoying to start seeing unexplained i2c timeouts. Note that to understand why we can timeout when printk has interrupts disabled, you need to understand that on current Linux ARM kernels interrupts are routed to a single CPU in a multicore system. Thus, you can get: 1. CPU1 is running rk3x_i2c_xfer() 2. CPU0 calls vprintk_emit(), which disables all IRQs on CPU0. 3. I2C interrupt is ready but is set to only run on CPU0, where IRQs are disabled. 4. CPU1 timeout expires. I2C interrupt is still ready, but CPU0 is still sitting in the same vprintk_emit() 5. CPU1 sees that no interrupt happened in 200ms, so timeout. A normal system shouldn't see i2c timeouts anyway, so increasing the timeout should help people debugging without hurting other people excessively. Signed-off-by: Doug Anderson Tested-by: Caesar Wang Acked-by: Uwe Kleine-König Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-rk3x.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8b00f46951bed1edd9c5cb9d9adb62d28bbe7623 Author: Arnaldo Carvalho de Melo Date: Mon May 11 18:13:14 2015 -0300 perf tests: Fix map_groups refcount test When introducing reference counting for struct thread instances I forgot to remove the synthetic threads from the machine's rbtree so that it then the threads would have just one reference and thus the thread__put() replacing the thread__delete() really turns into a thread__delete() (thread->refcnt == 1 at thread__put() time) and thus drop the thread->mg refcount, as expected by the this test. Fix it by calling machine__remove_thread() (the counterpart of machine__findnew_thread()) on all the synthetic threads after the checks that involves the rbtree were done. Before: # perf test -v mg 30: Test thread mg sharing : --- start --- test child forked, pid 26995 FAILED tests/thread-mg-share.c:68 wrong refcnt (4 != 3) test child finished with -1 ---- end ---- Test thread mg sharing: FAILED! # After: # perf test mg 30: Test thread mg sharing: Ok # Fixes: b91fc39f4ad7 ("perf machine: Protect the machine->threads with a rwlock") Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-uoqq0fjei90ohhhcboz6ay33@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/thread-mg-share.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) commit 0ceb8f6e6cbafee0fa0e671e48213e24fae887f7 Author: Arnaldo Carvalho de Melo Date: Mon May 11 18:08:12 2015 -0300 perf machine: No need to keep a refcnt for last_match Since it is all associated with the refcount for keeping the thread in the rbtree, it is excessive and unecessarily complex to hold a refcont when changing machine->last_match. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-98kuesmfwtvhsrzx7ttyb0kt@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/machine.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 8f1960138baf8a6c139917ecbc032e7916d109ef Author: Arnaldo Carvalho de Melo Date: Mon May 11 16:30:20 2015 -0300 perf tests: Show refcounting broken expectations in thread-mg-share test To help understand the failure. [acme@zoo linux]$ perf test -v 30 30: Test thread mg sharing : --- start --- test child forked, pid 12275 FAILED tests/thread-mg-share.c:68 wrong refcnt (4 != 3) test child finished with -1 ---- end ---- Test thread mg sharing: FAILED! [acme@zoo linux]$ This is under investigation, the thread__delete() calls were replaced with thread__put(), and those cause mismatches because now we need to be more judicious with the thread lifetime management. I.e. previously the thread__delete() would drop the map_group refcount, but now since thread__put doesn't call thread__delete() necessarily. because we have other refcount holders, the map_group refcount will not be as we expected when this test was implemented. Will be fixed soon... Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-9y8e3f7ukzco5loxvnlitpfq@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/tests.h | 9 +++++++++ tools/perf/tests/thread-mg-share.c | 12 ++++++------ 2 files changed, 15 insertions(+), 6 deletions(-) commit 021162cf02fcfa80cbae5f3b7304e9cb392962eb Author: Namhyung Kim Date: Mon May 11 22:44:39 2015 +0900 perf report: Do not restrict -T option by other options It seems there's no reason to suppress per-thread event stat by -T option when -s or -p option is used. Make it work with those options. Signed-off-by: Namhyung Kim Cc: David Ahern Cc: Jiri Olsa Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1431351879-23798-1-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-report.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) commit 189c466f77d421aef5c196454ab2e9517af7abc9 Author: He Kuang Date: Mon May 11 12:28:35 2015 +0000 perf tests: Fix to get negative exit codes WEXITSTATUS consists of the least significant 8 bits of the status argument, so we should convert the value to signed char if we have valid negative exit codes. And the return value of test->func() contains negative values: enum { TEST_OK = 0, TEST_FAIL = -1, TEST_SKIP = -2, }; Before this patch: $ perf test -v 1 ... test child finished with 254 ---- end ---- vmlinux symtab matches kallsyms: FAILED! After this patch: $ perf test -v 1 ... test child finished with -2 ---- end ---- vmlinux symtab matches kallsyms: Skip Signed-off-by: He Kuang Acked-by: Jiri Olsa Cc: Peter Zijlstra Cc: Wang Nan Link: http://lkml.kernel.org/r/1431347316-30401-1-git-send-email-hekuang@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/builtin-test.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7d5eaba9b33682b734e3a79c21c4a9a5f91624b1 Author: He Kuang Date: Mon May 11 09:25:04 2015 +0000 perf probe: Show better error message when failed to find variable Indicate to check variable location range in error message when we got failed to find the variable. Before this patch: $ perf probe --add 'generic_perform_write+118 bytes' Failed to find the location of bytes at this address. Perhaps, it has been optimized out. Error: Failed to add events. After this patch: $ perf probe --add 'generic_perform_write+118 bytes' Failed to find the location of the 'bytes' variable at this address. Perhaps it has been optimized out. Use -V with the --range option to show 'bytes' location range. Error: Failed to add events. Signed-off-by: He Kuang Acked-by: Masami Hiramatsu Cc: Jiri Olsa Cc: Peter Zijlstra Cc: Wang Nan Link: http://lkml.kernel.org/r/1431336304-16863-3-git-send-email-hekuang@huawei.com [ Improve the error message based on lkml thread ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/probe-finder.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit 349e8d2611316cce11c0b9d0830ebb585c9b82b8 Author: He Kuang Date: Mon May 11 09:25:03 2015 +0000 perf probe: Add --range option to show a variable's location range It is not easy for users to get the accurate byte offset or the line number where a local variable can be probed. With '--range' option, local variables in the scope of the probe point are showed with a byte offset range, and can be added according to this range information. For example, there are some variables in the function generic_perform_write(): 0 ssize_t generic_perform_write(struct file *file, 1 struct iov_iter *i, loff_t pos) 2 { 3 struct address_space *mapping = file->f_mapping; 4 const struct address_space_operations *a_ops = mapping->a_ops; ... 42 status = a_ops->write_begin(file, mapping, pos, bytes, flags, &page, &fsdata); 44 if (unlikely(status < 0)) But we fail when we try to probe the variable 'a_ops' at line 42 or 44. $ perf probe --add 'generic_perform_write:42 a_ops' Failed to find the location of a_ops at this address. Perhaps, it has been optimized out. This is because the source code do not match the assembly, so a variable may not be available in the source code line where it appears. After this patch, we can lookup the accurate byte offset range of a variable, 'INV' indicates that this variable is not valid at the given point, but available in the scope: $ perf probe --vars 'generic_perform_write:42' --range Available variables at generic_perform_write:42 @ [INV] ssize_t written @ [INV] struct address_space_operations* a_ops @ [VAL] (unknown_type) fsdata @ [VAL] loff_t pos @ [VAL] long int status @ [VAL] long unsigned int bytes @ [VAL] struct address_space* mapping @ [VAL] struct iov_iter* i @ [VAL] struct page* page @ Then it is more clear for us to add a probe with this variable: $ perf probe --add 'generic_perform_write+170 a_ops' Added new event: probe:generic_perform_write (on generic_perform_write+170 with a_ops) Signed-off-by: He Kuang Acked-by: Masami Hiramatsu Cc: Jiri Olsa Cc: Peter Zijlstra Cc: Wang Nan Link: http://lkml.kernel.org/r/1431336304-16863-2-git-send-email-hekuang@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-probe.c | 2 + tools/perf/util/dwarf-aux.c | 121 +++++++++++++++++++++++++++++++++++++++++ tools/perf/util/dwarf-aux.h | 2 + tools/perf/util/probe-event.h | 1 + tools/perf/util/probe-finder.c | 57 ++++++++++++++----- 5 files changed, 170 insertions(+), 13 deletions(-) commit fb9596d1731cc37da6489de439f8b876f3a12db2 Author: He Kuang Date: Mon May 11 09:25:02 2015 +0000 perf probe: Remove length limitation for showing available variables Use struct strbuf instead of bare char[] to remove the length limitation of variables in variable_list, so they will not disappear due to overlength, and make preparation for adding more description for variables. Signed-off-by: He Kuang Acked-by: Masami Hiramatsu Cc: Jiri Olsa Cc: Peter Zijlstra Cc: Wang Nan Link: http://lkml.kernel.org/r/1431336304-16863-1-git-send-email-hekuang@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/dwarf-aux.c | 50 +++++++++++++++++++----------------------- tools/perf/util/dwarf-aux.h | 4 ++-- tools/perf/util/probe-finder.c | 17 ++++++++------ 3 files changed, 34 insertions(+), 37 deletions(-) commit ff8f695c0ec9d73d8a9f92fe634d6476ad74e3a1 Author: He Kuang Date: Mon May 11 12:28:36 2015 +0000 perf trace: Removed duplicated NULL test No need to test trace.evlist against NULL twice. Signed-off-by: He Kuang Cc: Jiri Olsa Cc: Peter Zijlstra Cc: Wang Nan Link: http://lkml.kernel.org/r/1431347316-30401-2-git-send-email-hekuang@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-trace.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit b138f42ed4920f808b5599efc2c4b150c27a4153 Author: Namhyung Kim Date: Sun May 10 00:19:43 2015 +0900 perf report: Force tty output if -T/--thread option is given The -T/--thread option is supported only on --stdio mode (at least for now). So enforce the tty output if the option was requested. Signed-off-by: Namhyung Kim Cc: David Ahern Cc: Jiri Olsa Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1431184784-30525-2-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-report.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1f91d5fd03d410365d9781ce981f9712b19a0751 Author: Namhyung Kim Date: Sun May 10 00:19:42 2015 +0900 perf tools: Document relation of per-thread event count feature The 'perf record -s' and 'perf report -T' should be used together to see per-thread event counts. Document the relation of these commands. Signed-off-by: Namhyung Kim Cc: David Ahern Cc: Jiri Olsa Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1431184784-30525-1-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/perf-record.txt | 3 ++- tools/perf/Documentation/perf-report.txt | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) commit 08a9b9857fc2d77600f09f3d342f6c64d25083b2 Author: Arnaldo Carvalho de Melo Date: Mon May 11 11:41:17 2015 -0300 perf kmem: Fix compiler warning about may be accessing uninitialized variable The last argument to strtok_r doesn't need to be initialized, its just a placeholder to make this routine reentrant, but gcc doesn't know about that and complains, breaking the build, fix it by setting it to NULL. Fixes: 0e11115644b3 ("perf kmem: Print gfp flags in human readable string") Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-iyyvkbnkrd9g19f6ta9zfkem@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-kmem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b8a3f52e9824841fb1a79de649fc3487f734bc9f Author: Axel Lin Date: Thu May 7 15:34:37 2015 +0800 gpio: xlp: Add missing .owner and .label settings for gpio_chip Signed-off-by: Axel Lin Signed-off-by: Linus Walleij drivers/gpio/gpio-xlp.c | 2 ++ 1 file changed, 2 insertions(+) commit cefc03e5995e82082b1e4cda4ef565ccdaff1f45 Author: Andrew Bresticker Date: Wed May 6 12:59:03 2015 -0700 pinctrl: Add Pistachio SoC pin control driver Add a driver for the pin controller present on the IMG Pistachio SoC. This driver provides pinmux and pinconfig operations as well as GPIO and IRQ chips for the GPIO banks. Changes from v4: - Switched to using gpiochip_add_pin_range(). - Fixed up Kconfig entry. Changes from v3: - Addressed review comments from Ezequiel. Changes from v2: - Removed module stuff which would be compiled out. Changes from v1: - Addressed review comments from Linus. - Changed compatible string to "img,pistachio-system-pinctrl". - Look for GPIO sub-nodes by name. - A couple of bug fixes. Signed-off-by: Damien Horsley Signed-off-by: Govindraj Raja Signed-off-by: Ezequiel Garcia Signed-off-by: Kevin Cernekee Signed-off-by: Andrew Bresticker Cc: James Hartley Cc: James Hogan Signed-off-by: Linus Walleij drivers/pinctrl/Kconfig | 8 + drivers/pinctrl/Makefile | 1 + drivers/pinctrl/pinctrl-pistachio.c | 1504 +++++++++++++++++++++++++++++++++++ 3 files changed, 1513 insertions(+) commit 403fbdee4728afc4e5c4b0a24b8eac3b52595b39 Author: Joachim Eastwood Date: Wed May 6 19:11:21 2015 +0200 pinctrl: lpc18xx: create pin cap lookup helper Both pconf_get_pin and pconf_set_pin needs to lookup pin cap based on the pin number. Create a common helper function that both functions can use that also handles the case where no pin number is found in the pins array. This also fixes a small bug in pconf_get_pin where pconf_get_i2c0 would use the pins array index rather than the pin number. Signed-off-by: Joachim Eastwood Signed-off-by: Linus Walleij drivers/pinctrl/pinctrl-lpc18xx.c | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) commit e8e36d2f1873218a2fdaf0b7cd335b84e8be6112 Author: Geert Uytterhoeven Date: Tue Apr 28 12:15:06 2015 +0200 pinctrl: sh-pfc: r8a73a4: Remove obsolete multi-platform check As of commit 9d07d414d4c33d86 ("ARM: shmobile: r8a73a4: ape6evm: Remove legacy platform"), r8a73a4 is only supported in generic ARM multi-platform builds. Hence CONFIG_ARCH_MULTIPLATFORM is always set, and the check can be removed. Signed-off-by: Geert Uytterhoeven Acked-by: Laurent Pinchart Acked-by: Simon Horman Signed-off-by: Linus Walleij drivers/pinctrl/sh-pfc/pfc-r8a73a4.c | 4 ---- 1 file changed, 4 deletions(-) commit 7e15a967a2d686bc959a268fd12c50e39d705416 Author: Ulrich Hecht Date: Tue May 12 11:13:21 2015 +0200 pinctrl: sh-pfc: Add renesas,pfc-r8a7793 to binding documentation Also renames "R-Car M2" to "R-Car M2-W" to avoid confusion. Signed-off-by: Ulrich Hecht Acked-by: Simon Horman Acked-by: Geert Uytterhoeven Acked-by: Laurent Pinchart Cc: devicetree@vger.kernel.org Signed-off-by: Linus Walleij Documentation/devicetree/bindings/pinctrl/renesas,pfc-pinctrl.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit cb0ba73d09a0deb03b292c39b1c39e1d622e66df Author: Ulrich Hecht Date: Tue May 12 11:13:20 2015 +0200 pinctrl: sh-pfc: Enable building of r8a7793 PFC support Signed-off-by: Ulrich Hecht Acked-by: Geert Uytterhoeven Acked-by: Laurent Pinchart Signed-off-by: Linus Walleij drivers/pinctrl/sh-pfc/Kconfig | 5 +++++ drivers/pinctrl/sh-pfc/Makefile | 1 + 2 files changed, 6 insertions(+) commit 19e1e98fbf68d398bab944244f883ae14535b196 Author: Ulrich Hecht Date: Tue May 12 11:13:19 2015 +0200 pinctrl: sh-pfc: Add r8a7793 support Regarding pin control, r8a7791 and r8a7793 are identical, so it is sufficient to add an sh_pfc_soc_info structure to enable r8a7793 support. Signed-off-by: Ulrich Hecht Acked-by: Geert Uytterhoeven Acked-by: Laurent Pinchart Signed-off-by: Linus Walleij drivers/pinctrl/sh-pfc/core.c | 6 ++++++ drivers/pinctrl/sh-pfc/core.h | 1 + drivers/pinctrl/sh-pfc/pfc-r8a7791.c | 23 +++++++++++++++++++++++ 3 files changed, 30 insertions(+) commit 992161965f60c4f19176026045f82749f30dafa2 Author: Geert Uytterhoeven Date: Mon May 4 16:40:46 2015 +0200 pinctrl: sh-pfc: r8a7740: Fix typo SCIFAB in comment The last serial port is called "SCIFB", not "SCIFAB". Signed-off-by: Geert Uytterhoeven Acked-by: Laurent Pinchart Reviewed-by: Simon Horman Signed-off-by: Linus Walleij drivers/pinctrl/sh-pfc/pfc-r8a7740.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 551fa5801ef10298aa1f43e5e95355e2dd5cb3bb Author: Mika Westerberg Date: Thu May 7 12:54:59 2015 +0300 pinctrl: intel: sunrisepoint: Add Intel Sunrisepoint-H support Intel Sunrisepoint-H is a desktop version of the PCH (Platform Controller Hub). It has slightly different pin configuration compared to the LP version. This patch adds support for Sunrisepoint-H to the existing pinctrl-sunrisepoint.c driver. Signed-off-by: Mika Westerberg Signed-off-by: Linus Walleij drivers/pinctrl/intel/pinctrl-sunrisepoint.c | 263 +++++++++++++++++++++++++++ 1 file changed, 263 insertions(+) commit b217e4385d7ae59d1628b0ecb4cffa10f16d5864 Author: Geert Uytterhoeven Date: Mon May 4 19:46:57 2015 +0200 pinctrl: Grammar s/used in as/used as/ Signed-off-by: Geert Uytterhoeven Signed-off-by: Linus Walleij drivers/pinctrl/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 592be8d3c1110ae12082399c39eef18ec15c0d1d Author: Geert Uytterhoeven Date: Tue Apr 28 12:15:07 2015 +0200 pinctrl: sh-pfc: Remove r8a73a4 platform_device_id entry As of commit 9d07d414d4c33d86 ("ARM: shmobile: r8a73a4: ape6evm: Remove legacy platform"), r8a73a4 is only supported in generic DT-only ARM multi-platform builds. The driver doesn't need to match platform devices by name anymore, hence remove the corresponding platform_device_id entry. Signed-off-by: Geert Uytterhoeven Acked-by: Laurent Pinchart Acked-by: Simon Horman Signed-off-by: Linus Walleij drivers/pinctrl/sh-pfc/core.c | 3 --- 1 file changed, 3 deletions(-) commit 1a5bc8d95020c5a81264146c94102baec6ab0861 Author: Kailang Yang Date: Tue May 12 17:11:10 2015 +0800 ALSA: hda/realtek - Support headset mode for ALC298 Support headset mode for ALC298 platform. Signed-off-by: Kailang Yang Signed-off-by: Takashi Iwai sound/pci/hda/patch_realtek.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit b2624ff4bf46869df66148b2e1e675981565742e Author: Silvan Jegen Date: Mon Mar 23 13:25:53 2015 -0300 [media] mantis: fix error handling Remove dead code, make goto label names more expressive and add a label in order to call mantis_dvb_exit if mantis_uart_init fails. Also make sure that mantis_pci_exit is called if we fail the mantis_stream_control call and that we call mantis_i2c_exit if mantis_get_mac fails. [mchehab@osg.samsung.com: fix merge conflict] Signed-off-by: Silvan Jegen Reviewed-by: Dan Carpenter Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/mantis/mantis_cards.c | 36 +++++++++++++++------------------ 1 file changed, 16 insertions(+), 20 deletions(-) commit 44767fc418b6f69f629f70033eb7a08de396224e Author: Olli Salonen Date: Sat Mar 21 17:42:23 2015 -0300 [media] dw2102: TeVii S482 support TeVii S482 is a PCIe device with two tuners that actually contains two USB devices. The devices are visible in the lsusb printout. Bus 006 Device 002: ID 9022:d483 TeVii Technology Ltd. Bus 007 Device 002: ID 9022:d484 TeVii Technology Ltd. The device itself works exactly with the same settings as TechnoTrend TT-connect S2-4600. Firmware for DS3103 demodulator is required: http://palosaari.fi/linux/v4l-dvb/firmware/M88DS3103/ This patch should be applied on top of the TT S2-4600 patch: https://patchwork.linuxtv.org/patch/28818/ Signed-off-by: Olli Salonen Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/dvb-usb/dw2102.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) commit ae11a9be5a9bfc085ab3e0b7d2ea7cd01bc1d477 Author: Kuninori Morimoto Date: Tue May 12 01:57:50 2015 +0000 ASoC: rsnd: revert lock for calls to rsnd_dai_call This reverts commit 'e9c390df671f ("ASoC: rsnd: make sure it uses lock when it calls rsnd_dai_call)' The additional locks make 1") lock issue when boot 2) lock issue when unbind/rmmod. And there is no problem without these locks. This patch revert it. Reported-by: Geert Uytterhoeven Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/core.c | 27 +++++---------------------- 1 file changed, 5 insertions(+), 22 deletions(-) commit 5b7d414ad025654516c59efd16b4a7f0d8017c1b Author: Gregory Fong Date: Wed May 6 01:37:55 2015 -0700 dt-bindings: add brcmstb-gpio GPIO binding Add binding for Broadcom STB "UPG GIO" GPIO controller. Signed-off-by: Gregory Fong Signed-off-by: Linus Walleij .../devicetree/bindings/gpio/brcm,brcmstb-gpio.txt | 65 ++++++++++++++++++++++ 1 file changed, 65 insertions(+) commit 7e52be0d576e8f7bc99a606f07b9d000c4340f04 Author: Martin Sperl Date: Tue May 12 10:32:08 2015 +0000 spi: bcm2835: fix kbuild compile warnings/errors and a typo fixes several warnings/error emmitted by the kbuild system: * warn: cast from pointer to integer of different size using size_t instead of u32 * error: 'SZ_4K' undeclared moved to PAGE_SIZE and PAGE_MASK instead Review showed also a typo in the same code where tx_buff was checked twice instead of checking both rx and tx_buff. Reported by: Stephen Rothwell Signed-off-by: Martin Sperl Signed-off-by: Mark Brown drivers/spi/spi-bcm2835.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 45a110a1377d9f7afbbf53e351b72cf813ac426e Author: Charles Keepax Date: Mon May 11 13:50:30 2015 +0100 ASoC: dapm: Add cache to speed up adding of routes Some CODECs have a significant number of DAPM routes and for each route, when it is added to the card, the entire card widget list must be searched. When adding routes it is very likely, however, that adjacent routes will require adjacent widgets. For example all the routes for a mux are likely added in a block and the sink widget will be the same each time and it is also quite likely that the source widgets are sequential located in the widget list. This patch adds a cache to the DAPM context, this cache will hold the source and sink widgets from the last call to snd_soc_dapm_add_route for that context. A small search of the widget list will be made from those points for both the sink and source. Currently this search only checks both the last widget and the one adjacent to it. On wm8280 which has approximately 500 widgets and 30000 routes (one of the largest CODECs in mainline), the number of paths that hit the cache is 24000, which significantly improves probe time. Signed-off-by: Charles Keepax Signed-off-by: Mark Brown include/sound/soc-dapm.h | 7 +++++++ sound/soc/soc-dapm.c | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) commit 68cbbc3a9d1fc231810b2490bca73b3b444ef542 Author: Gavin Shan Date: Thu Mar 26 16:42:09 2015 +1100 drivers/vfio: Support EEH error injection The patch adds one more EEH sub-command (VFIO_EEH_PE_INJECT_ERR) to inject the specified EEH error, which is represented by (struct vfio_eeh_pe_err), to the indicated PE for testing purpose. Signed-off-by: Gavin Shan Reviewed-by: David Gibson Acked-by: Alex Williamson Signed-off-by: Michael Ellerman Documentation/vfio.txt | 12 ++++++++++++ drivers/vfio/vfio_spapr_eeh.c | 10 ++++++++++ include/uapi/linux/vfio.h | 14 +++++++++++++- 3 files changed, 35 insertions(+), 1 deletion(-) commit ec33d36e5ab5d52d59a8f696f7efb682bfc58494 Author: Gavin Shan Date: Thu Mar 26 16:42:08 2015 +1100 powerpc/eeh: Introduce eeh_pe_inject_err() The patch defines PCI error types and functions in uapi/asm/eeh.h and exports function eeh_pe_inject_err(), which will be called by VFIO driver to inject the specified PCI error to the indicated PE for testing purpose. Signed-off-by: Gavin Shan Reviewed-by: David Gibson Signed-off-by: Michael Ellerman arch/powerpc/include/asm/eeh.h | 2 ++ arch/powerpc/include/uapi/asm/eeh.h | 26 ++++++++++++++++++++++++++ arch/powerpc/kernel/eeh.c | 35 +++++++++++++++++++++++++++++++++++ 3 files changed, 63 insertions(+) commit ed3e81ff2016b180d8f439a1981f2c8b59b0b53c Author: Gavin Shan Date: Thu Mar 26 16:42:07 2015 +1100 powerpc/eeh: Move PE state constants around There are two equivalent sets of PE state constants, defined in arch/powerpc/include/asm/eeh.h and include/uapi/linux/vfio.h. Though the names are different, their corresponding values are exactly same. The former is used by EEH core and the latter is used by userspace. The patch moves those constants from arch/powerpc/include/asm/eeh.h to arch/powerpc/include/uapi/asm/eeh.h, which are expected to be used by userspace from now on. We can't delete those constants in vfio.h as it's uncertain that those constants have been or will be used by userspace. Suggested-by: David Gibson Signed-off-by: Gavin Shan Reviewed-by: David Gibson Signed-off-by: Michael Ellerman arch/powerpc/include/asm/eeh.h | 7 ++----- arch/powerpc/include/uapi/asm/eeh.h | 30 ++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 5 deletions(-) commit 98515035d09fe943539c1967bbae06398f4375f5 Author: Tomasz Figa Date: Fri May 8 17:13:45 2015 +0900 drm/prime: Allow internal imports without import_sg_table Currently drm_gem_prime_import() checks if gem_prime_import_sg_table() is implemented in DRM driver ops. However it is not necessary for internal imports (i.e. dma_buf->ops == &drm_gem_prime_dmabuf_ops and obj->dev == dev), which only increment reference count on respective GEM objects. This patch makes the helper check this condition only in case of external imports fo rwhich importing sg table is indeed needed. Signed-off-by: Tomasz Figa Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_prime.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 6bcacf51d050d412e5c302e0dd5e582212c5f7be Author: Daniel Stone Date: Mon Apr 20 19:22:55 2015 +0100 drm: Add reference counting to blob properties Reference-count drm_property_blob objects, changing the API to ref/unref. Signed-off-by: Daniel Stone Reviewed-by: Maarten Lankhorst [danvet: Squash in kerneldoc fixup from Daniel Stone.] [danvet: Squash in Oops fix from Thiery Reding.] Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_crtc.c | 163 +++++++++++++++++++++++++++++++++++++++++---- include/drm/drm_crtc.h | 17 ++--- 2 files changed, 158 insertions(+), 22 deletions(-) commit cef1717b7ff9ad7de747aedb5d222936913570fd Author: Johan Hovold Date: Mon May 4 17:10:48 2015 +0200 gpio: sysfs: move irq trigger flags to class-device data Move irq trigger flags, which as sysfs-interface specific, to the class device data. This avoids accessing the gpio-descriptor flags field using non-atomic operations without any locking, and allows for a more clear separation of the sysfs interface from gpiolib core. Signed-off-by: Johan Hovold Reviewed-by: Alexandre Courbot Signed-off-by: Linus Walleij drivers/gpio/gpiolib-sysfs.c | 47 ++++++++++++++++++++++---------------------- drivers/gpio/gpiolib.h | 4 ---- 2 files changed, 24 insertions(+), 27 deletions(-) commit 427fdeef5014c77aea7ca10c104d534786c3c1e0 Author: Johan Hovold Date: Mon May 4 17:10:47 2015 +0200 gpio: sysfs: remove FLAG_SYSFS_DIR Remove FLAG_SYSFS_DIR, which is sysfs-interface specific, and store it in the class-device data instead. Note that the flag is only used during export. Signed-off-by: Johan Hovold Reviewed-by: Alexandre Courbot Signed-off-by: Linus Walleij drivers/gpio/gpiolib-sysfs.c | 15 +++++++-------- drivers/gpio/gpiolib.h | 1 - 2 files changed, 7 insertions(+), 9 deletions(-) commit 2f323b85675d89c85e72bec191d42b72d905a652 Author: Johan Hovold Date: Mon May 4 17:10:46 2015 +0200 gpio: sysfs: rename active-low helper Rename active-low helper using common prefix. Also remove unnecessary manipulation of value argument. Signed-off-by: Johan Hovold Reviewed-by: Alexandre Courbot Signed-off-by: Linus Walleij drivers/gpio/gpiolib-sysfs.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 72eba6f66a0017356380eec64db8780305aee2b8 Author: Johan Hovold Date: Mon May 4 17:10:45 2015 +0200 gpio: sysfs: fix race between gpiod export and unexport Make sure to deregister the class device (and release the irq) while holding the sysfs lock in gpio_unexport to prevent racing with gpio_export. Note that this requires the recently introduced per-gpio locking to avoid a deadlock with the kernfs active protection when waiting for the attribute operations to drain during deregistration. Signed-off-by: Johan Hovold Reviewed-by: Alexandre Courbot Signed-off-by: Linus Walleij drivers/gpio/gpiolib-sysfs.c | 51 ++++++++++++++++++++++---------------------- 1 file changed, 26 insertions(+), 25 deletions(-) commit 6ffcb7971486ea4f1eb14f07f8efb0b6f829a23c Author: Johan Hovold Date: Mon May 4 17:10:44 2015 +0200 gpio: sysfs: use per-gpio locking Add a per-gpio mutex to serialise attribute operations rather than use one global mutex for all gpios and chips. Having a single global lock for all gpios in a system adds unnecessary latency to the sysfs interface, and especially when having gpio controllers connected over slow buses. Now that the global gpio-sysfs interrupt table is gone and with per-gpio data in place, we can easily switch to using a more fine-grained locking scheme. Keep the global mutex to serialise the global (class) operations of gpio export and unexport and chip removal. Also document the locking assumptions made. Note that this is also needed to fix a race between gpiod_export and gpiod_unexport. Signed-off-by: Johan Hovold Reviewed-by: Alexandre Courbot Signed-off-by: Linus Walleij drivers/gpio/gpiolib-sysfs.c | 52 +++++++++++++++++++++++++++++--------------- 1 file changed, 34 insertions(+), 18 deletions(-) commit 56d30ec14c13303eb9e7c34358ba6549fc7b0121 Author: Johan Hovold Date: Mon May 4 17:10:43 2015 +0200 gpio: sysfs: clean up gpiod_export_link locking Drop unnecessary locking from gpiod_export_link. If the class device has not already been unregistered, class_find_device returns the ref-counted class device so there's no need for locking. Signed-off-by: Johan Hovold Reviewed-by: Alexandre Courbot Signed-off-by: Linus Walleij drivers/gpio/gpiolib-sysfs.c | 28 ++++++++-------------------- 1 file changed, 8 insertions(+), 20 deletions(-) commit e4339ce32372e2f8c98222c0923b79476c29a309 Author: Johan Hovold Date: Mon May 4 17:10:42 2015 +0200 gpio: sysfs: clean up edge_store Remove goto from success path. Signed-off-by: Johan Hovold Reviewed-by: Alexandre Courbot Signed-off-by: Linus Walleij drivers/gpio/gpiolib-sysfs.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) commit 2ec74a959354dde38155e62f0af3ee0b1a7283ac Author: Johan Hovold Date: Mon May 4 17:10:41 2015 +0200 gpio: sysfs: split irq allocation and deallocation Add separate helper functions for irq request and free. Signed-off-by: Johan Hovold Reviewed-by: Alexandre Courbot Signed-off-by: Linus Walleij drivers/gpio/gpiolib-sysfs.c | 74 ++++++++++++++++++++++---------------------- 1 file changed, 37 insertions(+), 37 deletions(-) commit b91e18076f0d3ff9b49322a5b8eee595a1e4c082 Author: Johan Hovold Date: Mon May 4 17:10:40 2015 +0200 gpio: sysfs: only call irq helper if needed Only call irq helper if actually reconfiguring interrupt state. This is a preparatory step in introducing separate gpio-irq request and free functions. Signed-off-by: Johan Hovold Reviewed-by: Alexandre Courbot Signed-off-by: Linus Walleij drivers/gpio/gpiolib-sysfs.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) commit a08f5c21f4a069cd75eb8a6170e3fe8b96e964d6 Author: Johan Hovold Date: Mon May 4 17:10:39 2015 +0200 gpio: sysfs: clean up interrupt-interface implementation Store the value sysfs entry in the gpiod data rather than in a global table accessed through an index stored in the overloaded gpio-descriptor flag field. Signed-off-by: Johan Hovold Reviewed-by: Alexandre Courbot Signed-off-by: Linus Walleij drivers/gpio/gpiolib-sysfs.c | 54 +++++++++++++++----------------------------- drivers/gpio/gpiolib.h | 3 --- 2 files changed, 18 insertions(+), 39 deletions(-) commit 0f62850808b9ad14e933a68bd11d7c41f1930dfe Author: Johan Hovold Date: Mon May 4 17:10:38 2015 +0200 gpio: sysfs: remove redundant gpio-descriptor parameters Remove redundant gpio-descriptor parameters from sysfs_set_active_low and gpio_setup_irq. Signed-off-by: Johan Hovold Reviewed-by: Alexandre Courbot Signed-off-by: Linus Walleij drivers/gpio/gpiolib-sysfs.c | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) commit c43960fbcc514b0ec8169a66ba9955608e6775a7 Author: Johan Hovold Date: Mon May 4 17:10:37 2015 +0200 gpio: sysfs: add gpiod class-device data Add gpiod class-device data. This is a first step in getting rid of the insane gpio-descriptor flag overloading, backward irq-interface implementation, and course grained sysfs-interface locking (a single static mutex for every operation on all exported gpios in a system). Signed-off-by: Johan Hovold Reviewed-by: Alexandre Courbot Signed-off-by: Linus Walleij drivers/gpio/gpiolib-sysfs.c | 62 ++++++++++++++++++++++++++++++++------------ 1 file changed, 46 insertions(+), 16 deletions(-) commit f0b7866a02370d9a03b0be497b9f88d982b8b67d Author: Johan Hovold Date: Mon May 4 17:10:36 2015 +0200 gpio: sysfs: remove redundant export tests The attribute operations will never be called for an unregistered device so remove redundant checks for FLAG_EXPORT. Note that kernfs will also guarantee that any active sysfs operation has finished before the attribute is removed during deregistration. Signed-off-by: Johan Hovold Reviewed-by: Alexandre Courbot Signed-off-by: Linus Walleij drivers/gpio/gpiolib-sysfs.c | 74 ++++++++++++++------------------------------ 1 file changed, 23 insertions(+), 51 deletions(-) commit 54d9acd7540995b06a47974e3d06da7f68df9d4a Author: Johan Hovold Date: Mon May 4 17:10:35 2015 +0200 gpio: sysfs: release irq after class-device deregistration Make sure to release any irq only after the class device has been deregistered. This avoids a race between gpiod_unexport and edge_store, where an irq could be allocated just before the gpio class device is deregistered without relying on FLAG_EXPORT and the global sysfs lock. Note that there is no need to hold the sysfs lock when releasing the irq after the class device is gone as kernfs will prevent further attribute operations. Signed-off-by: Johan Hovold Reviewed-by: Alexandre Courbot Signed-off-by: Linus Walleij drivers/gpio/gpiolib-sysfs.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 6beac9d1aa9bf104b01816852131fa175c0a178b Author: Johan Hovold Date: Mon May 4 17:10:34 2015 +0200 gpio: sysfs: use DEVICE_ATTR macros Use DEVICE_ATTR_RO and DEVICE_ATTR_RW rather than specifying masks and callbacks directly. Signed-off-by: Johan Hovold Reviewed-by: Alexandre Courbot Signed-off-by: Linus Walleij drivers/gpio/gpiolib-sysfs.c | 43 ++++++++++++++++++------------------------- 1 file changed, 18 insertions(+), 25 deletions(-) commit 166a85e44245d771bd7042f3ad72aa0e12bb53bd Author: Johan Hovold Date: Mon May 4 17:10:33 2015 +0200 gpio: remove gpiod_sysfs_set_active_low Remove gpiod_sysfs_set_active_low (and gpio_sysfs_set_active_low) which allowed code to change the polarity of a gpio line even after it had been exported through sysfs. Drivers should not care, and generally does not know, about gpio-line polarity which is a hardware feature that needs to be described by firmware. It is currently possible to define gpio-line polarity in device-tree and acpi firmware or using platform data. Userspace can also change the polarity through sysfs. Note that drivers using the legacy gpio interface could still use GPIOF_ACTIVE_LOW to change the polarity before exporting the gpio. There are no in-kernel users of this interface. Cc: Jonathan Corbet Cc: Harry Wei Cc: Arnd Bergmann Cc: linux-doc@vger.kernel.org Cc: linux-kernel@zh-kernel.org Cc: linux-arch@vger.kernel.org Signed-off-by: Johan Hovold Reviewed-by: Alexandre Courbot Signed-off-by: Linus Walleij Documentation/gpio/gpio-legacy.txt | 9 ------- Documentation/gpio/sysfs.txt | 8 ------- Documentation/zh_CN/gpio.txt | 8 ------- drivers/gpio/gpiolib-sysfs.c | 48 ++------------------------------------ include/asm-generic/gpio.h | 5 ---- include/linux/gpio.h | 7 ------ include/linux/gpio/consumer.h | 6 ----- 7 files changed, 2 insertions(+), 89 deletions(-) commit 426577bd8846d67b735b3a4e8926ef00abb15297 Author: Johan Hovold Date: Mon May 4 17:10:32 2015 +0200 gpio: sysfs: rename gpiochip registration functions Rename the gpio-chip export/unexport functions to the more descriptive names gpiochip_sysfs_register and gpiochip_sysfs_unregister. Signed-off-by: Johan Hovold Reviewed-by: Alexandre Courbot Signed-off-by: Linus Walleij drivers/gpio/gpiolib-sysfs.c | 16 +++++++++------- drivers/gpio/gpiolib.c | 4 ++-- drivers/gpio/gpiolib.h | 8 ++++---- 3 files changed, 15 insertions(+), 13 deletions(-) commit 6a4b6b0a3b55f23f4cc9ad85a1539c581bcb0874 Author: Johan Hovold Date: Mon May 4 17:10:31 2015 +0200 gpio: sysfs: clean up chip class-device handling Clean gpio-chip class device registration and deregistration. The class device is registered when a gpio-chip is added (or from gpiolib_sysfs_init post-core init call), and deregistered when the chip is removed. Store the class device in struct gpio_chip directly rather than do a class-device lookup on deregistration. This also removes the need for the exported flag. Signed-off-by: Johan Hovold Reviewed-by: Alexandre Courbot Signed-off-by: Linus Walleij drivers/gpio/gpiolib-sysfs.c | 39 +++++++++++++-------------------------- include/linux/gpio/driver.h | 4 ++-- 2 files changed, 15 insertions(+), 28 deletions(-) commit 3ff74be5c1a72df6d304dcb453f68e3c3bea3bdd Author: Johan Hovold Date: Mon May 4 17:10:30 2015 +0200 gpio: sysfs: reduce gpiochip-export locking scope Reduce scope of sysfs_lock protection during chip export and unexport, which is only needed to prevent gpiod (re-)exports during chip removal. Signed-off-by: Johan Hovold Reviewed-by: Alexandre Courbot Signed-off-by: Linus Walleij drivers/gpio/gpiolib-sysfs.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit cecf58ab551f746c1e2b549d90b51a94b442d1e0 Author: Johan Hovold Date: Mon May 4 17:10:29 2015 +0200 gpio: sysfs: preparatory clean ups Put the recently introduced gpio-chip pointer to some more use in gpiod_export. Signed-off-by: Johan Hovold Reviewed-by: Alexandre Courbot Signed-off-by: Linus Walleij drivers/gpio/gpiolib-sysfs.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 52176d0d3be29ccb01a44ee77532bb3969939ecf Author: Johan Hovold Date: Mon May 4 17:10:28 2015 +0200 gpio: sysfs: fix redundant lock-as-irq handling Drivers should call gpiochip_lock_as_irq (which prevents the pin direction from being changed) in their irq_request_resources callbacks but some drivers currently fail to do so. Instead a second, explicit and often redundant call to lock-as-irq is made by the sysfs-interface implementation after an irq has been requested. Move the explicit call before the irq-request to match the unlock done after the irq is later released. Note that this also fixes an irq leak, should the explicit call ever have failed. Also add a comment about removing the redundant call once the broken drivers have been fixed. Signed-off-by: Johan Hovold Reviewed-by: Alexandre Courbot Signed-off-by: Linus Walleij drivers/gpio/gpiolib-sysfs.c | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) commit fab28b89a1c418382638d3837739faad9111fa8e Author: Johan Hovold Date: Mon May 4 17:10:27 2015 +0200 gpio: clean up gpiochip_remove Clean up gpiochip_remove somewhat and only output warning about removing chip with GPIOs requested once. Signed-off-by: Johan Hovold Reviewed-by: Alexandre Courbot Signed-off-by: Linus Walleij drivers/gpio/gpiolib.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) commit 8becdc18c3e1f855cae5af266f6a1f5ce5af24fb Merge: 3c1b5c9b 030bbdb Author: Linus Walleij Date: Tue May 12 10:13:41 2015 +0200 Merge tag 'v4.1-rc3' into devel Linux 4.1-rc3 commit 3c1b5c9bd991d1c023f736b0187582aae8a5b30a Author: Michal Simek Date: Mon May 4 16:37:16 2015 +0200 gpio: xilinx: Fix kernel-doc warnings Fix kernel-doc format: - Add gpio-width description - Remove additional "inited" variable description - Add return value description - xgpio_remove Signed-off-by: Michal Simek Signed-off-by: Linus Walleij drivers/gpio/gpio-xilinx.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit c7114b4e6c53111d415485875725b60213ffc675 Author: Waiman Long Date: Mon May 11 13:57:11 2015 -0400 locking/qrwlock: Rename QUEUE_RWLOCK to QUEUED_RWLOCKS To be consistent with the queued spinlocks which use CONFIG_QUEUED_SPINLOCKS config parameter, the one for the queued rwlocks is now renamed to CONFIG_QUEUED_RWLOCKS. Signed-off-by: Waiman Long Cc: Borislav Petkov Cc: Douglas Hatch Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Scott J Norton Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1431367031-36697-1-git-send-email-Waiman.Long@hp.com Signed-off-by: Ingo Molnar arch/x86/Kconfig | 2 +- kernel/Kconfig.locks | 6 +++--- kernel/locking/Makefile | 2 +- kernel/locking/qrwlock.c | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) commit a4effddb6d12dc60d95918411387d1a62a6a0c88 Author: Christophe Jaillet Date: Fri May 1 14:29:06 2015 +0200 gpio: x-gene: Remove a useless memset priv->irq is allocated using devm_kzalloc so there is no need to memset it. Signed-off-by: Christophe Jaillet Signed-off-by: Linus Walleij drivers/gpio/gpio-xgene-sb.c | 1 - 1 file changed, 1 deletion(-) commit f4f79d40623f5bc7cd7207c621256bc2000676d3 Author: Krzysztof Kozlowski Date: Sat May 2 00:56:47 2015 +0900 gpio: 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: Linus Walleij drivers/gpio/gpio-mxc.c | 2 +- drivers/gpio/gpio-mxs.c | 2 +- drivers/gpio/gpio-ts5500.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit f1fb9c61b6649987a8c3afe5c4a58563e4e582d7 Author: Paul Gortmaker Date: Thu Apr 30 21:47:39 2015 -0400 drivers/gpio: include for modular crystalcove code This file is built off of a tristate Kconfig option and also contains modular function calls so it should explicitly include module.h to avoid compile breakage during header shuffles done in the future. Cc: Linus Walleij Cc: Alexandre Courbot Cc: linux-gpio@vger.kernel.org Signed-off-by: Paul Gortmaker Signed-off-by: Linus Walleij drivers/gpio/gpio-crystalcove.c | 1 + 1 file changed, 1 insertion(+) commit c78c881824cc3354c0518c0d21febe04ffc69638 Author: Thomas Gleixner Date: Tue May 12 09:14:51 2015 +0200 ALSA: drivers: pcsp: Fix printout of resolution The recent conversion of the hrtimer resolution failed to convert the printk format from %li to %u. Reported-by: Ingo Molnar Signed-off-by: Thomas Gleixner sound/drivers/pcsp/pcsp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit ccf509f845576b8809702aa693867839bf77beb0 Author: Hans Verkuil Date: Fri Apr 24 06:52:47 2015 -0300 [media] marvell-ccic: fix RGB444 format The RGB444 format swapped the red and blue components, fix this. Rather than making a new BGR444 format (as I proposed initially), Jon prefers to just fix this and return the colors in the right order. I think that makes sense in this case. Since the RGB444 pixel format is deprecated due to the ambiguous specification of the alpha component we use the XRGB444 pixel format instead (specified as having no alpha channel). Signed-off-by: Hans Verkuil Acked-by: Jonathan Corbet Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/marvell-ccic/mcam-core.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit b3ab190f1c731e76da357f6640ceebacfdaccae1 Author: Lad, Prabhakar Date: Wed Apr 15 18:14:17 2015 -0300 [media] media: i2c: ov2659: Use v4l2_of_alloc_parse_endpoint() Instead of parsing the link-frequencies property in the driver, let v4l2_of_alloc_parse_endpoint() do it. Signed-off-by: Lad, Prabhakar Acked-by: Sakari Ailus Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/ov2659.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) commit 7f099a7558e4d308ddb19b3c1737944c371b8f48 Author: Fabian Frederick Date: Mon Mar 16 16:54:33 2015 -0300 [media] constify of_device_id array of_device_id is always used as const. (See driver.of_match_table and open firmware functions) [mchehab@osg.samsung.com: fix a merge conflict at adv7604.c] Signed-off-by: Fabian Frederick Acked-by: Patrice Chotard Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/adv7604.c | 4 ++-- drivers/media/platform/fsl-viu.c | 2 +- drivers/media/platform/soc_camera/rcar_vin.c | 2 +- drivers/media/rc/gpio-ir-recv.c | 2 +- drivers/media/rc/ir-hix5hd2.c | 2 +- drivers/media/rc/st_rc.c | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) commit 52722ca8c53243c2b3eb45731c01ec4d8d219f3b Author: Philipp Zabel Date: Mon May 4 07:51:08 2015 -0300 [media] s5p-mfc: Set last buffer flag Setting the last buffer flag causes the videobuf2 core to return -EPIPE from DQBUF calls on the capture queue after the last buffer is dequeued. Signed-off-by: Philipp Zabel Signed-off-by: Kamil Debski Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/s5p-mfc/s5p_mfc.c | 1 + 1 file changed, 1 insertion(+) commit 1a744cb356c57303fc97eb15a298032170f841fa Author: Len Brown Date: Mon May 11 17:27:10 2015 -0400 x86/smp/boot: Remove 10ms delay from cpu_up() on modern processors Modern processor familes do not require the 10ms delay in cpu_up() to de-assert INIT. This speeds up boot and resume by 10ms per (application) processor. Signed-off-by: Len Brown Cc: Alan Cox Cc: Arjan van de Ven Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Jan H. Schönherr Cc: Linus Torvalds Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/021ce30c88f216ad39686646421194dc25671e55.1431379433.git.len.brown@intel.com Signed-off-by: Ingo Molnar arch/x86/kernel/smpboot.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit d68921f9bd148359e6d01c84aaa2e32bfbd82970 Author: Len Brown Date: Mon May 11 17:27:09 2015 -0400 x86/smp/boot: Add cmdline "cpu_init_udelay=N" to specify cpu_up() delay No change to default behavior. Replace the hard-coded mdelay(10) in cpu_up() with a variable udelay, that is set to a defined default -- rather than a magic number. Add a boot-time override, "cpu_init_udelay=N" Signed-off-by: Len Brown Cc: Alan Cox Cc: Arjan van de Ven Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Jan H. Schönherr Cc: Linus Torvalds Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/2fe8e6c798e8def271122f62df9bbf58dc283e2a.1431379433.git.len.brown@intel.com Signed-off-by: Ingo Molnar Documentation/kernel-parameters.txt | 6 ++++++ arch/x86/kernel/smpboot.c | 23 ++++++++++++++++++++++- 2 files changed, 28 insertions(+), 1 deletion(-) commit 9f2bfb33a817459fdfe3277cdf864a2a4fe3ef7b Author: Philipp Zabel Date: Mon May 4 07:51:07 2015 -0300 [media] coda: Set last buffer flag and fix EOS event Setting the last buffer flag causes the videobuf2 core to return -EPIPE from DQBUF calls on the capture queue after the last buffer is dequeued. This patch also fixes the EOS event to conform to the specification. It now is sent right after the last buffer has been decoded instead of when the last buffer is dequeued. Signed-off-by: Philipp Zabel Signed-off-by: Kamil Debski Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/coda/coda-bit.c | 4 ++-- drivers/media/platform/coda/coda-common.c | 27 +++++++++++---------------- drivers/media/platform/coda/coda.h | 3 +++ 3 files changed, 16 insertions(+), 18 deletions(-) commit c16218402a000bb25c1277c43ae98c11bcb59bd1 Author: Philipp Zabel Date: Mon May 4 07:51:06 2015 -0300 [media] videobuf2: return -EPIPE from DQBUF after the last buffer If the last buffer was dequeued from a capture queue, let poll return immediately and let DQBUF return -EPIPE to signal there will no more buffers to dequeue until STREAMOFF. The driver signals the last buffer by setting the V4L2_BUF_FLAG_LAST. To reenable dequeuing on the capture queue, the driver must explicitly call vb2_clear_last_buffer_queued. The last buffer queued flag is cleared automatically during STREAMOFF. Signed-off-by: Philipp Zabel Acked-by: Hans Verkuil Signed-off-by: Kamil Debski Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/v4l2-mem2mem.c | 10 +++++++++- drivers/media/v4l2-core/videobuf2-core.c | 19 ++++++++++++++++++- include/media/videobuf2-core.h | 13 +++++++++++++ 3 files changed, 40 insertions(+), 2 deletions(-) commit dc199241624a2fd85d9b0d8303babd60feadd0e6 Author: Peter Seiderer Date: Mon May 4 07:51:05 2015 -0300 [media] videodev2: Add V4L2_BUF_FLAG_LAST This v4l2_buffer flag can be used by drivers to mark a capture buffer as the last generated buffer, for example after a V4L2_DEC_CMD_STOP command was issued. Signed-off-by: Peter Seiderer Signed-off-by: Philipp Zabel Acked-by: Hans Verkuil Signed-off-by: Kamil Debski Signed-off-by: Mauro Carvalho Chehab include/trace/events/v4l2.h | 3 ++- include/uapi/linux/videodev2.h | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) commit 8cee396bfa77ce3a2e5fe48f597206c1cd547f9c Author: Philipp Zabel Date: Mon May 4 07:51:04 2015 -0300 [media] DocBook media: document codec draining flow Document the interaction between VIDIOC_DECODER_CMD V4L2_DEC_CMD_STOP and VIDIOC_ENCODER_CMD V4L2_ENC_CMD_STOP to start the draining, the V4L2_EVENT_EOS event signalling all capture buffers are finished and ready to be dequeud, the new V4L2_BUF_FLAG_LAST buffer flag indicating the last buffer being dequeued from the capture queue, and the poll and VIDIOC_DQBUF ioctl return values once the queue is drained. Signed-off-by: Philipp Zabel Acked-by: Hans Verkuil Signed-off-by: Kamil Debski Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/v4l/io.xml | 12 ++++++++++++ Documentation/DocBook/media/v4l/vidioc-decoder-cmd.xml | 12 +++++++++++- Documentation/DocBook/media/v4l/vidioc-encoder-cmd.xml | 10 +++++++++- Documentation/DocBook/media/v4l/vidioc-qbuf.xml | 8 ++++++++ 4 files changed, 40 insertions(+), 2 deletions(-) commit 6425f646ffb1da577501098331da38df91d6aa6d Author: Krzysztof Kozlowski Date: Fri May 1 12:51:03 2015 -0300 [media] media: platform: s5p: Constify platform_device_id The platform_device_id is not modified by the driver and core uses it as const. Signed-off-by: Krzysztof Kozlowski [k.debski@samsung.com: Fix misspelling in title (s/sp5/s5p/)] Signed-off-by: Kamil Debski Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/s5p-g2d/g2d.c | 2 +- drivers/media/platform/s5p-mfc/s5p_mfc.c | 2 +- drivers/media/platform/s5p-tv/hdmi_drv.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit ef00b7ae68dfcbf8ccd81c5caf26337fc920b563 Author: Krzysztof Kozlowski Date: Fri May 1 12:51:02 2015 -0300 [media] media: platform: s3c-camif: 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: Kamil Debski Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/s3c-camif/camif-core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c42639d8a6beb03e2725e8a1ae1d1c6b30cdde7b Author: Krzysztof Kozlowski Date: Fri May 1 12:51:01 2015 -0300 [media] media: platform: exynos4-is: 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: Kamil Debski Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/exynos4-is/media-dev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 40437e703feef873441769e74910fd309c1fb404 Author: Krzysztof Kozlowski Date: Fri May 1 12:51:00 2015 -0300 [media] media: platform: exynos-gsc: 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: Kamil Debski Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/exynos-gsc/gsc-core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1ddd3b4e07a4be9fe3f1ce2441b01859154f4358 Author: Casey Schaufler Date: Sat May 2 15:11:50 2015 -0700 LSM: Remove unused capability.c The stub functions in capability.c are no longer required with the list based stacking mechanism. Remove the file. Signed-off-by: Casey Schaufler Acked-by: John Johansen Acked-by: Kees Cook Acked-by: Paul Moore Acked-by: Stephen Smalley Acked-by: Tetsuo Handa Signed-off-by: James Morris security/capability.c | 1158 ------------------------------------------------- 1 file changed, 1158 deletions(-) commit b1d9e6b0646d0e5ee5d9050bd236b6c65d66faef Author: Casey Schaufler Date: Sat May 2 15:11:42 2015 -0700 LSM: Switch to lists of hooks Instead of using a vector of security operations with explicit, special case stacking of the capability and yama hooks use lists of hooks with capability and yama hooks included as appropriate. The security_operations structure is no longer required. Instead, there is a union of the function pointers that allows all the hooks lists to use a common mechanism for list management while retaining typing. Each module supplies an array describing the hooks it provides instead of a sparsely populated security_operations structure. The description includes the element that gets put on the hook list, avoiding the issues surrounding individual element allocation. The method for registering security modules is changed to reflect the information available. The method for removing a module, currently only used by SELinux, has also changed. It should be generic now, however if there are potential race conditions based on ordering of hook removal that needs to be addressed by the calling module. The security hooks are called from the lists and the first failure is returned. Signed-off-by: Casey Schaufler Acked-by: John Johansen Acked-by: Kees Cook Acked-by: Paul Moore Acked-by: Stephen Smalley Acked-by: Tetsuo Handa Signed-off-by: James Morris include/linux/lsm_hooks.h | 77 ++++-- include/linux/security.h | 46 +--- security/Makefile | 2 +- security/apparmor/domain.c | 12 +- security/apparmor/lsm.c | 51 ++-- security/commoncap.c | 41 +++- security/security.c | 570 +++++++++++++++++++++++++++++++++++++-------- security/selinux/hooks.c | 94 ++------ security/smack/smack.h | 2 - security/smack/smack_lsm.c | 53 +---- security/smack/smackfs.c | 2 +- security/tomoyo/tomoyo.c | 14 +- security/yama/yama_lsm.c | 50 ++-- 13 files changed, 627 insertions(+), 387 deletions(-) commit e20b043a6902ecb61c2c84355c3bae5149f391db Author: Casey Schaufler Date: Sat May 2 15:11:36 2015 -0700 LSM: Add security module hook list heads Add a list header for each security hook. They aren't used until later in the patch series. They are grouped together in a structure so that there doesn't need to be an external address for each. Macro-ize the initialization of the security_operations for each security module in anticipation of changing out the security_operations structure. Signed-off-by: Casey Schaufler Acked-by: John Johansen Acked-by: Kees Cook Acked-by: Paul Moore Acked-by: Stephen Smalley Acked-by: Tetsuo Handa Signed-off-by: James Morris include/linux/lsm_hooks.h | 220 +++++++++++++++++++++++++ security/apparmor/lsm.c | 84 +++++----- security/selinux/hooks.c | 398 +++++++++++++++++++++++---------------------- security/smack/smack_lsm.c | 258 ++++++++++++++--------------- security/tomoyo/tomoyo.c | 58 +++---- security/yama/yama_lsm.c | 10 +- 6 files changed, 626 insertions(+), 402 deletions(-) commit f25fce3e8f1f15d6d2a22620ebf98a68a4641f06 Author: Casey Schaufler Date: Sat May 2 15:11:29 2015 -0700 LSM: Introduce security hook calling Macros Introduce two macros around calling the functions in the security operations vector. The marco versions here do not change any behavior. Signed-off-by: Casey Schaufler Acked-by: John Johansen Acked-by: Kees Cook Acked-by: Paul Moore Acked-by: Stephen Smalley Acked-by: Tetsuo Handa Signed-off-by: James Morris security/security.c | 433 +++++++++++++++++++++++++++------------------------- 1 file changed, 226 insertions(+), 207 deletions(-) commit 346033a28fb16b83dac2a74d8025ff8ee64a2c9b Author: Casey Schaufler Date: Sat May 2 15:11:14 2015 -0700 LSM: Remove a comment from security.h Remove the large comment describing the content of the security_operations structure from security.h. This wasn't done in the previous (2/7) patch because it would have exceeded the mail list size limits. Signed-off-by: Casey Schaufler Acked-by: John Johansen Acked-by: Kees Cook Acked-by: Paul Moore Acked-by: Stephen Smalley Acked-by: Tetsuo Handa Signed-off-by: James Morris include/linux/security.h | 1270 ---------------------------------------------- 1 file changed, 1270 deletions(-) commit fe7bb272ee72b5cc377e02b556d0d718d12bbede Author: Casey Schaufler Date: Sat May 2 15:10:53 2015 -0700 LSM: Add the comment to lsm_hooks.h Add the large comment describing the content of the security_operations structure to lsm_hooks.h. This wasn't done in the previous (1/7) patch because it would have exceeded the mail list size limits. Signed-off-by: Casey Schaufler Acked-by: John Johansen Acked-by: Kees Cook Acked-by: Paul Moore Acked-by: Stephen Smalley Acked-by: Tetsuo Handa Signed-off-by: James Morris include/linux/lsm_hooks.h | 1279 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1279 insertions(+) commit 3c4ed7bdf5997d8020cbb8d4abbef2fcfb9f1284 Author: Casey Schaufler Date: Sat May 2 15:10:46 2015 -0700 LSM: Split security.h The security.h header file serves two purposes, interfaces for users of the security modules and interfaces for security modules. Users of the security modules don't need to know about what's in the security_operations structure, so pull it out into it's own header, lsm_hooks.h Signed-off-by: Casey Schaufler Acked-by: John Johansen Acked-by: Kees Cook Acked-by: Paul Moore Acked-by: Stephen Smalley Acked-by: Tetsuo Handa Signed-off-by: James Morris include/linux/lsm_hooks.h | 358 ++++++++++++++++++++++++++++++++++++++++++++++ include/linux/security.h | 305 --------------------------------------- security/apparmor/lsm.c | 2 +- security/capability.c | 2 +- security/security.c | 2 +- security/selinux/hooks.c | 2 +- security/smack/smack.h | 2 +- security/tomoyo/tomoyo.c | 2 +- security/yama/yama_lsm.c | 2 +- 9 files changed, 365 insertions(+), 312 deletions(-) commit 2d805fc1c6b2ec09f27bcd951c2aee3da919f81a Author: Benson Leung Date: Mon May 4 10:36:36 2015 -0700 mailbox: Fix up error handling in mbox_request_channel() mbox_request_channel() currently returns EBUSY in the event the controller is not present or if of_xlate() fails, but in neither case is EBUSY really appropriate. Return EPROBE_DEFER if the controller is not yet present and change of_xlate() to return an ERR_PTR instead of NULL so that the error can be propagated back to the caller of mbox_request_channel(). Signed-off-by: Benson Leung Signed-off-by: Andrew Bresticker Acked-by: Suman Anna Reviewed-by: Jon Hunter Tested-by: Jon Hunter Signed-off-by: Jassi Brar drivers/mailbox/mailbox.c | 11 ++++++++--- drivers/mailbox/omap-mailbox.c | 6 +++--- 2 files changed, 11 insertions(+), 6 deletions(-) commit 05ae797566a66d159cf1e2ee11bf3f6fae40c8eb Author: Andrew Bresticker Date: Mon May 4 10:36:35 2015 -0700 mailbox: Make mbox_chan_ops const The mailbox controller's channel ops ought to be read-only. Update all the mailbox drivers to make their mbox_chan_ops const as well. Signed-off-by: Andrew Bresticker Cc: Ashwin Chaugule Cc: Ley Foon Tan Acked-by: Suman Anna Signed-off-by: Jassi Brar drivers/mailbox/arm_mhu.c | 2 +- drivers/mailbox/mailbox-altera.c | 2 +- drivers/mailbox/omap-mailbox.c | 2 +- drivers/mailbox/pcc.c | 2 +- include/linux/mailbox_controller.h | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) commit 59dd3f02615e52c42207a8e873f7f86bf7d447c4 Author: Richard Weinberger Date: Mon May 4 20:59:46 2015 +0200 mailbox: altera: Add dependency on HAS_IOMEM Not all architectures have io memory. Fixes: drivers/built-in.o: In function `altera_mbox_probe': mailbox-altera.c:(.text+0x409fd2): undefined reference to `devm_ioremap_resource' Signed-off-by: Richard Weinberger Signed-off-by: Jassi Brar drivers/mailbox/Kconfig | 1 + 1 file changed, 1 insertion(+) commit a46dbae8abe5cd94c0189582de188d4225e19ef1 Author: Eduardo Valentin Date: Mon May 11 19:48:09 2015 -0700 thermal: of-thermal: add support for reading coefficients property In order to avoid having each driver adding their own specific DT property to specify slope and offset, this patch adds a basic coefficient reading from DT thermal zone node. Right now, as the thermal framework does not support multiple sensors, the current coefficients apply only to the only sensor in the thermal zone. The supported equation is a simple linear model: slope * + offset. slope and offset are read from the coefficients DT property. In the same way as it is described in the DT thermal binding. So, as of today, the thermal framework will support only cases like: /* hotspot = 1 * adc + 6000 */ coefficients = <1 6000>; Signed-off-by: Eduardo Valentin drivers/thermal/of-thermal.c | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) commit 9d0be7f4810257a9b0fc78fff641f14409f14ab3 Author: Eduardo Valentin Date: Mon May 11 19:34:23 2015 -0700 thermal: support slope and offset coefficients It is common to have a linear extrapolation from the current sensor readings and the actual temperature value. This is specially the case when the sensor is in use to extrapolate hotspots. This patch adds slope and offset constants for single sensor linear extrapolation equation. Because the same sensor can be use in different locations, from board to board, these constants are added as part of thermal_zone_params. The constants are available through sysfs. It is up to the device driver to determine the usage of these values. Signed-off-by: Eduardo Valentin Documentation/thermal/sysfs-api.txt | 16 ++++++++++++++++ drivers/thermal/thermal_core.c | 4 ++++ include/linux/thermal.h | 11 +++++++++++ 3 files changed, 31 insertions(+) commit ea54cac9065112724f3432e0574ba3e346fd695d Author: Javi Merino Date: Sat May 2 10:15:24 2015 +0100 thermal: power_allocator: round the division when divvying up power In situations where there is an uneven number of cooling devices, the division of power among them can lead to a milliwatt being dropped on the floor due to rounding errors. This doesn't sound like a lot, but some devices only grant the lowest cooling device state for their maximum power. So for instance, if the granted_power is the maximum power and all devices are getting their maximum power, one would get max_power - 1, making it choose cooling device state 1, instead of 0. Round the division to make the calculation more accurate. Cc: Zhang Rui Cc: Eduardo Valentin Signed-off-by: Javi Merino Signed-off-by: Eduardo Valentin drivers/thermal/power_allocator.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 7706993e2deb75022dbcfc3043890aa1a0020189 Author: Yoshihiro Shimoda Date: Fri May 8 16:13:34 2015 +0900 ARM: shmobile: r8a7791: Enable DMA for HSUSB This patch adds DMA properties to the HSUSB node. Signed-off-by: Yoshihiro Shimoda Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7791.dtsi | 3 +++ 1 file changed, 3 insertions(+) commit e3e25edc1116ebf44b1813aff03b02b7737d41ca Author: Yoshihiro Shimoda Date: Fri May 8 16:13:33 2015 +0900 ARM: shmobile: r8a7791: add USB-DMAC device nodes Signed-off-by: Yoshihiro Shimoda Acked-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7791.dtsi | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) commit e8295dc39136a23b090885f43e13087cd460fc26 Author: Yoshihiro Shimoda Date: Fri May 8 16:13:07 2015 +0900 ARM: shmobile: r8a7790: Enable DMA for HSUSB This patch adds DMA properties to the HSUSB node. Signed-off-by: Yoshihiro Shimoda Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7790.dtsi | 3 +++ 1 file changed, 3 insertions(+) commit a3ff2090dc2a358bfe9e3d4c50f3921a732feb30 Author: Yoshihiro Shimoda Date: Fri May 8 16:13:06 2015 +0900 ARM: shmobile: r8a7790: add USB-DMAC device nodes Signed-off-by: Yoshihiro Shimoda Acked-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7790.dtsi | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) commit 5844feeaa4154d1c46d3462c7a4653d22356d8b4 Author: Brian Norris Date: Fri Jan 23 00:22:27 2015 -0800 mtd: nand: add common DT init code These are already-documented common bindings for NAND chips. Let's handle them in nand_base. If NAND controller drivers need to act on this data before bringing up the NAND chip (e.g., fill out ECC callback functions, change HW modes, etc.), then they can do so between calling nand_scan_ident() and nand_scan_tail(). Signed-off-by: Brian Norris drivers/mtd/nand/nand_base.c | 41 +++++++++++++++++++++++++++++++++++++++++ include/linux/mtd/nand.h | 5 +++++ 2 files changed, 46 insertions(+) commit e76ff06a959336fae64b53c36ec60940ca6ef04f Author: Nicholas Mc Guire Date: Mon May 11 07:52:29 2015 +0200 livepatch: match return value to function signature klp_initialized() should return bool but is actually returning struct kobject * - convert it to a boolean explicitly. Signed-off-by: Nicholas Mc Guire Reviewed-by: Jiri Slaby Signed-off-by: Jiri Kosina kernel/livepatch/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 65ce7a37ec23c9e7878bd77e2f75b1eb9d8926e3 Author: Dinh Nguyen Date: Mon Mar 9 22:10:02 2015 -0500 ARM: socfpga: remove the need to map uart_io_desc All the necessary debug uart mapping is already being done in debug_ll_io_init, there's no need for it here. Signed-off-by: Dinh Nguyen arch/arm/mach-socfpga/socfpga.c | 9 --------- 1 file changed, 9 deletions(-) commit de73c162fc2e91e19b7716fc9c0150f759be2567 Author: Dinh Nguyen Date: Mon Mar 9 15:48:31 2015 -0500 ARM: socfpga: Add support for UART1 debug uart for earlyprintk Add support for hardware uart1 for earlyprintk support on Arria10 devkit. Signed-off-by: Dinh Nguyen arch/arm/Kconfig.debug | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) commit 3c5ac3f3921b0f905a94185065a7a149c46c5681 Author: Ben Dooks Date: Wed Mar 25 11:27:48 2015 +0000 ARM: socfpga: support big endian for socfpga Now the debug and platsmp.S are fixed for big endian, the architecture can now advertise big endian support. Signed-off-by: Ben Dooks Signed-off-by: Dinh Nguyen arch/arm/mach-socfpga/Kconfig | 1 + 1 file changed, 1 insertion(+) commit bf55e0a48f8ee086c71d1a9de1f0eeee7501b1c4 Author: Ben Dooks Date: Wed Mar 25 11:27:47 2015 +0000 ARM: socfpga: enable big endian for secondary core(s) Update the secondary code to allow the secondary boot to work when the system is running big endian. Signed-off-by: Ben Dooks Signed-off-by: Dinh Nguyen arch/arm/mach-socfpga/headsmp.S | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 6ef4e47926b2008c6a1736fe4e3b2817e3b95463 Author: Ben Dooks Date: Wed Mar 25 11:27:46 2015 +0000 ARM: debug: fix big endian operation for 8250 word mode If the 8250 debug code is used in word mode on an big endian host then the writes need to be change into little endian for the bus. Note, we have to re-convert the value back as the debug code will inspect the value after writing it to see if a newline has been written. Signed-off-by: Ben Dooks Signed-off-by: Dinh Nguyen arch/arm/include/debug/8250.S | 3 +++ 1 file changed, 3 insertions(+) commit da29d824a6709116dd4dc50b82400547447a4f53 Author: Dinh Nguyen Date: Thu Apr 2 11:43:20 2015 -0500 ARM: socfpga: dts: add clocks to the Arria10 platform Add all the clock nodes for the Arria10 platform. At the same time, update the peripherals with their respective clocks property. Signed-off-by: Dinh Nguyen --- v2: Add the l4_sys_free_clk node arch/arm/boot/dts/socfpga_arria10.dtsi | 309 ++++++++++++++++++++++++++++++++- 1 file changed, 305 insertions(+), 4 deletions(-) commit 3ecd37edaa2a6ba3246e2c35714be9316b1087fe Author: Martin Sperl Date: Sun May 10 20:47:28 2015 +0000 spi: bcm2835: enable dma modes for transfers meeting certain conditions Conditions per spi_transfer are: * transfer.len >= 96 bytes (to avoid mapping overhead costs) * transfer.len < 65536 bytes (limitaion by spi-hw block - could get extended) * an individual scatter/gather transfer length must be a multiple of 4 for anything but the last transfer - spi-hw block limit. (some shortcut has been taken in can_dma to avoid unnecessary mapping of pages which, for which there is a chance that there is a split with a transfer length not a multiple of 4) If it becomes a necessity these restrictions can get removed by additional code. Note that this patch requires a patch to dma-bcm2835.c by Noralf to enable scatter-gather mode inside the dmaengine, which has not been merged yet. That is why no patch to arch/arm/boot/dts/bcm2835.dtsi is included - the code works as before without dma when tx/rx are not set, but it writes a message warning about dma not used: spi-bcm2835 20204000.spi: no tx-dma configuration found - not using dma mode To enable dma-mode add the following lines to the device-tree: dmas = <&dma 6>, <&dma 7>; dma-names = "tx", "rx"; Tested-by: Noralf Trønnes (private communication) Signed-off-by: Martin Sperl Signed-off-by: Mark Brown drivers/spi/spi-bcm2835.c | 303 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 301 insertions(+), 2 deletions(-) commit b396cca6fafccf16206a5d041d59c9e6b65b6f5a Author: Eric Dumazet Date: Mon May 11 09:06:56 2015 -0700 net: sched: deprecate enqueue_root() Only left enqueue_root() user is netem, and it looks not necessary : qdisc_skb_cb(skb)->pkt_len is preserved after one skb_clone() Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller include/net/sch_generic.h | 6 ------ net/sched/sch_netem.c | 4 ++-- 2 files changed, 2 insertions(+), 8 deletions(-) commit 3824246d373249e3fc2fd775f5cb4700552681da Author: Michal Simek Date: Mon May 11 16:05:02 2015 +0200 net: ll_temac: Use one return statement instead of two Use one return statement instead of two to simplify the code. Both are returning the same value. Signed-off-by: Michal Simek Signed-off-by: David S. Miller drivers/net/ethernet/xilinx/ll_temac_main.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit c01e8cdb7bf52681530d1a6ac3474c070468983b Author: Vince Bridgers Date: Tue Apr 21 14:19:24 2015 -0500 ARM: socfpga: dts: Add tx-fifo-depth and rx-fifo-depth properties Add tx-fifo-depth and rx-fifo-depth devicetree properties for socfpga stmmac. These devicetree properties will be used to configure certain features of the stmmac on the socfpga. Signed-off-by: Vince Bridgers Signed-off-by: Dinh Nguyen arch/arm/boot/dts/socfpga.dtsi | 4 ++++ arch/arm/boot/dts/socfpga_arria10.dtsi | 4 ++++ 2 files changed, 8 insertions(+) commit be9863cac24b53e826ded959ae4747a6f388885f Author: Vince Bridgers Date: Tue Apr 21 14:15:40 2015 -0500 ARM: socfpga: dts: Add multicast bins and unicast filter entries Add multicast-filter-bins and perfect-filter-entries configuration properties to the socfpga devicetree for the Arria 10 socfpga. Signed-off-by: Vince Bridgers Signed-off-by: Dinh Nguyen arch/arm/boot/dts/socfpga_arria10.dtsi | 6 ++++++ 1 file changed, 6 insertions(+) commit 5459f9abe24c810e09d012519788747e97b3cdd7 Author: Dinh Nguyen Date: Fri Apr 10 15:40:42 2015 -0500 ARM: socfpga: dts: Add a clock node for sdmmc CIU The CIU(Card Interface Unit) get its clock from the sdmmc_clk_divided clock which is used to clock the card. The sdmmc_clk_divided clock is the sdmmc_clk passed through a fixed divider of 4. This patch adds the sdmmc_clk_divided node and makes the sdmmc_clk it's parent. Signed-off-by: Dinh Nguyen --- v2: renamed ciu_clk to sdmmc_clk_divided arch/arm/boot/dts/socfpga.dtsi | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit 88c8e4c2648c9daa18430a47e746a669254f00e5 Author: Dinh Nguyen Date: Mon Mar 9 22:57:04 2015 -0500 ARM: socfpga: dts: rename socdk board file to socdk_sdmmc Rename the socfpga_arria10_socdk board file to socfpga_arria10_socdk_sdmmc as Arria 10 devkit cannot support SDMMC and QSPI at the same time. Thus we will need to have 2 separate board files, one for SDMMC and one for QSPI. We also add a new base board dtsi file, socfpga_arria10_socdk.dtsi so that we use common peripherals for each flavor of the devkits. Add the sdmmc node to the socfpga_arria10_socdk_sdmmc.dts board file. Signed-off-by: Dinh Nguyen arch/arm/boot/dts/Makefile | 2 +- arch/arm/boot/dts/socfpga_arria10_socdk.dts | 48 ----------------------- arch/arm/boot/dts/socfpga_arria10_socdk.dtsi | 46 ++++++++++++++++++++++ arch/arm/boot/dts/socfpga_arria10_socdk_sdmmc.dts | 26 ++++++++++++ 4 files changed, 73 insertions(+), 49 deletions(-) commit 74568da48f69c21c8628090eaedb990369813a0b Author: Dinh Nguyen Date: Thu Apr 2 13:26:35 2015 -0500 ARM: socfpga: dts: enable UART1 for the debug uart Arria10 devkit is using UART1 for the debug uart port. Remove unused aliases. Signed-off-by: Dinh Nguyen --- v2: Add removal of unused aliases arch/arm/boot/dts/socfpga_arria10.dtsi | 12 ------------ arch/arm/boot/dts/socfpga_arria10_socdk.dts | 8 ++++---- 2 files changed, 4 insertions(+), 16 deletions(-) commit 1dfb7d2fd6a8f9c69f0b434473637d88917c9ec7 Author: Dinh Nguyen Date: Mon Mar 9 23:05:21 2015 -0500 ARM: socfpga: dts: disable the sdmmc, and uart nodes in the base arria10 Add status = "disabled" in the base DTSI for Arria10. The SDMMC and uart nodes should be enabled in the appropriate board file. Signed-off-by: Dinh Nguyen arch/arm/boot/dts/socfpga_arria10.dtsi | 3 +++ 1 file changed, 3 insertions(+) commit 08d6638f1a3cf5f6add4ecfd58d28c53b206dbcb Author: Dinh Nguyen Date: Mon Mar 9 22:41:17 2015 -0500 ARM: socfpga: dts: add cpu1-start-addr for Arria 10 Signed-off-by: Dinh Nguyen arch/arm/boot/dts/socfpga_arria10.dtsi | 1 + 1 file changed, 1 insertion(+) commit bf513bf04660321eb6181082def79ee1fd93b48f Author: Walter Lozano Date: Tue Apr 21 00:35:53 2015 -0500 ARM: socfpga: dts: Add adxl34x This patch adds the DTS bindings for the adxl34x digital accelerometer. Signed-off-by: Walter Lozano Acked-by: Steffen Trumtrar Signed-off-by: Dinh Nguyen arch/arm/boot/dts/socfpga_cyclone5_sockit.dts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit db65f35f50e031ed5a37e2a92f8e8627ff39df9f Author: Philippe Reynes Date: Mon May 11 00:01:42 2015 +0200 net: fec: add support of ethtool get_regs This enables the ethtool's "-d" and "--register-dump" options for fec devices. Signed-off-by: Philippe Reynes Signed-off-by: David S. Miller drivers/net/ethernet/freescale/fec_main.c | 78 +++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) commit 8e76ef88f607174082023f50b87fe12dcdbe5db5 Author: Martin Sperl Date: Sun May 10 07:50:45 2015 +0000 spi: fix race freeing dummy_tx/rx before it is unmapped Fix a race (with some kernel configurations) where a queued master->pump_messages runs and frees dummy_tx/rx before spi_unmap_msg is running (or is finished). This results in the following messages: BUG: Bad page state in process page:db7ba030 count:0 mapcount:0 mapping: (null) index:0x0 flags: 0x200(arch_1) page dumped because: PAGE_FLAGS_CHECK_AT_PREP flag set ... Reported-by: Noralf Trønnes Suggested-by: Noralf Trønnes Tested-by: Noralf Trønnes Signed-off-by: Martin Sperl Signed-off-by: Mark Brown Cc: stable@vger.kernel.org drivers/spi/spi.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit fe88e379e89baf9cb0486caececc744fccbe9cb6 Author: Azael Avalos Date: Thu Feb 26 10:59:33 2015 -0700 Documentation/ABI: Add file describing the sysfs entries for toshiba_haps This patch adds a new file describing the sysfs entries for the toshiba_haps driver. Signed-off-by: Azael Avalos Signed-off-by: Darren Hart Documentation/ABI/testing/sysfs-driver-toshiba_haps | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit 7dd62c0178ceae1d2bf5d8b88941314ec6eeca0a Author: Azael Avalos Date: Thu Feb 26 10:58:31 2015 -0700 toshiba_haps: Make use of DEVICE_ATTR_{RW, WO} macros This patch makes use of DEVICE_ATTR_{RW, WO} macros, simplifying device attributes creation. Signed-off-by: Azael Avalos Signed-off-by: Darren Hart drivers/platform/x86/toshiba_haps.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit a882003714ec94a3108b47ea5c0cf2a6ec1f3e98 Author: Azael Avalos Date: Thu Feb 26 10:58:30 2015 -0700 toshiba_haps: Replace sscanf with kstrtoint This patch simply replaces the use of sscanf with kstrtoint returning the error code in case that something went bad. Signed-off-by: Azael Avalos Signed-off-by: Darren Hart drivers/platform/x86/toshiba_haps.c | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) commit 63ba3e28fd7302905052fc1b5fdcdd6bcd38a999 Author: Azael Avalos Date: Wed May 6 09:35:13 2015 -0600 toshiba_acpi: Bump driver version to 0.22 This patch simply bumps the driver version to 0.22, as significant changes were made to the driver, such as cleanups, updated events, keymap handling, fixes and the bluetooth rfkill code removal. 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 8baec45da1181572c0f8dc40c421c3f7ebecb0ab Author: Azael Avalos Date: Wed May 6 09:35:12 2015 -0600 toshiba_acpi: Remove TOS_FAILURE check from some functions This patch removes the check for TOS_FAILURE whenever we are using the tci_raw function call, as that code is only returned by the {hci, sci}_{read, write} functions and never by the tci_raw, and thus making that check irrelevant. Signed-off-by: Azael Avalos Signed-off-by: Darren Hart drivers/platform/x86/toshiba_acpi.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit 3f75bbe9162986bc42a553795f703917a8aadf89 Author: Azael Avalos Date: Wed May 6 09:35:11 2015 -0600 toshiba_acpi: Comments cleanup This patch simply does some misc cleanup to comments, mainly capitalizes some left over comments from a previous clean up and adds some comments at the beginning of some feature function calls, as well as some misc changes to some comments. Signed-off-by: Azael Avalos Signed-off-by: Darren Hart drivers/platform/x86/toshiba_acpi.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) commit d37782bd7bc67af37cd415027e298d3d5c7d56ad Author: Azael Avalos Date: Wed May 6 09:35:10 2015 -0600 toshiba_acpi: Rename hci_{read, write}1 functions This patch simply renames the hci_{read, write}1 functions to hci_{read, write}. Signed-off-by: Azael Avalos Signed-off-by: Darren Hart drivers/platform/x86/toshiba_acpi.c | 44 ++++++++++++++++++------------------- 1 file changed, 22 insertions(+), 22 deletions(-) commit 3b8760009d41a861ebd048ab0c1a25e85f80b385 Author: Azael Avalos Date: Wed May 6 09:35:09 2015 -0600 toshiba_acpi: Remove no longer needed hci_{read, write}2 functions This patch removes the hci_{read, write}2 functions from the driver, and the toshiba_hotkey_event_type_get function was adapted to use the tci_raw function. The hci_write2 function was only used by the bluetooth rfkill code, but since its removal, it was causing build warnings, and the hci_read2 function was only used by the toshiba_hotkey_event_type_get function. Signed-off-by: Azael Avalos Signed-off-by: Darren Hart drivers/platform/x86/toshiba_acpi.c | 39 +++++++------------------------------ 1 file changed, 7 insertions(+), 32 deletions(-) commit 8798df8845c74d3433997d026abf7ba013a7fcdd Author: Azael Avalos Date: Sun May 3 17:42:09 2015 -0600 toshiba_bluetooth: Change BT status message to debug The function toshiba_bluetooth_status is currently printing the status of the device whenever it is queried, but since the introduction of the rfkill poll code, this value will get printed everytime the poll occurs. This patch removes the status message from the *_status function, and adds a debug message to the *_sync_status function printing the bluetooth device raw status, killswitch, plug and power states of the device as well. Signed-off-by: Azael Avalos Signed-off-by: Darren Hart drivers/platform/x86/toshiba_bluetooth.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 4cda01e86f68dacc758b2daf6e8809f2ce915b85 Author: Daniel Borkmann Date: Mon May 11 19:28:49 2015 +0200 net: sched: fix typo in net_device ifdef This should have been #ifdef not #if. Reported-by: Fengguang Wu Fixes: d2788d34885d ("net: sched: further simplify handle_ing") Signed-off-by: Daniel Borkmann Signed-off-by: David S. Miller include/linux/netdevice.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ea6055c46eda1e19e02209814955e13f334bbe1b Author: Ezequiel Garcia Date: Mon May 11 12:20:18 2015 -0300 spi: pl022: Specify 'num-cs' property as required in devicetree binding Since commit 39a6ac11df65 ("spi/pl022: Devicetree support w/o platform data") the 'num-cs' parameter cannot be passed through platform data when probing with devicetree. Instead, it's a required devicetree property. Fix the binding documentation so the property is properly specified. Fixes: 39a6ac11df65 ("spi/pl022: Devicetree support w/o platform data") Signed-off-by: Ezequiel Garcia Signed-off-by: Mark Brown Documentation/devicetree/bindings/spi/spi_pl022.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 658358cec93a7130615cfc1d6843ab07e49625e6 Author: Johannes Berg Date: Mon May 11 19:12:09 2015 +0200 mac80211: fix throughput LED trigger As I was testing with hwsim, I missed that my previous commit to make LED work depend on activation broke the code because I missed removing the old trigger struct and some code was still using it, now erroneously, causing crashes. Fix this by always using the correct struct. Reported-by: Felix Fietkau Tested-by: Felix Fietkau Signed-off-by: Johannes Berg net/mac80211/ieee80211_i.h | 1 - net/mac80211/led.c | 12 ++++++------ 2 files changed, 6 insertions(+), 7 deletions(-) commit dc3814f404dfb82fc40f403725ad0548c9541d09 Author: Colin Cross Date: Fri May 8 17:05:44 2015 -0700 iommu/exynos: Tell kmemleak to ignore 2nd level page tables The pointers to the 2nd level page tables are converted to 1st level page table entries, which means kmemleak can't find them and assumes they have been leaked. Call kmemleak_ignore on the 2nd level page tables to prevent them from showing up in kmemleak reports. Signed-off-by: Colin Cross Signed-off-by: Dmitry Torokhov Signed-off-by: Joerg Roedel drivers/iommu/exynos-iommu.c | 1 + 1 file changed, 1 insertion(+) commit ca60bc41fb97b8bdda8bba3fdefac6d51ab9ffb4 Author: Lars-Peter Clausen Date: Mon May 11 09:42:36 2015 +0200 ASoC: sirf-audio-codec: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm with snd_soc_codec_get_dapm(). Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/sirf-audio-codec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8533eb24a9515c2a9e6779cfd377ab0c46ed8a77 Author: Lars-Peter Clausen Date: Mon May 11 09:42:35 2015 +0200 ASoC: sgtl5000: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/sgtl5000.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9f0617187ac2431e2efe85fccee749e6a31e9725 Author: Lars-Peter Clausen Date: Mon May 11 09:42:34 2015 +0200 ASoC: uda1380: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Also drop the unnecessary check at the beginning of the uda1380_set_bias_level() which compares the current level to the target level and aborts if they are the same. Since the core will not call the set_bias_level() callback if we already are in the target state the result of the check is always false. Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/uda1380.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 81024b11178e22c1d3ddfbbc2d142fb294e71466 Author: Lars-Peter Clausen Date: Mon May 11 09:42:33 2015 +0200 ASoC: uda134x: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm with snd_soc_codec_get_dapm(). Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/uda134x.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 41b76881371bf7a5f2e63a6224d962a884dba9f4 Author: Lars-Peter Clausen Date: Mon May 11 09:42:32 2015 +0200 ASoC: ml26124: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/ml26124.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 40d62f23b10ecdc997be85a783c0dd40156dea10 Author: Lars-Peter Clausen Date: Mon May 11 09:42:31 2015 +0200 ASoC: jz4740: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/jz4740.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2aff57e3334493c70f25abbecc31c9b36cd2700f Author: Lars-Peter Clausen Date: Mon May 11 09:42:30 2015 +0200 ASoC: es8328: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/es8328.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3f36f3c72540a7fae7f0c534176cb123ff0f822f Author: Lars-Peter Clausen Date: Mon May 11 09:42:29 2015 +0200 ASoC: cx20442: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/cx20442.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6d701b6dedde988c517a625002dbb865080960e5 Author: Lars-Peter Clausen Date: Mon May 11 09:42:28 2015 +0200 ASoC: ak4641: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/ak4641.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c59878a4131c6db060d7c8b5074328c64330aa7d Author: Lars-Peter Clausen Date: Mon May 11 09:42:27 2015 +0200 ASoC: ab8500: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm with snd_soc_codec_get_dapm(). Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/ab8500-codec.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) commit 5f54ea214b2847e48f7d8077892d8f1126810d19 Author: Lars-Peter Clausen Date: Mon May 11 09:42:26 2015 +0200 ASoC: 88pm860x: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/88pm860x-codec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 33f434d283a27116fb358ae5bc3b42967c12f85a Author: Axel Lin Date: Tue Apr 7 12:23:38 2015 +0800 phy: core: Check requested PHY status in _of_phy_get() This is a common checking in various drivers, so move the checking to _of_phy_get(). Signed-off-by: Axel Lin Signed-off-by: Kishon Vijay Abraham I drivers/phy/phy-core.c | 12 ++++++++++-- drivers/phy/phy-miphy28lp.c | 5 ----- drivers/phy/phy-miphy365x.c | 5 ----- drivers/phy/phy-rcar-gen2.c | 5 ----- 4 files changed, 10 insertions(+), 17 deletions(-) commit 5bea496820cdcb0f6711741ba663ccfe78ac4dbf Author: Felipe Balbi Date: Fri May 8 11:30:49 2015 -0500 phy: miphy365x: fix sparse warnings Add missing 'static' modifier so sparse won't complain anymore. Signed-off-by: Felipe Balbi Acked-by: Maxime Coquelin Signed-off-by: Kishon Vijay Abraham I drivers/phy/phy-miphy365x.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 99db11c6e8a89b236b283df0ec592aecdd00d8ef Author: Felipe Balbi Date: Fri May 8 11:30:48 2015 -0500 phy: miphy28lp: fix sparse warnings Add missing __iomem annotation to the base address so Sparse doesn't complain. Signed-off-by: Felipe Balbi Acked-by: Maxime Coquelin Signed-off-by: Kishon Vijay Abraham I drivers/phy/phy-miphy28lp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 87006dd600e36e05a2bd978c112a0aa883713c00 Author: Dmitry Torokhov Date: Wed Apr 22 16:14:37 2015 -0700 phy: phy-core: allow specifying supply at port level Multi-port phys may have per port power supplies. Let's change phy core to look for supply at the port level when multiple ports are specified. To keep compatibility with the existing device tree board descriptions for single-port phys we will continue looking up the power supply at the parent node level Signed-off-by: Dmitry Torokhov Signed-off-by: Arun Ramamurthy Reviewed-by: Ray Jui Reviewed-by: Scott Branden Signed-off-by: Kishon Vijay Abraham I drivers/phy/phy-core.c | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) commit a666f7d097486bb74f9b02d6d049c1e5a765fa61 Author: Arun Ramamurthy Date: Wed Apr 22 16:04:13 2015 -0700 usb: ohci-platform: Use devm_of_phy_get_by_index Getting phys by index instead of phy names so that we do not have to create a naming scheme when multiple phys are present Signed-off-by: Arun Ramamurthy Reviewed-by: Ray Jui Reviewed-by: Scott Branden Acked-by: Alan Stern Signed-off-by: Kishon Vijay Abraham I drivers/usb/host/ohci-platform.c | 69 ++++++++++++++-------------------------- 1 file changed, 24 insertions(+), 45 deletions(-) commit 216e299269c1ec16a241eaba3620b9c6e65385eb Author: Arun Ramamurthy Date: Wed Apr 22 16:04:12 2015 -0700 usb: ehci-platform: Use devm_of_phy_get_by_index Getting phys by index instead of phy names so that we do not have to create a naming scheme when multiple phys are present Signed-off-by: Arun Ramamurthy Reviewed-by: Ray Jui Reviewed-by: Scott Branden Acked-by: Alan Stern Signed-off-by: Kishon Vijay Abraham I drivers/usb/host/ehci-platform.c | 69 ++++++++++++++-------------------------- 1 file changed, 24 insertions(+), 45 deletions(-) commit 6be109b31ccdb9c98e7be12687171f6602527a5d Author: Arun Ramamurthy Date: Wed Apr 22 16:04:11 2015 -0700 phy: core: Add devm_of_phy_get_by_index to phy-core Some generic drivers, such as ehci, may use multiple phys and for such drivers referencing phy(s) by name(s) does not make sense. Instead of inventing new naming schemes and using custom code to iterate through them, such drivers are better of using nameless phy bindings and using this newly introduced API to iterate through them. Signed-off-by: Arun Ramamurthy Reviewed-by: Ray Jui Reviewed-by: Scott Branden [kishon@ti.com: fix compilation errors] Signed-off-by: Kishon Vijay Abraham I Documentation/phy.txt | 7 ++++++- drivers/phy/phy-core.c | 32 ++++++++++++++++++++++++++++++++ include/linux/phy/phy.h | 9 +++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) commit 47ad7b9bbeaac34e43d9dc8db796f1f68194b9ad Author: Chris Metcalf Date: Fri May 8 10:27:35 2015 -0400 tile: improve stack backtrace This commit fixes a number of issues with the tile backtrace code. - Don't try to identify userspace shared object or executable paths if we are doing a backtrace from an interrupt; it's not legal, and also unlikely to be interesting. Likewise, don't try to do it for other address spaces, since d_path() assumes it is being called in "current" context. - Move "in_backtrace" from thread_struct to thread_info. This way we can access it even if our stack thread_info has been clobbered, which makes backtracing more robust. - Avoid using "current" directly when testing for is_sigreturn(). Since "current" may be corrupt, we're better off using kbt->task explicitly to look up the vdso_base for the current task. Conveniently, this simplifies the internal APIs (we only need one is_sigreturn() function now). - Avoid bogus "Odd fault" warning when pc/sp/ex1 are all zero, as is true for kernel threads above the last frame. - Hook into Tejun Heo's dump_stack() framework in lib/dump_stack.c. - Write last entry in save_stack_trace() as ULONG_MAX, not zero, since ftrace (at least) relies on finding that marker. - Implement save_stack_trace_regs() and save_strack_trace_user(), and set CONFIG_USER_STACKTRACE_SUPPORT. Signed-off-by: Chris Metcalf arch/tile/Kconfig | 1 + arch/tile/include/asm/processor.h | 2 - arch/tile/include/asm/stack.h | 13 ++-- arch/tile/include/asm/thread_info.h | 1 + arch/tile/kernel/entry.S | 7 -- arch/tile/kernel/process.c | 36 +++++++---- arch/tile/kernel/stack.c | 125 +++++++++++++++++++++--------------- arch/tile/kernel/traps.c | 3 + arch/tile/lib/exports.c | 1 - 9 files changed, 107 insertions(+), 82 deletions(-) commit e8200baa2fd2e9c4bc7abd824a9e675d914e54a0 Author: Chris Metcalf Date: Thu May 7 14:34:59 2015 -0400 tile: fix "odd fault" warning for stack backtraces We were setting ex1 in new kernel threads to KERNEL_PL. But since we just do a simple context-switch, not an iret, any value set here is ignored anyway, and its presence causes stack backtraces to end with a warning about an "odd fault". Signed-off-by: Chris Metcalf arch/tile/kernel/process.c | 1 - 1 file changed, 1 deletion(-) commit 9a5d2cbe6a1623dadfd93007382b0d12d6bac894 Author: Chris Metcalf Date: Tue May 5 13:20:03 2015 -0400 tile: set up initial stack top to honor STACK_TOP_DELTA For some reason this was never changed to match the rest of the code where we always initialize the kernel sp 64 bytes below the top of the page. This is generally harmless, but it does mean that if you do a dump_stack() early on in kernel boot you see a bogus warning about stack overrun. Signed-off-by: Chris Metcalf arch/tile/kernel/setup.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e5701b74ccfdbbb0b4d9abcc7d0c569bf5e5375b Author: Chris Metcalf Date: Mon May 4 17:26:35 2015 -0400 tile: support delivering NMIs for multicore backtrace A new hypervisor service was added some time ago (MDE 4.2.1 or later, or MDE 4.3 or later) that allows cores to request NMIs to be delivered to other cores. Use this facility to deliver a request that causes a backtrace to be generated on each core, and hook it into the magic SysRq functionality. Signed-off-by: Chris Metcalf arch/tile/include/asm/irq.h | 5 ++ arch/tile/include/asm/traps.h | 8 +++ arch/tile/include/hv/hypervisor.h | 60 +++++++++++++++++++++- arch/tile/kernel/hvglue.S | 3 +- arch/tile/kernel/hvglue_trace.c | 4 ++ arch/tile/kernel/intvec_64.S | 6 +++ arch/tile/kernel/process.c | 101 ++++++++++++++++++++++++++++++++++++++ arch/tile/kernel/traps.c | 12 +++++ 8 files changed, 197 insertions(+), 2 deletions(-) commit b4287df82991ca608f44d7ac12ad9b3bc39d5baa Author: Chris Metcalf Date: Mon May 4 17:25:12 2015 -0400 drivers/tty/hvc/hvc_tile.c: properly return -EAGAIN We were returning zero if no bytes could be written to the Tilera hypervisor console device, but this causes the output to be truncated. By returning -EAGAIN the tty hvc driver will come back and try again, which gives the semantics we want, and avoids dropping console output. Acked-by: Greg Kroah-Hartman Signed-off-by: Chris Metcalf drivers/tty/hvc/hvc_tile.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 99472cc08a8bda2c56bceec3693193cc87a33ef1 Author: Fabio Estevam Date: Sat May 9 12:57:19 2015 -0300 spi: spidev: Remove unneeded variable Remove unneeded variable used to store return value. The semantic patch that makes this change is available in scripts/coccinelle/misc/returnvar.cocci. More information about semantic patching is available at http://coccinelle.lip6.fr/ Signed-off-by: Fabio Estevam Signed-off-by: Mark Brown drivers/spi/spidev.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 0f9a7fecf2514cd5cb14be8e9aae3556c403ff1f Author: Fabio Estevam Date: Sat May 9 12:45:53 2015 -0300 ASoC: fsl: imx-mc13783: Simplify trivial if-return sequence Simplify a trivial if-return sequence. Possibly combine with a preceding function call. The semantic patch that makes this change is available in scripts/coccinelle/misc/simple_return.cocci. More information about semantic patching is available at http://coccinelle.lip6.fr/ Signed-off-by: Fabio Estevam Acked-by: Timur Tabi Signed-off-by: Mark Brown sound/soc/fsl/imx-mc13783.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit d0657fe8c645e3963d2a134d2a110c0b8cf08a9d Author: Fabio Estevam Date: Sat May 9 12:45:52 2015 -0300 ASoC: fsl: fsl_dma: Use true/false for boolean init Bool initializations should use true and false. Bool tests don't need comparisons. Based on contributions from Joe Perches, Rusty Russell and Bruce W Allan. The semantic patch that makes this change is available in scripts/coccinelle/misc/boolinit.cocci. More information about semantic patching is available at http://coccinelle.lip6.fr/ Signed-off-by: Fabio Estevam Acked-by: Timur Tabi Signed-off-by: Mark Brown sound/soc/fsl/fsl_dma.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 3bb45001ac33b4f733e1e8ffb01fb07baccd528c Merge: 986ccfd d2788d3 Author: David S. Miller Date: Mon May 11 11:10:35 2015 -0400 Merge branch 'handle_ing_lightweight' Daniel Borkmann says: ==================== handle_ing update These are a couple of cleanups to make ingress a bit more lightweight. ==================== Signed-off-by: David S. Miller commit d2788d34885d4ce5ba17a8996fd95d28942e574e Author: Daniel Borkmann Date: Sat May 9 22:51:32 2015 +0200 net: sched: further simplify handle_ing Ingress qdisc has no other purpose than calling into tc_classify() that executes attached classifier(s) and action(s). It has a 1:1 relationship to dev->ingress_queue. After having commit 087c1a601ad7 ("net: sched: run ingress qdisc without locks") removed the central ingress lock, one major contention point is gone. The extra indirection layers however, are not necessary for calling into ingress qdisc. pktgen calling locally into netif_receive_skb() with a dummy u32, single CPU result on a Supermicro X10SLM-F, Xeon E3-1240: before ~21,1 Mpps, after patch ~22,9 Mpps. We can redirect the private classifier list to the netdev directly, without changing any classifier API bits (!) and execute on that from handle_ing() side. The __QDISC_STATE_DEACTIVATE test can be removed, ingress qdisc doesn't have a queue and thus dev_deactivate_queue() is also not applicable, ingress_cl_list provides similar behaviour. In other words, ingress qdisc acts like TCQ_F_BUILTIN qdisc. One next possible step is the removal of the dev's ingress (dummy) netdev_queue, and to only have the list member in the netdevice itself. Note, the filter chain is RCU protected and individual filter elements are being kfree'd by sched subsystem after RCU grace period. RCU read lock is being held by __netif_receive_skb_core(). Joint work with Alexei Starovoitov. Signed-off-by: Daniel Borkmann Signed-off-by: Alexei Starovoitov Signed-off-by: David S. Miller include/linux/netdevice.h | 4 ++++ net/core/dev.c | 30 ++++++++++++++---------- net/sched/sch_ingress.c | 58 ++++++++--------------------------------------- 3 files changed, 31 insertions(+), 61 deletions(-) commit c9e99fd078ef7fdcd9ee4f5a4cfdbece319587af Author: Daniel Borkmann Date: Sat May 9 22:51:31 2015 +0200 net: sched: consolidate handle_ing and ing_filter Given quite some code has been removed from ing_filter(), we can just consolidate that function into handle_ing() and get rid of a few instructions at the same time. Signed-off-by: Daniel Borkmann Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller net/core/dev.c | 46 ++++++++++++++++------------------------------ 1 file changed, 16 insertions(+), 30 deletions(-) commit 30186c6fdc9a6a78c8b03351256451f07c66b6cd Author: Gong Zhaogang Date: Mon May 11 11:02:47 2015 -0400 workqueue: function name in the comment differs from the real function name modify wq_calc_node_mask to wq_calc_node_cpumask Signed-off-by: Gong Zhaogang Signed-off-by: Tejun Heo kernel/workqueue.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2c2d2fafe21652789437e5a1a8b2770a45adc259 Author: Vasanthakumar Thiagarajan Date: Tue May 5 18:00:48 2015 +0530 ath10k: fix survey information reporting Rx clear count reported in wmi_chan_info_event is actually channel_busy_count not rx_frame_count. Send rx_clear_count through time_busy of survey_info and set SURVEY_INFO_TIME_BUSY in filled. iw wlan0 survey dump urvey data from wlan0 frequency: 5180 MHz [in use] noise: -103 dBm channel active time: 150 ms channel busy time: 22 ms Survey data from wlan0 frequency: 5200 MHz noise: -102 dBm channel active time: 146 ms channel busy time: 0 ms Signed-off-by: Vasanthakumar Thiagarajan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/wmi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 986ccfdbd90a292e8242c5d2647d8bb8565c38c3 Author: Xi Wang Date: Sat May 9 04:14:30 2015 -0400 test: bpf: extend "load 64-bit immediate" testcase Extend the testcase to catch a signedness bug in the arm64 JIT: test_bpf: #58 load 64-bit immediate jited:1 ret -1 != 1 FAIL (1 times) This is useful to ensure other JITs won't have a similar bug. Link: https://lkml.org/lkml/2015/5/8/458 Cc: Alexei Starovoitov Cc: Will Deacon Signed-off-by: Xi Wang Acked-by: Alexei Starovoitov Acked-by: Daniel Borkmann Signed-off-by: David S. Miller lib/test_bpf.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 32f89e5c1af2f00159f11707101b8e867d7b6211 Merge: 0198e09 171a42c Author: David S. Miller Date: Mon May 11 10:59:32 2015 -0400 Merge branch 'bonding_netlink_lacp' Jonathan Toppins says: ==================== add netlink support for new lacp bonding parameters This is a resubmit of Mahesh's last 3 bonding patches from this series (http://marc.info/?l=linux-netdev&m=142432864626179&w=2) with one additional kernel patch which adds the netlink bits. I have noted any modifications I did to the original patches just above my signoff line. Patch 5 is the iproute2 support for these bonding options. All patches were coded against the net-next branch of their respective projects. v2: * rebased * only send these new parameters via netlink when bond is in mode 4 * fixed ad_actor_sys_prio to be 0xFFFF by default even when the bond is initially created in mode 0 and switched to mode 4 v3: * reverted changes to bond_option_ad_actor_system_set() from v1 in Mahesh's patch "bonding: Allow userspace to set actors' macaddr in an AD-system." Instead implementing all setting in the option specific set function as Nik suggested. ==================== Signed-off-by: David S. Miller commit 171a42c38c6e1a5a076d6276e94e55a0b5b7868c Author: Andy Gospodarek Date: Sat May 9 00:01:58 2015 -0700 bonding: add netlink support for sys prio, actor sys mac, and port key Adds netlink support for the following bonding options: * BOND_OPT_AD_ACTOR_SYS_PRIO * BOND_OPT_AD_ACTOR_SYSTEM * BOND_OPT_AD_USER_PORT_KEY When setting the actor system mac address we assume the netlink message contains a binary mac and not a string representation of a mac. Signed-off-by: Andy Gospodarek [jt: completed the setting side of the netlink attributes] Signed-off-by: Jonathan Toppins Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller drivers/net/bonding/bond_netlink.c | 50 ++++++++++++++++++++++++++++++++++++++ drivers/net/bonding/bond_options.c | 30 ++++++++++++++++------- include/uapi/linux/if_link.h | 3 +++ 3 files changed, 74 insertions(+), 9 deletions(-) commit d22a5fc0c32edcf5c3bb973ee8c9a2606ba500a8 Author: Mahesh Bandewar Date: Sat May 9 00:01:57 2015 -0700 bonding: Implement user key part of port_key in an AD system. The port key has three components - user-key, speed-part, and duplex-part. The LSBit is for the duplex-part, next 5 bits are for the speed while the remaining 10 bits are the user defined key bits. Get these 10 bits from the user-space (through the SysFs interface) and use it to form the admin port-key. Allowed range for the user-key is 0 - 1023 (10 bits). If it is not provided then use zero for the user-key-bits (default). It can set using following example code - # modprobe bonding mode=4 # usr_port_key=$(( RANDOM & 0x3FF )) # echo $usr_port_key > /sys/class/net/bond0/bonding/ad_user_port_key # echo +eth1 > /sys/class/net/bond0/bonding/slaves ... # ip link set bond0 up Signed-off-by: Mahesh Bandewar Reviewed-by: Nikolay Aleksandrov [jt: * fixed up style issues reported by checkpatch * fixed up context from change in ad_actor_sys_prio patch] Signed-off-by: Jonathan Toppins Signed-off-by: David S. Miller Documentation/networking/bonding.txt | 63 ++++++++++++++++++++++++++++++++++++ drivers/net/bonding/bond_3ad.c | 14 ++++---- drivers/net/bonding/bond_main.c | 10 ++++++ drivers/net/bonding/bond_options.c | 26 +++++++++++++++ drivers/net/bonding/bond_sysfs.c | 15 +++++++++ include/net/bond_options.h | 1 + include/net/bonding.h | 1 + 7 files changed, 123 insertions(+), 7 deletions(-) commit 74514957552edd4661a4608618121f3c71d4e891 Author: Mahesh Bandewar Date: Sat May 9 00:01:56 2015 -0700 bonding: Allow userspace to set actors' macaddr in an AD-system. In an AD system, the communication between actor and partner is the business between these two entities. In the current setup anyone on the same L2 can "guess" the LACPDU contents and then possibly send the spoofed LACPDUs and trick the partner causing connectivity issues for the AD system. This patch allows to use a random mac-address obscuring it's identity making it harder for someone in the L2 is do the same thing. This patch allows user-space to choose the mac-address for the AD-system. This mac-address can not be NULL or a Multicast. If the mac-address is set from user-space; kernel will honor it and will not overwrite it. In the absence (value from user space); the logic will default to using the masters' mac as the mac-address for the AD-system. It can be set using example code below - # modprobe bonding mode=4 # sys_mac_addr=$(printf '%02x:%02x:%02x:%02x:%02x:%02x' \ $(( (RANDOM & 0xFE) | 0x02 )) \ $(( RANDOM & 0xFF )) \ $(( RANDOM & 0xFF )) \ $(( RANDOM & 0xFF )) \ $(( RANDOM & 0xFF )) \ $(( RANDOM & 0xFF ))) # echo $sys_mac_addr > /sys/class/net/bond0/bonding/ad_actor_system # echo +eth1 > /sys/class/net/bond0/bonding/slaves ... # ip link set bond0 up Signed-off-by: Mahesh Bandewar Reviewed-by: Nikolay Aleksandrov [jt: fixed up style issues reported by checkpatch] Signed-off-by: Jonathan Toppins Signed-off-by: David S. Miller Documentation/networking/bonding.txt | 12 ++++++++++++ drivers/net/bonding/bond_3ad.c | 7 ++++++- drivers/net/bonding/bond_main.c | 1 + drivers/net/bonding/bond_options.c | 27 +++++++++++++++++++++++++++ drivers/net/bonding/bond_procfs.c | 6 ++++++ drivers/net/bonding/bond_sysfs.c | 16 ++++++++++++++++ include/net/bond_options.h | 1 + include/net/bonding.h | 1 + 8 files changed, 70 insertions(+), 1 deletion(-) commit 6791e4661c4bd3e9f193a84247f2c389578a4336 Author: Mahesh Bandewar Date: Sat May 9 00:01:55 2015 -0700 bonding: Allow userspace to set actors' system_priority in AD system This patch allows user to randomize the system-priority in an ad-system. The allowed range is 1 - 0xFFFF while default value is 0xFFFF. If user does not specify this value, the system defaults to 0xFFFF, which is what it was before this patch. Following example code could set the value - # modprobe bonding mode=4 # sys_prio=$(( 1 + RANDOM + RANDOM )) # echo $sys_prio > /sys/class/net/bond0/bonding/ad_actor_sys_prio # echo +eth1 > /sys/class/net/bond0/bonding/slaves ... # ip link set bond0 up Signed-off-by: Mahesh Bandewar Reviewed-by: Nikolay Aleksandrov [jt: * fixed up style issues reported by checkpatch * changed how the default value is set in bond_check_params(), this makes the default consistent between what gets set for a new bond and what the default is claimed to be in the bonding options.] Signed-off-by: Jonathan Toppins Signed-off-by: David S. Miller Documentation/networking/bonding.txt | 9 +++++++++ drivers/net/bonding/bond_3ad.c | 5 ++++- drivers/net/bonding/bond_main.c | 12 ++++++++++++ drivers/net/bonding/bond_options.c | 28 +++++++++++++++++++++++++++- drivers/net/bonding/bond_procfs.c | 2 ++ drivers/net/bonding/bond_sysfs.c | 15 +++++++++++++++ include/net/bond_options.h | 1 + include/net/bonding.h | 1 + 8 files changed, 71 insertions(+), 2 deletions(-) commit 184a394eea16d61b85444c73349ced7f91f79af2 Author: Peter Oh Date: Mon May 4 11:21:24 2015 -0700 ath10k: increase relay buffer size of spectral scan Spectral scan supported by ath10k has capability to monitor and report through whole bands and channels, but current buffer size is too small to save reported spectral scan data. This results in dropping 5G channel reports at all when dual band card is used, so that users are not able to analyze spectral environments. Hence increase the buffer size to fix the problem. A spectral data size is vary based on the number of bins, so the unit buffer size, 1140, is chose to minimize relay buffer fragmentation. The total buffer size is also chose in tradeoff with spectral scan support vs. kernel memory consumption. Since theoretical maximum buffer size, 9.5MB, can be consumed with 512 bins in dual bands, we target to cover up to 128 bins for all channels in dual bands and due to the buffer size limitation, spectral scan with bin number bigger than 128 needs to be run on single band each. Signed-off-by: Peter Oh Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/spectral.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 0198e09c4bdd7bce00c451c51a86a239c356a315 Merge: 80ba92f affb979 Author: David S. Miller Date: Mon May 11 10:50:19 2015 -0400 Merge branch 'kernel_socket_netns' Eric W. Biederman says: ==================== Cleanup the kernel sockets. Right now the situtation for allocating kernel sockets is a mess. - sock_create_kern does not take a namespace parameter. - kernel sockets must not reference count a network namespace and keep it alive or else we will have a reference counting loop. - The way we avoid the reference counting loop with sk_change_net and sk_release_kernel are major hacks. This patchset addresses this mess by fixing sock_create_kern to do everything necessary to create a kernel socket. None of the current users of kernel sockets need the network namespace reference counted. Either kernel sockets are network namespace aware (and using the current hacks) or kernel sockets are limited to the initial network namespace in which case it does not matter. This patchset starts by addressing tun which should be using normal userspace sockets like macvtap. Then sock_create_kern is fixed to take a network namespace. Then the in kernel status of sockets are passed through to sk_alloc. Then sk_alloc is fixed to not reference count the network namespace of kernel sockets. Then the callers of sock_create_kern are fixed up to stop using hacks. Then netlink which uses it's own flavor of sock_create_kern is fixed. Finally the hacks that are sk_change_net and sk_release_kernel are removed. When it is all done the code is easier to follow, easier to use, easier to maintain and shorter by about 70 lines. ==================== Reported-by: Ying Xue Signed-off-by: David S. Miller commit affb9792f1d99e1e4d64411e147b648d65f2576e Author: Eric W. Biederman Date: Fri May 8 21:12:13 2015 -0500 net: kill sk_change_net and sk_release_kernel These functions are no longer needed and no longer used kill them. Signed-off-by: "Eric W. Biederman" Signed-off-by: David S. Miller include/net/sock.h | 17 ----------------- net/core/sock.c | 19 ------------------- 2 files changed, 36 deletions(-) commit 13d3078e22f5651cd0184ce1b4e4ab8a46c62b27 Author: Eric W. Biederman Date: Fri May 8 21:11:33 2015 -0500 netlink: Create kernel netlink sockets in the proper network namespace Utilize the new functionality of sk_alloc so that nothing needs to be done to suprress the reference counting on kernel sockets. Signed-off-by: "Eric W. Biederman" Signed-off-by: David S. Miller net/netlink/af_netlink.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) commit 26abe14379f8e2fa3fd1bcf97c9a7ad9364886fe Author: Eric W. Biederman Date: Fri May 8 21:10:31 2015 -0500 net: Modify sk_alloc to not reference count the netns of kernel sockets. Now that sk_alloc knows when a kernel socket is being allocated modify it to not reference count the network namespace of kernel sockets. Keep track of if a socket needs reference counting by adding a flag to struct sock called sk_net_refcnt. Update all of the callers of sock_create_kern to stop using sk_change_net and sk_release_kernel as those hacks are no longer needed, to avoid reference counting a kernel socket. Signed-off-by: "Eric W. Biederman" Signed-off-by: David S. Miller include/net/inet_common.h | 2 +- include/net/sock.h | 2 ++ net/core/sock.c | 8 ++++++-- net/ipv4/af_inet.c | 4 +--- net/ipv4/udp_tunnel.c | 8 +++----- net/ipv6/ip6_udp_tunnel.c | 6 ++---- net/l2tp/l2tp_core.c | 15 ++++++--------- net/netfilter/ipvs/ip_vs_sync.c | 30 +++++++++--------------------- 8 files changed, 30 insertions(+), 45 deletions(-) commit 11aa9c28b4209242a9de0a661a7b3405adb568a0 Author: Eric W. Biederman Date: Fri May 8 21:09:13 2015 -0500 net: Pass kern from net_proto_family.create to sk_alloc In preparation for changing how struct net is refcounted on kernel sockets pass the knowledge that we are creating a kernel socket from sock_create_kern through to sk_alloc. Signed-off-by: "Eric W. Biederman" Signed-off-by: David S. Miller crypto/af_alg.c | 4 ++-- drivers/isdn/mISDN/socket.c | 12 ++++++------ drivers/net/macvtap.c | 2 +- drivers/net/ppp/pppoe.c | 4 ++-- drivers/net/ppp/pppox.c | 2 +- drivers/net/ppp/pptp.c | 4 ++-- drivers/net/tun.c | 2 +- include/linux/if_pppox.h | 2 +- include/net/af_vsock.h | 2 +- include/net/llc_conn.h | 2 +- include/net/sock.h | 2 +- net/appletalk/ddp.c | 2 +- net/atm/common.c | 4 ++-- net/atm/common.h | 2 +- net/atm/pvc.c | 2 +- net/atm/svc.c | 2 +- net/ax25/af_ax25.c | 4 ++-- net/bluetooth/bnep/sock.c | 2 +- net/bluetooth/cmtp/sock.c | 2 +- net/bluetooth/hci_sock.c | 2 +- net/bluetooth/hidp/sock.c | 2 +- net/bluetooth/l2cap_sock.c | 10 +++++----- net/bluetooth/rfcomm/sock.c | 8 ++++---- net/bluetooth/sco.c | 8 ++++---- net/caif/caif_socket.c | 2 +- net/can/af_can.c | 2 +- net/core/sock.c | 3 ++- net/decnet/af_decnet.c | 8 ++++---- net/ieee802154/socket.c | 2 +- net/ipv4/af_inet.c | 2 +- net/ipv6/af_inet6.c | 2 +- net/ipx/af_ipx.c | 2 +- net/irda/af_irda.c | 2 +- net/iucv/af_iucv.c | 10 +++++----- net/key/af_key.c | 2 +- net/l2tp/l2tp_ppp.c | 4 ++-- net/llc/af_llc.c | 2 +- net/llc/llc_conn.c | 6 +++--- net/netlink/af_netlink.c | 11 +++++------ net/netrom/af_netrom.c | 4 ++-- net/nfc/af_nfc.c | 2 +- net/nfc/llcp.h | 2 +- net/nfc/llcp_core.c | 2 +- net/nfc/llcp_sock.c | 8 ++++---- net/nfc/nfc.h | 2 +- net/nfc/rawsock.c | 4 ++-- net/packet/af_packet.c | 2 +- net/phonet/af_phonet.c | 2 +- net/phonet/pep.c | 2 +- net/rds/af_rds.c | 2 +- net/rose/af_rose.c | 4 ++-- net/rxrpc/af_rxrpc.c | 2 +- net/sctp/ipv6.c | 2 +- net/sctp/protocol.c | 2 +- net/tipc/socket.c | 2 +- net/unix/af_unix.c | 8 ++++---- net/vmw_vsock/af_vsock.c | 7 ++++--- net/vmw_vsock/vmci_transport.c | 2 +- net/x25/af_x25.c | 8 ++++---- 59 files changed, 109 insertions(+), 108 deletions(-) commit eeb1bd5c40edb0e2fd925c8535e2fdebdbc5cef2 Author: Eric W. Biederman Date: Fri May 8 21:08:05 2015 -0500 net: Add a struct net parameter to sock_create_kern This is long overdue, and is part of cleaning up how we allocate kernel sockets that don't reference count struct net. Signed-off-by: "Eric W. Biederman" Signed-off-by: David S. Miller drivers/block/drbd/drbd_receiver.c | 4 ++-- fs/afs/rxrpc.c | 2 +- fs/dlm/lowcomms.c | 16 ++++++++-------- include/linux/net.h | 2 +- net/bluetooth/rfcomm/core.c | 2 +- net/ceph/messenger.c | 4 ++-- net/ipv4/af_inet.c | 2 +- net/ipv4/udp_tunnel.c | 2 +- net/ipv6/ip6_udp_tunnel.c | 2 +- net/l2tp/l2tp_core.c | 4 ++-- net/netfilter/ipvs/ip_vs_sync.c | 4 ++-- net/rxrpc/ar-local.c | 4 ++-- net/socket.c | 4 ++-- 13 files changed, 26 insertions(+), 26 deletions(-) commit 140e807da12988e2a925fe029336e7bb67a8d4de Author: Eric W. Biederman Date: Fri May 8 21:07:08 2015 -0500 tun: Utilize the normal socket network namespace refcounting. There is no need for tun to do the weird network namespace refcounting. The existing network namespace refcounting in tfile has almost exactly the same lifetime. So rewrite the code to use the struct sock network namespace refcounting and remove the unnecessary hand rolled network namespace refcounting and the unncesary tfile->net. This change allows the tun code to directly call sock_put bypassing sock_release and making SOCK_EXTERNALLY_ALLOCATED unnecessary. Remove the now unncessary tun_release so that if anything tries to use the sock_release code path the kernel will oops, and let us know about the bug. The macvtap code already uses it's internal socket this way. Signed-off-by: "Eric W. Biederman" Signed-off-by: David S. Miller drivers/net/tun.c | 24 ++++-------------------- include/linux/net.h | 1 - net/socket.c | 3 --- 3 files changed, 4 insertions(+), 24 deletions(-) commit 843a5e83e1dd0b86c124def24e1c5836bfb44710 Author: Frank Li Date: Fri May 8 01:35:58 2015 +0800 ARM: config: imx_v6_v7_defconfig add imx7d support Add imx7d support Signed-off-by: Frank Li Signed-off-by: Shawn Guo arch/arm/configs/imx_v6_v7_defconfig | 1 + 1 file changed, 1 insertion(+) commit 70c751095d5481d246ae7ec622ed35a76ce6ff0c Author: Charles Keepax Date: Thu May 7 11:33:58 2015 +0100 ASoC: dapm: Break out of widget search when source and sink are located Currently snd_soc_dapm_add_route will continue to search the widget list even after both the source and sink for the route have been located. This patch breaks out of the search when both are located giving a small improvement in probe time for drivers. Signed-off-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/soc-dapm.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit 9a6c2febdc7fc9ad2fc8b7a7bdb49ae476f424c1 Author: Charles Keepax Date: Mon May 11 13:58:07 2015 +0100 regulator: arizona-ldo1: Add additional supported voltage This patch adds support for the 1.175V mode on the LDO1 regulator on the wm5110. This is need as part of the low power sleep mode operation. Signed-off-by: Charles Keepax Signed-off-by: Mark Brown drivers/regulator/arizona-ldo1.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit 191a66353b22fad8ac89404ab4c929cbe7b0afb2 Merge: f5d6a52 f21262b Author: Ingo Molnar Date: Mon May 11 16:05:09 2015 +0200 Merge branch 'x86/asm' into x86/apic, to resolve a conflict Conflicts: arch/x86/kernel/apic/io_apic.c arch/x86/kernel/apic/vector.c Signed-off-by: Ingo Molnar commit cb2e1a234c163d429712c0fa8eef8ab01499b738 Author: Fabio Estevam Date: Sat May 9 08:51:23 2015 -0300 ARM: imx: gpc: Remove .owner field This 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. More information about semantic patching is available at http://coccinelle.lip6.fr/ Signed-off-by: Fabio Estevam Signed-off-by: Shawn Guo arch/arm/mach-imx/gpc.c | 1 - 1 file changed, 1 deletion(-) commit f2f55499942a0629e7940fe4d4e2cd654bc03790 Author: Fabio Estevam Date: Fri May 8 10:05:44 2015 -0300 ARM: imx: Remove eukrea_mbimxsd35 non-dt support eukrea_mbimxsd35 board has device tree support, so we can get rid of the board related files. Signed-off-by: Fabio Estevam Signed-off-by: Shawn Guo arch/arm/mach-imx/Kconfig | 34 --- arch/arm/mach-imx/Makefile | 2 - arch/arm/mach-imx/eukrea_mbimxsd35-baseboard.c | 318 ------------------------- arch/arm/mach-imx/mach-cpuimx35.c | 206 ---------------- 4 files changed, 560 deletions(-) commit 7484f3cf8fafe6d5b00bb3939891679a5373415c Author: Suchang Ko Date: Mon May 11 14:55:39 2015 +0200 ARM: at91/dt: sama5d4: add uart0, uart1 dt nodes Add sama5d4 uart0, uart1 dt nodes, pinctrl and related aliases. Signed-off-by: Suchang Ko [nicolas.ferre@atmel.com: split patch, reorder & whitespace fixes] Signed-off-by: Nicolas Ferre arch/arm/boot/dts/sama5d4.dtsi | 56 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) commit 4896c7337cffe43b5b1f7963bfa2014cb8977509 Author: Josh Wu Date: Thu Apr 23 11:00:56 2015 +0800 ARM: at91/dt: sama5d4: add usart0, usart1 dt nodes Also add the pinctrl for usart0, usart1. Signed-off-by: Josh Wu Signed-off-by: Nicolas Ferre arch/arm/boot/dts/sama5d4.dtsi | 68 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) commit 973ed08377f6d61dd4e9fd62207737c8ec0d49e9 Author: Imre Kaloz Date: Wed May 6 15:13:59 2015 +0200 ARM: mvebu: add alias for mdio on Armada 38x This allows us to reference it later. Signed-off-by: Imre Kaloz arch/arm/boot/dts/armada-38x.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 385c0fb0e2c452ce7237a95bd565748a399956a9 Author: Fabio Estevam Date: Thu May 7 14:31:18 2015 -0300 ARM: imx_v6_v7_defconfig: Select LS1021A Enable CONFIG_SOC_LS1021A by default. Signed-off-by: Fabio Estevam Signed-off-by: Shawn Guo arch/arm/configs/imx_v6_v7_defconfig | 1 + 1 file changed, 1 insertion(+) commit 1c1534d94288a51c47823bcd7e06f82fda521a97 Author: Sebastian Hesselbarth Date: Mon May 4 22:08:50 2015 +0200 ARM: dts: dove: Add Compulab SBC-A510 to Makefile With reworked device tree files for Compulab CM-A510 SoM and SBC-A510 base board, now add the correspoding board file to Makefile again. Signed-off-by: Sebastian Hesselbarth Signed-off-by: Gregory CLEMENT arch/arm/boot/dts/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 896dd2728ff2c85b7a1fb19b2d388deaf7e4ad0b Author: Sebastian Hesselbarth Date: Mon May 4 22:08:49 2015 +0200 ARM: dts: dove: Add proper support for Compulab CM-A510/SBC-A510 Existing dts file for Compulab CM-A510 was very limited due to missing hardware. Now that we actually found somebody with that board, properly rework it to provide a CoM/SoM include and a board file for Compulab's SBC-A510. Both the CM-A510 SoM and the SBC-A510 can be configured with different options, so we only enable a minimum set of options. The actual board configuration will have to be set by either the bootloader or user. Although functionally not required, repeat even disabled nodes again to increse their visibility in the dtsi/dts files. Signed-off-by: Sebastian Hesselbarth Tested-by: Gabriel Dobato Acked-by: Gregory CLEMENT Signed-off-by: Gregory CLEMENT arch/arm/boot/dts/dove-cm-a510.dts | 38 ------- arch/arm/boot/dts/dove-cm-a510.dtsi | 195 ++++++++++++++++++++++++++++++++++++ arch/arm/boot/dts/dove-sbc-a510.dts | 182 +++++++++++++++++++++++++++++++++ 3 files changed, 377 insertions(+), 38 deletions(-) commit aa532007561e05b4dc3f60ad8eb29fa4850cab14 Author: Sebastian Hesselbarth Date: Mon May 4 22:08:48 2015 +0200 ARM: dts: dove: Remove Compulab CM-A510 from Makefile Prior reworking Dove based Compulab CM-A510 device tree, remove it from the compiled device tree files. Signed-off-by: Sebastian Hesselbarth Signed-off-by: Gregory CLEMENT arch/arm/boot/dts/Makefile | 1 - 1 file changed, 1 deletion(-) commit 7ec7e546c0f7facffd71bbacf6828a8d942c5f62 Author: Sebastian Hesselbarth Date: Mon May 4 22:08:47 2015 +0200 ARM: dts: dove: Add internal i2c multiplexer node This adds a i2c-mux-pinctrl node to dove.dtsi for the internal i2c mux found on Dove SoCs. Up to now, we had no board using any of the two additional i2c busses, so make sure the change does not break any existing boards. Therefore, we rename the i2c-controller node label to "i2c" and enable it by default. Also, the dedicated sub-bus (now "i2c0") is enabled by default. The two optional sub-busses require additional external pin-muxing, so disable them by default. Signed-off-by: Sebastian Hesselbarth Acked-by: Gregory CLEMENT Signed-off-by: Gregory CLEMENT arch/arm/boot/dts/dove.dtsi | 40 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) commit 890b7878e4435518c45d80c5e33c335aab39d4e2 Author: Arik Nemtsov Date: Thu May 7 15:30:41 2015 +0300 mac80211: TDLS: use the BSS chandef for HT/VHT operation IEs The chandef of the current channel context might be wider (though compatible). The TDLS link cares only about the channel of the BSS. In addition make sure to specify the VHT operation IE when VHT is supported on a non-2.4GHz band, as required by IEEE802.11ac-2013. This is not the same as HT-operation, to be specified only if the BSS doesn't support HT. Signed-off-by: Arik Nemtsov Reviewed-by: Johannes Berg Signed-off-by: Johannes Berg net/mac80211/tdls.c | 27 ++++++++------------------- 1 file changed, 8 insertions(+), 19 deletions(-) commit fd8a1043cdeff833017be6e5a31094f557dd53d4 Author: David Henningsson Date: Mon May 11 10:23:57 2015 +0200 ALSA: hda - Remove unused call to "get_pin" in patch_hdmi.c Janitorial patch (no functional change) Signed-off-by: David Henningsson Signed-off-by: Takashi Iwai sound/pci/hda/patch_hdmi.c | 2 -- 1 file changed, 2 deletions(-) commit 0450b2d120ed9e6d4ac7a6eade0ad116f69b88f7 Author: Al Viro Date: Fri May 8 13:23:53 2015 -0400 namei: store seq numbers in nd->stack[] we'll need them for unlazy_walk() Signed-off-by: Al Viro fs/namei.c | 2 ++ 1 file changed, 2 insertions(+) commit 294d71ff2f020aa2ef7057a7bd10cf2ec71b5ee3 Author: Al Viro Date: Fri May 8 11:43:53 2015 -0400 new helper: __legitimize_mnt() same as legitimize_mnt(), except that it does *not* drop and regain rcu_read_lock; return values are 0 => grabbed a reference, we are fine 1 => failed, just go away -1 => failed, go away and mntput(bastard) when outside of rcu_read_lock Signed-off-by: Al Viro fs/mount.h | 1 + fs/namespace.c | 27 +++++++++++++++++++-------- 2 files changed, 20 insertions(+), 8 deletions(-) commit 31956502dd2c9432523d01373a9dc0e5931cfa1c Author: Al Viro Date: Thu May 7 20:37:40 2015 -0400 namei: make may_follow_link() safe in RCU mode We *can't* call that audit garbage in RCU mode - it's doing a weird mix of allocations (GFP_NOFS, immediately followed by GFP_KERNEL) and I'm not touching that... thing again. So if this security sclero^Whardening feature gets triggered when we are in RCU mode, tough - we'll fail with -ECHILD and have everything restarted in non-RCU mode. Only to hit the same test and fail, this time with EACCES and with (oh, rapture) an audit spew produced. Signed-off-by: Al Viro fs/namei.c | 3 +++ 1 file changed, 3 insertions(+) commit 6548fae2eca6b66c7257af6663fdbdf5a50745fd Author: Al Viro Date: Thu May 7 20:32:22 2015 -0400 namei: make put_link() RCU-safe very simple - just make path_put() conditional on !RCU. Note that right now it doesn't get called in RCU mode - we leave it before getting anything into stack. Signed-off-by: Al Viro fs/namei.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit ecc087ff14352aed52b8e775b4511e7f9cfc64ec Author: Al Viro Date: Thu May 7 11:19:14 2015 -0400 new helper: free_page_put_link() similar to kfree_put_link() Signed-off-by: Al Viro fs/configfs/symlink.c | 7 +------ fs/fuse/dir.c | 7 +------ fs/kernfs/symlink.c | 7 +------ fs/libfs.c | 6 ++++++ include/linux/fs.h | 1 + 5 files changed, 10 insertions(+), 18 deletions(-) commit 5f2c4179e129bdc47870a81a65d0aff85aa18293 Author: Al Viro Date: Thu May 7 11:14:26 2015 -0400 switch ->put_link() from dentry to inode only one instance looks at that argument at all; that sole exception wants inode rather than dentry. Signed-off-by: Al Viro Documentation/filesystems/Locking | 2 +- Documentation/filesystems/vfs.txt | 2 +- drivers/staging/lustre/lustre/llite/symlink.c | 2 +- fs/configfs/symlink.c | 2 +- fs/f2fs/namei.c | 2 +- fs/fuse/dir.c | 2 +- fs/hostfs/hostfs_kern.c | 2 +- fs/hppfs/hppfs.c | 8 ++++---- fs/kernfs/symlink.c | 2 +- fs/libfs.c | 2 +- fs/namei.c | 13 +++++++------ fs/overlayfs/inode.c | 4 ++-- fs/proc/inode.c | 2 +- include/linux/fs.h | 6 +++--- mm/shmem.c | 2 +- 15 files changed, 27 insertions(+), 26 deletions(-) commit bda0be7ad994812960e9f8f2d2757f72cb4a96cb Author: NeilBrown Date: Mon Mar 23 13:37:39 2015 +1100 security: make inode_follow_link RCU-walk aware inode_follow_link now takes an inode and rcu flag as well as the dentry. inode is used in preference to d_backing_inode(dentry), particularly in RCU-walk mode. selinux_inode_follow_link() gets dentry_has_perm() and inode_has_perm() open-coded into it so that it can call avc_has_perm_flags() in way that is safe if LOOKUP_RCU is set. Calling avc_has_perm_flags() with rcu_read_lock() held means that when avc_has_perm_noaudit calls avc_compute_av(), the attempt to rcu_read_unlock() before calling security_compute_av() will not actually drop the RCU read-lock. However as security_compute_av() is completely in a read_lock()ed region, it should be safe with the RCU read-lock held. Signed-off-by: NeilBrown Signed-off-by: Al Viro fs/namei.c | 5 +++-- include/linux/security.h | 12 +++++++++--- security/capability.c | 3 ++- security/security.c | 7 ++++--- security/selinux/hooks.c | 16 ++++++++++++++-- 5 files changed, 32 insertions(+), 11 deletions(-) commit 7b20ea2579238f5e0da4bc93276c1b63c960c9ef Author: NeilBrown Date: Mon Mar 23 13:37:39 2015 +1100 security/selinux: pass 'flags' arg to avc_audit() and avc_has_perm_flags() This allows MAY_NOT_BLOCK to be passed, in RCU-walk mode, through the new avc_has_perm_flags() to avc_audit() and thence the slow_avc_audit. Signed-off-by: NeilBrown Signed-off-by: Al Viro security/selinux/avc.c | 18 +++++++++++++++++- security/selinux/hooks.c | 2 +- security/selinux/include/avc.h | 9 +++++++-- 3 files changed, 25 insertions(+), 4 deletions(-) commit 181548c05147154605711f3b1cf863267b5b8f7a Author: Al Viro Date: Thu May 7 19:54:34 2015 -0400 namei: pick_link() callers already have inode no need to refetch (and once we move unlazy out of there, recheck ->d_seq). Signed-off-by: Al Viro fs/namei.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) commit 63afdfc781e10c6b3ec38274e6163422876caa9a Author: David Howells Date: Wed May 6 15:59:00 2015 +0100 VFS: Handle lower layer dentry/inode in pathwalk Make use of d_backing_inode() in pathwalk to gain access to an inode or dentry that's on a lower layer. Signed-off-by: David Howells fs/namei.c | 10 +++++----- fs/open.c | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) commit 237d8b327abb428ff39b49e32ce07fdac468e32f Author: Al Viro Date: Thu May 7 09:21:14 2015 -0400 namei: store inode in nd->stack[] Signed-off-by: Al Viro fs/namei.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 254cf582127b200ea6d4e55c9b4965485c3fe4c8 Author: Al Viro Date: Tue May 5 09:40:46 2015 -0400 namei: don't mangle nd->seq in lookup_fast() Signed-off-by: Al Viro fs/namei.c | 38 +++++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 15 deletions(-) commit 6e9918b7b3924f7a4cc3faa73c6e15d709ac239f Author: Al Viro Date: Tue May 5 09:26:05 2015 -0400 namei: explicitly pass seq number to unlazy_walk() when dentry != NULL Signed-off-by: Al Viro fs/namei.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) commit 3595e2346cd91c223efddc79353fe7ced81f21bf Author: Al Viro Date: Sat May 9 16:54:45 2015 -0400 link_path_walk: use explicit returns for failure exits Signed-off-by: Al Viro fs/namei.c | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) commit deb106c632d73c96b6b2b5ca71bacb8aef38fc7b Author: Al Viro Date: Fri May 8 18:05:21 2015 -0400 namei: lift terminate_walk() all the way up Lift it from link_path_walk(), trailing_symlink(), lookup_last(), mountpoint_last(), complete_walk() and do_last(). A _lot_ of those suckers merge. Signed-off-by: Al Viro fs/namei.c | 106 ++++++++++++++++++++----------------------------------------- 1 file changed, 34 insertions(+), 72 deletions(-) commit 3bdba28b72f5d2e7f3df031b04008b9a6fbdc775 Author: Al Viro Date: Fri May 8 17:37:07 2015 -0400 namei: lift link_path_walk() call out of trailing_symlink() Make trailing_symlink() return the pathname to traverse or ERR_PTR(-E...). A subtle point is that for "magic" symlinks it returns "" now - that leads to link_path_walk("", nd), which is immediately returning 0 and we are back to the treatment of the last component, at whereever the damn thing has left us. Reduces the stack footprint - link_path_walk() called on more shallow stack now. Signed-off-by: Al Viro fs/namei.c | 50 +++++++++++++++++++++++--------------------------- 1 file changed, 23 insertions(+), 27 deletions(-) commit 368ee9ba565d6e13912791b05f3cc1dfa945a62a Author: Al Viro Date: Fri May 8 17:19:59 2015 -0400 namei: path_init() calling conventions change * lift link_path_walk() into callers; moving it down into path_init() had been a mistake. Stack footprint, among other things... * do _not_ call path_cleanup() after path_init() failure; on all failure exits out of it we have nothing for path_cleanup() to do * have path_init() return pathname or ERR_PTR(-E...) Signed-off-by: Al Viro fs/namei.c | 69 +++++++++++++++++++++++++++++++------------------------------- 1 file changed, 35 insertions(+), 34 deletions(-) commit cba3d2765e9fcbce45fa3930c4d5f4da7652e752 Merge: 31fd988 06b3675 Author: Paolo Bonzini Date: Mon May 11 14:06:32 2015 +0200 Merge tag 'kvm-s390-next-20150508' of git://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux into HEAD KVM: s390: Fixes and features for 4.2 (kvm/next) Mostly a bunch of fixes, reworks and optimizations for s390. There is one new feature (EDAT-2 inside the guest), which boils down to 2GB pages. commit 34a26b99b78148ff342801e732bf20014c291d03 Author: Al Viro Date: Mon May 11 08:05:05 2015 -0400 namei: get rid of nameidata->base we can do fdput() under rcu_read_lock() just fine; all we need to take care of is fetching nd->inode value first. Signed-off-by: Al Viro fs/namei.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) commit 96a4688edb5e638a9f81c787c031bbdbfa291527 Author: Johannes Berg Date: Mon May 11 14:01:36 2015 +0200 mac80211: check fast-xmit if IBSS STA QoS changed When an IBSS station gets QoS enabled after having been added, check fast-xmit to make sure the QoS header gets added to the cache properly and frames can go out with QoS and higher rates. Reported-by: Janusz Dziedzic Signed-off-by: Johannes Berg net/mac80211/ibss.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit c9802a4be6611520dd99d91d0d9c4efcaa0fa281 Author: Suman Tripathi Date: Mon May 11 14:06:15 2015 +0530 ata: ahci_xgene: Add AHCI Support for 2nd HW version of APM X-Gene SoC AHCI SATA Host controller. This patch enables full AHCI feature support for APM X-Gene SoC SATA host controller. The following errata's are removed: 1. 2a0bdff6b95 ("ahci-xgene: fix the dma state machine lockup for the IDENTIFY DEVICE PIO mode command") 2. 09c32aaa368 ("ahci_xgene: Fix the dma state machine lockup for the ATA_CMD_SMART PIO mode command") 3. 1540035da71 ("ahci_xgene: Implement the xgene_ahci_poll_reg_val to support PMP") 4. a3a84bc7c88 ("ahci_xgene: Implement the workaround to support PMP enumeration and discovery") 5. 1102407bb71 ("ahci_xgene: Fix the DMA state machine lockup for the ATA_CMD_PACKET PIO mode command") 6. 72f79f9e35b ("ahci_xgene: Removing NCQ support from the APM X-Gene SoC AHCI SATA Host Controller driver") In addition, enable PMP support for APM X-Gene SoC and enable FBS support for second generation APM X-Gene SoC. Signed-off-by: Suman Tripathi Signed-off-by: Tejun Heo drivers/ata/ahci_xgene.c | 105 ++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 86 insertions(+), 19 deletions(-) commit 4c0a65aec3784017aeeb1933c465f901568e98ee Merge: c3f2250 030bbdb Author: Mauro Carvalho Chehab Date: Mon May 11 08:08:50 2015 -0300 Merge tag 'v4.1-rc3' into patchwork Linux 4.1-rc3 * tag 'v4.1-rc3': (381 commits) Linux 4.1-rc3 drm: Zero out invalid vblank timestamp in drm_update_vblank_count. m32r: make flush_cpumask non-volatile. mnt: Fix fs_fully_visible to verify the root directory is visible path_openat(): fix double fput() namei: d_is_negative() should be checked before ->d_seq validation ARM: dts: Add keep-power-in-suspend to WiFi SDIO node for exynos5250-snow ARM: dts: Fix typo in trip point temperature for exynos5420/5440 ARM: dts: add 'rtc_src' clock to rtc node for exynos4412-odroid boards ARM: dts: Make DP a consumer of DISP1 power domain on Exynos5420 MAINTAINERS: add Conexant Digicolor machines entry MAINTAINERS: socfpga: update the git repo for SoCFPGA drm/tegra: Don't use vblank_disable_immediate on incapable driver. mmc: dw_mmc: dw_mci_get_cd check MMC_CAP_NONREMOVABLE mmc: dw_mmc: init desc in dw_mci_idmac_init ARM: multi_v7_defconfig: Select more FSL SoCs MAINTAINERS: replace an AT91 maintainer drivers: CCI: fix used_mask init in validate_group() drm/radeon: stop trying to suspend UVD sessions drm/radeon: more strictly validate the UVD codec ... commit 38c0488770983b2654f075540cc1fc71f55b6df5 Author: Joel Stanley Date: Thu Apr 30 13:50:07 2015 +1000 powerpc/powernv: Silence SYSPARAM warning on boot OpenPower BMC machines do not place any sysparams in the device tree, so at every boot we get a warning: [ 0.437176] SYSPARAM: Opal sysparam node not found Remove the warning, and reorder the init so we don't peform allocations when there is no sysparam node in the device tree. Signed-off-by: Joel Stanley Acked-by: Neelesh Gupta Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/opal-sysparam.c | 31 +++++++++++++------------- 1 file changed, 15 insertions(+), 16 deletions(-) commit a14ab6b6e0ad54bf872ce987f5b48f338d6780c8 Author: Michael Ellerman Date: Fri May 1 13:20:25 2015 +1000 powerpc/cell: Drop cbe-oss-dev mailing list from MAINTAINERS Traffic on the cbe-oss-dev list is more or less non-existent, other than CC's from linuxppc. It's seems like we may as well just send everyone to linuxppc and archive the list. Signed-off-by: Michael Ellerman Acked-by: Jeremy Kerr MAINTAINERS | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit e0d0059169945c8ee16790d2e7244cea397dfd56 Author: Michael Ellerman Date: Mon May 11 20:01:02 2015 +1000 powerpc/vdso: Disable building the 32-bit VDSO on little endian The only little endian configuration we support is ppc64le. As such if we're building little endian we don't need a 32-bit VDSO, because there is no 32-bit userspace. This patch is a fairly ugly mess of #ifdefs, but is the minimal logic required to disable the 32-bit VDSO. We can hopefully clean up the result in future with some further refactoring. Signed-off-by: Michael Ellerman arch/powerpc/kernel/Makefile | 3 ++- arch/powerpc/kernel/vdso.c | 36 ++++++++++++++++++++++++++++++++-- arch/powerpc/platforms/Kconfig.cputype | 10 ++++++++++ 3 files changed, 46 insertions(+), 3 deletions(-) commit 6e5c077519f2661c56647fc21b2ec2ba0a50bb75 Author: Michael Ellerman Date: Wed Apr 22 15:40:35 2015 +1000 powerpc/vdso: Combine start/size variables In vdso_fixup_features() we have start64/start32 and size64/size32, but they have the same types, ie. void * and unsigned long. They're only used to save the return value from find_sectionXX() for the subsequent call to do_feature_fixups(), so there's no overlap in their usage either. So we can just consolidate them into start/size and avoid the duplication. Signed-off-by: Michael Ellerman arch/powerpc/kernel/vdso.c | 55 ++++++++++++++++++++++------------------------ 1 file changed, 26 insertions(+), 29 deletions(-) commit 63da88dd48268af415b3677e20f6bcb92c1bf32c Author: Michael Ellerman Date: Wed Apr 22 15:40:34 2015 +1000 powerpc/vdso: Remove unused debug code It's in the git history if we ever need it back. Signed-off-by: Michael Ellerman arch/powerpc/kernel/vdso.c | 44 -------------------------------------------- 1 file changed, 44 deletions(-) commit 60e065f70bdb0b0e916389024922ad40f3270c96 Author: Michael Ellerman Date: Thu Apr 23 17:27:12 2015 +1000 powerpc: Reject binutils 2.24 when building little endian There is a bug in binutils 2.24 which causes miscompilation if we're building little endian and using weak symbols (which the kernel does). It is fixed in binutils commit 57fa7b8c7e59 "Correct elf_merge_st_other arguments for weak symbols", which is in binutils 2.25 and has been backported to the binutils 2.24 branch and has been picked up by most distros it seems. However if we're running stock 2.24 (no extra version) then the bug is present, so check for that and bail. Signed-off-by: Michael Ellerman arch/powerpc/Makefile | 8 ++++++++ 1 file changed, 8 insertions(+) commit a41f3c8cd4e28dcbebd8ec27a9602c86cfa5f009 Author: Stephane Eranian Date: Thu Apr 23 08:56:42 2015 +0200 perf/x86/intel/uncore: Add Broadwell-U uncore IMC PMU support This patch enables the uncore Memory Controller (IMC) PMU support for Intel Broadwell-U (Model 61) mobile processors. The IMC PMU enables measuring memory bandwidth. To use with perf: $ perf stat -a -I 1000 -e uncore_imc/data_reads/,uncore_imc/data_writes/ sleep 10 Tested-by: Sonny Rao Signed-off-by: Stephane Eranian Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Thomas Gleixner Cc: kan.liang@intel.com Cc: peterz@infradead.org Link: http://lkml.kernel.org/r/20150423065642.GA4890@thinkpad Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel_uncore.c | 3 +++ arch/x86/kernel/cpu/perf_event_intel_uncore.h | 1 + arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c | 20 ++++++++++++++++++++ 3 files changed, 24 insertions(+) commit e79c8385c878abdf90290cba6bea08fd60058562 Author: Michael Ellerman Date: Tue Apr 21 22:26:57 2015 +1000 powerpc: Don't do gcc version checks if we're building with clang We have several checks for bad gcc versions in our Makefile. These don't apply if we're building with clang, so skip them in that case. The obvious check would be for ${COMPILER} = "gcc", but because of the way the logic in the top level Makefile conditionally sets COMPILER, it's possible that we're building with gcc but COMPILER was not set. So instead check for ${COMPILER} != "clang", which we know is currently the only other possibility. Signed-off-by: Michael Ellerman arch/powerpc/Makefile | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit f7dc7fd1c08c6d8109688694fd93d80645df89ff Merge: 32b0ed3 44b11fe Author: Ingo Molnar Date: Mon May 11 11:56:27 2015 +0200 Merge branch 'perf/urgent' into perf/core, to resolve conflicts Conflicts: tools/perf/builtin-kmem.c Signed-off-by: Ingo Molnar commit c884fbd452147e952ae160e750553d00ea4dc4c9 Author: Mika Westerberg Date: Wed May 6 13:29:06 2015 +0300 gpio / ACPI: Add support for retrieving GpioInt resources from a device ACPI specification knows two types of GPIOs: GpioIo and GpioInt. The latter is used to describe that a given device interrupt line is connected to a specific GPIO pin. Typical ACPI _CRS entry for such device looks like below: Name (_CRS, ResourceTemplate () { I2cSerialBus (0x004A, ControllerInitiated, 0x00061A80, AddressingMode7Bit, "\\_SB.PCI0.I2C6", 0x00, ResourceConsumer) GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, "\\_SB.GPO0", 0x00, ResourceConsumer) { 0x004B } GpioInt (Level, ActiveLow, Shared, PullDefault, 0x0000, "\\_SB.GPO0", 0x00, ResourceConsumer) { 0x004C } }) Currently drivers need to request a GPIO corresponding to the right GpioInt and then translate that to Linux IRQ number. This adds unnecessary lines of boiler-plate code. We can ease this a bit by introducing acpi_dev_gpio_irq_get() analogous to of_irq_get(). This function translates given GpioInt resource under the device in question to the suitable Linux IRQ number. Signed-off-by: Mika Westerberg Acked-by: Rafael J. Wysocki Signed-off-by: Linus Walleij drivers/gpio/gpiolib-acpi.c | 29 +++++++++++++++++++++++++++++ include/linux/acpi.h | 7 +++++++ 2 files changed, 36 insertions(+) commit 5c0aebf6e101e9ea6ddea7aaba13582c89206333 Author: Michael Ellerman Date: Wed Apr 15 12:17:07 2015 +1000 powerpc: Show utsname->machine in boot-up banner Currently we print "Starting Linux PPC64" at boot. But we don't mention anywhere whether the kernel is big or little endian. If we print the utsname->machine value instead we get either "ppc64" or "ppc64le" which is much more informative, eg: Starting Linux ppc64le #1 SMP Wed Apr 15 12:12:20 AEST 2015 Signed-off-by: Michael Ellerman arch/powerpc/kernel/setup_64.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 5af7a6f3e2d015dcaaeffa48c6d47238415cbe66 Author: Michael Ellerman Date: Fri Apr 10 11:52:06 2015 +1000 powerpc/pasemi: Only the build the pasemi MSI code for PASEMI=y The pasemi MSI code is currently always built when MPIC=y && PCI_MSI=y. It should not have any effect on other platforms, because it immediately checks the MPIC's compatible property for "pasemi,pwrficient-openpic". However it's odd that it's still built even when PASEMI=n. It also needn't be in sysdev, as it's only used by pasemi. So move it into platforms/pasemi, whereby it will only be built for PASEMI=y. Signed-off-by: Michael Ellerman arch/powerpc/platforms/pasemi/Makefile | 1 + arch/powerpc/platforms/pasemi/msi.c | 165 ++++++++++++++++++++++++++++++++ arch/powerpc/sysdev/Makefile | 2 +- arch/powerpc/sysdev/mpic.h | 10 +- arch/powerpc/sysdev/mpic_pasemi_msi.c | 167 --------------------------------- 5 files changed, 172 insertions(+), 173 deletions(-) commit 1fcb61c52bbdbbc46d132acf7dab9ad0eca433fe Author: Dexuan Cui Date: Thu Apr 23 01:07:08 2015 -0700 x86/mm/pageattr: Remove an unused variable in slow_virt_to_phys() The patch doesn't change any logic. Signed-off-by: Dexuan Cui Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1429776428-4475-1-git-send-email-decui@microsoft.com Signed-off-by: Ingo Molnar arch/x86/mm/pageattr.c | 2 -- 1 file changed, 2 deletions(-) commit f1e7c202a98cb87cc650d99d014f87e6248ae530 Author: Michael Ellerman Date: Wed Mar 25 20:11:56 2015 +1100 powerpc: Make STRICT_MM_TYPECHECKS a config option The STRICT_MM_TYPECHECKS code has bit-rotted over the years. To make it possible to easily build test it, make it a CONFIG option. Signed-off-by: Michael Ellerman arch/powerpc/Kconfig.debug | 8 ++++++++ arch/powerpc/include/asm/page.h | 4 +--- arch/powerpc/include/asm/pgtable-ppc64.h | 2 +- 3 files changed, 10 insertions(+), 4 deletions(-) commit 442b2494b17d1a4f0a14721580271eb23ebffd42 Author: Vladimir Zapolskiy Date: Wed Apr 29 18:35:01 2015 +0300 gpio: mxc: read output value from GPIO_DR register All supported iMX GPIO controllers store configured GPIO output value in GPIO_DR data register, which is represented by GPIO generic reg_set. Provide a BGPIOF_READ_OUTPUT_REG_SET flag to bgpio_init() to allow correct getting of previously set output value. Signed-off-by: Vladimir Zapolskiy Signed-off-by: Linus Walleij drivers/gpio/gpio-mxc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit f30663398ee28ecd1b66ceeb6a73ef704d4abf78 Author: Vladimir Zapolskiy Date: Wed Apr 29 18:35:00 2015 +0300 gpio: moxart: get value of output gpio from generic driver Adding a BGPIOF_READ_OUTPUT_REG_SET initialization flag to GPIO generic MMIO driver makes possible to remove a private get() value function from the driver. Signed-off-by: Vladimir Zapolskiy Signed-off-by: Linus Walleij drivers/gpio/gpio-moxart.c | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) commit b19e7f51a55fe740c18038d1d6957aedfc078d07 Author: Vladimir Zapolskiy Date: Wed Apr 29 18:34:59 2015 +0300 gpio: gpio-generic: add flag to read out output value from reg_set The change introduces BGPIOF_READ_OUTPUT_REG_SET flag for gpio-generic GPIO chip implementation, which allows to get correct configured value from reg_set register, input value is still get from reg_dat. Signed-off-by: Vladimir Zapolskiy Signed-off-by: Linus Walleij drivers/gpio/gpio-generic.c | 22 +++++++++++++++++++--- include/linux/basic_mmio_gpio.h | 1 + 2 files changed, 20 insertions(+), 3 deletions(-) commit 7107bb0b2836f0f9b1ffed1f5189e269ee25e5b9 Author: Gaël PORTAY Date: Thu Apr 16 14:25:44 2015 +0200 ARM: at91/dt: drop deprecated mainck node from pmc The clock-frequency property became obsolete since the rework of the main clock driver in 3.16 (see commit 27cb1c2083373a44130d50d4d2fb64cf7eff2d90). It now get and uses the clock-frequency from the main_xtal node. Signed-off-by: Gaël PORTAY Acked-by: Boris Brezillon Signed-off-by: Nicolas Ferre arch/arm/boot/dts/at91-sama5d3_xplained.dts | 6 ------ arch/arm/boot/dts/at91sam9rlek.dts | 6 ------ arch/arm/boot/dts/sama5d3xcm.dtsi | 6 ------ 3 files changed, 18 deletions(-) commit 13afc4a83ae970f482d1014f57571e20a7f79336 Author: Gaël PORTAY Date: Mon May 4 17:59:57 2015 +0200 ARM: at91/dt: add support for kizbox2 Add DT file for Kizbox 2 board. This board is based on Atmel's SAMA5D31 Cortex-A5 SoC. Signed-off-by: Gaël PORTAY Acked-by: Boris Brezillon Acked-by: Alexandre Belloni Signed-off-by: Nicolas Ferre arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/at91-kizbox2.dts | 216 +++++++++++++++++++++++++++++++++++++ 2 files changed, 217 insertions(+) commit a9c0d1d2772aa56a5230104fc2eabcd3c2f0aab4 Author: Gaël PORTAY Date: Mon May 4 17:59:07 2015 +0200 ARM: at91/dt: add support for kizboxmini Add DT file for Kizbox mini board. This board is based on Atmel's AT91SAM9G25 SoC. Signed-off-by: Gaël PORTAY Acked-by: Boris Brezillon Acked-by: Alexandre Belloni Signed-off-by: Nicolas Ferre arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/at91-kizboxmini.dts | 129 ++++++++++++++++++++++++++++++++++ 2 files changed, 130 insertions(+) commit b76b7c2c408ce2261186de755dd6ea4fa56f48d2 Author: Gaël PORTAY Date: Mon May 4 17:59:06 2015 +0200 ARM: at91/dt: sam9x5: add pinctrl for pwm0 Defines the pinctrl configurations for PWM0. Signed-off-by: Gaël PORTAY Acked-by: Boris Brezillon Acked-by: Alexandre Belloni Signed-off-by: Nicolas Ferre arch/arm/boot/dts/at91sam9x5.dtsi | 46 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) commit e4b6be33c28923d8cde53023e0888b1c5d1a9027 Author: Luis R. Rodriguez Date: Mon May 11 10:15:53 2015 +0200 x86/mm: Add ioremap_uc() helper to map memory uncacheable (not UC-) ioremap_nocache() currently uses UC- by default. Our goal is to eventually make UC the default. Linux maps UC- to PCD=1, PWT=0 page attributes on non-PAT systems. Linux maps UC to PCD=1, PWT=1 page attributes on non-PAT systems. On non-PAT and PAT systems a WC MTRR has different effects on pages with either of these attributes. In order to help with a smooth transition its best to enable use of UC (PCD,1, PWT=1) on a region as that ensures a WC MTRR will have no effect on a region, this however requires us to have an way to declare a region as UC and we currently do not have a way to do this. WC MTRR on non-PAT system with PCD=1, PWT=0 (UC-) yields WC. WC MTRR on non-PAT system with PCD=1, PWT=1 (UC) yields UC. WC MTRR on PAT system with PCD=1, PWT=0 (UC-) yields WC. WC MTRR on PAT system with PCD=1, PWT=1 (UC) yields UC. A flip of the default ioremap_nocache() behaviour from UC- to UC can therefore regress a memory region from effective memory type WC to UC if MTRRs are used. Use of MTRRs should be phased out and in the best case only arch_phys_wc_add() use will remain, even if this happens arch_phys_wc_add() will have an effect on non-PAT systems and changes to default ioremap_nocache() behaviour could regress drivers. Now, ideally we'd use ioremap_nocache() on the regions in which we'd need uncachable memory types and avoid any MTRRs on those regions. There are however some restrictions on MTRRs use, such as the requirement of having the base and size of variable sized MTRRs to be powers of two, which could mean having to use a WC MTRR over a large area which includes a region in which write-combining effects are undesirable. Add ioremap_uc() to help with the both phasing out of MTRR use and also provide a way to blacklist small WC undesirable regions in devices with mixed regions which are size-implicated to use large WC MTRRs. Use of ioremap_uc() helps phase out MTRR use by avoiding regressions with an eventual flip of default behaviour or ioremap_nocache() from UC- to UC. Drivers working with WC MTRRs can use the below table to review and consider the use of ioremap*() and similar helpers to ensure appropriate behaviour long term even if default ioremap_nocache() behaviour changes from UC- to UC. Although ioremap_uc() is being added we leave set_memory_uc() to use UC- as only initial memory type setup is required to be able to accommodate existing device drivers and phase out MTRR use. It should also be clarified that set_memory_uc() cannot be used with IO memory, even though its use will not return any errors, it really has no effect. ---------------------------------------------------------------------- MTRR Non-PAT PAT Linux ioremap value Effective memory type ---------------------------------------------------------------------- Non-PAT | PAT PAT |PCD ||PWT ||| WC 000 WB _PAGE_CACHE_MODE_WB WC | WC WC 001 WC _PAGE_CACHE_MODE_WC WC* | WC WC 010 UC- _PAGE_CACHE_MODE_UC_MINUS WC* | WC WC 011 UC _PAGE_CACHE_MODE_UC UC | UC ---------------------------------------------------------------------- Signed-off-by: Luis R. Rodriguez Signed-off-by: Borislav Petkov Acked-by: H. Peter Anvin Cc: Andy Lutomirski Cc: Antonino Daplas Cc: Bjorn Helgaas Cc: Borislav Petkov Cc: Brian Gerst Cc: Daniel Vetter Cc: Dave Airlie Cc: Davidlohr Bueso Cc: Denys Vlasenko Cc: Jean-Christophe Plagniol-Villard Cc: Juergen Gross Cc: Linus Torvalds Cc: Mel Gorman Cc: Mike Travis Cc: Peter Zijlstra Cc: Suresh Siddha Cc: Thierry Reding Cc: Thomas Gleixner Cc: Tomi Valkeinen Cc: Toshi Kani Cc: Ville Syrjälä Cc: Vlastimil Babka Cc: Will Deacon Cc: linux-fbdev@vger.kernel.org Link: http://lkml.kernel.org/r/1430343851-967-2-git-send-email-mcgrof@do-not-panic.com Link: http://lkml.kernel.org/r/1431332153-18566-9-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/include/asm/io.h | 1 + arch/x86/mm/ioremap.c | 36 +++++++++++++++++++++++++++++++++++- arch/x86/mm/pageattr.c | 3 +++ include/asm-generic/io.h | 8 ++++++++ 4 files changed, 47 insertions(+), 1 deletion(-) commit cd2f6a5a4704a359635eb34919317052e6a96ba7 Author: Toshi Kani Date: Mon May 11 10:15:52 2015 +0200 x86/mm/mtrr: Remove incorrect address check in __mtrr_type_lookup() __mtrr_type_lookup() checks MTRR fixed ranges when mtrr_state.have_fixed is set and start is less than 0x100000. However, the 'else if (start < 0x1000000)' in the code checks with an incorrect address as it has an extra-zero in the address. The code still runs correctly as this check is meaningless, though. This patch replaces the incorrect address check with 'else' with no condition. Signed-off-by: Toshi Kani Signed-off-by: Borislav Petkov Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: Elliott@hp.com Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Luis R. Rodriguez Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: dave.hansen@intel.com Cc: linux-mm Cc: pebolle@tiscali.nl Link: http://lkml.kernel.org/r/1427234921-19737-4-git-send-email-toshi.kani@hp.com Link: http://lkml.kernel.org/r/1431332153-18566-8-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/mtrr/generic.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ca7d9b795e6bc78c80a1771ada867994fabcfc01 Author: Ross Zwisler Date: Mon May 11 10:15:51 2015 +0200 x86/mm: Add kerneldoc comments for pcommit_sfence() Add kerneldoc comments for pcommit_sfence() describing the purpose of the PCOMMIT instruction and demonstrating its usage with an example. Signed-off-by: Ross Zwisler Signed-off-by: Borislav Petkov Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H Peter Anvin Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Luis R. Rodriguez Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Toshi Kani Link: http://lkml.kernel.org/r/1430261196-2401-1-git-send-email-ross.zwisler@linux.intel.com Link: http://lkml.kernel.org/r/1431332153-18566-7-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/include/asm/special_insns.h | 38 ++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) commit 6c434d6176c0cb42847c33245189667d645db7bf Author: Ross Zwisler Date: Mon May 11 10:15:49 2015 +0200 x86/mm: Do not flush last cacheline twice in clflush_cache_range() The current algorithm used in clflush_cache_range() can cause the last cache line of the buffer to be flushed twice. Fix that algorithm so that each cache line will only be flushed once. Reported-by: H. Peter Anvin Signed-off-by: Ross Zwisler Signed-off-by: Borislav Petkov Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: Linus Torvalds Cc: Luis R. Rodriguez Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Toshi Kani Link: http://lkml.kernel.org/r/1430259192-18802-1-git-send-email-ross.zwisler@linux.intel.com Link: http://lkml.kernel.org/r/1431332153-18566-5-git-send-email-bp@alien8.de [ Changed it to 'void *' to simplify the type conversions. ] Signed-off-by: Ingo Molnar arch/x86/mm/pageattr.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) commit d4bd441532b81fe2be1706e7f9dbbe8b5a364bcf Author: Miroslav Benes Date: Mon May 11 10:15:48 2015 +0200 x86/kaslr: Fix typo in the KASLR_FLAG documentation Documentation/x86/boot.txt labels the bit in boot_params.hdr.loadflags as ALSR_FLAG while it should be KASLR_FLAG. Signed-off-by: Miroslav Benes Signed-off-by: Borislav Petkov Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Jiri Kosina Cc: Jonathan Corbet Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1429011324-7170-1-git-send-email-mbenes@suse.cz Link: http://lkml.kernel.org/r/1431332153-18566-4-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar Documentation/x86/boot.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6b44e72a1c45d1a4e903af75611235a2d6ea25e3 Author: Borislav Petkov Date: Mon May 11 10:15:47 2015 +0200 x86/cpu/microcode: Zap changelog It is useless at best and git history has it all detailed anyway. Update copyright while at it. Signed-off-by: Borislav Petkov Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1431332153-18566-3-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/microcode/core.c | 76 +++++------------------------------ arch/x86/kernel/cpu/microcode/intel.c | 75 ++++------------------------------ 2 files changed, 16 insertions(+), 135 deletions(-) commit f21262b8e092a770e39fbd405cc18a0247c3af68 Author: Borislav Petkov Date: Mon May 11 10:15:46 2015 +0200 x86/alternatives: Switch AMD F15h and later to the P6 NOPs Software optimization guides for both F15h and F16h cite those NOPs as the optimal ones. A microbenchmark confirms that actually even older families are better with the single-insn NOPs so switch to them for the alternatives. Cycles count below includes the loop overhead of the measurement but that overhead is the same with all runs. F10h, revE: ----------- Running NOP tests, 1000 NOPs x 1000000 repetitions K8: 90 288.212282 cycles 66 90 288.220840 cycles 66 66 90 288.219447 cycles 66 66 66 90 288.223204 cycles 66 66 90 66 90 571.393424 cycles 66 66 90 66 66 90 571.374919 cycles 66 66 66 90 66 66 90 572.249281 cycles 66 66 66 90 66 66 66 90 571.388651 cycles P6: 90 288.214193 cycles 66 90 288.225550 cycles 0f 1f 00 288.224441 cycles 0f 1f 40 00 288.225030 cycles 0f 1f 44 00 00 288.233558 cycles 66 0f 1f 44 00 00 324.792342 cycles 0f 1f 80 00 00 00 00 325.657462 cycles 0f 1f 84 00 00 00 00 00 430.246643 cycles F14h: ---- Running NOP tests, 1000 NOPs x 1000000 repetitions K8: 90 510.404890 cycles 66 90 510.432117 cycles 66 66 90 510.561858 cycles 66 66 66 90 510.541865 cycles 66 66 90 66 90 1014.192782 cycles 66 66 90 66 66 90 1014.226546 cycles 66 66 66 90 66 66 90 1014.334299 cycles 66 66 66 90 66 66 66 90 1014.381205 cycles P6: 90 510.436710 cycles 66 90 510.448229 cycles 0f 1f 00 510.545100 cycles 0f 1f 40 00 510.502792 cycles 0f 1f 44 00 00 510.589517 cycles 66 0f 1f 44 00 00 510.611462 cycles 0f 1f 80 00 00 00 00 511.166794 cycles 0f 1f 84 00 00 00 00 00 511.651641 cycles F15h: ----- Running NOP tests, 1000 NOPs x 1000000 repetitions K8: 90 243.128396 cycles 66 90 243.129883 cycles 66 66 90 243.131631 cycles 66 66 66 90 242.499324 cycles 66 66 90 66 90 481.829083 cycles 66 66 90 66 66 90 481.884413 cycles 66 66 66 90 66 66 90 481.851446 cycles 66 66 66 90 66 66 66 90 481.409220 cycles P6: 90 243.127026 cycles 66 90 243.130711 cycles 0f 1f 00 243.122747 cycles 0f 1f 40 00 242.497617 cycles 0f 1f 44 00 00 245.354461 cycles 66 0f 1f 44 00 00 361.930417 cycles 0f 1f 80 00 00 00 00 362.844944 cycles 0f 1f 84 00 00 00 00 00 480.514948 cycles F16h: ----- Running NOP tests, 1000 NOPs x 1000000 repetitions K8: 90 507.793298 cycles 66 90 507.789636 cycles 66 66 90 507.826490 cycles 66 66 66 90 507.859075 cycles 66 66 90 66 90 1008.663129 cycles 66 66 90 66 66 90 1008.696259 cycles 66 66 66 90 66 66 90 1008.692517 cycles 66 66 66 90 66 66 66 90 1008.755399 cycles P6: 90 507.795232 cycles 66 90 507.794761 cycles 0f 1f 00 507.834901 cycles 0f 1f 40 00 507.822629 cycles 0f 1f 44 00 00 507.838493 cycles 66 0f 1f 44 00 00 507.908597 cycles 0f 1f 80 00 00 00 00 507.946417 cycles 0f 1f 84 00 00 00 00 00 507.954960 cycles Signed-off-by: Borislav Petkov Cc: Andy Lutomirski Cc: Aravind Gopalakrishnan Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1431332153-18566-2-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/kernel/alternative.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 4ddf2a178570c9db2935206f3b0bdfea08f3c905 Merge: 030bbdb 3490c0e Author: Ingo Molnar Date: Mon May 11 10:05:19 2015 +0200 Merge tag 'ras_for_4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras into x86/ras Pull RAS updates from Borislav Petkov: - RAS: Add support for deferred errors on AMD (Aravind Gopalakrishnan) This is an important RAS feature which adds hardware support for poisoned data. That means roughly that the hardware marks data which it has detected as corrupted but wasn't able to correct, as poisoned data and raises an APIC interrupt to signal that in the form of a deferred error. It is the OS's responsibility then to take proper recovery action and thus prolonge system lifetime as far as possible. - Misc cleanups ontop. (Borislav Petkov)" Signed-off-by: Ingo Molnar commit 62c7a1e9ae54ef66658df9614bdbc09cbbdaa6f0 Author: Ingo Molnar Date: Mon May 11 09:47:23 2015 +0200 locking/pvqspinlock: Rename QUEUED_SPINLOCK to QUEUED_SPINLOCKS Valentin Rothberg reported that we use CONFIG_QUEUED_SPINLOCKS in arch/x86/kernel/paravirt_patch_32.c, while the symbol is called CONFIG_QUEUED_SPINLOCK. (Note the extra 'S') But the typo was natural: the proper English term for such a generic object would be 'queued spinlocks' - so rename this and related symbols accordingly to the plural form. Reported-by: Valentin Rothberg Cc: Douglas Hatch Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Scott J Norton Cc: Thomas Gleixner Cc: Waiman Long Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar arch/x86/Kconfig | 4 ++-- arch/x86/include/asm/paravirt.h | 6 +++--- arch/x86/include/asm/paravirt_types.h | 6 +++--- arch/x86/include/asm/spinlock.h | 4 ++-- arch/x86/include/asm/spinlock_types.h | 4 ++-- arch/x86/kernel/kvm.c | 10 +++++----- arch/x86/kernel/paravirt-spinlocks.c | 8 ++++---- arch/x86/kernel/paravirt_patch_64.c | 4 ++-- arch/x86/xen/spinlock.c | 10 +++++----- kernel/Kconfig.locks | 6 +++--- kernel/locking/Makefile | 2 +- 11 files changed, 32 insertions(+), 32 deletions(-) commit 52c9d2badd1ae4d11c29de57d4e964e48afd3cb4 Author: Waiman Long Date: Sun May 10 21:17:10 2015 -0400 locking/pvqspinlock: Replace xchg() by the more descriptive set_mb() The xchg() function was used in pv_wait_node() to set a certain value and provide a memory barrier which is what the set_mb() function is for. This patch replaces the xchg() call by set_mb(). Suggested-by: Linus Torvalds Signed-off-by: Waiman Long Cc: Douglas Hatch Cc: Peter Zijlstra Cc: Scott J Norton Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar kernel/locking/qspinlock_paravirt.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6499e8cfaa8f5d041b20af24d8409dec9f3ac3d0 Author: Ard Biesheuvel Date: Fri May 8 10:46:22 2015 +0200 crypto: arm/aes - streamline AES-192 code path This trims off a couple of instructions of the total size of the core AES transform by reordering the final branch in the AES-192 code path with the rounds that are performed regardless of whether the branch is taken or not. Other than the slight size reduction, this has no performance benefit. Fix up a comment regarding the prototype of this function while we're at it. Signed-off-by: Ard Biesheuvel Signed-off-by: Herbert Xu arch/arm/crypto/aes-ce-core.S | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit c80ae7ca372606a3971dcdfa3420275cf17ef6b6 Author: Ard Biesheuvel Date: Fri May 8 10:46:21 2015 +0200 crypto: arm/sha512 - accelerated SHA-512 using ARM generic ASM and NEON This replaces the SHA-512 NEON module with the faster and more versatile implementation from the OpenSSL project. It consists of both a NEON and a generic ASM version of the core SHA-512 transform, where the NEON version reverts to the ASM version when invoked in non-process context. This patch is based on the OpenSSL upstream version b1a5d1c65208 of sha512-armv4.pl, which can be found here: https://git.openssl.org/gitweb/?p=openssl.git;h=b1a5d1c65208 Performance relative to the generic implementation (measured using tcrypt.ko mode=306 sec=1 running on a Cortex-A57 under KVM): input size block size asm neon old neon 16 16 1.39 2.54 2.21 64 16 1.32 2.33 2.09 64 64 1.38 2.53 2.19 256 16 1.31 2.28 2.06 256 64 1.38 2.54 2.25 256 256 1.40 2.77 2.39 1024 16 1.29 2.22 2.01 1024 256 1.40 2.82 2.45 1024 1024 1.41 2.93 2.53 2048 16 1.33 2.21 2.00 2048 256 1.40 2.84 2.46 2048 1024 1.41 2.96 2.55 2048 2048 1.41 2.98 2.56 4096 16 1.34 2.20 1.99 4096 256 1.40 2.84 2.46 4096 1024 1.41 2.97 2.56 4096 4096 1.41 3.01 2.58 8192 16 1.34 2.19 1.99 8192 256 1.40 2.85 2.47 8192 1024 1.41 2.98 2.56 8192 4096 1.41 2.71 2.59 8192 8192 1.51 3.51 2.69 Acked-by: Jussi Kivilinna Signed-off-by: Ard Biesheuvel Signed-off-by: Herbert Xu arch/arm/crypto/Kconfig | 15 +- arch/arm/crypto/Makefile | 10 +- arch/arm/crypto/sha512-armv4.pl | 649 ++++++++++++ arch/arm/crypto/sha512-armv7-neon.S | 455 -------- arch/arm/crypto/sha512-core.S_shipped | 1861 +++++++++++++++++++++++++++++++++ arch/arm/crypto/sha512-glue.c | 121 +++ arch/arm/crypto/sha512-neon-glue.c | 98 ++ arch/arm/crypto/sha512.h | 8 + arch/arm/crypto/sha512_neon_glue.c | 305 ------ 9 files changed, 2748 insertions(+), 774 deletions(-) commit 551d7ed2fdee1fb7bba2dbd55b61e821a10a7c51 Author: Allan, Bruce W Date: Thu May 7 17:00:42 2015 -0700 crypto: qat - add driver version Signed-off-by: Bruce Allan Signed-off-by: Herbert Xu drivers/crypto/qat/qat_common/adf_common_drv.h | 7 +++++++ drivers/crypto/qat/qat_common/adf_ctl_drv.c | 1 + drivers/crypto/qat/qat_dh895xcc/adf_drv.c | 1 + 3 files changed, 9 insertions(+) commit ed70b479c2c0b6e1319f0cb2de19f1051be219a4 Author: Dan Streetman Date: Thu May 7 13:49:21 2015 -0400 crypto: nx - add hardware 842 crypto comp alg Add crypto compression alg for 842 hardware compression and decompression, using the alg name "842" and driver_name "842-nx". This uses only the PowerPC coprocessor hardware for 842 compression. It also uses the hardware for decompression, but if the hardware fails it will fall back to the 842 software decompression library, so that decompression never fails (for valid 842 compressed buffers). A header must be used in most cases, due to the hardware's restrictions on the buffers being specifically aligned and sized. Due to the header this driver adds, compressed buffers it creates cannot be directly passed to the 842 software library for decompression. However, compressed buffers created by the software 842 library can be passed to this driver for hardware 842 decompression (with the exception of buffers containing the "short data" template, as lib/842/842.h explains). Signed-off-by: Dan Streetman Signed-off-by: Herbert Xu drivers/crypto/nx/Kconfig | 10 + drivers/crypto/nx/Makefile | 2 + drivers/crypto/nx/nx-842-crypto.c | 585 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 597 insertions(+) commit b8e04187c90107c58d1ccbeb68a0ba4c5bfd4167 Author: Dan Streetman Date: Thu May 7 13:49:20 2015 -0400 crypto: nx - simplify pSeries nx842 driver Simplify the pSeries NX-842 driver: do not expect incoming buffers to be exactly page-sized; do not break up input buffers to compress smaller blocks; do not use any internal headers in the compressed data blocks; remove the software decompression implementation; implement the pSeries nx842_constraints. This changes the pSeries NX-842 driver to perform constraints-based compression so that it only needs to compress one entire input block at a time. This removes the need for it to split input data blocks into multiple compressed data sections in the output buffer, and removes the need for any extra header info in the compressed data; all that is moved (in a later patch) into the main crypto 842 driver. Additionally, the 842 software decompression implementation is no longer needed here, as the crypto 842 driver will use the generic software 842 decompression function as a fallback if any hardware 842 driver fails. Signed-off-by: Dan Streetman Signed-off-by: Herbert Xu drivers/crypto/nx/nx-842-pseries.c | 779 ++++++++----------------------------- 1 file changed, 153 insertions(+), 626 deletions(-) commit 99182a42b7ef3d5e4180992ce01befd9e87526d2 Author: Dan Streetman Date: Thu May 7 13:49:19 2015 -0400 crypto: nx - add PowerNV platform NX-842 driver Add driver for NX-842 hardware on the PowerNV platform. This allows the use of the 842 compression hardware coprocessor on the PowerNV platform. Signed-off-by: Dan Streetman Signed-off-by: Herbert Xu drivers/crypto/nx/Kconfig | 10 + drivers/crypto/nx/Makefile | 2 + drivers/crypto/nx/nx-842-powernv.c | 625 +++++++++++++++++++++++++++++++++++++ drivers/crypto/nx/nx-842-pseries.c | 9 - drivers/crypto/nx/nx-842.c | 4 +- drivers/crypto/nx/nx-842.h | 97 ++++++ include/linux/nx842.h | 6 +- 7 files changed, 741 insertions(+), 12 deletions(-) commit 959e6659b6f74ec1fa4d391a3b88d63dc0189f36 Author: Dan Streetman Date: Thu May 7 13:49:18 2015 -0400 crypto: nx - add nx842 constraints Add "constraints" for the NX-842 driver. The constraints are used to indicate what the current NX-842 platform driver is capable of. The constraints tell the NX-842 user what alignment, min and max length, and length multiple each provided buffers should conform to. These are required because the 842 hardware requires buffers to meet specific constraints that vary based on platform - for example, the pSeries max length is much lower than the PowerNV max length. Signed-off-by: Dan Streetman Signed-off-by: Herbert Xu drivers/crypto/nx/nx-842-pseries.c | 10 ++++++++++ drivers/crypto/nx/nx-842.c | 38 ++++++++++++++++++++++++++++++++++++++ drivers/crypto/nx/nx-842.h | 2 ++ include/linux/nx842.h | 9 +++++++++ 4 files changed, 59 insertions(+) commit 7011a122383e36dab594406720fa1d089e0be8f9 Author: Dan Streetman Date: Thu May 7 13:49:17 2015 -0400 crypto: nx - add NX-842 platform frontend driver Add NX-842 frontend that allows using either the pSeries platform or PowerNV platform driver (to be added by later patch) for the NX-842 hardware. Update the MAINTAINERS file to include the new filenames. Update Kconfig files to clarify titles and descriptions, and correct dependencies. Signed-off-by: Dan Streetman Signed-off-by: Herbert Xu MAINTAINERS | 2 +- drivers/crypto/Kconfig | 10 +-- drivers/crypto/nx/Kconfig | 35 ++++++--- drivers/crypto/nx/Makefile | 4 +- drivers/crypto/nx/nx-842-pseries.c | 57 +++++++-------- drivers/crypto/nx/nx-842.c | 144 +++++++++++++++++++++++++++++++++++++ drivers/crypto/nx/nx-842.h | 32 +++++++++ include/linux/nx842.h | 10 +-- 8 files changed, 245 insertions(+), 49 deletions(-) commit fdd05e4b9ae22603ed09beb4e179ae7746555a81 Author: Dan Streetman Date: Thu May 7 13:49:16 2015 -0400 crypto: nx - rename nx-842.c to nx-842-pseries.c Move the entire NX-842 driver for the pSeries platform from the file nx-842.c to nx-842-pseries.c. This is required by later patches that add NX-842 support for the PowerNV platform. This patch does not alter the content of the pSeries NX-842 driver at all, it only changes the filename. Signed-off-by: Dan Streetman Signed-off-by: Herbert Xu drivers/crypto/nx/Makefile | 2 +- drivers/crypto/nx/nx-842-pseries.c | 1603 ++++++++++++++++++++++++++++++++++++ drivers/crypto/nx/nx-842.c | 1603 ------------------------------------ 3 files changed, 1604 insertions(+), 1604 deletions(-) commit 2062c5b6da758ca2bb64b698d7f9c5c45a06fcf9 Author: Dan Streetman Date: Thu May 7 13:49:15 2015 -0400 crypto: 842 - change 842 alg to use software Change the crypto 842 compression alg to use the software 842 compression and decompression library. Add the crypto driver_name as "842-generic". Remove the fallback to LZO compression. Previously, this crypto compression alg attemped 842 compression using PowerPC hardware, and fell back to LZO compression and decompression if the 842 PowerPC hardware was unavailable or failed. This should not fall back to any other compression method, however; users of this crypto compression alg can fallback if desired, and transparent fallback tricks callers into thinking they are getting 842 compression when they actually get LZO compression - the failure of the 842 hardware should not be transparent to the caller. The crypto compression alg for a hardware device also should not be located in crypto/ so this is now a software-only implementation that uses the 842 software compression/decompression library. Signed-off-by: Dan Streetman Signed-off-by: Herbert Xu MAINTAINERS | 1 + crypto/842.c | 174 ++++++++++++--------------------------------------------- crypto/Kconfig | 7 +-- 3 files changed, 41 insertions(+), 141 deletions(-) commit 2da572c959dd5815aef153cf62010b16a498a0d3 Author: Dan Streetman Date: Thu May 7 13:49:14 2015 -0400 lib: add software 842 compression/decompression Add 842-format software compression and decompression functions. Update the MAINTAINERS 842 section to include the new files. The 842 compression function can compress any input data into the 842 compression format. The 842 decompression function can decompress any standard-format 842 compressed data - specifically, either a compressed data buffer created by the 842 software compression function, or a compressed data buffer created by the 842 hardware compressor (located in PowerPC coprocessors). The 842 compressed data format is explained in the header comments. This is used in a later patch to provide a full software 842 compression and decompression crypto interface. Signed-off-by: Dan Streetman Signed-off-by: Herbert Xu MAINTAINERS | 2 + include/linux/sw842.h | 12 + lib/842/842.h | 127 ++++++++++ lib/842/842_compress.c | 626 +++++++++++++++++++++++++++++++++++++++++++++++ lib/842/842_debugfs.h | 52 ++++ lib/842/842_decompress.c | 405 ++++++++++++++++++++++++++++++ lib/842/Makefile | 2 + lib/Kconfig | 6 + lib/Makefile | 2 + 9 files changed, 1234 insertions(+) commit edc424f8cd84bbae530d8a9f86caf1923606fb24 Author: Dan Streetman Date: Thu May 7 13:49:13 2015 -0400 powerpc: Add ICSWX instruction Add the asm ICSWX and ICSWEPX opcodes. Add definitions for the Coprocessor Request structures needed to use the icswx calls to coprocessors. Add icswx() function to perform the ICSWX asm using the provided Coprocessor Command Word value and Coprocessor Request Block structure. This is required for communication with the NX-842 coprocessor on a PowerNV system. Signed-off-by: Dan Streetman Signed-off-by: Herbert Xu arch/powerpc/include/asm/icswx.h | 184 ++++++++++++++++++++++++++++++++++ arch/powerpc/include/asm/ppc-opcode.h | 13 +++ 2 files changed, 197 insertions(+) commit b130e7c04f1130f241eddf72098a6e08d41d08fe Author: Dan Streetman Date: Thu May 7 13:49:12 2015 -0400 powerpc: export of_get_ibm_chip_id function Export the of_get_ibm_chip_id() function. This will be used by the PowerNV NX-842 driver. Signed-off-by: Dan Streetman Signed-off-by: Herbert Xu arch/powerpc/kernel/prom.c | 1 + 1 file changed, 1 insertion(+) commit ebb3472f5cc9d4cffe3968dfd816978ab2dd06d6 Author: Ard Biesheuvel Date: Mon May 4 11:00:17 2015 +0200 crypto: testmgr - add test cases for CRC32 This adds a couple of test cases for CRC32 (not CRC32c) to ensure that the generic and arch specific implementations are in sync. Signed-off-by: Ard Biesheuvel Acked-by: Steve Capper Signed-off-by: Herbert Xu crypto/testmgr.c | 9 ++ crypto/testmgr.h | 434 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 443 insertions(+) commit 2222ce0fbbcc4ebfa9995c8d23d72c8239ad712c Author: Nathan Fontenot Date: Wed Apr 29 20:44:58 2015 -0500 powerpc/pseries: Fix possible leaked device node reference Failure return from dlpar_configure_connector when dlpar adding cpus results in leaking references to the cpus parent device node. Move the call to of_node_put() prior to checking the result of dlpar_configure_connector. Fixes: 8d5ff320766f ("powerpc/pseries: Make dlpar_configure_connector parent node aware") Signed-off-by: Nathan Fontenot Signed-off-by: Michael Ellerman arch/powerpc/platforms/pseries/dlpar.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 202648a6070b69d60c6d0926ff06c8863e231468 Author: Krzysztof Kozlowski Date: Mon Apr 27 21:48:47 2015 +0900 powerpc: Constify irq_domain_ops The irq_domain_ops are not modified by the driver and the irqdomain core code accepts pointer to a const data. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Michael Ellerman arch/powerpc/sysdev/i8259.c | 2 +- arch/powerpc/sysdev/ipic.c | 2 +- arch/powerpc/sysdev/mpc8xx_pic.c | 2 +- arch/powerpc/sysdev/mpic.c | 2 +- arch/powerpc/sysdev/mv64x60_pic.c | 2 +- arch/powerpc/sysdev/qe_lib/qe_ic.c | 2 +- arch/powerpc/sysdev/tsi108_pci.c | 2 +- arch/powerpc/sysdev/uic.c | 2 +- arch/powerpc/sysdev/xics/xics-common.c | 2 +- arch/powerpc/sysdev/xilinx_intc.c | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) commit 48f1a9a4e268dec7c7f3e79339cfb85699c48eb0 Author: Linus Walleij Date: Wed Feb 25 13:11:55 2015 +0100 arm64: add LEDs and some trigger support to defconfig Since many boards for ARM, experimental or server alike, will feature LEDs, let's include LED class and trigger support for heartbeat and CPU in the defconfig. Many systems (such as the ARM Juno) will use a system controller "syscon" to access the LED registers, so include support for this as well. Cc: Arnd Bergmann Cc: Liviu Dudau Cc: Mark Rutland Cc: Robin Murphy Signed-off-by: Linus Walleij arch/arm64/configs/defconfig | 6 ++++++ 1 file changed, 6 insertions(+) commit bfb476290f2f0b9e6df4e9717738875754c7d242 Author: Linus Walleij Date: Wed Feb 25 13:06:50 2015 +0100 arm64: juno: Add APB registers and LEDs using syscon This defines the Juno "APB system registers" as a syscon device, and all the LEDs controlled by the APB system registers right below it using the syscon LEDs driver on top of syscon. Define LED0 for heartbeat, LED1 for MMC0 activity and the following four LEDs indicating CPU activity using the Linux-specific DT bindings for triggers. This is the pattern and same drivers as used on the legacy platform device trees for the ARM Integrators and the RealView PB1176. Cc: Arnd Bergmann Cc: Mark Rutland Cc: Robin Murphy Cc: Pawel Moll Tested-by: Liviu Dudau Signed-off-by: Linus Walleij arch/arm64/boot/dts/arm/juno-motherboard.dtsi | 68 +++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) commit a917d4b44afc968d35e9b2717fea52946f512df1 Author: Linus Walleij Date: Tue Mar 3 10:08:19 2015 +0100 leds: syscon: instantiate from platform device Currently syscon LEDs will traverse the device tree looking for syscon devices and if found, traverse any subnodes of these to identify matching children and from there instantiate LED class devices. This is not a good use of the Linux device model. Instead we have converted the device trees to add the "simple-mfd" property to the MFD nexi spawning syscon LEDs so that these will appear as platform devices in the system and we can use the proper device probing mechanism. Cc: Arnd Bergmann Cc: Lee Jones Cc: Pawel Moll Cc: Mark Rutland Reviewed-by: Bjorn Andersson Signed-off-by: Linus Walleij drivers/leds/leds-syscon.c | 170 ++++++++++++++++++++++----------------------- 1 file changed, 85 insertions(+), 85 deletions(-) commit 480aa74c386121644336d9b59d0b61cde1c3c29c Author: Linus Walleij Date: Tue Mar 3 10:06:16 2015 +0100 ARM: dts: update syscons to use simple-mfd The Integrators and the RealView use simple MFD devices with register bit LEDs as subnodes, update these to use the "simple-mfd" compatible property so that subdevices get spawned from the MFD nexi. Cc: Arnd Bergmann Cc: Lee Jones Cc: Pawel Moll Cc: Mark Rutland Signed-off-by: Linus Walleij arch/arm/boot/dts/arm-realview-pb1176.dts | 2 +- arch/arm/boot/dts/integrator.dtsi | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit 22869a9eca4ea5b534538d160b68c7aef44e378a Author: Linus Walleij Date: Tue Mar 3 09:52:20 2015 +0100 MFD/OF: document MFD devices and handle simple-mfd This defines a new compatible option for MFD devices "simple-mfd" that will make the OF core spawn child devices for all subnodes of that MFD device. It is optional but handy for things like syscon and possibly other simpler MFD devices. Since there was no file to put the documentation in, I took this opportunity to make a small writeup on MFD devices and add the compatible definition there. Suggested-by: Lee Jones Acked-by: Lee Jones Acked-by: Antoine Tenart Acked-by: Alexandre Belloni Cc: Arnd Bergmann Cc: Devicetree Cc: Rob Herring Cc: Benjamin Herrenschmidt Cc: Grant Likely Cc: Pawel Moll Cc: Mark Rutland Cc: Ian Campbell Cc: Kumar Gala Signed-off-by: Linus Walleij Documentation/devicetree/bindings/mfd/mfd.txt | 41 +++++++++++++++++++++++++++ drivers/of/platform.c | 1 + 2 files changed, 42 insertions(+) commit cab7562a92edb89668fe548f5d8c8300e7438c62 Author: Geert Uytterhoeven Date: Mon May 4 19:36:09 2015 +0200 ARM: shmobile: kzm9g dts: Configure the HOME key as wake-up source Note that from now on any of the pfc8575 gpio keys will wake up the system, as the pfc8575 cannot mask individual interrupts. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/sh73a0-kzm9g.dts | 1 + 1 file changed, 1 insertion(+) commit 95cfb59a27360bbfd337d011676893f2726bfb42 Author: Geert Uytterhoeven Date: Tue Apr 28 12:29:23 2015 +0200 ARM: shmobile: koelsch dts: Use generic names for device nodes sound-codec -> codec Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7791-koelsch.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d22b16876b62b4ffe2b4e31fb7a6e1af1a45fa25 Author: Geert Uytterhoeven Date: Tue Apr 28 12:29:22 2015 +0200 ARM: shmobile: lager dts: Use generic names for device nodes sound-codec -> codec Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7790-lager.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 61ffb5ca6c8e5246c7b257a733c33b94b19de3da Author: Geert Uytterhoeven Date: Tue Apr 28 12:29:21 2015 +0200 ARM: shmobile: bockw dts: Use generic names for device nodes sound-codec -> codec Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7778-bockw.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b20cac26acb53a652b28efc5b94757fe2ef6178e Author: Geert Uytterhoeven Date: Tue Apr 28 12:12:54 2015 +0200 ARM: shmobile: koelsch dts: Add "nor-jedec" compatible value Spansion s25fl512s is compatible with "nor-jedec". Hence add the "nor-jedec" compatible value, so the driver can bind against the generic name, cfr. commit 8ff16cf77ce314c2 ("Documentation: devicetree: m25p80: add "nor-jedec" binding"). Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7791-koelsch.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e31cc1e28791e73ae7f9fb382e25b60257790dc6 Author: Geert Uytterhoeven Date: Tue Apr 28 12:12:58 2015 +0200 ARM: shmobile: bockw dts: Add "nor-jedec" compatible value Spansion s25fl008k is compatible with "nor-jedec". Hence add the "nor-jedec" compatible value, so the driver can bind against the generic name, cfr. commit 8ff16cf77ce314c2 ("Documentation: devicetree: m25p80: add "nor-jedec" binding"). Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7778-bockw.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7821637c4da224bdcca54421d07a0bb43e6955a9 Author: Geert Uytterhoeven Date: Tue Apr 28 12:12:55 2015 +0200 ARM: shmobile: lager dts: Add "nor-jedec" compatible value Spansion s25fl512s is compatible with "nor-jedec". Hence add the "nor-jedec" compatible value, so the driver can bind against the generic name, cfr. commit 8ff16cf77ce314c2 ("Documentation: devicetree: m25p80: add "nor-jedec" binding"). Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7790-lager.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 97c5afdffaca5d549e5680a2e1264d74821c287c Author: Geert Uytterhoeven Date: Tue Apr 28 12:12:57 2015 +0200 ARM: shmobile: bockw-reference dts: Add "nor-jedec" compatible value Spansion s25fl008k is compatible with "nor-jedec". Hence add the "nor-jedec" compatible value, so the driver can bind against the generic name, cfr. commit 8ff16cf77ce314c2 ("Documentation: devicetree: m25p80: add "nor-jedec" binding"). Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7778-bockw-reference.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7aa4008133cc5c1dab7006c6f2773de2ce6e8786 Author: Geert Uytterhoeven Date: Tue Apr 28 12:12:56 2015 +0200 ARM: shmobile: henninger dts: Add "nor-jedec" compatible value Spansion s25fl512s is compatible with "nor-jedec". Hence add the "nor-jedec" compatible value, so the driver can bind against the generic name, cfr. commit 8ff16cf77ce314c2 ("Documentation: devicetree: m25p80: add "nor-jedec" binding"). Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7791-henninger.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 92d2434d8effe6160eb7f4fd0d01ef5b76930f2a Author: Geert Uytterhoeven Date: Mon Apr 27 14:55:32 2015 +0200 ARM: shmobile: armadillo800eva dts: Use generic names for device nodes wm8978 -> codec Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7740-armadillo800eva.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f92d9dc7e6cd15dcd096dc5a4d3e1fe0a034f659 Author: Geert Uytterhoeven Date: Mon Apr 27 14:55:34 2015 +0200 ARM: shmobile: marzen dts: Use generic names for device nodes lan0 -> ethernet Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7779-marzen.dts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 69478b2093796860e3991db102ede97131b8d67a Author: Geert Uytterhoeven Date: Mon Apr 27 14:55:33 2015 +0200 ARM: shmobile: kzm9d dts: Use generic names for device nodes lan9220 -> ethernet uart -> serial Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/emev2-kzm9d.dts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e8545be97479972346a1519412c5330b4223ca20 Author: Geert Uytterhoeven Date: Mon Apr 27 14:55:31 2015 +0200 ARM: shmobile: ape6evm dts: Use generic names for device nodes max8973 -> regulator Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/r8a73a4-ape6evm.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4239baee807bbd93e89eef184b2547f5ae902615 Author: Geert Uytterhoeven Date: Mon Apr 27 14:55:30 2015 +0200 ARM: shmobile: sh73a0 dtsi: Use generic names for device nodes irqpin -> interrupt-controller Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/sh73a0.dtsi | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 6c63e07dcc2e941288d18e3fe9b448265f9ca9d0 Author: Geert Uytterhoeven Date: Mon Apr 27 14:55:29 2015 +0200 ARM: shmobile: r8a7791 dtsi: Use generic names for device nodes rcar_sound -> sound Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7791.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b694e3807b5b12273ba057e8cfcf82c2331606e0 Author: Geert Uytterhoeven Date: Mon Apr 27 14:55:28 2015 +0200 ARM: shmobile: r8a7790 dtsi: Use generic names for device nodes rcar_sound -> sound Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7790.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a37771c6e36f2db84a67074d35d7519f75939b43 Author: Geert Uytterhoeven Date: Mon Apr 27 14:55:27 2015 +0200 ARM: shmobile: r8a7779 dtsi: Use generic names for device nodes irqpin -> interrupt-controller Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7779.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b38150fae0164d363c852d6b782ab7083697c6d2 Author: Geert Uytterhoeven Date: Mon Apr 27 14:55:26 2015 +0200 ARM: shmobile: r8a7778 dtsi: Use generic names for device nodes irqpin -> interrupt-controller Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7778.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 32e4094238f10dce95bf9f8eacdf84a880182db5 Author: Geert Uytterhoeven Date: Mon Apr 27 14:55:25 2015 +0200 ARM: shmobile: r8a7740 dtsi: Use generic names for device nodes irqpin -> interrupt-controller Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7740.dtsi | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 1c5ca5db11edd7ff27ad8a98ffb2ac61bfd520b6 Author: Geert Uytterhoeven Date: Wed Mar 18 19:56:01 2015 +0100 ARM: shmobile: r8a7794: Add IRQC clock to device tree Link the external IRQ controller irqc0 to the IRQC module clock, so it can be power managed using that clock. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7794.dtsi | 9 +++++++++ include/dt-bindings/clock/r8a7794-clock.h | 3 +++ 2 files changed, 12 insertions(+) commit 62d386c04b1cb9df430c955b309406175d26b6b3 Author: Geert Uytterhoeven Date: Wed Mar 18 19:56:00 2015 +0100 ARM: shmobile: r8a7791: Add IRQC clock to device tree Link the external IRQ controller irqc0 to the IRQC module clock, so it can be power managed using that clock. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7791.dtsi | 9 +++++++++ include/dt-bindings/clock/r8a7791-clock.h | 3 +++ 2 files changed, 12 insertions(+) commit 61624caf2479732beb42ea88a6b6ca3c7ae59cd7 Author: Geert Uytterhoeven Date: Wed Mar 18 19:55:59 2015 +0100 ARM: shmobile: r8a7790: Add IRQC clock to device tree Link the external IRQ controller irqc0 to the IRQC module clock, so it can be power managed using that clock. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7790.dtsi | 9 +++++++++ include/dt-bindings/clock/r8a7790-clock.h | 3 +++ 2 files changed, 12 insertions(+) commit 1c2a7eb7169b855f6c3e9db036c6767052528ffe Author: Geert Uytterhoeven Date: Wed Mar 18 19:55:58 2015 +0100 ARM: shmobile: r8a73a4: Add IRQC clock to device tree Link the external IRQ controllers irqc0 and irqc1 to the IRQC module clock, so they can be power managed using that clock. Signed-off-by: Geert Uytterhoeven [horms: corrected typo in changelog to refer to r8a73a4] Signed-off-by: Simon Horman arch/arm/boot/dts/r8a73a4.dtsi | 11 +++++++---- include/dt-bindings/clock/r8a73a4-clock.h | 1 + 2 files changed, 8 insertions(+), 4 deletions(-) commit f435e68fe74d41a34124e49c07ff9f9cd7954e35 Author: Ingo Molnar Date: Mon May 11 07:17:04 2015 +0200 x86/asm/entry: Fix remaining use of SYSCALL_VECTOR Commit: 51bb92843edc ("x86/asm/entry: Remove SYSCALL_VECTOR") Converted most uses of SYSCALL_VECTOR to IA32_SYSCALL_VECTOR, but forgot about lguest. Cc: Brian Gerst Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1431185813-15413-4-git-send-email-brgerst@gmail.com Signed-off-by: Ingo Molnar drivers/lguest/interrupts_and_traps.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 8bcb77fabd7cbabcad49f58750be8683febee92b Author: Al Viro Date: Fri May 8 16:59:20 2015 -0400 namei: split off filename_lookupat() with LOOKUP_PARENT new functions: filename_parentat() and path_parentat() resp. Signed-off-by: Al Viro fs/namei.c | 37 +++++++++++++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 4 deletions(-) commit b5cd3397627ab7e200ee068ca39b9ca2d031f26d Author: Al Viro Date: Fri May 8 16:38:31 2015 -0400 namei: may_follow_link() - lift terminate_walk() on failures into caller Signed-off-by: Al Viro fs/namei.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit ab10492345d1d629743c7e7d56532f4e5284c2c5 Author: Al Viro Date: Sun May 10 11:50:01 2015 -0400 namei: take increment of nd->depth into pick_link() Makes the situation much more regular - we avoid a strange state when the element just after the top of stack is used to store struct path of symlink, but isn't counted in nd->depth. This is much more regular, so the normal failure exits, etc., work fine. Signed-off-by: Al Viro fs/namei.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) commit 1cf2665b5bdfc63185fb4a416bff54b14ad30c79 Author: Al Viro Date: Wed May 6 16:01:56 2015 -0400 namei: kill nd->link Just store it in nd->stack[nd->depth].link right in pick_link(). Now that we make sure of stack expansion in pick_link(), we can do so... Signed-off-by: Al Viro fs/namei.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) commit fec2fa24e84a75447341a20d36e808c8d913a81a Author: Al Viro Date: Wed May 6 15:58:18 2015 -0400 may_follow_link(): trim arguments Signed-off-by: Al Viro fs/namei.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit cd179f4468acfda2b7e9e236dc37bba815996421 Author: Al Viro Date: Tue May 5 10:52:35 2015 -0400 namei: move bumping the refcount of link->mnt into pick_link() update the failure cleanup in may_follow_link() to match that. Signed-off-by: Al Viro fs/namei.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit e8bb73dfb0aad673a3b9650e9af0ba1739a4df01 Author: Al Viro Date: Fri May 8 16:28:42 2015 -0400 namei: fold put_link() into the failure case of complete_walk() ... and don't open-code unlazy_walk() in there - the only reason for that is to avoid verfication of cached nd->root, which is trivially avoided by discarding said cached nd->root first. Signed-off-by: Al Viro fs/namei.c | 29 ++++++----------------------- 1 file changed, 6 insertions(+), 23 deletions(-) commit fab51e8ab25e1ad661ef8da42077de78477fba83 Author: Al Viro Date: Sun May 10 11:01:00 2015 -0400 namei: take the treatment of absolute symlinks to get_link() rather than letting the callers handle the jump-to-root part of semantics, do it right in get_link() and return the rest of the body for the caller to deal with - at that point it's treated the same way as relative symlinks would be. And return NULL when there's no "rest of the body" - those are treated the same as pure jump symlink would be. Signed-off-by: Al Viro fs/namei.c | 49 ++++++++++++++++++++----------------------------- 1 file changed, 20 insertions(+), 29 deletions(-) commit 4f697a5e173023a4f566339452a9d6f2cc7bd7dc Author: Al Viro Date: Sun May 10 10:50:41 2015 -0400 namei: simpler treatment of symlinks with nothing other that / in the body Instead of saving name and branching to OK:, where we'll immediately restore it, and call walk_component() with WALK_PUT|WALK_GET and nd->last_type being LAST_BIND, which is equivalent to put_link(nd), err = 0, we can just treat that the same way we'd treat procfs-style "jump" symlinks - do put_link(nd) and move on. Signed-off-by: Al Viro fs/namei.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) commit 6920a4405e6ff7813de4d5a9eb5e0b475e41a06b Author: Al Viro Date: Sun May 10 10:43:46 2015 -0400 namei: simplify failure exits in get_link() when cookie is NULL, put_link() is equivalent to path_put(), so as soon as we'd set last->cookie to NULL, we can bump nd->depth and let the normal logics in terminate_walk() to take care of cleanups. Signed-off-by: Al Viro fs/namei.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) commit 6e77137b363b8d866ac29c5a0c95e953614fb2d8 Author: Al Viro Date: Sat May 2 13:37:52 2015 -0400 don't pass nameidata to ->follow_link() its only use is getting passed to nd_jump_link(), which can obtain it from current->nameidata Signed-off-by: Al Viro Documentation/filesystems/Locking | 2 +- Documentation/filesystems/vfs.txt | 2 +- drivers/staging/lustre/lustre/llite/symlink.c | 2 +- fs/9p/vfs_inode.c | 2 +- fs/9p/vfs_inode_dotl.c | 2 +- fs/autofs4/symlink.c | 2 +- fs/befs/linuxvfs.c | 4 ++-- fs/cifs/cifsfs.h | 2 +- fs/cifs/link.c | 2 +- fs/configfs/symlink.c | 2 +- fs/ecryptfs/inode.c | 2 +- fs/ext4/symlink.c | 2 +- fs/f2fs/namei.c | 4 ++-- fs/fuse/dir.c | 2 +- fs/gfs2/inode.c | 2 +- fs/hostfs/hostfs_kern.c | 2 +- fs/hppfs/hppfs.c | 4 ++-- fs/kernfs/symlink.c | 2 +- fs/libfs.c | 2 +- fs/namei.c | 11 ++++++----- fs/nfs/symlink.c | 2 +- fs/overlayfs/inode.c | 4 ++-- fs/proc/base.c | 4 ++-- fs/proc/inode.c | 2 +- fs/proc/namespaces.c | 4 ++-- fs/proc/self.c | 2 +- fs/proc/thread_self.c | 2 +- fs/xfs/xfs_iops.c | 3 +-- include/linux/fs.h | 6 +++--- include/linux/namei.h | 2 +- mm/shmem.c | 2 +- 31 files changed, 44 insertions(+), 44 deletions(-) commit 8402752ecf829f67527072151fa680292a519193 Author: Al Viro Date: Wed Apr 22 10:30:08 2015 -0400 namei: simplify the callers of follow_managed() now that it gets nameidata, no reason to have setting LOOKUP_JUMPED on mountpoint crossing and calling path_put_conditional() on failures done in every caller. Signed-off-by: Al Viro fs/namei.c | 32 ++++++++++---------------------- 1 file changed, 10 insertions(+), 22 deletions(-) commit 756daf263ea53a8bfc89db26cb92e963953253a1 Author: NeilBrown Date: Mon Mar 23 13:37:38 2015 +1100 VFS: replace {, total_}link_count in task_struct with pointer to nameidata task_struct currently contains two ad-hoc members for use by the VFS: link_count and total_link_count. These are only interesting to fs/namei.c, so exposing them explicitly is poor layering. Incidentally, link_count isn't used anymore, so it can just die. This patches replaces those with a single pointer to 'struct nameidata'. This structure represents the current filename lookup of which there can only be one per process, and is a natural place to store total_link_count. This will allow the current "nameidata" argument to all follow_link operations to be removed as current->nameidata can be used instead in the _very_ few instances that care about it at all. As there are occasional circumstances where pathname lookup can recurse, such as through kern_path_locked, we always save and old current->nameidata (if there is one) when setting a new value, and make sure any active link_counts are preserved. follow_mount and follow_automount now get a 'struct nameidata *' rather than 'int flags' so that they can directly access total_link_count, rather than going through 'current'. Suggested-by: Al Viro Signed-off-by: NeilBrown Signed-off-by: Al Viro fs/namei.c | 70 ++++++++++++++++++++++++++++----------------------- include/linux/sched.h | 2 +- 2 files changed, 40 insertions(+), 32 deletions(-) commit 44163f30059e9869451999e77109a37abba8c968 Author: Al Viro Date: Fri Apr 17 23:02:40 2015 -0400 lustre: rip the private symlink nesting limit out Signed-off-by: Al Viro drivers/staging/lustre/lustre/llite/symlink.c | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) commit 626de99676e1e41fc70fc890776518ba936a58c6 Author: Al Viro Date: Mon May 4 18:26:59 2015 -0400 namei: move link count check and stack allocation into pick_link() Signed-off-by: Al Viro fs/namei.c | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) commit d63ff28f0f693196c0e2c587024d272b6fdbfa6e Author: Al Viro Date: Mon May 4 18:13:23 2015 -0400 namei: make should_follow_link() store the link in nd->link ... if it decides to follow, that is. Signed-off-by: Al Viro fs/namei.c | 62 +++++++++++++++++++++++++++++++++----------------------------- 1 file changed, 33 insertions(+), 29 deletions(-) commit 4693a547cded42807ec468947b4d5287f2cb6aa9 Author: Al Viro Date: Mon May 4 17:47:11 2015 -0400 namei: new calling conventions for walk_component() instead of a single flag (!= 0 => we want to follow symlinks) pass two bits - WALK_GET (want to follow symlinks) and WALK_PUT (put_link() once we are done looking at the name). The latter matters only for success exits - on failure the caller will discard everything anyway. Suggestions for better variant are welcome; what this thing aims for is making sure that pending put_link() is done *before* walk_component() decides to pick a symlink up, rather than between picking it up and acting upon it. See the next commit for payoff. Signed-off-by: Al Viro fs/namei.c | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) commit 8620c238edbf373aafcc4ee129e76c8e794c5214 Author: Al Viro Date: Mon May 4 08:58:35 2015 -0400 link_path_walk: move the OK: inside the loop fewer labels that way; in particular, resuming after the end of nested symlink is straight-line. Signed-off-by: Al Viro fs/namei.c | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) commit 1543972678e31bcfbc7f15170c12fb601c9f5c90 Author: Al Viro Date: Mon May 4 08:34:59 2015 -0400 namei: have terminate_walk() do put_link() on everything left All callers of terminate_walk() are followed by more or less open-coded eqiuvalent of "do put_link() on everything left in nd->stack". Better done in terminate_walk() itself, and when we go for RCU symlink traversal we'll have to do it there anyway. Signed-off-by: Al Viro fs/namei.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) commit 191d7f73e25c460858bd9467d528b48fdb8cef59 Author: Al Viro Date: Mon May 4 08:26:45 2015 -0400 namei: take put_link() into {lookup,mountpoint,do}_last() rationale: we'll need to have terminate_walk() do put_link() on everything, which will mean that in some cases ..._last() will do put_link() anyway. Easier to have them do it in all cases. Signed-off-by: Al Viro fs/namei.c | 34 +++++++++++++++++++++------------- 1 file changed, 21 insertions(+), 13 deletions(-) commit 1bc4b813e8e5bda23a31892712e04905f0c7ffba Author: Al Viro Date: Mon May 4 08:15:36 2015 -0400 namei: lift (open-coded) terminate_walk() into callers of get_link() Signed-off-by: Al Viro fs/namei.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit f0a9ba7021ce286120b69926a17ba55c11707fae Author: Al Viro Date: Mon May 4 07:59:30 2015 -0400 lift terminate_walk() into callers of walk_component() Signed-off-by: Al Viro fs/namei.c | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) commit 70291aecc6aa228c1b3bb36a5f3efdb0af636042 Author: Al Viro Date: Mon May 4 07:53:00 2015 -0400 namei: lift (open-coded) terminate_walk() in follow_dotdot_rcu() into callers follow_dotdot_rcu() does an equivalent of terminate_walk() on failure; shifting it into callers makes for simpler rules and those callers already have terminate_walk() on other failure exits. Signed-off-by: Al Viro fs/namei.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) commit e269f2a73f92b40169c4229289587b901a00b244 Author: Al Viro Date: Sun May 3 21:30:27 2015 -0400 namei: we never need more than MAXSYMLINKS entries in nd->stack The only reason why we needed one more was that purely nested MAXSYMLINKS symlinks could lead to path_init() using that many entries in addition to nd->stack[0] which it left unused. That can't happen now - path_init() starts with entry 0 (and trailing_symlink() is called only when we'd already encountered one symlink, so no more than MAXSYMLINKS-1 are left). Signed-off-by: Al Viro fs/namei.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8eff733a45c98f17f254a313859f3b3ed9fc12dc Author: Al Viro Date: Sun May 3 21:27:36 2015 -0400 link_path_walk: end of nd->depth massage get rid of orig_depth - we only use it on error exit to tell whether to stop doing put_link() when depth reaches 0 (call from path_init()) or when it reaches 1 (call from trailing_symlink()). However, in the latter case the caller would immediately follow with one more put_link(). Just keep doing it until the depth reaches zero (and simplify trailing_symlink() as the result). Signed-off-by: Al Viro fs/namei.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit 939724df56db970bdbaf8abcdc975c51482aba9b Author: Al Viro Date: Sun May 3 21:21:44 2015 -0400 link_path_walk: nd->depth massage, part 10 Get rid of orig_depth checks in OK: logics. If nd->depth is zero, we had been called from path_init() and we are done. If it is greater than 1, we are not done, whether we'd been called from path_init() or trailing_symlink(). And in case when it's 1, we might have been called from path_init() and reached the end of nested symlink (in which case nd->stack[0].name will point to the rest of pathname and we are not done) or from trailing_symlink(), in which case we are done. Just have trailing_symlink() leave NULL in nd->stack[0].name and use that to discriminate between those cases. Signed-off-by: Al Viro fs/namei.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) commit dc7af8dc05bc46410b978dae14fda8414b65db30 Author: Al Viro Date: Sun May 3 21:16:35 2015 -0400 link_path_walk: nd->depth massage, part 9 Make link_path_walk() work with any value of nd->depth on entry - memorize it and use it in tests instead of comparing with 1. Don't bother with increment/decrement in path_init(). Signed-off-by: Al Viro fs/namei.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) commit 21c3003d36a8b6c54811bd87eb5f6fc830de9c82 Author: Al Viro Date: Sun May 3 21:06:24 2015 -0400 put_link: nd->depth massage, part 8 all calls are preceded by decrement of nd->depth; move it into put_link() itself. Signed-off-by: Al Viro fs/namei.c | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) commit 9ea57b72bf4f8b750e939769ae0aeaa41394ac01 Author: Al Viro Date: Sun May 3 21:04:07 2015 -0400 trailing_symlink: nd->depth massage, part 7 move decrement of nd->depth on successful returns into the callers. Signed-off-by: Al Viro fs/namei.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 0fd889d59e12f860358866b6ddeee4bb7011aaad Author: Al Viro Date: Sun May 3 21:02:40 2015 -0400 get_link: nd->depth massage, part 6 make get_link() increment nd->depth on successful exit Signed-off-by: Al Viro fs/namei.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit f7df08ee05db41c6d2ec498703401197f6b68373 Author: Al Viro Date: Sun May 3 20:59:58 2015 -0400 trailing_symlink: nd->depth massage, part 5 move increment of ->depth to the point where we'd discovered that get_link() has not returned an error, adjust exits accordingly. Signed-off-by: Al Viro fs/namei.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) commit ef1a3e7b9634cc68740eb1280309ac5e460b95f9 Author: Al Viro Date: Sun May 3 20:54:27 2015 -0400 link_path_walk: nd->depth massage, part 4 lift increment/decrement into link_path_walk() callers. Signed-off-by: Al Viro fs/namei.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit da4e0be04d8816bbb9420c1da05ce09f502c5b75 Author: Al Viro Date: Sun May 3 20:52:15 2015 -0400 link_path_walk: nd->depth massage, part 3 remove decrement/increment surrounding nd_alloc_stack(), adjust the test in it. Signed-off-by: Al Viro fs/namei.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit fd4620bbdf618998fd1a7df19e3443a698357e2b Author: Al Viro Date: Sun May 3 20:46:54 2015 -0400 link_path_walk: nd->depth massage, part 2 collapse adjacent increment/decrement pairs. Signed-off-by: Al Viro fs/namei.c | 8 -------- 1 file changed, 8 deletions(-) commit 071bf501379560a7631b8d75ac80165bf82735c4 Author: Al Viro Date: Sun May 3 20:01:27 2015 -0400 link_path_walk: nd->depth massage, part 1 nd->stack[0] is unused until the handling of trailing symlinks and we want to get rid of that. Having fucked that transformation up several times, I went for bloody pedantic series of provably equivalent transformations. Sorry. Step 1: keep nd->depth higher by one in link_path_walk() - increment upon entry, decrement on exits, adjust the arithmetics inside and surround the calls of functions that care about nd->depth value (nd_alloc_stack(), get_link(), put_link()) with decrement/increment pairs. Signed-off-by: Al Viro fs/namei.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) commit 894bc8c4662ba9daceafe943a5ba0dd407da5cd3 Author: Al Viro Date: Sat May 2 07:16:16 2015 -0400 namei: remove restrictions on nesting depth The only restriction is that on the total amount of symlinks crossed; how they are nested does not matter Signed-off-by: Al Viro fs/namei.c | 66 ++++++++++++++++++++++++++++++++++++++++----------- include/linux/namei.h | 2 ++ 2 files changed, 54 insertions(+), 14 deletions(-) commit 3b2e7f7539bdf5650bf5e13f18c883b7b008d03b Author: Al Viro Date: Sun Apr 19 00:53:50 2015 -0400 namei: trim the arguments of get_link() same story as the previous commit Signed-off-by: Al Viro fs/namei.c | 45 +++++++++++++++++++++------------------------ 1 file changed, 21 insertions(+), 24 deletions(-) commit b9ff44293c64bf377e344c4cdc05d774b393cc6f Author: Al Viro Date: Sat May 2 20:19:23 2015 -0400 namei: trim redundant arguments of fs/namei.c:put_link() Signed-off-by: Al Viro fs/namei.c | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) commit 1d8e03d359fd07edc884ffc45d42d60be9d9f098 Author: Al Viro Date: Sat May 2 19:48:56 2015 -0400 namei: trim redundant arguments of trailing_symlink() Signed-off-by: Al Viro fs/namei.c | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) commit 697fc6ca666cdb2638211229c8fa3b81eb6f2f1a Author: Al Viro Date: Sat May 2 19:38:35 2015 -0400 namei: move link/cookie pairs into nameidata Array of MAX_NESTED_LINKS + 1 elements put into nameidata; what used to be a local array in link_path_walk() occupies entries 1 .. MAX_NESTED_LINKS in it, link and cookie from the trailing symlink handling loops - entry 0. This is _not_ the final arrangement; just an easily verified incremental step. Signed-off-by: Al Viro fs/namei.c | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) commit 9e18f10a30e0c49520fbda39751fcae760445b96 Author: Al Viro Date: Sat Apr 18 20:44:34 2015 -0400 link_path_walk: cleanup - turn goto start; into continue; Deal with skipping leading slashes before what used to be the recursive call. That way we can get rid of that goto completely. Signed-off-by: Al Viro fs/namei.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 07681481b865b5dc100f71cc82facaeaa9e69e86 Author: Al Viro Date: Sat Apr 18 20:40:04 2015 -0400 link_path_walk: split "return from recursive call" path Signed-off-by: Al Viro fs/namei.c | 40 +++++++++++++++++----------------------- 1 file changed, 17 insertions(+), 23 deletions(-) commit 32cd74685c75fada80c9444cde150434702aba56 Author: Al Viro Date: Sat Apr 18 20:30:49 2015 -0400 link_path_walk: kill the recursion absolutely straightforward now - the only variables we need to preserve across the recursive call are name, link and cookie, and recursion depth is limited (and can is equal to nd->depth). So arrange an array of triples to hold instances of those and be done with that. Signed-off-by: Al Viro fs/namei.c | 40 +++++++++++++++++++++++++++++----------- 1 file changed, 29 insertions(+), 11 deletions(-) commit bdf6cbf17923c08dafca70f0231817de1f9d1f30 Author: Al Viro Date: Sat Apr 18 20:21:40 2015 -0400 link_path_walk: final preparations to killing recursion reduce the number of returns in there - turn all places where it returns zero into goto OK and places where it returns non-zero into goto Err. The only non-trivial detail is that all breaks in the loop are guaranteed to be with non-zero err. Signed-off-by: Al Viro fs/namei.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) commit bb8603f8e166e49f02f865213feee7afddeac9b0 Author: Al Viro Date: Sat Apr 18 20:14:20 2015 -0400 link_path_walk: get rid of duplication What we do after the second walk_component() + put_link() + depth decrement in there is exactly equivalent to what's done right after the first walk_component(). Easy to verify and not at all surprising, seeing that there we have just walked the last component of nested symlink. Signed-off-by: Al Viro fs/namei.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) commit 48c8b0c57176ba081c13abdca8334b9d88c4e4d6 Author: Al Viro Date: Sat Apr 18 20:09:08 2015 -0400 link_path_walk: massage a bit more Pull the block after the if-else in the end of what used to be do-while body into all branches there. We are almost done with the massage... Signed-off-by: Al Viro fs/namei.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) commit d40bcc09ab773d9e3cfbc4a45a6e73a4f2d04a8a Author: Al Viro Date: Sat Apr 18 20:03:03 2015 -0400 link_path_walk: turn inner loop into explicit goto Signed-off-by: Al Viro fs/namei.c | 61 ++++++++++++++++++++++++++++++++----------------------------- 1 file changed, 32 insertions(+), 29 deletions(-) commit 12b0957800514535165f98efe7714f2a53bbfbb0 Author: Al Viro Date: Sat Apr 18 19:19:01 2015 -0400 link_path_walk: don't bother with walk_component() after jumping link ... it does nothing if nd->last_type is LAST_BIND. Signed-off-by: Al Viro fs/namei.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit b0c24c3bdf237182b2f043bfee68bf886b0c9ad3 Author: Al Viro Date: Sat Apr 18 19:10:36 2015 -0400 link_path_walk: handle get_link() returning ERR_PTR() immediately If we get ERR_PTR() from get_link(), we are guaranteed to get err != 0 when we break out of do-while, so we are going to hit if (err) return err; shortly after it. Pull that into the if (IS_ERR(s)) body. Signed-off-by: Al Viro fs/namei.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 95fa25d9f2e4898c62d2732f765c42eac0999285 Author: Al Viro Date: Wed Apr 22 13:46:57 2015 -0400 namei: rename follow_link to trailing_symlink, move it down Signed-off-by: Al Viro fs/namei.c | 62 ++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 30 insertions(+), 32 deletions(-) commit 21fef2176e50bf785eaac920d949fcac5e2db124 Author: Al Viro Date: Sun Apr 19 00:16:37 2015 -0400 namei: move the calls of may_follow_link() into follow_link() All remaining callers of the former are preceded by the latter Signed-off-by: Al Viro fs/namei.c | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) commit 172a39a059bb8d84649bcad3e252fe416ad188a8 Author: Al Viro Date: Sat Apr 18 18:45:16 2015 -0400 namei: expand the call of follow_link() in link_path_walk() ... and strip __always_inline from follow_link() - remaining callers don't need that. Now link_path_walk() recursion is a direct one. Signed-off-by: Al Viro fs/namei.c | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) commit 5a460275ef3c14602040e5dc581a0d8771ce6b43 Author: Al Viro Date: Fri Apr 17 23:44:45 2015 -0400 namei: expand nested_symlink() in its only caller Signed-off-by: Al Viro fs/namei.c | 61 +++++++++++++++++++++++-------------------------------------- 1 file changed, 23 insertions(+), 38 deletions(-) commit 896475d5bd2ee5d094239ff77801089ae25bcbc1 Author: Al Viro Date: Wed Apr 22 18:02:17 2015 -0400 do_last: move path there from caller's stack frame We used to need it to feed to follow_link(). No more... Signed-off-by: Al Viro fs/namei.c | 50 +++++++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 25 deletions(-) commit caa8563443539895fc6654b996c68d5e8048b86e Author: Al Viro Date: Wed Apr 22 17:52:47 2015 -0400 namei: introduce nameidata->link shares space with nameidata->next, walk_component() et.al. store the struct path of symlink instead of returning it into a variable passed by caller. Signed-off-by: Al Viro fs/namei.c | 62 ++++++++++++++++++++++++++++++++++---------------------------- 1 file changed, 34 insertions(+), 28 deletions(-) commit d4dee48badbb7ccd740087321518abcc870eda65 Author: Al Viro Date: Thu Apr 30 20:08:02 2015 -0400 namei: don't bother with ->follow_link() if ->i_link is set with new calling conventions it's trivial Signed-off-by: Al Viro Conflicts: fs/namei.c fs/namei.c | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) commit 0a959df54b088d38371ebae4b1d7bc3112f6ef62 Author: Al Viro Date: Sat Apr 18 18:23:41 2015 -0400 namei.c: separate the parts of follow_link() that find the link body Split a piece of fs/namei.c:follow_link() that does obtaining the link body into a separate function. follow_link() itself is converted to calling get_link() and then doing the body traversal (if any). The next step will expand follow_link() call in link_path_walk() and this helps to keep the size down... Signed-off-by: Al Viro fs/namei.c | 65 ++++++++++++++++++++++++++++++++++---------------------------- 1 file changed, 36 insertions(+), 29 deletions(-) commit 680baacbca69d18a6d7315374ad83d05ac9c0977 Author: Al Viro Date: Sat May 2 13:32:22 2015 -0400 new ->follow_link() and ->put_link() calling conventions a) instead of storing the symlink body (via nd_set_link()) and returning an opaque pointer later passed to ->put_link(), ->follow_link() _stores_ that opaque pointer (into void * passed by address by caller) and returns the symlink body. Returning ERR_PTR() on error, NULL on jump (procfs magic symlinks) and pointer to symlink body for normal symlinks. Stored pointer is ignored in all cases except the last one. Storing NULL for opaque pointer (or not storing it at all) means no call of ->put_link(). b) the body used to be passed to ->put_link() implicitly (via nameidata). Now only the opaque pointer is. In the cases when we used the symlink body to free stuff, ->follow_link() now should store it as opaque pointer in addition to returning it. Signed-off-by: Al Viro Documentation/filesystems/Locking | 4 +- Documentation/filesystems/vfs.txt | 4 +- drivers/staging/lustre/lustre/llite/symlink.c | 11 ++--- fs/9p/vfs_inode.c | 13 +++--- fs/9p/vfs_inode_dotl.c | 7 ++- fs/autofs4/symlink.c | 5 +- fs/befs/linuxvfs.c | 35 +++++++------- fs/cifs/cifsfs.h | 2 +- fs/cifs/link.c | 28 ++++++------ fs/configfs/symlink.c | 28 +++++------- fs/ecryptfs/inode.c | 8 ++-- fs/ext4/symlink.c | 9 ++-- fs/f2fs/namei.c | 18 +++----- fs/fuse/dir.c | 19 ++------ fs/gfs2/inode.c | 10 ++-- fs/hostfs/hostfs_kern.c | 15 +++--- fs/hppfs/hppfs.c | 9 ++-- fs/kernfs/symlink.c | 22 ++++----- fs/libfs.c | 12 ++--- fs/namei.c | 66 +++++++++------------------ fs/nfs/symlink.c | 19 +++----- fs/overlayfs/inode.c | 18 ++++---- fs/proc/base.c | 2 +- fs/proc/inode.c | 9 ++-- fs/proc/namespaces.c | 2 +- fs/proc/self.c | 24 +++++----- fs/proc/thread_self.c | 22 ++++----- fs/xfs/xfs_iops.c | 10 ++-- include/linux/fs.h | 12 ++--- include/linux/namei.h | 2 - mm/shmem.c | 23 +++++----- 31 files changed, 195 insertions(+), 273 deletions(-) commit 46afd6f61cc33ae4b3a2aed4bb454d11d4114c27 Author: Al Viro Date: Fri May 1 22:08:30 2015 -0400 namei: lift nameidata into filename_mountpoint() when we go for on-demand allocation of saved state in link_path_walk(), we'll want nameidata to stay around for all 3 calls of path_mountpoint(). Signed-off-by: Al Viro fs/namei.c | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) commit f5beed755bce1791d926ded9d83640b25e14a617 Author: Al Viro Date: Thu Apr 30 16:09:11 2015 -0400 name: shift nameidata down into user_path_walk() that avoids having nameidata on stack during the calls of ->rmdir()/->unlink() and *two* of those during the calls of ->rename(). Signed-off-by: Al Viro fs/namei.c | 124 +++++++++++++++++++++++++++++++++---------------------------- 1 file changed, 67 insertions(+), 57 deletions(-) commit 6a9f40d6104d74b0eaa06cc59e2dcc8f2dde5e22 Author: Al Viro Date: Thu Apr 30 12:25:18 2015 -0400 namei: get rid of lookup_hash() it's a convenient helper, but we'll want to shift nameidata down the call chain, so it won't be available there... Signed-off-by: Al Viro fs/namei.c | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) commit a5cfe2d5e14d4c2dec06b22d18050c443c7537f9 Author: Al Viro Date: Wed Apr 22 12:10:45 2015 -0400 do_last: regularize the logics around following symlinks With LOOKUP_FOLLOW we unlazy and return 1; without it we either fail with ELOOP or, for O_PATH opens, succeed. No need to mix those cases... Signed-off-by: Al Viro fs/namei.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) commit fd2805be238947eb819284189205e8de6f6c41c4 Author: Al Viro Date: Wed Apr 22 12:02:25 2015 -0400 do_last: kill symlink_ok When O_PATH is present, O_CREAT isn't, so symlink_ok is always equal to (open_flags & O_PATH) && !(nd->flags & LOOKUP_FOLLOW). Signed-off-by: Al Viro fs/namei.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit f488443d1dc50454acd549ddd856421e8f961f98 Author: Al Viro Date: Wed Apr 22 11:27:43 2015 -0400 namei: take O_NOFOLLOW treatment into do_last() Signed-off-by: Al Viro fs/namei.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit 34b128f31c028a28887c6659e90620727a319b16 Author: Al Viro Date: Sun Apr 19 07:48:53 2015 -0400 uninline walk_component() seriously improves the stack *and* I-cache footprint... Signed-off-by: Al Viro fs/namei.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 37882db0546c759ff75b561c188539ac96fd0bfe Author: NeilBrown Date: Mon Mar 23 13:37:39 2015 +1100 SECURITY: remove nameidata arg from inode_follow_link. No ->inode_follow_link() methods use the nameidata arg, and it is about to become private to namei.c. So remove from all inode_follow_link() functions. Signed-off-by: NeilBrown Signed-off-by: Al Viro fs/namei.c | 2 +- include/linux/security.h | 9 +++------ security/capability.c | 3 +-- security/security.c | 4 ++-- security/selinux/hooks.c | 2 +- 5 files changed, 8 insertions(+), 12 deletions(-) commit b4272646293b46fb8c7bc9b5176eb94d8141a278 Author: Al Viro Date: Tue Apr 21 10:48:50 2015 -0400 logfs: fix a pagecache leak for symlinks Signed-off-by: Al Viro fs/logfs/dir.c | 1 + 1 file changed, 1 insertion(+) commit ac194dccd2395a51b106c9b0aab7310fa6946b0a Author: Al Viro Date: Sat May 2 10:50:05 2015 -0400 ceph: switch to simple_follow_link() Signed-off-by: Al Viro fs/ceph/inode.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) commit a5ef103daad25f5906700cb0929ce4eac7f72e2e Author: Al Viro Date: Sat May 2 10:46:42 2015 -0400 exofs: switch to {simple,page}_symlink_inode_operations ACK-by: Boaz Harrosh Signed-off-by: Al Viro fs/exofs/Kbuild | 2 +- fs/exofs/exofs.h | 4 ---- fs/exofs/inode.c | 9 +++++---- fs/exofs/namei.c | 5 +++-- fs/exofs/symlink.c | 55 ------------------------------------------------------ 5 files changed, 9 insertions(+), 66 deletions(-) commit df64c082efd1f71d27d942dbfc628877272e6809 Author: Al Viro Date: Sat May 2 10:43:25 2015 -0400 freevxfs: switch to simple_follow_link() Signed-off-by: Al Viro fs/freevxfs/vxfs_extern.h | 3 --- fs/freevxfs/vxfs_immed.c | 34 ---------------------------------- fs/freevxfs/vxfs_inode.c | 7 +++++-- 3 files changed, 5 insertions(+), 39 deletions(-) commit ad476fedc7805ca7cec12a56e697afe37566e573 Author: Al Viro Date: Sat May 2 10:41:20 2015 -0400 jfs: switch to simple_follow_link() Reviewed-by: Jan Kara Acked-by: Dave Kleikamp Signed-off-by: Al Viro fs/jfs/inode.c | 3 ++- fs/jfs/namei.c | 5 ++--- fs/jfs/symlink.c | 10 +--------- 3 files changed, 5 insertions(+), 13 deletions(-) commit 2e03f3ea7acbee59a89ea73a696b2eb4c3145cde Author: Al Viro Date: Sat May 2 10:37:09 2015 -0400 sysv: switch to simple_follow_link() Signed-off-by: Al Viro fs/sysv/Makefile | 2 +- fs/sysv/inode.c | 5 +++-- fs/sysv/symlink.c | 20 -------------------- fs/sysv/sysv.h | 1 - 4 files changed, 4 insertions(+), 24 deletions(-) commit 0f301bd3055e86771e7c738ca009afad0964dbd2 Author: Al Viro Date: Sat May 2 10:35:42 2015 -0400 ubifs: switch to simple_follow_link() Signed-off-by: Al Viro fs/ubifs/dir.c | 1 + fs/ubifs/file.c | 11 +---------- fs/ubifs/super.c | 1 + 3 files changed, 3 insertions(+), 10 deletions(-) commit 4b8061a67f67ebd28d4273b05d1b6ae38f2a019b Author: Al Viro Date: Sat May 2 10:28:56 2015 -0400 ufs: switch to simple_follow_link() Signed-off-by: Al Viro fs/ufs/inode.c | 5 +++-- fs/ufs/namei.c | 3 ++- fs/ufs/symlink.c | 13 +------------ 3 files changed, 6 insertions(+), 15 deletions(-) commit 5723cb01f0295ace2b029b0737dd6525a2de337f Author: Al Viro Date: Sat May 2 10:27:18 2015 -0400 debugfs: switch to simple_follow_link() Reviewed-by: Jan Kara Signed-off-by: Al Viro fs/debugfs/file.c | 12 ------------ fs/debugfs/inode.c | 6 +++--- include/linux/debugfs.h | 1 - 3 files changed, 3 insertions(+), 16 deletions(-) commit 60380f193ee5a667842a4da4a3e936689bb0e5e6 Author: Al Viro Date: Sat May 2 10:24:43 2015 -0400 shmem: switch to simple_follow_link() Reviewed-by: Jan Kara Signed-off-by: Al Viro mm/shmem.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) commit a8db149fc97b122ffd14e1a5f6a110124dd721ea Author: Al Viro Date: Sat May 2 10:21:20 2015 -0400 jffs2: switch to simple_follow_link() Signed-off-by: Al Viro fs/jffs2/dir.c | 1 + fs/jffs2/fs.c | 1 + fs/jffs2/symlink.c | 45 +-------------------------------------------- 3 files changed, 3 insertions(+), 44 deletions(-) commit 75e7566bea0c9b2a257441b66294be94863ef929 Author: Al Viro Date: Sat May 2 10:13:58 2015 -0400 ext4: switch to simple_follow_link() for fast symlinks only, of course... Reviewed-by: Jan Kara Signed-off-by: Al Viro fs/ext4/inode.c | 1 + fs/ext4/namei.c | 4 +++- fs/ext4/symlink.c | 9 +-------- 3 files changed, 5 insertions(+), 9 deletions(-) commit 115b4205120dd5347858837dcdc17de0750bddef Author: Al Viro Date: Sat May 2 10:10:02 2015 -0400 ext3: switch to simple_follow_link() Reviewed-by: Jan Kara Signed-off-by: Al Viro fs/ext3/inode.c | 1 + fs/ext3/namei.c | 3 ++- fs/ext3/symlink.c | 10 +--------- 3 files changed, 4 insertions(+), 10 deletions(-) commit d0deec19917352333e38cfdafe69e796e5dedfbb Author: Al Viro Date: Sat May 2 10:06:54 2015 -0400 befs: switch to simple_follow_link() Reviewed-by: Jan Kara Signed-off-by: Al Viro fs/befs/linuxvfs.c | 24 +++++------------------- 1 file changed, 5 insertions(+), 19 deletions(-) commit cbe0fa3858cd638d1b540fe1279484bbd71489fb Author: Al Viro Date: Sat May 2 10:02:46 2015 -0400 ext2: use simple_follow_link() Reviewed-by: Jan Kara Signed-off-by: Al Viro fs/ext2/inode.c | 1 + fs/ext2/namei.c | 3 ++- fs/ext2/symlink.c | 10 +--------- 3 files changed, 4 insertions(+), 10 deletions(-) commit 61ba64fc0768879a300599b011c176203bdf27d9 Author: Al Viro Date: Sat May 2 09:54:06 2015 -0400 libfs: simple_follow_link() let "fast" symlinks store the pointer to the body into ->i_link and use simple_follow_link for ->follow_link() Reviewed-by: Jan Kara Signed-off-by: Al Viro fs/inode.c | 1 + fs/libfs.c | 13 +++++++++++++ include/linux/fs.h | 3 +++ 3 files changed, 17 insertions(+) commit a7a67e8a089e25ef48ab01dd34ce82678ef70f11 Author: Al Viro Date: Mon Apr 27 17:51:30 2015 -0400 ext4: split inode_operations for encrypted symlinks off the rest Signed-off-by: Al Viro fs/ext4/ext4.h | 1 + fs/ext4/inode.c | 6 ++++-- fs/ext4/namei.c | 9 +++++---- fs/ext4/symlink.c | 30 ++++++++++-------------------- 4 files changed, 20 insertions(+), 26 deletions(-) commit 3188b2955de3d01949ec54eb2c9ff1ecaa0a752d Author: NeilBrown Date: Mon Mar 23 13:37:39 2015 +1100 ovl: rearrange ovl_follow_link to it doesn't need to call ->put_link ovl_follow_link current calls ->put_link on an error path. However ->put_link is about to change in a way that it will be impossible to call it from ovl_follow_link. So rearrange the code to avoid the need for that error path. Specifically: move the kmalloc() call before the ->follow_link() call to the subordinate filesystem. Signed-off-by: NeilBrown Signed-off-by: Al Viro fs/overlayfs/inode.c | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) commit 90e4fc8890daecea72ef73ac8047050e3e8d32db Author: Al Viro Date: Tue Apr 14 17:42:49 2015 -0400 9p: don't bother with __getname() in ->follow_link() We copy there a kmalloc'ed string and proceed to kfree that string immediately after that. Easier to just feed that string to nd_set_link() and _not_ kfree it until ->put_link() (which becomes kfree_put_link() in that case). Signed-off-by: Al Viro fs/9p/v9fs.h | 2 -- fs/9p/vfs_inode.c | 93 ++++++++++---------------------------------------- fs/9p/vfs_inode_dotl.c | 31 +++++------------ 3 files changed, 26 insertions(+), 100 deletions(-) commit b46c267e4756a88593c4a08de869e70d3907637f Author: Al Viro Date: Tue Apr 14 12:10:34 2015 -0400 9p: don't bother with 4K allocation for 24-byte local array... Signed-off-by: Al Viro fs/9p/vfs_inode.c | 26 +++++--------------------- 1 file changed, 5 insertions(+), 21 deletions(-) commit cc7297dcb440eb9d2e50a8c26dc7e7b37ef37e25 Author: Jesse Barnes Date: Wed Apr 1 14:22:58 2015 -0700 drm/i915/vlv: remove wait for previous GFX clk disable request Looks like it was introduced in: commit 650ad970a39f8b6164fe8613edc150f585315289 Author: Imre Deak Date: Fri Apr 18 16:35:02 2014 +0300 drm/i915: vlv: factor out vlv_force_gfx_clock and check for pending force-of but I'm not sure why. It has caused problems for us in the past (see 85250ddff7a6 "drm/i915/chv: Remove Wait for a previous gfx force-off" and 8d4eee9cd7a1 "drm/i915: vlv: increase timeout when forcing on the GFX clock") and doesn't seem to be required, so let's just drop it. [airlied: I messed up a merge - readd this] References: https://bugs.freedesktop.org/show_bug.cgi?id=89611 Signed-off-by: Jesse Barnes Tested-by: Darren Hart Reviewed-by: Deepak S Cc: stable@vger.kernel.org # c9c52e24194a: drm/i915/chv: Remove Wait ... Cc: stable@vger.kernel.org Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_drv.c | 14 -------------- 1 file changed, 14 deletions(-) commit 80ba92fa1a92dea128283f69f55b02242e213650 Author: Eric Dumazet Date: Fri May 8 15:05:12 2015 -0700 codel: add ce_threshold attribute For DCTCP or similar ECN based deployments on fabrics with shallow buffers, hosts are responsible for a good part of the buffering. This patch adds an optional ce_threshold to codel & fq_codel qdiscs, so that DCTCP can have feedback from queuing in the host. A DCTCP enabled egress port simply have a queue occupancy threshold above which ECT packets get CE mark. In codel language this translates to a sojourn time, so that one doesn't have to worry about bytes or bandwidth but delays. This makes the host an active participant in the health of the whole network. This also helps experimenting DCTCP in a setup without DCTCP compliant fabric. On following example, ce_threshold is set to 1ms, and we can see from 'ldelay xxx us' that TCP is not trying to go around the 5ms codel target. Queue has more capacity to absorb inelastic bursts (say from UDP traffic), as queues are maintained to an optimal level. lpaa23:~# ./tc -s -d qd sh dev eth1 qdisc mq 1: dev eth1 root Sent 87910654696 bytes 58065331 pkt (dropped 0, overlimits 0 requeues 42961) backlog 3108242b 364p requeues 42961 qdisc codel 8063: dev eth1 parent 1:1 limit 1000p target 5.0ms ce_threshold 1.0ms interval 100.0ms Sent 7363778701 bytes 4863809 pkt (dropped 0, overlimits 0 requeues 5503) rate 2348Mbit 193919pps backlog 255866b 46p requeues 5503 count 0 lastcount 0 ldelay 1.0ms drop_next 0us maxpacket 68130 ecn_mark 0 drop_overlimit 0 ce_mark 72384 qdisc codel 8064: dev eth1 parent 1:2 limit 1000p target 5.0ms ce_threshold 1.0ms interval 100.0ms Sent 7636486190 bytes 5043942 pkt (dropped 0, overlimits 0 requeues 5186) rate 2319Mbit 191538pps backlog 207418b 64p requeues 5186 count 0 lastcount 0 ldelay 694us drop_next 0us maxpacket 68130 ecn_mark 0 drop_overlimit 0 ce_mark 69873 qdisc codel 8065: dev eth1 parent 1:3 limit 1000p target 5.0ms ce_threshold 1.0ms interval 100.0ms Sent 11569360142 bytes 7641602 pkt (dropped 0, overlimits 0 requeues 5554) rate 3041Mbit 251096pps backlog 210446b 59p requeues 5554 count 0 lastcount 0 ldelay 889us drop_next 0us maxpacket 68130 ecn_mark 0 drop_overlimit 0 ce_mark 37780 ... Signed-off-by: Eric Dumazet Cc: Florian Westphal Cc: Daniel Borkmann Cc: Glenn Judd Cc: Nandita Dukkipati Cc: Neal Cardwell Cc: Yuchung Cheng Acked-by: Neal Cardwell Signed-off-by: David S. Miller include/net/codel.h | 12 +++++++++++- include/uapi/linux/pkt_sched.h | 4 ++++ net/sched/sch_codel.c | 15 +++++++++++++-- net/sched/sch_fq_codel.c | 15 ++++++++++++++- 4 files changed, 42 insertions(+), 4 deletions(-) commit cf9d0dcc5a46f0a3dcb7905aa6ffa8e4bbc1cc99 Author: Varka Bhadram Date: Thu May 7 09:17:48 2015 +0530 ethernet: qualcomm: use spi instead of spi_device All spi based drivers have an instance of struct spi_device as spi. This patch renames spi_device to spi to synchronize with all the drivers. Signed-off-by: Varka Bhadram Signed-off-by: David S. Miller drivers/net/ethernet/qualcomm/qca_spi.c | 46 ++++++++++++++++----------------- 1 file changed, 23 insertions(+), 23 deletions(-) commit feca56ff400b7b166c86af9ff5c131d1d33cf615 Author: Gabriele Mazzotta Date: Sat May 2 14:30:57 2015 +0200 iio: acpi: Add support for ACPI0008 Ambient Light Sensor This driver adds the initial support for the ACPI Ambient Light Sensor as defined in Section 9.2 of the ACPI specification (Revision 5.0) [1]. Sensors complying with the standard are exposed as ACPI devices with ACPI0008 as hardware ID and provide standard methods by which the OS can query properties of the ambient light environment the system is currently operating in. This driver currently allows only to get the current ambient light illuminance reading through the _ALI method, but is ready to be extended extended to handle _ALC, _ALT and _ALP as well. [1] http://www.acpi.info/DOWNLOADS/ACPIspec50.pdf Signed-off-by: Martin Liska Signed-off-by: Marek Vasut Signed-off-by: Gabriele Mazzotta Cc: Zhang Rui Signed-off-by: Jonathan Cameron drivers/iio/light/Kconfig | 13 +++ drivers/iio/light/Makefile | 1 + drivers/iio/light/acpi-als.c | 231 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 245 insertions(+) commit ee1a81f90f28a5a2c3339ec62b2a6a6d165075d2 Author: Varka Bhadram Date: Fri Apr 24 14:53:07 2015 +0530 imu: inv_mpu6050: adds device tree bindings Signed-off-by: Varka Bhadram Signed-off-by: Jonathan Cameron .../devicetree/bindings/iio/imu/inv_mpu6050.txt | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit 85b4ba7055d4cf624b6a608125e3d0c57768cc10 Author: Krzysztof Kozlowski Date: Sat May 2 00:53:38 2015 +0900 iio: hid-sensor-press: 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: Jonathan Cameron drivers/iio/pressure/hid-sensor-press.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6b490c6c6702b1404d3ae93a9d0ace211d40c094 Author: Krzysztof Kozlowski Date: Sat May 2 00:53:37 2015 +0900 iio: hid-sensor-rotation: 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: Jonathan Cameron drivers/iio/orientation/hid-sensor-rotation.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5dd86df009064b4ba25eabc78ea97d5c92154d13 Author: Krzysztof Kozlowski Date: Sat May 2 00:53:36 2015 +0900 iio: hid-sensor-incl-3d: 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: Jonathan Cameron drivers/iio/orientation/hid-sensor-incl-3d.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit df5e94b4823d6cb3af30312b4cc08759c6306e06 Author: Krzysztof Kozlowski Date: Sat May 2 00:53:35 2015 +0900 iio: hid-sensor-magn-3d: 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: Jonathan Cameron drivers/iio/magnetometer/hid-sensor-magn-3d.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4205086119a70e9eb57330755b62680802e325b9 Author: Krzysztof Kozlowski Date: Sat May 2 00:53:34 2015 +0900 iio: light: hid-sensor-prox: 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: Jonathan Cameron drivers/iio/light/hid-sensor-prox.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4e617fc1b6ce543e71c9aeb60b81ad55d2fefe91 Author: Krzysztof Kozlowski Date: Sat May 2 00:53:33 2015 +0900 iio: light: hid-sensor-als: 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: Jonathan Cameron drivers/iio/light/hid-sensor-als.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 322a3b1ea2b1844acb957efbcf4388062bc5684b Author: Krzysztof Kozlowski Date: Sat May 2 00:53:32 2015 +0900 iio: hid-sensor-gyro-3d: 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: Jonathan Cameron drivers/iio/gyro/hid-sensor-gyro-3d.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e682173f3753a73feb8336c8b6cdd8c6b74bdd75 Author: Krzysztof Kozlowski Date: Sat May 2 00:53:31 2015 +0900 iio: adc: axp288: 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: Jonathan Cameron drivers/iio/adc/axp288_adc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 76ec50a1bcee1e294f282fcf54655c07bc40383e Author: Krzysztof Kozlowski Date: Sat May 2 00:53:30 2015 +0900 iio: hid-sensor-accel-3d: 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: Jonathan Cameron drivers/iio/accel/hid-sensor-accel-3d.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3a11fbb037a1ecd3e1070ee484f1ea887133f21b Author: Tomasz Duszynski Date: Sun May 3 20:37:21 2015 +0200 iio: light: add support for ROHM BH1710/BH1715/BH1721/BH1750/BH1751 ambient light sensors Add support for ROHM BH1710/BH1715/BH1721/BH1750/BH1751 ambient light sensors. Signed-off-by: Tomasz Duszynski Signed-off-by: Jonathan Cameron drivers/iio/light/Kconfig | 10 ++ drivers/iio/light/Makefile | 1 + drivers/iio/light/bh1750.c | 334 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 345 insertions(+) commit 54628687fa2df2d3755912954afa67665ed122cc Author: Linus Walleij Date: Tue May 5 10:42:12 2015 +0200 iio: make tools more cross-compilation friendly When cross-compiling the IIO tools we need to opportunity to specify a cross compiler prefix and some extra CFLAGS. This patch enables this in the same way as for other stuff in tools. Signed-off-by: Linus Walleij Acked-by: Daniel Baluta Signed-off-by: Jonathan Cameron tools/iio/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit d11715f087e0c0608de8ec030ca260892e8b8739 Author: Daniel Baluta Date: Fri Apr 24 18:58:32 2015 +0300 iio: magnetometer: Add ACPI support for MMC35240 We assume that ACPI device tables use MMC35240 to identify MEMSIC's 3 axis magnetic sensor. Signed-off-by: Daniel Baluta Signed-off-by: Jonathan Cameron drivers/iio/magnetometer/mmc35240.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 553a776b790816161cd334647eae2093fd126e36 Author: Daniel Baluta Date: Fri Apr 24 18:58:31 2015 +0300 iio: magnetometer: mmc35240: Add PM sleep support We rely on regmap to save the state of the registers at suspend, and then we do an explicit sync at resume. Signed-off-by: Daniel Baluta Signed-off-by: Jonathan Cameron drivers/iio/magnetometer/mmc35240.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) commit abeb6b1e7bbffb3dbcd918827673feafecc378d1 Author: Daniel Baluta Date: Fri Apr 24 18:58:30 2015 +0300 iio: magnetometer: Add support for MEMSIC MMC35240 sensor Minimal implementation for MMC35240 3-axis magnetometer sensor. It provides processed readings and possiblity to change the sampling frequency. Signed-off-by: Daniel Baluta Signed-off-by: Jonathan Cameron drivers/iio/magnetometer/Kconfig | 11 + drivers/iio/magnetometer/Makefile | 1 + drivers/iio/magnetometer/mmc35240.c | 469 ++++++++++++++++++++++++++++++++++++ 3 files changed, 481 insertions(+) commit 5990dc9703679a6c9eef17ca042edb755541d6b1 Author: Irina Tirdea Date: Wed Apr 29 21:16:40 2015 +0300 iio: magn: bmc150_magn: add oversampling ratio Export the oversampling ratio so that the user can change the number of repetions for x/y/z axis. The sampling frequency is limited by the oversampling ratio. The available sampling frequencies might change depending on the values of oversampling_ratio. The specification can be downloaded from: http://ae-bst.resource.bosch.com/media/products/dokumente/bmc150/BST-BMC150-DS000-04.pdf. Signed-off-by: Irina Tirdea Signed-off-by: Jonathan Cameron drivers/iio/magnetometer/bmc150_magn.c | 133 ++++++++++++++++++++++++++++++++- 1 file changed, 129 insertions(+), 4 deletions(-) commit faaa44955dedc661f083636d816af90975a359ee Author: Irina Tirdea Date: Wed Apr 29 21:16:39 2015 +0300 iio: core: Introduce IIO_CHAN_INFO_OVERSAMPLING_RATIO Some magnetometers can perform a number of repetitions in HW for each measurement to increase accuracy. One example is Bosch BMC150: http://ae-bst.resource.bosch.com/media/products/dokumente/bmc150/BST-BMC150-DS000-04.pdf. Introduce an interface to set the oversampling ratio for these devices. Signed-off-by: Irina Tirdea Signed-off-by: Jonathan Cameron Documentation/ABI/testing/sysfs-bus-iio | 12 ++++++++++++ drivers/iio/industrialio-core.c | 1 + include/linux/iio/iio.h | 1 + 3 files changed, 14 insertions(+) commit 42a95584f31c5f11a669f0db72f6b6e9ff00b8d9 Author: Irina Tirdea Date: Wed Apr 29 21:16:38 2015 +0300 iio: magn: bmc150_magn: Add devicetree binding documentation Add binding documentation for Bosch BMC150 magnetometer. Signed-off-by: Irina Tirdea Signed-off-by: Jonathan Cameron .../bindings/iio/magnetometer/bmc150_magn.txt | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) commit c91746a2361d75bb8ded6ef4813a4a2dcdcd845e Author: Irina Tirdea Date: Wed Apr 29 21:16:37 2015 +0300 iio: magn: Add support for BMC150 magnetometer Add support for the Bosh BMC150 Magnetometer. The specification can be downloaded from: http://ae-bst.resource.bosch.com/media/products/dokumente/bmc150/BST-BMC150-DS000-04.pdf. The chip contains both an accelerometer and a magnetometer. This patch adds support only for the magnetometer part. The temperature compensation formulas are based on bmm050_api.c authored by contact@bosch.sensortec.com. Signed-off-by: Irina Tirdea Signed-off-by: Jonathan Cameron drivers/iio/magnetometer/Kconfig | 14 + drivers/iio/magnetometer/Makefile | 2 + drivers/iio/magnetometer/bmc150_magn.c | 984 +++++++++++++++++++++++++++++++++ 3 files changed, 1000 insertions(+) commit 9291766476f3b067c740fe9cc0b4cd78ace27409 Author: Geert Uytterhoeven Date: Tue May 5 18:32:36 2015 +0200 Staging: iio: 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: Jonathan Cameron Cc: linux-iio@vger.kernel.org Cc: devel@driverdev.osuosl.org Signed-off-by: Jonathan Cameron drivers/staging/iio/accel/Kconfig | 2 +- drivers/staging/iio/adc/Kconfig | 6 +++--- drivers/staging/iio/addac/Kconfig | 2 +- drivers/staging/iio/resolver/Kconfig | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) commit 8493585317b1fe1ab7a334faac71fb1e36fde508 Author: Geert Uytterhoeven Date: Tue May 5 18:32:23 2015 +0200 iio: 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: Jonathan Cameron Cc: linux-iio@vger.kernel.org Signed-off-by: Jonathan Cameron drivers/iio/humidity/Kconfig | 2 +- drivers/iio/magnetometer/Kconfig | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit 3dd477acbdd1f147f432a742afc5521168341461 Author: Tiberiu Breana Date: Mon Apr 27 18:34:01 2015 +0300 iio: light: Add threshold interrupt support for STK3310 Added interrupt support for proximity threshold events to the stk3310 driver. Signed-off-by: Tiberiu Breana Signed-off-by: Jonathan Cameron drivers/iio/light/stk3310.c | 255 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 253 insertions(+), 2 deletions(-) commit be9e6229d67696f94c2f2331a2e207beff9bfc7f Author: Tiberiu Breana Date: Mon Apr 27 18:34:00 2015 +0300 iio: light: Add support for Sensortek STK3310 Minimal implementation of an IIO driver for the Sensortek STK3310 ambient light and proximity sensor. The STK3311 model is also supported. Includes: - ACPI support; - read_raw and write_raw; - reading and setting configuration parameters for gain/scale and integration time for both ALS and PS. - power management Signed-off-by: Tiberiu Breana Signed-off-by: Jonathan Cameron drivers/iio/light/Kconfig | 11 ++ drivers/iio/light/Makefile | 1 + drivers/iio/light/stk3310.c | 471 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 483 insertions(+) commit 77232f791e0605521a978cbe7f79a93df24df374 Author: Daniel Vetter Date: Mon Apr 13 11:16:21 2015 +0200 vt: Don't check KD_GRAPHICS when binding/unbinding This was introduced in commit 6db4063c5b72b46e9793b0f141a7a3984ac6facf Author: Antonino A. Daplas Date: Mon Jun 26 00:27:12 2006 -0700 [PATCH] VT binding: Add sysfs control to the VT layer with the justification "In addition, if any of the consoles are in KD_GRAPHICS mode, binding and unbinding will not succeed. KD_GRAPHICS mode usually indicates that the underlying console hardware is used for other purposes other than displaying text (ie X). This feature should prevent binding/unbinding from interfering with a graphics application using the VT." I think we should lift this artificial restriction though: - KD_GRAPHICS doesn't get cleaned up automatically, which means it's easy to have terminals stuck in KD_GRAPHICS when hacking around on X. - X doesn't really care, especially with drm where kms already blocks fbdev (and hence fbcon) when there's an active compositor. - This is a root-only interface with a separate .config option and it's possible to hang your machine already anyway if you unload/reload drivers and don't know what you're doing. With this patch i915.ko module reloading works again reliably, something in the recent fedora upgrades broke things. Cc: Antonino A. Daplas Cc: Peter Hurley Cc: Imre Deak Signed-off-by: Daniel Vetter Acked-by: David Herrmann Signed-off-by: Greg Kroah-Hartman drivers/tty/vt/vt.c | 22 ++-------------------- 1 file changed, 2 insertions(+), 20 deletions(-) commit d364b5c3e446bbf9892edbb000bf4c358f86bd8b Author: Imre Deak Date: Wed Apr 1 21:06:16 2015 +0300 vt: fix console lock vs. kernfs s_active lock order Currently there is a lock order problem between the console lock and the kernfs s_active lock of the console driver's bind sysfs entry. When writing to the sysfs entry the lock order is first s_active then console lock, when unregistering the console driver via do_unregister_con_driver() the order is the opposite. See the below bugzilla reference for one instance of a lockdep backtrace. Fix this by unregistering the console driver from a deferred work, where we can safely drop the console lock while unregistering the device and corresponding sysfs entries (which in turn acquire s_active). Note that we have to keep the console driver slot in the registered_con_driver array reserved for the driver that's being unregistered until it's fully removed. Otherwise a concurrent call to do_register_con_driver could try to reuse the same slot and fail when registering the corresponding device with a minor index that's still in use. Note that the referenced bug report contains two dmesg logs with two distinct lockdep reports: [1] is about a locking scenario involving s_active, console_lock and the fb_notifier list lock, while [2] is about a locking scenario involving only s_active and console_lock. In [1] locking fb_notifier triggers the lockdep warning only because of its dependence on console_lock, otherwise case [1] is the same s_active<->console_lock dependency problem fixed by this patch. Before this change we have the following locking scenarios involving the 3 locks: a) via do_unregister_framebuffer()->...->do_unregister_con_driver(): 1. console lock 2. fb_notifier lock 3. s_active lock b) for example via give_up_console()->do_unregister_con_driver(): 1. console lock 2. s_active lock c) via vt_bind()/vt_unbind(): 1. s_active lock 2. console lock Since c) is the console bind sysfs entry's write code path we can't change the locking order there. We can only fix this issue by removing s_active's dependence on the other two locks in a) and b). We can do this only in the vt code which owns the corresponding sysfs entry, so that after the change we have: a) 1. console lock 2. fb_notifier lock b) 1. console lock c) 1. s_active lock 2. console lock d) in the new con_driver_unregister_callback(): 1. s_active lock [1] https://bugs.freedesktop.org/attachment.cgi?id=87716 [2] https://bugs.freedesktop.org/attachment.cgi?id=107602 v2: - get console_lock earlier in con_driver_unregister_callback(), so we protect the following console driver field assignments there - add code coment explaining the reason for deferring the sysfs entry removal - add a third paragraph to the commit message explaining why there are two distinct lockdep reports and that this issue is independent of fb/fbcon. (Peter Hurley) v3: - clarify further the third paragraph v4: - rebased on v4 of patch 1/3 Signed-off-by: Imre Deak Reviewed-by: Daniel Vetter Signed-off-by: Greg Kroah-Hartman drivers/tty/vt/vt.c | 61 ++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 51 insertions(+), 10 deletions(-) commit 80463501fe3a6cfdfb0aca92b1f2abbda61092a1 Author: Daniel Axtens Date: Tue Apr 14 15:28:46 2015 +1000 tty/hvc: remove celleb-only beat driver The beat hvc driver is only used by celleb. celleb has been dropped [1], so drop the drivers. [1] http://patchwork.ozlabs.org/patch/451730/ CC: Greg Kroah-Hartman CC: Jiri Slaby CC: Valentin Rothberg CC: mpe@ellerman.id.au CC: linuxppc-dev@lists.ozlabs.org Signed-off-by: Daniel Axtens Signed-off-by: Greg Kroah-Hartman drivers/tty/hvc/Kconfig | 7 --- drivers/tty/hvc/Makefile | 1 - drivers/tty/hvc/hvc_beat.c | 134 --------------------------------------------- 3 files changed, 142 deletions(-) commit 03ac6b3499c8a0b1fbb5c33ad6234a9e860f2614 Author: Valentin Rothberg Date: Sun Apr 12 18:35:18 2015 +0200 drivers/tty/nozomi.c: rename CONFIG_MAGIC The CONFIG_ prefix is reserved for Kconfig options in Make and CPP syntax. CONFIG_MAGIC is a file local CPP identifier so change the prefix to apply to Kconfig's naming convention. Signed-off-by: Valentin Rothberg Signed-off-by: Greg Kroah-Hartman drivers/tty/nozomi.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 360ee94b47a80b0e986c9e890f1862d29edf2c45 Author: Stephen Boyd Date: Fri Apr 10 16:11:05 2015 -0700 TTY: msm_smd_tty: Remove unused driver This code is no longer used now that mach-msm has been removed. Delete it. Cc: David Brown Cc: Bryan Huntsman Cc: Daniel Walker Signed-off-by: Stephen Boyd Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/Kconfig | 8 -- drivers/tty/serial/Makefile | 1 - drivers/tty/serial/msm_smd_tty.c | 232 --------------------------------------- 3 files changed, 241 deletions(-) commit 27a4c827c34ac4256a190cc9d24607f953c1c459 Author: Scot Doyle Date: Thu Mar 26 13:56:38 2015 +0000 fbcon: use the cursor blink interval provided by vt vt now provides a cursor blink interval via vc_data. Use this interval instead of the currently hardcoded 200 msecs. Store it in fbcon_ops to avoid locking the console in cursor_timer_handler(). Signed-off-by: Scot Doyle Acked-by: Pavel Machek Signed-off-by: Greg Kroah-Hartman drivers/video/console/fbcon.c | 10 +++++----- drivers/video/console/fbcon.h | 1 + 2 files changed, 6 insertions(+), 5 deletions(-) commit bd63364caa8df38bad2b25b11b2a1b849475cce5 Author: Scot Doyle Date: Thu Mar 26 13:54:39 2015 +0000 vt: add cursor blink interval escape sequence Add an escape sequence to specify the current console's cursor blink interval. The interval is specified as a number of milliseconds until the next cursor display state toggle, from 50 to 65535. /proc/loadavg did not show a difference with a one msec interval, but the lower bound is set to 50 msecs since slower hardware wasn't tested. Store the interval in the vc_data structure for later access by fbcon, initializing the value to fbcon's current hardcoded value of 200 msecs. Signed-off-by: Scot Doyle Acked-by: Pavel Machek Signed-off-by: Greg Kroah-Hartman drivers/tty/vt/vt.c | 9 +++++++++ include/linux/console_struct.h | 1 + 2 files changed, 10 insertions(+) commit ad909b3f8b162a61ce9e32726dadb380e51f8949 Author: Jon Hunter Date: Tue May 5 15:17:59 2015 +0100 serial: tegra: Correct error handling on DMA setup Function tegra_uart_dma_channel_allocate() does not check that dma_map_single() mapped the DMA buffer correctly. Add a check for this and appropriate error handling. Furthermore, if dmaengine_slave_config() (called by tegra_uart_dma_channel_allocate()) fails, then memory allocated/mapped is not freed/unmapped. Therefore, call tegra_uart_dma_channel_free() instead of just dma_release_channel() if dmaengine_slave_config() fails. Signed-off-by: Jon Hunter Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/serial-tegra.c | 51 +++++++++++++++++++++------------------ 1 file changed, 28 insertions(+), 23 deletions(-) commit d92aca3a76662d2da8fe843ab124c45b47ea127d Author: Jon Hunter Date: Tue May 5 15:17:58 2015 +0100 serial: tegra: Correct shutdown of UARTs There are two issues in the shutdown path of the UARTs which are: 1. The function tegra_uart_shutdown() calls tegra_uart_flush_buffer() to stop DMA TX transfers. However, tegra_uart_flush_buffer() is called after the DMA channels have already been freed and so actually does nothing. 2. The function that frees the DMA channels (tegra_uart_dma_channel_free()), unmaps the dma buffer before freeing the DMA channel and does not ensure the DMA has been stopped. Resolve this by fixing the code in tegra_uart_dma_channel_free() to ensure the DMA is stopped, free the DMA channel and then unmap the DMA buffer. Finally, remove the unnecessary call to tegra_uart_flush_buffer(). Signed-off-by: Jon Hunter Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/serial-tegra.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) commit 49433c802cb3405e62d3394b9c663f6c9ad329e5 Author: Jon Hunter Date: Tue May 5 15:17:57 2015 +0100 serial: tegra: Fix cookie used by TX channel The DMA cookie for the RX channel is being used by the TX channel. Therefore, fix driver to use the correct DMA cookie for the TX channel. Signed-off-by: Jon Hunter Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/serial-tegra.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0b0c1bdf7a197e7b58d0f8b1121c23b7b81ef84d Author: Jon Hunter Date: Tue May 5 15:17:56 2015 +0100 serial: tegra: Use unsigned types for RX and TX byte counts The function tty_insert_flip_string() takes an argument "size" which is of type size_t. This is an unsigned type. Update the count, rx_bytes_requested and tx_bytes_requested in the tegra serial driver to be unsigned integers so that an unsigned type is passed to tty_insert_flip_string(). Signed-off-by: Jon Hunter Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/serial-tegra.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) commit 853a699739fede12a5465be685f0f366276cb507 Author: Shardar Shariff Md Date: Tue May 5 15:17:55 2015 +0100 serial: tegra: handle race condition on uart rx side The tegra serial driver has two paths through which receive data is copied up to the tty layer. These are: 1. DMA completion callback 2. UART RX interrupt A UART RX interrupt occurs for either RX_TIMEOUT (data has been sitting in the Rx FIFO for more than 4 character times without being read because there is not enough data to reach the trigger level), End of Receive Data event (receiver detects that data stops coming in for more than 4 character times) or a receive error. In the RX interrupt path, the following happens ... - All RX DMA transfers are stopped - Any data in the DMA buffer and RX FIFO are copied up to the tty layer. - DMA is restarted/primed for the RX path In the DMA completion callback, the DMA buffer is copied up to the tty layer but there is no check to see if the RX interrupt could have occurred between the DMA interrupt firing the the DMA callback running. Hence, if a RX interrupt was to occur shortly after the DMA completion interrupt, it is possible that the RX interrupt path has already copied the DMA buffer before the DMA callback has been called. Therefore, when the DMA callback is called, if the DMA is already in-progress, then this indicates that the UART RX interrupt has already occurred and there is nothing to do in the DMA callback. This race condition can cause duplicated data to be received. Signed-off-by: Shardar Shariff Md [jonathanh@nvidia.com: Moved async_tx_ack() call to after check to see if DMA has completed because if the DMA is in progress we do not need to ACK yet. Changed the print from dev_info to dev_debug. Updated changelog to add more commentary on the race condition based upon feedback from author.] Signed-off-by: Jon Hunter Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/serial-tegra.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) commit db8e78474efd5006ece9ed15d804b78ec6e70702 Author: Shardar Shariff Md Date: Tue May 5 15:17:54 2015 +0100 serial: tegra: check the count and read if any from dma It is only necessary to read data from the dma buffer when the count value is non-zero and hence, tegra_uart_copy_rx_to_tty() so only be called when this is the case. Although, this was being tested for in two places, there is a third place where this was not tested. However, instead of adding another if-statement prior to calling tegra_uart_copy_rx_to_tty(), move the test inside the function. Signed-off-by: Shardar Shariff Md [jonathanh@nvidia.com: Re-worked patch to move the check for the count value inside the function tegra_uart_copy_rx_to_tty(). Updated changelog with more commentary.] Signed-off-by: Jon Hunter Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/serial-tegra.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit 11e71007a5652dce2528a5d2451fe2697c6a370a Author: Jon Hunter Date: Tue May 5 15:17:53 2015 +0100 serial: tegra: Add delay after enabling FIFO mode For all tegra devices (up to t210), there is a hardware issue that requires software to wait for 3 UART clock periods after enabling the TX fifo, otherwise data could be lost. Signed-off-by: Jon Hunter Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/serial-tegra.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 245c0278ab2a2e3d0360296710b4c285291469b5 Author: Jon Hunter Date: Tue May 5 15:17:52 2015 +0100 serial: tegra: Correct delay after TX flush For all tegra devices (up to t210), there is a hardware issue that requires software to wait for 32 UART clock periods for the flush to propagate otherwise TX data could be post. Add a helper function to wait for N UART clock periods and update delay following FIFO flush to be 32 UART clock cycles. Signed-off-by: Jon Hunter Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/serial-tegra.c | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) commit 7a7a7e6d9b8f78e73b45bdc436c5fbdbb7220c74 Author: Masahiro Yamada Date: Fri May 8 13:03:13 2015 +0900 serial: of_serial: do not set port.type twice The port.type has already been set by of_platform_serial_setup() called from a few lines above. Setting it to the same value is redundant. Signed-off-by: Masahiro Yamada Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/of_serial.c | 1 - 1 file changed, 1 deletion(-) commit 1ed7b84b28c1a808d70e0b189febca5bc7e58fd7 Author: Masahiro Yamada Date: Thu May 7 19:04:46 2015 +0900 serial: 8250: do not copy port.fifosize member twice The port.fifosize member has already been copied at 8 lines above. Maybe the compiler optimization can clean it away, but just in case. Signed-off-by: Masahiro Yamada Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250_core.c | 1 - 1 file changed, 1 deletion(-) commit 54585ba0362a121f4e3b2fcddf62f28dbd1cf1f5 Author: Masahiro Yamada Date: Thu May 7 18:55:40 2015 +0900 serial: xuartps: add __init to earlycon write method Early console functions are only used during the early boot stage. This change just saves a small amount of memory footprint. Signed-off-by: Masahiro Yamada Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/xilinx_uartps.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 59cfc45f17d6d1dda2990e6f5a94df24a18330b8 Author: Jan Kiszka Date: Tue May 5 08:26:27 2015 +0200 serial: 8250: Do nothing if nr_uarts=0 When nr_uarts was set to 0 (via config or 8250_core.nr_uarts), we crash early on x86 because serial8250_isa_init_ports dereferences base_ops which remains NULL. In fact, there is nothing to do for all the callers of serial8250_isa_init_ports if there are no uarts. Based on suggestions by Peter Hurley. Signed-off-by: Jan Kiszka Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250_core.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 24ee4df12216a0b1c9a0c22f83fbf366eb216d33 Author: Krzysztof Kozlowski Date: Sat May 2 00:40:05 2015 +0900 serial: samsung: 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: Greg Kroah-Hartman drivers/tty/serial/samsung.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 75781979f8d33ea02f51c0e447abf4db67497080 Author: Krzysztof Kozlowski Date: Sat May 2 00:40:04 2015 +0900 serial: samsung: Staticize local symbol Staticize symbols not exported and not used outside of file. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/samsung.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0cd4521fb6fdaf54273235cb12b094618ac6c30f Author: Krzysztof Kozlowski Date: Sat May 2 00:40:03 2015 +0900 serial: mxs: 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: Greg Kroah-Hartman drivers/tty/serial/mxs-auart.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 31ada047681834d0d6f04adfb305ff26b52d2823 Author: Krzysztof Kozlowski Date: Sat May 2 00:40:02 2015 +0900 serial: imx: 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: Greg Kroah-Hartman drivers/tty/serial/imx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 99fb215eea10b9c7e8ab172e5932d296e63c3f73 Author: Geert Uytterhoeven Date: Thu Apr 30 18:21:34 2015 +0200 serial: sh-sci: Remove obsolete comment about overrun detection The code it refers to was removed in commit b545e4f40613be70 ("serial: sh-sci: Compute overrun_bit without using baud rate algo"). Signed-off-by: Geert Uytterhoeven Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/sh-sci.c | 5 ----- 1 file changed, 5 deletions(-) commit afd66db6138989b54c1f7d3c688551b70482133a Author: Geert Uytterhoeven Date: Thu Apr 30 18:21:33 2015 +0200 serial: sh-sci: Don't set SCLSR bits in the SCxSR error mask error_mask is the union of all error indicating bits in the SCxSR register, while overrun_mask may apply to a different register (SCLSR), depending on the SCI variant. Hence overrun_mask should only be ORed into error_mask if it applies to the SCxSR register. Signed-off-by: Geert Uytterhoeven Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/sh-sci.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 2e0842a154f63ae222ececd6b6b1db4c75426516 Author: Geert Uytterhoeven Date: Thu Apr 30 18:21:32 2015 +0200 serial: sh-sci: Use the correct register for overrun checks The various SCI implementations use 3 different methods to signal overrun errors: - Bit SCI_ORER in register SCxSR on SCI, - Bit SCIFA_ORER in register SCxSR on SCIFA and SCIFB, and SCIF on SH7705/SH7720/SH7721, - Bit SCLSR_ORER in (optional!) register SCLSR on (H)SCIF. However: 1. sci_handle_fifo_overrun() a. handles (H)SCIF and SCIFA/SCIFB only, b. treats SCIF on SH7705/SH7720/SH7721 incorrectly, 2. sci_mpxed_interrupt() a. treats SCIF on SH7705/SH7720/SH7721 incorrectly, b. ignores that not all SCIFs have the SCLSR register, causing "Invalid register access" WARN()ings. To fix the above: 1. Determine and store the correct register enum during initialization, 2. Replace the duplicated buggy switch statements by using the stored register enum, 3. Add the missing existence check to sci_mpxed_interrupt(). Signed-off-by: Geert Uytterhoeven Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/sh-sci.c | 40 +++++++++++++++------------------------- 1 file changed, 15 insertions(+), 25 deletions(-) commit 75c249fd7cb9097c58e44bc82f61b1f72ef79b3a Author: Geert Uytterhoeven Date: Thu Apr 30 18:21:31 2015 +0200 serial: sh-sci: Replace hardcoded overrun bit values Add the missing overrun bit definition for (H)SCIF. Replace overrun_bit by overrun_mask, so we can use the existing defines instead of hardcoded values. Signed-off-by: Geert Uytterhoeven Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/sh-sci.c | 28 +++++++++++++--------------- drivers/tty/serial/sh-sci.h | 3 +++ 2 files changed, 16 insertions(+), 15 deletions(-) commit 2922598cd913dc1a3fc0d2e77463075b80ea769f Author: Geert Uytterhoeven Date: Thu Apr 30 18:21:30 2015 +0200 serial: sh-sci: Replace hardcoded values in SCxSR_*_CLEAR macros Add the missing overrun error bit in SCxSR on SCIFA/SCIFB and SCIF on SH7705/SH7720/SH7721. Document what the corresponding bit(s) on plain SCIF are used for. Sort the components of SCIF_DEFAULT_ERROR_MASK by reverse definition order. Replace the hardcoded values in the SCxSR_*_CLEAR macros by proper defines. Use bit masks (negations of sets of bits) to make it more obvious which bits are being cleared. Assembler output (on sh) was compared before and after this commit: - For the first branch of the big "#if defined(...) || ..." construct, the code has changed slightly, as 32-bit bitmasks can be loaded in a single instruction, unlike the old large 16-bit constants (the SCxSR register is 16 bit, so we don't care about the top 16 bits), - For the second branch, the generated code is identical. Signed-off-by: Geert Uytterhoeven Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/sh-sci.h | 44 ++++++++++++++++++++++++++++++++++---------- 1 file changed, 34 insertions(+), 10 deletions(-) commit d94a0a3857987c76c37a8095977fe554799ab69d Author: Geert Uytterhoeven Date: Thu Apr 30 18:21:29 2015 +0200 serial: sh-sci: Standardize on using the BIT() macro to define register bits Signed-off-by: Geert Uytterhoeven Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/sh-sci.h | 73 +++++++++++++++++++++++---------------------- include/linux/serial_sci.h | 19 ++++++------ 2 files changed, 47 insertions(+), 45 deletions(-) commit 31f90796c66876ea1894ea93e394b264e69dfdfc Author: Geert Uytterhoeven Date: Thu Apr 30 18:21:28 2015 +0200 serial: sh-sci: Document remaining FIFO Control Register bits Signed-off-by: Geert Uytterhoeven Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/sh-sci.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit c097abc33f70f0d59618b779cbca3df358c88a57 Author: Geert Uytterhoeven Date: Thu Apr 30 18:21:27 2015 +0200 serial: sh-sci: Add SCIFA/B SCPCR register definitions Add the register definitions for the Serial Port Control and Data Registers on SCIFA/SCIFB, which are needed for RTS/CTS pin control. Extracted from patches by Magnus Damm . Signed-off-by: Geert Uytterhoeven Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/sh-sci.c | 22 ++++++++++++++++++++++ drivers/tty/serial/sh-sci.h | 10 ++++++++++ 2 files changed, 32 insertions(+) commit 76735e9d558bb81b8c4c5246572b0fca27bfff4d Author: Geert Uytterhoeven Date: Thu Apr 30 18:21:26 2015 +0200 serial: sh-sci: Add (H)SCIF RTS/CTS pin data register bit definitions Add the missing register bit definitions to set the RTS pin and read the CTS pin on (H)SCIF. Extracted from patches by Magnus Damm . Signed-off-by: Geert Uytterhoeven Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/sh-sci.h | 2 ++ 1 file changed, 2 insertions(+) commit c27ffc1080179c3f3b85e1e194fa61f1c9923b62 Author: Geert Uytterhoeven Date: Thu Apr 30 18:21:25 2015 +0200 serial: sh-sci: Move private definitions to private header file Move private register definitions and enums from the public header file to the driver private "sh-sci.h" header file. The common Serial Control Register definitions are left in the public header file, as they're needed to fill in plat_sci_port.scscr on legacy systems not using DT. Signed-off-by: Geert Uytterhoeven Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/sh-sci.h | 83 +++++++++++++++++++++++++++++++++++++++++---- include/linux/serial_sci.h | 67 +----------------------------------- 2 files changed, 77 insertions(+), 73 deletions(-) commit f9ce5ccfd97a61ed318eb52cbb358f1aa826d82f Author: Greg Kroah-Hartman Date: Thu Apr 30 11:22:18 2015 +0200 tty: tty_ldsem.c: move assignment out of if () block We should not be doing assignments within an if () block so fix up the code to not do this. change was created using Coccinelle. CC: Jiri Slaby Signed-off-by: Greg Kroah-Hartman drivers/tty/tty_ldsem.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit e16cb0a72fc291847adf10ec26b7879c69f12327 Author: Greg Kroah-Hartman Date: Thu Apr 30 11:22:17 2015 +0200 tty: tty_buffer.c: move assignment out of if () block We should not be doing assignments within an if () block so fix up the code to not do this. change was created using Coccinelle. CC: Jiri Slaby Signed-off-by: Greg Kroah-Hartman drivers/tty/tty_buffer.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 485e148d11829025b9195cc8baf0ab6cc6a19558 Author: Greg Kroah-Hartman Date: Thu Apr 30 11:22:16 2015 +0200 tty: synclinkmp.c: move assignment out of if () block We should not be doing assignments within an if () block so fix up the code to not do this. change was created using Coccinelle. CC: Jiri Slaby Signed-off-by: Greg Kroah-Hartman drivers/tty/synclinkmp.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 3236133efedb39e9e6bac2bf242c181b58dc0928 Author: Greg Kroah-Hartman Date: Thu Apr 30 11:22:15 2015 +0200 tty: synclink_gt.c: move assignment out of if () block We should not be doing assignments within an if () block so fix up the code to not do this. change was created using Coccinelle. CC: Jiri Slaby Signed-off-by: Greg Kroah-Hartman drivers/tty/synclink_gt.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) commit a271ca37ac85efac89533799d53dc32325480db1 Author: Greg Kroah-Hartman Date: Thu Apr 30 11:22:14 2015 +0200 tty: synclink.c: move assignment out of if () block We should not be doing assignments within an if () block so fix up the code to not do this. change was created using Coccinelle. CC: Jiri Slaby Signed-off-by: Greg Kroah-Hartman drivers/tty/synclink.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) commit f2908f70c6ecb2993efb1594924f6e9962c00547 Author: Greg Kroah-Hartman Date: Thu Apr 30 11:22:13 2015 +0200 tty: mpsc.c: move assignment out of if () block We should not be doing assignments within an if () block so fix up the code to not do this. change was created using Coccinelle. CC: Jiri Slaby Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/mpsc.c | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) commit 9a4115ba10d9488e390ae93e43ef801961f537e8 Author: Greg Kroah-Hartman Date: Thu Apr 30 11:22:12 2015 +0200 tty: ioc4_serial.c: move assignment out of if () block We should not be doing assignments within an if () block so fix up the code to not do this. change was created using Coccinelle. CC: Pat Gefre CC: Jiri Slaby Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/ioc4_serial.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit a8d087d3dc7594ce295680eb7b9d2b332a0e4b9c Author: Greg Kroah-Hartman Date: Thu Apr 30 11:22:11 2015 +0200 tty: ioc3_serial.c: move assignment out of if () block We should not be doing assignments within an if () block so fix up the code to not do this. change was created using Coccinelle. CC: Pat Gefre CC: Jiri Slaby Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/ioc3_serial.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 01e51df54697c0ad6dbc5c7bc81b3af3f5329dc0 Author: Greg Kroah-Hartman Date: Thu Apr 30 11:22:10 2015 +0200 tty: icom.c: move assignment out of if () block We should not be doing assignments within an if () block so fix up the code to not do this. change was created using Coccinelle. CC: Jiri Slaby Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/icom.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit 873b4f189289660f7f35c1e65f52e7f437bf20c8 Author: Greg Kroah-Hartman Date: Thu Apr 30 11:22:09 2015 +0200 tty: hvcs.c: move assignment out of if () block We should not be doing assignments within an if () block so fix up the code to not do this. change was created using Coccinelle. CC: Jiri Slaby CC: Masanari Iida Signed-off-by: Greg Kroah-Hartman drivers/tty/hvc/hvcs.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b8dccc1b2e178c4d9702c30fadbadff0c093e3d7 Author: Greg Kroah-Hartman Date: Thu Apr 30 11:22:08 2015 +0200 tty: hvc_console.c: move assignment out of if () block We should not be doing assignments within an if () block so fix up the code to not do this. change was created using Coccinelle. CC: Jiri Slaby CC: Tomoki Sekiyama CC: Benjamin Herrenschmidt Signed-off-by: Greg Kroah-Hartman drivers/tty/hvc/hvc_console.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 9ff46047b6ee6821895b34359dd46dc8111706b8 Author: Greg Kroah-Hartman Date: Thu Apr 30 11:22:07 2015 +0200 tty: crisv10.c: move assignment out of if () block We should not be doing assignments within an if () block so fix up the code to not do this. change was created using Coccinelle. CC: Mikael Starvik CC: Jiri Slaby Signed-off-by: Greg Kroah-Hartman Acked-by: Jesper Nilsson drivers/tty/serial/crisv10.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 6d4e751e108b3a2333412b603911f8243e60a86e Author: Greg Kroah-Hartman Date: Thu Apr 30 11:22:06 2015 +0200 tty: consolemap.c: move assignment out of if () block We should not be doing assignments within an if () block so fix up the code to not do this. change was created using Coccinelle. CC: Jiri Slaby CC: Takashi Iwai CC: Imre Deak Signed-off-by: Greg Kroah-Hartman drivers/tty/vt/consolemap.c | 60 ++++++++++++++++++++++++++++----------------- 1 file changed, 37 insertions(+), 23 deletions(-) commit 2eeaf0bbca79412f15d00a08b930cbd9235fc3a2 Author: Greg Kroah-Hartman Date: Thu Apr 30 11:22:05 2015 +0200 tty: amiserial.c: move assignment out of if () block We should not be doing assignments within an if () block so fix up the code to not do this. change was created using Coccinelle. CC: Jiri Slaby Signed-off-by: Greg Kroah-Hartman drivers/tty/amiserial.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit ed334c0e3b4def138a27c84d7331c304f87a4701 Author: Greg Kroah-Hartman Date: Thu Apr 30 11:22:04 2015 +0200 tty: 68328serial.c: move assignment out of if () block We should not be doing assignments within an if () block so fix up the code to not do this. change was created using Coccinelle. CC: Jiri Slaby Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/68328serial.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit cb4595a2158371f8180b226fce42a47086585d5c Author: Qipan Li Date: Wed Apr 29 06:45:09 2015 +0000 serial: sirf: use uart_port's fifosize for fifo related operation In SiRF platform, there are different fifo size of uart and usp, with the fifosize configuration changes in different chips, we can not use port line to decide how to check FIFO full,empty and level. There is a direct mapping between FIFO HW register layout with fifo size, so move to use fifosize as the input to check fifo status. Signed-off-by: Qipan Li Signed-off-by: Barry Song Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/sirfsoc_uart.c | 24 ++++++++---------- drivers/tty/serial/sirfsoc_uart.h | 53 +++++++++++++++++---------------------- 2 files changed, 33 insertions(+), 44 deletions(-) commit a6ffe8966acbb66bbff03bb9273dfe88b04585c2 Author: Qipan Li Date: Wed Apr 29 06:45:08 2015 +0000 serial: sirf: use dynamic method allocate uart structure In different platform of SiRF SoCs, there is no same uart and usp-uart numbers, it is not convenient to use hard-coded ports array and port lines. here we drop the hard-coded ports table , and drop "cell-index". then move to use alias id to get line. for example: aliases { serial0 = &uart0; serial1 = &uart1; serial2 = &uart2; serial3 = &uart3; serial4 = &uart4; serial5 = &uart5; serial6 = &uart6; serial9 = &usp2; }; at the same, enlarge the max port number according to the chip with the most UART. Signed-off-by: Qipan Li Signed-off-by: Barry Song Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/sirfsoc_uart.c | 84 ++++++++++----------------------------- drivers/tty/serial/sirfsoc_uart.h | 8 +--- 2 files changed, 23 insertions(+), 69 deletions(-) commit 2c40b57dc82de8e1337666341efe41a0fe9dd741 Author: Eddie Huang Date: Tue Apr 28 21:40:33 2015 +0800 tty: serial: 8250_mtk: Add earlycon Add 8250 MTK UART driver to support earlycon device tree. Earlycon take effect by add "earlycon" in kernel boot argument add "linux,sdtout-path" property in device tree file Signed-off-by: Eddie Huang Tested-by: Sascha Hauer Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250_mtk.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 1c5841e832e2d7563c31de4946118e78baf573a3 Author: Eddie Huang Date: Tue Apr 28 21:40:32 2015 +0800 tty: serial: 8250: export early_serial8250_setup function 8250-like uart driver may call early_serial8250_setup to reuse 8250_early.c character output function. Signed-off-by: Eddie Huang Tested-by: Sascha Hauer Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250_early.c | 2 +- include/linux/serial_8250.h | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) commit 5903b1643f41ccc0cb3a0cde1d12b1c942914317 Author: Suman Tripathi Date: Wed May 6 00:51:11 2015 +0530 libahci: Add support to handle HOST_IRQ_STAT as edge trigger latch. This patch adds the support to handle HOST_IRQ_STAT as edge trigger latch. Signed-off-by: Suman Tripathi Signed-off-by: Tejun Heo drivers/ata/ahci.h | 2 ++ drivers/ata/libahci.c | 40 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) commit a129db89d865b1b91995989bcdee783358d774a5 Author: Suman Tripathi Date: Wed May 6 00:51:10 2015 +0530 libahci: Refactoring of ahci_single_irq_intr function. This patch refactors the ahci_single_irq_intr function and also rename it to ahci_single_level_irq_intr as it handles a level triggered latch. Signed-off-by: Suman tripathi Signed-off-by: Tejun Heo drivers/ata/libahci.c | 51 ++++++++++++++++++++++++++++++--------------------- 1 file changed, 30 insertions(+), 21 deletions(-) commit aa519be34f45954f33a6c20430deac8e544a180f Author: Akinobu Mita Date: Wed May 6 18:24:21 2015 +0900 usb: storage: fix module reference for scsi host While accessing a unusual usb storage (ums-alauda, ums-cypress, ...), the module reference count is not incremented. Because these drivers allocate scsi hosts with usb_stor_host_template defined in usb-storage module. So these drivers always can be unloaded. This fixes it by preparing scsi host template which is initialized at module_init() for each ums-* driver. In order to minimize the difference in ums-* drivers, introduce module_usb_stor_driver() helper macro which is same as module_usb_driver() except that it also initializes scsi host template. Signed-off-by: Akinobu Mita Cc: Vinayak Holikatti Cc: Dolev Raviv Cc: Sujit Reddy Thumma Cc: Subhash Jadavani Cc: Christoph Hellwig Cc: "James E.J. Bottomley" Cc: Matthew Dharm Cc: Greg Kroah-Hartman Cc: "David S. Miller" Cc: Hannes Reinecke Cc: linux-usb@vger.kernel.org Cc: usb-storage@lists.one-eyed-alien.net Cc: linux-scsi@vger.kernel.org Acked-by: Alan Stern Signed-off-by: Greg Kroah-Hartman drivers/usb/storage/alauda.c | 12 +++++++++--- drivers/usb/storage/cypress_atacb.c | 10 +++++++--- drivers/usb/storage/datafab.c | 12 +++++++++--- drivers/usb/storage/ene_ub6250.c | 11 ++++++++--- drivers/usb/storage/freecom.c | 12 +++++++++--- drivers/usb/storage/isd200.c | 11 ++++++++--- drivers/usb/storage/jumpshot.c | 11 ++++++++--- drivers/usb/storage/karma.c | 12 +++++++++--- drivers/usb/storage/onetouch.c | 12 +++++++++--- drivers/usb/storage/realtek_cr.c | 12 +++++++++--- drivers/usb/storage/scsiglue.c | 12 +++++++++++- drivers/usb/storage/scsiglue.h | 3 ++- drivers/usb/storage/sddr09.c | 12 +++++++++--- drivers/usb/storage/sddr55.c | 11 ++++++++--- drivers/usb/storage/shuttle_usbat.c | 12 +++++++++--- drivers/usb/storage/usb.c | 16 +++++++++++----- drivers/usb/storage/usb.h | 16 +++++++++++++++- 17 files changed, 150 insertions(+), 47 deletions(-) commit 1cb39e256410830833aaae9c5cec8b10a43cf022 Author: Krzysztof Kozlowski Date: Sat May 2 00:39:19 2015 +0900 usb: phy-ab8500-usb: 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: Greg Kroah-Hartman drivers/usb/phy/phy-ab8500-usb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit de5198815100a9bcb7b79b4baf2716c37d3fbeeb Author: Greg Kroah-Hartman Date: Thu Apr 30 11:33:08 2015 +0200 USB: xusbatm.c: move assignment out of if () block We should not be doing assignments within an if () block so fix up the code to not do this. change was created using Coccinelle. Signed-off-by: Greg Kroah-Hartman Reviewed-by: Felipe Balbi drivers/usb/atm/xusbatm.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit adde04c62886c668d2380186f5e60dc75113b5d0 Author: Greg Kroah-Hartman Date: Thu Apr 30 11:33:07 2015 +0200 USB: uss720.c: move assignment out of if () block We should not be doing assignments within an if () block so fix up the code to not do this. change was created using Coccinelle. CC: Andy Shevchenko Signed-off-by: Greg Kroah-Hartman Reviewed-by: Felipe Balbi drivers/usb/misc/uss720.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 2fcdbdfd77d80a6de6c625b84574b063cad29cc8 Author: Greg Kroah-Hartman Date: Thu Apr 30 11:33:06 2015 +0200 USB: usblp.c: move assignment out of if () block We should not be doing assignments within an if () block so fix up the code to not do this. change was created using Coccinelle. Acked-by: Pete Zaitcev Signed-off-by: Greg Kroah-Hartman Reviewed-by: Felipe Balbi drivers/usb/class/usblp.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) commit f354c8456507e552d86acce84a7abd9bf480c382 Author: Greg Kroah-Hartman Date: Thu Apr 30 11:33:05 2015 +0200 USB: usbatm.c: move assignment out of if () block We should not be doing assignments within an if () block so fix up the code to not do this. change was created using Coccinelle. CC: Duncan Sands Signed-off-by: Greg Kroah-Hartman Reviewed-by: Felipe Balbi drivers/usb/atm/usbatm.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 3383ee4c3abf2efa419ac9c78f097ea1087a4e8e Author: Greg Kroah-Hartman Date: Thu Apr 30 11:33:04 2015 +0200 USB: speedtch.c: move assignment out of if () block We should not be doing assignments within an if () block so fix up the code to not do this. change was created using Coccinelle. CC: Duncan Sands Signed-off-by: Greg Kroah-Hartman Reviewed-by: Felipe Balbi drivers/usb/atm/speedtch.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) commit b87f5671cc76a216465d4e8ba6551991c67e1429 Author: Greg Kroah-Hartman Date: Thu Apr 30 11:33:03 2015 +0200 USB: sisusb_con.c: move assignment out of if () block We should not be doing assignments within an if () block so fix up the code to not do this. change was created using Coccinelle. CC: Thomas Winischhofer Signed-off-by: Greg Kroah-Hartman Reviewed-by: Felipe Balbi drivers/usb/misc/sisusbvga/sisusb_con.c | 54 ++++++++++++++++++++++----------- 1 file changed, 36 insertions(+), 18 deletions(-) commit 187859f9ce217a56ba7873d1c32562c02ac516fa Author: Greg Kroah-Hartman Date: Thu Apr 30 11:33:02 2015 +0200 USB: sisusb.c: move assignment out of if () block We should not be doing assignments within an if () block so fix up the code to not do this. change was created using Coccinelle. CC: Thomas Winischhofer Signed-off-by: Greg Kroah-Hartman Reviewed-by: Felipe Balbi drivers/usb/misc/sisusbvga/sisusb.c | 39 ++++++++++++++++++++++++------------- 1 file changed, 26 insertions(+), 13 deletions(-) commit 8af9319198f04f10aa63f751fb0bfbf4f97be6eb Author: Greg Kroah-Hartman Date: Thu Apr 30 11:33:01 2015 +0200 USB: ohci-q.c: move assignment out of if () block We should not be doing assignments within an if () block so fix up the code to not do this. change was created using Coccinelle. Acked-by: Alan Stern Signed-off-by: Greg Kroah-Hartman Reviewed-by: Felipe Balbi drivers/usb/host/ohci-q.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 71f46340738322246285a40e25c1c3457a7d986b Author: Greg Kroah-Hartman Date: Thu Apr 30 11:33:00 2015 +0200 USB: ohci-hcd.c: move assignment out of if () block We should not be doing assignments within an if () block so fix up the code to not do this. change was created using Coccinelle. Acked-by: Alan Stern Signed-off-by: Greg Kroah-Hartman Reviewed-by: Felipe Balbi drivers/usb/host/ohci-hcd.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit d0d6bc89b6da035610ee5087593c1fdb35349249 Author: Greg Kroah-Hartman Date: Thu Apr 30 11:32:59 2015 +0200 USB: ohci-dbg.c: move assignment out of if () block We should not be doing assignments within an if () block so fix up the code to not do this. change was created using Coccinelle. Acked-by: Alan Stern Signed-off-by: Greg Kroah-Hartman Reviewed-by: Felipe Balbi drivers/usb/host/ohci-dbg.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 4c08ccf0dc50a7a4e8d1ddc41e9e6d5d25aacdc1 Author: Greg Kroah-Hartman Date: Thu Apr 30 11:32:58 2015 +0200 USB: mon_stat.c: move assignment out of if () block We should not be doing assignments within an if () block so fix up the code to not do this. change was created using Coccinelle. Signed-off-by: Greg Kroah-Hartman Reviewed-by: Felipe Balbi drivers/usb/mon/mon_stat.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit d4950d5dab78a78c90c0c5cd6113af28cbac516f Author: Greg Kroah-Hartman Date: Thu Apr 30 11:32:57 2015 +0200 USB: mon_main.c: move assignment out of if () block We should not be doing assignments within an if () block so fix up the code to not do this. change was created using Coccinelle. Signed-off-by: Greg Kroah-Hartman Reviewed-by: Felipe Balbi drivers/usb/mon/mon_main.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 0296951a62bb863008821b33343cff446fce4b84 Author: Greg Kroah-Hartman Date: Thu Apr 30 11:32:56 2015 +0200 USB: mon_bin.c: move assignment out of if () block We should not be doing assignments within an if () block so fix up the code to not do this. change was created using Coccinelle. Signed-off-by: Greg Kroah-Hartman Reviewed-by: Felipe Balbi drivers/usb/mon/mon_bin.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 925f0042cf2058cd3929c9c49593fba7750ffe8d Author: Greg Kroah-Hartman Date: Thu Apr 30 11:32:55 2015 +0200 USB: isp116x-hcd.c: move assignment out of if () block We should not be doing assignments within an if () block so fix up the code to not do this. change was created using Coccinelle. CC: Olav Kongas Signed-off-by: Greg Kroah-Hartman Reviewed-by: Felipe Balbi drivers/usb/host/isp116x-hcd.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 1ee7eead7071efc71f3dde214f215dfb820069e1 Author: Greg Kroah-Hartman Date: Thu Apr 30 11:32:54 2015 +0200 USB: inode.c: move assignment out of if () block We should not be doing assignments within an if () block so fix up the code to not do this. change was created using Coccinelle. CC: Al Viro CC: Peter Chen Acked-by: Alan Stern CC: Andrzej Pietrasiewicz CC: Paul Bolle Signed-off-by: Greg Kroah-Hartman Reviewed-by: Felipe Balbi drivers/usb/gadget/legacy/inode.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit d544d273f398a40f71012cfd165dba6ef73690c9 Author: Greg Kroah-Hartman Date: Thu Apr 30 11:32:53 2015 +0200 USB: hub.c: move assignment out of if () block We should not be doing assignments within an if () block so fix up the code to not do this. change was created using Coccinelle. Acked-by: Alan Stern CC: Dan Williams CC: Petr Mladek CC: Peter Chen Signed-off-by: Greg Kroah-Hartman Reviewed-by: Felipe Balbi drivers/usb/core/hub.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit c688d6211f57e1f6f8aaae5522a9223247febbd6 Author: Greg Kroah-Hartman Date: Thu Apr 30 11:32:52 2015 +0200 USB: hcd.c: move assignment out of if () block We should not be doing assignments within an if () block so fix up the code to not do this. change was created using Coccinelle. Acked-by: Alan Stern CC: Dan Williams CC: Antoine Tenart CC: Petr Mladek CC: Michal Sojka CC: "Rafael J. Wysocki" CC: Sergei Shtylyov Signed-off-by: Greg Kroah-Hartman Reviewed-by: Felipe Balbi drivers/usb/core/hcd.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 0a9abb1e15aa64fd79beb73441361e772daf234d Author: Greg Kroah-Hartman Date: Thu Apr 30 11:32:51 2015 +0200 USB: fusbh200-hcd.c: move assignment out of if () block We should not be doing assignments within an if () block so fix up the code to not do this. change was created using Coccinelle. CC: Sergei Shtylyov Acked-by: Alan Stern CC: Petr Mladek CC: Randy Dunlap CC: Masanari Iida Signed-off-by: Greg Kroah-Hartman Reviewed-by: Felipe Balbi drivers/usb/host/fusbh200-hcd.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 911fdb6ecad37cf64cbc46d839afb7973fc36a12 Author: Greg Kroah-Hartman Date: Thu Apr 30 11:32:50 2015 +0200 USB: ehci-dbg.c: move assignment out of if () block We should not be doing assignments within an if () block so fix up the code to not do this. change was created using Coccinelle. Acked-by: Alan Stern Signed-off-by: Greg Kroah-Hartman Reviewed-by: Felipe Balbi drivers/usb/host/ehci-dbg.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 424dd7dd9b48691c1bb57440493590c012199a95 Author: Nizam Haider Date: Wed Apr 29 16:19:33 2015 +0530 Usb: core: buffer: fixed the checkpatch warning Fixed two warnings sizeof name and Blank line after declaration Signed-off-by: Nizam Haider Signed-off-by: Greg Kroah-Hartman drivers/usb/core/buffer.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 34ef33f7da6b00900d3a896d33522a035a930245 Author: Geert Uytterhoeven Date: Tue Apr 28 14:04:07 2015 +0200 usb: phy: Remove the phy-rcar-gen2-usb driver The phy-rcar-gen2-usb driver, which supports legacy platform data only, is no longer used since commit a483dcbfa21f919c ("ARM: shmobile: lager: Remove legacy board support"). This driver was superseded by the DT-only phy-rcar-gen2 driver, which was introduced in commit 1233f59f745b237d ("phy: Renesas R-Car Gen2 PHY driver"). Signed-off-by: Geert Uytterhoeven Signed-off-by: Greg Kroah-Hartman drivers/usb/phy/Kconfig | 13 -- drivers/usb/phy/Makefile | 1 - drivers/usb/phy/phy-rcar-gen2-usb.c | 246 ------------------------ include/linux/platform_data/usb-rcar-gen2-phy.h | 22 --- 4 files changed, 282 deletions(-) commit e1099a69a6244baa7d24ce52627bab253a3b52ac Author: David Rientjes Date: Tue Apr 28 15:50:46 2015 -0700 android, lmk: avoid setting TIF_MEMDIE if process has already exited TIF_MEMDIE should not be set on a process if it does not have a valid ->mm, and this is protected by task_lock(). If TIF_MEMDIE gets set after the mm has detached, and the process fails to exit, then the oom killer will defer forever waiting for it to exit. Make sure that the mm is still valid before setting TIF_MEMDIE by way of mark_tsk_oom_victim(). Cc: "Arve Hjønnevåg" Cc: Riley Andrews Acked-by: Michal Hocko Signed-off-by: David Rientjes Signed-off-by: Greg Kroah-Hartman drivers/staging/android/lowmemorykiller.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) commit 56f40e521047ae8623ad5dcbb5a08ad91684cab6 Author: Sudip Mukherjee Date: Sat May 9 17:59:42 2015 +0530 staging: dgap: remove unused code dgap_sindex() is being only called from dgap_getword() which searches for either ' ' or '\t' or '\n'. this part of the code with '^' at the beginning is never used. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/dgap/dgap.c | 21 ++++----------------- 1 file changed, 4 insertions(+), 17 deletions(-) commit 1397e2fd065a87f623263e23028f3b252917121b Author: Sudip Mukherjee Date: Thu May 7 16:42:21 2015 +0530 staging: dgap: use remove function the remove callback will be called in two cases, 1) if the driver is removed and 2) if the pci device is removed. as of now all the board cleanups were being done in the module unload section so if the module is unloaded everything works. But if the pci device is removed then the loaded driver will be left in an inconsistent state. So moved the cleanups in the remove callback and since there was no reference of dgap_driver in remove_one(), so had to define the pci_driver in the function. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/dgap/dgap.c | 49 ++++++++++++++++++++++----------------------- 1 file changed, 24 insertions(+), 25 deletions(-) commit d1c9f3efc47f48bc93106b6bf3fd43f9915da46e Author: Sudip Mukherjee Date: Thu May 7 16:42:20 2015 +0530 staging: dgap: move function before remove move the cleanup function before the remove call as the next patch of the series is going to use that. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/dgap/dgap.c | 61 ++++++++++++++++++++++----------------------- 1 file changed, 30 insertions(+), 31 deletions(-) commit 76c807210aeaefc164dad49d98927f1a84668d36 Author: Julia Lawall Date: Fri May 8 23:36:46 2015 +0200 staging: lustre: cl_page: delete empty macros CS_PAGE_INC etc. do nothing, so remove them. The semantic patch that performs this transformation is as follows: (http://coccinelle.lip6.fr/) // @@ expression o,item,state; @@ ( - CS_PAGE_INC(o, item); | - CS_PAGE_DEC(o, item); | - CS_PAGESTATE_INC(o, state); | - CS_PAGESTATE_DEC(o, state); ) // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/obdclass/cl_page.c | 17 ----------------- 1 file changed, 17 deletions(-) commit 9d9a3d06db9fd5f8c5760db76e0147b7e0c27c0c Author: Julia Lawall Date: Fri May 8 23:36:45 2015 +0200 staging: lustre: cl_page: drop unneeded variable Drop variable made unnecessary by conversion of obd free functions to kfree. Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/obdclass/cl_page.c | 1 - 1 file changed, 1 deletion(-) commit d798a29dc4cbbdd31006f3b6e3f0b0589c712047 Author: Sudip Mukherjee Date: Wed May 6 18:16:18 2015 +0530 staging: lustre: llite: remove unuse variables there variables were not used anywhere and was showing as build warning. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/file.c | 2 -- drivers/staging/lustre/lustre/llite/llite_lib.c | 2 -- 2 files changed, 4 deletions(-) commit 99d56ff7c1c2ebfc8b54bcbdbce092714faefa3f Author: Oleg Drokin Date: Mon May 4 12:48:09 2015 -0400 staging/lustre: Always try kmalloc first for OBD_ALLOC_LARGE Create libcfs_kvzalloc and libcfs_kvzalloc_cpt that are designed to replace OBD_ALLOC_LARGE and OBD_CPT_ALLOC_LARGE. Not a drop-in replacement as they also take gfp flags armument for more flexibility. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman .../staging/lustre/include/linux/libcfs/libcfs.h | 4 ++ .../staging/lustre/lustre/include/obd_support.h | 24 ++------- drivers/staging/lustre/lustre/libcfs/Makefile | 1 + .../staging/lustre/lustre/libcfs/linux/linux-mem.c | 59 ++++++++++++++++++++++ 4 files changed, 67 insertions(+), 21 deletions(-) commit 640f7d6938a12f8f3f304d5e5e8680ab3cb5c8a5 Author: Arno Tiemersma Date: Sat May 9 22:27:16 2015 +0200 staging: rtl8192e: Change cpu_to_le16 to le16_to_cpu Since the function auth_parse returns a u16, and struct rtllib_authentication.status is defined as an __le16, it seems that return cpu_to_le16(a->status); should be return le16_to_cpu(a->status); This change silences the following sparse warnings: drivers/staging/rtl8192e/rtllib_softmac.c:1817:16: warning: cast from restricted __le16 drivers/staging/rtl8192e/rtllib_softmac.c:1817:16: warning: incorrect type in return expression (different base types) drivers/staging/rtl8192e/rtllib_softmac.c:1817:16: expected unsigned short drivers/staging/rtl8192e/rtllib_softmac.c:1817:16: got restricted __le16 [usertype] Signed-off-by: Arno Tiemersma Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtllib_softmac.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e32e1928146662d1cb7c4dc4385dcdcb0357340e Author: Gujulan Elango, Hari Prasath (H.) Date: Fri May 8 11:04:43 2015 +0000 staging: rtl8192e: use time_before() macro This patch replaces the condition check for time elapsed with a simplified time_before() macro Signed-off-by: Hari Prasath Gujulan Elango Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_ps.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit b68cecbedd5a66112b06ca22dce1ea06473b37b9 Author: Gujulan Elango, Hari Prasath (H.) Date: Fri May 8 07:58:43 2015 +0000 staging: rtl8192e: Use time_after macro This patch replaces a condition check for time elapsed with a simple time_after macro Signed-off-by: Hari Prasath Gujulan Elango Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_ps.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 94e057d7c4f01b1593773c7e8c5226cae23cf2c7 Author: Gujulan Elango, Hari Prasath (H.) Date: Mon May 4 09:29:05 2015 +0000 staging: rtl8192e: fix wrong assignment This patch addresses a spatch warning on assigning a negative value to a unsigned integer.Similar patch has been submitted by Larry Finger earlier to silence the same spatch warning in another file. Signed-off-by: Hari Prasath Gujulan Elango Acked-by: Dan Carpenter Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b42031533560175fdda58a52e192693a2ad3b103 Author: Jaime Arrocha Date: Wed May 6 17:13:41 2015 -0500 staging: comedi: coding style identation error fix Errors found by checkpatch.pl. ERROR: code indent should use tabs where possible /drivers/staging/comedi/drivers/das16m1.c:49 /drivers/staging/comedi/drivers/das16m1.c:50 Signed-off-by: Jaime Arrocha Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/das16m1.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 12cba5c9df234076d4643e78c131343422d609eb Author: Arno Tiemersma Date: Sun May 3 22:49:02 2015 +0200 staging: comedi: daqboard2000: Use preferred comment style Use the preferred block comment style for the copyright and driver description header comments. Signed-off-by: Arno Tiemersma Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/daqboard2000.c | 196 +++++++++++++------------- 1 file changed, 98 insertions(+), 98 deletions(-) commit cbba89f8a8de369d7d3e54c9d7a1f00fc4a358d7 Author: Ian Abbott Date: Tue May 5 18:47:29 2015 +0100 staging: comedi: gsc_hpdi: use a better MODULE_DESCRIPTION() Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/gsc_hpdi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 86357d8ed81ba967eca4047574e1b73b8d93772f Author: Ian Abbott Date: Tue May 5 18:47:28 2015 +0100 staging: comedi: gsc_hpdi: use PCI_DEVICE_SUB() Use the `PCI_DEVICE_SUB()` macro in the initializer of the PCI module device table `gsc_hpdi_pci_table[]`. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/gsc_hpdi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c5f2579ed3eae33d41299958af6af56c0c8a01ba Author: Ian Abbott Date: Tue May 5 18:47:27 2015 +0100 staging: comedi: gsc_hpdi: prefer using the BIT() macro Fix all the checkpatch issues "CHECK: Prefer using the BIT macro". Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/gsc_hpdi.c | 82 +++++++++++++++---------------- 1 file changed, 41 insertions(+), 41 deletions(-) commit 7b7afb469cfe9eb384028f86ce4ec2fb8946f772 Author: Ian Abbott Date: Tue May 5 18:47:26 2015 +0100 staging: comedi: gsc_hpdi: usleep_range is preferred over udelay Fix checkpatch issue: "CHECK: usleep_range is preferred over udelay; see Documentation/timers/timers-howto.txt". `udelay()` is only called once from a place where sleeping is allowed. Replace it with a call to `usleep_range()` with a reasonable upper limit. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/gsc_hpdi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e899a4165cffe3aa802f813c624e90ce7ca23189 Author: Ian Abbott Date: Tue May 5 18:47:25 2015 +0100 staging: comedi: gsc_hpdi: remove multiple board type support The code for determining which board type matches the PCI device ID is over-the-top since only a single board type is supported. Also, the method it uses match the PCI device ID to a board type is a little antiquated. Most comedi drivers for PCI devices use `driver_data` from the probed PCI device as an index into an array of supported board types, but "gsc_hpdi" uses a `for` loop to find an element of `hpdi_boards[]` that matches the PCI device. The only thing in `hpdi_boards[]` not used for finding a matching PCI device is the `name` member of `struct hpdi_board` which points to a string literal and ends up getting assigned to `dev->board_name`. Get rid of the multiple board type support, and set `dev->board_name` to point to the original string literal pointed to by `hpdi_boards[0].name`. This string is visible to userspace. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/gsc_hpdi.c | 35 +------------------------------ 1 file changed, 1 insertion(+), 34 deletions(-) commit dc05a7d70b824cbe26f00914e5f94e0b68d5aeda Author: Ian Abbott Date: Tue May 5 18:47:24 2015 +0100 staging: comedi: gsc_hpdi: tidy up comments Use the usual style for block comments. Squash double spaces after comment opening sequence. Move some comments after opening braces to following line. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/gsc_hpdi.c | 59 ++++++++++++++++++------------- 1 file changed, 34 insertions(+), 25 deletions(-) commit 4a72a7af462de09a2f6ef2bafd08878062b3cb5d Author: Greg Kroah-Hartman Date: Sun May 10 14:54:38 2015 +0200 staging: remove i2o subsystem This subsystem isn't used anymore, and the hardware isn't around. It's been in staging for a while, and it's time for it to now be removed. Cc: Alan Cox Signed-off-by: Greg Kroah-Hartman drivers/staging/Kconfig | 2 - drivers/staging/Makefile | 1 - drivers/staging/i2o/Kconfig | 120 --- drivers/staging/i2o/Makefile | 16 - drivers/staging/i2o/README | 98 -- drivers/staging/i2o/README.ioctl | 394 -------- drivers/staging/i2o/bus-osm.c | 177 ---- drivers/staging/i2o/config-osm.c | 90 -- drivers/staging/i2o/core.h | 69 -- drivers/staging/i2o/debug.c | 473 --------- drivers/staging/i2o/device.c | 592 ----------- drivers/staging/i2o/driver.c | 381 ------- drivers/staging/i2o/exec-osm.c | 612 ------------ drivers/staging/i2o/i2o.h | 988 ------------------ drivers/staging/i2o/i2o_block.c | 1228 ----------------------- drivers/staging/i2o/i2o_block.h | 103 -- drivers/staging/i2o/i2o_config.c | 1162 --------------------- drivers/staging/i2o/i2o_proc.c | 2049 -------------------------------------- drivers/staging/i2o/i2o_scsi.c | 814 --------------- drivers/staging/i2o/iop.c | 1254 ----------------------- drivers/staging/i2o/memory.c | 312 ------ drivers/staging/i2o/pci.c | 500 ---------- 22 files changed, 11435 deletions(-) commit 920ce39f6c204d4ce4d8acebe7522f0dfa95f662 Author: Jason Low Date: Fri May 8 14:31:50 2015 -0700 sched, timer: Fix documentation for 'struct thread_group_cputimer' Fix the docbook build bug reported by Fengguang Wu. Reported-by: Fengguang Wu Signed-off-by: Jason Low Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Waiman.Long@hp.com Cc: aswin@hp.com Cc: bp@alien8.de Cc: dave@stgolabs.net Cc: fweisbec@gmail.com Cc: mgorman@suse.de Cc: oleg@redhat.com Cc: paulmck@linux.vnet.ibm.com Cc: preeti@linux.vnet.ibm.com Cc: riel@redhat.com Cc: rostedt@goodmis.org Cc: scott.norton@hp.com Cc: torvalds@linux-foundation.org Cc: umgwanakikbuti@gmail.com Link: http://lkml.kernel.org/r/1431120710.5136.12.camel@j-VirtualBox Signed-off-by: Ingo Molnar include/linux/sched.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 8b455e6577f325289cf2d1b20f493b2fe5c6c316 Author: Brian Gerst Date: Sat May 9 11:36:53 2015 -0400 x86/asm/entry/irq: Clean up IRQn_VECTOR macros Since the ISA irqs are in a single block, use ISA_IRQ_VECTOR(irq) instead of individual macros. Signed-off-by: Brian Gerst Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1431185813-15413-5-git-send-email-brgerst@gmail.com Signed-off-by: Ingo Molnar arch/x86/include/asm/irq_vectors.h | 18 +----------------- arch/x86/kernel/apic/io_apic.c | 4 ++-- arch/x86/kernel/apic/vector.c | 2 +- arch/x86/kernel/i8259.c | 8 ++++---- arch/x86/kernel/irqinit.c | 4 ++-- 5 files changed, 10 insertions(+), 26 deletions(-) commit 51bb92843edcba5a58138cad25ced97923048add Author: Brian Gerst Date: Sat May 9 11:36:52 2015 -0400 x86/asm/entry: Remove SYSCALL_VECTOR Use IA32_SYSCALL_VECTOR for both compat and native. Signed-off-by: Brian Gerst Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1431185813-15413-4-git-send-email-brgerst@gmail.com Signed-off-by: Ingo Molnar arch/x86/include/asm/irq_vectors.h | 3 --- arch/x86/kernel/traps.c | 4 ++-- arch/x86/lguest/boot.c | 4 ++-- 3 files changed, 4 insertions(+), 7 deletions(-) commit c6e692f95dacddff5f3607717fb2246c60bbb714 Author: Brian Gerst Date: Sat May 9 11:36:51 2015 -0400 x86/asm/entry/irq: Remove unused invalidate_interrupt prototypes The invalidate_interrupt* functions no longer exist. Signed-off-by: Brian Gerst Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1431185813-15413-3-git-send-email-brgerst@gmail.com Signed-off-by: Ingo Molnar arch/x86/include/asm/hw_irq.h | 35 ----------------------------------- 1 file changed, 35 deletions(-) commit c5bde906d2916d214d78cd8b67d665bf09867033 Author: Brian Gerst Date: Sat May 9 11:36:50 2015 -0400 x86/irq: Merge irq_regs & irq_stat Move irq_regs and irq_stat definitions to irq.c. Signed-off-by: Brian Gerst Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1431185813-15413-2-git-send-email-brgerst@gmail.com Signed-off-by: Ingo Molnar arch/x86/kernel/irq.c | 6 ++++++ arch/x86/kernel/irq_32.c | 6 ------ arch/x86/kernel/irq_64.c | 6 ------ 3 files changed, 6 insertions(+), 12 deletions(-) commit f3022c6ca06e0b8d8e77c94da1af5f41210e52ba Author: Maxime Ripard Date: Sun May 3 09:25:41 2015 +0200 ARM: sunxi: dt: Split the SPI pinctrl groups The pinctrl groups for SPI until now were also adding the chip selects in the SPI pinctrl group. This was causing a few issues, since a board was forced to use a random number of chipselects, even though it might use one of these chip selects for another pin. The number of chipselects defined was also not the same from one group to another because of different needs at the time these groups have been introduced, resulting in no clear view from the board DTS on what exactly is being muxed, which even might change in the future. Solve this by creating different pinctrl groups for the chipselects and the standard SPI pins (CLK, MOSI and MISO) so that we fix both issues. Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun4i-a10-cubieboard.dts | 3 +- arch/arm/boot/dts/sun4i-a10-marsboard.dts | 3 +- arch/arm/boot/dts/sun4i-a10.dtsi | 36 ++++++++++++++++++--- arch/arm/boot/dts/sun7i-a20-bananapi.dts | 4 ++- arch/arm/boot/dts/sun7i-a20-bananapro.dts | 4 ++- arch/arm/boot/dts/sun7i-a20-hummingbird.dts | 3 +- arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts | 6 ++-- arch/arm/boot/dts/sun7i-a20.dtsi | 43 ++++++++++++++++++++++--- 8 files changed, 87 insertions(+), 15 deletions(-) commit 8358aada4e4ba8fddbf792329e11dc4a9660c51f Author: Maxime Ripard Date: Sun May 3 11:54:35 2015 +0200 ARM: sunxi: dt: Fix whitespace errors A few lines (probably copy pasted) have an indentation mixing tabs and spaces that triggers a checkpatch warning. Fix those, and while we're at it, fix the space-indented sections. Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun4i-a10.dtsi | 10 +++++----- arch/arm/boot/dts/sun5i-a13.dtsi | 12 ++++++------ arch/arm/boot/dts/sun5i.dtsi | 2 +- arch/arm/boot/dts/sun6i-a31.dtsi | 10 +++++----- arch/arm/boot/dts/sun7i-a20.dtsi | 18 +++++++++--------- 5 files changed, 26 insertions(+), 26 deletions(-) commit d8cacaa34f80e52c64610abe0666104efce8c8e1 Author: Maxime Ripard Date: Sun May 3 11:53:07 2015 +0200 ARM: sunxi: DT: Fix lines over 80 characters A few lines in our DTSIs are over the 80 characters limit, making checkpatch complain about that. If possible (and relevant), wrap these lines to 80 characters. Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun4i-a10.dtsi | 12 ++++++++---- arch/arm/boot/dts/sun5i-a10s.dtsi | 29 ++++++++++++++++----------- arch/arm/boot/dts/sun5i-a13.dtsi | 19 +++++++++++------- arch/arm/boot/dts/sun5i.dtsi | 3 ++- arch/arm/boot/dts/sun6i-a31.dtsi | 30 +++++++++++++++++----------- arch/arm/boot/dts/sun7i-a20.dtsi | 41 ++++++++++++++++++++++++++------------- arch/arm/boot/dts/sun8i-a23.dtsi | 6 ++++-- arch/arm/boot/dts/sun9i-a80.dtsi | 2 +- 8 files changed, 91 insertions(+), 51 deletions(-) commit c0c2eb247606d8b43386af55b4744fed3f2c0a7b Author: Maxime Ripard Date: Sun May 3 10:01:45 2015 +0200 ARM: sunxi: dt: Remove the FSF address The FSF address triggers a warning on checkpatch, saying that the FSF license is already present in the Linux source code, and that it has already changed in the past. Remove it from our DT, as suggested. Signed-off-by: Maxime Ripard arch/arm/boot/dts/axp209.dtsi | 5 ----- arch/arm/boot/dts/sun4i-a10-a1000.dts | 5 ----- arch/arm/boot/dts/sun4i-a10-ba10-tvbox.dts | 5 ----- arch/arm/boot/dts/sun4i-a10-chuwi-v7-cw0825.dts | 5 ----- arch/arm/boot/dts/sun4i-a10-cubieboard.dts | 5 ----- arch/arm/boot/dts/sun4i-a10-gemei-g9.dts | 5 ----- arch/arm/boot/dts/sun4i-a10-hackberry.dts | 5 ----- arch/arm/boot/dts/sun4i-a10-hyundai-a7hd.dts | 5 ----- arch/arm/boot/dts/sun4i-a10-inet97fv2.dts | 5 ----- arch/arm/boot/dts/sun4i-a10-jesurun-q5.dts | 5 ----- arch/arm/boot/dts/sun4i-a10-marsboard.dts | 5 ----- arch/arm/boot/dts/sun4i-a10-mini-xplus.dts | 5 ----- arch/arm/boot/dts/sun4i-a10-mk802.dts | 5 ----- arch/arm/boot/dts/sun4i-a10-mk802ii.dts | 5 ----- arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts | 5 ----- arch/arm/boot/dts/sun4i-a10-pcduino.dts | 5 ----- arch/arm/boot/dts/sun4i-a10.dtsi | 5 ----- arch/arm/boot/dts/sun5i-a10s-auxtek-t004.dts | 5 ----- arch/arm/boot/dts/sun5i-a10s-mk802.dts | 5 ----- arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts | 5 ----- arch/arm/boot/dts/sun5i-a10s-r7-tv-dongle.dts | 5 ----- arch/arm/boot/dts/sun5i-a10s.dtsi | 5 ----- arch/arm/boot/dts/sun5i-a13-hsg-h702.dts | 5 ----- arch/arm/boot/dts/sun5i-a13-olinuxino-micro.dts | 5 ----- arch/arm/boot/dts/sun5i-a13-olinuxino.dts | 5 ----- arch/arm/boot/dts/sun5i-a13-utoo-p66.dts | 5 ----- arch/arm/boot/dts/sun5i-a13.dtsi | 5 ----- arch/arm/boot/dts/sun5i.dtsi | 5 ----- arch/arm/boot/dts/sun6i-a31-app4-evb1.dts | 5 ----- arch/arm/boot/dts/sun6i-a31-colombus.dts | 5 ----- arch/arm/boot/dts/sun6i-a31-hummingbird.dts | 5 ----- arch/arm/boot/dts/sun6i-a31-i7.dts | 5 ----- arch/arm/boot/dts/sun6i-a31-m9.dts | 5 ----- arch/arm/boot/dts/sun6i-a31.dtsi | 5 ----- arch/arm/boot/dts/sun6i-a31s-cs908.dts | 5 ----- arch/arm/boot/dts/sun6i-a31s.dtsi | 5 ----- arch/arm/boot/dts/sun7i-a20-bananapi.dts | 5 ----- arch/arm/boot/dts/sun7i-a20-bananapro.dts | 5 ----- arch/arm/boot/dts/sun7i-a20-cubieboard2.dts | 5 ----- arch/arm/boot/dts/sun7i-a20-cubietruck.dts | 5 ----- arch/arm/boot/dts/sun7i-a20-hummingbird.dts | 5 ----- arch/arm/boot/dts/sun7i-a20-i12-tvbox.dts | 5 ----- arch/arm/boot/dts/sun7i-a20-m3.dts | 5 ----- arch/arm/boot/dts/sun7i-a20-olinuxino-lime.dts | 5 ----- arch/arm/boot/dts/sun7i-a20-olinuxino-lime2.dts | 5 ----- arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts | 5 ----- arch/arm/boot/dts/sun7i-a20-orangepi-mini.dts | 5 ----- arch/arm/boot/dts/sun7i-a20-orangepi.dts | 5 ----- arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts | 5 ----- arch/arm/boot/dts/sun7i-a20-pcduino3.dts | 5 ----- arch/arm/boot/dts/sun7i-a20-wexler-tab7200.dts | 5 ----- arch/arm/boot/dts/sun7i-a20.dtsi | 5 ----- arch/arm/boot/dts/sun8i-a23-ippo-q8h-v1.2.dts | 5 ----- arch/arm/boot/dts/sun8i-a23-ippo-q8h-v5.dts | 5 ----- arch/arm/boot/dts/sun8i-a23.dtsi | 5 ----- arch/arm/boot/dts/sun9i-a80-optimus.dts | 5 ----- arch/arm/boot/dts/sun9i-a80.dtsi | 5 ----- arch/arm/boot/dts/sunxi-common-regulators.dtsi | 5 ----- 58 files changed, 290 deletions(-) commit 3e3b34685ac1a96b3c7f9c085aea053f7e11fee6 Merge: 4d95b72f 62f64ae Author: David S. Miller Date: Sat May 9 22:26:06 2015 -0400 Merge branch 'pktgen-next' Jesper Dangaard Brouer says: ==================== The following series introduce some pktgen changes Patch01: Cleanup my own work when I introduced NO_TIMESTAMP. Patch02: Took over patch from Alexei, and addressed my own concerns, as Alexie is too busy with other work, and this will provide an easy tool for measuring ingress path performance, which is a hot topic ATM. Changes were primarily user interface related. Introduced a separate "xmit_mode" setting, instead of stealing one of the dev flags like Alexei did. ==================== Signed-off-by: David S. Miller commit 62f64aed622b6055b5fc447e3e421c9351563fc8 Author: Alexei Starovoitov Date: Thu May 7 16:35:32 2015 +0200 pktgen: introduce xmit_mode '' Introduce xmit_mode 'netif_receive' for pktgen which generates the packets using familiar pktgen commands, but feeds them into netif_receive_skb() instead of ndo_start_xmit(). Default mode is called 'start_xmit'. It is designed to test netif_receive_skb and ingress qdisc performace only. Make sure to understand how it works before using it for other rx benchmarking. Sample script 'pktgen.sh': \#!/bin/bash function pgset() { local result echo $1 > $PGDEV result=`cat $PGDEV | fgrep "Result: OK:"` if [ "$result" = "" ]; then cat $PGDEV | fgrep Result: fi } [ -z "$1" ] && echo "Usage: $0 DEV" && exit 1 ETH=$1 PGDEV=/proc/net/pktgen/kpktgend_0 pgset "rem_device_all" pgset "add_device $ETH" PGDEV=/proc/net/pktgen/$ETH pgset "xmit_mode netif_receive" pgset "pkt_size 60" pgset "dst 198.18.0.1" pgset "dst_mac 90:e2:ba:ff:ff:ff" pgset "count 10000000" pgset "burst 32" PGDEV=/proc/net/pktgen/pgctrl echo "Running... ctrl^C to stop" pgset "start" echo "Done" cat /proc/net/pktgen/$ETH Usage: $ sudo ./pktgen.sh eth2 ... Result: OK: 232376(c232372+d3) usec, 10000000 (60byte,0frags) 43033682pps 20656Mb/sec (20656167360bps) errors: 10000000 Raw netif_receive_skb speed should be ~43 million packet per second on 3.7Ghz x86 and 'perf report' should look like: 37.69% kpktgend_0 [kernel.vmlinux] [k] __netif_receive_skb_core 25.81% kpktgend_0 [kernel.vmlinux] [k] kfree_skb 7.22% kpktgend_0 [kernel.vmlinux] [k] ip_rcv 5.68% kpktgend_0 [pktgen] [k] pktgen_thread_worker If fib_table_lookup is seen on top, it means skb was processed by the stack. To benchmark netif_receive_skb only make sure that 'dst_mac' of your pktgen script is different from receiving device mac and it will be dropped by ip_rcv Signed-off-by: Alexei Starovoitov Signed-off-by: Jesper Dangaard Brouer Signed-off-by: David S. Miller Documentation/networking/pktgen.txt | 7 ++++ net/core/pktgen.c | 82 ++++++++++++++++++++++++++++++++++--- 2 files changed, 84 insertions(+), 5 deletions(-) commit f1f00d8ff60ca056db3805406507483eeb3794d7 Author: Jesper Dangaard Brouer Date: Thu May 7 16:34:51 2015 +0200 pktgen: adjust flag NO_TIMESTAMP to be more pktgen compliant Allow flag NO_TIMESTAMP to turn timestamping on again, like other flags, with a negation of the flag like !NO_TIMESTAMP. Also document the option flag NO_TIMESTAMP. Fixes: afb84b626184 ("pktgen: add flag NO_TIMESTAMP to disable timestamping") Signed-off-by: Jesper Dangaard Brouer Signed-off-by: David S. Miller Documentation/networking/pktgen.txt | 2 ++ net/core/pktgen.c | 3 +++ 2 files changed, 5 insertions(+) commit 4d95b72f61432cb2cb5bc0f65018d0a6c2201c81 Merge: 43996fd 59324cf Author: David S. Miller Date: Sat May 9 22:15:31 2015 -0400 Merge branch 'netns-scalability' Nicolas Dichtel says: ==================== netns: ease netlink use with a lot of netns This idea was informally discussed in Ottawa / netdev0.1. The goal is to ease the use/scalability of netns, from a userland point of view. Today, users need to open one netlink socket per family and per netns. Thus, when the number of netns inscreases (for example 5K or more), the number of sockets needed to manage them grows a lot. The goal of this series is to be able to monitor netlink events, for a specified family, for a set of netns, with only one netlink socket. For this purpose, a netlink socket option is added: NETLINK_LISTEN_ALL_NSID. When this option is set on a netlink socket, this socket will receive netlink notifications from all netns that have a nsid assigned into the netns where the socket has been opened. The nsid is sent to userland via an anscillary data. Here is an example with a patched iproute2. vxlan10 is created in the current netns (netns0, nsid 0) and then moved to another netns (netns1, nsid 1): $ ip netns exec netns0 ip monitor all-nsid label [nsid 0][NSID]nsid 1 (iproute2 netns name: netns1) [nsid 0][NEIGH]??? lladdr 00:00:00:00:00:00 REACHABLE,PERMANENT [nsid 0][LINK]5: vxlan10@NONE: mtu 1450 qdisc noop state DOWN group default link/ether 92:33:17:e6:e7:1d brd ff:ff:ff:ff:ff:ff [nsid 0][LINK]Deleted 5: vxlan10@NONE: mtu 1450 qdisc noop state DOWN group default link/ether 92:33:17:e6:e7:1d brd ff:ff:ff:ff:ff:ff [nsid 1][NSID]nsid 0 (iproute2 netns name: netns0) [nsid 1][LINK]5: vxlan10@NONE: mtu 1450 qdisc noop state DOWN group default link/ether 92:33:17:e6:e7:1d brd ff:ff:ff:ff:ff:ff link-netnsid 0 [nsid 1][ADDR]5: vxlan10 inet 192.168.0.249/24 brd 192.168.0.255 scope global vxlan10 valid_lft forever preferred_lft forever [nsid 1][ROUTE]local 192.168.0.249 dev vxlan10 table local proto kernel scope host src 192.168.0.249 [nsid 1][ROUTE]ff00::/8 dev vxlan10 table local metric 256 pref medium [nsid 1][ROUTE]2001:123::/64 dev vxlan10 proto kernel metric 256 pref medium [nsid 1][LINK]5: vxlan10@NONE: mtu 1450 qdisc noqueue state UNKNOWN group default link/ether 92:33:17:e6:e7:1d brd ff:ff:ff:ff:ff:ff link-netnsid 0 [nsid 1][ROUTE]broadcast 192.168.0.255 dev vxlan10 table local proto kernel scope link src 192.168.0.249 [nsid 1][ROUTE]192.168.0.0/24 dev vxlan10 proto kernel scope link src 192.168.0.249 [nsid 1][ROUTE]broadcast 192.168.0.0 dev vxlan10 table local proto kernel scope link src 192.168.0.249 [nsid 1][ROUTE]fe80::/64 dev vxlan10 proto kernel metric 256 pref medium ==================== Signed-off-by: David S. Miller commit 59324cf35aba5336b611074028777838a963d03b Author: Nicolas Dichtel Date: Thu May 7 11:02:53 2015 +0200 netlink: allow to listen "all" netns More accurately, listen all netns that have a nsid assigned into the netns where the netlink socket is opened. For this purpose, a netlink socket option is added: NETLINK_LISTEN_ALL_NSID. When this option is set on a netlink socket, this socket will receive netlink notifications from all netns that have a nsid assigned into the netns where the socket has been opened. The nsid is sent to userland via an anscillary data. With this patch, a daemon needs only one socket to listen many netns. This is useful when the number of netns is high. Because 0 is a valid value for a nsid, the field nsid_is_set indicates if the field nsid is valid or not. skb->cb is initialized to 0 on skb allocation, thus we are sure that we will never send a nsid 0 by error to the userland. Signed-off-by: Nicolas Dichtel Acked-by: Thomas Graf Signed-off-by: David S. Miller include/linux/netlink.h | 2 ++ include/net/net_namespace.h | 2 ++ include/uapi/linux/netlink.h | 1 + net/core/net_namespace.c | 10 ++++++++- net/netlink/af_netlink.c | 52 +++++++++++++++++++++++++++++++++++++++----- 5 files changed, 61 insertions(+), 6 deletions(-) commit cc3a572fe6cf586f478546215bc5d3694357d71e Author: Nicolas Dichtel Date: Thu May 7 11:02:52 2015 +0200 netlink: rename private flags and states These flags and states have the same prefix (NETLINK_) that netlink socket options. To avoid confusion and to be able to name a flag like a socket option, let's use an other prefix: NETLINK_[S|F]_. Note: a comment has been fixed, it was talking about NETLINK_RECV_NO_ENOBUFS socket option instead of NETLINK_NO_ENOBUFS. Signed-off-by: Nicolas Dichtel Acked-by: Thomas Graf Signed-off-by: David S. Miller net/netlink/af_netlink.c | 59 ++++++++++++++++++++++++------------------------ 1 file changed, 30 insertions(+), 29 deletions(-) commit 95f38411df055a0ecefe3a3d119d98241087d5ca Author: Nicolas Dichtel Date: Thu May 7 11:02:51 2015 +0200 netns: use a spin_lock to protect nsid management Before this patch, nsid were protected by the rtnl lock. The goal of this patch is to be able to find a nsid without needing to hold the rtnl lock. The next patch will introduce a netlink socket option to listen to all netns that have a nsid assigned into the netns where the socket is opened. Thus, it's important to call rtnl_net_notifyid() outside the spinlock, to avoid a recursive lock (nsid are notified via rtnl). This was the main reason of the previous patch. Signed-off-by: Nicolas Dichtel Signed-off-by: David S. Miller net/core/net_namespace.c | 57 +++++++++++++++++++++++++++++++++++++----------- 1 file changed, 44 insertions(+), 13 deletions(-) commit 3138dbf881274cb20d9aa1b307861f689e820fbe Author: Nicolas Dichtel Date: Thu May 7 11:02:50 2015 +0200 netns: notify new nsid outside __peernet2id() There is no functional change with this patch. It will ease the refactoring of the locking system that protects nsids and the support of the netlink socket option NETLINK_LISTEN_ALL_NSID. Signed-off-by: Nicolas Dichtel Acked-by: Thomas Graf Signed-off-by: David S. Miller net/core/net_namespace.c | 41 +++++++++++++++++++++++++++-------------- 1 file changed, 27 insertions(+), 14 deletions(-) commit 7a0877d4b438886b72be61632eaa774d13262f70 Author: Nicolas Dichtel Date: Thu May 7 11:02:49 2015 +0200 netns: rename peernet2id() to peernet2id_alloc() In a following commit, a new function will be introduced to only lookup for a nsid (no allocation if the nsid doesn't exist). To avoid confusion, the existing function is renamed. Signed-off-by: Nicolas Dichtel Acked-by: Thomas Graf Signed-off-by: David S. Miller drivers/net/vxlan.c | 2 +- include/net/net_namespace.h | 2 +- net/core/net_namespace.c | 4 ++-- net/core/rtnetlink.c | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) commit cab3c8ec8d57ef48ed754ee7acf2b9bdce80fa5f Author: Nicolas Dichtel Date: Thu May 7 11:02:48 2015 +0200 netns: always provide the id to rtnl_net_fill() The goal of this commit is to prepare the rework of the locking of nsnid protection. After this patch, rtnl_net_notifyid() will not call anymore __peernet2id(), ie no idr_* operation into this function. Signed-off-by: Nicolas Dichtel Acked-by: Thomas Graf Signed-off-by: David S. Miller net/core/net_namespace.c | 31 +++++++++++-------------------- 1 file changed, 11 insertions(+), 20 deletions(-) commit 109582af18b9aade9385ea6609a792f80a7d70ca Author: Nicolas Dichtel Date: Thu May 7 11:02:47 2015 +0200 netns: returns always an id in __peernet2id() All callers of this function expect a nsid, not an error. Thus, returns NETNSA_NSID_NOT_ASSIGNED in case of error so that callers don't have to convert the error to NETNSA_NSID_NOT_ASSIGNED. Signed-off-by: Nicolas Dichtel Acked-by: Thomas Graf Signed-off-by: David S. Miller net/core/net_namespace.c | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) commit 43996fdd9b5409dea7bdc73d8fe4e22ca25ccc39 Merge: a5898ea 10d089b Author: David S. Miller Date: Sat May 9 22:12:17 2015 -0400 Merge tag 'linux-can-next-for-4.2-20150506' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can-next Marc Kleine-Budde says: ==================== pull-request: can-next 2015-05-06 this is a pull request of a seven patches for net-next/master. Andreas Gröger contributes two patches for the janz-ican3 driver. In the first patch, the documentation for already existing sysfs entries is added, the second patch adds support for another module/firmware variant. A patch by Shawn Landden makes the padding in the struct can_frame explicit. The next 4 patches target the flexcan driver, the first one is by David Jander adding some documentation, the reaming three by me add more documentation and two small code cleanups. ==================== Signed-off-by: David S. Miller commit a5898ea09aaded8a8236b12f3920f4e6f9b8fc13 Author: Harini Katakam Date: Wed May 6 22:27:18 2015 +0530 net: macb: Add change_mtu callback with jumbo support Add macb_change_mtu callback; if jumbo frame support is present allow mtu size changes upto (jumbo max length allowed - headers). Signed-off-by: Harini Katakam Reviewed-by: Punnaiah Choudary Kalluri Signed-off-by: David S. Miller drivers/net/ethernet/cadence/macb.c | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) commit 98b5a0f4a2282fb82907bee467636b8114677472 Author: Harini Katakam Date: Wed May 6 22:27:17 2015 +0530 net: macb: Add support for jumbo frames Enable jumbo frame support for Zynq Ultrascale+ MPSoC. Update the NWCFG register and descriptor length masks accordingly. Jumbo max length register should be set according to support in SoC; it is set to 10240 for Zynq Ultrascale+ MPSoC. Signed-off-by: Harini Katakam Reviewed-by: Punnaiah Choudary Kalluri Signed-off-by: David S. Miller drivers/net/ethernet/cadence/macb.c | 22 ++++++++++++++++++---- drivers/net/ethernet/cadence/macb.h | 9 +++++++++ 2 files changed, 27 insertions(+), 4 deletions(-) commit 7b61f9c132accab315014c38c9a33e38620c90bd Author: Harini Katakam Date: Wed May 6 22:27:16 2015 +0530 net: macb: Add compatible string for Zynq Ultrascale+ MPSoC Add compatible string and config structure for Zynq Ultrascale+ MPSoC Signed-off-by: Harini Katakam Reviewed-by: Punnaiah Choudary Kalluri Signed-off-by: David S. Miller drivers/net/ethernet/cadence/macb.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 988d6f07fc0a29e392035ba56e3bcfaf7b397d95 Author: Harini Katakam Date: Wed May 6 22:27:15 2015 +0530 devicetree: Add compatible string for Zynq Ultrascale+ MPSoC Add "cdns,zynqmp-gem" to be used for Zynq Ultrascale+ MPSoC. Signed-off-by: Harini Katakam Reviewed-by: Punnaiah Choudary Kalluri Signed-off-by: David S. Miller Documentation/devicetree/bindings/net/macb.txt | 1 + 1 file changed, 1 insertion(+) commit 790ba4566c1a709462550463b222d23b6f352b47 Author: Jason Baron Date: Wed May 6 15:52:23 2015 +0000 tcp: set SOCK_NOSPACE under memory pressure Under tcp memory pressure, calling epoll_wait() in edge triggered mode after -EAGAIN, can result in an indefinite hang in epoll_wait(), even when there is sufficient memory available to continue making progress. The problem is that when __sk_mem_schedule() returns 0 under memory pressure, we do not set the SOCK_NOSPACE flag in the tcp write paths (tcp_sendmsg() or do_tcp_sendpages()). Then, since SOCK_NOSPACE is used to trigger wakeups when incoming acks create sufficient new space in the write queue, all outstanding packets are acked, but we never wake up with the the EPOLLOUT that we are expecting from epoll_wait(). This issue is currently limited to epoll() when used in edge trigger mode, since 'tcp_poll()', does in fact currently set SOCK_NOSPACE. This is sufficient for poll()/select() and epoll() in level trigger mode. However, in edge trigger mode, epoll() is relying on the write path to set SOCK_NOSPACE. EPOLL(7) says that in edge-trigger mode we can only call epoll_wait() after read/write return -EAGAIN. Thus, in the case of the socket write, we are relying on the fact that tcp_sendmsg()/network write paths are going to issue a wakeup for us at some point in the future when we get -EAGAIN. Normally, epoll() edge trigger works fine when we've exceeded the sk->sndbuf because in that case we do set SOCK_NOSPACE. However, when we return -EAGAIN from the write path b/c we are over the tcp memory limits and not b/c we are over the sndbuf, we are never going to get another wakeup. I can reproduce this issue, using SO_SNDBUF, since __sk_mem_schedule() will return 0, or failure more readily with SO_SNDBUF: 1) create socket and set SO_SNDBUF to N 2) add socket as edge trigger 3) write to socket and block in epoll on -EAGAIN 4) cause tcp mem pressure via: echo "" > net.ipv4.tcp_mem The fix here is simply to set SOCK_NOSPACE in sk_stream_wait_memory() when the socket is non-blocking. Note that SOCK_NOSPACE, in addition to waking up outstanding waiters is also used to expand the size of the sk->sndbuf. However, we will not expand it by setting it in this case because tcp_should_expand_sndbuf(), ensures that no expansion occurs when we are under tcp memory pressure. Note that we could still hang if sk->sk_wmem_queue is 0, when we get the -EAGAIN. In this case the SOCK_NOSPACE bit will not help, since we are waiting for and event that will never happen. I believe that this case is harder to hit (and did not hit in my testing), in that over the tcp 'soft' memory limits, we continue to guarantee a minimum write buffer size. Perhaps, we could return -ENOSPC in this case, or maybe we simply issue a wakeup in this case, such that we keep retrying the write. Note that this case is not specific to epoll() ET, but rather would affect blocking sockets as well. So I view this patch as bringing epoll() edge-trigger into sync with the current poll()/select()/epoll() level trigger and blocking sockets behavior. Signed-off-by: Jason Baron Acked-by: Eric Dumazet Signed-off-by: David S. Miller net/core/stream.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 3d23a05c75c7e2f45efb4f2550ce17a150c88b2d Author: Claudiu Manoil Date: Wed May 6 18:07:30 2015 +0300 gianfar: Enable changing mac addr when if up Use device flag IFF_LIVE_ADDR_CHANGE to signal that the device supports changing the hardware address when the device is running. This allows eth_mac_addr() to change the mac address also when the network device's interface is open. This capability is required by certain applications, like bonding mode 6 (Adaptive Load Balancing). Signed-off-by: Claudiu Manoil Signed-off-by: David S. Miller drivers/net/ethernet/freescale/gianfar.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) commit bc602280871cdedc906f622b036f5799f16c13c2 Author: Claudiu Manoil Date: Wed May 6 18:07:29 2015 +0300 gianfar: Move TxFIFO underrun handling to reset path Handle TxFIFO underrun exceptions outside the fast path. A controller reset is more reliable in this exceptional case, as opposed to re-enabling on-the-fly the Tx DMA. As the controller reset is handled outside the fast path by the reset_gfar() workqueue handler, the locking scheme on the Tx path is significantly simplified. Because the Tx processing (xmit queues and tx napi) is disabled during controller reset, tstat access from xmit does not require locking. So the scope of the txlock on the processing path is now reduced to num_txbdfree, which is shared only between process context (xmit) and softirq (clean_tx_ring). As a result, the txlock must not guard against interrupt context, and the spin_lock_irqsave() from xmit can be replaced by spin_lock_bh(). Likewise, the locking has been downgraded for clean_tx_ring(). Signed-off-by: Claudiu Manoil Signed-off-by: David S. Miller drivers/net/ethernet/freescale/gianfar.c | 40 ++++++++------------------------ 1 file changed, 10 insertions(+), 30 deletions(-) commit 39d726b76c3981598b73790c4908bc290e2dc326 Merge: 0e00a0f ac67eb2 Author: David S. Miller Date: Sat May 9 17:35:05 2015 -0400 Merge branch 'bpf_seccomp' Daniel Borkmann says: ==================== BPF updates This set gets rid of BPF special handling in seccomp filter preparation and provides generic infrastructure from BPF side, which eventually also allows for classic BPF JITs to add support for seccomp filters. ==================== Signed-off-by: David S. Miller commit ac67eb2c5347bd9976308c0e0cf1d9e7ca690342 Author: Daniel Borkmann Date: Wed May 6 16:12:30 2015 +0200 seccomp, filter: add and use bpf_prog_create_from_user from seccomp Seccomp has always been a special candidate when it comes to preparation of its filters in seccomp_prepare_filter(). Due to the extra checks and filter rewrite it partially duplicates code and has BPF internals exposed. This patch adds a generic API inside the BPF code code that seccomp can use and thus keep it's filter preparation code minimal and better maintainable. The other side-effect is that now classic JITs can add seccomp support as well by only providing a BPF_LDX | BPF_W | BPF_ABS translation. Tested with seccomp and BPF test suites. Signed-off-by: Daniel Borkmann Cc: Nicolas Schichan Cc: Alexei Starovoitov Cc: Kees Cook Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller include/linux/filter.h | 12 +++++------- kernel/seccomp.c | 42 ++++++++++++----------------------------- net/core/filter.c | 51 ++++++++++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 66 insertions(+), 39 deletions(-) commit 658da9379d0e1aa1e3e40c9b795357ada818b1c8 Author: Daniel Borkmann Date: Wed May 6 16:12:29 2015 +0200 net: filter: add __GFP_NOWARN flag for larger kmem allocs When seccomp BPF was added, it was discussed to add __GFP_NOWARN flag for their configuration path as f.e. up to 32K allocations are more prone to fail under stress. As we're going to reuse BPF API, add __GFP_NOWARN flags where larger kmalloc() and friends allocations could fail. It doesn't make much sense to pass around __GFP_NOWARN everywhere as an extra argument only for seccomp while we just as well could run into similar issues for socket filters, where it's not desired to have a user application throw a WARN() due to allocation failure. Signed-off-by: Daniel Borkmann Cc: Nicolas Schichan Cc: Alexei Starovoitov Cc: Kees Cook Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller net/core/filter.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit d9e12f42e58da475379b9080708b94f2095904af Author: Nicolas Schichan Date: Wed May 6 16:12:28 2015 +0200 seccomp: simplify seccomp_prepare_filter and reuse bpf_prepare_filter Remove the calls to bpf_check_classic(), bpf_convert_filter() and bpf_migrate_runtime() and let bpf_prepare_filter() take care of that instead. seccomp_check_filter() is passed to bpf_prepare_filter() so that it gets called from there, after bpf_check_classic(). We can now remove exposure of two internal classic BPF functions previously used by seccomp. The export of bpf_check_classic() symbol, previously known as sk_chk_filter(), was there since pre git times, and no in-tree module was using it, therefore remove it. Joint work with Daniel Borkmann. Signed-off-by: Nicolas Schichan Signed-off-by: Daniel Borkmann Cc: Alexei Starovoitov Cc: Kees Cook Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller include/linux/filter.h | 4 --- kernel/seccomp.c | 68 ++++++++++++++++---------------------------------- net/core/filter.c | 8 +++--- 3 files changed, 26 insertions(+), 54 deletions(-) commit 4ae92bc77ac8e620f7c8d59b5882a4cb0d1c4ef1 Author: Nicolas Schichan Date: Wed May 6 16:12:27 2015 +0200 net: filter: add a callback to allow classic post-verifier transformations This is in preparation for use by the seccomp code, the rationale is not to duplicate additional code within the seccomp layer, but instead, have it abstracted and hidden within the classic BPF API. As an interim step, this now also makes bpf_prepare_filter() visible (not as exported symbol though), so that seccomp can reuse that code path instead of reimplementing it. Joint work with Daniel Borkmann. Signed-off-by: Nicolas Schichan Signed-off-by: Daniel Borkmann Cc: Alexei Starovoitov Cc: Kees Cook Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller include/linux/filter.h | 6 ++++++ net/core/filter.c | 18 +++++++++++++++--- 2 files changed, 21 insertions(+), 3 deletions(-) commit 0e00a0f73f9c7f5e9f02d064ed0165a3aeeb2de5 Merge: 82ae9c6 bbbe8c8 Author: David S. Miller Date: Sat May 9 17:27:25 2015 -0400 Merge tag 'mac80211-next-for-davem-2015-05-06' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next Johannes Berg says: ==================== Lots of updates for net-next for this cycle. As usual, we have a lot of small fixes and cleanups, the bigger items are: * proper mac80211 rate control locking, to fix some random crashes (this required changing other locking as well) * mac80211 "fast-xmit", a mechanism to reduce, in most cases, the amount of code we execute while going from ndo_start_xmit() to the driver * this also clears the way for properly supporting S/G and checksum and segmentation offloads ==================== Signed-off-by: David S. Miller commit 82ae9c6060c6dbaf103273a5c51b8f58b951d9a2 Merge: b063bc5 e520af4 Author: David S. Miller Date: Sat May 9 16:42:32 2015 -0400 Merge branch 'tcp-more-reliable-window-probes' Eric Dumazet says: ==================== tcp: more reliable window probes This series address a problem caused by small rto_min timers in DC, leading to either timer storms or early flow terminations. We also add two new SNMP counters for proper monitoring : TCPWinProbe and TCPKeepAlive v2: added TCPKeepAlive counter, as suggested by Yuchung & Neal ==================== Signed-off-by: David S. Miller commit e520af48c7e5acae5f17f82a79ba7ab7cf156f3b Author: Eric Dumazet Date: Wed May 6 14:26:25 2015 -0700 tcp: add TCPWinProbe and TCPKeepAlive SNMP counters Diagnosing problems related to Window Probes has been hard because we lack a counter. TCPWinProbe counts the number of ACK packets a sender has to send at regular intervals to make sure a reverse ACK packet opening back a window had not been lost. TCPKeepAlive counts the number of ACK packets sent to keep TCP flows alive (SO_KEEPALIVE) Signed-off-by: Eric Dumazet Signed-off-by: Yuchung Cheng Acked-by: Neal Cardwell Acked-by: Nandita Dukkipati Signed-off-by: David S. Miller include/net/tcp.h | 2 +- include/uapi/linux/snmp.h | 2 ++ net/ipv4/proc.c | 2 ++ net/ipv4/tcp_output.c | 13 +++++++------ net/ipv4/tcp_timer.c | 2 +- 5 files changed, 13 insertions(+), 8 deletions(-) commit 21c8fe9915276d923f8c1e43434fd6d37a3b9aef Author: Eric Dumazet Date: Wed May 6 14:26:24 2015 -0700 tcp: adjust window probe timers to safer values With the advent of small rto timers in datacenter TCP, (ip route ... rto_min x), the following can happen : 1) Qdisc is full, transmit fails. TCP sets a timer based on icsk_rto to retry the transmit, without exponential backoff. With low icsk_rto, and lot of sockets, all cpus are servicing timer interrupts like crazy. Intent of the code was to retry with a timer between 200 (TCP_RTO_MIN) and 500ms (TCP_RESOURCE_PROBE_INTERVAL) 2) Receivers can send zero windows if they don't drain their receive queue. TCP sends zero window probes, based on icsk_rto current value, with exponential backoff. With /proc/sys/net/ipv4/tcp_retries2 being 15 (or even smaller in some cases), sender can abort in less than one or two minutes ! If receiver stops the sender, it obviously doesn't care of very tight rto. Probability of dropping the ACK reopening the window is not worth the risk. Lets change the base timer to be at least 200ms (TCP_RTO_MIN) for these events (but not normal RTO based retransmits) A followup patch adds a new SNMP counter, as it would have helped a lot diagnosing this issue. Signed-off-by: Eric Dumazet Signed-off-by: Yuchung Cheng Acked-by: Neal Cardwell Signed-off-by: David S. Miller include/net/tcp.h | 27 ++++++++++++++++++++++----- net/ipv4/tcp_input.c | 2 +- net/ipv4/tcp_output.c | 2 +- 3 files changed, 24 insertions(+), 7 deletions(-) commit b063bc5ea77b1c1c0e7798f641f53504d0f64bf8 Author: Richard Alpe Date: Wed May 6 13:58:56 2015 +0200 tipc: send explicit not supported error in nl compat The legacy netlink API treated EPERM (permission denied) as "operation not supported". Reported-by: Tomi Ollila Signed-off-by: Richard Alpe Reviewed-by: Erik Hugne Reviewed-by: Ying Xue Signed-off-by: David S. Miller net/tipc/netlink_compat.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 670f4f8818ee54d0c1831e3165dadd5b8a3f713e Author: Richard Alpe Date: Wed May 6 13:58:55 2015 +0200 tipc: add broadcast link window set/get to nl api Add the ability to get or set the broadcast link window through the new netlink API. The functionality was unintentionally missing from the new netlink API. Adding this means that we also fix the breakage in the old API when coming through the compat layer. Fixes: 37e2d4843f9e (tipc: convert legacy nl link prop set to nl compat) Reported-by: Tomi Ollila Signed-off-by: Richard Alpe Reviewed-by: Erik Hugne Reviewed-by: Ying Xue Signed-off-by: David S. Miller net/tipc/bcast.c | 21 ++++++++++++++++++ net/tipc/bcast.h | 1 + net/tipc/link.c | 66 ++++++++++++++++++++++++++++++-------------------------- 3 files changed, 58 insertions(+), 30 deletions(-) commit c3d6fb85b2ed6a57b57b322a470b3b4eefb34fb7 Author: Richard Alpe Date: Wed May 6 13:58:54 2015 +0200 tipc: fix default link prop regression in nl compat Default link properties can be set for media or bearer. This functionality was missed when introducing the NL compatibility layer. This patch implements this functionality in the compat netlink layer. It works the same way as it did in the old API. We search for media and bearers matching the "link name". If we find a matching media or bearer the link tolerance, priority or window is used as default for new links on that media or bearer. Fixes: 37e2d4843f9e (tipc: convert legacy nl link prop set to nl compat) Reported-by: Tomi Ollila Signed-off-by: Richard Alpe Reviewed-by: Erik Hugne Reviewed-by: Ying Xue Signed-off-by: David S. Miller net/tipc/bearer.c | 2 +- net/tipc/netlink_compat.c | 135 ++++++++++++++++++++++++++++++++++++++-------- 2 files changed, 114 insertions(+), 23 deletions(-) commit c035e183ebfe6905dd0d31f7fe356cc3cfe00893 Author: Hariprasad Shenai Date: Wed May 6 19:48:37 2015 +0530 cxgb4: Initialize RSS mode for all Ports Implements t4_init_rss_mode() to initialize the rss_mode for all the ports. If Tunnel All Lookup isn't specified in the global RSS Configuration, then we need to specify a default Ingress Queue for any ingress packets which aren't hashed. We'll use our first ingress queue. Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4.h | 3 ++ drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 37 +++++++++++++++---- drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 47 +++++++++++++++++++++++++ 3 files changed, 80 insertions(+), 7 deletions(-) commit b2a6c326b252fe86482ae2f256409ba96bafc7b5 Merge: 1a676d2 029e933 Author: David S. Miller Date: Sat May 9 16:27:04 2015 -0400 Merge branch 'be2net' Sathya Perla says: ==================== be2net: patch-set The following patch-set has two new feature additions, and a few minor fixes and cleanups. Pls consider applying to the net-next tree. Thanks. v2 changes: a) dropped the "don't enable pause by default" patch b) described how the "spoof check" works in patch 1's commit log c) I had to update our email addresses from "@emulex" to "@avagotech". I'll send a separate patch updating the maintainers Patch 1 adds support for the "spoofchk" knob for VFs. When it is enabled, "spoof checking" is done for both MAC-address and VLAN. For each VF, the HW ensures that the source MAC address (or vlan) of every outgoing packet of the VF exists in the MAC-list (or vlan-list) configured for RX filtering for that VF. If not, the packet is dropped and an error is reported to the driver in the TX completion. Patch 2 improves interrupt moderation on Skyhawk-R chip by using the EQ-DB mechanism to set a "re-arm to interrupt" delay. Currently interrupt moderation is adjusted by calculating and configuring an EQ-delay every second. This is done via a FW-cmd. This patch uses the EQ_DB facility to calculate and set the interrupt delay every 1ms. This helps moderating interrupts better when the traffic is bursty. Patch 3 adds L3/L4 error accounting to BE3 VFs, by passing L3/4 error packets to the network stack. Patch 4 adds an extra FW-cmd error value check in the driver to identify an "out of vlan filters" scenario. Patch 5 stops enabling pause by default as this setting fails in some HW-configs where priority pause is enabled in FW. If the user tries to do the same, an appropriate error is returned via ethtool. Patch 5 posts the full RXQ in be_open() to prevent packet drops due to bursty traffic when the interface is enabled. Patch 6 refactors the be_check_ufi_compatibility() routine, that checks to see if a UFI file meant for a lower rev of a chip is being flashed on a higher rev, to make it simpler. Patch 7 replaces the usage of !be_physfn() macro with be_virtfn() that is already avialble in the driver. Patch 8 updates the year in the copyright text to 2015. Path 9 bumps up the driver version to 10.6.02. ==================== Signed-off-by: David S. Miller commit 029e9330dda8c6e42910a8ce59204d87ca228447 Author: Sathya Perla Date: Wed May 6 05:30:40 2015 -0400 be2net: update the driver version to 10.6.0.2 Signed-off-by: Sathya Perla Signed-off-by: David S. Miller drivers/net/ethernet/emulex/benet/be.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d19261b8ef508dcbd3bf8e076245f3c90f828bcd Author: Vasundhara Volam Date: Wed May 6 05:30:39 2015 -0400 be2net: update copyright year to 2015 Signed-off-by: Vasundhara Volam Signed-off-by: Sathya Perla Signed-off-by: David S. Miller drivers/net/ethernet/emulex/benet/be.h | 2 +- drivers/net/ethernet/emulex/benet/be_cmds.c | 2 +- drivers/net/ethernet/emulex/benet/be_cmds.h | 2 +- drivers/net/ethernet/emulex/benet/be_ethtool.c | 2 +- drivers/net/ethernet/emulex/benet/be_hw.h | 2 +- drivers/net/ethernet/emulex/benet/be_main.c | 2 +- drivers/net/ethernet/emulex/benet/be_roce.c | 2 +- drivers/net/ethernet/emulex/benet/be_roce.h | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) commit 18c57c74a12031144fd63a055a0a159ac218aaab Author: Kalesh AP Date: Wed May 6 05:30:38 2015 -0400 be2net: use be_virtfn() instead of !be_physfn() Use be_virtfn() to determine a VF instead of !be_physfn() for better readability. Signed-off-by: Sathya Perla Signed-off-by: David S. Miller drivers/net/ethernet/emulex/benet/be_cmds.c | 4 ++-- drivers/net/ethernet/emulex/benet/be_main.c | 11 ++++++----- 2 files changed, 8 insertions(+), 7 deletions(-) commit a6e6ff6eee12f3edc7630e81993bf880a4f0d340 Author: Vasundhara Volam Date: Wed May 6 05:30:37 2015 -0400 be2net: simplify UFI compatibility checking The code in be_check_ufi_compatibility() checks to see if a UFI file meant for a lower rev of a chip is being flashed on a higher rev, which is disallowed. This patch re-writes the code needed for this check in a much simpler manner. Signed-off-by: Vasundhara Volam Signed-off-by: Sathya Perla Signed-off-by: David S. Miller drivers/net/ethernet/emulex/benet/be_cmds.h | 4 --- drivers/net/ethernet/emulex/benet/be_main.c | 56 +++++++++-------------------- 2 files changed, 16 insertions(+), 44 deletions(-) commit b02e60c86eac4451543f3d2c695545baf093e9ea Author: Suresh Reddy Date: Wed May 6 05:30:36 2015 -0400 be2net: post full RXQ on interface enable When an RXQ is created in be_open(), the driver currently posts only 64 buffers. This sometimes results in packet drops when there is a traffic burst as soon as the interface is enabled. This patch fixes this problem by posting the full RXQ on interface enable. Signed-off-by: Suresh Reddy Signed-off-by: Sathya Perla Signed-off-by: David S. Miller drivers/net/ethernet/emulex/benet/be_main.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 77be8c1c4ceabdb61781e96f8610fdc53c03c072 Author: Kalesh AP Date: Wed May 6 05:30:35 2015 -0400 be2net: check for INSUFFICIENT_VLANS error When the FW runs out of vlan filters it can either return an INSUFFICIENT_RESOURCES error or an INSUFFICIENT_VLANS error. The driver currently checks only for the former error value. This patch adds a check for the latter value too. Signed-off-by: Kalesh AP Signed-off-by: Sathya Perla Signed-off-by: David S. Miller drivers/net/ethernet/emulex/benet/be_cmds.c | 1 + drivers/net/ethernet/emulex/benet/be_cmds.h | 3 ++- drivers/net/ethernet/emulex/benet/be_main.c | 3 ++- 3 files changed, 5 insertions(+), 2 deletions(-) commit 0ed7d7498d61bab40943ccb95d6004b247eead0e Author: Somnath Kotur Date: Wed May 6 05:30:34 2015 -0400 be2net: receive pkts with L3, L4 errors on VFs Currently pkts with L3 or L4 errors received on PFs are not dropped by the adapter, but instead sent to the stack. This helps the network stack to better reflect error statistics. This was not being done on BE3 VFs. This patch fixes this for BE3 VFs. Signed-off-by: Somnath Kotur Signed-off-by: Sathya Perla Signed-off-by: David S. Miller drivers/net/ethernet/emulex/benet/be_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 209477704187472d6055e83bbd0fd9b51b79fa15 Author: Padmanabh Ratnakar Date: Wed May 6 05:30:33 2015 -0400 be2net: set interrupt moderation for Skyhawk-R using EQ-DB Currently adaptive interrupt moderation is set by calculating and configuring an EQ-delay every second. This is done via a FW-cmd. But, on Skyhawk-R a "re-arm to interrupt" delay can be set while ringing the EQ-DB. This patch uses this facility to calculate and set the interrupt delay every 1ms. This helps moderating interrupts better when the traffic is bursty. Signed-off-by: Padmanabh Ratnakar 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_ethtool.c | 8 ++ drivers/net/ethernet/emulex/benet/be_hw.h | 12 ++ drivers/net/ethernet/emulex/benet/be_main.c | 152 +++++++++++++++++-------- 4 files changed, 128 insertions(+), 45 deletions(-) commit e7bcbd7b81a129d79f205b19f9dd96b00c7e2364 Author: Kalesh AP Date: Wed May 6 05:30:32 2015 -0400 be2net: add support for spoofchk setting This patch adds support for spoofchk configuration for VFs. When it is enabled, "spoof checking" is done for both MAC-address and VLAN. For each VF, the HW ensures that the source MAC address (or vlan) of every outgoing packet exists in the MAC-list (or vlan-list) configured for RX filtering for that VF. If not, the packet is dropped and an error is reported to the driver in the TX completion; this is reflected in the "tx_spoof_check_err" ethtool counter. This feature is supported in Skyhawk FW version 10.6.31.0 and above. Signed-off-by: Kalesh AP 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 | 16 +++++++-- drivers/net/ethernet/emulex/benet/be_cmds.h | 24 +++++++++----- drivers/net/ethernet/emulex/benet/be_main.c | 51 ++++++++++++++++++++++++++--- 4 files changed, 78 insertions(+), 14 deletions(-) commit 1a676d2b135c34de67f8fdd9b42c5d33b17f98dd Merge: f926204 6f7f8aa Author: David S. Miller Date: Sat May 9 16:16:49 2015 -0400 Merge branch 'sfc-next' Shradha Shah says: ==================== sfc: Enabling EF10 Vf's, set up vswitching and bind the SFC driver to the VF's This set of patches makes way for the implementation of EF10 SR-IOV driver starting with some cleanup code. NIC specific SR-IOV functions are moved to their own header and netdev_ops are made generic instead of being NIC specific Next in line comes the patch to enable VF's using sriov_configure. VEB vswitching hierarchy is set up next followed by patches to prepare sfc driver to bind to enabled VF's This is followed by patch to support use of shared RSS contexts which makes VF's use shared RSS contexts in all cases. Patch series ends with a patch to bind the sfc driver to the enabled VF's which creates network interfaces corresponding to the VF's. Coming up soon are the patches to set_vf_mac, set_vf_config, set_vf_vlan, vf_spoofcheck, etc. These patches have been tested with and without CONFIG_SFC_SRIOV. In the case of CONFIG_SFC_SRIOV=y enabling of VF's using sriov_configure is also tested. The enabled VF's bind to the installed sfc driver succesfully to create network interfaces. In the case of CONFIG_SFC_SRIOV=n enabling of VF's using sriov_configure returns the correct error message: "Function not implemented". ==================== Signed-off-by: David S. Miller commit 6f7f8aa69acb391ba98f5186ca09434d9d0f52ee Author: Shradha Shah Date: Wed May 6 01:00:07 2015 +0100 sfc: Bind the sfc driver to any available VF's Add the device ID of the VF to the PCI device ID table. Added a boolean flag is_vf in efx_nic_type to differentiate between a VF and PF at probe time. This flag is useful in later patches while setting MAC address specially in the PCI-passthrough case. Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10.c | 2 ++ drivers/net/ethernet/sfc/efx.c | 6 +++++- drivers/net/ethernet/sfc/falcon.c | 2 ++ drivers/net/ethernet/sfc/mcdi.c | 10 ---------- drivers/net/ethernet/sfc/net_driver.h | 1 + drivers/net/ethernet/sfc/siena.c | 1 + 6 files changed, 11 insertions(+), 11 deletions(-) commit 267c01571bd38ea807bae1da93788d3b577661cf Author: Jon Cooper Date: Wed May 6 00:59:38 2015 +0100 sfc: Add use of shared RSS contexts. Allow PFs to allocate shared RSS contexts if we exhaust our exclusive RSS contexts. Make VFs use shared RSS contexts in all cases. Spruce up error handling so that the shadow copy of the RSS table is updated after successful update, rather than in all cases, so that we report the actual contents of the RSS table after a failure to set it, rather than what we'd like it to be. Populate context_size parameter when vacuously allocating RSS context of size 1. Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10.c | 157 +++++++++++++++++++++++++++++----- drivers/net/ethernet/sfc/efx.c | 17 ++-- drivers/net/ethernet/sfc/efx.h | 1 + drivers/net/ethernet/sfc/ethtool.c | 5 +- drivers/net/ethernet/sfc/falcon.c | 19 +++- drivers/net/ethernet/sfc/net_driver.h | 3 +- drivers/net/ethernet/sfc/nic.h | 2 + drivers/net/ethernet/sfc/siena.c | 9 +- 8 files changed, 177 insertions(+), 36 deletions(-) commit 267d9d73872966c4e7d0271fed314d8ace65e895 Author: Edward Cree Date: Wed May 6 00:59:18 2015 +0100 sfc: Cope with permissions enforcement added to firmware for SR-IOV * Accept EPERM in some simple cases, the following cases are handled: 1) efx_mcdi_read_assertion() Unprivileged PCI functions aren't allowed to GET_ASSERTS. We return success as it's up to the primary PF to deal with asserts. 2) efx_mcdi_mon_probe() in efx_ef10_probe() Unprivileged PCI functions aren't allowed to read sensor info, and worrying about sensor data is the primary PF's job. 3) phy_op->reconfigure() in efx_init_port() and efx_reset_up() Unprivileged functions aren't allowed to MC_CMD_SET_LINK, they just have to accept the settings (including flow-control, which is what efx_init_port() is worried about) they've been given. 4) Fallback to GET_WORKAROUNDS in efx_ef10_probe() Unprivileged PCI functions aren't allowed to set workarounds. So if efx_mcdi_set_workaround() fails EPERM, use efx_mcdi_get_workarounds() to find out if workaround_35388 is enabled. 5) If DRV_ATTACH gets EPERM, try without specifying fw-variant Unprivileged PCI functions have to use a FIRMWARE_ID of 0xffffffff (MC_CMD_FW_DONT_CARE). 6) Don't try to exit_assertion unless one had fired Previously we called efx_mcdi_exit_assertion even if efx_mcdi_read_assertion had received MC_CMD_GET_ASSERTS_FLAGS_NO_FAILS. This is unnecessary, and the resulting MC_CMD_REBOOT, even if the AFTER_ASSERTION flag made it a no-op, would fail EPERM for unprivileged PCI functions. So make efx_mcdi_read_assertion return whether an assert happened, and only call efx_mcdi_exit_assertion if it has. Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10.c | 16 ++++++- drivers/net/ethernet/sfc/efx.c | 5 ++- drivers/net/ethernet/sfc/mcdi.c | 82 ++++++++++++++++++++++++++++++------ drivers/net/ethernet/sfc/mcdi.h | 2 + drivers/net/ethernet/sfc/mcdi_pcol.h | 23 ++++++++++ 5 files changed, 111 insertions(+), 17 deletions(-) commit 7b8c7b54f0070edb207add4777e68e4e79d7c3fe Author: Shradha Shah Date: Wed May 6 00:58:54 2015 +0100 sfc: manually allocate and free vadaptors To be able to use MC_CMD_VADAPTOR_SET_MAC, vadaptors must be manually allocated and freed as automatic vadaptors will disappear when their reference_count reaches zero, which must happen before the MAC address is changed. Vadaptors are allocated and freed in the vswitching_probe/remove functions for PFs and VFs, and this means that vadaptors are restored correctly following an MC reboot or other reset when required. Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10.c | 12 +++--- drivers/net/ethernet/sfc/ef10_sriov.c | 71 +++++++++++++++++++++++++++++++---- drivers/net/ethernet/sfc/ef10_sriov.h | 9 +++-- 3 files changed, 76 insertions(+), 16 deletions(-) commit 3c5eb87605e85146a78de589b5070a37862425db Author: Shradha Shah Date: Wed May 6 00:58:31 2015 +0100 sfc: create vports for VFs and assign random MAC addresses The parent PF creates vports for all its child VFs and adds MAC addresses to these. When the VF driver loads, it can make an MCDI call to get the MAC address that the parent PF assigned it. The parent PF also assigns a mac address to its own vport because implicit creation of a vAdaptor will only work on evb ports with MAC addresses assigned. The vport MAC address needs to be stored in the PF's nic_data struct as it can later be changed on the vadaptor (and its net_dev struct). When removing a vport the original MAC address must be deleted. A new flag is needed in the VF data structure to identify whether a vport has been assigned to the VF. This is to determine whether it needs to be un-assigned before freeing the vport. Also, attempting to un-assign a vport which is not assigned will result in an EALREADY error. Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10_sriov.c | 262 +++++++++++++++++++++++++++++----- drivers/net/ethernet/sfc/ef10_sriov.h | 12 ++ drivers/net/ethernet/sfc/nic.h | 7 + 3 files changed, 244 insertions(+), 37 deletions(-) commit 02246a7f966c2e66ff0453d12d9b8d1bff895cf9 Author: Shradha Shah Date: Wed May 6 00:58:14 2015 +0100 sfc: Prepare to bind the sfc driver to the VF. Added efx_nic_type structure for VF. Mapped a different BAR for VF as it uses BAR 0 for memory. Added functions sriov_init and sriov_fini. Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10.c | 141 +++++++++++++++++++++++++++++++++- drivers/net/ethernet/sfc/ef10_sriov.c | 17 ++++ drivers/net/ethernet/sfc/ef10_sriov.h | 9 +-- drivers/net/ethernet/sfc/efx.c | 15 ++-- drivers/net/ethernet/sfc/efx.h | 2 + drivers/net/ethernet/sfc/falcon.c | 2 + drivers/net/ethernet/sfc/net_driver.h | 2 + drivers/net/ethernet/sfc/nic.h | 1 + drivers/net/ethernet/sfc/siena.c | 1 + 9 files changed, 175 insertions(+), 15 deletions(-) commit 1cd9ecbbe6e9261578510962ad899415053acc1d Author: Daniel Pieczko Date: Wed May 6 00:57:53 2015 +0100 sfc: get the PF number and record in nic_data Use MC_CMD_GET_FUNCTION_INFO to record the PF number in nic_data. This will be needed when assigned vports to VFs. Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10.c | 22 ++++++++++++++++++++++ drivers/net/ethernet/sfc/nic.h | 2 ++ 2 files changed, 24 insertions(+) commit 6d8aaaf6f7980af1d228061ec08f6411e6bb2344 Author: Daniel Pieczko Date: Wed May 6 00:57:34 2015 +0100 sfc: create VEB vswitch and vport above default firmware setup Adds functions to allocate and free vswitches and vports; vadaptors are automatically allocated and freed when TX/RX queues are initialised and finalised. This vswitching structure is only created if the firmware supports it, so a check that full-featured firmware is running is performed first. If the MC resets, the vswitching infrastructure will need to be recreated, so mark the "must_probe_vswitching" flag when an MC reboot is detected. Don't try to create a vswitch if vf-count=0 This allocation of vswitches and vports does not currently support configuring VLAN tags, but that can be added in a future change. Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10.c | 7 ++ drivers/net/ethernet/sfc/ef10_sriov.c | 121 ++++++++++++++++++++++++++++++++++ drivers/net/ethernet/sfc/ef10_sriov.h | 4 ++ drivers/net/ethernet/sfc/efx.c | 30 ++++++++- drivers/net/ethernet/sfc/net_driver.h | 3 + drivers/net/ethernet/sfc/nic.h | 2 + drivers/net/ethernet/sfc/siena.c | 3 + 7 files changed, 167 insertions(+), 3 deletions(-) commit 45b2449e3f7d870bdd06c6a8557e8d95d59f8737 Author: Daniel Pieczko Date: Wed May 6 00:57:14 2015 +0100 sfc: record the PF's vport ID in nic_data The default port ID of EVB_PORT_ID_ASSIGNED is a "magic" number for the MCFW to select the physical port of the PF. If other vswitches and vports are created on top of the default firmware configuration, the ID of the newly created vport is then required when passed to MCDI commands. Currently, this doesn't happen so the vport_id is never changed, but a subsequent patch will change this behaviour so that other vswitches and vports are created. The vport_id recorded in nic_data is only relevant for PFs. VFs will have their vports created by their parent PF, and in that case the parent PF will record the vport ID of each VF. For a VF, nic_data->vport_id is expected to remain at the default value. Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10.c | 13 +++++++++---- drivers/net/ethernet/sfc/nic.h | 2 ++ 2 files changed, 11 insertions(+), 4 deletions(-) commit 8d9f9dd4487e4792601759b4376441bcc9e54f95 Author: Daniel Pieczko Date: Wed May 6 00:56:55 2015 +0100 sfc: Record [rt]x_dpcpu_fw_id in EF10 nic_data The (future) code to add/remove vswitches and vports will be dependent on the firmware variant. To simplify the checking of the firmware variant, record values for rx_dpcpu_fw_id and tx_dpcpu_fw_id in EF10 nic_data. There was only one place where this was previously used: efx_mcdi_print_fwver() in ethtool.c. The MC_CMD_GET_CAPABILITIES can be replaced and the values from nic_data used instead. Note that the printing of "?" if the MC command fails or if the outlength is incorrect no longer apply, because errors are returned in efx_ef10_init_datapath_caps() in both of these cases. Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10.c | 7 +++++++ drivers/net/ethernet/sfc/mcdi.c | 22 ++++++---------------- drivers/net/ethernet/sfc/nic.h | 4 ++++ 3 files changed, 17 insertions(+), 16 deletions(-) commit e3d3629387e5f613dea3a6231f138a4471ffe61e Author: Shradha Shah Date: Wed May 6 00:56:24 2015 +0100 sfc: Use MCDI to set FILTER_OP_IN_TX_DOMAIN The TX_DOMAIN field is currently reserved but its safer to set it to 0 for future compatibility. Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10.c | 1 + 1 file changed, 1 insertion(+) commit 834e23dd0a27b5f0d424cc5a41bed42a6a588479 Author: Shradha Shah Date: Wed May 6 00:55:58 2015 +0100 sfc: Enable VF's via a write to the sysfs file sriov_numvfs This patch adds support for the use of sriov_configure on EF10 to enable Virtual Functions while the driver is loaded. Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/Makefile | 2 +- drivers/net/ethernet/sfc/ef10.c | 1 + drivers/net/ethernet/sfc/ef10_sriov.c | 47 ++++++++++++++++++++++++++++++++++ drivers/net/ethernet/sfc/ef10_sriov.h | 2 ++ drivers/net/ethernet/sfc/efx.c | 23 +++++++++++++++++ drivers/net/ethernet/sfc/net_driver.h | 1 + drivers/net/ethernet/sfc/siena.c | 1 + drivers/net/ethernet/sfc/siena_sriov.c | 5 ++++ drivers/net/ethernet/sfc/siena_sriov.h | 1 + 9 files changed, 82 insertions(+), 1 deletion(-) commit bf3d0156c5b7b31a74845b21d131276f9eb31493 Author: Daniel Pieczko Date: Wed May 6 00:55:36 2015 +0100 sfc: Move and rename efx_vf struct to siena_vf The efx_vf struct contains Siena-specific fields for VFs, so rename to siena_vf. Also move it into the siena_nic_data struct, as EF10 will track its VFs in its own ef10_nic_data, storing much less information about them since VFDI is no longer used. Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/net_driver.h | 3 - drivers/net/ethernet/sfc/nic.h | 2 + drivers/net/ethernet/sfc/siena_sriov.c | 119 ++++++++++++++++++--------------- 3 files changed, 67 insertions(+), 57 deletions(-) commit 7fa8d547049aae543a5f21f1fe0e14414f1e7fdc Author: Shradha Shah Date: Wed May 6 00:55:13 2015 +0100 sfc: Own header for nic-specific sriov functions, single instance of netdev_ops and sriov removed from Falcon code By putting all the efx_{siena,ef10}_sriov_* declarations in {siena,ef10}_sriov.h, ensure they cannot be called from nic-generic code. Also fixes up an instance of this, where mcdi.c was calling efx_siena_sriov_flr. The single instance of netdev_ops should call general high level functions that can then call something adapter specific in efx_nic_type. We should only do adapter specialisation via efx_nic_type. Removal of sriov functionality from the Falcon code means that tests are needed for the presence of some callbacks. Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/Makefile | 2 +- drivers/net/ethernet/sfc/ef10.c | 8 +++ drivers/net/ethernet/sfc/ef10_sriov.h | 54 ++++++++++++++++ drivers/net/ethernet/sfc/efx.c | 104 +++++++++++++++--------------- drivers/net/ethernet/sfc/efx.h | 7 +++ drivers/net/ethernet/sfc/falcon.c | 10 --- drivers/net/ethernet/sfc/farch.c | 64 ++++++++++++------- drivers/net/ethernet/sfc/mcdi.c | 4 +- drivers/net/ethernet/sfc/net_driver.h | 8 +++ drivers/net/ethernet/sfc/nic.h | 111 --------------------------------- drivers/net/ethernet/sfc/siena.c | 10 +++ drivers/net/ethernet/sfc/siena_sriov.c | 18 +++--- drivers/net/ethernet/sfc/siena_sriov.h | 78 +++++++++++++++++++++++ drivers/net/ethernet/sfc/sriov.c | 60 ++++++++++++++++++ drivers/net/ethernet/sfc/sriov.h | 27 ++++++++ 15 files changed, 355 insertions(+), 210 deletions(-) commit f926204b8bc978b7222403ddc9ec91bfb0f68428 Merge: 239fb79 448b448 Author: David S. Miller Date: Sat May 9 16:05:54 2015 -0400 Merge branch 'dsa-next' Andrew Lunn says: ==================== More Marvell DSA refactring and fixup This patch setup continues the refactoring and cleanup of the Marvell DSA drivers. Patch #1 Centralizes the duplicated parts of port setup and global setup into the shared mv88e6xxx. Patch #2 Centralizes looping over the ports setting them up Patch #3 Uses mnemonics for the remaining register access in the drivers. Patch #4 The 6172 is actually a member of the 6352 family. This moves the probe code into the correct driver. Patch #5 Adds more members of the 6171 family to the 6171 driver. The new devices are untested. Patch #6 The 6185 is a member of the 6131 family. Add it to the probe code of the 6131 driver. Patch #7 and Patch #8 Simply the mutex's in mv88e6xxx.c. The SMI bus is the bottleneck, not the granularity of the mutex's so simply the code down to a single mutex. Patch #8 Fixes a false positive lockdep splat, due to nested uses of MDIO busses. Patch #9 Fixes another false positive lockdep splat with the transmit queue because of stacked Ethernet devices. ==================== Signed-off-by: David S. Miller commit 448b4482c6713c5b62828622b7bf46900ff9569b Author: Andrew Lunn Date: Wed May 6 01:09:56 2015 +0200 net: dsa: Add lockdep class to tx queues to avoid lockdep splat DSA stacks an Ethernet device on top of an Ethernet device. This can cause false positive lockdep splats for the transmit queue: Acked-by: Florian Fainelli ============================================= [ INFO: possible recursive locking detected ] 4.0.0-rc7-01838-g70621a215fc7 #386 Not tainted --------------------------------------------- kworker/0:0/4 is trying to acquire lock: (_xmit_ETHER#2){+.-...}, at: [] sch_direct_xmit+0xa8/0x1fc but task is already holding lock: (_xmit_ETHER#2){+.-...}, at: [] __dev_queue_xmit+0x4d4/0x56c other info that might help us debug this: Possible unsafe locking scenario: CPU0 ---- lock(_xmit_ETHER#2); lock(_xmit_ETHER#2); To avoid this, walk the tq queues of the dsa slaves and set a lockdep class. Signed-off-by: Andrew Lunn Signed-off-by: David S. Miller net/dsa/slave.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) commit 16fe24fc43e8d32b76030c79c151c7db691865f6 Author: Andrew Lunn Date: Wed May 6 01:09:55 2015 +0200 net: dsa: mv88e6xxx: Fix false positive lockdep splat DSA can have nested MDIO busses, where the Ethernet MDIO bus is used to access an MDIO bus within the switch which has the PHYs connected to it. This nesting causes lockdep to give false positives. Use mutex_lock_nested() to avoid this. Signed-off-by: Andrew Lunn Signed-off-by: David S. Miller drivers/net/dsa/mv88e6xxx.c | 46 ++++++++++++++++++++++++++++++++++++--------- 1 file changed, 37 insertions(+), 9 deletions(-) commit 31888234b736f455fa27c8e775df38a60241d562 Author: Andrew Lunn Date: Wed May 6 01:09:54 2015 +0200 net: dsa: mv88e6xxx: Replace stats mutex with SMI mutex The SMI bus is the bottleneck in all switch operations, not the granularity of locks. Replace the stats mutex by the SMI mutex to make the locking concept simpler. The REG_READ/REG_WRITE macros cannot be used while holding the SMI mutex, since they try to acquire it. Replace with calls to the appropriate function which does not try to get the mutex. Signed-off-by: Andrew Lunn Signed-off-by: David S. Miller drivers/net/dsa/mv88e6xxx.c | 50 ++++++++++++++++++++++++--------------------- 1 file changed, 27 insertions(+), 23 deletions(-) commit 3898c148589752687524ff552a498a8fb4c80667 Author: Andrew Lunn Date: Wed May 6 01:09:53 2015 +0200 net: dsa: mv88e6xxx: Replace PHY mutex by SMI mutex The SMI bus is the bottleneck in all switch operations, not the granularity of locks. Replace the PHY mutex by the SMI mutex to make the locking concept simpler. The REG_READ/REG_WRITE macros cannot be used while holding the SMI mutex, since they try to acquire it. Replace with calls to the appropriate function which does not try to get the mutex. Signed-off-by: Andrew Lunn Signed-off-by: David S. Miller drivers/net/dsa/mv88e6xxx.c | 121 +++++++++++++++++++++++--------------------- drivers/net/dsa/mv88e6xxx.h | 1 - 2 files changed, 63 insertions(+), 59 deletions(-) commit 1441f4e59695682909bbbb7d5740c3fff326a4c3 Author: Andrew Lunn Date: Wed May 6 01:09:52 2015 +0200 net: dsa: mv88e6131: Add support for mv88e6185 The mv88e6185 is part of the family that the mv88e6131 driver supports. Add it to the probe function, and set the number of ports. Signed-off-by: Andrew Lunn Signed-off-by: David S. Miller drivers/net/dsa/mv88e6131.c | 3 +++ 1 file changed, 3 insertions(+) commit eee7483edbcb17858ac743b154231e26d523a6a5 Author: Andrew Lunn Date: Wed May 6 01:09:51 2015 +0200 net: dsa: mv88e6171: Add other members of the family The 6171 is one member of the family 6171/6175/6350/6351. Add the other family members to the driver. Not tested on these new devices. Signed-off-by: Andrew Lunn Signed-off-by: David S. Miller drivers/net/dsa/Kconfig | 6 +++--- drivers/net/dsa/mv88e6171.c | 9 +++++++++ 2 files changed, 12 insertions(+), 3 deletions(-) commit 1636d88357e9e1675a2f205c0721a574e5372fda Author: Andrew Lunn Date: Wed May 6 01:09:50 2015 +0200 net: dsa: Move mv88e6172 support into mv88e6352 family driver The mv88e6172 is part of the mv88e6352 family of devices. Move support for it out of the mv88e6171 driver into the mv88e6352, which results in some simplifications to the code. Signed-off-by: Andrew Lunn Signed-off-by: David S. Miller drivers/net/dsa/Kconfig | 10 ++++----- drivers/net/dsa/mv88e6171.c | 53 ++++++--------------------------------------- drivers/net/dsa/mv88e6352.c | 3 +++ 3 files changed, 15 insertions(+), 51 deletions(-) commit 15966a2a76f57ee45479cc3e7d28dd105f09260a Author: Andrew Lunn Date: Wed May 6 01:09:49 2015 +0200 net: dsa: Converting remaining registers to mnemonics Use defines for registers, shifts and bits in the remaining register accesses in the individual drivers, in order to aid readability. Signed-off-by: Andrew Lunn Signed-off-by: David S. Miller drivers/net/dsa/mv88e6123_61_65.c | 11 ++++++++--- drivers/net/dsa/mv88e6131.c | 26 ++++++++++++++++++++------ drivers/net/dsa/mv88e6171.c | 26 +++++++++++++++++++++----- drivers/net/dsa/mv88e6352.c | 10 ++++++++-- drivers/net/dsa/mv88e6xxx.h | 12 ++++++++++++ 5 files changed, 69 insertions(+), 16 deletions(-) commit dbde9e6667166f17d6d70a08becb05c596cb8fb5 Author: Andrew Lunn Date: Wed May 6 01:09:48 2015 +0200 net: dsa: Centralize setting up ports Now that setting up a port is identical for all switches, centralisers the code looping over all the ports to set them up. Signed-off-by: Andrew Lunn Signed-off-by: David S. Miller drivers/net/dsa/mv88e6123_61_65.c | 9 +-------- drivers/net/dsa/mv88e6131.c | 9 +-------- drivers/net/dsa/mv88e6171.c | 12 +----------- drivers/net/dsa/mv88e6352.c | 9 +-------- drivers/net/dsa/mv88e6xxx.c | 16 +++++++++++++++- drivers/net/dsa/mv88e6xxx.h | 2 +- 6 files changed, 20 insertions(+), 37 deletions(-) commit 54d792f257c65aaff7ac2ab5ea5f83b14c910778 Author: Andrew Lunn Date: Wed May 6 01:09:47 2015 +0200 net: dsa: Centralise global and port setup code into mv88e6xxx. The port setup code in the individual drivers is identical for 6123, 6171, and 6352, and very similar in 6131. Move it all into mv88e6xxx, using the chip families to differentiate on features. Similarly, the global setup is also very similar. Move the majority into mv8e6xxx. The chips themselves fall into families. Add helpers which uses the device IDs to determine if a device is a member of a family or not. Add some additional device IDs to the existing list, to make these helper functions more complete. However these IDs are not yet added to the probe functions. Signed-off-by: Andrew Lunn Signed-off-by: David S. Miller drivers/net/dsa/mv88e6123_61_65.c | 168 +--------------- drivers/net/dsa/mv88e6131.c | 149 +------------- drivers/net/dsa/mv88e6171.c | 170 +--------------- drivers/net/dsa/mv88e6352.c | 168 +--------------- drivers/net/dsa/mv88e6xxx.c | 405 ++++++++++++++++++++++++++++++++++++-- drivers/net/dsa/mv88e6xxx.h | 86 +++++++- 6 files changed, 486 insertions(+), 660 deletions(-) commit 7312280bd2ad9df1bcca236c5614091a0bd1504c Author: Rafael J. Wysocki Date: Sat May 9 21:50:32 2015 +0200 cpuidle: Fix the kerneldoc comment for cpuidle_enter_state() The kerneldoc comment for cpuidle_enter_state() doesn't match the function's header any more, so fix it. Signed-off-by: Rafael J. Wysocki drivers/cpuidle/cpuidle.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 35bb871663ddb06df9d601b32deac5f4f06b65b4 Author: H Hartley Sweeten Date: Fri May 1 15:00:12 2015 -0700 staging: comedi: ni_stc.h: final cleanup 1) Move the enum's to a better location and tidy up the whitespace. 2) Tidy up the defines used for some array sizes in the private data. 3) Add comments for the spinlock_t variables in the private data. 4) Move the forward declaration to the end of the file. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_stc.h | 81 +++++++++++++++++++-------------- 1 file changed, 47 insertions(+), 34 deletions(-) commit ef3915435c587caa24b8840f29102aa49d921216 Author: H Hartley Sweeten Date: Fri May 1 15:00:11 2015 -0700 staging: comedi: ni_stc.h: tidy up the windowed_regs_67xx_61xx Rename the CamelCase. For aesthetics, convert the enum into defines. Use the BIT() macro to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 51 +++++++++++++------------ drivers/staging/comedi/drivers/ni_stc.h | 53 ++++++++++---------------- 2 files changed, 47 insertions(+), 57 deletions(-) commit 94f0cbb99a040a8aceddb490e4ed08cd4d4a4fde Author: H Hartley Sweeten Date: Fri May 1 15:00:10 2015 -0700 staging: comedi: ni_stc.h: tidy up the cs5529_command_bits For aesthetics, convert the enum into defines. Use the BIT() macro to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 12 ++++++------ drivers/staging/comedi/drivers/ni_stc.h | 25 ++++++++++++++----------- 2 files changed, 20 insertions(+), 17 deletions(-) commit b738aa3a131bdc670191318bebc558629b3f1ed4 Author: H Hartley Sweeten Date: Fri May 1 15:00:09 2015 -0700 staging: comedi: ni_stc.h: tidy up the cs5529_configuration_bits For aesthetics, convert the enum into defines and the inline functions into macros. Use the BIT() macro to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 8 ++-- drivers/staging/comedi/drivers/ni_stc.h | 58 ++++++++++++-------------- 2 files changed, 30 insertions(+), 36 deletions(-) commit ee3e21ac4be697350369bbd1c0b70f4acb909fa0 Author: H Hartley Sweeten Date: Fri May 1 15:00:08 2015 -0700 staging: comedi: ni_stc.h: rename the NI-6143 register defines Rename the CamelCase. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 54 ++++++++++++----------- drivers/staging/comedi/drivers/ni_pcimio.c | 15 +++---- drivers/staging/comedi/drivers/ni_stc.h | 60 +++++++++++++------------- 3 files changed, 66 insertions(+), 63 deletions(-) commit 0418da51378e83cde58043cf7a272760a5214a2d Author: H Hartley Sweeten Date: Fri May 1 15:00:07 2015 -0700 staging: comedi: ni_stc.h: rename the NI-611x register defines Rename the CamelCase. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 34 ++++++++++++++------------ drivers/staging/comedi/drivers/ni_stc.h | 23 ++++++++--------- 2 files changed, 30 insertions(+), 27 deletions(-) commit 62e0e09469690ea2a6748f63fa041397d8be2a19 Author: H Hartley Sweeten Date: Fri May 1 15:00:06 2015 -0700 staging: comedi: ni_stc.h: remove unused _bit* defines Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_stc.h | 17 ----------------- 1 file changed, 17 deletions(-) commit f78476b4d3939d9aa7299889f9a5066b96b2195f Author: H Hartley Sweeten Date: Fri May 1 15:00:05 2015 -0700 staging: comedi: ni_mio_common: move ni_stc_dma_channel_select_bitfield() Move this inline helper function from ni_stc.h. It does not need to be exposed outside of this file. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 11 +++++++++++ drivers/staging/comedi/drivers/ni_stc.h | 12 ------------ 2 files changed, 11 insertions(+), 12 deletions(-) commit 7d6f3aaead3a76e7e12aa2bbfe18d8ed423d1d19 Author: H Hartley Sweeten Date: Fri May 1 15:00:04 2015 -0700 staging: comedi: ni_stc.h: tidy up G0_G1_Select register and bits Rename the CamelCase. Convert the inline helper functions into macros. Tidy up the driver code to use the new macros. For consistency, make the ni_set_gpct_dma_channel() helper follow the same style as the ni_set_ai_dma_channel() and ni_set_ao_dma_channel() helpers. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 22 +++++++++++----------- drivers/staging/comedi/drivers/ni_stc.h | 17 ++++------------- 2 files changed, 15 insertions(+), 24 deletions(-) commit a4b7ef9d8eae56f0355d0ee2a762639901d7bef4 Author: H Hartley Sweeten Date: Fri May 1 15:00:03 2015 -0700 staging: comedi: ni_stc.h: tidy up AI_AO_Select register and bits Rename the CamelCase and convert the enum into macros. Tidy up the driver code to use the new macros. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 28 +++++++++++--------------- drivers/staging/comedi/drivers/ni_stc.h | 13 ++++++------ 2 files changed, 18 insertions(+), 23 deletions(-) commit 3446b08e83eb152fe97c791d16cbc68523a62bce Author: H Hartley Sweeten Date: Fri May 1 15:00:02 2015 -0700 staging: comedi: ni_mio_common: remove BUG_ON(gpct_index ...) checks The gpct_index will always be 0 or 1. Remove the unnecessary BUG_ON() checks. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 2 -- drivers/staging/comedi/drivers/ni_stc.h | 2 -- 2 files changed, 4 deletions(-) commit 25e941affe11e258a213bb12e765dfaabd327c57 Author: H Hartley Sweeten Date: Fri May 1 15:00:01 2015 -0700 staging: comedi: ni_stc.h: tidy up DAC[01]_Direct_Data registers Rename the CamelCase and convert the defines into a macro. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 2 +- drivers/staging/comedi/drivers/ni_stc.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit 9e0ad6f4d1fe3ff97ca66bde6484c320ce9d80da Author: H Hartley Sweeten Date: Fri May 1 15:00:00 2015 -0700 staging: comedi: ni_stc.h: tidy up DAC_FIFO_Data register Rename the CamelCase. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 2 +- drivers/staging/comedi/drivers/ni_stc.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit b497b8da801088f380a98851a5c50ffcd7b40c86 Author: H Hartley Sweeten Date: Fri May 1 14:59:59 2015 -0700 staging: comedi: ni_stc.h: tidy up AO_Configuration register and bits Rename the CamelCase. Use the BIT() macro to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 16 ++++++++-------- drivers/staging/comedi/drivers/ni_stc.h | 14 +++++++------- 2 files changed, 15 insertions(+), 15 deletions(-) commit d504a6ee3db248e2ec3dc5e4304a381d5ba9bb6f Author: H Hartley Sweeten Date: Fri May 1 14:59:58 2015 -0700 staging: comedi: ni_stc.h: tidy up Configuration_Memory_High register and bits Rename the CamelCase. Use the BIT() macro to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 10 +++++----- drivers/staging/comedi/drivers/ni_stc.h | 18 +++++++----------- 2 files changed, 12 insertions(+), 16 deletions(-) commit 76efac7f525f2e9fffe9e751c29cd93aae96c710 Author: H Hartley Sweeten Date: Fri May 1 14:59:57 2015 -0700 staging: comedi: ni_stc.h: tidy up Configuration_Memory_Low register and bits Rename the CamelCase. Use the BIT() macro to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 9 +++++---- drivers/staging/comedi/drivers/ni_stc.h | 12 ++++++------ 2 files changed, 11 insertions(+), 10 deletions(-) commit 363f570ef0e4a5361e97a1c0632e17c5d4148ec8 Author: H Hartley Sweeten Date: Fri May 1 14:59:56 2015 -0700 staging: comedi: ni_stc.h: tidy up ADC_FIFO_Data_Register Rename the CamelCase. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 6 +++--- drivers/staging/comedi/drivers/ni_stc.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) commit 61260f58496af82593f48f17071da950af500e60 Author: H Hartley Sweeten Date: Fri May 1 14:59:55 2015 -0700 staging: comedi: ni_stc.h: tidy up 8255 register defines Only the 'Port_A' define is used. Rename the CamelCase and remove the unused defines. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 3 ++- drivers/staging/comedi/drivers/ni_stc.h | 10 ++-------- 2 files changed, 4 insertions(+), 9 deletions(-) commit 68885d9e00c81c685ebfa3cbb850d065e0eaecf9 Author: H Hartley Sweeten Date: Fri May 1 14:59:54 2015 -0700 staging: comedi: ni_stc.h: tidy up Misc_Command register and bits Rename the CamelCase. Use the BIT() macro to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 2 +- drivers/staging/comedi/drivers/ni_stc.h | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) commit 2ed183fff4ce1de272fb1f4e1c1a3fd49a8a969a Author: H Hartley Sweeten Date: Fri May 1 14:59:53 2015 -0700 staging: comedi: ni_stc.h: tidy up Serial_Command register and bits Rename the CamelCase. Use the BIT() macro to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 34 +++++++++++++++----------- drivers/staging/comedi/drivers/ni_stc.h | 8 ++++-- 2 files changed, 26 insertions(+), 16 deletions(-) commit 906170b882b609144d982a732ea9ad9faf1697fc Author: H Hartley Sweeten Date: Fri May 1 14:59:52 2015 -0700 staging: comedi: ni_stc.h: tidy up XXX_Status register and bits Rename the CamelCase. Use the BIT() macro to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 7 ++++--- drivers/staging/comedi/drivers/ni_stc.h | 10 +++------- 2 files changed, 7 insertions(+), 10 deletions(-) commit 4f809ff5e87fe7f2bb6bb6150d1b3bef4621c2d7 Author: H Hartley Sweeten Date: Fri May 1 14:59:51 2015 -0700 staging: comedi: ni_stc.h: tidy up Window_{Address,Data} defines Rename the CamelCase. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 8 ++++---- drivers/staging/comedi/drivers/ni_stc.h | 10 +++++----- 2 files changed, 9 insertions(+), 9 deletions(-) commit 81bee07f955a5704c3c45b17a4771a7e802d4a86 Author: H Hartley Sweeten Date: Fri May 1 14:59:50 2015 -0700 staging: comedi: ni_stc.h: remove unused GPCT register bit defines The bit defines in this header for the GPCT registers are not used. The ones in ni_tio_internal.h are used instead. Remove them from this header. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_stc.h | 68 --------------------------------- 1 file changed, 68 deletions(-) commit 549835c76a3ab053c4450d23d9c11ae43290196d Author: H Hartley Sweeten Date: Fri May 1 14:59:49 2015 -0700 staging: comedi: ni_stc.h: tidy up AI_*_Save_Registers Rename the CamelCase. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 4 ++-- drivers/staging/comedi/drivers/ni_stc.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit bab382efa82265d8a13ba111028158adb8f48510 Author: H Hartley Sweeten Date: Fri May 1 14:59:48 2015 -0700 staging: comedi: ni_stc.h: tidy up Joint_Status_2_Register and bits Rename the CamelCase. Use the BIT() macro to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 8 ++++---- drivers/staging/comedi/drivers/ni_stc.h | 8 +++----- 2 files changed, 7 insertions(+), 9 deletions(-) commit 8fbb015484a5d8038ced1d0bb81041e6b7437ccc Author: H Hartley Sweeten Date: Fri May 1 14:59:47 2015 -0700 staging: comedi: ni_stc.h: tidy up DIO_Serial_Input_Register Rename the CamelCase. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 4 ++-- drivers/staging/comedi/drivers/ni_stc.h | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) commit d3fed0813242a2fa6604e627326724d7cae9a068 Author: H Hartley Sweeten Date: Fri May 1 14:59:46 2015 -0700 staging: comedi: ni_stc.h: tidy up Joint_Status_1_Register Rename the CamelCase. Use the BIT() macro to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 18 ++++++++++-------- drivers/staging/comedi/drivers/ni_stc.h | 6 +++--- 2 files changed, 13 insertions(+), 11 deletions(-) commit 2c090acdc981421765becba929d9581511bdbbd0 Author: H Hartley Sweeten Date: Fri May 1 14:59:45 2015 -0700 staging: comedi: ni_stc.h: tidy up AO_*_Save_Registers Rename the CamelCase. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 6 +++--- drivers/staging/comedi/drivers/ni_stc.h | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) commit d9c4115fcdea6737b72b715736b59bdc5b560835 Author: H Hartley Sweeten Date: Fri May 1 14:59:44 2015 -0700 staging: comedi: ni_stc.h: tidy up G_Save_Register Rename the CamelCase and define the G0 and G1 registers to add clarity to the mio_regmap tables. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 8 ++++---- drivers/staging/comedi/drivers/ni_stc.h | 7 +++---- 2 files changed, 7 insertions(+), 8 deletions(-) commit 27650d99004d8fc962c56c9c2260af0cb5f2ff7d Author: H Hartley Sweeten Date: Fri May 1 14:59:43 2015 -0700 staging: comedi: ni_stc.h: tidy up G_HW_Save_Register Rename the CamelCase and define the G0 and G1 registers to add clarity to the mio_regmap tables. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 8 ++++---- drivers/staging/comedi/drivers/ni_stc.h | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) commit 6f764a47f3311c6f283d050e6630683569e07f33 Author: H Hartley Sweeten Date: Fri May 1 14:59:42 2015 -0700 staging: comedi: ni_stc.h: tidy up DIO_Parallel_Input_Register Rename the CamelCase. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 7 +++---- drivers/staging/comedi/drivers/ni_stc.h | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) commit 63b2bb05e1ac74c309d61d6c0763c5fb75cc8791 Author: H Hartley Sweeten Date: Fri May 1 14:59:41 2015 -0700 staging: comedi: ni_stc.h: tidy up AO_Status_2_Register Rename the CamelCase. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 4 ++-- drivers/staging/comedi/drivers/ni_stc.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit 3ca18feff7c4259f3f809575fdb26bdc7828a9bd Author: H Hartley Sweeten Date: Fri May 1 14:59:40 2015 -0700 staging: comedi: ni_stc.h: tidy up AI_Status_2_Register Rename the CamelCase. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 2 +- drivers/staging/comedi/drivers/ni_stc.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 7f0e1bac320430cb94316057e91c1f15cc6e19cf Author: H Hartley Sweeten Date: Fri May 1 14:59:39 2015 -0700 staging: comedi: ni_stc.h: tidy up G_Status_Register Rename the CamelCase. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 4 ++-- drivers/staging/comedi/drivers/ni_stc.h | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) commit d123ee3ce0803e47a477f8efe680d549967e10f0 Author: H Hartley Sweeten Date: Fri May 1 14:59:38 2015 -0700 staging: comedi: ni_stc.h: tidy up AO_Status_1_Register and bits Rename the CamelCase. Use the BIT() marco to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 32 +++++++++++------------ drivers/staging/comedi/drivers/ni_stc.h | 36 +++++++++++++------------- 2 files changed, 34 insertions(+), 34 deletions(-) commit 7b14fffd7832dd571a82c18bd0b58319b40d7378 Author: H Hartley Sweeten Date: Fri May 1 14:59:37 2015 -0700 staging: comedi: ni_stc.h: tidy up AI_Status_1_Register and bits Rename the CamelCase. Use the BIT() marco to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 65 +++++++++++++------------- drivers/staging/comedi/drivers/ni_stc.h | 38 ++++++++------- 2 files changed, 53 insertions(+), 50 deletions(-) commit c7edadc10326ec710b01cc1b727a701fcc06bed9 Author: H Hartley Sweeten Date: Fri May 1 14:59:36 2015 -0700 staging: comedi: ni_stc.h: tidy up AI_Mode_3_Register and bits Rename the CamelCase. Use the BIT() marco to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 29 +++++++++++----------- drivers/staging/comedi/drivers/ni_stc.h | 33 +++++++++++++------------- 2 files changed, 32 insertions(+), 30 deletions(-) commit 5bd1c7283794112234aace1ef679c947d26a841e Author: H Hartley Sweeten Date: Fri May 1 14:59:35 2015 -0700 staging: comedi: ni_stc.h: tidy up AO_Output_Control_Register and bits Rename the CamelCase. Convert the inline helper function into a macro and use the BIT() marco to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 18 +++++++-------- drivers/staging/comedi/drivers/ni_stc.h | 32 +++++++++++--------------- 2 files changed, 22 insertions(+), 28 deletions(-) commit 8102f3d0c17b11e01e31a01c762867ae44a96d23 Author: H Hartley Sweeten Date: Fri May 1 14:59:34 2015 -0700 staging: comedi: ni_stc.h: tidy up Write_Strobe_*_Register The Write_Strobe_*_Register defines are noy used. Instead the more descriptive Configuration_Memory_Clear, ADC_FIFO_Clear and DAC_FIFO_Clear defines are used. Remove the unused defines and rename the CamelCase. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 18 +++++++++--------- drivers/staging/comedi/drivers/ni_stc.h | 14 +++++--------- 2 files changed, 14 insertions(+), 18 deletions(-) commit 24a11ba670f79a81ebd99931b9ba863f6db04812 Author: H Hartley Sweeten Date: Fri May 1 14:59:33 2015 -0700 staging: comedi: ni_stc.h: tidy up RTSI_Board_Register Rename the CamelCase. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 10 +++++----- drivers/staging/comedi/drivers/ni_stc.h | 3 ++- 2 files changed, 7 insertions(+), 6 deletions(-) commit 390bc6ffe797b6b071eeab4628054adc4b9b4751 Author: H Hartley Sweeten Date: Fri May 1 14:59:32 2015 -0700 staging: comedi: ni_stc.h: tidy up RTSI_Trig_[AB]_Output_Register and bits Rename the CamelCase. Convert the inline helper functions to macros and use the BIT() macro to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 55 +++++++++++--------------- drivers/staging/comedi/drivers/ni_stc.h | 30 ++++---------- 2 files changed, 31 insertions(+), 54 deletions(-) commit 63ff3f2c2945adecf6b843c8213ab050ef1326f8 Author: H Hartley Sweeten Date: Fri May 1 14:59:31 2015 -0700 staging: comedi: ni_stc.h: tidy up AO_Personal_Register and bits Rename the CamelCase. Use the BIT() macro to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 29 ++++++++++++++---------- drivers/staging/comedi/drivers/ni_stc.h | 31 +++++++++++++------------- 2 files changed, 32 insertions(+), 28 deletions(-) commit c1b74035e1d5da58292448df2351d9334ff36a24 Author: H Hartley Sweeten Date: Fri May 1 14:59:30 2015 -0700 staging: comedi: ni_stc.h: tidy up AI_Personal_Register and bits Rename the CamelCase. Use the BIT() macro to define the bits. Tidy up ni_ai_reset() by using a local var to set the common bits and programming the register in the common code path. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 25 ++++++++--------------- drivers/staging/comedi/drivers/ni_stc.h | 28 +++++++++++++------------- 2 files changed, 22 insertions(+), 31 deletions(-) commit 04b6846731508684366b1b91a893021c4272da6d Author: H Hartley Sweeten Date: Fri May 1 14:59:29 2015 -0700 staging: comedi: ni_stc.h: tidy up Second_IRQ_B_Enable_Register and bits Rename the CamelCase. The bit defines are identical to NISTC_INTB_ENA_REG. Reuse them. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 6 +++--- drivers/staging/comedi/drivers/ni_stc.h | 17 +---------------- 2 files changed, 4 insertions(+), 19 deletions(-) commit 4c9c1d2c52992995b319de5edfe13887b86f8542 Author: H Hartley Sweeten Date: Fri May 1 14:59:28 2015 -0700 staging: comedi: ni_stc.h: tidy up Interrupt_B_Enable_Register and bits Rename the CamelCase. Use the BIT() macro to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 30 +++++++++++++------------- drivers/staging/comedi/drivers/ni_stc.h | 28 ++++++++++++------------ 2 files changed, 29 insertions(+), 29 deletions(-) commit d84e9c348901ee0be9b71e1f9fb7ab32d48a2a82 Author: H Hartley Sweeten Date: Fri May 1 14:59:27 2015 -0700 staging: comedi: ni_stc.h: tidy up Second_IRQ_A_Enable_Register and bits Rename the CamelCase. The bit defines are identical to NISTC_INTA_ENA_REG. Reuse them. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 6 +++--- drivers/staging/comedi/drivers/ni_stc.h | 15 +-------------- 2 files changed, 4 insertions(+), 17 deletions(-) commit 5cca26aaf2305db6bdaae26b2bb814ae93ca1652 Author: H Hartley Sweeten Date: Fri May 1 14:59:26 2015 -0700 staging: comedi: ni_stc.h: tidy up Interrupt_A_Enable_Register and bits Rename the CamelCase. Use the BIT() macro to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 29 ++++++++++-------------- drivers/staging/comedi/drivers/ni_stc.h | 31 ++++++++++++++++---------- 2 files changed, 31 insertions(+), 29 deletions(-) commit 707502f3d0f1b07938fb9115971ecce1c9db1a97 Author: H Hartley Sweeten Date: Fri May 1 14:59:25 2015 -0700 staging: comedi: ni_stc.h: tidy up Joint_Reset_Register and bits Rename the CamelCase. Use the BIT() macro to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 26 ++++++++++++-------------- drivers/staging/comedi/drivers/ni_stc.h | 22 +++++++++++----------- 2 files changed, 23 insertions(+), 25 deletions(-) commit 72bca4f5e2c724120c1aa319f1b3042e3691d6ac Author: H Hartley Sweeten Date: Fri May 1 14:59:24 2015 -0700 staging: comedi: ni_stc.h: tidy up AO_Mode_3_Register and bits Rename the CamelCase. Use the BIT() macro to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 20 ++++++++++---------- drivers/staging/comedi/drivers/ni_stc.h | 22 +++++++++++----------- 2 files changed, 21 insertions(+), 21 deletions(-) commit 38aba4c99498feec862f4b1b588fb6719184b94c Author: H Hartley Sweeten Date: Fri May 1 14:59:23 2015 -0700 staging: comedi: ni_stc.h: tidy up G_Autoincrement_Register Rename the CamelCase and define the G0 and G1 registers to add clarity to the mio_regmap tables. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 8 ++++---- drivers/staging/comedi/drivers/ni_stc.h | 4 +++- 2 files changed, 7 insertions(+), 5 deletions(-) commit f21844d33b6de37aa105de3e2e50dd944dd3d2b0 Author: H Hartley Sweeten Date: Fri May 1 14:59:22 2015 -0700 staging: comedi: ni_stc.h: tidy up AO_Trigger_Select_Register and bits Rename the CamelCase. Use the BIT() macro to define the bits. Tidy up the ni_ao_cmd() by using a local var to mask/set the bits then programming the register in the common code path. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 36 ++++++++++++++++---------- drivers/staging/comedi/drivers/ni_stc.h | 21 ++++++++------- 2 files changed, 33 insertions(+), 24 deletions(-) commit 2b6285dab7ca8ac069f4087172ebb0c1aa908777 Author: H Hartley Sweeten Date: Fri May 1 14:59:21 2015 -0700 staging: comedi: ni_stc.h: tidy up AO_Start_Select_Register and bits Rename the CamelCase. Use the BIT() macro to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 6 +++--- drivers/staging/comedi/drivers/ni_stc.h | 20 ++++++++++---------- 2 files changed, 13 insertions(+), 13 deletions(-) commit af5102a77e6ef0d40611f5255faf3cd860180c29 Author: H Hartley Sweeten Date: Fri May 1 14:59:20 2015 -0700 staging: comedi: ni_stc.h: tidy up AI_DIV_Load_A_Register Rename the CamelCase. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 2 +- drivers/staging/comedi/drivers/ni_stc.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit f878071a44d61ac52765c7b0c23ddb1170044174 Author: H Hartley Sweeten Date: Fri May 1 14:59:19 2015 -0700 staging: comedi: ni_stc.h: tidy up AI_Trigger_Select_Register and bits Rename the CamelCase. Use the BIT() macro to define the bits. Tidy up ni_ai_cmd() by using a local var to set the common bits and programming the register in the common code path. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 33 ++++++++++++-------------- drivers/staging/comedi/drivers/ni_stc.h | 20 ++++++++-------- 2 files changed, 25 insertions(+), 28 deletions(-) commit 3e9088929f06a42f2ab4085562caefbd36a8324f Author: H Hartley Sweeten Date: Fri May 1 14:59:18 2015 -0700 staging: comedi: ni_stc.h: tidy up AI_START_STOP_Select_Register and bits Rename the CamelCase. Use the BIT() macro to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 61 +++++++++++++------------- drivers/staging/comedi/drivers/ni_stc.h | 20 ++++----- 2 files changed, 40 insertions(+), 41 deletions(-) commit 27cf6c02abc6788a71c1e939fdab1418eb6c3bcc Author: H Hartley Sweeten Date: Fri May 1 14:59:17 2015 -0700 staging: comedi: ni_stc.h: tidy up Analog_Trigger_Etc_Register and bits Rename the CamelCase. Use the BIT() macro to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 7 +++---- drivers/staging/comedi/drivers/ni_stc.h | 19 +++++++++---------- 2 files changed, 12 insertions(+), 14 deletions(-) commit aa9d73ba831eef18624cb7b8288987b3bfd4dac8 Author: H Hartley Sweeten Date: Fri May 1 14:59:16 2015 -0700 staging: comedi: ni_stc.h: tidy up AI_Output_Control_Register and bits Rename the CamelCase. Use the BIT() macro to define the bits. Tidy up the programming of this register un ni_ai_reset() by using a local variable to set the common bits then writing the register in the common code path. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 47 ++++++++------------------ drivers/staging/comedi/drivers/ni_stc.h | 30 +++++++--------- 2 files changed, 26 insertions(+), 51 deletions(-) commit d8f62c463867293ed37fd9ac25dfc2338dc01594 Author: H Hartley Sweeten Date: Fri May 1 14:59:15 2015 -0700 staging: comedi: ni_stc.h: tidy up Interrupt_Control_Register and bits Rename the CamelCase. Use the BIT() macro to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 15 ++++++++------- drivers/staging/comedi/drivers/ni_pcimio.c | 2 +- drivers/staging/comedi/drivers/ni_stc.h | 20 ++++++++++---------- 3 files changed, 19 insertions(+), 18 deletions(-) commit a4f18b1c40875d199a1f7a77f08642d38c4e6b21 Author: H Hartley Sweeten Date: Fri May 1 14:59:14 2015 -0700 staging: comedi: ni_stc.h: tidy up RTSI_Trig_Direction_Register and bits Rename the CamelCase and convert the enum and inline function into defines. Use the BIT() macro to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 67 ++++++++++++-------------- drivers/staging/comedi/drivers/ni_stc.h | 26 +++------- 2 files changed, 37 insertions(+), 56 deletions(-) commit e2bdb0d833655b09d7ae75b7ca4eafde22fda9a4 Author: H Hartley Sweeten Date: Fri May 1 14:59:13 2015 -0700 staging: comedi: ni_stc.h: remove unreachable code in RTSI_Output_Bit() All the callers of this function check the 'channel' number with num_configurable_rtsi_channels(). This check can never occure. Remove it. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_stc.h | 4 ---- 1 file changed, 4 deletions(-) commit 5ecadf8c4fb9a634dd20af2d14b588254f336a88 Author: H Hartley Sweeten Date: Fri May 1 14:59:12 2015 -0700 staging: comedi: ni_stc.h: tidy up IO_Bidirection_Pin_Register Rename the CamelCase. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 10 +++++----- drivers/staging/comedi/drivers/ni_stc.h | 3 ++- 2 files changed, 7 insertions(+), 6 deletions(-) commit f1618db1d9679bba2864cbc5fdc44623817e7016 Author: H Hartley Sweeten Date: Fri May 1 14:59:11 2015 -0700 staging: comedi: ni_mio_common: use 'reg' in ni_set_bitfield() Use the passed 'reg' parameter to write to the STC registers instead of duplicating the case symbol. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) commit a47fc02b497ec7ed9e1409f5a24fa5c0ea1ee1a7 Author: H Hartley Sweeten Date: Fri May 1 14:59:10 2015 -0700 staging: comedi: ni_stc.h: tidy up Clock_and_FOUT_Register and bits Rename the CamelCase and convert the enum and inline function into defines. Use the BIT() macro to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 62 +++++++++++++------------- drivers/staging/comedi/drivers/ni_stc.h | 38 +++++++--------- 2 files changed, 48 insertions(+), 52 deletions(-) commit 37e0ecee83a41b08361c33ea627e0d2e0a9ea88d Author: H Hartley Sweeten Date: Fri May 1 14:59:09 2015 -0700 staging: comedi: ni_stc.h: tidy up AO_*_Load_[AB]_Register Rename the CamelCase. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 34 +++++++++++++------------- drivers/staging/comedi/drivers/ni_stc.h | 21 ++++++---------- 2 files changed, 24 insertions(+), 31 deletions(-) commit ec8bf7250f8156a8ba0d2381046224e66042d83c Author: H Hartley Sweeten Date: Fri May 1 14:59:08 2015 -0700 staging: comedi: ni_stc.h: tidy up AO_Mode_2_Register and bits Rename the CamelCase and convert the enum into defines. Use the BIT() macro to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 28 +++++++++--------- drivers/staging/comedi/drivers/ni_stc.h | 41 +++++++++++++------------- 2 files changed, 34 insertions(+), 35 deletions(-) commit 4e5ce0a8f3a2e59e17b997601947f6863ce69256 Author: H Hartley Sweeten Date: Fri May 1 14:59:07 2015 -0700 staging: comedi: ni_stc.h: tidy up AO_Mode_1_Register and bits Rename the CamelCase. Use the BIT() macro to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 35 +++++++++++++------------- drivers/staging/comedi/drivers/ni_stc.h | 22 ++++++++-------- 2 files changed, 30 insertions(+), 27 deletions(-) commit aff27008376a83ee1603e688b68ceed24356c81e Author: H Hartley Sweeten Date: Fri May 1 14:59:06 2015 -0700 staging: comedi: ni_stc.h: tidy up G_{Mode,Load,Input}*_Register Rename the CamelCase and define he G0 and G1 registers to add clarity to the mio_regmap tables. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 32 +++++++++++++------------- drivers/staging/comedi/drivers/ni_stc.h | 17 +++++++------- 2 files changed, 25 insertions(+), 24 deletions(-) commit a2c537362a7975a7bab1e325872510dbf68b83c6 Author: H Hartley Sweeten Date: Fri May 1 14:59:05 2015 -0700 staging: comedi: ni_stc.h: tidy up AI_*_Load_[AB]_Registers Rename the CamelCase. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 22 +++++++++++----------- drivers/staging/comedi/drivers/ni_stc.h | 14 +++++++------- 2 files changed, 18 insertions(+), 18 deletions(-) commit b134cc58b81069ea6e1322a883e4bd66726a9f2d Author: H Hartley Sweeten Date: Fri May 1 14:59:04 2015 -0700 staging: comedi: ni_stc.h: tidy up AI_Mode_2_Register and bits Rename the CamelCase. Use the BIT() macro to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 43 ++++++++++++-------------- drivers/staging/comedi/drivers/ni_stc.h | 28 ++++++++--------- 2 files changed, 34 insertions(+), 37 deletions(-) commit bd358f5e2920db00f9c5f6c4267a22b0e6c17960 Author: H Hartley Sweeten Date: Fri May 1 14:59:03 2015 -0700 staging: comedi: ni_stc.h: tidy up AI_Mode_1_Register and bits Rename the CamelCase. Use the BIT() macro to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 29 +++++++++++++++----------- drivers/staging/comedi/drivers/ni_stc.h | 20 +++++++++--------- 2 files changed, 27 insertions(+), 22 deletions(-) commit 59a97c3c867797c68bf14ce1620ac8a8f695eef0 Author: H Hartley Sweeten Date: Fri May 1 14:59:02 2015 -0700 staging: comedi: ni_stc.h: tidy up DIO_Control_Register and bits Rename the CamelCase. Use the BIT() macro to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 46 +++++++++++++------------- drivers/staging/comedi/drivers/ni_stc.h | 16 ++++----- 2 files changed, 31 insertions(+), 31 deletions(-) commit 05aafeea0c771895c49fb43c00f05a31ff9f2ba2 Author: H Hartley Sweeten Date: Fri May 1 14:59:01 2015 -0700 staging: comedi: ni_stc.h: tidy up DIO_Output_Register and bits Rename the CamelCase. Use the BIT() macro to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 28 ++++++++++++++------------ drivers/staging/comedi/drivers/ni_stc.h | 16 +++++++-------- 2 files changed, 23 insertions(+), 21 deletions(-) commit 7bfcc2d4cd676ec5b29799a1865c25f48489c869 Author: H Hartley Sweeten Date: Fri May 1 14:59:00 2015 -0700 staging: comedi: ni_stc.h: tidy up AO_Command_1_Register and bits Rename the CamelCase. Use the BIT() macro to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 38 +++++++++++++++----------- drivers/staging/comedi/drivers/ni_stc.h | 36 ++++++++++++------------ 2 files changed, 40 insertions(+), 34 deletions(-) commit 4c4d715a7d482a8547abf1b1ab6a0fc24846c935 Author: H Hartley Sweeten Date: Fri May 1 14:58:59 2015 -0700 staging: comedi: ni_stc.h: tidy up AI_Command_1_Register and bits Rename the CamelCase. Use the BIT() macro to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 60 +++++++++++++------------- drivers/staging/comedi/drivers/ni_stc.h | 34 +++++++-------- 2 files changed, 48 insertions(+), 46 deletions(-) commit 5fa2fa44af1930f1d3f84f8cfbca95a0a80547e7 Author: H Hartley Sweeten Date: Fri May 1 14:58:58 2015 -0700 staging: comedi: ni_stc.h: tidy up G_Command_Register Rename the CamelCase and define the G0 and G1 registers to add clarity to the mio_regmap tables. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 8 ++++---- drivers/staging/comedi/drivers/ni_stc.h | 4 +++- 2 files changed, 7 insertions(+), 5 deletions(-) commit 382b3c4f9a9ed7ce8b019b41cd3ba505426665c8 Author: H Hartley Sweeten Date: Fri May 1 14:58:57 2015 -0700 staging: comedi: ni_stc.h: tidy up AO_Command_2_Register and bits Rename the CamelCase. Use the BIT() macro to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 14 +++++------ drivers/staging/comedi/drivers/ni_stc.h | 34 +++++++++++++------------- 2 files changed, 24 insertions(+), 24 deletions(-) commit a1da35a5c549b5a75c77dfee289d0a38823e78cf Author: H Hartley Sweeten Date: Fri May 1 14:58:56 2015 -0700 staging: comedi: ni_stc.h: tidy up AI_Command_2_Register and bits Rename the CamelCase. Use the BIT() macro to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 22 ++++++++++---------- drivers/staging/comedi/drivers/ni_stc.h | 28 +++++++++++++------------- 2 files changed, 25 insertions(+), 25 deletions(-) commit 4a6de8327d125158827ad72d6d07d674c98e0387 Author: H Hartley Sweeten Date: Fri May 1 14:58:55 2015 -0700 staging: comedi: ni_stc.h: tidy up Interrupt_B_Ack_Register and bits Rename the CamelCase. Use the BIT() macro to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 28 ++++++++-------- drivers/staging/comedi/drivers/ni_stc.h | 45 +++++++++++++++----------- 2 files changed, 40 insertions(+), 33 deletions(-) commit 480456d3d6f51e09c4a631afa983434ed7e35d15 Author: H Hartley Sweeten Date: Fri May 1 14:58:54 2015 -0700 staging: comedi: ni_stc.h: tidy up Interrupt_A_Ack_Register and bits Rename the CamelCase. Use the BIT() macro to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 37 ++++++++------------------ drivers/staging/comedi/drivers/ni_stc.h | 37 ++++++++++++++++---------- 2 files changed, 34 insertions(+), 40 deletions(-) commit b81ddcc3c9e09ba73af2b18dfaf910d40125b6cd Author: H Hartley Sweeten Date: Fri May 1 14:58:53 2015 -0700 staging: comedi: ni_mio_common: remove disabled GPCT functions The GPCT (general purpose counter timer) is handled by the ni_tio and ni_tiocmd modules. Remove the old disabled code in this file. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 82 -------------------------- 1 file changed, 82 deletions(-) commit 793b1936067c8bb6abd7272e06348e4d70abc69a Author: H Hartley Sweeten Date: Fri May 1 14:58:52 2015 -0700 staging: comedi: ni_stc.h: tidy up NI_M_INTC_STATUS_REG bits Rename the CamelCase and convert enums into defines. Use the BIT() macro to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_stc.h | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 60f078f974b24c10414b10f518996108a80fd1b1 Author: H Hartley Sweeten Date: Fri May 1 14:58:51 2015 -0700 staging: comedi: ni_stc.h: tidy up NI_M_INTC_ENA_REG bits Rename the CamelCase and convert enums into defines. Use the BIT() macro to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 2 +- drivers/staging/comedi/drivers/ni_stc.h | 5 +---- 2 files changed, 2 insertions(+), 5 deletions(-) commit 258f004754c436c31447123b9f2f8337e35b8037 Author: H Hartley Sweeten Date: Fri May 1 14:58:50 2015 -0700 staging: comedi: ni_stc.h: tidy up NI_M_CDO_MODE_REG bits Rename the CamelCase and convert enums into defines. Use the BIT() macro to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 11 +++++----- drivers/staging/comedi/drivers/ni_stc.h | 29 +++++++++++++------------- 2 files changed, 20 insertions(+), 20 deletions(-) commit b9abc4aa75197f48d54092f36576249312dff55a Author: H Hartley Sweeten Date: Fri May 1 14:58:49 2015 -0700 staging: comedi: ni_mio_common: remove BUG() check in ni_cdio_cmd() The cmd->scan_begin_src was validated in ni_cdio_cmdtest() and can only be TRIG_EXT. Remove the switch statement and unnecessary BUG() check. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) commit f9a8f6067da172c58390dd5d1b786b4e4e790f61 Author: H Hartley Sweeten Date: Fri May 1 14:58:48 2015 -0700 staging: comedi: ni_stc.h: tidy up NI_M_CDI_MODE_REG bits Rename the CamelCase and convert enums into defines. Use the BIT() macro to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_stc.h | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) commit 3c3eb8eaa75fc698f4edb7517830b112f51c11d0 Author: H Hartley Sweeten Date: Fri May 1 14:58:47 2015 -0700 staging: comedi: ni_stc.h: tidy up NI_M_CDIO_CMD_REG bits Rename the CamelCase and convert enums into defines. Use the BIT() macro to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 23 ++++++++------ drivers/staging/comedi/drivers/ni_stc.h | 43 ++++++++++++-------------- 2 files changed, 33 insertions(+), 33 deletions(-) commit d53be924c8260266b72244c92399ec68d2eb8871 Author: H Hartley Sweeten Date: Fri May 1 14:58:46 2015 -0700 staging: comedi: ni_stc.h: tidy up NI_M_CDIO_STATUS_REG bits Rename the CamelCase and convert enums into defines. Use the BIT() macro to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 7 ++++--- drivers/staging/comedi/drivers/ni_stc.h | 27 +++++++++++++------------- 2 files changed, 18 insertions(+), 16 deletions(-) commit 2dd0825fb4e53ee23f2391cc7c5b4afee8b1c8e1 Author: H Hartley Sweeten Date: Fri May 1 14:58:45 2015 -0700 staging: comedi: ni_stc.h: tidy up NI_M_CDIO_DMA_SEL_REG bits Rename the CamelCase and convert enums into macros to set the bits in this register. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 17 ++++++++++------- drivers/staging/comedi/drivers/ni_stc.h | 11 ++++------- 2 files changed, 14 insertions(+), 14 deletions(-) commit 0dee7ecc4dac113469b42d75f314d94e62c834a5 Author: H Hartley Sweeten Date: Fri May 1 14:58:44 2015 -0700 staging: comedi: ni_stc.h: tidy up NI_M_PFI_FILTER_REG bits Rename the CamelCase and convert the inline helper functions that set the bits in this register to macros. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 4 ++-- drivers/staging/comedi/drivers/ni_stc.h | 14 ++------------ 2 files changed, 4 insertions(+), 14 deletions(-) commit 43e9d883f02a57fe989ebd568e2508f7f4da25ef Author: H Hartley Sweeten Date: Fri May 1 14:58:43 2015 -0700 staging: comedi: ni_stc.h: tidy up NI_M_PFI_OUT_SEL_REG bits Rename the CamelCase and convert the inline helper functions that set/get the bits in this register to macros. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 6 +++--- drivers/staging/comedi/drivers/ni_stc.h | 22 ++++------------------ 2 files changed, 7 insertions(+), 21 deletions(-) commit cc679f9746ea1fbdc00b53deda3c1dc6edc8d5f3 Author: H Hartley Sweeten Date: Fri May 1 14:58:42 2015 -0700 staging: comedi: ni_stc.h: tidy up NI_M_CAL_PWM_REG bits Rename the CamelCase and convert the inline helper functions that set the bits in this register to macros. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 4 ++-- drivers/staging/comedi/drivers/ni_stc.h | 12 ++---------- 2 files changed, 4 insertions(+), 12 deletions(-) commit b06afa15400182ee5d46b97462fc179ce36b0107 Author: H Hartley Sweeten Date: Fri May 1 14:58:41 2015 -0700 staging: comedi: ni_stc.h: tidy up NI_M_AO_REF_ATTENUATION_REG bits Rename the CamelCase and convert the enum into defines. Use the BIT() macro to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 4 ++-- drivers/staging/comedi/drivers/ni_stc.h | 5 +---- 2 files changed, 3 insertions(+), 6 deletions(-) commit bae453048752599aa4acedfc3b0c1244744ec2b7 Author: H Hartley Sweeten Date: Fri May 1 14:58:40 2015 -0700 staging: comedi: ni_stc.h: tidy up NI_M_AO_CFG_BANK_REG bits Rename the CamelCase and convert the enum into defines. Use the BIT() macro to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 16 ++++++++-------- drivers/staging/comedi/drivers/ni_stc.h | 21 ++++++++++----------- 2 files changed, 18 insertions(+), 19 deletions(-) commit 41f9f0bfcf7ab2121dfeef0d8928421e214c4dee Author: H Hartley Sweeten Date: Fri May 1 14:58:39 2015 -0700 staging: comedi: ni_stc.h: tidy up NI_M_AI_CFG_BYPASS_FIFO_REG bits Rename the CamelCase and convert the enum into defines. Use the BIT() macro to define the bits. Convert the inline helper functions into macros. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 27 +++++--------- drivers/staging/comedi/drivers/ni_stc.h | 51 +++++++++++--------------- 2 files changed, 30 insertions(+), 48 deletions(-) commit b1c70645286c50e9fb5338b45d388e1176e881d5 Author: H Hartley Sweeten Date: Fri May 1 14:58:38 2015 -0700 staging: comedi: ni_stc.h: tidy up NI_M_PLL_STATUS_REG bits Rename the CamelCase and convert the enum into defines. Use the BIT() macro to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 2 +- drivers/staging/comedi/drivers/ni_stc.h | 5 +---- 2 files changed, 2 insertions(+), 5 deletions(-) commit b965e6a4ab970ae9bdd2517402ea51039b061326 Author: H Hartley Sweeten Date: Fri May 1 14:58:37 2015 -0700 staging: comedi: ni_stc.h: tidy up NI_M_PLL_CTRL_REG bits Rename the CamelCase and convert the enum into defines. Use the BIT() macro to define the bits. Convert the inline functions MSeries_PLL_Divisor_Bits() and MSeries_PLL_Multiplier_Bits() to macros. The helper function ni_mseries_get_pll_parameters() always returns valid values for the 'divisor' and 'multiplier' so the sanity checking can safely be removed. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 14 ++++------ drivers/staging/comedi/drivers/ni_stc.h | 38 +++++++------------------- 2 files changed, 15 insertions(+), 37 deletions(-) commit 40aafd79a8b82ba506e28009cfa7c46bba813ce8 Author: H Hartley Sweeten Date: Fri May 1 14:58:36 2015 -0700 staging: comedi: ni_stc.h: tidy up NI_M_CLK_FOUT2_REG bits Rename the CamelCase and convert the enum into defines. Use the BIT() macro to define the bits. Convert the inline function MSeries_PLL_In_Source_Select_RTSI_Bits() to a macro. The caller always passes valid values for 'RTIS_channel' so the sanity checking can safely be removed. Tidy up ni_mseries_set_pll_master_clock() to remove the unnecessary extra indent level for the code that sets a RTSI channel for the PLL source. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 46 ++++++++++++-------------- drivers/staging/comedi/drivers/ni_stc.h | 38 ++++++--------------- 2 files changed, 32 insertions(+), 52 deletions(-) commit 67d2d05859f58a5c591e183a3a89837ee502b1cc Author: H Hartley Sweeten Date: Fri May 1 14:58:35 2015 -0700 staging: comedi: ni_stc.h: tidy up NI_M_AI_CFG_FIFO_DATA_REG bits Rename all the CamelCase and convert the enum and helper functions into defines. Use the BIT() macro to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 21 ++++++------- drivers/staging/comedi/drivers/ni_stc.h | 41 +++++++++----------------- 2 files changed, 23 insertions(+), 39 deletions(-) commit 975b6d25c00c5bba5dfa77d062bde7f4772d34d7 Author: H Hartley Sweeten Date: Fri May 1 14:58:34 2015 -0700 staging: comedi: ni_stc.h: rename M_Offset_* symbols Renamme these CamelCase symbols. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 129 ++++++++++++------------- drivers/staging/comedi/drivers/ni_stc.h | 95 +++++++++--------- 2 files changed, 110 insertions(+), 114 deletions(-) commit b6cd5c228edefaa0143faffdb1ebf85e3afc5a43 Author: H Hartley Sweeten Date: Fri May 1 14:58:33 2015 -0700 staging: comedi: ni_stc.h: simplify MSeries_AI_Config_Bank_Bits() Simplify this helper function by using a bit-shift to set the high banks select bit. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_stc.h | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit f496471df95ef0a218d5ad8af9d6954f88c7072f Author: H Hartley Sweeten Date: Fri May 1 14:58:32 2015 -0700 staging: comedi: ni_stc.h: reg_type is not needed by MSeries_AI_Config_Bank_Bits() This helper function sets the bits in the M_Offset_AI_Config_FIFO_Data register to select the correct bank to configure a given analog output channel. The NI M Series boards are defined by the boardinfo to have 16, 32, or 80 channels. Only 2 of the M Series boards have 80 channels, those boards happen to have a reg_type of ni_reg_622x. The bank for the 16 and 32 channel boards is selected by the 'channel & 0x30' calculation (comedi channels 0 to 15 or 31). This also selects the bank for the first 64 channels of the 80 channel boards. The additional '|= 0x400' sets the bank to access the extra channels (comedi channels >= 63). Since all the non ni_reg_622x boards have at most 32 channels, the extra check of the 'reg_type' is not required in this function. Remove it as well as the parameter. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 3 +-- drivers/staging/comedi/drivers/ni_stc.h | 10 ++++------ 2 files changed, 5 insertions(+), 8 deletions(-) commit d2dde226094cb4d6e3116da09bf2d9803785683d Author: H Hartley Sweeten Date: Fri May 1 14:58:31 2015 -0700 staging: comedi: ni_stc.h: tidy up M_Offset_* values For aesthetics, define the M_Offset_* values instead of using an enum. Convert the inline helpers used to get some of the M-Series register offsets into macros. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_stc.h | 155 +++++++++++--------------------- 1 file changed, 52 insertions(+), 103 deletions(-) commit e0852f6ac1949f2d2612861ab608a5b1c614150c Author: H Hartley Sweeten Date: Fri May 1 14:58:30 2015 -0700 staging: comedi: ni_mio_common: simplify ni_m_series_set_pfi_routing() This function is overly complex due to the M_Offset_PFI_Output_Select() helper using a 1 based index for the registers and the private data using a 0 based index for the cached values. Modify the M_Offset_PFI_Output_Select() helper to use a 0 based index and remove the sanity check which can never happen. The 'n' value passed is calculated from the subdevice channel which will always be in range. Tidy up the function by using a local variable to mask/set the pfi output select bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 20 +++++++++----------- drivers/staging/comedi/drivers/ni_stc.h | 7 +------ 2 files changed, 10 insertions(+), 17 deletions(-) commit 0a9752d81a636ccd01f473ee8c85b8a05f06a92b Author: H Hartley Sweeten Date: Fri May 1 14:58:29 2015 -0700 staging: comedi: ni_mio_common: open code the M-Series GPCT register offsets Remove the enum m_series_register_offsets values that are only used in the lookup tables for the GPCT to STC register mapping and just open code the values. Having the extra level of indirection does not add any additional clarity and it gets rid of some of the CamelCase symbols. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 20 ++++++++++---------- drivers/staging/comedi/drivers/ni_stc.h | 10 ---------- 2 files changed, 10 insertions(+), 20 deletions(-) commit cfdb3429da1c481ea8774588ca9268a447108526 Author: H Hartley Sweeten Date: Fri May 1 14:58:28 2015 -0700 staging: comedi: ni_mio_common: refactor gpct to stc register handling The NI General Purpose Counter Timer (gpct) registers are mapped to the STC registers with a big switch statement. Create a lookup table to handle the mapping ot the registers. This is easier to maintain. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 175 +++++++++---------------- 1 file changed, 62 insertions(+), 113 deletions(-) commit 2475c548e77dda4b7815bb81f65d04242d46d6fb Author: H Hartley Sweeten Date: Fri May 1 14:58:27 2015 -0700 staging: comedi: ni_mio_common: open code the M-Series regmap offsets Remove the enum m_series_register_offsets values that are only used in the lookup tables for the STC to M-Series register mapping and just open code the values. Having the extra level of indirection does not add any additional clarity and it gets rid of some of the CamelCase symbols. Some of the registers are not currently used by the driver so the mappings were not present in the original switch code. Add the missing register mappings to the lookup tables. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 143 ++++++++++++++----------- drivers/staging/comedi/drivers/ni_stc.h | 82 -------------- 2 files changed, 79 insertions(+), 146 deletions(-) commit 05dd0c9fcb34f8335728a2c4ea7f5bb5829900bc Author: H Hartley Sweeten Date: Fri May 1 14:58:26 2015 -0700 staging: comedi: ni_mio_common: refactor m-series stc register handling For M-Series boards (devpriv->is_m_series), the STC registers need to be remapped. This is currently handled with some big switch statements to convert the STC register offset to the M-Series offset. Some of the registers also need special handling due to differences in the register size on the M-Series boards. Create some lookup tables to handle the remapping of the read and write registers. These are easier to maintain and can contain the register size so that a common function can be used instead of the separate helpers. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 352 ++++++++----------------- 1 file changed, 115 insertions(+), 237 deletions(-) commit 5ccca155675a5a2d491257a441306dd8547695c2 Merge: 7192a5d 1038a68 Author: Greg Kroah-Hartman Date: Sat May 9 18:15:50 2015 +0200 Merge tag 'iio-for-v4.2a' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into staging-next Jonathan writes: First round of new drivers, functionality and cleanups for the 4.2 cycle New drivers / device support * st sensors driver, lsm303dlh magnetometer support. * ltr501 - support ltr301 and ltr559 chips. New functionality * IIO_CHAN_INFO_CALIBEMISSIVITY for thermopile sensors. * kxcjk1013 - make driver operational with external trigger. * Add iio targets to the tools Makefile. Cleanups * st sensors - more helpful error message if device id wrong or irq request fails, explicitly make the Block Data Update optional rather than relying on writes to address 0 not doing anything, make interrupt support optional (Not always wired, and not all devices actually have an interrupt line.) * kxcjk-1013 white space additions for readability, add the KXCJ9000 ACPI id as seen in the wild. * sx9500 - GPIO reset support, refactor the GPIO interrupt code, add power management, optimize power usage by powering down when possible, rename the gpio interrupt pin to be more useful, trivial return path simplification, trivial formatting fixes. * isl29018 - move towards ABI compliance with a view to moving this driver out of staging, add some brackets to ensure code works as expected. Note there is no actual bug as the condition being tested is always true (with current devices). * ltr501 - add regmap support to get caching etc for later patches, fix a parameter sanity check that always fails (bug introduced earlier in this series), ACPI enumeration support, interrupt rate control support, interrupt support in general and integration time control support, code alignment cleanups. * mma9553 - a number of little cleanups following a review from Hartmut after I'd already applied the original driver patch. * tmp006 - prefix some defines with TMP006 for consistency. * tsl4531 - cleanup some wrong prefixes, presumably from copy and paste. * mlx90614 - check for errors in read values, add power management, add emissivity setting, add device tree binding documentation, fix a duplicate const warning. * ti_am335x_adc - refactor the DT parsing into a separate function. commit 6e65104504feaff41848defcef9c2c16c119f90c Author: Rafał Miłecki Date: Thu May 7 14:13:03 2015 +0200 brcmfmac: check result of USB firmware request This prevents silence failures with driver waiting (infinitely) for a callback. Signed-off-by: Rafał Miłecki Acked-by: Arend van Spriel Signed-off-by: Kalle Valo drivers/net/wireless/brcm80211/brcmfmac/usb.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit d5c5181cd9fac12c9ea1ba3a250c77dca768410e Author: Dan Carpenter Date: Thu May 7 12:59:19 2015 +0300 brcmfmac: cleanup a sizeof() "flowrings" and "*flowrings" are both pointers so this always returns sizeof(void *) and the current code works fine. But "*flowrings" is intended here and static checkers complain, so lets change it. Signed-off-by: Dan Carpenter Signed-off-by: Kalle Valo drivers/net/wireless/brcm80211/brcmfmac/pcie.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6f157edb4daa75ffc9e756b2ee8159270418d66f Author: Eliad Peller Date: Wed May 6 11:29:54 2015 +0300 wl18xx: fallback to default conf in case of invalid conf file If the wl18xx-conf.bin file is missing or invalid (e.g. due to recent driver change), fallback to default configuration instead of failing driver load. Reported-by: Marc Kleine-Budde Signed-off-by: Eliad Peller Signed-off-by: Kalle Valo drivers/net/wireless/ti/wl18xx/main.c | 45 +++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 20 deletions(-) commit 4aff53ef18e4a444dea060ab5d25128f87093d54 Author: Xinming Hu Date: Mon May 4 22:10:08 2015 +0530 mwifiex: parsing aid while receiving association response cfg80211 would complain about invalid AID in during TDLS setup. This was happening because we use same AID value as provide by AP while forming setup messages. Parse AID from Association response and filter BIT14 and BIT15 of AID to get valid AID. Signed-off-by: Xinming Hu Signed-off-by: Avinash Patil Signed-off-by: Cathy Luo Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/join.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit 4e0ff946ee0b010a917dad6ae2fcbdc7e6f9ac16 Author: Dmitry Torokhov Date: Thu Apr 30 16:52:02 2015 -0700 mwifiex: do not return success when command times out wait_event_interruptible_timeout() returns 0 upon timeout. We should convert it to a negative error code (such as -ETIMEDOUT) instead of returning it directly, as return code of 0 indicates that command was executed. Signed-off-by: Dmitry Torokhov Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/sta_ioctl.c | 2 ++ 1 file changed, 2 insertions(+) commit a534f3b60cac1af43a8dd0ab01afb25e36c9b631 Author: Nick Kossifidis Date: Wed Apr 29 23:51:22 2015 +0000 ath9k: Enable short repeat by default on ath9k_htc Normal FFT reports generate a LOT of data, to save resources enable short repeat by default also on ath9k_htc (it's already enabled by default on ath9k). This can always be changed from userspace if needed. Signed-off-by: Nick Kossifidis Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/htc_drv_init.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2aa56cca3571fd08c0c38f3e2d4bb0bfb3def3c5 Author: Nick Kossifidis Date: Wed Apr 29 23:51:21 2015 +0000 ath9k: Mix the received FFT bins to the random pool E/M noise is a pretty good source of entropy so we mix the FFT measurements of the E/M spectrum to /dev/random pool. Note that this doesn't increase the pool's entropy count but it still helps on improving the output of /dev/(u)random. Signed-off-by: Nick Kossifidis Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/common-spectral.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) commit 3ea2ce3f7e63728b97fb52be4034ba3d8f5ddba5 Author: Nick Kossifidis Date: Wed Apr 29 23:51:20 2015 +0000 ath9k: No need for that extra memset Temp buffer is only used for fixing malformed frames, there is no need to memset it every time. Signed-off-by: Nick Kossifidis Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/common-spectral.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 6b8f85a9188321e59995d172efab9e97afd3906f Author: Nick Kossifidis Date: Wed Apr 29 23:51:19 2015 +0000 ath9k: Skip FFT reports if we are out of output buffers There is no reason to keep processing FFT reports if there is no space left on the relayfs buffers for the results. This saves lots of CPU cycles, especially on normal (non-short) reports. Signed-off-by: Nick Kossifidis Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/common-spectral.c | 28 ++++++++++++++++++++++++ 1 file changed, 28 insertions(+) commit 9acc98b9ecf9d12bfc6e3f914f3fc446d49b8641 Author: Nick Kossifidis Date: Wed Apr 29 23:51:18 2015 +0000 ath9k: No need for that extra memcpy No need to copy the frame to the temporary buffer when its length is ok. Signed-off-by: Nick Kossifidis Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/common-spectral.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 0f2c75de6422f63d614ce5e1ac13d83968c19fec Author: Nick Kossifidis Date: Wed Apr 29 23:51:17 2015 +0000 ath9k: Skip malformed frames on normal FFT report Since we have lots of frames on a normal FFT report don't bother processing the malformed ones. Only try to fix malformed frames in case of a short FFT report (only a single frame on the report). Signed-off-by: Nick Kossifidis Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/common-spectral.c | 94 ++++++++++++++++-------- 1 file changed, 62 insertions(+), 32 deletions(-) commit 72dd2cdaade639edc91483d5b0e526701926f630 Author: Nick Kossifidis Date: Wed Apr 29 23:51:16 2015 +0000 ath9k: Support processing of multiple FFT frames per report. Since we can identify the FFT frames on the report by checking the consistency of their magnitude info, we can process all of them, even when some of them are corrupted. This patch introduces two functions to quickly verify the integrity of the mag_info fields and some further tweaks to detect the frames in the report and process them. Note that in case of missing bytes we don't duplicate them, instead we leave them as zeroes. This way we get less noise on the FFT plot. Signed-off-by: Nick Kossifidis Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/common-spectral.c | 267 ++++++++++++++++++++--- 1 file changed, 237 insertions(+), 30 deletions(-) commit 7fa580c193490beb0fb713ecb7611bf59f00021b Author: Nick Kossifidis Date: Wed Apr 29 23:51:15 2015 +0000 ath9k: Perform integrity checks when processing FFT frames a) Check that the maximum magnitude is at the specified index b) Check if the maximum magnitude index is at dc_pos and if so calculate a new one (value at dc_pos is invalid) c) Check if the specified maximum magnitude is indeed the maximum Signed-off-by: Nick Kossifidis Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/common-spectral.c | 169 ++++++++++++++++++++++- 1 file changed, 163 insertions(+), 6 deletions(-) commit 58b5e4c731b5b8455571fbd64a100e3afe4fa501 Author: Nick Kossifidis Date: Wed Apr 29 23:51:14 2015 +0000 ath9k: Move processing of FFT frames to different functions Since more checks and fixes will be added later and ath_cmn_process_fft is already big enough. Signed-off-by: Nick Kossifidis Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/common-spectral.c | 276 ++++++++++++++--------- drivers/net/wireless/ath/ath9k/common-spectral.h | 6 + 2 files changed, 171 insertions(+), 111 deletions(-) commit e33f855d436846f0e6034311bf9f52f32808d9a7 Author: Nick Kossifidis Date: Wed Apr 29 23:51:13 2015 +0000 ath9k: Fix hanlding of maximum magnitude index Maximum magnitude index is a 5bit signed integer, convert to an 8bit signed integer and then "shift" it so that it can be used as an array index. Note that the current implementation adds +1 to the index value (so it can't be used as an array index) and it's only valid for HT20 channels. Note that the maximum magnitude index is not being used by the userspace tools that parse FFT samples (they just use maximum magnitude) so this doesn't break userspace compatibility. Signed-off-by: Nick Kossifidis Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/common-spectral.c | 9 +++++--- drivers/net/wireless/ath/ath9k/common-spectral.h | 29 ++++++++++++++++++------ 2 files changed, 28 insertions(+), 10 deletions(-) commit 04a81e183d506f8bcf919b9dbbb287d6723e989e Author: Nick Kossifidis Date: Wed Apr 29 23:51:12 2015 +0000 ath9k: Add a new debug flag for FFT spectral scan FFT spectral scan is a functionality that makes sense to have its own debug flag. Signed-off-by: Nick Kossifidis Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath.h | 2 ++ 1 file changed, 2 insertions(+) commit bd763482c82ea24aacb51e0ba92b24074143bc86 Author: Eyal Reizer Date: Wed Apr 29 17:50:03 2015 +0300 wl18xx: wlan_irq: support platform dependent interrupt types * Interrupt request need to happen when the wilink chip is powered on and driving the wlan_irq line. This avoids spurious interrupt issues that are a result of different external pulls configuration on different platforms * Allow working with wl18xx level-low and falling edge irqs by configuring wl18xx to invert the device interrupt Signed-off-by: Eyal Reizer Signed-off-by: Kalle Valo drivers/net/wireless/ti/wl18xx/main.c | 26 +++++++++++++++++++++++++- drivers/net/wireless/ti/wl18xx/reg.h | 1 + drivers/net/wireless/ti/wlcore/main.c | 26 ++++++++++++++------------ 3 files changed, 40 insertions(+), 13 deletions(-) commit ad48013783dc40e44505cfd9ca9ade7887792a62 Author: Masanari Iida Date: Mon Apr 27 23:14:58 2015 +0900 wireless: fix typos in mwifiex and rtlwifi This patch fix some spelling typo in drivers/net/wirless Signed-off-by: Masanari Iida Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/tdls.c | 2 +- drivers/net/wireless/rtlwifi/rtl8192ee/fw.c | 2 +- drivers/net/wireless/rtlwifi/rtl8723be/fw.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 91457eaa13abe35709ddf61e377f57a7b57d8bcc Author: Cathy Luo Date: Fri Apr 17 04:18:29 2015 -0700 mwifiex: reduce spinlock usage in main process We will reset more_task_flag at the end of main process routine. This optimization will help to remove spinlock operations at couple of places in the code. Signed-off-by: Cathy Luo Signed-off-by: Amitkumar Karwar Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/main.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit f022ea52d9a5007ae949aff8d4a1ec848bfdd66e Author: Felix Fietkau Date: Wed Apr 15 15:07:53 2015 +0200 bcma: enable 32 GPIO pins for BCM4707 Signed-off-by: Felix Fietkau Signed-off-by: Kalle Valo drivers/bcma/driver_gpio.c | 1 + 1 file changed, 1 insertion(+) commit 2d57b7126d6d80b9b97ce83335a246ca796babd2 Author: Felix Fietkau Date: Wed Apr 15 15:07:52 2015 +0200 bcma: use absolute base for SoC GPIO pins On some BCM5301x ARM devices, user space still needs to control some system GPIO pins for which no driver exists. This is a lot easier to do with a predictable GPIO base. Signed-off-by: Felix Fietkau Signed-off-by: Kalle Valo drivers/bcma/driver_gpio.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) commit c43655345234acb974144c1527cab7af77369f3a Author: Hante Meuleman Date: Tue Apr 14 20:10:33 2015 +0200 brcmfmac: Add support for multiple PCIE devices in nvram. With PCIE it is possible to support multiple devices with the same device type. They all load the same nvram file. In order to support this the nvram can specify which part of the nvram is for which pcie device. This patch adds support for these new types of nvram files. 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 | 189 ++++++++++++++++++++- drivers/net/wireless/brcm80211/brcmfmac/firmware.h | 6 + drivers/net/wireless/brcm80211/brcmfmac/pcie.c | 15 +- 3 files changed, 197 insertions(+), 13 deletions(-) commit 27aace2dcc9ac09776b36bbe281a85dde2c4a074 Author: Hante Meuleman Date: Tue Apr 14 20:10:32 2015 +0200 brcmfmac: add additional 43602 pcie device id. Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo drivers/net/wireless/brcm80211/brcmfmac/pcie.c | 1 + drivers/net/wireless/brcm80211/include/brcm_hw_ids.h | 1 + 2 files changed, 2 insertions(+) commit 67f3b6a3d1ca1d9c9e4912037562b123557c5fa7 Author: Arend van Spriel Date: Tue Apr 14 20:10:31 2015 +0200 brcmfmac: add support for BCM4358 PCIe device This patch adds support for the BCM4358 2x2 11ac device. Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo drivers/net/wireless/brcm80211/brcmfmac/chip.c | 1 + drivers/net/wireless/brcm80211/brcmfmac/pcie.c | 9 +++++++++ drivers/net/wireless/brcm80211/include/brcm_hw_ids.h | 2 ++ 3 files changed, 12 insertions(+) commit bdf1340cf20f8cb127850a6174aa9437c0941161 Author: Arend van Spriel Date: Tue Apr 14 20:10:30 2015 +0200 brcmfmac: fix sdio suspend and resume commit 330b4e4be937 ("brcmfmac: Add wowl support for SDIO devices.") changed the behaviour by removing the MMC_PM_KEEP_POWER flag for non-wowl scenario, which needs to be restored. Another necessary change is to mark the card as being non-removable. With this in place the suspend resume test passes successfully doing: # echo devices > /sys/power/pm_test # echo mem > /sys/power/state Note that power may still be switched off when system is going in S3 state. Reported-by: Fu, Zhonghui < Reviewed-by: Pieter-Paul Giesberts Reviewed-by: Franky (Zhenhui) Lin Signed-off-by: Arend van Spriel Acked-by: Ulf Hansson Signed-off-by: Kalle Valo drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) commit 8b36e98895e1cdf836995b14866101dcd23d01ea Author: Arend van Spriel Date: Tue Apr 14 20:10:29 2015 +0200 brcmfmac: process interrupt regardless sdiod state When the sdio bus state is not ready to process we abort the interrupt service routine. This is not wanted as it keeps the interrupt source active. Better clear the interrupt source. Reviewed-by: Hante Meuleman Reviewed-by: Pieter-Paul Giesberts Reviewed-by: Franky (Zhenhui) Lin Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo drivers/net/wireless/brcm80211/brcmfmac/sdio.c | 4 ---- 1 file changed, 4 deletions(-) commit ba5e8665b8058adaff64860c04497d663d703a08 Author: Arend van Spriel Date: Tue Apr 14 20:10:28 2015 +0200 brcmfmac: add support for BCM4324 rev B5 chipset This patch adds support for the BCM4324 B5 revision. This device is similar to BCM43241 from driver and firmware perspective. It is known to be used in Lenovo Thinkpad Tablet devices. Reviewed-by: Hante Meuleman Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo drivers/net/wireless/brcm80211/brcmfmac/sdio.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 7a7a87dc947c64214dc182b2a30aa0e4770be4cc Author: Arend van Spriel Date: Tue Apr 14 20:10:27 2015 +0200 brcmfmac: make scheduled scan support conditional The scheduled scan support depends on firmware supporting the PNO feature. This feature is optional so add a feature flag for this in the driver and announce scheduled scan support accordingly. Reviewed-by: Hante Meuleman Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c | 3 ++- drivers/net/wireless/brcm80211/brcmfmac/feature.c | 1 + drivers/net/wireless/brcm80211/brcmfmac/feature.h | 2 ++ 3 files changed, 5 insertions(+), 1 deletion(-) commit 28d96e5ee513f05576a24f9393a598118d1a73f9 Author: Arend van Spriel Date: Tue Apr 14 20:10:26 2015 +0200 brcmfmac: add description for feature flags Some feature flags were not described in the header file. Adding the description. Reviewed-by: Hante Meuleman Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo drivers/net/wireless/brcm80211/brcmfmac/feature.h | 2 ++ 1 file changed, 2 insertions(+) commit 8afe0ece7bfdb0046e4174ce9047321233335461 Author: Arend van Spriel Date: Tue Apr 14 20:10:25 2015 +0200 brcmfmac: update wiphy band information upon updating regulatory domain When change the country code the available channels may change. So the wiphy bands should be updated accordingly. Reviewed-by: Daniel (Deognyoun) Kim Reviewed-by: Hante Meuleman Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 58de92d2f95e91162ac036938010bbd8db715bde Author: Arend van Spriel Date: Tue Apr 14 20:10:24 2015 +0200 brcmfmac: use static superset of channels for wiphy bands The driver was constructing a list of channels per wiphy band by querying the device. This list is not what the hardware is able to do as it is already filtered by the country setting in the device. As user-space may change the country this would require updating the channel list which is not recommended [1]. This patch introduces a superset of channels. The individual channels are disabled appropriately by querying the device. [1] http://mid.gmane.org/1426706320.3001.21.camel@sipsolutions.net Reviewed-by: Hante Meuleman Reviewed-by: Daniel (Deognyoun) Kim Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c | 193 +++++++++++---------- 1 file changed, 106 insertions(+), 87 deletions(-) commit 9ab7b5b9b16025dab62b0f2c8d7f54cfce76e9c1 Author: Zhaoyang Liu Date: Mon Apr 13 21:32:25 2015 +0530 mwifiex: fix invalid HT IE configuration in FW This patch fixes an issue where it was discovered that driver is setting invalid HT IEs to FW. This was happening because bug in parsing HT IE. Driver would incorrectly point to start of HT IE while FW only needs actual HT configuration - excluding EID and length. Signed-off-by: Zhaoyang Liu Signed-off-by: Avinash Patil Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/uap_cmd.c | 2 +- drivers/net/wireless/mwifiex/util.c | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) commit 31a09a5d347854a9af29aa901f4f8ebd245ea78b Author: Avinash Patil Date: Mon Apr 13 21:32:24 2015 +0530 revert "mwifiex: enable aggregation for TID 6 and 7 streams" This patch reverts 'commit c5534844cdee ("mwifiex: enable aggregation for TID 6 and 7 streams")'. TID6 & TID7 is voice traffic which is quite time sensitive. Do not enable any type of aggregation on these TIDs. Signed-off-by: Avinash Patil Signed-off-by: Cathy Luo Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/wmm.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 7c79f1c9fd436c649a2f5b6fcf7c7290671511f2 Merge: 73b25f6 05c3274 Author: Kalle Valo Date: Sat May 9 16:21:49 2015 +0300 Merge tag 'iwlwifi-next-for-kalle-2015-05-03' of https://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-next * major rework of the scan code (Luca) * some work on the thermal code (Chaya Rachel) * some work on the firwmare debugging infrastructure commit 8a32222693af0edf4ad0ed2c6c4c9e383fd922dd Author: Peter Ujfalusi Date: Thu Apr 9 12:35:53 2015 +0300 dmaengine: omap-dma: Reduce the number of virtual channels Since the mapping between the hardware request lines and channels has been removed it no longer make sense to have too many channels. Set the number of channels to match with the number of logical channels supported by sDMA. Signed-off-by: Peter Ujfalusi Signed-off-by: Vinod Koul drivers/dma/omap-dma.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit eea531ea4147f60708c7ee9e53b5735ec387adb6 Author: Peter Ujfalusi Date: Thu Apr 9 12:35:52 2015 +0300 dmaengine: omap-dma: Remove mapping between virtual channels and requests Do not direct map the virtual channels to sDMA request number. When the sDMA is behind of a crossbar this direct mapping can cause situations when certain channel can not be requested since the crossbar request number will no longer match with the sDMA request line. The direct mapping for virtual channels with HW request lines will make it harder to implement MEM_TO_MEM mode for the driver. Signed-off-by: Peter Ujfalusi Signed-off-by: Vinod Koul drivers/dma/omap-dma.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit de506089e78bc7cea77c64a836f6cfc7fa592219 Author: Peter Ujfalusi Date: Thu Apr 9 12:35:51 2015 +0300 dmaengine: omap-dma: Take DMA request number from DT if it is available Use the dma-requests property from DT to get the number of DMA requests. In case of legacy boot or failure to find the property, use the default 127 as number of requests. Signed-off-by: Peter Ujfalusi Signed-off-by: Vinod Koul drivers/dma/omap-dma.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit 341ce712868d90fd68cc4635b7c9963a026f9207 Author: Peter Ujfalusi Date: Thu Apr 9 12:35:50 2015 +0300 dmaengine: omap-dma: Use defines for dma channels and request count Instead of magic numbers in the code, use define for number of logical DMA channels and DMA requests. Signed-off-by: Peter Ujfalusi Signed-off-by: Vinod Koul drivers/dma/omap-dma.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 73f67d35b5b96eaf6c5d90fc10527c15b135eda2 Author: Peter Ujfalusi Date: Thu Apr 9 12:35:48 2015 +0300 Documentation: devicetree: dma: Binding documentation for TI DMA crossbar The DRA7x has more peripherals with DMA requests than the sDMA can handle: 205 vs 127. All DMA requests are routed through the DMA crossbar, which can be configured to route selected incoming DMA requests to specific request line of the DMA controller. Signed-off-by: Peter Ujfalusi Signed-off-by: Vinod Koul .../devicetree/bindings/dma/ti-dma-crossbar.txt | 52 ++++++++++++++++++++++ 1 file changed, 52 insertions(+) commit 56f13c0d9524c5816f5dc9c91b9d766d6b1064ca Author: Peter Ujfalusi Date: Thu Apr 9 12:35:47 2015 +0300 dmaengine: of_dma: Support for DMA routers DMA routers are transparent devices used to mux DMA requests from peripherals to DMA controllers. They are used when the SoC integrates more devices with DMA requests then their controller can handle. DRA7x is one example of such SoC, where the sDMA can hanlde 128 DMA request lines, but in SoC level it has 205 DMA requests. The of_dma_router will be registered as of_dma_controller with special xlate function and additional parameters. The driver for the router is responsible to craft the dma_spec (in the of_dma_route_allocate callback) which can be used to requests a DMA channel from the real DMA controller. This way the router can be transparent for the system while remaining generic enough to be used in different environments. Signed-off-by: Peter Ujfalusi Signed-off-by: Vinod Koul Documentation/devicetree/bindings/dma/dma.txt | 28 +++++++++ drivers/dma/dmaengine.c | 7 +++ drivers/dma/of-dma.c | 89 +++++++++++++++++++++++++++ include/linux/dmaengine.h | 17 +++++ include/linux/of_dma.h | 21 +++++++ 5 files changed, 162 insertions(+) commit 32b0ed3ae66cd6114f8510161f833f05518c0395 Merge: cb30711 76d4084 Author: Ingo Molnar Date: Sat May 9 08:10:36 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: - 'perf probe' improvements: (Masami Hiramatsu) - Support glob wildcards for function name - Support $params special probe argument: Collect all function arguments - Make --line checks validate C-style function name. - Add --no-inlines option to avoid searching inline functions - Introduce new 'perf bench futex' benchmark: 'wake-parallel', to measure parallel waker threads generating contention for kernel locks (hb->lock). (Davidlohr Bueso) Bug fixes: - Improve 'perf top' to survive much longer on high core count machines, more work needed to refcount more data structures besides 'struct thread' and fix more races. (Arnaldo Carvalho de Melo) Infrastructure changes: - Move barrier.h mb/rmb/wmb API from tools/perf/ to kernel like tools/arch/ hierarchy. (Arnaldo Carvalho de Melo) - Borrow atomic.h from the kernel, initially the x86 implementations with a fallback to gcc intrinsics for the other arches, all the kernel like framework in place for doing arch specific implementations, preferrably cloning what is in the kernel to the greater extent possible. (Arnaldo Carvalho de Melo) - Protect the 'struct thread' lifetime with a reference counter, and protect data structures that contains its instances with a mutex. (Arnaldo Carvalho de Melo - Disable libdw DWARF unwind when built with NO_DWARF (Naveen N. Rao) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit 4d10da13467e223441d3b081eb70e91149ea5da9 Author: Dan Murphy Date: Fri May 8 16:02:43 2015 -0700 Input: add TI drv2665 haptics driver Add the TI drv2665 piezo haptic driver. This haptics IC requires the data to be streamed to the FIFO for continuous output. Datasheet can be found at: http://www.ti.com/product/drv2665 Signed-off-by: Dan Murphy Signed-off-by: Dmitry Torokhov .../devicetree/bindings/input/ti,drv2665.txt | 17 ++ drivers/input/misc/Kconfig | 11 + drivers/input/misc/Makefile | 1 + drivers/input/misc/drv2665.c | 322 +++++++++++++++++++++ 4 files changed, 351 insertions(+) commit 8a4dda79a383ed9b09aa3af3ef74941bec2ee042 Author: Dan Murphy Date: Fri May 8 16:01:39 2015 -0700 Input: ff-core - fix spelling mistake in ff-core Fix spelling of magnitude s/manginude/magnitude Signed-off-by: Dan Murphy Signed-off-by: Dmitry Torokhov drivers/input/ff-core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c857ea9e1c8fd5dc684fbc99ecb50f540549f659 Author: Dan Murphy Date: Fri May 8 15:59:57 2015 -0700 Input: drv2667 - fix Kconfig error for help screen Fix the Kconfig for the drv2667 as there was a copy/paste error. Signed-off-by: Dan Murphy Signed-off-by: Dmitry Torokhov drivers/input/misc/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ecda6547d7e4410c00168abae56d6fa4271d0a7e Author: Fathi Boudra Date: Fri Apr 10 10:16:20 2015 +0300 ARM: defconfig: hisi: enable HiSilicon hip04 ethernet controller Signed-off-by: Fathi Boudra Signed-off-by: Wei Xu arch/arm/configs/hisi_defconfig | 1 + 1 file changed, 1 insertion(+) commit c66b0c67b42c7cca785fc39c93fcb52e07022ce3 Author: Zhou Wang Date: Wed Mar 25 14:57:44 2015 +0800 ARM: hip04: add GPIO configure in hisi_defconfig The GPIO controller of Hisilicon hip04 Soc uses the IP from Sysnopsis, gpio-dwapb.c can be reused to support this GPIO controller. This patch adds related configure item in hisi_defconfig. Acked-by: Linus Walleij Signed-off-by: Zhou Wang Signed-off-by: Wei Xu arch/arm/configs/hisi_defconfig | 1 + 1 file changed, 1 insertion(+) commit 6656bde5ec868d89cc803539f9edf85a89497b6a Author: Rafael J. Wysocki Date: Fri May 8 22:41:05 2015 +0200 ACPI / PM: Drop stale comment from acpi_power_transition() An old comment in acpi_power_transition() indicates that support for ordering power resources needs to be added, but the current code handles that already. Drop the comment to avoid confusion. Signed-off-by: Rafael J. Wysocki drivers/acpi/power.c | 2 -- 1 file changed, 2 deletions(-) commit 5b3f341f098d60da2970758db6a05bd851eb6b39 Author: Shaohua Li Date: Fri May 8 10:51:33 2015 -0700 blk-mq: make plug work for mutiple disks and queues Last patch makes plug work for multiple queue case. However it only works for single disk case, because it assumes only one request in the plug list. If a task is accessing multiple disks, eg MD/DM, the assumption is wrong. Let blk_attempt_plug_merge() record request from the same queue. V2: use NULL parameter in !mq case. Fix a bug. Add comments in blk_attempt_plug_merge to make it less (hopefully) confusion. Cc: Jens Axboe Cc: Christoph Hellwig Signed-off-by: Shaohua Li Signed-off-by: Jens Axboe block/blk-core.c | 15 ++++++++++++--- block/blk-mq.c | 14 +++++++++----- block/blk.h | 3 ++- 3 files changed, 23 insertions(+), 9 deletions(-) commit f984df1f0f71ef96254411fc3576a10ae561be71 Author: Shaohua Li Date: Fri May 8 10:51:32 2015 -0700 blk-mq: do limited block plug for multiple queue case plug is still helpful for workload with IO merge, but it can be harmful otherwise especially with multiple hardware queues, as there is (supposed) no lock contention in this case and plug can introduce latency. For multiple queues, we do limited plug, eg plug only if there is request merge. If a request doesn't have merge with following request, the requet will be dispatched immediately. V2: check blk_queue_nomerges() as suggested by Jeff. Cc: Jens Axboe Cc: Christoph Hellwig Signed-off-by: Shaohua Li Signed-off-by: Jens Axboe block/blk-mq.c | 82 ++++++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 59 insertions(+), 23 deletions(-) commit 239ad215f0d8388cbe6c09a0fab8ad8ff5dba420 Author: Shaohua Li Date: Fri May 8 10:51:31 2015 -0700 blk-mq: avoid re-initialize request which is failed in direct dispatch If we directly issue a request and it fails, we use blk_mq_merge_queue_io(). But we already assigned bio to a request in blk_mq_bio_to_request. blk_mq_merge_queue_io shouldn't run blk_mq_bio_to_request again. Signed-off-by: Shaohua Li Signed-off-by: Jens Axboe block/blk-mq.c | 2 ++ 1 file changed, 2 insertions(+) commit e6c4438ba7cb615448492849970aaf0aaa1cc973 Author: Jeff Moyer Date: Fri May 8 10:51:30 2015 -0700 blk-mq: fix plugging in blk_sq_make_request The following appears in blk_sq_make_request: /* * If we have multiple hardware queues, just go directly to * one of those for sync IO. */ We clearly don't have multiple hardware queues, here! This comment was introduced with this commit 07068d5b8e (blk-mq: split make request handler for multi and single queue): We want slightly different behavior from them: - On single queue devices, we currently use the per-process plug for deferred IO and for merging. - On multi queue devices, we don't use the per-process plug, but we want to go straight to hardware for SYNC IO. The old code had this: use_plug = !is_flush_fua && ((q->nr_hw_queues == 1) || !is_sync); and that was converted to: use_plug = !is_flush_fua && !is_sync; which is not equivalent. For the single queue case, that second half of the && expression is always true. So, what I think was actually inteded follows (and this more closely matches what is done in blk_queue_bio). V2: delete the 'likely', which should not be a big deal Signed-off-by: Jeff Moyer Signed-off-by: Shaohua Li Signed-off-by: Jens Axboe block/blk-mq.c | 36 ++++++++++++++---------------------- 1 file changed, 14 insertions(+), 22 deletions(-) commit 5596d0d591bea25424c07f0fce00df5af593b31f Author: Shaohua Li Date: Fri May 8 10:51:29 2015 -0700 sched: always use blk_schedule_flush_plug in io_schedule_out block plug callback could sleep, so we introduce a parameter 'from_schedule' and corresponding drivers can use it to destinguish a schedule plug flush or a plug finish. Unfortunately io_schedule_out still uses blk_flush_plug(). This causes below output (Note, I added a might_sleep() in raid1_unplug to make it trigger faster, but the whole thing doesn't matter if I add might_sleep). In raid1/10, this can cause deadlock. This patch makes io_schedule_out always uses blk_schedule_flush_plug. This should only impact drivers (as far as I know, raid 1/10) which are sensitive to the 'from_schedule' parameter. [ 370.817949] ------------[ cut here ]------------ [ 370.817960] WARNING: CPU: 7 PID: 145 at ../kernel/sched/core.c:7306 __might_sleep+0x7f/0x90() [ 370.817969] do not call blocking ops when !TASK_RUNNING; state=2 set at [] prepare_to_wait+0x2f/0x90 [ 370.817971] Modules linked in: raid1 [ 370.817976] CPU: 7 PID: 145 Comm: kworker/u16:9 Tainted: G W 4.0.0+ #361 [ 370.817977] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.7.5-20140709_153802- 04/01/2014 [ 370.817983] Workqueue: writeback bdi_writeback_workfn (flush-9:1) [ 370.817985] ffffffff81cd83be ffff8800ba8cb298 ffffffff819dd7af 0000000000000001 [ 370.817988] ffff8800ba8cb2e8 ffff8800ba8cb2d8 ffffffff81051afc ffff8800ba8cb2c8 [ 370.817990] ffffffffa00061a8 000000000000041e 0000000000000000 ffff8800ba8cba28 [ 370.817993] Call Trace: [ 370.817999] [] dump_stack+0x4f/0x7b [ 370.818002] [] warn_slowpath_common+0x8c/0xd0 [ 370.818004] [] warn_slowpath_fmt+0x46/0x50 [ 370.818006] [] ? prepare_to_wait+0x2f/0x90 [ 370.818008] [] ? prepare_to_wait+0x2f/0x90 [ 370.818010] [] __might_sleep+0x7f/0x90 [ 370.818014] [] raid1_unplug+0xd3/0x170 [raid1] [ 370.818024] [] blk_flush_plug_list+0x8a/0x1e0 [ 370.818028] [] ? bit_wait+0x50/0x50 [ 370.818031] [] io_schedule_timeout+0x130/0x140 [ 370.818033] [] bit_wait_io+0x36/0x50 [ 370.818034] [] __wait_on_bit+0x65/0x90 [ 370.818041] [] ? ext4_read_block_bitmap_nowait+0xbc/0x630 [ 370.818043] [] ? bit_wait+0x50/0x50 [ 370.818045] [] out_of_line_wait_on_bit+0x72/0x80 [ 370.818047] [] ? autoremove_wake_function+0x40/0x40 [ 370.818050] [] __wait_on_buffer+0x44/0x50 [ 370.818053] [] ext4_wait_block_bitmap+0xe0/0xf0 [ 370.818058] [] ext4_mb_init_cache+0x206/0x790 [ 370.818062] [] ? lru_cache_add+0x1c/0x50 [ 370.818064] [] ext4_mb_init_group+0x11e/0x200 [ 370.818066] [] ext4_mb_load_buddy+0x341/0x360 [ 370.818068] [] ext4_mb_find_by_goal+0x93/0x2f0 [ 370.818070] [] ? ext4_mb_normalize_request+0x1e4/0x5b0 [ 370.818072] [] ext4_mb_regular_allocator+0x67/0x460 [ 370.818074] [] ? ext4_mb_normalize_request+0x1e4/0x5b0 [ 370.818076] [] ext4_mb_new_blocks+0x4cb/0x620 [ 370.818079] [] ext4_ext_map_blocks+0x4c6/0x14d0 [ 370.818081] [] ? ext4_es_lookup_extent+0x4e/0x290 [ 370.818085] [] ext4_map_blocks+0x14d/0x4f0 [ 370.818088] [] ext4_writepages+0x76d/0xe50 [ 370.818094] [] do_writepages+0x21/0x50 [ 370.818097] [] __writeback_single_inode+0x60/0x490 [ 370.818099] [] writeback_sb_inodes+0x2da/0x590 [ 370.818103] [] ? trylock_super+0x1b/0x50 [ 370.818105] [] ? trylock_super+0x1b/0x50 [ 370.818107] [] __writeback_inodes_wb+0x9f/0xd0 [ 370.818109] [] wb_writeback+0x34b/0x3c0 [ 370.818111] [] bdi_writeback_workfn+0x23f/0x550 [ 370.818116] [] process_one_work+0x1c8/0x570 [ 370.818117] [] ? process_one_work+0x14b/0x570 [ 370.818119] [] worker_thread+0x11b/0x470 [ 370.818121] [] ? process_one_work+0x570/0x570 [ 370.818124] [] kthread+0xf8/0x110 [ 370.818126] [] ? kthread_create_on_node+0x210/0x210 [ 370.818129] [] ret_from_fork+0x42/0x70 [ 370.818131] [] ? kthread_create_on_node+0x210/0x210 [ 370.818132] ---[ end trace 7b4deb71e68b6605 ]--- V2: don't change ->in_iowait Cc: NeilBrown Signed-off-by: Shaohua Li Reviewed-by: Jeff Moyer Signed-off-by: Jens Axboe kernel/sched/core.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit dd6cf3e18decb4895503db1752bb5500c4dd588d Author: Shaohua Li Date: Fri May 8 10:51:28 2015 -0700 blk: clean up plug Current code looks like inner plug gets flushed with a blk_finish_plug(). Actually it's a nop. All requests/callbacks are added to current->plug, while only outmost plug is assigned to current->plug. So inner plug always has empty request/callback list, which makes blk_flush_plug_list() a nop. This tries to make the code more clear. Signed-off-by: Shaohua Li Reviewed-by: Jeff Moyer Reviewed-by: Christoph Hellwig Signed-off-by: Jens Axboe block/blk-core.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit 76d408498b08447e0f61dfdd611aeb6e8e61ce80 Author: Naveen N. Rao Date: Wed Apr 29 16:45:31 2015 +0530 perf build: Disable libdw DWARF unwind when built with NO_DWARF We get a linker error if we try to build with NO_DWARF since we build util/unwind-libdw.c, but do not include -ldw Signed-off-by: Naveen N. Rao Link: http://lkml.kernel.org/r/1430306131-6780-1-git-send-email-naveen.n.rao@linux.vnet.ibm.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/config/Makefile | 4 ++++ 1 file changed, 4 insertions(+) commit 4c859351226c920b227fec040a3b447f0d482af3 Author: Masami Hiramatsu Date: Fri May 8 10:03:35 2015 +0900 perf probe: Support glob wildcards for function name Support glob wildcards for function name when adding new probes. This will allow us to build caches of function-entry level information with $params. e.g. ---- # perf probe --no-inlines --add 'kmalloc* $params' Added new events: probe:kmalloc_slab (on kmalloc* with $params) probe:kmalloc_large_node (on kmalloc* with $params) probe:kmalloc_order_trace (on kmalloc* with $params) You can now use it in all perf tools, such as: perf record -e probe:kmalloc_order_trace -aR sleep 1 # perf probe --list probe:kmalloc_large_node (on kmalloc_large_node@mm/slub.c with size flags node) probe:kmalloc_order_trace (on kmalloc_order_trace@mm/slub.c with size flags order) probe:kmalloc_slab (on kmalloc_slab@mm/slab_common.c with size flags) ---- Signed-off-by: Masami Hiramatsu Tested-by: Arnaldo Carvalho de Melo Cc: Ananth N Mavinakayanahalli Cc: David Ahern Cc: Hemant Kumar Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20150508010335.24812.19972.stgit@localhost.localdomain Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/dwarf-aux.c | 16 ++++++++++++++++ tools/perf/util/dwarf-aux.h | 3 +++ tools/perf/util/probe-event.c | 19 ++++++++++++++----- tools/perf/util/probe-event.h | 1 + tools/perf/util/probe-finder.c | 27 +++++++++++++++++++++------ tools/perf/util/util.h | 4 ++++ 6 files changed, 59 insertions(+), 11 deletions(-) commit 6cfd1f6805ca0b4a341794d67eb605089435f938 Author: Masami Hiramatsu Date: Fri May 8 10:03:33 2015 +0900 perf probe: Add --no-inlines option to avoid searching inline functions Add --no-inlines(--inlines) option to avoid searching inline functions. Searching all functions which matches glob pattern can take a long time and find a lot of inline functions. With this option perf-probe searches target on the non-inlined functions. Signed-off-by: Masami Hiramatsu Cc: Ananth N Mavinakayanahalli Cc: David Ahern Cc: Hemant Kumar Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20150508010333.24812.86568.stgit@localhost.localdomain Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/perf-probe.txt | 4 ++++ tools/perf/builtin-probe.c | 2 ++ tools/perf/util/probe-event.h | 1 + tools/perf/util/probe-finder.c | 2 +- 4 files changed, 8 insertions(+), 1 deletion(-) commit ddb2f58f9f8febaf817496a010130f108bb9a431 Author: Masami Hiramatsu Date: Fri May 8 10:03:31 2015 +0900 perf probe: Introduce probe_conf global configs Introduce probe_conf global configuration parameters for probe-event and probe-finder, and removes related parameters from APIs. Signed-off-by: Masami Hiramatsu Cc: Ananth N Mavinakayanahalli Cc: David Ahern Cc: Hemant Kumar Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20150508010330.24812.21095.stgit@localhost.localdomain Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-probe.c | 21 ++++++----------- tools/perf/util/probe-event.c | 53 ++++++++++++++++++------------------------ tools/perf/util/probe-event.h | 13 +++++++---- tools/perf/util/probe-finder.c | 17 +++++++------- tools/perf/util/probe-finder.h | 7 ++---- 5 files changed, 48 insertions(+), 63 deletions(-) commit 442255215cb9651668cb09350b0d51e111219f17 Author: Masami Hiramatsu Date: Fri May 8 10:03:28 2015 +0900 perf probe: Use perf_probe_event.target instead of passing as an argument Use perf_probe_event.target field for the target binary instead of passing it as an argument. Signed-off-by: Masami Hiramatsu Cc: Ananth N Mavinakayanahalli Cc: David Ahern Cc: Hemant Kumar Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20150508010328.24812.67887.stgit@localhost.localdomain Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-probe.c | 1 - tools/perf/util/probe-event.c | 55 ++++++++++++++++++++----------------------- tools/perf/util/probe-event.h | 4 ++-- 3 files changed, 27 insertions(+), 33 deletions(-) commit 598adc5c9c1cfd3f154f6d9df72b38eda63e306e Author: Davidlohr Bueso Date: Fri May 8 11:38:00 2015 -0700 perf bench futex: Handle spurious wakeups Wrap futex_wait around a loop and catch for EINTR. Either a spurious wakeup occurred or a signal interrupted is, either way we need to block again. Signed-off-by: Davidlohr Bueso Cc: Davidlohr Bueso Link: http://lkml.kernel.org/r/1431110280-20231-2-git-send-email-dave@stgolabs.net Signed-off-by: Arnaldo Carvalho de Melo tools/perf/bench/futex-wake.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit d65817b4e707068c2dd3e002e87c2a0294aabc2c Author: Davidlohr Bueso Date: Fri May 8 11:37:59 2015 -0700 perf bench futex: Support parallel waker threads The futex-wake benchmark only measures wakeups done within a single process. While this has value in its own, it does not really generate any hb->lock contention. A new benchmark 'wake-parallel' is added, by extending the futex-wake code such that we can measure parallel waker threads. The program output shows the avg per-thread latency in order to complete its share of wakeups: Run summary [PID 13474]: blocking on 512 threads (at [private] futex 0xa88668), 8 threads waking up 64 at a time. [Run 1]: Avg per-thread latency (waking 64/512 threads) in 0.6230 ms (+-15.31%) [Run 2]: Avg per-thread latency (waking 64/512 threads) in 0.5175 ms (+-29.95%) [Run 3]: Avg per-thread latency (waking 64/512 threads) in 0.7578 ms (+-18.03%) [Run 4]: Avg per-thread latency (waking 64/512 threads) in 0.8944 ms (+-12.54%) [Run 5]: Avg per-thread latency (waking 64/512 threads) in 1.1204 ms (+-23.85%) Avg per-thread latency (waking 64/512 threads) in 0.7826 ms (+-9.91%) Naturally, different combinations of numbers of blocking and waker threads will exhibit different information. Signed-off-by: Davidlohr Bueso Tested-by: Arnaldo Carvalho de Melo Cc: Davidlohr Bueso Link: http://lkml.kernel.org/r/1431110280-20231-1-git-send-email-dave@stgolabs.net Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/perf-bench.txt | 3 + tools/perf/bench/Build | 1 + tools/perf/bench/bench.h | 2 + tools/perf/bench/futex-wake-parallel.c | 294 ++++++++++++++++++++++++++++++++ tools/perf/builtin-bench.c | 1 + 5 files changed, 301 insertions(+) commit b91fc39f4ad7503419dd617df78401fa36266cb3 Author: Arnaldo Carvalho de Melo Date: Mon Apr 6 20:43:22 2015 -0300 perf machine: Protect the machine->threads with a rwlock In addition to using refcounts for the struct thread lifetime management, we need to protect access to machine->threads from concurrent access. That happens in 'perf top', where a thread processes events, inserting and deleting entries from that rb_tree while another thread decays hist_entries, that end up dropping references and ultimately deleting threads from the rb_tree and releasing its resources when no further hist_entry (or other data structures, like in 'perf sched') references it. So the rule is the same for refcounts + protected trees in the kernel, get the tree lock, find object, bump the refcount, drop the tree lock, return, use object, drop the refcount if no more use of it is needed, keep it if storing it in some other data structure, drop when releasing that data structure. I.e. pair "t = machine__find(new)_thread()" with a "thread__put(t)", and "perf_event__preprocess_sample(&al)" with "addr_location__put(&al)". The addr_location__put() one is because as we return references to several data structures, we may end up adding more reference counting for the other data structures and then we'll drop it at addr_location__put() time. Acked-by: David Ahern Cc: Adrian Hunter Cc: Borislav Petkov Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-bs9rt4n0jw3hi9f3zxyy3xln@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-annotate.c | 10 ++-- tools/perf/builtin-diff.c | 9 ++-- tools/perf/builtin-inject.c | 1 + tools/perf/builtin-kmem.c | 7 ++- tools/perf/builtin-kvm.c | 6 ++- tools/perf/builtin-lock.c | 8 +++- tools/perf/builtin-mem.c | 5 +- tools/perf/builtin-report.c | 9 ++-- tools/perf/builtin-sched.c | 82 ++++++++++++++++++++++---------- tools/perf/builtin-script.c | 20 ++++---- tools/perf/builtin-timechart.c | 5 +- tools/perf/builtin-top.c | 2 +- tools/perf/builtin-trace.c | 36 +++++++++----- tools/perf/tests/code-reading.c | 22 +++++---- tools/perf/tests/dwarf-unwind.c | 1 + tools/perf/tests/hists_common.c | 1 + tools/perf/tests/hists_cumulate.c | 4 +- tools/perf/tests/hists_filter.c | 4 +- tools/perf/tests/hists_link.c | 8 +++- tools/perf/tests/hists_output.c | 4 +- tools/perf/tests/mmap-thread-lookup.c | 2 + tools/perf/tests/thread-mg-share.c | 12 ++--- tools/perf/util/build-id.c | 5 +- tools/perf/util/db-export.c | 14 ++++-- tools/perf/util/event.c | 15 ++++++ tools/perf/util/event.h | 2 + tools/perf/util/machine.c | 89 ++++++++++++++++++++++++++++------- tools/perf/util/machine.h | 5 +- tools/perf/util/thread.c | 10 +++- 29 files changed, 284 insertions(+), 114 deletions(-) commit e1ed3a5b87ed6759e16ec93f16aae83d2cc77ca2 Author: Arnaldo Carvalho de Melo Date: Tue Apr 7 11:59:50 2015 -0300 perf tools: Use atomic_t to implement thread__{get,put} refcnt Fixing bugs in 'perf top' where the used thread unsafe 'struct thread' refcount implementation was falling apart because we really use two threads. Acked-by: David Ahern Cc: Adrian Hunter Cc: Borislav Petkov Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-hil2hol294u5ntcuof4jhmn6@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/thread.c | 6 +++--- tools/perf/util/thread.h | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) commit da6d8567512df11e0473b710c07de87efde5709c Author: Arnaldo Carvalho de Melo Date: Tue Apr 7 11:53:41 2015 -0300 tools include: Add basic atomic.h implementation from the kernel sources Uses the arch/x86/ kernel code for x86_64/i386, fallbacking to a gcc intrinsics implementation that has been tested in at least sparc64. Will be used for reference counting in tools/perf. Acked-by: David Ahern Cc: Adrian Hunter Cc: Borislav Petkov Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-knfpjowhgyh6x4z0kfuk389j@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/arch/x86/include/asm/atomic.h | 65 ++++++++++++++++++++++++++++++++++ tools/arch/x86/include/asm/rmwcc.h | 41 +++++++++++++++++++++ tools/include/asm-generic/atomic-gcc.h | 63 ++++++++++++++++++++++++++++++++ tools/include/asm/atomic.h | 10 ++++++ tools/include/linux/atomic.h | 6 ++++ tools/include/linux/types.h | 4 +++ tools/perf/MANIFEST | 4 +++ 7 files changed, 193 insertions(+) commit 42b09d7b0e3d57a92b938fde5fcb532e9a88e1ea Author: Arnaldo Carvalho de Melo Date: Thu May 7 17:17:17 2015 -0300 perf tools: Move generic barriers out of perf-sys.h We will need it for atomic.h, so move it from the ad-hoc tools/perf/ place to a tools/ subset of the kernel arch/ hierarchy. The parisc stuff was just using the asm-generic/barrier.h, no need to introduce a tools/arch/parisc/ tree just yet. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-tfas9bs1gje0hfsvhqgrosd6@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/include/asm/barrier.h | 2 ++ tools/perf/perf-sys.h | 9 --------- 2 files changed, 2 insertions(+), 9 deletions(-) commit d3bd708114a37bcb472715818ba21d61ef71e86a Author: Arnaldo Carvalho de Melo Date: Fri May 8 10:02:00 2015 -0300 perf tools: Move tile barrier.h stuff to tools/arch/tile/include/asm/barrier.h We will need it for atomic.h, so move it from the ad-hoc tools/perf/ place to a tools/ subset of the kernel arch/ hierarchy. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-jwcs4r1lo0ld8a4ricbe0zug@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/arch/tile/include/asm/barrier.h | 15 +++++++++++++++ tools/include/asm/barrier.h | 2 ++ tools/perf/MANIFEST | 1 + tools/perf/perf-sys.h | 3 --- 4 files changed, 18 insertions(+), 3 deletions(-) commit e2164f0406db75cb1ae0bf49ae7915f0ab10e201 Author: Arnaldo Carvalho de Melo Date: Fri May 8 09:40:36 2015 -0300 perf tools: Move mips barrier.h stuff to tools/arch/mips/include/asm/barrier.h We will need it for atomic.h, so move it from the ad-hoc tools/perf/ place to a tools/ subset of the kernel arch/ hierarchy. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Deng-Cheng Zhu Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Ralf Baechle Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-c5a8m8lbjuy0agep6giykxbz@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/arch/mips/include/asm/barrier.h | 20 ++++++++++++++++++++ tools/include/asm/barrier.h | 2 ++ tools/perf/MANIFEST | 1 + tools/perf/perf-sys.h | 9 --------- 4 files changed, 23 insertions(+), 9 deletions(-) commit 3d3337de8900a199a7ab304f742a6ad2a973b9f4 Author: Arnaldo Carvalho de Melo Date: Fri May 8 08:53:26 2015 -0300 perf tools: Move xtensa barrier.h stuff to tools/arch/xtensa/include/asm/barrier.h We will need it for atomic.h, so move it from the ad-hoc tools/perf/ place to a tools/ subset of the kernel arch/ hierarchy. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-lp68dspbtjcwbpzd7x5c6zp5@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/arch/xtensa/include/asm/barrier.h | 18 ++++++++++++++++++ tools/include/asm/barrier.h | 2 ++ tools/perf/MANIFEST | 1 + tools/perf/perf-sys.h | 3 --- 4 files changed, 21 insertions(+), 3 deletions(-) commit 4f3db0746c91453a88e302d1aac30be08ba9e52f Author: Arnaldo Carvalho de Melo Date: Thu May 7 18:14:25 2015 -0300 perf tools: Move arm(64) barrier.h stuff to tools/arch/arm*/include/asm/barrier.h We will need it for atomic.h, so move it from the ad-hoc tools/perf/ place to a tools/ subset of the kernel arch/ hierarchy. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-cgfhreaejd7ohitdjccu9k2o@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/arch/arm/include/asm/barrier.h | 12 ++++++++++++ tools/arch/arm64/include/asm/barrier.h | 16 ++++++++++++++++ tools/include/asm/barrier.h | 4 ++++ tools/perf/MANIFEST | 1 + tools/perf/perf-sys.h | 10 ---------- 5 files changed, 33 insertions(+), 10 deletions(-) commit 163e589d0519b6d6c1e5500f4d14b1fc10b736fe Author: Arnaldo Carvalho de Melo Date: Thu May 7 18:03:14 2015 -0300 perf tools: Move ia64 barrier.h stuff to tools/arch/ia64/include/asm/barrier.h We will need it for atomic.h, so move it from the ad-hoc tools/perf/ place to a tools/ subset of the kernel arch/ hierarchy. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-4op0qdukegrdumyefz4icxk0@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/arch/ia64/include/asm/barrier.h | 48 +++++++++++++++++++++++++++++++++++ tools/include/asm/barrier.h | 2 ++ tools/perf/MANIFEST | 1 + tools/perf/perf-sys.h | 3 --- 4 files changed, 51 insertions(+), 3 deletions(-) commit 0da85d1e38b4c186d2248f0239b72d465f5b406c Author: Arnaldo Carvalho de Melo Date: Thu May 7 17:52:19 2015 -0300 perf tools: Move alpha barrier.h stuff to tools/arch/alpha/include/asm/barrier.h We will need it for atomic.h, so move it from the ad-hoc tools/perf/ place to a tools/ subset of the kernel arch/ hierarchy. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-vs2plxuph0ne3zcupijgjy9z@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/arch/alpha/include/asm/barrier.h | 8 ++++++++ tools/include/asm/barrier.h | 2 ++ tools/perf/MANIFEST | 1 + tools/perf/perf-sys.h | 3 --- 4 files changed, 11 insertions(+), 3 deletions(-) commit 94cdda6b98b3708f04f426204542aa69d4780fa9 Author: Arnaldo Carvalho de Melo Date: Thu May 7 17:27:23 2015 -0300 perf tools: Move sparc barrier.h stuff to tools/arch/sparc/include/asm/barrier.h We will need it for atomic.h, so move it from the ad-hoc tools/perf/ place to a tools/ subset of the kernel arch/ hierarchy. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-f0d04b9x63grt30nahpw9ei0@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/arch/sparc/include/asm/barrier.h | 8 ++++++ tools/arch/sparc/include/asm/barrier_32.h | 6 +++++ tools/arch/sparc/include/asm/barrier_64.h | 42 +++++++++++++++++++++++++++++++ tools/include/asm/barrier.h | 2 ++ tools/perf/MANIFEST | 3 +++ tools/perf/perf-sys.h | 9 ------- 6 files changed, 61 insertions(+), 9 deletions(-) commit 827634added7f38b7d724cab1dccdb2b004c13c3 Author: Arnaldo Carvalho de Melo Date: Thu May 7 17:09:48 2015 -0300 perf tools: Move sh barrier.h stuff to tools/arch/sh/include/asm/barrier.h We will need it for atomic.h, so move it from the ad-hoc tools/perf/ place to a tools/ subset of the kernel arch/ hierarchy. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-6xqb97k782wqp1r3v6jqayki@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/arch/sh/include/asm/barrier.h | 32 ++++++++++++++++++++++++++++++++ tools/include/asm/barrier.h | 2 ++ tools/perf/MANIFEST | 1 + tools/perf/perf-sys.h | 9 --------- 4 files changed, 35 insertions(+), 9 deletions(-) commit c6e39db1d0284ff573f171b6754837d39b8a358d Author: Arnaldo Carvalho de Melo Date: Thu May 7 17:04:06 2015 -0300 tools: Adopt asm-generic/barrier.h From the kernel's include/asm-generic/barrier.h, will be used by the sh barrier.h implementation. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-emjznw0rjsmfyx2wfixss1gv@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/include/asm-generic/barrier.h | 44 +++++++++++++++++++++++++++++++++++++ tools/perf/MANIFEST | 1 + 2 files changed, 45 insertions(+) commit 5ac69737dc5e25fb1c26d18059c8e17ce2671d5d Author: Arnaldo Carvalho de Melo Date: Thu May 7 13:38:16 2015 -0300 perf tools: Move barrier() definition to tools/include/linux/compiler.h To make it generally accessible by other tools/ projects, also will be used in the tools/arch/*/include/asm/barrier.h files that are being introduced now. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-qnjdqwu3vcnt14vqmr6wu788@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/include/linux/compiler.h | 4 ++++ tools/perf/perf-sys.h | 2 -- 2 files changed, 4 insertions(+), 2 deletions(-) commit 07d207ac0c55a413c358153bd3012c5fa51a0554 Author: Arnaldo Carvalho de Melo Date: Wed May 6 18:44:53 2015 -0300 perf tools: Move s390 barrier.h stuff to tools/arch/s390/include/asm/barrier.h We will need it for atomic.h, so move it from the ad-hoc tools/perf/ place to a tools/ subset of the kernel arch/ hierarchy. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-zv4x77074resrkl4ayzf5e7d@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/arch/s390/include/asm/barrier.h | 30 ++++++++++++++++++++++++++++++ tools/include/asm/barrier.h | 2 ++ tools/perf/MANIFEST | 1 + tools/perf/perf-sys.h | 3 --- 4 files changed, 33 insertions(+), 3 deletions(-) commit e43a19c9c2c30cf88ffafb8390a4c53400b2467e Author: Arnaldo Carvalho de Melo Date: Wed May 6 18:35:20 2015 -0300 perf tools: Move powerpc barrier.h stuff to tools/arch/powerpc/include/asm/barrier.h We will need it for atomic.h, so move it from the ad-hoc tools/perf/ place to a tools/ subset of the kernel arch/ hierarchy. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-pk6f5x9vh8k2ebzhh9uj5wo2@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/arch/powerpc/include/asm/barrier.h | 29 +++++++++++++++++++++++++++++ tools/include/asm/barrier.h | 2 ++ tools/perf/MANIFEST | 1 + tools/perf/perf-sys.h | 3 --- 4 files changed, 32 insertions(+), 3 deletions(-) commit 361c564eeff4b78f1303b86e8e8f07fc547bd2c9 Author: Arnaldo Carvalho de Melo Date: Thu Apr 30 12:33:22 2015 -0300 perf tools: Move x86 barrier.h stuff to tools/arch/x86/include/asm/barrier.h We will need it for atomic.h, so move it from the ad-hoc tools/perf/ place to a tools/ subset of the kernel arch/ hierarchy. Other aches will follow, each in a cset. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-vy6bqmsvm6puibpay2cy4wid@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/arch/x86/include/asm/barrier.h | 28 ++++++++++++++++++++++++++++ tools/include/asm/barrier.h | 3 +++ tools/perf/MANIFEST | 2 ++ tools/perf/perf-sys.h | 7 +------ 4 files changed, 34 insertions(+), 6 deletions(-) commit f8bffbf1222a64336a81974fc25fe846656ac53e Author: Masami Hiramatsu Date: Wed May 6 21:46:53 2015 +0900 perf probe: Support $params special probe argument $params is similar to $vars but matches only function parameters not local variables. Thus, this is useful for tracing function parameter changing or tracing function call with parameters. Testing it: # perf probe tcp_sendmsg '$params' Added new event: probe:tcp_sendmsg (on tcp_sendmsg with $params) You can now use it in all perf tools, such as: perf record -e probe:tcp_sendmsg -aR sleep 1 # perf probe -l probe:tcp_sendmsg (on tcp_sendmsg@acme/git/linux/net/ipv4/tcp.c with iocb sk msg size) # perf record -a -e probe:* press some random letters to generate TCP (sshd) traffic... ^C[ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 0.223 MB perf.data (6 samples) ] # perf script sshd 6385 [2] 3.907529: probe:tcp_sendmsg: iocb=0xffff8800ac4cfe70 sk=0xffff88042196c140 msg=0xffff8800ac4cfda8 size=0x24 sshd 6385 [2] 4.138973: probe:tcp_sendmsg: iocb=0xffff8800ac4cfe70 sk=0xffff88042196c140 msg=0xffff8800ac4cfda8 size=0x24 sshd 6385 [2] 4.378966: probe:tcp_sendmsg: iocb=0xffff8800ac4cfe70 sk=0xffff88042196c140 msg=0xffff8800ac4cfda8 size=0x24 sshd 6385 [2] 4.603681: probe:tcp_sendmsg: iocb=0xffff8800ac4cfe70 sk=0xffff88042196c140 msg=0xffff8800ac4cfda8 size=0x24 sshd 6385 [2] 4.818455: probe:tcp_sendmsg: iocb=0xffff8800ac4cfe70 sk=0xffff88042196c140 msg=0xffff8800ac4cfda8 size=0x24 sshd 6385 [2] 5.043603: probe:tcp_sendmsg: iocb=0xffff8800ac4cfe70 sk=0xffff88042196c140 msg=0xffff8800ac4cfda8 size=0x24 # cat /sys/kernel/debug/tracing/events/probe/tcp_sendmsg/format name: tcp_sendmsg ID: 1927 format: field:unsigned short common_type; offset:0; size:2; signed:0; field:unsigned char common_flags; offset:2; size:1; signed:0; field:unsigned char common_preempt_count; offset:3; size:1; signed:0; field:int common_pid; offset:4; size:4; signed:1; field:unsigned long __probe_ip; offset:8; size:8; signed:0; field:u64 iocb; offset:16; size:8; signed:0; field:u64 sk; offset:24; size:8; signed:0; field:u64 msg; offset:32; size:8; signed:0; field:u64 size; offset:40; size:8; signed:0; print fmt: "(%lx) iocb=0x%Lx sk=0x%Lx msg=0x%Lx size=0x%Lx", REC->__probe_ip, REC->iocb, REC->sk, REC->msg, REC->size # Do some system wide tracing of this probe + write syscalls: # perf trace -e write --ev probe:* --filter-pids 6385 462.612 (0.010 ms): bash/19153 write(fd: 1, buf: 0x7f7556c78000, count: 29 ) = 29 462.701 (0.027 ms): sshd/19152 write(fd: 3, buf: 0x7f78dd12e160, count: 68 ) ... 462.701 ( ): probe:tcp_sendmsg:(ffffffff8163db30) iocb=0xffff8803ebec7e70 sk=0xffff88042196ab80 msg=0xffff8803ebec7da8 size=0x44) 462.710 (0.035 ms): sshd/19152 ... [continued]: write()) = 68 462.787 (0.009 ms): bash/19153 write(fd: 2, buf: 0x7f7556c77000, count: 22 ) = 22 462.865 (0.002 ms): sshd/19152 write(fd: 3, buf: 0x7f78dd12e160, count: 68 ) ... 462.865 ( ): probe:tcp_sendmsg:(ffffffff8163db30) iocb=0xffff8803ebec7e70 sk=0xffff88042196ab80 msg=0xffff8803ebec7da8 size=0x44) 462.873 (0.010 ms): sshd/19152 ... [continued]: write()) = 68 Signed-off-by: Masami Hiramatsu Tested-by: Arnaldo Carvalho de Melo Cc: Ananth N Mavinakayanahalli Cc: David Ahern Cc: Hemant Kumar Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20150506124653.4961.59806.stgit@localhost.localdomain [ Add some examples to the changelog message showing how to use it ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/perf-probe.txt | 2 +- tools/perf/util/probe-finder.c | 29 ++++++++++++++++------------- tools/perf/util/probe-finder.h | 3 +++ 3 files changed, 20 insertions(+), 14 deletions(-) commit 5a51fcd1f30c0f93bb54cec7201a3690032470cb Author: Masami Hiramatsu Date: Wed May 6 21:46:49 2015 +0900 perf probe: Skip kernel symbols which is out of .text Skip the kernel symbols which is out of .text, e.g. the functions in .inittext. Those are found in debuginfo/kallsyms, but already freed from memory. e.g. ---- # perf probe vfs_caches_init vfs_caches_init+0 is out of .text, skip it. Probe point 'vfs_caches_init' not found. Error: Failed to add events. ---- Signed-off-by: Masami Hiramatsu Tested-by: Arnaldo Carvalho de Melo Cc: Ananth N Mavinakayanahalli Cc: David Ahern Cc: Hemant Kumar Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20150506124649.4961.56249.stgit@localhost.localdomain Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/probe-event.c | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) commit 573709fdfd668423ba4202c4f1016e3cd7bdd134 Author: Masami Hiramatsu Date: Wed May 6 21:46:47 2015 +0900 perf probe: Make --line checks validate C-style function name Fix --line to check valid C-style function name and returns a semantic error if it is not. For example, previously, --line doesn't support lazy pattern but it doesn't recognized as a semantic error. ---- # perf probe -L 'func;return*:0-10' Specified source line is not found. Error: Failed to show lines. ---- With this patch, it is correctly handled as a semantic error. ---- # perf probe -L 'func;return*:0-10' Semantic error :'func;return*' is not a valid function name. ... ---- Signed-off-by: Masami Hiramatsu Tested-by: Arnaldo Carvalho de Melo Cc: Ananth N Mavinakayanahalli Cc: David Ahern Cc: Hemant Kumar Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20150506124647.4961.99473.stgit@localhost.localdomain Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/probe-event.c | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) commit 9bc9f3b6800e8de16f40a2da1d6ded3a391ea01a Author: Masami Hiramatsu Date: Wed May 6 21:46:45 2015 +0900 perf probe: Fix to return 0 when positive value returned Fix to return 0 when positive value returned from probe command. At least --vars can returns a positive value if it found a point. ---- # perf probe --vars vfs_read && echo succeeded! || echo failed! Available variables at vfs_read @ char* buf loff_t* pos size_t count struct file* file failed! ---- This fixes above problem. ---- # perf probe --vars vfs_read && echo succeeded! || echo failed! Available variables at vfs_read @ char* buf loff_t* pos size_t count struct file* file succeeded! ---- Signed-off-by: Masami Hiramatsu Tested-by: Arnaldo Carvalho de Melo Cc: Ananth N Mavinakayanahalli Cc: David Ahern Cc: Hemant Kumar Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20150506124645.4961.56973.stgit@localhost.localdomain Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-probe.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b8dc3984c1fce87a36d3247c9f722229692bec72 Author: Masami Hiramatsu Date: Wed May 6 21:46:42 2015 +0900 perf probe: Fix a typo for the flags of open Fix to pass O_APPEND by using bit-or with other flags, instead of passing it as mode. Signed-off-by: Masami Hiramatsu Cc: Ananth N Mavinakayanahalli Cc: David Ahern Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Cc: hemant@linux.vnet.ibm.com Link: http://lkml.kernel.org/r/20150506124642.4961.97878.stgit@localhost.localdomain Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/probe-event.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ae2cb1ac60758e99cec15e9edd68e0d22bfd310e Author: Masami Hiramatsu Date: Wed May 6 21:46:40 2015 +0900 perf probe: Fix to close probe_events file in error Fix perf-probe to close probe_events file if it failed to get existing probe's name. This also fix the return error code to -ENOMEM. Signed-off-by: Masami Hiramatsu Cc: Ananth N Mavinakayanahalli Cc: David Ahern Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Cc: hemant@linux.vnet.ibm.com Link: http://lkml.kernel.org/r/20150506124640.4961.26062.stgit@localhost.localdomain Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/probe-event.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 88792555125ce7043769c22f83166cca5e1255bd Author: Markus Reichl Date: Sat May 9 04:02:41 2015 +0900 ARM: dts: Add LEDs for exynos5422-odroidxu3 This patch adds the RGB-LED on XU3 as 3 gpio-leds. Signed-off-by: Markus Reichl Tested-by: Anand Moon Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos5422-odroidxu3.dts | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) commit 81573560150d2f1a6d8433475a3660fcbcf08519 Merge: c4b6c26 0cd3be6 Author: Michael Turquette Date: Fri May 8 11:57:23 2015 -0700 Merge branch 'clk-fixes' into clk-next commit bc7f9bbc80bcc77745b3f54ec4e7103e3e142bb9 Author: Michael Welling Date: Fri May 8 13:31:01 2015 -0500 spi: omap2-mcspi: Add gpio_request and init CS If GPIO chip select is specified, request the GPIO in the setup function and release it in the cleanup function. Signed-off-by: Michael Welling Signed-off-by: Mark Brown drivers/spi/spi-omap2-mcspi.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit c3f22501b52de17c6087b6fe6f2236e4183ac07c Author: Mauro Carvalho Chehab Date: Wed May 6 11:26:13 2015 -0300 media controller: add EXPERIMENTAL to Kconfig option for DVB support The Media Controller DVB support is still an experimental feature, as it is under heavy development. It is already said that it is an experimental feature at the help, but let make it even clearer and louder, as we may need to adjust some bits when we start using it on embedded drivers. Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5a13e40b28486c3a755a0388767615f197f4ae07 Author: Mauro Carvalho Chehab Date: Fri May 8 08:59:16 2015 -0300 media: replace bellow -> below Bellow is yelling. Ok, sometimes the code is yells a lot, but but this is not the case there ;) Signed-off-by: Mauro Carvalho Chehab drivers/media/common/siano/smsir.c | 2 +- drivers/media/dvb-frontends/drx39xyj/drxj.c | 2 +- drivers/media/dvb-frontends/drxk_hard.c | 2 +- drivers/media/dvb-frontends/tda10021.c | 2 +- drivers/media/dvb-frontends/tda10023.c | 2 +- drivers/media/i2c/tvaudio.c | 2 +- drivers/media/tuners/tuner-xc2028.c | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) commit fb1aeedb61adcb7651eada9eb79ddfa11f21f085 Author: Andrzej Hajda Date: Mon May 4 13:03:11 2015 +0200 ARM: dts: add mmc detect gpio for exynos5422-odroidxu3 The patch adds gpio for detecting presence of MMC card. It fixes issue with kernel hang when MMC card is missing. Signed-off-by: Andrzej Hajda Reviewed-by: Javier Martinez Canillas Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos5422-odroidxu3.dts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit c9c1adfe1245b34e19fe9328fa9c1ac0569166f2 Author: Jacek Anaszewski Date: Sat May 9 02:26:45 2015 +0900 ARM: dts: add JPEG codec device node for exynos3250 Signed-off-by: Jacek Anaszewski Acked-by: Kyungmin Park Tested-by: Pankaj Dubey Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos3250.dtsi | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 6f41a9589e5c8ba597ad7bb0be21e6bf4696b50d Author: Yadwinder Singh Brar Date: Sat May 9 02:24:25 2015 +0900 ARM: dts: Add missing irq pinctrl for max77686 on smdk5250 This patch adds pinctrl configuration for using configuring gpx3-2 as an external interrupt from max77686. Though max77686 RTC is enabled and gets probed by default, it doesnt work as its unable to get interrupt. This patch makes max77686 RTC work and also configures it as wakeup source. Signed-off-by: Yadwinder Singh Brar [pankaj.dubey: resubmitted after rebasing to latest kgene tree] Signed-off-by: Pankaj Dubey Reviewed-by: Javier Martinez Canillas Tested-by: Pankaj Dubey Acked-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos5250-smdk5250.dts | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 5220f7fb4954d8ca612ea77fb9bee6801c43d031 Author: Oder Chiou Date: Fri May 8 13:24:02 2015 +0800 ASoC: rt5677: Add DMIC ASRC detect function The patch adds DMIC ASRC detect function to dominate whether the DMIC ASRC enable or not. Signed-off-by: Oder Chiou Signed-off-by: Mark Brown sound/soc/codecs/rt5677.c | 81 +++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 75 insertions(+), 6 deletions(-) commit 14327c662822e5e874cb971a7162067519300ca8 Author: Russell King Date: Tue Apr 21 14:17:25 2015 +0100 ARM: replace BSYM() with badr assembly macro BSYM() was invented to allow us to work around a problem with the assembler, where local symbols resolved by the assembler for the 'adr' instruction did not take account of their ISA. Since we don't want BSYM() used elsewhere, replace BSYM() with a new macro 'badr', which is like the 'adr' pseudo-op, but with the BSYM() mechanics integrated into it. This ensures that the BSYM()-ification is only used in conjunction with 'adr'. Acked-by: Dave Martin Acked-by: Nicolas Pitre Signed-off-by: Russell King arch/arm/boot/compressed/head.S | 4 ++-- arch/arm/common/mcpm_head.S | 2 +- arch/arm/include/asm/assembler.h | 17 ++++++++++++++++- arch/arm/include/asm/entry-macro-multi.S | 4 ++-- arch/arm/include/asm/unified.h | 2 -- arch/arm/kernel/entry-armv.S | 12 ++++++------ arch/arm/kernel/entry-common.S | 6 +++--- arch/arm/kernel/entry-ftrace.S | 2 +- arch/arm/kernel/head-nommu.S | 6 +++--- arch/arm/kernel/head.S | 8 ++++---- arch/arm/kernel/sleep.S | 2 +- arch/arm/lib/call_with_stack.S | 2 +- arch/arm/mm/proc-v7m.S | 2 +- 13 files changed, 41 insertions(+), 28 deletions(-) commit 5890298a834c04aaa9b5fb576e5f2b77e79ab38d Author: Russell King Date: Tue Apr 21 14:16:05 2015 +0100 ARM: kvm: fix a bad BSYM() usage BSYM() should only be used when refering to local symbols in the same assembly file which are resolved by the assembler, and not for linker-fixed up symbols. The use of BSYM() with panic is incorrect as the linker is involved in fixing up this relocation, and it knows whether panic() is ARM or Thumb. Acked-by: Nicolas Pitre Acked-by: Dave Martin Signed-off-by: Russell King arch/arm/kvm/interrupts.S | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 214a2b7fab215b1e979fbae51225b01b8fc58288 Author: Daniel Vetter Date: Fri May 8 17:38:19 2015 +0200 drm/i915: Update DRIVER_DATE to 20150508 Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9b6de0a1552175620ced3a7a7a552d4e7a379538 Author: Ville Syrjälä Date: Fri Apr 10 18:21:31 2015 +0300 drm/i915: Only wait for required lanes in vlv_wait_port_ready() Currently vlv_wait_port_ready() waits for all four lanes on the appropriate channel. This no longer works on CHV when the unused lanes may be power gated. So pass in a mask of lanes that the caller is expecting to be ready. Signed-off-by: Ville Syrjälä Reviewed-by: Deepak S Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 10 ++++++---- drivers/gpu/drm/i915/intel_dp.c | 4 +++- drivers/gpu/drm/i915/intel_drv.h | 3 ++- drivers/gpu/drm/i915/intel_hdmi.c | 4 ++-- 4 files changed, 13 insertions(+), 8 deletions(-) commit c7c7372edc4ebc173ad359aeb5752e9ce09f2741 Author: Rebecca N. Palmer Date: Fri May 8 14:26:50 2015 +0100 drm/i915: Fix possible security hole in command parsing i915_parse_cmds returns -EACCES on chained batches, which "tells the caller to abort and dispatch the workload as a non-secure batch", but the mechanism implementing that was broken when flags |= I915_DISPATCH_SECURE was moved from i915_gem_execbuffer_parse to i915_gem_do_execbuffer (17cabf571e50677d980e9ab2a43c5f11213003ae): i915_gem_execbuffer_parse returns the original batch_obj in this case, and i915_gem_do_execbuffer doesn't check for that. Don't set the secure bit in this case to make sure such batches don't run with elevated priviledges. Signed-off-by: Rebecca Palmer Reviewed-by: Mika Kuoppala [danvet: Stitch together commit message. Also remove a comment as suggested by Mika. And style-align the comment while at it.] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_execbuffer.c | 31 ++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) commit ac6f2e29bb08a2313b0480c6cea94b01ab274970 Author: Daniel Vetter Date: Fri May 8 16:15:41 2015 +0200 drm/edid: Kerneldoc for newly added edid_corrupt Also treat it as a proper boolean. Cc: Todd Previte Cc: Paulo Zanoni Cc: dri-devel@lists.freedesktop.org Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_edid.c | 8 ++++---- drivers/gpu/drm/i915/intel_dp.c | 2 +- include/drm/drm_crtc.h | 1 + 3 files changed, 6 insertions(+), 5 deletions(-) commit e7ded2d74673c2cdabd1f80da8c8a1b7b531e84a Author: Joonas Lahtinen Date: Fri May 8 14:37:39 2015 +0300 drm/i915: Reject huge tiled objects We do not yet support tiled objects bigger than the mappable aperture size so reject them. Reported-by: Chris Wilson Signed-off-by: Joonas Lahtinen [danvet: Rework the check a bit to avoid warnings.] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 71849b67e788ca8899982df7adf21f61f44cb474 Author: Ville Syrjälä Date: Fri Apr 10 18:21:29 2015 +0300 Revert "drm/i915: Hack to tie both common lanes together on chv" With recent hardware/firmware there don't appear to be any glitches on the other PHY when we toggle the cmnreset for the other PHY. So detangle the cmnlane power wells from one another and let them be controlled independently. This reverts commit 3dd7b97458e8aa2d8985b46622d226fa635071e7. Signed-off-by: Ville Syrjälä Reviewed-by: Deepak S Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_runtime_pm.c | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) commit 70722468872b0752abaff54d34ed16af0d95cb9f Author: Ville Syrjälä Date: Fri Apr 10 18:21:28 2015 +0300 drm/i915: Work around DISPLAY_PHY_CONTROL register corruption on CHV Sometimes (exactly when is a bit unclear) DISPLAY_PHY_CONTROL appears to get corrupted. The values I've managed to read from it seem to have some pattern but vary quite a lot. The corruption doesn't seem to just happen when the register is accessed, but can also happen spontaneosly during modeset. When this happens during a modeset things go south and the display doesn't light up. I've managed to hit the problemn when toggling HDMI on port D on and off. When things get corrupted the display doesn't light up, but as soon as I manually write the correct value to the register the display comes up. First I was suspicious that we ourselves accidentally overwrite it with garbage, but didn't catch anything with the reg_rw tracepoint. Also I sprinkled check all over the modeset path to see exactly when the corruption happens, and eg. the read back value was fine just before intel_dp_set_m(), and corrupted immediately after it. I also made my check function repair the register value whenever it was wrong, and with this approach the corruption repeated several times during the modeset operation, always seeming to trigger in the same exact calls to the check function, while other calls to the function never caught anything. So far I've not seen this problem occurring when carefully avoiding all read accesses to DISPLAY_PHY_CONTROL. Not sure if that's just pure luck or an actual workaround, but we can hope it works. So let's avoid reading the register and instead track the desired value of the register in dev_priv. v2: Read out the power well state to determine initial register value v3: Use DPIO_CHx names instead of raw numbers Signed-off-by: Ville Syrjälä Reviewed-by: Deepak S Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 2 ++ drivers/gpu/drm/i915/i915_reg.h | 5 ++++- drivers/gpu/drm/i915/intel_runtime_pm.c | 36 ++++++++++++++++++++++++++++----- 3 files changed, 37 insertions(+), 6 deletions(-) commit 2e523e98bb593950de2c749d4ceb45cc20313c1a Author: Ville Syrjälä Date: Fri Apr 10 18:21:27 2015 +0300 drm/i915: Implement chv display PHY lane stagger setup Set up the chv display PHY lane stagger registers according to "Programming Guide for 1273 CHV eDP/DP/HDMI Display PHY" v1.04 Signed-off-by: Ville Syrjälä Reviewed-by: Deepak S Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_reg.h | 13 +++++++++++++ drivers/gpu/drm/i915/intel_dp.c | 35 +++++++++++++++++++++++++++++++++-- drivers/gpu/drm/i915/intel_hdmi.c | 35 +++++++++++++++++++++++++++++++++-- 3 files changed, 79 insertions(+), 4 deletions(-) commit 06b36753a6466239fc945b6756e12d635621ae5f Author: David Hildenbrand Date: Fri Apr 24 15:30:24 2015 +0200 KVM: s390: drop handling of interception code 12 Our implementation will never trigger interception code 12 as the responsible setting is never enabled - and never will be. The handler is dead code. Let's get rid of it. Reviewed-by: Cornelia Huck Signed-off-by: David Hildenbrand Signed-off-by: Christian Borntraeger arch/s390/kvm/intercept.c | 16 ---------------- 1 file changed, 16 deletions(-) commit 96e0ed23dca3769053c5211ef885e789097834bf Author: David Hildenbrand Date: Wed Jan 14 14:08:38 2015 +0100 KVM: s390: factor out and optimize floating irq VCPU kick This patch factors out the search for a floating irq destination VCPU as well as the kicking of the found VCPU. The search is optimized in the following ways: 1. stopped VCPUs can't take any floating interrupts, so try to find an operating one. We have to take care of the special case where all VCPUs are stopped and we don't have any valid destination. 2. use online_vcpus, not KVM_MAX_VCPU. This speeds up the search especially if KVM_MAX_VCPU is increased one day. As these VCPU objects are initialized prior to increasing online_vcpus, we can be sure that they exist. Reviewed-by: Cornelia Huck Reviewed-by: Dominik Dingel Reviewed-by: Jens Freimann Signed-off-by: David Hildenbrand Signed-off-by: Christian Borntraeger arch/s390/kvm/interrupt.c | 74 +++++++++++++++++++++++++++++------------------ 1 file changed, 46 insertions(+), 28 deletions(-) commit ffeca0ae880055457e56e45fd79cfa28d7160c30 Author: Jens Freimann Date: Fri Apr 17 10:21:04 2015 +0200 KVM: s390: optimize interrupt handling round trip time We can avoid checking guest control registers and guest PSW as well as all the masking and calculations on the interrupt masks when no interrupts are pending. Also, the check for IRQ_PEND_COUNT can be removed, because we won't enter the while loop if no interrupts are pending and invalid interrupt types can't be injected. Signed-off-by: Jens Freimann Reviewed-by: Cornelia Huck Reviewed-by: Dominik Dingel Acked-by: Christian Borntraeger arch/s390/kvm/interrupt.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) commit 27406cd50cf6653196eea8ebbb15a75596da01ca Author: Christian Borntraeger Date: Tue Apr 14 12:17:34 2015 +0200 KVM: s390: provide functions for blocking all CPUs Some updates to the control blocks need to be done in a way that ensures that no CPU is within SIE. Provide wrappers around the s390_vcpu_block functions and adopt the TOD migration code to update in a guaranteed fashion. Also rename these functions to have the kvm_s390_ prefix as everything else. Signed-off-by: Christian Borntraeger Reviewed-by: David Hildenbrand arch/s390/kvm/kvm-s390.c | 10 +++++----- arch/s390/kvm/kvm-s390.h | 23 +++++++++++++++++++++-- 2 files changed, 26 insertions(+), 7 deletions(-) commit 8e23654687c97df1c0e4b1def245a05001eaf640 Author: Christian Borntraeger Date: Thu Apr 9 13:49:04 2015 +0200 KVM: s390: make exit_sie_sync more robust exit_sie_sync is used to kick CPUs out of SIE and prevent reentering at any point in time. This is used to reload the prefix pages and to set the IBS stuff in a way that guarantees that after this function returns we are no longer in SIE. All current users trigger KVM requests. The request must be set before we block the CPUs to avoid races. Let's make this implicit by adding the request into a new function kvm_s390_sync_requests that replaces exit_sie_sync and split out s390_vcpu_block and s390_vcpu_unblock, that can be used to keep CPUs out of SIE independent of requests. Signed-off-by: Christian Borntraeger Reviewed-by: David Hildenbrand Reviewed-by: Cornelia Huck arch/s390/include/asm/kvm_host.h | 3 ++- arch/s390/kernel/entry.S | 2 +- arch/s390/kvm/kvm-s390.c | 28 ++++++++++++++++++---------- arch/s390/kvm/kvm-s390.h | 2 +- 4 files changed, 22 insertions(+), 13 deletions(-) commit 53df84f8de312586e1c05a8f496f614ca814eeff Author: Guenther Hutzl Date: Wed Feb 18 11:13:03 2015 +0100 KVM: s390: Enable guest EDAT2 support 1. Enable EDAT2 in the list of KVM facilities 2. Handle 2G frames in pfmf instruction If we support EDAT2, we may enable handling of 2G frames if not in 24 bit mode. 3. Enable EDAT2 in sie_block If the EDAT2 facility is available we enable GED2 mode control in the sie_block. Reviewed-by: David Hildenbrand Reviewed-by: Cornelia Huck Reviewed-by: Christian Borntraeger Signed-off-by: Guenther Hutzl Signed-off-by: Christian Borntraeger arch/s390/include/asm/kvm_host.h | 1 + arch/s390/kvm/kvm-s390.c | 6 ++++-- arch/s390/kvm/priv.c | 8 ++++++-- 3 files changed, 11 insertions(+), 4 deletions(-) commit a4a4f1916abbbc3148d79a37cf3fe4f3f6c604d9 Author: Guenther Hutzl Date: Tue Mar 31 14:39:49 2015 +0200 KVM: s390: make EDAT1 depend on host support We should only enable EDAT1 for the guest if the host actually supports it and the cpu model for the guest has EDAT-1 enabled. Reviewed-by: David Hildenbrand Reviewed-by: Cornelia Huck Reviewed-by: Christian Borntraeger Signed-off-by: Guenther Hutzl Signed-off-by: Christian Borntraeger arch/s390/kvm/kvm-s390.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 785dbef407d8b3c82348aba2689e493c752c62ec Author: Christian Borntraeger Date: Thu Apr 16 16:58:22 2015 +0200 KVM: s390: optimize round trip time in request handling The fast path for a sie exit is that no kvm reqest is pending. Make an early check to skip all single bit checks. Reviewed-by: David Hildenbrand Signed-off-by: Christian Borntraeger arch/s390/kvm/kvm-s390.c | 2 ++ 1 file changed, 2 insertions(+) commit b938eacea0b6881f2116a061e6da3ec840e75137 Author: David Hildenbrand Date: Thu Apr 30 13:33:59 2015 +0200 KVM: s390: fix external call injection without sigp interpretation Commit ea5f49692575 ("KVM: s390: only one external call may be pending at a time") introduced a bug on machines that don't have SIGP interpretation facility installed. The injection of an external call will now always fail with -EBUSY (if none is already pending). This leads to the following symptoms: - An external call will be injected but with the wrong "src cpu id", as this id will not be remembered. - The target vcpu will not be woken up, therefore the guest will hang if it cannot deal with unexpected failures of the SIGP EXTERNAL CALL instruction. - If an external call is already pending, -EBUSY will not be reported. Reviewed-by: Christian Borntraeger Reviewed-by: Jens Freimann Signed-off-by: David Hildenbrand Cc: stable@vger.kernel.org # v4.0 Signed-off-by: Christian Borntraeger arch/s390/kvm/interrupt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7192a5dd54488b6fa81f071b2ae93e00b25f0ddd Author: Jes Sorensen Date: Tue May 5 18:37:16 2015 -0400 staging: unisys: uislib.h: Remove unused cache allocation prototypes Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/include/uisutils.h | 5 ----- 1 file changed, 5 deletions(-) commit c2ec4b23c972f49e32d408fb19c673ab44fb9540 Author: Jes Sorensen Date: Tue May 5 18:37:15 2015 -0400 staging: unisys: visorchipset: Remove unused cache allocator Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorchipset.c | 39 -------------------------- 1 file changed, 39 deletions(-) commit fbf355365fd652d12ed991832e582ea2ef1e8576 Author: Jes Sorensen Date: Tue May 5 18:37:14 2015 -0400 staging: unisys: Remove wrapper around parser_init_guts() Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorchipset.c | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) commit cc55b5c5a7e3ff82e9c419554c531bc444a7f87c Author: Jes Sorensen Date: Tue May 5 18:37:13 2015 -0400 staging: unisys: parser_init_guts(): standard_payload_header is always false Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorchipset.c | 37 +++++++------------------- 1 file changed, 9 insertions(+), 28 deletions(-) commit 464129edbccf70d77f526943d1ca6f8163d7f82b Author: Jes Sorensen Date: Tue May 5 18:37:12 2015 -0400 staging: unisys: parser: Remove unused functions and mark others static Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorchipset.c | 201 +------------------------ 1 file changed, 4 insertions(+), 197 deletions(-) commit fcc974d0d58bfcd63219b759f4c51c3313b1667d Author: Jes Sorensen Date: Tue May 5 18:37:11 2015 -0400 staging: unisys: visorchipset: Declare parser_init_byte_stream() static In addition remove unused parser_init() Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorchipset.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) commit df94247a8987b1ab5be2330c7d07b51980592fe0 Author: Jes Sorensen Date: Tue May 5 18:37:10 2015 -0400 staging: unisys: visorchannel: Make visorchannel_create take a gfp_t This allows the caller to specify an appropriate GFP flag instead of hardcoding the lowest common denominator. Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman .../common-spar/include/channels/controlvmchannel.h | 5 +---- drivers/staging/unisys/include/visorbus.h | 7 ++++--- drivers/staging/unisys/visorbus/visorbus_main.c | 3 ++- drivers/staging/unisys/visorbus/visorchannel.c | 18 ++++++++++-------- drivers/staging/unisys/visorbus/visorchipset.c | 8 ++++---- 5 files changed, 21 insertions(+), 20 deletions(-) commit 1210f8e72b06e53975c5719db2a14f8bffdd4870 Author: Benjamin Romer Date: Tue May 5 18:37:09 2015 -0400 staging: unisys: remove visorutil from top level Makefile The visorutil directory is still mentioned in the top level makefile for the Unisys drivers, so remove it. Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/Makefile | 1 - 1 file changed, 1 deletion(-) commit 1b27feaa9d7bfd9e68c9f5e8a0039a223916c3bf Author: Benjamin Romer Date: Tue May 5 18:37:08 2015 -0400 staging: unisys: fix visorbus Kconfig Removing visorutil made it impossible to build visorbus. Remove the config setting from the Kconfig so the module can be enabled in the build. Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 53490b545cb07c9d2e1b36aa680afaf0d435aec8 Author: Erik Arfvidson Date: Tue May 5 18:37:07 2015 -0400 staging: unisys: move periodic_work.c into the visorbus directory This patch removes visorutil directory, move periodic_work.c into the visorbus directory. Signed-off-by: Erik Arfvidson Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/Kconfig | 1 - drivers/staging/unisys/visorbus/Makefile | 1 + drivers/staging/unisys/visorbus/periodic_work.c | 205 +++++++++++++++++++++++ drivers/staging/unisys/visorutil/Kconfig | 9 - drivers/staging/unisys/visorutil/Makefile | 9 - drivers/staging/unisys/visorutil/periodic_work.c | 205 ----------------------- 6 files changed, 206 insertions(+), 224 deletions(-) commit c0a14641b1c6b9e85f94370ea3610ca486ca568f Author: Erik Arfvidson Date: Tue May 5 18:37:06 2015 -0400 staging: unisys: remove timskmod.h and procobjecttree.h This patch move the needed linux include files from timskmod.h to the files that calls those include. Also procobjecttree.h is removed since it is dead code. Signed-off-by: Erik Arfvidson Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/include/periodic_work.h | 3 +- drivers/staging/unisys/include/procobjecttree.h | 47 ------------------- drivers/staging/unisys/include/sparstop.h | 1 - drivers/staging/unisys/include/timskmod.h | 54 ---------------------- drivers/staging/unisys/include/visorbus.h | 1 + drivers/staging/unisys/visorbus/visorbus_main.c | 1 - drivers/staging/unisys/visorbus/visorbus_private.h | 1 - drivers/staging/unisys/visorbus/visorchipset.c | 2 +- drivers/staging/unisys/visorchannel/globals.h | 1 - drivers/staging/unisys/visorutil/periodic_work.c | 1 - 10 files changed, 4 insertions(+), 108 deletions(-) commit f45017babab040ab0d877abf7485484fde8d74e5 Author: Erik Arfvidson Date: Tue May 5 18:37:05 2015 -0400 staging: unisys: remove charqueue.c This patch removes charqueue.[ch] since it no longer called Signed-off-by: Erik Arfvidson Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorutil/Makefile | 2 +- drivers/staging/unisys/visorutil/charqueue.c | 127 --------------------------- drivers/staging/unisys/visorutil/charqueue.h | 37 -------- 3 files changed, 1 insertion(+), 165 deletions(-) commit d5b3f1dccee4dedeff8e264b58fbfe90a6033ecf Author: Erik Arfvidson Date: Tue May 5 18:37:04 2015 -0400 staging: unisys: move timskmod.h functionality This patch removes all timksmod.h pound defines. It also removes visorkmodutils.c since it no longer has any use by itself. Since visorkmodutils.c is no longer needed the module_init for visorchipset.c is modified to call visorutil_spar_detect directly instead of the extern variable in timksmod.h. Signed-off-by: Erik Arfvidson Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/include/periodic_work.h | 1 + drivers/staging/unisys/include/timskmod.h | 94 ---------------------- drivers/staging/unisys/include/visorbus.h | 10 +-- drivers/staging/unisys/visorbus/visorbus_main.c | 9 ++- drivers/staging/unisys/visorbus/visorbus_private.h | 2 +- drivers/staging/unisys/visorbus/visorchannel.c | 14 ++-- drivers/staging/unisys/visorbus/visorchipset.c | 38 ++++++--- drivers/staging/unisys/visorutil/Makefile | 2 +- drivers/staging/unisys/visorutil/periodic_work.c | 4 +- drivers/staging/unisys/visorutil/visorkmodutils.c | 71 ---------------- 10 files changed, 50 insertions(+), 195 deletions(-) commit 01f125ca99f038775daae9e5963a4bf368623986 Author: Benjamin Romer Date: Tue May 5 18:37:03 2015 -0400 staging: unisys: add ACPI and PCI requirement to Kconfig Later patches will require PCI and ACPI support in the kernel, so add these features to the Kconfig. Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/Kconfig | 2 ++ 1 file changed, 2 insertions(+) commit 55c67dcaac7891887ad0a077c28b709be2abcb49 Author: Prarit Bhargava Date: Tue May 5 18:37:02 2015 -0400 staging: unisys: add acpi pnp driver According to Unisys, another OS detects the PNP0A07 as the auto load device. We can also do this in the linux kernel by simply converting the driver over to the ACPI driver model. Notes: This changes the usage of __init and it had to be removed from some functions to avoid a !__init function calling an __init function. Additionally I also cleaned up the headers in visorchipset.c since I was adding a header file. Signed-off-by: Prarit Bhargava Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorbus_main.c | 2 +- drivers/staging/unisys/visorbus/visorbus_private.h | 2 +- drivers/staging/unisys/visorbus/visorchipset.c | 77 ++++++++++++++++------ 3 files changed, 58 insertions(+), 23 deletions(-) commit 779d0752bc53aebb12a38eb2bcc696c5f12ad4d6 Author: Prarit Bhargava Date: Tue May 5 18:37:01 2015 -0400 staging: unisys: remove BOOL,TRUE,FALSE definitions These shouldn't be defined in the code and can be replaced with the standard bool, true, and false usage that the kernel uses. Signed-off-by: Prarit Bhargava Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/include/periodic_work.h | 6 +-- drivers/staging/unisys/include/timskmod.h | 5 -- drivers/staging/unisys/include/visorbus.h | 4 +- drivers/staging/unisys/visorbus/visorbus_main.c | 34 ++++++------ drivers/staging/unisys/visorbus/visorchannel.c | 64 +++++++++++------------ drivers/staging/unisys/visorbus/visorchipset.c | 2 +- drivers/staging/unisys/visorutil/charqueue.c | 4 +- drivers/staging/unisys/visorutil/charqueue.h | 2 +- drivers/staging/unisys/visorutil/periodic_work.c | 52 +++++++++--------- drivers/staging/unisys/visorutil/visorkmodutils.c | 2 +- 10 files changed, 85 insertions(+), 90 deletions(-) commit 434cbf28b5bc1e2694e6c097dba6f111fd61cafb Author: Jes Sorensen Date: Tue May 5 18:37:00 2015 -0400 staging: unisys: Finally remove the last remnants of memregion Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/include/visorbus.h | 1 - drivers/staging/unisys/visorbus/visorchannel.c | 53 ++++++++++------------ drivers/staging/unisys/visorchannel/globals.h | 1 - drivers/staging/unisys/visorutil/Makefile | 2 +- drivers/staging/unisys/visorutil/memregion.h | 35 -------------- .../staging/unisys/visorutil/memregion_direct.c | 26 ----------- 6 files changed, 25 insertions(+), 93 deletions(-) commit 34b479ae19f318a74eae87bd8f4b96acb0d7a6ac Author: Jes Sorensen Date: Tue May 5 18:36:59 2015 -0400 staging: unisys: Eliminate visor_memregion_write() visorchannel's signal code should call visorchannel_write() directly. This is more consistent and cleaner, and allows us to remove the last memregion call. Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorchannel.c | 34 ++++++++++------------ drivers/staging/unisys/visorutil/memregion.h | 2 -- .../staging/unisys/visorutil/memregion_direct.c | 12 -------- 3 files changed, 16 insertions(+), 32 deletions(-) commit 3b5bd6cca5b5d26cea73bfa2f078498a7f64957e Author: Jes Sorensen Date: Tue May 5 18:36:58 2015 -0400 staging: unisys: Eliminate visor_memregion_read() Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorchannel.c | 11 +++++------ drivers/staging/unisys/visorutil/memregion.h | 2 -- drivers/staging/unisys/visorutil/memregion_direct.c | 12 ------------ 3 files changed, 5 insertions(+), 20 deletions(-) commit 0d622e84f8063d4aab75a3d4e4de72efcb85dacb Author: Jes Sorensen Date: Tue May 5 18:36:57 2015 -0400 staging: unisys: visorchannel_create_guts(): Use visorchannel_read() There is no benefit to calling visor_memregion_read() at this point. Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorchannel.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 0abb60c1c5c32be56e5a67fcc437fcd18e38c2b2 Author: Jes Sorensen Date: Tue May 5 18:36:56 2015 -0400 staging: unisys: visorchannel_write(): Handle partial channel_header writes Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorchannel.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 36203e71a0604baa547a6706b5e70ee2830a2407 Author: Jes Sorensen Date: Tue May 5 18:36:55 2015 -0400 staging: unisys: visorchannel_read(): Use memcpy_fromio() directly Note, this changes the behavior of visorchannel_read(). The old code would return the channel header, if the offset argument was 0, and the caller tried to read beyond the size of the visorchannel. Note this only worked for offset == 0, but not for (offset > 0) && (offset < header_size), which was inconsistent. The new implementation returns an error if someone tries to read beyond the visorchannel size. Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorchannel.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit ad44088f08a33894ca9fd65511d05d58434b50f4 Author: Jes Sorensen Date: Tue May 5 18:36:54 2015 -0400 staging: unisys: visorchannel_write(): Use memcpy_toio() directly Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorchannel.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit d24c3f07a6bae3b368681d25aa4eef380aa2e8f0 Author: Jes Sorensen Date: Tue May 5 18:36:53 2015 -0400 staging: unisys: memregion: {un, }mapit() are no longer used Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman .../staging/unisys/visorutil/memregion_direct.c | 30 ---------------------- 1 file changed, 30 deletions(-) commit 6fa981b4cca312cab0df77c59ed1269b3333b36a Author: Jes Sorensen Date: Tue May 5 18:36:52 2015 -0400 staging: unisys: memregion: Eliminate visor_memregion_get_*() functions Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorchannel.c | 7 +++---- drivers/staging/unisys/visorutil/memregion.h | 3 --- drivers/staging/unisys/visorutil/memregion_direct.c | 21 --------------------- 3 files changed, 3 insertions(+), 28 deletions(-) commit 81b6032f46ee55af6b786065faf0f35f9c756b97 Author: Jes Sorensen Date: Tue May 5 18:36:51 2015 -0400 staging: unisys: memregion: Eliminate visor_memregion_resize() Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorchannel.c | 17 +++++++++++++++-- drivers/staging/unisys/visorutil/memregion.h | 1 - drivers/staging/unisys/visorutil/memregion_direct.c | 16 ---------------- 3 files changed, 15 insertions(+), 19 deletions(-) commit 0dbb3fb66b9e9c81866e89961fa418d6ae135ea6 Author: Jes Sorensen Date: Tue May 5 18:36:50 2015 -0400 staging: unisys: memregion: Eliminate visor_memregion_destroy() Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorchannel.c | 6 +++++- drivers/staging/unisys/visorutil/memregion.h | 1 - drivers/staging/unisys/visorutil/memregion_direct.c | 9 --------- 3 files changed, 5 insertions(+), 11 deletions(-) commit aefebaa5bc6a22674adda07e001c5c8204ee608f Author: Jes Sorensen Date: Tue May 5 18:36:49 2015 -0400 staging: unisys: Eliminate visor_memregion_create() Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorchannel.c | 15 ++++++++++----- drivers/staging/unisys/visorutil/memregion.h | 2 -- .../staging/unisys/visorutil/memregion_direct.c | 22 ---------------------- 3 files changed, 10 insertions(+), 29 deletions(-) commit 330782577e8c5c977aab1173088a59d3b19c4fce Author: David Kershner Date: Tue May 5 18:36:48 2015 -0400 staging: unisys: get rid of serialloopbacktest serialloopbacktest is no longer supported. Get rid of it. Signed-off-by: David Kershner Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorbus_main.c | 7 ------- drivers/staging/unisys/visorbus/visorchipset.c | 2 +- 2 files changed, 1 insertion(+), 8 deletions(-) commit 15dd144c3bf918797f0bf691abbca13ced861ed6 Author: Erik Arfvidson Date: Tue May 5 18:36:47 2015 -0400 staging: unisys: cleanup and align iochannel.h comments This patch reorganizes, aligns, and corrects grammar mistakes on comments. Signed-off-by: Erik Arfvidson Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman .../common-spar/include/channels/iochannel.h | 240 +++++++++++---------- 1 file changed, 124 insertions(+), 116 deletions(-) commit 67ec962a5ba2b5a901a8a78581fd3cca55a4474d Author: Erik Arfvidson Date: Tue May 5 18:36:46 2015 -0400 staging: unisys: remove unused #define in iochannel.h This patch simply remove all unused #define's in iochannel.h Signed-off-by: Erik Arfvidson Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman .../common-spar/include/channels/iochannel.h | 137 --------------------- 1 file changed, 137 deletions(-) commit 79245bfce8462c699581d1379029417b60eaa6cb Author: Erik Arfvidson Date: Tue May 5 18:36:45 2015 -0400 staging: unisys: remove unused chipset feature PCIVBUS This patch removes unused chipset feature ULTRA_CHIPSET_FEATURE_PCIVBUS Signed-off-by: Erik Arfvidson Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/common-spar/include/channels/controlvmchannel.h | 1 - 1 file changed, 1 deletion(-) commit 91087bb384a24d73cef10c10fb0d9fd4b2cb40df Author: Erik Arfvidson Date: Tue May 5 18:36:44 2015 -0400 staging: unisys: remove unused CONTROLVM_CHIPSET_SHUTDOWN this patch removes unused chipset command on the guest CONTROLVM_CHIPSET_SHUTDOWN Signed-off-by: Erik Arfvidson Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/common-spar/include/channels/controlvmchannel.h | 1 - 1 file changed, 1 deletion(-) commit 680385e3812b2a75dbe27395a7c49ba987698f0c Author: Erik Arfvidson Date: Tue May 5 18:36:43 2015 -0400 staging: unisys: remove unused device_map and guest_devices struct This patch removes unused struct in the controlvm_channel message and replaces it with a char reserved inorder to mantain same message size. Signed-off-by: Erik Arfvidson Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman .../common-spar/include/channels/controlvmchannel.h | 20 +------------------- 1 file changed, 1 insertion(+), 19 deletions(-) commit 7e5a1a76447228bfb08804c539d84e9b27135f76 Author: Erik Arfvidson Date: Tue May 5 18:36:42 2015 -0400 staging: unisys: controlvmchannel.h comment aligment and cleanup This patch is a comment aligment and cleanup for controlvmchannel.h. Signed-off-by: Erik Arfvidson Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman .../include/channels/controlvmchannel.h | 231 ++++++++++----------- 1 file changed, 107 insertions(+), 124 deletions(-) commit 22a0350b5eb43fd6dedb182b736c083f801f38b8 Author: Erik Arfvidson Date: Tue May 5 18:36:41 2015 -0400 staging: unisys: rename variable to reserverd since it is unused This patch renames send_irq_handle to reserved1 since this variable is unused in the guest side. Signed-off-by: Erik Arfvidson Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/common-spar/include/channels/controlvmchannel.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a0fc428525414b2a5e5e98fa79a3026a3f9305b9 Author: Erik Arfvidson Date: Tue May 5 18:36:40 2015 -0400 staging: unisys: remove unused CONTROL_VM messages from enum This patch removes CONTROL_VM disk messages from enum since they are completely unused. Signed-off-by: Erik Arfvidson Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman .../staging/unisys/common-spar/include/channels/controlvmchannel.h | 5 ----- 1 file changed, 5 deletions(-) commit 4da3336c25850490a0ce478cc7621347e7e3f717 Author: David Kershner Date: Tue May 5 18:36:39 2015 -0400 staging: unisys: remove server crust from visorchipset. The visorchipset driver originally serviced both servers and clients. This implementation is client only so remove some more server side implementation. Signed-off-by: David Kershner Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorbus_main.c | 8 +- drivers/staging/unisys/visorbus/visorbus_private.h | 9 +- drivers/staging/unisys/visorbus/visorchipset.c | 228 +++++---------------- 3 files changed, 62 insertions(+), 183 deletions(-) commit 1452f37015dbb856572af16d37f23a552e95d494 Author: Erik Arfvidson Date: Tue May 5 18:36:38 2015 -0400 staging: unisys: remove unused #define MAX_SERIAL_NUM This patch simply removes #define MAX_SERIAL_NUM from iochannel.h Signed-off-by: Erik Arfvidson Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/common-spar/include/channels/iochannel.h | 4 ---- 1 file changed, 4 deletions(-) commit 35314db1869f77c2a459d72d6f4797d8068697c7 Author: Erik Arfvidson Date: Tue May 5 18:36:37 2015 -0400 staging: unisys: remove unused #define in controlvmchannel This patch remove unused controlvmchannel.h #defines Signed-off-by: Erik Arfvidson Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman .../staging/unisys/common-spar/include/channels/controlvmchannel.h | 5 ----- 1 file changed, 5 deletions(-) commit e90118649019789ffe88461aba498b47e208f16e Author: Erik Arfvidson Date: Tue May 5 18:36:36 2015 -0400 staging: unisys: remove unused enum from controlvmchannel.h This patch removes this enum since it is unused Signed-off-by: Erik Arfvidson Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman .../staging/unisys/common-spar/include/channels/controlvmchannel.h | 4 ---- 1 file changed, 4 deletions(-) commit 780fcad38a2b9061337bb59c1e6b8b76eccda825 Author: Erik Arfvidson Date: Tue May 5 18:36:35 2015 -0400 staging: unisys: remove typedef GUEST_PHYSICAL_ADDRESS to u64 This patch removes typedef GUEST_PHYSICAL_ADDRESS to u64 Signed-off-by: Erik Arfvidson Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman .../include/channels/controlvmchannel.h | 38 ++++++++++------------ drivers/staging/unisys/visorbus/visorchipset.c | 2 +- 2 files changed, 19 insertions(+), 21 deletions(-) commit 8b8fc28b6b0dc028cc62bcd8bdaba48661317e57 Author: Jes Sorensen Date: Tue May 5 18:36:34 2015 -0400 staging: unisys: Eliminate unused visorchannel_dump_section() Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/include/visorbus.h | 2 -- drivers/staging/unisys/visorbus/visorchannel.c | 37 -------------------------- 2 files changed, 39 deletions(-) commit 5f0dc9b1f71af2ed5ad3c248139720d56403325c Author: Jes Sorensen Date: Tue May 5 18:36:33 2015 -0400 staging: unisys: visorchannel_get_memregion() isn't used Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/include/visorbus.h | 1 - drivers/staging/unisys/visorbus/visorchannel.c | 7 ------- 2 files changed, 8 deletions(-) commit b3cbceb36bd413ce11ba2132418b3b35a085a1c5 Author: Jes Sorensen Date: Tue May 5 18:36:32 2015 -0400 staging: unisys: memregion: Embed memregion in struct channel This changes the API for visor_memregion_create() to require a pre-allocated struct memregion. Embedding this in struct channel avoids a layer of additional kmalloc()'s and error checks. Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorchannel.c | 36 ++++++++++------------ drivers/staging/unisys/visorutil/memregion.h | 3 +- .../staging/unisys/visorutil/memregion_direct.c | 9 ++---- 3 files changed, 20 insertions(+), 28 deletions(-) commit 81c7492db05ec452599907ce69e42071e0c5ec03 Author: Jes Sorensen Date: Tue May 5 18:36:31 2015 -0400 staging: unisys: memregion: move struct memregion to memregion.h Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorutil/memregion.h | 6 +++++- drivers/staging/unisys/visorutil/memregion_direct.c | 6 ------ 2 files changed, 5 insertions(+), 7 deletions(-) commit 213e6a61328689f9106758487a2fefb69d074c6f Author: Jes Sorensen Date: Tue May 5 18:36:30 2015 -0400 staging: unisys: decouple visor_memregion_{read, write}() Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman .../staging/unisys/visorutil/memregion_direct.c | 26 ++++++++-------------- 1 file changed, 9 insertions(+), 17 deletions(-) commit c37df5f0a0e31b1609fd931f8605f4b675d504d3 Author: Jes Sorensen Date: Tue May 5 18:36:29 2015 -0400 staging: unisys: visorchannel_clear(): No need to use vmalloc here Using a page is sufficient, and avoids the cost of vmalloc/vfree Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorchannel.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 1dbdf10471cec85f8ea036d609097552eb0ac441 Author: Jes Sorensen Date: Tue May 5 18:36:28 2015 -0400 staging: unisys: visorchannel_clear(): Avoid 64KB memory leak Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorchannel.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ff7bd1fa9f97a336a92c94b912a416de49c90b9c Author: Jes Sorensen Date: Tue May 5 18:36:27 2015 -0400 staging: unisys: visorchipset.c: No need to include memregion.h anymore Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorchipset.c | 1 - 1 file changed, 1 deletion(-) commit dd412751129876dbeee811843fefe3b369e487ad Author: Jes Sorensen Date: Tue May 5 18:36:26 2015 -0400 staging: unisys: visorchipset: Use ioremap direction rather than heavy visor_memregion Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorchipset.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) commit 712c03dcab8ee2ff82b280a517ba4f0adc9a54b5 Author: Jes Sorensen Date: Tue May 5 18:36:25 2015 -0400 staging: unisys: visorchipset: parser_init_guts(): Localize memregion usage Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorchipset.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 75d1e6613c3ae4728c0ff15e23ab4226e8dfbfcf Author: Jes Sorensen Date: Tue May 5 18:36:24 2015 -0400 staging: unisys: memregion: Eliminate unnecessary 'requested' flag Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorutil/memregion_direct.c | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) commit 1bd14f37048bd77e33fd2db8950f2d41b64052f9 Author: Jes Sorensen Date: Tue May 5 18:36:23 2015 -0400 staging: unisys: memregion: Use proper errno for mapit() Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman .../staging/unisys/visorutil/memregion_direct.c | 28 +++++++++++++--------- 1 file changed, 17 insertions(+), 11 deletions(-) commit 670f56ca5f96b2a78cd964d10767ad0ab0a3e767 Author: Jes Sorensen Date: Tue May 5 18:36:22 2015 -0400 staging: unisys: memregion: Nothing uses overlap allocations, so nuke it Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorutil/memregion.h | 2 - .../staging/unisys/visorutil/memregion_direct.c | 52 +++------------------- 2 files changed, 7 insertions(+), 47 deletions(-) commit 246cff65a09399af9ca6d782d7cd176a65b063f4 Author: Jes Sorensen Date: Tue May 5 18:36:21 2015 -0400 staging: unisys: visorbus: visorchannel_create_guts() always has parent == NULL Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorchannel.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) commit dd5f93851cd8d507700d4051f475c2910957b024 Author: Jes Sorensen Date: Tue May 5 18:36:20 2015 -0400 staging: unisys: visorchannel: visorchannel_create_overlap() is never used Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/include/visorbus.h | 9 +-------- drivers/staging/unisys/visorbus/visorchannel.c | 20 -------------------- 2 files changed, 1 insertion(+), 28 deletions(-) commit a4ed0ba9afd39b41066c4ead12a2e4e731daee4a Author: Prarit Bhargava Date: Tue May 5 18:36:19 2015 -0400 staging: unisys: fix sig_read_data and sig_read_data functions The sig_read_data() and sig_write_data() functions are involved in 2 steps of calls. They really don't need to be and this makes for much simpler code. Signed-off-by: Prarit Bhargava Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorchannel.c | 46 ++++++++++++-------------- 1 file changed, 21 insertions(+), 25 deletions(-) commit 69141bb8eb2edc2f41da1979fe8ae8a99d093f8d Author: Prarit Bhargava Date: Tue May 5 18:36:18 2015 -0400 staging: unisys: visorchannel some general function cleanups Just some cleanups for visorchannel.c, and removal of safe_sig_queue_validate() which is dead code. Signed-off-by: Prarit Bhargava Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorchannel.c | 110 +++++++++---------------- 1 file changed, 41 insertions(+), 69 deletions(-) commit 10c69bb7d9c492666690f2bd359493c2e900865b Author: Prarit Bhargava Date: Tue May 5 18:36:17 2015 -0400 staging: unisys: visorchannel cleanup visorchannel_create_guts() The error handling in this function was broken and while looking at that I noticed that the whole function was in need of cleanup. This patch fixes the error handling, specifically if (!p) { visorchannel_destroy(p); channel = NULL; } and does a lot of cleanup. I also verified that the called functions returned correct errors, and that led to a change in visor_memregion_resize(), visorchannel_destroy() and visor_memregion_destroy(). Signed-off-by: Prarit Bhargava Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorchannel.c | 79 ++++++++++------------ .../staging/unisys/visorutil/memregion_direct.c | 4 +- 2 files changed, 36 insertions(+), 47 deletions(-) commit 2ee0deec49bd1aded66bc7b017af35f8723ff9ef Author: Prarit Bhargava Date: Tue May 5 18:36:16 2015 -0400 staging: unisys: cleanup visorbus_private.h visorbus_private.h contains code that is called from visorbus into the visorchipset code. Now that the visorchipset code has been brought into the visorbus directory, many of the declarations are not necessary and can be cleaned up. TODO: PARSER_WHICH_STRING enum only has one member used (PARSERSTRING_NAME). TODO: crash_obj_type appears to be unnecessary in the overall scheme of code. Signed-off-by: Prarit Bhargava Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorbus_private.h | 57 ---------------------- drivers/staging/unisys/visorbus/visorchipset.c | 35 ++++++++++++- 2 files changed, 33 insertions(+), 59 deletions(-) commit c79b28f7332e54903f6c81ff1157cbd3bf761a17 Author: Prarit Bhargava Date: Tue May 5 18:36:15 2015 -0400 staging: unisys: move visorchipset files to visorbus Move visorchipset_main.c and visorchipset.h to visorbus/visorchipset.c and visorbus/visorbus_private.h. This leaves an empty visorchipset directory which can also be destroyed. As a result of this patch the visorchipset init code now calls the visorbus_init() directly. Similarily the visorchipset exit code now cleans up by calling visorbus_exit(). No other functional changes were made. Signed-off-by: Prarit Bhargava Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/Kconfig | 1 - drivers/staging/unisys/Makefile | 1 - drivers/staging/unisys/visorbus/Kconfig | 2 +- drivers/staging/unisys/visorbus/Makefile | 2 +- drivers/staging/unisys/visorbus/visorbus_main.c | 11 +- drivers/staging/unisys/visorbus/visorbus_private.h | 218 ++ drivers/staging/unisys/visorbus/visorchipset.c | 2866 ++++++++++++++++++++ drivers/staging/unisys/visorchipset/Kconfig | 11 - drivers/staging/unisys/visorchipset/Makefile | 15 - drivers/staging/unisys/visorchipset/visorchipset.h | 214 -- .../unisys/visorchipset/visorchipset_main.c | 2863 ------------------- 11 files changed, 3091 insertions(+), 3113 deletions(-) commit 4616881022a1ea98738966a6cbefab0ea1c085a9 Author: Erik Arfvidson Date: Tue May 5 18:36:14 2015 -0400 staging: unisys: move parser.[ch] functionality into visorchipset This patch moves includes files and functions from parser.[ch] into visorchipset. Signed-off-by: Erik Arfvidson Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorbus_main.c | 2 +- drivers/staging/unisys/visorchipset/Makefile | 2 +- drivers/staging/unisys/visorchipset/parser.c | 430 --------------------- drivers/staging/unisys/visorchipset/parser.h | 45 --- drivers/staging/unisys/visorchipset/visorchipset.h | 24 +- .../unisys/visorchipset/visorchipset_main.c | 411 +++++++++++++++++++- 6 files changed, 432 insertions(+), 482 deletions(-) commit e3420ed6629530880c6b4dcc584cdfa0736a883a Author: Erik Arfvidson Date: Tue May 5 18:36:13 2015 -0400 staging: unisys: remove file.c and pass functionality to visorchipset This patch trasitions the include files and functions from file.c and places them into visorchipset_main.c Signed-off-by: Erik Arfvidson Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorchipset/Makefile | 2 +- drivers/staging/unisys/visorchipset/file.c | 162 --------------------- .../unisys/visorchipset/visorchipset_main.c | 136 ++++++++++++++++- 3 files changed, 136 insertions(+), 164 deletions(-) commit 95e967569dfd9bbe38bb533650c8a6bfb12f9523 Author: Erik Arfvidson Date: Tue May 5 18:36:12 2015 -0400 staging: unisys: moving file.h functionality to visorchipset.h this patch simply migrates file.h functionality to visorchipset.h Signed-off-by: Erik Arfvidson Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorchipset/file.c | 5 +++-- drivers/staging/unisys/visorchipset/file.h | 25 ---------------------- drivers/staging/unisys/visorchipset/visorchipset.h | 4 +++- .../unisys/visorchipset/visorchipset_main.c | 1 - 4 files changed, 6 insertions(+), 29 deletions(-) commit d777ba2e69bd2b7304adfabad6d1e495bd1b4f99 Author: Erik Arfvidson Date: Tue May 5 18:36:11 2015 -0400 staging: unisys: remove visorchipset_umode.h removes visorchipset_umode.h and pass functionality to visorchipset.h Signed-off-by: Erik Arfvidson Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorchipset/file.c | 1 - drivers/staging/unisys/visorchipset/visorchipset.h | 1 + .../unisys/visorchipset/visorchipset_umode.h | 35 ---------------------- 3 files changed, 1 insertion(+), 36 deletions(-) commit 4b78000ecf9765519d160803e5e7077b9ea9b5be Author: Prarit Bhargava Date: Tue May 5 18:36:10 2015 -0400 staging: unisys: remove visorbus_private.h visorbus_private.h is only included from visorbus_main.c and has no other purpose. The code can be easily moved into visorbus_main.c. Signed-off-by: Prarit Bhargava Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorbus_main.c | 27 +++++++++++- drivers/staging/unisys/visorbus/visorbus_private.h | 50 ---------------------- 2 files changed, 26 insertions(+), 51 deletions(-) commit 40699b97e2b55aa31cf486731c13ec287ad2b0d0 Author: Prarit Bhargava Date: Tue May 5 18:36:09 2015 -0400 staging: unisys: remove globals.h globals.h is only included in visorchannel.c and only contains 2 includes. These can be included directly in visorchannel.c. Signed-off-by: Prarit Bhargava Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/globals.h | 27 -------------------------- drivers/staging/unisys/visorbus/visorchannel.c | 3 ++- 2 files changed, 2 insertions(+), 28 deletions(-) commit 429809db3b133ff5e1d864bfb6e09c2ce9994e9a Author: Prarit Bhargava Date: Tue May 5 18:36:08 2015 -0400 staging: unisys: rename visorchannel_funcs.c to visorchannel.c visorchannel_funcs.c is a remnant of the separate visorchannel directory. It should be called visorchannel now. Signed-off-by: Prarit Bhargava Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/Makefile | 2 +- drivers/staging/unisys/visorbus/visorchannel.c | 663 +++++++++++++++++++++ .../staging/unisys/visorbus/visorchannel_funcs.c | 663 --------------------- 3 files changed, 664 insertions(+), 664 deletions(-) commit 32710457c895baefd7de6687e9e08f40ae7b2d24 Author: Prarit Bhargava Date: Tue May 5 18:36:07 2015 -0400 staging: unisys: unify devmajorminor attributes into visorbus_main.c The code in devmajorminor_attr.[ch] only creates sysfs files and is called only in visorbus_main.c. This code should be unified into visorbus_main.c. The only changes are a forward declaration issue with register_devmajorminor_attributes() and making the functions static. Signed-off-by: Prarit Bhargava Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/Makefile | 2 +- .../staging/unisys/visorbus/devmajorminor_attr.c | 192 --------------------- .../staging/unisys/visorbus/devmajorminor_attr.h | 31 ---- drivers/staging/unisys/visorbus/visorbus_main.c | 176 ++++++++++++++++++- 4 files changed, 176 insertions(+), 225 deletions(-) commit 826b6a0f8677995583b7b54706c8fa20e2491ac3 Author: Prarit Bhargava Date: Tue May 5 18:36:06 2015 -0400 staging: unisys: unify channel attributes into visorbus_main.c The code in channel_attr.[ch] only creates sysfs files and is called only in visorbus_main.c. This code should be unified into visorbus_main.c. There are some functions that have been made static. Signed-off-by: Prarit Bhargava Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/Makefile | 2 +- drivers/staging/unisys/visorbus/channel_attr.c | 227 ------------------------ drivers/staging/unisys/visorbus/channel_attr.h | 27 --- drivers/staging/unisys/visorbus/visorbus_main.c | 209 +++++++++++++++++++++- 4 files changed, 209 insertions(+), 256 deletions(-) commit a9a7c767e38f3e74efb8d30397b48cc37612c4de Author: Prarit Bhargava Date: Tue May 5 18:36:05 2015 -0400 staging: unisys: unify businst attributes into visorbus_main.c The code in businst_attr.[ch] only creates sysfs files and is called only in visorbus_main.c. This code should be unified into visorbus_main.c. There are some functions that have been made static. Signed-off-by: Prarit Bhargava Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/Makefile | 2 +- drivers/staging/unisys/visorbus/businst_attr.c | 103 ------------------------ drivers/staging/unisys/visorbus/businst_attr.h | 40 --------- drivers/staging/unisys/visorbus/visorbus_main.c | 97 +++++++++++++++++++++- 4 files changed, 97 insertions(+), 145 deletions(-) commit 98e50b8a5460971aee9bb4ff9786fa158f69cd38 Author: Don Zickus Date: Tue May 5 18:36:04 2015 -0400 staging: unisys: Remove unused driver The visorchannel feature is rolled into visorbus now and its headers are public under visorbus.h. Remove the unused driver, the old header file and all the ccflag includes in the Makefile. Also remove VISORCHANNEL from all Kconfigs as it is not needed. Signed-off-by: Don Zickus Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorchipset/Kconfig | 1 - 1 file changed, 1 deletion(-) commit 9bfc2c796b65b004940b6470b8e1893d31c4ae37 Author: Don Zickus Date: Tue May 5 18:36:03 2015 -0400 staging: unisys: Move visorbus.h to public namespace Turn visorbus.h into a public header that all visor* drivers will include. Signed-off-by: Don Zickus Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/include/visorbus.h | 214 +++++++++++++++++++++++++++++ drivers/staging/unisys/visorbus/visorbus.h | 214 ----------------------------- 2 files changed, 214 insertions(+), 214 deletions(-) commit f6439218bb0d6e40fdb90a45333b7bce5be2424d Author: Don Zickus Date: Tue May 5 18:36:02 2015 -0400 staging: unisys: Dissolve visorchannel.h This header is needed by other drivers and should be in a global namespace. In addition, functionally it is part of visorbus, so roll the contents into that header file. Signed-off-by: Don Zickus Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorbus.h | 50 +++++++++++++- drivers/staging/unisys/visorbus/visorbus_private.h | 2 +- drivers/staging/unisys/visorbus/visorchannel.h | 76 ---------------------- .../staging/unisys/visorbus/visorchannel_funcs.c | 2 +- drivers/staging/unisys/visorchipset/file.c | 2 +- .../unisys/visorchipset/visorchipset_main.c | 2 +- 6 files changed, 53 insertions(+), 81 deletions(-) commit 291603cca7eb52e7c2be4c5e1451de431bd21e73 Author: Don Zickus Date: Tue May 5 18:36:01 2015 -0400 staging: unisys: Move visorchannel into visorbus visorchannel seems to be a necessary component to visorbus and can never function as a standalone module. Let's treat it like a visorbus feature that is always enabled. Signed-off-by: Don Zickus Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/Kconfig | 1 - drivers/staging/unisys/Makefile | 1 - drivers/staging/unisys/visorbus/Kconfig | 3 +- drivers/staging/unisys/visorbus/Makefile | 2 +- drivers/staging/unisys/visorbus/globals.h | 27 + drivers/staging/unisys/visorbus/visorchannel.h | 76 +++ .../staging/unisys/visorbus/visorchannel_funcs.c | 663 +++++++++++++++++++++ drivers/staging/unisys/visorchannel/visorchannel.h | 76 --- .../unisys/visorchannel/visorchannel_funcs.c | 663 --------------------- drivers/staging/unisys/visorchipset/Kconfig | 1 + drivers/staging/unisys/visorchipset/Makefile | 2 +- 11 files changed, 770 insertions(+), 745 deletions(-) commit 3703987cd427ca4ca1c7e98308be7f3036007a37 Author: Erik Arfvidson Date: Tue May 5 18:36:00 2015 -0400 staging: unisys: add visorbus driver This base driver provides bus functionality to visorhid, visorhba, and visornic which will be later added to our driver base. Visorbus supports sPar bus model and manages bus specific functionality. It maintains the sysfs subtree /sys/devices/visorbus*/.It is responsible for device creation and destruction of the devices on its bus. Signed-off-by: Erik Arfvidson Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/Kconfig | 1 + drivers/staging/unisys/Makefile | 1 + .../common-spar/include/channels/vbuschannel.h | 2 +- drivers/staging/unisys/visorbus/Kconfig | 10 + drivers/staging/unisys/visorbus/Makefile | 14 + drivers/staging/unisys/visorbus/businst_attr.c | 103 ++ drivers/staging/unisys/visorbus/businst_attr.h | 40 + drivers/staging/unisys/visorbus/channel_attr.c | 227 +++ drivers/staging/unisys/visorbus/channel_attr.h | 27 + .../staging/unisys/visorbus/devmajorminor_attr.c | 192 +++ .../staging/unisys/visorbus/devmajorminor_attr.h | 31 + drivers/staging/unisys/visorbus/visorbus.h | 166 ++ drivers/staging/unisys/visorbus/visorbus_main.c | 1643 ++++++++++++++++++++ drivers/staging/unisys/visorbus/visorbus_private.h | 50 + 14 files changed, 2506 insertions(+), 1 deletion(-) commit 7e61e4c9b34c51913997830682181a24febe810d Author: Jes Sorensen Date: Tue May 5 18:35:59 2015 -0400 staging: unisys: Remove write-only variable g_del_dump_msg_hdr Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorchipset/visorchipset_main.c | 5 ----- 1 file changed, 5 deletions(-) commit 5157d88c9becd6a8cdb2978afaaf63b56b249c51 Author: Jes Sorensen Date: Tue May 5 18:35:58 2015 -0400 staging: unisys: Remove write-only variable g_diag_msg_hdr Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorchipset/visorchipset_main.c | 6 ------ 1 file changed, 6 deletions(-) commit ebec896762ee07c0dce9883865faa2a2d4b20751 Author: Jes Sorensen Date: Tue May 5 18:35:57 2015 -0400 staging: unisys: No point in checking != 0 Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman .../unisys/visorchipset/visorchipset_main.c | 26 +++++++++++----------- 1 file changed, 13 insertions(+), 13 deletions(-) commit 4eb32b4892bbf5b71f63e468af0c7d660dac6d96 Author: Jes Sorensen Date: Tue May 5 18:35:56 2015 -0400 staging: unisys: Avoid some == 0 checks Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorchipset/file.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 28723521a7e909d4fb19a682ad9a3647496fe62b Author: Jes Sorensen Date: Tue May 5 18:35:55 2015 -0400 staging: unisys: delbusdevices() doesn't need to be inline Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorchipset/visorchipset.h | 12 ------------ drivers/staging/unisys/visorchipset/visorchipset_main.c | 16 ++++++++++++++-- 2 files changed, 14 insertions(+), 14 deletions(-) commit d480f6a2b9f5aaf8f34ef74ef471d0e219c45c21 Author: Jes Sorensen Date: Tue May 5 18:35:54 2015 -0400 staging: unisys: finddevice() doesn't need to be inline Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorchipset/visorchipset.h | 12 -------- .../unisys/visorchipset/visorchipset_main.c | 32 ++++++++++++++++------ 2 files changed, 23 insertions(+), 21 deletions(-) commit 92b5e8c0ac63fb74171929b98f1fa170a0ff46b2 Author: Jes Sorensen Date: Tue May 5 18:35:53 2015 -0400 staging: unisys: Remove unused typedef SPARREPORTEVENT_COMPLETE_FUNC Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorchipset/visorchipset.h | 3 --- 1 file changed, 3 deletions(-) commit 4f66520be923db928b487a5181c6ff8a5590857f Author: Jes Sorensen Date: Tue May 5 18:35:52 2015 -0400 staging: unisys: findbus() doesn't need to be inline Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorchipset/visorchipset.h | 12 --------- .../unisys/visorchipset/visorchipset_main.c | 31 +++++++++++++++------- 2 files changed, 22 insertions(+), 21 deletions(-) commit a5aa395da6d1688cc0d8b5239c3a66aa235580a7 Author: Jes Sorensen Date: Tue May 5 18:35:51 2015 -0400 staging: unisys: Remove write-only visorchipset_bus_info.dev_no Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorchipset/visorchipset.h | 1 - drivers/staging/unisys/visorchipset/visorchipset_main.c | 1 - 2 files changed, 2 deletions(-) commit 53dfe389c863eddf6aaeeab8afb34ffdd42a2079 Author: Jes Sorensen Date: Tue May 5 18:35:50 2015 -0400 staging: unisys: buffer_list_pool isn't used for anything Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman .../staging/unisys/visorchipset/visorchipset_main.c | 20 -------------------- 1 file changed, 20 deletions(-) commit f10c55428f9e16361d69073e2e619f38a7a1c438 Author: Jes Sorensen Date: Tue May 5 18:35:49 2015 -0400 staging: unisys: Remove a couple of unnecessary blank lines Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorchipset/visorchipset.h | 2 -- 1 file changed, 2 deletions(-) commit 94ac450060e77f5b85bb854f6bb444ecd1d99502 Author: Jes Sorensen Date: Tue May 5 18:35:48 2015 -0400 staging: unisys: Don't include timskmod.h Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorchipset/parser.h | 1 - drivers/staging/unisys/visorchipset/visorchipset.h | 1 - 2 files changed, 2 deletions(-) commit be91cd3740cbaa3290ffd5a4cbb197fff7cdbeb2 Author: Jes Sorensen Date: Tue May 5 18:35:47 2015 -0400 staging: unisys: Remove unused cache object counter kmem_cache statistics are available through SLAB anyway Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorchipset/visorchipset_main.c | 4 ---- 1 file changed, 4 deletions(-) commit 9421736356cb4035a2ee10a021b8d0e82fd954a0 Author: Jes Sorensen Date: Tue May 5 18:35:46 2015 -0400 staging: unisys: Get rid of uint usage Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorchipset/visorchipset_main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e82ba62e23bc9d9e57b19fa1a5bdf18fab9a218e Author: Jes Sorensen Date: Tue May 5 18:35:45 2015 -0400 staging: unisys: Do not initialize variables unnecessarily Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman .../unisys/visorchipset/visorchipset_main.c | 36 +++++++++++----------- 1 file changed, 18 insertions(+), 18 deletions(-) commit cbc2af3cb5667ff1576b9bf237082f25503a3b8b Author: Jes Sorensen Date: Tue May 5 18:35:44 2015 -0400 staging: unisys: Don't zero struct elements which will be memset away Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorchipset/visorchipset_main.c | 6 ------ 1 file changed, 6 deletions(-) commit bbd4be301c48adb763eda9631808e316157d6417 Author: Jes Sorensen Date: Tue May 5 18:35:43 2015 -0400 staging: unisys: Remove unncessary parenthesis Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorchipset/visorchipset_main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b70b9099f06d5ab68cdbe12b6d150f0d7303becf Author: Jes Sorensen Date: Tue May 5 18:35:42 2015 -0400 staging: unisys: Remove some unnecessary parenthesis Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorchipset/visorchipset_umode.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5981cc995767803d19e9fe01aa82a0da51fc6c67 Author: Jes Sorensen Date: Tue May 5 18:35:41 2015 -0400 staging: unisys: Fix up a few cases of bad formatting Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorchipset/file.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 7023638c46b6d1b819b97e397559d10c1d4fcf6f Author: Jes Sorensen Date: Tue May 5 18:35:40 2015 -0400 staging: unisys: Eliminate globals.h Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorchipset/file.c | 6 +++-- drivers/staging/unisys/visorchipset/file.h | 2 -- drivers/staging/unisys/visorchipset/globals.h | 29 ---------------------- .../unisys/visorchipset/visorchipset_main.c | 2 +- 4 files changed, 5 insertions(+), 34 deletions(-) commit 872a5032b28e5d1d420b487104adb84f9406653d Author: Jes Sorensen Date: Tue May 5 18:35:39 2015 -0400 staging: unisys: Move MYDRVNAME to visorchipset.h Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorchipset/globals.h | 2 -- drivers/staging/unisys/visorchipset/visorchipset.h | 2 ++ 2 files changed, 2 insertions(+), 2 deletions(-) commit b615d628b672c90b377c4167429c0c3b66621ba6 Author: Jes Sorensen Date: Tue May 5 18:35:38 2015 -0400 staging: unisys: Move module parameters around and mark static Move the module parameters and make sure they are static. Signed-off-by: Jes Sorensen Tested-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorchipset/globals.h | 10 ------- .../unisys/visorchipset/visorchipset_main.c | 31 +++++++++++----------- 2 files changed, 16 insertions(+), 25 deletions(-) commit b4da00601edd39184fa187d5fd6dfc36232991cc Merge: d5a7d45 5ebe6af Author: Greg Kroah-Hartman Date: Fri May 8 14:38:55 2015 +0200 Merge 4.1-rc2 into staging-next We want the fixes in here to make merges and testing easier. Signed-off-by: Greg Kroah-Hartman commit 3a23208e69679597e767cf3547b1a30dd845d9b5 Author: Denys Vlasenko Date: Fri Apr 24 17:31:35 2015 +0200 x86/entry: Define 'cpu_current_top_of_stack' for 64-bit code 32-bit code has PER_CPU_VAR(cpu_current_top_of_stack). 64-bit code uses somewhat more obscure: PER_CPU_VAR(cpu_tss + TSS_sp0). Define the 'cpu_current_top_of_stack' macro on CONFIG_X86_64 as well so that the PER_CPU_VAR(cpu_current_top_of_stack) expression can be used in both 32-bit and 64-bit code. Signed-off-by: Denys Vlasenko Cc: Alexei Starovoitov Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Frederic Weisbecker Cc: H. Peter Anvin Cc: Kees Cook Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Thomas Gleixner Cc: Will Drewry Link: http://lkml.kernel.org/r/1429889495-27850-3-git-send-email-dvlasenk@redhat.com Signed-off-by: Ingo Molnar arch/x86/ia32/ia32entry.S | 4 ++-- arch/x86/include/asm/thread_info.h | 10 ++++------ arch/x86/kernel/entry_64.S | 2 +- arch/x86/xen/xen-asm_64.S | 5 +++-- 4 files changed, 10 insertions(+), 11 deletions(-) commit fed7c3f0f750f225317828d691e9eb76eec887b3 Author: Denys Vlasenko Date: Fri Apr 24 17:31:34 2015 +0200 x86/entry: Remove unused 'kernel_stack' per-cpu variable Signed-off-by: Denys Vlasenko Acked-by: Andy Lutomirski Cc: Alexei Starovoitov Cc: Andrew Morton Cc: Borislav Petkov Cc: Frederic Weisbecker Cc: H. Peter Anvin Cc: Kees Cook Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Thomas Gleixner Cc: Will Drewry Link: http://lkml.kernel.org/r/1429889495-27850-2-git-send-email-dvlasenk@redhat.com Signed-off-by: Ingo Molnar arch/x86/include/asm/thread_info.h | 2 -- arch/x86/kernel/cpu/common.c | 4 ---- arch/x86/kernel/process_32.c | 5 +---- arch/x86/kernel/process_64.c | 3 --- arch/x86/kernel/smpboot.c | 2 -- 5 files changed, 1 insertion(+), 15 deletions(-) commit b28cb9414db9f8e42ac18c9e360e4e99cda42489 Author: Michael Welling Date: Thu May 7 18:36:53 2015 -0500 spi: omap2-mcspi: Switch driver to use transfer_one Switches from transfer_one_message to transfer_one to prepare driver for use of GPIO chip selects. Signed-off-by: Michael Welling Signed-off-by: Mark Brown drivers/spi/spi-omap2-mcspi.c | 244 +++++++++++++++++++----------------------- 1 file changed, 110 insertions(+), 134 deletions(-) commit 7d769802427ef9a91eaf9b5a9a6283e71f2ba9d8 Merge: b787f68 c5a06e7 Author: Mark Brown Date: Fri May 8 12:48:27 2015 +0100 Merge remote-tracking branch 'spi/fix/omap2-mcspi' into spi-omap2-mcspi commit 63332a8455d8310b77d38779c6c21a660a8d9feb Author: Denys Vlasenko Date: Fri Apr 24 17:31:33 2015 +0200 x86/entry: Stop using PER_CPU_VAR(kernel_stack) PER_CPU_VAR(kernel_stack) is redundant: - On the 64-bit build, we can use PER_CPU_VAR(cpu_tss + TSS_sp0). - On the 32-bit build, we can use PER_CPU_VAR(cpu_current_top_of_stack). PER_CPU_VAR(kernel_stack) will be deleted by a separate change. Signed-off-by: Denys Vlasenko Cc: Alexei Starovoitov Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Frederic Weisbecker Cc: H. Peter Anvin Cc: Kees Cook Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Thomas Gleixner Cc: Will Drewry Link: http://lkml.kernel.org/r/1429889495-27850-1-git-send-email-dvlasenk@redhat.com Signed-off-by: Ingo Molnar arch/x86/ia32/ia32entry.S | 2 +- arch/x86/include/asm/thread_info.h | 8 +++++++- arch/x86/kernel/entry_64.S | 2 +- arch/x86/xen/xen-asm_64.S | 5 +++-- 4 files changed, 12 insertions(+), 5 deletions(-) commit e22438f8e997ac1c8911d8808b6a4c492cd8bc6e Author: Andy Lutomirski Date: Fri Apr 24 15:09:19 2015 -0700 x86, selftests: Add a test for the "sysret_ss_attrs" bug On AMD CPUs, SYSRET can return with a valid SS descriptor with with the hidden attributes set to an unusable state. Make sure the kernel doesn't let this happen. This detects an as-yet-unfixed regression. Note that the 64-bit version of this test fails on AMD CPUs on all kernel versions, although the issue in the 64-bit case is much less severe than in the 32-bit case. Reported-by: Brian Gerst Tested-by: Denys Vlasenko Signed-off-by: Andy Lutomirski Tests: e7d6eefaaa44 ("x86/vdso32/syscall.S: Do not load __USER32_DS to %ss") Cc: Alexei Starovoitov Cc: Andrew Morton Cc: Borislav Petkov Cc: Denys Vlasenko Cc: Frederic Weisbecker Cc: Kees Cook Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Thomas Gleixner Cc: Will Drewry Link: http://lkml.kernel.org/r/resend_4d740841bac383742949e2fefb03982736595087.git.luto@kernel.org Signed-off-by: Ingo Molnar tools/testing/selftests/x86/Makefile | 5 +- tools/testing/selftests/x86/run_x86_tests.sh | 2 + tools/testing/selftests/x86/sysret_ss_attrs.c | 112 ++++++++++++++++++++++++++ tools/testing/selftests/x86/thunks.S | 67 +++++++++++++++ 4 files changed, 185 insertions(+), 1 deletion(-) commit 7ae383be81781c5e1347f71c3eb0d53ce5188200 Merge: 2a4e90b 3e0283a Author: Ingo Molnar Date: Fri May 8 13:33:33 2015 +0200 Merge branch 'linus' into x86/asm, before applying dependent patch Signed-off-by: Ingo Molnar commit 8fb6e7a579670d5b71fc0d5641c1523b3df612e8 Author: Daniel Stone Date: Mon Apr 20 19:22:54 2015 +0100 drm: Introduce blob_lock Create a new global blob_lock mutex, which protects the blob property list from insertion and/or deletion. Signed-off-by: Daniel Stone Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_crtc.c | 18 +++++++++++++++--- include/drm/drm_crtc.h | 3 +++ 2 files changed, 18 insertions(+), 3 deletions(-) commit d2ed34362a52c9f0c4d77325fb25bb729704be45 Author: Daniel Stone Date: Mon Apr 20 19:22:53 2015 +0100 drm: Introduce helper for replacing blob properties Introduce a common helper for the pattern of: - allocate new blob property - potentially free old blob property - replace content of indicative property with new blob ID - change member pointer on modeset object Signed-off-by: Daniel Stone Cc: Dave Airlie Reviewed-by: Maarten Lankhorst [danvet: Squash in fixup from Daniel for the kerneldoc, reported by 0day builder.] Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_crtc.c | 155 +++++++++++++++++++++++++++++++-------------- 1 file changed, 106 insertions(+), 49 deletions(-) commit ac935a8b6db00079e2de65cadf4c735ed8f0175b Author: Jesse Barnes Date: Wed Apr 1 14:22:58 2015 -0700 drm/i915/vlv: remove wait for previous GFX clk disable request Looks like it was introduced in: commit 650ad970a39f8b6164fe8613edc150f585315289 Author: Imre Deak Date: Fri Apr 18 16:35:02 2014 +0300 drm/i915: vlv: factor out vlv_force_gfx_clock and check for pending force-of but I'm not sure why. It has caused problems for us in the past (see 85250ddff7a6 "drm/i915/chv: Remove Wait for a previous gfx force-off" and 8d4eee9cd7a1 "drm/i915: vlv: increase timeout when forcing on the GFX clock") and doesn't seem to be required, so let's just drop it. References: https://bugs.freedesktop.org/show_bug.cgi?id=89611 Signed-off-by: Jesse Barnes Tested-by: Darren Hart Reviewed-by: Deepak S Cc: stable@vger.kernel.org # c9c52e24194a: drm/i915/chv: Remove Wait ... Cc: stable@vger.kernel.org Signed-off-by: Jani Nikula [danvet: Repick this commit from 5df0582bf036bb5f9a8ad8db5884fe13a55347d1 becuase Dave Airlie lost it in his merge commit e1dee1973c74a0408b108d88c57a15be8a2d6d84.] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.c | 14 -------------- 1 file changed, 14 deletions(-) commit ff9174d57a8239c5a21d2a0c7e00dddd54953f6c Author: Fabio Estevam Date: Thu May 7 23:24:16 2015 -0300 ASoC: fsl_ssi: No need call of_device_is_available() The comment and the call to of_device_is_available() are not really needed. It is the expected behaviour to probe only the ssi nodes that are enabled in the device tree. Signed-off-by: Fabio Estevam Acked-by: Timur Tabi Signed-off-by: Mark Brown sound/soc/fsl/fsl_ssi.c | 7 ------- 1 file changed, 7 deletions(-) commit 92ac4c5012a6505858c28be2dd5bf1c6f0dd26cf Author: Lars-Peter Clausen Date: Thu May 7 21:27:49 2015 +0200 ASoC: z2: Automatically disconnect non-connected pins Most DAPM input and output pins of the wm8750 are either used in the card's DAPM routing table or are marked as not connected. The only exceptions are the LINPUT1, RINPUT1, LINPUT2 input pins. Lets assume that those were simply overlooked and that the routing table is complete. Set the fully_routed flag of the card instead of manually marking the unused inputs and outputs as not connected. This makes the code a bit shorter and cleaner. Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/pxa/z2.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) commit c02e723f3e27f3bd32f24de473af69f0e39e8f79 Author: Lars-Peter Clausen Date: Thu May 7 21:27:48 2015 +0200 ASoC: tosa: Automatically disconnect non-connected pins Most DAPM input and output pins of the wm9712 are either used in the card's DAPM routing table or are marked as not connected. The only two exception are "PHONE" and "PCBEEP" input, lets assume that those were simply overlooked and that the routing table is complete. Set the fully_routed flag of the card instead of manually marking the unused inputs and outputs as not connected. This makes the code a bit shorter and cleaner. Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/pxa/tosa.c | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) commit 9b44bacd584220e721fb477cfd6de457f34a4f11 Author: Lars-Peter Clausen Date: Thu May 7 21:27:47 2015 +0200 ASoC: poodle: Automatically disconnect non-connected pins The Zaurus SL-5600 seems to have a microphone input. Otherwise all DAPM input and output pins of the wm8731 are either used in the card's DAPM routing table or are marked as not connected. So add the microphone to the DAPM tables and set the fully_routed flag of the card instead of manually marking the unused inputs and outputs as not connected. This makes the code a bit shorter and cleaner. Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/pxa/poodle.c | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) commit 6b9aa50cd239ff78f6680d070315608a49218159 Author: Lars-Peter Clausen Date: Thu May 7 21:27:46 2015 +0200 ASoC: brownstone: Automatically disconnect non-connected pins Most DAPM input and output pins of the wm8994 are either used in the card's DAPM routing table or are marked as not connected. The only exception is DMIC2DAT input. Given that DMIC1DAT is explicitly mentioned in the DAPM routes lets assume that DMIC2DAT simply has been overlooked and should be marked as not connected. Set the fully_routed flag of the card instead of manually marking the unused inputs and outputs as not connected. This makes the code a bit shorter and cleaner. Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/pxa/brownstone.c | 25 +------------------------ 1 file changed, 1 insertion(+), 24 deletions(-) commit 90d469067d0808ddbd9be2c97a4a8e14037b5e46 Author: Matt Roper Date: Thu May 7 14:31:28 2015 -0700 drm/i915: Set crtc_state->active to false when CRTC is disabled (v2) With the recent modeset internal rework, we wind up setting crtc_state->enable to false, but leave crtc_state->active as true, which is incorrect. This mismatch gets caught by drm_atomic_crtc_check() and causes subsequent atomic operations (such as plane updates while the CRTC is disabled) to fail. Bisect points to commit dad9a7d6d96630182fb52aae7c3856e9e7285e13 Author: Ander Conselvan de Oliveira Date: Tue Apr 21 17:13:19 2015 +0300 drm/i915: Use atomic helpers for computing changed flags as the commit that actually triggers the regression. v2: Update to alter in-flight state rather than already-committed state (first version was accidentally based on a midpoint of Ander's modeset rework series, before his final patches that add proper state swapping to the legacy modeset path). Cc: Ander Conselvan de Oliveira Cc: Maarten Lankhorst Testcase: igt/kms_universal_plane Signed-off-by: Matt Roper Reviewed-by: Ander Conselvan de Oliveira Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 1 + 1 file changed, 1 insertion(+) commit ebf7ed1a5bf859b092396c66a072c2cb797358bf Author: Damien Lespiau Date: Thu May 7 18:38:37 2015 +0100 drm/i915/skl: Re-indent part of skl_ddi_calculate_wrpll() A part of this function was indented with 2 tabs and 1 space instead of just 2 tabs. We're going to touch that code, so start by re-indenting it. Signed-off-by: Damien Lespiau Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_ddi.c | 64 ++++++++++++++++++++-------------------- 1 file changed, 32 insertions(+), 32 deletions(-) commit c5ad54cf7dd8922bd1cee2d5871aebf73dc9638e Author: Joonas Lahtinen Date: Wed May 6 14:36:09 2015 +0300 drm/i915: Use partial view in mmap fault handler Use partial view for huge BOs (bigger than half the mappable aperture) in fault handler so that they can be accessed withough trying to make room for them by evicting other objects. v2: - Only use partial views in the case where early rejection was previously done. - Account variable type changes from previous reroll. v3: - Add a comment about overwriting existing page entries. (Tvrtko Ursulin) - Whitespace fixes. Cc: Chris Wilson Cc: Tvrtko Ursulin Signed-off-by: Joonas Lahtinen Reviewed-by: Tvrtko Ursulin Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem.c | 73 ++++++++++++++++++++++++++++------------- 1 file changed, 51 insertions(+), 22 deletions(-) commit 8bd7ef1638611db5f4fe47813758588b610ee5aa Author: Joonas Lahtinen Date: Wed May 6 14:35:38 2015 +0300 drm/i915: Add a partial GGTT view type Partial view type allows manipulating parts of huge BOs through the GGTT, which was not previously possible due to constraint that whole object had to be mapped for any access to it through GGTT. v2: - Retain error value from sg_alloc_table (Tvrtko Ursulin) - Do not zero already zeroed variable (Tvrtko Ursulin) - Use more common variable types for page size/offset (Tvrtko Ursulin) v3: - Only compare additional view parameters when need to (Tvrtko Ursulin) v4: - Do zero out the variable that needs to be (bug introduced in v2). Cc: Tvrtko Ursulin Signed-off-by: Joonas Lahtinen Reviewed-by: Tvrtko Ursulin Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 46 +++++++++++++++++++++++++++++++++++++ drivers/gpu/drm/i915/i915_gem_gtt.h | 16 +++++++++++-- 2 files changed, 60 insertions(+), 2 deletions(-) commit a6631ae1fd868b893986f3a613c231e34877b7b5 Author: Joonas Lahtinen Date: Wed May 6 14:34:58 2015 +0300 drm/i915: Consider object pinned if any VMA is pinned Do not skip special GGTT views when considering whether an object is pinned or not. Wrong behaviour was introduced in; commit ec7adb6ee79c8c9fe64d63ad638a31cd62e55515 Author: Joonas Lahtinen Date: Mon Mar 16 14:11:13 2015 +0200 drm/i915: Do not use ggtt_view with (aliasing) PPGTT Cc: Daniel Vetter Cc: Tvrtko Ursulin Signed-off-by: Joonas Lahtinen Reviewed-by: Tvrtko Ursulin Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit 91e6711e30c55d7493eed5c3852764e38a782cad Author: Joonas Lahtinen Date: Wed May 6 14:33:58 2015 +0300 drm/i915: Do not make assumptions on GGTT VMA sizes GGTT VMA sizes might be smaller than the whole object size due to different GGTT views. v2: - Separate GGTT view constraint calculations from normal view constraint calculations (Chris Wilson) v3: - Do not bother with debug wording. (Tvrtko Ursulin) v4: - Clearer logic for calculating map_and_fenceable (Tvrtko Ursulin) Cc: Chris Wilson Cc: Tvrtko Ursulin Signed-off-by: Joonas Lahtinen Reviewed-by: Tvrtko Ursulin [danvet: Drop BUG_ON, it's redudant.] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem.c | 74 +++++++++++++++++++++++++------------ drivers/gpu/drm/i915/i915_gem_gtt.c | 20 ++++++++++ drivers/gpu/drm/i915/i915_gem_gtt.h | 4 ++ 3 files changed, 74 insertions(+), 24 deletions(-) commit 16be17af2ae9fd1544b5d0c58b4facf198031cb8 Author: Nick Hoath Date: Thu May 7 14:15:37 2015 +0100 drm/i915/bxt: Mark WaCcsTlbPrefetchDisable as for Broxton also. Signed-off-by: Nick Hoath Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_ringbuffer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 27160c96e1897c541fa72a86fcfa2f2f67f73876 Author: Nick Hoath Date: Thu May 7 14:15:36 2015 +0100 drm/i915/bxt: Mark WaDisablePartialResolveInVc as for Broxton also. Signed-off-by: Nick Hoath Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_ringbuffer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 40579e0b88580cb8fd53218635ab0afbdb3a4919 Author: Marek Belisko Date: Thu May 7 21:29:31 2015 +0200 ASoC: gtm601: Document GTM601 bindings Add small documentation for GTM601 UMTS modem audio interface. Signed-off-by: Marek Belisko Signed-off-by: Mark Brown Documentation/devicetree/bindings/sound/gtm601.txt | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 5068368c2e3455c91f8c0c1a8f39eb511b184822 Author: Nick Hoath Date: Thu May 7 14:15:35 2015 +0100 drm/i915/bxt: Mark Wa4x4STCOptimizationDisable as for Broxton also. Signed-off-by: Nick Hoath Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_ringbuffer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b62adbd1ea1f65e82ac7b3ec79f9f4873e193a10 Author: Nick Hoath Date: Thu May 7 14:15:34 2015 +0100 drm/i915/bxt: Move WaForceEnableNonCoherent to Skylake only Signed-off-by: Nick Hoath Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_ringbuffer.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) commit 27a1b688d9f1fa2abd14bfe6a8729a19fb3b1b25 Author: Nick Hoath Date: Thu May 7 14:15:33 2015 +0100 drm/i915/bxt: Enable WaEnableYV12BugFixInHalfSliceChicken7 for Broxton Signed-off-by: Nick Hoath Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_ringbuffer.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit a13d215fe75d0b98b9841654b56dcd6e8cc796e4 Author: Nick Hoath Date: Thu May 7 14:15:32 2015 +0100 drm/i915/bxt: Enable WaSetDisablePixMaskCammingAndRhwoInCommonSliceChicken for Broxton Signed-off-by: Nick Hoath Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_ringbuffer.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit d2a31dbd67d44ac9b9435fddba5a99696298afa6 Author: Nick Hoath Date: Thu May 7 14:15:31 2015 +0100 drm/i915/bxt: Enable WaDisableDgMirrorFixInHalfSliceChicken5 for Broxton Signed-off-by: Nick Hoath Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_ringbuffer.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit a119a6e66e0a57fcab927514cd6dbd148490d6d5 Author: Nick Hoath Date: Thu May 7 14:15:30 2015 +0100 drm/i915/bxt: Mark workaround as for Skylake & Broxton Signed-off-by: Nick Hoath Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_ringbuffer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b0e6f6d4b073f11c351163adf98fc7d7eb972541 Author: Nick Hoath Date: Thu May 7 14:15:29 2015 +0100 drm/i915/bxt: Mark WaDisablePartialInstShootdown as for Broxton also. Signed-off-by: Nick Hoath Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_ringbuffer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 432be69d9d7e7e23f994422690639f3aa1d6abc2 Author: Chris Wilson Date: Thu May 7 12:14:55 2015 +0100 drm/i915: Remove locking for get-caching query Reading a single value from the object, the locking only provides futile protection against userspace races. The locking is useless so remove it. Signed-off-by: Chris Wilson Reviewed-by: Mika Kuoppala Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem.c | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) commit 637a9c63f84263ebfdb27440b81d6e18e5d35754 Author: Sonika Jindal Date: Thu May 7 09:52:08 2015 +0530 drm/i915: Rename dp rates array as per platform Renaming gen9_rates to skl_rates because other platforms may have different supported rates. Signed-off-by: Sonika Jindal Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_dp.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 550acefd229dc3ef1be00c3355ecccca8fe8bf2b Author: Ander Conselvan de Oliveira Date: Tue Apr 21 17:13:24 2015 +0300 drm/i915: Get rid of intel_crtc_set_state() Now that we do proper state swaps, we don't depend on this function anymore to keep the state in sync. Signed-off-by: Ander Conselvan de Oliveira Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) commit a821fc46bc7bb6d4cf9a5f8d2787fd70231c2c10 Author: Ander Conselvan de Oliveira Date: Tue Apr 21 17:13:23 2015 +0300 drm/i915: Swap atomic state in legacy modeset Replace the commit output state function with a simple swap of states. Note that we still need to reconcile the legacy state after the swap, since there are still code that relies on those. Also note that even though changes to the state of a crtc different than the one passed as an argument to __intel_set_mode() will be saved, the modeset logic still deals with only one crtc. Signed-off-by: Ander Conselvan de Oliveira Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 117 ++++++++++++----------------------- 1 file changed, 39 insertions(+), 78 deletions(-) commit d4afb8cc3a6a68fe2eddf027b80826d3b7f5b304 Author: Ander Conselvan de Oliveira Date: Tue Apr 21 17:13:22 2015 +0300 drm/i915: Don't use plane update helper in legacy mode set Use lower level calls to better integrate with the modeset code and allow a full state swap in a follow up patch. Signed-off-by: Ander Conselvan de Oliveira Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 47 +++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 22 deletions(-) commit 4978cc93d9ac240b435ce60431aef24239b4c270 Author: Ander Conselvan de Oliveira Date: Tue Apr 21 17:13:21 2015 +0300 drm/i915: Preserve shared DPLL information in new pipe_config When a new pipe_config is calculated, the fields related to shared dplls are reset, under the assumption that they will be recalculated as part of the modeset, which is true with the current state of the code. As we convert to atomic, however, it will be possible to calculate a new pipe_config and skip the modeset. In that case, after the state swap we still want the shared dplls to be preserved. Signed-off-by: Ander Conselvan de Oliveira Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) commit 2bfb4627580ae91d2978e1c071ed1a4b5039f2fd Author: Ander Conselvan de Oliveira Date: Tue Apr 21 17:13:20 2015 +0300 drm/i915: Take ownership of atomic state on success in intel_set_mode() To match the behavior of ->atomic_commit(). Signed-off-by: Ander Conselvan de Oliveira Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) commit 8c7b5ccb729870e606321b3703e2c2e698c49a95 Author: Ander Conselvan de Oliveira Date: Tue Apr 21 17:13:19 2015 +0300 drm/i915: Use atomic helpers for computing changed flags Replace the drivers own logic for computing mode_changed, active_changed and planes_changed flags with the check_modeset() atomic helper. Since that function needs to compare the crtc's new mode with the current, this patch also moves the set up of crtc_state->mode earlier in the call chain. Note that for the call to check_plane() to work properly, we need to check new plane state against new crtc state. But since we still use the plane update helper, which doesn't have a full atomic state, we need to hack around that in intel_plane_atomic_check(). Signed-off-by: Ander Conselvan de Oliveira Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_atomic_plane.c | 16 ++- drivers/gpu/drm/i915/intel_display.c | 197 ++++++------------------------ 2 files changed, 52 insertions(+), 161 deletions(-) commit 840bfe953384a134c8639f2964d9b74bfa671e16 Author: Ander Conselvan de Oliveira Date: Tue Apr 21 17:13:18 2015 +0300 drm/atomic: Make mode_fixup() optional for check_modeset() So the i915 driver can use the same logic for setting mode and active changed flags, without having to implement encoder helpers and the mode_fixup() callback. Cc: dri-devel@lists.freedestkop.org Signed-off-by: Ander Conselvan de Oliveira Reviewed-by: Maarten Lankhorst Acked-by: Dave Airlie Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_atomic_helper.c | 5 +++++ 1 file changed, 5 insertions(+) commit 0f63cca2afdc38877e86acfa9821020f6e2213fd Author: Ander Conselvan de Oliveira Date: Tue Apr 21 17:13:17 2015 +0300 drm/i915: Update crtc state active flag based on DPMS In a follow up patch the function that computes mode changes will be replaced with the one from the atomic helpers. To preserve the behavior of legacy modeset forcing DPMS on, that function will need to detect a change in the active state of the crtc, so that has to be kept up to date. Signed-off-by: Ander Conselvan de Oliveira Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 2 ++ 1 file changed, 2 insertions(+) commit 7cbf41d6105fe55074c03582831da72923d0874b Author: Ander Conselvan de Oliveira Date: Tue Apr 21 17:13:16 2015 +0300 drm/i915: Remove save/restore logic from intel_crtc_set_config() This is no longer necessary since we only update the staged config on successfull modeset. The new configuration is stored in an atomic state struct which is freed in case of failure. Signed-off-by: Ander Conselvan de Oliveira Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 113 ++--------------------------------- drivers/gpu/drm/i915/intel_drv.h | 9 --- 2 files changed, 6 insertions(+), 116 deletions(-) commit d5432a9d19b61ba6a2b3d88f3026e0ca60eb57a1 Author: Ander Conselvan de Oliveira Date: Tue Apr 21 17:13:15 2015 +0300 drm/i915: Stage new modeset state straight into atomic state The logic that stages the state before the modeset was still updating first the old staged config and then populating the atomic state based on that. Change this to use only the atomic state. Note that now the staged config is updated in the function intel_modeset_commit_output_state(). This is done so that the modeset check and the force restore path in the hw state read out code continue to work. Signed-off-by: Ander Conselvan de Oliveira Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 170 +++++++++++++++++------------------ 1 file changed, 85 insertions(+), 85 deletions(-) commit b78852646450f3cb1e0677c1ae8a56875dd22562 Author: Ander Conselvan de Oliveira Date: Tue Apr 21 17:13:14 2015 +0300 drm/i915: Simplify intel_set_config_compute_mode_changes() a bit Add a helper function to make the code slightly more readable. Signed-off-by: Ander Conselvan de Oliveira Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 44 ++++++++++++++++++++++-------------- 1 file changed, 27 insertions(+), 17 deletions(-) commit bb54662350662815b4bfc2ff4464330a2dbd7041 Author: Ander Conselvan de Oliveira Date: Tue Apr 21 17:13:13 2015 +0300 drm/i915: Unify modeset and flip paths of intel_crtc_set_config() Call intel_set_mode() uncondionally from intel_crtc_set_config(), since the former function is now properly wired to ignore all the modesets if the mode_changed and active_changed flags are false in crtc_state. Signed-off-by: Ander Conselvan de Oliveira Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 37 +++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) commit 41227c8c52bccef5ceb86b2ab1a2ffc4be04c44e Author: Ander Conselvan de Oliveira Date: Tue Apr 21 17:13:12 2015 +0300 drm/i915: Don't use staged config to calculate mode_changed flags Use the atomic state instead. Signed-off-by: Ander Conselvan de Oliveira Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 49 ++++++++++++++++++------------------ 1 file changed, 25 insertions(+), 24 deletions(-) commit 8d8c9b519733c1f4ee6e0362f1e15244579873ae Author: Ander Conselvan de Oliveira Date: Tue Apr 21 17:13:11 2015 +0300 drm/i915: Don't use struct intel_set_config *_changed flags Use the similar fields in crtc_state instead, so that this code can be moved to our future implementation of atomic_check(). Signed-off-by: Ander Conselvan de Oliveira Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 66 +++++++++++++++++++----------------- 1 file changed, 34 insertions(+), 32 deletions(-) commit cf6d0d76cf797494b95e4971f662c6311ff92320 Author: Ander Conselvan de Oliveira Date: Tue Apr 21 17:13:10 2015 +0300 drm/i915: Delete fb, x and y parameters from mode set functions We don't need to pass it down the call chain anymore now that the plane state is set up properly. Signed-off-by: Ander Conselvan de Oliveira Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) commit d3a40d1bc8aea935c2df4634e374aecdc4fdbfc2 Author: Ander Conselvan de Oliveira Date: Tue Apr 21 17:13:09 2015 +0300 drm/i915: Add primary plane to atomic state in legacy modeset Add the primary plane state to the legacy modeset atomic state and use it when configuring the primary plane in __intel_set_mode(). This is a first step towards merging the flip path in intel_crtc_set_config() and __intel_set_mode(). v2: Set crtc to NULL if fb is NULL. (Maarten) Signed-off-by: Ander Conselvan de Oliveira Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 83 ++++++++++++++++++++++++++++++------ 1 file changed, 71 insertions(+), 12 deletions(-) commit 561c8bda8fd1c536231eac8032e3792715f7db87 Author: Ander Conselvan de Oliveira Date: Tue Apr 21 17:13:08 2015 +0300 drm/i915: Don't modeset with old mode when set_crtc fails The modeset code is now properly divided in two phases, so that it only changes hardware state if it succeeds, so there's no ill-effect that needs to be undone on failure anymore. Signed-off-by: Ander Conselvan de Oliveira Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 48 ------------------------------------ 1 file changed, 48 deletions(-) commit 9eb45f228f24a2d1d98cb526e149aa18ba1f5ef5 Author: Ander Conselvan de Oliveira Date: Tue Apr 21 17:13:07 2015 +0300 drm/i915: Simplify error handling in __intel_set_mode() The remaining parts of the failure path could only be reached if the allocation of crtc_state_copy would fail. In that case, there is nothing to undo, so just get rid of the label for error handling and return an error code immediately. We also always allocate a pipe_config, even if the pipe is being disabled, so the remaining part of what was the error/done case can be simplified a little too. v2: Ignore return value from drm_plane_helper_update(). (Ander) Signed-off-by: Ander Conselvan de Oliveira Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 30 ++++++++++++------------------ 1 file changed, 12 insertions(+), 18 deletions(-) commit 054518ddff87565022bf1eb1578fcb00e42cc847 Author: Ander Conselvan de Oliveira Date: Tue Apr 21 17:13:06 2015 +0300 drm/i915: Move compute part of __intel_set_mode() to separate function The first function calls done in that function can still cause changes to the atomic state and may fail. This should eventually be part of our atomic check function, while the rest of the code in __intel_set_mode() is the commit hook. So this makes the legacy mode set more atomic-y. Signed-off-by: Ander Conselvan de Oliveira Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 47 +++++++++++++++++++++++------------- 1 file changed, 30 insertions(+), 17 deletions(-) commit e13be6651743b6cebdd29d4049dcd52b3ece4274 Author: Ander Conselvan de Oliveira Date: Tue Apr 21 17:13:05 2015 +0300 drm/i915: Remove saved_mode from __intel_set_mode() There's no way that function can fail after it sets crtc->mode anymore, so there's no need to save the old mode for the failure case. Signed-off-by: Ander Conselvan de Oliveira Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 11 ----------- 1 file changed, 11 deletions(-) commit 0a9ab303b87a94115e361a7f3a15d9f481bc453b Author: Ander Conselvan de Oliveira Date: Tue Apr 21 17:13:04 2015 +0300 drm/i915: Remove all *_pipes flags from modeset Set the mode_changed field on the crtc_states and use that instead. Note that even though this patch doesn't completely replace the logic in intel_modeset_affected_pipes(), that logic was never fully used to its full extent. Since the commit mentioned below, modeset_pipes and prepare_pipes would only contain at most the pipe for which the set_crtc ioctl was called. We can grow back that logic when the time comes. commit b6c5164d7bf624f3e1b750787ddb983150c5117c Author: Daniel Vetter Date: Fri Apr 12 18:48:43 2013 +0200 drm/i915: Fixup Oops in the pipe config computation v2: Don't set mode_changed unconditionally for modeset_crtc. (Ander) Check for needs_modeset() before trying to allocate a PLL. (Ander) Only call .crtc_enable() for pipes that were disabled. (Maarten) Signed-off-by: Ander Conselvan de Oliveira Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 311 +++++++++++++++-------------------- 1 file changed, 132 insertions(+), 179 deletions(-) commit 4fed33f6485be65b1e8155c843987030a2ae74fa Author: Ander Conselvan de Oliveira Date: Tue Apr 21 17:13:03 2015 +0300 drm/i915: Calculate a new pipe_config based on new enabled state With the current implementation of intel_modeset_affected_pipes(), if a pipe will be enabled then it is in modeset_pipes. We'll remove that mask in a follow up patch, but want to preserve this behavior, so just make that explicit. Signed-off-by: Ander Conselvan de Oliveira Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 548ee15b38ff5f6d7561f9e633efa20e7d7383b6 Author: Ander Conselvan de Oliveira Date: Tue Apr 21 17:13:02 2015 +0300 drm/i915: Don't pretend we can calculate multiple pipe_configs The code in intel_modeset_pipe_config() still needs changes before it can calculate more than just one pipe_config, and pretending it can will only make those changes more difficult. Signed-off-by: Ander Conselvan de Oliveira Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 45 +++++++++++++++--------------------- 1 file changed, 19 insertions(+), 26 deletions(-) commit 4be0731786de10d0e9ae1d159504c83c6b052647 Author: Ander Conselvan de Oliveira Date: Tue Apr 21 17:13:01 2015 +0300 drm/i915: Add crtc states before calling compute_config() The function intel_modeset_compute_config() needs to eventually become part of atomic_check(). At that point, all the affected crtcs need to be in the atomic state with the new values. So move the logic of adding crtc states out of that function. v2: Set crtc_state->enable in all cases. (Ander) Signed-off-by: Ander Conselvan de Oliveira Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 52 +++++++++++++++++++++++++++++------- 1 file changed, 42 insertions(+), 10 deletions(-) commit 462a425aa541703a320b15f7f7f5b64de7e0eb47 Author: Ander Conselvan de Oliveira Date: Tue Apr 21 17:13:00 2015 +0300 drm/i915: Extract mode_changed computation out of stage_output_config() This should make the conversion to atomic easier, by splitting the initialization of the atomic state from the logic that decides if a modeset is needed. Signed-off-by: Ander Conselvan de Oliveira Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 73 ++++++++++++++++++++---------------- 1 file changed, 41 insertions(+), 32 deletions(-) commit da3ced29869a1e11720b71bf9354f7a548596338 Author: Ander Conselvan de Oliveira Date: Tue Apr 21 17:12:59 2015 +0300 drm/i915: Use for_each_connector_in_state helper macro Simplifies looping over connector states a bit. Signed-off-by: Ander Conselvan de Oliveira Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_ddi.c | 9 +++-- drivers/gpu/drm/i915/intel_display.c | 72 +++++++++++------------------------- drivers/gpu/drm/i915/intel_dp_mst.c | 13 ++++--- drivers/gpu/drm/i915/intel_hdmi.c | 7 +--- 4 files changed, 36 insertions(+), 65 deletions(-) commit f0c60574eb1216b0904c0d696c64d5096d6e4913 Author: Ander Conselvan de Oliveira Date: Tue Apr 21 17:12:58 2015 +0300 drm/i915: Call drm helpers when duplicating crtc and plane states Use the helpers introduced by the commit below to properly initialize the duplicated states. commit f5e7840b0c4368f8cdbb055188c2a0eef50c3052 Author: Thierry Reding Date: Wed Jan 28 14:54:32 2015 +0100 drm/atomic: Add helpers for state-subclassing drivers Signed-off-by: Ander Conselvan de Oliveira Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_atomic.c | 8 ++++++-- drivers/gpu/drm/i915/intel_atomic_plane.c | 4 ++-- 2 files changed, 8 insertions(+), 4 deletions(-) commit e5d958ef42ff99ab2cf7980f4b7317d3bbd8793f Author: Ander Conselvan de Oliveira Date: Tue Apr 21 17:12:57 2015 +0300 drm/i915: Don't check for NULL before freeing state This is not necessary after the below commit. commit a0211bb482c346820506c546a6a58b8357999a99 Author: Ander Conselvan de Oliveira Date: Mon Mar 30 14:05:43 2015 +0300 drm/atomic: Don't try to free a NULL state Signed-off-by: Ander Conselvan de Oliveira Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit ce22dba92de22e951dee2ff89937a39754d2dd91 Author: Maarten Lankhorst Date: Tue Apr 21 17:12:56 2015 +0300 drm/i915: Move toggling planes out of crtc enable/disable. This makes disabling planes more explicit. Signed-off-by: Maarten Lankhorst [anderco: fixed warning due to using drm_crtc instead of intel_crtc] Signed-off-by: Ander Conselvan de Oliveira Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_debugfs.c | 6 ++--- drivers/gpu/drm/i915/intel_display.c | 46 ++++++++++++++++++++++-------------- drivers/gpu/drm/i915/intel_drv.h | 1 + 3 files changed, 31 insertions(+), 22 deletions(-) commit 7cac945fbebceb99b68f357cde10622441b5510f Author: Maarten Lankhorst Date: Tue Apr 21 17:12:55 2015 +0300 drm/i915: Rename intel_crtc_dpms_overlay. To make it clear that it isn't called during crtc enable. Signed-off-by: Maarten Lankhorst Reviewed-by: Ander Conselvan de Oliveira Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 87d4300a7dbc19634018e147b4753f3c9bb5f471 Author: Maarten Lankhorst Date: Tue Apr 21 17:12:54 2015 +0300 drm/i915: Move intel_(pre_disable/post_enable)_primary to intel_display.c, and use it there. They're the same code, so why not? Signed-off-by: Maarten Lankhorst Reviewed-by: Ander Conselvan de Oliveira Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 158 ++++++++++++++++++++++------------- drivers/gpu/drm/i915/intel_drv.h | 2 - drivers/gpu/drm/i915/intel_sprite.c | 68 --------------- 3 files changed, 102 insertions(+), 126 deletions(-) commit b70709a6f0e9176c2bc7ecf44acf015c7362ddc6 Author: Maarten Lankhorst Date: Tue Apr 21 17:12:53 2015 +0300 drm/i915: get rid of primary_enabled and use atomic state This was an optimization from way back before we had primary plane support to be able to disable the primary plane. But with primary plane support userspace can tell the kernel this directly, so there's no big need for this any more. And it's getting in the way of the atomic conversion. If need be we can resurrect this later on properly again. Signed-off-by: Maarten Lankhorst Reviewed-by: Ander Conselvan de Oliveira [danvet: Explain why removing this is ok.] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 50 ++++++++++++++++++++---------------- drivers/gpu/drm/i915/intel_drv.h | 1 - drivers/gpu/drm/i915/intel_fbc.c | 2 +- 3 files changed, 29 insertions(+), 24 deletions(-) commit 27321ae88c70104df1ade701e079932b54360885 Author: Maarten Lankhorst Date: Tue Apr 21 17:12:52 2015 +0300 drm/i915: Use the disable callback for disabling planes. This allows disabling all planes affecting a crtc without caring what type it is. Signed-off-by: Maarten Lankhorst Reviewed-by: Ander Conselvan de Oliveira Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 5 ++ drivers/gpu/drm/i915/intel_display.c | 91 ++++++------------------------------ 2 files changed, 20 insertions(+), 76 deletions(-) commit a8ad0d8e179945a7c714fce834207e39d2957d9f Author: Maarten Lankhorst Date: Tue Apr 21 17:12:51 2015 +0300 drm/i915: Add a way to disable planes without updating state This is used by the next commit to disable all planes on a crtc without caring what type it is. Signed-off-by: Maarten Lankhorst Reviewed-by: Ander Conselvan de Oliveira Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 38 +++++++++++++++++++++++++++++++++--- drivers/gpu/drm/i915/intel_drv.h | 2 +- drivers/gpu/drm/i915/intel_sprite.c | 16 +++++++-------- 3 files changed, 44 insertions(+), 12 deletions(-) commit ecce87ea3ab55ad0dc64460e6422c357d158a55e Author: Maarten Lankhorst Date: Tue Apr 21 17:12:50 2015 +0300 drm/i915: Remove implicitly disabling primary plane for now Some of the flags that were used are still useful when transitioning to atomic, so keep those around for now. This removes some of the complications of crtc->primary_enabled, making it easier to remove. Signed-off-by: Maarten Lankhorst Reviewed-by: Ander Conselvan de Oliveira Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_drv.h | 6 ----- drivers/gpu/drm/i915/intel_sprite.c | 45 +------------------------------------ 2 files changed, 1 insertion(+), 50 deletions(-) commit eb3394faeb97d981fae1fab50fd0b49997643d10 Author: Todd Previte Date: Sat Apr 18 00:04:19 2015 -0700 drm/i915: Add debugfs test control files for Displayport compliance testing This patch adds 3 debugfs files for handling Displayport compliance testing and supercedes the previous patches that implemented debugfs support for compliance testing. Those patches were: - [PATCH 04/17] drm/i915: Add debugfs functions for Displayport compliance testing - [PATCH 08/17] drm/i915: Add new debugfs file for Displayport compliance test control - [PATCH 09/17] drm/i915: Add debugfs write and test param parsing functions for DP test control This new patch simplifies the debugfs implementation by places a single test control value into an individual file. Each file is readable by the usersapce application and the test_active file is writable to indicate to the kernel when userspace has completed its portion of the test sequence. Replacing the previous files simplifies operation and speeds response time for the user app, as it is required to poll on the test_active file in order to determine when it needs to begin its operations. V2: - Updated the test active variable name to match the change in the initial patch of the series V3: - Added a fix in the test_active_write function to prevent a NULL pointer dereference if the encoder on the connector is invalid Signed-off-by: Todd Previte Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_debugfs.c | 209 ++++++++++++++++++++++++++++++++++++ 1 file changed, 209 insertions(+) commit 559be30cb74d6a9f3345f78a0cf3a02a564d8eef Author: Todd Previte Date: Mon May 4 07:48:20 2015 -0700 drm/i915: Implement the intel_dp_autotest_edid function for DP EDID complaince tests Updates the EDID compliance test function to perform the analyze and react to the EDID data read as a result of a hot plug event. The results of this analysis are handed off to userspace so that the userspace app can set the display mode appropriately for the test result/response. The compliance_test_active flag now appears at the end of the individual test handling functions. This is so that the kernel-side operations can be completed without the risk of interruption from the userspace app that is polling on that flag. V2: - Addressed mailing list feedback - Removed excess debug messages - Removed extraneous comments - Fixed formatting issues (line length > 80) - Updated the debug message in compute_edid_checksum to output hex values instead of decimal V3: - Addressed more list feedback - Added the test_active flag to the autotest function - Removed test_active flag from handler - Added failsafe check on the compliance test active flag at the end of the test handler - Fixed checkpatch.pl issues V4: - Removed the checksum computation function and its use as it has been rendered superfluous by changes to the core DRM EDID functions - Updated to use the raw header corruption detection mechanism - Moved the declaration of the test_data variable here V5: - Update test active flag variable name to match the change in the first patch of the series. - Relocated the test active flag declaration and initialization to this patch V6: - Updated to use the new flag for raw EDID header corruption - Removed the extra EDID read from the autotest function - Added the edid_checksum variable to struct intel_dp so that the autotest function can write it to the sink device - Moved the update to the hpd_pulse function to another patch - Removed extraneous constants V7: - Fixed erroneous placement of the checksum assignment. In some cases such as when the EDID read fails and is NULL, this causes a NULL ptr dereference in the kernel. Bad news. Fixed now. V8: - Updated to support the kfree() on the EDID data added previously V9: - Updated for the long_hpd flag propagation V10: - Updated to use actual checksum from the EDID read that occurs during normal hot plug path execution - Removed variables from intel_dp struct that are no longer needed - Updated the patch subject to more closely match the nature and contents of the patch - Fixed formatting problem (long line) V11: - Removed extra debug messages - Updated comments to be more informative - Removed extra variable V12: - Removed the 4 bit offset of the resolution setting in compliance data - Changed to DRM_DEBUG_KMS instead of DRM_DEBUG_DRIVER Signed-off-by: Todd Previte Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_dp.c | 42 ++++++++++++++++++++++++++++++++++++++++ drivers/gpu/drm/i915/intel_drv.h | 2 ++ 2 files changed, 44 insertions(+) commit 6ba2bd3da7d3f9af3db83f704ca055943fd9ee40 Author: Todd Previte Date: Tue Apr 21 11:09:41 2015 -0700 drm: Add edid_corrupt flag for Displayport Link CTS 4.2.2.6 Displayport compliance test 4.2.2.6 requires that a source device be capable of detecting a corrupt EDID. The test specification states that the sink device sets up the EDID with an invalid checksum. To do this, the sink sets up an invalid EDID header, expecting the source device to generate the checksum and compare it to the value stored in the last byte of the block data. Unfortunately, the DRM EDID reading and parsing functions are actually too good in this case; the header is fixed before the checksum is computed and thus the test never sees the invalid checksum. This results in a failure to pass the compliance test. To correct this issue, when the EDID code detects that the header is invalid, a flag is set to indicate that the EDID is corrupted. In this case, it sets edid_corrupt flag and continues with its fix-up code. This flag is also set in the case of a more seriously damaged header (fixup score less than the threshold). For consistency, the edid_corrupt flag is also set when the checksum is invalid as well. V2: - Removed the static bool global - Added a bool to the drm_connector struct to reaplce the static one for holding the status of raw edid header corruption detection - Modified the function signature of the is_valid function to take an additional parameter to store the corruption detected value - Fixed the other callers of the above is_valid function V3: - Updated the commit message to be more clear about what and why this patch does what it does. - Added comment in code to clarify the operations there - Removed compliance variable and check_link_status update; those have been moved to a later patch - Removed variable assignment from the bottom of the test handler V4: - Removed i915 tag from subject line as the patch is not i915-specific V5: - Moved code causing a compilation error to this patch where the variable is actually declared - Maintained blank lines / spacing so as to not contaminate the patch V6: - Removed extra debug messages - Added documentation to for the added parameter on drm_edid_block_valid - Fixed more whitespace issues in check_link_status - Added a clear of the header_corrupt flag to the end of the test handler in intel_dp.c - Changed the usage of the new function prototype in several places to use NULL where it is not needed by compliance testing V7: - Updated to account for long_pulse flag propagation V8: - Removed clearing of header_corrupt flag from the test handler in intel_dp.c - Added clearing of header_corrupt flag in the drm_edid_block_valid function V9: - Renamed header_corrupt flag to edid_corrupt to more accurately reflect its value and purpose - Updated commit message V10: - Updated for versioning and patch swizzle - Revised the title to more accurately reflect the nature and contents of the patch - Fixed formatting/whitespace problems - Added set flag when computed checksum is invalid Signed-off-by: Todd Previte Cc: dri-devel@lists.freedesktop.org Acked-by: Dave Airlie Reviewed-by: Alex Deucher Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_edid.c | 32 ++++++++++++++++++++++++++------ drivers/gpu/drm/drm_edid_load.c | 7 +++++-- include/drm/drm_crtc.h | 8 +++++++- 3 files changed, 38 insertions(+), 9 deletions(-) commit 83a24979c40ebbf0fa0cd14df16f74142f373cd3 Author: Nick Hoath Date: Fri Apr 10 13:12:26 2015 +0100 drm/i915/bxt: Add WaForceContextSaveRestoreNonCoherent Note that we also need this for skl. Signed-off-by: Nick Hoath Reviewed-by: Imre Deak [danvet: Note that we also need this for skl, requested by Imre.] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_ringbuffer.c | 4 ++++ 1 file changed, 4 insertions(+) commit f1d3d34d1740e13f01411d85f53945596488d4c1 Author: Damien Lespiau Date: Wed May 6 14:36:27 2015 +0100 drm/i915/skl: Fix WaDisableChickenBitTSGBarrierAckForFFSliceCS Robert noticed that the FF_SLICE_CS_CHICKEN2 offset was wrong. Ooops. Ville noticed that the write was wrong since FF_SLICE_CS_CHICKEN2 is a masked register. Re-oops. A wonder if went through 2 people while having roughly a bug per line... The problem was introduced in the original patch: commit 2caa3b260aa6a3d015352c07d1bce1461825fa6c Author: Damien Lespiau Date: Mon Feb 9 19:33:20 2015 +0000 drm/i915/skl: Implement WaDisableChickenBitTSGBarrierAckForFFSliceCS v2: Also fix the register write (Ville) Reported-by: Robert Beckett Reported-by: Ville Syrjälä Cc: Robert Beckett Cc: Ville Syrjälä Cc: Nick Hoath Signed-off-by: Damien Lespiau Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_reg.h | 2 +- drivers/gpu/drm/i915/intel_pm.c | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) commit 22e02c0b4bc87c94895b1f4cb25ee705d5687cb1 Author: Ville Syrjälä Date: Wed May 6 14:28:57 2015 +0300 drm/i915: Add missing POSTING_READ()s to BXT dbuf enable sequence Do a POSTING_READ() between the DBUF_CTL register write and the udelay() to make sure we really wait after the register write has happened. Spotted while reviewing Damien's SKL cdclk patch which had the POSTING_READ()s. Cc: Imre Deak Signed-off-by: Ville Syrjälä Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 4 ++++ 1 file changed, 4 insertions(+) commit 813b5e6971cbf1ae7dd0298fe44e39f7f2629f8d Author: Ville Syrjälä Date: Wed Mar 25 19:27:16 2015 +0200 drm/i915: s/9/intel_freq_opcode(450)/ Replace the hardcoded 9 with a call to intel_freq_opcode(450). Signed-off-by: Ville Syrjälä Reviewed-by: Damien Lespiau Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_pm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 9e45803465417acfaaefc331d59dd7e6cf06110b Author: Sonika Jindal Date: Wed May 6 17:35:48 2015 +0530 drm/i915/skl: Add module parameter to select edp vswing table This provides an option to override the value set by VBT for selecting edp Vswing Pre-emph setting table. v2: Adding comment about this being a temporary workaround and making the parameter read-only (Jani) v3: Changing mode to 0400 instead of 0 (Jani) https://bugs.freedesktop.org/show_bug.cgi?id=89554 Signed-off-by: Sonika Jindal Reviewed-by: Jani Nikula Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 4 +++- drivers/gpu/drm/i915/i915_params.c | 8 ++++++++ drivers/gpu/drm/i915/intel_bios.c | 9 +++++++-- drivers/gpu/drm/i915/intel_ddi.c | 2 +- drivers/gpu/drm/i915/intel_dp.c | 2 +- 5 files changed, 20 insertions(+), 5 deletions(-) commit 983b4b9def913991ef829ca635f1b3e7dd391c1b Author: Nick Hoath Date: Fri Apr 10 13:12:25 2015 +0100 drm/i915/bxt: Add WaDisableSbeCacheDispatchPortSharing Note that we also need this for skl. Signed-off-by: Nick Hoath Reviewed-by: Imre Deak [danvet: Note that we also need this for skl, requested by Imre.] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_reg.h | 1 + drivers/gpu/drm/i915/intel_ringbuffer.c | 7 +++++++ 2 files changed, 8 insertions(+) commit abab6311a5784a94a35beda54d4b25312cfc77f3 Author: Ville Syrjälä Date: Tue May 5 17:17:32 2015 +0300 drm/i915: Use POSTING_READ() in intel_sdvo_write_sdvox() Use POSTING_READ() in intel_sdvo_write_sdvox() as appropriate. Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_sdvo.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 0fb890c01349c52b55b7adb4a18b362d141303d1 Author: Vandana Kannan Date: Tue May 5 14:51:56 2015 +0530 drm/i915/bxt: BLC implementation Enabling BLC on BXT. Includes register definition, and new functions for BXT. In BXT, there are 2 sets of registers for BLC. Until there is clarity about which set would be effective, set 1 is being used. This would have to be re-visited if there is any change or when 2 LFPs are enabled on BXT. This patch enables brightness change which would be effected by use of hot-keys or sysfs entry. TODO:- BLC implementation will have to re-visited when 1. there is clarity about which set of registers has to be used and when. 2. CDCLK frequency is changed v2: Jani's review comments - Modified comment in i915_reg.h - Renamed register defintions - Removed definition of duty cycle max. Not required now and its not 64-bit. v3: - Rebase on top of VLV/CHV backlight changes, in particuliar bxt_set_backlight() now has a different prototype (Damien) Reviewed-by: Jani Nikula Signed-off-by: Vandana Kannan Signed-off-by: Damien Lespiau Cc: Jani Nikula Cc: Shankar, Uma Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_reg.h | 12 ++++++ drivers/gpu/drm/i915/intel_panel.c | 87 +++++++++++++++++++++++++++++++++++++- 2 files changed, 98 insertions(+), 1 deletion(-) commit b3da4a627eb710254e09c6b8dbe94a4aa35382d2 Author: Mika Kuoppala Date: Mon May 4 17:44:11 2015 +0300 drm/i915: Free wa_batchbuffer when freeing error state wa_batchbuffer is part of some error states. Make sure it is freed. Signed-off-by: Mika Kuoppala Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gpu_error.c | 1 + 1 file changed, 1 insertion(+) commit d3902c3eba3666f001fa82fa16109aa4ab0074dc Author: Jani Nikula Date: Mon May 4 17:20:49 2015 +0300 drm/i915/audio: do not mess with audio registers if port is invalid We should no longer enter the codec enable/disable functions in question with port A anyway, but to err on the safe side, keep the warnings. Just bail out early without messing with the registers. Signed-off-by: Jani Nikula Reviewed-by: Sivakumar Thulasimani Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_audio.c | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) commit 6222709d60734dd1e11f8d24520d9f23b4eb953e Author: Damien Lespiau Date: Thu Apr 30 16:39:20 2015 +0100 drm/i915/skl: Make the Misc I/O power well part of the PLLS domain The specs tell us to ungate PG1 and Misc I/O at display init. We'll use the PLLS power domain to ensure those two power wells are up. Signed-off-by: Damien Lespiau Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_runtime_pm.c | 1 + 1 file changed, 1 insertion(+) commit 57520bc55cf56b77e7a67cb0877fafdb65181f6a Author: Damien Lespiau Date: Thu Apr 30 16:39:19 2015 +0100 drm/i915: Merge the GEN9 memory latency PCU opcode with its friends Signed-off-by: Damien Lespiau Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_reg.h | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit 9043ae020506808b3d2552eace047d3083688512 Author: Damien Lespiau Date: Thu Apr 30 16:39:18 2015 +0100 drm/i915: Re-order the PCU opcodes Let's keep that list sorted! Signed-off-by: Damien Lespiau Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_reg.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 71cd8423cd874d18d9a454a39e2c4d9c9fb3fc69 Author: Damien Lespiau Date: Thu Apr 30 16:39:17 2015 +0100 drm/i915/skl: Fix the CTRL typo in the DPLL_CRTL1 defines Signed-off-by: Damien Lespiau Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 2 +- drivers/gpu/drm/i915/i915_reg.h | 18 +++++++++--------- drivers/gpu/drm/i915/intel_ddi.c | 26 +++++++++++++------------- drivers/gpu/drm/i915/intel_display.c | 6 +++--- drivers/gpu/drm/i915/intel_dp.c | 12 ++++++------ 5 files changed, 32 insertions(+), 32 deletions(-) commit aeaa2122af4e53f3bfd28e8f294557bb95af43fc Author: Damien Lespiau Date: Thu Apr 30 16:39:16 2015 +0100 drm/i915/skl: Add the INIT power domain to the MISC I/O power well Signed-off-by: Damien Lespiau Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_runtime_pm.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 4dd738e9cd791ebac2a009f09f1761e85e7f0805 Author: Michel Thierry Date: Thu Apr 30 16:06:51 2015 +0100 drm/i915: Fix 32b overflow check in gen8_ppgtt_alloc_page_directories The patch 69876bed7e008f5fe01538a2d47c09f2862129d0: "drm/i915/gen8: page directories rework allocation" added an overflow warning, but the mask had an extra 0. Use less typo-prone option suggested by Dave instead, to check for (start + length) >= 0x100000000ULL. This check will be unnecessary after gen8_alloc_va_range handles more than 4 PDPs (48b addressing). v2: Really check for 32b overflow (Ville) Reported-by: Dan Carpenter Cc: Dave Gordon Cc: Ville Syrjälä Signed-off-by: Michel Thierry Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5e562f1dddfa3242cede5ec49888260a856a9da2 Author: Mika Kuoppala Date: Thu Apr 30 11:02:31 2015 +0300 drm/i915: Clear vma->bound on unbinding Unbinding doesn't always lead to unconditional destruction of vma. This destruction avoidance happens if vma is part of execbuffer relocation list or if vma is being considered for eviction in i915_gem_evict_something(). For those other users, mark the vma unbound so that the correct state of this vma is preserved. Reported-by: Chris Wilson Cc: Chris Wilson Cc: Daniel Vetter Signed-off-by: Mika Kuoppala Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem.c | 1 + 1 file changed, 1 insertion(+) commit 65b38e0d87a491e25848bea3274825b594cbdb22 Author: Jani Nikula Date: Mon Apr 13 11:26:56 2015 +0300 drm/i915: make drm_crtc_helper_funcs const data Because they can be. Signed-off-by: Jani Nikula Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5fa836a9d85975c5f0f1219669523c1f0ac64349 Author: Mika Kahola Date: Wed Apr 29 09:17:40 2015 +0300 drm/i915: DP link training optimization This patch adds DP link training optimization by reusing the previously trained values. v2: - rebase V3: - rebase V4: - when HPD long pulse is received, the flag is cleared that indicates if DP link training is required or not (based on Sivakumar's comment) Signed-off-by: Mika Kahola Reviewed-by: Sivakumar Thulasimani Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_dp.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 4e96c97742f4201edf1b0f8e1b1b6b2ac6ff33e7 Author: Mika Kahola Date: Wed Apr 29 09:17:39 2015 +0300 drm/i915: eDP link training optimization This is a first of series patches that optimize DP link training. The first patch is for eDP only where we reuse the previously trained link training values from cache i.e. voltage swing and pre-emphasis levels. In case we are not able to train the link by reusing the known values, the link training parameters are set to zero and training is restarted. V2: - flag that indicates if DP link is trained and valid renamed from 'link_trained' to 'train_set_valid' - removed routine 'intel_dp_reuse_link_train' V3: - rebased against the latest drm-intel-nightly V4: - removed HPD long pulse handling for eDP case to clear the flag that indicates to reuse the current link training parameters. (based on Sivakumar's comment) Signed-off-by: Mika Kahola Reviewed-by: Sivakumar Thulasimani [danvet: s/DP/eDP/ in subject to make scope clear.] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_dp.c | 27 ++++++++++++++++++++++++--- drivers/gpu/drm/i915/intel_drv.h | 1 + 2 files changed, 25 insertions(+), 3 deletions(-) commit 3ef62342bd854fff5d792d67fc6a8e66f26c862b Author: Deepak S Date: Wed Apr 29 08:36:24 2015 +0530 drm/i915: Setup static bias for GPU Based on the spec, Setting up static BIAS for GPU to improve the rps performace. v2: rename reg defn to match spec. (Ville) v3: Updated bias setting for chv (Deepak) Signed-off-by: Deepak S Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_reg.h | 6 ++++++ drivers/gpu/drm/i915/intel_pm.c | 12 ++++++++++++ 2 files changed, 18 insertions(+) commit 3126a660f352b3fe48125a8a0b4fdbf85935d8bf Author: Dan Carpenter Date: Thu Apr 30 17:30:50 2015 +0300 drm/i915: checking IS_ERR() instead of NULL We switched from calling i915_gem_alloc_context_obj() to calling i915_gem_alloc_object() so the error handling needs to be updated to check for NULL instead of IS_ERR(). Fixes: 149c86e74fe4 ('drm/i915: Allocate context objects from stolen') Signed-off-by: Dan Carpenter Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_lrc.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit d4dc5e92c00d41044a86bd98243b322000514d41 Author: Chris Wilson Date: Tue Apr 28 08:48:03 2015 +0100 drm/i915: Remove incorrect restriction on 32bit offsets in ppGTT backend This is the wrong layer to apply an arbitrary restriction and the wrong error code (object too large!). If we do want to prevent large offsets being return to the user on 32bit systems (to hide bugs in userspace), you want to restrict the drm_mm range manager instead. This first tells userspace about the correct size of the GTT they can use (so they don't try and overallocate object or batches), and fixes the eviction logic to avoid the eventual and *guaranteed* error. Fixes regression in commit d7b2633dba04ef0fd7385f02a7b552abc5f1062f Author: Michel Thierry Date: Wed Apr 8 12:13:34 2015 +0100 drm/i915/gen8: Dynamic page table allocations Signed-off-by: Chris Wilson Cc: Michel Thierry Cc: Mika Kuoppala Cc: Daniel Vetter Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 9 --------- 1 file changed, 9 deletions(-) commit d86ed34a4eeefffcc9030e903465a902f6aea9f3 Author: Chris Wilson Date: Mon Apr 27 13:41:19 2015 +0100 drm/i915: Add RPS thresholds to debugfs/i915_frequency_info Expose some more of our internal RPS bookkeeping for debugging. Signed-off-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_debugfs.c | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) commit 0b6cc18810cfa958985602ab1849b647250deb0f Author: Fabian Frederick Date: Sat Apr 25 11:34:29 2015 +0200 drm/i915: use ERR_CAST instead of ERR_PTR/PTR_ERR Inspired by scripts/coccinelle/api/err_cast.cocci Signed-off-by: Fabian Frederick Reviewed-by: Jani Nikula Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_drv.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 06615ee5c54740a970754b6d8d7d5e7106dec186 Author: Joonas Lahtinen Date: Fri Apr 24 15:09:03 2015 +0300 drm/i915: Do not clear mappings beyond VMA size Do not to clear mappings outside the allocated VMA under any circumstances. Only clear the smaller of VMA or object page count. This is required to allow creating partial object VMAs which in turn are needed for partial GGTT views. Signed-off-by: Joonas Lahtinen Reviewed-by: Tvrtko Ursulin Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 09b1eb130e43264d6a4e8c99ed75d07f40a2d4b3 Author: Todd Previte Date: Mon Apr 20 15:27:34 2015 -0700 drm/i915: Move Displayport test request and sink IRQ logic to intel_dp_detect() Due to changes in the driver and to support Displayport compliance testing, the test request and sink IRQ logic has been relocated from intel_dp_check_link_status to intel_dp_detect. This is because the bulk of the compliance tests that set the TEST_REQUEST bit in the DEVICE_IRQ field of the DPCD issue a long pulse / hot plug event to signify the start of the test. Currently, for a long pulse, intel_dp_check_link_status is not called for a long HPD pulse, so if test requests come in, they cannot be detected by the driver. Once located in the intel_dp_detect, in the regular hot plug event path, proper detection of Displayport compliance test requests occurs which then invokes the test handler to support them. Additionally, this places compliance testing in the normal operational paths, eliminating as much special case code as possible. The only change in intel_dp_check_link_status with this patch is that when the IRQ is the result of a test request from the sink, the test handler is not invoked during the short pulse path. Short pulse test requests are for a particular variety of tests (mainly link training) that will be implemented in the future. Once those tests are available, the test request handler will be called from here as well. V2: - Rewored the commit message to be more clear about the content and intent of this patch - Restore IRQ detection logic to intel_dp_check_link_status(). Continue to detect and clear sink IRQs in the short pulse case. Ignore test requests in the short pulses for now since they are for future test implementations. Signed-off-by: Todd Previte Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_dp.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) commit 00776511da7134b25dd3ea45e2bf38ea08738a64 Author: Suketu Shah Date: Thu Apr 16 14:22:14 2015 +0530 drm/i915/skl: Enable runtime PM Enable runtime PM for Skylake platform v2: After adding dmc ver 1.0 support rebased on top of nightly. (Animesh) Issue: VIZ-2819 Signed-off-by: A.Sunil Kamath Signed-off-by: Suketu Shah Signed-off-by: Damien Lespiau Signed-off-by: Animesh Manna Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 93c7cb6c3a2f8c7204fc8bcf7769059875a54027 Author: Suketu Shah Date: Thu Apr 16 14:22:13 2015 +0530 drm/i915/skl: Assert the requirements to enter or exit DC6. Warn if the conditions to enter or exit DC6 are not satisfied such as support for runtime PM, state of power well, CSR loading etc. v2: Removed camelcase in functions and variables. v3: Do some minimal check to assert if CSR program is not loaded. v4: 1] Correct the check for backlight-disabling in assert_can_enable_dc6(). 2] Check csr.loaded = false before disabling DC6 and simplify other checks. v5: 1] Remove checks for DC5 state from assert_can_enable_dc6 function as DC5 is no longer enabled before enabling DC6. 2] Correct the check for CSR-loading in assert_can_disable_dc6 function as CSR must be loaded for context restore to happen on DC6 disabling. v6: 1] It's okay to explicitly disable DC6 during driver-load/resume even though it might already be disabled and so don't warn about it. v7: Rebase to latest. v8: Sqashed the patch from Imre - [PATCH] drm/i915/skl: avoid false CSR fw not loaded WARN during driver load/resume v9: After adding dmc ver 1.0 support rebased on top of nightly. (Animesh) v10: During initialization added a early return before disabling DC5. (Animesh) Issue: VIZ-2819 Signed-off-by: A.Sunil Kamath Signed-off-by: Suketu Shah Signed-off-by: Damien Lespiau Signed-off-by: Animesh Manna Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_runtime_pm.c | 40 +++++++++++++++++++++++++++++---- 1 file changed, 36 insertions(+), 4 deletions(-) commit 74b4f371f56fc7ca4058041080b30d5b0a7271af Author: A.Sunil Kamath Date: Thu Apr 16 14:22:12 2015 +0530 Implement enable/disable for Display C6 state This patch just implements the basic enable and disable functions of DC6 state which is needed for SKL platform. Its important to load SKL CSR program before calling enable. DC6 is a deeper power saving state where hardware dynamically disables power well 0 and saves the associated registers. DC6 can be entered when software allows it, the conditions for DC5 are met, and the PCU allows DC6. DC6 cannot be used if the backlight is being driven from the display utility pin. Its better to configure display engine to have power well 2 disabled before getting into DC6 enable function. Hence rpm framework will ensure to check status of power well 2 and DC5 before calling skl_enable_dc6. v2: Replace HAS_ with IS_ check as per Daniel's review comments v3: Cleared the bits dc5/dc6 enable of DC_STATE_EN register before setting them as per Satheesh's review comments. v4: No need to call gen9_disable_dc5 inside enable sequence of DC6, as its already take care above. v5: call POSTING_READ for every write to a register to ensure that its written immediately. Call intel_prepare_ddi during DC6 exit as it's required on low-power exit. v6: Protect DC6-enabling-disabling functionality with locks to synchronize with CSR-loading code. v7: Remove grabbing CSR-related mutex in skl_enable/disable_dc6 functions as deferred DC5-enabling functionality is now removed. v8: Remove 'Disabling DC5' from the debug comment during DC6 enabling as when DC6 is allowed, DC5 is not programmed at all. v9: - Rebase to latest. - Move all DC6-related functions from intel_display.c to intel_runtime_pm.c. v10: After adding dmc ver 1.0 support rebased on top of nightly. (Animesh) Issue: VIZ-2819 Signed-off-by: A.Sunil Kamath Signed-off-by: Damien Lespiau Signed-off-by: Animesh Manna Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_runtime_pm.c | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) commit f75a1985137f272dff1a361b763a76fb8f68c3b9 Author: Suketu Shah Date: Thu Apr 16 14:22:11 2015 +0530 drm/i915/skl: Add DC6 Trigger sequence. Add triggers for DC6 as per details provided in skl_enable_dc6 and skl_disable_dc6 implementations. Also Call POSTING_READ for every write to a register to ensure it is written to immediately v1: Remove POSTING_READ and intel_prepare_ddi calls as they've been added in previous patches. v2: 1] Remove check for backlight disabled as it should be the case by that time. 2] Mark DC5 as disabled when enabling DC6. 3] Return from DC5-disabling function early if DC5 is already be disabled which can happen due to DC6-enabling earlier. 3] Ensure CSR firmware is loaded after resume from DC6 as corresponding memory contents won't be retained after runtime-suspend. 4] Ensure that CSR isn't identified as loaded before CSR-loading program is called during runtime-resume. v3: Rebase to latest Modified as per review comments from Imre and after discussion with Art: 1] DC6 should be preferably enabled when PG2 is disabled by SW as the check for PG1 being disabled is taken of by HW to enter DC6, and disabled when PG2 is enabled respectively. This helps save more power, especially in the case when display is disabled but GT is enabled. Accordingly, replacing DC5 trigger sequence with DC6 for SKL. 2] DC6 could be enabled from intel_runtime_suspend() function, if DC5 is already enabled. 3] Move CSR-load-status setting code from intel_runtime_suspend function to a new function. v4: 1] Enable/disable DC6 only when toggling the power-well using a newly defined macro ENABLE_DC6. v5: 1] Load CSR on system resume too as firmware may be lost on system suspend preventing enabling DC5, DC6. 2] DDI buffers shouldn't be programmed during driver-load/resume as it's already done during modeset initialization then and also that the encoder list is still uninitialized by then. Therefore, call intel_prepare_ddi function right after disabling DC6 but outside skl_disable_dc6 function and not during driver-load/resume. v6: 1] Rebase to latest. 2] Move SKL_ENABLE_DC6 macro definition from intel_display.c to intel_runtime_pm.c. v7: 1) Refactored the code for removing the warning got from checkpatch. 2) After adding dmc ver 1.0 support rebased on top of nightly. (Animesh) v8: - Reverted the changes done in v7. - Removed the condition check in skl_prepare_resune(). (Animesh) Issue: VIZ-2819 Signed-off-by: A.Sunil Kamath Signed-off-by: Suketu Shah Signed-off-by: Damien Lespiau Signed-off-by: Animesh Manna Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.c | 30 +++++++++++++++++++++++ drivers/gpu/drm/i915/intel_runtime_pm.c | 43 +++++++++++++++++++++++++++------ 2 files changed, 66 insertions(+), 7 deletions(-) commit 5aefb2398afad6998d51f90294e02b37b3f19a40 Author: Suketu Shah Date: Thu Apr 16 14:22:10 2015 +0530 drm/i915/skl: Assert the requirements to enter or exit DC5. Warn if the conditions to enter or exit DC5 are not satisfied such as support for runtime PM, state of power well, CSR loading etc. v2: Removed camelcase in functions and variables. v3: Do some minimal check to assert if CSR program is not loaded. v4: 1] Used an appropriate function lookup_power_well() to identify power well, instead of using a magic number which can change in future. 2] Split the conditions further in assert_can_enable_DC5() and added more checks. 3] Removed all WARNs from assert_can_disable_DC5 as they were unnecessary and added two new ones. 4] Changed variable names as updated in earlier patches. v5: 1] Change lookup_power_well function to take an int power well id. 2] Define a new intel_display_power_well_is_enabled helper function to check whether a particular power well is enabled. 3] Use CSR-related mutex in assert_csr_loaded function. v6: Remove use of dc5_enabled variable as it's no longer needed. v7: 1] Rebase to latest. 2] Move all DC5-related functions from intel_display.c to intel_runtime_pm.c. v8: After adding dmc ver 1.0 support rebased on top of nightly. (Animesh) v9: Modified below changes based on review comments from Imre. - Moved intel_display_power_well_is_enabled() to intel_runtime_pm.c. - Removed mutex lock from assert_csr_loaded(). (Animesh) Issue: VIZ-2819 Signed-off-by: A.Sunil Kamath Signed-off-by: Suketu Shah Signed-off-by: Damien Lespiau Signed-off-by: Animesh Manna Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_csr.c | 9 ++++++ drivers/gpu/drm/i915/intel_drv.h | 1 + drivers/gpu/drm/i915/intel_runtime_pm.c | 51 +++++++++++++++++++++++++++++---- 3 files changed, 56 insertions(+), 5 deletions(-) commit 6b457d31ea0465fcadcf6d5044f5f71398954727 Author: A.Sunil Kamath Date: Thu Apr 16 14:22:09 2015 +0530 drm/i915/skl: Implement enable/disable for Display C5 state. This patch just implements the basic enable and disable functions of DC5 state which is needed for both SKL and BXT. Its important to load respective CSR program before calling enable, which anyways will happen as CSR program is executed during boot. DC5 is a power saving state where hardware dynamically disables power well 1 and the CDCLK PLL and saves the associated registers. DC5 can be entered when software allows it, power well 2 is disabled, and hardware detects that all pipes are disabled or pipe A is enabled with PSR active. Its better to configure display engine to have power well 2 disabled before getting into DC5 enable function. Hence rpm framework will have to ensure to check status of power well 2 before calling gen9_enable_dc5. Rather dc5 entry criteria should be decided based on power well 2 status. If disabled, then call gen9_enable_dc5. v2: Replace HAS_ with IS_ check as per Daniel's review comments v3: Cleared the bits dc5/dc6 enable of DC_STATE_EN register before setting them as per Satheesh's review comments. v4: call POSTING_READ for every write to a register to ensure that its written immediately. v5: Modified as per review comments from Imre. - Squashed register definitions into this patch. - Finetuned comments and functions. v6: Avoid redundant writes in gen9_set_dc_state_debugmask_memory_up function. v7: - Rebase to latest. - Move all runtime PM functions defined in intel_display.c to intel_runtime_pm.c. v8: Rebased to drm-intel-nightly. (Animesh) Issue: VIZ-2819 Signed-off-by: A.Sunil Kamath Signed-off-by: Damien Lespiau Signed-off-by: Animesh Manna Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_reg.h | 11 +++++++++ drivers/gpu/drm/i915/intel_runtime_pm.c | 41 +++++++++++++++++++++++++++++++-- 2 files changed, 50 insertions(+), 2 deletions(-) commit dc17430054056049e8b279ffe3f18d0ff13ae3e2 Author: Suketu Shah Date: Fri Apr 17 19:46:16 2015 +0530 drm/i915/skl: Add DC5 Trigger Sequence Add triggers as per expectations mentioned in gen9_enable_dc5 and gen9_disable_dc5 patch. Also call POSTING_READ for every write to a register to ensure that its written immediately. v1: Remove POSTING_READ calls as they've already been added in previous patches. v2: Rebase to move all runtime pm specific changes to intel_runtime_pm.c file. Modified as per review comments from Imre: 1] Change variable name 'dc5_allowed' to 'dc5_enabled' to correspond to relevant functions. 2] Move the check dc5_enabled in skl_set_power_well() to disable DC5 into gen9_disable_DC5 which is a more appropriate place. 3] Convert checks for 'pm.dc5_enabled' and 'pm.suspended' in skl_set_power_well() to warnings. However, removing them for now as they'll be included in a future patch asserting DC-state entry/exit criteria. 4] Enable DC5, only when CSR firmware is verified to be loaded. Create new structure to track 'enabled' and 'deferred' status of DC5. 5] Ensure runtime PM reference is obtained, if CSR is not loaded, to avoid entering runtime-suspend and release it when it's loaded. 6] Protect necessary CSR-related code with locks. 7] Move CSR-loading call to runtime PM initialization, as power domains needed to be accessed during deferred DC5-enabling, are not initialized earlier. v3: Rebase to latest. Modified as per review comments from Imre: 1] Use blocking wait for CSR-loading to finish to enable DC5 for simplicity, instead of deferring enabling DC5 until CSR is loaded. 2] Obtain runtime PM reference during CSR-loading initialization itself as deferred DC5- enabling is removed and release it at the end of CSR-loading functionality. 3] Revert calling CSR-loading functionality to the beginning of i915 driver-load functionality to avoid any delay in loading. 4] Define another variable to track whether CSR-loading failed and use it to avoid enabling DC5 if it's true. 5] Define CSR-load-status accessor functions for use later. v4: 1] Disable DC5 before enabling PG2 instead of after it. 2] DC5 was being mistaken enabled even when CSR-loading timed-out. Fix that. 3] Enable DC5-related functionality using a macro. 4] Remove dc5_enabled tracking variable and its use as it's not needed now. v5: 1] Mark CSR failed to load where necessary in finish_csr_load function. 2] Use mutex-protected accessor function to check if CSR loaded instead of directly accessing the variable. 3] Prefix csr_load_status_get/set function names with intel_. v6: rebase to latest. v7: Rebase on top of nightly (Damien) v8: Squashed the patch from Imre - added csr helper pointers to simplify the code. (Imre) v9: After adding dmc ver 1.0 support rebased on top of nightly. (Animesh) v10: Added a enum for different csr states, suggested by Imre. (Animesh) v11: Based on review comments from Imre, Damien and Daniel following changes done - enum name chnaged to csr_state (singular form). - FW_UNINITIALIZED used as zeroth element in enum csr_state. - Prototype changed for helper function(set/get csr status), using enum csr_state instead of bool. v12: Based on review comment from Imre, introduced bool fw_loaded local to finish_csr_load() which helps calling once to set the csr status. The same flag used to fail RPM if find any issue during firmware loading. Issue: VIZ-2819 Signed-off-by: A.Sunil Kamath Signed-off-by: Suketu Shah Signed-off-by: Damien Lespiau Signed-off-by: Imre Deak Signed-off-by: Animesh Manna Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 7 ++++++ drivers/gpu/drm/i915/intel_csr.c | 42 +++++++++++++++++++++++++++++++-- drivers/gpu/drm/i915/intel_drv.h | 3 +++ drivers/gpu/drm/i915/intel_runtime_pm.c | 33 ++++++++++++++++++++++++++ 4 files changed, 83 insertions(+), 2 deletions(-) commit eb805623d8b161342ed9c9caf366f0a295041a6d Author: Daniel Vetter Date: Mon May 4 14:58:44 2015 +0200 drm/i915/skl: Add support to load SKL CSR firmware. Display Context Save and Restore support is needed for various SKL Display C states like DC5, DC6. This implementation is added based on first version of DMC CSR program that we received from h/w team. Here we are using request_firmware based design. Finally this firmware should end up in linux-firmware tree. For SKL platform its mandatory to ensure that we load this csr program before enabling DC states like DC5/DC6. As CSR program gets reset on various conditions, we should ensure to load it during boot and in future change to be added to load this system resume sequence too. v1: Initial relese as RFC patch v2: Design change as per Daniel, Damien and Shobit's review comments request firmware method followed. v3: Some optimization and functional changes. Pulled register defines into drivers/gpu/drm/i915/i915_reg.h Used kmemdup to allocate and duplicate firmware content. Ensured to free allocated buffer. v4: Modified as per review comments from Satheesh and Daniel Removed temporary buffer. Optimized number of writes by replacing I915_WRITE with I915_WRITE64. v5: Modified as per review comemnts from Damien. - Changed name for functions and firmware. - Introduced HAS_CSR. - Reverted back previous change and used csr_buf with u8 size. - Using cpu_to_be64 for endianness change. Modified as per review comments from Imre. - Modified registers and macro names to be a bit closer to bspec terminology and the existing register naming in the driver. - Early return for non SKL platforms in intel_load_csr_program function. - Added locking around CSR program load function as it may be called concurrently during system/runtime resume. - Releasing the fw before loading the program for consistency - Handled error path during f/w load. v6: Modified as per review comments from Imre. - Corrected out_freecsr sequence. v7: Modified as per review comments from Imre. Fail loading fw if fw->size%8!=0. v8: Rebase to latest. v9: Rebase on top of -nightly (Damien) v10: Enabled support for dmc firmware ver 1.0. According to ver 1.0 in a single binary package all the firmware's that are required for different stepping's of the product will be stored. The package contains the css header, followed by the package header and the actual dmc firmwares. Package header contains the firmware/stepping mapping table and the corresponding firmware offsets to the individual binaries, within the package. Each individual program binary contains the header and the payload sections whose size is specified in the header section. This changes are done to extract the specific firmaware from the package. (Animesh) v11: Modified as per review comemnts from Imre. - Added code comment from bpec for header structure elements. - Added __packed to avoid structure padding. - Added helper functions for stepping and substepping info. - Added code comment for CSR_MAX_FW_SIZE. - Disabled BXT firmware loading, will be enabled with dmc 1.0 support. - Changed skl_stepping_info based on bspec, earlier used from config DB. - Removed duplicate call of cpu_to_be* from intel_csr_load_program function. - Used cpu_to_be32 instead of cpu_to_be64 as firmware binary in dword aligned. - Added sanity check for header length. - Added sanity check for mmio address got from firmware binary. - kmalloc done separately for dmc header and dmc firmware. (Animesh) v12: Modified as per review comemnts from Imre. - Corrected the typo error in skl stepping info structure. - Added out-of-bound access for skl_stepping_info. - Sanity check for mmio address modified. - Sanity check added for stepping and substeppig. - Modified the intel_dmc_info structure, cache only the required header info. (Animesh) v13: clarify firmware load error message. The reason for a firmware loading failure can be obscure if the driver is built-in. Provide an explanation to the user about the likely reason for the failure and how to resolve it. (Imre) v14: Suggested by Jani. - fix s/I915/CONFIG_DRM_I915/ typo - add fw_path to the firmware object instead of using a static ptr (Jani) v15: 1) Changed the firmware name as dmc_gen9.bin, everytime for a new firmware version a symbolic link with same name will help not to build kernel again. 2) Changes done as per review comments from Imre. - Error check removed for intel_csr_ucode_init. - Moved csr-specific data structure to intel_csr.h and optimization done on structure definition. - fw->data used directly for parsing the header info & memory allocation only done separately for payload. (Animesh) v16: - No need for out_regs label in i915_driver_load(), so removed it. - Changed the firmware name as skl_dmc_ver1.bin, followed naming convention _dmc_.bin (Animesh) Issue: VIZ-2569 Signed-off-by: A.Sunil Kamath Signed-off-by: Damien Lespiau Signed-off-by: Animesh Manna Signed-off-by: Imre Deak Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/Makefile | 3 +- drivers/gpu/drm/i915/i915_dma.c | 11 +- drivers/gpu/drm/i915/i915_drv.c | 20 +++ drivers/gpu/drm/i915/i915_drv.h | 17 ++ drivers/gpu/drm/i915/intel_csr.c | 367 +++++++++++++++++++++++++++++++++++++++ drivers/gpu/drm/i915/intel_drv.h | 5 + 6 files changed, 420 insertions(+), 3 deletions(-) commit c6b8a4bc1ece2469ceef55f3c9423afdcb3b95c8 Author: Daniel Vetter Date: Mon May 4 14:58:33 2015 +0200 drm/i915: Simplify cmd-parser DISPATCH_SECURE check i915_needs_cmd_parser already checks that for us. Suggested-by: Mika Kuoppala Cc: Mika Kuoppala Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_execbuffer.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit dfb601e6d2c72a7d2d9eddec1d1f65f2ccf66bda Author: Nick Hoath Date: Fri Apr 10 13:12:24 2015 +0100 drm/i915/bxt: Add WaDisableThreadStallDopClockGating Signed-off-by: Nick Hoath Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_ringbuffer.c | 7 +++++++ 1 file changed, 7 insertions(+) commit c331879ce8ea4508260c5e9da5ea4b1a7d20e381 Author: Chandra Konduru Date: Wed Apr 15 15:15:02 2015 -0700 drm/i915: skylake sprite plane scaling using shared scalers This patch enables skylake sprite plane display scaling using shared scalers atomic desgin. v2: -use single copy of scaler limits (Matt) v3: -detaching scalers moved to crtc commit path (Matt) v4: -changes to align with updated scaler structures (Matt, me) -keep sprite src rect in 16.16 format (Matt, Daniel) v5: -rebased on top of 90/270 rotation changes (me) -Refactored skl_update_plane to reduce its size (Daniel) It is a step towards having a single function covering all planes. Signed-off-by: Chandra Konduru Reviewed-by: Matt Roper Testcase: igt/kms_plane_scaling Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_sprite.c | 125 ++++++++++++++---------------------- 1 file changed, 48 insertions(+), 77 deletions(-) commit 6156a45602f990cdb140025a3ced96e6695980cf Author: Chandra Konduru Date: Mon Apr 27 13:48:39 2015 -0700 drm/i915: skylake primary plane scaling using shared scalers This patch enables skylake primary plane scaling using shared scalers atomic desgin. v2: -use single copy of scaler limits (Matt) v3: -move detach_scalers to crtc commit path (Matt) -use values in plane_state->src as regular integers (me) v4: -changes to align with updated scaler structures (Matt, me) -keep plane src rect in 16.16 format (Matt, Daniel) v5: -Rebased on top of 90/270 rotation changes (me) -Fixed an issue introduced by 90/270 changes where plane programming is using drm_plane->state rect instead of intel_plane->state rect. This change also required for scaling to work properly. (me) -With 90/270, updated limits to cover both portrait and landscape usages (me) -Refactored skylake_update_primary_plane to reduce its size (Daniel) Added helper functions for refactoring are comprehended enough to be used for skylake_update_plane (for sprite) too. One stop towards having single function for all planes. v6: -Added fixme note when checking plane_state->src width in update_plane (Daniel) -Release lock when failing to colorkey request with active scaler (Daniel) Signed-off-by: Chandra Konduru Reviewed-by: matthew.d.roper@intel.com Reviewed-by: sonika.jindal@intel.com (v5) Testcase: igt/kms_plane_scaling Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_atomic.c | 5 +- drivers/gpu/drm/i915/intel_display.c | 266 ++++++++++++++++++++++++++--------- drivers/gpu/drm/i915/intel_drv.h | 8 +- drivers/gpu/drm/i915/intel_sprite.c | 10 ++ 4 files changed, 219 insertions(+), 70 deletions(-) commit cad14bb9f8ef8bed42c3118adc0d9756e2aeeaa1 Author: Kirill A. Shutemov Date: Fri May 8 13:25:26 2015 +0300 x86/kconfig: Fix the CONFIG_NR_CPUS description Since: b53b5eda8194 ("x86/cpu: Increase max CPU count to 8192") ... the maximum supported NR_CPUS for CPUMASK_OFFSTACK case is 8192. Let's adjust the description to reflect the change. Signed-off-by: Kirill A. Shutemov Cc: Andrew Morton Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1431080726-2490-1-git-send-email-kirill.shutemov@linux.intel.com Signed-off-by: Ingo Molnar arch/x86/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c5c19941ad1bb18f010ae47f1db333c00b276d55 Author: Kirill A. Shutemov Date: Fri May 8 13:25:45 2015 +0300 x86/kconfig: Bump default NR_CPUS from 8 to 64 for 64-bit configuration Default NR_CPUS==8 is not enough to cover high-end desktop configuration: Haswell-E has upto 16 threads. Let's increase default NR_CPUS to 64 on 64-bit configuration. With this value CPU bitmask will still fit into one unsigned long. Default for 32-bit configuration is still 8: it's unlikely anybody will run 32-bit kernels on modern hardware. As an alternative we could bump NR_CPUS to 128 to cover all dual-processor servers with some margin. For reference: Debian and Suse build their kernels with NR_CPUS==512, Fedora -- 1024. Signed-off-by: Kirill A. Shutemov Cc: Andrew Morton Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1431080745-19792-1-git-send-email-kirill.shutemov@linux.intel.com Signed-off-by: Ingo Molnar arch/x86/Kconfig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 2a4e90b18c256d52a7f3f77d58114f6d4e4a7f9f Author: Denys Vlasenko Date: Fri May 8 12:26:02 2015 +0200 x86: Force inlining of atomic ops With both gcc 4.7.2 and 4.9.2, sometimes gcc mysteriously doesn't inline very small functions we expect to be inlined: $ nm --size-sort vmlinux | grep -iF ' t ' | uniq -c | grep -v '^ *1 ' | sort -rn 473 000000000000000b t spin_unlock_irqrestore 449 000000000000005f t rcu_read_unlock 355 0000000000000009 t atomic_inc <== THIS 353 000000000000006e t rcu_read_lock 350 0000000000000075 t rcu_read_lock_sched_held 291 000000000000000b t spin_unlock 266 0000000000000019 t arch_local_irq_restore 215 000000000000000b t spin_lock 180 0000000000000011 t kzalloc 165 0000000000000012 t list_add_tail 161 0000000000000019 t arch_local_save_flags 153 0000000000000016 t test_and_set_bit 134 000000000000000b t spin_unlock_irq 134 0000000000000009 t atomic_dec <== THIS 130 000000000000000b t spin_unlock_bh 122 0000000000000010 t brelse 120 0000000000000016 t test_and_clear_bit 120 000000000000000b t spin_lock_irq 119 000000000000001e t get_dma_ops 117 0000000000000053 t cpumask_next 116 0000000000000036 t kref_get 114 000000000000001a t schedule_work 106 000000000000000b t spin_lock_bh 103 0000000000000019 t arch_local_irq_disable ... Note sizes of marked functions. They are merely 9 bytes long! Selecting function with 'atomic' in their names: 355 0000000000000009 t atomic_inc 134 0000000000000009 t atomic_dec 98 0000000000000014 t atomic_dec_and_test 31 000000000000000e t atomic_add_return 27 000000000000000a t atomic64_inc 26 000000000000002f t kmap_atomic 24 0000000000000009 t atomic_add 12 0000000000000009 t atomic_sub 10 0000000000000021 t __atomic_add_unless 10 000000000000000a t atomic64_add 5 000000000000001f t __atomic_add_unless.constprop.7 5 000000000000000a t atomic64_dec 4 000000000000001f t __atomic_add_unless.constprop.18 4 000000000000001f t __atomic_add_unless.constprop.12 4 000000000000001f t __atomic_add_unless.constprop.10 3 000000000000001f t __atomic_add_unless.constprop.13 3 0000000000000011 t atomic64_add_return 2 000000000000001f t __atomic_add_unless.constprop.9 2 000000000000001f t __atomic_add_unless.constprop.8 2 000000000000001f t __atomic_add_unless.constprop.6 2 000000000000001f t __atomic_add_unless.constprop.5 2 000000000000001f t __atomic_add_unless.constprop.3 2 000000000000001f t __atomic_add_unless.constprop.22 2 000000000000001f t __atomic_add_unless.constprop.14 2 000000000000001f t __atomic_add_unless.constprop.11 2 000000000000001e t atomic_dec_if_positive 2 0000000000000014 t atomic_inc_and_test 2 0000000000000011 t atomic_add_return.constprop.4 2 0000000000000011 t atomic_add_return.constprop.17 2 0000000000000011 t atomic_add_return.constprop.16 2 000000000000000d t atomic_inc.constprop.4 2 000000000000000c t atomic_cmpxchg This patch fixes this for x86 atomic ops via s/inline/__always_inline/. This decreases allyesconfig kernel by about 25k: text data bss dec hex filename 82399481 22255416 20627456 125282353 777a831 vmlinux.before 82375570 22255544 20627456 125258570 7774b4a vmlinux Signed-off-by: Denys Vlasenko Cc: Alexei Starovoitov Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Frederic Weisbecker Cc: H. Peter Anvin Cc: Kees Cook Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Thomas Gleixner Cc: Will Drewry Link: http://lkml.kernel.org/r/1431080762-17797-1-git-send-email-dvlasenk@redhat.com Signed-off-by: Ingo Molnar arch/x86/include/asm/atomic.h | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit e1dee1973c74a0408b108d88c57a15be8a2d6d84 Merge: c0fe07a 93a96c6 Author: Dave Airlie Date: Fri May 8 20:51:06 2015 +1000 Merge tag 'drm-intel-next-2015-04-23-fixed' of git://anongit.freedesktop.org/drm-intel into drm-next drm-intel-next-2015-04-23: - dither support for ns2501 dvo (Thomas Richter) - some polish for the gtt code and fixes to finally enable the cmd parser on hsw - first pile of bxt stage 1 enabling (too many different people to list ...) - more psr fixes from Rodrigo - skl rotation support from Chandra - more atomic work from Ander and Matt - pile of cleanups and micro-ops for execlist from Chris drm-intel-next-2015-04-10: - cdclk handling cleanup and fixes from Ville - more prep patches for olr removal from John Harrison - gmbus pin naming rework from Jani (prep for bxt) - remove ->new_config from Ander (more atomic conversion work) - rps (boost) tuning and unification with byt/bsw from Chris - cmd parser batch bool tuning from Chris - gen8 dynamic pte allocation (Michel Thierry, based on work from Ben Widawsky) - execlist tuning (not yet all of it) from Chris - add drm_plane_from_index (Chandra) - various small things all over * tag 'drm-intel-next-2015-04-23-fixed' of git://anongit.freedesktop.org/drm-intel: (204 commits) drm/i915/gtt: Allocate va range only if vma is not bound drm/i915: Enable cmd parser to do secure batch promotion for aliasing ppgtt drm/i915: fix intel_prepare_ddi drm/i915: factor out ddi_get_encoder_port drm/i915/hdmi: check port in ibx_infoframe_enabled drm/i915/hdmi: fix vlv infoframe port check drm/i915: Silence compiler warning in dvo drm/i915: Update DRIVER_DATE to 20150423 drm/i915: Enable dithering on NatSemi DVO2501 for Fujitsu S6010 rm/i915: Move i915_get_ggtt_vma_pages into ggtt_bind_vma drm/i915: Don't try to outsmart gcc in i915_gem_gtt.c drm/i915: Unduplicate i915_ggtt_unbind/bind_vma drm/i915: Move ppgtt_bind/unbind around drm/i915: move i915_gem_restore_gtt_mappings around drm/i915: Fix up the vma aliasing ppgtt binding drm/i915: Remove misleading comment around bind_to_vm drm/i915: Don't use atomics for pg_dirty_rings drm/i915: Don't look at pg_dirty_rings for aliasing ppgtt drm/i915/skl: Support Y tiling in MMIO flips drm/i915: Fixup kerneldoc for struct intel_context ... Conflicts: drivers/gpu/drm/i915/i915_drv.c commit 562bfca4c80175d1d18eef5c3f4bb8dda53c03e4 Author: Ingo Molnar Date: Fri May 8 12:43:53 2015 +0200 x86/mm: Clean up types in xlate_dev_mem_ptr() some more So Linus noticed that in: 94d4b4765b7d ("x86/mm: Clean up types in xlate_dev_mem_ptr()") ... I added two nonsensical casts, due to the poor type choice for 'vaddr'. Change it to 'void *' and take advantage of void * arithmetics. This removes the casts. ( Also remove a nonsensical return line from unxlate_dev_mem_ptr() while at it. ) Suggested-by: Linus Torvalds Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/mm/ioremap.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 99e711101c7822d9ddf39f16c026b97e16a9f517 Merge: f1dc154 3e0283a Author: Ingo Molnar Date: Fri May 8 12:41:09 2015 +0200 Merge branch 'linus' into x86/cleanups, before applying dependent patch commit e95e6f176c61dd0e7bd9fdfb4956df1f9bfe99d4 Author: David Vrabel Date: Fri Apr 24 14:56:40 2015 -0400 locking/pvqspinlock, x86: Enable PV qspinlock for Xen This patch adds the necessary Xen specific code to allow Xen to support the CPU halting and kicking operations needed by the queue spinlock PV code. Signed-off-by: David Vrabel Signed-off-by: Waiman Long Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Boris Ostrovsky Cc: Borislav Petkov Cc: Daniel J Blueman Cc: Douglas Hatch Cc: H. Peter Anvin Cc: Konrad Rzeszutek Wilk Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Paolo Bonzini Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Raghavendra K T Cc: Rik van Riel Cc: Scott J Norton Cc: Thomas Gleixner Cc: virtualization@lists.linux-foundation.org Cc: xen-devel@lists.xenproject.org Link: http://lkml.kernel.org/r/1429901803-29771-12-git-send-email-Waiman.Long@hp.com Signed-off-by: Ingo Molnar arch/x86/xen/spinlock.c | 64 +++++++++++++++++++++++++++++++++++++++++++++---- kernel/Kconfig.locks | 2 +- 2 files changed, 61 insertions(+), 5 deletions(-) commit bf0c7c34adc286bec3a5a38c00c773ba1b2d0396 Author: Waiman Long Date: Fri Apr 24 14:56:39 2015 -0400 locking/pvqspinlock, x86: Enable PV qspinlock for KVM This patch adds the necessary KVM specific code to allow KVM to support the CPU halting and kicking operations needed by the queue spinlock PV code. Signed-off-by: Waiman Long Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Boris Ostrovsky Cc: Borislav Petkov Cc: Daniel J Blueman Cc: David Vrabel Cc: Douglas Hatch Cc: H. Peter Anvin Cc: Konrad Rzeszutek Wilk Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Paolo Bonzini Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Raghavendra K T Cc: Rik van Riel Cc: Scott J Norton Cc: Thomas Gleixner Cc: virtualization@lists.linux-foundation.org Cc: xen-devel@lists.xenproject.org Link: http://lkml.kernel.org/r/1429901803-29771-11-git-send-email-Waiman.Long@hp.com Signed-off-by: Ingo Molnar arch/x86/kernel/kvm.c | 43 +++++++++++++++++++++++++++++++++++++++++++ kernel/Kconfig.locks | 2 +- 2 files changed, 44 insertions(+), 1 deletion(-) commit f233f7f1581e78fd9b4023f2e7d8c1ed89020cc9 Author: Peter Zijlstra (Intel) Date: Fri Apr 24 14:56:38 2015 -0400 locking/pvqspinlock, x86: Implement the paravirt qspinlock call patching We use the regular paravirt call patching to switch between: native_queued_spin_lock_slowpath() __pv_queued_spin_lock_slowpath() native_queued_spin_unlock() __pv_queued_spin_unlock() We use a callee saved call for the unlock function which reduces the i-cache footprint and allows 'inlining' of SPIN_UNLOCK functions again. We further optimize the unlock path by patching the direct call with a "movb $0,%arg1" if we are indeed using the native unlock code. This makes the unlock code almost as fast as the !PARAVIRT case. This significantly lowers the overhead of having CONFIG_PARAVIRT_SPINLOCKS enabled, even for native code. Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Waiman Long Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Boris Ostrovsky Cc: Borislav Petkov Cc: Daniel J Blueman Cc: David Vrabel Cc: Douglas Hatch Cc: H. Peter Anvin Cc: Konrad Rzeszutek Wilk Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Paolo Bonzini Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Raghavendra K T Cc: Rik van Riel Cc: Scott J Norton Cc: Thomas Gleixner Cc: virtualization@lists.linux-foundation.org Cc: xen-devel@lists.xenproject.org Link: http://lkml.kernel.org/r/1429901803-29771-10-git-send-email-Waiman.Long@hp.com Signed-off-by: Ingo Molnar arch/x86/Kconfig | 2 +- arch/x86/include/asm/paravirt.h | 29 ++++++++++++++++++++++++++++- arch/x86/include/asm/paravirt_types.h | 10 ++++++++++ arch/x86/include/asm/qspinlock.h | 25 ++++++++++++++++++++++++- arch/x86/include/asm/qspinlock_paravirt.h | 6 ++++++ arch/x86/kernel/paravirt-spinlocks.c | 24 +++++++++++++++++++++++- arch/x86/kernel/paravirt_patch_32.c | 22 ++++++++++++++++++---- arch/x86/kernel/paravirt_patch_64.c | 22 ++++++++++++++++++---- 8 files changed, 128 insertions(+), 12 deletions(-) commit a23db284fe0d1879ca2002bf31077b5efa2fe2ca Author: Waiman Long Date: Fri Apr 24 14:56:37 2015 -0400 locking/pvqspinlock: Implement simple paravirt support for the qspinlock Provide a separate (second) version of the spin_lock_slowpath for paravirt along with a special unlock path. The second slowpath is generated by adding a few pv hooks to the normal slowpath, but where those will compile away for the native case, they expand into special wait/wake code for the pv version. The actual MCS queue can use extra storage in the mcs_nodes[] array to keep track of state and therefore uses directed wakeups. The head contender has no such storage directly visible to the unlocker. So the unlocker searches a hash table with open addressing using a simple binary Galois linear feedback shift register. Suggested-by: Peter Zijlstra (Intel) Signed-off-by: Waiman Long Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Boris Ostrovsky Cc: Borislav Petkov Cc: Daniel J Blueman Cc: David Vrabel Cc: Douglas Hatch Cc: H. Peter Anvin Cc: Konrad Rzeszutek Wilk Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Paolo Bonzini Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Raghavendra K T Cc: Rik van Riel Cc: Scott J Norton Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1429901803-29771-9-git-send-email-Waiman.Long@hp.com Signed-off-by: Ingo Molnar kernel/locking/qspinlock.c | 68 +++++++- kernel/locking/qspinlock_paravirt.h | 325 ++++++++++++++++++++++++++++++++++++ 2 files changed, 392 insertions(+), 1 deletion(-) commit 2aa79af64263190eec610422b07f60e99a7d230a Author: Peter Zijlstra (Intel) Date: Fri Apr 24 14:56:36 2015 -0400 locking/qspinlock: Revert to test-and-set on hypervisors When we detect a hypervisor (!paravirt, see qspinlock paravirt support patches), revert to a simple test-and-set lock to avoid the horrors of queue preemption. Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Waiman Long Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Boris Ostrovsky Cc: Borislav Petkov Cc: Daniel J Blueman Cc: David Vrabel Cc: Douglas Hatch Cc: H. Peter Anvin Cc: Konrad Rzeszutek Wilk Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Paolo Bonzini Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Raghavendra K T Cc: Rik van Riel Cc: Scott J Norton Cc: Thomas Gleixner Cc: virtualization@lists.linux-foundation.org Cc: xen-devel@lists.xenproject.org Link: http://lkml.kernel.org/r/1429901803-29771-8-git-send-email-Waiman.Long@hp.com Signed-off-by: Ingo Molnar arch/x86/include/asm/qspinlock.h | 14 ++++++++++++++ include/asm-generic/qspinlock.h | 7 +++++++ kernel/locking/qspinlock.c | 3 +++ 3 files changed, 24 insertions(+) commit 2c83e8e9492dc823be1d96d4c5ef75d16d3866a0 Author: Waiman Long Date: Fri Apr 24 14:56:35 2015 -0400 locking/qspinlock: Use a simple write to grab the lock Currently, atomic_cmpxchg() is used to get the lock. However, this is not really necessary if there is more than one task in the queue and the queue head don't need to reset the tail code. For that case, a simple write to set the lock bit is enough as the queue head will be the only one eligible to get the lock as long as it checks that both the lock and pending bits are not set. The current pending bit waiting code will ensure that the bit will not be set as soon as the tail code in the lock is set. With that change, the are some slight improvement in the performance of the queued spinlock in the 5M loop micro-benchmark run on a 4-socket Westere-EX machine as shown in the tables below. [Standalone/Embedded - same node] # of tasks Before patch After patch %Change ---------- ----------- ---------- ------- 3 2324/2321 2248/2265 -3%/-2% 4 2890/2896 2819/2831 -2%/-2% 5 3611/3595 3522/3512 -2%/-2% 6 4281/4276 4173/4160 -3%/-3% 7 5018/5001 4875/4861 -3%/-3% 8 5759/5750 5563/5568 -3%/-3% [Standalone/Embedded - different nodes] # of tasks Before patch After patch %Change ---------- ----------- ---------- ------- 3 12242/12237 12087/12093 -1%/-1% 4 10688/10696 10507/10521 -2%/-2% It was also found that this change produced a much bigger performance improvement in the newer IvyBridge-EX chip and was essentially to close the performance gap between the ticket spinlock and queued spinlock. The disk workload of the AIM7 benchmark was run on a 4-socket Westmere-EX machine with both ext4 and xfs RAM disks at 3000 users on a 3.14 based kernel. The results of the test runs were: AIM7 XFS Disk Test kernel JPM Real Time Sys Time Usr Time ----- --- --------- -------- -------- ticketlock 5678233 3.17 96.61 5.81 qspinlock 5750799 3.13 94.83 5.97 AIM7 EXT4 Disk Test kernel JPM Real Time Sys Time Usr Time ----- --- --------- -------- -------- ticketlock 1114551 16.15 509.72 7.11 qspinlock 2184466 8.24 232.99 6.01 The ext4 filesystem run had a much higher spinlock contention than the xfs filesystem run. The "ebizzy -m" test was also run with the following results: kernel records/s Real Time Sys Time Usr Time ----- --------- --------- -------- -------- ticketlock 2075 10.00 216.35 3.49 qspinlock 3023 10.00 198.20 4.80 Signed-off-by: Waiman Long Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Boris Ostrovsky Cc: Borislav Petkov Cc: Daniel J Blueman Cc: David Vrabel Cc: Douglas Hatch Cc: H. Peter Anvin Cc: Konrad Rzeszutek Wilk Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Paolo Bonzini Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Raghavendra K T Cc: Rik van Riel Cc: Scott J Norton Cc: Thomas Gleixner Cc: virtualization@lists.linux-foundation.org Cc: xen-devel@lists.xenproject.org Link: http://lkml.kernel.org/r/1429901803-29771-7-git-send-email-Waiman.Long@hp.com Signed-off-by: Ingo Molnar kernel/locking/qspinlock.c | 66 +++++++++++++++++++++++++++++++++++----------- 1 file changed, 50 insertions(+), 16 deletions(-) commit 69f9cae90907e09af95fb991ed384670cef8dd32 Author: Peter Zijlstra (Intel) Date: Fri Apr 24 14:56:34 2015 -0400 locking/qspinlock: Optimize for smaller NR_CPUS When we allow for a max NR_CPUS < 2^14 we can optimize the pending wait-acquire and the xchg_tail() operations. By growing the pending bit to a byte, we reduce the tail to 16bit. This means we can use xchg16 for the tail part and do away with all the repeated compxchg() operations. This in turn allows us to unconditionally acquire; the locked state as observed by the wait loops cannot change. And because both locked and pending are now a full byte we can use simple stores for the state transition, obviating one atomic operation entirely. This optimization is needed to make the qspinlock achieve performance parity with ticket spinlock at light load. All this is horribly broken on Alpha pre EV56 (and any other arch that cannot do single-copy atomic byte stores). Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Waiman Long Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Boris Ostrovsky Cc: Borislav Petkov Cc: Daniel J Blueman Cc: David Vrabel Cc: Douglas Hatch Cc: H. Peter Anvin Cc: Konrad Rzeszutek Wilk Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Paolo Bonzini Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Raghavendra K T Cc: Rik van Riel Cc: Scott J Norton Cc: Thomas Gleixner Cc: virtualization@lists.linux-foundation.org Cc: xen-devel@lists.xenproject.org Link: http://lkml.kernel.org/r/1429901803-29771-6-git-send-email-Waiman.Long@hp.com Signed-off-by: Ingo Molnar include/asm-generic/qspinlock_types.h | 13 +++++++ kernel/locking/qspinlock.c | 69 ++++++++++++++++++++++++++++++++++- 2 files changed, 81 insertions(+), 1 deletion(-) commit 6403bd7d0ea1878a487296114eccf78658d7dd7a Author: Waiman Long Date: Fri Apr 24 14:56:33 2015 -0400 locking/qspinlock: Extract out code snippets for the next patch This is a preparatory patch that extracts out the following 2 code snippets to prepare for the next performance optimization patch. 1) the logic for the exchange of new and previous tail code words into a new xchg_tail() function. 2) the logic for clearing the pending bit and setting the locked bit into a new clear_pending_set_locked() function. This patch also simplifies the trylock operation before queuing by calling queued_spin_trylock() directly. Signed-off-by: Waiman Long Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Boris Ostrovsky Cc: Borislav Petkov Cc: Daniel J Blueman Cc: David Vrabel Cc: Douglas Hatch Cc: H. Peter Anvin Cc: Konrad Rzeszutek Wilk Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Paolo Bonzini Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Raghavendra K T Cc: Rik van Riel Cc: Scott J Norton Cc: Thomas Gleixner Cc: virtualization@lists.linux-foundation.org Cc: xen-devel@lists.xenproject.org Link: http://lkml.kernel.org/r/1429901803-29771-5-git-send-email-Waiman.Long@hp.com Signed-off-by: Ingo Molnar include/asm-generic/qspinlock_types.h | 2 + kernel/locking/qspinlock.c | 79 +++++++++++++++++++++-------------- 2 files changed, 50 insertions(+), 31 deletions(-) commit c1fb159db9f2e50e0f4025bed92a67a6a7bfa7b7 Author: Peter Zijlstra (Intel) Date: Fri Apr 24 14:56:32 2015 -0400 locking/qspinlock: Add pending bit Because the qspinlock needs to touch a second cacheline (the per-cpu mcs_nodes[]); add a pending bit and allow a single in-word spinner before we punt to the second cacheline. It is possible so observe the pending bit without the locked bit when the last owner has just released but the pending owner has not yet taken ownership. In this case we would normally queue -- because the pending bit is already taken. However, in this case the pending bit is guaranteed to be released 'soon', therefore wait for it and avoid queueing. Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Waiman Long Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Boris Ostrovsky Cc: Borislav Petkov Cc: Daniel J Blueman Cc: David Vrabel Cc: Douglas Hatch Cc: H. Peter Anvin Cc: Konrad Rzeszutek Wilk Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Paolo Bonzini Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Raghavendra K T Cc: Rik van Riel Cc: Scott J Norton Cc: Thomas Gleixner Cc: virtualization@lists.linux-foundation.org Cc: xen-devel@lists.xenproject.org Link: http://lkml.kernel.org/r/1429901803-29771-4-git-send-email-Waiman.Long@hp.com Signed-off-by: Ingo Molnar include/asm-generic/qspinlock_types.h | 12 +++- kernel/locking/qspinlock.c | 119 ++++++++++++++++++++++++++++------ 2 files changed, 107 insertions(+), 24 deletions(-) commit d73a33973f16ab6703e75ea00edee857afa3406e Author: Waiman Long Date: Fri Apr 24 14:56:31 2015 -0400 locking/qspinlock, x86: Enable x86-64 to use queued spinlocks This patch makes the necessary changes at the x86 architecture specific layer to enable the use of queued spinlocks for x86-64. As x86-32 machines are typically not multi-socket. The benefit of queue spinlock may not be apparent. So queued spinlocks are not enabled. Currently, there is some incompatibilities between the para-virtualized spinlock code (which hard-codes the use of ticket spinlock) and the queued spinlocks. Therefore, the use of queued spinlocks is disabled when the para-virtualized spinlock is enabled. The arch/x86/include/asm/qspinlock.h header file includes some x86 specific optimization which will make the queueds spinlock code perform better than the generic implementation. Signed-off-by: Waiman Long Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Boris Ostrovsky Cc: Borislav Petkov Cc: Daniel J Blueman Cc: David Vrabel Cc: Douglas Hatch Cc: H. Peter Anvin Cc: Konrad Rzeszutek Wilk Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Paolo Bonzini Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Raghavendra K T Cc: Rik van Riel Cc: Scott J Norton Cc: Thomas Gleixner Cc: virtualization@lists.linux-foundation.org Cc: xen-devel@lists.xenproject.org Link: http://lkml.kernel.org/r/1429901803-29771-3-git-send-email-Waiman.Long@hp.com Signed-off-by: Ingo Molnar arch/x86/Kconfig | 1 + arch/x86/include/asm/qspinlock.h | 20 ++++++++++++++++++++ arch/x86/include/asm/spinlock.h | 5 +++++ arch/x86/include/asm/spinlock_types.h | 4 ++++ 4 files changed, 30 insertions(+) commit a33fda35e3a7655fb7df756ed67822afb5ed5e8d Author: Waiman Long Date: Fri Apr 24 14:56:30 2015 -0400 locking/qspinlock: Introduce a simple generic 4-byte queued spinlock This patch introduces a new generic queued spinlock implementation that can serve as an alternative to the default ticket spinlock. Compared with the ticket spinlock, this queued spinlock should be almost as fair as the ticket spinlock. It has about the same speed in single-thread and it can be much faster in high contention situations especially when the spinlock is embedded within the data structure to be protected. Only in light to moderate contention where the average queue depth is around 1-3 will this queued spinlock be potentially a bit slower due to the higher slowpath overhead. This queued spinlock is especially suit to NUMA machines with a large number of cores as the chance of spinlock contention is much higher in those machines. The cost of contention is also higher because of slower inter-node memory traffic. Due to the fact that spinlocks are acquired with preemption disabled, the process will not be migrated to another CPU while it is trying to get a spinlock. Ignoring interrupt handling, a CPU can only be contending in one spinlock at any one time. Counting soft IRQ, hard IRQ and NMI, a CPU can only have a maximum of 4 concurrent lock waiting activities. By allocating a set of per-cpu queue nodes and used them to form a waiting queue, we can encode the queue node address into a much smaller 24-bit size (including CPU number and queue node index) leaving one byte for the lock. Please note that the queue node is only needed when waiting for the lock. Once the lock is acquired, the queue node can be released to be used later. Signed-off-by: Waiman Long Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Boris Ostrovsky Cc: Borislav Petkov Cc: Daniel J Blueman Cc: David Vrabel Cc: Douglas Hatch Cc: H. Peter Anvin Cc: Konrad Rzeszutek Wilk Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Paolo Bonzini Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Raghavendra K T Cc: Rik van Riel Cc: Scott J Norton Cc: Thomas Gleixner Cc: virtualization@lists.linux-foundation.org Cc: xen-devel@lists.xenproject.org Link: http://lkml.kernel.org/r/1429901803-29771-2-git-send-email-Waiman.Long@hp.com Signed-off-by: Ingo Molnar include/asm-generic/qspinlock.h | 132 +++++++++++++++++++++ include/asm-generic/qspinlock_types.h | 58 ++++++++++ kernel/Kconfig.locks | 7 ++ kernel/locking/Makefile | 1 + kernel/locking/mcs_spinlock.h | 1 + kernel/locking/qspinlock.c | 209 ++++++++++++++++++++++++++++++++++ 6 files changed, 408 insertions(+) commit 663fdcbee0a656cdaef934e7f50e6c2670373bc9 Author: Preeti U Murthy Date: Thu Apr 30 17:27:21 2015 +0530 kernel: Replace reference to ASSIGN_ONCE() with WRITE_ONCE() in comment Looks like commit : 43239cbe79fc ("kernel: Change ASSIGN_ONCE(val, x) to WRITE_ONCE(x, val)") left behind a reference to ASSIGN_ONCE(). Update this to WRITE_ONCE(). Signed-off-by: Preeti U Murthy Signed-off-by: Peter Zijlstra (Intel) Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Thomas Gleixner Cc: borntraeger@de.ibm.com Cc: dave@stgolabs.net Cc: paulmck@linux.vnet.ibm.com Link: http://lkml.kernel.org/r/20150430115721.22278.94082.stgit@preeti.in.ibm.com Signed-off-by: Ingo Molnar include/linux/compiler.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 59aabfc7e959f5f213e4e5cc7567ab4934da2adf Author: Waiman Long Date: Thu Apr 30 17:12:16 2015 -0400 locking/rwsem: Reduce spinlock contention in wakeup after up_read()/up_write() In up_write()/up_read(), rwsem_wake() will be called whenever it detects that some writers/readers are waiting. The rwsem_wake() function will take the wait_lock and call __rwsem_do_wake() to do the real wakeup. For a heavily contended rwsem, doing a spin_lock() on wait_lock will cause further contention on the heavily contended rwsem cacheline resulting in delay in the completion of the up_read/up_write operations. This patch makes the wait_lock taking and the call to __rwsem_do_wake() optional if at least one spinning writer is present. The spinning writer will be able to take the rwsem and call rwsem_wake() later when it calls up_write(). With the presence of a spinning writer, rwsem_wake() will now try to acquire the lock using trylock. If that fails, it will just quit. Suggested-by: Peter Zijlstra (Intel) Signed-off-by: Waiman Long Signed-off-by: Peter Zijlstra (Intel) Reviewed-by: Davidlohr Bueso Acked-by: Jason Low Cc: Andrew Morton Cc: Borislav Petkov Cc: Douglas Hatch Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Scott J Norton Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1430428337-16802-2-git-send-email-Waiman.Long@hp.com Signed-off-by: Ingo Molnar include/linux/osq_lock.h | 5 +++++ kernel/locking/rwsem-xadd.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) commit cb307113746b4d184155d2c412e8069aeaa60d42 Author: Michael Ellerman Date: Mon May 4 16:26:39 2015 +1000 perf_event: Don't allow vmalloc() backed perf on powerpc On powerpc the perf event interrupt is not masked when interrupts are disabled, allowing it to function as an NMI. This causes problems if perf is using vmalloc. If we take a page fault on the vmalloc region the fault handler will fail the page fault because it detects we are coming in from an NMI (see do_hash_page()). We don't actually need or want vmalloc backed perf so just disable it on powerpc. Signed-off-by: Michael Ellerman Signed-off-by: Peter Zijlstra (Intel) Cc: Cc: Andrew Morton Cc: Anton Blanchard Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Paul Mackerras Cc: Thomas Gleixner Cc: acme@ghostprotocols.net Cc: sukadev@linux.vnet.ibm.com Link: http://lkml.kernel.org/r/1430720799-18426-1-git-send-email-mpe@ellerman.id.au Signed-off-by: Ingo Molnar init/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ff303e66c240ba6269e31817a386995440a18c99 Author: Peter Zijlstra Date: Fri Apr 17 20:05:30 2015 +0200 perf: Fix software migrate events Stephane asked about PERF_COUNT_SW_CPU_MIGRATIONS and I realized it was borken: > The problem is that the task isn't actually scheduled while its being > migrated (obviously), and if its not scheduled, the counters aren't > scheduled either, so there's no observing of the fact. > > A further problem with migrations is that many migrations happen from > softirq context, which is nested inside the 'random' task context of > whoemever happens to run at that time, similarly for the wakeup > migrations triggered from (soft)irq context. All those end up being > accounted in the task that's currently running, eg. your 'ls'. The below cures this by marking a task as migrated and accounting it on the subsequent sched_in(). Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Signed-off-by: Ingo Molnar include/linux/perf_event.h | 24 ++++++++++++++++++++++++ include/linux/sched.h | 7 ++++--- kernel/sched/core.c | 2 +- 3 files changed, 29 insertions(+), 4 deletions(-) commit 964a0b896a7c78622801afcee77ed3d240352747 Author: Charles Keepax Date: Fri May 8 10:50:10 2015 +0100 ASoC: dapm: Add missing mutex unlock The is a missing mutex unlock on the error path in snd_soc_dapm_get_enum_double. This was introduced in commit 561ed680b764 ("ASoC: dapm: Add support for autodisable mux controls"). This patch adds the missing unlock. Reported-by: Dan Carpenter Signed-off-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/soc-dapm.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit fa6004ad4528153b699a4d5ce5ea6b33acce74cc Author: Davidlohr Bueso Date: Mon May 4 07:02:46 2015 -0700 ipc/mqueue: Implement lockless pipelined wakeups This patch moves the wakeup_process() invocation so it is not done under the info->lock by making use of a lockless wake_q. With this change, the waiter is woken up once it is STATE_READY and it does not need to loop on SMP if it is still in STATE_PENDING. In the timeout case we still need to grab the info->lock to verify the state. This change should also avoid the introduction of preempt_disable() in -rt which avoids a busy-loop which pools for the STATE_PENDING -> STATE_READY change if the waiter has a higher priority compared to the waker. Additionally, this patch micro-optimizes wq_sleep by using the cheaper cousin of set_current_state(TASK_INTERRUPTABLE) as we will block no matter what, thus get rid of the implied barrier. Signed-off-by: Davidlohr Bueso Signed-off-by: Peter Zijlstra (Intel) Acked-by: George Spelvin Acked-by: Thomas Gleixner Cc: Andrew Morton Cc: Borislav Petkov Cc: Chris Mason Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Manfred Spraul Cc: Peter Zijlstra Cc: Sebastian Andrzej Siewior Cc: Steven Rostedt Cc: dave@stgolabs.net Link: http://lkml.kernel.org/r/1430748166.1940.17.camel@stgolabs.net Signed-off-by: Ingo Molnar ipc/mqueue.c | 54 +++++++++++++++++++++++++++++++++--------------------- 1 file changed, 33 insertions(+), 21 deletions(-) commit 1d0dcb3ad9d336e6d6ee020a750a7f8d907e28de Author: Davidlohr Bueso Date: Fri May 1 08:27:51 2015 -0700 futex: Implement lockless wakeups Given the overall futex architecture, any chance of reducing hb->lock contention is welcome. In this particular case, using wake-queues to enable lockless wakeups addresses very much real world performance concerns, even cases of soft-lockups in cases of large amounts of blocked tasks (which is not hard to find in large boxes, using but just a handful of futex). At the lowest level, this patch can reduce latency of a single thread attempting to acquire hb->lock in highly contended scenarios by a up to 2x. At lower counts of nr_wake there are no regressions, confirming, of course, that the wake_q handling overhead is practically non existent. For instance, while a fair amount of variation, the extended pef-bench wakeup benchmark shows for a 20 core machine the following avg per-thread time to wakeup its share of tasks: nr_thr ms-before ms-after 16 0.0590 0.0215 32 0.0396 0.0220 48 0.0417 0.0182 64 0.0536 0.0236 80 0.0414 0.0097 96 0.0672 0.0152 Naturally, this can cause spurious wakeups. However there is no core code that cannot handle them afaict, and furthermore tglx does have the point that other events can already trigger them anyway. Signed-off-by: Davidlohr Bueso Signed-off-by: Peter Zijlstra (Intel) Acked-by: Thomas Gleixner Cc: Andrew Morton Cc: Borislav Petkov Cc: Chris Mason Cc: Davidlohr Bueso Cc: George Spelvin Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Manfred Spraul Cc: Peter Zijlstra Cc: Sebastian Andrzej Siewior Cc: Steven Rostedt Link: http://lkml.kernel.org/r/1430494072-30283-3-git-send-email-dave@stgolabs.net Signed-off-by: Ingo Molnar kernel/futex.c | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) commit 7675104990ed255b9315a82ae827ff312a2a88a2 Author: Peter Zijlstra Date: Fri May 1 08:27:50 2015 -0700 sched: Implement lockless wake-queues This is useful for locking primitives that can effect multiple wakeups per operation and want to avoid lock internal lock contention by delaying the wakeups until we've released the lock internal locks. Alternatively it can be used to avoid issuing multiple wakeups, and thus save a few cycles, in packet processing. Queue all target tasks and wakeup once you've processed all packets. That way you avoid waking the target task multiple times if there were multiple packets for the same task. Properties of a wake_q are: - Lockless, as queue head must reside on the stack. - Being a queue, maintains wakeup order passed by the callers. This can be important for otherwise, in scenarios where highly contended locks could affect any reliance on lock fairness. - A queued task cannot be added again until it is woken up. This patch adds the needed infrastructure into the scheduler code and uses the new wake_list to delay the futex wakeups until after we've released the hash bucket locks. Signed-off-by: Peter Zijlstra (Intel) [tweaks, adjustments, comments, etc.] Signed-off-by: Davidlohr Bueso Signed-off-by: Peter Zijlstra (Intel) Acked-by: Thomas Gleixner Cc: Borislav Petkov Cc: Chris Mason Cc: Davidlohr Bueso Cc: George Spelvin Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Manfred Spraul Cc: Sebastian Andrzej Siewior Cc: Steven Rostedt Link: http://lkml.kernel.org/r/1430494072-30283-2-git-send-email-dave@stgolabs.net Signed-off-by: Ingo Molnar include/linux/sched.h | 46 ++++++++++++++++++++++++++++++++++++++++++++++ kernel/sched/core.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 92 insertions(+) commit 7110744516276e906f9197e2857d026eb2343393 Author: Jason Low Date: Tue Apr 28 13:00:24 2015 -0700 sched, timer: Use the atomic task_cputime in thread_group_cputimer Recent optimizations were made to thread_group_cputimer to improve its scalability by keeping track of cputime stats without a lock. However, the values were open coded to the structure, causing them to be at a different abstraction level from the regular task_cputime structure. Furthermore, any subsequent similar optimizations would not be able to share the new code, since they are specific to thread_group_cputimer. This patch adds the new task_cputime_atomic data structure (introduced in the previous patch in the series) to thread_group_cputimer for keeping track of the cputime atomically, which also helps generalize the code. Suggested-by: Ingo Molnar Signed-off-by: Jason Low Signed-off-by: Peter Zijlstra (Intel) Acked-by: Thomas Gleixner Acked-by: Rik van Riel Cc: Andrew Morton Cc: Aswin Chandramouleeswaran Cc: Borislav Petkov Cc: Davidlohr Bueso Cc: Frederic Weisbecker Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Mel Gorman Cc: Mike Galbraith Cc: Oleg Nesterov Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Preeti U Murthy Cc: Scott J Norton Cc: Steven Rostedt Cc: Waiman Long Link: http://lkml.kernel.org/r/1430251224-5764-6-git-send-email-jason.low2@hp.com Signed-off-by: Ingo Molnar include/linux/init_task.h | 6 ++---- include/linux/sched.h | 4 +--- kernel/sched/stats.h | 6 +++--- kernel/time/posix-cpu-timers.c | 26 +++++++++++++------------- 4 files changed, 19 insertions(+), 23 deletions(-) commit 971e8a985482c76487edb5a49811e99b96e846e1 Author: Jason Low Date: Tue Apr 28 13:00:23 2015 -0700 sched, timer: Provide an atomic 'struct task_cputime' data structure This patch adds an atomic variant of the 'struct task_cputime' data structure, which can be used to store and update task_cputime statistics without needing to do locking. Suggested-by: Ingo Molnar Signed-off-by: Jason Low Signed-off-by: Peter Zijlstra (Intel) Acked-by: Thomas Gleixner Acked-by: Rik van Riel Cc: Andrew Morton Cc: Aswin Chandramouleeswaran Cc: Borislav Petkov Cc: Davidlohr Bueso Cc: Frederic Weisbecker Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Mel Gorman Cc: Mike Galbraith Cc: Oleg Nesterov Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Preeti U Murthy Cc: Scott J Norton Cc: Steven Rostedt Cc: Waiman Long Link: http://lkml.kernel.org/r/1430251224-5764-5-git-send-email-jason.low2@hp.com Signed-off-by: Ingo Molnar include/linux/sched.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit 1018016c706f7ff9f56fde3a649789c47085a293 Author: Jason Low Date: Tue Apr 28 13:00:22 2015 -0700 sched, timer: Replace spinlocks with atomics in thread_group_cputimer(), to improve scalability While running a database workload, we found a scalability issue with itimers. Much of the problem was caused by the thread_group_cputimer spinlock. Each time we account for group system/user time, we need to obtain a thread_group_cputimer's spinlock to update the timers. On larger systems (such as a 16 socket machine), this caused more than 30% of total time spent trying to obtain this kernel lock to update these group timer stats. This patch converts the timers to 64-bit atomic variables and use atomic add to update them without a lock. With this patch, the percent of total time spent updating thread group cputimer timers was reduced from 30% down to less than 1%. Note: On 32-bit systems using the generic 64-bit atomics, this causes sample_group_cputimer() to take locks 3 times instead of just 1 time. However, we tested this patch on a 32-bit system ARM system using the generic atomics and did not find the overhead to be much of an issue. An explanation for why this isn't an issue is that 32-bit systems usually have small numbers of CPUs, and cacheline contention from extra spinlocks called periodically is not really apparent on smaller systems. Signed-off-by: Jason Low Signed-off-by: Peter Zijlstra (Intel) Acked-by: Thomas Gleixner Acked-by: Rik van Riel Cc: Andrew Morton Cc: Aswin Chandramouleeswaran Cc: Borislav Petkov Cc: Davidlohr Bueso Cc: Frederic Weisbecker Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Mel Gorman Cc: Mike Galbraith Cc: Oleg Nesterov Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Preeti U Murthy Cc: Scott J Norton Cc: Steven Rostedt Cc: Waiman Long Link: http://lkml.kernel.org/r/1430251224-5764-4-git-send-email-jason.low2@hp.com Signed-off-by: Ingo Molnar include/linux/init_task.h | 7 ++-- include/linux/sched.h | 10 ++---- kernel/fork.c | 3 -- kernel/sched/stats.h | 15 +++----- kernel/time/posix-cpu-timers.c | 79 ++++++++++++++++++++++++++---------------- 5 files changed, 62 insertions(+), 52 deletions(-) commit 7e5a2c1729f1612618ed236249a15bf15f309325 Author: Jason Low Date: Thu Apr 30 17:28:14 2015 -0700 sched/numa: Document usages of mm->numa_scan_seq The p->mm->numa_scan_seq is accessed using READ_ONCE/WRITE_ONCE and modified without exclusive access. It is not clear why it is accessed this way. This patch provides some documentation on that. Suggested-by: Ingo Molnar Signed-off-by: Jason Low Signed-off-by: Peter Zijlstra (Intel) Acked-by: Thomas Gleixner Acked-by: Rik van Riel Cc: Andrew Morton Cc: Aswin Chandramouleeswaran Cc: Borislav Petkov Cc: Davidlohr Bueso Cc: Frederic Weisbecker Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Mel Gorman Cc: Mike Galbraith Cc: Oleg Nesterov Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Preeti U Murthy Cc: Scott J Norton Cc: Steven Rostedt Cc: Waiman Long Link: http://lkml.kernel.org/r/1430440094.2475.61.camel@j-VirtualBox Signed-off-by: Ingo Molnar kernel/sched/fair.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 316c1608d15c736439d4065ed12f306db554b3da Author: Jason Low Date: Tue Apr 28 13:00:20 2015 -0700 sched, timer: Convert usages of ACCESS_ONCE() in the scheduler to READ_ONCE()/WRITE_ONCE() ACCESS_ONCE doesn't work reliably on non-scalar types. This patch removes the rest of the existing usages of ACCESS_ONCE() in the scheduler, and use the new READ_ONCE() and WRITE_ONCE() APIs as appropriate. Signed-off-by: Jason Low Signed-off-by: Peter Zijlstra (Intel) Acked-by: Thomas Gleixner Acked-by: Rik van Riel Acked-by: Waiman Long Cc: Andrew Morton Cc: Aswin Chandramouleeswaran Cc: Borislav Petkov Cc: Davidlohr Bueso Cc: Frederic Weisbecker Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Mel Gorman Cc: Mike Galbraith Cc: Oleg Nesterov Cc: Paul E. McKenney Cc: Preeti U Murthy Cc: Scott J Norton Cc: Steven Rostedt Link: http://lkml.kernel.org/r/1430251224-5764-2-git-send-email-jason.low2@hp.com Signed-off-by: Ingo Molnar include/linux/sched.h | 4 ++-- kernel/fork.c | 2 +- kernel/sched/auto_group.c | 2 +- kernel/sched/auto_group.h | 2 +- kernel/sched/core.c | 4 ++-- kernel/sched/cputime.c | 2 +- kernel/sched/deadline.c | 2 +- kernel/sched/fair.c | 18 +++++++++--------- kernel/sched/rt.c | 2 +- kernel/sched/sched.h | 2 +- kernel/sched/wait.c | 4 ++-- kernel/time/posix-cpu-timers.c | 8 ++++---- 12 files changed, 26 insertions(+), 26 deletions(-) commit ce2f5fe46303d1e1a2ba453753a7e8200d32182c Author: Nicholas Mc Guire Date: Sun May 3 10:51:56 2015 +0200 sched/core: Remove unnecessary down/up conversion 'rt_period_us' is automatically type converted from u64 to long and then cast back to u64 - this down/up conversion is unnecessary and can be removed to improve readability. This will also help us not truncate 'rt_period_us' to 32 bits on 32-bit kernels, should we ever have so large values. (unlikely, not the least due to procfs.) Signed-off-by: Nicholas Mc Guire Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1430643116-24049-1-git-send-email-hofrat@osadl.org Signed-off-by: Ingo Molnar kernel/sched/core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e7cc4173115347bcdaa5de2824dd46ef2c58425f Author: Palmer Dabbelt Date: Thu Apr 30 21:19:55 2015 -0700 signals, ptrace, sched: Fix a misaligned load inside ptrace_attach() The misaligned load exception arises when running ptrace_attach() on the RISC-V (which hasn't been upstreamed yet). The problem is that wait_on_bit() takes a void* but then proceeds to call test_bit(), which takes a long*. This allows an int-aligned pointer to be passed to test_bit(), which promptly fails. This will manifest on any other asm-generic port where unaligned loads trap, where sizeof(long) > sizeof(int), and where task_struct.jobctl ends up not being long-aligned. This patch changes task_struct.jobctl to be a long, which ensures it has the correct alignment. Signed-off-by: Palmer Dabbelt Signed-off-by: Peter Zijlstra (Intel) Reviewed-by: Chris Metcalf Cc: Andrew Morton Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Thomas Gleixner Cc: bobby.prani@gmail.com Cc: oleg@redhat.com Cc: paulmck@linux.vnet.ibm.com Cc: richard@nod.at Cc: vdavydov@parallels.com Link: http://lkml.kernel.org/r/1430453997-32459-2-git-send-email-palmer@dabbelt.com Signed-off-by: Ingo Molnar include/linux/sched.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7e60598785f30cf3dc9e476cc0fc3feeb37a0c63 Author: Palmer Dabbelt Date: Thu Apr 30 21:19:56 2015 -0700 sched/wait: Change wait_on_bit*() to take an unsigned long *, not a void * The implementations of wait_on_bit*() will only work with long-aligned memory on systems that don't support misaligned loads and stores. This patch changes the function prototypes to ensure that the compiler will enforce alignment. Running make defconfig make KFLAGS="-Werror" seems to indicate that, as of c56fb6564dcd ("Fix a misaligned load inside ptrace_attach()"), there are now no users of non-long-aligned calls to wait_on_bit*(). I additionally tried a few "make randconfig" attempts, none of which failed to compile for this reason. Signed-off-by: Palmer Dabbelt Signed-off-by: Peter Zijlstra (Intel) Reviewed-by: Chris Metcalf Cc: Andrew Morton Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Thomas Gleixner Cc: bobby.prani@gmail.com Cc: oleg@redhat.com Cc: paulmck@linux.vnet.ibm.com Cc: richard@nod.at Cc: vdavydov@parallels.com Link: http://lkml.kernel.org/r/1430453997-32459-3-git-send-email-palmer@dabbelt.com Signed-off-by: Ingo Molnar include/linux/wait.h | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) commit b76808e6808e34e7e78131d2b8cb0535622b8e9f Author: Palmer Dabbelt Date: Thu Apr 30 21:19:57 2015 -0700 signals, sched: Change all uses of JOBCTL_* from 'int' to 'long' c56fb6564dcd ("Fix a misaligned load inside ptrace_attach()") makes jobctl an "unsigned long". It makes sense to have the masks applied to it match that type. This is currently just a cosmetic change, but it will prevent the mask from being unexpectedly truncated if we ever end up with masks with more bits. One instance of "signr" is an int, but I left this alone because the mask ensures that it will never overflow. Signed-off-by: Palmer Dabbelt Signed-off-by: Peter Zijlstra (Intel) Reviewed-by: Chris Metcalf Cc: Andrew Morton Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Thomas Gleixner Cc: bobby.prani@gmail.com Cc: oleg@redhat.com Cc: paulmck@linux.vnet.ibm.com Cc: richard@nod.at Cc: vdavydov@parallels.com Link: http://lkml.kernel.org/r/1430453997-32459-4-git-send-email-palmer@dabbelt.com Signed-off-by: Ingo Molnar include/linux/sched.h | 18 +++++++++--------- kernel/signal.c | 6 +++--- 2 files changed, 12 insertions(+), 12 deletions(-) commit 3289bdb429884c0279bf9ab72dff7b934f19dfc6 Author: Peter Zijlstra Date: Tue Apr 14 13:19:42 2015 +0200 sched: Move the loadavg code to a more obvious location I could not find the loadavg code.. turns out it was hidden in a file called proc.c. It further got mingled up with the cruft per rq load indexes (which we really want to get rid of). Move the per rq load indexes into the fair.c load-balance code (that's the only thing that uses them) and rename proc.c to loadavg.c so we can find it again. Signed-off-by: Peter Zijlstra (Intel) Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Paul Gortmaker Cc: Thomas Gleixner [ Did minor cleanups to the code. ] Signed-off-by: Ingo Molnar include/linux/sched.h | 5 + kernel/sched/Makefile | 2 +- kernel/sched/core.c | 7 +- kernel/sched/fair.c | 183 ++++++++++++++++ kernel/sched/loadavg.c | 394 +++++++++++++++++++++++++++++++++ kernel/sched/proc.c | 584 ------------------------------------------------- kernel/sched/sched.h | 8 +- 7 files changed, 593 insertions(+), 590 deletions(-) commit bb2ebf08869c4404dc2f8fb6fe3e4b6b00bb40ad Merge: 6a82b60 533445c Author: Ingo Molnar Date: Fri May 8 11:59:57 2015 +0200 Merge branch 'sched/urgent' into sched/core, before applying new patches Signed-off-by: Ingo Molnar commit 6a82b60da26bc404a8fca242521d988c437d0611 Author: Paul Gortmaker Date: Mon Apr 27 18:47:50 2015 -0400 sched/core: Remove __cpuinit section tag that crept back in We removed __cpuinit support (leaving no-op stubs) quite some time ago. However this one crept back in as of commit a803f0261bb2bb57aab ("sched: Initialize rq->age_stamp on processor start") Since we want to clobber the stubs too, get this removed now. Signed-off-by: Paul Gortmaker Signed-off-by: Peter Zijlstra (Intel) Cc: Borislav Petkov Cc: Corey Minyard Cc: H. Peter Anvin Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1430174880-27958-2-git-send-email-paul.gortmaker@windriver.com Signed-off-by: Ingo Molnar kernel/sched/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ed7b40c90e80559ab2d86a19516a5211733e34c9 Merge: 3e0283a 2df8406 Author: Ingo Molnar Date: Fri May 8 11:50:24 2015 +0200 Merge branch 'sched/urgent' into sched/core So this isn't really a fix but a cleanup that can wait for v4.2. Signed-off-by: Ingo Molnar commit 3f599875e5202986b350618a617527ab441bf206 Author: Paul Kocialkowski Date: Wed May 6 15:23:56 2015 +0100 ARM: 8355/1: arch: Show the serial number from devicetree in cpuinfo This grabs the serial number shown in cpuinfo from the serial-number device-tree property in priority. When booting with ATAGs (and without device-tree), the provided number is still shown instead. Signed-off-by: Paul Kocialkowski Signed-off-by: Russell King arch/arm/include/asm/system_info.h | 1 + arch/arm/kernel/setup.c | 23 +++++++++++++++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) commit 13dd92bb4599b5655cafe1f2c0365396a096b94a Author: Paul Kocialkowski Date: Wed May 6 15:22:36 2015 +0100 ARM: 8354/1: Documentation: devicetree: root node serial-number property documentation Open firmware is already using the serial-number property for passing the device's serial number from the bootloader to the kernel. In addition, lshw already has support for scanning this property. The serial number is a string that somewhat represents the device's serial number. It might come from some form of storage (e.g. an eeprom) and be programmed at factory-time by the manufacturer or come from identification bits available in e.g. the SoC (note that the soc_id property in the SoC bus should hold a full account of those bits). The serial number is taken as-is from the bootloader, so it is up to the bootloader to define where the serial number comes from and what length it should be. Some use cases for the serial number require it to have a maximum length (e.g. for USB serial number) and some other cases imply more restrictions on what the serial number should look like (e.g. in Android, the ro.serialno property is usually a 16-bytes (plus one null byte) representation of a 64 bit number). Signed-off-by: Paul Kocialkowski Acked-by: Rob Herring Signed-off-by: Russell King Documentation/devicetree/booting-without-of.txt | 4 ++++ 1 file changed, 4 insertions(+) commit 7ddfe625cbc14c83153c78aacd52a20c5805920e Author: Russell King Date: Thu May 7 14:22:40 2015 +0100 ARM: optimize memset_io()/memcpy_fromio()/memcpy_toio() If we are building for a LE platform, and we haven't overriden the MMIO ops, then we can optimize the mem*io operations using the standard string functions. Acked-by: Nicolas Pitre Signed-off-by: Russell King arch/arm/include/asm/io.h | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) commit 7d485f647c1f4a6976264c90447fb0dbf07b111d Author: Ard Biesheuvel Date: Mon Nov 24 16:54:35 2014 +0100 ARM: 8220/1: allow modules outside of bl range Loading modules far away from the kernel in memory is problematic because the 'bl' instruction only has limited reach, and modules are not built with PLTs. Instead of using the -mlong-calls option (which affects all compiler emitted bl instructions, but not the ones in assembler), this patch allocates some additional space at module load time, and populates it with PLT like veneers when encountering relocations that are out of range. This should work with all relocations against symbols exported by the kernel, including those resulting from GCC generated implicit function calls for ftrace etc. The module memory size increases by about 5% on average, regardless of whether any PLT entries were actually needed. However, due to the page based rounding that occurs when allocating module memory, the average memory footprint increase is negligible. Reviewed-by: Nicolas Pitre Signed-off-by: Ard Biesheuvel Signed-off-by: Russell King arch/arm/Kconfig | 17 +++- arch/arm/Makefile | 4 + arch/arm/include/asm/module.h | 12 ++- arch/arm/kernel/Makefile | 1 + arch/arm/kernel/module-plts.c | 181 ++++++++++++++++++++++++++++++++++++++++++ arch/arm/kernel/module.c | 32 +++++++- arch/arm/kernel/module.lds | 4 + 7 files changed, 248 insertions(+), 3 deletions(-) commit e748994f5cc59e82ef28e31bae680f15fdadb26f Author: Tony Lindgren Date: Mon May 4 15:22:41 2015 +0100 ARM: 8353/1: mm: Fix Cortex-A8 erratum 430973 segfaults for bootloaders and multiarch Looks like apps can be made to segfault easily on armhf distros just by running cpuburn-a8 in the background, then starting apt get update unless erratum 430973 workaround is enabled. This happens on r3p2 also, which has 430973 fixed in hardware. Turns out the reason for this is some bootloaders incorrectly setting the auxilary register IBE bit, which probably causes us to hit erratum 687067 on Cortex-A8 later than r1p2. If the bootloader incorrectly sets the IBE bit in the auxilary control register for Cortex-A8 revisions with 430973 fixed in hardware, we need to call flush BTAC/BTB to avoid segfaults probably caused by erratum 687067. So let's flush BTAC/BTB unconditionally for Cortex-A8. It won't do anything unless the IBE bit is set. Note that we keep the erratum 430973 Kconfig option still around and disabled for multiarch as it may be unsafe to enable for some secure SoC. It is known safe to be enabled for n900, but won't do anything on n900 as the IBE bit needs to be set with SMC. Also note that SoCs probably should also add checks and print warnings for the misconfigured IBE bit depending on the Cortex-A8 revision so the bootloaders can be fixed Cortex-A8 revisions later than r1p2 to not set the IBE bit. Tested-by: Sebastian Reichel Signed-off-by: Tony Lindgren Signed-off-by: Russell King arch/arm/mm/proc-v7-2level.S | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 9827e8e55532f5a7967d31da847fbd3185a5b5ed Author: Krzysztof Kozlowski Date: Mon Apr 27 14:55:12 2015 +0100 ARM: 8346/1: sa1100: Constify irq_domain_ops The irq_domain_ops are not modified by the driver and the irqdomain core code accepts pointer to a const data. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Russell King arch/arm/mach-sa1100/irq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5bb5d66d89041b7891cb42617343b1e8067cc3fa Author: Peter Hurley Date: Mon Apr 13 14:18:50 2015 +0100 ARM: 8341/1: io: Unpessimize relaxed io accessors commit 195bbcac2e5c12f7fb ("ARM: 7500/1: io: avoid writeback addressing modes for __raw_ accessors") disables writeback addressing modes for raw i/o. However, the "+Q" output constraint forces the compiler to disable load hoist optimizations (because the output constraint informs the compiler of memory stores which the compiler assumes may alias other memory). Since the relaxed accessors only guarantee ordering wrt i/o accesses to the same device and not to main memory, there's never a possibility of an accessor invalidating a hoisted load (because only non-i/o loads would have been hoisted). The effect is especially noticable with complex address inputs in loops. For example, the following code: #include #include static const int *remap; void wr_loop(void __iomem *base, int c, int val) { int i; for (i = 0; i < c; i++) writew_relaxed(val, base + remap[c >> 2]); } generates current master | this patch 0: e3510000 cmp r1, #0 | 0: e3510000 cmp r1, #0 4: d12fff1e bxle lr | 4: d12fff1e bxle lr 8: e3003000 movw r3, #0 | 8: e3c1c003 bic ip, r1, #3 c: e3403000 movt r3, #0 | c: e6ff2072 uxth r2, r2 10: e92d4010 push {r4, lr} | 10: e3a03000 mov r3, #0 14: e6ff2072 uxth r2, r2 | 14: e59cc000 ldr ip, [ip] 18: e3c14003 bic r4, r1, #3 | 18: e080000c add r0, r0, ip 1c: e593e000 ldr lr, [r3] | 20: e3a03000 mov r3, #0 | 1c: e1c020b0 strh r2, [r0] | 20: e2833001 add r3, r3, #1 24: e79ec004 ldr ip, [lr, r4] | 24: e1530001 cmp r3, r1 28: e080c00c add ip, r0, ip | 28: 1afffffb bne 1c 2c: e1cc20b0 strh r2, [ip] | 2c: e12fff1e bx lr 30: e2833001 add r3, r3, #1 | 34: e1530001 cmp r3, r1 | 38: 1afffff9 bne 24 | | 3c: e8bd8010 pop {r4, pc} | Acked-by: Will Deacon Signed-off-by: Peter Hurley Signed-off-by: Russell King arch/arm/include/asm/io.h | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) commit 6b1814cde5c79c6aa4d02c9aedc14a709c2c0737 Author: Maxime Coquelin stm32 Date: Fri Apr 10 09:46:46 2015 +0100 ARM: 8340/1: ARMv7-M: Enlarge vector table up to 256 entries From Cortex-M reference manuals, the nvic supports up to 240 interrupts. So the number of entries in vectors table is up to 256. This patch adds a new config flag to specify the number of external interrupts. Some ifdeferies are added in order to respect the natural alignment without wasting too much space on smaller systems. Acked-by: Uwe Kleine-König Acked-by: Stefan Agner Tested-by: Chanwoo Choi Signed-off-by: Maxime Coquelin Signed-off-by: Russell King arch/arm/kernel/entry-v7m.S | 13 +++++++++---- arch/arm/mm/Kconfig | 15 +++++++++++++++ 2 files changed, 24 insertions(+), 4 deletions(-) commit f008db8c00c18d3125ca551e6961e7bd9aba6503 Author: Jens Kuske Date: Wed May 6 11:31:31 2015 +0200 dmaengine: sun6i: Add support for Allwinner H3 (sun8i) variant The H3 SoC has the same dma engine as the A31 (sun6i), with a reduced amount of endpoints and physical channels. Add the proper config data and compatible string to support it. Signed-off-by: Jens Kuske Acked-by: Maxime Ripard Signed-off-by: Vinod Koul Documentation/devicetree/bindings/dma/sun6i-dma.txt | 5 ++++- drivers/dma/sun6i-dma.c | 12 ++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) commit 385f83f85cd9428db82cae5e6f6f786be113b24c Author: Geert Uytterhoeven Date: Tue Apr 28 12:21:40 2015 +0200 dmaengine: Remove Renesas Audio DMAC peri peri platform data Commit 3cd44dcd35a6 ("dmaengine: remove Renesas Audio DMAC peri peri") forgot to remove the header file with the platform data definitions. Signed-off-by: Geert Uytterhoeven Acked-by: Simon Horman Signed-off-by: Vinod Koul include/linux/platform_data/dma-rcar-audmapp.h | 34 -------------------------- 1 file changed, 34 deletions(-) commit 03335e95e27fc1f2b17b05b27342ad76986b3cf0 Author: Denys Vlasenko Date: Mon Apr 27 15:21:52 2015 +0200 x86/asm/entry/64: Clean up usage of TEST insns By the nature of TEST operation, it is often possible to test a narrower part of the operand: "testl $3, mem" -> "testb $3, mem" This results in shorter insns, because TEST insn has no sign-entending byte-immediate forms unlike other ALU ops. text data bss dec hex filename 11674 0 0 11674 2d9a entry_64.o.before 11658 0 0 11658 2d8a entry_64.o Changes in object code: - f7 84 24 88 00 00 00 03 00 00 00 testl $0x3,0x88(%rsp) + f6 84 24 88 00 00 00 03 testb $0x3,0x88(%rsp) - f7 44 24 68 03 00 00 00 testl $0x3,0x68(%rsp) + f6 44 24 68 03 testb $0x3,0x68(%rsp) - f7 84 24 90 00 00 00 03 00 00 00 testl $0x3,0x90(%rsp) + f6 84 24 90 00 00 00 03 testb $0x3,0x90(%rsp) Signed-off-by: Denys Vlasenko Acked-by: Andy Lutomirski Cc: Alexei Starovoitov Cc: Borislav Petkov Cc: Brian Gerst Cc: Frederic Weisbecker Cc: H. Peter Anvin Cc: Kees Cook Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Steven Rostedt Cc: Thomas Gleixner Cc: Will Drewry Link: http://lkml.kernel.org/r/1430140912-7960-2-git-send-email-dvlasenk@redhat.com Signed-off-by: Ingo Molnar arch/x86/kernel/entry_64.S | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit dde74f2e4a4447ef838c57e407f7139de3df68cb Author: Denys Vlasenko Date: Mon Apr 27 15:21:51 2015 +0200 x86/asm/entry/64: Tidy up JZ insns after TESTs After TESTs, use logically correct JZ/JNZ mnemonics instead of JE/JNE. This doesn't change code. Signed-off-by: Denys Vlasenko Acked-by: Andy Lutomirski Cc: Alexei Starovoitov Cc: Borislav Petkov Cc: Brian Gerst Cc: Frederic Weisbecker Cc: H. Peter Anvin Cc: Kees Cook Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Steven Rostedt Cc: Thomas Gleixner Cc: Will Drewry Link: http://lkml.kernel.org/r/1430140912-7960-1-git-send-email-dvlasenk@redhat.com Signed-off-by: Ingo Molnar arch/x86/kernel/entry_64.S | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 5835aa86c32afd3e562522fd12009a0c7f10371a Author: Leonardo Carreras Date: Tue May 5 19:40:52 2015 -0400 dmaengine: pl08x: Suppress spaces in indentation Removed checkpatch reported spaces in indentation: ERROR: code indent should use tabs where possible +^I PL080_CONFIG_TC_IRQ_MASK);$ Signed-off-by: Leonardo Carreras Signed-off-by: Vinod Koul drivers/dma/amba-pl08x.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 31fd9880a1c52de8880ea49dca7848caacb4b3a3 Author: Paolo Bonzini Date: Thu Apr 2 11:04:05 2015 +0200 KVM: MMU: fix CR4.SMEP=1, CR0.WP=0 with shadow pages smep_andnot_wp is initialized in kvm_init_shadow_mmu and shadow pages should not be reused for different values of it. Thus, it has to be added to the mask in kvm_mmu_pte_write. Reviewed-by: Xiao Guangrong Signed-off-by: Paolo Bonzini arch/x86/kvm/mmu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ceee7df749da03fa17ab5dc7d06dffb4980a32db Author: Xiao Guangrong Date: Thu May 7 16:20:15 2015 +0800 KVM: MMU: fix smap permission check Current permission check assumes that RSVD bit in PFEC is always zero, however, it is not true since MMIO #PF will use it to quickly identify MMIO access Fix it by clearing the bit if walking guest page table is needed Signed-off-by: Xiao Guangrong Signed-off-by: Paolo Bonzini arch/x86/kvm/mmu.h | 2 ++ arch/x86/kvm/paging_tmpl.h | 7 +++++++ 2 files changed, 9 insertions(+) commit a4cca3b419a5081788bb7559023159e3147f66f0 Author: Heiko Carstens Date: Tue May 5 09:39:08 2015 +0200 KVM: remove pointless cpu hotplug messages On cpu hotplug only KVM emits an unconditional message that its notifier has been called. It certainly can be assumed that calling cpu hotplug notifiers work, therefore there is no added value if KVM prints a message. If an error happens on cpu online KVM will still emit a warning. So let's remove this superfluous message. Signed-off-by: Heiko Carstens Signed-off-by: Paolo Bonzini virt/kvm/kvm_main.c | 6 ------ 1 file changed, 6 deletions(-) commit 8a9781f7ad0087182c51c629335803264568ef3b Author: Jan Kiszka Date: Mon May 4 08:32:32 2015 +0200 KVM: nVMX: Fix host crash when loading MSRs with userspace irqchip vcpu->arch.apic is NULL when a userspace irqchip is active. But instead of letting the test incorrectly depend on in-kernel irqchip mode, open-code it to catch also userspace x2APICs. Signed-off-by: Jan Kiszka Signed-off-by: Paolo Bonzini arch/x86/kvm/vmx.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit acac6f89574c743796c9c947e046a0d6637d5fe2 Author: Nadav Amit Date: Sun May 3 20:22:57 2015 +0300 KVM: x86: Call-far should not be emulated as stack op Far call in 64-bit has a 32-bit operand size. Remove the marking of this operation as Stack so it can be emulated correctly in 64-bit. Signed-off-by: Nadav Amit Signed-off-by: Paolo Bonzini arch/x86/kvm/emulate.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 251eb84144ec7aba5e344fb8553c67e749655aef Author: Radim Krčmář Date: Fri Apr 10 21:47:27 2015 +0200 KVM: reuse memslot in kvm_write_guest_page Caching memslot value and using mark_page_dirty_in_slot() avoids another O(log N) search when dirtying the page. Signed-off-by: Radim Krčmář Message-Id: <1428695247-27603-1-git-send-email-rkrcmar@redhat.com> Signed-off-by: Paolo Bonzini virt/kvm/kvm_main.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit d5a7d45fb5b667fd10a225ccf11fe395fb2417d9 Author: Ksenija Stanojevic Date: Thu Apr 30 19:00:23 2015 +0200 Staging: rts5208: Replace timeval with timespec64 struct timeval tv is used to get current time. 32-bit systems using 'struct timeval' will break in the year 2038, so we have to replace that code with more appropriate types. Signed-off-by: Ksenija Stanojevic Reviewed-by: Arnd Bergmann Signed-off-by: Greg Kroah-Hartman drivers/staging/rts5208/rtsx.h | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) commit ac04b3b73bbcbee48112fb516b1fdd67d0146da5 Author: Marti Bolivar Date: Fri May 1 17:10:59 2015 -0400 staging: rtl8192u: don't redefine container_of() This file already includes . Signed-off-by: Marti Bolivar Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192u/ieee80211/ieee80211.h | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) commit ae890d511ad30a1cf01e86fe213123d3dc47b7f3 Author: Krzysztof Kozlowski Date: Sat May 2 00:43:22 2015 +0900 staging: iio: ad7606_par: 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 Acked-by: Lars-Peter Clausen Signed-off-by: Greg Kroah-Hartman drivers/staging/iio/adc/ad7606_par.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ed1c2d064a16f3cb26a00f5c523de8a073c8960c Author: Paul Gortmaker Date: Thu Apr 30 21:47:46 2015 -0400 drivers/staging: include for modular android tegra_ion code This file is built off of a tristate Kconfig option and also contains modular function calls so it should explicitly include module.h to avoid compile breakage during header shuffles done in the future. Cc: Greg Kroah-Hartman Cc: "Arve Hj�nnev�g" Cc: Riley Andrews Cc: Stephen Warren Cc: Thierry Reding Cc: Alexandre Courbot Cc: devel@driverdev.osuosl.org Cc: linux-tegra@vger.kernel.org Signed-off-by: Paul Gortmaker Signed-off-by: Greg Kroah-Hartman drivers/staging/android/ion/tegra/tegra_ion.c | 1 + 1 file changed, 1 insertion(+) commit acd442db059f63232566f72afb8f34848ff7e208 Author: Paul Gortmaker Date: Mon Apr 27 01:25:41 2015 -0400 rtl8192e: delete local copy of iee80211 reason codes. This driver has a copy of the standard reason codes from the file but with slightly different name fields. Delete the local copy and remap the only two use cases onto the names used by the global implementation with the same values. Signed-off-by: Paul Gortmaker Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 3 ++- drivers/staging/rtl8192e/rtllib.h | 39 ---------------------------- drivers/staging/rtl8192e/rtllib_softmac.c | 3 ++- 3 files changed, 4 insertions(+), 41 deletions(-) commit 09e0b2ff32538a032936631ad9c110c42fab7f26 Author: Paul Gortmaker Date: Mon Apr 27 01:25:40 2015 -0400 rtl8192u: delete another embedded instance of generic reason codes We have global copies of all these reason codes. We don't need local copies. Worse is that these seem totally unused; a grep for some of the fields comes up empty, and it still compiles after its complete removal. Signed-off-by: Paul Gortmaker Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192u/ieee80211/ieee80211.h | 48 -------------------------- 1 file changed, 48 deletions(-) commit db2616199e63c65373869224cc7c566b5db89a88 Author: Paul Gortmaker Date: Mon Apr 27 01:25:39 2015 -0400 rtl8192u: don't duplicate ieee80211 constants for status/auth/reason These are all defined as a part of the standard and should not be duplicated on a per-driver basis. Use the global ones and delete the local ones. In switching to we have to delete a local copy of an identical struct that we prepped earlier to have identical field names, and we add explicit include <...> where needed in order to preserve getting a successful compile. This isn't the totality of duplicated data removed, but it is a start. Signed-off-by: Paul Gortmaker Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192u/ieee80211/ieee80211.h | 77 +------------------------- 1 file changed, 1 insertion(+), 76 deletions(-) commit 7c6e3f24c3e506d0e20b07ec8a2e7778b1294ca6 Author: Paul Gortmaker Date: Mon Apr 27 01:25:38 2015 -0400 rtl8192u: align local ieee80211_wmm_ac_param struct fields with global The and this local file both have a struct of the same name. They also have the same field sizes and generally the same fields, as can be seen here: ~/git/linux-head$ git grep -A4 'struct ieee80211_wmm_ac_param {' drivers/staging/rtl8192u/ieee80211/ieee80211.h:struct ieee80211_wmm_ac_param { drivers/staging/rtl8192u/ieee80211/ieee80211.h- u8 ac_aci_acm_aifsn; drivers/staging/rtl8192u/ieee80211/ieee80211.h- u8 ac_ecwmin_ecwmax; drivers/staging/rtl8192u/ieee80211/ieee80211.h- u16 ac_txop_limit; drivers/staging/rtl8192u/ieee80211/ieee80211.h-}; -- include/linux/ieee80211.h:struct ieee80211_wmm_ac_param { include/linux/ieee80211.h- u8 aci_aifsn; /* AIFSN, ACM, ACI */ include/linux/ieee80211.h- u8 cw; /* ECWmin, ECWmax (CW = 2^ECW - 1) */ include/linux/ieee80211.h- __le16 txop_limit; include/linux/ieee80211.h-} __packed; ~/git/linux-head$ Here we just align the local field names with the main system one. Then we can add an include of the system one and delete the local copy in one smooth step in a follow-on commit. Not that the replacement: for i in `find . -name '*.[ch]'` ; do sed -i 's/ac_aci_acm_aifsn/aci_aifsn/g' $i ; done for i in `find . -name '*.[ch]'` ; do sed -i 's/ac_ecwmin_ecwmax/cw/g' $i ; done for i in `find . -name '*.[ch]'` ; do sed -i 's/ac_txop_limit/txop_limit/g' $i ; done implicitly shows that only one of the three fields is currently used. Signed-off-by: Paul Gortmaker Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192u/ieee80211/ieee80211.h | 6 +++--- drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) commit d140d6a15b9d88ac89f4a83c944ab67656fa4b50 Author: Paul Gortmaker Date: Mon Apr 27 01:25:37 2015 -0400 rtl8192u: promote auth_mode to a full 8 bits Currently LEAP is defined to two locally but the identically named global constant is 128 in . In order for us to switch over to using the global value, we need to adjust the local storage which is currently not enough to hold the larger value. This is now consistent with the similar struct used in drivers/net/wireless/ipw2x00/libipw.h and other drivers. Signed-off-by: Paul Gortmaker Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192u/ieee80211/ieee80211.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5c2918a5ba83c3805f96490de07aee36c16a27b6 Author: Paul Gortmaker Date: Mon Apr 27 01:25:36 2015 -0400 rtl8192u: don't trample on struct namespace In order to start reducing the duplicated code/constants/macros in this driver, we need to include to provide the defacto versions. However this driver has structs with the same name as the ones in the main include, so namespace collision prevents us from doing step #1. Since the structs actually differ in their respective fields, we can't simply delete the local ones without impacting the runtime; a conversion to use the global ones can be considered at a later date if desired. Rename the ones here with a vendor specific prefix so that we won't have the namespace collision, and hence can continue on with the cleanup. Automated conversion done with: for i in `find . -name '*.[ch]'` ; do \ sed -i 's/struct ieee80211_hdr/struct rtl_80211_hdr/g' $i ; \ done Signed-off-by: Paul Gortmaker Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192u/ieee80211/ieee80211.h | 44 +++++++------- .../rtl8192u/ieee80211/ieee80211_crypt_ccmp.c | 10 ++-- .../rtl8192u/ieee80211/ieee80211_crypt_tkip.c | 26 ++++----- drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c | 68 +++++++++++----------- .../staging/rtl8192u/ieee80211/ieee80211_softmac.c | 32 +++++----- drivers/staging/rtl8192u/ieee80211/ieee80211_tx.c | 14 ++--- .../staging/rtl8192u/ieee80211/rtl819x_BAProc.c | 48 +++++++-------- drivers/staging/rtl8192u/r8192U_core.c | 12 ++-- 8 files changed, 127 insertions(+), 127 deletions(-) commit f9c40f143c257c2f3a7e90914e160f1a50f54f49 Author: Paul Gortmaker Date: Mon Apr 27 01:25:35 2015 -0400 rtl8712: don't duplicate ieee80211 constants for status/reason These are all defined as a part of the standard and should not be duplicated on a per-driver basis. Use the global ones and delete the local ones. It seems that ieee80211 was already included everywhere it was needed, since no explicit include <...> were needed to be added in order to preserve getting a successful compile. This isn't the totality of duplicated data removed, but it is a start. Signed-off-by: Paul Gortmaker Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8712/ieee80211.h | 29 ----------------------------- 1 file changed, 29 deletions(-) commit 04fbf979b39b2805cb0da8a373f7f6e6b0e05bd9 Author: Paul Gortmaker Date: Mon Apr 27 01:25:34 2015 -0400 rtl8188eu: don't duplicate ieee80211 constants for status/reason These are all defined as a part of the standard and should not be duplicated on a per-driver basis. Use the global ones and delete the local ones. Note that a couple of them had slight wording differences, things like INVALID vs. NOT_VALID or similar, so they are aligned with the global naming conventions here, as dictated by compile testing. This isn't the totality of duplicated data removed, but it is a start. Signed-off-by: Paul Gortmaker Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/core/rtw_ap.c | 2 + drivers/staging/rtl8188eu/core/rtw_mlme_ext.c | 10 ++-- drivers/staging/rtl8188eu/core/rtw_recv.c | 2 + drivers/staging/rtl8188eu/include/ieee80211.h | 29 +--------- drivers/staging/rtl8188eu/include/wifi.h | 77 -------------------------- drivers/staging/rtl8188eu/os_dep/ioctl_linux.c | 2 + 6 files changed, 13 insertions(+), 109 deletions(-) commit d4855fe18e2d80ed87736fb8326e1bbd19c02dbb Author: Guillaume Brogi Date: Sun Apr 26 14:40:23 2015 +0200 staging: vt6655: Checkpatch fix: lines longer than 80 columns This patch fixes lines longer than 80 columns in mac.c. 5 lines longer than 80 columns remain for the sake of readability. Signed-off-by: Guillaume Brogi Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6655/mac.c | 49 +++++++++++++++++++++++++++++--------------- 1 file changed, 32 insertions(+), 17 deletions(-) commit d8496fb4939962445a10e370a23c81185f242900 Author: Sudip Mukherjee Date: Thu Apr 23 19:08:17 2015 +0530 staging: sm7xxfb: remove unused functions removed the smtc_alloc_fb_info() and smtc_free_fb_info() functions which were not used anymore. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/sm7xxfb/sm7xxfb.c | 32 -------------------------------- 1 file changed, 32 deletions(-) commit cd14ad8be7c521db39f031ab99393360eac553ce Author: Sudip Mukherjee Date: Thu Apr 23 19:08:16 2015 +0530 staging: sm7xxfb: use framebuffer_alloc and release use the standard framebuffer_alloc() and framebuffer_release() instead of custom defined function. for making that change we had to change a member of the private structure from a variable to pointer and had to touch almost all places of the file. since fb was changed into a pointer so all instance of "sfb->fb." has been changed into "sfb->fb->". now we will get build warning about smtc_alloc_fb_info() and smtc_free_fb_info() to be unused which will be removed in the next patch of the series. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/sm7xxfb/sm7xxfb.c | 208 ++++++++++++++++++++------------------ 1 file changed, 110 insertions(+), 98 deletions(-) commit cf376ec0ee5c2078d99a60aadd742232f725b451 Author: Gujulan Elango, Hari Prasath (H.) Date: Fri Apr 24 06:58:11 2015 +0000 staging: gsc_hdpi: Remove dead code This patch removes commented code from this driver. Signed-off-by: Hari Prasath Gujulan Elango Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/gsc_hpdi.c | 7 ------- 1 file changed, 7 deletions(-) commit 2b9a9d49b30d403191ac00d04678720a4f600ecd Author: Gujulan Elango, Hari Prasath (H.) Date: Thu Apr 23 13:03:07 2015 +0000 staging: fsl-mc: Remove redundant initalization of the .owner field This patch removes the redundant static initialization of the .owner field from this driver as it is being overidden by the call from the platform driver register Signed-off-by: Hari Prasath Signed-off-by: Greg Kroah-Hartman drivers/staging/fsl-mc/bus/mc-bus.c | 1 - 1 file changed, 1 deletion(-) commit 6c20d83b3d756233cc3cdf4fb2f5771ceae3d921 Author: Binbin Zhou Date: Wed Apr 22 11:37:26 2015 +0800 staging: sm750: Fix the Makefile option error The sm750fb's Kconfig option is CONFIG_FB_SM750, not CONFIG_FB_SM7XX. Thus fix it to make the sm750fb can be built successfully. Signed-off-by: Binbin Zhou Reviewed-by: Huacai Chen Acked-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4b248ab2dd818cc0cec819719cf24c838194685a Author: Luca Ceresoli Date: Thu Apr 16 23:28:07 2015 +0200 staging: rtl8188eu: remove commented code This code is commented since the initial commit. Probably it is a remnant of old code. Signed-off-by: Luca Ceresoli Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/os_dep/os_intfs.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 2f13617a35d9b13e0fe4e5ba27214de4b7fdd9eb Author: Luca Ceresoli Date: Thu Apr 16 23:28:06 2015 +0200 staging: rtl8188eu: remove useless comment "step 2" does mean much as there is no "step 1" stated anywhere... Signed-off-by: Luca Ceresoli Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/os_dep/os_intfs.c | 1 - 1 file changed, 1 deletion(-) commit 471450531c3942d202680f82055f96a8d74c167f Author: Luca Ceresoli Date: Thu Apr 16 23:28:05 2015 +0200 staging: rtl8188eu: fix lines over 80 characters Signed-off-by: Luca Ceresoli Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/os_dep/os_intfs.c | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) commit 6c4743f7d639cdc810e6536a7d2832aab433ad08 Author: Luca Ceresoli Date: Thu Apr 16 23:28:04 2015 +0200 staging: rtl8188eu: simplify nested ifs Signed-off-by: Luca Ceresoli Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/os_dep/os_intfs.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit 2ff4e79f0ed3573515a49af8f91e64d669a41dac Author: Luca Ceresoli Date: Thu Apr 16 23:28:03 2015 +0200 staging: rtl8188eu: document enum where it is declared The comment "/* open system */" is repeated verbatim in several places where dot11AuthAlgrthm_Open is referenced, but not where it is declared. Move it to be only at its declaration. This also fixes some "line over 80 characters" checkpatch warnings. Signed-off-by: Luca Ceresoli Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/include/rtw_mlme.h | 2 +- drivers/staging/rtl8188eu/os_dep/ioctl_linux.c | 6 +++--- drivers/staging/rtl8188eu/os_dep/mlme_linux.c | 2 +- drivers/staging/rtl8188eu/os_dep/os_intfs.c | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) commit 22a1279b84d21701a59f2407dec9ad8c0481ec8f Author: Luca Ceresoli Date: Thu Apr 16 23:28:02 2015 +0200 staging: rtl8188eu: fix comments over 80 characters Signed-off-by: Luca Ceresoli Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/os_dep/os_intfs.c | 38 ++++++++++++++++++++++------- 1 file changed, 29 insertions(+), 9 deletions(-) commit 3446ef56f84a9fb97b59f463fa5c77444a86ad4f Author: Luca Ceresoli Date: Thu Apr 16 23:28:01 2015 +0200 staging: rtl8188eu: remove duplicated comments There are identical comments near the static variable declaration, around lines 118~120. Signed-off-by: Luca Ceresoli Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/os_dep/os_intfs.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 95829dcbeeba19146f7321658d311146399bef5d Author: Edward Lipinsky Date: Sat Apr 18 09:35:19 2015 -0700 Staging: rtl8723au: hal: Remove trailing whitespace in odm.c This patch fixes the checkpatch.pl error: ERROR: trailing whitespace Signed-off-by: Edward Lipinsky Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8723au/hal/odm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ec80e2428046d022dc6cbffd674ece81513ac96d Author: Wei Yongjun Date: Thu Apr 16 21:08:38 2015 +0800 staging: dt3155v4l: remove unused including Remove including that don't need it. Signed-off-by: Wei Yongjun Signed-off-by: Greg Kroah-Hartman drivers/staging/media/dt3155v4l/dt3155v4l.c | 1 - 1 file changed, 1 deletion(-) commit 81fb0b901397588d01219764adb5e674eacc4f8b Author: Phong Tran Date: Fri Apr 3 21:07:02 2015 +0700 staging: android: ion_test: unregister the platform device The driver has to unregister from platform device when it's unloaded Signed-off-by: Phong Tran Signed-off-by: Greg Kroah-Hartman drivers/staging/android/ion/ion_test.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 954c2d8f982fe188740f11cb4a00881d5325e89e Author: Phong Tran Date: Fri Apr 3 21:07:01 2015 +0700 staging: android: ion_test: unregister the misc device Add the remove() method for deregister from misc device when it's unloaded. Signed-off-by: Phong Tran Signed-off-by: Greg Kroah-Hartman drivers/staging/android/ion/ion_test.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit a569f22007f51db92304af05cda096ae1ad8844f Author: Mateusz Kulikowski Date: Mon Apr 13 23:47:32 2015 +0200 staging: rtl8192e: Fix DeviceID in rtl8192_pci_findadapter() rtl8192_pci_findadapter() was looking for invalid DeviceID (0x8172), instead of proper for rtl8192e/se devices (0x8192) Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_pci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit eae10b8ea5c08115d0eccd8adc89794c5a41727a Author: Mateusz Kulikowski Date: Mon Apr 13 23:47:31 2015 +0200 staging: rtl8192e: Fix DEEP_INDENTATION warnings in rtl_dm.c Separate parts of dm_TXPowerTrackingCallback_TSSI() into two new functions: - dm_tx_update_tssi_weak_signal() - dm_tx_update_tssi_strong_signal() Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 180 +++++++++++++++-------------- 1 file changed, 95 insertions(+), 85 deletions(-) commit fbb052f9fe6839ff85839d729ae1f44ff7c03760 Author: Mateusz Kulikowski Date: Mon Apr 13 23:47:30 2015 +0200 staging: rtl8192e: Fix DEEP_INDENTATION warnings in rtllib_parse_info_param() - Replace ?: with min_t - Remove condition that is always true Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtllib_rx.c | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) commit 867ebbaebc9c670a6b590fc54d4a49a8ed4a1e19 Author: Mateusz Kulikowski Date: Mon Apr 13 23:47:29 2015 +0200 staging: rtl8192e: Fix LINE_SPACING warning Trivial fix - add newline in dm_InitializeTXPowerTracking_TSSI() Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 1 + 1 file changed, 1 insertion(+) commit 20b7ec099007e31bc52b79c36673af307bd54752 Author: Mateusz Kulikowski Date: Mon Apr 13 23:47:28 2015 +0200 staging: rtl8192e: Remove bb tx gains from r8192_priv r8192_priv structure had 2 big arrays with tx gain register values: - cck_txbbgain_table - cck_txbbgain_ch14_table - txbbgain_table This arrays were read-only - filled in driver init code and look like firmware/chip-specific. This patch removes them from r8192_priv and puts them in (global) variables. tx_bb_gain is also flattened - register values are stored in array; Amplification value can be calculated using dm_tx_bb_gain_idx_to_amplify(). Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 5 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.h | 14 - drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 674 +++++-------------------- drivers/staging/rtl8192e/rtl8192e/rtl_dm.h | 9 + 4 files changed, 151 insertions(+), 551 deletions(-) commit f669228512e533468437a1058ef11303afa4e878 Author: Mateusz Kulikowski Date: Mon Apr 13 23:47:27 2015 +0200 staging: rtl8192e: Fix SPACING errors Fix several SPACING errors to make checkpatch happy. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 6 +++--- drivers/staging/rtl8192e/rtl8192e/rtl_core.h | 6 +++--- drivers/staging/rtl8192e/rtllib_debug.h | 3 +-- drivers/staging/rtl8192e/rtllib_rx.c | 2 +- 5 files changed, 9 insertions(+), 10 deletions(-) commit aedd45dfd2385dfcaceecdb1037b3a7a20874fe5 Author: Mateusz Kulikowski Date: Mon Apr 13 23:47:26 2015 +0200 staging: rtl8192e: remove r819xE_phyreg.h This file is not used and its contents are duplicated in r8192E_phyreg.h. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r819xE_phyreg.h | 908 ---------------------- 1 file changed, 908 deletions(-) commit 27a3071c6dc3e348fad445205e21d0b5d6b7a4e5 Author: Mateusz Kulikowski Date: Mon Apr 13 23:47:25 2015 +0200 staging: rtl8192e: Copy comments from r819XE_phyreg.h to r8192E_phyreg.h Both files have the same contents (with the exception of comments). One of them will not survive future commits. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_phyreg.h | 92 ++++++++++++++++------- 1 file changed, 65 insertions(+), 27 deletions(-) commit 7b7b0c9bbcc6b15e11998b6c644f31a24e3897c0 Author: Mateusz Kulikowski Date: Mon Apr 13 23:47:24 2015 +0200 staging: rtl8192e: Fix SPACE_BEFORE_TAB warnings Reformat r8192E_phyreg.h to make checkpatch happy. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_phyreg.h | 1442 ++++++++++----------- 1 file changed, 721 insertions(+), 721 deletions(-) commit bdc01d5711b33444a23dde3334cc24a0fe97d917 Author: Nickolaus Woodruff Date: Sun Apr 12 12:42:03 2015 -0400 staging: rtl8192u: Make core functions static This patch fixes the following sparse warnings in r8192U_core.c: CHECK drivers/staging/rtl8192u/r8192U_core.c drivers/staging/rtl8192u/r8192U_core.c:3212:6: warning: symbol 'rtl819x_watchdog_wqcallback' was not declared. Should it be static? drivers/staging/rtl8192u/r8192U_core.c:3276:6: warning: symbol 'watch_dog_timer_callback' was not declared. Should it be static? drivers/staging/rtl8192u/r8192U_core.c:3282:5: warning: symbol '_rtl8192_up' was not declared. Should it be static? drivers/staging/rtl8192u/r8192U_core.c:3333:5: warning: symbol 'rtl8192_close' was not declared. Should it be static? drivers/staging/rtl8192u/r8192U_core.c:3406:6: warning: symbol 'rtl8192_restart' was not declared. Should it be static? drivers/staging/rtl8192u/r8192U_core.c:4618:6: warning: symbol 'rtl8192_irq_rx_tasklet' was not declared. Should it be static? drivers/staging/rtl8192u/r8192U_core.c:4736:6: warning: symbol 'rtl8192_cancel_deferred_work' was not declared. Should it be static? Signed-off-by: Nickolaus Woodruff Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192u/r8192U_core.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 3ad94703419df346d1435da5c75aa4a9117753b9 Author: Ian Abbott Date: Fri May 1 18:04:03 2015 +0100 staging: comedi: mite: use a better MODULE_DESCRIPTION() Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/mite.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f2348c736989c417fb465f569e1c9e120d04d742 Author: Ian Abbott Date: Fri May 1 18:04:02 2015 +0100 staging: comedi: mite.h: whitespace changes in function declarations Reformat some function declarations to avoid bunching up near column 80. Also add a blank line after a `struct` definition. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/mite.h | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) commit 65f6fac914b5710ef42ef2702ddf00b06cf9e607 Author: Ian Abbott Date: Fri May 1 18:04:01 2015 +0100 staging: comedi: mite.c: reformat comments Use the usual style for block comments. Squash double spaces after comment opening sequences. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/mite.c | 105 +++++++++++++++++----------------- 1 file changed, 54 insertions(+), 51 deletions(-) commit f751a0d5039732b439e7c21866f23a9762ebd94e Author: Ian Abbott Date: Fri May 1 18:04:00 2015 +0100 staging: comedi: mite.h: reformat some comments Use the usual style for block comments. Squash double spaces after comment opening sequences. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/mite.h | 59 ++++++++++++++++++----------------- 1 file changed, 30 insertions(+), 29 deletions(-) commit c95f212de8ff7f5058ab2c1eb60b8e79d341111b Author: Ian Abbott Date: Fri May 1 18:03:59 2015 +0100 staging: comedi: mite.h: remove "../comedi_pci.h" and make self-reliant "mite.h" relies on a lot of things declared including "../comedi_pci.h", but doesn't need anything in "../comedi_pci.h" itself. None of the Comedi modules that include "mite.h" rely on it to include "../comedi_pci.h" on their behalf. Remove the inclusion of "../comedi_pci.h" from "mite.h", and add enough other includes and (incomplete) `struct` declarations to make it compile without warnings or errors even when included first in a .c file. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/mite.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit c0cb606a3456ca956431e7b554c29f0212475e98 Author: Ian Abbott Date: Fri May 1 18:03:58 2015 +0100 staging: comedi: mite.c: remove commented out USE_KMALLOC The definition of the macro `USE_KMALLOC` is commented out, and nothing refers to it. Remove the commented out macro. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/mite.c | 2 -- 1 file changed, 2 deletions(-) commit 5f7c682226c3601649e59c5d3bcaf1c8e6a6ca33 Author: Ian Abbott Date: Fri May 1 18:03:57 2015 +0100 staging: comedi: mite.h: remove PCIMIO_COMPAT The macro `PCIMIO_COMPAT` is defined, but never used. Remove it. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/mite.h | 2 -- 1 file changed, 2 deletions(-) commit 272b1ae57828b99c932d518da6f174bcb72b87f7 Author: Ian Abbott Date: Fri May 1 18:03:56 2015 +0100 staging: comedi: mite: move #include The Comedi driver modules build fine if the inclusion of is removed from "mite.h", so remove it. However, since "mite.c" calls `kzalloc()`, include there. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/mite.c | 1 + drivers/staging/comedi/drivers/mite.h | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) commit eef94f6b7bff013d4efbc5d8ba1eefcd5a88734d Author: Giedrius Statkevičius Date: Fri Apr 10 17:48:55 2015 +0300 staging: dgnc: remove redundant check count doesn't get changed in between identical checks in dgnc_tty_write() so remove the second check Signed-off-by: Giedrius Statkevičius Signed-off-by: Greg Kroah-Hartman drivers/staging/dgnc/dgnc_tty.c | 6 ------ 1 file changed, 6 deletions(-) commit a74d8e21679cdb2b087ff386c34e874af8bac77a Author: Giedrius Statkevičius Date: Fri Apr 10 17:48:54 2015 +0300 staging: dgnc: remove dead code in dgnc_tty_write() Remove the dead code protected by in_user in dgnc_tty_write() because it is set to 0 and never changed to 1 thus the code in ifs never gets executed. Signed-off-by: Giedrius Statkevičius Signed-off-by: Greg Kroah-Hartman drivers/staging/dgnc/dgnc_tty.c | 45 +---------------------------------------- 1 file changed, 1 insertion(+), 44 deletions(-) commit dc44f4e17c475230535f50011ab1f45b696b393b Author: Mitchel Humpherys Date: Thu Apr 9 18:10:03 2015 -0700 staging: ion: chunk_heap: use pr_debug for heap creation print We're currently printing to the kernel log at `info' level when we successfully create the chunk heap, but success messages should be done at `debug' level. Fix this. Signed-off-by: Mitchel Humpherys Signed-off-by: Greg Kroah-Hartman drivers/staging/android/ion/ion_chunk_heap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 071494d832ae2e7a318f86e8d9854ee26b8f1134 Author: Giedrius Statkevičius Date: Fri Apr 10 02:42:31 2015 +0300 staging: dgnc: remove redundant !ch checks Remove checks that are redundant since we don't have boards with partially initialized ->channels[i]. Signed-off-by: Giedrius Statkevičius Signed-off-by: Greg Kroah-Hartman drivers/staging/dgnc/dgnc_cls.c | 4 +--- drivers/staging/dgnc/dgnc_neo.c | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) commit ce2927e9a3b325b92acfeab66632f9a38d572722 Author: Giedrius Statkevičius Date: Fri Apr 10 02:42:30 2015 +0300 staging: dgnc: don't forget to check if ->channels[i] is NULL in dgnc_tty_uninit() Add a check if ->channels[i] is NULL because a NULL pointer may be dereferenced in case one of the allocations failed Reported-by: Dan Carpenter Signed-off-by: Giedrius Statkevičius Signed-off-by: Greg Kroah-Hartman drivers/staging/dgnc/dgnc_tty.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit fa52d96c3ea110acb77e51c856ec0b54606cc17e Author: Giedrius Statkevičius Date: Fri Apr 10 02:42:29 2015 +0300 staging: dgnc: clean up allocation of ->channels[i] Check if kzalloc fails in dgnc_tty_init() and if it does then free all previously allocated ->channels[i] and set them to NULL. This makes the code less error/bug prone because instead of needing programmers attention to add checks everywhere we do that in one place. Also, remove a bogus comment and check in the same loop because ->channels[i] isn't allocated anywhere else. Finally, remove a unnecessary check if ->channels[i] is NULL in the next loop because it can't be. Signed-off-by: Giedrius Statkevičius Signed-off-by: Greg Kroah-Hartman drivers/staging/dgnc/dgnc_tty.c | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) commit 258f6a5005b2b113888e3435453ace3de552d1d1 Author: Robin Karlsson Date: Fri Apr 10 00:12:16 2015 +0200 Staging: sm750fb: Fix spelling error in TODO Fixed spelling error in TODO. Signed-off-by: Robin Karlsson Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/TODO | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 31296ba5c0f8a079f7f874e6cc0b22312539a550 Author: Amitoj Kaur Chawla Date: Wed Apr 8 22:25:06 2015 +0530 Staging: sm750fb: Remove space after parenthesis Fixed error by removing space after open parenthesis '(' Problem found using checkpatch.pl ERROR: space prohibited after that open parenthesis '(' Signed-off-by: Amitoj Kaur Chawla Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/ddk750_chip.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 86b4e7e270d9c08bfbcd0d8ed67ddded8ee35345 Author: Giedrius Statkevičius Date: Wed Apr 8 16:37:15 2015 +0300 staging: dgnc: remove some dead code from dgnc_tty.c Remove some dead code that will never be executed or which serves no purpose Signed-off-by: Giedrius Statkevičius Signed-off-by: Greg Kroah-Hartman drivers/staging/dgnc/dgnc_tty.c | 16 ---------------- 1 file changed, 16 deletions(-) commit 69e98df78271a71b688706dccf2ad4544d63a274 Author: Carlos E. Garcia Date: Fri Apr 24 09:40:42 2015 -0400 Staging: fixed multiple spelling errors. Fixed multiple spelling errors. Signed-off-by: Carlos E. Garcia Signed-off-by: Greg Kroah-Hartman drivers/staging/android/ion/ion_priv.h | 6 +++--- drivers/staging/android/uapi/ion.h | 2 +- drivers/staging/comedi/comedi_fops.c | 2 +- drivers/staging/dgnc/TODO | 6 +++--- drivers/staging/dgnc/dgnc_neo.c | 2 +- drivers/staging/emxx_udc/emxx_udc.c | 2 +- drivers/staging/fbtft/Kconfig | 2 +- drivers/staging/fwserial/dma_fifo.c | 2 +- drivers/staging/fwserial/fwserial.h | 2 +- drivers/staging/iio/Documentation/device.txt | 2 +- drivers/staging/iio/iio_simple_dummy.h | 2 +- drivers/staging/lustre/TODO | 2 +- drivers/staging/media/bcm2048/radio-bcm2048.c | 4 ++-- drivers/staging/octeon-usb/octeon-hcd.c | 4 ++-- drivers/staging/octeon-usb/octeon-hcd.h | 2 +- drivers/staging/rtl8188eu/include/rtl8188e_hal.h | 4 ++-- drivers/staging/rtl8192u/r8192U_dm.c | 2 +- drivers/staging/rtl8712/rtl8712_xmit.c | 2 +- drivers/staging/rtl8712/rtl871x_mp_phy_regdef.h | 2 +- drivers/staging/rtl8723au/hal/HalPwrSeqCmd.c | 2 +- drivers/staging/rtl8723au/hal/odm.c | 2 +- drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c | 2 +- drivers/staging/rtl8723au/hal/rtl8723a_phycfg.c | 2 +- drivers/staging/rtl8723au/hal/rtl8723a_rf6052.c | 4 ++-- drivers/staging/rtl8723au/hal/rtl8723au_xmit.c | 2 +- drivers/staging/rtl8723au/hal/usb_halinit.c | 2 +- drivers/staging/rtl8723au/include/odm_debug.h | 2 +- drivers/staging/rtl8723au/include/rtl8723a_hal.h | 2 +- drivers/staging/rtl8723au/include/rtw_cmd.h | 2 +- drivers/staging/rtl8723au/include/rtw_mlme.h | 10 +++++----- drivers/staging/rtl8723au/include/rtw_mlme_ext.h | 2 +- drivers/staging/rtl8723au/include/sta_info.h | 2 +- drivers/staging/sm750fb/ddk750_help.h | 2 +- drivers/staging/sm750fb/ddk750_mode.c | 2 +- drivers/staging/sm750fb/ddk750_reg.h | 4 ++-- drivers/staging/sm750fb/ddk750_sii164.c | 4 ++-- drivers/staging/sm750fb/readme | 8 ++++---- drivers/staging/sm750fb/sm750.c | 12 ++++++------ drivers/staging/sm750fb/sm750_accel.c | 4 ++-- drivers/staging/sm750fb/sm750_hw.h | 2 +- drivers/staging/unisys/include/guestlinuxdebug.h | 2 +- drivers/staging/vt6655/rxtx.c | 2 +- 42 files changed, 65 insertions(+), 65 deletions(-) commit 02eb884f4e26a8649724fdf236822d371998f2bb Author: Tolga Ceylan Date: Fri May 1 23:40:35 2015 -0700 drivers: staging: fbtft: fbtft-bus.c: Fix different address space warning on I/O mem To fix sparse warning of incorrect type in assignment (different address space), added annotation __iomem to vmem8 and modified direct reads with ioread8(). Signed-off-by: Tolga Ceylan Signed-off-by: Greg Kroah-Hartman drivers/staging/fbtft/fbtft-bus.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit bae97e81102d281c92b00c44d43304be3ae3c0a6 Author: Julia Lawall Date: Sun May 3 15:21:44 2015 +0200 staging/lustre/ptlrpc: Replace OBD_CPT_ALLOC etc by kzalloc_node Replace OBD_CPT_ALLOC, OBD_CPT_ALLOC_PTR, and OBD_CPT_ALLOC_GFP by corresponding calls to kzalloc_node. The semantic patch for the OBD_CPT_ALLOC case is as follows: (http://coccinelle.lip6.fr/). // @@ expression ptr,cptab,cpt,size; @@ - OBD_CPT_ALLOC(ptr, cptab, cpt, size) + ptr = kzalloc_node(size, GFP_NOFS, cfs_cpt_spread_node(cptab, cpt)) // Note that the original OBD macros would check if the cptab argument was NULL and fall back on kzalloc in that case. Oleg Drokin argues that this test is not needed because the code containing these calls is only invoked after initialization has been completed, in which case the possible cptab arguments are not NULL. Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/ptlrpc/service.c | 27 +++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) commit b18d11003d8d161b251ad70375d23297beb51c4e Author: Julia Lawall Date: Sun May 3 15:21:43 2015 +0200 drivers: staging: lustre: lustre: Replace OBD_CPT_ALLOC etc by kzalloc_node Replace OBD_CPT_ALLOC, OBD_CPT_ALLOC_PTR, and OBD_CPT_ALLOC_GFP by corresponding calls to kzalloc_node. The semantic patch for the OBD_CPT_ALLOC case is as follows: (http://coccinelle.lip6.fr/). // @@ expression ptr,cptab,cpt,size; @@ - OBD_CPT_ALLOC(ptr, cptab, cpt, size) + ptr = kzalloc_node(size, GFP_NOFS, cfs_cpt_spread_node(cptab, cpt)) // Note that the original OBD macros would check if the cptab argument was NULL and fall back on kzalloc in that case. Oleg Drokin argues that this test is not needed because the code containing these calls is only invoked after initialization has been completed, in which case the possible cptab arguments are not NULL. Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/ptlrpc/nrs_fifo.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit e3bf447a81d7a134581fbae11d9f937c5f39aed1 Author: Julia Lawall Date: Sun May 3 15:21:42 2015 +0200 staging: lustre: ptlrpc: Replace OBD_CPT_ALLOC etc by kzalloc_node Replace OBD_CPT_ALLOC, OBD_CPT_ALLOC_PTR, and OBD_CPT_ALLOC_GFP by corresponding calls to kzalloc_node. The semantic patch for the OBD_CPT_ALLOC case is as follows: (http://coccinelle.lip6.fr/). // @@ expression ptr,cptab,cpt,size; @@ - OBD_CPT_ALLOC(ptr, cptab, cpt, size) + ptr = kzalloc_node(size, GFP_NOFS, cfs_cpt_spread_node(cptab, cpt)) // Note that the original OBD macros would check if the cptab argument was NULL and fall back on kzalloc in that case. Oleg Drokin argues that this test is not needed because the code containing these calls is only invoked after initialization has been completed, in which case the possible cptab arguments are not NULL. Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/ptlrpc/nrs.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) commit 207e99c20f029b8ad9784fdb3b857e0a673db949 Author: Julia Lawall Date: Fri May 1 21:37:47 2015 +0200 staging: lustre: ptlrpc: service: remove unneeded null test before free Kfree can cope with a null argument, so drop null tests. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ expression ptr; @@ - if (ptr != NULL) kfree(ptr); @@ expression ptr; @@ - if (ptr != NULL) { kfree(ptr); ptr = NULL; - } // In the first case, specific labels are introduced to free only what is needed. Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/ptlrpc/service.c | 39 +++++++++----------------- 1 file changed, 14 insertions(+), 25 deletions(-) commit 76372381dd6f5ed4b53fae0c00666e25680e21c5 Author: Julia Lawall Date: Fri May 1 21:37:48 2015 +0200 staging: lustre: ptlrpc: sec_plain: remove unneeded null test before free Kfree can cope with a null argument, so drop null tests. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ expression ptr; @@ - if (ptr != NULL) kfree(ptr); // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/ptlrpc/sec_plain.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 848e90c332f500344a248e3dd673e61b8ad58ce0 Author: Julia Lawall Date: Fri May 1 21:37:49 2015 +0200 Staging: lustre: ptlrpc: lproc_ptlrpc: remove unneeded null test before free Kfree can cope with a null argument, so drop null tests. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ expression ptr; @@ - if (ptr != NULL) kfree(ptr); // In the first case, the only cleanup needed is the unlock, so jump to that directly. Likewise, in the first two failure cases of ptlrpc_lprocfs_nrs_seq_write, no cleanup is needed, so just drop the goto and return directly. Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman .../staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c | 26 ++++++++-------------- 1 file changed, 9 insertions(+), 17 deletions(-) commit 59e267c07b887015d13ec65167b75b2441d04109 Author: Julia Lawall Date: Fri May 1 21:37:50 2015 +0200 Staging: lustre: osc: remove unneeded null test before free Kfree can cope with a null argument, so drop null tests. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ expression ptr; @@ - if (ptr != NULL) kfree(ptr); // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/osc/osc_request.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 627ef6ea9a0678b1ad74d01c6ff3f5fbefa41a42 Author: Julia Lawall Date: Fri May 1 21:37:51 2015 +0200 staging: lustre: obdecho: remove unneeded null test before free Kfree can cope with a null argument, so drop null tests. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ expression ptr; @@ - if (ptr != NULL) kfree(ptr); // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/obdecho/echo_client.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 7713e5f5e5f5949f88eed24b1a76f3af39177b8c Author: Julia Lawall Date: Fri May 1 21:37:52 2015 +0200 staging: lustre: obdclass: obd_mount: remove unneeded null test before free Kfree can cope with a null argument, so drop null tests. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ expression ptr; @@ - if (ptr != NULL) kfree(ptr); @@ expression ptr; @@ - if (ptr != NULL) { kfree(ptr); ptr = NULL; - } // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/obdclass/obd_mount.c | 45 ++++++++-------------- 1 file changed, 15 insertions(+), 30 deletions(-) commit 32a3fab2ed1ed7240514eb50506031e68dcd4a38 Author: Julia Lawall Date: Fri May 1 21:37:53 2015 +0200 staging: lustre: obdclass: obd_config: remove unneeded null test before free Kfree can cope with a null argument, so drop null tests. The semantic patch that identifies this issue is as follows: (http://coccinelle.lip6.fr/) // @@ expression ptr; @@ - if (ptr != NULL) kfree(ptr); // The first part of the patch introduces new labels to avoid unnecessary calls to kfree. In addition, lprof->lp_md is always null in the cleanup code at the end of the function, so that kfree is just dropped. Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman .../staging/lustre/lustre/obdclass/obd_config.c | 24 +++++++++------------- 1 file changed, 10 insertions(+), 14 deletions(-) commit 2522d76ae4061b679ebabea02e2ccf762846a4c0 Author: Julia Lawall Date: Fri May 1 21:37:54 2015 +0200 staging: lustre: obdclass: llog: remove unneeded null test before free Kfree can cope with a null argument, so drop null tests. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ expression ptr; @@ - if (ptr != NULL) kfree(ptr); // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/obdclass/llog.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit ba99a0aff29344797107fc7cca4adc7694c4fd98 Author: Julia Lawall Date: Fri May 1 21:37:55 2015 +0200 staging: lustre: obdclass: genops: remove unneeded null test before free Kfree can cope with a null argument, so drop null tests. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ expression ptr; @@ - if (ptr != NULL) kfree(ptr); // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/obdclass/genops.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) commit 6fa7cbab38ee64eb78376a32a57cbaa074d766e4 Author: Julia Lawall Date: Fri May 1 21:37:56 2015 +0200 staging: lustre: mdc: remove unneeded null test before free Kfree can cope with a null argument, so drop null tests. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ expression ptr; @@ - if (ptr != NULL) kfree(ptr); // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/mdc/mdc_request.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 34b8fbd6cdb1251d7f2bb3645124148365c5089a Author: Julia Lawall Date: Fri May 1 21:37:57 2015 +0200 staging: lustre: lov: lov_dev: remove unneeded null test before free Kfree can cope with a null argument, so drop null tests. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ expression ptr; @@ - if (ptr != NULL) kfree(ptr); // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/lov/lov_dev.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 13879e5d17afc76b66d74324fe2b1065e301614f Author: Julia Lawall Date: Fri May 1 21:37:58 2015 +0200 staging: lustre: lmv: remove unneeded null test before free Kfree can cope with a null argument, so drop null tests. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ expression ptr; @@ - if (ptr != NULL) kfree(ptr); // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/lmv/lmv_obd.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 37b5022dd7b9dc0b412e2c2a7d01bd3f32e40db5 Author: Julia Lawall Date: Fri May 1 21:37:59 2015 +0200 staging: lustre: llite: statahead: remove unneeded null test before free Kfree can cope with a null argument, so drop null tests. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ expression ptr; @@ - if (ptr != NULL) kfree(ptr); // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/statahead.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 081825f589cc23d479a59e18ad093ef0b637b051 Author: Julia Lawall Date: Fri May 1 21:38:00 2015 +0200 Staging: lustre: llite: llite_lib: remove unneeded null test before free Kfree can cope with a null argument, so drop null tests. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ expression ptr; @@ - if (ptr != NULL) kfree(ptr); // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/llite_lib.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) commit e6b9a3b225b804a2683bc173c1261a9ce4a561a0 Author: Julia Lawall Date: Fri May 1 21:38:01 2015 +0200 Staging: lustre: llite: file: remove unneeded null test before free Kfree can cope with a null argument, so drop null tests. The semantic patch that finds this issue is as follows: (http://coccinelle.lip6.fr/) // @@ expression ptr; @@ - if (ptr != NULL) kfree(ptr); // In the first case, llss can never be null at the point of the kfree anyway. In the second set of changes, the gotos are either eliminated, when no freeing is needed (hss failure case), or rewritten so that there is no call to free on data that has not yet been allocated (free_hss goto case). There is no goto at which attr is not null, so the out label is simply dropped. Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/file.c | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) commit 57876fd8bf6b90362ae511c4d201847a1e18bacf Author: Julia Lawall Date: Fri May 1 21:38:02 2015 +0200 Staging: lustre: llite: dir: remove unneeded null test before free Kfree can cope with a null argument, so drop null tests. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ expression ptr; @@ - if (ptr != NULL) kfree(ptr); // This patch additionally simplifies one case where the free, and thus the jump to the end of the function, is not needed. Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/dir.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit acd3750e572142bb45f056f1b5ffd5230061a327 Author: Julia Lawall Date: Fri May 1 21:38:03 2015 +0200 staging: lustre: libcfs: linux: remove unneeded null test before free Kfree can cope with a null argument, so drop null tests. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ expression ptr; @@ - if (ptr != NULL) { kfree(ptr); ptr = NULL; - } // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/libcfs/linux/linux-tracefile.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit 62b497d85bf3896a7caaf244966e5288fb2e3b39 Author: Julia Lawall Date: Fri May 1 21:38:04 2015 +0200 staging: lustre: ldlm: ldlm_resource: remove unneeded null test before free Kfree can cope with a null argument, so drop null tests. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ expression ptr; @@ - if (ptr != NULL) { kfree(ptr); ptr = NULL; - } // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/ldlm/ldlm_resource.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit a1ce36c0e6d8eaefef6e60baf3be9d93fafadd7e Author: Julia Lawall Date: Fri May 1 21:38:05 2015 +0200 staging: lustre: ldlm: ldlm_lock: remove unneeded null test before free Kfree can cope with a null argument, so drop null tests. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ expression ptr; @@ - if (ptr != NULL) kfree(ptr); // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/ldlm/ldlm_lock.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 1134507ca420fadd465ebdbc4f6c5d5798d6ab87 Author: Julia Lawall Date: Fri May 1 21:38:06 2015 +0200 staging: lustre: ldlm: ldlm_lib: remove unneeded null test before free Kfree can cope with a null argument, so drop null tests. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ expression ptr; @@ - if (ptr != NULL) kfree(ptr); // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/ldlm/ldlm_lib.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 9ae10597280cede9b2462b96cec7398cbbf1459f Author: Julia Lawall Date: Fri May 1 17:51:12 2015 +0200 staging: lustre: ptlrpc: Use kzalloc and kfree Replace OBD_ALLOC, OBD_ALLOC_WAIT, OBD_ALLOC_PTR, and OBD_ALLOC_PTR_WAIT by kalloc/kcalloc, and OBD_FREE and OBD_FREE_PTR by kfree. A simplified version of the semantic patch that makes these changes is as follows: (http://coccinelle.lip6.fr/) // @@ expression ptr,size; @@ - OBD_ALLOC(ptr,size) + ptr = kzalloc(size, GFP_NOFS) @@ expression ptr, size; @@ - OBD_FREE(ptr, size); + kfree(ptr); // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/ptlrpc/client.c | 18 +++++----- drivers/staging/lustre/lustre/ptlrpc/connection.c | 6 ++-- .../staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c | 24 ++++++------- drivers/staging/lustre/lustre/ptlrpc/nrs.c | 18 +++++----- drivers/staging/lustre/lustre/ptlrpc/nrs_fifo.c | 2 +- drivers/staging/lustre/lustre/ptlrpc/pinger.c | 6 ++-- drivers/staging/lustre/lustre/ptlrpc/ptlrpcd.c | 14 ++++---- drivers/staging/lustre/lustre/ptlrpc/sec.c | 2 +- drivers/staging/lustre/lustre/ptlrpc/sec_bulk.c | 17 +++++---- drivers/staging/lustre/lustre/ptlrpc/sec_config.c | 16 ++++----- drivers/staging/lustre/lustre/ptlrpc/sec_plain.c | 10 +++--- drivers/staging/lustre/lustre/ptlrpc/service.c | 42 ++++++++++------------ 12 files changed, 84 insertions(+), 91 deletions(-) commit 7795178d1ec256d21a48a0dcffae5f38055b7cd5 Author: Julia Lawall Date: Fri May 1 17:51:13 2015 +0200 staging: lustre: osc: Use kzalloc and kfree Replace OBD_ALLOC, OBD_ALLOC_WAIT, OBD_ALLOC_PTR, and OBD_ALLOC_PTR_WAIT by kalloc/kcalloc, and OBD_FREE and OBD_FREE_PTR by kfree. A simplified version of the semantic patch that makes these changes is as follows: (http://coccinelle.lip6.fr/) // @@ expression ptr,size; @@ - OBD_ALLOC(ptr,size) + ptr = kzalloc(size, GFP_NOFS) @@ expression ptr, size; @@ - OBD_FREE(ptr, size); + kfree(ptr); // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/osc/osc_dev.c | 4 +-- drivers/staging/lustre/lustre/osc/osc_request.c | 33 +++++++++++++------------ 2 files changed, 19 insertions(+), 18 deletions(-) commit c5b895201c3097d8414ba520a06a545794400e0c Author: Julia Lawall Date: Fri May 1 17:51:14 2015 +0200 staging: lustre: obdecho: Use kzalloc and kfree Replace OBD_ALLOC, OBD_ALLOC_WAIT, OBD_ALLOC_PTR, and OBD_ALLOC_PTR_WAIT by kalloc/kcalloc, and OBD_FREE and OBD_FREE_PTR by kfree. A simplified version of the semantic patch that makes these changes is as follows: (http://coccinelle.lip6.fr/) // @@ expression ptr,size; @@ - OBD_ALLOC(ptr,size) + ptr = kzalloc(size, GFP_NOFS) @@ expression ptr, size; @@ - OBD_FREE(ptr, size); + kfree(ptr); // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman .../staging/lustre/lustre/obdecho/echo_client.c | 42 +++++++++++----------- 1 file changed, 21 insertions(+), 21 deletions(-) commit d7279044d819842e465c53b5e25630d67ac49bf8 Author: Julia Lawall Date: Fri May 1 17:51:15 2015 +0200 staging: lustre: obdclass: Use kzalloc and kfree Replace OBD_ALLOC, OBD_ALLOC_WAIT, OBD_ALLOC_PTR, and OBD_ALLOC_PTR_WAIT by kalloc/kcalloc, and OBD_FREE and OBD_FREE_PTR by kfree. A simplified version of the semantic patch that makes these changes is as follows: (http://coccinelle.lip6.fr/) // @@ expression ptr,size; @@ - OBD_ALLOC(ptr,size) + ptr = kzalloc(size, GFP_NOFS) @@ expression ptr, size; @@ - OBD_FREE(ptr, size); + kfree(ptr); // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/obdclass/acl.c | 29 ++++---- drivers/staging/lustre/lustre/obdclass/capa.c | 4 +- drivers/staging/lustre/lustre/obdclass/cl_io.c | 13 ++-- drivers/staging/lustre/lustre/obdclass/cl_page.c | 2 +- drivers/staging/lustre/lustre/obdclass/class_obd.c | 4 +- drivers/staging/lustre/lustre/obdclass/genops.c | 40 +++++----- drivers/staging/lustre/lustre/obdclass/llog.c | 24 +++--- drivers/staging/lustre/lustre/obdclass/llog_obd.c | 4 +- .../lustre/lustre/obdclass/lprocfs_status.c | 14 ++-- drivers/staging/lustre/lustre/obdclass/lu_object.c | 6 +- .../lustre/lustre/obdclass/lustre_handles.c | 2 +- .../staging/lustre/lustre/obdclass/lustre_peer.c | 6 +- .../staging/lustre/lustre/obdclass/obd_config.c | 50 ++++++------- drivers/staging/lustre/lustre/obdclass/obd_mount.c | 86 ++++++++++------------ 14 files changed, 138 insertions(+), 146 deletions(-) commit c9b4297faadcb972bad71aa625e1775bc2be9c46 Author: Julia Lawall Date: Fri May 1 17:51:16 2015 +0200 staging: lustre: mgc: Use kzalloc and kfree Replace OBD_ALLOC, OBD_ALLOC_WAIT, OBD_ALLOC_PTR, and OBD_ALLOC_PTR_WAIT by kalloc/kcalloc, and OBD_FREE and OBD_FREE_PTR by kfree. A simplified version of the semantic patch that makes these changes is as follows: (http://coccinelle.lip6.fr/) // @@ expression ptr,size; @@ - OBD_ALLOC(ptr,size) + ptr = kzalloc(size, GFP_NOFS) @@ expression ptr, size; @@ - OBD_FREE(ptr, size); + kfree(ptr); // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/mgc/mgc_request.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit 7b81779d0dd62316d4f92fab96eeba9ddfa3aaa6 Author: Julia Lawall Date: Fri May 1 17:51:17 2015 +0200 staging: lustre: mdc: Use kzalloc and kfree Replace OBD_ALLOC, OBD_ALLOC_WAIT, OBD_ALLOC_PTR, and OBD_ALLOC_PTR_WAIT by kalloc/kcalloc, and OBD_FREE and OBD_FREE_PTR by kfree. A simplified version of the semantic patch that makes these changes is as follows: (http://coccinelle.lip6.fr/) // @@ expression ptr,size; @@ - OBD_ALLOC(ptr,size) + ptr = kzalloc(size, GFP_NOFS) @@ expression ptr, size; @@ - OBD_FREE(ptr, size); + kfree(ptr); // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/mdc/lproc_mdc.c | 4 ++-- drivers/staging/lustre/lustre/mdc/mdc_locks.c | 2 +- drivers/staging/lustre/lustre/mdc/mdc_request.c | 30 ++++++++++++------------- 3 files changed, 18 insertions(+), 18 deletions(-) commit 8bcf30c3bf4e95cd506591171d81b266d43e8d41 Author: Julia Lawall Date: Fri May 1 17:51:18 2015 +0200 staging: lustre: lmv: Use kzalloc and kfree Replace OBD_ALLOC, OBD_ALLOC_WAIT, OBD_ALLOC_PTR, and OBD_ALLOC_PTR_WAIT by kalloc/kcalloc, and OBD_FREE and OBD_FREE_PTR by kfree. A simplified version of the semantic patch that makes these changes is as follows: (http://coccinelle.lip6.fr/) // @@ expression ptr,size; @@ - OBD_ALLOC(ptr,size) + ptr = kzalloc(size, GFP_NOFS) @@ expression ptr, size; @@ - OBD_FREE(ptr, size); + kfree(ptr); // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/lmv/lmv_intent.c | 4 ++-- drivers/staging/lustre/lustre/lmv/lmv_obd.c | 28 +++++++++++++------------- 2 files changed, 16 insertions(+), 16 deletions(-) commit 352f7891711e6d188999b32d8c151992984616ce Author: Julia Lawall Date: Fri May 1 17:51:19 2015 +0200 staging: lustre: ldlm: Use kzalloc and kfree Replace OBD_ALLOC, OBD_ALLOC_WAIT, OBD_ALLOC_PTR, and OBD_ALLOC_PTR_WAIT by kalloc/kcalloc, and OBD_FREE and OBD_FREE_PTR by kfree. A simplified version of the semantic patch that makes these changes is as follows: (http://coccinelle.lip6.fr/) // @@ expression ptr,size; @@ - OBD_ALLOC(ptr,size) + ptr = kzalloc(size, GFP_NOFS) @@ expression ptr, size; @@ - OBD_FREE(ptr, size); + kfree(ptr); // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/ldlm/ldlm_lib.c | 6 +++--- drivers/staging/lustre/lustre/ldlm/ldlm_lock.c | 10 +++++----- drivers/staging/lustre/lustre/ldlm/ldlm_lockd.c | 14 +++++++------- drivers/staging/lustre/lustre/ldlm/ldlm_pool.c | 10 +++++----- drivers/staging/lustre/lustre/ldlm/ldlm_resource.c | 8 ++++---- 5 files changed, 24 insertions(+), 24 deletions(-) commit 00c40c169abdee57d81995588b6bc1970c1db3cb Author: Julia Lawall Date: Fri May 1 17:51:20 2015 +0200 staging: lustre: lclient: Use kzalloc and kfree Replace OBD_ALLOC, OBD_ALLOC_WAIT, OBD_ALLOC_PTR, and OBD_ALLOC_PTR_WAIT by kalloc/kcalloc, and OBD_FREE and OBD_FREE_PTR by kfree. A simplified version of the semantic patch that makes these changes is as follows: (http://coccinelle.lip6.fr/) // @@ expression ptr,size; @@ - OBD_ALLOC(ptr,size) + ptr = kzalloc(size, GFP_NOFS) @@ expression ptr, size; @@ - OBD_FREE(ptr, size); + kfree(ptr); // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/lclient/lcommon_cl.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 2e65101315679fca06a673d83f3d78442800f90a Author: Julia Lawall Date: Fri May 1 17:51:21 2015 +0200 Staging: lustre: fld: Use kzalloc and kfree Replace OBD_ALLOC, OBD_ALLOC_WAIT, OBD_ALLOC_PTR, and OBD_ALLOC_PTR_WAIT by kalloc/kcalloc, and OBD_FREE and OBD_FREE_PTR by kfree. A simplified version of the semantic patch that makes these changes is as follows: (http://coccinelle.lip6.fr/) // @@ expression ptr,size; @@ - OBD_ALLOC(ptr,size) + ptr = kzalloc(size, GFP_NOFS) @@ expression ptr, size; @@ - OBD_FREE(ptr, size); + kfree(ptr); // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/fld/fld_cache.c | 16 ++++++++-------- drivers/staging/lustre/lustre/fld/fld_request.c | 8 ++++---- 2 files changed, 12 insertions(+), 12 deletions(-) commit 5a56474a51cee4aad56f6b2225ed5828e2dc3b84 Author: Julia Lawall Date: Fri May 1 17:51:22 2015 +0200 staging: lustre: fid: Use kzalloc and kfree Replace OBD_ALLOC, OBD_ALLOC_WAIT, OBD_ALLOC_PTR, and OBD_ALLOC_PTR_WAIT by kalloc/kcalloc, and OBD_FREE and OBD_FREE_PTR by kfree. A simplified version of the semantic patch that makes these changes is as follows: (http://coccinelle.lip6.fr/) // @@ expression ptr,size; @@ - OBD_ALLOC(ptr,size) + ptr = kzalloc(size, GFP_NOFS) @@ expression ptr, size; @@ - OBD_FREE(ptr, size); + kfree(ptr); // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/fid/fid_request.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 9ceeb59c5f7e4c4612039323f4266cabb3baedfd Author: Marek Vasut Date: Thu May 7 22:25:49 2015 -0700 Input: smtpe-ts - wait 50mS until polling for pen-up Wait a little bit longer, 50mS instead of 20mS, until the driver starts polling for pen-up. The problematic behavior before this patch is applied is as follows. The behavior was observed on the STMPE610QTR controller. Upon a physical pen-down event, the touchscreen reports one set of x-y-p coordinates and a pen-down event. After that, the pen-up polling is triggered and since the controller is not ready yet, the polling mistakenly detects a pen-up event while the physical state is still such that the pen is down on the touch surface. The pen-up handling flushes the controller FIFO, so after that, all the samples in the controller are discarded. The controller becomes ready shortly after this bogus pen-up handling and does generate again a pen-down interrupt. This time, the controller contains x-y-p samples which all read as zero. Since pressure value is zero, this set of samples is effectively ignored by userland. In the end, the driver just bounces between pen-down and bogus pen-up handling, generating no useful results. Fix this by giving the controller a bit more time before polling it for pen-up. Signed-off-by: Marek Vasut Reviewed-by: Viresh Kumar Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/stmpe-ts.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8f6bcc97ab3f79b2f7f1fd59de8cd38af3535497 Author: Marek Vasut Date: Thu May 7 22:24:58 2015 -0700 Input: smtpe-ts - use msecs_to_jiffies() instead of HZ Use msecs_to_jiffies(20) instead of plain (HZ / 50), as the former is much more explicit about it's behavior. We want to schedule the task 20 mS from now, so make it explicit in the code. Signed-off-by: Marek Vasut Reviewed-by: Viresh Kumar Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/stmpe-ts.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9fac45c16c33f9f822ed7f9b9660890f68f16d8b Author: Fathi Boudra Date: Fri Apr 10 10:16:19 2015 +0300 ARM: dts: add HiSilicon hip04 ethernet controller resource add the device tree binding for the HiSilicon hip04 ethernet controller based on Documentation/devicetree/bindings/net/hisilicon-hip04-net.txt Signed-off-by: Zhangfei Gao Signed-off-by: Fathi Boudra Signed-off-by: Wei Xu arch/arm/boot/dts/hip04.dtsi | 50 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) commit e42536140889eaf62a794c926cfb7c0f918bf788 Author: Zhou Wang Date: Wed Mar 25 15:04:51 2015 +0800 mtd: hisilicon: add device tree node for NAND controller This patch adds dts support for NAND flash controller of Hisilicon Soc Hip04. Changes in v3: - Change E-mail address in signed-off-by to "wangzhou1@hisilicon.com" Changes in v2: - Base on v3.19-rc1 - Use nand-ecc-strength, nand-ecc-step-size to replace hisi,nand-ecc-bits Changes in v1: - Move partition and other board related information into board dts file: hip04-d01.dts Signed-off-by: Zhou Wang Acked-by: Haojian Zhuang Reviewed-by: Brian Norris Signed-off-by: Wei Xu arch/arm/boot/dts/hip04-d01.dts | 27 +++++++++++++++++++++++++++ arch/arm/boot/dts/hip04.dtsi | 8 ++++++++ 2 files changed, 35 insertions(+) commit 828fcfe3c84ade68ecc3f1ba78baebc1654977f3 Author: Zhou Wang Date: Wed Mar 25 14:57:45 2015 +0800 ARM: dts: hip04: add GPIO pieces Hisilicon Soc hip04 has four GPIO controllers, each one has 32 GPIOs and can be configured to be an interrupt controller.The GPIO controllers are compatible with the snps,dw-apb-gpio driver. This patch add the corresponding device tree nodes. Acked-by: Linus Walleij Signed-off-by: Zhou Wang Signed-off-by: Wei Xu arch/arm/boot/dts/hip04.dtsi | 75 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) commit 0efd937e27d5e169031c2bc45d65fe1b0d289454 Author: Johan Hovold Date: Thu Apr 23 16:06:51 2015 +0200 USB: ehci-tegra: fix inefficient copy of unaligned buffers Make sure only to copy any actual data rather than the whole buffer, when releasing the temporary buffer used for unaligned non-isochronous transfers. Compile-tested only. Signed-off-by: Johan Hovold Tested-by: Stephen Warren Acked-by: Alan Stern Signed-off-by: Greg Kroah-Hartman drivers/usb/host/ehci-tegra.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit 8ca9a3217f0ac35e8595bf203685a2205213ddc8 Author: Johan Hovold Date: Thu Apr 23 16:06:50 2015 +0200 USB: musb: fix inefficient copy of unaligned buffers Make sure only to copy any actual data rather than the whole buffer, when releasing the temporary buffer used for unaligned non-isochronous transfers. Signed-off-by: Johan Hovold Signed-off-by: Greg Kroah-Hartman drivers/usb/musb/musb_host.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit a8425292816ceaa8c49e29d2114e85d85a73e080 Author: Rupesh Tatiya Date: Tue Apr 14 16:36:55 2015 +0530 usb: Enable LPM for USB 2.01+ full-speed devices USB 2.01+ full-speed devices can have extended descriptor as well and can support LPM. Signed-off-by: Rupesh Tatiya Signed-off-by: Greg Kroah-Hartman drivers/usb/core/hub.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7d203a9e11fa179306a9f49ad06eb3dd1b9d8614 Author: Joe Perches Date: Sat Apr 18 19:59:48 2015 -0700 usb: storage: scsiglue: Remove SPRINTF macro use Single transform macros with hidden arguments are not particularly useful. Just use seq_printf directly instead. Signed-off-by: Joe Perches Signed-off-by: Greg Kroah-Hartman drivers/usb/storage/scsiglue.c | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) commit 3091fa77ffb1b91f4ac3ae005efe6213508f7ec1 Author: Alan Stern Date: Wed Apr 22 12:11:59 2015 -0400 USB: don't build PCI quirks if USB support isn't configured The USB PCI quirks code gets built into the kernel whenever CONFIG_PCI is enabled, even if CONFIG_USB is not set. This can cause unnecessary messages to show up in the kernel log, such as "CONFIG_USB_XHCI_HCD is turned off, defaulting to EHCI" (which makes no sense when the kernel has been configured without host-side USB support). This patch addresses the problem by building pci-quirks.o only when CONFIG_PCI and CONFIG_USB are both enabled. Signed-off-by: Alan Stern Reported-by: Toralf Förster Signed-off-by: Greg Kroah-Hartman drivers/usb/host/Makefile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 58339c2e8b6181e6ffb2ef0dccc4d010b8acd013 Author: Matthew Garrett Date: Wed Apr 8 16:36:01 2015 -0700 usb: Set unused ports to "fixed" rather than "unknown" The Microsoft document "Using ACPI to Configure USB Ports on a Computer" makes it clear that the removable flag will be cleared on ports that are marked as unused by the firmware. Handle this case to match. Signed-off-by: Matthew Garrett Signed-off-by: Greg Kroah-Hartman drivers/usb/core/hub.c | 3 +++ 1 file changed, 3 insertions(+) commit 92bfbf71350b320f718a35446f017fbefd51d850 Author: Matthew Garrett Date: Wed Apr 8 16:36:00 2015 -0700 usb: Prefer firmware values when determining whether a port is removable Windows appears to pay more attention to the ACPI values than any hub configuration, so prefer the firmware's opinion on whether a port is fixed or removable before falling back to the hub values. Signed-off-by: Matthew Garrett Signed-off-by: Greg Kroah-Hartman drivers/usb/core/hub.c | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) commit b6ec94520c5b944da9e045e173ddb453ecf42da3 Author: Jin Qian Date: Wed May 6 15:26:56 2015 -0700 PM / wakeup: validate wakeup source before activating it. A rogue wakeup source not registered in wakeup_sources list is not visible from wakeup_sources_stats_show. Check if the wakeup source is registered properly by looking at the timer struct. Signed-off-by: Jin Qian Signed-off-by: Rafael J. Wysocki drivers/base/power/wakeup.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit 7aaea7605c0e19fa7b38d7ac5dcd818942fd17a7 Author: Brian Norris Date: Tue Feb 25 18:27:40 2014 -0800 jffs2: fix unbalanced locking Li Zefan reported an unbalanced locking issue, found by his internal debugging feature on runtime. The particular case he was looking at doesn't lead to a deadlock, as the structure that this lock is embedded in is freed on error. But we should straighten out the error handling. Because several callers of jffs2_do_read_inode_internal() / jffs2_do_read_inode() already handle the locking/unlocking and inode clearing at their own level, let's just push any unlocks/clearing down to the caller. This consistency is much easier to verify. Reported-by: Li Zefan Cc: David Woodhouse Cc: Artem Bityutskiy Cc: Andrew Morton Signed-off-by: Brian Norris fs/jffs2/fs.c | 7 ++----- fs/jffs2/readinode.c | 27 ++++----------------------- 2 files changed, 6 insertions(+), 28 deletions(-) commit c0d2143dd139e70abba0b8b4bb0fc51c44cc0ac5 Author: Chen Hanxiao Date: Fri Apr 24 03:44:17 2015 -0400 docs: add VmPMD description in proc commit dc6c9a35b66b ("mm: account pmd page tables to the process") add VmPMD in /proc/PID/status. This patch add a description in proc.txt for it. Signed-off-by: Chen Hanxiao Acked-by: Kirill A. Shutemov Signed-off-by: Jonathan Corbet Documentation/filesystems/proc.txt | 1 + 1 file changed, 1 insertion(+) commit f66fa08bf9e59b1231aba9e3c2ec28dcf08f0389 Author: Wang Long Date: Thu Apr 23 07:47:02 2015 +0800 Documentation: kasan: fix a typo Fix a couple of typos in the kasan document. Signed-off-by: Wang Long Signed-off-by: Jonathan Corbet Documentation/kasan.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9eb059985a7941d0302c9996de13d258d0355f92 Author: Chen Hanxiao Date: Mon Apr 20 22:48:23 2015 -0400 Docs: proc: fix kernel version Change the kernel version in table 1-2 from 3.20 to 4.1 Signed-off-by: Chen Hanxiao Reviewed-by: Nathan Scott Signed-off-by: Jonathan Corbet Documentation/filesystems/proc.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit df1027abde561f6e7577bc3278f84707de583c89 Author: Baruch Siach Date: Sun Apr 19 06:35:01 2015 +0300 Documentation/CodingStyle: fix example macro parenthesis imbalance Cc: Bartosz Golaszewski Cc: Andrew Morton Fixes: f2027543b9 ('documentation: update CodingStyle on local variables naming in macros') Signed-off-by: Baruch Siach Signed-off-by: Jonathan Corbet Documentation/CodingStyle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c4b6c26e828f4df30fe3289f35c100088f2ff71d Author: Sascha Hauer Date: Thu May 7 10:14:58 2015 +0200 dt-bindings: ARM: Mediatek: use more generic node name in examples Use 'clock-controller' and 'power-controller' as node names in the examples rather than the specific names of the units. Signed-off-by: Sascha Hauer Signed-off-by: Stephen Boyd Documentation/devicetree/bindings/arm/mediatek/mediatek,apmixedsys.txt | 2 +- Documentation/devicetree/bindings/arm/mediatek/mediatek,infracfg.txt | 2 +- Documentation/devicetree/bindings/arm/mediatek/mediatek,pericfg.txt | 2 +- Documentation/devicetree/bindings/arm/mediatek/mediatek,topckgen.txt | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) commit 303ae7230751219f43115615a2b79669f8ba53cf Author: Viresh Kumar Date: Thu Feb 19 17:02:07 2015 +0530 cpufreq: Clear policy->cpus even for the last CPU We clear policy->cpus mask while CPUs are hotplugged out. We do it for all CPUs except the last CPU of the policy. I don't remember what the rationale behind that was, but I couldn't think of anything that will break if we remove this conditional clearing and always clear policy->cpus. The benefit we get out of it is, we can know if a policy is active or not by checking if this field is empty or not. That will be used by later commits. Signed-off-by: Viresh Kumar Acked-by: Saravana Kannan Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit bb29ae152e3b9d79ca35e41945a55b616e91b5b9 Author: Viresh Kumar Date: Thu Feb 19 17:02:06 2015 +0530 cpufreq: Keep a single path for adding managed CPUs There are two cases when we may try to add CPUs we're already handling: - On boot, the first cpu has marked all policy->cpus managed and so we will find policy for all other policy->cpus later on. - When a managed cpu is hotplugged out and later brought back in. Currently, separate paths and checks take care of the two. While the first one is detected by testing cpu against 'policy->cpus', the other one is detected by testing cpu against 'policy->related_cpus'. We can handle them both via a single path and there is no need to do special checking for the first one. Signed-off-by: Viresh Kumar Acked-by: Saravana Kannan [ rjw: Changelog, comments ] Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) commit 1b947c904c4831d787c1f17a6a6cd40c7144ba85 Author: Viresh Kumar Date: Thu Feb 19 17:02:05 2015 +0530 cpufreq: Throw warning when we try to get policy for an invalid CPU Simply returning here with an error is not enough. It shouldn't be allowed at all to try calling cpufreq_cpu_get() for an invalid CPU. Add a WARN here to make it clear that it wouldn't be acceptable at all. Signed-off-by: Viresh Kumar Acked-by: Saravana Kannan Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 23faf0b7430f1f19cf033f4ee1588ab86a026b60 Author: Viresh Kumar Date: Thu Feb 19 17:02:04 2015 +0530 cpufreq: Merge __cpufreq_add_dev() and cpufreq_add_dev() cpufreq_add_dev() is an unnecessary wrapper over __cpufreq_add_dev(). Merge them. Signed-off-by: Viresh Kumar Acked-by: Saravana Kannan Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq.c | 29 ++++++++++++----------------- 1 file changed, 12 insertions(+), 17 deletions(-) commit 50e9c852130e86b10e9098227d4153b2bf997611 Author: Viresh Kumar Date: Thu Feb 19 17:02:03 2015 +0530 cpufreq: Add doc style comment about cpufreq_cpu_{get|put}() This clearly states what the code inside these routines is doing and how these must be used. Signed-off-by: Viresh Kumar Acked-by: Saravana Kannan Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) commit ffc1d299aa836f540a20302e9f22120639ea2944 Author: Bin Liu Date: Tue Mar 24 15:19:56 2015 -0500 usb: musb: add softconnect for host mode Add a debugfs interface - softconnect - for host mode to connect/disconnect the devices without physically remove the them. This adds the capability to re-enumerate the devices which are permanently mounted on the board with the MUSB controller together. Signed-off-by: Bin Liu Signed-off-by: Felipe Balbi drivers/usb/musb/musb_debugfs.c | 91 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) commit d6d22922d9070b660e3dce0a87a94f0b581e803e Author: Andrzej Pietrasiewicz Date: Fri Feb 6 13:43:30 2015 +0100 usb: gadget: rndis: remove the limit of available rndis connections RNDIS function has a limitation on the number of allowed instances. So far it has been RNDIS_MAX_CONFIGS, which happens to be one. In order to eliminate this kind of arbitrary limitation we should not preallocate a predefined (RNDIS_MAX_CONFIGS) array of struct rndis_params instances but instead allow allocating them on demand. This patch allocates struct rndis_params on demand in rndis_register(). Coversly, the structure is free()'d in rndis_deregister(). If CONFIG_USB_GADGET_DEBUG_FILES is set, the proc files are created which is the same behaviour as before, but the moment of creation is delayed until struct rndis_params is actually allocated. rnids_init() and rndis_exit() have nothing to do, so they are eliminated. Signed-off-by: Andrzej Pietrasiewicz Signed-off-by: Felipe Balbi Documentation/usb/gadget-testing.txt | 2 - drivers/usb/gadget/function/f_rndis.c | 22 +----- drivers/usb/gadget/function/rndis.c | 140 +++++++++++++++++++--------------- drivers/usb/gadget/function/u_rndis.h | 2 - 4 files changed, 78 insertions(+), 88 deletions(-) commit 6122b151c7799673794927031a884df0f2355922 Author: Andrzej Pietrasiewicz Date: Fri Feb 6 13:43:29 2015 +0100 usb: gadget: rndis: style correction Don't use a space between function name and parameter list opening bracket. All other functions in this file comply wich checkpatch rules. Signed-off-by: Andrzej Pietrasiewicz Signed-off-by: Felipe Balbi drivers/usb/gadget/function/rndis.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 83210e59ee1527f229af6aef78c95b747bdcf9c4 Author: Andrzej Pietrasiewicz Date: Fri Mar 20 08:18:47 2015 +0100 usb: gadget: rndis: use rndis_params instead of configNr RNDIS function has a limitation on the number of allowed instances. So far it has been RNDIS_MAX_CONFIGS, which happens to be one. In order to eliminate this kind of arbitrary limitation we should not preallocate a predefined (RNDIS_MAX_CONFIGS) array of struct rndis_params instances but instead allow allocating them on demand. This patch prepares the elimination of the said limit by converting all the functions which accept rndis config number to accept a pointer to the actual struct rndis_params. Consequently, rndis_register() returns a pointer to a corresponding struct rndis_params instance. The pointer is then always used by f_rndis.c instead of config number when it talks to rndis.c API. A nice side-effect of the changes is that many lines of code in rndis.c become shorter and fit in 80 columns. If a function prototype changes in rndis.h a style cleanup is made at the same time, otherwise checkpatch complains that the patch has style problems. Signed-off-by: Andrzej Pietrasiewicz Signed-off-by: Felipe Balbi drivers/usb/gadget/function/f_rndis.c | 38 +++--- drivers/usb/gadget/function/rndis.c | 213 +++++++++++++++------------------- drivers/usb/gadget/function/rndis.h | 29 ++--- 3 files changed, 129 insertions(+), 151 deletions(-) commit 2aa7c51a453fbd5b0a58156623ea950bcb9db526 Author: Chao Yu Date: Sat Apr 18 18:06:49 2015 +0800 f2fs: make has_fsynced_inode static has_fsynced_inode() has no other caller out of node.c, make it static. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/f2fs.h | 1 - fs/f2fs/node.c | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) commit 587c0a42552a69a58e7ccd363d30fd48d809fdcb Author: Taehee Yoo Date: Tue Apr 21 15:59:12 2015 +0900 f2fs: add offset check routine before punch_hole() in f2fs_fallocate() In the punch_hole(), if offset bigger than inode size, it returns SUCCESS. Then f2fs_fallocate() will update time and dirty mark. In that case, inode has not been modified actually. So I have added offset check routine that prevent to call the punch_hole(). Signed-off-by: Taehee Yoo Signed-off-by: Jaegeuk Kim fs/f2fs/file.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) commit f0c9cadae6706b6ce00ef724121fbf0f34187e22 Author: Chao Yu Date: Sat Apr 18 18:05:36 2015 +0800 f2fs: use is_valid_blkaddr to verify blkaddr for readability Export is_valid_blkaddr() and use it to replace some codes for readability. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/checkpoint.c | 3 +-- fs/f2fs/f2fs.h | 1 + fs/f2fs/recovery.c | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) commit 272e083f7a968bc81dd01e4f16860a1e9617d454 Author: Chao Yu Date: Sat Apr 18 18:03:58 2015 +0800 f2fs: make posix_acl_create() safer and cleaner Our f2fs_acl_create is copied from posix_acl_create in ./fs/posix_acl.c and modified to avoid deadlock bug when inline_dentry feature is enabled. Dan Carpenter rewrites posix_acl_create in commit 2799563b281f ("fs/posix_acl.c: make posix_acl_create() safer and cleaner") to make this function more safer, so that we can avoid potential bug in its caller, especially for ocfs2. Let's back port the patch to f2fs. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/acl.c | 46 ++++++++++++++++++++-------------------------- 1 file changed, 20 insertions(+), 26 deletions(-) commit 5d799881391277e52787df06bafe865e91ae8296 Author: Jaegeuk Kim Date: Wed Apr 22 16:07:38 2015 -0700 f2fs: export more enums for tracepoint This patch exports newly added enums to userspace. Signed-off-by: Jaegeuk Kim include/trace/events/f2fs.h | 5 +++++ 1 file changed, 5 insertions(+) commit d74c23d36e7829ca7517a82c725c493d16328a44 Author: Joe Perches Date: Thu Mar 26 22:43:39 2015 -0700 usb: gadget: s3c2410_udc: Remove static char buffer, use vsprintf extension %pV Using unnecessary static char buffers isn't good. Use the %pV extension instead. Miscellanea: o the dprintk return value is unused, make it void o add __printf format and argument verification Signed-off-by: Joe Perches Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/s3c2410_udc.c | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) commit db978e284781af641a02f9ca9d99a746e1e1f60f Author: Geert Uytterhoeven Date: Tue May 5 18:32:38 2015 +0200 usb: phy: 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: Signed-off-by: Felipe Balbi drivers/usb/phy/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5665aec631245ff1b6e03fa5efe7383f4ef379cb Author: Peter Griffin Date: Thu May 7 19:16:53 2015 +0100 usb: dwc3: dwc3-st: Update the incorrect DT dwc3 example. There is a subtle typo phys-names should be phy-names. Using the current example means you don't have working usb (as you fail to obtain the phys). Also update the example to use the generic phy type constants which are now used for miphy28. Additionally also remove the unnecessary new line in the example. Signed-off-by: Peter Griffin Acked-by: Rob Herring Acked-by: Maxime Coquelin Signed-off-by: Felipe Balbi Documentation/devicetree/bindings/usb/dwc3-st.txt | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 25e97ab598e6c216d9f56d3e30572df04fa90373 Author: Krzysztof Kozlowski Date: Sat May 2 00:39:19 2015 +0900 usb: phy-ab8500-usb: 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: Felipe Balbi drivers/usb/phy/phy-ab8500-usb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ac33cdb166811223cc3b47d276aa82ef877f6362 Author: Tony Lindgren Date: Fri May 1 12:29:37 2015 -0700 usb: musb: Remove ifdefs for musb_host_rx in musb_host.c part5 Remove ifdefs for musb_host_rx to get closer to building in all the DMA drivers. Signed-off-by: Tony Lindgren Signed-off-by: Felipe Balbi drivers/usb/musb/musb_host.c | 254 ++++++++++++++++++++++++------------------- 1 file changed, 140 insertions(+), 114 deletions(-) commit e530bb8f7963c2030d54974406d7d4fedc1a98d2 Author: Tony Lindgren Date: Fri May 1 12:29:36 2015 -0700 usb: musb: Remove ifdefs for musb_host_rx in musb_host.c part4 Remove ifdefs for musb_host_rx to get closer to building in all the DMA drivers. Signed-off-by: Tony Lindgren Signed-off-by: Felipe Balbi drivers/usb/musb/musb_host.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit cff84bdb62f15a37ff71e0fb9c39a5e1b7a3f052 Author: Tony Lindgren Date: Fri May 1 12:29:35 2015 -0700 usb: musb: Remove ifdefs for musb_host_rx in musb_host.c part3 Remove ifdefs for musb_host_rx to get closer to building in all the DMA drivers. Signed-off-by: Tony Lindgren Signed-off-by: Felipe Balbi drivers/usb/musb/musb_host.c | 124 ++++++++++++++++++++++++++----------------- 1 file changed, 74 insertions(+), 50 deletions(-) commit 557d543e3f18acf4aa3b9e1860ef38e106696673 Author: Tony Lindgren Date: Fri May 1 12:29:34 2015 -0700 usb: musb: Remove ifdefs for musb_host_rx in musb_host.c part2 Remove ifdefs for musb_host_rx to get closer to building in all the DMA drivers. Signed-off-by: Tony Lindgren Signed-off-by: Felipe Balbi drivers/usb/musb/musb_host.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 069a3fd19aa4108ee24dd8a3c3e4ef393b9f99ef Author: Tony Lindgren Date: Fri May 1 12:29:33 2015 -0700 usb: musb: Remove ifdefs for musb_host_rx in musb_host.c part1 Remove ifdefs for musb_host_rx to get closer to building in all the DMA drivers. Signed-off-by: Tony Lindgren Signed-off-by: Felipe Balbi drivers/usb/musb/musb_host.c | 61 ++++++++++++++++++++++++++++++++------------ 1 file changed, 44 insertions(+), 17 deletions(-) commit 754fe4a92c072a6e36d89fa328ed789c9ebc1af5 Author: Tony Lindgren Date: Fri May 1 12:29:32 2015 -0700 usb: musb: Remove ifdefs for TX DMA for musb_host.c We can remove the ifdefs by setting up helper functions for mentor DMA and cppi/tusb DMA. Note that I've kept the existing formatting as otherwise this patch becomes pretty much unreadable. Signed-off-by: Tony Lindgren Signed-off-by: Felipe Balbi drivers/usb/musb/musb_host.c | 61 ++++++++++++++++++++++++++++++++++---------- 1 file changed, 48 insertions(+), 13 deletions(-) commit fb91cddc54e71a09b31e0fdf2d45abeaea850113 Author: Tony Lindgren Date: Fri May 1 12:29:30 2015 -0700 usb: musb: Remove DMA ifdef for musb_gadget.c short_packet Let's get rid of the horrible ifdef in middle of the expression. We can do it by adding a variable for short_packet and testing it separately for DMA related code. Signed-off-by: Tony Lindgren Signed-off-by: Felipe Balbi drivers/usb/musb/musb_gadget.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) commit 729697a13d7e32b18315df474fbf42498b447a8a Author: Tony Lindgren Date: Fri May 1 12:29:29 2015 -0700 usb: musb: Get rid of the DMA ifdefs for musb_core.c For musb_core.c we can now just drop the DMA related ifdef and use the already existing runtime test for !is_cppi_enabled(musb) instead. Signed-off-by: Tony Lindgren Signed-off-by: Felipe Balbi drivers/usb/musb/musb_core.c | 2 -- 1 file changed, 2 deletions(-) commit 7f6283ed6fe867ce168ee3eea2ced4f6cdeeb37a Author: Tony Lindgren Date: Fri May 1 12:29:28 2015 -0700 usb: musb: Set up function pointers for DMA Set up function pointers for DMA so get closer to being able to build in all the DMA engines. Signed-off-by: Tony Lindgren Signed-off-by: Felipe Balbi drivers/usb/musb/am35x.c | 4 ++++ drivers/usb/musb/blackfin.c | 4 ++++ drivers/usb/musb/cppi_dma.c | 9 ++++++--- drivers/usb/musb/da8xx.c | 4 ++++ drivers/usb/musb/davinci.c | 4 ++++ drivers/usb/musb/jz4740.c | 4 ++++ drivers/usb/musb/musb_core.c | 25 ++++++++++++++++++++++--- drivers/usb/musb/musb_core.h | 5 +++++ drivers/usb/musb/musb_cppi41.c | 8 +++++--- drivers/usb/musb/musb_dma.h | 32 +++++++++++++++++++++++++++----- drivers/usb/musb/musb_dsps.c | 4 ++++ drivers/usb/musb/musbhsdma.c | 9 ++++++--- drivers/usb/musb/omap2430.c | 4 ++++ drivers/usb/musb/tusb6010.c | 4 ++++ drivers/usb/musb/tusb6010_omap.c | 9 ++++++--- drivers/usb/musb/ux500.c | 4 ++++ drivers/usb/musb/ux500_dma.c | 8 +++++--- 17 files changed, 118 insertions(+), 23 deletions(-) commit f8e9f34f80a21540ebf8ba26877568124ca096b0 Author: Tony Lindgren Date: Fri May 1 12:29:27 2015 -0700 usb: musb: Fix up DMA related macros Pass struct musb to tusb_dma_omap() and is_cppi_enabled(), and add macros for the other DMA controllers. Populate the platform specific quirks with the DMA type and use it during runtime. Note that platform glue layers with no custom DMA code are tagged with MUSB_DMA_INVENTRA which may have a chance of working. Looks like the defconfigs for these use PIO_ONLY, so this should not break existing configs. Signed-off-by: Tony Lindgren Signed-off-by: Felipe Balbi drivers/usb/musb/am35x.c | 2 +- drivers/usb/musb/blackfin.c | 1 + drivers/usb/musb/da8xx.c | 2 +- drivers/usb/musb/davinci.c | 3 ++- drivers/usb/musb/jz4740.c | 2 +- drivers/usb/musb/musb_core.c | 2 +- drivers/usb/musb/musb_dma.h | 35 ++++++++++++++++++++++++++++++----- drivers/usb/musb/musb_dsps.c | 2 +- drivers/usb/musb/musb_gadget.c | 8 ++++---- drivers/usb/musb/musb_host.c | 10 +++++----- drivers/usb/musb/omap2430.c | 1 + drivers/usb/musb/tusb6010.c | 4 ++-- drivers/usb/musb/tusb6010.h | 6 ------ drivers/usb/musb/ux500.c | 2 +- 14 files changed, 51 insertions(+), 29 deletions(-) commit a63347251907d7f9fc2fc02e3b9898efda573c05 Author: Stephen Boyd Date: Wed May 6 17:00:54 2015 -0700 clk: Add some more lockdep assertions We don't check to make sure the enable_lock is held across enable/disable and we don't check if the prepare_lock is held across prepare/unprepare. Add some asserts to catch any future locking problems. Signed-off-by: Stephen Boyd drivers/clk/clk.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 18e70efe3e2a27b53a63fb4454cc6c9e1dc0db49 Merge: c542a54f d2a5d46 Author: Stephen Boyd Date: Thu May 7 11:32:49 2015 -0700 Merge branch 'clk-fixes' into clk-next commit c542a54fcb5591e7637f71fa400065853ce54ee0 Author: Geert Uytterhoeven Date: Mon Apr 27 14:51:33 2015 +0200 clk: emev2: Use generic names for device nodes uart -> serial Signed-off-by: Geert Uytterhoeven Acked-by: Simon Horman Signed-off-by: Stephen Boyd Documentation/devicetree/bindings/clock/emev2-clock.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a6ae41b54cb077270456acdf090c9db1663c75b5 Author: Linus Walleij Date: Mon Apr 20 15:06:28 2015 +0200 clk: ux500: ape[ate|trace]clk are scaleable The APEATCLK and APETRACECLK are actually scaleable so register them as scaleable clocks. Acked-by: Ulf Hansson Signed-off-by: Linus Walleij Signed-off-by: Stephen Boyd drivers/clk/ux500/u8500_clk.c | 7 ++++--- drivers/clk/ux500/u8500_of_clk.c | 4 ++-- 2 files changed, 6 insertions(+), 5 deletions(-) commit 70e9f4dde00182600989ca57f08d51be12f1523f Author: Felipe Balbi Date: Fri May 1 09:48:37 2015 -0500 clk: add newline character after dumping all clocks clk_dump() will dump data about all clocks in JSON format, but it misses a newline character at the end of the JSON string. This patch adds that missing newline character. Signed-off-by: Felipe Balbi [sboyd@codeaurora.org: Squelch checkpatch with seq_puts()] Signed-off-by: Stephen Boyd drivers/clk/clk.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit de88d8becb55ed477a0926a4b91c21076f5f9b86 Author: Ben Hutchings Date: Mon Apr 13 03:20:20 2015 +0100 firmware: Update information in linux.git about adding firmware Kyle McMartin joined the linux-firmware maintainers, and we now have an alias which reaches all of us. Include that instead of the individual addresses. Add some further recommendations that were already included in the README in linux-firmware.git added by Xose Vazquez Perez . Signed-off-by: Ben Hutchings Signed-off-by: Jonathan Corbet firmware/README.AddingFirmware | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) commit 43b0e7ea590b51052384ecedf4ad7c8d7898e8e7 Author: NeilBrown Date: Sun May 3 09:16:53 2015 +1000 nfsd: stop READDIRPLUS returning inconsistent attributes The NFSv3 READDIRPLUS gets some of the returned attributes from the readdir, and some from an inode returned from a new lookup. The two objects could be different thanks to intervening renames. The attributes in READDIRPLUS are optional, so let's just skip them if we notice this case. Signed-off-by: NeilBrown Signed-off-by: J. Bruce Fields fs/nfsd/nfs3xdr.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) commit e3aa205aa131d9b6452c51191dae0aac8e6f1fbd Author: H. Nikolaus Schaller Date: Mon Apr 20 22:15:20 2015 +0200 Documentation usb serial: fixed how to provide vendor and product id While trying to test a Cinterion GSM/GPS/3G module I had reconfigured the USB interface by mistake and therefore needed to run a different USB driver than CDC-ACM. It turned out that I need the "usbserial" driver. This file is an official description how to use it: Documentation/usb/usb-serial.txt But it is outdated. The parameters vendor= and product= have been superseded by a /sys interface. Here was the solution: https://bbs.archlinux.org/viewtopic.php?id=175499 insmod usbserial vendor=0x#### product=0x#### becomes (first #### is vendor, second is product) modprobe usbserial echo #### #### >/sys/bus/usb-serial/drivers/generic/new_id This patch changes the documentation file to describe the modern variant. Please note that the old one still works (if compiled as module). Signed-off-by: H. Nikolaus Schaller Signed-off-by: Marek Belisko Signed-off-by: Jonathan Corbet Documentation/usb/usb-serial.txt | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) commit 4ae711f4a37bff6cf501b48d58f9e28b031b02c9 Author: Chen Gang Date: Sun Apr 5 12:25:44 2015 +0800 Docs: blackfin: Use new switch macro SAMPLE_IRQ_TIMER instead of IRQ_TIMER5 Not all blackfin machines support IRQ_TIMER5, but all machines support IRQ_TIMER2. So add a switch macro for them. The related error: Documentation/blackfin/gptimers-example.c: In function 'gptimer_example_init': Documentation/blackfin/gptimers-example.c:60:20: error: 'IRQ_TIMER5' undeclared (first use in this function) ret = request_irq(IRQ_TIMER5, gptimer_example_irq, IRQF_SHARED, DRIVER_NAME, &data); ^ Documentation/blackfin/gptimers-example.c:60:20: note: each undeclared identifier is reported only once for each function it appears in Documentation/blackfin/gptimers-example.c: In function 'gptimer_example_exit': Documentation/blackfin/gptimers-example.c:78:11: error: 'IRQ_TIMER5' undeclared (first use in this function) free_irq(IRQ_TIMER5, &data); ^ Also notice about 80 columns limitation. Signed-off-by: Chen Gang Signed-off-by: Jonathan Corbet Documentation/blackfin/gptimers-example.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) commit c6201cd8513db2db54b248a862672849ed9ccb82 Author: Bjorn Helgaas Date: Thu May 7 09:52:22 2015 -0500 PCI/MSI: Remove unused pci_msi_off() pci_msi_off() is unused, so remove it. Removes the exported symbol pci_msi_off(). Signed-off-by: Bjorn Helgaas drivers/pci/pci.c | 33 --------------------------------- include/linux/pci.h | 1 - 2 files changed, 34 deletions(-) commit 96803199b774e0bdc5910d63be5839c4460bd856 Author: Michael S. Tsirkin Date: Thu May 7 09:52:22 2015 -0500 PCI/MSI: Drop pci_msi_off() calls from quirks The PCI core now disables MSI and MSI-X for all devices during enumeration regardless of CONFIG_PCI_MSI. Remove device-specific code to disable MSI/MSI-X. Signed-off-by: Michael S. Tsirkin Signed-off-by: Bjorn Helgaas drivers/pci/quirks.c | 2 -- 1 file changed, 2 deletions(-) commit 8c9bb608e8ac6fef829a629aa46a5238fad272a4 Author: Michael S. Tsirkin Date: Thu May 7 09:52:22 2015 -0500 ntb: Drop pci_msi_off() call during probe The PCI core now disables MSI and MSI-X for all devices during enumeration regardless of CONFIG_PCI_MSI. Remove device-specific code to disable MSI/MSI-X. Signed-off-by: Michael S. Tsirkin Signed-off-by: Bjorn Helgaas drivers/ntb/ntb_hw.c | 2 -- 1 file changed, 2 deletions(-) commit c1f4d88abda3c6894d4027f85f640641b0ad3597 Author: Michael S. Tsirkin Date: Thu May 7 09:52:21 2015 -0500 virtio_pci: drop pci_msi_off() call during probe The PCI core now disables MSI and MSI-X for all devices during enumeration regardless of CONFIG_PCI_MSI. Remove device-specific code to disable MSI/MSI-X. Signed-off-by: Michael S. Tsirkin Signed-off-by: Bjorn Helgaas drivers/virtio/virtio_pci_common.c | 3 --- 1 file changed, 3 deletions(-) commit 1851617cd2da9cc53cdc1738f4148f4f042c0e56 Author: Michael S. Tsirkin Date: Thu May 7 09:52:21 2015 -0500 PCI/MSI: Disable MSI at enumeration even if kernel doesn't support MSI If we enable MSI, then kexec a new kernel, the new kernel may receive MSIs it is not prepared for. Commit d5dea7d95c48 ("PCI: msi: Disable msi interrupts when we initialize a pci device") prevents this, but only if the new kernel is built with CONFIG_PCI_MSI=y. Move the "disable MSI" functionality from drivers/pci/msi.c to a new pci_msi_setup_pci_dev() in drivers/pci/probe.c so we can disable MSIs when we enumerate devices even if the kernel doesn't include full MSI support. [bhelgaas: changelog, disable MSIs in pci_setup_device(), put pci_msi_setup_pci_dev() at its final destination] Signed-off-by: Michael S. Tsirkin Signed-off-by: Bjorn Helgaas drivers/pci/msi.c | 12 ------------ drivers/pci/probe.c | 18 ++++++++++++++++++ 2 files changed, 18 insertions(+), 12 deletions(-) commit 6a25f5e35ab742380742ebf2033f6d53518219db Author: Michael S. Tsirkin Date: Thu May 7 09:52:21 2015 -0500 PCI/MSI: Export pci_msi_set_enable(), pci_msix_clear_and_set_ctrl() Move pci_msi_set_enable() and pci_msix_clear_and_set_ctrl() to drivers/pci/pci.h so they're available even when MSI isn't configured into the kernel. No functional change. [bhelgaas: changelog, split into separate patch] Signed-off-by: Michael S. Tsirkin Signed-off-by: Bjorn Helgaas Reviewed-by: Fam Zheng drivers/pci/msi.c | 21 --------------------- drivers/pci/pci.h | 21 +++++++++++++++++++++ 2 files changed, 21 insertions(+), 21 deletions(-) commit 61b64abd399fa4b15ac649ad93b453d2a8569314 Author: Michael S. Tsirkin Date: Thu May 7 09:52:21 2015 -0500 PCI/MSI: Rename msi_set_enable(), msix_clear_and_set_ctrl() Rename msi_set_enable() to pci_msi_set_enable() and msix_clear_and_set_ctrl() to pci_msix_clear_and_set_ctrl(). No functional change. [bhelgaas: changelog, split into separate patch] Signed-off-by: Michael S. Tsirkin Signed-off-by: Bjorn Helgaas Reviewed-by: Fam Zheng drivers/pci/msi.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) commit 5f636b75099fc09e31ce4d8b520bded06785edab Author: Peter Griffin Date: Thu Apr 30 15:30:00 2015 +0200 ARM: DT: STi: STiH418: Enable USB3 port on stih418-b2199. The USB3 controller is present on the b2199 board, so enable it in the board specific DT file. Signed-off-by: Peter Griffin Signed-off-by: Maxime Coquelin arch/arm/boot/dts/stih418-b2199.dts | 4 ++++ 1 file changed, 4 insertions(+) commit 0dee58e66f3ef68464c951d912e0b6215240fdad Author: Peter Griffin Date: Thu Apr 30 15:30:00 2015 +0200 ARM: DT: STi: STiH418: Add miphy28lp optional oscillator clock properties STiH418 miphy28lp port0/1 need the oscillator clock configured in the same way as on STiH407/STiH410 platforms. Signed-off-by: Peter Griffin Signed-off-by: Maxime Coquelin arch/arm/boot/dts/stih418-b2199.dts | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 571ac3be06f1b35b53994a2d45c3f0cf4c2a9959 Author: Peter Griffin Date: Thu Apr 30 15:30:00 2015 +0200 ARM: DT: STi: stihxxx-b2120: Enable USB3 port on stih407-b2120 and stih410-b2120 The USB3 controller is present on both variants of the b2120 board so enable the controller in the generic stihxxx-b2120.dtsi file. Signed-off-by: Peter Griffin Signed-off-by: Maxime Coquelin arch/arm/boot/dts/stihxxx-b2120.dtsi | 5 +++++ 1 file changed, 5 insertions(+) commit fd55599834d6bb3f6dd90a7aa0a87e4616461261 Author: Peter Griffin Date: Thu Apr 30 15:30:00 2015 +0200 ARM: DT: STi: STiH407: Add dwc3 usb3 DT node. Now that both usb2 and usb3 phy drivers, and also the ST dwc3 glue code are all present upstream, we can add the dwc3 DT node and have a working usb3 controller on stih407-b2120 and stih410-b2020. Signed-off-by: Peter Griffin Acked-by: Lee Jones Acked-by: Maxime Coquelin Signed-off-by: Maxime Coquelin arch/arm/boot/dts/stih407-family.dtsi | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) commit 743ac9d2216014927a8e58942ba96d4fb27685db Author: Peter Griffin Date: Thu Apr 30 15:30:00 2015 +0200 ARM: DT: STi: STiH407: Update picophyreset for the usb3 controllers usb2 phy Ths picophyreset is incorrectly defined, which stops the usb2 phy being taken out of reset. Signed-off-by: Peter Griffin Acked-by: Lee Jones Signed-off-by: Maxime Coquelin arch/arm/boot/dts/stih407-family.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f4e1eb966256b15335054fac7b304f14e4965b5d Author: Michal Malý Date: Wed Apr 8 22:56:53 2015 +0200 HID: hid-lg: Only one of LG_FF flags can be set for a given device Only one of LG_FF flags can be set for a given device. Signed-off-by: Michal Malý Signed-off-by: Jiri Kosina drivers/hid/hid-lg.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit bbfd0ccc598ded2ec9f618f10b5bc54b1130f4d3 Author: Michal Malý Date: Wed Apr 8 22:56:52 2015 +0200 HID: hid-lg4ff: Update respective sysfs interface documentation Update respective sysfs interface documentation - Refer to the sysfs interface for "range" using "/sys/bus/..." - Update contact email address Signed-off-by: Michal Malý Signed-off-by: Jiri Kosina Documentation/ABI/testing/sysfs-driver-hid-logitech-lg4ff | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit d61a70ec93251d77608864e0f6daf6dd1bfd4a6f Author: Michal Malý Date: Wed Apr 8 22:56:51 2015 +0200 HID: hid-lg4ff: Allow the driver to continue without sysfs interface Allow the driver to continue without sysfs interface. Instead of bailing out allow the driver to continue in a degraded mode. Signed-off-by: Michal Malý Signed-off-by: Jiri Kosina drivers/hid/hid-lg4ff.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 5d9d60ad308c867b271cc03233f2c93a0f5d80ec Author: Michal Malý Date: Wed Apr 8 22:56:50 2015 +0200 HID: hid-lg4ff: Constify members of lg4ff_device_entry Constify those members of lg4ff_device_entry struct whose value is not supposed to change. Signed-off-by: Michal Malý Signed-off-by: Jiri Kosina drivers/hid/hid-lg4ff.c | 54 +++++++++++++++++++++++++++++++++++-------------- 1 file changed, 39 insertions(+), 15 deletions(-) commit c28abd8c423b85e2d8be8ed33984a3ad966f1c83 Author: Michal Malý Date: Wed Apr 8 22:56:49 2015 +0200 HID: hid-lg4ff: Store pointer to the output HID report struct in the device entry struct Store pointer to the output HID report struct in the device entry struct. This eliminates the need to look the HID report struct up every time it is needed. Signed-off-by: Michal Malý Signed-off-by: Jiri Kosina drivers/hid/hid-lg4ff.c | 67 +++++++++++++++++++++++-------------------------- 1 file changed, 32 insertions(+), 35 deletions(-) commit c918fe781fab6d8bdc35f1652dc4f95f2bf6950d Author: Michal Malý Date: Wed Apr 8 22:56:48 2015 +0200 HID: hid-lg4ff: Protect concurrent access to output HID report Protect concurrent access to output HID report with a spinlock. The HID report structure used to submit commands to wheels is shared amongst all functions that need to do so and some of these functions can be executed in parallel. Additionally, lg4ff_play() can be called from interrupt context by ff-memless module. Locking is necessary to prevent sending bogus data to the wheels. Signed-off-by: Michal Malý Signed-off-by: Jiri Kosina drivers/hid/hid-lg4ff.c | 110 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) commit b211a6388ca279a16a6627da2f3681a2cab18444 Author: Michal Malý Date: Wed Apr 8 22:56:47 2015 +0200 HID: hid-lg4ff: Stop the hid device from lg4ff Stop the hid device from lg4ff. Originally hid-lg was responsible for stopping of the device. Signed-off-by: Michal Malý Signed-off-by: Jiri Kosina drivers/hid/hid-lg.c | 4 ++-- drivers/hid/hid-lg4ff.c | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) commit 72529c65a5399be02c619ed8592e38a3e5f049f3 Author: Michal Malý Date: Wed Apr 8 22:56:46 2015 +0200 HID: hid-lg4ff: Make lg4ff_wheel_data a separate structure Make lg4ff_wheel_data a separate structure stored within lg4ff_device_entry. Adjust the initialization process accordingly. Signed-off-by: Michal Malý Signed-off-by: Jiri Kosina drivers/hid/hid-lg4ff.c | 166 +++++++++++++++++++++++++----------------------- 1 file changed, 88 insertions(+), 78 deletions(-) commit 2dbf635ea1c0b62a957438d72a162175680a3d4a Author: Michal Malý Date: Wed Apr 8 22:56:45 2015 +0200 HID: hid-lg: Check return values from lg[N]ff_init() Check return values from lg[N]ff_init(). hid-lg did not check return values from the lg[N]_init() functions, possibly trying to work with a device whose initialization has failed. Signed-off-by: Michal Malý Signed-off-by: Jiri Kosina drivers/hid/hid-lg.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit 9c2a6bd1133f7eae42b7b4e245d2aafecaf4a082 Author: Michal Malý Date: Wed Apr 8 22:56:44 2015 +0200 HID: hid-lg4ff: Update a warning message Update a warning message for a case where device is incorrectly flagged to be handled by hid-lg4ff in hid-lg. The original warning message was highly misleading. This warning can be triggered only if a device is flagged to be handled by hid-lg4ff in hid-lg but hid-lg4ff lacks support for such device. Signed-off-by: Michal Malý Signed-off-by: Jiri Kosina drivers/hid/hid-lg4ff.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 371a1d9e1fed7dc4113386b23d92cccc3cfc6d8d Author: Michal Malý Date: Wed Apr 8 22:56:43 2015 +0200 HID: hid-lg4ff: Explicit casts from void * are not necessary Explicit casts from void * are not necessary. Signed-off-by: Michal Malý Signed-off-by: Jiri Kosina drivers/hid/hid-lg4ff.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 0a33a7bcb5af29f8936b49dfe7b2b5bc932ad03d Author: Michal Malý Date: Wed Apr 8 22:56:42 2015 +0200 HID: hid-lg4ff: Remove unused variable from the "lg4ff_device_entry" struct. Remove unused variable from the "lg4ff_device_entry" struct. This is a leftover from times where hid_get|set_drvdata() was not available to hid-lg4ff so it had to keep track of the devices it managed by itself. Signed-off-by: Michal Malý Signed-off-by: Jiri Kosina drivers/hid/hid-lg4ff.c | 1 - 1 file changed, 1 deletion(-) commit fbf85e2ad1ade7bcc9efa0557c19bea5fffd192a Author: Michal Malý Date: Wed Apr 8 22:56:41 2015 +0200 HID: hid-lg4ff: Replace DEVICE_ATTR_RW with DEVICE_ATTR to have all internal functions prefixed with "lg4ff_" Replace DEVICE_ATTR_RW with DEVICE_ATTR to have all internal functions prefixed with "lg4ff_". All internal functions should be prefixed with just "lg4ff_". Usage of DEVICE_ATTR_RW breaks this scheme because it expects the functions' names to match the name of the respective sysfs entry. This partially reverts "2f1cec3250e38609bf9252db52dbbe61603c04a7" Signed-off-by: Michal Malý Signed-off-by: Jiri Kosina drivers/hid/hid-lg4ff.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit d0afd84893ebdbbe6dc022514cd6b62fbc90a034 Author: Michal Malý Date: Wed Apr 8 22:56:40 2015 +0200 HID: hid-lg4ff: Remove "hid_" prefix from some functions' names Remove "hid_" prefix from some functions' names. All internal functions of hid-lg4ff should be prefixed with just "lg4ff_" Signed-off-by: Michal Malý Signed-off-by: Jiri Kosina drivers/hid/hid-lg4ff.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) commit 2a552c30b2e44578b8d063e55b717ba94df84667 Author: Michal Malý Date: Wed Apr 8 22:56:39 2015 +0200 HID: hid-lg4ff: Remove double underscore prefix from numeric types Remove double underscore prefix from numeric types. This code will never be used outside the kernel so the prefixes are unnecessary. Signed-off-by: Michal Malý Signed-off-by: Jiri Kosina drivers/hid/hid-lg4ff.c | 52 ++++++++++++++++++++++++------------------------- drivers/hid/hid-lg4ff.h | 4 ++-- 2 files changed, 28 insertions(+), 28 deletions(-) commit 6b442bc81337913eb775965a67ffdb8a36935422 Author: Thomas Gleixner Date: Thu May 7 14:35:59 2015 +0200 nohz: Fix !HIGH_RES_TIMERS hang Simon Horman reported this crash on a system with high-res timers disabled but nohz enabled: > ------------[ cut here ]------------ > kernel BUG at kernel/irq_work.c:135! BUG_ON(!irqs_disabled()); So something enabled interrupts in the periodic tick handling machinery, and that code path indeed has a local_irq_disable()/enable pair in tick_nohz_switch_to_nohz() which causes havoc. Fix it. This patch also fixes a +nohz -hrtimers hang reported by Ingo Molnar. Reported-by: Simon Horman Reported-by: Ingo Molnar Tested-by: Simon Horman Signed-off-by: Thomas Gleixner Cc: Borislav Petkov Cc: H. Peter Anvin Cc: LAK Cc: Magnus Damm Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/alpine.DEB.2.11.1505071425520.4225@nanos Signed-off-by: Ingo Molnar kernel/time/tick-sched.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit 6310372dc34bae740db280d3354b2e470cd31284 Author: Hiep Cao Minh Date: Thu Apr 30 11:12:12 2015 +0900 spi: rspi: Re-do the returning value of rspi_dma_check_then_transfer To reduce indentation and complexity of code, insteeds of returning zero the function rspi_dma_check_then_transfer should return rspi_dma_transfer directly after checking error. Signed-off-by: Hiep Cao Minh Signed-off-by: Mark Brown drivers/spi/spi-rspi.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) commit bf45a24243eb0673f52eaaac620617601e484f07 Author: Andrei Otcheretianski Date: Wed May 6 18:30:50 2015 +0300 mac80211: adjust reserved chan_ctx when assigned to vif When a vif starts using a reserved channel context (during CSA, for example) the required chandef was recalculated, however it was never applied. This could result in using chanctx with narrower width than actually required. Fix this by calling ieee80211_change_chanctx with the recalculated chandef. This both changes the chanctx's width and recalcs min_def. Signed-off-by: Andrei Otcheretianski Reviewed-by: Luciano Coelho Signed-off-by: Johannes Berg net/mac80211/chan.c | 4 ++++ 1 file changed, 4 insertions(+) commit 0d78ef2698171cc9d9a54fc956fd332103ac1330 Author: Fabio Estevam Date: Wed Apr 29 11:11:41 2015 -0300 ARM: imx_v6_v7_defconfig: Enable RTC PCF8523 support RTC PCF8523 is used on some mx6 cubox-i boards. Let it work by default. Reported-by: Rick Thomas Signed-off-by: Fabio Estevam Signed-off-by: Shawn Guo arch/arm/configs/imx_v6_v7_defconfig | 1 + 1 file changed, 1 insertion(+) commit 2fa3b4c4a78a5db3502ab9e32630ea660ff923d0 Author: Liu Ying Date: Fri Apr 3 12:51:05 2015 +0800 video: mxsfb: Make sure axi clock is enabled when accessing registers The LCDIF engines embedded in i.MX6sl and i.MX6sx SoCs need the axi clock as the engine's system clock. The clock should be enabled when accessing LCDIF registers, otherwise the kernel would hang up. We should also keep the clock enabled when the engine is being active to scan out frames from memory. This patch makes sure the axi clock is enabled when accessing registers so that the kernel hang up issue can be fixed. Reported-by: Peter Chen Tested-by: Peter Chen Cc: # 3.19+ Signed-off-by: Liu Ying Signed-off-by: Tomi Valkeinen drivers/video/fbdev/mxsfb.c | 68 +++++++++++++++++++++++++++++++++++---------- 1 file changed, 54 insertions(+), 14 deletions(-) commit a7c42990f1bed8665037fd5a3848ffb02de3b553 Author: Harald Geyer Date: Tue Apr 28 13:17:49 2015 +0200 framebuffer: don't link fb_devio into kernel image unconditionally CONFIG_FB_DEFERRED_IO is defined as bool while CONFIG_FB is defined as tristate. Currently fb_defio.o is linked into the kernel image even if CONFIG_FB=m. I fix this by updating the Makefile to link fb_defio.o into fb.o and thus go into one place with the other core framebuffer code. Signed-off-by: Harald Geyer Signed-off-by: Tomi Valkeinen drivers/video/fbdev/core/Makefile | 2 +- drivers/video/fbdev/core/fb_defio.c | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) commit ab160dbbc4ba71a4e339382d37b31ea44fd43e86 Author: Sylvain BERTRAND Date: Thu May 7 00:36:04 2015 +0000 scripts: fix link-vmlinux.sh bash-ism While building linux with dash shell: LINK vmlinux trap: SIGHUP: bad trap /src/linux-4.0/Makefile:933: recipe for target 'vmlinux' failed make[1]: *** [vmlinux] Error 1 See the following document for behavior of posix shell trap instruction: http://pubs.opengroup.org/onlinepubs/000095399/utilities/trap.html Cc: Ingo Molnar Signed-off-by: Sylvain BERTRAND Signed-off-by: Michal Marek scripts/link-vmlinux.sh | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) commit 3490c0e45f7e5a5b1e5c62e4c60b0e55b2e75e71 Author: Borislav Petkov Date: Thu May 7 12:06:43 2015 +0200 x86/mce/amd: Zap changelog It is useless and git history has it all detailed anyway. Update copyright while at it. Signed-off-by: Borislav Petkov Cc: Aravind Gopalakrishnan arch/x86/kernel/cpu/mcheck/mce_amd.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) commit 8cb9764fc88b41db11f251e8b2a0d006578b7eb4 Author: Chris Metcalf Date: Wed May 6 18:04:26 2015 +0200 nohz: Set isolcpus when nohz_full is set nohz_full is only useful with isolcpus are also set, since otherwise the scheduler has to run periodically to try to determine whether to steal work from other cores. Accordingly, when booting with nohz_full=xxx on the command line, we should act as if isolcpus=xxx was also set, and set (or extend) the isolcpus set to include the nohz_full cpus. Signed-off-by: Chris Metcalf Signed-off-by: Frederic Weisbecker Acked-by: Rik van Riel Acked-by: Mike Galbraith Acked-by: Peter Zijlstra (Intel) Cc: Borislav Petkov Cc: Dave Jones Cc: H. Peter Anvin Cc: Martin Schwidefsky Cc: Oleg Nesterov Cc: Paul E. McKenney Cc: Rafael J. Wysocki Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1430928266-24888-5-git-send-email-fweisbec@gmail.com Signed-off-by: Ingo Molnar kernel/sched/core.c | 3 +++ 1 file changed, 3 insertions(+) commit 83dedea8a07fb4bf91863764b15c1c4ec00330f9 Author: Chris Metcalf Date: Wed May 6 18:04:25 2015 +0200 nohz: Add tick_nohz_full_add_cpus_to() API This API is useful to modify a cpumask indicating some special nohz-type functionality so that the nohz cores are automatically added to that set. Signed-off-by: Chris Metcalf Signed-off-by: Frederic Weisbecker Acked-by: Peter Zijlstra (Intel) Cc: Borislav Petkov Cc: Dave Jones Cc: H. Peter Anvin Cc: Martin Schwidefsky Cc: Mike Galbraith Cc: Oleg Nesterov Cc: Paul E. McKenney Cc: Rafael J. Wysocki Cc: Rik van Riel Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1429024675-18938-1-git-send-email-cmetcalf@ezchip.com Link: http://lkml.kernel.org/r/1430928266-24888-4-git-send-email-fweisbec@gmail.com Signed-off-by: Ingo Molnar include/linux/tick.h | 7 +++++++ 1 file changed, 7 insertions(+) commit fafe870f31212a72f3c2d74e7b90e4ef39e83ee1 Author: Frederic Weisbecker Date: Wed May 6 18:04:24 2015 +0200 context_tracking: Inherit TIF_NOHZ through forks instead of context switches TIF_NOHZ is used by context_tracking to force syscall slow-path on every task in order to track userspace roundtrips. As such, it must be set on all running tasks. It's currently explicitly inherited through context switches. There is no need to do it in this fast-path though. The flag could simply be set once for all on all tasks, whether they are running or not. Lets do this by setting the flag for the init task on early boot, and let it propagate through fork inheritance. While at it, mark context_tracking_cpu_set() as init code, we only need it at early boot time. Suggested-by: Oleg Nesterov Signed-off-by: Frederic Weisbecker Reviewed-by: Rik van Riel Cc: Borislav Petkov Cc: Chris Metcalf Cc: Dave Jones Cc: H. Peter Anvin Cc: Martin Schwidefsky Cc: Mike Galbraith Cc: Paul E . McKenney Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Rafael J . Wysocki Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1430928266-24888-3-git-send-email-fweisbec@gmail.com Signed-off-by: Ingo Molnar include/linux/context_tracking.h | 10 --------- include/linux/sched.h | 3 +++ kernel/context_tracking.c | 44 +++++++++++++++++----------------------- kernel/sched/core.c | 1 - 4 files changed, 22 insertions(+), 36 deletions(-) commit aed5ed47724f6a7453fa62e3c90f3cee93edbfe3 Author: Frederic Weisbecker Date: Wed May 6 18:04:23 2015 +0200 context_tracking: Protect against recursion Context tracking recursion can happen when an exception triggers in the middle of a call to a context tracking probe. This special case can be caused by vmalloc faults. If an access to a memory area allocated by vmalloc happens in the middle of context_tracking_enter(), we may run into an endless fault loop because the exception in turn calls context_tracking_enter() which faults on the same vmalloc'ed memory, triggering an exception again, etc... Some rare crashes have been reported so lets protect against this with a recursion counter. Reported-by: Dave Jones Signed-off-by: Frederic Weisbecker Reviewed-by: Rik van Riel Acked-by: Peter Zijlstra (Intel) Cc: Borislav Petkov Cc: Chris Metcalf Cc: H. Peter Anvin Cc: Martin Schwidefsky Cc: Mike Galbraith Cc: Oleg Nesterov Cc: Paul E. McKenney Cc: Rafael J . Wysocki Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1430928266-24888-2-git-send-email-fweisbec@gmail.com Signed-off-by: Ingo Molnar include/linux/context_tracking_state.h | 1 + kernel/context_tracking.c | 29 +++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) commit a34bcbedf8c9f6e960a09ed677d320392b1fe8d0 Author: Qipan Li Date: Thu May 7 07:13:10 2015 +0000 spi: sirf: replace kmalloc by devm_kzalloc Signed-off-by: Qipan Li Signed-off-by: Barry Song Signed-off-by: Mark Brown drivers/spi/spi-sirf.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit 1038a6872802bb4a07f627162ff989bf49e2e5cc Author: Linus Walleij Date: Thu Apr 30 15:15:50 2015 +0200 iio: magnetometer: support for lsm303dlh The LSM303DLH accelerometer/magnetometer has a different device identification method than using register 0x0f, instead three registers contain a magic value. We rely on WhoAmI to be zero for this variant. Signed-off-by: Linus Walleij Signed-off-by: Jonathan Cameron .../devicetree/bindings/iio/st-sensors.txt | 1 + drivers/iio/magnetometer/st_magn.h | 1 + drivers/iio/magnetometer/st_magn_core.c | 116 +++++++++++++++++++++ drivers/iio/magnetometer/st_magn_i2c.c | 5 + 4 files changed, 123 insertions(+) commit 5e02bac3172fcad964eeef70ad21f583982a6eba Author: Linus Walleij Date: Thu Apr 30 15:15:49 2015 +0200 iio: st_sensors: make detection more helpful The ST sensors are detected by reading a WhoAmI register and matching the number found to a sensor name string. To make it easier to figure out what happens when things go wrong, print the WhoAmI value and the device name we're trying to match. Signed-off-by: Linus Walleij Signed-off-by: Jonathan Cameron drivers/iio/common/st_sensors/st_sensors_core.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit bb60646c8befe218d0bd49e71e62252cd6408ae5 Author: Linus Walleij Date: Thu Apr 30 15:15:48 2015 +0200 iio: st_sensors: make BDU optional Not all sensors support BDU (block data update) and in fact a bunch of the in-kernel sensor settings do not specify the BDU address field. Make this optional. Signed-off-by: Linus Walleij Signed-off-by: Jonathan Cameron drivers/iio/common/st_sensors/st_sensors_core.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit d2bc431868a1c3172bb8fa3187a90fa806bba484 Author: Linus Walleij Date: Thu Apr 30 15:15:47 2015 +0200 iio: st_sensors: make interrupt optional Some sensors such as magnetometers and pressure sensors doesn't have interrupts at all, and thus no DRDY setting applies. Make the assignment of an interrupt optional, and do not call st_sensors_set_drdy_int_pin() if there is no drdy (data ready) pin specified. Signed-off-by: Linus Walleij Signed-off-by: Jonathan Cameron drivers/iio/common/st_sensors/st_sensors_core.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit 3337c9ff17948e1879fb06ea722baa9519533e0f Author: Linus Walleij Date: Thu Apr 30 15:15:46 2015 +0200 iio: st_sensors: print error when failing to get IRQ Print a proper error message if we're missing the trigger IRQ. Signed-off-by: Linus Walleij Signed-off-by: Jonathan Cameron drivers/iio/common/st_sensors/st_sensors_trigger.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit e693e15e869fb314c86770c1f1451fdd013654c0 Author: Antonio Ospite Date: Mon May 4 11:13:04 2015 +0200 iio: accel: kxcjk-1013: add some blank lines for readability Some extra blank lines between if checks don't hurt and improve readability. Signed-off-by: Antonio Ospite Cc: Bastien Nocera Reviewed-by: Daniel Baluta Signed-off-by: Jonathan Cameron drivers/iio/accel/kxcjk-1013.c | 3 +++ 1 file changed, 3 insertions(+) commit 61e2c70da9cfc79e8485eafa0f98b5919b04bbe1 Author: Antonio Ospite Date: Mon May 4 11:13:03 2015 +0200 iio: accel: kxcjk-1013: add the "KXCJ9000" ACPI id This id has been seen in the DSDT of the Teclast X98 Air 3G tablet based on Intel Bay Trail. Signed-off-by: Antonio Ospite Cc: Bastien Nocera Reviewed-by: Daniel Baluta Cc: Signed-off-by: Jonathan Cameron drivers/iio/accel/kxcjk-1013.c | 1 + 1 file changed, 1 insertion(+) commit 1a30295a09e022c57d7ce6d94c0134af9afaf8d6 Author: Jonathan Cameron Date: Sat May 2 11:29:42 2015 +0100 iio:prox:sx9500 trivial simplification of return path in init function. Signed-off-by: Jonathan Cameron Reported-by: kbuild test robot Cc: Vlad Dogaru drivers/iio/proximity/sx9500.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit b91617ea62af5558af598ae9ad069db96f2ab00e Author: Jonathan Cameron Date: Sat May 2 12:05:05 2015 +0100 staging:iio:light: Add some missing brackets to make sure code works as intended. Note this is not a bug due to the fact the region cannot be reached without the sanity check passing. The autobuilder reported it as missaligned code which is kind of true as well. Signed-off-by: Jonathan Cameron Cc: Roberta Dobrescu drivers/staging/iio/light/isl29018.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 8cd161b1f755decd8b7f6c9c7144119281fe11a4 Author: Borislav Petkov Date: Thu May 7 11:38:08 2015 +0200 x86/traps: Remove superfluous weak definitions and dead code Those were leftovers of the x86 merge, see 081f75bbdc86 ("traps: x86: make traps_32.c and traps_64.c equal") for example and are not needed now. Signed-off-by: Borislav Petkov arch/x86/kernel/traps.c | 17 ----------------- 1 file changed, 17 deletions(-) commit 4eb64dce8d0a3ceccc0036383e4683b7c3ea7a50 Author: Paolo Bonzini Date: Thu Apr 30 12:57:28 2015 +0200 KVM: x86: dump VMCS on invalid entry Code and format roughly based on Xen's vmcs_dump_vcpu. Signed-off-by: Paolo Bonzini arch/x86/kvm/vmx.c | 153 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 153 insertions(+) commit a3eb97bd80134ba07864ca00747466c02118aca1 Author: Marcelo Tosatti Date: Fri Apr 24 22:36:14 2015 -0300 x86: kvmclock: drop rdtsc_barrier() Drop unnecessary rdtsc_barrier(), as has been determined empirically, see 057e6a8c660e95c3f4e7162e00e2fee1fc90c50d for details. Noticed by Andy Lutomirski. Improves clock_gettime() by approximately 15% on Intel i7-3520M @ 2.90GHz. Signed-off-by: Marcelo Tosatti Signed-off-by: Paolo Bonzini arch/x86/include/asm/pvclock.h | 1 - 1 file changed, 1 deletion(-) commit d90e3a35e90af7f8beceebefc90e62eae237c5ed Author: Julia Lawall Date: Mon Apr 27 22:35:34 2015 +0200 KVM: x86: drop unneeded null test If the null test is needed, the call to cancel_delayed_work_sync would have already crashed. Normally, the destroy function should only be called if the init function has succeeded, in which case ioapic is not null. Problem found using Coccinelle. Suggested-by: Michael S. Tsirkin Signed-off-by: Julia Lawall Signed-off-by: Paolo Bonzini arch/x86/kvm/ioapic.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit 74545705cb2e398efc3cd751628c58f021323434 Author: Radim Krčmář Date: Mon Apr 27 15:11:25 2015 +0200 KVM: x86: fix initial PAT value PAT should be 0007_0406_0007_0406h on RESET and not modified on INIT. VMX used a wrong value (host's PAT) and while SVM used the right one, it never got to arch.pat. This is not an issue with QEMU as it will force the correct value. Signed-off-by: Radim Krčmář Signed-off-by: Paolo Bonzini arch/x86/kvm/svm.c | 2 +- arch/x86/kvm/vmx.c | 12 ++---------- arch/x86/kvm/x86.c | 2 ++ arch/x86/kvm/x86.h | 2 ++ 4 files changed, 7 insertions(+), 11 deletions(-) commit 653f52c316a49c5ee2701bc13b15879f20790662 Author: Rik van Riel Date: Thu Apr 23 11:52:37 2015 -0400 kvm,x86: load guest FPU context more eagerly Currently KVM will clear the FPU bits in CR0.TS in the VMCS, and trap to re-load them every time the guest accesses the FPU after a switch back into the guest from the host. This patch copies the x86 task switch semantics for FPU loading, with the FPU loaded eagerly after first use if the system uses eager fpu mode, or if the guest uses the FPU frequently. In the latter case, after loading the FPU for 255 times, the fpu_counter will roll over, and we will revert to loading the FPU on demand, until it has been established that the guest is still actively using the FPU. This mirrors the x86 task switch policy, which seems to work. Signed-off-by: Rik van Riel Signed-off-by: Paolo Bonzini arch/x86/kvm/x86.c | 15 +++++++++++++-- include/linux/kvm_host.h | 1 + 2 files changed, 14 insertions(+), 2 deletions(-) commit d1ebdbf99a3ce90f3b886c2cf0dfd7da17703d2a Author: James Sullivan Date: Wed Mar 18 19:26:04 2015 -0600 kvm: x86: Deliver MSI IRQ to only lowest prio cpu if msi_redir_hint is true An MSI interrupt should only be delivered to the lowest priority CPU when it has RH=1, regardless of the delivery mode. Modified kvm_is_dm_lowest_prio() to check for either irq->delivery_mode == APIC_DM_LOWPRI or irq->msi_redir_hint. Moved kvm_is_dm_lowest_prio() into lapic.h and renamed to kvm_lowest_prio_delivery(). Changed a check in kvm_irq_delivery_to_apic_fast() from irq->delivery_mode == APIC_DM_LOWPRI to kvm_is_dm_lowest_prio(). Signed-off-by: James Sullivan Reviewed-by: Radim Krčmář Signed-off-by: Paolo Bonzini arch/x86/kvm/irq_comm.c | 11 ++++------- arch/x86/kvm/lapic.c | 2 +- arch/x86/kvm/lapic.h | 6 ++++++ 3 files changed, 11 insertions(+), 8 deletions(-) commit 93bbf0b8bc80f0ee3c629542a4dea14a3537760b Author: James Sullivan Date: Wed Mar 18 19:26:03 2015 -0600 kvm: x86: Extended struct kvm_lapic_irq with msi_redir_hint for MSI delivery Extended struct kvm_lapic_irq with bool msi_redir_hint, which will be used to determine if the delivery of the MSI should target only the lowest priority CPU in the logical group specified for delivery. (In physical dest mode, the RH bit is not relevant). Initialized the value of msi_redir_hint to true when RH=1 in kvm_set_msi_irq(), and initialized to false in all other cases. Added value of msi_redir_hint to a debug message dump of an IRQ in apic_send_ipi(). Signed-off-by: James Sullivan Reviewed-by: Radim Krčmář Signed-off-by: Paolo Bonzini arch/x86/include/asm/kvm_host.h | 1 + arch/x86/kvm/ioapic.c | 1 + arch/x86/kvm/irq_comm.c | 3 ++- arch/x86/kvm/lapic.c | 6 ++++-- arch/x86/kvm/x86.c | 1 + 5 files changed, 9 insertions(+), 3 deletions(-) commit b7cb22317305883d50f930cd6bf2fdb37df930c1 Author: Paolo Bonzini Date: Tue Apr 21 14:57:05 2015 +0200 KVM: x86: tweak types of fields in kvm_lapic_irq Change to u16 if they only contain data in the low 16 bits. Change the level field to bool, since we assign 1 sometimes, but just mask icr_low with APIC_INT_ASSERT in apic_send_ipi. Signed-off-by: Paolo Bonzini arch/x86/include/asm/kvm_host.h | 8 ++++---- arch/x86/kvm/lapic.c | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) commit d28bc9dd25ce023270d2e039e7c98d38ecbf7758 Author: Nadav Amit Date: Mon Apr 13 14:34:08 2015 +0300 KVM: x86: INIT and reset sequences are different x86 architecture defines differences between the reset and INIT sequences. INIT does not initialize the FPU (including MMX, XMM, YMM, etc.), TSC, PMU, MSRs (in general), MTRRs machine-check, APIC ID, APIC arbitration ID and BSP. References (from Intel SDM): "If the MP protocol has completed and a BSP is chosen, subsequent INITs (either to a specific processor or system wide) do not cause the MP protocol to be repeated." [8.4.2: MP Initialization Protocol Requirements and Restrictions] [Table 9-1. IA-32 Processor States Following Power-up, Reset, or INIT] "If the processor is reset by asserting the INIT# pin, the x87 FPU state is not changed." [9.2: X87 FPU INITIALIZATION] "The state of the local APIC following an INIT reset is the same as it is after a power-up or hardware reset, except that the APIC ID and arbitration ID registers are not affected." [10.4.7.3: Local APIC State After an INIT Reset ("Wait-for-SIPI" State)] Signed-off-by: Nadav Amit Message-Id: <1428924848-28212-1-git-send-email-namit@cs.technion.ac.il> Signed-off-by: Paolo Bonzini arch/x86/include/asm/kvm_host.h | 6 ++--- arch/x86/kvm/lapic.c | 11 +++++---- arch/x86/kvm/lapic.h | 2 +- arch/x86/kvm/svm.c | 27 +++++++++++----------- arch/x86/kvm/vmx.c | 51 +++++++++++++++++++++++------------------ arch/x86/kvm/x86.c | 17 ++++++++------ 6 files changed, 63 insertions(+), 51 deletions(-) commit 90de4a1875180f8347c075319af2cce586c96ab6 Author: Nadav Amit Date: Mon Apr 13 01:53:41 2015 +0300 KVM: x86: Support for disabling quirks Introducing KVM_CAP_DISABLE_QUIRKS for disabling x86 quirks that were previous created in order to overcome QEMU issues. Those issue were mostly result of invalid VM BIOS. Currently there are two quirks that can be disabled: 1. KVM_QUIRK_LINT0_REENABLED - LINT0 was enabled after boot 2. KVM_QUIRK_CD_NW_CLEARED - CD and NW are cleared after boot These two issues are already resolved in recent releases of QEMU, and would therefore be disabled by QEMU. Signed-off-by: Nadav Amit Message-Id: <1428879221-29996-1-git-send-email-namit@cs.technion.ac.il> [Report capability from KVM_CHECK_EXTENSION too. - Paolo] Signed-off-by: Paolo Bonzini Documentation/virtual/kvm/api.txt | 3 ++- arch/x86/include/asm/kvm_host.h | 2 ++ arch/x86/include/uapi/asm/kvm.h | 3 +++ arch/x86/kvm/lapic.c | 5 +++-- arch/x86/kvm/svm.c | 3 ++- arch/x86/kvm/x86.c | 30 ++++++++++++++++++++++++++++++ include/uapi/linux/kvm.h | 1 + 7 files changed, 43 insertions(+), 4 deletions(-) commit e233d54d4d975760073700b15de975ef702e8194 Author: Paolo Bonzini Date: Thu Apr 30 14:39:40 2015 +0200 KVM: booke: use __kvm_guest_exit Signed-off-by: Paolo Bonzini arch/powerpc/kvm/booke.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit ccf73aaf5adfa37f45be12459c17f534e8f2c2c5 Author: Christian Borntraeger Date: Thu Apr 30 13:43:31 2015 +0200 KVM: arm/mips/x86/power use __kvm_guest_{enter|exit} Use __kvm_guest_{enter|exit} instead of kvm_guest_{enter|exit} where interrupts are disabled. Signed-off-by: Christian Borntraeger Signed-off-by: Paolo Bonzini arch/arm/kvm/arm.c | 4 ++-- arch/mips/kvm/mips.c | 4 ++-- arch/powerpc/kvm/powerpc.c | 2 +- arch/x86/kvm/x86.c | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) commit 0097d12e504b3ce57b68810737ad6a5a64a98c68 Author: Christian Borntraeger Date: Thu Apr 30 13:43:30 2015 +0200 KVM: provide irq_unsafe kvm_guest_{enter|exit} Several kvm architectures disable interrupts before kvm_guest_enter. kvm_guest_enter then uses local_irq_save/restore to disable interrupts again or for the first time. Lets provide underscore versions of kvm_guest_{enter|exit} that assume being called locked. kvm_guest_enter now disables interrupts for the full function and thus we can remove the check for preemptible. This patch then adopts s390/kvm to use local_irq_disable/enable calls which are slighty cheaper that local_irq_save/restore and call these new functions. Signed-off-by: Christian Borntraeger Signed-off-by: Paolo Bonzini arch/s390/kvm/kvm-s390.c | 10 ++++++---- include/linux/kvm_host.h | 27 ++++++++++++++++++--------- 2 files changed, 24 insertions(+), 13 deletions(-) commit ff7bbb9c6ab6e6620429daeff39424bbde1a94b4 Author: Luiz Capitulino Date: Thu Apr 23 17:12:42 2015 -0400 kvmclock: set scheduler clock stable If you try to enable NOHZ_FULL on a guest today, you'll get the following error when the guest tries to deactivate the scheduler tick: WARNING: CPU: 3 PID: 2182 at kernel/time/tick-sched.c:192 can_stop_full_tick+0xb9/0x290() NO_HZ FULL will not work with unstable sched clock CPU: 3 PID: 2182 Comm: kworker/3:1 Not tainted 4.0.0-10545-gb9bb6fb #204 Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 Workqueue: events flush_to_ldisc ffffffff8162a0c7 ffff88011f583e88 ffffffff814e6ba0 0000000000000002 ffff88011f583ed8 ffff88011f583ec8 ffffffff8104d095 ffff88011f583eb8 0000000000000000 0000000000000003 0000000000000001 0000000000000001 Call Trace: [] dump_stack+0x4f/0x7b [] warn_slowpath_common+0x85/0xc0 [] warn_slowpath_fmt+0x46/0x50 [] can_stop_full_tick+0xb9/0x290 [] tick_nohz_irq_exit+0x8d/0xb0 [] irq_exit+0xc5/0x130 [] smp_apic_timer_interrupt+0x4a/0x60 [] apic_timer_interrupt+0x6e/0x80 [] ? _raw_spin_unlock_irqrestore+0x31/0x60 [] __wake_up+0x48/0x60 [] n_tty_receive_buf_common+0x49c/0xba0 [] ? tty_ldisc_ref+0x1f/0x70 [] n_tty_receive_buf2+0x14/0x20 [] flush_to_ldisc+0xe0/0x120 [] process_one_work+0x1d5/0x540 [] ? process_one_work+0x151/0x540 [] worker_thread+0x121/0x470 [] ? process_one_work+0x540/0x540 [] kthread+0xef/0x110 [] ? __kthread_parkme+0xa0/0xa0 [] ret_from_fork+0x42/0x70 [] ? __kthread_parkme+0xa0/0xa0 ---[ end trace 06e3507544a38866 ]--- However, it turns out that kvmclock does provide a stable sched_clock callback. So, let the scheduler know this which in turn makes NOHZ_FULL work in the guest. Signed-off-by: Marcelo Tosatti Signed-off-by: Luiz Capitulino Signed-off-by: Paolo Bonzini arch/x86/kernel/kvmclock.c | 3 +++ 1 file changed, 3 insertions(+) commit 956079e081427fe0c929eb284ab7e39f9b8e2023 Author: Srinivas Pandruvada Date: Wed May 6 12:15:54 2015 -0700 x86/platform/atom/punit: Add Punit device state debug driver The patch adds a debug driver, which dumps the power states of all the North complex (NC) devices. This debug interface is useful to figure out the devices, which blocks the S0ix transitions on the platform. This is extremely useful during enabling PM on customer platforms and derivatives. This submission is based on the submission from Mahesh Kumar P: https://lkml.org/lkml/2014/11/5/367 Signed-off-by: Srinivas Pandruvada Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Mahesh Kumar P Cc: Thomas Gleixner Cc: pebolle@tiscali.nl Link: http://lkml.kernel.org/r/1430939754-6900-2-git-send-email-srinivas.pandruvada@linux.intel.com Signed-off-by: Ingo Molnar arch/x86/Kconfig.debug | 11 ++ arch/x86/platform/Makefile | 1 + arch/x86/platform/atom/Makefile | 1 + arch/x86/platform/atom/punit_atom_debug.c | 183 ++++++++++++++++++++++++++++++ 4 files changed, 196 insertions(+) commit 4339ed82b2fe11689353ab1955c8ee1af8b5c385 Author: Daniel Stone Date: Mon Apr 20 19:22:52 2015 +0100 drm: Don't leak path blob property when updating Previously, when updating the path blob property, we would leak the existing one. Make this symmetrical with the tile and EDID blob pointers. Signed-off-by: Daniel Stone Cc: Dave Airlie Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_crtc.c | 3 +++ 1 file changed, 3 insertions(+) commit 9b0adc29d203116cadd81b663518104cfb19b48c Author: Daniel Stone Date: Mon Apr 20 19:22:50 2015 +0100 drm/atomic: Don't open-code CRTC state destroy One failure path in crtc_helper had an open-coded CRTC state destroy which didn't actually call through to the driver's specified state destroy. Fix that. Signed-off-by: Daniel Stone Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_crtc_helper.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit bfcd74d2aeda25a78f7cc92f80650218b1bce0ca Author: Ville Syrjälä Date: Thu Apr 2 17:02:11 2015 +0300 drm/edid: Add DMT modes with ID > 0x50 DMT Version 1.0, Rev. 13 lists a bunch of new modes we don't currently have in our dmt mode table. So add them. The order may look a bit weird since it's not sorted based on the DMT ID, but this is the order they appear in the standard. I suppose they are ordered by the resolution, pixel clock, or some such factor. I decided that it's perhaps best to keep the same order as the spec. Cc: "liu,lei" Signed-off-by: Ville Syrjälä Reviewed-by: Alex Deucher Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_edid.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) commit 24b856b1365266605be07825e4bfc265b5c6b744 Author: Ville Syrjälä Date: Thu Apr 2 17:02:10 2015 +0300 drm/edid: Add the DMT ID in the comments To help with matching things to spec, include the DMT ID in the comments in out DMT mode table. Cc: "liu,lei" Signed-off-by: Ville Syrjälä Reviewed-by: Alex Deucher Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_edid.c | 160 ++++++++++++++++++++++----------------------- 1 file changed, 80 insertions(+), 80 deletions(-) commit fcf22d0567ad6cea6d2e84f28bbfa8c73642e899 Author: Ville Syrjälä Date: Thu Apr 2 17:02:09 2015 +0300 drm/edid: Fix up DMT modes Liu Lei noticed that our 1856x1392@75Hz DMT mode doesn't match the spec. Fix that up, and also fix up a few other inconsistencies I discovered by parsing the spec (DMT version 1.0, revision 13) and comparing the results to our current DMT mode table. Also clean up the indentation mess for the 1024x768i mode. Cc: "liu,lei" Signed-off-by: Ville Syrjälä Reviewed-by: Alex Deucher Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_edid.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 6e5e9a06a206010eabd19b523fd0833c51afc0b0 Author: Sean Young Date: Wed May 6 21:38:42 2015 +0100 HID: sjoy: support Super Joy Box 4 This device supports force feedback and has two ports. Signed-off-by: Sean Young Signed-off-by: Jiri Kosina drivers/hid/hid-core.c | 1 + drivers/hid/hid-sjoy.c | 3 +++ drivers/hid/usbhid/hid-quirks.c | 1 - 3 files changed, 4 insertions(+), 1 deletion(-) commit 4c3e829849cc05f82c11fe9a3c662c7e1323d6cf Author: Frank Praznik Date: Tue May 5 20:47:33 2015 -0400 HID: sony: Correct a typo in a HID descriptor comment and explain the odd Sixaxis axis mapping Correct a spelling mistake in the Sixaxis HID descriptor comment. Add an explanation as to why the Sixaxis has so many analog axes and why some of them are seen as multi-touch axes. Signed-off-by: Frank Praznik Acked-by: Pavel Machek Signed-off-by: Jiri Kosina drivers/hid/hid-sony.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit 221399b36535752351d4631606b427daca3dc35c Author: Frank Praznik Date: Tue May 5 20:47:32 2015 -0400 HID: sony: Simplify LED initialization and eliminate redundant copies when updating LED states Directly set the initial LED states in the device state struct instead of copying them from a temporary array. This allows for the removal of a redundant "x = x" copy loop in sony_set_leds() that was taking place any time an LED was updated. It also allows for the simplifying of the parameters in functions dealing with LED initialization and updates since only a pointer to the sony_sc struct is needed now. Signed-off-by: Frank Praznik Acked-by: Pavel Machek Signed-off-by: Jiri Kosina drivers/hid/hid-sony.c | 58 ++++++++++++++++++++++++-------------------------- 1 file changed, 28 insertions(+), 30 deletions(-) commit 8f069fdf5bbc6b300f9c88801d0d858d2a4d46e6 Author: Frank Praznik Date: Tue May 5 20:47:31 2015 -0400 HID: sony: Correct Sony device ordering Rearrange Sony controller devices into alphabetical order in the hardware device list. Signed-off-by: Frank Praznik Acked-by: Pavel Machek Signed-off-by: Jiri Kosina drivers/hid/hid-core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c5e0c1c4950f9126f7eb2fb1d3f8aa4080f05538 Author: Frank Praznik Date: Tue May 5 20:47:30 2015 -0400 HID: sony: Add support for the Sony Motion Controller Add a fixed-up HID descriptor for the Sony motion controller and enable controls for the LED light as well as force-feedback. The LED is multi-colored (red, green, blue). The motion controller has a single rumble motor so the higher of the left and right values is used to set the speed. Signed-off-by: Pavel Machek Signed-off-by: Frank Praznik Acked-by: Pavel Machek Signed-off-by: Jiri Kosina drivers/hid/hid-sony.c | 138 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 136 insertions(+), 2 deletions(-) commit 7c886d098d6128438e706ca4c068b8920fdac42d Author: Frank Praznik Date: Tue May 5 20:47:29 2015 -0400 HID: sony: Add the product ID for the Sony Motion Controller Adds the PID for the Sony motion controller to the hardware ID list. Signed-off-by: Pavel Machek Signed-off-by: Frank Praznik Acked-by: Pavel Machek Signed-off-by: Jiri Kosina drivers/hid/hid-core.c | 1 + drivers/hid/hid-ids.h | 1 + 2 files changed, 2 insertions(+) commit 131a8a9a56f16d8d237b39a8677ccee44a355392 Author: Frank Praznik Date: Tue May 5 20:47:28 2015 -0400 HID: sony: Prevent the freeing of an unitialized ida value sony_allocate_output_report() was being called before sony_set_device_id() which meant that an unallocated ida value was was freed if the output report allocation failed and the probe function jumped to err_stop. Do the device ID allocation before the output report allocation to avoid freeing an unallocated value in case of a failure. Signed-off-by: Frank Praznik Acked-by: Pavel Machek Signed-off-by: Jiri Kosina drivers/hid/hid-sony.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 30c7469ba6f5eccf33ac33ec7cb19414f50cf3bf Author: Johannes Thumshirn Date: Thu May 7 10:21:24 2015 +0200 MAINTAINERS: Change Johannes Thumshirn's email address Change my email address to something that is not associated with my current or future employer. Suggested-by: Borislav Petkov Signed-off-by: Johannes Thumshirn Cc: linux-edac Cc: linux-watchdog@vger.kernel.org Cc: Mauro Carvalho Chehab Cc: Wim Van Sebroeck Cc: Greg Kroah-Hartman Link: http://lkml.kernel.org/r/1430986884-8760-1-git-send-email-jthumshirn@suse.de Signed-off-by: Borislav Petkov MAINTAINERS | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit c6f2104caaf00720a3a7a456af07f93a160693af Author: Jiri Slaby Date: Tue May 5 10:09:53 2015 +0200 HID: prodikeys: remove unused variable 'key' is set but never used in the first loop. So remove the set. And indent the re-set of pm->last_key properly. Signed-off-by: Jiri Slaby Signed-off-by: Jiri Kosina drivers/hid/hid-prodikeys.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 868c00bb5980653c44d931384baa2c7f1bde81ef Author: Aravind Gopalakrishnan Date: Wed May 6 06:58:58 2015 -0500 x86/mce/amd: Rename setup_APIC_mce 'setup_APIC_mce' doesn't give us an indication of why we are going to program LVT. Make that explicit by renaming it to setup_APIC_mce_threshold so we know. No functional change is introduced. Signed-off-by: Aravind Gopalakrishnan Cc: Tony Luck Cc: x86-ml Cc: linux-edac Link: http://lkml.kernel.org/r/1430913538-1415-7-git-send-email-Aravind.Gopalakrishnan@amd.com Signed-off-by: Borislav Petkov arch/x86/kernel/cpu/mcheck/mce_amd.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e03930620ae856a6ed79007207337d10011ecb36 Author: Nicholas Mc Guire Date: Sat May 2 17:55:15 2015 +0200 HID: make timeout HZ independent wait_event_interruptible_timeout() expects a timeout in jiffies so the numeric constant becomes HZ dependent - put it through msecs_to_jiffies() to make it HZ independent. Signed-off-by: Nicholas Mc Guire Signed-off-by: Jiri Kosina drivers/hid/hid-lg.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 5c0d728e1a8ccbaf68ec37181e466627ba0a6efc Author: Aravind Gopalakrishnan Date: Wed May 6 06:58:57 2015 -0500 x86/irq: Cleanup ordering of vector numbers Sort vector number assignments in proper descending order. No functional change. Signed-off-by: Aravind Gopalakrishnan Cc: Tony Luck Cc: x86-ml Link: http://lkml.kernel.org/r/1430913538-1415-6-git-send-email-Aravind.Gopalakrishnan@amd.com Signed-off-by: Borislav Petkov arch/x86/include/asm/irq_vectors.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 181a8b911dd26cd44dc7283d7953a2e138842767 Author: Benjamin Tissoires Date: Fri May 1 16:22:45 2015 -0400 HID: lenovo: add support for Lenovo ThinkPad Keyboard Pro unit This dock is used with the Thinkpad Helix 2 but suffers from an error in the report descriptor where an usage max is 65535. Add a report fixup for it and make the keyboard working. Tested-by: Jonathan Oppenheim Tested-by: John Reid Signed-off-by: Benjamin Tissoires Signed-off-by: Jiri Kosina drivers/hid/hid-core.c | 1 + drivers/hid/hid-ids.h | 1 + drivers/hid/hid-lenovo.c | 31 +++++++++++++++++++++++++++++++ 3 files changed, 33 insertions(+) commit 24fd78a81f6d3fe7f7a440c8629f9c52cd5f830e Author: Aravind Gopalakrishnan Date: Wed May 6 06:58:56 2015 -0500 x86/mce/amd: Introduce deferred error interrupt handler Deferred errors indicate error conditions that were not corrected, but require no action from S/W (or action is optional).These errors provide info about a latent UC MCE that can occur when a poisoned data is consumed by the processor. Processors that report these errors can be configured to generate APIC interrupts to notify OS about the error. Provide an interrupt handler in this patch so that OS can catch these errors as and when they happen. Currently, we simply log the errors and exit the handler as S/W action is not mandated. Signed-off-by: Aravind Gopalakrishnan Cc: Tony Luck Cc: x86-ml Cc: linux-edac Link: http://lkml.kernel.org/r/1430913538-1415-5-git-send-email-Aravind.Gopalakrishnan@amd.com Signed-off-by: Borislav Petkov arch/x86/include/asm/entry_arch.h | 3 ++ arch/x86/include/asm/hardirq.h | 3 ++ arch/x86/include/asm/hw_irq.h | 2 + arch/x86/include/asm/irq_vectors.h | 1 + arch/x86/include/asm/mce.h | 3 ++ arch/x86/include/asm/trace/irq_vectors.h | 6 +++ arch/x86/include/asm/traps.h | 3 +- arch/x86/kernel/cpu/mcheck/mce_amd.c | 93 ++++++++++++++++++++++++++++++++ arch/x86/kernel/entry_64.S | 5 ++ arch/x86/kernel/irq.c | 6 +++ arch/x86/kernel/irqinit.c | 4 ++ arch/x86/kernel/traps.c | 5 ++ 12 files changed, 133 insertions(+), 1 deletion(-) commit 3094fe121e7514687dd1bdc35127a23be257400e Author: Rafał Miłecki Date: Tue Apr 7 10:39:41 2015 +0200 mtd: m25p80: remove unused flash entries from id_table We had many entries that were recently added just to allow selecting some flashes directly but were never used. They weren't providing any special flash handling, we just needed them due to the lack of some generic binding string. With the introduction of "nor-jedec" (in 1103b85) they won't be needed unless we discover some faulty flash requiring workarounds. As explained in m25p80 DT documentation we require specifying "nor-jedec" now as less specific compatible entry. Signed-off-by: Rafał Miłecki Signed-off-by: Brian Norris drivers/mtd/devices/m25p80.c | 60 ++++++++++++++++++-------------------------- 1 file changed, 24 insertions(+), 36 deletions(-) commit b79c332fb283c101abb5d8570dea2d29f3871802 Author: Gabor Juhos Date: Tue Apr 7 19:35:02 2015 +0200 mtd: spi-nor: add support for the ISSI SI25CD512 SPI flash Signed-off-by: Gabor Juhos Signed-off-by: Brian Norris drivers/mtd/spi-nor/spi-nor.c | 3 +++ 1 file changed, 3 insertions(+) commit 660b5b07cfbc393a14b54a9801a7974b11e282bc Author: Gabor Juhos Date: Tue Apr 7 19:35:01 2015 +0200 mtd: spi-nor: add support for the Macronix MX25L512E SPI flash chip Signed-off-by: Gabor Juhos Signed-off-by: Brian Norris drivers/mtd/spi-nor/spi-nor.c | 1 + 1 file changed, 1 insertion(+) commit 57b8045d13569b7d8a1861bd61b7b664e417f7bc Author: Lars-Peter Clausen Date: Mon Apr 6 12:00:39 2015 +0200 mtd: Switch to PM ops Use dev_pm_ops instead of the legacy suspend/resume callbacks for the MTD class suspend and resume operations. While we are at it slightly reorder things to avoid the need for forward declarations. Signed-off-by: Lars-Peter Clausen Signed-off-by: Brian Norris drivers/mtd/mtdcore.c | 44 ++++++++++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 20 deletions(-) commit b94665322b786a806a0169752ff2f35f3f467b99 Author: Krzysztof Kozlowski Date: Sat May 2 00:50:03 2015 +0900 mtd: samsung: 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: Brian Norris drivers/mtd/onenand/samsung.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0abe75d225b80d540f1be92e0403d912fbf4aa3c Author: Krzysztof Kozlowski Date: Sat May 2 00:50:02 2015 +0900 mtd: s3c2410: 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: Brian Norris drivers/mtd/nand/s3c2410.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8d1e568d2d466d4a5a8f3c0a1474c715f0ac68c8 Author: Krzysztof Kozlowski Date: Sat May 2 00:50:01 2015 +0900 mtd: mxc-nand: 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: Brian Norris drivers/mtd/nand/mxc_nand.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ce914e6b2658b9f1773ff57b3d45682a7ca4552f Author: Rob Herring Date: Thu Apr 30 15:17:47 2015 -0500 mtd: nand: pxa3xx: fix build on ARM64 In preparation to enable ARCH_MMP on ARM64, a couple of fixes are needed to build the pxa3xx_nand driver: Legacy DMA will only used on ARM, so also make it condtional on CONFIG_ARM. __raw_{read,write}sl are not available on ARM64 or generically, so use the readsl/writesl variants instead. Somewhat inconsistently, {read,write}sl are inherently non-swapping with the generic version using __raw_{read,write}l. Signed-off-by: Rob Herring Acked-by: Ezequiel Garcia Cc: David Woodhouse Cc: linux-mtd@lists.infradead.org [Brian: added one more __raw_readsl -> readsl] Signed-off-by: Brian Norris drivers/mtd/nand/pxa3xx_nand.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) commit afca11ec13066d53c7b21fdd02dff2662a86eef5 Author: Maxime Ripard Date: Tue Apr 7 15:32:45 2015 +0200 mtd: nand: pxa3xx: Switch FIFO draining to jiffies-based timeout Now that the driver handles the FIFO draining in a threaded interrupt, we can base our timeout on jiffies and sleeping, instead of using mdelay. Signed-off-by: Maxime Ripard Signed-off-by: Brian Norris drivers/mtd/nand/pxa3xx_nand.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) commit 818a45b1d7fbd8c55a4248fe6cd0995e06db04be Author: Nicholas Mc Guire Date: Fri Mar 13 07:54:46 2015 -0400 mtd: fsmc_nand: match wait_for_completion_timeout return type return type of wait_for_completion_timeout is unsigned long not int. An appropriately named unsigned long is added and the assignment fixed up. This not only should help readability but also handles corner cases properly. Signed-off-by: Nicholas Mc Guire Signed-off-by: Brian Norris drivers/mtd/nand/fsmc_nand.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 0bda3e194438dd6801b863e7a9c23ca80a7cff05 Author: Nicholas Mc Guire Date: Fri Mar 13 07:54:45 2015 -0400 mtd: fsmc_nand: fix handling of wait_for_completion_timeout return value wait_for_completion_timeout does not return negative values so result handling here does not need to check for negative return. Signed-off-by: Nicholas Mc Guire Signed-off-by: Brian Norris drivers/mtd/nand/fsmc_nand.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 0aec7ac997b784dfc83125cd120d2bd5d3851eb6 Author: Richard Weinberger Date: Wed Mar 25 14:33:09 2015 +0100 mtd: nand: Remove in vain memset() in nand_onfi_get_features() As all four bytes are written in any case the memset() is in vain. Signed-off-by: Richard Weinberger Signed-off-by: Brian Norris drivers/mtd/nand/nand_base.c | 3 --- 1 file changed, 3 deletions(-) commit 666104436543d171b8b1a7213fd1d8bbef1361d5 Author: Fabian Frederick Date: Mon Mar 16 20:20:28 2015 +0100 mtd: constify of_device_id array of_device_id is always used as const. (See driver.of_match_table and open firmware functions) Signed-off-by: Fabian Frederick Signed-off-by: Brian Norris drivers/mtd/devices/docg3.c | 2 +- drivers/mtd/maps/physmap_of.c | 4 ++-- drivers/mtd/nand/mpc5121_nfc.c | 2 +- drivers/mtd/spi-nor/fsl-quadspi.c | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) commit c0fe07aa50befe2e6e6525181e2080377a1c1494 Author: Gerd Hoffmann Date: Tue May 5 13:52:49 2015 +0200 drm/qxl: rewrite framebuffer support Completely different approach: Instead of encoding each and every framebuffer update as spice operation simply update the shadow framebuffer and maintain a dirty rectangle. Also schedule a worker to push an update for the dirty rectangle as spice operation. Usually a bunch of dirty rectangle updates are collected before the worker actually runs. What changes: Updates get batched now. Instead of sending tons of small updates a few large ones are sent. When the same region is updated multiple times within a short timeframe (scrolling multiple lines for example) we send a single update only. Spice server has an easier job now: The dependency tree for display operations which spice server maintains for lazy rendering is alot smaller now. Spice server's image compression probably works better too with the larger image blits. Net effect: framebuffer console @ qxldrmfb is an order of magnitude faster now. Signed-off-by: Gerd Hoffmann Signed-off-by: Dave Airlie drivers/gpu/drm/qxl/qxl_fb.c | 275 +++++++++---------------------------------- 1 file changed, 57 insertions(+), 218 deletions(-) commit 49f897647aab5958ad34a392b82fb22b7c83c01e Merge: 5ebe6af 4a324d3 Author: Dave Airlie Date: Thu May 7 13:02:39 2015 +1000 Merge tag 'topic/drm-misc-2015-05-06' of git://anongit.freedesktop.org/drm-intel into drm-next misc drm core patches. * tag 'topic/drm-misc-2015-05-06' of git://anongit.freedesktop.org/drm-intel: drm: simplify master cleanup drm: simplify authentication management drm: drop unused 'magicfree' list drm: fix a memleak on mutex failure path drm/atomic-helper: Really recover pre-atomic plane/cursor behavior drm/qxl: Fix qxl_noop_get_vblank_counter() drm: Zero out invalid vblank timestamp in drm_update_vblank_count. (v2) drm: Prevent invalid use of vblank_disable_immediate. (v2) drm/vblank: Fixup and document timestamp update/read barriers DRM: Don't re-poll connector for disconnect drm: Fix for DP CTS test 4.2.2.5 - I2C DEFER handling drm: Fix the 'native defer' message in drm_dp_i2c_do_msg() drm/atomic-helper: Don't call atomic_update_plane when it stays off commit f5cd2ae1e4ad23bc6527b4a667d3f27534730cc5 Author: Brian Norris Date: Sat Feb 28 02:13:13 2015 -0800 mtd: nand_bbt: fix theoretical integer overflow in BBT write This statement was written with a cast-to-loff_t to be sure to have a full 64-bit mask. However, we don't account for the fact that '1 << this->bbt_erase_shift' might already overflow. This will not be a problem in practice, since eraseblocks should never be anywhere near 4GiB. But we can do this for completeness, and quiet Coverity in the meantime. CID #1226806. Signed-off-by: Brian Norris drivers/mtd/nand/nand_bbt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 83c59542d0af36d6331e11869cd3d8197dec1551 Author: Brian Norris Date: Sat Feb 28 02:13:12 2015 -0800 mtd: nand_bbt: unify/fix error handling in nand_scan_bbt() Don't leak this->bbt, and return early if check_create() fails. It helps to have a single error path to avoid these problems. Signed-off-by: Brian Norris drivers/mtd/nand/nand_bbt.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) commit 17799359e7b3fa6ef4f2bf926cd6821cf7903ecf Author: Brian Norris Date: Sat Feb 28 02:13:11 2015 -0800 mtd: nand_bbt: make nand_scan_bbt() static This implementation detail is no longer needed outside of nand_bbt.c. Signed-off-by: Brian Norris drivers/mtd/nand/nand_bbt.c | 2 +- include/linux/mtd/nand.h | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) commit d24fe0c3e8a79579fdf966c8cff530962742f79c Author: Brian Norris Date: Sat Feb 28 02:13:10 2015 -0800 mtd: diskonchip: don't call nand_scan_bbt() directly The diskonchip driver almost uses the default nand_base hooks as-is, except that it provides custom on-flash BBT descriptors and avoids using factory-marked bad blockers. So let's refactor the BBT initialization code into a private 'late_init' hook which handles all the private details. Note the usage of NAND_SKIP_BBTSCAN, which allows us to defer the BBT scan until we've prepared everything. Signed-off-by: Brian Norris drivers/mtd/nand/diskonchip.c | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) commit a2281e821fc4f75d75c4c2d08398a8884b7d7632 Author: Brian Norris Date: Sat Feb 28 02:13:09 2015 -0800 mtd: nand_bbt: drop unnecessary header Signed-off-by: Brian Norris drivers/mtd/nand/nand_bbt.c | 1 - 1 file changed, 1 deletion(-) commit 3419e49a0efafc9577413a250f330de5e14e6705 Author: Krzysztof Kozlowski Date: Wed May 6 16:55:21 2015 -0700 Input: s3c2410_ts - 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: Dmitry Torokhov drivers/input/touchscreen/s3c2410_ts.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8550b073716eda61329710bf133b8f5c25df40fa Author: Krzysztof Kozlowski Date: Wed May 6 16:54:56 2015 -0700 Input: samsung-keypad - 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: Dmitry Torokhov drivers/input/keyboard/samsung-keypad.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5f6f117c12a3fb25ecadd6dfcdd1a3a431269ade Author: Paul Cercueil Date: Wed May 6 16:52:13 2015 -0700 Input: goodix - check the 'buffer status' bit before reading data The MSB of the first byte read via I2C at the coordinates address indicates whether the data is valid or ready (called "buffer status" in the datasheets) when an interrupt is raised. Previously, this bit was ignored, which resulted in a lot of incorrect detections of "finger removed" events. Signed-off-by: Paul Cercueil Acked-by: Bastien Nocera Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/goodix.c | 3 +++ 1 file changed, 3 insertions(+) commit c615dcb6d13e6db3083507114fa3696be98d5211 Author: Guido Martínez Date: Wed May 6 16:35:21 2015 -0700 Input: adp5589-keys - fix event count mask The event mask was specified as 0xF (4 bits) when in reality is 0x1F (5 bits) in order to be capable of representing all FIFO length values from 0 to 16. This caused a problem: when the keypad reported 16 pending events the driver took it as 0, and did nothing. This in turn caused the keypad to re-issue the interrupt over and over again. Signed-off-by: Guido Martínez Acked-by: Michael Hennerich Signed-off-by: Dmitry Torokhov drivers/input/keyboard/adp5589-keys.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 195e610bf7104d0dbe7e420e361dfb154694691d Author: Guido Martínez Date: Wed May 6 16:33:40 2015 -0700 Input: adp5589-keys - fix pull mask setting The pull mask is created by looping each row (column) and building an 8-bit integer with the configuration. It is written byte-by-byte, when we reach the end of the rows (columns) or we're at the 3rd line (which finishes the first byte, since each pin is 2bits on the mask). However, this only works if we have at most 8 pins (2 bytes), which is not the case for the ADP5589. So, write the byte at each boundary (every 4 rows/columns). Signed-off-by: Guido Martínez Acked-by: Michael Hennerich Signed-off-by: Dmitry Torokhov drivers/input/keyboard/adp5589-keys.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit d85b11b1a4bee3146540111ef15b5ca1eeb71645 Author: Azael Avalos Date: Sun May 3 17:42:08 2015 -0600 toshiba_bluetooth: Adapt *_enable, *_notify and *_resume functions to rfkill This patch adapts toshiba_bluetooth_enable, toshiba_bt_rfkill_notify and toshiba_bt_resume functions to rfkill. The *_enable function was cleaned from code that the rfkill code now provides, and the other two functions were modified to update the rfkill switch status, as they were only calling toshiba_bluetooth_enable. Signed-off-by: Azael Avalos Signed-off-by: Darren Hart drivers/platform/x86/toshiba_bluetooth.c | 47 ++++++++++++-------------------- 1 file changed, 18 insertions(+), 29 deletions(-) commit 7ee8cd3319d5e57b1b5e2b348f078af44e67a577 Author: Azael Avalos Date: Sun May 3 17:42:07 2015 -0600 toshiba_bluetooth: Add RFKill handler functions This patch adds RFKill handler functions to the driver, allowing it to register and update the rfkill switch status. Also, a comment block was moved from the header to the poll function, as it explains why we need to poll the killswitch on older devices. Signed-off-by: Azael Avalos Signed-off-by: Darren Hart drivers/platform/x86/Kconfig | 1 + drivers/platform/x86/toshiba_bluetooth.c | 77 ++++++++++++++++++++++++++++---- 2 files changed, 69 insertions(+), 9 deletions(-) commit 84c0691e514539900d0f90b1e4442ce49664da5a Author: Azael Avalos Date: Sun May 3 17:42:06 2015 -0600 toshiba_bluetooth: Add a container struct named toshiba_bluetooth_dev This patch adds a struct named toshiba_bluetooth_dev, which will be used to contain the acpi_device struct and bluetooth status booleans. This struct will also be used by later patches to store the rfkill struct as well. Also, a helper function named toshiba_bluetooth_sync_status was added to be also used by upcomming patches. Signed-off-by: Azael Avalos Signed-off-by: Darren Hart drivers/platform/x86/toshiba_bluetooth.c | 47 +++++++++++++++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) commit 2b74103547b4dfaac10cd55464cd2bcc26022a66 Author: Azael Avalos Date: Sun May 3 17:42:05 2015 -0600 toshiba_acpi: Remove bluetooth rfkill code This patch removes all bluetooth rfkill related code residing in the toshiba_acpi driver. Separate patches will add (and adapt) the code to toshiba_bluetooth (where it belongs). Signed-off-by: Azael Avalos Signed-off-by: Darren Hart drivers/platform/x86/Kconfig | 1 - drivers/platform/x86/toshiba_acpi.c | 124 ------------------------------------ 2 files changed, 125 deletions(-) commit 10d089bd4b289cbe08d2565f34e030c8980682f4 Author: Marc Kleine-Budde Date: Tue Sep 23 11:18:11 2014 +0200 can: flexcan: replace open coded "mailbox code" by proper define This patch replaces a open coded variant of a "mailbox code" definition by an existing define, improves code readability. Signed-off-by: Marc Kleine-Budde drivers/net/can/flexcan.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 6f75fce1ea81b1d91f6f1a8e3dd00b0ce8e83982 Author: Marc Kleine-Budde Date: Tue Sep 23 11:03:01 2014 +0200 can: flexcan: rename struct flexcan_regs::crl2 -> ctrl2 This is done to mach the abbreviationin of the register in the datasheets. Signed-off-by: Marc Kleine-Budde drivers/net/can/flexcan.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit 66a6ef02294f066b5e059373e798b700b4b73b3b Author: Marc Kleine-Budde Date: Wed Sep 17 12:50:48 2014 +0200 can: flexcan: add documentation about mailbox organization This patch adds a short documentation snippet about the mailbox organization as it's regularly not correct in freescale's datasheets. Signed-off-by: Marc Kleine-Budde drivers/net/can/flexcan.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 8a1ce7e8f7f87e882607952eea8f2e4a178e3a71 Author: David Jander Date: Fri Oct 10 15:04:03 2014 +0200 can: flexcan: add MB/FIFO specific column to comment table of IP versions Flexcan V10 and newer are able to receive RTR frames in a MB. Older versions are not. Those should use flexcan in FIFO mode. Signed-off-by: David Jander Signed-off-by: Marc Kleine-Budde drivers/net/can/flexcan.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit c1c325d703d347d967242efb8fef6a1c91a31aac Author: Sascha Hauer Date: Mon Apr 27 08:49:57 2015 +0200 tty: serial: 8250_mtk: Add support for bus clock The mtk 8250 needs two clocks, one for providing the baudrate and one that needs to be enabled for register accesses. The latter has not been supported, this patch adds support for it. It is optional for now since not all SoCs provide a bus clock. Signed-off-by: Sascha Hauer Signed-off-by: Greg Kroah-Hartman .../devicetree/bindings/serial/mtk-uart.txt | 12 ++++++++-- drivers/tty/serial/8250/8250_mtk.c | 28 ++++++++++++++++++---- 2 files changed, 34 insertions(+), 6 deletions(-) commit 68e5fc4a255a7f453b8d156b89d1e37a0ad61465 Author: Sascha Hauer Date: Mon Apr 27 08:49:56 2015 +0200 tty: serial: 8250_mtk: use pm_runtime callbacks for enabling The pm_runtime callbacks already enable and disable the device. Use them in probe() and remove() instead of duplicating the code. This allows us to concentrate more code for enabling/disabling the UART in a single place. Signed-off-by: Sascha Hauer Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250_mtk.c | 69 ++++++++++++++++++++------------------ 1 file changed, 36 insertions(+), 33 deletions(-) commit a5fd844599d635baa7e527549dc10896944aad77 Author: Sascha Hauer Date: Mon Apr 27 08:49:55 2015 +0200 tty: serial: 8250_mtk: Use devm_clk_get When a struct device * is present clk_get should be used rather than of_clk_get. Use the devm variant of this function to be able to drop the clk_put in the error and remove pathes. While at it fix a wrong error message. Signed-off-by: Sascha Hauer Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250_mtk.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit 59f89f21b5f34b50584a218734d2b9cc1efd8c0c Author: Sascha Hauer Date: Mon Apr 27 08:49:54 2015 +0200 tty: serial: 8250_mtk: remove unnecessary test When the driver has probed successfully the clk pointer is always valid, so no need to test for it. Signed-off-by: Sascha Hauer Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250_mtk.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) commit c547630f6b5cfebf211b313d7c1f54794ac013f0 Author: Firo Yang Date: Sun Apr 26 18:46:06 2015 +0800 ARM: meson: serial: convert iounmap to devm_iounmap The function meson_uart_release_port() inappropriately try to iounmap() a resource managed by devm_ioremap_nocache(). The function meson_uart_release_port() maybe called by uart_ioctl() that means meson_uart_release_port() is not called from within a probe or remove function, for safety, I convert iounmap() to devm_iounmap(). Signed-off-by: Firo Yang Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/meson_uart.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit eda0cd3546ab2c69796ea0bfdc04723c74372f1d Author: John Ogness Date: Mon Apr 27 13:52:33 2015 +0200 tty: serial: 8250: omap: synchronize rx_running The rx_running flag should show if DMA is currently active. However there is a window between when the flag is set/cleared and when the DMA is started/stopped. Because the flag is queried from both hard and soft irq contexts, the driver can make incorrect decisions and do things like start a DMA transfer using a buffer that is already setup to be used for a DMA transfer. This patch adds a spinlock to synchronize the rx_running flag and close the above mentioned window. Signed-off-by: John Ogness Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250_omap.c | 65 ++++++++++++++++++++++++++++--------- 1 file changed, 49 insertions(+), 16 deletions(-) commit 02ec6041a8dd17d9bd7dd12eb6280a6b112f83e5 Author: John Ogness Date: Mon Apr 27 13:52:25 2015 +0200 dmaenegine: edma: allow pause/resume for non-cyclic mode The 8250_omap serial driver relies on dmaengine_pause() actually pausing the DMA transfer. Before this patch dmaengine_pause() is a NOP for non-cylic DMA transfers. This allowed the 8250_omap driver to read DMA buffers while the DMA was still active, resulting in lost serial data. Signed-off-by: John Ogness Acked-by: Peter Ujfalusi Signed-off-by: Greg Kroah-Hartman drivers/dma/edma.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) commit c2d4bb9d9387231f5e265d59600aeb6409be8e7a Author: John Ogness Date: Mon Apr 27 13:52:15 2015 +0200 ARM: common: edma: clear completion interrupts on stop When stopping a DMA transfer with interrupts disabled it is possible that the DMA transfer completes before the events are cleared. In this case the completion interrupt will be pending, causing a completion callback after the transfer was stopped. By clearing the completion interrupt for the stopping channel it is ensured that no completion event will be generated after the stop. Signed-off-by: John Ogness Acked-by: Peter Ujfalusi Signed-off-by: Greg Kroah-Hartman arch/arm/common/edma.c | 3 +++ 1 file changed, 3 insertions(+) commit 35a0f950aadcb65e43fc1cbc5790f313737d9148 Author: Geert Uytterhoeven Date: Thu Apr 23 16:15:41 2015 +0200 serial: SERIAL_IFX6X60 should depend on HAS_DMA If NO_DMA=y: drivers/built-in.o: In function `ifx_spi_free_device': ifx6x60.c:(.text+0x96d9a): undefined reference to `dma_free_coherent' drivers/built-in.o: In function `ifx_spi_spi_probe': ifx6x60.c:(.text+0x978a2): undefined reference to `dma_alloc_coherent' While DMA is optional in this driver, and is used only if ifx_modem_platform_data.use_dma is set, there are currently no in-tree users of ifx_modem_platform_data (and thus of this driver), so just make it depend on HAS_DMA. Signed-off-by: Geert Uytterhoeven Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cbbcd1f3b8b05e3e4434ab1eb183091aeb6189eb Author: Geert Uytterhoeven Date: Thu Apr 23 16:15:40 2015 +0200 serial: ifx6x60: Remove superfluous casts when calling request_irq() There's no need to cast the last parameter of {request,free}_irq() to "void *", as any pointer type is accepted. Remove the superfluous casts to fix this. Signed-off-by: Geert Uytterhoeven Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/ifx6x60.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) commit 9a499db0325b8a8e2368f21fef66705b120f38ba Author: Geert Uytterhoeven Date: Thu Apr 23 16:15:39 2015 +0200 serial: ifx6x60: Remove dangerous spi_driver casts Casting spi_driver pointers to "void *" when calling spi_{,un}register_driver() bypasses all type checking. Remove the superfluous casts to fix this. Signed-off-by: Geert Uytterhoeven Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/ifx6x60.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit adeede7319cb57e0709ffaebb761932915e46d9d Author: Qipan Li Date: Mon Apr 20 08:10:23 2015 +0000 serial: sirf: move from clk_get to devm_clk_get Signed-off-by: Qipan Li Signed-off-by: Barry Song Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/sirfsoc_uart.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit 4b8038dca0c0ccf5e4689cc4fbbbf4f3728304be Author: Qipan Li Date: Mon Apr 20 08:10:22 2015 +0000 Revert "serial: sirf: add a new uart type support" This reverts commit 52bec4ed4e("serial: sirf: add a new uart type support"). we misunderstood the clock dependency in atlas7. Actually involved several clocks are in a tree structure. we still only need to take the leaf clock node for BT uarts. Signed-off-by: Qipan Li Signed-off-by: Barry Song Signed-off-by: Greg Kroah-Hartman .../devicetree/bindings/serial/sirf-uart.txt | 15 +--------- drivers/tty/serial/sirfsoc_uart.c | 34 +++++----------------- drivers/tty/serial/sirfsoc_uart.h | 4 --- 3 files changed, 8 insertions(+), 45 deletions(-) commit 507224aa88fc2c11f252705ad286bca155e0df02 Author: Valentin Rothberg Date: Sun Apr 12 17:37:24 2015 +0200 serial: 8250: remove Kconfig indirection Remove CONFIG_SERIAL_DETECT_IRQ and CONFIG_SERIAL_MANY_PORTS, and substitute all references to the proper 8250 Kconfig options. Now, the actual Kconfig dependencies are not hidden when reading the code and static analyzers are less confused. Signed-off-by: Valentin Rothberg Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman arch/alpha/include/asm/serial.h | 2 +- arch/m68k/include/asm/serial.h | 2 +- arch/mn10300/include/asm/serial.h | 4 ++-- arch/x86/include/asm/serial.h | 2 +- drivers/tty/serial/8250/8250_core.c | 8 -------- 5 files changed, 5 insertions(+), 13 deletions(-) commit 6b3cddccf4eec0883feb065aea28dd9770bb17d0 Author: Peter Hurley Date: Sat Apr 11 11:02:36 2015 -0400 serial: core: Fix unused variable warnings from uart_console() If CONFIG_SERIAL_CORE_CONSOLE=n, build warnings are generated by uart_console() macro expansion: drivers/tty/serial/of_serial.c: In function ‘of_serial_suspend_8250’: drivers/tty/serial/of_serial.c:262:20: warning: unused variable ‘port’ [-Wunused-variable] struct uart_port *port = &port8250->port; ^ drivers/tty/serial/of_serial.c: In function ‘of_serial_resume_8250’: drivers/tty/serial/of_serial.c:272:20: warning: unused variable ‘port’ [-Wunused-variable] struct uart_port *port = &port8250->port; Signed-off-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman include/linux/serial_core.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bbdfe620b97443e1a127570ca856b000904d42f3 Author: Valentin Rothberg Date: Sun Apr 12 18:18:23 2015 +0200 drivers/tty/serial/mcf.c: fix typo on SERIAL_MCF_CONSOLE Correct reference in C-comment after #endif. Signed-off-by: Valentin Rothberg Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/mcf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 60d0da5168349041b167973c7464ba0815d5fd67 Author: Valentin Rothberg Date: Sun Apr 12 17:54:35 2015 +0200 serial: bfin: ctsrts: enfore Kconfig naming convention The CONFIG_ prefix is reserved for Kconfig options in Make and CPP syntax; static analysis tools rely on this convention. This patch enforces this behavior for SERIAL_BFIN_{HARD_}CTSRTS. Signed-off-by: Valentin Rothberg Acked-by: Sonic Zhang Signed-off-by: Greg Kroah-Hartman arch/blackfin/include/asm/bfin_serial.h | 8 ++++---- drivers/tty/serial/bfin_uart.c | 24 ++++++++++++------------ 2 files changed, 16 insertions(+), 16 deletions(-) commit 5b84c967ccf0573ee4a0b2a53720d5e1e4a8c0f8 Author: Valentin Rothberg Date: Sun Apr 12 17:14:45 2015 +0200 drivers/tty/serial/mpc52xx_uart.c: fix typo in C comment Fix reference on PPC_MPC52xx in C comment after #endif. Signed-off-by: Valentin Rothberg Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/mpc52xx_uart.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 47eb16f68bcce84a2b23cb86d24d6c4066c5d24a Author: Valentin Rothberg Date: Sun Apr 12 17:03:22 2015 +0200 drivers/tty/serial/8250/8250_core.c: remove CONFIG_HUB6 This file local CPP identifier is not referenced anywhere else, so we can safely remove it. Signed-off-by: Valentin Rothberg Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250_core.c | 5 ----- 1 file changed, 5 deletions(-) commit d033e82db9a5e9bc93224c8a058b9c03e4e3f8ad Author: Leilei Zhao Date: Thu Apr 9 10:48:15 2015 +0800 tty/serial: at91: handle IRQ status more safely Handle the changed flag of IRQ status in interruption instead of handling it in tasklet due to the tasklet may be scheduled more than once in one interruption. Otherwise, the changed status may be processed more than once which will lead to unexpected result. And seriously, kernel will crash. Signed-off-by: Leilei Zhao Acked-by: Nicolas Ferre Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/atmel_serial.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) commit 74a76089d2916ff7f87c37a482da6497b17cdb90 Author: Valentin Rothberg Date: Sat Apr 11 15:56:03 2015 +0200 drivers/tty/serial/crisv10.c: rename CPP identifier CONFIG_ETRAX_SERX_DTR_RI_DSR_CD_MIXED The 'CONFIG_' prefix is reserved for Kconfig options in Make and CPP syntax only. Remove this prefix from the self-defined CPP identifier to apply to this convention and make static analysis tools happy. Signed-off-by: Valentin Rothberg Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/crisv10.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit f52e17e4a73e806867328cfade0f768188708878 Author: Valentin Rothberg Date: Sat Apr 11 15:56:02 2015 +0200 drivers/tty/serial/crisv10.c: remove dead #ifdef blocks ETRAX_SERIAL_PROC_ENTRY is not defined in Kconfig. The affected #ifdef block has not been compiled for years, and the embedded macro, PROCSTAT, ended up as a NOOP. Hence, remove the block and all calls to PROCSTAT. Signed-off-by: Valentin Rothberg Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/crisv10.c | 29 ----------------------------- 1 file changed, 29 deletions(-) commit cc020ea404cd73d8eb579d592211c7fd2972ef0f Author: Valentin Rothberg Date: Sat Apr 11 15:56:01 2015 +0200 drivers/tty/serial/crisv10.c: remove dead #ifdef blocks ETRAX_RS485_{ON_PORT_G, LTC1387} are not defined in Kconfig. The affected #ifdef block have not been compiled for years, so remove them entirely. Signed-off-by: Valentin Rothberg Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/crisv10.c | 36 ------------------------------------ 1 file changed, 36 deletions(-) commit 5a56abc77f328881dfe9ff2a751c9934382a392d Author: Valentin Rothberg Date: Sat Apr 11 15:56:00 2015 +0200 drivers/tty/serial/crisv10.c: remove dead #ifdef block ETRAX_EXTERN_PB6CLK_ENABLED is not defined in Kconfig. The affected #ifdef block has not been compiled for years, so remove it entirely. Signed-off-by: Valentin Rothberg Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/crisv10.c | 13 ------------- 1 file changed, 13 deletions(-) commit 0656b1a9a5228f27af3a010b75c2c587213ee4f1 Author: Valentin Rothberg Date: Sat Apr 11 12:21:30 2015 +0200 drivers/tty/serial: altera: fix typos in #endif comments Correct reference on CONFIG_SERIAL_ALTERA_{JTAG}UART_CONSOLE in C-comment after #endif. Signed-off-by: Valentin Rothberg Acked-by: Tobias Klauser Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/altera_jtaguart.c | 2 +- drivers/tty/serial/altera_uart.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit bb5f633ab8c6cd14411ce57273533d26c35e8f85 Author: Valentin Rothberg Date: Sat Apr 11 12:26:19 2015 +0200 drivers/tty/serial/sh-sci.h: remove dead reference on ARCH_SH7372 The Kconfig option ARCH_SH7372 has been removed by commit 59b89af1d555 ("ARM: shmobile: sh7372: Remove Legacy C SoC code"). This patch removes the last reference on this Kconfig option. Signed-off-by: Valentin Rothberg Acked-by: Geert Uytterhoeven Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/sh-sci.h | 1 - 1 file changed, 1 deletion(-) commit cbc7f6bd8f824bdc1a4350e69130ba0419a3589d Author: Joe Perches Date: Mon Mar 30 10:43:23 2015 -0700 serial: kgdb_nmi: Use bool function return values of true/false not 1/0 Use the normal return values for bool functions Signed-off-by: Joe Perches Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/kgdb_nmi.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 429b474990cb4e5e8cfe2352daf649d0599cccb6 Author: Rasmus Villemoes Date: Tue Mar 31 15:55:59 2015 +0200 tty: remove buf parameter from tty_name() tty_name no longer uses the buf parameter, so remove it along with all the 64 byte stack buffers that used to be passed in. Mostly generated by the coccinelle script @depends on patch@ identifier buf; constant C; expression tty; @@ - char buf[C]; <+... - tty_name(tty, buf) + tty_name(tty) ...+> allmodconfig compiles, so I'm fairly confident the stack buffers weren't used for other purposes as well. Signed-off-by: Rasmus Villemoes Reviewed-by: Peter Hurley Acked-by: Jesper Nilsson Acked-by: Dmitry Torokhov Signed-off-by: Greg Kroah-Hartman drivers/input/serio/serport.c | 5 ++--- drivers/tty/amiserial.c | 8 ++------ drivers/tty/cyclades.c | 8 ++------ drivers/tty/n_gsm.c | 3 +-- drivers/tty/n_tty.c | 7 ++----- drivers/tty/serial/crisv10.c | 8 ++------ drivers/tty/serial/serial_core.c | 4 +--- drivers/tty/tty_io.c | 28 +++++++++++----------------- drivers/tty/tty_ioctl.c | 4 +--- drivers/tty/tty_ldisc.c | 8 +++----- include/linux/tty.h | 2 +- 11 files changed, 28 insertions(+), 57 deletions(-) commit 917162c936936a37c51265b3add3885a15e66a82 Author: Rasmus Villemoes Date: Tue Mar 31 15:55:58 2015 +0200 tty: return tty->name directly from tty_name All users of tty_name pass the return value (the provided buffer) to some printf-like function. We can thus avoid the strcpy and, more importantly, later remove the buf parameter completely, eliminating the need for some 64 byte stack buffers. Signed-off-by: Rasmus Villemoes Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/tty_io.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit 1d6b98774cff82860a3f044610e956bcbff556c1 Author: Rasmus Villemoes Date: Tue Mar 31 15:55:57 2015 +0200 tty: constify return type of tty_name All users of tty_name pass the result directly to a printf-like function. This means we can actually let tty_name return the literal "NULL tty" or tty->name directly, avoiding the strcpy and a lot of medium-sized stack buffers. In preparation for that, make the return type const char*. While at it, we can also constify the tty parameter. Signed-off-by: Rasmus Villemoes Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/tty_io.c | 2 +- include/linux/tty.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit caec172d57fde299ee4f4b05c851a059771fd5b7 Author: Fabio Estevam Date: Thu Apr 9 23:22:43 2015 -0300 serial: imx: Remove return value from imx_setup_ufcr() The return value from imx_setup_ufcr() is always 0 and its value is never checked, so better to remove the return value. Signed-off-by: Fabio Estevam Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/imx.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 53794183225f25830ab40e1c83ae885f11501784 Author: Jiada Wang Date: Mon Apr 13 18:31:43 2015 +0900 serial: imx: protect Soft Reset of port with lock Previously Soft Reset (clear of SRST bit in UCR2 register) of UART in startup is not protected by lock, which may have race with console_write, as console_write may occur at anytime even when UART port is shutdown. To avoid this race, protect Soft reset of UART port with spin_lock. Signed-off-by: Jiada Wang Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/imx.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) commit 1e84d22322ceed4767db1e5342c830dd60c8210f Author: Dave Martin Date: Mon Apr 27 16:49:05 2015 +0100 serial/amba-pl011: Refactor and simplify TX FIFO handling Commit 734745c serial/amba-pl011: Activate TX IRQ passively adds some complexity and overhead in the form of a softirq mechanism for transmitting in the absence of interrupts. This patch simplifies the code flow to reduce the reliance on subtle behaviour and avoid fragility under future maintenance. To this end, the TX softirq mechanism is removed and instead pl011_start_tx() will now simply stuff the FIFO until full (guaranteeing future TX IRQs), or until there are no more chars to write (in which case we don't care whether an IRQ happens). Signed-off-by: Dave Martin Signed-off-by: Jakub Kicinski Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/amba-pl011.c | 119 +++++++++------------------------------- 1 file changed, 26 insertions(+), 93 deletions(-) commit f28c1d0a78a8c6a217ac5362cb719efa169ae2a7 Author: Dave Martin Date: Mon Apr 27 16:49:04 2015 +0100 Revert "serial/amba-pl011: Leave the TX IRQ alone when the UART is not open" This reverts commit f2ee6dfa0e8597eea8b98d240b0033994e20d215. Jakub Kiciński observed that this patch can cause the pl011 driver to hang if if the only process with a pl011 port open is killed by a signal, pl011_shutdown() can get called with an arbitrary amount of data still in the FIFO. Calling _shutdown() with the TX FIFO non-empty is questionable behaviour and my itself be a bug. Since the affected patch was speculative anyway, and brings limited benefit, the simplest course is to remove the assumption that TXIS will always be left asserted after the port is shut down. Signed-off-by: Dave Martin Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/amba-pl011.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 83f125e2a1a3c7aba9c40016b9d4bec4d43f165d Author: Vinod Koul Date: Wed May 6 22:06:44 2015 +0530 ASoC: Intel: add support for configuring TDM slots for SSP With this machines can now configure TDM settings for SSP port using set_tdm_slot API Signed-off-by: Praveen Diwakar Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/atom/sst-atom-controls.c | 13 +++++++++++++ sound/soc/intel/atom/sst-atom-controls.h | 2 ++ sound/soc/intel/atom/sst-mfld-platform-pcm.c | 16 ++++++++++++++++ 3 files changed, 31 insertions(+) commit 0b44e345495ad97d533461e53a9218de8039d20b Author: Vinod Koul Date: Wed May 6 22:06:43 2015 +0530 ASoC: intel: add support for specifying PCM format With this machines can configure the PCM format applied on SSP port using the set_fmt API Signed-off-by: Praveen Diwakar Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/atom/sst-atom-controls.c | 99 ++++++++++++++++++++++++++++ sound/soc/intel/atom/sst-atom-controls.h | 1 + sound/soc/intel/atom/sst-mfld-platform-pcm.c | 15 +++++ 3 files changed, 115 insertions(+) commit 711bc9476bfaeba279259978aadcaa826a77e170 Author: Vinod Koul Date: Wed May 6 22:06:42 2015 +0530 ASoC: Intel: load hw_defaults in hw_params of ssp be We have the SSP defaults now and we need to load then in hw_params callback of BE SSP DAI ops. Signed-off-by: Praveen Diwakar Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/atom/sst-atom-controls.h | 2 ++ sound/soc/intel/atom/sst-mfld-platform-pcm.c | 16 +++++++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) commit 5749d70edc2796606dfea3b6b6b5524607634453 Author: Vinod Koul Date: Wed May 6 22:06:41 2015 +0530 ASoC: Intel: use local values for ssp configuration So right now SSP configuration is statically coded in the driver. While we would like to keep this configuration intact for the users who are using these defaults, we need to provide a way for users to program it. So create a local value in driver structure which is populate with default value for now Signed-off-by: Praveen Diwakar Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/atom/sst-atom-controls.c | 53 ++++++++++++++++++-------------- sound/soc/intel/atom/sst-mfld-platform.h | 2 ++ 2 files changed, 32 insertions(+), 23 deletions(-) commit 1f2d86f1c0c9283daa8f215cfe465125c81a6fe5 Author: Vinod Koul Date: Wed May 6 22:06:40 2015 +0530 ASoC: Intel: add frame and data polarity to ssp config The current ssp configuration was not configuring the frame sync polarity and data polarity. Some codecs do need these different so add them in ssp configuration now Signed-off-by: Praveen Diwakar Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/atom/sst-atom-controls.c | 2 ++ sound/soc/intel/atom/sst-atom-controls.h | 2 ++ 2 files changed, 4 insertions(+) commit 96bf40194fdda941ce579be199a9427feee5dffa Author: Qipan Li Date: Sun May 3 10:30:12 2015 +0000 spi: sirf: request and free cs gpio in setup and cleanup callbacks move spi controller's gpio request work out from probe() to spi device register stage, so after spi device register spi controller can deactive device's gpio chipselect. old code can't do it because gpio request has not be done until device register is finised in spi_bitbang_start. and add cleanup function to free CS gpio. Signed-off-by: Qipan Li Signed-off-by: Barry Song Signed-off-by: Mark Brown drivers/spi/spi-sirf.c | 55 +++++++++++++++++++++++++++++++++----------------- 1 file changed, 37 insertions(+), 18 deletions(-) commit 7559e13fb4abe7880dfaf985d6a1630ca90a67ce Author: Aravind Gopalakrishnan Date: Wed May 6 06:58:55 2015 -0500 x86/mce: Add support for deferred errors on AMD Deferred errors indicate error conditions that were not corrected, but those errors have not been consumed yet. They require no action from S/W (or action is optional). These errors provide info about a latent uncorrectable MCE that can occur when a poisoned data is consumed by the processor. Newer AMD processors can generate deferred errors and can be configured to generate APIC interrupts on such events. SUCCOR stands for S/W UnCorrectable error COntainment and Recovery. It indicates support for data poisoning in HW and deferred error interrupts. Add new bitfield to mce_vendor_flags for this. We use this to verify presence of deferred error interrupts before we enable them in mce_amd.c While at it, clarify comments in mce_vendor_flags to provide an indication of usages of the bitfields. Signed-off-by: Aravind Gopalakrishnan Cc: Tony Luck Cc: x86-ml Cc: linux-edac Link: http://lkml.kernel.org/r/1430913538-1415-4-git-send-email-Aravind.Gopalakrishnan@amd.com [ beef up commit message, do CPUID(8000_0007) only once. ] Signed-off-by: Borislav Petkov arch/x86/include/asm/mce.h | 15 +++++++++++++-- arch/x86/kernel/cpu/mcheck/mce.c | 10 ++++++++-- 2 files changed, 21 insertions(+), 4 deletions(-) commit a9843112b49af71f98c3953625555517f4a748bd Author: Lars-Peter Clausen Date: Mon Apr 27 12:15:02 2015 +0200 ASoC: omap-twl4030: Use card DAPM context to access widgets Use the card DAPM context instead of the CODEC DAPM context since only card level widgets are accessed here. Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/omap/omap-twl4030.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 6e6e746e33e9555a7fce159d25314c9df3bcda93 Author: Aravind Gopalakrishnan Date: Wed May 6 06:58:54 2015 -0500 x86/mce/amd: Collect valid address before logging an error amd_decode_mce() needs value in m->addr so it can report the error address correctly. This should be setup in __log_error() before we call mce_log(). We do this because the error address is an important bit of information which should be conveyed to userspace. The correct output then reports proper address, like this: [Hardware Error]: Corrected error, no action required. [Hardware Error]: CPU:0 (15:60:0) MC0_STATUS [-|CE|-|-|AddrV|-|-|CECC]: 0x840041000028017b [Hardware Error]: MC0 Error Address: 0x00001f808f0ff040 Signed-off-by: Aravind Gopalakrishnan Cc: Tony Luck Cc: x86-ml Cc: linux-edac Link: http://lkml.kernel.org/r/1430913538-1415-3-git-send-email-Aravind.Gopalakrishnan@amd.com Signed-off-by: Borislav Petkov arch/x86/kernel/cpu/mcheck/mce_amd.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit ac4fc3eeb79e06499779db99937522526e863ab6 Author: Bard Liao Date: Tue May 5 21:42:01 2015 +0800 ASoC: rt5645: remove unused field in pdata We can know if dmic is used by reading the value of dmic1_data_pin and dmic2_data_pin. Also IRQ must be used if codec JD or button detection function is used. So, dmic_en and en_jd_func can be remove from platform data. Signed-off-by: Bard Liao Signed-off-by: Mark Brown include/sound/rt5645.h | 3 -- sound/soc/codecs/rt5645.c | 124 ++++++++++++++++++++++------------------------ sound/soc/codecs/rt5645.h | 2 + 3 files changed, 61 insertions(+), 68 deletions(-) commit afdf344e08fbec28ab2204a626fa1f260dcb68be Author: Aravind Gopalakrishnan Date: Wed May 6 06:58:53 2015 -0500 x86/mce/amd: Factor out logging mechanism Refactor the code here to setup struct mce and call mce_log() to log the error. We're going to reuse this in a later patch as part of the deferred error interrupt enablement. No functional change is introduced. Suggested-by: Borislav Petkov Signed-off-by: Aravind Gopalakrishnan Cc: Tony Luck Cc: x86-ml Cc: linux-edac Link: http://lkml.kernel.org/r/1430913538-1415-2-git-send-email-Aravind.Gopalakrishnan@amd.com Signed-off-by: Borislav Petkov arch/x86/kernel/cpu/mcheck/mce_amd.c | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) commit 786aa09b27be7916c1281d7a29a394bd1ae7a4dc Author: Bard Liao Date: Tue May 5 21:42:00 2015 +0800 ASoC: rt5645: fix add missing widget "IF1 DAC0" and "IF1 DAC3" are used in rt5645_dapm_routes but missing in rt5645_dapm_widgets. Signed-off-by: Oder Chiou Signed-off-by: Bard Liao Signed-off-by: Mark Brown sound/soc/codecs/rt5645.c | 2 ++ 1 file changed, 2 insertions(+) commit 08a1e646bdc1d0e14d2ea19075a916619bafd271 Author: Lars-Peter Clausen Date: Fri May 1 18:02:45 2015 +0200 ASoC: lm4857: Convert to component The driver does not use any CODEC specific constructs anymore. Convert it to snd_soc_component. Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/lm4857.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) commit 0eb93ef04b2641d4140e11d6b1f2f3841edd9a7a Author: Lars-Peter Clausen Date: Fri May 1 18:02:44 2015 +0200 ASoC: lm4857: Use DAPM demux Use a DAPM auto-disable demux to model the Mode control which affects the routing of the input pin to the output pins. This allows us to remove the custom code for handling the Mode control. Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/lm4857.c | 100 ++++++++++++---------------------------------- 1 file changed, 26 insertions(+), 74 deletions(-) commit d714f97c5b8c4c5da56b89a7289acb3f12ef7abb Author: Lars-Peter Clausen Date: Fri May 1 18:02:43 2015 +0200 ASoC: dapm: Add demux support A demux is conceptually similar to a mux. Where a mux has multiple input and one output and selects one of the inputs to be connected to the output, the demux has one input and multiple outputs and selects one of the outputs to which the input gets connected. This similarity makes it straight forward to support them in DAPM using the existing mux support, we only need to swap sinks and sources when initially setting up the paths. The only slightly tricky part is that there can only be one control per path. Since mixers/muxes are at the sink of a path and a demux is at the source and both types want a control it is not possible to directly connect a demux output to a mixer/mux input. The patch adds some sanity checks to make sure that this does not happen. Drivers who want to model hardware which directly connects a demux output to a mixer/mux input can do this by inserting a dummy widget between the two. E.g.: { "Dummy", "Demux Control", "Demux" }, { "Mixer", "Mixer Control", "Dummy" }, Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown include/sound/soc-dapm.h | 5 +++ sound/soc/soc-dapm.c | 112 ++++++++++++++++++++++++++++++++++++++++------- 2 files changed, 102 insertions(+), 15 deletions(-) commit 92fa12426741d52b39ec92ad77c9843d3fc2b3d6 Author: Lars-Peter Clausen Date: Fri May 1 18:02:42 2015 +0200 ASoC: dapm: Add new widgets to the end of the widget list Currently new widgets are appended to the beginning of the cards widget list. This has the effect that widgets that are created while iterating over the widget list in snd_soc_dapm_new_widgets() (like e.g. the auto-disable widgets) are not covered during that invocation of the function. If no further invocations of snd_soc_dapm_new_widgets() happen these widgets will not be fully initialized and e.g. no debugfs entries are created for them. By adding new widgets to the end of the widget list we make sure that widgets that are created in snd_soc_dapm_new_widgets() will still be handled during the same snd_soc_dapm_new_widgets() invocation and are always fully initialized. Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/soc-dapm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d203c5747e88f053e4ee373a939c05914c82eb1c Author: Tony Lindgren Date: Mon May 4 10:45:54 2015 -0700 ARM: OMAP2+: Remove legacy booting support for Beagleboards We've been moving all omap2+ based systems to boot in device tree only mode for a few years now. Only omap3 has legacy booting support remaining. Most omap3 boards already have related arch/arm/boot/*.dts* files for booting with device tree. This board has support for device tree based booting, and we've been printing warnings about the legacy booting being deprecated for a few merge cycles now. Let's attempt to remove the legacy booting for it. The reason for removing the legacy booting support now rather than later is we can simply revert this patch if necessary if we run into some unexpected issues that are not trivial to fix for the device tree based booting. Signed-off-by: Tony Lindgren arch/arm/mach-omap2/Kconfig | 6 - arch/arm/mach-omap2/Makefile | 1 - arch/arm/mach-omap2/board-omap3beagle.c | 595 -------------------------------- 3 files changed, 602 deletions(-) commit c38a1ffbf54f4d1c40a476a2a9ddc9177f493b78 Author: Lars-Peter Clausen Date: Fri May 1 18:02:42 2015 +0200 ASoC: dapm: Add new widgets to the end of the widget list Currently new widgets are appended to the beginning of the cards widget list. This has the effect that widgets that are created while iterating over the widget list in snd_soc_dapm_new_widgets() (like e.g. the auto-disable widgets) are not covered during that invocation of the function. If no further invocations of snd_soc_dapm_new_widgets() happen these widgets will not be fully initialized and e.g. no debugfs entries are created for them. By adding new widgets to the end of the widget list we make sure that widgets that are created in snd_soc_dapm_new_widgets() will still be handled during the same snd_soc_dapm_new_widgets() invocation and are always fully initialized. Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/soc-dapm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 21a37e39e02d7f57691219fee88cf1d48a74e5bd Author: Charles Keepax Date: Fri May 1 12:37:27 2015 +0100 ASoC: arizona: Use auto disable muxes for routing The mixer core on the Arizona devices is powered up whenever any routing is non-zero. This patch saves a little power and avoids a few difficult corner cases (around the mixer core being powered whilst there is no clock available), by using the autodisable mux functionality to only write out the settings for the muxes when they are powered up. Signed-off-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/arizona.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 561ed680b764b288feeb74a24e1d9fb3da98ec7b Author: Charles Keepax Date: Fri May 1 12:37:26 2015 +0100 ASoC: dapm: Add support for autodisable mux controls Commit 57295073b6ac ("ASoC: dapm: Implement mixer input auto-disable") added support for autodisable controls, controls whose values are only written to the hardware when their respective widgets are powered up. But it only added support for controls based on the mixer abstraction. This patch add support for mux controls (DAPM controls based on the enum abstraction) to be auto-disabled as well. As each mux can only have a single control, there is no need to tie the autodisable widget to the inputs (as is done for the mixer controls) it can be tided directly to the mux widget itself. Note that it is assumed that the first entry in a autodisable mux control will always represent the off state for the mux and is what the mux will be set to whilst it is disabled. Signed-off-by: Charles Keepax Reviewed-by: Lars-Peter Clausen Tested-by: Lars-Peter Clausen Signed-off-by: Mark Brown include/sound/soc.h | 10 +++++++ sound/soc/soc-dapm.c | 78 +++++++++++++++++++++++++++++++++++++++------------- 2 files changed, 69 insertions(+), 19 deletions(-) commit 773da9b358bfbef1b7a862425fea0d9d9d3443f8 Author: Charles Keepax Date: Fri May 1 12:37:25 2015 +0100 ASoC: dapm: Append "Autodisable" to autodisable widget names This makes it a little easier to follow what is happening in debugfs. Additionally is also useful in facilitating work to add autodisable muxes because the control name is already used for the mux widget and thus shouldn't be reused for the autodisable widget. Signed-off-by: Charles Keepax Reviewed-by: Lars-Peter Clausen Tested-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/soc-dapm.c | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) commit 5967cb3d87802908fe5ab96aa0b417606bf4ca3b Author: Charles Keepax Date: Fri May 1 12:37:23 2015 +0100 ASoC: Correct typo in SOC_VALUE_ENUM_SINGLE macro xnitmes is clearly intended to be xnitems, but all other macros just refer to this as xitems, so change it to that. Signed-off-by: Charles Keepax Reviewed-by: Lars-Peter Clausen Tested-by: Lars-Peter Clausen Signed-off-by: Mark Brown include/sound/soc.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 7895f73169ade9a74940ae6b0b4ee82faf286861 Author: Nicolas Pitre Date: Tue Apr 28 15:51:19 2015 -0400 ARM: MCPM: remove residency argument from mcpm_cpu_suspend() This is currently unused. If a suspend must be limited to CPU level only by preventing the last man from triggering a cluster level suspend then this should be determined according to many other criteria the MCPM layer is currently not aware of. It is unlikely that mcpm_cpu_suspend() would be the proper conduit for that information anyway. Signed-off-by: Nicolas Pitre Acked-by: Dave Martin arch/arm/common/mcpm_entry.c | 2 +- arch/arm/include/asm/mcpm.h | 15 +++++---------- arch/arm/mach-exynos/suspend.c | 8 +------- drivers/cpuidle/cpuidle-big_little.c | 8 +------- 4 files changed, 8 insertions(+), 25 deletions(-) commit 1c2c7d51c8101ab3c5d8585713d2dcd52d77d33e Author: Nicolas Pitre Date: Tue Apr 28 14:51:36 2015 -0400 ARM: MCPM: add references to the available documentation in the code Signed-off-by: Nicolas Pitre Acked-by: Dave Martin arch/arm/common/mcpm_entry.c | 5 +++++ 1 file changed, 5 insertions(+) commit 7cc8b991cdc985aaa73bf9c429c810cd442fb74d Author: Nicolas Pitre Date: Tue Apr 28 14:11:07 2015 -0400 ARM: MCPM: make internal helpers private to the core code This concerns the following helpers: __mcpm_cpu_going_down() __mcpm_cpu_down() __mcpm_outbound_enter_critical() __mcpm_outbound_leave_critical() __mcpm_cluster_state() They are and should only be used by the core code now. Therefore their declarations are removed from mcpm.h and their definitions are made static, hence the need to move them before their users which accounts for the bulk of this patch. This left the mcpm_sync_struct definition at an odd location, therefore it is moved as well with some comment clarifications. Signed-off-by: Nicolas Pitre Acked-by: Dave Martin arch/arm/common/mcpm_entry.c | 229 ++++++++++++++++++++++--------------------- arch/arm/include/asm/mcpm.h | 52 +++++----- 2 files changed, 138 insertions(+), 143 deletions(-) commit 77404d81cadf192cc1261d6269f622a06b83cdd5 Author: Nicolas Pitre Date: Tue Apr 28 13:44:00 2015 -0400 ARM: MCPM: remove backward compatibility code Now that no one uses the old callbacks anymore, let's remove them and associated support code. Signed-off-by: Nicolas Pitre Acked-by: Dave Martin arch/arm/common/mcpm_entry.c | 45 +++++--------------------------------------- arch/arm/include/asm/mcpm.h | 6 ------ 2 files changed, 5 insertions(+), 46 deletions(-) commit 905cdf9dda5d89d843667b2f11da2308d1fd1c34 Author: Nicolas Pitre Date: Tue Mar 17 23:37:58 2015 -0400 ARM: hisi/hip04: remove the MCPM overhead This platform is currently relying on the MCPM infrastructure for no apparent reason. The MCPM concurrency handling brings no benefits here as there is no asynchronous CPU wake-ups to be concerned about (this is used for CPU hotplug and secondary boot only, not for CPU idle). This platform is also different from the other MCPM users because a given CPU can't shut itself down completely without the assistance of another CPU. This is at odds with the on-going MCPM backend refactoring. To simplify things, this is converted to hook directly into the smp_operations callbacks, bypassing the MCPM infrastructure. Tested-by: Wei Xu Cc: Haojian Zhuang Signed-off-by: Nicolas Pitre arch/arm/mach-hisi/platmcpm.c | 127 ++++++++++++++---------------------------- 1 file changed, 42 insertions(+), 85 deletions(-) commit 9eac5fdfabc67603fcdc5b59079ff6da90e17a16 Author: Geert Uytterhoeven Date: Tue May 5 18:32:32 2015 +0200 regulator: 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 Signed-off-by: Mark Brown drivers/regulator/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5c2301a990f166e095a134e25644f845abaf6168 Author: Geert Uytterhoeven Date: Tue May 5 18:32:33 2015 +0200 spi: 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 Signed-off-by: Mark Brown drivers/spi/Kconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit ff71880006795290f371caae13e740491ec76956 Author: Kamlakant Patel Date: Tue Apr 28 20:10:45 2015 +0530 gpio: xlp: GPIO controller for Netlogic XLP SoCs Add GPIO controller driver for Netlogic XLP MIPS64 SOCs. This driver is instantiated by device tree and supports interrupts for GPIOs. Signed-off-by: Kamlakant Patel Signed-off-by: Linus Walleij drivers/gpio/Kconfig | 11 ++ drivers/gpio/Makefile | 1 + drivers/gpio/gpio-xlp.c | 425 ++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 437 insertions(+) commit a605c668cc0c0ed267c014267f04bef29460367d Author: Kamlakant Patel Date: Tue Apr 28 20:10:44 2015 +0530 gpio: Add Netlogic XLP GPIO devicetree bindings documentation Provide documentation for Netlogic XLP SoCs GPIO controller DTS bindings. Signed-off-by: Kamlakant Patel Signed-off-by: Linus Walleij .../devicetree/bindings/gpio/gpio-xlp.txt | 47 ++++++++++++++++++++++ 1 file changed, 47 insertions(+) commit 4b9d64ee04a4033213454b384d5ec2dcd5e25b84 Author: Martin K. Petersen Date: Tue May 5 17:53:48 2015 -0400 libata: Fix sysfs documentation bug forced_unqueued indicates that a drive's queued DSM support is broken. Update sysfs ABI documentation accordingly. Reported-by: Christoph Hellwig Signed-off-by: Martin K. Petersen Signed-off-by: Tejun Heo Documentation/ABI/testing/sysfs-ata | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bbbe8c8c596b3784a2ed08772900e827f8ba72c5 Author: Johannes Berg Date: Wed May 6 16:00:32 2015 +0200 mac80211: add missing documentation for rate_ctrl_lock This was missed in the previous patch, add some documentation for rate_ctrl_lock to avoid docbook warnings. Signed-off-by: Johannes Berg net/mac80211/sta_info.h | 2 ++ 1 file changed, 2 insertions(+) commit 06f207fc541862ba8902ceda0ddeade6ea6bce72 Author: Arik Nemtsov Date: Wed May 6 16:28:31 2015 +0300 cfg80211: change GO_CONCURRENT to IR_CONCURRENT for STA The GO_CONCURRENT regulatory definition can be extended to station interfaces requesting to IR as part of TDLS off-channel operations. Rename the GO_CONCURRENT flag to IR_CONCURRENT and allow the added use-case. Change internal users of GO_CONCURRENT to use the new definition. Signed-off-by: Arik Nemtsov Reviewed-by: Johannes Berg Signed-off-by: Johannes Berg drivers/net/wireless/iwlwifi/iwl-nvm-parse.c | 2 +- include/net/cfg80211.h | 4 +-- include/uapi/linux/nl80211.h | 28 +++++++++++--------- net/wireless/chan.c | 38 ++++++++++++++++------------ net/wireless/nl80211.c | 4 +-- net/wireless/reg.c | 4 +-- 6 files changed, 45 insertions(+), 35 deletions(-) commit 66eb3bd857f5311f72c7c371f78ddc9c472befba Author: Fabian Frederick Date: Mon Apr 27 18:04:05 2015 +0200 pinctrl: use ERR_CAST instead of ERR_PTR/PTR_ERR Inspired by scripts/coccinelle/api/err_cast.cocci Signed-off-by: Fabian Frederick Signed-off-by: Linus Walleij include/linux/pinctrl/consumer.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0b354dc4335b230c05d8de3648404943553ca54f Author: Krzysztof Kozlowski Date: Mon Apr 27 21:54:07 2015 +0900 gpio: Constify irq_domain_ops The irq_domain_ops are not modified by the driver and the irqdomain core code accepts pointer to a const data. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Linus Walleij drivers/gpio/gpio-bcm-kona.c | 2 +- drivers/gpio/gpio-em.c | 2 +- drivers/gpio/gpio-grgpio.c | 2 +- drivers/gpio/gpio-mpc8xxx.c | 2 +- drivers/gpio/gpio-sa1100.c | 2 +- drivers/gpio/gpio-sodaville.c | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) commit e5b609537616aae7effb6345c78f7a4f00201fd6 Author: Krzysztof Kozlowski Date: Mon Apr 27 21:54:06 2015 +0900 pinctrl: single: Constify irq_domain_ops The irq_domain_ops are not modified by the driver and the irqdomain core code accepts pointer to a const data. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Linus Walleij drivers/pinctrl/pinctrl-single.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5fcdf6a7ed95ef3feef2678c39c906cfc5572cfa Author: Markus Pargmann Date: Fri Apr 10 16:22:38 2015 +0200 pinctrl: imx: Allow parsing DT without function nodes The old format to define pinctrl settings for imx in DT has two hierarchy levels. The first level are function device nodes. The second level are pingroups which contain a property fsl,pins. The original intention was to define all pin functions in a single dtsi file and just reference the correct ones in the board files. This idea was rejected some time ago leading to the current design to have all the pinfunctions defined in the board files. So we don't need the function device nodes anymore. This patch changes the pinctrl driver to accept devicetrees which do not have the first hierarchy level, function device nodes. For example karo-tx25 already has such a devicetree. Old devicetrees are still parsed and supported. Signed-off-by: Markus Pargmann Acked-by: Uwe Kleine-König Acked-by: Shawn Guo Signed-off-by: Linus Walleij drivers/pinctrl/freescale/pinctrl-imx.c | 55 +++++++++++++++++++++++++++------ 1 file changed, 46 insertions(+), 9 deletions(-) commit 83a21727c3fb23844de38f85fb4250bd21961c25 Author: Helmut Buchsbaum Date: Sun Apr 26 11:32:47 2015 +0200 pinctrl: zynq: configure SPI SSx pins separately Since SCLK, MISO and MOSI are the only mandatory signals at Zynq's SPI interfaces, SS0, SS1 and SS2 have to be configured separately as they may be used as simple GPIO lines. This, of course, has to be considered in the devicetree, so pin controller configuration for e.g. an SPI0 using SS0 and SS1 only might look like the following snippet (derived from the example of chapter "17.5.3 MIO/EMIO" Routing of Zynq-7000 TRM UG585). So MIO20 can now be used as GPIO instead of being occupied by SPI0 SS2 function. Note the separate pinmux function for the slave select signals: pinctrl_spi0_default: spi0-default { mux_spi { function = "spi0"; groups = "spi0_0_grp"; }; mux_ss { function = "spi0_ss"; groups = "spi0_0_ss0_grp", "spi0_0_ss1_grp"; } conf-output { pins = "MIO16", "MIO21"; slew-rate = <0>; bias-disable; low-power-disable; io-standard = <1>; }; conf-input { pins = "MIO17"; slew-rate = <0>; bias-high-impedance; low-power-disable; io-standard = <1>; }; conf-select { pins = "MIO18", "MIO19"; slew-rate = <0>; bias-pull-up; low-power-disable; io-standard = <1>; }; }; pinctrl_gpio0_default { mux { function = "gpio0"; groups = "gpio0_20_grp" }; conf { pins = "MIO20"; slew-rate = <0>; bias-pull-up; low-power-disable; io-standard = <1>; }; }; Signed-off-by: Helmut Buchsbaum Acked-by: Sören Brinkmann Signed-off-by: Linus Walleij .../bindings/pinctrl/xlnx,zynq-pinctrl.txt | 7 ++- drivers/pinctrl/pinctrl-zynq.c | 70 +++++++++++++++++++--- 2 files changed, 67 insertions(+), 10 deletions(-) commit cac089f9026e9ddb3481daf08f0fc4e5949fa1af Author: Tony Lindgren Date: Thu Apr 23 16:56:22 2015 -0700 gpio: omap: Allow building as a loadable module We currently get all kinds of errors building the omap gpio driver as a module starting with: undefined reference to `omap2_gpio_resume_after_idle' undefined reference to `omap2_gpio_prepare_for_idle' ... Let's fix the issue by adding inline functions to the header. Note that we can now also remove the two unused functions for omap_set_gpio_debounce and omap_set_gpio_debounce_time. Then doing rmmod on the module produces further warnings because of missing exit related functions. Let's add those. And finally, we can make the Kconfig entry just a tristate option that's selected for omaps. Cc: Javier Martinez Canillas Cc: Kevin Hilman Cc: Nishanth Menon Signed-off-by: Tony Lindgren Reviewed-by: Grygorii Strashko Acked-by: Santosh Shilimkar Reviewed-by: Felipe Balbi Signed-off-by: Linus Walleij drivers/gpio/Kconfig | 2 +- drivers/gpio/gpio-omap.c | 24 ++++++++++++++++++++++++ include/linux/platform_data/gpio-omap.h | 12 ++++++++++-- 3 files changed, 35 insertions(+), 3 deletions(-) commit 606f13e9efa0892561e7c471242e4ad0bcaf6ecb Author: Semen Protsenko Date: Wed Apr 22 16:20:41 2015 +0300 gpio: max732x: Fix irq-events handler MAX732X clears all pending interrupts on I2C read (when interrupts register is being read). Driver doesn't need to send any ACKs when interrupt was handled. So replace handle_edge_irq() with handle_simple_irq(). Using handle_edge_irq() (w/o .irq_ack callback set) may lead to NULL pointer dereference in some cases. E.g. this was observed on hibernation process: Unable to handle kernel NULL pointer dereference at virtual address 0 Backtrace: (handle_edge_irq) from (resend_irqs) (resend_irqs) from (tasklet_action) (tasklet_action) from (__do_softirq) (__do_softirq) from (run_ksoftirqd) (run_ksoftirqd) from (smpboot_thread_fn) (smpboot_thread_fn) from (kthread) (kthread) from (ret_from_fork) Signed-off-by: Semen Protsenko Reviewed-by: Grygorii Strashko Signed-off-by: Linus Walleij drivers/gpio/gpio-max732x.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 68689dbf35e13fc20928ba3a0b959d28c6281e9e Author: Semen Protsenko Date: Tue Apr 21 16:19:04 2015 +0300 gpio: max732x: Add IRQF_SHARED to irq flags It's possible that multiple MAX732X can be hooked up to the same interrupt line with the processor. So add IRQF_SHARED in requesting irq. Signed-off-by: Semen Protsenko Signed-off-by: Linus Walleij drivers/gpio/gpio-max732x.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) commit 8aca9b2913eb788da56b533e1091dadb79fa80f0 Author: Ilan Peer Date: Tue Apr 7 19:05:22 2015 +0300 mac80211_hwsim: Fix the supported VHT mcs rates Declare that MCS 0-9 are supported for all Rx chains. Signed-off-by: Ilan Peer Signed-off-by: Johannes Berg drivers/net/wireless/mac80211_hwsim.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit f33f8483f941d32e81cda2988f371e0e9caf4356 Author: Ilan Peer Date: Tue Apr 7 19:05:21 2015 +0300 mac80211_hwsim: Set VHT capabilities only for the 5.2 GHz band Previously, VHT capabilities and supported MCSs where set for all bands, although VHT is only allowed on 5.2 GHz band. Fix it. Signed-off-by: Ilan Peer Signed-off-by: Johannes Berg drivers/net/wireless/mac80211_hwsim.c | 50 +++++++++++++++++------------------ 1 file changed, 25 insertions(+), 25 deletions(-) commit 3007d941bef84f78b6cf19cdfd5da80319cd28ae Author: Linus Walleij Date: Wed May 6 14:46:40 2015 +0200 pinctrl: nomadik: assign chips dynamically Assign GPIO chip and irqchip to the GPIO container dynamically, so we can set a unique name for each GPIO irqchip and see what chip the hwirq offset actually relates to. Signed-off-by: Linus Walleij drivers/pinctrl/nomadik/pinctrl-nomadik.c | 61 +++++++++++++++---------------- 1 file changed, 30 insertions(+), 31 deletions(-) commit be69c24a184490f941fa8ab0fefe0d6cee96afbf Author: Avraham Stern Date: Mon Apr 27 16:52:16 2015 +0300 cfg80211: Allow GO concurrent relaxation after BSS disconnection If a P2P GO was allowed on a channel because of the GO concurrent relaxation, i.e., another station interface was associated to an AP on the same channel or the same UNII band, and the station interface disconnected from the AP, allow the following use cases unless the channel is marked as indoor only and the device is not operating in an indoor environment: 1. Allow the P2P GO to stay on its current channel. The rationale behind this is that if the channel or UNII band were allowed by the AP they could still be used to continue the P2P GO operation, and avoid connection breakage. 2. Allow another P2P GO to start on the same channel or another channel that is in the same UNII band as the previous instantiated P2P GO. Signed-off-by: Avraham Stern Signed-off-by: Arik Nemtsov Signed-off-by: Ilan Peer Signed-off-by: Emmanuel Grumbach Signed-off-by: Johannes Berg net/wireless/chan.c | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) commit a21763a0b1e5a5ab8310f581886d04beadc16616 Author: Linus Walleij Date: Wed May 6 14:43:45 2015 +0200 pinctrl: nomadik: activate strict mux mode This activates strict mode muxing for the Nomadik pin controllers, as these do not allow GPIO and functions to use the same pin simultaneously. Signed-off-by: Linus Walleij drivers/pinctrl/nomadik/pinctrl-abx500.c | 1 + drivers/pinctrl/nomadik/pinctrl-nomadik.c | 1 + 2 files changed, 2 insertions(+) commit 8c4c2016345feefcd289ce2479eb70286d30825a Author: Linus Walleij Date: Wed May 6 14:19:13 2015 +0200 pinctrl: move strict option to pinmux_ops While the pinmux_ops are ideally just a vtable for pin mux calls, the "strict" setting belongs so intuitively with the pin multiplexing that we should move it here anyway. Putting it in the top pinctrl_desc makes no sense. Cc: Sonic Zhang Signed-off-by: Linus Walleij Documentation/pinctrl.txt | 2 +- drivers/pinctrl/pinctrl-adi2.c | 2 +- drivers/pinctrl/pinmux.c | 4 ++-- include/linux/pinctrl/pinctrl.h | 3 --- include/linux/pinctrl/pinmux.h | 4 ++++ 5 files changed, 8 insertions(+), 7 deletions(-) commit fa76a3db7093a527333c380df82a0f158d9b8299 Author: Sonic Zhang Date: Thu Apr 9 11:13:07 2015 +0800 pinctrl: allow exlusive GPIO/mux pin allocation Disallow simultaneous use of the the GPIO and peripheral mux functions by setting a flag "strict" in struct pinctrl_desc. The blackfin pinmux and gpio controller doesn't allow user to set up a pin for both GPIO and peripheral function. So, add flag strict in struct pinctrl_desc to check both gpio_owner and mux_owner before approving the pin request. v2-changes: - if strict flag is set, check gpio_owner and mux_onwer in if and else clause v3-changes: - add kerneldoc for this struct - augment Documentation/pinctrl.txt Signed-off-by: Sonic Zhang Signed-off-by: Linus Walleij Documentation/pinctrl.txt | 11 +++++++++++ drivers/pinctrl/pinctrl-adi2.c | 1 + drivers/pinctrl/pinmux.c | 13 +++++++++++++ include/linux/pinctrl/pinctrl.h | 3 +++ 4 files changed, 28 insertions(+) commit c30024a6449070d6fde51a8bddf4c97f884db2cc Author: Frank Li Date: Wed Apr 29 22:20:05 2015 +0800 pinctrl: add imx7d support Add i.MX7D pinctrl driver support Signed-off-by: Frank Li Signed-off-by: Anson Huang Signed-off-by: Linus Walleij drivers/pinctrl/freescale/Kconfig | 7 + drivers/pinctrl/freescale/Makefile | 1 + drivers/pinctrl/freescale/pinctrl-imx7d.c | 385 ++++++++++++++++++++++++++++++ 3 files changed, 393 insertions(+) commit abbc48e1c2a246d3d10393dec070e02ee150d0ae Author: Andrew Bresticker Date: Tue Apr 28 18:13:01 2015 -0700 pinctrl: Add Pistachio SoC pin control binding document Add a device-tree binding document for the pin controller present on the IMG Pistachio SoC. Signed-off-by: Damien Horsley Signed-off-by: Ezequiel Garcia Signed-off-by: Andrew Bresticker Cc: Rob Herring Cc: Pawel Moll Cc: Mark Rutland Cc: Ian Campbell Cc: Kumar Gala Signed-off-by: Linus Walleij .../bindings/pinctrl/img,pistachio-pinctrl.txt | 217 +++++++++++++++++++++ 1 file changed, 217 insertions(+) commit a9ed9eb6345806917bae87b689a906e97415fd01 Author: Joachim Eastwood Date: Tue Apr 28 00:14:09 2015 +0200 pinctrl: add DT bindings for lpc1850-scu pinctrl driver Signed-off-by: Joachim Eastwood Signed-off-by: Linus Walleij .../bindings/pinctrl/nxp,lpc1850-scu.txt | 57 ++++++++++++++++++++++ 1 file changed, 57 insertions(+) commit 2f77ac93a947f19301a18250845e4be776c71afd Author: Joachim Eastwood Date: Tue Apr 28 00:14:08 2015 +0200 pinctrl: add lpc18xx pinctrl driver Pinctrl driver for the System Control Unit (SCU) found on NXP LPC18xx/43xx devices. Driver uses the generic pinctrl DT bindings for multiplexing and property settings. Signed-off-by: Joachim Eastwood Signed-off-by: Linus Walleij drivers/pinctrl/Kconfig | 9 + drivers/pinctrl/Makefile | 1 + drivers/pinctrl/pinctrl-lpc18xx.c | 1144 +++++++++++++++++++++++++++++++++++++ 3 files changed, 1154 insertions(+) commit 1893b2cfad0829f8d93f6d88bd396d353ec024c3 Author: Alexander Stein Date: Thu Apr 2 11:55:49 2015 +0200 pinctrl: at91: Add set_multiple GPIO chip feature This adds the callback for set_multiple. As this controller has a separate set and clear register, we can't write directly to PIO_ODSR as this would required a cached variable and would race with at91_gpio_set. So build masks for the PIO_SODR and PIO_CODR registers and write them together. Signed-off-by: Alexander Stein Signed-off-by: Linus Walleij drivers/pinctrl/pinctrl-at91.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit efb0de55b6a2ec15fc424e660601f22ae2fa487a Author: Shobhit Kumar Date: Tue May 5 15:04:18 2015 +0530 pwm: Add support to remove registered consumer lookup tables In case some drivers are unloading, they can remove lookup tables which they had registered during their load time to avoid redundant entries if loaded again. CC: Samuel Ortiz Cc: Linus Walleij Cc: Alexandre Courbot Cc: Thierry Reding Signed-off-by: Shobhit Kumar Signed-off-by: Thierry Reding drivers/pwm/core.c | 17 +++++++++++++++++ include/linux/pwm.h | 5 +++++ 2 files changed, 22 insertions(+) commit 1c79771a7270278e6ff486edf4dfeb8c4fc01ee0 Author: Kevin Cernekee Date: Tue May 5 15:14:14 2015 -0700 regmap: Use regcache_mark_dirty() to indicate power loss or reset Existing regmap users call regcache_mark_dirty() as part of the suspend/resume sequence, to tell regcache that non-default values need to be resynced post-resume. Add an internal "no_sync_defaults" regmap flag to remember this state, so that regcache_sync() can differentiate between these two cases: 1) HW was reset, so any cache values that match map->reg_defaults can be safely skipped. On some chips there are a lot of registers in the reg_defaults list, so this optimization speeds things up quite a bit. 2) HW was not reset (maybe it was just clock-gated), so if we cached any writes, they should be sent to the hardware regardless of whether they match the HW default. Currently this will write out all values in the regcache, since we don't maintain per-register dirty bits. Suggested-by: Mark Brown Signed-off-by: Kevin Cernekee Signed-off-by: Mark Brown drivers/base/regmap/internal.h | 3 +++ drivers/base/regmap/regcache.c | 19 +++++++++++++++---- 2 files changed, 18 insertions(+), 4 deletions(-) commit 3969fa080661dcdf20d04392b900189086e04c2c Author: Kevin Cernekee Date: Tue May 5 15:14:13 2015 -0700 regmap: Add a helper function for regcache sync test We're going to add another "does this register need syncing?" check, so rather than repeating it in three places, we'll separate all of the relevant logic into a helper function. Signed-off-by: Kevin Cernekee Signed-off-by: Mark Brown drivers/base/regmap/regcache.c | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) commit e3a55b5399d55200c024fe0c2984dc7ad049da44 Author: Johannes Berg Date: Tue May 5 16:32:29 2015 +0200 mac80211: validate cipher scheme PN length better Currently, a cipher scheme can advertise an arbitrarily long sequence counter, but mac80211 only supports up to 16 bytes and the initial value from userspace will be truncated. Fix two things: * don't allow the driver to register anything longer than the 16 bytes that mac80211 reserves space for * require userspace to specify a starting value with the correct length (or none at all) Signed-off-by: Johannes Berg net/mac80211/key.c | 10 ++++++---- net/mac80211/main.c | 5 ++++- 2 files changed, 10 insertions(+), 5 deletions(-) commit a31cf1c69e89e0c2d5515b04aca313f1014a714d Author: Johannes Berg Date: Mon Apr 20 18:21:58 2015 +0200 mac80211: extend get_key() to return PN for all ciphers For ciphers not supported by mac80211, the function currently doesn't return any PN data. Fix this by extending the driver's get_key_seq() a little more to allow moving arbitrary PN data. Signed-off-by: Johannes Berg include/net/mac80211.h | 7 +++++++ net/mac80211/cfg.c | 9 +++++++++ net/mac80211/key.c | 4 ++-- net/mac80211/key.h | 3 +-- 4 files changed, 19 insertions(+), 4 deletions(-) commit 9352c19f639354f093cb5457315c01bcb94aa82a Author: Johannes Berg Date: Mon Apr 20 18:12:41 2015 +0200 mac80211: extend get_tkip_seq to all keys Extend the function to read the TKIP IV32/IV16 to read the IV/PN for all ciphers in order to allow drivers with full hardware crypto to properly support this. Signed-off-by: Johannes Berg drivers/net/wireless/ath/ath5k/mac80211-ops.c | 1 - drivers/net/wireless/rt2x00/rt2800lib.c | 16 +++-- drivers/net/wireless/rt2x00/rt2800lib.h | 5 +- drivers/net/wireless/rt2x00/rt2800pci.c | 2 +- drivers/net/wireless/rt2x00/rt2800soc.c | 2 +- drivers/net/wireless/rt2x00/rt2800usb.c | 2 +- include/net/mac80211.h | 79 +++++++++++------------ net/mac80211/cfg.c | 91 +++++++++++++++++---------- net/mac80211/driver-ops.h | 11 ++-- net/mac80211/trace.h | 42 +++++++------ 10 files changed, 143 insertions(+), 108 deletions(-) commit 079ed3681d748523e50c3947ca59507a7a181260 Author: Russell King Date: Mon Mar 2 15:35:22 2015 +0000 clk: s2mps11: use clkdev_create() clkdev_create() is a shorter way to write clkdev_alloc() followed by clkdev_add(). Use this instead. Signed-off-by: Russell King drivers/clk/clk-s2mps11.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit d76a4476a0a6e638d7b424578aa1261f514d1946 Author: Russell King Date: Mon Mar 2 15:35:22 2015 +0000 ASoC: migor: use clkdev_create() clkdev_create() is a shorter way to write clkdev_alloc() followed by clkdev_add(). Use this instead. Acked-by: Mark Brown Signed-off-by: Russell King sound/soc/sh/migor.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 1ca90bd408a160c95af1ca7ef29b20a789e31d19 Author: Russell King Date: Mon Mar 2 15:46:03 2015 +0000 ARM: omap2: use clkdev_add_alias() When creating aliases of existing clkdev clocks, use clkdev_add_alias() isntead of open coding the lookup and clk_lookup creation. Acked-by: Tony Lindgren Signed-off-by: Russell King arch/arm/mach-omap2/omap_device.c | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) commit b2e01129469b4306bd79dc449d72454a3a27df7f Author: Russell King Date: Mon Mar 2 15:37:21 2015 +0000 ARM: omap2: use clkdev_create() Rather than open coding the clkdev allocation, initialisation and addition, use the clkdev_create() helper. Acked-by: Tony Lindgren Signed-off-by: Russell King arch/arm/mach-omap2/clkt2xxx_virt_prcm_set.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) commit 4dbc02302b8ca6e4a1a030cc5e7fa93b5634962d Author: Russell King Date: Mon Mar 2 15:35:22 2015 +0000 ARM: orion: use clkdev_create() clkdev_create() is a shorter way to write clkdev_alloc() followed by clkdev_add(). Use this instead. Acked-by: Andrew Lunn Signed-off-by: Russell King arch/arm/plat-orion/common.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit dd13fbd9d8562c8e6845cd87a3a1a9d372618d96 Author: Russell King Date: Sun Mar 1 14:44:35 2015 +0000 ARM: lpc32xx: convert to use clkdev_add_table() We have always had an efficient way of registering a table of clock lookups - it's called clkdev_add_table(). However, some people seem to really love writing inefficient and unnecessary code. Convert LPC32xx to use the correct interface. Signed-off-by: Russell King arch/arm/mach-lpc32xx/clock.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 8a7711fccce90b14bbab413c8534af883a506041 Author: Russell King Date: Sun Mar 1 14:43:17 2015 +0000 SH: use clkdev_add_table() We have always had an efficient way of registering a table of clock lookups - it's called clkdev_add_table(). However, some people seem to really love writing inefficient and unnecessary code. Convert SH to use the correct interface. Acked-by: Geert Uytterhoeven Signed-off-by: Russell King arch/sh/kernel/cpu/sh4a/clock-sh7734.c | 3 +-- arch/sh/kernel/cpu/sh4a/clock-sh7757.c | 4 ++-- arch/sh/kernel/cpu/sh4a/clock-sh7785.c | 4 ++-- arch/sh/kernel/cpu/sh4a/clock-sh7786.c | 4 ++-- arch/sh/kernel/cpu/sh4a/clock-shx3.c | 4 ++-- 5 files changed, 9 insertions(+), 10 deletions(-) commit 2568999835d7797afce3dcc3a3f368051ffcaf1f Author: Russell King Date: Mon Mar 2 15:40:29 2015 +0000 clkdev: add clkdev_create() helper Add a helper to allocate and add a clk_lookup structure. This can not only be used in several places in clkdev.c to simplify the code, but more importantly, can be used by callers of the clkdev code to simplify their clkdev creation and registration. Signed-off-by: Russell King drivers/clk/clkdev.c | 53 ++++++++++++++++++++++++++++++++++++++------------ include/linux/clkdev.h | 3 +++ 2 files changed, 44 insertions(+), 12 deletions(-) commit b3d8d7e89fab374d731dfb46fe048f09766ca9c8 Author: Russell King Date: Mon Mar 9 10:43:04 2015 +0000 clkdev: const-ify connection id to clk_add_alias() The connection id is only passed to clk_get() which is already const. Const-ify this argument too. Signed-off-by: Russell King drivers/clk/clkdev.c | 6 +++--- include/linux/clkdev.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) commit 2d34e507293102f29ee94d9a9c5b890696d42452 Author: Russell King Date: Mon Mar 9 11:03:00 2015 +0000 clkdev: get rid of redundant clk_add_alias() prototype in linux/clk.h clk_add_alias() is provided by clkdev, and is not part of the clk API. Howver, it is prototyped in two locations: linux/clkdev.h and linux/clk.h. This is a mess. Get rid of the redundant and unnecessary version in linux/clk.h. Acked-by: Tony Lindgren Tested-by: Robert Jarzmik Acked-by: Sekhar Nori Signed-off-by: Russell King arch/arm/mach-davinci/da850.c | 1 + arch/arm/mach-omap1/board-nokia770.c | 2 +- arch/arm/mach-pxa/eseries.c | 1 + arch/arm/mach-pxa/lubbock.c | 1 + arch/arm/mach-pxa/tosa.c | 1 + include/linux/clk.h | 13 ------------- 6 files changed, 5 insertions(+), 14 deletions(-) commit 673c4f896a10a8df7d09525fe41f5663e0ca1bd4 Author: Fang, Yang A Date: Tue May 5 16:55:34 2015 -0700 ASoC: Intel: Enabled button jack for BSW platform with rt5650 codec rt5650 codec supports 4 buttons detections so enabled it Signed-off-by: Fang, Yang A Signed-off-by: Mark Brown sound/soc/intel/boards/cht_bsw_rt5645.c | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) commit 292d2497cd8f551642a38f7a55b1b7965049c75d Merge: 26f63c69 177e1e1 Author: Mark Brown Date: Wed May 6 11:58:24 2015 +0100 Merge branch 'topic/rt5645' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-intel commit fba3acd961ee167a5ffe4c094deccb7d99a0e963 Author: Russell King Date: Tue Mar 10 14:34:00 2015 +0000 clkdev: drop __init from clkdev_add_table() We want to be able to call clkdev_add_table() from non-init code, so we need to drop the __init marker from it. Signed-off-by: Russell King drivers/clk/clkdev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d2d14a77886485310ec66e575f00ea5232ac7a14 Author: Russell King Date: Sat Mar 14 15:12:35 2015 +0000 clk: update clk API documentation to clarify clk_round_rate() The idea is that rate = clk_round_rate(clk, r) is equivalent to: clk_set_rate(clk, r); rate = clk_get_rate(clk); except that clk_round_rate() does not change the hardware in any way. Signed-off-by: Russell King include/linux/clk.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit d5622a9c13752be46e6fcde9d31391ce0bb0598b Author: Russell King Date: Mon Mar 2 15:45:41 2015 +0000 clkdev: use clk_hw internally clk_add_alias() calls clk_get() followed by clk_put() but in between those two calls it saves away the struct clk pointer to a clk_lookup structure. This leaves the 'clk' member of the clk_lookup pointing at freed memory on configurations where CONFIG_COMMON_CLK=y. This is a problem because clk_get_sys() will eventually try to dereference the freed pointer by calling __clk_get_hw() on it. Fix this by saving away the struct clk_hw pointer instead of the struct clk pointer so that when we try to create a per-user struct clk in clk_get_sys() we don't dereference a junk pointer. Signed-off-by: Russell King drivers/clk/clkdev.c | 24 ++++++++++++++++-------- include/linux/clkdev.h | 1 + 2 files changed, 17 insertions(+), 8 deletions(-) commit 97fceb4db529bb0ae6cab15fb34f59471cdd8c23 Author: Kevin Cernekee Date: Tue May 5 15:52:29 2015 -0700 ASoC: tas571x: Eliminate redundant dev->of_node NULL check of_match_device() checks if dev->of_node is NULL, so we don't need to do it again in the probe function. Signed-off-by: Kevin Cernekee Signed-off-by: Mark Brown sound/soc/codecs/tas571x.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) commit 5b673a48c54594108aec368014efc7334743f06a Author: Borislav Petkov Date: Sat Apr 4 16:40:45 2015 +0200 x86/alternatives: Document macros Add some text to the macro magic for future reference and against failing human memory. Requested-by: Ingo Molnar Signed-off-by: Borislav Petkov Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/alternative-asm.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit 760d765b2bb662be177d4b5b271ced8debc803ac Author: Borislav Petkov Date: Wed Mar 18 19:28:56 2015 +0100 x86/microcode: Parse built-in microcode early Apparently, people do build microcode into the kernel image, i.e. CONFIG_FIRMWARE_IN_KERNEL=y. Make that work in the early loader which is where microcode should be preferably loaded anyway. Note that you need to specify the microcode filename with the path relative to the toplevel firmware directory (the same like the late loading method) in CONFIG_EXTRA_FIRMWARE=y so that early loader can find it. I.e., something like this (Intel variant): CONFIG_FIRMWARE_IN_KERNEL=y CONFIG_EXTRA_FIRMWARE="intel-ucode/06-3a-09" CONFIG_EXTRA_FIRMWARE_DIR="/lib/firmware/" While at it, add me to the loader copyright boilerplate. Signed-off-by: Borislav Petkov Cc: Borislav Petkov Cc: Daniel J Blueman Cc: H. Peter Anvin Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/microcode.h | 8 +++++++- arch/x86/include/asm/microcode_amd.h | 4 ++-- arch/x86/kernel/cpu/microcode/amd_early.c | 19 ++++++++++++++++--- arch/x86/kernel/cpu/microcode/core_early.c | 23 ++++++++++++++++++++++- arch/x86/kernel/cpu/microcode/intel_early.c | 23 +++++++++++++++++++++-- 5 files changed, 68 insertions(+), 9 deletions(-) commit da9b50765e6ea3e9113df3a14a63700e47a670b7 Author: Borislav Petkov Date: Fri Apr 10 14:32:10 2015 +0200 x86/microcode/intel: Remove unused @rev arg of get_matching_sig() @rev wasn't used in get_matching_sig(), drop it. Signed-off-by: Borislav Petkov Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/microcode_intel.h | 2 +- arch/x86/kernel/cpu/microcode/intel_early.c | 5 ++--- arch/x86/kernel/cpu/microcode/intel_lib.c | 4 ++-- 3 files changed, 5 insertions(+), 6 deletions(-) commit a1a32d29f941b7219be07f9e76455a5e4ce4e9c4 Author: Borislav Petkov Date: Fri Apr 10 12:50:57 2015 +0200 x86/microcode/intel: Get rid of revision_is_newer() It is a one-liner for checking microcode header revisions. On top of that, it can be used wrong as it was the case in _save_mc(). Get rid of it. Signed-off-by: Borislav Petkov Acked-by: Quentin Casasnovas Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/include/asm/microcode_intel.h | 6 ------ arch/x86/kernel/cpu/microcode/intel_early.c | 2 +- arch/x86/kernel/cpu/microcode/intel_lib.c | 6 +++--- 3 files changed, 4 insertions(+), 10 deletions(-) commit b9d16a2a21aa9c264a29dd84d6f7b03581517a03 Author: Aravind Gopalakrishnan Date: Mon Apr 27 10:25:51 2015 -0500 x86/cpu/amd: Set X86_FEATURE_EXTD_APICID for future processors Decision to use a 4-bit mask or 8-bit mask in default_get_apic_id() is controlled by setting capability bit X86_FEATURE_EXTD_APICID. Currently, we detect extended APIC ID support by accessing Link Transaction Control register D18F0x68 in PCI config space. But, not even that is needed as we can safely postulate that future AMD processors will support 8-bit APIC IDs and we can simply set that feature bit on them, without the PCI access. Signed-off-by: Aravind Gopalakrishnan Signed-off-by: Borislav Petkov Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Jacob Shin Cc: Paolo Bonzini Cc: Thomas Gleixner Cc: dave.hansen@linux.intel.com Cc: hecmargi@upv.es Cc: mgorman@suse.de Link: http://lkml.kernel.org/r/1430148351-9013-1-git-send-email-Aravind.Gopalakrishnan@amd.com Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/amd.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit 1b4574292e9d2d37b3bb437c9e778fd2bba8e170 Author: Aravind Gopalakrishnan Date: Tue Apr 7 16:46:37 2015 -0500 x86/gart: Check for GART support before accessing GART registers GART registers are not present in newer AMD processors (Fam15h, Model 10h and later). So, avoid accessing those in PCI config space by returning early in early_gart_iommu_check() and gart_iommu_hole_init() if GART is not available. Current code doesn't break on existing processors but there are some side effects: We get bogus AGP aperture messages which are simply noise on GART-less processors: AGP: Node 0: aperture [bus addr 0x00000000-0x01ffffff] (32MB) AGP: Your BIOS doesn't leave aperture memory hole AGP: Please enable the IOMMU option in the BIOS setup AGP: This costs you 64MB of RAM AGP: Mapping aperture over RAM [mem 0xd4000000-0xd7ffffff] We can avoid calling allocate_aperture() and would not have to wastefully reserve 64MB of RAM with memblock_reserve(). Also, we can avoid having to loop through all PCI buses and devices twice, searching for a non-existent AGP bridge if we bail out early. Refactor the family check used in amd_nb.c into an inline function so we can use it here as well as in amd_nb.c Fix some typos while at it. Tested the patch on Fam10h and Fam15h Model 00h-fh and this code runs fine. On Fam15h Model 60h-6fh and on Fam16h, we bail early as they don't have GART. Signed-off-by: Aravind Gopalakrishnan Signed-off-by: Borislav Petkov Reviewed-by: Suravee Suthikulpanit Cc: Bjorn Helgaas Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Joerg Rodel Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1428443197-3834-1-git-send-email-Aravind.Gopalakrishnan@amd.com Signed-off-by: Ingo Molnar arch/x86/include/asm/amd_nb.h | 11 +++++++++++ arch/x86/kernel/amd_nb.c | 4 +--- arch/x86/kernel/aperture_64.c | 8 +++++++- 3 files changed, 19 insertions(+), 4 deletions(-) commit d9ee948d82203811a545ba26b0172fce4970d1dc Author: H.J. Lu Date: Wed Dec 17 18:05:29 2014 -0800 x86/asm: Use -mskip-rax-setup if supported GCC 5 added a compiler option, -mskip-rax-setup, for x86-64. It skips setting up the RAX register when SSE is disabled and there are no variable arguments passed in vector registers. (According to the x86_64 ABI, %al is used as a hidden register containing the number of vector registers used). Since the kernel doesn't pass vector registers to functions with variable arguments, this option can be used to optimize the x86-64 kernel. This GCC feature was suggested by Rasmus Villemoes . This is the corresponding kernel change using it. For kernel v3.17: text data bss dec filename 11455921 2204048 5853184 19513153 vmlinux #with -mskip-rax-setup 11480079 2204048 5853184 19537311 vmlinux For Kernel v4.0+ - custom config: text data bss dec filename 10231778 3479800 16617472 30329050 vmlinux-gcc5+-mskip-rax-setup 10268797 3547448 16621568 30437813 vmlinux Signed-off-by: H.J. Lu Signed-off-by: Borislav Petkov Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Rasmus Villemoes Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/Makefile | 3 +++ 1 file changed, 3 insertions(+) commit f5d6a52f511157c7476590532a23b5664b1ed877 Author: Jan H. Schönherr Date: Mon May 4 11:42:34 2015 +0200 x86/smpboot: Skip delays during SMP initialization similar to Xen Remove the per-CPU delays during SMP initialization, which seems to be possible on newer architectures with an x2APIC. Xen does this since 2011. In fact, this commit is basically a combination of the following Xen commits. The first removes the delays, the second fixes an issue with the removal: commit 68fce206f6dba9981e8322269db49692c95ce250 Author: Tim Deegan Date: Tue Jul 19 14:13:01 2011 +0100 x86: Remove timeouts from INIT-SIPI-SIPI sequence when using x2apic. Some of the timeouts are pointless since they're waiting for the ICR to ack the IPI delivery and that doesn't happen on x2apic. The others should be benign (and are suggested in the SDM) but removing them makes AP bringup much more reliable on some test boxes. Signed-off-by: Tim Deegan commit f12ee533150761df5a7099c83f2a5fa6c07d1187 Author: Gang Wei Date: Thu Dec 29 10:07:54 2011 +0000 X86: Add a delay between INIT & SIPIs for tboot AP bring-up in X2APIC case Without this delay, Xen could not bring APs up while working with TXT/tboot, because tboot needs some time in APs to handle INIT before becoming ready for receiving SIPIs (this delay was removed as part of c/s 23724 by Tim Deegan). Signed-off-by: Gang Wei Acked-by: Keir Fraser Acked-by: Tim Deegan Committed-by: Tim Deegan Signed-off-by: Jan H. Schönherr Cc: Anthony Liguori Cc: Borislav Petkov Cc: Gang Wei Cc: H. Peter Anvin Cc: Len Brown Cc: Linus Torvalds Cc: Thomas Gleixner Cc: Tim Deegan Link: http://lkml.kernel.org/r/1430732554-7294-1-git-send-email-jschoenh@amazon.de Signed-off-by: Ingo Molnar arch/x86/kernel/smpboot.c | 61 +++++++++++++++++++++++++++++------------------ 1 file changed, 38 insertions(+), 23 deletions(-) commit 844e0edf42d1847b974427b5597009f1de45496c Author: Andreas Gröger Date: Tue May 5 20:08:34 2015 +0200 can: janz-ican3: add support for CAL/CANopen firmware In our department we are using some older Janz ICAN3-modules in our dekstop pcs. There we have slightly different carrier boards than the janz-cmodio supported in the kernel sources, called CAN-PCI2 with two submodules. But the pci configuration regions are identical. So extending the supported pci devices to the corresponding device ids is sufficient to get the drivers working. * The old ICAN3-modules with firmware 1.28 need more then 250ms for the restart after reset. I've increased the timeout to 500ms. * The janz_ican3 module uses the raw can services of the Janz-firmware, this means firmware must be ICANOS/2. Our ICAN3-modules are equipped with CAL/CANopen-firmware, so I must use the appropriate commands for the layer management services. Te driver detects the firmware after module reset and selects the commands matching the firmware. This affects the bus on/off-command (ican3_set_bus_state) and the configuration of the bittiming (ican3_set_bittiming). For better diagnostics the detected firmware string is presented as sysfs attribute (fwinfo). Signed-off-by: Andreas Gröger Signed-off-by: Marc Kleine-Budde .../ABI/testing/sysfs-class-net-janz-ican3 | 9 ++ drivers/mfd/janz-cmodio.c | 4 + drivers/net/can/janz-ican3.c | 125 +++++++++++++++------ 3 files changed, 101 insertions(+), 37 deletions(-) commit 0d1802ef8fea1eee9bec00319db33ab54202bb0a Author: Andreas Gröger Date: Tue May 5 20:08:34 2015 +0200 can: janz-ican3: add documentation for existing sysfs entries This patch adds documentation for the existing sysfs entries for the janz PCI module. Signed-off-by: Andreas Gröger Signed-off-by: Marc Kleine-Budde Documentation/ABI/testing/sysfs-bus-pci-drivers-janz-cmodio | 8 ++++++++ Documentation/ABI/testing/sysfs-class-net-janz-ican3 | 10 ++++++++++ 2 files changed, 18 insertions(+) commit a2f11835994ed5bcd6d66c7205947cc482231b08 Author: Shawn Landden Date: Tue May 5 09:07:16 2015 -0700 can.h: make padding given by gcc explicit The current definition of struct can_frame has a 16-byte size, with 8-byte alignment, but the 3 bytes of padding are not explicit like the similar 2 bytes of padding of struct canfd_frame. Make it explicit so it is easier to read. Signed-off-by: Shawn Landden Acked-by: Oliver Hartkopp Signed-off-by: Marc Kleine-Budde Documentation/networking/can.txt | 3 +++ include/uapi/linux/can.h | 6 ++++++ 2 files changed, 9 insertions(+) commit d5255ec362f67586392c368fd21c8a2746e84e77 Author: Krzysztof Kozlowski Date: Sat May 2 01:02:48 2015 +0900 clk: s3c2410: 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: Stephen Boyd drivers/clk/samsung/clk-s3c2410-dclk.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1237dc44300c429c4dcfc81e038ee049dad883b1 Author: Krzysztof Kozlowski Date: Sat May 2 01:02:47 2015 +0900 clk: s3c2410: Staticize local symbols Staticize symbols not exported and not used outside of file. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Stephen Boyd drivers/clk/samsung/clk-s3c2410-dclk.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 2ad8b3fcf5b43f269ab463ff27c41f4637a4967f Author: Krzysztof Kozlowski Date: Tue Apr 28 13:46:22 2015 +0900 clk: ls1x: Fix duplicate const for parent names Replace duplicated const keyword with proper array of const pointers to const strings. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Stephen Boyd drivers/clk/clk-ls1x.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 45195b8f8402bcb8e519b2b2c8521d47c6c5d96c Author: Krzysztof Kozlowski Date: Tue Apr 28 13:46:21 2015 +0900 clk: sirf: Constify parent names in clock init data The array of parent names can be made as array of const pointers to const strings. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Stephen Boyd drivers/clk/sirf/clk-common.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit f3db6f16bdfda536c15aefd4d47515231b3009f4 Author: Krzysztof Kozlowski Date: Tue Apr 28 13:46:20 2015 +0900 clk: cdce706: Constify parent names in clock init data The array of parent names can be made as array of const pointers to const strings. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Stephen Boyd drivers/clk/clk-cdce706.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6b8f9eabec1c77ab72194b1bacff5d5c6e16dbf8 Author: Krzysztof Kozlowski Date: Tue Apr 28 13:46:17 2015 +0900 clk: exynos: Staticize file-scope declarations Add missing static to local (file-scope only) symbols. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Stephen Boyd drivers/clk/samsung/clk-exynos5260.c | 74 ++++++++++++++++++------------------ drivers/clk/samsung/clk-exynos5420.c | 10 ++--- 2 files changed, 42 insertions(+), 42 deletions(-) commit 9b030bc92999853bae91262908554f168fa74965 Author: Krzysztof Kozlowski Date: Tue Apr 28 13:46:16 2015 +0900 clk: rockchip: Staticize file-scope declarations Add missing static to local (file-scope only) symbols. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Stephen Boyd drivers/clk/rockchip/clk-rk3188.c | 2 +- drivers/clk/rockchip/clk-rk3288.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 9eb67f1093fdaefdffe56861e373f50d117352e9 Author: Sascha Hauer Date: Thu Apr 23 10:35:43 2015 +0200 dt-bindings: ARM: Mediatek: Document devicetree bindings for clock/reset controllers This adds the binding documentation for the apmixedsys, perisys and infracfg controllers found on Mediatek SoCs. Signed-off-by: Sascha Hauer Signed-off-by: Stephen Boyd .../bindings/arm/mediatek/mediatek,apmixedsys.txt | 23 +++++++++++++++++ .../bindings/arm/mediatek/mediatek,infracfg.txt | 30 ++++++++++++++++++++++ .../bindings/arm/mediatek/mediatek,pericfg.txt | 30 ++++++++++++++++++++++ .../bindings/arm/mediatek/mediatek,topckgen.txt | 23 +++++++++++++++++ 4 files changed, 106 insertions(+) commit c1e81a3bef36cb046c079480948fa3e0eca590d6 Author: James Liao Date: Thu Apr 23 10:35:42 2015 +0200 clk: mediatek: Add basic clocks for Mediatek MT8173. This patch adds basic clocks for MT8173, including TOPCKGEN, PLLs, INFRA and PERI clocks. Signed-off-by: James Liao Signed-off-by: Henry Chen Signed-off-by: Sascha Hauer Signed-off-by: Stephen Boyd drivers/clk/mediatek/Makefile | 1 + drivers/clk/mediatek/clk-mt8173.c | 830 +++++++++++++++++++++ include/dt-bindings/clock/mt8173-clk.h | 235 ++++++ .../dt-bindings/reset-controller/mt8173-resets.h | 63 ++ 4 files changed, 1129 insertions(+) commit a8aede7948438f3a9c830a5a865ae6a78c5fc4ca Author: James Liao Date: Thu Apr 23 10:35:41 2015 +0200 clk: mediatek: Add basic clocks for Mediatek MT8135. This patch adds basic clocks for MT8135, including TOPCKGEN, PLLs, INFRA and PERI clocks. Signed-off-by: James Liao Signed-off-by: Henry Chen Signed-off-by: Sascha Hauer Signed-off-by: Stephen Boyd drivers/clk/mediatek/Makefile | 1 + drivers/clk/mediatek/clk-mt8135.c | 644 +++++++++++++++++++++ include/dt-bindings/clock/mt8135-clk.h | 194 +++++++ .../dt-bindings/reset-controller/mt8135-resets.h | 64 ++ 4 files changed, 903 insertions(+) commit d633fb7ac1e6abc39270edebbfa23131c673b5b9 Author: Sascha Hauer Date: Thu Apr 23 10:35:40 2015 +0200 clk: mediatek: Add reset controller support The pericfg and infracfg units also provide reset lines to several other SoC internal units. This adds a function which can be called from the pericfg and infracfg initialization functions which will register the reset controller using reset_controller_register. The reset controller will provide support for resetting the units connected to the pericfg and infracfg controller. The units resetted by this controller can use the standard reset device tree binding to gain access to the reset lines. Signed-off-by: Sascha Hauer Acked-by: Philipp Zabel Signed-off-by: Stephen Boyd drivers/clk/mediatek/Makefile | 1 + drivers/clk/mediatek/clk-mtk.h | 10 +++++ drivers/clk/mediatek/reset.c | 97 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 108 insertions(+) commit 9741b1a68035b541005db1a4d7623bd9b3522ab4 Author: James Liao Date: Thu Apr 23 10:35:39 2015 +0200 clk: mediatek: Add initial common clock support for Mediatek SoCs. This patch adds common clock support for Mediatek SoCs, including plls, muxes and clock gates. Signed-off-by: James Liao Signed-off-by: Henry Chen Signed-off-by: Sascha Hauer [sboyd@codeaurora.org: Squelch checkpatch warning in clk-mtk.h] Signed-off-by: Stephen Boyd drivers/clk/Makefile | 1 + drivers/clk/mediatek/Makefile | 1 + drivers/clk/mediatek/clk-gate.c | 137 +++++++++++++++++ drivers/clk/mediatek/clk-gate.h | 49 ++++++ drivers/clk/mediatek/clk-mtk.c | 220 ++++++++++++++++++++++++++ drivers/clk/mediatek/clk-mtk.h | 159 +++++++++++++++++++ drivers/clk/mediatek/clk-pll.c | 332 ++++++++++++++++++++++++++++++++++++++++ 7 files changed, 899 insertions(+) commit 2893c379461a208b3059f55dfe4dafa06b4aa46a Author: Sascha Hauer Date: Tue Mar 31 20:16:52 2015 +0200 clk: make strings in parent name arrays const The clk functions and structs declare the parent_name arrays as 'const char **parent_names' which means the parent name strings are const, but the array itself is not. Use 'const char * const * parent_names' instead which also makes the array const. This allows us to put the parent_name arrays into the __initconst section. Signed-off-by: Sascha Hauer Reviewed-by: Krzysztof Kozlowski Tested-by: Krzysztof Kozlowski Acked-by: Uwe Kleine-König [sboyd@codeaurora.org: Squelch 80-character checkpatch warnings] Signed-off-by: Stephen Boyd drivers/clk/clk-composite.c | 2 +- drivers/clk/clk-mux.c | 6 ++++-- include/linux/clk-provider.h | 10 ++++++---- 3 files changed, 11 insertions(+), 7 deletions(-) commit 1222e564cf4394af0b3c5e8a73330b20862c068b Author: Ingo Molnar Date: Wed May 6 06:23:59 2015 +0200 x86/platform/uv: Make SGI UV dependent on CONFIG_PCI Recent PCI changes stopped exporting PCI constants if !CONFIG_PCI, which made the UV build fail: arch/x86/kernel/apic/x2apic_uv_x.c:843:16: error: ‘PCI_VGA_STATE_CHANGE_BRIDGE’ undeclared (first use in this function) arch/x86/kernel/apic/x2apic_uv_x.c:1023:2: error: implicit declaration of function ‘pci_register_set_vga_state’ [-Werror=implicit-function-declaration] As it's unlikely that an UV bootup will get far without PCI enumeration, make the platform Kconfig switch (CONFIG_X86_UV) depend on CONFIG_PCI=y. Cc: Robin Holt Cc: Dimitri Sivanich Cc: Russ Anderson Cc: Mike Travis Cc: Jack Steiner Signed-off-by: Ingo Molnar arch/x86/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 1836ac856e4fb446e48afa4f8cae897d4856b06c Merge: 5ebe6af 3698dab Author: Ingo Molnar Date: Wed May 6 04:42:12 2015 +0200 Merge tag 'perf-core-for-mingo-3' 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: - Improve --filter support for 'perf probe', allowing using its arguments on other commands, as --add, --del, etc (Masami Hiramatsu) - Show warning when running 'perf kmem stat' on a unsuitable perf.data file, i.e. one with events that are not the ones required for the stat variant used (Namhyung Kim). Infrastructure changes: - Auxtrace support patches, paving the way to support Intel PT and BTS (Adrian Hunter) - hists browser (top, report) refactorings (Namhyung Kim) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit 239fb791d4ee194740e69fe9694f58ec404d1689 Author: Thomas Graf Date: Tue May 5 15:09:21 2015 +0200 vxlan: Correctly set flow*i_mark and flow4i_proto in route lookups VXLAN must provide the skb mark and specifiy IPPROTO_UDP when doing the FIB lookup for the remote ip. Otherwise an invalid route might be returned. Signed-off-by: Thomas Graf Signed-off-by: David S. Miller drivers/net/vxlan.c | 3 +++ 1 file changed, 3 insertions(+) commit b0d081c524b46c25d71b16a1101e8c80d6e8c86a Author: Michal Simek Date: Tue May 5 11:26:05 2015 +0200 net: axienet: Fix kernel-doc warnings This patch remove kernel-doc warnings. Signed-off-by: Michal Simek Signed-off-by: David S. Miller drivers/net/ethernet/xilinx/xilinx_axienet.h | 6 +++- drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 38 ++++++++++++++--------- drivers/net/ethernet/xilinx/xilinx_axienet_mdio.c | 6 ++-- 3 files changed, 32 insertions(+), 18 deletions(-) commit 2be586205ca2b812022644cec9830bb156b45990 Author: Srikanth Thokala Date: Tue May 5 11:26:04 2015 +0200 net: axienet: Removed _of_ prefix in probe and remove functions Synchronize names with other drivers. Signed-off-by: Srikanth Thokala Signed-off-by: Michal Simek Signed-off-by: David S. Miller drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 8495659bf93c8e21af087eb2099b53a25f37a4b3 Author: Srikanth Thokala Date: Tue May 5 11:26:03 2015 +0200 net: axienet: Use of_property_* calls Use of_property_* calls Signed-off-by: Srikanth Thokala Signed-off-by: Michal Simek Signed-off-by: David S. Miller drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 35 ++++++++++------------- 1 file changed, 15 insertions(+), 20 deletions(-) commit 46aa27df88532146974628602b6f5cc587422388 Author: Srikanth Thokala Date: Tue May 5 11:26:02 2015 +0200 net: axienet: Use devm_* calls use devm_* calls Signed-off-by: Srikanth Thokala Signed-off-by: Michal Simek Signed-off-by: David S. Miller drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 54 +++++++++++------------ 1 file changed, 27 insertions(+), 27 deletions(-) commit 95219aa538e11d5099d1191367dfa60d1ac3a5e5 Author: Srikanth Thokala Date: Tue May 5 11:26:01 2015 +0200 net: axienet: Use pdev instead of op Synchronize names with other drivers Signed-off-by: Srikanth Thokala Signed-off-by: Michal Simek Signed-off-by: David S. Miller drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 47 ++++++++++++----------- 1 file changed, 24 insertions(+), 23 deletions(-) commit 850a7503b09304fcc818d5eea51bb7dc51790bc6 Author: Michal Simek Date: Tue May 5 11:26:00 2015 +0200 net: axienet: Fix comments blocks There is rule for network drivers with comments blocks which is newly checked by checkpatch.pl script. Let's fix it. Signed-off-by: Michal Simek Signed-off-by: David S. Miller drivers/net/ethernet/xilinx/xilinx_axienet.h | 93 ++++++++++++----------- drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 34 +++++---- drivers/net/ethernet/xilinx/xilinx_axienet_mdio.c | 3 +- 3 files changed, 71 insertions(+), 59 deletions(-) commit c81a97b5ca146a5cc6c206831eb6bc39215678f3 Author: Srikanth Thokala Date: Tue May 5 11:25:59 2015 +0200 net: axienet: Removed coding style errors and warnings Removed checkpatch.pl errors and warnings. Signed-off-by: Srikanth Thokala Signed-off-by: Michal Simek Signed-off-by: David S. Miller drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 20 ++++++++++---------- drivers/net/ethernet/xilinx/xilinx_axienet_mdio.c | 21 +++++++++++---------- 2 files changed, 21 insertions(+), 20 deletions(-) commit d7cc3163e026300f37a64d9e2fe5ad64a87504bc Author: Srikanth Thokala Date: Tue May 5 11:25:58 2015 +0200 net: axienet: Support phy-less mode of operation This patch adds proper checks to handle the PHY-less case. Signed-off-by: Srikanth Thokala Signed-off-by: Michal Simek Signed-off-by: David S. Miller drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit f080a8c35d8932d72c08df1260bbea14b7db481e Author: Srikanth Thokala Date: Tue May 5 11:25:57 2015 +0200 net: axienet: Handle jumbo frames for lesser frame sizes In the current implementation, jumbo frames are supported only for the frame sizes > 16K. This patch corrects this logic to handle jumbo frames for lesser frame sizes (< 16K) ensuring jumbo frame MTU is within the limit of max frame size configured in the h/w design. Signed-off-by: Srikanth Thokala Signed-off-by: Michal Simek Signed-off-by: David S. Miller drivers/net/ethernet/xilinx/xilinx_axienet.h | 9 ++--- drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 46 +++++++++++------------ 2 files changed, 27 insertions(+), 28 deletions(-) commit 80c775accdf834567a8e163eee9a3531eeafea7d Author: Peter Crosthwaite Date: Tue May 5 11:25:56 2015 +0200 net: axienet: Service completion interrupts ASAP The packet completion interrupts for TX and RX should be serviced before the packets are consumed. This ensures against the degenerate case when a new completion interrupt is raised after the handler has exited but before the interrupts are cleared. In this case its possible for the ISR to clear an unhandled interrupt (leading to potential deadlock). Signed-off-by: Peter Crosthwaite Tested-by: Jason Wu Acked-by: Michal Simek Signed-off-by: Michal Simek Signed-off-by: David S. Miller drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 38e96b35cdd9cc8dc9bcf00a438ed564c0d0efe1 Author: Peter Crosthwaite Date: Tue May 5 11:25:55 2015 +0200 net: axienet: Handle 0 packet receive gracefully The AXI-DMA rx-delay interrupt can sometimes be triggered when there are 0 outstanding packets received. This is due to the fact that the receive function will greedily consume as many packets as possible on interrupt. So if two packets (with a very particular timing) arrive in succession they will each cause the rx-delay interrupt, but the first interrupt will consume both packets. This means the second interrupt is a 0 packet receive. This is mostly OK, except that the tail pointer register is updated unconditionally on receive. Currently the tail pointer is always set to the current bd-ring descriptor under the assumption that the hardware has moved onto the next descriptor. What this means for length 0 recv is the current descriptor that the hardware is potentially yet to use will be marked as the tail. This causes the hardware to think its run out of descriptors deadlocking the whole rx path. Fixed by updating the tail pointer to the most recent successfully consumed descriptor. Reported-by: Wendy Liang Signed-off-by: Peter Crosthwaite Tested-by: Jason Wu Acked-by: Michal Simek Signed-off-by: Michal Simek Signed-off-by: David S. Miller drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit d1d372e8b7b053518599a6e397bbba0bd8d0bf48 Author: Srikanth Thokala Date: Tue May 5 11:25:54 2015 +0200 net: axienet: Support for RGMII This patch adds support for the RGMII. The h/w configuration parameter C_PHY_TYPE, which represents the interface configured in the design, is used to differentiate various interfaces supported by AXI Ethernet. Signed-off-by: Srikanth Thokala Signed-off-by: Michal Simek Signed-off-by: David S. Miller drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit c60cd8c505eab52cfead464e0621ff3039c429ac Merge: 6decd63 637d3e9 Author: David S. Miller Date: Tue May 5 19:31:50 2015 -0400 Merge branch 'cxgb4-next' Hariprasad Shenai says: ==================== Trivial fixes and changes for SGE This patch series adds the following. Discard packet if length is greater than MTU, move sge monitor code to a new routine, add device node to ULD info, add congestion notification from SGE for ingress queue and freelists and for T5, setting up the Congestion Manager values of the new RX Ethernet Queue is done by firmware now. This patch series has been created against net-next tree and includes patches on cxgb4 driver. We have included all the maintainers of respective drivers. Kindly review the change and let us know in case of any review comments. Thanks V2: Align parenthesis for PATCH 2/6 and PATCH 5/6 ==================== Signed-off-by: David S. Miller commit 637d3e99735102f06c3eee095d2bbebf1863ca24 Author: Hariprasad Shenai Date: Tue May 5 14:59:56 2015 +0530 cxgb4: Discard the packet if the length is greater than mtu pktgen sends raw udp packets and bypasses most of the linux networking stack. User can specify different packet sizes. Hence we need to discard the packet if the length is greater than mtu Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/sge.c | 9 ++++++++- drivers/net/ethernet/chelsio/cxgb4vf/sge.c | 9 ++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) commit a3bfb6179cd1277b259f86b022f3340f3bb49cac Author: Hariprasad Shenai Date: Tue May 5 14:59:55 2015 +0530 cxgb4: Move SGE Ingress DMA state monitor code to a new routine Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4.h | 23 ++++-- drivers/net/ethernet/chelsio/cxgb4/sge.c | 85 +++---------------- drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 127 +++++++++++++++++++++++++++++ 3 files changed, 156 insertions(+), 79 deletions(-) commit 982b81eb24697656d5f52845793827091c3c6309 Author: Hariprasad Shenai Date: Tue May 5 14:59:54 2015 +0530 cxgb4: Add device node to ULD info Adds device node to ULD info. Use the node info to alloc_ring() for ctrl TX queues Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 1 + drivers/net/ethernet/chelsio/cxgb4/cxgb4_uld.h | 1 + drivers/net/ethernet/chelsio/cxgb4/sge.c | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) commit b8b1ae990efa2e677b162e9e24de77743bfca954 Author: Hariprasad Shenai Date: Tue May 5 14:59:53 2015 +0530 cxgb4: Pass in a Congestion Channel Map to t4_sge_alloc_rxq() Passes a Congestion Channel Map to t4_sge_alloc_rxq() for the Ethernet RX Queues based on the MPS Buffer Group Map of the TX Channel rather than just the TX Channel Map. Also, in t4_sge_alloc_rxq() for T5, setting up the Congestion Manager values of the new RX Ethernet Queue is done by firmware now. Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/sge.c | 35 ++++++++++++++++++++++++++ drivers/net/ethernet/chelsio/cxgb4/t4_values.h | 9 +++++++ drivers/net/ethernet/chelsio/cxgb4/t4fw_api.h | 1 + 3 files changed, 45 insertions(+) commit 145ef8a54eb3bee917947f9bf7940093a0f2b03d Author: Hariprasad Shenai Date: Tue May 5 14:59:52 2015 +0530 cxgb4: Enable congestion notification from SGE for IQs and FLs. Also changed the name of t4_hw.c:get_mps_bg_map() to t4_get_mps_bg_map() and make it an exported routine with a definition in cxgb4.h. Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4.h | 3 ++- drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 10 ++++++---- drivers/net/ethernet/chelsio/cxgb4/sge.c | 20 +++++++++++++++----- drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 6 +++--- drivers/net/ethernet/chelsio/cxgb4/t4fw_api.h | 2 ++ 5 files changed, 28 insertions(+), 13 deletions(-) commit 1343299727e99230156ddb0dbac0f84e8e0a1d1e Author: Hariprasad Shenai Date: Tue May 5 14:59:51 2015 +0530 cxgb4: Make sure that Freelist size is larger than Egress Congestion Threshold We need to make sure that the Free List Size, in pointers, is at least 2 Egress Queue Units (8 pointers/each) larger than the SGE's Egress Congestion Threshold (in pointers). Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/sge.c | 9 +++++++++ drivers/net/ethernet/chelsio/cxgb4vf/sge.c | 6 +++++- 2 files changed, 14 insertions(+), 1 deletion(-) commit 6decd63acacb3b8de81ccc435cf9acea8b6bdfeb Author: Thomas Graf Date: Tue May 5 02:27:02 2015 +0200 rhashtable-test: Fix 64bit division A 64bit division went in unnoticed. Use do_div() to accomodate non 64bit architectures. Reported-by: kbuild test robot Fixes: 1aa661f5c3df ("rhashtable-test: Measure time to insert, remove & traverse entries") Signed-off-by: Thomas Graf Signed-off-by: David S. Miller lib/test_rhashtable.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit c936a79fc01ef1115a46f940944ebe7385845673 Author: Thomas Graf Date: Tue May 5 02:22:53 2015 +0200 rhashtable: Simplify iterator code Remove useless obj variable and goto logic. Signed-off-by: Thomas Graf Acked-by: Herbert Xu Signed-off-by: David S. Miller lib/rhashtable.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit 1a376de8e3d120df54f6277f82e1ee987e2d7e8f Merge: 76061d9 f631c44 Author: David S. Miller Date: Tue May 5 19:29:50 2015 -0400 Merge branch 'ipvlan-mcast' Mahesh Bandewar says: ==================== Multicast processing in IPvlan Dan Willems pointed out that autoconf in IPvlan is broken because of the way broadcast bit gets set. Since broadcast processing is a real performance drain, the broadcast bit in multicast filter was only set when the interface was configured with IPv4 address. In autoconf scenario, when there are no addresses configured; this logic did not work and it wouldn't allow DHCPv4 to work. The only way was to add protocol specific hacks to avoid processing unnecessary broadcast burdon. This jugglery could be avoided if these multicast / broadcast packets are taken out of fast-path and are processed in a work-queue. This will enable us to add broadcast bit in all multicast filters without any impact on performance of the virtual device. This patch series just does that. ==================== Signed-off-by: David S. Miller commit f631c44bbe1581d18d0aba628b3802d0eacb6373 Author: Mahesh Bandewar Date: Mon May 4 17:06:11 2015 -0700 ipvlan: Always set broadcast bit in multicast filter Earlier tricks of setting broadcast bit only when IPv4 address is added onto interface are not good enough especially when autoconf comes in play. Setting them on always is performance drag but now that multicast / broadcast is not processed in fast-path; enabling broadcast will let autoconf work correctly without affecting performance characteristics of the device. Signed-off-by: Mahesh Bandewar Signed-off-by: David S. Miller drivers/net/ipvlan/ipvlan_main.c | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) commit ba35f8588f474d5bf8988615b04ee722a2684fd2 Author: Mahesh Bandewar Date: Mon May 4 17:06:03 2015 -0700 ipvlan: Defer multicast / broadcast processing to a work-queue Processing multicast / broadcast in fast path is performance draining and having more links means more cloning and bringing performance down further. Broadcast; in particular, need to be given to all the virtual links. Earlier tricks of enabling broadcast bit for IPv4 only interfaces are not really working since it fails autoconf. Which means enabling broadcast for all the links if protocol specific hacks do not have to be added into the driver. This patch defers all (incoming as well as outgoing) multicast traffic to a work-queue leaving only the unicast traffic in the fast-path. Now if we need to apply any additional tricks to further reduce the impact of this (multicast / broadcast) type of traffic, it can be implemented while processing this work without affecting the fast-path. Signed-off-by: Mahesh Bandewar Signed-off-by: David S. Miller drivers/net/ipvlan/ipvlan.h | 5 ++ drivers/net/ipvlan/ipvlan_core.c | 138 ++++++++++++++++++++++++--------------- drivers/net/ipvlan/ipvlan_main.c | 5 ++ 3 files changed, 96 insertions(+), 52 deletions(-) commit 76061d99a3ba6c29c3dfc24bda2ec0550838951f Merge: 784b58a 9545b22 Author: David S. Miller Date: Tue May 5 19:24:43 2015 -0400 Merge branch 'eth_proto_is_802_3' Alexander Duyck says: ==================== Add eth_proto_is_802_3 to provide improved means of checking Ethertype This patch series implements and makes use of eth_proto_is_802_3(). The idea behind the function is to provide an optimized means of testing to determine if a given Ethertype value is a length or 802.3 protocol number. The standard path for this was to use ntohs(proto) and then perform a comparison. This adds a slight cost as it usually requires either a 16b rotate or byte swap which can cost 1 cycle or more depending on the processor. I had previously addressed this for eth_type_trans, however in doing so I had overlooked checking with sparse and had introduced a couple sparse warnings. The first patch in this series fixes those sparse warnings as well as does some additional optimization for big endian systems. In addition it pushes the code out into a separate function which can then be used in the other patches to reduce the instruction count/processing time in those functions as well. ==================== Signed-off-by: David S. Miller commit 9545b22da647cf6fbbac9c5a48c50fd72d892b11 Author: Alexander Duyck Date: Mon May 4 14:34:10 2015 -0700 vlan: Use eth_proto_is_802_3 Replace "ntohs(proto) >= ETH_P_802_3_MIN" w/ eth_proto_is_802_3(proto). Signed-off-by: Alexander Duyck Signed-off-by: David S. Miller include/linux/if_vlan.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6713fc9b8fa33444aa000f0f31076f6a859ccb34 Author: Alexander Duyck Date: Mon May 4 14:34:05 2015 -0700 openvswitch: Use eth_proto_is_802_3 Replace "ntohs(proto) >= ETH_P_802_3_MIN" w/ eth_proto_is_802_3(proto). Signed-off-by: Alexander Duyck Signed-off-by: David S. Miller net/openvswitch/datapath.c | 2 +- net/openvswitch/flow.c | 4 ++-- net/openvswitch/flow_netlink.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) commit d181ddca89cf8680db6c767ae38e3b66224d1657 Author: Alexander Duyck Date: Mon May 4 14:33:59 2015 -0700 ipv4/ip_tunnel_core: Use eth_proto_is_802_3 Replace "ntohs(proto) >= ETH_P_802_3_MIN" w/ eth_proto_is_802_3(proto). Signed-off-by: Alexander Duyck Signed-off-by: David S. Miller net/ipv4/ip_tunnel_core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 27cf6a6e69a52b07adc68af11e3e39548593baf0 Author: Alexander Duyck Date: Mon May 4 14:33:54 2015 -0700 ebtables: Use eth_proto_is_802_3 Replace "ntohs(proto) >= ETH_P_802_3_MIN" w/ eth_proto_is_802_3(proto). Signed-off-by: Alexander Duyck Signed-off-by: David S. Miller net/bridge/netfilter/ebtables.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2c7a88c252bf3381958cf716f31b6b2e0f2f3fa7 Author: Alexander Duyck Date: Mon May 4 14:33:48 2015 -0700 etherdev: Fix sparse error, make test usable by other functions This change does two things. First it fixes a sparse error for the fact that the __be16 degrades to an integer. Since that is actually what I am kind of doing I am simply working around that by forcing both sides of the comparison to u16. Also I realized on some compilers I was generating another instruction for big endian systems such as PowerPC since it was masking the value before doing the comparison. So to resolve that I have simply pulled the mask out and wrapped it in an #ifndef __BIG_ENDIAN. Lastly I pulled this all out into its own function. I notices there are similar checks in a number of other places so this function can be reused there to help reduce overhead in these paths as well. Signed-off-by: Alexander Duyck Signed-off-by: David S. Miller include/linux/etherdevice.h | 18 ++++++++++++++++++ net/ethernet/eth.c | 2 +- 2 files changed, 19 insertions(+), 1 deletion(-) commit 784b58a327ad16967ab64bbfa558df81980d31e9 Author: Bernhard Thaler Date: Mon May 4 22:47:13 2015 +0200 bridge: change BR_GROUPFWD_RESTRICTED to allow forwarding of LLDP frames BR_GROUPFWD_RESTRICTED bitmask restricts users from setting values to /sys/class/net/brX/bridge/group_fwd_mask that allow forwarding of some IEEE 802.1D Table 7-10 Reserved addresses: (MAC Control) 802.3 01-80-C2-00-00-01 (Link Aggregation) 802.3 01-80-C2-00-00-02 802.1AB LLDP 01-80-C2-00-00-0E Change BR_GROUPFWD_RESTRICTED to allow to forward LLDP frames and document group_fwd_mask. e.g. echo 16384 > /sys/class/net/brX/bridge/group_fwd_mask allows to forward LLDP frames. This may be needed for bridge setups used for network troubleshooting or any other scenario where forwarding of LLDP frames is desired (e.g. bridge connecting a virtual machine to real switch transmitting LLDP frames that virtual machine needs to receive). Tested on a simple bridge setup with two interfaces and host transmitting LLDP frames on one side of this bridge (used lldpd). Setting group_fwd_mask as described above lets LLDP frames traverse bridge. Signed-off-by: Bernhard Thaler Signed-off-by: David S. Miller Documentation/ABI/testing/sysfs-class-net | 19 +++++++++++++++++++ net/bridge/br_private.h | 4 ++-- 2 files changed, 21 insertions(+), 2 deletions(-) commit f133d08a3986efeff24069616ac739fc83c8ec9f Author: Wang Long Date: Tue May 5 01:22:26 2015 +0000 Documentation: cpufreq: delete duplicate description of sysfs interface 'scaling_driver' The file 'Documentation/cpu-freq/user-guide.txt' has duplicate description of sysfs interface 'scaling_driver'. [first] scaling_driver : this file shows what cpufreq driver is used to set the frequency on this CPU [second] scaling_driver : Hardware driver for cpufreq. Although this does not affect anything, I think we should only have one. so delete the second one because the first one is described in more detail. Signed-off-by: Wang Long Signed-off-by: Rafael J. Wysocki Documentation/cpu-freq/user-guide.txt | 2 -- 1 file changed, 2 deletions(-) commit 3698dab1c849c7e1cd440df4fca24baa1973d53b Author: Namhyung Kim Date: Tue May 5 23:55:46 2015 +0900 perf tools: Move TUI-specific fields out of map_symbol The has_children and unfolded fields don't belong to the struct map_symbol since they're used by the TUI only. Move those fields out of map_symbol since the struct is also used by other places. This will also help to compact the sizeof struct hist_entry. Signed-off-by: Namhyung Kim Cc: David Ahern Cc: Jiri Olsa Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1429687101-4360-11-git-send-email-namhyung@kernel.org Link: http://lkml.kernel.org/r/1430837746-5439-1-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/ui/browsers/hists.c | 79 +++++++++++++++++++++++++----------------- tools/perf/util/callchain.h | 4 +++ tools/perf/util/hist.c | 2 +- tools/perf/util/sort.h | 2 ++ tools/perf/util/symbol.h | 2 -- 5 files changed, 54 insertions(+), 35 deletions(-) commit 6422184b087ff4355951d72e0bb320f52e107185 Author: Namhyung Kim Date: Fri Apr 24 10:15:33 2015 +0900 perf hists browser: Simplify zooming code using pstack_peek() Now LEFT key press action can just use do_zoom_dso/thread() code to get out of the current filter. Signed-off-by: Namhyung Kim Acked-by: Jiri Olsa Cc: David Ahern Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1429838133-14001-2-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/ui/browsers/hists.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) commit c8539e3fc630067020814657636b45095edfb5bb Author: Namhyung Kim Date: Fri Apr 24 10:15:32 2015 +0900 perf tools: Introduce pstack_peek() The pstack_peek() is to get the topmost entry without removing it. Signed-off-by: Namhyung Kim Acked-by: Jiri Olsa Cc: David Ahern Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1429838133-14001-1-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/pstack.c | 7 +++++++ tools/perf/util/pstack.h | 1 + 2 files changed, 8 insertions(+) commit ea7cd59233097984850adc0e4119644f089be734 Author: Namhyung Kim Date: Wed Apr 22 16:18:19 2015 +0900 perf hists browser: Split popup menu actions - part 2 Currently perf_evsel__hists_browse() function spins on a huge loop and handles many key actions. Since it's hard to read and modify, let's split it out into small helper functions. The add_XXX_opt() functions are to register popup menu item on the selected entry. When it adds an item, it also saves related data into struct popup_action and returns 1 so that it can increase the number of items (nr_options). With this change, we can simplify the code just to call selected callback function without considering various conditions. A callback function named do_XXX is called with saved data when the item is selected by user. No functional change intended. Signed-off-by: Namhyung Kim Acked-by: Jiri Olsa Cc: David Ahern Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1429687101-4360-9-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/ui/browsers/hists.c | 354 +++++++++++++++++++++++++---------------- 1 file changed, 214 insertions(+), 140 deletions(-) commit bc7cad429bcdda6f112525c17db9577a1be4c8aa Author: Namhyung Kim Date: Wed Apr 22 16:18:18 2015 +0900 perf hists browser: Split popup menu actions Currently perf_evsel__hists_browse() function spins on a huge loop and handles many key actions. Since it's hard to read and modify, let's split it out into small helper functions. This patch introduces do_XXX() functions which corresponds to each goto label. This way we can call such functions both from key press actions and popup menu actions. No functional change intended. Signed-off-by: Namhyung Kim Acked-by: Jiri Olsa Cc: David Ahern Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1429687101-4360-8-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/ui/browsers/hists.c | 242 ++++++++++++++++++++++++++--------------- 1 file changed, 156 insertions(+), 86 deletions(-) commit b1a9ceef724341ce05b125d39abf9cfc7059b949 Author: Namhyung Kim Date: Wed Apr 22 16:18:17 2015 +0900 perf hists browser: Save perf_session_env in the hist_browser The perf_session_env is to save system informantion at the recording time to be refered in the hist browser. So it'd be better to keep in the struct hist_browser. This is a preparation to later change. Signed-off-by: Namhyung Kim Acked-by: Jiri Olsa Cc: David Ahern Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1429687101-4360-7-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/ui/browsers/hists.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 01f00a1cd158ecd86d5f561ded271597d0550313 Author: Namhyung Kim Date: Wed Apr 22 16:18:16 2015 +0900 perf hists browser: Save pstack in the hist_browser The struct pstack is to save currently applied thread and/or dso filters in the browser. So it'd be better to keep in the struct hist_browser. This is a preparation to later change. Suggested-by: Arnaldo Carvalho de Melo Signed-off-by: Namhyung Kim Acked-by: Jiri Olsa Cc: David Ahern Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1429687101-4360-6-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/ui/browsers/hists.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit c2a51ab802d17c572cd0a940fd97538b75aa7889 Author: Namhyung Kim Date: Wed Apr 22 16:18:15 2015 +0900 perf hists browser: Save hist_browser_timer pointer in hist_browser The struct hist_browser_timer is to carry perf-top related info throughout the hist browser code. So it'd be better to keep in the struct hist_browser. This is a preparation to later change. Suggested-by: Arnaldo Carvalho de Melo Signed-off-by: Namhyung Kim Acked-by: Jiri Olsa Cc: David Ahern Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1429687101-4360-5-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/ui/browsers/hists.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) commit f2b487db45f2aa203892384f6a08f0a761edad5d Author: Namhyung Kim Date: Wed Apr 22 16:18:14 2015 +0900 perf hists browser: Fix possible memory leak The options array saves strings for each popup menu item. The number of items can be vary according to the currently selected item. So it can leak some memory if it's exited from a small item. Fix it by freeing all items when loop terminates. Signed-off-by: Namhyung Kim Acked-by: Jiri Olsa Cc: David Ahern Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1429687101-4360-4-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/ui/browsers/hists.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit d8a0f80042efc4ba08977f3d66fc4678037fe456 Author: Namhyung Kim Date: Wed Apr 22 16:18:13 2015 +0900 perf tools: Move init_have_children field to the unnamed union The init_have_children is used to init callchain info only for TUI. So it'd be better to move it to the TUI-specific unnamed union member. Signed-off-by: Namhyung Kim Acked-by: Jiri Olsa Cc: David Ahern Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1429687101-4360-3-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/sort.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 297508216556fbf4e3f70fb97d03280741b4a709 Author: Namhyung Kim Date: Wed Apr 22 16:18:12 2015 +0900 perf tools: Move TUI-specific fields into unnamed union Since perf diff only supports stdio output, TUI fields are only accessed from perf report (or perf top). So add a new unnamed union and move struct hist_entry_tui and those TUI-specific fields. Signed-off-by: Namhyung Kim Acked-by: Jiri Olsa Cc: David Ahern Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1429687101-4360-2-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/sort.h | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) commit a923e2c4b14f99f70692f82ee7bd63717604b738 Author: Namhyung Kim Date: Tue May 5 23:52:52 2015 +0900 perf kmem: Show warning when trying to run stat without record Sometimes one can mistakenly run 'perf kmem stat' without running 'perf kmem record' before or with a different configuration like recording --slab and stat --page. Show a warning message like the one below to inform the user: # perf kmem stat --page --caller No page allocation events found. Have you run 'perf kmem record --page'? Signed-off-by: Namhyung Kim Acked-by: Pekka Enberg Cc: David Ahern Cc: Jiri Olsa Cc: Joonsoo Kim Cc: Minchan Kim Cc: Peter Zijlstra Cc: linux-mm@kvack.org Link: http://lkml.kernel.org/r/1430837572-31395-1-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-kmem.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) commit b1019d5e6e605190d008003a382407f23e19f807 Author: Masami Hiramatsu Date: Wed May 6 00:22:57 2015 +0900 perf probe: Cleanup and consolidate command parsers To simplify the 'perf probe' command code, consolidate some similar functions and use command short-name for command classification, instead of separate booleans. Signed-off-by: Masami Hiramatsu Cc: David Ahern Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20150505152257.18790.41548.stgit@localhost.localdomain Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-probe.c | 110 +++++++++++++++++---------------------------- 1 file changed, 42 insertions(+), 68 deletions(-) commit 3da166b7b5253aaa6b36410f5d4c4a996ee5915d Author: Masami Hiramatsu Date: Tue May 5 11:29:52 2015 +0900 perf probe: Remove redundant cleanup of params.filter Since params.filter will be released in cleanup_params, we don't need to clear it in each command. Signed-off-by: Masami Hiramatsu Cc: David Ahern Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20150505022952.23399.58072.stgit@localhost.localdomain Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-probe.c | 6 ------ 1 file changed, 6 deletions(-) commit 9f7811d08dcf7b3e900cbc0d8384b713a86b034f Author: Masami Hiramatsu Date: Tue May 5 11:29:50 2015 +0900 perf probe: Accept filter argument for --funcs This allows the user to pass the filter pattern directly to the --funcs option as below: ---- # ./perf probe -F *kmalloc __kmalloc devm_kmalloc mempool_kmalloc sg_kmalloc sock_kmalloc ---- We previously needed to use the --filter option for that. Signed-off-by: Masami Hiramatsu Tested-by: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20150505022950.23399.22435.stgit@localhost.localdomain Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/perf-probe.txt | 3 ++- tools/perf/builtin-probe.c | 19 ++++++++++++++----- 2 files changed, 16 insertions(+), 6 deletions(-) commit 307a464b2342a502da492f0ada8cefd6ab7f63a7 Author: Masami Hiramatsu Date: Tue May 5 11:29:48 2015 +0900 perf probe: Allow to use filter on --del command This makes perf-probe --del option to accept filter rules not only simple glob pattern. This simplifies the code and improve the flexibility. E.g. if we remove 2 different pattern events, we need 2 -d options. ---- # ./perf probe -d vfs\* -d malloc Removed event: probe_libc:malloc Removed event: probe:vfs_read ---- This allows you to joint the 2 patterns with '|'. ---- # ./perf probe -d 'vfs*|malloc' Removed event: probe:vfs_read Removed event: probe_libc:malloc ---- Signed-off-by: Masami Hiramatsu Tested-by: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20150505022948.23399.4197.stgit@localhost.localdomain Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-probe.c | 16 +++---- tools/perf/util/probe-event.c | 102 +++++++++++++----------------------------- tools/perf/util/probe-event.h | 2 +- 3 files changed, 39 insertions(+), 81 deletions(-) commit 2dd6d8a10a942c5fd8950d1046e172237d009c8e Author: Adrian Hunter Date: Thu Apr 30 17:37:32 2015 +0300 perf record: Add AUX area tracing Snapshot Mode support Add a new option and support for Instruction Tracing Snapshot Mode. When the new option is selected, no AUX area tracing data is captured until a signal (SIGUSR2) is received. Signed-off-by: Adrian Hunter Acked-by: Jiri Olsa Cc: David Ahern Cc: Frederic Weisbecker Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1430404667-10593-10-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/perf-record.txt | 7 ++ tools/perf/builtin-record.c | 144 ++++++++++++++++++++++++++----- tools/perf/util/auxtrace.h | 11 +++ tools/perf/util/parse-options.h | 4 + 4 files changed, 145 insertions(+), 21 deletions(-) commit d20031bb63dd6dde35feb7845eaf17c620eef120 Author: Adrian Hunter Date: Thu Apr 30 17:37:31 2015 +0300 perf tools: Add AUX area tracing Snapshot Mode Add support for making snapshots of AUX area tracing data. Signed-off-by: Adrian Hunter Acked-by: Jiri Olsa Cc: David Ahern Cc: Frederic Weisbecker Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1430404667-10593-9-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/perf.h | 3 ++ tools/perf/util/auxtrace.c | 85 ++++++++++++++++++++++++++++++++++++++++------ tools/perf/util/auxtrace.h | 41 ++++++++++++++++++++++ 3 files changed, 119 insertions(+), 10 deletions(-) commit 0ad21f6869222fd7fd7c63f02febea082e801fc2 Author: Adrian Hunter Date: Thu Apr 30 17:37:30 2015 +0300 perf tools: Add support for PERF_RECORD_ITRACE_START Add support for the PERF_RECORD_ITRACE_START event type. This event can be used to determine the pid and tid that are running when Instruction Tracing starts. Generally that information would come from a sched_switch event but, at the start, no sched_switch events may yet have been recorded. Signed-off-by: Adrian Hunter Acked-by: Jiri Olsa Cc: David Ahern Cc: Frederic Weisbecker Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1430404667-10593-8-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-inject.c | 1 + tools/perf/util/event.c | 18 ++++++++++++++++++ tools/perf/util/event.h | 11 +++++++++++ tools/perf/util/machine.c | 11 +++++++++++ tools/perf/util/machine.h | 2 ++ tools/perf/util/session.c | 15 +++++++++++++++ tools/perf/util/tool.h | 1 + 7 files changed, 59 insertions(+) commit 4a96f7a02eb52b1b618ab610e689bd82770f00b0 Author: Adrian Hunter Date: Thu Apr 30 17:37:29 2015 +0300 perf tools: Add support for PERF_RECORD_AUX Add support for the PERF_RECORD_AUX event type. PERF_RECORD_AUX is a new kernel event that records when new data lands in the AUX buffer. Currently it is assumed that AUX data follows the same ring buffer conventions used by the perf events buffer, and consequently the AUX event is not processed during recording. It is processed during session processing so that the information in the 'flags' member is made available. The format of PERF_RECORD_AUX is outlined in the linux/perf_events.h header file. The 'flags' are also enumerated. Intel PT and Intel BTS use the flag named PERF_AUX_FLAG_TRUNCATED to determine if data has been lost because the buffer became full as perf was not able to empty it fast enough. Signed-off-by: Adrian Hunter Acked-by: Jiri Olsa Cc: David Ahern Cc: Frederic Weisbecker Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1430404667-10593-7-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-inject.c | 1 + tools/perf/util/event.c | 21 +++++++++++++++++++++ tools/perf/util/event.h | 13 +++++++++++++ tools/perf/util/machine.c | 10 ++++++++++ tools/perf/util/machine.h | 2 ++ tools/perf/util/session.c | 15 +++++++++++++++ tools/perf/util/tool.h | 1 + 7 files changed, 63 insertions(+) commit 53c76b0e9ed5ed1f00371160f0be60402acba165 Author: Adrian Hunter Date: Thu Apr 30 17:37:28 2015 +0300 perf auxtrace: Add option to synthesize events for transactions Add AUX area tracing option 'x' to synthesize events for transactions. This will be used by Intel PT to synthesize an event record for each TSX start, commit or abort. Signed-off-by: Adrian Hunter Acked-by: Jiri Olsa Cc: David Ahern Cc: Frederic Weisbecker Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1430404667-10593-6-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/perf-inject.txt | 9 +++++---- tools/perf/Documentation/perf-report.txt | 9 +++++---- tools/perf/Documentation/perf-script.txt | 9 +++++---- tools/perf/util/auxtrace.c | 5 ++++- tools/perf/util/auxtrace.h | 2 ++ 5 files changed, 21 insertions(+), 13 deletions(-) commit e31f0d017ea19fce9f12f084e1c750a0e3b43680 Author: Adrian Hunter Date: Thu Apr 30 17:37:27 2015 +0300 perf tools: Add build option NO_AUXTRACE to exclude AUX area tracing Add build option NO_AUXTRACE to exclude compiling support for AUX area tracing. Support for both recording and processing is excluded and by implication any future additions such as Intel PT and Intel BTS will also not be compiled in with this option. Signed-off-by: Adrian Hunter Acked-by: Jiri Olsa Cc: David Ahern Cc: Frederic Weisbecker Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1430404667-10593-5-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Makefile.perf | 2 + tools/perf/builtin-inject.c | 53 +++++++++++------- tools/perf/builtin-record.c | 13 +++++ tools/perf/config/Makefile | 5 ++ tools/perf/tests/make | 4 +- tools/perf/util/Build | 2 +- tools/perf/util/auxtrace.h | 128 ++++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 186 insertions(+), 21 deletions(-) commit bbf55ae19f55cc0ec0d75cfcfa3553331177b518 Author: Lorenzo Pieralisi Date: Fri May 1 11:27:01 2015 +0100 ACPI / proc: make ACPI_PROCFS_POWER X86 only The ACPI procfs power interface is initialized by compilation units that are only selectable on X86 platforms. Since its usage is deprecated and it cannot even be used on platforms other than X86 it should be compiled in only on X86 platforms. This patch makes CONFIG_ACPI_PROCFS_POWER dependent on X86, so that other architectures are prevented from compiling it in for no purpose. Signed-off-by: Lorenzo Pieralisi Acked-by: Hanjun Guo Signed-off-by: Rafael J. Wysocki drivers/acpi/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fac69a2bc8278e209cd6e2ef3585f751cc034b00 Author: Fabian Frederick Date: Sat May 2 17:14:50 2015 +0200 PNP / ACPI: use unsigned int in pnpacpi_encode_resources() use unsigned int for port, irq, dma and mem used for pnp_get_resource() This fixes gcc warnings of type "conversion to unsigned int from int may change the sign of the result" Signed-off-by: Fabian Frederick Signed-off-by: Rafael J. Wysocki drivers/pnp/pnpacpi/rsparser.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bbee06d067ba37be3ca3554a401aea49df715c16 Author: Fabian Frederick Date: Sat May 2 17:14:49 2015 +0200 PNP / ACPI: use u8 instead of int in acpi_resource_extended_irq context acpi_resource_extented_irq variables are all u8. Use that type for triggering, polarity and shareable. This fixes gcc warnings of type "conversion to u8 from int may alter its value" Signed-off-by: Fabian Frederick Signed-off-by: Rafael J. Wysocki drivers/pnp/pnpacpi/rsparser.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit cd8ae85299d54155702a56811b2e035e63064d3d Author: Eric Dumazet Date: Sun May 3 21:34:46 2015 -0700 tcp: provide SYN headers for passive connections This patch allows a server application to get the TCP SYN headers for its passive connections. This is useful if the server is doing fingerprinting of clients based on SYN packet contents. Two socket options are added: TCP_SAVE_SYN and TCP_SAVED_SYN. The first is used on a socket to enable saving the SYN headers for child connections. This can be set before or after the listen() call. The latter is used to retrieve the SYN headers for passive connections, if the parent listener has enabled TCP_SAVE_SYN. TCP_SAVED_SYN is read once, it frees the saved SYN headers. The data returned in TCP_SAVED_SYN are network (IPv4/IPv6) and TCP headers. Original patch was written by Tom Herbert, I changed it to not hold a full skb (and associated dst and conntracking reference). We have used such patch for about 3 years at Google. Signed-off-by: Eric Dumazet Acked-by: Neal Cardwell Tested-by: Neal Cardwell Signed-off-by: David S. Miller include/linux/tcp.h | 8 ++++++++ include/net/request_sock.h | 4 +++- include/uapi/linux/tcp.h | 2 ++ net/ipv4/tcp.c | 35 +++++++++++++++++++++++++++++++++++ net/ipv4/tcp_input.c | 18 ++++++++++++++++++ net/ipv4/tcp_ipv4.c | 1 + net/ipv4/tcp_minisocks.c | 3 +++ 7 files changed, 70 insertions(+), 1 deletion(-) commit 4d4e41aef9429872ea3b105e83426941f7185ab6 Author: Ming Lei Date: Tue May 5 19:49:55 2015 +0800 block: loop: avoiding too many pending per work I/O If there are too many pending per work I/O, too many high priority work thread can be generated so that system performance can be effected. This patch limits the max_active parameter of workqueue as 16. This patch fixes Fedora 22 live booting performance regression when it is booted from squashfs over dm based on loop, and looks the following reasons are related with the problem: - not like other filesyststems(such as ext4), squashfs is a bit special, and I observed that increasing I/O jobs to access file in squashfs only improve I/O performance a little, but it can make big difference for ext4 - nested loop: both squashfs.img and ext3fs.img are mounted as loop block, and ext3fs.img is inside the squashfs - during booting, lots of tasks may run concurrently Fixes: b5dd2f6047ca108001328aac0e8588edd15f1778 Cc: stable@vger.kernel.org (v4.0) Cc: Justin M. Forbes Signed-off-by: Ming Lei Acked-by: Tejun Heo Signed-off-by: Jens Axboe drivers/block/loop.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f4aa4c7bbac6c4afdd4adccf90898c1a3685396d Author: Ming Lei Date: Tue May 5 19:49:54 2015 +0800 block: loop: convert to per-device workqueue Documentation/workqueue.txt: If there is dependency among multiple work items used during memory reclaim, they should be queued to separate wq each with WQ_MEM_RECLAIM. Loop devices can be stacked, so we have to convert to per-device workqueue. One example is Fedora live CD. Fixes: b5dd2f6047ca108001328aac0e8588edd15f1778 Cc: stable@vger.kernel.org (v4.0) Cc: Justin M. Forbes Signed-off-by: Ming Lei Acked-by: Tejun Heo Signed-off-by: Jens Axboe drivers/block/loop.c | 30 ++++++++++++++---------------- drivers/block/loop.h | 1 + 2 files changed, 15 insertions(+), 16 deletions(-) commit 9dc6c806b3c4812619e305685b3c86835bf784ab Author: Christoph Hellwig Date: Fri Apr 17 22:37:21 2015 +0200 nbd: stop using req->cmd Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe drivers/block/nbd.c | 48 +++++++++++++++++++++++------------------------- include/uapi/linux/nbd.h | 2 -- 2 files changed, 23 insertions(+), 27 deletions(-) commit a7928c1578c550bd6f4dec62d65132e6db226c57 Author: Christoph Hellwig Date: Fri Apr 17 22:37:20 2015 +0200 block: move PM request support to IDE This removes the request types and hacks from the block code and into the old IDE driver. There is a small amunt of code duplication due to this, but it's not too bad. Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe block/blk-core.c | 1 + block/blk-exec.c | 10 --------- block/blk.h | 2 -- drivers/ide/ide-eh.c | 2 +- drivers/ide/ide-io.c | 8 +++---- drivers/ide/ide-pm.c | 56 +++++++++++++++++++++++++++++++++++----------- drivers/ide/ide-taskfile.c | 2 +- include/linux/blkdev.h | 21 +---------------- include/linux/ide.h | 19 ++++++++++++++++ 9 files changed, 70 insertions(+), 51 deletions(-) commit ac7cdff00a33d48d27217560fa3b16d802e5f535 Author: Christoph Hellwig Date: Fri Apr 17 22:37:19 2015 +0200 block: remove REQ_TYPE_PM_SHUTDOWN Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe include/linux/blkdev.h | 1 - 1 file changed, 1 deletion(-) commit b0b93b48a30e809240ddd7449a6ad60a5ddf7b4d Author: Christoph Hellwig Date: Fri Apr 17 22:37:18 2015 +0200 block: move REQ_TYPE_SENSE to the ide driver Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe drivers/ide/ide-atapi.c | 6 +++--- drivers/ide/ide-cd.c | 8 ++++---- drivers/ide/ide-floppy.c | 2 +- drivers/ide/ide-tape.c | 2 +- include/linux/blkdev.h | 1 - include/linux/ide.h | 1 + 6 files changed, 10 insertions(+), 10 deletions(-) commit b42171ef7d938a66fa52e66a3d911ed63770b5ca Author: Christoph Hellwig Date: Fri Apr 17 22:37:17 2015 +0200 block: move REQ_TYPE_ATA_TASKFILE and REQ_TYPE_ATA_PC to ide.h These values are only used by the IDE driver, so move them into it by allowing drivers to take cmd_type values after the first private one. Note that we have to turn cmd_type into a plain unsigned integer so that gcc doesn't complain about mismatching enum types. Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe include/linux/blkdev.h | 11 ++--------- include/linux/ide.h | 7 +++++++ 2 files changed, 9 insertions(+), 9 deletions(-) commit 4f8c9510ba71bb54477841bebb90154ef140860f Author: Christoph Hellwig Date: Fri Apr 17 22:37:16 2015 +0200 block: rename REQ_TYPE_SPECIAL to REQ_TYPE_DRV_PRIV Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe drivers/block/nbd.c | 2 +- drivers/block/paride/pd.c | 4 ++-- drivers/block/sx8.c | 4 ++-- drivers/block/virtio_blk.c | 6 +++--- drivers/ide/ide-atapi.c | 4 ++-- drivers/ide/ide-cd.c | 2 +- drivers/ide/ide-cd_ioctl.c | 2 +- drivers/ide/ide-devsets.c | 2 +- drivers/ide/ide-eh.c | 2 +- drivers/ide/ide-floppy.c | 6 +++--- drivers/ide/ide-io.c | 4 ++-- drivers/ide/ide-ioctls.c | 2 +- drivers/ide/ide-park.c | 4 ++-- drivers/ide/ide-tape.c | 4 ++-- include/linux/blkdev.h | 4 ++-- 15 files changed, 26 insertions(+), 26 deletions(-) commit 84be456f883c4685680fba8e5154b5f72e92957e Author: Christoph Hellwig Date: Fri May 1 12:46:15 2015 +0200 remove We don't have any arch specific scatterlist now that parisc switched over to the generic one. Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe arch/alpha/include/asm/pci.h | 2 +- arch/arm/include/asm/dma.h | 2 +- arch/arm/mach-footbridge/dma.c | 2 +- arch/blackfin/include/asm/pci.h | 2 +- arch/cris/include/asm/dma-mapping.h | 2 +- arch/cris/include/asm/pci.h | 2 +- arch/frv/include/asm/dma-mapping.h | 2 +- arch/frv/include/asm/pci.h | 2 +- arch/ia64/include/asm/pci.h | 2 +- arch/microblaze/include/asm/pci.h | 2 +- arch/mips/include/asm/dma-mapping.h | 2 +- arch/mips/include/asm/pci.h | 2 +- arch/mn10300/include/asm/pci.h | 2 +- arch/parisc/include/asm/dma-mapping.h | 2 +- arch/parisc/include/asm/pci.h | 2 +- arch/powerpc/include/asm/pci.h | 2 +- arch/powerpc/include/asm/vio.h | 2 +- arch/sparc/kernel/iommu_common.h | 2 +- arch/x86/include/asm/pci.h | 2 +- arch/xtensa/include/asm/pci.h | 2 +- drivers/mmc/host/android-goldfish.c | 2 +- include/asm-generic/scatterlist.h | 34 ------------------------------ include/linux/blkdev.h | 3 +-- include/linux/dmapool.h | 2 +- include/linux/scatterlist.h | 39 ++++++++++++++++++++++++++++------- lib/swiotlb.c | 2 +- 26 files changed, 56 insertions(+), 66 deletions(-) commit dac56212e8127dbc0bff7be35c508bc280213309 Author: Jens Axboe Date: Fri Apr 17 16:23:59 2015 -0600 bio: skip atomic inc/dec of ->bi_cnt for most use cases Struct bio has a reference count that controls when it can be freed. Most uses cases is allocating the bio, which then returns with a single reference to it, doing IO, and then dropping that single reference. We can remove this atomic_dec_and_test() in the completion path, if nobody else is holding a reference to the bio. If someone does call bio_get() on the bio, then we flag the bio as now having valid count and that we must properly honor the reference count when it's being put. Tested-by: Robert Elliott Signed-off-by: Jens Axboe block/bio.c | 18 +++++++++++------- drivers/md/bcache/request.c | 2 +- fs/btrfs/volumes.c | 2 +- fs/xfs/xfs_aops.c | 1 - include/linux/bio.h | 16 +++++++++++++++- include/linux/blk_types.h | 3 ++- 6 files changed, 30 insertions(+), 12 deletions(-) commit c4cf5261f8bffd9de132b50660a69148e7575bd6 Author: Jens Axboe Date: Fri Apr 17 16:15:18 2015 -0600 bio: skip atomic inc/dec of ->bi_remaining for non-chains Struct bio has an atomic ref count for chained bio's, and we use this to know when to end IO on the bio. However, most bio's are not chained, so we don't need to always introduce this atomic operation as part of ending IO. Add a helper to elevate the bi_remaining count, and flag the bio as now actually needing the decrement at end_io time. Rename the field to __bi_remaining to catch any current users of this doing the incrementing manually. For high IOPS workloads, this reduces the overhead of bio_endio() substantially. Tested-by: Robert Elliott Acked-by: Kent Overstreet Reviewed-by: Jan Kara Signed-off-by: Jens Axboe block/bio.c | 38 +++++++++++++++++++++++++++++--------- drivers/md/dm-cache-target.c | 2 +- drivers/md/dm-raid1.c | 2 +- drivers/md/dm-snap.c | 2 +- drivers/md/dm-thin.c | 4 ++-- include/linux/bio.h | 11 +++++++++++ include/linux/blk_types.h | 3 ++- 7 files changed, 47 insertions(+), 15 deletions(-) commit f1dc154f82595386cddcc7b980d8760474c3dd2d Author: Denys Vlasenko Date: Mon Apr 13 13:54:33 2015 +0200 x86: Deinline dma_free_attrs() Reduces kernel size by 76720 bytes on allyesconfig build: text data bss dec hex filename 82594029 22255352 20627456 125476837 77a9fe5 vmlinux1 82517277 22255384 20627456 125400117 7797435 vmlinux2 Signed-off-by: Denys Vlasenko Cc: Marek Szyprowski Cc: Konrad Rzeszutek Wilk Cc: David Woodhouse Cc: Don Dutile Cc: Andi Kleen Cc: x86@kernel.org Link: http://lkml.kernel.org/r/1428926075-28796-3-git-send-email-dvlasenk@redhat.com Signed-off-by: Thomas Gleixner arch/x86/include/asm/dma-mapping.h | 18 +++--------------- arch/x86/kernel/pci-dma.c | 17 +++++++++++++++++ 2 files changed, 20 insertions(+), 15 deletions(-) commit 0c7965ff22472f60d5cf07308cb59f3a118feb8a Author: Denys Vlasenko Date: Mon Apr 13 13:54:32 2015 +0200 x86: Deinline dma_alloc_attrs() Reduces kernel size by 68739 bytes on allyesconfig build: text data bss dec hex filename 82662736 22255384 20627456 125545576 77bac68 vmlinux0 82594029 22255352 20627456 125476837 77a9fe5 vmlinux1 Signed-off-by: Denys Vlasenko Cc: Marek Szyprowski Cc: Konrad Rzeszutek Wilk Cc: David Woodhouse Cc: Don Dutile Cc: Andi Kleen Cc: x86@kernel.org Link: http://lkml.kernel.org/r/1428926075-28796-2-git-send-email-dvlasenk@redhat.com Signed-off-by: Thomas Gleixner arch/x86/include/asm/dma-mapping.h | 28 ++-------------------------- arch/x86/kernel/pci-dma.c | 28 ++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 26 deletions(-) commit c07e5a542e41b87583a8bc0e2849d14bbe919be0 Author: Brian Gerst Date: Sun Apr 12 09:14:46 2015 -0400 x86: Remove unused TI_cpu Signed-off-by: Brian Gerst Cc: Denys Vlasenko Acked-by: Andy Lutomirski Link: http://lkml.kernel.org/r/1428844486-6638-2-git-send-email-brgerst@gmail.com Signed-off-by: Thomas Gleixner arch/x86/kernel/asm-offsets_32.c | 3 --- 1 file changed, 3 deletions(-) commit fd91784beb91239a697f855b6cda5035c1c5d6a7 Author: Brian Gerst Date: Sun Apr 12 09:14:45 2015 -0400 x86: Merge common 32-bit values in asm-offsets.c Merge common values for 32-bit native and compat. Signed-off-by: Brian Gerst Cc: Denys Vlasenko Acked-by: Andy Lutomirski Link: http://lkml.kernel.org/r/1428844486-6638-1-git-send-email-brgerst@gmail.com Signed-off-by: Thomas Gleixner arch/x86/kernel/asm-offsets.c | 19 +++++++++++++++++++ arch/x86/kernel/asm-offsets_32.c | 15 --------------- arch/x86/kernel/asm-offsets_64.c | 21 --------------------- 3 files changed, 19 insertions(+), 36 deletions(-) commit 1272574bf94874a644ea82fad321034c15b157ac Author: Fabian Frederick Date: Tue May 5 13:29:54 2015 -0500 gfs2: kerneldoc warning fixes Fixes the following kernel-doc warnings: Warning(fs/gfs2/aops.c:180): No description found for parameter 'wbc' Warning(fs/gfs2/aops.c:236): No description found for parameter 'end' Warning(fs/gfs2/aops.c:236): No description found for parameter 'done_index' Warning(fs/gfs2/aops.c:236): Excess function parameter 'writepage' description in 'gfs2_write_jdata_pagevec' Warning(fs/gfs2/aops.c:346): Excess function parameter 'writepage' description in 'gfs2_write_cache_jdata' Warning(fs/gfs2/aops.c:346): Excess function parameter 'data' description in 'gfs2_write_cache_jdata' Warning(fs/gfs2/aops.c:605): No description found for parameter 'file' Warning(fs/gfs2/aops.c:605): No description found for parameter 'mapping' Warning(fs/gfs2/aops.c:605): No description found for parameter 'pages' Warning(fs/gfs2/aops.c:605): No description found for parameter 'nr_pages' Warning(fs/gfs2/aops.c:870): No description found for parameter 'copied' Signed-off-by: Fabian Frederick Signed-off-by: Bob Peterson fs/gfs2/aops.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit e50ead480fac63ede9e0b656cd29c1820f7af9de Author: Fabian Frederick Date: Tue May 5 13:23:22 2015 -0500 gfs2: convert simple_str to kstr -Remove obsolete simple_str functions. -Return error code when kstr failed. -This patch also calls functions corresponding to destination type. Thanks to Alexey Dobriyan for suggesting improvements in block_store() and wdack_store() Signed-off-by: Fabian Frederick Signed-off-by: Bob Peterson fs/gfs2/sys.c | 66 +++++++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 48 insertions(+), 18 deletions(-) commit 01e64ee40ad741037352d1d6202eaa432f833eb4 Author: Benjamin Marzinski Date: Tue May 5 12:25:48 2015 -0500 GFS2: make sure S_NOSEC flag isn't overwritten At the end of gfs2_set_inode_flags inode->i_flags is set to flags, so we should be modifying flags instead of inode->i_flags, so it isn't overwritten. Signed-off-by: Benjamin Marzinski Signed-off-by: Bob Peterson fs/gfs2/file.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a63b7bbc2175901d79fa36ba734499655c077f0d Author: Benjamin Marzinski Date: Tue May 5 12:12:19 2015 -0500 GFS2: add support for rename2 and RENAME_EXCHANGE gfs2 now uses the rename2 directory iop, and supports the RENAME_EXCHANGE flag (as well as RENAME_NOREPLACE, which the vfs takes care of). Signed-off-by: Benjamin Marzinski Signed-off-by: Bob Peterson fs/gfs2/inode.c | 205 +++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 189 insertions(+), 16 deletions(-) commit b119fe080a83d32d78f56877fe3a95a155417130 Author: Jean Delvare Date: Thu Apr 30 15:23:05 2015 +0200 efi: dmi: List SMBIOS3 table before SMBIOS table The SMBIOS3 table should appear before the SMBIOS table in /sys/firmware/efi/systab. This allows user-space utilities which support both to pick the SMBIOS3 table with a single pass on systems where both are implemented. The SMBIOS3 entry point is more capable than the SMBIOS entry point so it should be preferred. This follows the same logic as the ACPI20 table being listed before the ACPI table. Signed-off-by: Jean Delvare Acked-by: Ard Biesheuvel Cc: Leif Lindholm Signed-off-by: Matt Fleming drivers/firmware/efi/efi.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit 959b6717175713259664950f3bba2418b038f69a Author: Abhi Das Date: Tue May 5 11:26:04 2015 -0500 gfs2: handle NULL rgd in set_rgrp_preferences The function set_rgrp_preferences() does not handle the (rarely returned) NULL value from gfs2_rgrpd_get_next() and this patch fixes that. The fs image in question is only 150MB in size which allows for only 1 rgrp to be created. The in-memory rb tree has only 1 node and when gfs2_rgrpd_get_next() is called on this sole rgrp, it returns NULL. (Default behavior is to wrap around the rb tree and return the first node to give the illusion of a circular linked list. In the case of only 1 rgrp, we can't have gfs2_rgrpd_get_next() return the same rgrp (first, last, next all point to the same rgrp)... that would cause unintended consequences and infinite loops.) Signed-off-by: Abhi Das Signed-off-by: Bob Peterson fs/gfs2/rgrp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c61f819a45f6f71a295502e4c37d09173e74c380 Author: Joachim Eastwood Date: Sat May 2 23:11:35 2015 +0200 gpio: add DT bindings for lpc1850-gpio driver Signed-off-by: Joachim Eastwood Signed-off-by: Linus Walleij .../devicetree/bindings/gpio/nxp,lpc1850-gpio.txt | 39 ++++++++++++++++++++++ 1 file changed, 39 insertions(+) commit d4dd920cc2f6a948f07544caaa22bccb63378a3a Author: Tomasz Figa Date: Mon Apr 20 20:43:44 2015 +0900 iommu/rockchip: Make sure that page table state is coherent To flush created mappings, current mapping code relies on the fact that during unmap the driver zaps every IOVA being unmapped and that it is enough to zap a single IOVA of page table to remove the entire page table from IOMMU cache. Based on these assumptions the driver was made to simply zap the first IOVA of the mapping being created. This is enough to invalidate first page table, which could be shared with another mapping (and thus could be already present in IOMMU cache), but unfortunately it does not do anything about the last page table that could be shared with other mappings as well. Moreover, the flushing is performed before page table contents are actually modified, so there is a race between the CPU updating the page tables and hardware that could be possibly running at the same time and triggering IOMMU look-ups, which could bring back the page tables back to the cache. To fix both issues, this patch makes the mapping code zap first and last (if they are different) IOVAs of new mapping after the page table is updated. Signed-off-by: Tomasz Figa Reviewed-by: Daniel Kurtz Tested-by: Heiko Stuebner Signed-off-by: Joerg Roedel drivers/iommu/rockchip-iommu.c | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) commit 13a43fd9e90552c8258981d0a0eb82d73406c24d Author: Joachim Eastwood Date: Sat May 2 23:11:34 2015 +0200 gpio: add lpc18xx gpio driver Driver for the GPIO block found on NXP LPC18xx/43xx devices. Signed-off-by: Joachim Eastwood Signed-off-by: Linus Walleij drivers/gpio/Kconfig | 8 ++ drivers/gpio/Makefile | 1 + drivers/gpio/gpio-lpc18xx.c | 180 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 189 insertions(+) commit 733cac2ade2fbb73740a1d22c05c7b006a6cf3d2 Author: Robert Callicotte Date: Thu Apr 16 23:32:47 2015 -0500 iommu: Fix checkpatch warnings for Missing a blank line after declarations Fixed checkpatch warnings for missing blank line after declaration of struct. Signed-off-by: Robert Callicotte Signed-off-by: Joerg Roedel drivers/iommu/iova.c | 4 ++++ 1 file changed, 4 insertions(+) commit 5ac382c311fc12ccfb74832afe545ce8c38cc459 Author: Maxime Ripard Date: Sat May 2 17:03:22 2015 +0200 clk: sunxi: Fix of_io_request_and_map error check of_io_request_and map returns an error pointer, but the current code assumes that on error the returned pointer will be NULL. Obviously, that makes the check completely useless. Change the test to actually check for the proper error code. Signed-off-by: Maxime Ripard Cc: Mike Turquette Cc: Stephen Boyd Cc: linux-clk@vger.kernel.org drivers/clk/sunxi/clk-sun9i-core.c | 10 +++++----- drivers/clk/sunxi/clk-sunxi.c | 2 ++ 2 files changed, 7 insertions(+), 5 deletions(-) commit 6888c6f279a742a3190e186f44de70951b3491fd Author: Chris Bainbridge Date: Tue May 5 12:49:00 2015 +0100 workqueue: fix trivial typo in Documentation/workqueue.txt Signed-off-by: Chris Bainbridge Signed-off-by: Tejun Heo Documentation/workqueue.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5c53b262c861dc99aefb215eec579ae438d64fdd Author: Rafael J. Wysocki Date: Tue May 5 15:43:07 2015 +0200 ACPI / property: Refine consistency check for PRP0001 Refine the check for the presence of the "compatible" property if the PRP0001 device ID is present in the device's list of ACPI/PNP IDs to also print the message if _DSD is missing entirely or the format of it is incorrect. One special case to take into accout is that the "compatible" property need not be provided for devices having the PRP0001 device ID in their lists of ACPI/PNP IDs if they are ancestors of PRP0001 devices with the "compatible" property present. This is to cover heriarchies of device objects where the kernel is only supposed to use a struct device representation for the topmost one and the others represent, for example, functional blocks of a composite device. While at it, reduce the log level of the message to "info" and reduce the log level of the "broken _DSD" message to "debug" (noise reduction). Signed-off-by: Rafael J. Wysocki Reviewed-by: Mika Westerberg drivers/acpi/property.c | 54 ++++++++++++++++++++++++++++--------------------- include/acpi/acpi_bus.h | 3 ++- 2 files changed, 33 insertions(+), 24 deletions(-) commit 38d23a6cc16c02f7b0c920266053f340b5601735 Author: Andreas Sandberg Date: Fri Apr 24 13:06:05 2015 +0000 tick: hrtimer-broadcast: Prevent endless restarting when broadcast device is unused The hrtimer callback in the hrtimer's tick broadcast code sometimes incorrectly ends up scheduling events at the current tick causing the kernel to hang servicing the same hrtimer forever. This typically happens when a device is swapped out by tick_install_broadcast_device(), which replaces the event handler with clock_events_handle_noop() and sets the device mode to CLOCK_EVT_MODE_UNUSED. If the timer is scheduled when this happens, the next_event field will not be updated and the hrtimer ends up being restarted at the current tick. To prevent this from happening, only try to restart the hrtimer if the broadcast clock event device is in one of the active modes and try to cancel the timer when entering the CLOCK_EVT_MODE_UNUSED mode. Signed-off-by: Andreas Sandberg Tested-by: Catalin Marinas Acked-by: Mark Rutland Reviewed-by: Preeti U Murthy Link: http://lkml.kernel.org/r/1429880765-5558-1-git-send-email-andreas.sandberg@arm.com Signed-off-by: Thomas Gleixner kernel/time/tick-broadcast-hrtimer.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit 5d3abf8ff67f49271a42c0f7fa4f20f9e046bf0e Author: Martin K. Petersen Date: Mon May 4 21:54:21 2015 -0400 libata: Fall back to unqueued READ LOG EXT if the DMA variant fails Some devices advertise support for the READ/WRITE LOG DMA EXT commands but fail when we try to issue them. This can lead to queued TRIM being unintentionally disabled since the relevant feature flag is located in a general purpose log page. Fall back to unqueued READ LOG EXT if the DMA variant fails while reading a log page. Signed-off-by: Martin K. Petersen Reviewed-by: Hannes Reinecke Signed-off-by: Tejun Heo drivers/ata/libata-eh.c | 12 +++++++++++- include/linux/libata.h | 1 + 2 files changed, 12 insertions(+), 1 deletion(-) commit 406c057c4e00744453d5b0731eb23629ec14dcdf Author: Martin K. Petersen Date: Mon May 4 21:54:20 2015 -0400 libata: READ LOG DMA EXT support can be in either page 119 or 120 Support for the READ/WRITE LOG DMA EXT commands can be signaled either in page 119 or page 120. We should check both pages. Signed-off-by: Martin K. Petersen Reviewed-by: Hannes Reinecke Signed-off-by: Tejun Heo include/linux/ata.h | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit f303074160d3401970ccae082014e1ee5a9a52c5 Author: Martin K. Petersen Date: Mon May 4 21:54:19 2015 -0400 libata: Expose TRIM capability in sysfs Create a sysfs "trim" attribute for each ata_device that displays whether DSM TRIM is "unsupported", "unqueued", "forced_unqueued" (blacklisted) or "queued". Signed-off-by: Martin K. Petersen Reviewed-by: Hannes Reinecke Signed-off-by: Tejun Heo Documentation/ABI/testing/sysfs-ata | 11 +++++++++++ drivers/ata/libata-transport.c | 22 ++++++++++++++++++++++ 2 files changed, 33 insertions(+) commit d7b16e4f6283c6ec52b411aa6deb02ca4d030d20 Author: Martin K. Petersen Date: Mon May 4 21:54:18 2015 -0400 libata: Allow NCQ TRIM to be enabled or disabled with a module parameter We have started seeing SSD firmware updates introduce support for queued TRIM. Sadly, in most cases this support is completely untested and can lead to either errors or data corruption. Add two libata force flags that can be used to either enable or disable queued TRIM support. Signed-off-by: Martin K. Petersen Reviewed-by: Hannes Reinecke Signed-off-by: Tejun Heo Documentation/kernel-parameters.txt | 2 ++ drivers/ata/libata-core.c | 2 ++ 2 files changed, 4 insertions(+) commit f603f1f342547b597450b9d1e1e00b3e07c6e41b Author: Johannes Berg Date: Tue May 5 15:25:33 2015 +0200 mac80211: remove useless skb->encapsulation check No current (and planned, as far as I know) wifi devices support encapsulation checksum offload, so remove the useless test here. Signed-off-by: Johannes Berg net/mac80211/tx.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit 3b90f4072730c619809a0cbf597bf1b3bf76a2ec Author: Thierry Reding Date: Tue May 5 14:45:57 2015 +0200 ALSA: hda/tegra - Fix oops Commit a41d122449be ("ALSA: hda - Embed bus into controller object") introduced a regression in the Tegra HDA driver that causes the following oops during boot: [ 2.333458] Unable to handle kernel NULL pointer dereference at virtual address 000004c4 [ 2.341537] pgd = c0004000 [ 2.344312] [000004c4] *pgd=00000000 [ 2.347898] Internal error: Oops: 5 [#1] PREEMPT SMP ARM [ 2.353200] Modules linked in: [ 2.356264] CPU: 0 PID: 1 Comm: swapper/0 Tainted: G W 4.1.0-rc2-next-20150505-00344-g8577890defbf #79 [ 2.366682] Hardware name: NVIDIA Tegra SoC (Flattened Device Tree) [ 2.372939] task: ee0d8b40 ti: ee0da000 task.ti: ee0da000 [ 2.378336] PC is at azx_bus_init+0x18/0xf4 [ 2.382516] LR is at hda_tegra_probe+0x6c/0x478 [ 2.387043] pc : [] lr : [] psr: 60000113 [ 2.387043] sp : ee0dbe38 ip : 00000000 fp : 00000000 [ 2.398501] r10: ed874c00 r9 : 000000fd r8 : 00000000 [ 2.403717] r7 : ed874c10 r6 : 00000000 r5 : 00000000 r4 : ed016810 [ 2.410232] r3 : c08a2ad4 r2 : c08a1ea0 r1 : 00000000 r0 : ed016810 [ 2.416750] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel [ 2.424046] Control: 10c5387d Table: 8000406a DAC: 00000015 [ 2.429783] Process swapper/0 (pid: 1, stack limit = 0xee0da210) [ 2.435778] Stack: (0xee0dbe38 to 0xee0dc000) [ 2.440129] be20: 00000000 ed016810 [ 2.448297] be40: 00000000 c061cf00 00000000 ee0dbe5c ed8735d0 c0a7bc48 ed02fd50 ed016000 [ 2.456462] be60: c1250164 ed874c10 c0c66bf8 fffffdfb 00000000 000000fd c0b8dc98 c046664c [ 2.464628] be80: c0466608 c1250164 ed874c10 00000000 c0c66bf8 c0464eb4 ed874c10 c0c66bf8 [ 2.472793] bea0: ed874c44 c0c43458 00000000 c04650d0 00000000 c0c66bf8 c046503c c04633b4 [ 2.480959] bec0: ee11bea4 ed85f390 c0c66bf8 ed017ac0 00000000 c0464634 c0ab2b7c c0c66bf8 [ 2.489125] bee0: c0bfde20 c0c66bf8 c0bfde20 ed01ce40 c0b7b414 c04656e8 c04665b0 c0bfde20 [ 2.497291] bf00: c0bfde20 c0009770 ee0d8b40 c0c02488 60000113 00000000 00000000 00000003 [ 2.505458] bf20: 00000000 c0c02488 60000113 00000000 c0b54598 c0b16a90 ef7fcc57 c0041228 [ 2.513624] bf40: c0a9150c ef7fcc5f 00000006 00000006 00000000 c0bf1fa8 c0bf2354 00000006 [ 2.521790] bf60: c0b8dc90 c0c7c000 c0c7c000 c0b8dc98 00000000 c0b54dd8 00000006 00000006 [ 2.529956] bf80: c0b54598 00000000 00000000 c07ff08c 00000000 00000000 00000000 00000000 [ 2.538122] bfa0: 00000000 c07ff094 00000000 c000f5a0 00000000 00000000 00000000 00000000 [ 2.546286] bfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 [ 2.554451] bfe0: 00000000 00000000 00000000 00000000 00000013 00000000 fffff7ff c013f264 [ 2.562624] [] (azx_bus_init) from [] (hda_tegra_probe+0x6c/0x478) [ 2.570535] [] (hda_tegra_probe) from [] (platform_drv_probe+0x44/0xa4) [ 2.578879] [] (platform_drv_probe) from [] (driver_probe_device+0x174/0x2b8) [ 2.587739] [] (driver_probe_device) from [] (__driver_attach+0x94/0x98) [ 2.596172] [] (__driver_attach) from [] (bus_for_each_dev+0x6c/0xa0) [ 2.604342] [] (bus_for_each_dev) from [] (bus_add_driver+0x148/0x1f0) [ 2.612597] [] (bus_add_driver) from [] (driver_register+0x78/0xf8) [ 2.620593] [] (driver_register) from [] (do_one_initcall+0x8c/0x1d4) [ 2.628765] [] (do_one_initcall) from [] (kernel_init_freeable+0x144/0x1e4) [ 2.637459] [] (kernel_init_freeable) from [] (kernel_init+0x8/0xe8) [ 2.645543] [] (kernel_init) from [] (ret_from_fork+0x14/0x34) This is caused by azx_bus_init() trying to dereference chip->card, which for the Tegra driver doesn't get initialized until sometime later during the call to hda_tegra_create(). Fix this by mimicking the behaviour of the Intel driver and defer HDA bus initialization until right before the call to snd_device_new(). Fixes: a41d122449be ('ALSA: hda - Embed bus into controller object') Signed-off-by: Thierry Reding Signed-off-by: Takashi Iwai sound/pci/hda/hda_tegra.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 0a67352153505f3ef2cdd155bfcbf7e43186bd82 Author: Lu, Han Date: Tue May 5 09:05:48 2015 +0800 ALSA: hda - reset display codec when power on In SKL, HDMI/DP codec and PCH HD Audio Controller are in different power wells, so it's necessary to reset display audio codecs when power well on, otherwise display audio codecs will disappear when resume from low power state. Reset steps when power on: enable codec wakeup -> azx_init_chip() -> disable codec wakeup The callback for codec wakeup enable/disable is in drivers/gpu/drm/i915/. Signed-off-by: Lu, Han Signed-off-by: Takashi Iwai sound/pci/hda/hda_i915.c | 21 +++++++++++++++++++++ sound/pci/hda/hda_intel.c | 20 +++++++++++++++++--- sound/pci/hda/hda_intel.h | 5 +++++ 3 files changed, 43 insertions(+), 3 deletions(-) commit 632f3ab95fe2ffebf09969a57ab21be409ed7dcc Author: Lu, Han Date: Tue May 5 09:05:47 2015 +0800 drm/i915/audio: add codec wakeup override enabled/disable callback Add support for enabling codec wakeup override signal to allow re-enumeration of the controller on SKL after resume from low power state. In SKL, HDMI/DP codec and PCH HD Audio Controller are in different power wells, so it's necessary to reset display audio codecs when power well on, otherwise display audio codecs will disappear when resume from low power state. Reset steps when power on: enable codec wakeup -> azx_init_chip() -> disable codec wakeup v3 by Jani: Simplify to only support toggling the appropriate chicken bit. v4 by Han: add explanation and specify the hw swquence. Signed-off-by: Lu, Han Signed-off-by: Jani Nikula Acked-by: Daniel Vetter Signed-off-by: Takashi Iwai drivers/gpu/drm/i915/i915_reg.h | 3 +++ drivers/gpu/drm/i915/intel_audio.c | 27 +++++++++++++++++++++++++++ include/drm/i915_component.h | 1 + 3 files changed, 31 insertions(+) commit 8d5c25856859bd826aca4b88103552a80b344cef Author: Johannes Berg Date: Thu Apr 23 12:19:22 2015 +0200 mac80211: make LED triggering depend on activation When LED triggers are compiled in, but not used, mac80211 will still call them to update the status. This isn't really a problem for the assoc and radio ones, but the TX/RX (and to a certain extend TPT) ones can be called very frequently (for every packet.) In order to avoid that when they're not used, track their activation and call the corresponding trigger (and in the TPT case, account for throughput) only when the trigger is actually used by an LED. Additionally, make those trigger functions inlines since theyre only used once in the remaining code. Signed-off-by: Johannes Berg net/mac80211/ieee80211_i.h | 7 +- net/mac80211/led.c | 239 +++++++++++++++++++++++++++++---------------- net/mac80211/led.h | 44 ++++++--- net/mac80211/main.c | 4 +- 4 files changed, 194 insertions(+), 100 deletions(-) commit f5c4ae07992ca64d8628a11439c184baf5595e4b Author: Johannes Berg Date: Thu Apr 23 12:09:01 2015 +0200 mac80211: make LED trigger names const This is just a code cleanup, make the LED trigger names const as they're not expected to be modified by drivers. Signed-off-by: Johannes Berg drivers/net/wireless/ath/ath5k/led.c | 2 +- drivers/net/wireless/ath/carl9170/led.c | 2 +- drivers/net/wireless/p54/led.c | 2 +- include/net/mac80211.h | 27 ++++++++++++++------------- net/mac80211/led.c | 17 +++++++++-------- 5 files changed, 26 insertions(+), 24 deletions(-) commit 56ff51084eadf61a93941e9a2a20608d8dd45711 Author: Johannes Berg Date: Wed Apr 22 21:07:39 2015 +0200 mac80211: clean up station debugfs Remove items that can be retrieved through nl80211. This also removes two items (tx_packets and tx_bytes) where only the VO counter was exposed since they are split up per AC but in the debugfs file only the first AC was shown. Also remove the useless "dev" file - the stations have long been in a sub-directory of the netdev so there's no need for that any more. Signed-off-by: Johannes Berg net/mac80211/debugfs_sta.c | 84 ---------------------------------------------- 1 file changed, 84 deletions(-) commit f83f1c129a6f29830de74a47521dd68e57914579 Author: Johannes Berg Date: Wed Apr 22 20:55:55 2015 +0200 mac80211: remove sta->tx_fragments counter This counter is unsafe with concurrent TX and is only exposed through debugfs and ethtool. Instead of trying to fix it just remove it for now, if it's really needed then it should be exposed through nl80211 and in a way that drivers that do the fragmentation in the device could support it as well. Signed-off-by: Johannes Berg net/mac80211/debugfs_sta.c | 1 - net/mac80211/ethtool.c | 3 +-- net/mac80211/sta_info.h | 2 -- net/mac80211/tx.c | 2 -- 4 files changed, 1 insertion(+), 7 deletions(-) commit c206ca670974cefec7ac3732db5c8156e8081a8d Author: Johannes Berg Date: Wed Apr 22 20:47:28 2015 +0200 mac80211: move dot11 counters under MAC80211_DEBUG_COUNTERS Since these counters can only be read through debugfs, there's very little point in maintaining them all the time. However, even just making them depend on debugfs is pointless - they're not normally used. Additionally a number of them aren't even concurrency safe. Move them under MAC80211_DEBUG_COUNTERS so they're normally not even compiled in. Signed-off-by: Johannes Berg net/mac80211/Kconfig | 6 +++++- net/mac80211/debugfs.c | 2 +- net/mac80211/ieee80211_i.h | 16 ++++++++-------- net/mac80211/rx.c | 6 +++--- net/mac80211/status.c | 28 ++++++++++++++-------------- 5 files changed, 31 insertions(+), 27 deletions(-) commit f1160434c7658af3f7b0926b88df49a66cb3c3e0 Author: Johannes Berg Date: Wed Apr 22 20:25:20 2015 +0200 mac80211: clean up global debugfs statistics The debugfs statistics macros are pointlessly verbose, so change that macro to just have a single argument. While at it, remove the unused counters and rename rx_expand_skb_head2 to the better rx_expand_skb_head_defrag. Signed-off-by: Johannes Berg net/mac80211/debugfs.c | 74 ++++++++++++++++------------------------------ net/mac80211/ieee80211_i.h | 4 +-- net/mac80211/rx.c | 2 +- 3 files changed, 28 insertions(+), 52 deletions(-) commit 5f9c2187d6cfac15b44b584c403e187321a4c062 Author: Thierry Reding Date: Tue May 5 14:20:16 2015 +0200 ARM: tegra: Update default configuration Changes contributed by Marcel Ziswiler : Enable HDA to support audio over HDMI and codecs connected to the HDA controller (needed by the Toradex Apalis Tegra30 Evaluation Board): - SND_HDA - SND_HDA_TEGRA - SND_HDA_INPUT_BEEP - SND_HDA_INPUT_JACK - SND_HDA_PATCH_LOADER - SND_HDA_CODEC_REALTEK - SND_HDA_CODEC_HDMI - SND_HDA_GENERIC Enable watchdog support: - WATCHDOG - TEGRA_WATCHDOG Signed-off-by: Thierry Reding arch/arm/configs/tegra_defconfig | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 869bd180b8e6a81525acab21a5ee4428685bda2a Author: Marcel Ziswiler Date: Fri Apr 10 23:36:00 2015 +0200 ARM: tegra: Fix hda2codec_2x clock and reset names The binding documentation says that these should be named hda2codec_2x but the DTSI names them hdacodec_2x. Signed-off-by: Marcel Ziswiler [treding@nvidia.com: add a brief commit message] Signed-off-by: Thierry Reding arch/arm/boot/dts/tegra124.dtsi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit cbee2613fbc7339050014c3db2f24771d755044b Author: Marcel Ziswiler Date: Fri Apr 10 23:35:59 2015 +0200 ARM: tegra: Add Tegra30 HDA support Add a device node for the HDA controller found on Tegra30. Signed-off-by: Marcel Ziswiler Signed-off-by: Thierry Reding arch/arm/boot/dts/tegra30.dtsi | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit 19e3d60d49f05a9de0ef06c60703f31d4acd5f17 Author: Jan Kiszka Date: Mon May 4 17:58:01 2015 +0200 x86: Let x2APIC support depend on interrupt remapping or guest support We are able to use x2APIC mode in the absence of interrupt remapping on certain hypervisors. So it is fine to disable IRQ_REMAP without having to give up x2APIC support. Signed-off-by: Jan Kiszka Link: http://lkml.kernel.org/r/55479709.4030901@siemens.com Signed-off-by: Thomas Gleixner arch/x86/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 781674fc33adf0d975a361e111bb45804356aa23 Author: Jan Kiszka Date: Mon May 4 17:58:00 2015 +0200 x86/x2apic: Acpi_gbl_FADT existence depends on CONFIG_ACPI If ACPI is disabled, acpi_gbl_FADT is not available, and and the build breaks. Signed-off-by: Jan Kiszka Link: http://lkml.kernel.org/r/55479708.2000104@siemens.com Signed-off-by: Thomas Gleixner arch/x86/kernel/apic/x2apic_phys.c | 2 ++ 1 file changed, 2 insertions(+) commit db37406922c3604bf92467ab478598f7fe6131bc Author: Marcel Ziswiler Date: Fri Apr 10 23:35:56 2015 +0200 ARM: tegra: Cardhu device-tree comment spelling fix The word "sticker" was misspelled as "stciker". Fix it. Signed-off-by: Marcel Ziswiler [treding@nvidia.com: add a brief commit message] Signed-off-by: Thierry Reding arch/arm/boot/dts/tegra30-cardhu.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 467b9b56e2e909e8f5ba2049e538d358099ad5dd Author: Thierry Reding Date: Fri Jul 18 12:11:44 2014 +0200 ARM: tegra: venice2: Set min-/max-microvolt for VDD_LED supply The VDD_LED supply's output is a fixed 3.3 V. Record that in the min- and max-microvolt properties. Signed-off-by: Thierry Reding arch/arm/boot/dts/tegra124-venice2.dts | 2 ++ 1 file changed, 2 insertions(+) commit ecb53f510a1a823065a3e9e3fb7d9ea78ad9ff0e Author: Thierry Reding Date: Fri Jul 18 12:11:19 2014 +0200 ARM: tegra: venice2: Mark eMMC as non-removable eMMC is soldered on to the board, and as such isn't removable. Mark it as non-removable so that operating systems can treat it appropriately. Signed-off-by: Thierry Reding arch/arm/boot/dts/tegra124-venice2.dts | 1 + 1 file changed, 1 insertion(+) commit 26f63c692f012ff665a8fd085a36549fe734f59f Author: Fang, Yang A Date: Mon May 4 13:43:47 2015 -0700 ASoC: Intel: Fixed kbuild warnings fix following sparse warnings: (new ones prefixed by >>) >> sound/soc/intel/boards/cht_bsw_max98090_ti.c:168:37: sparse: >> incorrect type in argument 2 (different base types) sound/soc/intel/boards/cht_bsw_max98090_ti.c:168:37: expected unsigned int [unsigned] val sound/soc/intel/boards/cht_bsw_max98090_ti.c:168:37: got restricted snd_pcm_format_t [usertype] Signed-off-by: Fang, Yang A Signed-off-by: Mark Brown sound/soc/intel/boards/cht_bsw_max98090_ti.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 9c77a81f215bfeee8f96c50c8ab27dbebffec80d Author: Mikko Perttunen Date: Thu Mar 12 15:48:06 2015 +0100 memory: tegra: Add EMC frequency debugfs entry This file in debugfs can be used to get or set the EMC frequency. Reading the file will return the currently set frequency in Hz, while writing the file sets the specified frequency rounded to the next highest frequency supported by the board. Will be very useful when tuning memory scaling. Signed-off-by: Mikko Perttunen Signed-off-by: Tomeu Vizoso [treding@nvidia.com: add "emc" debugfs directory] Signed-off-by: Thierry Reding drivers/memory/tegra/tegra124-emc.c | 48 +++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) commit eb18cf55c299d2ac5c8b5421c58b6c582a044475 Author: Thomas Gleixner Date: Tue May 5 11:10:11 2015 +0200 x86: Constify irqdomain ops Nothing changes those ops. Make the initializers readable while at it. Reported-by: Krzysztof Kozlowski Signed-off-by: Thomas Gleixner arch/x86/kernel/apic/htirq.c | 10 +++++----- arch/x86/kernel/apic/vector.c | 6 +++--- arch/x86/platform/uv/uv_irq.c | 10 +++++----- 3 files changed, 13 insertions(+), 13 deletions(-) commit 9d4c0313f24a05e5252e7106636bf3c5b6318f5d Author: Thomas Gleixner Date: Mon May 4 10:47:40 2015 +0800 irq_remapping/vt-d: Init all MSI entries not just the first one Commit b106ee63abcc ("irq_remapping/vt-d: Enhance Intel IR driver to support hierarchical irqdomains") caused a regression, which forgot to initialize remapping data structures other than the first entry when setting up remapping entries for multiple MSIs. [ Jiang: Commit message ] Fixes: b106ee63abcc ("irq_remapping/vt-d: Enhance Intel IR driver to support hierarchical irqdomains") Signed-off-by: Thomas Gleixner Signed-off-by: Jiang Liu Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Greg Kroah-Hartman Cc: iommu@lists.linux-foundation.org Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Cc: Joerg Roedel Link: http://lkml.kernel.org/r/1430707662-28598-2-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner drivers/iommu/intel_irq_remapping.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) commit 73a7f0a90641b09300d47308682b674c570dd6a2 Author: Mikko Perttunen Date: Thu Mar 12 15:48:03 2015 +0100 memory: tegra: Add EMC (external memory controller) driver Implements functionality needed to change the rate of the memory bus clock. Signed-off-by: Mikko Perttunen Signed-off-by: Tomeu Vizoso Signed-off-by: Thierry Reding drivers/memory/tegra/Kconfig | 10 + drivers/memory/tegra/Makefile | 2 + drivers/memory/tegra/tegra124-emc.c | 1092 +++++++++++++++++++++++++++++++++++ include/soc/tegra/emc.h | 19 + 4 files changed, 1123 insertions(+) commit 3d9dd6fdd23695a038633f1a87aee0708fe4b8e0 Author: Mikko Perttunen Date: Thu Mar 12 15:48:02 2015 +0100 memory: tegra: Add API needed by the EMC driver The EMC driver needs to know the number of external memory devices and also needs to update the EMEM configuration based on the new rate of the memory bus. To know how to update the EMEM config, looks up the values of the burst regs in the DT, for a given timing. Signed-off-by: Mikko Perttunen Signed-off-by: Tomeu Vizoso Signed-off-by: Thierry Reding drivers/memory/tegra/mc.c | 136 ++++++++++++++++++++++++++++++++++++++++ drivers/memory/tegra/tegra124.c | 44 +++++++++++++ include/soc/tegra/mc.h | 14 ++++- 3 files changed, 193 insertions(+), 1 deletion(-) commit 6b22194d5e34f45b71628b7fd0a61e63df9e7dd7 Author: Mikko Perttunen Date: Thu Mar 12 15:47:58 2015 +0100 of: Add Tegra124 EMC bindings Add binding documentation for the nvidia,tegra124-emc device tree node. Signed-off-by: Mikko Perttunen Signed-off-by: Tomeu Vizoso Signed-off-by: Thierry Reding .../bindings/memory-controllers/tegra-emc.txt | 374 +++++++++++++++++++++ 1 file changed, 374 insertions(+) commit 101197c39b459b6ab0045089b514f3ce8c0d8250 Author: Tomeu Vizoso Date: Thu Mar 12 15:47:57 2015 +0100 of: Document timings subnode of nvidia,tegra-mc The MC driver needs some timing-specific information to program the EMEM during a rate change of the EMC clock. Signed-off-by: Tomeu Vizoso Signed-off-by: Thierry Reding .../memory-controllers/nvidia,tegra-mc.txt | 84 +++++++++++++++++++++- 1 file changed, 82 insertions(+), 2 deletions(-) commit d555a1a1286a55172a78f90b363d782846a5e629 Merge: b787f68 6ea2609 Author: Thierry Reding Date: Tue May 5 11:10:08 2015 +0200 Merge branch 'for-4.2/ramcode' into for-4.2/emc commit dbf07cf0c846c3a0d3f97976931cb4ae78f730e2 Author: Maxime Ripard Date: Sat May 2 17:03:26 2015 +0200 irqchip: vf610: Fix of_io_request_and_map error check of_io_request_and map returns an error pointer, but the current code assumes that on error the returned pointer will be NULL. Obviously, that makes the check completely useless. Change the test to actually check for the proper error code. Signed-off-by: Maxime Ripard Cc: Jason Cooper Link: http://lkml.kernel.org/r/1430579006-32702-7-git-send-email-maxime.ripard@free-electrons.com Signed-off-by: Thomas Gleixner drivers/irqchip/irq-vf610-mscm-ir.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit f31105347cc56c13d552b844ada04418769d875d Author: Geert Uytterhoeven Date: Tue Apr 28 12:17:50 2015 +0200 irqchip: irqc: Remove platform data support As of commit 914d7d148411997c ("ARM: shmobile: r8a73a4: Remove legacy code"), the Renesas R-Mobile/R-Car interrupt controller is used with DT only, and interrupt numbers are thus always assigned automatically. Drop the platform data declaration and all related support code. Signed-off-by: Geert Uytterhoeven Cc: Magnus Damm Cc: Jason Cooper Link: http://lkml.kernel.org/r/1430216270-31929-1-git-send-email-geert%2Brenesas@glider.be Signed-off-by: Thomas Gleixner drivers/irqchip/irq-renesas-irqc.c | 17 +--------------- include/linux/platform_data/irq-renesas-irqc.h | 27 -------------------------- 2 files changed, 1 insertion(+), 43 deletions(-) commit 7df0b278385df3c8d0606c620e6ab1e9eea3d9cd Author: Nicholas Mc Guire Date: Sun May 3 10:49:11 2015 +0200 genirq: Fix type inconsistency The return type of kstat_irqs_usr() is unsigned int and kstat_irqs() also returns unsigned int so sum should be unsigned int here as well. Signed-off-by: Nicholas Mc Guire Link: http://lkml.kernel.org/r/1430642951-23964-1-git-send-email-hofrat@osadl.org Signed-off-by: Thomas Gleixner kernel/irq/irqdesc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5e9662fa511794e1e72baf8eee21238962140480 Author: Nicholas Mc Guire Date: Sun May 3 10:48:50 2015 +0200 genirq: Fix unnecessary automatic type conversion kstat_irqs is unsigned int and the return type of kstat_irqs() is also unsigned int so sum should be unsigned int as well even if the result is correct due to automatic type conversion. Signed-off-by: Nicholas Mc Guire Link: http://lkml.kernel.org/r/1430642930-23929-1-git-send-email-hofrat@osadl.org Signed-off-by: Thomas Gleixner kernel/irq/irqdesc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9600973656c697d742e31d202e6212216ea45a3e Author: Krzysztof Kozlowski Date: Mon Apr 27 21:54:24 2015 +0900 irqchip: Constify irq_domain_ops The irq_domain_ops are not modified by the driver and the irqdomain core code accepts pointer to a const data. Signed-off-by: Krzysztof Kozlowski Cc: Jason Cooper Cc: Kukjin Kim Cc: Stephen Warren Cc: Lee Jones Cc: Matthias Brugger Cc: Maxime Ripard Cc: linux-arm-kernel@lists.infradead.org Cc: linux-rpi-kernel@lists.infradead.org Cc: linux-mediatek@lists.infradead.org Link: http://lkml.kernel.org/r/1430139264-4362-2-git-send-email-k.kozlowski.k@gmail.com Signed-off-by: Thomas Gleixner drivers/irqchip/exynos-combiner.c | 2 +- drivers/irqchip/irq-armada-370-xp.c | 2 +- drivers/irqchip/irq-bcm2835.c | 2 +- drivers/irqchip/irq-keystone.c | 2 +- drivers/irqchip/irq-mips-gic.c | 2 +- drivers/irqchip/irq-mtk-sysirq.c | 2 +- drivers/irqchip/irq-mxs.c | 2 +- drivers/irqchip/irq-renesas-intc-irqpin.c | 2 +- drivers/irqchip/irq-renesas-irqc.c | 2 +- drivers/irqchip/irq-s3c24xx.c | 4 ++-- drivers/irqchip/irq-sun4i.c | 2 +- drivers/irqchip/irq-versatile-fpga.c | 2 +- drivers/irqchip/irq-vic.c | 2 +- drivers/irqchip/irq-vt8500.c | 2 +- 14 files changed, 15 insertions(+), 15 deletions(-) commit 01364028bdbb095dc6524986261fe1777ad04347 Author: Krzysztof Kozlowski Date: Mon Apr 27 21:54:23 2015 +0900 genirq: MSI: Constify irq_domain_ops The irq_domain_ops are not modified. The irqdomain core code accepts pointer to a const data. Signed-off-by: Krzysztof Kozlowski Cc: Jason Cooper Cc: Kukjin Kim Cc: Stephen Warren Cc: Lee Jones Cc: Matthias Brugger Cc: Maxime Ripard Cc: linux-arm-kernel@lists.infradead.org Cc: linux-rpi-kernel@lists.infradead.org Cc: linux-mediatek@lists.infradead.org Link: http://lkml.kernel.org/r/1430139264-4362-1-git-send-email-k.kozlowski.k@gmail.com Signed-off-by: Thomas Gleixner kernel/irq/msi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 781978e6e156101209f62b9ebc8783b70ef248de Author: Joonwoo Park Date: Mon Apr 27 19:21:49 2015 -0700 timer: Use timer->base for flag checks At present, internal_add_timer() examines flags with 'base' which doesn't contain flags. Examine with 'timer->base' to avoid unnecessary waking up of nohz CPU when timer base has TIMER_DEFERRABLE set. Signed-off-by: Joonwoo Park Cc: sboyd@codeaurora.org Cc: skannan@codeaurora.org Cc: John Stultz Link: http://lkml.kernel.org/r/1430187709-21087-1-git-send-email-joonwoop@codeaurora.org Signed-off-by: Thomas Gleixner kernel/time/timer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9fa8cc0a85c774b75218ba5f385792be387c190b Author: Maxime Ripard Date: Sat May 2 17:03:25 2015 +0200 clocksource: sun5i: Fix of_io_request_and_map error check of_io_request_and map returns an error pointer, but the current code assumes that on error the returned pointer will be NULL. Obviously, that makes the check completely useless. Change the test to actually check for the proper error code. Signed-off-by: Maxime Ripard Cc: Daniel Lezcano Link: http://lkml.kernel.org/r/1430579006-32702-6-git-send-email-maxime.ripard@free-electrons.com Signed-off-by: Thomas Gleixner drivers/clocksource/timer-sun5i.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bd580e7ed4add8ce9b2c1dd1911f8fb9d444128b Author: Maxime Ripard Date: Sat May 2 17:03:24 2015 +0200 clocksource: integrator: Fix of_io_request_and_map error check of_io_request_and map returns an error pointer, but the current code assumes that on error the returned pointer will be NULL. Obviously, that makes the check completely useless. Change the test to actually check for the proper error code. Signed-off-by: Maxime Ripard Cc: Daniel Lezcano Link: http://lkml.kernel.org/r/1430579006-32702-5-git-send-email-maxime.ripard@free-electrons.com Signed-off-by: Thomas Gleixner drivers/clocksource/timer-integrator-ap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ff569fcd7123d9a9176d59174a27bab9a4fad328 Author: Maxime Ripard Date: Sat May 2 17:03:23 2015 +0200 clocksource: asm9260: Fix of_io_request_and_map error check of_io_request_and map returns an error pointer, but the current code assumes that on error the returned pointer will be NULL. Obviously, that makes the check completely useless. Change the test to actually check for the proper error code. Signed-off-by: Maxime Ripard Cc: Daniel Lezcano Link: http://lkml.kernel.org/r/1430579006-32702-4-git-send-email-maxime.ripard@free-electrons.com Signed-off-by: Thomas Gleixner drivers/clocksource/asm9260_timer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1ef09cd713c90781b683a0b4e0a874803c172b1d Author: Preeti U Murthy Date: Tue Apr 28 14:15:20 2015 +0530 tick-broadcast: Fix the printing of broadcast masks Today the number of bits of the broadcast masks that is output into /proc/timer_list is sizeof(unsigned long). This means that on machines with a larger number of CPUs, the bitmasks of CPUs beyond this range do not appear. Fix this by using bitmap printing through "%*pb" instead, so as to output the broadcast masks for the range of nr_cpu_ids into /proc/timer_list. Signed-off-by: Preeti U Murthy Cc: peterz@infradead.org Cc: linuxppc-dev@ozlabs.org Cc: john.stultz@linaro.org Link: http://lkml.kernel.org/r/20150428084520.3314.62668.stgit@preeti.in.ibm.com Signed-off-by: Thomas Gleixner kernel/time/timer_list.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 298dbd1c5cd66f0ac85981b83b7d519a5d88d1b8 Author: Thomas Gleixner Date: Tue May 5 09:44:24 2015 +0200 tick: broadcast: Simplify oneshot logic and shorten lock region Simplify the oneshot logic by avoiding the reprogramming loops. That also allows to call the cpu local handler outside of the broadcast_lock held region. Tested-by: Borislav Petkov Signed-off-by: Thomas Gleixner kernel/time/tick-broadcast.c | 42 +++++++++++++++++------------------------- 1 file changed, 17 insertions(+), 25 deletions(-) commit 2951d5c031a3aaefa31b688fbf229e75692f4786 Author: Thomas Gleixner Date: Tue May 5 10:00:13 2015 +0200 tick: broadcast: Prevent livelock from event handler With the removal of the hrtimer softirq the switch to highres/nohz mode happens in the tick interrupt. That leads to a livelock when the per cpu event handler is directly called from the broadcast handler under broadcast lock because broadcast lock needs to be taken for the highres/nohz switch as well. Solve this by calling the cpu local handler outside the broadcast_lock held region. Fixes: c6eb3f70d448 "hrtimer: Get rid of hrtimer softirq" Reported-and-tested-by: Borislav Petkov Signed-off-by: Thomas Gleixner kernel/time/tick-broadcast.c | 53 +++++++++++++++++++++----------------------- 1 file changed, 25 insertions(+), 28 deletions(-) commit 4a324d33bfe95a279d4c7370d84087d3e773e799 Author: David Herrmann Date: Mon May 4 16:05:14 2015 +0200 drm: simplify master cleanup In drm_master_destroy() we _free_ the master object. There is no reason to hold any locks while dropping its static members, nor do we have to reset it to 0. Furthermore, kfree() already does NULL checks, so call it directly on master->unique and drop the redundant reset-code. Signed-off-by: David Herrmann Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_drv.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) commit 32e7b94a3fa8e137aab9f2c65dff86be73245fc8 Author: David Herrmann Date: Mon May 4 21:01:30 2015 +0200 drm: simplify authentication management The magic auth tokens we have are a simple map from cyclic IDs to drm_file objects. Remove all the old bulk of code and replace it with a simple, direct IDR. The previous behavior is kept. Especially calling authmagic multiple times on the same magic results in EINVAL except on the first call. The only difference in behavior is that we never allocate IDs multiple times as long as a client has its FD open. v2: - Fix return code of GetMagic() - Use non-cyclic IDR allocator - fix off-by-one in "magic > INT_MAX" sanity check v3: - drop redundant "magic > INT_MAX" check Signed-off-by: David Herrmann Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_auth.c | 175 +++++++++-------------------------------- drivers/gpu/drm/drm_drv.c | 12 +-- drivers/gpu/drm/drm_fops.c | 7 +- drivers/gpu/drm/drm_internal.h | 1 - include/drm/drmP.h | 4 +- 5 files changed, 42 insertions(+), 157 deletions(-) commit acab18b5c3a7025640abc84ace5e94c76ebd3d10 Author: David Herrmann Date: Mon May 4 16:05:12 2015 +0200 drm: drop unused 'magicfree' list This list is write-only. It's never used for read-access, so no reason to keep it around. Drop it! Signed-off-by: David Herrmann Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_auth.c | 3 --- drivers/gpu/drm/drm_drv.c | 1 - include/drm/drmP.h | 2 -- 3 files changed, 6 deletions(-) commit de2ad486cb6cfdf3ef79a96a18d78bb1b135c0e0 Author: Li RongQing Date: Thu Apr 30 17:25:19 2015 +0800 xfrm: move the checking for old xfrm_policy hold_queue to beginning if hold_queue of old xfrm_policy is NULL, return directly, then not need to run other codes, especially take the spin lock Signed-off-by: Li RongQing Signed-off-by: Steffen Klassert net/xfrm/xfrm_policy.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 586f2eb416f4271444e807b96346df3d30e8dfb5 Author: Li RongQing Date: Thu Apr 30 17:13:41 2015 +0800 xfrm: remove the unnecessary checking before call xfrm_pol_hold xfrm_pol_hold will check its input with NULL Signed-off-by: Li RongQing Signed-off-by: Steffen Klassert net/xfrm/xfrm_policy.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit ed1817036bd6d83829039543c9fe4aa94acc7c39 Author: Oleg Drokin Date: Mon Apr 27 11:36:46 2015 -0400 drm: fix a memleak on mutex failure path Need to free just allocated ctx allocation if we cannot get our config mutex. This one has been flagged by kbuild bot all the way back in August, but somehow nobody picked it up: https://lists.01.org/pipermail/kbuild/2014-August/001691.html In addition there is another failure path that leaks the same ctx reference that is fixed. Found with smatch. Signed-off-by: Oleg Drokin CC: Daniel Vetter Reviewed-by: Jani Nikula Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_modeset_lock.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 488c7455d74ce0c354ea833c7fbbb6ba0a2330e9 Author: Chanwoo Choi Date: Tue Mar 10 11:23:44 2015 +0900 thermal: exynos: Add the support for Exynos5433 TMU This patch adds the support for Exynos5433's TMU (Thermal Management Unit). Exynos5433 has a little different register bit fields as following description: - Support the eight trip points for rising/falling interrupt by using two registers - Read the calibration type (1-point or 2-point) and sensor id from TRIMINFO register - Use a little different register address Cc: Zhang Rui Cc: Eduardo Valentin Cc: Lukasz Majewski Signed-off-by: Chanwoo Choi Signed-off-by: Eduardo Valentin drivers/thermal/samsung/exynos_tmu.c | 187 ++++++++++++++++++++++++++++++++++- drivers/thermal/samsung/exynos_tmu.h | 1 + 2 files changed, 186 insertions(+), 2 deletions(-) commit dd658e02357ec879edd0c62ee1f3a19c92b0b027 Author: Kapileshwar Singh Date: Mon Mar 16 12:00:51 2015 +0000 thermal: cpu_cooling: Fix power calculation when CPUs are offline Ensure that the CPU for which the frequency is being requested is online. If none of the CPUs are online the requested power is returned as 0. Acked-by: Javi Merino Signed-off-by: Kapileshwar Singh Signed-off-by: Eduardo Valentin drivers/thermal/cpu_cooling.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) commit 54b92aae834ce8d02d6092f8ae5eb1fe0d607f1e Author: Kapileshwar Singh Date: Mon Mar 16 12:00:50 2015 +0000 thermal: cpu_cooling: Remove cpu_dev update on policy CPU update It was initially understood that an update to the cpu_device (cached in cpufreq_cooling_device) was required to ascertain the correct operating point of the device on a cpufreq policy->cpu update or creation or deletion of a cpufreq policy. (e.g. when the existing policy CPU goes offline). This update is not required and it is possible to ascertain the OPPs from the leading CPU in a cpufreq domain even if the CPU is hotplugged out. Fixes: e0128d8ab423 ("thermal: cpu_cooling: implement the power cooling device API") Acked-by: Javi Merino Signed-off-by: Kapileshwar Singh Signed-off-by: Eduardo Valentin drivers/thermal/cpu_cooling.c | 40 ---------------------------------------- 1 file changed, 40 deletions(-) commit 9f38271c6f82a577d9fdab27aaf2e1c55ae5cf73 Author: Javi Merino Date: Thu Mar 26 15:53:02 2015 +0000 thermal: export thermal_zone_parameters to sysfs It's useful for tuning to be able to edit thermal_zone_parameters from userspace. Export them to the thermal_zone sysfs so that they can be easily changed. Cc: Zhang Rui Cc: Eduardo Valentin Signed-off-by: Javi Merino Signed-off-by: Eduardo Valentin Documentation/thermal/sysfs-api.txt | 52 +++++++++++++++++++ drivers/thermal/thermal_core.c | 101 ++++++++++++++++++++++++++++++++++++ 2 files changed, 153 insertions(+) commit 0cdf97e1ad8d796313de051528f06c1b16f3a679 Author: Javi Merino Date: Fri Mar 20 18:20:13 2015 +0000 thermal: cpu_cooling: Check memory allocation of power_table We allocate the power_table in memory but we don't test whether the allocation succeeded. Return -ENOMEM if kcalloc() fails. Fixes: e0128d8ab423 ("thermal: cpu_cooling: implement the power cooling device API") Cc: Eduardo Valentin Cc: Zhang Rui Reported-by: kbuild test robot Signed-off-by: Javi Merino Signed-off-by: Eduardo Valentin drivers/thermal/cpu_cooling.c | 4 ++++ 1 file changed, 4 insertions(+) commit 95d079ef6710e0f60dd87d887a3cfee5bf25af5f Author: Pavel Machek Date: Tue Mar 24 23:20:21 2015 +0100 ti-soc-thermal: request temperature periodically if hw can't do that itself When periodic mode is not enabled, it is neccessary to force reads. Signed-off-by: Pavel Machek Signed-off-by: Eduardo Valentin drivers/thermal/ti-soc-thermal/ti-bandgap.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit a4296d19b5e19a5c9a3979e9595fa26c40af67b5 Author: Pavel Machek Date: Sun Jan 18 21:20:51 2015 +0100 ti-soc-thermal: implement eocz bit to make driver useful on omap3 For omap3, proper implementation of eocz bit is needed. It was actually a TODO in the driver. Signed-off-by: Pavel Machek Signed-off-by: Eduardo Valentin drivers/thermal/ti-soc-thermal/ti-bandgap.c | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) commit e34238bf98a2ad9deda9444d69903889eced0519 Author: Pavel Machek Date: Sun Jan 18 21:17:10 2015 +0100 cleanup ti-soc-thermal Simplify code by removing goto's where they point to simple return. Avoid confusing |= on error values. Correct whitespace. Signed-off-by: Pavel Machek Signed-off-by: Eduardo Valentin drivers/thermal/ti-soc-thermal/ti-bandgap.c | 72 ++++++++-------------- drivers/thermal/ti-soc-thermal/ti-thermal-common.c | 2 +- 2 files changed, 25 insertions(+), 49 deletions(-) commit db6cb88b8f4748589d826930c7626b7cde262243 Author: Javi Merino Date: Wed Mar 4 17:57:29 2015 +0000 thermal: remove stale THERMAL_POWER_ACTOR select A previous version of this patch had a config for THERMAL_POWER_ACTOR but it was dropped. Remove the select as it is not doing anything. Cc: Zhang Rui Cc: Eduardo Valentin Reported-by: Valentin Rothberg Signed-off-by: Javi Merino Signed-off-by: Eduardo Valentin drivers/thermal/Kconfig | 1 - 1 file changed, 1 deletion(-) commit 76af5495a5263a6d5b6d5de0f34d52de1dbf665e Author: Punit Agrawal Date: Tue Mar 3 10:43:04 2015 +0000 thermal: Default OF created trip points to writable When registering a thermal zone from device tree, default the trip points to writable. By default, only the root user can change these. This allows the trip points to be tweaked after the system has booted. Cc: Eduardo Valentin Cc: Zhang Rui Signed-off-by: Punit Agrawal Signed-off-by: Eduardo Valentin drivers/thermal/of-thermal.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 35e946447f22d722e06702f4f040f7b108cafbbe Author: Punit Agrawal Date: Tue Mar 3 10:43:03 2015 +0000 thermal: core: Add Kconfig option to enable writable trips Add a Kconfig option to allow system integrators to control whether userspace tools can change trip temperatures. This option overrides the thermal zone setup in the driver code and must be enabled for platform specified writable trips to come into effect. The original behaviour of requiring root privileges to change trip temperatures remains unchanged. Cc: Eduardo Valentin Cc: Zhang Rui Signed-off-by: Punit Agrawal Signed-off-by: Eduardo Valentin drivers/thermal/Kconfig | 11 +++++++++++ drivers/thermal/thermal_core.c | 3 ++- 2 files changed, 13 insertions(+), 1 deletion(-) commit 4abe602d5d2c7a64bde935acae4b15e49c8b3238 Author: Javi Merino Date: Tue Mar 3 15:30:50 2015 +0000 thermal: x86_pkg_temp: drop const for thermal_zone_parameters 8754d5115693 ("thermal: introduce the Power Allocator governor") dropped the const attribute in the struct thermal_zone_device. That means that the thermal_zone_params pointer passed to thermal_zone_device_register() also lost the const qualifier. Drop the const in x86_pkg_temp_thermal.c as well to avoid the following warning as reported by the kbuild test robot: drivers/thermal/x86_pkg_temp_thermal.c: In function 'pkg_temp_thermal_device_add': >> drivers/thermal/x86_pkg_temp_thermal.c:450:31: warning: passing argument 6 of 'thermal_zone_device_register' discards 'const' qualifier from pointer target type phy_dev_entry, &tzone_ops, &pkg_temp_tz_params, 0, 0); ^ In file included from drivers/thermal/x86_pkg_temp_thermal.c:30:0: include/linux/thermal.h:378:29: note: expected 'struct thermal_zone_params *' but argument is of type 'const struct thermal_zone_params *' struct thermal_zone_device *thermal_zone_device_register(const char *, int, int, ^ Cc: Jean Delvare Cc: Zhang Rui Cc: Eduardo Valentin Signed-off-by: Javi Merino Signed-off-by: Eduardo Valentin drivers/thermal/x86_pkg_temp_thermal.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 647f99255d604aa98f919b89c74567bb4e8fe52c Author: Punit Agrawal Date: Thu Feb 26 19:00:32 2015 +0000 of: thermal: Introduce sustainable power for a thermal zone Introduce an optional property called, sustainable-power, which represents the power (in mW) which the thermal zone can safely dissipate. If provided the property is parsed and associated with the thermal zone via the thermal zone parameters. Cc: Zhang Rui Cc: Eduardo Valentin Signed-off-by: Punit Agrawal Signed-off-by: Eduardo Valentin Documentation/devicetree/bindings/thermal/thermal.txt | 9 +++++++++ drivers/thermal/of-thermal.c | 4 ++++ 2 files changed, 13 insertions(+) commit 6828a4711f994bbd9d3fd27b7a541217fc37b341 Author: Javi Merino Date: Mon Mar 2 17:17:20 2015 +0000 thermal: add trace events to the power allocator governor Add trace events for the power allocator governor and the power actor interface of the cpu cooling device. Cc: Zhang Rui Cc: Eduardo Valentin Cc: Frederic Weisbecker Cc: Ingo Molnar Acked-by: Steven Rostedt Signed-off-by: Javi Merino Signed-off-by: Eduardo Valentin drivers/thermal/cpu_cooling.c | 31 ++++++++- drivers/thermal/power_allocator.c | 22 ++++++- include/trace/events/thermal.h | 58 +++++++++++++++++ include/trace/events/thermal_power_allocator.h | 87 ++++++++++++++++++++++++++ 4 files changed, 194 insertions(+), 4 deletions(-) commit 6b775e870c56c59c3e16531ea2307b797395f9f7 Author: Javi Merino Date: Mon Mar 2 17:17:19 2015 +0000 thermal: introduce the Power Allocator governor The power allocator governor is a thermal governor that controls system and device power allocation to control temperature. Conceptually, the implementation divides the sustainable power of a thermal zone among all the heat sources in that zone. This governor relies on "power actors", entities that represent heat sources. They can report current and maximum power consumption and can set a given maximum power consumption, usually via a cooling device. The governor uses a Proportional Integral Derivative (PID) controller driven by the temperature of the thermal zone. The output of the controller is a power budget that is then allocated to each power actor that can have bearing on the temperature we are trying to control. It decides how much power to give each cooling device based on the performance they are requesting. The PID controller ensures that the total power budget does not exceed the control temperature. Cc: Zhang Rui Cc: Eduardo Valentin Signed-off-by: Punit Agrawal Signed-off-by: Javi Merino Signed-off-by: Eduardo Valentin Documentation/thermal/power_allocator.txt | 247 ++++++++++++++ drivers/thermal/Kconfig | 15 + drivers/thermal/Makefile | 1 + drivers/thermal/power_allocator.c | 520 ++++++++++++++++++++++++++++++ drivers/thermal/thermal_core.c | 9 +- drivers/thermal/thermal_core.h | 8 + include/linux/thermal.h | 37 ++- 7 files changed, 830 insertions(+), 7 deletions(-) commit c36cf07176316fbe6a4bdbc23afcb0cbf7822bf2 Author: Javi Merino Date: Thu Feb 26 19:00:29 2015 +0000 thermal: cpu_cooling: implement the power cooling device API Add a basic power model to the cpu cooling device to implement the power cooling device API. The power model uses the current frequency, current load and OPPs for the power calculations. The cpus must have registered their OPPs using the OPP library. Cc: Zhang Rui Cc: Eduardo Valentin Signed-off-by: Kapileshwar Singh Signed-off-by: Punit Agrawal Signed-off-by: Javi Merino Signed-off-by: Eduardo Valentin Documentation/thermal/cpu-cooling-api.txt | 156 +++++++- drivers/thermal/cpu_cooling.c | 583 +++++++++++++++++++++++++++++- include/linux/cpu_cooling.h | 39 ++ 3 files changed, 760 insertions(+), 18 deletions(-) commit 35b11d2e3a66279a477e36cefb2603806295b8ce Author: Javi Merino Date: Thu Feb 26 19:00:28 2015 +0000 thermal: extend the cooling device API to include power information Add three optional callbacks to the cooling device interface to allow them to express power. In addition to the callbacks, add helpers to identify cooling devices that implement the power cooling device API. Cc: Zhang Rui Cc: Eduardo Valentin Signed-off-by: Javi Merino Signed-off-by: Eduardo Valentin drivers/thermal/thermal_core.c | 52 ++++++++++++++++++++++++++++++++++++++++++ include/linux/thermal.h | 25 ++++++++++++++++++++ 2 files changed, 77 insertions(+) commit e33df1d2f3a0141cd79e770f31999ba0dd7ebfa8 Author: Javi Merino Date: Thu Feb 26 19:00:27 2015 +0000 thermal: let governors have private data for each thermal zone A governor may need to store its current state between calls to throttle(). That state depends on the thermal zone, so store it as private data in struct thermal_zone_device. The governors may have two new ops: bind_to_tz() and unbind_from_tz(). When provided, these functions let governors do some initialization and teardown when they are bound/unbound to a tz and possibly store that information in the governor_data field of the struct thermal_zone_device. Cc: Zhang Rui Cc: Eduardo Valentin Signed-off-by: Javi Merino Signed-off-by: Eduardo Valentin drivers/thermal/thermal_core.c | 83 ++++++++++++++++++++++++++++++++++++++---- include/linux/thermal.h | 9 +++++ 2 files changed, 84 insertions(+), 8 deletions(-) commit c610afaa21d3c6e7b02040c8563ffc01c7fc0570 Author: Ivan T. Ivanov Date: Thu Feb 5 19:12:56 2015 +0200 thermal: Add QPNP PMIC temperature alarm driver Add support for the temperature alarm peripheral found inside Qualcomm plug-and-play (QPNP) PMIC chips. The temperature alarm peripheral outputs a pulse on an interrupt line whenever the thermal over temperature stage value changes. Register a thermal sensor. The temperature reported by this thermal sensor device should reflect the actual PMIC die temperature if an ADC is present on the given PMIC. If no ADC is present, then the reported temperature should be estimated from the over temperature stage value. Cc: David Collins Signed-off-by: Ivan T. Ivanov Signed-off-by: Eduardo Valentin .../bindings/thermal/qcom-spmi-temp-alarm.txt | 57 ++++ drivers/thermal/Kconfig | 11 + drivers/thermal/Makefile | 1 + drivers/thermal/qcom-spmi-temp-alarm.c | 309 +++++++++++++++++++++ 4 files changed, 378 insertions(+) commit bcdcbbc71125c37195f97314f453ca9a3a4eb758 Author: Javi Merino Date: Wed Feb 18 16:04:25 2015 +0000 thermal: fair_share: generalize the weight concept The fair share governor has the concept of weights, which is the influence of each cooling device in a thermal zone. The current implementation forces the weights of all cooling devices in a thermal zone to add up to a 100. This complicates setups, as you need to know in advance how many cooling devices you are going to have. If you bind a new cooling device, you have to modify all the other cooling devices weights, which is error prone. Furthermore, you can't specify a "default" weight for platforms since that default value depends on the number of cooling devices in the platform. This patch generalizes the concept of weight by allowing any number to be a "weight". Weights are now relative to each other. Platforms that don't specify weights get the same default value for all their cooling devices, so all their cdevs are considered to be equally influential. It's important to note that previous users of the weights don't need to alter the code: percentages continue to work as they used to. This patch just removes the constraint of all the weights in a thermal zone having to add up to a 100. If they do, you get the same behavior as before. If they don't, fair share now works for that platform. Cc: Zhang Rui Cc: Eduardo Valentin Cc: Durgadoss R Acked-by: Durgadoss R Signed-off-by: Javi Merino Signed-off-by: Eduardo Valentin Documentation/thermal/sysfs-api.txt | 12 +++++++++--- drivers/thermal/fair_share.c | 26 +++++++++++++++++++++----- include/linux/thermal.h | 9 ++++++--- 3 files changed, 36 insertions(+), 11 deletions(-) commit db91651311c8b89978b17d27634582c28c33363e Author: Javi Merino Date: Wed Feb 18 16:04:24 2015 +0000 thermal: export weight to sysfs It's useful to have access to the weights for the cooling devices for thermal zones and change them if needed. Export them to sysfs. Cc: Zhang Rui Cc: Eduardo Valentin Signed-off-by: Javi Merino Signed-off-by: Eduardo Valentin Documentation/thermal/sysfs-api.txt | 15 +++++++++++++- drivers/thermal/thermal_core.c | 40 +++++++++++++++++++++++++++++++++++++ drivers/thermal/thermal_core.h | 2 ++ 3 files changed, 56 insertions(+), 1 deletion(-) commit 80b89172f9c3410764e0d962d6494c0af6d6dba8 Author: Javi Merino Date: Wed Feb 18 16:04:23 2015 +0000 thermal: fair_share: fix typo s/asscciated/associated/ Cc: Zhang Rui Cc: Eduardo Valentin Cc: Durgadoss R Reviewed-by: Durgadoss R Signed-off-by: Javi Merino Signed-off-by: Eduardo Valentin drivers/thermal/fair_share.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8b91e2cb24fbba3825d09a412ce2e1966e7c92d1 Author: Javi Merino Date: Wed Feb 18 16:04:22 2015 +0000 thermal: fair_share: use the weight from the thermal instance The fair share governor is not usable with thermal zones that use the bind op and don't populate thermal_zone_parameters, the majority of them. Now that the weight is in the thermal instance, we can use that in the fair share governor to allow every thermal zone to trivially use this governor. Furthermore, this simplifies the code. Cc: Zhang Rui Cc: Eduardo Valentin Cc: Durgadoss R Reviewed-by: Durgadoss R Signed-off-by: Javi Merino Signed-off-by: Eduardo Valentin drivers/thermal/fair_share.c | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) commit 6cd9e9f629f11b9412d4e9aa294c029dbb36b3cf Author: Kapileshwar Singh Date: Wed Feb 18 16:04:21 2015 +0000 thermal: of: fix cooling device weights in device tree Currently you can specify the weight of the cooling device in the device tree but that information is not populated to the thermal_bind_params where the fair share governor expects it to be. The of thermal zone device doesn't have a thermal_bind_params structure and arguably it's better to pass the weight inside the thermal_instance as it is specific to the bind of a cooling device to a thermal zone parameter. Core thermal code is fixed to populate the weight in the instance from the thermal_bind_params, so platform code that was passing the weight inside the thermal_bind_params continue to work seamlessly. While we are at it, create a default value for the weight parameter for those thermal zones that currently don't define it and remove the hardcoded default in of-thermal. Cc: Zhang Rui Cc: "Rafael J. Wysocki" Cc: Len Brown Cc: Peter Feuerer Cc: Darren Hart Cc: Eduardo Valentin Cc: Kukjin Kim Cc: Durgadoss R Signed-off-by: Kapileshwar Singh Signed-off-by: Eduardo Valentin Documentation/thermal/sysfs-api.txt | 4 +++- drivers/acpi/thermal.c | 9 ++++++--- drivers/platform/x86/acerhdf.c | 3 ++- drivers/thermal/db8500_thermal.c | 2 +- drivers/thermal/fair_share.c | 2 +- drivers/thermal/imx_thermal.c | 3 ++- drivers/thermal/of-thermal.c | 5 +++-- drivers/thermal/thermal_core.c | 22 ++++++++++++++++------ drivers/thermal/thermal_core.h | 1 + drivers/thermal/ti-soc-thermal/ti-thermal-common.c | 3 ++- include/linux/thermal.h | 6 +++++- 11 files changed, 42 insertions(+), 18 deletions(-) commit fcba67c94abe83e0e69a65737000ccbb16a4fa03 Author: Linus Lüssing Date: Tue May 5 00:19:35 2015 +0200 net: fix two sparse warnings introduced by IGMP/MLD parsing exports > net/core/skbuff.c:4108:13: sparse: incorrect type in assignment (different base types) > net/ipv6/mcast_snoop.c:63 ipv6_mc_check_exthdrs() warn: unsigned 'offset' is never less than zero. Introduced by 9afd85c9e4552b276e2f4cfefd622bdeeffbbf26 ("net: Export IGMP/MLD message validation code") Reported-by: kbuild test robot Signed-off-by: Linus Lüssing Signed-off-by: David S. Miller net/core/skbuff.c | 2 +- net/ipv6/mcast_snoop.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 4055fad34086dcf5229c43846e0a3cf0fb3692e3 Author: Doug Smythies Date: Sat Apr 11 21:10:26 2015 -0700 intel_pstate: Add tsc collection and keep previous target pstate The intel_pstate driver is difficult to debug and investigate without tsc. Also, it is likely use of tsc, and some version of C0 percentage, will be re-introdcued in futute. There have also been occasions where it is desirebale to know, and confirm, the previous target pstate. This patch brings back tsc, adds previous target pstate, and adds both to the trace data collection. Signed-off-by: Doug Smythies Acked-by: Kristen Carlson Accardi Signed-off-by: Rafael J. Wysocki drivers/cpufreq/intel_pstate.c | 31 +++++++++++++++++++++---------- include/trace/events/power.h | 25 +++++++++++++++++-------- 2 files changed, 38 insertions(+), 18 deletions(-) commit b904f5cce1aeb9a9ee5ca7f1a31c32e1f3487c8b Author: Sudeep Holla Date: Mon Apr 27 10:51:06 2015 +0100 cpufreq: arm_big_little: remove unused cpu-cluster. clock name The "cpu-cluster." used to get the cluster clock is not used by any platform. Moreover __of_clk_get_by_name used in clk_get return error if the "clock-names" in the DT doesn't match this string. When using DT, it's not compulsory to specify the clock name unless there are multiple clock input entries in the consumer. This patch removes the unused clock string from the driver. Acked-by: Viresh Kumar Signed-off-by: Sudeep Holla Signed-off-by: Rafael J. Wysocki drivers/cpufreq/arm_big_little.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 0a95e630b49a30c176daeff39ac2e90f1231604b Author: Sudeep Holla Date: Mon Apr 27 10:51:05 2015 +0100 cpufreq: arm_big_little: check if the frequency is set correctly The actual frequency is set through "clk_change_rate" which is void function. If the underlying hardware fails and returns error, the error is lost in the clk layer. In order to track such failures, we need to read back the frequency(just the cached value as clk_recalc called after clk->ops->set_rate gets the frequency) This patch adds check to see if the frequency is set correctly or if they were any hardware failures and sends the appropriate errors to the cpufreq core. Reviewed-by: Michael Turquette Signed-off-by: Sudeep Holla Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/arm_big_little.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 51b63409b75980753f52edb45da7d1b3e2b9405d Author: Ajay Thomas Date: Thu Apr 30 01:43:23 2015 +0530 powercap / RAPL: Floor frequency setting in Atom SoC CPU Floor frequency is set in BIOS for newer Atom SoCs. This patch handles configuration of floor frequency for different variants of Atom SoCs appropriately and ensures configuration of floor frequency is not done from driver for these newer Atom SoCs. Since address of the register for configuring floor frequency might change for different Atom SoCs, this patch also prevents potential overwriting of wrong registers. Reviewed-by: Jacob Pan Signed-off-by: Ajay Thomas Signed-off-by: Rafael J. Wysocki drivers/powercap/intel_rapl.c | 50 +++++++++++++++++++++++++++++++++++-------- 1 file changed, 41 insertions(+), 9 deletions(-) commit cd10b289520577a56c5d369b9a2e7bbee5698a4b Author: Adrian Hunter Date: Thu Apr 30 17:37:26 2015 +0300 perf tools: Hit all build ids when AUX area tracing We need to include all buildids when a perf.data file contains AUX area tracing data because we do not decode the trace for that purpose because it would take too long. Signed-off-by: Adrian Hunter Acked-by: Jiri Olsa Cc: David Ahern Cc: Frederic Weisbecker Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1430404667-10593-4-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-buildid-list.c | 9 +++++++++ tools/perf/builtin-inject.c | 8 +++++++- tools/perf/builtin-record.c | 10 +++++++++- 3 files changed, 25 insertions(+), 2 deletions(-) commit 03c229906311f3b7232ce134fdd6405288780ed3 Author: Fabian Frederick Date: Fri May 1 10:34:01 2015 +0200 cpufreq: pxa: make pxa_freqs arrays const pxa255_run_freqs and pxa255_turbo_freqs are only read. This patch updates arrays declaration, find_freq_tables() and its callsites. Suggested-by: Joe Perches Signed-off-by: Fabian Frederick Signed-off-by: Rafael J. Wysocki drivers/cpufreq/pxa2xx-cpufreq.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 52352558d288c3dd5aa40f3bbf736fc005e17f7c Author: Fabian Frederick Date: Fri May 1 10:34:00 2015 +0200 cpufreq: pxa: replace typedef pxa_freqs_t by structure typedef is not really useful here. Replace it by structure to improve readability. typedef should only be used in some cases. (See Documentation/CodingStyle Chapter 5 for details). Signed-off-by: Fabian Frederick Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/pxa2xx-cpufreq.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit 99fa298453495ee23801ab500a5fe0138c260edb Author: Adrian Hunter Date: Thu Apr 30 17:37:25 2015 +0300 perf tools: Add AUX area tracing index Add an index of AUX area tracing events within a perf.data file. perf record uses a special user event PERF_RECORD_FINISHED_ROUND to enable sorting of events in chunks instead of having to sort all events altogether. AUX area tracing events contain data that can span back to the very beginning of the recording period. i.e. they do not obey the rules of PERF_RECORD_FINISHED_ROUND. By adding an index, AUX area tracing events can be found in advance and the PERF_RECORD_FINISHED_ROUND approach works as usual. The index is recorded with the auxtrace feature in the perf.data file. A session reads the index but does not process it. An AUX area decoder can queue all the AUX area data in advance using auxtrace_queues__process_index() or otherwise process the index in some custom manner. Signed-off-by: Adrian Hunter Acked-by: Jiri Olsa Cc: David Ahern Cc: Frederic Weisbecker Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1430404667-10593-3-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-inject.c | 15 ++++ tools/perf/builtin-record.c | 15 ++++ tools/perf/util/auxtrace.c | 215 ++++++++++++++++++++++++++++++++++++++++++++ tools/perf/util/auxtrace.h | 35 ++++++++ tools/perf/util/header.c | 31 ++++++- tools/perf/util/session.c | 2 + tools/perf/util/session.h | 1 + 7 files changed, 310 insertions(+), 4 deletions(-) commit 64a7e61f11a22de3571b7f43f231e9b3aab00f1e Author: Adrian Hunter Date: Thu Apr 30 17:37:24 2015 +0300 perf report: Fix placement of itrace option in documentation Unwittingly the itrace options for perf report ended up below the Overhead Calculation section. Move it back with the other options. Signed-off-by: Adrian Hunter Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1430404667-10593-2-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/perf-report.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit bcf6ad8a4a3d002e8bc8f6639cdc119168f4e87b Author: Rafael J. Wysocki Date: Mon May 4 22:53:35 2015 +0200 sched / idle: Eliminate the "reflect" check from cpuidle_idle_call() Since cpuidle_reflect() should only be called if the idle state to enter was selected by cpuidle_select(), there is the "reflect" variable in cpuidle_idle_call() whose value is used to determine whether or not that is the case. However, if the entire code run between the conditional setting "reflect" and the call to cpuidle_reflect() is moved to a separate function, it will be possible to call that new function in both branches of the conditional, in which case cpuidle_reflect() will only need to be called from one of them too and the "reflect" variable won't be necessary any more. This eliminates one check made by cpuidle_idle_call() on the majority of its invocations, so change the code as described. Signed-off-by: Rafael J. Wysocki Reviewed-by: Daniel Lezcano Acked-by: Peter Zijlstra (Intel) kernel/sched/idle.c | 90 +++++++++++++++++++++++++++-------------------------- 1 file changed, 46 insertions(+), 44 deletions(-) commit a802ea96454570f3c526dd9d7ad8c706e570444d Author: Rafael J. Wysocki Date: Mon May 4 22:53:28 2015 +0200 cpuidle: Check the sign of index in cpuidle_reflect() Avoid calling the governor's ->reflect method if the state index passed to cpuidle_reflect() is negative. This allows the analogous check to be dropped from menu_reflect(), so do that too, and ensures that arbitrary error codes can be passed to cpuidle_reflect() as the index with no adverse consequences. Signed-off-by: Rafael J. Wysocki Reviewed-by: Daniel Lezcano Acked-by: Peter Zijlstra (Intel) drivers/cpuidle/cpuidle.c | 2 +- drivers/cpuidle/governors/menu.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit 82f663277d0db854e8978e5f89fd88f6df75a4a4 Author: Rafael J. Wysocki Date: Mon May 4 22:53:22 2015 +0200 sched / idle: Move the default idle call code to a separate function Move the code under the "use_default" label in cpuidle_idle_call() into a separate (new) function. This just allows the subsequent changes to be more stratightforward. Signed-off-by: Rafael J. Wysocki Reviewed-by: Daniel Lezcano Acked-by: Peter Zijlstra (Intel) kernel/sched/idle.c | 43 ++++++++++++++++++++++++------------------- 1 file changed, 24 insertions(+), 19 deletions(-) commit 20f34165a92427d16112c4420e0c22fa0e40b3bd Merge: 5ebe6af 6fe9e7c Author: Rafael J. Wysocki Date: Mon May 4 22:34:58 2015 +0200 Merge tag 'ras_for_4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras into acpi-apei Pull GHES changes for 4.2 from Borislav Petkov: "GHES: Seriously speedup and cleanup NMI handler (Jiri Kosina and Borislav Petkov) This is the result of us seeing this during boot [ 24.332560] INFO: NMI handler (ghes_notify_nmi) took too long to run: 3.265 msecs [ 24.332567] INFO: NMI handler (ghes_notify_nmi) took too long to run: 5.946 msecs [ 24.332568] INFO: NMI handler (ghes_notify_nmi) took too long to run: 5.948 msecs and a report of people running perf stat and the machine softlocking. "hest_disable" was helping in this case, which made us look at that particular NMI handler. It was grabbing a lock each time it is run and on each CPU. But this is not needed as the GHES sources are global and they need only a single reader. This patchset does that and cleans up the handler in the process." * tag 'ras_for_4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras: GHES: Make NMI handler have a single reader GHES: Elliminate double-loop in the NMI handler GHES: Panic right after detection GHES: Carve out the panic functionality GHES: Carve out error queueing in a separate function commit f9161585b2de32cf737678455297e47db865d292 Merge: c373dac a1e869d Author: David S. Miller Date: Mon May 4 15:37:08 2015 -0400 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-05-04 This series contains updates to igb, e100, e1000e and ixgbe. Todd cleans up igb_enable_mas() since it should only be called for the 82575 silicon and has no clear return, so modify the function to void. Jean Sacren found upon inspection that 'err' did not need to be initialized, since it is immediately overwritten. Alex Duyck provides two patches for e1000e, the first cleans up the handling VLAN_HLEN as a part of max frame size. Fixes the issue: c751a3d58cf2d ("e1000e: Correctly include VLAN_HLEN when changing interface MTU"). The second fixes an issue where the driver was not allowing jumbo frames to be enabled when CRC stripping was disabled, however it was allowing CRC stripping to be disabled while jumbo frames were enabled. Jeff (me) fixes a warning found on PPC where the use of do_div() needed to use u64 arg and not s64. Mark provides three ixgbe patches, first to fix the Intel On-chip System Fabric (IOSF) Sideband message interfaces, to serialize access using both PHY bits in the SWFW_SEMAPHORE register. Then fixes how semaphore bits were released, since they should be released in reverse of the order that they were taken. Lastly updates ixgbe to use a signed type to hold error codes, since error codes are negative, so consistently use signed types when handling them. v2: dropped the previous #6-#8 patches by Hiroshi Shimanoto based on feedback from Or Gerlitz (and David Miller) that it appears there needs to be further discussion on how this gets implemented. ==================== Signed-off-by: David S. Miller commit c373dac522c2aee864ac7f5394c91cfc1afc3dd2 Merge: 29a1ff6 90bdfcb Author: David S. Miller Date: Mon May 4 15:04:02 2015 -0400 Merge branch 'tipc-topology-cleanup' Ying Xue says: ==================== tipc: cleanup topology server Not only function names declared in subscr.c are very confused, but also topology server's locking policy is not designed very well, for instance, usually leading to panic in some special corner cases. In this series, we attempt to eliminate the confusion of function names and simplify topology server's locking policy to solve above mentioned issues. More importantly, the change will make relevant code easily understandable and maintainable. ==================== Signed-off-by: David S. Miller commit 90bdfcb76f7d3b4a763ded3242277578ef22eda4 Author: Ying Xue Date: Mon May 4 10:36:48 2015 +0800 tipc: deal with return value of tipc_conn_new callback Once tipc_conn_new() returns NULL, the connection should be shut down immediately, otherwise, oops may happen due to the NULL pointer. Signed-off-by: Ying Xue Reviewed-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/server.c | 4 ++++ 1 file changed, 4 insertions(+) commit a13683f292b2ce697f71fa3788a9335ebcb32676 Author: Ying Xue Date: Mon May 4 10:36:47 2015 +0800 tipc: adjust locking policy of subscription Currently subscriber's lock protects not only subscriber's subscription list but also all subscriptions linked into the list. However, as all members of subscription are never changed after they are initialized, it's unnecessary for subscription to be protected under subscriber's lock. If the lock is used to only protect subscriber's subscription list, the adjustment not only makes the locking policy simpler, but also helps to avoid a deadlock which may happen once creating a subscription is failed. Signed-off-by: Ying Xue Reviewed-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/subscr.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 00bc00a9384c306cdd48611a53b955d936349bf6 Author: Ying Xue Date: Mon May 4 10:36:46 2015 +0800 tipc: involve reference counter for subscriber At present subscriber's lock is used to protect the subscription list of subscriber as well as subscriptions linked into the list. While one or all subscriptions are deleted through iterating the list, the subscriber's lock must be held. Meanwhile, as deletion of subscription may happen in subscription timer's handler, the lock must be grabbed in the function as well. When subscription's timer is terminated with del_timer_sync() during above iteration, subscriber's lock has to be temporarily released, otherwise, deadlock may occur. However, the temporary release may cause the double free of a subscription as the subscription is not disconnected from the subscription list. Now if a reference counter is introduced to subscriber, subscription's timer can be asynchronously stopped with del_timer(). As a result, the issue is not only able to be fixed, but also relevant code is pretty readable and understandable. Signed-off-by: Ying Xue Reviewed-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/subscr.c | 120 +++++++++++++++++++++++------------------------------- 1 file changed, 52 insertions(+), 68 deletions(-) commit 1b764828add9feaa18a8f916a79b954ac8a20a73 Author: Ying Xue Date: Mon May 4 10:36:45 2015 +0800 tipc: introduce tipc_subscrb_create routine Introducing a new function makes the purpose of tipc_subscrb_connect_cb callback routine more clear. Signed-off-by: Ying Xue Reviewed-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/subscr.c | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) commit 57f1d1868fb5d71a20bfb1bc807274471c2ff459 Author: Ying Xue Date: Mon May 4 10:36:44 2015 +0800 tipc: rename functions defined in subscr.c When a topology server accepts a connection request from its client, it allocates a connection instance and a tipc_subscriber structure object. The former is used to communicate with client, and the latter is often treated as a subscriber which manages all subscription events requested from a same client. When a topology server receives a request of subscribing name services from a client through the connection, it creates a tipc_subscription structure instance which is seen as a subscription recording what name services are subscribed. In order to manage all subscriptions from a same client, topology server links them into the subscrp_list of the subscriber. So subscriber and subscription completely represents different meanings respectively, but function names associated with them make us so confused that we are unable to easily tell which function is against subscriber and which is to subscription. So we want to eliminate the confusion by renaming them. Signed-off-by: Ying Xue Reviewed-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/core.c | 4 +- net/tipc/name_table.c | 34 ++++++--------- net/tipc/subscr.c | 116 ++++++++++++++++++++++---------------------------- net/tipc/subscr.h | 18 ++++---- 4 files changed, 75 insertions(+), 97 deletions(-) commit 29a1ff6596fc6fbd1a2de0f2301bcd301dfcb4eb Merge: c19ae86 9afd85c Author: David S. Miller Date: Mon May 4 14:49:23 2015 -0400 Merge branch 'igmp_mld_export' Linus Lüssing says: ==================== Exporting IGMP/MLD checking from bridge code The multicast optimizations in batman-adv are yet only usable and enabled in non-bridged scenarios. To be able to support bridged setups batman-adv needs to be able to detect IGMP/MLD queriers and reports on mesh nodes without bridges, too. See the following link for details: http://www.open-mesh.org/projects/batman-adv/wiki/Multicast-optimizations-listener-reports To avoid duplicate code between the bridge and batman-adv, the IGMP/MLD message validation code is moved from the bridge to the IPv4/IPv6 stack. On the way, some refactoring to increase readability and to iron out some subtle differences between the IGMP and MLD parsing code is done. ==================== Signed-off-by: David S. Miller commit 9afd85c9e4552b276e2f4cfefd622bdeeffbbf26 Author: Linus Lüssing Date: Sat May 2 14:01:07 2015 +0200 net: Export IGMP/MLD message validation code With this patch, the IGMP and MLD message validation functions are moved from the bridge code to IPv4/IPv6 multicast files. Some small refactoring was done to enhance readibility and to iron out some differences in behaviour between the IGMP and MLD parsing code (e.g. the skb-cloning of MLD messages is now only done if necessary, just like the IGMP part always did). Finally, these IGMP and MLD message validation functions are exported so that not only the bridge can use it but batman-adv later, too. Signed-off-by: Linus Lüssing Signed-off-by: David S. Miller include/linux/igmp.h | 1 + include/linux/skbuff.h | 3 + include/net/addrconf.h | 1 + net/bridge/br_multicast.c | 218 +++++++--------------------------------------- net/core/skbuff.c | 87 ++++++++++++++++++ net/ipv4/igmp.c | 162 ++++++++++++++++++++++++++++++++++ net/ipv6/Makefile | 1 + net/ipv6/mcast_snoop.c | 213 ++++++++++++++++++++++++++++++++++++++++++++ 8 files changed, 498 insertions(+), 188 deletions(-) commit 3c9e4f870012350a36dc3091c7a57f5ba2799afe Author: Linus Lüssing Date: Sat May 2 14:01:06 2015 +0200 bridge: multicast: call skb_checksum_{simple_, }validate Let's use these new, neat helpers. Signed-off-by: Linus Lüssing Acked-by: Stephen Hemminger Signed-off-by: David S. Miller net/bridge/br_multicast.c | 28 ++++------------------------ 1 file changed, 4 insertions(+), 24 deletions(-) commit fd7b025a238d0a5440bfa26c585eb78097bf48dc Author: Álvaro Fernández Rojas Date: Tue Apr 28 09:50:50 2015 -0700 leds: add BCM6328 LED driver This adds support for the LED controller on Broadcom's BCM6328. Signed-off-by: Álvaro Fernández Rojas Signed-off-by: Jonas Gorski Acked-by: Jacek Anaszewski Signed-off-by: Bryan Wu drivers/leds/Kconfig | 8 + drivers/leds/Makefile | 1 + drivers/leds/leds-bcm6328.c | 413 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 422 insertions(+) commit 6e4b55e842a6cf3c5048b864c7a02f5a7a95ea3d Author: Álvaro Fernández Rojas Date: Tue Apr 28 09:50:49 2015 -0700 leds: add DT binding for BCM6328 LED controller This adds device tree binding documentation for the Broadcom BCM6328 LED controller. Signed-off-by: Álvaro Fernández Rojas Signed-off-by: Jonas Gorski Acked-by: Jacek Anaszewski Signed-off-by: Bryan Wu .../devicetree/bindings/leds/leds-bcm6328.txt | 309 +++++++++++++++++++++ 1 file changed, 309 insertions(+) commit 49c34b8e0f43a6a9179b9d9894868b911da8501e Author: Jacek Anaszewski Date: Thu Apr 30 03:34:57 2015 -0700 leds: Add driver for AAT1290 flash LED controller This patch adds a driver for the 1.5A Step-Up Current Regulator for Flash LEDs. The device is programmed through a Skyworks proprietary AS2Cwire serial digital interface. Signed-off-by: Jacek Anaszewski Acked-by: Kyungmin Park Acked-by: Sakari Ailus Cc: Richard Purdie Signed-off-by: Bryan Wu drivers/leds/Kconfig | 8 + drivers/leds/Makefile | 1 + drivers/leds/leds-aat1290.c | 451 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 460 insertions(+) commit 2269fe093197ade0202128cbd08d8e1c253f1fcb Author: Jacek Anaszewski Date: Tue Apr 28 00:18:44 2015 -0700 DT: Add documentation for the Skyworks AAT1290 This patch adds device tree binding documentation for 1.5A Step-Up Current Regulator for Flash LEDs. Signed-off-by: Jacek Anaszewski Acked-by: Kyungmin Park Acked-by: Sakari Ailus Cc: Richard Purdie Cc: devicetree@vger.kernel.org Signed-off-by: Bryan Wu .../devicetree/bindings/leds/leds-aat1290.txt | 41 ++++++++++++++++++++++ 1 file changed, 41 insertions(+) commit a43f6a86ad83a74cff78121322b4197de911eb64 Author: Jacek Anaszewski Date: Thu Apr 30 03:35:10 2015 -0700 leds: Add support for max77693 mfd flash cell This patch adds led-flash support to Maxim max77693 chipset. A device can be exposed to user space through LED subsystem sysfs interface. Device supports up to two leds which can work in flash and torch mode. The leds can be triggered externally or by software. Signed-off-by: Jacek Anaszewski Signed-off-by: Andrzej Hajda Acked-by: Kyungmin Park Cc: Richard Purdie Acked-by: Sakari Ailus Signed-off-by: Bryan Wu drivers/leds/Kconfig | 10 + drivers/leds/Makefile | 1 + drivers/leds/leds-max77693.c | 980 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 991 insertions(+) commit 20f56758b04364c3c139edbffde8cfaf0307edee Author: Jacek Anaszewski Date: Tue Apr 28 00:18:41 2015 -0700 leds: unify the location of led-trigger API Part of led-trigger API was in the private drivers/leds/leds.h header. Move it to the include/linux/leds.h header to unify the API location and announce it as public. It has been already exported from led-triggers.c with EXPORT_SYMBOL_GPL macro. The no-op definitions are changed from macros to inline to match the style of the surrounding code. Signed-off-by: Jacek Anaszewski Cc: Richard Purdie Acked-by: Sakari Ailus Signed-off-by: Bryan Wu drivers/leds/leds.h | 24 ------------------------ include/linux/leds.h | 25 +++++++++++++++++++++++++ 2 files changed, 25 insertions(+), 24 deletions(-) commit 0e14e0bfe85dd22ba19446bdfdc2cf0e941b9731 Author: Jacek Anaszewski Date: Thu Apr 16 00:30:50 2015 -0700 leds: gpio: Fix error handling for led name null pointer case Make sure that already registered LEDs will be torn down properly if the name of the next LED to create is unavailable. Signed-off-by: Jacek Anaszewski Cc: Richard Purdie Signed-off-by: Bryan Wu drivers/leds/leds-gpio.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 65c6b7e3ab70effc150dacc9c2fbd6581925dd53 Author: Sebastian Hesselbarth Date: Tue Apr 14 14:23:30 2015 -0700 leds: gpio: Fix device teardown on probe deferral In gpio_leds_create(), when devm_get_gpiod_from_child() fails with -EPROBE_DEFER on the second gpio led to be created, the first already registered led is not torn down properly. This causes create_gpio_led() to fail for the first led on re-probe(). Fix this misbehaviour by incrementing num_leds only if all potentially failing calls completed successfully. Signed-off-by: Sebastian Hesselbarth Acked-by: Jacek Anaszewski Signed-off-by: Bryan Wu drivers/leds/leds-gpio.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit e370d010a5fe385ae65635ce0dbb1eff0e25059c Author: Andrew Lunn Date: Tue Mar 17 15:08:27 2015 -0700 leds: tlc591xx: Driver for the TI 8/16 Channel i2c LED driver The TLC59116 is an I2C bus controlled 16-channel LED driver. The TLC59108 is an I2C bus controlled 8-channel LED driver, which is very similar to the TLC59116. Each LED output has its own 8-bit fixed-frequency PWM controller to control the brightness of the LED. The LEDs can also be fixed off and on, making them suitable for use as GPOs. This is based on a driver from Belkin, but has been extensively rewritten and extended to support both 08 and 16 versions. Signed-off-by: Andrew Lunn Tested-by: Imre Kaloz Cc: Matthew.Fatheree@belkin.com Acked-by: Jacek Anaszewski Signed-off-by: Bryan Wu drivers/leds/Kconfig | 8 ++ drivers/leds/Makefile | 1 + drivers/leds/leds-tlc591xx.c | 300 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 309 insertions(+) commit e0d4ffc367b443205c83220078728a5c49b3ad6e Author: Andrew Lunn Date: Tue Mar 17 15:08:26 2015 -0700 leds: tlc591xx: Document binding for the TI 8/16 Channel i2c LED driver Document the binding for the TLC591xx LED driver. Signed-off-by: Andrew Lunn Tested-by: Imre Kaloz Cc: Matthew.Fatheree@belkin.com Acked-by: Jacek Anaszewski Signed-off-by: Bryan Wu .../devicetree/bindings/leds/leds-tlc591xx.txt | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit 71115b30a3f55ceb52e41d80c6101960248195d1 Author: Tony Lindgren Date: Mon May 4 10:49:36 2015 -0700 ARM: OMAP2+: Remove legacy booting support for Overo We've been moving all omap2+ based systems to boot in device tree only mode for a few years now. Only omap3 has legacy booting support remaining. Most omap3 boards already have related arch/arm/boot/*.dts* files for booting with device tree. This board has support for device tree based booting, and we've been printing warnings about the legacy booting being deprecated for a few merge cycles now. Let's attempt to remove the legacy booting for it. The reason for removing the legacy booting support now rather than later is we can simply revert this patch if necessary if we run into some unexpected issues that are not trivial to fix for the device tree based booting. Cc: Florian Vaussard Acked-by: Ash Charles Signed-off-by: Tony Lindgren arch/arm/mach-omap2/Kconfig | 6 - arch/arm/mach-omap2/Makefile | 1 - arch/arm/mach-omap2/board-overo.c | 571 -------------------------------------- 3 files changed, 578 deletions(-) commit 27aa6b71d3ddd8e94613a890f06474db812cf591 Author: Vladimir Kondratiev Date: Thu Apr 30 16:25:11 2015 +0300 wil6210: support WSC for STA mode WSC connection is secure (privacy bit set in various frames) but authentication suite, keys etc. are absent. Support this mode in the connect WMI command. Detect WSC by having 'sme->privacy' and no RSN IE. Inform firmware about WSC session by setting dot11_auth_mode to WMI_AUTH11_WSC. Signed-off-by: Vladimir Kondratiev Signed-off-by: Kalle Valo drivers/net/wireless/ath/wil6210/cfg80211.c | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) commit 230d8442f452509b371e8765218b3a876d5b575c Author: Vladimir Kondratiev Date: Thu Apr 30 16:25:10 2015 +0300 wil6210: broadcast for secure link Introduce 2 types of GTK, Tx (for this STA) and Rx (for each peer). Now, AP has only Tx GTK, STA - only Rx one. PBSS not supported yet; for it, continue using pseudo-DMS. Handle per-vring .1x state, update it from WMI_VRING_EN_EVENTID event. This allows unification for unicast and broadcast vrings. This mechanism replaces former per-CID "data_port_open" Signed-off-by: Vladimir Kondratiev Signed-off-by: Kalle Valo drivers/net/wireless/ath/wil6210/cfg80211.c | 64 +++++++++++++++++++++------ drivers/net/wireless/ath/wil6210/debugfs.c | 14 +++--- drivers/net/wireless/ath/wil6210/main.c | 6 +-- drivers/net/wireless/ath/wil6210/txrx.c | 46 ++++++++++--------- drivers/net/wireless/ath/wil6210/wil6210.h | 7 +-- drivers/net/wireless/ath/wil6210/wmi.c | 68 ++++++++--------------------- drivers/net/wireless/ath/wil6210/wmi.h | 25 +++++++---- 7 files changed, 124 insertions(+), 106 deletions(-) commit dc16427bbe65aeec416f490df73cdeeef5ab62c0 Author: Vladimir Kondratiev Date: Thu Apr 30 16:25:09 2015 +0300 wil6210: Add pmc debug mechanism memory management Pmc is a hardware debug mechanism which allows capturing phy data, packets, and internally generated events and messages synchronized and time stamped by the hardware. It requires memory buffers allocated by the driver in order to be used by hardware dma to upstream real time debug data to host memory. Driver will handle memory allocation and release, and fetching the data from the memory to application layer via debug file system. The configuration of pmc is handled entirely by the application layer. Signed-off-by: Vladimir Shulman Signed-off-by: Vladimir Kondratiev Signed-off-by: Kalle Valo drivers/net/wireless/ath/wil6210/Makefile | 1 + drivers/net/wireless/ath/wil6210/debugfs.c | 93 +++++++ drivers/net/wireless/ath/wil6210/pmc.c | 375 +++++++++++++++++++++++++++++ drivers/net/wireless/ath/wil6210/pmc.h | 27 +++ drivers/net/wireless/ath/wil6210/wil6210.h | 14 ++ drivers/net/wireless/ath/wil6210/wmi.h | 15 ++ 6 files changed, 525 insertions(+) commit 1e7e5a0d318229b5ad12efeee690b8d0d5c980ff Author: Vladimir Kondratiev Date: Thu Apr 30 16:25:08 2015 +0300 wil6210: fix for probe_resp IE's Parameters for the start_ap and change_bcon contains probe response template and probe response IE's. supplicant puts in the proberesp_ies only WPS related IE's, while firmware need all IE's, most notable is RSN that is not included in the proberesp_ies. Always use IE's provided by the bcon->probe_resp Signed-off-by: Vladimir Kondratiev Signed-off-by: Kalle Valo drivers/net/wireless/ath/wil6210/cfg80211.c | 31 +++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) commit bb6c8dccfe2302a97d8edd4ba5e6234a8fd3c626 Author: Vladimir Kondratiev Date: Thu Apr 30 16:25:07 2015 +0300 wil6210: fix boot loader "ready" indication Boot loader "ready" indication has changed from "bit0 set" to "only bit0 set". This is to address hardware glitches. Due to glitches, sometimes right after reset register reads 0xffffffff, or (rarely) other garbage. Reflect this in the driver Signed-off-by: Vladimir Kondratiev Signed-off-by: Kalle Valo drivers/net/wireless/ath/wil6210/main.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 48c963af7432f974348d9a006914dbaf5e7c7140 Author: Vladimir Kondratiev Date: Thu Apr 30 16:25:06 2015 +0300 wil6210: update Rx descriptor fields Rx descriptor fields accordingly to the updated hardware documentation Signed-off-by: Vladimir Kondratiev Signed-off-by: Kalle Valo drivers/net/wireless/ath/wil6210/txrx.c | 2 +- drivers/net/wireless/ath/wil6210/txrx.h | 24 ++++++++++++++++-------- 2 files changed, 17 insertions(+), 9 deletions(-) commit a54a40dae67e4ee04df4dc36e7b89639131dd8e3 Author: Vladimir Kondratiev Date: Thu Apr 30 16:25:05 2015 +0300 wil6210: increase timeout for the "echo" command Sometimes it takes for the firmware more than 20ms to react on "echo" command after reset. Increase timeout from 20 to 50ms Signed-off-by: Vladimir Kondratiev Signed-off-by: Kalle Valo drivers/net/wireless/ath/wil6210/wmi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 11cd7b8c2773d01e4b40e38568ae62c471a2ea10 Author: Tony Lindgren Date: Mon May 4 10:48:07 2015 -0700 ARM: OMAP2+: Remove legacy booting support for cm-t35 We've been moving all omap2+ based systems to boot in device tree only mode for a few years now. Only omap3 has legacy booting support remaining. Most omap3 boards already have related arch/arm/boot/*.dts* files for booting with device tree. This board has support for device tree based booting, and we've been printing warnings about the legacy booting being deprecated for a few merge cycles now. Let's attempt to remove the legacy booting for it. The reason for removing the legacy booting support now rather than later is we can simply revert this patch if necessary if we run into some unexpected issues that are not trivial to fix for the device tree based booting. Cc: Dmitry Lifshitz Cc: Igor Grinberg Signed-off-by: Tony Lindgren arch/arm/mach-omap2/Kconfig | 10 - arch/arm/mach-omap2/Makefile | 1 - arch/arm/mach-omap2/board-cm-t35.c | 769 ------------------------------------- 3 files changed, 780 deletions(-) commit d915354675a3baae834c9aae845bbb7a0fcd453d Author: Kalle Valo Date: Tue Apr 28 20:19:30 2015 +0300 ath10k: add ATH10K_FW_FEATURE_IGNORE_OTP_RESULT qca6174 otp binary seems to always return an error to the host, even if the calibration succeeded. Add a firmware feature flag to detect if the firmware image which have this problem and workaround the issue in ath10k by ignoring the error code. I was also considering making this hw specific flag but as this is strictly a firmware issue it's best to handle this via a firmware feature flag so that it will be easy to disable the workaround. Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.c | 4 +++- drivers/net/wireless/ath/ath10k/core.h | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) commit 9a122de678e11fb70b85c6b319b4b1359d8fcb5e Author: Lars-Peter Clausen Date: Mon May 4 18:46:14 2015 +0200 ASoC: ssm4567: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/ssm4567.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fa68cfd4c1d3f1a277777942966c9f94d78d1c53 Author: Lars-Peter Clausen Date: Mon May 4 18:46:13 2015 +0200 ASoC: ssm2602: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm with snd_soc_codec_get_dapm(). Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/ssm2602.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit aa3a0f2ec79b72acfb48ef8c326da711b2a096e6 Author: Lars-Peter Clausen Date: Mon May 4 18:46:12 2015 +0200 ASoC: ssm2518: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/ssm2518.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a34c31a9892df5a11d64f5dda21a9d9b63ceb10f Author: Lars-Peter Clausen Date: Mon May 4 18:46:11 2015 +0200 ASoC: adav80x: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/adav80x.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit f21d1e22eeeb99794944fd6eedf92c69f125e37f Author: Lars-Peter Clausen Date: Mon May 4 18:46:10 2015 +0200 ASoC: adau1977: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level() and all remaining access to codec->dapm with snd_soc_codec_get_dapm(). Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/adau1977.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 33c7b140935a93a97cd09a401932c94fae93968b Author: Lars-Peter Clausen Date: Mon May 4 18:46:09 2015 +0200 ASoC: adau17x1: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm with snd_soc_codec_get_dapm(). Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/adau1761.c | 26 ++++++++++++-------------- sound/soc/codecs/adau1781.c | 9 ++++----- sound/soc/codecs/adau17x1.c | 20 ++++++++++---------- 3 files changed, 26 insertions(+), 29 deletions(-) commit 9953a8f214f3cd0b99f5c8dbefdb5a6fb3b2dc28 Author: Lars-Peter Clausen Date: Mon May 4 18:46:08 2015 +0200 ASoC: ad1836: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm with snd_soc_codec_get_dapm(). Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/ad1836.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c4ba51ba1c8f8e9dd51f63069eec88580f0e1d01 Author: Fang, Yang A Date: Thu Apr 23 10:23:02 2015 -0700 ASoC: Intel: Support rt5650 codec for Cherrytrail & Braswell rt5650 and rt5645 are similar codec so reuse the cht_bsw_rt5645 driver Signed-off-by: Fang, Yang A Acked-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/Kconfig | 4 +- sound/soc/intel/boards/cht_bsw_rt5645.c | 93 +++++++++++++++++++++++++++++---- 2 files changed, 84 insertions(+), 13 deletions(-) commit 0c160d495b5616e071bb4f873812e8f473128149 Author: Namhyung Kim Date: Tue Apr 21 13:55:06 2015 +0900 perf kmem: Add kmem.default config option Currently perf kmem command will select --slab if neither --slab nor --page is given for backward compatibility. Add kmem.default config option to select the default value ('page' or 'slab'). # cat ~/.perfconfig [kmem] default = page # perf kmem stat SUMMARY (page allocator) ======================== Total allocation requests : 1,518 [ 6,096 KB ] Total free requests : 1,431 [ 5,748 KB ] Total alloc+freed requests : 1,330 [ 5,344 KB ] Total alloc-only requests : 188 [ 752 KB ] Total free-only requests : 101 [ 404 KB ] Total allocation failures : 0 [ 0 KB ] ... Signed-off-by: Namhyung Kim Acked-by: Pekka Enberg Cc: David Ahern Cc: Jiri Olsa Cc: Joonsoo Kim Cc: Minchan Kim Cc: Peter Zijlstra Cc: Taeung Song Cc: linux-mm@kvack.org Link: http://lkml.kernel.org/r/1429592107-1807-6-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-kmem.c | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) commit 0e11115644b39ff9e986eb308b6c44ca75cd475f Author: Namhyung Kim Date: Tue Apr 21 13:55:05 2015 +0900 perf kmem: Print gfp flags in human readable string Save libtraceevent output and print it in the header. # perf kmem stat --page --caller # # GFP flags # --------- # 00000010: NI: GFP_NOIO # 000000d0: K: GFP_KERNEL # 00000200: NWR: GFP_NOWARN # 000084d0: K|R|Z: GFP_KERNEL|GFP_REPEAT|GFP_ZERO # 000200d2: HU: GFP_HIGHUSER # 000200da: HUM: GFP_HIGHUSER_MOVABLE # 000280da: HUM|Z: GFP_HIGHUSER_MOVABLE|GFP_ZERO # 002084d0: K|R|Z|NT: GFP_KERNEL|GFP_REPEAT|GFP_ZERO|GFP_NOTRACK # 0102005a: NF|HW|M: GFP_NOFS|GFP_HARDWALL|GFP_MOVABLE --------------------------------------------------------------------------------------------------------- Total alloc (KB) | Hits | Order | Mig.type | GFP flags | Callsite --------------------------------------------------------------------------------------------------------- 60 | 15 | 0 | UNMOVABL | K|R|Z|NT | pte_alloc_one 40 | 10 | 0 | MOVABLE | HUM|Z | handle_mm_fault 24 | 6 | 0 | MOVABLE | HUM | do_wp_page 24 | 6 | 0 | UNMOVABL | K | __pollwait ... Requested-by: Joonsoo Kim Suggested-by: Minchan Kim Signed-off-by: Namhyung Kim Acked-by: Pekka Enberg Tested-by: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Joonsoo Kim Cc: Minchan Kim Cc: Peter Zijlstra Cc: linux-mm@kvack.org Link: http://lkml.kernel.org/r/1429592107-1807-5-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-kmem.c | 222 +++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 209 insertions(+), 13 deletions(-) commit 2a7ef02c9ca0172cd48945407893f38c2438e754 Author: Namhyung Kim Date: Tue Apr 21 13:55:04 2015 +0900 perf kmem: Add --live option for current allocation stat Currently 'perf kmem stat --page' shows total (page) allocation stat by default, but sometimes one might want to see live (total alloc-only) requests/pages only. The new --live option does this by subtracting freed allocation from the stat. E.g.: # perf kmem stat --page SUMMARY (page allocator) ======================== Total allocation requests : 988,858 [ 4,045,368 KB ] Total free requests : 886,484 [ 3,624,996 KB ] Total alloc+freed requests : 885,969 [ 3,622,628 KB ] Total alloc-only requests : 102,889 [ 422,740 KB ] Total free-only requests : 515 [ 2,368 KB ] Total allocation failures : 0 [ 0 KB ] Order Unmovable Reclaimable Movable Reserved CMA/Isolated ----- ------------ ------------ ------------ ------------ ------------ 0 172,173 3,083 806,686 . . 1 284 . . . . 2 6,124 58 . . . 3 114 335 . . . 4 . . . . . 5 . . . . . 6 . . . . . 7 . . . . . 8 . . . . . 9 . . 1 . . 10 . . . . . # perf kmem stat --page --live SUMMARY (page allocator) ======================== Total allocation requests : 988,858 [ 4,045,368 KB ] Total free requests : 886,484 [ 3,624,996 KB ] Total alloc+freed requests : 885,969 [ 3,622,628 KB ] Total alloc-only requests : 102,889 [ 422,740 KB ] Total free-only requests : 515 [ 2,368 KB ] Total allocation failures : 0 [ 0 KB ] Order Unmovable Reclaimable Movable Reserved CMA/Isolated ----- ------------ ------------ ------------ ------------ ------------ 0 2,214 3,025 97,156 . . 1 59 . . . . 2 19 58 . . . 3 23 335 . . . 4 . . . . . 5 . . . . . 6 . . . . . 7 . . . . . 8 . . . . . 9 . . . . . 10 . . . . . # Signed-off-by: Namhyung Kim Acked-by: Pekka Enberg Tested-by: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Jiri Olsa Cc: Joonsoo Kim Cc: Minchan Kim Cc: Peter Zijlstra Cc: linux-mm@kvack.org Link: http://lkml.kernel.org/r/1429592107-1807-4-git-send-email-namhyung@kernel.org [ Added examples to the changeset log ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/perf-kmem.txt | 5 ++ tools/perf/builtin-kmem.c | 110 ++++++++++++++++++++------------- 2 files changed, 73 insertions(+), 42 deletions(-) commit fb4f313d304b0a5120e870a6cd9ecf90c1023037 Author: Namhyung Kim Date: Tue Apr 21 13:55:03 2015 +0900 perf kmem: Support sort keys on page analysis Add new sort keys for page: page, order, migtype, gfp - existing 'bytes', 'hit' and 'callsite' sort keys also work for page. Note that -s/--sort option should be preceded by either of --slab or --page option to determine where the sort keys applies. Now it properly groups and sorts allocation stats - so same page/caller with different order/migtype/gfp will be printed on a different line. # perf kmem stat --page --caller -l 10 -s order,hit ----------------------------------------------------------------------------- Total alloc (KB) | Hits | Order | Mig.type | GFP flags | Callsite ----------------------------------------------------------------------------- 64 | 4 | 2 | RECLAIM | 00285250 | new_slab 50,144 | 12,536 | 0 | MOVABLE | 0102005a | __page_cache_alloc 52 | 13 | 0 | UNMOVABL | 002084d0 | pte_alloc_one 40 | 10 | 0 | MOVABLE | 000280da | handle_mm_fault 28 | 7 | 0 | UNMOVABL | 000000d0 | __pollwait 20 | 5 | 0 | MOVABLE | 000200da | do_wp_page 20 | 5 | 0 | MOVABLE | 000200da | do_cow_fault 16 | 4 | 0 | UNMOVABL | 00000200 | __tlb_remove_page 16 | 4 | 0 | UNMOVABL | 000084d0 | __pmd_alloc 8 | 2 | 0 | UNMOVABL | 000084d0 | __pud_alloc ... | ... | ... | ... | ... | ... ----------------------------------------------------------------------------- Signed-off-by: Namhyung Kim Acked-by: Pekka Enberg Tested-by: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Jiri Olsa Cc: Joonsoo Kim Cc: Minchan Kim Cc: Peter Zijlstra Cc: linux-mm@kvack.org Link: http://lkml.kernel.org/r/1429592107-1807-3-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/perf-kmem.txt | 6 +- tools/perf/builtin-kmem.c | 393 ++++++++++++++++++++++++++------- 2 files changed, 313 insertions(+), 86 deletions(-) commit c19ae86a510cf4332af64caab04718bc853d3184 Author: Jamal Hadi Salim Date: Fri May 1 22:19:43 2015 -0700 tc: remove unused redirect ttl improves ingress+u32 performance from 22.4 Mpps to 22.9 Mpps Signed-off-by: Jamal Hadi Salim Signed-off-by: Alexei Starovoitov Acked-by: Florian Westphal Acked-by: Daniel Borkmann Acked-by: Jesper Dangaard Brouer Signed-off-by: David S. Miller include/uapi/linux/pkt_cls.h | 2 ++ net/core/dev.c | 9 --------- 2 files changed, 2 insertions(+), 9 deletions(-) commit 72faedae8bc3504ee4252cebf14737a23677cb8f Author: Scott Mayhew Date: Wed Apr 29 10:38:26 2015 -0400 Documentation: remove overloads-avoided counter from knfsd-stats.txt The 'overloads-avoided' counter itself was removed several years ago by commit 78c210e (Revert "knfsd: avoid overloading the CPU scheduler with enormous load averages"). Signed-off-by: Scott Mayhew Signed-off-by: J. Bruce Fields Documentation/filesystems/nfs/knfsd-stats.txt | 44 +++------------------------ 1 file changed, 4 insertions(+), 40 deletions(-) commit fd891454609ec036dc23e34536e45d655b4ca4db Author: Christoph Hellwig Date: Tue Apr 28 15:41:16 2015 +0200 nfsd: remove nfsd_close Signed-off-by: Christoph Hellwig Signed-off-by: J. Bruce Fields fs/nfsd/nfs4state.c | 2 +- fs/nfsd/vfs.c | 19 +++++-------------- fs/nfsd/vfs.h | 1 - 3 files changed, 6 insertions(+), 16 deletions(-) commit c9758cc4569955c6d8ad519adf539848e8824c72 Author: Namhyung Kim Date: Tue Apr 21 13:55:02 2015 +0900 perf kmem: Implement stat --page --caller It is 'perf kmem' support caller statistics for page. Unlike slab case, the tracepoints in page allocator don't provide callsite info. So it records with callchain and extracts callsite info. Note that the callchain contains several memory allocation functions which has no meaning for users. So skip those functions to get proper callsites. I used following regex pattern to skip the allocator functions: ^_?_?(alloc|get_free|get_zeroed)_pages? This gave me a following list of functions: # perf kmem record --page sleep 3 # perf kmem stat --page -v ... alloc func: __get_free_pages alloc func: get_zeroed_page alloc func: alloc_pages_exact alloc func: __alloc_pages_direct_compact alloc func: __alloc_pages_nodemask alloc func: alloc_page_interleave alloc func: alloc_pages_current alloc func: alloc_pages_vma alloc func: alloc_page_buffers alloc func: alloc_pages_exact_nid ... The output looks mostly same as --alloc (I also added callsite column to that) but groups entries by callsite. Currently, the order, migrate type and GFP flag info is for the last allocation and not guaranteed to be same for all allocations from the callsite. --------------------------------------------------------------------------------------------- Total_alloc (KB) | Hits | Order | Mig.type | GFP flags | Callsite --------------------------------------------------------------------------------------------- 1,064 | 266 | 0 | UNMOVABL | 000000d0 | __pollwait 52 | 13 | 0 | UNMOVABL | 002084d0 | pte_alloc_one 44 | 11 | 0 | MOVABLE | 000280da | handle_mm_fault 20 | 5 | 0 | MOVABLE | 000200da | do_cow_fault 20 | 5 | 0 | MOVABLE | 000200da | do_wp_page 16 | 4 | 0 | UNMOVABL | 000084d0 | __pmd_alloc 16 | 4 | 0 | UNMOVABL | 00000200 | __tlb_remove_page 12 | 3 | 0 | UNMOVABL | 000084d0 | __pud_alloc 8 | 2 | 0 | UNMOVABL | 00000010 | bio_copy_user_iov 4 | 1 | 0 | UNMOVABL | 000200d2 | pipe_write 4 | 1 | 0 | MOVABLE | 000280da | do_wp_page 4 | 1 | 0 | UNMOVABL | 002084d0 | pgd_alloc --------------------------------------------------------------------------------------------- Signed-off-by: Namhyung Kim Acked-by: Pekka Enberg Cc: David Ahern Cc: Jiri Olsa Cc: Joonsoo Kim Cc: Minchan Kim Cc: Peter Zijlstra Cc: linux-mm@kvack.org Link: http://lkml.kernel.org/r/1429592107-1807-2-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-kmem.c | 327 +++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 306 insertions(+), 21 deletions(-) commit b6a896438b3275df434a8f99bee58292b31693bd Author: Masami Hiramatsu Date: Fri Apr 24 18:47:50 2015 +0900 perf probe: Accept filter argument for --list Currently, perf-probe --list option ignores given event filter. ---- # ./perf probe -l vfs\* probe:vfs_read (on vfs_read@ksrc/linux-3/fs/read_write.c) probe_libc:malloc (on __libc_malloc@malloc/malloc.c in /usr/lib64/libc-2.17.so) ---- This changes --list option to accept the event filter argument as below. ---- # ./perf probe -l vfs\* probe:vfs_read (on vfs_read@ksrc/linux-3/fs/read_write.c) # ./perf probe -l \*libc:\* probe_libc:malloc (on __libc_malloc@malloc/malloc.c in /usr/lib64/libc-2.17.so) ---- Signed-off-by: Masami Hiramatsu Tested-by: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20150424094750.23967.53868.stgit@localhost.localdomain Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/perf-probe.txt | 6 +-- tools/perf/builtin-probe.c | 70 ++++++++++++++++++++++----------- tools/perf/util/probe-event.c | 27 +++++++++++-- tools/perf/util/probe-event.h | 2 +- 4 files changed, 73 insertions(+), 32 deletions(-) commit 96b55e39237b8bc92d8e6b96f896c106f2d39cf6 Author: Masami Hiramatsu Date: Fri Apr 24 18:47:48 2015 +0900 perf probe: Accept multiple filter options Accept multiple filter options. Each filters are combined by logical-or. E.g. --filter abc* --filter *def is same as --filter abc*|*def Signed-off-by: Masami Hiramatsu Cc: David Ahern Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20150424094748.23967.63355.stgit@localhost.localdomain Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-probe.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) commit 3f51972c599cf95702819bd06a7a5412c523ebfe Author: Masami Hiramatsu Date: Fri Apr 24 18:47:46 2015 +0900 perf tools: Add strfilter__string to recover rules string Add strfilter__string to recover rules string from strfilter. This will be good for debugging. Signed-off-by: Masami Hiramatsu Cc: David Ahern Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20150424094746.23967.52434.stgit@localhost.localdomain Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/strfilter.c | 67 +++++++++++++++++++++++++++++++++++++++++++++ tools/perf/util/strfilter.h | 9 ++++++ 2 files changed, 76 insertions(+) commit 4e60a2caefd1920867a84b978abc1eac118de596 Author: Masami Hiramatsu Date: Fri Apr 24 18:47:44 2015 +0900 perf tools: Improve strfilter to append additional rules Add strfilter__or/and to append additional rules to existing strfilter. Signed-off-by: Masami Hiramatsu Cc: David Ahern Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20150424094744.23967.97614.stgit@localhost.localdomain Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/strfilter.c | 40 ++++++++++++++++++++++++++++++++++++++++ tools/perf/util/strfilter.h | 26 ++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) commit 3099c026002e97b8c173d9d0bbdfc39257d14402 Author: Naveen N. Rao Date: Tue Apr 28 17:35:34 2015 +0530 perf probe: Improve detection of file/function name in the probe pattern Currently, perf probe considers patterns including a '.' to be a file. However, this causes problems on powerpc ABIv1 where all functions have a leading '.': $ perf probe -F | grep schedule_timeout_interruptible .schedule_timeout_interruptible $ perf probe .schedule_timeout_interruptible Semantic error :File always requires line number or lazy pattern. Error: Command Parse Error. Fix this: - by checking the probe pattern in more detail, and - skipping leading dot if one exists when creating/deleting events. Signed-off-by: Naveen N. Rao Reviewed-by: Srikar Dronamraju Acked-by: Masami Hiramatsu Cc: Ananth N Mavinakayanahalli Cc: Michael Ellerman Cc: Srikar Dronamraju Cc: Sukadev Bhattiprolu Cc: linuxppc-dev@lists.ozlabs.org Link: http://lkml.kernel.org/r/db680f7cb11c4452b632f908e67151f3aa0f4602.1430217967.git.naveen.n.rao@linux.vnet.ibm.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/probe-event.c | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) commit 539f3aa2ebb42a409bc9028e38af091a86087165 Author: Namhyung Kim Date: Wed Apr 29 12:55:00 2015 -0300 perf tools: Fix bison-related build failure on CentOS 6 The YYLTYPE_IS_TRIVIAL is defined in the Build file, but unlike pmu-bison.c, gcc complained about it for parse-events-bison.c: CC util/parse-events-bison.o In file included from util/parse-events.y:16: util/parse-events-bison.h:101:1: error: "YYLTYPE_IS_TRIVIAL" redefined : error: this is the location of the previous definition make[3]: *** [util/parse-events-bison.o] Error 1 Comments from Jiri Olsa: "Reason is the parse error handling that was added just recently: it adds YYLTYPE type (which is not present in pmu-bison.h), so YYLTYPE_IS_TRIVIAL gets redefined, which is ok in F20 that handle the error via '-w' option, but it's not ok for RHEL6 where the '-w' does not work for this kind of error." Signed-off-by: Namhyung Kim Acked-by: Jiri Olsa Cc: David Ahern Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1430322871-18107-1-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/Build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 468f3d292fe60f0d744253b746e4b5d06bac0826 Author: Naveen N. Rao Date: Sat Apr 25 01:14:46 2015 +0530 perf symbols: Warn on build id mismatch Add a debug message to indicate that the build id didn't match. Signed-off-by: Naveen N. Rao Link: http://lkml.kernel.org/r/1429904686-16516-1-git-send-email-naveen.n.rao@linux.vnet.ibm.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/symbol-elf.c | 1 + 1 file changed, 1 insertion(+) commit 520a2ebc2f0bd46b65feb7ca73a9ed65ea1a36bd Author: Adrian Hunter Date: Fri Apr 24 22:29:45 2015 +0300 perf report: Add Instruction Tracing support Add support for decoding an AUX area assuming it contains instruction tracing data. Signed-off-by: Adrian Hunter Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1429903807-20559-4-git-send-email-adrian.hunter@intel.com [ Do not use -Z as an alternative to --itrace ] [ Fixed initialization of itrace_synth_opts struct fields on older gcc versions ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/perf-report.txt | 27 +++++++++++++++++++++++++++ tools/perf/builtin-report.c | 11 +++++++++++ 2 files changed, 38 insertions(+) commit 6d5cdd64f314e03c8606c777dc44b09769f8e038 Author: Adrian Hunter Date: Fri Apr 24 22:29:44 2015 +0300 perf script: Always allow fields 'addr' and 'cpu' for auxtrace If a file contains AUX area tracing data then always allow fields 'addr' and 'cpu' to be selected as options for perf script. This is necessary because AUX area decoding may synthesize events with that information. Signed-off-by: Adrian Hunter Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1429903807-20559-3-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-script.c | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) commit b72e74d1f140eb32865540f9e26e9fe0fcf983b9 Author: Adrian Hunter Date: Fri Apr 24 22:29:43 2015 +0300 perf evlist: Amend mmap ref counting for the AUX area mmap Reference counting of the mmap buffer does not work correctly when there is an AUX area mmap also. In snapshot mode it is not easy to know if the AUX area mmap buffer contains usefull information. Equally the evlist does not know if the recording is in sanpshot mode anyway. Consequently, for now just assume the AUX area mmap always has data, which will just cause the mmap buffer to remain mmapped for the duration of the recording. Signed-off-by: Adrian Hunter Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1429903807-20559-2-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 7b6ff0bdbf4f7f429c2116cca92a6d171217449e Author: Naveen N. Rao Date: Tue Apr 28 17:35:40 2015 +0530 perf probe ppc64le: Fixup function entry if using kallsyms lookup On powerpc ABIv2, if no debug-info is found and we use kallsyms, we need to fixup the function entry to point to the local entry point. Use offset of 8 since current toolchains always generate 2 instructions (8 bytes). Signed-off-by: Naveen N. Rao Reviewed-by: Srikar Dronamraju Cc: Ananth N Mavinakayanahalli Cc: Masami Hiramatsu Cc: Michael Ellerman Cc: Sukadev Bhattiprolu Cc: linuxppc-dev@lists.ozlabs.org Link: http://lkml.kernel.org/r/92253021e77a104b23b615c8c23bf9501dfe60bf.1430217967.git.naveen.n.rao@linux.vnet.ibm.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/arch/powerpc/util/sym-handling.c | 15 +++++++++++++++ tools/perf/util/probe-event.c | 5 +++++ tools/perf/util/probe-event.h | 2 ++ 3 files changed, 22 insertions(+) commit d5c2e2c17ae1d630ddbceb53a264f24cc99703a4 Author: Naveen N. Rao Date: Tue Apr 28 17:35:39 2015 +0530 perf probe ppc64le: Prefer symbol table lookup over DWARF Use symbol table lookups by default if DWARF is not necessary, since powerpc ABIv2 encodes local entry points in the symbol table and the function entry address in DWARF may not be appropriate for kprobes, as described here: https://sourceware.org/bugzilla/show_bug.cgi?id=17638 "The DWARF address ranges deliberately include the *whole* function, both global and local entry points." ... "If you want to set probes on a local entry point, you should look up the symbol in the main symbol table (not DWARF), and check the st_other bits; they will indicate whether the function has a local entry point, and what its offset from the global entry point is. Note that GDB does the same when setting a breakpoint on a function entry." Signed-off-by: Naveen N. Rao Reviewed-by: Srikar Dronamraju Cc: Ananth N Mavinakayanahalli Cc: Masami Hiramatsu Cc: Michael Ellerman Cc: Sukadev Bhattiprolu Cc: linuxppc-dev@lists.ozlabs.org Link: http://lkml.kernel.org/r/88a10e22f4aaba2aef812824ca4b10d7beeea012.1430217967.git.naveen.n.rao@linux.vnet.ibm.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/arch/powerpc/util/sym-handling.c | 8 ++++++++ tools/perf/util/probe-event.c | 8 ++++++++ tools/perf/util/probe-event.h | 1 + 3 files changed, 17 insertions(+) commit c50fc0a43e33a6c3257c5cbb954cd747d7b9a680 Author: Ananth N Mavinakayanahalli Date: Tue Apr 28 17:35:38 2015 +0530 perf probe ppc64le: Fix ppc64 ABIv2 symbol decoding ppc64 ELF ABIv2 has a Global Entry Point (GEP) and a Local Entry Point (LEP). For purposes of probing, we need the LEP - the offset to which is encoded in st_other. Signed-off-by: Ananth N Mavinakayanahalli Reviewed-by: Srikar Dronamraju Cc: Masami Hiramatsu Cc: Michael Ellerman Cc: Sukadev Bhattiprolu Cc: linuxppc-dev@lists.ozlabs.org Link: http://lkml.kernel.org/r/ab9cc5e2b9de4cbaaf50f6ef2346a6a81100bad1.1430217967.git.naveen.n.rao@linux.vnet.ibm.com Signed-off-by: Naveen N. Rao Signed-off-by: Arnaldo Carvalho de Melo tools/perf/arch/powerpc/util/sym-handling.c | 7 +++++++ tools/perf/util/symbol-elf.c | 4 ++++ tools/perf/util/symbol.h | 1 + 3 files changed, 12 insertions(+) commit 031b84c407c3153ffbcb4f8f832edf48af988719 Author: Naveen N. Rao Date: Tue Apr 28 17:35:37 2015 +0530 perf probe ppc: Enable matching against dot symbols automatically Allow perf probe to work on ppc ABIv1 without the need to specify the leading dot '.' for functions. 'perf probe do_fork' works with this patch. We do this by changing how symbol name comparison works on ppc ABIv1 - we simply ignore and skip over the initial dot, if one exists, during symbol name comparison. Signed-off-by: Naveen N. Rao Reviewed-by: Srikar Dronamraju Cc: Ananth N Mavinakayanahalli Cc: Masami Hiramatsu Cc: Michael Ellerman Cc: Sukadev Bhattiprolu Cc: linuxppc-dev@lists.ozlabs.org Link: http://lkml.kernel.org/r/652a8f3bfa919bd02a1836a128370eaed59b4a34.1430217967.git.naveen.n.rao@linux.vnet.ibm.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/arch/powerpc/util/sym-handling.c | 13 +++++++++++++ tools/perf/util/map.c | 5 +++++ tools/perf/util/map.h | 3 ++- tools/perf/util/symbol.c | 4 ++-- 4 files changed, 22 insertions(+), 3 deletions(-) commit fb6d59423115b10125f5db6acb8471f6f0af4ad7 Author: Naveen N. Rao Date: Tue Apr 28 17:35:36 2015 +0530 perf probe ppc: Use the right prefix when ignoring SyS symbols on ppc Use the proper prefix when ignoring SyS symbols on ppc ABIv1. While at it, generalize symbol selection so architectures can implement their own logic. Signed-off-by: Naveen N. Rao Reviewed-by: Srikar Dronamraju Cc: Ananth N Mavinakayanahalli Cc: Masami Hiramatsu Cc: Michael Ellerman Cc: Sukadev Bhattiprolu Cc: linuxppc-dev@lists.ozlabs.org Link: http://lkml.kernel.org/r/adf1f98b121ecaf292777fe5cc69fe1038feabce.1430217967.git.naveen.n.rao@linux.vnet.ibm.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/arch/powerpc/util/sym-handling.c | 20 ++++++++++++++++++++ tools/perf/util/symbol.c | 21 ++++++++++++--------- tools/perf/util/symbol.h | 5 +++++ 3 files changed, 37 insertions(+), 9 deletions(-) commit d2332098331fffe9358b50cebc8954ecd6560448 Author: Naveen N. Rao Date: Tue Apr 28 17:35:35 2015 +0530 perf probe ppc: Fix symbol fixup issues due to ELF type If using the symbol table, symbol addresses are not being fixed up properly, resulting in probes being placed at wrong addresses: # perf probe do_fork Added new event: probe:do_fork (on do_fork) You can now use it in all perf tools, such as: perf record -e probe:do_fork -aR sleep 1 # cat /sys/kernel/debug/tracing/kprobe_events p:probe/do_fork _text+635952 # printf "%x" 635952 9b430 # grep do_fork /boot/System.map c0000000000ab430 T .do_fork Fix by checking for ELF type ET_DYN used by ppc64 kernels. Signed-off-by: Naveen N. Rao Reviewed-by: Srikar Dronamraju Cc: Ananth N Mavinakayanahalli Cc: Masami Hiramatsu Cc: Michael Ellerman Cc: Sukadev Bhattiprolu Cc: linuxppc-dev@lists.ozlabs.org Link: http://lkml.kernel.org/r/41392bb856ef62d929995e0b61967689b7915207.1430217967.git.naveen.n.rao@linux.vnet.ibm.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/arch/powerpc/util/Build | 1 + tools/perf/arch/powerpc/util/sym-handling.c | 19 +++++++++++++++++++ tools/perf/util/symbol-elf.c | 8 ++++++-- tools/perf/util/symbol.h | 4 ++++ 4 files changed, 30 insertions(+), 2 deletions(-) commit b64aa553d8430aabd24f303899cfa4de678e2c3a Author: Petr Holasek Date: Thu Apr 16 17:38:18 2015 +0200 perf bench numa: Show more stats of particular threads in verbose mode In verbose mode perf bench numa shows also GB/s speed, system and user cpu time for each particular thread. Using of getrusage() can provide much more per process or per thread stats in future. Signed-off-by: Petr Holasek Reviewed-by: Ingo Molnar Cc: Jiri Olsa Link: http://lkml.kernel.org/r/1429198699-25039-3-git-send-email-pholasek@redhat.com [ Rename 'usage' variable to not shadow util.h's usage() ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/bench/numa.c | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) commit 762abdc0c6c013425958cd9f5105f4e32268d434 Author: Will Deacon Date: Thu Apr 23 15:00:16 2015 +0100 perf tools: Use getconf to determine number of online CPUs Parsing /proc/cpuinfo is a fiddly, arch-dependent business and a recent change to get it working for Sparc broke arm and arm64 platforms. Use sysconf to determine the number of online CPUs only parsing /proc/cpuinfo when sysconf is not available. Signed-off-by: Will Deacon Acked-by: Jiri Olsa Tested-by: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Mark Rutland Cc: Namhyung Kim Link: http://lkml.kernel.org/r/20150423140454.GJ1652@arm.com [ Made it fall back to parsing /proc when getconf not found ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6986f44c4c339fc9646a01f5eb296cba7c4efde7 Author: Axel Lin Date: Fri May 1 14:17:21 2015 +0800 regulator: max77843: Convert to use regulator_is_enabled_regmap Use regulator_is_enabled_regmap() to replace max77843_reg_is_enabled(). Signed-off-by: Axel Lin Reviewed-by: Krzysztof Kozlowski Signed-off-by: Mark Brown drivers/regulator/max77843.c | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) commit b7c960d5d00412cd8deb08087279287fe12c535b Author: Axel Lin Date: Fri May 1 14:16:39 2015 +0800 regulator: max77843: Fix enable_mask for max77843 charger MAX77843_CHG_ENABLE is 0x05, so the enable_mask should be MAX77843_CHG_MASK | MAX77843_CHG_BUCK_MASK. Signed-off-by: Axel Lin Reviewed-by: Krzysztof Kozlowski Signed-off-by: Mark Brown drivers/regulator/max77843.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e0ae225b7e96e50daaa3ca8d3cd2c944ce48e007 Author: Jun Nie Date: Wed Apr 29 18:11:07 2015 +0800 ASoC: simple-card: support platform in dts parse Support platform in dts parse so that dma pcm component can be added in dts. Signed-off-by: Jun Nie Signed-off-by: Mark Brown sound/soc/generic/simple-card.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) commit 3671c580e55955e61072a6e6d0d9567abdd80b5c Author: Daniel Vetter Date: Mon May 4 15:40:52 2015 +0200 drm/atomic-helper: Really recover pre-atomic plane/cursor behavior I've fumbled this in commit f02ad907cd9e7fe3a6405d2d005840912f1ed258 Author: Daniel Vetter Date: Thu Jan 22 16:36:23 2015 +0100 drm/atomic-helpers: Recover full cursor plane behaviour and accidentally put the assignment for legacy_cursor_upate after the atomic commit, where it is pretty useless. Reported-by: Maarten Lankhorst Cc: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_atomic_helper.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 67ddd32bfc9f5746e6c293154f8287278e6744ba Author: Semen Protsenko Date: Tue Apr 21 20:27:37 2015 +0300 gpio: max732x: Propagate wake-up setting to parent irq controller Set .irq_set_wake callback to prevent possible issues on wake-up. This patch was inspired by this commit: b80eef95beb04760629822fa130aeed54cdfafca Signed-off-by: Semen Protsenko Signed-off-by: Linus Walleij drivers/gpio/gpio-max732x.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 6f0a4d0c26f17e93f296e43c7b9f44733ea188ae Author: Tomeu Vizoso Date: Thu Mar 12 15:48:10 2015 +0100 memory: tegra: Disable ARBITRATION_EMEM interrupt As this interrupt is just for development purposes, as the TRM says, and the sheer amount of interrupts fired can seriously disrupt userspace when testing the lower frequencies supported by the EMC. From the TRM: "There is one performance warning type interrupt: ARBITRATION_EMEM. It fires when the MC detects that a request has been pending in the Row Sorter long enough to hit the DEADLOCK_PREVENTION_SLACK_THRESHOLD. In addition to true performance problems, this interrupt may fire in situations such as clock-change where the EMC backpressures pending traffic for long periods of time. This interrupt helps developers identify and debug performance issues and configuration issues." Signed-off-by: Tomeu Vizoso Signed-off-by: Thierry Reding drivers/memory/tegra/mc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e0d58cdcaedd90e42162772f9b642e4ee680dd03 Author: Yoshinori Sato Date: Mon May 4 00:16:36 2015 +0900 spi: bcm2835: depends GPIOLIB I got following error on CONFIG_GPIOLIB=n. drivers/spi/spi-bcm2835.c: In function 'chip_match_name': drivers/spi/spi-bcm2835.c:356:21: error: dereferencing pointer to incomplete type 'struct gpio_chip' return !strcmp(chip->label, data); ^ drivers/spi/spi-bcm2835.c: In function 'bcm2835_spi_setup': drivers/spi/spi-bcm2835.c:382:9: error: implicit declaration of function 'gpiochip_find' [-Werror=implicit-function-declaration] chip = gpiochip_find("pinctrl-bcm2835", chip_match_name); ^ drivers/spi/spi-bcm2835.c:382:7: warning: assignment makes pointer from integer without a cast [-Wint-conversion] chip = gpiochip_find("pinctrl-bcm2835", chip_match_name); ^ drivers/spi/spi-bcm2835.c: In function 'chip_match_name': drivers/spi/spi-bcm2835.c:357:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ Signed-off-by: Yoshinori Sato Signed-off-by: Mark Brown drivers/spi/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 1a3e2f1d6f65cb7cfb1e504e4337f1d31510ca6f Author: Lars-Peter Clausen Date: Sun May 3 19:27:10 2015 +0200 ASoC: speyside: Use snd_soc_codec_get_dapm() The dapm field of the snd_soc_codec struct is eventually going to be removed. Replace direct access to it with snd_soc_codec_get_dapm(), which will return the DAPM context for the CODEC. Signed-off-by: Lars-Peter Clausen Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/samsung/speyside.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d01d7d3dba3dc1e5fbf291f98dba6e8ff221f9f2 Author: Lars-Peter Clausen Date: Sun May 3 19:27:09 2015 +0200 ASoC: smartq: Use card DAPM context to access widgets The dapm field of the snd_soc_codec struct will eventually be removed (replaced with the DAPM context from the component embedded inside the CODEC). Replace its usage with the card's DAPM context. The idea is that DAPM is hierarchical and with the card at the root it is possible to access widgets from other contexts through the card context. Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/samsung/smartq_wm8987.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 76387a52e20ead38a3e322f28611d4a57f169f8a Author: Lars-Peter Clausen Date: Sun May 3 19:27:08 2015 +0200 ASoC: smartq: Remove unnecessary snd_soc_dapm_disable_pin() The "Headphone Jack" widget is managed by the jack detection layer, there is no need to manually disable. Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/samsung/smartq_wm8987.c | 3 --- 1 file changed, 3 deletions(-) commit e6963005b2a36a11dbc059006ba52a10e2fecfbe Author: Lars-Peter Clausen Date: Sun May 3 19:27:07 2015 +0200 ASoC: smdk_wm8994: Use card DAPM context to access widgets The dapm field of the snd_soc_codec struct will eventually be removed (replaced with the DAPM context from the component embedded inside the CODEC). Replace its usage with the card's DAPM context. The idea is that DAPM is hierarchical and with the card at the root it is possible to access widgets from other contexts through the card context. Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/samsung/smdk_wm8994.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 239ad6a18142271ac0cb332671c199d28d144f7f Author: Lars-Peter Clausen Date: Sun May 3 19:27:06 2015 +0200 ASoC: lowland: Use card DAPM context to access widgets The dapm field of the snd_soc_codec struct will eventually be removed (replaced with the DAPM context from the component embedded inside the CODEC). Replace its usage with the card's DAPM context. The idea is that DAPM is hierarchical and with the card at the root it is possible to access widgets from other contexts through the card context. Signed-off-by: Lars-Peter Clausen Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/samsung/lowland.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 29ea3ac109960d5e354f55c81a8e62dbb01779c0 Author: Lars-Peter Clausen Date: Sun May 3 20:13:35 2015 +0200 ASoC: samsung: wolfson: Improve compile test coverage While the the Wolfson machine drivers have a runtime dependency on a specific machine there is no compile time dependency. Allow to lets those drivers to be selected when COMPILE_TEST is selected to improve the compile time test coverage. Signed-off-by: Lars-Peter Clausen Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/samsung/Kconfig | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) commit 40b7bea10ae09595da5d66228d93e3920306790d Author: Charles Keepax Date: Fri May 1 12:37:24 2015 +0100 ASoC: dapm: Remove local OOM error message The memory subsystem is pretty chatty on failure no need to have local OOM messages as well. Signed-off-by: Charles Keepax Reviewed-by: Lars-Peter Clausen Tested-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/soc-dapm.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit 3c803da266e1a960e0569a154acafb5703ae8b60 Author: Srinivas Kandagatla Date: Thu Apr 30 18:16:44 2015 +0100 ASoC: qcom: remove unnecessary header files This patch removes unnecessary header files in lpass cpu and platform code. Signed-off-by: Srinivas Kandagatla Signed-off-by: Mark Brown sound/soc/qcom/lpass-cpu.c | 6 +----- sound/soc/qcom/lpass-platform.c | 6 ------ 2 files changed, 1 insertion(+), 11 deletions(-) commit ce883ccfef043257a3d679d389444ea805006587 Author: Srinivas Kandagatla Date: Thu Apr 30 18:16:35 2015 +0100 ASoC: qcom: Remove redundant error check. This patch remove redundant check after request_resource as ioremap would do the check anyway. Signed-off-by: Srinivas Kandagatla Signed-off-by: Mark Brown sound/soc/qcom/lpass-cpu.c | 4 ---- 1 file changed, 4 deletions(-) commit 7892158a96629c46c46dfae52eaf951f51222cf5 Author: David Riley Date: Wed Mar 18 10:52:25 2015 +0100 soc/tegra: pmc: move to using a restart handler The pmc driver was previously exporting tegra_pmc_restart, which was assigned to machine_desc.init_machine, taking precedence over the restart handlers registered through register_restart_handler(). Signed-off-by: David Riley [tomeu.vizoso@collabora.com: Rebased] Signed-off-by: Tomeu Vizoso Acked-by: Stephen Warren Reviewed-by: Alexandre Courbot [treding@nvidia.com: minor cleanups] Signed-off-by: Thierry Reding arch/arm/mach-tegra/tegra.c | 1 - drivers/soc/tegra/pmc.c | 23 +++++++++++++++++------ include/soc/tegra/pmc.h | 2 -- 3 files changed, 17 insertions(+), 9 deletions(-) commit 596f74ec275b0ec608e9450c937c6a29ba91b352 Author: Geert Uytterhoeven Date: Mon Apr 27 14:49:09 2015 +0200 ASoC: rsnd: Use generic names for device nodes rcar_sound -> sound Signed-off-by: Geert Uytterhoeven Acked-by: Simon Horman Signed-off-by: Mark Brown Documentation/devicetree/bindings/sound/renesas,rsnd.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6ea2609ab386f6bfeebc39e1418b7497a9deb55c Author: Mikko Perttunen Date: Thu Mar 12 15:47:55 2015 +0100 soc/tegra: fuse: Add RAM code reader helper Needed for the EMC and MC drivers to know what timings from the DT to use. Signed-off-by: Mikko Perttunen Signed-off-by: Tomeu Vizoso Signed-off-by: Thierry Reding drivers/soc/tegra/fuse/tegra-apbmisc.c | 21 +++++++++++++++++++++ include/soc/tegra/fuse.h | 1 + 2 files changed, 22 insertions(+) commit 405990c7e834913554482538321f16f457dda50e Author: Tomeu Vizoso Date: Thu Mar 12 15:47:54 2015 +0100 of: Document long-ram-code property in nvidia,tegra20-apbmisc Needed to properly decode the RAM code register. Signed-off-by: Tomeu Vizoso Signed-off-by: Thierry Reding Documentation/devicetree/bindings/misc/nvidia,tegra20-apbmisc.txt | 2 ++ 1 file changed, 2 insertions(+) commit 17119a4657066ccefd9a530ab1b07073d97776f8 Author: Fang, Yang A Date: Fri May 1 11:42:03 2015 -0700 ASoC: Intel: Add Cherrytrail & Braswell machine driver cht_bsw_max98090_ti Add machine driver for two Intel Cherryview-based platforms, Cherrytrail and Braswell. This machine driver will support max98090 codec as primary codec. it can also support TI jack detect chip as aux device if platform supports it. Signed-off-by: Fang, Yang A Signed-off-by: Mark Brown sound/soc/intel/Kconfig | 12 + sound/soc/intel/boards/Makefile | 2 + sound/soc/intel/boards/cht_bsw_max98090_ti.c | 320 +++++++++++++++++++++++++++ 3 files changed, 334 insertions(+) commit cde7fbfc8a2987796fb647e574242fa4bc5430f0 Author: Fang, Yang A Date: Fri May 1 11:42:02 2015 -0700 ASoC: Intel: Add support max98090 in sst driver Added entry in sst driver to support max98090 codec for intel Braswell platform. Signed-off-by: Fang, Yang A Signed-off-by: Mark Brown sound/soc/intel/atom/sst/sst_acpi.c | 2 ++ 1 file changed, 2 insertions(+) commit 4c84472e3a4ddba063b09c695fde09b3260e67e1 Author: Thierry Reding Date: Thu May 22 09:38:31 2014 +0200 ARM: tegra: jetson-tk1: Enable HDA support The HDA controller can be used to play back audio via HDMI. Signed-off-by: Thierry Reding arch/arm/boot/dts/tegra124-jetson-tk1.dts | 4 ++++ 1 file changed, 4 insertions(+) commit 5264d2749fa3a52bc3adf3937c284590cf0b3ecf Author: Thierry Reding Date: Fri Apr 24 11:57:06 2015 +0200 ARM: tegra: Add missing HDMI +5V regulator Commit fb50a116bbbc ("drm/tegra: hdmi - Add connector supply support") introduced a new supply for HDMI connectors that is used to control the voltage on the +5V pin. Not all boards have had the corresponding supply added to their device tree files, causing the following warning message during boot: [ 0.859698] 54280000.hdmi supply hdmi not found, using dummy regulator Add such a regulator to the Seaboard DTS to enable the driver to control this voltage and get rid of the warning. Reported-by: Stephen Warren Tested-by: Stephen Warren Signed-off-by: Thierry Reding arch/arm/boot/dts/tegra20-seaboard.dts | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 5780c20664db63033190c4d74c7f1ec2d13e91fe Author: Thierry Reding Date: Thu Dec 18 14:58:20 2014 +0100 ARM: tegra: cardhu: Add power and volume keys The Cardhu has a power key on the top-right as well as volume up and volume down keys on the right side. Signed-off-by: Thierry Reding arch/arm/boot/dts/tegra30-cardhu.dtsi | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) commit c682363cec52e0eab82e908be04197e79c5e5006 Author: Axel Lin Date: Mon May 4 17:28:02 2015 +0800 ASoC: da7210: Fix dependency to allow build with SND_SOC_I2C_AND_SPI Since commit aa0e25caafb7 ("ASoC: da7210: Add support for spi regmap"), the da7210 codec driver supports both I2C and SPI buses. Thus update the dependency accordingly. Signed-off-by: Axel Lin Signed-off-by: Mark Brown sound/soc/codecs/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 30fbd59057004f97f45467124693f22e8b6f3e16 Author: Thomas Gleixner Date: Mon May 4 13:51:12 2015 +0200 perf: Remove unused function perf_mux_hrtimer_cancel() Reported-by: Ingo Molnar Signed-off-by: Thomas Gleixner kernel/events/core.c | 28 ---------------------------- 1 file changed, 28 deletions(-) commit 5676f5c3fde96ce36ac3839145eccd83671e2112 Author: Mark Brown Date: Mon May 4 12:51:38 2015 +0100 ASoC: tas751x: Factor setting of new bias level into the core Signed-off-by: Mark Brown sound/soc/codecs/tas571x.c | 1 - 1 file changed, 1 deletion(-) commit ab303e4a17f07d6ebbf6f1528f89e3c1c248a4e6 Merge: 217e0ca beb9969 Author: Mark Brown Date: Mon May 4 12:50:18 2015 +0100 Merge branch 'topic/dapm' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-tas751x commit 217e0ca9c8623e4fb8b768e738f8e59dc56d3eb6 Author: Kevin Cernekee Date: Sun May 3 17:00:19 2015 -0700 MAINTAINERS: Add entry for tas571x ASoC codec driver Add self as maintainer for the new driver. Signed-off-by: Kevin Cernekee Signed-off-by: Mark Brown MAINTAINERS | 6 ++++++ 1 file changed, 6 insertions(+) commit 3fd6e7d9a146e2e0b55f428d8d4d500ca86909f5 Author: Kevin Cernekee Date: Sun May 3 17:00:18 2015 -0700 ASoC: tas571x: New driver for TI TAS571x power amplifiers Introduce a new codec driver for the Texas Instruments TAS5711/TAS5717/TAS5719 power amplifier chips. These chips are typically used to take an I2S digital audio input and drive 10-20W into a pair of speakers. Signed-off-by: Kevin Cernekee Signed-off-by: Mark Brown sound/soc/codecs/Kconfig | 5 + sound/soc/codecs/Makefile | 2 + sound/soc/codecs/tas571x.c | 520 +++++++++++++++++++++++++++++++++++++++++++++ sound/soc/codecs/tas571x.h | 33 +++ 4 files changed, 560 insertions(+) commit ee5d4df7298336a4c40140a1ce179e11ed179b03 Author: Kevin Cernekee Date: Sun May 3 17:00:17 2015 -0700 ASoC: tas571x: Add DT binding document Document the bindings for the soon-to-be-added tas571x driver. Signed-off-by: Kevin Cernekee Signed-off-by: Mark Brown .../devicetree/bindings/sound/tas571x.txt | 41 ++++++++++++++++++++++ 1 file changed, 41 insertions(+) commit 85aa5047e369d963b88af3e817dd40e692175153 Author: Thierry Reding Date: Thu Feb 26 11:21:58 2015 +0100 ARM: tegra: Fix typo (reset -> rest) in comment Easy typo to make when you're working in this area of the code. Signed-off-by: Thierry Reding arch/arm/mach-tegra/sleep-tegra30.S | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5431b0fdadfec7aa61c916d6978544727a00b5fe Author: Thierry Reding Date: Wed Apr 29 13:53:21 2015 +0200 ARM: tegra: Use lower-case hexadecimal digits For consistency with other device tree content, use lower-case hexadecimal digits in register region specifications. Signed-off-by: Thierry Reding Documentation/devicetree/bindings/fuse/nvidia,tegra20-fuse.txt | 2 +- arch/arm/boot/dts/tegra124.dtsi | 2 +- arch/arm/boot/dts/tegra20.dtsi | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 428d96e91ee224eb9933b0a209c06baa9f6fb390 Author: Krzysztof Kozlowski Date: Sat May 2 00:57:49 2015 +0900 dmaengine: s3c24xx: 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: Vinod Koul drivers/dma/s3c24xx-dma.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4715727394d1bc80c4bfc7d13090e9eac31ba5a2 Author: Krzysztof Kozlowski Date: Sat May 2 00:57:48 2015 +0900 dmaengine: nbpfaxi: 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: Vinod Koul drivers/dma/nbpfaxi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0d8505045e99d986007e8b4cc6c8836633e96cf3 Author: Krzysztof Kozlowski Date: Sat May 2 00:57:47 2015 +0900 dmaengine: mxs: 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: Vinod Koul drivers/dma/mxs-dma.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit afe7cded998fff62759c214cda8785cd874b6114 Author: Krzysztof Kozlowski Date: Sat May 2 00:57:46 2015 +0900 dmaengine: imx: 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: Vinod Koul drivers/dma/imx-dma.c | 2 +- drivers/dma/imx-sdma.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 577d2e0629c289485e1929df492ecdb613f930c2 Author: Krzysztof Kozlowski Date: Sat May 2 00:57:45 2015 +0900 dmaengine: ep93xx: 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: Vinod Koul drivers/dma/ep93xx_dma.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4d48edb3c3e1234d6b3fcdfb9ac24d7c6de449cb Author: Dmitry Osipenko Date: Thu Jan 15 13:58:57 2015 +0300 ARM: tegra20: Store CPU "resettable" status in IRAM Commit 7232398abc6a ("ARM: tegra: Convert PMC to a driver") changed tegra_resume() location storing from late to early and, as a result, broke suspend on Tegra20. PMC scratch register 41 is used by tegra LP1 resume code for retrieving stored physical memory address of common resume function and in the same time used by tegra20_cpu_shutdown() (shared by Tegra20 cpuidle driver and platform SMP code), which is storing CPU1 "resettable" status. It implies strict order of scratch register usage, otherwise resume function address is lost on Tegra20 after disabling non-boot CPU's on suspend. Fix it by storing "resettable" status in IRAM instead of PMC scratch register. Signed-off-by: Dmitry Osipenko Fixes: 7232398abc6a (ARM: tegra: Convert PMC to a driver) Cc: # v3.17+ Signed-off-by: Thierry Reding arch/arm/mach-tegra/cpuidle-tegra20.c | 5 ++--- arch/arm/mach-tegra/reset-handler.S | 10 +++++++--- arch/arm/mach-tegra/reset.h | 4 ++++ arch/arm/mach-tegra/sleep-tegra20.S | 37 ++++++++++++++++++++--------------- arch/arm/mach-tegra/sleep.h | 4 ++++ 5 files changed, 38 insertions(+), 22 deletions(-) commit 039aa4d68067161a7bd63aac9c2abc610aafab22 Author: Nicholas Mc Guire Date: Mon Mar 9 03:12:26 2015 -0400 soc/tegra: Watch wait_for_completion_timeout() return type The return type of the wait_for_completion_timeout() function is not int but unsigned long. An appropriately named unsigned long is added and the assignment fixed up. Signed-off-by: Nicholas Mc Guire Signed-off-by: Thierry Reding drivers/soc/tegra/fuse/fuse-tegra20.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 242b1d713386e8e2fd7f62cc1ed4681a12290848 Author: Thierry Reding Date: Fri Nov 7 16:10:41 2014 +0100 memory: tegra: Add Tegra132 support The memory controller on Tegra132 is very similar to the one found on Tegra124. But the Denver CPUs don't have an outer cache, so dcache maintenance is done slightly differently. Signed-off-by: Thierry Reding drivers/iommu/Kconfig | 2 +- drivers/memory/tegra/Makefile | 1 + drivers/memory/tegra/mc.c | 3 +++ drivers/memory/tegra/mc.h | 4 ++++ drivers/memory/tegra/tegra124.c | 33 +++++++++++++++++++++++++++++++++ 5 files changed, 42 insertions(+), 1 deletion(-) commit d1313e7896e932a92e21912850ef034e58571b66 Author: Thierry Reding Date: Fri Jan 23 09:49:25 2015 +0100 iommu/tegra-smmu: Add debugfs support Provide clients and swgroups files in debugfs. These files show for which clients IOMMU translation is enabled and which ASID is associated with each SWGROUP. Cc: Hiroshi Doyu Acked-by: Joerg Roedel Signed-off-by: Thierry Reding drivers/iommu/tegra-smmu.c | 109 +++++++++++++++++++++++++++++++++++++++++++++ include/soc/tegra/mc.h | 5 +++ 2 files changed, 114 insertions(+) commit e660df07ab90f4f61ed743522067a8dbaa6fa567 Author: Thierry Reding Date: Fri Jan 23 09:45:35 2015 +0100 memory: tegra: Add SWGROUP names Subsequent patches will add debugfs files that print the status of the SWGROUPs. Add a new names field and complement the SoC tables with the names of the individual SWGROUPs. Signed-off-by: Thierry Reding drivers/memory/tegra/tegra114.c | 32 ++++++++++++++-------------- drivers/memory/tegra/tegra124.c | 46 ++++++++++++++++++++--------------------- drivers/memory/tegra/tegra30.c | 32 ++++++++++++++-------------- include/soc/tegra/mc.h | 1 + 4 files changed, 56 insertions(+), 55 deletions(-) commit a1e869de72a7a6d9e1007d0b459e79e91f0cf5b5 Author: Mark Rustad Date: Fri Apr 10 10:36:36 2015 -0700 ixgbe: Use a signed type to hold error codes Because error codes are negative, it only makes sense to consistently use signed types when handling them. Also remove some explicit comparisons with 0 on these variables. Signed-off-by: Mark Rustad Tested-by: Phil Schmitt Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 10 +++++----- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 4 ++-- drivers/net/ethernet/intel/ixgbe/ixgbe_phy.c | 4 ++-- drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c | 4 ++-- 4 files changed, 11 insertions(+), 11 deletions(-) commit 337eb43c8d0000fef80b88e43fee7752a84afab2 Author: Mario Kleiner Date: Mon May 4 06:29:47 2015 +0200 drm/qxl: Fix qxl_noop_get_vblank_counter() This breaks under the vblank timestamp cleanup patch by Daniel Vetter. Also it is pointless to return anything but zero (or any other constant) if the function doesn't actually query a hw vblank counter. The bogus return of the current drm vblank counter via direct readout or via drm_vblank_count() is found in many of the new kms drivers, but it does exactly nothing different from returning any arbitrary constant - it's a no operation. Let's simply return 0 - Easy and fast. Signed-off-by: Mario Kleiner Cc: Dave Airlie Signed-off-by: Daniel Vetter drivers/gpu/drm/qxl/qxl_drv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d66a1e38280c42a06691e3df23f896273996255c Author: Mario Kleiner Date: Mon May 4 06:29:46 2015 +0200 drm: Zero out invalid vblank timestamp in drm_update_vblank_count. (v2) Since commit 844b03f27739135fe1fed2fef06da0ffc4c7a081 we make sure that after vblank irq off, we return the last valid (vblank count, vblank timestamp) pair to clients, e.g., during modesets, which is good. An overlooked side effect of that commit for kms drivers without support for precise vblank timestamping is that at vblank irq enable, when we update the vblank counter from the hw counter, we can't update the corresponding vblank timestamp, so now we have a totally mismatched timestamp for the new count to confuse clients. Restore old client visible behaviour from before Linux 3.18, but zero out the timestamp at vblank counter update (instead of disable as in original implementation) if we can't generate a meaningful timestamp immediately for the new vblank counter. This will fix this regression, so callers know they need to retry again later if they need a valid timestamp, but at the same time preserves the improvements made in the commit mentioned above. v2: Rebased on top of Daniel Vetter's fixup and documentation patch for timestamp updates. Drop request for stable kernel backport as this would be more difficult, unless the original patch would get applied to stable kernels. Signed-off-by: Mario Kleiner Cc: Ville Syrjälä Cc: Daniel Vetter Cc: Dave Airlie Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_irq.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit cb2effe54045b61d7cc6e8d3fa4ed49a6253b7fd Author: Mark Rustad Date: Fri Apr 10 10:36:31 2015 -0700 ixgbe: Release semaphore bits in the right order The global semaphore bits should be released in the reverse of the order that they were taken, so correct that. Signed-off-by: Mark Rustad Tested-by: Phil Schmitt Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 5a8b21b222296d6bc9be0783456838e6ab6e48e4 Author: Mario Kleiner Date: Mon May 4 06:29:45 2015 +0200 drm: Prevent invalid use of vblank_disable_immediate. (v2) For a kms driver to support immediate disable of vblank irq's reliably without introducing off by one errors or other mayhem for clients, it must not only support a hardware vblank counter query, but also high precision vblank timestamping, so vblank count and timestamp can be instantaneously reinitialzed to valid values. Additionally the exposed hardware counter must behave as if it is incrementing at leading edge of vblank to avoid off by one errors during reinitialization of the counter while the display happens to be inside or close to vblank. Check during drm_vblank_init that a driver which claims to be capable of vblank_disable_immediate at least supports high precision timestamping and prevent use of instant disable if that isn't present as a minimum requirement. v2: Changed from DRM_ERROR to DRM_INFO and made message more clear, as suggested by Michel Dänzer. Signed-off-by: Mario Kleiner Reviewed-by: Michel Dänzer Cc: Dave Airlie Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_irq.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 99264a61dfcda41d86d0960cf2d4c0fc2758a773 Author: Daniel Vetter Date: Wed Apr 15 19:34:43 2015 +0200 drm/vblank: Fixup and document timestamp update/read barriers This was a bit too much cargo-culted, so lets make it solid: - vblank->count doesn't need to be an atomic, writes are always done under the protection of dev->vblank_time_lock. Switch to an unsigned long instead and update comments. Note that atomic_read is just a normal read of a volatile variable, so no need to audit all the read-side access specifically. - The barriers for the vblank counter seqlock weren't complete: The read-side was missing the first barrier between the counter read and the timestamp read, it only had a barrier between the ts and the counter read. We need both. - Barriers weren't properly documented. Since barriers only work if you have them on boths sides of the transaction it's prudent to reference where the other side is. To avoid duplicating the write-side comment 3 times extract a little store_vblank() helper. In that helper also assert that we do indeed hold dev->vblank_time_lock, since in some cases the lock is acquired a few functions up in the callchain. Spotted while reviewing a patch from Chris Wilson to add a fastpath to the vblank_wait ioctl. v2: Add comment to better explain how store_vblank works, suggested by Chris. v3: Peter noticed that as-is the 2nd smp_wmb is redundant with the implicit barrier in the spin_unlock. But that can only be proven by auditing all callers and my point in extracting this little helper was to localize all the locking into just one place. Hence I think that additional optimization is too risky. Cc: Chris Wilson Cc: Mario Kleiner Cc: Ville Syrjälä Cc: Michel Dänzer Cc: Peter Hurley Reviewed-by: Chris Wilson Reviewed-and-tested-by: Mario Kleiner Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_irq.c | 95 +++++++++++++++++++++++++---------------------- include/drm/drmP.h | 8 +++- 2 files changed, 57 insertions(+), 46 deletions(-) commit cfb1167126613230f38f4c45b9e9bcb22791df8b Author: Hongzhou Yang Date: Fri May 1 14:49:30 2015 +0800 ARM: dts: mt8135: Add pinctrl/GPIO/EINT node for mt8135. Add pinctrl,GPIO and EINT node to mt8135.dtsi. Signed-off-by: Hongzhou Yang Acked-by: Linus Walleij Signed-off-by: Matthias Brugger arch/arm/boot/dts/mt8135-pinfunc.h | 1302 ++++++++++++++++++++++++++++++++++++ arch/arm/boot/dts/mt8135.dtsi | 29 + 2 files changed, 1331 insertions(+) commit 6769b93c082afb7241708685f1c23cbaf5bf00eb Author: Yingjoe Chen Date: Fri May 1 14:49:31 2015 +0800 arm64: dts: mt8173: Fixup pinctrl nodes The 8173 pinctrl node doesn't follow dts convention. Fix them. Also add a comment to explain pinctrl register usage to make it more clear. Signed-off-by: Yingjoe Chen Reviewed-by: Daniel Kurtz Signed-off-by: Matthias Brugger arch/arm64/boot/dts/mediatek/mt8173.dtsi | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) commit ae14a1d8e10498d4054664f14e7cc7d093f3c823 Author: Mark Rustad Date: Fri Apr 10 10:36:26 2015 -0700 ixgbe: Fix IOSF SB access issues IOSF is the Intel On-chip System Fabric used in SOCs. IOSF SB is the IOSF SideBand message interface. This patch serializes IOSF SB access using both phy bits in the SWFW_SEMAPHORE register. It also adds a helper function to wait for IOSF SB accesses to complete. Use the new function to perform this wait before each access, as specified in the datasheet, in addition to using it to wait for IOSF SB read/write completion. Signed-off-by: Mark Rustad Tested-by: Phil Schmitt Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c | 102 ++++++++++++++++---------- 1 file changed, 65 insertions(+), 37 deletions(-) commit 30544af5483755b11bb5924736e9e0b45ef0644a Author: Jeff Kirsher Date: Sat May 2 01:20:04 2015 -0700 e1000e: fix call to do_div() to use u64 arg We were using s64 for lat_ns (latency nano-second value) since in our calculations a negative value could be a resultant. For negative values, we then assign lat_ns to be zero, so the value passed to do_div() was never negative, but do_div() expects the argument type to be u64, so do a cast to resolve a compile warning seen on PowerPC. CC: Yanjiang Jin CC: Yanir Lubetkin Reported-by: Yanjiang Jin Signed-off-by: Jeff Kirsher Tested-by: Aaron Brown drivers/net/ethernet/intel/e1000e/ich8lan.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) commit 4ce98c0a20befbcac7953edd05dca2180ade88d6 Author: Peter Ujfalusi Date: Wed Apr 22 10:34:29 2015 +0300 dmaengine: omap-dma: Add support for memcpy The sDMA controller is capable of performing memory copy operation. It need to be configured to software triggered mode and without HW synchronization. The sDMA can copy data which is aligned to 8, 16 or 32 bits. Signed-off-by: Peter Ujfalusi Signed-off-by: Vinod Koul drivers/dma/omap-dma.c | 51 ++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 49 insertions(+), 2 deletions(-) commit 55e7fe5b9cd94e6accb128e6a1e5902e9018deef Author: Alexander Duyck Date: Sat May 2 01:09:59 2015 -0700 e1000e: Do not allow CRC stripping to be disabled on 82579 w/ jumbo frames The driver wasn't allowing jumbo frames to be enabled when CRC stripping was disabled, however it was allowing CRC stripping to be disabled while jumbo frames were enabled. This fixes that by making it so that the NETIF_F_RXFCS flag cannot be set when jumbo frames are enabled on 82579 and newer parts. Signed-off-by: Alexander Duyck Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/e1000e/netdev.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit 8084b86dcfbc4b4822868c1dbdb429b5c08154e2 Author: Alexander Duyck Date: Sat May 2 00:52:00 2015 -0700 e1000e: Cleanup handling of VLAN_HLEN as a part of max frame size When the VLAN_HLEN was added to the calculation for the maximum frame size there seems to have been a number of issues added to the driver. The first issue is that in some cases the maximum frame size for a device never really reached the actual maximum frame size as the VLAN header length was not included the calculation for that value. As a result some parts only supported a maximum frame size of either 1496 in the case of parts that didn't support jumbo frames, and 8996 in the case of the parts that do. The second issue is the fact that there were several checks that weren't updated so as a result setting an MTU of 1500 was treated as enabling jumbo frames as the calculated value was 1522 instead of 1518. I have addressed those by replacing ETH_FRAME_LEN with VLAN_ETH_FRAME_LEN where appropriate. The final issue was the fact that lowering the MTU below 1500 would cause the driver to allocate 2K buffers for the rings. This is an old issue that was fixed several years ago in igb/ixgbe and I am addressing now by just replacing == with a <= so that we always just round up to 1522 for anything that isn't a jumbo frame. Fixes: c751a3d58cf2d ("e1000e: Correctly include VLAN_HLEN when changing interface MTU") Signed-off-by: Alexander Duyck Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/e1000e/82571.c | 2 +- drivers/net/ethernet/intel/e1000e/ich8lan.c | 10 +++++----- drivers/net/ethernet/intel/e1000e/netdev.c | 18 ++++++++---------- 3 files changed, 14 insertions(+), 16 deletions(-) commit ac7c1c5af946e0f9fa6555c48c55236bae175042 Author: Jean Sacren Date: Sat May 2 00:49:26 2015 -0700 e100: don't initialize int object to zero 'err' will be overwritten so no need to initialize it to zero. Signed-off-by: Jean Sacren Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/e100.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8cfb879d1b118e190bf9aea1b50da62c0d8a4a77 Author: Todd Fujinaka Date: Sat May 2 00:39:03 2015 -0700 igb: simplify and clean up igb_enable_mas() igb_enable_mas() should only be called for the 82575 and has no clear return so changing it to void. Also simplify the odd conditional expression. Signed-off-by: Todd Fujinaka Reported-by: Dan Carpenter Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/igb/igb_main.c | 27 +++++++-------------------- 1 file changed, 7 insertions(+), 20 deletions(-) commit 8e116d3169cc2b93b7eb2f44dc021a93cd3d5308 Author: Jason Gerecke Date: Thu Apr 30 17:51:55 2015 -0700 HID: wacom: Fail probe if HID_GENERIC device has unknown device_type The last patch was careful to maintain backwards-compatible behavior by forcing device_type to BTN_TOOL_PEN (and printing a warning) if it were still uninitialized after scanning the HID descriptor and applying quirks. We should be more strict with HID_GENERIC devices, however, since there is no a priori guarantee that it is a tablet or touchpad. If the device_type is still uninitialized for a HID_GENERIC device then we assume that it isn't something the driver can work with and so fail the probe. Signed-off-by: Jason Gerecke Reviewed-by: Ping Cheng Reviewed-by: Benjamin Tissoires Signed-off-by: Jiri Kosina drivers/hid/wacom_sys.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 042628abd59c9a034797bd3083f806fa17cda62d Author: Jason Gerecke Date: Thu Apr 30 17:51:54 2015 -0700 HID: wacom: Discover device_type from HID descriptor for all devices Currently, we assume a device_type of BTN_TOOL_PEN before scanning the HID descriptor and then change the device_type if what we discover proves that assumption wrong. This way of doing things makes it more difficult to figure out if a device (particularly a HID_GENERIC device) actually does tablet/touch input or is something completley different. This patch leaves device_type at its initial value of 0 and then calls 'wacom_parse_hid' for every device (not just those that have touch). As we map the usages, we can set the device_type as before. After we're finished, we can then check if the value is still zero and do whatever is most appropriate. Detecting the pen can be a little tricky on most Wacom devices because the descriptors describe opaque blobs. Fortunately, older Wacom tablets have the HID_DG_DIGITIZER usage on the pen's application collection and newer tablets seem to have a similar vendor-defined usage that we can trigger on. Signed-off-by: Jason Gerecke Reviewed-by: Ping Cheng Reviewed-by: Benjamin Tissoires Signed-off-by: Jiri Kosina drivers/hid/wacom_sys.c | 23 +++++++++++++---------- drivers/hid/wacom_wac.c | 8 +++++--- drivers/hid/wacom_wac.h | 6 +++++- 3 files changed, 23 insertions(+), 14 deletions(-) commit 8d80f790ecbcd0c3d55be51d867cbe4db1debd89 Author: Jason Gerecke Date: Thu Apr 30 17:51:53 2015 -0700 HID: wacom: Do not add suffix to name of devices with an unknown type The naming logic currently assumes that all devices will be a pen, finger, or pad. Though this has historically been the case, the new HID_GENERIC catch-all may cause us to probe devices with Wacom's 056A VID which aren't any of these types (e.g. the "Cintiq 24HDT Monitor Control"). This patch updates the logic so that no suffix will be added to the device name if the device type is unknown. Signed-off-by: Jason Gerecke Reviewed-by: Ping Cheng Reviewed-by: Benjamin Tissoires Signed-off-by: Jiri Kosina drivers/hid/wacom_sys.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) commit 93a96c6f049d047bc196890fc4284eff15b3770f Merge: de4de56 75d04a3 Author: Daniel Vetter Date: Mon May 4 09:25:12 2015 +0200 Merge commit '75d04a3773ecee617847de963ae4195d6aa74c28' into drm-intel-next-queued Pull in patches Jani applied while I was on vacation. Signed-off-by: Daniel Vetter commit 4256af62c44b40ffd1c218ad85fc8fd4234d1736 Merge: 7c9a2ee 3a5a883 Author: David S. Miller Date: Mon May 4 00:18:27 2015 -0400 Merge branch 'via-rhine-rework' Francois Romieu says: ==================== via-rhine rework The series applies against davem-next as of 9dd3c797496affd699805c8a9d8429ad318c892f ("drivers: net: xgene: fix kbuild warnings"). Patches #1..#4 avoid holes in the receive ring. Patch #5 is a small leftover cleanup for #1..#4. Patches #6 and #7 are fairly simple barrier stuff. Patch #8 closes some SMP transmit races - not that anyone really complained about these but it's a bit hard to handwave that they can be safely ignored. Some testing, especially SMP testing of course, would be welcome. . Changes since #2: - added dma_rmb barrier in vlan related patch 6. - s/wmb/dma_wmb/ in (*new*) patch 7 of 8. - added explicit SMP barriers in (*new*) patch 8 of 8. . Changes since #1: - turned wmb() into dma_wmb() as suggested by davem and Alexander Duyck in patch 1 of 6. - forgot to reset rx_head_desc in rhine_reset_rbufs in patch 4 of 6. - removed rx_head_desc altogether in (*new*) patch 5 of 6 - remoed some vlan receive uglyness in (*new*) patch 6 of 6. ==================== Signed-off-by: David S. Miller commit 3a5a883a8a663b930908cae4abe5ec913b9b2fd2 Author: françois romieu Date: Fri May 1 22:14:45 2015 +0200 via-rhine: close SMP transmit races. 7ab87ff4c770eed71e3777936299292739fcd0fe ("via-rhine: move work from irq handler to softirq and beyond") forgot to explicitely control the lifespan of the tx_dirty and tx_cur pointers. Signed-off-by: Francois Romieu Signed-off-by: David S. Miller drivers/net/ethernet/via/via-rhine.c | 51 +++++++++++++++++++++++++++++++----- 1 file changed, 45 insertions(+), 6 deletions(-) commit e1efa87241272104d6a12c8b9fcdc4f62634d447 Author: françois romieu Date: Fri May 1 22:14:44 2015 +0200 via-rhine: dma_wmb transmit barrier. Follow the now usual transmit descriptor update path: 1. content change 2. dma_wmb 3. ownership change Signed-off-by: Francois Romieu Signed-off-by: David S. Miller drivers/net/ethernet/via/via-rhine.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 810f19bcb862f8889b27e0c9d9eceac9593925dd Author: françois romieu Date: Fri May 1 22:14:43 2015 +0200 via-rhine: add consistent memory barrier in vlan receive code. The NAPI receive path depends on desc->rx_status but it does not enforce any explicit receive barrier. Signed-off-by: Francois Romieu Signed-off-by: David S. Miller drivers/net/ethernet/via/via-rhine.c | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) commit 62ca1ba020ee01fa23092c09fa197e7984c5dc88 Author: françois romieu Date: Fri May 1 22:14:42 2015 +0200 via-rhine: kiss rx_head_desc goodbye. The driver no longer produces holes in its receive ring so rx_head_desc only duplicates cur_rx. Signed-off-by: Francois Romieu Signed-off-by: David S. Miller drivers/net/ethernet/via/via-rhine.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) commit 8709bb2c1e902a64e257c740d301ba0d43065a1c Author: françois romieu Date: Fri May 1 22:14:41 2015 +0200 via-rhine: forbid holes in the receive descriptor ring. Rationales: - throttle work under memory pressure - lower receive descriptor recycling latency for the network adapter - lower the maintenance burden of uncommon paths The patch is twofold: - it fails early if the receive ring can't be completely initialized at dev->open() time - it drops packets on the floor in the napi receive handler so as to keep the received ring full Signed-off-by: Francois Romieu Signed-off-by: David S. Miller drivers/net/ethernet/via/via-rhine.c | 103 ++++++++++++++++++----------------- 1 file changed, 53 insertions(+), 50 deletions(-) commit 4d1fd9c1d89e5ca033c1e0cbd2838180c2e01f8b Author: françois romieu Date: Fri May 1 22:14:40 2015 +0200 via-rhine: gotoize rhine_open error path. Signed-off-by: Francois Romieu Signed-off-by: David S. Miller drivers/net/ethernet/via/via-rhine.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) commit a21bb8bae1057ecd071f6d43b9ee3f97503ad904 Author: françois romieu Date: Fri May 1 22:14:39 2015 +0200 via-rhine: allocate and map receive buffer in a single transaction It's used to initialize the receive ring but it will actually shine when the receive poll code is reworked. Signed-off-by: Francois Romieu Signed-off-by: David S. Miller drivers/net/ethernet/via/via-rhine.c | 57 +++++++++++++++++++++++++++--------- 1 file changed, 43 insertions(+), 14 deletions(-) commit e45af497950a89459a0c4b13ffd91e1729fffef4 Author: françois romieu Date: Fri May 1 22:14:38 2015 +0200 via-rhine: commit receive buffer address before descriptor status update. Signed-off-by: Francois Romieu Signed-off-by: David S. Miller drivers/net/ethernet/via/via-rhine.c | 1 + 1 file changed, 1 insertion(+) commit 7c9a2eeac9b9caafb806e624fd2b75d30ecaee64 Merge: 6a21165 2e99403 Author: David S. Miller Date: Mon May 4 00:09:09 2015 -0400 Merge branch 'flow_keys_digest' Tom Herbert says: ==================== net: Eliminate calls to flow_dissector and introduce flow_keys_digest In this patch set we add skb_get_hash_perturb which gets the skbuff hash for a packet and perturbs it using a provided key and jhash1. This function is used in serveral qdiscs and eliminates many calls to flow_dissector and jhash3 to get a perturbed hash for a packet. To handle the sch_choke issue (passes flow_keys in skbuff cb) we add flow_keys_digest which is a digest of a flow constructed from a flow_keys structure. This is the second version of these patches I posted a while ago, and is prerequisite work to increasing the size of the flow_keys structure and hashing over it (full IPv6 address, flow label, VLAN ID, etc.). Version 2: - Add keyval parameter to __flow_hash_from_keys which allows caller to set the initval for jhash - Perturb always does flow dissection and creates hash based on input perturb value which acts as the keyval to __flow_hash_from_keys - Added a _flow_keys_digest_data which is used in make_flow_keys_digest. This fills out the digest by populating individual fields instead of copying the whole structure. ==================== Signed-off-by: David S. Miller commit 2e99403d28c182aa7ffb2d4ef34472df4873a4dd Author: Tom Herbert Date: Fri May 1 11:30:18 2015 -0700 sch_choke: Use flow_keys_digest Call make_flow_keys_digest to get a digest from flow keys and use that to pass skbuff cb and for comparing flows. Signed-off-by: Tom Herbert Signed-off-by: David S. Miller net/sched/sch_choke.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) commit 2f59e1ebaa7f762c8825871b5486b5f5b4fa952f Author: Tom Herbert Date: Fri May 1 11:30:17 2015 -0700 net: Add flow_keys digest Some users of flow keys (well just sch_choke now) need to pass flow_keys in skbuff cb, and use them for exact comparisons of flows so that skb->hash is not sufficient. In order to increase size of the flow_keys structure, we introduce another structure for the purpose of passing flow keys in skbuff cb. We limit this structure to sixteen bytes, and we will technically treat this as a digest of flow_keys struct hence its name flow_keys_digest. In the first incaranation we just copy the flow_keys structure up to 16 bytes-- this is the same information previously passed in the cb. In the future, we'll adapt this for larger flow_keys and could use something like SHA-1 over the whole flow_keys to improve the quality of the digest. Signed-off-by: Tom Herbert Signed-off-by: David S. Miller include/net/flow_keys.h | 16 ++++++++++++++++ net/core/flow_dissector.c | 27 +++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) commit ada1dba04c273dbabefff6a9a9f8c2bdcb61a858 Author: Tom Herbert Date: Fri May 1 11:30:16 2015 -0700 sched: Call skb_get_hash_perturb in sch_sfq Call skb_get_hash_perturb instead of doing skb_flow_dissect and then jhash by hand. Signed-off-by: Tom Herbert Signed-off-by: David S. Miller net/sched/sch_sfq.c | 27 ++------------------------- 1 file changed, 2 insertions(+), 25 deletions(-) commit 63c0ad4d4135d3bdb81a1ee42436f3a403632a3e Author: Tom Herbert Date: Fri May 1 11:30:15 2015 -0700 sched: Call skb_get_hash_perturb in sch_sfb Call skb_get_hash_perturb instead of doing skb_flow_dissect and then jhash by hand. Signed-off-by: Tom Herbert Signed-off-by: David S. Miller net/sched/sch_sfb.c | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) commit f969777ac35506133777ac7674c394e8e298e623 Author: Tom Herbert Date: Fri May 1 11:30:14 2015 -0700 sched: Call skb_get_hash_perturb in sch_hhf Call skb_get_hash_perturb instead of doing skb_flow_dissect and then jhash by hand. Signed-off-by: Tom Herbert Signed-off-by: David S. Miller net/sched/sch_hhf.c | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) commit 342db221829f8341e51839e40c47be137dfc6ebe Author: Tom Herbert Date: Fri May 1 11:30:13 2015 -0700 sched: Call skb_get_hash_perturb in sch_fq_codel Call skb_get_hash_perturb instead of doing skb_flow_dissect and then jhash by hand. Signed-off-by: Tom Herbert Signed-off-by: David S. Miller net/sched/sch_fq_codel.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) commit 50fb799289501c2eab9f43fc9af513027e1e994f Author: Tom Herbert Date: Fri May 1 11:30:12 2015 -0700 net: Add skb_get_hash_perturb This calls flow_disect and __skb_get_hash to procure a hash for a packet. Input includes a key to initialize jhash. This function does not set skb->hash. Signed-off-by: Tom Herbert Signed-off-by: David S. Miller include/linux/skbuff.h | 2 ++ net/core/flow_dissector.c | 38 ++++++++++++++++++++++++++++++-------- 2 files changed, 32 insertions(+), 8 deletions(-) commit 6a21165480a066a27c1f1dbd32aec581c612ba23 Author: Andrew Lunn Date: Fri May 1 16:39:54 2015 +0200 net: ipv4: route: Fix sending IGMP messages with link address In setups with a global scope address on an interface, and a lesser scope address on an interface sending IGMP reports, the reports can be sent using the other interfaces global scope address rather than the local interface address. RFC 2236 suggests: Ignore the Report if you cannot identify the source address of the packet as belonging to a subnet assigned to the interface on which the packet was received. since such reports could be forged. Look at the protocol when deciding if a RT_SCOPE_LINK address should be used for the packet. Signed-off-by: Andrew Lunn Signed-off-by: David S. Miller net/ipv4/route.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 087c1a601ad7f851a2d31f5fa0e5e9dfc766df55 Author: Alexei Starovoitov Date: Thu Apr 30 20:14:07 2015 -0700 net: sched: run ingress qdisc without locks TC classifiers/actions were converted to RCU by John in the series: http://thread.gmane.org/gmane.linux.network/329739/focus=329739 and many follow on patches. This is the last patch from that series that finally drops ingress spin_lock. Single cpu ingress+u32 performance goes from 22.9 Mpps to 24.5 Mpps. In two cpu case when both cores are receiving traffic on the same device and go into the same ingress+u32 the performance jumps from 4.5 + 4.5 Mpps to 23.5 + 23.5 Mpps Signed-off-by: John Fastabend Signed-off-by: Alexei Starovoitov Signed-off-by: Jamal Hadi Salim Acked-by: Daniel Borkmann Signed-off-by: David S. Miller net/core/dev.c | 2 -- net/sched/sch_ingress.c | 5 +++-- 2 files changed, 3 insertions(+), 4 deletions(-) commit a89f96c927700eeb560943847e3d00b664f341bb Merge: 1030822 138998f Author: David S. Miller Date: Sun May 3 23:18:02 2015 -0400 Merge branch 'tcp_sack_rttm' Kenneth Klette Jonassen says: ==================== tcp: SACK RTTM changes for congestion control This patch series improves SACK RTT measurements for congestion control: o Picks the latest sequence SACKed for RTT, i.e. most accurate delay signal. o Calls the congestion control's pkts_acked hook with SACK RTTMs even when not sequentially ACKing new data. V2: amend misleading comment ==================== Signed-off-by: David S. Miller commit 138998fdd12e7362756e158d00856a2aabd5f0c1 Author: Kenneth Klette Jonassen Date: Fri May 1 01:10:59 2015 +0200 tcp: invoke pkts_acked hook on every ACK Invoking pkts_acked is currently conditioned on FLAG_ACKED: receiving a cumulative ACK of new data, or ACK with SYN flag set. Remove this condition so that CC may get RTT measurements from all SACKs. Cc: Yuchung Cheng Cc: Eric Dumazet Cc: Neal Cardwell Signed-off-by: Kenneth Klette Jonassen Signed-off-by: David S. Miller net/ipv4/tcp_input.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit 31231a8a873026410eab438c5757430546a517d1 Author: Kenneth Klette Jonassen Date: Fri May 1 01:10:58 2015 +0200 tcp: improve RTT from SACK for CC tcp_sacktag_one() always picks the earliest sequence SACKed for RTT. This might not make sense for congestion control in cases where: 1. ACKs are lost, i.e. a SACK following a lost SACK covers both new and old segments at the receiver. 2. The receiver disregards the RFC 5681 recommendation to immediately ACK out-of-order segments. Give congestion control a RTT for the latest segment SACKed, which is the most accurate RTT estimate, but preserve the conservative RTT for RTO. Removes the call to skb_mstamp_get() in tcp_sacktag_one(). Cc: Yuchung Cheng Cc: Eric Dumazet Signed-off-by: Kenneth Klette Jonassen Acked-by: Yuchung Cheng Signed-off-by: David S. Miller net/ipv4/tcp_input.c | 40 ++++++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 18 deletions(-) commit 196da974758550a3933c8b0244ef98148df10552 Author: Kenneth Klette Jonassen Date: Fri May 1 01:10:57 2015 +0200 tcp: move struct tcp_sacktag_state to tcp_ack() Later patch passes two values set in tcp_sacktag_one() to tcp_clean_rtx_queue(). Prepare passing them via struct tcp_sacktag_state. Acked-by: Yuchung Cheng Cc: Eric Dumazet Signed-off-by: Kenneth Klette Jonassen Signed-off-by: David S. Miller net/ipv4/tcp_input.c | 45 ++++++++++++++++++++++----------------------- 1 file changed, 22 insertions(+), 23 deletions(-) commit 10308220f31db542b91ccaba7780f2d741cf84a5 Merge: 7a85202 67b7cbf Author: David S. Miller Date: Sun May 3 23:08:54 2015 -0400 Merge branch 'rhashtable-test' Thomas Graf says: ==================== rhashtable self-test improvements This series improves the rhashtable self-test to: * Avoid allocation of test objects * Measure the time of test runs * Use the iterator to walk the table for consistency * Account for failed insertions due to memory pressure or utilization pressure * Ignore failed insertions when checking for consistency ==================== Signed-off-by: David S. Miller commit 67b7cbf4203f7e6682a2dc17fc83a6a6cd5a3376 Author: Thomas Graf Date: Thu Apr 30 22:37:45 2015 +0000 rhashtable-test: Detect insertion failures Account for failed inserts due to memory pressure or EBUSY and ignore failed entries during the consistency check. Signed-off-by: Thomas Graf Signed-off-by: David S. Miller lib/test_rhashtable.c | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) commit 246b23a7695bd5a457aa51a36a948cce53d1d477 Author: Thomas Graf Date: Thu Apr 30 22:37:44 2015 +0000 rhashtable-test: Use walker to test bucket statistics As resizes may continue to run in the background, use walker to ensure we see all entries. Also print the encountered number of rehashes queued up while traversing. This may lead to warnings due to entries being seen multiple times. We consider them non-fatal. Signed-off-by: Thomas Graf Signed-off-by: David S. Miller lib/test_rhashtable.c | 60 +++++++++++++++++++++++++-------------------------- 1 file changed, 30 insertions(+), 30 deletions(-) commit fcc570207c1e7c485050adbab1e5d7808eab0fd4 Author: Thomas Graf Date: Thu Apr 30 22:37:43 2015 +0000 rhashtable-test: Do not allocate individual test objects By far the most expensive part of the selftest was the allocation of entries. Using a static array allows to measure the rhashtable operations. Signed-off-by: Thomas Graf Signed-off-by: David S. Miller lib/test_rhashtable.c | 28 ++++++---------------------- 1 file changed, 6 insertions(+), 22 deletions(-) commit c2c8a901660dcc647ffe5f6dcb1e4c500a5442aa Author: Thomas Graf Date: Thu Apr 30 22:37:42 2015 +0000 rhashtable-test: Get rid of ptr in test_obj structure This only blows up the size of the test structure for no gain in test coverage. Reduces size of test_obj from 24 to 16 bytes. Signed-off-by: Thomas Graf Signed-off-by: David S. Miller lib/test_rhashtable.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit 1aa661f5c3df15432530f01f1023d556fa81b95d Author: Thomas Graf Date: Thu Apr 30 22:37:41 2015 +0000 rhashtable-test: Measure time to insert, remove & traverse entries Make test configurable by allowing to specify all relevant knobs through module parameters. Do several test runs and measure the average time it takes to insert & remove all entries. Note, a deferred resize might still continue to run in the background. Signed-off-by: Thomas Graf Signed-off-by: David S. Miller lib/test_rhashtable.c | 100 ++++++++++++++++++++++++++++++++++---------------- 1 file changed, 69 insertions(+), 31 deletions(-) commit f54e84b6e9f07a93a5f27f55bf28982c06f45109 Author: Thomas Graf Date: Thu Apr 30 22:37:40 2015 +0000 rhashtable-test: Remove unused TEST_NEXPANDS Signed-off-by: Thomas Graf Signed-off-by: David S. Miller lib/test_rhashtable.c | 1 - 1 file changed, 1 deletion(-) commit 7a852021a4ec2978c5d58d1904eeb90a8b2805fe Merge: 82a584b 610986e Author: David S. Miller Date: Sun May 3 22:30:36 2015 -0400 Merge branch 'eth_type_trans' Alexander Duyck says: ==================== A few minor clean-ups to eth_type_trans This series addresses a few minor issues I found in eth_type_trans that that allow us to gain back something like 3 or more cycles per packet. The first change is to drop the byte swap since it isn't necessary. On x86 we could just check the first byte and compare that against the upper 8 bits of the Ethertype to determine if we are dealing with a size value or not. The second makes it so that the value we read in to test for multicast can be used for the address comparison. This allows us to avoid a second read of the destination address. The final change is to avoid some unneeded instructions in computing the Ethernet header pointer. When we start the call the Ethernet header is at skb->data, so we just use that rather than computing mac_header, and then adding that back to skb->head. ==================== Signed-off-by: David S. Miller commit 610986e7262624e2dd29ad8dea05b4e1ac3f07fb Author: Alexander Duyck Date: Thu Apr 30 14:53:59 2015 -0700 etherdev: Use skb->data to retrieve Ethernet header instead of eth_hdr Avoid recomputing the Ethernet header location and instead just use the pointer provided by skb->data. The problem with using eth_hdr is that the compiler wasn't smart enough to realize that skb->head + skb->mac_header was the same thing as skb->data before it added ETH_HLEN. By just caching it off before calling skb_pull_inline we can avoid a few unnecessary instructions. Signed-off-by: Alexander Duyck Signed-off-by: David S. Miller net/ethernet/eth.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit d54385ce68cd18ab002b46f61246ad197cec92de Author: Alexander Duyck Date: Thu Apr 30 14:53:54 2015 -0700 etherdev: Process is_multicast_ether_addr at same size as other operations This change makes it so that we process the address in is_multicast_ether_addr at the same size as the other calls. This allows us to avoid duplicate reads when used with other calls such as is_zero_ether_addr or eth_addr_copy. In addition I have added a 64 bit version of the function so in eth_type_trans we can process the destination address as a 64 bit value throughout. Signed-off-by: Alexander Duyck Signed-off-by: David S. Miller include/linux/etherdevice.h | 24 +++++++++++++++++++++++- net/ethernet/eth.c | 2 +- 2 files changed, 24 insertions(+), 2 deletions(-) commit 849b920e17a2b1e9a3c912ca960dc667d27985e8 Author: Alexander Duyck Date: Thu Apr 30 14:53:48 2015 -0700 etherdev: Avoid unnecessary byte swap in check for Ethertype This change takes advantage of the fact that ETH_P_802_3_MIN is aligned to 512 so as a result we can actually ignore the lower 8b when comparing the Ethertype to ETH_P_802_3_MIN. This allows us to avoid a byte swap by simply masking the value and comparing it to the byte swapped value for ETH_P_802_3_MIN. Signed-off-by: Alexander Duyck Signed-off-by: David S. Miller net/ethernet/eth.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 82a584b7cd366511a22e37675b029cf2fb58e291 Author: Tom Herbert Date: Wed Apr 29 15:33:21 2015 -0700 ipv6: Flow label state ranges This patch divides the IPv6 flow label space into two ranges: 0-7ffff is reserved for flow label manager, 80000-fffff will be used for creating auto flow labels (per RFC6438). This only affects how labels are set on transmit, it does not affect receive. This range split can be disbaled by systcl. Background: IPv6 flow labels have been an unmitigated disappointment thus far in the lifetime of IPv6. Support in HW devices to use them for ECMP is lacking, and OSes don't turn them on by default. If we had these we could get much better hashing in IPv6 networks without resorting to DPI, possibly eliminating some of the motivations to to define new encaps in UDP just for getting ECMP. Unfortunately, the initial specfications of IPv6 did not clarify how they are to be used. There has always been a vague concept that these can be used for ECMP, flow hashing, etc. and we do now have a good standard how to this in RFC6438. The problem is that flow labels can be either stateful or stateless (as in RFC6438), and we are presented with the possibility that a stateless label may collide with a stateful one. Attempts to split the flow label space were rejected in IETF. When we added support in Linux for RFC6438, we could not turn on flow labels by default due to this conflict. This patch splits the flow label space and should give us a path to enabling auto flow labels by default for all IPv6 packets. This is an API change so we need to consider compatibility with existing deployment. The stateful range is chosen to be the lower values in hopes that most uses would have chosen small numbers. Once we resolve the stateless/stateful issue, we can proceed to look at enabling RFC6438 flow labels by default (starting with scaled testing). Signed-off-by: Tom Herbert Signed-off-by: David S. Miller Documentation/networking/ip-sysctl.txt | 8 ++++++++ include/net/ipv6.h | 9 +++++++-- include/net/netns/ipv6.h | 1 + net/ipv6/af_inet6.c | 1 + net/ipv6/ip6_flowlabel.c | 4 ++++ net/ipv6/sysctl_net_ipv6.c | 8 ++++++++ 6 files changed, 29 insertions(+), 2 deletions(-) commit 7035870d1219f5cd86128edcb4c3517def632ad3 Author: Martin KaFai Lau Date: Sun May 3 17:05:49 2015 -0700 ipv6: Check RTF_LOCAL on rt->rt6i_flags instead of rt->dst.flags In my earlier commit: 653437d02f1f ("ipv6: Stop /128 route from disappearing after pmtu update"), there was a horrible typo. Instead of checking RTF_LOCAL on rt->rt6i_flags, it was checked on rt->dst.flags. This patch fixes it. Signed-off-by: Martin KaFai Lau Cc: Hajime Tazaki Cc: David S. Miller Signed-off-by: David S. Miller net/ipv6/route.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 05c3274d56ee783cb291a779ec2b369e9d172450 Author: David Spinadel Date: Tue Apr 28 18:06:45 2015 +0300 iwlwifi: mvm: include wildcard SSID in scans Fix a copy paste bug that didn't copy wildcard SSIDs to scan requests. This bug causes scan with only wildcard SSID to be passive, and scans with more than one SSID to send only the direct probes. Fixes: 2a28ac14c518 ("iwlwifi: mvm: add common scan params to thw iwl_mvm_scan_params struct") Signed-off-by: David Spinadel Reviewed-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/scan.c | 2 -- 1 file changed, 2 deletions(-) commit 2fdaf3f4f8c718a5023db69e2d391d978e94703e Author: Jonathan Cameron Date: Sat May 2 11:25:48 2015 +0100 iio:light:ltr501 bug in parameter sanity check. Clearly the intent was to error if the value was not 0 or 1. As implemented we have (A != 0 || A != 1) which is always true as A is never both 0 and 1 at the same time. As the autobuilder suggested, && makes more sense for this error check. Reported-by: kbuild test robot Acked-by: Kuppuswamy Sathyanarayanan Cc: Daniel Baluta Signed-off-by: Jonathan Cameron drivers/iio/light/ltr501.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7e52a03646af6fb45dd37c5375607858d65e9364 Author: Thor Thayer Date: Fri Apr 17 17:16:14 2015 -0500 EDAC, altera: Do not build it as a module The SDRAM EDAC requires SDRAM configuration/initialization before SDRAM is accessed (in the preloader) and therefore before Linux is loaded. Having a module compile is not desired so force to be built into kernel. Signed-off-by: Thor Thayer Cc: mchehab@osg.samsung.com Cc: Takashi Iwai Link: http://lkml.kernel.org/r/1429308974-26380-3-git-send-email-tthayer@opensource.altera.com Signed-off-by: Borislav Petkov drivers/edac/Kconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 4749c3ef854e3a5d3dd3cc0ccd2dcb7e05d583bd Author: Florian Westphal Date: Thu Apr 30 12:12:00 2015 +0200 net: sched: remove TC_MUNGED bits Not used. pedit sets TC_MUNGED when packet content was altered, but all the core does is unset MUNGED again and then set OK2MUNGE. And the latter isn't tested anywhere. So lets remove both TC_MUNGED and TC_OK2MUNGE. Signed-off-by: Florian Westphal Acked-by: Alexei Starovoitov Acked-by: Daniel Borkmann Acked-by: Jamal Hadi Salim Signed-off-by: David S. Miller Documentation/networking/tc-actions-env-rules.txt | 2 -- include/net/sch_generic.h | 2 -- include/uapi/linux/pkt_cls.h | 3 +++ net/sched/act_api.c | 5 ----- net/sched/act_pedit.c | 5 +---- 5 files changed, 4 insertions(+), 13 deletions(-) commit 7eee8cd4d8d6ce3f70e6bea716c19b28635a5232 Author: Li RongQing Date: Thu Apr 30 17:25:12 2015 +0800 ipv4: remove the unnecessary codes in fib_info_hash_move The whole hlist will be moved, so not need to call hlist_del before add the hlist_node to other hlist_head. Signed-off-by: Li RongQing Signed-off-by: David S. Miller net/ipv4/fib_semantics.c | 4 ---- 1 file changed, 4 deletions(-) commit 3715544750e4a250f881254900cccebc57509fde Merge: 629161f 6c3c1eb Author: David S. Miller Date: Sat May 2 22:05:58 2015 -0400 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Merge net into net-next. Signed-off-by: David S. Miller commit 3b6eefc1c9381f4222de755c131c0718e9faac2a Author: Krzysztof Kozlowski Date: Sat May 2 00:59:16 2015 +0900 libata: samsung_cf: 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: Tejun Heo drivers/ata/pata_samsung_cf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 469a22e6bad725cbd3188f37f2d119c7c7eaf510 Author: Marcus Cooper Date: Sat May 2 13:36:20 2015 +0200 ARM: sunxi: dts: split IR pins for A10 and A20 Currently none of the target boards nor the driver supports IR TX. However this pin is used in a few instances as a GPIO. Split the pin ctrl descriptions so that only the IR RX is configured to be used. Signed-off-by: Marcus Cooper Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun4i-a10-a1000.dts | 2 +- arch/arm/boot/dts/sun4i-a10-ba10-tvbox.dts | 2 +- arch/arm/boot/dts/sun4i-a10-cubieboard.dts | 2 +- arch/arm/boot/dts/sun4i-a10-hackberry.dts | 2 +- arch/arm/boot/dts/sun4i-a10-jesurun-q5.dts | 2 +- arch/arm/boot/dts/sun4i-a10-mini-xplus.dts | 4 ++-- arch/arm/boot/dts/sun4i-a10.dtsi | 22 ++++++++++++++++++---- arch/arm/boot/dts/sun7i-a20-bananapi.dts | 2 +- arch/arm/boot/dts/sun7i-a20-bananapro.dts | 2 +- arch/arm/boot/dts/sun7i-a20-cubieboard2.dts | 2 +- arch/arm/boot/dts/sun7i-a20-cubietruck.dts | 2 +- arch/arm/boot/dts/sun7i-a20-hummingbird.dts | 2 +- arch/arm/boot/dts/sun7i-a20-i12-tvbox.dts | 2 +- arch/arm/boot/dts/sun7i-a20-m3.dts | 2 +- arch/arm/boot/dts/sun7i-a20-orangepi-mini.dts | 2 +- arch/arm/boot/dts/sun7i-a20-orangepi.dts | 2 +- arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts | 2 +- arch/arm/boot/dts/sun7i-a20-pcduino3.dts | 2 +- arch/arm/boot/dts/sun7i-a20.dtsi | 22 ++++++++++++++++++---- 19 files changed, 54 insertions(+), 26 deletions(-) commit 172e6ab1caffcd2dd2910b44d88d096f2c6985fa Author: Suman Anna Date: Fri Feb 27 17:18:23 2015 -0600 remoteproc: fix various checkpatch warnings Fix all the checkpatch warnings in the core remoteproc code. The fixes cover the following warnings: 1. WARNING: void function return statements are not generally useful 2. WARNING: Possible unnecessary 'out of memory' message 3. WARNING: line over 80 characters 4. WARNING: braces {} are not necessary for single statement blocks 5. WARNING: Unnecessary space before function pointer arguments Signed-off-by: Suman Anna Signed-off-by: Ohad Ben-Cohen drivers/remoteproc/remoteproc_core.c | 27 +++++++++------------------ drivers/remoteproc/remoteproc_internal.h | 2 +- 2 files changed, 10 insertions(+), 19 deletions(-) commit e17aee37a68b3884114f515df3ee506870f5eea1 Author: Suman Anna Date: Fri Feb 27 17:18:22 2015 -0600 remoteproc/davinci: fix quoted split string checkpatch warning Fix the following checkpatch warning, WARNING: quoted string split across lines + "\n\t\tName of DSP firmware file in /lib/firmware" + " (if not specified defaults to 'rproc-dsp-fw')"); Signed-off-by: Suman Anna [remove leading whitespace as well] Signed-off-by: Ohad Ben-Cohen drivers/remoteproc/da8xx_remoteproc.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 9aa1cfca255bf3ba83f44b3452d34cc34607b94a Author: Suman Anna Date: Fri Feb 27 17:18:21 2015 -0600 remoteproc/ste: add blank lines after declarations Fix couple of checkpatch warnings of the type, "WARNING: Missing a blank line after declarations" Signed-off-by: Suman Anna Signed-off-by: Ohad Ben-Cohen drivers/remoteproc/ste_modem_rproc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit bd5b2d440745707ee97159ed7a06b629760fd19b Merge: 3d716a0 973109ca Author: Takashi Iwai Date: Sat May 2 10:02:30 2015 +0200 Merge branch 'topic/jack' into for-next commit 973109cafc9d11e41be4d64667ff2165bf79d948 Author: Jie Yang Date: Sat May 2 15:28:07 2015 +0800 ALSA: jack: fix a randconfig build issue Building errors reported such as below when 'CONFIG_INPUT=m': ...undefined reference to `input_xxx'... Here change to enable SND_JACK selectively to fix the issue. Also remove the config 'SND_HDA_INPUT_JACK' which won't be used anymore. Signed-off-by: Jie Yang Signed-off-by: Takashi Iwai sound/pci/hda/Kconfig | 10 +--------- sound/pci/hda/hda_codec.h | 2 -- 2 files changed, 1 insertion(+), 11 deletions(-) commit 19a0f61224d2d91860fa8291ab63cb104ee86bdd Author: Bjorn Andersson Date: Tue Mar 24 10:11:05 2015 -0700 hwspinlock: qcom: Add support for Qualcomm HW Mutex block Add driver for Qualcomm Hardware Mutex block found in many Qualcomm SoCs. Based on initial effort by Kumar Gala Signed-off-by: Bjorn Andersson Reviewed-by: Andy Gross Reviewed-by: Jeffrey Hugo Signed-off-by: Ohad Ben-Cohen drivers/hwspinlock/Kconfig | 12 +++ drivers/hwspinlock/Makefile | 1 + drivers/hwspinlock/qcom_hwspinlock.c | 181 +++++++++++++++++++++++++++++++++++ 3 files changed, 194 insertions(+) commit 5b5711f0f1aff1b25ee48da279de4f0c202f7a68 Author: Bjorn Andersson Date: Tue Mar 24 10:11:04 2015 -0700 DT: hwspinlock: Add binding documentation for Qualcomm hwmutex Add binding documentation for the Qualcomm Hardware Mutex. Signed-off-by: Bjorn Andersson Acked-by: Kumar Gala Reviewed-by: Andy Gross Reviewed-by: Jeffrey Hugo Signed-off-by: Ohad Ben-Cohen .../devicetree/bindings/hwlock/qcom-hwspinlock.txt | 39 ++++++++++++++++++++++ 1 file changed, 39 insertions(+) commit 65bd4341d61678494ea14994d0d7df73644ca014 Author: Suman Anna Date: Wed Mar 4 20:01:16 2015 -0600 hwspinlock/omap: add support for dt nodes HwSpinlock IP is present only on OMAP4 and other newer SoCs, which are all device-tree boot only. This patch adds the base support for parsing the DT nodes, and removes the code dealing with the traditional platform device instantiation. Signed-off-by: Suman Anna [tony@atomide.com: ack for legacy file removal] Acked-by: Tony Lindgren [comment on the imperfect always-zero base_id] Signed-off-by: Ohad Ben-Cohen MAINTAINERS | 1 - arch/arm/mach-omap2/Makefile | 3 -- arch/arm/mach-omap2/hwspinlock.c | 60 ------------------------------------ drivers/hwspinlock/omap_hwspinlock.c | 18 ++++++++--- 4 files changed, 14 insertions(+), 68 deletions(-) commit 67140ed1c9d518565e6e2b86ba761652eb9bf3c4 Author: Suman Anna Date: Wed Mar 4 20:01:15 2015 -0600 Documentation: dt: add the omap hwspinlock bindings document HwSpinlock IP is present only on OMAP4 and other newer SoCs, which are all device-tree boot only. This patch adds the DT bindings information for OMAP hwspinlock module. Cc: Rob Herring Signed-off-by: Suman Anna Acked-by: Mark Rutland Signed-off-by: Ohad Ben-Cohen .../devicetree/bindings/hwlock/omap-hwspinlock.txt | 26 ++++++++++++++++++++++ 1 file changed, 26 insertions(+) commit fb7737e949e31d8a71acee6bbb670f32dbd2a2c0 Author: Suman Anna Date: Wed Mar 4 20:01:14 2015 -0600 hwspinlock/core: add device tree support This patch adds a new OF-friendly API of_hwspin_lock_get_id() for hwspinlock clients to use/request locks from a hwspinlock device instantiated through a device-tree blob. This new API can be used by hwspinlock clients to get the id for a specific lock using the phandle + args specifier, so that it can be requested using the available hwspin_lock_request_specific() API. Signed-off-by: Suman Anna Reviewed-by: Bjorn Andersson [small comment clarification] Signed-off-by: Ohad Ben-Cohen Documentation/hwspinlock.txt | 10 +++++ drivers/hwspinlock/hwspinlock_core.c | 79 ++++++++++++++++++++++++++++++++++++ include/linux/hwspinlock.h | 7 ++++ 3 files changed, 96 insertions(+) commit 0ce8cf2f31d661a27b7656e791acacb86eb58739 Author: Suman Anna Date: Wed Mar 4 20:01:13 2015 -0600 Documentation: dt: add common bindings for hwspinlock This patch adds the generic common bindings used to represent a hwlock device and use/request locks in a device-tree build. Each hwspinlock provider should have the '#hwlock-cells' property, which represents the number of cells to be used for representing a specific hwspinlock. Client users shall use the property 'hwlocks' for requesting specific lock(s). Note that the document is named hwlock.txt deliberately to keep it a bit more generic. Cc: Rob Herring Signed-off-by: Suman Anna Reviewed-by: Bjorn Andersson Acked-by: Mark Rutland Signed-off-by: Ohad Ben-Cohen .../devicetree/bindings/hwlock/hwlock.txt | 59 ++++++++++++++++++++++ 1 file changed, 59 insertions(+) commit 629161f649ca259cfc1473a98347b941dd7a52bc Author: Simon Horman Date: Thu Apr 30 15:21:29 2015 +0900 net: rocker: Use ether_addr_equal A small cleanup to make use of the ether_addr_equal helper. Signed-off-by: Simon Horman Acked-by: Scott Feldman Acked-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/rocker/rocker.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 396e339a77d58d1f2679bef95025e250f6578cd0 Merge: d6c2767 5d45ed8 Author: Stephen Boyd Date: Fri May 1 18:25:10 2015 -0700 Merge branch 'clk-fixes' into clk-next commit d6c27678676abd13f5457490a30995524e1046fb Author: Krzysztof Kozlowski Date: Mon Apr 27 21:52:38 2015 +0900 clk: at91: Constify irq_domain_ops The irq_domain_ops are not modified by the driver and the irqdomain core code accepts pointer to a const data. Signed-off-by: Krzysztof Kozlowski Acked-by: Boris Brezillon Signed-off-by: Stephen Boyd drivers/clk/at91/pmc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7cb81136d2efe0f5ed9d965857f4756a15e6c338 Author: Stefan Wahren Date: Wed Apr 29 16:36:43 2015 +0000 clk: Fix JSON output in debugfs key/value pairs in a JSON object must be separated by a comma. After adding the properties "accuracy" and "phase" the JSON output of /sys/kernel/debug/clk/clk_dump is invalid. So add the missing commas to fix it. Fixes: 5279fc402ae5 ("clk: add clk accuracy retrieval support") Signed-off-by: Stefan Wahren [sboyd@codeaurora.org: Added comment in function] Signed-off-by: Stephen Boyd drivers/clk/clk.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 36c829633b8efba0c76ef3dcffc597a0cc0480bb Merge: 355b590 afc4eef Author: David S. Miller Date: Fri May 1 20:57:07 2015 -0400 Merge branch 'rt6_pmtu' Martin KaFai Lau says: ==================== ipv6: Stop /128 route from disappearing after pmtu update The series is separated from another patch series, 'ipv6: Only create RTF_CACHE route after encountering pmtu exception', which can be found here: http://thread.gmane.org/gmane.linux.network/359140 This series focus on fixing the /128 route issues. It is currently targeted for net-next due to the number of code churn but it is also applicable to net (should be without conflict). The original reported problem can be found here: http://thread.gmane.org/gmane.linux.network/348138 Patch 01 and 02 are to prepare the fib6 search to expect both the RTF_CACHE clone and its original route exist at the same fib6_node. Patch 03 fixes the /128 route disappearing bug. Patch 04 and 05 stop rt6_info from using the inet_peer's metrics to avoid the /128 routes (like the /128 clone and its original route) from stepping on each others' metrics. The second patch is by 'Steffen Klassert ' which I pulled off from netdev. The third patch is also mostly by Steffen with one minor optimization. Many thanks to Hannes Frederic Sowa on reviewing the patches and giving advice. ==================== Signed-off-by: David S. Miller commit afc4eef80c92b199357db3570d3c9c7631d699ff Author: Martin KaFai Lau Date: Tue Apr 28 13:03:07 2015 -0700 ipv6: Remove DST_METRICS_FORCE_OVERWRITE and _rt6i_peer _rt6i_peer is no longer needed after the last patch, 'ipv6: Stop rt6_info from using inet_peer's metrics'. DST_METRICS_FORCE_OVERWRITE is added by commit e5fd387ad5b3 ("ipv6: do not overwrite inetpeer metrics prematurely"). Since inetpeer is no longer used for metrics, this bit is also not needed. Signed-off-by: Martin KaFai Lau Reviewed-by: Hannes Frederic Sowa Cc: Michal Kubeček Cc: Steffen Klassert Signed-off-by: David S. Miller include/net/dst.h | 6 ------ include/net/ip6_fib.h | 31 ------------------------------- net/ipv6/route.c | 36 +----------------------------------- net/ipv6/xfrm6_policy.c | 14 -------------- 4 files changed, 1 insertion(+), 86 deletions(-) commit 4b32b5ad31a68a661f761c76dfd0d076636d3ae9 Author: Martin KaFai Lau Date: Tue Apr 28 13:03:06 2015 -0700 ipv6: Stop rt6_info from using inet_peer's metrics inet_peer is indexed by the dst address alone. However, the fib6 tree could have multiple routing entries (rt6_info) for the same dst. For example, 1. A /128 dst via multiple gateways. 2. A RTF_CACHE route cloned from a /128 route. In the above cases, all of them will share the same metrics and step on each other. This patch will steer away from inet_peer's metrics and use dst_cow_metrics_generic() for everything. Change Highlights: 1. Remove rt6_cow_metrics() which currently acquires metrics from inet_peer for DST_HOST route (i.e. /128 route). 2. Add rt6i_pmtu to take care of the pmtu update to avoid creating a full size metrics just to override the RTAX_MTU. 3. After (2), the RTF_CACHE route can also share the metrics with its dst.from route, by: dst_init_metrics(&cache_rt->dst, dst_metrics_ptr(cache_rt->dst.from), true); 4. Stop creating RTF_CACHE route by cloning another RTF_CACHE route. Instead, directly clone from rt->dst. [ Currently, cloning from another RTF_CACHE is only possible during rt6_do_redirect(). Also, the old clone is removed from the tree immediately after the new clone is added. ] In case of cloning from an older redirect RTF_CACHE, it should work as before. In case of cloning from an older pmtu RTF_CACHE, this patch will forget the pmtu and re-learn it (if there is any) from the redirected route. The _rt6i_peer and DST_METRICS_FORCE_OVERWRITE will be removed in the next cleanup patch. Signed-off-by: Martin KaFai Lau Reviewed-by: Hannes Frederic Sowa Cc: Steffen Klassert Signed-off-by: David S. Miller include/net/ip6_fib.h | 10 +---- net/ipv6/route.c | 102 +++++++++++++++++++++++++++++--------------------- 2 files changed, 60 insertions(+), 52 deletions(-) commit 653437d02f1f12d528c290e64f6dc54be1224db2 Author: Martin KaFai Lau Date: Tue Apr 28 13:03:05 2015 -0700 ipv6: Stop /128 route from disappearing after pmtu update This patch is mostly from Steffen Klassert . I only removed the (rt6->rt6i_dst.plen == 128) check from ip6_rt_update_pmtu() because the (rt6->rt6i_flags & RTF_CACHE) test has already implied it. This patch: 1. Create RTF_CACHE route for /128 non local route 2. After (1), all routes that allow pmtu update should have a RTF_CACHE clone. Hence, stop updating MTU for any non RTF_CACHE route. Signed-off-by: Martin KaFai Lau Signed-off-by: Steffen Klassert Reviewed-by: Hannes Frederic Sowa Signed-off-by: David S. Miller net/ipv6/route.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 9fbdcfaf97bf4b7d4fbd5b6a61f72167c73f37d9 Author: Steffen Klassert Date: Tue Apr 28 13:03:04 2015 -0700 ipv6: Extend the route lookups to low priority metrics. We search only for routes with highest priority metric in find_rr_leaf(). However if one of these routes is marked as invalid, we may fail to find a route even if there is a appropriate route with lower priority. Then we loose connectivity until the garbage collector deletes the invalid route. This typically happens if a host route expires afer a pmtu event. Fix this by searching also for routes with a lower priority metric. Signed-off-by: Steffen Klassert Signed-off-by: Martin KaFai Lau Reviewed-by: Hannes Frederic Sowa Signed-off-by: David S. Miller net/ipv6/route.c | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) commit 1f56a01f4ed1bbb36ff2a97f75a6e6231d790cff Author: Martin KaFai Lau Date: Tue Apr 28 13:03:03 2015 -0700 ipv6: Consider RTF_CACHE when searching the fib6 tree It is a prep work for the later bug-fix patch which will stop /128 route from disappearing after pmtu update. The later bug-fix patch will allow a /128 route and its RTF_CACHE clone both exist at the same fib6_node. To do this, we need to prepare the existing fib6 tree search to expect RTF_CACHE for /128 route. Note that the fn->leaf is sorted by rt6i_metric. Hence, RTF_CACHE (if there is any) is always at the front. This property leads to the following: 1. When doing ip6_route_del(), it should honor the RTF_CACHE flag which the caller is used to ask for deleting clone or non-clone. The rtm_to_fib6_config() should also check the RTM_F_CLONED and then set RTF_CACHE accordingly so that: - 'ip -6 r del...' will make ip6_route_del() to delete a route and all its clones. Note that its clones is flushed by fib6_del() - 'ip -6 r flush table cache' will make ip6_route_del() to only delete clone(s). 2. Exclude RTF_CACHE from addrconf_get_prefix_route() which should not configure on a cloned route. 3. No change is need for rt6_device_match() since it currently could return a RTF_CACHE clone route, so the later bug-fix patch will not affect it. Signed-off-by: Martin KaFai Lau Reviewed-by: Hannes Frederic Sowa Cc: Steffen Klassert Signed-off-by: David S. Miller net/ipv6/addrconf.c | 2 ++ net/ipv6/route.c | 6 ++++++ 2 files changed, 8 insertions(+) commit 355b590ca24a53f5e2f6999218b5321eaf730a7e Author: Eric Dumazet Date: Fri May 1 10:37:49 2015 -0700 ipv4: speedup ip_idents_reserve() Under stress, ip_idents_reserve() is accessing a contended cache line twice, with non optimal MESI transactions. If we place timestamps in separate location, we reduce this pressure by ~50% and allow atomic_add_return() to issue a Request for Ownership. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller net/ipv4/route.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) commit 86fbca4923f956dae31247e68dc73ffdfd6e5cb0 Author: Antonio Ospite Date: Fri May 1 12:54:38 2015 -0500 GFS2: inode.c: indent with TABs, not spaces Follow the same style used for the other functions in the same file. Signed-off-by: Antonio Ospite Signed-off-by: Bob Peterson fs/gfs2/inode.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit eb8ca0fa5d724976c8832ea5aea09f14fa83d437 Author: Krzysztof Kozlowski Date: Sat May 2 01:00:14 2015 +0900 ASoC: samsung: 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: Mark Brown sound/soc/samsung/i2s.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e51cebf75ab45d9f680a15a120b605244b7ce5ea Author: Krzysztof Kozlowski Date: Sat May 2 01:00:13 2015 +0900 ASoC: fsl: 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: Mark Brown sound/soc/fsl/imx-audmux.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c5787431e68cee54c1e1b19d934e8b0e0fde5697 Author: Krzysztof Kozlowski Date: Sat May 2 01:00:12 2015 +0900 ASoC: bt-sco: 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: Mark Brown sound/soc/codecs/bt-sco.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 57006d3e6f62def53c01ae3ffc338caebd866e89 Author: Pawel Moll Date: Fri Apr 17 12:37:36 2015 +0100 bus: arm-ccn: Allocate event when it is being added, not initialised To make events rotation possible, they should be allocated when event is being ->added(), not during initialisation. This patch moves the respective code. Signed-off-by: Pawel Moll drivers/bus/arm-ccn.c | 114 +++++++++++++++++++++++++++++--------------------- 1 file changed, 67 insertions(+), 47 deletions(-) commit 9ce1aa869e69cff8db1369e6849af9bd555b4f1d Author: Pawel Moll Date: Fri Apr 17 12:15:56 2015 +0100 bus: arm-ccn: Do not group CCN events with other PMUs Groups must not mix events from different PMUs (software events are allowed). Unfortunately the core does not ensures that, so it is necessary to validate the group at the PMU driver level. Signed-off-by: Pawel Moll drivers/bus/arm-ccn.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit 8f06c51fac1ca4104b8b64872f310e28186aea42 Author: Pawel Moll Date: Thu Apr 2 14:01:06 2015 +0100 bus: arm-ccn: Provide required event arguments Since 688d4dfcdd624192cbf03c08402e444d1d11f294 "perf tools: Support parsing parameterized events" the perf userspace tools understands "argument=?" syntax in the events file, making sure that required arguments are provided by the user and not defaulting to 0, causing confusion. This patch adds the required arguments lists for CCN events. Signed-off-by: Pawel Moll Documentation/arm/CCN.txt | 2 +- drivers/bus/arm-ccn.c | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) commit ffa415245b8666c44ddfb5ba1bca5b940828ecdd Author: Pawel Moll Date: Thu Apr 16 12:14:35 2015 +0100 bus: arm-ccn: cpumask attribute This patch adds a "cpumask" attribute to CCN's event_source class sysfs directory. Perf user tool uses it to restrict events to the processor(s) enumerated in this mask. This patch provides a single CPU mask, making it possible to run "-a" perf session (previously it would request the same CCN event, for example cycle counter, on each available core and most likely fail). Initially the mask is set to the CPU that happened to probe the driver, but it will be changed when it is hot-un-plugged (active events are migrated to another CPU then). Example: Performance counter stats for 'system wide': CPU0 2968148 cycles CPU1 2236736 cycles CPU2 1797968 cycles CPU3 1831715 cycles CPU1 1201850868 ccn/cycles/ 1.001241383 seconds time elapsed Signed-off-by: Pawel Moll Documentation/arm/CCN.txt | 15 +++--- drivers/bus/arm-ccn.c | 128 ++++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 126 insertions(+), 17 deletions(-) commit a18f8e97fe69195823d7fb5c68a8d6565f39db4b Author: Pawel Moll Date: Thu Apr 2 18:50:32 2015 +0100 bus: arm-ccn: Fix node->XP config conversion Events defined as watchpoints on nodes must have their config values converted so that they apply to the respective node's XP. The function setting new values was using wrong mask for the "port" field, resulting in corrupted value. Fixed now. Cc: stable@vger.kernel.org # 3.17+ Signed-off-by: Pawel Moll drivers/bus/arm-ccn.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6c219192dd2482eec97f6a7137a5cdc295dc4671 Author: Krzysztof Kozlowski Date: Sat May 2 01:00:11 2015 +0900 ASoC: au1x: 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: Mark Brown sound/soc/au1x/db1200.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0cfeddbded4ad41dba5faccf3c5ecfe5619ae9eb Author: Krzysztof Kozlowski Date: Sat May 2 00:45:05 2015 +0900 regulator: 88pm8607: 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: Mark Brown drivers/regulator/88pm8607.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3789c85206dd4efed58c83d1c29e865f22514410 Author: Krzysztof Kozlowski Date: Sat May 2 00:44:07 2015 +0900 spi: sh-msiof: 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: Mark Brown drivers/spi/spi-sh-msiof.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 23f6d39ec0a7c33630e80ba6607dffe7788a4c42 Author: Krzysztof Kozlowski Date: Sat May 2 00:44:06 2015 +0900 spi: s3c64xx: 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: Mark Brown drivers/spi/spi-s3c64xx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8634dafac6f58c91ab2461a68e8d7ea18ec0486b Author: Krzysztof Kozlowski Date: Sat May 2 00:44:05 2015 +0900 spi: rspi: 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: Mark Brown drivers/spi/spi-rspi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit db1b8200e0d0ff8102a1836e4bd6baf1be4f564d Author: Krzysztof Kozlowski Date: Sat May 2 00:44:04 2015 +0900 spi: imx: 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: Mark Brown drivers/spi/spi-imx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b2b3024ca5853b3ea6390a3388e4761fc16e0655 Author: Axel Lin Date: Thu Apr 30 10:06:54 2015 +0800 spi: rb4xx: Fix checking return value of devm_ioremap_resource() devm_ioremap_resource() returns ERR_PTR on failure. Signed-off-by: Axel Lin Signed-off-by: Mark Brown drivers/spi/spi-rb4xx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 177e1e1fbc63f6e4ac0fab56dcb61bb8c8597681 Author: Bard Liao Date: Thu Apr 30 18:18:47 2015 +0800 ASoC: rt5645: make volume TLV closer to reality The volume blocks have an step of 0.375dB, but TLV uses 0.01dB for units. Only use the resolution supported, ignoring the LSB of the volume register. This results in half the steps and 0.75dB per step, but reports accurate levels through TLV. Signed-off-by: Bard Liao Signed-off-by: Mark Brown sound/soc/codecs/rt5645.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 21ab3f2bef5a89617e76c7c6ad882595ab96300b Author: Bard Liao Date: Thu Apr 30 18:18:44 2015 +0800 ASoC: rt5645: add TDM slot control into dapm route This patch adds TDM slot control into dapm route. The control bits are different between rt5645 and rt5650, so we have separate dapm routes for each codec. Signed-off-by: Oder Chiou Signed-off-by: Bard Liao Signed-off-by: Mark Brown sound/soc/codecs/rt5645.c | 355 ++++++++++++++++++++++++++++++++++++++-------- sound/soc/codecs/rt5645.h | 1 + 2 files changed, 299 insertions(+), 57 deletions(-) commit de97c15b3c74ebc33f5470efaa22112444b80298 Author: Bard Liao Date: Thu Apr 30 18:18:43 2015 +0800 ASoC: rt5645: fix PLL source register definitions Fix PLL source register definitions. Signed-off-by: Bard Liao Signed-off-by: Mark Brown sound/soc/codecs/rt5645.h | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) commit 33de3d54b8b6fc53b9bace4772a70915ca96ecea Author: Bard Liao Date: Thu Apr 30 18:18:42 2015 +0800 ASoC: rt5645: remove RT5645_I2S_BCLK_MS1 control RT5645_I2S_BCLK_MS1 (reg 0x73 [5]) is reserverd in rt5645 and rt5650. This function is move to TDM control. We can configure it by snd_soc_dai_set_tdm_slot's slot_width parameter. Signed-off-by: Bard Liao Signed-off-by: Mark Brown sound/soc/codecs/rt5645.c | 5 ++--- sound/soc/codecs/rt5645.h | 4 ---- 2 files changed, 2 insertions(+), 7 deletions(-) commit e0b5d90669139cd3e7c2592ac2eff47c57318e94 Author: Bard Liao Date: Thu Apr 30 18:18:46 2015 +0800 ASoC: rt5645: fix wrong mask for button report rt5645->btn_jack is for jack button report. So the mask should be SND_JACK_BTN_0 | SND_JACK_BTN_1 | SND_JACK_BTN_2 | SND_JACK_BTN_3. Signed-off-by: Bard Liao Signed-off-by: Mark Brown sound/soc/codecs/rt5645.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 086cc672e1cb600b9c17688a4aa44560db858c03 Author: Benjamin Marzinski Date: Fri May 1 09:36:00 2015 -0500 GFS2: mark the journal idle to fix ro mounts When gfs2 was mounted read-only and then unmounted, it was writing a header block to the journal in the syncing gfs2_log_flush() call from kill_sb(). This is because the journal was not being marked as idle until the first log header was written out, and on a read-only mount there never was a log header written out. Since the journal was not marked idle, gfs2_log_flush() was writing out a header lock to make sure it was empty during the sync. Not only did this cause IO to a read-only filesystem, but the journalling isn't completely initialized on read-only mounts, and so gfs2 was writing out the wrong sequence number in the log header. Now, the journal is marked idle on mount, and gfs2_log_flush() won't write out anything until there starts being transactions to flush. Signed-off-by: Benjamin Marzinski Signed-off-by: Bob Peterson Acked-by: Steven Whitehouse fs/gfs2/ops_fstype.c | 1 + 1 file changed, 1 insertion(+) commit 90037558d5ed25a63499c3973cc1af25da02f673 Author: Geert Uytterhoeven Date: Tue Apr 28 14:08:03 2015 +0200 ARM: shmobile: defconfig: Replace USB_RCAR_GEN2_PHY by PHY_RCAR_GEN2 The legacy-only USB_RCAR_GEN2_PHY driver was replaced by the DT-only PHY_RCAR_GEN2 driver. Refresh the defconfig using "make savedefconfig" while we're at it. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/configs/shmobile_defconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1555f3bf5cc172e7d23c2b8db10d656d15bec13e Author: Hans Verkuil Date: Fri May 1 08:45:28 2015 -0300 [media] saa7164: fix compiler warning drivers/media/pci/saa7164/saa7164-dvb.c: In function ‘saa7164_dvb_register’: drivers/media/pci/saa7164/saa7164-dvb.c:701:7: warning: ‘client_tuner’ may be used uninitialized in this function [-Wmaybe-uninitialized] if (!client_tuner || !client_tuner->dev.driver) ^ Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/saa7164/saa7164-dvb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ebf984bb151e9952cccd060d3aba0b4d30a87e81 Author: Hans Verkuil Date: Thu Apr 9 04:05:59 2015 -0300 [media] v4l2: replace s_mbus_fmt by set_fmt in bridge drivers Replace all calls to s_mbus_fmt in bridge drivers by calls to the set_fmt pad op. Remove the old try/s_mbus_fmt video ops since they are now no longer used. Signed-off-by: Hans Verkuil Cc: Guennadi Liakhovetski Acked-by: Prabhakar Lad Acked-by: Scott Jiang Cc: Jonathan Corbet Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/cx18/cx18-controls.c | 13 +++-- drivers/media/pci/cx18/cx18-ioctl.c | 12 +++-- drivers/media/pci/cx23885/cx23885-video.c | 12 +++-- drivers/media/pci/ivtv/ivtv-controls.c | 12 +++-- drivers/media/pci/ivtv/ivtv-ioctl.c | 12 +++-- drivers/media/pci/saa7134/saa7134-empress.c | 10 ++-- drivers/media/platform/am437x/am437x-vpfe.c | 19 ++----- drivers/media/platform/blackfin/bfin_capture.c | 8 +-- drivers/media/platform/marvell-ccic/mcam-core.c | 8 +-- drivers/media/platform/sh_vou.c | 61 ++++++++++++---------- drivers/media/platform/soc_camera/atmel-isi.c | 27 +++++----- drivers/media/platform/soc_camera/mx2_camera.c | 35 +++++++------ drivers/media/platform/soc_camera/mx3_camera.c | 31 ++++++----- drivers/media/platform/soc_camera/omap1_camera.c | 44 +++++++++------- drivers/media/platform/soc_camera/pxa_camera.c | 33 ++++++------ drivers/media/platform/soc_camera/rcar_vin.c | 4 +- .../platform/soc_camera/sh_mobile_ceu_camera.c | 8 +-- drivers/media/platform/soc_camera/soc_scale_crop.c | 37 +++++++------ drivers/media/platform/via-camera.c | 8 +-- drivers/media/usb/cx231xx/cx231xx-417.c | 12 +++-- drivers/media/usb/cx231xx/cx231xx-video.c | 23 ++++---- drivers/media/usb/em28xx/em28xx-camera.c | 12 +++-- drivers/media/usb/go7007/go7007-v4l2.c | 12 +++-- drivers/media/usb/pvrusb2/pvrusb2-hdw.c | 17 +++--- include/media/v4l2-subdev.h | 8 --- 25 files changed, 256 insertions(+), 222 deletions(-) commit 5eab4983777ba913efb42dd0f177b0dcdbd4f3d9 Author: Hans Verkuil Date: Thu Apr 9 04:05:35 2015 -0300 [media] v4l2: replace try_mbus_fmt by set_fmt in bridge drivers Replace all calls to try_mbus_fmt in bridge drivers by calls to the set_fmt pad op. [mchehab@osg.samsung.com: fix a merge conflict at mcam-core.c] Signed-off-by: Hans Verkuil Cc: Guennadi Liakhovetski Acked-by: Scott Jiang Cc: Jonathan Corbet Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/saa7134/saa7134-empress.c | 11 +++--- drivers/media/platform/blackfin/bfin_capture.c | 15 ++++---- drivers/media/platform/marvell-ccic/mcam-core.c | 11 +++--- drivers/media/platform/soc_camera/atmel-isi.c | 28 ++++++++------- drivers/media/platform/soc_camera/mx2_camera.c | 38 +++++++++++--------- drivers/media/platform/soc_camera/mx3_camera.c | 28 ++++++++------- drivers/media/platform/soc_camera/omap1_camera.c | 26 ++++++++------ drivers/media/platform/soc_camera/pxa_camera.c | 28 ++++++++------- drivers/media/platform/soc_camera/rcar_vin.c | 42 ++++++++++++---------- .../platform/soc_camera/sh_mobile_ceu_camera.c | 38 +++++++++++--------- drivers/media/platform/via-camera.c | 11 +++--- 11 files changed, 158 insertions(+), 118 deletions(-) commit 6e80c4738aa12701a5714cb3e4a685f95c1ffe5f Author: Hans Verkuil Date: Sat Mar 21 09:39:09 2015 -0300 [media] v4l2: replace s_mbus_fmt by set_fmt The s_mbus_fmt video op is a duplicate of the pad op. Replace all uses in sub-devices by the set_fmt() pad op. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/adv7170.c | 16 +++++++++++----- drivers/media/i2c/adv7175.c | 16 +++++++++++----- drivers/media/i2c/cx25840/cx25840-core.c | 15 ++++++++++++--- drivers/media/i2c/saa7115.c | 16 +++++++++++++--- drivers/media/i2c/saa717x.c | 16 +++++++++++++--- drivers/media/pci/cx18/cx18-av-core.c | 16 +++++++++++++--- drivers/media/usb/go7007/s2250-board.c | 18 +++++++++++++++--- 7 files changed, 88 insertions(+), 25 deletions(-) commit 717fd5b4907ada90ceb069d484068aaa01c58bb0 Author: Hans Verkuil Date: Thu Apr 9 06:24:36 2015 -0300 [media] v4l2: replace try_mbus_fmt by set_fmt The try_mbus_fmt video op is a duplicate of the pad op. Replace all uses in sub-devices by the set_fmt() pad op. Since try_mbus_fmt and s_mbus_fmt both map to the set_fmt pad op (but with a different 'which' argument), this patch will replace both try_mbus_fmt and s_mbus_fmt by set_fmt. Signed-off-by: Hans Verkuil Cc: Guennadi Liakhovetski Cc: Jonathan Corbet Cc: Kamil Debski Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/adv7183.c | 36 ++++++++-------- drivers/media/i2c/mt9v011.c | 38 ++++++++--------- drivers/media/i2c/ov7670.c | 27 +++++++----- drivers/media/i2c/saa6752hs.c | 28 +++++++------ drivers/media/i2c/soc_camera/imx074.c | 39 ++++++++---------- drivers/media/i2c/soc_camera/mt9m001.c | 17 +++++--- drivers/media/i2c/soc_camera/mt9m111.c | 31 ++++++-------- drivers/media/i2c/soc_camera/mt9t031.c | 48 +++++++++++----------- drivers/media/i2c/soc_camera/mt9t112.c | 15 +++++-- drivers/media/i2c/soc_camera/mt9v022.c | 17 +++++--- drivers/media/i2c/soc_camera/ov2640.c | 36 +++++----------- drivers/media/i2c/soc_camera/ov5642.c | 34 +++++++-------- drivers/media/i2c/soc_camera/ov6650.c | 17 +++++--- drivers/media/i2c/soc_camera/ov772x.c | 15 +++++-- drivers/media/i2c/soc_camera/ov9640.c | 17 ++++++-- drivers/media/i2c/soc_camera/ov9740.c | 16 ++++++-- drivers/media/i2c/soc_camera/rj54n1cb0c.c | 40 +++++++----------- drivers/media/i2c/soc_camera/tw9910.c | 15 +++++-- drivers/media/i2c/sr030pc30.c | 38 ++++++++--------- drivers/media/i2c/vs6624.c | 28 ++++++------- drivers/media/platform/soc_camera/sh_mobile_csi2.c | 35 ++++++++-------- 21 files changed, 304 insertions(+), 283 deletions(-) commit da298c6d98d531de778ba8dd6657b1093ef855d0 Author: Hans Verkuil Date: Thu Apr 9 04:02:34 2015 -0300 [media] v4l2: replace video op g_mbus_fmt by pad op get_fmt The g_mbus_fmt video op is a duplicate of the pad op. Replace all uses by the get_fmt pad op and remove the video op. Signed-off-by: Hans Verkuil Acked-by: Guennadi Liakhovetski Acked-by: Prabhakar Lad Cc: Kamil Debski Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/adv7170.c | 11 +++-- drivers/media/i2c/adv7175.c | 11 +++-- drivers/media/i2c/adv7183.c | 12 +++-- drivers/media/i2c/adv7842.c | 14 ++++-- drivers/media/i2c/ak881x.c | 24 ++++------ drivers/media/i2c/ml86v7667.c | 14 ++++-- drivers/media/i2c/saa6752hs.c | 14 +++++- drivers/media/i2c/soc_camera/imx074.c | 11 +++-- drivers/media/i2c/soc_camera/mt9m001.c | 11 +++-- drivers/media/i2c/soc_camera/mt9m111.c | 11 +++-- drivers/media/i2c/soc_camera/mt9t031.c | 11 +++-- drivers/media/i2c/soc_camera/mt9t112.c | 11 +++-- drivers/media/i2c/soc_camera/mt9v022.c | 11 +++-- drivers/media/i2c/soc_camera/ov2640.c | 11 +++-- drivers/media/i2c/soc_camera/ov5642.c | 11 +++-- drivers/media/i2c/soc_camera/ov6650.c | 11 +++-- drivers/media/i2c/soc_camera/ov772x.c | 11 +++-- drivers/media/i2c/soc_camera/rj54n1cb0c.c | 11 +++-- drivers/media/i2c/soc_camera/tw9910.c | 11 +++-- drivers/media/i2c/sr030pc30.c | 12 +++-- drivers/media/i2c/tvp514x.c | 35 ++------------ drivers/media/i2c/tvp5150.c | 15 +++--- drivers/media/i2c/tvp7002.c | 28 ----------- drivers/media/i2c/vs6624.c | 12 +++-- drivers/media/pci/saa7134/saa7134-empress.c | 9 ++-- drivers/media/platform/am437x/am437x-vpfe.c | 6 +-- drivers/media/platform/davinci/vpfe_capture.c | 19 ++++---- drivers/media/platform/s5p-tv/hdmi_drv.c | 12 +++-- drivers/media/platform/s5p-tv/mixer_drv.c | 15 ++++-- drivers/media/platform/s5p-tv/sdo_drv.c | 14 ++++-- drivers/media/platform/soc_camera/mx2_camera.c | 13 ++++-- drivers/media/platform/soc_camera/mx3_camera.c | 25 +++++----- drivers/media/platform/soc_camera/omap1_camera.c | 17 ++++--- drivers/media/platform/soc_camera/pxa_camera.c | 21 +++++---- drivers/media/platform/soc_camera/rcar_vin.c | 46 ++++++++++-------- .../platform/soc_camera/sh_mobile_ceu_camera.c | 54 ++++++++++++---------- drivers/media/platform/soc_camera/soc_camera.c | 15 +++--- .../platform/soc_camera/soc_camera_platform.c | 9 ++-- include/media/v4l2-subdev.h | 4 -- 39 files changed, 352 insertions(+), 261 deletions(-) commit ebcff5fce6b189306756b0cb06779e15f1c93848 Author: Hans Verkuil Date: Thu Apr 9 04:01:33 2015 -0300 [media] v4l2: replace enum_mbus_fmt by enum_mbus_code Replace all calls to the enum_mbus_fmt video op by the pad enum_mbus_code op and remove the duplicate video op. Signed-off-by: Hans Verkuil Acked-by: Guennadi Liakhovetski Acked-by: Scott Jiang Cc: Jonathan Corbet Cc: Kamil Debski Acked-by: Prabhakar Lad Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/adv7170.c | 15 ++++++++---- drivers/media/i2c/adv7175.c | 15 ++++++++---- drivers/media/i2c/adv7183.c | 15 ++++++++---- drivers/media/i2c/adv7842.c | 11 +++++---- drivers/media/i2c/ak881x.c | 15 ++++++++---- drivers/media/i2c/ml86v7667.c | 15 ++++++++---- drivers/media/i2c/mt9v011.c | 15 ++++++++---- drivers/media/i2c/ov7670.c | 11 +++++---- drivers/media/i2c/soc_camera/imx074.c | 16 +++++++++---- drivers/media/i2c/soc_camera/mt9m001.c | 15 ++++++++---- drivers/media/i2c/soc_camera/mt9m111.c | 15 ++++++++---- drivers/media/i2c/soc_camera/mt9t031.c | 15 ++++++++---- drivers/media/i2c/soc_camera/mt9t112.c | 15 ++++++++---- drivers/media/i2c/soc_camera/mt9v022.c | 15 ++++++++---- drivers/media/i2c/soc_camera/ov2640.c | 15 ++++++++---- drivers/media/i2c/soc_camera/ov5642.c | 15 ++++++++---- drivers/media/i2c/soc_camera/ov6650.c | 15 ++++++++---- drivers/media/i2c/soc_camera/ov772x.c | 15 ++++++++---- drivers/media/i2c/soc_camera/ov9640.c | 15 ++++++++---- drivers/media/i2c/soc_camera/ov9740.c | 19 +++++++++------ drivers/media/i2c/soc_camera/rj54n1cb0c.c | 15 ++++++++---- drivers/media/i2c/soc_camera/tw9910.c | 15 ++++++++---- drivers/media/i2c/sr030pc30.c | 16 +++++++++---- drivers/media/i2c/tvp514x.c | 20 ---------------- drivers/media/i2c/tvp5150.c | 15 ++++++++---- drivers/media/i2c/tvp7002.c | 20 ---------------- drivers/media/i2c/vs6624.c | 15 ++++++++---- drivers/media/platform/blackfin/bfin_capture.c | 17 +++++++++----- drivers/media/platform/soc_camera/atmel-isi.c | 19 ++++++++------- drivers/media/platform/soc_camera/mx2_camera.c | 27 ++++++++++++---------- drivers/media/platform/soc_camera/mx3_camera.c | 23 ++++++++++-------- drivers/media/platform/soc_camera/omap1_camera.c | 21 +++++++++-------- drivers/media/platform/soc_camera/pxa_camera.c | 19 ++++++++------- drivers/media/platform/soc_camera/rcar_vin.c | 19 ++++++++------- .../platform/soc_camera/sh_mobile_ceu_camera.c | 19 ++++++++------- drivers/media/platform/soc_camera/soc_camera.c | 15 ++++++++---- .../platform/soc_camera/soc_camera_platform.c | 15 ++++++++---- include/media/v4l2-subdev.h | 4 ---- 38 files changed, 361 insertions(+), 250 deletions(-) commit 90874cd61d5f5260714fc1b5728a3fbb28348b53 Author: Mauro Carvalho Chehab Date: Fri May 1 08:30:06 2015 -0300 dt3155: fix CodingStyle issues There are a few lines longer than 80 cols for no good reason. Fix them sooner than latter, making checkpatch.pl happy. Cc: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/dt3155/dt3155.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) commit 7c89a21b88e6a07e1be811508f381673f498bc8a Author: Hans Verkuil Date: Sun Apr 26 06:27:00 2015 -0300 [media] dt3155: add GFP_DMA32 flag to vb2 queue Ensure that buffers are allocated from the DMA32 zone since this device only handles 32 bit DMA addresses. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/dt3155/dt3155.c | 1 + 1 file changed, 1 insertion(+) commit cc11b140c3f1ad80a9a7c5422748c041cb5fddfb Author: Hans Verkuil Date: Sat Apr 25 12:36:18 2015 -0300 [media] dt3155: move out of staging into drivers/media/pci The dt3155 code is now in good shape, so move it out of staging into drivers/media/pci. Mark in MAINTAINERS that I'll do Odd Fixes for this driver. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab MAINTAINERS | 8 + drivers/media/pci/Kconfig | 1 + drivers/media/pci/Makefile | 1 + drivers/media/pci/dt3155/Kconfig | 13 + drivers/media/pci/dt3155/Makefile | 1 + drivers/media/pci/dt3155/dt3155.c | 626 ++++++++++++++++++++++++++++ drivers/media/pci/dt3155/dt3155.h | 196 +++++++++ drivers/staging/media/Kconfig | 2 - drivers/staging/media/Makefile | 1 - drivers/staging/media/dt3155v4l/Kconfig | 13 - drivers/staging/media/dt3155v4l/Makefile | 1 - drivers/staging/media/dt3155v4l/dt3155v4l.c | 626 ---------------------------- drivers/staging/media/dt3155v4l/dt3155v4l.h | 196 --------- 13 files changed, 846 insertions(+), 839 deletions(-) commit c34b7ef551a37d899d3e896fd2b72f83b820a574 Author: Hans Verkuil Date: Sat Apr 25 12:19:02 2015 -0300 [media] dt3155v4l: support inputs VID0-3 The dt3155 together with the J1 breakout cable supports 4 inputs. Add support for all inputs VID0 - VID3. Note that input VID0 is shared with input J2. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/staging/media/dt3155v4l/dt3155v4l.c | 18 ++++++++++++++---- drivers/staging/media/dt3155v4l/dt3155v4l.h | 2 ++ 2 files changed, 16 insertions(+), 4 deletions(-) commit 44a38dfb6a00dcc4ef6010b39bc4dfc6a54263d8 Author: Hans Verkuil Date: Sat Apr 25 12:16:45 2015 -0300 [media] dt3155v4l: fix format handling Fix various v4l2-compliance issues regarding format handling. Main problem was a missing colorspace value and incorrect format checks. This driver supports a single format only. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/staging/media/dt3155v4l/dt3155v4l.c | 52 +++++------------------------ 1 file changed, 8 insertions(+), 44 deletions(-) commit 5c9ede4442ac4e4b27ddf75dfd1d78578e244980 Author: Hans Verkuil Date: Sat Apr 25 12:11:50 2015 -0300 [media] dt3155v4l: drop CONFIG_DT3155_CCIR, use s_std instead There is no need for CONFIG_DT3155_CCIR to select between 50/60 Hz, that's why we have s_std. Since this is a simple framegrabber there is no need for g/s_parm. The frame period can be obtained via ENUMSTD instead. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/staging/media/dt3155v4l/Kconfig | 8 -- drivers/staging/media/dt3155v4l/dt3155v4l.c | 132 ++++++++++------------------ drivers/staging/media/dt3155v4l/dt3155v4l.h | 17 ++-- 3 files changed, 54 insertions(+), 103 deletions(-) commit 9db8baffbfdb863c8828c610db8857597d7a44ab Author: Hans Verkuil Date: Sat Apr 25 12:01:55 2015 -0300 [media] dt3155v4l: correctly start and stop streaming Don't start streaming when a buffer is queued, instead implement the start_streaming op and do it there, leaving it up to the vb2 framework to call start_streaming when enough buffers have been queued. And don't stop streaming from within the interrupt routine, instead do that in stop_streaming. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/staging/media/dt3155v4l/dt3155v4l.c | 124 +++++++++++++++------------- drivers/staging/media/dt3155v4l/dt3155v4l.h | 4 +- 2 files changed, 67 insertions(+), 61 deletions(-) commit a6e951441406c3e9bc949251d6b1d70205eb6992 Author: Hans Verkuil Date: Sat Apr 25 11:54:49 2015 -0300 [media] dt3155v4l: drop CONFIG_DT3155_STREAMING No need to do this as a config option. Just support both MMAP and read() methods like any other driver. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/staging/media/dt3155v4l/Kconfig | 8 -------- drivers/staging/media/dt3155v4l/dt3155v4l.c | 8 +------- 2 files changed, 1 insertion(+), 15 deletions(-) commit 9556be12177e98bc7a566a80246e083d9892f863 Author: Hans Verkuil Date: Sat Apr 25 11:51:36 2015 -0300 [media] dt3155v4l: move vb2_queue to top-level Instead of initializing the vb2_queue in open (and freeing in release) do this in probe/remove instead. And as a bonus use the vb2 helper functions to greatly simplify the driver. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/staging/media/dt3155v4l/dt3155v4l.c | 233 +++++++--------------------- drivers/staging/media/dt3155v4l/dt3155v4l.h | 8 +- 2 files changed, 57 insertions(+), 184 deletions(-) commit deb2897824f21e69ac3b325786b8190f1d7f2bfd Author: Hans Verkuil Date: Sat Apr 25 11:41:31 2015 -0300 [media] dt3155v4l: remove bogus single-frame capture in init_board For some weird reason an attempt is made in init_board to capture a single frame. No clue why, and everything works fine without that code. I suspect this was test code that was never removed. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/staging/media/dt3155v4l/dt3155v4l.c | 41 +++++------------------------ drivers/staging/media/dt3155v4l/dt3155v4l.h | 3 +++ 2 files changed, 10 insertions(+), 34 deletions(-) commit 5dcabee2c37841f14dfdef97673ef28094928733 Author: Hans Verkuil Date: Sat Apr 25 11:36:27 2015 -0300 [media] dt3155v4l: remove pointless dt3155_alloc/free_coherent No idea what the purpose is of these functions. I suspect this was used once upon a time to pre-allocate buffer memory. But the allocated memory isn't used anywhere anymore, so just remove this code. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/staging/media/dt3155v4l/dt3155v4l.c | 71 ----------------------------- 1 file changed, 71 deletions(-) commit 168b5092cc140fe5c2d68a6d4d2c0c4ba519541a Author: Hans Verkuil Date: Sat Apr 25 11:32:54 2015 -0300 [media] dt3155v4l: add v4l2_device support Add struct v4l2_device and register it. Also move the request_irq to probe instead of doing that in open(). Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/staging/media/dt3155v4l/dt3155v4l.c | 45 +++++++++++++++++------------ drivers/staging/media/dt3155v4l/dt3155v4l.h | 4 +++ 2 files changed, 31 insertions(+), 18 deletions(-) commit 79656225e3270fcf5937d46fe45f40dcbd1e4217 Author: Hans Verkuil Date: Sat Apr 25 11:23:06 2015 -0300 [media] dt3155v4l: remove unused statistics Remove struct dt3155_stats since it isn't used. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/staging/media/dt3155v4l/dt3155v4l.c | 3 --- drivers/staging/media/dt3155v4l/dt3155v4l.h | 16 ---------------- 2 files changed, 19 deletions(-) commit 6a11087be311216d712a1e984e599cebb1314ff9 Author: Hans Verkuil Date: Sat Apr 25 11:19:50 2015 -0300 [media] dt3155v4l: code cleanup - Fix various spelling mistakes - Whitespace cleanups - Remove _ioc_ from ioctl names to shorten those names - Remove bogus ifdef __KERNEL__ - Remove commented out code No actual code is changed in this patch. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/staging/media/dt3155v4l/dt3155v4l.c | 202 +++++++++------------------- drivers/staging/media/dt3155v4l/dt3155v4l.h | 8 -- 2 files changed, 66 insertions(+), 144 deletions(-) commit 90ca75fd1945d9e51e21cbde0aae1aad68730dc5 Author: Alexey Khoroshilov Date: Fri Apr 3 21:16:01 2015 -0300 [media] marvell-ccic: fix memory leak on failure path in cafe_smbus_setup() If i2c_add_adapter() fails, adap is not deallocated. Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Alexey Khoroshilov Acked-by: Jonathan Corbet Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/marvell-ccic/cafe-driver.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 8380b7e449d800037330011c4e0ab5caeab91a6b Author: Hans Verkuil Date: Sat Mar 14 08:47:01 2015 -0300 [media] marvell-ccic: fix V4L2_PIX_FMT_SBGGR8 support The REG_CTRL0 register was never written if this format was selected, instead an error was logged and whatever was last set in that register was used. Surprisingly, that seems to work if YUYV was selected, but we should program this register explicitly. Signed-off-by: Hans Verkuil Acked-by: Jonathan Corbet Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/marvell-ccic/mcam-core.c | 4 ++++ 1 file changed, 4 insertions(+) commit 85ad0a3f68f0ae223293282aecc87fb233a2dda5 Author: Hans Verkuil Date: Tue Mar 10 14:30:50 2015 -0300 [media] marvell-ccic: drop support for PIX_FMT_422P I cannot get this format to work, the colors keep coming out wrong. Since this has never worked I just drop support for this. Signed-off-by: Hans Verkuil Acked-by: Jonathan Corbet Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/marvell-ccic/mcam-core.c | 19 ------------------- 1 file changed, 19 deletions(-) commit 47ba7dbab6338a9f3f4df23ec6e26cc2e0937144 Author: Hans Verkuil Date: Mon Mar 9 17:14:36 2015 -0300 [media] marvell-ccic: fix the bytesperline and sizeimage calculations These were calculated incorrectly for the planar formats. Signed-off-by: Hans Verkuil Acked-by: Jonathan Corbet Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/marvell-ccic/mcam-core.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) commit 75eb984714cf5fb779c9827a0f696a31cbbced6d Author: Hans Verkuil Date: Mon Mar 9 17:04:12 2015 -0300 [media] ov7670: use colorspace SRGB instead of JPEG Even though the format is Y'CbCr, the colorspace used by the sensor is almost certainly SRGB. The sensor is also not generating JPEG data, so it makes no sense to use V4L2_COLORSPACE_JPEG here. Signed-off-by: Hans Verkuil Acked-by: Jonathan Corbet Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/ov7670.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 989b784750278c0b3514d1da9227ec8b42838693 Author: Hans Verkuil Date: Mon Mar 9 17:02:41 2015 -0300 [media] marvell-ccic: drop V4L2_PIX_FMT_JPEG dead code This driver appeared to support the JPEG format when in reality that was just dead code. Remove it. Signed-off-by: Hans Verkuil Acked-by: Jonathan Corbet Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/marvell-ccic/mcam-core.c | 9 --------- 1 file changed, 9 deletions(-) commit 6eb40d594b886fbd9d45cffd7a7a1f989d8389b1 Author: Hans Verkuil Date: Mon Mar 9 16:59:59 2015 -0300 [media] marvell-ccic: add planar support to dma-vmalloc The dma-vmalloc implementation didn't support planar formats, but with a little bit of refactoring that is easy to fix. Signed-off-by: Hans Verkuil Acked-by: Jonathan Corbet Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/marvell-ccic/mcam-core.c | 94 ++++++++++++------------- 1 file changed, 46 insertions(+), 48 deletions(-) commit ca657b28fd63f0f0971247e12727d286043b1d15 Author: Hans Verkuil Date: Thu Mar 5 18:00:07 2015 -0300 [media] marvell-ccic: correctly requeue buffers If start_streaming fails or stop_streaming is called, then all queued buffers need to be given back to vb2. This prevents vb2 from calling WARN_ON when it detects that this is not done correctly. Signed-off-by: Hans Verkuil Acked-by: Jonathan Corbet Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/marvell-ccic/mcam-core.c | 39 ++++++++++++++++++++----- 1 file changed, 32 insertions(+), 7 deletions(-) commit 534234299867abb1db534a10c63cd155c7c6fb8e Author: Hans Verkuil Date: Thu Mar 5 17:48:39 2015 -0300 [media] marvell-ccic: fix streaming issues - fill in timestamp - fill in field - start the sequence counter at 0, not 1 Signed-off-by: Hans Verkuil Acked-by: Jonathan Corbet Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/marvell-ccic/mcam-core.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit ca16a64bfc7c9898566ebd907078e830e6e2836b Author: Hans Verkuil Date: Mon Mar 9 18:02:23 2015 -0300 [media] marvell-ccic: add DMABUF support for all three DMA modes Add VB2_DMABUF and VIDIOC_EXPBUF support. Also add VB2_USERPTR support for the vmalloc DMA mode which was missing for no good reason. Signed-off-by: Hans Verkuil Acked-by: Jonathan Corbet Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/marvell-ccic/mcam-core.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit e198d0ff25a7b86ca74a12645e4f55d20be6811e Author: Hans Verkuil Date: Thu Mar 5 17:37:51 2015 -0300 [media] marvell-ccic: add create_bufs support This fixes the final v4l2-compliance warning. Signed-off-by: Hans Verkuil Acked-by: Jonathan Corbet Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/marvell-ccic/mcam-core.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 949bd4081ffe953af98b6ac7ebe0a8d59996fce9 Author: Hans Verkuil Date: Thu Mar 5 17:33:17 2015 -0300 [media] marvell-ccic: use vb2 helpers and core locking Use the V4L2 core locking system instead of rolling your own. Switch to the vb2 fop and ioctl helpers to get rid of a lot of code. This also made it easy to add VB2_READ to the DMA modes, since you get read() for free with vb2 and these helpers. Finally remove the users field: this information is also available from the core framework, no need to keep track of it in the driver. Signed-off-by: Hans Verkuil Acked-by: Jonathan Corbet Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/marvell-ccic/mcam-core.c | 218 +++++------------------- drivers/media/platform/marvell-ccic/mcam-core.h | 1 - 2 files changed, 43 insertions(+), 176 deletions(-) commit 87d184300d6c50050b88d2d8a3aaab11eaa0c872 Author: Hans Verkuil Date: Thu Mar 5 13:05:24 2015 -0300 [media] marvell-ccic: implement control events Now that this driver uses v4l2_fh, it is trivial to add support for control events. Again, this fixes a v4l2-compliance failure. Signed-off-by: Hans Verkuil Acked-by: Jonathan Corbet Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/marvell-ccic/mcam-core.c | 3 +++ 1 file changed, 3 insertions(+) commit 44fbcb10cf35e3ede61b385733ad496d40c5b979 Author: Hans Verkuil Date: Thu Mar 5 13:03:18 2015 -0300 [media] marvell-ccic: switch to struct v4l2_fh Use struct v4l2_fh to represent a filehandle. This fixes the missing g/s_priority handling of this driver that v4l2-compliance complained about. Signed-off-by: Hans Verkuil Acked-by: Jonathan Corbet Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/marvell-ccic/mcam-core.c | 48 +++++++++++++------------ 1 file changed, 26 insertions(+), 22 deletions(-) commit 1e4cbe677f596563060709b3af92480f873a0a6e Author: Hans Verkuil Date: Thu Mar 5 12:00:11 2015 -0300 [media] marvell-ccic: control handler fixes No controls were reported, even though the ov7670 does have controls. Two reasons for this: the v4l2_ctrl_handler_init() call must come before the ov7670 is loaded (otherwise the ov7670 won't know that its controls should be added to the bridge driver), and the v4l2_ctrl_handler_free() call at the end should only be called if the ret value is non-zero (otherwise you would just free all the controls that were just added). Signed-off-by: Hans Verkuil Acked-by: Jonathan Corbet Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/marvell-ccic/mcam-core.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) commit 2e6e609530a1f4306b8fb3e2c4d6abff9d9be30e Author: Hans Verkuil Date: Thu Mar 5 05:19:23 2015 -0300 [media] marvell-ccic: fill in colorspace The colorspace field wasn't filled in properly. This fixes a v4l2-compliance failure. Signed-off-by: Hans Verkuil Acked-by: Jonathan Corbet Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/marvell-ccic/mcam-core.c | 2 ++ 1 file changed, 2 insertions(+) commit b8cc79fd83b09fb3137fe3721bc4e161cec54ead Author: Hans Verkuil Date: Thu Mar 5 05:15:30 2015 -0300 [media] ov7670: check for valid width/height in ov7670_enum_frame_interval The width and height should be checked in the enum_frame_interval op. This fixes a v4l2-compliance failure. Signed-off-by: Hans Verkuil Acked-by: Jonathan Corbet Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/ov7670.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) commit 5a878f97fd8487b24f1328b75cfda069dc28f99b Author: Hans Verkuil Date: Thu Mar 5 05:01:28 2015 -0300 [media] marvell-ccic: webcam drivers shouldn't support g/s_std TV standards make no sense for webcam drivers, so drop these dummy functions. This stops v4l2-compliance from complaining about this. Signed-off-by: Hans Verkuil Acked-by: Jonathan Corbet Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/marvell-ccic/mcam-core.c | 15 --------------- 1 file changed, 15 deletions(-) commit b7b683938a262a63b793f629d0f006e40029604f Author: Hans Verkuil Date: Thu Mar 5 04:57:32 2015 -0300 [media] marvell-ccic: fill in bus_info The bus_info field of struct v4l2_querycap wasn't filled in and v4l2-compliance complained about that. Fix this. Signed-off-by: Hans Verkuil Acked-by: Jonathan Corbet Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/marvell-ccic/cafe-driver.c | 1 + drivers/media/platform/marvell-ccic/mcam-core.c | 3 +++ drivers/media/platform/marvell-ccic/mcam-core.h | 2 ++ drivers/media/platform/marvell-ccic/mmp-driver.c | 1 + 4 files changed, 7 insertions(+) commit 17d3675a8ae464954f604f6be518a0d2af1debda Author: Hans Verkuil Date: Tue Mar 3 15:07:27 2015 -0300 [media] marvell-ccic: fix vb2 warning We must set timestamp_flags in vb2_queue otherwise vb2 will complain loudly about it. Signed-off-by: Hans Verkuil Acked-by: Jonathan Corbet Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/marvell-ccic/mcam-core.c | 1 + 1 file changed, 1 insertion(+) commit a988410ad141b5087f483ae32e4bd9b922be5ab8 Author: Hans Verkuil Date: Fri Apr 24 04:26:01 2015 -0300 [media] usbtv: fix v4l2-compliance issues Running v4l2-compliance on my usbtv stick revealed two failures: 1) Correct handling of CREATE_BUFS in usbtv_queue_setup was missing. Added this. 2) The sequence counter wasn't reset to 0 when starting streaming. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/usbtv/usbtv-video.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 2b4fd3ede3bab65ef5b97387b90899d11e4d3202 Author: Hans Verkuil Date: Fri Apr 24 03:55:07 2015 -0300 [media] cx18: add missing caps for the PCM video device The cx18 PCM video device didn't have any capabilities set, which caused a warnings in the v4l2 core: [ 6.229393] ------------[ cut here ]------------ [ 6.229414] WARNING: CPU: 1 PID: 593 at drivers/media/v4l2-core/v4l2-ioctl.c:1025 v4l_querycap+0x41/0x70 [videodev]() [ 6.229415] Modules linked in: cx18_alsa mxl5005s s5h1409 tuner_simple tuner_types cs5345 tuner intel_rapl iosf_mbi x86_pkg_temp_thermal coretemp raid1 snd_hda_codec_realtek kvm_intel snd_hda_codec_generic snd_hda_codec_hdmi kvm snd_oxygen(+) snd_hda_intel snd_oxygen_lib snd_hda_controller snd_hda_codec snd_mpu401_uart iTCO_wdt snd_rawmidi iTCO_vendor_support snd_hwdep crct10dif_pclmul crc32_pclmul crc32c_intel snd_seq cx18 snd_seq_device ghash_clmulni_intel videobuf_vmalloc tveeprom cx2341x snd_pcm serio_raw videobuf_core vfat dvb_core fat v4l2_common snd_timer videodev snd lpc_ich i2c_i801 joydev mfd_core mei_me media soundcore tpm_infineon soc_button_array tpm_tis mei shpchp tpm nfsd auth_rpcgss nfs_acl lockd grace sunrpc binfmt_misc i915 nouveau mxm_wmi wmi e1000e ttm i2c_algo_bit drm_kms_helper [ 6.229444] drm ptp pps_core video [ 6.229446] CPU: 1 PID: 593 Comm: v4l_id Not tainted 3.19.3-200.fc21.x86_64 #1 [ 6.229447] Hardware name: Gigabyte Technology Co., Ltd. Z87-D3HP/Z87-D3HP-CF, BIOS F6 01/20/2014 [ 6.229448] 0000000000000000 00000000d12b1131 ffff88042dacfc28 ffffffff8176e215 [ 6.229449] 0000000000000000 0000000000000000 ffff88042dacfc68 ffffffff8109bc1a [ 6.229451] ffffffffa0594000 ffff88042dacfd90 0000000000000000 ffffffffa04e2140 [ 6.229452] Call Trace: [ 6.229466] [] dump_stack+0x45/0x57 [ 6.229469] [] warn_slowpath_common+0x8a/0xc0 [ 6.229472] [] warn_slowpath_null+0x1a/0x20 [ 6.229474] [] v4l_querycap+0x41/0x70 [videodev] [ 6.229477] [] __video_do_ioctl+0x29c/0x320 [videodev] [ 6.229479] [] ? do_last+0x2f1/0x1210 [ 6.229491] [] video_usercopy+0x366/0x5d0 [videodev] [ 6.229494] [] ? v4l_querycap+0x70/0x70 [videodev] [ 6.229497] [] video_ioctl2+0x15/0x20 [videodev] [ 6.229499] [] v4l2_ioctl+0x164/0x180 [videodev] [ 6.229501] [] do_vfs_ioctl+0x2f8/0x500 [ 6.229502] [] SyS_ioctl+0x81/0xa0 [ 6.229505] [] system_call_fastpath+0x12/0x17 [ 6.229506] ---[ end trace dacd80d4b19277ea ]--- Added the necessary capabilities to stop this warning. Signed-off-by: Hans Verkuil Reported-by: Laura Abbott Cc: # for v3.19 and up Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/cx18/cx18-streams.c | 1 + 1 file changed, 1 insertion(+) commit 3600433f19f59410010770d61ead509d785b8a6e Author: Mauro Carvalho Chehab Date: Fri May 1 07:30:40 2015 -0300 saa7164: Fix CodingStyle issues added on previous patches The patches that added support for HVR2255 and HVR2205 added some CodingStyle issues. Better to fix it sooner than latter. Cc: Steven Toth Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/saa7164/saa7164-api.c | 3 ++- drivers/media/pci/saa7164/saa7164-dvb.c | 34 +++++++++++++++++++-------------- 2 files changed, 22 insertions(+), 15 deletions(-) commit 534bc3e2ee93835badca753bedce8073c67caa92 Author: Hans Verkuil Date: Fri Mar 27 15:17:56 2015 -0300 [media] saa7164: fix querycap warning Fix the VIDIOC_QUERYCAP warning due to the missing device_caps. Don't fill in the version field, the V4L2 core will do that for you. Signed-off-by: Hans Verkuil Cc: # for v3.19 and up Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/saa7164/saa7164-encoder.c | 11 ++++++----- drivers/media/pci/saa7164/saa7164-vbi.c | 11 ++++++----- 2 files changed, 12 insertions(+), 10 deletions(-) commit fb6bcec3cec6acedaebc92aef7f4203e2502e318 Author: Steven Toth Date: Sat Mar 28 09:07:47 2015 -0300 [media] saa7164: fix HVR2255 ATSC inversion issue QAM mode in the LGDT3306 auto detects inversion. VSB does not. Forgot to include tis fact in the original patch set. Tested with QAM and VSB after this patch, working fine. Signed-off-by: Steven Toth Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/saa7164/saa7164-dvb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 63a412ec36ce90daec425ed0ab127e1af7e061fb Author: Steven Toth Date: Mon Mar 23 16:08:15 2015 -0300 [media] saa7164: Copyright update Updates the copyright notes at the saa7164 driver. Signed-off-by: Steven Toth Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/saa7164/saa7164-api.c | 2 +- drivers/media/pci/saa7164/saa7164-buffer.c | 2 +- drivers/media/pci/saa7164/saa7164-bus.c | 2 +- drivers/media/pci/saa7164/saa7164-cards.c | 2 +- drivers/media/pci/saa7164/saa7164-cmd.c | 2 +- drivers/media/pci/saa7164/saa7164-core.c | 2 +- drivers/media/pci/saa7164/saa7164-dvb.c | 2 +- drivers/media/pci/saa7164/saa7164-encoder.c | 2 +- drivers/media/pci/saa7164/saa7164-fw.c | 2 +- drivers/media/pci/saa7164/saa7164-i2c.c | 2 +- drivers/media/pci/saa7164/saa7164-reg.h | 2 +- drivers/media/pci/saa7164/saa7164-types.h | 2 +- drivers/media/pci/saa7164/saa7164-vbi.c | 2 +- drivers/media/pci/saa7164/saa7164.h | 2 +- 14 files changed, 14 insertions(+), 14 deletions(-) commit 504b29cbb0cc0fb7169c276054a72110b57660c0 Author: Steven Toth Date: Mon Mar 23 15:45:48 2015 -0300 [media] saa7164: Add Digital TV support for the HVR2255 and HVR2205 Adding support for the Hauppauge HVR2255 and Hauppauge HVR2205 PCIe cards. Digital TV for DVB-T and ATSC/US-Cable is known to work. Support for analog RF tuners does not work due to a lack of analog support in the upstream SI2157 driver. Signed-off-by: Steven Toth Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/saa7164/saa7164-cards.c | 186 ++++++++++++++++++++++++ drivers/media/pci/saa7164/saa7164-dvb.c | 230 ++++++++++++++++++++++++++++-- drivers/media/pci/saa7164/saa7164.h | 5 + 3 files changed, 407 insertions(+), 14 deletions(-) commit ad90b6b0f10566d4a5546e27fe455ce3b5e6b6c7 Author: Steven Toth Date: Mon Mar 23 15:42:53 2015 -0300 [media] saa7164: Improvements for I2C handling Workaround oddball I2C issues caused by using newer SILABS devices. Signed-off-by: Steven Toth Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/saa7164/saa7164-api.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit 8ed5e4e89c321cd7eab936517dc7e3a249299e24 Author: Steven Toth Date: Mon Mar 23 15:41:03 2015 -0300 [media] saa7164: Adding additional I2C debug Assists with debugging difficult I2C devices. Signed-off-by: Steven Toth Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/saa7164/saa7164-api.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 5f954b5be4bf42e85e0a204518499bda8ee2f419 Author: Steven Toth Date: Mon Mar 23 15:37:32 2015 -0300 [media] saa7164: I2C improvements for upcoming HVR2255/2205 boards SI2168/SI2157 issue single byte address reads. Add support for these. Signed-off-by: Steven Toth Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/saa7164/saa7164-i2c.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 5f5859d1c158b42343d343f5d1aa6de8643b8cf6 Author: Dan Carpenter Date: Wed Apr 15 16:12:18 2015 -0300 [media] i2c: ov2659: signedness bug inov2659_set_fmt() This needs to be signed or there is a risk of hitting a forever loop. Fixes: c4c0283ab3cd ('[media] media: i2c: add support for omnivision's ov2659 sensor') Signed-off-by: Dan Carpenter Acked-by: Lad, Prabhakar Acked-by: Benoit Parrot Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/ov2659.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 48b25a3a713b90988b6882d318f7c0a6bed9aabc Author: Jan Kara Date: Tue Mar 17 08:56:31 2015 -0300 [media] vb2: Push mmap_sem down to memops Currently vb2 core acquires mmap_sem just around call to __qbuf_userptr(). However since commit f035eb4e976ef5 (videobuf2: fix lockdep warning) it isn't necessary to acquire it so early as we no longer have to drop queue mutex before acquiring mmap_sem. So push acquisition of mmap_sem down into .get_userptr and .put_userptr memops so that the semaphore is acquired for a shorter time and it is clearer what it is needed for. Signed-off-by: Jan Kara Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/videobuf2-core.c | 2 -- drivers/media/v4l2-core/videobuf2-dma-contig.c | 7 +++++++ drivers/media/v4l2-core/videobuf2-dma-sg.c | 6 ++++++ drivers/media/v4l2-core/videobuf2-vmalloc.c | 6 +++++- 4 files changed, 18 insertions(+), 3 deletions(-) commit 9c3f205252f8ae2af9794d68bcbfc49fb0812ccf Author: Prashant Laddha Date: Wed Apr 22 14:32:37 2015 -0300 [media] v4l2-dv-timings: replace hsync magic number with a macro This change will not change timing calculation. In CVT generator spreadsheet the nominal value of hsync (as a percentage of line) is 8 percent. Cc: Martin Bugge Signed-off-by: Prashant Laddha Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/v4l2-dv-timings.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 947ed99e5d1b1595312a320fb9db4f52965ceeae Author: Prashant Laddha Date: Wed Apr 22 14:32:36 2015 -0300 [media] v4l2-dv-timings: add sanity checks in cvt,gtf calculations Wrong values of hfreq and image height can lead to strange timings. Avoid timing calculations for such values. Suggested By: Martin Bugge Cc: Martin Bugge Signed-off-by: Prashant Laddha Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/v4l2-dv-timings.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit d7ed5a3ddaec19d866ffc05ed2733179fbe4da9e Author: Prashant Laddha Date: Wed Apr 22 14:32:35 2015 -0300 [media] v4l2-dv-timings: fix rounding in hblank and hsync calculation Changed the rounding calculation for hblank and hsync to match it to equations in cvt and gtf standards. In cvt calculation, hsync needs to be rounded down. In gtf calculations, hblank needs to be rounded to nearest multiple of twice the cell granularity and hsync needs to be rounded to the nearest multiple of cell granularity. Cc: Martin Bugge Signed-off-by: Prashant Laddha Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/v4l2-dv-timings.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit f67476589afc9a4a48bc342f1b5f505b508bd1ff Author: Prashant Laddha Date: Wed Apr 22 14:32:34 2015 -0300 [media] v4l2-dv-timings: fix rounding error in vsync_bp calculation Changed the rounding offsets used in vsync_bp calculation in cvt and gtf timings. The results for vsync_bp should now match with results from timing generator spreadsheets for cvt and gtf standards. In the vsync_bp calculation for cvt, always round down the value of (CVT_MIN_VSYNC_BP / h_period_est) and then add 1. It thus, reflects the equation used in timing generator spreadsheet. Using 1999999 as rounding offset, could pontentially lead to bumping up the vsync_bp value by extra 1. In the vsync_bp calculations for gtf, instead of round up or round down, round the (CVT_MIN_VSYNC_BP / h_period_est) to the nearest integer. Thanks to Martin Bugge for validating with standards and suggestions on equations. Cc: Martin Bugge Signed-off-by: Prashant Laddha Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/v4l2-dv-timings.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit ef403bcaf16b704b772cf33cc2871fb8693d3bb3 Author: Geert Uytterhoeven Date: Thu Apr 23 15:09:07 2015 -0300 [media] Input: TOUCHSCREEN_SUR40 should depend on HAS_DMA If NO_DMA=y: warning: (TOUCHSCREEN_SUR40 && VIDEO_TW68 && VIDEO_CX23885 && VIDEO_CX25821 && VIDEO_CX88 && VIDEO_SAA7134) selects VIDEOBUF2_DMA_SG which has unmet direct dependencies (MEDIA_SUPPORT && HAS_DMA) ERROR: "dma_unmap_sg" [drivers/media/v4l2-core/videobuf2-dma-sg.ko] undefined! ERROR: "dma_map_sg" [drivers/media/v4l2-core/videobuf2-dma-sg.ko] undefined! ERROR: "dma_sync_sg_for_cpu" [drivers/media/v4l2-core/videobuf2-dma-sg.ko] undefined! TOUCHSCREEN_SUR40 selects VIDEOBUF2_DMA_SG, which bypasses its dependency on HAS_DMA. Make TOUCHSCREEN_SUR40 depend on HAS_DMA to fix this. Signed-off-by: Geert Uytterhoeven Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/input/touchscreen/Kconfig | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 5d9b709a1724f27fbb17add0e287134b7039e0aa Author: Geert Uytterhoeven Date: Thu Apr 23 15:09:06 2015 -0300 [media] v4l: VIDEOBUF2_DMA_SG should depend on HAS_DMA If NO_DMA=y: ERROR: "dma_unmap_sg" [drivers/media/v4l2-core/videobuf2-dma-sg.ko] undefined! ERROR: "dma_map_sg" [drivers/media/v4l2-core/videobuf2-dma-sg.ko] undefined! ERROR: "dma_sync_sg_for_cpu" [drivers/media/v4l2-core/videobuf2-dma-sg.ko] undefined! VIDEOBUF2_DMA_SG cannot be enabled manually by the user, it's always selected automatically by drivers that need it. Several of those drivers already have an explicit dependency on HAS_DMA. Make VIDEOBUF2_DMA_SG depend on HAS_DMA. This makes it easier to find drivers that select VIDEOBUF2_DMA_SG without depending on HAS_DMA, as Kconfig will give a warning. Signed-off-by: Geert Uytterhoeven Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bf7096c664ecb60c80845e1ce3a412a9a619ce36 Author: Geert Uytterhoeven Date: Thu Apr 23 15:09:05 2015 -0300 [media] v4l: xilinx: VIDEO_XILINX should depend on HAS_DMA If NO_DMA=y: warning: (VIDEO_XILINX && VIDEO_DM365_VPFE && VIDEO_DT3155 && VIDEO_OMAP4) selects VIDEOBUF2_DMA_CONTIG which has unmet direct dependencies (MEDIA_SUPPORT && HAS_DMA) media/v4l2-core/videobuf2-dma-contig.c: In function ‘vb2_dc_mmap’: media/v4l2-core/videobuf2-dma-contig.c:207: error: implicit declaration of function ‘dma_mmap_coherent’ media/v4l2-core/videobuf2-dma-contig.c: In function ‘vb2_dc_get_base_sgt’: media/v4l2-core/videobuf2-dma-contig.c:390: error: implicit declaration of function ‘dma_get_sgtable’ VIDEO_XILINX selects VIDEOBUF2_DMA_CONTIG, which bypasses its dependency on HAS_DMA. Make VIDEO_XILINX depend on HAS_DMA to fix this. Signed-off-by: Geert Uytterhoeven Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/xilinx/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 45339d5ba86acb3aaf18745a4b30be113a4c7429 Author: Hans Verkuil Date: Thu Apr 23 03:38:57 2015 -0300 [media] DocBook/media: Improve G_EDID specification When using VIDIOC_G_EDID there is a special case where start_blocks and blocks are both set to 0. In that case the driver just has to set blocks to the total number of available blocks and return 0. Even though the drivers do this right and v4l2-compliance tests for it, it turned out not to be documented in the spec. Fix this. Signed-off-by: Hans Verkuil Reported-by: Mats Randgaard Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/v4l/vidioc-g-edid.xml | 7 +++++++ 1 file changed, 7 insertions(+) commit e56f8ef05cf6e759a6094fabc537d984137dfd86 Author: Hans Verkuil Date: Fri Apr 17 05:29:08 2015 -0300 [media] DocBook/media: fix typo Fix copy-and-paste errors: Source -> Process Signed-off-by: Hans Verkuil Acked-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/v4l/controls.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 69bb7ab687164e1683b4f1d590b5940eb5a90921 Author: Cheolhyun Park Date: Mon Apr 13 11:29:09 2015 -0300 [media] drx-j: Misspelled comment corrected Fix several typos inside the driver's comments. Signed-off-by: Cheolhyun Park Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/drx39xyj/drxj.c | 38 ++++++++++++++--------------- 1 file changed, 19 insertions(+), 19 deletions(-) commit 5380baaf15a64575e2398810c4ed49fd0c9b6647 Author: jean-michel.hautbois@vodalys.com Date: Thu Apr 9 05:25:46 2015 -0300 [media] media: adv7604: Fix masks used for querying timings in ADV7611 All masks for timings are different between ADV7604 and ADV7611. Most of the values have 1 precision bit more in the latter. Fix this by adding new fields to the chip_info structure. Signed-off-by: Jean-Michel Hautbois Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/adv7604.c | 69 ++++++++++++++++++++++++++++++++++++--------- 1 file changed, 56 insertions(+), 13 deletions(-) commit 44b0c738c7b6cdd7d1121da87aeea1b226487efb Author: Julia Lawall Date: Sun Apr 5 09:06:24 2015 -0300 [media] radio: 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: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/radio/radio-timb.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit bfe40b79e9158f45be087a961da0454681e8d9fe Author: Julia Lawall Date: Sun Apr 5 09:06:23 2015 -0300 [media] as102: 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: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/as102/as102_drv.c | 1 + 1 file changed, 1 insertion(+) commit 50f2468ea0bfa1f93e47b433399ccb1b82f6818d Author: Julia Lawall Date: Sun Apr 5 09:06:22 2015 -0300 [media] si4713: 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: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/radio/si4713/si4713.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit de73e1321c263aa6760ca79b99af2600c9b4ac32 Author: Hans Verkuil Date: Fri Apr 3 08:13:14 2015 -0300 [media] bttv: fix missing irq after reloading driver If pci_disable_device() isn't called when the driver is removed, then the next time when it is loaded the irq isn't found. I'm pretty sure this used to work in the past, but calling pci_disable_device() is clearly the correct method and this makes it work again. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/bt8xx/bttv-driver.c | 2 ++ 1 file changed, 2 insertions(+) commit 9450684b7439202f62a37183104b31d884ff0de3 Author: Hans Verkuil Date: Fri Apr 3 07:22:40 2015 -0300 [media] cx88: v4l2-compliance fixes Fix three v4l2-compliance failures: - the colorspace wasn't set in vidioc_try_fmt_vid_cap(). - the field wasn't set in v4l2_buffer when vb2_buffer_done() was called. - the sequence wasn't set in v4l2_buffer when vb2_buffer_done() was called. This fix also removes the unused buf->count field and starts the count at 0 instead of 1. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/cx88/cx88-core.c | 2 ++ drivers/media/pci/cx88/cx88-mpeg.c | 6 +----- drivers/media/pci/cx88/cx88-vbi.c | 6 +----- drivers/media/pci/cx88/cx88-video.c | 7 ++----- drivers/media/pci/cx88/cx88.h | 1 - 5 files changed, 6 insertions(+), 16 deletions(-) commit 6752d73046bb54efa04afd1072dd3c283aba01f2 Author: Hans Verkuil Date: Tue Apr 21 10:39:49 2015 -0300 [media] vivid: drop format description The format description is now filled in by the core, so we can drop this in this virtual driver. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/vivid/vivid-core.h | 1 - drivers/media/platform/vivid/vivid-vid-cap.c | 4 -- drivers/media/platform/vivid/vivid-vid-common.c | 50 ------------------------- 3 files changed, 55 deletions(-) commit 5b7ccde2b4b888de332ede17f43de05efcdca632 Author: Hans Verkuil Date: Tue Apr 21 10:39:30 2015 -0300 [media] vim2m: drop format description The format description is now filled in by the core, so we can drop this in this virtual m2m driver. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/vim2m.c | 4 ---- 1 file changed, 4 deletions(-) commit ebb09a96242156660ba585de4b783fd93cdcfb61 Author: Hans Verkuil Date: Tue Apr 21 10:38:32 2015 -0300 [media] v4l2-pci-skeleton: drop format description The format description is now filled in by the core, so we can drop this in this skeleton driver. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab Documentation/video4linux/v4l2-pci-skeleton.c | 2 -- 1 file changed, 2 deletions(-) commit 99b7427761fe6381932a188a417ff4c47515b72e Author: Mauro Carvalho Chehab Date: Fri May 1 06:54:03 2015 -0300 v4l2-ioctl: add a missing break at v4l_fill_fmtdesc() The changeset ba3002045f8022 added a logic at the core to fill the format description, however, a break is missing on one of the formats, as reported by smatch: drivers/media/v4l2-core/v4l2-ioctl.c:1211 v4l_fill_fmtdesc() warn: missing break? reassigning 'descr' Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/v4l2-ioctl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ba3002045f8022f3a7e88511c4ebd9876a467ac8 Author: Hans Verkuil Date: Fri Mar 20 09:05:22 2015 -0300 [media] v4l2-ioctl: fill in the description for VIDIOC_ENUM_FMT The descriptions used in drivers for the formats returned with ENUM_FMT are all over the place. So instead allow the core to fill them in if the driver didn't. This allows drivers to drop the description and flags. Based on an earlier patch from Philipp Zabel: http://comments.gmane.org/gmane.linux.drivers.video-input-infrastructure/81411 Signed-off-by: Hans Verkuil Acked-by: Philipp Zabel Acked-by: Laurent Pinchart Acked-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/v4l2-ioctl.c | 199 +++++++++++++++++++++++++++++++++-- 1 file changed, 192 insertions(+), 7 deletions(-) commit 82f72c53813da40303214f4c4d65122b2c1ccc41 Author: Mauro Carvalho Chehab Date: Wed Apr 29 20:32:48 2015 -0300 [media] m2m-deinterlace: remove dead code As reported by smatch: drivers/media/platform/m2m-deinterlace.c:1063 deinterlace_probe() info: ignoring unreachable code. There's no need to call v4l2_m2m_release() here, as the last possible failure in this code is to allocate the m2m struct. Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/m2m-deinterlace.c | 1 - 1 file changed, 1 deletion(-) commit d5fbbb762bb51484bef3aecfddf0a31c2e708450 Author: Mauro Carvalho Chehab Date: Wed Apr 29 20:29:10 2015 -0300 [media] cx23885: fix bad indentation drivers/media/pci/cx23885/altera-ci.c:762 altera_ci_init() warn: inconsistent indenting Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/cx23885/altera-ci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ee120ae03b22d56dbd4194e90d9d23ead4dcc2f0 Author: Mauro Carvalho Chehab Date: Wed Apr 29 20:24:56 2015 -0300 [media] vivid: fix bad indenting drivers/media/platform/vivid/vivid-vid-out.c:1155 vivid_vid_out_g_parm() warn: inconsistent indenting Signed-off-by: Mauro Carvalho Chehab Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/vivid/vivid-vid-out.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit cd65d24e0373db95931c8542636aaa9ad1719e74 Author: Mauro Carvalho Chehab Date: Wed Apr 29 20:22:20 2015 -0300 [media] xirlink_cit: comment unreachable code drivers/media/usb/gspca/xirlink_cit.c:1776 cit_start_model2() info: ignoring unreachable code. drivers/media/usb/gspca/xirlink_cit.c:1858 cit_start_model2() info: ignoring unreachable code. drivers/media/usb/gspca/xirlink_cit.c:1910 cit_start_model2() info: ignoring unreachable code. Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/gspca/xirlink_cit.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit 48902bc7d0ca096da7ca17ad1428c370ed97f61b Author: Mauro Carvalho Chehab Date: Wed Apr 29 20:19:20 2015 -0300 [media] dw2102: fix bad indenting drivers/media/usb/dvb-usb/dw2102.c:440 dw2104_i2c_transfer() warn: inconsistent indenting Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/dvb-usb/dw2102.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ab4bc55ebd6d8f37674b0f0b228e643c118da3e0 Author: Mauro Carvalho Chehab Date: Wed Apr 29 17:17:24 2015 -0300 [media] af9005: fix bad indenting drivers/media/usb/dvb-usb/af9005-fe.c:484 af9005_fe_read_status() warn: inconsistent indenting Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/dvb-usb/af9005-fe.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 316c46b8f3468199b106e1c5e334b22bd34d0985 Author: Mauro Carvalho Chehab Date: Wed Apr 29 17:16:27 2015 -0300 [media] dib0700: fix bad indentation drivers/media/usb/dvb-usb/dib0700_devices.c:864 dib7770_set_param_override() warn: inconsistent indenting Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/dvb-usb/dib0700_devices.c | 32 ++++++++++++++--------------- 1 file changed, 16 insertions(+), 16 deletions(-) commit 3c2580f9ff6d6ec1d07a55bfbea8c69158f442be Author: Mauro Carvalho Chehab Date: Wed Apr 29 17:14:31 2015 -0300 [media] saa7134: fix bad indenting drivers/media/pci/saa7134/saa7134-dvb.c:1682 dvb_init() warn: inconsistent indenting Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/saa7134/saa7134-dvb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ff1522d54618504e622db5757774a9f4349ea770 Author: Mauro Carvalho Chehab Date: Wed Apr 29 17:11:35 2015 -0300 [media] usbvision: fix bad indentation drivers/media/usb/usbvision/usbvision-core.c:2395 usbvision_init_isoc() warn: inconsistent indenting Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/usbvision/usbvision-core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 69148bcd23cba0b4f457631847dda30560623449 Author: Mauro Carvalho Chehab Date: Wed Apr 29 17:10:47 2015 -0300 [media] s5p-mfc: fix bad indentation drivers/media/platform/s5p-mfc/s5p_mfc_opr_v5.c:187 s5p_mfc_alloc_codec_buffers_v5() warn: inconsistent indenting Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/s5p-mfc/s5p_mfc_opr_v5.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3ff105ed9fa7e5f33ac12871d830477d89871cb7 Author: Mauro Carvalho Chehab Date: Wed Apr 29 17:09:50 2015 -0300 [media] ttusb-dec: fix bad indentation drivers/media/usb/ttusb-dec/ttusb_dec.c:1434 ttusb_dec_init_stb() warn: inconsistent indenting Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/ttusb-dec/ttusb_dec.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 3192e0064571b725115452d7c35105ce458dd51f Author: Mauro Carvalho Chehab Date: Wed Apr 29 20:06:07 2015 -0300 [media] bttv: fix audio hooks as reported by smatch: drivers/media/pci/bt8xx/bttv-audio-hook.c:201 lt9415_audio() warn: bitwise AND condition is false here drivers/media/pci/bt8xx/bttv-audio-hook.c:241 winfast2000_audio() warn: bitwise AND condition is false here drivers/media/pci/bt8xx/bttv-audio-hook.c:276 pvbt878p9b_audio() warn: bitwise AND condition is false here drivers/media/pci/bt8xx/bttv-audio-hook.c:307 fv2000s_audio() warn: bitwise AND condition is false here drivers/media/pci/bt8xx/bttv-audio-hook.c:334 windvr_audio() warn: bitwise AND condition is false here drivers/media/pci/bt8xx/bttv-audio-hook.c:371 adtvk503_audio() warn: bitwise AND condition is false here there are some serious issues at the audio hook implementation. They're not following what's specified at the DocBook: http://linuxtv.org/downloads/v4l-dvb-apis/vidioc-g-tuner.html#tuner-audmode Basically, it was assuming that the audmode (V4L2_TUNER_MODE_foo) is a variable with a bit maskk. However, it isn't. The bitmask only applies to rxsubchans field (V4L2_TUNER_SUB_foo). As the code is also too complex, and not all hooks were returning both audmode and rxsubchans to a VIDIOC_G_TUNER, rewrite the functions, in order to fix both for get and set tuner ioctls. Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/bt8xx/bttv-audio-hook.c | 443 +++++++++++++++++++----------- 1 file changed, 275 insertions(+), 168 deletions(-) commit b674ac290e47623aa8e6791aed2d7395f7ea313f Author: Mauro Carvalho Chehab Date: Wed Apr 29 15:48:10 2015 -0300 [media] tda10086: change typecast to u64 to avoid smatch warnings drivers/media/dvb-frontends/tda10086.c:476 tda10086_get_frontend() warn: should 'tda10086_read_byte(state, 81) << 8' be a 64 bit type? Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/tda10086.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 05a848ecbb06d2b6cc5fc86ca227862a83ea0183 Author: Mauro Carvalho Chehab Date: Wed Apr 29 15:46:24 2015 -0300 [media] s5h1420: use only one statement per line drivers/media/dvb-frontends/s5h1420.c:565 s5h1420_setfec_inversion() warn: inconsistent indenting Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/s5h1420.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) commit 4e0b0036210daea5ec34c00bafd98e9457e93bcb Author: Mauro Carvalho Chehab Date: Wed Apr 29 15:41:45 2015 -0300 [media] stv0900: fix bad indenting drivers/media/dvb-frontends/stv0900_sw.c:1559 stv0900_search_srate_fine() warn: inconsistent indenting drivers/media/dvb-frontends/stv0900_sw.c:2012 stv0900_algo() warn: inconsistent indenting Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/stv0900_sw.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit e118120bd775f6a8718d4d9f2a42082a572fbc57 Author: Mauro Carvalho Chehab Date: Wed Apr 29 15:18:20 2015 -0300 [media] cx25840: fix bad identing drivers/media/i2c/cx25840/cx25840-core.c:974 input_change() warn: inconsistent indenting Signed-off-by: Mauro Carvalho Chehab Acked-by: Lad, Prabhakar Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/cx25840/cx25840-core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f419edd4f737ce893c2a4e8dc6863dfe853f6cf4 Author: Mauro Carvalho Chehab Date: Wed Apr 29 15:14:40 2015 -0300 [media] pvrusb2: fix inconsistent indenting smatch complains about multiple issues here: drivers/media/usb/pvrusb2/pvrusb2-context.c:402 pvr2_channel_claim_stream() warn: inconsistent indenting drivers/media/usb/pvrusb2/pvrusb2-ioread.c:240 pvr2_ioread_setup() warn: inconsistent indenting drivers/media/usb/pvrusb2/pvrusb2-ioread.c:255 pvr2_ioread_set_enabled() warn: inconsistent indenting drivers/media/usb/pvrusb2/pvrusb2-ioread.c:485 pvr2_ioread_read() warn: inconsistent indenting drivers/media/usb/pvrusb2/pvrusb2-io.c:522 pvr2_stream_set_callback() warn: inconsistent indenting drivers/media/usb/pvrusb2/pvrusb2-io.c:561 pvr2_stream_set_buffer_count() warn: inconsistent indenting drivers/media/usb/pvrusb2/pvrusb2-io.c:640 pvr2_buffer_queue() warn: inconsistent indenting drivers/media/usb/pvrusb2/pvrusb2-io.c:667 pvr2_buffer_set_buffer() warn: inconsistent indenting drivers/media/usb/pvrusb2/pvrusb2-io.c:668 pvr2_buffer_set_buffer() warn: inconsistent indenting drivers/media/usb/pvrusb2/pvrusb2-hdw.c:2614 pvr2_hdw_create() warn: inconsistent indenting drivers/media/usb/pvrusb2/pvrusb2-hdw.c:2740 pvr2_hdw_destroy() warn: inconsistent indenting drivers/media/usb/pvrusb2/pvrusb2-hdw.c:3353 pvr2_hdw_trigger_module_log() warn: inconsistent indenting Let's get rid of those, in order to cleanup as much as possible the smatch error log. Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/pvrusb2/pvrusb2-context.c | 3 ++- drivers/media/usb/pvrusb2/pvrusb2-hdw.c | 18 +++++++++++------ drivers/media/usb/pvrusb2/pvrusb2-io.c | 30 +++++++++++++++++++---------- drivers/media/usb/pvrusb2/pvrusb2-ioread.c | 24 +++++++++++++++-------- 4 files changed, 50 insertions(+), 25 deletions(-) commit e2f233d97b113402a97e322f5d4360915be741cc Author: Mauro Carvalho Chehab Date: Wed Apr 29 15:06:20 2015 -0300 [media] stk014: fix bad indenting drivers/media/usb/gspca/stk014.c:279 sd_start() warn: inconsistent indenting Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/gspca/stk014.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 513641293d1758a36c90cb8bb102eaafb696e153 Author: Mauro Carvalho Chehab Date: Wed Apr 29 15:05:28 2015 -0300 [media] sonixj: fix bad indenting drivers/media/usb/gspca/sonixj.c:1792 expo_adjust() warn: inconsistent indenting Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/gspca/sonixj.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6948524d577dcad963bcdfcbf6e7d934cd18b8f7 Author: Mauro Carvalho Chehab Date: Wed Apr 29 15:00:30 2015 -0300 [media] redrat3: change return argument on redrat3_send_cmd() to int redrat3_send_cmd() can return an error or the read data. However, it currently returns an u8, as reported by smatch: drivers/media/rc/redrat3.c:416 redrat3_send_cmd() warn: signedness bug returning '(-12)' Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/redrat3.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 269d91f53fe34b263c0b7735937f3b4ac5f56580 Author: Mauro Carvalho Chehab Date: Wed Apr 29 14:56:50 2015 -0300 [media] vp702x: comment dead code Since the first version of this driver, the remote controller code is disabled, adding an early return inside vp702x_rc_query(). Let's disable the code with #if 0, to remove this warning: drivers/media/usb/dvb-usb/vp702x.c:268 vp702x_rc_query() info: ignoring unreachable code. Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/dvb-usb/vp702x.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 6629e4de828080f6111b78b556afa096c089045a Author: Mauro Carvalho Chehab Date: Wed Apr 29 12:44:18 2015 -0300 [media] go7007: Comment some dead code drivers/media/usb/go7007/go7007-usb.c:1099 go7007_usb_probe() info: ignoring unreachable code. Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/go7007/go7007-usb.c | 4 ++++ 1 file changed, 4 insertions(+) commit f3f8ef22744bac7af1b01e6b066337f504fb352c Author: Mauro Carvalho Chehab Date: Wed Apr 29 12:23:49 2015 -0300 [media] dib0070: Fix indenting The indentation on this driver were deadly broken. On lots of places, it was using 4 spaces instead of tab to indent. On other parts, it were using tabs. Also, on several places, it were not even being properly aligned, as reported by smatch: drivers/media/dvb-frontends/dib0070.c:179 dib0070_set_bandwidth() warn: inconsistent indenting drivers/media/dvb-frontends/dib0070.c:198 dib0070_captrim() warn: inconsistent indenting drivers/media/dvb-frontends/dib0070.c:246 dib0070_set_ctrl_lo5() warn: inconsistent indenting drivers/media/dvb-frontends/dib0070.c:260 dib0070_ctrl_agc_filter() warn: inconsistent indenting drivers/media/dvb-frontends/dib0070.c:494 dib0070_tune_digital() warn: inconsistent indenting drivers/media/dvb-frontends/dib0070.c:498 dib0070_tune_digital() warn: inconsistent indenting drivers/media/dvb-frontends/dib0070.c:655 dib0070_reset() warn: inconsistent indenting drivers/media/dvb-frontends/dib0070.c:711 dib0070_reset() warn: curly braces intended? drivers/media/dvb-frontends/dib0070.c:713 dib0070_reset() warn: inconsistent indenting My first idea were to leave it as-is or to just touch the above. However, this won't be fixing anything. So, as painful as it is, let's fix indentation globally on the driver, and then address the inconsistencies. Hopefully, this driver doesn't have much patches, so it likely won't conflict to any other patch during this merge window. Besides the big size of this patch, no functional changes were done. Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/dib0070.c | 575 +++++++++++++++++----------------- 1 file changed, 287 insertions(+), 288 deletions(-) commit f9e2e0e8bac7e0c9ed5d0c30ccc08556ed0e11c6 Author: Mauro Carvalho Chehab Date: Wed Apr 29 10:06:17 2015 -0300 [media] dib3000mc: fix bad indenting drivers/media/dvb-frontends/dib3000mc.c:149 dib3000mc_setup_pwm_state() warn: inconsistent indenting Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/dib3000mc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6962685384d3d6465f0385cefb37573c40610eaf Author: Mauro Carvalho Chehab Date: Wed Apr 29 10:00:39 2015 -0300 [media] cx231xx: fix bad indenting drivers/media/usb/cx231xx/cx231xx-avcore.c:1598 cx231xx_set_DIF_bandpass() warn: inconsistent indenting drivers/media/usb/cx231xx/cx231xx-core.c:656 cx231xx_demod_reset() warn: inconsistent indenting drivers/media/usb/cx231xx/cx231xx-core.c:659 cx231xx_demod_reset() warn: inconsistent indenting drivers/media/usb/cx231xx/cx231xx-core.c:664 cx231xx_demod_reset() warn: inconsistent indenting drivers/media/usb/cx231xx/cx231xx-core.c:669 cx231xx_demod_reset() warn: inconsistent indenting drivers/media/usb/cx231xx/cx231xx-core.c:673 cx231xx_demod_reset() warn: inconsistent indenting drivers/media/usb/cx231xx/cx231xx-417.c:1164 cx231xx_initialize_codec() warn: inconsistent indenting Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/cx231xx/cx231xx-417.c | 6 ++-- drivers/media/usb/cx231xx/cx231xx-avcore.c | 44 +++++++++++++++--------------- drivers/media/usb/cx231xx/cx231xx-core.c | 30 ++++++++++---------- 3 files changed, 39 insertions(+), 41 deletions(-) commit d487df9ef9659b6453751674994178f7f2564dd2 Author: Mauro Carvalho Chehab Date: Wed Apr 29 09:50:41 2015 -0300 [media] ov7670: check read error also for REG_AECHH on ov7670_s_exp() ov7670_s_exp() checks read error for 2 registers: REG_COM1 and REG_COM8. But, although it uses the value latter, it doesn't check errors on REG_AECHH read. Yet, as it is doing a bitmask operation there, the read operation should succeed. So, fix the code to also check if this succeeded. This fixes this smatch report: drivers/media/i2c/ov7670.c:1366 ov7670_s_exp() warn: inconsistent indenting Compile-tested only. Signed-off-by: Mauro Carvalho Chehab Acked-by: Jonathan Corbet Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/ov7670.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5e6b681b1249a6db33ae12ef13a8285d0de39679 Author: Mauro Carvalho Chehab Date: Wed Apr 29 09:46:24 2015 -0300 [media] stv0297: change typecast to u64 to avoid smatch warnings drivers/media/dvb-frontends/stv0297.c:140 stv0297_get_symbolrate() warn: should 'stv0297_readreg(state, 86) << 8' be a 64 bit type? drivers/media/dvb-frontends/stv0297.c:141 stv0297_get_symbolrate() warn: should 'stv0297_readreg(state, 87) << 16' be a 64 bit type? drivers/media/dvb-frontends/stv0297.c:142 stv0297_get_symbolrate() warn: should 'stv0297_readreg(state, 88) << 24' be a 64 bit type? Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/stv0297.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 2267d2d747ba57a2a70ad6f3a6a273c12e3bd505 Author: Mauro Carvalho Chehab Date: Wed Apr 29 09:42:43 2015 -0300 [media] zl10353: fix indenting drivers/media/dvb-frontends/zl10353.c:536 zl10353_read_ucblocks() warn: inconsistent indenting Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/zl10353.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 57eedc316ea19680d50eb3789cbddf50a8986719 Author: Mauro Carvalho Chehab Date: Wed Apr 29 09:41:34 2015 -0300 [media] bttv: fix indenting drivers/media/pci/bt8xx/bttv-driver.c:2679 bttv_s_fbuf() warn: inconsistent indenting Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/bt8xx/bttv-driver.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 2be20f74c07be7a651da982d5865a04f42f174d8 Author: Mauro Carvalho Chehab Date: Wed Apr 29 09:40:24 2015 -0300 [media] r820t: fix identing drivers/media/tuners/r820t.c:945 r820t_sysfreq_sel() warn: inconsistent indenting Signed-off-by: Mauro Carvalho Chehab drivers/media/tuners/r820t.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 2b257d18f02dc2894ccb94fdb0f305ca0ded6376 Author: Mauro Carvalho Chehab Date: Wed Apr 29 09:38:59 2015 -0300 [media] tda1004x: fix identation drivers/media/dvb-frontends/tda1004x.c:653 tda10046_init() warn: inconsistent indenting Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/tda1004x.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6a6bcf08e5d1834447655a762dfaf552b675cc54 Author: Dasaratharaman Chandramouli Date: Fri Apr 17 15:31:06 2015 -0700 intel powerclamp: support Knights Landing This patch enables intel_powerclamp driver to run on the next-generation Intel(R) Xeon Phi Microarchitecture code named "Knights Landing" Signed-off-by: Dasaratharaman Chandramouli Acked-by: Jacob Pan Signed-off-by: Zhang Rui drivers/thermal/intel_powerclamp.c | 1 + 1 file changed, 1 insertion(+) commit 383b4d60f6e376cd062964ed93affd08d9a730c0 Author: Brian Bian Date: Mon Apr 20 11:25:37 2015 -0700 int340x_thermal/processor_thermal_device: add support to Skylake processors Add PCI ID of Skylake thermal reporting device. Signed-off-by: Brian Bian Signed-off-by: Zhang Rui drivers/thermal/int340x_thermal/processor_thermal_device.c | 4 ++++ 1 file changed, 4 insertions(+) commit bd7081ae2bbd063fa4a29a01cb7004d8516e54e3 Author: Wu Fengguang Date: Wed Apr 29 09:10:16 2015 +0800 Thermal: Intel SoC: fix simple_return.cocci warnings drivers/thermal/intel_soc_dts_iosf.c:358:4-7: WARNING: end returns can be simpified Simplify a trivial if-return sequence. Possibly combine with a preceding function call. Generated by: scripts/coccinelle/misc/simple_return.cocci CC: Srinivas Pandruvada Signed-off-by: Fengguang Wu Signed-off-by: Zhang Rui drivers/thermal/intel_soc_dts_iosf.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) commit 8c1876939663191b5044807230fa295f35462215 Author: Ong, Boon Leong Date: Wed Apr 15 10:08:15 2015 +0800 thermal: intel Quark SoC X1000 DTS thermal driver In Intel Quark SoC X1000, there is one on-die digital temperature sensor(DTS). The DTS offers both hot & critical trip points. However, in current distribution of UEFI BIOS for Quark platform, only critical trip point is configured to be 105 degree Celsius (based on Quark SW ver1.0.1 and hot trip point is not used due to lack of IRQ. There is no active cooling device for Quark SoC, so Quark SoC thermal management logic expects Linux distro to orderly power-off when temperature of the DTS exceeds the configured critical trip point. Kernel param "polling_delay" in milliseconds is used to control the frequency the DTS temperature is read by thermal framework. It defaults to 2-second. To change it, use kernel boot param "intel_quark_dts_thermal.polling_delay=X". User interacts with Quark SoC DTS thermal driver through sysfs via: /sys/class/thermal/thermal_zone0/ For example: - to read DTS temperature $ cat temp - to read critical trip point $ cat trip_point_0_temp - to read trip point type $ cat trip_point_0_type - to emulate temperature raise to test orderly shutdown by Linux distro $ echo 105 > emul_temp Tested-by: Bryan O'Donoghue Signed-off-by: Ong Boon Leong Reviewed-by: Bryan O'Donoghue Reviewed-by: Kweh, Hock Leong Signed-off-by: Zhang Rui drivers/thermal/Kconfig | 10 + drivers/thermal/Makefile | 1 + drivers/thermal/intel_quark_dts_thermal.c | 473 ++++++++++++++++++++++++++++++ 3 files changed, 484 insertions(+) commit 4d0dd6c1576b6e42524b330dbc4188f050febf7a Author: Srinivas Pandruvada Date: Mon Mar 2 13:13:00 2015 -0800 Thermal/int340x/processor_thermal: Enable auxiliary DTS for Braswell Support two auxiliary DTS present on Braswell platform using side band IOSF interface. This supports two read write trips, which can be used to get notification on trip violation. Signed-off-by: Srinivas Pandruvada drivers/thermal/Kconfig | 1 + .../int340x_thermal/processor_thermal_device.c | 55 +++++++++++++++++++++- 2 files changed, 55 insertions(+), 1 deletion(-) commit 3a2419f865a65b2a4cb27f8640376ecb862be0e8 Author: Srinivas Pandruvada Date: Mon Mar 2 13:12:59 2015 -0800 Thermal: Intel SoC: DTS thermal use common APIs There is no change in functionality but using the common IOSF core APIs. This driver is now just responsible for enumeration and call relevant API to create thermal zone and register critical trip. Also cpuid 0x4c is now handled in the int340x processor thermal driver with the same functionality. Signed-off-by: Srinivas Pandruvada drivers/thermal/Kconfig | 3 +- drivers/thermal/intel_soc_dts_thermal.c | 430 ++------------------------------ 2 files changed, 23 insertions(+), 410 deletions(-) commit ee073604dba4787b30a754a63af16d13f3d9b846 Author: Srinivas Pandruvada Date: Mon Mar 2 13:12:58 2015 -0800 Thermal: Intel SoC: DTS thermal IOSF core This is becoming a common feature for Intel SoCs to expose the additional digital temperature sensors (DTSs) using side band interface (IOSF). This change remove common IOSF DTS handler function from the existing driver intel_soc_dts_thermal.c and creates a stand alone module, which can be selected from the SoC specific drivers. In this way there is less code duplication. Signed-off-by: Srinivas Pandruvada drivers/thermal/Kconfig | 10 + drivers/thermal/Makefile | 1 + drivers/thermal/intel_soc_dts_iosf.c | 483 +++++++++++++++++++++++++++++++++++ drivers/thermal/intel_soc_dts_iosf.h | 62 +++++ 4 files changed, 556 insertions(+) commit 09e217844a2e2d02a950bc9c129f6fe423e426e0 Author: David Howells Date: Tue Apr 28 15:36:36 2015 +0100 crypto: testmgr - Wrap the LHS in expressions of the form !x == y In the test manager, there are a number of if-statements with expressions of the form !x == y that incur warnings with gcc-5 of the following form: ../crypto/testmgr.c: In function '__test_aead': ../crypto/testmgr.c:523:12: warning: logical not is only applied to the left hand side of comparison [-Wlogical-not-parentheses] if (!ret == template[i].fail) { ^ By converting the 'fail' member of struct aead_testvec and struct cipher_testvec to a bool, we can get rid of the warnings. Signed-off-by: David Howells Signed-off-by: Herbert Xu crypto/testmgr.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit f94a359763c19e1d03dac61352b1041692c6a698 Author: David Howells Date: Tue Apr 28 15:36:30 2015 +0100 crypto: pcomp - Constify (de)compression parameters In testmgr, struct pcomp_testvec takes a non-const 'params' field, which is pointed to a const deflate_comp_params or deflate_decomp_params object. With gcc-5 this incurs the following warnings: In file included from ../crypto/testmgr.c:44:0: ../crypto/testmgr.h:28736:13: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-array-qualifiers] .params = &deflate_comp_params, ^ ../crypto/testmgr.h:28748:13: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-array-qualifiers] .params = &deflate_comp_params, ^ ../crypto/testmgr.h:28776:13: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-array-qualifiers] .params = &deflate_decomp_params, ^ ../crypto/testmgr.h:28800:13: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-array-qualifiers] .params = &deflate_decomp_params, ^ Fix this by making the parameters pointer const and constifying the things that use it. Signed-off-by: David Howells Signed-off-by: Herbert Xu crypto/testmgr.h | 2 +- crypto/zlib.c | 4 ++-- include/crypto/compress.h | 8 ++++---- 3 files changed, 7 insertions(+), 7 deletions(-) commit 9dd3c797496affd699805c8a9d8429ad318c892f Author: Iyappan Subramanian Date: Thu Apr 30 16:09:17 2015 -0700 drivers: net: xgene: fix kbuild warnings Fixed the following kbuild warnings: 1. unused variable 'of_id' 2. buffer overflow 'ring_cfg' 5 <= 5 Signed-off-by: Iyappan Subramanian Signed-off-by: David S. Miller drivers/net/ethernet/apm/xgene/xgene_enet_main.c | 2 ++ drivers/net/ethernet/apm/xgene/xgene_enet_main.h | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) commit 6e5ab41b1064eee6e3477f573370b2dda7d82bb7 Author: Stephen Boyd Date: Thu Apr 30 15:11:31 2015 -0700 clk: Update some comments to reflect reality The debugfs clk directory no longer expresses a clk tree. Update the comments around that apporiately. Also drop comments about prepare locks needing to be held as we have the proper annotations with lockdep_assert_held(). Signed-off-by: Stephen Boyd drivers/clk/clk.c | 51 ++++++++++++++++++--------------------------------- 1 file changed, 18 insertions(+), 33 deletions(-) commit 4dff95dc9477a34de77d24c59dcf1dc593687fcf Author: Stephen Boyd Date: Thu Apr 30 14:43:22 2015 -0700 clk: Remove forward declared function prototypes Move the code around so that we don't need to declare function prototypes at the start of the file. Simplify clk_core_is_prepared() and clk_core_is_enabled() too to make the diff easier to read. Signed-off-by: Stephen Boyd drivers/clk/clk.c | 3117 ++++++++++++++++++++++++++--------------------------- 1 file changed, 1546 insertions(+), 1571 deletions(-) commit 1f3e1983429d31ceada9a09197d79445c92a2901 Author: Stephen Boyd Date: Thu Apr 30 14:21:56 2015 -0700 clk: Remove impossible if condition in clk_core_get_phase() This condition can't ever be true because this function is static and it's always called with a non-NULL pointer. Signed-off-by: Stephen Boyd drivers/clk/clk.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit d7d131512b474c902b83a314d69a012e70c55431 Author: Stephen Boyd Date: Thu Apr 30 14:04:53 2015 -0700 clk: Drop unnecessary OOM prints We don't need to print error messages when allocations fail. We'll get a nice backtrace in such situations anyway. Signed-off-by: Stephen Boyd drivers/clk/clk.c | 5 ----- 1 file changed, 5 deletions(-) commit 864e160ae510f5223e7bd9aa4335d7e092173446 Author: Dong Aisheng Date: Thu Apr 30 14:02:19 2015 -0700 clk: Squash __clk_{enable,disable}() into callers These functions are only used in one place. Let's squash them into their respective callers to save some lines. Signed-off-by: Dong Aisheng [sboyd@codeaurora.org: Redo commit text, add NULL check in clk_enable()] Signed-off-by: Stephen Boyd drivers/clk/clk.c | 23 +++++------------------ 1 file changed, 5 insertions(+), 18 deletions(-) commit d6968fca789700afd723347d9d583795b19224b8 Author: Stephen Boyd Date: Thu Apr 30 13:54:13 2015 -0700 clk: s/clk/core/ for struct clk_core While introducing struct clk_core we tried to minimize the diff by changing the type of 'clk' variables from struct clk to struct clk_core without changing the names of the variables. Now that the split is complete, the code is slightly confusing when it mixes variables called 'clk' and variables called 'core' that are of the same type struct clk_core. Let's be consistent and use 'core' everywhere we have a struct clk_core pointer and 'clk' when we have a struct clk pointer. Cc: Tomeu Vizoso Signed-off-by: Stephen Boyd drivers/clk/clk.c | 824 +++++++++++++++++++++++++++--------------------------- 1 file changed, 412 insertions(+), 412 deletions(-) commit f2f6b587c5533c43f3c26f1babd96e32b2c12a9b Author: Peter Jones Date: Thu Apr 30 10:49:20 2015 -0400 efi/esrt: Fix some compiler warnings Apparently I missed some compiler warnings on 32-bit platforms, where phys_addr_t isn't the same size as void * and I casted it to make printk work. Obviously I should have thought "I'm printing some random type, instead of typecasting I should check Documentation/printk-formats.txt and see how to do it." o/~ The More You Know ☆彡 o/~ This patch also fixes one other warning about an uninitialized variable some compiler versions seem to see. You can't actually hit the code path where it would be uninitialized, because there's a prior test that would error out, but gcc hasn't figured that out. Anyway, it now has a test and returns the error at both places. Signed-off-by: Peter Jones Signed-off-by: Matt Fleming drivers/firmware/efi/esrt.c | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) commit a93e178838b85409601c9b909af5addbbfd90264 Author: Alex Smith Date: Sat Mar 28 12:14:09 2015 +0000 x86, doc: Remove cmdline_size from list of fields to be filled in for EFI handover The cmdline_size field in setup_header is listed as read-only, and is never read by the kernel. Therefore, there is no need for it to be set by a boot loader implementing the EFI handover protocol, so remove it from the list of fields required to be set by a boot loader. Signed-off-by: Alex Smith Cc: H. Peter Anvin Cc: x86@kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Matt Fleming Documentation/x86/boot.txt | 1 - 1 file changed, 1 deletion(-) commit 0bb549052d33f8992544764a6cf1299d06ba7e2f Author: Peter Jones Date: Tue Apr 28 18:44:31 2015 -0400 efi: Add esrt support Add sysfs files for the EFI System Resource Table (ESRT) under /sys/firmware/efi/esrt and for each EFI System Resource Entry under entries/ as a subdir. The EFI System Resource Table (ESRT) provides a read-only catalog of system components for which the system accepts firmware upgrades via UEFI's "Capsule Update" feature. This module allows userland utilities to evaluate what firmware updates can be applied to this system, and potentially arrange for those updates to occur. The ESRT is described as part of the UEFI specification, in version 2.5 which should be available from http://uefi.org/specifications in early 2015. If you're a member of the UEFI Forum, information about its addition to the standard is available as UEFI Mantis 1090. For some hardware platforms, additional restrictions may be found at http://msdn.microsoft.com/en-us/library/windows/hardware/jj128256.aspx , and additional documentation may be found at http://download.microsoft.com/download/5/F/5/5F5D16CD-2530-4289-8019-94C6A20BED3C/windows-uefi-firmware-update-platform.docx . Signed-off-by: Peter Jones Signed-off-by: Matt Fleming Documentation/ABI/testing/sysfs-firmware-efi-esrt | 81 ++++ arch/x86/platform/efi/efi.c | 2 + drivers/firmware/efi/Makefile | 2 +- drivers/firmware/efi/efi.c | 82 +++- drivers/firmware/efi/esrt.c | 464 ++++++++++++++++++++++ include/linux/efi.h | 8 + 6 files changed, 637 insertions(+), 2 deletions(-) commit f7ef7e3e506023f826c1ee60b7e59b985316e180 Author: Dan Carpenter Date: Tue Apr 21 12:21:53 2015 +0300 efi: efivar_create_sysfs_entry() should return negative error codes It's not very normal to return 1 on failure and 0 on success. There isn't a reason for it here, the callers don't care so long as it's non-zero on failure. Signed-off-by: Dan Carpenter Signed-off-by: Matt Fleming drivers/firmware/efi/efivars.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit 6920ccf65d0964f7f6c6c36c551151e0fcd62327 Author: Roberta Dobrescu Date: Thu Apr 16 22:20:59 2015 +0300 staging: iio: light: isl29018: Use standard sysfs attributes for scale and integration time This patch refactors the isl29018 driver code in order to use standard sysfs attributes for scale and integration time. ISL29018 light sensor uses four ranges and four ADC's resolutions which influence the calculated lux. Adc resolution is strongly connected to integration time and range should be controlled by scale. This patch introduces the usage of integration time and scale instead of adc resolution and range. Signed-off-by: Roberta Dobrescu Signed-off-by: Jonathan Cameron drivers/staging/iio/light/isl29018.c | 226 +++++++++++++++++++++++++++-------- 1 file changed, 177 insertions(+), 49 deletions(-) commit 327941f8d322685633f74fb43dc3aec86529f5f4 Author: Daniel Borkmann Date: Thu Apr 30 16:17:27 2015 +0200 test_bpf: indicate whether bpf prog got jited in test suite I think this is useful to verify whether a filter could be JITed or not in case of bpf_prog_enable >= 1, which otherwise the test suite doesn't tell besides taking a good peek at the performance numbers. Nicolas Schichan reported a bug in the ARM JIT compiler that rejected and waved the filter to the interpreter although it shouldn't have. Nevertheless, the test passes as expected, but such information is not visible. It's i.e. useful for the remaining classic JITs, but also for implementing remaining opcodes that are not yet present in eBPF JITs (e.g. ARM64 waves some of them to the interpreter). This minor patch allows to grep through dmesg to find those accordingly, but also provides a total summary, i.e.: [/53 JIT'ed] # echo 1 > /proc/sys/net/core/bpf_jit_enable # insmod lib/test_bpf.ko # dmesg | grep "jited:0" dmesg example on the ARM issue with JIT rejection: [...] [ 67.925387] test_bpf: #2 ADD_SUB_MUL_K jited:1 24 PASS [ 67.930889] test_bpf: #3 DIV_MOD_KX jited:0 794 PASS [ 67.943940] test_bpf: #4 AND_OR_LSH_K jited:1 20 20 PASS [...] Signed-off-by: Daniel Borkmann Cc: Nicolas Schichan Cc: Alexei Starovoitov Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller lib/test_bpf.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit 18824894dbec3eb2202fc92d52a0c8bd27c8a63f Author: Ivan Vecera Date: Thu Apr 30 11:59:49 2015 +0200 be2net: log link status The driver unlike other drivers does not log link state changes. It's better for an user when asynchronous link states are logged to the system log. v3: Changes from v2 discarded as "not necessary" Cc: Sathya Perla Cc: Subbu Seetharaman Cc: Ajit Khaparde Signed-off-by: Ivan Vecera Signed-off-by: David S. Miller drivers/net/ethernet/emulex/benet/be_main.c | 2 ++ 1 file changed, 2 insertions(+) commit 9c7e8bc584f52ae42f4528ca459f711ad38a130f Author: Thomas Falcon Date: Wed Apr 29 16:25:47 2015 -0500 ibmveth: Add support for Large Receive Offload Enables receiving large packets from other LPARs. These packets have a -1 IP header checksum, so we must recalculate to have a valid checksum. Signed-off-by: Brian King Signed-off-by: Thomas Falcon Signed-off-by: David S. Miller drivers/net/ethernet/ibm/ibmveth.c | 17 ++++++++++++++++- drivers/net/ethernet/ibm/ibmveth.h | 1 + 2 files changed, 17 insertions(+), 1 deletion(-) commit 92ec8279f5143b29c5ed8525f7b45df44dd8753c Author: Thomas Falcon Date: Wed Apr 29 16:25:46 2015 -0500 ibmveth: Add GRO support Cc: Brian King Signed-off-by: Thomas Falcon Signed-off-by: David S. Miller drivers/net/ethernet/ibm/ibmveth.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8641dd85799f85bef5f0d1f87356aaa12cb2195e Author: Thomas Falcon Date: Wed Apr 29 16:25:45 2015 -0500 ibmveth: Add support for TSO Add support for TSO. TSO is turned off by default and must be enabled and configured by the user. The driver version number is increased so that users can be sure that they are using ibmveth with TSO support. Cc: Brian King Signed-off-by: Thomas Falcon Signed-off-by: David S. Miller drivers/net/ethernet/ibm/ibmveth.c | 19 ++++++++++++++++++- drivers/net/ethernet/ibm/ibmveth.h | 1 + 2 files changed, 19 insertions(+), 1 deletion(-) commit cd7c7ec3687986c71b48848637066d4460c92b95 Author: Thomas Falcon Date: Wed Apr 29 16:25:44 2015 -0500 ibmveth: change rx buffer default allocation for CMO This patch enables 64k rx buffer pools by default. If Cooperative Memory Overcommitment (CMO) is enabled, the number of 64k buffers is reduced to save memory. Cc: Brian King Signed-off-by: Thomas Falcon Signed-off-by: David S. Miller drivers/net/ethernet/ibm/ibmveth.c | 3 +++ drivers/net/ethernet/ibm/ibmveth.h | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) commit fd5e2fd053e1042b12343fb6649449081ec1bab4 Author: kbuild test robot Date: Fri May 1 00:21:55 2015 +0800 staging: lustre: llite: fix ifnullfree.cocci warnings drivers/staging/lustre/lustre/llite/dir.c:1440: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: Julia Lawall Signed-off-by: Fengguang Wu Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/dir.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 0550db925bf79707b5612c2769075f3fac713c3a Author: kbuild test robot Date: Fri May 1 00:21:55 2015 +0800 staging: lustre: llite: fix ifnullfree.cocci warnings drivers/staging/lustre/lustre/llite/llite_lib.c:989:2-7: 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. drivers/staging/lustre/lustre/llite/llite_lib.c:991:2-7: 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: Julia Lawall Signed-off-by: Fengguang Wu Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/llite_lib.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 25e428999c0de31f966e9e4b61ec69d8dc033f70 Author: kbuild test robot Date: Fri May 1 00:27:35 2015 +0800 staging: lustre: fix ifnullfree.cocci warnings drivers/staging/lustre/lustre/lov/lov_request.c:74: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: Julia Lawall Signed-off-by: Fengguang Wu Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/lov/lov_request.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit c93f5463e35a95c8cad5deb4ad5d32b0eb913abd Author: kbuild test robot Date: Fri May 1 00:27:35 2015 +0800 staging: lustre: fix ifnullfree.cocci warnings drivers/staging/lustre/lustre/lov/lov_obd.c:574: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: Julia Lawall Signed-off-by: Fengguang Wu Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/lov/lov_obd.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit beb9969b8a644991dbfdaf18b9f1161a39a91df8 Author: kbuild test robot Date: Tue Apr 28 12:20:32 2015 +0800 ASoC: ssm2518: fix simple_return.cocci warnings sound/soc/codecs/ssm2518.c:521:5-8: WARNING: end returns can be simpified Simplify a trivial if-return sequence. Possibly combine with a preceding function call. Generated by: scripts/coccinelle/misc/simple_return.cocci Signed-off-by: Fengguang Wu Signed-off-by: Mark Brown sound/soc/codecs/ssm2518.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit fb75ee66c2707f56397eb29c01decf36254e3d46 Author: kbuild test robot Date: Tue Apr 28 12:20:32 2015 +0800 ASoC: adau1977: fix simple_return.cocci warnings sound/soc/codecs/adau1977.c:496:5-8: WARNING: end returns can be simpified Simplify a trivial if-return sequence. Possibly combine with a preceding function call. Generated by: scripts/coccinelle/misc/simple_return.cocci Signed-off-by: Fengguang Wu Signed-off-by: Mark Brown sound/soc/codecs/adau1977.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 126187dafd221d672abc2c9839453023b884b5c9 Author: Viresh Kumar Date: Thu Apr 30 15:38:59 2015 +0530 regulator: Fix spelling error in bindings Minor spell fix, s/intialised/initialised. Signed-off-by: Viresh Kumar Signed-off-by: Mark Brown Documentation/devicetree/bindings/regulator/regulator.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 79c9cc3cd08cf784fce252378290d9f171d00947 Merge: f828ad0 561fea6 Author: David S. Miller Date: Thu Apr 30 16:03:14 2015 -0400 Merge branch 'xgene-next' Iyappan Subramanian says: ==================== drivers: net: xgene: Add ethernet with ring manager v2 support Adding XFI based 10GbE and SGMII based 1GbE with ring manager v2 support for APM X-Gene ethernet driver. The ring manager v2 is used by 2nd generation SoC. v1: * Initial version ==================== Signed-off-by: David S. Miller commit 561fea6deacf72b2d42a777c07bcb930ebdebb3c Author: Iyappan Subramanian Date: Tue Apr 28 13:52:40 2015 -0700 drivers: net: xgene: Add SGMII based 1GbE support with ring manager v2 Signed-off-by: Iyappan Subramanian Signed-off-by: David S. Miller drivers/net/ethernet/apm/xgene/xgene_enet_hw.h | 1 - drivers/net/ethernet/apm/xgene/xgene_enet_main.c | 26 +++++++--- drivers/net/ethernet/apm/xgene/xgene_enet_main.h | 1 - drivers/net/ethernet/apm/xgene/xgene_enet_sgmac.c | 62 ++++++++++++++++------- drivers/net/ethernet/apm/xgene/xgene_enet_xgmac.h | 7 ++- 5 files changed, 68 insertions(+), 29 deletions(-) commit bc1b7c132a09d84a22e1a15a76d2eb6eb916d217 Author: Iyappan Subramanian Date: Tue Apr 28 13:52:39 2015 -0700 drivers: net: xgene: Add 10GbE support with ring manager v2 Signed-off-by: Iyappan Subramanian Signed-off-by: David S. Miller drivers/net/ethernet/apm/xgene/xgene_enet_hw.h | 1 + drivers/net/ethernet/apm/xgene/xgene_enet_main.c | 141 ++++++++++++++++++---- drivers/net/ethernet/apm/xgene/xgene_enet_main.h | 17 +++ drivers/net/ethernet/apm/xgene/xgene_enet_xgmac.c | 1 - drivers/net/ethernet/apm/xgene/xgene_enet_xgmac.h | 17 +++ 5 files changed, 152 insertions(+), 25 deletions(-) commit ed9b7da019ea01dcead9f1d231bf03ab033f5f9c Author: Iyappan Subramanian Date: Tue Apr 28 13:52:38 2015 -0700 drivers: net: xgene: Add ring manager v2 functions Adding ring manager v2 support for APM X-Gene ethernet driver. Signed-off-by: Iyappan Subramanian Signed-off-by: David S. Miller drivers/net/ethernet/apm/xgene/Makefile | 2 +- drivers/net/ethernet/apm/xgene/xgene_enet_hw.h | 1 + drivers/net/ethernet/apm/xgene/xgene_enet_main.h | 2 + drivers/net/ethernet/apm/xgene/xgene_enet_ring2.c | 200 ++++++++++++++++++++++ drivers/net/ethernet/apm/xgene/xgene_enet_ring2.h | 49 ++++++ 5 files changed, 253 insertions(+), 1 deletion(-) commit 81cefb81db99402b5bbbf286beac2faa4f095620 Author: Iyappan Subramanian Date: Tue Apr 28 13:52:37 2015 -0700 drivers: net: xgene: Change ring manager to use function pointers This is a preparatory patch for adding ethernet support for APM X-Gene ethernet driver to work with ring manager v2. Added xgene_ring_ops structure for storing chip specific ring manager properties and functions. Signed-off-by: Iyappan Subramanian Signed-off-by: David S. Miller drivers/net/ethernet/apm/xgene/xgene_enet_hw.c | 36 ++++++++++++++++++--- drivers/net/ethernet/apm/xgene/xgene_enet_hw.h | 5 ++- drivers/net/ethernet/apm/xgene/xgene_enet_main.c | 40 +++++++++++------------- drivers/net/ethernet/apm/xgene/xgene_enet_main.h | 10 ++++++ 4 files changed, 61 insertions(+), 30 deletions(-) commit 518f6bab13842a5f25bd8f89b1cae32aa8adf91f Author: Jyri Sarha Date: Thu Apr 23 16:16:06 2015 +0300 ASoC: davinci-macsp: Optimize implicit BLCK sample-rate rule There is no need to copy the list of all supported sample-rates. Finding the supported endpoints within the current range is enough (see snd_interval_list()). Signed-off-by: Jyri Sarha Signed-off-by: Mark Brown sound/soc/davinci/davinci-mcasp.c | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) commit 5935a05626bc84810175e5f7b03b355a90769368 Author: Jyri Sarha Date: Thu Apr 23 16:16:05 2015 +0300 ASoC: davinci-mcasp: Channel count constraints for multi-serializer case Set channel count constraints for multiple serializers case. On McASP the active channels mask is the same for all the serializers. With the current implementation this means that if more than one serializers is used, all TDM slots have to be active on all serializers. The patch sets the channel count constraints according to number of RX and TX serializers. Reported-by: Misael Lopez Cruz Signed-off-by: Jyri Sarha Signed-off-by: Mark Brown sound/soc/davinci/davinci-mcasp.c | 63 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) commit 1f114f772ade64bca1c477322a18da8ed3bb8e6b Author: Jyri Sarha Date: Thu Apr 23 16:16:04 2015 +0300 ASoC: davinci-mcasp: Calculate BCLK using TDM slots and remove channels rule The McASP driver currently always sends as many slots or channels to a i2s-wire as there are configured tdm_slots (see mcasp_i2s_hw_param()). Thus the BLCK rate does not depend on the amount of channels, just the configure amount of tdm-slots. Reported-by: Misael Lopez Cruz Signed-off-by: Jyri Sarha Signed-off-by: Mark Brown sound/soc/davinci/davinci-mcasp.c | 82 ++++++--------------------------------- 1 file changed, 12 insertions(+), 70 deletions(-) commit 5bf6c07a1843813d0065feaaecba622d49148d7e Author: Chris Metcalf Date: Thu Apr 30 15:12:42 2015 -0400 tile: add and enable support functions This change enables the generic strncpy_from_user() and strnlen_user() using word-at-a-time.h. The tile implementation is trivial since both tilepro and tilegx have SIMD operations that do byte-wise comparisons against immediate zero for each byte, and return an 0x01 byte in each position where there is a 0x00 byte. Signed-off-by: Chris Metcalf arch/tile/Kconfig | 2 ++ arch/tile/include/asm/uaccess.h | 66 ++++++---------------------------- arch/tile/include/asm/word-at-a-time.h | 36 +++++++++++++++++++ arch/tile/lib/exports.c | 2 -- arch/tile/lib/usercopy_32.S | 46 ------------------------ arch/tile/lib/usercopy_64.S | 46 ------------------------ 6 files changed, 48 insertions(+), 150 deletions(-) commit c0d5e4380fa611e60eff8f0356f8401843936af2 Author: Mauro Carvalho Chehab Date: Wed Apr 29 09:38:06 2015 -0300 [media] mantis: remove dead code drivers/media/pci/mantis/mantis_cards.c:229 mantis_pci_probe() info: ignoring unreachable code. Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/mantis/mantis_cards.c | 3 --- 1 file changed, 3 deletions(-) commit 4682b58e5af01ee856a706083eac71238fb69cd0 Author: Mauro Carvalho Chehab Date: Wed Apr 29 09:33:02 2015 -0300 [media] qt1010: avoid going past array As reported by smatch: drivers/media/tuners/qt1010.c:357 qt1010_init() error: buffer overflow 'i2c_data' 34 <= 34 This should not happen with the current code, as the i2c_data array doesn't end with a QT1010_M1, but it doesn't hurt add a BUG_ON to notify if one modifies it and breaks. Signed-off-by: Mauro Carvalho Chehab drivers/media/tuners/qt1010.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 322583c410b6206700f5daa98f965b31c99bb8c2 Author: Mauro Carvalho Chehab Date: Tue Apr 28 20:00:55 2015 -0300 [media] vivid-radio-rx: Don't go past buffer drivers/media/platform/vivid/vivid-radio-rx.c:198 vivid_radio_rx_s_hw_freq_seek() error: buffer overflow 'vivid_radio_bands' 3 <= 3 Signed-off-by: Mauro Carvalho Chehab Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/vivid/vivid-radio-rx.c | 2 ++ 1 file changed, 2 insertions(+) commit 094af36a3a57ddfeb942fd2990f15b570430a81e Author: Mauro Carvalho Chehab Date: Tue Apr 28 19:49:07 2015 -0300 [media] zc3xx: remove dead code and uneeded gotos As reported by smatch: drivers/media/usb/gspca/zc3xx.c:5994 transfer_update() info: ignoring unreachable code. That happens because there's a return that it is never called, as the work queue runs an infinite loop, except when the device is put to sleep or an error happens. When an error happens, a break statement is enough to go out of the loop. So, let's remove the goto, as break is the typical instruction used to end a loop. Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/gspca/zc3xx.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit b036f1cb6e268f2a8c4433c3c26cbef95642b79d Author: Mauro Carvalho Chehab Date: Tue Apr 28 19:39:53 2015 -0300 [media] zc3xx: don't go past quality array drivers/media/usb/gspca/zc3xx.c:6363 zcxx_s_ctrl() error: buffer overflow 'jpeg_qual' 3 <= 3 Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/gspca/zc3xx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 82e3b88b679049f043fe9b03991d6d66fc0a43c8 Author: Mauro Carvalho Chehab Date: Tue Apr 28 19:03:59 2015 -0300 [media] cx24117: fix a buffer overflow when checking userspace params The maximum size for a DiSEqC command is 6, according to the userspace API. However, the code allows to write up much more values: drivers/media/dvb-frontends/cx24116.c:983 cx24116_send_diseqc_msg() error: buffer overflow 'd->msg' 6 <= 23 Cc: stable@vger.kernel.org Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/cx24117.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d7b76c91f471413de9ded837bddeca2164786571 Author: Mauro Carvalho Chehab Date: Tue Apr 28 19:02:19 2015 -0300 [media] af9013: Don't accept invalid bandwidth If userspace sends an invalid bandwidth, it should either return EINVAL or switch to auto mode. This driver will go past an array and program the hardware on a wrong way if this happens. Cc: stable@vger.kernel.org Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/af9013.c | 4 ++++ 1 file changed, 4 insertions(+) commit 1fa2337a315a2448c5434f41e00d56b01a22283c Author: Mauro Carvalho Chehab Date: Tue Apr 28 18:51:17 2015 -0300 [media] cx24116: fix a buffer overflow when checking userspace params The maximum size for a DiSEqC command is 6, according to the userspace API. However, the code allows to write up much more values: drivers/media/dvb-frontends/cx24116.c:983 cx24116_send_diseqc_msg() error: buffer overflow 'd->msg' 6 <= 23 Cc: stable@vger.kernel.org Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/cx24116.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 12f4543f5d6811f864e6c4952eb27253c7466c02 Author: Mauro Carvalho Chehab Date: Tue Apr 28 18:34:40 2015 -0300 [media] s5h1420: fix a buffer overflow when checking userspace params The maximum size for a DiSEqC command is 6, according to the userspace API. However, the code allows to write up to 7 values: drivers/media/dvb-frontends/s5h1420.c:193 s5h1420_send_master_cmd() error: buffer overflow 'cmd->msg' 6 <= 7 Cc: stable@vger.kernel.org Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/s5h1420.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 451dfbe9f153a28da149729552b26043ae94af28 Author: Mauro Carvalho Chehab Date: Tue Apr 28 18:46:13 2015 -0300 [media] stv0288: fix indentation drivers/media/dvb-frontends/stv0288.c:137 stv0288_set_symbolrate() warn: inconsistent indenting Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/stv0288.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) commit 16afc67216ed94c66672f36d5642e5d287d68b92 Author: Mauro Carvalho Chehab Date: Tue Apr 28 18:31:21 2015 -0300 [media] lgdt3306a: fix indentation drivers/media/dvb-frontends/lgdt3306a.c:2104 lgdt3306a_DumpRegs() warn: inconsistent indenting Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/lgdt3306a.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c7a092e36e639a963b6923018cabce728aabecf6 Author: Mauro Carvalho Chehab Date: Tue Apr 28 18:29:05 2015 -0300 [media] dib3000mc: Fix indentation drivers/media/dvb-frontends/dib3000mc.c:134 dib3000mc_setup_pwm_state() warn: inconsistent indenting drivers/media/dvb-frontends/dib3000mc.c:144 dib3000mc_setup_pwm_state() warn: inconsistent indenting drivers/media/dvb-frontends/dib3000mc.c:420 dib3000mc_sleep() warn: inconsistent indenting drivers/media/dvb-frontends/dib3000mc.c:453 dib3000mc_set_channel_cfg() warn: inconsistent indenting The last one is actually due to a commented code. Let's rework it, in order to remove the sparse warning without removing the dead code, as it may be useful in the future. Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/dib3000mc.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) commit 361f2e8d974c43a900f6c6e93d78d7e33ae9a08c Author: Mauro Carvalho Chehab Date: Tue Apr 28 18:25:14 2015 -0300 [media] bcm3510: fix indentation drivers/media/dvb-frontends/bcm3510.c:688 bcm3510_reset() warn: inconsistent indenting drivers/media/dvb-frontends/bcm3510.c:711 bcm3510_clear_reset() warn: inconsistent indenting Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/bcm3510.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit ebb326341c548077dda501339799760b01502923 Author: Mauro Carvalho Chehab Date: Tue Apr 28 18:18:28 2015 -0300 [media] benq: fix indentation drivers/media/usb/gspca/benq.c:239 sd_isoc_irq() warn: inconsistent indenting Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/gspca/benq.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 747598d5b6d1c825ad34fbf743e38113aaca597f Author: Mauro Carvalho Chehab Date: Tue Apr 28 17:09:23 2015 -0300 [media] go7007: don't use vb before test if it is not NULL As reported by smatch: drivers/media/usb/go7007/go7007-driver.c:452 frame_boundary() warn: variable dereferenced before check 'vb' (see line 449) Signed-off-by: Mauro Carvalho Chehab Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/go7007/go7007-driver.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit efc0ac5a0e54657f74c2d6e73e146d249116a608 Author: Mauro Carvalho Chehab Date: Tue Apr 28 12:39:02 2015 -0300 [media] qt1010: Reduce text size by using static const Using static const allows the compiler to optimize the code. Before static const: text data bss dec hex filename 4982 524 1568 7074 1ba2 drivers/media/tuners/qt1010.o After static const: text data bss dec hex filename 4714 524 1568 6806 1a96 drivers/media/tuners/qt1010.o Signed-off-by: Mauro Carvalho Chehab drivers/media/tuners/qt1010.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d202e1bab3c3b61dd562360e5c73e9df7d2cfe09 Author: Mauro Carvalho Chehab Date: Tue Apr 28 12:32:25 2015 -0300 [media] wl128x: fix int type for streg_cbdata The streg_cbdata can have a negative error value. So, it should be an integer, and not u8, as reported by smatch: drivers/media/radio/wl128x/fmdrv_common.c:1517 fmc_prepare() warn: assigning (-115) to unsigned variable 'fmdev->streg_cbdata' Signed-off-by: Mauro Carvalho Chehab drivers/media/radio/wl128x/fmdrv.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit abefe12a2f3b1cd701158d6bd6a826e057dec2b4 Author: Mauro Carvalho Chehab Date: Tue Apr 28 12:23:56 2015 -0300 [media] ir-sony-decoder: shutup smatch warnings There are some false-positive warnings produced by smatch: drivers/media/rc/ir-sony-decoder.c:129 ir_sony_decode() warn: missing break? reassigning 'data->state' drivers/media/rc/ir-sony-decoder.c:137 ir_sony_decode() warn: missing break? reassigning 'data->state' drivers/media/rc/ir-sony-decoder.c:165 ir_sony_decode() warn: missing break? reassigning 'data->state' This is due to the logic used there to detect the need of a break. While those are false positives, it is easy to get rid of them without any drawbacks. The side effect is a cleaner function, with is good. Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/ir-sony-decoder.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) commit 1ed991a9fe8278b529510850accdea6dea596d0f Author: Mauro Carvalho Chehab Date: Tue Apr 28 12:16:52 2015 -0300 [media] s5p_mfc: remove a dead code As reported by smatch: drivers/media/platform/s5p-mfc/s5p_mfc.c:1340 s5p_mfc_runtime_resume() warn: this array is probably non-NULL. 'm_dev->alloc_ctx' alloc_ctx can never be NULL, as it is embeeded inside the struct s5p_mfc_dev. Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/s5p-mfc/s5p_mfc.c | 2 -- 1 file changed, 2 deletions(-) commit b4bb1bd7c20aeaf51607e7ffdbcc9f3b79094185 Author: Mauro Carvalho Chehab Date: Tue Apr 28 12:12:09 2015 -0300 [media] s3c-camif: Check if fmt is NULL before use As reported by smatch: drivers/media/platform/s3c-camif/camif-capture.c:463 queue_setup() warn: variable dereferenced before check 'fmt' (see line 460) Signed-off-by: Mauro Carvalho Chehab Acked-by: Sylwester Nawrocki Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/s3c-camif/camif-capture.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 03e5dcee4cab0361b14ef575db455e8de546a3e5 Author: Mauro Carvalho Chehab Date: Tue Apr 28 11:13:09 2015 -0300 [media] zoran: fix indent As reported by smatch: drivers/media/pci/zoran/zoran_device.c:1594 zoran_init_hardware() warn: inconsistent indenting Fix indent. While here, fix CodingStyle and remove dead code, as it can always be recovered from git logs. Signed-off-by: Mauro Carvalho Chehab Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/zoran/zoran_device.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) commit 09290cc885937cab3b2d60a6d48fe3d2d3e04061 Author: Mauro Carvalho Chehab Date: Tue Apr 28 10:35:13 2015 -0300 [media] ivtv: avoid going past input/audio array As reported by smatch: drivers/media/pci/ivtv/ivtv-driver.c:832 ivtv_init_struct2() error: buffer overflow 'itv->card->video_inputs' 6 <= 6 That happens because nof_inputs and nof_audio_inputs can be initialized as IVTV_CARD_MAX_VIDEO_INPUTS, instead of IVTV_CARD_MAX_VIDEO_INPUTS - 1. Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/ivtv/ivtv-driver.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1cb3b79532a3012fa4b20c8ac344e48a92b5b4d3 Author: Mauro Carvalho Chehab Date: Tue Apr 28 10:33:57 2015 -0300 [media] radio-si476x: Fix indent As reported by smatch: drivers/media/radio/radio-si476x.c:571 si476x_radio_do_post_powerup_init() warn: inconsistent indenting Signed-off-by: Mauro Carvalho Chehab drivers/media/radio/radio-si476x.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 4c7ba4082f903c2df3801a26bf3199544c081830 Author: Mauro Carvalho Chehab Date: Tue Apr 28 10:28:13 2015 -0300 [media] saa717x: fix multi-byte read code As reported by smatch: drivers/media/i2c/saa717x.c:155 saa717x_read() warn: mask and shift to zero drivers/media/i2c/saa717x.c:155 saa717x_read() warn: mask and shift to zero This is done right at saa717x_write(), but the read function is broken. Thankfully, there's just one place at saa717x driver that uses multibyte read (for status report, via printk). Yet, let's fix it. From saa717x_write(), it is clear that the bytes are in little endian: mm1[4] = (value >> 16) & 0xff; mm1[3] = (value >> 8) & 0xff; mm1[2] = value & 0xff; So, the same order should be valid for read too. Compile-tested only. Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/saa717x.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 3c71d978c5e6dadfc798e84290014f713f56c97b Author: Mauro Carvalho Chehab Date: Tue Apr 28 10:07:01 2015 -0300 [media] saa7164: Check if dev is NULL before dereferencing it As reported by smatch: drivers/media/pci/saa7164/saa7164-core.c:631 saa7164_irq() warn: variable dereferenced before check 'dev' (see line 621) Signed-off-by: Mauro Carvalho Chehab Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/saa7164/saa7164-core.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) commit 5a4faee2d01b615011ceb65c656250e4e6a274ee Author: Mauro Carvalho Chehab Date: Tue Apr 28 10:02:07 2015 -0300 [media] ngene: preventing dereferencing a NULL pointer As reported by smatch: drivers/media/pci/ngene/ngene-core.c:1529 init_channel() error: we previously assumed 'chan->fe' could be null (see line 1521) Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/ngene/ngene-core.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit f8781a08200c07f5e571b2db0929af615fe28f67 Author: Mauro Carvalho Chehab Date: Tue Apr 28 09:56:01 2015 -0300 [media] saa7134: fix indent issues As reported by smatch: drivers/media/pci/saa7134/saa7134-cards.c:7197 saa7134_xc2028_callback() warn: inconsistent indenting drivers/media/pci/saa7134/saa7134-cards.c:7846 saa7134_board_init2() warn: inconsistent indenting drivers/media/pci/saa7134/saa7134-cards.c:7913 saa7134_board_init2() warn: inconsistent indenting While here, fix a few CodingStyle issues on the affected code Signed-off-by: Mauro Carvalho Chehab Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/saa7134/saa7134-cards.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) commit 2f9e682d05e27fef1a78b4089cfde818ea109d25 Author: Mauro Carvalho Chehab Date: Tue Apr 28 09:50:36 2015 -0300 [media] cx18: avoid going past input/audio array As reported by smatch: drivers/media/pci/cx18/cx18-driver.c:807 cx18_init_struct2() error: buffer overflow 'cx->card->video_inputs' 6 <= 6 That happens because nof_inputs and nof_audio_inputs can be initialized as CX18_CARD_MAX_VIDEO_INPUTS, instead of CX18_CARD_MAX_VIDEO_INPUTS - 1. Signed-off-by: Mauro Carvalho Chehab Acked-by: Andy Walls Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/cx18/cx18-driver.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 81b7d14e32ddd2ae2709609bb2466f8f2482b8c9 Author: Mauro Carvalho Chehab Date: Tue Apr 28 09:43:17 2015 -0300 [media] rc: fix bad indenting drivers/media/rc/rc-main.c:749 rc_close() warn: inconsistent indenting There's an extra space there. Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/rc-main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c413a9e69091b0cc94ed576047902bfd289aeb72 Author: Mauro Carvalho Chehab Date: Tue Apr 28 08:57:26 2015 -0300 [media] am437x: remove unused variable drivers/media/platform/am437x/am437x-vpfe.c: In function 'vpfe_get_subdev_input_index': drivers/media/platform/am437x/am437x-vpfe.c:1679:27: warning: variable 'sdinfo' set but not used [-Wunused-but-set-variable] struct vpfe_subdev_info *sdinfo; ^ Cc: Benoit Parrot Signed-off-by: Mauro Carvalho Chehab Acked-by: Lad, Prabhakar Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/am437x/am437x-vpfe.c | 3 --- 1 file changed, 3 deletions(-) commit f396573e1c749c1e0b81a052dec900f2c26044cd Author: Mauro Carvalho Chehab Date: Tue Apr 28 08:55:46 2015 -0300 [media] am437x: Fix a wrong identation drivers/media/platform/am437x/am437x-vpfe.c:513 vpfe_ccdc_set_params() warn: inconsistent indenting Cc: Benoit Parrot Signed-off-by: Mauro Carvalho Chehab Acked-by: Lad, Prabhakar Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/am437x/am437x-vpfe.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit adf98ffe8055107e75e9e914c1733e97952a6f9a Author: Mauro Carvalho Chehab Date: Tue Apr 28 08:48:15 2015 -0300 [media] am437x-vpfe: really update the vpfe_ccdc_update_raw_params data drivers/media/platform/am437x/am437x-vpfe.c: In function 'vpfe_ccdc_update_raw_params': drivers/media/platform/am437x/am437x-vpfe.c:430:38: warning: variable 'config_params' set but not used [-Wunused-but-set-variable] struct vpfe_ccdc_config_params_raw *config_params = ^ vpfe_ccdc_update_raw_params() is supposed to update the raw params at ccdc. However, it is just creating a local var and changing it. Compile-tested only. Cc: Benoit Parrot Signed-off-by: Mauro Carvalho Chehab Acked-by: Lad, Prabhakar Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/am437x/am437x-vpfe.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f17ca811835cf69e734ab189a942964c2f32006d Author: Gbenga Adalumo Date: Wed Apr 22 00:39:48 2015 -0700 Staging: comedi: fix code indent coding style issues in daqboard2000.c This is a patch to daqboard2000.c file that fixes code indent errors found by the checkpatch.pl tool Signed-off-by: Gbenga Adalumo Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/daqboard2000.c | 56 +++++++++++++-------------- 1 file changed, 28 insertions(+), 28 deletions(-) commit e6f2804d580667515cee34812aa92e84cc142e55 Author: Gujulan Elango, Hari Prasath (H.) Date: Thu Apr 23 19:14:21 2015 +0000 staging: comedi: Remove unwanted lines of code This patch removes a few lines of code & retains the same functionality Signed-off-by: Hari Prasath Gujulan Elango Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/cb_pcimdda.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit eb340acaca5eea5f87a4a1b037a32e257d8509b5 Author: Ian Abbott Date: Tue Apr 21 13:18:11 2015 +0100 staging: comedi: move COMEDI_SRF_... macros to "comedi_fops.c" The `COMEDI_SRF_...` macros define flag combinations in the `runflags` member of `struct comedi_subdevice`. They are only used directly in "comedi_fops.c", so move them to there. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/comedi_fops.c | 17 +++++++++++++++++ drivers/staging/comedi/comedidev.h | 17 ----------------- 2 files changed, 17 insertions(+), 17 deletions(-) commit 8fc369ae38ff281d38e9ea11805a5cae862989bc Author: Ian Abbott Date: Tue Apr 21 13:18:10 2015 +0100 staging: comedi: wrap COMEDI_SRF_FREE_SPRIV usage The `COMEDI_SRF_FREE_SPRIV` flag in the `runflags` member of `struct comedi_subdevice` indicates that the memory pointed to by the `private` member can be automatically freed by the comedi core on subdevice clean-up (when the low-level comedi device is being "detached"). the flag doesn't really belong in `runflags`, but it was somewhere convenient to keep it without having to add a new member to the structure. Rather than access the `COMEDI_SRF_FREE_SPRIV` flag directly, use some new wrapper functions: * comedi_can_auto_free_spriv(s) - checks whether the subdevice's `s->private` points to memory that can be freed automatically. * comedi_set_spriv_auto_free(s) - marks the subdevice as having a `s->private` that points to memory that can be freed automatically. Export `comedi_set_spriv_auto_free()` for use by the low-level comedi driver modules, in particular the "amplc_dio200_common" module. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/comedi_fops.c | 24 ++++++++++++++++++++-- drivers/staging/comedi/comedi_internal.h | 1 + drivers/staging/comedi/comedidev.h | 1 + drivers/staging/comedi/drivers.c | 2 +- .../staging/comedi/drivers/amplc_dio200_common.c | 6 +++--- 5 files changed, 28 insertions(+), 6 deletions(-) commit a437dee5335e3b5fdb82199f11eebf3f41bf5b8e Author: H Hartley Sweeten Date: Mon Apr 20 11:49:06 2015 -0700 staging: comedi: serial2002: fix Coverity "Explicit null dereference" serial2002_setup_subdevices() initializes each subdevice based on the config read from the attached serial device. Part of this initialization is to setup the subdevice range_table_list for the non digital subdevices. The range_table_list is allocated only when a 'range' is passed to the functions. Each channel of the subdevice then has it's 'range' initialized and that range is added to the range_table_list. The logic of this function works but causes Coverity complain about an Explicit null dereference of the allocated 'range_table_list'. Add a check for the 'range_table_list' to quiet the Coverity issue. Reported-by: coverity (CID 1011632) Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/serial2002.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit accb298fb2e3d09a84bd92595b115232f14a5e60 Author: H Hartley Sweeten Date: Mon Apr 20 11:49:05 2015 -0700 staging: comedi: ni_nio_common: don't write non-existing caldac's ni_write_caldac() checks the boardinfo 'caldac' array to determine what caldac is used for a given 'addr'. It then calculates the 'bitstring' and number of 'bits' used to write a value to that caldac address. After checking the caldac array, if the number of bits is 0 there is no caldac associated with the address. If this happens we shouldn't try writing to the non-existing caldac. Reported-by: coverity (CID 1192116) Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_mio_common.c | 4 ++++ 1 file changed, 4 insertions(+) commit b3ab6fbfd8625232c54d70e29f7274118726ba45 Author: H Hartley Sweeten Date: Mon Apr 20 11:49:04 2015 -0700 staging: comedi: comedi_bond: fix 'b_mask' calc in bonding_dio_insn_bits() 'b_chans' may be a valud up to 32. 'b_mask' is an unsigned int and a left shift of more than 31 bits has undefined behavior. Fix the calc so it works correctly with a 'b_chans' of 32.. Reported-by: coverity (CID 1192244) Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/comedi_bond.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 351f6689cc2941f4e1ec588b8b4673457acf2e58 Author: Andrei Maresu Date: Thu Apr 9 23:29:31 2015 +0300 Staging: comedi: daqboard2000.c fixed trailing whitespace Fixed a coding style issue. Signed-off-by: Andrei Maresu Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/daqboard2000.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9059c615a8ba503cb5a7823d7f943a384e6063e3 Author: Sudip Mukherjee Date: Tue Apr 7 13:55:01 2015 +0530 staging: panel: remove duplicate code both the misc_deregister(), parport_release() and parport_unregister_device() is there in the module_exit function also. detach is called from parport_unregister_driver() and by the time detach executes misc_deregister(), parport_release() and parport_unregister_device() has already executed marking keypad_initialized and lcd.initialized as false. so this part of the code will never execute. Signed-off-by: Sudip Mukherjee Reviewed-by: Dan Carpenter Signed-off-by: Greg Kroah-Hartman drivers/staging/panel/panel.c | 14 -------------- 1 file changed, 14 deletions(-) commit 67620987c556ee70034bd71703d61d07b4d96e60 Author: Aaro Koskinen Date: Sat Apr 4 22:51:21 2015 +0300 staging: octeon-ethernet: update boilerplate comments Update boilerplate comments to be more terse by removing redundant information. Signed-off-by: Aaro Koskinen Signed-off-by: Greg Kroah-Hartman drivers/staging/octeon/ethernet-defines.h | 23 +++-------------------- drivers/staging/octeon/ethernet-mdio.c | 24 ++++-------------------- drivers/staging/octeon/ethernet-mdio.h | 24 ++++-------------------- drivers/staging/octeon/ethernet-mem.c | 24 ++++-------------------- drivers/staging/octeon/ethernet-mem.h | 23 +++-------------------- drivers/staging/octeon/ethernet-rgmii.c | 24 ++++-------------------- drivers/staging/octeon/ethernet-rx.c | 24 ++++-------------------- drivers/staging/octeon/ethernet-rx.h | 24 ++++-------------------- drivers/staging/octeon/ethernet-sgmii.c | 24 ++++-------------------- drivers/staging/octeon/ethernet-spi.c | 24 ++++-------------------- drivers/staging/octeon/ethernet-tx.c | 24 ++++-------------------- drivers/staging/octeon/ethernet-tx.h | 23 +++-------------------- drivers/staging/octeon/ethernet-util.h | 23 +++-------------------- drivers/staging/octeon/ethernet-xaui.c | 24 ++++-------------------- drivers/staging/octeon/ethernet.c | 24 ++++-------------------- drivers/staging/octeon/octeon-ethernet.h | 23 +++-------------------- 16 files changed, 59 insertions(+), 320 deletions(-) commit 948c251b70e7b6bbaaf8afa1f7e6049c61af7dc6 Author: Aaro Koskinen Date: Sat Apr 4 22:51:20 2015 +0300 staging: octeon-ethernet: eliminate OCTEON_ETHERNET_VERSION This driver has drifted away from out-of-tree versions years ago and the version string does not provide any useful information. Instead provide the kernel version string to ethtool, so that we get useful version information e.g. for bug reports. Signed-off-by: Aaro Koskinen Signed-off-by: Greg Kroah-Hartman drivers/staging/octeon/ethernet-defines.h | 3 --- drivers/staging/octeon/ethernet-mdio.c | 6 +++--- drivers/staging/octeon/ethernet.c | 1 - 3 files changed, 3 insertions(+), 7 deletions(-) commit c93b0e75a819e648e7c16a5ebd503a2a36f7c1ac Author: Aaro Koskinen Date: Sat Apr 4 22:51:19 2015 +0300 staging: octeon-ethernet: eliminate DONT_WRITEBACK This feature is not used so eliminate it. Signed-off-by: Aaro Koskinen Signed-off-by: Greg Kroah-Hartman drivers/staging/octeon/ethernet-defines.h | 8 -------- drivers/staging/octeon/ethernet-mem.c | 2 +- drivers/staging/octeon/ethernet-rx.c | 3 +-- drivers/staging/octeon/ethernet-tx.c | 2 +- drivers/staging/octeon/ethernet.c | 5 ++--- 5 files changed, 5 insertions(+), 15 deletions(-) commit cccdb27755a3ae79a5fb98257c93d4ea80efe3f8 Author: Aaro Koskinen Date: Sat Apr 4 22:51:18 2015 +0300 staging: octeon-ethernet: eliminate USE_RED define We have RED always enabled, so eliminate the #define. Signed-off-by: Aaro Koskinen Signed-off-by: Greg Kroah-Hartman drivers/staging/octeon/ethernet-defines.h | 2 -- drivers/staging/octeon/ethernet.c | 5 +---- 2 files changed, 1 insertion(+), 6 deletions(-) commit 3a990f390ec093293c03e9542f2583c5e4c53684 Author: Aaro Koskinen Date: Sat Apr 4 22:51:17 2015 +0300 staging: octeon-ethernet: eliminate USE_SKBUFFS_IN_HW define We always try to use skbuffs for packet buffers, so eliminate a redundant define. Signed-off-by: Aaro Koskinen Signed-off-by: Greg Kroah-Hartman drivers/staging/octeon/ethernet-defines.h | 5 ----- drivers/staging/octeon/ethernet-mem.c | 4 ++-- drivers/staging/octeon/ethernet-rx.c | 4 ++-- 3 files changed, 4 insertions(+), 9 deletions(-) commit 6646baf7041214a9d616b55de96315179f112508 Author: Aaro Koskinen Date: Sat Apr 4 22:51:16 2015 +0300 staging: octeon-ethernet: eliminate USE_HW_TCPUDP_CHECKSUM define HW checksum is always enabled, so delete a redundant define. Signed-off-by: Aaro Koskinen Signed-off-by: Greg Kroah-Hartman drivers/staging/octeon/ethernet-defines.h | 6 ------ drivers/staging/octeon/ethernet-tx.c | 2 +- drivers/staging/octeon/ethernet.c | 7 ++----- 3 files changed, 3 insertions(+), 12 deletions(-) commit 25efe08e849baeac40b9216bae6a5e0299872306 Author: Aaro Koskinen Date: Sat Apr 4 22:51:15 2015 +0300 staging: octeon-ethernet: eliminate USE_10MBPS_PREAMBLE_WORKAROUND define We have the workaround always enabled, so eliminate a redundant #define. Signed-off-by: Aaro Koskinen Signed-off-by: Greg Kroah-Hartman drivers/staging/octeon/ethernet-defines.h | 5 ----- drivers/staging/octeon/ethernet-rgmii.c | 14 +++----------- drivers/staging/octeon/ethernet-rx.c | 7 ++----- 3 files changed, 5 insertions(+), 21 deletions(-) commit 280eb5b528fa49c141cafcc1b86bb24d1760b2d4 Author: Aaro Koskinen Date: Sat Apr 4 22:51:14 2015 +0300 staging: octeon-ethernet: delete references to CONFIG_CAVIUM_RESERVE32 Delete references to CONFIG_CAVIUM_RESERVE32. Kernel does not have such option and the driver does not use it for anything. Signed-off-by: Aaro Koskinen Signed-off-by: Greg Kroah-Hartman drivers/staging/octeon/ethernet-defines.h | 10 ---------- 1 file changed, 10 deletions(-) commit 81f56d332050084dccdff61bbf819d97f28abe70 Author: Aaro Koskinen Date: Sat Apr 4 22:51:13 2015 +0300 staging: octeon-ethernet: spi: refactor spx block interrupt handling Code for spx1 and spx0 block are identical, move it into a function. Signed-off-by: Aaro Koskinen Signed-off-by: Greg Kroah-Hartman drivers/staging/octeon/ethernet-spi.c | 77 ++++++++++++++--------------------- 1 file changed, 30 insertions(+), 47 deletions(-) commit 124bcc5e74fe4cc761d759dac8f8c041e1d3ad96 Author: Aaro Koskinen Date: Sat Apr 4 22:51:12 2015 +0300 staging: octeon-ethernet: spi: move stx interrupt dumps into a function Move interrupt printouts into a common function to avoid copy paste. Signed-off-by: Aaro Koskinen Signed-off-by: Greg Kroah-Hartman drivers/staging/octeon/ethernet-spi.c | 68 ++++++++++++++++------------------- 1 file changed, 30 insertions(+), 38 deletions(-) commit 8884ceeb4b8ea400468683b9b4d0bf5f2b9ac7e7 Author: Aaro Koskinen Date: Sat Apr 4 22:51:11 2015 +0300 staging: octeon-ethernet: spi: move spx interrupt dumps into a function Move interrupt printouts into a common function to avoid copy paste. Signed-off-by: Aaro Koskinen Signed-off-by: Greg Kroah-Hartman drivers/staging/octeon/ethernet-spi.c | 80 +++++++++++++++-------------------- 1 file changed, 34 insertions(+), 46 deletions(-) commit 01d3007a5de1bb3f6c84dcc836dc5bffee91a7e3 Author: Aaro Koskinen Date: Sat Apr 4 22:51:10 2015 +0300 staging: octeon-ethernet: rgmii: use function to configure hw preamble Use a function to enable/disable HW preamble checking to avoid copy paste. Signed-off-by: Aaro Koskinen Signed-off-by: Greg Kroah-Hartman drivers/staging/octeon/ethernet-rgmii.c | 84 ++++++++++++++------------------- 1 file changed, 35 insertions(+), 49 deletions(-) commit 67d2ee257392372e889ece8526eef9941e982512 Author: Aaro Koskinen Date: Sat Apr 4 22:51:09 2015 +0300 staging: octeon-ethernet: rgmii: refactor gmx block interrupt handling Code for gmx0 and gmx1 block is identical, move it into a function. Signed-off-by: Aaro Koskinen Signed-off-by: Greg Kroah-Hartman drivers/staging/octeon/ethernet-rgmii.c | 123 +++++++++++--------------------- 1 file changed, 41 insertions(+), 82 deletions(-) commit a8d2e8171082854dadea64b808af4b54f78c0384 Author: Aaro Koskinen Date: Sat Apr 4 22:51:08 2015 +0300 staging: octeon-ethernet: sgmii/xaui: make link poll generic Make link poll generic to avoid copy paste. Signed-off-by: Aaro Koskinen Signed-off-by: Greg Kroah-Hartman drivers/staging/octeon/ethernet-sgmii.c | 24 +----------------------- drivers/staging/octeon/ethernet-xaui.c | 26 ++------------------------ drivers/staging/octeon/ethernet.c | 21 +++++++++++++++++++++ drivers/staging/octeon/octeon-ethernet.h | 1 + 4 files changed, 25 insertions(+), 47 deletions(-) commit 2638f71307f649532f613a4bcb3b163b7b63017a Author: Aaro Koskinen Date: Sat Apr 4 22:51:07 2015 +0300 staging: octeon-ethernet: consolidate carrier notifications Always use cvm_oct_note_carrier() to avoid copy-pasted code. Signed-off-by: Aaro Koskinen Signed-off-by: Greg Kroah-Hartman drivers/staging/octeon/ethernet-mdio.c | 5 ++--- drivers/staging/octeon/ethernet-rgmii.c | 19 +++---------------- drivers/staging/octeon/ethernet-sgmii.c | 20 +++----------------- drivers/staging/octeon/ethernet-xaui.c | 20 +++----------------- drivers/staging/octeon/octeon-ethernet.h | 4 ++++ 5 files changed, 15 insertions(+), 53 deletions(-) commit 36a14572415459877933857f67d93d3e053180a2 Author: Aaro Koskinen Date: Sat Apr 4 22:51:06 2015 +0300 staging: octeon-ethernet: add queue information to carrier note Add queue information to carrier note. Signed-off-by: Aaro Koskinen Signed-off-by: Greg Kroah-Hartman drivers/staging/octeon/ethernet-mdio.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 3c33914558cc22f9a51a7a15da1e991e49fcb1b3 Author: Aaro Koskinen Date: Sat Apr 4 22:51:05 2015 +0300 staging: octeon-ethernet: delete sgmii and xaui specific uninit functions Delete redundant wrappers. Signed-off-by: Aaro Koskinen Signed-off-by: Greg Kroah-Hartman drivers/staging/octeon/ethernet-sgmii.c | 5 ----- drivers/staging/octeon/ethernet-xaui.c | 5 ----- drivers/staging/octeon/ethernet.c | 4 ++-- drivers/staging/octeon/octeon-ethernet.h | 2 -- 4 files changed, 2 insertions(+), 14 deletions(-) commit be76400c31194d759b621bc2b70f0c61882fbaec Author: Aaro Koskinen Date: Sat Apr 4 22:51:04 2015 +0300 staging: octeon-ethernet: move ndo_stop to common init All init functions call ndo_stop if it's defined, so move it to common function. Signed-off-by: Aaro Koskinen Signed-off-by: Greg Kroah-Hartman drivers/staging/octeon/ethernet-rgmii.c | 1 - drivers/staging/octeon/ethernet-sgmii.c | 1 - drivers/staging/octeon/ethernet-xaui.c | 1 - drivers/staging/octeon/ethernet.c | 3 +++ 4 files changed, 3 insertions(+), 3 deletions(-) commit 96217ebff7f2fda012f755cdb28f34400fd5f99c Author: Aaro Koskinen Date: Sat Apr 4 22:51:03 2015 +0300 staging: octeon-ethernet: consolidate ndo_stop functions All ndo_stop functions are identical. Get rid of duplicated code. Signed-off-by: Aaro Koskinen Signed-off-by: Greg Kroah-Hartman drivers/staging/octeon/ethernet-mdio.c | 9 ++++++++- drivers/staging/octeon/ethernet-rgmii.c | 13 ------------- drivers/staging/octeon/ethernet-sgmii.c | 13 ------------- drivers/staging/octeon/ethernet-xaui.c | 13 ------------- drivers/staging/octeon/ethernet.c | 6 +++--- drivers/staging/octeon/octeon-ethernet.h | 3 --- 6 files changed, 11 insertions(+), 46 deletions(-) commit 9e3ae4f9aecffcc376a714d5088a1275054f9dbf Author: Aaro Koskinen Date: Sat Apr 4 22:51:02 2015 +0300 staging: octeon-ethernet: consolidate ndo_open functions ndo_open for rgmii, sgmii and xaui are almost identical. Put the common code in a single function. Signed-off-by: Aaro Koskinen Signed-off-by: Greg Kroah-Hartman drivers/staging/octeon/ethernet-rgmii.c | 32 +------------------------- drivers/staging/octeon/ethernet-sgmii.c | 33 +-------------------------- drivers/staging/octeon/ethernet-xaui.c | 33 +-------------------------- drivers/staging/octeon/ethernet.c | 39 ++++++++++++++++++++++++++++++++ drivers/staging/octeon/octeon-ethernet.h | 2 ++ 5 files changed, 44 insertions(+), 95 deletions(-) commit 32b249b0f54fb304c5f90be00ebcb9c1a32d415c Author: Malcolm Priestley Date: Mon Apr 6 21:19:48 2015 +0100 staging: vt6655: device_intr check for vif on while loop vif should never be or go null while in loop. Fixes race condition where interrupts are late and when interface is not present. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6655/device_main.c | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) commit aeda3b2d4a6760bda799feeaac391a7bdcdbbdb5 Author: Alan Date: Wed Apr 8 20:24:43 2015 +0100 iio: example code is buggy Shock horror, example template code that has never been used in reality is in fact a hazard. This fixes the obvious bug, probably these kind of "examples" should be deleted so real (working) examples are followed. Signed-off-by: Alan Cox Signed-off-by: Greg Kroah-Hartman drivers/staging/iio/iio_simple_dummy_events.c | 2 ++ 1 file changed, 2 insertions(+) commit 94361655442effc78904039cb051228b3228e4cb Author: Gujulan Elango, Hari Prasath (H.) Date: Thu Apr 23 19:30:53 2015 +0000 staging: emxx_udc: Remove dead code This patch removes few lines of commented code. Signed-off-by: Hari Prasath Gujulan Elango Signed-off-by: Greg Kroah-Hartman drivers/staging/emxx_udc/emxx_udc.c | 33 --------------------------------- 1 file changed, 33 deletions(-) commit 3e2bb64d1a142e7fd81b6821483044597cfe8717 Author: Gujulan Elango, Hari Prasath (H.) Date: Thu Apr 23 19:29:51 2015 +0000 staging: emxx_udc : remove stray semicolon This patch removes a stray semicolon around closing brace of an if code block. Signed-off-by: Hari Prasath Gujulan Elango Signed-off-by: Greg Kroah-Hartman drivers/staging/emxx_udc/emxx_udc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bd7de5cea225f85b218730eddf7476dd6260bafc Author: Julia Lawall Date: Sat Apr 4 16:59:30 2015 +0200 staging: emxx_udc: test returned value Put NULL test on the result of the previous call instead on one of its arguments. A simplified version of the semantic match that finds this problem is as follows (http://coccinelle.lip6.fr/): // r@ expression *e1; expression *e2; identifier f; statement S1,S2; @@ e1 = f(...,e2,...); ( if (e1 == NULL || ...) S1 else S2 | *if (e2 == NULL || ...) S1 else S2 ) // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/emxx_udc/emxx_udc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 27cbc73aac0d82490e2a6fd6838d21e8c08b0166 Author: Nicolas Iooss Date: Fri Apr 17 17:41:43 2015 +0800 Staging: fbtft: fix header guard typo drivers/staging/fbtft/internal.h header guard tests for __LINUX_FBTFT__INTERNAL_H but then defines __LINUX_FBTFT_INTERNAL_H (only 1 underscore) and uses the same name for the #endif comment. Use the same name everywhere. Signed-off-by: Nicolas Iooss Signed-off-by: Greg Kroah-Hartman drivers/staging/fbtft/internal.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8e1a4c7f718e5de5019cb5ce6ada657ce1b5ea89 Author: Geert Uytterhoeven Date: Fri Apr 24 09:44:15 2015 +0200 staging: fbtft: Disable DMA support if DMA is not available If NO_DMA=y: drivers/built-in.o: In function `fbtft_framebuffer_alloc': (.text+0xb53cae): undefined reference to `dmam_alloc_coherent' As DMA support is already optional, make it depend on HAS_DMA. Signed-off-by: Geert Uytterhoeven Signed-off-by: Greg Kroah-Hartman drivers/staging/fbtft/fbtft-core.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit a94ac1590b28245225300aaca7ea2de4f3f1e296 Author: Charlie Wong Super <1213charlie@gmail.com> Date: Sat Apr 4 20:54:56 2015 +0800 staging: fbtft: Add a blank line after declarations scripts/checkpatch.pl WARNING: Missing a blank line after declarations Signed-off-by: Charlie Wong Super <1213charlie@gmail.com> Signed-off-by: Greg Kroah-Hartman drivers/staging/fbtft/fb_tls8204.c | 1 + 1 file changed, 1 insertion(+) commit afe11f108a6290fc03fc6028246a9759a3db104d Author: Charlie Wong Super <1213charlie@gmail.com> Date: Sat Apr 4 19:30:28 2015 +0800 staging: fbtft: Replace spaces to tab Spaces at the start of the line, replace the leading space to tabs Signed-off-by: Charlie Wong Super <1213charlie@gmail.com> Signed-off-by: Greg Kroah-Hartman drivers/staging/fbtft/fb_st7735r.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 6a7d8a418400f8bfaa1830759ef075bbed68cfe1 Author: Benjamin Romer Date: Mon Apr 13 21:16:51 2015 -0400 staging: unisys: remove uislib module from staging tree This module is being removed completely, because it contained wrapper functions and utility functions that were used in virtpci and virthba. Since these two drivers are being rewritten to not use these wrappers and utilities, uislib needs to go. Signed-off-by: Benjamin Romer Reviewed-by: Don Zickus Reviewed-by: Jes Sorensen Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/Kconfig | 1 - drivers/staging/unisys/Makefile | 1 - drivers/staging/unisys/uislib/Kconfig | 10 - drivers/staging/unisys/uislib/Makefile | 12 - drivers/staging/unisys/uislib/uislib.c | 1372 ----------------------------- drivers/staging/unisys/uislib/uisqueue.c | 322 ------- drivers/staging/unisys/uislib/uisthread.c | 69 -- drivers/staging/unisys/uislib/uisutils.c | 137 --- 8 files changed, 1924 deletions(-) commit 280b5a4366dd4b813cad180e39b04e773ca0ebe0 Author: Benjamin Romer Date: Mon Apr 13 21:16:50 2015 -0400 staging: unisys: remove virtpci driver from staging tree The virtpci driver is being rewritten, so remove the driver from the staging tree. Signed-off-by: Benjamin Romer Reviewed-by: Don Zickus Reviewed-by: Jes Sorensen Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/Kconfig | 1 - drivers/staging/unisys/Makefile | 1 - drivers/staging/unisys/virtpci/Kconfig | 10 - drivers/staging/unisys/virtpci/Makefile | 10 - drivers/staging/unisys/virtpci/virtpci.c | 1394 ------------------------------ drivers/staging/unisys/virtpci/virtpci.h | 103 --- 6 files changed, 1519 deletions(-) commit 3d3fb181309c68850762123f6f87f660a7606dfb Author: Benjamin Romer Date: Mon Apr 13 21:16:49 2015 -0400 staging: unisys: remove virthba driver for rewrite The virthba driver is being rewritten and will be renamed to visorhba, so delete the old driver from the source tree. Signed-off-by: Benjamin Romer Reviewed-by: Don Zickus Reviewed-by: Jes Sorensen Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/Kconfig | 1 - drivers/staging/unisys/Makefile | 1 - drivers/staging/unisys/virthba/Kconfig | 13 - drivers/staging/unisys/virthba/Makefile | 12 - drivers/staging/unisys/virthba/virthba.c | 1572 ------------------------------ drivers/staging/unisys/virthba/virthba.h | 27 - 6 files changed, 1626 deletions(-) commit 1d4c1afac4c46723475ec8e10ff7eed3c439393c Author: Jes Sorensen Date: Mon Apr 13 10:28:44 2015 -0400 staging: unisys: visorchipset: Get rid of ulong usage Signed-off-by: Jes Sorensen Tested-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorchipset/file.c | 6 +++--- drivers/staging/unisys/visorchipset/parser.c | 16 ++++++++-------- drivers/staging/unisys/visorchipset/parser.h | 2 +- 3 files changed, 12 insertions(+), 12 deletions(-) commit ac48c05c678e9917b9f3e9b6e1792675a6a1d672 Author: Jes Sorensen Date: Mon Apr 13 10:28:43 2015 -0400 staging: unisys: visorchipset: Remove unused get_channel_info notifier Signed-off-by: Jes Sorensen Tested-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorchipset/visorchipset.h | 2 -- 1 file changed, 2 deletions(-) commit a6e7fe5c042c171d912783a8bf0918b7f68aefe4 Author: Jes Sorensen Date: Mon Apr 13 10:28:42 2015 -0400 staging: unisys: visorchipset: Use correct type for dev_no visorchipset_bus_info.dev_no is only assigned the value of controlvm_message_packet.create_bus.dev_count, which is a u32. No point promoting it to a u64. Signed-off-by: Jes Sorensen Tested-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorchipset/visorchipset.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 52063eca7fd04cb4e8a5b8f0d4f99c5e8816d59e Author: Jes Sorensen Date: Mon Apr 13 10:28:41 2015 -0400 staging: unisys: visorchipset: Do not use confuse size of long with size of u32 struct visorcipset_device_info defines bus_no and dev_no as u32, while the deprecated ulong type is 64 bits. Hence avoid promoting the values to 64 bit just to truncate them again later. Signed-off-by: Jes Sorensen Tested-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorchipset/visorchipset.h | 35 ++++++----- .../unisys/visorchipset/visorchipset_main.c | 67 +++++++++++----------- 2 files changed, 50 insertions(+), 52 deletions(-) commit f4c11551e7109f0d3a4708a149903e4c75e962d2 Author: Jes Sorensen Date: Mon Apr 13 10:28:40 2015 -0400 staging: unisys: visorchipset: Get rid of ugly BOOL/TRUE/FALSE usage Signed-off-by: Jes Sorensen Tested-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorchipset/parser.c | 24 +++--- drivers/staging/unisys/visorchipset/parser.h | 8 +- drivers/staging/unisys/visorchipset/visorchipset.h | 10 +-- .../unisys/visorchipset/visorchipset_main.c | 98 +++++++++++----------- 4 files changed, 70 insertions(+), 70 deletions(-) commit c1f834eb104d67a57ac745a36ace5e084328bda6 Author: Jes Sorensen Date: Mon Apr 13 10:28:39 2015 -0400 staging: unisys: visorchipset: Avoid struct typedef abuse Signed-off-by: Jes Sorensen Tested-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman .../staging/unisys/visorchipset/visorchipset_main.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) commit 0a22650b920fa9062e75ea51941a6249a0d16be7 Author: Jes Sorensen Date: Mon Apr 13 10:28:38 2015 -0400 staging: unisys: visorchipset: Remove unused NONULLSTR() Signed-off-by: Jes Sorensen Tested-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorchipset/visorchipset_main.c | 8 -------- 1 file changed, 8 deletions(-) commit 1ba00980f6b9151066e8ed19e4eb37e769b3ef70 Author: Benjamin Romer Date: Mon Apr 6 10:27:40 2015 -0400 staging: unisys: fix kdump support The s-Par drivers used to be out-of-tree, so they needed a parameter to let them know we were going into a dump. This patch removes that code and uses the built-in kernel function instead. Reviewed-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorchipset/globals.h | 1 - drivers/staging/unisys/visorchipset/visorchipset_main.c | 7 ++----- 2 files changed, 2 insertions(+), 6 deletions(-) commit 9c4e936abfadf5fc64481f06f7ba351b007af1ff Author: Andreas Theodosiou Date: Sun Apr 5 02:09:30 2015 +0300 staging : unisys: Fix brace coding style issue This is a patch to visorchannel/visorchannel_funcs.c that fixes a couple of brace warnings found by checkpatch.pl. Signed-off-by: Andreas Theodosiou Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorchannel/visorchannel_funcs.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 3b2f5202c52a842a6528a72e85b46435c1d59116 Author: Dzmitry Sledneu Date: Sat Apr 18 15:20:43 2015 +0200 staging: lustre: Make struct mdc_kuc_fops static This patch fixes the following Sparse warning: "symbol 'mdc_kuc_fops' was not declared. Should it be static?". Signed-off-by: Dzmitry Sledneu Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/mdc/lproc_mdc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 840c94d574a8bb5fb03cad0b5aa1bd0e2984b01a Author: Julia Lawall Date: Sun Apr 12 23:34:20 2015 +0200 staging: lustre: drop uses of some OBD alloc and free functions Replace OBD_ALLOC, OBD_ALLOC_WAIT, OBD_ALLOC_PTR, and OBD_ALLOC_PTR_WAIT by kzalloc or calloc, as appropriate. Replace OBD_FREE and OBD_FREE_PTR by kfree. A simplified version of the semantic patch that makes these changes in the OBD_ALLOC/FREE case is as follows: (http://coccinelle.lip6.fr/) // @@ expression ptr,e1,e2; @@ - OBD_ALLOC(ptr,sizeof e1 * e2) + ptr = kcalloc(e2, sizeof e1, GFP_NOFS) @@ expression ptr,size; @@ - OBD_ALLOC(ptr,size) + ptr = kzalloc(size, GFP_NOFS) @@ expression ptr, size; @@ - OBD_FREE(ptr, size); + kfree(ptr); // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/lov/lov_dev.c | 18 ++++++------- drivers/staging/lustre/lustre/lov/lov_io.c | 5 ++-- drivers/staging/lustre/lustre/lov/lov_obd.c | 21 ++++++++------- drivers/staging/lustre/lustre/lov/lov_pool.c | 18 ++++++------- drivers/staging/lustre/lustre/lov/lov_request.c | 34 ++++++++++++------------- drivers/staging/lustre/lustre/lov/lovsub_dev.c | 4 +-- 6 files changed, 50 insertions(+), 50 deletions(-) commit 97903a26fcfc84b93a9cdb09d649c1b748383c24 Author: Julia Lawall Date: Sun Apr 12 22:55:02 2015 +0200 staging: lustre: llite: drop uses of OBD free functions Replace OBD_FREE and OBD_FREE_PTR by kfree. The semantic patch that makes these changes is as follows: (http://coccinelle.lip6.fr/) // @@ expression ptr, size; @@ - OBD_FREE(ptr, size); + kfree(ptr); @@ expression ptr; @@ - OBD_FREE_PTR(ptr); + kfree(ptr); // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/dcache.c | 6 ++-- drivers/staging/lustre/lustre/llite/dir.c | 34 ++++++++++---------- drivers/staging/lustre/lustre/llite/file.c | 36 +++++++++++----------- drivers/staging/lustre/lustre/llite/llite_close.c | 6 ++-- drivers/staging/lustre/lustre/llite/llite_lib.c | 31 +++++++++---------- drivers/staging/lustre/lustre/llite/llite_nfs.c | 2 +- drivers/staging/lustre/lustre/llite/llite_rmtacl.c | 4 +-- drivers/staging/lustre/lustre/llite/lloop.c | 8 ++--- drivers/staging/lustre/lustre/llite/namei.c | 2 +- drivers/staging/lustre/lustre/llite/statahead.c | 20 ++++++------ drivers/staging/lustre/lustre/llite/xattr_cache.c | 6 ++-- 11 files changed, 77 insertions(+), 78 deletions(-) commit 3746e6f93bbf28a25d2d69350ab6bfba02e14654 Author: Andreas Dilger Date: Wed Apr 8 17:24:02 2015 -0600 staging: lustre: llite: remove obsolete conditional code Remove conditional flock/aops code that was only for out-of-tree vendor kernels but is not relevant for in-kernel code. Signed-off-by: Andreas Dilger Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/llite_internal.h | 4 ---- drivers/staging/lustre/lustre/llite/llite_lib.c | 8 -------- drivers/staging/lustre/lustre/llite/rw26.c | 20 -------------------- 3 files changed, 32 deletions(-) commit 41d98f584f03660324f078fd812342a1e75edd6d Author: kbuild test robot Date: Thu Apr 30 21:03:04 2015 +0800 i2o: fix simple_return.cocci warnings drivers/staging/i2o/iop.c:777:1-3: WARNING: end returns can be simpified Simplify a trivial if-return sequence. Possibly combine with a preceding function call. Generated by: scripts/coccinelle/misc/simple_return.cocci CC: Alan Cox Signed-off-by: Fengguang Wu Signed-off-by: Greg Kroah-Hartman drivers/staging/i2o/iop.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit 3ede1b6be0718eb22531c573afc87f275147fbbe Author: Gujulan Elango, Hari Prasath (H.) Date: Thu Apr 23 13:43:01 2015 +0000 staging: i2o: Remove unwanted semicolon This patch removes unwanted semicolon around close braces of code blocks Signed-off-by: Hari Prasath Signed-off-by: Greg Kroah-Hartman drivers/staging/i2o/iop.c | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) commit b3d37f92a79a329c392712da5e71fdd6c0258c3a Author: Peter Griffin Date: Tue Mar 31 09:35:00 2015 +0200 ARM: DT: STi: STiH407: Add sata DT nodes. Now that the miphy28lp is upstream, we can add the sata dt nodes for stih407 family silicon. This has been tested on b2120 board J4 (sata0 channel). These nodes are disabled by default as a special mini pci-e to sata daughter board is required which isn't shipped with the board. Signed-off-by: Peter Griffin Acked-by: Lee Jones Acked-by: Maxime Coquelin Signed-off-by: Maxime Coquelin arch/arm/boot/dts/stih407-family.dtsi | 45 +++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) commit d90accb913a7a72172ec6b82f8b8766d9c9bf8bf Author: Karim BEN BELGACEM Date: Wed Mar 18 18:21:00 2015 +0100 ARM: STi: DT: STiH407: Fix retime pin mask for PIO5 and PIO35 This will avoid programming the retime registers when not implemented - PIO5 : no retime registers assigned to pins 6 and 7 - PIO35 : pin 7 is reserved so no retime register assigned to it Signed-off-by: Karim BEN BELGACEM Acked-by: Maxime Coquelin Signed-off-by: Lee Jones Signed-off-by: Maxime Coquelin arch/arm/boot/dts/stih407-pinctrl.dtsi | 2 ++ 1 file changed, 2 insertions(+) commit 358764f306242bf2b3d71693b04b05e0b75718ae Author: Lee Jones Date: Thu Apr 9 16:47:00 2015 +0200 ARM: STi: DT: STiH407: Add Device Tree node for the LPC On current ST platforms the LPC controls a number of functions. This patch enables support for the LPC Watchdog and LPC RTC devices on LPC1 and LPC2 respectively. Signed-off-by: David Paris Signed-off-by: Lee Jones Signed-off-by: Maxime Coquelin arch/arm/boot/dts/stih407-family.dtsi | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit 179340b8794da1a8df8f6ff280157c57b0e8bad3 Merge: ba7f272 0b30d25 Author: Maxime Coquelin Date: Thu Apr 30 15:34:58 2015 +0200 Merge tag 'ib-mfd-arm-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git Signed-off-by: Maxime Coquelin commit 3d716a0ad2e971cea46bb4393f9dfd7e76d883c6 Merge: 71f881c 43b2cd5 Author: Takashi Iwai Date: Thu Apr 30 15:31:43 2015 +0200 Merge branch 'topic/jack' into for-next commit 43b2cd547edcba4733bf21ea2b3f6600e3bdc514 Author: Takashi Iwai Date: Thu Apr 30 15:25:00 2015 +0200 ALSA: jack: Fix another NULL dereference due to empty input jack Another fixes for NULL jack->input_dev in some places in jack.c. Fixes: 2ba2dfa1fcc7 ('ALSA: hda - Update to use the new jack kctls method') Signed-off-by: Takashi Iwai sound/core/jack.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 042f7df15a4fff8eec42873f755aea848dcdedd1 Author: Lai Jiangshan Date: Thu Apr 30 17:16:12 2015 +0800 workqueue: Allow modifying low level unbound workqueue cpumask Allow to modify the low-level unbound workqueues cpumask through sysfs. This is performed by traversing the entire workqueue list and calling apply_wqattrs_prepare() on the unbound workqueues with the new low level mask. Only after all the preparation are done, we commit them all together. Ordered workqueues are ignored from the low level unbound workqueue cpumask, it will be handled in near future. All the (default & per-node) pwqs are mandatorily controlled by the low level cpumask. If the user configured cpumask doesn't overlap with the low level cpumask, the low level cpumask will be used for the wq instead. The comment of wq_calc_node_cpumask() is updated and explicitly requires that its first argument should be the attrs of the default pwq. The default wq_unbound_cpumask is cpu_possible_mask. The workqueue subsystem doesn't know its best default value, let the system manager or the other subsystem set it when needed. Changed from V8: merge the calculating code for the attrs of the default pwq together. minor change the code&comments for saving the user configured attrs. remove unnecessary list_del(). minor update the comment of wq_calc_node_cpumask(). update the comment of workqueue_set_unbound_cpumask(); Cc: Christoph Lameter Cc: Kevin Hilman Cc: Lai Jiangshan Cc: Mike Galbraith Cc: Paul E. McKenney Cc: Tejun Heo Cc: Viresh Kumar Cc: Frederic Weisbecker Original-patch-by: Frederic Weisbecker Signed-off-by: Lai Jiangshan Signed-off-by: Tejun Heo include/linux/workqueue.h | 1 + kernel/workqueue.c | 127 ++++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 119 insertions(+), 9 deletions(-) commit 6ed9495e225605b7c4cd1544b87740e18ef43320 Author: Jie Yang Date: Thu Apr 30 20:22:46 2015 +0800 ALSA: jack: don't report input event for phantom jack There is no input_dev for phantom jack, we should not report input event for it, otherwise, NULL pointer dereference error will occur. Fixes: 2ba2dfa1fcc7 ('ALSA: hda - Update to use the new jack kctls method') Signed-off-by: Jie Yang Signed-off-by: Takashi Iwai sound/core/jack.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit db4112e6d71526def391d4cdd708b3a826643228 Author: Lee Jones Date: Thu Apr 9 15:47:34 2015 +0100 MAINTAINERS: Add Watchdog and RTC files to STI's maintainer entry Signed-off-by: Lee Jones MAINTAINERS | 2 ++ 1 file changed, 2 insertions(+) commit b5b2bdfc2893910fdc02d21ec5c535635c896ff7 Author: Lee Jones Date: Thu Apr 9 15:47:33 2015 +0100 rtc: st: Add new driver for ST's LPC RTC ST's Low Power Controller (LPC) controls two devices; watchdog and RTC. Only one of the devices can be used at any one time. This is enforced by the correlating MFD driver. This portion of the driver-set controls the Real Time Clock. Cc: Alessandro Zummo Signed-off-by: Lee Jones drivers/rtc/Kconfig | 11 ++ drivers/rtc/Makefile | 1 + drivers/rtc/rtc-st-lpc.c | 354 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 366 insertions(+) commit 5cb69745da35c372b3db001efbd3967b633ba0d1 Author: Lee Jones Date: Thu Apr 9 15:47:32 2015 +0100 rtc: bindings: Provide ST bindings for ST's LPC RTC device On current ST platforms the LPC controls a number of functions including Watchdog and Real Time Clock. This patch provides the bindings used to configure LPC in RTC mode. Cc: Alessandro Zummo Signed-off-by: Lee Jones .../devicetree/bindings/rtc/rtc-st-lpc.txt | 25 ++++++++++++++++++++++ 1 file changed, 25 insertions(+) commit 49ae77905c56da6d73e8d4a73aa030718a096551 Author: Lee Jones Date: Thu Apr 9 15:47:31 2015 +0100 watchdog: st_wdt: Add new driver for ST's LPC Watchdog Reviewed-by: Guenter Roeck Signed-off-by: David Paris Signed-off-by: Lee Jones drivers/watchdog/Kconfig | 12 ++ drivers/watchdog/Makefile | 1 + drivers/watchdog/st_lpc_wdt.c | 344 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 357 insertions(+) commit cb6a7a9e00fda1d51880ac0e93ad54a87034e822 Author: Lee Jones Date: Thu Apr 9 16:47:00 2015 +0200 ARM: multi_v7_defconfig: Enable support for ST's LPC RTC Signed-off-by: Lee Jones Signed-off-by: Maxime Coquelin arch/arm/configs/multi_v7_defconfig | 1 + 1 file changed, 1 insertion(+) commit 1b344b9669930ec36b86b639ee71bb6bf3ba425a Author: Lee Jones Date: Thu Apr 9 16:47:00 2015 +0200 ARM: multi_v7_defconfig: Enable support for ST's LPC Watchdog Signed-off-by: Lee Jones Signed-off-by: Maxime Coquelin arch/arm/configs/multi_v7_defconfig | 1 + 1 file changed, 1 insertion(+) commit b0e6867411ea656124390653570718a90d7167f7 Author: Lee Jones Date: Thu Apr 9 15:47:30 2015 +0100 watchdog: bindings: Provide ST bindings for ST's LPC Watchdog device On current ST platforms the LPC controls a number of functions including Watchdog and Real Time Clock. This patch provides the bindings used to configure LPC in Watchdog mode. Acked-by: Guenter Roeck Signed-off-by: Lee Jones .../devicetree/bindings/watchdog/st_lpc_wdt.txt | 38 ++++++++++++++++++++++ 1 file changed, 38 insertions(+) commit 0b30d25d08ab2033fd6e7fced7fa0d77f9eaa7de Author: Lee Jones Date: Thu Apr 9 15:47:26 2015 +0100 mfd: dt-bindings: Provide human readable defines for LPC mode choosing ST's Low Power Controller can currently operate in two supported modes; Watchdog and Real Time Clock. These defines will aid engineers to easily identify the selected mode. Reviewed-by: Guenter Roeck Acked-by: Maxime Coquelin Signed-off-by: Lee Jones include/dt-bindings/mfd/st-lpc.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit 75d04a3773ecee617847de963ae4195d6aa74c28 Author: Mika Kuoppala Date: Tue Apr 28 17:56:17 2015 +0300 drm/i915/gtt: Allocate va range only if vma is not bound When we have bound vma into an address space, the layout of page table structures is immutable. So we can be absolutely certain that if vma is already bound, there is no need to (re)allocate a virtual address range for it. v2: - add sanity checks and remove superfluous GLOBAL_BIND set - we might do update for an unbound vma (Chris) Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90224 Testcase: igt/gem_exec_big #bdw Reported-by: Chris Wilson Cc: Chris Wilson Cc: Michel Thierry Cc: Daniel Vetter Signed-off-by: Mika Kuoppala Reviewed-by: Chris Wilson Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_gem_gtt.c | 39 +++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 17 deletions(-) commit 245054a1fe33c06ad233e0d58a27ec7b64db9284 Author: Daniel Vetter Date: Tue Apr 14 17:35:22 2015 +0200 drm/i915: Enable cmd parser to do secure batch promotion for aliasing ppgtt With the binding regression from the original full ppgtt patches fixed we can throw the switch. Yay! Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90190 Signed-off-by: Daniel Vetter Reviewed-by: Mika Kuoppala [Jani: tweaked commit title per Chris' suggestion] Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_gem_execbuffer.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit d5660422cac455346e35631654c99187cf53f088 Author: Bard Liao Date: Thu Apr 30 10:30:01 2015 +0800 ASoC: rt5645: fix implicit declaration error kbuild robot reports a implicit declaration of function 'rt5645_irq_detection' error. Signed-off-by: Bard Liao Signed-off-by: Mark Brown sound/soc/codecs/rt5645.c | 2 ++ 1 file changed, 2 insertions(+) commit faa0cdbec1c258896bff8bb59051bbada4fd6f09 Author: Imre Deak Date: Fri Apr 17 19:31:22 2015 +0300 drm/i915: fix intel_prepare_ddi At the moment intel_prepare_ddi buffer will iterate through both MST and CRT encoders, which is incorrect. Neither of these encoder types have an embedding intel_digital_port object, so for these encoder types we will use random data when dereferencing the corresponding intel_digital_port->port field. Introduced in commit b403745c84592b26a0713e6944c2b109f6df5c82 Author: Damien Lespiau Date: Mon Aug 4 22:01:33 2014 +0100 drm/i915: Iterate through the initialized DDIs to prepare their buffers v2: - fix getting at the port for MST encoders too - make sure that intel_prepare_ddi_buffers() gets called for port E too (Paulo) Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90067 Signed-off-by: Imre Deak Reviewed-by: Damien Lespiau Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_drv.h | 5 ----- drivers/gpu/drm/i915/intel_ddi.c | 28 ++++++++++++++++++---------- 2 files changed, 18 insertions(+), 15 deletions(-) commit a1e6ad667550a9be173d0a0cfbba236d9252f837 Author: Imre Deak Date: Fri Apr 17 19:31:21 2015 +0300 drm/i915: factor out ddi_get_encoder_port In the next patch we'll need to get at both the encoder's intel_digital_port object - which maybe NULL for a CRT - and it's port, so factor out this functionality. No functional change. Signed-off-by: Imre Deak Reviewed-by: Damien Lespiau Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_ddi.c | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) commit d9ca7e929d0825984873c2dd3e0bd9fda82e44be Author: Greg Kroah-Hartman Date: Wed Apr 29 16:21:59 2015 +0200 Staging: iop.c: move assignment out of if () block We should not be doing assignments within an if () block so fix up the code to not do this. change was created using Coccinelle. CC: Supriya Karanth CC: Somya Anand CC: Alan Cox Signed-off-by: Greg Kroah-Hartman drivers/staging/i2o/iop.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit ba7f2728dd6f266a8b46def8eb7ede07a2ed2b00 Author: Peter Griffin Date: Fri Apr 10 11:40:00 2015 +0200 ARM: STi: DT: STiH418: Add dt nodes for sdhci and emmc. Add dt nodes to enable sdhci / eMMC for stih418-b2199 board. Signed-off-by: Peter Griffin Signed-off-by: Maxime Coquelin arch/arm/boot/dts/stih418-b2199.dts | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 9286ac4829ba66efa1c258411dfe51736cb3cfc0 Author: Peter Griffin Date: Fri Apr 10 11:40:00 2015 +0200 ARM: STi: DT: STiH407: Add dt nodes for sdhci and emmc. The nodes have been split to allow as much commonality as possible. The stih407 has a silicon bug with eMMC UHS modes (with top regs) and as such doesn't have any of the uhs dt properties. Signed-off-by: Peter Griffin Signed-off-by: Maxime Coquelin arch/arm/boot/dts/stih407-family.dtsi | 30 ++++++++++++++++++++++++++++++ arch/arm/boot/dts/stih410-b2120.dts | 10 ++++++++++ arch/arm/boot/dts/stihxxx-b2120.dtsi | 8 ++++++++ 3 files changed, 48 insertions(+) commit 052f62f78955106a14961f0d3d34c256e896303a Author: Jani Nikula Date: Wed Apr 29 15:30:07 2015 +0300 drm/i915/hdmi: check port in ibx_infoframe_enabled Add port check for ibx similar to vlv in commit 535afa2e9e3c1867460d6981d879b04d8b2b9ab3 Author: Jesse Barnes Date: Wed Apr 15 16:52:29 2015 -0700 drm/i915/vlv: check port in infoframe_enabled v2 Reviewed-by: Jesse Barnes Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_hdmi.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 81104f6082d5a684d644932068ee3bbb969daf23 Author: Gaël PORTAY Date: Thu Apr 30 09:33:38 2015 +0200 ARM: at91/dt: at91-kizbox: update chosen node Simplify the bootargs since the platform is booting from an initramfs and set the kernel stdout path to DBGU. Signed-off-by: Gaël PORTAY Acked-by: Boris Brezillon Acked-by: Alexandre Belloni Signed-off-by: Nicolas Ferre arch/arm/boot/dts/at91-kizbox.dts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit ea6858497c4332500669118faa9b79729c5f68a8 Author: Gaël PORTAY Date: Thu Apr 30 09:33:37 2015 +0200 ARM: at91/dt: at91-kizbox: re-size nand partitions Re-size NAND partitions since the bootstrap is able to read volumes from an UBI image. Signed-off-by: Gaël PORTAY Acked-by: Boris Brezillon Acked-by: Alexandre Belloni Signed-off-by: Nicolas Ferre arch/arm/boot/dts/at91-kizbox.dts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 4a225bed2b6e45b146d508ceb55f1d7c813050c4 Author: Gaël PORTAY Date: Thu Apr 30 09:33:36 2015 +0200 ARM: at91/dt: at91-kizbox: leds related changes This: * moves to pwm-leds using tcb-pwm driver and * renames leds to pwm::. Signed-off-by: Gaël PORTAY Acked-by: Boris Brezillon Acked-by: Alexandre Belloni Signed-off-by: Nicolas Ferre arch/arm/boot/dts/at91-kizbox.dts | 53 +++++++++++++++++++++++++-------------- 1 file changed, 34 insertions(+), 19 deletions(-) commit d1b063aba81320cabdb093739b54dd4b3c92d159 Author: Gaël PORTAY Date: Thu Apr 30 09:33:35 2015 +0200 ARM: at91/dt: at91-kizbox: gpio-keys related changes This: * fixes active level of GPIO (active high) and * renames buttons: - reset (PB_RST), and - mode to user (PB_USER). Signed-off-by: Gaël PORTAY Acked-by: Boris Brezillon Acked-by: Alexandre Belloni Signed-off-by: Nicolas Ferre arch/arm/boot/dts/at91-kizbox.dts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit e9942d1f99934fe6c5651e758baf311589fbc72d Author: Gaël PORTAY Date: Thu Apr 30 09:33:34 2015 +0200 ARM: at91/dt: at91-kizbox: user proper serial uart USART3 is the only serial UART accessible. Signed-off-by: Gaël PORTAY Acked-by: Boris Brezillon Acked-by: Alexandre Belloni Signed-off-by: Nicolas Ferre arch/arm/boot/dts/at91-kizbox.dts | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) commit 49668b014db289b034463a810cc936a79a59f1c5 Author: Gaël PORTAY Date: Thu Apr 30 09:33:33 2015 +0200 ARM: at91/dt: at91-kizbox: sanitize file Consists in: * sorting nodes by address as possible or alphabetically, * adding myself as new maintainer and * update license. Signed-off-by: Gaël PORTAY Acked-by: Boris Brezillon Acked-by: Alexandre Belloni Signed-off-by: Nicolas Ferre arch/arm/boot/dts/at91-kizbox.dts | 65 +++++++++++++++++++-------------------- 1 file changed, 31 insertions(+), 34 deletions(-) commit d8b183479cd007f7ac5297c7bc4108985b026e56 Author: Gaël PORTAY Date: Thu Apr 30 09:33:32 2015 +0200 ARM: at91/dt: kizbox: rename to at91-kizbox Rename to match AT91 naming convention. Signed-off-by: Gaël PORTAY Acked-by: Boris Brezillon Acked-by: Alexandre Belloni Signed-off-by: Nicolas Ferre arch/arm/boot/dts/Makefile | 2 +- arch/arm/boot/dts/at91-kizbox.dts | 150 ++++++++++++++++++++++++++++++++++++++ arch/arm/boot/dts/kizbox.dts | 150 -------------------------------------- 3 files changed, 151 insertions(+), 151 deletions(-) commit eeea3e67a4b2ab1df4e6e42e86d365fd14e070af Author: Jani Nikula Date: Wed Apr 29 14:29:39 2015 +0300 drm/i915/hdmi: fix vlv infoframe port check Due to missing shifting, the vlv infoframe port check only works for port A. Fix it. Broken since introduction in commit 535afa2e9e3c1867460d6981d879b04d8b2b9ab3 Author: Jesse Barnes Date: Wed Apr 15 16:52:29 2015 -0700 drm/i915/vlv: check port in infoframe_enabled v2 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90059 Tested-by: xubin Tested-by: Ye Tian Reviewed-by: Jesse Barnes Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_hdmi.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 71f881ce5783482635d9534225cedd06b4fe21cb Merge: 85abf3e 31c648e Author: Takashi Iwai Date: Thu Apr 30 08:27:18 2015 +0200 Merge branch 'topic/hda' into for-next commit 31c648e0d304bbfc49a4a22c6139718367f3fd8d Author: Takashi Iwai Date: Thu Apr 30 08:22:41 2015 +0200 ALSA: hda - Reduce ifdef CONFIG_SND_HDA_I915 We're providing dummy functions for CONFIG_SND_HDA_i915=n, thus ifdef can be reduced. (But hda_i915_init() has to be fixed to return zero.) This automatically fixes a compile warning: sound/pci/hda/hda_intel.c: In function 'azx_probe_continue': sound/pci/hda/hda_intel.c:1966:1: warning: label 'i915_power_fail' defined but not used [-Wunused-label] Reported-by: kbuild test robot Signed-off-by: Takashi Iwai sound/pci/hda/hda_intel.c | 3 --- sound/pci/hda/hda_intel.h | 2 +- 2 files changed, 1 insertion(+), 4 deletions(-) commit f828ad0ce22474820255c6faeb88b05724a8c1eb Author: Eric Dumazet Date: Wed Apr 29 16:20:58 2015 -0700 tcp_westwood: fix tcp_westwood_info() I forgot to update tcp_westwood when changing get_info() behavior, this patch should fix this. Fixes: 64f40ff5bbdb ("tcp: prepare CC get_info() access from getsockopt()") Reported-by: kbuild test robot Signed-off-by: Eric Dumazet Acked-by: Neal Cardwell Signed-off-by: David S. Miller net/ipv4/tcp_westwood.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) commit 4760597116e34bd58f670d008ae7323653268fb4 Author: Rob Herring Date: Wed Apr 29 16:00:05 2015 -0500 scripts/dtc: Update to upstream version 9d3649bd3be245c9 Sync dtc with upstream as of commit 9d3649bd3be2 (Add testcases for fdt_path_offset_namelen()). Signed-off-by: Rob Herring Cc: Grant Likely Cc: devicetree@vger.kernel.org scripts/dtc/checks.c | 31 +- scripts/dtc/data.c | 12 +- scripts/dtc/dtc-lexer.l | 65 +- scripts/dtc/dtc-lexer.lex.c_shipped | 516 +++++----- scripts/dtc/dtc-parser.tab.c_shipped | 1773 ++++++++++++++++------------------ scripts/dtc/dtc-parser.tab.h_shipped | 114 ++- scripts/dtc/dtc-parser.y | 147 +-- scripts/dtc/dtc.c | 14 +- scripts/dtc/dtc.h | 18 +- scripts/dtc/flattree.c | 4 +- scripts/dtc/fstree.c | 17 +- scripts/dtc/libfdt/Makefile.libfdt | 3 +- scripts/dtc/libfdt/fdt.c | 30 +- scripts/dtc/libfdt/fdt.h | 93 +- scripts/dtc/libfdt/fdt_empty_tree.c | 1 + scripts/dtc/libfdt/fdt_ro.c | 29 +- scripts/dtc/libfdt/fdt_rw.c | 10 +- scripts/dtc/libfdt/fdt_sw.c | 36 +- scripts/dtc/libfdt/fdt_wip.c | 2 +- scripts/dtc/libfdt/libfdt.h | 148 ++- scripts/dtc/libfdt/libfdt_env.h | 104 +- scripts/dtc/libfdt/libfdt_internal.h | 6 +- scripts/dtc/livetree.c | 4 +- scripts/dtc/srcpos.c | 49 +- scripts/dtc/srcpos.h | 15 +- scripts/dtc/treesource.c | 15 +- scripts/dtc/util.c | 18 +- scripts/dtc/util.h | 4 +- scripts/dtc/version_gen.h | 2 +- 29 files changed, 1745 insertions(+), 1535 deletions(-) commit f1ec7187167ce225d2744b20a90afef5f10fd6cd Author: Rob Herring Date: Wed Apr 29 16:02:30 2015 -0500 libfdt: add fdt type definitions In preparation for libfdt/dtc update, add the new fdt specific types. Signed-off-by: Rob Herring Cc: Russell King Cc: Benjamin Herrenschmidt Cc: Paul Mackerras Cc: Michael Ellerman Cc: linux-arm-kernel@lists.infradead.org Cc: linuxppc-dev@lists.ozlabs.org arch/arm/boot/compressed/libfdt_env.h | 4 ++++ arch/powerpc/boot/libfdt_env.h | 4 ++++ arch/powerpc/boot/of.h | 2 ++ include/linux/libfdt_env.h | 4 ++++ 4 files changed, 14 insertions(+) commit 695e9fdd20d3f75705bd89633ad3d3276450bce6 Author: Gaurav Minocha Date: Sat Apr 25 22:53:08 2015 -0700 scripts/dtc: add missing libfdt and fixups to import script The following script is used to import dtc upstream into kernel. It was missing import of dtc/libfdt, with this commit it will include the same. Also, currently in arch and driver code that needs early access to the flattened device tree it is necessary to add specific CFLAGS so that when scripts/dtc/libfdt/libfdt.h is included the C preprocessor is able to locate the libfdt versions of libfdt_env.h and fdt.h without generating an error. So, this script replaces angular brackets with quotation used to include header files fdt.h and libfdt_env.h Signed-off-by: Gaurav Minocha [robh: reword commit headline and add 'git add'] Signed-off-by: Rob Herring scripts/dtc/update-dtc-source.sh | 9 +++++++++ 1 file changed, 9 insertions(+) commit 94a3e0c4559d22acf05495dc1c4f82d26d5f07d1 Author: Marcus Cooper Date: Tue Apr 28 20:01:06 2015 +0200 ARM: sun7i: dt: Add new MK808C device The MK808C is an A20 based android stick, with 1G RAM, 8G NAND flash, a RTL8723au wifi + bt combo chip, a USB host ports using USB-A receptacles, a mini USB-B receptacle for USB OTG, mini HDMI and a TRS connector for AV. This patch adds basic support for the device, more information can be found here (http://linux-sunxi.org/MK808C). Signed-off-by: Marcus Cooper Signed-off-by: Maxime Ripard arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/sun7i-a20-mk808c.dts | 148 +++++++++++++++++++++++++++++++++ 2 files changed, 149 insertions(+) commit e499123ed780df64a35e6cc0a8c892b282fa71a4 Author: Gregory Herrero Date: Wed Apr 29 22:09:20 2015 +0200 usb: dwc2: host: ensure qtb exists before dereferencing it dwc2_hc_nak_intr could be called with a NULL qtd. Ensure qtd exists before dereferencing it to avoid kernel panic. This happens when using usb to ethernet adapter. Acked-by: John Youn Signed-off-by: Gregory Herrero Signed-off-by: Felipe Balbi drivers/usb/dwc2/hcd_intr.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 285046aa11ad85a4de24891f5458d45f50d1bcc5 Author: Gregory Herrero Date: Wed Apr 29 22:09:19 2015 +0200 usb: dwc2: add hibernation core parameter dwc2 may not be able to exit from hibernation if the hardware does not provide a way to detect resume signalling in this state. Thus, add the possibility to disable hibernation feature. Acked-by: John Youn Signed-off-by: Gregory Herrero Signed-off-by: Felipe Balbi drivers/usb/dwc2/core.c | 24 ++++++++++++++++++++++++ drivers/usb/dwc2/core.h | 7 +++++++ drivers/usb/dwc2/core_intr.c | 7 ++++--- drivers/usb/dwc2/platform.c | 2 ++ 4 files changed, 37 insertions(+), 3 deletions(-) commit 2d1165a4b95e25aed83fed737d53ab0c87b831e6 Author: Mian Yousaf Kaukab Date: Wed Apr 29 22:09:18 2015 +0200 usb: dwc2: remove dwc2_platform.ko As dwc2 pci module is now exporting dwc2 platform device, include platform.o in dwc2-y and remove USB_DWC2_PLATFORM configuration option. Driver will be built as two modules, dwc2.ko and dwc2_pci.ko. dwc2.ko is the new platform driver. Remove all EXPORT_SYMBOL_GPL as they are not needed any more. Acked-by: John Youn Signed-off-by: Mian Yousaf Kaukab Signed-off-by: Felipe Balbi drivers/usb/dwc2/Kconfig | 8 -------- drivers/usb/dwc2/Makefile | 5 +---- drivers/usb/dwc2/core.c | 3 --- drivers/usb/dwc2/core_intr.c | 1 - drivers/usb/dwc2/debugfs.c | 2 -- drivers/usb/dwc2/gadget.c | 5 ----- drivers/usb/dwc2/hcd.c | 2 -- 7 files changed, 1 insertion(+), 25 deletions(-) commit 96d480e65ea0e4e950f75029b8a1ff4c1269f8b0 Author: Jingwu Lin Date: Wed Apr 29 22:09:17 2015 +0200 usb: dwc2: host: implement test mode Add support for SetPortFeature(PORT_TEST) for root port. Acked-by: John Youn Signed-off-by: Jingwu Lin Signed-off-by: Felipe Balbi drivers/usb/dwc2/hcd.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit db62b9a804b465f5050438eb06151c99c625ec9a Author: Gregory Herrero Date: Wed Apr 29 22:09:16 2015 +0200 usb: dwc2: host: don't use dma_alloc_coherent with irqs disabled Align buffer must be allocated using kmalloc since irqs are disabled. Coherency is handled through dma_map_single which can be used with irqs disabled. Reviewed-by: Julius Werner Acked-by: John Youn Signed-off-by: Gregory Herrero Signed-off-by: Felipe Balbi drivers/usb/dwc2/hcd.c | 13 ++++++++--- drivers/usb/dwc2/hcd_intr.c | 53 +++++++++++++++++++++++++++++++------------- drivers/usb/dwc2/hcd_queue.c | 10 +++++---- 3 files changed, 54 insertions(+), 22 deletions(-) commit 33ad261aa62be02f0cedeb4d5735cc726de84a3f Author: Gregory Herrero Date: Wed Apr 29 22:09:15 2015 +0200 usb: dwc2: host: spinlock urb_enqueue During urb_enqueue, if the urb can't be queued to the endpoint, the urb is freed without any spinlock protection. This leads to memory corruption when concurrent urb_dequeue try to free same urb->hcpriv. Thus, ensure the whole urb_enqueue in spinlocked. Acked-by: John Youn Signed-off-by: Gregory Herrero Signed-off-by: Felipe Balbi drivers/usb/dwc2/hcd.c | 15 ++++++--------- drivers/usb/dwc2/hcd_queue.c | 8 +------- 2 files changed, 7 insertions(+), 16 deletions(-) commit a7714c1cb11dc3bb97a76d2bb0560415d155b1d5 Author: Gregory Herrero Date: Wed Apr 29 22:09:14 2015 +0200 usb: dwc2: host: resume root hub on port connect Once hub is runtime suspended, dwc2 must resume it on port connect event. Else, roothub will stay in suspended state and will not resume transfers. Acked-by: John Youn Signed-off-by: Gregory Herrero Signed-off-by: Felipe Balbi drivers/usb/dwc2/hcd_intr.c | 3 +++ 1 file changed, 3 insertions(+) commit 99a657983a1e03fd3b8495199bb0a4870c1abda4 Author: Gregory Herrero Date: Wed Apr 29 22:09:13 2015 +0200 usb: dwc2: host: add bus_suspend/bus_resume callback Update controller state to indicate suspend entry. Acked-by: John Youn Signed-off-by: Gregory Herrero Signed-off-by: Felipe Balbi drivers/usb/dwc2/hcd.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) commit 9df4ceac8b359b6c261c10132fd3a49558bebd16 Author: Mian Yousaf Kaukab Date: Wed Apr 29 22:09:12 2015 +0200 usb: dwc2: host: register handle to the phy If phy driver is present register hcd handle to it. Acked-by: John Youn Signed-off-by: Mian Yousaf Kaukab Signed-off-by: Felipe Balbi drivers/usb/dwc2/hcd.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 31bebf4a7f0372b7b1ddc1921c61cfc67aa1e597 Author: Mian Yousaf Kaukab Date: Wed Apr 29 22:09:11 2015 +0200 usb: dwc2: gadget: remove s3c_hsotg_ep_disable_force Force argument is not used anymore. Clean up leftovers from https://lkml.org/lkml/2014/12/9/283 Acked-by: John Youn Signed-off-by: Mian Yousaf Kaukab Signed-off-by: Felipe Balbi drivers/usb/dwc2/gadget.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit 097ee6627cc8c400d77fc9a42fd787fe0fb04d76 Author: Gregory Herrero Date: Wed Apr 29 22:09:10 2015 +0200 usb: dwc2: gadget: enable otg flag in dual role configuration Inform that device is otg-capable in case of otg configuration. Acked-by: John Youn Signed-off-by: Gregory Herrero Signed-off-by: Felipe Balbi drivers/usb/dwc2/gadget.c | 2 ++ 1 file changed, 2 insertions(+) commit 18b2b37c59e1bcd5a61716731ec5549fb5bb0203 Author: Gregory Herrero Date: Wed Apr 29 22:09:09 2015 +0200 usb: dwc2: gadget: powerup controller if needed During vbus session, usb controller needs to exit hibernation if it was previously in suspend state. Since controller will be resetted and configured, there is no need to restore registers. Moreover, set lx_state to L0 on B session. vbus_session callback may not be used by all platforms. Thus, controller software state needs to be set to L0 if the controller detects a valid B session. Otherwise, lx_state will remain L2 and prevent any request submission. Acked-by: John Youn Signed-off-by: Gregory Herrero Signed-off-by: Felipe Balbi drivers/usb/dwc2/gadget.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 7ababa926c66c5c5a862489b475ff5d96a7dd03a Author: Gregory Herrero Date: Wed Apr 29 22:09:08 2015 +0200 usb: dwc2: gadget: prevent new request submission during suspend If usb controller is in partial power down, any write to registers may cause unpredictable behavior. Thus, prevent any new request submission once controller is in partial power down. Acked-by: John Youn Signed-off-by: Gregory Herrero Signed-off-by: Felipe Balbi drivers/usb/dwc2/gadget.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 9e779778ad7e503434aa76bfc96f98d7d7b2d139 Author: Gregory Herrero Date: Wed Apr 29 22:09:07 2015 +0200 usb: dwc2: gadget: ignore pm suspend/resume in L2 Nothing to be done in pm suspend/resume when controller is in L2. Don't disconnect or reset. State is already saved when putting controller in hibernation and will be restored on USB bus resume. Acked-by: John Youn Signed-off-by: Gregory Herrero Signed-off-by: Felipe Balbi drivers/usb/dwc2/gadget.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 4876886fb95f93c8b09381ffbdac969d1a1fee0d Author: Gregory Herrero Date: Wed Apr 29 22:09:06 2015 +0200 usb: dwc2: gadget: use reset detect interrupt ResetDet interrupt is used to detect a reset of the bus while the controller is suspended. This may happens for example when using Command Verifier. Acked-by: John Youn Signed-off-by: Gregory Herrero Signed-off-by: Felipe Balbi drivers/usb/dwc2/gadget.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) commit ecb176c63ac49ddcea83b0171ead1372bb78c165 Author: Mian Yousaf Kaukab Date: Wed Apr 29 22:09:05 2015 +0200 usb: dwc2: set parameter values in probe function So the parameters can be used in both host and gadget modes. Also consolidate param functions in the core.h Acked-by: John Youn Signed-off-by: Mian Yousaf Kaukab Signed-off-by: Felipe Balbi drivers/usb/dwc2/core.c | 19 +++++++++++++++++++ drivers/usb/dwc2/core.h | 13 ++++++++++--- drivers/usb/dwc2/hcd.c | 36 +----------------------------------- drivers/usb/dwc2/hcd.h | 7 +------ drivers/usb/dwc2/platform.c | 17 ++++++++++++++++- 5 files changed, 47 insertions(+), 45 deletions(-) commit a6d249d8373343749f9ae55f5581f3b21e178471 Author: Gregory Herrero Date: Wed Apr 29 22:09:04 2015 +0200 usb: dwc2: add external_id_pin_ctl core parameter This is required due to an Intel specific hardware issue. Where id- pin setup causes glitches on the interrupt line when CONIDSTSCHG interrupt is enabled. Specify external_id_pin_ctl when an external driver (for example phy) can handle id change, so that CONIDSTSCHG interrupt can be disabled from the controller. Acked-by: John Youn Signed-off-by: Gregory Herrero Signed-off-by: Felipe Balbi drivers/usb/dwc2/core.c | 22 +++++++++++++++++++++- drivers/usb/dwc2/core.h | 6 ++++++ drivers/usb/dwc2/platform.c | 2 ++ 3 files changed, 29 insertions(+), 1 deletion(-) commit 3eb42df3ebfbd8d46b831c26ecb90e128ad474a5 Author: Gregory Herrero Date: Wed Apr 29 22:09:03 2015 +0200 usb: dwc2: controller must update lx_state before releasing lock During suspend, there could a race condition between ep_queue and suspend interrupt if lx_state is updated after releasing spinlock in call_gadget(hsotg, suspend). Acked-by: John Youn Signed-off-by: Gregory Herrero Signed-off-by: Felipe Balbi drivers/usb/dwc2/core_intr.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) commit f81f46e1f530900323b6e32eba1af7244ca69537 Author: Gregory Herrero Date: Wed Apr 29 22:09:02 2015 +0200 usb: dwc2: implement hibernation during bus suspend/resume Allow controller to enter in hibernation during usb bus suspend and inform both phy and gadget about the suspended state. While in hibernation, the controller can't detect the resume condition. An external mechanism must call usb_phy_set_suspend on resume. Exit hibernation when controller gets the resume interrupt and inform only gadget driver about it. Acked-by: John Youn Signed-off-by: Gregory Herrero Signed-off-by: Felipe Balbi drivers/usb/dwc2/core.h | 2 ++ drivers/usb/dwc2/core_intr.c | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) commit d17ee77b3044da8b8f550bfdf3be8fdcc9d09858 Author: Gregory Herrero Date: Wed Apr 29 22:09:01 2015 +0200 usb: dwc2: add controller hibernation support When suspending usb bus, phy driver may disable controller power. In this case, registers need to be saved on suspend and restored on resume. Acked-by: John Youn Signed-off-by: Gregory Herrero Signed-off-by: Felipe Balbi drivers/usb/dwc2/core.c | 377 ++++++++++++++++++++++++++++++++++++++++++++++++ drivers/usb/dwc2/core.h | 84 +++++++++++ 2 files changed, 461 insertions(+) commit 563cf017c443137220428712d29cd5510dae2cb2 Author: Mian Yousaf Kaukab Date: Wed Apr 29 22:09:00 2015 +0200 usb: dwc2: debugfs: add support for complete register dump Dump all registers to take a complete snapshot of dwc2 state. Code is inspired by dwc3/debugfs.c Acked-by: John Youn Signed-off-by: Mian Yousaf Kaukab Signed-off-by: Felipe Balbi drivers/usb/dwc2/core.h | 1 + drivers/usb/dwc2/debugfs.c | 357 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 358 insertions(+) commit f91eea447ac32ddc24eaf1cafeb3830b44b6ceeb Author: Mian Yousaf Kaukab Date: Wed Apr 29 22:08:59 2015 +0200 usb: dwc2: move debugfs code to a separate file Prepare to add more debug code. Moreover, don't save dentry * for each file in struct dwc2_hsotg as clean up is done with debugfs_remove_recursive(). s3c_hsotg_delete_debug() is removed altogether for the same reason. Acked-by: John Youn Signed-off-by: Mian Yousaf Kaukab Signed-off-by: Felipe Balbi drivers/usb/dwc2/Makefile | 4 + drivers/usb/dwc2/core.h | 7 +- drivers/usb/dwc2/debug.h | 27 +++ drivers/usb/dwc2/debugfs.c | 416 ++++++++++++++++++++++++++++++++++++++++++++ drivers/usb/dwc2/gadget.c | 405 +----------------------------------------- drivers/usb/dwc2/platform.c | 4 + 6 files changed, 456 insertions(+), 407 deletions(-) commit 535b3ddc285825c058cef3436a9aa207edffa6cd Author: Jiri Kosina Date: Wed Apr 29 18:09:53 2015 +0200 x86: kaslr: fix build due to missing ALIGN definition Fengguang's bot reported that 4545c898 ("x86: introduce kaslr_offset()") broke randconfig build In file included from arch/x86/xen/vga.c:5:0: arch/x86/include/asm/setup.h: In function 'kaslr_offset': >> arch/x86/include/asm/setup.h:77:2: error: implicit declaration of function 'ALIGN' [-Werror=implicit-function-declaration] return (unsigned long)&_text - __START_KERNEL; ^ Fix that by making setup.h self-sufficient by explicitly including linux/kernel.h, which is needed for ALIGN() (which is what __START_KERNEL contains in its expansion). Reported-by: fengguang.wu@intel.com Signed-off-by: Jiri Kosina arch/x86/include/asm/setup.h | 1 + 1 file changed, 1 insertion(+) commit 5d4351ba654c2f25eb4f6883db742a16bccbb36b Author: Jiri Kosina Date: Mon Apr 27 13:25:23 2015 +0200 livepatch: x86: make kASLR logic more accurate We give up old_addr hint from the coming patch module in cases when kernel load base has been randomized (as in such case, the coming module has no idea about the exact randomization offset). We are currently too pessimistic, and give up immediately as soon as CONFIG_RANDOMIZE_BASE is set; this doesn't however directly imply that the load base has actually been randomized. There are config options that disable kASLR (such as hibernation), user could have disabled kaslr on kernel command-line, etc. The loader propagates the information whether kernel has been randomized through bootparams. This allows us to have the condition more accurate. On top of that, it seems unnecessary to give up old_addr hints even if randomization is active. The relocation offset can be computed using kaslr_ofsset(), and therefore old_addr can be adjusted accordingly. Acked-by: Josh Poimboeuf Signed-off-by: Jiri Kosina arch/x86/include/asm/livepatch.h | 1 + kernel/livepatch/core.c | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) commit 4545c89880138b30a868159bc1b209867b8a5f32 Author: Jiri Kosina Date: Mon Apr 27 13:17:19 2015 +0200 x86: introduce kaslr_offset() Offset that has been chosen for kaslr during kernel decompression can be easily computed as a difference between _text and __START_KERNEL. We are already making use of this in dump_kernel_offset() notifier and in arch_crash_save_vmcoreinfo(). Introduce kaslr_offset() that makes this computation instead of hard-coding it, so that other kernel code (such as live patching) can make use of it. Also convert existing users to make use of it. This patch is equivalent transofrmation without any effects on the resulting code: $ diff -u vmlinux.old.asm vmlinux.new.asm --- vmlinux.old.asm 2015-04-28 17:55:19.520983368 +0200 +++ vmlinux.new.asm 2015-04-28 17:55:24.141206072 +0200 @@ -1,5 +1,5 @@ -vmlinux.old: file format elf64-x86-64 +vmlinux.new: file format elf64-x86-64 Disassembly of section .text: $ Acked-by: Borislav Petkov Signed-off-by: Jiri Kosina arch/x86/include/asm/setup.h | 6 ++++++ arch/x86/kernel/machine_kexec_64.c | 3 ++- arch/x86/kernel/setup.c | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) commit b0bb2bae194f17cdc8d455c1d4503bc3bf733897 Author: Lee Jones Date: Thu Jan 22 11:07:00 2015 +0100 ARM: sti: Provide DT nodes for SBC SSC[0..2] The Synchronous Serial Controller is used to provide SPI. These are the ports which are located on the Stand-By Controller (SBC). Signed-off-by: Lee Jones Signed-off-by: Maxime Coquelin arch/arm/boot/dts/stih407-family.dtsi | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) commit 2c53c272d0d8757e506b16b3c291c5ec193c8ef5 Author: Lee Jones Date: Thu Jan 22 11:07:00 2015 +0100 ARM: sti: Provide DT nodes for SSC[0..4] The Synchronous Serial Controller is used to provide SPI. Signed-off-by: Lee Jones Signed-off-by: Maxime Coquelin arch/arm/boot/dts/stih407-family.dtsi | 54 +++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) commit dd3092075c3263fca7a3e98b143ad2296aab71b4 Author: Namhyung Kim Date: Wed Apr 22 15:33:45 2015 +0900 perf tools: Document --children option in more detail As the --children option changes the output of perf report (and perf top) it sometimes confuses users. Add more words and examples to help understanding of the option's behavior - and how to disable it ;-). Signed-off-by: Namhyung Kim Reviewed-by: Ingo Molnar Cc: David Ahern Cc: Jiri Olsa Cc: Peter Zijlstra Cc: Taeung Song Link: http://lkml.kernel.org/r/1429684425-14987-1-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo .../callchain-overhead-calculation.txt | 108 +++++++++++++++++++++ tools/perf/Documentation/perf-report.txt | 4 + tools/perf/Documentation/perf-top.txt | 3 +- 3 files changed, 114 insertions(+), 1 deletion(-) commit c4fa0d9c1e6aa360cfa2c36f7836a89da24a1b7a Author: Jiri Olsa Date: Tue Apr 7 23:25:19 2015 +0200 perf stat: Add metrics support for exclude_idle Separating metrics values for exclude_idle bit. Signed-off-by: Jiri Olsa Acked-by: Namhyung Kim Cc: Andi Kleen Cc: David Ahern Cc: Paul Mackerras Cc: Peter Zijlstra Cc: William Cohen Link: http://lkml.kernel.org/r/1428441919-23099-7-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit a2270d38a53aa88c67a72978fc8717e26c7f27d9 Author: Jiri Olsa Date: Tue Apr 7 23:25:18 2015 +0200 perf stat: Add metrics support for exclude_(host|guest) Separating metrics values for guest and host, so we get proper values. Signed-off-by: Jiri Olsa Acked-by: Namhyung Kim Cc: Andi Kleen Cc: David Ahern Cc: Paul Mackerras Cc: Peter Zijlstra Cc: William Cohen Link: http://lkml.kernel.org/r/1428441919-23099-6-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit afef2fbd1435050377f6487c43f2aa6edc37b30f Author: Jiri Olsa Date: Tue Apr 7 23:25:17 2015 +0200 perf stat: Add metrics support for exclude_hv Separating metrics values for exclude_hv bit. Signed-off-by: Jiri Olsa Acked-by: Namhyung Kim Cc: Andi Kleen Cc: David Ahern Cc: Paul Mackerras Cc: Peter Zijlstra Cc: William Cohen Link: http://lkml.kernel.org/r/1428441919-23099-5-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 9f71b4f39d7c01cae9d80e938774ff6b0a9bfd80 Author: Jiri Olsa Date: Tue Apr 7 23:25:16 2015 +0200 perf stat: Change metrics context calculation Changing metrics context calculation to allow more than 2 types of context. Following patches will add support for the rest of the exclude_* bits so we need separate array element for all context combinations. Signed-off-by: Jiri Olsa Acked-by: Namhyung Kim Cc: Andi Kleen Cc: David Ahern Cc: Paul Mackerras Cc: Peter Zijlstra Cc: William Cohen Link: http://lkml.kernel.org/r/1428441919-23099-4-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) commit a0aa21e2281f89a197ad8e7bd8008f3b7b735dfc Author: Andi Kleen Date: Tue Apr 7 23:25:15 2015 +0200 perf stat: Fix metrics calculation with event qualifiers Currently in perf IPC and other metrics cannot be directly shown separately for both user and kernel in a single run. The problem was that the metrics matching code did not check event qualifiers. With this patch the following case works correctly. % perf stat -e cycles:k,cycles:u,instructions:k,instructions:u true Performance counter stats for 'true': 531,718 cycles:k 203,895 cycles:u 338,151 instructions:k # 0.64 insns per cycle 105,961 instructions:u # 0.52 insns per cycle 0.002989739 seconds time elapsed Previously it would misreport the ratios because they were matching the wrong value. The patch is fairly big, but quite mechanic as it just adds context indexes everywhere. Reported-by: William Cohen Signed-off-by: Andi Kleen Acked-by: Namhyung Kim Cc: Andi Kleen Cc: David Ahern Cc: Paul Mackerras Cc: Peter Zijlstra Cc: William Cohen Link: http://lkml.kernel.org/r/1428441919-23099-3-git-send-email-jolsa@kernel.org Signed-off-by: Jiri Olsa Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 129 +++++++++++++++++++++++++++------------------- 1 file changed, 77 insertions(+), 52 deletions(-) commit d303e85a5c19eb8d913951d1aa81556fc20b20af Author: Arnaldo Carvalho de Melo Date: Thu Apr 23 12:02:07 2015 -0300 perf trace: Clarify that -e is about syscalls, not perf events in general This comes from the desire of having -e/--expr to have the same meaning as for 'strace', while other perf tools use it for --event, which 'trace' honours, i.e. all perf tools have --event in common, but trace uses -e for strace's --expr. Clarify it in the --help output. Reported-by: David Ahern Cc: Adrian Hunter Cc: Borislav Petkov Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-5j94bcsdmcbeu2xthnzsj60d@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/perf-trace.txt | 2 +- tools/perf/builtin-trace.c | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) commit fa0e4ffe06f0823abdf6c401c340c08ba8977fad Author: Arnaldo Carvalho de Melo Date: Thu Apr 23 11:59:20 2015 -0300 perf trace: Fix --filter-pids OPTION description Cut't'paste error, fix it. Reported-by: David Ahern Cc: Adrian Hunter Cc: Borislav Petkov Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-26abqh0wg9dci3fqcppyrpxy@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-trace.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6dbe31f7baf6d50fa396440dae0808bb712e9a37 Author: Masami Hiramatsu Date: Thu Apr 23 22:46:14 2015 +0900 perf probe: Remove all probes matches given pattern at once Fix perf-probe --del option to delete all matched probes in both of kprobes and uprobes at once. When we have 2 or more events on different binaries as below, ---- # ./perf probe -l probe:vfs_read (on vfs_read@ksrc/linux-3/fs/read_write.c) probe_libc:malloc (on __libc_malloc@malloc/malloc.c in /usr/lib64/libc-2.17 ---- Trying to remove all event with '*' just removes kprobe events at first. ---- # ./perf probe -d \* Removed event: probe:vfs_read ---- And in 2nd try, it removes all uprobe events. ---- # ./perf probe -d \* Removed event: probe_libc:malloc ---- This fixes to remove all event at once as below. ---- # ./perf probe -d \* Removed event: probe:vfs_read Removed event: probe_libc:malloc ---- Reported-by: Arnaldo Carvalho de Melo Signed-off-by: Masami Hiramatsu Tested-by: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20150423134614.26128.18106.stgit@localhost.localdomain Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/probe-event.c | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) commit b3ac032b7a76fea678de225d26ae04d10e47f0ac Author: Masami Hiramatsu Date: Thu Apr 23 22:46:12 2015 +0900 perf probe: Make --funcs option exclusive The --funcs option should be given exclusively. This adds PARSE_OPT_EXCUSIVE flag on --funcs (-F) option. Without this, 'perf probe --funcs -l' just shows the list of probes. With this, it shows error message correctly. This also fixes the help message and the documentation. Signed-off-by: Masami Hiramatsu Tested-by: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20150423134612.26128.58189.stgit@localhost.localdomain Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/perf-probe.txt | 2 ++ tools/perf/builtin-probe.c | 2 ++ 2 files changed, 4 insertions(+) commit 87d650be1dcc9bd9bb200e73b985ddb740d067bc Author: Jiri Olsa Date: Wed Apr 22 21:10:24 2015 +0200 perf tools: Add symbolic events support for parse_events_error Allowing symbolic events processing to report back error. $ perf record -e 'cycles/period=krava/' ls event syntax error: '../period=krava/' \___ expected numeric value $ perf record -e 'cycles/name=1/' ls event syntax error: '..es/name=1/' \___ expected string value Signed-off-by: Jiri Olsa Cc: David Ahern Cc: Namhyung Kim Cc: Paul Mackerras Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1429729824-13932-10-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/parse-events.c | 7 ++++--- tools/perf/util/parse-events.h | 3 ++- tools/perf/util/parse-events.y | 11 ++++------- 3 files changed, 10 insertions(+), 11 deletions(-) commit 492d977444734e03c0633a238f1431b3c66b3e97 Author: Jiri Olsa Date: Wed Apr 22 21:10:23 2015 +0200 perf tools: Add tracepoint support for parse_events_error Allowing tracepoint events processing to report back error. $ perf record -e 'sched:krava' ls event syntax error: 'sched:krava' \___ unknown tracepoint ... Signed-off-by: Jiri Olsa Tested-by: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Namhyung Kim Cc: Paul Mackerras Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1429729824-13932-9-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/parse-events.y | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 3b0e371cc05dfb624f990ea5e1da2bff615adaef Author: Jiri Olsa Date: Wed Apr 22 21:10:22 2015 +0200 perf tools: Add static terms support for parse_events_error Allowing static terms like 'name,period,config,config1..' processing to report back error. $ perf record -e 'cpu/event=1,name=1/' ls event syntax error: '..=1,name=1/' \___ expected string value $ perf record -e 'cpu/event=1,period=krava/' ls event syntax error: '..,period=krava/' \___ expected numeric value $ perf record -e 'cpu/config=krava1/' ls event syntax error: '../config=krava1/' \___ expected numeric value Signed-off-by: Jiri Olsa Tested-by: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Namhyung Kim Cc: Paul Mackerras Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1429729824-13932-8-git-send-email-jolsa@kernel.org [ Renamed 'error' variables to 'err', not to clash with util.h error() ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/parse-events.c | 37 ++++++++++++++++++++++++++++--------- 1 file changed, 28 insertions(+), 9 deletions(-) commit e64b020ba1adfd081a26c5a35a2990f91da043a0 Author: Jiri Olsa Date: Wed Apr 22 21:10:21 2015 +0200 perf tools: Add term support for parse_events_error Allowing event's term processing to report back error, like: $ perf record -e 'cpu/even=0x1/' ls event syntax error: 'cpu/even=0x1/' \___ unknown term valid terms: pc,any,inv,edge,cmask,event,in_tx,ldlat,umask,in_tx_cp,offcore_rsp,config,config1,config2,name,period,branch_type Signed-off-by: Jiri Olsa Tested-by: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Namhyung Kim Cc: Paul Mackerras Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1429729824-13932-7-git-send-email-jolsa@kernel.org [ Renamed 'error' variables to 'err', not to clash with util.h error() ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/pmu.c | 3 ++- tools/perf/util/parse-events.c | 2 +- tools/perf/util/parse-events.l | 4 +++ tools/perf/util/pmu.c | 57 +++++++++++++++++++++++++++++++++++++----- tools/perf/util/pmu.h | 6 +++-- 5 files changed, 62 insertions(+), 10 deletions(-) commit cecf3a2e185c1d843428166d644ba3b564231293 Author: Jiri Olsa Date: Wed Apr 22 21:10:20 2015 +0200 perf tools: Add location to pmu event terms Saving the terms location within term struct, so it could be used later for report. Signed-off-by: Jiri Olsa Cc: David Ahern Cc: Namhyung Kim Cc: Paul Mackerras Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1429729824-13932-6-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/parse-events.c | 32 ++++++++++++++++++++++++-------- tools/perf/util/parse-events.h | 8 ++++---- tools/perf/util/parse-events.y | 16 ++++++++-------- 3 files changed, 36 insertions(+), 20 deletions(-) commit 36adec85a86f2daa521cda48ea7be8a95c20ed10 Author: Jiri Olsa Date: Wed Apr 22 21:10:19 2015 +0200 perf tools: Change parse_events_add_pmu interface Changing parse_events_add_pmu interface to allow propagating of the parse_events_error info. Signed-off-by: Jiri Olsa Cc: David Ahern Cc: Namhyung Kim Cc: Paul Mackerras Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1429729824-13932-5-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/parse-events.c | 11 ++++++----- tools/perf/util/parse-events.h | 5 +++-- tools/perf/util/parse-events.y | 6 +++--- 3 files changed, 12 insertions(+), 10 deletions(-) commit c056ba6a174f4d5d79fe27f259fc133041a451da Author: Jiri Olsa Date: Wed Apr 22 21:10:18 2015 +0200 perf tools: Always bail out when config_attr function fails Not sure why we allowed the fail state, but it's wrong. Wrong type for 'name' term can cause segfault, and there's probably more fun hidden. Signed-off-by: Jiri Olsa Cc: David Ahern Cc: Namhyung Kim Cc: Paul Mackerras Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1429729824-13932-4-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/parse-events.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) commit 6297d42372b6ff02135ce170b0d90ccf0b1531e4 Author: Jiri Olsa Date: Wed Apr 22 21:10:17 2015 +0200 perf tools: Add flex support for parse_events_error Allowing flex parser to report back event parsing error, like: $ perf record -e cycles,cache-mises ls event syntax error: '..es,cache-mises' \___ parser error ... Signed-off-by: Jiri Olsa Cc: David Ahern Cc: Namhyung Kim Cc: Paul Mackerras Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1429729824-13932-3-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/parse-events.h | 1 - tools/perf/util/parse-events.l | 37 +++++++++++++++++++++++++++++++++---- tools/perf/util/parse-events.y | 7 ++++--- 3 files changed, 37 insertions(+), 8 deletions(-) commit b39b839309ce8c5dd15cd95d26af153fa392c3e6 Author: Jiri Olsa Date: Wed Apr 22 21:10:16 2015 +0200 perf tools: Add parse_events_error interface Adding support to return error information from parse_events function. Following struct will be populated by parse_events function on return: struct parse_events_error { int idx; char *str; char *help; }; where 'idx' is the position in the string where the parsing failed, 'str' contains dynamically allocated error string describing the error and 'help' is optional help string. The change contains reporting function, which currently does not display anything. The code changes to supply error data for specific event types are coming in next patches. However this is what the expected output is: $ sudo perf record -e 'sched:krava' ls event syntax error: 'sched:krava' \___ unknown tracepoint ... $ perf record -e 'cpu/even=0x1/' ls event syntax error: 'cpu/even=0x1/' \___ unknown term valid terms: pc,any,inv,edge,cmask,event,in_tx,ldlat,umask,in_tx_cp,offcore_rsp,config,config1,config2,name,period,branch_type ... $ perf record -e cycles,cache-mises ls event syntax error: '..es,cache-mises' \___ parser error ... The output functions cut the beginning of the event string so the error starts up to 10th character and cut the end of the string of it crosses the terminal width. Signed-off-by: Jiri Olsa Cc: David Ahern Cc: Namhyung Kim Cc: Paul Mackerras Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1429729824-13932-2-git-send-email-jolsa@kernel.org [ Renamed 'error' variables to 'err', not to clash with util.h error() ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 2 +- tools/perf/tests/code-reading.c | 2 +- tools/perf/tests/evsel-roundtrip-name.c | 4 +- tools/perf/tests/hists_cumulate.c | 2 +- tools/perf/tests/hists_filter.c | 4 +- tools/perf/tests/hists_link.c | 4 +- tools/perf/tests/hists_output.c | 2 +- tools/perf/tests/keep-tracking.c | 4 +- tools/perf/tests/parse-events.c | 2 +- tools/perf/tests/perf-time-to-tsc.c | 2 +- tools/perf/tests/switch-tracking.c | 8 +-- tools/perf/util/parse-events.c | 100 +++++++++++++++++++++++++++++--- tools/perf/util/parse-events.h | 19 ++++-- tools/perf/util/record.c | 4 +- 14 files changed, 127 insertions(+), 32 deletions(-) commit 70d73de4cd571df09670e2a7bf36a912e9ff5138 Author: Adrian Hunter Date: Thu Apr 9 18:54:06 2015 +0300 perf tools: Add aux_watermark member of struct perf_event_attr Add new AUX area member (aux_watermark) of struct perf_event_attr to debug prints and byte swapping. Signed-off-by: Adrian Hunter Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1428594864-29309-27-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/evsel.c | 1 + tools/perf/util/session.c | 1 + 2 files changed, 2 insertions(+) commit 400ea6d327ff43311c73dd4a000eb064ae20140c Author: Adrian Hunter Date: Thu Apr 9 18:54:05 2015 +0300 perf script: Add field option 'flags' to print sample flags Instruction tracing will typically have access to information about the instruction being executed for a particular ip sample. Some of that information will be available in the 'flags' member of struct perf_sample. With the addition of transactions events synthesis to Instruction Tracing options, there is a need to be able easily to see the flags because they show whether the ip is at the start, commit or abort of a tranasaction. Consequently add an option to display the flags. The flags are "bcrosyiABEx" which stand for branch, call, return, conditional, system, asynchronous, interrupt, transaction abort, trace begin, trace end, and in transaction, respectively. Example using Intel PT: perf script -fip,time,event,sym,addr,flags ... 1288.721584105: branches:u: bo 401146 main => 401152 main 1288.721584105: transactions: x 0 401164 main 1288.721584105: branches:u: bx 40117c main => 40119b main 1288.721584105: branches:u: box 4011a4 main => 40117e main 1288.721584105: branches:u: bcx 401187 main => 401094 g ... 1288.721591645: branches:u: bx 4010c4 g => 4010cb g 1288.721591645: branches:u: brx 4010cc g => 401189 main 1288.721591645: transactions: 0 4011a6 main 1288.721593199: branches:u: b 4011a9 main => 4011af main 1288.721593199: branches:u: bo 4011bc main => 40113e main 1288.721593199: branches:u: b 401150 main => 40115a main 1288.721593199: transactions: x 0 401164 main 1288.721593199: branches:u: bx 40117c main => 40119b main 1288.721593199: branches:u: box 4011a4 main => 40117e main 1288.721593199: branches:u: bcx 401187 main => 40105e f ... 1288.722284747: branches:u: brx 401093 f => 401189 main 1288.722284747: branches:u: box 4011a4 main => 40117e main 1288.722284747: branches:u: bcx 401187 main => 40105e f 1288.722285883: transactions: bA 0 401071 f 1288.722285883: branches:u: bA 401071 f => 40116a main 1288.722285883: branches:u: bE 40116a main => 0 [unknown] 1288.722297174: branches:u: bB 0 [unknown] => 40116a main ... Signed-off-by: Adrian Hunter Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1428594864-29309-26-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/perf-script.txt | 9 ++++++++- tools/perf/builtin-script.c | 34 +++++++++++++++++++++++++++----- tools/perf/util/event.h | 2 ++ 3 files changed, 39 insertions(+), 6 deletions(-) commit 0f0aa5e0693ce4000a7657cc47ce4f32b86b91ba Author: Adrian Hunter Date: Thu Apr 9 18:54:00 2015 +0300 perf inject: Add Instruction Tracing support Add support for decoding an AUX area assuming it contains instruction tracing data. The AUX area tracing events are stripped and replaced by synthesized events. Signed-off-by: Adrian Hunter Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1428594864-29309-21-git-send-email-adrian.hunter@intel.com [ Do not use -Z as an alternative to --itrace ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/perf-inject.txt | 26 ++++++++++++ tools/perf/builtin-inject.c | 71 +++++++++++++++++++++++++++++++- 2 files changed, 95 insertions(+), 2 deletions(-) commit cd17a9b54463970a47fec33d94f220950c9990c4 Author: Adrian Hunter Date: Tue Apr 21 12:21:54 2015 +0300 perf inject: Re-pipe AUX area tracing events New AUX area tracing events must be re-piped by default. Signed-off-by: Adrian Hunter Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1429608114-18194-1-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-inject.c | 63 +++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 58 insertions(+), 5 deletions(-) commit 7a680eb990b6646ecadf22dca7ded16a33f731b9 Author: Adrian Hunter Date: Thu Apr 9 18:53:56 2015 +0300 perf script: Add Instruction Tracing support Add support for decoding an AUX area assuming it contains instruction tracing data. Signed-off-by: Adrian Hunter Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1428594864-29309-17-git-send-email-adrian.hunter@intel.com [ Do not use -Z as an alternative to --itrace ] [ Fixed initialization of itrace_synth_opts struct fields on older gcc versions ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/perf-script.txt | 27 +++++++++++++++++++++++++++ tools/perf/builtin-script.c | 11 +++++++++++ 2 files changed, 38 insertions(+) commit cfe9174fcfe28f0f73dce422e3151991ee0d49bf Author: Adrian Hunter Date: Thu Apr 9 18:53:55 2015 +0300 perf tools: Add member to struct dso for an instruction cache Add a member to struct dso that can be used by Instruction Trace implementations to hold a cache for decoded instructions. Signed-off-by: Adrian Hunter Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1428594864-29309-16-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/dso.c | 2 ++ tools/perf/util/dso.h | 3 +++ 2 files changed, 5 insertions(+) commit c3278f0231e833c6030c3aeab510415fdbbfd353 Author: Adrian Hunter Date: Thu Apr 9 18:53:54 2015 +0300 perf auxtrace: Add a hashtable for caching Decoding AUX area data may involve walking object code. Rather than repetitively decoding the same instructions, a cache can be used to cache the results. This patch implements a fairly generic hashtable with a 32-bit key that could be used for other purposes as well. Signed-off-by: Adrian Hunter Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1428594864-29309-15-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/auxtrace.c | 123 +++++++++++++++++++++++++++++++++++++++++++++ tools/perf/util/auxtrace.h | 14 ++++++ 2 files changed, 137 insertions(+) commit 73f75fb1bdc572f97f1eb375f2bbb68cfcba077c Author: Adrian Hunter Date: Thu Apr 9 18:53:53 2015 +0300 perf auxtrace: Add processing for AUX area tracing events Provide hooks so that an AUX area decoder can process AUX area tracing events. Signed-off-by: Adrian Hunter Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1428594864-29309-14-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/auxtrace.c | 52 +++++++++++++++++++++++++++++++++++++++++++++- tools/perf/util/auxtrace.h | 13 ++++++++++++ 2 files changed, 64 insertions(+), 1 deletion(-) commit f939715586ea4f046eb52523ae25eb4d20b2a497 Author: Adrian Hunter Date: Thu Apr 9 18:53:52 2015 +0300 perf auxtrace: Add a heap for sorting AUX area tracing queues In order to process AUX area tracing data in time order, the queue with data with the lowest timestamp must be processed first. Provide a heap to keep track of which queue that is. As with the queues, a decoder does not have to use the heap, but Intel BTS and Intel PT will use it. Signed-off-by: Adrian Hunter Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1428594864-29309-13-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/auxtrace.c | 85 ++++++++++++++++++++++++++++++++++++++++++++++ tools/perf/util/auxtrace.h | 29 ++++++++++++++++ 2 files changed, 114 insertions(+) commit e502789302a6ece9fa4b9505df234c319bfa0650 Author: Adrian Hunter Date: Tue Apr 21 12:21:51 2015 +0300 perf auxtrace: Add helpers for queuing AUX area tracing data Provide functions to queue AUX area tracing data buffers for processing. A AUX area decoder need not use the queues, however Intel BTS and Intel PT will use them. There is one queue for each of the mmap buffers that were used for recording. Because those mmaps were associated with per-cpu or per-thread contexts, the data is time-ordered with respect to those contexts. Signed-off-by: Adrian Hunter Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1429608111-18160-1-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/auxtrace.c | 305 +++++++++++++++++++++++++++++++++++++++++++++ tools/perf/util/auxtrace.h | 87 +++++++++++++ 2 files changed, 392 insertions(+) commit 85ed47299e979b861e314c2e177a6de5d9163a85 Author: Adrian Hunter Date: Thu Apr 9 18:53:50 2015 +0300 perf auxtrace: Add helpers for AUX area tracing errors Add functions to synthesize, count and print AUX area tracing error events. Signed-off-by: Adrian Hunter Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1428594864-29309-11-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/auxtrace.c | 81 ++++++++++++++++++++++++++++++++++++++++++++++ tools/perf/util/auxtrace.h | 14 ++++++++ tools/perf/util/event.h | 6 ++++ tools/perf/util/session.c | 3 ++ 4 files changed, 104 insertions(+) commit f6986c95af84ff2a76847910b4322f542b793bbf Author: Adrian Hunter Date: Thu Apr 9 18:53:49 2015 +0300 perf session: Add instruction tracing options It is assumed that AUX area decoding will synthesize events for consumption by other tools. At this time, the main use of AUX area tracing will be to capture instruction trace (aka processor trace) data. The nature of instruction tracing suggests the initial inclusion of options for "instructions" and "branches" events, but more could be added as needed. Signed-off-by: Adrian Hunter Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1428594864-29309-10-git-send-email-adrian.hunter@intel.com [ Added ref to tools/perf/Documentation/perf-script.txt describing what is parsed ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/auxtrace.c | 136 +++++++++++++++++++++++++++++++++++++++++++++ tools/perf/util/auxtrace.h | 43 ++++++++++++++ tools/perf/util/session.h | 2 + 3 files changed, 181 insertions(+) commit c446870d80f37281a927b5f6984bd47397a7cb03 Author: Adrian Hunter Date: Thu Apr 9 18:53:48 2015 +0300 perf session: Add hooks to allow transparent decoding of AUX area tracing data Hook into session processing so that AUX area decoding can synthesize events transparently to the tools. The advantages of transparent decoding are that tools can be used directly with perf.data files containing AUX area tracing data, which is easier for the user and more efficient than having a separate decoding tool. This will work as follows: 1. Tools will feed auxtrace events to the decoder using perf_tool->auxtrace() (support for that still to come). 2. The decoder can process side-band events as needed due to the auxtrace->process_event() hook. 3. The decoder can deliver synthesized events into the event stream using perf_session__deliver_synth_event(). Note the expectation is that decoding will work on data that is time-ordered with respect to the per-cpu or per-thread contexts that were recorded. Signed-off-by: Adrian Hunter Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1428594864-29309-9-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/auxtrace.h | 55 ++++++++++++++++++++++++++++++++++++++++++++++ tools/perf/util/session.c | 54 ++++++++++++++++++++++++++++++++++++--------- tools/perf/util/session.h | 3 +++ 3 files changed, 102 insertions(+), 10 deletions(-) commit e9bf54d25f4f64c410c2aca644749a3325b96f5a Author: Adrian Hunter Date: Thu Apr 9 18:53:47 2015 +0300 perf tools: Add a user event for AUX area tracing errors Errors encountered when decoding an AUX area trace need to be reported to the user. However the "user" might be a script or another tool, so provide a new user event to capture those errors. Signed-off-by: Adrian Hunter Acked-by: Jiri Olsa Cc: David Ahern Cc: Frederic Weisbecker Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1428594864-29309-8-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/event.c | 1 + tools/perf/util/event.h | 16 ++++++++++++++++ tools/perf/util/session.c | 25 +++++++++++++++++++++++++ tools/perf/util/tool.h | 3 ++- 4 files changed, 44 insertions(+), 1 deletion(-) commit e9db1310d95c9d02763643108d51e47d9eb79ac9 Author: Adrian Hunter Date: Thu Apr 9 18:53:46 2015 +0300 perf record: Extend -m option for AUX area tracing mmap pages Extend the -m option so that the number of mmap pages for AUX area tracing can be specified by adding a comma followed by the number of pages. Signed-off-by: Adrian Hunter Acked-by: Jiri Olsa Cc: David Ahern Cc: Frederic Weisbecker Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1428594864-29309-7-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/perf-record.txt | 2 ++ tools/perf/builtin-record.c | 49 ++++++++++++++++++++++++++++++-- tools/perf/util/evlist.c | 10 +++++-- tools/perf/util/evlist.h | 1 + 4 files changed, 56 insertions(+), 6 deletions(-) commit ef149c2548b82e75f7f9d138457ef4dc4ed97448 Author: Adrian Hunter Date: Thu Apr 9 18:53:45 2015 +0300 perf record: Add basic AUX area tracing support Amend the perf record tool to read the AUX area tracing mmap and synthesize AUX area tracing events. Signed-off-by: Adrian Hunter Acked-by: Jiri Olsa Cc: David Ahern Cc: Frederic Weisbecker Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1428594864-29309-6-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-record.c | 81 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 77 insertions(+), 4 deletions(-) commit 9e0cc4fe3752661220ee2cf7fcd335e233eea470 Author: Adrian Hunter Date: Thu Apr 9 18:53:44 2015 +0300 perf auxtrace: Add support for AUX area recording Add support for reading from the AUX area tracing mmap and synthesizing AUX area tracing events. This patch introduces an abstraction for recording AUX area data. Recording is initialized by auxtrace_record__init() which is a weak function to be implemented by the architecture to provide recording callbacks. Recording is mainly handled by auxtrace_mmap__read() and perf_event__synthesize_auxtrace() but there are callbacks for miscellaneous needs including validating and processing user options, populating private data in auxtrace_info_event, and freeing the structure when finished. Signed-off-by: Adrian Hunter Acked-by: Jiri Olsa Cc: David Ahern Cc: Frederic Weisbecker Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1428594864-29309-5-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/perf.h | 2 + tools/perf/util/auxtrace.c | 176 +++++++++++++++++++++++++++++++++++++++++++++ tools/perf/util/auxtrace.h | 56 ++++++++++++++- tools/perf/util/record.c | 11 ++- 4 files changed, 243 insertions(+), 2 deletions(-) commit a16ac0233ea1da8af3c2046a67c2527b4a452166 Author: Adrian Hunter Date: Thu Apr 9 18:53:43 2015 +0300 perf tools: Add user events for AUX area tracing Add two user events for AUX area tracing. PERF_RECORD_AUXTRACE_INFO contains metadata, consisting primarily the type of the AUX area tracing data plus some amount of architecture-specific information. There should be only one PERF_RECORD_AUXTRACE_INFO event. PERF_RECORD_AUXTRACE identifies AUX area tracing data copied from the mmapped AUX area tracing region. The actual data is not part of the event but immediately follows it. Signed-off-by: Adrian Hunter Acked-by: Jiri Olsa Cc: David Ahern Cc: Frederic Weisbecker Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1428594864-29309-4-git-send-email-adrian.hunter@intel.com [ s/MIN/min/g and use cast to fix up wrt -Werror=sign-compare till we adopt min_t() ] Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/event.c | 2 ++ tools/perf/util/event.h | 22 +++++++++++++++ tools/perf/util/session.c | 69 +++++++++++++++++++++++++++++++++++++++++++++++ tools/perf/util/tool.h | 9 ++++++- 4 files changed, 101 insertions(+), 1 deletion(-) commit 718c602d67aac04a48cd8e444e778cc3d5d9027f Author: Adrian Hunter Date: Thu Apr 9 18:53:42 2015 +0300 perf evlist: Add support for mmapping an AUX area buffer This patch supports the addition to the kernel of AUX area buffers that can be mmapped separately from the perf-events buffer. The AUX buffer can be configured to contain hardware-produced trace information. The first implementation will support Intel BTS and Intel PT. One auxtrace buffer is mmapped per perf-events buffer. If the requested auxtrace buffer size is zero, which it will be until further support is added, then no auxtrace mmapping is attempted. Signed-off-by: Adrian Hunter Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1428594864-29309-3-git-send-email-adrian.hunter@intel.com [ Fixed conflict in evlist.h ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/Build | 1 + tools/perf/util/auxtrace.c | 113 +++++++++++++++++++++++++++++++++++++++++++ tools/perf/util/auxtrace.h | 117 +++++++++++++++++++++++++++++++++++++++++++++ tools/perf/util/evlist.c | 61 +++++++++++++++++++++-- tools/perf/util/evlist.h | 5 ++ 5 files changed, 294 insertions(+), 3 deletions(-) commit 4025ea4024c271cc0d993b8641249dce33a63fcc Author: Adrian Hunter Date: Thu Apr 9 18:53:41 2015 +0300 perf header: Add AUX area tracing feature Add a feature to indicate that a perf.data file contains AUX area data. Signed-off-by: Adrian Hunter Acked-by: Jiri Olsa Cc: David Ahern Cc: Frederic Weisbecker Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1428594864-29309-2-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/header.c | 14 ++++++++++++++ tools/perf/util/header.h | 1 + 2 files changed, 15 insertions(+) commit d4ae42139289cbe38d5b84fa1558161d330d6e54 Author: Wang Nan Date: Sat Apr 18 17:50:20 2015 +0200 perf data: Fix signedness of value When converting int values, perf first extractes it to a ulonglong, then feeds it to babeltrace as a signed value. For negative 32 bit values (for example, return values of failed syscalls), the extracted data should be something like 0xfffffffe (-2). It becomes a large int64 value. Babeltrace denies to insert it with bt_ctf_field_signed_integer_set_value() because it is larger than 0x7fffffff, the largest positive value a 32 bit int can be. This patch introduces adjust_signedness(), which fills high bits of ulonglong with 1 if the value is negative. Signed-off-by: Wang Nan Cc: David Ahern Cc: Frederic Weisbecker Cc: He Kuang Cc: Jeremie Galarneau Cc: Namhyung Kim Cc: Paul Mackerras Cc: Peter Zijlstra Cc: Sebastian Andrzej Siewior Cc: Tom Zanussi Link: http://lkml.kernel.org/r/1429372220-6406-8-git-send-email-jolsa@kernel.org Signed-off-by: Jiri Olsa [ s/signess/signedness/g ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/data-convert-bt.c | 64 +++++++++++++++++++++++++++++++-------- 1 file changed, 52 insertions(+), 12 deletions(-) commit e0a7cce5366dbd22391e09a83827ba5b4491cd2f Author: Wang Nan Date: Sat Apr 18 17:50:19 2015 +0200 perf data: Fix duplicate field names and avoid reserved keywords Some parameters of syscall tracepoints named as 'nr', 'event', etc. When dealing with them, perf convert to ctf meets some problem: 1. If a parameter with name 'nr', it will duplicate syscall's common field 'nr'. One such syscall is io_submit(). 2. If a parameter with name 'event', it is denied to be inserted because 'event' is a CTF spec keyword[1]. One such syscall is epoll_ctl. This patch appends '_dupl_X' suffix to avoid problem 1, prepend a '_' prefix to avoid problem 2. [1] http://diamon.org/docs/ctf/v1.8.2/#specC.1.2 Signed-off-by: Wang Nan Cc: David Ahern Cc: Frederic Weisbecker Cc: He Kuang Cc: Jeremie Galarneau Cc: Namhyung Kim Cc: Paul Mackerras Cc: Peter Zijlstra Cc: Sebastian Andrzej Siewior Cc: Tom Zanussi Link: http://lkml.kernel.org/r/1429372220-6406-7-git-send-email-jolsa@kernel.org [ changed to use format_file::alias ] Signed-off-by: Jiri Olsa Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/data-convert-bt.c | 86 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 82 insertions(+), 4 deletions(-) commit 8fa46753fe2ca96b0fc175efb6c9ed5c001fb554 Author: Jiri Olsa Date: Sat Apr 18 17:50:17 2015 +0200 perf data: Add support for setting ordered_events queue size Adding support to limit the size of ordered_events queue, so we could control allocation size of perf data files without proper finished round events. Reviewed-by: David Ahern Signed-off-by: Jiri Olsa Acked-by: Namhyung Kim Cc: David Ahern Cc: Frederic Weisbecker Cc: He Kuang Cc: Jeremie Galarneau Cc: Paul Mackerras Cc: Peter Zijlstra Cc: Sebastian Andrzej Siewior Cc: Tom Zanussi Cc: Wang Nan Link: http://lkml.kernel.org/r/1429372220-6406-5-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/data-convert-bt.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) commit 89e5fa884df8cd72e81c3727cf1f0d1c7a9c7641 Author: Jiri Olsa Date: Sat Apr 18 17:50:16 2015 +0200 perf data: Enable stream flush within processing For big data files the size of data allocated for stream instance could get really high. It's needed to flush the data out of the stream once in a while. Unfortunately there's no size indication in the stream object, so we govern the flush based on the number of stored events. Current flush limit is set ot 100000 events. Reviewed-by: David Ahern Signed-off-by: Jiri Olsa Acked-by: Namhyung Kim Cc: David Ahern Cc: Frederic Weisbecker Cc: He Kuang Cc: Jeremie Galarneau Cc: Paul Mackerras Cc: Peter Zijlstra Cc: Sebastian Andrzej Siewior Cc: Tom Zanussi Cc: Wang Nan Link: http://lkml.kernel.org/r/1429372220-6406-4-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/data-convert-bt.c | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) commit 90e129ff602672c4d5a631b2564411e19de36e15 Author: Sebastian Andrzej Siewior Date: Sat Apr 18 17:50:15 2015 +0200 perf data: Switch to multiple cpu stream files Currently we store the data into single data strea/file. The cpu if data is stored within the event sample. The lttng puts the CPU number that belongs to the event into the packet context instead into the event. This patch makes sure that the trace produce by perf does look the same way. We now use one stream per-CPU. Having it all in one stream increased the total size of the resulting file. The test went from 416KiB (with perf_cpu event member) to 24MiB due to the required (and pointless) flush. With the per-cpu streams the total size went up to 588KiB. Signed-off-by: Sebastian Andrzej Siewior Cc: David Ahern Cc: Frederic Weisbecker Cc: He Kuang Cc: Jeremie Galarneau Cc: Namhyung Kim Cc: Paul Mackerras Cc: Peter Zijlstra Cc: Tom Zanussi Cc: Wang Nan Link: http://lkml.kernel.org/r/1429372220-6406-3-git-send-email-jolsa@kernel.org Signed-off-by: Jiri Olsa Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/data-convert-bt.c | 206 +++++++++++++++++++++++++++++++++----- 1 file changed, 182 insertions(+), 24 deletions(-) commit c41c6647e515c4eb6f754e83e15c1660692c6ce9 Author: Jiri Olsa Date: Sat Apr 18 22:34:40 2015 +0200 perf tests: Add build tests for building perf from kernel source root and tools Adding build tests for following make commands: $ make -C tools/perf $ make -C /tools perf Signed-off-by: Jiri Olsa Cc: Borislav Petkov Cc: Brian Norris Cc: David Ahern Cc: David Howells Cc: Michal Marek Cc: Namhyung Kim Cc: Paul Mackerras Cc: Peter Zijlstra Cc: Sam Ravnborg Cc: linux-kbuild@vger.kernel.org Link: http://lkml.kernel.org/r/1429389280-18720-4-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/make | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) commit 16671c1e1cac2dbb995feb4bc55082fd939b5c2c Author: Jiri Olsa Date: Sat Apr 18 22:34:39 2015 +0200 tools build: Fix Makefile(s) to properly invoke tools build Several fixes were needed to allow following builds: $ make tools/tmon $ make -C tools/perf $ make -C /tools perf - some of the tools (perf) use same make variables as in kernel build, unsetting srctree and objtree - using original $(O) for O variable - perf build does not follow the descend function setup invoking it via it's own make rule I tried the rest of the tools/Makefile targets and they seem to work now. Reported-by: Brian Norris Signed-off-by: Jiri Olsa Cc: Borislav Petkov Cc: Brian Norris Cc: David Ahern Cc: David Howells Cc: Michal Marek Cc: Namhyung Kim Cc: Paul Mackerras Cc: Peter Zijlstra Cc: Sam Ravnborg Cc: linux-kbuild@vger.kernel.org Link: http://lkml.kernel.org/r/1429389280-18720-3-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo Makefile | 5 ++--- tools/Makefile | 12 +++++++++++- 2 files changed, 13 insertions(+), 4 deletions(-) commit 379a9a28a1b4364ab08fec35c84d39cf4995c509 Author: Jiri Olsa Date: Sat Apr 18 22:34:38 2015 +0200 tools build: No need to make libapi for perf explicitly The perf build handles its dependencies by itself. Also renaming libapi libapikfs to libapi as it got changed just recently. Signed-off-by: Jiri Olsa Cc: Borislav Petkov Cc: Brian Norris Cc: David Ahern Cc: David Howells Cc: Michal Marek Cc: Namhyung Kim Cc: Paul Mackerras Cc: Peter Zijlstra Cc: Sam Ravnborg Cc: linux-kbuild@vger.kernel.org Link: http://lkml.kernel.org/r/1429389280-18720-2-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/Makefile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit d3542436c9a8d114bf81c0742e67ff8ce8be9324 Author: Jiri Olsa Date: Sat Apr 18 17:50:18 2015 +0200 tools lib traceevent: Add alias field to struct format_field Introduce an 'alias' field to 'struct format_field' to be able to use alternative name for the field. It is initialized with same string pointer as 'name' field. The free logic checks the 'alias' pointer being reset by user and frees it. This will be handy when converting data into CTF, where each field within event needs to have a unique name (while this is not required for tracepoint). Converter can easily assign unique name into the format_field struct. Suggested-by: Steven Rostedt Signed-off-by: Jiri Olsa Acked-by: Steven Rostedt Cc: David Ahern Cc: Frederic Weisbecker Cc: He Kuang Cc: Jeremie Galarneau Cc: Namhyung Kim Cc: Paul Mackerras Cc: Peter Zijlstra Cc: Sebastian Andrzej Siewior Cc: Tom Zanussi Cc: Wang Nan Link: http://lkml.kernel.org/n/tip-qwyq8blnfkg6s5vlbrvn1en3@git.kernel.org Link: http://lkml.kernel.org/r/1429372220-6406-6-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/lib/traceevent/event-parse.c | 6 ++++-- tools/lib/traceevent/event-parse.h | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) commit c21410554ee1a8e12fbc99f578d720b641cd1c74 Author: He Kuang Date: Sat Apr 18 17:50:14 2015 +0200 perf data: Show error message when conversion failed Show message when errors occurred during conversion setup and conversion process. Before this patch: $ ./perf data convert --to-ctf=ctf $ echo $? 255 After this patch: $ ./perf data convert --to-ctf=ctf Error during conversion setup. Signed-off-by: He Kuang Cc: David Ahern Cc: Frederic Weisbecker Cc: Jeremie Galarneau Cc: Namhyung Kim Cc: Paul Mackerras Cc: Peter Zijlstra Cc: Sebastian Andrzej Siewior Cc: Tom Zanussi Cc: Wang Nan Link: http://lkml.kernel.org/n/tip-xvhr1vf7zav9kkeo9w1hv4uk@git.kernel.org Link: http://lkml.kernel.org/r/1429372220-6406-2-git-send-email-jolsa@kernel.org Signed-off-by: Jiri Olsa Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/data-convert-bt.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit a0b404f4c0820a934ae1b6ce39d8a4a0f01a7a20 Author: Namhyung Kim Date: Sun Apr 19 13:04:10 2015 +0900 perf diff: Make hist_entry_diff fields union The period_ratio_delta, period_ratio and wdiff are never by used at the same time. Instead, Just one of them is accessed according to a comparison method. So make it union to reduce memory footprint. Signed-off-by: Namhyung Kim Cc: David Ahern Cc: Jiri Olsa Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1429416255-12070-3-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/sort.h | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) commit cc5e461ae8e071a95bf6ee917b50998dc31cae17 Author: Namhyung Kim Date: Sun Apr 19 13:04:09 2015 +0900 perf hists: Get rid of position field from struct hist_entry It's not used anywhere, let's get rid of it. Signed-off-by: Namhyung Kim Cc: David Ahern Cc: Jiri Olsa Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1429416255-12070-2-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/sort.h | 1 - 1 file changed, 1 deletion(-) commit 6b1a27520f990700d0dd23976afd8992bf659698 Author: David Ahern Date: Tue Apr 14 13:49:33 2015 -0400 perf kmem: Fix compiles on RHEL6/OL6 0d68bc92c48 breaks compiles on RHEL6/OL6: cc1: warnings being treated as errors builtin-kmem.c: In function ‘search_page_alloc_stat’: builtin-kmem.c:322: error: declaration of ‘stat’ shadows a global declaration node = &parent->rb_left; /usr/include/sys/stat.h:455: error: shadowed declaration is here builtin-kmem.c: In function ‘perf_evsel__process_page_alloc_event’: builtin-kmem.c:378: error: declaration of ‘stat’ shadows a global declaration /usr/include/sys/stat.h:455: error: shadowed declaration is here builtin-kmem.c: In function ‘perf_evsel__process_page_free_event’: builtin-kmem.c:431: error: declaration of ‘stat’ shadows a global declaration /usr/include/sys/stat.h:455: error: shadowed declaration is here Rename local variable to pstat to avoid the name conflict. Signed-off-by: David Ahern Link: http://lkml.kernel.org/r/1429033773-31383-1-git-send-email-david.ahern@oracle.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-kmem.c | 54 +++++++++++++++++++++++------------------------ 1 file changed, 27 insertions(+), 27 deletions(-) commit 699ab787155d6760b396bfd66c403a6b6a3dfdc0 Author: Chris Wilson Date: Mon Apr 27 16:32:07 2015 +0100 drm/i915: Silence compiler warning in dvo drivers/gpu/drm/i915/intel_dvo.c: In function ‘intel_dvo_init’: drivers/gpu/drm/i915/intel_dvo.c:531:8: warning: array subscript is above array bounds [-Warray-bounds] gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.7/lto-wrapper Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Debian 4.7.2-5' --with-bugurl=file:///usr/share/doc/gcc-4.7/README.Bugs --enable-languages=c,c++,go,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.7 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.7 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --with-arch-32=i586 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu Thread model: posix and gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/i686-linux-gnu/4.8/lto-wrapper Target: i686-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.8.2-19ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.8 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.8 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libmudflap --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.8-i386/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.8-i386 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.8-i386 --with-arch-directory=i386 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-targets=all --enable-multiarch --disable-werror --with-arch-32=i686 --with-multilib-list=m32,m64,mx32 --with-tune=generic --enable-checking=release --build=i686-linux-gnu --host=i686-linux-gnu --target=i686-linux-gnu Thread model: posix gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1) Signed-off-by: Chris Wilson Cc: Ville Syrjälä Reviewed-by: Dave Gordon Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_dvo.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 16ab6e18c60927e5a9e756c384a1ed7bd9f40871 Author: Bard Liao Date: Tue Apr 28 11:27:40 2015 +0800 ASoC: rt5677: add i2s asrc clk src selection The ASRC source of i2s are also configurable. We add the selection in the existing rt5677_sel_asrc_clk_src API. Signed-off-by: Bard Liao Signed-off-by: Mark Brown sound/soc/codecs/rt5677.c | 30 ++++++++++++++++++++++++++++++ sound/soc/codecs/rt5677.h | 14 ++++++++++++++ 2 files changed, 44 insertions(+) commit 6e747d5311fc67b5fe7e2d7d242329c1bdff3318 Author: Bard Liao Date: Tue Apr 28 09:59:43 2015 +0800 ASoC: rt5645: Adds push button support for rt5650 rt5650 support headset button detection. Currently, the button detection is only implemented for rt5650 codec. The button detection configuration register's default value is different from rt5645. And we didn't touch the register in the driver, so we will get the wrong value when we dump the registers. We will fix it in another patch. Signed-off-by: Bard Liao Signed-off-by: Mark Brown sound/soc/codecs/rt5645.c | 266 +++++++++++++++++++++++++++----- sound/soc/codecs/rt5645.h | 8 +- sound/soc/intel/boards/cht_bsw_rt5645.c | 2 +- 3 files changed, 237 insertions(+), 39 deletions(-) commit 39d23308668dc6edda39b9f4119a4127b77859cc Author: Krzysztof Kozlowski Date: Wed Apr 29 19:58:28 2015 +0900 regulator: max77693: Use core code for charger's is_enabled The custom implementation of 'regulator_ops.is_enabled' callback for charger regulator is exactly the same as regulator_is_enabled_regmap() with 'enable_val' set. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Mark Brown drivers/regulator/max77693.c | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) commit af56b91851c3e0ddfe3b6337694547977a6d4d96 Author: Luciano Coelho Date: Tue Apr 21 18:32:25 2015 +0300 iwlwifi: mvm: remove some unused stuff from scan.c Some more tidbits left over from the legacy scan removal. Signed-off-by: Luciano Coelho Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/scan.c | 5 ----- 1 file changed, 5 deletions(-) commit 3444682a9f5ee515cdbb0ed64af6252885797b30 Author: Chaya Rachel Ivgi Date: Sun Apr 19 12:26:39 2015 +0300 iwlwifi: mvm: make thermal throttling values configurable per NIC family The thermal throttling parameters were constant and hardcoded, not allowing changes for different NIC families. Change this so that the values are part of the NIC family configuration and are not constant (so they can be changed dynamically in the future). Signed-off-by: Chaya Rachel Ivgi Reviewed-by: Luciano Coelho Reviewed-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/iwl-7000.c | 23 ++++++++++++++++ drivers/net/wireless/iwlwifi/iwl-config.h | 44 +++++++++++++++++++++++++++++ drivers/net/wireless/iwlwifi/mvm/mvm.h | 46 ++----------------------------- drivers/net/wireless/iwlwifi/mvm/tt.c | 40 ++++++--------------------- 4 files changed, 78 insertions(+), 75 deletions(-) commit b546dcd6b742c9188a67da335b2d48f0040550be Author: Johannes Berg Date: Mon Apr 20 17:31:10 2015 +0200 iwlwifi: mvm: don't reset key index on HW restart When a firmware restart is done, don't try to reprogram the keys to new slots but rather just keep the old key index, while skipping keys that weren't programmed before. Not only does this restore the state more faithfully, but it will also allow using the HW key index for internal purposes as an array index. Signed-off-by: Johannes Berg Reviewed-by: Luciano Coelho Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/mac80211.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) commit 133c8259f885fdef8ec8bd09600602c77b08cb99 Author: Luciano Coelho Date: Mon Apr 20 15:29:03 2015 +0300 iwlwifi: mvm: rename generic_scan_cmd functions to dwell The generic scan command functions are now irrelevant, since both sched and regular scans are in the same code. So rename this functions to dwell and isolate all the dwell-related setting to them. Keeping the dwell code separate makes it easier to compare the LMAC and UMAC versions. Signed-off-by: Luciano Coelho Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/scan.c | 40 +++++++++++++++++---------------- 1 file changed, 21 insertions(+), 19 deletions(-) commit 8751540821be97516efe1c2c1c9cb7ea5708222d Author: Luciano Coelho Date: Mon Apr 20 14:47:49 2015 +0300 iwlwifi: mvm: move all LMAC scan flags into a single funtion Having an LMAC counterpart for the existing UMAC flags function makes things more consistent and easy to compare and spot the differences. The flags are the same, but are in different bits, so unfortunately we can't use a single function for both APIs. Signed-off-by: Luciano Coelho Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/scan.c | 57 ++++++++++++++++++--------------- 1 file changed, 32 insertions(+), 25 deletions(-) commit 6f4dcc76e07bdf164a101db68a6b0398afe57afd Author: Luciano Coelho Date: Mon Apr 20 14:37:16 2015 +0300 iwlwifi: mvm: move all UMAC scan flags setting into the relevant function Clean the code a little by moving all the flags into the right function. Additionally, rename the function, since "common" is now irrelevant. Signed-off-by: Luciano Coelho Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/scan.c | 44 ++++++++++++++++----------------- 1 file changed, 22 insertions(+), 22 deletions(-) commit 7ea76dc843ffc0ee972da2d8eb98383481d8a514 Author: David Spinadel Date: Tue Apr 14 09:17:43 2015 +0300 iwlwifi: mvm: remove deprecated command IDs Signed-off-by: David Spinadel Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/fw-api.h | 7 ------- drivers/net/wireless/iwlwifi/mvm/fw.c | 15 --------------- drivers/net/wireless/iwlwifi/mvm/mvm.h | 4 ---- drivers/net/wireless/iwlwifi/mvm/ops.c | 3 --- 4 files changed, 29 deletions(-) commit 96c285da0dfaaafb36586d27144b717a8198bc27 Author: Emmanuel Grumbach Date: Tue Apr 14 23:14:48 2015 +0300 iwlwifi: allow to limit the size of the external buffer for firmware debugging When we use an external buffer, it is allocated from the t DRAM and can be as big as 64MB. This buffer is huge and might not be needed for the specific issue being chased. Especially if lots of dumps are going to be created. Allow to limit the size of the buffer in the configuration. Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/iwl-fw-file.h | 8 +++++--- drivers/net/wireless/iwlwifi/pcie/trans.c | 28 +++++++++++++++++++++++----- 2 files changed, 28 insertions(+), 8 deletions(-) commit e5629be7c9984c8427f36bc01c2c35fb4a21d26b Author: Eliad Peller Date: Tue Apr 14 11:36:23 2015 +0300 iwlwifi: mvm: avoid use-after-free on iwl_mvm_d0i3_enable_tx() [BUGFIX] qos_seq points (to a struct) inside the command response data. Make sure to free the response only after qos_seq is not needed anymore. type=bugfix bug=not-tracked fixes=I78c07110b59dcd389207bd2b168b0a2760839fe0 Change-Id: I619ce2c17e064dc98c7be9abc1e23175fdc8fb9a Reported-by: Heng Luo Signed-off-by: Eliad Peller Reviewed-on: https://gerrit.rds.intel.com/r/55381 Reviewed-by: Emmanuel Grumbach Tested-by: IWL Jenkins Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/ops.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 8423cdc31eb074e95c0722c395b6742a6854cc11 Author: Luciano Coelho Date: Fri Apr 17 14:49:58 2015 +0300 iwlwifi: mvm: combine UMAC scans into one With just a few differences left in the UMAC scan functions now, we can merge them into one, taking care of the small difference according to the total number of iterations required. Signed-off-by: Luciano Coelho Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/scan.c | 86 +++++++-------------------------- 1 file changed, 17 insertions(+), 69 deletions(-) commit 283c2491416ef0be3e89ac5a70a870d765a4ac76 Author: Luciano Coelho Date: Fri Apr 17 11:18:46 2015 +0300 iwlwifi: mvm: trim sched scan delay down to 16-bit for LMAC as well In theory, LMAC scans can handle a 32-bit delay, but since waiting for over 18 hours to start the scan is a bit silly and to keep it aligned with UMAC scans (which only support 16-bit delays), trim it down to 16-bits. This makes the LMAC vs. UMAC and the UMAC reg scan vs. UMAC sched scan code more similar. Signed-off-by: Luciano Coelho Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/scan.c | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) commit 7d7de1e91594024ea1a6a48a8b89ee2e9dddf43c Author: Luciano Coelho Date: Fri Apr 17 09:53:55 2015 +0300 iwlwifi: mvm: combine LMAC scans into one The last remaining difference between the regular scan and scheduled scan flows for LMAC is the FW capabilities check for EBS scans. Merge these checks into a new function and then combine the LMAC scan functions into a single one. Signed-off-by: Luciano Coelho Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/scan.c | 100 ++++++-------------------------- 1 file changed, 17 insertions(+), 83 deletions(-) commit 85abf3ec5fa663c9638ef2d10d9623880a26458e Merge: 49c4a4c 2bd1f73f Author: Takashi Iwai Date: Wed Apr 29 12:28:52 2015 +0200 Merge branch 'topic/hda' into for-next commit 2bd1f73f4242ee19d8c610bcffe6e7a813451ce0 Author: Mengdong Lin Date: Wed Apr 29 17:43:43 2015 +0800 ALSA: hda - remove controller dependency on i915 power well for Baytrail/Braswell For Baytrail (Valleyview) and Braswell (Cherryview), only the HDMI codec is in the display power well while the HD-A controller isn't. So the controller flag 'need_i915_power' is not set to release the display power after probe, and the codec flag 'link_power_control" is set to request/release the display power via bus link_power ops. Signed-off-by: Mengdong Lin Signed-off-by: Takashi Iwai sound/pci/hda/hda_intel.c | 6 ++++-- sound/pci/hda/patch_hdmi.c | 9 +++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) commit 795614dde4d3550c3ef72469b1ba4d09d8635202 Author: Mengdong Lin Date: Wed Apr 29 17:43:36 2015 +0800 ALSA: hda - divide controller and codec dependency on i915 gfx power well This patch can improve power saving for Intel platforms on which only the display audio codec is in the shared i915 power well: - Add a flag "need_i915_power" to indicate whether the controller needs the i915 power well. - The driver will always request the i915 power when probing the controller and codecs if AZX_DCAPS_I915_POWERWELL is set (either the controller or a codec needs this power). - If the controller needs the i915 power, the power will be held after probe until the controller is runtime suspended or S3. If the controller doesn't need the power, the power will be released the after probe, and a codec that needs the power can request/release the power via bus link_power ops. Background: - For Haswell/Broadwell, which has a separate HD-A controller for display audio, both the controller and the display codec are in the i915 power well. - For Baytrail/Braswell, the display and analog audio share the same HDA controller and link, and only the display codec is in the i915 power well. - For Skylake, the display and analog audio share the same HDA controller but use separate links. Only the display codec is in the i915 power well. And in legacy mode we take the two links as one. So it can follow Baytrail/Braswell. Signed-off-by: Mengdong Lin Signed-off-by: Takashi Iwai sound/pci/hda/hda_intel.c | 35 +++++++++++++++++++++++++++-------- sound/pci/hda/hda_intel.h | 1 + 2 files changed, 28 insertions(+), 8 deletions(-) commit 17eccb27fce7cac8469dd9e828645a3ba256fc1e Author: Mengdong Lin Date: Wed Apr 29 17:43:29 2015 +0800 ALSA: hda - implement link_power ops for i915 display power control This patch implements the bus link_power ops to request/release i915 display power well. It can be used by the display codec which shares this power well with GPU on Intel platforms. Signed-off-by: Mengdong Lin Signed-off-by: Takashi Iwai sound/pci/hda/hda_controller.c | 11 +++++++++++ sound/pci/hda/hda_controller.h | 2 ++ sound/pci/hda/hda_intel.c | 9 +++++++++ 3 files changed, 22 insertions(+) commit a5e7e07c264bb76d0b7c782766989c491833de05 Author: Mengdong Lin Date: Wed Apr 29 17:43:20 2015 +0800 ALSA: hda - allow a codec to control the link power A flag "link_power_control" is added to indicate whether a codec needs to control the link power. And a new bus ops link_power() is defined for the codec to request to enable/disable the link power. Signed-off-by: Mengdong Lin Signed-off-by: Takashi Iwai include/sound/hdaudio.h | 4 ++++ sound/hda/hdac_device.c | 15 +++++++++++++++ sound/pci/hda/hda_codec.c | 4 ++++ 3 files changed, 23 insertions(+) commit d4b7b13e19258a848da920502e27526f36c5a59d Author: Mengdong Lin Date: Wed Apr 29 17:43:12 2015 +0800 ALSA: hda - implement a refcount for i915 power well switch This is to check the refcount of audio driver and reduce calling to i915. Signed-off-by: Mengdong Lin Signed-off-by: Takashi Iwai sound/pci/hda/hda_i915.c | 18 ++++++++++++++---- sound/pci/hda/hda_intel.h | 1 + 2 files changed, 15 insertions(+), 4 deletions(-) commit cf5d317d802bb18ab3afce0b965538b3baf68d55 Author: Luciano Coelho Date: Thu Apr 16 20:13:28 2015 +0300 iwlwifi: mvm: add number of scan iterations and multiplier to params As another step towards combining the scan and sched scan functions, add parameters that tell the scan function how many iterations we want (i.e. 1 for normal scan, more for scheduled scan) and that set the full scan multiplier (only meaningful for LMAC). Signed-off-by: Luciano Coelho Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/scan.c | 42 ++++++++++++++++++++++----------- 1 file changed, 28 insertions(+), 14 deletions(-) commit 45d1b12e7c257829f1aaa8cee4f93dd5a6fd1f1c Author: Luciano Coelho Date: Wed Apr 15 16:34:13 2015 +0300 iwlwifi: mvm: combine LMAC and UMAC preq generation The probe request to be added to both LMAC and UMAC scan commands are identical, so move the generation out of the LMAC/UMAC-specific code. Signed-off-by: Luciano Coelho Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/scan.c | 81 ++++++++++++++------------------- 1 file changed, 35 insertions(+), 46 deletions(-) commit 4b817051decffae7e99a26a6a52700bfcee53703 Author: Luciano Coelho Date: Wed Apr 15 16:21:16 2015 +0300 iwlwifi: mvm: rename scan_calc_params to scan_calc_dwell To make things clearer, rename the iwl_mvm_scan_calc_params() function to iwl_mvm_calc_dwell() and make it calculate and fill in only dwell-related parameters. Signed-off-by: Luciano Coelho Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/scan.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) commit e2ec4f6d723ada5ba82b50b13a5f9e5a09b26965 Author: Luciano Coelho Date: Thu Apr 2 17:49:04 2015 +0300 iwlwifi: mvm: combine SSID functions for sched and regular scans Now that both scheduled scan and regular scan SSID populating functions do the same thing, they can be combined into a single function. Signed-off-by: Luciano Coelho Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/scan.c | 71 +++++++++++---------------------- 1 file changed, 24 insertions(+), 47 deletions(-) commit 1c1b5b2628fa282382d125b0d3b9d1d20e53b62e Author: Luciano Coelho Date: Thu Apr 2 16:31:42 2015 +0300 iwlwifi: mvm: revert order of SSIDs for sched scans The firmware inverts the order of the SSIDs sent out in probe requests (for some reason). For regular scans, we've been passing the SSIDs in the opposite order so they go out in the order we want. With scheduled scans, we were not doing that, so they were sent out in reverse order of priority. Fix that by using the reverse order when populating the SSIDs array for scheduled scans as well. Signed-off-by: Luciano Coelho Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/scan.c | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) commit 5ef766fe785ddcda29057f64b30f19e9bdfabe12 Author: Luciano Coelho Date: Thu Apr 2 15:37:05 2015 +0300 iwlwifi: mvm: combine ssid_bitmap setting for regular scans The only difference in the ssid_bitmap between LMAC and UMAC scans is that in LMAC bits 1 to 20 are used, while in UMAC bits 0 to 19 are used (*sigh*). So we can combine the bitmap creation into a single function and simply shift left if LMAC is used. Signed-off-by: Luciano Coelho Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/scan.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit f7b788b429337e0c07df960f3bc70b0e5cb73b87 Author: Luciano Coelho Date: Thu Apr 2 00:08:35 2015 +0300 iwlwifi: mvm: add common scan params to thw iwl_mvm_scan_params struct Many parameters are common for all scans. Instead of parsing the cfg80211 scan and sched scan requests differently in each flow, move the parsing outside of the API/scan-type specific functions. In this way, we only need to differentiate between scan types once. Signed-off-by: Luciano Coelho Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/scan.c | 239 +++++++++++++++++++------------- 1 file changed, 145 insertions(+), 94 deletions(-) commit 8df3e68f0b02b675a662198b77d31c94a9512d33 Author: Luciano Coelho Date: Wed Apr 1 17:37:44 2015 +0300 iwlwifi: mvm: combine parts of UMAC and LMAC sched scans Similarly to the regular scan patch, a lot of the UMAC and LMAC sched scan code is also almost identical. Grab the low hanging fruits by combining the obvious parts. Signed-off-by: Luciano Coelho Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/scan.c | 121 +++++++++++++------------------- 1 file changed, 47 insertions(+), 74 deletions(-) commit 3db7c6e725cd1161ed174f4af350940f9b51f18c Author: Luciano Coelho Date: Wed Apr 1 17:09:56 2015 +0300 iwlwifi: mvm: combine parts of UMAC and LMAC scans A lot of the UMAC and LMAC scan code is almost identical. Grab the low hanging fruits by combining the obvious parts. Signed-off-by: Luciano Coelho Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/scan.c | 125 +++++++++++++------------------- 1 file changed, 50 insertions(+), 75 deletions(-) commit 87411456834a44fba75879643234b10e7cccbed5 Author: Emmanuel Grumbach Date: Sun Apr 19 09:57:09 2015 +0300 iwlwifi: clarify the device / firmware mapping in Kconfig The lists of the devices supported by either MVM or DVM firmwares was incomplete. Point to https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi#firmware instead of maintaining the lists. Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/Kconfig | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) commit 737719fe9fd17fe6f7ca87c8bd62f0e16ee73ead Author: Arik Nemtsov Date: Mon Feb 23 14:42:41 2015 +0200 iwlwifi: mvm: iterate all interfaces during HW recovery cleanup Usually during HW recovery the state of all active interfaces is cleaned up during drv_start(). There's a special case where a HW restart is requested when an interface is going down. In this case the iface-iterator won't see this interface and we won't clean it. This has bad consequences once the interface is legitimately brought up again. Signed-off-by: Arik Nemtsov Reviewed-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/mac80211.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 999d2568ee0c2bbdf71a414e85fffe5d58fe766a Author: Luciano Coelho Date: Fri Mar 27 10:28:26 2015 +0300 iwlwifi: mvm: combine scan size checks into a common function Instead of repeating the same code in 4 different places, combine the comparisons into a new function. Additionally, this change fixes UMAC scans where the RRM IEs were not taken into consideration when calculating the IE length. Signed-off-by: Luciano Coelho Reviewed-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/mac80211.c | 2 +- drivers/net/wireless/iwlwifi/mvm/mvm.h | 2 +- drivers/net/wireless/iwlwifi/mvm/scan.c | 44 +++++++++++++---------------- 3 files changed, 21 insertions(+), 27 deletions(-) commit 83c415fd89486ab2992f728337c812b7264f7459 Author: Luciano Coelho Date: Mon Mar 30 15:09:24 2015 +0300 iwlwifi: mvm: always use iwl_mvm_scan_size to calculate the scan size We have a function (iwl_mvm_scan_size()) that can calculate the scan size for both UMAC and LMAC scans. Use that function instead of calculating manually for LMAC scan and sched scan. Signed-off-by: Luciano Coelho Reviewed-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/scan.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) commit 9954b37c4ab362ea015f2ee674bb46eca09fa559 Author: Emmanuel Grumbach Date: Mon Mar 16 14:49:55 2015 +0200 iwlwifi: mvm: allow scheduled scan for all the firmwares We don't support -9.ucode so, all the released firmwares support scheduled scan properly. Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/mac80211.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) commit 0bef03830276bef4d8247e7e607118dfa4d6dcb4 Author: Luciano Coelho Date: Thu Apr 2 00:25:44 2015 +0300 iwlwifi: mvm: some clean ups in fw-api-scan.h Remove unused struct iwl_scan_offload_req and enum iwl_scan_offload_flags which are not used anymore. Rename iwl_scan_offload_schedule to iwl_scan_schedule_lmac to make it clear that this is for LMAC only. And fix a small typo. Signed-off-by: Luciano Coelho Reviewed-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/fw-api-scan.h | 42 +++----------------------- 1 file changed, 5 insertions(+), 37 deletions(-) commit 0ab5dcee5e937c3c91ad5c1f53fe0fd18b9f9dd0 Author: Liad Kaufman Date: Thu Apr 2 16:54:27 2015 +0300 iwlwifi: rs: remove unneeded check of average tpt in window Previously there was a check that compared window->average_tpt to some value, and if it was different - it set it to that value. However, this value was already calculated and set in _rs_collect_tx_data(), so the entire check is unneeded. Signed-off-by: Liad Kaufman Reviewed-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/rs.c | 7 ------- 1 file changed, 7 deletions(-) commit cc79ef661cc6f79eb8bdd6d526057b739014c95a Author: Liad Kaufman Date: Mon Jan 5 14:06:14 2015 +0200 iwlwifi: pcie: support marbh fw dbg mode This adds support for configuring and retrieving the FW monitor in MARBH mode. Signed-off-by: Liad Kaufman Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/iwl-prph.h | 3 ++ drivers/net/wireless/iwlwifi/pcie/trans.c | 49 ++++++++++++++++++++++++------- 2 files changed, 41 insertions(+), 11 deletions(-) commit 19945dfb94fafe50d9e6d1b1d0884c9ec7e3c84c Author: Luciano Coelho Date: Fri Mar 20 16:11:28 2015 +0200 iwlwifi: mvm: differentiate net-detect from sched scan Net-detect scans were using the same type as sched scan, which was causing the driver to return -EBUSY and prevent the system from suspending if there was an ongoing scheduled scan. To avoid this, add a new type for net-detect and don't stop anything when it is requested, so that the existing scheduled scan will be resumed when the system wakes up. Signed-off-by: Luciano Coelho Reviewed-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/d3.c | 3 ++- drivers/net/wireless/iwlwifi/mvm/mac80211.c | 2 +- drivers/net/wireless/iwlwifi/mvm/mvm.h | 7 ++++++- drivers/net/wireless/iwlwifi/mvm/scan.c | 12 ++++++++++-- 4 files changed, 19 insertions(+), 5 deletions(-) commit 6749dd80bb335f1bf9b214a0dc44943f0b5044ca Author: Luciano Coelho Date: Fri Mar 20 15:51:36 2015 +0200 iwlwifi: mvm: move scan code from mac80211.c to scan.c Move all the scan code that was in mac80211.c to scan.c where it belongs, leaving only the parts that are specific to mac80211 ops. Change some function definitions slightly to improve consistency. Signed-off-by: Luciano Coelho Reviewed-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/mac80211.c | 80 +------------ drivers/net/wireless/iwlwifi/mvm/mvm.h | 13 +-- drivers/net/wireless/iwlwifi/mvm/scan.c | 173 ++++++++++++++++++++-------- 3 files changed, 136 insertions(+), 130 deletions(-) commit 65ff556b07161be5ab608fe93697dbbdc0d9252d Author: Luciano Coelho Date: Fri Mar 20 13:35:47 2015 +0200 iwlwifi: mvm: rename unified_scan symbols to just scan All scans are using the unified APIs now, so using "unified" in the symbols is useless and just make them much longer and the main difference between scans now is LMAC vs. UMAC. Remove "unified" from all relevant symbols. Signed-off-by: Luciano Coelho Reviewed-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/d3.c | 6 +- drivers/net/wireless/iwlwifi/mvm/fw-api-scan.h | 4 +- drivers/net/wireless/iwlwifi/mvm/mac80211.c | 6 +- drivers/net/wireless/iwlwifi/mvm/mvm.h | 20 ++--- drivers/net/wireless/iwlwifi/mvm/scan.c | 107 ++++++++++++------------- 5 files changed, 68 insertions(+), 75 deletions(-) commit 507e4cda52581cb9e9fb130000f066f68686188f Author: Luciano Coelho Date: Thu Mar 19 22:58:33 2015 +0200 iwlwifi: mvm: generalize the other-scan stopping code Instead of hardcoding the differences between UMAC scans and LMAC scans (which in this case is the number of simultaneous scans that can run), introduce a max_scans variable and stop scans of the other type (i.e. stop sched scan if regular scan is being attempted and vice-versa) if the number of running scans reached the maximum. Add a function that checks if the maximum number of scans was reached and stops the appropriate scan to make room for the new scan. Signed-off-by: Luciano Coelho Reviewed-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/fw-api-scan.h | 10 ++-- drivers/net/wireless/iwlwifi/mvm/mac80211.c | 74 ++++++++++++++++++-------- drivers/net/wireless/iwlwifi/mvm/mvm.h | 5 +- drivers/net/wireless/iwlwifi/mvm/scan.c | 25 +++++---- 4 files changed, 76 insertions(+), 38 deletions(-) commit 4171bb3346dd8e9f3e996fd43271616181208285 Author: Luciano Coelho Date: Fri Mar 20 09:29:42 2015 +0200 iwlwifi: mvm: check if scan can be started before cancelling other scans If a new scan cannot be run for some reason, we shouldn't cancel other ongoing scans. Move the checks to before the code that cancels other scans. Signed-off-by: Luciano Coelho Reviewed-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/mac80211.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) commit bd9564da3dd2ab96c34f9dce4fd546f6c2fb08a1 Author: Luciano Coelho Date: Fri Mar 20 08:59:56 2015 +0200 iwlwifi: mvm: don't wait for scan stopped work when cancelling scans Now that we have separate flags for stopping scans, we don't need to wait for the scan stopped work to complete before starting the new scan. Previously we needed it because we had no way of distinguishing the scan that was being stopped from the scan that was currently running. With the new flags there won't be any confusions and we are able to handle the stop for the correct type of scan. Thus we can remove the iwl_mvm_cancel_scan_wait_notif() function. Signed-off-by: Luciano Coelho Reviewed-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/mac80211.c | 65 ++++++----------------------- 1 file changed, 12 insertions(+), 53 deletions(-) commit 9af91f466369cb9d70fc6561b19f12138e97ff35 Author: Luciano Coelho Date: Tue Feb 10 10:42:26 2015 +0200 iwlwifi: mvm: convert scan_status to a bitmap LMAC scans cannot handle more than one scan at a time, but UMAC scans can. To avoid confusion we should combine the states of these two types of scans. To do so, we need to support mutliple scans at the same time for UMAC. This commit changes the scan_status element from a single value to a bitmask of running scan types for LMAC. Later, we will modify UMAC scans to use the same state bitmask. Additionally, add stopping scan flags for scheduled and regular scans. This makes it easier to differentiate and handle stop requests triggered by the driver and spontaneous stops generated by the firmware. Signed-off-by: Luciano Coelho Reviewed-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/mac80211.c | 24 ++--- drivers/net/wireless/iwlwifi/mvm/mvm.h | 22 +++-- drivers/net/wireless/iwlwifi/mvm/scan.c | 134 ++++++++++++++++------------ 3 files changed, 107 insertions(+), 73 deletions(-) commit c1537664086f6a44dde2cda85d2ee023a7c76791 Author: Luciano Coelho Date: Thu Apr 9 14:48:11 2015 +0300 iwlwifi: mvm: don't increase max_out_time when low priority scan is requested In some cases, max_out_time value is smaller than 200 and having the NL80211_SCAN_FLAG_LOW_PRIORITY flag was actually causing the max_out_time to be increased. To avoid that, set max_out_time to 200 only if it's greater than 200. Signed-off-by: Luciano Coelho Reviewed-by: Alexander Bondar Reviewed-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/scan.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 0616c62c1659200419a810601e96d3e5e9d559e6 Author: Luciano Coelho Date: Thu Apr 9 12:18:56 2015 +0300 iwlwifi: mvm: add scan parameters debugging info Add scan parameters information to make it easier to debug scan dwell times and fragmentation. Signed-off-by: Luciano Coelho Reviewed-by: Alexander Bondar Reviewed-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/scan.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit fcc5e8512a25c64df480a38350e0f4a969976285 Author: Eyal Shapira Date: Sun Apr 12 23:45:27 2015 +0300 iwlwifi: rs: cleanup last_txrate_idx last_txrate_idx isn't used anymore and can be dropped as this info exists already somewhere else. Signed-off-by: Eyal Shapira Reviewed-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/rs.c | 10 +++------- drivers/net/wireless/iwlwifi/mvm/rs.h | 2 -- 2 files changed, 3 insertions(+), 9 deletions(-) commit 867e214e9437d4367ae4b24cded5f28b034c6c46 Author: Liad Kaufman Date: Sun Apr 5 13:52:50 2015 +0300 iwlwifi: rs: remove code duplication when filling lq cmd Same code appear a few lines later while the position has no effect on the actual flow. Signed-off-by: Liad Kaufman Reviewed-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/rs.c | 3 --- 1 file changed, 3 deletions(-) commit 35d3dab5f5e35ee0b60362a2986f4d1483af03ac Author: Matti Gottlieb Date: Sun Mar 29 13:38:16 2015 +0300 iwlwifi: mvm: ROC: Reduce the aux roc max delay When user space requests mac80211 to transmit a frame off channel, mac80211 notifies the driver, and the driver requests a time event from the ucode, and then transmits the frame. When the driver requests a time event, it can specify what is the allowed max delay for starting the time event. When the max delay is too big, this can cause a timeout in the user space, that is waiting for the frame to be transmitted. Currently the max delay is extremely long. Reduce the max delay for the AUX ROC time event that is sent to the ucode. Signed-off-by: Matti Gottlieb Reviewed-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/mac80211.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ac1c8d5ea14dcf7cbfab97a9221cc80ee850a7b5 Merge: 6c373ca e7afe89 Author: Emmanuel Grumbach Date: Wed Apr 29 13:12:18 2015 +0300 Merge remote-tracking branch 'iwlwifi-fixes/master' into iwlwifi-next commit 49c4a4c5244d2c1a25ec1e01dbb4fba3813d237d Merge: 1962fca 7241ea5 Author: Takashi Iwai Date: Wed Apr 29 07:28:29 2015 +0200 Merge branch 'for-linus' into for-next Conflicts: sound/pci/emu10k1/emu10k1_main.c Signed-off-by: Takashi Iwai commit 627ae54854edfbf29d5997015c190de22eef497f Author: Chris Metcalf Date: Tue Apr 28 13:00:42 2015 -0400 tile: use READ_ONCE() in arch_spin_is_locked() This avoid potential issues if callers were to loop on these routines without some kind of memory barrier. Currently there are no such users in-tree, but it seems better safe than sorry. Also, in the tilepro case we read "current" before "next", which gives us a slightly better guarantee that the lock was actually unlocked at least momentarily if we return claiming that it is not locked. None of the callers actually rely on this behavior, as far as I know, however. Signed-off-by: Chris Metcalf arch/tile/include/asm/spinlock_32.h | 6 +++++- arch/tile/include/asm/spinlock_64.h | 5 ++++- 2 files changed, 9 insertions(+), 2 deletions(-) commit 14c3dec2a875d898262be79c0f85e5f2b70a71b0 Author: Chris Metcalf Date: Tue Apr 28 13:02:26 2015 -0400 tile: modify arch_spin_unlock_wait() semantics Rather than trying to wait until all possible lockers have unlocked the lock, we now only wait until the current locker (if any) has released the lock. The old code was correct, but the new code works more like the x86 code and thus hopefully is more appropriate under contention. See commit 78bff1c8684f ("x86/ticketlock: Fix spin_unlock_wait() livelock") for x86. Signed-off-by: Chris Metcalf arch/tile/lib/spinlock_32.c | 11 ++++++++++- arch/tile/lib/spinlock_64.c | 11 ++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) commit e3db12b94ed4e70b7f8703a0c7396d6b9028b58a Author: Lina Iyer Date: Thu Apr 9 13:20:43 2015 -0600 ARM: config: multi_v7: Update to enable cpuidle for QCOM SoCs Update defconfig to allow cpuidle for QCOM cpus. * Enable QCOM_PM * Enable ARM_CPUIDLE Cc: Kumar Gala Signed-off-by: Lina Iyer Signed-off-by: Kumar Gala arch/arm/configs/multi_v7_defconfig | 2 ++ 1 file changed, 2 insertions(+) commit 1f048b70b8e4761eb0579c0d668eeb4a3549bfa1 Author: Lina Iyer Date: Thu Apr 9 13:20:42 2015 -0600 ARM: config: Update qcom_defconfig to enable cpuidle Update qcom_defconfig to allow cpuidle for QCOM cpus. * Enable QCOM_PM * Enable ARM_CPUIDLE Cc: Kumar Gala Signed-off-by: Lina Iyer Signed-off-by: Kumar Gala arch/arm/configs/qcom_defconfig | 2 ++ 1 file changed, 2 insertions(+) commit b6a1dfbc7d57409accf213e78db7b059c206be9e Author: Kumar Gala Date: Wed Mar 11 16:28:10 2015 -0500 firmware: qcom: scm: Split out 32-bit specific SCM code Split out the 32-bit SCM implementation into its own file to prep for supporting a 64-bit/ARM64 implementation as well. We create a simple shim to ensure both versions conform to the same interface. Signed-off-by: Kumar Gala drivers/firmware/Makefile | 3 +- drivers/firmware/qcom_scm-32.c | 480 +++++++++++++++++++++++++++++++++++++++++ drivers/firmware/qcom_scm.c | 442 +------------------------------------ drivers/firmware/qcom_scm.h | 38 ++++ 4 files changed, 527 insertions(+), 436 deletions(-) commit 137ce6104ffec1a86c8c14daf1cca15f8ef29d2c Author: Vladimir Kondratiev Date: Mon Mar 30 11:28:54 2015 +0300 wil6210: update FW file name Firmware "board" file name has changed from wil6210.board to wil6210.brd by the FW generation tools. Reflect this in the driver. Signed-off-by: Vladimir Kondratiev Signed-off-by: Kalle Valo drivers/net/wireless/ath/wil6210/wil6210.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e853c93bd8e2d92c6586ceed15542c21c8766d54 Author: Vladimir Kondratiev Date: Mon Mar 30 11:28:53 2015 +0300 wil6210: stop_ap to leave interface closed cfg80211_ops.stop_ap supposed to have interface carried turned off as post condition. Fulfill this requirement. Signed-off-by: Vladimir Kondratiev Signed-off-by: Kalle Valo drivers/net/wireless/ath/wil6210/cfg80211.c | 4 ---- 1 file changed, 4 deletions(-) commit de9084ef47eb4014a7ca3ccbffce285ddc2130ce Author: Vladimir Kondratiev Date: Mon Mar 30 11:28:52 2015 +0300 wil6210: trace disconnect source Trace where wil6210_disconnect() is called from. Signed-off-by: Vladimir Kondratiev Signed-off-by: Kalle Valo drivers/net/wireless/ath/wil6210/cfg80211.c | 5 +++++ 1 file changed, 5 insertions(+) commit db8adcbf5e7a0d5e6577b53214e6655b81cea9df Author: Vladimir Kondratiev Date: Mon Mar 30 11:28:51 2015 +0300 wil6210: debug [add|del]_key operations Provide info for [add|del]_key. Signed-off-by: Vladimir Kondratiev Signed-off-by: Kalle Valo drivers/net/wireless/ath/wil6210/cfg80211.c | 6 ++++++ 1 file changed, 6 insertions(+) commit bfc2dc7a69a41ba5ee268dac2c464d6b0e50eba7 Author: Vladimir Kondratiev Date: Mon Mar 30 11:28:50 2015 +0300 wil6210: fw debug mode refactor module parameter debug_fw to act as "fw debug mode", where driver do nothing but allow card memory access. Signed-off-by: Vladimir Kondratiev Signed-off-by: Kalle Valo drivers/net/wireless/ath/wil6210/main.c | 15 +++++++++++++++ drivers/net/wireless/ath/wil6210/netdev.c | 5 +++++ drivers/net/wireless/ath/wil6210/pcie_bus.c | 6 ------ drivers/net/wireless/ath/wil6210/wil6210.h | 1 + 4 files changed, 21 insertions(+), 6 deletions(-) commit b189a2117223edbe40e0a187ae5c606cbdd6447c Author: Geert Uytterhoeven Date: Tue Apr 28 14:04:07 2015 +0200 usb: phy: Remove the phy-rcar-gen2-usb driver The phy-rcar-gen2-usb driver, which supports legacy platform data only, is no longer used since commit a483dcbfa21f919c ("ARM: shmobile: lager: Remove legacy board support"). This driver was superseded by the DT-only phy-rcar-gen2 driver, which was introduced in commit 1233f59f745b237d ("phy: Renesas R-Car Gen2 PHY driver"). Signed-off-by: Geert Uytterhoeven Signed-off-by: Felipe Balbi drivers/usb/phy/Kconfig | 13 -- drivers/usb/phy/Makefile | 1 - drivers/usb/phy/phy-rcar-gen2-usb.c | 246 ------------------------ include/linux/platform_data/usb-rcar-gen2-phy.h | 22 --- 4 files changed, 282 deletions(-) commit 44e42ae3a398b559c768b9b3c324d72b0b0b4479 Author: Ivan T. Ivanov Date: Thu Apr 9 11:34:33 2015 +0300 usb: phy: msm: Manual PHY and LINK controller VBUS change notification VBUS is not routed to USB PHY on recent Qualcomm platforms. USB controller must see VBUS in order to pull-up DP when setting RS bit. Henc configure USB PHY and LINK registers sense VBUS and enable manual pullup on D+ line. Cc: Vamsi Krishna Cc: Mayank Rana Signed-off-by: Ivan T. Ivanov Signed-off-by: Felipe Balbi .../devicetree/bindings/usb/msm-hsusb.txt | 4 ++++ drivers/usb/phy/phy-msm-usb.c | 26 ++++++++++++++++++++++ include/linux/usb/msm_hsusb.h | 5 +++++ include/linux/usb/msm_hsusb_hw.h | 9 ++++++++ 4 files changed, 44 insertions(+) commit 591fc116f3302da915bb57d4474a61a5e8884cec Author: Ivan T. Ivanov Date: Thu Apr 9 11:34:22 2015 +0300 usb: phy: msm: Use extcon framework for VBUS and ID detection On recent Qualcomm platforms VBUS and ID lines are not routed to USB PHY LINK controller. Use extcon framework to receive connect and disconnect ID and VBUS notification. Signed-off-by: Ivan T. Ivanov Signed-off-by: Felipe Balbi .../devicetree/bindings/usb/msm-hsusb.txt | 7 ++ drivers/usb/phy/Kconfig | 1 + drivers/usb/phy/phy-msm-usb.c | 84 ++++++++++++++++++++++ include/linux/usb/msm_hsusb.h | 17 +++++ 4 files changed, 109 insertions(+) commit 5a294e5469891d0701183049c4a9678887fa7091 Author: Yoshihiro Shimoda Date: Wed Apr 8 19:42:24 2015 +0900 usb: renesas_usbhs: Revise the binding document about the dma-names Since the DT should describe the hardware (not the driver limitation), This patch revises the binding document about the dma-names to change simple numbering as "ch%d" instead of "tx" and "rx". Also this patch fixes the actual code of renesas_usbhs driver to handle the new dma-names. Signed-off-by: Yoshihiro Shimoda Acked-by: Mark Rutland Acked-by: Geert Uytterhoeven Signed-off-by: Felipe Balbi .../devicetree/bindings/usb/renesas_usbhs.txt | 6 ++---- drivers/usb/renesas_usbhs/fifo.c | 24 ++++++++++++++-------- 2 files changed, 17 insertions(+), 13 deletions(-) commit 1a65864a8b443a1aa4b4225d9c4db9fca26c5661 Author: Antonio Ospite Date: Tue Apr 28 13:11:24 2015 +0200 ASoC: adau1977: fix typo s/Substraction/Subtraction/ Signed-off-by: Antonio Ospite Acked-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/adau1977.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c0d44e59c2bedf81e620f5eb31eb9d4dc6219ad2 Author: Sudip Mukherjee Date: Tue Apr 28 17:51:41 2015 +0530 ASoC: rt5645: fixed section mismatch while building as a module we are getting warning about section mismatch. Signed-off-by: Sudip Mukherjee Signed-off-by: Mark Brown sound/soc/codecs/rt5645.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bb17141cc57c40065462c64d61c0ae362466c0c0 Author: Hans Verkuil Date: Mon Apr 27 04:29:55 2015 -0300 [media] radio-bcm2048: fix compiler warning radio-bcm2048.c: In function 'bcm2048_i2c_driver_probe': radio-bcm2048.c:2597:11: warning: variable 'skip_release' set but not used [-Wunused-but-set-variable] int err, skip_release = 0; ^ Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/staging/media/bcm2048/radio-bcm2048.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 21de82e374712f3ebfe102b3643e63d633dd350c Author: Mauro Carvalho Chehab Date: Tue Apr 28 09:28:45 2015 -0300 [media] dib8000: fix compiler warning In file included from include/uapi/linux/posix_types.h:4:0, from include/uapi/linux/types.h:13, from include/linux/types.h:5, from include/uapi/linux/sysinfo.h:4, from include/uapi/linux/kernel.h:4, from include/linux/cache.h:4, from include/linux/time.h:4, from include/linux/input.h:11, from drivers/media/usb/dvb-usb/dvb-usb.h:13, from drivers/media/usb/dvb-usb/dib0700.h:13, from drivers/media/usb/dvb-usb/dib0700_devices.c:9: drivers/media/dvb-frontends/dib8000.h: In function 'dib8000_attach': include/linux/stddef.h:8:14: warning: return makes integer from pointer without a cast [-Wint-conversion] #define NULL ((void *)0) ^ drivers/media/dvb-frontends/dib8000.h:72:9: note: in expansion of macro 'NULL' return NULL; ^ Reported-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/dib8000.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8b012fc9bd89a743bbefe2055ca6f091e190935e Author: Hans Verkuil Date: Mon Apr 27 04:29:53 2015 -0300 [media] cx24123/mb86a20s/s921: fix compiler warnings In file included from drivers/media/common/b2c2/flexcop-fe-tuner.c:13:0: drivers/media/dvb-frontends/cx24123.h:54:2: warning: 'cx24123_get_tuner_i2c_adapter' defined but not used [-Wunused-function] cx24123_get_tuner_i2c_adapter(struct dvb_frontend *fe) ^ In file included from drivers/media/usb/em28xx/em28xx-dvb.c:46:0: drivers/media/dvb-frontends/s921.h:40:2: warning: 's921_get_tuner_i2c_adapter' defined but not used [-Wunused-function] s921_get_tuner_i2c_adapter(struct dvb_frontend *fe) ^ In file included from drivers/media/usb/em28xx/em28xx-dvb.c:55:0: drivers/media/dvb-frontends/mb86a20s.h:49:2: warning: 'mb86a20s_get_tuner_i2c_adapter' defined but not used [-Wunused-function] mb86a20s_get_tuner_i2c_adapter(struct dvb_frontend *fe) ^ In file included from drivers/media/usb/cx231xx/cx231xx-dvb.c:35:0: drivers/media/dvb-frontends/mb86a20s.h:49:2: warning: 'mb86a20s_get_tuner_i2c_adapter' defined but not used [-Wunused-function] mb86a20s_get_tuner_i2c_adapter(struct dvb_frontend *fe) ^ Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/cx24123.h | 2 +- drivers/media/dvb-frontends/mb86a20s.h | 2 +- drivers/media/dvb-frontends/s921.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 7e0d4e92269e574e50a58041fac4cc75a149828c Author: Hans Verkuil Date: Mon Apr 27 04:29:52 2015 -0300 [media] s3c-camif: fix compiler warnings Fix these compiler warnings that appeared after switching to gcc-5.1.0: drivers/media/platform/s3c-camif/camif-capture.c: In function 'sensor_set_power': drivers/media/platform/s3c-camif/camif-capture.c:118:10: warning: logical not is only applied to the left hand side of comparison [-Wlogical-not-parentheses] if (!on == camif->sensor.power_count) ^ drivers/media/platform/s3c-camif/camif-capture.c: In function 'sensor_set_streaming': drivers/media/platform/s3c-camif/camif-capture.c:134:10: warning: logical not is only applied to the left hand side of comparison [-Wlogical-not-parentheses] if (!on == camif->sensor.stream_count) ^ Signed-off-by: Hans Verkuil Cc: Kamil Debski Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/s3c-camif/camif-capture.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 874c65f038b8c8d7ba9490b8cbc204209f008c81 Author: Hans Verkuil Date: Mon Apr 27 04:29:51 2015 -0300 [media] s5c73m3/s5k5baf/s5k6aa: fix compiler warnings Fix these compiler warnings that appeared after switching to gcc-5.1.0: drivers/media/i2c/s5k5baf.c: In function 's5k5baf_set_power': drivers/media/i2c/s5k5baf.c:1057:10: warning: logical not is only applied to the left hand side of comparison [-Wlogical-not-parentheses] if (!on != state->power) ^ drivers/media/i2c/s5k6aa.c: In function 's5k6aa_set_power': drivers/media/i2c/s5k6aa.c:878:10: warning: logical not is only applied to the left hand side of comparison [-Wlogical-not-parentheses] if (!on == s5k6aa->power) { ^ drivers/media/i2c/s5c73m3/s5c73m3-core.c: In function 's5c73m3_oif_set_power': drivers/media/i2c/s5c73m3/s5c73m3-core.c:1456:17: warning: logical not is only applied to the left hand side of comparison [-Wlogical-not-parentheses] } else if (!on == state->power) { ^ Signed-off-by: Hans Verkuil Cc: Kamil Debski Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/s5c73m3/s5c73m3-core.c | 2 +- drivers/media/i2c/s5k5baf.c | 2 +- drivers/media/i2c/s5k6aa.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 73ba51a653e8839b85abc3cca9d57089a8890913 Author: Hans Verkuil Date: Sat Apr 25 05:15:24 2015 -0300 [media] DocBook/media: attemps -> attempts Fix typo. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/v4l/media-func-open.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f6b8af22e9aab21d72c881f5eebfb8eef805ac88 Author: Hans Verkuil Date: Fri Apr 24 11:16:26 2015 -0300 [media] vivid-tpg: fix XV601/709 Y'CbCr encoding For these encodings the quantization range should be ignored, since there is only one possible Y'CbCr encoding. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/vivid/vivid-tpg.c | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) commit bbfef49fcf61ccd708ce55805c2e25488ed4cf8e Author: Hans Verkuil Date: Fri Apr 24 11:16:25 2015 -0300 [media] vivid-tpg: add full range BT.2020C support In order to be consistent with the other Y'CbCr encodings add support for full range V4L2_YCBCR_ENC_BT2020_CONST_LUM. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/vivid/vivid-tpg.c | 40 +++++++++++++++++++++++--------- 1 file changed, 29 insertions(+), 11 deletions(-) commit cf73b71706df28b9db6b80f6a35c3291c69de17e Author: Hans Verkuil Date: Fri Apr 24 11:16:24 2015 -0300 [media] vivid-tpg: add full range BT.2020 support In order to be consistent with the other Y'CbCr encodings add support for full range V4L2_YCBCR_ENC_BT2020. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/vivid/vivid-tpg.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) commit c702f68af959375f8943fbbedcdec77925f8d513 Author: Hans Verkuil Date: Fri Apr 24 11:16:23 2015 -0300 [media] vivid-tpg: add full range SMPTE 240M support In order to be consistent with the other Y'CbCr encodings add support for full range V4L2_YCBCR_ENC_SMPTE240M. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/vivid/vivid-tpg.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) commit 84b76d749b18a7badf4135deb160d66e4b2e2d57 Author: Hans Verkuil Date: Fri Apr 24 11:16:22 2015 -0300 [media] vivid-tpg: add tpg_log_status() Add a log_status function to the test pattern generator and use that in vivid. This simplifies debugging complex colorspace problems. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/vivid/vivid-core.c | 13 ++++++++++++- drivers/media/platform/vivid/vivid-tpg.c | 16 ++++++++++++++++ drivers/media/platform/vivid/vivid-tpg.h | 1 + 3 files changed, 29 insertions(+), 1 deletion(-) commit 1381fb3e01cb40e9ddbaf247af757847003d0e75 Author: Philipp Zabel Date: Thu Apr 23 10:52:54 2015 -0300 [media] vivid: add 1080p capture at 2 fps and 5 fps to webcam emulation Use the VIVID_WEBCAM_SIZES constant where appropriate and add a 1920x1080 pixel frame size setting with frame rates of 2 fps and 5 fps. Signed-off-by: Philipp Zabel Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/vivid/vivid-vid-cap.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) commit 73b25f66dcae45d74e1641c52a3d96d041788e4e Merge: 2decb26 45c9abc Author: Kalle Valo Date: Tue Apr 28 14:43:54 2015 +0300 Merge ath-next from ath.git Major changes in ath10k: * enable channel 144 on 5 GHz * enable Adaptive Noise Immunity (ANI) by default * add Wake on Wireless LAN (WOW) patterns support * add basic Tunneled Direct Link Setup (TDLS) support * add multi-channel support for QCA6174 * enable IBSS RSN support * enable Bluetooth Coexistance whenever firmware supports it * add more versatile way to set bitrates used by the firmware commit 480856f3b462d5b8d24e40ac3693c5620bdd5617 Author: Hans Verkuil Date: Tue Apr 28 03:41:00 2015 -0300 [media] v4l2-of: fix compiler errors if CONFIG_OF is undefined You must use static inline otherwise you get these errors if CONFIG_OF is not defined: In file included from drivers/media/platform/soc_camera/soc_camera.c:39:0: include/media/v4l2-of.h:112:13: warning: 'v4l2_of_free_endpoint' defined but not used [-Wunused-function] static void v4l2_of_free_endpoint(struct v4l2_of_endpoint *endpoint) ^ In file included from drivers/media/platform/soc_camera/atmel-isi.c:28:0: include/media/v4l2-of.h:112:13: warning: 'v4l2_of_free_endpoint' defined but not used [-Wunused-function] static void v4l2_of_free_endpoint(struct v4l2_of_endpoint *endpoint) ^ In file included from drivers/media/platform/soc_camera/rcar_vin.c:36:0: include/media/v4l2-of.h:112:13: warning: 'v4l2_of_free_endpoint' defined but not used [-Wunused-function] static void v4l2_of_free_endpoint(struct v4l2_of_endpoint *endpoint) ^ Signed-off-by: Hans Verkuil Acked-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab include/media/v4l2-of.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b97c3c1a0b538a61fb1cab057738ccb64ae51e4d Author: Johan Hovold Date: Thu Apr 23 16:06:52 2015 +0200 staging: octeon-usb: fix unaligned isochronous transfers Make sure to copy the whole transfer buffer when releasing the temporary buffer used for unaligned isochronous transfers as the data is not necessarily contiguous in that case. Signed-off-by: Johan Hovold Signed-off-by: Greg Kroah-Hartman drivers/staging/octeon-usb/octeon-hcd.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit 1962fcab4ee80e555bcc9d0f50e416800d474fa2 Merge: f1a7754 12e180a Author: Takashi Iwai Date: Tue Apr 28 08:31:31 2015 +0200 Merge branch 'topic/jack' into for-next commit dcd93e8303cbd0ef3dba165daa0633ebd05b3e17 Author: Allan, Bruce W Date: Mon Apr 27 13:58:27 2015 -0700 crypto: qat - do not duplicate string containing firmware name Use ADF_DH895XCC_FW instead of duplicating the string "qat_895xcc.bin" when referring to the DH895xCC firmware. Signed-off-by: Bruce Allan Signed-off-by: Herbert Xu drivers/crypto/qat/qat_dh895xcc/adf_drv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit dfaac7b7e4015ca2e690c7ea4421aec1405de966 Author: Geert Uytterhoeven Date: Mon Apr 27 15:55:24 2015 +0200 ARM: shmobile: sh73a0 dtsi: Fix SCIFB naming The single SCIFB on SH-Mobile AG5 is called "scifb", not "scifb8". Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/sh73a0.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 50663822618670a1e6ea1dd9912790fd7ed3be0b Author: Geert Uytterhoeven Date: Mon Apr 27 15:55:23 2015 +0200 ARM: shmobile: r8a7740 dtsi: Fix SCIFB naming The single SCIFB on R-Mobile A1 is called "scifb", not "scifb8". Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7740.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit baf2a0e1c92255c1c0ee6d0468b247499f6f6f8b Author: Fang, Yang A Date: Mon Apr 27 15:54:30 2015 -0700 ASoC: rt5645: fixed kbuild err kbuild robot reports following error/warnings sound/soc/codecs/rt5645.c: In function 'rt5645_i2c_probe': >> sound/soc/codecs/rt5645.c:2720:4: error: implicit declaration of >> function 'devm_gpiod_get_index' >> [-Werror=implicit-function-declaration] gpiod = devm_gpiod_get_index(&i2c->dev, "rt5645", 0); ^ >> sound/soc/codecs/rt5645.c:2720:10: warning: assignment makes pointer >> from integer without a cast gpiod = devm_gpiod_get_index(&i2c->dev, "rt5645", 0); ^ >> sound/soc/codecs/rt5645.c:2722:4: error: implicit declaration of >> function 'gpiod_direction_input' >> [-Werror=implicit-function-declaration] if (IS_ERR(gpiod) || gpiod_direction_input(gpiod)) { ^ >> sound/soc/codecs/rt5645.c:2726:5: error: implicit declaration of >> function 'desc_to_gpio' [-Werror=implicit-function-declaration] rt5645->pdata.hp_det_gpio = desc_to_gpio(gpiod); ^ >> sound/soc/codecs/rt5645.c:2728:7: error: implicit declaration of >> function 'gpiod_is_active_low' >> [-Werror=implicit-function-declaration] = !gpiod_is_active_low(gpiod); ^ cc1: some warnings being treated as errors Signed-off-by: Fang, Yang A Signed-off-by: Mark Brown sound/soc/codecs/rt5645.c | 1 + 1 file changed, 1 insertion(+) commit 7ce75bb2c05ef6949ab0b93633e052f46855690d Author: Lina Iyer Date: Thu Apr 9 13:20:41 2015 -0600 ARM: qcom: Add Subsystem Power Manager (SPM) driver SPM is a hardware block that controls the peripheral logic surrounding the application cores (cpu/l$). When the core executes WFI instruction, the SPM takes over the putting the core in low power state as configured. The wake up for the SPM is an interrupt at the GIC, which then completes the rest of low power mode sequence and brings the core out of low power mode. The SPM has a set of control registers that configure the SPMs individually based on the type of the core and the runtime conditions. SPM is a finite state machine block to which a sequence is provided and it interprets the bytes and executes them in sequence. Each low power mode that the core can enter into is provided to the SPM as a sequence. Configure the SPM to set the core (cpu or L2) into its low power mode, the index of the first command in the sequence is set in the SPM_CTL register. When the core executes ARM wfi instruction, it triggers the SPM state machine to start executing from that index. The SPM state machine waits until the interrupt occurs and starts executing the rest of the sequence until it hits the end of the sequence. The end of the sequence jumps the core out of its low power mode. Add support for an idle driver to set up the SPM to place the core in Standby or Standalone power collapse mode when the core is idle. Based on work by: Mahesh Sivasubramanian , Ai Li , Praveen Chidambaram Original tree available at - git://codeaurora.org/quic/la/kernel/msm-3.10.git Cc: Stephen Boyd Cc: Arnd Bergmann Cc: Kevin Hilman Cc: Daniel Lezcano Signed-off-by: Lina Iyer Reviewed-by: Stephen Boyd Tested-by: Kevin Hilman Acked-by: Kumar Gala Acked-by: Kevin Hilman Signed-off-by: Kumar Gala drivers/soc/qcom/Kconfig | 7 + drivers/soc/qcom/Makefile | 1 + drivers/soc/qcom/spm.c | 385 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 393 insertions(+) commit b73b31577f70a1d03aee21d0127da44862b7b08e Author: Stephen Boyd Date: Tue Feb 10 17:06:03 2015 -0800 ARM: dts: qcom: Add msm8660 PMU node Enable perf events on msm8660 devices by adding the pmu node. Signed-off-by: Stephen Boyd Signed-off-by: Kumar Gala arch/arm/boot/dts/qcom-msm8660.dtsi | 5 +++++ 1 file changed, 5 insertions(+) commit 893475283dc9e2e344ff71912babdf714fc56777 Author: Ivan T. Ivanov Date: Mon Apr 20 10:45:37 2015 +0300 ARM: dts: qcom: Add PMA8084 functions device nodes Add configuration nodes for following devices: * GPIO block, with 22 pins * MPP block, with 8 pins * Volatage ADC (VADC), with multiple inputs * Thermal sensor device, which is using on chip VADC channel report PMIC die temperature. * RTC device Signed-off-by: Ivan T. Ivanov Signed-off-by: Kumar Gala arch/arm/boot/dts/qcom-pma8084.dtsi | 92 +++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) commit 635ecad7553b48a80777d8740e7387808d494a92 Author: Ivan T. Ivanov Date: Mon Apr 20 10:45:36 2015 +0300 ARM: dts: qcom: Add PM8941 functions device nodes Add configuration nodes for following devices: * GPIO block, with 36 pins * MPP block, with 8 pins * Current ADC (IADC) * Volatage ADC (VADC), with multiple inputs * Thermal sensor device, which is using on chip VADC channel report PMIC die temperature * Power key device, which is responsible for clean system reboot or shutdown * White LED device * RTC device Signed-off-by: Ivan T. Ivanov Signed-off-by: Kumar Gala arch/arm/boot/dts/qcom-pm8941.dtsi | 133 ++++++++++++++++++++++++++++++++++++- 1 file changed, 132 insertions(+), 1 deletion(-) commit dab8134ca0723d7a6fd009a4af6b602f861eb66a Author: Ivan T. Ivanov Date: Mon Apr 20 10:45:35 2015 +0300 ARM: dts: qcom: Add PM8841 functions device nodes Add configuration nodes for multi purpose pins and thermal sensor devices. Thermal sensor will report PMIC die temperature. Signed-off-by: Ivan T. Ivanov Signed-off-by: Kumar Gala arch/arm/boot/dts/qcom-pm8841.dtsi | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit 3f62b46be1f7f1fc88401e97e0bbe55ca9d3964a Author: Srinivas Kandagatla Date: Fri Apr 10 21:44:48 2015 +0100 ARM: dts: qcom: apq8064 - add i2c3 node for panel. This patch adds i2c3 node which is used for panel control on IFC6410. Signed-off-by: Srinivas Kandagatla Signed-off-by: Kumar Gala arch/arm/boot/dts/qcom-apq8064-ifc6410.dts | 10 ++++++++++ arch/arm/boot/dts/qcom-apq8064.dtsi | 27 +++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) commit bc0d3076635cc6c7b4c715f676ed1526eed0399d Author: Srinivas Kandagatla Date: Fri Apr 10 21:44:40 2015 +0100 ARM: dts: qcom: apq8064 - Move i2c1 pinctrl to apq8064.dtsi I2C1 pinctrl is not really specific to a board, moving to SOC dtsi would avoid redefining this in every board. Signed-off-by: Srinivas Kandagatla Signed-off-by: Kumar Gala arch/arm/boot/dts/qcom-apq8064-ifc6410.dts | 7 ------- arch/arm/boot/dts/qcom-apq8064.dtsi | 7 +++++++ 2 files changed, 7 insertions(+), 7 deletions(-) commit d5d4654e9eee81aafae7a4c0aa393d5f1a0882d1 Author: Pramod Gurav Date: Fri Apr 10 21:44:31 2015 +0100 ARM: dts: qcom: apq8064-ifc6410 - Add DT alias for serial port Define an alias for serial port present on ifc6410 which is used as console. Signed-off-by: Pramod Gurav Signed-off-by: Srinivas Kandagatla [Srinivas Kandagatla: renamed the serial0 label appropriately] Reviewed-by: Bjorn Andersson Signed-off-by: Kumar Gala arch/arm/boot/dts/qcom-apq8064-ifc6410.dts | 4 ++++ arch/arm/boot/dts/qcom-apq8064.dtsi | 3 +-- 2 files changed, 5 insertions(+), 2 deletions(-) commit 08372ce9d780cce9cc4380d3639ec28752d44425 Author: Nicolas Dechesne Date: Fri Apr 10 21:44:23 2015 +0100 ARM: dts: qcom: apq8064 - Add USB OTG support for CM QS-600 This patch adds USB OTG support on USB1 for Compulab QS-600 Board. Signed-off-by: Srinivas Kandagatla [Srinivas Kandagatla: fixed up regulators and status properties] Signed-off-by: Nicolas Dechesne Signed-off-by: Kumar Gala arch/arm/boot/dts/qcom-apq8064-cm-qs600.dts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit 84db78b8ac5db9023ad3b1177a61994fecf40824 Author: Nicolas Dechesne Date: Fri Apr 10 21:44:15 2015 +0100 ARM: dts: qcom: apq8064 - Add usb host support to CM QS-600 This patch adds device tree nodes to support two usb hosts on Compulab QS600 board. Signed-off-by: Srinivas Kandagatla [Srinivas Kandagatla: fixed up regulators and status properties] Signed-off-by: Nicolas Dechesne Signed-off-by: Kumar Gala arch/arm/boot/dts/qcom-apq8064-cm-qs600.dts | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) commit 1a621d3568a8f797f9aa082c2f8007fb6fffe016 Author: Srinivas Kandagatla Date: Fri Apr 10 21:44:05 2015 +0100 ARM: dts: qcom: apq8064-cm-qs600 - Add basic regulators This patch adds basic regulator support for USB and HDMI. Signed-off-by: Srinivas Kandagatla Signed-off-by: Kumar Gala arch/arm/boot/dts/qcom-apq8064-cm-qs600.dts | 61 +++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) commit e629335f6c8d9a6a0784e0a305c3c74d910b6e4d Author: Srinivas Kandagatla Date: Fri Apr 10 21:43:56 2015 +0100 ARM: dts: qcom: apq8064 - Add SATA controller support This patch adds AHCI based SATA controller support to APQ8064. Tested on IFC6410 board. Signed-off-by: Srinivas Kandagatla Signed-off-by: Kumar Gala arch/arm/boot/dts/qcom-apq8064-ifc6410.dts | 9 ++++++++ arch/arm/boot/dts/qcom-apq8064.dtsi | 35 ++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) commit ea986611dca33de16519d3cd84d8e151cfc723cf Author: Srinivas Kandagatla Date: Fri Apr 10 21:43:42 2015 +0100 ARM: dts: qcom: apq8064 - Add USB OTG support This patch adds USB OTG support on USB1 of APQ8064 SOC. Tested on IFC6410 with ethernet gadget. Signed-off-by: Srinivas Kandagatla Signed-off-by: Kumar Gala arch/arm/boot/dts/qcom-apq8064-ifc6410.dts | 17 ++++++++++++++++ arch/arm/boot/dts/qcom-apq8064.dtsi | 32 ++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) commit 223280b10ef13af2def3a5473a7386c4ba4e204f Author: Srinivas Kandagatla Date: Fri Apr 10 21:43:30 2015 +0100 ARM: dts: qcom: apq8064 - Add usb host support. This patch adds device tree nodes to support two usb hosts on APQ8064 SOC. Signed-off-by: Srinivas Kandagatla Signed-off-by: Kumar Gala arch/arm/boot/dts/qcom-apq8064-ifc6410.dts | 22 ++++++++++++++ arch/arm/boot/dts/qcom-apq8064.dtsi | 47 ++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+) commit ad560450d3107940603fdc73ac86b73fe04894cd Author: Srinivas Kandagatla Date: Fri Apr 10 21:43:14 2015 +0100 ARM: dts: qcom: apq8064-ifc6410 - Add basic regulators This patch adds support to basic regulators wiredup on IFC6410 board. All these regulators are tested as part of USB, SATA and HDMI. Signed-off-by: Srinivas Kandagatla Signed-off-by: Kumar Gala arch/arm/boot/dts/qcom-apq8064-ifc6410.dts | 67 ++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) commit dc2f8152535132bcec5ce2d473924ad9251b41e7 Author: Srinivas Kandagatla Date: Fri Apr 10 21:42:44 2015 +0100 ARM: dts: qcom: apq8064 - add RPM regulators support This patch adds rpm node to apq8064 dt as rpm would be used by other devices for regulator support. Signed-off-by: Srinivas Kandagatla Reviewed-by: Bjorn Andersson Signed-off-by: Kumar Gala arch/arm/boot/dts/qcom-apq8064.dtsi | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) commit a190a1ce9a51d3edd52de1b721276d780e0906bb Author: Ivan T. Ivanov Date: Mon Apr 20 10:45:41 2015 +0300 arm64: dts: qcom: Add initial set of PMIC and SoC pins for APQ8016 SBC board Add initial device configuration nodes for APQ8016 and PM8916 GPIO's. Signed-off-by: Ivan T. Ivanov Signed-off-by: Kumar Gala .../arm64/boot/dts/qcom/apq8016-sbc-pmic-pins.dtsi | 30 ++++++++++++++++++++++ arch/arm64/boot/dts/qcom/apq8016-sbc-soc-pins.dtsi | 21 +++++++++++++++ arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi | 2 ++ arch/arm64/boot/dts/qcom/msm8916.dtsi | 2 +- 4 files changed, 54 insertions(+), 1 deletion(-) commit 366655c95330278f2f6bb9cc9cfddfde42a82440 Author: Ivan T. Ivanov Date: Mon Apr 20 10:45:40 2015 +0300 arm64: dts: qcom: Add MSM8916 restart device node Add the restart node so we can reboot the device. Signed-off-by: Ivan T. Ivanov Signed-off-by: Kumar Gala arch/arm64/boot/dts/qcom/msm8916.dtsi | 5 +++++ 1 file changed, 5 insertions(+) commit 729ee9c4ab8a107de37330b9d1778d8754351862 Author: Ivan T. Ivanov Date: Mon Apr 20 10:45:39 2015 +0300 arm64: dts: qcom: Add 8x16 chipset SPMI PMIC's nodes PM9816 has 2 SPMI devices per physical package. Add PMIC configuration nodes including sub-function device nodes and include them in boards, which are using 8x16 based chipset. PM9816 sub-function devices include: * GPIO block, with 4 pins * MPP block, with 4 pins * Volatage ADC (VADC), with multiple inputs * Thermal sensor device, which is using on chip VADC channel report PMIC die temperature. * Power key device, which is responsible for clean system reboot or shutdown * RTC device Signed-off-by: Ivan T. Ivanov Signed-off-by: Kumar Gala arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi | 1 + arch/arm64/boot/dts/qcom/msm8916-mtp.dtsi | 1 + arch/arm64/boot/dts/qcom/pm8916.dtsi | 99 +++++++++++++++++++++++++++++++ 3 files changed, 101 insertions(+) commit 232461ffefa145154831ac5388a80ba26a44141b Author: Ivan T. Ivanov Date: Mon Apr 20 10:45:38 2015 +0300 arm64: dts: qcom: Add SPMI PMIC Arbiter node for MSM8916 Add SPMI PMIC Arbiter configuration nodes for MSM8916. Signed-off-by: Ivan T. Ivanov Signed-off-by: Kumar Gala arch/arm64/boot/dts/qcom/msm8916.dtsi | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit 78c34fd42e3b0ea6336ba3ef77bb329e0b256756 Author: Fang, Yang A Date: Fri Apr 24 17:50:54 2015 -0700 ASoC: rt5645: set platform data base on DMI set platform specific data for intel strago platform Signed-off-by: Fang, Yang A Signed-off-by: Mark Brown sound/soc/codecs/rt5645.c | 47 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) commit 10bb15a9a5ddf148bfc52f0c683b99487f4e2c10 Merge: b787f68 53f9b3b Author: Mark Brown Date: Mon Apr 27 22:00:30 2015 +0100 Merge branch 'fix/rt5645' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-rt5645 commit 4e39acab03de8db6881dfd981407b6d3ff62c62d Author: Peter Chen Date: Fri Mar 27 16:32:18 2015 +0800 usb: Documentation: gadget-testing: fix parameter for capture channel mask Fix the UAC2 parameter capture channel mask Signed-off-by: Peter Chen Signed-off-by: Felipe Balbi Documentation/usb/gadget-testing.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 205845ef70dd01094415bceafbc86a97eb1899a9 Author: Bin Liu Date: Tue Mar 24 15:09:25 2015 -0500 usb: musb: only set test mode once The MUSB test mode register can only be set once, otherwise the result is undefined. This prevents the debugfs testmode entry to set the register more than once which causes test failure. Signed-off-by: Bin Liu Signed-off-by: Felipe Balbi drivers/usb/musb/musb_debugfs.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit d72348fb5ca634583bf3f79996cc4b3ef91d9c3a Author: Johan Hovold Date: Thu Apr 23 16:06:50 2015 +0200 usb: musb: fix inefficient copy of unaligned buffers Make sure only to copy any actual data rather than the whole buffer, when releasing the temporary buffer used for unaligned non-isochronous transfers. Signed-off-by: Johan Hovold Signed-off-by: Felipe Balbi drivers/usb/musb/musb_host.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit 2d9c7f3ca54625f4d740af78f84ee232da3ca937 Author: Kuninori Morimoto Date: Tue Apr 14 04:10:04 2015 +0000 usb: renesas_usbhs: tidyup usbhs_for_each_dfifo macro Current usbhs_for_each_dfifo macro will read out-of-array's memory after last loop operation. It was not good C language operation, and the binary which was compiled by (at least) gcc 4.8.1 is broken. This patch is based on 925403f425a4a9c503f2fc295652647b1eb10d82 (usb: renesas_usbhs: tidyup original usbhsx_for_each_xxx macro) Signed-off-by: Kuninori Morimoto Tested-by: Yoshihiro Shimoda Signed-off-by: Felipe Balbi drivers/usb/renesas_usbhs/fifo.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 87841c887b7b78742d9f8e5da890ed4af21dd978 Author: Wei Yongjun Date: Thu Apr 16 21:07:05 2015 +0800 usb: gadget: uvc: remove unused including Remove including that don't need it. Signed-off-by: Wei Yongjun Acked-by: Laurent Pinchart Signed-off-by: Felipe Balbi drivers/usb/gadget/function/uvc.h | 1 - 1 file changed, 1 deletion(-) commit 7cf225b98a7b899323edeb3ef709da880fa88481 Author: Krzysztof Kozlowski Date: Thu Apr 23 21:24:32 2015 +0900 regulator: Remove unneeded semicolons Remove unneeded semicolons after the switch statement to satisfy coccicheck. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Mark Brown drivers/regulator/of_regulator.c | 2 +- drivers/regulator/s2mps11.c | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) commit f4bf8d770b58862c2af9d17adc2fee05bef8f2c0 Author: Lars-Peter Clausen Date: Mon Apr 27 22:13:25 2015 +0200 ASoC: Move bias level update to the core All drivers have the same line at the end of the set_bias_level callback to update the bias_level state. Move this update into snd_soc_dapm_force_bias_level() and remove them from the drivers. Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/88pm860x-codec.c | 1 - sound/soc/codecs/adau1373.c | 1 - sound/soc/codecs/adau1701.c | 1 - sound/soc/codecs/adau1761.c | 1 - sound/soc/codecs/adau1781.c | 1 - sound/soc/codecs/adau1977.c | 2 -- sound/soc/codecs/adav80x.c | 1 - sound/soc/codecs/ak4535.c | 1 - sound/soc/codecs/ak4641.c | 1 - sound/soc/codecs/ak4642.c | 1 - sound/soc/codecs/ak4671.c | 1 - sound/soc/codecs/alc5623.c | 1 - sound/soc/codecs/alc5632.c | 1 - sound/soc/codecs/cq93vc.c | 1 - sound/soc/codecs/cs4265.c | 1 - sound/soc/codecs/cs42l52.c | 1 - sound/soc/codecs/cs42l56.c | 1 - sound/soc/codecs/cs42l73.c | 1 - sound/soc/codecs/cx20442.c | 2 -- sound/soc/codecs/da7213.c | 1 - sound/soc/codecs/da732x.c | 2 -- sound/soc/codecs/da9055.c | 1 - sound/soc/codecs/es8328.c | 1 - sound/soc/codecs/isabelle.c | 2 -- sound/soc/codecs/jz4740.c | 2 -- sound/soc/codecs/lm4857.c | 2 -- sound/soc/codecs/lm49453.c | 2 -- sound/soc/codecs/max98088.c | 1 - sound/soc/codecs/max98090.c | 1 - sound/soc/codecs/max98095.c | 1 - sound/soc/codecs/max9850.c | 1 - sound/soc/codecs/ml26124.c | 1 - sound/soc/codecs/pcm512x.c | 2 -- sound/soc/codecs/rt286.c | 1 - sound/soc/codecs/rt5631.c | 1 - sound/soc/codecs/rt5640.c | 1 - sound/soc/codecs/rt5645.c | 1 - sound/soc/codecs/rt5651.c | 1 - sound/soc/codecs/rt5670.c | 1 - sound/soc/codecs/rt5677.c | 1 - sound/soc/codecs/sgtl5000.c | 1 - sound/soc/codecs/sn95031.c | 1 - sound/soc/codecs/ssm2518.c | 2 -- sound/soc/codecs/ssm2602.c | 1 - sound/soc/codecs/ssm4567.c | 7 +------ sound/soc/codecs/sta32x.c | 1 - sound/soc/codecs/sta350.c | 1 - sound/soc/codecs/sta529.c | 6 ------ sound/soc/codecs/stac9766.c | 1 - sound/soc/codecs/tlv320aic23.c | 1 - sound/soc/codecs/tlv320aic31xx.c | 1 - sound/soc/codecs/tlv320aic32x4.c | 1 - sound/soc/codecs/tlv320aic3x.c | 1 - sound/soc/codecs/tlv320dac33.c | 1 - sound/soc/codecs/twl4030.c | 1 - sound/soc/codecs/twl6040.c | 2 -- sound/soc/codecs/uda134x.c | 1 - sound/soc/codecs/uda1380.c | 1 - sound/soc/codecs/wm0010.c | 2 -- sound/soc/codecs/wm1250-ev1.c | 2 -- sound/soc/codecs/wm8350.c | 1 - sound/soc/codecs/wm8400.c | 1 - sound/soc/codecs/wm8510.c | 1 - sound/soc/codecs/wm8523.c | 1 - sound/soc/codecs/wm8580.c | 1 - sound/soc/codecs/wm8711.c | 1 - sound/soc/codecs/wm8728.c | 1 - sound/soc/codecs/wm8731.c | 1 - sound/soc/codecs/wm8737.c | 1 - sound/soc/codecs/wm8750.c | 1 - sound/soc/codecs/wm8753.c | 1 - sound/soc/codecs/wm8770.c | 1 - sound/soc/codecs/wm8776.c | 1 - sound/soc/codecs/wm8900.c | 1 - sound/soc/codecs/wm8903.c | 2 -- sound/soc/codecs/wm8904.c | 1 - sound/soc/codecs/wm8940.c | 2 -- sound/soc/codecs/wm8955.c | 1 - sound/soc/codecs/wm8960.c | 4 ---- sound/soc/codecs/wm8961.c | 2 -- sound/soc/codecs/wm8962.c | 1 - sound/soc/codecs/wm8971.c | 1 - sound/soc/codecs/wm8974.c | 1 - sound/soc/codecs/wm8978.c | 1 - sound/soc/codecs/wm8983.c | 1 - sound/soc/codecs/wm8985.c | 1 - sound/soc/codecs/wm8988.c | 1 - sound/soc/codecs/wm8990.c | 1 - sound/soc/codecs/wm8991.c | 1 - sound/soc/codecs/wm8993.c | 2 -- sound/soc/codecs/wm8994.c | 2 -- sound/soc/codecs/wm8995.c | 1 - sound/soc/codecs/wm8996.c | 2 -- sound/soc/codecs/wm9081.c | 2 -- sound/soc/codecs/wm9090.c | 2 -- sound/soc/codecs/wm9712.c | 1 - sound/soc/codecs/wm9713.c | 1 - sound/soc/soc-dapm.c | 3 +++ 98 files changed, 4 insertions(+), 130 deletions(-) commit bd1204cb51f15d202f95222e873a94ed5d07b784 Author: Lars-Peter Clausen Date: Mon Apr 27 22:13:24 2015 +0200 ASoC: Route all bias level updates through the core Use the new snd_soc_codec_force_bias_level() helper function to invoke the bias_level callback of a driver instead of calling the callback by hand. Currently the effect of this is the same, but having all bias level updates go through a central place will allow us to move more of the bias level management into the DAPM core. Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/max98095.c | 4 ++-- sound/soc/codecs/rt5640.c | 4 ++-- sound/soc/codecs/rt5645.c | 2 +- sound/soc/codecs/rt5651.c | 2 +- sound/soc/codecs/rt5677.c | 2 +- sound/soc/codecs/sta32x.c | 2 +- sound/soc/codecs/sta350.c | 2 +- sound/soc/codecs/twl6040.c | 2 +- sound/soc/codecs/wm8731.c | 2 +- sound/soc/codecs/wm8737.c | 2 +- sound/soc/codecs/wm8900.c | 6 +++--- sound/soc/codecs/wm8940.c | 2 +- sound/soc/codecs/wm8955.c | 2 +- sound/soc/codecs/wm8978.c | 4 ++-- sound/soc/codecs/wm8990.c | 2 +- sound/soc/codecs/wm8993.c | 4 ++-- sound/soc/codecs/wm8994.c | 2 +- sound/soc/codecs/wm9712.c | 2 +- sound/soc/codecs/wm9713.c | 2 +- 19 files changed, 25 insertions(+), 25 deletions(-) commit fa880775ab0d5a8d540972f7b6800fad1af16b75 Author: Lars-Peter Clausen Date: Mon Apr 27 22:13:23 2015 +0200 ASoC: Add helper functions bias level management Currently drivers are responsible for managing the bias_level field of their DAPM context. The DAPM state itself is managed by the DAPM core though and the core has certain expectations on how and when the bias_level field should be updated. If drivers don't adhere to these undefined behavior can occur. This patch adds a few helper functions for manipulating the DAPM context state, each function with a description on when it should be used and what its effects are. This will also help us to move more of the bias_level management from drivers to the DAPM core. For convenience also add snd_soc_codec_* wrappers around these helpers. Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown include/sound/soc-dapm.h | 34 ++++++++++++++++++++++++++++++++++ include/sound/soc.h | 40 ++++++++++++++++++++++++++++++++++++++++ sound/soc/soc-dapm.c | 35 +++++++++++++++++++++++++++++++---- 3 files changed, 105 insertions(+), 4 deletions(-) commit 39ed68c8cd3aff417603a95d0594308598b9f469 Author: Lars-Peter Clausen Date: Mon Apr 27 22:13:22 2015 +0200 ASoC: Add helper function getting CODEC's DAPM context The DAPM context in the snd_soc_codec struct is redundant and scheduled to be replaced by the DAPM context in the snd_soc_component struct. This patch introduces a new helper function snd_soc_codec_get_dapm() which should be used for getting the DAPM context for a CODEC rather then directly accessing the dapm field. Once there are no more direct users of the dapm field left it is possible to transparently switch all drivers to the component DAPM context by updating snd_soc_codec_get_dapm() function. Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown include/sound/soc.h | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) commit 2dc0f16b83b43fd1f86a2358d46f46488230c6c8 Author: Kuninori Morimoto Date: Tue Apr 21 07:02:34 2015 +0000 ASoC: soc.h: tidyup struct snd_soc_dai_link definition order Current struct snd_soc_dai_link has many members, but definition order was random. Especially, bool / bit field are defined randomly. This patch tidyups these definition order to calculate data alignment easy. Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown include/sound/soc.h | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) commit da620d722a7b7b16bf8571150acd7fd9e155809f Author: Kuninori Morimoto Date: Fri Apr 10 08:50:50 2015 +0000 ASoC: rsnd: care snd_kcontrol's index rsnd might be used in multi-codec sound card. Then, same name kcontrol will be registered many times, and it will be error. This patch fixes this issue by using .index Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/core.c | 2 ++ 1 file changed, 2 insertions(+) commit 919567d914b3c134e60c01db72a03a0adc5f41b9 Author: Kuninori Morimoto Date: Fri Apr 10 08:50:30 2015 +0000 ASoC: rsnd: make sure SSI parent/child uses same number of sound channel. SSI parent/child need to use same number of sound data channel if these are sharing clock/ws pin. this patch makes it sure. Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/ssi.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) commit 8c5c79a1cd51ce1b4fec8bbaecd17d599478bd27 Author: Kuninori Morimoto Date: Fri Apr 10 08:50:12 2015 +0000 ASoC: rsnd: tidyup SSI parent related function/macro names Current rsnd driver is using SSI parent related function/macro as "clock" related. but it is not only clock related. tidyup function/macro naming. Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/ssi.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) commit e9c390df671fadc829550935ffb6b23549f26ded Author: Kuninori Morimoto Date: Fri Apr 10 08:49:49 2015 +0000 ASoC: rsnd: make sure it uses lock when it calls rsnd_dai_call rsnd_dai_call() should be called under rsnd_lock Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/core.c | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) commit eb2535f542b4279b42518d6a312c6f7290434e55 Author: Kuninori Morimoto Date: Fri Apr 10 08:49:25 2015 +0000 ASoC: rsnd: add rsnd_dai_to_priv() macro Using standardized function/macro name is useful in driver Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/core.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit f08654a2b582b4e48e8a4a3d2c5c98832adc4387 Author: Qipan Li Date: Mon Apr 27 09:22:28 2015 +0000 spi: sirf: replace BUG condition by error code for unsupported transfer return error for unsupported bits-per-word format, BUG() is not right for this scenerios as we are not an ASSERT but an error handler. Signed-off-by: Qipan Li Signed-off-by: Barry Song Signed-off-by: Mark Brown drivers/spi/spi-sirf.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 77f5f3e9c86dc4604366a567819cc3ec4bdb4400 Author: Krzysztof Kozlowski Date: Mon Apr 27 21:52:10 2015 +0900 regmap: Constify irq_domain_ops The irq_domain_ops are not modified by the driver and the irqdomain core code accepts pointer to a const data. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Mark Brown drivers/base/regmap/regmap-irq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 12e180a27f3e066a4ed4a446d428fd117f168beb Author: Jie Yang Date: Mon Apr 27 21:21:02 2015 +0800 ALSA: Docs: Add documentation for Jack kcontrols Add documentation describing Jack kcontrols and how to use them with HD-Audio and ASoC. Signed-off-by: Jie Yang Signed-off-by: Takashi Iwai Documentation/sound/alsa/Jack-Controls.txt | 43 ++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) commit 807845e3641d3dc4c41ec84c5e576250c7218abf Author: Jie Yang Date: Mon Apr 27 21:21:01 2015 +0800 ALSA: jack: remove exporting ctljack functions snd_kctl_jack_new() and snd_kctl_jack_report() are internal only now so make them static. Signed-off-by: Jie Yang Signed-off-by: Takashi Iwai sound/core/ctljack.c | 2 -- 1 file changed, 2 deletions(-) commit f63e8581e277cc0561ed9f93878c674c1a36712a Author: Jie Yang Date: Mon Apr 27 21:21:00 2015 +0800 ASoC: jack: create kctls according to jack pins info Jack kctls are now created according to the pin info. Signed-off-by: Jie Yang Acked-by: Mark Brown Signed-off-by: Takashi Iwai sound/soc/soc-jack.c | 1 + 1 file changed, 1 insertion(+) commit 2ba2dfa1fcc7ce5d2bf1716ec3d32b6fa0882e68 Author: Jie Yang Date: Mon Apr 27 21:20:59 2015 +0800 ALSA: hda - Update to use the new jack kctls method Jack snd_kcontrols can now be created during snd_jack_new() or by later calling snd_jack_add_new_kctls(). This patch creates the jacks during the initialisation stage for both phantom and non phantom jacks. Signed-off-by: Jie Yang Signed-off-by: Takashi Iwai include/sound/control.h | 2 +- sound/core/ctljack.c | 4 +-- sound/core/jack.c | 2 +- sound/pci/hda/hda_jack.c | 90 +++++++++++++--------------------------------- sound/pci/hda/hda_jack.h | 5 +-- sound/pci/hda/patch_hdmi.c | 2 +- 6 files changed, 31 insertions(+), 74 deletions(-) commit 4e3f0dc65883cac95807549b2f7a3ac183686bcb Author: Jie Yang Date: Mon Apr 27 21:20:58 2015 +0800 ALSA: jack: extend snd_jack_new to support phantom jack Dont create input devices for phantom jacks. Here, we extend snd_jack_new() to support phantom jack creating: pass in a bool param for [non-]phantom flag, and a bool param initial_jack to indicate whether we need to create a kctl at this stage. We can also add a kctl to the jack after its created meaning we can now integrate the HDA and ASoC jacks. Signed-off-by: Jie Yang Signed-off-by: Takashi Iwai include/sound/jack.h | 4 ++-- sound/core/jack.c | 40 ++++++++++++++++++++++++++++------------ sound/pci/hda/hda_jack.c | 2 +- sound/pci/oxygen/xonar_wm87x6.c | 2 +- sound/soc/soc-jack.c | 2 +- 5 files changed, 33 insertions(+), 17 deletions(-) commit b8dd086674cfbfc246a5b9d7d7ff37f62350a878 Author: Jie Yang Date: Mon Apr 27 21:20:57 2015 +0800 ALSA: Jack: handle jack embedded kcontrol creating within ctljack This patch adds a static method get_available_index() to allocate the index of new jack kcontrols and also adds jack_kctl_name_gen() which is used to ensure compatibility with jack naming by removing " Jack" from some incorrectly passed names. Signed-off-by: Jie Yang Signed-off-by: Takashi Iwai include/sound/control.h | 2 +- sound/core/ctljack.c | 37 ++++++++++++++++++++++++++++++++++--- sound/core/jack.c | 2 +- sound/pci/hda/hda_jack.c | 2 +- 4 files changed, 37 insertions(+), 6 deletions(-) commit 9058cbe1eed29381f84dec9f96980f5a4ea1025f Author: Jie Yang Date: Mon Apr 27 21:20:56 2015 +0800 ALSA: jack: implement kctl creating for jack devices Currently the ALSA jack core registers only input devices for each jack registered. These jack input devices are not readable by userspace devices that run as non root. This patch series will implement kctls inside the core jack part, including kctls creating, status changing report, for both HD-Audio and ASoC jack. This allows non root userspace to read jack status and act on it. This patch adds a new API called snd_jack_add_new_kctl(), which will create a kcontrol, add it to the card, and also attach it to the jack kctl list. This patch also initialises the jack kctl list after jack is newed, and reports kctl status when jack insertion/removal events occur. snd_jack_new() is updated in the following patches to also support creating phantom jacks and jack kcontrols. We then remove these duplicated features from HDA jack and have jack kctls handled by core throughout HDA and ASoC. Signed-off-by: Liam Girdwood Modified-by: Jie Yang Signed-off-by: Jie Yang Reveiwed-by: Mark Brown Signed-off-by: Takashi Iwai include/sound/jack.h | 9 ++++- sound/core/Kconfig | 3 -- sound/core/Makefile | 3 +- sound/core/jack.c | 93 +++++++++++++++++++++++++++++++++++++++++++++++++++ sound/pci/hda/Kconfig | 2 +- 5 files changed, 103 insertions(+), 7 deletions(-) commit 6fe9e7c26a97105645fd24f264f1b94e21aade3e Author: Jiri Kosina Date: Fri Mar 27 10:05:00 2015 +0100 GHES: Make NMI handler have a single reader Since GHES sources are global, we theoretically need only a single CPU reading them per NMI instead of a thundering herd of CPUs waiting on a spinlock in NMI context for no reason at all. Do that. Signed-off-by: Jiri Kosina Signed-off-by: Borislav Petkov drivers/acpi/apei/ghes.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) commit 2383844d4850888cfdf6d202563d2ddb4125a4e9 Author: Borislav Petkov Date: Wed Mar 18 10:12:35 2015 +0100 GHES: Elliminate double-loop in the NMI handler There's no real need to iterate twice over the HW error sources in the NMI handler. With the previous cleanups, elliminating the second loop is almost trivial. Signed-off-by: Borislav Petkov drivers/acpi/apei/ghes.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) commit 6169ddf846c528509e66a0fe7804393aa330a970 Author: Borislav Petkov Date: Wed Mar 18 09:55:21 2015 +0100 GHES: Panic right after detection The moment we log an error of panic severity, there's no need to noodle through the ghes_nmi list anymore. So panic instead right then and there. Signed-off-by: Borislav Petkov drivers/acpi/apei/ghes.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) commit e10be03f603d521d5c8ac0bb0f48e5723ce19d58 Author: Borislav Petkov Date: Wed Mar 18 09:52:39 2015 +0100 GHES: Carve out the panic functionality ... into another function for more clarity. No functionality change. Signed-off-by: Borislav Petkov drivers/acpi/apei/ghes.c | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) commit 074c57a25fa2c83a264f3fdbb99a9fef0229884d Author: Pavel Machek Date: Thu Apr 9 04:42:38 2015 -0300 [media] media: i2c/adp1653: Devicetree support for adp1653 Add device tree support for adp1653 flash LED driver. Signed-off-by: Pavel Machek Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/adp1653.c | 100 +++++++++++++++++++++++++++++++++++++++----- include/media/adp1653.h | 8 ++-- 2 files changed, 95 insertions(+), 13 deletions(-) commit 115684961a335a1c97074158e8f789118ac8b00d Author: Borislav Petkov Date: Wed Mar 18 09:41:35 2015 +0100 GHES: Carve out error queueing in a separate function Make the handler more readable. No functionality change. Signed-off-by: Borislav Petkov drivers/acpi/apei/ghes.c | 51 +++++++++++++++++++++++++++--------------------- 1 file changed, 29 insertions(+), 22 deletions(-) commit b2dbde542da291adc4ae3bd86686229a23a0b118 Author: Pavel Machek Date: Sat Apr 4 04:43:37 2015 -0300 [media] media: i2c/adp1653: Documentation for devicetree support for adp1653 Documentation for adp1653 bindings. Signed-off-by: Pavel Machek Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab .../devicetree/bindings/media/i2c/adp1653.txt | 37 ++++++++++++++++++++++ 1 file changed, 37 insertions(+) commit cb0c9e1f6777287e81d9b48c264d980bf5014b48 Author: Sakari Ailus Date: Sun Mar 22 17:58:45 2015 -0300 [media] smiapp: Use v4l2_of_alloc_parse_endpoint() Instead of parsing the link-frequencies property in the driver, let v4l2_of_alloc_parse_endpoint() do it. Signed-off-by: Sakari Ailus Acked-by: Laurent Pinchart Reviewed-by: Sylwester Nawrocki Reviewed-by: Lad, Prabhakar Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/smiapp/smiapp-core.c | 38 ++++++++++++++++------------------ 1 file changed, 18 insertions(+), 20 deletions(-) commit 698da18e082c8fdfa675bee6338e3f9864d5d7ee Author: Sakari Ailus Date: Sun Mar 22 17:48:26 2015 -0300 [media] v4l: of: Parse variable length properties --- link-frequencies The link-frequencies property is a variable length array of link frequencies in an endpoint. The array is needed by an increasing number of drivers, so it makes sense to add it to struct v4l2_of_endpoint. However, the length of the array is variable and the size of struct v4l2_of_endpoint is fixed since it is allocated by the caller. The options here are 1. to define a fixed maximum limit of link frequencies that has to be the global maximum of all boards. This is seen as problematic since the maximum could be largish, and everyone hitting the problem would need to submit a patch to fix it, or 2. parse the property in every driver. This doesn't sound appealing as two of the three implementations submitted to linux-media were wrong, and one of them was even merged before this was noticed, or 3. change the interface so that allocating and releasing memory according to the size of the array is possible. This is what the patch does. v4l2_of_alloc_parse_endpoint() is just like v4l2_of_parse_endpoint(), but it will allocate the memory resources needed to store struct v4l2_of_endpoint and the additional arrays pointed to by this struct. A corresponding release function v4l2_of_free_endpoint() is provided to release the memory allocated by v4l2_of_alloc_parse_endpoint(). In addition to this, the link-frequencies property is parsed as well, and the result is stored to struct v4l2_of_endpoint field link_frequencies. Signed-off-by: Sakari Ailus Acked-by: Laurent Pinchart Acked-by: Sylwester Nawrocki Tested-by: Lad, Prabhakar Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/v4l2-of.c | 87 +++++++++++++++++++++++++++++++++++++++ include/media/v4l2-of.h | 17 ++++++++ 2 files changed, 104 insertions(+) commit 5d0fe6362e7d416002ea4ee61bfe3ae6f505e9cc Merge: a750b12 145367b Author: Mark Brown Date: Mon Apr 27 19:47:37 2015 +0100 Merge branch 'fix/bcm2835-code' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi into spi-bcm2835 Conflicts: drivers/spi/spi-bcm2835.c commit 161aadaec11cd0f610950da56f82bd1778be4156 Author: Sakari Ailus Date: Sun Mar 22 17:42:31 2015 -0300 [media] v4l: of: Instead of zeroing bus_type and bus field separately, unify this Zero the entire struct starting from bus_type. As more fields are added, no changes will be needed in the function to reset their value explicitly. Signed-off-by: Sakari Ailus Acked-by: Laurent Pinchart Acked-by: Sylwester Nawrocki Acked-by: Lad, Prabhakar Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/v4l2-of.c | 5 +++-- include/media/v4l2-of.h | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) commit 2b5166efda83259fe1d98424a7875293718ec22e Author: Sakari Ailus Date: Sun Mar 22 17:38:44 2015 -0300 [media] v4l: of: Remove the head field in struct v4l2_of_endpoint The field is unused. Remove it. Signed-off-by: Sakari Ailus Acked-by: Sylwester Nawrocki Signed-off-by: Mauro Carvalho Chehab include/media/v4l2-of.h | 2 -- 1 file changed, 2 deletions(-) commit acde50a7bf1fd6ae0baa4402f0a02c4b1bd4c990 Author: Lars-Peter Clausen Date: Mon Apr 27 12:44:25 2015 +0200 ASoC: dmaengine_pcm: Make FLAG_NO_RESIDUE internal Whether residue can be reported or not is not a property of the audio controller but of the DMA controller. The FLAG_NO_RESIDUE was initially added when the DMAengine framework had no support for describing the residue reporting capabilities of the controller. Support for this was added quite a while ago and recently the DMAengine framework started to complain if a driver does not describe its capabilities and a lot of patches have been merged that add support for this where it was missing. So it should be safe to assume that driver on actively used platforms properly implement the DMA capabilities API. This patch makes the FLAG_NO_RESIDUE internal and no longer allows audio controller drivers to manually set the flag. If a DMA driver against expectations does not support reporting its capabilities for now the generic DMAengine PCM driver will now emit a warning and simply assume that residue reporting is not supported. In the future this might be changed to aborting with an error. Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown include/sound/dmaengine_pcm.h | 5 ----- sound/soc/atmel/atmel-pcm-dma.c | 3 +-- sound/soc/cirrus/ep93xx-pcm.c | 1 - sound/soc/fsl/fsl_sai.c | 3 +-- sound/soc/soc-generic-dmaengine-pcm.c | 25 ++++++++++++++----------- sound/soc/ux500/ux500_pcm.c | 1 - 6 files changed, 16 insertions(+), 22 deletions(-) commit dcd9ec6ae3667d3bb92cbb9b59c7f4864316448d Author: Laxman Dewangan Date: Thu Apr 23 16:10:22 2015 +0530 regulator: max8973: set startup time for rail based on BIAS control In MAX8973, BIAS enable control bit is used for changing the startup time for voltage output. The startup delay is 240us (typ) when the BIASEN bit is set to 0. The startup delay is reduced to 20us (typ) when the BIASEN bit is set to 1. Pass the enable_time through regulator descriptor based on this flag. Signed-off-by: Laxman Dewangan Signed-off-by: Mark Brown drivers/regulator/max8973-regulator.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit ec03c08dd14d832f1456527c9da70ed014268b4b Author: Krzysztof Kozlowski Date: Sat Apr 18 20:27:18 2015 +0900 regulator: max77843: Reduce duplication of regulator_desc initializers Replace duplicated SAFEOUT regulators initializers in array of struct 'regulator_desc' arrays with macro. Generated object is the same but SAFEOUT is described only once. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Mark Brown drivers/regulator/max77843.c | 48 +++++++++++++++++--------------------------- 1 file changed, 18 insertions(+), 30 deletions(-) commit cab344d3417b5fa56c0f92303bac60e48032b026 Author: Krzysztof Kozlowski Date: Sat Apr 18 20:27:17 2015 +0900 regulator: max14577: Reduce duplication of regulator_desc initializers Replace duplicated initializers in arrays of struct 'regulator_desc' with macro. Generated object is the same but each type of regulator is described only once. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Mark Brown drivers/regulator/max14577.c | 128 ++++++++++++++++--------------------------- 1 file changed, 48 insertions(+), 80 deletions(-) commit cabd2ea21636ba7268232b8e2102671f47d2923f Author: Yunzhi Li Date: Sun Apr 26 17:41:38 2015 +0800 ARM: dts: rockchip: add properties for dwc2 usb otg controller Add properties for dwc2 usb device controller according to Documentation/devicetree/bindings/usb/dwc2.txt Signed-off-by: Yunzhi Li Signed-off-by: Heiko Stuebner arch/arm/boot/dts/rk3288.dtsi | 6 ++++++ 1 file changed, 6 insertions(+) commit b05a79280b346eb24ddb73b39988398015291075 Author: Frederic Weisbecker Date: Mon Apr 27 17:58:39 2015 +0800 workqueue: Create low-level unbound workqueues cpumask Create a cpumask that limits the affinity of all unbound workqueues. This cpumask is controlled through a file at the root of the workqueue sysfs directory. It works on a lower-level than the per WQ_SYSFS workqueues cpumask files such that the effective cpumask applied for a given unbound workqueue is the intersection of /sys/devices/virtual/workqueue/$WORKQUEUE/cpumask and the new /sys/devices/virtual/workqueue/cpumask file. This patch implements the basic infrastructure and the read interface. wq_unbound_cpumask is initially set to cpu_possible_mask. Cc: Christoph Lameter Cc: Kevin Hilman Cc: Lai Jiangshan Cc: Mike Galbraith Cc: Paul E. McKenney Cc: Tejun Heo Cc: Viresh Kumar Signed-off-by: Frederic Weisbecker Signed-off-by: Lai Jiangshan Signed-off-by: Tejun Heo kernel/workqueue.c | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) commit 2d5f0764b5264d2954ba6e3deb04f4f5de8e4476 Author: Lai Jiangshan Date: Mon Apr 27 17:58:38 2015 +0800 workqueue: split apply_workqueue_attrs() into 3 stages Current apply_workqueue_attrs() includes pwqs-allocation and pwqs-installation, so when we batch multiple apply_workqueue_attrs()s as a transaction, we can't ensure the transaction must succeed or fail as a complete unit. To solve this, we split apply_workqueue_attrs() into three stages. The first stage does the preparation: allocation memory, pwqs. The second stage does the attrs-installaion and pwqs-installation. The third stage frees the allocated memory and (old or unused) pwqs. As the result, batching multiple apply_workqueue_attrs()s can succeed or fail as a complete unit: 1) batch do all the first stage for all the workqueues 2) only commit all when all the above succeed. This patch is a preparation for the next patch ("Allow modifying low level unbound workqueue cpumask") which will do a multiple apply_workqueue_attrs(). The patch doesn't have functionality changed except two minor adjustment: 1) free_unbound_pwq() for the error path is removed, we use the heavier version put_pwq_unlocked() instead since the error path is rare. this adjustment simplifies the code. 2) the memory-allocation is also moved into wq_pool_mutex. this is needed to avoid to do the further splitting. tj: minor updates to comments. Suggested-by: Tejun Heo Cc: Christoph Lameter Cc: Kevin Hilman Cc: Lai Jiangshan Cc: Mike Galbraith Cc: Paul E. McKenney Cc: Tejun Heo Cc: Viresh Kumar Cc: Frederic Weisbecker Signed-off-by: Lai Jiangshan Signed-off-by: Tejun Heo kernel/workqueue.c | 199 +++++++++++++++++++++++++++++++---------------------- 1 file changed, 115 insertions(+), 84 deletions(-) commit a750b124cfd27bae1a12df22318db5a2083dfb12 Author: Martin Sperl Date: Wed Apr 22 07:33:03 2015 +0000 spi: bcm2835: fallback to interrupt for polling timeouts exceeding 2 jiffies The polling mode of the driver is designed for transfers that run less than 30us - it will only execute under those circumstances. So it should run comfortably without getting interrupted by the scheduler. But there are situations where the raspberry pi is so overloaded that it can take up to 80 jiffies until the polling thread gets rescheduled - this has been observed especially under heavy IO situations. In such a situation we now fall back to the interrupt handler and log the situation at debug level. Signed-off-by: Martin Sperl Signed-off-by: Mark Brown drivers/spi/spi-bcm2835.c | 87 +++++++++++++++++++++++++++-------------------- 1 file changed, 50 insertions(+), 37 deletions(-) commit 76ee0235be5a24b34a63961189c8bafa9bcf2da3 Author: Martin Sperl Date: Thu Apr 16 07:51:26 2015 +0000 spi: bcm2835: change timeout of polling driver to 1s The way that the timeout code is written in the polling function the timeout does also trigger when interrupted or rescheduled while in the polling loop. This patch changes the timeout from effectively 20ms (=2 jiffies) to 1 second and removes the time that the transfer really takes out of the computation, as - per design - this is <30us and the jiffie resolution is 10ms so that does not make any difference what so ever. Signed-off-by: Martin Sperl Signed-off-by: Mark Brown drivers/spi/spi-bcm2835.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 83f0f398a0a64a6e94dccb5a812c67648cedef29 Author: Alban Bedel Date: Fri Apr 24 16:19:24 2015 +0200 spi: spi-ath79: Set the initial state of CS0 The internal chip select CS0 wasn't initialized properly to work with CS HIGH chips. Signed-off-by: Alban Bedel Signed-off-by: Mark Brown drivers/spi/spi-ath79.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 3e19acdc5bdd9709bfd89cc14cbcd1cb90b44965 Author: Alban Bedel Date: Fri Apr 24 16:19:23 2015 +0200 spi: spi-ath79: Use clk_prepare_enable and clk_disable_unprepare Clocks should be prepared and unprepared, fix this by using clk_prepare_enable() and clk_disable_unprepare() instead of clk_enable() and clk_disable(). Signed-off-by: Alban Bedel Signed-off-by: Mark Brown drivers/spi/spi-ath79.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 85f62476fc44e6915787f832371400cbdd7d8bff Author: Alban Bedel Date: Fri Apr 24 16:19:22 2015 +0200 spi: spi-ath79: Add device tree support Set the OF node of the spi controller and use the generic GPIO based chip select instead of the custom controller data. As the controller data isn't used by any board just drop it. Signed-off-by: Alban Bedel Signed-off-by: Mark Brown .../mips/include/asm/mach-ath79/ath79_spi_platform.h | 4 ---- drivers/spi/spi-ath79.c | 20 +++++++++++--------- 2 files changed, 11 insertions(+), 13 deletions(-) commit 76426aacabc7bb0bafdcad48f5facabe83ebc451 Author: Alban Bedel Date: Fri Apr 24 16:19:21 2015 +0200 spi: spi-ath79: add binding documentation for the AR7100 SPI controller Signed-off-by: Alban Bedel Signed-off-by: Mark Brown .../devicetree/bindings/spi/spi-ath79.txt | 24 ++++++++++++++++++++++ 1 file changed, 24 insertions(+) commit 044d9601a9dd11ff0e3173ebe34fd30434bd0beb Author: Fang, Yang A Date: Tue Apr 21 16:36:00 2015 -0700 ASoC: Intel: Add support rt5650 in sst driver Added entry in sst driver to support rt5650 codec for intel Braswell platform. Signed-off-by: Fang, Yang A Signed-off-by: Mark Brown sound/soc/intel/atom/sst/sst_acpi.c | 2 ++ 1 file changed, 2 insertions(+) commit 8c359a9f36796603240863c766a9704e2ad9aa4c Author: Vinod Koul Date: Fri Apr 17 22:53:33 2015 +0530 ASoC: intel - use SNDRV_CTL_ELEM_ID_NAME_MAXLEN we have defined SNDRV_CTL_ELEM_ID_NAME_MAXLEN as size of name array so use this define instead of numeric value Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/atom/sst-atom-controls.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3228723b0ce0ef6ef6d3f59f282f061430691ab9 Author: Jin Yao Date: Mon Apr 13 14:20:54 2015 +0800 ASoC: Intel: Remove invalid kfree of devm allocated data kbuild robot reports following warning: "sound/soc/intel/haswell/sst-haswell-ipc.c:2204:1-6: WARNING: invalid free of devm_ allocated data" As julia explains to me, the memory allocated with devm_kalloc is freed automatically on failure of a probe function. So this kfree should be removed otherwise the double free will be got in error handler path. Signed-off-by: Jin Yao Signed-off-by: Mark Brown sound/soc/intel/haswell/sst-haswell-ipc.c | 1 - 1 file changed, 1 deletion(-) commit f1a77547c21fe942e95ebaadbc9200f26d138574 Merge: 30e5f00 8ab418d Author: Takashi Iwai Date: Mon Apr 27 16:42:45 2015 +0200 Merge branch 'for-4.2' into for-next commit 1f39d9397f8a27becd2b72009865610a71c64b0f Author: Alexander Stein Date: Thu Apr 16 14:51:57 2015 +0200 ASoC: sgtl5000: Calculate Lineout Channel Output Level Currently LO_VOL_* stays at it's default (0x4 each) but this should be calculated after setting VAG_VAL and LO_VAGCNTRL. LO_VOL_* = 40 * log10(VAG_VAL / LO_VAGCNTRL) + 15 To avoid the log10 operation a table for all valid register values is precalculated which contains the corresponding value (VAG_VAL * 100 / LO_VAGCNTRL). Signed-off-by: Alexander Stein Signed-off-by: Mark Brown sound/soc/codecs/sgtl5000.c | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) commit d2b7c2aaf7b565532c7d9937519b199fbca4a779 Author: Alexander Stein Date: Thu Apr 16 14:51:56 2015 +0200 ASoC: sgtl5000: Use specific variable for lo_vag This is a preparation for calculating lo_vol which needs both vag and lo_vag. Signed-off-by: Alexander Stein Signed-off-by: Mark Brown sound/soc/codecs/sgtl5000.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) commit 166070601f6e5d47bd7d3aad9d770a2498d20207 Author: Wei Yongjun Date: Thu Apr 16 21:07:45 2015 +0800 ASoC: cs35l32: Remove unused including Remove including that don't need it. Signed-off-by: Wei Yongjun Acked-by: Brian Austin Signed-off-by: Mark Brown sound/soc/codecs/cs35l32.c | 1 - 1 file changed, 1 deletion(-) commit a1677e3902a9a8a060728331063dd6ee999764fa Author: Lars-Peter Clausen Date: Sat Apr 11 11:18:43 2015 +0200 ASoC: at91sam9g20ek: Automatically disconnect non-connected pins According to the schematics the both LHPOUT and RHPOUT are connected to the external connector. RHPOUT is missing from the DAPM routes, but otherwise they seem to be complete. This patch adds the missing route and then sets the fully_routed flag for the card. This allows to remove all the manual calls to snd_soc_dapm_nc_pin(). Signed-off-by: Lars-Peter Clausen Acked-by: Nicolas Ferre Signed-off-by: Mark Brown sound/soc/atmel/sam9g20_wm8731.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) commit 26c22a1922b9a5141f798e273e3e19b04a7a85de Author: Charles Keepax Date: Mon Apr 20 13:52:45 2015 +0100 ASoC: wm_adsp: Add support for DSP control flags The DSP control information contains various hints about the usage of the control use these when handling the control. Signed-off-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm_adsp.c | 43 +++++++++++++++++++++++++++++++++++-------- sound/soc/codecs/wmfw.h | 5 +++++ 2 files changed, 40 insertions(+), 8 deletions(-) commit 8299ee8123a7ef708811c3ff09eae0cf0874b651 Author: Charles Keepax Date: Mon Apr 20 13:52:44 2015 +0100 ASoC: wm_adsp: Use __leXX for little endian data Using uXX for little endian data, was triggering some warnings through sparse: sound/soc/codecs/wm_adsp.c:716:26: sparse: cast to restricted __le16 sound/soc/codecs/wm_adsp.c:736:23: sparse: cast to restricted __le16 sound/soc/codecs/wm_adsp.c:739:23: sparse: cast to restricted __le32 Correct this by changing the casts to use __leXX instead of uXX. Reported-by: Fengguang Wu Signed-off-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm_adsp.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit c61e59fe4d3432dd8e63b9613895150eb5054d5e Author: Charles Keepax Date: Mon Apr 13 13:28:05 2015 +0100 ASoC: wm_adsp: Warn that firmware file format 0 is depreciated There are very few version 0 firmwares in the wild and at some point in the future it would be nice to remove support for them from the driver, as they require several work arounds to be present to create controls properly. This patch adds a depreciated warning if someone is using this file format. Signed-off-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm_adsp.c | 3 +++ 1 file changed, 3 insertions(+) commit cb5b57a9a449adc7047b709adf25e489785f0bb4 Author: Charles Keepax Date: Mon Apr 13 13:28:04 2015 +0100 ASoC: wm_adsp: Add support for rev 2 firmware file format Version 2 of the firmware file format includes length fields for the various strings associated with control creation, to reduce file size. However this does increase the parsing complexity slightly. This patch adds support for the revision of the file format. This patch also adds a new naming scheme for controls created from rev 2 firmware files. This version of the file format is commonly used to add multiple controls per algorithm per memory region and the old control naming scheme would cause multiple controls to have the same name in this case.. Note that the naming scheme for older firmware versions is left intact to ensure backwards compatibility. Signed-off-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm_adsp.c | 137 +++++++++++++++++++++++++++++++++++++++------ 1 file changed, 119 insertions(+), 18 deletions(-) commit 2323736dca72ff368ff47ea23d1a710020db0618 Author: Charles Keepax Date: Mon Apr 13 13:28:02 2015 +0100 ASoC: wm_adsp: Add basic support for rev 1 firmware file format Revision one of the file format includes new algorithm and coefficient blocks which provide additional information about the controls exported by the firmware. This patch updates the processing to handle this version of the file format. Note that whilst this version of the format adds support for specifying a name for the control through the firmware file this has not been used and to keep compatibility with existing deployments no changes to the firmware control naming are made by this patch. Signed-off-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm_adsp.c | 239 ++++++++++++++++++++++++++++++++++++--------- sound/soc/codecs/wm_adsp.h | 1 + sound/soc/codecs/wmfw.h | 35 ++++++- 3 files changed, 226 insertions(+), 49 deletions(-) commit b21acc1c370f72ccbe9735fd583d15db8a1f80c1 Author: Charles Keepax Date: Mon Apr 13 13:28:01 2015 +0100 ASoC: wm_adsp: Group all the ALSA control functions together This is slightly logically better and avoids some unnecessary forward declarations in the following refactoring. Signed-off-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm_adsp.c | 280 ++++++++++++++++++++++----------------------- 1 file changed, 140 insertions(+), 140 deletions(-) commit ec184cfcb9303dd2e8620a2db902dd64e477f229 Author: Charles Keepax Date: Mon Apr 13 13:28:00 2015 +0100 ASoC: wm_adsp: Remove private field from wm_coeff_ctl The private field in wm_coeff_ctl is currently unused and given the controls are entirely handled within the ADSP code it is not clear what it would be used for in the future. Remove the field for now it can be readded if it is ever required. Signed-off-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm_adsp.c | 1 - 1 file changed, 1 deletion(-) commit d9d20e17eabaf34847fec07dbb402707008f3140 Author: Charles Keepax Date: Mon Apr 13 13:27:59 2015 +0100 ASoC: wm_adsp: Factor out creation of alg_regions Tidy up the code a little by factoring out the creation of the algorithm regions. Signed-off-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm_adsp.c | 134 ++++++++++++++++++++++----------------------- 1 file changed, 64 insertions(+), 70 deletions(-) commit c9f8dd712e1b7a12978844d25edb0508dd3610cf Author: Charles Keepax Date: Mon Apr 13 13:27:58 2015 +0100 ASoC: wm_adsp: Clean up low level control read/write functions Physically reading and writing controls to/from the DSP are handled by two low level functions (wm_coeff_{write|read}_control, these currently take in a snd_kcontrol pointer but immediately pull out a wm_coeff_ctl pointer from the private data. These functions don't handle the kcontrols at all they just shuttle data to and from the chip and all the call sites have a wm_coeff_ctl pointer available. This patch just passes the wm_coeff_ctl pointer straight into these functions. Signed-off-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm_adsp.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) commit 512f2bbaf63f2623ff43c528f0b4281cde3691ed Author: Charles Keepax Date: Mon Apr 13 13:27:57 2015 +0100 ASoC: wm_adsp: Move temporary control name to the stack Now we only allocate 44 bytes for the control name keep it on the stack to avoid a lot of pointless memory allocation. Signed-off-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm_adsp.c | 23 ++++++----------------- 1 file changed, 6 insertions(+), 17 deletions(-) commit 0f4e918cdf81344b63571dfac4088efab34ec3ae Author: Charles Keepax Date: Mon Apr 13 13:27:56 2015 +0100 ASoC: wm_adsp: Limit firmware control name to ALSA control name size ALSA only supports control names up to 44 bytes, so there is no point allocating a whole page of memory to hold the control name, just limit the control name to 44 bytes. Signed-off-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm_adsp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6958eb2ab206127ca92c00047a86816e125fc06b Author: Charles Keepax Date: Mon Apr 13 13:27:55 2015 +0100 ASoC: wm_adsp: Remove len field from wm_adsp_alg_region The algorithm region information in the firmware doesn't contain a length field, explicitly pass this to the create_control function rather than bundling into wm_adsp_alg_region. Signed-off-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm_adsp.c | 55 +++++++++++++++++++++++----------------------- sound/soc/codecs/wm_adsp.h | 1 - 2 files changed, 28 insertions(+), 28 deletions(-) commit 3809f00159d31a6c92b557e09c7ca8e22b62ae7c Author: Charles Keepax Date: Mon Apr 13 13:27:54 2015 +0100 ASoC: wm_adsp: Improve variable naming We have wm_adsp_region, wm_adsp_alg_region, and wmfw_region, the variables for which are all frequently called region, this can get quite confusing when reviewing the code especially given some functions are quite long. Consistently use mem for wm_adsp_regions, alg_region for wm_adsp_alg_region and region for wmfw_region. Additionally, we use a mix of adsp and dsp for pointers to the wm_adsp structure standardise this on dsp. Finally, we use algs to refer to the number of algorithms quite frequently, change this to the more descriptive n_algs. Signed-off-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm_adsp.c | 356 ++++++++++++++++++++++----------------------- sound/soc/codecs/wm_adsp.h | 4 +- sound/soc/codecs/wmfw.h | 4 +- 3 files changed, 182 insertions(+), 182 deletions(-) commit b618a185ac2f0f7c95a8b4a1ab464e923f564028 Author: Charles Keepax Date: Mon Apr 13 13:27:53 2015 +0100 ASoC: wm_adsp: Split out adsp1 & 2 setup algorithms The vast majority of the wm_adsp_setup_algs function is case statements for ADSP1 or ADSP2, this patch splits this out into two separate functions wm_adsp1_setup_algs and wm_adsp2_setup_algs. The small amount of shared code between them is factored out into an extra helper function. This makes the code a lot cleaner. Signed-off-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm_adsp.c | 499 ++++++++++++++++++++++----------------------- 1 file changed, 248 insertions(+), 251 deletions(-) commit 64fcc1fd323835a9185baafa50d2087603c4051c Author: Pascal Huerst Date: Mon Apr 20 11:12:03 2015 +0200 ASoC: adau1701: add regulator consumer support The adau1701 has two power domains, DVDD and AVDD. Enable them both as long as the codec is in use. Signed-off-by: Pascal Huerst Acked-by: Lars-Peter Clausen Signed-off-by: Mark Brown .../devicetree/bindings/sound/adi,adau1701.txt | 4 + sound/soc/codecs/adau1701.c | 125 ++++++++++++++++++--- 2 files changed, 114 insertions(+), 15 deletions(-) commit b3e5ced63e051e8f911b795ac5b06229a5328f7b Merge: e183201 b787f68 Author: Mauro Carvalho Chehab Date: Mon Apr 27 10:32:45 2015 -0300 Merge tag 'v4.1-rc1' into patchwork Linux 4.1-rc1 * tag 'v4.1-rc1': (11651 commits) Linux 4.1-rc1 x86_64, asm: Work around AMD SYSRET SS descriptor attribute issue v4l: xilinx: fix for include file movement platform/chrome: chromeos_laptop - instantiate Atmel at primary address RCU pathwalk breakage when running into a symlink overmounting something fix I_DIO_WAKEUP definition direct-io: only inc/dec inode->i_dio_count for file systems fs/9p: fix readdir() Btrfs: prevent list corruption during free space cache processing toshiba_acpi: Do not register vendor backlight when acpi_video bl is available x86: fix special __probe_kernel_write() tail zeroing case crypto: img-hash - CRYPTO_DEV_IMGTEC_HASH should depend on HAS_DMA crypto: x86/sha512_ssse3 - fixup for asm function prototype change nios2: rework cache nios2: Add types.h header required for __u32 type ALSA: hda - fix headset mic detection problem for one more machine eth: bf609 eth clock: add pclk clock for stmmac driver probe blackfin: Wire up missing syscalls Btrfs: fix inode cache writeout ACPI / scan: Add a scan handler for PRP0001 ... commit 0218d5a8b2a3f4bdbc99523a61406b8c5ab14d39 Author: Axel Lin Date: Mon Apr 13 15:56:00 2015 +0800 gpio: bcm-kona: Implement get_direction callback Implement gpio_chip's get_direction() callback, that lets other drivers get particular GPIOs direction using gpiod_get_direction(). Signed-off-by: Axel Lin Reviewed-by: Ray Jui Signed-off-by: Linus Walleij drivers/gpio/gpio-bcm-kona.c | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) commit ee4eb20dbce91751c248399e8a0cf9b8813adf5a Author: Paul Cercueil Date: Fri Apr 17 23:35:04 2015 +0200 Makefile: Fix detection of clang when cross-compiling When the host's C compiler is clang, and when attempting to cross-compile Linux e.g. to MIPS with mipsel-linux-gcc, the Makefile would incorrectly detect the use of clang, which resulted in clang-specific flags being passed to mipsel-linux-gcc. This can be verified under Debian by installing the "clang" package, and then using it as the default compiler with: sudo update-alternatives --config cc This patch moves the detection of clang after the $(CC) variable is initialized to the name of the cross-compiler, so that the check applies to the cross-compiler and not the host's C compiler. v2: Move the detection of clang after the inclusion of the arch/*/Makefile (as they might set $(CROSS_COMPILE)) Signed-off-by: Paul Cercueil Signed-off-by: Michal Marek Makefile | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) commit 8ab418d3651b14d38498d868617a7280ccc6de08 Merge: 782e50e 0dd76f3 Author: Takashi Iwai Date: Mon Apr 27 12:25:42 2015 +0200 Merge branch 'topic/hda' into for-4.2 commit 782e50e0b38ff284dead13265f1c3e04004e507d Author: Lars-Peter Clausen Date: Mon Apr 27 12:20:29 2015 +0200 ALSA: Close holes in struct snd_pcm_constraint_list On a 64-bit system there is a 32-bit hole in struct snd_pcm_constraint_list and then 32-bit padding at the end. Reordering things slightly gets rid of the hole and padding, reducing the size of the struct by 50% from its original size. Signed-off-by: Lars-Peter Clausen Signed-off-by: Takashi Iwai include/sound/pcm.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d16efa0626bfd11157d4a622a24aaae98435f26d Author: Lars-Peter Clausen Date: Mon Apr 27 12:20:28 2015 +0200 ALSA: Close holes in struct snd_pcm_hw_rule On a 64-bit system there are two 32-bit holes due to the alignment of 64-bit fields. Reordering things slightly gets rid of those holes, reducing the size of the struct by 17% percent of its original size. Signed-off-by: Lars-Peter Clausen Signed-off-by: Takashi Iwai include/sound/pcm.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit c24eab4e0e449845ba98e649b0605ab0450193db Author: Ping Cheng Date: Fri Apr 24 15:32:51 2015 -0700 HID: wacom: retrieve name from HID descriptor for generic devices HID generic devices share the same default name, "Wacom HID". This causes userland programs to show same device names for different devices, which would confuse end users with same device names for different devices too. This patch uses name retrieved from HID descriptor, if a meaningful name is reported. Otherwise, affix its product ID to "Wacom HID". Names from descriptor may contain extra whitespaces. To comfort readers' eyes, we removed those extra whitespaces too. Signed-off-by: Ping Cheng Reviewed-by: Jason Gerecke Signed-off-by: Jiri Kosina drivers/hid/wacom_sys.c | 58 +++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 47 insertions(+), 11 deletions(-) commit d6ea2f88ac3659b799d8079a4fbda4f8faf6ff90 Author: Raphael Assenat Date: Sat Apr 25 16:30:32 2015 -0400 HID: usbhid: Add a quirk for raphnet multi-gamepad adapters The raphnet.net 4nes4snes and 2nes2snes multi-joystick adapters use a single HID report descriptor with one report ID per controller. This has the effect that the inputs of otherwise independent game controllers get packed in one large joystick device. With this patch each controller gets its own /dev/input/jsX device, which is more natural and less confusing than having all inputs going to the same place. Signed-off-by: Raphael Assenat Signed-off-by: Jiri Kosina drivers/hid/hid-ids.h | 7 +++++++ drivers/hid/usbhid/hid-quirks.c | 3 +++ 2 files changed, 10 insertions(+) commit 45c9abc059fa754aae047351742ec2d84f932f53 Author: Michal Kazior Date: Tue Apr 21 20:42:58 2015 +0300 ath10k: implement more versatile set_bitrate_mask Until now only a single fixed tx rate or nss was allowed to be set. The patch attempts to improve this by allowing most bitrate masks. The limitation is VHT MCS rates cannot be expressed separately using existing firmware interfaces and only the following VHT MCS ranges are supported: none, 0-7, 0-8, and 0-9. This keeps the old behaviour when requesting single tx rate or single nss. The new bitrate mask logic is only applied to other cases that would return -EINVAL until now. Depending on firmware revisions some combinations may crash firmware so use with care, please. This depends on "ath10k: don't use reassoc flag". Without it key cache would effectively be invalidated upon bitrate change leading to communication being no longer possible. These work: iw wlan0 set bitrates legacy-5 6 12 ht-mcs-5 1 2 3 iw wlan0 set bitrates legacy-5 ht-mcs-5 7 8 9 iw wlan0 set bitrates legacy-5 24 ht-mcs-5 vht-mcs-5 1:0-9 These won't work: iw wlan0 set bitrates legacy-5 ht-mcs-5 vht-mcs-5 1:0-5 iw wlan0 set bitrates vht-mcs-5 2:7-9 (note the invalid VHT MCS ranges) Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.h | 1 + drivers/net/wireless/ath/ath10k/mac.c | 274 ++++++++++++++++++++++++++++++--- 2 files changed, 255 insertions(+), 20 deletions(-) commit 8c653f9ab6e56921b3704c0b8191f5432de02ad7 Author: Heiko Stuebner Date: Sun Apr 5 11:15:01 2015 +0200 ARM: dts: rockchip: enable tsadc on rk3288 boards The tsadc is used to read cpu and gpu temperatures. Also enable it on the other rk3288 boards beside the evb using the cru reset settings. Signed-off-by: Heiko Stuebner arch/arm/boot/dts/rk3288-firefly.dtsi | 6 ++++++ arch/arm/boot/dts/rk3288-popmetal.dts | 6 ++++++ 2 files changed, 12 insertions(+) commit 71126029211cf67b64ed8b4f03cced508d32efd5 Author: Heiko Stuebner Date: Mon Apr 6 02:10:09 2015 +0200 ARM: dts: rockchip: add act8846 supplies on rk3288-firefly We defined bindings for the supply handling of act8846 regulators now, so describe those on the firefly too. Signed-off-by: Heiko Stuebner arch/arm/boot/dts/rk3288-firefly.dtsi | 8 ++++++++ 1 file changed, 8 insertions(+) commit e565abe10b851bd1c90f8a39e2e4695f337f3cb0 Author: Doug Anderson Date: Wed Mar 11 15:15:17 2015 -0700 ARM: dts: rockchip: Specify VMMC and VQMMC on rk3288-evb Specifying these rails should eventually let us do UHS. Signed-off-by: Doug Anderson Signed-off-by: Heiko Stuebner arch/arm/boot/dts/rk3288-evb.dtsi | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) commit f18407800e5d211028858f86f1e78aacbedad298 Author: Sonny Rao Date: Tue Apr 7 10:52:39 2015 -0700 ARM: dts: rockchip: Enable Cortex-A12 HW PMU events on rk3288 This adds the dts node for the PMU with the correct PMUIRQ interrupts for each core. Signed-off-by: Sonny Rao Reviewed-by: Doug Anderson Signed-off-by: Heiko Stuebner arch/arm/boot/dts/rk3288.dtsi | 8 ++++++++ 1 file changed, 8 insertions(+) commit f22fe1c5ab9f061b7e27e1eb31426d106deb1e22 Author: Chen-Yu Tsai Date: Thu Mar 26 05:04:47 2015 +0800 ARM: dts: sun6i: Set PLL6 as parent to AHB1 clock in AHB1 clock node On sun6i we already have PLL6 as AHB1 clock's parent. However this was previously set in the dma controller node, which takes effect when the dma controller is probed. We want this to take effect as soon as possible, so hrtimer rate calculation is correct, and to be sure the AHB1 clock rate remains as stable as possible. Signed-off-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun6i-a31.dtsi | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 2186df37831a8bb259bbf2ae07356747a03d0b8d Author: Chen-Yu Tsai Date: Wed Mar 25 01:22:09 2015 +0800 ARM: dts: sunxi: Update ahb clocks for sun5i and sun7i The clock driver now supports a muxable ahb clock. Update the dtsi with the proper compatible and add the new parent clocks. This also adds the new pll6/4 output for pll6 on sun7i-a20. The output is not used on sun4/5i. Also use assigned-clocks to reparent ahb to pll6. We want ahb to have a stable, non-changing clock rate. cpu/axi clock rate changes as a result of newly added cpufreq support. Signed-off-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun5i.dtsi | 10 ++++++++-- arch/arm/boot/dts/sun7i-a20.dtsi | 13 ++++++++++--- 2 files changed, 18 insertions(+), 5 deletions(-) commit 771969ec96ce90413bd749f23409d5266620f1ae Author: Linus Walleij Date: Mon Mar 23 16:49:57 2015 +0100 ARM: ux500: define CPU topology The CPU topology is unspecified for Ux500 but will be needed for things like CoreSight. Let's just add it. Signed-off-by: Linus Walleij arch/arm/boot/dts/ste-dbx5x0.dtsi | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) commit ae3bdfe0efe0417b702e6501015375c44226ec23 Author: Hans de Goede Date: Thu Apr 23 14:26:50 2015 +0200 ARM: dts: sun7i: Add dts file for the Jesurun Q5 top set box The Jesurun Q5 has a black plastic casing with the approximate dimensions of 100mm x 100mm x 24mm with rounded edges. In terms of hardware it features an Allwinner A10 SoC with 1GB RAM and 8GB of NAND flash. The external connectors are: 2x USB-A female supporting USB2.0, 3.5mm female jack for audio, HDMI female, SPDIF, RJ45 LAN and Power. In addition the device has 1x red LED (hard wired to power) and an programmable green led. On the board there is also an unpopulated IR receiver and the UART. The devices is equipped with an AXP209 PMU. For more details see: http://linux-sunxi.org/Jesurun_Q5 Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/sun4i-a10-jesurun-q5.dts | 194 +++++++++++++++++++++++++++++ 2 files changed, 195 insertions(+) commit 2a53aff2723676a873406403be5370074ed86fc3 Author: Hans de Goede Date: Wed Apr 1 17:29:37 2015 +0200 ARM: dts: sun5i: Enable touchscreen on Utoo P66 Add a node for the chipone-icn8318 touchscreen found on the Utoo P66 tablet. Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun5i-a13-utoo-p66.dts | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) commit fe0807c57e2b4d6c4f900bd554ea33fafbb49c51 Author: Hans de Goede Date: Sat Apr 4 10:59:54 2015 +0200 ARM: dts: sun7i: Add dts file for the Orangepi mini SBC The Orangepi mini is a development board using the Allwinner A20 SoC, with 1G RAM, 2 microsd slots (use the top side one for booting), HDMI, 1Gbit ethernet, USB wifi, Micro USB (otg), sata, 4 USB A ports, ir receiver and a headphones jack. Also see: http://linux-sunxi.org/Xunlong_Orange_Pi_Mini http://www.orangepi.org/ Signed-off-by: Hans de Goede [maxime: Added /chosen/stdout-path] Signed-off-by: Maxime Ripard arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/sun7i-a20-orangepi-mini.dts | 255 ++++++++++++++++++++++++++ 2 files changed, 256 insertions(+) commit 69ddea353287ea0cc866239d7ee70c378c3cbe81 Author: Hans de Goede Date: Sat Apr 4 10:59:53 2015 +0200 ARM: dts: sun7i: Add dts file for the Orangepi SBC The Orangepi is a development board using the Allwinner A20 SoC, with 1G RAM, microsd slot, HDMI, 1Gbit ethernet, USB wifi, Micro USB (otg), sata, 4 USB A ports, ir receiver and a headphones jack. Also see: http://linux-sunxi.org/Xunlong_Orange_Pi http://www.orangepi.org/ Signed-off-by: Hans de Goede [maxime: Added /chosen/stdout-path] Signed-off-by: Maxime Ripard arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/sun7i-a20-orangepi.dts | 233 +++++++++++++++++++++++++++++++ 2 files changed, 234 insertions(+) commit ccb4ada2f193c7d5dc944cc925d1f58e5a007c0c Author: Maxime Ripard Date: Thu Mar 26 15:53:44 2015 +0100 ARM: dts: sun7i: Add A20 SRAM and SRAM controller The A20 has a few SRAM that can be mapped either to a device or to the CPU, with the mapping being controlled by a SRAM controller. Since most of the time these SRAM won't be accessible by the CPU, we can't use the mmio-sram driver and compatible. Signed-off-by: Maxime Ripard [hdegoede@redhat.com: Do not change soc node name, change compatible to sun4i-a10-sram-controller to match the driver change] Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun7i-a20.dtsi | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) commit e6f51e4bd2a5bb12678330033dc995192507426f Author: Hans de Goede Date: Thu Mar 26 15:53:43 2015 +0100 ARM: dts: sun5i: Add A13 and A10s SRAM and SRAM controller The A13 / A10s has a few SRAM that can be mapped either to a device or to the CPU, with the mapping being controlled by a SRAM controller. Since most of the time these SRAM won't be accessible by the CPU, we can't use the mmio-sram driver and compatible. Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun5i.dtsi | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) commit 6d92b80f356f35b48b1fcec22a4562536aa03dbb Author: Hans de Goede Date: Thu Mar 26 15:53:42 2015 +0100 ARM: dts: sun4i: Add A10 SRAM and SRAM controller The A10 has a few SRAM that can be mapped either to a device or to the CPU, with the mapping being controlled by a SRAM controller. Since most of the time these SRAM won't be accessible by the CPU, we can't use the mmio-sram driver and compatible. Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun4i-a10.dtsi | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) commit dd2fd84ffd00f529bf1fbb546779db3834417b8a Author: Hans de Goede Date: Wed Apr 1 17:26:24 2015 +0200 ARM: dts: sun5i: Add broken-hpi property for Utoo-P66 eMMC The eMMC on the A13 based Utoo-P66 tablet does not properly support hpi, and trying to enable it results in the eMMC not working, so add a child-node describing the eMMC, and set the broken-hpi property on it. Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun5i-a13-utoo-p66.dts | 6 ++++++ 1 file changed, 6 insertions(+) commit f2641d2a9126846dd2d9e8c3910d7134e1bfbbda Author: Chen-Yu Tsai Date: Wed Mar 18 11:24:02 2015 +0800 ARM: sun8i: dt: Enable A23 SMP support Add enable-method property to enable SMP support. Signed-off-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun8i-a23.dtsi | 6 ++++++ 1 file changed, 6 insertions(+) commit eb58b40fb62413d820407c8210acb6c2f1ac1d9b Author: Chen-Yu Tsai Date: Thu Mar 26 05:04:49 2015 +0800 ARM: dts: sun6i: Add cpu thermal zones to dtsi The core temperature sensor now supports thermal zones. Add a thermal zone mapping for the cpus with passive cooling (cpufreq throttling). Signed-off-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun6i-a31.dtsi | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) commit 3a2bc642abee100511021b263032329f94e3a1e4 Author: Chen-Yu Tsai Date: Thu Mar 26 05:04:48 2015 +0800 ARM: dts: sun6i: Add cpu clock reference and operating points to dtsi The cpu core is clocked from the "cpu" clock. Add a reference to it in the first cpu node. Also add "cpu0" label to the node. The operating points were taken from the a list compiled by Maxime Ripard, which is based on A31 FEX files from the sunxi-boards repository. Not all boards have the same settings. The settings in this patch are the ones shared by A/B/C revisions, plus the default clock setting from u-boot. Signed-off-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun6i-a31.dtsi | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) commit 59ebbe88a6431d0bd99c792f413ecf69273f2e9d Author: Maxime Ripard Date: Sun Mar 15 20:47:31 2015 +0100 ARM: sunxi: DT: Add stdout-path property Add UART aliases and stdout-path property for all the Allwinner boards so that we won't have to rely on the bootargs' console= value, while working with legacy bootloaders. While we're at it, also remove the mentions of earlyprintk in the bootargs, that will remove our default bootargs entirely, and allow the kernel to boot on a system even if DEBUG_LL is configured for another system. Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun4i-a10-a1000.dts | 8 ++++++++ arch/arm/boot/dts/sun4i-a10-ba10-tvbox.dts | 8 ++++++++ arch/arm/boot/dts/sun4i-a10-chuwi-v7-cw0825.dts | 8 ++++++++ arch/arm/boot/dts/sun4i-a10-cubieboard.dts | 8 ++++++++ arch/arm/boot/dts/sun4i-a10-gemei-g9.dts | 8 ++++++++ arch/arm/boot/dts/sun4i-a10-hackberry.dts | 8 ++++++++ arch/arm/boot/dts/sun4i-a10-hyundai-a7hd.dts | 8 ++++++++ arch/arm/boot/dts/sun4i-a10-inet97fv2.dts | 8 ++++++++ arch/arm/boot/dts/sun4i-a10-marsboard.dts | 8 ++++++++ arch/arm/boot/dts/sun4i-a10-mini-xplus.dts | 8 ++++++++ arch/arm/boot/dts/sun4i-a10-mk802.dts | 8 ++++++++ arch/arm/boot/dts/sun4i-a10-mk802ii.dts | 8 ++++++++ arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts | 8 ++++++++ arch/arm/boot/dts/sun4i-a10-pcduino.dts | 7 +++++++ arch/arm/boot/dts/sun5i-a10s-auxtek-t004.dts | 8 ++++++++ arch/arm/boot/dts/sun5i-a10s-mk802.dts | 8 ++++++++ arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts | 4 ++++ arch/arm/boot/dts/sun5i-a10s-r7-tv-dongle.dts | 8 ++++++++ arch/arm/boot/dts/sun5i-a13-hsg-h702.dts | 4 ++++ arch/arm/boot/dts/sun5i-a13-olinuxino-micro.dts | 4 ++++ arch/arm/boot/dts/sun5i-a13-olinuxino.dts | 4 ++++ arch/arm/boot/dts/sun6i-a31-app4-evb1.dts | 6 +++++- arch/arm/boot/dts/sun6i-a31-colombus.dts | 6 +++++- arch/arm/boot/dts/sun6i-a31-hummingbird.dts | 6 +++++- arch/arm/boot/dts/sun6i-a31-i7.dts | 6 +++++- arch/arm/boot/dts/sun6i-a31-m9.dts | 6 +++++- arch/arm/boot/dts/sun6i-a31s-cs908.dts | 8 ++++++++ arch/arm/boot/dts/sun7i-a20-bananapi.dts | 4 ++++ arch/arm/boot/dts/sun7i-a20-bananapro.dts | 10 ++++++++++ arch/arm/boot/dts/sun7i-a20-cubieboard2.dts | 8 ++++++++ arch/arm/boot/dts/sun7i-a20-cubietruck.dts | 8 ++++++++ arch/arm/boot/dts/sun7i-a20-hummingbird.dts | 4 ++++ arch/arm/boot/dts/sun7i-a20-i12-tvbox.dts | 8 ++++++++ arch/arm/boot/dts/sun7i-a20-m3.dts | 8 ++++++++ arch/arm/boot/dts/sun7i-a20-olinuxino-lime.dts | 8 ++++++++ arch/arm/boot/dts/sun7i-a20-olinuxino-lime2.dts | 8 ++++++++ arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts | 4 ++++ arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts | 8 ++++++++ arch/arm/boot/dts/sun7i-a20-pcduino3.dts | 8 ++++++++ arch/arm/boot/dts/sun7i-a20-wexler-tab7200.dts | 8 ++++++++ arch/arm/boot/dts/sun8i-a23-ippo-q8h-v5.dts | 2 +- arch/arm/boot/dts/sun9i-a80-optimus.dts | 2 +- 42 files changed, 280 insertions(+), 7 deletions(-) commit b14c112344996c3400bd588982e61fef7fe0ea64 Author: Hans de Goede Date: Sat Mar 21 14:23:01 2015 +0100 ARM: dts: sun6i: csq cs908 dts cleanup Remove the unused usb1_vbus_pin_csq908 node (vbus is always on on the cs908), and sort the remaining nodes alphabetically. Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun6i-a31s-cs908.dts | 37 +++++++++++++--------------------- 1 file changed, 14 insertions(+), 23 deletions(-) commit f1bf2b9b3d4b2bd4a49a2e3ddf4c947d366a150c Author: Chen-Yu Tsai Date: Sat Mar 14 11:57:17 2015 +0800 ARM: dts: sun9i: optimus: Switch to phy core regulator bindings for usb phys Since the phy core already supports specifying a regulator to handle during power up/down, it was decided to drop the regulator support in the sun9i usb phy driver. This patch switches the DT to the core bindings. This and the phy driver would be in the same release and should not be a problem as far as DT stability goes. Signed-off-by: Chen-Yu Tsai Acked-by: Kishon Vijay Abraham I Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun9i-a80-optimus.dts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 51e9f5ffc5b88ea0d2626edef737e582fe7039d8 Author: Chen-Yu Tsai Date: Wed Mar 18 16:00:28 2015 +0800 ARM: dts: sun9i: Enable ARM architected timer on A80 The A80 SoC has the architected timer, but the existing firmware from Allwinner does not set CNTFRQ at all. Signed-off-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun9i-a80.dtsi | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 65ef564f06c30f779a7472ab441fd1964a5f0e47 Author: Chen-Yu Tsai Date: Wed Mar 18 11:24:00 2015 +0800 ARM: dts: sun8i: Enable ARM architected timer on A23 The A23 SoC has the architected timer, but the existing firmware from Allwinner does not set CNTFRQ at all. Signed-off-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun8i-a23.dtsi | 10 ++++++++++ 1 file changed, 10 insertions(+) commit b5c26d66a4bba25b3a7f1c6ff599975f448e54bd Author: Chen-Yu Tsai Date: Tue Mar 10 19:59:24 2015 +0800 ARM: dts: sun6i: hummingbird: Enable the onboard WiFi module The Hummingbird A31 has an AMPAK AP6210 WiFi+Bluetooth module. The WiFi part is a BCM43362 IC connected to MMC1 in the A31 SoC via SDIO. The IC also takes a power enable signal via GPIO. This is supported with the new power sequencing bindings. The WiFi module supports out-of-band interrupt signaling via GPIO, but this is not enabled yet. Signed-off-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun6i-a31-hummingbird.dts | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) commit 878c4ded1f15e6c2231b5d05bc8f21920f8a777f Author: Chen-Yu Tsai Date: Tue Mar 10 19:59:22 2015 +0800 ARM: dts: sun6i: Add pinmux settings for mmc1 to dtsi mmc1 is used to connect to the WiFi chip on the Hummingbird A31. Signed-off-by: Chen-Yu Tsai [maxime: Changed the drive and pull values for their defines] Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun6i-a31.dtsi | 8 ++++++++ 1 file changed, 8 insertions(+) commit 7862eb1b59eef343343dbdd0136fbf175184e538 Author: Hans de Goede Date: Tue Mar 10 16:27:10 2015 +0100 ARM: dts: sun7i: Add OOB irq support to boards with broadcom sdio wifi Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun7i-a20-cubietruck.dts | 8 ++++++++ arch/arm/boot/dts/sun7i-a20-i12-tvbox.dts | 8 ++++++++ 2 files changed, 16 insertions(+) commit 4c1bb9c31877d58c5d6f5c92327566fc8a5f99ac Author: Hans de Goede Date: Tue Mar 10 16:27:09 2015 +0100 ARM: dts: sunxi: Add address- and size-cells properties to the mmc ctrl nodes Sometimes we need to specify non-probably information for sdio devices in the devicetree, this is done through child nodes addressed by the reg property, whereby the reg property refers to the sdio function number, see; Documentation/devicetree/bindings/mmc/mmc.txt This commit adds the necessary address- and size-cells properties to the mmc controller nodes in the dtsi files, so that dts files needing such a child node do not need to specify these themselves. Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun4i-a10.dtsi | 8 ++++++++ arch/arm/boot/dts/sun5i.dtsi | 6 ++++++ arch/arm/boot/dts/sun6i-a31.dtsi | 8 ++++++++ arch/arm/boot/dts/sun7i-a20.dtsi | 8 ++++++++ arch/arm/boot/dts/sun8i-a23.dtsi | 6 ++++++ arch/arm/boot/dts/sun9i-a80.dtsi | 8 ++++++++ 6 files changed, 44 insertions(+) commit bab03561224baa536b98f1d137d2b6b5dd159763 Author: Chen-Yu Tsai Date: Tue Mar 10 19:59:21 2015 +0800 ARM: dts: sun6i: hummingbird: Add AXP221 regulator nodes This patch adds the AXP221 regulators. Only the ones directly used on the board are added. Signed-off-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun6i-a31-hummingbird.dts | 56 ++++++++++++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-) commit 81bc1d38a4f83aa3bee0795c212f829b3cd23ae1 Author: Chen-Yu Tsai Date: Tue Mar 10 19:59:16 2015 +0800 ARM: dts: sun6i: hummingbird: Add AXP221 PMIC device node The Hummingbird A31 has an AXP221 PMIC hooked up to the P2WI controller. Signed-off-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun6i-a31-hummingbird.dts | 9 +++++++++ 1 file changed, 9 insertions(+) commit 252619aedd616d7358d96877a467d74d19791e69 Author: Chen-Yu Tsai Date: Tue Mar 10 19:59:13 2015 +0800 ARM: dts: sun6i: hummingbird: Enable P2WI controller The Hummingbird A31 has an AXP221 PMIC hooked up to the P2WI controller. Signed-off-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun6i-a31-hummingbird.dts | 4 ++++ 1 file changed, 4 insertions(+) commit fcd601387d70db31ac5e0a17ca584f088821b459 Author: Boris BREZILLON Date: Tue Mar 10 19:59:12 2015 +0800 ARM: dts: sun6i: add p2wi controller node to dtsi The p2wi controller has only one possible pinmux setting. Use it by default in the dtsi, instead of having to set it in each board's dts. Signed-off-by: Boris BREZILLON [wens@csie.org: reformat commit title; rename p2wi pins and use as default] Signed-off-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun6i-a31.dtsi | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) commit 6d11c8e2b3aa0993a3cc6e65dc942dd348db5882 Author: Tyler Baker Date: Mon Mar 9 13:19:57 2015 -0700 ARM: dts: add cubietech cubieboard4 Add a Cubietech Cubieboard4 device tree and instruct make to build it. This device tree has been derived from the sun9i-a80-optimus.dts as they are very similar in design[1]. Notably, I2C3 is not used on Cubieboard4 and the LED/PWM definitions will need to be updated in the future. [1] http://dl.cubieboard.org/model/cc-a80/Hardware/CC-A80-HW-V1.1.pdf Signed-off-by: Tyler Baker Signed-off-by: Maxime Ripard arch/arm/boot/dts/Makefile | 3 +- arch/arm/boot/dts/sun9i-a80-cubieboard4.dts | 99 +++++++++++++++++++++++++++++ 2 files changed, 101 insertions(+), 1 deletion(-) commit 6554afd218f931021c5e9fbd7b5a236c0d08f4ed Author: Aleksei Mamlin Date: Sun Mar 8 14:58:16 2015 +0300 dt-bindings: Add vendor-prefix for Wexler This patch adds vendor-prefix for Wexler. WEXLER trademark owned by AVIRSA Electronics, a member of the diversified holding AVIRSA. Signed-off-by: Aleksei Mamlin Signed-off-by: Maxime Ripard Documentation/devicetree/bindings/vendor-prefixes.txt | 1 + 1 file changed, 1 insertion(+) commit a486d0b2e9b9a09b9f873eb48bb1a9ac54ad5660 Author: Aleksei Mamlin Date: Sun Mar 8 14:57:33 2015 +0300 ARM: dts: sun7i: Add dts file for Wexler TAB7200 This patch add support for Wexler TAB7200 tablet. The Wexler TAB7200 is a A20 based tablet with 7 inch display(800x480), capacitive touchscreen(5 fingers), 1G RAM, 4G NAND, micro SD card slot, mini HDMI port, 3.5mm audio plug, 1 USB OTG port and 1 USB 2.0 port. Signed-off-by: Aleksei Mamlin Signed-off-by: Maxime Ripard arch/arm/boot/dts/Makefile | 3 +- arch/arm/boot/dts/sun7i-a20-wexler-tab7200.dts | 180 +++++++++++++++++++++++++ 2 files changed, 182 insertions(+), 1 deletion(-) commit 8bf1b9b3d90194a174493febc731f7783f2adf1a Author: Hans de Goede Date: Sun Mar 8 21:53:42 2015 +0100 ARM: dts: sunxi: Adjust touchscreen compatible for sun5i and later The touchscreen controller in the A13 and later has a different temperature curve than the one in the original A10, change the compatible for the A13 and later so that the kernel will use the correct curve. Reported-by: Tong Zhang Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun5i.dtsi | 2 +- arch/arm/boot/dts/sun7i-a20.dtsi | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 8a9cbf5ead43b6b23e11d74d10ac79904d5bc57d Author: Tyler Baker Date: Fri Mar 6 15:35:05 2015 -0800 ARM: dts: add vendor prefix for cubietech Add a cubietech vendor prefix, as it is missing. The cubietruck, cubieboard2, and cubieboard all already reference this prefix. Signed-off-by: Tyler Baker Signed-off-by: Maxime Ripard Documentation/devicetree/bindings/vendor-prefixes.txt | 1 + 1 file changed, 1 insertion(+) commit 144cf39875b43ff0f4e281c31116b575c6f41f52 Author: Hans de Goede Date: Sat Mar 7 20:01:22 2015 +0100 ARM: dts: sun5i: Add new Utoo P66 board The UTOO P66 is a 6" A13 tablet / lcd ereader. It features a 6" 480x800 ips lcd screen, 512MB RAM & 4GB emmc. Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/Makefile | 3 +- arch/arm/boot/dts/sun5i-a13-utoo-p66.dts | 203 +++++++++++++++++++++++++++++++ 2 files changed, 205 insertions(+), 1 deletion(-) commit 0332e7dfe613259d8046e4b88704de43f17789a9 Author: Hans de Goede Date: Sat Mar 7 20:01:21 2015 +0100 ARM: dts: sun5i: Add new Auxtek-t004 board The auxtek-t004: http://www.fasttech.com/products/1110/10004200/1318603-auxtek-t004-allwinner-a10s-single-core-android-ics Is an Allwinner A10s based hdmi tv stick with with 512M RAM, 4G nand flash, toc9002 (bcm43362) sdio wifi, 1 USB host ports using an USB-A receptacle and a 2 micro-usb receptacles, one for power and one for USB OTG. The sdio wifi appears to not have an oob irq hooked up, so we rely on sdio-irq support for it. Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/sun5i-a10s-auxtek-t004.dts | 151 +++++++++++++++++++++++++++ 2 files changed, 152 insertions(+) commit e1fe9f8c0ce77208fd7da4585641cfc8c892e5c8 Author: Hans de Goede Date: Sat Mar 7 20:01:20 2015 +0100 ARM: dts: sun5i: Add mmc2 pinmux settings Add A13 mmc2 pinmux settings, note these are for a 8bit bus. Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun5i.dtsi | 9 +++++++++ 1 file changed, 9 insertions(+) commit 3727ed3bb3c531650e4e65a46b4b5eb3176c5da9 Author: Hans de Goede Date: Sat Mar 7 20:01:19 2015 +0100 ARM: dts: sun5i: Stop using different compatibles for ehci/ohci on a13 vs a10s The A13 and the A10s use the same die (this has been confirmed by Allwinner), as such there is no need to differentiate between the ehci/ohci parts of both, the only reasons there were different allwinner,sun5i-a*-foo compatible between these 2 parts is costemetically and because we could when we still had 2 completely different dtsi files. The allwinner,sun5i-a*-foo compatible strings are not used for binding at all, the actual driver binds to the generic-?hci compatible, so we can safely remove this cosmetical difference and simplify the dtsi files. Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun5i-a10s.dtsi | 8 -------- arch/arm/boot/dts/sun5i-a13.dtsi | 8 -------- arch/arm/boot/dts/sun5i.dtsi | 2 ++ 3 files changed, 2 insertions(+), 16 deletions(-) commit cbc8107b3e44d86dc7a569c5ae42423cb95bc4a5 Author: Hans de Goede Date: Sat Mar 7 20:01:18 2015 +0100 ARM: dts: sun4i: Enable tablet keys on Chuwi V7 CW0825 Enable the lradc controlled tablet keys on the Chuwi V7 CW0825 tablet. Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun4i-a10-chuwi-v7-cw0825.dts | 27 +++++++++++++++++++++++++ 1 file changed, 27 insertions(+) commit ef1ac7c9631f58e1ee2f444942713324fddd86bb Author: Chen-Yu Tsai Date: Tue Mar 3 11:52:01 2015 +0800 ARM: dts: sun6i: hummingbird: Enable IR receiver The A31 Hummingbird has an IR receiver. Signed-off-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun6i-a31-hummingbird.dts | 6 ++++++ 1 file changed, 6 insertions(+) commit d3da93d47959c2a9ef399958ed1376809c388471 Author: Marcus Cooper Date: Sat Feb 28 14:48:05 2015 +0100 ARM: sun6i: dt: Add new Mele I7 device The Mele I7 is a Allwinner A31 based Android TV box, with 1G RAM, 8GB NAND flash, a RTL8188etv wifi chip, 3 USB Host ports using USB-A receptacles, a micro USB-B receptacle for USB OTG, HDMI out, a TRS connector for A/V, SPDIF and IrDA. This patch adds basic support for the device, more information can be found here (http://linux-sunxi.org/Mele_I7). Signed-off-by: Marcus Cooper Signed-off-by: Maxime Ripard arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/sun6i-a31-i7.dts | 150 +++++++++++++++++++++++++++++++++++++ 2 files changed, 151 insertions(+) commit 1e9d5530932b614a5c01118b18fe710ea106fb72 Author: Maxime Ripard Date: Sat Jan 31 12:11:54 2015 +0100 ARM: sun8i: ippo q8h v5: Convert to DT label based syntax In order to lessen the amount of duplication of the DT tree, ease the new and follow the trend that prefers to use label based references when overriding DTSI nodes, convert the board to this syntax Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun8i-a23-ippo-q8h-v5.dts | 110 ++++++++++++++-------------- 1 file changed, 54 insertions(+), 56 deletions(-) commit 1366e357f2b2a26fe2e3ee014c193d65fc2ed74e Author: Maxime Ripard Date: Sat Jan 31 12:11:54 2015 +0100 ARM: sun7i: pcduino3: Convert to DT label based syntax In order to lessen the amount of duplication of the DT tree, ease the new and follow the trend that prefers to use label based references when overriding DTSI nodes, convert the board to this syntax Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun7i-a20-pcduino3.dts | 210 +++++++++++++++---------------- 1 file changed, 104 insertions(+), 106 deletions(-) commit 581b19e5592c77cf041906d431f7734c3e7b6578 Author: Maxime Ripard Date: Sat Jan 31 12:11:54 2015 +0100 ARM: sun7i: olinuxino micro: Convert to DT label based syntax In order to lessen the amount of duplication of the DT tree, ease the new and follow the trend that prefers to use label based references when overriding DTSI nodes, convert the board to this syntax Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts | 364 ++++++++++++------------ 1 file changed, 181 insertions(+), 183 deletions(-) commit 6bd0027ee14aa13c3d23583c3d29f1a02dd7ad80 Author: Maxime Ripard Date: Sat Jan 31 12:11:54 2015 +0100 ARM: sun7i: olinuxino lime2: Convert to DT label based syntax In order to lessen the amount of duplication of the DT tree, ease the new and follow the trend that prefers to use label based references when overriding DTSI nodes, convert the board to this syntax Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun7i-a20-olinuxino-lime2.dts | 288 ++++++++++++------------ 1 file changed, 143 insertions(+), 145 deletions(-) commit 5b178791a9a7817e691cb0fac9625826d5bea1e6 Author: Maxime Ripard Date: Sat Jan 31 12:11:54 2015 +0100 ARM: sun7i: olinuxino lime: Convert to DT label based syntax In order to lessen the amount of duplication of the DT tree, ease the new and follow the trend that prefers to use label based references when overriding DTSI nodes, convert the board to this syntax Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun7i-a20-olinuxino-lime.dts | 186 ++++++++++++------------- 1 file changed, 92 insertions(+), 94 deletions(-) commit 22b10010cdf1d145320aa6aa91c9d9c2929333e8 Author: Maxime Ripard Date: Sat Jan 31 12:11:54 2015 +0100 ARM: sun7i: m3: Convert to DT label based syntax In order to lessen the amount of duplication of the DT tree, ease the new and follow the trend that prefers to use label based references when overriding DTSI nodes, convert the board to this syntax Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun7i-a20-m3.dts | 178 ++++++++++++++++++------------------- 1 file changed, 88 insertions(+), 90 deletions(-) commit 598699d073243eec4c9880a6b8c95ac092f560bd Author: Maxime Ripard Date: Sat Jan 31 12:11:54 2015 +0100 ARM: sun7i: i12 tvbox: Convert to DT label based syntax In order to lessen the amount of duplication of the DT tree, ease the new and follow the trend that prefers to use label based references when overriding DTSI nodes, convert the board to this syntax Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun7i-a20-i12-tvbox.dts | 252 +++++++++++++++--------------- 1 file changed, 125 insertions(+), 127 deletions(-) commit 9bb082547e46e7414aa84588b61b40e082f8bec9 Author: Maxime Ripard Date: Sat Jan 31 12:11:54 2015 +0100 ARM: sun7i: hummingbird: Convert to DT label based syntax In order to lessen the amount of duplication of the DT tree, ease the new and follow the trend that prefers to use label based references when overriding DTSI nodes, convert the board to this syntax Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun7i-a20-hummingbird.dts | 384 ++++++++++++++-------------- 1 file changed, 191 insertions(+), 193 deletions(-) commit 712a9fa2af03fefbb172e85c9b7930e78e7f634f Author: Maxime Ripard Date: Sat Jan 31 12:11:54 2015 +0100 ARM: sun7i: cubietruck: Convert to DT label based syntax In order to lessen the amount of duplication of the DT tree, ease the new and follow the trend that prefers to use label based references when overriding DTSI nodes, convert the board to this syntax Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun7i-a20-cubietruck.dts | 316 ++++++++++++++--------------- 1 file changed, 157 insertions(+), 159 deletions(-) commit b5ec9938b544c47f5cb536faa5637fde4b4b6156 Author: Maxime Ripard Date: Sat Jan 31 12:11:54 2015 +0100 ARM: sun7i: cubieboard2: Convert to DT label based syntax In order to lessen the amount of duplication of the DT tree, ease the new and follow the trend that prefers to use label based references when overriding DTSI nodes, convert the board to this syntax Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun7i-a20-cubieboard2.dts | 198 ++++++++++++++-------------- 1 file changed, 98 insertions(+), 100 deletions(-) commit d540b7cc69ace442959c5754d62b755d63603697 Author: Maxime Ripard Date: Sat Jan 31 12:11:54 2015 +0100 ARM: sun7i: bananapi: Convert to DT label based syntax In order to lessen the amount of duplication of the DT tree, ease the new and follow the trend that prefers to use label based references when overriding DTSI nodes, convert the board to this syntax Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun7i-a20-bananapi.dts | 262 +++++++++++++++---------------- 1 file changed, 130 insertions(+), 132 deletions(-) commit ece44e41fad62a4e4964540aa31cebb4b89a0b43 Author: Maxime Ripard Date: Sat Jan 31 12:11:54 2015 +0100 ARM: sun6i: m9: Convert to DT label based syntax In order to lessen the amount of duplication of the DT tree, ease the new and follow the trend that prefers to use label based references when overriding DTSI nodes, convert the board to this syntax Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun6i-a31-m9.dts | 148 ++++++++++++++++++------------------- 1 file changed, 73 insertions(+), 75 deletions(-) commit 6f1b57f57d4dfc8033763c02d4e17131d1aa08ab Author: Maxime Ripard Date: Sat Jan 31 12:11:54 2015 +0100 ARM: sun6i: colombus: Convert to DT label based syntax In order to lessen the amount of duplication of the DT tree, ease the new and follow the trend that prefers to use label based references when overriding DTSI nodes, convert the board to this syntax Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun6i-a31-colombus.dts | 120 +++++++++++++++---------------- 1 file changed, 59 insertions(+), 61 deletions(-) commit df839aeb8042e5041dd4bba8acc5e8332cb3e5bc Author: Maxime Ripard Date: Sat Jan 31 12:11:54 2015 +0100 ARM: sun6i: app4 evb1: Convert to DT label based syntax In order to lessen the amount of duplication of the DT tree, ease the new and follow the trend that prefers to use label based references when overriding DTSI nodes, convert the board to this syntax Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun6i-a31-app4-evb1.dts | 52 +++++++++++++++---------------- 1 file changed, 25 insertions(+), 27 deletions(-) commit b2547166a69a2878d4e152a5b2143507db8bd381 Author: Maxime Ripard Date: Sat Jan 31 12:11:54 2015 +0100 ARM: sun5i: a13: olinuxino: Convert to DT label based syntax In order to lessen the amount of duplication of the DT tree, ease the new and follow the trend that prefers to use label based references when overriding DTSI nodes, convert the board to this syntax Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun5i-a13-olinuxino.dts | 236 +++++++++++++++--------------- 1 file changed, 117 insertions(+), 119 deletions(-) commit c999303bfc26644b0ab66b3f905ff46b4c76a82d Author: Maxime Ripard Date: Sat Jan 31 12:04:17 2015 +0100 ARM: sun5i: a13: olinuxino micro: Convert to DT label based syntax In order to lessen the amount of duplication of the DT tree, ease the new and follow the trend that prefers to use label based references when overriding DTSI nodes, convert the board to this syntax Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun5i-a13-olinuxino-micro.dts | 148 ++++++++++++------------ 1 file changed, 73 insertions(+), 75 deletions(-) commit f5d89ab5ba954b5ddcfc99c737da4f92b76b2da9 Author: Maxime Ripard Date: Sat Jan 31 11:59:48 2015 +0100 ARM: sun5i: a13: hsg h702: Convert to DT label based syntax In order to lessen the amount of duplication of the DT tree, ease the new and follow the trend that prefers to use label based references when overriding DTSI nodes, convert the board to this syntax Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun5i-a13-hsg-h702.dts | 136 +++++++++++++++---------------- 1 file changed, 67 insertions(+), 69 deletions(-) commit 420e6f25df16322fecaa4de7d20ae6fa3a7363a2 Author: Maxime Ripard Date: Fri Jan 30 16:58:45 2015 +0100 ARM: sun5i: a10s: r7 tv dongle: Convert to DT label based syntax In order to lessen the amount of duplication of the DT tree, ease the new and follow the trend that prefers to use label based references when overriding DTSI nodes, convert the board to this syntax Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun5i-a10s-r7-tv-dongle.dts | 132 +++++++++++++------------- 1 file changed, 65 insertions(+), 67 deletions(-) commit b96b3b224e872ba33e404fe8770e1ae34a1b58be Author: Maxime Ripard Date: Fri Jan 30 16:51:03 2015 +0100 ARM: sun5i: a10s: olinuxino micro: Convert to DT label based syntax In order to lessen the amount of duplication of the DT tree, ease the new and follow the trend that prefers to use label based references when overriding DTSI nodes, convert the board to this syntax Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts | 315 +++++++++++------------ 1 file changed, 157 insertions(+), 158 deletions(-) commit 5e8773694937784003216bd147d5dd969e2cd091 Author: Maxime Ripard Date: Sat Jan 31 12:11:54 2015 +0100 ARM: sun4i: pcduino: Convert to DT label based syntax In order to lessen the amount of duplication of the DT tree, ease the new and follow the trend that prefers to use label based references when overriding DTSI nodes, convert the board to this syntax Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun4i-a10-pcduino.dts | 177 ++++++++++++++++---------------- 1 file changed, 88 insertions(+), 89 deletions(-) commit a86d26c85a414d4ec69ff1b1fb66b14d5c3046bd Author: Maxime Ripard Date: Sat Jan 31 12:11:54 2015 +0100 ARM: sun4i: olinuxino lime: Convert to DT label based syntax In order to lessen the amount of duplication of the DT tree, ease the new and follow the trend that prefers to use label based references when overriding DTSI nodes, convert the board to this syntax Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts | 213 ++++++++++++------------- 1 file changed, 104 insertions(+), 109 deletions(-) commit c2e046419f47d10fcd1c427fc45ce6a19c7119ae Author: Maxime Ripard Date: Sat Jan 31 12:11:54 2015 +0100 ARM: sun4i: mini xplus: Convert to DT label based syntax In order to lessen the amount of duplication of the DT tree, ease the new and follow the trend that prefers to use label based references when overriding DTSI nodes, convert the board to this syntax Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun4i-a10-mini-xplus.dts | 140 ++++++++++++++--------------- 1 file changed, 68 insertions(+), 72 deletions(-) commit 82c8364b66f9f7e5f2e70d5ad15beff63973786f Author: Maxime Ripard Date: Sat Jan 31 12:11:54 2015 +0100 ARM: sun4i: inet97fv2: Convert to DT label based syntax In order to lessen the amount of duplication of the DT tree, ease the new and follow the trend that prefers to use label based references when overriding DTSI nodes, convert the board to this syntax Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun4i-a10-inet97fv2.dts | 104 ++++++++++++++---------------- 1 file changed, 49 insertions(+), 55 deletions(-) commit 4218f450e8dd5d309ad153079dcbb57eb7465622 Author: Maxime Ripard Date: Sat Jan 31 12:11:54 2015 +0100 ARM: sun4i: hackberry: Convert to DT label based syntax In order to lessen the amount of duplication of the DT tree, ease the new and follow the trend that prefers to use label based references when overriding DTSI nodes, convert the board to this syntax Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun4i-a10-hackberry.dts | 187 ++++++++++++++---------------- 1 file changed, 85 insertions(+), 102 deletions(-) commit 8fd5cfc7e4d62c1378c7afecdf2176b44502236a Author: Maxime Ripard Date: Sat Jan 31 12:11:54 2015 +0100 ARM: sun4i: cubieboard: Convert to DT label based syntax In order to lessen the amount of duplication of the DT tree, ease the new and follow the trend that prefers to use label based references when overriding DTSI nodes, convert the board to this syntax Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun4i-a10-cubieboard.dts | 214 ++++++++++++++--------------- 1 file changed, 106 insertions(+), 108 deletions(-) commit b6ef4c2c66c3afa621722f31fd2542393051a894 Author: Maxime Ripard Date: Sat Jan 31 12:11:54 2015 +0100 ARM: sun4i: ba10 tvbox: Convert to DT label based syntax In order to lessen the amount of duplication of the DT tree, ease the new and follow the trend that prefers to use label based references when overriding DTSI nodes, convert the board to this syntax Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun4i-a10-ba10-tvbox.dts | 168 ++++++++++++++--------------- 1 file changed, 83 insertions(+), 85 deletions(-) commit 84bdea6e5ed64211be4f8f1773186f1f5c9401f3 Author: Maxime Ripard Date: Sat Jan 31 12:11:54 2015 +0100 ARM: sun4i: a1000: Convert to DT label based syntax In order to lessen the amount of duplication of the DT tree, ease the new and follow the trend that prefers to use label based references when overriding DTSI nodes, convert the board to this syntax Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun4i-a10-a1000.dts | 200 +++++++++++++++++----------------- 1 file changed, 99 insertions(+), 101 deletions(-) commit 903b2d75159fe1d5eca7e7e911c824268fe6c9f1 Author: Maxime Ripard Date: Fri Jan 30 16:42:13 2015 +0100 ARM: sun5i: a10s: Move to the common sun5i DTSI Now that we have a common DTSI for the sun5i family, move the A10s to use it. Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun5i-a10s.dtsi | 582 ++++---------------------------------- 1 file changed, 48 insertions(+), 534 deletions(-) commit 51fbba421261f13f215848c49ec8e3a169e0f1a2 Author: Maxime Ripard Date: Fri Jan 30 16:31:19 2015 +0100 ARM: sun5i: a13: Move to the common sun5i DTSI Now that we have a common DTSI for the sun5i family, move the A13 to use it. Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun5i-a13.dtsi | 552 +++------------------------------------ arch/arm/boot/dts/sun5i.dtsi | 28 ++ 2 files changed, 65 insertions(+), 515 deletions(-) commit fbfa7367724339334f8076f6bf03697060f4e9f3 Author: Maxime Ripard Date: Fri Jan 30 16:30:48 2015 +0100 ARM: sun5i: Add a DTSI common to A10s and A13 The A10s and the A13 are very similar SoCs, the only difference being the number of pins and the number of devices available (number of UARTs, EMAC only in the A10s, etc.), and the clocks and pinctrl functions obviously. Create a common DTSI that will be included by the A10s and A13 DTSI, that will add their SoC differences in there. Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun5i.dtsi | 532 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 532 insertions(+) commit fa86885b6bc75e73d2f24ada02ccb74cab9c73c1 Author: Chen-Yu Tsai Date: Tue Feb 3 06:22:03 2015 +0800 ARM: dts: sun9i: Enable USB support on A80 Optimus board On the Optimus board, all three USB hosts can be used. HCI0 and HCI2 are available through the USB connector. HCI1 is available with HSIC through 2 pins on the GPIO expansion header. This patch also adds a regulator for HCI2/USB3's VBUS. Signed-off-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun9i-a80-optimus.dts | 65 +++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) commit 70472163a7471e1ae37cbdebe2c7bfffc45ebd1f Author: Chen-Yu Tsai Date: Tue Feb 3 06:22:02 2015 +0800 ARM: dts: sun9i: Add USB host controller nodes to a80 dtsi The A80 has 3 EHCI/OHCI USB controllers. Signed-off-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun9i-a80.dtsi | 55 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) commit c0188c40c2eac2bfc1305240120e568985f17c52 Author: Maxime Ripard Date: Tue Sep 2 19:25:26 2014 +0200 ARM: sun7i: olinuxino micro: Relicense the device tree under GPLv2/X11 The current GPL only licensing on the DTSI makes it very impractical for other software components licensed under another license. In order to make it easier for them to reuse our device trees, relicense our device trees under a GPL/X11 dual-license. Signed-off-by: Maxime Ripard Acked-by: Carlo Caione Acked-by: Chen-Yu Tsai Acked-by: Hans de Goede Acked-by: Zalan Blenessy arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts | 46 ++++++++++++++++++++++--- 1 file changed, 41 insertions(+), 5 deletions(-) commit 1af5d19269c122b7882b26132d2cad05b455e3c7 Author: Chen-Yu Tsai Date: Wed Jan 28 03:54:10 2015 +0800 ARM: dts: sun9i: Add usb phy nodes to a80 dtsi On sun9i, there are 3 independent usb phys for EHCI/OHCI. Add device nodes for them. Signed-off-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun9i-a80.dtsi | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) commit bc8ffc2de87855f91b376dca4597ca0b9254cabc Author: Chen-Yu Tsai Date: Wed Jan 28 03:54:08 2015 +0800 ARM: dts: sun9i: Add usb clock nodes to a80 dtsi The USB controller and phy clocks and resets have a separate address block and driver. Add the nodes to represent them. Signed-off-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun9i-a80.dtsi | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) commit d67b984be92927c1bbab3e391616e51937e26438 Author: Maxime Ripard Date: Tue Sep 2 19:25:26 2014 +0200 ARM: sun7i: hummingbird: Relicense the device tree under GPLv2/X11 The current GPL only licensing on the DTSI makes it very impractical for other software components licensed under another license. In order to make it easier for them to reuse our device trees, relicense our device trees under a GPL/X11 dual-license. Signed-off-by: Maxime Ripard Acked-by: Wills Wang arch/arm/boot/dts/sun7i-a20-hummingbird.dts | 46 +++++++++++++++++++++++++---- 1 file changed, 41 insertions(+), 5 deletions(-) commit 061035d456c9902d31a3b7d98b8a7ee0f3b20a99 Author: Adam Sampson Date: Tue Jan 27 18:27:45 2015 +0000 ARM: dts: sun7i: Add dts file for pcDuino 3 Nano board Add support for the LinkSprite pcDuino 3 Nano board. This is a low-cost Allwinner A20 board with Arduino-style GPIO headers; it features 1G RAM, 4G NAND flash, 1 micro-SD, 2 USB sockets, 1 micro USB socket for OTG and another for power in, HDMI, SATA, 5V power for SATA devices, gigabit Ethernet, an IR receiver, 3.5mm audio out and a MIPI camera connector. For more details, see: http://linux-sunxi.org/LinkSprite_pcDuino3_Nano Changes in v3: - rename LEDs to pcduino3-nano:green:usr[12] - remove optional features on Arduino headers (i2c2, spi0, uart2) Signed-off-by: Adam Sampson Signed-off-by: Maxime Ripard arch/arm/boot/dts/Makefile | 3 +- arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts | 191 ++++++++++++++++++++++++++ 2 files changed, 193 insertions(+), 1 deletion(-) commit 17a35943458cf9463cd53e88ba3b68d75eb152b1 Author: Priit Laes Date: Mon Jan 26 20:00:06 2015 +0200 ARM: dts: sun4i: Add initial dts for Gemei G9 tablet Gemei G9 is an A10 based tablet, with 1G RAM, 16G NAND, 1024x768 IPS LCD display, stereo speakers, 1.3MP front camera and 5 MP rear camera, 8000mAh battery, GT901 2+1 touchscreen, Bosch BMA250 accelerometer and RTL8188CUS USB wifi. It also has MicroSD slot, miniHDMI, 1 x MicroUSB OTG port and 1 x MicroUSB host port and 3.5mm headphone jack. Changes since v2: * Fix syntax error (brown paper bag release) Changes since v1: * Added sun4i-lradc keymap * Added TODO note about missing IRQ pins for bma250 * Fixed formatting issues and removed external URLs Signed-off-by: Priit Laes Signed-off-by: Maxime Ripard arch/arm/boot/dts/Makefile | 7 +- arch/arm/boot/dts/sun4i-a10-gemei-g9.dts | 168 +++++++++++++++++++++++++++++++ 2 files changed, 172 insertions(+), 3 deletions(-) commit 1d86b4b52c94867529f4c61d950f77298ddeb85e Author: Maxime Ripard Date: Tue Sep 2 19:25:26 2014 +0200 ARM: sun5i: Relicense the A10s/A13 DTSI under GPLv2/X11 The current GPL only licensing on the DTSI makes it very impractical for other software components licensed under another license. In order to make it easier for them to reuse our device trees, relicense our DTSI first under a GPL/X11 dual-license. Hopefully, the DTS will follow soon. Signed-off-by: Maxime Ripard Acked-by: Arnd Bergmann Acked-by: Chen-Yu Tsai Acked-by: David Lanzendörfer Acked-by: Emilio López Acked-by: Hans de Goede Acked-by: Lorenzo Pieralisi Acked-by: Oliver Schinagl Acked-by: Roman Byshko arch/arm/boot/dts/sun5i-a10s.dtsi | 46 ++++++++++++++++++++++++++++++++++----- arch/arm/boot/dts/sun5i-a13.dtsi | 46 ++++++++++++++++++++++++++++++++++----- 2 files changed, 82 insertions(+), 10 deletions(-) commit 033ba3d759db1ae913ad87f59554958a1fbc6fcd Author: Maxime Ripard Date: Tue Sep 2 19:25:26 2014 +0200 ARM: sun4i: Relicense the A10 DTSI under GPLv2/X11 The current GPL only licensing on the DTSI makes it very impractical for other software components licensed under another license. In order to make it easier for them to reuse our device trees, relicense our DTSI first under a GPL/X11 dual-license. Hopefully, the DTS will follow soon. Signed-off-by: Maxime Ripard Acked-by: Alexandre Belloni Acked-by: Arnd Bergmann Acked-by: Carlo Caione Acked-by: Chen-Yu Tsai Acked-by: David Lanzendörfer Acked-by: Emilio López Acked-by: Hans de Goede Acked-by: Lorenzo Pieralisi Acked-by: Oliver Schinagl Acked-by: Roman Byshko Acked-by: Stefan Roese arch/arm/boot/dts/sun4i-a10.dtsi | 46 +++++++++++++++++++++++++++++++++++----- 1 file changed, 41 insertions(+), 5 deletions(-) commit 7917d14129a5a7241289f06d2c5299c5d03ed529 Author: Chen-Yu Tsai Date: Wed Mar 18 11:24:01 2015 +0800 ARM: sun8i: Add SMP support for the Allwinner A23 The A23 is a dual Cortex-A7. Add the logic to use the IPs used to control the CPU configuration and the CPU power so that we can bring up secondary CPUs at boot. Signed-off-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard Documentation/devicetree/bindings/arm/cpus.txt | 1 + arch/arm/mach-sunxi/platsmp.c | 69 ++++++++++++++++++++++++++ 2 files changed, 70 insertions(+) commit cb6d08a2b61fc0025a0148d06b71b8a7d0920e98 Author: Ryo Kataoka Date: Sun Apr 5 01:55:12 2015 +0900 ARM: shmobile: r8a7791: Remove MSIOF address from device tree MSIOF Base Address H'E6xx can be accessed by CPU and DMAC. MSIOF Base Address H'E7xx for DMAC was removed from H/W manual. Signed-off-by: Ryo Kataoka Signed-off-by: Yoshihiro Kaneko Acked-by: Geert Uytterhoeven Signed-off-by: Simon Horman Documentation/devicetree/bindings/spi/sh-msiof.txt | 2 +- arch/arm/boot/dts/r8a7791.dtsi | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) commit c7d1f08a0c91ad9796d6d1fac8eb913e8a6d4288 Author: Ryo Kataoka Date: Sun Apr 5 01:54:31 2015 +0900 ARM: shmobile: r8a7790: Remove MSIOF address from device tree MSIOF Base Address H'E6xx can be accessed by CPU and DMAC. MSIOF Base Address H'E7xx for DMAC was removed from H/W manual. Signed-off-by: Ryo Kataoka Signed-off-by: Yoshihiro Kaneko Acked-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7790.dtsi | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 809a591b16781cc69f1f3ff2cc9a790e3ae8ec8f Author: Roberta Dobrescu Date: Thu Apr 16 22:20:58 2015 +0300 staging: iio: light: isl29018: Rename lux_scale to calibscale This patch renames lux_scale to calibscale and lux_uscale to ucalibscale. This is done in order to avoid confusion since these parameters are used for hardware applied calibration. Signed-off-by: Roberta Dobrescu Signed-off-by: Jonathan Cameron drivers/staging/iio/light/isl29018.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) commit e98ceca076bb37d42116c5395ba40d7e31ba869c Author: Roberta Dobrescu Date: Thu Apr 16 22:20:57 2015 +0300 staging: iio: light: isl29018: Remove non-standard sysfs attributes This patch removes non-standard sysfs attributes range, range_available, adc_resolution and adc_resolution_available. It also removes the corresponding show and store functions. This is in preparation for using standard IIO attributes in order to move the code out of staging. Signed-off-by: Roberta Dobrescu Signed-off-by: Jonathan Cameron drivers/staging/iio/light/isl29018.c | 94 ------------------------------------ 1 file changed, 94 deletions(-) commit ef8307a21ac79823b8a4f977eac42329328af384 Author: Irina Tirdea Date: Mon Apr 13 18:40:59 2015 +0300 iio: accel: mma9553: fix gpio bitnum init value Initial value of gpio bitnum is set to -1, but the variable is declared as unsigned. Use a positive invalid value for initial gpio bitnum. Signed-off-by: Irina Tirdea Suggested-by: Hartmut Knaack Signed-off-by: Jonathan Cameron drivers/iio/accel/mma9553.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 334efd076dc5bde5c579c0cf1c2b5d3dcd8839f7 Author: Irina Tirdea Date: Mon Apr 13 18:41:00 2015 +0300 iio: accel: mma9553: refactor mma9553_read_raw Refactor code for simplicity and clarity. Signed-off-by: Irina Tirdea Suggested-by: Hartmut Knaack Signed-off-by: Jonathan Cameron drivers/iio/accel/mma9553.c | 101 +++++++++++++++----------------------------- 1 file changed, 33 insertions(+), 68 deletions(-) commit 996ba514591cd89c5555e143f6ad893f3f5e6824 Author: Irina Tirdea Date: Mon Apr 13 18:40:58 2015 +0300 iio: accel: mma9553: prefix naming fixes Add mma9553_ prefix to all local functions/declarations. Signed-off-by: Irina Tirdea Suggested-by: Hartmut Knaack Signed-off-by: Jonathan Cameron drivers/iio/accel/mma9553.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 43c30937c300bc30abb6368a71d4e17e37509a07 Author: Irina Tirdea Date: Mon Apr 13 18:40:57 2015 +0300 iio: accel: mma9553: use GENMASK Use GENMASK instead of BIT or direct value to define a mask. Signed-off-by: Irina Tirdea Suggested-by: Hartmut Knaack Signed-off-by: Jonathan Cameron drivers/iio/accel/mma9553.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c105ac6a039242e847d6b770ec2f4fa2c9f20a1b Author: Irina Tirdea Date: Mon Apr 13 18:40:56 2015 +0300 iio: accel: mma9553: comment and error message fixes Use "GPIO" instead of "gpio" and "ACPI" instead of "acpi". Includes a couple of small style fixes in comments (missing full stop, whitespace, paranthesis). Signed-off-by: Irina Tirdea Suggested-by: Hartmut Knaack Signed-off-by: Jonathan Cameron drivers/iio/accel/mma9553.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) commit 04aff96ad49d297fa530bb01aa09f1f39e65189a Author: Irina Tirdea Date: Mon Apr 13 18:40:55 2015 +0300 iio: accel: mma9553: return 0 as indication of success Use return 0 instead of return ret to mark clearly the success return path. Signed-off-by: Irina Tirdea Suggested-by: Hartmut Knaack Signed-off-by: Jonathan Cameron drivers/iio/accel/mma9553.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1d052931c689d14397d05ac705cf386955bcf813 Author: Irina Tirdea Date: Mon Apr 13 18:40:54 2015 +0300 iio: accel: mma9553: check for error in reading initial activity and stepcnt When configuring gpio, we need to read initial values for activity and step count. This function may fail due to i2c read errors. Check the error code returned by mma9553_read_activity_stepcnt and return the appropriate error in gpio config function. Signed-off-by: Irina Tirdea Reported-by: Hartmut Knaack Signed-off-by: Jonathan Cameron drivers/iio/accel/mma9553.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 476c41a73eee708101495d2202c82060d0fc787d Author: Irina Tirdea Date: Mon Apr 13 18:40:53 2015 +0300 iio: accel: mma9551_core: typo fix in RSC APP ID Fix typo in Reset/Suspend/Clear Application ID definition. Signed-off-by: Irina Tirdea Reported-by: Hartmut Knaack Signed-off-by: Jonathan Cameron drivers/iio/accel/mma9551_core.c | 2 +- drivers/iio/accel/mma9551_core.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit b39f0c945c0dc39763a76e2f54fb9eea0e49e876 Author: Irina Tirdea Date: Mon Apr 13 18:40:52 2015 +0300 iio: accel: mma9551_core: wrong doc fixes Fix docummentation for mma9553_read_* functions. Signed-off-by: Irina Tirdea Reported-by: Hartmut Knaack Signed-off-by: Jonathan Cameron drivers/iio/accel/mma9551_core.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 035ebb15101c0f5c58d6ff8b343c6eae9ddca9c6 Author: Daniel Baluta Date: Tue Apr 21 19:11:00 2015 +0300 iio: ltr501: Add support for ltr301 chip Added support for Liteon 301 Ambient light sensor. Since LTR-301 and LTR-501 are register compatible(and even have same part id), LTR-501 driver has been extended to support both devices. LTR-501 is similar to LTR-301 in ALS sensing, But the only difference is, LTR-501 also supports proximity sensing. LTR-501 - ALS + Proximity combo LTR-301 - ALS sensor. Signed-off-by: Kuppuswamy Sathyanarayanan Signed-off-by: Daniel Baluta Signed-off-by: Jonathan Cameron drivers/iio/light/Kconfig | 2 +- drivers/iio/light/ltr501.c | 76 +++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 73 insertions(+), 5 deletions(-) commit 8592a7eefa540303dd9e60fa49340d09ca9376b4 Author: Daniel Baluta Date: Tue Apr 21 19:10:59 2015 +0300 iio: ltr501: Add support for ltr559 chip This device is register compatible with LTR501, with a minor difference for ALS control register as showed below: ALS Control register for LTR501: 7 6 5 4 3 2 1 0 +------+------+------+------+------+------+------+------+ | | | | | | Reserved | Gain | SW | ALS Mode | | | | Reset| | +------+------+------+------+------+------+------+------+ ALS Control register for LTR559: 7 6 5 4 3 2 1 0 +------+------+------+------+------+------+------+------+ | | | | | | Reserved | Gain | SW | ALS | | | | Reset| Mode | +------+------+------+------+------+------+------+------+ We handle this difference by introducing ltr501_chip_info. Datasheet for LTR559 is at: http://optoelectronics.liteon.com/upload/download/DS86-2013-0003/S_110_LTR-559ALS-01_DS_V1.pdf Signed-off-by: Daniel Baluta Signed-off-by: Jonathan Cameron drivers/iio/light/Kconfig | 3 +- drivers/iio/light/ltr501.c | 218 ++++++++++++++++++++++++++++++++++++++------- 2 files changed, 186 insertions(+), 35 deletions(-) commit 10d87b730e1d9f1442cae6487bb3aef8632bed23 Author: Leonidas Da Silva Barbosa Date: Thu Apr 23 17:41:43 2015 -0300 crypto: nx - Fixing SHA update bug Bug happens when a data size less than SHA block size is passed. Since first attempt will be saved in buffer, second round attempt get into two step to calculate op.inlen and op.outlen. The issue resides in this step. A wrong value of op.inlen and outlen was being calculated. This patch fix this eliminate the nx_sha_build_sg_list, that is useless in SHA's algorithm context. Instead we call nx_build_sg_list directly and pass a previous calculated max_sg_len to it. Signed-off-by: Leonidas S. Barbosa Signed-off-by: Herbert Xu drivers/crypto/nx/nx-sha256.c | 84 ++++++++++++++++++++++++------------------ drivers/crypto/nx/nx-sha512.c | 85 +++++++++++++++++++++++++------------------ drivers/crypto/nx/nx.c | 47 ------------------------ drivers/crypto/nx/nx.h | 2 - 4 files changed, 99 insertions(+), 119 deletions(-) commit c3365ce130e50176533debe1cabebcdb8e61156c Author: Leonidas Da Silva Barbosa Date: Thu Apr 23 17:40:30 2015 -0300 crypto: nx - Fixing NX data alignment with nx_sg list In NX we need to pass always a 16 multiple size nx_sg_list to co processor. Trim function handle with this assuring all nx_sg_lists are 16 multiple size, although data was not being considerated when crop was done. It was causing an unalignment between size of the list and data, corrupting csbcpb fields returning a -23 H_ST_PARM error, or invalid operation. This patch fix this recalculating how much data should be put back in to_process variable what assures the size of sg_list will be correct with size of the data. Signed-off-by: Leonidas S. Barbosa Signed-off-by: Herbert Xu drivers/crypto/nx/nx.c | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) commit 21a6dd5b391e419efb227251745b08d5838f09db Author: firo yang Date: Thu Apr 23 18:12:10 2015 +0800 crypto: sha1-mb - Remove pointless cast Since kzalloc() returns a void pointer, we don't need to cast the return value in arch/x86/crypto/sha-mb/sha1_mb.c::sha1_mb_mod_init(). Signed-off-by: Firo Yang Signed-off-by: Herbert Xu arch/x86/crypto/sha-mb/sha1_mb.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 80f7b3552c1c925478a955fd4c700345beaf2982 Author: Herbert Xu Date: Thu Apr 23 16:37:46 2015 +0800 crypto: aead - Fix corner case in crypto_lookup_aead When the user explicitly states that they don't care whether the algorithm has been tested (type = CRYPTO_ALG_TESTED and mask = 0), there is a corner case where we may erroneously return ENOENT. This patch fixes it by correcting the logic in the test. Signed-off-by: Herbert Xu crypto/aead.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 26739535206e819946b0740347c09c94c4e48ba9 Author: Herbert Xu Date: Thu Apr 23 16:34:47 2015 +0800 crypto: skcipher - Fix corner case in crypto_lookup_skcipher When the user explicitly states that they don't care whether the algorithm has been tested (type = CRYPTO_ALG_TESTED and mask = 0), there is a corner case where we may erroneously return ENOENT. This patch fixes it by correcting the logic in the test. Signed-off-by: Herbert Xu crypto/ablkcipher.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bd4a7c69aaed79ae1a299db8063fe4daf5e4a2f1 Author: Herbert Xu Date: Thu Apr 23 14:48:05 2015 +0800 crypto: api - Fix build error when modules are disabled The commit 59afdc7b32143528524455039e7557a46b60e4c8 ("crypto: api - Move module sig ifdef into accessor function") broke the build when modules are completely disabled because we directly dereference module->name. This patch fixes this by using the accessor function module_name. Reported-by: Fengguang Wu Signed-off-by: Herbert Xu crypto/algapi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a0dca822e923e605dbdc2f6ed4fcd96b74df9258 Author: Takashi Iwai Date: Thu Apr 23 10:56:21 2015 +0200 ALSA: core: Clean up OSS proc file management A few minor cleanups: - Move the call of snd_info_minor_register() into snd_info_init() so that we can call all proc-related stuff in a shot - Add missing __init prefix to snd_info_minor_register() - Return an error properly from snd_oss_info_register() - Drop snd_info_minor_unregister() that is superfluous now Acked-by: Jaroslav Kysela Signed-off-by: Takashi Iwai include/sound/info.h | 4 +--- sound/core/info.c | 3 ++- sound/core/info_oss.c | 25 +++++++------------------ sound/core/sound.c | 2 -- 4 files changed, 10 insertions(+), 24 deletions(-) commit 85d143180738475b89d76b18409c3125b01464e1 Author: Takashi Iwai Date: Thu Apr 23 10:34:34 2015 +0200 ALSA: core: Build conditionally and remove superfluous ifdefs Minor cleanups of Makefile to build some codes conditionally so that a few ifdefs can be reduced. Acked-by: Jaroslav Kysela Signed-off-by: Takashi Iwai sound/core/Makefile | 8 ++++++-- sound/core/info.c | 8 -------- sound/core/info_oss.c | 4 ---- sound/core/seq/Makefile | 3 ++- sound/core/seq/seq_info.c | 2 -- sound/core/sound_oss.c | 8 -------- 6 files changed, 8 insertions(+), 25 deletions(-) commit b591b6e9e99017137888e2e397f0ddd8adb77c5d Author: Takashi Iwai Date: Wed Apr 22 22:29:10 2015 +0200 ALSA: core: Don't ignore errors at creating proc files So far we've ignored the errors at creating proc files in many places. But they should be rather treated seriously. Also, by assuring the error handling, we can get rid of superfluous snd_info_free_entry() calls as they will be removed by the parent in the caller side. This patch fixes the missing error checks and reduces the superfluous free calls. Acked-by: Jaroslav Kysela Signed-off-by: Takashi Iwai sound/core/info.c | 15 ++++++--------- sound/core/init.c | 16 +++++++--------- sound/core/seq/seq_info.c | 17 ++++++++++++++--- sound/core/sound.c | 12 ++++-------- sound/core/sound_oss.c | 10 ++++------ 5 files changed, 35 insertions(+), 35 deletions(-) commit b046d244e2290e3d114af2e91503ee3d08fc605a Author: Takashi Iwai Date: Wed Apr 22 21:33:41 2015 +0200 ALSA: core: Remove superfluous exit calls for proc entries Since each proc entry is freed automatically by the parent, we don't have to take care of its life cycle any longer. This allows us to reduce a few more lines of codes. Acked-by: Jaroslav Kysela Signed-off-by: Takashi Iwai include/sound/core.h | 4 ---- sound/core/info.c | 3 --- sound/core/init.c | 17 ----------------- sound/core/sound.c | 10 ---------- sound/core/sound_oss.c | 14 +------------- 5 files changed, 1 insertion(+), 47 deletions(-) commit 644dbd64dcf0939e9838132a72d2ec9489496eb8 Author: Takashi Iwai Date: Wed Apr 22 22:14:41 2015 +0200 ALSA: core: Manage asound root directory with snd_info_entry Using snd_info_entry for /proc/asound root makes easier to release the all children, too. Further cleanups will follow. Acked-by: Jaroslav Kysela Signed-off-by: Takashi Iwai sound/core/info.c | 52 ++++++++++++++-------------------------------------- 1 file changed, 14 insertions(+), 38 deletions(-) commit c560a6797e3bec1e04f1f6f9f3c2135db0f5c8ee Author: Takashi Iwai Date: Wed Apr 22 18:26:38 2015 +0200 ALSA: core: Remove child proc file elements recursively This patch changes the way to manage the resource release of proc files: namely, let snd_info_free_entry() freeing the whole children. This makes it us possible to drop the snd_device_*() management. Then snd_card_proc_new() becomes merely a wrapper to snd_info_create_card_entry(). Together with this change, now you need to call snd_info_free_entry() for a proc entry created via snd_card_proc_new(), while it was freed via snd_device_free() beforehand. Acked-by: Jaroslav Kysela Signed-off-by: Takashi Iwai include/sound/info.h | 9 ++++-- sound/core/info.c | 79 ++++++++-------------------------------------- sound/pci/hda/patch_hdmi.c | 2 +- 3 files changed, 21 insertions(+), 69 deletions(-) commit f7fa7aeeecb7a9abdd5f5d069a71ffb3e99a2a07 Author: Jiang Liu Date: Tue Apr 14 10:30:10 2015 +0800 x86/irq: Avoid memory allocation in __assign_irq_vector() Function __assign_irq_vector() is protected by vector_lock, so use a global temporary cpu_mask to avoid allocating/freeing cpu_mask. Signed-off-by: Jiang Liu Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Joerg Roedel Cc: Greg Kroah-Hartman Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Link: http://lkml.kernel.org/r/1428978610-28986-34-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/kernel/apic/vector.c | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) commit d746d1ebd30c48562a3fb512ab18d5822f137820 Author: Jiang Liu Date: Tue Apr 14 10:30:09 2015 +0800 x86/irq: Move irqdomain specific code into asm/irqdomain.h Now we have dedicated asm/irqdomain.h, so move irqdomain specific code into it. Signed-off-by: Jiang Liu Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Joerg Roedel Cc: Greg Kroah-Hartman Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Cc: Joerg Roedel Cc: Andy Lutomirski Link: http://lkml.kernel.org/r/1428978610-28986-33-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/include/asm/hw_irq.h | 24 ------------------------ arch/x86/include/asm/irq_remapping.h | 2 +- arch/x86/include/asm/irqdomain.h | 35 ++++++++++++++++++++++++++++++++--- arch/x86/kernel/apic/htirq.c | 2 +- arch/x86/kernel/apic/msi.c | 2 +- arch/x86/kernel/apic/vector.c | 2 +- arch/x86/kernel/hpet.c | 2 +- arch/x86/platform/uv/uv_irq.c | 2 +- 8 files changed, 38 insertions(+), 33 deletions(-) commit f7a0c78669ee79443a91ea89652766c1be8d9e04 Author: Thomas Gleixner Date: Tue Apr 14 10:30:08 2015 +0800 x86: Cleanup irq_domain ops We have 3 identical copies of the ioapic domain ops for acpi, mpparse, and sfi. Have a global one in the io_apic code and be done with it. To avoid include hell in io_apic.h, create a private irqdomain header and include the generic irqdomain header from there. Signed-off-by: Thomas Gleixner Signed-off-by: Jiang Liu Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Joerg Roedel Cc: Greg Kroah-Hartman Cc: sfi-devel@simplefirmware.org Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Cc: Len Brown Cc: Pavel Machek Cc: Grant Likely Cc: Rob Herring Cc: x86@kernel.org Link: http://lkml.kernel.org/r/1428978610-28986-32-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/include/asm/io_apic.h | 29 ++--------------------------- arch/x86/include/asm/irqdomain.h | 34 ++++++++++++++++++++++++++++++++++ arch/x86/kernel/acpi/boot.c | 13 +++---------- arch/x86/kernel/apic/io_apic.c | 9 ++++++++- arch/x86/kernel/devicetree.c | 12 ++++++------ arch/x86/kernel/mpparse.c | 9 +-------- arch/x86/platform/sfi/sfi.c | 10 ++-------- 7 files changed, 56 insertions(+), 60 deletions(-) commit ab76085ec0858d4c2707ea0d036db00ef4aee8fd Author: Thomas Gleixner Date: Tue Apr 14 10:30:07 2015 +0800 x86,ioapic: Cleanup irq_trigger/polarity() These functions are full of pointless indentations, useless comments and even more useless printks. Clean them up. Signed-off-by: Thomas Gleixner Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Joerg Roedel Cc: Greg Kroah-Hartman Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Cc: Grant Likely Link: http://lkml.kernel.org/r/1428978610-28986-31-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner Cc: Jiang Liu Cc: x86@kernel.org Signed-off-by: Jiang Liu arch/x86/kernel/apic/io_apic.c | 138 +++++++++++++++-------------------------- 1 file changed, 50 insertions(+), 88 deletions(-) commit 335efdf57da39d3949c3ef9338de5737e85cbe52 Author: Thomas Gleixner Date: Tue Apr 14 10:30:06 2015 +0800 x86, ioapic: Use proper defines for the entry fields While looking at the printout issue, I stumbled more than once over the various 0/1 assignments which are either commented in strange ways or force to lookup the meaning. Use proper constants and fix the misleading comments. While at it remove pointless 0 assignments in native_disable_io_apic() which have no value for understanding the code. Signed-off-by: Thomas Gleixner Signed-off-by: Jiang Liu Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Joerg Roedel Cc: Greg Kroah-Hartman Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Cc: Grant Likely Cc: x86@kernel.org Link: http://lkml.kernel.org/r/1428978610-28986-30-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/include/asm/io_apic.h | 16 +++++-- arch/x86/kernel/apic/io_apic.c | 100 ++++++++++++++++++++--------------------- 2 files changed, 63 insertions(+), 53 deletions(-) commit 46176f39b1a6f457eae78999befbdf58e68555e7 Author: Jiang Liu Date: Tue Apr 14 10:30:05 2015 +0800 x86/irq, ACPI: Remove private function mp_register_gsi()/ mp_unregister_gsi() Function mp_register_gsi() is only called once, so fold it into caller acpi_register_gsi_ioapic(). Do the same for mp_unregister_gsi(). Signed-off-by: Jiang Liu Tested-by: Joerg Roedel Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Joerg Roedel Cc: Greg Kroah-Hartman Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Cc: Len Brown Cc: Pavel Machek Link: http://lkml.kernel.org/r/1428978610-28986-29-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/kernel/acpi/boot.c | 57 ++++++++++++++------------------------------- 1 file changed, 18 insertions(+), 39 deletions(-) commit 4399b14fa75c8d8225a0739fbcef575f02c6c6a5 Author: Jiang Liu Date: Tue Apr 14 10:30:04 2015 +0800 x86/irq: Refine the way to calculate NR_IRQS Now we have made MSI independent of IOAPIC, so we need to refine the way to calculate NR_IRQS to support configuration with MSI enabled but IOAPIC disabled. Signed-off-by: Jiang Liu Tested-by: Joerg Roedel Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Joerg Roedel Cc: Greg Kroah-Hartman Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Cc: Jan Beulich Link: http://lkml.kernel.org/r/1428978610-28986-28-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/include/asm/irq_vectors.h | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) commit 7f3262edcdf623296b514377d52911b115c7ab49 Author: Jiang Liu Date: Tue Apr 14 10:30:03 2015 +0800 x86/irq: Move private data in struct irq_cfg into dedicated data structure Several fields in struct irq_cfg are private to vector.c, so move it into dedicated data structure. This helps to hide implementation details. Signed-off-by: Jiang Liu Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Joerg Roedel Cc: Greg Kroah-Hartman Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Link: http://lkml.kernel.org/r/1428978610-28986-27-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner Cc: Konrad Rzeszutek Wilk Cc: Tony Luck Cc: Joerg Roedel Cc: Greg Kroah-Hartman Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Link: http://lkml.kernel.org/r/1416901802-24211-35-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner Tested-by: Joerg Roedel arch/x86/include/asm/hw_irq.h | 3 - arch/x86/kernel/apic/vector.c | 221 +++++++++++++++++++++++------------------- 2 files changed, 119 insertions(+), 105 deletions(-) commit c6c2002b744215810c770dd73f45da954bcfa9d5 Author: Jiang Liu Date: Tue Apr 14 10:30:02 2015 +0800 x86/irq: Move check of cfg->move_in_progress into send_cleanup_vector() Move check of cfg->move_in_progress into send_cleanup_vector() to prepare for simplifying struct irq_cfg. Signed-off-by: Jiang Liu Tested-by: Joerg Roedel Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Greg Kroah-Hartman Cc: iommu@lists.linux-foundation.org Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Cc: Joerg Roedel Link: http://lkml.kernel.org/r/1428978610-28986-26-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/kernel/apic/vector.c | 10 ++++++++-- arch/x86/platform/uv/uv_irq.c | 3 +-- drivers/iommu/amd_iommu.c | 3 +-- drivers/iommu/intel_irq_remapping.c | 3 +-- 4 files changed, 11 insertions(+), 8 deletions(-) commit 68f9f4404d74f859dc84973db8731b41a51d929a Author: Jiang Liu Date: Tue Apr 14 10:30:01 2015 +0800 x86/irq: Remove function apic_set_affinity() Now there's no user of apic_set_affinity(), so remove it. Also rename vector_set_affinity() to apic_set_affinity() for consistency. Signed-off-by: Jiang Liu Tested-by: Joerg Roedel Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Joerg Roedel Cc: Greg Kroah-Hartman Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Link: http://lkml.kernel.org/r/1428978610-28986-25-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/include/asm/hw_irq.h | 2 -- arch/x86/kernel/apic/vector.c | 40 +++------------------------------------- 2 files changed, 3 insertions(+), 39 deletions(-) commit f970510cc55e41d21ca30feb56873aaeb57ec18d Author: Jiang Liu Date: Tue Apr 14 10:30:00 2015 +0800 x86/irq: Make functions only used in vector.c static Function {assign|clear}_irq_vector() and apic_retrigger_irq() are only used in vector.c, so make them static. Signed-off-by: Jiang Liu Tested-by: Joerg Roedel Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Joerg Roedel Cc: Greg Kroah-Hartman Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Link: http://lkml.kernel.org/r/1428978610-28986-24-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/include/asm/hw_irq.h | 3 --- arch/x86/kernel/apic/vector.c | 7 ++++--- 2 files changed, 4 insertions(+), 6 deletions(-) commit a2cbbb47fd90ef1161ce22b099de5c6095f8365f Author: Jiang Liu Date: Tue Apr 14 10:29:59 2015 +0800 x86/irq: Remove unused alloc_irq_and_cfg_at() There's no caller of alloc_irq_and_cfg_at() anymore, so remove it. Signed-off-by: Jiang Liu Tested-by: Joerg Roedel Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Joerg Roedel Cc: Greg Kroah-Hartman Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Link: http://lkml.kernel.org/r/1428978610-28986-23-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/include/asm/hw_irq.h | 1 - arch/x86/kernel/apic/vector.c | 21 --------------------- 2 files changed, 22 deletions(-) commit 1f934641294ca2e09016c689862378fbb15da4d4 Author: Thomas Gleixner Date: Tue Apr 14 10:29:58 2015 +0800 x86/irq: Remove sis apic bug workaround The SiS apic bug workaround is now obsolete as we cache the register values for performance reasons. Signed-off-by: Thomas Gleixner Signed-off-by: Jiang Liu Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Joerg Roedel Cc: Greg Kroah-Hartman Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Cc: Grant Likely Link: http://lkml.kernel.org/r/1428978610-28986-22-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/include/asm/io_apic.h | 3 --- arch/x86/kernel/apic/io_apic.c | 35 ++++++++++------------------------- drivers/pci/quirks.c | 7 ------- 3 files changed, 10 insertions(+), 35 deletions(-) commit 0be275e3a5607b23f5132121bca22a10ee23aa99 Author: Jiang Liu Date: Tue Apr 14 10:29:57 2015 +0800 x86/irq: Use cached IOAPIC entry instead of reading from hardware Use cached IOAPIC entry instead of reading data from IOAPIC hardware registers to improve performance. Signed-off-by: Jiang Liu Tested-by: Joerg Roedel Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Joerg Roedel Cc: Greg Kroah-Hartman Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Cc: Grant Likely Link: http://lkml.kernel.org/r/1428978610-28986-21-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/kernel/apic/io_apic.c | 78 ++++++++++++------------------------------ 1 file changed, 21 insertions(+), 57 deletions(-) commit 154d9e50e413ee144d48ccd6c402633ffbecbfff Author: Jiang Liu Date: Tue Apr 14 10:29:56 2015 +0800 x86/irq: Clean up io_apic.h Clean up io_apic.h by: 1) moving definition of struct mp_ioapic_gsi into io_apic.c 2) changing mp_pin_to_gsi() and mp_ioapic_gsi_routing() as static 3) removing unused MP_MAX_IOAPIC_PIN 4) removing useless forward declaration 5) removing useless comments Signed-off-by: Jiang Liu Tested-by: Joerg Roedel Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Joerg Roedel Cc: Greg Kroah-Hartman Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Cc: Grant Likely Link: http://lkml.kernel.org/r/1428978610-28986-20-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/include/asm/io_apic.h | 13 ++----------- arch/x86/kernel/apic/io_apic.c | 23 ++++++++--------------- 2 files changed, 10 insertions(+), 26 deletions(-) commit ca1b88622e9c16df7b1e0a57e9c6c2300321bed4 Author: Thomas Gleixner Date: Fri Apr 24 13:57:48 2015 +0200 x86: Remove more unmodified io_apic_ops io_apic_ops.init() is either NULL, if IO-APIC support is disabled at compile time or native_io_apic_init_mappings(). No point to have that as we can achieve the same thing with an empty inline. Signed-off-by: Thomas Gleixner arch/x86/include/asm/io_apic.h | 6 +++--- arch/x86/include/asm/x86_init.h | 1 - arch/x86/kernel/apic/io_apic.c | 2 +- arch/x86/kernel/setup.c | 3 +-- arch/x86/kernel/x86_init.c | 1 - 5 files changed, 5 insertions(+), 8 deletions(-) commit 9a93d4736ec5ec322ec8f240a292c1a86cd0876d Author: Jiang Liu Date: Tue Apr 14 10:29:55 2015 +0800 x86/irq: Remove x86_io_apic_ops.write and x86_io_apic_ops.modify x86_io_apic_ops.write is always set to native_io_apic_write(), and nobody overrides it. So get rid of the indirection by changing native_io_apic_write() as io_apic_write() and removing x86_io_apic_ops.write. Do the same for x86_io_apic_ops.modify and native_io_apic_modify(). Signed-off-by: Jiang Liu Tested-by: Joerg Roedel Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Joerg Roedel Cc: Greg Kroah-Hartman Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Cc: Yijing Wang Cc: Grant Likely Link: http://lkml.kernel.org/r/1428978610-28986-19-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/include/asm/io_apic.h | 13 ------------- arch/x86/include/asm/x86_init.h | 2 -- arch/x86/kernel/apic/io_apic.c | 6 ++++-- arch/x86/kernel/x86_init.c | 2 -- 4 files changed, 4 insertions(+), 19 deletions(-) commit 50a6ad84b2a2c971e76d57884d61a5a55d7c1601 Author: Jiang Liu Date: Tue Apr 14 10:29:54 2015 +0800 x86/irq: Remove struct io_apic_irq_attr Now there's no user of struct io_apic_irq_attr anymore, so remove it. Signed-off-by: Jiang Liu Tested-by: Joerg Roedel Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Joerg Roedel Cc: Greg Kroah-Hartman Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Cc: Grant Likely Link: http://lkml.kernel.org/r/1428978610-28986-18-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/include/asm/io_apic.h | 7 ------- arch/x86/kernel/apic/io_apic.c | 10 ---------- 2 files changed, 17 deletions(-) commit 4467715a44cca2fa41d25f3d32b737bd2331a8d9 Author: Jiang Liu Date: Tue Apr 14 10:29:53 2015 +0800 x86/irq: Move irq_cfg.irq_2_pin into io_apic.c Now only io_apic.c accesses struct irq_cfg.irq_2_pin, so move irq_2_pin into struct mp_chip_data in io_apic.c to clean up struct irq_cfg further. Signed-off-by: Jiang Liu Tested-by: Joerg Roedel Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Joerg Roedel Cc: Greg Kroah-Hartman Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Cc: Grant Likely Link: http://lkml.kernel.org/r/1428978610-28986-17-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/include/asm/hw_irq.h | 7 -- arch/x86/kernel/apic/io_apic.c | 164 +++++++++++++++++++---------------------- arch/x86/kernel/apic/vector.c | 3 - 3 files changed, 77 insertions(+), 97 deletions(-) commit 9c72496698a4dadd406d159f7735851a63ef9412 Author: Jiang Liu Date: Tue Apr 14 10:29:52 2015 +0800 irq_remapping/amd: Move struct irq_2_irte into amd_iommu.c Now only amd_iommu.c access irq_2_irte, so move it from hw_irq.h into amd_iommu.c. Signed-off-by: Jiang Liu Tested-by: Joerg Roedel Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Greg Kroah-Hartman Cc: iommu@lists.linux-foundation.org Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Cc: Joerg Roedel Link: http://lkml.kernel.org/r/1428978610-28986-16-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/include/asm/hw_irq.h | 13 ------------- drivers/iommu/amd_iommu.c | 5 +++++ 2 files changed, 5 insertions(+), 13 deletions(-) commit 099c5c03487f6bca30c628e14e666788dd61fb33 Author: Jiang Liu Date: Tue Apr 14 10:29:51 2015 +0800 irq_remapping/vt-d: Move struct irq_2_iommu into intel_irq_remapping.c Now only intel_irq_remapping.c access irq_2_iommu, so move it from hw_irq.h into intel_irq_remapping.c. Signed-off-by: Jiang Liu Tested-by: Joerg Roedel Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Greg Kroah-Hartman Cc: iommu@lists.linux-foundation.org Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Cc: Joerg Roedel Link: http://lkml.kernel.org/r/1428978610-28986-15-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/include/asm/hw_irq.h | 9 --------- drivers/iommu/intel_irq_remapping.c | 7 +++++++ 2 files changed, 7 insertions(+), 9 deletions(-) commit bac4f90784efb858cfafdd7401dede6ef9563818 Author: Jiang Liu Date: Tue Apr 14 10:29:50 2015 +0800 x86/irq: Remove irq_cfg.irq_remapped Now there is no user of irq_cfg.irq_remapped, so remove it. Signed-off-by: Jiang Liu Tested-by: Joerg Roedel Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Greg Kroah-Hartman Cc: iommu@lists.linux-foundation.org Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Cc: Joerg Roedel Link: http://lkml.kernel.org/r/1428978610-28986-14-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/include/asm/hw_irq.h | 1 - drivers/iommu/amd_iommu.c | 1 - drivers/iommu/intel_irq_remapping.c | 2 -- 3 files changed, 4 deletions(-) commit 4c77c983868ef652bcfc207b40054620219ac2a3 Author: Jiang Liu Date: Tue Apr 14 10:29:49 2015 +0800 irq_remapping: Clean up unused interfaces Now we have converted to hierarchical irqdomains, so clean up unused interfaces. Signed-off-by: Jiang Liu Tested-by: Joerg Roedel Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Greg Kroah-Hartman Cc: iommu@lists.linux-foundation.org Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Cc: Joerg Roedel Link: http://lkml.kernel.org/r/1428978610-28986-13-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner drivers/iommu/irq_remapping.h | 16 ---------------- 1 file changed, 16 deletions(-) commit 494b89749f3857d4e726c0715fe2db6cf40cc82c Author: Jiang Liu Date: Tue Apr 14 10:29:48 2015 +0800 irq_remapping/amd: Clean up unsued code Now we have converted to hierarchical irqdomains, so clean up unused code. Signed-off-by: Jiang Liu Tested-by: Joerg Roedel Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Greg Kroah-Hartman Cc: iommu@lists.linux-foundation.org Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Cc: Joerg Roedel Link: http://lkml.kernel.org/r/1428978610-28986-12-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner drivers/iommu/amd_iommu.c | 144 ---------------------------------------------- 1 file changed, 144 deletions(-) commit 3c6e567509ed4e60593b1683a1e557c34e503be6 Author: Jiang Liu Date: Tue Apr 14 10:29:47 2015 +0800 irq_remapping/vt-d: Clean up unsued code Now we have converted to hierarchical irqdomains, so clean up unused code. Signed-off-by: Jiang Liu Tested-by: Joerg Roedel Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Greg Kroah-Hartman Cc: iommu@lists.linux-foundation.org Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Cc: Joerg Roedel Link: http://lkml.kernel.org/r/1428978610-28986-11-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner drivers/iommu/intel_irq_remapping.c | 187 +----------------------------------- 1 file changed, 1 insertion(+), 186 deletions(-) commit 9880534989ba96faad26aebc01dcdb2c1b5793aa Author: Jiang Liu Date: Tue Apr 14 10:29:46 2015 +0800 irq_remapping: Clean up unsued code to support IOAPIC Now we have converted to hierarchical irqdomains, so clean up unused code. Signed-off-by: Jiang Liu Tested-by: Joerg Roedel Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Greg Kroah-Hartman Cc: iommu@lists.linux-foundation.org Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Cc: Joerg Roedel Link: http://lkml.kernel.org/r/1428978610-28986-10-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/include/asm/irq_remapping.h | 23 ----------------------- arch/x86/kernel/apic/vector.c | 1 - drivers/iommu/irq_remapping.c | 33 --------------------------------- 3 files changed, 57 deletions(-) commit 3dd786ea3a0753bb19a5fd5103739a7cb9ec92c1 Author: Jiang Liu Date: Tue Apr 14 10:29:45 2015 +0800 x86/irq: Clean up unused forward declarations in x86_init.h Clean up unused forward declarations in x86_init.h. Signed-off-by: Jiang Liu Tested-by: Joerg Roedel Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Joerg Roedel Cc: Greg Kroah-Hartman Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Cc: Yijing Wang Link: http://lkml.kernel.org/r/1428978610-28986-9-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/include/asm/x86_init.h | 6 ------ 1 file changed, 6 deletions(-) commit baac16952635445addaf397bad74e847db821d6d Author: Jiang Liu Date: Tue Apr 14 10:29:44 2015 +0800 x86/irq: Remove GENERIC_IRQ_LEGACY_ALLOC_HWIRQ There's no user of irq_alloc_hwirqs(), irq_alloc_hwirq(), irq_free_hwirqs() and irq_free_hwirq() in x86 anymore, so remove GENERIC_IRQ_LEGACY_ALLOC_HWIRQ and related code. Signed-off-by: Jiang Liu Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Joerg Roedel Cc: Greg Kroah-Hartman Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Link: http://lkml.kernel.org/r/1428978610-28986-8-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/Kconfig | 1 - arch/x86/kernel/apic/vector.c | 34 ---------------------------------- 2 files changed, 35 deletions(-) commit ad66e1efc95e548598b032c1fe5bbc34f6460547 Author: Jiang Liu Date: Tue Apr 14 10:29:43 2015 +0800 x86/irq: Remove x86_io_apic_ops.eoi_ioapic_pin and related interfaces Now there is no user of x86_io_apic_ops.eoi_ioapic_pin anymore, so remove it. Signed-off-by: Jiang Liu Tested-by: Joerg Roedel Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Greg Kroah-Hartman Cc: iommu@lists.linux-foundation.org Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Cc: Joerg Roedel Cc: Yijing Wang Cc: Grant Likely Link: http://lkml.kernel.org/r/1428978610-28986-7-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/include/asm/io_apic.h | 7 ------- arch/x86/include/asm/x86_init.h | 1 - arch/x86/kernel/apic/io_apic.c | 20 ++++---------------- arch/x86/kernel/x86_init.c | 1 - drivers/iommu/irq_remapping.c | 19 ------------------- 5 files changed, 4 insertions(+), 44 deletions(-) commit aa5cb97f14a2dd5aefabed6538c35ebc087d7c24 Author: Jiang Liu Date: Tue Apr 14 10:29:42 2015 +0800 x86/irq: Remove x86_io_apic_ops.set_affinity and related interfaces Now there is no user of x86_io_apic_ops.set_affinity anymore, so remove it. Signed-off-by: Jiang Liu Tested-by: Joerg Roedel Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Greg Kroah-Hartman Cc: iommu@lists.linux-foundation.org Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Cc: Joerg Roedel Cc: Yijing Wang Cc: Grant Likely Link: http://lkml.kernel.org/r/1428978610-28986-6-git-send-email-jiang.liu@linux.intel.com arch/x86/include/asm/io_apic.h | 4 ---- arch/x86/include/asm/x86_init.h | 3 --- arch/x86/kernel/apic/io_apic.c | 25 +------------------------ arch/x86/kernel/x86_init.c | 1 - drivers/iommu/irq_remapping.c | 15 --------------- 5 files changed, 1 insertion(+), 47 deletions(-) commit 35d50d8fd5b8f932b3e71311a4cbd4384501ab9a Author: Jiang Liu Date: Tue Apr 14 10:29:41 2015 +0800 x86/irq: Remove x86_io_apic_ops.setup_entry and related interfaces Now there is no user of x86_io_apic_ops.setup_entry anymore, so remove it. Signed-off-by: Jiang Liu Tested-by: Joerg Roedel Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Greg Kroah-Hartman Cc: iommu@lists.linux-foundation.org Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Cc: Joerg Roedel Cc: Yijing Wang Cc: Grant Likely Link: http://lkml.kernel.org/r/1428978610-28986-5-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/include/asm/io_apic.h | 4 ---- arch/x86/include/asm/irq_remapping.h | 13 ------------- arch/x86/include/asm/x86_init.h | 3 --- arch/x86/kernel/apic/io_apic.c | 24 ------------------------ arch/x86/kernel/x86_init.c | 1 - drivers/iommu/irq_remapping.c | 13 ------------- 6 files changed, 58 deletions(-) commit 84bea5cc7709dffdadfa9885a66efd67d9ffc24c Author: Jiang Liu Date: Tue Apr 14 10:29:40 2015 +0800 x86/irq: Remove x86_io_apic_ops.print_entries and related interfaces Now there is no user of x86_io_apic_ops.print_entries anymore, so remove it. Signed-off-by: Jiang Liu Tested-by: Joerg Roedel Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Greg Kroah-Hartman Cc: iommu@lists.linux-foundation.org Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Cc: Joerg Roedel Cc: Yijing Wang Cc: Grant Likely Link: http://lkml.kernel.org/r/1428978610-28986-4-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/include/asm/io_apic.h | 3 -- arch/x86/include/asm/x86_init.h | 1 - arch/x86/kernel/apic/io_apic.c | 55 ------------------------------------- arch/x86/kernel/x86_init.c | 1 - drivers/iommu/intel_irq_remapping.c | 7 ----- 5 files changed, 67 deletions(-) commit b75e818f7fc6db153a4ebfba1d31366c1cc531aa Author: Jiang Liu Date: Tue Apr 14 10:29:39 2015 +0800 x86/irq: Remove unused struct mp_pin_info Now nobody makes use of struct mp_pin_info, so remove it. Signed-off-by: Jiang Liu Tested-by: Joerg Roedel Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Joerg Roedel Cc: Greg Kroah-Hartman Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Cc: Grant Likely Link: http://lkml.kernel.org/r/1428978610-28986-3-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/kernel/apic/io_apic.c | 30 +++--------------------------- 1 file changed, 3 insertions(+), 27 deletions(-) commit 5ad274d41c1b3f3ccf73591078efaa8ed6828a8d Author: Jiang Liu Date: Tue Apr 14 10:29:38 2015 +0800 x86/irq: Remove unused old IOAPIC irqdomain interfaces Now we have converted to hierarchical irqdomain, so remove unused old IOAPIC interfaces and code. Signed-off-by: Jiang Liu Tested-by: Joerg Roedel Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Joerg Roedel Cc: Greg Kroah-Hartman Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Cc: Grant Likely Link: http://lkml.kernel.org/r/1428978610-28986-2-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/include/asm/io_apic.h | 4 - arch/x86/kernel/apic/io_apic.c | 202 +---------------------------------------- 2 files changed, 1 insertion(+), 205 deletions(-) commit d32932d02e1869be838cea3ace42467c360db377 Author: Jiang Liu Date: Mon Apr 13 14:11:59 2015 +0800 x86/irq: Convert IOAPIC to use hierarchical irqdomain interfaces Convert IOAPIC driver to support and use hierarchical irqdomain interfaces. It's a little big, but would break bisecting if we split it into multiple patches. Fold in a patch from Andy Shevchenko to make it bisectable. http://lkml.org/lkml/2014/12/10/622 Signed-off-by: Jiang Liu Tested-by: Joerg Roedel Cc: Konrad Rzeszutek Wilk Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Joerg Roedel Cc: Greg Kroah-Hartman Cc: Andy Shevchenko Cc: sfi-devel@simplefirmware.org Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Cc: Len Brown Cc: Pavel Machek Cc: Grant Likely Cc: Rob Herring Cc: David Rientjes Cc: David Cohen Link: http://lkml.kernel.org/r/1428905519-23704-38-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/kernel/acpi/boot.c | 11 +- arch/x86/kernel/apic/io_apic.c | 308 ++++++++++++++------- arch/x86/kernel/devicetree.c | 37 +-- arch/x86/kernel/mpparse.c | 6 +- arch/x86/pci/intel_mid_pci.c | 2 - .../platform/intel-mid/device_libs/platform_wdt.c | 3 +- arch/x86/platform/intel-mid/sfi.c | 5 +- arch/x86/platform/sfi/sfi.c | 5 +- 8 files changed, 240 insertions(+), 137 deletions(-) commit 96ed44b2d5e0e9d6e5b135e84ea5c8cd763ce861 Author: Jiang Liu Date: Mon Apr 13 14:11:58 2015 +0800 x86/irq: Introduce helper functions to support hierarchical irqdomains for IOAPIC Introduce several helper functions, which will be used to enable hierarchical irqdomain for IOAPIC. Signed-off-by: Jiang Liu Tested-by: Joerg Roedel Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Joerg Roedel Cc: Greg Kroah-Hartman Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Cc: Grant Likely Link: http://lkml.kernel.org/r/1428905519-23704-37-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/kernel/apic/io_apic.c | 61 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) commit a44174ee7b380012cdb63d563617f67bb7757649 Author: Jiang Liu Date: Mon Apr 13 14:11:57 2015 +0800 x86/irq: Simplify the way to print IOAPIC entry Simplify the way to print IOAPIC entry content, so we can remove native_io_apic_print_entries(), intel_ir_io_apic_print_entries() and x86_io_apic_ops.print_entries() later. Folded a patch from Thomas to fix errors in printed pin attributes, http://www.spinics.net/lists/linux-tip-commits/msg26108.html Signed-off-by: Jiang Liu Tested-by: Joerg Roedel Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Joerg Roedel Cc: Greg Kroah-Hartman Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Cc: Grant Likely Link: http://lkml.kernel.org/r/1428905519-23704-36-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/kernel/apic/io_apic.c | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) commit 133153205b263ea9ce4e771876ede544f896e034 Author: Jiang Liu Date: Mon Apr 13 14:11:56 2015 +0800 x86/irq: Refine the way to allocate irq_cfg for legacy IRQs To support legacy ISA IRQs, we need to preallocate irq_cfg structures for legacy ISA IRQs. Refine the way to allocate irq_cfg for legacy ISA IRQs, so it's more friendly for the hierarchical irqdomain implementation. Signed-off-by: Jiang Liu Tested-by: Joerg Roedel Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Joerg Roedel Cc: Greg Kroah-Hartman Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Cc: Grant Likely Link: http://lkml.kernel.org/r/1428905519-23704-35-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/kernel/apic/io_apic.c | 13 +------------ arch/x86/kernel/apic/vector.c | 42 +++++++++++++++++++++++++++++++++++++++++- 2 files changed, 42 insertions(+), 13 deletions(-) commit 49c7e60022912d10da88ba67e8eb2927f1143f6a Author: Jiang Liu Date: Mon Apr 13 14:11:55 2015 +0800 x86/irq: Implement callbacks to enable hierarchical irqdomains on IOAPICs Implement required callbacks to prepare for enabling hierarchical irqdomains on IOAPICs. After the conversion we can remove quite some code from the old implementation. Signed-off-by: Jiang Liu Tested-by: Joerg Roedel Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Joerg Roedel Cc: Greg Kroah-Hartman Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Cc: Jan Beulich Cc: Grant Likely Link: http://lkml.kernel.org/r/1428905519-23704-34-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/include/asm/io_apic.h | 10 +++ arch/x86/kernel/apic/io_apic.c | 159 ++++++++++++++++++++++++++++++++++++++++- 2 files changed, 166 insertions(+), 3 deletions(-) commit c4d05a2c354b15965c9b2a5f46016a5d9f43e224 Author: Jiang Liu Date: Mon Apr 13 14:11:54 2015 +0800 x86/irq: Prepare IOAPIC interfaces to support hierarchical irqdomains Introduce helper functions to manipulate struct irq_alloc_info for IOAPIC. Also add an extra parameter to IOAPIC interfaces to prepare for hierarchical irqdomain. Function mp_set_gsi_attr() will be removed once we have switched to hierarchical irqdomains. Signed-off-by: Jiang Liu Tested-by: Joerg Roedel Cc: Konrad Rzeszutek Wilk Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Joerg Roedel Cc: Greg Kroah-Hartman Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Cc: Len Brown Cc: Pavel Machek Cc: Jan Beulich Cc: Grant Likely Cc: David Cohen Link: http://lkml.kernel.org/r/1428905519-23704-33-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/include/asm/io_apic.h | 14 ++++++-- arch/x86/kernel/acpi/boot.c | 6 ++-- arch/x86/kernel/apic/io_apic.c | 39 ++++++++++++++-------- arch/x86/pci/intel_mid_pci.c | 4 ++- .../platform/intel-mid/device_libs/platform_wdt.c | 4 ++- arch/x86/platform/intel-mid/sfi.c | 9 +++-- 6 files changed, 54 insertions(+), 22 deletions(-) commit 4e69d7eab4c24aa88fb0ec99fad7feac254d9ece Author: Jiang Liu Date: Mon Apr 13 14:11:53 2015 +0800 x86/irq: Remove unused pre_init_apic_IRQ0() Now there's no user of pre_init_apic_IRQ0(), so remove it. Signed-off-by: Jiang Liu Tested-by: Andy Shevchenko Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Joerg Roedel Cc: Greg Kroah-Hartman Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Cc: Jan Beulich Cc: Grant Likely Link: http://lkml.kernel.org/r/1428905519-23704-32-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/include/asm/io_apic.h | 1 - arch/x86/kernel/apic/io_apic.c | 17 ----------------- 2 files changed, 18 deletions(-) commit b0415817cb7960f408da51e6fedecc6a19e2b895 Author: Jiang Liu Date: Mon Apr 13 14:11:52 2015 +0800 x86/intel-mid, trivial: Refine code syntax for sfi_parse_mtmr() Correctly indent code in function sfi_parse_mtmr(). Signed-off-by: Jiang Liu Tested-by: Andy Shevchenko Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Joerg Roedel Cc: Greg Kroah-Hartman Cc: H. Peter Anvin Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Cc: Jiri Kosina Link: http://lkml.kernel.org/r/1428905519-23704-31-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/platform/intel-mid/sfi.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit 6648d1b42c349d748839d7bad91cc8a65c73e262 Author: Thomas Gleixner Date: Mon Apr 13 14:11:51 2015 +0800 x86/intel-mid: Delay initialization of APB timer MID has no PIC, but depending on the platform it requires the abt_timer, which is connected to irq0. The timer is set up at late_time_init(). But, looking at the MID code it seems, that there is no reason to do so. The only code which might need the timer working is the TSC calibration code, but thats a non issue on MID as that is using its own empty calibration function. And check_timer() is not invoked either because MID has no PIC and therefor no legacy irqs. So if you look at intel_mid_time_init() then you'll see that in the ARAT case the timer setup is skipped already. So until the point where x86_init.timers.setup_percpu_clockev() is called for the boot cpu nothing really needs a timer on MID. According to the MID code the apbt horror is only used for moorestown. Medfield and later use the local apic timer without the apbt nonsense. The best thing we can do is to drop moorestown support and get rid of that apbt nonsense alltogether. I don't think anyone deeply cares about it not being supported from 3.18 on. The number of devices which sport a moorestown should be pretty limited and the only relevant use case of those is to act as a pocket heater with short battery life time. Its pretty pointless to update kernels on pocket heaters except for bragging reasons. If someone at Intel really thinks that we need to keep moorestown alive for other than documentary and sentimental reasons, then we can move the apbt setup to x86_init.timers.setup_percpu_clockev(). At that point the IOAPIC is setup already, so it should just work. Signed-off-by: Thomas Gleixner Tested-by: Andy Shevchenko Signed-off-by: Jiang Liu Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Joerg Roedel Cc: Greg Kroah-Hartman Cc: H. Peter Anvin Cc: Kuppuswamy Sathyanarayanan Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Cc: Rickard Strandqvist Link: http://lkml.kernel.org/r/1428905519-23704-30-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/kernel/apb_timer.c | 4 ---- arch/x86/platform/intel-mid/intel-mid.c | 18 +++++++++++++----- arch/x86/platform/intel-mid/sfi.c | 2 -- 3 files changed, 13 insertions(+), 11 deletions(-) commit 0cddfc79462423bf86cbe34560bad07f4a25ded6 Author: Jiang Liu Date: Mon Apr 13 14:11:50 2015 +0800 irq_remapping: Remove unused function irq_remapping_print_chip() Now there's no user of irq_remapping_print_chip() anymore, so remove it. Signed-off-by: Jiang Liu Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Greg Kroah-Hartman Cc: Joerg Roedel Cc: iommu@lists.linux-foundation.org Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Cc: Joerg Roedel Link: http://lkml.kernel.org/r/1428905519-23704-29-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/include/asm/irq_remapping.h | 2 -- drivers/iommu/irq_remapping.c | 13 ------------- 2 files changed, 15 deletions(-) commit e390d895ae14ad655c6b830e62a22a81b69290ef Author: Jiang Liu Date: Mon Apr 13 14:11:49 2015 +0800 x86/irq: Simplify MSI/DMAR/HPET implementation by using common code Use common MSI interfaces instead of private implementations of the same functionality to simplify DMAR/HPET driver implementation. Signed-off-by: Jiang Liu Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Joerg Roedel Cc: Greg Kroah-Hartman Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Link: http://lkml.kernel.org/r/1428905519-23704-28-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/kernel/apic/msi.c | 192 +++++++++++++-------------------------------- 1 file changed, 54 insertions(+), 138 deletions(-) commit 62ac1780830ed64a9a46f80a03e91de71957d670 Author: Jiang Liu Date: Mon Apr 13 14:11:48 2015 +0800 x86/irq: Implement irq_chip.irq_write_msi_msg for MSI/DMAR/HPET irq_chips Implement irq_chip.irq_write_msi_msg for MSI/DMAR/HPET irq_chips, they will be used to replace duplicated code. Signed-off-by: Jiang Liu Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Joerg Roedel Cc: Greg Kroah-Hartman Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Link: http://lkml.kernel.org/r/1428905519-23704-27-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/kernel/apic/msi.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 90d84fe95dd6b418383aa0e0e5cace8f1b1e7e30 Author: Jiang Liu Date: Mon Apr 13 14:11:47 2015 +0800 x86/MSI: Replace msi_update_msg() with irq_chip_compose_msi_msg() Function irq_chip_compose_msi_msg() can achieve the same goal as msi_update_msg(), so remove msi_update_msg(). Signed-off-by: Jiang Liu Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Joerg Roedel Cc: Greg Kroah-Hartman Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Link: http://lkml.kernel.org/r/1428905519-23704-26-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/kernel/apic/msi.c | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-) commit 68682a2687bf7dbe51309d297757a7ea6a96d312 Author: Jiang Liu Date: Mon Apr 13 14:11:46 2015 +0800 x86/MSI: Simplify the way to deal with remapped MSI interrupts Simplify the way to deal with remapped MSI interrupts, so we can remove irq_chip.irq_print_chip later. We simply change the name when the setup detects that the parent domain is remapping. Signed-off-by: Jiang Liu Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Joerg Roedel Cc: Greg Kroah-Hartman Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Link: http://lkml.kernel.org/r/1428905519-23704-25-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/kernel/apic/msi.c | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) commit 81dabe2e739d5e0ad8ca2369738fb84bd64f967d Author: Jiang Liu Date: Mon Apr 13 14:11:45 2015 +0800 x86/irq: Normalize x86 irq_chip name Some irq_chip names use underscore, others use hyphen. So normalize them to use hyphen as separator. Signed-off-by: Jiang Liu Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Joerg Roedel Cc: Greg Kroah-Hartman Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Link: http://lkml.kernel.org/r/1428905519-23704-24-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/kernel/apic/msi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 43fe1abc18a237581663a51da4c2f8e57684c223 Author: Jiang Liu Date: Mon Apr 13 14:11:44 2015 +0800 x86/uv: Use hierarchical irqdomain to manage UV interrupts Enhance UV code to support hierarchical irqdomain, it helps to make the architecture more clear. We construct hwirq based on mmr_blade and mmr_offset, but mmr_offset has type unsigned long, it may exceed the range of irq_hw_number_t. So help about the way to construct hwirq based on mmr_blade and mmr_offset is welcomed! Folded a patch from Dimitri Sivanich to fix a bug on UV platforms, please refer to: http://lkml.org/lkml/2014/12/16/351 Signed-off-by: Jiang Liu Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Joerg Roedel Cc: Greg Kroah-Hartman Cc: Russ Anderson Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Link: http://lkml.kernel.org/r/1428905519-23704-23-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/include/asm/hw_irq.h | 9 ++ arch/x86/platform/uv/uv_irq.c | 290 ++++++++++++++++-------------------------- 2 files changed, 119 insertions(+), 180 deletions(-) commit 49e07d8f28c05347f237146a9ec66f6d958db83e Author: Jiang Liu Date: Mon Apr 13 14:11:43 2015 +0800 x86/htirq: Use hierarchical irqdomain to manage Hypertransport interrupts We have slightly changed the architecture interfaces to support htirq PCI driver. It's safe because currently Hypertransport interrupt is only enabled on x86 platforms. Signed-off-by: Jiang Liu Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Joerg Roedel Cc: Greg Kroah-Hartman Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Link: http://lkml.kernel.org/r/1428905519-23704-22-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/include/asm/hw_irq.h | 13 ++++ arch/x86/kernel/apic/htirq.c | 161 +++++++++++++++++++++++++++++++----------- arch/x86/kernel/apic/vector.c | 1 + drivers/pci/htirq.c | 47 ++---------- include/linux/htirq.h | 24 +++++-- 5 files changed, 158 insertions(+), 88 deletions(-) commit 0921f1da6425f05a1f56803069124b7ec13b79e2 Author: Jiang Liu Date: Mon Apr 13 14:11:42 2015 +0800 x86/irq: Use hierarchical irqdomain to manage DMAR interrupts Enhance DMAR code to support hierarchical irqdomain, it helps to make the architecture more clear. Signed-off-by: Jiang Liu Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Joerg Roedel Cc: Greg Kroah-Hartman Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Link: http://lkml.kernel.org/r/1428905519-23704-21-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/include/asm/hw_irq.h | 7 ++ arch/x86/kernel/apic/msi.c | 153 ++++++++++++++++++++++++++---------------- 2 files changed, 103 insertions(+), 57 deletions(-) commit 34742db8eaf9ff364034f214ee5827701e131d4b Author: Jiang Liu Date: Mon Apr 13 14:11:41 2015 +0800 iommu/vt-d: Refine the interfaces to create IRQ for DMAR unit Refine the interfaces to create IRQ for DMAR unit. It's a preparation for converting DMAR IRQ to hierarchical irqdomain on x86. It also moves dmar_alloc_hwirq()/dmar_free_hwirq() from irq_remapping.h to dmar.h. They are not irq_remapping specific. Signed-off-by: Jiang Liu Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Greg Kroah-Hartman Cc: iommu@lists.linux-foundation.org Cc: Vinod Koul Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Cc: Tony Luck Cc: Fenghua Yu Cc: Joerg Roedel Link: http://lkml.kernel.org/r/1428905519-23704-20-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/ia64/include/asm/irq_remapping.h | 2 -- arch/ia64/kernel/msi_ia64.c | 30 +++++++++++++++++++----------- arch/x86/include/asm/irq_remapping.h | 4 ---- arch/x86/kernel/apic/msi.c | 24 +++++++++++++----------- drivers/iommu/dmar.c | 19 +++++-------------- include/linux/dmar.h | 3 ++- 6 files changed, 39 insertions(+), 43 deletions(-) commit b1855c752e67d1125d41fadb499014b49a245db8 Author: Jiang Liu Date: Mon Apr 13 14:11:40 2015 +0800 x86/MSI: Clean up unused MSI related code and interfaces Now MSI interrupt has been converted to new hierarchical irqdomain interfaces, so remove legacy MSI related code and interfaces. Signed-off-by: Jiang Liu Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Joerg Roedel Cc: Greg Kroah-Hartman Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Cc: Yijing Wang Link: http://lkml.kernel.org/r/1428905519-23704-19-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/include/asm/hpet.h | 9 ------- arch/x86/include/asm/x86_init.h | 4 --- arch/x86/kernel/apic/msi.c | 55 +++-------------------------------------- 3 files changed, 4 insertions(+), 64 deletions(-) commit 7a53a12162cbe5feb66380b96cc794a031a8f39a Author: Jiang Liu Date: Mon Apr 13 14:11:39 2015 +0800 irq_remapping: Clean up unused MSI related code Now MSI interrupt has been converted to new hierarchical irqdomain interfaces, so remove legacy MSI related code and interfaces. Signed-off-by: Jiang Liu Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Greg Kroah-Hartman Cc: iommu@lists.linux-foundation.org Cc: Rafael J. Wysocki Cc: Joerg Roedel Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Cc: Joerg Roedel Cc: Yijing Wang Link: http://lkml.kernel.org/r/1428905519-23704-18-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/include/asm/irq_remapping.h | 13 --- arch/x86/include/asm/pci.h | 5 -- arch/x86/kernel/x86_init.c | 2 - drivers/iommu/irq_remapping.c | 151 ----------------------------------- drivers/iommu/irq_remapping.h | 14 ---- 5 files changed, 185 deletions(-) commit 3c3d4f90f6f80cce357ef013baf1327a9b9d5732 Author: Jiang Liu Date: Mon Apr 13 14:11:38 2015 +0800 irq_remapping/amd: Clean up unused MSI related code Now MSI interrupt has been converted to new hierarchical irqdomain interfaces, so remove legacy MSI related code. Signed-off-by: Jiang Liu Acked-by: Joerg Roedel Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Greg Kroah-Hartman Cc: iommu@lists.linux-foundation.org Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Cc: Joerg Roedel Link: http://lkml.kernel.org/r/1428905519-23704-17-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner drivers/iommu/amd_iommu.c | 115 +--------------------------------------------- 1 file changed, 2 insertions(+), 113 deletions(-) commit 2b43817e481da9f5118adb56aef46b3f0298c685 Author: Jiang Liu Date: Mon Apr 13 14:11:37 2015 +0800 irq_remapping/vt-d: Clean up unused MSI related code Now MSI interrupt has been converted to new hierarchical irqdomain interfaces, so remove legacy MSI related code. Signed-off-by: Jiang Liu Acked-by: Joerg Roedel Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Greg Kroah-Hartman Cc: iommu@lists.linux-foundation.org Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Cc: Joerg Roedel Link: http://lkml.kernel.org/r/1428905519-23704-16-git-send-email-jiang.liu@linux.intel.com drivers/iommu/intel_irq_remapping.c | 144 ------------------------------------ 1 file changed, 144 deletions(-) commit 80aa283364a17998dceb577bd185e3380b927544 Author: Jiang Liu Date: Mon Apr 13 14:11:36 2015 +0800 x86/irq: Directly call native_compose_msi_msg() for DMAR IRQ DMAR interrupt won't be remapped by interrupt remapping hardware, so directly call native_compose_msi_msg() for DMAR IRQ to compose MSI message data. This will help to simplify MSI code later. Signed-off-by: Jiang Liu Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Joerg Roedel Cc: Greg Kroah-Hartman Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Link: http://lkml.kernel.org/r/1428905519-23704-15-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/kernel/apic/msi.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 52f518a3a7c2f80551a38d38be28bc9f335e713c Author: Jiang Liu Date: Mon Apr 13 14:11:35 2015 +0800 x86/MSI: Use hierarchical irqdomains to manage MSI interrupts Enhance MSI code to support hierarchical irqdomains, it helps to make the architecture more clear. Signed-off-by: Jiang Liu Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Greg Kroah-Hartman Cc: iommu@lists.linux-foundation.org Cc: Joerg Roedel Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Cc: Joerg Roedel Link: http://lkml.kernel.org/r/1428905519-23704-14-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/Kconfig | 1 + arch/x86/include/asm/hw_irq.h | 9 ++- arch/x86/include/asm/irq_remapping.h | 6 +- arch/x86/include/asm/msi.h | 7 ++ arch/x86/kernel/apic/msi.c | 141 +++++++++++++++++++---------------- arch/x86/kernel/apic/vector.c | 2 + drivers/iommu/irq_remapping.c | 1 - 7 files changed, 94 insertions(+), 73 deletions(-) commit 3cb96f0c97330834929abe9bd2ca3c252a83def0 Author: Jiang Liu Date: Mon Apr 13 14:11:34 2015 +0800 x86/hpet: Enhance HPET IRQ to support hierarchical irqdomains Signed-off-by: Jiang Liu Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Joerg Roedel Cc: Greg Kroah-Hartman Cc: Srivatsa S. Bhat Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Cc: Andy Lutomirski Link: http://lkml.kernel.org/r/1428905519-23704-13-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/include/asm/hpet.h | 7 +- arch/x86/kernel/apic/msi.c | 166 +++++++++++++++++++++++++++++++++++++++----- arch/x86/kernel/hpet.c | 57 ++++----------- 3 files changed, 167 insertions(+), 63 deletions(-) commit 7c71d306c97bd060e1a97d6905aebcb5769890ca Author: Jiang Liu Date: Mon Apr 13 14:11:33 2015 +0800 irq_remapping/amd: Enhance AMD IR driver to support hierarchical irqdomains Signed-off-by: Jiang Liu Acked-by: Joerg Roedel Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Greg Kroah-Hartman Cc: iommu@lists.linux-foundation.org Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Cc: Joerg Roedel Link: http://lkml.kernel.org/r/1428905519-23704-12-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner drivers/iommu/amd_iommu.c | 329 +++++++++++++++++++++++++++++++++++++++- drivers/iommu/amd_iommu_init.c | 4 + drivers/iommu/amd_iommu_proto.h | 9 ++ drivers/iommu/amd_iommu_types.h | 5 + 4 files changed, 341 insertions(+), 6 deletions(-) commit b106ee63abccbba5f5a52d6e43168a6a30c6d98a Author: Jiang Liu Date: Mon Apr 13 14:11:32 2015 +0800 irq_remapping/vt-d: Enhance Intel IR driver to support hierarchical irqdomains Enhance Intel interrupt remapping driver to support hierarchical irqdomains. Implement intel_ir_chip to support stacked irq_chip. Signed-off-by: Jiang Liu Acked-by: Joerg Roedel Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Greg Kroah-Hartman Cc: iommu@lists.linux-foundation.org Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Cc: Joerg Roedel Cc: David Woodhouse Link: http://lkml.kernel.org/r/1428905519-23704-11-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner drivers/iommu/intel_irq_remapping.c | 337 +++++++++++++++++++++++++++++++++++- include/linux/intel-iommu.h | 4 + 2 files changed, 333 insertions(+), 8 deletions(-) commit 8dedf4cf5a52eafd2160609c11d3206c06e32b36 Author: Jiang Liu Date: Mon Apr 13 14:11:31 2015 +0800 irq_remapping/vt-d: Change prototypes to prepare for hierarchical irqdomain Prepare for the conversion to hierarchical irqdomains by changing function prototypes. No functional changes. Signed-off-by: Jiang Liu Acked-by: Joerg Roedel Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Greg Kroah-Hartman Cc: iommu@lists.linux-foundation.org Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Cc: Joerg Roedel Link: http://lkml.kernel.org/r/1428905519-23704-10-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner drivers/iommu/intel_irq_remapping.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) commit 947045a2aac1157c85a24984c9a8128846ae7266 Author: Jiang Liu Date: Mon Apr 13 14:11:30 2015 +0800 irq_remapping: Introduce new interfaces to support hierarchical irqdomains Introduce new interfaces for interrupt remapping drivers to support hierarchical irqdomains: 1) irq_remapping_get_ir_irq_domain(): get irqdomain associated with an interrupt remapping unit. IOAPIC/HPET drivers use this interface to get parent interrupt remapping irqdomain. 2) irq_remapping_get_irq_domain(): get irqdomain for an IRQ allocation. This is mainly used to support MSI irqdomain. We must build one MSI irqdomain for each interrupt remapping unit. MSI driver calls this interface to get MSI irqdomain associated with an IR irqdomain which manages the PCI devices. In a further step we will store the irqdomain pointer in the device struct to avoid this call in the irq allocation path. Architecture specific hooks: 1) arch_get_ir_parent_domain(): get parent irqdomain for IR irqdomain, which is x86_vector_domain on x86 platforms. 2) arch_create_msi_irq_domain(): create an MSI irqdomain associated with the interrupt remapping unit. We also add following callbacks into struct irq_remap_ops: struct irq_domain *(*get_ir_irq_domain)(struct irq_alloc_info *); struct irq_domain *(*get_irq_domain)(struct irq_alloc_info *); Once all clients of IR have been converted to the new hierarchical irqdomain interfaces, we will: 1) Remove set_ioapic_entry, set_affinity, free_irq, compose_msi_msg, msi_alloc_irq, msi_setup_irq, setup_hpet_msi from struct remap_osp 2) Remove setup_ioapic_remapped_entry, free_remapped_irq, compose_remapped_msi_msg, setup_hpet_msi_remapped, setup_remapped_irq. 3) Simplify x86_io_apic_ops and x86_msi. We can achieve a way clearer architecture with all these changes applied. Signed-off-by: Jiang Liu Acked-by: Joerg Roedel Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Greg Kroah-Hartman Cc: iommu@lists.linux-foundation.org Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Cc: Joerg Roedel Link: http://lkml.kernel.org/r/1428905519-23704-9-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/include/asm/hw_irq.h | 37 ++++++++++++++++++++++++++ arch/x86/include/asm/irq_remapping.h | 36 ++++++++++++++++++++++++++ drivers/iommu/irq_remapping.c | 50 +++++++++++++++++++++++++++++++++++- drivers/iommu/irq_remapping.h | 10 ++++++++ 4 files changed, 132 insertions(+), 1 deletion(-) commit a62b32cdd0a6324c959f40b3c9b928b275297066 Author: Jiang Liu Date: Mon Apr 13 14:11:29 2015 +0800 x86/dmar: Use new irqdomain interfaces to allocate/free IRQ Use new irqdomain interfaces to allocate/free IRQ for DMAR and interrupt remapping, so we can remove GENERIC_IRQ_LEGACY_ALLOC_HWIRQ later. The private definitions of irq_alloc_hwirqs()/irq_free_hwirqs() are a temporary solution, they will be removed once we have converted the interrupt remapping driver to use irqdomain framework. Signed-off-by: Jiang Liu Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Greg Kroah-Hartman Cc: iommu@lists.linux-foundation.org Cc: Joerg Roedel Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Cc: Joerg Roedel Link: http://lkml.kernel.org/r/1428905519-23704-8-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/include/asm/irq_remapping.h | 4 ++-- arch/x86/kernel/apic/msi.c | 10 ++++++++++ drivers/iommu/irq_remapping.c | 17 +++++++++++++++-- 3 files changed, 27 insertions(+), 4 deletions(-) commit af87baedf2c23b1181f51323339210a26a64f7fc Author: Jiang Liu Date: Mon Apr 13 14:11:28 2015 +0800 x86/htirq: Use new irqdomain interfaces to allocate/free IRQ Use new irqdomain interfaces to allocate/free IRQ for HTIRQ, so we can remove GENERIC_IRQ_LEGACY_ALLOC_HWIRQ later. This patch changes the interfaces between arch independent PCI driver and arch specific code. Currently HT_IRQ is only enabled on x86, so it does not affect other architectures. Signed-off-by: Jiang Liu Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Joerg Roedel Cc: Greg Kroah-Hartman Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Link: http://lkml.kernel.org/r/1428905519-23704-7-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/kernel/apic/htirq.c | 26 +++++++++++++------------- drivers/pci/htirq.c | 7 +++---- include/linux/htirq.h | 2 ++ 3 files changed, 18 insertions(+), 17 deletions(-) commit 331dd19eee243e1b7e670c5993609121817afeaa Author: Jiang Liu Date: Mon Apr 13 14:11:27 2015 +0800 x86/uv: Use new irqdomain interfaces to allocate/free IRQ Use new irqdomain interfaces to allocate/free IRQ, so we can remove GENERIC_IRQ_LEGACY_ALLOC_HWIRQ later. Signed-off-by: Jiang Liu Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Joerg Roedel Cc: Greg Kroah-Hartman Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Link: http://lkml.kernel.org/r/1428905519-23704-6-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/platform/uv/uv_irq.c | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) commit 4c8f9960ee497020d0858362c81ece984bc89aa5 Author: Jiang Liu Date: Mon Apr 13 14:11:26 2015 +0800 x86/MSI: Use new irqdomain interfaces to allocate/free IRQ Use new irqdomain interfaces to allocate/free IRQ for PCI MSI, so we can remove GENERIC_IRQ_LEGACY_ALLOC_HWIRQ later. Signed-off-by: Jiang Liu Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Joerg Roedel Cc: Greg Kroah-Hartman Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Link: http://lkml.kernel.org/r/1416894816-23245-5-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/kernel/apic/msi.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) commit bd8eb63f8a3907bb477992145cb6ce0064a1e43f Author: Jiang Liu Date: Mon Apr 13 14:11:25 2015 +0800 x86/hpet: Use new irqdomain interfaces to allocate/free IRQ Use new irqdomain interfaces to allocate/free IRQ for HPET, so we can remove GENERIC_IRQ_LEGACY_ALLOC_HWIRQ later. Signed-off-by: Jiang Liu Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Joerg Roedel Cc: Greg Kroah-Hartman Cc: Srivatsa S. Bhat Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Cc: Andy Lutomirski Link: http://lkml.kernel.org/r/1416894816-23245-4-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/kernel/hpet.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit b5dc8e6c21e7ffba0246bf39cea97805c142bf85 Author: Jiang Liu Date: Mon Apr 13 14:11:24 2015 +0800 x86/irq: Use hierarchical irqdomain to manage CPU interrupt vectors Abstract CPU local APIC as an interrupt controller and create an irqdomain for it to manage CPU interrupt vectors. It's the base to enable hierarchical irqdomains on x86 systems. The final irqdomain hierarchy will look like this: IOAPIC domain ----| MSI/MSI-x domain ----> [Interrupt Remapping domain] -> CPU vector domain HPET_IRQ domain ----| ^ | DMAR domain ----------------------------------------------| HT_IRQ domain ----------------------------------------------| Signed-off-by: Jiang Liu Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Joerg Roedel Cc: Greg Kroah-Hartman Cc: Prarit Bhargava Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Cc: Grant Likely Link: http://lkml.kernel.org/r/1428905519-23704-3-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/Kconfig | 3 +- arch/x86/include/asm/hw_irq.h | 17 +++++ arch/x86/kernel/apic/io_apic.c | 3 - arch/x86/kernel/apic/vector.c | 155 +++++++++++++++++++++++++++++++++++++---- 4 files changed, 160 insertions(+), 18 deletions(-) commit 5f0052f9522b84269e1b3b435a806f873d992702 Author: Jiang Liu Date: Mon Apr 13 14:11:23 2015 +0800 x86/irq: Save destination CPU ID in irq_cfg Cache destination CPU APIC ID into struct irq_cfg when assigning vector for interrupt. Upper layer just needs to read the cached APIC ID instead of calling apic->cpu_mask_to_apicid_and(), it helps to hide APIC driver details from IOAPIC/HPET/MSI drivers.. Signed-off-by: Jiang Liu Cc: Konrad Rzeszutek Wilk Cc: David Cohen Cc: Sander Eikelenboom Cc: David Vrabel Cc: Tony Luck Cc: Joerg Roedel Cc: Greg Kroah-Hartman Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Rafael J. Wysocki Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Dimitri Sivanich Link: http://lkml.kernel.org/r/1428905519-23704-2-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/include/asm/hw_irq.h | 1 + arch/x86/kernel/apic/vector.c | 6 ++++++ 2 files changed, 7 insertions(+) commit 0166b197c2ed2327bb7761ded8cba2cfd371a425 Author: Bob Peterson Date: Wed Apr 22 11:24:12 2015 -0500 GFS2: Average in only non-zero round-trip times for congestion stats This patch changes function gfs2_rgrp_congested so that it only factors in non-zero values into its average round trip time. If the round-trip time is zero for a particular cpu, that cpu has obviously never dealt with bouncing the resource group in question, so factoring in a zero value will only skew the numbers. It also fixes a compile error on some arches related to division. Signed-off-by: Bob Peterson Acked-by: Steven Whitehouse fs/gfs2/rgrp.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit f4a3ae9308e34bcd704325a08879b2c1cfb74686 Author: Bob Peterson Date: Wed Nov 19 12:27:11 2014 -0600 GFS2: Use average srttb value in congestion calculations This patch changes function gfs2_rgrp_congested so that it uses an average srttb (smoothed round trip time for blocking rgrp glocks) rather than the CPU-specific value. If we use the CPU-specific value it can incorrectly report no contention when there really is contention due to the glock processing occurring on a different CPU. Signed-off-by: Bob Peterson Acked-by: Steven Whitehouse fs/gfs2/rgrp.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) commit d2233325e5b7891914901867ca5355347d59df14 Author: Haikun Wang Date: Fri Apr 24 18:54:47 2015 +0800 spi: spi-fsl-dspi: remove clk reference when regmap_mmio initialize It is unnecessary for DSPI to enable/disable clk when access DSPI register. And it will reduce efficiency. Signed-off-by: Haikun Wang Signed-off-by: Mark Brown drivers/spi/spi-fsl-dspi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b8e69d51ffb5753cbb62f3ebfeadeffd3a19b0e9 Author: Matti Gottlieb Date: Mon Apr 20 22:54:14 2015 +0300 mac80211: force off channel transmission for public action frames Currently while associated to an AP and sending a (public) action frame to a different AP on the same channel, the action frame will be sent like a regular tx frame without going off channel. When power save is enabled this can cause problems, since the device can go into power save and miss the response to the action frame that is sent by the other AP. Force off-channel transmission to avoid this issue in case - HW offchannel is used, - the user didn't forbid transmitting frames off channel - the frame is not sent to the AP that we are associated with (if it is we assume the response would be bufferable) Signed-off-by: Matti Gottlieb Signed-off-by: Emmanuel Grumbach [reword commit message a bit] Signed-off-by: Johannes Berg net/mac80211/cfg.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit b497de63ad5dcdae999c14444c4e7f53fd60119c Author: Emmanuel Grumbach Date: Mon Apr 20 22:53:38 2015 +0300 mac80211: notify the driver on reordering buffer timeout When frames time out in the reordering buffer, it is a good indication that something went wrong and the driver may want to know about that to take action or trigger debug flows. It is pointless to notify the driver about each frame that is released. Notify each time the timer fires. Signed-off-by: Emmanuel Grumbach Signed-off-by: Johannes Berg include/net/mac80211.h | 8 ++++++-- net/mac80211/rx.c | 9 +++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) commit 6382246e895fa0ae5162de7c1e5566b9719bdd26 Author: Emmanuel Grumbach Date: Mon Apr 20 22:53:37 2015 +0300 mac80211: notify the driver upon BAR Rx When we receive a BAR, this typically means that our peer doesn't hear our Block-Acks or that we can't hear its frames. Either way, it is a good indication that the link is in a bad condition. This is why it can serve as a probe to the driver. Use the event_callback callback for this. Since more events with the same data will be added in the feature, the structure that describes the data attached to the event is called in a generic name: ieee80211_ba_event. This also means that from now on, the event_callback can't sleep. Signed-off-by: Emmanuel Grumbach Signed-off-by: Johannes Berg include/net/mac80211.h | 20 ++++++++++++++++++-- net/mac80211/rx.c | 8 ++++++++ 2 files changed, 26 insertions(+), 2 deletions(-) commit 6e70d560ff44beddabb43d7ff39cc008e5b35536 Author: Emmanuel Grumbach Date: Mon Apr 20 22:53:36 2015 +0300 iwlwifi: dvm: don't sleep in event_callback callback This will allow mac80211 to forbid sleeping from the event_callback callback. Signed-off-by: Emmanuel Grumbach Signed-off-by: Johannes Berg drivers/net/wireless/iwlwifi/dvm/mac80211.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit c1041f109a788fbc45197c38aed4c46e580d9d5f Author: Chaya Rachel Ivgi Date: Mon Apr 20 22:51:46 2015 +0300 mac80211: fix ignored HT/VHT override configs HT and VHT override configurations were ignored during association and applied only when first beacon recived, or not applied at all. Fix the code to apply HT/VHT overrides during association. This is a bit tricky since the channel was already configured during authentication and we don't want to reconfigure it unless there's really a change. Signed-off-by: Chaya Rachel Ivgi Signed-off-by: Emmanuel Grumbach Signed-off-by: Johannes Berg net/mac80211/mlme.c | 57 +++++++++++++++++++++++++++++++++-------------------- 1 file changed, 36 insertions(+), 21 deletions(-) commit 4292504044a4fd4c5d9155dcb5c7b09ed6cbf611 Author: Chun-Yeow Yeoh Date: Sat Apr 18 01:30:02 2015 +0800 cfg80211: allow the plink state blocking for user managed mesh wpa_supplicant or authsae handles the mesh peering in user space, but the plink state is still managed in kernel space. Currently, there is no implementation by wpa_supplicant or authsae to block the plink state after it is set to ESTAB. By applying this patch, we can use the "iw mesh0 station set plink_action block" to block the peer mesh STA. This is useful for experimenting purposes. Signed-off-by: Chun-Yeow Yeoh Signed-off-by: Johannes Berg net/wireless/nl80211.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit dc0565ce6e34be06730312e79b226b7408a543c8 Author: Li RongQing Date: Fri Apr 24 16:49:31 2015 +0800 xfrm: slightly optimise xfrm_input Check x->km.state with XFRM_STATE_ACQ only when state is not XFRM_STAT_VALID, not everytime Signed-off-by: Li RongQing Signed-off-by: Steffen Klassert net/xfrm/xfrm_input.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 5a490510ba5fce8a10746525357a297f8f076bb1 Author: Johannes Berg Date: Wed Apr 22 17:10:38 2015 +0200 mac80211: use per-CPU TX/RX statistics This isn't all that relevant for RX right now, but TX can be concurrent due to multi-queue and the accounting is therefore broken. Use the standard per-CPU statistics to avoid this. Signed-off-by: Johannes Berg net/mac80211/iface.c | 45 ++++++++++++++++++++++++++++++++++++++++++++- net/mac80211/rx.c | 21 ++++++++++++++------- net/mac80211/tx.c | 16 ++++++++++++---- 3 files changed, 70 insertions(+), 12 deletions(-) commit ce5b071a456beea13a893fcc73f47998bf7ceb35 Author: Johannes Berg Date: Wed Apr 22 16:44:46 2015 +0200 mac80211: don't update dev->trans_start This isn't necessary any more as the stack will automatically update the TXQ's trans_start after calling ndo_start_xmit(). Signed-off-by: Johannes Berg net/mac80211/tx.c | 2 -- 1 file changed, 2 deletions(-) commit 6fe3eac79329611eaa716b7a3e3b85f6698b668b Author: Johannes Berg Date: Wed Apr 22 15:10:45 2015 +0200 mac80211: OCB: remove pointless check for broadcast BSSID The OCB input path already checked that the BSSID is the broadcast address, so the later check can never fail. Signed-off-by: Johannes Berg net/mac80211/rx.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit a58fbe1a8540d870393b343bc6cb06a7f8201387 Author: Johannes Berg Date: Wed Apr 22 15:08:39 2015 +0200 mac80211: clean up/rename prepare_for_handlers() The function really shouldn't be called prepare_for_handlers(), all it does is check if the frame should be dropped. Rename it to ieee80211_accept_frame() and clean it up a bit. Signed-off-by: Johannes Berg net/mac80211/rx.c | 80 +++++++++++++++++++++++++------------------------------ 1 file changed, 36 insertions(+), 44 deletions(-) commit 5c90067c0f79705b8fa3207c734b18727f320637 Author: Johannes Berg Date: Wed Apr 22 14:48:34 2015 +0200 mac80211: remove IEEE80211_RX_RA_MATCH With promisc support gone, only AP and P2P-Device type interfaces still clear IEEE80211_RX_RA_MATCH. In both cases this isn't really necessary though, so we can remove that flag and the code. Signed-off-by: Johannes Berg net/mac80211/ieee80211_i.h | 3 --- net/mac80211/rx.c | 44 +++++--------------------------------------- 2 files changed, 5 insertions(+), 42 deletions(-) commit df1404650ccbfeb76a84f301f22316be0d00a864 Author: Johannes Berg Date: Wed Apr 22 14:40:58 2015 +0200 mac80211: remove support for IFF_PROMISC This support is essentially useless as typically networks are encrypted, frames will be filtered by hardware, and rate scaling will be done with the intended recipient in mind. For real monitoring of the network, the monitor mode support should be used instead. Removing it removes a lot of corner cases. Signed-off-by: Johannes Berg drivers/net/wireless/adm8211.c | 7 +---- drivers/net/wireless/at76c50x-usb.h | 2 +- drivers/net/wireless/ath/ar5523/ar5523.c | 3 +- drivers/net/wireless/ath/ath10k/mac.c | 4 +-- drivers/net/wireless/ath/ath5k/ath5k.h | 1 - drivers/net/wireless/ath/ath5k/mac80211-ops.c | 15 ++-------- drivers/net/wireless/ath/ath9k/htc_drv_main.c | 3 +- drivers/net/wireless/ath/ath9k/htc_drv_txrx.c | 9 +----- drivers/net/wireless/ath/ath9k/main.c | 3 +- drivers/net/wireless/ath/ath9k/recv.c | 5 ---- drivers/net/wireless/ath/carl9170/fw.c | 3 +- drivers/net/wireless/ath/carl9170/main.c | 7 ++--- drivers/net/wireless/b43/main.c | 8 ++---- drivers/net/wireless/b43legacy/main.c | 8 ++---- .../net/wireless/brcm80211/brcmsmac/mac80211_if.c | 5 +--- drivers/net/wireless/brcm80211/brcmsmac/main.c | 2 +- drivers/net/wireless/cw1200/sta.c | 10 ++----- drivers/net/wireless/iwlegacy/3945-mac.c | 4 +-- drivers/net/wireless/iwlegacy/4965-mac.c | 4 +-- drivers/net/wireless/iwlwifi/dvm/mac80211.c | 4 +-- drivers/net/wireless/libertas_tf/main.c | 7 ++--- drivers/net/wireless/mac80211_hwsim.c | 2 -- drivers/net/wireless/mwl8k.c | 2 +- drivers/net/wireless/p54/fwio.c | 3 +- drivers/net/wireless/p54/main.c | 6 ++-- drivers/net/wireless/rt2x00/rt2400pci.c | 4 +-- drivers/net/wireless/rt2x00/rt2500pci.c | 4 +-- drivers/net/wireless/rt2x00/rt2500usb.c | 4 +-- drivers/net/wireless/rt2x00/rt2800lib.c | 3 +- drivers/net/wireless/rt2x00/rt2x00mac.c | 6 +--- drivers/net/wireless/rt2x00/rt61pci.c | 4 +-- drivers/net/wireless/rt2x00/rt73usb.c | 4 +-- drivers/net/wireless/rtlwifi/core.h | 3 +- drivers/net/wireless/ti/wl1251/main.c | 9 ++---- drivers/net/wireless/ti/wlcore/main.c | 3 +- drivers/net/wireless/zd1211rw/zd_mac.c | 4 +-- drivers/staging/vt6655/device_main.c | 11 +------- drivers/staging/vt6656/main_usb.c | 11 +------- include/net/mac80211.h | 9 ++---- net/mac80211/ieee80211_i.h | 6 ++-- net/mac80211/iface.c | 19 ++----------- net/mac80211/main.c | 3 -- net/mac80211/rx.c | 33 ++++++---------------- 43 files changed, 63 insertions(+), 204 deletions(-) commit de4de566f84b87f4d5f8265b11932088adb19896 Author: Daniel Vetter Date: Thu Apr 23 22:02:54 2015 +0200 drm/i915: Update DRIVER_DATE to 20150423 Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 14f1fa2d0c86bcce0a66196acb32648c2f083b87 Author: Thomas Richter Date: Thu Apr 23 10:17:34 2015 +0200 drm/i915: Enable dithering on NatSemi DVO2501 for Fujitsu S6010 This patch enables the (unfortunately undocumented) scaler of the NatSemi 2501 DVO found in the Fujitsu-Siemens S6010 laptop and other machines of the same series and age. Parts of the DVO scaler logic have been revealed by reverse engineering and trial and error, so your milage may vary. The patch (and the whole ns2501 DVO code) is currently only good for the 1024x768 panel of the S6010, and may hopefully work on other machines with the same panel size. The mode-specific configuration of the scaler have been moved out into a separate class, the mode-agnostic settings remain as raw register list as their purpose remains unclear at this point. Signed-off-by: Daniel Vetter Signed-off-by: Thomas Richter [danvet: Make the thing apply and conform to kernel patch expectations.] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/dvo_ns2501.c | 670 +++++++++++++++++++++----------------- 1 file changed, 374 insertions(+), 296 deletions(-) commit 70b9f6f8321f06788dc31783974750cb82745b65 Author: Daniel Vetter Date: Tue Apr 14 17:35:27 2015 +0200 rm/i915: Move i915_get_ggtt_vma_pages into ggtt_bind_vma We have this neat abstraction between ppgtt and ggtt for (un)bind_vma and didn't end up using it really. What a shame, so fix this and make the ->bind_vma hook a bit more useful. Reviewed-by: Mika Kuoppala Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 41 ++++++++++++++++++++++--------------- drivers/gpu/drm/i915/i915_gem_gtt.h | 6 +++--- 2 files changed, 27 insertions(+), 20 deletions(-) commit 2c642b07eba461a244c32279a00d98ffab39ec07 Author: Daniel Vetter Date: Tue Apr 14 17:35:26 2015 +0200 drm/i915: Don't try to outsmart gcc in i915_gem_gtt.c Sprinkling static inline all over the place is carg-culting. Remove it. Reviewed-by: Mika Kuoppala Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 38 ++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) commit d369d2d9683dd98afbc7a37c1119d7a317790c47 Author: Daniel Vetter Date: Tue Apr 14 17:35:25 2015 +0200 drm/i915: Unduplicate i915_ggtt_unbind/bind_vma ggtt_bind/unbind_vma already has checks for aliasing ppgtt or not, there's nothing else magic they do. Resurrect i915_ggtt_insert_entries to make the reuse possibel. Reviewed-by: Mika Kuoppala Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 27 ++++++++------------------- 1 file changed, 8 insertions(+), 19 deletions(-) commit 4755265977159be0261972da2ba54917765b18ed Author: Daniel Vetter Date: Tue Apr 14 17:35:24 2015 +0200 drm/i915: Move ppgtt_bind/unbind around Again avoids some forward declarations. Reviewed-by: Mika Kuoppala Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 44 ++++++++++++++++--------------------- 1 file changed, 19 insertions(+), 25 deletions(-) commit fa42331b4cd961cecb3f6919116d2e6efeb2334b Author: Daniel Vetter Date: Tue Apr 14 17:35:23 2015 +0200 drm/i915: move i915_gem_restore_gtt_mappings around Avoids 2 forward declarations. Reviewed-by: Mika Kuoppala Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 109 ++++++++++++++++++------------------ 1 file changed, 53 insertions(+), 56 deletions(-) commit 0875546c5318c85c13d07014af5350e9000bc9e9 Author: Daniel Vetter Date: Mon Apr 20 09:04:05 2015 -0700 drm/i915: Fix up the vma aliasing ppgtt binding Currently we have the problem that the decision whether ptes need to be (re)written is splattered all over the codebase. Move all that into i915_vma_bind. This needs a few changes: - Just reuse the PIN_* flags for i915_vma_bind and do the conversion to vma->bound in there to avoid duplicating the conversion code all over. - We need to make binding for EXECBUF (i.e. pick aliasing ppgtt if around) explicit, add PIN_USER for that. - Two callers want to update ptes, give them a PIN_UPDATE for that. Of course we still want to avoid double-binding, but that should be taken care of: - A ppgtt vma will only ever see PIN_USER, so no issue with double-binding. - A ggtt vma with aliasing ppgtt needs both types of binding, and we track that properly now. - A ggtt vma without aliasing ppgtt could be bound twice. In the lower-level ->bind_vma functions hence unconditionally set GLOBAL_BIND when writing the ggtt ptes. There's still a bit room for cleanup, but that's for follow-up patches. v2: Fixup fumbles. v3: s/PIN_EXECBUF/PIN_USER/ for clearer meaning, suggested by Chris. Cc: Chris Wilson Reviewed-by: Mika Kuoppala Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 11 +++-- drivers/gpu/drm/i915/i915_gem.c | 11 ++--- drivers/gpu/drm/i915/i915_gem_execbuffer.c | 7 ++-- drivers/gpu/drm/i915/i915_gem_gtt.c | 65 ++++++++++++------------------ 4 files changed, 40 insertions(+), 54 deletions(-) commit cd102a687beed1042824d5fa81c6ba8bfe78e6a4 Author: Daniel Vetter Date: Tue Apr 14 17:35:20 2015 +0200 drm/i915: Remove misleading comment around bind_to_vm It's true that we might need to context switch, but both the signalling and implementation of the same are a few source files away. Remove it. Reviewed-by: Mika Kuoppala Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem.c | 4 ---- 1 file changed, 4 deletions(-) commit 9258811c961879450502f767773227f5c0d79120 Author: Daniel Vetter Date: Tue Apr 14 17:35:19 2015 +0200 drm/i915: Don't use atomics for pg_dirty_rings It's already protected by the bkl^Wdev->struct_mutex. While at it realign some related code. Reviewed-by: Mika Kuoppala Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_context.c | 16 ++++++++-------- drivers/gpu/drm/i915/i915_gem_execbuffer.c | 5 ++--- 2 files changed, 10 insertions(+), 11 deletions(-) commit 71b7e54f71b899db9f8def67a0e976969384e699 Author: Daniel Vetter Date: Tue Apr 14 17:35:18 2015 +0200 drm/i915: Don't look at pg_dirty_rings for aliasing ppgtt We load the ppgtt ptes once per gpu reset/driver load/resume and that's all that's needed. Note that this only blows up when we're using the allocate_va_range funcs and not the special-purpose ones used. With this change we can get rid of that duplication. Reviewed-by: Mika Kuoppala Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_context.c | 6 ------ drivers/gpu/drm/i915/i915_gem_execbuffer.c | 3 --- 2 files changed, 9 deletions(-) commit ebd82b39bf11b38b0b50919c8d4386706b26bff7 Author: Johannes Berg Date: Thu Apr 23 17:26:06 2015 +0200 mac80211: make station hash table max_size configurable Allow debug builds to configure the station hash table maximum size in order to run with hash collisions in limited scenarios such as hwsim testing. The default remains 0 which effectively means no limit. Signed-off-by: Johannes Berg net/mac80211/Kconfig | 10 ++++++++++ net/mac80211/sta_info.c | 1 + 2 files changed, 11 insertions(+) commit 886364f679342a381c9cb4a0b2588fb103bb6a22 Author: Takashi Iwai Date: Wed Apr 22 17:54:25 2015 +0200 ALSA: core: Fix possible memory leaks at error path in info.c Currently, snd_info_init() just returns an error without releasing the previously assigned resources at error path. The assigned proc and info entries have to be released properly. This patch covers it. While we are at it, refactor the code a bit, too. Acked-by: Jaroslav Kysela Signed-off-by: Takashi Iwai sound/core/info.c | 62 +++++++++++++++++++++++++++---------------------------- 1 file changed, 31 insertions(+), 31 deletions(-) commit 4adb7bcbcb69d3bee0ed72de83adaee27daccdd8 Author: Takashi Iwai Date: Wed Apr 22 16:10:22 2015 +0200 ALSA: core: Use seq_file for text proc file reads seq_file is _the_ standard interface for simple text proc files. Though, we still need to support the binary proc files and the text file write, and also we need to manage the device disconnection gracefully. Thus this patch just replaces the text file read code with seq_file while keeping the rest intact. snd_iprintf() helper function is now a macro to expand itself to seq_printf() to be compatible with the existing code. The seq_file object is stored to the unused entry->rbuffer->buffer pointer. When the output size is expected to be large (greater than PAGE_SIZE), the driver should set entry->size field beforehand. Then the given size will be preallocated and the multiple show calls can be avoided. Acked-by: Jaroslav Kysela Signed-off-by: Takashi Iwai include/sound/info.h | 16 +- sound/core/info.c | 569 ++++++++++++++++++++++----------------------------- 2 files changed, 261 insertions(+), 324 deletions(-) commit d0f702e648dc365070f1868ec291264ad27e65d8 Author: Chen Hanxiao Date: Thu Apr 23 07:57:33 2015 -0400 cgroup: fix some comment typos s/effctive/effective s/hierarhcy/hierarchy s/shoulid/should Signed-off-by: Chen Hanxiao Signed-off-by: Tejun Heo kernel/cgroup.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 4101ecc23db90ae7e9b2a4b1cfe4aaf37405b4a8 Author: Thomas Gleixner Date: Mon Apr 13 16:43:35 2015 +0200 power: reset: ltc2952: Remove bogus hrtimer_start() return value checks The return value of hrtimer_start() tells whether the timer was inactive or active already when hrtimer_start() was called. The code emits a bogus warning if the timer was active already claiming that the timer could not be started. Remove it along with the bogus comment in the else path. Signed-off-by: Thomas Gleixner Acked-by: Frans Klaver Cc: Sebastian Reichel Cc: Dmitry Eremin-Solenikov Cc: David Woodhouse Cc: Wolfram Sang Cc: linux-pm@vger.kernel.org drivers/power/reset/ltc2952-poweroff.c | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) commit b484403b9abe5f444ae2fee6a249759bb3c35bcf Author: Thomas Gleixner Date: Thu Apr 23 13:58:09 2015 +0200 sched: debug: Remove the cfs bandwidth timer_active printout The struct member is gone. Reported-by: fengguang.wu@intel.com> Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra kernel/sched/debug.c | 2 -- 1 file changed, 2 deletions(-) commit f31e8d4f7b44092b6b2ab3a6b1d4079836b6955a Author: Li RongQing Date: Thu Apr 23 11:06:53 2015 +0800 xfrm: fix the return code when xfrm_*_register_afinfo failed If xfrm_*_register_afinfo failed since xfrm_*_afinfo[afinfo->family] had the value, return the -EEXIST, not -ENOBUFS Signed-off-by: Li RongQing Signed-off-by: Steffen Klassert net/xfrm/xfrm_input.c | 2 +- net/xfrm/xfrm_policy.c | 2 +- net/xfrm/xfrm_state.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 800777026eeb33585f29608c2c6131fc66d2e218 Author: Li RongQing Date: Wed Apr 22 17:09:54 2015 +0800 xfrm: optimise the use of walk list header in xfrm_policy/state_walk The walk from input is the list header, and marked as dead, and will be skipped in loop. list_first_entry() can be used to return the true usable value from walk if walk is not empty Signed-off-by: Li RongQing Acked-by: Herbert Xu Signed-off-by: Steffen Klassert net/xfrm/xfrm_policy.c | 4 +++- net/xfrm/xfrm_state.c | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) commit 1ee5e6676bccbf7a035d8d35c143f1a61e602198 Author: Li RongQing Date: Wed Apr 22 15:51:16 2015 +0800 xfrm: remove the xfrm_queue_purge definition The task of xfrm_queue_purge is same as skb_queue_purge, so remove it Signed-off-by: Li RongQing Signed-off-by: Steffen Klassert net/xfrm/xfrm_policy.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) commit 98d6f479580013b42d179c30ff39107b6728ed82 Author: Martin Sperl Date: Thu Apr 23 07:56:01 2015 +0000 spi: spidev: use spi_sync instead of spi_async This has the benefit that the "optimization" of the framework in regards to spi_sync will also benefit spidev users directly and allow running spi transfers without a necessary context-switch to message-pump. Signed-off-by: Martin Sperl Signed-off-by: Mark Brown drivers/spi/spidev.c | 30 +++++++++--------------------- 1 file changed, 9 insertions(+), 21 deletions(-) commit d92189ebbdcd0eb180317d8cd6d46c57ac9a3dc0 Author: Andreas Fleig Date: Thu Apr 23 10:25:58 2015 +0200 HID: lenovo: set INPUT_PROP_POINTING_STICK Set flags INPUT_PROP_POINTER and INPUT_PROP_POINTING_STICK for the trackpoint integrated in Lenovo USB and Bluetooth keyboards. Libinput checks these flags to enable features such as middle-button-scrolling by default. Signed-off-by: Andreas Fleig Reviewed-by: Benjamin Tissoires Signed-off-by: Jiri Kosina drivers/hid/hid-lenovo.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) commit 007760cf082392b65a05c40eb615c5f8294b441a Author: Aaron Skomra Date: Thu Apr 16 15:01:14 2015 -0700 HID: wacom: Add support for DTU-1141 Signed-off-by: Aaron Skomra Signed-off-by: Jiri Kosina drivers/hid/wacom_wac.c | 4 ++++ 1 file changed, 4 insertions(+) commit 71b5c4766c1ca4c646a90f64552b140b1368f2f1 Author: Jason Gerecke Date: Wed Apr 15 17:22:32 2015 -0700 HID: wacom: Simplify check for presence of single-finger touch To determine if a touch is present in the single-touch case, we can simply check if the BTN_TOUCH key is active or not. This will work for both HID_GENERIC and other device types. Signed-off-by: Jason Gerecke Signed-off-by: Jiri Kosina drivers/hid/wacom_wac.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit e48151a3a456b38b1029a8a7380246b53c768400 Author: Ping Cheng Date: Wed Apr 15 16:54:58 2015 -0700 HID: wacom: remove unused packet lengths We use generic hid_report_len() to get individual packet length now. Signed-off-by: Ping Cheng Reviewed-by: Jason Gerecke Signed-off-by: Jiri Kosina drivers/hid/wacom_wac.h | 6 ------ 1 file changed, 6 deletions(-) commit 3d64f54dd0de57bdbcde4b91495fb8e02c620762 Author: Ping Cheng Date: Wed Apr 15 16:54:14 2015 -0700 HID: wacom: move unit and unitExpo initialization to wacom_calculate_res That is where they belong... Signed-off-by: Ping Cheng Reviewed-by: Jason Gerecke Signed-off-by: Jiri Kosina drivers/hid/wacom_sys.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 42f4f272746f9e4e3fecb4440dc2429822b6950b Author: Ping Cheng Date: Wed Apr 15 16:53:54 2015 -0700 HID: wacom: move all quirks to wacom_setup_device_quirks It makes probe routine easy to follow. Signed-off-by: Ping Cheng Reviewed-by: Jason Gerecke Signed-off-by: Jiri Kosina drivers/hid/wacom.h | 2 +- drivers/hid/wacom_sys.c | 39 +-------------------------------------- drivers/hid/wacom_wac.c | 30 +++++++++++++++++++++++++++++- 3 files changed, 31 insertions(+), 40 deletions(-) commit 8a1a2b717e0d4d5f3e3bb59b7dee5079a15ab24b Author: Herbert Xu Date: Wed Apr 22 15:06:33 2015 +0800 mac802154: Include crypto/aead.h All users of AEAD should include crypto/aead.h instead of include/linux/crypto.h. This patch also removes a bogus inclusion of algapi.h which should only be used by algorithm/driver implementors and not crypto users. Instead linux/crypto.h is added which is necessary because mac802154 also uses blkcipher in addition to aead. Signed-off-by: Herbert Xu Acked-by: David S. Miller net/mac802154/llsec.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit d8fe0ddd0256711e9cf2c539e77c341daa0eb2cf Author: Herbert Xu Date: Wed Apr 22 15:06:32 2015 +0800 mac80211: Include crypto/aead.h All users of AEAD should include crypto/aead.h instead of include/linux/crypto.h. Signed-off-by: Herbert Xu Acked-by: David S. Miller net/mac80211/aes_ccm.c | 3 +-- net/mac80211/aes_gcm.c | 3 +-- net/mac80211/aes_gmac.c | 2 +- 3 files changed, 3 insertions(+), 5 deletions(-) commit 1ce3311580515268504db929c3219e57927b9e6a Author: Herbert Xu Date: Wed Apr 22 15:06:31 2015 +0800 crypto: testmgr - Include crypto/aead.h All users of AEAD should include crypto/aead.h instead of include/linux/crypto.h. Signed-off-by: Herbert Xu Acked-by: David S. Miller crypto/testmgr.c | 1 + 1 file changed, 1 insertion(+) commit 1ce5a04d9f3e8f1f25aa1d6da8612bfeeca7b306 Author: Herbert Xu Date: Wed Apr 22 15:06:30 2015 +0800 crypto: tcrypt - Include crypto/aead.h All users of AEAD should include crypto/aead.h instead of include/linux/crypto.h. Signed-off-by: Herbert Xu Acked-by: David S. Miller crypto/tcrypt.c | 1 + 1 file changed, 1 insertion(+) commit 89081da51de3d0ffaef5b3a05fcdb7cc13bb5a61 Author: Herbert Xu Date: Wed Apr 22 15:06:28 2015 +0800 crypto: algif_aead - Include crypto/aead.h All users of AEAD should include crypto/aead.h instead of include/linux/crypto.h. Signed-off-by: Herbert Xu Acked-by: David S. Miller crypto/algif_aead.c | 1 + 1 file changed, 1 insertion(+) commit 34ed9a35788a562d80648247022ae9497cc88ebc Author: Herbert Xu Date: Wed Apr 22 15:06:27 2015 +0800 crypto: arm64/aes-ce-ccm - Include crypto/internal/aead.h All implementers of AEAD should include crypto/internal/aead.h instead of include/linux/crypto.h. Signed-off-by: Herbert Xu Acked-by: David S. Miller arch/arm64/crypto/aes-ce-ccm-glue.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7be58b1250f471a4548c0fe7a6b4001b62ea1e30 Author: Herbert Xu Date: Wed Apr 22 13:25:59 2015 +0800 crypto: api - Remove linux/fips.h from internal.h Now that all fips_enabled users are including linux/fips.h directly instead of getting it through internal.h, we can remove the fips.h inclusions from internal.h. Signed-off-by: Herbert Xu crypto/internal.h | 1 - 1 file changed, 1 deletion(-) commit 1c41b88249f623a3c92e53aa7cc221b2245bd044 Author: Herbert Xu Date: Wed Apr 22 13:25:58 2015 +0800 crypto: testmgr - Include linux/fips.h for fips_enabled All users of fips_enabled should include linux/fips.h directly instead of getting it through internal.h. Signed-off-by: Herbert Xu crypto/testmgr.c | 1 + 1 file changed, 1 insertion(+) commit daf0944cfb1fd2f6ca17fd4ed1ecbbef63d8f8f8 Author: Herbert Xu Date: Wed Apr 22 13:25:57 2015 +0800 crypto: tcrypt - Include linux/fips.h for fips_enabled All users of fips_enabled should include linux/fips.h directly instead of getting it through internal.h which is reserved for internal crypto API implementors. Signed-off-by: Herbert Xu crypto/tcrypt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 94072cb20eed369c64364c95bcfa3c012f54f466 Author: Herbert Xu Date: Wed Apr 22 13:25:56 2015 +0800 crypto: fips - Move fips_enabled sysctl into fips.c There is currently a large ifdef FIPS code section in proc.c. Ostensibly it's there because the fips_enabled sysctl sits under /proc/sys/crypto. However, no other crypto sysctls exist. In fact, the whole ethos of the crypto API is against such user interfaces so this patch moves all the FIPS sysctl code over to fips.c. Signed-off-by: Herbert Xu crypto/fips.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ crypto/proc.c | 41 ----------------------------------------- 2 files changed, 48 insertions(+), 41 deletions(-) commit 76450f93f17bb03a27476371c4c907e26a3c78a4 Author: Herbert Xu Date: Wed Apr 22 13:25:54 2015 +0800 crypto: fips - Remove bogus inclusion of internal.h The header file internal.h is only meant for internal crypto API implementors such as rng.c. So fips has no business in including it. This patch removes that inclusions and instead adds inclusions of the actual features used by fips. Signed-off-by: Herbert Xu crypto/fips.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 3133d76fc60bce6f3e00efb6c3540f2f449ff569 Author: Herbert Xu Date: Wed Apr 22 13:25:53 2015 +0800 crypto: api - Include linux/fips.h All users of fips_enabled should include linux/fips.h directly instead of getting it through internal.h. Signed-off-by: Herbert Xu crypto/algapi.c | 1 + 1 file changed, 1 insertion(+) commit d9b3682ffd6d7fa98195eb64307b70e9a25cc655 Author: Herbert Xu Date: Wed Apr 22 11:56:34 2015 +0800 crypto: caam - Remove bogus references to crypto API internals The caam driver includes algorithm types that it doesn't even use, such as struct rng_alg which has recently been moved to an internal header file and consequently broke the build of caam. This patch removes these bogus references. Reported-by: Fengguang Wu Signed-off-by: Herbert Xu drivers/crypto/caam/caamalg.c | 4 ---- 1 file changed, 4 deletions(-) commit b94e7dc581c68e383165b09f2aab7a98a597f10a Author: Herbert Xu Date: Wed Apr 22 11:42:35 2015 +0800 crypto: drbg - Remove FIPS ifdef from drbg_healthcheck_sanity This patch removes the unnecessary CRYPTO_FIPS ifdef from drbg_healthcheck_sanity so that the code always gets checked by the compiler. Signed-off-by: Herbert Xu Acked-by: Stephan Mueller crypto/drbg.c | 4 ---- 1 file changed, 4 deletions(-) commit 59afdc7b32143528524455039e7557a46b60e4c8 Author: Herbert Xu Date: Wed Apr 22 11:28:46 2015 +0800 crypto: api - Move module sig ifdef into accessor function Currently we're hiding mod->sig_ok under an ifdef in open code. This patch adds a module_sig_ok accessor function and removes that ifdef. Signed-off-by: Herbert Xu Acked-by: Rusty Russell crypto/algapi.c | 5 +---- include/linux/module.h | 12 ++++++++++++ 2 files changed, 13 insertions(+), 4 deletions(-) commit 43a9607d86e8fb110b596d300dbaae895c198fed Author: Herbert Xu Date: Wed Apr 22 11:02:27 2015 +0800 crypto: tcrypt - Handle async return from crypto_ahash_init The function crypto_ahash_init can also be asynchronous just like update and final. So all callers must be able to handle an async return. Signed-off-by: Herbert Xu crypto/tcrypt.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 9183034879a1196714836c8142340c850c747323 Author: kbuild test robot Date: Thu Apr 23 04:00:00 2015 +0800 perf: perf_mux_hrtimer_cancel() can be static Signed-off-by: Fengguang Wu Cc: kbuild-all@01.org Cc: Paul Mackerras Cc: Arnaldo Carvalho de Melo Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20150422200000.GA122603@lkp-sb04 Signed-off-by: Thomas Gleixner kernel/events/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 272325c4821f052092c41feac21f4a1a46f0ad48 Author: Peter Zijlstra Date: Wed Apr 15 11:41:58 2015 +0200 perf: Fix mux_interval hrtimer wreckage Thomas stumbled over the hrtimer_forward_now() in perf_event_mux_interval_ms_store() and noticed its broken-ness. You cannot just change the expiry time of an active timer, it will destroy the red-black tree order and cause havoc. Change it to (re)start the timer instead, (re)starting a timer will dequeue and enqueue a timer and therefore preserve rb-tree order. Since we cannot enqueue remotely, wrap the thing in cpu_function_call(), this however mandates that we restrict ourselves to online cpus. Also serialize the entire setting so we don't get multiple concurrent threads trying to update to different values. Also fix a problem in perf_mux_hrtimer_restart(), checking against hrtimer_active() can actually loose us the timer when timer->state == HRTIMER_STATE_CALLBACK and the callback has already decided NORESTART. Furthermore it doesn't make any sense to test hrtimer_callback_running() when we already tested hrtimer_active(), but with the above change, we explicitly must call it when callback_running. Lastly, rename a few functions: s/perf_cpu_hrtimer_/perf_mux_hrtimer_/ -- because I could not find the mux timer function s/\/timer/ -- because that's the normal way of calling things. Fixes: 62b856397927 ("perf: Add sysfs entry to adjust multiplexing interval per PMU") Reported-by: Thomas Gleixner Signed-off-by: Peter Zijlstra (Intel) Link: http://lkml.kernel.org/r/20150415095011.863052571@infradead.org Signed-off-by: Thomas Gleixner kernel/events/core.c | 63 ++++++++++++++++++++++++++++++---------------------- 1 file changed, 36 insertions(+), 27 deletions(-) commit 77a4d1a1b9a122ca1fa3507bd30aec1520d7a8a4 Author: Peter Zijlstra Date: Wed Apr 15 11:41:57 2015 +0200 sched: Cleanup bandwidth timers Roman reported a 3 cpu lockup scenario involving __start_cfs_bandwidth(). The more I look at that code the more I'm convinced its crack, that entire __start_cfs_bandwidth() thing is brain melting, we don't need to cancel a timer before starting it, *hrtimer_start*() will happily remove the timer for you if its still enqueued. Removing that, removes a big part of the problem, no more ugly cancel loop to get stuck in. So now, if I understand things right, the entire reason you have this cfs_b->lock guarded ->timer_active nonsense is to make sure we don't accidentally lose the timer. It appears to me that it should be possible to guarantee that same by unconditionally (re)starting the timer when !queued. Because regardless what hrtimer::function will return, if we beat it to (re)enqueue the timer, it doesn't matter. Now, because hrtimers don't come with any serialization guarantees we must ensure both handler and (re)start loop serialize their access to the hrtimer to avoid both trying to forward the timer at the same time. Update the rt bandwidth timer to match. This effectively reverts: 09dc4ab03936 ("sched/fair: Fix tg_set_cfs_bandwidth() deadlock on rq->lock"). Reported-by: Roman Gushchin Signed-off-by: Peter Zijlstra (Intel) Reviewed-by: Ben Segall Cc: Paul Turner Link: http://lkml.kernel.org/r/20150415095011.804589208@infradead.org Signed-off-by: Thomas Gleixner kernel/sched/core.c | 15 ++++++------- kernel/sched/fair.c | 59 +++++++++++++--------------------------------------- kernel/sched/rt.c | 14 ++++++------- kernel/sched/sched.h | 4 ++-- 4 files changed, 31 insertions(+), 61 deletions(-) commit 5de2755c8c8b3a6b8414870e2c284914a2b42e4d Author: Peter Zijlstra Date: Tue May 20 15:49:48 2014 +0200 hrtimer: Allow concurrent hrtimer_start() for self restarting timers Because we drop cpu_base->lock around calling hrtimer::function, it is possible for hrtimer_start() to come in between and enqueue the timer. If hrtimer::function then returns HRTIMER_RESTART we'll hit the BUG_ON because HRTIMER_STATE_ENQUEUED will be set. Since the above is a perfectly valid scenario, remove the BUG_ON and make the enqueue_hrtimer() call conditional on the timer not being enqueued already. NOTE: in that concurrent scenario its entirely common for both sites to want to modify the hrtimer, since hrtimers don't provide serialization themselves be sure to provide some such that the hrtimer::function and the hrtimer_start() caller don't both try and fudge the expiration state at the same time. To that effect, add a WARN when someone tries to forward an already enqueued timer, the most common way to change the expiry of self restarting timers. Ideally we'd put the WARN in everything modifying the expiry but most of that is inlines and we don't need the bloat. Fixes: 2d44ae4d7135 ("hrtimer: clean up cpu->base locking tricks") Signed-off-by: Peter Zijlstra (Intel) Cc: Ben Segall Cc: Roman Gushchin Cc: Paul Turner Link: http://lkml.kernel.org/r/20150415113105.GT5029@twins.programming.kicks-ass.net Signed-off-by: Thomas Gleixner kernel/time/hrtimer.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit 2ad5d3272d8e20e24d8242ebac9f3007f1ea56bc Author: Thomas Gleixner Date: Tue Apr 14 21:09:30 2015 +0000 timer: Put usleep_range into the __sched section do_usleep_range() and schedule_hrtimeout_range() are __sched as well. So it makes no sense to have the exported function in a different section. Signed-off-by: Thomas Gleixner Acked-by: Peter Zijlstra Cc: Preeti U Murthy Cc: Viresh Kumar Cc: Marcelo Tosatti Cc: Frederic Weisbecker Link: http://lkml.kernel.org/r/20150414203503.833709502@linutronix.de Signed-off-by: Thomas Gleixner kernel/time/timer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6deba083e1de3f92f65c9849254e92a1ef001b73 Author: Thomas Gleixner Date: Tue Apr 14 21:09:28 2015 +0000 timer: Remove pointless return value of do_usleep_range() The only user ignores it anyway and rightfully so. Signed-off-by: Thomas Gleixner Acked-by: Peter Zijlstra Cc: Preeti U Murthy Cc: Viresh Kumar Cc: Marcelo Tosatti Cc: Frederic Weisbecker Link: http://lkml.kernel.org/r/20150414203503.756060258@linutronix.de Signed-off-by: Thomas Gleixner kernel/time/timer.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 19d9f4225dd6a47fca430f15eeae345ceb95c301 Author: Thomas Gleixner Date: Tue Apr 14 21:09:25 2015 +0000 hrtimer: Avoid locking in hrtimer_cancel() if timer not active We can do a lockless check for hrtimer_active before actually taking the lock in hrtimer[_try_to]_cancel. This is useful for hotpath users like nanosleep as they avoid the lock dance when the timer has expired. This is safe because active is true when the timer is enqueued or the callback is running. Taking the hrtimer base lock does not protect against concurrent hrtimer_start calls, the callsite has to do the proper serialization itself. Signed-off-by: Thomas Gleixner Acked-by: Peter Zijlstra Cc: Preeti U Murthy Cc: Viresh Kumar Cc: Marcelo Tosatti Cc: Frederic Weisbecker Link: http://lkml.kernel.org/r/20150414203503.580273114@linutronix.de Signed-off-by: Thomas Gleixner kernel/time/hrtimer.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 61699e13072a89880aa584dcc64c6da465fb2ccc Author: Thomas Gleixner Date: Tue Apr 14 21:09:23 2015 +0000 hrtimer: Remove hrtimer_start() return value No user was ever interested whether the timer was active or not when it was started. All abusers of the return value are gone, so get rid of it. Signed-off-by: Thomas Gleixner Acked-by: Peter Zijlstra Cc: Preeti U Murthy Cc: Viresh Kumar Cc: Marcelo Tosatti Cc: Frederic Weisbecker Link: http://lkml.kernel.org/r/20150414203503.483556394@linutronix.de Signed-off-by: Thomas Gleixner include/linux/hrtimer.h | 22 +++++++++------------- include/linux/interrupt.h | 6 +++--- kernel/time/hrtimer.c | 23 +++++++---------------- 3 files changed, 19 insertions(+), 32 deletions(-) commit b8a62f1ff0ccb18fdc25c6150d1cd394610f4753 Author: Thomas Gleixner Date: Tue Apr 14 21:09:22 2015 +0000 tick: broadcast-hrtimer: Remove overly clever return value abuse The assignment of bc_moved in the conditional construct relies on the fact that in the case of hrtimer_start() invocation the return value is always 0. It took me a while to understand it. We want to get rid of the hrtimer_start() return value. Open code the logic which makes it readable as well. Signed-off-by: Thomas Gleixner Reviewed-by: Preeti U Murthy Acked-by: Peter Zijlstra Cc: Viresh Kumar Cc: Marcelo Tosatti Cc: Frederic Weisbecker Link: http://lkml.kernel.org/r/20150414203503.404751457@linutronix.de Signed-off-by: Thomas Gleixner kernel/time/tick-broadcast-hrtimer.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit b193217e6dc3f88b599b573b53e0e0f6671d969a Author: Thomas Gleixner Date: Tue Apr 14 21:09:18 2015 +0000 alarmtimer: Get rid of unused return value We want to get rid of the hrtimer_start() return value and the alarm timer return value is nowhere used. Remove it. Signed-off-by: Thomas Gleixner Acked-by: Peter Zijlstra Cc: Preeti U Murthy Cc: Viresh Kumar Cc: Marcelo Tosatti Cc: Frederic Weisbecker Cc: John Stultz Link: http://lkml.kernel.org/r/20150414203503.243910615@linutronix.de Signed-off-by: Thomas Gleixner include/linux/alarmtimer.h | 4 ++-- kernel/time/alarmtimer.c | 11 ++++------- 2 files changed, 6 insertions(+), 9 deletions(-) commit 46ac2f53dfe93a25b251696b946af7b673978ccb Author: Thomas Gleixner Date: Tue Apr 14 21:09:16 2015 +0000 net: core: pktgen: Remove bogus hrtimer_active() check The check for hrtimer_active() after starting the timer is pointless. If the timer is inactive it has expired already and therefor the task pointer is already NULL. Signed-off-by: Thomas Gleixner Acked-by: Peter Zijlstra Cc: Preeti U Murthy Cc: Viresh Kumar Cc: Marcelo Tosatti Cc: Frederic Weisbecker Acked-by: David S. Miller Link: http://lkml.kernel.org/r/20150414203503.165258315@linutronix.de Signed-off-by: Thomas Gleixner net/core/pktgen.c | 2 -- 1 file changed, 2 deletions(-) commit ccdd92c17e144c8494f4c94ab85b48d297545cec Author: Thomas Gleixner Date: Tue Apr 14 21:09:15 2015 +0000 rtmutex: Remove bogus hrtimer_active() check The check for hrtimer_active() after starting the timer is pointless. If the timer is inactive it has expired already and therefor the task pointer is already NULL. Signed-off-by: Thomas Gleixner Acked-by: Peter Zijlstra Cc: Preeti U Murthy Cc: Viresh Kumar Cc: Marcelo Tosatti Cc: Frederic Weisbecker Link: http://lkml.kernel.org/r/20150414203503.081830481@linutronix.de Signed-off-by: Thomas Gleixner kernel/locking/rtmutex.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 2e4b0d3fe88bc2618fd5d081ace338a70f8c23da Author: Thomas Gleixner Date: Tue Apr 14 21:09:13 2015 +0000 futex: Remove bogus hrtimer_active() check The check for hrtimer_active() after starting the timer is pointless. If the timer is inactive it has expired already and therefor the task pointer is already NULL. Signed-off-by: Thomas Gleixner Acked-by: Peter Zijlstra Cc: Preeti U Murthy Cc: Viresh Kumar Cc: Marcelo Tosatti Cc: Frederic Weisbecker Link: http://lkml.kernel.org/r/20150414203502.985825453@linutronix.de Signed-off-by: Thomas Gleixner kernel/futex.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 3f7b349ac14885472a19c46840235114e5ad5e52 Author: Thomas Gleixner Date: Tue Apr 14 21:09:11 2015 +0000 hrtimer: Remove bogus hrtimer_active() check The check for hrtimer_active() after starting the timer is pointless. If the timer is inactive it has expired already and therefor the task pointer is already NULL. Signed-off-by: Thomas Gleixner Acked-by: Peter Zijlstra Cc: Preeti U Murthy Cc: Viresh Kumar Cc: Marcelo Tosatti Cc: Frederic Weisbecker Link: http://lkml.kernel.org/r/20150414203502.907149271@linutronix.de Signed-off-by: Thomas Gleixner kernel/time/hrtimer.c | 4 ---- 1 file changed, 4 deletions(-) commit 02a171af1a46966dcdb5b38cdc33e4f43e92c778 Author: Thomas Gleixner Date: Tue Apr 14 21:09:10 2015 +0000 hrtimer: Make hrtimer_start() a inline wrapper No point for an extra export just to set the extra argument of hrtimer_start_range_ns() to 0. Signed-off-by: Thomas Gleixner Acked-by: Peter Zijlstra Cc: Preeti U Murthy Cc: Viresh Kumar Cc: Marcelo Tosatti Cc: Frederic Weisbecker Link: http://lkml.kernel.org/r/20150414203502.808544539@linutronix.de Signed-off-by: Thomas Gleixner include/linux/hrtimer.h | 19 +++++++++++++++++-- kernel/time/hrtimer.c | 19 ------------------- 2 files changed, 17 insertions(+), 21 deletions(-) commit 58f1f803f1d6ef9ab280de13246d65970a09cb95 Author: Thomas Gleixner Date: Tue Apr 14 21:09:08 2015 +0000 hrtimer: Get rid of __hrtimer_start_range_ns() No more callers. Remove the leftovers. Signed-off-by: Thomas Gleixner Acked-by: Peter Zijlstra Cc: Preeti U Murthy Cc: Viresh Kumar Cc: Marcelo Tosatti Cc: Frederic Weisbecker Link: http://lkml.kernel.org/r/20150414203502.707871492@linutronix.de Signed-off-by: Thomas Gleixner include/linux/hrtimer.h | 4 ---- kernel/time/hrtimer.c | 38 +++++++++++++++----------------------- 2 files changed, 15 insertions(+), 27 deletions(-) commit cc9684d3c1188ac5f1cf0ee9f8be7ba456099d7b Author: Thomas Gleixner Date: Tue Apr 14 21:09:06 2015 +0000 sched: deadline: Use hrtimer_start() hrtimer_start() does not longer defer already expired timers to the softirq. Get rid of the __hrtimer_start_range_ns() invocation. Signed-off-by: Thomas Gleixner Acked-by: Peter Zijlstra Cc: Preeti U Murthy Cc: Viresh Kumar Cc: Marcelo Tosatti Cc: Frederic Weisbecker Link: http://lkml.kernel.org/r/20150414203502.627353666@linutronix.de Signed-off-by: Thomas Gleixner kernel/sched/deadline.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) commit 4961b6e11825c2b05b516374b1800fc5dfc2cb78 Author: Thomas Gleixner Date: Tue Apr 14 21:09:05 2015 +0000 sched: core: Use hrtimer_start[_expires]() hrtimer_start() now enforces a timer interrupt when an already expired timer is enqueued. Get rid of the __hrtimer_start_range_ns() invocations and the loops around it. Signed-off-by: Thomas Gleixner Acked-by: Peter Zijlstra Cc: Preeti U Murthy Cc: Viresh Kumar Cc: Marcelo Tosatti Cc: Frederic Weisbecker Link: http://lkml.kernel.org/r/20150414203502.531131739@linutronix.de Signed-off-by: Thomas Gleixner kernel/sched/core.c | 28 ++++++++-------------------- kernel/sched/fair.c | 2 +- 2 files changed, 9 insertions(+), 21 deletions(-) commit 3497d206c4d9b266d2e56c8b20e51b2f0e6a3c72 Author: Thomas Gleixner Date: Tue Apr 14 21:09:03 2015 +0000 perf: core: Use hrtimer_start() hrtimer_start() does not longer defer already expired timers to the softirq. Get rid of the __hrtimer_start_range_ns() invocation. Signed-off-by: Thomas Gleixner Acked-by: Peter Zijlstra Cc: Preeti U Murthy Cc: Viresh Kumar Cc: Marcelo Tosatti Cc: Frederic Weisbecker Link: http://lkml.kernel.org/r/20150414203502.452104213@linutronix.de Signed-off-by: Thomas Gleixner kernel/events/core.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit 576b0704c9def6d54b3ae9e13b0b7567c713f568 Author: Thomas Gleixner Date: Tue Apr 14 21:09:01 2015 +0000 x86: perf: uncore: Use hrtimer_start() hrtimer_start() does not longer defer already expired timers to the softirq. Get rid of the __hrtimer_start_range_ns() invocation. Signed-off-by: Thomas Gleixner Acked-by: Peter Zijlstra Cc: Preeti U Murthy Cc: Viresh Kumar Cc: Marcelo Tosatti Cc: Frederic Weisbecker Cc: x86@kernel.org Link: http://lkml.kernel.org/r/20150414203502.360555157@linutronix.de Signed-off-by: Thomas Gleixner arch/x86/kernel/cpu/perf_event_intel_uncore.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 514c2304b4574dae28c3d7c0ad6b9cf296994140 Author: Thomas Gleixner Date: Tue Apr 14 21:09:00 2015 +0000 x86: perf: Use hrtimer_start() hrtimer_start() does not longer defer already expired timers to the softirq. Get rid of the __hrtimer_start_range_ns() invocation. Signed-off-by: Thomas Gleixner Acked-by: Peter Zijlstra Cc: Preeti U Murthy Cc: Viresh Kumar Cc: Marcelo Tosatti Cc: Frederic Weisbecker Cc: x86@kernel.org Link: http://lkml.kernel.org/r/20150414203502.260487331@linutronix.de Signed-off-by: Thomas Gleixner arch/x86/kernel/cpu/perf_event_intel_rapl.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit c1ad348b452aacd784fb97403d03d71723c72ee1 Author: Thomas Gleixner Date: Tue Apr 14 21:08:58 2015 +0000 tick: Nohz: Rework next timer evaluation The evaluation of the next timer in the nohz code is based on jiffies while all the tick internals are nano seconds based. We have also to convert hrtimer nanoseconds to jiffies in the !highres case. That's just wrong and introduces interesting corner cases. Turn it around and convert the next timer wheel timer expiry and the rcu event to clock monotonic and base all calculations on nanoseconds. That identifies the case where no timer is pending clearly with an absolute expiry value of KTIME_MAX. Makes the code more readable and gets rid of the jiffies magic in the nohz code. Signed-off-by: Thomas Gleixner Reviewed-by: Paul E. McKenney Acked-by: Peter Zijlstra Cc: Preeti U Murthy Cc: Viresh Kumar Cc: Marcelo Tosatti Cc: Frederic Weisbecker Cc: Josh Triplett Cc: Lai Jiangshan Cc: John Stultz Cc: Marcelo Tosatti Link: http://lkml.kernel.org/r/20150414203502.184198593@linutronix.de Signed-off-by: Thomas Gleixner include/linux/hrtimer.h | 2 +- include/linux/rcupdate.h | 6 ++- include/linux/rcutree.h | 2 +- include/linux/timer.h | 7 --- kernel/rcu/tree_plugin.h | 14 +++--- kernel/time/hrtimer.c | 14 ++---- kernel/time/tick-internal.h | 2 + kernel/time/tick-sched.c | 109 ++++++++++++++++++++------------------------ kernel/time/tick-sched.h | 2 +- kernel/time/timer.c | 71 ++++++++++++++--------------- kernel/time/timer_list.c | 4 +- 11 files changed, 107 insertions(+), 126 deletions(-) commit 157d29e101c7d032e886df067aeea1b21a366cc5 Author: Thomas Gleixner Date: Tue Apr 14 21:08:56 2015 +0000 tick: Sched: Restructure code Get rid of one indentation level. Preparatory patch for a major rework. No functional change. Signed-off-by: Thomas Gleixner Acked-by: Peter Zijlstra Cc: Preeti U Murthy Cc: Viresh Kumar Cc: Marcelo Tosatti Cc: Frederic Weisbecker Cc: John Stultz Cc: Marcelo Tosatti Link: http://lkml.kernel.org/r/20150414203502.101563235@linutronix.de Signed-off-by: Thomas Gleixner kernel/time/tick-sched.c | 171 ++++++++++++++++++++++------------------------- 1 file changed, 81 insertions(+), 90 deletions(-) commit 0ff53d09642204c648424def0caa9117e7a3caaf Author: Thomas Gleixner Date: Tue Apr 14 21:08:54 2015 +0000 tick: sched: Force tick interrupt and get rid of softirq magic We already got rid of the hrtimer reprogramming loops and hoops as hrtimer now enforces an interrupt if the enqueued time is in the past. Do the same for the nohz non highres mode. That gets rid of the need to raise the softirq which only serves the purpose of getting the machine out of the inner idle loop. Signed-off-by: Thomas Gleixner Acked-by: Peter Zijlstra Cc: Preeti U Murthy Cc: Viresh Kumar Cc: Marcelo Tosatti Cc: Frederic Weisbecker Cc: John Stultz Cc: Marcelo Tosatti Link: http://lkml.kernel.org/r/20150414203502.023464878@linutronix.de Signed-off-by: Thomas Gleixner kernel/time/tick-sched.c | 83 +++++++++++++++++------------------------------- 1 file changed, 29 insertions(+), 54 deletions(-) commit afc08b15cc2a3d2c48cbd427be8e0eea05698363 Author: Thomas Gleixner Date: Tue Apr 14 21:08:52 2015 +0000 tick: sched: Remove hrtimer_active() checks hrtimer_start() enforces a timer interrupt if the timer is already expired. Get rid of the checks and the forward loop. Signed-off-by: Thomas Gleixner Reviewed-by: Frederic Weisbecker Acked-by: Peter Zijlstra Cc: Preeti U Murthy Cc: Viresh Kumar Cc: Marcelo Tosatti Cc: John Stultz Cc: Marcelo Tosatti Link: http://lkml.kernel.org/r/20150414203501.943658239@linutronix.de Signed-off-by: Thomas Gleixner kernel/time/tick-sched.c | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) commit c6eb3f70d4482806dc2d3e1e3c7736f497b1d418 Author: Thomas Gleixner Date: Tue Apr 14 21:08:51 2015 +0000 hrtimer: Get rid of hrtimer softirq hrtimer softirq is a leftover from the initial implementation and serves only the purpose to handle the enqueueing of already expired timers in the high resolution timer mode. We discussed whether we change the return value and force all start sites to handle that the timer is already expired, but that would be a Herculean task and I'm not sure whether its a good idea to enforce that handling on everyone. A simpler solution is to enforce a timer interrupt instead of raising and scheduling a softirq. Just use the existing infrastructure to do so and remove all the softirq leftovers. The HRTIMER softirq enum is now unused, but kept around because trace parsers rely on the existing numbering. Signed-off-by: Thomas Gleixner Acked-by: Peter Zijlstra Cc: Preeti U Murthy Cc: Viresh Kumar Cc: Marcelo Tosatti Cc: Frederic Weisbecker Link: http://lkml.kernel.org/r/20150414203501.840834708@linutronix.de Signed-off-by: Thomas Gleixner include/linux/hrtimer.h | 1 - include/linux/interrupt.h | 3 +- kernel/time/hrtimer.c | 163 ++++++++++++---------------------------------- kernel/time/tick-common.c | 10 +++ kernel/time/timer.c | 2 - 5 files changed, 55 insertions(+), 124 deletions(-) commit 895bdfa793f6e912d1a58fc445b3dd4d686f7bd3 Author: Thomas Gleixner Date: Tue Apr 14 21:08:49 2015 +0000 hrtimer: Keep pointer to first timer and simplify __remove_hrtimer() __remove_hrtimer() needs to evaluate the expiry time to figure out whether the timer which is removed is eventually the first expiring timer on the cpu. Keep a pointer to it, which is lazily updated, so we can avoid the evaluation dance and retrieve the information from there. Generates slightly better code. Signed-off-by: Thomas Gleixner Acked-by: Peter Zijlstra Cc: Preeti U Murthy Cc: Viresh Kumar Cc: Marcelo Tosatti Cc: Frederic Weisbecker Link: http://lkml.kernel.org/r/20150414203501.752838019@linutronix.de Signed-off-by: Thomas Gleixner include/linux/hrtimer.h | 6 ++++++ kernel/time/hrtimer.c | 46 ++++++++++++++++++++++++++++------------------ 2 files changed, 34 insertions(+), 18 deletions(-) commit b97f44c9b658d52e0139c947ea5519e51ba38d81 Author: Thomas Gleixner Date: Tue Apr 14 21:08:47 2015 +0000 hrtimer: Make use of timerqueue_add/del return values Use the return value instead of reevaluating the information. Signed-off-by: Thomas Gleixner Acked-by: Peter Zijlstra Cc: Preeti U Murthy Cc: Viresh Kumar Cc: Marcelo Tosatti Cc: Frederic Weisbecker Link: http://lkml.kernel.org/r/20150414203501.658152945@linutronix.de Signed-off-by: Thomas Gleixner kernel/time/hrtimer.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit c320642e1ced3b81592610e374894fea995f475b Author: Thomas Gleixner Date: Tue Apr 14 21:08:46 2015 +0000 timerqueue: Let timerqueue_add/del return information The hrtimer code is interested whether the added timer is the first one to expire and whether the removed timer was the last one in the tree. The add/del routines have that information already. So we can return it right away instead of reevaluating it at the call site. Signed-off-by: Thomas Gleixner Acked-by: Peter Zijlstra Cc: Preeti U Murthy Cc: Viresh Kumar Cc: Marcelo Tosatti Cc: Frederic Weisbecker Cc: John Stultz Link: http://lkml.kernel.org/r/20150414203501.579063647@linutronix.de Signed-off-by: Thomas Gleixner include/linux/timerqueue.h | 8 ++++---- lib/timerqueue.c | 10 +++++++--- 2 files changed, 11 insertions(+), 7 deletions(-) commit b8e38413ac2c33c497e72895fcd5da709fd1b908 Author: Thomas Gleixner Date: Tue Apr 14 21:08:44 2015 +0000 hrtimer: Align the hrtimer clock bases as well We don't use cacheline_align here because that might waste lot of space on 32bit machine with 64 bytes cachelines and on 64bit machines with 128 bytes cachelines. The size of struct hrtimer_clock_base is 64byte on 64bit and 32byte on 32bit machines. So we utilize the cache lines proper. Signed-off-by: Thomas Gleixner Acked-by: Peter Zijlstra Cc: Preeti U Murthy Cc: Viresh Kumar Cc: Marcelo Tosatti Cc: Frederic Weisbecker Link: http://lkml.kernel.org/r/20150414203501.498165771@linutronix.de Signed-off-by: Thomas Gleixner include/linux/hrtimer.h | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit 6d9a1411393d51f17bee3fe163430b21b2cb2de9 Author: Thomas Gleixner Date: Tue Apr 14 21:08:42 2015 +0000 hrtimer: Cache line align the hrtimer cpu base We really want that data structure to start at a cache line boundary. Signed-off-by: Thomas Gleixner Acked-by: Peter Zijlstra Cc: Preeti U Murthy Cc: Viresh Kumar Cc: Marcelo Tosatti Cc: Frederic Weisbecker Link: http://lkml.kernel.org/r/20150414203501.417597627@linutronix.de Signed-off-by: Thomas Gleixner include/linux/hrtimer.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 34aee88a02ba296a8e8c9523cdf77147731903f1 Author: Thomas Gleixner Date: Tue Apr 14 21:08:41 2015 +0000 hrtimer: Use cpu_base->active_base for hotpath iterators The active_bases field is guaranteed to be in sync with the timerqueue of the corresponding clock base. So we can use it for iterating over the clock bases. This allows to break out early if no more active clock bases are available and avoids touching the cache lines of inactive clock bases. Signed-off-by: Thomas Gleixner Reviewed-by: Preeti U Murthy Acked-by: Peter Zijlstra Cc: Viresh Kumar Cc: Marcelo Tosatti Cc: Frederic Weisbecker Link: http://lkml.kernel.org/r/20150414203501.322887675@linutronix.de Signed-off-by: Thomas Gleixner kernel/time/hrtimer.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) commit e19ffe8be2cd0a1f726b235443eba21e64f6be5e Author: Thomas Gleixner Date: Tue Apr 14 21:08:39 2015 +0000 hrtimer: Use bits for various boolean indicators No point in wasting 12 byte storage space. Generates better code as well. Text size reduction: x8664 -64, i386 -16, ARM -132, ARM64 -0, power64 -48 Signed-off-by: Thomas Gleixner Acked-by: Peter Zijlstra Cc: Preeti U Murthy Cc: Viresh Kumar Cc: Marcelo Tosatti Cc: Frederic Weisbecker Link: http://lkml.kernel.org/r/20150414203501.227955358@linutronix.de Signed-off-by: Thomas Gleixner include/linux/hrtimer.h | 6 +++--- kernel/time/hrtimer.c | 24 ++++++++++++++++-------- 2 files changed, 19 insertions(+), 11 deletions(-) commit 868a3e915f7f5eba8f8cb4f7da2276760807c51c Author: Thomas Gleixner Date: Tue Apr 14 21:08:37 2015 +0000 hrtimer: Make offset update smarter On every tick/hrtimer interrupt we update the offset variables of the clock bases. That's silly because these offsets change very seldom. Add a sequence counter to the time keeping code which keeps track of the offset updates (clock_was_set()). Have a sequence cache in the hrtimer cpu bases to evaluate whether the offsets must be updated or not. This allows us later to avoid pointless cacheline pollution. Signed-off-by: Thomas Gleixner Reviewed-by: Preeti U Murthy Acked-by: Peter Zijlstra Cc: Viresh Kumar Cc: Marcelo Tosatti Cc: Frederic Weisbecker Cc: John Stultz Link: http://lkml.kernel.org/r/20150414203501.132820245@linutronix.de Signed-off-by: Thomas Gleixner Cc: John Stultz include/linux/hrtimer.h | 4 ++-- include/linux/timekeeper_internal.h | 2 ++ kernel/time/hrtimer.c | 3 ++- kernel/time/timekeeping.c | 23 ++++++++++++++++------- kernel/time/timekeeping.h | 7 ++++--- 5 files changed, 26 insertions(+), 13 deletions(-) commit 21d6d52a1b7028e6a6840bd82e354aefa9a5e203 Author: Thomas Gleixner Date: Tue Apr 14 21:08:35 2015 +0000 hrtimer: Get rid of softirq time The softirq time field in the clock bases is an optimization from the early days of hrtimers. It provides a coarse "jiffies" like time mostly for self rearming timers. But that comes with a price: - Larger code size - Extra storage space - Duplicated functions with really small differences The benefit of this is optimization is marginal for contemporary systems. Consolidate everything on the high resolution timer implementation. This makes further optimizations possible. Text size reduction: x8664 -95, i386 -356, ARM -148, ARM64 -40, power64 -16 Signed-off-by: Thomas Gleixner Acked-by: Peter Zijlstra Cc: Preeti U Murthy Cc: Viresh Kumar Cc: Marcelo Tosatti Cc: Frederic Weisbecker Link: http://lkml.kernel.org/r/20150414203501.039977424@linutronix.de Signed-off-by: Thomas Gleixner include/linux/hrtimer.h | 24 ++------ kernel/time/hrtimer.c | 148 ++++++++++++++++++---------------------------- kernel/time/timekeeping.c | 32 ---------- kernel/time/timekeeping.h | 3 - 4 files changed, 64 insertions(+), 143 deletions(-) commit a6ffebce7f89f6f97cc22838a5d4383b15d6774f Author: Thomas Gleixner Date: Tue Apr 14 21:08:34 2015 +0000 hrtimer: Make the statistics fields smaller No point in having usigned long for /proc/timer_list statistics. Make them unsigned int. Signed-off-by: Thomas Gleixner Acked-by: Peter Zijlstra Cc: Preeti U Murthy Cc: Viresh Kumar Cc: Marcelo Tosatti Cc: Frederic Weisbecker Link: http://lkml.kernel.org/r/20150414203500.959773467@linutronix.de Signed-off-by: Thomas Gleixner include/linux/hrtimer.h | 8 ++++---- kernel/time/hrtimer.c | 4 ++-- kernel/time/timer_list.c | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) commit 056a3cacbc46e5aca27b350ce4ecb3b33ebb0700 Author: Thomas Gleixner Date: Tue Apr 14 21:08:32 2015 +0000 hrtimer: Get rid of hrtimer_get_res() The resolution is directly accessible now. So its simpler just to fill in the values of the timespec and be done with it. Text size reduction (combined with "hrtimer: Get rid of the resolution field in hrtimer_clock_base"): x8664 -61, i386 -221, ARM -60, power64 -48 Signed-off-by: Thomas Gleixner Acked-by: Peter Zijlstra Cc: Preeti U Murthy Cc: Viresh Kumar Cc: Marcelo Tosatti Cc: Frederic Weisbecker Link: http://lkml.kernel.org/r/20150414203500.879888080@linutronix.de Signed-off-by: Thomas Gleixner include/linux/hrtimer.h | 1 - kernel/time/alarmtimer.c | 6 +++--- kernel/time/hrtimer.c | 16 ---------------- kernel/time/posix-timers.c | 17 ++++++++++++----- 4 files changed, 15 insertions(+), 25 deletions(-) commit 447fbbdc2cd58cdaf410fefef365a9ce38833157 Author: Thomas Gleixner Date: Tue Apr 14 21:08:30 2015 +0000 sound: Use hrtimer_resolution instead of hrtimer_get_res() No point in converting a timespec now that the value is directly accessible. Get rid of the null check while at it. Resolution is guaranteed to be > 0. Signed-off-by: Thomas Gleixner Acked-by: Takashi Iwai Acked-by: Peter Zijlstra Cc: Preeti U Murthy Cc: Viresh Kumar Cc: Marcelo Tosatti Cc: Frederic Weisbecker Cc: Jaroslav Kysela Cc: alsa-devel@alsa-project.org Link: http://lkml.kernel.org/r/20150414203500.799133359@linutronix.de Signed-off-by: Thomas Gleixner sound/core/hrtimer.c | 9 +-------- sound/drivers/pcsp/pcsp.c | 15 ++++++--------- 2 files changed, 7 insertions(+), 17 deletions(-) commit 1e3176885cce8e0137d6f4072c5910bfa00901ed Author: Thomas Gleixner Date: Tue Apr 14 21:08:28 2015 +0000 net: sched: Use hrtimer_resolution instead of hrtimer_get_res() No point in converting a timespec now that the value is directly accessible. Signed-off-by: Thomas Gleixner Acked-by: David S. Miller Acked-by: Peter Zijlstra Cc: Preeti U Murthy Cc: Viresh Kumar Cc: Marcelo Tosatti Cc: Frederic Weisbecker Cc: Jamal Hadi Salim Link: http://lkml.kernel.org/r/20150414203500.720623028@linutronix.de Signed-off-by: Thomas Gleixner net/sched/sch_api.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 398ca17fb54b212cdc9da7ff4a17a35c48dd2103 Author: Thomas Gleixner Date: Tue Apr 14 21:08:27 2015 +0000 hrtimer: Get rid of the resolution field in hrtimer_clock_base The field has no value because all clock bases have the same resolution. The resolution only changes when we switch to high resolution timer mode. We can evaluate that from a single static variable as well. In the !HIGHRES case its simply a constant. Export the variable, so we can simplify the usage sites. Signed-off-by: Thomas Gleixner Reviewed-by: Preeti U Murthy Acked-by: Peter Zijlstra Cc: Viresh Kumar Cc: Marcelo Tosatti Cc: Frederic Weisbecker Link: http://lkml.kernel.org/r/20150414203500.645454122@linutronix.de Signed-off-by: Thomas Gleixner include/linux/hrtimer.h | 6 ++++-- kernel/time/hrtimer.c | 26 +++++++++----------------- kernel/time/timer_list.c | 8 ++++---- 3 files changed, 17 insertions(+), 23 deletions(-) commit d9f0acdeef48570c4e6159d3108f12b64571392e Author: Viresh Kumar Date: Tue Apr 14 21:08:25 2015 +0000 hrtimer: Update active_bases before calling hrtimer_force_reprogram() 'active_bases' indicates which clock-base have active timer. The intention of this bit field was to avoid evaluating inactive bases. It was introduced with the introduction of the BOOTTIME and TAI clock bases, but it was never brought into full use. We want to use it now, but in __remove_hrtimer() the update happens after the calling hrtimer_force_reprogram() which has to evaluate all clock bases for the next expiring timer. So in case the last timer of a clock base got removed we still see the active bit and therefor evaluate the clock base for no value. There are further optimizations possible when active_bases is updated in the right place. Move the update before the call to hrtimer_force_reprogram() [ tglx: Massaged changelog ] Signed-off-by: Viresh Kumar Reviewed-by: Preeti U Murthy Acked-by: Peter Zijlstra Cc: Marcelo Tosatti Cc: Frederic Weisbecker Cc: linaro-kernel@lists.linaro.org Link: http://lkml.kernel.org/r/20150414203500.533438642@linutronix.de Link: http://lkml.kernel.org/r/c7c8ebcd9ed88bb09d76059c745a1fafb48314e7.1428039899.git.viresh.kumar@linaro.org Signed-off-by: Thomas Gleixner kernel/time/hrtimer.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 91e5a2170e795989da9f90c18ba18984f23acc5b Author: Thomas Gleixner Date: Mon Apr 13 21:02:22 2015 +0000 hrtimer: Document hrtimer_forward[_now]() proper Document the calling context conditions. Signed-off-by: Thomas Gleixner Acked-by: Peter Zijlstra Link: http://lkml.kernel.org/r/20150413210035.178751779@linutronix.de Signed-off-by: Thomas Gleixner include/linux/hrtimer.h | 17 ++++++++++++++++- kernel/time/hrtimer.c | 8 ++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) commit 51a03393bac061a4e13fd17214d3ef93a5b296e3 Author: Thomas Gleixner Date: Wed Apr 22 11:44:15 2015 +0200 timekeeping: Remove stale function prototype commit 61edec81d260 "timekeeping: Simplify timekeeping_clocktai()" implemented timekeeping_clocktai() as an inline function, but left the old extern prototype in the header file. Remove it. Signed-off-by: Thomas Gleixner kernel/time/timekeeping.h | 1 - 1 file changed, 1 deletion(-) commit 4796cf9b02b5bea141632e21d64556a7eb883a65 Author: Yingjoe Chen Date: Fri Apr 10 21:55:50 2015 +0800 time: Remove nonexistent function prototype The function clocksource_get_next() was removed in commit 75c5158f70 (timekeeping: Update clocksource with stop_machine), but the prototype was not removed with it. Remove the prototype. Signed-off-by: Yingjoe Chen Cc: Cc: Martin Schwidefsky Cc: Cc: John Stultz Link: http://lkml.kernel.org/r/1428674150-1780-1-git-send-email-yingjoe.chen@mediatek.com Signed-off-by: Thomas Gleixner include/linux/clocksource.h | 1 - 1 file changed, 1 deletion(-) commit 7de4e74430139f2484cb16cedf6c281d1a5a696e Author: Joe Perches Date: Fri Apr 17 11:39:18 2015 -0700 timer_list: Reduce SEQ_printf footprint This macro can be converted to a static function to reduce object size. (x86-64 defconfig) $ size kernel/time/timer_list.o* text data bss dec hex filename 6583 8 0 6591 19bf kernel/time/timer_list.o.old 4647 8 0 4655 122f kernel/time/timer_list.o.new Signed-off-by: Joe Perches Cc: John Stultz Link: http://lkml.kernel.org/r/1429295958.2850.104.camel@perches.com Signed-off-by: Thomas Gleixner kernel/time/timer_list.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) commit 80616c0db8a26f030be78fea39f7c880c4263e55 Author: Johannes Berg Date: Tue Apr 14 14:50:41 2015 +0200 mac80211: allow segmentation offloads Implement the necessary software segmentation on the normal TX path so that fast-xmit can use segmentation offload if the hardware (or driver) supports it. Signed-off-by: Johannes Berg net/mac80211/main.c | 3 ++- net/mac80211/tx.c | 70 +++++++++++++++++++++++++++++++++++------------------ 2 files changed, 48 insertions(+), 25 deletions(-) commit 680a0daba74fed0bf30530c9b3e7e706cf29855f Author: Johannes Berg Date: Mon Apr 13 16:58:25 2015 +0200 mac80211: allow drivers to support S/G If drivers want to support S/G (really just gather DMA on TX) then we can now easily support this on the fast-xmit path since it just needs to write to the ethernet header (and already has a check for that being possible.) However, disallow this on the regular TX path (which has to handle fragmentation, software crypto, etc.) by calling skb_linearize(). Also allow the related HIGHDMA since that's not interesting to the code in mac80211 at all anyway. Signed-off-by: Johannes Berg include/net/mac80211.h | 4 ++-- net/mac80211/main.c | 2 +- net/mac80211/tx.c | 6 ++++++ 3 files changed, 9 insertions(+), 3 deletions(-) commit 2d981fddb0e4a5a4097d926f3b9fd3eaf25867a8 Author: Johannes Berg Date: Fri Apr 10 14:10:10 2015 +0200 mac80211: allow checksum offload only in fast-xmit When we go through the complete TX processing, there are a number of things like fragmentation and software crypto that require the checksum to be calculated already. In favour of maintainability, instead of adding the necessary call to skb_checksum_help() in all the places that need it, just do it once before the regular TX processing. Right now this only affects the TI wlcore and QCA ath10k drivers since they're the only ones using checksum offload. The previous commits enabled fast-xmit for them in almost all cases. For wlcore this even fixes a corner case: when a key fails to be programmed to hardware software encryption gets used, encrypting frames with a bad checksum. Signed-off-by: Johannes Berg net/mac80211/tx.c | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) commit 41fbf6e4f317964ec9005dd613bcb3c262db0a8a Author: Johannes Berg Date: Fri Apr 10 14:18:40 2015 +0200 ath10k: enable IEEE80211_HW_SUPPORT_FAST_XMIT The driver can clearly enable fast-xmit since it does rate control in the device and thus must do duration calculation there as well. Acked-by: Kalle Valo Signed-off-by: Johannes Berg drivers/net/wireless/ath/ath10k/mac.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 60d7900dcb984d0f470013a517adbe7ae845163b Author: Johannes Berg Date: Fri Apr 10 14:13:14 2015 +0200 wlcore: enable IEEE80211_HW_SUPPORT_FAST_XMIT The driver can clearly enable fast-xmit since it does rate control in the device and thus must do duration calculation there as well. Signed-off-by: Johannes Berg drivers/net/wireless/ti/wlcore/main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 3ffd884012bb12d3ed64c9fd9a142a62fdcfaf11 Author: Johannes Berg Date: Tue Apr 14 10:28:37 2015 +0200 mac80211: extend fast-xmit to cover IBSS IBSS can be supported very easily since it uses the standard station authorization state etc. so it just needs to be covered by the header building switch statement. Signed-off-by: Johannes Berg net/mac80211/tx.c | 7 +++++++ 1 file changed, 7 insertions(+) commit e495c24731a2651fc2c1c7feedc8ba3b31f6b5d4 Author: Johannes Berg Date: Fri Apr 10 14:03:17 2015 +0200 mac80211: extend fast-xmit for more ciphers When crypto is offloaded then in some cases it's all handled by the device, and in others only some space for the IV must be reserved in the frame. Handle both of these cases in the fast-xmit path, up to a limit of 18 bytes of space for IVs. Signed-off-by: Johannes Berg net/mac80211/sta_info.h | 10 +++++++--- net/mac80211/tx.c | 40 +++++++++++++++++++++++++++++++++++++--- 2 files changed, 44 insertions(+), 6 deletions(-) commit 725b812c839643639d6135b1f7fb41e48de465a4 Author: Johannes Berg Date: Fri Apr 10 14:02:08 2015 +0200 mac80211: extend fast-xmit to driver fragmentation If the driver handles fragmentation then it wouldn't be done in software so we can still use the fast-xmit path in that case. Signed-off-by: Johannes Berg net/mac80211/tx.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 4505d1fe006eae619d765d59977a408c0dd6f571 Author: Johannes Berg Date: Mon Mar 30 15:18:58 2015 +0200 mac80211_hwsim: enable IEEE80211_HW_SUPPORT_FAST_XMIT For hwsim, the duration field in frames is already not valid for the common case of HT/VHT MCSes, so there's little point in trying to keep it accurate for the legacy rates. Enable the fast-xmit code to allow testing that, although given the dependency on hardware crypto it will only be enabled in open network configurations. Signed-off-by: Johannes Berg drivers/net/wireless/mac80211_hwsim.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 17c18bf880b2464851e5a2bca86521affc46c97e Author: Johannes Berg Date: Sat Mar 21 15:25:43 2015 +0100 mac80211: add TX fastpath In order to speed up mac80211's TX path, add the "fast-xmit" cache that will cache the data frame 802.11 header and other data to be able to build the frame more quickly. This cache is rebuilt when external triggers imply changes, but a lot of the checks done per packet today are simplified away to the check for the cache. There's also a more detailed description in the code. Signed-off-by: Johannes Berg include/net/mac80211.h | 6 +- net/mac80211/cfg.c | 9 +- net/mac80211/chan.c | 6 + net/mac80211/ieee80211_i.h | 5 + net/mac80211/key.c | 2 + net/mac80211/rx.c | 2 + net/mac80211/sta_info.c | 6 + net/mac80211/sta_info.h | 27 +++ net/mac80211/tx.c | 420 ++++++++++++++++++++++++++++++++++++++++++++- 9 files changed, 480 insertions(+), 3 deletions(-) commit 3f5159a9221f19b08275b0a6388ab14392ae4eec Author: Denys Vlasenko Date: Tue Apr 21 18:03:14 2015 +0200 x86/asm/entry/32: Update -ENOSYS handling to match the 64-bit logic Recently Andy changed the 64-bit syscall logic so that pt_regs->ax is initially set to -ENOSYS, and on syscall exit, it is updated with the actual return value. This simplified the logic there. This patch does the same for 32-bit syscall entry points. The check for %rax being too big is moved to be just before the call instruction which dispatches execution through the syscall table. There is no way to accidentally skip this check now by jumping to a label after it. This allows us to remove redundant checks after ptrace et al. If %rax is too big, we just skip over the (call, write %rax to pt_regs->ax) instruction pair. pt_regs->ax remains set to -ENOSYS, and it gets returned to userspace. Similar to 64-bit code, this eliminates the "ia32_badsys" code path. Run-tested. Signed-off-by: Denys Vlasenko Cc: Alexei Starovoitov Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Frederic Weisbecker Cc: H. Peter Anvin Cc: Kees Cook Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Steven Rostedt Cc: Will Drewry Link: http://lkml.kernel.org/r/1429632194-13445-2-git-send-email-dvlasenk@redhat.com [ Changelog massage. ] Signed-off-by: Ingo Molnar arch/x86/ia32/ia32entry.S | 42 ++++++++++++++---------------------------- 1 file changed, 14 insertions(+), 28 deletions(-) commit ac7f5dfb0348a33b2ea92a0c477103c4db45ad4e Author: Denys Vlasenko Date: Tue Apr 21 18:03:13 2015 +0200 x86/asm/entry/64: Merge 32-bit execve stubs with x32 ones, as they are identical Run-tested. Suggested-by: Brian Gerst Signed-off-by: Denys Vlasenko Cc: Alexei Starovoitov Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Frederic Weisbecker Cc: H. Peter Anvin Cc: Kees Cook Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Steven Rostedt Cc: Thomas Gleixner Cc: Will Drewry Link: http://lkml.kernel.org/r/1429632194-13445-1-git-send-email-dvlasenk@redhat.com Signed-off-by: Ingo Molnar arch/x86/kernel/entry_64.S | 23 +++++------------------ 1 file changed, 5 insertions(+), 18 deletions(-) commit 17be0aec74fb036eb4eb32c2268f3420a034762b Author: Denys Vlasenko Date: Tue Apr 21 18:27:29 2015 +0200 x86/asm/entry/64: Implement better check for canonical addresses This change makes the check exact (no more false positives on "negative" addresses). Andy explains: "Canonical addresses either start with 17 zeros or 17 ones. In the old code, we checked that the top (64-47) = 17 bits were all zero. We did this by shifting right by 47 bits and making sure that nothing was left. In the new code, we're shifting left by (64 - 48) = 16 bits and then signed shifting right by the same amount, this propagating the 17th highest bit to all positions to its left. If we get the same value we started with, then we're good to go." While it isn't really important to be fully correct here - almost all addresses we'll ever see will be userspace ones, but OTOH it looks to be cheap enough: the new code uses two more ALU ops but preserves %rcx, allowing to not reload it from pt_regs->cx again. On disassembly level, the changes are: cmp %rcx,0x80(%rsp) -> mov 0x80(%rsp),%r11; cmp %rcx,%r11 shr $0x2f,%rcx -> shl $0x10,%rcx; sar $0x10,%rcx; cmp %rcx,%r11 mov 0x58(%rsp),%rcx -> (eliminated) Signed-off-by: Denys Vlasenko Acked-by: Andy Lutomirski Cc: Alexei Starovoitov Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Frederic Weisbecker Cc: H. Peter Anvin Cc: Kees Cook Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Steven Rostedt Cc: Thomas Gleixner Cc: Will Drewry Link: http://lkml.kernel.org/r/1429633649-20169-1-git-send-email-dvlasenk@redhat.com [ Changelog massage. ] Signed-off-by: Ingo Molnar arch/x86/kernel/entry_64.S | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) commit 3462bd2adeadc49d9e126bca3b5536a3437a902d Author: Hagen Paul Pfeifer Date: Mon Apr 20 23:27:11 2015 +0200 x86/asm: Always inline atomics During some code analysis I realized that atomic_add(), atomic_sub() and friends are not necessarily inlined AND that each function is defined multiple times: atomic_inc: 544 duplicates atomic_dec: 215 duplicates atomic_dec_and_test: 107 duplicates atomic64_inc: 38 duplicates [...] Each definition is exact equally, e.g.: ffffffff813171b8 : 55 push %rbp 48 89 e5 mov %rsp,%rbp f0 01 3e lock add %edi,(%rsi) 5d pop %rbp c3 retq In turn each definition has one or more callsites (sure): ffffffff81317c78: e8 3b f5 ff ff callq ffffffff813171b8 [...] ffffffff8131a062: e8 51 d1 ff ff callq ffffffff813171b8 [...] ffffffff8131a190: e8 23 d0 ff ff callq ffffffff813171b8 [...] The other way around would be to remove the static linkage - but I prefer an enforced inlining here. Before: text data bss dec hex filename 81467393 19874720 20168704 121510817 73e1ba1 vmlinux.orig After: text data bss dec hex filename 81461323 19874720 20168704 121504747 73e03eb vmlinux.inlined Yes, the inlining here makes the kernel even smaller! ;) Linus further observed: "I have this memory of having seen that before - the size heuristics for gcc getting confused by inlining. [...] It might be a good idea to mark things that are basically just wrappers around a single (or a couple of) asm instruction to be always_inline." Signed-off-by: Hagen Paul Pfeifer Acked-by: Linus Torvalds Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1429565231-4609-1-git-send-email-hagen@jauu.net Signed-off-by: Ingo Molnar arch/x86/include/asm/atomic.h | 16 ++++++++-------- arch/x86/include/asm/atomic64_64.h | 8 ++++---- 2 files changed, 12 insertions(+), 12 deletions(-) commit aac82d319148c6a84e1bf90b86d3e0ec8bf0ee38 Author: Andy Lutomirski Date: Fri Apr 3 15:51:54 2015 -0700 x86, paravirt, xen: Remove the 64-bit ->irq_enable_sysexit() pvop We don't use irq_enable_sysexit on 64-bit kernels any more. Remove all the paravirt and Xen machinery to support it on 64-bit kernels. Tested-by: Boris Ostrovsky Signed-off-by: Andy Lutomirski Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/8a03355698fe5b94194e9e7360f19f91c1b2cf1f.1428100853.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/ia32/ia32entry.S | 6 ------ arch/x86/include/asm/paravirt_types.h | 7 ++++--- arch/x86/kernel/asm-offsets.c | 2 ++ arch/x86/kernel/paravirt.c | 4 +++- arch/x86/kernel/paravirt_patch_64.c | 1 - arch/x86/xen/enlighten.c | 3 ++- arch/x86/xen/xen-asm_64.S | 16 ---------------- arch/x86/xen/xen-ops.h | 2 ++ 8 files changed, 13 insertions(+), 28 deletions(-) commit b617b702da4e922277806f81c411d3051107d462 Author: Herbert Xu Date: Tue Apr 21 10:46:49 2015 +0800 crypto: rng - Zero seed in crypto_rng_reset If we allocate a seed on behalf ot the user in crypto_rng_reset, we must ensure that it is zeroed afterwards or the RNG may be compromised. Reported-by: Stephan Mueller Signed-off-by: Herbert Xu crypto/rng.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 654ae152b3d1f3d5d473d845a403e4b5c1a39389 Author: Herbert Xu Date: Tue Apr 21 10:46:47 2015 +0800 crypto: algif_rng - Remove obsolete const-removal cast Now that crypto_rng_reset takes a const argument, we no longer need to cast away the const qualifier. Signed-off-by: Herbert Xu crypto/algif_rng.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 94f1bb15bed84ad6c893916b7e7b9db6f1d7eec6 Author: Herbert Xu Date: Tue Apr 21 10:46:46 2015 +0800 crypto: rng - Remove old low-level rng interface Now that all rng implementations have switched over to the new interface, we can remove the old low-level interface. Signed-off-by: Herbert Xu crypto/rng.c | 57 +++---------------------------------------- include/crypto/internal/rng.h | 3 +-- include/crypto/rng.h | 10 +++----- include/linux/crypto.h | 30 ----------------------- 4 files changed, 8 insertions(+), 92 deletions(-) commit e33cf2c5aab7d0012e7890089e89ae2466c2449c Author: Herbert Xu Date: Tue Apr 21 10:46:45 2015 +0800 crypto: krng - Convert to new rng interface This patch ocnverts the KRNG implementation to the new low-level rng interface. Signed-off-by: Herbert Xu crypto/krng.c | 33 ++++++++++++++------------------- 1 file changed, 14 insertions(+), 19 deletions(-) commit e7c2422a839bfc6876a2f7a9b283bb2963f0287b Author: Herbert Xu Date: Tue Apr 21 10:46:44 2015 +0800 crypto: ansi_cprng - Convert to new rng interface This patch ocnverts the ANSI CPRNG implementation to the new low-level rng interface. Signed-off-by: Herbert Xu Acked-by: Neil Horman crypto/ansi_cprng.c | 86 +++++++++++++++++++++++++---------------------------- 1 file changed, 41 insertions(+), 45 deletions(-) commit 6f7e3caa9ecd194cb3f20d0712de1c76d8149e73 Author: Herbert Xu Date: Tue Apr 21 10:46:43 2015 +0800 crypto: ansi_cprng - Remove bogus inclusion of internal.h The file internal.h is only meant to be used by internel API implementation and not algorithm implementations. In fact it isn't even needed here so this patch removes it. Signed-off-by: Herbert Xu Acked-by: Neil Horman crypto/ansi_cprng.c | 2 -- 1 file changed, 2 deletions(-) commit 8fded5925d0a733c46f8d0b5edd1c9b315882b1d Author: Herbert Xu Date: Tue Apr 21 10:46:41 2015 +0800 crypto: drbg - Convert to new rng interface This patch converts the DRBG implementation to the new low-level rng interface. This allows us to get rid of struct drbg_gen by using the new RNG API instead. Signed-off-by: Herbert Xu Acked-by: Stephan Mueller crypto/drbg.c | 123 ++++++++++++++++++++++---------------------------- include/crypto/drbg.h | 50 +++++--------------- 2 files changed, 66 insertions(+), 107 deletions(-) commit 881cd6c570af412c2fab278b0656f7597dc5ee74 Author: Herbert Xu Date: Tue Apr 21 10:46:40 2015 +0800 crypto: rng - Add multiple algorithm registration interface This patch adds the helpers that allow the registration and removal of multiple RNG algorithms. Signed-off-by: Herbert Xu crypto/rng.c | 29 +++++++++++++++++++++++++++++ include/crypto/internal/rng.h | 2 ++ 2 files changed, 31 insertions(+) commit 7ca99d814821e8a8ac6d7c48b2ccfc24bda27b1f Author: Herbert Xu Date: Tue Apr 21 10:46:39 2015 +0800 crypto: rng - Add crypto_rng_set_entropy This patch adds the function crypto_rng_set_entropy. It is only meant to be used by testmgr when testing RNG implementations by providing fixed entropy data in order to verify test vectors. Signed-off-by: Herbert Xu include/crypto/internal/rng.h | 6 ++++++ include/crypto/rng.h | 4 ++++ 2 files changed, 10 insertions(+) commit acec27ff35af9caf34d76d16ee17ff3b292e7d83 Author: Herbert Xu Date: Tue Apr 21 10:46:38 2015 +0800 crypto: rng - Convert low-level crypto_rng to new style This patch converts the low-level crypto_rng interface to the "new" style. This allows existing implementations to be converted over one- by-one. Once that is complete we can then remove the old rng interface. Signed-off-by: Herbert Xu crypto/rng.c | 56 ++++++++++++++++++++++++++++++++++++++----- include/crypto/internal/rng.h | 3 +++ include/crypto/rng.h | 42 ++++++++++++++++++++++++++++++-- include/linux/crypto.h | 6 ++--- 4 files changed, 96 insertions(+), 11 deletions(-) commit 3c5d8fa9f56ad0928e7a1f06003e5034f5eedb52 Author: Herbert Xu Date: Tue Apr 21 10:46:37 2015 +0800 crypto: rng - Mark crypto_rng_reset seed as const There is no reason why crypto_rng_reset should modify the seed so this patch marks it as const. Since our algorithms don't export a const seed function yet we have to go through some contortions for now. Signed-off-by: Herbert Xu crypto/rng.c | 27 +++++++++++++++++++++++++-- include/crypto/rng.h | 9 +++------ 2 files changed, 28 insertions(+), 8 deletions(-) commit 11a002efbaa7fbd9f6e616695ab42aa9f1caf060 Author: Michal Kazior Date: Mon Apr 20 09:20:41 2015 +0000 ath10k: fix qca61x4 hw2.1 support During initialization firmware does some sort of memory switch between DRAM and IRAM. If configuration value for bank switching isn't correct device crashes during init. The new value prevents firmware 11.0.0.302 (and possibly others) for qca61x4 hw2.1 from crashing during init. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/pci.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit de57e2c8e1211cb7dea981f9f9818f1e1036a4d8 Author: Michal Kazior Date: Fri Apr 17 09:19:17 2015 +0000 ath10k: allow loading device specific board files Some devices differ slightly and require different board files. If wrong board data is used they crash or behave incorrectly. These devices can be differentiated by looking at PCI subsystem device id. That is the case for qca61x4 devices at least. The board specific filename is constructed as: board--.bin For PCI in particular it is: board-pci-:::.bin These files are looked in device/hw specific directories. Hence for Killer 1525 (qca6174 hw2.1) ath10k will request: /lib/firmware/ath10k/QCA6174/hw2.1/board-pci-168c:003e:1a56:1525.bin To not break any existing setups (e.g. in case some devices in the wild already have subsys ids) if a board specific file isn't found a generic one is used which is the one which would be used until now. This guarantees that after upgrading a driver device will not suddenly stop working due to now-missing specific board file. If this is the case a "fallback" string is appended to the info string when driver boots. Keep in mind this is distinct from cal-pci-*.bin files which contain full calibration data and MAC address. Cal data is aimed at systems where calibration data is stored out of band, e.g. on nand flash instead of device EEPROM - an approach taken by some AP/router vendors. Board files are more of a template and needs some bits to be filled in by the OTP program using device EEPROM contents. One could argue to map subsystem ids to some board design codename strings instead of using raw ids when building the board filename. Using a mapping however would make it a lot more cumbersome and time consuming (due to how patches propagate over various kernel trees) to add support for some new device board designs. Adding a board file is a lot quicker and doesn't require recompilation. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.c | 55 ++++++++++++++++++++++++++++----- drivers/net/wireless/ath/ath10k/core.h | 3 ++ drivers/net/wireless/ath/ath10k/debug.c | 6 +++- drivers/net/wireless/ath/ath10k/pci.c | 6 ++++ 4 files changed, 62 insertions(+), 8 deletions(-) commit d0ed74f38e778bc83d240e7b6aee146789fa0df8 Author: Michal Kazior Date: Fri Apr 17 09:19:16 2015 +0000 ath10k: share board file loading code across FW APIs There's no need to implement the same thing twice. Reduce code duplication. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.c | 56 +++++++++++++++------------------- 1 file changed, 24 insertions(+), 32 deletions(-) commit ff030b099a21a4753af575b4304249e88400e506 Author: Herbert Xu Date: Mon Apr 20 13:39:04 2015 +0800 crypto: rng - Introduce crypto_rng_generate This patch adds the new top-level function crypto_rng_generate which generates random numbers with additional input. It also extends the mid-level rng_gen_random function to take additional data as input. Signed-off-by: Herbert Xu crypto/rng.c | 9 +++++++-- include/crypto/rng.h | 27 +++++++++++++++++++++++++-- 2 files changed, 32 insertions(+), 4 deletions(-) commit d0e83059a6c9b04f00264a74b8f6439948de4613 Author: Herbert Xu Date: Mon Apr 20 13:39:03 2015 +0800 crypto: rng - Convert crypto_rng to new style crypto_type This patch converts the top-level crypto_rng to the "new" style. It was the last algorithm type added before we switched over to the new way of doing things exemplified by shash. All users will automatically switch over to the new interface. Note that this patch does not touch the low-level interface to rng implementations. Signed-off-by: Herbert Xu crypto/rng.c | 35 +++++++++++++++++++++++------------ include/crypto/rng.h | 32 ++++++++++---------------------- include/linux/crypto.h | 12 ------------ 3 files changed, 33 insertions(+), 46 deletions(-) commit f7c9bebe8bc79ddb8a50db441a53b59b61ae3ba8 Author: Herbert Xu Date: Mon Apr 20 13:39:02 2015 +0800 crypto: pcomp - Use crypto_alg_extsize helper This patch replaces crypto_pcomp_extsize function with crypto_alg_extsize. Signed-off-by: Herbert Xu crypto/pcompress.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) commit ac611680cb4f6fce26d97a79fd8aac3d42c5da91 Author: Herbert Xu Date: Mon Apr 20 13:39:01 2015 +0800 crypto: shash - Use crypto_alg_extsize helper This patch replaces crypto_shash_extsize function with crypto_alg_extsize. Signed-off-by: Herbert Xu crypto/shash.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) commit 38d21433112c25acdb8e93f60be629e7a1c27a26 Author: Herbert Xu Date: Mon Apr 20 13:39:00 2015 +0800 crypto: api - Add crypto_alg_extsize helper This patch adds a crypto_alg_extsize helper that can be used by algorithm types such as pcompress and shash. Signed-off-by: Herbert Xu crypto/algapi.c | 6 ++++++ crypto/internal.h | 2 ++ 2 files changed, 8 insertions(+) commit 2a57e4241ec9a11ce89f43099a0f6b83a28058fa Author: Herbert Xu Date: Mon Apr 20 11:29:15 2015 +0800 crypto: drbg - Do not seed RNG in drbg_kcapi_init Initialising the RNG in drbg_kcapi_init is a waste of precious entropy because all users will immediately seed the RNG after the allocation. In fact, all users should seed the RNG before using it. So there is no point in doing the seeding in drbg_kcapi_init. This patch removes the initial seeding and the user must seed the RNG explicitly (as they all currently do). This patch also changes drbg_kcapi_reset to allow reseeding. That is, if you call it after a successful initial seeding, then it will not reset the internal state of the DRBG before mixing the new input and entropy. If you still wish to reset the internal state, you can always free the DRBG and allocate a new one. Finally this patch removes locking from drbg_uninstantiate because it's now only called from the destruction path which must not be executed in parallel with normal operations. Signed-off-by: Herbert Xu Acked-by: Stephan Mueller crypto/drbg.c | 103 +++++++++++++++++++++++++++++++--------------------------- 1 file changed, 55 insertions(+), 48 deletions(-) commit e11a754813e28dbfab63a23ae8fd22e9198489e1 Author: Herbert Xu Date: Mon Apr 20 11:26:48 2015 +0800 crypto: drbg - Initialise mutex in drbg_healthcheck_sanity As we moved the mutex init out of drbg_instantiate and into cra_init we need to explicitly initialise the mutex in drbg_healthcheck_sanity. Signed-off-by: Herbert Xu Acked-by: Stephan Mueller crypto/drbg.c | 2 ++ 1 file changed, 2 insertions(+) commit fa3ae6253ccda65e6824a2a38c8a87c204c28d84 Author: Stephan Mueller Date: Sat Apr 18 19:37:00 2015 +0200 crypto: drbg - leave cipher handles operational As the DRBG does not operate on shadow copies of the DRBG instance any more, the cipher handles only need to be allocated once during initalization time and deallocated during uninstantiate time. Signed-off-by: Stephan Mueller Signed-off-by: Herbert Xu crypto/drbg.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) commit 76899a41f830d17affe6f9c58cc4b23ba26f5e00 Author: Stephan Mueller Date: Sat Apr 18 19:36:17 2015 +0200 crypto: drbg - replace spinlock with mutex The creation of a shadow copy is intended to only hold a short term lock. But the drawback is that parallel users have a very similar DRBG state which only differs by a high-resolution time stamp. The DRBG will now hold a long term lock. Therefore, the lock is changed to a mutex which implies that the DRBG can only be used in process context. The lock now guards the instantiation as well as the entire DRBG generation operation. Therefore, multiple callers are fully serialized when generating a random number. As the locking is changed to use a long-term lock to avoid such similar DRBG states, the entire creation and maintenance of a shadow copy can be removed. Signed-off-by: Stephan Mueller Signed-off-by: Herbert Xu crypto/drbg.c | 144 +++++++++----------------------------------------- include/crypto/drbg.h | 4 +- 2 files changed, 27 insertions(+), 121 deletions(-) commit 082eb10ba97449a370e58f746522a4b90bcaee78 Author: Stephan Mueller Date: Sat Apr 18 19:35:45 2015 +0200 crypto: drbg - fix drbg_generate return val check The drbg_generate returns 0 in success case. That means that drbg_generate_long will always only generate drbg_max_request_bytes at most. Longer requests will be truncated to drbg_max_request_bytes. Reported-by: Herbert Xu Signed-off-by: Stephan Mueller Signed-off-by: Herbert Xu crypto/drbg.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 04a34d4680e75e9be63204b3a7b51a6abe3ce35a Author: LEROY Christophe Date: Fri Apr 17 16:32:22 2015 +0200 crypto: talitos - Update DT bindings with SEC1 This patch updates the documentation by including SEC1 into SEC2/3 doc Signed-off-by: Christophe Leroy Signed-off-by: Herbert Xu Documentation/devicetree/bindings/crypto/fsl-sec2.txt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 0635b7db143195281c5a29d272bb836be58af1d4 Author: LEROY Christophe Date: Fri Apr 17 16:32:20 2015 +0200 crypto: talitos - Add fsl,sec1.0 compatible We add a specific compatible for SEC1, to handle the differences between SEC1 and SEC2+ Signed-off-by: Christophe Leroy Signed-off-by: Herbert Xu drivers/crypto/talitos.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 2d02905ebd22c0271a25e424ab209c8b7067be67 Author: LEROY Christophe Date: Fri Apr 17 16:32:18 2015 +0200 crypto: talitos - SEC1 bugs on 0 data hash SEC1 bugs on 0 data hash, so we submit an already padded block representing 0 data Signed-off-by: Christophe Leroy Signed-off-by: Herbert Xu drivers/crypto/talitos.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) commit 6f65f6ac5fb36a90ebf9a8d57cc4076b82d5009e Author: LEROY Christophe Date: Fri Apr 17 16:32:15 2015 +0200 crypto: talitos - implement scatter/gather copy for SEC1 SEC1 doesn't support scatter/gather, SEC1 doesn't handle link tables. Therefore, for SEC1 we have to do it by SW. For that, we reserve space at the end of the extended descriptor, in lieu of the space reserved for the link tables on SEC2, and we perform sg_copy() when preparing the descriptors We also adapt the max buffer size which is only 32k on SEC1 while it is 64k on SEC2+ Signed-off-by: Christophe Leroy Signed-off-by: Herbert Xu drivers/crypto/talitos.c | 138 ++++++++++++++++++++++++++++++++++------------- drivers/crypto/talitos.h | 3 +- 2 files changed, 103 insertions(+), 38 deletions(-) commit dd3c0987f5426d2df4a0c92de82dac65874bb9a4 Author: LEROY Christophe Date: Fri Apr 17 16:32:13 2015 +0200 crypto: talitos - adapt interrupts and reset functions to SEC1 This patch adapts the interrupts handling and reset function for SEC1. On SEC1, registers are almost similar to SEC2+, but bits are sometimes located at different places. So we need to define TALITOS1 and TALITOS2 versions of some fields, and manage according to whether it is SEC1 or SEC2. On SEC1, only one interrupt vector is dedicated to the SEC, so only interrupt_4ch is needed. On SEC1, interrupts are enabled by clearing related bits in IMR, while on SEC2, interrupts are enabled by seting the bits in IMR. SEC1 also performs parity verification in the DES Unit. We have to disable this feature because the test vectors provided in the kernel have parity errors. In reset functions, only SEC2 supports continuation after error. For SEC1, we have to reset in all cases. For errors handling, SEC2+ names have been kept, but displayed text have been amended to reflect exact meaning on SEC1. Signed-off-by: Christophe Leroy Signed-off-by: Herbert Xu drivers/crypto/talitos.c | 227 +++++++++++++++++++++++++++++++++++------------ drivers/crypto/talitos.h | 39 +++++--- 2 files changed, 199 insertions(+), 67 deletions(-) commit 5fa7fa147b1572ae724819631ef442e1c9570f9a Author: LEROY Christophe Date: Fri Apr 17 16:32:11 2015 +0200 crypto: talitos - base address for Execution Units SEC 1.0, 1.2 and 2.x+ have different EU base addresses, so we need to define pointers for each EU in the driver private data structure. The proper address is set by the probe function depending on the SEC type, in order to provide access to the proper address. Signed-off-by: Christophe Leroy Signed-off-by: Herbert Xu drivers/crypto/talitos.c | 83 ++++++++++++++++++++++++++++++++---------------- drivers/crypto/talitos.h | 72 +++++++++++++++++++++++++---------------- 2 files changed, 100 insertions(+), 55 deletions(-) commit 7d607c6a71f7a4905831fc2b1636e080533ab2db Author: LEROY Christophe Date: Fri Apr 17 16:32:09 2015 +0200 crypto: talitos - adaptation of talitos_submit() for SEC1 SEC1 descriptor is a bit different to SEC2+ descriptor. talitos_submit() will have to copy hdr field into hdr1 field and send the descriptor starting at hdr1 up to next_desc. For SEC2, it remains unchanged and next_desc is just ignored. Signed-off-by: Christophe Leroy Signed-off-by: Herbert Xu drivers/crypto/talitos.c | 23 +++++++++++++++++++---- drivers/crypto/talitos.h | 2 ++ 2 files changed, 21 insertions(+), 4 deletions(-) commit 922f9dc8d36651abea51c4f2ff9c08ba4db692ff Author: LEROY Christophe Date: Fri Apr 17 16:32:07 2015 +0200 crypto: talitos - fill in talitos descriptor iaw SEC1 or SEC2+ talitos descriptor is slightly different for SEC1 and SEC2+, so lets the helper function that fills the descriptor take into account the type of SEC. Signed-off-by: Christophe Leroy Signed-off-by: Herbert Xu drivers/crypto/talitos.c | 105 ++++++++++++++++++++++++++++++----------------- 1 file changed, 67 insertions(+), 38 deletions(-) commit 21590888490ce2a46ff4703b1503f562f4a59571 Author: LEROY Christophe Date: Fri Apr 17 16:32:05 2015 +0200 crypto: talitos - Add a feature to tag SEC1 We add a new feature in the features field, to mark compatible "fsl,sec1.0" We also define a helper function called has_ftr_sec1() to help functions quickly determine if they are running on SEC1 or SEC2+. When only SEC1 or SEC2 is compiled in, has_ftr_sec1() return trivial corresponding value. If both are compiled in, feature field is checked. Signed-off-by: Christophe Leroy Signed-off-by: Herbert Xu drivers/crypto/talitos.c | 3 +++ drivers/crypto/talitos.h | 17 +++++++++++++++++ 2 files changed, 20 insertions(+) commit 5b841a65dcae3ac76dc34e56c948c629de48c1a3 Author: LEROY Christophe Date: Fri Apr 17 16:32:03 2015 +0200 crypto: talitos - add sub-choice in talitos CONFIG for SEC1 This patch adds a CONFIG option to select SEC1, SEC2+ or both. Signed-off-by: Christophe Leroy Signed-off-by: Herbert Xu drivers/crypto/Kconfig | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit 90490752eb03ddc1015233034ec26816f0ea0de3 Author: LEROY Christophe Date: Fri Apr 17 16:32:01 2015 +0200 crypto: talitos - enhanced talitos_desc struct for SEC1 This patch enhances the talitos_desc struct with fields for SEC1. SEC1 has only one header field, and has a 'next_desc' field in addition. This mixed descriptor will continue to fit SEC2, and for SEC1 we will recopy hdr value into hdr1 value in talitos_submit() Signed-off-by: Christophe Leroy Signed-off-by: Herbert Xu drivers/crypto/talitos.h | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) commit 538caf83374c0b24e2dfe2ca381354f207ca7cde Author: LEROY Christophe Date: Fri Apr 17 16:31:59 2015 +0200 crypto: talitos - helper function for ptr len This patch adds a helper function for reads and writes of the len param of the talitos descriptor. This will help implement SEC1 later. Signed-off-by: Christophe Leroy Signed-off-by: Herbert Xu drivers/crypto/talitos.c | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) commit a2b35aa86eeaca6c1d416e3c43d44222c34727fb Author: LEROY Christophe Date: Fri Apr 17 16:31:57 2015 +0200 crypto: talitos - remove param 'extent' in map_single_talitos_ptr() map_single_talitos_ptr() is always called with extent == 0, so lets remove this unused parameter Signed-off-by: Christophe Leroy Signed-off-by: Herbert Xu drivers/crypto/talitos.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) commit 185eb79f6a6536c2b61d2638e138ca439bd327c3 Author: LEROY Christophe Date: Fri Apr 17 16:31:55 2015 +0200 crypto: talitos - Add a helper function to clear j_extent field j_extent field is specific to SEC2 so we add a helper function to clear it so that SEC1 can redefine that function as nop Signed-off-by: Christophe Leroy Signed-off-by: Herbert Xu drivers/crypto/talitos.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) commit edc6bd698a4d335db0962aac8ab07f2840786a02 Author: LEROY Christophe Date: Fri Apr 17 16:31:53 2015 +0200 crypto: talitos - talitos_ptr renamed ptr for more lisibility Linux CodyingStyle recommends to use short variables for local variables. ptr is just good enough for those 3 lines functions. It helps keep single lines shorter than 80 characters. Signed-off-by: Christophe Leroy Signed-off-by: Herbert Xu drivers/crypto/talitos.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit 032d197eaaea13d220d141cdbca69e519b7af145 Author: LEROY Christophe Date: Fri Apr 17 16:31:51 2015 +0200 crypto: talitos - Refactor the sg in/out chain allocation This patch refactors the handling of the input and output data that is quite similar in several functions Signed-off-by: Christophe Leroy Signed-off-by: Herbert Xu drivers/crypto/talitos.c | 159 ++++++++++++++++++++++++----------------------- 1 file changed, 81 insertions(+), 78 deletions(-) commit 2529bc371c4154edcf61d76b9691e5da961e23c5 Author: LEROY Christophe Date: Fri Apr 17 16:31:49 2015 +0200 crypto: talitos - Use zero entry to init descriptors ptrs to zero Do use zero_entry value to init the descriptors ptrs to zero instead of writing 0 in each field Signed-off-by: Christophe Leroy Signed-off-by: Herbert Xu drivers/crypto/talitos.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit 8e0498d99f182dd06c012dfc62768e8ca0450adf Author: Stephan Mueller Date: Fri Apr 17 14:54:08 2015 +0200 cryoto: drbg - clear all temporary memory The buffer uses for temporary data must be cleared entirely. In AES192 the used buffer is drbg_statelen(drbg) + drbg_blocklen(drbg) as documented in the comment above drbg_ctr_df. This patch ensures that the temp buffer is completely wiped. Signed-off-by: Stephan Mueller Signed-off-by: Herbert Xu crypto/drbg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1a92b2ba339221a4afee43adf125fcc9a41353f7 Author: Colin Ian King Date: Tue Apr 14 11:51:29 2015 -0500 crypto: mv_cesa - ensure backlog is initialised backlog is not initialised so in the case where cpg->eng_st != ENGINE_IDLE it is never initialised and hence which could lead to an illegal memory dereference in the statement: backlog->complete(backlog, -EINPROGRESS); Discovered with cppcheck static analsys: [drivers/crypto/mv_cesa.c:616]: (error) Uninitialized variable: backlog Signed-off-by: Colin Ian King Signed-off-by: Herbert Xu drivers/crypto/mv_cesa.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e4e8ccccf314eacc935e699073575de7816338e4 Author: Fabio Estevam Date: Mon Apr 20 16:19:01 2015 -0300 regulator: max77686: Fix typo in email address Fix typo in the samsung email address. Signed-off-by: Fabio Estevam Signed-off-by: Mark Brown drivers/regulator/max77686.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4a1ae8be4563d29ddd36f46759191f4e867ed954 Author: Bert Vermeulen Date: Mon Apr 20 15:53:25 2015 +0200 spi: rb4xx: Fix set_cs logic. As it turns out, the set_cs() enable parameter refers to the logic level on the CS pin, not the state of chip selection. This broke functionality of the LEDs behind the CPLD, or at least delayed the commands until another one came in to toggle CS. Signed-off-by: Bert Vermeulen Signed-off-by: Mark Brown drivers/spi/spi-rb4xx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2ebef630fd283642a11c48c0e0f054c3c5c59e86 Author: Tvrtko Ursulin Date: Mon Apr 20 16:22:48 2015 +0100 drm/i915/skl: Support Y tiling in MMIO flips Add Y tiling support to skl_do_mmio_flip. Signed-off-by: Tvrtko Ursulin Cc: Damien Lespiau Cc: Sonika Jindal Cc: Daniel Vetter Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) commit a3c6d686443e912e33cebdf9cd80f94df3ded7b0 Author: Josef Holzmayr Date: Thu Apr 16 14:16:29 2015 +0200 DRM: Don't re-poll connector for disconnect DRM probe should not repoll a connector if it is already connected and the DRM_CONNECTOR_POLL_DISCONNECT flag is not set. Signed-off-by: Josef Holzmayr Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_probe_helper.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 396aa4451e865d1e36d6d4e0686a9303c038b606 Author: Todd Previte Date: Sat Apr 18 00:04:18 2015 -0700 drm: Fix for DP CTS test 4.2.2.5 - I2C DEFER handling For test 4.2.2.5 to pass per the Link CTS Core 1.2 rev1.1 spec, the source device must attempt at least 7 times to read the EDID when it receives an I2C defer. The normal DRM code makes only 7 retries, regardless of whether or not the response is a native defer or an I2C defer. Test 4.2.2.5 fails since there are native defers interspersed with the I2C defers which results in less than 7 EDID read attempts. The solution is to add the numer of defers to the retry counter when an I2C DEFER is returned such that another read attempt will be made. This situation should normally only occur in compliance testing, however, as a worse case real-world scenario, it would result in 13 attempts ( 6 native defers, 7 I2C defers) for a single transaction to complete. The net result is a slightly slower response to an EDID read that shouldn't significantly impact overall performance. V2: - Added a check on the number of I2C Defers to limit the number of times that the retries variable will be decremented. This is to address review feedback regarding possible infinite loops from misbehaving sink devices. V3: - Fixed the limit value to 7 instead of 8 to get the correct retry count. - Combined the increment of the defer count into the if-statement V4: - Removed i915 tag from subject as the patch is not i915-specific V5: - Updated the for-loop to add the number of i2c defers to the retry counter such that the correct number of retry attempts will be made Signed-off-by: Todd Previte Cc: dri-devel@lists.freedesktop.org Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_dp_helper.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit 7df113e47366e6bbc0dd02c9fa776ae52f4ef5c1 Author: Tvrtko Ursulin Date: Fri Apr 17 12:49:07 2015 +0100 drm/i915: Fixup kerneldoc for struct intel_context commit ae6c4806927b8b0781ecc187aa16b10c820fc430 Author: Daniel Vetter Date: Wed Aug 6 15:04:53 2014 +0200 drm/i915: Only track real ppgtt for a context Changed the code but didn't update kerneldoc. Signed-off-by: Tvrtko Ursulin Cc: "Thierry, Michel" Cc: Daniel Vetter Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 070c1d059f43ce719f4e8a6528c7211197bad3b4 Author: Daniel Vetter Date: Tue Apr 14 17:35:17 2015 +0200 drm/i915: Drop redundant GGTT rebinding Since commit bf3d149b25f67f241735b91a56b7f070bc0a5407 Author: Daniel Vetter Date: Fri Feb 14 14:01:12 2014 +0100 drm/i915: split PIN_GLOBAL out from PIN_MAPPABLE i915_gem_obj_ggtt_pin always binds into the ggtt, but I've forgotten to remove the now redundant additional bind call later on. Fix this up. Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_context.c | 11 ----------- 1 file changed, 11 deletions(-) commit 0229da324d23de67fa4af585b4ef134f721adc84 Author: Daniel Vetter Date: Tue Apr 14 19:01:54 2015 +0200 drm/i915: Dont clear PIN_GLOBAL in the execbuf pinning fallback PIN_GLOBAL is set only when userspace asked for it, and that is only the case for the gen6 PIPE_CONTROL workaround. We're not allowed to just clear this. The important part of the fallback is to drop the restriction to the mappable range. This issue has been introduced in commit edf4427b8055dc93eb5222d8174b07a75ba24fb5 Author: Chris Wilson Date: Wed Jan 14 11:20:56 2015 +0000 drm/i915: Fallback to using CPU relocations for large batch buffers v2: Chris pointed out that we also miss to set PIN_GLOBAL when the buffer is already bound. Fix this up too. Cc: Chris Wilson Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_execbuffer.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit f329f5f6eb4fad8f2e9c62fe37ec01ae5ce0f212 Author: Daniel Vetter Date: Tue Apr 14 17:35:15 2015 +0200 drm/i915: Move PTE_READ_ONLY to ->pte_encode vfunc It's only used as a flag there, so unconfuse things a bit. Also separate the bind_vma flag space from the pte_encode flag space in the code. Reviewed-by: Mika Kuoppala Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 15 +++++++++------ drivers/gpu/drm/i915/i915_gem_gtt.h | 3 ++- 2 files changed, 11 insertions(+), 7 deletions(-) commit 5c5f645773b6d147bf68c350674dc3ef4f8de83d Author: Daniel Vetter Date: Tue Apr 14 17:35:14 2015 +0200 drm/i915: Unify aliasing ppgtt handling With the dynamic pagetable alloc code aliasing ppgtt special-cases where again mixed in all over the place with the low-level init code. Extract the va preallocation and clearing again into the common code where aliasing ppgtt gets set up. Note that with this we don't set the size of the aliasing ppgtt to the size of the parent ggtt address space. Which isn't required at all since except for the ppgtt setup/cleanup code no one ever looks at this. Reviewed-by: Mika Kuoppala Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 134 +++++++----------------------------- 1 file changed, 24 insertions(+), 110 deletions(-) commit 061dd493103f14f768475fa666f39377f41814bb Author: Daniel Vetter Date: Tue Apr 14 17:35:13 2015 +0200 drm/i915: Clean up aliasing ppgtt correctly on error paths While at it inline the free functions - they don't actually free the ppgtt, just clean up the allocations done for it. Reviewed-by: Mika Kuoppala Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 30 ++++++++++-------------------- 1 file changed, 10 insertions(+), 20 deletions(-) commit 777dc5bb26a5aff916af1b6ee84ed7dc8cac1245 Author: Daniel Vetter Date: Tue Apr 14 17:35:12 2015 +0200 drm/i915: Move vma vfuns to adddress_space They change with the address space and not with each vma, so move them into the right pile of vfuncs. Save 2 pointers per vma and clarifies the code. Reviewed-by: Mika Kuoppala Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem.c | 2 +- drivers/gpu/drm/i915/i915_gem_gtt.c | 28 ++++++++++++---------------- drivers/gpu/drm/i915/i915_gem_gtt.h | 15 +++++++-------- 3 files changed, 20 insertions(+), 25 deletions(-) commit c7e16f22e83775de96bf7585682d2e7be7f1c1dc Author: Daniel Vetter Date: Tue Apr 14 17:35:11 2015 +0200 drm/i915: Move gen8 clear_range vfunc setup into common code Reviewed-by: Mika Kuoppala Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 8a0c39b1621adc0f2f1c25bd44645afeee5c1d99 Author: Tvrtko Ursulin Date: Mon Apr 13 11:50:09 2015 +0100 drm/i915: Simplify and fix object to display tracking Purpose of this tracking is to know when to flush the cache between the CPU and the non-coherent display engine. Prior to: commit 121920faf2ccce9aa66a7e2588415c9647b66104 Author: Tvrtko Ursulin Date: Mon Mar 23 11:10:37 2015 +0000 drm/i915/skl: Query display address through a wrapper This worked by a mix of direct flag manipulation and checking for existence of a pinned GGTT VMA. With the introduction of rotated display mappings this approach is no longer correct. New simpler approach is to just keep this count over calls which pin and unpin objects to and from display, at the slight cost of extra space in every bo. (Inspired and extracted code from a larger rework by Chris Wilson.) v2: Remove the limit since it is not well defined. (Chris Wilson, Ville Syrjälä) v3: Commit message corrections. (Chris Wilson) Signed-off-by: Tvrtko Ursulin Reviewed-by: Chris Wilson Cc: Chris Wilson Reviewed-by: Joonas Lahtinen Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 3 ++- drivers/gpu/drm/i915/i915_gem.c | 30 ++++++------------------------ 2 files changed, 8 insertions(+), 25 deletions(-) commit a839e463e84a02c0ea65ff61504b56a83e193078 Author: Jonathan Corbet Date: Mon Apr 13 18:27:35 2015 +0200 mac80211: Fix mac80211.h docbook comments A couple of enums in mac80211.h became structures recently, but the comments didn't follow suit, leading to errors like: Error(.//include/net/mac80211.h:367): Cannot parse enum! Documentation/DocBook/Makefile:93: recipe for target 'Documentation/DocBook/80211.xml' failed make[1]: *** [Documentation/DocBook/80211.xml] Error 1 Makefile:1361: recipe for target 'mandocs' failed make: *** [mandocs] Error 2 Fix the comments comments accordingly. Added a couple of other small comment fixes while I was there to silence other recently-added docbook warnings. Reported-by: Jim Davis Signed-off-by: Jonathan Corbet Signed-off-by: Johannes Berg include/net/mac80211.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 35c347ac53040daba955fa06fcd5f909bee85017 Author: Johannes Berg Date: Thu Mar 5 16:10:08 2015 +0100 mac80211: lock rate control Both minstrel (reported by Sven Eckelmann) and the iwlwifi rate control aren't properly taking concurrency into account. It's likely that the same is true for other rate control algorithms. In the case of minstrel this manifests itself in crashes when an update and other data access are run concurrently, for example when the stations change bandwidth or similar. In iwlwifi, this can cause firmware crashes. Since fixing all rate control algorithms will be very difficult, just provide locking for invocations. This protects the internal data structures the algorithms maintain. I've manipulated hostapd to test this, by having it change its advertised bandwidth roughly ever 150ms. At the same time, I'm running a flood ping between the client and the AP, which causes this race of update vs. get_rate/status to easily happen on the client. With this change, the system survives this test. Reported-by: Sven Eckelmann Signed-off-by: Johannes Berg net/mac80211/rate.c | 8 +++++++- net/mac80211/rate.h | 14 +++++++++++--- net/mac80211/sta_info.c | 2 +- net/mac80211/sta_info.h | 1 + 4 files changed, 20 insertions(+), 5 deletions(-) commit 48bf6beddf455b0cb605915081f3428960a6224e Author: Bob Copeland Date: Mon Apr 13 17:26:28 2015 -0400 mac80211: introduce plink lock for plink fields The mesh plink code uses sta->lock to serialize access to the plink state fields between the peer link state machine and the peer link timer. Some paths (e.g. those involving mps_qos_null_tx()) unfortunately hold this spinlock across frame tx, which is soon to be disallowed. Add a new spinlock just for plink access. Signed-off-by: Bob Copeland Signed-off-by: Johannes Berg net/mac80211/mesh_plink.c | 37 ++++++++++++++++++++----------------- net/mac80211/sta_info.c | 1 + net/mac80211/sta_info.h | 5 ++++- 3 files changed, 25 insertions(+), 18 deletions(-) commit 772154d0ddde6b46a3866c73a16cfbfaf3053be4 Author: Kuppuswamy Sathyanarayanan Date: Sun Apr 19 02:10:04 2015 -0700 iio: ltr501: Add ACPI enumeration support Added ACPI enumeration support for LTR501 chip. Signed-off-by: Kuppuswamy Sathyanarayanan Signed-off-by: Jonathan Cameron drivers/iio/light/ltr501.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit eea53b4a2562e439bfc1a6d13b231f902d9b9e5f Author: Kuppuswamy Sathyanarayanan Date: Sun Apr 19 02:10:03 2015 -0700 iio: ltr501: Add interrupt rate control support Added rate control support for ALS and proximity threshold interrupts.Also, Added support to modify and read ALS & proximity sensor sampling frequency. LTR-501 supports interrupt rate control using persistence register settings. Writing to persistence register would generate interrupt only if there are consecutive data values outside the threshold range. Since we don't have any existing ABI's to directly control the persistence register count, we have implemented the rate control using IIO_EV_INFO_PERIOD. _period event attribute represents the amount of time in seconds an event should be true for the device to generate the interrupt. So using _period value and device frequency, persistence count is calculated in driver using following logic. count = period / measurement_rate If the given period is not a multiple of measurement rate then we round up the value to next multiple. This patch also handles change to persistence count whenever there is change in frequency. Signed-off-by: Kuppuswamy Sathyanarayanan Signed-off-by: Jonathan Cameron drivers/iio/light/ltr501.c | 413 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 406 insertions(+), 7 deletions(-) commit 7ac702b3144b635a8f7770e628d88ea1cbeda7ee Author: Kuppuswamy Sathyanarayanan Date: Sun Apr 19 02:10:02 2015 -0700 iio: ltr501: Add interrupt support This patch adds interrupt support for Liteon 501 chip. Interrupt will be generated whenever ALS or proximity data exceeds values given in upper and lower threshold register settings. Signed-off-by: Kuppuswamy Sathyanarayanan Signed-off-by: Jonathan Cameron drivers/iio/light/ltr501.c | 319 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 313 insertions(+), 6 deletions(-) commit 844b47027da0754e089c224c8c7d371f812320fd Author: Kuppuswamy Sathyanarayanan Date: Sun Apr 19 02:10:01 2015 -0700 iio: ltr501: Add integration time support Added support to modify and read ALS integration time. Signed-off-by: Kuppuswamy Sathyanarayanan Signed-off-by: Jonathan Cameron drivers/iio/light/ltr501.c | 90 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 89 insertions(+), 1 deletion(-) commit 43343f8d804a84db9b671c95fa253fc1793bf34a Author: Krzysztof Kozlowski Date: Sun Apr 19 15:34:19 2015 +0900 regulator: Fix the function name in documentation The function name in kernel-doc for regulator_map_voltage_linear_range() was wrong. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Mark Brown drivers/regulator/helpers.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 49064b5a618df70dbe1ba58a122fd218c58d381d Author: Peter Meerwald Date: Wed Apr 15 22:39:38 2015 +0200 iio:tmp006: Prefix #defines with TMP006_ just cleanup, no functional change Signed-off-by: Peter Meerwald Signed-off-by: Jonathan Cameron drivers/iio/temperature/tmp006.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 6fa273c1aaa0ab0c22ac4b52879e6bfeea516369 Author: Peter Meerwald Date: Wed Apr 15 22:39:37 2015 +0200 iio:tsl2563: Use tsl2563_ prefix for driver's functions just cleanup, no functional change Signed-off-by: Peter Meerwald Signed-off-by: Jonathan Cameron drivers/iio/light/tsl2563.c | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) commit 6b57573bd0cd92c54a44ade46c6362b732d55a6c Author: Peter Meerwald Date: Wed Apr 15 22:39:36 2015 +0200 iio:tsl4531: Fix leftover TCS3472_ prefix in tsl4531 driver just cleanup, no functional change Signed-off-by: Peter Meerwald Signed-off-by: Jonathan Cameron drivers/iio/light/tsl4531.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 45fd5f8e10d3b5bdff577b82db4b9dd78d4b60a3 Author: Vlad Dogaru Date: Sun Apr 12 20:09:21 2015 +0300 iio: sx9500: add GPIO reset pin If a GPIO reset pin is listed in ACPI or Device Tree, use it to reset the device on initialization. Signed-off-by: Vlad Dogaru Signed-off-by: Jonathan Cameron drivers/iio/proximity/sx9500.c | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) commit 821ace2929612aa1ecf49feba123e5c7130d1970 Author: Vlad Dogaru Date: Sun Apr 12 20:09:20 2015 +0300 iio: sx9500: refactor GPIO interrupt code Signed-off-by: Vlad Dogaru Signed-off-by: Jonathan Cameron drivers/iio/proximity/sx9500.c | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) commit 59bd0427c01cf0172055a1b99457bee6fd75d865 Author: Vlad Dogaru Date: Sun Apr 12 20:09:19 2015 +0300 iio: sx9500: optimize power usage In the interest of lowering power usage, we only activate the proximity channels and interrupts that we are currently using. For raw reads, we activate the corresponding channel and the data ready interrupt and wait for the interrupt to trigger. If no interrupt is available, we wait for the documented scan period, as specified in the datasheet. The following types of usage patterns may overlap: * raw proximity reads (need a single data ready interrupt) * trigger usage (needs data ready interrupts as long as active) * proximity events (need near/far interrupts) * triggered buffer reads (don't need any interrupts, but are usually coupled with our own trigger. To mitigate all possible patterns, we implement usage counting for all the resources used: data ready interrupts, near/far interrupts and individual channels. The device enters sleep mode as documented in the data sheet when its buffer, trigger and events are disabled, and no raw reads are currently running. Because of this new usage pattern, it is important that we give the device a chance to perform an initial compensation for all its channels at probe time. Signed-off-by: Vlad Dogaru Signed-off-by: Jonathan Cameron drivers/iio/proximity/sx9500.c | 360 ++++++++++++++++++++++++++++++++++------- 1 file changed, 306 insertions(+), 54 deletions(-) commit 6069f47f08ea670e28ae709c645e308e98636d6c Author: Vianney le Clément de Saint-Marcq Date: Fri Apr 17 16:05:35 2015 +0200 iio: mlx90614: Fix duplicate const warning Fix a typo triggering a duplicate const warning on some compilers. Signed-off-by: Vianney le Clément de Saint-Marcq Cc: Arnout Vandecappelle (Essensium/Mind) Signed-off-by: Jonathan Cameron drivers/iio/temperature/mlx90614.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2f2c96338afc9f90aa5a0fca04ece1a5c389ee31 Author: Kuppuswamy Sathyanarayanan Date: Fri Apr 17 22:15:10 2015 -0700 iio: ltr501: Add regmap support. Added regmap support. It will be useful to handle bitwise updates to als & ps control registers. Signed-off-by: Kuppuswamy Sathyanarayanan Signed-off-by: Jonathan Cameron drivers/iio/light/ltr501.c | 129 ++++++++++++++++++++++++++++++--------------- 1 file changed, 86 insertions(+), 43 deletions(-) commit a40c0ac108f4802a47c27c734569c1c371bded5f Author: Vlad Dogaru Date: Fri Apr 3 15:47:34 2015 +0300 iio: sx9500: fix formatting Signed-off-by: Vlad Dogaru Signed-off-by: Jonathan Cameron drivers/iio/proximity/sx9500.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 63de9f92cc35212c4fbf0caf6cb9d8cabe488214 Author: Vlad Dogaru Date: Fri Apr 3 15:47:31 2015 +0300 iio: sx9500: rename GPIO interrupt pin Signed-off-by: Vlad Dogaru Signed-off-by: Jonathan Cameron drivers/iio/proximity/sx9500.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 05aec357871f892eea91d8b808f96a6091dd5310 Author: Bert Vermeulen Date: Wed Apr 15 17:43:52 2015 +0200 spi: Add SPI driver for Mikrotik RB4xx series boards This driver mediates access between the connected CPLD and other devices on the bus. The m25p80-compatible boot flash and (some models) MMC use regular SPI, bitbanged as required by the SoC. However the SPI-connected CPLD has a two-wire mode, in which two bits are transferred per SPI clock cycle. The second bit is transmitted with the SoC's CS2 pin. Signed-off-by: Bert Vermeulen Signed-off-by: Mark Brown drivers/spi/Kconfig | 6 ++ drivers/spi/Makefile | 1 + drivers/spi/spi-rb4xx.c | 210 ++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 217 insertions(+) commit 0dd76f36efa43fa75a568b0d24736a9e51d51170 Author: Takashi Iwai Date: Sat Apr 18 09:59:38 2015 +0200 ALSA: hda - Replace open codes with snd_hdac_stream_set_params() Signed-off-by: Takashi Iwai sound/pci/hda/hda_controller.c | 23 ++++------------------- 1 file changed, 4 insertions(+), 19 deletions(-) commit 86f6501bf4c13e805e48497aaffab86ad7a98c44 Author: Jeeja KP Date: Fri Apr 17 17:58:58 2015 +0530 ALSA: hda - add generic functions to set hdac stream params This will be used by hda controller driver to setup stream params in prepare. This function will setup the bdl and periods. Signed-off-by: Jeeja KP Signed-off-by: Subhransu S. Prusty Signed-off-by: Vinod Koul Signed-off-by: Takashi Iwai include/sound/hdaudio.h | 2 ++ sound/hda/hdac_stream.c | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) commit c1cc18b1ca01530a40ace0c9ec48124ff1340125 Author: Ramesh Babu Date: Fri Apr 17 17:58:57 2015 +0530 ALSA: hda - add ASoC device type for hda core Add HDA_DEV_ASOC device/driver type to support ASoC HDA drivers. Signed-off-by: Ramesh Babu Signed-off-by: Vinod Koul Signed-off-by: Takashi Iwai include/sound/hdaudio.h | 1 + 1 file changed, 1 insertion(+) commit 6d23c8f5440e33cb854e394d38b8c19315f21428 Author: Takashi Iwai Date: Fri Apr 17 13:34:30 2015 +0200 ALSA: hda - Move prepared flag into struct hdac_stream This flag seems used commonly, so deserves to be located there. Signed-off-by: Takashi Iwai include/sound/hdaudio.h | 1 + sound/pci/hda/hda_controller.c | 8 ++++---- sound/pci/hda/hda_controller.h | 1 - 3 files changed, 5 insertions(+), 5 deletions(-) commit de0c789b10ecba067262403f24915a50bcb2e435 Author: Yanbo Li Date: Wed Apr 15 15:28:08 2015 +0300 ath10k: enable the BT-coex feature The new 10.2.4 FW support the BT-coex feature with external BT module, The external BT modules can communicate with it via the GPIO. This patch check the BT-coex capability of the FW and enable it by default. Signed-off-by: Yanbo Li Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/wmi.c | 2 ++ drivers/net/wireless/ath/ath10k/wmi.h | 6 ++++++ 2 files changed, 8 insertions(+) commit 52c22a63f37f29790410b79e9785135a79deaba8 Author: Yanbo Li Date: Wed Apr 15 15:28:07 2015 +0300 ath10k: add the WMI Air Time Fairness service define Add the FW ATF (Air Time Fairness) service define to keep consistent with 10.2 FW capability. Signed-off-by: Yanbo Li Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/wmi.h | 5 +++++ 1 file changed, 5 insertions(+) commit 7df37f7585346c8b0543af3b8033a715eb699d0d Author: Peter Oh Date: Mon Apr 13 11:01:20 2015 -0700 ath10k: use MAC clock rate same as FW uses for survey accuracy WLAN survey data provides several informative values on each channels such as noise, active time, transmit time, and etc. Regarding the channel activity time data, it is reported from firmware in different form which is number of cycles instead of time itself. Hence host driver converts it to time unit by dividing it by clock rate that is used at baseband MAC. Using difference clock rate from that actual HW is using will result in inaccurate survey data. For instance, channel active time can be reported with bigger than 150ms even though we set Dwell time to 150ms. Therefore set the clock rate to 88000 (88 MHz) which is ath10k baseband MAC is using. Signed-off-by: Peter Oh Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/wmi.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 0cd9bc147f0b8d805972cbb4b7b5e5529f9624e0 Author: Janusz Dziedzic Date: Fri Apr 10 13:23:23 2015 +0000 ath10k: enable ibss-rsn With latest additions to the driver it seems viable to enable support for IBSS-RSN. It seems to work on QCA988X and 999.999.0.636 but is a bit slow to exchange RSN keys for some reason. This may be a firmware quirk or ath10k is missing something. Nevertheless it makes sense to finally enable IBSS-RSN in ath10k even if somewhat handicapped. QCA6174 firmware doesn't seem to be able to Tx EAPOL frames at all now (they get stuck in hw queues for some reason) so it never gets to set the keys in driver. It's fairly safe to assume that once this is fixed IBSS-RSN will work with QCA6174 firmware without any additional changes. Hence no special handling for advertising IEEE80211_HW_SUPPORTS_PER_STA_GTK and WIPHY_FLAG_IBSS_RSN is done now. Signed-off-by: Janusz Dziedzic Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 2 ++ 1 file changed, 2 insertions(+) commit 8461baf77122637bbe56d647d19aa7dabfe6b352 Author: Michal Kazior Date: Fri Apr 10 13:23:22 2015 +0000 ath10k: set def key idx for ibss Some time ago there was a weird issue with AP using wrong multicast keys and generating corrupted traffic on 10.1 firmware. Apparently a very similar problem applies for IBSS-RSN on 999.999.0.636. ath10k doesn't have IBSS-RSN enabled yet. This patch is a prerequisite to support it. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit ce90b27128c283df8f14e4604f711f3249d95918 Author: Michal Kazior Date: Fri Apr 10 13:23:21 2015 +0000 ath10k: fix multiple key static wep with ibss Apparently firmware requires both pairwise and groupwise keys to be installed per-peer for static WEP in IBSS. This wasn't necessary for AP mode (and installing both doesn't seem to break AP mode thus there's no special handling). Also there seems to be some kind of issue with mapping tx/rx keys in firmware properly which resulted in wrong keys being used and broken communication between devices. It can be argued the vdev param part is more of a workaround than a real fix. However I couldn't figure out how to fix this differently. It works and isn't super ugly. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) commit 73dc5a1d9db4f6cfb299019a083eefb5b85a3c65 Author: Michal Kazior Date: Fri Apr 10 13:23:20 2015 +0000 ath10k: don't use reassoc flag Firmware actually re-creates peer entry when reassoc flag is set. This is undesired and could cause trouble with IBSS crypto-wise. This is also important for upcomming bitrate mask improvement. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 1 - 1 file changed, 1 deletion(-) commit 29a100065ef58e22aa2486676cf1b448a289b063 Author: Michal Kazior Date: Fri Apr 10 13:05:58 2015 +0000 ath10k: change static wep key handling for client mode mac80211 sets static WEP keys as groupwise while firmware requires them to be installed twice as both pairwise and groupwise. Until now these keys were installed once as pairwise only and, due to that special handling, needed additional tricks to support 802.1x as well. Without this patch in some cases (when AP and ath10k client use different default tx keys) multicast communication was broken. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 89 +++++++++-------------------------- 1 file changed, 23 insertions(+), 66 deletions(-) commit 36d8230b7d4fcd6f1a0c98b579d229bc919fa1fb Author: Michal Kazior Date: Fri Apr 10 13:02:28 2015 +0000 ath10k: add extra check for frame tracing Frames are logged via tracing in two slices: header and payload, separately. This is done for performance reasons when one wants to, e.g. analyse metadata only of frames only. If for some reason device delivered a frame buffer which was sized below what 802.11 header implied tracing logic would blow doing an invalid memory accesses. I've hit this problem when running IBSS on QCA988X with 999.999.0.636 and tracing at the same time. Fixes: 5ce8e7fdcc7a ("ath10k: handle ieee80211 header and payload tracing separately") Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/trace.h | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) commit d9585a92c79bb479040ab5ceff61d3f2b6864357 Author: Michal Kazior Date: Fri Apr 10 13:01:27 2015 +0000 ath10k: fix error handling in pci_probe If chip_id wasn't recognized clean up code wasn't executed properly. It would skip freeing memory causing a leak and irqs causing possibly MSI warning splats later or even kernel crashes. Fixes: 1a7fecb766c8 ("ath10k: reset chip before reading chip_id in probe") Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/pci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0a50575b64ee365bba4960756c394a28ed0710a4 Author: Takashi Iwai Date: Thu Apr 16 23:25:02 2015 +0200 ALSA: hda - Replace hda_bus_ops with static binding Originally hda_bus takes its own ops (hda_bus_ops) to allow different controller drivers giving individual implementations of PCM attachment, etc. But this never happened and we finally merged both codec and controller helper codes. Thus there is no merit to keep the indirect accesses to functions via hda_bus_ops. This patch replaces these calls with the direct local function calls for simplification. Signed-off-by: Takashi Iwai sound/pci/hda/hda_codec.c | 12 ++++------- sound/pci/hda/hda_codec.h | 49 +++++++++--------------------------------- sound/pci/hda/hda_controller.c | 42 +++++++++++++++--------------------- 3 files changed, 31 insertions(+), 72 deletions(-) commit 097f8261ddda4b1896dd335dec95dedeecfeaa1b Author: Wei Yongjun Date: Thu Apr 16 21:11:08 2015 +0800 drm/i915/audio: remove duplicated include from intel_audio.c Remove duplicated include. Signed-off-by: Wei Yongjun Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_audio.c | 1 - 1 file changed, 1 deletion(-) commit f4f71c7dfc5c989f53a1861f3ac42e24018fad4c Author: Deepak S Date: Sat Mar 28 15:23:35 2015 +0530 drm/i915: Re-adjusting rc6 promotional timer for chv After feedback from the hardware team we are changing the RC6 promotional timer to increase the power saving without changing performance. Signed-off-by: Deepak S Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_pm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 747552b947e1013276851b6a19a9867a94ff1c4f Author: Todd Previte Date: Wed Apr 15 08:38:47 2015 -0700 drm: Fix the 'native defer' message in drm_dp_i2c_do_msg() The debug message is missing a newline at the end and it makes the logs hard to read when a device defers a lot. Simple 2-character fix adds the newline at the end. Signed-off-by: Todd Previte Cc: dri-devel@lists.freedesktop.org Reviewed-by: Paulo Zanoni Reviewed-by: Alex Deucher Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_dp_helper.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 74ebf294a1dd816bdc248ac733009a8915d59eb5 Author: Todd Previte Date: Wed Apr 15 08:38:41 2015 -0700 drm/i915: Add a delay in Displayport AUX transactions for compliance testing The Displayport Link Layer Compliance Testing Specification 1.2 rev 1.1 specifies that repeated AUX transactions after a failure (no response / invalid response) must have a minimum delay of 400us before the resend can occur. Tests 4.2.1.1 and 4.2.1.2 are two tests that require this specifically. Also, the check for DP_AUX_CH_CTL_TIME_OUT_ERROR has been moved out into a separate case. This case just continues with the next iteration of the loop as the HW has already waited the required amount of time. V2: - Changed udelay() to usleep_range() V3: - Removed extraneous check for timeout - Updated comment to reflect this change V4: - Reformatted a comment V5: - Added separate check for HW timeout on AUX transactions. A message is logged upon detection of this case. V6: - Add continue statement to HW timeout detect case - Remove the log message indicating a timeout has been detected (review feedback) V7: - Updated the commit message to remove verbage about the HW timeout case that is no longer valid. Signed-off-by: Todd Previte Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_dp.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) commit c5d5ab7a05bc311dd0e57bdfd925ae4720f77a58 Author: Todd Previte Date: Wed Apr 15 08:38:38 2015 -0700 drm/i915: Add automated testing support for Displayport compliance testing Add the skeleton framework for supporting automation for Displayport compliance testing. This patch adds the necessary framework for the source device to appropriately respond to test automation requests from a sink device. V2: - Addressed previous mailing list feedback - Fixed compilation issue (struct members declared in a later patch) - Updated debug messages to be more accurate - Added status checks for the DPCD read/write calls - Removed excess comments and debug messages - Fixed debug message compilation warnings - Fixed compilation issue with missing variables - Updated link training autotest to ACK V3: - Fixed the checks on the DPCD return code to be <= 0 rather than != 0 - Removed extraneous assignment of a NAK return code in the DPCD read failure case - Changed the return in the DPCD read failure case to a goto to the exit point where the status code is written to the sink - Removed FAUX test case since it's deprecated now - Removed the compliance flag assignment in handle_test_request V4: - Moved declaration of type_type here - Removed declaration of test_data (moved to a later patch) - Added reset to 0 for compliance test variables V5: - Moved test_active variable declaration and initialization out of this patch and into the patch where it's used - Changed variable name compliance_testing_active to compliance_test_active to unify the naming convention - Added initialization for compliance_test_type variable Signed-off-by: Todd Previte Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_dp.c | 75 +++++++++++++++++++++++++++++++++++++--- drivers/gpu/drm/i915/intel_drv.h | 3 ++ 2 files changed, 74 insertions(+), 4 deletions(-) commit b3f9d7d7bc5a35664e70fceed906eb35593dc644 Author: kbuild test robot Date: Thu Apr 16 18:34:06 2015 +0800 drm/i915: fix semicolon.cocci warnings drivers/gpu/drm/i915/i915_debugfs.c:4850:2-3: Unneeded semicolon Removes unneeded semicolon. Generated by: scripts/coccinelle/misc/semicolon.cocci CC: Jani Nikula Signed-off-by: Fengguang Wu Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_debugfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 412b979ccceff448dccea54bdb616c85781bc0ba Author: Quentin Lambert Date: Wed Apr 15 16:10:17 2015 +0200 ALSA: remove deprecated use of pci api Replace occurences of the pci api by appropriate call to the dma api. A simplified version of the semantic patch that finds this problem is as follows: (http://coccinelle.lip6.fr) @deprecated@ idexpression id; position p; @@ ( pci_dma_supported@p ( id, ...) | pci_alloc_consistent@p ( id, ...) ) @bad1@ idexpression id; position deprecated.p; @@ ...when != &id->dev when != pci_get_drvdata ( id ) when != pci_enable_device ( id ) ( pci_dma_supported@p ( id, ...) | pci_alloc_consistent@p ( id, ...) ) @depends on !bad1@ idexpression id; expression direction; position deprecated.p; @@ ( - pci_dma_supported@p ( id, + dma_supported ( &id->dev, ... + , GFP_ATOMIC ) | - pci_alloc_consistent@p ( id, + dma_alloc_coherent ( &id->dev, ... + , GFP_ATOMIC ) ) Signed-off-by: Quentin Lambert Signed-off-by: Takashi Iwai sound/pci/ad1889.c | 4 ++-- sound/pci/ali5451/ali5451.c | 4 ++-- sound/pci/als300.c | 4 ++-- sound/pci/als4000.c | 4 ++-- sound/pci/au88x0/au88x0.c | 4 ++-- sound/pci/aw2/aw2-alsa.c | 4 ++-- sound/pci/azt3328.c | 4 ++-- sound/pci/ca0106/ca0106_main.c | 4 ++-- sound/pci/cs5535audio/cs5535audio.c | 4 ++-- sound/pci/ctxfi/cthw20k1.c | 4 ++-- sound/pci/ctxfi/cthw20k2.c | 4 ++-- sound/pci/emu10k1/emu10k1_main.c | 4 ++-- sound/pci/es1938.c | 4 ++-- sound/pci/es1968.c | 4 ++-- sound/pci/hda/hda_intel.c | 8 ++++---- sound/pci/ice1712/ice1712.c | 4 ++-- sound/pci/lx6464es/lx6464es.c | 2 +- sound/pci/maestro3.c | 4 ++-- sound/pci/mixart/mixart.c | 2 +- sound/pci/pcxhr/pcxhr.c | 2 +- sound/pci/sis7019.c | 10 +++++----- sound/pci/sonicvibes.c | 4 ++-- sound/pci/trident/trident_main.c | 4 ++-- 23 files changed, 48 insertions(+), 48 deletions(-) commit 1604eeee8899e3b8421ba41b1abcdc48501bc0a0 Author: Takashi Iwai Date: Thu Apr 16 12:14:17 2015 +0200 ALSA: hda - Drop azx_sd_read*/write*() macros They are no longer used (only one place which can be replaced with a proper helper function). Let's drop. Signed-off-by: Takashi Iwai sound/pci/hda/hda_controller.h | 13 ------------- sound/pci/hda/hda_intel.c | 2 +- 2 files changed, 1 insertion(+), 14 deletions(-) commit 6a907738ab9840ca3d71c22cd28fba4cbae7f7ce Author: Chris Wilson Date: Wed Apr 15 10:51:26 2015 +0100 x86/asm: Enable fast 32-bit put_user_64() for copy_to_user() For fixed sized copies, copy_to_user() will utilize __put_user_size() fastpaths. However, it is missing the translation for 64-bit copies on x86/32. Testing on a Pinetrail Atom, the 64 bit put_user() fastpath is substantially faster than the generic copy_to_user() fallback. Signed-off-by: Chris Wilson Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Thomas Gleixner Cc: intel-gfx@lists.freedesktop.org Link: http://lkml.kernel.org/r/1429091486-11443-1-git-send-email-chris@chris-wilson.co.uk Signed-off-by: Ingo Molnar arch/x86/include/asm/uaccess_32.h | 4 ++++ 1 file changed, 4 insertions(+) commit 4cfe99c7f9592573e85a9768cfb2a8d7a7962618 Author: Takashi Iwai Date: Thu Apr 16 12:02:30 2015 +0200 ALSA: hda/tegra - Fix build error and warning I seem to have failed to run the build test properly... sound/pci/hda/hda_tegra.c: In function 'hda_tegra_dev_free': sound/pci/hda/hda_tegra.c:310:20: error: 'bus' undeclared (first use in this function) snd_hdac_bus_exit(bus); Reported-by: kbuild test robot Signed-off-by: Takashi Iwai sound/pci/hda/hda_tegra.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 5829975ce098171b7a4b86a5914929b16980d1bd Author: Daniel Vetter Date: Thu Apr 16 11:36:52 2015 +0200 drm/i915/dp: Remove intel_ prefix from hw signal_levels functions intel_ is for generic code bxt_ and friends for platform specific functions. Remove the intel_ prefix to be consistent with our naming. Random OCD bikeshed I've spotted while merging bxt patches. v2: Oops, git add fail. Cc: Imre Deak Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_dp.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) commit 43db4a59ce0ad83bca5c938c1d94e21b278de24c Author: Takashi Iwai Date: Thu Apr 16 11:44:58 2015 +0200 ALSA: hda - Reenable tracepoints for controller After correcting the fields to point the right members, tracepoints can be reenabled again for the legacy controller code. Signed-off-by: Takashi Iwai sound/pci/hda/hda_controller.c | 6 ++++++ sound/pci/hda/hda_intel_trace.h | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) commit 9314726b9f7329e223dd279819b42842ab7d413f Author: Vandana Kannan Date: Tue Nov 18 15:45:29 2014 +0530 drm/i915/bxt: Update max level of vswing Broxton supports 3 voltage swing levels on all DP ports. Max level of pre-emphasis will be taken care with the existing code. v2: Patch rebased v3: (imre) - keep existing behavior for other platforms - clarify commit message Signed-off-by: Vandana Kannan (v2) Signed-off-by: Imre Deak Reviewed-by: Sivakumar Thulasimani Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_dp.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 96fb9f9b154a8dbfe1f74c384cd82f73539fda93 Author: Vandana Kannan Date: Tue Nov 18 15:45:27 2014 +0530 drm/i915/bxt: VSwing programming sequence VSwing programming sequence as specified in the updated BXT BSpec v2: Satheesh's review comments addressed. - clear value before setting into registers - move print statement to bxt function Other changes - since signal level will not be set into DDI_BUF_CTL, the value need not be returned to intel_dp_set_signal_levels(). Making the bxt specific function to return void and setting signal_levels = 0 for bxt inside intel_dp_set_signal_levels() - instead of signal levels, printing vswing level and pre-emphasis level - in case none of the pre-emphasis levels or vswing levels are set, setting default of 400mV + 0dB v3: Satheesh's review comments - Check for mask before printing signal_levels. - Removing redundant register writes - Call intel_prepare_ddi_buffers only for HAS_PCH_SPLIT - Making register write part generic as it will be required for HDMI as well. Re-structure the code to include an array for vswing related values, set signal levels v4: Satheesh's review comments - Rebase over latest renaming patches - use hsw_signal_levels for HAS_DDI Other changes - Modified vswing_sequence() func definition - Rebased on top of register macro definitions v5: Satheesh's review comments - Check ddi translation table size v6: Imre's review comments - removed comments in vswing sequence - added vswing, pre-emphasis prints in intel_dp_set_signal_levels - added comment explaining use of DP vswing values for eDP - initialize n_entries and ddi_transaltion table based on encoder type - create bxt_ddi_buf_trans structure and use decimal values - adding a flag in bxt buffer translation table to indicate def entry v7: (imre) - squash in Vandana's "VSwing register definition", "HDMI VSwing programming", "Re-enable vswing programming", "Fix vswing sequence" patches - use BXT_PORT_* regs directly instead of via a temp var - simplify BXT_PORT_* macro definitions - add code comment why we read lane while write group registers - fix readout of DP_TRAIN_PRE_EMPHASIS in debug message Signed-off-by: Vandana Kannan (v6) Signed-off-by: Imre Deak Reviewed-by: Sivakumar Thulasimani Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_reg.h | 61 ++++++++++++++++++++ drivers/gpu/drm/i915/intel_ddi.c | 120 ++++++++++++++++++++++++++++++++++++++- drivers/gpu/drm/i915/intel_dp.c | 64 ++++++++++++++++++++- drivers/gpu/drm/i915/intel_drv.h | 2 + 4 files changed, 244 insertions(+), 3 deletions(-) commit ce3b7e9bcfdc2d255d9ab1a0e1f76d8b0912b8a4 Author: Damien Lespiau Date: Mon Aug 4 15:04:43 2014 +0100 drm/i915: Don't write the HDMI buffer translation entry when not needed We don't actually need to write the HDMI entry on DDIs that have no chance to be used as HDMI ports. While this patch shouldn't change the current behaviour, it makes further enabling work easier as we'll have an eDP table filling the full 10 entries. v2: Rely on the logic from intel_ddi_init() to figure out if the DDI port supports HDMI or not (Paulo). Suggested-by: Satheeshakrishna M Signed-off-by: Damien Lespiau Reviewed-by: Sivakumar Thulasimani Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_ddi.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit b403745c84592b26a0713e6944c2b109f6df5c82 Author: Damien Lespiau Date: Mon Aug 4 22:01:33 2014 +0100 drm/i915: Iterate through the initialized DDIs to prepare their buffers Not every DDIs is necessarily connected can be strapped off and, in the future, we'll have platforms with a different number of default DDI ports. So, let's only call intel_prepare_ddi_buffers() on DDI ports that are actually detected. We also use the opportunity to give a struct intel_digital_port to intel_prepare_ddi_buffers() as we'll need it in a following patch to query if the port supports HMDI or not. On my HSW machine this removes the initialization of a couple of (unused) DDIs. Signed-off-by: Damien Lespiau Reviewed-by: Sivakumar Thulasimani Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 4 ++++ drivers/gpu/drm/i915/intel_ddi.c | 16 ++++++++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) commit 503604038b739b244781904113a377385a341937 Author: Imre Deak Date: Fri Jan 16 00:55:16 2015 -0800 drm/i915: suppress false PLL state warnings on non-GMCH platforms The checks for PLL enabled state on CPU ports are valid only on GMCH platforms but atm we'd also call them on non-PCH-split/non-GMCH platforms like BXT, triggering false warnings. Until the proper check is implented for these platforms simply disable the check. Signed-off-by: Imre Deak Reviewed-by: Jesse Barnes Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 977bb38d2dc5a4bcfb8841131e5e44d0463f3411 Author: Satheeshakrishna M Date: Fri Aug 22 09:49:12 2014 +0530 drm/i915/bxt: Determine programmed frequency Add placeholder function for calculating programmed pixel clock. Note: Formula to back calculate link clock from dividers not available currently. v2: - rebased on upstream s/crtc_config/crtc_state/ change (imre) Signed-off-by: Satheeshakrishna M (v1) Signed-off-by: Imre Deak Reviewed-by: Jesse Barnes Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_ddi.c | 30 +++++++++++++++++++++++++++++- drivers/gpu/drm/i915/intel_dp.c | 2 ++ 2 files changed, 31 insertions(+), 1 deletion(-) commit 3760b59cba7d592e0ed70cb64291f0403b12f805 Author: Satheeshakrishna M Date: Fri Aug 22 09:49:11 2014 +0530 drm/i915/bxt: Determine PLL attached to pipe Determine PLL attached to pipe (which is same as DDI PLL) v2: - rebased on upstream s/crtc_config/crtc_state/ (imre) Signed-off-by: Satheeshakrishna M (v1) Signed-off-by: Imre Deak Reviewed-by: Jesse Barnes Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) commit bcddf61077592ad9f670502858491ad2788856ef Author: Satheeshakrishna M Date: Fri Aug 22 09:49:10 2014 +0530 drm/i915/bxt: Assign PLL for pipe Assign PLL for pipe (dependent on port attached to the pipe) v2: - fix incorrect encoder vs. new_encoder check for crtc (imre) v3: - warn and return error if no encoder is attached (imre) Signed-off-by: Satheeshakrishna M (v2) Signed-off-by: Imre Deak Reviewed-by: Jesse Barnes [danvet: Don't move intel_ddi_get_crtc_new_encoder around.] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_ddi.c | 2 +- drivers/gpu/drm/i915/intel_display.c | 20 ++++++++++++++++++++ drivers/gpu/drm/i915/intel_drv.h | 2 ++ 3 files changed, 23 insertions(+), 1 deletion(-) commit 5f26facecb622d07e5444c0b8dc7ace8f03a1339 Author: Takashi Iwai Date: Thu Apr 16 11:31:12 2015 +0200 ALSA: hda - Add missing inclusion of For fixing randconfig build errors like: sound/hda/hdac_stream.c: In function 'azx_timecounter_init': sound/hda/hdac_stream.c:365:2: error: implicit declaration of function 'CLOCKSOURCE_MASK' [-Werror=implicit-function-declaration] Reported-by: kbuild test robot Signed-off-by: Takashi Iwai sound/hda/hdac_stream.c | 1 + 1 file changed, 1 insertion(+) commit d683f3bc48655d71b36a8e18babae3036823c44e Author: Satheeshakrishna M Date: Fri Aug 22 09:49:08 2014 +0530 drm/i915/bxt: BXT clock divider calculation Calculate and cache clock parameters. Follow bspec algorithm for HDMI. Use precalculated values for DisplayPort linkrates. v2: (imre) - rebase against upstream crtc_state change - use the existing CHV based helper instead of handrolling the same Signed-off-by: Satheeshakrishna M (v1) Signed-off-by: Imre Deak Reviewed-by: Jesse Barnes Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_ddi.c | 129 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 129 insertions(+) commit 5ab7b0b71e00d5ebfab35f4535e437eb88105d20 Author: Imre Deak Date: Fri Mar 6 03:29:25 2015 +0200 drm/i915/bxt: add bxt_find_best_dpll Signed-off-by: Imre Deak Reviewed-by: Jesse Barnes Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 33 +++++++++++++++++++++++++++++---- drivers/gpu/drm/i915/intel_drv.h | 2 ++ 2 files changed, 31 insertions(+), 4 deletions(-) commit dfb82408471ee2e56b26c05dcd50317f873bee57 Author: Satheeshakrishna M Date: Fri Aug 22 09:49:09 2014 +0530 drm/i915/bxt: Define bxt DDI PLLs and implement enable/disable sequence Plug bxt PLL code into existing shared DPLL framework. v2: (imre) - squash in Satheeshakrishna's "Define BXT clock registers" and "Add state variables for bxt clock registers" patches - squash in Vandanas's "Change grp access to lane access for PLL" - fix group vs. lane access in bxt_ddi_pll_get_hw_state - add code comment why we read from lane registers while writing to group registers - clean up register macros - use BXT_PORT_PLL_* macros instead of open-coding the same - check if BXT_PORT_PCS_DW12_LN01 matches BXT_PORT_PCS_DW12_LN23 during hardware state readout - add missing LANESTAGGER_STRAP_OVRD masking - add note about missing step according to the latest BUN for PORT_PLL_9/lockthresh Signed-off-by: Satheeshakrishna M (v1) Signed-off-by: Imre Deak Reviewed-by: Jesse Barnes Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 3 + drivers/gpu/drm/i915/i915_reg.h | 76 ++++++++++++++++++ drivers/gpu/drm/i915/intel_ddi.c | 165 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 244 insertions(+) commit ff6d9f55fe3f217dabce6b5ee7dbd306be5f4391 Author: Jesse Barnes Date: Wed Jan 21 17:19:54 2015 -0800 drm/i915/bxt: fix panel fitter setup in crtc disable/enable Broxton has the same panel fitter registers as Skylake. v2: - add MISSING_CASE for future platforms (daniel) Signed-off-by: Jesse Barnes Signed-off-by: Imre Deak Reviewed-by: Sagar Kamble Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) commit 1ab23380f8b990ad865349040ec14c3ebe3a09c5 Author: Satheeshakrishna M Date: Fri Aug 22 09:49:06 2014 +0530 drm/i915/bxt: Restrict PORT_CLK_SEL programming below gen9 PORT_CLK_SEL programming is needed only on HSW/BDW. v2: - don't program PORT_CLK_SEL from mst encoders either (imre) v3: - fix the check for GEN9+ in intel_mst_pre_enable_dp() (damien) Signed-off-by: Satheeshakrishna M Signed-off-by: Imre Deak Reviewed-by: Sagar Kamble Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_ddi.c | 4 ++-- drivers/gpu/drm/i915/intel_dp_mst.c | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) commit 535afa2e9e3c1867460d6981d879b04d8b2b9ab3 Author: Jesse Barnes Date: Wed Apr 15 16:52:29 2015 -0700 drm/i915/vlv: check port in infoframe_enabled v2 Same as IBX and G4x, they all share the same genetic material. v2: we all need a bit more port in our lives Signed-off-by: Jesse Barnes Signed-off-by: Rodrigo Vivi Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_hdmi.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit baaa5cfb42d94440385e1229c000da1ecc369d47 Author: Chris Wilson Date: Wed Apr 15 16:42:46 2015 +0100 drm/i915: Update meaning of debugfs object's pin_flag Since the pin_ioctl is defunct, we only care about whether an object is pinned into the display for debug purposes. Signed-off-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_debugfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1f30a61482df44ee75c4db73f7f3d70052b93e83 Author: Chris Wilson Date: Wed Apr 15 16:39:59 2015 +0100 drm/i915: Simplify i915_gem_obj_is_pinned() test for set-tiling Since the removal of the user pin_ioctl, the only means for pinning an object is either through binding to the scanout or during execbuf reservation. As the later prevents a call to set-tiling, we need only check if the obj is pinned into the display plane to see if we need reject the set-tiling ioctl. Signed-off-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_tiling.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b7192a567ca472ac774b19a672dab77cb1e4b4db Author: Sonika Jindal Date: Wed Apr 15 11:02:33 2015 +0530 drm/i915/skl: Add back HDMI translation table The HDMI translation table is added back to bspec, so adding it, and defaulting the 800mV+0dB entry. The HDMI translation table was removed by following commit as per HW team's recommendation: commit 7ff446708bd1 ("drm/i915/skl: Only use the 800mV+2bB HDMI translation entry") v2: Adding reference to commit which removed this table (Jani) Cc: Damien Lespiau Signed-off-by: Sonika Jindal Reviewed-by: Damien Lespiau Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_ddi.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) commit 8805aa713e3590b74500dc2283e2df02ba363a4a Author: Daniel Vetter Date: Fri Apr 10 16:22:38 2015 +0200 drm/i915: Drop unecessary fb arguments from function signatures This is a separate patch to simplify conflict handling with other ongoing atomic work. Signed-off-by: Daniel Vetter Reviewed-by: Ander Conselvan de Oliveira Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit d328c9d78d64ca11e744fe227096990430a88477 Author: Daniel Vetter Date: Fri Apr 10 16:22:37 2015 +0200 drm/i915: Select starting pipe bpp irrespective or the primary plane Since universal planes the primary plane might not be around, and it's kinda silly to restrict the pipe bpp to the primary plane if we might end up displaying a 10bpc video overlay. And with atomic we might very well enable a pipe without a primary plane. So just use the platform max as a starting point and then restrict appropriately. Of course this is all still a bit moot as long as we artificially compress everything to max 8bpc because we don't use the hi-bpc gamma tables. Signed-off-by: Daniel Vetter Reviewed-by: Ander Conselvan de Oliveira Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 61 +++++++----------------------------- 1 file changed, 12 insertions(+), 49 deletions(-) commit 5678ad736758db6554c8466921dfc496f1fe58b4 Author: Tvrtko Ursulin Date: Tue Mar 17 14:45:29 2015 +0000 drm/i915: Fix view type in warning message One month passed between posting a patch and it getting merged, and unfortunately even though it still applies, it needs fixing to account for changes in function parameters since: commit d385612e15b8b6eb3db328d83f1872ef8a381788 Author: Tvrtko Ursulin Date: Tue Mar 17 14:45:29 2015 +0000 drm/i915: Log view type when printing warnings Signed-off-by: Tvrtko Ursulin Cc: Joonas Lahtinen [danvet: Squash in fixup from Tvrtko to fix the rebase conflict.] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 475d231be9bae4b997eb7e5a9a3cb214259cf90a Author: Daniel Vetter Date: Fri Apr 10 16:22:39 2015 +0200 drm/atomic-helper: Don't call atomic_update_plane when it stays off It's a silly thing to do and surprises driver writers. Most likely this did already blow up for exynos. It's also a silly thing to change plane state when it's off, but fbdev is silly (it does an unconditional modeset over all planes). And userspace can be evil. So I think we need this. With this check in the helpers we can remove the one in i915 code for the same conditions (becuase ->crtc iff ->fb). Cc: Gustavo Padovan Cc: dri-devel@lists.freedesktop.org Cc: Inki Dae Cc: Matt Roper Acked-by: Laurent Pinchart Tested-by: Laurent Pinchart Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_atomic_helper.c | 3 ++- drivers/gpu/drm/i915/intel_atomic_plane.c | 4 ---- 2 files changed, 2 insertions(+), 5 deletions(-) commit 31335cec02604cba72deee44bb18cb82790ef2aa Author: Suketu Shah Date: Mon Nov 24 13:37:45 2014 +0530 drm/i915/bxt: Add DC9 Trigger sequence Add triggers for DC9 as per details provided in bxt_enable_dc9 and bxt_disable_dc9 implementations. v1: - Add SKL check in gen9_disable_dc5 as it is possible for DC5 to remain disabled only for SKL. - Add additional checks for whether DC5 is already disabled during DC5-disabling only for BXT. v2: - rebase to latest. - Load CSR during DC9 disabling in the beginning before DC9 is disabled. - Make gen9_disable_dc5 function non-static as it's being called by functions in i915_drv.c. - Enable DC9-related functionality using a macro. v3: (imre) - remove BXT_ENABLE_DC9, we want DC9 always, and it's only valid on BXT - remove DC5 disabling and CSR FW loaded check, these are nop atm - squash in Vandana's "Do ddi_phy_init always" patch v4: - add TODO to re-enable DC5 during resume if CSR FW is available (sagar) Signed-off-by: Suketu Shah Signed-off-by: A.Sunil Kamath (v2) Signed-off-by: Imre Deak Reviewed-by: Sagar Kamble Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.c | 39 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) commit 2df8406a439bdeacbb5b74bbf91c376447d447dc Author: Tobias Klauser Date: Wed Apr 15 18:51:18 2015 +0200 sched/autogroup: Remove unnecessary #ifdef guards Since commit: 029632fbb7b7 ("sched: Make separate sched*.c translation units") autogroup is a separate translation unit built from the Makefile and thus no longer needs its content wrapped with #ifdef CONFIG_SCHED_AUTOGROUP. Signed-off-by: Tobias Klauser Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1429116678-17000-1-git-send-email-tklauser@distanz.ch Signed-off-by: Ingo Molnar kernel/sched/auto_group.c | 4 ---- 1 file changed, 4 deletions(-) commit 664326f8a5b7e4ab7ed469acaadc63d2a05d8720 Author: A.Sunil Kamath Date: Mon Nov 24 13:37:44 2014 +0530 drm/i915/bxt: Implement enable/disable for Display C9 state v2: Modified as per review comments from Imre - Mention enabling instead of allowing in the debug trace and remove unnecessary comments. v3: - Rebase to latest. - Move DC9-related functions from intel_display.c to intel_runtime_pm.c. v4: (imre) - remove DC5 disabling, it's a nop at this point - squashed in Suketu's "Assert the requirements to enter or exit DC9" patch - remove check for RUNTIME_PM from assert_can_enable_dc9, it's not a dependency Signed-off-by: A.Sunil Kamath (v3) Signed-off-by: Imre Deak Reviewed-by: Sagar Kamble Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_reg.h | 5 +++ drivers/gpu/drm/i915/intel_drv.h | 2 + drivers/gpu/drm/i915/intel_runtime_pm.c | 66 +++++++++++++++++++++++++++++++++ 3 files changed, 73 insertions(+) commit eee215660cedb4ee3c93de52a9bbc742891bb290 Author: Imre Deak Date: Tue Mar 10 21:18:30 2015 +0200 drm/i915/bxt: add description about the BXT PHYs Extend the VLV/CHV DPIO (PHY) documentation with the BXT specifics. v2: - add more detail about the mapping between ports and transcoders (ville) Signed-off-by: Imre Deak Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter Documentation/DocBook/drm.tmpl | 4 ++-- drivers/gpu/drm/i915/i915_reg.h | 18 ++++++++++++------ 2 files changed, 14 insertions(+), 8 deletions(-) commit 5c6706e5644b608c2270f1d17c1b277901b3a121 Author: Vandana Kannan Date: Mon Nov 24 13:37:39 2014 +0530 drm/i915/bxt: add display initialize/uninitialize sequence (PHY) Add PHY specific display initialization sequence as per BSpec. Note that the PHY initialization/uninitialization are done at their current place only for simplicity, in a future patch - when more of the runtime PM features will be enabled - these will be moved to power well#1 and modeset encoder enabling/disabling hooks respectively. The call to uninitialize the PHY during system/runtime suspend will be added later in this patchset. v1: Added function definitions in header files v2: Imre's review comments addressed - Moved CDCLK related definitions to i915_reg.h - Removed defintions for CDCLK frequency - Split uninit_cdclk() by adding a phy_uninit function - Calculate freq and decimal based on input frequency - Program SSA precharge based on input frequency - Use wait_for 1ms instead 200us udelay for DE PLL locking - Removed initial value for divider, freq, decimal, ratio. - Replaced polling loops with wait_for - Parameterized latency optim setting - Fix the parts where DE PLL has to be disabled. - Call CDCLK selection from mode set v3: (imre) - add note about the plan to move the cdclk/phy init to a better place - take rps.hw_lock around pcode access - fix DDI PHY timeout value - squash in Vandana's "PORT_CL2CM_DW6_A BUN fix", "DDI PHY programming register defn", "Do ddi_phy_init always", - move PHY register macros next to the corresponding CHV/VLV macros - move DE PLL register macros here from another patch since they are used here first - add BXT_ prefix to CDCLK flags - s/COMMON_RESET/COMMON_RESET_DIS/ and clarify related code comments - fix incorrect read value for the RMW of BXT_PHY_CTL_FAMILY_DDI - fix using GT_DISPLAY_EDP_POWER_ON vs. GT_DISPLAY_DDI_POWER_ON when powering on DDI ports - fix incorrect port when setting BXT_PORT_TX_DW14_LN for DDI ports - add missing masking when programming CDCLK_FREQ_DECIMAL - add missing powering on for DDI-C port, rename OCL2_LDOFUSE_PWR_EN to OCL2_LDOFUSE_PWR_DIS to reduce confusion - add note about mismatch with bspec in the PORT_REF_DW6 fields - factor out PHY init code to a new function, so we can call it for PHY1 and PHY0, instead of open-coding the same v4: (ville) - split the CDCLK/PHY parts into two patches, update commit message accordingly - use the existing dpio_phy enum instead of adding a new one for the same purpose - flip the meaning of PHYs so that PHY_A is PHY1 and PHY_BC is PHY0 to better match CHV - s/BXT_PHY/_BXT_PHY/ - use _PIPE for _BXT_PHY instead of open-coding it - drop _0_2_0_GTTMMADR suffix from BXT_P_CR_GT_DISP_PWRON - define GT_DISPLAY_POWER_ON in a more standard way - make a note that the CHV ConfigDB also disagrees about GRC_CODE field definitions - fix lane optimization refactoring fumble from v3 - add per PHY uninit functions to match the init counterparts Signed-off-by: Vandana Kannan (v2) Signed-off-by: Imre Deak Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_reg.h | 96 ++++++++++++++++++++++++++++++ drivers/gpu/drm/i915/intel_ddi.c | 125 +++++++++++++++++++++++++++++++++++++++ drivers/gpu/drm/i915/intel_drv.h | 2 + 3 files changed, 223 insertions(+) commit f8437dd1b5a5a084302ba8e9fa29f76cdfc2f945 Author: Vandana Kannan Date: Mon Nov 24 13:37:39 2014 +0530 drm/i915/bxt: add display initialize/uninitialize sequence (CDCLK) Add CDCLK specific display clock initialization sequence as per BSpec. Note that the CDCLK initialization/uninitialization are done at their current place only for simplicity, in a future patch - when more of the runtime PM features will be enabled - these will be moved to power well#1 and modeset encoder enabling/disabling hooks respectively. This also means that atm dynamic power gating power well #1 is effectively disabled. The call to uninitialize CDCLK during system/runtime suspend will be added later in this patchset. v1: Added function definitions in header files v2: Imre's review comments addressed - Moved CDCLK related definitions to i915_reg.h - Removed defintions for CDCLK frequency - Split uninit_cdclk() by adding a phy_uninit function - Calculate freq and decimal based on input frequency - Program SSA precharge based on input frequency - Use wait_for 1ms instead 200us udelay for DE PLL locking - Removed initial value for divider, freq, decimal, ratio. - Replaced polling loops with wait_for - Parameterized latency optim setting - Fix the parts where DE PLL has to be disabled. - Call CDCLK selection from mode set v3: (imre) - add note about the plan to move the cdclk/phy init to a better place - take rps.hw_lock around pcode access - move DE PLL register macros here from another patch since they are used here first - add BXT_ prefix to CDCLK flags - add missing masking when programming CDCLK_FREQ_DECIMAL v4: (ville) - split the CDCLK/PHY parts into two patches, update commit message accordingly - s/DISPLAY_PCU_CONTROL/HSW_PCODE_DE_WRITE_FREQ_REQ/ - simplify BXT_DE_PLL_RATIO macros - fix BXT_DE_PLL_RATIO_MASK - s/bxt_select_cdclk_freq/broxton_set_cdclk_freq/ - move cdclk init/uninit/set code from intel_ddi.c to intel_display.c - remove redundant code comments for broxton_set_cdclk_freq() - sanitize fixed point<->integer frequency value conversion - use DRM_ERROR instead of WARN - do RMW when programming BXT_DE_PLL_CTL for safety - add note about PLL lock timeout being exactly 200us - make PCU error messages more descriptive - instead of using 0 freq to mean PLL off/bypass freq use 19200 for clarity, as the latter one is the actual rate - simplify pcode programming, removing duplicated sandybridge_pcode_write() call - sanitize code flow, remove unnecessary scratch vars in broxton_set_cdclk() (imre) - Remove bound check for maxmimum freq to match current code. This check will be added later at a more proper platform independent place once atomic support lands. - add note to remove freq guard band which isn't needed on BXT - add note to reduce freq to minimum if no pipe is enabled - combine broxton_modeset_global_pipes() with valleyview_modeset_global_pipes() Signed-off-by: Vandana Kannan (v2) Signed-off-by: Imre Deak Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_reg.h | 20 ++++ drivers/gpu/drm/i915/intel_ddi.c | 2 + drivers/gpu/drm/i915/intel_display.c | 226 ++++++++++++++++++++++++++++++++++- drivers/gpu/drm/i915/intel_drv.h | 3 + 4 files changed, 248 insertions(+), 3 deletions(-) commit 164dfd2877249e7a768326256ffe0c78026a2863 Author: Vandana Kannan Date: Mon Nov 24 13:37:41 2014 +0530 drm/i915: Rename vlv_cdclk_freq to cdclk_freq Rename vlv_cdclk_freq to cdclk_freq so that it can be used for all platforms as required. Needed by the next patch. Signed-off-by: Vandana Kannan Signed-off-by: A.Sunil Kamath Signed-off-by: Imre Deak Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 2 +- drivers/gpu/drm/i915/intel_display.c | 18 ++++++++++-------- 2 files changed, 11 insertions(+), 9 deletions(-) commit b7d023e11434131e5a7ceb4be33c3afa2c855e89 Author: Takashi Iwai Date: Thu Apr 16 08:19:06 2015 +0200 ALSA: hda - Move PCM format and rate handling code to core library Signed-off-by: Takashi Iwai include/sound/hdaudio.h | 9 ++ sound/hda/hdac_device.c | 300 ++++++++++++++++++++++++++++++++++++++++ sound/pci/hda/hda_codec.c | 305 ----------------------------------------- sound/pci/hda/hda_codec.h | 15 +- sound/pci/hda/hda_controller.c | 3 +- sound/pci/hda/patch_ca0132.c | 7 +- 6 files changed, 317 insertions(+), 322 deletions(-) commit 602518a21b4c0673fee2146d46be4eb2464553b2 Author: Takashi Iwai Date: Thu Apr 16 07:53:08 2015 +0200 ALSA: hda - Minor refactoring Move the small portion of the common sequence in hda_intel.c and hda_tegra.c into hda_controller.c. Signed-off-by: Takashi Iwai sound/pci/hda/hda_controller.c | 10 +++++++--- sound/pci/hda/hda_intel.c | 3 --- sound/pci/hda/hda_tegra.c | 3 --- 3 files changed, 7 insertions(+), 9 deletions(-) commit a41d122449bea303ada415ef5fb2bf434f5481f9 Author: Takashi Iwai Date: Tue Apr 14 22:13:18 2015 +0200 ALSA: hda - Embed bus into controller object ... and replace with the existing hda-core helper codes. This reduces lots of lines, finally. Since struct hda_bus is now embedded into struct azx, snd_hda_bus_new() is moved and expanded from hda_codec.c to hda_controller.c, accordingly. Also private_free bus ops and private_data field are removed because we no longer need to point azx object from bus (we can use container_of()) The spin locks are consolidated into the single one, bus->reg_lock. Signed-off-by: Takashi Iwai sound/pci/hda/hda_codec.c | 72 ------ sound/pci/hda/hda_codec.h | 3 - sound/pci/hda/hda_controller.c | 561 ++++++++--------------------------------- sound/pci/hda/hda_controller.h | 65 ++--- sound/pci/hda/hda_intel.c | 133 ++++++---- sound/pci/hda/hda_intel.h | 1 + sound/pci/hda/hda_tegra.c | 43 ++-- 7 files changed, 232 insertions(+), 646 deletions(-) commit ccc98865aa44184e34de8df96dc837726c978949 Author: Takashi Iwai Date: Tue Apr 14 22:06:53 2015 +0200 ALSA: hda - Migrate more hdac_stream codes ... including dsp loader helpers. Lots of codes removed. Signed-off-by: Takashi Iwai sound/pci/hda/hda_controller.c | 428 +++++------------------------------------ sound/pci/hda/hda_intel.c | 4 + sound/pci/hda/hda_tegra.c | 1 + 3 files changed, 54 insertions(+), 379 deletions(-) commit 7833c3f85b88561c245a9cb1e42eafec9dca7154 Author: Takashi Iwai Date: Tue Apr 14 18:13:13 2015 +0200 ALSA: hda - Migrate hdac_stream into legacy driver Embed hdac_stream object into azx_dev, and use a few basic helper functions. The most of helper codes for hdac_stream aren't still used yet. Also this commit disables the tracepoints temporarily due to build problems. It'll be enabled again later. Signed-off-by: Takashi Iwai sound/pci/hda/hda_controller.c | 415 ++++++++++++++++------------------------- sound/pci/hda/hda_controller.h | 61 ++---- sound/pci/hda/hda_intel.c | 80 ++++---- sound/pci/hda/hda_tegra.c | 14 +- 4 files changed, 211 insertions(+), 359 deletions(-) commit a43ff5baa55ff87268a67b45c6f6cb261c023db1 Author: Takashi Iwai Date: Tue Apr 14 17:26:00 2015 +0200 ALSA: hda - Pass bus io_ops directly from the top-level driver One less redirection again. This also requires the change of the call order in the toplevel divers. Namely, the bus has to be created at first before other initializations since the memory allocation ops are called through bus object now. Signed-off-by: Takashi Iwai sound/pci/hda/hda_codec.c | 3 ++- sound/pci/hda/hda_codec.h | 1 + sound/pci/hda/hda_controller.c | 26 +++++++++++++------------- sound/pci/hda/hda_controller.h | 40 +++++++++++++++------------------------- sound/pci/hda/hda_intel.c | 34 +++++++++++++++++++++------------- sound/pci/hda/hda_tegra.c | 25 ++++++++++++++----------- 6 files changed, 66 insertions(+), 63 deletions(-) commit 7e8be1b309be28e4c92818fed1c55bdac919c7dd Author: Takashi Iwai Date: Tue Apr 14 16:55:31 2015 +0200 ALSA: hda - Move send_cmd / get_response to hdac_bus_ops One less redirection. Signed-off-by: Takashi Iwai sound/pci/hda/hda_codec.c | 22 ++-------------------- sound/pci/hda/hda_codec.h | 11 ++++++----- sound/pci/hda/hda_controller.c | 24 +++++++++++++++--------- 3 files changed, 23 insertions(+), 34 deletions(-) commit fb3b07c289fc972e1e2a7d7b7a809239b71f1f3c Author: Takashi Iwai Date: Tue Apr 14 16:47:19 2015 +0200 ALSA: hda - Merge codec and controller helpers There is no much merit to keep the HD-audio codec and controller helper codes in separate modules any longer. Let's merge them into a single helper module. This patch just changes Makefile entries to merge two individual modules to one. The only code change is the removal of superfluous MODULE_*() macros in one side. Signed-off-by: Takashi Iwai sound/pci/hda/Makefile | 3 +-- sound/pci/hda/hda_controller.c | 3 --- 2 files changed, 1 insertion(+), 5 deletions(-) commit 304dad30388d017544bc2e90fe4fefcca94263d3 Author: Jeeja KP Date: Sun Apr 12 18:06:13 2015 +0530 ALSA: hda - moved alloc/free stream pages function to controller library Moved azx_alloc_stream_pages and azx_free_stream_pages to controller library. Signed-off-by: Jeeja KP Signed-off-by: Subhransu S. Prusty Signed-off-by: Vinod Koul Signed-off-by: Takashi Iwai include/sound/hdaudio.h | 3 +++ sound/hda/hdac_controller.c | 58 +++++++++++++++++++++++++++++++++++++++++++++ sound/hda/hdac_stream.c | 2 -- 3 files changed, 61 insertions(+), 2 deletions(-) commit 8f3f600b52b100f254fc16a60af1261d2e4dc239 Author: Takashi Iwai Date: Tue Apr 14 12:53:28 2015 +0200 ALSA: hda - Add DSP loader to core library code Copied from the legacy driver code, no transition done yet. Signed-off-by: Takashi Iwai include/sound/hdaudio.h | 46 ++++++++++++++++++++ sound/hda/Kconfig | 3 ++ sound/hda/hdac_stream.c | 113 ++++++++++++++++++++++++++++++++++++++++++++++++ sound/pci/hda/Kconfig | 3 -- 4 files changed, 162 insertions(+), 3 deletions(-) commit 14752412721c61d9ac1e8d8fb51d7148cb15f85b Author: Takashi Iwai Date: Tue Apr 14 12:15:47 2015 +0200 ALSA: hda - Add the controller helper codes to hda-core module This patch adds the controller helper codes to hda-core library. The I/O access ops are added to the bus ops. The CORB/RIRB, the basic attributes like irq# and iomap address, some locks and the list of streams are added to the bus object, together with the stream object and its helpers. Currently the codes are just copied from the legacy driver, so you can find duplicated codes in both directories. Only constants are removed from the original hda_controller.h. More integration work will follow in the later patches. Signed-off-by: Takashi Iwai include/sound/hda_register.h | 152 ++++++++++++ include/sound/hdaudio.h | 224 ++++++++++++++++- sound/hda/Makefile | 2 +- sound/hda/hdac_bus.c | 20 +- sound/hda/hdac_controller.c | 449 ++++++++++++++++++++++++++++++++++ sound/hda/hdac_stream.c | 536 +++++++++++++++++++++++++++++++++++++++++ sound/pci/hda/hda_codec.c | 2 +- sound/pci/hda/hda_controller.h | 132 +--------- 8 files changed, 1380 insertions(+), 137 deletions(-) commit 26bea13a65654b21b224a47daf02827c79302f2e Author: Peter Oh Date: Tue Mar 31 16:44:43 2015 -0700 ath: lower JP W53 band DFS detection threshold around 30% Japan's W53 band requires 50% data traffic during its DFS test, but WLAN baseband used by ath9k and ath10k is not able to achieve current threshold rate, 50%, under the data traffic rate. In other words, HW occasionally fails detecting radar pulses, so that SW cannot get enough radar reports to achieve the rate. Signed-off-by: Peter Oh Signed-off-by: Kalle Valo drivers/net/wireless/ath/dfs_pattern_detector.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit cb3fbd63575cca6cff60222b5a51cc3bebe866ee Author: Peter Oh Date: Tue Mar 31 16:44:42 2015 -0700 ath: define JP DFS patterns separated from FCC Separate Japan's DFS pattern from FCC to control PPB threshold. Currently all the radar detectors use the same threshold rate at 50%, but it's not able to achieve if data traffic rate is higher than 40% because WLAN baseband used by ath9k and ath10k often fails detecting radar pulses, so that SW cannot get enough radar reports to achieve the rate. Since Japan's W53 band requires 50% data traffic during its DFS test we need to apply different threshold rate than others on it. Hence define its own pattern to give flexibility to threshold rate. Signed-off-by: Peter Oh Signed-off-by: Kalle Valo drivers/net/wireless/ath/dfs_pattern_detector.c | 29 +++++++++++++++---------- 1 file changed, 18 insertions(+), 11 deletions(-) commit dbd3f9f37ed217653ffe46368766a8fcdca5fcfb Author: Michal Kazior Date: Tue Mar 31 11:03:48 2015 +0000 ath10k: use scan burst for hw roc This improves chances of getting onto a foreign channel and thus makes P2P a bit more reliable. Without scan burst it was possible for firmware to not switch to foreign channel resulting in "failed to switch to channel for roc scan" warning. This would also effectively fail some offchan tx requests and lead to P2P find/connect taking longer. This could be observed when other vifs were running/busy, e.g. with P2P GO. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 1 + drivers/net/wireless/ath/ath10k/wmi-tlv.c | 2 +- drivers/net/wireless/ath/ath10k/wmi.h | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) commit fcf9844636be1674a565afcdf6901e1cf37f09fb Author: Michal Kazior Date: Tue Mar 31 11:03:47 2015 +0000 ath10k: fix hw roc expiration It is not guaranteed firmware will switch to foreign channel immediately after starting scan sequence. To account for that don't use duration parameter for scan time. Instead request insanely long scan and use timeout worker to cancel it from driver. This should improve P2P reliability a bit. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 694c0e0a177783ebf302f462237daa1e2f254025 Author: Peter Oh Date: Thu Apr 9 18:50:10 2015 +0300 ath: support new FCC DFS Radar Type 1 Add support for new FCC DFS rules released on August 14, 2014. FCC has added a new radar type named Radar Type 1 and original Radar Type 1 is renamed to Radar Type 0 in consequence. During the certificate test, Type 1 PRI values are randomly selected within the range of 518 and 3066 and we divide it to 3 groups based on practical test result data collected for more than a year. For about Radar type ID, it does nothing to functionalities. In other words, even if we re-order the IDs, DFS detection will work as well, but we give the ID with matching to FCC doc. By adding this support, the drivers using this DFS function are able to support both of old and new FCC DFS rules simultaneously without any other changes. Signed-off-by: Peter Oh Signed-off-by: Kalle Valo drivers/net/wireless/ath/dfs_pattern_detector.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) commit c0f6feba784e1087b905ad097d2d9ac0aaf744a5 Author: Borislav Petkov Date: Wed Apr 15 08:50:14 2015 +0200 x86/asm, x86/acpi/wakeup_64.S: Make global label a local one Make it a local symbol so that it doesn't appear in objdump output. No functionality change - code remains the same, just the global label disappears: ffffffff81039dbe: bf 03 00 00 00 mov $0x3,%edi ffffffff81039dc3: 31 c0 xor %eax,%eax ffffffff81039dc5: e8 b6 fd ff ff callq ffffffff81039b80 -ffffffff81039dca: eb 00 jmp ffffffff81039dcc - -ffffffff81039dcc : +ffffffff81039dca: eb 00 jmp ffffffff81039dcc ffffffff81039dcc: 48 c7 c0 80 1a ca 82 mov $0xffffffff82ca1a80,%rax ffffffff81039dd3: 48 8b 98 e2 00 00 00 mov 0xe2(%rax),%rbx ffffffff81039dda: 0f 22 e3 mov %rbx,%cr4 Signed-off-by: Borislav Petkov Cc: Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Len Brown Cc: Linus Torvalds Cc: Pavel Machek Cc: Rafael J. Wysocki Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1429080614-22610-1-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/kernel/acpi/wakeup_64.S | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit ff22e2010144b6aa050da35851f1fa79087cca06 Author: Borislav Petkov Date: Sun Apr 12 21:45:06 2015 +0200 x86/asm, x86/power/hibernate: Use local labels in asm ... so that they don't appear in the object file and thus in objdump output. They're local anyway and have a meaning only within that file. No functionality change. Signed-off-by: Borislav Petkov Acked-by: Rafael J. Wysocki Acked-by: Pavel Machek Cc: H. Peter Anvin Cc: Rafael J. Wysocki Cc: Thomas Gleixner Cc: linux-pm@vger.kernel.org Link: http://lkml.kernel.org/r/1428867906-12016-1-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/power/hibernate_asm_64.S | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 14434052ffb3b7fe8f491e9d0a7793376fb79155 Author: Brian Gerst Date: Sun Apr 12 09:14:46 2015 -0400 x86/asm: Remove unused TI_cpu Signed-off-by: Brian Gerst Acked-by: Andy Lutomirski Cc: Andy Lutomirski Cc: Denys Vlasenko Link: http://lkml.kernel.org/r/1428844486-6638-2-git-send-email-brgerst@gmail.com Signed-off-by: Ingo Molnar arch/x86/kernel/asm-offsets_32.c | 3 --- 1 file changed, 3 deletions(-) commit 4d178f94ebe123d462a51169b53854cb7f198888 Author: Brian Gerst Date: Sun Apr 12 09:14:45 2015 -0400 x86/asm: Merge common 32-bit values in asm-offsets.c Merge common values for 32-bit native and compat. Signed-off-by: Brian Gerst Acked-by: Andy Lutomirski Cc: Andy Lutomirski Cc: Denys Vlasenko Link: http://lkml.kernel.org/r/1428844486-6638-1-git-send-email-brgerst@gmail.com Signed-off-by: Ingo Molnar arch/x86/kernel/asm-offsets.c | 19 +++++++++++++++++++ arch/x86/kernel/asm-offsets_32.c | 15 --------------- arch/x86/kernel/asm-offsets_64.c | 21 --------------------- 3 files changed, 19 insertions(+), 36 deletions(-) commit c7240c3bc5d6610b42dbb10fda71bbbf1dad5515 Author: Rodrigo Vivi Date: Fri Apr 10 11:15:10 2015 -0700 drm/i915: PSR VLV: Add single frame update. According to spec: "In PSR HW or SW mode, SW set this bit before writing registers for a flip. It will be self-clear when it gets to the PSR active state." Some versions of spec mention that this is needed when in "Persistent mode" but define it as same as "SW mode". Since this fix the page flip case let's assume this is exactly what we need. Cc: Dhinakaran Pandiyan Signed-off-by: Rodrigo Vivi Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_drv.h | 1 + drivers/gpu/drm/i915/intel_frontbuffer.c | 2 ++ drivers/gpu/drm/i915/intel_psr.c | 42 ++++++++++++++++++++++++++++++++ 3 files changed, 45 insertions(+) commit 89251b177b588adf5e62df42d51017d24047f44b Author: Rodrigo Vivi Date: Fri Apr 10 11:15:09 2015 -0700 drm/i915: PSR: deprecate link_standby support for core platforms. On Haswell and Broadwell with link in standby when exit event happens between vblank and VSC packet, PSR exit on panel but DPA transmitter still sends black pixel. When this condition hits, panel will intermittently display black frame. The known W/A for this case involve the of single_frame update that isn't supported on Haswell and to be supported on Broadwell 3 other workarounds would be required. So it is better and safe to just deprecate link_standby for now. Also, link fully off saves more power than link_standby and afwk no OEM is requesting link standby on VBT. There is no reason for that. For Skylake let's just consider it behaves like Broadwell until we prove otherwise. v2: Fix commit message (Durga). v3: Fix conflict with PSR2. Reference: HSD: bdwgfx/1912559 Signed-off-by: Rodrigo Vivi Reviewed-by: Durgadoss R Signed-off-by: Rodrigo Vivi Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_debugfs.c | 3 --- drivers/gpu/drm/i915/i915_drv.h | 1 - drivers/gpu/drm/i915/intel_psr.c | 26 ++++++++++---------------- 3 files changed, 10 insertions(+), 20 deletions(-) commit 3301d4092106ff07e14d7acbf12243d782600930 Author: Rodrigo Vivi Date: Fri Apr 10 11:15:08 2015 -0700 drm/i915: PSR: Fix DP_PSR_NO_TRAIN_ON_EXIT logic Since the beginning there is a missunderstanding on the meaning of this dpcd bit. This bit shouldn't indicate whether to use link standby or not, but just be used to configure TP1, TP2 and TP3 times and tell hw aux should be skiped since HW is the responsible one. Even with help of frontbuffer tracking, HW is still fully responsible for PSR exit logic with/without DP training. DP_PSR_NO_TRAIN_ON_EXIT means the source doesn't need to do the training, but it doesn't tell to avoid TP patterns, so we will send minimal TP1 and avoid TP2. It also means that sink itself can take up to 5 idle frames for training. 6 in our case since we might be off by 1. So we also increment idle_frames by 4 here. v2: Fix and improve commit message (Durga). v3: Use minimal TP1 time avoiding TP2 and increase idle frame. Cc: Durgadoss R Cc: Arthur Runyan Signed-off-by: Rodrigo Vivi Reviewed-by: Durgadoss R Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_psr.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) commit cff5190cb989f130afa18b96cd33745b733ffae9 Author: Rodrigo Vivi Date: Fri Apr 10 11:15:07 2015 -0700 drm/i915: PSR: Remove wrong LINK_DISABLE. This wrong logic and useless define came from first versions and came along with all rework. Just now I notice how ugly, wrong and useless this is. val is already defined as 0 anyway and logic is completelly wrong and useless. So let's starting the link_standby fix with this cleaning. Signed-off-by: Rodrigo Vivi Reviewed-by: Durgadoss R Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_reg.h | 1 - drivers/gpu/drm/i915/intel_psr.c | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) commit 0b4a2a36d078b3a8de871025a958da547a6143f7 Author: Satheeshakrishna M Date: Fri Jul 11 14:51:13 2014 +0530 drm/i915/bxt: Define BXT power domains Add BXT power domains v2: Use DOMAIN_PLLS instead of a new CDCLK one, whitespace fixes (Damien) v3: add VGA, TRANSCODER_A power domains (imre) Signed-off-by: Satheeshakrishna M (v1) Signed-off-by: Damien Lespiau Signed-off-by: Imre Deak Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_runtime_pm.c | 55 +++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) commit cad372f1be5ef7cf14b980e679fbf30430dc241f Author: Takashi Iwai Date: Wed Mar 25 17:57:00 2015 +0100 ALSA: hda - Handle error from get_response bus ops directly ... and drop bus->rirb_error flag. This makes the code simpler. We treat -EAGAIN from get_response ops as a special meaning: it allows the caller to retry after bus reset. Signed-off-by: Takashi Iwai sound/pci/hda/hda_codec.c | 17 +++++++-------- sound/pci/hda/hda_codec.h | 3 +-- sound/pci/hda/hda_controller.c | 47 +++++++++++++++++++++--------------------- 3 files changed, 32 insertions(+), 35 deletions(-) commit 9e63743ebbcb138be83453f7dcf65f817893f851 Author: Shashank Sharma Date: Fri Aug 22 17:40:43 2014 +0530 drm/i915/bxt: Enable GMBUS IRQ GMBUS interrupt has been moved to CPU side in BXT. What this patch does is: 1. Enable GMBUS IRQ in de_post_install function 2. Handle this interrupt as a port interrupt in display irq handler v2: Rebase on top of the for_each_pipe() change adding dev_priv as first argument (Damien). v3: read BXT_DE_PORT_GMBUS IIR flag only on BXT on other platforms it's reserved (imre) v4: (jani) - remove redundant 'BXT GMBUS' comment - fix formatting of BXT_DE_PORT_GMBUS definition Reviewed-by: Satheeshakrishna M Signed-off-by: Damien Lespiau Signed-off-by: Shashank Sharma (v1) Signed-off-by: Imre Deak Reviewed-by: Jani Nikula Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_irq.c | 14 +++++++++++--- drivers/gpu/drm/i915/i915_reg.h | 1 + 2 files changed, 12 insertions(+), 3 deletions(-) commit 266ea3d9c4f69a4d97533128aba494f7d8b52459 Author: Shashank Sharma Date: Fri Aug 22 17:40:42 2014 +0530 drm/i915/bxt: Add BXT support in gen8_irq functions This patch adds conditional checks in gen8_irq functions to support BXT. Most of the checks just look for PCH split availability, and block the call to PCH interrupt functions if not available. v2: (jani) - drop redundant TODO comment about PCH IRQ flags on BXT - check HAS_PCH_SPLIT instead of IS_BROXTON when handling PCH specific IRQ events in gen8_irq_handler() - check HAS_PCH_SPLIT before calling the function instead of a corresponding early return within the called function for ibx_irq_reset(), ibx_irq_pre_postinstall(), ibx_irq_postinstall() v3: (jani) - in ironlake_irq_postinstall() and ironlake_irq_reset() HAS_PCH_SPLIT is always true, so drop the check for it Reviewed-by: Satheeshakrishna M Signed-off-by: Damien Lespiau Signed-off-by: Shashank Sharma (v1) Signed-off-by: Imre Deak Reviewed-by: Jani Nikula Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_irq.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit d04a492dd574bba43a558612ddd49fa593a387fe Author: Shashank Sharma Date: Fri Aug 22 17:40:41 2014 +0530 drm/i915/bxt: Add DDI hpd handler This patch adds a hot plug interrupt handler function for BXT. What this function typically does is: 1. Check if hot plug is enabled from hot plug control register. 2. Call hpd_irq_handler with appropriate trigger to detect a plug storm and schedule a bottom half. 3. Clear sticky status bits in hot plug control register.. v2: (jani) - drop redundant unlikely() - s/Todo/FIXME:/ in code comment - declare 'found' var in the scope where it's used - check for IS_BROXTON before handling BXT_DE_PORT_HOTPLUG_MASK Reviewed-by: Satheeshakrishna M Signed-off-by: Damien Lespiau Signed-off-by: Shashank Sharma (v1) Signed-off-by: Imre Deak Reviewed-by: Jani Nikula Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_irq.c | 46 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 44 insertions(+), 2 deletions(-) commit 6b5ad42f0a54e522e99734ad5fdbb7fe983277d2 Author: Imre Deak Date: Fri Mar 27 17:22:34 2015 +0200 drm/i915/bxt: support for HPD long/short status decoding All non-GMCH platforms have the same register layout for HPD long/short status, so let's use this condition instead of HAS_PCH_SPLIT, as the latter doesn't apply for BXT. Noticed by Daniel. Signed-off-by: Imre Deak Reviewed-by: Jani Nikula Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_irq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e0a20ad78c06be27fe8afe53750b6eaf25da4ea6 Author: Shashank Sharma Date: Fri Mar 27 14:54:14 2015 +0200 drm/i915/bxt: DDI Hotplug interrupt setup In BXT, DDI hotplug control has been moved to CPU from PCH. This patch adds a new IRQ setup function for BXT which: 1. Checks which HPD ports are requested to be enabled by encoders. 2. Enables those ports in the hot plug control register. 3. Un-masks these port interrupts in the IMR register. 4. Enables these port interrupts in the IER register. V3: Kept the default HPD filter count to default (500 us) as per satheesh's comment v4: Remove unused HPD filter defines (Damien) v5: warn if trying to setup HPD on port A (imre) v6: fix order of definitions for register bitfields (Daniel) v7: (jani) - define the size of the hpd_bxt array explicitly for bound checking - use for_each_intel_encoder instead of open coding it - fix format/order of definitions for BXT_HOTPLUG_CTL reg bitfields Reviewed-by: Satheeshakrishna M Signed-off-by: Damien Lespiau Signed-off-by: Shashank Sharma (v4) Signed-off-by: Imre Deak Reviewed-by: Jani Nikula Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_irq.c | 47 ++++++++++++++++++++++++++++++++++++++++- drivers/gpu/drm/i915/i915_reg.h | 23 +++++++++++++++++++- 2 files changed, 68 insertions(+), 2 deletions(-) commit 4c27283415ec9e352d0d336ac45717d5e408ce3c Author: Jani Nikula Date: Wed Apr 1 10:58:05 2015 +0300 drm/i915: add bxt gmbus support For BXT gmbus is pulled from PCH to CPU. From implementation point of view only pin pair configuration will change. The existing implementation supports all platforms previous to GEN8 and also SKL. But for BXT pin pair configuration is completely different than SKL or other previous GEN's. This patch introduces the new pin pair configuration structure specific to BXT and also ensures every real gmbus port has a gpio pin. v3 by Jani: with the platform independent prep work in place, the bxt enabling reduces to a fairly trivial patch. Credits are due Sunil for giving me the ideas (with his patches) what the platform independent parts should look like. v4: Fix intel_hdmi_init_connector() for bxt. Abstract gmbus_pin access more. s/GPU/PCH/ in commit message. v5: Rebase. Issue: VIZ-3574 Signed-off-by: A.Sunil Kamath Signed-off-by: Jani Nikula Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_reg.h | 3 +++ drivers/gpu/drm/i915/intel_hdmi.c | 14 +++++++++++--- drivers/gpu/drm/i915/intel_i2c.c | 30 +++++++++++++++++++++++++++--- 3 files changed, 41 insertions(+), 6 deletions(-) commit c5fe557ddec423afa13410fc5927bb90a7c96765 Merge: 3015465 c776eb2 Author: Daniel Vetter Date: Tue Apr 14 14:00:56 2015 +0200 Merge branch 'topic/bxt-stage1' into drm-intel-next-queued Separate topic branch for bxt didn't work out since we needed to refactor the gmbus code a bit to make it look decent. So backmerge. Signed-off-by: Daniel Vetter commit c776eb2edfce88f0a44156b417cac3da11d1f944 Author: Vandana Kannan Date: Tue Aug 19 12:05:01 2014 +0530 drm/i915/bxt: don't use unsupported port detection The port detection register flags in SFUSE_STRAP and DDI_BUF_CTL_A are not defined for BXT, so don't use them. Suggested by Satheesh. v2: - DDI_BUF_CTL_A bit 0 is not useful on BXT. Making changes to use this bit when simulator or BXT is not applicable. Code re-arranged as per Damien's suggestion. v3: - clarify commit message, add code comment (imre) Signed-off-by: Vandana Kannan (v2) Cc: M, Satheeshakrishna Cc: Lespiau, Damien Cc: Shankar, Uma Signed-off-by: Imre Deak Reviewed-by: Jani Nikula Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit e3a290553f3b09b657962e0a952fcf9b117bc08b Author: Robert Beckett Date: Wed Mar 11 10:28:25 2015 +0200 drm/i915/bxt: add workaround to avoid PTE corruption Set TLBPF in TILECTL. This fixes an issue with BXT HW seeing corrupted pte entries. v2: - move the workaround to bxt_init_clock_gating (imre) Signed-off-by: Robert Beckett (v1) Signed-off-by: Imre Deak Reviewed-by: Nick Hoath Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_reg.h | 1 + drivers/gpu/drm/i915/intel_pm.c | 2 ++ 2 files changed, 3 insertions(+) commit 8d09c8123db62859886bbbc504a56ff5d9d9e8cd Author: Ben Widawsky Date: Wed Mar 11 11:23:12 2015 +0200 drm/i915/skl: add WaDisableMaskBasedCammingInRCC workaround Signed-off-by: Ben Widawsky Signed-off-by: Imre Deak Reviewed-by: Nick Hoath Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_ringbuffer.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 38a39a7be77a097f7474986fe382cb1b56bf484e Author: Ben Widawsky Date: Wed Mar 11 10:54:53 2015 +0200 drm/i915/bxt: add WaDisableMaskBasedCammingInRCC workaround Signed-off-by: Ben Widawsky Signed-off-by: Imre Deak Reviewed-by: Nick Hoath Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_reg.h | 4 ++++ drivers/gpu/drm/i915/intel_ringbuffer.c | 9 +++++++++ 2 files changed, 13 insertions(+) commit 868434c51ec13c773e46c2398da18d53f6c78422 Author: Ben Widawsky Date: Wed Mar 11 10:49:32 2015 +0200 drm/i915/bxt: add GEN8_HDCUNIT_CLOCK_GATE_DISABLE_HDCREQ workaround Signed-off-by: Ben Widawsky Signed-off-by: Imre Deak Reviewed-by: Nick Hoath Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_reg.h | 1 + drivers/gpu/drm/i915/intel_pm.c | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) commit 32608ca255ef0da1a70239a731a1fcdbb212d3f2 Author: Imre Deak Date: Wed Mar 11 11:10:27 2015 +0200 drm/i915/bxt: add GEN8_SDEUNIT_CLOCK_GATE_DISABLE workaround Signed-off-by: Imre Deak Reviewed-by: Nick Hoath Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_pm.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit a82abe43cecb26619a7ce7e2052c3e89ed0b9436 Author: Imre Deak Date: Fri Mar 27 14:00:04 2015 +0200 drm/i915/bxt: add bxt_init_clock_gating v2: - Make the condition to select between SKL and BXT consistent with the corresponding condition in init_workarounds_ring (Nick) Signed-off-by: Imre Deak Reviewed-by: Nick Hoath Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_pm.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit 9647ff36ae266b74c82780f7f4e3bb4a39506107 Author: Imre Deak Date: Sun Jan 25 13:27:11 2015 -0800 drm/i915/gen9: fix PIPE_CONTROL flush for VS_INVALIDATE On GEN9+ per specification a NULL PIPE_CONTROL needs to be emitted before any PIPE_CONTROL command with the VS_INVALIDATE flag set. Signed-off-by: Imre Deak Reviewed-by: Nick Hoath Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_lrc.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) commit 30154650b8b58cd2633475d5a730b44baa140d98 Author: Chris Wilson Date: Tue Apr 7 17:28:24 2015 +0100 drm/i915: Remove obj->pin_mappable The obj->pin_mappable flag only exists for debug purposes and is a hindrance that is mistreated with rotated GGTT views. For debug purposes, it suffices to mark objects with pin_display as being of note. Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_debugfs.c | 6 +++--- drivers/gpu/drm/i915/i915_drv.h | 1 - drivers/gpu/drm/i915/i915_gem.c | 6 +----- 3 files changed, 4 insertions(+), 9 deletions(-) commit 2def4ad99befa25775dd2f714fdd4d92faec6e34 Author: Chris Wilson Date: Tue Apr 7 16:20:41 2015 +0100 drm/i915: Optimistically spin for the request completion This provides a nice boost to mesa in swap bound scenarios (as mesa throttles itself to the previous frame and given the scenario that will complete shortly). It will also provide a good boost to systems running with semaphores disabled and so frequently waiting on the GPU as it switches rings. In the most favourable of microbenchmarks, this can increase performance by around 15% - though in practice improvements will be marginal and rarely noticeable. v2: Account for user timeouts v3: Limit the spinning to a single jiffie (~1us) at most. On an otherwise idle system, there is no scheduler contention and so without a limit we would spin until the GPU is ready. v4: Drop forcewake - the lazy coherent access doesn't require it, and we have no reason to believe that the forcewake itself improves seqno coherency - it only adds delay. Signed-off-by: Chris Wilson Cc: Daniel Vetter Cc: Tvrtko Ursulin Cc: Eero Tamminen Cc: "Rantala, Valtteri" Reviewed-by: Tvrtko Ursulin Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem.c | 44 +++++++++++++++++++++++++++++++++++------ 1 file changed, 38 insertions(+), 6 deletions(-) commit a1b2278e4dfcd2dbea85e319ebf73a6b7b2f180b Author: Chandra Konduru Date: Tue Apr 7 15:28:45 2015 -0700 drm/i915: skylake panel fitting using shared scalers Enabling skylake panel fitting feature using shared scalers v2: -added force detach parameter for pfit disable purpose (me) -read crtc scaler state from hw state (Daniel) -replaced both skylake_pfit_enable and disable with skylake_pfit_update (me) -added scaler id check to intel_pipe_config_compare (Daniel) v3: -updated function header to kerneldoc format (Matt) -dropped need_scaling checks (Matt) v4: -move clearing of scaler id from commit path to check path (Matt) -updated colorkey checks based on recent updates (me) -squashed scaler check while enabling colorkey to here (me) -use values in plane_state->src as regular integers (me) -changes made not to modify state in commit path (Matt) v5: -squashed helper function to update scaler users to here (Matt) -squashed helper function to detach scaler to here (Matt, me) -changes to align with updated scaler structures (Matt, me) Signed-off-by: Chandra Konduru Reviewed-by: Matt Roper Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 250 +++++++++++++++++++++++++++++++---- drivers/gpu/drm/i915/intel_dp.c | 8 ++ drivers/gpu/drm/i915/intel_drv.h | 4 + 3 files changed, 235 insertions(+), 27 deletions(-) commit f76f35dc040e44d63369fdba3124701feec714f0 Author: Chandra Konduru Date: Tue Apr 7 15:28:44 2015 -0700 drm/i915: copy staged scaler state from drm state to crtc->config. This is required for commit to perform as per staged assignment of scalers until atomic crtc commit function is available. As a place holder doing this copy from intel_atomic_commit for scaling to operate correctly. Signed-off-by: Chandra Konduru Reviewed-by: Matt Roper Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_atomic.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit e04fa8036203e6f4f82b5a66e6e78e4118d9cfec Author: Chandra Konduru Date: Tue Apr 7 15:28:43 2015 -0700 drm/i915: Ensure setting up scalers into staged crtc_state From intel_atomic_check, call intel_atomic_setup_scalers() to assign scalers based on staged scaling requests. Fail the transaction if setup returns error. Setting up of scalers should be moved to atomic crtc check once atomic crtc is ready. v2: -updated parameter passing to setup_scalers (me) Signed-off-by: Chandra Konduru Reviewed-by: Matt Roper Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_atomic.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit d03c93d4801563de43abf91e56ff4b3fbc8cc7e4 Author: Chandra Konduru Date: Thu Apr 9 16:42:46 2015 -0700 drm/i915: setup scalers for crtc_compute_config Added intel_atomic_setup_scalers to setup scalers based on staged scaling requests from a crtc and its planes. If staged requests are supportable, this function assigns scalers to requested planes and crtc. Note that the scaler assignement itself is staged into crtc_state and respective plane_states for later commit after all checks have been done. overall high level flow: - scaler requests are staged into crtc_state by planes/crtc - check whether staged scaling requests can be supported - add planes using scalers that aren't in current transaction - assign scalers to requested users - as part of plane commit, scalers will be committed (i.e., either attached or detached) to respective planes in hw - as part of crtc_commit, scaler will be either attached or detached to crtc in hw crtc_compute_config calls intel_atomic_setup_scalers() to start scaler assignments as per scaler state in crtc config. This call should be moved to atomic crtc once it is available. v2: -removed a log message (me) -changed input parameter to crtc_state (me) v3: -remove assigning plane_state returned by drm_atomic_get_plane_state (Matt) -fail if there is an error from drm_atomic_get_plane_state (Matt) v4: -changes to align with updated scaler structure (Matt, me) v5: -added addtional checks before enabling HQ mode (me) -added comments to enable HQ mode (Matt) Signed-off-by: Chandra Konduru Reviewed-by: Matt Roper Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_atomic.c | 148 +++++++++++++++++++++++++++++++++++ drivers/gpu/drm/i915/intel_display.c | 10 ++- drivers/gpu/drm/i915/intel_drv.h | 3 + 3 files changed, 160 insertions(+), 1 deletion(-) commit 663a36407a71b3a98cea087f9a215660a6d6e387 Author: Chandra Konduru Date: Tue Apr 7 15:28:41 2015 -0700 drm/i915: Preserve scaler state when clearing crtc_state crtc_state is cleared during mode set which wipes out complete scaler state too. This is causing issues. To fix, ensure scaler state is preserved because it contains not only crtc scaler usage, but also planes using scalers on this crtc. Signed-off-by: Chandra Konduru Reviewed-by: Matt Roper Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 6a60cd87cdc6fab14c33b2ddf338e5de6bf21e87 Author: Chandra Konduru Date: Tue Apr 7 15:28:40 2015 -0700 drm/i915: Dump scaler_state too as part of dumping crtc_state Dumps scaler state as part of dumping crtc_state. v2: -use regular ints from plane_state->src (me) v3: -changes to align with updated scaler structures (Matt) -interpret plane_state->src as 16.16 format (Matt, Daniel) Signed-off-by: Chandra Konduru Reviewed-by: Matt Roper Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 47 ++++++++++++++++++++++++++++++++++-- 1 file changed, 45 insertions(+), 2 deletions(-) commit 0a5ae1b074899f420ea93c019619342b32fe1ad2 Author: Chandra Konduru Date: Thu Apr 9 16:41:54 2015 -0700 drm/i915: Keep sprite plane src rect in 16.16 format This patch keeps intel_plane_state->src rect back into 16.16 format. v2: -sprite src rect to match primary format (Matt, Daniel) v3: -moved a hunk from #14 to keep src rect in check & commit in tandom (Matt) Signed-off-by: Chandra Konduru Reviewed-by: Matt Roper Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_sprite.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 549e2bfb54905c734aae77d2cdb809a7acaefeeb Author: Chandra Konduru Date: Tue Apr 7 15:28:38 2015 -0700 drm/i915: Initialize skylake scalers Initializing scalers with supported values during crtc init. v2: -initialize single copy of min/max values (Matt) v3: -moved gen check to callsite (Matt) v4: -squashed planes begin with no scaler to here (me) v5: -updated init function with updated scaler state structure (Matt) Signed-off-by: Chandra Konduru Reviewed-by: Matt Roper Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 32 ++++++++++++++++++++++++++++++++ drivers/gpu/drm/i915/intel_sprite.c | 1 + 2 files changed, 33 insertions(+) commit 08e221fbf69a1e8da66526b340560e99e3e4eed9 Author: Chandra Konduru Date: Tue Apr 7 15:28:37 2015 -0700 drm/i915: Initialize plane colorkey to NONE This patch initializes plane colorkey to NONE. Signed-off-by: Chandra Konduru Reviewed-by: Matt Roper Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 1 + drivers/gpu/drm/i915/intel_sprite.c | 1 + 2 files changed, 2 insertions(+) commit be41e336c72c74f439d2f8bf996f5daa6a8b5e3c Author: Chandra Konduru Date: Tue Apr 7 15:28:36 2015 -0700 drm/i915: skylake scaler structure definitions skylake scaler structure definitions. scalers live in crtc_state as they are pipe resources. They can be used either as plane scaler or panel fitter. scaler assigned to either plane (for plane scaling) or crtc (for panel fitting) is saved in scaler_id in plane_state or crtc_state respectively. scaler_id is used instead of scaler pointer in plane or crtc state to avoid updating scaler pointer everytime a new crtc_state is created. v2: -made single copy of min/max values for scalers (Matt) v3: -updated commentary for scaler_id (me) v4: -converted src/dst ranges to #defines, dropped ratios (Matt) Signed-off-by: Chandra Konduru Reviewed-by: Matt Roper Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_drv.h | 68 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) commit 1c9a2d4ace0d93ac4e0ef3b7cf6b7fd51d6af189 Author: Chandra Konduru Date: Tue Apr 7 15:28:35 2015 -0700 drm/i915: Register definitions for skylake scalers Adding register definitions for skylake scalers. v2: -add #define for plane selection mask (me) Signed-off-by: Chandra Konduru Reviewed-by: Matt Roper Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_reg.h | 115 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) commit cb07bae0c47c5b66e8e1cc94988d8b48a415ec7d Author: Sagar Kamble Date: Sun Apr 12 11:28:14 2015 +0530 drm/i915: Disable Render power gating When RC6 along with Render power gating is enabled, GPU hang happens due to lack of synchronization between GTI and Render power gating. v2: Updated commit message and WA name (Damien) Change-Id: If1614206341eb52a21eadae8c5ebb2655029b50c Reviewed-by: Damien Lespiau Signed-off-by: Sagar Kamble Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_pm.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 9bdbd0b911086d03a27e1fe9531b41f5411ccfac Author: Ander Conselvan de Oliveira Date: Fri Apr 10 10:59:10 2015 +0300 drm/i915: Allocate connector state together with the connectors Connector states were being allocated in intel_setup_outputs() in loop over all connectors. That meant hot-added connectors would have a NULL state. Since the change to use a struct drm_atomic_state for the legacy modeset, connector states are necessary for the i915 driver to function properly, so that would lead to oopses. v2: Fix test for intel_connector_init() success in lvds and sdvo (PRTS) Signed-off-by: Ander Conselvan de Oliveira Reported-and-tested-by: Nicolas Kalkhof Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_crt.c | 2 +- drivers/gpu/drm/i915/intel_ddi.c | 4 +-- drivers/gpu/drm/i915/intel_display.c | 62 ++++++++++++++++-------------------- drivers/gpu/drm/i915/intel_dp.c | 2 +- drivers/gpu/drm/i915/intel_dp_mst.c | 2 +- drivers/gpu/drm/i915/intel_drv.h | 2 ++ drivers/gpu/drm/i915/intel_dsi.c | 2 +- drivers/gpu/drm/i915/intel_dvo.c | 2 +- drivers/gpu/drm/i915/intel_hdmi.c | 2 +- drivers/gpu/drm/i915/intel_lvds.c | 6 ++++ drivers/gpu/drm/i915/intel_sdvo.c | 22 +++++++++++-- drivers/gpu/drm/i915/intel_tv.c | 2 +- 12 files changed, 64 insertions(+), 46 deletions(-) commit a6631bc8d60d4c3159bc3dd0897664096f9e9ccd Author: Michel Thierry Date: Fri Apr 10 11:24:27 2015 +0100 drm/i915: Remove unused variable from execlists_context_queue After commit d7b9ca2f7a41cd36f5ca6c220df48ca9294ed37a ("drm/i915: Remove request->uniq") dev_priv is no longer needed. Cc: Chris Wilson Signed-off-by: Michel Thierry Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_lrc.c | 1 - 1 file changed, 1 deletion(-) commit 249e87de5f2a5dd9176d4c316b35462f22c9d6dc Author: Jani Nikula Date: Fri Apr 10 16:59:32 2015 +0300 drm/i915: fix build for DEBUG_FS=n Fix DEBUG_FS=n build broken by commit aa7471d228eb6dfddd0d201ea9746d6a2020972a Author: Jani Nikula Date: Wed Apr 1 11:15:21 2015 +0300 drm/i915: add i915 specific connector debugfs file for DPCD Reported-by: kbuild test robot Signed-off-by: Jani Nikula Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 1d335d1b62dd8475317d20e3f95072515243a810 Author: Mika Kuoppala Date: Fri Apr 10 15:54:58 2015 +0300 drm/i915: Move vm page allocation in proper place Move to i915_vma_bind as it is part of the binding. Suggested-by: Chris Wilson Cc: Michel Thierry Signed-off-by: Mika Kuoppala Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem.c | 11 ----------- drivers/gpu/drm/i915/i915_gem_gtt.c | 16 +++++++++++++++- 2 files changed, 15 insertions(+), 12 deletions(-) commit 3b7a5119b5d2def1161226a4c6a643db537dff7e Author: Sonika Jindal Date: Fri Apr 10 14:37:29 2015 +0530 drm/i915/skl: Support for 90/270 rotation v2: Moving creation of property in a function, checking for 90/270 rotation simultaneously (Chris) Letting primary plane to be positioned v3: Adding if/else for 90/270 and rest params programming, adding check for pixel_format, some cleanup (review comments) v4: Adding right pixel_formats, using src_* params instead of crtc_* for offset and size programming (Ville) v5: Rebased on -nightly and Tvrtko's series for gtt remapping. v6: Rebased on -nightly (Tvrtko's series merged) v7: Moving pixel_format check to intel_atomic_plane_check (Matt) Signed-off-by: Sonika Jindal Reviewed-by: Matt Roper Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_reg.h | 2 + drivers/gpu/drm/i915/intel_atomic_plane.c | 24 +++++++++ drivers/gpu/drm/i915/intel_display.c | 88 ++++++++++++++++++++++--------- drivers/gpu/drm/i915/intel_drv.h | 6 +++ drivers/gpu/drm/i915/intel_sprite.c | 52 ++++++++++++------ 5 files changed, 131 insertions(+), 41 deletions(-) commit d81063669a99b216eb6b9dfb17add4f38a839674 Author: Sonika Jindal Date: Fri Apr 10 14:37:28 2015 +0530 drm/i915/skl: Allow universal planes to position Signed-off-by: Sonika Jindal Reviewed-by: Matt Roper Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit a4104c556ae3b6279a42b5d27901d255c452cab0 Author: Sagar Kamble Date: Fri Apr 10 14:11:29 2015 +0530 drm/i915: Naming constants to be written to GEN9_PG_ENABLE Change-Id: I4253459c075c50d9b6f034b4ed4ad2f54cd7d1d7 Signed-off-by: Sagar Kamble Reviewed-by: Damien Lespiau Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_reg.h | 2 ++ drivers/gpu/drm/i915/intel_pm.c | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) commit 8d90926139fa69100134917e200aec73607c543f Author: Ander Conselvan de Oliveira Date: Fri Apr 10 11:38:31 2015 +0300 drm/i915: Remove stale comment from __intel_set_mode() Since the following commit, the PLL calculations are done earlier, so the code following the comment doesn't do anything PLL or encoder related. It only updates the primary plane now. commit f3019a4d92f08b2dd92443a4b567a066a51c6ec0 Author: Ander Conselvan de Oliveira Date: Wed Oct 29 11:32:37 2014 +0200 drm/i915: Remove crtc_mode_set() hook Signed-off-by: Ander Conselvan de Oliveira Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 3 --- 1 file changed, 3 deletions(-) commit f6234c1deedd7d35a09366dba8d92c523ff9cf09 Author: Chris Wilson Date: Tue Apr 7 17:28:17 2015 +0100 drm/i915: Simplify object is-pinned checking for shrinker When looking for viable candidates to shrink, we only want objects that are not pinned. However to do so we performed a double iteration over the vma in the objects, first looking for the pin-count, then looking for allocations. We can do both at once and be slightly more explicit in our validity test. Signed-off-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_shrinker.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 149c86e74fe44dcbac5e9f8d145c5fbc5dc21261 Author: Chris Wilson Date: Tue Apr 7 16:21:11 2015 +0100 drm/i915: Allocate context objects from stolen As we never expose context objects directly to userspace, we can forgo allocating a first-class GEM object for them and prefer to use the limited resource of reserved/stolen memory for them. Note this means that their initial contents are undefined. However, a downside of using stolen objects for execlists is that we cannot access the physical address directly (thanks MCH!) which prevents their use. Signed-off-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_context.c | 4 +++- drivers/gpu/drm/i915/intel_lrc.c | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) commit d7b9ca2f7a41cd36f5ca6c220df48ca9294ed37a Author: Chris Wilson Date: Tue Apr 7 16:21:09 2015 +0100 drm/i915: Remove request->uniq We already assign a unique identifier to every request: seqno. That someone felt like adding a second one without even mentioning why and tweaking ABI smells very fishy. Fixes regression from commit b3a38998f042b862f5ba4d7f2268f3a8dfb4883a Author: Nick Hoath Date: Thu Feb 19 16:30:47 2015 +0000 drm/i915: Fix a use after free, and unbalanced refcounting v2: Rebase Signed-off-by: Chris Wilson Cc: Nick Hoath Cc: Thomas Daniel Cc: Daniel Vetter Cc: Jani Nikula [danvet: Fixup because different merge order.] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 4 ---- drivers/gpu/drm/i915/i915_gem.c | 1 - drivers/gpu/drm/i915/i915_trace.h | 13 ++++--------- drivers/gpu/drm/i915/intel_lrc.c | 1 - 4 files changed, 4 insertions(+), 15 deletions(-) commit 423795cbac3b6b1b9fea6845a9233ba2dcc61142 Author: Chris Wilson Date: Tue Apr 7 16:21:08 2015 +0100 drm/i915: Prefer to check for idleness in worker rather than sync-flush Signed-off-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 74cdb337c0fc7d97e7db719051e51abcc7bd9579 Author: Chris Wilson Date: Tue Apr 7 16:21:05 2015 +0100 drm/i915: Tidy gen8 IRQ handler Remove some needless variables and parameter passing. Signed-off-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_irq.c | 113 +++++++++++++++++----------------------- 1 file changed, 49 insertions(+), 64 deletions(-) commit cb0d205e0ffc78eb51d5e62c8ee841f286f10303 Author: Chris Wilson Date: Tue Apr 7 16:21:04 2015 +0100 drm/i915: Reduce locking in gen8 IRQ handler Similar in vain in reducing the number of unrequired spinlocks used for execlist command submission (where the forcewake is required but manually controlled), we know that the IRQ registers are outside of the powerwell and so we can access them directly. Since we now have direct access exported via I915_READ_FW/I915_WRITE_FW, lets put those to use in the irq handlers as well. In the process, reorder the execlist submission to happen as early as possible. v2: Restrict the untraced register mmio to just the GT path (i.e. the hotpath for execlists) Signed-off-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_irq.c | 47 ++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 24 deletions(-) commit a6111f7b6604e6cf98856839b56a2ae436fc0bab Author: Chris Wilson Date: Tue Apr 7 16:21:02 2015 +0100 drm/i915: Reduce locking in execlist command submission This eliminates six needless spin lock/unlock pairs when writing out ELSP. v2: Respin with my preferred colour. v3: Mostly back to the original colour Signed-off-by: Tvrtko Ursulin [v1] Signed-off-by: Chris Wilson Cc: Daniel Vetter Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 18 +++++++ drivers/gpu/drm/i915/intel_lrc.c | 16 +++--- drivers/gpu/drm/i915/intel_uncore.c | 98 ++++++++++++++++++++++++++++--------- 3 files changed, 103 insertions(+), 29 deletions(-) commit 19ee66af15a59f405bfca9949af552d9ec0b03f4 Author: Daniel Vetter Date: Fri Apr 10 10:18:47 2015 +0200 drm/i915: Remove unused variable in intel_lrc.c Already tagged this one and 0-day builder is failing me. Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_lrc.c | 1 - 1 file changed, 1 deletion(-) commit e20d2ab741b58ad1ac0209f7a4ee930ebb7a43f3 Author: Chris Wilson Date: Tue Apr 7 16:20:58 2015 +0100 drm/i915: Use a separate slab for vmas vma are more frequently allocated than objects and so should equally benefit from having a dedicated slab. Signed-off-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_dma.c | 4 ++++ drivers/gpu/drm/i915/i915_drv.h | 1 + drivers/gpu/drm/i915/i915_gem.c | 7 ++++++- drivers/gpu/drm/i915/i915_gem_gtt.c | 3 ++- 4 files changed, 13 insertions(+), 2 deletions(-) commit efab6d8dd158fdccbe6a030f89fbf9ca0a9564e4 Author: Chris Wilson Date: Tue Apr 7 16:20:57 2015 +0100 drm/i915: Use a separate slab for requests requests are even more frequently allocated than objects and equally benefit from having a dedicated slab. v2: Rebase Signed-off-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_dma.c | 12 ++++++---- drivers/gpu/drm/i915/i915_drv.h | 4 +++- drivers/gpu/drm/i915/i915_gem.c | 41 +++++++++++++++++++-------------- drivers/gpu/drm/i915/intel_ringbuffer.c | 1 - 4 files changed, 35 insertions(+), 23 deletions(-) commit f1e2daea79e96a50cdbca1bdd1a70900e1af5da1 Author: Matt Roper Date: Thu Apr 9 10:48:38 2015 -0700 drm/i915: Clear crtc atomic flags at beginning of transaction Once we have full atomic modeset, these kind of flags should be in a real intel_crtc_state that's tracked properly. In the meantime, make sure we clear out any old flags at the beginning of a transaction so that we don't wind up seeing leftover flags from old transactions that were checked, but never went to the commit step. At the moment, a failed check or prepare could leave stale flags behind that interfere with the next atomic transaction. v2: Just do a memset; the series this patch was originally part of placed additional fields into the structure that shouldn't be cleared, but that's no longer the case. Signed-off-by: Matt Roper Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_atomic.c | 2 ++ 1 file changed, 2 insertions(+) commit 70a101f8639a712576c3ca1d910564c7e2ec91d8 Author: Matt Roper Date: Wed Apr 8 18:56:53 2015 -0700 drm/i915: Switch to full atomic helpers for plane updates/disable, take two Switch from our plane update/disable entrypoints to use the full atomic helpers (which generate a top-level atomic transaction) rather than the transitional helpers (which only create/manipulate orphaned plane states independent of a top-level transaction). Various upcoming work (SKL scalers, atomic watermarks, etc.) requires a full atomic transaction to behave properly/cleanly. Last time we tried this, we had to back out the change because we still call the drm_plane vfuncs directly from within our legacy modesetting code. This potentially results in nested atomic transactions, locking collisions, and other failures. To avoid that problem again, we sidestep the issue by calling the transitional helpers directly (rather than through a vfunc) when we're nested inside of other legacy modesetting code. However this does allow legacy SetPlane() ioctl's to process an entire drm_atomic_state transaction, which is important for upcoming patches. Cc: Chandra Konduru Signed-off-by: Matt Roper Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 24 ++++++++++++------------ drivers/gpu/drm/i915/intel_sprite.c | 10 +++++----- 2 files changed, 17 insertions(+), 17 deletions(-) commit 3e1ab4b70571ea801de6f426f9973c80e1bddfb3 Author: Daniel Vetter Date: Fri Apr 10 09:31:40 2015 +0200 drm/i915: Update DRIVER_DATE to 20150410 Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f81338a52a82009863b0dc9d597fe1000d1caff6 Author: Chandra Konduru Date: Thu Apr 9 17:36:21 2015 -0700 drm: Adding drm helper function drm_plane_from_index(). Adding drm helper function to return plane pointer from index where index is a returned by drm_plane_index. v2: -avoided nested loop by adding loop count (Daniel) v3: -updated patch header prefix to 'drm' (Matt) v4: -fixed a kerneldoc issue (kbuild-internal) Cc: dri-devel@lists.freedesktop.org Signed-off-by: Chandra Konduru Reviewed-by: Matt Roper Acked-by: Dave Airlie Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_crtc.c | 23 +++++++++++++++++++++++ include/drm/drm_crtc.h | 1 + 2 files changed, 24 insertions(+) commit 595e1eeb26d3fcf2e39b494f067ebb5eb3c77e08 Author: Chris Wilson Date: Tue Apr 7 16:20:51 2015 +0100 drm/i915: Remove vestigal DRI1 ring quiescing code After the removal of DRI1, all access to the rings are through requests and so we can always be sure that there is a request to wait upon to free up available space. The fallback code only existed so that we could quiesce the GPU following unmediated access by DRI1. v2: Rebase Signed-off-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_trace.h | 27 ---------------- drivers/gpu/drm/i915/intel_lrc.c | 57 +++------------------------------ drivers/gpu/drm/i915/intel_ringbuffer.c | 56 ++------------------------------ 3 files changed, 6 insertions(+), 134 deletions(-) commit 4bb1bedb28e0f1d04fa6bf5bdcdaecabd904b21c Author: Chris Wilson Date: Tue Apr 7 16:20:49 2015 +0100 drm/i915: Use the global runtime-pm wakelock for a busy GPU for execlists When we submit a request to the GPU, we first take the rpm wakelock, and only release it once the GPU has been idle for a small period of time after all requests have been complete. This means that we are sure no new interrupt can arrive whilst we do not hold the rpm wakelock and so can drop the individual get/put around every single request inside execlists. Note: to close one potential issue we should mark the GPU as busy earlier in __i915_add_request. To elaborate: The issue is that we emit the irq signalling sequence before we grab the rpm reference, which means we could miss the resulting interrupt (since that's not set up when suspended). The only bad side effect is a missed interrupt, gt mmio writes automatically wake up the hw itself. But otoh we have an umbrella rpm reference for the entirety of execbuf, as long as that's there we're covered. Signed-off-by: Chris Wilson [danvet: Explain a bit more about the add_request issue, which after some irc chatting with Chris turns out to not be an issue really.] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem.c | 1 - drivers/gpu/drm/i915/intel_lrc.c | 3 --- 2 files changed, 4 deletions(-) commit b5eba37283181fefe2a4c3b81f1c8f29d9d96904 Author: Chris Wilson Date: Tue Apr 7 16:20:48 2015 +0100 drm/i915: Use simpler form of spin_lock_irq(execlist_lock) We can use the simpler spinlock form to disable interrupts as we are always outside of an irq/softirq handler. Signed-off-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_lrc.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) commit 90e4f1592bb6e82f6690f0e05a8aadcf04d7bce7 Author: Ville Syrjälä Date: Wed Mar 25 18:45:58 2015 +0200 drm/i915: Fix the VBT child device parsing for BSW Recent BSW VBT has a VBT child device size 37 bytes instead of the 33 bytes our code assumes. This means we fail to parse the VBT and thus fail to detect eDP ports properly and just register them as DP ports instead. Fix it up by using the reported child device size from the VBT instead of assuming it matches out struct defintions. The latest spec I have shows that the child device size should be 36 bytes for rev >= 195, however on my BSW the size is actually 37 bytes. And our current struct definition is 33 bytes. Feels like the entire VBT parses would need to be rewritten to handle changes in the layout better, but for now I've decided to do just the bare minimum to get my eDP port back. Cc: Vijay Purushothaman Signed-off-by: Ville Syrjälä Reviewed-by: Damien Lespiau Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_bios.c | 26 +++++++++++++------------- drivers/gpu/drm/i915/intel_bios.h | 4 ++-- 2 files changed, 15 insertions(+), 15 deletions(-) commit a4e0bedca678c81eea4cd79a4bd502335639f73a Author: Michel Thierry Date: Wed Apr 8 12:13:35 2015 +0100 drm/i915: Use complete address space in true PPGTT True PPGTT is capable of having a full address space, even if the system has less allocated memory. Note that aliasing PPGTT always aliases the GGTT and thus should remain of the same size. Signed-off-by: Michel Thierry Reviewed-by: Mika Kuoppala Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit d7b2633dba04ef0fd7385f02a7b552abc5f1062f Author: Michel Thierry Date: Wed Apr 8 12:13:34 2015 +0100 drm/i915/gen8: Dynamic page table allocations This finishes off the dynamic page tables allocations, in the legacy 3 level style that already exists. Most everything has already been setup to this point, the patch finishes off the enabling by setting the appropriate function pointers. In LRC mode, contexts need to know the PDPs when they are populated. With dynamic page table allocations, these PDPs may not exist yet. Check if PDPs have been allocated and use the scratch page if they do not exist yet. Before submission, update the PDPs in the logic ring context as PDPs have been allocated. v2: Update aliasing/true ppgtt allocate/teardown/clear functions for gen 6 & 7. v3: Rebase. v4: Remove BUG() from ppgtt_unbind_vma, but keep checking that either teardown_va_range or clear_range functions exist (Daniel). v5: Similar to gen6, in init, gen8_ppgtt_clear_range call is only needed for aliasing ppgtt. Zombie tracking was originally added for teardown function and is no longer required. v6: Update err_out case in gen8_alloc_va_range (missed from lastest rebase). v7: Rebase after s/page_tables/page_table/. v8: Updated scratch_pt check after scratch flag was removed in previous patch. v9: Note that lrc mode needs to be updated to support init state without any PDP. v10: Unmap correct page_table in gen8_alloc_va_range's error case, clean-up gen8_aliasing_ppgtt_init (remove duplicated map), and initialize PTs during page table allocation. v11: Squashed LRC enabling commit, otherwise LRC mode would be left broken until it was updated to handle the init case without any PDP. v12: Do not overallocate new_pts bitmap, make alloc_gen8_temp_bitmaps static and don't abuse of inline functions. (Mika) Cc: Mika Kuoppala Signed-off-by: Ben Widawsky Signed-off-by: Michel Thierry (v2+) Reviewed-by: Mika Kuoppala Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 307 +++++++++++++++++++++++++++--------- drivers/gpu/drm/i915/intel_lrc.c | 23 ++- 2 files changed, 253 insertions(+), 77 deletions(-) commit 33c8819f1b057b555c73886f69f9baabe72527e0 Author: Michel Thierry Date: Wed Apr 8 12:13:33 2015 +0100 drm/i915/gen8: begin bitmap tracking Like with gen6/7, we can enable bitmap tracking with all the preallocations to make sure things actually don't blow up. v2: Rebased to match changes from previous patches. v3: Without teardown logic, rely on used_pdpes and used_pdes when freeing page tables. v4: Rebased after s/page_tables/page_table/. v5: Rebased after page table generalizations. Signed-off-by: Ben Widawsky Signed-off-by: Michel Thierry (v2+) Reviewed-by: Mika Kuoppala Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 59 +++++++++++++++++++++++++++++-------- drivers/gpu/drm/i915/i915_gem_gtt.h | 7 +++++ 2 files changed, 54 insertions(+), 12 deletions(-) commit e5815a2e0543f4381d3e8fa90f86c56ce68eee75 Author: Michel Thierry Date: Wed Apr 8 12:13:32 2015 +0100 drm/i915/gen8: Split out mappings When we do dynamic page table allocations for gen8, we'll need to have more control over how and when we map page tables, similar to gen6. In particular, DMA mappings for page directories/tables occur at allocation time. This patch adds the functionality and calls it at init, which should have no functional change. The PDPEs are still a special case for now. We'll need a function for that in the future as well. v2: Handle renamed unmap_and_free_page functions. v3: Updated after teardown_va logic was removed. v4: Rebase after s/page_tables/page_table/. v5: No longer allocate all PDPs in GEN8+ systems with less than 4GB of memory, and update populate_lr_context to handle this new case (proper tracking will be added later in the patch series). v6: Assign lrc page directory pointer addresses using a macro. (Mika) Cc: Mika Kuoppala Signed-off-by: Ben Widawsky Signed-off-by: Michel Thierry (v2+) Reviewed-by: Mika Kuoppala Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 224 +++++++++++------------------------- drivers/gpu/drm/i915/intel_lrc.c | 25 ++-- 2 files changed, 86 insertions(+), 163 deletions(-) commit c488dbbaa7626e510c3d2560e9aa2ddc45fb1e99 Author: Michel Thierry Date: Wed Apr 8 12:13:31 2015 +0100 drm/i915: Extract PPGTT param from page_directory alloc This will be useful for when we move to 48b addressing, and the PDP isn't the root of the page table structure. v2: Rebase after changes for Gen8+ systems with less than 4GB of memory. v3: Rebase after Mika's code review. Signed-off-by: Ben Widawsky Signed-off-by: Michel Thierry (v2) Reviewed-by: Mika Kuoppala Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) commit 09942c656b7f857e3fd875a20f5967d316a20c73 Author: Michel Thierry Date: Wed Apr 8 12:13:30 2015 +0100 drm/i915: num_pd_pages/num_pd_entries isn't useful These values are never quite useful for dynamic allocations of the page tables. Getting rid of them will help prevent later confusion. v2: Updated to use unmap_and_free_pd functions. v3: Updated gen8_ppgtt_free after teardown logic was removed. v4: Rebase after s/page_tables/page_table/. v5: Keep allocating all page directories in GEN8+ systems with less than 4GB of memory. Updated gen6_for_all_pdes. v6: Prevent (harmless) out of range access in gen6_for_all_pdes. Signed-off-by: Ben Widawsky Signed-off-by: Michel Thierry (v2+) Reviewed-by: Mika Kuoppala Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_debugfs.c | 2 -- drivers/gpu/drm/i915/i915_gem_gtt.c | 68 ++++++++++--------------------------- drivers/gpu/drm/i915/i915_gem_gtt.h | 7 ++-- 3 files changed, 23 insertions(+), 54 deletions(-) commit 7cb6d7ac635ab0c80607e6ffaf8682d48752523f Author: Michel Thierry Date: Wed Apr 8 12:13:29 2015 +0100 drm/i915/gen8: Update pdp switch and point unused PDPs to scratch page One important part of this patch is we now write a scratch page directory into any unused PDP descriptors. This matters for 2 reasons, first, we're not allowed to just use 0, or an invalid pointer, and second, we must wipe out any previous contents from the last context. The latter point only matters with full PPGTT. The former point only effect platforms with less than 4GB memory. v2: Updated commit message to point that we must set unused PDPs to the scratch page. v3: Unmap scratch_pd in gen8_ppgtt_free. v4: Initialize scratch_pd. (Mika) Cc: Mika Kuoppala Signed-off-by: Ben Widawsky Signed-off-by: Michel Thierry (v2+) Reviewed-by: Mika Kuoppala Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 32 +++++++++++++++++++++----------- drivers/gpu/drm/i915/i915_gem_gtt.h | 1 + 2 files changed, 22 insertions(+), 11 deletions(-) commit 5441f0cbe119496c36fd1c7a7971ecd0e0578ca6 Author: Michel Thierry Date: Wed Apr 8 12:13:28 2015 +0100 drm/i915/gen8: pagetable allocation rework Start using gen8_for_each_pde macro to allocate page tables. v2: teardown_va_range references removed. v3: Rebase after s/page_tables/page_table/. v4: Keep setting up page tables for all page directories in systems with less than 4GB of memory. v5: Also initialize the page tables. (Mika) v6: Initialize all page tables, including the extra ones from systems with less than 4GB of memory. (Mika) Cc: Mika Kuoppala Signed-off-by: Ben Widawsky Signed-off-by: Michel Thierry (v2+) Reviewed-by: Mika Kuoppala Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 83 ++++++++++++++++++++++++++----------- 1 file changed, 59 insertions(+), 24 deletions(-) commit 69876bed7e008f5fe01538a2d47c09f2862129d0 Author: Michel Thierry Date: Wed Apr 8 12:13:27 2015 +0100 drm/i915/gen8: page directories rework allocation Start using gen8_for_each_pdpe macro to allocate the page directories. Similar to PTs, while setting up a page directory, make all entries of the pd point to the scratch pd before mapping (and make all its entries point to the scratch page); this is to be safe in case of out of bound access or proactive prefetch. Systems without LLC require an explicit flush. v2: Rebased after s/free_pt_*/unmap_and_free_pt/ change. v3: Rebased after teardown va range logic was removed. v4: Keep setting up all page directories for systems with less than 4GB of memory. v5: Initialize PDs. (Mika) v6: Initialize also the extra PDs from systems with less than 4GB of memory. (Mika) Cc: Mika Kuoppala Signed-off-by: Ben Widawsky Signed-off-by: Michel Thierry (v2+) Reviewed-by: Mika Kuoppala Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 100 ++++++++++++++++++++++++++++++------ 1 file changed, 85 insertions(+), 15 deletions(-) commit 9271d959dc03fc7514030e22280cdbd6ca763ca5 Author: Michel Thierry Date: Wed Apr 8 12:13:26 2015 +0100 drm/i915/gen8: Add dynamic allocation macros and helper functions Similar to gen6, we will use for_each_pde/for_each_pdpe and pte/pde/pdpe_index to iterate over these new structures. v2: Match trace_i915_va_teardown params v3: Multiple rebases. v4: Updated to use unmap_and_free_pt. v5: teardown_va_range logic no longer needed. v6: Rebase after s/page_tables/page_table/. v7: Renamed commit to match what it does now (it was "Use dynamic allocation idioms on free"). v8: Prevent (harmless) out of range access in gen8_for_each_pde and gen8_for_each_pdpe_e. Signed-off-by: Ben Widawsky Signed-off-by: Michel Thierry (v2+) Reviewed-by: Mika Kuoppala [danvet: s/BUG/WARN/] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.h | 52 +++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) commit 5a8e9943528dd84315db2e9dfd7330bcbb872414 Author: Michel Thierry Date: Wed Apr 8 12:13:25 2015 +0100 drm/i915/gen8: Initialize page tables Similar to gen6, while setting up a page table, make all entries of the pt point to the scratch page before mapping; this is to be safe in case of out of bound access or proactive prefetch. Systems without LLC require an explicit flush. v2: Expanded commit text and fixed indentation (Mika) Signed-off-by: Michel Thierry Reviewed-by: Mika Kuoppala Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) commit 9c57f07001f2c093e0455137465242b0bbb6fb66 Author: Michel Thierry Date: Wed Apr 8 12:13:24 2015 +0100 drm/i915: Remove unnecessary gen8_ppgtt_unmap_pages We are already unmapping them in gen8_ppgtt_free. This function became redundant since commit 06fda602dbca9c59d87db7da71192e4b54c9f5ff ("drm/i915: Create page table allocators"). Cc: Mika Kuoppala Signed-off-by: Michel Thierry Reviewed-by: Mika Kuoppala Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 34 ---------------------------------- 1 file changed, 34 deletions(-) commit ec565b3c1589566a15d20e76def021bf4c17ee6b Author: Michel Thierry Date: Wed Apr 8 12:13:23 2015 +0100 drm/i915: Remove _entry from PPGTT page structures Lets try to keep this consistent: Page Directory Pointer (PDP). Page Directory (PD), also known as page directory pointer entries. Page Table (PT), also known as page directory entries. s/struct i915_page_table_entry/struct i915_page_table/ s/struct i915_page_directory_entry/struct i915_page_directory/ s/struct i915_page_directory_pointer_entry/struct i915_page_directory_pointer/ Suggested-by: Mika Kuoppala Signed-off-by: Michel Thierry Reviewed-by: Mika Kuoppala Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 56 ++++++++++++++++++------------------- drivers/gpu/drm/i915/i915_gem_gtt.h | 16 +++++------ drivers/gpu/drm/i915/i915_trace.h | 4 +-- 3 files changed, 38 insertions(+), 38 deletions(-) commit 94f8cf109e313e7758dff6cbc0357f6b07f83375 Author: Chris Wilson Date: Tue Apr 7 16:20:47 2015 +0100 drm/i915: Record ring->start address in error state This is mostly useful for execlists where the rings switch between contexts (and so checking that the ring's start register matches the context is important). Signed-off-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 1 + drivers/gpu/drm/i915/i915_gpu_error.c | 10 ++++++---- 2 files changed, 7 insertions(+), 4 deletions(-) commit b0da1b79aa4136c955710e755857a196a8226a1b Author: Chris Wilson Date: Tue Apr 7 16:20:40 2015 +0100 drm/i915: Suppress empty lines from debugfs/i915_gem_objects This is just so that I don't have to read about the batch pool on systems that are not using it! Rather than using a newline between the kernel clients and userspace clients, just distinguish the internal allocations with a '[k]' Signed-off-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_debugfs.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) commit 481a3d43b94f30c36746dd7861e8de052cf4c6c9 Author: Chris Wilson Date: Tue Apr 7 16:20:39 2015 +0100 drm/i915: Include active flag when describing objects in debugfs Since we use obj->active as a hint in many places throughout the code, knowing its state in debugfs is extremely useful. Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_debugfs.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 8d9d5744c6bc861dbd379fee6dd5633a62f85be4 Author: Chris Wilson Date: Tue Apr 7 16:20:38 2015 +0100 drm/i915: Split batch pool into size buckets Now with the trimmed memcpy before the command parser, we try to allocate many different sizes of batches, predominantly one or two pages. We can therefore speed up searching for a good sized batch by keeping the objects of buckets of roughly the same size. v2: Add a comment about bucket sizes Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin drivers/gpu/drm/i915/i915_debugfs.c | 46 ++++++++++++++++++---------- drivers/gpu/drm/i915/i915_drv.h | 2 +- drivers/gpu/drm/i915/i915_gem.c | 2 +- drivers/gpu/drm/i915/i915_gem_batch_pool.c | 49 +++++++++++++++++++----------- drivers/gpu/drm/i915/i915_gem_batch_pool.h | 2 +- 5 files changed, 64 insertions(+), 37 deletions(-) commit 35c94185c56de950110a09efd5d176292a21360b Author: Chris Wilson Date: Tue Apr 7 16:20:37 2015 +0100 drm/i915: Free batch pool when idle At runtime, this helps ensure that the batch pools are kept trim and fast. Then at suspend, this releases memory that we do not need to restore. It also ties into the oom-notifier to ensure that we recover as much kernel memory as possible during OOM. Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) commit 06fbca713e8e4a04c3506a64978969be580cd077 Author: Chris Wilson Date: Tue Apr 7 16:20:36 2015 +0100 drm/i915: Split the batch pool by engine I woke up one morning and found 50k objects sitting in the batch pool and every search seemed to iterate the entire list... Painting the screen in oils would provide a more fluid display. One issue with the current design is that we only check for retirements on the current ring when preparing to submit a new batch. This means that we can have thousands of "active" batches on another ring that we have to walk over. The simplest way to avoid that is to split the pools per ring and then our LRU execution ordering will also ensure that the inactive buffers remain at the front. v2: execlists still requires duplicate code. v3: execlists requires more duplicate code Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_debugfs.c | 33 ++++++++++++++++++------------ drivers/gpu/drm/i915/i915_dma.c | 1 - drivers/gpu/drm/i915/i915_drv.h | 8 -------- drivers/gpu/drm/i915/i915_gem.c | 2 -- drivers/gpu/drm/i915/i915_gem_batch_pool.c | 3 ++- drivers/gpu/drm/i915/i915_gem_execbuffer.c | 3 +-- drivers/gpu/drm/i915/intel_lrc.c | 2 ++ drivers/gpu/drm/i915/intel_ringbuffer.c | 2 ++ drivers/gpu/drm/i915/intel_ringbuffer.h | 8 ++++++++ 9 files changed, 35 insertions(+), 27 deletions(-) commit de4e783a3f86f63b03303b463cd7ef885e14b476 Author: Chris Wilson Date: Tue Apr 7 16:20:35 2015 +0100 drm/i915: Tidy batch pool logic Move the madvise logic out of the execbuffer main path into the relatively rare allocation path, making the execbuffer manipulation less fragile. Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_cmd_parser.c | 12 +++------ drivers/gpu/drm/i915/i915_gem_batch_pool.c | 39 +++++++++++++++--------------- drivers/gpu/drm/i915/i915_gem_execbuffer.c | 13 ++++------ 3 files changed, 27 insertions(+), 37 deletions(-) commit ed9ddd25b2055d29e2106da2a6340e2614d71e86 Author: Chris Wilson Date: Tue Apr 7 16:20:34 2015 +0100 drm/i915: Split i915_gem_batch_pool into its own header In the next patch, I want to use the structure elsewhere and so require it defined earlier. Rather than move the definition to an earlier location where it feels very odd, place it in its own header file. Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 13 +-------- drivers/gpu/drm/i915/i915_gem_batch_pool.c | 1 + drivers/gpu/drm/i915/i915_gem_batch_pool.h | 42 ++++++++++++++++++++++++++++++ 3 files changed, 44 insertions(+), 12 deletions(-) commit 7c27f52509994a874371a0756bee35facf51858b Author: Chris Wilson Date: Tue Apr 7 16:20:33 2015 +0100 drm/i915: Re-enable RPS wait-boosting for all engines This reverts commit ec5cc0f9b019af95e4571a9fa162d94294c8d90b Author: Chris Wilson Date: Thu Jun 12 10:28:55 2014 +0100 drm/i915: Restrict GPU boost to the RCS engine The premise that media/blitter workloads are not affected by boosting is patently false with a trip through igt. The question that remains is what exactly is going wrong with the media workload that prompted this? Hopefully that would be fixed by the missing agressive downclocking, in addition to the extra restrictions imposed on how frequent a process is allowed to boost. Signed-off-by: Chris Wilson Cc: Deepak S Cc: Daniel Vetter Acked-by: Deepak S Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1854d5ca0dd7a9fc11243ff220a3e93fce2b4d3e Author: Chris Wilson Date: Tue Apr 7 16:20:32 2015 +0100 drm/i915: Deminish contribution of wait-boosting from clients With boosting for missed pageflips, we have a much stronger indication of when we need to (temporarily) boost GPU frequency to ensure smooth delivery of frames. So now only allow each client to perform one RPS boost in each period of GPU activity due to stalling on results. Signed-off-by: Chris Wilson Cc: Deepak S Reviewed-by: Deepak S Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_debugfs.c | 39 +++++++++++++++++++++++++++++++++++++ drivers/gpu/drm/i915/i915_drv.h | 9 ++++++--- drivers/gpu/drm/i915/i915_gem.c | 35 ++++++++------------------------- drivers/gpu/drm/i915/intel_drv.h | 3 ++- drivers/gpu/drm/i915/intel_pm.c | 18 ++++++++++++++--- 5 files changed, 70 insertions(+), 34 deletions(-) commit 6ad790c0f5ac55fd13f322c23519f0d6f0721864 Author: Chris Wilson Date: Tue Apr 7 16:20:31 2015 +0100 drm/i915: Boost GPU frequency if we detect outstanding pageflips If we hit a vblank and see that have a pageflip queue but not yet processed, ensure that the GPU is running at maximum in order to clear the backlog. Pageflips are only queued for the following vblank, if we miss it, there will be a visible stutter. Boosting the GPU frequency doesn't prevent us from missing the target vblank, but it should help the subsequent frames hitting theirs. v2: Reorder vblank vs flip-complete so that we only check for a missed flip after processing the completion events, and avoid spurious boosts. v3: Rename missed_vblank v4: Rebase v5: Cancel the outstanding work in runtime suspend v6: Rebase v7: Rebase required fixing Signed-off-by: Chris Wilson Cc: Daniel Vetter Cc: Ville Syrjälä Cc: Deepak S Reviewed-by: Deepak S Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 11 ++++++++--- drivers/gpu/drm/i915/intel_drv.h | 2 ++ drivers/gpu/drm/i915/intel_pm.c | 35 +++++++++++++++++++++++++++++++++++ 3 files changed, 45 insertions(+), 3 deletions(-) commit edcf284bfe9c94eab2923b13cfff7456c0dc7dc6 Author: Chris Wilson Date: Tue Apr 7 16:20:29 2015 +0100 drm/i915: Fix computation of last_adjustment for RPS autotuning The issue is that by computing the last_adj value after applying the clamping, we can end up with a bogus value for feeding into the next RPS autotuning step. Signed-off-by: Chris Wilson Cc: Daniel Vetter Cc: Deepak S Reviewed-by: Deepak S Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_irq.c | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) commit 8fb55197e64d5988ec57b54e973daeea72c3f2ff Author: Chris Wilson Date: Tue Apr 7 16:20:28 2015 +0100 drm/i915: Agressive downclocking on Baytrail Reuse the same reclocking strategy for Baytail as on its bigger brethren, Sandybridge and Ivybridge. In particular, this makes the device quicker to reclock (both up and down) though the tendency now is to downclock more aggressively to compensate for the RPS boosts. v2: Rebase v3: Exclude Cherrytrail as Deepak was concerned that the increased number of register writes would wake the common powerwell too often. Signed-off-by: Chris Wilson Cc: Deepak S Cc: Ville Syrjälä Cc: Rodrigo Vivi Cc: Daniel Vetter Reviewed-by: Deepak S Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 3 +++ drivers/gpu/drm/i915/i915_irq.c | 4 ++-- drivers/gpu/drm/i915/i915_reg.h | 2 -- drivers/gpu/drm/i915/intel_pm.c | 8 +++++++- 4 files changed, 12 insertions(+), 5 deletions(-) commit cf5d8a46a001c9421c7397699db55f962e0410fc Author: Chris Wilson Date: Tue Apr 7 16:20:26 2015 +0100 drm/i915: Fix the flip synchronisation to consider mmioflips Currently we emit semaphore synchronisation as if we were going to flip using the target CS engine, but we then change our minds and do the flip using the CPU. Consequently we write instructions to the ring but never use them - even to the point of filling that ring up entirely and never submitting a request. The wrinkle in the ointment is that we have to tell a white lie to pin-to-display for it to skip the synchronisation for mmioflips as we will create a task specifically for that slow synchronisation. An oddity of note is the discrepancy in requests that we tell to pin-display to serialise to and that we then eventually wait upon. This is due to a limitation in the i915_gem_object_sync() routine that will be lifted later. Signed-off-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) commit ee286370d6233da01788c942c2dd7e450078eb27 Author: Chris Wilson Date: Tue Apr 7 16:20:25 2015 +0100 drm/i915: Cache last obj->pages location for i915_gem_object_get_page() The biggest user of i915_gem_object_get_page() is the relocation processing during execbuffer. Typically userspace passes in a set of relocations in sorted order. Sadly, we alternate between relocations increasing from the start of the buffers, and relocations decreasing from the end. However the majority of consecutive lookups will still be in the same page. We could cache the start of the last sg chain, however for most callers, the entire sgl is inside a single chain and so we see no improve from the extra layer of caching. v2: Avoid the double increment inside unlikely() References: https://bugs.freedesktop.org/show_bug.cgi?id=88308 Signed-off-by: Chris Wilson Cc: John Harrison Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 31 ++++++++++++++++++++++++++----- drivers/gpu/drm/i915/i915_gem.c | 4 ++++ 2 files changed, 30 insertions(+), 5 deletions(-) commit f9fc42f4bd9a6b9d63f8587325c7f53a6b788d8e Author: Damien Lespiau Date: Thu Feb 26 18:20:39 2015 +0000 drm/i915/skl: Implement WaDisableVFUnitClockGating Signed-off-by: Damien Lespiau Reviewed-by: Rodrigo Vivi Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_reg.h | 1 + drivers/gpu/drm/i915/intel_pm.c | 4 ++++ 2 files changed, 5 insertions(+) commit 669506e781d12939ad270b4c281189de119d1319 Author: Damien Lespiau Date: Thu Feb 26 18:20:38 2015 +0000 drm/i915/skl: Fix stepping check for a couple of W/As Both WaDisableSDEUnitClockGating and WaSetGAPSunitClckGateDisable are needed on B0 as well. Signed-off-by: Damien Lespiau Reviewed-by: Rodrigo Vivi Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_pm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 51847fb99f25fe1bf4bc6739f9d8ac85fa2c2a65 Author: Arun Siluvery Date: Tue Apr 7 14:01:33 2015 +0100 drm/i915: Do not set L3-LLC Coherency bit in ctx descriptor According to Spec this is a reserved bit for Gen9+ and should not be set. Change-Id: I0215fb7057b94139b7a2f90ecc7a0201c0c93ad4 Signed-off-by: Arun Siluvery Reviewed-by: Mika Kuoppala Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_lrc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit b833bb61fd905a8d2c7392d1bc5fedf34921e251 Author: Maarten Lankhorst Date: Tue Apr 7 11:32:02 2015 +0200 drm/i915: use kref_put_mutex in i915_gem_request_unreference__unlocked Signed-off-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 9b4fd8f250e08d8f22a31d947ac3ca16383df1e1 Author: Ander Conselvan de Oliveira Date: Thu Apr 2 14:48:01 2015 +0300 drm/i915: Don't use staged config in intel_mst_pre_enable_dp() For the conversion to atomic. The pre_enable() hooks are called as part of the crtc enable sequence, at which point the staged config was already made effective. Furthermore, the function actually changes hardware state, so it should anyway deal with current and not staged config. Signed-off-by: Ander Conselvan de Oliveira Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_dp_mst.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 98a221da4aeb18b2b68b08359666230c1febafe0 Author: Ander Conselvan de Oliveira Date: Thu Apr 2 14:48:00 2015 +0300 drm/i915: Don't use staged config in check_encoder_cloning() Reduce dependency on the staged config by using the atomic state instead. Signed-off-by: Ander Conselvan de Oliveira Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) commit 5448a00d3f0640949c2a9a4d16e163b0b40a3b2e Author: Ander Conselvan de Oliveira Date: Thu Apr 2 14:47:59 2015 +0300 drm/i915: Don't use staged config in check_digital_port_conflicts() Reduce dependency on the staged config by using the atomic state instead. Signed-off-by: Ander Conselvan de Oliveira Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) commit d69ba09b68ff779877dbbc3be2958a80151ae91b Author: Ander Conselvan de Oliveira Date: Thu Apr 2 14:47:58 2015 +0300 drm/i915: Remove intel_crtc->new_config It's not needed anymore, now that all the users were converted to using an atomic state. Signed-off-by: Ander Conselvan de Oliveira Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 31 ------------------------------- drivers/gpu/drm/i915/intel_drv.h | 1 - 2 files changed, 32 deletions(-) commit 225da59b540a92c8f8bbeb4c69c9139da06b061a Author: Ander Conselvan de Oliveira Date: Thu Apr 2 14:47:57 2015 +0300 drm/i915: Don't use intel_crtc->new_config in pll calculation code Move towards atomic by using the atomic state instead. Signed-off-by: Ander Conselvan de Oliveira Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) commit 304603f47a7487309d5c450f438c59e92af2d93a Author: Ander Conselvan de Oliveira Date: Thu Apr 2 14:47:56 2015 +0300 drm/i915: Don't use staged config for VLV cdclk calculations Now that we use a drm atomic state for the legacy modeset, it is possible to get rid of the usage of intel_crtc->new_config in the function intel_mode_max_pixclk(). Signed-off-by: Ander Conselvan de Oliveira Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 55 +++++++++++++++++++++++++++--------- 1 file changed, 41 insertions(+), 14 deletions(-) commit c929cb4524a304cb366854836ef7baf501ef6d06 Author: Ville Syrjälä Date: Thu Apr 2 18:28:07 2015 +0300 drm/i915: Silence a sparse warning ../drivers/gpu/drm/i915/intel_pm.c:3185:45: warning: Initializer entry defined twice ../drivers/gpu/drm/i915/intel_pm.c:3185:52: also defined here Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_pm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ea9da4e4608104108c6d5eca7b178cec2720ab22 Author: Chris Wilson Date: Thu Apr 2 10:35:08 2015 +0100 drm/i915: Allow disabling the destination colorkey for overlay Sometimes userspace wants a true overlay that is never clipped. In such cases, we need to disable the destination colorkey. However, it is currently unconditionally enabled in the overlay with no means of disabling. So rectify that by always default to on, and extending the UPDATE_ATTR ioctl to support explicit disabling of the colorkey. This is contrast to the spite code which requires explicit enabling of either the destination or source colorkey. Handling source colorkey is still todo for the overlay. (Of course it may be worth migrating overlay to sprite before then.) Signed-off-by: Chris Wilson Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_overlay.c | 30 +++++++++++++++++++----------- include/uapi/drm/i915_drm.h | 1 + 2 files changed, 20 insertions(+), 11 deletions(-) commit 7840ffee97842132f6a7f170ca609764551f7de2 Author: Vlad Dogaru Date: Fri Apr 3 15:47:29 2015 +0300 iio: sx9500: add power management Signed-off-by: Vlad Dogaru Signed-off-by: Jonathan Cameron drivers/iio/proximity/sx9500.c | 47 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) commit abda2b4f21249a079b83ed3356937fa6d9faa789 Author: Daniel Baluta Date: Thu Apr 9 17:17:47 2015 +0300 iio: light: ltr501: Fix alignment to match open parenthesis This makes ltr501 code consistent with the coding style adopted for the new drivers added to IIO. We prepare the path for adding support for LTR559 chip. Reported by checkpatch.pl Signed-off-by: Daniel Baluta Signed-off-by: Jonathan Cameron drivers/iio/light/ltr501.c | 42 +++++++++++++++++++++++------------------- 1 file changed, 23 insertions(+), 19 deletions(-) commit dee1f55057aeb61839f985b2cf7fff82789335d5 Author: Vignesh R Date: Tue Mar 31 16:42:36 2015 +0530 iio: adc: ti_am335x_adc: refactor DT parsing into a function Refactor DT parsing into a separate function from probe() to help addition of more DT parameters later. No functional changes. Signed-off-by: Vignesh R Signed-off-by: Jonathan Cameron drivers/iio/adc/ti_am335x_adc.c | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) commit d02e0f8f62f786e9291caf4633e20724c2ab7f99 Author: Vianney le Clément de Saint-Marcq Date: Mon Mar 30 10:35:02 2015 +0200 iio: mlx90614: Check for errors in read values The device uses the MSB of the returned temperature value as an error flag. Return a read error when this bit is set. Signed-off-by: Vianney le Clément de Saint-Marcq Cc: Arnout Vandecappelle (Essensium/Mind) Signed-off-by: Jonathan Cameron drivers/iio/temperature/mlx90614.c | 5 +++++ 1 file changed, 5 insertions(+) commit eb4b07dae4d4b7915333f687675209f677f72fc6 Author: Vianney le Clément de Saint-Marcq Date: Mon Mar 30 10:35:01 2015 +0200 iio: mlx90614: Add power management Add support for system sleep and runtime power management. To wake up the device, the SDA line should be held low for at least 33ms while SCL is high. As this is not possible using the i2c API (and not supported by all i2c adapters), a GPIO connected to the SDA line is needed. The GPIO is named "wakeup" and can be specified in a device tree with the "wakeup-gpios" binding. If the wake-up GPIO is not given, disable power management for the device. Entering sleep requires an SMBus byte access, hence power management is also disabled if byte access is not supported by the adapter. Signed-off-by: Vianney le Clément de Saint-Marcq Cc: Arnout Vandecappelle (Essensium/Mind) Signed-off-by: Jonathan Cameron .../bindings/iio/temperature/mlx90614.txt | 9 + drivers/iio/temperature/mlx90614.c | 246 ++++++++++++++++++++- 2 files changed, 253 insertions(+), 2 deletions(-) commit fad65a8fe5b85b5039b316258c2790e773cc3502 Author: Vianney le Clément de Saint-Marcq Date: Mon Mar 30 10:35:00 2015 +0200 iio: mlx90614: Add emissivity setting The mapping from the 16-bit EEPROM value to the decimal 0-1 range is approximate. A special case ensures 0xFFFF shows as 1.0 instead of 0.999998565. Writing to EEPROM requires an explicit erase by writing zero. In addition, it takes 20ms for the erase/write to complete. During this time no EEPROM register should be accessed. Therefore, two msleep()s are added to the write function and a mutex protects against concurrent access. Signed-off-by: Vianney le Clément de Saint-Marcq Cc: Arnout Vandecappelle (Essensium/Mind) Signed-off-by: Jonathan Cameron drivers/iio/temperature/mlx90614.c | 106 +++++++++++++++++++++++++++++++++++-- 1 file changed, 103 insertions(+), 3 deletions(-) commit 5147b21a61806b0ff2c29ccb3f8bc37495d5c2ff Author: Vianney le Clément de Saint-Marcq Date: Mon Mar 30 10:34:59 2015 +0200 iio: mlx90614: Add devicetree bindings documentation Also introduce "melexis" as a vendor prefix for device tree bindings. Signed-off-by: Vianney le Clément de Saint-Marcq Cc: Arnout Vandecappelle (Essensium/Mind) Signed-off-by: Jonathan Cameron .../devicetree/bindings/iio/temperature/mlx90614.txt | 15 +++++++++++++++ Documentation/devicetree/bindings/vendor-prefixes.txt | 1 + 2 files changed, 16 insertions(+) commit c8a8585431efba0faaf41167f8f7c27c48307ca6 Author: Vianney le Clément de Saint-Marcq Date: Mon Mar 30 10:34:58 2015 +0200 iio: core: Introduce IIO_CHAN_INFO_CALIBEMISSIVITY Contact-less IR temperature sensors measure the temperature of an object by using its thermal radiation. Surfaces with different emissivity ratios emit different amounts of energy at the same temperature. IIO_CHAN_INFO_CALIBEMISSIVITY allows the user to inform the sensor of the emissivity of the object in front of it, in order to effectively measure its temperature. A device providing such setting is Melexis's MLX90614: http://melexis.com/Assets/IR-sensor-thermometer-MLX90614-Datasheet-5152.aspx. Signed-off-by: Vianney le Clément de Saint-Marcq Cc: Arnout Vandecappelle (Essensium/Mind) Signed-off-by: Jonathan Cameron Documentation/ABI/testing/sysfs-bus-iio | 11 +++++++++++ drivers/iio/industrialio-core.c | 1 + include/linux/iio/iio.h | 1 + 3 files changed, 13 insertions(+) commit 1c046bc1db49e5a42e5c4167ac42cee4c1725a37 Author: Jeff McGee Date: Fri Apr 3 18:13:18 2015 -0700 drm/i915/bxt: Support BXT in SSEU device status dump Modify the Gen9 SSEU device status logic to support Broxton. Broxton reuses the Skylake power gate acknowledgment registers but has at most 1 slice and 3 subslices. Broxton supports subslice power gating within its single slice. Signed-off-by: Jeff McGee Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_debugfs.c | 45 ++++++++++++++++++++++++++----------- drivers/gpu/drm/i915/i915_reg.h | 13 ++++------- 2 files changed, 36 insertions(+), 22 deletions(-) commit 5d39525a1f2551a33f7f7380a038837e648ed511 Author: Jeff McGee Date: Fri Apr 3 18:13:17 2015 -0700 drm/i915: Split-up SSEU device status by platform Signed-off-by: Jeff McGee Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_debugfs.c | 172 +++++++++++++++++++++--------------- 1 file changed, 100 insertions(+), 72 deletions(-) commit dead16e2c34343f0e12ee71cd50c9398440e2556 Author: Jeff McGee Date: Fri Apr 3 18:13:16 2015 -0700 drm/i915/bxt: Determine BXT slice/subslice/EU info Modify the Gen9 SSEU info initialization logic to support Broxton. Broxton reuses the SKL fuse registers but has at most 1 slice and 6 EU per subslice. Signed-off-by: Jeff McGee Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_dma.c | 47 ++++++++++++++++++++++++++--------------- drivers/gpu/drm/i915/i915_reg.h | 4 +--- 2 files changed, 31 insertions(+), 20 deletions(-) commit 9705ad8a9684c5b4952263821e07929ca3856fd1 Author: Jeff McGee Date: Fri Apr 3 18:13:15 2015 -0700 drm/i915: Split SSEU init into functions by platform Signed-off-by: Jeff McGee Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_dma.c | 234 +++++++++++++++++++++------------------- 1 file changed, 125 insertions(+), 109 deletions(-) commit 3449ca859a2ea8466b58794b256892508ea0c1b0 Author: Vandana Kannan Date: Fri Mar 27 14:19:09 2015 +0200 drm/i915/bxt: Increase DDI buf idle timeout For BXT, DDI buf idle timeout delay needs to be increased to 16us. Since this is a timeout value and we return as soon as the condition is realized, no penalty incurred for other platforms. v2: - remove TIMEOUT macro used only at a single place (Daniel) Suggested-by: Satheeshakrishna M Cc: Satheeshakrishna M Cc: Damien Lespiau Signed-off-by: Vandana Kannan Signed-off-by: Damien Lespiau (v1) Reviewed-by: Jani Nikula Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_ddi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6c74c87f7cc94e71960e5a1044c1b26f68f7d3c8 Author: Nick Hoath Date: Fri Mar 20 09:03:52 2015 +0000 drm/i915/bxt: Add Broxton steppings Signed-off-by: Nick Hoath Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 4 ++++ 1 file changed, 4 insertions(+) commit cae0437f7a367594cb0abc17ddf337c6b2669fab Author: Nick Hoath Date: Tue Mar 17 11:39:38 2015 +0200 drm/i915/bxt: HardWare WorkAround ring initialisation for Broxton Adds framework for Broxton HW WAs Signed-off-by: Nick Hoath Signed-off-by: Imre Deak Reviewed-by: Nick Hoath Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_ringbuffer.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit 2a073f89435771409a21930b78f182d8cb5c5941 Author: Imre Deak Date: Fri Mar 27 13:07:33 2015 +0200 drm/i915/bxt: map GTT as uncached On Broxton per specification the GTT has to be mapped as uncached. This was caught by the PTE write readback warning, which showed a corrupted PTE value with using the current write-combine mapping. v2: - add comment explaining how the problem with WC mapping manifests (Daniel) Signed-off-by: Imre Deak Reviewed-by: Antti Koskipää Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit 8232edb5f74af0f4664362fefab165e891a7fa68 Author: Damien Lespiau Date: Tue Mar 17 11:39:35 2015 +0200 drm/i915/bxt: Broxton raises the maximum number of planes to 4 Pipe A and b have 4 planes. Signed-off-by: Damien Lespiau Reviewed-by: Antti Koskipää Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 43d735a686d03033599187c276071eceb32d52dd Author: Damien Lespiau Date: Tue Mar 17 11:39:34 2015 +0200 drm/i915/bxt: Broxton DDB is 512 blocks Signed-off-by: Damien Lespiau Reviewed-by: Antti Koskipää Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_pm.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit b21249c90e7ad8fce2234df98555c80c5f828c4f Author: Damien Lespiau Date: Tue Mar 17 11:39:33 2015 +0200 drm/i915/bxt: Add the plane4 related interrupt definitions Signed-off-by: Damien Lespiau Reviewed-by: Antti Koskipää Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_reg.h | 3 +++ 1 file changed, 3 insertions(+) commit 8fb9397dafadacd8d3ae21a3f5ac3c473adfe6d4 Author: Damien Lespiau Date: Tue Mar 17 11:39:32 2015 +0200 drm/i915/bxt: Broxton has 3 sprite planes on pipe A/B, 2 on pipe C v2: Rebase on top of the for_each_pipe() change adding dev_priv as first argument. Signed-off-by: Damien Lespiau Reviewed-by: Sivakumar Thulasimani Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_dma.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 5a4e33a34fc27d6b54200bde187766e049ae876b Author: Sumit Singh Date: Tue Mar 17 11:39:31 2015 +0200 drm/i915/bxt: Enable PTE encoding The caching options for page table entries have remained the same as Cherryview. This patch fixes it so the right code path is taken on BXT. v2: Fix up commit message (Mike) Signed-off-by: Sumit Singh Signed-off-by: Damien Lespiau Reviewed-by: Sivakumar Thulasimani Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 31d4dcf705c33da28e3688bfb1f11889cf8b29f9 Author: Damien Lespiau Date: Tue Mar 17 11:39:30 2015 +0200 drm/i915/bxt: Broxton uses the same GMS values as Skylake v2: Rebase on top of the early-quirks rework from Ville. Signed-off-by: Damien Lespiau (v1) Reviewed-by: Sivakumar Thulasimani Signed-off-by: Daniel Vetter arch/x86/kernel/early-quirks.c | 1 + 1 file changed, 1 insertion(+) commit 1feed8855d168482bb9e6faa0ba0f1f257e62514 Author: Satheeshakrishna M Date: Tue Mar 17 11:39:29 2015 +0200 drm/i915/bxt: Add IS_BROXTON macro Adding IS_BROXTON macro for broxton specific implementation. Signed-off-by: Satheeshakrishna M Signed-off-by: Damien Lespiau Reviewed-by: Sivakumar Thulasimani Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 1 + 1 file changed, 1 insertion(+) commit 46ec15f2662b48103751ea059d2cb4e2571bad5e Author: Imre Deak Date: Thu Mar 26 17:35:40 2015 +0200 drm/i915: use proper FBC base register on all new platforms Starting from GEN5 the FBC base register is the same on all platforms. GEN>=5 is the same condition as HAS_PCH_SPLIT except on BXT, so make things work on BXT as well. Motivated by Rodrigo's request to check FBC support on BXT. Signed-off-by: Imre Deak Reviewed-by: Antti Koskipää Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_stolen.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ce89db2eabb0979e823aed38d5f5b22512d06392 Author: Daisy Sun Date: Tue Mar 17 11:39:28 2015 +0200 drm/i915/bxt: BXT FBC enablement Enable FBC feature on Broxton Issue: VIZ-3784 Signed-off-by: Daisy Sun Signed-off-by: Damien Lespiau Reviewed-by: Antti Koskipää Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.c | 1 + 1 file changed, 1 insertion(+) commit 1347f5b46a270db1991625f9f57af91e23a4b512 Author: Damien Lespiau Date: Tue Mar 17 11:39:27 2015 +0200 drm/i915/bxt: Add BXT PCI ids v2: Switch to info->ring_mask and add VEBOX support. v3: Fold in update from Damien. v4: Add GEN_DEFAULT_PIPEOFFSETS and IVB_CURSOR_OFFSETS v5: set no-LLC (imre) Signed-off-by: Damien Lespiau (v1,v4) Signed-off-by: Daniel Vetter (v4) Signed-off-by: Imre Deak Reviewed-by: Antti Koskipää Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.c | 14 +++++++++++++- include/drm/i915_pciids.h | 6 ++++++ 2 files changed, 19 insertions(+), 1 deletion(-) commit a25691c1f9674090fb66586cf4c5d60d3efdf339 Author: Vlad Dogaru Date: Fri Apr 3 15:03:02 2015 +0300 iio: accel: kxcjk1013: allow using an external trigger In its present state, the driver mandates that its buffer only be triggered by one of the device's own triggers (data ready or any motion). This is not always desirable, for example because the interrupt pins may not be wired in. Patch the driver to be able to accept using an external trigger, such as one based on hrtimer. When using such a trigger, we need to ensure that the device is powered on when the buffer is started. We do that by setting setup_ops for the buffer. Signed-off-by: Vlad Dogaru Reviewed-by: Daniel Baluta Signed-off-by: Jonathan Cameron drivers/iio/accel/kxcjk-1013.c | 38 +++++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 15 deletions(-) commit 53375103eae8dd6b717b170c69b72ac50fa01985 Author: Roberta Dobrescu Date: Sat Mar 28 21:43:08 2015 +0200 tools: iio: Add iio targets in tools Makefile This patch adds targets for building and cleaning iio tools to tools/Makefile. To build iio tools from the toplevel kernel directory one should call: $ make -C tools iio and for cleaning it $ make -C tools iio_clean Signed-off-by: Roberta Dobrescu Reviewed-by: Daniel Baluta Signed-off-by: Jonathan Cameron tools/Makefile | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 55314fc2b6eef23f173d5e14003b796e30fcc571 Author: Sujith Manoharan Date: Wed Apr 1 22:53:21 2015 +0300 ath10k: fix no-ack frame status Use the new IEEE80211_TX_STAT_NOACK_TRANSMITTED flag to indicate successful transmission of no-ack frames. This fixes multicast frame accounting. Signed-off-by: Sujith Manoharan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/htt.h | 1 + drivers/net/wireless/ath/ath10k/htt_rx.c | 2 ++ drivers/net/wireless/ath/ath10k/txrx.c | 9 +++++++-- 3 files changed, 10 insertions(+), 2 deletions(-) commit 6274cd410029aadcc4a93589783a9a899cf8befa Author: Yanbo Li Date: Wed Apr 1 22:53:21 2015 +0300 ath10k: change the fw stats access mask This fix the regerssion introduced after "ath10k_wmi_requests_stats() call to use more stat bits", both the 10.2.X FW and community FW 10.1.X will return time out when access the fw_stats with the STAT_VDEV and STAT_PDEV. Add the condition to use different fw_stats mask for different FW versions. Fixes: 7777d8c7ef6f ("ath10k: implement fw stats for wmi-tlv") Signed-off-by: Yanbo Li Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.c | 5 +++++ drivers/net/wireless/ath/ath10k/core.h | 1 + drivers/net/wireless/ath/ath10k/debug.c | 5 +---- 3 files changed, 7 insertions(+), 4 deletions(-) commit 15677a7dbe22976a5cb787a7352ac86bbd196cf1 Author: Michal Kazior Date: Wed Apr 1 22:53:20 2015 +0300 ath10k: fix static wep with more than 1 key in client mode The default keyidx callback may be called after more than 1 key is installed. This led to only 1 WEP key being reinstalled only. This caused Rxed traffic encrypted with other WEP keys to be dropped in client mode. Tested-by: Bartosz Markowski Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 41 +++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 19 deletions(-) commit 7c8cc7eb4f08d8de2cc2a4b093bad1499b47eb45 Author: Michal Kazior Date: Wed Apr 1 22:53:19 2015 +0300 ath10k: fix arvif->wep_keys clearing The variable should be cleared regardless of whether there's a peer associated with the key or not. This fixes case when user first associates with 2 WEP keys and then disconnects and connects with 1 WEP key. This resulted in WEP key count being 2 in the driver leading to default keyidx fixup failure. Tested-by: Bartosz Markowski Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) commit 5d5c8ec9e46c29f284316615ea8dea179bde4be6 Author: Michal Kazior Date: Wed Apr 1 22:53:19 2015 +0300 ath10k: replenish htc tx credits always There's always at most 2 credits and it makes little sense to set the ATH10K_HTC_FLAG_NEED_CREDIT_UPDATE flag conditionally. This seems to fix some random issues with tx credit starvation on WLAN.RM.2.0-00073 I've been seeing. Note: this isn't related to wmi mgmt tx. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/htc.c | 20 +------------------- 1 file changed, 1 insertion(+), 19 deletions(-) commit f42f8eb27e5077cb1881da8f006bff19a8924a9f Author: Michal Kazior Date: Wed Apr 1 22:53:19 2015 +0300 ath10k: fix insufficient tracing buffer size Some trace messages were truncated and a kernel splat could be seen in the log: WARNING: CPU: 3 PID: 0 at /devel/src/linux/drivers/net/wireless/ath/ath10k/./trace.h:114 ftrace_raw_event_ath10k_log_dbg+0x20e/0x220 [ath10k_core]() Modules linked in: ath10k_pci(O) ath10k_core(O) ath iwldvm iwlwifi [last unloaded: iwlwifi] CPU: 3 PID: 0 Comm: swapper/3 Tainted: G W O 4.0.0-rc3-wl-ath+ #703 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.7.5-20140531_083030-gandalf 04/01/2014 ffffffffa01d4cb0 ffff88001fd83998 ffffffff8191b86c ffffffff81e3b718 0000000000000000 ffff88001fd839d8 ffffffff8105573a ffff88001c0a5528 ffff88001bea9ae0 ffff88001c3dd940 00000000000d0018 ffff88001fd83a80 Call Trace: [] dump_stack+0x45/0x57 [] warn_slowpath_common+0x8a/0xc0 [] warn_slowpath_null+0x1a/0x20 [] ftrace_raw_event_ath10k_log_dbg+0x20e/0x220 [ath10k_core] [] ath10k_dbg+0xbb/0xd0 [ath10k_core] [] ? trace_clock_local+0x9/0x10 [] ath10k_wmi_event_service_ready+0x479/0x520 [ath10k_core] [] ? trace_buffer_unlock_commit+0x50/0x60 [] ath10k_wmi_tlv_op_rx+0x6b3/0x8b0 [ath10k_core] This could be reproduced with: trace-cmd record -e ath10k ifconfig wlan0 down ifconfig wlan0 up Fixes: 5c01aa3de918 ("ath10k: deduplicate wmi service ready logic") Fixes: ca996ec56608 ("ath10k: implement wmi-tlv backend") Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/trace.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 24ab13ef0c9cfbe91d644e5ecb8948c45283ce59 Author: Janusz Dziedzic Date: Wed Apr 1 22:53:18 2015 +0300 ath10k: disable burst mode Firmwares that indicate BURST_SERVICE as enabled could overwrite some wmm parameters (eg. txop). This could lead IOT and balancing issues. Hence disable this by default. Signed-off-by: Janusz Dziedzic Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit aa7471d228eb6dfddd0d201ea9746d6a2020972a Author: Jani Nikula Date: Wed Apr 1 11:15:21 2015 +0300 drm/i915: add i915 specific connector debugfs file for DPCD Occasionally it would be interesting to read some of the DPCD registers for debug purposes, without having to resort to logging. Add an i915 specific i915_dpcd debugfs file for DP and eDP connectors to dump parts of the DPCD. Currently the DPCD addresses to be dumped are statically configured, and more can be added trivially. The implementation also makes it relatively easy to add other i915 and connector specific debugfs files in the future, as necessary. This is currently i915 specific just because there's no generic way to do AUX transactions given just a drm_connector. However it's all pretty straightforward to port to other drivers. v2: Add more DPCD registers to dump. Signed-off-by: Jani Nikula Reviewed-by: Bob Paauwe Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_debugfs.c | 96 +++++++++++++++++++++++++++++++++++++ drivers/gpu/drm/i915/i915_drv.h | 1 + drivers/gpu/drm/i915/intel_dp.c | 2 + 3 files changed, 99 insertions(+) commit 51ce4db1749028b89a1f4a70bfa78b77df8795e7 Author: Rodrigo Vivi Date: Tue Mar 31 16:03:21 2015 -0700 drm/i915/bdw: WaProgramL3SqcReg1Default Program the default initial value of the L3SqcReg1 on BDW for performance v2: Default confirmed and using intel_ring_emit_wa as Mika pointed out. v3: Spec shows now a different value. It tells us to set to 0x784000 instead the 0x610000 that is there already. Also rebased after a long time so using WA_WRITE now. Cc: Mika Kuoppala Signed-off-by: Rodrigo Vivi Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_reg.h | 3 +++ drivers/gpu/drm/i915/intel_ringbuffer.c | 3 +++ 2 files changed, 6 insertions(+) commit 474d1ec4a3d7775b071e60fdbe431cae37b84ff3 Author: Sonika Jindal Date: Thu Apr 2 11:02:44 2015 +0530 drm/i915/skl: Enabling PSR2 SU with frame sync We make use of HW tracking for Selective update region and enable frame sync on sink. We use hardware's hardcoded data values for frame sync and GTC. v2: Add 3200x2000 resolution restriction with PSR2, move psr2_support to i915_psr struct, add aux_frame_sync to independently control aux frame sync, rename the TP2 TIME macro for 2500us (Rodrigo, Siva) v3: Moving the resolution restriction to intel_psr_enable so that we check it only once(Durga) Cc: Durgadoss R Cc: Rodrigo Vivi Signed-off-by: Sonika Jindal Reviewed-by: Durgadoss R Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 2 ++ drivers/gpu/drm/i915/i915_reg.h | 14 ++++++++++++++ drivers/gpu/drm/i915/intel_dp.c | 15 +++++++++++++++ drivers/gpu/drm/i915/intel_psr.c | 38 +++++++++++++++++++++++++++++++++++++- 4 files changed, 68 insertions(+), 1 deletion(-) commit 4a47132ff472a0c2c5441baeb50cf97f2580bc43 Author: David Howells Date: Tue Feb 24 10:05:29 2015 +0000 FS-Cache: Retain the netfs context in the retrieval op earlier Now that the retrieval operation may be disposed of by fscache_put_operation() before we actually set the context, the retrieval-specific cleanup operation can produce a NULL-pointer dereference when it tries to unconditionally clean up the netfs context. Given that it is expected that we'll get at least as far as the place where we currently set the context pointer and it is unlikely we'll go through the error handling paths prior to that point, retain the context right from the point that the retrieval op is allocated. Concomitant to this, we need to retain the cookie pointer in the retrieval op also so that we can call the netfs to release its context in the release method. In addition, we might now get into fscache_release_retrieval_op() with the op only initialised. To this end, set the operation to DEAD only after the release method has been called and skip the n_pages test upon cleanup if the op is still in the INITIALISED state. Without these changes, the following oops might be seen: BUG: unable to handle kernel NULL pointer dereference at 00000000000000b8 ... RIP: 0010:[] fscache_release_retrieval_op+0xae/0x100 ... Call Trace: [] fscache_put_operation+0x117/0x2e0 [] __fscache_read_or_alloc_pages+0x351/0x3ac [] __nfs_readpages_from_fscache+0x59/0xbf [nfs] [] nfs_readpages+0x10c/0x185 [nfs] [] ? alloc_pages_current+0x119/0x13e [] ? __page_cache_alloc+0xfb/0x10a [] __do_page_cache_readahead+0x188/0x22c [] ondemand_readahead+0x29e/0x2af [] page_cache_sync_readahead+0x38/0x3a [] generic_file_read_iter+0x1a2/0x55a [] ? nfs_revalidate_mapping+0xd6/0x288 [nfs] [] nfs_file_read+0x49/0x70 [nfs] [] new_sync_read+0x78/0x9c [] __vfs_read+0x13/0x38 [] vfs_read+0x95/0x121 [] SyS_read+0x4c/0x8a [] system_call_fastpath+0x12/0x17 Signed-off-by: David Howells Reviewed-by: Steve Dickson Acked-by: Jeff Layton fs/fscache/operation.c | 2 +- fs/fscache/page.c | 20 ++++++++++---------- include/linux/fscache-cache.h | 1 + 3 files changed, 12 insertions(+), 11 deletions(-) commit d3b97ca4a99e4e6c78f5a21c968eadf5c8ba9971 Author: David Howells Date: Tue Feb 24 10:05:29 2015 +0000 FS-Cache: The operation cancellation method needs calling in more places Any time an incomplete operation is cancelled, the operation cancellation function needs to be called to clean up. This is currently being passed directly to some of the functions that might want to call it, but not all. Instead, pass the cancellation method pointer to the fscache_operation_init() and have that cache it in the operation struct. Further, plug in a dummy cancellation handler if the caller declines to set one as this allows us to call the function unconditionally (the extra overhead isn't worth bothering about as we don't expect to be calling this typically). The cancellation method must thence be called everywhere the CANCELLED state is set. Note that we call it *before* setting the CANCELLED state such that the method can use the old state value to guide its operation. fscache_do_cancel_retrieval() needs moving higher up in the sources so that the init function can use it now. Without this, the following oops may be seen: FS-Cache: Assertion failed FS-Cache: 3 == 0 is false ------------[ cut here ]------------ kernel BUG at ../fs/fscache/page.c:261! ... RIP: 0010:[] fscache_release_retrieval_op+0x77/0x100 [] fscache_put_operation+0x114/0x2da [] __fscache_read_or_alloc_pages+0x358/0x3b3 [] __nfs_readpages_from_fscache+0x59/0xbf [nfs] [] nfs_readpages+0x10c/0x185 [nfs] [] ? alloc_pages_current+0x119/0x13e [] ? __page_cache_alloc+0xfb/0x10a [] __do_page_cache_readahead+0x188/0x22c [] ondemand_readahead+0x29e/0x2af [] page_cache_sync_readahead+0x38/0x3a [] generic_file_read_iter+0x1a2/0x55a [] ? nfs_revalidate_mapping+0xd6/0x288 [nfs] [] nfs_file_read+0x49/0x70 [nfs] [] new_sync_read+0x78/0x9c [] __vfs_read+0x13/0x38 [] vfs_read+0x95/0x121 [] SyS_read+0x4c/0x8a [] system_call_fastpath+0x12/0x17 The assertion is showing that the remaining number of pages (n_pages) is not 0 when the operation is being released. Signed-off-by: David Howells Reviewed-by: Steve Dickson Acked-by: Jeff Layton fs/fscache/cookie.c | 5 ++--- fs/fscache/internal.h | 7 ++----- fs/fscache/object.c | 3 ++- fs/fscache/operation.c | 31 ++++++++++++++++++++++------- fs/fscache/page.c | 46 +++++++++++++++++++++---------------------- include/linux/fscache-cache.h | 5 +++++ 6 files changed, 57 insertions(+), 40 deletions(-) commit a39caadf06879017cb9a8c5c5cb4fc4ccb213275 Author: David Howells Date: Wed Feb 25 14:22:40 2015 +0000 FS-Cache: Put an aborted initialised op so that it is accounted correctly Call fscache_put_operation() or a wrapper on any op that has gone through fscache_operation_init() so that the accounting shown in /proc is done correctly, specifically fscache_n_op_release. fscache_put_operation() therefore now allows an op in the INITIALISED state as well as in the CANCELLED and COMPLETE states. Note that this means that an operation can get put that doesn't have its ->object pointer filled in, so anything that depends on the object needs to be conditional in fscache_put_operation(). Signed-off-by: David Howells Reviewed-by: Steve Dickson Acked-by: Jeff Layton fs/fscache/operation.c | 54 ++++++++++++++++++++++++++------------------------ fs/fscache/page.c | 14 ++++++------- 2 files changed, 35 insertions(+), 33 deletions(-) commit 73c04a47bf79770fbe7f3cf515f5831fccab88ee Author: David Howells Date: Wed Feb 25 14:07:25 2015 +0000 FS-Cache: Fix cancellation of in-progress operation Cancellation of an in-progress operation needs to update the relevant counters and start any operations that are pending waiting on this one. Signed-off-by: David Howells Reviewed-by: Steve Dickson Acked-by: Jeff Layton fs/fscache/operation.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 03cdd0e4b9a98ae995b81cd8f58e992ec3f44ae2 Author: David Howells Date: Wed Feb 25 13:21:15 2015 +0000 FS-Cache: Count the number of initialised operations Count and display through /proc/fs/fscache/stats the number of initialised operations. Signed-off-by: David Howells Reviewed-by: Steve Dickson Acked-by: Jeff Layton Documentation/filesystems/caching/fscache.txt | 3 ++- fs/fscache/internal.h | 1 + fs/fscache/operation.c | 1 + fs/fscache/stats.c | 4 +++- 4 files changed, 7 insertions(+), 2 deletions(-) commit 1339ec98e32b4bc8efb6fbb71c006a465130aaba Author: David Howells Date: Wed Feb 25 13:26:39 2015 +0000 FS-Cache: Out of line fscache_operation_init() Out of line fscache_operation_init() so that it can access internal FS-Cache features, such as stats, in a later commit. Signed-off-by: David Howells Reviewed-by: Steve Dickson Acked-by: Jeff Layton fs/fscache/operation.c | 22 ++++++++++++++++++++++ include/linux/fscache-cache.h | 24 +++--------------------- 2 files changed, 25 insertions(+), 21 deletions(-) commit 418b7eb9e1011bc11220a03ad0045885d04698d2 Author: David Howells Date: Tue Feb 24 10:05:28 2015 +0000 FS-Cache: Permit fscache_cancel_op() to cancel in-progress operations too Currently, fscache_cancel_op() only cancels pending operations - attempts to cancel in-progress operations are ignored. This leads to a problem in fscache_wait_for_operation_activation() whereby the wait is terminated, but the object has been killed. The check at the end of the function now triggers because it's no longer contingent on the cache having produced an I/O error since the commit that fixed the logic error in fscache_object_is_dead(). The result of the check is that it tries to cancel the operation - but since the object may not be pending by this point, the cancellation request may be ignored - with the result that the the object is just put by the caller and fscache_put_operation has an assertion failure because the operation isn't in either the COMPLETE or the CANCELLED states. To fix this, we permit in-progress ops to be cancelled under some circumstances. The bug results in an oops that looks something like this: FS-Cache: fscache_wait_for_operation_activation() = -ENOBUFS [obj dead 3] FS-Cache: FS-Cache: Assertion failed FS-Cache: 3 == 5 is false ------------[ cut here ]------------ kernel BUG at ../fs/fscache/operation.c:432! ... RIP: 0010:[] fscache_put_operation+0xf2/0x2cd Call Trace: [] __fscache_read_or_alloc_pages+0x2ec/0x3b3 [] __nfs_readpages_from_fscache+0x59/0xbf [nfs] [] nfs_readpages+0x10c/0x185 [nfs] [] ? alloc_pages_current+0x119/0x13e [] ? __page_cache_alloc+0xfb/0x10a [] __do_page_cache_readahead+0x188/0x22c [] ondemand_readahead+0x29e/0x2af [] page_cache_sync_readahead+0x38/0x3a [] generic_file_read_iter+0x1a2/0x55a [] ? nfs_revalidate_mapping+0xd6/0x288 [nfs] [] nfs_file_read+0x49/0x70 [nfs] [] new_sync_read+0x78/0x9c [] __vfs_read+0x13/0x38 [] vfs_read+0x95/0x121 [] SyS_read+0x4c/0x8a [] system_call_fastpath+0x12/0x17 Signed-off-by: David Howells Reviewed-by: Steve Dickson Acked-by: Jeff Layton fs/fscache/internal.h | 3 ++- fs/fscache/operation.c | 20 +++++++++++++++++--- fs/fscache/page.c | 4 ++-- 3 files changed, 21 insertions(+), 6 deletions(-) commit 87021526300f1a292dd966e141e183630ac95317 Author: David Howells Date: Tue Feb 24 10:52:51 2015 +0000 FS-Cache: fscache_object_is_dead() has wrong logic, kill it fscache_object_is_dead() returns true only if the object is marked dead and the cache got an I/O error. This should be a logical OR instead. Since two of the callers got split up into handling for separate subcases, expand the other callers and kill the function. This is probably the right thing to do anyway since one of the subcases isn't about the object at all, but rather about the cache. Signed-off-by: David Howells Reviewed-by: Steve Dickson Acked-by: Jeff Layton fs/fscache/cookie.c | 3 ++- fs/fscache/page.c | 6 ++++-- include/linux/fscache-cache.h | 6 ------ 3 files changed, 6 insertions(+), 9 deletions(-) commit f09b443d0e09f37121c55d7f83056f6ebff6ab4f Author: David Howells Date: Tue Feb 24 10:05:28 2015 +0000 FS-Cache: Synchronise object death state change vs operation submission When an object is being marked as no longer live, do this under the object spinlock to prevent a race with operation submission targeted on that object. The problem occurs due to the following pair of intertwined sequences when the cache tries to create an object that would take it over the hard available space limit: NETFS INTERFACE =============== (A) The netfs calls fscache_acquire_cookie(). object creation is deferred to the object state machine and the netfs is allowed to continue. OBJECT STATE MACHINE KTHREAD ============================ (1) The object is looked up on disk by fscache_look_up_object() calling cachefiles_walk_to_object(). The latter finds that the object is not yet represented on disk and calls fscache_object_lookup_negative(). (2) fscache_object_lookup_negative() sets FSCACHE_COOKIE_NO_DATA_YET and clears FSCACHE_COOKIE_LOOKING_UP, thus allowing the netfs to start queuing read operations. (B) The netfs calls fscache_read_or_alloc_pages(). This calls fscache_wait_for_deferred_lookup() which sees FSCACHE_COOKIE_LOOKING_UP become clear, allowing the read to begin. (C) A read operation is set up and passed to fscache_submit_op() to deal with. (3) cachefiles_walk_to_object() calls cachefiles_has_space(), which fails (or one of the file operations to create stuff fails). cachefiles returns an error to fscache. (4) fscache_look_up_object() transits to the LOOKUP_FAILURE state, (5) fscache_lookup_failure() sets FSCACHE_OBJECT_LOOKED_UP and FSCACHE_COOKIE_UNAVAILABLE and clears FSCACHE_COOKIE_LOOKING_UP then transits to the KILL_OBJECT state. (6) fscache_kill_object() clears FSCACHE_OBJECT_IS_LIVE in an attempt to reject any further requests from the netfs. (7) object->n_ops is examined and found to be 0. fscache_kill_object() transits to the DROP_OBJECT state. (D) fscache_submit_op() locks the object spinlock, sees if it can dispatch the op immediately by calling fscache_object_is_active() - which fails since FSCACHE_OBJECT_IS_AVAILABLE has not yet been set. (E) fscache_submit_op() then tests FSCACHE_OBJECT_LOOKED_UP - which is set. It then queues the object and increments object->n_ops. (8) fscache_drop_object() releases the object and eventually fscache_put_object() calls cachefiles_put_object() which suffers an assertion failure here: ASSERTCMP(object->fscache.n_ops, ==, 0); Locking the object spinlock in step (6) around the clearance of FSCACHE_OBJECT_IS_LIVE ensures that the the decision trees in fscache_submit_op() and fscache_submit_exclusive_op() don't see the IS_LIVE flag being cleared mid-decision: either the op is queued before step (7) - in which case fscache_kill_object() will see n_ops>0 and will deal with the op - or the op will be rejected. This, combined with rejecting op submission if the target object is dying, fix the problem. The problem shows up as the following oops: CacheFiles: Assertion failed CacheFiles: 1 == 0 is false ------------[ cut here ]------------ kernel BUG at ../fs/cachefiles/interface.c:339! ... RIP: 0010:[] [] cachefiles_put_object+0x2a4/0x301 [cachefiles] ... Call Trace: [] fscache_put_object+0x18/0x21 [fscache] [] fscache_object_work_func+0x3ba/0x3c9 [fscache] [] process_one_work+0x226/0x441 [] worker_thread+0x273/0x36b [] ? rescuer_thread+0x2e1/0x2e1 [] kthread+0x10e/0x116 [] ? kthread_create_on_node+0x1bb/0x1bb [] ret_from_fork+0x7c/0xb0 [] ? kthread_create_on_node+0x1bb/0x1bb Signed-off-by: David Howells Reviewed-by: Steve Dickson Acked-by: Jeff Layton fs/fscache/object.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) commit 6515d1dbf424c5c3b94d44e9c7f581026e7fc0d3 Author: David Howells Date: Wed Feb 25 11:53:57 2015 +0000 FS-Cache: Handle a new operation submitted against a killed object Reject new operations that are being submitted against an object if that object has failed its lookup or creation states or has been killed by the cache backend for some other reason, such as having been culled. Signed-off-by: David Howells Reviewed-by: Steve Dickson Acked-by: Jeff Layton fs/fscache/object.c | 2 ++ fs/fscache/operation.c | 6 ++++++ 2 files changed, 8 insertions(+) commit 30ceec6284129662efc3a1e7675b2bd857a046fe Author: David Howells Date: Tue Feb 24 10:05:27 2015 +0000 FS-Cache: When submitting an op, cancel it if the target object is dying When submitting an operation, prefer to cancel the operation immediately rather than queuing it for later processing if the object is marked as dying (ie. the object state machine has reached the KILL_OBJECT state). Whilst we're at it, change the series of related test_bit() calls into a READ_ONCE() and bitwise-AND operators to reduce the number of load instructions (test_bit() has a volatile address). Signed-off-by: David Howells Reviewed-by: Steve Dickson Acked-by: Jeff Layton fs/fscache/operation.c | 47 +++++++++++++++++++++++++++---------------- include/linux/fscache-cache.h | 9 +++++++-- 2 files changed, 37 insertions(+), 19 deletions(-) commit 3c3059841a9b99fa8dd8d878607deceec1e363e9 Author: David Howells Date: Tue Feb 24 10:39:28 2015 +0000 FS-Cache: Move fscache_report_unexpected_submission() to make it more available Move fscache_report_unexpected_submission() up within operation.c so that it can be called from fscache_submit_exclusive_op() too. Signed-off-by: David Howells Reviewed-by: Steve Dickson Acked-by: Jeff Layton fs/fscache/operation.c | 74 +++++++++++++++++++++++++------------------------- 1 file changed, 37 insertions(+), 37 deletions(-) commit e57e05716d0b6272df8650e310c6a4e7920d8617 Author: Michal Kazior Date: Tue Mar 24 13:14:03 2015 +0000 ath10k: fix IBSS scanning on wmi-tlv and qca6174 WLAN.RM.2.0-00073 firmware requires self-peer to be created prior to issuing scan command. Without this wmi-tlv with qca6174 firmware crashes after submitting a scan request. Creating the peer as soon as add_interface() shouldn't be a problem. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 31 ++++++++++++------------------- 1 file changed, 12 insertions(+), 19 deletions(-) commit 3ae542257476e183a368055cbd9f67ba88fc8d01 Author: Michal Kazior Date: Tue Mar 31 10:49:20 2015 +0000 ath10k: clean up set_bitrate_mask handling The code was a bit convoluted. Clean it up and prepare for future changes. While at it this fixes incorrect verification of 'single nss' case when ss2 rates were missing while ss1 and ss3 were requested resulting in nss=3 being set: iw wlan1 set bitrates legacy-5 ht-mcs-5 0 1 2 3 4 5 6 7 16 17 18 19 20 21 22 23 vht-mcs-5 1:0-9 3:0-9 Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.h | 3 - drivers/net/wireless/ath/ath10k/mac.c | 388 +++++++++++++-------------------- 2 files changed, 146 insertions(+), 245 deletions(-) commit 039a0051ec1aeb327a6d1e2c7a9e4666ef706ba1 Author: Michal Kazior Date: Tue Mar 31 10:26:26 2015 +0000 ath10k: allocate fw resources for iface combinations The number of 3 vdevs wasn't enough to handle the worst case for interface combinations in practice. wpa_supplicant may need up to 4 vifs to have 2 vifs actually connected, i.e. p2pdev + client + 2x p2p (either p2p client or p2p go). This fixes worst case warning: Free vdev map is empty, no more interfaces allowed. This keeps the ability to associate 32 stations in AP mode at the cost of not being able to guarantee that under all circumstances, i.e. some combinations may consume additional fw peer entries for internal purposes leaving less resource for stations in AP mode. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/hw.h | 6 ++---- drivers/net/wireless/ath/ath10k/wmi-tlv.c | 8 ++++---- 2 files changed, 6 insertions(+), 8 deletions(-) commit cf32784c8f0acba2e61fa7e03884a9695b69aac1 Author: Michal Kazior Date: Tue Mar 31 10:26:25 2015 +0000 ath10k: enable multi-channel on supported devices This effectively enables multi-channel operation on qca6174 WLAN.RM.2.0-00073 (and possibly any newer firmware release for qca6174). This adds appopriate interface combinations and initializes firmware channel scheduler. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 81 ++++++++++++++++++++++++++++++++++- 1 file changed, 80 insertions(+), 1 deletion(-) commit b4aa539dd8f2e086f7b03e0781ec85897913c3cb Author: Michal Kazior Date: Tue Mar 31 10:26:24 2015 +0000 ath10k: implement tx pause wmi event qca6174 wmi-tlv firmware defines a new wmi event for host tx pausing (i.e. stop/wake tx queues). Map these events to ath10k/mac80211 tx queue control. This is important for multi-channel throughput performance. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 90 +++++++++++++++++++++++++++++++ drivers/net/wireless/ath/ath10k/mac.h | 7 +++ drivers/net/wireless/ath/ath10k/wmi-tlv.c | 48 +++++++++++++++++ drivers/net/wireless/ath/ath10k/wmi-tlv.h | 42 +++++++++++++++ 4 files changed, 187 insertions(+) commit 96d828d45e166d6d6cc240b7ef082d312d6f579f Author: Michal Kazior Date: Tue Mar 31 10:26:23 2015 +0000 ath10k: rework tx queue locking Tx queue locking was very simple until now. Multi-channel support will require a more flexible and fine grained control. This introduces a per-hw and per-vif (each with a bitmask of reasons) tx queue locking. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.h | 8 +++ drivers/net/wireless/ath/ath10k/htt_tx.c | 4 +- drivers/net/wireless/ath/ath10k/mac.c | 88 +++++++++++++++++++++++++++++++- drivers/net/wireless/ath/ath10k/mac.h | 5 ++ 4 files changed, 101 insertions(+), 4 deletions(-) commit 5b272e30a42aa581cd5d544d9e7193d0bd55c823 Author: Michal Kazior Date: Tue Mar 31 10:26:22 2015 +0000 ath10k: implement adaptive qcs command This command will be used to configure multi-channel scheduler in firmware. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/wmi-ops.h | 16 ++++++++++++++++ drivers/net/wireless/ath/ath10k/wmi-tlv.c | 30 ++++++++++++++++++++++++++++++ drivers/net/wireless/ath/ath10k/wmi-tlv.h | 4 ++++ drivers/net/wireless/ath/ath10k/wmi.c | 3 +++ drivers/net/wireless/ath/ath10k/wmi.h | 1 + 5 files changed, 54 insertions(+) commit 500ff9f9389dcf4836e2f3b0cd355d16b7860e74 Author: Michal Kazior Date: Tue Mar 31 10:26:21 2015 +0000 ath10k: implement chanctx API The chanctx API will allow ath10k to support multi-channel operation. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.h | 10 + drivers/net/wireless/ath/ath10k/htt_rx.c | 100 ++++- drivers/net/wireless/ath/ath10k/mac.c | 699 +++++++++++++++++++++++++------ drivers/net/wireless/ath/ath10k/mac.h | 2 + drivers/net/wireless/ath/ath10k/wmi.c | 13 +- 5 files changed, 699 insertions(+), 125 deletions(-) commit 0a27347efda856eaa375cfb467caeb25f129a026 Author: Michal Kazior Date: Tue Mar 31 10:26:20 2015 +0000 ath10k: allow empty ssid vdev config It doesn't make much sense to reject a valid firmware configuration combination. Since SSID isn't known early on it might make sense to allow driver to start vdev without SSID and restart it later. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/wmi-tlv.c | 2 -- drivers/net/wireless/ath/ath10k/wmi.c | 2 -- 2 files changed, 4 deletions(-) commit d600a6d754254079d4af8ac6003747f662a36218 Author: Michal Kazior Date: Tue Mar 24 12:40:17 2015 +0000 ath10k: don't call quiet mode if it's not implemented qca6174 and wmi-tlv doesn't have quiet mode implemented. Don't even attempt to call it. This fixes a warning when bringing first interface up: failed to set quiet mode period 100 duarion 0 enabled 0 ret -95 Fixes: 8515b5c79a54 ("ath10k: configure thermal throttle while powering up") Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/thermal.c | 3 +++ 1 file changed, 3 insertions(+) commit c94aa7ef4647b81bc110300e0a1be777961d7a3a Author: Michal Kazior Date: Tue Mar 24 12:38:11 2015 +0000 ath10k: fix survey reporting Number of channels is stored in a separate macro in a header file and channel list is constructed independently. The macro is used to define survey array. This fixes a recent regression introduced after adding support for 144 channel. The regression would lead to a warning and incomplete survey data on channel 165: chan info: invalid frequency 5825 (idx 38 out of bounds) Also make sure to enforce the sizes and avoid this kind of problem in the future. Fixes: 4a7898fed5f3 ("ath10k: enable channel 144 on 5GHz band") Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.h | 2 +- drivers/net/wireless/ath/ath10k/mac.c | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) commit 9eea56895faa397ecb5bec99790613a36b6ad1e3 Author: Nicholas Mc Guire Date: Mon Mar 30 15:39:21 2015 +0300 ath10k: harmonize error case handling in ath10k_core_start All of the bringup/init functions called in ath10k_core_start return 0 on success and != 0 on failure. ath10k_wmi_wait_for_service_ready(), ath10k_wmi_wait_for_unified_ready() and their call sites were adjusted to fit this model. The return type of wait_for_completion_timeout is unsigned long not int so ath10k_wmi_wait_for_service_ready() and ath10k_wmi_wait_for_unified_ready() were fixed up accordingly. Signed-off-by: Nicholas Mc Guire Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.c | 6 ++---- drivers/net/wireless/ath/ath10k/wmi.c | 20 ++++++++++++-------- 2 files changed, 14 insertions(+), 12 deletions(-) commit a7a42849cdc82e42cb5c8404b8a34b1601d51135 Author: Nicholas Mc Guire Date: Mon Mar 30 15:39:21 2015 +0300 ath10k: core: match wait_for_completion_timeout return type Return type of wait_for_completion_timeout is unsigned long not int. An appropriately named unsigned long is added and the assignments fixed up. Signed-off-by: Nicholas Mc Guire Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit f439539bd006855359add6fd92c04016c64c292d Author: Nicholas Mc Guire Date: Mon Mar 30 15:39:20 2015 +0300 ath10k: thermal: match wait_for_completion_timeout return type Return type of wait_for_completion_timeout is unsigned long not int. An appropriately named unsigned long is added and the assignments fixed up. Signed-off-by: Nicholas Mc Guire Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/thermal.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 6e8d5438bd01f32aea4281dcda6e2ab192cb333c Author: Nicholas Mc Guire Date: Mon Mar 30 15:39:20 2015 +0300 ath10k: debug: match wait_for_completion_timeout return type Return type of wait_for_completion_timeout is unsigned long not int. An appropriately named unsigned long is added and the assignments fixed up. Missing spaces 1*HZ -> 1 * HZ were also added along the way. Signed-off-by: Nicholas Mc Guire Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/debug.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit 7c377c3de588a34ddcc4dbe2547b925b3f2efacc Author: Nicholas Mc Guire Date: Mon Mar 30 15:39:20 2015 +0300 ath10k: htc: match wait_for_completion_timeout return type Return type of wait_for_completion_timeout is unsigned long not int. An appropriately named unsigned long is added and the assignments fixed up. Signed-off-by: Nicholas Mc Guire Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/htc.c | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) commit 8e9904f5b9e5e0a126020211218c401d601ef74b Author: Nicholas Mc Guire Date: Mon Mar 30 15:39:19 2015 +0300 ath10k: mac: match wait_for_completion_timeout return type Return type of wait_for_completion_timeout is unsigned long not int. An appropriately named unsigned long is added, respectively 'ret' renamed, and the assignments fixed up. Signed-off-by: Nicholas Mc Guire Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) commit 2d1070b21e004609a5bebafdb4303bb021f5477c Author: Chris Wilson Date: Wed Apr 1 10:36:56 2015 +0100 drm/i915: Make debugfs/i915_gem_request more friendly Count the number of requests in a ring for the user and show who submitted them. Signed-off-by: Chris Wilson Reviewed-by: Mika Kuoppala Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_debugfs.c | 39 ++++++++++++++++++++++++------------- 1 file changed, 26 insertions(+), 13 deletions(-) commit f61cccf3e9a4f7deae633b6c073a6e40ef8e86f3 Author: Ander Conselvan de Oliveira Date: Tue Mar 31 11:35:00 2015 +0300 drm/i915: Set best_encoder field of connector_state also when disabling The best_encoder field of connector_state wasn't properly set when a connector was being disabled, leading to an incosistent atomic state. For now, this doesn't cause anything to blow up, because everywhere we're using connector_state->best_encoder there is a check for connector_state->crtc which is properly initialized. I reached the issue while testing some patches I haven't sent out yet, that remove the usage of intel_connector->new_encoder from check_digital_port_conflicts(). In that case, it would be possible to trigger the converted version of the WARN in that function. Signed-off-by: Ander Conselvan de Oliveira [danvet: Add commit message augmentation Ander supplied.] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 1 + 1 file changed, 1 insertion(+) commit 88ac7939d2a6cb67e338e72cf6aaff2ae526b026 Author: Jani Nikula Date: Fri Mar 27 00:20:22 2015 +0200 drm/i915: base gmbus pin validity check on the gmbus pin map array This will be helpful for adding future platforms. It is better to keep the information in the single point of truth (the table) instead of duplicating it into the validity function. While at it, add dev_priv parameter to the function, also to prepare for adding future platform support. Signed-off-by: Jani Nikula Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 6 ++---- drivers/gpu/drm/i915/intel_bios.c | 2 +- drivers/gpu/drm/i915/intel_dvo.c | 2 +- drivers/gpu/drm/i915/intel_i2c.c | 14 ++++++++++---- drivers/gpu/drm/i915/intel_lvds.c | 2 +- drivers/gpu/drm/i915/intel_sdvo.c | 3 ++- 6 files changed, 17 insertions(+), 12 deletions(-) commit 5ea6e5e36ee54a83dfef9739f006a6a91d00e7fe Author: Jani Nikula Date: Wed Apr 1 10:55:04 2015 +0300 drm/i915: index gmbus tables using the pin pair number Index the gmbus tables directly using the pin instead of having a confusing "port = i + 1" mapping. This finishes off removing the "gmbus port" as a notion, and leaves us with just the "gmbus pin". As pin 0 is invalid by definition and the gmbus tables will have a gap at that index, add pin validity check to all the loops. This will be benefitial for supporting platforms that have different numbers of pins, or gaps. v2: s/GMBUS_PIN_MAX/GMBUS_NUM_PINS/ (Ville, Daniel) Reviewed-by: Ville Syrjälä Signed-off-by: Jani Nikula Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 3 +- drivers/gpu/drm/i915/i915_reg.h | 2 +- drivers/gpu/drm/i915/intel_i2c.c | 65 +++++++++++++++++++++++----------------- 3 files changed, 40 insertions(+), 30 deletions(-) commit 0184df465efc3b0a09e6999437ca4925567acf28 Author: Jani Nikula Date: Fri Mar 27 00:20:20 2015 +0200 drm/i915: refer to pin instead of port in the intel_i2c.c interfaces Rename intel_gmbus_is_port_valid to intel_gmbus_is_valid_pin, and rename port parameters to pin as well. This matches usage all around, as usually a pin is passed to the validity check function. No functional changes. Signed-off-by: Jani Nikula Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 8 ++++---- drivers/gpu/drm/i915/intel_bios.c | 2 +- drivers/gpu/drm/i915/intel_dvo.c | 2 +- drivers/gpu/drm/i915/intel_i2c.c | 8 ++++---- drivers/gpu/drm/i915/intel_lvds.c | 2 +- drivers/gpu/drm/i915/intel_sdvo.c | 2 +- 6 files changed, 12 insertions(+), 12 deletions(-) commit 988c70156ce1ae146e4105a3d21ec16c5894162b Author: Jani Nikula Date: Fri Mar 27 00:20:19 2015 +0200 drm/i915: rename GMBUS_PORT_* macros as GMBUS_PIN_* The specs refer to pin pairs. Start moving towards using pin rather than port all around to avoid confusion. No functional changes. Signed-off-by: Jani Nikula Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 2 +- drivers/gpu/drm/i915/i915_reg.h | 20 ++++++++++---------- drivers/gpu/drm/i915/intel_bios.c | 2 +- drivers/gpu/drm/i915/intel_crt.c | 2 +- drivers/gpu/drm/i915/intel_dvo.c | 8 ++++---- drivers/gpu/drm/i915/intel_hdmi.c | 8 ++++---- drivers/gpu/drm/i915/intel_lvds.c | 2 +- drivers/gpu/drm/i915/intel_sdvo.c | 2 +- 8 files changed, 23 insertions(+), 23 deletions(-) commit dbe4646d6e3467adbe2ec8dbe6b7ceea57dee2ec Author: John Harrison Date: Thu Mar 19 12:30:09 2015 +0000 drm/i915: Fix for ringbuf space wait in LRC mode The legacy and LRC code paths have an almost identical procedure for waiting for space in the ring buffer. They both search for a request in the free list that will advance the tail to a point where sufficient space is available. They then wait for that request, retire it and recalculate the free space value. Unfortunately, a bug in the LRC side meant that the resulting free space might not be as large as expected and indeed, might not be sufficient. This is because it was testing against the value of request->tail not request->postfix. Whereas, when a request is retired, ringbuf->tail is updated to req->postfix not req->tail. Another significant difference between the two is that the LRC one did not trust the wait for request to work! It redid the is there enough space available test and would fail the call if insufficient. Whereas, the legacy version just said 'return 0' - it assumed the preceeding code works. This difference meant that the LRC version still worked even with the bug - it just fell back to the polling wait path. For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Thomas Daniel Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_lrc.c | 10 ++++++---- drivers/gpu/drm/i915/intel_ringbuffer.c | 10 ++++++---- 2 files changed, 12 insertions(+), 8 deletions(-) commit 6689cb2b62065b5417aeda13d57d61b437b2126e Author: John Harrison Date: Thu Mar 19 12:30:08 2015 +0000 drm/i915: Move common request allocation code into a common function The request allocation code is largely duplicated between legacy mode and execlist mode. The actual difference between the two versions of the code is pretty minimal. This patch moves the common code out into a separate function. This is then called by the execution specific version prior to setting up the one different value. For: VIZ-5190 Signed-off-by: John Harrison Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 2 ++ drivers/gpu/drm/i915/i915_gem.c | 37 +++++++++++++++++++++++++++++++ drivers/gpu/drm/i915/intel_lrc.c | 39 +++++++-------------------------- drivers/gpu/drm/i915/intel_lrc.h | 2 ++ drivers/gpu/drm/i915/intel_ringbuffer.c | 28 +++-------------------- drivers/gpu/drm/i915/intel_ringbuffer.h | 2 ++ 6 files changed, 54 insertions(+), 56 deletions(-) commit bc0dce3fd0526215aa781c28069519d126d50129 Author: John Harrison Date: Thu Mar 19 12:30:07 2015 +0000 drm/i915: Make intel_logical_ring_begin() static The only usage of intel_logical_ring_begin() is within intel_lrc.c so it can be made static. To avoid a forward declaration at the top of the file, it and bunch of other functions have been shuffled upwards. For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_lrc.c | 474 +++++++++++++++++++-------------------- drivers/gpu/drm/i915/intel_lrc.h | 3 - 2 files changed, 237 insertions(+), 240 deletions(-) commit f3dc74c0e17b712cbcb4688a28d27df3fa8644a9 Author: John Harrison Date: Thu Mar 19 12:30:06 2015 +0000 drm/i915: Rename 'do_execbuf' to 'execbuf_submit' The submission portion of the execbuffer code path was abstracted into a function pointer indirection as part of the legacy vs execlist work. The two implementation functions are called 'i915_gem_ringbuffer_submission' and 'intel_execlists_submission' but the pointer was called 'do_execbuf'. There is already a 'i915_gem_do_execbuffer' function (which is what calls the pointer indirection). The name of the pointer is therefore considered to be backwards and should be changed. This patch renames it to 'execbuf_submit' which is hopefully a bit clearer. For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 14 +++++++------- drivers/gpu/drm/i915/i915_gem.c | 4 ++-- drivers/gpu/drm/i915/i915_gem_execbuffer.c | 6 +++--- 3 files changed, 12 insertions(+), 12 deletions(-) commit 1652d19e66c2dd118bd263ccba2a951b7946a2bb Author: Ville Syrjälä Date: Tue Mar 31 14:12:01 2015 +0300 drm/i915: Convert the ddi cdclk code to get_display_clock_speed Unify the HSW/BDW/SKL cdclk extraction code to conform to the same .get_display_clock_speed() mold that all the other platforms use. v2: Update due to SKL code getting added v3: Rebase on top of -nightly (introduction of intel_audio.c) (Mika Kahola) Signed-off-by: Ville Syrjälä Signed-off-by: Mika Kahola Reviewed-by: Damien Lespiau [danvet: Add v3 note as suggested by Damien.] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_audio.c | 3 +- drivers/gpu/drm/i915/intel_ddi.c | 101 +---------------------------------- drivers/gpu/drm/i915/intel_display.c | 98 ++++++++++++++++++++++++++++++++- drivers/gpu/drm/i915/intel_dp.c | 2 +- drivers/gpu/drm/i915/intel_drv.h | 1 - drivers/gpu/drm/i915/intel_pm.c | 2 +- 6 files changed, 102 insertions(+), 105 deletions(-) commit 469d4b2a4ed7a255ffef31fad9d56bb6f7ac1213 Author: Ville Syrjälä Date: Tue Mar 31 14:11:59 2015 +0300 drm/i915: Simplify ilk_get_aux_clock_divider Now that we are "extracting" the cdclk frequency on ILK-IVB we can also simplify ilk_get_aux_clock_divider() to calculate the divider based on cdclk instead of hardcoding the values. Signed-off-by: Ville Syrjälä Signed-off-by: Mika Kahola Reviewed-by: Damien Lespiau Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_dp.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit a7c66cd86ae0a2377b6efda56b93b26ce1f4322e Author: Ville Syrjälä Date: Tue Mar 31 14:11:56 2015 +0300 drm/i915: Assume 400MHz cdclk for the rest of gen4-7 We don't currently have cdclk extraction code for 965g,snb,ivb. Let's assume 400 MHz until we know better. That seems to match hints in various vague documents. Whether that's good enough is not entirely clear. Signed-off-by: Ville Syrjälä Signed-off-by: Mika Kahola Acked-by: Damien Lespiau Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit b37a6434cfa9477e6e5cb386e7e3d135073aef63 Author: Ville Syrjälä Date: Tue Mar 31 14:11:54 2015 +0300 drm/i915: ILK cdclk seems to be 450MHz Based on the BIOS DP A AUX 2x clock divider the cdclk frequency on ILK is 450Mhz. At least that holds on my ILK and it matches how we program the divider. Supposedly cdclk is 400MHz on SNB and IVB, again based on the AUX 2x clock divider. Note that I don't have a SNB or IVB machine with eDP so I couldn't verify what the BIOS used, so this notion is purely based on our current code, Signed-off-by: Ville Syrjälä Signed-off-by: Mika Kahola Reviewed-by: Damien Lespiau Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit e907f1704c402122b0c0a206d8064e19b79ed1c3 Author: Ville Syrjälä Date: Tue Mar 31 14:09:47 2015 +0300 drm/i915: Return more precise cdclk for gen2/3 Fill out the lower three digits for gen2 and gen3 cdclk frqeuncy. It's not clear if these are accurate frquencies or just in the ballpark, but without docs this is the best we can do. Signed-off-by: Ville Syrjälä Signed-off-by: Mika Kahola Reviewed-by: Damien Lespiau Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) commit 46509475a817ed099829be2a8d03cdbc355a284e Author: Ville Syrjälä Date: Tue Mar 31 10:37:21 2015 +0300 drm/i915: Enable DVO 2x clock around DVO encoder init ns2501 requires the DVO 2x clock before it will respond to i2c access, so make sure the clock is enabled when we try to initialize the encoder. Fixes the display getting lost on module reload on my Fujitsu/Siemens Lifebook S6010. Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_dvo.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit 1c7c4301eeeff9af7e5009785aa721b0da6c9198 Author: Ville Syrjälä Date: Tue Mar 31 10:37:24 2015 +0300 drm/i915: Mark the overlay active only if we got ring space After the GPU has wedged we can't turn on the overlay anymore. Only mark it as active if we succeed in allocating ring space. This prevents a WARN (previous;y a BUG) during driver unload if we attempted to use the overlay after the GPU had already wedged. Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_overlay.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 209c2a5ec1c9b59f1f43ecd882a2b04d8a6b65de Author: Ville Syrjälä Date: Tue Mar 31 10:37:23 2015 +0300 drm/i915: Convert overlay->{active, pfit_active} to bools overlay.{active,pfit_active} are just on/off flags, so make them bool. Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_overlay.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 77589f561bce75e6799e2bc05551486bbef3954a Author: Ville Syrjälä Date: Tue Mar 31 10:37:22 2015 +0300 drm/i915: Convert BUGs to WARNs in the video overlay code BUG is bad, just use WARN. Also drop one BUG(!overlay) since we'd oops anyway when dereferencing it. Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_overlay.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) commit 85250ddff7a603dfe0ec0503a9e6395f79424f61 Author: Deepak S Date: Sat Mar 28 15:23:34 2015 +0530 drm/i915/chv: Remove Wait for a previous gfx force-off On CHV, PUNIT team confirmed that 'VLV_GFX_CLK_STATUS_BIT' is not a sticky bit and it will always be set. So ignore Check for previous Gfx force off during suspend and allow the force clk as part S0ix Sequence Signed-off-by: Deepak S Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 8c7a075da9f7980cc95ffcd7e6621d4a87f20f40 Author: Russell King Date: Mon Mar 30 16:20:44 2015 +0100 drm/i2c: tda998x: use drm_hdmi_avi_infoframe_from_display_mode() Make use of the DRM HDMI AVI infoframe helper to construct the AVI infoframe, rather than coding this up ourselves. This allows DRM to supply proper aspect ratio information derived from the DRM display mode structure. Signed-off-by: Russell King drivers/gpu/drm/i2c/tda998x_drv.c | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) commit 670b90d20a5d71a2f430e0c4b97dac2d17a659b5 Author: Durgadoss R Date: Fri Mar 27 17:21:32 2015 +0530 drm/i915: PSR: Keep sink state consistent with source BSpec recommends to keep the main link state consistent between the source and the sink. As per that, update the main link state in sink DPCD register to 'active', for Valleyview based platforms. Signed-off-by: Durgadoss R Reviewed-by: Rodrigo Vivi Tested-by: Rodrigo Vivi Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_psr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b728d7265bfaf125604c48a54d2932add7aebf31 Author: Thomas Richter Date: Sat Mar 28 10:57:46 2015 +0100 Enabled dithering in the intel VCH DVO for 18bpp pipelines. Signed-off-by: Thomas Richter Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/dvo_ivch.c | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) commit 41037f9f0e299f72e062cb508371906810fcedde Author: Chris Wilson Date: Fri Mar 27 11:01:36 2015 +0000 drm/i915: Add i915_gem_request_unreference__unlocked We were missing a convenience stub to aquire the right mutex whilst dropping the request, so add it. Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 13 +++++++++++++ drivers/gpu/drm/i915/i915_gem.c | 8 ++------ 2 files changed, 15 insertions(+), 6 deletions(-) commit 6d293983d4d2d1c233fff94f7b2c4603bdab0170 Author: Ander Conselvan de Oliveira Date: Mon Mar 30 08:33:12 2015 +0300 drm/i915: Check lane sharing between pipes B & C using atomic state Makes that code atomic ready. v2: Acquire crtc_state for the "other" pipe only when needed. (Daniel) v3: Really only acquire the other state if necessary. (Daniel) Signed-off-by: Ander Conselvan de Oliveira Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 69 ++++++++++++++++++++++-------------- 1 file changed, 42 insertions(+), 27 deletions(-) commit c51880ea82362d63b961590a9b84ae70dec7d62b Author: Michal Kazior Date: Mon Mar 30 09:51:57 2015 +0300 ath10k: fix aid setup in station mode While debugging something else I noticed AID was set to 0. This could lead to powersave issues in station mode. Maybe this isn't really necessary but set it properly just to be sure. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 8d7aa6bc83b162da0ed5f5ff9a4c305525245efc Author: Michal Kazior Date: Mon Mar 30 09:51:57 2015 +0300 ath10k: document ofdm/5ghz rate offset with a macro Don't use literal values for offsets. While at it rename a function so it is more clear what it checks for. This finally takes care of the last magic 5GHz/OFDM offset. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) commit 01cebe1c50d43a79de1ee48bd9917c9fbbd3901d Author: Michal Kazior Date: Mon Mar 30 09:51:56 2015 +0300 ath10k: deduplicate bitrate to rate idx conversion It's possible to derive rate index from bitrate without any additional mapping structures/logic. This should have little to none impact on performance since this is only done for management frames and the previous approach wasn't particularly optimized. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 12 +++++++ drivers/net/wireless/ath/ath10k/mac.h | 3 ++ drivers/net/wireless/ath/ath10k/wmi.c | 62 +++-------------------------------- 3 files changed, 19 insertions(+), 58 deletions(-) commit 5528e032702be937acdfe8c6395461e0e8acaa85 Author: Michal Kazior Date: Mon Mar 30 09:51:56 2015 +0300 ath10k: rework legacy rx rate decoding Instead of using a hacky table and magic values use supported band information advertised to mac80211. This may impact performance a little when dealing with legacy rx rates depending on system architecture. It's probably negligible. This also fixes a highly theoretical corner case when HT/VHT rates weren't reported correctly if channel frequency wasn't known. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/htt_rx.c | 64 ++++++-------------------------- drivers/net/wireless/ath/ath10k/mac.c | 37 ++++++++++++++++-- drivers/net/wireless/ath/ath10k/mac.h | 2 + 3 files changed, 46 insertions(+), 57 deletions(-) commit af00148f63af1b537dd86d46ef468da8e54c3678 Author: Michal Kazior Date: Mon Mar 30 09:51:56 2015 +0300 ath10k: simplify fixed rate selection Use the existing ieee80211_rate array instead of definining separate one. This gets rid of the ugly 4-index offset when dealing with 5GHz band. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 56 +++++++++++------------------------ 1 file changed, 17 insertions(+), 39 deletions(-) commit 6fd4bd26a013234d5b0dbbe13d4f823c884f3dcd Author: Michal Kazior Date: Mon Mar 30 09:51:55 2015 +0300 ath10k: use hw rate definitions for fixed rate Using raw values is discouraged. Having defines/enums is preferred. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) commit 6aa4cf1cd4b26450dcb42dfa7107269843cfc57a Author: Michal Kazior Date: Mon Mar 30 09:51:55 2015 +0300 ath10k: add hw rate definitions Prepare defines for future use. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/htt.h | 1 + drivers/net/wireless/ath/ath10k/hw.h | 21 +++++++++++++++++++++ drivers/net/wireless/ath/ath10k/rx_desc.h | 22 ++++++++++++++++++++++ 3 files changed, 44 insertions(+) commit 5653b39d6fe52d692b7461de5ee5b9905d9d4113 Author: Michal Kazior Date: Mon Mar 30 09:51:54 2015 +0300 ath10k: drop RATETAB_ENT macro It was superfluous and confusing. It's better to define the structure explicitly. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 31 +++++++++++++------------------ 1 file changed, 13 insertions(+), 18 deletions(-) commit 486017ccbd79d9b5b40bf39ed82a359b6afb2140 Author: Michal Kazior Date: Mon Mar 30 09:51:54 2015 +0300 ath10k: derive rate from bitrate There's no need to store rate values in hw_value. This frees up the hw_value for better future use. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 47 +++++++++++++++++++++++++---------- 1 file changed, 34 insertions(+), 13 deletions(-) commit dcc330987fed1b8a893cc0e7e71e6413028a6d56 Author: Michal Kazior Date: Mon Mar 30 09:51:54 2015 +0300 ath10k: move rate definitions to file start Prepare the code for future changes so that new code can refer to rate-related stuff without forward declarations. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 63 ++++++++++++++++++----------------- 1 file changed, 32 insertions(+), 31 deletions(-) commit 75d85fd9993c159a304f6e5f0d07f4a7e144b515 Author: Marek Puzyniak Date: Mon Mar 30 09:51:53 2015 +0300 ath10k: introduce basic tdls functionality This patch introduces tdls without tdls peer uapsd and tdls channel switching. Transmitting tdls data frames works only for ethernet type frames, that's why data addressed to tdls sta is in ethernet format. This patch depends on commit c23e31cf7b55 ("mac80211: initialize rate control earlier for tdls station"). Signed-off-by: Michal Kazior Signed-off-by: Marek Kwaczynski Signed-off-by: Marek Puzyniak Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 205 ++++++++++++++++++++++++++++++++-- 1 file changed, 197 insertions(+), 8 deletions(-) commit ad45c888abaee6ddc8cec8755e57fc03dbf2f91e Author: Marek Puzyniak Date: Mon Mar 30 09:51:53 2015 +0300 ath10k: add wmi support for tdls As a part of tdls implementation introduce tdls related wmi data structures, constant values and functions. Signed-off-by: Marek Puzyniak Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/wmi-ops.h | 43 +++++++++ drivers/net/wireless/ath/ath10k/wmi-tlv.c | 153 ++++++++++++++++++++++++++++++ drivers/net/wireless/ath/ath10k/wmi-tlv.h | 53 +++++++++++ drivers/net/wireless/ath/ath10k/wmi.h | 37 ++++++++ 4 files changed, 286 insertions(+) commit 7c35424205c041c1990e2cdd18ef2eb5d73baec3 Author: Marek Puzyniak Date: Mon Mar 30 09:51:52 2015 +0300 ath10k: update station counting Currently station counting functions (inc_num_stations/dec_num_stations) does not handle tdls type of stations. Tdls station should be counted because it consumes peer in firmware. Only not tdls stations are excluded from this counting. Signed-off-by: Marek Puzyniak Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit 8cca3d60871ae3bd617fe50afd1c2e4a0328b949 Author: Marek Puzyniak Date: Mon Mar 30 09:51:52 2015 +0300 ath10k: store max tdls vdevs that fw can handle Currently number of tdls vdevs supported by firmware is hardcoded. For future usage it is stored in ath10k structure based on defined value. Signed-off-by: Marek Puzyniak Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.c | 1 + drivers/net/wireless/ath/ath10k/core.h | 1 + drivers/net/wireless/ath/ath10k/hw.h | 1 + drivers/net/wireless/ath/ath10k/wmi-tlv.c | 2 +- 4 files changed, 4 insertions(+), 1 deletion(-) commit 7390ed3467fc2261d0f524f928e17baf0ff5c046 Author: Marek Puzyniak Date: Mon Mar 30 09:51:52 2015 +0300 ath10k: make peer type configurable Peer type was hardcoded to default value. For future implementation it is required to make is configurable. Signed-off-by: Marek Puzyniak Signed-off-by: Marek Kwaczynski Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 17 +++++++++++------ drivers/net/wireless/ath/ath10k/wmi-ops.h | 8 +++++--- drivers/net/wireless/ath/ath10k/wmi-tlv.c | 5 +++-- drivers/net/wireless/ath/ath10k/wmi.c | 3 ++- drivers/net/wireless/ath/ath10k/wmi.h | 6 ++++++ 5 files changed, 27 insertions(+), 12 deletions(-) commit d740d8fd243933dfd399c9f8d78063ca020eb8bf Author: Michal Kazior Date: Mon Mar 30 09:51:51 2015 +0300 ath10k: unify tx mode and dispatch There are a few different tx paths depending on firmware and frame itself. Creating a uniform decision will make it possible to switch between different txmode easier, both for testing and for future features as well. Signed-off-by: Michal Kazior Signed-off-by: Marek Puzyniak Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.h | 2 + drivers/net/wireless/ath/ath10k/htt_rx.c | 8 -- drivers/net/wireless/ath/ath10k/htt_tx.c | 30 +++--- drivers/net/wireless/ath/ath10k/mac.c | 155 ++++++++++++++++++++++++------- drivers/net/wireless/ath/ath10k/mac.h | 8 ++ 5 files changed, 144 insertions(+), 59 deletions(-) commit 6fcafef7363bec35ddf148abae6e879e27771eb0 Author: Michal Kazior Date: Mon Mar 30 09:51:51 2015 +0300 ath10k: clear htt.freq If htt.freq isn't cleared and contains garbage fw may discard tx packets. Prevent this from happening by clearing htt.freq properly. Possible manifestation of the problem could be not being able to send auth request/response frames on firmware with HTT >= 3.4 (when freq param was introduced), e.g. on qca6174. Fixes: 8d6d36243610 ("ath10k: fix offchan reliability") Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 1 + 1 file changed, 1 insertion(+) commit dc3632a1adf51d34dcaf708a4f686d9ce29d53b3 Author: Kalle Valo Date: Mon Mar 30 14:14:28 2015 +0300 ath10k: fix HTT op backwards compatibility for QCA6174 Commit 8348db298496 ("ath10k: add ATH10K_FW_IE_HTT_OP_VERSION") broke QCA6174 receive side as the HTT ids from ATH10K_FW_HTT_OP_VERSION_MAIN don't have HTT_TLV_T2H_MSG_TYPE_RX_IN_ORD_PADDR_IND set. Fix this by adding a backwards compatibility code which sets HTT op version if it's not set by the firmware image. Fixes: 8348db298496 ("ath10k: add ATH10K_FW_IE_HTT_OP_VERSION") Reported-by: Michal Kazior Tested-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.c | 23 +++++++++++++++++++++++ drivers/net/wireless/ath/ath10k/htt.c | 2 +- 2 files changed, 24 insertions(+), 1 deletion(-) commit 23d6660d7f0feacb4c0e24c5cb8f29674aa38567 Merge: 53513c3 5d8325e Author: Kalle Valo Date: Mon Mar 30 10:07:12 2015 +0300 Merge mac80211-next into ath-next Patch "ath10k: introduce basic tdls functionality" depends on this mac80211 patch: c23e31cf7b55 mac80211: initialize rate control earlier for tdls station commit 53513c302f35ece4b82fe9d47352ba9810f30238 Author: Kalle Valo Date: Wed Mar 25 13:12:42 2015 +0200 ath10k: bump up FW API to 5 Firmware 10.2.4.48-3 now supports management frames over HTT feature and has ATH10K_FW_FEATURE_HAS_WMI_MGMT_TX. But as 10.2.4 branch has conflicting HTT ids patch "ath10k: add ATH10K_FW_IE_HTT_OP_VERSION" is needed to fix the issue. Older ath10k versions don't have support that support and to maintain backwards compatibility we need bump up the FW API to 5 not break older versions. Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.c | 7 +++++++ drivers/net/wireless/ath/ath10k/hw.h | 3 +++ drivers/net/wireless/ath/ath10k/pci.c | 1 + 3 files changed, 11 insertions(+) commit 8348db2984962119f29516cfafb775067238c580 Author: Rajkumar Manoharan Date: Wed Mar 25 13:12:27 2015 +0200 ath10k: add ATH10K_FW_IE_HTT_OP_VERSION Target to host HTT messages are conflicting between 10.x and other firmware revisions. By maintaining separate HTT T2H tables for each firmware revisions (main, 10x and tlv) similar to WMI abstraction, solves the conflicts. Add ATH10K_FW_IE_HTT_OP_VERSION so that the firmware can advertise the HTT interface to ath10k. This fix is needed to get management frames over HTT (ie. ATH10K_FW_FEATURE_HAS_WMI_MGMT_TX disabled) working with 10.2.4.48-2 firmware. Otherwise there will be unknown htt events and nothing works: [30087.438343] ath10k_pci 0000:02:00.0: htt event (19) not handled [30087.448691] ath10k_pci 0000:02:00.0: htt event (19) not handled [30149.032974] ath10k_pci 0000:02:00.0: htt event (19) not handled If the firmware does not have ATH10K_FW_IE_HTT_OP_VERSION use the main HTT interface. That way old firmware images will still work. Cc: Michal Kazior Signed-off-by: Rajkumar Manoharan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.c | 11 +++ drivers/net/wireless/ath/ath10k/htt.c | 98 +++++++++++++++++++++++ drivers/net/wireless/ath/ath10k/htt.h | 130 ++++++++++++++++++++++++------- drivers/net/wireless/ath/ath10k/htt_rx.c | 20 +++-- drivers/net/wireless/ath/ath10k/hw.h | 19 +++++ 5 files changed, 245 insertions(+), 33 deletions(-) commit 25c866190b723f6ac6f73f2fbc62c7b99d2bbb90 Author: Janusz Dziedzic Date: Mon Mar 23 17:32:54 2015 +0200 ath10k: add WOW patterns support Add patterns support for WOW. Signed-off-by: Janusz Dziedzic Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.c | 1 + drivers/net/wireless/ath/ath10k/hw.h | 1 + drivers/net/wireless/ath/ath10k/wmi-tlv.c | 2 +- drivers/net/wireless/ath/ath10k/wmi.h | 4 +++ drivers/net/wireless/ath/ath10k/wow.c | 47 ++++++++++++++++++++++++++++++- drivers/net/wireless/ath/ath10k/wow.h | 2 ++ 6 files changed, 55 insertions(+), 2 deletions(-) commit d4976104c6456c2892eb88192ff50b2c5aa40539 Author: Janusz Dziedzic Date: Mon Mar 23 17:32:54 2015 +0200 ath10k: add WMI support for WOW patterns Add WMI support for WOW patterns. Signed-off-by: Janusz Dziedzic Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/wmi-ops.h | 45 +++++++++++ drivers/net/wireless/ath/ath10k/wmi-tlv.c | 130 ++++++++++++++++++++++++++++++ drivers/net/wireless/ath/ath10k/wmi-tlv.h | 38 +++++++++ 3 files changed, 213 insertions(+) commit 5fd3ac3c36f8b28f54ce3094e69bfc1d54ca0be9 Author: Janusz Dziedzic Date: Mon Mar 23 17:32:53 2015 +0200 ath10k: add WOW disconnect/magic-packet support Add support for WOW disconnect and magic-packet. Signed-off-by: Janusz Dziedzic Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/Makefile | 1 + drivers/net/wireless/ath/ath10k/core.c | 1 + drivers/net/wireless/ath/ath10k/core.h | 8 + drivers/net/wireless/ath/ath10k/mac.c | 75 +-------- drivers/net/wireless/ath/ath10k/wmi.c | 14 +- drivers/net/wireless/ath/ath10k/wow.c | 276 +++++++++++++++++++++++++++++++ drivers/net/wireless/ath/ath10k/wow.h | 38 +++++ 7 files changed, 346 insertions(+), 67 deletions(-) commit f5431e87ae0357bd72cfbfbe9552aa3d555c3800 Author: Janusz Dziedzic Date: Mon Mar 23 17:32:53 2015 +0200 ath10k: add WMI support for WOW Add WMI support for WOW like enable, wakeup events and host wakeup indication. Signed-off-by: Janusz Dziedzic Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/wmi-ops.h | 70 +++++++++++++++ drivers/net/wireless/ath/ath10k/wmi-tlv.c | 116 +++++++++++++++++++++++- drivers/net/wireless/ath/ath10k/wmi-tlv.h | 21 +++++ drivers/net/wireless/ath/ath10k/wmi.h | 144 ++++++++++++++++++++++++++++++ 4 files changed, 349 insertions(+), 2 deletions(-) commit b3e71d7a51486b523ffef0abd517cd25e4ec9588 Author: Ashok Raj Nagarajan Date: Thu Mar 19 16:38:00 2015 +0530 ath10k: allow user to toggle ani_enable via debugfs Now that ANI is enabled by default, allow user to disable or enable ANI feature from debugfs echo 0|1 > /sys/kernel/debug/ieee80211/phyX/ath10k/ani_enable Signed-off-by: Ashok Raj Nagarajan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.h | 2 ++ drivers/net/wireless/ath/ath10k/debug.c | 58 +++++++++++++++++++++++++++++++++ drivers/net/wireless/ath/ath10k/mac.c | 2 ++ 3 files changed, 62 insertions(+) commit 575f1c3d5c909d26e169da01eaed44f00f7eb88f Author: Ashok Raj Nagarajan Date: Thu Mar 19 16:37:59 2015 +0530 ath10k: enable Adaptive Noise Immunity (ANI) by default ANI helps to improve connectvity and performance in a noisy environment. Enabling this feature would help the user experience a better and stable wireless connection in a noisy environmnet. This feature is currently not enabled for ath10k. Enable this feature by default. Signed-off-by: Ashok Raj Nagarajan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 4a7898fed5f30af7d7ef78415560e68712ed6c20 Author: Peter Oh Date: Wed Mar 18 11:39:18 2015 -0700 ath10k: enable channel 144 on 5GHz band Enable channel 144 on 5GHz band since 802.11ac introduced it. Signed-off-by: Peter Oh Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 1 + 1 file changed, 1 insertion(+) commit 9936fa5908a4bef7fffc0758f0e6307e83103644 Author: Rajkumar Manoharan Date: Sun Mar 15 20:36:25 2015 +0530 ath10k: move driver state check before setting throttle Since thermal daemon is unaware of the device state, it might try to adjust the throttle state when the device is powered down. So the driver caches the value and will configure it while powering up the target. The cached value will be programed later once the device is brought up. In such case, returning error status is confusing and misleading the user application. Hence moving the driver state check before sending wmi command to target. Reported-by: Matthias Kaehlcke Signed-off-by: Rajkumar Manoharan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/thermal.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) commit 28bf0c4e3fdd3bfde8b2252f38d1d7ddb70449d6 Author: Rajkumar Manoharan Date: Sun Mar 15 20:36:24 2015 +0530 ath10k: cache throttle state when device is down Allow driver to cache the throttle state when the devie is not yet started. Configure the cached throttle state while powering up the device. Since thermal daemon is unaware of the up/down cycle, it assumes that device is throttled. Reported-by: Matthias Kaehlcke Signed-off-by: Rajkumar Manoharan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/thermal.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 091105bc06b1515a53f9f739004b1076f8e38a38 Author: Rajkumar Manoharan Date: Sun Mar 15 20:36:23 2015 +0530 ath10k: do not restrict thermal throttling to ap mode Recently thermal mitigation is validated in station mode as well. Hence allowing thermal throttling for all interfaces. This enables user to validate thermal mitigation with different modes. Reported-by: Matthias Kaehlcke Signed-off-by: Rajkumar Manoharan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/thermal.c | 36 +------------------------------ 1 file changed, 1 insertion(+), 35 deletions(-) commit 8515b5c79a54213f189f142f956eeb43cb8c8058 Author: Rajkumar Manoharan Date: Sun Mar 15 20:36:22 2015 +0530 ath10k: configure thermal throttle while powering up Thermal throttling is not handled in software restart and device bootup. Also it needs to be configured whenever quiet period got updated. Fix that. Reported-by: Matthias Kaehlcke Signed-off-by: Rajkumar Manoharan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/debug.c | 1 + drivers/net/wireless/ath/ath10k/mac.c | 1 + drivers/net/wireless/ath/ath10k/thermal.c | 34 +++++++++++++++++++------------ drivers/net/wireless/ath/ath10k/thermal.h | 5 +++++ 4 files changed, 28 insertions(+), 13 deletions(-) commit 972f051364f19e573b96047be336ef7e8ff4e39c Author: Rajkumar Manoharan Date: Sun Mar 15 20:36:21 2015 +0530 ath10k: fix interpretation of cooling device state Setting the sysfs attribute ends up configuring the duty cycle, but the interface through which the attribute is exposed (cooling_device) is for setting the throttle/cooling state. This is confusing the user. Hence renaming the cooling device interfaces for better readability. Cc: Matthias Kaehlcke Signed-off-by: Rajkumar Manoharan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/thermal.c | 35 +++++++++++++++++-------------- drivers/net/wireless/ath/ath10k/thermal.h | 4 ++-- 2 files changed, 21 insertions(+), 18 deletions(-) commit 63fb32df9786733af85d243877d585ccad36490a Author: Rajkumar Manoharan Date: Sun Mar 15 20:36:20 2015 +0530 ath10k: add debugfs entry to configure quiet period Add support to configure quiet period (in milliseconds) via debugfs. This is useful to experiment different quiet period values along with different throttle ratio. echo 100 > /sys/kernel/debug/ieee80211/phyX/ath10k/quiet_period Signed-off-by: Rajkumar Manoharan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/debug.c | 46 +++++++++++++++++++++++++++++++ drivers/net/wireless/ath/ath10k/thermal.c | 4 +-- drivers/net/wireless/ath/ath10k/thermal.h | 1 + 3 files changed, 49 insertions(+), 2 deletions(-) commit 4705e34ee535a24a10dfe2d5a3eccb3245ead7e4 Author: Rajkumar Manoharan Date: Thu Mar 19 16:03:29 2015 +0200 ath10k: increase station kickout threshold Since the station kickout threshold is also counting software reries (Default sw count in firmware is 16), increasing the threshold to try with atleast 20 data frames before kicking out the station. Signed-off-by: Rajkumar Manoharan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 9a5ab0f49f9fb16f73717cb7f434556aa3bac3fe Author: Rajkumar Manoharan Date: Thu Mar 19 16:03:29 2015 +0200 ath10k: fix rts profile for second rate series By default rts protection is enabled in firmware for the second rateset. Currently ath10k selects RTS profile (only for software retries), when legacy stations are associated or asked by mac80211. On congested environment, when AP is running in HT/VHT mode and there are no legacy clients associated, this will impact the robustness. Also enabling RTS protection only for second rateset will not impact performance on clear environment. Fix that. Signed-off-by: Rajkumar Manoharan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 37a0b394b61beb75b0d28b95f1a3f8af5b47aa1b Author: Janusz.Dziedzic@tieto.com Date: Thu Mar 12 13:11:41 2015 +0100 ath10k: setup maximum number of supported stations Setup maximum number of associated stations supported in AP/P2P_GO mode. This allow hostapd/wpa_supplicant to play with that limit and set more information (eg. P2P group limit bit for P2P_GO). Signed-off-by: Janusz Dziedzic Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 2 ++ 1 file changed, 2 insertions(+) commit 5dc0f1db41df905c19f95bb7809940f2debf0aef Author: Michal Kazior Date: Wed Mar 11 14:37:11 2015 +0100 ath10k: protect driver from unsolicited htc ep0 events Some firmware revisions (tested with qca6174 rm2.0-00088) deliver unsolicited unknown (kind of garbled) HTC ep0 event to host in some cases. This issue was mainly observed with both qca988x and qca6174 being installed on a single host system. During driver probing if qca6174 booting sequences were somehow deferred (e.g. by qca988x implicitly making some resources busy presumably) the unsolicited event would came around 1s after ATH10K_HTC_MSG_READY_ID was delivered to host for qca6174. The unsolicited event would confuse driver and cause HTT initialization (and subsequently driver probing) to fail. Make the ep0 event processing more robust. The event will still be caught but instead will only generate a warning now. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/htc.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 7e47e8e30f2ae10473eafbe8eaad4a0d17b3e656 Author: Rajkumar Manoharan Date: Thu Mar 12 19:32:00 2015 +0200 ath10k: fix wrong symlink name on error path Wrong symlink name is used on error path of thermal registration and also correcting the error message. Signed-off-by: Rajkumar Manoharan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/thermal.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 8bad8dcd0c1a9a9160ad7787f79ebf617881c01e Author: Michal Kazior Date: Wed Mar 11 14:25:26 2015 +0100 ath10k: strip qos data bit always NativeWifi tx mode expects QoS Data frames to be delivered as Data frames with QoS part (e.g. tid) being delievered out-of-band in fw tx command. The QoS bit wasn't stripped before submitting to firmware. Stripping fixes two known problems: * qca6174 IOT with some APs, e.g. Cisco AIR-AP 1252 (which would crash after ath10k association). Some ath9k APs would crash as well. * sniffing own tx frames via radiotap because, e.g. wireshark was seeing QoS bit set but since QoS Control was stripped in ath10k it would parse beginning of LLC/SNAP >From debugability point of view this removes the ability to distinguish QoS from non-QoS frames when sniffing own tx via radiotap. On the other hand frames can be now parsed correctly without special software modification. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) commit d7131c0457d0803fa74ed5cefe2fee639403e493 Author: Bartosz Markowski Date: Tue Mar 10 14:32:19 2015 +0100 ath10k: fix PMF by using AES-CMAC/IGTK software crypto While testing with older supplicant, .drv_set_key() was failing due to higher than ath10k firmware could handle key_index (WMI_MAX_KEY_INDEX == 3). -- wpa_driver_nl80211_set_key: ifindex=15 alg=4 addr=0x7f02b129fbe3 key_idx=4 set_tx=0 seq_len=6 key_len=16 broadcast key nl80211: set_key failed; err=-22 Invalid argument) wlan0: WPA: Failed to configure IGTK to the driver wlan0: RSN: Failed to configure IGTK -- In order to fix this case (PMF: AES-CMAC/IGTK) force the AES_CMAC cipher to be handled by software. Signed-off-by: Bartosz Markowski Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit cc9904e694fa3b0f49bdaccdc7603ec6afa48a7a Author: Michal Kazior Date: Tue Mar 10 16:22:01 2015 +0200 ath10k: add hw connection monitor support Some firmware revisions (e.g. qca6174 with fw73) don't deliver beacons to host reliably. This causes random disconnects even in perfect conditions. This is most visible with multi-channel operation. All available firmware revisions seem to support beacon miss offloading so there shouldn't be any problems. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.h | 2 + drivers/net/wireless/ath/ath10k/mac.c | 77 +++++++++++++++++++++++++++++++++- drivers/net/wireless/ath/ath10k/mac.h | 2 + drivers/net/wireless/ath/ath10k/wmi.c | 7 +++- 4 files changed, 86 insertions(+), 2 deletions(-) commit c1a4654a8ce2b1c60bb46c900e7297078a8642f6 Author: Michal Kazior Date: Tue Mar 10 16:21:54 2015 +0200 ath10k: implement wmi roam event This can be used to implement offloaded rssi threshold, beacon miss or even automatic in-firmware BSS roaming in the future. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/wmi-ops.h | 12 +++++++ drivers/net/wireless/ath/ath10k/wmi-tlv.c | 32 ++++++++++++++++++ drivers/net/wireless/ath/ath10k/wmi-tlv.h | 6 ++++ drivers/net/wireless/ath/ath10k/wmi.c | 55 ++++++++++++++++++++++++++++++- drivers/net/wireless/ath/ath10k/wmi.h | 22 +++++++++++++ 5 files changed, 126 insertions(+), 1 deletion(-) commit 7cc4573e85cd7f7179fdfe0b7d3114a4fbdd6f2a Author: Michal Kazior Date: Mon Mar 9 14:24:17 2015 +0100 ath10k: fix WPA crypto Commit 370e567363e6 ("ath10k: fix broken traffic for 802.1x in client mode") introduced a regression on WPA crypto. All keys were treated as if they were WEP which resulted in WPA being incorrectly installed to fw/hw and subsequently no traffic. Reported-by: Marek Puzyniak Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 44 +++++++++++++++++------------------ 1 file changed, 22 insertions(+), 22 deletions(-) commit bff414c3d2cb327d4fff22277ac89b8e00d70164 Author: Michal Kazior Date: Mon Mar 9 14:20:55 2015 +0100 ath10k: fix CAC regression Commit 548462133d98 ("ath10k: fix interrupt storm") introduced a regression. The condition responsible for bringing up monitor vdev was broken and it was never started for CAC so effectivelly CAC would not detect radar pulses. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8513d95b4b6cd7029cca5aac3bedef25c25b64a0 Author: Michal Kazior Date: Mon Mar 9 14:19:24 2015 +0100 ath10k: fix patching mistake for AP/IBSS CSA Mistakenly v1 of `ath10k: fix AP/IBSS CSA with template based fw` (81a9a17db5d766d2872c4ab8a77b8666d22031ec) was applied. This patch applies the missing bits from v2: * remove unnecessary locking * add some (sanity) checks There are no practical functionality differences between v1 and v2. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 12 +++++++----- drivers/net/wireless/ath/ath10k/wmi-tlv.c | 4 +--- 2 files changed, 8 insertions(+), 8 deletions(-) commit 9ff4be96ebd6e2a8d3bb18362e8868ed5bf40161 Author: Michal Kazior Date: Mon Mar 2 13:22:14 2015 +0100 ath10k: save/restore pci config space properly The check was't really necessary and couldn't even work to begin with because pci_restore_state() restores only first 64 bytes of PCI configuration space. Actually the PCI subsystem takes care of this so there's no need for explicit calls to save PCI state in ath10k. This is necessary for future WoWLAN support. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/pci.c | 39 +++++++---------------------------- 1 file changed, 8 insertions(+), 31 deletions(-) commit 320e14b8db51a2d635897d521db4e5c79c3a8390 Author: Michal Kazior Date: Mon Mar 2 13:22:13 2015 +0100 ath10k: fix some pci wake/sleep issues In some cases the device ends up sleeping while ath10k didn't expect it to leading to reading garbage from registers, e.g. when shared irqs are used and the driver is in powered down state. This effectively makes the device remain awake all the time even when all interfaces are down. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/pci.c | 37 ++++++++++++++++++++++++++++++----- 1 file changed, 32 insertions(+), 5 deletions(-) commit 548462133d98e5da93fd6b4c9edc6bf5c87dfc92 Author: Vasanthakumar Thiagarajan Date: Mon Mar 2 17:45:28 2015 +0530 ath10k: fix interrupt storm Promiscuous mode is enabled when wlan interface is added to bridge. ath10k creates a monitor mode when promiscuous mode is enabled. When monitor vdev is running along with other vdev(s) there is a huge number of interrupts generated especially in noisy condition. Fix this by not enabling promiscuous(monitor) mode when already a vdev is running. As disabling promiscuous mode may have issues with 4-address bridging in STA mode, the change is done specific to non-sta/ibss mode types. This does not change the support of virtual interface of type monitor along with other vdevs of any type. This could fix management frame drop in fw due to unavailable buffers because in monitor mode device receives everything seen on the air. In noisy condition, disabling monitor mode helps assoc go through without any issue. Signed-off-by: Vasanthakumar Thiagarajan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) commit 822b7e0b633bbf3edc316791ca57a4cbaff93e6a Author: Vasanthakumar Thiagarajan Date: Mon Mar 2 17:45:27 2015 +0530 ath10k: move ath10k_vdev_stop() up before ath10k_vdev_start_restart() This patches does not modify any functionality. Just a code move so that ath10k_vdev_stop() can be used in ath10k_vdev_start_restart() for any failure cases which involves vdev_stop(). Signed-off-by: Vasanthakumar Thiagarajan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 66 +++++++++++++++++------------------ 1 file changed, 33 insertions(+), 33 deletions(-) commit a87fd4b99ddf1dbc66e456f4fb201371586137b3 Author: Michal Kazior Date: Mon Mar 2 11:21:17 2015 +0100 ath10k: improve 11b coex This improves coexistance with 11b legacy devices on wmi-tlv and qca6174. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 7 +++++++ 1 file changed, 7 insertions(+) commit fe3cbdfc4f5837401729e77e86da553d1e86f2bd Author: Michal Kazior Date: Thu Feb 26 13:23:18 2015 +0100 ath10k: implement handling of p2p noa event Since new wmi-tlv firmware doesn't have SWBA event the only way to deliver P2P NoA information is through a new dedicated event. This fixes P2P GO Probe Responses to include P2P NoA when appropriate on the new firmware. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/p2p.c | 32 ++++++++++++++++++++++++ drivers/net/wireless/ath/ath10k/p2p.h | 2 ++ drivers/net/wireless/ath/ath10k/wmi-tlv.c | 41 +++++++++++++++++++++++++++++++ drivers/net/wireless/ath/ath10k/wmi-tlv.h | 4 +++ 4 files changed, 79 insertions(+) commit 6a94888f173f10d24d69d25fb99ab50bf750e0e3 Author: Michal Kazior Date: Thu Feb 26 13:23:17 2015 +0100 ath10k: refactor p2p noa code Some files are getting bloated and it makes sense to split some of the code into separate files. Do so with the P2P NoA code and prepare it for reuse. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/Makefile | 3 +- drivers/net/wireless/ath/ath10k/p2p.c | 124 +++++++++++++++++++++++++++++++ drivers/net/wireless/ath/ath10k/p2p.h | 26 +++++++ drivers/net/wireless/ath/ath10k/wmi.c | 91 +---------------------- 4 files changed, 156 insertions(+), 88 deletions(-) commit bc657a36b8999c285a11e1e0abcdca0b18149948 Author: Michal Kazior Date: Thu Feb 26 11:11:22 2015 +0100 ath10k: fix TxBF VHT capabilities for 2+ RF-chain devices Firmware doesn't report a complete and ready-to-use vht cap. Instead the driver is supposed to fill in the missing bits related to number of chains. This effectively increases Compressed Steering Number and Number of Sounding Dimensions in AssocReq frames for devices with more than one RF chain and should improve TxBF performance. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) commit 4543ab01481f184609226b905d84ef841f993b96 Author: Michal Kazior Date: Wed Feb 25 11:39:36 2015 +0100 ath10k: fix ap u-apsd cmd on qca6174 w/ wmi-tlv The command was truncated so the parameter value was seen in fw as 0. This caused U-APSD enabled stations to be misconfigured and mistreated by AP. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/wmi-tlv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a13e6aea89f7d5d91798b648c48f4ffa65ff32c9 Author: Rajkumar Manoharan Date: Thu Feb 19 23:25:05 2015 +0530 ath10k: increase duty cycle maximum limit Allow user to configure the duty cycle upto 100%. Since thermal mitigation algorithm is running in user space, remove the driver level limitation and let the user to control the temperature. Signed-off-by: Rajkumar Manoharan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/thermal.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ad325cb52811acc3842fc93e89b688b12cc2d7cb Author: Michal Kazior Date: Wed Feb 18 14:02:27 2015 +0100 ath10k: fix broken traffic for static WEP in IBSS When WEP keys are uploaded it's possible that there are stations associated already (e.g. when merging) without any keys. Static WEP needs an explicit per-peer key upload. Make sure to re-upload wep keys if necessary. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 41 +++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) commit 370e567363e693ee92e74e77a49cada809dc9da9 Author: Michal Kazior Date: Wed Feb 18 14:02:26 2015 +0100 ath10k: fix broken traffic for 802.1x in client mode When running 802.1x WEP keys must be installed without pairwise-groupwise swap (which is necessary for static WEP). Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 122 ++++++++++++++++++++++++++-------- 1 file changed, 93 insertions(+), 29 deletions(-) commit 5c427f5c1e7b55fe197fde14a81a88446182c2e4 Author: Bartosz Markowski Date: Wed Feb 18 13:16:37 2015 +0100 ath10k: update MODULE_FIRMWARE definitions for QCA6174 This has been missed while adding the QCA6174 support. As in the last time, without advertising the firmware files as needed (or optional) for ath10k, these won't be built into ram disk for instance. Signed-off-by: Bartosz Markowski Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/pci.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 81a9a17db5d766d2872c4ab8a77b8666d22031ec Author: Michal Kazior Date: Thu Mar 5 16:02:17 2015 +0200 ath10k: fix AP/IBSS CSA with template based fw qca6174 with wmi-tlv firmware uses offloaded beaconing scheme (i.e. templates). This requires a little different approach when implementing CSA. Add missing code to update CS count and report CSA completion to mac80211. Without it channel switch was never finished. To avoid races during interface teardown data_lock has been used to protect is_up and is_started so they can be compared against before scheduling count down work. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.h | 1 + drivers/net/wireless/ath/ath10k/mac.c | 70 ++++++++++++++++++++++++++++++- drivers/net/wireless/ath/ath10k/wmi-tlv.c | 8 ++++ 3 files changed, 77 insertions(+), 2 deletions(-) commit b24af141c81a0885cb736b8eedbe6427e5e5cd1b Author: SenthilKumar Jegadeesan Date: Wed Mar 4 15:43:45 2015 +0200 ath10k: increase AST table SKID length limit The current SKID length configuration causes firmware to reject peer creation for not able to allocate AST entries for peers. This issue is observed when least significant 3 bytes are used ramdomly to create client MAC addresses. AST table SKID length configuration is increased to maximum value to fix this issue. Signed-off-by: SenthilKumar Jegadeesan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/hw.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit dab74cde38dab36cad20caa8aba26cc0e244dbb5 Author: Peter Oh Date: Wed Mar 4 15:43:46 2015 +0200 ath: enhance radar detection by looking up chirp Certain radar types such as FCC radar type 5 are using chirp in their pulses, hence looking up the chirp status will enhance to avoid false radar detection. Signed-off-by: Peter Oh Signed-off-by: Kalle Valo drivers/net/wireless/ath/dfs_pri_detector.c | 4 ++++ 1 file changed, 4 insertions(+) commit 2c3f26a065054ec942e5b48fc273b592c3f45238 Author: Peter Oh Date: Wed Mar 4 15:43:46 2015 +0200 ath10k: update chirp value in pulse event Firmware reports chirp status in phy error event if it's detected and the chirp status is valuable to distinguish radar types. So save it to use for DFS parttern detector. Signed-off-by: Peter Oh Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/wmi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit beb28edf02115a79d1bb947a01a6ca80b2aadabd Author: Peter Oh Date: Wed Mar 4 15:43:45 2015 +0200 ath: introduce chirp parameter used by DFS Some of radar types such as FCC radar type 5 require to look up chirp in pulse to detect genuine radar and it will prevent DFS channels from false radar detection. Signed-off-by: Peter Oh Signed-off-by: Kalle Valo drivers/net/wireless/ath/dfs_pattern_detector.c | 52 ++++++++++++------------- drivers/net/wireless/ath/dfs_pattern_detector.h | 4 ++ 2 files changed, 30 insertions(+), 26 deletions(-) commit 30abb330764366223f56f8c90e0b9ac3afd974a6 Author: Rajkumar Manoharan Date: Wed Mar 4 15:43:44 2015 +0200 ath10k: increase copy engine entries for rx wmi Having lower number of copy engine entries for target to host WMI ring is causing drops in receiving management frames. This issue is observed during max clients (128 clients) stress testing. While bursting deauthentication frames from simulated clients, approx. 70% of frames are getting dropped due to lower ring entries. Signed-off-by: Rajkumar Manoharan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/pci.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 182d919b84902eece162c63ed3d476c8016b4197 Author: David Howells Date: Thu Feb 19 23:47:31 2015 +0000 FS-Cache: Count culled objects and objects rejected due to lack of space Count the number of objects that get culled by the cache backend and the number of objects that the cache backend declines to instantiate due to lack of space in the cache. These numbers are made available through /proc/fs/fscache/stats Signed-off-by: David Howells Reviewed-by: Steve Dickson Acked-by: Jeff Layton Documentation/filesystems/caching/backend-api.txt | 23 +++++++++++ Documentation/filesystems/caching/fscache.txt | 4 ++ fs/cachefiles/internal.h | 1 - fs/cachefiles/namei.c | 33 ++++++++++------ fs/fscache/internal.h | 5 +++ fs/fscache/object.c | 47 +++++++++++++++++++++++ fs/fscache/stats.c | 10 +++++ include/linux/fscache-cache.h | 12 ++++++ 8 files changed, 122 insertions(+), 13 deletions(-) commit 38bf3aee3ec7b5b264b701da14114a618cddd1a1 Author: Rickard Strandqvist Date: Fri Jan 2 22:04:25 2015 +0100 drm/armada: armada_drv: Remove unused function Remove the function armada_drm_vbl_event_remove_unlocked() that is not used anywhere. This was partially found by using a static code analysis program called cppcheck. Signed-off-by: Rickard Strandqvist Signed-off-by: Russell King drivers/gpu/drm/armada/armada_drm.h | 2 -- drivers/gpu/drm/armada/armada_drv.c | 10 ---------- 2 files changed, 12 deletions(-) commit 5a413dfbaf3f446a154d65d1d9811a6d311482a5 Author: Rickard Strandqvist Date: Fri Jan 2 21:55:02 2015 +0100 drm/armada: armada_output: Remove some unused functions Removes some functions that are not used anywhere: armada_drm_encoder_mode_fixup() armada_drm_encoder_commit() armada_drm_encoder_prepare() This was partially found by using a static code analysis program called cppcheck. Signed-off-by: Rickard Strandqvist Signed-off-by: Russell King drivers/gpu/drm/armada/armada_output.c | 16 ---------------- drivers/gpu/drm/armada/armada_output.h | 6 ------ 2 files changed, 22 deletions(-)